From e1d7df2dbed1536201a3192b8597f7ebd908d3ba Mon Sep 17 00:00:00 2001 From: clundro Date: Tue, 28 Mar 2023 11:59:05 +0800 Subject: [PATCH 1/3] [chore] add "copy from file" grammay. Signed-off-by: clundro --- build_support/generate_flex.py | 84 +++++++++++++++++++ test/binder/binder_test.cpp | 5 ++ .../libpg_query/grammar/statements/copy.y | 21 ++++- .../libpg_query/src_backend_parser_scan.cpp | 46 +++++----- 4 files changed, 129 insertions(+), 27 deletions(-) create mode 100644 build_support/generate_flex.py diff --git a/build_support/generate_flex.py b/build_support/generate_flex.py new file mode 100644 index 000000000..e3cf15dd9 --- /dev/null +++ b/build_support/generate_flex.py @@ -0,0 +1,84 @@ +# use flex to generate the scanner file for the parser +# the following version of bison is used: +# flex 2.5.35 Apple(flex-32) +import os +import subprocess +import re +from sys import platform +import sys + +def open_utf8(fpath, flags): + import sys + if sys.version_info[0] < 3: + return open(fpath, flags) + else: + return open(fpath, flags, encoding="utf8") + +flex_bin = 'flex' +for arg in sys.argv[1:]: + if arg.startswith("--flex="): + flex_bin = arg.replace("--flex=", "") + +pg_path = os.path.join('third_party', 'libpg_query') +flex_file_path = os.path.join(pg_path, 'scan.l') +target_file = os.path.join(pg_path, 'src_backend_parser_scan.cpp') + +proc = subprocess.Popen([flex_bin, '--nounistd', '-o', target_file, + flex_file_path], stdout=subprocess.PIPE, stderr=subprocess.PIPE) +stdout = proc.stdout.read().decode('utf8') +stderr = proc.stderr.read().decode('utf8') +if proc.returncode != None or len(stderr) > 0: + print("Flex failed") + print("stdout: ", stdout) + print("stderr: ", stderr) + exit(1) + +with open_utf8(target_file, 'r') as f: + text = f.read() + +# convert this from 'int' to 'yy_size_t' to avoid triggering a warning +text = text.replace('int yy_buf_size;\n', 'yy_size_t yy_buf_size;\n') + +# add the libpg_query namespace +text = text.replace(''' +#ifndef FLEXINT_H +#define FLEXINT_H +''', ''' +#ifndef FLEXINT_H +#define FLEXINT_H +namespace duckdb_libpgquery { +''') +text = text.replace('register ', '') + +text = text + "\n} /* duckdb_libpgquery */\n" + +text = re.sub('(?:[(]void[)][ ]*)?fprintf', '//', text) +text = re.sub('exit[(]', 'throw std::runtime_error(msg); //', text) +text = re.sub( + r'\n\s*if\s*[(]\s*!\s*yyin\s*[)]\s*\n\s*yyin\s*=\s*stdin;\s*\n', '\n', text) +text = re.sub( + r'\n\s*if\s*[(]\s*!\s*yyout\s*[)]\s*\n\s*yyout\s*=\s*stdout;\s*\n', '\n', text) + +file_null = 'NULL' if platform == 'linux' else '[(]FILE [*][)] 0' + +text = re.sub( + rf'[#]ifdef\s*YY_STDINIT\n\s*yyin = stdin;\n\s*yyout = stdout;\n[#]else\n\s*yyin = {file_null};\n\s*yyout = {file_null};\n[#]endif', ' yyin = (FILE *) 0;\n yyout = (FILE *) 0;', text) + +if 'stdin;' in text: + print("STDIN not removed!") + # exit(1) + +if 'stdout' in text: + print("STDOUT not removed!") + # exit(1) + +if 'fprintf(' in text: + print("PRINTF not removed!") + # exit(1) + +if 'exit(' in text: + print("EXIT not removed!") + # exit(1) + +with open_utf8(target_file, 'w+') as f: + f.write(text) diff --git a/test/binder/binder_test.cpp b/test/binder/binder_test.cpp index 10e9bddbc..50b3d2bab 100644 --- a/test/binder/binder_test.cpp +++ b/test/binder/binder_test.cpp @@ -173,6 +173,11 @@ TEST(BinderTest, BindBinaryOp) { PrintStatements(statements); } +TEST(BinderTest, BindCopyFrom) { + auto statements = TryBind("copy from"); + PrintStatements(statements); +} + // TODO(chi): subquery is not supported yet TEST(BinderTest, DISABLED_BindUncorrelatedSubquery) { auto statements = TryBind("select * from (select * from a) INNER JOIN (select * from b) ON a.x = b.y"); diff --git a/third_party/libpg_query/grammar/statements/copy.y b/third_party/libpg_query/grammar/statements/copy.y index 5f90549ff..a7cec301f 100644 --- a/third_party/libpg_query/grammar/statements/copy.y +++ b/third_party/libpg_query/grammar/statements/copy.y @@ -1,4 +1,23 @@ -CopyStmt: COPY opt_binary qualified_name opt_column_list opt_oids +CopyStmt: COPY FROM copy_file_name + { + PGCopyStmt *n = makeNode(PGCopyStmt); + n->relation = NULL; + n->query = NULL; + n->attlist = NIL; + n->is_from = true; + n->is_program = true; + n->filename = $3; + n->options = NIL; + + if (n->is_program && n->filename == NULL) + ereport(ERROR, + (errcode(PG_ERRCODE_SYNTAX_ERROR), + errmsg("COPYFROMFILE not allowed with NULL"), + parser_errposition(@3))); + + $$ = (PGNode *)n; + } + | COPY opt_binary qualified_name opt_column_list opt_oids copy_from opt_program copy_file_name copy_delimiter opt_with copy_options { PGCopyStmt *n = makeNode(PGCopyStmt); diff --git a/third_party/libpg_query/src_backend_parser_scan.cpp b/third_party/libpg_query/src_backend_parser_scan.cpp index 4cb977b27..1b7b6a2b8 100644 --- a/third_party/libpg_query/src_backend_parser_scan.cpp +++ b/third_party/libpg_query/src_backend_parser_scan.cpp @@ -1,4 +1,4 @@ -#line 1 "third_party/libpg_query/src_backend_parser_scan.cpp" +#line 2 "third_party/libpg_query/src_backend_parser_scan.cpp" /*------------------------------------------------------------------------- * * scan.l @@ -40,7 +40,7 @@ #include -#line 43 "third_party/libpg_query/src_backend_parser_scan.cpp" +#line 44 "third_party/libpg_query/src_backend_parser_scan.cpp" #define YY_INT_ALIGNED short int @@ -322,7 +322,6 @@ typedef int16_t flex_int16_t; typedef uint16_t flex_uint16_t; typedef int32_t flex_int32_t; typedef uint32_t flex_uint32_t; -typedef uint64_t flex_uint64_t; #else typedef signed char flex_int8_t; typedef short int flex_int16_t; @@ -482,12 +481,12 @@ struct yy_buffer_state /* Size of input buffer in bytes, not including room for EOB * characters. */ - int yy_buf_size; + yy_size_t yy_buf_size; /* Number of characters read into yy_ch_buf, not including EOB * characters. */ - yy_size_t yy_n_chars; + int yy_n_chars; /* Whether we "own" the buffer - i.e., we know we created it, * and can realloc() it to grow it, and should free() it to @@ -564,7 +563,7 @@ static void yy_init_buffer ( YY_BUFFER_STATE b, FILE *file , yyscan_t yyscanner YY_BUFFER_STATE yy_scan_buffer ( char *base, yy_size_t size , yyscan_t yyscanner ); YY_BUFFER_STATE yy_scan_string ( const char *yy_str , yyscan_t yyscanner ); -YY_BUFFER_STATE yy_scan_bytes ( const char *bytes, yy_size_t len , yyscan_t yyscanner ); +YY_BUFFER_STATE yy_scan_bytes ( const char *bytes, int len , yyscan_t yyscanner ); void *yyalloc ( yy_size_t , yyscan_t yyscanner ); void *yyrealloc ( void *, yy_size_t , yyscan_t yyscanner ); @@ -611,7 +610,7 @@ static void yynoreturn yy_fatal_error ( const char* msg , yyscan_t yyscanner ); */ #define YY_DO_BEFORE_ACTION \ yyg->yytext_ptr = yy_bp; \ - yyleng = (yy_size_t) (yy_cp - yy_bp); \ + yyleng = (int) (yy_cp - yy_bp); \ yyg->yy_hold_char = *yy_cp; \ *yy_cp = '\0'; \ yyg->yy_c_buf_p = yy_cp; @@ -1336,8 +1335,8 @@ struct yyguts_t size_t yy_buffer_stack_max; /**< capacity of stack. */ YY_BUFFER_STATE * yy_buffer_stack; /**< Stack as an array. */ char yy_hold_char; - yy_size_t yy_n_chars; - yy_size_t yyleng_r; + int yy_n_chars; + int yyleng_r; char *yy_c_buf_p; int yy_init; int yy_start; @@ -1394,7 +1393,7 @@ FILE *yyget_out ( yyscan_t yyscanner ); void yyset_out ( FILE * _out_str , yyscan_t yyscanner ); - yy_size_t yyget_leng ( yyscan_t yyscanner ); + int yyget_leng ( yyscan_t yyscanner ); char *yyget_text ( yyscan_t yyscanner ); @@ -1473,7 +1472,7 @@ static int input ( yyscan_t yyscanner ); if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \ { \ int c = '*'; \ - yy_size_t n; \ + int n; \ for ( n = 0; n < max_size && \ (c = getc( yyin )) != EOF && c != '\n'; ++n ) \ buf[n] = (char) c; \ @@ -2839,7 +2838,7 @@ static int yy_get_next_buffer (yyscan_t yyscanner) else { - yy_size_t num_to_read = + int num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1; while ( num_to_read <= 0 ) @@ -2853,7 +2852,7 @@ static int yy_get_next_buffer (yyscan_t yyscanner) if ( b->yy_is_our_buffer ) { - yy_size_t new_size = b->yy_buf_size * 2; + int new_size = b->yy_buf_size * 2; if ( new_size <= 0 ) b->yy_buf_size += b->yy_buf_size / 8; @@ -2911,7 +2910,7 @@ static int yy_get_next_buffer (yyscan_t yyscanner) if ((yyg->yy_n_chars + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) { /* Extend the array by 50%, plus the number we really need. */ - yy_size_t new_size = yyg->yy_n_chars + number_to_move + (yyg->yy_n_chars >> 1); + int new_size = yyg->yy_n_chars + number_to_move + (yyg->yy_n_chars >> 1); YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc( (void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf, (yy_size_t) new_size , yyscanner ); if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf ) @@ -3018,7 +3017,7 @@ static int yy_get_next_buffer (yyscan_t yyscanner) else { /* need more input */ - yy_size_t offset = yyg->yy_c_buf_p - yyg->yytext_ptr; + int offset = (int) (yyg->yy_c_buf_p - yyg->yytext_ptr); ++yyg->yy_c_buf_p; switch ( yy_get_next_buffer( yyscanner ) ) @@ -3396,12 +3395,12 @@ YY_BUFFER_STATE yy_scan_string (const char * yystr , yyscan_t yyscanner) * @param yyscanner The scanner object. * @return the newly allocated buffer state object. */ -YY_BUFFER_STATE yy_scan_bytes (const char * yybytes, yy_size_t _yybytes_len , yyscan_t yyscanner) +YY_BUFFER_STATE yy_scan_bytes (const char * yybytes, int _yybytes_len , yyscan_t yyscanner) { YY_BUFFER_STATE b; char *buf; yy_size_t n; - yy_size_t i; + int i; /* Get memory for full buffer, including space for trailing EOB's. */ n = (yy_size_t) (_yybytes_len + 2); @@ -3445,7 +3444,7 @@ static void yynoreturn yy_fatal_error (const char* msg , yyscan_t yyscanner) do \ { \ /* Undo effects of setting up yytext. */ \ - yy_size_t yyless_macro_arg = (n); \ + int yyless_macro_arg = (n); \ YY_LESS_LINENO(yyless_macro_arg);\ yytext[yyleng] = yyg->yy_hold_char; \ yyg->yy_c_buf_p = yytext + yyless_macro_arg; \ @@ -3513,7 +3512,7 @@ FILE *yyget_out (yyscan_t yyscanner) /** Get the length of the current token. * @param yyscanner The scanner object. */ -yy_size_t yyget_leng (yyscan_t yyscanner) +int yyget_leng (yyscan_t yyscanner) { struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; return yyleng; @@ -3704,13 +3703,8 @@ static int yy_init_globals (yyscan_t yyscanner) yyg->yy_start_stack = NULL; /* Defined in main.c */ -#ifdef YY_STDINIT - yyin = stdin; - yyout = stdout; -#else - yyin = NULL; - yyout = NULL; -#endif + yyin = (FILE *) 0; + yyout = (FILE *) 0; /* For future reference: Set errno on error, since we are called by * yylex_init() From 85bef3156ca3460171b0f40bc858271d97e6ac24 Mon Sep 17 00:00:00 2001 From: clundro Date: Tue, 28 Mar 2023 13:14:23 +0800 Subject: [PATCH 2/3] [fix] parser support `copy from 'a.csv'` Signed-off-by: clundro --- build_support/generate_flex.py | 24 + build_support/generate_grammar.py | 326 + test/binder/binder_test.cpp | 4 +- .../libpg_query/grammar/statements/create.y | 2 +- .../libpg_query/include/parser/gram.hpp | 1530 +- .../libpg_query/include/parser/kwlist.hpp | 2 - .../libpg_query/src_backend_parser_gram.cpp | 40087 ++++++++-------- 7 files changed, 20913 insertions(+), 21062 deletions(-) create mode 100644 build_support/generate_grammar.py diff --git a/build_support/generate_flex.py b/build_support/generate_flex.py index e3cf15dd9..be0ab450f 100644 --- a/build_support/generate_flex.py +++ b/build_support/generate_flex.py @@ -1,3 +1,25 @@ +# ===----------------------------------------------------------------------===// +# Copyright 2018-2022 Stichting DuckDB Foundation +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: + +# The above copyright notice and this permission notice (including the next paragraph) +# shall be included in all copies or substantial portions of the Software. + +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. +# ===----------------------------------------------------------------------===// + # use flex to generate the scanner file for the parser # the following version of bison is used: # flex 2.5.35 Apple(flex-32) @@ -7,6 +29,7 @@ from sys import platform import sys + def open_utf8(fpath, flags): import sys if sys.version_info[0] < 3: @@ -14,6 +37,7 @@ def open_utf8(fpath, flags): else: return open(fpath, flags, encoding="utf8") + flex_bin = 'flex' for arg in sys.argv[1:]: if arg.startswith("--flex="): diff --git a/build_support/generate_grammar.py b/build_support/generate_grammar.py new file mode 100644 index 000000000..2cb594e71 --- /dev/null +++ b/build_support/generate_grammar.py @@ -0,0 +1,326 @@ +# ===----------------------------------------------------------------------===// +# Copyright 2018-2022 Stichting DuckDB Foundation +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: + +# The above copyright notice and this permission notice (including the next paragraph) +# shall be included in all copies or substantial portions of the Software. + +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. +# ===----------------------------------------------------------------------===// + +# use bison to generate the parser files +# the following version of bison is used: +# bison (GNU Bison) 2.3 +import os +import subprocess +import re +import sys + + +def open_utf8(fpath, flags): + import sys + if sys.version_info[0] < 3: + return open(fpath, flags) + else: + return open(fpath, flags, encoding="utf8") + + +bison_location = "bison" +base_dir = 'third_party/libpg_query/grammar' +pg_dir = 'third_party/libpg_query' +template_file = os.path.join(base_dir, 'grammar.y') +target_file = os.path.join(base_dir, 'grammar.y.tmp') +header_file = os.path.join(base_dir, 'grammar.hpp') +source_file = os.path.join(base_dir, 'grammar.cpp') +type_dir = os.path.join(base_dir, 'types') +rule_dir = os.path.join(base_dir, 'statements') +result_source = os.path.join(base_dir, 'grammar_out.cpp') +result_header = os.path.join(base_dir, 'grammar_out.hpp') +target_source_loc = os.path.join(pg_dir, 'src_backend_parser_gram.cpp') +target_header_loc = os.path.join(pg_dir, 'include/parser/gram.hpp') +kwlist_header = os.path.join(pg_dir, 'include/parser/kwlist.hpp') + +counterexamples = False +run_update = False +for arg in sys.argv[1:]: + if arg.startswith("--bison="): + bison_location = arg.replace("--bison=", "") + elif arg.startswith("--counterexamples"): + counterexamples = True + elif arg.startswith("--update"): + run_update = True + else: + raise Exception("Unrecognized argument: " + arg + + ", expected --counterexamples or --bison=/loc/to/bison") + +# parse the keyword lists + + +def read_list_from_file(fname): + with open_utf8(fname, 'r') as f: + return [x.strip() for x in f.read().split('\n') if len(x.strip()) > 0] + + +kwdir = os.path.join(base_dir, 'keywords') +unreserved_keywords = read_list_from_file( + os.path.join(kwdir, 'unreserved_keywords.list')) +colname_keywords = read_list_from_file( + os.path.join(kwdir, 'column_name_keywords.list')) +func_name_keywords = read_list_from_file( + os.path.join(kwdir, 'func_name_keywords.list')) +type_name_keywords = read_list_from_file( + os.path.join(kwdir, 'type_name_keywords.list')) +reserved_keywords = read_list_from_file( + os.path.join(kwdir, 'reserved_keywords.list')) + + +def strip_p(x): + if x.endswith("_P"): + return x[:-2] + else: + return x + + +unreserved_keywords.sort(key=lambda x: strip_p(x)) +colname_keywords.sort(key=lambda x: strip_p(x)) +func_name_keywords.sort(key=lambda x: strip_p(x)) +type_name_keywords.sort(key=lambda x: strip_p(x)) +reserved_keywords.sort(key=lambda x: strip_p(x)) + +statements = read_list_from_file(os.path.join(base_dir, 'statements.list')) +statements.sort() +if len(statements) < 0: + print("Need at least one statement") + exit(1) + +# verify there are no duplicate keywords and create big sorted list of keywords +kwdict = {} +for kw in unreserved_keywords: + kwdict[kw] = 'UNRESERVED_KEYWORD' + +for kw in colname_keywords: + kwdict[kw] = 'COL_NAME_KEYWORD' + +for kw in func_name_keywords: + kwdict[kw] = 'TYPE_FUNC_NAME_KEYWORD' + +for kw in type_name_keywords: + kwdict[kw] = 'TYPE_FUNC_NAME_KEYWORD' + +for kw in reserved_keywords: + kwdict[kw] = 'RESERVED_KEYWORD' + +kwlist = [(x, kwdict[x]) for x in kwdict.keys()] +kwlist.sort(key=lambda x: strip_p(x[0])) + +# now generate kwlist.h +# PG_KEYWORD("abort", ABORT_P, UNRESERVED_KEYWORD) +kwtext = """ +namespace duckdb_libpgquery { +#define PG_KEYWORD(a,b,c) {a,b,c}, +const PGScanKeyword ScanKeywords[] = { +""" +for tpl in kwlist: + kwtext += 'PG_KEYWORD("%s", %s, %s)\n' % ( + strip_p(tpl[0]).lower(), tpl[0], tpl[1]) +kwtext += """ +}; +const int NumScanKeywords = lengthof(ScanKeywords); +} // namespace duckdb_libpgquery +""" + +with open_utf8(kwlist_header, 'w+') as f: + f.write(kwtext) + + +# generate the final main.y.tmp file +# first read the template file +with open_utf8(template_file, 'r') as f: + text = f.read() + +# now perform a series of replacements in the file to construct the final yacc file + + +def get_file_contents(fpath, add_line_numbers=False): + with open_utf8(fpath, 'r') as f: + result = f.read() + if add_line_numbers: + return '#line 1 "%s"\n' % (fpath,) + result + else: + return result + + +# grammar.hpp +text = text.replace("{{{ GRAMMAR_HEADER }}}", + get_file_contents(header_file, True)) + +# grammar.cpp +text = text.replace("{{{ GRAMMAR_SOURCE }}}", + get_file_contents(source_file, True)) + +# keyword list +kw_token_list = "%token " + " ".join([x[0] for x in kwlist]) + +text = text.replace("{{{ KEYWORDS }}}", kw_token_list) + +# statements +stmt_list = "stmt: " + \ + "\n\t| ".join(statements) + "\n\t| /*EMPTY*/\n\t{ $$ = NULL; }\n" +text = text.replace("{{{ STATEMENTS }}}", stmt_list) + +# keywords +# keywords can EITHER be reserved, unreserved, or some combination of (col_name, type_name, func_name) +# that means duplicates are ONLY allowed between (col_name, type_name and func_name) +# having a keyword be both reserved and unreserved is an error +# as is having a keyword both reserved and col_name, for example +# verify that this is the case +reserved_dict = {} +unreserved_dict = {} +other_dict = {} +for r in reserved_keywords: + if r in reserved_dict: + print("Duplicate keyword " + r + " in reserved keywords") + exit(1) + reserved_dict[r] = True + +for ur in unreserved_keywords: + if ur in unreserved_dict: + print("Duplicate keyword " + ur + " in unreserved keywords") + exit(1) + if ur in reserved_dict: + print("Keyword " + ur + " is marked as both unreserved and reserved") + exit(1) + unreserved_dict[ur] = True + + +def add_to_other_keywords(kw, list_name): + global unreserved_dict + global reserved_dict + global other_dict + if kw in unreserved_dict: + print("Keyword " + kw + " is marked as both unreserved and " + list_name) + exit(1) + if kw in reserved_dict: + print("Keyword " + kw + " is marked as both reserved and " + list_name) + exit(1) + other_dict[kw] = True + + +for cr in colname_keywords: + add_to_other_keywords(cr, "colname") + +type_func_name_dict = {} +for tr in type_name_keywords: + add_to_other_keywords(tr, "typename") + type_func_name_dict[tr] = True + +for fr in func_name_keywords: + add_to_other_keywords(fr, "funcname") + type_func_name_dict[fr] = True + +type_func_name_keywords = list(type_func_name_dict.keys()) +type_func_name_keywords.sort() + +all_keywords = list(reserved_dict.keys()) + \ + list(unreserved_dict.keys()) + list(other_dict.keys()) +all_keywords.sort() + +other_keyword = list(other_dict.keys()) +other_keyword.sort() + +kw_definitions = "unreserved_keyword: " + \ + " | ".join(unreserved_keywords) + "\n" +kw_definitions += "col_name_keyword: " + " | ".join(colname_keywords) + "\n" +kw_definitions += "func_name_keyword: " + " | ".join(func_name_keywords) + "\n" +kw_definitions += "type_name_keyword: " + " | ".join(type_name_keywords) + "\n" +kw_definitions += "other_keyword: " + " | ".join(other_keyword) + "\n" +kw_definitions += "type_func_name_keyword: " + \ + " | ".join(type_func_name_keywords) + "\n" +kw_definitions += "reserved_keyword: " + " | ".join(reserved_keywords) + "\n" +text = text.replace("{{{ KEYWORD_DEFINITIONS }}}", kw_definitions) + +# types + + +def concat_dir(dname, extension, add_line_numbers=False): + result = "" + for fname in os.listdir(dname): + fpath = os.path.join(dname, fname) + if os.path.isdir(fpath): + result += concat_dir(fpath, extension) + else: + if not fname.endswith(extension): + continue + result += get_file_contents(fpath, add_line_numbers) + return result + + +type_definitions = concat_dir(type_dir, ".yh") +# add statement types as well +for stmt in statements: + type_definitions += "%type " + stmt + "\n" + +text = text.replace("{{{ TYPES }}}", type_definitions) + +# grammar rules +grammar_rules = concat_dir(rule_dir, ".y", True) + +text = text.replace("{{{ GRAMMAR RULES }}}", grammar_rules) + +# finally write the yacc file into the target file +with open_utf8(target_file, 'w+') as f: + f.write(text) + +# generate the bison +cmd = [bison_location] +if counterexamples: + print("Attempting to print counterexamples (-Wcounterexamples)") + cmd += ["-Wcounterexamples"] +if run_update: + cmd += ["--update"] +cmd += ["-o", result_source, "-d", target_file] +print(' '.join(cmd)) +proc = subprocess.Popen(cmd, stderr=subprocess.PIPE) +res = proc.wait() + +if res != 0: + text = proc.stderr.read().decode('utf8') + print(text) + if 'shift/reduce' in text and not counterexamples: + print("---------------------------------------------------------------------") + print("In case of shift/reduce conflicts, try re-running with --counterexamples") + print("Note: this requires a more recent version of Bison (e.g. version 3.8)") + print("On a Macbook you can obtain this using \"brew install bison\"") + if counterexamples and 'time limit exceeded' in text: + print("---------------------------------------------------------------------") + print("The counterexamples time limit was exceeded. This likely means that no useful counterexample was generated.") + print("") + print("The counterexamples time limit can be increased by setting the TIME_LIMIT environment variable, e.g.:") + print("export TIME_LIMIT=100") + exit(1) + + +os.rename(result_source, target_source_loc) +os.rename(result_header, target_header_loc) + +with open_utf8(target_source_loc, 'r') as f: + text = f.read() + +text = text.replace('#include "grammar_out.hpp"', + '#include "include/parser/gram.hpp"') +text = text.replace('yynerrs = 0;', 'yynerrs = 0; (void)yynerrs;') + +with open_utf8(target_source_loc, 'w+') as f: + f.write(text) diff --git a/test/binder/binder_test.cpp b/test/binder/binder_test.cpp index 50b3d2bab..21ba23e9d 100644 --- a/test/binder/binder_test.cpp +++ b/test/binder/binder_test.cpp @@ -173,8 +173,8 @@ TEST(BinderTest, BindBinaryOp) { PrintStatements(statements); } -TEST(BinderTest, BindCopyFrom) { - auto statements = TryBind("copy from"); +TEST(BinderTest, DIABLED_BindCopyFrom) { + auto statements = TryBind("copy from 'a.csv'"); PrintStatements(statements); } diff --git a/third_party/libpg_query/grammar/statements/create.y b/third_party/libpg_query/grammar/statements/create.y index aa9a8b1eb..58f5b8e81 100644 --- a/third_party/libpg_query/grammar/statements/create.y +++ b/third_party/libpg_query/grammar/statements/create.y @@ -222,7 +222,7 @@ GeneratedColumnType: ; opt_GeneratedColumnType: - GeneratedColumnType { $$ = $1 } + GeneratedColumnType { $$ = $1; } | /* EMPTY */ { $$ = PG_CONSTR_GENERATED_VIRTUAL; } ; diff --git a/third_party/libpg_query/include/parser/gram.hpp b/third_party/libpg_query/include/parser/gram.hpp index 0ebcda5d9..f6512d730 100644 --- a/third_party/libpg_query/include/parser/gram.hpp +++ b/third_party/libpg_query/include/parser/gram.hpp @@ -1,14 +1,14 @@ -/* A Bison parser, made by GNU Bison 2.3. */ +/* A Bison parser, made by GNU Bison 3.5.1. */ -/* Skeleton interface for Bison's Yacc-like parsers in C +/* Bison interface for Yacc-like parsers in C - Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006 - Free Software Foundation, Inc. + Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2020 Free Software Foundation, + Inc. - This program is free software; you can redistribute it and/or modify + This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -16,9 +16,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA 02110-1301, USA. */ + along with this program. If not, see . */ /* As a special exception, you may create a larger work that contains part or all of the Bison parser skeleton and distribute that work @@ -33,993 +31,518 @@ This special exception was added by the Free Software Foundation in version 2.2 of Bison. */ -/* Tokens. */ +/* Undocumented macros, especially those whose name start with YY_, + are private implementation details. Do not rely on them. */ + +#ifndef YY_BASE_YY_THIRD_PARTY_LIBPG_QUERY_GRAMMAR_GRAMMAR_OUT_HPP_INCLUDED +# define YY_BASE_YY_THIRD_PARTY_LIBPG_QUERY_GRAMMAR_GRAMMAR_OUT_HPP_INCLUDED +/* Debug traces. */ +#ifndef YYDEBUG +# define YYDEBUG 0 +#endif +#if YYDEBUG +extern int base_yydebug; +#endif + +/* Token type. */ #ifndef YYTOKENTYPE # define YYTOKENTYPE - /* Put the tokens into the symbol table, so that GDB and other debuggers - know about them. */ - enum yytokentype { - IDENT = 258, - FCONST = 259, - SCONST = 260, - BCONST = 261, - XCONST = 262, - Op = 263, - ICONST = 264, - PARAM = 265, - TYPECAST = 266, - DOT_DOT = 267, - COLON_EQUALS = 268, - EQUALS_GREATER = 269, - POWER_OF = 270, - LAMBDA_ARROW = 271, - DOUBLE_ARROW = 272, - LESS_EQUALS = 273, - GREATER_EQUALS = 274, - NOT_EQUALS = 275, - ABORT_P = 276, - ABSOLUTE_P = 277, - ACCESS = 278, - ACTION = 279, - ADD_P = 280, - ADMIN = 281, - AFTER = 282, - AGGREGATE = 283, - ALL = 284, - ALSO = 285, - ALTER = 286, - ALWAYS = 287, - ANALYSE = 288, - ANALYZE = 289, - AND = 290, - ANY = 291, - ARRAY = 292, - AS = 293, - ASC_P = 294, - ASSERTION = 295, - ASSIGNMENT = 296, - ASYMMETRIC = 297, - AT = 298, - ATTACH = 299, - ATTRIBUTE = 300, - AUTHORIZATION = 301, - BACKWARD = 302, - BEFORE = 303, - BEGIN_P = 304, - BETWEEN = 305, - BIGINT = 306, - BINARY = 307, - BIT = 308, - BOOLEAN_P = 309, - BOTH = 310, - BY = 311, - CACHE = 312, - CALL_P = 313, - CALLED = 314, - CASCADE = 315, - CASCADED = 316, - CASE = 317, - CAST = 318, - CATALOG_P = 319, - CHAIN = 320, - CHAR_P = 321, - CHARACTER = 322, - CHARACTERISTICS = 323, - CHECK_P = 324, - CHECKPOINT = 325, - CLASS = 326, - CLOSE = 327, - CLUSTER = 328, - COALESCE = 329, - COLLATE = 330, - COLLATION = 331, - COLUMN = 332, - COLUMNS = 333, - COMMENT = 334, - COMMENTS = 335, - COMMIT = 336, - COMMITTED = 337, - COMPRESSION = 338, - CONCURRENTLY = 339, - CONFIGURATION = 340, - CONFLICT = 341, - CONNECTION = 342, - CONSTRAINT = 343, - CONSTRAINTS = 344, - CONTENT_P = 345, - CONTINUE_P = 346, - CONVERSION_P = 347, - COPY = 348, - COST = 349, - CREATE_P = 350, - CROSS = 351, - CSV = 352, - CUBE = 353, - CURRENT_P = 354, - CURRENT_CATALOG = 355, - CURRENT_DATE = 356, - CURRENT_ROLE = 357, - CURRENT_SCHEMA = 358, - CURRENT_TIME = 359, - CURRENT_TIMESTAMP = 360, - CURRENT_USER = 361, - CURSOR = 362, - CYCLE = 363, - DATA_P = 364, - DATABASE = 365, - DAY_P = 366, - DAYS_P = 367, - DEALLOCATE = 368, - DEC = 369, - DECIMAL_P = 370, - DECLARE = 371, - DEFAULT = 372, - DEFAULTS = 373, - DEFERRABLE = 374, - DEFERRED = 375, - DEFINER = 376, - DELETE_P = 377, - DELIMITER = 378, - DELIMITERS = 379, - DEPENDS = 380, - DESC_P = 381, - DESCRIBE = 382, - DETACH = 383, - DICTIONARY = 384, - DISABLE_P = 385, - DISCARD = 386, - DISTINCT = 387, - DO = 388, - DOCUMENT_P = 389, - DOMAIN_P = 390, - DOUBLE_P = 391, - DROP = 392, - EACH = 393, - ELSE = 394, - ENABLE_P = 395, - ENCODING = 396, - ENCRYPTED = 397, - END_P = 398, - ENUM_P = 399, - ESCAPE = 400, - EVENT = 401, - EXCEPT = 402, - EXCLUDE = 403, - EXCLUDING = 404, - EXCLUSIVE = 405, - EXECUTE = 406, - EXISTS = 407, - EXPLAIN = 408, - EXPORT_P = 409, - EXPORT_STATE = 410, - EXTENSION = 411, - EXTERNAL = 412, - EXTRACT = 413, - FALSE_P = 414, - FAMILY = 415, - FETCH = 416, - FILTER = 417, - FIRST_P = 418, - FLOAT_P = 419, - FOLLOWING = 420, - FOR = 421, - FORCE = 422, - FOREIGN = 423, - FORWARD = 424, - FREEZE = 425, - FROM = 426, - FULL = 427, - FUNCTION = 428, - FUNCTIONS = 429, - GENERATED = 430, - GLOB = 431, - GLOBAL = 432, - GRANT = 433, - GRANTED = 434, - GROUP_P = 435, - GROUPING = 436, - GROUPING_ID = 437, - HANDLER = 438, - HAVING = 439, - HEADER_P = 440, - HOLD = 441, - HOUR_P = 442, - HOURS_P = 443, - IDENTITY_P = 444, - IF_P = 445, - IGNORE_P = 446, - ILIKE = 447, - IMMEDIATE = 448, - IMMUTABLE = 449, - IMPLICIT_P = 450, - IMPORT_P = 451, - IN_P = 452, - INCLUDING = 453, - INCREMENT = 454, - INDEX = 455, - INDEXES = 456, - INHERIT = 457, - INHERITS = 458, - INITIALLY = 459, - INLINE_P = 460, - INNER_P = 461, - INOUT = 462, - INPUT_P = 463, - INSENSITIVE = 464, - INSERT = 465, - INSTALL = 466, - INSTEAD = 467, - INT_P = 468, - INTEGER = 469, - INTERSECT = 470, - INTERVAL = 471, - INTO = 472, - INVOKER = 473, - IS = 474, - ISNULL = 475, - ISOLATION = 476, - JOIN = 477, - JSON = 478, - KEY = 479, - LABEL = 480, - LANGUAGE = 481, - LARGE_P = 482, - LAST_P = 483, - LATERAL_P = 484, - LEADING = 485, - LEAKPROOF = 486, - LEFT = 487, - LEVEL = 488, - LIKE = 489, - LIMIT = 490, - LISTEN = 491, - LOAD = 492, - LOCAL = 493, - LOCALTIME = 494, - LOCALTIMESTAMP = 495, - LOCATION = 496, - LOCK_P = 497, - LOCKED = 498, - LOGGED = 499, - MACRO = 500, - MAP = 501, - MAPPING = 502, - MATCH = 503, - MATERIALIZED = 504, - MAXVALUE = 505, - METHOD = 506, - MICROSECOND_P = 507, - MICROSECONDS_P = 508, - MILLISECOND_P = 509, - MILLISECONDS_P = 510, - MINUTE_P = 511, - MINUTES_P = 512, - MINVALUE = 513, - MODE = 514, - MONTH_P = 515, - MONTHS_P = 516, - MOVE = 517, - NAME_P = 518, - NAMES = 519, - NATIONAL = 520, - NATURAL = 521, - NCHAR = 522, - NEW = 523, - NEXT = 524, - NO = 525, - NONE = 526, - NOT = 527, - NOTHING = 528, - NOTIFY = 529, - NOTNULL = 530, - NOWAIT = 531, - NULL_P = 532, - NULLIF = 533, - NULLS_P = 534, - NUMERIC = 535, - OBJECT_P = 536, - OF = 537, - OFF = 538, - OFFSET = 539, - OIDS = 540, - OLD = 541, - ON = 542, - ONLY = 543, - OPERATOR = 544, - OPTION = 545, - OPTIONS = 546, - OR = 547, - ORDER = 548, - ORDINALITY = 549, - OUT_P = 550, - OUTER_P = 551, - OVER = 552, - OVERLAPS = 553, - OVERLAY = 554, - OVERRIDING = 555, - OWNED = 556, - OWNER = 557, - PARALLEL = 558, - PARSER = 559, - PARTIAL = 560, - PARTITION = 561, - PASSING = 562, - PASSWORD = 563, - PERCENT = 564, - PLACING = 565, - PLANS = 566, - POLICY = 567, - POSITION = 568, - PRAGMA_P = 569, - PRECEDING = 570, - PRECISION = 571, - PREPARE = 572, - PREPARED = 573, - PRESERVE = 574, - PRIMARY = 575, - PRIOR = 576, - PRIVILEGES = 577, - PROCEDURAL = 578, - PROCEDURE = 579, - PROGRAM = 580, - PUBLICATION = 581, - QUALIFY = 582, - QUOTE = 583, - RANGE = 584, - READ_P = 585, - REAL = 586, - REASSIGN = 587, - RECHECK = 588, - RECURSIVE = 589, - REF = 590, - REFERENCES = 591, - REFERENCING = 592, - REFRESH = 593, - REINDEX = 594, - RELATIVE_P = 595, - RELEASE = 596, - RENAME = 597, - REPEATABLE = 598, - REPLACE = 599, - REPLICA = 600, - RESET = 601, - RESPECT_P = 602, - RESTART = 603, - RESTRICT = 604, - RETURNING = 605, - RETURNS = 606, - REVOKE = 607, - RIGHT = 608, - ROLE = 609, - ROLLBACK = 610, - ROLLUP = 611, - ROW = 612, - ROWS = 613, - RULE = 614, - SAMPLE = 615, - SAVEPOINT = 616, - SCHEMA = 617, - SCHEMAS = 618, - SCROLL = 619, - SEARCH = 620, - SECOND_P = 621, - SECONDS_P = 622, - SECURITY = 623, - SELECT = 624, - SEQUENCE = 625, - SEQUENCES = 626, - SERIALIZABLE = 627, - SERVER = 628, - SESSION = 629, - SESSION_USER = 630, - SET = 631, - SETOF = 632, - SETS = 633, - SHARE = 634, - SHOW = 635, - SIMILAR = 636, - SIMPLE = 637, - SKIP = 638, - SMALLINT = 639, - SNAPSHOT = 640, - SOME = 641, - SQL_P = 642, - STABLE = 643, - STANDALONE_P = 644, - START = 645, - STATEMENT = 646, - STATISTICS = 647, - STDIN = 648, - STDOUT = 649, - STORAGE = 650, - STORED = 651, - STRICT_P = 652, - STRIP_P = 653, - STRUCT = 654, - SUBSCRIPTION = 655, - SUBSTRING = 656, - SUMMARIZE = 657, - SYMMETRIC = 658, - SYSID = 659, - SYSTEM_P = 660, - TABLE = 661, - TABLES = 662, - TABLESAMPLE = 663, - TABLESPACE = 664, - TEMP = 665, - TEMPLATE = 666, - TEMPORARY = 667, - TEXT_P = 668, - THEN = 669, - TIME = 670, - TIMESTAMP = 671, - TO = 672, - TRAILING = 673, - TRANSACTION = 674, - TRANSFORM = 675, - TREAT = 676, - TRIGGER = 677, - TRIM = 678, - TRUE_P = 679, - TRUNCATE = 680, - TRUSTED = 681, - TRY_CAST = 682, - TYPE_P = 683, - TYPES_P = 684, - UNBOUNDED = 685, - UNCOMMITTED = 686, - UNENCRYPTED = 687, - UNION = 688, - UNIQUE = 689, - UNKNOWN = 690, - UNLISTEN = 691, - UNLOGGED = 692, - UNTIL = 693, - UPDATE = 694, - USER = 695, - USING = 696, - VACUUM = 697, - VALID = 698, - VALIDATE = 699, - VALIDATOR = 700, - VALUE_P = 701, - VALUES = 702, - VARCHAR = 703, - VARIADIC = 704, - VARYING = 705, - VERBOSE = 706, - VERSION_P = 707, - VIEW = 708, - VIEWS = 709, - VIRTUAL = 710, - VOLATILE = 711, - WHEN = 712, - WHERE = 713, - WHITESPACE_P = 714, - WINDOW = 715, - WITH = 716, - WITHIN = 717, - WITHOUT = 718, - WORK = 719, - WRAPPER = 720, - WRITE_P = 721, - XML_P = 722, - XMLATTRIBUTES = 723, - XMLCONCAT = 724, - XMLELEMENT = 725, - XMLEXISTS = 726, - XMLFOREST = 727, - XMLNAMESPACES = 728, - XMLPARSE = 729, - XMLPI = 730, - XMLROOT = 731, - XMLSERIALIZE = 732, - XMLTABLE = 733, - YEAR_P = 734, - YEARS_P = 735, - YES_P = 736, - ZONE = 737, - NOT_LA = 738, - NULLS_LA = 739, - WITH_LA = 740, - POSTFIXOP = 741, - UMINUS = 742 - }; + enum yytokentype + { + IDENT = 258, + FCONST = 259, + SCONST = 260, + BCONST = 261, + XCONST = 262, + Op = 263, + ICONST = 264, + PARAM = 265, + TYPECAST = 266, + DOT_DOT = 267, + COLON_EQUALS = 268, + EQUALS_GREATER = 269, + POWER_OF = 270, + LAMBDA_ARROW = 271, + DOUBLE_ARROW = 272, + LESS_EQUALS = 273, + GREATER_EQUALS = 274, + NOT_EQUALS = 275, + ABORT_P = 276, + ABSOLUTE_P = 277, + ACCESS = 278, + ACTION = 279, + ADD_P = 280, + ADMIN = 281, + AFTER = 282, + AGGREGATE = 283, + ALL = 284, + ALSO = 285, + ALTER = 286, + ALWAYS = 287, + ANALYSE = 288, + ANALYZE = 289, + AND = 290, + ANY = 291, + ARRAY = 292, + AS = 293, + ASC_P = 294, + ASSERTION = 295, + ASSIGNMENT = 296, + ASYMMETRIC = 297, + AT = 298, + ATTACH = 299, + ATTRIBUTE = 300, + AUTHORIZATION = 301, + BACKWARD = 302, + BEFORE = 303, + BEGIN_P = 304, + BETWEEN = 305, + BIGINT = 306, + BINARY = 307, + BIT = 308, + BOOLEAN_P = 309, + BOTH = 310, + BY = 311, + CACHE = 312, + CALL_P = 313, + CALLED = 314, + CASCADE = 315, + CASCADED = 316, + CASE = 317, + CAST = 318, + CATALOG_P = 319, + CHAIN = 320, + CHAR_P = 321, + CHARACTER = 322, + CHARACTERISTICS = 323, + CHECK_P = 324, + CHECKPOINT = 325, + CLASS = 326, + CLOSE = 327, + CLUSTER = 328, + COALESCE = 329, + COLLATE = 330, + COLLATION = 331, + COLUMN = 332, + COLUMNS = 333, + COMMENT = 334, + COMMENTS = 335, + COMMIT = 336, + COMMITTED = 337, + COMPRESSION = 338, + CONCURRENTLY = 339, + CONFIGURATION = 340, + CONFLICT = 341, + CONNECTION = 342, + CONSTRAINT = 343, + CONSTRAINTS = 344, + CONTENT_P = 345, + CONTINUE_P = 346, + CONVERSION_P = 347, + COPY = 348, + COST = 349, + CREATE_P = 350, + CROSS = 351, + CSV = 352, + CUBE = 353, + CURRENT_P = 354, + CURRENT_CATALOG = 355, + CURRENT_DATE = 356, + CURRENT_ROLE = 357, + CURRENT_SCHEMA = 358, + CURRENT_TIME = 359, + CURRENT_TIMESTAMP = 360, + CURRENT_USER = 361, + CURSOR = 362, + CYCLE = 363, + DATA_P = 364, + DATABASE = 365, + DAY_P = 366, + DAYS_P = 367, + DEALLOCATE = 368, + DEC = 369, + DECIMAL_P = 370, + DECLARE = 371, + DEFAULT = 372, + DEFAULTS = 373, + DEFERRABLE = 374, + DEFERRED = 375, + DEFINER = 376, + DELETE_P = 377, + DELIMITER = 378, + DELIMITERS = 379, + DEPENDS = 380, + DESC_P = 381, + DESCRIBE = 382, + DETACH = 383, + DICTIONARY = 384, + DISABLE_P = 385, + DISCARD = 386, + DISTINCT = 387, + DO = 388, + DOCUMENT_P = 389, + DOMAIN_P = 390, + DOUBLE_P = 391, + DROP = 392, + EACH = 393, + ELSE = 394, + ENABLE_P = 395, + ENCODING = 396, + ENCRYPTED = 397, + END_P = 398, + ENUM_P = 399, + ESCAPE = 400, + EVENT = 401, + EXCEPT = 402, + EXCLUDE = 403, + EXCLUDING = 404, + EXCLUSIVE = 405, + EXECUTE = 406, + EXISTS = 407, + EXPLAIN = 408, + EXPORT_P = 409, + EXPORT_STATE = 410, + EXTENSION = 411, + EXTERNAL = 412, + EXTRACT = 413, + FALSE_P = 414, + FAMILY = 415, + FETCH = 416, + FILTER = 417, + FIRST_P = 418, + FLOAT_P = 419, + FOLLOWING = 420, + FOR = 421, + FORCE = 422, + FOREIGN = 423, + FORWARD = 424, + FREEZE = 425, + FROM = 426, + FULL = 427, + FUNCTION = 428, + FUNCTIONS = 429, + GENERATED = 430, + GLOB = 431, + GLOBAL = 432, + GRANT = 433, + GRANTED = 434, + GROUP_P = 435, + GROUPING = 436, + GROUPING_ID = 437, + HANDLER = 438, + HAVING = 439, + HEADER_P = 440, + HOLD = 441, + HOUR_P = 442, + HOURS_P = 443, + IDENTITY_P = 444, + IF_P = 445, + IGNORE_P = 446, + ILIKE = 447, + IMMEDIATE = 448, + IMMUTABLE = 449, + IMPLICIT_P = 450, + IMPORT_P = 451, + IN_P = 452, + INCLUDING = 453, + INCREMENT = 454, + INDEX = 455, + INDEXES = 456, + INHERIT = 457, + INHERITS = 458, + INITIALLY = 459, + INLINE_P = 460, + INNER_P = 461, + INOUT = 462, + INPUT_P = 463, + INSENSITIVE = 464, + INSERT = 465, + INSTALL = 466, + INSTEAD = 467, + INT_P = 468, + INTEGER = 469, + INTERSECT = 470, + INTERVAL = 471, + INTO = 472, + INVOKER = 473, + IS = 474, + ISNULL = 475, + ISOLATION = 476, + JOIN = 477, + JSON = 478, + KEY = 479, + LABEL = 480, + LANGUAGE = 481, + LARGE_P = 482, + LAST_P = 483, + LATERAL_P = 484, + LEADING = 485, + LEAKPROOF = 486, + LEFT = 487, + LEVEL = 488, + LIKE = 489, + LIMIT = 490, + LISTEN = 491, + LOAD = 492, + LOCAL = 493, + LOCALTIME = 494, + LOCALTIMESTAMP = 495, + LOCATION = 496, + LOCK_P = 497, + LOCKED = 498, + LOGGED = 499, + MACRO = 500, + MAP = 501, + MAPPING = 502, + MATCH = 503, + MATERIALIZED = 504, + MAXVALUE = 505, + METHOD = 506, + MICROSECOND_P = 507, + MICROSECONDS_P = 508, + MILLISECOND_P = 509, + MILLISECONDS_P = 510, + MINUTE_P = 511, + MINUTES_P = 512, + MINVALUE = 513, + MODE = 514, + MONTH_P = 515, + MONTHS_P = 516, + MOVE = 517, + NAME_P = 518, + NAMES = 519, + NATIONAL = 520, + NATURAL = 521, + NCHAR = 522, + NEW = 523, + NEXT = 524, + NO = 525, + NONE = 526, + NOT = 527, + NOTHING = 528, + NOTIFY = 529, + NOTNULL = 530, + NOWAIT = 531, + NULL_P = 532, + NULLIF = 533, + NULLS_P = 534, + NUMERIC = 535, + OBJECT_P = 536, + OF = 537, + OFF = 538, + OFFSET = 539, + OIDS = 540, + OLD = 541, + ON = 542, + ONLY = 543, + OPERATOR = 544, + OPTION = 545, + OPTIONS = 546, + OR = 547, + ORDER = 548, + ORDINALITY = 549, + OUT_P = 550, + OUTER_P = 551, + OVER = 552, + OVERLAPS = 553, + OVERLAY = 554, + OVERRIDING = 555, + OWNED = 556, + OWNER = 557, + PARALLEL = 558, + PARSER = 559, + PARTIAL = 560, + PARTITION = 561, + PASSING = 562, + PASSWORD = 563, + PERCENT = 564, + PLACING = 565, + PLANS = 566, + POLICY = 567, + POSITION = 568, + PRAGMA_P = 569, + PRECEDING = 570, + PRECISION = 571, + PREPARE = 572, + PREPARED = 573, + PRESERVE = 574, + PRIMARY = 575, + PRIOR = 576, + PRIVILEGES = 577, + PROCEDURAL = 578, + PROCEDURE = 579, + PROGRAM = 580, + PUBLICATION = 581, + QUALIFY = 582, + QUOTE = 583, + RANGE = 584, + READ_P = 585, + REAL = 586, + REASSIGN = 587, + RECHECK = 588, + RECURSIVE = 589, + REF = 590, + REFERENCES = 591, + REFERENCING = 592, + REFRESH = 593, + REINDEX = 594, + RELATIVE_P = 595, + RELEASE = 596, + RENAME = 597, + REPEATABLE = 598, + REPLACE = 599, + REPLICA = 600, + RESET = 601, + RESPECT_P = 602, + RESTART = 603, + RESTRICT = 604, + RETURNING = 605, + RETURNS = 606, + REVOKE = 607, + RIGHT = 608, + ROLE = 609, + ROLLBACK = 610, + ROLLUP = 611, + ROW = 612, + ROWS = 613, + RULE = 614, + SAMPLE = 615, + SAVEPOINT = 616, + SCHEMA = 617, + SCHEMAS = 618, + SCROLL = 619, + SEARCH = 620, + SECOND_P = 621, + SECONDS_P = 622, + SECURITY = 623, + SELECT = 624, + SEQUENCE = 625, + SEQUENCES = 626, + SERIALIZABLE = 627, + SERVER = 628, + SESSION = 629, + SESSION_USER = 630, + SET = 631, + SETOF = 632, + SETS = 633, + SHARE = 634, + SHOW = 635, + SIMILAR = 636, + SIMPLE = 637, + SKIP = 638, + SMALLINT = 639, + SNAPSHOT = 640, + SOME = 641, + SQL_P = 642, + STABLE = 643, + STANDALONE_P = 644, + START = 645, + STATEMENT = 646, + STATISTICS = 647, + STDIN = 648, + STDOUT = 649, + STORAGE = 650, + STORED = 651, + STRICT_P = 652, + STRIP_P = 653, + STRUCT = 654, + SUBSCRIPTION = 655, + SUBSTRING = 656, + SUMMARIZE = 657, + SYMMETRIC = 658, + SYSID = 659, + SYSTEM_P = 660, + TABLE = 661, + TABLES = 662, + TABLESAMPLE = 663, + TABLESPACE = 664, + TEMP = 665, + TEMPLATE = 666, + TEMPORARY = 667, + TEXT_P = 668, + THEN = 669, + TIME = 670, + TIMESTAMP = 671, + TO = 672, + TRAILING = 673, + TRANSACTION = 674, + TRANSFORM = 675, + TREAT = 676, + TRIGGER = 677, + TRIM = 678, + TRUE_P = 679, + TRUNCATE = 680, + TRUSTED = 681, + TRY_CAST = 682, + TYPE_P = 683, + TYPES_P = 684, + UNBOUNDED = 685, + UNCOMMITTED = 686, + UNENCRYPTED = 687, + UNION = 688, + UNIQUE = 689, + UNKNOWN = 690, + UNLISTEN = 691, + UNLOGGED = 692, + UNTIL = 693, + UPDATE = 694, + USER = 695, + USING = 696, + VACUUM = 697, + VALID = 698, + VALIDATE = 699, + VALIDATOR = 700, + VALUE_P = 701, + VALUES = 702, + VARCHAR = 703, + VARIADIC = 704, + VARYING = 705, + VERBOSE = 706, + VERSION_P = 707, + VIEW = 708, + VIEWS = 709, + VIRTUAL = 710, + VOLATILE = 711, + WHEN = 712, + WHERE = 713, + WHITESPACE_P = 714, + WINDOW = 715, + WITH = 716, + WITHIN = 717, + WITHOUT = 718, + WORK = 719, + WRAPPER = 720, + WRITE_P = 721, + XML_P = 722, + XMLATTRIBUTES = 723, + XMLCONCAT = 724, + XMLELEMENT = 725, + XMLEXISTS = 726, + XMLFOREST = 727, + XMLNAMESPACES = 728, + XMLPARSE = 729, + XMLPI = 730, + XMLROOT = 731, + XMLSERIALIZE = 732, + XMLTABLE = 733, + YEAR_P = 734, + YEARS_P = 735, + YES_P = 736, + ZONE = 737, + NOT_LA = 738, + NULLS_LA = 739, + WITH_LA = 740, + POSTFIXOP = 741, + UMINUS = 742 + }; #endif -/* Tokens. */ -#define IDENT 258 -#define FCONST 259 -#define SCONST 260 -#define BCONST 261 -#define XCONST 262 -#define Op 263 -#define ICONST 264 -#define PARAM 265 -#define TYPECAST 266 -#define DOT_DOT 267 -#define COLON_EQUALS 268 -#define EQUALS_GREATER 269 -#define POWER_OF 270 -#define LAMBDA_ARROW 271 -#define DOUBLE_ARROW 272 -#define LESS_EQUALS 273 -#define GREATER_EQUALS 274 -#define NOT_EQUALS 275 -#define ABORT_P 276 -#define ABSOLUTE_P 277 -#define ACCESS 278 -#define ACTION 279 -#define ADD_P 280 -#define ADMIN 281 -#define AFTER 282 -#define AGGREGATE 283 -#define ALL 284 -#define ALSO 285 -#define ALTER 286 -#define ALWAYS 287 -#define ANALYSE 288 -#define ANALYZE 289 -#define AND 290 -#define ANY 291 -#define ARRAY 292 -#define AS 293 -#define ASC_P 294 -#define ASSERTION 295 -#define ASSIGNMENT 296 -#define ASYMMETRIC 297 -#define AT 298 -#define ATTACH 299 -#define ATTRIBUTE 300 -#define AUTHORIZATION 301 -#define BACKWARD 302 -#define BEFORE 303 -#define BEGIN_P 304 -#define BETWEEN 305 -#define BIGINT 306 -#define BINARY 307 -#define BIT 308 -#define BOOLEAN_P 309 -#define BOTH 310 -#define BY 311 -#define CACHE 312 -#define CALL_P 313 -#define CALLED 314 -#define CASCADE 315 -#define CASCADED 316 -#define CASE 317 -#define CAST 318 -#define CATALOG_P 319 -#define CHAIN 320 -#define CHAR_P 321 -#define CHARACTER 322 -#define CHARACTERISTICS 323 -#define CHECK_P 324 -#define CHECKPOINT 325 -#define CLASS 326 -#define CLOSE 327 -#define CLUSTER 328 -#define COALESCE 329 -#define COLLATE 330 -#define COLLATION 331 -#define COLUMN 332 -#define COLUMNS 333 -#define COMMENT 334 -#define COMMENTS 335 -#define COMMIT 336 -#define COMMITTED 337 -#define COMPRESSION 338 -#define CONCURRENTLY 339 -#define CONFIGURATION 340 -#define CONFLICT 341 -#define CONNECTION 342 -#define CONSTRAINT 343 -#define CONSTRAINTS 344 -#define CONTENT_P 345 -#define CONTINUE_P 346 -#define CONVERSION_P 347 -#define COPY 348 -#define COST 349 -#define CREATE_P 350 -#define CROSS 351 -#define CSV 352 -#define CUBE 353 -#define CURRENT_P 354 -#define CURRENT_CATALOG 355 -#define CURRENT_DATE 356 -#define CURRENT_ROLE 357 -#define CURRENT_SCHEMA 358 -#define CURRENT_TIME 359 -#define CURRENT_TIMESTAMP 360 -#define CURRENT_USER 361 -#define CURSOR 362 -#define CYCLE 363 -#define DATA_P 364 -#define DATABASE 365 -#define DAY_P 366 -#define DAYS_P 367 -#define DEALLOCATE 368 -#define DEC 369 -#define DECIMAL_P 370 -#define DECLARE 371 -#define DEFAULT 372 -#define DEFAULTS 373 -#define DEFERRABLE 374 -#define DEFERRED 375 -#define DEFINER 376 -#define DELETE_P 377 -#define DELIMITER 378 -#define DELIMITERS 379 -#define DEPENDS 380 -#define DESC_P 381 -#define DESCRIBE 382 -#define DETACH 383 -#define DICTIONARY 384 -#define DISABLE_P 385 -#define DISCARD 386 -#define DISTINCT 387 -#define DO 388 -#define DOCUMENT_P 389 -#define DOMAIN_P 390 -#define DOUBLE_P 391 -#define DROP 392 -#define EACH 393 -#define ELSE 394 -#define ENABLE_P 395 -#define ENCODING 396 -#define ENCRYPTED 397 -#define END_P 398 -#define ENUM_P 399 -#define ESCAPE 400 -#define EVENT 401 -#define EXCEPT 402 -#define EXCLUDE 403 -#define EXCLUDING 404 -#define EXCLUSIVE 405 -#define EXECUTE 406 -#define EXISTS 407 -#define EXPLAIN 408 -#define EXPORT_P 409 -#define EXPORT_STATE 410 -#define EXTENSION 411 -#define EXTERNAL 412 -#define EXTRACT 413 -#define FALSE_P 414 -#define FAMILY 415 -#define FETCH 416 -#define FILTER 417 -#define FIRST_P 418 -#define FLOAT_P 419 -#define FOLLOWING 420 -#define FOR 421 -#define FORCE 422 -#define FOREIGN 423 -#define FORWARD 424 -#define FREEZE 425 -#define FROM 426 -#define FULL 427 -#define FUNCTION 428 -#define FUNCTIONS 429 -#define GENERATED 430 -#define GLOB 431 -#define GLOBAL 432 -#define GRANT 433 -#define GRANTED 434 -#define GROUP_P 435 -#define GROUPING 436 -#define GROUPING_ID 437 -#define HANDLER 438 -#define HAVING 439 -#define HEADER_P 440 -#define HOLD 441 -#define HOUR_P 442 -#define HOURS_P 443 -#define IDENTITY_P 444 -#define IF_P 445 -#define IGNORE_P 446 -#define ILIKE 447 -#define IMMEDIATE 448 -#define IMMUTABLE 449 -#define IMPLICIT_P 450 -#define IMPORT_P 451 -#define IN_P 452 -#define INCLUDING 453 -#define INCREMENT 454 -#define INDEX 455 -#define INDEXES 456 -#define INHERIT 457 -#define INHERITS 458 -#define INITIALLY 459 -#define INLINE_P 460 -#define INNER_P 461 -#define INOUT 462 -#define INPUT_P 463 -#define INSENSITIVE 464 -#define INSERT 465 -#define INSTALL 466 -#define INSTEAD 467 -#define INT_P 468 -#define INTEGER 469 -#define INTERSECT 470 -#define INTERVAL 471 -#define INTO 472 -#define INVOKER 473 -#define IS 474 -#define ISNULL 475 -#define ISOLATION 476 -#define JOIN 477 -#define JSON 478 -#define KEY 479 -#define LABEL 480 -#define LANGUAGE 481 -#define LARGE_P 482 -#define LAST_P 483 -#define LATERAL_P 484 -#define LEADING 485 -#define LEAKPROOF 486 -#define LEFT 487 -#define LEVEL 488 -#define LIKE 489 -#define LIMIT 490 -#define LISTEN 491 -#define LOAD 492 -#define LOCAL 493 -#define LOCALTIME 494 -#define LOCALTIMESTAMP 495 -#define LOCATION 496 -#define LOCK_P 497 -#define LOCKED 498 -#define LOGGED 499 -#define MACRO 500 -#define MAP 501 -#define MAPPING 502 -#define MATCH 503 -#define MATERIALIZED 504 -#define MAXVALUE 505 -#define METHOD 506 -#define MICROSECOND_P 507 -#define MICROSECONDS_P 508 -#define MILLISECOND_P 509 -#define MILLISECONDS_P 510 -#define MINUTE_P 511 -#define MINUTES_P 512 -#define MINVALUE 513 -#define MODE 514 -#define MONTH_P 515 -#define MONTHS_P 516 -#define MOVE 517 -#define NAME_P 518 -#define NAMES 519 -#define NATIONAL 520 -#define NATURAL 521 -#define NCHAR 522 -#define NEW 523 -#define NEXT 524 -#define NO 525 -#define NONE 526 -#define NOT 527 -#define NOTHING 528 -#define NOTIFY 529 -#define NOTNULL 530 -#define NOWAIT 531 -#define NULL_P 532 -#define NULLIF 533 -#define NULLS_P 534 -#define NUMERIC 535 -#define OBJECT_P 536 -#define OF 537 -#define OFF 538 -#define OFFSET 539 -#define OIDS 540 -#define OLD 541 -#define ON 542 -#define ONLY 543 -#define OPERATOR 544 -#define OPTION 545 -#define OPTIONS 546 -#define OR 547 -#define ORDER 548 -#define ORDINALITY 549 -#define OUT_P 550 -#define OUTER_P 551 -#define OVER 552 -#define OVERLAPS 553 -#define OVERLAY 554 -#define OVERRIDING 555 -#define OWNED 556 -#define OWNER 557 -#define PARALLEL 558 -#define PARSER 559 -#define PARTIAL 560 -#define PARTITION 561 -#define PASSING 562 -#define PASSWORD 563 -#define PERCENT 564 -#define PLACING 565 -#define PLANS 566 -#define POLICY 567 -#define POSITION 568 -#define PRAGMA_P 569 -#define PRECEDING 570 -#define PRECISION 571 -#define PREPARE 572 -#define PREPARED 573 -#define PRESERVE 574 -#define PRIMARY 575 -#define PRIOR 576 -#define PRIVILEGES 577 -#define PROCEDURAL 578 -#define PROCEDURE 579 -#define PROGRAM 580 -#define PUBLICATION 581 -#define QUALIFY 582 -#define QUOTE 583 -#define RANGE 584 -#define READ_P 585 -#define REAL 586 -#define REASSIGN 587 -#define RECHECK 588 -#define RECURSIVE 589 -#define REF 590 -#define REFERENCES 591 -#define REFERENCING 592 -#define REFRESH 593 -#define REINDEX 594 -#define RELATIVE_P 595 -#define RELEASE 596 -#define RENAME 597 -#define REPEATABLE 598 -#define REPLACE 599 -#define REPLICA 600 -#define RESET 601 -#define RESPECT_P 602 -#define RESTART 603 -#define RESTRICT 604 -#define RETURNING 605 -#define RETURNS 606 -#define REVOKE 607 -#define RIGHT 608 -#define ROLE 609 -#define ROLLBACK 610 -#define ROLLUP 611 -#define ROW 612 -#define ROWS 613 -#define RULE 614 -#define SAMPLE 615 -#define SAVEPOINT 616 -#define SCHEMA 617 -#define SCHEMAS 618 -#define SCROLL 619 -#define SEARCH 620 -#define SECOND_P 621 -#define SECONDS_P 622 -#define SECURITY 623 -#define SELECT 624 -#define SEQUENCE 625 -#define SEQUENCES 626 -#define SERIALIZABLE 627 -#define SERVER 628 -#define SESSION 629 -#define SESSION_USER 630 -#define SET 631 -#define SETOF 632 -#define SETS 633 -#define SHARE 634 -#define SHOW 635 -#define SIMILAR 636 -#define SIMPLE 637 -#define SKIP 638 -#define SMALLINT 639 -#define SNAPSHOT 640 -#define SOME 641 -#define SQL_P 642 -#define STABLE 643 -#define STANDALONE_P 644 -#define START 645 -#define STATEMENT 646 -#define STATISTICS 647 -#define STDIN 648 -#define STDOUT 649 -#define STORAGE 650 -#define STORED 651 -#define STRICT_P 652 -#define STRIP_P 653 -#define STRUCT 654 -#define SUBSCRIPTION 655 -#define SUBSTRING 656 -#define SUMMARIZE 657 -#define SYMMETRIC 658 -#define SYSID 659 -#define SYSTEM_P 660 -#define TABLE 661 -#define TABLES 662 -#define TABLESAMPLE 663 -#define TABLESPACE 664 -#define TEMP 665 -#define TEMPLATE 666 -#define TEMPORARY 667 -#define TEXT_P 668 -#define THEN 669 -#define TIME 670 -#define TIMESTAMP 671 -#define TO 672 -#define TRAILING 673 -#define TRANSACTION 674 -#define TRANSFORM 675 -#define TREAT 676 -#define TRIGGER 677 -#define TRIM 678 -#define TRUE_P 679 -#define TRUNCATE 680 -#define TRUSTED 681 -#define TRY_CAST 682 -#define TYPE_P 683 -#define TYPES_P 684 -#define UNBOUNDED 685 -#define UNCOMMITTED 686 -#define UNENCRYPTED 687 -#define UNION 688 -#define UNIQUE 689 -#define UNKNOWN 690 -#define UNLISTEN 691 -#define UNLOGGED 692 -#define UNTIL 693 -#define UPDATE 694 -#define USER 695 -#define USING 696 -#define VACUUM 697 -#define VALID 698 -#define VALIDATE 699 -#define VALIDATOR 700 -#define VALUE_P 701 -#define VALUES 702 -#define VARCHAR 703 -#define VARIADIC 704 -#define VARYING 705 -#define VERBOSE 706 -#define VERSION_P 707 -#define VIEW 708 -#define VIEWS 709 -#define VIRTUAL 710 -#define VOLATILE 711 -#define WHEN 712 -#define WHERE 713 -#define WHITESPACE_P 714 -#define WINDOW 715 -#define WITH 716 -#define WITHIN 717 -#define WITHOUT 718 -#define WORK 719 -#define WRAPPER 720 -#define WRITE_P 721 -#define XML_P 722 -#define XMLATTRIBUTES 723 -#define XMLCONCAT 724 -#define XMLELEMENT 725 -#define XMLEXISTS 726 -#define XMLFOREST 727 -#define XMLNAMESPACES 728 -#define XMLPARSE 729 -#define XMLPI 730 -#define XMLROOT 731 -#define XMLSERIALIZE 732 -#define XMLTABLE 733 -#define YEAR_P 734 -#define YEARS_P 735 -#define YES_P 736 -#define ZONE 737 -#define NOT_LA 738 -#define NULLS_LA 739 -#define WITH_LA 740 -#define POSTFIXOP 741 -#define UMINUS 742 - - - +/* Value type. */ #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED -typedef union YYSTYPE -#line 14 "third_party/libpg_query/grammar/grammar.y" +union YYSTYPE { +#line 14 "third_party/libpg_query/grammar/grammar.y" + core_YYSTYPE core_yystype; /* these fields must match core_YYSTYPE: */ int ival; @@ -1062,28 +585,31 @@ typedef union YYSTYPE PGLockWaitPolicy lockwaitpolicy; PGSubLinkType subquerytype; PGViewCheckOption viewcheckoption; -} -/* Line 1489 of yacc.c. */ -#line 1068 "third_party/libpg_query/grammar/grammar_out.hpp" - YYSTYPE; -# define yystype YYSTYPE /* obsolescent; will be withdrawn */ -# define YYSTYPE_IS_DECLARED 1 -# define YYSTYPE_IS_TRIVIAL 1 -#endif +#line 590 "third_party/libpg_query/grammar/grammar_out.hpp" +}; +typedef union YYSTYPE YYSTYPE; +# define YYSTYPE_IS_TRIVIAL 1 +# define YYSTYPE_IS_DECLARED 1 +#endif +/* Location type. */ #if ! defined YYLTYPE && ! defined YYLTYPE_IS_DECLARED -typedef struct YYLTYPE +typedef struct YYLTYPE YYLTYPE; +struct YYLTYPE { int first_line; int first_column; int last_line; int last_column; -} YYLTYPE; -# define yyltype YYLTYPE /* obsolescent; will be withdrawn */ +}; # define YYLTYPE_IS_DECLARED 1 # define YYLTYPE_IS_TRIVIAL 1 #endif + +int base_yyparse (core_yyscan_t yyscanner); + +#endif /* !YY_BASE_YY_THIRD_PARTY_LIBPG_QUERY_GRAMMAR_GRAMMAR_OUT_HPP_INCLUDED */ diff --git a/third_party/libpg_query/include/parser/kwlist.hpp b/third_party/libpg_query/include/parser/kwlist.hpp index d3c99fe6a..4c63a004a 100755 --- a/third_party/libpg_query/include/parser/kwlist.hpp +++ b/third_party/libpg_query/include/parser/kwlist.hpp @@ -1,7 +1,6 @@ namespace duckdb_libpgquery { #define PG_KEYWORD(a,b,c) {a,b,c}, - const PGScanKeyword ScanKeywords[] = { PG_KEYWORD("abort", ABORT_P, UNRESERVED_KEYWORD) PG_KEYWORD("absolute", ABSOLUTE_P, UNRESERVED_KEYWORD) @@ -467,6 +466,5 @@ PG_KEYWORD("yes", YES_P, UNRESERVED_KEYWORD) PG_KEYWORD("zone", ZONE, UNRESERVED_KEYWORD) }; - const int NumScanKeywords = lengthof(ScanKeywords); } // namespace duckdb_libpgquery diff --git a/third_party/libpg_query/src_backend_parser_gram.cpp b/third_party/libpg_query/src_backend_parser_gram.cpp index b3b7e7496..cd9572a4e 100644 --- a/third_party/libpg_query/src_backend_parser_gram.cpp +++ b/third_party/libpg_query/src_backend_parser_gram.cpp @@ -1,14 +1,14 @@ -/* A Bison parser, made by GNU Bison 2.3. */ +/* A Bison parser, made by GNU Bison 3.5.1. */ -/* Skeleton implementation for Bison's Yacc-like parsers in C +/* Bison implementation for Yacc-like parsers in C - Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006 - Free Software Foundation, Inc. + Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2020 Free Software Foundation, + Inc. - This program is free software; you can redistribute it and/or modify + This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -16,9 +16,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA 02110-1301, USA. */ + along with this program. If not, see . */ /* As a special exception, you may create a larger work that contains part or all of the Bison parser skeleton and distribute that work @@ -43,11 +41,14 @@ define necessary library symbols; they are noted "INFRINGES ON USER NAME SPACE" below. */ +/* Undocumented macros, especially those whose name start with YY_, + are private implementation details. Do not rely on them. */ + /* Identify Bison output. */ #define YYBISON 1 /* Bison version. */ -#define YYBISON_VERSION "2.3" +#define YYBISON_VERSION "3.5.1" /* Skeleton name. */ #define YYSKELETON_NAME "yacc.c" @@ -55,1003 +56,21 @@ /* Pure parsers. */ #define YYPURE 1 -/* Using locations. */ -#define YYLSP_NEEDED 1 +/* Push parsers. */ +#define YYPUSH 0 + +/* Pull parsers. */ +#define YYPULL 1 + /* Substitute the variable and function names. */ -#define yyparse base_yyparse -#define yylex base_yylex -#define yyerror base_yyerror -#define yylval base_yylval -#define yychar base_yychar -#define yydebug base_yydebug -#define yynerrs base_yynerrs -#define yylloc base_yylloc - -/* Tokens. */ -#ifndef YYTOKENTYPE -# define YYTOKENTYPE - /* Put the tokens into the symbol table, so that GDB and other debuggers - know about them. */ - enum yytokentype { - IDENT = 258, - FCONST = 259, - SCONST = 260, - BCONST = 261, - XCONST = 262, - Op = 263, - ICONST = 264, - PARAM = 265, - TYPECAST = 266, - DOT_DOT = 267, - COLON_EQUALS = 268, - EQUALS_GREATER = 269, - POWER_OF = 270, - LAMBDA_ARROW = 271, - DOUBLE_ARROW = 272, - LESS_EQUALS = 273, - GREATER_EQUALS = 274, - NOT_EQUALS = 275, - ABORT_P = 276, - ABSOLUTE_P = 277, - ACCESS = 278, - ACTION = 279, - ADD_P = 280, - ADMIN = 281, - AFTER = 282, - AGGREGATE = 283, - ALL = 284, - ALSO = 285, - ALTER = 286, - ALWAYS = 287, - ANALYSE = 288, - ANALYZE = 289, - AND = 290, - ANY = 291, - ARRAY = 292, - AS = 293, - ASC_P = 294, - ASSERTION = 295, - ASSIGNMENT = 296, - ASYMMETRIC = 297, - AT = 298, - ATTACH = 299, - ATTRIBUTE = 300, - AUTHORIZATION = 301, - BACKWARD = 302, - BEFORE = 303, - BEGIN_P = 304, - BETWEEN = 305, - BIGINT = 306, - BINARY = 307, - BIT = 308, - BOOLEAN_P = 309, - BOTH = 310, - BY = 311, - CACHE = 312, - CALL_P = 313, - CALLED = 314, - CASCADE = 315, - CASCADED = 316, - CASE = 317, - CAST = 318, - CATALOG_P = 319, - CHAIN = 320, - CHAR_P = 321, - CHARACTER = 322, - CHARACTERISTICS = 323, - CHECK_P = 324, - CHECKPOINT = 325, - CLASS = 326, - CLOSE = 327, - CLUSTER = 328, - COALESCE = 329, - COLLATE = 330, - COLLATION = 331, - COLUMN = 332, - COLUMNS = 333, - COMMENT = 334, - COMMENTS = 335, - COMMIT = 336, - COMMITTED = 337, - COMPRESSION = 338, - CONCURRENTLY = 339, - CONFIGURATION = 340, - CONFLICT = 341, - CONNECTION = 342, - CONSTRAINT = 343, - CONSTRAINTS = 344, - CONTENT_P = 345, - CONTINUE_P = 346, - CONVERSION_P = 347, - COPY = 348, - COST = 349, - CREATE_P = 350, - CROSS = 351, - CSV = 352, - CUBE = 353, - CURRENT_P = 354, - CURRENT_CATALOG = 355, - CURRENT_DATE = 356, - CURRENT_ROLE = 357, - CURRENT_SCHEMA = 358, - CURRENT_TIME = 359, - CURRENT_TIMESTAMP = 360, - CURRENT_USER = 361, - CURSOR = 362, - CYCLE = 363, - DATA_P = 364, - DATABASE = 365, - DAY_P = 366, - DAYS_P = 367, - DEALLOCATE = 368, - DEC = 369, - DECIMAL_P = 370, - DECLARE = 371, - DEFAULT = 372, - DEFAULTS = 373, - DEFERRABLE = 374, - DEFERRED = 375, - DEFINER = 376, - DELETE_P = 377, - DELIMITER = 378, - DELIMITERS = 379, - DEPENDS = 380, - DESC_P = 381, - DESCRIBE = 382, - DETACH = 383, - DICTIONARY = 384, - DISABLE_P = 385, - DISCARD = 386, - DISTINCT = 387, - DO = 388, - DOCUMENT_P = 389, - DOMAIN_P = 390, - DOUBLE_P = 391, - DROP = 392, - EACH = 393, - ELSE = 394, - ENABLE_P = 395, - ENCODING = 396, - ENCRYPTED = 397, - END_P = 398, - ENUM_P = 399, - ESCAPE = 400, - EVENT = 401, - EXCEPT = 402, - EXCLUDE = 403, - EXCLUDING = 404, - EXCLUSIVE = 405, - EXECUTE = 406, - EXISTS = 407, - EXPLAIN = 408, - EXPORT_P = 409, - EXPORT_STATE = 410, - EXTENSION = 411, - EXTERNAL = 412, - EXTRACT = 413, - FALSE_P = 414, - FAMILY = 415, - FETCH = 416, - FILTER = 417, - FIRST_P = 418, - FLOAT_P = 419, - FOLLOWING = 420, - FOR = 421, - FORCE = 422, - FOREIGN = 423, - FORWARD = 424, - FREEZE = 425, - FROM = 426, - FULL = 427, - FUNCTION = 428, - FUNCTIONS = 429, - GENERATED = 430, - GLOB = 431, - GLOBAL = 432, - GRANT = 433, - GRANTED = 434, - GROUP_P = 435, - GROUPING = 436, - GROUPING_ID = 437, - HANDLER = 438, - HAVING = 439, - HEADER_P = 440, - HOLD = 441, - HOUR_P = 442, - HOURS_P = 443, - IDENTITY_P = 444, - IF_P = 445, - IGNORE_P = 446, - ILIKE = 447, - IMMEDIATE = 448, - IMMUTABLE = 449, - IMPLICIT_P = 450, - IMPORT_P = 451, - IN_P = 452, - INCLUDING = 453, - INCREMENT = 454, - INDEX = 455, - INDEXES = 456, - INHERIT = 457, - INHERITS = 458, - INITIALLY = 459, - INLINE_P = 460, - INNER_P = 461, - INOUT = 462, - INPUT_P = 463, - INSENSITIVE = 464, - INSERT = 465, - INSTALL = 466, - INSTEAD = 467, - INT_P = 468, - INTEGER = 469, - INTERSECT = 470, - INTERVAL = 471, - INTO = 472, - INVOKER = 473, - IS = 474, - ISNULL = 475, - ISOLATION = 476, - JOIN = 477, - JSON = 478, - KEY = 479, - LABEL = 480, - LANGUAGE = 481, - LARGE_P = 482, - LAST_P = 483, - LATERAL_P = 484, - LEADING = 485, - LEAKPROOF = 486, - LEFT = 487, - LEVEL = 488, - LIKE = 489, - LIMIT = 490, - LISTEN = 491, - LOAD = 492, - LOCAL = 493, - LOCALTIME = 494, - LOCALTIMESTAMP = 495, - LOCATION = 496, - LOCK_P = 497, - LOCKED = 498, - LOGGED = 499, - MACRO = 500, - MAP = 501, - MAPPING = 502, - MATCH = 503, - MATERIALIZED = 504, - MAXVALUE = 505, - METHOD = 506, - MICROSECOND_P = 507, - MICROSECONDS_P = 508, - MILLISECOND_P = 509, - MILLISECONDS_P = 510, - MINUTE_P = 511, - MINUTES_P = 512, - MINVALUE = 513, - MODE = 514, - MONTH_P = 515, - MONTHS_P = 516, - MOVE = 517, - NAME_P = 518, - NAMES = 519, - NATIONAL = 520, - NATURAL = 521, - NCHAR = 522, - NEW = 523, - NEXT = 524, - NO = 525, - NONE = 526, - NOT = 527, - NOTHING = 528, - NOTIFY = 529, - NOTNULL = 530, - NOWAIT = 531, - NULL_P = 532, - NULLIF = 533, - NULLS_P = 534, - NUMERIC = 535, - OBJECT_P = 536, - OF = 537, - OFF = 538, - OFFSET = 539, - OIDS = 540, - OLD = 541, - ON = 542, - ONLY = 543, - OPERATOR = 544, - OPTION = 545, - OPTIONS = 546, - OR = 547, - ORDER = 548, - ORDINALITY = 549, - OUT_P = 550, - OUTER_P = 551, - OVER = 552, - OVERLAPS = 553, - OVERLAY = 554, - OVERRIDING = 555, - OWNED = 556, - OWNER = 557, - PARALLEL = 558, - PARSER = 559, - PARTIAL = 560, - PARTITION = 561, - PASSING = 562, - PASSWORD = 563, - PERCENT = 564, - PLACING = 565, - PLANS = 566, - POLICY = 567, - POSITION = 568, - PRAGMA_P = 569, - PRECEDING = 570, - PRECISION = 571, - PREPARE = 572, - PREPARED = 573, - PRESERVE = 574, - PRIMARY = 575, - PRIOR = 576, - PRIVILEGES = 577, - PROCEDURAL = 578, - PROCEDURE = 579, - PROGRAM = 580, - PUBLICATION = 581, - QUALIFY = 582, - QUOTE = 583, - RANGE = 584, - READ_P = 585, - REAL = 586, - REASSIGN = 587, - RECHECK = 588, - RECURSIVE = 589, - REF = 590, - REFERENCES = 591, - REFERENCING = 592, - REFRESH = 593, - REINDEX = 594, - RELATIVE_P = 595, - RELEASE = 596, - RENAME = 597, - REPEATABLE = 598, - REPLACE = 599, - REPLICA = 600, - RESET = 601, - RESPECT_P = 602, - RESTART = 603, - RESTRICT = 604, - RETURNING = 605, - RETURNS = 606, - REVOKE = 607, - RIGHT = 608, - ROLE = 609, - ROLLBACK = 610, - ROLLUP = 611, - ROW = 612, - ROWS = 613, - RULE = 614, - SAMPLE = 615, - SAVEPOINT = 616, - SCHEMA = 617, - SCHEMAS = 618, - SCROLL = 619, - SEARCH = 620, - SECOND_P = 621, - SECONDS_P = 622, - SECURITY = 623, - SELECT = 624, - SEQUENCE = 625, - SEQUENCES = 626, - SERIALIZABLE = 627, - SERVER = 628, - SESSION = 629, - SESSION_USER = 630, - SET = 631, - SETOF = 632, - SETS = 633, - SHARE = 634, - SHOW = 635, - SIMILAR = 636, - SIMPLE = 637, - SKIP = 638, - SMALLINT = 639, - SNAPSHOT = 640, - SOME = 641, - SQL_P = 642, - STABLE = 643, - STANDALONE_P = 644, - START = 645, - STATEMENT = 646, - STATISTICS = 647, - STDIN = 648, - STDOUT = 649, - STORAGE = 650, - STORED = 651, - STRICT_P = 652, - STRIP_P = 653, - STRUCT = 654, - SUBSCRIPTION = 655, - SUBSTRING = 656, - SUMMARIZE = 657, - SYMMETRIC = 658, - SYSID = 659, - SYSTEM_P = 660, - TABLE = 661, - TABLES = 662, - TABLESAMPLE = 663, - TABLESPACE = 664, - TEMP = 665, - TEMPLATE = 666, - TEMPORARY = 667, - TEXT_P = 668, - THEN = 669, - TIME = 670, - TIMESTAMP = 671, - TO = 672, - TRAILING = 673, - TRANSACTION = 674, - TRANSFORM = 675, - TREAT = 676, - TRIGGER = 677, - TRIM = 678, - TRUE_P = 679, - TRUNCATE = 680, - TRUSTED = 681, - TRY_CAST = 682, - TYPE_P = 683, - TYPES_P = 684, - UNBOUNDED = 685, - UNCOMMITTED = 686, - UNENCRYPTED = 687, - UNION = 688, - UNIQUE = 689, - UNKNOWN = 690, - UNLISTEN = 691, - UNLOGGED = 692, - UNTIL = 693, - UPDATE = 694, - USER = 695, - USING = 696, - VACUUM = 697, - VALID = 698, - VALIDATE = 699, - VALIDATOR = 700, - VALUE_P = 701, - VALUES = 702, - VARCHAR = 703, - VARIADIC = 704, - VARYING = 705, - VERBOSE = 706, - VERSION_P = 707, - VIEW = 708, - VIEWS = 709, - VIRTUAL = 710, - VOLATILE = 711, - WHEN = 712, - WHERE = 713, - WHITESPACE_P = 714, - WINDOW = 715, - WITH = 716, - WITHIN = 717, - WITHOUT = 718, - WORK = 719, - WRAPPER = 720, - WRITE_P = 721, - XML_P = 722, - XMLATTRIBUTES = 723, - XMLCONCAT = 724, - XMLELEMENT = 725, - XMLEXISTS = 726, - XMLFOREST = 727, - XMLNAMESPACES = 728, - XMLPARSE = 729, - XMLPI = 730, - XMLROOT = 731, - XMLSERIALIZE = 732, - XMLTABLE = 733, - YEAR_P = 734, - YEARS_P = 735, - YES_P = 736, - ZONE = 737, - NOT_LA = 738, - NULLS_LA = 739, - WITH_LA = 740, - POSTFIXOP = 741, - UMINUS = 742 - }; -#endif -/* Tokens. */ -#define IDENT 258 -#define FCONST 259 -#define SCONST 260 -#define BCONST 261 -#define XCONST 262 -#define Op 263 -#define ICONST 264 -#define PARAM 265 -#define TYPECAST 266 -#define DOT_DOT 267 -#define COLON_EQUALS 268 -#define EQUALS_GREATER 269 -#define POWER_OF 270 -#define LAMBDA_ARROW 271 -#define DOUBLE_ARROW 272 -#define LESS_EQUALS 273 -#define GREATER_EQUALS 274 -#define NOT_EQUALS 275 -#define ABORT_P 276 -#define ABSOLUTE_P 277 -#define ACCESS 278 -#define ACTION 279 -#define ADD_P 280 -#define ADMIN 281 -#define AFTER 282 -#define AGGREGATE 283 -#define ALL 284 -#define ALSO 285 -#define ALTER 286 -#define ALWAYS 287 -#define ANALYSE 288 -#define ANALYZE 289 -#define AND 290 -#define ANY 291 -#define ARRAY 292 -#define AS 293 -#define ASC_P 294 -#define ASSERTION 295 -#define ASSIGNMENT 296 -#define ASYMMETRIC 297 -#define AT 298 -#define ATTACH 299 -#define ATTRIBUTE 300 -#define AUTHORIZATION 301 -#define BACKWARD 302 -#define BEFORE 303 -#define BEGIN_P 304 -#define BETWEEN 305 -#define BIGINT 306 -#define BINARY 307 -#define BIT 308 -#define BOOLEAN_P 309 -#define BOTH 310 -#define BY 311 -#define CACHE 312 -#define CALL_P 313 -#define CALLED 314 -#define CASCADE 315 -#define CASCADED 316 -#define CASE 317 -#define CAST 318 -#define CATALOG_P 319 -#define CHAIN 320 -#define CHAR_P 321 -#define CHARACTER 322 -#define CHARACTERISTICS 323 -#define CHECK_P 324 -#define CHECKPOINT 325 -#define CLASS 326 -#define CLOSE 327 -#define CLUSTER 328 -#define COALESCE 329 -#define COLLATE 330 -#define COLLATION 331 -#define COLUMN 332 -#define COLUMNS 333 -#define COMMENT 334 -#define COMMENTS 335 -#define COMMIT 336 -#define COMMITTED 337 -#define COMPRESSION 338 -#define CONCURRENTLY 339 -#define CONFIGURATION 340 -#define CONFLICT 341 -#define CONNECTION 342 -#define CONSTRAINT 343 -#define CONSTRAINTS 344 -#define CONTENT_P 345 -#define CONTINUE_P 346 -#define CONVERSION_P 347 -#define COPY 348 -#define COST 349 -#define CREATE_P 350 -#define CROSS 351 -#define CSV 352 -#define CUBE 353 -#define CURRENT_P 354 -#define CURRENT_CATALOG 355 -#define CURRENT_DATE 356 -#define CURRENT_ROLE 357 -#define CURRENT_SCHEMA 358 -#define CURRENT_TIME 359 -#define CURRENT_TIMESTAMP 360 -#define CURRENT_USER 361 -#define CURSOR 362 -#define CYCLE 363 -#define DATA_P 364 -#define DATABASE 365 -#define DAY_P 366 -#define DAYS_P 367 -#define DEALLOCATE 368 -#define DEC 369 -#define DECIMAL_P 370 -#define DECLARE 371 -#define DEFAULT 372 -#define DEFAULTS 373 -#define DEFERRABLE 374 -#define DEFERRED 375 -#define DEFINER 376 -#define DELETE_P 377 -#define DELIMITER 378 -#define DELIMITERS 379 -#define DEPENDS 380 -#define DESC_P 381 -#define DESCRIBE 382 -#define DETACH 383 -#define DICTIONARY 384 -#define DISABLE_P 385 -#define DISCARD 386 -#define DISTINCT 387 -#define DO 388 -#define DOCUMENT_P 389 -#define DOMAIN_P 390 -#define DOUBLE_P 391 -#define DROP 392 -#define EACH 393 -#define ELSE 394 -#define ENABLE_P 395 -#define ENCODING 396 -#define ENCRYPTED 397 -#define END_P 398 -#define ENUM_P 399 -#define ESCAPE 400 -#define EVENT 401 -#define EXCEPT 402 -#define EXCLUDE 403 -#define EXCLUDING 404 -#define EXCLUSIVE 405 -#define EXECUTE 406 -#define EXISTS 407 -#define EXPLAIN 408 -#define EXPORT_P 409 -#define EXPORT_STATE 410 -#define EXTENSION 411 -#define EXTERNAL 412 -#define EXTRACT 413 -#define FALSE_P 414 -#define FAMILY 415 -#define FETCH 416 -#define FILTER 417 -#define FIRST_P 418 -#define FLOAT_P 419 -#define FOLLOWING 420 -#define FOR 421 -#define FORCE 422 -#define FOREIGN 423 -#define FORWARD 424 -#define FREEZE 425 -#define FROM 426 -#define FULL 427 -#define FUNCTION 428 -#define FUNCTIONS 429 -#define GENERATED 430 -#define GLOB 431 -#define GLOBAL 432 -#define GRANT 433 -#define GRANTED 434 -#define GROUP_P 435 -#define GROUPING 436 -#define GROUPING_ID 437 -#define HANDLER 438 -#define HAVING 439 -#define HEADER_P 440 -#define HOLD 441 -#define HOUR_P 442 -#define HOURS_P 443 -#define IDENTITY_P 444 -#define IF_P 445 -#define IGNORE_P 446 -#define ILIKE 447 -#define IMMEDIATE 448 -#define IMMUTABLE 449 -#define IMPLICIT_P 450 -#define IMPORT_P 451 -#define IN_P 452 -#define INCLUDING 453 -#define INCREMENT 454 -#define INDEX 455 -#define INDEXES 456 -#define INHERIT 457 -#define INHERITS 458 -#define INITIALLY 459 -#define INLINE_P 460 -#define INNER_P 461 -#define INOUT 462 -#define INPUT_P 463 -#define INSENSITIVE 464 -#define INSERT 465 -#define INSTALL 466 -#define INSTEAD 467 -#define INT_P 468 -#define INTEGER 469 -#define INTERSECT 470 -#define INTERVAL 471 -#define INTO 472 -#define INVOKER 473 -#define IS 474 -#define ISNULL 475 -#define ISOLATION 476 -#define JOIN 477 -#define JSON 478 -#define KEY 479 -#define LABEL 480 -#define LANGUAGE 481 -#define LARGE_P 482 -#define LAST_P 483 -#define LATERAL_P 484 -#define LEADING 485 -#define LEAKPROOF 486 -#define LEFT 487 -#define LEVEL 488 -#define LIKE 489 -#define LIMIT 490 -#define LISTEN 491 -#define LOAD 492 -#define LOCAL 493 -#define LOCALTIME 494 -#define LOCALTIMESTAMP 495 -#define LOCATION 496 -#define LOCK_P 497 -#define LOCKED 498 -#define LOGGED 499 -#define MACRO 500 -#define MAP 501 -#define MAPPING 502 -#define MATCH 503 -#define MATERIALIZED 504 -#define MAXVALUE 505 -#define METHOD 506 -#define MICROSECOND_P 507 -#define MICROSECONDS_P 508 -#define MILLISECOND_P 509 -#define MILLISECONDS_P 510 -#define MINUTE_P 511 -#define MINUTES_P 512 -#define MINVALUE 513 -#define MODE 514 -#define MONTH_P 515 -#define MONTHS_P 516 -#define MOVE 517 -#define NAME_P 518 -#define NAMES 519 -#define NATIONAL 520 -#define NATURAL 521 -#define NCHAR 522 -#define NEW 523 -#define NEXT 524 -#define NO 525 -#define NONE 526 -#define NOT 527 -#define NOTHING 528 -#define NOTIFY 529 -#define NOTNULL 530 -#define NOWAIT 531 -#define NULL_P 532 -#define NULLIF 533 -#define NULLS_P 534 -#define NUMERIC 535 -#define OBJECT_P 536 -#define OF 537 -#define OFF 538 -#define OFFSET 539 -#define OIDS 540 -#define OLD 541 -#define ON 542 -#define ONLY 543 -#define OPERATOR 544 -#define OPTION 545 -#define OPTIONS 546 -#define OR 547 -#define ORDER 548 -#define ORDINALITY 549 -#define OUT_P 550 -#define OUTER_P 551 -#define OVER 552 -#define OVERLAPS 553 -#define OVERLAY 554 -#define OVERRIDING 555 -#define OWNED 556 -#define OWNER 557 -#define PARALLEL 558 -#define PARSER 559 -#define PARTIAL 560 -#define PARTITION 561 -#define PASSING 562 -#define PASSWORD 563 -#define PERCENT 564 -#define PLACING 565 -#define PLANS 566 -#define POLICY 567 -#define POSITION 568 -#define PRAGMA_P 569 -#define PRECEDING 570 -#define PRECISION 571 -#define PREPARE 572 -#define PREPARED 573 -#define PRESERVE 574 -#define PRIMARY 575 -#define PRIOR 576 -#define PRIVILEGES 577 -#define PROCEDURAL 578 -#define PROCEDURE 579 -#define PROGRAM 580 -#define PUBLICATION 581 -#define QUALIFY 582 -#define QUOTE 583 -#define RANGE 584 -#define READ_P 585 -#define REAL 586 -#define REASSIGN 587 -#define RECHECK 588 -#define RECURSIVE 589 -#define REF 590 -#define REFERENCES 591 -#define REFERENCING 592 -#define REFRESH 593 -#define REINDEX 594 -#define RELATIVE_P 595 -#define RELEASE 596 -#define RENAME 597 -#define REPEATABLE 598 -#define REPLACE 599 -#define REPLICA 600 -#define RESET 601 -#define RESPECT_P 602 -#define RESTART 603 -#define RESTRICT 604 -#define RETURNING 605 -#define RETURNS 606 -#define REVOKE 607 -#define RIGHT 608 -#define ROLE 609 -#define ROLLBACK 610 -#define ROLLUP 611 -#define ROW 612 -#define ROWS 613 -#define RULE 614 -#define SAMPLE 615 -#define SAVEPOINT 616 -#define SCHEMA 617 -#define SCHEMAS 618 -#define SCROLL 619 -#define SEARCH 620 -#define SECOND_P 621 -#define SECONDS_P 622 -#define SECURITY 623 -#define SELECT 624 -#define SEQUENCE 625 -#define SEQUENCES 626 -#define SERIALIZABLE 627 -#define SERVER 628 -#define SESSION 629 -#define SESSION_USER 630 -#define SET 631 -#define SETOF 632 -#define SETS 633 -#define SHARE 634 -#define SHOW 635 -#define SIMILAR 636 -#define SIMPLE 637 -#define SKIP 638 -#define SMALLINT 639 -#define SNAPSHOT 640 -#define SOME 641 -#define SQL_P 642 -#define STABLE 643 -#define STANDALONE_P 644 -#define START 645 -#define STATEMENT 646 -#define STATISTICS 647 -#define STDIN 648 -#define STDOUT 649 -#define STORAGE 650 -#define STORED 651 -#define STRICT_P 652 -#define STRIP_P 653 -#define STRUCT 654 -#define SUBSCRIPTION 655 -#define SUBSTRING 656 -#define SUMMARIZE 657 -#define SYMMETRIC 658 -#define SYSID 659 -#define SYSTEM_P 660 -#define TABLE 661 -#define TABLES 662 -#define TABLESAMPLE 663 -#define TABLESPACE 664 -#define TEMP 665 -#define TEMPLATE 666 -#define TEMPORARY 667 -#define TEXT_P 668 -#define THEN 669 -#define TIME 670 -#define TIMESTAMP 671 -#define TO 672 -#define TRAILING 673 -#define TRANSACTION 674 -#define TRANSFORM 675 -#define TREAT 676 -#define TRIGGER 677 -#define TRIM 678 -#define TRUE_P 679 -#define TRUNCATE 680 -#define TRUSTED 681 -#define TRY_CAST 682 -#define TYPE_P 683 -#define TYPES_P 684 -#define UNBOUNDED 685 -#define UNCOMMITTED 686 -#define UNENCRYPTED 687 -#define UNION 688 -#define UNIQUE 689 -#define UNKNOWN 690 -#define UNLISTEN 691 -#define UNLOGGED 692 -#define UNTIL 693 -#define UPDATE 694 -#define USER 695 -#define USING 696 -#define VACUUM 697 -#define VALID 698 -#define VALIDATE 699 -#define VALIDATOR 700 -#define VALUE_P 701 -#define VALUES 702 -#define VARCHAR 703 -#define VARIADIC 704 -#define VARYING 705 -#define VERBOSE 706 -#define VERSION_P 707 -#define VIEW 708 -#define VIEWS 709 -#define VIRTUAL 710 -#define VOLATILE 711 -#define WHEN 712 -#define WHERE 713 -#define WHITESPACE_P 714 -#define WINDOW 715 -#define WITH 716 -#define WITHIN 717 -#define WITHOUT 718 -#define WORK 719 -#define WRAPPER 720 -#define WRITE_P 721 -#define XML_P 722 -#define XMLATTRIBUTES 723 -#define XMLCONCAT 724 -#define XMLELEMENT 725 -#define XMLEXISTS 726 -#define XMLFOREST 727 -#define XMLNAMESPACES 728 -#define XMLPARSE 729 -#define XMLPI 730 -#define XMLROOT 731 -#define XMLSERIALIZE 732 -#define XMLTABLE 733 -#define YEAR_P 734 -#define YEARS_P 735 -#define YES_P 736 -#define ZONE 737 -#define NOT_LA 738 -#define NULLS_LA 739 -#define WITH_LA 740 -#define POSTFIXOP 741 -#define UMINUS 742 - - - - -/* Copy the first part of user declarations. */ +#define yyparse base_yyparse +#define yylex base_yylex +#define yyerror base_yyerror +#define yydebug base_yydebug +#define yynerrs base_yynerrs + +/* First part of user prologue. */ #line 1 "third_party/libpg_query/grammar/grammar.y.tmp" #line 1 "third_party/libpg_query/grammar/grammar.hpp" @@ -1218,11 +237,28 @@ static PGNode *makeRecursiveViewSelect(char *relname, PGList *aliases, PGNode *q static PGNode *makeLimitPercent(PGNode *limit_percent); +#line 241 "third_party/libpg_query/grammar/grammar_out.cpp" -/* Enabling traces. */ -#ifndef YYDEBUG -# define YYDEBUG 0 -#endif +# ifndef YY_CAST +# ifdef __cplusplus +# define YY_CAST(Type, Val) static_cast (Val) +# define YY_REINTERPRET_CAST(Type, Val) reinterpret_cast (Val) +# else +# define YY_CAST(Type, Val) ((Type) (Val)) +# define YY_REINTERPRET_CAST(Type, Val) ((Type) (Val)) +# endif +# endif +# ifndef YY_NULLPTR +# if defined __cplusplus +# if 201103L <= __cplusplus +# define YY_NULLPTR nullptr +# else +# define YY_NULLPTR 0 +# endif +# else +# define YY_NULLPTR ((void*)0) +# endif +# endif /* Enabling verbose error messages. */ #ifdef YYERROR_VERBOSE @@ -1232,15 +268,517 @@ static PGNode *makeLimitPercent(PGNode *limit_percent); # define YYERROR_VERBOSE 0 #endif -/* Enabling the token table. */ -#ifndef YYTOKEN_TABLE -# define YYTOKEN_TABLE 0 +/* Use api.header.include to #include this header + instead of duplicating it here. */ +#ifndef YY_BASE_YY_THIRD_PARTY_LIBPG_QUERY_GRAMMAR_GRAMMAR_OUT_HPP_INCLUDED +# define YY_BASE_YY_THIRD_PARTY_LIBPG_QUERY_GRAMMAR_GRAMMAR_OUT_HPP_INCLUDED +/* Debug traces. */ +#ifndef YYDEBUG +# define YYDEBUG 0 +#endif +#if YYDEBUG +extern int base_yydebug; +#endif + +/* Token type. */ +#ifndef YYTOKENTYPE +# define YYTOKENTYPE + enum yytokentype + { + IDENT = 258, + FCONST = 259, + SCONST = 260, + BCONST = 261, + XCONST = 262, + Op = 263, + ICONST = 264, + PARAM = 265, + TYPECAST = 266, + DOT_DOT = 267, + COLON_EQUALS = 268, + EQUALS_GREATER = 269, + POWER_OF = 270, + LAMBDA_ARROW = 271, + DOUBLE_ARROW = 272, + LESS_EQUALS = 273, + GREATER_EQUALS = 274, + NOT_EQUALS = 275, + ABORT_P = 276, + ABSOLUTE_P = 277, + ACCESS = 278, + ACTION = 279, + ADD_P = 280, + ADMIN = 281, + AFTER = 282, + AGGREGATE = 283, + ALL = 284, + ALSO = 285, + ALTER = 286, + ALWAYS = 287, + ANALYSE = 288, + ANALYZE = 289, + AND = 290, + ANY = 291, + ARRAY = 292, + AS = 293, + ASC_P = 294, + ASSERTION = 295, + ASSIGNMENT = 296, + ASYMMETRIC = 297, + AT = 298, + ATTACH = 299, + ATTRIBUTE = 300, + AUTHORIZATION = 301, + BACKWARD = 302, + BEFORE = 303, + BEGIN_P = 304, + BETWEEN = 305, + BIGINT = 306, + BINARY = 307, + BIT = 308, + BOOLEAN_P = 309, + BOTH = 310, + BY = 311, + CACHE = 312, + CALL_P = 313, + CALLED = 314, + CASCADE = 315, + CASCADED = 316, + CASE = 317, + CAST = 318, + CATALOG_P = 319, + CHAIN = 320, + CHAR_P = 321, + CHARACTER = 322, + CHARACTERISTICS = 323, + CHECK_P = 324, + CHECKPOINT = 325, + CLASS = 326, + CLOSE = 327, + CLUSTER = 328, + COALESCE = 329, + COLLATE = 330, + COLLATION = 331, + COLUMN = 332, + COLUMNS = 333, + COMMENT = 334, + COMMENTS = 335, + COMMIT = 336, + COMMITTED = 337, + COMPRESSION = 338, + CONCURRENTLY = 339, + CONFIGURATION = 340, + CONFLICT = 341, + CONNECTION = 342, + CONSTRAINT = 343, + CONSTRAINTS = 344, + CONTENT_P = 345, + CONTINUE_P = 346, + CONVERSION_P = 347, + COPY = 348, + COST = 349, + CREATE_P = 350, + CROSS = 351, + CSV = 352, + CUBE = 353, + CURRENT_P = 354, + CURRENT_CATALOG = 355, + CURRENT_DATE = 356, + CURRENT_ROLE = 357, + CURRENT_SCHEMA = 358, + CURRENT_TIME = 359, + CURRENT_TIMESTAMP = 360, + CURRENT_USER = 361, + CURSOR = 362, + CYCLE = 363, + DATA_P = 364, + DATABASE = 365, + DAY_P = 366, + DAYS_P = 367, + DEALLOCATE = 368, + DEC = 369, + DECIMAL_P = 370, + DECLARE = 371, + DEFAULT = 372, + DEFAULTS = 373, + DEFERRABLE = 374, + DEFERRED = 375, + DEFINER = 376, + DELETE_P = 377, + DELIMITER = 378, + DELIMITERS = 379, + DEPENDS = 380, + DESC_P = 381, + DESCRIBE = 382, + DETACH = 383, + DICTIONARY = 384, + DISABLE_P = 385, + DISCARD = 386, + DISTINCT = 387, + DO = 388, + DOCUMENT_P = 389, + DOMAIN_P = 390, + DOUBLE_P = 391, + DROP = 392, + EACH = 393, + ELSE = 394, + ENABLE_P = 395, + ENCODING = 396, + ENCRYPTED = 397, + END_P = 398, + ENUM_P = 399, + ESCAPE = 400, + EVENT = 401, + EXCEPT = 402, + EXCLUDE = 403, + EXCLUDING = 404, + EXCLUSIVE = 405, + EXECUTE = 406, + EXISTS = 407, + EXPLAIN = 408, + EXPORT_P = 409, + EXPORT_STATE = 410, + EXTENSION = 411, + EXTERNAL = 412, + EXTRACT = 413, + FALSE_P = 414, + FAMILY = 415, + FETCH = 416, + FILTER = 417, + FIRST_P = 418, + FLOAT_P = 419, + FOLLOWING = 420, + FOR = 421, + FORCE = 422, + FOREIGN = 423, + FORWARD = 424, + FREEZE = 425, + FROM = 426, + FULL = 427, + FUNCTION = 428, + FUNCTIONS = 429, + GENERATED = 430, + GLOB = 431, + GLOBAL = 432, + GRANT = 433, + GRANTED = 434, + GROUP_P = 435, + GROUPING = 436, + GROUPING_ID = 437, + HANDLER = 438, + HAVING = 439, + HEADER_P = 440, + HOLD = 441, + HOUR_P = 442, + HOURS_P = 443, + IDENTITY_P = 444, + IF_P = 445, + IGNORE_P = 446, + ILIKE = 447, + IMMEDIATE = 448, + IMMUTABLE = 449, + IMPLICIT_P = 450, + IMPORT_P = 451, + IN_P = 452, + INCLUDING = 453, + INCREMENT = 454, + INDEX = 455, + INDEXES = 456, + INHERIT = 457, + INHERITS = 458, + INITIALLY = 459, + INLINE_P = 460, + INNER_P = 461, + INOUT = 462, + INPUT_P = 463, + INSENSITIVE = 464, + INSERT = 465, + INSTALL = 466, + INSTEAD = 467, + INT_P = 468, + INTEGER = 469, + INTERSECT = 470, + INTERVAL = 471, + INTO = 472, + INVOKER = 473, + IS = 474, + ISNULL = 475, + ISOLATION = 476, + JOIN = 477, + JSON = 478, + KEY = 479, + LABEL = 480, + LANGUAGE = 481, + LARGE_P = 482, + LAST_P = 483, + LATERAL_P = 484, + LEADING = 485, + LEAKPROOF = 486, + LEFT = 487, + LEVEL = 488, + LIKE = 489, + LIMIT = 490, + LISTEN = 491, + LOAD = 492, + LOCAL = 493, + LOCALTIME = 494, + LOCALTIMESTAMP = 495, + LOCATION = 496, + LOCK_P = 497, + LOCKED = 498, + LOGGED = 499, + MACRO = 500, + MAP = 501, + MAPPING = 502, + MATCH = 503, + MATERIALIZED = 504, + MAXVALUE = 505, + METHOD = 506, + MICROSECOND_P = 507, + MICROSECONDS_P = 508, + MILLISECOND_P = 509, + MILLISECONDS_P = 510, + MINUTE_P = 511, + MINUTES_P = 512, + MINVALUE = 513, + MODE = 514, + MONTH_P = 515, + MONTHS_P = 516, + MOVE = 517, + NAME_P = 518, + NAMES = 519, + NATIONAL = 520, + NATURAL = 521, + NCHAR = 522, + NEW = 523, + NEXT = 524, + NO = 525, + NONE = 526, + NOT = 527, + NOTHING = 528, + NOTIFY = 529, + NOTNULL = 530, + NOWAIT = 531, + NULL_P = 532, + NULLIF = 533, + NULLS_P = 534, + NUMERIC = 535, + OBJECT_P = 536, + OF = 537, + OFF = 538, + OFFSET = 539, + OIDS = 540, + OLD = 541, + ON = 542, + ONLY = 543, + OPERATOR = 544, + OPTION = 545, + OPTIONS = 546, + OR = 547, + ORDER = 548, + ORDINALITY = 549, + OUT_P = 550, + OUTER_P = 551, + OVER = 552, + OVERLAPS = 553, + OVERLAY = 554, + OVERRIDING = 555, + OWNED = 556, + OWNER = 557, + PARALLEL = 558, + PARSER = 559, + PARTIAL = 560, + PARTITION = 561, + PASSING = 562, + PASSWORD = 563, + PERCENT = 564, + PLACING = 565, + PLANS = 566, + POLICY = 567, + POSITION = 568, + PRAGMA_P = 569, + PRECEDING = 570, + PRECISION = 571, + PREPARE = 572, + PREPARED = 573, + PRESERVE = 574, + PRIMARY = 575, + PRIOR = 576, + PRIVILEGES = 577, + PROCEDURAL = 578, + PROCEDURE = 579, + PROGRAM = 580, + PUBLICATION = 581, + QUALIFY = 582, + QUOTE = 583, + RANGE = 584, + READ_P = 585, + REAL = 586, + REASSIGN = 587, + RECHECK = 588, + RECURSIVE = 589, + REF = 590, + REFERENCES = 591, + REFERENCING = 592, + REFRESH = 593, + REINDEX = 594, + RELATIVE_P = 595, + RELEASE = 596, + RENAME = 597, + REPEATABLE = 598, + REPLACE = 599, + REPLICA = 600, + RESET = 601, + RESPECT_P = 602, + RESTART = 603, + RESTRICT = 604, + RETURNING = 605, + RETURNS = 606, + REVOKE = 607, + RIGHT = 608, + ROLE = 609, + ROLLBACK = 610, + ROLLUP = 611, + ROW = 612, + ROWS = 613, + RULE = 614, + SAMPLE = 615, + SAVEPOINT = 616, + SCHEMA = 617, + SCHEMAS = 618, + SCROLL = 619, + SEARCH = 620, + SECOND_P = 621, + SECONDS_P = 622, + SECURITY = 623, + SELECT = 624, + SEQUENCE = 625, + SEQUENCES = 626, + SERIALIZABLE = 627, + SERVER = 628, + SESSION = 629, + SESSION_USER = 630, + SET = 631, + SETOF = 632, + SETS = 633, + SHARE = 634, + SHOW = 635, + SIMILAR = 636, + SIMPLE = 637, + SKIP = 638, + SMALLINT = 639, + SNAPSHOT = 640, + SOME = 641, + SQL_P = 642, + STABLE = 643, + STANDALONE_P = 644, + START = 645, + STATEMENT = 646, + STATISTICS = 647, + STDIN = 648, + STDOUT = 649, + STORAGE = 650, + STORED = 651, + STRICT_P = 652, + STRIP_P = 653, + STRUCT = 654, + SUBSCRIPTION = 655, + SUBSTRING = 656, + SUMMARIZE = 657, + SYMMETRIC = 658, + SYSID = 659, + SYSTEM_P = 660, + TABLE = 661, + TABLES = 662, + TABLESAMPLE = 663, + TABLESPACE = 664, + TEMP = 665, + TEMPLATE = 666, + TEMPORARY = 667, + TEXT_P = 668, + THEN = 669, + TIME = 670, + TIMESTAMP = 671, + TO = 672, + TRAILING = 673, + TRANSACTION = 674, + TRANSFORM = 675, + TREAT = 676, + TRIGGER = 677, + TRIM = 678, + TRUE_P = 679, + TRUNCATE = 680, + TRUSTED = 681, + TRY_CAST = 682, + TYPE_P = 683, + TYPES_P = 684, + UNBOUNDED = 685, + UNCOMMITTED = 686, + UNENCRYPTED = 687, + UNION = 688, + UNIQUE = 689, + UNKNOWN = 690, + UNLISTEN = 691, + UNLOGGED = 692, + UNTIL = 693, + UPDATE = 694, + USER = 695, + USING = 696, + VACUUM = 697, + VALID = 698, + VALIDATE = 699, + VALIDATOR = 700, + VALUE_P = 701, + VALUES = 702, + VARCHAR = 703, + VARIADIC = 704, + VARYING = 705, + VERBOSE = 706, + VERSION_P = 707, + VIEW = 708, + VIEWS = 709, + VIRTUAL = 710, + VOLATILE = 711, + WHEN = 712, + WHERE = 713, + WHITESPACE_P = 714, + WINDOW = 715, + WITH = 716, + WITHIN = 717, + WITHOUT = 718, + WORK = 719, + WRAPPER = 720, + WRITE_P = 721, + XML_P = 722, + XMLATTRIBUTES = 723, + XMLCONCAT = 724, + XMLELEMENT = 725, + XMLEXISTS = 726, + XMLFOREST = 727, + XMLNAMESPACES = 728, + XMLPARSE = 729, + XMLPI = 730, + XMLROOT = 731, + XMLSERIALIZE = 732, + XMLTABLE = 733, + YEAR_P = 734, + YEARS_P = 735, + YES_P = 736, + ZONE = 737, + NOT_LA = 738, + NULLS_LA = 739, + WITH_LA = 740, + POSTFIXOP = 741, + UMINUS = 742 + }; #endif +/* Value type. */ #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED -typedef union YYSTYPE -#line 14 "third_party/libpg_query/grammar/grammar.y" +union YYSTYPE { +#line 14 "third_party/libpg_query/grammar/grammar.y" + core_YYSTYPE core_yystype; /* these fields must match core_YYSTYPE: */ int ival; @@ -1283,64 +821,110 @@ typedef union YYSTYPE PGLockWaitPolicy lockwaitpolicy; PGSubLinkType subquerytype; PGViewCheckOption viewcheckoption; -} -/* Line 187 of yacc.c. */ -#line 1289 "third_party/libpg_query/grammar/grammar_out.cpp" - YYSTYPE; -# define yystype YYSTYPE /* obsolescent; will be withdrawn */ -# define YYSTYPE_IS_DECLARED 1 + +#line 826 "third_party/libpg_query/grammar/grammar_out.cpp" + +}; +typedef union YYSTYPE YYSTYPE; # define YYSTYPE_IS_TRIVIAL 1 +# define YYSTYPE_IS_DECLARED 1 #endif +/* Location type. */ #if ! defined YYLTYPE && ! defined YYLTYPE_IS_DECLARED -typedef struct YYLTYPE +typedef struct YYLTYPE YYLTYPE; +struct YYLTYPE { int first_line; int first_column; int last_line; int last_column; -} YYLTYPE; -# define yyltype YYLTYPE /* obsolescent; will be withdrawn */ +}; # define YYLTYPE_IS_DECLARED 1 # define YYLTYPE_IS_TRIVIAL 1 #endif -/* Copy the second part of user declarations. */ + +int base_yyparse (core_yyscan_t yyscanner); + +#endif /* !YY_BASE_YY_THIRD_PARTY_LIBPG_QUERY_GRAMMAR_GRAMMAR_OUT_HPP_INCLUDED */ -/* Line 216 of yacc.c. */ -#line 1314 "third_party/libpg_query/grammar/grammar_out.cpp" #ifdef short # undef short #endif -#ifdef YYTYPE_UINT8 -typedef YYTYPE_UINT8 yytype_uint8; -#else -typedef unsigned char yytype_uint8; +/* On compilers that do not define __PTRDIFF_MAX__ etc., make sure + and (if available) are included + so that the code can choose integer types of a good width. */ + +#ifndef __PTRDIFF_MAX__ +# include /* INFRINGES ON USER NAME SPACE */ +# if defined __STDC_VERSION__ && 199901 <= __STDC_VERSION__ +# include /* INFRINGES ON USER NAME SPACE */ +# define YY_STDINT_H +# endif #endif -#ifdef YYTYPE_INT8 -typedef YYTYPE_INT8 yytype_int8; -#elif (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) +/* Narrow types that promote to a signed type and that can represent a + signed or unsigned integer of at least N bits. In tables they can + save space and decrease cache pressure. Promoting to a signed type + helps avoid bugs in integer arithmetic. */ + +#ifdef __INT_LEAST8_MAX__ +typedef __INT_LEAST8_TYPE__ yytype_int8; +#elif defined YY_STDINT_H +typedef int_least8_t yytype_int8; +#else typedef signed char yytype_int8; +#endif + +#ifdef __INT_LEAST16_MAX__ +typedef __INT_LEAST16_TYPE__ yytype_int16; +#elif defined YY_STDINT_H +typedef int_least16_t yytype_int16; #else -typedef short int yytype_int8; +typedef short yytype_int16; #endif -#ifdef YYTYPE_UINT16 -typedef YYTYPE_UINT16 yytype_uint16; +#if defined __UINT_LEAST8_MAX__ && __UINT_LEAST8_MAX__ <= __INT_MAX__ +typedef __UINT_LEAST8_TYPE__ yytype_uint8; +#elif (!defined __UINT_LEAST8_MAX__ && defined YY_STDINT_H \ + && UINT_LEAST8_MAX <= INT_MAX) +typedef uint_least8_t yytype_uint8; +#elif !defined __UINT_LEAST8_MAX__ && UCHAR_MAX <= INT_MAX +typedef unsigned char yytype_uint8; #else -typedef unsigned short int yytype_uint16; +typedef short yytype_uint8; #endif -#ifdef YYTYPE_INT16 -typedef YYTYPE_INT16 yytype_int16; +#if defined __UINT_LEAST16_MAX__ && __UINT_LEAST16_MAX__ <= __INT_MAX__ +typedef __UINT_LEAST16_TYPE__ yytype_uint16; +#elif (!defined __UINT_LEAST16_MAX__ && defined YY_STDINT_H \ + && UINT_LEAST16_MAX <= INT_MAX) +typedef uint_least16_t yytype_uint16; +#elif !defined __UINT_LEAST16_MAX__ && USHRT_MAX <= INT_MAX +typedef unsigned short yytype_uint16; #else -typedef short int yytype_int16; +typedef int yytype_uint16; +#endif + +#ifndef YYPTRDIFF_T +# if defined __PTRDIFF_TYPE__ && defined __PTRDIFF_MAX__ +# define YYPTRDIFF_T __PTRDIFF_TYPE__ +# define YYPTRDIFF_MAXIMUM __PTRDIFF_MAX__ +# elif defined PTRDIFF_MAX +# ifndef ptrdiff_t +# include /* INFRINGES ON USER NAME SPACE */ +# endif +# define YYPTRDIFF_T ptrdiff_t +# define YYPTRDIFF_MAXIMUM PTRDIFF_MAX +# else +# define YYPTRDIFF_T long +# define YYPTRDIFF_MAXIMUM LONG_MAX +# endif #endif #ifndef YYSIZE_T @@ -1348,54 +932,97 @@ typedef short int yytype_int16; # define YYSIZE_T __SIZE_TYPE__ # elif defined size_t # define YYSIZE_T size_t -# elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) +# elif defined __STDC_VERSION__ && 199901 <= __STDC_VERSION__ # include /* INFRINGES ON USER NAME SPACE */ # define YYSIZE_T size_t # else -# define YYSIZE_T unsigned int +# define YYSIZE_T unsigned # endif #endif -#define YYSIZE_MAXIMUM ((YYSIZE_T) -1) +#define YYSIZE_MAXIMUM \ + YY_CAST (YYPTRDIFF_T, \ + (YYPTRDIFF_MAXIMUM < YY_CAST (YYSIZE_T, -1) \ + ? YYPTRDIFF_MAXIMUM \ + : YY_CAST (YYSIZE_T, -1))) + +#define YYSIZEOF(X) YY_CAST (YYPTRDIFF_T, sizeof (X)) + +/* Stored state numbers (used for stacks). */ +typedef yytype_int16 yy_state_t; + +/* State numbers in computations. */ +typedef int yy_state_fast_t; #ifndef YY_ -# if YYENABLE_NLS +# if defined YYENABLE_NLS && YYENABLE_NLS # if ENABLE_NLS # include /* INFRINGES ON USER NAME SPACE */ -# define YY_(msgid) dgettext ("bison-runtime", msgid) +# define YY_(Msgid) dgettext ("bison-runtime", Msgid) # endif # endif # ifndef YY_ -# define YY_(msgid) msgid +# define YY_(Msgid) Msgid +# endif +#endif + +#ifndef YY_ATTRIBUTE_PURE +# if defined __GNUC__ && 2 < __GNUC__ + (96 <= __GNUC_MINOR__) +# define YY_ATTRIBUTE_PURE __attribute__ ((__pure__)) +# else +# define YY_ATTRIBUTE_PURE +# endif +#endif + +#ifndef YY_ATTRIBUTE_UNUSED +# if defined __GNUC__ && 2 < __GNUC__ + (7 <= __GNUC_MINOR__) +# define YY_ATTRIBUTE_UNUSED __attribute__ ((__unused__)) +# else +# define YY_ATTRIBUTE_UNUSED # endif #endif /* Suppress unused-variable warnings by "using" E. */ #if ! defined lint || defined __GNUC__ -# define YYUSE(e) ((void) (e)) +# define YYUSE(E) ((void) (E)) #else -# define YYUSE(e) /* empty */ +# define YYUSE(E) /* empty */ #endif -/* Identity function, used to suppress warnings about constant conditions. */ -#ifndef lint -# define YYID(n) (n) -#else -#if (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) -static int -YYID (int i) +#if defined __GNUC__ && ! defined __ICC && 407 <= __GNUC__ * 100 + __GNUC_MINOR__ +/* Suppress an incorrect diagnostic about yylval being uninitialized. */ +# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \ + _Pragma ("GCC diagnostic push") \ + _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"") \ + _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"") +# define YY_IGNORE_MAYBE_UNINITIALIZED_END \ + _Pragma ("GCC diagnostic pop") #else -static int -YYID (i) - int i; +# define YY_INITIAL_VALUE(Value) Value #endif -{ - return i; -} +#ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN +# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN +# define YY_IGNORE_MAYBE_UNINITIALIZED_END +#endif +#ifndef YY_INITIAL_VALUE +# define YY_INITIAL_VALUE(Value) /* Nothing. */ +#endif + +#if defined __cplusplus && defined __GNUC__ && ! defined __ICC && 6 <= __GNUC__ +# define YY_IGNORE_USELESS_CAST_BEGIN \ + _Pragma ("GCC diagnostic push") \ + _Pragma ("GCC diagnostic ignored \"-Wuseless-cast\"") +# define YY_IGNORE_USELESS_CAST_END \ + _Pragma ("GCC diagnostic pop") +#endif +#ifndef YY_IGNORE_USELESS_CAST_BEGIN +# define YY_IGNORE_USELESS_CAST_BEGIN +# define YY_IGNORE_USELESS_CAST_END #endif + +#define YY_ASSERT(E) ((void) (0 && (E))) + #if ! defined yyoverflow || YYERROR_VERBOSE /* The parser invokes alloca or malloc; define the necessary symbols. */ @@ -1413,11 +1040,11 @@ YYID (i) # define alloca _alloca # else # define YYSTACK_ALLOC alloca -# if ! defined _ALLOCA_H && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) +# if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS # include /* INFRINGES ON USER NAME SPACE */ -# ifndef _STDLIB_H -# define _STDLIB_H 1 + /* Use EXIT_SUCCESS as a witness for stdlib.h. */ +# ifndef EXIT_SUCCESS +# define EXIT_SUCCESS 0 # endif # endif # endif @@ -1425,8 +1052,8 @@ YYID (i) # endif # ifdef YYSTACK_ALLOC - /* Pacify GCC's `empty if-body' warning. */ -# define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0)) + /* Pacify GCC's 'empty if-body' warning. */ +# define YYSTACK_FREE(Ptr) do { /* empty */; } while (0) # ifndef YYSTACK_ALLOC_MAXIMUM /* The OS might guarantee only one guard page at the bottom of the stack, and a page size can be as small as 4096 bytes. So we cannot safely @@ -1440,25 +1067,23 @@ YYID (i) # ifndef YYSTACK_ALLOC_MAXIMUM # define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM # endif -# if (defined __cplusplus && ! defined _STDLIB_H \ +# if (defined __cplusplus && ! defined EXIT_SUCCESS \ && ! ((defined YYMALLOC || defined malloc) \ - && (defined YYFREE || defined free))) + && (defined YYFREE || defined free))) # include /* INFRINGES ON USER NAME SPACE */ -# ifndef _STDLIB_H -# define _STDLIB_H 1 +# ifndef EXIT_SUCCESS +# define EXIT_SUCCESS 0 # endif # endif # ifndef YYMALLOC # define YYMALLOC malloc -# if ! defined malloc && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) +# if ! defined malloc && ! defined EXIT_SUCCESS void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */ # endif # endif # ifndef YYFREE # define YYFREE free -# if ! defined free && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) +# if ! defined free && ! defined EXIT_SUCCESS void free (void *); /* INFRINGES ON USER NAME SPACE */ # endif # endif @@ -1468,85 +1093,93 @@ void free (void *); /* INFRINGES ON USER NAME SPACE */ #if (! defined yyoverflow \ && (! defined __cplusplus \ - || (defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL \ - && defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL))) + || (defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL \ + && defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL))) /* A type that is properly aligned for any stack member. */ union yyalloc { - yytype_int16 yyss; - YYSTYPE yyvs; - YYLTYPE yyls; + yy_state_t yyss_alloc; + YYSTYPE yyvs_alloc; + YYLTYPE yyls_alloc; }; /* The size of the maximum gap between one aligned stack and the next. */ -# define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1) +# define YYSTACK_GAP_MAXIMUM (YYSIZEOF (union yyalloc) - 1) /* The size of an array large to enough to hold all stacks, each with N elements. */ # define YYSTACK_BYTES(N) \ - ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE) + sizeof (YYLTYPE)) \ + ((N) * (YYSIZEOF (yy_state_t) + YYSIZEOF (YYSTYPE) \ + + YYSIZEOF (YYLTYPE)) \ + 2 * YYSTACK_GAP_MAXIMUM) -/* Copy COUNT objects from FROM to TO. The source and destination do - not overlap. */ -# ifndef YYCOPY -# if defined __GNUC__ && 1 < __GNUC__ -# define YYCOPY(To, From, Count) \ - __builtin_memcpy (To, From, (Count) * sizeof (*(From))) -# else -# define YYCOPY(To, From, Count) \ - do \ - { \ - YYSIZE_T yyi; \ - for (yyi = 0; yyi < (Count); yyi++) \ - (To)[yyi] = (From)[yyi]; \ - } \ - while (YYID (0)) -# endif -# endif +# define YYCOPY_NEEDED 1 /* Relocate STACK from its old location to the new one. The local variables YYSIZE and YYSTACKSIZE give the old and new number of elements in the stack, and YYPTR gives the new location of the stack. Advance YYPTR to a properly aligned location for the next stack. */ -# define YYSTACK_RELOCATE(Stack) \ - do \ - { \ - YYSIZE_T yynewbytes; \ - YYCOPY (&yyptr->Stack, Stack, yysize); \ - Stack = &yyptr->Stack; \ - yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \ - yyptr += yynewbytes / sizeof (*yyptr); \ - } \ - while (YYID (0)) +# define YYSTACK_RELOCATE(Stack_alloc, Stack) \ + do \ + { \ + YYPTRDIFF_T yynewbytes; \ + YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \ + Stack = &yyptr->Stack_alloc; \ + yynewbytes = yystacksize * YYSIZEOF (*Stack) + YYSTACK_GAP_MAXIMUM; \ + yyptr += yynewbytes / YYSIZEOF (*yyptr); \ + } \ + while (0) #endif +#if defined YYCOPY_NEEDED && YYCOPY_NEEDED +/* Copy COUNT objects from SRC to DST. The source and destination do + not overlap. */ +# ifndef YYCOPY +# if defined __GNUC__ && 1 < __GNUC__ +# define YYCOPY(Dst, Src, Count) \ + __builtin_memcpy (Dst, Src, YY_CAST (YYSIZE_T, (Count)) * sizeof (*(Src))) +# else +# define YYCOPY(Dst, Src, Count) \ + do \ + { \ + YYPTRDIFF_T yyi; \ + for (yyi = 0; yyi < (Count); yyi++) \ + (Dst)[yyi] = (Src)[yyi]; \ + } \ + while (0) +# endif +# endif +#endif /* !YYCOPY_NEEDED */ + /* YYFINAL -- State number of the termination state. */ -#define YYFINAL 630 +#define YYFINAL 631 /* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 57211 +#define YYLAST 56718 /* YYNTOKENS -- Number of terminals. */ #define YYNTOKENS 509 /* YYNNTS -- Number of nonterminals. */ #define YYNNTS 395 /* YYNRULES -- Number of rules. */ -#define YYNRULES 1916 -/* YYNRULES -- Number of states. */ -#define YYNSTATES 3100 +#define YYNRULES 1917 +/* YYNSTATES -- Number of states. */ +#define YYNSTATES 3102 -/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ #define YYUNDEFTOK 2 #define YYMAXUTOK 742 -#define YYTRANSLATE(YYX) \ - ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) -/* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX. */ -static const yytype_uint16 yytranslate[] = +/* YYTRANSLATE(TOKEN-NUM) -- Symbol number corresponding to TOKEN-NUM + as returned by yylex, with out-of-bounds checking. */ +#define YYTRANSLATE(YYX) \ + (0 <= (YYX) && (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) + +/* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM + as returned by yylex. */ +static const yytype_int16 yytranslate[] = { 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, @@ -1626,968 +1259,205 @@ static const yytype_uint16 yytranslate[] = }; #if YYDEBUG -/* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in - YYRHS. */ -static const yytype_uint16 yyprhs[] = -{ - 0, 0, 3, 5, 9, 11, 13, 15, 17, 19, - 21, 23, 25, 27, 29, 31, 33, 35, 37, 39, - 41, 43, 45, 47, 49, 51, 53, 55, 57, 59, - 61, 63, 65, 67, 69, 71, 73, 75, 77, 79, - 80, 83, 85, 87, 89, 92, 96, 104, 115, 125, - 128, 132, 133, 138, 141, 146, 152, 157, 165, 168, - 169, 171, 173, 175, 177, 182, 189, 194, 201, 206, - 213, 218, 225, 227, 230, 234, 237, 239, 243, 246, - 250, 252, 256, 259, 265, 269, 276, 281, 288, 295, - 302, 308, 314, 321, 331, 336, 342, 350, 357, 362, - 371, 376, 379, 384, 388, 395, 400, 403, 406, 409, - 412, 414, 417, 418, 420, 423, 426, 429, 431, 435, - 440, 443, 445, 446, 449, 453, 456, 460, 468, 470, - 473, 477, 480, 481, 484, 485, 495, 508, 520, 521, - 524, 526, 528, 530, 532, 534, 536, 540, 541, 543, - 546, 548, 550, 553, 556, 560, 562, 564, 567, 570, - 572, 575, 579, 585, 589, 592, 598, 600, 602, 604, - 605, 611, 619, 625, 628, 632, 634, 636, 639, 642, - 643, 647, 652, 657, 658, 662, 665, 666, 670, 672, - 674, 676, 678, 680, 682, 684, 686, 688, 690, 694, - 698, 700, 703, 706, 709, 712, 715, 718, 719, 723, - 727, 731, 732, 734, 737, 739, 742, 745, 748, 751, - 755, 760, 762, 766, 768, 770, 772, 774, 778, 780, - 783, 784, 786, 789, 790, 792, 796, 797, 800, 801, - 805, 809, 811, 817, 821, 823, 827, 829, 832, 834, - 839, 845, 851, 858, 862, 870, 875, 887, 889, 893, - 896, 899, 902, 903, 907, 909, 911, 914, 917, 920, - 923, 925, 926, 928, 931, 936, 943, 945, 948, 950, - 952, 953, 955, 958, 961, 963, 966, 969, 971, 974, - 978, 981, 984, 987, 990, 994, 998, 1002, 1004, 1008, - 1010, 1011, 1013, 1016, 1019, 1026, 1035, 1042, 1051, 1058, - 1067, 1070, 1075, 1082, 1089, 1098, 1105, 1114, 1121, 1130, - 1137, 1146, 1155, 1166, 1175, 1186, 1188, 1189, 1193, 1203, - 1216, 1220, 1221, 1224, 1228, 1232, 1236, 1238, 1242, 1246, - 1249, 1253, 1257, 1261, 1265, 1267, 1269, 1271, 1273, 1277, - 1283, 1285, 1287, 1289, 1291, 1295, 1298, 1300, 1306, 1310, - 1311, 1313, 1315, 1317, 1319, 1328, 1336, 1338, 1340, 1343, - 1347, 1361, 1378, 1380, 1383, 1384, 1386, 1387, 1389, 1390, - 1393, 1394, 1396, 1397, 1400, 1405, 1409, 1415, 1417, 1418, - 1420, 1422, 1423, 1425, 1427, 1429, 1431, 1433, 1435, 1437, - 1439, 1441, 1443, 1445, 1447, 1449, 1451, 1453, 1455, 1457, - 1459, 1461, 1463, 1465, 1467, 1469, 1471, 1473, 1475, 1477, - 1479, 1481, 1483, 1485, 1487, 1489, 1491, 1493, 1495, 1499, - 1501, 1503, 1505, 1507, 1509, 1511, 1514, 1516, 1518, 1525, - 1530, 1537, 1542, 1549, 1558, 1563, 1570, 1572, 1574, 1576, - 1578, 1581, 1583, 1586, 1588, 1591, 1593, 1595, 1597, 1601, - 1605, 1609, 1613, 1616, 1619, 1621, 1625, 1627, 1629, 1631, - 1633, 1637, 1639, 1641, 1642, 1644, 1646, 1648, 1650, 1654, - 1664, 1676, 1689, 1704, 1708, 1713, 1718, 1719, 1725, 1734, - 1736, 1737, 1740, 1743, 1747, 1749, 1751, 1754, 1757, 1760, - 1763, 1767, 1772, 1775, 1777, 1779, 1781, 1783, 1787, 1792, - 1798, 1804, 1809, 1816, 1818, 1820, 1822, 1824, 1826, 1828, - 1829, 1831, 1835, 1837, 1838, 1847, 1859, 1869, 1871, 1873, - 1877, 1878, 1880, 1884, 1886, 1887, 1889, 1890, 1892, 1893, - 1895, 1899, 1901, 1903, 1905, 1909, 1910, 1913, 1916, 1917, - 1920, 1921, 1923, 1924, 1926, 1928, 1930, 1934, 1938, 1940, - 1942, 1946, 1950, 1954, 1958, 1963, 1967, 1970, 1972, 1974, - 1976, 1978, 1980, 1984, 1989, 1993, 1995, 1997, 2001, 2005, - 2007, 2010, 2015, 2020, 2023, 2027, 2033, 2039, 2041, 2043, - 2055, 2067, 2069, 2072, 2077, 2082, 2087, 2090, 2093, 2097, - 2099, 2103, 2110, 2113, 2114, 2118, 2122, 2127, 2132, 2137, - 2142, 2146, 2149, 2151, 2153, 2154, 2156, 2158, 2159, 2161, - 2167, 2169, 2170, 2173, 2176, 2177, 2179, 2180, 2184, 2190, - 2196, 2198, 2202, 2207, 2211, 2213, 2215, 2216, 2219, 2222, - 2223, 2226, 2229, 2231, 2233, 2235, 2236, 2239, 2244, 2250, - 2255, 2258, 2262, 2265, 2268, 2271, 2274, 2276, 2279, 2283, - 2284, 2286, 2287, 2293, 2295, 2300, 2307, 2310, 2312, 2313, - 2318, 2319, 2321, 2323, 2326, 2329, 2332, 2334, 2336, 2339, - 2342, 2344, 2346, 2348, 2350, 2352, 2354, 2358, 2362, 2366, - 2367, 2369, 2373, 2375, 2378, 2380, 2382, 2384, 2386, 2388, - 2391, 2396, 2401, 2407, 2409, 2411, 2414, 2415, 2418, 2419, - 2421, 2425, 2427, 2428, 2430, 2433, 2437, 2440, 2445, 2448, - 2452, 2455, 2456, 2458, 2461, 2462, 2467, 2473, 2475, 2478, - 2481, 2482, 2484, 2488, 2490, 2493, 2497, 2501, 2505, 2509, - 2513, 2517, 2519, 2524, 2528, 2533, 2539, 2544, 2550, 2555, - 2561, 2564, 2569, 2571, 2573, 2574, 2576, 2581, 2587, 2592, - 2593, 2596, 2599, 2602, 2604, 2606, 2607, 2612, 2615, 2617, - 2620, 2623, 2628, 2631, 2638, 2641, 2643, 2647, 2652, 2653, - 2656, 2657, 2660, 2661, 2663, 2667, 2671, 2674, 2675, 2678, - 2683, 2685, 2687, 2689, 2690, 2693, 2697, 2703, 2710, 2713, - 2717, 2723, 2729, 2733, 2738, 2739, 2741, 2743, 2745, 2747, - 2749, 2752, 2757, 2759, 2761, 2763, 2765, 2768, 2772, 2773, - 2775, 2777, 2779, 2781, 2783, 2786, 2789, 2792, 2795, 2798, - 2800, 2804, 2805, 2807, 2809, 2811, 2813, 2819, 2822, 2824, - 2826, 2828, 2830, 2835, 2837, 2840, 2843, 2845, 2849, 2853, - 2856, 2858, 2859, 2865, 2868, 2874, 2877, 2879, 2883, 2887, - 2888, 2890, 2892, 2894, 2896, 2898, 2900, 2902, 2904, 2906, - 2908, 2910, 2912, 2914, 2916, 2918, 2920, 2922, 2924, 2926, - 2928, 2930, 2932, 2934, 2936, 2940, 2944, 2948, 2952, 2956, - 2960, 2964, 2965, 2967, 2971, 2975, 2981, 2984, 2987, 2991, - 2995, 2999, 3003, 3007, 3011, 3015, 3019, 3023, 3027, 3031, - 3035, 3039, 3043, 3046, 3049, 3053, 3057, 3060, 3063, 3067, - 3071, 3077, 3082, 3089, 3093, 3099, 3104, 3111, 3116, 3123, - 3129, 3137, 3141, 3144, 3149, 3153, 3156, 3158, 3162, 3166, - 3170, 3174, 3178, 3182, 3187, 3191, 3196, 3200, 3205, 3211, - 3218, 3225, 3233, 3240, 3248, 3255, 3263, 3267, 3272, 3277, - 3284, 3287, 3289, 3294, 3296, 3300, 3303, 3306, 3310, 3314, - 3318, 3322, 3326, 3330, 3334, 3338, 3342, 3346, 3350, 3354, - 3358, 3362, 3365, 3368, 3374, 3381, 3388, 3396, 3398, 3400, - 3403, 3406, 3409, 3414, 3416, 3419, 3421, 3424, 3427, 3432, - 3436, 3443, 3451, 3461, 3469, 3477, 3482, 3488, 3490, 3492, - 3494, 3500, 3502, 3504, 3509, 3511, 3516, 3518, 3523, 3525, - 3530, 3532, 3534, 3536, 3538, 3540, 3542, 3549, 3556, 3561, - 3566, 3571, 3576, 3583, 3589, 3595, 3601, 3606, 3613, 3618, - 3624, 3625, 3631, 3636, 3637, 3639, 3640, 3643, 3644, 3646, - 3650, 3654, 3657, 3660, 3661, 3668, 3670, 3671, 3675, 3676, - 3679, 3682, 3683, 3685, 3690, 3693, 3696, 3699, 3702, 3705, - 3710, 3714, 3716, 3722, 3726, 3728, 3732, 3734, 3737, 3739, - 3741, 3743, 3745, 3747, 3749, 3751, 3753, 3755, 3757, 3759, - 3761, 3763, 3765, 3767, 3769, 3771, 3773, 3775, 3780, 3782, - 3787, 3789, 3794, 3796, 3799, 3801, 3804, 3806, 3809, 3811, - 3815, 3817, 3821, 3823, 3826, 3828, 3829, 3831, 3835, 3837, - 3841, 3845, 3847, 3851, 3855, 3856, 3858, 3860, 3862, 3864, - 3866, 3868, 3870, 3872, 3874, 3876, 3881, 3885, 3888, 3892, - 3893, 3897, 3901, 3904, 3907, 3909, 3910, 3913, 3916, 3920, - 3923, 3925, 3927, 3931, 3937, 3939, 3942, 3947, 3950, 3951, - 3953, 3954, 3956, 3959, 3962, 3966, 3972, 3974, 3975, 3977, - 3980, 3981, 3984, 3986, 3987, 3989, 3990, 3992, 3996, 3998, - 4001, 4005, 4008, 4010, 4014, 4020, 4025, 4028, 4030, 4031, - 4035, 4037, 4041, 4043, 4046, 4051, 4054, 4055, 4057, 4061, - 4063, 4066, 4068, 4072, 4074, 4077, 4079, 4081, 4083, 4086, - 4088, 4090, 4093, 4095, 4097, 4100, 4108, 4111, 4117, 4121, - 4125, 4127, 4129, 4131, 4133, 4135, 4137, 4139, 4141, 4143, - 4145, 4147, 4149, 4151, 4153, 4155, 4157, 4159, 4161, 4163, - 4165, 4168, 4171, 4175, 4179, 4180, 4182, 4184, 4186, 4188, - 4190, 4192, 4194, 4197, 4200, 4203, 4206, 4209, 4212, 4215, - 4217, 4219, 4220, 4228, 4230, 4235, 4240, 4248, 4251, 4253, - 4257, 4262, 4266, 4267, 4269, 4270, 4273, 4277, 4283, 4292, - 4298, 4299, 4305, 4311, 4319, 4322, 4323, 4325, 4327, 4329, - 4333, 4336, 4337, 4339, 4340, 4342, 4346, 4348, 4352, 4354, - 4357, 4359, 4363, 4366, 4372, 4374, 4376, 4378, 4380, 4382, - 4384, 4386, 4388, 4390, 4392, 4394, 4396, 4398, 4400, 4402, - 4404, 4406, 4408, 4410, 4412, 4414, 4416, 4418, 4420, 4422, - 4424, 4426, 4428, 4430, 4432, 4434, 4436, 4438, 4440, 4442, - 4444, 4446, 4448, 4450, 4452, 4454, 4456, 4458, 4460, 4462, - 4464, 4466, 4468, 4470, 4472, 4474, 4476, 4478, 4480, 4482, - 4484, 4486, 4488, 4490, 4492, 4494, 4496, 4498, 4500, 4502, - 4504, 4506, 4508, 4510, 4512, 4514, 4516, 4518, 4520, 4522, - 4524, 4526, 4528, 4530, 4532, 4534, 4536, 4538, 4540, 4542, - 4544, 4546, 4548, 4550, 4552, 4554, 4556, 4558, 4560, 4562, - 4564, 4566, 4568, 4570, 4572, 4574, 4576, 4578, 4580, 4582, - 4584, 4586, 4588, 4590, 4592, 4594, 4596, 4598, 4600, 4602, - 4604, 4606, 4608, 4610, 4612, 4614, 4616, 4618, 4620, 4622, - 4624, 4626, 4628, 4630, 4632, 4634, 4636, 4638, 4640, 4642, - 4644, 4646, 4648, 4650, 4652, 4654, 4656, 4658, 4660, 4662, - 4664, 4666, 4668, 4670, 4672, 4674, 4676, 4678, 4680, 4682, - 4684, 4686, 4688, 4690, 4692, 4694, 4696, 4698, 4700, 4702, - 4704, 4706, 4708, 4710, 4712, 4714, 4716, 4718, 4720, 4722, - 4724, 4726, 4728, 4730, 4732, 4734, 4736, 4738, 4740, 4742, - 4744, 4746, 4748, 4750, 4752, 4754, 4756, 4758, 4760, 4762, - 4764, 4766, 4768, 4770, 4772, 4774, 4776, 4778, 4780, 4782, - 4784, 4786, 4788, 4790, 4792, 4794, 4796, 4798, 4800, 4802, - 4804, 4806, 4808, 4810, 4812, 4814, 4816, 4818, 4820, 4822, - 4824, 4826, 4828, 4830, 4832, 4834, 4836, 4838, 4840, 4842, - 4844, 4846, 4848, 4850, 4852, 4854, 4856, 4858, 4860, 4862, - 4864, 4866, 4868, 4870, 4872, 4874, 4876, 4878, 4880, 4882, - 4884, 4886, 4888, 4890, 4892, 4894, 4896, 4898, 4900, 4902, - 4904, 4906, 4908, 4910, 4912, 4914, 4916, 4918, 4920, 4922, - 4924, 4926, 4928, 4930, 4932, 4934, 4936, 4938, 4940, 4942, - 4944, 4946, 4948, 4950, 4952, 4954, 4956, 4958, 4960, 4962, - 4964, 4966, 4968, 4970, 4972, 4974, 4976, 4978, 4980, 4982, - 4984, 4986, 4988, 4990, 4992, 4994, 4996, 4998, 5000, 5002, - 5004, 5006, 5008, 5010, 5012, 5014, 5016, 5018, 5020, 5022, - 5024, 5026, 5028, 5030, 5032, 5034, 5036, 5038, 5040, 5042, - 5044, 5046, 5048, 5050, 5052, 5054, 5056, 5058, 5060, 5062, - 5064, 5066, 5068, 5070, 5072, 5074, 5076, 5078, 5080, 5082, - 5084, 5086, 5088, 5090, 5092, 5094, 5096, 5098, 5100, 5102, - 5104, 5106, 5108, 5110, 5112, 5114, 5116, 5118, 5120, 5122, - 5124, 5126, 5128, 5130, 5132, 5134, 5136, 5138, 5140, 5142, - 5144, 5146, 5148, 5150, 5152, 5154, 5156, 5158, 5160, 5162, - 5164, 5166, 5168, 5170, 5172, 5174, 5176, 5178, 5180, 5182, - 5184, 5186, 5188, 5190, 5192, 5194, 5196, 5198, 5200, 5202, - 5204, 5206, 5208, 5210, 5212, 5214, 5216, 5218, 5220, 5222, - 5224, 5226, 5228, 5230, 5232, 5234, 5236, 5238, 5240, 5242, - 5244, 5246, 5248, 5250, 5252, 5254, 5256, 5258, 5260, 5262, - 5264, 5266, 5268, 5270, 5272, 5274, 5276, 5278, 5280, 5282, - 5284, 5286, 5288, 5290, 5292, 5294, 5296, 5298, 5300, 5302, - 5304, 5306, 5308, 5310, 5312, 5314, 5316, 5318, 5320, 5322, - 5324, 5326, 5328, 5330, 5332, 5334, 5336, 5338, 5340, 5342, - 5344, 5346, 5348, 5350, 5352, 5354, 5356, 5358, 5360, 5362, - 5364, 5366, 5368, 5370, 5372, 5374, 5376, 5378, 5380, 5382, - 5384, 5386, 5388, 5390, 5392, 5394, 5396, 5398, 5400, 5402, - 5404, 5406, 5408, 5410, 5412, 5414, 5416, 5418, 5420, 5422, - 5424, 5426, 5428, 5430, 5432, 5434, 5436, 5438, 5440, 5442, - 5444, 5446, 5448, 5450, 5452, 5454, 5456, 5458, 5460, 5462, - 5464, 5466, 5468, 5470, 5472, 5474, 5476, 5478, 5480, 5482, - 5484, 5486, 5488, 5490, 5492, 5494, 5496, 5498, 5500, 5502, - 5504, 5506, 5508, 5510, 5512, 5514, 5516, 5518, 5520, 5522, - 5524, 5526, 5528, 5530, 5532, 5534, 5536, 5538, 5540, 5542, - 5544, 5546, 5548, 5550, 5552, 5554, 5556, 5558, 5560, 5562, - 5564, 5566, 5568, 5570, 5572, 5574, 5576, 5578, 5580, 5582, - 5584, 5586, 5588, 5590, 5592, 5594, 5596 -}; - -/* YYRHS -- A `-1'-separated list of the rules' RHS. */ -static const yytype_int16 yyrhs[] = -{ - 510, 0, -1, 511, -1, 511, 502, 512, -1, 512, - -1, 594, -1, 587, -1, 523, -1, 595, -1, 874, - -1, 606, -1, 653, -1, 516, -1, 610, -1, 520, - -1, 640, -1, 539, -1, 896, -1, 534, -1, 535, - -1, 631, -1, 598, -1, 620, -1, 670, -1, 671, - -1, 613, -1, 877, -1, 642, -1, 519, -1, 607, - -1, 596, -1, 672, -1, 875, -1, 652, -1, 647, - -1, 513, -1, 600, -1, 644, -1, 638, -1, -1, - 346, 515, -1, 646, -1, 29, -1, 514, -1, 415, - 482, -1, 419, 221, 233, -1, 95, 585, 406, 518, - 38, 672, 517, -1, 95, 585, 406, 190, 272, 152, - 518, 38, 672, 517, -1, 95, 292, 344, 585, 406, - 518, 38, 672, 517, -1, 461, 109, -1, 461, 270, - 109, -1, -1, 854, 574, 561, 553, -1, 314, 863, - -1, 314, 863, 488, 605, -1, 314, 863, 499, 819, - 500, -1, 95, 362, 863, 521, -1, 95, 362, 190, - 272, 152, 863, 521, -1, 521, 522, -1, -1, 539, - -1, 613, -1, 640, -1, 638, -1, 31, 406, 741, - 531, -1, 31, 406, 190, 152, 741, 531, -1, 31, - 200, 854, 531, -1, 31, 200, 190, 152, 854, 531, - -1, 31, 370, 854, 531, -1, 31, 370, 190, 152, - 854, 531, -1, 31, 453, 854, 531, -1, 31, 453, - 190, 152, 854, 531, -1, 526, -1, 524, 526, -1, - 376, 117, 784, -1, 137, 117, -1, 348, -1, 348, - 589, 590, -1, 376, 591, -1, 376, 175, 586, -1, - 530, -1, 527, 503, 530, -1, 25, 566, -1, 25, - 190, 272, 152, 566, -1, 25, 77, 566, -1, 25, - 77, 190, 272, 152, 566, -1, 31, 597, 863, 525, - -1, 31, 597, 863, 137, 272, 277, -1, 31, 597, - 863, 376, 272, 277, -1, 31, 597, 863, 376, 392, - 593, -1, 31, 597, 863, 376, 554, -1, 31, 597, - 863, 346, 554, -1, 31, 597, 863, 376, 395, 863, - -1, 31, 597, 863, 25, 175, 586, 38, 189, 542, - -1, 31, 597, 863, 524, -1, 31, 597, 863, 137, - 189, -1, 31, 597, 863, 137, 189, 190, 152, -1, - 137, 597, 190, 152, 863, 635, -1, 137, 597, 863, - 635, -1, 31, 597, 863, 533, 428, 754, 750, 529, - -1, 31, 597, 863, 532, -1, 25, 556, -1, 31, - 88, 857, 540, -1, 444, 88, 857, -1, 137, 88, - 190, 152, 857, 635, -1, 137, 88, 857, 635, -1, - 376, 244, -1, 376, 437, -1, 376, 554, -1, 346, - 554, -1, 532, -1, 441, 784, -1, -1, 550, -1, - 376, 550, -1, 25, 550, -1, 137, 564, -1, 528, - -1, 531, 503, 528, -1, 291, 499, 527, 500, -1, - 376, 109, -1, 376, -1, -1, 113, 857, -1, 113, - 317, 857, -1, 113, 29, -1, 113, 317, 29, -1, - 881, 122, 171, 536, 538, 537, 886, -1, 741, -1, - 741, 863, -1, 741, 38, 863, -1, 458, 784, -1, - -1, 441, 732, -1, -1, 95, 585, 406, 854, 499, - 572, 500, 561, 553, -1, 95, 585, 406, 190, 272, - 152, 854, 499, 572, 500, 561, 553, -1, 95, 292, - 344, 585, 406, 854, 499, 572, 500, 561, 553, -1, - -1, 540, 565, -1, 580, -1, 903, -1, 813, -1, - 590, -1, 862, -1, 271, -1, 499, 588, 500, -1, - -1, 862, -1, 270, 24, -1, 349, -1, 60, -1, - 376, 277, -1, 376, 117, -1, 88, 857, 546, -1, - 546, -1, 560, -1, 75, 868, -1, 272, 277, -1, - 277, -1, 434, 571, -1, 320, 224, 571, -1, 69, - 499, 784, 500, 555, -1, 441, 83, 857, -1, 117, - 785, -1, 336, 854, 574, 583, 552, -1, 455, -1, - 396, -1, 547, -1, -1, 175, 586, 38, 189, 542, - -1, 175, 586, 38, 499, 784, 500, 548, -1, 38, - 499, 784, 500, 548, -1, 564, 543, -1, 287, 439, - 544, -1, 551, -1, 576, -1, 551, 576, -1, 576, - 551, -1, -1, 287, 81, 137, -1, 287, 81, 122, - 358, -1, 287, 81, 319, 358, -1, -1, 499, 558, - 500, -1, 270, 202, -1, -1, 88, 857, 581, -1, - 581, -1, 80, -1, 89, -1, 118, -1, 189, -1, - 201, -1, 392, -1, 395, -1, 29, -1, 577, -1, - 558, 503, 577, -1, 441, 200, 568, -1, 119, -1, - 272, 119, -1, 204, 120, -1, 204, 193, -1, 461, - 554, -1, 461, 285, -1, 463, 285, -1, -1, 499, - 567, 500, -1, 563, 198, 557, -1, 563, 149, 557, - -1, -1, 872, -1, 272, 119, -1, 119, -1, 204, - 193, -1, 204, 120, -1, 272, 443, -1, 270, 202, - -1, 863, 754, 575, -1, 863, 753, 549, 575, -1, - 570, -1, 567, 503, 570, -1, 863, -1, 566, -1, - 584, -1, 556, -1, 872, 488, 541, -1, 872, -1, - 461, 562, -1, -1, 582, -1, 582, 503, -1, -1, - 863, -1, 499, 578, 500, -1, -1, 575, 545, -1, - -1, 287, 122, 544, -1, 872, 488, 541, -1, 872, - -1, 872, 501, 872, 488, 541, -1, 872, 501, 872, - -1, 573, -1, 578, 503, 573, -1, 578, -1, 578, - 503, -1, 754, -1, 865, 869, 494, 428, -1, 377, - 865, 869, 494, 428, -1, 69, 499, 784, 500, 540, - -1, 434, 499, 579, 500, 571, 540, -1, 434, 559, - 540, -1, 320, 224, 499, 579, 500, 571, 540, -1, - 320, 224, 559, 540, -1, 168, 224, 499, 579, 500, - 336, 854, 574, 583, 552, 540, -1, 569, -1, 582, - 503, 569, -1, 248, 172, -1, 248, 305, -1, 248, - 382, -1, -1, 234, 854, 563, -1, 412, -1, 410, - -1, 238, 412, -1, 238, 410, -1, 177, 412, -1, - 177, 410, -1, 437, -1, -1, 32, -1, 56, 117, - -1, 31, 370, 854, 588, -1, 31, 370, 190, 152, - 854, 588, -1, 591, -1, 588, 591, -1, 461, -1, - 485, -1, -1, 4, -1, 490, 4, -1, 491, 4, - -1, 593, -1, 38, 756, -1, 57, 590, -1, 108, - -1, 270, 108, -1, 199, 592, 590, -1, 250, 590, - -1, 258, 590, -1, 270, 250, -1, 270, 258, -1, - 301, 56, 868, -1, 370, 263, 868, -1, 390, 589, - 590, -1, 348, -1, 348, 589, 590, -1, 56, -1, - -1, 861, -1, 490, 861, -1, 491, 861, -1, 31, - 406, 741, 376, 362, 857, -1, 31, 406, 190, 152, - 741, 376, 362, 857, -1, 31, 370, 854, 376, 362, - 857, -1, 31, 370, 190, 152, 854, 376, 362, 857, - -1, 31, 453, 854, 376, 362, 857, -1, 31, 453, - 190, 152, 854, 376, 362, 857, -1, 627, 621, -1, - 627, 621, 854, 870, -1, 31, 362, 857, 342, 417, - 857, -1, 31, 406, 741, 342, 417, 857, -1, 31, - 406, 190, 152, 741, 342, 417, 857, -1, 31, 370, - 854, 342, 417, 857, -1, 31, 370, 190, 152, 854, - 342, 417, 857, -1, 31, 453, 854, 342, 417, 857, - -1, 31, 453, 190, 152, 854, 342, 417, 857, -1, - 31, 200, 854, 342, 417, 857, -1, 31, 200, 190, - 152, 854, 342, 417, 857, -1, 31, 406, 741, 342, - 597, 857, 417, 857, -1, 31, 406, 190, 152, 741, - 342, 597, 857, 417, 857, -1, 31, 406, 741, 342, - 88, 857, 417, 857, -1, 31, 406, 190, 152, 741, - 342, 88, 857, 417, 857, -1, 77, -1, -1, 151, - 857, 599, -1, 95, 585, 406, 518, 38, 151, 857, - 599, 517, -1, 95, 585, 406, 190, 272, 152, 518, - 38, 151, 857, 599, 517, -1, 499, 817, 500, -1, - -1, 376, 601, -1, 376, 238, 601, -1, 376, 374, - 601, -1, 376, 177, 601, -1, 602, -1, 646, 171, - 99, -1, 415, 482, 604, -1, 362, 862, -1, 646, - 417, 605, -1, 646, 488, 605, -1, 646, 417, 117, - -1, 646, 488, 117, -1, 628, -1, 590, -1, 862, - -1, 3, -1, 773, 862, 783, -1, 773, 499, 861, - 500, 862, -1, 590, -1, 117, -1, 238, -1, 603, - -1, 605, 503, 603, -1, 167, 70, -1, 70, -1, - 317, 857, 608, 38, 609, -1, 499, 821, 500, -1, - -1, 672, -1, 877, -1, 652, -1, 535, -1, 95, - 585, 611, 854, 612, 38, 406, 672, -1, 95, 585, - 611, 854, 612, 38, 784, -1, 173, -1, 245, -1, - 499, 500, -1, 499, 819, 500, -1, 95, 619, 200, - 616, 617, 287, 854, 615, 499, 894, 500, 618, 747, - -1, 95, 619, 200, 616, 190, 272, 152, 568, 287, - 854, 615, 499, 894, 500, 618, 747, -1, 863, -1, - 441, 614, -1, -1, 84, -1, -1, 568, -1, -1, - 461, 554, -1, -1, 434, -1, -1, 153, 623, -1, - 153, 627, 621, 623, -1, 153, 451, 623, -1, 153, - 499, 626, 500, 623, -1, 451, -1, -1, 628, -1, - 590, -1, -1, 594, -1, 587, -1, 523, -1, 874, - -1, 606, -1, 653, -1, 516, -1, 610, -1, 520, - -1, 640, -1, 539, -1, 896, -1, 534, -1, 535, - -1, 631, -1, 598, -1, 613, -1, 877, -1, 642, - -1, 519, -1, 607, -1, 596, -1, 672, -1, 875, - -1, 652, -1, 647, -1, 513, -1, 600, -1, 644, - -1, 638, -1, 3, -1, 897, -1, 901, -1, 624, - -1, 862, -1, 629, -1, 626, 503, 629, -1, 34, - -1, 33, -1, 424, -1, 159, -1, 287, -1, 625, - -1, 630, 622, -1, 624, -1, 627, -1, 137, 632, - 190, 152, 634, 635, -1, 137, 632, 634, 635, -1, - 137, 633, 190, 152, 855, 635, -1, 137, 633, 855, - 635, -1, 137, 636, 857, 287, 868, 635, -1, 137, - 636, 190, 152, 857, 287, 868, 635, -1, 137, 428, - 637, 635, -1, 137, 428, 190, 152, 637, 635, -1, - 406, -1, 370, -1, 173, -1, 245, -1, 245, 406, - -1, 453, -1, 249, 453, -1, 200, -1, 168, 406, - -1, 76, -1, 92, -1, 392, -1, 413, 365, 304, - -1, 413, 365, 129, -1, 413, 365, 411, -1, 413, - 365, 85, -1, 23, 251, -1, 146, 422, -1, 156, - -1, 168, 109, 465, -1, 326, -1, 362, -1, 373, - -1, 868, -1, 634, 503, 868, -1, 60, -1, 349, - -1, -1, 312, -1, 359, -1, 422, -1, 754, -1, - 637, 503, 754, -1, 95, 585, 453, 854, 574, 618, - 38, 672, 639, -1, 95, 292, 344, 585, 453, 854, - 574, 618, 38, 672, 639, -1, 95, 585, 334, 453, - 854, 499, 578, 500, 618, 38, 672, 639, -1, 95, - 292, 344, 585, 334, 453, 854, 499, 578, 500, 618, - 38, 672, 639, -1, 461, 69, 290, -1, 461, 61, - 69, 290, -1, 461, 238, 69, 290, -1, -1, 95, - 585, 370, 854, 641, -1, 95, 585, 370, 190, 272, - 152, 854, 641, -1, 588, -1, -1, 237, 643, -1, - 211, 643, -1, 167, 211, 643, -1, 862, -1, 863, - -1, 645, 672, -1, 402, 672, -1, 402, 646, -1, - 645, 646, -1, 645, 415, 482, -1, 645, 419, 221, - 233, -1, 645, 29, -1, 645, -1, 380, -1, 127, - -1, 863, -1, 646, 501, 863, -1, 442, 649, 651, - 621, -1, 442, 649, 651, 621, 854, -1, 442, 649, - 651, 621, 595, -1, 442, 499, 650, 500, -1, 442, - 499, 650, 500, 854, 870, -1, 627, -1, 451, -1, - 170, -1, 172, -1, 3, -1, 172, -1, -1, 648, - -1, 650, 503, 648, -1, 170, -1, -1, 881, 439, - 536, 376, 893, 730, 537, 886, -1, 93, 665, 854, - 574, 663, 654, 659, 668, 655, 589, 660, -1, 93, - 499, 672, 500, 417, 659, 668, 589, 660, -1, 171, - -1, 417, -1, 657, 124, 862, -1, -1, 667, -1, - 656, 503, 667, -1, 441, -1, -1, 38, -1, -1, - 325, -1, -1, 664, -1, 499, 669, 500, -1, 628, - -1, 590, -1, 492, -1, 499, 656, 500, -1, -1, - 872, 661, -1, 461, 285, -1, -1, 664, 666, -1, - -1, 52, -1, -1, 52, -1, 285, -1, 170, -1, - 123, 658, 862, -1, 277, 658, 862, -1, 97, -1, - 185, -1, 328, 658, 862, -1, 145, 658, 862, -1, - 167, 328, 578, -1, 167, 328, 492, -1, 167, 272, - 277, 578, -1, 167, 277, 578, -1, 141, 862, -1, - 628, -1, 862, -1, 393, -1, 394, -1, 662, -1, - 669, 503, 662, -1, 154, 110, 862, 660, -1, 196, - 110, 862, -1, 674, -1, 673, -1, 499, 674, 500, - -1, 499, 673, 500, -1, 676, -1, 675, 688, -1, - 675, 687, 721, 694, -1, 675, 687, 693, 722, -1, - 677, 675, -1, 677, 675, 688, -1, 677, 675, 687, - 721, 694, -1, 677, 675, 687, 693, 722, -1, 676, - -1, 673, -1, 369, 685, 843, 680, 730, 747, 710, - 719, 794, 720, 698, -1, 369, 684, 845, 680, 730, - 747, 710, 719, 794, 720, 698, -1, 729, -1, 406, - 741, -1, 675, 433, 683, 675, -1, 675, 215, 683, - 675, -1, 675, 147, 683, 675, -1, 461, 678, -1, - 485, 678, -1, 461, 334, 678, -1, 679, -1, 678, - 503, 679, -1, 857, 870, 38, 499, 609, 500, -1, - 217, 681, -1, -1, 412, 682, 854, -1, 410, 682, - 854, -1, 238, 412, 682, 854, -1, 238, 410, 682, - 854, -1, 177, 412, 682, 854, -1, 177, 410, 682, - 854, -1, 437, 682, 854, -1, 406, 854, -1, 854, - -1, 406, -1, -1, 29, -1, 132, -1, -1, 132, - -1, 132, 287, 499, 817, 500, -1, 29, -1, -1, - 191, 279, -1, 347, 279, -1, -1, 688, -1, -1, - 293, 56, 689, -1, 293, 56, 29, 691, 692, -1, - 293, 56, 492, 691, 692, -1, 690, -1, 689, 503, - 690, -1, 784, 441, 813, 692, -1, 784, 691, 692, - -1, 39, -1, 126, -1, -1, 484, 163, -1, 484, - 228, -1, -1, 695, 696, -1, 696, 695, -1, 695, - -1, 696, -1, 693, -1, -1, 235, 704, -1, 235, - 704, 503, 705, -1, 161, 709, 706, 708, 288, -1, - 161, 709, 708, 288, -1, 284, 705, -1, 284, 706, - 708, -1, 4, 494, -1, 9, 494, -1, 4, 309, - -1, 9, 309, -1, 9, -1, 9, 358, -1, 441, - 360, 700, -1, -1, 863, -1, -1, 699, 499, 697, - 500, 703, -1, 697, -1, 697, 499, 863, 500, -1, - 697, 499, 863, 503, 9, 500, -1, 408, 700, -1, - 701, -1, -1, 343, 499, 9, 500, -1, -1, 784, - -1, 29, -1, 784, 494, -1, 4, 309, -1, 9, - 309, -1, 784, -1, 786, -1, 490, 707, -1, 491, - 707, -1, 861, -1, 4, -1, 357, -1, 358, -1, - 163, -1, 269, -1, 180, 56, 712, -1, 180, 56, - 29, -1, 180, 56, 492, -1, -1, 713, -1, 711, - 503, 713, -1, 711, -1, 711, 503, -1, 784, -1, - 714, -1, 716, -1, 715, -1, 717, -1, 499, 500, - -1, 356, 499, 817, 500, -1, 98, 499, 817, 500, - -1, 181, 378, 499, 712, 500, -1, 181, -1, 182, - -1, 184, 784, -1, -1, 327, 784, -1, -1, 723, - -1, 166, 330, 288, -1, 721, -1, -1, 724, -1, - 723, 724, -1, 725, 726, 727, -1, 166, 439, -1, - 166, 270, 224, 439, -1, 166, 379, -1, 166, 224, - 379, -1, 282, 853, -1, -1, 276, -1, 383, 243, - -1, -1, 447, 499, 817, 500, -1, 728, 503, 499, - 817, 500, -1, 728, -1, 728, 503, -1, 171, 732, - -1, -1, 733, -1, 731, 503, 733, -1, 731, -1, - 731, 503, -1, 741, 736, 702, -1, 742, 737, 702, - -1, 729, 735, 702, -1, 229, 742, 737, -1, 673, - 736, 702, -1, 229, 673, 736, -1, 734, -1, 499, - 734, 500, 735, -1, 499, 734, 500, -1, 733, 96, - 222, 733, -1, 733, 738, 222, 733, 740, -1, 733, - 222, 733, 740, -1, 733, 266, 738, 222, 733, -1, - 733, 266, 222, 733, -1, 38, 864, 499, 856, 500, - -1, 38, 864, -1, 863, 499, 856, 500, -1, 863, - -1, 735, -1, -1, 735, -1, 38, 499, 748, 500, - -1, 38, 864, 499, 748, 500, -1, 863, 499, 748, - 500, -1, -1, 172, 739, -1, 232, 739, -1, 353, - 739, -1, 206, -1, 296, -1, -1, 441, 499, 856, - 500, -1, 287, 784, -1, 854, -1, 854, 492, -1, - 288, 854, -1, 288, 499, 854, 500, -1, 789, 746, - -1, 358, 171, 499, 744, 500, 746, -1, 789, 745, - -1, 743, -1, 744, 503, 743, -1, 38, 499, 748, - 500, -1, -1, 485, 294, -1, -1, 458, 784, -1, - -1, 749, -1, 748, 503, 749, -1, 864, 754, 750, - -1, 75, 868, -1, -1, 863, 754, -1, 751, 503, - 863, 754, -1, 357, -1, 399, -1, 754, -1, -1, - 756, 755, -1, 377, 756, 755, -1, 756, 37, 497, - 861, 498, -1, 377, 756, 37, 497, 861, 498, -1, - 756, 37, -1, 377, 756, 37, -1, 752, 499, 751, - 500, 755, -1, 246, 499, 821, 500, 755, -1, 755, - 497, 498, -1, 755, 497, 861, 498, -1, -1, 758, - -1, 760, -1, 762, -1, 766, -1, 772, -1, 773, - 783, -1, 773, 499, 861, 500, -1, 760, -1, 763, - -1, 767, -1, 772, -1, 867, 759, -1, 499, 818, - 500, -1, -1, 213, -1, 214, -1, 384, -1, 51, - -1, 331, -1, 164, 761, -1, 136, 316, -1, 115, - 759, -1, 114, 759, -1, 280, 759, -1, 54, -1, - 499, 861, 500, -1, -1, 764, -1, 765, -1, 764, - -1, 765, -1, 53, 771, 499, 817, 500, -1, 53, - 771, -1, 768, -1, 769, -1, 768, -1, 769, -1, - 770, 499, 861, 500, -1, 770, -1, 67, 771, -1, - 66, 771, -1, 448, -1, 265, 67, 771, -1, 265, - 66, 771, -1, 267, 771, -1, 450, -1, -1, 416, - 499, 861, 500, 774, -1, 416, 774, -1, 415, 499, - 861, 500, 774, -1, 415, 774, -1, 216, -1, 485, - 415, 482, -1, 463, 415, 482, -1, -1, 479, -1, - 480, -1, 260, -1, 261, -1, 111, -1, 112, -1, - 187, -1, 188, -1, 256, -1, 257, -1, 366, -1, - 367, -1, 254, -1, 255, -1, 252, -1, 253, -1, - 775, -1, 776, -1, 777, -1, 778, -1, 779, -1, - 780, -1, 781, -1, 782, -1, 775, 417, 776, -1, - 777, 417, 778, -1, 777, 417, 779, -1, 777, 417, - 780, -1, 778, 417, 779, -1, 778, 417, 780, -1, - 779, 417, 780, -1, -1, 786, -1, 784, 11, 754, - -1, 784, 75, 868, -1, 784, 43, 415, 482, 784, - -1, 490, 784, -1, 491, 784, -1, 784, 490, 784, - -1, 784, 491, 784, -1, 784, 492, 784, -1, 784, - 493, 784, -1, 784, 494, 784, -1, 784, 495, 784, - -1, 784, 15, 784, -1, 784, 486, 784, -1, 784, - 487, 784, -1, 784, 488, 784, -1, 784, 18, 784, - -1, 784, 19, 784, -1, 784, 20, 784, -1, 784, - 812, 784, -1, 812, 784, -1, 784, 812, -1, 784, - 35, 784, -1, 784, 292, 784, -1, 272, 784, -1, - 483, 784, -1, 784, 176, 784, -1, 784, 234, 784, - -1, 784, 234, 784, 145, 784, -1, 784, 483, 234, - 784, -1, 784, 483, 234, 784, 145, 784, -1, 784, - 192, 784, -1, 784, 192, 784, 145, 784, -1, 784, - 483, 192, 784, -1, 784, 483, 192, 784, 145, 784, - -1, 784, 381, 417, 784, -1, 784, 381, 417, 784, - 145, 784, -1, 784, 483, 381, 417, 784, -1, 784, - 483, 381, 417, 784, 145, 784, -1, 784, 219, 277, - -1, 784, 220, -1, 784, 219, 272, 277, -1, 784, - 272, 277, -1, 784, 275, -1, 805, -1, 504, 808, - 505, -1, 497, 818, 498, -1, 784, 16, 784, -1, - 784, 17, 784, -1, 805, 298, 805, -1, 784, 219, - 424, -1, 784, 219, 272, 424, -1, 784, 219, 159, - -1, 784, 219, 272, 159, -1, 784, 219, 435, -1, - 784, 219, 272, 435, -1, 784, 219, 132, 171, 784, - -1, 784, 219, 272, 132, 171, 784, -1, 784, 219, - 282, 499, 821, 500, -1, 784, 219, 272, 282, 499, - 821, 500, -1, 784, 50, 842, 785, 35, 784, -1, - 784, 483, 50, 842, 785, 35, 784, -1, 784, 50, - 403, 785, 35, 784, -1, 784, 483, 50, 403, 785, - 35, 784, -1, 784, 197, 831, -1, 784, 483, 197, - 831, -1, 784, 814, 809, 673, -1, 784, 814, 809, - 499, 784, 500, -1, 37, 673, -1, 117, -1, 37, - 497, 818, 498, -1, 786, -1, 785, 11, 754, -1, - 490, 785, -1, 491, 785, -1, 785, 490, 785, -1, - 785, 491, 785, -1, 785, 492, 785, -1, 785, 493, - 785, -1, 785, 494, 785, -1, 785, 495, 785, -1, - 785, 15, 785, -1, 785, 486, 785, -1, 785, 487, - 785, -1, 785, 488, 785, -1, 785, 18, 785, -1, - 785, 19, 785, -1, 785, 20, 785, -1, 785, 812, - 785, -1, 812, 785, -1, 785, 812, -1, 785, 219, - 132, 171, 785, -1, 785, 219, 272, 132, 171, 785, - -1, 785, 219, 282, 499, 821, 500, -1, 785, 219, - 272, 282, 499, 821, 500, -1, 837, -1, 860, -1, - 506, 9, -1, 507, 841, -1, 10, 841, -1, 499, - 784, 500, 841, -1, 832, -1, 788, 841, -1, 673, - -1, 673, 840, -1, 152, 673, -1, 718, 499, 817, - 500, -1, 859, 499, 500, -1, 859, 499, 819, 687, - 686, 500, -1, 859, 499, 449, 820, 687, 686, 500, - -1, 859, 499, 819, 503, 449, 820, 687, 686, 500, - -1, 859, 499, 29, 819, 687, 686, 500, -1, 859, - 499, 132, 819, 687, 686, 500, -1, 859, 499, 492, - 500, -1, 787, 791, 792, 793, 797, -1, 790, -1, - 787, -1, 790, -1, 76, 166, 499, 784, 500, -1, - 101, -1, 104, -1, 104, 499, 861, 500, -1, 105, - -1, 105, 499, 861, 500, -1, 239, -1, 239, 499, - 861, 500, -1, 240, -1, 240, 499, 861, 500, -1, - 102, -1, 106, -1, 375, -1, 440, -1, 100, -1, - 103, -1, 63, 499, 784, 38, 754, 500, -1, 427, - 499, 784, 38, 754, 500, -1, 158, 499, 822, 500, - -1, 299, 499, 824, 500, -1, 313, 499, 826, 500, - -1, 401, 499, 827, 500, -1, 421, 499, 784, 38, - 754, 500, -1, 423, 499, 55, 830, 500, -1, 423, - 499, 230, 830, 500, -1, 423, 499, 418, 830, 500, - -1, 423, 499, 830, 500, -1, 278, 499, 784, 503, - 784, 500, -1, 74, 499, 817, 500, -1, 462, 180, - 499, 688, 500, -1, -1, 162, 499, 458, 784, 500, - -1, 162, 499, 784, 500, -1, -1, 155, -1, -1, - 460, 795, -1, -1, 796, -1, 795, 503, 796, -1, - 863, 38, 798, -1, 297, 798, -1, 297, 863, -1, - -1, 499, 799, 800, 687, 801, 500, -1, 863, -1, - -1, 306, 56, 816, -1, -1, 329, 802, -1, 358, - 802, -1, -1, 803, -1, 50, 803, 35, 803, -1, - 430, 315, -1, 430, 165, -1, 99, 357, -1, 784, - 315, -1, 784, 165, -1, 357, 499, 817, 500, -1, - 357, 499, 500, -1, 804, -1, 499, 816, 503, 784, - 500, -1, 864, 508, 784, -1, 806, -1, 807, 503, - 806, -1, 807, -1, 807, 503, -1, 36, -1, 386, - -1, 29, -1, 8, -1, 811, -1, 490, -1, 491, - -1, 492, -1, 493, -1, 494, -1, 495, -1, 15, - -1, 486, -1, 487, -1, 488, -1, 18, -1, 19, - -1, 20, -1, 8, -1, 289, 499, 815, 500, -1, - 810, -1, 289, 499, 815, 500, -1, 810, -1, 289, - 499, 815, 500, -1, 234, -1, 483, 234, -1, 176, - -1, 483, 176, -1, 192, -1, 483, 192, -1, 810, - -1, 863, 501, 815, -1, 784, -1, 816, 503, 784, - -1, 816, -1, 816, 503, -1, 817, -1, -1, 820, - -1, 819, 503, 820, -1, 784, -1, 871, 13, 784, - -1, 871, 14, 784, -1, 754, -1, 821, 503, 754, - -1, 823, 171, 784, -1, -1, 3, -1, 775, -1, - 776, -1, 777, -1, 778, -1, 779, -1, 780, -1, - 781, -1, 782, -1, 862, -1, 784, 825, 828, 829, - -1, 784, 825, 828, -1, 310, 784, -1, 785, 197, - 785, -1, -1, 784, 828, 829, -1, 784, 829, 828, - -1, 784, 828, -1, 784, 829, -1, 816, -1, -1, - 171, 784, -1, 166, 784, -1, 784, 171, 817, -1, - 171, 817, -1, 817, -1, 673, -1, 499, 817, 500, - -1, 62, 836, 833, 835, 143, -1, 834, -1, 833, - 834, -1, 457, 784, 414, 784, -1, 139, 784, -1, - -1, 784, -1, -1, 863, -1, 863, 840, -1, 501, - 858, -1, 497, 784, 498, -1, 497, 839, 508, 839, - 498, -1, 784, -1, -1, 838, -1, 840, 838, -1, - -1, 841, 838, -1, 42, -1, -1, 845, -1, -1, - 846, -1, 844, 503, 846, -1, 844, -1, 844, 503, - -1, 784, 38, 873, -1, 784, 3, -1, 784, -1, - 492, 848, 852, -1, 863, 501, 492, 848, 852, -1, - 148, 499, 856, 500, -1, 148, 863, -1, 847, -1, - -1, 784, 38, 863, -1, 849, -1, 850, 503, 849, - -1, 850, -1, 850, 503, -1, 344, 499, 851, 500, - -1, 344, 849, -1, -1, 854, -1, 853, 503, 854, - -1, 864, -1, 863, 840, -1, 857, -1, 855, 503, - 857, -1, 855, -1, 855, 503, -1, 864, -1, 872, - -1, 866, -1, 863, 840, -1, 861, -1, 4, -1, - 862, 841, -1, 6, -1, 7, -1, 859, 862, -1, - 859, 499, 819, 687, 686, 500, 862, -1, 757, 862, - -1, 773, 499, 784, 500, 783, -1, 773, 861, 783, - -1, 773, 862, 783, -1, 424, -1, 159, -1, 277, - -1, 9, -1, 5, -1, 3, -1, 897, -1, 898, - -1, 863, -1, 5, -1, 3, -1, 897, -1, 902, - -1, 3, -1, 897, -1, 899, -1, 3, -1, 897, - -1, 900, -1, 863, -1, 863, 869, -1, 501, 858, - -1, 869, 501, 858, -1, 499, 856, 500, -1, -1, - 865, -1, 3, -1, 901, -1, 897, -1, 903, -1, - 872, -1, 5, -1, 58, 787, -1, 21, 876, -1, - 49, 876, -1, 390, 876, -1, 81, 876, -1, 143, - 876, -1, 355, 876, -1, 464, -1, 419, -1, -1, - 881, 210, 217, 879, 878, 884, 886, -1, 672, -1, - 300, 887, 446, 672, -1, 499, 891, 500, 672, -1, - 499, 891, 500, 300, 887, 446, 672, -1, 117, 447, - -1, 854, -1, 854, 38, 863, -1, 499, 894, 500, - 747, -1, 287, 88, 857, -1, -1, 677, -1, -1, - 863, 841, -1, 895, 488, 784, -1, 499, 888, 500, - 488, 784, -1, 287, 86, 880, 133, 439, 376, 893, - 747, -1, 287, 86, 880, 133, 273, -1, -1, 863, - 889, 890, 691, 692, -1, 789, 889, 890, 691, 692, - -1, 499, 784, 500, 889, 890, 691, 692, -1, 350, - 844, -1, -1, 440, -1, 405, -1, 895, -1, 888, - 503, 895, -1, 75, 868, -1, -1, 868, -1, -1, - 882, -1, 891, 503, 882, -1, 883, -1, 892, 503, - 883, -1, 892, -1, 892, 503, -1, 885, -1, 894, - 503, 885, -1, 863, 841, -1, 95, 428, 868, 38, - 754, -1, 21, -1, 22, -1, 23, -1, 24, -1, - 25, -1, 26, -1, 27, -1, 28, -1, 30, -1, - 31, -1, 32, -1, 40, -1, 41, -1, 43, -1, - 44, -1, 45, -1, 47, -1, 48, -1, 49, -1, - 56, -1, 57, -1, 58, -1, 59, -1, 60, -1, - 61, -1, 64, -1, 65, -1, 68, -1, 70, -1, - 71, -1, 72, -1, 73, -1, 78, -1, 79, -1, - 80, -1, 81, -1, 82, -1, 83, -1, 85, -1, - 86, -1, 87, -1, 89, -1, 90, -1, 91, -1, - 92, -1, 93, -1, 94, -1, 97, -1, 98, -1, - 99, -1, 107, -1, 108, -1, 109, -1, 110, -1, - 111, -1, 112, -1, 113, -1, 116, -1, 118, -1, - 120, -1, 121, -1, 122, -1, 123, -1, 124, -1, - 125, -1, 127, -1, 128, -1, 129, -1, 130, -1, - 131, -1, 134, -1, 135, -1, 136, -1, 137, -1, - 138, -1, 140, -1, 141, -1, 142, -1, 144, -1, - 145, -1, 146, -1, 148, -1, 149, -1, 150, -1, - 151, -1, 153, -1, 154, -1, 155, -1, 156, -1, - 157, -1, 160, -1, 162, -1, 163, -1, 165, -1, - 167, -1, 169, -1, 173, -1, 174, -1, 177, -1, - 179, -1, 183, -1, 185, -1, 186, -1, 187, -1, - 188, -1, 189, -1, 190, -1, 191, -1, 193, -1, - 194, -1, 195, -1, 196, -1, 198, -1, 199, -1, - 200, -1, 201, -1, 202, -1, 203, -1, 205, -1, - 208, -1, 209, -1, 210, -1, 211, -1, 212, -1, - 218, -1, 221, -1, 223, -1, 224, -1, 225, -1, - 226, -1, 227, -1, 228, -1, 231, -1, 233, -1, - 236, -1, 237, -1, 238, -1, 241, -1, 242, -1, - 243, -1, 244, -1, 245, -1, 247, -1, 248, -1, - 249, -1, 250, -1, 251, -1, 252, -1, 253, -1, - 254, -1, 255, -1, 256, -1, 257, -1, 258, -1, - 259, -1, 260, -1, 261, -1, 262, -1, 263, -1, - 264, -1, 268, -1, 269, -1, 270, -1, 273, -1, - 274, -1, 276, -1, 279, -1, 281, -1, 282, -1, - 283, -1, 285, -1, 286, -1, 289, -1, 290, -1, - 291, -1, 294, -1, 297, -1, 300, -1, 301, -1, - 302, -1, 303, -1, 304, -1, 305, -1, 306, -1, - 307, -1, 308, -1, 309, -1, 311, -1, 312, -1, - 314, -1, 315, -1, 317, -1, 318, -1, 319, -1, - 321, -1, 322, -1, 323, -1, 324, -1, 325, -1, - 326, -1, 328, -1, 329, -1, 330, -1, 332, -1, - 333, -1, 334, -1, 335, -1, 337, -1, 338, -1, - 339, -1, 340, -1, 341, -1, 342, -1, 343, -1, - 344, -1, 345, -1, 346, -1, 347, -1, 348, -1, - 349, -1, 351, -1, 352, -1, 354, -1, 355, -1, - 356, -1, 358, -1, 359, -1, 360, -1, 361, -1, - 362, -1, 363, -1, 364, -1, 365, -1, 366, -1, - 367, -1, 368, -1, 370, -1, 371, -1, 372, -1, - 373, -1, 374, -1, 376, -1, 378, -1, 379, -1, - 380, -1, 382, -1, 383, -1, 385, -1, 387, -1, - 388, -1, 389, -1, 390, -1, 391, -1, 392, -1, - 393, -1, 394, -1, 395, -1, 396, -1, 397, -1, - 398, -1, 400, -1, 402, -1, 404, -1, 405, -1, - 407, -1, 409, -1, 410, -1, 411, -1, 412, -1, - 413, -1, 419, -1, 420, -1, 422, -1, 425, -1, - 426, -1, 428, -1, 429, -1, 430, -1, 431, -1, - 432, -1, 435, -1, 436, -1, 437, -1, 438, -1, - 439, -1, 442, -1, 443, -1, 444, -1, 445, -1, - 446, -1, 450, -1, 452, -1, 453, -1, 454, -1, - 455, -1, 456, -1, 459, -1, 462, -1, 463, -1, - 464, -1, 465, -1, 466, -1, 467, -1, 479, -1, - 480, -1, 481, -1, 482, -1, 50, -1, 51, -1, - 53, -1, 54, -1, 66, -1, 67, -1, 74, -1, - 114, -1, 115, -1, 152, -1, 158, -1, 164, -1, - 175, -1, 181, -1, 182, -1, 207, -1, 213, -1, - 214, -1, 216, -1, 246, -1, 265, -1, 267, -1, - 271, -1, 278, -1, 280, -1, 295, -1, 299, -1, - 313, -1, 316, -1, 331, -1, 357, -1, 377, -1, - 384, -1, 399, -1, 401, -1, 415, -1, 416, -1, - 421, -1, 423, -1, 427, -1, 447, -1, 448, -1, - 468, -1, 469, -1, 470, -1, 471, -1, 472, -1, - 473, -1, 474, -1, 475, -1, 476, -1, 477, -1, - 478, -1, 46, -1, 52, -1, 76, -1, 84, -1, - 96, -1, 100, -1, 101, -1, 102, -1, 103, -1, - 106, -1, 170, -1, 172, -1, 175, -1, 176, -1, - 192, -1, 206, -1, 219, -1, 220, -1, 222, -1, - 232, -1, 234, -1, 246, -1, 266, -1, 275, -1, - 296, -1, 298, -1, 353, -1, 375, -1, 381, -1, - 399, -1, 408, -1, 440, -1, 451, -1, 46, -1, - 52, -1, 76, -1, 84, -1, 96, -1, 100, -1, - 101, -1, 102, -1, 103, -1, 106, -1, 170, -1, - 172, -1, 176, -1, 192, -1, 206, -1, 219, -1, - 220, -1, 222, -1, 232, -1, 234, -1, 266, -1, - 275, -1, 296, -1, 298, -1, 353, -1, 375, -1, - 381, -1, 408, -1, 427, -1, 440, -1, 451, -1, - 46, -1, 50, -1, 51, -1, 52, -1, 53, -1, - 54, -1, 67, -1, 66, -1, 74, -1, 76, -1, - 84, -1, 96, -1, 100, -1, 101, -1, 102, -1, - 103, -1, 106, -1, 114, -1, 115, -1, 152, -1, - 158, -1, 164, -1, 170, -1, 172, -1, 175, -1, - 176, -1, 181, -1, 182, -1, 192, -1, 206, -1, - 207, -1, 214, -1, 216, -1, 213, -1, 219, -1, - 220, -1, 222, -1, 232, -1, 234, -1, 246, -1, - 265, -1, 266, -1, 267, -1, 271, -1, 275, -1, - 278, -1, 280, -1, 296, -1, 295, -1, 298, -1, - 299, -1, 313, -1, 316, -1, 331, -1, 353, -1, - 357, -1, 375, -1, 377, -1, 381, -1, 384, -1, - 399, -1, 401, -1, 408, -1, 415, -1, 416, -1, - 421, -1, 423, -1, 427, -1, 440, -1, 447, -1, - 448, -1, 451, -1, 468, -1, 469, -1, 470, -1, - 471, -1, 472, -1, 473, -1, 474, -1, 475, -1, - 476, -1, 477, -1, 478, -1, 46, -1, 52, -1, - 76, -1, 84, -1, 96, -1, 100, -1, 101, -1, - 102, -1, 103, -1, 106, -1, 170, -1, 172, -1, - 175, -1, 176, -1, 192, -1, 206, -1, 219, -1, - 220, -1, 222, -1, 232, -1, 234, -1, 246, -1, - 266, -1, 275, -1, 296, -1, 298, -1, 353, -1, - 375, -1, 381, -1, 399, -1, 408, -1, 427, -1, - 440, -1, 451, -1, 29, -1, 33, -1, 34, -1, - 35, -1, 36, -1, 37, -1, 38, -1, 39, -1, - 42, -1, 55, -1, 62, -1, 63, -1, 69, -1, - 75, -1, 77, -1, 88, -1, 95, -1, 104, -1, - 105, -1, 117, -1, 119, -1, 126, -1, 132, -1, - 133, -1, 139, -1, 143, -1, 147, -1, 159, -1, - 161, -1, 166, -1, 168, -1, 171, -1, 178, -1, - 180, -1, 184, -1, 197, -1, 204, -1, 215, -1, - 217, -1, 229, -1, 230, -1, 235, -1, 239, -1, - 240, -1, 272, -1, 277, -1, 284, -1, 287, -1, - 288, -1, 292, -1, 293, -1, 310, -1, 320, -1, - 327, -1, 336, -1, 350, -1, 369, -1, 386, -1, - 403, -1, 406, -1, 414, -1, 417, -1, 418, -1, - 424, -1, 433, -1, 434, -1, 441, -1, 449, -1, - 457, -1, 458, -1, 460, -1, 461, -1 -}; - -/* YYRLINE[YYN] -- source line where rule number YYN was defined. */ -static const yytype_uint16 yyrline[] = + /* YYRLINE[YYN] -- Source line where rule number YYN was defined. */ +static const yytype_int16 yyrline[] = { 0, 466, 466, 482, 494, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 538, - 2, 7, 14, 24, 25, 32, 11, 24, 37, 54, - 55, 56, 61, 7, 14, 22, 7, 16, 34, 41, - 46, 47, 48, 49, 9, 18, 27, 36, 45, 54, - 63, 72, 85, 87, 93, 94, 99, 103, 107, 118, - 126, 130, 139, 148, 157, 166, 175, 184, 192, 200, - 209, 218, 227, 236, 253, 262, 271, 280, 290, 303, - 318, 327, 335, 350, 358, 368, 378, 385, 392, 400, - 407, 418, 419, 424, 428, 433, 438, 446, 447, 452, - 456, 457, 458, 7, 13, 19, 25, 7, 21, 25, - 32, 43, 44, 50, 51, 7, 21, 36, 56, 57, - 84, 85, 86, 87, 88, 89, 93, 94, 99, 104, - 105, 106, 107, 108, 113, 120, 121, 122, 139, 146, - 153, 163, 173, 185, 193, 202, 220, 221, 225, 226, - 230, 239, 262, 276, 283, 288, 290, 292, 294, 297, - 300, 301, 302, 303, 308, 312, 313, 318, 325, 330, - 331, 332, 333, 334, 335, 336, 337, 343, 344, 348, - 353, 360, 367, 374, 386, 387, 388, 389, 393, 398, - 399, 400, 405, 410, 411, 412, 413, 414, 415, 420, - 440, 469, 470, 474, 478, 479, 480, 484, 488, 496, - 497, 502, 503, 504, 508, 516, 517, 522, 523, 527, - 532, 536, 540, 545, 553, 554, 558, 559, 563, 564, - 570, 581, 594, 608, 622, 636, 650, 673, 677, 684, - 688, 696, 701, 708, 718, 719, 720, 721, 722, 729, - 736, 737, 742, 743, 9, 17, 29, 30, 34, 35, - 36, 41, 42, 43, 48, 52, 56, 60, 64, 68, - 72, 76, 80, 84, 88, 92, 97, 101, 105, 112, - 113, 117, 118, 119, 7, 16, 25, 34, 43, 52, - 9, 19, 6, 15, 25, 35, 45, 55, 65, 75, - 85, 95, 106, 117, 127, 140, 141, 7, 14, 31, - 51, 52, 10, 16, 22, 28, 38, 39, 47, 58, - 70, 78, 86, 93, 103, 105, 111, 115, 119, 134, - 141, 142, 143, 147, 148, 5, 11, 7, 18, 19, - 23, 24, 25, 26, 8, 20, 36, 37, 41, 45, - 8, 33, 62, 66, 67, 72, 73, 78, 79, 83, - 84, 89, 90, 9, 16, 26, 33, 44, 45, 50, - 51, 52, 57, 58, 59, 60, 61, 62, 63, 64, - 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, - 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, - 85, 86, 90, 91, 92, 97, 98, 103, 107, 115, - 116, 121, 122, 123, 129, 134, 142, 143, 9, 19, - 29, 39, 49, 59, 69, 79, 93, 94, 95, 96, - 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, - 107, 108, 113, 114, 115, 116, 117, 118, 119, 124, - 125, 130, 131, 132, 137, 138, 139, 142, 143, 8, - 21, 34, 52, 74, 75, 76, 77, 9, 19, 32, - 33, 7, 14, 20, 28, 29, 3, 10, 17, 24, - 31, 38, 45, 52, 61, 61, 63, 64, 8, 22, + 1, 20, 49, 72, 73, 78, 82, 87, 91, 99, + 100, 104, 105, 110, 111, 115, 116, 121, 122, 123, + 124, 125, 130, 138, 142, 147, 148, 153, 157, 162, + 166, 170, 174, 178, 182, 186, 190, 194, 198, 202, + 206, 210, 214, 222, 228, 229, 230, 235, 239, 2, + 7, 14, 24, 25, 32, 6, 47, 48, 52, 53, + 68, 69, 76, 84, 92, 100, 108, 116, 127, 128, + 155, 171, 188, 189, 208, 212, 216, 233, 240, 247, + 257, 258, 261, 273, 284, 292, 297, 302, 307, 312, + 320, 328, 333, 338, 345, 346, 350, 351, 352, 359, + 360, 364, 365, 369, 370, 371, 375, 376, 380, 381, + 391, 404, 405, 408, 417, 428, 429, 430, 433, 434, + 435, 439, 440, 441, 442, 446, 447, 451, 453, 469, + 471, 476, 479, 487, 491, 495, 499, 503, 507, 514, + 519, 526, 527, 531, 536, 540, 544, 552, 559, 560, + 565, 566, 570, 571, 576, 578, 580, 585, 605, 606, + 608, 613, 614, 618, 619, 622, 623, 648, 649, 654, + 659, 663, 664, 668, 669, 673, 674, 675, 676, 677, + 681, 694, 701, 708, 715, 716, 720, 721, 725, 726, + 730, 731, 735, 736, 740, 741, 745, 756, 757, 758, + 759, 763, 764, 769, 770, 771, 780, 786, 795, 796, + 809, 810, 814, 815, 819, 820, 826, 832, 840, 849, + 857, 866, 875, 879, 905, 909, 922, 936, 951, 963, + 979, 985, 990, 996, 1003, 1004, 1012, 1016, 1020, 1026, + 1033, 1038, 1039, 1040, 1041, 1045, 1046, 1058, 1059, 1064, + 1071, 1078, 1085, 1117, 1128, 1141, 1146, 1147, 1150, 1151, + 1154, 1155, 1160, 1161, 1166, 1170, 1176, 1197, 1205, 1218, + 1221, 1225, 1225, 1228, 1229, 1231, 1236, 1243, 1248, 1254, + 1259, 1265, 1271, 1280, 1282, 1285, 1289, 1290, 1291, 1292, + 1293, 1294, 1299, 1319, 1320, 1321, 1322, 1333, 1347, 1348, + 1354, 1359, 1364, 1369, 1374, 1379, 1384, 1389, 1395, 1401, + 1407, 1414, 1436, 1445, 1449, 1457, 1461, 1469, 1481, 1502, + 1506, 1512, 1516, 1529, 1537, 1547, 1549, 1551, 1553, 1555, + 1557, 1562, 1563, 1570, 1579, 1587, 1596, 1607, 1615, 1616, + 1617, 1621, 1621, 1624, 1624, 1627, 1627, 1630, 1630, 1633, + 1633, 1636, 1636, 1639, 1639, 1642, 1642, 1645, 1647, 1649, + 1651, 1653, 1655, 1657, 1659, 1661, 1666, 1671, 1677, 1684, + 1689, 1695, 1701, 1732, 1734, 1736, 1744, 1759, 1761, 1763, + 1765, 1767, 1769, 1771, 1773, 1775, 1777, 1779, 1781, 1783, + 1785, 1787, 1790, 1792, 1794, 1797, 1799, 1801, 1803, 1805, + 1810, 1815, 1822, 1827, 1834, 1839, 1846, 1851, 1859, 1867, + 1875, 1883, 1901, 1909, 1917, 1925, 1933, 1941, 1945, 1949, + 1953, 1961, 1965, 1981, 1989, 1997, 2005, 2013, 2021, 2029, + 2033, 2037, 2041, 2045, 2053, 2061, 2069, 2077, 2097, 2119, + 2130, 2137, 2148, 2162, 2178, 2180, 2182, 2184, 2186, 2188, + 2190, 2192, 2194, 2196, 2198, 2200, 2202, 2204, 2206, 2208, + 2210, 2212, 2214, 2216, 2218, 2222, 2226, 2230, 2244, 2245, + 2246, 2253, 2265, 2280, 2292, 2294, 2306, 2317, 2341, 2352, + 2361, 2365, 2372, 2380, 2388, 2399, 2407, 2435, 2471, 2482, + 2483, 2490, 2496, 2500, 2504, 2508, 2512, 2516, 2520, 2524, + 2528, 2532, 2536, 2540, 2544, 2548, 2552, 2556, 2558, 2560, + 2564, 2573, 2578, 2585, 2600, 2607, 2611, 2615, 2619, 2623, + 2637, 2638, 2642, 2643, 2644, 2648, 2649, 2656, 2657, 2661, + 2662, 2667, 2675, 2677, 2691, 2694, 2721, 2722, 2725, 2726, + 2737, 2743, 2750, 2759, 2776, 2821, 2829, 2837, 2845, 2853, + 2874, 2875, 2878, 2879, 2883, 2893, 2894, 2898, 2899, 2903, + 2904, 2905, 2908, 2909, 2912, 2913, 2914, 2915, 2916, 2917, + 2918, 2919, 2920, 2921, 2922, 2923, 2924, 2927, 2929, 2934, + 2936, 2941, 2943, 2945, 2947, 2949, 2951, 2953, 2955, 2969, + 2971, 2975, 2979, 2986, 2991, 2998, 3003, 3011, 3015, 3021, + 3025, 3034, 3045, 3046, 3050, 3054, 3061, 3062, 3063, 3064, + 3065, 3066, 3067, 3068, 3069, 3070, 3080, 3084, 3091, 3098, + 3099, 3115, 3119, 3124, 3128, 3143, 3148, 3152, 3155, 3158, + 3159, 3160, 3163, 3170, 3180, 3194, 3195, 3199, 3210, 3211, + 3214, 3215, 3218, 3222, 3229, 3233, 3241, 3252, 3253, 3257, + 3258, 3262, 3263, 3266, 3267, 3277, 3278, 3282, 3283, 3287, + 3288, 3291, 3307, 3315, 3323, 3338, 3356, 3357, 3360, 3361, + 3364, 3368, 3369, 3373, 3374, 3377, 3378, 3379, 3389, 3390, + 3401, 3405, 3432, 3434, 3440, 3441, 3444, 3446, 3456, 3459, + 3470, 3474, 3478, 3490, 3494, 3503, 3510, 3548, 3552, 3556, + 3560, 3564, 3568, 3572, 3578, 3579, 3595, 3596, 3597, 3600, + 3601, 3607, 3608, 3609, 3612, 3613, 3614, 3617, 3618, 3619, + 3622, 3623, 3626, 3628, 3633, 3634, 3637, 3645, 3646, 3647, + 3648, 3651, 3652, 7, 14, 22, 11, 24, 37, 54, + 55, 56, 61, 3, 10, 17, 24, 31, 38, 45, + 52, 61, 61, 63, 64, 9, 17, 29, 30, 34, + 35, 36, 41, 42, 43, 48, 52, 56, 60, 64, + 68, 72, 76, 80, 84, 88, 92, 97, 101, 105, + 112, 113, 117, 118, 119, 7, 13, 19, 25, 7, + 21, 36, 56, 57, 84, 85, 86, 87, 88, 89, + 93, 94, 99, 104, 105, 106, 107, 108, 113, 120, + 121, 122, 139, 146, 153, 163, 173, 185, 193, 202, + 220, 221, 225, 226, 230, 239, 262, 276, 283, 288, + 290, 292, 294, 297, 300, 301, 302, 303, 308, 312, + 313, 318, 325, 330, 331, 332, 333, 334, 335, 336, + 337, 343, 344, 348, 353, 360, 367, 374, 386, 387, + 388, 389, 393, 398, 399, 400, 405, 410, 411, 412, + 413, 414, 415, 420, 440, 469, 470, 474, 478, 479, + 480, 484, 488, 496, 497, 502, 503, 504, 508, 516, + 517, 522, 523, 527, 532, 536, 540, 545, 553, 554, + 558, 559, 563, 564, 570, 581, 594, 608, 622, 636, + 650, 673, 677, 684, 688, 696, 701, 708, 718, 719, + 720, 721, 722, 729, 736, 737, 742, 743, 7, 14, + 31, 51, 52, 7, 16, 34, 41, 46, 47, 48, + 49, 9, 16, 26, 33, 44, 45, 50, 51, 52, + 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, + 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, + 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, + 90, 91, 92, 97, 98, 103, 107, 115, 116, 121, + 122, 123, 129, 134, 142, 143, 9, 19, 29, 39, + 49, 59, 69, 79, 93, 94, 95, 96, 97, 98, + 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, + 113, 114, 115, 116, 117, 118, 119, 124, 125, 130, + 131, 132, 137, 138, 139, 142, 143, 7, 9, 18, + 27, 36, 45, 54, 63, 72, 85, 87, 93, 94, + 99, 103, 107, 118, 126, 130, 139, 148, 157, 166, + 175, 184, 192, 200, 209, 218, 227, 236, 253, 262, + 271, 280, 290, 303, 318, 327, 335, 350, 358, 368, + 378, 385, 392, 400, 407, 418, 419, 424, 428, 433, + 438, 446, 447, 452, 456, 457, 458, 2, 9, 15, + 21, 28, 35, 45, 46, 47, 6, 15, 25, 35, + 45, 55, 65, 75, 85, 95, 106, 117, 127, 140, + 141, 7, 18, 19, 23, 24, 25, 26, 8, 22, 36, 48, 56, 70, 71, 72, 73, 74, 87, 88, - 93, 94, 98, 99, 7, 1, 30, 53, 54, 59, - 63, 68, 72, 80, 81, 85, 86, 91, 92, 96, - 97, 102, 103, 104, 105, 106, 111, 119, 123, 128, - 129, 134, 138, 143, 147, 151, 155, 159, 163, 167, - 171, 175, 179, 183, 187, 191, 195, 203, 209, 210, - 211, 216, 220, 7, 20, 47, 48, 52, 53, 68, - 69, 76, 84, 92, 100, 108, 116, 127, 128, 155, - 171, 188, 189, 208, 212, 216, 233, 240, 247, 257, - 258, 261, 273, 284, 292, 297, 302, 307, 312, 320, - 328, 333, 338, 345, 346, 350, 351, 352, 359, 360, - 364, 365, 369, 370, 371, 375, 376, 380, 381, 391, - 404, 405, 408, 417, 428, 429, 430, 433, 434, 435, - 439, 440, 441, 442, 446, 447, 451, 453, 469, 471, - 476, 479, 487, 491, 495, 499, 503, 507, 514, 519, - 526, 527, 531, 536, 540, 544, 552, 559, 560, 565, - 566, 570, 571, 576, 578, 580, 585, 605, 606, 608, - 613, 614, 618, 619, 622, 623, 648, 649, 654, 659, - 663, 664, 668, 669, 673, 674, 675, 676, 677, 681, - 694, 701, 708, 715, 716, 720, 721, 725, 726, 730, - 731, 735, 736, 740, 741, 745, 756, 757, 758, 759, - 763, 764, 769, 770, 771, 780, 786, 795, 796, 809, - 810, 814, 815, 819, 820, 826, 832, 840, 849, 857, - 866, 875, 879, 905, 909, 922, 936, 951, 963, 979, - 985, 990, 996, 1003, 1004, 1012, 1016, 1020, 1026, 1033, - 1038, 1039, 1040, 1041, 1045, 1046, 1058, 1059, 1064, 1071, - 1078, 1085, 1117, 1128, 1141, 1146, 1147, 1150, 1151, 1154, - 1155, 1160, 1161, 1166, 1170, 1176, 1197, 1205, 1218, 1221, - 1225, 1225, 1228, 1229, 1231, 1236, 1243, 1248, 1254, 1259, - 1265, 1271, 1280, 1282, 1285, 1289, 1290, 1291, 1292, 1293, - 1294, 1299, 1319, 1320, 1321, 1322, 1333, 1347, 1348, 1354, - 1359, 1364, 1369, 1374, 1379, 1384, 1389, 1395, 1401, 1407, - 1414, 1436, 1445, 1449, 1457, 1461, 1469, 1481, 1502, 1506, - 1512, 1516, 1529, 1537, 1547, 1549, 1551, 1553, 1555, 1557, - 1562, 1563, 1570, 1579, 1587, 1596, 1607, 1615, 1616, 1617, - 1621, 1621, 1624, 1624, 1627, 1627, 1630, 1630, 1633, 1633, - 1636, 1636, 1639, 1639, 1642, 1642, 1645, 1647, 1649, 1651, - 1653, 1655, 1657, 1659, 1661, 1666, 1671, 1677, 1684, 1689, - 1695, 1701, 1732, 1734, 1736, 1744, 1759, 1761, 1763, 1765, - 1767, 1769, 1771, 1773, 1775, 1777, 1779, 1781, 1783, 1785, - 1787, 1790, 1792, 1794, 1797, 1799, 1801, 1803, 1805, 1810, - 1815, 1822, 1827, 1834, 1839, 1846, 1851, 1859, 1867, 1875, - 1883, 1901, 1909, 1917, 1925, 1933, 1941, 1945, 1949, 1953, - 1961, 1965, 1981, 1989, 1997, 2005, 2013, 2021, 2029, 2033, - 2037, 2041, 2045, 2053, 2061, 2069, 2077, 2097, 2119, 2130, - 2137, 2148, 2162, 2178, 2180, 2182, 2184, 2186, 2188, 2190, - 2192, 2194, 2196, 2198, 2200, 2202, 2204, 2206, 2208, 2210, - 2212, 2214, 2216, 2218, 2222, 2226, 2230, 2244, 2245, 2246, - 2253, 2265, 2280, 2292, 2294, 2306, 2317, 2341, 2352, 2361, - 2365, 2372, 2380, 2388, 2399, 2407, 2435, 2471, 2482, 2483, - 2490, 2496, 2500, 2504, 2508, 2512, 2516, 2520, 2524, 2528, - 2532, 2536, 2540, 2544, 2548, 2552, 2556, 2558, 2560, 2564, - 2573, 2578, 2585, 2600, 2607, 2611, 2615, 2619, 2623, 2637, - 2638, 2642, 2643, 2644, 2648, 2649, 2656, 2657, 2661, 2662, - 2667, 2675, 2677, 2691, 2694, 2721, 2722, 2725, 2726, 2737, - 2743, 2750, 2759, 2776, 2821, 2829, 2837, 2845, 2853, 2874, - 2875, 2878, 2879, 2883, 2893, 2894, 2898, 2899, 2903, 2904, - 2905, 2908, 2909, 2912, 2913, 2914, 2915, 2916, 2917, 2918, - 2919, 2920, 2921, 2922, 2923, 2924, 2927, 2929, 2934, 2936, - 2941, 2943, 2945, 2947, 2949, 2951, 2953, 2955, 2969, 2971, - 2975, 2979, 2986, 2991, 2998, 3003, 3011, 3015, 3021, 3025, - 3034, 3045, 3046, 3050, 3054, 3061, 3062, 3063, 3064, 3065, - 3066, 3067, 3068, 3069, 3070, 3080, 3084, 3091, 3098, 3099, - 3115, 3119, 3124, 3128, 3143, 3148, 3152, 3155, 3158, 3159, - 3160, 3163, 3170, 3180, 3194, 3195, 3199, 3210, 3211, 3214, - 3215, 3218, 3222, 3229, 3233, 3241, 3252, 3253, 3257, 3258, - 3262, 3263, 3266, 3267, 3277, 3278, 3282, 3283, 3287, 3288, - 3291, 3307, 3315, 3323, 3338, 3356, 3357, 3360, 3361, 3364, - 3368, 3369, 3373, 3374, 3377, 3378, 3379, 3389, 3390, 3401, - 3405, 3432, 3434, 3440, 3441, 3444, 3446, 3456, 3459, 3470, - 3474, 3478, 3490, 3494, 3503, 3510, 3548, 3552, 3556, 3560, - 3564, 3568, 3572, 3578, 3579, 3595, 3596, 3597, 3600, 3601, - 3607, 3608, 3609, 3612, 3613, 3614, 3617, 3618, 3619, 3622, - 3623, 3626, 3628, 3633, 3634, 3637, 3645, 3646, 3647, 3648, - 3651, 3652, 6, 2, 9, 15, 21, 28, 35, 45, - 46, 47, 8, 21, 27, 34, 40, 47, 57, 61, + 93, 94, 98, 99, 8, 33, 62, 66, 67, 72, + 73, 78, 79, 83, 84, 89, 90, 7, 20, 7, + 21, 25, 32, 43, 44, 50, 51, 8, 21, 34, + 52, 74, 75, 76, 77, 10, 16, 22, 28, 38, + 39, 47, 58, 70, 78, 86, 93, 103, 105, 111, + 115, 119, 134, 141, 142, 143, 147, 148, 5, 11, + 7, 14, 20, 28, 29, 9, 19, 32, 33, 8, + 20, 36, 37, 41, 45, 7, 16, 25, 34, 43, + 52, 7, 8, 21, 27, 34, 40, 47, 57, 61, 70, 79, 88, 95, 96, 101, 113, 118, 143, 153, 163, 169, 180, 191, 206, 207, 213, 214, 219, 220, 226, 227, 231, 232, 237, 239, 245, 246, 250, 251, - 254, 255, 260, 7, 24, 24, 24, 24, 24, 24, - 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, - 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, - 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, - 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, - 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, - 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, - 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, - 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, - 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, - 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, - 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, - 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, - 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, - 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, - 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, - 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, - 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, - 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, - 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, - 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, - 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, - 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, - 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, - 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, - 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, - 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, - 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, - 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, - 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, - 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, - 24, 25, 25, 25, 25, 25, 25, 25, 25, 25, - 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, - 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, - 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, - 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, - 25, 25, 25, 25, 26, 26, 26, 26, 26, 26, - 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, - 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, - 26, 26, 26, 26, 26, 26, 26, 27, 27, 27, - 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, - 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, - 27, 27, 27, 27, 27, 27, 27, 27, 28, 28, - 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, - 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, - 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, - 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, - 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, - 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, - 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, - 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, - 28, 29, 29, 29, 29, 29, 29, 29, 29, 29, - 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, - 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, - 29, 29, 29, 29, 29, 30, 30, 30, 30, 30, - 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, - 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, - 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, - 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, - 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, - 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, - 30, 30, 30, 30, 30, 30, 30 + 254, 255, 260, 9, 19, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 33, 33, 33, 33, 33, 33, 33, 33, + 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, + 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, + 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, + 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, + 33, 33, 33, 33, 33, 34, 34, 34, 34, 34, + 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, + 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, + 34, 34, 34, 34, 34, 34, 34, 34, 35, 35, + 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, + 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, + 35, 35, 35, 35, 35, 35, 35, 35, 35, 36, + 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, + 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, + 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, + 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, + 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, + 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, + 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, + 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, + 36, 36, 37, 37, 37, 37, 37, 37, 37, 37, + 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, + 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, + 37, 37, 37, 37, 37, 37, 38, 38, 38, 38, + 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, + 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, + 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, + 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, + 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, + 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, + 38, 38, 38, 38, 38, 38, 38, 38 }; #endif -#if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE +#if YYDEBUG || YYERROR_VERBOSE || 0 /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM. First, the terminals, then, starting at YYNTOKENS, nonterminals. */ static const char *const yytname[] = @@ -2672,122 +1542,121 @@ static const char *const yytname[] = "YES_P", "ZONE", "NOT_LA", "NULLS_LA", "WITH_LA", "'<'", "'>'", "'='", "POSTFIXOP", "'+'", "'-'", "'*'", "'/'", "'%'", "'^'", "UMINUS", "'['", "']'", "'('", "')'", "'.'", "';'", "','", "'{'", "'}'", "'#'", "'?'", - "':'", "$accept", "stmtblock", "stmtmulti", "stmt", "VariableResetStmt", - "generic_reset", "reset_rest", "CreateAsStmt", "opt_with_data", - "create_as_target", "PragmaStmt", "CreateSchemaStmt", "OptSchemaEltList", - "schema_stmt", "AlterTableStmt", "alter_identity_column_option_list", + "':'", "$accept", "stmtblock", "stmtmulti", "stmt", "CopyStmt", + "copy_from", "copy_delimiter", "copy_generic_opt_arg_list", "opt_using", + "opt_as", "opt_program", "copy_options", "copy_generic_opt_arg", + "copy_generic_opt_elem", "opt_oids", "copy_opt_list", "opt_binary", + "copy_opt_item", "copy_generic_opt_arg_list_item", "copy_file_name", + "copy_generic_opt_list", "VariableResetStmt", "generic_reset", + "reset_rest", "CallStmt", "SelectStmt", "select_with_parens", + "select_no_parens", "select_clause", "simple_select", "with_clause", + "cte_list", "common_table_expr", "into_clause", "OptTempTableName", + "opt_table", "all_or_distinct", "distinct_clause", "opt_all_clause", + "opt_ignore_nulls", "opt_sort_clause", "sort_clause", "sortby_list", + "sortby", "opt_asc_desc", "opt_nulls_order", "select_limit", + "opt_select_limit", "limit_clause", "offset_clause", "sample_count", + "sample_clause", "opt_sample_func", "tablesample_entry", + "tablesample_clause", "opt_tablesample_clause", "opt_repeatable_clause", + "select_limit_value", "select_offset_value", "select_fetch_first_value", + "I_or_F_const", "row_or_rows", "first_or_next", "group_clause", + "group_by_list", "group_by_list_opt_comma", "group_by_item", + "empty_grouping_set", "rollup_clause", "cube_clause", + "grouping_sets_clause", "grouping_or_grouping_id", "having_clause", + "qualify_clause", "for_locking_clause", "opt_for_locking_clause", + "for_locking_items", "for_locking_item", "for_locking_strength", + "locked_rels_list", "opt_nowait_or_skip", "values_clause", + "values_clause_opt_comma", "from_clause", "from_list", + "from_list_opt_comma", "table_ref", "joined_table", "alias_clause", + "opt_alias_clause", "func_alias_clause", "join_type", "join_outer", + "join_qual", "relation_expr", "func_table", "rowsfrom_item", + "rowsfrom_list", "opt_col_def_list", "opt_ordinality", "where_clause", + "TableFuncElementList", "TableFuncElement", "opt_collate_clause", + "colid_type_list", "RowOrStruct", "opt_Typename", "Typename", + "opt_array_bounds", "SimpleTypename", "ConstTypename", "GenericType", + "opt_type_modifiers", "Numeric", "opt_float", "Bit", "ConstBit", + "BitWithLength", "BitWithoutLength", "Character", "ConstCharacter", + "CharacterWithLength", "CharacterWithoutLength", "character", + "opt_varying", "ConstDatetime", "ConstInterval", "opt_timezone", + "year_keyword", "month_keyword", "day_keyword", "hour_keyword", + "minute_keyword", "second_keyword", "millisecond_keyword", + "microsecond_keyword", "opt_interval", "a_expr", "b_expr", "c_expr", + "func_application", "func_expr", "func_expr_windowless", + "func_expr_common_subexpr", "within_group_clause", "filter_clause", + "export_clause", "window_clause", "window_definition_list", + "window_definition", "over_clause", "window_specification", + "opt_existing_window_name", "opt_partition_clause", "opt_frame_clause", + "frame_extent", "frame_bound", "qualified_row", "row", "dict_arg", + "dict_arguments", "dict_arguments_opt_comma", "sub_type", "all_Op", + "MathOp", "qual_Op", "qual_all_Op", "subquery_Op", "any_operator", + "expr_list", "expr_list_opt_comma", "opt_expr_list_opt_comma", + "func_arg_list", "func_arg_expr", "type_list", "extract_list", + "extract_arg", "overlay_list", "overlay_placing", "position_list", + "substr_list", "substr_from", "substr_for", "trim_list", "in_expr", + "case_expr", "when_clause_list", "when_clause", "case_default", + "case_arg", "columnref", "indirection_el", "opt_slice_bound", + "indirection", "opt_indirection", "opt_asymmetric", + "opt_target_list_opt_comma", "target_list", "target_list_opt_comma", + "target_el", "except_list", "opt_except_list", "replace_list_el", + "replace_list", "replace_list_opt_comma", "opt_replace_list", + "qualified_name_list", "qualified_name", "name_list", + "name_list_opt_comma", "name", "attr_name", "func_name", "AexprConst", + "Iconst", "Sconst", "ColId", "ColIdOrString", "type_function_name", + "function_name_token", "type_name_token", "any_name", "attrs", + "opt_name_list", "param_name", "ColLabel", "ColLabelOrString", + "PragmaStmt", "CreateAsStmt", "opt_with_data", "create_as_target", + "VariableShowStmt", "show_or_describe", "var_name", "AlterSeqStmt", + "SeqOptList", "opt_with", "NumericOnly", "SeqOptElem", "opt_by", + "SignedIconst", "DeallocateStmt", "CreateStmt", + "ConstraintAttributeSpec", "def_arg", "OptParenthesizedSeqOptList", + "generic_option_arg", "key_action", "ColConstraint", "ColConstraintElem", + "GeneratedColumnType", "opt_GeneratedColumnType", + "GeneratedConstraintElem", "generic_option_elem", "key_update", + "key_actions", "OnCommitOption", "reloptions", "opt_no_inherit", + "TableConstraint", "TableLikeOption", "reloption_list", "ExistingIndex", + "ConstraintAttr", "OptWith", "definition", "TableLikeOptionList", + "generic_option_name", "ConstraintAttributeElem", "columnDef", + "def_list", "index_name", "TableElement", "def_elem", "opt_definition", + "OptTableElementList", "columnElem", "opt_column_list", "ColQualList", + "key_delete", "reloption_elem", "columnList", "columnList_opt_comma", + "func_type", "ConstraintElem", "TableElementList", "key_match", + "TableLikeClause", "OptTemp", "generated_when", "ExecuteStmt", + "execute_param_clause", "CreateSchemaStmt", "OptSchemaEltList", + "schema_stmt", "ExplainStmt", "opt_verbose", "explain_option_arg", + "ExplainableStmt", "NonReservedWord", "NonReservedWord_or_Sconst", + "explain_option_list", "analyze_keyword", "opt_boolean_or_string", + "explain_option_elem", "explain_option_name", "DropStmt", + "drop_type_any_name", "drop_type_name", "any_name_list", + "opt_drop_behavior", "drop_type_name_on_any_name", "type_name_list", + "CreateTypeStmt", "AlterTableStmt", "alter_identity_column_option_list", "alter_column_default", "alter_identity_column_option", "alter_generic_option_list", "alter_table_cmd", "alter_using", "alter_generic_option_elem", "alter_table_cmds", "alter_generic_options", - "opt_set_data", "DeallocateStmt", "DeleteStmt", - "relation_expr_opt_alias", "where_or_current_clause", "using_clause", - "CreateStmt", "ConstraintAttributeSpec", "def_arg", - "OptParenthesizedSeqOptList", "generic_option_arg", "key_action", - "ColConstraint", "ColConstraintElem", "GeneratedColumnType", - "opt_GeneratedColumnType", "GeneratedConstraintElem", - "generic_option_elem", "key_update", "key_actions", "OnCommitOption", - "reloptions", "opt_no_inherit", "TableConstraint", "TableLikeOption", - "reloption_list", "ExistingIndex", "ConstraintAttr", "OptWith", - "definition", "TableLikeOptionList", "generic_option_name", - "ConstraintAttributeElem", "columnDef", "def_list", "index_name", - "TableElement", "def_elem", "opt_definition", "OptTableElementList", - "columnElem", "opt_column_list", "ColQualList", "key_delete", - "reloption_elem", "columnList", "columnList_opt_comma", "func_type", - "ConstraintElem", "TableElementList", "key_match", "TableLikeClause", - "OptTemp", "generated_when", "AlterSeqStmt", "SeqOptList", "opt_with", - "NumericOnly", "SeqOptElem", "opt_by", "SignedIconst", - "AlterObjectSchemaStmt", "AnalyzeStmt", "RenameStmt", "opt_column", - "ExecuteStmt", "execute_param_clause", "VariableSetStmt", "set_rest", - "generic_set", "var_value", "zone_value", "var_list", "CheckPointStmt", - "PrepareStmt", "prep_type_clause", "PreparableStmt", - "CreateFunctionStmt", "macro_alias", "param_list", "IndexStmt", - "access_method", "access_method_clause", "opt_concurrently", - "opt_index_name", "opt_reloptions", "opt_unique", "ExplainStmt", - "opt_verbose", "explain_option_arg", "ExplainableStmt", - "NonReservedWord", "NonReservedWord_or_Sconst", "explain_option_list", - "analyze_keyword", "opt_boolean_or_string", "explain_option_elem", - "explain_option_name", "DropStmt", "drop_type_any_name", - "drop_type_name", "any_name_list", "opt_drop_behavior", - "drop_type_name_on_any_name", "type_name_list", "ViewStmt", - "opt_check_option", "CreateSeqStmt", "OptSeqOptList", "LoadStmt", - "file_name", "VariableShowStmt", "show_or_describe", "var_name", + "opt_set_data", "TransactionStmt", "opt_transaction", "RenameStmt", + "opt_column", "PrepareStmt", "prep_type_clause", "PreparableStmt", "VacuumStmt", "vacuum_option_elem", "opt_full", "vacuum_option_list", - "opt_freeze", "UpdateStmt", "CopyStmt", "copy_from", "copy_delimiter", - "copy_generic_opt_arg_list", "opt_using", "opt_as", "opt_program", - "copy_options", "copy_generic_opt_arg", "copy_generic_opt_elem", - "opt_oids", "copy_opt_list", "opt_binary", "copy_opt_item", - "copy_generic_opt_arg_list_item", "copy_file_name", - "copy_generic_opt_list", "ExportStmt", "ImportStmt", "SelectStmt", - "select_with_parens", "select_no_parens", "select_clause", - "simple_select", "with_clause", "cte_list", "common_table_expr", - "into_clause", "OptTempTableName", "opt_table", "all_or_distinct", - "distinct_clause", "opt_all_clause", "opt_ignore_nulls", - "opt_sort_clause", "sort_clause", "sortby_list", "sortby", - "opt_asc_desc", "opt_nulls_order", "select_limit", "opt_select_limit", - "limit_clause", "offset_clause", "sample_count", "sample_clause", - "opt_sample_func", "tablesample_entry", "tablesample_clause", - "opt_tablesample_clause", "opt_repeatable_clause", "select_limit_value", - "select_offset_value", "select_fetch_first_value", "I_or_F_const", - "row_or_rows", "first_or_next", "group_clause", "group_by_list", - "group_by_list_opt_comma", "group_by_item", "empty_grouping_set", - "rollup_clause", "cube_clause", "grouping_sets_clause", - "grouping_or_grouping_id", "having_clause", "qualify_clause", - "for_locking_clause", "opt_for_locking_clause", "for_locking_items", - "for_locking_item", "for_locking_strength", "locked_rels_list", - "opt_nowait_or_skip", "values_clause", "values_clause_opt_comma", - "from_clause", "from_list", "from_list_opt_comma", "table_ref", - "joined_table", "alias_clause", "opt_alias_clause", "func_alias_clause", - "join_type", "join_outer", "join_qual", "relation_expr", "func_table", - "rowsfrom_item", "rowsfrom_list", "opt_col_def_list", "opt_ordinality", - "where_clause", "TableFuncElementList", "TableFuncElement", - "opt_collate_clause", "colid_type_list", "RowOrStruct", "opt_Typename", - "Typename", "opt_array_bounds", "SimpleTypename", "ConstTypename", - "GenericType", "opt_type_modifiers", "Numeric", "opt_float", "Bit", - "ConstBit", "BitWithLength", "BitWithoutLength", "Character", - "ConstCharacter", "CharacterWithLength", "CharacterWithoutLength", - "character", "opt_varying", "ConstDatetime", "ConstInterval", - "opt_timezone", "year_keyword", "month_keyword", "day_keyword", - "hour_keyword", "minute_keyword", "second_keyword", - "millisecond_keyword", "microsecond_keyword", "opt_interval", "a_expr", - "b_expr", "c_expr", "func_application", "func_expr", - "func_expr_windowless", "func_expr_common_subexpr", - "within_group_clause", "filter_clause", "export_clause", "window_clause", - "window_definition_list", "window_definition", "over_clause", - "window_specification", "opt_existing_window_name", - "opt_partition_clause", "opt_frame_clause", "frame_extent", - "frame_bound", "qualified_row", "row", "dict_arg", "dict_arguments", - "dict_arguments_opt_comma", "sub_type", "all_Op", "MathOp", "qual_Op", - "qual_all_Op", "subquery_Op", "any_operator", "expr_list", - "expr_list_opt_comma", "opt_expr_list_opt_comma", "func_arg_list", - "func_arg_expr", "type_list", "extract_list", "extract_arg", - "overlay_list", "overlay_placing", "position_list", "substr_list", - "substr_from", "substr_for", "trim_list", "in_expr", "case_expr", - "when_clause_list", "when_clause", "case_default", "case_arg", - "columnref", "indirection_el", "opt_slice_bound", "indirection", - "opt_indirection", "opt_asymmetric", "opt_target_list_opt_comma", - "target_list", "target_list_opt_comma", "target_el", "except_list", - "opt_except_list", "replace_list_el", "replace_list", - "replace_list_opt_comma", "opt_replace_list", "qualified_name_list", - "qualified_name", "name_list", "name_list_opt_comma", "name", - "attr_name", "func_name", "AexprConst", "Iconst", "Sconst", "ColId", - "ColIdOrString", "type_function_name", "function_name_token", - "type_name_token", "any_name", "attrs", "opt_name_list", "param_name", - "ColLabel", "ColLabelOrString", "CallStmt", "TransactionStmt", - "opt_transaction", "InsertStmt", "insert_rest", "insert_target", - "opt_conf_expr", "opt_with_clause", "insert_column_item", "set_clause", - "opt_on_conflict", "index_elem", "returning_clause", "override_kind", - "set_target_list", "opt_collate", "opt_class", "insert_column_list", - "set_clause_list", "set_clause_list_opt_comma", "index_params", - "set_target", "CreateTypeStmt", "unreserved_keyword", "col_name_keyword", - "func_name_keyword", "type_name_keyword", "other_keyword", - "type_func_name_keyword", "reserved_keyword", 0 + "opt_freeze", "IndexStmt", "access_method", "access_method_clause", + "opt_concurrently", "opt_index_name", "opt_reloptions", "opt_unique", + "ExportStmt", "ImportStmt", "DeleteStmt", "relation_expr_opt_alias", + "where_or_current_clause", "using_clause", "ViewStmt", + "opt_check_option", "VariableSetStmt", "set_rest", "generic_set", + "var_value", "zone_value", "var_list", "CheckPointStmt", "LoadStmt", + "file_name", "CreateSeqStmt", "OptSeqOptList", "CreateFunctionStmt", + "macro_alias", "param_list", "AlterObjectSchemaStmt", "UpdateStmt", + "InsertStmt", "insert_rest", "insert_target", "opt_conf_expr", + "opt_with_clause", "insert_column_item", "set_clause", "opt_on_conflict", + "index_elem", "returning_clause", "override_kind", "set_target_list", + "opt_collate", "opt_class", "insert_column_list", "set_clause_list", + "set_clause_list_opt_comma", "index_params", "set_target", "AnalyzeStmt", + "unreserved_keyword", "col_name_keyword", "func_name_keyword", + "type_name_keyword", "other_keyword", "type_func_name_keyword", + "reserved_keyword", YY_NULLPTR }; #endif # ifdef YYPRINT -/* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to - token YYLEX-NUM. */ -static const yytype_uint16 yytoknum[] = +/* YYTOKNUM[NUM] -- (External) token number corresponding to the + (internal) symbol number NUM (which must be that of a token). */ +static const yytype_int16 yytoknum[] = { 0, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, @@ -2843,3938 +1712,3251 @@ static const yytype_uint16 yytoknum[] = }; # endif -/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ -static const yytype_uint16 yyr1[] = -{ - 0, 509, 510, 511, 511, 512, 512, 512, 512, 512, - 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, - 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, - 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, - 513, 514, 514, 515, 515, 515, 516, 516, 516, 517, - 517, 517, 518, 519, 519, 519, 520, 520, 521, 521, - 522, 522, 522, 522, 523, 523, 523, 523, 523, 523, - 523, 523, 524, 524, 525, 525, 526, 526, 526, 526, - 527, 527, 528, 528, 528, 528, 528, 528, 528, 528, - 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, - 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, - 528, 529, 529, 530, 530, 530, 530, 531, 531, 532, - 533, 533, 533, 534, 534, 534, 534, 535, 536, 536, - 536, 537, 537, 538, 538, 539, 539, 539, 540, 540, - 541, 541, 541, 541, 541, 541, 542, 542, 543, 544, - 544, 544, 544, 544, 545, 545, 545, 545, 546, 546, - 546, 546, 546, 546, 546, 546, 547, 547, 548, 548, - 549, 549, 549, 550, 551, 552, 552, 552, 552, 552, - 553, 553, 553, 553, 554, 555, 555, 556, 556, 557, - 557, 557, 557, 557, 557, 557, 557, 558, 558, 559, - 560, 560, 560, 560, 561, 561, 561, 561, 562, 563, - 563, 563, 564, 565, 565, 565, 565, 565, 565, 566, - 566, 567, 567, 568, 569, 569, 569, 570, 570, 571, - 571, 572, 572, 572, 573, 574, 574, 575, 575, 576, - 577, 577, 577, 577, 578, 578, 579, 579, 580, 580, - 580, 581, 581, 581, 581, 581, 581, 582, 582, 583, - 583, 583, 583, 584, 585, 585, 585, 585, 585, 585, - 585, 585, 586, 586, 587, 587, 588, 588, 589, 589, - 589, 590, 590, 590, 590, 591, 591, 591, 591, 591, - 591, 591, 591, 591, 591, 591, 591, 591, 591, 592, - 592, 593, 593, 593, 594, 594, 594, 594, 594, 594, - 595, 595, 596, 596, 596, 596, 596, 596, 596, 596, - 596, 596, 596, 596, 596, 597, 597, 598, 598, 598, - 599, 599, 600, 600, 600, 600, 601, 601, 601, 601, - 602, 602, 602, 602, 603, 603, 604, 604, 604, 604, - 604, 604, 604, 605, 605, 606, 606, 607, 608, 608, - 609, 609, 609, 609, 610, 610, 611, 611, 612, 612, - 613, 613, 614, 615, 615, 616, 616, 617, 617, 618, - 618, 619, 619, 620, 620, 620, 620, 621, 621, 622, - 622, 622, 623, 623, 623, 623, 623, 623, 623, 623, - 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, - 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, - 623, 623, 624, 624, 624, 625, 625, 626, 626, 627, - 627, 628, 628, 628, 628, 629, 630, 630, 631, 631, - 631, 631, 631, 631, 631, 631, 632, 632, 632, 632, - 632, 632, 632, 632, 632, 632, 632, 632, 632, 632, - 632, 632, 633, 633, 633, 633, 633, 633, 633, 634, - 634, 635, 635, 635, 636, 636, 636, 637, 637, 638, - 638, 638, 638, 639, 639, 639, 639, 640, 640, 641, - 641, 642, 642, 642, 643, 643, 644, 644, 644, 644, - 644, 644, 644, 644, 645, 645, 646, 646, 647, 647, - 647, 647, 647, 648, 648, 648, 648, 648, 649, 649, - 650, 650, 651, 651, 652, 653, 653, 654, 654, 655, - 655, 656, 656, 657, 657, 658, 658, 659, 659, 660, - 660, 661, 661, 661, 661, 661, 662, 663, 663, 664, - 664, 665, 665, 666, 666, 666, 666, 666, 666, 666, - 666, 666, 666, 666, 666, 666, 666, 667, 668, 668, - 668, 669, 669, 670, 671, 672, 672, 673, 673, 674, - 674, 674, 674, 674, 674, 674, 674, 675, 675, 676, - 676, 676, 676, 676, 676, 676, 677, 677, 677, 678, - 678, 679, 680, 680, 681, 681, 681, 681, 681, 681, - 681, 681, 681, 682, 682, 683, 683, 683, 684, 684, - 685, 685, 686, 686, 686, 687, 687, 688, 688, 688, - 689, 689, 690, 690, 691, 691, 691, 692, 692, 692, - 693, 693, 693, 693, 694, 694, 695, 695, 695, 695, - 696, 696, 697, 697, 697, 697, 697, 697, 698, 698, - 699, 699, 700, 700, 700, 700, 701, 702, 702, 703, - 703, 704, 704, 704, 704, 704, 705, 706, 706, 706, - 707, 707, 708, 708, 709, 709, 710, 710, 710, 710, - 711, 711, 712, 712, 713, 713, 713, 713, 713, 714, - 715, 716, 717, 718, 718, 719, 719, 720, 720, 721, - 721, 722, 722, 723, 723, 724, 725, 725, 725, 725, - 726, 726, 727, 727, 727, 728, 728, 729, 729, 730, - 730, 731, 731, 732, 732, 733, 733, 733, 733, 733, - 733, 733, 733, 734, 734, 734, 734, 734, 734, 735, - 735, 735, 735, 736, 736, 737, 737, 737, 737, 737, - 738, 738, 738, 738, 739, 739, 740, 740, 741, 741, - 741, 741, 742, 742, 743, 744, 744, 745, 745, 746, - 746, 747, 747, 748, 748, 749, 750, 750, 751, 751, - 752, 752, 753, 753, 754, 754, 754, 754, 754, 754, - 754, 754, 755, 755, 755, 756, 756, 756, 756, 756, - 756, 756, 757, 757, 757, 757, 758, 759, 759, 760, - 760, 760, 760, 760, 760, 760, 760, 760, 760, 760, - 761, 761, 762, 762, 763, 763, 764, 765, 766, 766, - 767, 767, 768, 769, 770, 770, 770, 770, 770, 770, - 771, 771, 772, 772, 772, 772, 773, 774, 774, 774, - 775, 775, 776, 776, 777, 777, 778, 778, 779, 779, - 780, 780, 781, 781, 782, 782, 783, 783, 783, 783, - 783, 783, 783, 783, 783, 783, 783, 783, 783, 783, - 783, 783, 784, 784, 784, 784, 784, 784, 784, 784, - 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, - 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, - 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, - 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, - 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, - 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, - 784, 784, 784, 785, 785, 785, 785, 785, 785, 785, - 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, - 785, 785, 785, 785, 785, 785, 785, 786, 786, 786, - 786, 786, 786, 786, 786, 786, 786, 786, 786, 787, - 787, 787, 787, 787, 787, 787, 788, 788, 789, 789, - 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, - 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, - 790, 790, 790, 790, 790, 790, 790, 790, 790, 791, - 791, 792, 792, 792, 793, 793, 794, 794, 795, 795, - 796, 797, 797, 797, 798, 799, 799, 800, 800, 801, - 801, 801, 802, 802, 803, 803, 803, 803, 803, 804, - 804, 805, 805, 806, 807, 807, 808, 808, 809, 809, - 809, 810, 810, 811, 811, 811, 811, 811, 811, 811, - 811, 811, 811, 811, 811, 811, 812, 812, 813, 813, - 814, 814, 814, 814, 814, 814, 814, 814, 815, 815, - 816, 816, 817, 817, 818, 818, 819, 819, 820, 820, - 820, 821, 821, 822, 822, 823, 823, 823, 823, 823, - 823, 823, 823, 823, 823, 824, 824, 825, 826, 826, - 827, 827, 827, 827, 827, 827, 828, 829, 830, 830, - 830, 831, 831, 832, 833, 833, 834, 835, 835, 836, - 836, 837, 837, 838, 838, 838, 839, 839, 840, 840, - 841, 841, 842, 842, 843, 843, 844, 844, 845, 845, - 846, 846, 846, 846, 846, 847, 847, 848, 848, 849, - 850, 850, 851, 851, 852, 852, 852, 853, 853, 854, - 854, 855, 855, 856, 856, 857, 858, 859, 859, 860, - 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, - 860, 860, 860, 861, 862, 863, 863, 863, 864, 864, - 865, 865, 865, 866, 866, 866, 867, 867, 867, 868, - 868, 869, 869, 870, 870, 871, 872, 872, 872, 872, - 873, 873, 874, 875, 875, 875, 875, 875, 875, 876, - 876, 876, 877, 878, 878, 878, 878, 878, 879, 879, - 880, 880, 880, 881, 881, 882, 883, 883, 884, 884, - 884, 885, 885, 885, 886, 886, 887, 887, 888, 888, - 889, 889, 890, 890, 891, 891, 892, 892, 893, 893, - 894, 894, 895, 896, 897, 897, 897, 897, 897, 897, - 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, - 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, - 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, - 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, - 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, - 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, - 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, - 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, - 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, - 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, - 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, - 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, - 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, - 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, - 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, - 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, - 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, - 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, - 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, - 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, - 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, - 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, - 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, - 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, - 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, - 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, - 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, - 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, - 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, - 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, - 897, 898, 898, 898, 898, 898, 898, 898, 898, 898, - 898, 898, 898, 898, 898, 898, 898, 898, 898, 898, - 898, 898, 898, 898, 898, 898, 898, 898, 898, 898, - 898, 898, 898, 898, 898, 898, 898, 898, 898, 898, - 898, 898, 898, 898, 898, 898, 898, 898, 898, 898, - 898, 898, 898, 898, 899, 899, 899, 899, 899, 899, - 899, 899, 899, 899, 899, 899, 899, 899, 899, 899, - 899, 899, 899, 899, 899, 899, 899, 899, 899, 899, - 899, 899, 899, 899, 899, 899, 899, 900, 900, 900, - 900, 900, 900, 900, 900, 900, 900, 900, 900, 900, - 900, 900, 900, 900, 900, 900, 900, 900, 900, 900, - 900, 900, 900, 900, 900, 900, 900, 900, 901, 901, - 901, 901, 901, 901, 901, 901, 901, 901, 901, 901, - 901, 901, 901, 901, 901, 901, 901, 901, 901, 901, - 901, 901, 901, 901, 901, 901, 901, 901, 901, 901, - 901, 901, 901, 901, 901, 901, 901, 901, 901, 901, - 901, 901, 901, 901, 901, 901, 901, 901, 901, 901, - 901, 901, 901, 901, 901, 901, 901, 901, 901, 901, - 901, 901, 901, 901, 901, 901, 901, 901, 901, 901, - 901, 901, 901, 901, 901, 901, 901, 901, 901, 901, - 901, 902, 902, 902, 902, 902, 902, 902, 902, 902, - 902, 902, 902, 902, 902, 902, 902, 902, 902, 902, - 902, 902, 902, 902, 902, 902, 902, 902, 902, 902, - 902, 902, 902, 902, 902, 903, 903, 903, 903, 903, - 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, - 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, - 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, - 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, - 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, - 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, - 903, 903, 903, 903, 903, 903, 903 -}; +#define YYPACT_NINF (-2533) -/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ -static const yytype_uint8 yyr2[] = -{ - 0, 2, 1, 3, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, - 2, 1, 1, 1, 2, 3, 7, 10, 9, 2, - 3, 0, 4, 2, 4, 5, 4, 7, 2, 0, - 1, 1, 1, 1, 4, 6, 4, 6, 4, 6, - 4, 6, 1, 2, 3, 2, 1, 3, 2, 3, - 1, 3, 2, 5, 3, 6, 4, 6, 6, 6, - 5, 5, 6, 9, 4, 5, 7, 6, 4, 8, - 4, 2, 4, 3, 6, 4, 2, 2, 2, 2, - 1, 2, 0, 1, 2, 2, 2, 1, 3, 4, - 2, 1, 0, 2, 3, 2, 3, 7, 1, 2, - 3, 2, 0, 2, 0, 9, 12, 11, 0, 2, - 1, 1, 1, 1, 1, 1, 3, 0, 1, 2, - 1, 1, 2, 2, 3, 1, 1, 2, 2, 1, - 2, 3, 5, 3, 2, 5, 1, 1, 1, 0, - 5, 7, 5, 2, 3, 1, 1, 2, 2, 0, - 3, 4, 4, 0, 3, 2, 0, 3, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, - 1, 2, 2, 2, 2, 2, 2, 0, 3, 3, - 3, 0, 1, 2, 1, 2, 2, 2, 2, 3, - 4, 1, 3, 1, 1, 1, 1, 3, 1, 2, - 0, 1, 2, 0, 1, 3, 0, 2, 0, 3, - 3, 1, 5, 3, 1, 3, 1, 2, 1, 4, - 5, 5, 6, 3, 7, 4, 11, 1, 3, 2, - 2, 2, 0, 3, 1, 1, 2, 2, 2, 2, - 1, 0, 1, 2, 4, 6, 1, 2, 1, 1, - 0, 1, 2, 2, 1, 2, 2, 1, 2, 3, - 2, 2, 2, 2, 3, 3, 3, 1, 3, 1, - 0, 1, 2, 2, 6, 8, 6, 8, 6, 8, - 2, 4, 6, 6, 8, 6, 8, 6, 8, 6, - 8, 8, 10, 8, 10, 1, 0, 3, 9, 12, - 3, 0, 2, 3, 3, 3, 1, 3, 3, 2, - 3, 3, 3, 3, 1, 1, 1, 1, 3, 5, - 1, 1, 1, 1, 3, 2, 1, 5, 3, 0, - 1, 1, 1, 1, 8, 7, 1, 1, 2, 3, - 13, 16, 1, 2, 0, 1, 0, 1, 0, 2, - 0, 1, 0, 2, 4, 3, 5, 1, 0, 1, - 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, - 1, 1, 1, 1, 1, 2, 1, 1, 6, 4, - 6, 4, 6, 8, 4, 6, 1, 1, 1, 1, - 2, 1, 2, 1, 2, 1, 1, 1, 3, 3, - 3, 3, 2, 2, 1, 3, 1, 1, 1, 1, - 3, 1, 1, 0, 1, 1, 1, 1, 3, 9, - 11, 12, 14, 3, 4, 4, 0, 5, 8, 1, - 0, 2, 2, 3, 1, 1, 2, 2, 2, 2, - 3, 4, 2, 1, 1, 1, 1, 3, 4, 5, - 5, 4, 6, 1, 1, 1, 1, 1, 1, 0, - 1, 3, 1, 0, 8, 11, 9, 1, 1, 3, - 0, 1, 3, 1, 0, 1, 0, 1, 0, 1, - 3, 1, 1, 1, 3, 0, 2, 2, 0, 2, - 0, 1, 0, 1, 1, 1, 3, 3, 1, 1, - 3, 3, 3, 3, 4, 3, 2, 1, 1, 1, - 1, 1, 3, 4, 3, 1, 1, 3, 3, 1, - 2, 4, 4, 2, 3, 5, 5, 1, 1, 11, - 11, 1, 2, 4, 4, 4, 2, 2, 3, 1, - 3, 6, 2, 0, 3, 3, 4, 4, 4, 4, - 3, 2, 1, 1, 0, 1, 1, 0, 1, 5, - 1, 0, 2, 2, 0, 1, 0, 3, 5, 5, - 1, 3, 4, 3, 1, 1, 0, 2, 2, 0, - 2, 2, 1, 1, 1, 0, 2, 4, 5, 4, - 2, 3, 2, 2, 2, 2, 1, 2, 3, 0, - 1, 0, 5, 1, 4, 6, 2, 1, 0, 4, - 0, 1, 1, 2, 2, 2, 1, 1, 2, 2, - 1, 1, 1, 1, 1, 1, 3, 3, 3, 0, - 1, 3, 1, 2, 1, 1, 1, 1, 1, 2, - 4, 4, 5, 1, 1, 2, 0, 2, 0, 1, - 3, 1, 0, 1, 2, 3, 2, 4, 2, 3, - 2, 0, 1, 2, 0, 4, 5, 1, 2, 2, - 0, 1, 3, 1, 2, 3, 3, 3, 3, 3, - 3, 1, 4, 3, 4, 5, 4, 5, 4, 5, - 2, 4, 1, 1, 0, 1, 4, 5, 4, 0, - 2, 2, 2, 1, 1, 0, 4, 2, 1, 2, - 2, 4, 2, 6, 2, 1, 3, 4, 0, 2, - 0, 2, 0, 1, 3, 3, 2, 0, 2, 4, - 1, 1, 1, 0, 2, 3, 5, 6, 2, 3, - 5, 5, 3, 4, 0, 1, 1, 1, 1, 1, - 2, 4, 1, 1, 1, 1, 2, 3, 0, 1, - 1, 1, 1, 1, 2, 2, 2, 2, 2, 1, - 3, 0, 1, 1, 1, 1, 5, 2, 1, 1, - 1, 1, 4, 1, 2, 2, 1, 3, 3, 2, - 1, 0, 5, 2, 5, 2, 1, 3, 3, 0, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 3, 3, 3, 3, 3, 3, - 3, 0, 1, 3, 3, 5, 2, 2, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 2, 2, 3, 3, 2, 2, 3, 3, - 5, 4, 6, 3, 5, 4, 6, 4, 6, 5, - 7, 3, 2, 4, 3, 2, 1, 3, 3, 3, - 3, 3, 3, 4, 3, 4, 3, 4, 5, 6, - 6, 7, 6, 7, 6, 7, 3, 4, 4, 6, - 2, 1, 4, 1, 3, 2, 2, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 2, 2, 5, 6, 6, 7, 1, 1, 2, - 2, 2, 4, 1, 2, 1, 2, 2, 4, 3, - 6, 7, 9, 7, 7, 4, 5, 1, 1, 1, - 5, 1, 1, 4, 1, 4, 1, 4, 1, 4, - 1, 1, 1, 1, 1, 1, 6, 6, 4, 4, - 4, 4, 6, 5, 5, 5, 4, 6, 4, 5, - 0, 5, 4, 0, 1, 0, 2, 0, 1, 3, - 3, 2, 2, 0, 6, 1, 0, 3, 0, 2, - 2, 0, 1, 4, 2, 2, 2, 2, 2, 4, - 3, 1, 5, 3, 1, 3, 1, 2, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 4, 1, 4, - 1, 4, 1, 2, 1, 2, 1, 2, 1, 3, - 1, 3, 1, 2, 1, 0, 1, 3, 1, 3, - 3, 1, 3, 3, 0, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 4, 3, 2, 3, 0, - 3, 3, 2, 2, 1, 0, 2, 2, 3, 2, - 1, 1, 3, 5, 1, 2, 4, 2, 0, 1, - 0, 1, 2, 2, 3, 5, 1, 0, 1, 2, - 0, 2, 1, 0, 1, 0, 1, 3, 1, 2, - 3, 2, 1, 3, 5, 4, 2, 1, 0, 3, - 1, 3, 1, 2, 4, 2, 0, 1, 3, 1, - 2, 1, 3, 1, 2, 1, 1, 1, 2, 1, - 1, 2, 1, 1, 2, 7, 2, 5, 3, 3, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 2, 2, 3, 3, 0, 1, 1, 1, 1, 1, - 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, - 1, 0, 7, 1, 4, 4, 7, 2, 1, 3, - 4, 3, 0, 1, 0, 2, 3, 5, 8, 5, - 0, 5, 5, 7, 2, 0, 1, 1, 1, 3, - 2, 0, 1, 0, 1, 3, 1, 3, 1, 2, - 1, 3, 2, 5, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1 -}; +#define yypact_value_is_default(Yyn) \ + ((Yyn) == YYPACT_NINF) + +#define YYTABLE_NINF (-1846) -/* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state - STATE-NUM when YYTABLE doesn't specify something else to do. Zero - means the default is an error. */ -static const yytype_uint16 yydefact[] = +#define yytable_value_is_error(Yyn) \ + ((Yyn) == YYTABLE_NINF) + + /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing + STATE-NUM. */ +static const int yypact[] = { - 1274, 1261, 0, 430, 429, 1261, 0, 356, 1261, 552, - 271, 0, 505, 0, 1261, 0, 1274, 0, 0, 0, - 0, 0, 0, 0, 0, 1261, 621, 0, 504, 1261, - 0, 0, 519, 0, 0, 0, 0, 0, 2, 4, - 35, 12, 28, 14, 7, 18, 19, 16, 6, 5, - 8, 30, 21, 36, 10, 29, 13, 25, 22, 388, - 20, 38, 15, 27, 37, 503, 34, 33, 11, 23, - 24, 31, 588, 575, 626, 587, 1273, 727, 591, 9, - 32, 26, 0, 17, 1260, 1259, 1253, 0, 0, 0, - 0, 0, 1254, 1225, 1304, 1305, 1306, 1307, 1308, 1309, - 1310, 1311, 1312, 1313, 1314, 1315, 1316, 1317, 1318, 1319, - 1664, 1320, 1321, 1322, 1611, 1612, 1665, 1613, 1614, 1323, - 1324, 1325, 1326, 1327, 1328, 1329, 1330, 1615, 1616, 1331, - 1332, 1333, 1334, 1335, 1617, 1666, 1336, 1337, 1338, 1339, - 1340, 1341, 1667, 1342, 1343, 1344, 1345, 1346, 1347, 1348, - 1349, 1350, 1668, 1351, 1352, 1353, 1669, 1670, 1671, 1672, - 1673, 1354, 1355, 1356, 1357, 1358, 1359, 1360, 1618, 1619, - 1361, 1362, 1363, 1364, 1365, 1366, 1367, 1368, 1369, 1370, - 1371, 1372, 1373, 1374, 1375, 1376, 1377, 1378, 1379, 1380, - 1381, 1382, 1383, 1384, 1385, 1386, 1387, 1388, 1620, 1389, - 1390, 1391, 1392, 1393, 1621, 1394, 1395, 1396, 1622, 1397, - 1398, 1399, 1674, 1675, 1400, 1401, 1623, 1677, 1402, 1403, - 1624, 1625, 1404, 1405, 1406, 1407, 1408, 1409, 1410, 1411, - 1678, 1412, 1413, 1414, 1415, 1416, 1417, 1418, 1419, 1420, - 1421, 1422, 1679, 1626, 1423, 1424, 1425, 1426, 1427, 1627, - 1628, 1629, 1428, 1680, 1681, 1429, 1682, 1430, 1431, 1432, - 1433, 1434, 1435, 1436, 1683, 1437, 1684, 1438, 1439, 1440, - 1441, 1442, 1443, 1444, 1445, 1630, 1446, 1447, 1448, 1449, - 1450, 1451, 1452, 1453, 1454, 1455, 1456, 1457, 1458, 1459, - 1460, 1461, 1462, 1463, 1631, 1686, 1632, 1464, 1465, 1466, - 1633, 1467, 1468, 1687, 1469, 1634, 1470, 1635, 1471, 1472, - 1473, 1474, 1475, 1476, 1477, 1478, 1479, 1636, 1688, 1480, - 1689, 1637, 1481, 1482, 1483, 1484, 1485, 1486, 1487, 1488, - 1489, 1490, 1491, 1492, 1638, 1493, 1494, 1639, 1495, 1496, - 1497, 1498, 1499, 1500, 1501, 1502, 1503, 1504, 1505, 1506, - 1640, 1507, 1508, 1509, 1510, 1511, 1512, 1513, 1514, 1515, - 1516, 1517, 1518, 1519, 1520, 1521, 1522, 1523, 1524, 1525, - 1690, 1526, 1527, 1528, 1641, 1529, 1530, 1531, 1532, 1533, - 1534, 1535, 1536, 1537, 1538, 1539, 1540, 1541, 1542, 1543, - 1544, 1691, 1545, 1642, 1546, 1547, 1548, 1692, 1549, 1550, - 1643, 1551, 1552, 1553, 1554, 1555, 1556, 1557, 1558, 1559, - 1560, 1561, 1562, 1563, 1644, 1564, 1645, 1565, 1566, 1567, - 1568, 1694, 1569, 1570, 1571, 1572, 1573, 1646, 1647, 1574, - 1575, 1648, 1576, 1649, 1577, 1578, 1650, 1579, 1580, 1581, - 1582, 1583, 1584, 1585, 1586, 1587, 1588, 1695, 1589, 1590, - 1591, 1592, 1593, 1651, 1652, 1594, 1696, 1595, 1596, 1597, - 1598, 1599, 1600, 1601, 1602, 1603, 1604, 1605, 1606, 1653, - 1654, 1655, 1656, 1657, 1658, 1659, 1660, 1661, 1662, 1663, - 1607, 1608, 1609, 1610, 1252, 0, 0, 1207, 1226, 1227, - 1235, 1256, 551, 0, 0, 0, 0, 0, 0, 265, - 264, 0, 381, 270, 0, 0, 1225, 1229, 125, 1623, - 1630, 1495, 1644, 123, 1228, 1205, 1226, 0, 455, 456, - 0, 464, 0, 448, 453, 449, 0, 474, 466, 475, - 467, 447, 468, 457, 446, 0, 476, 0, 451, 0, - 0, 0, 1257, 331, 1274, 0, 418, 398, 411, 400, - 394, 404, 405, 402, 393, 392, 413, 407, 419, 396, - 412, 399, 408, 383, 388, 406, 421, 401, 410, 420, - 417, 416, 397, 414, 395, 415, 409, 403, 0, 355, - 0, 0, 1224, 492, 494, 495, 491, 53, 359, 42, - 1646, 1574, 43, 40, 41, 506, 1258, 620, 618, 0, - 1175, 1402, 1440, 1533, 1544, 1646, 332, 336, 0, 1255, - 1651, 498, 497, 0, 0, 592, 768, 1228, 1199, 518, - 0, 523, 0, 1509, 596, 599, 1244, 597, 588, 0, - 1, 1274, 387, 310, 502, 1646, 1574, 499, 496, 617, - 617, 0, 617, 0, 580, 588, 583, 587, 728, 0, - 0, 0, 1410, 0, 0, 1410, 0, 1410, 0, 1410, - 0, 0, 1167, 0, 1168, 1208, 0, 236, 269, 268, - 267, 266, 271, 1410, 59, 1239, 0, 366, 367, 0, - 0, 0, 0, 0, 376, 126, 124, 462, 463, 0, - 454, 450, 452, 0, 1236, 1697, 822, 1698, 851, 829, - 851, 851, 1699, 1700, 1701, 1702, 1703, 1704, 1705, 1706, - 818, 818, 1376, 831, 1707, 1708, 1709, 1410, 1710, 1711, - 819, 820, 856, 1712, 1713, 1714, 1715, 1716, 0, 0, - 1717, 851, 1718, 818, 1719, 1720, 823, 1721, 790, 1722, - 0, 1723, 821, 791, 1724, 859, 859, 1725, 1726, 846, - 1727, 473, 0, 477, 804, 805, 806, 807, 832, 833, - 808, 838, 839, 843, 809, 891, 818, 1237, 1238, 1410, - 473, 469, 1410, 473, 1201, 1410, 0, 0, 327, 385, - 422, 1728, 1729, 1730, 1731, 1732, 1733, 1735, 1734, 1736, - 1737, 1738, 1739, 1740, 1741, 1742, 1743, 1744, 1745, 1746, - 1747, 1748, 1749, 1750, 1751, 1752, 1753, 1754, 1755, 1756, - 1757, 1758, 1761, 1759, 1760, 1762, 1763, 1764, 1765, 1766, - 1767, 1768, 1769, 1770, 1771, 1772, 1773, 1774, 1776, 1775, - 1777, 1778, 1779, 1780, 1781, 1782, 1783, 1784, 1785, 1786, - 1787, 1788, 1789, 1790, 1791, 1792, 1793, 1794, 1795, 1796, - 1797, 1798, 1799, 1800, 1801, 1802, 1803, 1804, 1805, 1806, - 1807, 1808, 1809, 1810, 436, 0, 437, 427, 391, 423, - 424, 1274, 550, 493, 574, 0, 0, 0, 0, 44, - 0, 0, 0, 1210, 1212, 1213, 1096, 1223, 1170, 0, - 1612, 1613, 1614, 1160, 0, 1615, 1616, 1617, 1666, 1024, - 1011, 1020, 1025, 1012, 1014, 1021, 1618, 1619, 961, 1620, - 1621, 1221, 1622, 1624, 1625, 1627, 1628, 1629, 1016, 1018, - 1631, 1632, 0, 1222, 1634, 1635, 1476, 1637, 1638, 1640, - 1641, 1022, 1643, 1645, 1646, 1647, 1648, 1649, 1220, 1650, - 1023, 1652, 0, 0, 0, 1188, 1115, 0, 0, 0, - 1170, 995, 0, 0, 812, 813, 834, 835, 814, 840, - 841, 815, 0, 1182, 892, 1040, 1170, 1007, 1071, 936, - 0, 993, 987, 1178, 603, 1176, 0, 988, 1209, 1170, - 1161, 603, 1174, 335, 333, 339, 334, 0, 0, 0, - 0, 0, 770, 769, 1200, 517, 515, 516, 514, 513, - 520, 0, 522, 388, 1110, 1112, 0, 1161, 598, 0, - 0, 0, 578, 577, 3, 1244, 500, 0, 615, 616, - 0, 0, 0, 0, 0, 0, 0, 0, 712, 642, - 643, 645, 709, 713, 721, 0, 584, 0, 0, 0, - 0, 128, 0, 0, 326, 326, 0, 0, 0, 0, - 0, 117, 66, 110, 0, 0, 0, 0, 287, 300, - 0, 0, 0, 0, 0, 297, 0, 0, 280, 68, - 274, 276, 0, 326, 0, 64, 0, 0, 0, 70, - 1225, 0, 1664, 1665, 1666, 1667, 1668, 1024, 1011, 1020, - 1025, 1021, 0, 1674, 1675, 1623, 1677, 1678, 1679, 1680, - 1681, 1682, 1683, 1684, 1630, 1686, 1687, 1688, 1689, 1690, - 1022, 1692, 1644, 1694, 1650, 1023, 0, 1696, 0, 999, - 1118, 626, 1116, 1245, 0, 1226, 1232, 1166, 0, 1246, - 1845, 1846, 1847, 1848, 1849, 1850, 1851, 1852, 1853, 1854, - 1855, 1856, 1857, 1858, 1859, 1860, 1861, 1862, 1863, 1864, - 1865, 1866, 1867, 1868, 1869, 1870, 1871, 1872, 1873, 1874, - 1875, 1876, 1877, 1878, 1879, 1880, 1881, 1882, 1883, 1884, - 1885, 1886, 1887, 1888, 1889, 1890, 1891, 1892, 1893, 1894, - 1895, 1896, 1897, 1898, 1899, 1900, 1901, 1902, 1903, 1904, - 1905, 1906, 1907, 1908, 1909, 1910, 1911, 1797, 1912, 1913, - 1914, 1915, 1916, 1163, 1206, 1248, 1247, 1249, 1169, 0, - 0, 548, 0, 0, 56, 0, 1240, 0, 0, 1410, - 490, 1410, 0, 236, 236, 0, 375, 378, 465, 461, - 459, 458, 460, 850, 837, 845, 844, 1115, 827, 826, - 825, 0, 824, 0, 0, 851, 851, 849, 828, 804, - 0, 0, 0, 855, 0, 853, 471, 472, 0, 444, - 0, 798, 794, 0, 864, 865, 866, 867, 874, 875, - 872, 873, 868, 869, 862, 863, 870, 871, 860, 861, - 0, 876, 877, 878, 879, 880, 881, 882, 883, 810, - 816, 0, 0, 439, 0, 0, 441, 0, 0, 0, - 1274, 0, 281, 432, 433, 431, 0, 0, 390, 284, - 435, 425, 434, 389, 301, 426, 384, 0, 573, 539, - 345, 353, 54, 344, 0, 1121, 0, 1274, 45, 507, - 0, 991, 1115, 960, 1159, 0, 0, 0, 0, 0, - 0, 997, 1124, 0, 0, 916, 0, 0, 0, 1139, - 0, 1145, 0, 0, 0, 917, 896, 897, 0, 1187, - 1196, 1114, 0, 995, 1110, 0, 1074, 1076, 0, 0, - 989, 990, 996, 0, 1216, 0, 891, 891, 1181, 1096, - 0, 1089, 0, 0, 1093, 1094, 1095, 0, 0, 0, - 1173, 0, 1104, 1106, 0, 0, 932, 1102, 0, 935, - 0, 0, 0, 0, 1090, 1091, 1092, 1083, 1084, 1085, - 1086, 1087, 1088, 1100, 1082, 913, 0, 0, 1043, 994, - 0, 912, 1179, 0, 730, 0, 1214, 1211, 0, 1162, - 730, 347, 351, 352, 350, 338, 0, 346, 337, 342, - 340, 343, 341, 0, 511, 0, 508, 1113, 725, 600, - 1203, 0, 0, 311, 501, 595, 594, 636, 636, 627, - 630, 636, 593, 684, 685, 0, 0, 0, 0, 718, - 716, 1210, 1223, 672, 646, 671, 0, 0, 650, 0, - 676, 892, 711, 582, 640, 641, 644, 581, 0, 714, - 0, 724, 712, 645, 0, 134, 1268, 0, 0, 0, - 129, 0, 0, 0, 0, 0, 1410, 0, 0, 101, - 82, 188, 793, 325, 0, 0, 0, 0, 0, 0, - 0, 109, 106, 107, 108, 0, 0, 0, 0, 285, - 286, 299, 0, 290, 291, 288, 292, 293, 0, 0, - 278, 279, 0, 0, 0, 0, 277, 0, 0, 0, - 0, 0, 0, 0, 0, 626, 626, 626, 1005, 0, - 624, 625, 0, 0, 1164, 1167, 538, 244, 0, 234, - 0, 0, 0, 0, 0, 0, 271, 58, 60, 61, - 63, 62, 1241, 0, 1303, 0, 0, 489, 487, 0, - 0, 233, 207, 380, 0, 0, 1410, 377, 0, 223, - 0, 0, 0, 473, 0, 848, 847, 799, 795, 0, - 0, 0, 0, 478, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 473, 470, 473, 1202, 0, 473, - 330, 386, 428, 282, 302, 283, 303, 571, 0, 545, - 553, 558, 536, 0, 536, 0, 555, 559, 536, 554, - 536, 549, 0, 55, 0, 358, 0, 363, 357, 362, - 360, 361, 0, 1171, 0, 0, 1158, 1154, 0, 0, - 0, 0, 0, 1125, 1126, 1127, 1128, 1129, 1130, 1131, - 1132, 1133, 0, 0, 1134, 0, 0, 0, 1081, 1089, - 1093, 1094, 1095, 1090, 1091, 1092, 1083, 1084, 1085, 1086, - 1087, 1088, 1108, 0, 0, 0, 0, 0, 0, 0, - 0, 963, 0, 0, 1070, 0, 1110, 1144, 0, 0, - 0, 0, 0, 0, 1110, 1150, 0, 0, 0, 1186, - 0, 1183, 938, 1170, 0, 1077, 937, 0, 0, 0, - 1218, 1219, 893, 904, 939, 940, 908, 909, 910, 914, - 1251, 1250, 1180, 0, 1172, 0, 0, 894, 918, 923, - 0, 1151, 956, 0, 944, 0, 931, 0, 942, 946, - 919, 934, 0, 915, 0, 1173, 1105, 1107, 0, 1103, - 0, 905, 906, 907, 898, 899, 900, 901, 902, 903, - 911, 1080, 1078, 1079, 0, 0, 0, 1045, 0, 0, - 941, 1177, 1402, 1440, 0, 614, 614, 614, 602, 612, - 0, 782, 626, 1188, 782, 0, 891, 771, 1244, 521, - 510, 509, 1111, 1204, 1243, 1274, 634, 635, 639, 639, - 0, 0, 639, 1641, 1529, 0, 0, 0, 0, 677, - 719, 0, 710, 674, 675, 0, 673, 1210, 678, 1209, - 679, 682, 683, 651, 720, 1197, 722, 0, 715, 586, - 585, 726, 0, 132, 0, 0, 0, 0, 1263, 1280, - 0, 1170, 1296, 1298, 730, 0, 130, 0, 67, 0, - 1410, 84, 0, 0, 0, 0, 0, 0, 138, 0, - 238, 138, 122, 1410, 473, 1410, 473, 1308, 1377, 1545, - 0, 80, 113, 0, 212, 319, 0, 197, 241, 103, - 118, 312, 0, 0, 69, 275, 289, 294, 315, 298, - 295, 306, 296, 326, 0, 65, 0, 313, 0, 304, - 0, 0, 71, 317, 308, 624, 624, 624, 0, 1117, - 0, 0, 0, 1119, 1120, 1166, 0, 537, 0, 235, - 0, 547, 527, 528, 538, 0, 0, 236, 236, 59, - 0, 0, 1242, 0, 0, 0, 0, 51, 0, 226, - 224, 257, 0, 231, 225, 234, 0, 0, 183, 0, - 0, 368, 0, 0, 0, 0, 0, 817, 830, 445, - 804, 0, 858, 857, 859, 859, 804, 0, 788, 0, - 802, 0, 842, 811, 884, 885, 886, 887, 888, 889, - 890, 438, 440, 0, 442, 540, 0, 543, 0, 542, - 541, 546, 535, 0, 566, 0, 0, 0, 0, 0, - 0, 354, 1122, 619, 962, 0, 0, 1155, 0, 0, - 1038, 0, 1013, 1015, 1028, 0, 1017, 1019, 0, 1097, - 0, 0, 0, 1029, 965, 966, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 982, 981, 1030, 1069, 0, 0, - 1142, 1143, 0, 1031, 0, 0, 1149, 0, 0, 0, - 1036, 0, 0, 0, 0, 1195, 992, 1111, 1075, 1073, - 998, 891, 0, 0, 0, 0, 0, 0, 0, 945, - 933, 0, 943, 947, 0, 0, 0, 927, 0, 0, - 925, 957, 921, 0, 0, 958, 0, 0, 1044, 1053, - 614, 614, 614, 614, 611, 613, 0, 0, 0, 0, - 1529, 0, 754, 0, 733, 729, 731, 741, 754, 759, - 1008, 780, 1009, 1228, 0, 689, 624, 1196, 689, 0, - 348, 512, 0, 0, 628, 629, 631, 0, 1098, 639, - 633, 681, 680, 0, 649, 717, 647, 0, 723, 133, - 0, 1285, 1269, 1267, 1287, 1286, 0, 1170, 1294, 0, - 0, 1285, 0, 1288, 1302, 1299, 132, 0, 0, 0, - 0, 187, 0, 0, 0, 138, 0, 246, 0, 253, - 0, 0, 238, 219, 102, 0, 0, 0, 76, 121, - 94, 86, 72, 100, 0, 0, 105, 0, 98, 115, - 116, 114, 119, 0, 173, 148, 184, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 626, 622, 623, 1000, 1165, 569, 570, - 280, 568, 245, 0, 0, 0, 233, 380, 57, 271, - 0, 0, 490, 0, 236, 331, 0, 46, 211, 207, - 232, 205, 204, 206, 0, 52, 379, 0, 369, 0, - 365, 0, 374, 836, 801, 0, 854, 852, 800, 0, - 796, 803, 473, 572, 567, 0, 531, 556, 561, 0, - 565, 563, 562, 557, 560, 0, 1157, 1153, 0, 1010, - 1123, 0, 1109, 1137, 1136, 964, 973, 977, 978, 979, - 1138, 0, 0, 0, 974, 975, 976, 967, 968, 969, - 970, 971, 972, 980, 1147, 1146, 1140, 1141, 0, 1033, - 1034, 1035, 1148, 0, 1185, 1110, 1190, 1192, 0, 0, - 1072, 1217, 895, 0, 0, 924, 1152, 948, 0, 0, - 0, 920, 1097, 0, 0, 0, 0, 0, 929, 0, - 0, 0, 0, 0, 1006, 0, 0, 0, 0, 605, - 604, 610, 754, 759, 0, 588, 591, 0, 741, 0, - 753, 668, 752, 668, 734, 0, 765, 763, 0, 765, - 0, 765, 0, 668, 0, 755, 668, 752, 0, 772, - 1200, 781, 0, 706, 0, 1184, 706, 0, 601, 637, - 638, 0, 632, 648, 1198, 131, 0, 127, 0, 1275, - 0, 0, 1272, 1262, 0, 0, 1297, 1285, 1276, 320, - 138, 0, 0, 83, 0, 255, 199, 247, 230, 214, - 0, 0, 0, 139, 0, 272, 0, 0, 220, 0, - 0, 0, 0, 200, 0, 0, 159, 0, 0, 230, - 0, 237, 155, 156, 0, 75, 95, 0, 91, 0, - 120, 0, 0, 0, 0, 0, 90, 78, 0, 73, - 0, 473, 473, 81, 198, 1236, 1697, 1698, 1699, 1700, - 1701, 1702, 1703, 1704, 1705, 1706, 1707, 1708, 1823, 1709, - 1710, 1711, 1712, 1713, 1714, 1715, 1716, 1832, 1717, 145, - 1718, 1476, 1719, 1720, 1721, 1722, 0, 1723, 791, 1724, - 1725, 1726, 1727, 1083, 1084, 240, 140, 143, 248, 142, - 144, 0, 1237, 141, 243, 316, 307, 0, 314, 0, - 305, 323, 321, 318, 309, 1003, 1004, 1001, 624, 550, - 530, 0, 51, 0, 0, 0, 1410, 0, 380, 488, - 0, 233, 51, 49, 0, 263, 183, 258, 0, 486, - 364, 0, 0, 0, 797, 789, 443, 544, 0, 564, - 1156, 1026, 1037, 1135, 0, 0, 0, 0, 1032, 1027, - 1193, 1194, 1189, 954, 952, 949, 0, 950, 928, 0, - 0, 926, 922, 0, 959, 1039, 0, 1042, 1056, 1051, - 1052, 609, 608, 607, 606, 740, 738, 0, 743, 750, - 661, 667, 739, 0, 737, 732, 0, 764, 760, 0, - 761, 0, 0, 762, 0, 735, 0, 750, 736, 0, - 779, 0, 0, 1047, 1000, 1047, 349, 0, 1284, 1264, - 0, 1265, 1295, 0, 0, 0, 0, 1289, 524, 251, - 85, 0, 230, 0, 138, 216, 215, 218, 213, 217, - 0, 273, 0, 0, 157, 0, 164, 202, 203, 201, - 158, 230, 236, 160, 0, 0, 0, 87, 77, 74, - 79, 88, 0, 0, 89, 92, 787, 104, 97, 1832, - 1840, 0, 0, 0, 0, 0, 0, 526, 533, 280, - 0, 0, 48, 207, 0, 0, 0, 233, 0, 0, - 51, 0, 328, 50, 0, 0, 135, 0, 180, 0, - 0, 479, 0, 373, 372, 0, 532, 983, 0, 0, - 0, 1191, 951, 955, 953, 930, 1041, 1058, 1055, 775, - 0, 778, 742, 0, 0, 656, 663, 0, 666, 660, - 0, 744, 0, 0, 746, 748, 0, 0, 0, 783, - 0, 0, 0, 1205, 687, 1352, 1624, 1528, 688, 0, - 692, 686, 690, 695, 697, 696, 698, 694, 705, 0, - 708, 1215, 708, 1099, 0, 0, 0, 0, 1291, 1291, - 1300, 0, 0, 1277, 0, 138, 0, 229, 252, 169, - 147, 0, 0, 0, 154, 161, 262, 163, 0, 96, - 0, 112, 0, 0, 242, 324, 322, 1002, 550, 0, - 380, 183, 486, 0, 0, 0, 331, 47, 207, 196, - 189, 190, 191, 192, 193, 194, 195, 210, 209, 181, - 182, 0, 0, 0, 374, 0, 984, 0, 985, 0, - 626, 780, 0, 0, 774, 0, 654, 652, 655, 657, - 653, 0, 0, 751, 767, 0, 747, 745, 756, 0, - 787, 0, 758, 0, 0, 0, 699, 693, 1046, 1048, - 0, 0, 659, 659, 0, 1271, 0, 0, 1293, 1293, - 782, 0, 1279, 0, 236, 254, 0, 221, 228, 167, - 166, 168, 172, 0, 170, 0, 186, 0, 179, 147, - 786, 0, 99, 0, 249, 525, 529, 0, 137, 480, - 233, 0, 486, 51, 183, 0, 483, 0, 0, 380, - 986, 0, 1061, 773, 776, 0, 749, 0, 0, 0, - 784, 785, 757, 0, 0, 0, 691, 0, 0, 707, - 0, 590, 589, 1266, 1291, 1290, 1292, 636, 636, 1270, - 1301, 0, 262, 208, 0, 0, 0, 169, 0, 162, - 259, 260, 261, 0, 175, 165, 176, 93, 111, 250, - 0, 233, 481, 329, 136, 484, 485, 0, 782, 1057, - 0, 0, 0, 0, 664, 0, 670, 766, 701, 0, - 700, 1049, 1050, 661, 1293, 639, 639, 782, 179, 222, - 227, 146, 171, 185, 0, 0, 0, 177, 0, 178, - 486, 0, 370, 1611, 1353, 1581, 0, 1059, 1062, 1060, - 1054, 777, 0, 0, 662, 702, 658, 636, 1282, 1281, - 1278, 138, 151, 0, 150, 0, 239, 174, 482, 380, - 0, 1066, 1065, 1064, 1068, 1067, 665, 0, 639, 256, - 149, 153, 152, 782, 0, 0, 1283, 371, 1063, 669 + 5007, -66, 819, -2533, -2533, -66, 37576, -2533, -66, 81, + 1614, 39496, -2533, 6521, -66, 42376, 56218, 269, 213, 360, + 42856, 42856, 50506, 42376, 43336, -66, 295, 50986, -2533, -66, + 25499, 39976, 7, 9, 43816, 42376, 1145, 474, 42, -2533, + -2533, -2533, -2533, -2533, 132, -2533, 28, 150, 926, 75, + -2533, -2533, -2533, -2533, 25019, -2533, -2533, -2533, -2533, -2533, + -2533, 163, -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, + -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, + -2533, -2533, 38, -2533, -2533, -2533, -2533, 44296, 42376, 44776, + 40456, 45256, -2533, 136, -2533, -2533, -2533, -2533, -2533, -2533, + -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, + -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, + -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, + -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, + -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, + -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, + -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, + -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, + -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, + -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, + -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, + -2533, -2533, -2533, -2533, -2533, -2533, 139, -2533, -2533, -2533, + -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, + -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, + -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, + -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, + -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, + -2533, -2533, -2533, -2533, -2533, 178, -2533, -2533, -2533, -2533, + -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, + -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, + -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, + -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, + -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, + -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, + -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, + -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, + -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, + -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, + -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, + -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, + -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, + -2533, -2533, -2533, -2533, 182, -2533, -2533, -2533, -2533, -2533, + -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, + -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, + -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, + -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, + -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, + -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, + -2533, -2533, -2533, -2533, -2533, 196, -165, -2533, 184, -2533, + -2533, -2533, -2533, 153, 1145, 42376, 619, 755, 334, 51466, + -2533, -2533, 50506, -2533, -2533, 722, 587, -2533, -2533, -2533, + -2533, -2533, 40936, -2533, -2533, -2533, -2533, -2533, 609, -2533, + -2533, 501, -2533, 67, -2533, -2533, 521, 487, -2533, -2533, + -2533, -2533, -2533, -2533, -2533, -2533, 600, -2533, 45736, -2533, + 51946, 46201, 46681, -2533, 479, 56219, 23579, -2533, -2533, -2533, + -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, + 163, -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, + -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, 1007, + -2533, 42856, 1007, -2533, -2533, -2533, -2533, -2533, 338, 591, + -2533, 679, 883, -2533, -2533, -2533, 682, -2533, -2533, 900, + 10615, 10615, 52426, 52426, 1007, 52426, 709, -7, -2533, -2533, + -2533, 9, -2533, 926, 682, 25980, -2533, 703, -165, -2533, + -2533, 233, 1032, 14655, 42376, 731, -2533, 753, 731, 781, + 798, -2533, 5007, 327, 327, 1238, 327, 1092, 1153, -2533, + 1366, -2533, 790, -2533, 827, 1096, -2533, 682, -2533, 42376, + 1159, 1122, 39976, 1173, 816, 1012, 1237, 4066, 1242, 1102, + 1246, 1154, 7080, 14655, 35176, -2533, -165, -2533, -2533, -2533, + -2533, 922, 941, -2533, -2533, -2533, -2533, 595, 1156, -2533, + 933, 1411, -2533, -2533, 1001, 47161, 47641, 42376, 42376, 1382, + -2533, -2533, -2533, -2533, 1011, -2533, -2533, -2533, 176, -2533, + -2533, -2533, -2533, 1034, -2533, 1034, 1034, -2533, -2533, -2533, + -2533, -2533, -2533, -2533, -2533, 1005, 1005, 1182, 1049, -2533, + -2533, -2533, 1359, -2533, -2533, -2533, -2533, -2533, -2533, -2533, + -2533, -2533, -2533, 1058, 532, -2533, 1034, -2533, 1005, -2533, + -2533, -2533, -2533, -2533, -2533, 55291, -2533, -2533, -2533, -2533, + -128, 465, -2533, -2533, -2533, -2533, 1064, -2533, 1542, -2533, + -2533, -2533, -2533, -2533, -2533, -2533, -2533, 1085, -2533, 3945, + 1005, 47, -2533, -2533, 1434, -2533, 109, 1436, 186, -2533, + 1439, 1313, 14655, -2533, -2533, -2533, -2533, -2533, -2533, -2533, + -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, + -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, + -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, + -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, + -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, + -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, + -2533, -2533, -2533, -2533, -2533, 9, -2533, -2533, -2533, -2533, + -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, + 281, -2533, -2533, 32684, -2533, -2533, 56219, 1105, -2533, -2533, + 32684, 15160, 48121, 1576, -2533, 1401, 50506, 1137, -2533, -2533, + -2533, -2533, -2533, -2533, 771, 1635, 116, 1637, 14655, 1147, + 116, 116, 1155, 1486, 187, 189, 203, 205, 1171, 1174, + 208, 209, 209, -2533, 1175, 1176, -2533, 214, 1177, 1178, + 1667, 1677, 137, 1186, 1187, 532, 116, 14655, -2533, 1188, + 209, 1190, 1197, 1198, 1695, 1205, 250, 1705, 1216, 104, + 123, 1217, 1218, -2533, 1219, 251, 252, 14655, 14655, 14655, + 1575, 14655, 8090, 42376, 1715, -2533, -165, 1228, 1007, -2533, + -2533, -2533, -2533, -2533, -2533, -2533, -2533, 175, 6036, -2533, + 1269, -2533, -2533, -2533, 1437, 14655, -2533, -2533, 1229, 1517, + -2533, 253, -2533, -2533, -2533, -155, 1517, -2533, -2533, -2533, + -2533, -2533, 283, 1639, 31724, 32204, 42376, -2533, -2533, -165, + -2533, -2533, -2533, -2533, -2533, -2533, 452, -2533, 163, 34071, + 1239, 1240, -165, 731, 42376, 42376, 1703, -2533, -2533, -2533, + -2533, -2533, 926, 926, 9605, 926, 143, 1100, 11120, 15665, + 1577, 1462, 157, 133, 1582, -2533, 1465, 1092, 1153, 14655, + -2533, 1523, 753, 39976, 42376, 52906, 1374, 42376, 38056, 789, + 966, 1258, 1343, 1263, 70, 1675, -2533, 1262, -2533, 1350, + 42376, 55291, 272, -2533, 1712, 272, 272, 170, 1716, 1357, + 324, 1514, 562, 430, 2121, -2533, 1262, 39976, 146, 564, + 1262, 42376, 1364, 620, 1262, 121, 15160, 348, 697, 352, + 1056, 1131, 126, 140, 154, 172, 177, 15160, 1209, 1233, + 188, 1248, 1458, 1502, 1509, 1527, 1529, 1541, 1552, 191, + 1555, 1557, 1561, 1581, 1583, 193, 1595, 198, 1603, 227, + 215, 15160, 1607, 1284, -2533, 34071, -25, -2533, -2533, 1609, + 219, -2533, 30286, 1278, -2533, -2533, -2533, -2533, -2533, -2533, + -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, + -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, + -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, + -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, + -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, + -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, + -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, + -2533, -2533, -2533, -2533, 1370, 50506, 1327, 656, 1638, 1697, + 35176, 1288, 48121, 42376, 1521, 2121, 1524, 1301, 1764, 941, + 1304, -2533, 53386, -2533, -2533, -2533, -2533, -2533, -2533, 1309, + -2533, -2533, 14655, -2533, -2533, -2533, 1798, -2533, 48121, 48121, + 1034, 1034, -2533, -2533, 1780, 1404, 1407, 1798, -2533, 1798, + -2533, 50506, 1328, 1329, 1798, -2533, -2533, -2533, -2533, -2533, + -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, + -2533, 1798, 1413, -2533, 1414, 1415, 1416, -2533, -2533, -2533, + -2533, -2533, -2533, -2533, 48121, -2533, 50506, 50506, -2533, 42376, + 42376, -2533, 42376, 50506, 1335, 56219, 37096, -2533, -2533, -2533, + -2533, 1068, 1097, -2533, -2533, -2533, -2533, -2533, -2533, -2533, + -2533, -2533, 35176, -2533, 2077, -2533, -2533, -2533, 1325, 584, + -2533, 613, 1145, -2533, -2533, 14655, -165, 14655, -2533, 34071, + 1383, 14655, 14655, 1344, 1798, 1798, -2533, 1438, 1798, 1798, + 5988, 14655, 28863, 14655, 19200, 11625, 14655, 14655, 8595, 14655, + 5988, 1831, 1831, 26940, -2533, 1503, -2533, 1348, 1619, 6072, + 1347, -2533, 1352, 1353, 1341, -2533, -165, -165, 14655, -2533, + 14655, 3099, 3099, -2533, 202, 48121, 14655, 14655, 14655, 14655, + 14655, 14655, 14655, 34696, 1442, 124, 50506, 14655, 14655, 1363, + 877, -2533, 14655, 1574, -2533, 1365, 14655, 1448, 996, 14655, + 14655, 14655, 14655, 14655, 14655, 14655, 14655, 14655, -2533, -2533, + 20701, 206, 1688, 1707, -165, -45, 502, 10615, 41416, 1700, + 7080, -2533, -165, 30764, 122, 1700, -2533, -2533, -2533, 254, + -2533, -2533, -2533, -2533, -2533, 1325, -2533, 1325, 1372, 42376, + 233, 39016, 14655, -2533, -2533, 1371, 1375, 1377, 1662, -2533, + 257, 257, 1376, -2533, 33161, 1662, -2533, -2533, 19691, 1504, + 1658, 1596, -2533, -2533, 1578, 1580, -2533, 1389, 34134, 16170, + 16170, -2533, 1274, 34071, 1299, -2533, -2533, -2533, -2533, -2533, + -2533, 131, -2533, 42376, 418, 1577, 133, 1385, -2533, -2533, + 1454, 1862, 44, 50506, -2533, 27420, 1234, 1403, 53866, 42376, + 1680, 1641, 1685, -104, 48121, -2533, -2533, -2533, -2533, 42376, + 50506, 48586, 54346, 35656, 42376, 35176, -2533, -2533, -2533, -2533, + 42376, 946, 42376, 6647, -2533, -2533, -2533, 272, -2533, -2533, + -2533, -2533, -2533, 50506, 42376, -2533, -2533, 272, 50506, 42376, + 272, -2533, 1282, 42376, 42376, 42376, 42376, 1338, 42376, 42376, + -24, -24, 1618, -2533, 12130, 83, -2533, 14655, 14655, -2533, + 14655, 1591, -2533, -2533, 623, 1640, 106, 1471, 42376, 42376, + 50506, 1291, -2533, -2533, -2533, -2533, -2533, -2533, 35176, -2533, + 1428, 1779, 2121, -2533, 1787, 38536, 847, 691, 1480, 12635, + 1894, 1671, -2533, -2533, 1657, 14655, 1445, 1446, 47, 718, + -2533, -2533, 1450, 1329, 1466, 1469, 1452, 1455, 748, 48121, + 1798, 107, 1456, 1459, 1388, 1346, 534, 1294, -2533, 109, + -2533, 186, -2533, 1673, 165, -2533, -2533, -2533, -2533, -2533, + -2533, -2533, -2533, 776, 22619, -2533, -2533, 1916, 1007, 1916, + 285, -2533, -2533, 1916, -2533, 1916, -2533, 32684, -2533, 15160, + -2533, 48121, -2533, -2533, -2533, -2533, -2533, 1461, -2533, 1464, + 14655, 39, -2533, 33223, 1463, 14655, 1467, 1472, -2533, -2533, + -2533, -2533, -2533, -2533, -2533, -2533, -2533, 1475, 1793, -2533, + 1477, 1478, 5240, -2533, -2533, -2533, -2533, -2533, -2533, -2533, + -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, 1484, 1468, + 33259, 1485, 19200, 19200, 8090, 2851, -2533, 19200, 1491, -2533, + 1492, 33174, 1493, 1494, 33304, 13140, 14655, 13140, 13140, 33713, + -2533, 1495, 33792, 42376, -2533, 16675, -2533, -2533, -2533, 14655, + 42376, -2533, 14655, 1497, 6316, -2533, -2533, -2533, 873, 5483, + 502, 4508, 4508, 4508, 5988, -2533, -2533, -2533, 1489, -2533, + 19200, 19200, -2533, 5218, 1694, 8090, -2533, -2533, 1809, -2533, + 256, -2533, 1500, -2533, -2533, 2546, -2533, 28863, 34147, 14655, + 128, -2533, 14655, 1363, 14655, 1584, 4508, 4508, 4508, 274, + 274, 284, 284, 284, 873, 502, -2533, -2533, -2533, 1501, + 1507, 1510, 1855, 1205, 14655, -2533, -2533, 870, 934, 42376, + 2646, 3375, 4427, -2533, -2533, 23099, 1553, -25, 1575, 1553, + 1798, 3099, -2533, 753, -2533, -2533, -2533, 34071, 42376, -2533, + 1145, -2533, -2533, 1528, 1528, 14655, 995, 1528, 1725, 1726, + 1101, 1101, 1274, 1728, -2533, -2533, 1588, -2533, -2533, -2533, + 14655, 9100, 1305, -2533, 1308, -2533, -2533, -2533, -2533, 1516, + -2533, -2533, 1777, -2533, -2533, -2533, -2533, 23099, 1563, 50506, + 1585, -80, 25499, -2533, 1735, -2533, 50506, -2533, -2533, 1525, + 1700, 1543, 1616, 1262, 14655, 1765, -2533, 105, 1537, 1887, + -90, 1841, 50506, -2533, 246, 292, -2533, 622, 1891, 165, + 1893, 165, 35176, 35176, 35176, -2533, -2533, 1007, 787, -2533, + -2533, 380, 796, -2533, -2533, -2533, -2533, 1629, 644, 2121, + 1262, -2533, -2533, -2533, -2533, -2533, -2533, -2533, 216, 714, + 1262, 1636, -2533, 1645, -2533, 1659, 807, 1262, -2533, -2533, + 83, 83, 83, 15160, -2533, 1775, 1776, 1579, 34071, 34071, + 34071, 1586, -2533, 153, -2533, 50506, -2533, -2533, -2533, 1591, + 42376, 1590, 2042, 941, -2533, 1738, 1099, -2533, 50506, 42376, + 42376, 42376, 21190, -2533, -2533, -2533, 1597, 1592, -2533, -23, + 1800, 1811, 42376, 1642, 1263, 2061, -2533, 834, 13645, 1950, + 42376, 1605, -2533, -2533, -2533, -2533, 1798, -2533, -2533, 433, + 433, -2533, 50506, -2533, 1610, -2533, 1611, -2533, -2533, -2533, + -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, 50506, -2533, + -2533, 35176, -2533, 36616, -2533, -2533, -2533, -2533, 1007, -2533, + 1007, 1830, 50506, 31244, 1007, 1007, -2533, -2533, -2533, -2533, + 33821, 14655, -2533, 1972, 48121, -2533, 6566, -2533, -2533, -2533, + 14655, -2533, -2533, 14655, -2533, 28863, 14655, 1953, -2533, 2110, + 2110, 6072, 48121, 19200, 19200, 19200, 19200, 19200, 675, 1190, + 19200, 19200, 19200, 19200, 19200, 19200, 19200, 19200, 19200, 20196, + 337, -2533, -2533, 14655, 14655, 1959, 1953, 14655, -2533, 48121, + 1627, -2533, 1628, 1630, 14655, -2533, 48121, 1631, 8090, 33900, + -2533, -165, 29351, -2533, 34071, -2533, 3099, 14655, 3198, 3253, + 14655, 1633, 14655, 1963, -2533, -2533, 1643, -2533, -2533, 48121, + 14655, 1648, 2675, 19200, 19200, 4345, -2533, 5155, 14655, 8090, + -2533, 1618, 14150, -2533, 1838, 1739, 1739, 1739, 1739, -2533, + -2533, 42376, 42376, 42376, 24059, 1970, 22136, 49066, 49066, 1646, + -2533, 1405, -2533, 49066, 49546, -2533, 1669, -2533, -165, 14655, + 1978, 83, 1503, 1978, 1660, -2533, -2533, 1664, 145, -2533, + -2533, -2533, 1663, -2533, 1528, -2533, -2533, -2533, 1877, -2533, + -2533, -2533, 42376, -2533, -2533, 14655, 1816, -2533, -2533, -2533, + -2533, 1721, -2533, -2533, 838, 2082, 1816, 858, -2533, -165, + 27420, 1563, 14655, 42376, 29380, 2018, -2533, 50506, 50506, 50506, + -2533, 50506, 1668, 1672, 730, 1681, 992, -2533, 1819, 730, + 2001, 180, 1263, 324, 4105, 472, -2533, -2533, -2533, 1755, + 42376, -2533, 50506, -2533, -2533, -2533, -2533, -2533, -2533, -2533, + 35656, 28382, 35176, -2533, 35176, 42376, 42376, 42376, 42376, 42376, + 42376, 42376, 42376, 42376, 42376, 1690, 1691, 1692, 1618, -2533, + -2533, -2533, -2533, 430, -2533, 153, 1696, 38536, 1145, 1480, + 1697, 595, 50026, 859, 2121, 1698, 2155, -2533, 847, 38536, + -2533, -2533, -2533, 2113, -2533, 479, 192, -2533, -2533, 1145, + -2533, 1145, 34071, 50506, 1757, -2533, 1329, 1701, -2533, -2533, + 1329, 48121, -2533, -2533, 165, -2533, 864, -2533, -2533, -2533, + -2533, 50506, 1702, -2533, 1702, -2533, -2533, 14655, 34071, -2533, + 1704, -2533, 34071, 29416, -2533, 34071, 1959, -2533, 2110, 965, + 965, 965, 2753, 2030, 171, 1709, 965, 965, 965, 361, + 361, 102, 102, 102, 2110, 337, 34071, 34071, -2533, -2533, + 1706, -2533, -2533, -2533, -2533, 1710, -2533, 6223, -2533, 1708, + 1720, 50506, -2533, -2533, 312, 14655, 14655, 5218, -2533, 34221, + 14655, 48121, 875, 5218, 218, 14655, 3353, 3484, 14655, 14655, + 5204, 29445, 1723, 14655, 29543, 27900, -2533, 42376, 42376, 42376, + 42376, -2533, -2533, -2533, 49066, 49546, 1713, 21656, 49066, 1405, + 1724, 42376, -2533, 1807, 1717, 1807, 23099, 1999, 1929, -2533, + 23099, 1929, 902, 1929, 2005, 1807, 26460, -2533, 1807, 1729, + 1936, -2533, 772, 34071, 2175, 2048, 1733, -2533, 2048, 1007, + -2533, -2533, -2533, 28863, -2533, -2533, -2533, 34071, 10615, -2533, + 1145, -165, 716, 50506, -36, -2533, 1749, 50506, -2533, 1816, + 34071, -2533, -2533, 50506, 1743, -2533, 1745, 730, -2533, 50506, + 1785, -2533, 223, 2047, 46, -2533, 14655, -2533, 2133, 2213, + 1819, 1753, 50506, 42376, 19200, -2533, 482, 152, -2533, 2031, + 42376, 1785, 2174, -2533, -2533, -2533, 992, -2533, 2068, 1984, + -2533, 272, -2533, 14655, 992, 1986, 138, 50506, -2533, -2533, + 2118, -2533, 48121, 165, 165, -2533, 1763, 1766, 1768, 1769, + 1770, 1773, 1778, 1781, 1784, 1786, 1790, 1795, 1797, -2533, + 1799, 1802, 1806, 1808, 1813, 1815, 1818, 1820, 1058, 1821, + -2533, 1822, 1663, 1823, 1825, 1826, 1827, 54826, 1828, 1829, + 1832, 1833, 1834, 1835, 1068, 1097, -2533, -2533, -2533, 933, + -2533, -2533, -2533, 1836, -2533, 1824, -2533, -2533, -2533, 1848, + -2533, 1849, -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, + 83, 1105, 113, 50506, 1788, 1642, 2240, 683, 2014, 1839, + 1480, -2533, 38536, 857, 637, 1811, -2533, 245, 1642, -2533, + 2199, 1870, -2533, 2045, 50506, 1840, -2533, -2533, -2533, -2533, + 36616, 1702, 34071, -2533, -2533, -2533, 19200, 2170, 1844, 48121, + -2533, -2533, 14655, -2533, -2533, 5218, 5218, 34221, 899, -2533, + 5218, 14655, 14655, 5218, 5218, 14655, -2533, -2533, 29773, -2533, + 55756, -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, 36136, + 49066, 1846, 41896, -2533, -2533, 42376, -2533, 1405, 23099, -2533, + -2533, 700, -2533, 23099, 2124, -2533, 23099, -2533, 42376, 1850, + -2533, 42376, -2533, 10110, 14655, 1890, 1007, 1890, -2533, 1847, + 1852, -2533, -80, -2533, -2533, 2263, 24539, 2219, 14655, -2533, + -2533, 730, -2533, 2017, 1785, 1858, -2533, -2533, -2533, -2533, + -2533, -2533, 29877, -2533, 26, 14655, -2533, 794, 2753, -2533, + -2533, -2533, -2533, 1785, 941, -2533, 42376, 2323, 2211, -2533, + -2533, 34071, -2533, -2533, 1798, 1798, -2533, -2533, 2291, -2533, + -2533, -2533, -2533, 933, 357, 28382, 42376, 42376, 1867, -2533, + -2533, 430, 2246, 912, 847, -2533, 1145, 42376, 2222, 38536, + 2337, 1878, 42376, 1642, 931, 931, -2533, 2022, -2533, 2023, + -2533, -2533, 345, -2533, 42376, -2533, -2533, 24539, -2533, 3105, + 19200, 48121, 920, -2533, -2533, 5218, 5218, 5218, -2533, 2076, + -2533, -2533, 929, 2348, -2533, 42376, -37, 573, 1888, 1896, + -2533, -2533, 1889, -2533, 14655, 1897, -2533, -2533, 23099, 700, + 935, -2533, 48121, 42376, 936, 48121, -2533, 1898, -76, 1900, + -2533, 7585, 1904, -2533, -2533, -2533, -2533, -2533, -2533, 34071, + 34071, 50506, 2063, -2533, 2063, -2533, 10615, 1947, 42376, 14655, + 2333, 74, -2533, 947, -8, 34071, 42376, -2533, 35176, -2533, + 730, -70, 1910, 14655, 29939, 2136, -2533, -2533, 2166, -2533, + 2228, -2533, 50506, 1977, 533, 1995, -2533, -2533, -2533, -2533, + 1105, 1007, 1480, 1811, 1870, 1925, 42376, 1145, 847, 479, + -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, + -2533, -2533, -2533, 2357, 2137, 2359, 1757, 961, 3105, 967, + -2533, 2373, 1618, 1669, 36136, 1931, -2533, 1933, -2533, -2533, + -2533, -2533, -2533, 50506, 1108, -2533, 34071, 42376, -2533, -2533, + -2533, 42376, 2291, 999, -2533, 14655, 1935, 14655, -2533, 17180, + 1932, -2533, 2398, 14655, 1996, 1996, 1145, -2533, 30004, 50506, + 50506, 50506, 1553, 24539, -2533, 2062, 941, 730, 1954, 1003, + -2533, -2533, -2533, -2533, -2533, 2121, -2533, 30122, 2173, 507, + 2159, 1910, -2533, 14655, -2533, 2019, -2533, -2533, -2533, 2411, + -2533, -2533, 38536, 1952, 1870, 1811, 1642, 2162, -2533, 2163, + 1955, 1480, -2533, 14655, 446, -2533, -2533, 42376, -2533, 1009, + 1956, 1957, -2533, -2533, -2533, 1958, 17180, 1961, -2533, 50506, + 1960, 34071, 2102, -2533, -2533, -2533, 2333, -2533, -2533, 257, + 257, -2533, -2533, 27420, 2166, 28382, -2533, 35176, 2055, -70, + 2261, -2533, -2533, -2533, -2533, 49, 2177, -2533, 2178, -2533, + 34071, -2533, 1145, 38536, -2533, -2533, -2533, -2533, -2533, 24539, + 1553, 1493, 17685, 17685, 1967, 1021, -2533, 2461, 2128, -2533, + -2533, 1974, -2533, -2533, -2533, 41896, 50506, 1528, 1528, 1553, + 2159, -2533, -2533, -2533, -2533, -2533, 495, 495, 2350, -2533, + 2036, -2533, 1870, 1028, -2533, 18695, 2119, 151, 33210, -2533, + -2533, -2533, -2533, -2533, 1979, 1982, -2533, -2533, -2533, 257, + -2533, -2533, -2533, -2533, -2533, 2453, -2533, 194, -2533, -2533, + -2533, 1480, 2443, -2533, -2533, -2533, -2533, -2533, -2533, 2473, + 1528, 730, -2533, -2533, -2533, 1553, 18190, 1983, -2533, -2533, + -2533, -2533 }; -/* YYDEFGOTO[NTERM-NUM]. */ -static const yytype_int16 yydefgoto[] = + /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM. + Performed when YYTABLE does not specify something else to do. Zero + means the default is an error. */ +static const yytype_int16 yydefact[] = { - -1, 37, 38, 39, 546, 592, 593, 547, 2277, 1222, - 548, 549, 1214, 1577, 550, 2220, 2221, 2222, 1900, 1051, - 2942, 1901, 1052, 1053, 2224, 551, 552, 1040, 2181, 1863, - 553, 2209, 2545, 2934, 2234, 3076, 2481, 2482, 2931, 2932, - 2212, 1902, 3004, 3005, 2285, 1524, 2999, 1969, 2867, 1906, - 1888, 2483, 1978, 2827, 2585, 1903, 2463, 1970, 2926, 1597, - 1971, 2927, 2684, 1972, 1567, 1592, 2213, 3006, 1907, 1568, - 2208, 2546, 1511, 1973, 2938, 1974, 504, 2467, 554, 1587, - 1542, 1320, 1071, 1532, 1309, 555, 50, 556, 1515, 557, - 778, 558, 606, 607, 1321, 1435, 1322, 559, 560, 878, - 1658, 561, 683, 1595, 562, 2753, 2593, 1227, 1598, 1980, - 505, 58, 633, 1310, 563, 1311, 1312, 865, 59, 1323, - 867, 868, 565, 539, 540, 770, 1259, 541, 751, 566, - 2751, 567, 1588, 568, 583, 569, 65, 608, 570, 1000, - 621, 1001, 1003, 571, 572, 1954, 2729, 2305, 2730, 2023, - 1948, 1318, 2021, 1637, 1571, 1319, 494, 1651, 2306, 2260, - 1638, 69, 70, 573, 951, 73, 74, 75, 613, 624, - 625, 1424, 1808, 2136, 1020, 599, 600, 1942, 643, 1561, - 1459, 1460, 1828, 2164, 1486, 1487, 1029, 1030, 2776, 2981, - 2777, 2778, 2641, 2642, 3064, 1474, 1478, 1479, 1848, 1838, - 1465, 2423, 2800, 2801, 2802, 2803, 2804, 2805, 2806, 952, - 2663, 2912, 1482, 1483, 1032, 1033, 1034, 1491, 1858, 77, - 78, 1811, 2144, 2145, 2146, 2147, 2400, 2401, 2416, 2412, - 2648, 2784, 2148, 2149, 2769, 2770, 2884, 2419, 2155, 2788, - 2789, 2841, 1614, 752, 1889, 1325, 1262, 754, 953, 755, - 1238, 954, 1242, 757, 955, 956, 957, 760, 958, 959, - 960, 763, 1234, 961, 962, 1253, 1281, 1282, 1283, 1284, - 1285, 1286, 1287, 1288, 1289, 1004, 1710, 964, 965, 966, - 2151, 967, 1418, 1797, 2129, 2810, 2908, 2909, 2384, 2629, - 2767, 2880, 3022, 3057, 3058, 968, 969, 1366, 1367, 1368, - 1794, 1413, 1414, 970, 2549, 1416, 1703, 1005, 1725, 1362, - 1121, 1122, 1326, 1682, 1683, 1706, 2052, 1713, 1718, 2080, - 2081, 1726, 1762, 971, 1666, 1667, 2038, 1335, 972, 664, - 1128, 665, 1331, 1756, 981, 973, 974, 975, 1359, 1360, - 2095, 2357, 2358, 1731, 1854, 616, 1450, 2780, 774, 1203, - 976, 977, 978, 979, 1007, 618, 1123, 487, 766, 2986, - 1216, 1011, 1124, 1904, 1752, 574, 575, 86, 576, 1869, - 1497, 2675, 82, 2188, 1872, 2191, 2820, 2437, 2186, 2192, - 2918, 2987, 2189, 1873, 1874, 2821, 1875, 577, 516, 489, - 490, 768, 1206, 1126, 1207 + 1274, 1145, 0, 1028, 1027, 1145, 0, 1239, 1145, 68, + 965, 0, 792, 0, 1145, 0, 1274, 0, 0, 0, + 0, 0, 0, 0, 0, 1145, 142, 0, 791, 1145, + 0, 0, 1179, 0, 0, 0, 0, 0, 2, 4, + 11, 35, 9, 31, 109, 96, 147, 108, 1273, 248, + 112, 28, 12, 37, 790, 6, 18, 16, 21, 14, + 22, 986, 20, 17, 7, 32, 30, 29, 34, 25, + 23, 24, 19, 38, 36, 10, 27, 15, 13, 5, + 33, 26, 0, 8, 1144, 1143, 1137, 0, 0, 0, + 0, 0, 1138, 746, 1305, 1306, 1307, 1308, 1309, 1310, + 1311, 1312, 1313, 1314, 1315, 1316, 1317, 1318, 1319, 1320, + 1665, 1321, 1322, 1323, 1612, 1613, 1666, 1614, 1615, 1324, + 1325, 1326, 1327, 1328, 1329, 1330, 1331, 1616, 1617, 1332, + 1333, 1334, 1335, 1336, 1618, 1667, 1337, 1338, 1339, 1340, + 1341, 1342, 1668, 1343, 1344, 1345, 1346, 1347, 1348, 1349, + 1350, 1351, 1669, 1352, 1353, 1354, 1670, 1671, 1672, 1673, + 1674, 1355, 1356, 1357, 1358, 1359, 1360, 1361, 1619, 1620, + 1362, 1363, 1364, 1365, 1366, 1367, 1368, 1369, 1370, 1371, + 1372, 1373, 1374, 1375, 1376, 1377, 1378, 1379, 1380, 1381, + 1382, 1383, 1384, 1385, 1386, 1387, 1388, 1389, 1621, 1390, + 1391, 1392, 1393, 1394, 1622, 1395, 1396, 1397, 1623, 1398, + 1399, 1400, 1675, 1676, 1401, 1402, 1624, 1678, 1403, 1404, + 1625, 1626, 1405, 1406, 1407, 1408, 1409, 1410, 1411, 1412, + 1679, 1413, 1414, 1415, 1416, 1417, 1418, 1419, 1420, 1421, + 1422, 1423, 1680, 1627, 1424, 1425, 1426, 1427, 1428, 1628, + 1629, 1630, 1429, 1681, 1682, 1430, 1683, 1431, 1432, 1433, + 1434, 1435, 1436, 1437, 1684, 1438, 1685, 1439, 1440, 1441, + 1442, 1443, 1444, 1445, 1446, 1631, 1447, 1448, 1449, 1450, + 1451, 1452, 1453, 1454, 1455, 1456, 1457, 1458, 1459, 1460, + 1461, 1462, 1463, 1464, 1632, 1687, 1633, 1465, 1466, 1467, + 1634, 1468, 1469, 1688, 1470, 1635, 1471, 1636, 1472, 1473, + 1474, 1475, 1476, 1477, 1478, 1479, 1480, 1637, 1689, 1481, + 1690, 1638, 1482, 1483, 1484, 1485, 1486, 1487, 1488, 1489, + 1490, 1491, 1492, 1493, 1639, 1494, 1495, 1640, 1496, 1497, + 1498, 1499, 1500, 1501, 1502, 1503, 1504, 1505, 1506, 1507, + 1641, 1508, 1509, 1510, 1511, 1512, 1513, 1514, 1515, 1516, + 1517, 1518, 1519, 1520, 1521, 1522, 1523, 1524, 1525, 1526, + 1691, 1527, 1528, 1529, 1642, 1530, 1531, 1532, 1533, 1534, + 1535, 1536, 1537, 1538, 1539, 1540, 1541, 1542, 1543, 1544, + 1545, 1692, 1546, 1643, 1547, 1548, 1549, 1693, 1550, 1551, + 1644, 1552, 1553, 1554, 1555, 1556, 1557, 1558, 1559, 1560, + 1561, 1562, 1563, 1564, 1645, 1565, 1646, 1566, 1567, 1568, + 1569, 1695, 1570, 1571, 1572, 1573, 1574, 1647, 1648, 1575, + 1576, 1649, 1577, 1650, 1578, 1579, 1651, 1580, 1581, 1582, + 1583, 1584, 1585, 1586, 1587, 1588, 1589, 1696, 1590, 1591, + 1592, 1593, 1594, 1652, 1653, 1595, 1697, 1596, 1597, 1598, + 1599, 1600, 1601, 1602, 1603, 1604, 1605, 1606, 1607, 1654, + 1655, 1656, 1657, 1658, 1659, 1660, 1661, 1662, 1663, 1664, + 1608, 1609, 1610, 1611, 95, 0, 0, 728, 747, 748, + 756, 1140, 67, 0, 0, 0, 0, 0, 0, 0, + 959, 958, 0, 1195, 964, 0, 0, 746, 750, 827, + 1624, 1631, 1496, 1645, 825, 749, 726, 747, 0, 1053, + 1054, 0, 1062, 0, 1046, 1051, 1047, 0, 1072, 1064, + 1073, 1065, 1045, 1066, 1055, 1044, 0, 1074, 0, 1049, + 0, 0, 0, 1141, 972, 1274, 0, 995, 1016, 993, + 1012, 1009, 996, 1018, 991, 1002, 1000, 1005, 998, 981, + 986, 1004, 1001, 992, 1013, 1011, 1010, 1015, 1006, 1003, + 1019, 1017, 994, 1008, 999, 997, 990, 1014, 1007, 0, + 1238, 0, 0, 745, 1243, 1244, 1241, 1240, 773, 1163, + 91, 1647, 1575, 92, 89, 793, 90, 1142, 141, 139, + 0, 696, 1403, 1441, 1534, 1545, 1647, 0, 1215, 1219, + 1139, 1652, 784, 0, 785, 0, 113, 289, 749, 720, + 1178, 0, 1183, 0, 1510, 117, 120, 765, 118, 109, + 0, 1, 1274, 138, 138, 0, 138, 0, 101, 109, + 104, 108, 249, 789, 1647, 1575, 783, 786, 985, 1303, + 0, 0, 0, 1411, 0, 0, 1411, 0, 1411, 0, + 1411, 0, 0, 688, 0, 689, 729, 85, 86, 40, + 84, 0, 930, 963, 962, 961, 960, 965, 1411, 976, + 760, 0, 1251, 1252, 0, 0, 0, 0, 0, 1190, + 828, 826, 1060, 1061, 0, 1052, 1048, 1050, 0, 757, + 1698, 343, 1699, 372, 350, 372, 372, 1700, 1701, 1702, + 1703, 1704, 1705, 1706, 1707, 339, 339, 1377, 352, 1708, + 1709, 1710, 1411, 1711, 1712, 340, 341, 377, 1713, 1714, + 1715, 1716, 1717, 0, 0, 1718, 372, 1719, 339, 1720, + 1721, 344, 1722, 311, 1723, 0, 1724, 342, 312, 1725, + 380, 380, 1726, 1727, 367, 1728, 0, 1075, 325, 326, + 327, 328, 353, 354, 329, 359, 360, 364, 330, 412, + 339, 1071, 758, 759, 1411, 1067, 1071, 1411, 1071, 722, + 1411, 0, 0, 968, 983, 1020, 1729, 1730, 1731, 1732, + 1733, 1734, 1736, 1735, 1737, 1738, 1739, 1740, 1741, 1742, + 1743, 1744, 1745, 1746, 1747, 1748, 1749, 1750, 1751, 1752, + 1753, 1754, 1755, 1756, 1757, 1758, 1759, 1762, 1760, 1761, + 1763, 1764, 1765, 1766, 1767, 1768, 1769, 1770, 1771, 1772, + 1773, 1774, 1775, 1777, 1776, 1778, 1779, 1780, 1781, 1782, + 1783, 1784, 1785, 1786, 1787, 1788, 1789, 1790, 1791, 1792, + 1793, 1794, 1795, 1796, 1797, 1798, 1799, 1800, 1801, 1802, + 1803, 1804, 1805, 1806, 1807, 1808, 1809, 1810, 1811, 1034, + 0, 1035, 1025, 989, 1021, 1022, 1274, 66, 1242, 1198, + 0, 0, 0, 0, 93, 0, 0, 0, 731, 733, + 734, 617, 744, 691, 0, 1613, 1614, 1615, 681, 0, + 1616, 1617, 1618, 1667, 545, 532, 541, 546, 533, 535, + 542, 1619, 1620, 482, 1621, 1622, 742, 1623, 1625, 1626, + 1628, 1629, 1630, 537, 539, 1632, 1633, 0, 743, 1635, + 1636, 1477, 1638, 1639, 1641, 1642, 543, 1644, 1646, 1647, + 1648, 1649, 1650, 741, 1651, 544, 1653, 0, 0, 0, + 709, 636, 0, 0, 0, 691, 516, 0, 0, 333, + 334, 355, 356, 335, 361, 362, 336, 0, 703, 413, + 561, 691, 528, 592, 457, 0, 514, 508, 699, 124, + 697, 0, 509, 730, 691, 682, 124, 695, 1218, 1216, + 1222, 1217, 0, 0, 0, 0, 0, 291, 290, 721, + 1177, 1175, 1176, 1174, 1173, 1180, 0, 1182, 986, 631, + 633, 0, 682, 119, 0, 0, 0, 99, 98, 3, + 136, 137, 0, 0, 0, 0, 0, 0, 0, 0, + 233, 163, 164, 166, 230, 234, 242, 0, 105, 0, + 787, 0, 765, 0, 0, 1200, 0, 0, 0, 1160, + 1160, 0, 0, 0, 0, 0, 1131, 1080, 1124, 0, + 0, 0, 0, 808, 821, 0, 0, 0, 0, 0, + 818, 0, 0, 801, 795, 797, 1082, 0, 1160, 0, + 1078, 0, 0, 0, 1084, 746, 0, 1665, 1666, 1667, + 1668, 1669, 545, 532, 541, 546, 542, 0, 1675, 1676, + 1624, 1678, 1679, 1680, 1681, 1682, 1683, 1684, 1685, 1631, + 1687, 1688, 1689, 1690, 1691, 543, 1693, 1645, 1695, 1651, + 544, 0, 1697, 0, 520, 639, 147, 637, 766, 0, + 747, 753, 687, 0, 767, 1846, 1847, 1848, 1849, 1850, + 1851, 1852, 1853, 1854, 1855, 1856, 1857, 1858, 1859, 1860, + 1861, 1862, 1863, 1864, 1865, 1866, 1867, 1868, 1869, 1870, + 1871, 1872, 1873, 1874, 1875, 1876, 1877, 1878, 1879, 1880, + 1881, 1882, 1883, 1884, 1885, 1886, 1887, 1888, 1889, 1890, + 1891, 1892, 1893, 1894, 1895, 1896, 1897, 1898, 1899, 1900, + 1901, 1902, 1903, 1904, 1905, 1906, 1907, 1908, 1909, 1910, + 1911, 1912, 1798, 1913, 1914, 1915, 1916, 1917, 684, 727, + 769, 768, 770, 690, 0, 0, 64, 0, 0, 973, + 0, 761, 0, 0, 1411, 1248, 1411, 930, 0, 930, + 0, 1189, 1192, 1063, 1059, 1057, 1056, 1058, 371, 358, + 366, 365, 636, 348, 347, 346, 0, 345, 0, 0, + 372, 372, 370, 349, 325, 0, 0, 0, 376, 0, + 374, 0, 319, 315, 0, 385, 386, 387, 388, 395, + 396, 393, 394, 389, 390, 383, 384, 391, 392, 381, + 382, 0, 397, 398, 399, 400, 401, 402, 403, 404, + 331, 337, 1069, 1070, 0, 1042, 0, 0, 1037, 0, + 0, 1039, 0, 0, 0, 1274, 0, 802, 1030, 1031, + 1029, 0, 0, 822, 1024, 988, 805, 1033, 1023, 1032, + 987, 982, 0, 1197, 55, 1228, 1227, 1236, 774, 0, + 642, 0, 1274, 94, 794, 0, 512, 636, 481, 680, + 0, 0, 0, 0, 0, 0, 518, 645, 0, 0, + 437, 0, 0, 0, 660, 0, 666, 0, 0, 0, + 438, 417, 418, 0, 708, 717, 635, 0, 516, 631, + 0, 595, 597, 0, 0, 510, 511, 517, 0, 737, + 0, 412, 412, 702, 617, 0, 610, 0, 0, 614, + 615, 616, 0, 0, 0, 694, 0, 625, 627, 0, + 0, 453, 623, 0, 456, 0, 0, 0, 0, 611, + 612, 613, 604, 605, 606, 607, 608, 609, 621, 603, + 434, 0, 0, 564, 515, 0, 433, 700, 0, 251, + 0, 735, 732, 0, 683, 251, 1230, 1234, 1235, 0, + 1229, 1233, 1221, 1220, 1225, 1223, 1226, 1224, 0, 1171, + 0, 1168, 634, 246, 121, 724, 0, 0, 116, 115, + 157, 157, 148, 151, 157, 114, 205, 206, 0, 0, + 0, 0, 239, 237, 731, 744, 193, 167, 192, 0, + 0, 171, 0, 197, 413, 232, 103, 161, 162, 165, + 102, 0, 235, 0, 245, 233, 166, 0, 788, 1304, + 1206, 1268, 0, 0, 1201, 0, 0, 0, 0, 0, + 0, 1411, 0, 0, 314, 1115, 1096, 882, 1159, 0, + 0, 0, 0, 0, 0, 0, 1123, 1120, 1121, 1122, + 0, 0, 0, 0, 806, 807, 820, 0, 811, 812, + 809, 813, 814, 0, 0, 799, 800, 0, 0, 0, + 0, 798, 0, 0, 0, 0, 0, 0, 0, 0, + 147, 147, 147, 526, 0, 145, 146, 0, 0, 685, + 688, 54, 928, 938, 0, 0, 0, 0, 0, 0, + 0, 965, 977, 975, 978, 980, 979, 762, 0, 1077, + 0, 0, 1247, 1245, 0, 927, 901, 0, 1194, 0, + 0, 1411, 917, 1191, 0, 0, 0, 0, 1071, 0, + 369, 368, 320, 316, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1076, 1071, + 1068, 1071, 723, 0, 1071, 971, 984, 1026, 803, 823, + 804, 824, 87, 0, 61, 69, 74, 52, 0, 52, + 0, 71, 75, 52, 70, 52, 65, 0, 775, 0, + 1162, 0, 1164, 1161, 1167, 1166, 1165, 0, 692, 0, + 0, 679, 675, 0, 0, 0, 0, 0, 646, 647, + 648, 649, 650, 651, 652, 653, 654, 0, 0, 655, + 0, 0, 0, 602, 610, 614, 615, 616, 611, 612, + 613, 604, 605, 606, 607, 608, 609, 629, 0, 0, + 0, 0, 0, 0, 0, 0, 484, 0, 0, 591, + 0, 631, 665, 0, 0, 0, 0, 0, 0, 631, + 671, 0, 0, 0, 707, 0, 704, 459, 691, 0, + 598, 458, 0, 0, 0, 739, 740, 414, 425, 460, + 461, 429, 430, 431, 435, 772, 771, 701, 0, 693, + 0, 0, 415, 439, 444, 0, 672, 477, 0, 465, + 0, 452, 0, 463, 467, 440, 455, 0, 436, 0, + 694, 626, 628, 0, 624, 0, 426, 427, 428, 419, + 420, 421, 422, 423, 424, 432, 601, 599, 600, 0, + 0, 0, 566, 0, 0, 462, 698, 1403, 1441, 0, + 135, 135, 135, 123, 133, 0, 303, 147, 709, 303, + 0, 412, 292, 765, 1181, 1169, 1170, 632, 725, 764, + 1274, 155, 156, 160, 160, 0, 0, 160, 1642, 1530, + 0, 0, 0, 0, 198, 240, 0, 231, 195, 196, + 0, 194, 731, 199, 730, 200, 203, 204, 172, 241, + 718, 243, 0, 236, 107, 106, 247, 0, 1204, 0, + 0, 0, 0, 1263, 1280, 1202, 0, 691, 1296, 1298, + 251, 0, 0, 1081, 0, 1411, 1098, 0, 0, 0, + 0, 0, 0, 832, 0, 932, 832, 1136, 1411, 1071, + 1411, 1071, 1309, 1378, 1546, 906, 1127, 0, 0, 1094, + 1153, 935, 0, 891, 1117, 1132, 1146, 0, 0, 796, + 1083, 810, 815, 1149, 819, 816, 1257, 817, 1160, 0, + 1079, 0, 1147, 0, 1255, 0, 0, 1085, 1151, 1259, + 145, 145, 145, 0, 638, 0, 0, 0, 640, 641, + 687, 0, 53, 0, 929, 0, 63, 43, 44, 54, + 0, 930, 0, 930, 976, 0, 0, 763, 0, 0, + 0, 0, 314, 920, 918, 951, 0, 925, 919, 0, + 0, 877, 0, 781, 0, 0, 1253, 0, 0, 0, + 0, 0, 338, 351, 1043, 325, 0, 379, 378, 380, + 380, 325, 0, 309, 0, 323, 0, 363, 332, 405, + 406, 407, 408, 409, 410, 411, 1036, 1038, 0, 1040, + 56, 0, 59, 0, 62, 58, 57, 51, 0, 82, + 0, 0, 0, 0, 0, 0, 1237, 643, 140, 483, + 0, 0, 676, 0, 0, 559, 0, 534, 536, 549, + 0, 538, 540, 0, 618, 0, 0, 0, 550, 486, + 487, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 503, + 502, 551, 590, 0, 0, 663, 664, 0, 552, 0, + 0, 670, 0, 0, 0, 557, 0, 0, 0, 0, + 716, 513, 632, 596, 594, 519, 412, 0, 0, 0, + 0, 0, 0, 0, 466, 454, 0, 464, 468, 0, + 0, 0, 448, 0, 0, 446, 478, 442, 0, 0, + 479, 0, 0, 565, 574, 135, 135, 135, 135, 132, + 134, 0, 0, 0, 0, 1530, 0, 275, 0, 254, + 250, 252, 262, 275, 280, 529, 301, 530, 749, 0, + 210, 145, 717, 210, 0, 1231, 1172, 0, 0, 149, + 150, 152, 0, 619, 160, 154, 202, 201, 0, 170, + 238, 168, 0, 244, 1205, 0, 1285, 1269, 1267, 1287, + 1286, 0, 691, 1294, 0, 0, 1285, 0, 1288, 1302, + 1299, 1204, 0, 0, 0, 0, 881, 0, 0, 0, + 832, 0, 940, 0, 947, 0, 0, 932, 913, 1116, + 0, 0, 0, 1090, 1135, 1108, 1100, 1086, 1114, 0, + 0, 1119, 0, 1112, 1129, 1130, 1128, 842, 867, 1133, + 0, 0, 0, 878, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 147, 143, + 144, 521, 686, 801, 939, 0, 0, 927, 0, 1194, + 974, 965, 0, 0, 1248, 930, 0, 905, 901, 926, + 899, 898, 900, 0, 782, 972, 0, 776, 1193, 0, + 1254, 0, 1250, 0, 1188, 357, 322, 0, 375, 373, + 321, 0, 317, 324, 1071, 88, 0, 47, 83, 72, + 77, 0, 81, 79, 78, 73, 76, 0, 678, 674, + 0, 531, 644, 0, 630, 658, 657, 485, 494, 498, + 499, 500, 659, 0, 0, 0, 495, 496, 497, 488, + 489, 490, 491, 492, 493, 501, 668, 667, 661, 662, + 0, 554, 555, 556, 669, 0, 706, 631, 711, 713, + 0, 0, 593, 738, 416, 0, 0, 445, 673, 469, + 0, 0, 0, 441, 618, 0, 0, 0, 0, 0, + 450, 0, 0, 0, 0, 0, 527, 0, 0, 0, + 0, 126, 125, 131, 275, 280, 0, 109, 112, 0, + 262, 0, 274, 189, 273, 189, 255, 0, 286, 284, + 0, 286, 0, 286, 0, 189, 0, 276, 189, 273, + 0, 293, 721, 302, 0, 227, 0, 705, 227, 0, + 122, 158, 159, 0, 153, 169, 719, 1203, 0, 1199, + 0, 1275, 0, 0, 1272, 1262, 0, 0, 1297, 1285, + 1276, 1154, 832, 0, 0, 1097, 0, 949, 893, 941, + 924, 908, 0, 0, 0, 833, 0, 966, 0, 0, + 914, 0, 0, 0, 0, 894, 0, 0, 853, 0, + 0, 924, 0, 931, 849, 850, 0, 1089, 1109, 0, + 1105, 0, 1134, 0, 0, 0, 0, 0, 1092, 1104, + 0, 1087, 0, 1071, 1071, 1095, 757, 1698, 1699, 1700, + 1701, 1702, 1703, 1704, 1705, 1706, 1707, 1708, 1709, 1824, + 1710, 1711, 1712, 1713, 1714, 1715, 1716, 1717, 1833, 1718, + 839, 1719, 1477, 1720, 1721, 1722, 1723, 0, 1724, 312, + 1725, 1726, 1727, 1728, 604, 605, 942, 836, 838, 0, + 837, 934, 834, 758, 835, 937, 892, 1150, 1258, 0, + 1148, 0, 1256, 1157, 1155, 1152, 1260, 524, 525, 522, + 145, 66, 46, 0, 0, 781, 0, 0, 1411, 0, + 1194, 1246, 927, 0, 957, 877, 952, 0, 781, 779, + 0, 1214, 1249, 0, 0, 0, 318, 310, 1041, 60, + 0, 80, 677, 547, 558, 656, 0, 0, 0, 0, + 553, 548, 714, 715, 710, 475, 473, 470, 0, 471, + 449, 0, 0, 447, 443, 0, 480, 560, 0, 563, + 577, 572, 573, 130, 129, 128, 127, 261, 259, 0, + 264, 271, 182, 188, 260, 0, 258, 253, 0, 285, + 281, 0, 282, 0, 0, 283, 0, 256, 0, 271, + 257, 0, 300, 0, 0, 568, 521, 568, 1232, 0, + 1284, 1264, 0, 1265, 1295, 0, 0, 0, 0, 1289, + 1261, 945, 1099, 0, 924, 0, 832, 910, 909, 912, + 907, 911, 0, 967, 0, 0, 851, 0, 858, 896, + 897, 895, 852, 924, 930, 854, 0, 0, 0, 1101, + 1091, 1088, 1093, 1102, 0, 0, 1103, 1106, 308, 1118, + 1111, 1833, 1841, 0, 0, 0, 0, 0, 0, 42, + 49, 801, 0, 0, 901, 778, 0, 0, 0, 927, + 0, 0, 0, 781, 0, 0, 829, 0, 874, 0, + 969, 780, 0, 1207, 0, 1186, 1187, 0, 48, 504, + 0, 0, 0, 712, 472, 476, 474, 451, 562, 579, + 576, 296, 0, 299, 263, 0, 0, 177, 184, 0, + 187, 181, 0, 265, 0, 0, 267, 269, 0, 0, + 0, 304, 0, 0, 0, 726, 208, 1353, 1625, 1529, + 209, 0, 213, 207, 211, 216, 218, 217, 219, 215, + 226, 0, 229, 736, 229, 620, 0, 0, 0, 0, + 1291, 1291, 1300, 0, 0, 1277, 0, 832, 0, 923, + 946, 863, 841, 0, 0, 0, 848, 855, 956, 857, + 0, 1110, 0, 1126, 0, 0, 936, 1158, 1156, 523, + 66, 0, 1194, 877, 1214, 0, 0, 0, 901, 972, + 777, 890, 883, 884, 885, 886, 887, 888, 889, 904, + 903, 875, 876, 0, 0, 0, 1188, 0, 505, 0, + 506, 0, 147, 301, 0, 0, 295, 0, 175, 173, + 176, 178, 174, 0, 0, 272, 288, 0, 268, 266, + 277, 0, 308, 0, 279, 0, 0, 0, 220, 214, + 567, 569, 0, 0, 180, 180, 0, 1271, 0, 0, + 1293, 1293, 303, 0, 1279, 0, 930, 948, 922, 0, + 915, 861, 860, 862, 866, 0, 864, 0, 880, 0, + 873, 841, 307, 0, 1113, 0, 943, 41, 45, 0, + 831, 1208, 927, 0, 1214, 877, 781, 0, 1211, 0, + 0, 1194, 507, 0, 582, 294, 297, 0, 270, 0, + 0, 0, 305, 306, 278, 0, 0, 0, 212, 0, + 0, 228, 0, 111, 110, 1266, 1291, 1290, 1292, 157, + 157, 1270, 1301, 0, 956, 0, 902, 0, 0, 863, + 0, 856, 953, 954, 955, 0, 869, 859, 870, 1107, + 1125, 944, 0, 927, 1209, 830, 970, 1212, 1213, 0, + 303, 578, 0, 0, 0, 0, 185, 0, 191, 287, + 222, 0, 221, 570, 571, 182, 1293, 160, 160, 303, + 873, 921, 916, 840, 865, 879, 0, 0, 0, 871, + 0, 872, 1214, 0, 1184, 1612, 1354, 1582, 0, 580, + 583, 581, 575, 298, 0, 0, 183, 223, 179, 157, + 1282, 1281, 1278, 832, 845, 0, 844, 0, 933, 868, + 1210, 1194, 0, 587, 586, 585, 589, 588, 186, 0, + 160, 950, 843, 847, 846, 303, 0, 0, 1283, 1185, + 584, 190 }; -/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing - STATE-NUM. */ -#define YYPACT_NINF -2616 -static const int yypact[] = + /* YYPGOTO[NTERM-NUM]. */ +static const yytype_int16 yypgoto[] = { - 5359, -95, 109, -2616, -2616, -95, 37605, -2616, -95, 59, - 2184, 39990, -2616, 5891, -95, 42870, 56712, 232, 188, 274, - 43350, 43350, 51000, 42870, 43830, -95, 273, 51480, -2616, -95, - 25638, 40470, 36, -106, 44310, 42870, 1004, 459, 49, -2616, - -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, - -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, 39, - -2616, -2616, -2616, -2616, -2616, 25158, -2616, -2616, -2616, -2616, - -2616, -2616, 122, -2616, 243, 170, 471, 62, -2616, -2616, - -2616, -2616, 108, -2616, -2616, -2616, -2616, 44790, 42870, 45270, - 40950, 45750, -2616, 110, -2616, -2616, -2616, -2616, -2616, -2616, - -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, - -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, - -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, - -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, - -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, - -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, - -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, - -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, - -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, - -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, - -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, - -2616, -2616, -2616, -2616, -2616, -2616, 139, -2616, -2616, -2616, - -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, - -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, - -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, - -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, - -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, - -2616, -2616, -2616, -2616, -2616, 144, -2616, -2616, -2616, -2616, - -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, - -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, - -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, - -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, - -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, - -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, - -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, - -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, - -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, - -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, - -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, - -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, - -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, - -2616, -2616, -2616, -2616, 150, -2616, -2616, -2616, -2616, -2616, - -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, - -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, - -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, - -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, - -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, - -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, - -2616, -2616, -2616, -2616, -2616, 163, 548, -2616, 169, -2616, - -2616, -2616, -2616, 1004, 42870, 358, 587, 247, 51960, -2616, - -2616, 51000, -2616, -2616, 1176, 413, -2616, -2616, -2616, -2616, - -2616, 41430, -2616, -2616, -2616, -2616, -2616, 424, -2616, -2616, - 289, -2616, 142, -2616, -2616, 285, 350, -2616, -2616, -2616, - -2616, -2616, -2616, -2616, -2616, 458, -2616, 46230, -2616, 52440, - 46695, 47175, -2616, 354, 34181, 23718, -2616, -2616, -2616, -2616, - -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, - -2616, -2616, -2616, -2616, 39, -2616, -2616, -2616, -2616, -2616, - -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, 867, -2616, - 43350, 867, -2616, -2616, -2616, -2616, -2616, 99, 387, -2616, - 441, 724, -2616, -2616, 497, -2616, -2616, -2616, 700, 11220, - 11220, 52920, 52920, 867, 52920, 527, -2616, -2616, -5, -2616, - -106, 497, -2616, 471, 26119, -2616, 525, 548, -2616, -2616, - 230, 856, 15260, 42870, 555, -2616, 601, 555, 613, 630, - -2616, 5359, -2616, 42870, -2616, 622, 925, 497, -2616, 320, - 320, 1095, 320, 971, 1257, -2616, 1483, -2616, 667, 1002, - 996, 40470, 1036, 826, 898, 1074, 4638, 1105, 858, 1109, - 1008, 7685, 15260, 35205, -2616, 548, 771, 780, -2616, -2616, - -2616, -2616, 617, 1014, -2616, 806, 1289, -2616, -2616, 876, - 47655, 48135, 42870, 42870, 1250, -2616, -2616, -2616, -2616, 888, - -2616, -2616, -2616, 162, -2616, -2616, -2616, -2616, 922, -2616, - 922, 922, -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, - 859, 859, 1069, 890, -2616, -2616, -2616, 1245, -2616, -2616, - -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, 914, 722, - -2616, 922, -2616, 859, -2616, -2616, -2616, -2616, -2616, -2616, - 55785, -2616, -2616, -2616, -2616, 516, 545, -2616, -2616, -2616, - -2616, 96, 939, -2616, 1370, -2616, -2616, -2616, -2616, -2616, - -2616, -2616, -2616, 941, -2616, 2280, 859, -2616, -2616, 1294, - 111, -2616, 1296, 118, -2616, 1304, 1175, 15260, -2616, -2616, - -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, - -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, - -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, - -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, - -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, - -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, - -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, - -106, -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, - -2616, -2616, -2616, -2616, -2616, 417, -2616, -2616, 32479, -2616, - -2616, 34181, 967, -2616, -2616, 32479, 15765, 48615, 1422, -2616, - 1235, 51000, 1009, -2616, -2616, -2616, -2616, -2616, -2616, 342, - 1468, 105, 1506, 15260, 1023, 105, 105, 1029, 1367, 190, - 201, 202, 208, 1041, 1070, 219, 220, 220, -2616, 1072, - 1077, -2616, 238, 1082, 1085, 1581, 1590, 145, 1104, 1112, - 722, 105, 15260, -2616, 1119, 220, 1133, 1137, 1140, 1594, - 1142, 240, 1603, 1148, 107, 148, 1159, 1172, -2616, 1174, - 249, 250, 15260, 15260, 15260, 1535, 15260, 8695, 42870, 1681, - -2616, 548, 1194, 867, -2616, -2616, -2616, -2616, -2616, -2616, - -2616, -2616, 153, 5621, -2616, 1265, -2616, -2616, -2616, 1409, - 15260, -2616, -2616, 1216, 1518, -2616, 251, -2616, -2616, -2616, - 560, 1518, -2616, -2616, -2616, -2616, -2616, 235, 1639, 31519, - 31999, 42870, -2616, -2616, 548, -2616, -2616, -2616, -2616, -2616, - -2616, 451, -2616, 39, 33866, 1233, 1244, 548, 555, 42870, - 42870, 1707, -2616, -2616, -2616, 601, -2616, 1514, -2616, -2616, - 471, 471, 10210, 471, 171, 543, 11725, 16270, 1582, 1469, - 152, 693, 1586, -2616, 1476, 971, 1257, 15260, 40470, 42870, - 1393, 53400, 42870, 38085, 802, 821, 1271, 1360, 1275, 344, - 1690, -2616, 1276, -2616, 1368, 42870, 55785, 275, -2616, 1724, - 275, 275, 572, 1728, 1369, 316, 1525, 585, 445, 1276, - 2759, -2616, 40470, 149, 656, 1276, 42870, 1373, 670, 1276, - 155, 15765, 1278, 1287, 430, 1338, 1348, 168, 172, 174, - 184, 186, 15765, 1357, 1465, 189, 1488, 1537, 1541, 1550, - 1553, 1579, 1588, 1592, 191, 1621, 1647, 1649, 1652, 1654, - 196, 1656, 207, 1662, 209, 214, 15765, 1665, 1292, -2616, - 33866, -11, -2616, -2616, 1668, 236, -2616, 6023, 1288, -2616, - -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, - -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, - -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, - -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, - -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, - -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, - -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, - -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, 1378, - 51000, 1337, -15, 1648, 1706, 35205, 1301, 48615, 42870, 1531, - 2759, 1533, 1770, 1312, 780, 1313, -2616, 53880, -2616, -2616, - -2616, -2616, -2616, -2616, 1315, -2616, -2616, 15260, -2616, -2616, - -2616, 1806, -2616, 48615, 48615, 922, 922, -2616, -2616, 1780, - 1403, 1404, 1806, -2616, 1806, -2616, -2616, -2616, 48615, -2616, - 51000, 1323, 1324, 1806, -2616, -2616, -2616, -2616, -2616, -2616, - -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, - 1806, 1405, -2616, 1406, 1411, 1412, -2616, -2616, -2616, -2616, - -2616, 51000, 51000, -2616, 42870, 42870, -2616, 42870, 51000, 1326, - 34181, 37125, -2616, -2616, -2616, -2616, 359, 363, -2616, -2616, - -2616, -2616, -2616, -2616, -2616, -2616, -2616, 35205, -2616, 2055, - -2616, -2616, 1335, -2616, 468, -2616, 623, 1004, -2616, -2616, - 15260, 548, 15260, -2616, 33866, 1384, 15260, 15260, 1343, 1806, - 1806, -2616, 2322, 1806, 1806, 34109, 15260, 29002, 15260, 19805, - 12230, 15260, 15260, 9200, 15260, 34109, 1832, 1832, 27079, -2616, - 1500, -2616, 1347, 1333, 6484, 1345, -2616, 1349, 1353, 1339, - -2616, 548, 548, 15260, -2616, 15260, 2451, 2451, -2616, 200, - 48615, 15260, 15260, 15260, 15260, 15260, 15260, 15260, 34725, 1450, - 138, 51000, 15260, 15260, 1351, 800, -2616, 15260, 1589, -2616, - 1379, 15260, 1455, 140, 15260, 15260, 15260, 15260, 15260, 15260, - 15260, 15260, 15260, -2616, -2616, 21306, 224, 1699, 1718, 548, - -12, 991, 11220, 41910, 1711, 7685, -2616, 548, 30559, 135, - 1711, -2616, -2616, -2616, -2616, -2616, 265, -2616, -2616, -2616, - 1335, -2616, 1335, 1385, 42870, 230, 39045, 15260, -2616, -2616, - 1381, 1386, 1388, -2616, -2616, 1675, -2616, 300, 300, 1392, - -2616, 32956, 1675, -2616, -2616, 20296, 1517, 1676, 1611, -2616, - -2616, 1595, 1597, -2616, 1398, 33929, 16775, 16775, -2616, 1139, - 33866, 1334, -2616, -2616, -2616, -2616, -2616, -2616, 612, -2616, - 42870, 95, 1582, 693, 1408, 1470, 1871, 1247, 27559, 51000, - -2616, 1145, 1414, 54360, 42870, 1686, 1643, 1693, 223, -2616, - -2616, -2616, 48615, -2616, 42870, 51000, 49080, 54840, 35685, 42870, - 35205, -2616, -2616, -2616, -2616, 42870, 1606, 42870, 5049, -2616, - -2616, -2616, 275, -2616, -2616, -2616, -2616, -2616, 51000, 42870, - -2616, -2616, 275, 51000, 42870, 275, -2616, 1228, 42870, 42870, - 42870, 42870, 1363, 42870, 42870, -8, -8, 1625, -2616, 12735, - 429, -2616, 15260, 15260, -2616, 15260, 1596, -2616, 635, -2616, - 1635, 100, 1471, 42870, 42870, 51000, 871, -2616, -2616, -2616, - -2616, -2616, -2616, 35205, -2616, 1423, 1771, 2759, -2616, 1773, - 41, 38565, 574, 1472, 13240, 1896, 1663, -2616, 1650, -2616, - 15260, 1436, 1438, 96, 647, -2616, -2616, 1442, 1324, 1458, - 1460, 1443, 1444, -2616, 747, 48615, 1806, 137, 1445, 1448, - 1435, 1356, 767, 1344, 111, -2616, 118, -2616, 1664, 212, - -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, 751, 22758, - -2616, -2616, 1911, 867, 1911, 376, -2616, -2616, 1911, -2616, - 1911, -2616, 32479, -2616, 15765, -2616, 48615, -2616, -2616, -2616, - -2616, -2616, 1453, -2616, 1452, 15260, 77, -2616, 33018, 1454, - 15260, 1457, 1459, -2616, -2616, -2616, -2616, -2616, -2616, -2616, - -2616, -2616, 1461, 1784, -2616, 1463, 1464, 5286, -2616, -2616, - -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, - -2616, -2616, -2616, 1466, 1467, 33054, 1473, 19805, 19805, 8695, - 292, -2616, 19805, 1475, -2616, 1478, 32969, 1462, 1479, 33099, - 13745, 15260, 13745, 13745, 33508, -2616, 1485, 33587, 42870, -2616, - 17280, -2616, -2616, -2616, 15260, 42870, -2616, 15260, 1486, 6647, - -2616, -2616, -2616, 332, 33942, 991, 1722, 1722, 1722, 34109, - -2616, -2616, -2616, 1489, -2616, 19805, 19805, -2616, 3880, 2821, - 8695, -2616, -2616, 1789, -2616, 783, -2616, 1477, -2616, -2616, - 3037, -2616, 29002, 34016, 15260, 141, -2616, 15260, 1351, 15260, - 1570, 1722, 1722, 1722, 371, 371, 279, 279, 279, 332, - 991, -2616, -2616, -2616, 1490, 1495, 1502, 1815, 1142, 15260, - -2616, -2616, 657, 749, 42870, 2714, 3276, 3956, -2616, -2616, - 23238, 1544, -11, 1535, 1544, 1806, 2451, -2616, 601, -2616, - -2616, -2616, 33866, 42870, -2616, 1004, -2616, -2616, 1520, 1520, - 15260, 1637, 1520, 1717, 1719, 688, 688, 1139, 1720, -2616, - -2616, 1574, -2616, -2616, -2616, 15260, 9705, 1342, -2616, 1355, - -2616, -2616, -2616, -2616, 1511, -2616, -2616, 1766, -2616, -2616, - -2616, -2616, 23238, 1557, 51000, 1569, -39, 25638, -2616, 1732, - 51000, -2616, -2616, 1522, 1711, 1532, -2616, 1614, 1276, 15260, - 1751, -2616, 269, 1536, 1884, 403, 1843, 51000, -2616, 293, - 323, -2616, 151, 1888, 212, 1892, 212, 35205, 35205, 35205, - 773, -2616, -2616, 867, -2616, -2616, 775, -2616, 552, -2616, - -2616, -2616, 1629, 711, 1276, 2759, -2616, -2616, -2616, -2616, - -2616, -2616, -2616, 158, 721, 1276, 1630, -2616, 1631, -2616, - 1632, 730, 1276, -2616, -2616, 429, 429, 429, 15765, -2616, - 1778, 1792, 1577, 33866, 33866, 33866, 1576, -2616, 156, -2616, - 51000, -2616, -2616, -2616, 1596, 42870, 2041, 1583, 780, -2616, - 1736, 736, -2616, 51000, 42870, 42870, 42870, 1620, 42870, -2616, - -2616, -2616, 1584, 1585, -2616, 39525, -23, 1801, 1803, 1275, - 2053, -2616, 803, 14250, 1940, 42870, 1598, -2616, -2616, -2616, - -2616, 1806, -2616, -2616, -104, -104, -2616, 51000, -2616, 1599, - -2616, 1604, -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, - -2616, -2616, -2616, 51000, -2616, -2616, 35205, -2616, 36645, -2616, - -2616, -2616, -2616, 867, -2616, 867, 1817, 51000, 31039, 867, - 867, -2616, -2616, -2616, -2616, 33616, 15260, -2616, 1952, 48615, - -2616, 6882, -2616, -2616, -2616, 15260, -2616, -2616, 15260, -2616, - 29002, 15260, 1929, -2616, 2093, 2093, 6484, 48615, 19805, 19805, - 19805, 19805, 19805, 183, 1133, 19805, 19805, 19805, 19805, 19805, - 19805, 19805, 19805, 19805, 20801, 604, -2616, -2616, 15260, 15260, - 1939, 1929, 15260, -2616, 48615, 1610, -2616, 1615, 1622, 15260, - -2616, 48615, 1626, 8695, 33695, -2616, 548, 7046, -2616, 33866, - -2616, 2451, 15260, 938, 1044, 15260, 1634, 15260, 1943, -2616, - -2616, 1612, -2616, -2616, 48615, 15260, 1636, 3177, 19805, 19805, - 3538, -2616, 4678, 15260, 8695, -2616, 1625, 14755, -2616, 1823, - 1731, 1731, 1731, 1731, -2616, -2616, 42870, 42870, 42870, 24198, - 1969, 22275, 49560, 49560, 1638, -2616, 896, -2616, 49560, 50040, - -2616, 1657, -2616, 548, 15260, 1963, 429, 1500, 1963, 1644, - -2616, -2616, 1646, 465, -2616, -2616, -2616, 1651, -2616, 1520, - -2616, -2616, -2616, 1863, -2616, -2616, -2616, 42870, -2616, -2616, - 15260, 1804, -2616, -2616, -2616, -2616, 1723, -2616, -2616, 809, - 2067, 1804, 835, -2616, 548, 27559, 1557, 15260, 42870, 7174, - 2013, -2616, 51000, 51000, 51000, -2616, 51000, 1667, 1671, 884, - 1673, 982, -2616, 1915, 884, 1998, 181, 1275, 316, 3516, - 443, -2616, -2616, -2616, 1747, 42870, -2616, 51000, -2616, -2616, - -2616, -2616, -2616, 35685, -2616, -2616, -2616, 35205, 28521, 35205, - 42870, 42870, 42870, 42870, 42870, 42870, 42870, 42870, 42870, 42870, - 1677, 1679, 1680, 1625, -2616, -2616, -2616, -2616, -2616, -2616, - 445, -2616, -2616, 156, 1683, 1004, 38565, 1472, 1706, 617, - 50520, 836, 2759, 2138, 1684, 354, 180, -2616, -2616, 574, - 38565, -2616, -2616, -2616, 2103, -2616, -2616, 1004, -2616, 1004, - 33866, 51000, 1744, -2616, 1324, 1688, -2616, -2616, 1324, 48615, - -2616, -2616, 212, -2616, -2616, 860, -2616, -2616, -2616, 51000, - 1685, -2616, 1685, -2616, -2616, 15260, 33866, -2616, 1689, -2616, - 33866, 29490, -2616, 33866, 1939, -2616, 2093, 1505, 1505, 1505, - 827, 2019, 167, 1694, 1505, 1505, 1505, 333, 333, 132, - 132, 132, 2093, 604, 33866, 33866, -2616, -2616, 1695, -2616, - -2616, -2616, -2616, 1697, -2616, 6150, -2616, 1691, 1698, 51000, - -2616, -2616, 303, 15260, 15260, 3880, -2616, 34250, 15260, 48615, - 893, 3880, 237, 15260, 1269, 1669, 15260, 15260, 4702, 29519, - 1701, 15260, 29555, 28039, -2616, 42870, 42870, 42870, 42870, -2616, - -2616, -2616, 49560, 50040, 1700, 21795, 49560, 896, 1702, 42870, - -2616, 1795, 1705, 1795, 23238, 1984, 1922, -2616, 23238, 1922, - 909, 1922, 1985, 1795, 26599, -2616, 1795, 1721, 1925, -2616, - 590, 33866, 2165, 2039, 1726, -2616, 2039, 867, -2616, -2616, - -2616, 29002, -2616, -2616, -2616, 33866, 11220, -2616, 1004, 548, - 1328, 51000, -30, -2616, 1741, 51000, -2616, 1804, 33866, -2616, - -2616, 51000, 1730, -2616, 1734, 884, -2616, 51000, 1763, -2616, - 374, 2026, 65, -2616, 15260, -2616, 2119, 2200, 1915, 1742, - 51000, 42870, 19805, -2616, 505, 216, -2616, 2015, 42870, 1763, - 2159, -2616, -2616, -2616, 982, -2616, 2054, 1966, -2616, 275, - -2616, 15260, 982, 1970, 314, 51000, -2616, -2616, 2733, -2616, - 48615, 212, 212, -2616, -2616, 1745, 1748, 1752, 1753, 1757, - 1758, 1760, 1764, 1765, 1769, 1772, 1783, 1785, -2616, 1787, - 1788, 1790, 1791, 1793, 1794, 1797, 1799, 914, 1800, -2616, - 1802, 1651, 1805, 1807, 1809, 1820, 55320, 1821, 1822, 1825, - 1827, 1828, 1829, 359, 363, -2616, -2616, -2616, -2616, -2616, - -2616, 806, 1830, -2616, 1776, -2616, -2616, 1850, -2616, 1854, - -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, 429, 967, - 143, 51000, 1620, 1774, 2234, 486, 2018, 1808, 1472, -2616, - 811, 38565, 1620, -2616, 2193, 215, 1803, -2616, 199, 1844, - -2616, 2017, 51000, 1834, -2616, -2616, -2616, -2616, 36645, 1685, - 33866, -2616, -2616, -2616, 19805, 2153, 1837, 48615, -2616, -2616, - 15260, -2616, -2616, 3880, 3880, 34250, 908, -2616, 3880, 15260, - 15260, 3880, 3880, 15260, -2616, -2616, 29584, -2616, 56250, -2616, - -2616, -2616, -2616, -2616, -2616, -2616, -2616, 36165, 49560, 1838, - 42390, -2616, -2616, 42870, -2616, 896, 23238, -2616, -2616, 1740, - -2616, 23238, 2117, -2616, 23238, -2616, 42870, 1846, -2616, 42870, - -2616, 10715, 15260, 1883, 867, 1883, -2616, 1847, 1845, -2616, - -39, -2616, -2616, 2258, 24678, 2217, 15260, -2616, -2616, 884, - -2616, 2016, 1763, 1856, -2616, -2616, -2616, -2616, -2616, -2616, - 29682, -2616, 53, 15260, -2616, 1173, 827, -2616, -2616, -2616, - -2616, 1763, 780, -2616, 42870, 2315, 2207, -2616, -2616, 33866, - -2616, -2616, 1806, 1806, -2616, -2616, 2285, -2616, -2616, -2616, - -2616, 806, 584, 28521, 42870, 42870, 1864, -2616, -2616, 445, - 2241, 912, -2616, 574, 1004, 42870, 2214, 38565, 2330, 42870, - 1620, 1869, -2616, -2616, 1047, 1047, -2616, 2014, -2616, 2020, - 226, -2616, 42870, -2616, -2616, 24678, -2616, 2237, 19805, 48615, - 917, -2616, -2616, 3880, 3880, 3880, -2616, 2068, -2616, -2616, - 934, 2335, -2616, 42870, -40, -17, 1877, 1878, -2616, -2616, - 1882, -2616, 15260, 1886, -2616, -2616, 23238, 1740, 944, -2616, - 48615, 42870, 954, 48615, -2616, 1887, -102, 1889, -2616, 8190, - 1890, -2616, -2616, -2616, -2616, -2616, -2616, 33866, 33866, 51000, - 2060, -2616, 2060, -2616, 11220, 1944, 42870, 15260, 2314, 63, - -2616, 955, 2, 33866, 42870, -2616, 35205, -2616, 884, -79, - 1895, 15260, 29912, 2118, -2616, -2616, 2148, -2616, 2208, -2616, - 51000, 1958, 618, 1972, -2616, -2616, -2616, -2616, 967, 867, - 1472, 1803, 1844, 1902, 42870, 1004, 354, -2616, 574, -2616, - -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, - -2616, 2334, 2115, 2337, 1744, 961, 2237, 972, -2616, 2351, - 1625, 1657, 36165, 1910, -2616, 1912, -2616, -2616, -2616, -2616, - -2616, 51000, 705, -2616, 33866, 42870, -2616, -2616, -2616, 42870, - 2285, 974, -2616, 15260, 1914, 15260, -2616, 17785, 1908, -2616, - 2377, 15260, 1976, 1976, 1004, -2616, 30016, 51000, 51000, 51000, - 1544, 24678, -2616, 2042, 780, 884, 995, -2616, 1931, -2616, - -2616, -2616, -2616, 2759, -2616, 30078, 2154, 134, 2136, 1895, - -2616, 15260, -2616, 1997, -2616, -2616, -2616, 2391, -2616, -2616, - 38565, 1933, 1844, 1620, 1803, 2146, -2616, 2147, 1946, 1472, - -2616, 15260, 22, -2616, -2616, 42870, -2616, 1015, 1938, 1947, - -2616, -2616, -2616, 1949, 17785, 1951, -2616, 51000, 1953, 33866, - 2083, -2616, -2616, -2616, 2314, -2616, -2616, 300, 300, -2616, - -2616, 27559, 2148, -2616, 35205, 28521, 1768, -79, 2251, -2616, - -2616, -2616, -2616, 146, 2168, -2616, 2172, -2616, 33866, -2616, - 1004, 38565, -2616, -2616, -2616, -2616, -2616, 24678, 1544, 1462, - 18290, 18290, 1960, 1026, -2616, 2452, 2121, -2616, -2616, 1962, - -2616, -2616, -2616, 42390, 51000, 1520, 1520, 1544, 2136, -2616, - -2616, -2616, -2616, -2616, 133, 133, 2343, -2616, 2030, -2616, - 1844, 1049, -2616, 19300, 2113, 253, 33005, -2616, -2616, -2616, - -2616, -2616, 1971, 1973, -2616, -2616, -2616, 300, -2616, -2616, - -2616, -2616, -2616, 2450, -2616, 179, -2616, -2616, -2616, 1472, - 2440, -2616, -2616, -2616, -2616, -2616, -2616, 2468, 1520, 884, - -2616, -2616, -2616, 1544, 18795, 1978, -2616, -2616, -2616, -2616 + -2533, -2533, -2533, 1853, 64, -2533, -2533, -2533, -2533, -553, + 525, -2399, -2533, 468, -2533, -2533, -2533, -2533, -114, -1780, + -2533, 80, -2533, -2533, 85, 8, 1267, -35, 3, 17, + 23, 61, 1476, 1506, -2533, -1437, 782, -2533, -2533, -1822, + -623, -31, -2533, 658, -1430, -1788, -515, 998, 1473, 1479, + -399, -418, -2533, -537, -2533, -1340, -2533, -2533, 653, 1038, + -1337, -1326, -2533, 346, -2533, -464, -396, -2533, -2533, -2533, + -2533, -2533, 94, -299, -501, 1022, -2533, 1482, -2533, -2533, + -2533, -2533, -1744, -1298, -2533, 652, -2072, 374, -1991, -1893, + 129, 117, -919, -268, 21, 381, -358, -2533, -2533, -356, + -1775, -2452, -373, -372, -2533, -2533, -2533, -477, -1185, -721, + -2533, -2533, 181, 296, -2533, -2533, -2533, 888, 1412, -2533, + -2533, 2372, 2548, -2533, -581, 2562, -154, -714, 1185, -1068, + 1189, -1083, -1077, -740, 1191, 1192, -1309, 3557, -1631, -867, + 0, -2533, -1837, -1618, -2533, -2533, -2533, -134, -2533, -445, + -2533, -440, -2533, -2533, -2533, -488, -2182, -2533, 1116, 802, + -2533, -2533, -2533, -1312, -2533, 4064, 707, -2533, -1724, -945, + -601, -929, -806, -1074, -1214, -2533, -2533, -2533, -2533, -2533, + -2533, -1728, -1785, -487, 761, -2533, -2533, 874, -2533, -2533, + -2533, -621, 976, -586, -914, 767, -2533, 118, 1951, -1399, + -2533, 735, -1994, -2533, -2533, 396, -2533, 1554, -481, -996, + 449, -1069, 6, -2533, -685, 179, 1899, 1760, -2174, -2533, + -2533, -498, -2274, -987, -2533, -655, -2533, 87, 88, -2325, + -1440, 89, -2533, 932, 90, -654, -1043, -844, -1058, -2533, + 66, 91, 5, -1846, -2486, -382, -2533, -484, -2533, -137, + -2533, -435, -2533, -367, -443, -474, -2355, -1005, -2533, 1519, + -177, -2533, 680, -2533, -2176, -2533, -2533, 666, -2533, -1022, + -2533, -1896, 294, -423, -2228, -2188, -1849, -670, 358, -430, + 333, -1816, -671, -2533, 692, -2533, -416, -2533, -656, -1584, + 92, -2208, 93, 616, -2533, -2533, -455, -2533, -486, -483, + -2533, -2533, 27, -855, 1275, -2533, 95, -2533, -2533, 1286, + -751, -2533, 1340, 97, 98, -2533, -2533, 365, -2533, 1052, + -2533, 353, -603, 695, -2533, 99, 1074, 100, -984, 101, + -2533, 765, 103, 1152, -2533, -2533, -2533, 10, -2533, -272, + -2533, -2533, -2191, -2533, -2533, -2533, 11, 1562, 408, -2533, + 13, -2532, 108, 672, -2533, 953, -2533, 673, 110, 112, + 63, 14, 339, 114, -2533, -2533, 115, 33, 36, -2533, + -2533, -2533, -2533, 168, 412, -2533, -306, -1952, -54, -2533, + -2531, -2331, -2533, -2533, -371, -2459, -1793, 1169, -6, -2533, + -2533, -2533, -526, -2533, -2173 }; -/* YYPGOTO[NTERM-NUM]. */ -static const yytype_int16 yypgoto[] = + /* YYDEFGOTO[NTERM-NUM]. */ +static const yytype_int16 yydefgoto[] = { - -2616, -2616, -2616, 1849, 84, -2616, -2616, 85, -2407, -1437, - 90, 92, 523, -2616, 93, -2616, -2616, 264, -2616, 962, - -2616, 254, -580, 594, -2616, 97, 29, 1451, 294, -2616, - 8, -1832, -2462, -447, -2616, -552, -2616, -200, -2616, -501, - -2616, -718, -509, -540, -2447, -998, -2616, 1456, -244, -2616, - 620, -2616, -2176, -2616, -2616, 605, -2616, -1002, -2616, -1791, - 227, -488, -2196, -2187, -1850, -661, 296, -493, 276, -1796, - -999, -2616, 632, -2616, -477, -2616, -642, -1549, 101, -653, - -1044, -846, -1055, -2616, 23, 102, 1066, 113, -990, 114, - -2177, 116, 663, -2616, 864, -2616, 731, 120, 121, -2616, - 694, 123, -2616, -2616, 9, -2616, -356, -2616, -2616, -2221, - -2616, -2616, -429, -2616, -483, -480, -2616, -2616, 31, -847, - 1223, -2616, 124, -2616, -2616, 1234, -719, -2616, 1284, 11, - -2575, 14, 256, 125, 86, 126, -2616, 920, 127, 1084, - -2616, -2616, -2616, 32, 128, -2616, -2616, -2616, -2616, -436, - 577, -2310, -2616, 522, -2616, -2616, -2616, -2616, -59, 280, - -2616, -2616, -2616, 10, 960, -35, -16, -10, 28, 61, - 1538, 1563, -2616, -1322, 683, -2616, -2616, -1848, -630, -51, - -2616, 715, -1427, -1790, -506, 1055, 1519, 1523, -341, -360, - -2616, -479, -2616, -1512, -2616, -2616, 710, 1091, -1313, -1307, - -2616, 399, -2616, -416, -348, -2616, -2616, -2616, -2616, -2616, - 147, -252, -498, 1073, -2616, 1529, -2616, -2616, -2616, -2616, - -1758, -1296, -2616, 702, -2046, 425, -2001, -1867, 175, 157, - -1179, -218, 18, 431, -311, -2616, -2616, -309, -1777, -2441, - -319, -316, -2616, -2616, -2616, -512, -1178, -727, -2616, -2616, - 308, 1909, -2616, -2616, -2616, 2066, 2236, -2616, -2616, 2349, - 3285, -2616, -568, 3310, 1602, -701, 1239, -1049, 1243, -1062, - -1068, -773, 1246, 1249, -1304, 3871, -1638, -875, 6, -2616, - -1761, -1743, -2616, -2616, -2616, -78, -2616, -391, -2616, -385, - -2616, -2616, -2616, -426, -2175, -2616, 1179, 865, -2616, -2616, - -2616, -1309, -2616, 4671, 774, -2616, -1704, -940, -620, -907, - -795, -1053, -1217, -2616, -2616, -2616, -2616, -2616, -2616, -1696, - -1779, -454, 824, -2616, -2616, 940, -2616, -2616, -2616, -629, - 1042, -591, -902, 833, -2616, 173, 2010, -1387, -2616, 798, - -1984, -2616, -2616, 462, -2616, 2413, -478, -992, 71, -1064, - 27, -2616, 3528, -1, 1840, 2393, -2181, -2616, -2616, -496, - -2273, -962, -2616, -659, -2616, 129, 130, 1100, 56, -2616, - -2616, -2616, -2616, 182, 420, -2616, -305, -1943, -50, -2616, - -2514, -2615, -2616, -2616, -369, -2503, -1771, 131, -6, -2616, - -2616, -2616, -528, -2616, -2180 + -1, 37, 38, 39, 547, 1959, 2731, 2306, 2732, 2028, + 1953, 1323, 2024, 1642, 1576, 1324, 495, 1656, 2307, 669, + 1643, 548, 593, 594, 549, 550, 956, 45, 46, 47, + 613, 625, 626, 1429, 1813, 2141, 1022, 600, 601, 1947, + 637, 1566, 1462, 1463, 1833, 2169, 1489, 1490, 1031, 1032, + 2778, 2983, 2779, 2780, 2643, 2644, 3066, 1477, 1481, 1482, + 1853, 1843, 1468, 2425, 2802, 2803, 2804, 2805, 2806, 2807, + 2808, 957, 2665, 2914, 1485, 1486, 1034, 1035, 1036, 1494, + 1863, 49, 50, 1816, 2149, 2150, 2151, 2152, 2402, 2403, + 2418, 2414, 2650, 2786, 2153, 2154, 2771, 2772, 2886, 2421, + 2160, 2790, 2791, 2843, 1618, 756, 1894, 1330, 1263, 758, + 958, 759, 1243, 959, 1247, 761, 960, 961, 962, 764, + 963, 964, 965, 767, 1239, 966, 967, 1258, 1282, 1283, + 1284, 1285, 1286, 1287, 1288, 1289, 1290, 1009, 1715, 969, + 970, 971, 2156, 972, 1423, 1802, 2134, 2812, 2910, 2911, + 2386, 2631, 2769, 2882, 3024, 3059, 3060, 973, 974, 1371, + 1372, 1373, 1799, 1418, 1419, 975, 2547, 1421, 1708, 1010, + 1730, 1367, 1126, 1127, 1331, 1687, 1688, 1711, 2057, 1718, + 1723, 2085, 2086, 1731, 1767, 976, 1671, 1672, 2043, 1340, + 977, 665, 1133, 666, 1336, 1761, 986, 978, 979, 980, + 1364, 1365, 2100, 2359, 2360, 1736, 1859, 617, 1455, 2782, + 779, 1208, 981, 982, 983, 984, 1012, 619, 1128, 487, + 770, 2988, 1221, 1016, 1129, 1905, 1757, 551, 552, 2287, + 1228, 553, 54, 607, 554, 1592, 1547, 1325, 1075, 1537, + 1316, 555, 556, 2214, 2551, 2936, 2238, 3078, 2483, 2484, + 2933, 2934, 2217, 1906, 3006, 3007, 2284, 1529, 3001, 1973, + 2869, 1912, 1893, 2485, 1981, 2829, 2584, 1907, 2465, 1974, + 2929, 1603, 1975, 2930, 2686, 1976, 1573, 1596, 2218, 3008, + 1913, 1574, 2213, 2552, 1517, 1977, 2940, 1978, 505, 2469, + 557, 783, 558, 1219, 1583, 60, 649, 1317, 559, 1318, + 1319, 870, 61, 1326, 872, 873, 561, 540, 541, 776, + 1295, 542, 771, 562, 563, 2225, 2226, 2227, 1908, 1056, + 2944, 1909, 1057, 1058, 2229, 564, 86, 565, 1520, 566, + 883, 1663, 567, 1005, 622, 1006, 1008, 568, 2756, 2595, + 1232, 1604, 1985, 506, 70, 71, 569, 1046, 2186, 1868, + 570, 2753, 571, 608, 609, 1327, 1442, 1328, 572, 573, + 586, 574, 1593, 575, 688, 1600, 576, 577, 578, 1874, + 1502, 2677, 82, 2193, 1878, 2196, 2822, 2439, 2191, 2197, + 2920, 2989, 2194, 1879, 1880, 2823, 1881, 83, 517, 489, + 490, 773, 1211, 1131, 1212 }; -/* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If - positive, shift that token. If negative, reduce the rule which - number is the opposite. If zero, do what YYDEFACT says. - If YYTABLE_NINF, syntax error. */ -#define YYTABLE_NINF -1845 + /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If + positive, shift that token. If negative, reduce the rule whose + number is the opposite. If YYTABLE_NINF, syntax error. */ static const yytype_int16 yytable[] = { - 488, 629, 1006, 1070, 1204, 676, 1211, 1365, 47, 57, - 71, 61, 484, 1249, 62, 1546, 1035, 870, 1451, 584, - 584, 1313, 1308, 644, 1545, 753, 994, 1604, 76, 46, - 1212, 1829, 67, 485, 1832, 1801, 1208, 2158, 1702, 2165, - 612, 1510, 2170, 771, 76, 1255, 2574, 564, 1371, 615, - 1521, 1293, 2143, 1453, 1296, 1517, 81, 2551, 2553, 2214, - 646, 779, 773, 1557, 1419, 864, 647, 2152, 2116, 2054, - 2055, 1608, 1740, 1741, 2075, 638, 1069, 1427, 1075, 2573, - 1079, 1324, 513, 1550, 40, 41, 543, 2250, 2251, 2252, - 42, 2207, 43, 44, 588, 2397, 627, 45, 2582, 2193, - 2262, 48, 49, 2586, 2143, 626, 626, 586, 658, 2356, - -851, 492, -859, 51, 52, -1233, 53, 2103, 2104, 2152, - 54, 55, -576, 56, 60, 63, 64, 66, 68, 79, - 80, 83, 1235, 1236, 1814, 871, 1956, 1028, 2917, 2746, - -1208, 1434, 2403, 2057, -1676, 1031, 887, 2058, 2415, -1685, - -856, 1582, 1481, -859, -856, -1693, 1256, 1299, 582, 654, - -1233, 582, 887, 1247, 1850, 2732, 988, 2271, -1230, -1230, - -579, 1256, 1853, -1669, -1234, 2742, 2215, -1670, 1256, -1671, - 1754, -1816, -1816, 1754, 2688, -1817, -1817, -1818, -1818, -1672, - 1775, -1673, 1966, 3072, -1676, -1669, -1685, -1819, -1819, -1820, - -1820, -1691, -1823, -1823, -1832, -1832, -1670, -1671, 619, -1838, - -1838, 1530, -1693, -1672, 1533, 1534, 2036, -576, 2792, -1695, - -1840, -1840, -1842, -1842, -1673, -818, 1513, -1843, -1843, -1081, - 649, 2310, 2312, 995, 1255, 1513, -1081, 1548, 1431, 1302, - 582, -1234, 2830, -831, 887, -1691, 2242, 1229, 2443, -1231, - -1231, 689, 2875, 1791, -1695, -846, 582, 2673, 579, 2727, - 1792, 2844, 2281, 3, 4, -579, -1101, -534, 3044, 2886, - 582, 1952, 1256, -1101, 1678, 2922, 2904, 2949, 2722, 1302, - 1677, 2413, 641, 2703, 887, 641, 1555, 2871, 2216, 2583, - 1380, 1230, 2888, 1675, 1381, 2872, 3091, 1556, 2485, 2605, - 886, 2346, 597, 2057, 2988, 2919, 3000, 2058, 2424, 87, - 2059, 2060, 2061, 1024, 1380, 2331, 1776, 2929, 650, 1572, - -280, 2747, 1389, 887, 84, -280, 1361, 1235, 1236, 1529, - 1601, 2210, 1777, 2857, 1463, 2699, 2748, 1778, 1502, 1826, - 870, 2889, 578, 1380, 2057, 1798, 2322, 870, 2058, 1018, - 2901, 3020, 1432, 1247, 1391, 2721, 2324, 2738, 2645, 1250, - 1372, -792, 2649, 1633, 2744, 1208, 2184, 1635, 887, 85, - 2486, 1856, 887, 2455, 1779, 1389, 2930, 3012, 1391, 2432, - 3021, 1251, 1380, 2396, 581, 2347, 1381, 1026, 1316, 1429, - 639, 1573, 2415, 622, 2741, 2403, 2152, -703, 2152, 580, - 996, 2185, 997, 3073, 2948, 598, 2207, 1391, 2207, -576, - 26, 1717, 989, 2745, 1389, 2456, 1429, 1494, 3082, 3067, - 2326, 2327, 2328, 2329, 2330, 1664, 1827, 2334, 2335, 2336, - 2337, 2338, 2339, 2340, 2341, 2342, 2343, 1505, 1574, 3001, - 1464, 2923, 1046, -1813, -1813, 1257, 1391, 31, 2842, 2606, - 2584, 722, 1019, 2487, 2887, 2332, 3092, -579, 640, 630, - 1257, 870, 870, 1702, 2873, 2333, 1231, 1257, 2211, 2674, - 3034, 88, -576, 1433, 1711, 3078, 1520, 2890, 1857, 89, - 2374, 2375, 3074, 990, 2137, 2138, 2825, 1799, 33, 2062, - 632, 1560, 1559, 2700, 2685, 1654, 881, 2217, -792, 2218, - 2591, 1881, 34, 666, 2678, 2835, 1939, 3014, 2689, 3075, - 629, 2063, 2160, 2599, 3051, 90, 3002, 1953, 2749, 1962, - -579, 1780, 2168, 1850, 3023, 2635, 35, 2219, 2273, 1492, - 2173, 767, 1546, 3040, 1665, 620, 641, 1493, 2945, 869, - 36, 1755, 2551, 2553, 2118, 2603, 3013, 651, 690, 2258, - 2259, 631, 2831, 2006, 2008, 1233, 1204, 2851, 493, 2005, - 662, 1257, 91, 1593, 663, 648, 1549, 2686, 3083, 1679, - 1250, 2004, 76, 1232, 1446, 2243, 866, 872, 2196, 584, - 874, 2064, 686, -576, 2728, 3045, -1081, 875, 1522, 1507, - 1839, 672, 1251, 488, 488, 1036, 1338, 646, 876, 1258, - 2781, 1939, 985, 647, -851, 2785, 1252, 2262, 2787, -1233, - 1793, 1250, 776, 684, 1292, 2057, 488, 1361, 2679, 2058, - 1940, 1295, -576, -1101, -576, 2697, 2761, 2073, 2429, 2947, - 1812, -579, 662, 1251, -1208, 2000, 663, 2772, -1676, 47, - 57, 71, 61, -1685, -856, 62, 2143, 1254, 2026, -1693, - 2143, 999, 1375, 2027, -1233, 1125, 488, 1205, 1639, 76, - 46, 2152, 661, 67, 1886, 2152, 873, -1669, -1234, 1041, - -579, -1670, -579, -1671, 2677, 687, 642, 1605, 1606, 2953, - 1535, 998, 2954, -1672, 1008, -1673, 1916, 81, -1676, -1669, - -1685, 691, 2171, 2430, 626, -1691, 1919, 887, 2698, 1922, - -1670, -1671, 1663, 1508, 2028, 1584, -1693, -1672, 1354, 2774, - 1662, 688, 1361, -1695, 2775, 40, 41, 1669, -1673, 1237, - 2726, 42, 1887, 43, 44, 1306, 1307, 2667, 45, 1751, - 1715, 753, 48, 49, 767, -1234, 2092, 1241, 3018, -1691, - 2896, 1702, 1663, 1208, 51, 52, 1613, 53, -1695, -846, - 1425, 54, 55, 1738, 56, 60, 63, 64, 66, 68, - 79, 80, 83, 2573, 1815, 1306, 1307, 1466, 668, 1204, - 669, 488, 1372, 870, 1412, 2731, 1941, 1540, 2065, 2066, - 2067, 1523, 2068, 2069, 2070, 2071, 2072, 2073, 1245, 1246, - 1663, 2218, 2020, 2019, 495, 771, 1625, 2361, 1663, 1982, - 1208, 1541, 1629, 692, 2712, 2713, -280, -280, 2385, 2386, - 2387, 2388, 2294, 1467, 2551, 2553, 1626, 1631, 2298, 2498, - 1572, 864, 1536, 693, 2741, 2070, 2071, 2072, 2073, 1522, - 1537, 2096, 1711, 1711, 2696, 886, 1466, 1711, 2057, 1332, - 26, 36, 2058, 1520, 1886, 2059, 2060, 2061, 2007, 2009, - 2010, 1043, 2828, 777, 1024, 496, 2161, 1044, 3093, 1365, - 1546, 1908, 869, 1409, 1410, 1411, 1412, 1315, 1742, 869, - 1125, 767, 582, 1468, 1315, 1915, 2771, 31, 3080, 1513, - 1711, 1711, 1467, 1043, 1989, 2253, 877, 488, 2143, 1044, - 1514, 2644, 2735, 2143, 2152, 1757, 2143, 2370, 1513, 76, - 1522, 2655, 2204, 2152, 2658, 2011, 1540, 2012, 2152, 1516, - 2014, 2152, 629, 2818, 1522, 2108, 488, 1300, 33, 3098, - 1301, 1878, 1469, 879, 1204, 1935, 1936, 1937, 1026, 2168, - 1541, 2152, 1763, 2244, 1961, 2705, 488, 488, 488, 1574, - 488, 488, 2109, 2710, 594, 880, 886, 1544, 1914, 2057, - 611, 1444, 1374, 2058, 1445, 1522, 2059, 2060, 2061, 1764, - 72, 1377, 2739, 1045, 488, 1522, 2757, 1925, 1653, 2194, - 36, 1654, 1932, 2363, 1522, 1426, 72, 1027, 2282, 1250, - 1986, 2286, 1470, 869, 869, 637, 1437, 882, 1315, 1315, - 72, 1469, 2405, 2925, 2818, 1045, 628, 670, 881, 671, - 1890, 1251, 1380, 2459, 1455, 1456, 1381, 1462, 1250, 987, - 647, 647, 2152, 647, 2465, 1252, 488, 993, 1551, 1239, - 488, 488, 1523, 1272, 1273, 72, 1002, 499, 2143, 500, - 1251, 488, 1554, 1043, 1389, 1976, 645, 1977, 2466, 1044, - 2238, 1248, 1917, 2152, 1254, 662, 2063, 1920, 495, 663, - 767, 1470, 886, 2239, 503, 2057, 1041, 662, 1009, 2058, - 2110, 1428, 2059, 2060, 2061, 2111, 1391, 2130, 2406, 2131, - 679, -382, 1765, 2241, 1290, 1125, 2859, 1766, 2843, 2364, - 626, 2406, 1767, 2245, 1520, 1583, 1125, 662, 2460, -1208, - 1547, 663, 2249, 1523, 2068, 2069, 2070, 2071, 2072, 2073, - 1010, 2086, 2407, 1998, 1016, 92, 680, 1523, 491, 496, - 1125, 870, 2943, 1012, 542, 2407, 2064, 1046, 2408, 1583, - 2876, 2771, 1702, 1655, 870, 596, 1656, 2860, 2409, 609, - 1013, 2651, 1024, 1276, 1277, 1949, 2861, 1025, 1950, 2152, - 2106, 2409, 2270, 2989, 2032, 1045, 1017, 1990, 1523, 1046, - 1656, 1022, 2616, 1365, 2461, 1520, 2462, 2063, 1523, 2132, - 2818, 2133, 2410, 1960, 2497, 2862, 1037, 1523, 1047, 1520, - 1043, 2304, 1048, 1038, 2489, 2226, 1044, 2228, 2152, 2229, - 26, 2231, 2156, 1711, 1711, 1711, 1711, 1711, 1042, 682, - 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, - 1073, 2453, 1049, 2452, 1048, 2454, 1026, 2112, 2025, 1205, - 1520, 767, 2029, 1039, 2030, 1239, 2569, 31, 2113, 2488, - 1520, 2496, 1578, 1579, 1768, 1580, 1055, 2064, 1581, 1520, - 2650, 488, 2653, 1248, 1074, 1769, 2863, 767, 767, 3089, - 1054, 3052, 2469, 1711, 1711, 3068, 3069, 1996, 2864, 2411, - 1997, 2015, 767, 1043, 2016, 1027, 2818, 1072, 33, 1044, - 3070, 1076, 2411, 2063, 983, 984, 2085, 986, 2087, 2088, - 1050, 1209, 34, 2232, 2152, 2236, 2233, 886, 2237, 1210, - 2057, 499, 1045, 500, 2058, 2439, 1213, 2059, 2060, 2061, - 2472, -1811, -1811, 2296, 2297, 869, 35, 2267, 3096, 1046, - -1812, -1812, 1050, 2288, 2619, 502, 1654, 1215, 503, 2440, - 36, 1205, 2441, 2065, 2066, 2067, 3097, 2068, 2069, 2070, - 2071, 2072, 2073, 1021, 488, 1023, 488, 1217, 76, 1218, - 488, 488, 866, 2064, 1226, 2444, 2578, 1660, 2445, 1950, - 488, 1684, 488, 488, 488, 488, 488, 488, 488, 677, - 1077, -1814, -1814, 1228, 1048, 76, 1657, 1639, 1237, 1659, - 2597, -1815, -1815, 2598, 1865, 1045, 1627, 488, 1628, 488, - -1821, -1821, 1233, 26, 767, 488, 488, 488, 488, 488, - 488, 488, 1205, 1661, 1078, 1240, 488, 488, 1043, 1241, - 2760, 488, 2547, 2617, 1044, 488, 1656, 1243, 488, 488, - 488, 488, 488, 488, 488, 488, 488, 1261, 2762, 488, - 31, 1656, 2850, 1244, 2168, 1950, 488, 2878, -625, 1125, - 1656, 678, 1205, -625, 2065, 2066, 2067, 1801, 2068, 2069, - 2070, 2071, 2072, 2073, 2881, 1816, 1046, 2882, 1260, 2865, - 1263, 488, 2866, 2497, 2898, 2833, 1291, 2899, 1294, 2680, - 2476, 33, 1050, 72, 2902, 2920, 1297, 2899, 2921, 488, - 1327, 2959, 1298, 1890, 2921, 34, 1317, 1663, 1328, 2352, - 488, 488, 2960, -822, 2972, 1656, 999, 2899, -1822, -1822, - -588, 1407, 1408, 1409, 1410, 1411, 1412, 1877, 2063, 35, - 870, 1048, -625, 2477, -588, 2993, 1851, 1852, 2994, -588, - 1045, -1824, -1824, 36, 72, 628, 767, 1868, 1330, 2478, - 679, -829, 1205, 886, 1205, 3024, 2057, 2302, 3025, 1046, - 2058, 1049, 1336, -1845, -1845, -1845, 3061, 2318, 1337, 2899, - 2065, 2066, 2067, 1338, 2068, 2069, 2070, 2071, 2072, 2073, - 1339, -625, 2877, 1266, 1267, 2325, 680, 1866, -588, 3079, - -1825, -1825, 2921, 1125, -1826, -1826, 488, 488, 2064, 488, - 3035, 3036, 2420, -1827, -1827, 1663, -1828, -1828, -588, 1340, - 1923, 36, 2348, 645, 1048, 1882, 1342, 1205, 1908, 2353, - 2554, -703, 681, 2596, -704, 1891, -819, 1894, 1125, 1050, - 1905, 72, -1829, -1829, 488, -820, 1909, 1711, 1911, -823, - 1967, -1830, -1830, 1343, 1924, -1831, -1831, 2479, -821, 767, - 1918, 1344, 1272, 1273, 2480, 1921, 26, -588, 1346, 1926, - 1927, 1928, 1929, 2568, 1933, 1934, -588, 2575, 2670, 682, - 639, 1043, 1347, 869, -1833, -1833, 1348, 1044, 1315, 1349, - 3088, 1350, 2024, 2708, -626, 1688, 869, 1351, 1125, -626, - 767, 1315, 1689, 31, 1046, 1690, 1691, 1692, 1352, 488, - -1834, -1834, -1835, -1835, 488, -1836, -1836, -1837, -1837, -1839, - -1839, 1353, 1050, 1354, 629, -1841, -1841, 886, -1844, -1844, - 2057, 1562, 1563, 1358, 2058, 2848, 2168, 2059, 2060, 2061, - 1370, -677, -677, 1373, 33, 1274, 1275, 26, 640, -681, - -681, 488, 488, 488, 2620, 1930, 488, 1420, 34, 1048, - 1276, 1277, -680, -680, 488, 488, 488, 488, -626, 1422, - 1440, 1442, 1276, 1277, 488, 629, 2548, 1417, 488, 1711, - 1379, 488, 35, 1380, 31, 1423, 1447, 1381, 1438, 1931, - -1845, -1845, -1845, 1045, 1448, 1452, 1867, 1454, 1025, 488, - 488, 2304, 1488, 1027, 488, 2065, 2066, 2067, 1490, 2068, - 2069, 2070, 2071, 2072, 2073, 1389, -588, -626, 488, 1498, - 1518, 488, 1390, 488, 1520, 33, 641, 1519, 1525, 1526, - 1531, 2885, 2717, 2718, 1538, 1527, 1539, 2595, 1543, 34, - 1553, 1208, 1558, 488, 2064, 1566, 1565, 1391, 1570, 2885, - 1575, 1576, 1583, 1586, 488, 1589, 1056, 1050, 1590, 1249, - 1663, 1591, 1594, 35, 1600, 887, 2150, 1607, 1609, 1610, - 1616, 1617, 1620, 1621, 488, 1057, 1630, 36, 1622, 1623, - 662, 72, 629, 1012, 663, 1660, 2405, 485, 1652, 488, - 488, 1665, 1670, 1380, 1730, 1732, 486, 1737, 1734, 1333, - 1760, 514, 1735, 76, 1657, 514, 488, 1659, 1736, 1365, - 585, 585, 587, 514, 595, 1753, 1771, 595, 2150, 1341, - 595, 617, 1774, 488, 514, 514, 1058, 2547, 1772, 1795, - 1796, 1661, 1810, 1711, 1823, 1817, 1824, 1825, 2063, 485, - 640, 1205, 1205, 1205, 1627, 1830, 1840, 1046, 1392, 1842, - 1841, 1845, 2235, 2969, 1843, 595, 1844, 1363, 1861, 1864, - 1883, 1862, 2406, 1879, 1393, 1884, 642, 1885, 641, 1394, - 1951, 1947, 1963, 1964, 1955, 1965, 2167, 617, 514, 617, - 617, 617, 1125, 1979, 1983, 1984, 1987, 1985, 1988, 1991, - 1992, 1546, 1993, 1994, 1995, 2002, 2407, 2261, 2003, 2022, - 2034, 2013, 1048, 2033, 2040, 2045, 1397, 2042, 2064, 2043, - 2107, 2044, 2408, 2046, 2047, 2082, 2049, 1059, 2050, 767, - 2128, 2102, 2409, 2053, 2694, 2076, 2114, 488, 2077, 2083, - 645, 645, 1049, 645, 2469, 2090, 2100, 2123, 2716, 2124, - 2470, -1845, -1845, -1845, 2126, 2068, 2069, 2070, 2071, 2072, - 2073, 2127, 2154, 2471, 2163, -682, 2410, -683, 2174, 2178, - 1205, 1400, 869, 2175, 2177, 2180, 2183, 1315, 1060, 2190, - 2197, 3019, 2307, 2200, 2308, 2195, 1061, 2782, 2313, 2314, - 488, 2198, 2472, 767, 2473, 2202, 2203, 2275, 1062, 488, - 2225, 2836, 488, 2206, 2227, 488, 2240, 2246, 2247, 2248, - 1050, 767, 488, 488, 488, 488, 488, 2254, 629, 488, - 488, 488, 488, 488, 488, 488, 488, 488, 488, 1063, - 870, 2255, 488, 488, 2257, 2380, 488, 2256, 767, 2265, - 2269, 2276, 2266, 488, 2279, 767, 2283, 488, 2280, 629, - 2284, 2287, 2291, 2411, 2309, 2317, 488, 2300, 2293, 488, - 2079, 488, 2301, 1402, 2057, 2078, 629, 1640, 767, 488, - 2349, 2369, 488, 488, 2368, 2350, 1065, 488, 488, 2474, - 2383, 488, 2351, 1693, 1694, 1695, 2354, 1696, 1697, 1698, - 1699, 1700, 1701, 488, 2366, 488, 2372, 2135, 1066, 765, - 2394, 2404, 2418, 2422, 2427, 2150, 2428, 2150, 488, 2547, - 2431, 2433, 1641, 2442, 2436, 2065, 2066, 2067, 1068, 2068, - 2069, 2070, 2071, 2072, 2073, 2451, 485, 2928, 485, 2438, - 2457, 2458, 2464, 2484, 488, 2500, 2580, 2565, 1642, 2566, - 2567, 2783, 2571, 2581, 2588, 2592, 2594, 2475, 1950, 2601, - 2604, 488, 2476, 2607, 2610, 2608, 1643, 2609, 2611, 2637, - 1644, 2625, 2638, 2640, 2643, 1403, 2646, 2654, -1845, -1845, - -1845, 2548, 1407, 1408, 1409, 1410, 1411, 1412, 2647, 2660, - 2659, 2661, 1645, 2662, 2683, 1646, 2664, 1205, 2687, 2676, - 2681, 1205, 2552, 1205, 2682, 2477, 2691, 2550, 2692, 2701, - 1647, 2693, 2704, 2707, 2706, 886, -1230, 2711, 2057, -1811, - 2962, 2478, 2058, -1812, -1813, 2059, 2060, 2061, -1814, -1815, - 72, -1816, 2261, 2992, 2723, -1817, -1818, 2724, 3041, 2449, - -1819, 2725, 2734, -1820, 2733, 2572, 1578, 1579, 2900, 1580, - 2996, 2900, 1581, 2973, -1821, 2975, -1822, 72, -1824, -1825, - 2736, -1826, -1827, 767, -1828, -1829, 2501, 2589, -1830, 2590, - -1831, -1833, 2743, -1834, 2752, 2750, -1835, 2737, -1836, 488, - -1837, 2555, 2556, 2557, 2558, 2559, 2560, 2561, 2562, 2563, - 2564, -1838, -1839, -1840, 2758, 1673, -1841, 582, -1842, -1843, - -1844, -1231, 1648, 2755, 617, 2928, 2759, 2773, 674, 2786, - 1649, 675, 765, 2809, 2940, 2791, 2816, 2813, 2814, 2479, - 2822, 514, 2824, 2838, 1761, 2826, 2480, 488, 488, 2839, - 2840, 495, 488, 767, 2847, 2849, 2854, 488, 2855, 2858, - 488, 488, 2869, 2883, 2879, 488, 2891, 2892, 2870, 675, - 514, 514, 2893, 1650, -382, 2895, 2903, 2911, 2905, 2917, - 2914, 1264, 1265, 2907, 2933, 2700, 2937, 2939, 488, 2941, - 2944, 2950, 488, 2955, 515, 2956, 2957, 2961, 515, 2965, - 2150, 2977, 2966, 2974, 2150, 2978, 515, 2980, 2991, 2995, - 585, 2985, 496, 3003, 2998, 3009, 2666, 515, 515, 3010, - 488, 485, 3011, 1264, 1265, 485, 3015, 3016, 3026, 980, - 980, 595, 595, 3033, 595, 3017, 756, 3027, 2669, 3028, - 2671, 3030, 2628, 3043, 617, 3046, -1845, 72, 488, 3048, - 3060, 3062, 3065, 514, 3063, 3044, 488, 1266, 1267, 3045, - 3081, 3086, 3087, 617, 3090, 3094, 497, 3095, 3099, 765, - 1014, 515, 2268, 2548, 2499, 488, 2223, 2503, 1910, 1495, - 2447, 617, 3007, 3077, 767, 2834, 3042, 3049, 3071, 1509, - 653, 2868, 656, 2230, 660, 2205, 3039, 2587, 2468, 1266, - 1267, 3047, 1820, 2504, 2201, 3038, 2031, 2714, 2958, 2162, - 617, 617, 617, 617, 1632, 1624, 2064, 1603, 2579, 1819, - 2552, 2263, 1268, 1269, 1270, 1271, 1272, 1273, 2303, 2756, - 1274, 1275, 2695, 2570, 1430, 2166, 498, 1449, 1860, 1485, - 72, 2968, 1484, 2982, 3066, 2176, 1837, 2426, 3029, 2976, - 2913, 1489, 1264, 1265, 2179, 1859, 2398, 2652, 2636, 2897, - 2393, 2964, 2963, 2665, 1268, 1269, 1270, 1271, 1272, 1273, - 2970, 1674, 1274, 1275, 2971, 1676, 3031, 2812, 1680, 1436, - 2740, 1681, 869, 3032, 499, 3059, 500, 1315, 488, 1800, - 2098, 767, 2121, 758, 488, 2169, 2037, 1946, 2119, 2668, - 982, 2157, 501, 488, 488, 2446, 2990, 488, 502, 2425, - 2815, 503, 3037, 2672, 0, 0, 0, 0, 0, 0, - 0, 488, 0, 0, 0, 0, 0, 0, 1266, 1267, - 488, 0, 0, 2150, 0, 488, 1276, 1277, 488, 756, - 0, 0, 2150, 0, 0, 488, 488, 2150, 765, 0, - 2150, 0, 0, 2811, 485, 0, 0, 0, 488, 1363, - 488, 0, 0, 485, 0, 0, 0, 0, 485, 0, - 2150, 485, 0, 0, 0, 0, 0, 488, 1276, 1277, + 488, 630, 1216, 1074, 681, 57, 484, 1370, 43, 1209, + 69, 72, 485, 73, 77, 638, 1551, 1037, 1320, 1456, + 875, 1217, 1011, 48, 1254, 1298, 1516, 1301, 1806, 1315, + 1550, 1834, 999, 80, 1837, 1609, 81, 1260, 612, 48, + 1707, 1376, 775, 560, 2163, 1213, 2170, 1562, 1526, 2175, + 2219, 640, 616, 2121, 1076, 1499, 1080, 1424, 1084, 784, + 778, 757, 646, 869, 40, 641, 1522, 2549, 2554, 1613, + 1432, 2148, 1745, 1746, 2399, 1329, 2212, 2588, 2576, 2574, + 41, 2059, 2060, 2198, 587, 42, 2080, 51, 52, 53, + 55, 56, 58, 59, 1555, 62, 628, 63, 64, 65, + 66, 67, 2585, 68, 2358, 876, 2264, 1292, 74, -380, + 75, 659, 76, 2062, 78, 79, 892, 2063, 2255, 2256, + 2257, -372, 1030, 2148, 1240, 1241, -754, -729, -380, 2108, + 2109, -1670, -97, 492, -751, -751, 1033, 1819, 1962, -1817, + -1817, -754, -377, 1855, -1677, -1671, -377, 892, 1441, 2919, + -100, 1587, 2273, -1818, -1818, 1252, 1858, 2405, 583, -1672, + 650, 1870, 1484, 2417, 993, 2690, 1759, -1819, -1819, 1292, + 1759, 3046, 2729, 2263, 1507, 633, 694, -1673, 2041, 620, + 583, 1304, -1674, -1686, 892, -1820, -1820, -1694, 1313, -755, + -1821, -1821, -1670, -1677, -1671, 1313, -1686, 2157, -1692, 584, + 584, -1824, -1824, -1694, -1833, -1833, -1839, -1839, -1672, 2794, + -1673, -1841, -1841, -1674, -339, 2832, 2312, 2314, 1535, -352, + -1696, 1538, 1539, 1518, -755, 1292, 1260, -97, -1844, -1844, + 2746, -602, -752, -752, 1553, 1796, 1000, -50, -602, 2846, + -1843, -1843, 1797, 634, 2445, -100, 1292, -622, 651, 2157, + 2735, 2675, 493, 2705, -622, -1692, -1696, -367, 583, 583, + 2415, 1234, 2280, 2750, 1682, 2924, 3, 4, 635, 635, + 1683, 2701, 2888, 1510, 1945, 2724, 1307, 1957, 1540, 1680, + 1560, 892, 1381, 580, 2215, 1385, 1436, 1307, 583, 1386, + 2921, 1561, 892, 1518, 1026, 1385, 1831, 2487, 2877, 1386, + 2348, 2589, 2906, 2607, 2247, 1235, 1466, 1313, 2431, 1313, + 1313, 3093, 1803, 1606, 1527, 2458, 3084, 1394, 1026, 1240, + 1241, 635, 2951, 1385, 598, 2189, 2931, 1394, -801, 2326, + -313, 2324, 663, -801, 2647, 1255, 664, 1891, 2651, 2426, + 1534, 2903, 663, 2687, 1871, 1252, 1433, 875, 2062, 1396, + 1366, 1891, 2063, 84, 875, 1469, 1020, 1256, 2349, 1396, + 2190, -1812, -1812, 2723, 2457, -1814, -1814, 2747, 1028, 2488, + 1377, 1257, 2062, 2432, 2142, 2143, 2063, 1313, 1213, 579, + 1313, 1313, 2748, 1832, 769, 2932, 2434, 1396, 2113, 2740, + 1321, 2212, 1028, 2212, 2741, 1892, 1293, 2593, 85, 1434, + 1437, 1470, 2398, 1001, 2417, 1002, 2873, 2405, 1669, 2209, + 994, 1722, 1467, 26, 2874, 2114, 2688, 1029, 2860, -97, + 1541, 2216, 3014, -224, 581, 1512, 1434, 599, 1542, 2702, + 1946, 2925, 2328, 2329, 2330, 2331, 2332, -100, 1497, 2336, + 2337, 2338, 2339, 2340, 2341, 2342, 2343, 2344, 2345, 2844, + 31, 2947, 2489, 2608, 1804, 3036, 2827, 2889, 1293, 1021, + 514, 636, 2590, 2676, 544, 1707, 3085, -313, 875, 875, + 582, 3094, 589, 695, 631, 2837, 1525, 652, 1564, 1659, + 1236, 995, -97, 627, 627, 2572, 1886, 1716, 3047, 2691, + 1944, 33, 2376, 2377, 886, 2601, 1670, 2680, 2950, 727, + -100, 2637, 671, 1565, 1855, 34, 621, 1528, 623, 3041, + 1472, 630, 2165, 1385, 1293, 3025, 2178, 1386, 1343, 1967, + 3080, 1438, 1495, 1958, 2173, 2833, 2157, 1760, 2157, 35, + 2276, 2123, 772, 2115, 1551, 1293, 1496, 655, 2116, 1513, + 874, 2605, 2010, 1872, 632, 1394, 667, 668, 2011, 2013, + 1294, 2549, 2554, 1451, 2730, 3074, 2009, 2031, 2853, 1598, + 3053, 1607, 2032, 1554, 2749, 1209, 1238, 1255, 48, 1525, + 1473, 663, 1616, 871, 1617, 664, 2783, 1396, 642, 1622, + 494, 2787, 2201, 2875, 2789, 1944, 1255, 1237, -602, 1256, + 2990, 769, 1798, -97, 488, 488, 1623, 2078, 1250, 1251, + 3015, 1844, 2699, 1257, -622, 2005, 2681, 1684, 1256, 1038, + 2264, -100, 1297, 2033, 648, -372, 640, 488, 2763, 663, + -754, -729, 1259, 664, 1817, -1670, 1639, 1641, 2714, 2715, + 641, 3016, -97, 2248, -97, -754, -377, 57, -1677, -1671, + 43, 1366, 69, 72, 878, 73, 77, 2220, 1004, 2774, + -100, 2956, -100, -1672, 2679, 48, 1130, 488, 1210, 1676, + 1677, 2949, 2148, 1690, 1691, 80, 2148, 1644, 81, 1610, + 1611, -1673, 670, 1045, 1380, 2700, -1674, -1686, 677, 3002, + 2117, -1694, 2955, -755, 1003, 1013, -1670, -1677, -1671, 1300, + -1686, 2118, -1692, 1921, 1861, 662, 40, -1694, 2387, 2388, + 2389, 2390, -1672, 1924, -1673, 3069, 1927, -1674, 1242, 2669, + -1813, -1813, 41, 1246, -1696, 1668, 2898, 42, -755, 51, + 52, 53, 55, 56, 58, 59, 1359, 62, 769, 63, + 64, 65, 66, 67, 1667, 68, 1366, 2097, 1756, 772, + 74, 1674, 75, 1707, 76, 1589, 78, 79, 2728, -1692, + -1696, -367, 1430, 1820, 1720, 1668, 1213, 2733, 877, 2221, + 584, 879, 1311, 1312, 2574, 3075, 1414, 1415, 1416, 1417, + 3020, 757, 496, 1311, 1312, 3022, 488, 1743, 1209, 1417, + 875, 1305, 1377, 990, 1306, 1545, 2744, 689, 2157, 2026, + 1273, 1274, 2157, 1987, 1854, 1854, 2407, 2363, 775, 1630, + 2025, 1862, 2773, 1668, 3023, 1634, 1527, 2333, 1527, 1546, + 2296, 1668, 3003, 1213, -801, -801, 2300, 1628, 1631, 1636, + 2223, 2549, 2554, 869, 2101, 2741, 880, 2073, 2074, 2075, + 2076, 2077, 2078, 497, 760, 2745, 2166, 881, 1439, 2820, + 2830, 1048, 1982, 2698, 3076, 1716, 1716, 1049, 2500, 2461, + 1716, 2845, 1313, 2075, 2076, 2077, 2078, 1994, 1588, 1370, + 692, 1551, 1313, 2471, 1527, 1313, 1518, 874, 2241, 2258, + 1911, 3077, 2408, 3082, 874, 1130, 772, 1519, 2016, 1919, + 2017, 2242, 2890, 2019, 1385, 2012, 2014, 2015, 1527, 3004, + 3095, 1545, 488, 1716, 1716, 682, 1255, 1244, 1762, 48, + 1277, 1278, 2707, 1883, 2148, 2372, 2409, 769, 1747, 2148, + 2712, 2474, 2148, 1051, 3100, 1546, 1394, 630, 1256, 1253, + 2820, 488, 2410, 693, 1549, 1966, 1556, 696, 1255, 2173, + 1920, 2891, 2411, 1209, 2462, 2004, 2006, 1940, 1941, 1942, + 697, 488, 488, 488, 2249, 488, 488, 2334, 1396, 1930, + 1256, 1291, 1449, 1050, 1937, 1450, 596, 2335, 1527, 1313, + 2861, 691, 614, 2199, 1259, 698, 2412, 683, 2222, 488, + 2223, 1048, 1313, 891, 2281, 2759, 2062, 1049, 782, 2288, + 2063, 2927, 1559, -1846, -1846, -1846, 647, 2784, 874, 874, + 1577, 781, 1412, 1413, 1414, 1415, 1416, 1417, 2224, 1528, + 2463, 1528, 2464, 1693, 1991, 500, 2246, 501, 2742, 1768, + 1694, 2862, 583, 1695, 1696, 1697, 2672, 1577, 488, 87, + 2863, 2157, 488, 488, 2467, 1458, 1459, 2945, 1465, 673, + 2157, 674, 504, 488, 1588, 2157, 1769, 1895, 2157, 641, + 641, 760, 641, 1518, 2148, 1922, 1780, 2773, 2468, 2864, + 1925, 1527, 1314, 2413, 1521, 772, 684, 1528, 2157, 1314, + 26, 1525, 1578, 1525, 1045, 2646, 2835, 2892, 769, -1815, + -1815, 2478, 1638, 627, 2408, 2657, 2250, 892, 2660, 92, + 1130, 1528, 491, 1050, 1658, 26, 2820, 1659, 543, 2737, + 882, 1130, 685, 1244, 769, 769, 2030, 31, 1552, 597, + 2034, 1640, 2035, 610, 885, 2176, 892, 1051, 2409, 1579, + 892, 1253, 2776, 1660, 2479, 1130, 1661, 2777, 875, 1525, + 2865, 1707, 31, 1954, 2653, 2091, 1955, 1048, 686, 2878, + 2480, 875, 2866, 1049, 2411, 2164, 1579, 1379, 33, 2157, + 769, 2785, 2003, 1525, -1816, -1816, 1382, 2991, 2231, 1770, + 2233, 1528, 34, 1370, 1771, 2177, 2177, 2618, 1052, 1772, + 1431, 884, 1053, 33, 2111, 675, 2498, 676, 2308, 2254, + 2157, 1440, 1781, 1314, 1314, 687, 35, 34, 760, 1048, + 2491, 88, 2820, 886, 2037, 1049, 2455, 887, 1782, 89, + 36, 992, 1054, 1783, 2161, 998, 1716, 1716, 1716, 1716, + 1716, 35, 1007, 1716, 1716, 1716, 1716, 1716, 1716, 1716, + 1716, 1716, 1716, 1525, 1210, 36, 772, 2490, 1995, 2499, + 2571, 1661, -1822, -1822, 1582, 90, 26, 3091, 2481, 1584, + 1784, 769, 1585, 1586, 1014, 2482, 488, 1051, 2090, 1050, + 2092, 2093, 772, 772, 1528, 3054, -1823, -1823, 2001, 3070, + 3071, 2002, 1015, 1026, 2069, 2413, 1716, 1716, 1027, 1048, + 1055, -1825, -1825, 31, 3072, 1049, 2157, 44, 1337, 663, + 36, -729, 91, 664, 988, 989, 2020, 991, 2441, 2021, + 2135, 1017, 2136, 44, 2172, 2298, 2299, 2239, 772, 1039, + 2240, 1050, 1053, 2269, 1024, 26, 2243, 44, 1018, 2244, + 874, 1773, 3098, 629, 33, 2157, 1525, 1048, 1979, 1040, + 1980, 2297, 1774, 1049, -146, 639, 1210, 1041, 34, -146, + 3099, 44, 1054, 2867, 1469, 1047, 2868, 1028, 48, 488, + 1043, 488, 31, 871, 2290, 488, 488, 1659, 2442, 1044, + 1662, 2443, 35, 1664, 2137, 488, 2138, 488, 488, 488, + 488, 488, 488, 488, 1059, 48, 36, 760, 2446, 2580, + 769, 2447, 1955, 1048, 2599, 1665, 1644, 2600, 1666, 1049, + 1470, 1050, 488, 33, 488, 2619, 1029, 1785, 1661, 772, + 488, 488, 488, 488, 488, 488, 488, 1210, -146, 1060, + 1055, 488, 488, 1051, 1077, 2762, 488, 2550, 1081, 2764, + 488, 2157, 1661, 488, 488, 488, 488, 488, 488, 488, + 488, 488, 2852, 2173, 488, 1955, 1023, 1806, 1025, 1050, + 2880, 488, 1214, 1661, 1130, 36, 762, 1210, 1218, 2883, + 1471, 2682, 2884, 684, 1220, 2900, 2904, -146, 2901, 2901, + 1215, 1678, 2498, 583, 1078, 1051, 488, 2922, 1053, 1222, + 2923, -1846, -1846, -1846, 1223, 2073, 2074, 2075, 2076, 2077, + 2078, 2961, 488, 627, 2923, 769, 1231, 2962, 496, 685, + 1661, -1826, -1826, 488, 488, 1050, 1233, 1004, 1079, 1472, + 1668, 1698, 1699, 1700, 1238, 1701, 1702, 1703, 1704, 1705, + 1706, -1196, 2652, 2354, 2655, 1895, 1082, 875, 1245, 2974, + 1053, 2407, 2901, 2996, 1242, 2272, 2997, 769, 772, 3026, + 1873, 1248, 3027, 633, 26, -1827, -1827, 1210, 760, 1210, + 2304, 3063, -1828, -1828, 2901, 1051, 1689, -147, 3081, 497, + 1083, 2923, -147, 1267, 1268, 2234, 2454, 2236, 2456, 1473, + -1829, -1829, -1830, -1830, 760, 760, 1055, 2879, 1246, 1265, + 1266, 31, 687, 2598, -1831, -1831, 1313, 1249, 1130, 3037, + 3038, 488, 488, 1261, 488, -1832, -1832, 2320, -1834, -1834, + -1835, -1835, 2422, 1051, -1836, -1836, 1882, 2408, 1668, 1262, + 1053, 634, 1210, 1965, 1264, 2327, 1296, 2555, 1299, 1911, + 760, 1302, 33, 1130, -1837, -1837, -1838, -1838, 1055, 488, + 1303, -147, 1273, 1274, 1322, 1983, 34, 1716, -1840, -1840, + 1054, 2409, 2350, 772, 1332, 2577, -1842, -1842, 1821, 2355, + -1845, -1845, 1567, 1568, 1928, 1267, 1268, 2410, 1053, 1051, + 35, 1856, 1857, 762, 1333, 2570, 1335, 2411, 874, 3090, + -343, 654, -350, 657, 36, 661, 1341, 2710, 1275, 1276, + -147, 874, 1343, 1130, 1342, 772, -198, -198, 1929, 635, + 1277, 1278, -202, -202, 488, -201, -201, 1445, 1447, 488, + 1344, 2412, -340, 1345, 36, 1347, -224, -225, 1055, 630, + 1935, 760, -341, 2173, 1053, 1348, 1349, 1351, 2850, 1352, + 1269, 1270, 1271, 1272, 1273, 1274, 1353, 1354, 1275, 1276, + -344, 500, 1384, 501, 1355, 1385, 488, 488, 488, 1386, + -342, 488, 1277, 1278, 1936, 1356, 1357, 1358, 1359, 488, + 488, 488, 488, 1363, 1375, 503, 1055, 1378, 504, 488, + 630, 1422, 1427, 488, 1428, 1425, 488, 1394, 1443, 1716, + 1453, 1457, 1452, 1027, -1846, 2308, 1029, 1493, 1491, 1632, + 1505, 1633, 2719, 2720, 488, 488, 1498, 1523, 2413, 488, + 1524, 44, 1525, 1530, 2546, 1531, -109, 1532, 1536, 1396, + 762, 516, 1543, 488, 1544, 516, 488, 1548, 488, 2887, + -109, 1558, 1055, 516, 1563, -109, 1570, 1571, 1575, 1588, + 1580, 496, 1581, 1591, 516, 516, 1594, 2887, 488, 636, + 1595, 1213, 1597, 1599, 1277, 1278, 1313, 892, 1605, 488, + 760, 1313, 44, 629, -1196, 2155, 1254, 1612, 769, 1614, + 1668, 485, 1615, 1314, 2597, 1620, 1621, 2029, 1657, 488, + 1624, 1625, 1626, 1627, -109, 1635, 1314, 630, 1662, 2110, + 1670, 1664, 1385, 1675, 488, 488, 1737, 1735, 516, 1742, + 1739, 1776, 497, 48, -109, 1740, 1370, 1758, 1741, 1639, + 1641, 488, 1765, 1665, 1777, 1779, 1666, 2155, 1800, 1801, + -1846, 1815, 1822, 485, 1828, 1829, 1830, 634, 488, 1835, + 639, 2550, 1846, 1845, 1847, 1866, -1846, 1848, 2471, 1849, + 769, -1846, 1850, 1716, 2472, 1867, 1210, 1210, 1210, 44, + 1869, 2971, 1884, -109, 1888, 486, 498, 2473, 769, 1890, + 515, 635, -109, 1889, 515, 760, 1952, 1279, 1280, 585, + 585, 588, 515, 595, 1960, 1956, 595, 1968, -1846, 595, + 618, 1969, 1988, 515, 515, 769, 2474, 1130, 2475, 1970, + 1551, 1984, 769, 1989, 1990, 1992, 1993, 1996, 1997, 762, + 763, 1998, 1999, 595, 2027, 2000, 2007, 760, 1887, 2008, + 2018, 2038, 2039, 2045, 2050, 769, 772, 2047, 1896, 2055, + 1899, 2107, 2048, 1910, 2696, 2049, 499, 2051, 2052, 1914, + 2112, 1916, 488, 1405, 2054, 2058, 618, 515, 618, 618, + 618, 2081, 2082, 1923, 2088, 2095, 2087, 2105, 1926, 2119, + 2129, 2128, 1931, 1932, 1933, 1934, 2131, 1938, 1939, 2132, + 2133, 2159, 2168, -203, -204, 1210, 2179, 874, 3021, 2182, + 2183, 2185, 2195, 2476, 500, 2718, 501, 2180, 2200, 1639, + 1641, 2202, 2188, 2203, 2838, 488, 2207, 2205, 772, 2208, + 1313, 2211, 502, 2230, 488, 2232, 2245, 488, 503, 672, + 488, 504, -109, 2251, 2259, 2260, 772, 488, 488, 488, + 488, 488, 2252, 630, 488, 488, 488, 488, 488, 488, + 488, 488, 488, 488, 875, -1846, 2253, 488, 488, 2261, + 2268, 488, 2271, 772, 2262, 2282, 2237, 769, 488, 2267, + 772, 2477, 488, 1061, 630, 2279, 2478, 2278, 2283, 2289, + 2382, 488, 2293, 2286, 488, 2295, 488, 2311, 2302, 2303, + 762, 630, 1062, 772, 488, 2319, 663, 488, 488, 1017, + 664, 2062, 488, 488, 2084, 2083, 488, 2351, 2352, 1645, + 2353, 2356, 670, 2368, 2370, 2385, 762, 762, 488, 2479, + 488, 2396, 2371, 44, 2155, 2140, 2155, 769, 2374, 2406, + 485, 2550, 485, 488, 2420, 2480, 1061, 763, 2424, 1061, + 2429, 1338, 2433, 1063, 2430, 2435, 2438, 2440, 2444, 997, + 2453, 2459, 2460, 2928, 1646, 1062, 2486, -1846, 1062, 488, + 2466, 1346, 762, 2502, 1412, 1413, 1414, 1415, 1416, 1417, + 2567, 2568, 2569, 2583, 2587, 2573, 488, 2582, 2594, 2596, + 1647, 2606, 1314, 1042, 2603, 1955, 2610, 2309, 2609, 2310, + 2611, 2612, 2639, 2315, 2316, 2642, 2645, 769, 1648, 1368, + 2613, 2648, 1649, 2627, 2640, 2649, 1063, 2656, 2661, 1063, + 2662, 2663, 2664, 2666, 1210, 2553, 1210, 2678, 1210, 1225, + 1227, 1229, 1230, 2683, 1650, 2684, 2685, 1651, 2546, 2689, + 2693, 2694, 2695, 2481, 1064, 2703, 2994, 2706, 2708, 2964, + 2482, 2709, 1652, 2713, -751, 2726, 2727, -1812, 760, -1813, + -1814, -1815, 516, 762, -1816, 1582, 2575, 1632, 2736, -1817, + 1584, 2998, -1818, 1585, 1586, -1819, 2738, -1820, 2734, 639, + 639, -1821, 639, 2494, 763, 772, -1822, 2591, -1823, 2592, + -1825, 516, 516, -1826, 2975, 1065, 2977, -1827, 2751, -1828, + 1313, 488, 2725, 1066, -1829, 2902, -1830, 1064, 2902, -1831, + 1064, -1832, -1834, -1835, -1836, 1067, -1837, -1838, -1839, -1840, + -1841, 2752, 2754, -1842, -1843, -1844, -1845, -752, 2739, 2757, + 760, 2760, 2928, 2761, 2942, 2775, 2788, 2815, 769, 2793, + 2811, 2818, 2824, 2826, 1653, 2816, 1068, 2828, 760, 488, + 488, 2840, 1654, 2841, 488, 772, 2842, 2849, 1065, 488, + 2851, 1065, 488, 488, 2856, 2857, 1066, 488, 2858, 1066, + 2871, 2872, 2881, 769, 516, 760, 2885, 2893, 1067, 2895, + 2913, 1067, 760, 2916, 618, 2894, 2897, 2905, 679, 2907, + 488, 680, 762, 1070, 488, 1655, 2155, 2909, 2919, 2935, + 2155, 515, 485, 2702, 2939, 760, 485, 2941, 2943, 1068, + 2548, 2987, 1068, 2946, 2952, 1071, 2957, 2958, 2959, 2963, + 2967, 2285, 488, 2968, 2976, 2979, 2980, 2982, 2993, 680, + 515, 515, 2995, 3000, 670, 1073, 3005, 3011, 2671, 3012, + 2673, 3013, 3017, 3018, 3019, 769, 3028, 3029, 3030, 2630, + 488, 3032, 3035, 3045, 3048, 3050, 1070, 3062, 488, 1070, + 3064, 3065, 3046, 763, 3067, 3047, 3083, 3092, 3096, 3088, + 585, 3089, 3097, 3101, 2265, 1019, 2758, 488, 1071, 2305, + 1454, 1071, 1435, 2171, 1865, 2970, 772, 2984, 3068, 985, + 985, 595, 595, 2181, 595, 1488, 1842, 762, 1073, 2428, + 1487, 1073, 3031, 2978, 618, 2915, 1492, 1864, 2546, 2184, + 2400, 2899, 2667, 515, 2638, 2395, 2966, 2965, 2972, 2654, + 2973, 2553, 1679, 2814, 3033, 3061, 1681, 760, 1685, 1686, + 3034, 1805, 2103, 2174, 2126, 2042, 1951, 2124, 618, 762, + 1448, 618, 987, 2162, 1384, 3043, 2670, 1385, 2427, 3009, + 2836, 1386, 2716, 3079, 3044, 3051, 3073, 1515, 2870, 2235, + 2210, 769, 44, 2586, 3042, 2470, 3049, 2556, 3040, 2206, + 2270, 1637, 1629, 1915, 618, 618, 618, 618, 1608, 1394, + 2501, 2743, 2228, 2505, 874, 2167, -1846, 760, 1501, 44, + 488, 1506, 1824, 772, 2960, 1500, 488, 769, 2668, 2449, + 2036, 2674, 2448, 2581, 1533, 488, 488, 2992, 2817, 488, + 1826, 1396, 3039, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 488, 763, 1557, 0, 0, 769, 2155, + 0, 769, 488, 0, 0, 485, -1571, 488, 2155, 0, + 488, 0, 2451, 2155, 485, 0, 2155, 488, 488, 485, + 763, 763, 485, 0, 0, 0, 1766, 760, 0, 0, + 488, 0, 488, 0, 0, 0, 2155, 0, 0, 2503, + 0, 0, 485, 1384, 0, 0, 1385, 0, 0, 488, + 1386, 2120, 0, 0, 2557, 2558, 2559, 2560, 2561, 2562, + 2563, 2564, 2565, 2566, 0, 0, 763, 0, 0, 0, + 0, 0, 0, 1374, 0, 0, 0, 0, 1394, 2553, + 0, 0, -1846, 0, 0, -1846, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, -1846, 0, + 0, -1571, 0, -1846, 2854, 0, 0, 0, 0, 0, + 1396, 488, 0, 0, 488, 772, 0, 2155, 0, 0, + 0, 891, 0, 485, 2062, 0, 630, 0, 2063, 44, + 0, 2064, 2065, 2066, 516, 516, 0, 1590, 488, 1314, + -1846, 0, 488, 0, 0, 1334, 772, 0, 2155, 772, + 0, 0, 0, -1571, 485, 488, 0, 763, 760, 0, + 0, 0, 0, 0, 0, 0, 0, -1571, 0, 0, + 488, 0, -1571, 488, 0, 0, 0, -1571, 0, 0, + 2375, 0, 1210, 0, 0, 0, -1571, 488, 0, 0, + -1571, 0, 0, 760, 0, 1405, 0, 0, 0, 0, + 0, 769, 0, 0, 0, 2813, 0, 0, 0, 0, + 0, -1846, 515, 0, 0, 0, 0, 0, 0, 891, + 762, -1571, 2062, 0, 44, 2954, 2063, -1846, 0, 2064, + 2065, 2066, -1846, 0, 0, 0, 0, 0, 488, 0, + 0, -1571, 0, 0, 2155, 0, 0, 0, 0, 0, + 485, 0, 0, 0, 0, 618, 0, 0, 0, 488, + 0, 488, 0, 488, 2548, 760, 0, 488, 0, -1846, + 765, 0, 0, 515, 515, 0, 0, 488, 0, 0, + 0, 0, 2697, 2155, 2985, 0, 763, -1846, 0, 485, + -1571, 0, 762, -1571, 0, 0, 0, 488, 0, -1571, + 0, 0, 618, 618, 1504, 0, 618, 1514, 0, 0, + 762, 0, 0, 0, 0, 0, 0, 488, 0, 618, + 0, 0, 0, 0, 1405, 0, 0, 0, 0, 0, + 488, 0, 2068, -1571, 0, 0, 618, 762, 0, 0, + 618, 1368, 1814, 0, 762, 0, 0, 0, 0, 2553, + 0, 1210, 0, 0, 0, 0, -1571, 0, 0, 0, + 0, 0, 0, 1823, 0, 1825, 0, 762, 0, 0, + 0, 0, 0, 488, 0, 0, 488, 488, 0, 2155, + 3052, 760, 0, 0, 0, 485, 0, 0, 0, -1846, + 2948, 763, 1368, 0, 0, 0, 1412, 1413, 1414, 1415, + 1416, 1417, 2069, 0, 0, 0, 0, 1860, 2067, 488, + 1766, 0, 2140, 0, 0, 0, -1846, 760, 0, 516, + 516, 0, 516, 0, 0, 0, 2130, 0, 0, 0, + 2068, 0, 0, 763, 0, 0, 0, 0, 0, -1571, + 0, 0, 2147, 0, 0, 0, 766, -1571, 760, 0, + 488, 760, 0, 0, 0, 0, 0, 44, 0, 0, + 768, 0, 0, 0, -1571, 0, -1571, -1571, 0, 0, + 0, 0, 0, 891, 1572, 0, 2062, 765, 0, 0, + 2063, 0, 618, 2064, 2065, 2066, 0, 0, 0, 762, + 0, 1602, 1961, 1963, 2147, 0, 0, 0, 0, 629, + 2069, 0, 0, -1571, 0, 0, -1571, -1571, -1571, 0, + 0, 0, 0, 0, 0, 2839, 0, 0, -1846, 0, + 1619, 0, 0, 0, 0, 1412, 1413, 1414, 1415, 1416, + 1417, 0, 0, 0, 2548, 2847, 2848, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 762, + 0, 2859, 0, 0, 0, 680, 680, 0, 515, 515, + 0, 515, 680, 0, 0, 0, 891, 0, 0, 2062, + 1265, 1266, 0, 2063, 0, 0, 2064, 2065, 2066, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 485, 0, 1268, 1269, 1270, 1271, 1272, 1273, 0, - 0, 1274, 1275, 0, -1570, 0, 0, 2552, 0, 0, - 1363, 1329, 2550, 2065, 2066, 2067, 0, 2068, 2069, 2070, - 2071, 2072, 2073, 0, 0, 0, 0, 0, 1761, 0, - 0, 0, 0, 0, 2852, 0, 0, 0, 0, 488, - 0, 0, 488, 767, 2125, 0, 0, 0, 0, 1278, - 1279, 2150, 0, 0, 629, 0, 0, 0, 0, 0, - 2142, 1056, 0, 759, 0, 2837, 488, 0, 0, 1280, - 488, 0, 485, 0, 767, 72, 756, 767, 514, 0, - 1057, 0, 2150, 488, 0, 2845, 2846, 1056, 0, 0, - 0, 1278, 1279, 0, 0, 0, 758, 0, 488, -1570, - 2856, 488, 0, 485, 0, 0, 1057, 1276, 1277, 765, - 1205, 0, 2142, 0, 0, 488, 0, 628, 0, 1379, - 0, 617, 1380, 0, 0, 0, 1381, 0, 0, 0, - 0, 1058, 0, 0, 0, 765, 765, 0, 2946, 514, - 514, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 765, -1570, 0, 0, 1389, 2952, 0, 1058, 0, 0, - 0, -1845, 0, 0, 0, -1570, 488, 0, 617, 617, - -1570, 1500, 617, 1512, 0, -1570, 761, 2915, 2150, 0, - 0, 0, 0, 0, -1570, 617, 1391, 488, -1570, 488, - 0, 488, 0, 0, 515, 488, 0, 667, 2492, 485, - 0, 0, 617, 0, 0, 488, 617, 0, 0, 0, - 0, 0, 0, 0, 2983, 0, 0, 2150, 0, -1570, - 1278, 1279, 1059, 515, 515, 488, 0, 0, 0, 0, - 0, 0, 0, 758, 0, 0, 0, 0, 485, -1570, - 0, 0, 0, 0, 0, 488, 0, 0, 1059, 0, - 0, 0, 0, 0, 0, 756, 2105, 0, 488, 0, - 0, 0, 0, 0, 0, 0, 759, 0, 0, 0, - 0, 0, 765, 1060, 0, 0, 0, 0, 1205, 2552, - 0, 1061, 0, 0, 2550, 0, 0, -1845, -1570, 0, - 0, -1570, 0, 1062, 0, 0, 0, -1570, 0, 1060, - 0, 488, 0, -1845, 488, 488, 515, 1061, -1845, 0, - 3050, 0, 0, 2150, 0, 0, 0, 992, 0, 1062, - 0, 0, 0, 0, 1063, 0, 0, 0, 0, 0, - 0, -1570, 0, 0, 485, 1379, 1015, 488, 1380, 0, - 1569, 0, 1381, 1363, 0, -1845, 0, 0, 617, 0, - 1063, 0, 0, 0, -1570, 0, 0, 1599, 0, 0, + 0, 0, 0, 2365, 0, 0, 0, 0, 0, 2070, + 2071, 2072, 0, 2073, 2074, 2075, 2076, 2077, 2078, 0, + 0, 1709, 0, 0, 765, 0, 0, 0, 0, 762, + 0, 891, 1734, 0, 2062, 0, 0, 2917, 2063, 516, + 0, 2064, 2065, 2066, 0, 0, 0, 0, 0, 516, + 0, 516, 0, 0, 516, 0, 1267, 1268, 2366, 0, + 516, 760, 516, 766, 0, 680, 0, 0, 0, 0, + 0, 0, 0, 0, 516, 0, 0, 768, 0, 516, + 0, 0, 0, 516, 516, 516, 516, 0, 516, 516, + 0, 0, 0, 0, -1846, 0, 985, 618, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 2070, 2071, 2072, + 0, 2073, 2074, 2075, 2076, 2077, 2078, 0, 618, 0, + 618, 1269, 1270, 1271, 1272, 1273, 1274, 0, 0, 1275, + 1276, 891, 0, 2139, 2062, 1368, 0, 0, 2063, 0, + 0, 2064, 2065, 2066, 0, -1573, 0, 0, 0, 0, + 0, 0, 0, 0, 763, 0, 0, 0, 2621, 0, + 762, 0, 618, 0, 2069, 0, 1368, 0, 0, 0, + 0, 0, 1875, 0, 1877, 0, 0, 1514, 515, 0, + 0, 2394, 0, 2397, 0, 0, 0, 2068, 515, 1897, + 515, 1901, 0, 515, 0, 762, 0, 0, 0, 515, + 766, 515, 0, 765, 0, 0, 0, 0, 0, 0, + 0, 0, 680, 515, 768, 0, 0, 680, 515, 0, + 0, 0, 515, 515, 515, 515, 763, 515, 515, 0, + 0, 0, 0, 0, 0, 1277, 1278, 0, 0, 0, + -1573, 0, 2068, 0, 763, 0, 0, 618, 618, 1964, + 0, 0, 0, 0, 0, 0, 0, 2069, 0, 0, + 0, 0, 891, 516, 1972, 2062, 0, 762, 0, 2063, + 1374, 763, 2064, 2065, 2066, 0, 0, 0, 763, 0, + 0, 0, 0, 0, 2266, 0, 0, 0, 0, 2622, + 0, 0, -1573, 2274, 2275, 2277, 0, 0, 0, 0, + 0, 763, 0, 0, 0, 44, -1573, 0, 0, 0, + 0, -1573, 2069, 0, 2294, 0, -1573, 0, 0, 0, + 0, 0, 0, 0, 0, -1573, 44, 0, 44, -1573, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1389, 1065, 0, 0, 1363, 0, 0, -1845, 488, 761, - 0, 0, 0, 1220, 1223, 1224, 1225, 0, 0, 2392, - 1615, 2395, 0, 1066, 0, 0, 0, 1065, 0, 0, - 1400, 0, 1391, 759, 765, 0, 0, 0, 0, 0, - 2135, 0, 758, 1068, 0, 0, 756, 0, 0, 1066, - 0, 675, 675, 0, 514, 514, 0, 514, 675, 0, - 0, 0, 0, 0, 0, 0, 0, -1570, 0, 1068, - 0, 0, 756, 756, 0, -1570, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 756, 0, 0, - 0, 0, -1570, 0, -1570, -1570, 0, 0, 0, 0, - 0, 0, 2115, 0, 0, 1379, 0, 1704, 1380, 0, - 0, 0, 1381, 0, 0, 0, 0, 0, 1729, 0, - 0, 0, -1845, 0, 0, 0, 0, 0, 0, 0, - 0, -1570, 0, -1845, -1570, -1570, -1570, 765, 0, 0, - 1389, 0, 0, 0, 0, 72, 761, -1845, 0, -1845, - 0, 675, 0, 0, -1845, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 72, 0, 72, - 0, 0, 1391, 0, 0, 0, 0, 0, 765, 0, - 0, 0, 980, 617, 0, 0, 0, 0, 0, 0, - 0, -1845, 0, 0, 0, 0, -1572, 0, 0, 0, - 0, 0, 0, 758, 617, 0, 617, 0, 0, 756, - 0, 0, 759, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, -1845, 0, 0, 0, 0, 758, - 758, 1407, 1408, 1409, 1410, 1411, 1412, 0, 0, 0, - 0, 0, 2373, 0, 758, 0, 1400, 0, 0, 0, - 617, 0, 0, 0, 0, 0, 0, 0, 1871, 1876, - 0, 1369, 0, 1512, 514, 0, 0, 0, 0, 0, - 0, 0, 0, -1845, 514, 1892, 514, 1896, 0, 514, - 0, 0, 0, 0, 2142, 514, 0, 514, 2142, -1845, - 0, -1572, 0, 0, -1845, 0, 0, 0, 675, 514, - 0, 0, 0, 675, 514, 0, 0, 0, 514, 514, - 514, 514, 0, 514, 514, 0, 0, 0, 72, 0, - 72, 0, 515, 515, 1443, 761, 0, 0, 0, 0, - 0, -1845, 0, 617, 617, 1959, 0, 0, -1845, 0, - 0, 756, 0, -1572, 0, 0, 0, 0, 0, 0, - 0, 1975, 0, 0, 0, 0, 0, -1572, 0, 0, - 0, 0, -1572, 0, 0, 0, 758, -1572, 0, 0, - 0, 0, 1496, 759, 0, 1501, -1572, 0, 0, 0, - -1572, 0, 0, 0, 0, 0, 1400, 0, 1528, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 759, - 759, 0, 0, 0, 0, 0, 0, 0, 0, 1552, - 0, -1572, 0, 0, 759, 0, 0, 0, 0, 0, + 0, 0, 2068, 0, 0, 0, 0, 0, 1279, 1280, + 0, 0, 0, 0, 0, 0, 0, 0, 516, 0, + -1573, 2070, 2071, 2072, 765, 2073, 2074, 2075, 2076, 2077, + 2078, 0, 0, 0, 0, 0, 0, 0, 0, 766, + -1573, 0, 0, 762, 0, 0, 0, 0, 0, 0, + 765, 765, 0, 768, 0, 0, 0, 0, 0, 0, + 0, 0, 515, 0, 0, 0, 0, 0, 0, 515, + 0, 0, 2069, 0, 0, 0, 0, 0, 0, 762, + 0, 0, 0, 763, 0, 0, 0, 0, 0, -1573, + 0, 0, -1573, 0, 0, 0, 765, 0, -1573, 0, + 0, 0, 0, 2147, 0, 0, 1709, 2147, 0, 0, + 762, 0, 0, 762, 2070, 2071, 2072, 0, 2073, 2074, + 2075, 2076, 2077, 2078, 0, 2391, 2392, 2393, 0, 0, + 0, 0, -1573, 2068, 0, 0, 0, 44, 618, 44, + 0, 0, 0, 763, 2158, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, -1573, 0, 515, 0, 0, + 0, 0, 0, 0, 0, 0, 2436, 0, 0, 2070, + 2071, 2072, 516, 2073, 2074, 2075, 2076, 2077, 2078, 0, + 0, 0, 0, 0, 0, 0, 0, 765, 0, 0, + 0, 0, 0, 0, 0, 0, 2158, 0, 2187, 0, + 766, 2192, 0, 2069, 0, 1877, 0, 0, 0, 0, + 0, 2140, 0, 763, 768, 0, 0, 0, 0, 0, + 0, 1572, 0, 0, 0, 0, 766, 766, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, -1573, 0, + 768, 768, 0, 0, 0, 0, -1573, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 2579, 0, 0, 0, + 0, 0, 0, -1573, 0, -1573, -1573, 0, 0, 2070, + 2071, 2072, 766, 2073, 2074, 2075, 2076, 2077, 2078, 0, + 44, 0, 0, 0, 1572, 0, 768, 0, 0, 618, + 0, 0, 0, 0, 0, 0, 0, 1572, 618, 618, + 618, 0, -1573, 0, 0, -1573, -1573, -1573, 0, 0, + 0, 515, 0, 762, 0, 0, 765, 0, 0, 618, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, -1572, 0, 0, 0, 0, 0, 0, 0, 0, - -1845, 0, 0, 0, 756, 0, 0, 1407, 1408, 1409, - 1410, 1411, 1412, 0, 0, 0, 0, 0, 0, 0, - 72, 0, 0, 0, 0, 0, 1379, 0, 0, 1380, - 0, 0, 0, 1381, 1056, 0, 0, 0, -1845, 0, - -1572, 0, 0, -1572, 0, 756, 761, 0, 514, -1572, - 0, 0, 0, 1057, 0, 514, 0, 765, 758, 0, - 0, 1389, 0, 0, 0, 0, 0, 0, -1845, 0, - 0, 0, 761, 761, 0, 0, 0, 0, 0, 0, - 0, 0, 0, -1572, 0, 0, 2142, 761, 0, 0, - 0, 2142, 1704, 1391, 2142, 0, 759, 0, 0, 0, - 0, 0, 0, 0, 1058, 2490, -1572, 0, 0, 0, - 0, 1585, 0, 2491, 0, 0, 0, 0, 0, 0, - 0, 765, 0, 0, 617, 0, 0, 0, 0, 0, - 2153, 0, 0, 0, 0, 0, 0, 0, 0, 765, - -1845, 0, 0, 514, 0, 0, 0, 1407, 1408, 1409, - 1410, 1411, 1412, 0, 0, 0, 0, 0, 0, 0, - 0, 758, 2135, 2376, 0, 0, 765, 515, 515, 0, - 515, 2492, 0, 765, 72, 0, 0, 0, 0, 0, - 0, 0, 2153, 0, 2182, 0, 0, 2187, 0, -1572, - 1871, 0, 0, 0, -1845, 1059, 765, -1572, 0, 0, - 0, 0, 758, 0, 0, 0, 0, 1569, 0, 761, - -1845, 0, 0, 0, -1572, -1845, -1572, -1572, 0, 0, - 0, 0, 0, 0, 0, 0, 2142, 0, 759, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1363, - 0, 0, 0, 0, 0, 0, 1060, 0, 0, 0, - 0, 0, -1845, -1572, 1061, 0, -1572, -1572, -1572, 0, - 0, 0, 0, 0, 0, 0, 1062, 0, 2493, 0, - 1569, 0, 0, 0, 0, 617, 0, 0, 0, 0, - 0, 0, 0, 1569, 617, 617, 514, 0, 617, 0, - 0, 0, 0, 0, 0, 72, 0, 1063, 0, 0, - 0, 0, 762, 0, 0, 617, 0, 1400, 0, 0, - 0, 0, 0, 0, 0, 0, 1809, 2299, 0, 0, - 765, 0, 0, 0, 0, 0, 0, 764, 0, 0, - 0, 759, 0, 675, 0, 0, 0, 1818, 0, 1821, - 0, 761, 0, 0, 1065, 0, 0, 1569, 1569, 0, - 0, 0, 0, 0, 72, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 756, 0, 1066, 0, 1379, 0, - 1704, 1380, 759, 0, 0, 1381, 0, 515, 0, 0, - 0, 765, 0, 1855, 0, 0, 1068, 515, 2494, 515, - 0, 2495, 515, 0, 0, 0, 0, 0, 515, -1845, - 515, 0, 0, 1389, 0, 0, 0, 0, 0, 0, - -1845, 0, 515, 0, 0, 0, 0, 515, 0, 0, - 0, 515, 515, 515, 515, 0, 515, 515, 756, 0, - 0, 0, 0, 0, 0, 1391, -1586, 0, 0, 0, - 0, 0, 0, 0, 761, 0, 756, 0, 0, 0, - 72, 765, 0, 0, 0, 0, 617, 617, 617, 486, - 0, 2153, 2402, 2402, 0, 0, 1957, 1958, 2402, 2417, - 0, 0, 0, 756, 0, 0, 0, 0, 0, 0, - 756, 0, 0, 0, 0, 761, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1520, 0, 617, 0, 0, - 0, -1845, 0, 756, 0, 762, 0, 0, 1407, 1408, - 1409, 1410, 1411, 1412, 0, 1871, 0, 0, 514, 0, - 0, 758, 1569, 1512, 1569, 0, 1599, 0, 0, 0, - 764, -1586, 0, 0, 0, 0, -1845, 0, 0, 0, - 0, 0, 0, 0, 0, 514, 0, 2502, 0, 0, - 0, 0, -1845, 0, 0, 0, 0, -1845, 0, 0, - 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, + 0, 2301, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 763, 2147, 0, 680, 0, 0, + 2147, 0, 0, 2147, 0, 0, 0, 0, 0, 0, + 0, 1572, 1572, 766, 0, 0, 0, 0, 0, 0, + 0, 2633, 2634, 2635, 2636, 0, 0, 768, 0, 763, + 0, 0, 0, 0, 1709, 0, 0, 0, 0, 0, + 0, 0, 0, 516, 0, 0, 0, 0, 0, 0, + 2070, 2071, 2072, 0, 2073, 2074, 2075, 2076, 2077, 2078, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 765, -1586, 0, 758, 1975, 0, 0, 0, - 617, 0, 0, 0, -1845, 0, 0, -1586, 0, 0, - 1512, 515, -1586, 758, 0, 0, 0, -1586, 1369, 0, - 0, 1599, 0, 0, 0, 0, -1586, 0, 765, 0, - -1586, 0, 0, 0, 0, 0, 0, 756, 0, 1569, - 758, 0, 0, 0, 0, 0, 0, 758, 0, 0, - 0, 0, 762, 0, 0, 0, 0, 0, 0, 1400, - 0, -1586, 0, 0, 0, 0, 0, 0, 0, 0, - 758, 0, 0, 0, 0, 0, 0, 764, 0, 0, - 0, -1586, 0, 0, 0, 0, 0, 0, 0, 2612, - 0, 0, 0, 0, 0, 0, 0, 0, 756, 765, - 0, 759, 0, 0, 0, 0, 515, 2134, 0, 0, - 0, 0, 0, 2630, 0, 617, 617, 617, 617, 0, - 0, 0, 2402, 2417, 0, 2402, 2402, 0, 0, 514, - -1586, 0, 0, -1586, 2153, 0, 0, 0, 2153, -1586, - 0, 0, 0, 0, 514, 0, 0, 0, 0, 0, - 0, -1845, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1704, 0, 0, 0, 759, 980, 0, 756, 0, - 0, 2187, 0, -1586, 0, 1871, 0, 0, 0, 0, - 0, 1512, 0, 759, 0, 0, 0, 1569, 0, 0, - 0, 0, 0, 0, 758, 0, -1586, 0, 0, 0, - 675, 514, 0, 0, 0, 0, 0, 0, 617, 0, - 759, 0, 0, 0, 761, 765, 0, 759, 0, 0, - 0, 0, 0, 0, 0, 2715, 0, 0, 0, 0, - 0, 762, 0, 0, 0, 0, 0, 0, 0, 0, - 759, 0, 0, 0, 0, 0, 0, 0, 0, 515, - 0, 765, 2135, -1845, 0, 758, 764, 0, 2264, 0, - 1407, 1408, 1409, 1410, 1411, 1412, 0, 2272, 2274, 0, - 0, 2278, 0, 0, 0, 0, 0, 0, 761, -1586, - 0, 0, 765, 0, 0, 765, 1314, -1586, 2292, 0, - 0, 0, 0, 1314, 0, 0, 761, 0, 0, 756, - 0, 1569, 0, 0, -1586, 0, -1586, -1586, 0, 0, - 0, 1975, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 2754, 761, 0, 758, 0, 0, 0, 0, - 761, 0, 0, 0, 0, 756, 0, 0, 0, 0, - 0, 0, 0, -1586, 0, 0, -1586, -1586, -1586, 0, - 0, 0, 0, 761, 0, 0, 0, 0, 2768, 0, - 963, 963, 0, 0, 759, 0, 0, 486, 2402, 0, - 2779, 0, 0, 514, 0, 0, 2153, 0, 0, 0, - 1376, 2153, 0, 0, 2153, 0, 514, 0, 0, 514, - 0, 0, 762, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 2819, 1314, 756, 1314, 1314, 0, - 0, 0, 0, 0, 0, 0, 0, 764, 762, 762, - 0, 0, 1120, 1127, 0, 759, 0, 0, 0, 0, - 0, 0, 0, 762, 514, 0, 0, 0, 0, 2389, - 2390, 2391, 0, 764, 764, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 514, 514, 758, 0, 764, 0, - 0, 0, 0, 0, 0, 617, 0, 1512, 0, 514, - 0, 0, 0, 0, 0, 1314, 0, 761, 1314, 1314, - 2434, 515, 617, 0, 0, 2819, 0, 765, 0, 0, - 0, 0, 758, 0, 0, 759, 0, 0, 0, 0, - 0, 0, 0, 514, 0, 0, 0, 0, 515, 0, - 0, 0, 0, 0, 0, 0, 2153, 0, 0, 0, - 0, 514, 756, 515, 515, 515, 515, 515, 515, 515, - 515, 515, 515, 0, 0, 0, 0, 0, 761, 2910, - 0, 0, 0, 0, 980, 0, 514, 0, 0, 0, - 0, 0, 0, 1043, 617, 762, 0, 0, 756, 1044, - 0, 0, 0, 758, 0, 0, 1056, 0, 0, 0, - 675, 0, 0, 2577, 0, 0, 1379, 0, 0, 1380, - 764, 0, 0, 1381, 617, 1057, 0, 0, 0, 756, - 0, 0, 756, 0, 0, 0, 0, 0, 0, 0, - 1379, 0, 0, 1380, 0, 0, 0, 1381, 761, 0, - 0, 1389, 486, 0, 0, 0, 0, 0, -1845, 0, - 0, 2967, 0, 0, 0, 514, 759, 0, 0, 514, - 0, 0, 0, 0, 0, 1389, 1058, 1120, 0, 0, - 0, 0, -1845, 1391, 0, 0, 0, 675, 675, 675, - 0, 2819, 0, 0, 1334, 0, 0, 0, 0, 1602, - 0, 0, 759, 0, 0, 1045, 0, 1391, 0, 0, - 1611, 0, 1612, 0, 0, 0, 0, 0, 0, 758, - 1512, 1618, 2639, 1345, 0, 0, 0, 762, 2631, 2632, - 2633, 2634, 0, 0, 0, 514, 0, 2657, 1619, 0, - 0, 0, 0, 1355, 1356, 1357, 0, 2910, 1364, 0, - 0, 0, 764, 2377, 0, 758, 0, 0, 0, 0, - 0, 1871, 0, 0, 1634, 1636, 0, 1059, 0, 0, - 0, 1421, 0, 759, 0, 0, 0, 2623, 0, 761, - 0, 1512, 0, 0, -1845, 0, 758, 2819, 0, 758, - 0, 0, 0, 0, 515, 0, 0, 1671, 1672, 0, - -1845, 1685, 1686, 2779, 675, -1845, 0, 0, -1845, 0, - 0, 0, 0, 0, 0, 761, 0, 0, 1060, 0, - 0, 2702, 0, 1461, -1845, 0, 1061, 1475, 1480, -1845, - 762, 0, 0, 0, 756, 0, 0, 0, 1062, 0, - 0, 0, -1845, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 764, 0, 0, 0, 1046, - 0, 0, 0, 0, 0, 0, -1845, 0, 0, 1063, - 0, 762, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1120, 0, 0, 0, 761, 0, 0, 759, - 0, 0, 0, 1120, 0, 0, 764, 1400, 0, 0, + 516, 765, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 44, 0, 516, 516, 516, 516, 516, + 516, 516, 516, 516, 516, 0, 0, 0, 0, 0, + 0, 763, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 765, 2704, 0, 0, 0, 0, 0, + 618, 618, 618, 486, 0, 2158, 2404, 2404, 0, 0, + 0, 0, 2404, 2419, 0, 2147, 1265, 1266, 0, 0, + 0, 0, 766, 0, 0, 0, 0, 0, 1368, 0, + 0, 0, 0, 0, 0, 0, 768, 0, 0, 0, + 0, 618, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1048, 0, 0, 0, 0, 0, 1049, 0, 1877, + 0, 0, 515, 0, 1061, 0, 1572, 1514, 1572, 0, + 1602, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1062, 44, 0, 0, 0, 0, 515, + 0, 2504, 1267, 1268, 0, 0, 0, 763, 0, 0, + 0, 0, 0, 1061, 515, 515, 515, 515, 515, 515, + 515, 515, 515, 515, 0, 0, 0, 968, 968, 0, + 0, 2641, 1062, 0, 0, 0, 1972, 766, 0, 0, + 0, 618, 0, 763, 1063, 0, 2659, 0, 1514, 0, + 0, 768, 0, 44, 0, 0, 0, 0, 0, 0, + 0, 0, 1602, 0, 0, 0, 0, 1269, 1270, 1271, + 1272, 1273, 1274, 1050, 763, 1275, 1276, 763, 0, 766, + 1572, 0, 0, 1063, 2492, 0, 0, 0, 0, 1125, + 1132, 0, 2493, 768, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 516, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1064, 0, 0, 0, 1048, 0, 1065, 1120, 0, 0, - 0, 1400, 0, 0, 0, 759, 0, 0, 0, 0, - 0, 0, 0, 0, 1849, 1849, 0, 0, 1066, 0, - 0, 0, 0, 0, 1067, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 759, 0, 1068, 759, - 0, 0, 0, 0, 0, 0, 515, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 2790, - 0, 0, 2793, 0, 0, 0, 0, 0, 0, -1845, - 1314, 758, 0, 0, 0, 0, 0, 0, 0, 0, - 1314, 0, 761, 1314, 1043, 0, 0, 0, 0, 0, - 1044, 0, 1050, -1845, 0, 0, 0, 1056, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 515, 0, 0, - 0, 0, 0, 0, 0, 0, 1057, 0, 761, 0, - 0, 0, 0, 0, 0, 0, 0, 515, 515, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 515, 0, 0, 0, 0, 0, 0, 761, - 0, 0, 761, 0, 1999, 2001, 0, 0, 2853, 0, - 0, 0, 0, 0, 0, 0, 0, 1058, 0, 0, - 0, -1845, 0, 0, 0, 2874, 515, 1314, 1407, 1408, - 1409, 1410, 1411, 1412, 0, 0, 0, 0, 0, 0, - 1314, 0, 0, 0, 2793, -1845, 1045, 0, 0, 0, - 0, 0, 1407, 1408, 1409, 1410, 1411, 1412, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1668, 0, 515, - 0, 0, 0, 0, 0, 0, 0, 1687, 0, 1705, - 0, 0, 1716, 1719, 1724, 1727, 0, 0, 0, 0, - 0, 759, 0, 0, 0, 0, 0, 2924, 0, 0, - 0, 0, 0, 0, 0, 0, 1739, 0, 1059, 0, - 0, 0, 1743, 1744, 1745, 1746, 1747, 1748, 1749, 0, - 762, 0, 0, 1758, 1759, 0, 0, 2951, 1770, 0, - 0, 0, 1773, 0, 0, 1781, 1782, 1783, 1784, 1785, - 1786, 1787, 1788, 1789, 0, 764, 1790, 0, 515, 0, - 0, 0, 2790, 963, 1379, 0, 1120, 1380, 0, 1060, - 0, 1381, 1382, 1383, 1384, 1385, 1386, 1061, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1822, 1062, - 0, 1387, 0, 0, 762, 0, 0, 0, 0, 1389, - 0, 0, 0, 0, 0, 0, 1390, 0, 0, 0, - 1046, 0, 762, 2159, 761, 0, 0, 1356, 1357, 764, - 1063, 0, 0, 0, 0, 0, 0, 0, 2790, -39, - 0, 1391, 0, 2172, 2172, 0, 0, 764, 0, 762, - 0, 0, 0, 0, 0, 0, 762, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 2, 1912, 3, 4, 764, 1048, 0, 1065, 0, 762, - 0, 764, 0, 0, 0, 0, 0, 0, 5, 0, - 0, 0, 0, 0, 0, 0, 0, 6, 0, 1066, - 0, 0, 0, 0, 764, 1913, 0, 0, 0, 7, - 1120, 0, 0, 1943, 1944, 0, 1945, 0, 0, 1068, - 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 9, 0, 10, 0, 0, 0, 0, 0, - 0, 0, 1392, 0, 0, 1120, 0, 0, 0, 0, - 0, 0, 11, 0, 0, 0, 0, 0, 1393, 0, - 0, 0, 0, 1394, 0, 0, 12, 0, 0, 0, - 0, 0, 0, 1050, 0, 0, 13, 0, 0, 0, - 0, 0, 14, 0, 0, 1395, 1396, 0, 0, 0, - 15, 0, 16, 17, 0, 0, 0, 0, 0, 2295, - 1397, 0, 0, 762, 0, 1120, 18, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 2035, 0, 0, 0, - 0, 2041, 0, 0, 0, 0, 0, 0, 764, 0, - 0, 0, 0, 0, 0, 19, 0, 0, 1398, 0, - 0, 1399, 0, 0, 0, 0, 0, 0, 0, 0, - 20, 0, 0, 0, 0, 1400, 0, 0, 1401, 0, - 2056, 0, 0, 0, 762, 0, 0, 0, 0, 0, - 0, 1724, 0, 1724, 1724, 0, 21, 0, 0, 0, - 0, 2094, 0, 0, 0, 2097, 0, 0, 2099, 764, + 2614, 0, 0, 0, 0, 1064, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 44, + 2494, 0, 0, 0, 2632, 0, 618, 618, 618, 618, + 0, 2855, 0, 2404, 2419, 0, 2404, 2404, 0, 0, + 515, 0, 0, 0, 1064, 2158, 0, 0, 2876, 2158, + 0, 1277, 1278, 0, 0, 515, 1065, 0, 0, 0, + 0, 0, 0, 0, 1066, 0, 0, 0, 0, 0, + 0, 0, 1709, 0, 0, 0, 1067, 985, 0, 0, + 0, 0, 2192, 0, 765, 0, 1877, 0, 0, 0, + 0, 0, 1514, 1384, 0, 1065, 1385, 1051, 1572, 0, + 1386, 0, 0, 1066, 0, 0, 0, 1068, 0, 0, + 0, 680, 515, 0, 0, 1067, 0, 2495, 0, 618, + 2926, 0, 0, 0, 0, 0, 0, 0, 1394, 0, + 0, 0, 0, 0, 0, -1846, 2717, 0, 0, 0, + 0, 0, 0, 0, 0, 516, 1068, 763, 1069, 0, + 2953, 0, 1053, 0, 1070, 0, 765, 0, 2792, 0, + 1396, 2795, 0, 0, 1279, 1280, 0, -1587, 0, 0, + 0, 0, 0, 0, 765, 0, 1071, 0, 1125, 0, + 0, 0, 1072, 0, 1281, 0, 0, 0, 0, 0, + 0, 0, 0, 1070, 0, 1339, 1073, 0, 0, 0, + 0, 765, 0, 0, 0, 0, 516, 0, 765, 0, + 0, 0, 1572, 0, 0, 1071, 0, 0, 0, 0, + 0, 1972, 0, 0, 1350, 0, 516, 516, 0, 0, + 2378, 765, 0, 2755, 0, 1073, 0, 2496, 0, 0, + 2497, 0, 516, 0, 1360, 1361, 1362, 0, 0, 1369, + 1055, 0, 0, 0, 0, 0, 1384, 0, 0, 1385, + 766, -1846, -1587, 1386, 0, 0, -1846, -1846, -1846, 2770, + 0, 0, 1426, 0, 768, 516, 0, -1846, 486, 2404, + 0, 2781, -1846, 0, 515, 0, 0, 2158, 0, 0, + 0, 1394, 2158, 2795, 0, 2158, 0, 515, 1395, 0, + 515, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, -1587, 2821, 0, 0, 516, -1846, + 0, 1464, 0, 1396, 0, 1478, 1483, 0, -1587, 0, + 0, 0, 766, -1587, 0, 0, 0, 0, -1587, 0, + 0, 0, 0, 0, 1525, 515, 768, -1587, 0, 0, + 766, -1587, 0, 765, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 768, 515, 515, 0, 0, 0, + 0, 0, 0, 0, 1405, 0, 618, 766, 1514, 0, + 0, 515, -1587, 1125, 766, 0, 0, 0, 0, 0, + 0, 768, 0, 618, 1125, 0, 2821, 516, 768, 0, + 0, 2792, -1587, 0, 0, 0, 0, 766, 0, 0, + 0, 0, 0, 765, 515, 0, 0, 0, 1125, 0, + 0, 768, 0, 0, 1397, 0, 0, 2158, 0, 0, + 0, 0, 515, 0, 0, 0, 0, 0, 0, 0, + 1398, 0, 0, 0, 0, 1399, 0, 0, 0, 0, + 2912, -1587, 0, 0, -1587, 985, 0, 515, 0, 0, + -1587, 0, 0, 0, 0, 618, -1846, 2792, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1378, 0, 0, 0, 0, 1379, - 0, 0, 1380, 0, 1415, 0, 1381, 1382, 1383, 1384, - 1385, 1386, 0, 0, 0, 2117, 0, 0, 2120, 0, - 2122, 0, 0, 0, 762, 0, 1387, 0, 0, 1388, - 0, 0, 0, 0, 1389, 0, 0, 1402, 0, 0, - 0, 1390, 0, 22, 0, 1415, 23, 0, 0, 764, + 0, 680, 1402, 765, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, -1587, 618, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1391, 0, 0, 0, - 0, 1461, 0, 0, 0, 24, 0, 0, 0, 0, - 0, 0, 0, 0, 25, 0, 1480, 1788, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 26, 0, - 0, 0, 0, 0, 0, 27, 0, 0, 0, 28, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 29, - 2199, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 30, 0, 0, 0, 31, 1314, 0, 0, 1403, - 0, 0, 1404, 1405, 1406, 0, 1407, 1408, 1409, 1410, - 1411, 1412, 0, 0, 0, 762, 0, 0, 0, 2048, - 0, 1415, 0, 0, 0, 0, 0, 1392, 1415, 0, - 0, 32, 0, 0, 0, 0, 33, 0, 0, 1120, - 764, 0, 0, 1393, 0, 0, 0, 0, 1394, 0, - 34, 762, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, -1587, 0, 0, + 0, 0, 0, 486, 0, 0, 0, 0, 0, 766, + 0, 0, 2969, 0, 0, 0, 515, 1405, 0, 0, + 515, 0, 0, 768, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 680, 680, + 680, 0, 2821, 0, 0, 0, 0, 0, -1846, 0, + 0, 0, 0, 2140, 0, 1412, 1413, 1414, 1415, 1416, + 1417, 0, 0, 0, 0, 0, 0, 0, 0, 766, + 0, 1514, 0, 0, 0, 0, 0, 0, 0, 0, + -1587, 0, 0, 768, 0, 0, 515, 0, -1587, 0, + 0, 0, 0, 0, 765, 0, 0, 0, 2912, 0, + 0, 0, 0, 0, 0, -1587, 0, -1587, -1587, 1407, + 0, 0, 1877, 0, 0, 0, 0, 0, 1673, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1692, 765, + 1710, 0, 1514, 1721, 1724, 1729, 1732, 0, 2821, 766, + 0, 0, 0, 0, -1587, 0, 0, -1587, -1587, -1587, + 0, 0, 0, 768, 2781, 680, 0, 1744, 0, 0, + 0, 0, 0, 1748, 1749, 1750, 1751, 1752, 1753, 1754, + 0, 0, 0, 0, 1763, 1764, 0, 0, 0, 1775, + 0, 0, 0, 1778, 0, 0, 1786, 1787, 1788, 1789, + 1790, 1791, 1792, 1793, 1794, 0, 0, 1795, 0, 0, + 0, 765, 0, 0, 968, 0, 0, 1125, 0, 0, + 0, 1408, 0, 0, -1846, -1846, -1846, 0, 1412, 1413, + 1414, 1415, 1416, 1417, 0, 0, 0, -39, 0, 1827, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1395, 1396, 0, 0, 35, 0, 764, 0, 0, 0, - 0, 0, 0, 0, 2290, 1397, 0, 0, 36, 0, - 0, -39, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, + 0, 0, 1420, 0, 0, 0, 1361, 1362, 2, 0, + 3, 4, 0, 0, 0, 0, 0, 0, 0, 0, + 766, 0, 0, 0, 0, 0, 5, 0, 0, 0, + 0, 0, 0, 0, 768, 6, 0, 0, 0, 0, + 0, 0, 0, 1420, 0, 0, 0, 7, 0, 0, + 0, 0, 0, 0, 0, 766, 0, 0, 8, 0, + 0, 0, 0, 0, 0, 0, 0, 765, 0, 768, + 9, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 11, 1125, 0, 0, 1948, 1949, 0, 1950, 0, 0, + 0, 0, 0, 765, 12, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 13, 0, 0, 0, 0, 0, + 14, 0, 0, 0, 0, 0, 1125, 766, 15, 0, + 16, 17, 0, 1384, 765, 0, 1385, 765, 0, 0, + 1386, 768, 0, 0, 18, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1420, + 0, 0, 0, 0, 0, 0, 1420, 0, 1394, 0, + 0, 0, 0, 19, 0, -1846, 0, 0, 0, 0, + 0, 0, 1384, 0, 0, 1385, 1125, 0, 20, 1386, + 0, 0, 0, 0, 0, 0, 1384, 2040, 0, 1385, + 1396, 0, 2046, 1386, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 21, 0, 0, 1394, 1384, 0, + 0, 1385, 0, 0, -1846, 1386, 1387, 1388, 1389, 1390, + 1391, 1394, 0, 0, 0, 0, 0, 0, -1846, 0, + 0, 2061, 0, 766, 0, 1392, 0, 0, 0, 1396, + 0, 0, 1729, 1394, 1729, 1729, 0, 768, 0, 0, + 1395, 0, 2099, 1396, 0, 0, 2102, 0, 0, 2104, + 2379, 0, 0, 0, 0, 0, 0, 0, 0, 766, + 0, 0, 0, 0, 0, 1396, 0, 0, 0, 0, + 0, 22, 0, 768, 23, 0, 0, 0, 0, 0, + 0, -1846, 0, 0, 0, 0, 2122, 0, 0, 2125, + 766, 2127, 0, 766, 0, 0, 0, -1846, 0, 2625, + 0, 0, -1846, 24, 768, 0, 0, 768, 0, 0, + 0, 0, 25, 0, 0, 0, 0, 765, 0, 0, + 0, 0, 0, 0, 0, 0, 26, 0, 0, 0, + -1846, 0, 0, 27, 0, 0, 0, 28, 0, -1846, + 0, 0, 1464, 0, -1846, 0, -1846, 29, 0, 0, + 0, -1846, 0, 1420, 0, 0, 0, 1483, 1793, 30, + -1846, 0, 0, 31, 1420, -1846, 1397, 0, 1717, 0, + 0, 0, 0, 0, 1420, 1420, 1420, 0, 0, 0, + 0, 0, 1398, 1420, 0, 0, 0, 1399, -1846, 0, + 0, 2204, 0, 0, 1405, 0, 0, 0, 0, 32, + 0, 0, -1846, 0, 33, 0, 0, 0, 0, 1400, + 1401, 0, 0, 0, 0, 0, 0, 0, 34, 0, + 0, 0, 0, 0, 1402, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 762, 1398, 0, 0, 1399, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 2316, 0, 0, - 1400, 0, 0, 1401, 517, 0, 2320, 764, 0, 2321, - 0, 0, 2323, 0, 0, 0, 0, 0, 0, 0, + 1420, 1384, 35, 1405, 1385, 0, 0, 0, 1386, 0, + 1125, 1389, 1390, 1391, 0, 0, 36, 1405, 0, -39, + 0, 0, 1403, 0, 0, 1404, 0, 0, 1392, 0, + 0, 0, 0, 0, 0, 0, 1394, 0, 1420, 1405, + 0, 0, 1406, 1395, 0, 0, -1846, 0, 0, 0, + 0, 0, 1420, 766, 0, 2292, 0, 1420, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 768, 1396, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 2344, - 2345, 0, 0, 1822, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 2355, 0, 0, 518, 0, 0, - 0, 0, 0, 2362, 0, 0, 2365, 0, 2367, 0, - 0, 0, 0, 519, 0, 0, 2371, 0, 0, 0, - 0, 0, 0, 0, 2378, 2379, 0, 0, 2382, 0, - 0, 0, 1402, 0, 0, 1415, 0, 0, 762, 0, - 0, 0, 0, 0, 0, 0, 1415, 1314, 0, 0, - 1712, 0, 1314, 0, 0, 2421, 1415, 1415, 1415, 0, - 0, 1379, 0, 764, 1380, 1415, 0, 520, 1381, 1382, - 1383, 1384, 1385, 1386, 762, 0, 0, 521, 0, 0, - 0, 2435, 0, 0, 0, 0, 0, 0, 1387, 522, - 0, 0, 0, 0, 523, 0, 1389, 0, 2448, 764, - 0, 1634, 1636, 1390, 0, 762, 0, 0, 762, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 524, 1415, 0, 0, 0, 0, 0, 1391, 0, - 764, 0, 0, 764, 1403, 0, 0, 1404, 1405, 1406, - 0, 1407, 1408, 1409, 1410, 1411, 1412, 0, 0, 0, + 0, 0, 0, 0, 0, -1846, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 2318, -1846, + 0, 0, 0, 0, 0, 0, 0, 2322, 0, 0, + 2323, 0, 0, 2325, 0, 0, 0, 0, 0, 0, + 0, 1407, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, -1846, 0, + 2346, 2347, 0, 0, 1827, 1412, 1413, 1414, 1415, 1416, + 1417, 0, 0, 0, 0, 2357, 0, 0, 0, 1397, + 0, 0, 0, 0, 2364, 0, 0, 2367, 0, 2369, + 0, 0, 0, 0, 0, 1398, 0, 2373, 0, 0, + 1399, 0, 0, 0, 0, 2380, 2381, -1846, 0, 2384, + 0, 0, 0, 0, 1412, 1413, 1414, 1415, 1416, 1417, + 0, -1846, 1400, 1401, 0, 0, 0, 0, 1412, 1413, + 1414, 1415, 1416, 1417, 0, 0, 2423, 1402, 0, 0, + 0, 0, 0, 1408, 0, 0, 1409, 1410, 1411, 0, + 1412, 1413, 1414, 1415, 1416, 1417, 0, 1420, 0, 0, + 0, 0, 2437, 2053, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1403, 1420, 0, 1404, 2450, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1415, 0, 0, 0, 525, 0, 0, 0, - 526, 0, 0, 0, 0, 0, 1415, 0, 0, 0, - 0, 1415, 0, 0, 0, 0, 0, 0, 1379, 0, - 0, 1380, 0, 0, 0, 1381, 1382, 1383, 1384, 1385, - 1386, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1387, 2600, 0, 2359, 0, - 0, 0, 0, 1389, 0, 0, 0, 0, 0, 1392, - 1390, 0, 0, 527, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1393, 0, 528, 0, 0, - 1394, 0, 0, 0, 0, 1391, 0, 0, 0, 0, - 0, 0, 0, 0, 2613, 2614, 0, 0, 0, 2615, - 1634, 1636, 1395, 1396, 2618, 0, 0, 2621, 2622, 0, - 529, 1314, 2626, 530, 0, 0, 0, 1397, 0, 0, - 0, 531, 0, 0, 532, 0, 0, 0, 0, 0, + 0, 0, 1405, 0, 1420, 1406, 1717, 1717, 0, 2079, + 0, 1717, 0, 0, 0, 1420, 0, 0, 1420, 0, + 0, 0, 0, 1420, 0, 0, 1420, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1420, 0, + 0, 0, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 0, + 0, 0, 0, 0, 1717, 1717, 0, 1420, 1420, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1420, + 0, 0, 1420, 0, 0, 0, 0, 0, 0, 0, + 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, + 0, 0, 0, 0, 1407, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 2602, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 762, 0, 0, 533, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1398, 0, 534, 1399, 0, - 0, 0, 0, 0, 535, 764, 0, 963, 0, 0, - 0, 0, 1400, 536, 0, 1401, 0, 0, 0, 537, - 0, 0, 0, 0, 0, 0, 1392, 0, 0, 0, - 0, 0, 0, 0, 0, 2690, 0, 0, 0, 1415, - 0, 0, 1393, 0, 538, 0, 0, 1394, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1415, 0, - 0, 0, 2709, 0, 0, 0, 0, 0, 0, 1395, - 1396, 0, 0, 0, 0, 0, 1415, 0, 1712, 1712, - 0, 2074, 0, 1712, 1397, 0, 0, 1415, 0, 0, - 1415, 0, 0, 0, 0, 1415, 0, 0, 1415, 0, - 0, 0, 0, 0, 1402, 0, 0, 0, 0, 0, - 1415, 0, 0, 0, 1415, 1415, 1415, 1415, 1415, 1415, - 1415, 0, 1398, 0, 0, 1399, 1712, 1712, 0, 1415, - 1415, 0, 0, 0, 0, 0, 0, 0, 0, 1400, - 0, 1415, 1401, 0, 1415, 0, 0, 0, 0, 0, - 0, 0, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, - 1415, 1415, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1420, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 2094, 0, 0, 0, 0, 0, 0, 0, 0, - 2763, 2764, 1379, 1415, 2765, 1380, 0, 0, 0, 1381, - 1382, 1383, 1384, 1385, 1386, 0, 1403, 0, 0, 1404, - 1405, 1406, 0, 1407, 1408, 1409, 1410, 1411, 1412, 1387, - 0, 1564, 0, 1314, 0, 0, 0, 1389, 0, 0, - 0, 1402, 2807, 2808, 1390, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 2823, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1391, - 0, 0, 0, 0, 2832, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 2615, 2616, 0, 0, 0, 2617, 0, 0, + 0, 0, 2620, 0, 0, 2623, 2624, 0, 0, 0, + 2628, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1408, 0, 0, 1409, + 1410, 1411, 0, 1412, 1413, 1414, 1415, 1416, 1417, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 968, 1384, 0, 0, 1385, + 0, 0, 0, 1386, 0, 0, 1389, 1390, 1391, 0, + 0, 0, 1420, 1420, 1420, 0, 0, 0, 0, 0, + 0, 0, 0, 2692, 0, 0, 0, 0, 0, 0, + 0, 1394, 0, 0, 0, 0, 0, 0, 1395, 1383, + 0, 0, 0, 0, 1384, 0, 0, 1385, 0, 0, + 2711, 1386, 1387, 1388, 1389, 1390, 1391, 0, 0, 0, + 0, 0, 0, 1396, 0, 0, 0, 0, 0, 0, + 0, 1392, 0, 0, 1393, 0, 0, 0, 0, 1394, + 1384, 0, 0, 1385, 0, 0, 1395, 1386, 1387, 1388, + 1389, 1390, 1391, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1420, 0, 0, 1392, 0, 0, + 1420, 1396, 0, 0, 0, 1394, 0, 0, 0, 0, + 0, 0, 1395, 2079, 2079, 1420, 0, 1717, 1717, 1717, + 1717, 1717, 0, 0, 1717, 1717, 1717, 1717, 1717, 1717, + 1717, 1717, 1717, 1717, 2079, 0, 0, 1396, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1415, 1415, 1415, 0, 0, 0, + 0, 0, 0, 1420, 1397, 0, 1420, 0, 1420, 2099, + 0, 0, 2079, 2079, 0, 0, 0, 0, 2765, 2766, + 1398, 0, 2767, 0, 0, 1399, 1420, 1717, 1717, 1420, + 0, 1420, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1400, 1401, 0, + 0, 0, 1397, 0, 0, 0, 0, 0, 0, 0, + 2809, 2810, 1402, 0, 0, 0, 0, 0, 1398, 0, + 0, 1384, 0, 1399, 1385, 2825, 0, 0, 1386, 1387, + 1388, 1389, 1390, 1391, 0, 0, 0, 0, 1397, 0, + 0, 0, 2834, 0, 0, 1400, 1401, 0, 1392, 0, + 1403, 2361, 0, 1404, 1398, 0, 1394, 0, 1420, 1399, + 1402, 0, 0, 1395, 0, 0, 0, 1405, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1403, 0, 0, 1404, 1405, 1406, 0, - 1407, 1408, 1409, 1410, 1411, 1412, 0, 0, 0, 0, - 1733, 0, 0, 2894, 0, 1379, 0, 0, 1380, 0, - 1392, 0, 1381, 1382, 1383, 1384, 1385, 1386, 0, 0, - 1364, 0, 0, 0, 0, 0, 1393, 0, 0, 0, - 0, 1394, 1387, 0, 0, 963, 0, 0, 2916, 0, - 1389, 0, 0, 0, 0, 0, 0, 1390, 0, 0, - 0, 0, 2935, 1395, 1396, 0, 1415, 0, 0, 0, - 0, 0, 1415, 0, 0, 0, 0, 0, 1397, 0, - 0, 0, 1391, 0, 0, 2074, 2074, 1415, 0, 1712, - 1712, 1712, 1712, 1712, 0, 0, 1712, 1712, 1712, 1712, - 1712, 1712, 1712, 1712, 1712, 1712, 2074, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1398, 0, 0, 1399, - 0, 0, 0, 0, 0, 1415, 0, 0, 1415, 0, - 1415, 0, 0, 1400, 2074, 2074, 1401, 0, 2807, 0, - 0, 0, 2979, 0, 0, 0, 0, 0, 1415, 1712, - 1712, 1415, 0, 1415, 0, 0, 0, 0, 0, 0, + 0, 1400, 1401, 0, 0, 0, 0, 0, 1396, 0, + 0, 0, 0, 0, 0, 0, 1402, 0, 1403, 0, + 0, 1404, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1384, 1405, 0, 1385, 1406, 0, + 0, 1386, 1387, 1388, 1389, 1390, 1391, 0, 0, 0, + 0, 2896, 0, 0, 1403, 0, 0, 1404, 0, 0, + 0, 1392, 0, 0, 0, 0, 1420, 0, 1369, 1394, + 0, 1405, 0, 0, 1406, 0, 1395, 0, 0, 1407, + 0, 0, 0, 968, 0, 0, 2918, 0, 0, 0, + 0, 0, 1420, 0, 0, 0, 1420, 1420, 0, 1420, + 2937, 1396, 2079, 2079, 2079, 2079, 2079, 0, 0, 1397, + 2079, 2079, 2079, 2079, 2079, 2079, 2079, 2079, 2079, 2079, + 1420, 1420, 0, 0, 0, 1398, 0, 1407, 0, 0, + 1399, 1420, 0, 0, 0, 0, 0, 0, 1420, 0, + 0, 1420, 0, 1420, 0, 0, 0, 1420, 0, 0, + 2079, 2079, 1400, 1401, 1420, 1420, 0, 0, 1420, 0, + 0, 0, 0, 1407, 0, 0, 0, 1402, 0, 0, + 0, 0, 0, 0, 0, 0, 2809, 0, 0, 0, + 2981, 1408, 0, 0, 1409, 1410, 1411, 0, 1412, 1413, + 1414, 1415, 1416, 1417, 0, 0, 0, 1420, 0, 0, + 0, 0, 1397, 0, 0, 1403, 0, 0, 1404, 0, + 3010, 1420, 0, 0, 0, 0, 0, 0, 1398, 0, + 0, 0, 1405, 1399, 1420, 1406, 0, 0, 0, 1408, + 0, 0, 1409, 1410, 1411, 0, 1412, 1413, 1414, 1415, + 1416, 1417, 0, 2809, 0, 1400, 1401, 0, 1717, 0, + 0, 0, 0, 0, 518, 0, 0, 0, 0, 0, + 1402, 0, 0, 0, 0, 1408, 0, 0, 1409, 1410, + 1411, 0, 1412, 1413, 1414, 1415, 1416, 1417, 0, 0, + 0, 0, 1738, 0, 1384, 0, 0, 1385, 0, 3058, + 3058, 1386, 1387, 1388, 1389, 1390, 1391, 0, 1403, 0, + 0, 1404, 0, 0, 0, 0, 0, 519, 0, 0, + 0, 1392, 0, 0, 1407, 1405, 0, 0, 1406, 1394, + 0, 0, 3058, 520, 0, 0, 1395, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 3008, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1392, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1393, - 0, 0, 0, 0, 1394, 2807, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1402, 1395, 1396, 0, 0, - 1415, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1397, 0, 0, 0, 0, 0, 0, 0, 0, - 1379, 3056, 3056, 1380, 0, 0, 0, 1381, 1382, 1383, - 1384, 1385, 1386, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1387, 0, 1398, - 0, 0, 1399, 0, 3056, 1389, 0, 0, 0, 0, - 0, 0, 1390, 0, 0, 0, 1400, 0, 0, 1401, + 0, 1396, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 3058, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1420, 521, 0, 0, + 1717, 0, 1048, 0, 0, 0, 0, 522, 1049, 1420, + 1420, 1420, 0, 0, 1420, 1061, 0, 1420, 1420, 523, + 0, 0, 1420, 0, 524, 0, 0, 1407, 0, 0, + 0, 0, 0, 0, 1062, 0, 1408, 0, 0, 1409, + 1410, 1411, 0, 1412, 1413, 1414, 1415, 1416, 1417, 0, + 0, 525, 0, 1738, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1391, 0, 0, - 0, 1415, 0, 0, 0, 3056, 0, 1403, 0, 0, - 1404, 1405, 1406, 0, 1407, 1408, 1409, 1410, 1411, 1412, - 0, 0, 0, 0, 1733, 0, 0, 1415, 0, 0, - 0, 1415, 1415, 0, 1415, 0, 0, 2074, 2074, 2074, - 2074, 2074, 0, 0, 0, 2074, 2074, 2074, 2074, 2074, - 2074, 2074, 2074, 2074, 2074, 1415, 1415, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1415, 0, 1402, 0, - 0, 0, 0, 1415, 0, 0, 1415, 0, 1415, 0, - 0, 0, 1415, 0, 0, 2074, 2074, 0, 0, 1415, - 1415, 0, 0, 1415, 1379, 0, 0, 1380, 1392, 0, - 0, 1381, 1382, 1383, 1384, 1385, 1386, 0, 0, 0, - 0, 0, 0, 0, 1393, 0, 0, 0, 0, 1394, - 0, 1387, 0, 0, 0, 0, 0, 0, 0, 1389, - 0, 0, 1415, 0, 0, 0, 1390, 0, 0, 0, - 0, 1395, 1396, 0, 0, 0, 1415, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1397, 0, 0, 1415, - 0, 1391, 0, 0, 0, 0, 0, 0, 0, 0, - 1403, 0, 0, 1404, 1405, 1406, 0, 1407, 1408, 1409, - 1410, 1411, 1412, 1712, 0, 0, 0, 2101, 0, 0, - 0, 0, 0, 0, 1398, 0, 0, 1399, 0, 0, + 0, 0, 1397, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1063, 1420, 0, 1398, 0, + 0, 0, 2079, 1399, 0, 0, 526, 0, 0, 0, + 527, 0, 0, 0, 0, 1420, 0, 0, 0, 0, + 0, 0, 0, 0, 1050, 1400, 1401, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1408, + 1402, 0, 1409, 1410, 1411, 0, 1412, 1413, 1414, 1415, + 1416, 1417, 0, 0, 0, 0, 2106, 0, 0, 0, + 0, 0, 0, 2079, 1717, 0, 0, 0, 0, 1420, + 1420, 1420, 0, 528, 0, 0, 0, 0, 1403, 0, + 0, 1404, 0, 0, 0, 0, 1064, 529, 0, 0, + 0, 0, 0, 0, 0, 1405, 0, 0, 1406, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1400, 0, 0, 1401, 0, 0, 0, 0, 0, - 0, 0, 1379, 0, 0, 1380, 0, 0, 0, 1381, - 1382, 1383, 1384, 1385, 1386, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1387, - 0, 0, 0, 0, 0, 0, 0, 1389, 0, 0, - 0, 0, 1392, 0, 1390, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1393, 0, - 0, 0, 0, 1394, 0, 0, 0, 0, 0, 1391, + 0, 0, 0, 1420, 1420, 0, 0, 0, 0, 0, + 530, 0, 0, 531, 0, 0, 0, 0, 0, 1420, + 0, 532, 0, 0, 533, 0, 0, 1065, 1420, 0, + 0, 0, 0, 0, 0, 1066, 0, 0, 0, 0, + 0, 0, 0, 534, 0, 0, 0, 1067, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 535, 0, 0, + 0, 0, 0, 0, 536, 0, 0, 0, 1051, 0, + 0, 0, 2079, 537, 0, 0, 0, 1407, 1068, 538, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1402, 0, 1395, 1396, 0, 0, 0, - 0, 1415, 0, 0, 0, 1712, 0, 0, 0, 0, - 1397, 0, 0, 0, 1415, 1415, 1415, 0, 0, 1415, - 0, 0, 1415, 1415, 0, 0, 0, 1415, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1398, 0, - 0, 1399, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1400, 0, 0, 1401, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1392, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1415, 0, 0, 0, 1403, 1393, 2074, 1404, 1405, - 1406, 1394, 1407, 1408, 1409, 1410, 1411, 1412, 0, 0, - 1415, 0, 2319, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1395, 1396, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1397, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1402, 2074, 1712, - 0, 0, 0, 0, 1415, 1415, 1415, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1398, 0, 0, 1399, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1400, 0, 0, 1401, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1415, 1415, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1415, 0, 0, 0, 0, 0, - 0, 0, 0, 1415, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1403, - 0, 0, 1404, 1405, 1406, 0, 1407, 1408, 1409, 1410, - 1411, 1412, 0, 0, 0, 0, 2360, 2074, 0, 0, - 0, 0, 0, 0, 0, 1402, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1415, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1415, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1415, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1415, 0, 0, 0, 0, 0, 0, 1403, 0, 0, - 1404, 1405, 1406, 0, 1407, 1408, 1409, 1410, 1411, 1412, - 0, 0, 0, 0, 2450, 0, 0, 0, 0, 1415, - 0, 0, 0, 0, 0, 0, 0, 0, 1080, 883, - 582, 884, 885, 886, 887, 888, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 94, 95, 96, 97, - 98, 99, 100, 101, 1081, 102, 103, 104, 0, 0, - 0, 0, 889, 0, 0, 105, 106, 1415, 107, 108, - 109, 1082, 111, 112, 113, 114, 890, 1083, 891, 892, - 0, 119, 120, 121, 122, 123, 124, 893, 894, 125, - 126, 895, 896, 129, 0, 130, 131, 132, 133, 897, - 0, 1084, 0, 136, 137, 138, 139, 140, 141, 1085, - 143, 144, 145, 0, 146, 147, 148, 149, 150, 151, - 0, 1086, 153, 154, 155, 1087, 1088, 1089, 1090, 903, - 904, 1091, 161, 162, 163, 164, 165, 166, 167, 906, - 907, 170, 908, 171, 0, 172, 173, 174, 175, 176, - 177, 0, 178, 179, 180, 181, 182, 1092, 0, 183, - 184, 712, 186, 187, 0, 188, 189, 190, 0, 191, - 192, 193, 0, 194, 195, 196, 197, 909, 199, 200, - 201, 202, 203, 910, 911, 205, 0, 206, 207, 912, - 209, 0, 210, 0, 211, 1093, 0, 1094, 214, 215, - 1095, 1096, 218, 0, 219, 0, 913, 914, 222, 0, - 223, 224, 225, 226, 227, 228, 229, 1097, 231, 232, - 233, 234, 0, 235, 236, 237, 238, 239, 240, 0, - 241, 1098, 243, 244, 245, 246, 247, 248, 915, 916, - 0, 917, 0, 252, 1099, 1100, 255, 1101, 257, 258, - 259, 260, 261, 262, 0, 0, 263, 1102, 265, 1103, - 0, 267, 268, 269, 918, 919, 270, 271, 272, 273, - 274, 1104, 276, 277, 278, 279, 280, 281, 282, 283, - 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, - 920, 1105, 921, 297, 298, 299, 300, 922, 301, 302, - 1106, 304, 923, 924, 306, 925, 308, 309, 310, 0, - 311, 312, 0, 0, 926, 314, 315, 0, 0, 316, - 317, 1107, 319, 1108, 927, 322, 323, 324, 325, 326, - 327, 328, 329, 330, 331, 0, 332, 333, 928, 335, - 336, 337, 338, 339, 340, 0, 341, 342, 343, 344, - 345, 346, 0, 347, 348, 349, 929, 351, 352, 353, - 354, 0, 355, 356, 357, 358, 359, 360, 361, 362, - 363, 364, 365, 366, 367, 0, 368, 369, 1109, 371, - 372, 373, 930, 375, 376, 377, 378, 379, 380, 381, - 382, 383, 384, 385, 0, 386, 387, 388, 389, 390, - 1110, 392, 393, 394, 395, 396, 1111, 398, 399, 932, - 401, 0, 402, 403, 404, 405, 406, 407, 408, 409, - 410, 411, 412, 413, 1112, 415, 933, 417, 0, 418, - 419, 0, 420, 1113, 422, 423, 424, 425, 426, 0, - 934, 935, 0, 0, 429, 430, 936, 432, 937, 938, - 434, 435, 1114, 437, 438, 439, 440, 441, 0, 0, - 442, 443, 444, 445, 446, 1115, 0, 448, 449, 450, - 451, 452, 453, 941, 1116, 455, 1117, 457, 458, 459, - 460, 461, 0, 0, 462, 0, 0, 463, 464, 465, - 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, - 476, 477, 478, 479, 480, 481, 482, 483, 942, 0, - 0, 0, 0, 0, 0, 943, 944, 1118, 0, 0, - 0, 0, 946, 0, 947, 1119, 0, 0, 0, 948, - 0, 949, 950, 93, 883, 582, 884, 885, 886, 887, - 888, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 94, 95, 96, 97, 98, 99, 100, 101, 0, - 102, 103, 104, 0, 0, 0, 0, 889, 0, 0, - 105, 106, 0, 107, 108, 109, 110, 111, 112, 113, - 114, 890, 116, 891, 892, 0, 119, 120, 121, 122, - 123, 124, 893, 894, 125, 126, 895, 896, 129, 0, - 130, 131, 132, 133, 897, 0, 898, 0, 136, 137, - 138, 139, 140, 141, 142, 143, 144, 145, 0, 146, - 147, 148, 149, 150, 151, 0, 152, 153, 154, 155, - 899, 900, 901, 902, 903, 904, 905, 161, 162, 163, - 164, 165, 166, 167, 906, 907, 170, 908, 171, 0, + 1420, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 539, 0, 0, 0, 0, 0, + 0, 0, 1420, 0, 0, 0, 0, 0, 0, 1917, + 0, 0, 0, 1053, 0, 1070, 0, 0, 0, 0, + 0, 1420, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1071, 0, 0, + 0, 0, 0, 1918, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1073, 0, 0, + 0, 0, 0, 0, 0, 1420, 0, 0, 0, 1408, + 0, 0, 1409, 1410, 1411, 0, 1412, 1413, 1414, 1415, + 1416, 1417, 0, 0, 0, 0, 2321, 0, 0, 0, + 0, 0, 0, 0, 1420, 0, 0, 0, 0, 0, + 0, 0, 0, 1085, 888, 583, 889, 890, 891, 892, + 893, 1055, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 94, 95, 96, 97, 98, 99, 100, 101, 1086, + 102, 103, 104, 0, 0, 0, 0, 894, 0, 0, + 105, 106, 1420, 107, 108, 109, 1087, 111, 112, 113, + 114, 895, 1088, 896, 897, 0, 119, 120, 121, 122, + 123, 124, 898, 899, 125, 126, 900, 901, 129, 0, + 130, 131, 132, 133, 902, 0, 1089, 0, 136, 137, + 138, 139, 140, 141, 1090, 143, 144, 145, 0, 146, + 147, 148, 149, 150, 151, 0, 1091, 153, 154, 155, + 1092, 1093, 1094, 1095, 908, 909, 1096, 161, 162, 163, + 164, 165, 166, 167, 911, 912, 170, 913, 171, 0, 172, 173, 174, 175, 176, 177, 0, 178, 179, 180, - 181, 182, 0, 0, 183, 184, 712, 186, 187, 0, + 181, 182, 1097, 0, 183, 184, 717, 186, 187, 0, 188, 189, 190, 0, 191, 192, 193, 0, 194, 195, - 196, 197, 909, 199, 200, 201, 202, 203, 910, 911, - 205, 0, 206, 207, 912, 209, 0, 210, 0, 211, - 212, 0, 213, 214, 215, 216, 217, 218, 0, 219, - 0, 913, 914, 222, 0, 223, 224, 225, 226, 227, - 228, 229, 230, 231, 232, 233, 234, 0, 235, 236, - 237, 238, 239, 240, 0, 241, 242, 243, 244, 245, - 246, 247, 248, 915, 916, 0, 917, 0, 252, 253, - 254, 255, 256, 257, 258, 259, 260, 261, 262, 0, - 0, 263, 264, 265, 266, 0, 267, 268, 269, 918, - 919, 270, 271, 272, 273, 274, 275, 276, 277, 278, + 196, 197, 914, 199, 200, 201, 202, 203, 915, 916, + 205, 0, 206, 207, 917, 209, 0, 210, 0, 211, + 1098, 0, 1099, 214, 215, 1100, 1101, 218, 0, 219, + 0, 918, 919, 222, 0, 223, 224, 225, 226, 227, + 228, 229, 1102, 231, 232, 233, 234, 0, 235, 236, + 237, 238, 239, 240, 0, 241, 1103, 243, 244, 245, + 246, 247, 248, 920, 921, 0, 922, 0, 252, 1104, + 1105, 255, 1106, 257, 258, 259, 260, 261, 262, 0, + 0, 263, 1107, 265, 1108, 0, 267, 268, 269, 923, + 924, 270, 271, 272, 273, 274, 1109, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, - 289, 290, 291, 292, 293, 920, 295, 921, 297, 298, - 299, 300, 922, 301, 302, 303, 304, 923, 924, 306, - 925, 308, 309, 310, 0, 311, 312, 0, 0, 926, - 314, 315, 0, 0, 316, 317, 318, 319, 320, 927, + 289, 290, 291, 292, 293, 925, 1110, 926, 297, 298, + 299, 300, 927, 301, 302, 1111, 304, 928, 929, 306, + 930, 308, 309, 310, 0, 311, 312, 0, 0, 931, + 314, 315, 0, 0, 316, 317, 1112, 319, 1113, 932, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, - 0, 332, 333, 928, 335, 336, 337, 338, 339, 340, + 0, 332, 333, 933, 335, 336, 337, 338, 339, 340, 0, 341, 342, 343, 344, 345, 346, 0, 347, 348, - 349, 929, 351, 352, 353, 354, 0, 355, 356, 357, + 349, 934, 351, 352, 353, 354, 0, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, - 0, 368, 369, 370, 371, 372, 373, 930, 375, 376, - 377, 378, 379, 380, 381, 382, 383, 384, 385, 26, - 386, 387, 388, 389, 390, 931, 392, 393, 394, 395, - 396, 397, 398, 399, 932, 401, 0, 402, 403, 404, - 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, - 415, 933, 417, 0, 418, 419, 31, 420, 421, 422, - 423, 424, 425, 426, 0, 934, 935, 0, 0, 429, - 430, 936, 432, 937, 938, 434, 435, 939, 437, 438, + 0, 368, 369, 1114, 371, 372, 373, 935, 375, 376, + 377, 378, 379, 380, 381, 382, 383, 384, 385, 0, + 386, 387, 388, 389, 390, 1115, 392, 393, 394, 395, + 396, 1116, 398, 399, 937, 401, 0, 402, 403, 404, + 405, 406, 407, 408, 409, 410, 411, 412, 413, 1117, + 415, 938, 417, 0, 418, 419, 0, 420, 1118, 422, + 423, 424, 425, 426, 0, 939, 940, 0, 0, 429, + 430, 941, 432, 942, 943, 434, 435, 1119, 437, 438, 439, 440, 441, 0, 0, 442, 443, 444, 445, 446, - 940, 0, 448, 449, 450, 451, 452, 610, 941, 0, - 455, 456, 457, 458, 459, 460, 461, 0, 0, 462, - 0, 34, 463, 464, 465, 466, 467, 468, 469, 470, + 1120, 0, 448, 449, 450, 451, 452, 453, 946, 1121, + 455, 1122, 457, 458, 459, 460, 461, 0, 0, 462, + 0, 0, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, - 481, 482, 483, 942, 0, 35, 0, 0, 0, 0, - 943, 944, 0, 0, 0, 0, 0, 946, 0, 947, - 2906, 0, 0, 0, 948, 0, 949, 950, 93, 883, - 582, 884, 885, 886, 887, 888, 0, 0, 0, 0, + 481, 482, 483, 947, 0, 0, 0, 0, 0, 0, + 948, 949, 1123, 0, 0, 0, 0, 951, 0, 952, + 1124, 0, 0, 0, 953, 0, 954, 955, 93, 888, + 583, 889, 890, 891, 892, 893, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 94, 95, 96, 97, 98, 99, 100, 101, 0, 102, 103, 104, 0, 0, - 0, 0, 889, 0, 0, 105, 106, 0, 107, 108, - 109, 110, 111, 112, 113, 114, 890, 116, 891, 892, - 0, 119, 120, 121, 122, 123, 124, 893, 894, 125, - 126, 895, 896, 129, 0, 130, 131, 132, 133, 897, - 0, 898, 0, 136, 137, 138, 139, 140, 141, 142, + 0, 0, 894, 0, 0, 105, 106, 0, 107, 108, + 109, 110, 111, 112, 113, 114, 895, 116, 896, 897, + 0, 119, 120, 121, 122, 123, 124, 898, 899, 125, + 126, 900, 901, 129, 0, 130, 131, 132, 133, 902, + 0, 903, 0, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 0, 146, 147, 148, 149, 150, 151, - 0, 152, 153, 154, 155, 899, 900, 901, 902, 903, - 904, 905, 161, 162, 163, 164, 165, 166, 167, 906, - 907, 170, 908, 171, 0, 172, 173, 174, 175, 176, + 0, 152, 153, 154, 155, 904, 905, 906, 907, 908, + 909, 910, 161, 162, 163, 164, 165, 166, 167, 911, + 912, 170, 913, 171, 0, 172, 173, 174, 175, 176, 177, 0, 178, 179, 180, 181, 182, 0, 0, 183, - 184, 712, 186, 187, 0, 188, 189, 190, 0, 191, - 192, 193, 0, 194, 195, 196, 197, 909, 199, 200, - 201, 202, 203, 910, 911, 205, 0, 206, 207, 912, + 184, 717, 186, 187, 0, 188, 189, 190, 0, 191, + 192, 193, 0, 194, 195, 196, 197, 914, 199, 200, + 201, 202, 203, 915, 916, 205, 0, 206, 207, 917, 209, 0, 210, 0, 211, 212, 0, 213, 214, 215, - 216, 217, 218, 0, 219, 0, 913, 914, 222, 0, + 216, 217, 218, 0, 219, 0, 918, 919, 222, 0, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 0, 235, 236, 237, 238, 239, 240, 0, - 241, 242, 243, 244, 245, 246, 247, 248, 915, 916, - 0, 917, 0, 252, 253, 254, 255, 256, 257, 258, + 241, 242, 243, 244, 245, 246, 247, 248, 920, 921, + 0, 922, 0, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 0, 0, 263, 264, 265, 266, - 0, 267, 268, 269, 918, 919, 270, 271, 272, 273, + 0, 267, 268, 269, 923, 924, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, - 920, 295, 921, 297, 298, 299, 300, 922, 301, 302, - 303, 304, 923, 924, 306, 925, 308, 309, 310, 0, - 311, 312, 0, 0, 926, 314, 315, 0, 0, 316, - 317, 318, 319, 320, 927, 322, 323, 324, 325, 326, - 327, 328, 329, 330, 331, 0, 332, 333, 928, 335, + 925, 295, 926, 297, 298, 299, 300, 927, 301, 302, + 303, 304, 928, 929, 306, 930, 308, 309, 310, 0, + 311, 312, 0, 0, 931, 314, 315, 0, 0, 316, + 317, 318, 319, 320, 932, 322, 323, 324, 325, 326, + 327, 328, 329, 330, 331, 0, 332, 333, 933, 335, 336, 337, 338, 339, 340, 0, 341, 342, 343, 344, - 345, 346, 0, 347, 348, 349, 929, 351, 352, 353, + 345, 346, 0, 347, 348, 349, 934, 351, 352, 353, 354, 0, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 0, 368, 369, 370, 371, - 372, 373, 930, 375, 376, 377, 378, 379, 380, 381, + 372, 373, 935, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 26, 386, 387, 388, 389, 390, - 931, 392, 393, 394, 395, 396, 397, 398, 399, 932, + 936, 392, 393, 394, 395, 396, 397, 398, 399, 937, 401, 0, 402, 403, 404, 405, 406, 407, 408, 409, - 410, 411, 412, 413, 414, 415, 933, 417, 0, 418, + 410, 411, 412, 413, 414, 415, 938, 417, 0, 418, 419, 31, 420, 421, 422, 423, 424, 425, 426, 0, - 934, 935, 0, 0, 429, 430, 936, 432, 937, 938, - 434, 435, 939, 437, 438, 439, 440, 441, 0, 0, - 442, 443, 444, 445, 446, 940, 0, 448, 449, 450, - 451, 452, 610, 941, 0, 455, 456, 457, 458, 459, + 939, 940, 0, 0, 429, 430, 941, 432, 942, 943, + 434, 435, 944, 437, 438, 439, 440, 441, 0, 0, + 442, 443, 444, 445, 446, 945, 0, 448, 449, 450, + 451, 452, 611, 946, 0, 455, 456, 457, 458, 459, 460, 461, 0, 0, 462, 0, 34, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, - 476, 477, 478, 479, 480, 481, 482, 483, 942, 0, - 35, 0, 0, 0, 0, 943, 944, 0, 0, 0, - 0, 0, 946, 0, 947, 0, 0, 0, 0, 948, - 0, 949, 950, 93, 883, 582, 884, 885, 886, 887, - 888, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 476, 477, 478, 479, 480, 481, 482, 483, 947, 0, + 35, 0, 0, 0, 0, 948, 949, 0, 0, 0, + 0, 0, 951, 0, 952, 2908, 0, 0, 0, 953, + 0, 954, 955, 93, 888, 583, 889, 890, 891, 892, + 893, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 94, 95, 96, 97, 98, 99, 100, 101, 0, - 102, 103, 104, 0, 0, 0, 0, 889, 0, 0, + 102, 103, 104, 0, 0, 0, 0, 894, 0, 0, 105, 106, 0, 107, 108, 109, 110, 111, 112, 113, - 114, 890, 116, 891, 892, 1720, 119, 120, 121, 122, - 123, 124, 893, 894, 125, 126, 895, 896, 129, 0, - 130, 131, 132, 133, 897, 0, 898, 0, 136, 137, + 114, 895, 116, 896, 897, 0, 119, 120, 121, 122, + 123, 124, 898, 899, 125, 126, 900, 901, 129, 0, + 130, 131, 132, 133, 902, 0, 903, 0, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 0, 146, 147, 148, 149, 150, 151, 0, 152, 153, 154, 155, - 899, 900, 901, 902, 903, 904, 905, 161, 162, 163, - 164, 165, 166, 167, 906, 907, 170, 908, 171, 0, + 904, 905, 906, 907, 908, 909, 910, 161, 162, 163, + 164, 165, 166, 167, 911, 912, 170, 913, 171, 0, 172, 173, 174, 175, 176, 177, 0, 178, 179, 180, - 181, 182, 0, 0, 183, 184, 712, 186, 187, 0, + 181, 182, 0, 0, 183, 184, 717, 186, 187, 0, 188, 189, 190, 0, 191, 192, 193, 0, 194, 195, - 196, 197, 909, 199, 200, 201, 202, 203, 910, 911, - 205, 0, 206, 207, 912, 209, 0, 210, 0, 211, - 212, 1721, 213, 214, 215, 216, 217, 218, 0, 219, - 0, 913, 914, 222, 0, 223, 224, 225, 226, 227, + 196, 197, 914, 199, 200, 201, 202, 203, 915, 916, + 205, 0, 206, 207, 917, 209, 0, 210, 0, 211, + 212, 0, 213, 214, 215, 216, 217, 218, 0, 219, + 0, 918, 919, 222, 0, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 0, 235, 236, 237, 238, 239, 240, 0, 241, 242, 243, 244, 245, - 246, 247, 248, 915, 916, 0, 917, 0, 252, 253, + 246, 247, 248, 920, 921, 0, 922, 0, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 0, - 1722, 263, 264, 265, 266, 0, 267, 268, 269, 918, - 919, 270, 271, 272, 273, 274, 275, 276, 277, 278, + 0, 263, 264, 265, 266, 0, 267, 268, 269, 923, + 924, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, - 289, 290, 291, 292, 293, 920, 295, 921, 297, 298, - 299, 300, 922, 301, 302, 303, 304, 923, 924, 306, - 925, 308, 309, 310, 0, 311, 312, 0, 0, 926, - 314, 315, 0, 0, 316, 317, 318, 319, 320, 927, + 289, 290, 291, 292, 293, 925, 295, 926, 297, 298, + 299, 300, 927, 301, 302, 303, 304, 928, 929, 306, + 930, 308, 309, 310, 0, 311, 312, 0, 0, 931, + 314, 315, 0, 0, 316, 317, 318, 319, 320, 932, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, - 0, 332, 333, 928, 335, 336, 337, 338, 339, 340, + 0, 332, 333, 933, 335, 336, 337, 338, 339, 340, 0, 341, 342, 343, 344, 345, 346, 0, 347, 348, - 349, 929, 351, 352, 353, 354, 0, 355, 356, 357, + 349, 934, 351, 352, 353, 354, 0, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, - 0, 368, 369, 370, 371, 372, 373, 930, 375, 376, - 377, 378, 379, 380, 381, 382, 383, 384, 385, 0, - 386, 387, 388, 389, 390, 931, 392, 393, 394, 395, - 396, 397, 398, 399, 932, 401, 0, 402, 403, 404, + 0, 368, 369, 370, 371, 372, 373, 935, 375, 376, + 377, 378, 379, 380, 381, 382, 383, 384, 385, 26, + 386, 387, 388, 389, 390, 936, 392, 393, 394, 395, + 396, 397, 398, 399, 937, 401, 0, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, - 415, 933, 417, 0, 418, 419, 0, 420, 421, 422, - 423, 424, 425, 426, 0, 934, 935, 0, 1723, 429, - 430, 936, 432, 937, 938, 434, 435, 939, 437, 438, + 415, 938, 417, 0, 418, 419, 31, 420, 421, 422, + 423, 424, 425, 426, 0, 939, 940, 0, 0, 429, + 430, 941, 432, 942, 943, 434, 435, 944, 437, 438, 439, 440, 441, 0, 0, 442, 443, 444, 445, 446, - 940, 0, 448, 449, 450, 451, 452, 453, 941, 0, + 945, 0, 448, 449, 450, 451, 452, 611, 946, 0, 455, 456, 457, 458, 459, 460, 461, 0, 0, 462, - 0, 0, 463, 464, 465, 466, 467, 468, 469, 470, + 0, 34, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, - 481, 482, 483, 942, 0, 0, 0, 0, 0, 0, - 943, 944, 0, 0, 0, 0, 0, 946, 0, 947, - 0, 0, 0, 0, 948, 0, 949, 950, 93, 883, - 582, 884, 885, 886, 887, 888, 0, 0, 0, 0, + 481, 482, 483, 947, 0, 35, 0, 0, 0, 0, + 948, 949, 0, 0, 0, 0, 0, 951, 0, 952, + 0, 0, 0, 0, 953, 0, 954, 955, 93, 888, + 583, 889, 890, 891, 892, 893, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 94, 95, 96, 97, - 98, 99, 100, 101, -1087, 102, 103, 104, 0, 0, - 0, -1087, 889, 0, 0, 105, 106, 0, 107, 108, - 109, 110, 111, 112, 113, 114, 890, 116, 891, 892, - 0, 119, 120, 121, 122, 123, 124, 893, 894, 125, - 126, 895, 896, 129, 0, 130, 131, 132, 133, 897, - 0, 898, 0, 136, 137, 138, 139, 140, 141, 142, + 98, 99, 100, 101, 0, 102, 103, 104, 0, 0, + 0, 0, 894, 0, 0, 105, 106, 0, 107, 108, + 109, 110, 111, 112, 113, 114, 895, 116, 896, 897, + 1725, 119, 120, 121, 122, 123, 124, 898, 899, 125, + 126, 900, 901, 129, 0, 130, 131, 132, 133, 902, + 0, 903, 0, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 0, 146, 147, 148, 149, 150, 151, - 0, 152, 153, 154, 155, 899, 900, 901, 902, 903, - 904, 905, 161, 162, 163, 164, 165, 166, 167, 906, - 907, 170, 908, 171, 0, 172, 173, 174, 175, 176, + 0, 152, 153, 154, 155, 904, 905, 906, 907, 908, + 909, 910, 161, 162, 163, 164, 165, 166, 167, 911, + 912, 170, 913, 171, 0, 172, 173, 174, 175, 176, 177, 0, 178, 179, 180, 181, 182, 0, 0, 183, - 184, 712, 186, 187, 0, 188, 189, 190, 0, 191, - 192, 193, 0, 194, 195, 196, 197, 909, 199, 200, - 201, 202, 203, 910, 911, 205, 0, 206, 207, 912, - 209, 0, 210, 0, 211, 212, 0, 213, 214, 215, - 216, 217, 218, 0, 219, 0, 913, 914, 222, 0, + 184, 717, 186, 187, 0, 188, 189, 190, 0, 191, + 192, 193, 0, 194, 195, 196, 197, 914, 199, 200, + 201, 202, 203, 915, 916, 205, 0, 206, 207, 917, + 209, 0, 210, 0, 211, 212, 1726, 213, 214, 215, + 216, 217, 218, 0, 219, 0, 918, 919, 222, 0, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 0, 235, 236, 237, 238, 239, 240, 0, - 241, 242, 243, 244, 245, 246, 247, 248, 915, 916, - 0, 917, 0, 252, 253, 254, 255, 256, 257, 258, - 259, 260, 261, 262, 0, 0, 263, 264, 265, 266, - 0, 267, 268, 269, 918, 919, 270, 271, 272, 273, + 241, 242, 243, 244, 245, 246, 247, 248, 920, 921, + 0, 922, 0, 252, 253, 254, 255, 256, 257, 258, + 259, 260, 261, 262, 0, 1727, 263, 264, 265, 266, + 0, 267, 268, 269, 923, 924, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, - 920, 295, 921, 297, 298, 299, 300, 922, 301, 302, - 303, 304, 923, 924, 306, 925, 308, 309, 310, 0, - 311, 312, 0, 0, 926, 314, 315, 0, 0, 316, - 317, 318, 319, 320, 927, 322, 323, 324, 325, 326, - 327, 328, 329, 330, 331, 0, 332, 333, 928, 335, + 925, 295, 926, 297, 298, 299, 300, 927, 301, 302, + 303, 304, 928, 929, 306, 930, 308, 309, 310, 0, + 311, 312, 0, 0, 931, 314, 315, 0, 0, 316, + 317, 318, 319, 320, 932, 322, 323, 324, 325, 326, + 327, 328, 329, 330, 331, 0, 332, 333, 933, 335, 336, 337, 338, 339, 340, 0, 341, 342, 343, 344, - 345, 346, 0, 347, 348, 349, 929, 351, 352, 353, + 345, 346, 0, 347, 348, 349, 934, 351, 352, 353, 354, 0, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 0, 368, 369, 370, 371, - 372, 373, 930, 375, 376, 377, 378, 379, 380, 381, + 372, 373, 935, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 0, 386, 387, 388, 389, 390, - 931, 392, 393, 394, 395, 396, 397, 398, 399, 932, - 401, -1087, 402, 403, 404, 405, 406, 407, 408, 409, - 410, 411, 412, 413, 414, 415, 933, 417, 0, 418, + 936, 392, 393, 394, 395, 396, 397, 398, 399, 937, + 401, 0, 402, 403, 404, 405, 406, 407, 408, 409, + 410, 411, 412, 413, 414, 415, 938, 417, 0, 418, 419, 0, 420, 421, 422, 423, 424, 425, 426, 0, - 934, 935, 0, 0, 429, 430, 936, 432, 937, 938, - 434, 435, 939, 437, 438, 439, 440, 441, 0, 0, - 442, 443, 444, 445, 446, 940, 0, 448, 449, 450, - 451, 452, 453, 941, 0, 455, 456, 457, 458, 459, + 939, 940, 0, 1728, 429, 430, 941, 432, 942, 943, + 434, 435, 944, 437, 438, 439, 440, 441, 0, 0, + 442, 443, 444, 445, 446, 945, 0, 448, 449, 450, + 451, 452, 453, 946, 0, 455, 456, 457, 458, 459, 460, 461, 0, 0, 462, 0, 0, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, - 476, 477, 478, 479, 480, 481, 482, 483, 942, 0, - 0, 0, 0, 0, 0, 943, 944, 0, 0, 0, - 0, 0, 946, 0, 947, 0, 0, 0, 0, 948, - 0, 949, 950, 93, 883, 582, 884, 885, 886, 887, - 888, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 94, 95, 96, 97, 98, 99, 100, 101, 1457, - 102, 103, 104, 0, 0, 0, 0, 889, 0, 0, + 476, 477, 478, 479, 480, 481, 482, 483, 947, 0, + 0, 0, 0, 0, 0, 948, 949, 0, 0, 0, + 0, 0, 951, 0, 952, 0, 0, 0, 0, 953, + 0, 954, 955, 93, 888, 583, 889, 890, 891, 892, + 893, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 94, 95, 96, 97, 98, 99, 100, 101, -608, + 102, 103, 104, 0, 0, 0, -608, 894, 0, 0, 105, 106, 0, 107, 108, 109, 110, 111, 112, 113, - 114, 890, 116, 891, 892, 0, 119, 120, 121, 122, - 123, 124, 893, 894, 125, 126, 895, 896, 129, 0, - 130, 131, 132, 133, 897, 0, 898, 0, 136, 137, + 114, 895, 116, 896, 897, 0, 119, 120, 121, 122, + 123, 124, 898, 899, 125, 126, 900, 901, 129, 0, + 130, 131, 132, 133, 902, 0, 903, 0, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 0, 146, 147, 148, 149, 150, 151, 0, 152, 153, 154, 155, - 899, 900, 901, 902, 903, 904, 905, 161, 162, 163, - 164, 165, 166, 167, 906, 907, 170, 908, 171, 0, + 904, 905, 906, 907, 908, 909, 910, 161, 162, 163, + 164, 165, 166, 167, 911, 912, 170, 913, 171, 0, 172, 173, 174, 175, 176, 177, 0, 178, 179, 180, - 181, 182, 0, 0, 183, 184, 712, 186, 187, 0, + 181, 182, 0, 0, 183, 184, 717, 186, 187, 0, 188, 189, 190, 0, 191, 192, 193, 0, 194, 195, - 196, 197, 909, 199, 200, 201, 202, 203, 910, 911, - 205, 0, 206, 207, 912, 209, 0, 210, 0, 211, + 196, 197, 914, 199, 200, 201, 202, 203, 915, 916, + 205, 0, 206, 207, 917, 209, 0, 210, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 0, 219, - 0, 913, 914, 222, 0, 223, 224, 225, 226, 227, + 0, 918, 919, 222, 0, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 0, 235, 236, 237, 238, 239, 240, 0, 241, 242, 243, 244, 245, - 246, 247, 248, 915, 916, 0, 917, 0, 252, 253, + 246, 247, 248, 920, 921, 0, 922, 0, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 0, - 0, 263, 264, 265, 266, 0, 267, 268, 269, 918, - 919, 270, 271, 272, 273, 274, 275, 276, 277, 278, + 0, 263, 264, 265, 266, 0, 267, 268, 269, 923, + 924, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, - 289, 290, 291, 292, 293, 920, 295, 921, 297, 298, - 299, 300, 922, 301, 302, 303, 304, 923, 924, 306, - 925, 308, 309, 310, 0, 311, 312, 0, 0, 926, - 314, 315, 0, 0, 316, 317, 318, 319, 320, 927, + 289, 290, 291, 292, 293, 925, 295, 926, 297, 298, + 299, 300, 927, 301, 302, 303, 304, 928, 929, 306, + 930, 308, 309, 310, 0, 311, 312, 0, 0, 931, + 314, 315, 0, 0, 316, 317, 318, 319, 320, 932, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, - 0, 332, 333, 928, 335, 336, 337, 338, 339, 340, + 0, 332, 333, 933, 335, 336, 337, 338, 339, 340, 0, 341, 342, 343, 344, 345, 346, 0, 347, 348, - 349, 929, 351, 352, 353, 354, 0, 355, 356, 357, + 349, 934, 351, 352, 353, 354, 0, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, - 0, 368, 369, 370, 371, 372, 373, 930, 375, 376, + 0, 368, 369, 370, 371, 372, 373, 935, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 0, - 386, 387, 388, 389, 390, 931, 392, 393, 394, 395, - 396, 397, 398, 399, 932, 401, 0, 402, 403, 404, + 386, 387, 388, 389, 390, 936, 392, 393, 394, 395, + 396, 397, 398, 399, 937, 401, -608, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, - 415, 933, 417, 0, 418, 419, 0, 420, 421, 422, - 423, 424, 425, 426, 0, 934, 935, 0, 0, 429, - 430, 936, 432, 937, 938, 434, 435, 939, 437, 438, + 415, 938, 417, 0, 418, 419, 0, 420, 421, 422, + 423, 424, 425, 426, 0, 939, 940, 0, 0, 429, + 430, 941, 432, 942, 943, 434, 435, 944, 437, 438, 439, 440, 441, 0, 0, 442, 443, 444, 445, 446, - 940, 0, 448, 449, 450, 451, 452, 453, 941, 0, + 945, 0, 448, 449, 450, 451, 452, 453, 946, 0, 455, 456, 457, 458, 459, 460, 461, 0, 0, 462, 0, 0, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, - 481, 482, 483, 942, 0, 0, 0, 0, 0, 0, - 943, 944, 1458, 0, 0, 0, 0, 946, 0, 947, - 0, 0, 0, 0, 948, 0, 949, 950, 93, 883, - 582, 884, 885, 886, 887, 888, 0, 0, 0, 0, + 481, 482, 483, 947, 0, 0, 0, 0, 0, 0, + 948, 949, 0, 0, 0, 0, 0, 951, 0, 952, + 0, 0, 0, 0, 953, 0, 954, 955, 93, 888, + 583, 889, 890, 891, 892, 893, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 94, 95, 96, 97, - 98, 99, 100, 101, 2794, 102, 103, 104, 0, 0, - 0, 0, 889, 0, 0, 105, 106, 0, 107, 108, - 109, 110, 111, 112, 113, 114, 890, 116, 891, 892, - 0, 119, 120, 121, 122, 123, 124, 893, 894, 125, - 126, 895, 896, 129, 0, 130, 131, 132, 133, 897, - 0, 898, 0, 136, 137, 138, 139, 140, 141, 142, + 98, 99, 100, 101, 1460, 102, 103, 104, 0, 0, + 0, 0, 894, 0, 0, 105, 106, 0, 107, 108, + 109, 110, 111, 112, 113, 114, 895, 116, 896, 897, + 0, 119, 120, 121, 122, 123, 124, 898, 899, 125, + 126, 900, 901, 129, 0, 130, 131, 132, 133, 902, + 0, 903, 0, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 0, 146, 147, 148, 149, 150, 151, - 0, 152, 153, 2795, 155, 899, 900, 901, 902, 903, - 904, 905, 161, 162, 163, 164, 165, 166, 167, 906, - 907, 170, 908, 171, 0, 172, 173, 174, 175, 176, + 0, 152, 153, 154, 155, 904, 905, 906, 907, 908, + 909, 910, 161, 162, 163, 164, 165, 166, 167, 911, + 912, 170, 913, 171, 0, 172, 173, 174, 175, 176, 177, 0, 178, 179, 180, 181, 182, 0, 0, 183, - 184, 712, 186, 187, 0, 188, 189, 190, 0, 191, - 192, 193, 0, 194, 195, 196, 197, 909, 199, 200, - 201, 202, 203, 910, 911, 205, 0, 206, 207, 912, + 184, 717, 186, 187, 0, 188, 189, 190, 0, 191, + 192, 193, 0, 194, 195, 196, 197, 914, 199, 200, + 201, 202, 203, 915, 916, 205, 0, 206, 207, 917, 209, 0, 210, 0, 211, 212, 0, 213, 214, 215, - 216, 217, 218, 0, 219, 0, 2796, 914, 222, 0, + 216, 217, 218, 0, 219, 0, 918, 919, 222, 0, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 0, 235, 236, 237, 238, 239, 240, 0, - 241, 242, 243, 244, 245, 246, 247, 248, 915, 916, - 0, 917, 0, 252, 253, 254, 255, 256, 257, 258, + 241, 242, 243, 244, 245, 246, 247, 248, 920, 921, + 0, 922, 0, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 0, 0, 263, 264, 265, 266, - 0, 267, 268, 269, 918, 919, 270, 271, 272, 273, + 0, 267, 268, 269, 923, 924, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, - 920, 295, 921, 297, 298, 299, 300, 922, 301, 302, - 303, 304, 923, 924, 306, 925, 308, 309, 310, 0, - 311, 312, 0, 0, 926, 314, 315, 0, 0, 316, - 317, 318, 319, 320, 927, 322, 323, 324, 325, 326, - 327, 328, 329, 330, 331, 0, 332, 333, 928, 335, + 925, 295, 926, 297, 298, 299, 300, 927, 301, 302, + 303, 304, 928, 929, 306, 930, 308, 309, 310, 0, + 311, 312, 0, 0, 931, 314, 315, 0, 0, 316, + 317, 318, 319, 320, 932, 322, 323, 324, 325, 326, + 327, 328, 329, 330, 331, 0, 332, 333, 933, 335, 336, 337, 338, 339, 340, 0, 341, 342, 343, 344, - 345, 346, 0, 347, 348, 349, 929, 351, 352, 353, + 345, 346, 0, 347, 348, 349, 934, 351, 352, 353, 354, 0, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 0, 368, 369, 370, 371, - 372, 2797, 930, 375, 376, 377, 378, 379, 380, 381, + 372, 373, 935, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 0, 386, 387, 388, 389, 390, - 931, 392, 393, 394, 395, 396, 397, 398, 399, 932, + 936, 392, 393, 394, 395, 396, 397, 398, 399, 937, 401, 0, 402, 403, 404, 405, 406, 407, 408, 409, - 410, 411, 412, 413, 414, 415, 933, 417, 0, 418, + 410, 411, 412, 413, 414, 415, 938, 417, 0, 418, 419, 0, 420, 421, 422, 423, 424, 425, 426, 0, - 934, 935, 0, 0, 429, 430, 936, 432, 937, 938, - 434, 435, 939, 437, 438, 439, 440, 441, 0, 0, - 442, 443, 444, 445, 446, 940, 0, 448, 449, 450, - 451, 452, 453, 941, 0, 455, 456, 457, 458, 459, + 939, 940, 0, 0, 429, 430, 941, 432, 942, 943, + 434, 435, 944, 437, 438, 439, 440, 441, 0, 0, + 442, 443, 444, 445, 446, 945, 0, 448, 449, 450, + 451, 452, 453, 946, 0, 455, 456, 457, 458, 459, 460, 461, 0, 0, 462, 0, 0, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, - 476, 477, 478, 479, 480, 481, 482, 483, 942, 0, - 0, 0, 0, 0, 0, 943, 944, 2798, 0, 0, - 0, 0, 946, 0, 2799, 0, 0, 0, 0, 948, - 0, 949, 950, 93, 883, 582, 884, 885, 886, 887, - 888, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 94, 95, 96, 97, 98, 99, 100, 101, 0, - 102, 103, 104, 0, 0, 0, 0, 889, 0, 0, + 476, 477, 478, 479, 480, 481, 482, 483, 947, 0, + 0, 0, 0, 0, 0, 948, 949, 1461, 0, 0, + 0, 0, 951, 0, 952, 0, 0, 0, 0, 953, + 0, 954, 955, 93, 888, 583, 889, 890, 891, 892, + 893, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 94, 95, 96, 97, 98, 99, 100, 101, 2796, + 102, 103, 104, 0, 0, 0, 0, 894, 0, 0, 105, 106, 0, 107, 108, 109, 110, 111, 112, 113, - 114, 890, 116, 891, 892, 0, 119, 120, 121, 122, - 123, 124, 893, 894, 125, 126, 895, 896, 129, 0, - 130, 131, 132, 133, 897, 0, 898, 0, 136, 137, + 114, 895, 116, 896, 897, 0, 119, 120, 121, 122, + 123, 124, 898, 899, 125, 126, 900, 901, 129, 0, + 130, 131, 132, 133, 902, 0, 903, 0, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 0, 146, - 147, 148, 149, 150, 151, 0, 152, 153, 154, 155, - 899, 900, 901, 902, 903, 904, 905, 161, 162, 163, - 164, 165, 166, 167, 906, 907, 170, 908, 171, 0, + 147, 148, 149, 150, 151, 0, 152, 153, 2797, 155, + 904, 905, 906, 907, 908, 909, 910, 161, 162, 163, + 164, 165, 166, 167, 911, 912, 170, 913, 171, 0, 172, 173, 174, 175, 176, 177, 0, 178, 179, 180, - 181, 182, 0, 0, 183, 184, 712, 186, 187, 0, + 181, 182, 0, 0, 183, 184, 717, 186, 187, 0, 188, 189, 190, 0, 191, 192, 193, 0, 194, 195, - 196, 197, 909, 199, 200, 201, 202, 203, 910, 911, - 205, 0, 206, 207, 912, 209, 0, 210, 0, 211, + 196, 197, 914, 199, 200, 201, 202, 203, 915, 916, + 205, 0, 206, 207, 917, 209, 0, 210, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 0, 219, - 0, 913, 914, 222, 0, 223, 224, 225, 226, 227, + 0, 2798, 919, 222, 0, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 0, 235, 236, 237, 238, 239, 240, 0, 241, 242, 243, 244, 245, - 246, 247, 248, 915, 916, 0, 917, 0, 252, 253, + 246, 247, 248, 920, 921, 0, 922, 0, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 0, - 0, 263, 264, 265, 266, 0, 267, 268, 269, 918, - 919, 270, 271, 272, 273, 274, 275, 276, 277, 278, + 0, 263, 264, 265, 266, 0, 267, 268, 269, 923, + 924, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, - 289, 290, 291, 292, 293, 920, 295, 921, 297, 298, - 299, 300, 922, 301, 302, 303, 304, 923, 924, 306, - 925, 308, 309, 310, 0, 311, 312, 0, 0, 926, - 314, 315, 0, 0, 316, 317, 318, 319, 320, 927, + 289, 290, 291, 292, 293, 925, 295, 926, 297, 298, + 299, 300, 927, 301, 302, 303, 304, 928, 929, 306, + 930, 308, 309, 310, 0, 311, 312, 0, 0, 931, + 314, 315, 0, 0, 316, 317, 318, 319, 320, 932, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, - 0, 332, 333, 928, 335, 336, 337, 338, 339, 340, + 0, 332, 333, 933, 335, 336, 337, 338, 339, 340, 0, 341, 342, 343, 344, 345, 346, 0, 347, 348, - 349, 929, 351, 352, 353, 354, 0, 355, 356, 357, + 349, 934, 351, 352, 353, 354, 0, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, - 0, 368, 369, 370, 371, 372, 373, 930, 375, 376, + 0, 368, 369, 370, 371, 372, 2799, 935, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 0, - 386, 387, 388, 389, 390, 931, 392, 393, 394, 395, - 396, 397, 398, 399, 932, 401, 0, 402, 403, 404, + 386, 387, 388, 389, 390, 936, 392, 393, 394, 395, + 396, 397, 398, 399, 937, 401, 0, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, - 415, 933, 417, 0, 418, 419, 0, 420, 421, 422, - 423, 424, 425, 426, 0, 934, 935, 0, 0, 429, - 430, 936, 432, 937, 938, 434, 435, 939, 437, 438, + 415, 938, 417, 0, 418, 419, 0, 420, 421, 422, + 423, 424, 425, 426, 0, 939, 940, 0, 0, 429, + 430, 941, 432, 942, 943, 434, 435, 944, 437, 438, 439, 440, 441, 0, 0, 442, 443, 444, 445, 446, - 940, 0, 448, 449, 450, 451, 452, 453, 941, 0, + 945, 0, 448, 449, 450, 451, 452, 453, 946, 0, 455, 456, 457, 458, 459, 460, 461, 0, 0, 462, 0, 0, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, - 481, 482, 483, 942, 0, 0, 0, 0, 0, 0, - 943, 944, 945, 0, 0, 0, 0, 946, 0, 947, - 0, 0, 0, 0, 948, 0, 949, 950, 93, 1471, - 582, 884, 885, 886, 1472, 888, 0, 0, 0, 0, + 481, 482, 483, 947, 0, 0, 0, 0, 0, 0, + 948, 949, 2800, 0, 0, 0, 0, 951, 0, 2801, + 0, 0, 0, 0, 953, 0, 954, 955, 93, 888, + 583, 889, 890, 891, 892, 893, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 94, 95, 96, 97, - 98, 99, 100, 101, 1473, 102, 103, 104, 0, 0, - 0, 0, 889, 0, 0, 105, 106, 0, 107, 108, - 109, 110, 111, 112, 113, 114, 890, 116, 891, 892, - 0, 119, 120, 121, 122, 123, 124, 893, 894, 125, - 126, 895, 896, 129, 0, 130, 131, 132, 133, 897, - 0, 898, 0, 136, 137, 138, 139, 140, 141, 142, + 98, 99, 100, 101, 0, 102, 103, 104, 0, 0, + 0, 0, 894, 0, 0, 105, 106, 0, 107, 108, + 109, 110, 111, 112, 113, 114, 895, 116, 896, 897, + 0, 119, 120, 121, 122, 123, 124, 898, 899, 125, + 126, 900, 901, 129, 0, 130, 131, 132, 133, 902, + 0, 903, 0, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 0, 146, 147, 148, 149, 150, 151, - 0, 152, 153, 154, 155, 899, 900, 901, 902, 903, - 904, 905, 161, 162, 163, 164, 165, 166, 167, 906, - 907, 170, 908, 171, 0, 172, 173, 174, 175, 176, + 0, 152, 153, 154, 155, 904, 905, 906, 907, 908, + 909, 910, 161, 162, 163, 164, 165, 166, 167, 911, + 912, 170, 913, 171, 0, 172, 173, 174, 175, 176, 177, 0, 178, 179, 180, 181, 182, 0, 0, 183, - 184, 712, 186, 187, 0, 188, 189, 190, 0, 191, - 192, 193, 0, 194, 195, 196, 197, 909, 199, 200, - 201, 202, 203, 910, 911, 205, 0, 206, 207, 912, + 184, 717, 186, 187, 0, 188, 189, 190, 0, 191, + 192, 193, 0, 194, 195, 196, 197, 914, 199, 200, + 201, 202, 203, 915, 916, 205, 0, 206, 207, 917, 209, 0, 210, 0, 211, 212, 0, 213, 214, 215, - 216, 217, 218, 0, 219, 0, 913, 914, 222, 0, + 216, 217, 218, 0, 219, 0, 918, 919, 222, 0, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 0, 235, 236, 237, 238, 239, 240, 0, - 241, 242, 243, 244, 245, 246, 247, 248, 915, 916, - 0, 917, 0, 252, 253, 254, 255, 256, 257, 258, + 241, 242, 243, 244, 245, 246, 247, 248, 920, 921, + 0, 922, 0, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 0, 0, 263, 264, 265, 266, - 0, 267, 268, 269, 918, 919, 270, 271, 272, 273, + 0, 267, 268, 269, 923, 924, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, - 920, 295, 921, 297, 298, 299, 300, 922, 301, 302, - 303, 304, 923, 924, 306, 925, 308, 309, 310, 0, - 311, 312, 0, 0, 926, 314, 315, 0, 0, 316, - 317, 318, 319, 320, 927, 322, 323, 324, 325, 326, - 327, 328, 329, 330, 331, 0, 332, 333, 928, 335, + 925, 295, 926, 297, 298, 299, 300, 927, 301, 302, + 303, 304, 928, 929, 306, 930, 308, 309, 310, 0, + 311, 312, 0, 0, 931, 314, 315, 0, 0, 316, + 317, 318, 319, 320, 932, 322, 323, 324, 325, 326, + 327, 328, 329, 330, 331, 0, 332, 333, 933, 335, 336, 337, 338, 339, 340, 0, 341, 342, 343, 344, - 345, 346, 0, 347, 348, 349, 929, 351, 352, 353, + 345, 346, 0, 347, 348, 349, 934, 351, 352, 353, 354, 0, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 0, 368, 369, 370, 371, - 372, 373, 930, 375, 376, 377, 378, 379, 380, 381, + 372, 373, 935, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 0, 386, 387, 388, 389, 390, - 931, 392, 393, 394, 395, 396, 397, 398, 399, 932, + 936, 392, 393, 394, 395, 396, 397, 398, 399, 937, 401, 0, 402, 403, 404, 405, 406, 407, 408, 409, - 410, 411, 412, 413, 414, 415, 933, 417, 0, 418, + 410, 411, 412, 413, 414, 415, 938, 417, 0, 418, 419, 0, 420, 421, 422, 423, 424, 425, 426, 0, - 934, 935, 0, 0, 429, 430, 936, 432, 937, 938, - 434, 435, 939, 437, 438, 439, 440, 441, 0, 0, - 442, 443, 444, 445, 446, 940, 0, 448, 449, 450, - 451, 452, 453, 941, 0, 455, 456, 457, 458, 459, + 939, 940, 0, 0, 429, 430, 941, 432, 942, 943, + 434, 435, 944, 437, 438, 439, 440, 441, 0, 0, + 442, 443, 444, 445, 446, 945, 0, 448, 449, 450, + 451, 452, 453, 946, 0, 455, 456, 457, 458, 459, 460, 461, 0, 0, 462, 0, 0, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, - 476, 477, 478, 479, 480, 481, 482, 483, 942, 0, - 0, 0, 0, 0, 0, 943, 944, 0, 0, 0, - 0, 0, 946, 0, 947, 0, 0, 0, 0, 948, - 0, 949, 950, 93, 883, 582, 884, 885, 886, 887, - 888, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 94, 95, 96, 97, 98, 99, 100, 101, 0, - 102, 103, 104, 0, 0, 0, 0, 889, 0, 0, + 476, 477, 478, 479, 480, 481, 482, 483, 947, 0, + 0, 0, 0, 0, 0, 948, 949, 950, 0, 0, + 0, 0, 951, 0, 952, 0, 0, 0, 0, 953, + 0, 954, 955, 93, 1474, 583, 889, 890, 891, 1475, + 893, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 94, 95, 96, 97, 98, 99, 100, 101, 1476, + 102, 103, 104, 0, 0, 0, 0, 894, 0, 0, 105, 106, 0, 107, 108, 109, 110, 111, 112, 113, - 114, 890, 116, 891, 892, 0, 119, 120, 121, 122, - 123, 124, 893, 894, 125, 126, 895, 896, 129, 0, - 130, 131, 132, 133, 897, 0, 898, 0, 136, 137, + 114, 895, 116, 896, 897, 0, 119, 120, 121, 122, + 123, 124, 898, 899, 125, 126, 900, 901, 129, 0, + 130, 131, 132, 133, 902, 0, 903, 0, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 0, 146, 147, 148, 149, 150, 151, 0, 152, 153, 154, 155, - 899, 900, 901, 902, 903, 904, 905, 161, 162, 163, - 164, 165, 166, 167, 906, 907, 170, 908, 171, 0, + 904, 905, 906, 907, 908, 909, 910, 161, 162, 163, + 164, 165, 166, 167, 911, 912, 170, 913, 171, 0, 172, 173, 174, 175, 176, 177, 0, 178, 179, 180, - 181, 182, 0, 0, 183, 184, 712, 186, 187, 0, + 181, 182, 0, 0, 183, 184, 717, 186, 187, 0, 188, 189, 190, 0, 191, 192, 193, 0, 194, 195, - 196, 197, 909, 199, 200, 201, 202, 203, 910, 911, - 205, 0, 206, 207, 912, 209, 0, 210, 0, 211, + 196, 197, 914, 199, 200, 201, 202, 203, 915, 916, + 205, 0, 206, 207, 917, 209, 0, 210, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 0, 219, - 0, 913, 914, 222, 0, 223, 224, 225, 226, 227, + 0, 918, 919, 222, 0, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 0, 235, 236, 237, 238, 239, 240, 0, 241, 242, 243, 244, 245, - 246, 247, 248, 915, 916, 0, 917, 0, 252, 253, + 246, 247, 248, 920, 921, 0, 922, 0, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 0, - 0, 263, 264, 265, 266, 0, 267, 268, 269, 918, - 919, 270, 271, 272, 273, 274, 275, 276, 277, 278, + 0, 263, 264, 265, 266, 0, 267, 268, 269, 923, + 924, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, - 289, 290, 291, 292, 293, 920, 295, 921, 297, 298, - 299, 300, 922, 301, 302, 303, 304, 923, 924, 306, - 925, 308, 309, 310, 0, 311, 312, 0, 0, 926, - 314, 315, 0, 0, 316, 317, 318, 319, 320, 927, + 289, 290, 291, 292, 293, 925, 295, 926, 297, 298, + 299, 300, 927, 301, 302, 303, 304, 928, 929, 306, + 930, 308, 309, 310, 0, 311, 312, 0, 0, 931, + 314, 315, 0, 0, 316, 317, 318, 319, 320, 932, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, - 0, 332, 333, 928, 335, 336, 337, 338, 339, 340, + 0, 332, 333, 933, 335, 336, 337, 338, 339, 340, 0, 341, 342, 343, 344, 345, 346, 0, 347, 348, - 349, 929, 351, 352, 353, 354, 0, 355, 356, 357, + 349, 934, 351, 352, 353, 354, 0, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, - 0, 368, 369, 370, 371, 372, 373, 930, 375, 376, + 0, 368, 369, 370, 371, 372, 373, 935, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 0, - 386, 387, 388, 389, 390, 931, 392, 393, 394, 395, - 396, 397, 398, 399, 932, 401, 0, 402, 403, 404, + 386, 387, 388, 389, 390, 936, 392, 393, 394, 395, + 396, 397, 398, 399, 937, 401, 0, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, - 415, 933, 417, 0, 418, 419, 0, 420, 421, 422, - 423, 424, 425, 426, 0, 934, 935, 0, 0, 429, - 430, 936, 432, 937, 938, 434, 435, 939, 437, 438, + 415, 938, 417, 0, 418, 419, 0, 420, 421, 422, + 423, 424, 425, 426, 0, 939, 940, 0, 0, 429, + 430, 941, 432, 942, 943, 434, 435, 944, 437, 438, 439, 440, 441, 0, 0, 442, 443, 444, 445, 446, - 940, 0, 448, 449, 450, 451, 452, 453, 941, 0, + 945, 0, 448, 449, 450, 451, 452, 453, 946, 0, 455, 456, 457, 458, 459, 460, 461, 0, 0, 462, 0, 0, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, - 481, 482, 483, 942, 0, 0, 0, 0, 0, 0, - 943, 944, 0, 0, 0, 0, 0, 946, 0, 947, - 1714, 0, 0, 0, 948, 0, 949, 950, 1080, 883, - 582, 884, 885, 886, 887, 888, 0, 0, 0, 0, + 481, 482, 483, 947, 0, 0, 0, 0, 0, 0, + 948, 949, 0, 0, 0, 0, 0, 951, 0, 952, + 0, 0, 0, 0, 953, 0, 954, 955, 93, 888, + 583, 889, 890, 891, 892, 893, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 94, 95, 96, 97, 98, 99, 100, 101, 0, 102, 103, 104, 0, 0, - 0, 0, 889, 0, 0, 105, 106, 0, 107, 108, - 109, 1082, 111, 112, 113, 114, 890, 1083, 891, 892, - 0, 119, 120, 121, 122, 123, 124, 893, 894, 125, - 126, 895, 896, 129, 0, 130, 131, 132, 133, 897, - 0, 1084, 0, 136, 137, 138, 139, 140, 141, 1085, + 0, 0, 894, 0, 0, 105, 106, 0, 107, 108, + 109, 110, 111, 112, 113, 114, 895, 116, 896, 897, + 0, 119, 120, 121, 122, 123, 124, 898, 899, 125, + 126, 900, 901, 129, 0, 130, 131, 132, 133, 902, + 0, 903, 0, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 0, 146, 147, 148, 149, 150, 151, - 0, 1086, 153, 154, 155, 1087, 1088, 1089, 1090, 903, - 904, 1091, 161, 162, 163, 164, 165, 166, 167, 906, - 907, 170, 908, 171, 0, 172, 173, 174, 175, 176, + 0, 152, 153, 154, 155, 904, 905, 906, 907, 908, + 909, 910, 161, 162, 163, 164, 165, 166, 167, 911, + 912, 170, 913, 171, 0, 172, 173, 174, 175, 176, 177, 0, 178, 179, 180, 181, 182, 0, 0, 183, - 184, 712, 186, 187, 0, 188, 189, 190, 0, 191, - 192, 193, 0, 194, 195, 196, 197, 909, 199, 200, - 201, 202, 203, 910, 911, 205, 0, 206, 207, 912, - 209, 0, 210, 0, 211, 1093, 0, 1094, 214, 215, - 1095, 1096, 218, 0, 219, 0, 913, 914, 222, 0, - 223, 224, 225, 226, 227, 228, 229, 1097, 231, 232, + 184, 717, 186, 187, 0, 188, 189, 190, 0, 191, + 192, 193, 0, 194, 195, 196, 197, 914, 199, 200, + 201, 202, 203, 915, 916, 205, 0, 206, 207, 917, + 209, 0, 210, 0, 211, 212, 0, 213, 214, 215, + 216, 217, 218, 0, 219, 0, 918, 919, 222, 0, + 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 0, 235, 236, 237, 238, 239, 240, 0, - 241, 1098, 243, 244, 245, 246, 247, 248, 915, 916, - 0, 917, 0, 252, 1099, 1100, 255, 1101, 257, 258, - 259, 260, 261, 262, 0, 0, 263, 1102, 265, 1103, - 0, 267, 268, 269, 918, 919, 270, 271, 272, 273, - 274, 1104, 276, 277, 278, 279, 280, 281, 282, 283, + 241, 242, 243, 244, 245, 246, 247, 248, 920, 921, + 0, 922, 0, 252, 253, 254, 255, 256, 257, 258, + 259, 260, 261, 262, 0, 0, 263, 264, 265, 266, + 0, 267, 268, 269, 923, 924, 270, 271, 272, 273, + 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, - 920, 1105, 921, 297, 298, 299, 300, 922, 301, 302, - 1106, 304, 923, 924, 306, 925, 308, 309, 310, 0, - 311, 312, 0, 0, 926, 314, 315, 0, 0, 316, - 317, 1107, 319, 1108, 927, 322, 323, 324, 325, 326, - 327, 328, 329, 330, 331, 0, 332, 333, 928, 335, + 925, 295, 926, 297, 298, 299, 300, 927, 301, 302, + 303, 304, 928, 929, 306, 930, 308, 309, 310, 0, + 311, 312, 0, 0, 931, 314, 315, 0, 0, 316, + 317, 318, 319, 320, 932, 322, 323, 324, 325, 326, + 327, 328, 329, 330, 331, 0, 332, 333, 933, 335, 336, 337, 338, 339, 340, 0, 341, 342, 343, 344, - 345, 346, 0, 347, 348, 349, 929, 351, 352, 353, + 345, 346, 0, 347, 348, 349, 934, 351, 352, 353, 354, 0, 355, 356, 357, 358, 359, 360, 361, 362, - 363, 364, 365, 366, 367, 0, 368, 369, 1109, 371, - 372, 373, 930, 375, 376, 377, 378, 379, 380, 381, + 363, 364, 365, 366, 367, 0, 368, 369, 370, 371, + 372, 373, 935, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 0, 386, 387, 388, 389, 390, - 1110, 392, 393, 394, 395, 396, 1111, 398, 399, 932, + 936, 392, 393, 394, 395, 396, 397, 398, 399, 937, 401, 0, 402, 403, 404, 405, 406, 407, 408, 409, - 410, 411, 412, 413, 1112, 415, 933, 417, 0, 418, - 419, 0, 420, 1113, 422, 423, 424, 425, 426, 0, - 934, 935, 0, 0, 429, 430, 936, 432, 937, 938, - 434, 435, 1114, 437, 438, 439, 440, 441, 0, 0, - 442, 443, 444, 445, 446, 1115, 0, 448, 449, 450, - 451, 452, 453, 941, 1938, 455, 1117, 457, 458, 459, + 410, 411, 412, 413, 414, 415, 938, 417, 0, 418, + 419, 0, 420, 421, 422, 423, 424, 425, 426, 0, + 939, 940, 0, 0, 429, 430, 941, 432, 942, 943, + 434, 435, 944, 437, 438, 439, 440, 441, 0, 0, + 442, 443, 444, 445, 446, 945, 0, 448, 449, 450, + 451, 452, 453, 946, 0, 455, 456, 457, 458, 459, 460, 461, 0, 0, 462, 0, 0, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, - 476, 477, 478, 479, 480, 481, 482, 483, 942, 0, - 0, 0, 0, 0, 0, 943, 944, 0, 0, 0, - 0, 0, 946, 0, 947, 0, 0, 0, 0, 948, - 0, 949, 950, 1080, 883, 582, 884, 885, 886, 887, - 888, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 476, 477, 478, 479, 480, 481, 482, 483, 947, 0, + 0, 0, 0, 0, 0, 948, 949, 0, 0, 0, + 0, 0, 951, 0, 952, 1719, 0, 0, 0, 953, + 0, 954, 955, 1085, 888, 583, 889, 890, 891, 892, + 893, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 94, 95, 96, 97, 98, 99, 100, 101, 0, - 102, 103, 104, 0, 0, 0, 0, 889, 0, 0, - 105, 106, 0, 107, 108, 109, 1082, 111, 112, 113, - 114, 890, 1083, 891, 892, 0, 119, 120, 121, 122, - 123, 124, 893, 894, 125, 126, 895, 896, 129, 0, - 130, 131, 132, 133, 897, 0, 1084, 0, 136, 137, - 138, 139, 140, 141, 1085, 143, 144, 145, 0, 146, - 147, 148, 149, 150, 151, 0, 1086, 153, 154, 155, - 1087, 1088, 1089, 1090, 903, 904, 1091, 161, 162, 163, - 164, 165, 166, 167, 906, 907, 170, 908, 171, 0, + 102, 103, 104, 0, 0, 0, 0, 894, 0, 0, + 105, 106, 0, 107, 108, 109, 1087, 111, 112, 113, + 114, 895, 1088, 896, 897, 0, 119, 120, 121, 122, + 123, 124, 898, 899, 125, 126, 900, 901, 129, 0, + 130, 131, 132, 133, 902, 0, 1089, 0, 136, 137, + 138, 139, 140, 141, 1090, 143, 144, 145, 0, 146, + 147, 148, 149, 150, 151, 0, 1091, 153, 154, 155, + 1092, 1093, 1094, 1095, 908, 909, 1096, 161, 162, 163, + 164, 165, 166, 167, 911, 912, 170, 913, 171, 0, 172, 173, 174, 175, 176, 177, 0, 178, 179, 180, - 181, 182, 0, 0, 183, 184, 712, 186, 187, 0, + 181, 182, 0, 0, 183, 184, 717, 186, 187, 0, 188, 189, 190, 0, 191, 192, 193, 0, 194, 195, - 196, 197, 909, 199, 200, 201, 202, 203, 910, 911, - 205, 0, 206, 207, 912, 209, 0, 210, 0, 211, - 1093, 0, 1094, 214, 215, 1095, 1096, 218, 0, 219, - 0, 913, 914, 222, 0, 223, 224, 225, 226, 227, - 228, 229, 1097, 231, 232, 233, 234, 0, 235, 236, - 237, 238, 239, 240, 0, 241, 1098, 243, 244, 245, - 246, 247, 248, 915, 916, 0, 917, 0, 252, 1099, - 1100, 255, 1101, 257, 258, 259, 260, 261, 262, 0, - 0, 263, 1102, 265, 1103, 0, 267, 268, 269, 918, - 919, 270, 271, 272, 273, 274, 1104, 276, 277, 278, + 196, 197, 914, 199, 200, 201, 202, 203, 915, 916, + 205, 0, 206, 207, 917, 209, 0, 210, 0, 211, + 1098, 0, 1099, 214, 215, 1100, 1101, 218, 0, 219, + 0, 918, 919, 222, 0, 223, 224, 225, 226, 227, + 228, 229, 1102, 231, 232, 233, 234, 0, 235, 236, + 237, 238, 239, 240, 0, 241, 1103, 243, 244, 245, + 246, 247, 248, 920, 921, 0, 922, 0, 252, 1104, + 1105, 255, 1106, 257, 258, 259, 260, 261, 262, 0, + 0, 263, 1107, 265, 1108, 0, 267, 268, 269, 923, + 924, 270, 271, 272, 273, 274, 1109, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, - 289, 290, 291, 292, 293, 920, 1105, 921, 297, 298, - 299, 300, 922, 301, 302, 1106, 304, 923, 924, 306, - 925, 308, 309, 310, 0, 311, 312, 0, 0, 926, - 314, 315, 0, 0, 316, 317, 1107, 319, 1108, 927, + 289, 290, 291, 292, 293, 925, 1110, 926, 297, 298, + 299, 300, 927, 301, 302, 1111, 304, 928, 929, 306, + 930, 308, 309, 310, 0, 311, 312, 0, 0, 931, + 314, 315, 0, 0, 316, 317, 1112, 319, 1113, 932, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, - 0, 332, 333, 928, 335, 336, 337, 338, 339, 340, + 0, 332, 333, 933, 335, 336, 337, 338, 339, 340, 0, 341, 342, 343, 344, 345, 346, 0, 347, 348, - 349, 929, 351, 352, 353, 354, 0, 355, 356, 357, + 349, 934, 351, 352, 353, 354, 0, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, - 0, 368, 369, 1109, 371, 372, 373, 930, 375, 376, + 0, 368, 369, 1114, 371, 372, 373, 935, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 0, - 386, 387, 388, 389, 390, 1110, 392, 393, 394, 395, - 396, 1111, 398, 399, 932, 401, 0, 402, 403, 404, - 405, 406, 407, 408, 409, 410, 411, 412, 413, 1112, - 415, 933, 417, 0, 418, 419, 0, 420, 1113, 422, - 423, 424, 425, 426, 0, 934, 935, 0, 0, 429, - 430, 936, 432, 937, 938, 434, 435, 1114, 437, 438, + 386, 387, 388, 389, 390, 1115, 392, 393, 394, 395, + 396, 1116, 398, 399, 937, 401, 0, 402, 403, 404, + 405, 406, 407, 408, 409, 410, 411, 412, 413, 1117, + 415, 938, 417, 0, 418, 419, 0, 420, 1118, 422, + 423, 424, 425, 426, 0, 939, 940, 0, 0, 429, + 430, 941, 432, 942, 943, 434, 435, 1119, 437, 438, 439, 440, 441, 0, 0, 442, 443, 444, 445, 446, - 1115, 0, 448, 449, 450, 451, 452, 453, 941, 0, - 455, 1117, 457, 458, 459, 460, 461, 0, 0, 462, + 1120, 0, 448, 449, 450, 451, 452, 453, 946, 1943, + 455, 1122, 457, 458, 459, 460, 461, 0, 0, 462, 0, 0, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, - 481, 482, 483, 942, 0, 0, 0, 0, 0, 0, - 943, 944, 0, 0, 0, 0, 0, 946, 0, 947, - 1981, 0, 0, 0, 948, 0, 949, 950, 93, 883, - 582, 884, 885, 886, 887, 888, 0, 0, 0, 0, + 481, 482, 483, 947, 0, 0, 0, 0, 0, 0, + 948, 949, 0, 0, 0, 0, 0, 951, 0, 952, + 0, 0, 0, 0, 953, 0, 954, 955, 1085, 888, + 583, 889, 890, 891, 892, 893, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 94, 95, 96, 97, 98, 99, 100, 101, 0, 102, 103, 104, 0, 0, - 0, 0, 889, 0, 0, 105, 106, 0, 107, 108, - 109, 110, 111, 112, 113, 114, 890, 116, 891, 892, - 0, 119, 120, 121, 122, 123, 124, 893, 894, 125, - 126, 895, 896, 129, 0, 130, 131, 132, 133, 897, - 0, 898, 0, 136, 137, 138, 139, 140, 141, 142, + 0, 0, 894, 0, 0, 105, 106, 0, 107, 108, + 109, 1087, 111, 112, 113, 114, 895, 1088, 896, 897, + 0, 119, 120, 121, 122, 123, 124, 898, 899, 125, + 126, 900, 901, 129, 0, 130, 131, 132, 133, 902, + 0, 1089, 0, 136, 137, 138, 139, 140, 141, 1090, 143, 144, 145, 0, 146, 147, 148, 149, 150, 151, - 0, 152, 153, 154, 155, 899, 900, 901, 902, 903, - 904, 905, 161, 162, 163, 164, 165, 166, 167, 906, - 907, 170, 908, 171, 0, 172, 173, 174, 175, 176, + 0, 1091, 153, 154, 155, 1092, 1093, 1094, 1095, 908, + 909, 1096, 161, 162, 163, 164, 165, 166, 167, 911, + 912, 170, 913, 171, 0, 172, 173, 174, 175, 176, 177, 0, 178, 179, 180, 181, 182, 0, 0, 183, - 184, 712, 186, 187, 0, 188, 189, 190, 0, 191, - 192, 193, 0, 194, 195, 196, 197, 909, 199, 200, - 201, 202, 203, 910, 911, 205, 0, 206, 207, 912, - 209, 0, 210, 0, 211, 212, 1721, 213, 214, 215, - 216, 217, 218, 0, 219, 0, 913, 914, 222, 0, - 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, + 184, 717, 186, 187, 0, 188, 189, 190, 0, 191, + 192, 193, 0, 194, 195, 196, 197, 914, 199, 200, + 201, 202, 203, 915, 916, 205, 0, 206, 207, 917, + 209, 0, 210, 0, 211, 1098, 0, 1099, 214, 215, + 1100, 1101, 218, 0, 219, 0, 918, 919, 222, 0, + 223, 224, 225, 226, 227, 228, 229, 1102, 231, 232, 233, 234, 0, 235, 236, 237, 238, 239, 240, 0, - 241, 242, 243, 244, 245, 246, 247, 248, 915, 916, - 0, 917, 0, 252, 253, 254, 255, 256, 257, 258, - 259, 260, 261, 262, 0, 0, 263, 264, 265, 266, - 0, 267, 268, 269, 918, 919, 270, 271, 272, 273, - 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, + 241, 1103, 243, 244, 245, 246, 247, 248, 920, 921, + 0, 922, 0, 252, 1104, 1105, 255, 1106, 257, 258, + 259, 260, 261, 262, 0, 0, 263, 1107, 265, 1108, + 0, 267, 268, 269, 923, 924, 270, 271, 272, 273, + 274, 1109, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, - 920, 295, 921, 297, 298, 299, 300, 922, 301, 302, - 303, 304, 923, 924, 306, 925, 308, 309, 310, 0, - 311, 312, 0, 0, 926, 314, 315, 0, 0, 316, - 317, 318, 319, 320, 927, 322, 323, 324, 325, 326, - 327, 328, 329, 330, 331, 0, 332, 333, 928, 335, + 925, 1110, 926, 297, 298, 299, 300, 927, 301, 302, + 1111, 304, 928, 929, 306, 930, 308, 309, 310, 0, + 311, 312, 0, 0, 931, 314, 315, 0, 0, 316, + 317, 1112, 319, 1113, 932, 322, 323, 324, 325, 326, + 327, 328, 329, 330, 331, 0, 332, 333, 933, 335, 336, 337, 338, 339, 340, 0, 341, 342, 343, 344, - 345, 346, 0, 347, 348, 349, 929, 351, 352, 353, + 345, 346, 0, 347, 348, 349, 934, 351, 352, 353, 354, 0, 355, 356, 357, 358, 359, 360, 361, 362, - 363, 364, 365, 366, 367, 0, 368, 369, 370, 371, - 372, 373, 930, 375, 376, 377, 378, 379, 380, 381, + 363, 364, 365, 366, 367, 0, 368, 369, 1114, 371, + 372, 373, 935, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 0, 386, 387, 388, 389, 390, - 931, 392, 393, 394, 395, 396, 397, 398, 399, 932, + 1115, 392, 393, 394, 395, 396, 1116, 398, 399, 937, 401, 0, 402, 403, 404, 405, 406, 407, 408, 409, - 410, 411, 412, 413, 414, 415, 933, 417, 0, 418, - 419, 0, 420, 421, 422, 423, 424, 425, 426, 0, - 934, 935, 0, 0, 429, 430, 936, 432, 937, 938, - 434, 435, 939, 437, 438, 439, 440, 441, 0, 0, - 442, 443, 444, 445, 446, 940, 0, 448, 449, 450, - 451, 452, 453, 941, 0, 455, 456, 457, 458, 459, + 410, 411, 412, 413, 1117, 415, 938, 417, 0, 418, + 419, 0, 420, 1118, 422, 423, 424, 425, 426, 0, + 939, 940, 0, 0, 429, 430, 941, 432, 942, 943, + 434, 435, 1119, 437, 438, 439, 440, 441, 0, 0, + 442, 443, 444, 445, 446, 1120, 0, 448, 449, 450, + 451, 452, 453, 946, 0, 455, 1122, 457, 458, 459, 460, 461, 0, 0, 462, 0, 0, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, - 476, 477, 478, 479, 480, 481, 482, 483, 942, 0, - 0, 0, 0, 0, 0, 943, 944, 0, 0, 0, - 0, 0, 946, 0, 947, 0, 0, 0, 0, 948, - 0, 949, 950, 93, 883, 582, 884, 885, 886, 887, - 888, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 476, 477, 478, 479, 480, 481, 482, 483, 947, 0, + 0, 0, 0, 0, 0, 948, 949, 0, 0, 0, + 0, 0, 951, 0, 952, 1986, 0, 0, 0, 953, + 0, 954, 955, 93, 888, 583, 889, 890, 891, 892, + 893, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 94, 95, 96, 97, 98, 99, 100, 101, 0, - 102, 103, 104, 0, 0, 0, 0, 889, 0, 0, + 102, 103, 104, 0, 0, 0, 0, 894, 0, 0, 105, 106, 0, 107, 108, 109, 110, 111, 112, 113, - 114, 890, 116, 891, 892, 0, 119, 120, 121, 122, - 123, 124, 893, 894, 125, 126, 895, 896, 129, 0, - 130, 131, 132, 133, 897, 0, 898, 0, 136, 137, + 114, 895, 116, 896, 897, 0, 119, 120, 121, 122, + 123, 124, 898, 899, 125, 126, 900, 901, 129, 0, + 130, 131, 132, 133, 902, 0, 903, 0, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 0, 146, 147, 148, 149, 150, 151, 0, 152, 153, 154, 155, - 899, 900, 901, 902, 903, 904, 905, 161, 162, 163, - 164, 165, 166, 167, 906, 907, 170, 908, 171, 0, + 904, 905, 906, 907, 908, 909, 910, 161, 162, 163, + 164, 165, 166, 167, 911, 912, 170, 913, 171, 0, 172, 173, 174, 175, 176, 177, 0, 178, 179, 180, - 181, 182, 0, 0, 183, 184, 712, 186, 187, 0, + 181, 182, 0, 0, 183, 184, 717, 186, 187, 0, 188, 189, 190, 0, 191, 192, 193, 0, 194, 195, - 196, 197, 909, 199, 200, 201, 202, 203, 910, 911, - 205, 0, 206, 207, 912, 209, 0, 210, 0, 211, - 212, 0, 213, 214, 215, 216, 217, 218, 0, 219, - 0, 913, 914, 222, 0, 223, 224, 225, 226, 227, + 196, 197, 914, 199, 200, 201, 202, 203, 915, 916, + 205, 0, 206, 207, 917, 209, 0, 210, 0, 211, + 212, 1726, 213, 214, 215, 216, 217, 218, 0, 219, + 0, 918, 919, 222, 0, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 0, 235, 236, 237, 238, 239, 240, 0, 241, 242, 243, 244, 245, - 246, 247, 248, 915, 916, 0, 917, 0, 252, 253, + 246, 247, 248, 920, 921, 0, 922, 0, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 0, - 0, 263, 264, 265, 266, 0, 267, 268, 269, 918, - 919, 270, 271, 272, 273, 274, 275, 276, 277, 278, + 0, 263, 264, 265, 266, 0, 267, 268, 269, 923, + 924, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, - 289, 290, 291, 292, 293, 920, 295, 921, 297, 298, - 299, 300, 922, 301, 302, 303, 304, 923, 924, 306, - 925, 308, 309, 310, 0, 311, 312, 0, 0, 926, - 314, 315, 0, 0, 316, 317, 318, 319, 320, 927, + 289, 290, 291, 292, 293, 925, 295, 926, 297, 298, + 299, 300, 927, 301, 302, 303, 304, 928, 929, 306, + 930, 308, 309, 310, 0, 311, 312, 0, 0, 931, + 314, 315, 0, 0, 316, 317, 318, 319, 320, 932, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, - 0, 332, 333, 928, 335, 336, 337, 338, 339, 340, + 0, 332, 333, 933, 335, 336, 337, 338, 339, 340, 0, 341, 342, 343, 344, 345, 346, 0, 347, 348, - 349, 929, 351, 352, 353, 354, 0, 355, 356, 357, + 349, 934, 351, 352, 353, 354, 0, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, - 0, 368, 369, 370, 371, 372, 373, 930, 375, 376, + 0, 368, 369, 370, 371, 372, 373, 935, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 0, - 386, 387, 388, 389, 390, 931, 392, 393, 394, 395, - 396, 397, 398, 399, 932, 401, 0, 402, 403, 404, + 386, 387, 388, 389, 390, 936, 392, 393, 394, 395, + 396, 397, 398, 399, 937, 401, 0, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, - 415, 933, 417, 0, 418, 419, 2289, 420, 421, 422, - 423, 424, 425, 426, 0, 934, 935, 0, 0, 429, - 430, 936, 432, 937, 938, 434, 435, 939, 437, 438, + 415, 938, 417, 0, 418, 419, 0, 420, 421, 422, + 423, 424, 425, 426, 0, 939, 940, 0, 0, 429, + 430, 941, 432, 942, 943, 434, 435, 944, 437, 438, 439, 440, 441, 0, 0, 442, 443, 444, 445, 446, - 940, 0, 448, 449, 450, 451, 452, 453, 941, 0, + 945, 0, 448, 449, 450, 451, 452, 453, 946, 0, 455, 456, 457, 458, 459, 460, 461, 0, 0, 462, 0, 0, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, - 481, 482, 483, 942, 0, 0, 0, 0, 0, 0, - 943, 944, 0, 0, 0, 0, 0, 946, 0, 947, - 0, 0, 0, 0, 948, 0, 949, 950, 93, 883, - 582, 884, 885, 886, 887, 888, 0, 0, 0, 0, + 481, 482, 483, 947, 0, 0, 0, 0, 0, 0, + 948, 949, 0, 0, 0, 0, 0, 951, 0, 952, + 0, 0, 0, 0, 953, 0, 954, 955, 93, 888, + 583, 889, 890, 891, 892, 893, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 94, 95, 96, 97, 98, 99, 100, 101, 0, 102, 103, 104, 0, 0, - 0, 0, 889, 0, 0, 105, 106, 0, 107, 108, - 109, 110, 111, 112, 113, 114, 890, 116, 891, 892, - 0, 119, 120, 121, 122, 123, 124, 893, 894, 125, - 126, 895, 896, 129, 0, 130, 131, 132, 133, 897, - 0, 898, 0, 136, 137, 138, 139, 140, 141, 142, + 0, 0, 894, 0, 0, 105, 106, 0, 107, 108, + 109, 110, 111, 112, 113, 114, 895, 116, 896, 897, + 0, 119, 120, 121, 122, 123, 124, 898, 899, 125, + 126, 900, 901, 129, 0, 130, 131, 132, 133, 902, + 0, 903, 0, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 0, 146, 147, 148, 149, 150, 151, - 0, 152, 153, 154, 155, 899, 900, 901, 902, 903, - 904, 905, 161, 162, 163, 164, 165, 166, 167, 906, - 907, 170, 908, 171, 0, 172, 173, 174, 175, 176, + 0, 152, 153, 154, 155, 904, 905, 906, 907, 908, + 909, 910, 161, 162, 163, 164, 165, 166, 167, 911, + 912, 170, 913, 171, 0, 172, 173, 174, 175, 176, 177, 0, 178, 179, 180, 181, 182, 0, 0, 183, - 184, 712, 186, 187, 0, 188, 189, 190, 0, 191, - 192, 193, 0, 194, 195, 196, 197, 909, 199, 200, - 201, 202, 203, 910, 911, 205, 0, 206, 207, 912, + 184, 717, 186, 187, 0, 188, 189, 190, 0, 191, + 192, 193, 0, 194, 195, 196, 197, 914, 199, 200, + 201, 202, 203, 915, 916, 205, 0, 206, 207, 917, 209, 0, 210, 0, 211, 212, 0, 213, 214, 215, - 216, 217, 218, 0, 219, 0, 913, 914, 222, 0, + 216, 217, 218, 0, 219, 0, 918, 919, 222, 0, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 0, 235, 236, 237, 238, 239, 240, 0, - 241, 242, 243, 244, 245, 246, 247, 248, 915, 916, - 0, 917, 0, 252, 253, 254, 255, 256, 257, 258, + 241, 242, 243, 244, 245, 246, 247, 248, 920, 921, + 0, 922, 0, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 0, 0, 263, 264, 265, 266, - 0, 267, 268, 269, 918, 919, 270, 271, 272, 273, + 0, 267, 268, 269, 923, 924, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, - 920, 295, 921, 297, 298, 299, 300, 922, 301, 302, - 303, 304, 923, 924, 306, 925, 308, 309, 310, 0, - 311, 312, 0, 0, 926, 314, 315, 0, 0, 316, - 317, 318, 319, 320, 927, 322, 323, 324, 325, 326, - 327, 328, 329, 330, 331, 0, 332, 333, 928, 335, + 925, 295, 926, 297, 298, 299, 300, 927, 301, 302, + 303, 304, 928, 929, 306, 930, 308, 309, 310, 0, + 311, 312, 0, 0, 931, 314, 315, 0, 0, 316, + 317, 318, 319, 320, 932, 322, 323, 324, 325, 326, + 327, 328, 329, 330, 331, 0, 332, 333, 933, 335, 336, 337, 338, 339, 340, 0, 341, 342, 343, 344, - 345, 346, 0, 347, 348, 349, 929, 351, 352, 353, + 345, 346, 0, 347, 348, 349, 934, 351, 352, 353, 354, 0, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 0, 368, 369, 370, 371, - 372, 373, 930, 375, 376, 377, 378, 379, 380, 381, + 372, 373, 935, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 0, 386, 387, 388, 389, 390, - 931, 392, 393, 394, 395, 396, 397, 398, 399, 932, + 936, 392, 393, 394, 395, 396, 397, 398, 399, 937, 401, 0, 402, 403, 404, 405, 406, 407, 408, 409, - 410, 411, 412, 413, 414, 415, 933, 417, 0, 418, - 419, 0, 420, 421, 422, 423, 424, 425, 426, 0, - 934, 935, 0, 0, 429, 430, 936, 432, 937, 938, - 434, 435, 939, 437, 438, 439, 440, 441, 0, 0, - 442, 443, 444, 445, 446, 940, 0, 448, 449, 450, - 451, 452, 453, 941, 0, 455, 456, 457, 458, 459, - 460, 461, 0, 2381, 462, 0, 0, 463, 464, 465, + 410, 411, 412, 413, 414, 415, 938, 417, 0, 418, + 419, 2291, 420, 421, 422, 423, 424, 425, 426, 0, + 939, 940, 0, 0, 429, 430, 941, 432, 942, 943, + 434, 435, 944, 437, 438, 439, 440, 441, 0, 0, + 442, 443, 444, 445, 446, 945, 0, 448, 449, 450, + 451, 452, 453, 946, 0, 455, 456, 457, 458, 459, + 460, 461, 0, 0, 462, 0, 0, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, - 476, 477, 478, 479, 480, 481, 482, 483, 942, 0, - 0, 0, 0, 0, 0, 943, 944, 0, 0, 0, - 0, 0, 946, 0, 947, 0, 0, 0, 0, 948, - 0, 949, 950, 93, 883, 582, 884, 885, 886, 887, - 888, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 476, 477, 478, 479, 480, 481, 482, 483, 947, 0, + 0, 0, 0, 0, 0, 948, 949, 0, 0, 0, + 0, 0, 951, 0, 952, 0, 0, 0, 0, 953, + 0, 954, 955, 93, 888, 583, 889, 890, 891, 892, + 893, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 94, 95, 96, 97, 98, 99, 100, 101, 0, - 102, 103, 104, 0, 0, 0, 0, 889, 0, 0, + 102, 103, 104, 0, 0, 0, 0, 894, 0, 0, 105, 106, 0, 107, 108, 109, 110, 111, 112, 113, - 114, 890, 116, 891, 892, 0, 119, 120, 121, 122, - 123, 124, 893, 894, 125, 126, 895, 896, 129, 0, - 130, 131, 132, 133, 897, 0, 898, 0, 136, 137, + 114, 895, 116, 896, 897, 0, 119, 120, 121, 122, + 123, 124, 898, 899, 125, 126, 900, 901, 129, 0, + 130, 131, 132, 133, 902, 0, 903, 0, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 0, 146, 147, 148, 149, 150, 151, 0, 152, 153, 154, 155, - 899, 900, 901, 902, 903, 904, 905, 161, 162, 163, - 164, 165, 166, 167, 906, 907, 170, 908, 171, 0, + 904, 905, 906, 907, 908, 909, 910, 161, 162, 163, + 164, 165, 166, 167, 911, 912, 170, 913, 171, 0, 172, 173, 174, 175, 176, 177, 0, 178, 179, 180, - 181, 182, 0, 0, 183, 184, 712, 186, 187, 0, + 181, 182, 0, 0, 183, 184, 717, 186, 187, 0, 188, 189, 190, 0, 191, 192, 193, 0, 194, 195, - 196, 197, 909, 199, 200, 201, 202, 203, 910, 911, - 205, 0, 206, 207, 912, 209, 0, 210, 0, 211, + 196, 197, 914, 199, 200, 201, 202, 203, 915, 916, + 205, 0, 206, 207, 917, 209, 0, 210, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 0, 219, - 0, 913, 914, 222, 0, 223, 224, 225, 226, 227, + 0, 918, 919, 222, 0, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 0, 235, 236, 237, 238, 239, 240, 0, 241, 242, 243, 244, 245, - 246, 247, 248, 915, 916, 0, 917, 0, 252, 253, + 246, 247, 248, 920, 921, 0, 922, 0, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 0, - 0, 263, 264, 265, 266, 0, 267, 268, 269, 918, - 919, 270, 271, 272, 273, 274, 275, 276, 277, 278, + 0, 263, 264, 265, 266, 0, 267, 268, 269, 923, + 924, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, - 289, 290, 291, 292, 293, 920, 295, 921, 297, 298, - 299, 300, 922, 301, 302, 303, 304, 923, 924, 306, - 925, 308, 309, 310, 0, 311, 312, 0, 0, 926, - 314, 315, 0, 0, 316, 317, 318, 319, 320, 927, + 289, 290, 291, 292, 293, 925, 295, 926, 297, 298, + 299, 300, 927, 301, 302, 303, 304, 928, 929, 306, + 930, 308, 309, 310, 0, 311, 312, 0, 0, 931, + 314, 315, 0, 0, 316, 317, 318, 319, 320, 932, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, - 0, 332, 333, 928, 335, 336, 337, 338, 339, 340, + 0, 332, 333, 933, 335, 336, 337, 338, 339, 340, 0, 341, 342, 343, 344, 345, 346, 0, 347, 348, - 349, 929, 351, 352, 353, 354, 0, 355, 356, 357, + 349, 934, 351, 352, 353, 354, 0, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, - 0, 368, 369, 370, 371, 372, 373, 930, 375, 376, + 0, 368, 369, 370, 371, 372, 373, 935, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 0, - 386, 387, 388, 389, 390, 931, 392, 393, 394, 395, - 396, 397, 398, 399, 932, 401, 0, 402, 403, 404, + 386, 387, 388, 389, 390, 936, 392, 393, 394, 395, + 396, 397, 398, 399, 937, 401, 0, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, - 415, 933, 417, 0, 418, 419, 0, 420, 421, 422, - 423, 424, 425, 426, 0, 934, 935, 0, 0, 429, - 430, 936, 432, 937, 938, 434, 435, 939, 437, 438, + 415, 938, 417, 0, 418, 419, 0, 420, 421, 422, + 423, 424, 425, 426, 0, 939, 940, 0, 0, 429, + 430, 941, 432, 942, 943, 434, 435, 944, 437, 438, 439, 440, 441, 0, 0, 442, 443, 444, 445, 446, - 940, 0, 448, 449, 450, 451, 452, 453, 941, 0, - 455, 456, 457, 458, 459, 460, 461, 0, 0, 462, + 945, 0, 448, 449, 450, 451, 452, 453, 946, 0, + 455, 456, 457, 458, 459, 460, 461, 0, 2383, 462, 0, 0, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, - 481, 482, 483, 942, 0, 0, 0, 0, 0, 0, - 943, 944, 0, 0, 0, 0, 0, 946, 0, 947, - 0, 0, 0, 0, 948, 0, 949, 950, 1080, 883, - 582, 884, 885, 886, 887, 888, 0, 0, 0, 0, + 481, 482, 483, 947, 0, 0, 0, 0, 0, 0, + 948, 949, 0, 0, 0, 0, 0, 951, 0, 952, + 0, 0, 0, 0, 953, 0, 954, 955, 93, 888, + 583, 889, 890, 891, 892, 893, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 94, 95, 96, 97, 98, 99, 100, 101, 0, 102, 103, 104, 0, 0, - 0, 0, 889, 0, 0, 105, 106, 0, 107, 108, - 109, 1082, 111, 112, 113, 114, 890, 1083, 891, 892, - 0, 119, 120, 121, 122, 123, 124, 893, 894, 125, - 126, 895, 896, 129, 0, 130, 131, 132, 133, 897, - 0, 1084, 0, 136, 137, 138, 139, 140, 141, 1085, + 0, 0, 894, 0, 0, 105, 106, 0, 107, 108, + 109, 110, 111, 112, 113, 114, 895, 116, 896, 897, + 0, 119, 120, 121, 122, 123, 124, 898, 899, 125, + 126, 900, 901, 129, 0, 130, 131, 132, 133, 902, + 0, 903, 0, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 0, 146, 147, 148, 149, 150, 151, - 0, 1086, 153, 154, 155, 1087, 1088, 1089, 1090, 903, - 904, 1091, 161, 162, 163, 164, 165, 166, 167, 906, - 907, 170, 908, 171, 0, 172, 173, 174, 175, 176, + 0, 152, 153, 154, 155, 904, 905, 906, 907, 908, + 909, 910, 161, 162, 163, 164, 165, 166, 167, 911, + 912, 170, 913, 171, 0, 172, 173, 174, 175, 176, 177, 0, 178, 179, 180, 181, 182, 0, 0, 183, - 184, 712, 186, 187, 0, 188, 189, 190, 0, 191, - 192, 193, 0, 194, 195, 196, 197, 909, 199, 200, - 201, 202, 203, 910, 911, 205, 0, 206, 207, 912, - 209, 0, 210, 0, 211, 1093, 0, 1094, 214, 215, - 1095, 1096, 218, 0, 219, 0, 913, 914, 222, 0, - 223, 224, 225, 226, 227, 228, 229, 1097, 231, 232, + 184, 717, 186, 187, 0, 188, 189, 190, 0, 191, + 192, 193, 0, 194, 195, 196, 197, 914, 199, 200, + 201, 202, 203, 915, 916, 205, 0, 206, 207, 917, + 209, 0, 210, 0, 211, 212, 0, 213, 214, 215, + 216, 217, 218, 0, 219, 0, 918, 919, 222, 0, + 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 0, 235, 236, 237, 238, 239, 240, 0, - 241, 1098, 243, 244, 245, 246, 247, 248, 915, 916, - 0, 917, 0, 252, 1099, 1100, 255, 1101, 257, 258, - 259, 260, 261, 262, 0, 0, 263, 1102, 265, 1103, - 0, 267, 268, 269, 918, 919, 270, 271, 272, 273, - 274, 1104, 276, 277, 278, 279, 280, 281, 282, 283, + 241, 242, 243, 244, 245, 246, 247, 248, 920, 921, + 0, 922, 0, 252, 253, 254, 255, 256, 257, 258, + 259, 260, 261, 262, 0, 0, 263, 264, 265, 266, + 0, 267, 268, 269, 923, 924, 270, 271, 272, 273, + 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, - 920, 1105, 921, 297, 298, 299, 300, 922, 301, 302, - 1106, 304, 923, 924, 306, 925, 308, 309, 310, 0, - 311, 312, 0, 0, 926, 314, 315, 0, 0, 316, - 317, 1107, 319, 1108, 927, 322, 323, 324, 325, 326, - 327, 328, 329, 330, 331, 0, 332, 333, 928, 335, + 925, 295, 926, 297, 298, 299, 300, 927, 301, 302, + 303, 304, 928, 929, 306, 930, 308, 309, 310, 0, + 311, 312, 0, 0, 931, 314, 315, 0, 0, 316, + 317, 318, 319, 320, 932, 322, 323, 324, 325, 326, + 327, 328, 329, 330, 331, 0, 332, 333, 933, 335, 336, 337, 338, 339, 340, 0, 341, 342, 343, 344, - 345, 346, 0, 347, 348, 349, 929, 351, 352, 353, + 345, 346, 0, 347, 348, 349, 934, 351, 352, 353, 354, 0, 355, 356, 357, 358, 359, 360, 361, 362, - 363, 364, 365, 366, 367, 0, 368, 369, 1109, 371, - 372, 373, 930, 375, 376, 377, 378, 379, 380, 381, + 363, 364, 365, 366, 367, 0, 368, 369, 370, 371, + 372, 373, 935, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 0, 386, 387, 388, 389, 390, - 1110, 392, 393, 394, 395, 396, 1111, 398, 399, 932, + 936, 392, 393, 394, 395, 396, 397, 398, 399, 937, 401, 0, 402, 403, 404, 405, 406, 407, 408, 409, - 410, 411, 412, 413, 1112, 415, 933, 417, 0, 418, - 419, 0, 420, 1113, 422, 423, 424, 425, 426, 0, - 934, 935, 0, 0, 429, 430, 936, 432, 937, 938, - 434, 435, 1114, 437, 438, 439, 440, 441, 0, 0, - 442, 443, 444, 445, 446, 1115, 0, 448, 449, 450, - 451, 452, 453, 941, 0, 455, 1117, 457, 458, 459, + 410, 411, 412, 413, 414, 415, 938, 417, 0, 418, + 419, 0, 420, 421, 422, 423, 424, 425, 426, 0, + 939, 940, 0, 0, 429, 430, 941, 432, 942, 943, + 434, 435, 944, 437, 438, 439, 440, 441, 0, 0, + 442, 443, 444, 445, 446, 945, 0, 448, 449, 450, + 451, 452, 453, 946, 0, 455, 456, 457, 458, 459, 460, 461, 0, 0, 462, 0, 0, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, - 476, 477, 478, 479, 480, 481, 482, 483, 942, 0, - 0, 0, 0, 0, 0, 943, 944, 0, 0, 0, - 0, 0, 946, 0, 947, 0, 0, 0, 0, 948, - 0, 949, 950, 93, 883, 582, 884, 885, 886, 887, - 888, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 476, 477, 478, 479, 480, 481, 482, 483, 947, 0, + 0, 0, 0, 0, 0, 948, 949, 0, 0, 0, + 0, 0, 951, 0, 952, 0, 0, 0, 0, 953, + 0, 954, 955, 1085, 888, 583, 889, 890, 891, 892, + 893, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 94, 95, 96, 97, 98, 99, 100, 101, 0, - 102, 103, 104, 0, 0, 0, 0, 889, 0, 0, - 105, 106, 0, 107, 108, 109, 110, 111, 112, 113, - 114, 890, 116, 891, 892, 0, 119, 120, 121, 122, - 123, 124, 893, 894, 125, 126, 895, 896, 129, 0, - 130, 131, 132, 133, 897, 0, 898, 0, 136, 137, - 138, 139, 140, 141, 142, 143, 144, 145, 0, 146, - 147, 148, 149, 150, 151, 0, 152, 153, 154, 155, - 899, 900, 901, 902, 903, 904, 905, 161, 162, 163, - 164, 165, 166, 167, 906, 907, 170, 908, 171, 0, + 102, 103, 104, 0, 0, 0, 0, 894, 0, 0, + 105, 106, 0, 107, 108, 109, 1087, 111, 112, 113, + 114, 895, 1088, 896, 897, 0, 119, 120, 121, 122, + 123, 124, 898, 899, 125, 126, 900, 901, 129, 0, + 130, 131, 132, 133, 902, 0, 1089, 0, 136, 137, + 138, 139, 140, 141, 1090, 143, 144, 145, 0, 146, + 147, 148, 149, 150, 151, 0, 1091, 153, 154, 155, + 1092, 1093, 1094, 1095, 908, 909, 1096, 161, 162, 163, + 164, 165, 166, 167, 911, 912, 170, 913, 171, 0, 172, 173, 174, 175, 176, 177, 0, 178, 179, 180, - 181, 182, 0, 0, 183, 184, 712, 186, 187, 0, + 181, 182, 0, 0, 183, 184, 717, 186, 187, 0, 188, 189, 190, 0, 191, 192, 193, 0, 194, 195, - 196, 197, 909, 199, 200, 201, 202, 203, 910, 911, - 205, 0, 206, 207, 912, 209, 0, 210, 0, 211, - 212, 0, 213, 214, 215, 216, 217, 218, 0, 219, - 0, 913, 914, 222, 0, 223, 224, 225, 226, 227, - 228, 229, 230, 231, 232, 233, 234, 0, 235, 236, - 237, 238, 239, 240, 0, 241, 242, 243, 244, 245, - 246, 247, 248, 915, 916, 0, 917, 0, 252, 253, - 254, 255, 256, 257, 258, 259, 260, 261, 262, 0, - 0, 263, 264, 265, 266, 0, 267, 268, 269, 918, - 919, 270, 271, 272, 273, 274, 275, 276, 277, 278, + 196, 197, 914, 199, 200, 201, 202, 203, 915, 916, + 205, 0, 206, 207, 917, 209, 0, 210, 0, 211, + 1098, 0, 1099, 214, 215, 1100, 1101, 218, 0, 219, + 0, 918, 919, 222, 0, 223, 224, 225, 226, 227, + 228, 229, 1102, 231, 232, 233, 234, 0, 235, 236, + 237, 238, 239, 240, 0, 241, 1103, 243, 244, 245, + 246, 247, 248, 920, 921, 0, 922, 0, 252, 1104, + 1105, 255, 1106, 257, 258, 259, 260, 261, 262, 0, + 0, 263, 1107, 265, 1108, 0, 267, 268, 269, 923, + 924, 270, 271, 272, 273, 274, 1109, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, - 289, 290, 291, 292, 293, 920, 295, 921, 297, 298, - 299, 300, 922, 301, 302, 303, 304, 923, 924, 306, - 925, 308, 309, 310, 0, 311, 312, 0, 0, 926, - 314, 315, 0, 0, 316, 317, 318, 319, 320, 927, + 289, 290, 291, 292, 293, 925, 1110, 926, 297, 298, + 299, 300, 927, 301, 302, 1111, 304, 928, 929, 306, + 930, 308, 309, 310, 0, 311, 312, 0, 0, 931, + 314, 315, 0, 0, 316, 317, 1112, 319, 1113, 932, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, - 0, 332, 333, 928, 335, 336, 337, 338, 339, 340, + 0, 332, 333, 933, 335, 336, 337, 338, 339, 340, 0, 341, 342, 343, 344, 345, 346, 0, 347, 348, - 349, 929, 351, 352, 353, 354, 0, 355, 356, 357, + 349, 934, 351, 352, 353, 354, 0, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, - 0, 368, 369, 370, 371, 372, 373, 930, 375, 376, + 0, 368, 369, 1114, 371, 372, 373, 935, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 0, - 386, 387, 388, 389, 390, 931, 392, 393, 394, 395, - 396, 397, 398, 399, 932, 401, 0, 402, 403, 404, - 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, - 415, 933, 417, 0, 418, 419, 0, 420, 421, 422, - 423, 424, 425, 426, 0, 934, 935, 0, 0, 429, - 430, 936, 432, 937, 938, 434, 435, 939, 437, 438, + 386, 387, 388, 389, 390, 1115, 392, 393, 394, 395, + 396, 1116, 398, 399, 937, 401, 0, 402, 403, 404, + 405, 406, 407, 408, 409, 410, 411, 412, 413, 1117, + 415, 938, 417, 0, 418, 419, 0, 420, 1118, 422, + 423, 424, 425, 426, 0, 939, 940, 0, 0, 429, + 430, 941, 432, 942, 943, 434, 435, 1119, 437, 438, 439, 440, 441, 0, 0, 442, 443, 444, 445, 446, - 940, 0, 448, 449, 450, 451, 452, 453, 941, 0, - 455, 456, 457, 458, 459, 460, 461, 0, 0, 462, + 1120, 0, 448, 449, 450, 451, 452, 453, 946, 0, + 455, 1122, 457, 458, 459, 460, 461, 0, 0, 462, 0, 0, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, - 481, 482, 483, 942, 0, 0, 0, 0, 0, 0, - 1476, 1477, 0, 0, 0, 0, 0, 946, 0, 947, - 0, 0, 0, 0, 948, 0, 949, 950, 93, 1847, - 582, 884, 885, 886, 887, 888, 0, 0, 0, 0, + 481, 482, 483, 947, 0, 0, 0, 0, 0, 0, + 948, 949, 0, 0, 0, 0, 0, 951, 0, 952, + 0, 0, 0, 0, 953, 0, 954, 955, 93, 888, + 583, 889, 890, 891, 892, 893, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 94, 95, 96, 97, 98, 99, 100, 101, 0, 102, 103, 104, 0, 0, - 0, 0, 889, 0, 0, 105, 106, 0, 107, 108, - 109, 110, 111, 112, 113, 114, 890, 116, 891, 892, - 0, 119, 120, 121, 122, 123, 124, 893, 894, 125, - 126, 895, 896, 129, 0, 130, 131, 132, 133, 897, - 0, 898, 0, 136, 137, 138, 139, 140, 141, 142, + 0, 0, 894, 0, 0, 105, 106, 0, 107, 108, + 109, 110, 111, 112, 113, 114, 895, 116, 896, 897, + 0, 119, 120, 121, 122, 123, 124, 898, 899, 125, + 126, 900, 901, 129, 0, 130, 131, 132, 133, 902, + 0, 903, 0, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 0, 146, 147, 148, 149, 150, 151, - 0, 152, 153, 154, 155, 899, 900, 901, 902, 903, - 904, 905, 161, 162, 163, 164, 165, 166, 167, 906, - 907, 170, 908, 171, 0, 172, 173, 174, 175, 176, + 0, 152, 153, 154, 155, 904, 905, 906, 907, 908, + 909, 910, 161, 162, 163, 164, 165, 166, 167, 911, + 912, 170, 913, 171, 0, 172, 173, 174, 175, 176, 177, 0, 178, 179, 180, 181, 182, 0, 0, 183, - 184, 712, 186, 187, 0, 188, 189, 190, 0, 191, - 192, 193, 0, 194, 195, 196, 197, 909, 199, 200, - 201, 202, 203, 910, 911, 205, 0, 206, 207, 912, + 184, 717, 186, 187, 0, 188, 189, 190, 0, 191, + 192, 193, 0, 194, 195, 196, 197, 914, 199, 200, + 201, 202, 203, 915, 916, 205, 0, 206, 207, 917, 209, 0, 210, 0, 211, 212, 0, 213, 214, 215, - 216, 217, 218, 0, 219, 0, 913, 914, 222, 0, + 216, 217, 218, 0, 219, 0, 918, 919, 222, 0, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 0, 235, 236, 237, 238, 239, 240, 0, - 241, 242, 243, 244, 245, 246, 247, 248, 915, 916, - 0, 917, 0, 252, 253, 254, 255, 256, 257, 258, + 241, 242, 243, 244, 245, 246, 247, 248, 920, 921, + 0, 922, 0, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 0, 0, 263, 264, 265, 266, - 0, 267, 268, 269, 918, 919, 270, 271, 272, 273, + 0, 267, 268, 269, 923, 924, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, - 920, 295, 921, 297, 298, 299, 300, 922, 301, 302, - 303, 304, 923, 924, 306, 925, 308, 309, 310, 0, - 311, 312, 0, 0, 926, 314, 315, 0, 0, 316, - 317, 318, 319, 320, 927, 322, 323, 324, 325, 326, - 327, 328, 329, 330, 331, 0, 332, 333, 928, 335, + 925, 295, 926, 297, 298, 299, 300, 927, 301, 302, + 303, 304, 928, 929, 306, 930, 308, 309, 310, 0, + 311, 312, 0, 0, 931, 314, 315, 0, 0, 316, + 317, 318, 319, 320, 932, 322, 323, 324, 325, 326, + 327, 328, 329, 330, 331, 0, 332, 333, 933, 335, 336, 337, 338, 339, 340, 0, 341, 342, 343, 344, - 345, 346, 0, 347, 348, 349, 929, 351, 352, 353, + 345, 346, 0, 347, 348, 349, 934, 351, 352, 353, 354, 0, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 0, 368, 369, 370, 371, - 372, 373, 930, 375, 376, 377, 378, 379, 380, 381, + 372, 373, 935, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 0, 386, 387, 388, 389, 390, - 931, 392, 393, 394, 395, 396, 397, 398, 399, 932, + 936, 392, 393, 394, 395, 396, 397, 398, 399, 937, 401, 0, 402, 403, 404, 405, 406, 407, 408, 409, - 410, 411, 412, 413, 414, 415, 933, 417, 0, 418, + 410, 411, 412, 413, 414, 415, 938, 417, 0, 418, 419, 0, 420, 421, 422, 423, 424, 425, 426, 0, - 934, 935, 0, 0, 429, 430, 936, 432, 937, 938, - 434, 435, 939, 437, 438, 439, 440, 441, 0, 0, - 442, 443, 444, 445, 446, 940, 0, 448, 449, 450, - 451, 452, 453, 941, 0, 455, 456, 457, 458, 459, + 939, 940, 0, 0, 429, 430, 941, 432, 942, 943, + 434, 435, 944, 437, 438, 439, 440, 441, 0, 0, + 442, 443, 444, 445, 446, 945, 0, 448, 449, 450, + 451, 452, 453, 946, 0, 455, 456, 457, 458, 459, 460, 461, 0, 0, 462, 0, 0, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, - 476, 477, 478, 479, 480, 481, 482, 483, 942, 0, - 0, 0, 0, 0, 0, 943, 944, 0, 0, 0, - 0, 0, 946, 0, 947, 0, 0, 0, 0, 948, - 0, 949, 950, 93, 883, 582, 884, 885, 886, 887, - 888, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 476, 477, 478, 479, 480, 481, 482, 483, 947, 0, + 0, 0, 0, 0, 0, 1479, 1480, 0, 0, 0, + 0, 0, 951, 0, 952, 0, 0, 0, 0, 953, + 0, 954, 955, 93, 1852, 583, 889, 890, 891, 892, + 893, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 94, 95, 96, 97, 98, 99, 100, 101, 0, - 102, 103, 104, 0, 0, 0, 0, 889, 0, 0, + 102, 103, 104, 0, 0, 0, 0, 894, 0, 0, 105, 106, 0, 107, 108, 109, 110, 111, 112, 113, - 114, 890, 116, 891, 892, 0, 119, 120, 121, 122, - 123, 124, 893, 894, 125, 126, 895, 896, 129, 0, - 130, 131, 132, 133, 897, 0, 898, 0, 136, 137, + 114, 895, 116, 896, 897, 0, 119, 120, 121, 122, + 123, 124, 898, 899, 125, 126, 900, 901, 129, 0, + 130, 131, 132, 133, 902, 0, 903, 0, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 0, 146, 147, 148, 149, 150, 151, 0, 152, 153, 154, 155, - 899, 900, 901, 902, 903, 904, 905, 161, 162, 163, - 164, 165, 166, 167, 906, 907, 170, 908, 171, 0, + 904, 905, 906, 907, 908, 909, 910, 161, 162, 163, + 164, 165, 166, 167, 911, 912, 170, 913, 171, 0, 172, 173, 174, 175, 176, 177, 0, 178, 179, 180, - 181, 182, 0, 0, 183, 184, 712, 186, 187, 0, + 181, 182, 0, 0, 183, 184, 717, 186, 187, 0, 188, 189, 190, 0, 191, 192, 193, 0, 194, 195, - 196, 197, 909, 199, 200, 201, 202, 203, 910, 911, - 205, 0, 206, 207, 912, 209, 0, 210, 0, 211, + 196, 197, 914, 199, 200, 201, 202, 203, 915, 916, + 205, 0, 206, 207, 917, 209, 0, 210, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 0, 219, - 0, 913, 914, 222, 0, 223, 224, 225, 226, 227, + 0, 918, 919, 222, 0, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 0, 235, 236, 237, 238, 239, 240, 0, 241, 242, 243, 244, 245, - 246, 247, 248, 915, 916, 0, 917, 0, 252, 253, + 246, 247, 248, 920, 921, 0, 922, 0, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 0, - 0, 263, 264, 265, 266, 0, 267, 268, 269, 918, - 919, 270, 271, 272, 273, 274, 275, 276, 277, 278, + 0, 263, 264, 265, 266, 0, 267, 268, 269, 923, + 924, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, - 289, 290, 291, 292, 293, 920, 295, 921, 297, 298, - 299, 300, 922, 301, 302, 303, 304, 923, 924, 306, - 925, 308, 309, 310, 0, 311, 312, 0, 0, 926, - 314, 315, 0, 0, 316, 317, 318, 319, 320, 927, + 289, 290, 291, 292, 293, 925, 295, 926, 297, 298, + 299, 300, 927, 301, 302, 303, 304, 928, 929, 306, + 930, 308, 309, 310, 0, 311, 312, 0, 0, 931, + 314, 315, 0, 0, 316, 317, 318, 319, 320, 932, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, - 0, 332, 333, 928, 335, 336, 337, 338, 339, 340, + 0, 332, 333, 933, 335, 336, 337, 338, 339, 340, 0, 341, 342, 343, 344, 345, 346, 0, 347, 348, - 349, 929, 351, 352, 353, 354, 0, 355, 356, 357, + 349, 934, 351, 352, 353, 354, 0, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, - 0, 368, 369, 370, 371, 372, 373, 930, 375, 376, + 0, 368, 369, 370, 371, 372, 373, 935, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 0, - 386, 387, 388, 389, 390, 931, 392, 393, 394, 395, - 396, 397, 398, 399, 932, 401, 0, 402, 403, 404, + 386, 387, 388, 389, 390, 936, 392, 393, 394, 395, + 396, 397, 398, 399, 937, 401, 0, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, - 415, 933, 417, 0, 418, 419, 0, 420, 421, 422, - 423, 424, 425, 426, 0, 934, 935, 0, 0, 429, - 430, 936, 432, 937, 938, 434, 435, 939, 437, 438, + 415, 938, 417, 0, 418, 419, 0, 420, 421, 422, + 423, 424, 425, 426, 0, 939, 940, 0, 0, 429, + 430, 941, 432, 942, 943, 434, 435, 944, 437, 438, 439, 440, 441, 0, 0, 442, 443, 444, 445, 446, - 940, 0, 448, 449, 450, 451, 452, 453, 941, 0, + 945, 0, 448, 449, 450, 451, 452, 453, 946, 0, 455, 456, 457, 458, 459, 460, 461, 0, 0, 462, 0, 0, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, - 481, 482, 483, 942, 0, 0, 0, 0, 0, 0, - 943, 944, 0, 0, 0, 0, 0, 946, 0, 2093, - 0, 0, 0, 0, 948, 0, 949, 950, 93, 883, - 582, 884, 885, 886, 887, 888, 0, 0, 0, 0, + 481, 482, 483, 947, 0, 0, 0, 0, 0, 0, + 948, 949, 0, 0, 0, 0, 0, 951, 0, 952, + 0, 0, 0, 0, 953, 0, 954, 955, 93, 888, + 583, 889, 890, 891, 892, 893, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 94, 95, 96, 97, 98, 99, 100, 101, 0, 102, 103, 104, 0, 0, - 0, 0, 889, 0, 0, 105, 106, 0, 107, 108, - 109, 110, 111, 112, 113, 114, 890, 116, 891, 892, - 0, 119, 120, 121, 122, 123, 124, 893, 894, 125, - 126, 895, 896, 129, 0, 130, 131, 132, 133, 897, - 0, 898, 0, 136, 137, 138, 139, 140, 141, 142, + 0, 0, 894, 0, 0, 105, 106, 0, 107, 108, + 109, 110, 111, 112, 113, 114, 895, 116, 896, 897, + 0, 119, 120, 121, 122, 123, 124, 898, 899, 125, + 126, 900, 901, 129, 0, 130, 131, 132, 133, 902, + 0, 903, 0, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 0, 146, 147, 148, 149, 150, 151, - 0, 152, 153, 2795, 155, 899, 900, 901, 902, 903, - 904, 905, 161, 162, 163, 164, 165, 166, 167, 906, - 907, 170, 908, 171, 0, 172, 173, 174, 175, 176, + 0, 152, 153, 154, 155, 904, 905, 906, 907, 908, + 909, 910, 161, 162, 163, 164, 165, 166, 167, 911, + 912, 170, 913, 171, 0, 172, 173, 174, 175, 176, 177, 0, 178, 179, 180, 181, 182, 0, 0, 183, - 184, 712, 186, 187, 0, 188, 189, 190, 0, 191, - 192, 193, 0, 194, 195, 196, 197, 909, 199, 200, - 201, 202, 203, 910, 911, 205, 0, 206, 207, 912, + 184, 717, 186, 187, 0, 188, 189, 190, 0, 191, + 192, 193, 0, 194, 195, 196, 197, 914, 199, 200, + 201, 202, 203, 915, 916, 205, 0, 206, 207, 917, 209, 0, 210, 0, 211, 212, 0, 213, 214, 215, - 216, 217, 218, 0, 219, 0, 2796, 914, 222, 0, + 216, 217, 218, 0, 219, 0, 918, 919, 222, 0, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 0, 235, 236, 237, 238, 239, 240, 0, - 241, 242, 243, 244, 245, 246, 247, 248, 915, 916, - 0, 917, 0, 252, 253, 254, 255, 256, 257, 258, + 241, 242, 243, 244, 245, 246, 247, 248, 920, 921, + 0, 922, 0, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 0, 0, 263, 264, 265, 266, - 0, 267, 268, 269, 918, 919, 270, 271, 272, 273, + 0, 267, 268, 269, 923, 924, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, - 920, 295, 921, 297, 298, 299, 300, 922, 301, 302, - 303, 304, 923, 924, 306, 925, 308, 309, 310, 0, - 311, 312, 0, 0, 926, 314, 315, 0, 0, 316, - 317, 318, 319, 320, 927, 322, 323, 324, 325, 326, - 327, 328, 329, 330, 331, 0, 332, 333, 928, 335, + 925, 295, 926, 297, 298, 299, 300, 927, 301, 302, + 303, 304, 928, 929, 306, 930, 308, 309, 310, 0, + 311, 312, 0, 0, 931, 314, 315, 0, 0, 316, + 317, 318, 319, 320, 932, 322, 323, 324, 325, 326, + 327, 328, 329, 330, 331, 0, 332, 333, 933, 335, 336, 337, 338, 339, 340, 0, 341, 342, 343, 344, - 345, 346, 0, 347, 348, 349, 929, 351, 352, 353, + 345, 346, 0, 347, 348, 349, 934, 351, 352, 353, 354, 0, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 0, 368, 369, 370, 371, - 372, 2797, 930, 375, 376, 377, 378, 379, 380, 381, + 372, 373, 935, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 0, 386, 387, 388, 389, 390, - 931, 392, 393, 394, 395, 396, 397, 398, 399, 932, + 936, 392, 393, 394, 395, 396, 397, 398, 399, 937, 401, 0, 402, 403, 404, 405, 406, 407, 408, 409, - 410, 411, 412, 413, 414, 415, 933, 417, 0, 418, + 410, 411, 412, 413, 414, 415, 938, 417, 0, 418, 419, 0, 420, 421, 422, 423, 424, 425, 426, 0, - 934, 935, 0, 0, 429, 430, 936, 432, 937, 938, - 434, 435, 939, 437, 438, 439, 440, 441, 0, 0, - 442, 443, 444, 445, 446, 940, 0, 448, 449, 450, - 451, 452, 453, 941, 0, 455, 456, 457, 458, 459, + 939, 940, 0, 0, 429, 430, 941, 432, 942, 943, + 434, 435, 944, 437, 438, 439, 440, 441, 0, 0, + 442, 443, 444, 445, 446, 945, 0, 448, 449, 450, + 451, 452, 453, 946, 0, 455, 456, 457, 458, 459, 460, 461, 0, 0, 462, 0, 0, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, - 476, 477, 478, 479, 480, 481, 482, 483, 942, 0, - 0, 0, 0, 0, 0, 943, 944, 0, 0, 0, - 0, 0, 946, 0, 2799, 0, 0, 0, 0, 948, - 0, 949, 950, 93, 883, 582, 884, 885, 886, 887, - 888, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 476, 477, 478, 479, 480, 481, 482, 483, 947, 0, + 0, 0, 0, 0, 0, 948, 949, 0, 0, 0, + 0, 0, 951, 0, 2098, 0, 0, 0, 0, 953, + 0, 954, 955, 93, 888, 583, 889, 890, 891, 892, + 893, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 94, 95, 96, 97, 98, 99, 100, 101, 0, - 102, 103, 104, 0, 0, 0, 0, 889, 0, 0, + 102, 103, 104, 0, 0, 0, 0, 894, 0, 0, 105, 106, 0, 107, 108, 109, 110, 111, 112, 113, - 3053, 890, 116, 891, 892, 0, 119, 120, 121, 122, - 123, 124, 893, 894, 125, 126, 895, 896, 129, 0, - 130, 131, 132, 133, 897, 0, 898, 0, 136, 137, + 114, 895, 116, 896, 897, 0, 119, 120, 121, 122, + 123, 124, 898, 899, 125, 126, 900, 901, 129, 0, + 130, 131, 132, 133, 902, 0, 903, 0, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 0, 146, - 147, 148, 149, 150, 151, 0, 152, 153, 154, 3054, - 899, 900, 901, 902, 903, 904, 905, 161, 162, 163, - 164, 165, 166, 167, 906, 907, 170, 908, 171, 0, + 147, 148, 149, 150, 151, 0, 152, 153, 2797, 155, + 904, 905, 906, 907, 908, 909, 910, 161, 162, 163, + 164, 165, 166, 167, 911, 912, 170, 913, 171, 0, 172, 173, 174, 175, 176, 177, 0, 178, 179, 180, - 181, 182, 0, 0, 183, 184, 712, 186, 187, 0, + 181, 182, 0, 0, 183, 184, 717, 186, 187, 0, 188, 189, 190, 0, 191, 192, 193, 0, 194, 195, - 196, 197, 909, 199, 200, 201, 202, 203, 910, 911, - 205, 0, 206, 207, 912, 209, 0, 210, 0, 211, + 196, 197, 914, 199, 200, 201, 202, 203, 915, 916, + 205, 0, 206, 207, 917, 209, 0, 210, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 0, 219, - 0, 913, 914, 222, 0, 223, 224, 225, 226, 227, + 0, 2798, 919, 222, 0, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 0, 235, 236, 237, 238, 239, 240, 0, 241, 242, 243, 244, 245, - 246, 247, 248, 915, 916, 0, 917, 0, 252, 253, + 246, 247, 248, 920, 921, 0, 922, 0, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 0, - 0, 263, 264, 265, 266, 0, 267, 268, 269, 918, - 919, 270, 271, 272, 273, 274, 275, 276, 277, 278, + 0, 263, 264, 265, 266, 0, 267, 268, 269, 923, + 924, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, - 289, 290, 291, 292, 293, 920, 295, 921, 297, 298, - 299, 300, 922, 301, 302, 303, 304, 923, 924, 306, - 925, 308, 309, 310, 0, 311, 312, 0, 0, 926, - 314, 315, 0, 0, 316, 317, 318, 319, 320, 927, + 289, 290, 291, 292, 293, 925, 295, 926, 297, 298, + 299, 300, 927, 301, 302, 303, 304, 928, 929, 306, + 930, 308, 309, 310, 0, 311, 312, 0, 0, 931, + 314, 315, 0, 0, 316, 317, 318, 319, 320, 932, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, - 0, 332, 333, 928, 335, 336, 337, 338, 339, 340, + 0, 332, 333, 933, 335, 336, 337, 338, 339, 340, 0, 341, 342, 343, 344, 345, 346, 0, 347, 348, - 349, 929, 351, 352, 353, 354, 0, 355, 356, 357, + 349, 934, 351, 352, 353, 354, 0, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, - 0, 368, 369, 370, 371, 372, 373, 930, 375, 376, + 0, 368, 369, 370, 371, 372, 2799, 935, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 0, - 386, 387, 388, 389, 390, 931, 392, 393, 394, 395, - 396, 397, 398, 399, 932, 401, 0, 402, 403, 404, + 386, 387, 388, 389, 390, 936, 392, 393, 394, 395, + 396, 397, 398, 399, 937, 401, 0, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, - 415, 933, 417, 0, 418, 419, 0, 420, 421, 422, - 423, 424, 425, 426, 0, 934, 935, 0, 0, 429, - 430, 936, 432, 937, 938, 434, 435, 939, 437, 438, - 3055, 440, 441, 0, 0, 442, 443, 444, 445, 446, - 940, 0, 448, 449, 450, 451, 452, 453, 941, 0, + 415, 938, 417, 0, 418, 419, 0, 420, 421, 422, + 423, 424, 425, 426, 0, 939, 940, 0, 0, 429, + 430, 941, 432, 942, 943, 434, 435, 944, 437, 438, + 439, 440, 441, 0, 0, 442, 443, 444, 445, 446, + 945, 0, 448, 449, 450, 451, 452, 453, 946, 0, 455, 456, 457, 458, 459, 460, 461, 0, 0, 462, 0, 0, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, - 481, 482, 483, 942, 0, 0, 0, 0, 0, 0, - 943, 944, 0, 0, 0, 0, 0, 946, 0, 947, - 0, 0, 0, 0, 948, 0, 949, 950, 93, 883, - 582, 884, 885, 886, 887, 888, 0, 0, 0, 0, + 481, 482, 483, 947, 0, 0, 0, 0, 0, 0, + 948, 949, 0, 0, 0, 0, 0, 951, 0, 2801, + 0, 0, 0, 0, 953, 0, 954, 955, 93, 888, + 583, 889, 890, 891, 892, 893, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 94, 95, 96, 97, 98, 99, 100, 101, 0, 102, 103, 104, 0, 0, - 0, 0, 889, 0, 0, 105, 106, 0, 107, 108, - 109, 110, 111, 112, 113, 114, 890, 116, 891, 892, - 0, 119, 120, 121, 122, 123, 124, 893, 894, 125, - 126, 895, 896, 129, 0, 130, 131, 132, 133, 897, - 0, 898, 0, 136, 137, 138, 139, 140, 141, 142, + 0, 0, 894, 0, 0, 105, 106, 0, 107, 108, + 109, 110, 111, 112, 113, 3055, 895, 116, 896, 897, + 0, 119, 120, 121, 122, 123, 124, 898, 899, 125, + 126, 900, 901, 129, 0, 130, 131, 132, 133, 902, + 0, 903, 0, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 0, 146, 147, 148, 149, 150, 151, - 0, 152, 153, 154, 3054, 899, 900, 901, 902, 903, - 904, 905, 161, 162, 163, 164, 165, 166, 167, 906, - 907, 170, 908, 171, 0, 172, 173, 174, 175, 176, + 0, 152, 153, 154, 3056, 904, 905, 906, 907, 908, + 909, 910, 161, 162, 163, 164, 165, 166, 167, 911, + 912, 170, 913, 171, 0, 172, 173, 174, 175, 176, 177, 0, 178, 179, 180, 181, 182, 0, 0, 183, - 184, 712, 186, 187, 0, 188, 189, 190, 0, 191, - 192, 193, 0, 194, 195, 196, 197, 909, 199, 200, - 201, 202, 203, 910, 911, 205, 0, 206, 207, 912, + 184, 717, 186, 187, 0, 188, 189, 190, 0, 191, + 192, 193, 0, 194, 195, 196, 197, 914, 199, 200, + 201, 202, 203, 915, 916, 205, 0, 206, 207, 917, 209, 0, 210, 0, 211, 212, 0, 213, 214, 215, - 216, 217, 218, 0, 219, 0, 913, 914, 222, 0, + 216, 217, 218, 0, 219, 0, 918, 919, 222, 0, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 0, 235, 236, 237, 238, 239, 240, 0, - 241, 242, 243, 244, 245, 246, 247, 248, 915, 916, - 0, 917, 0, 252, 253, 254, 255, 256, 257, 258, + 241, 242, 243, 244, 245, 246, 247, 248, 920, 921, + 0, 922, 0, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 0, 0, 263, 264, 265, 266, - 0, 267, 268, 269, 918, 919, 270, 271, 272, 273, + 0, 267, 268, 269, 923, 924, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, - 920, 295, 921, 297, 298, 299, 300, 922, 301, 302, - 303, 304, 923, 924, 306, 925, 308, 309, 310, 0, - 311, 312, 0, 0, 926, 314, 315, 0, 0, 316, - 317, 318, 319, 320, 927, 322, 323, 324, 325, 326, - 327, 328, 329, 330, 331, 0, 332, 333, 928, 335, + 925, 295, 926, 297, 298, 299, 300, 927, 301, 302, + 303, 304, 928, 929, 306, 930, 308, 309, 310, 0, + 311, 312, 0, 0, 931, 314, 315, 0, 0, 316, + 317, 318, 319, 320, 932, 322, 323, 324, 325, 326, + 327, 328, 329, 330, 331, 0, 332, 333, 933, 335, 336, 337, 338, 339, 340, 0, 341, 342, 343, 344, - 345, 346, 0, 347, 348, 349, 929, 351, 352, 353, + 345, 346, 0, 347, 348, 349, 934, 351, 352, 353, 354, 0, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 0, 368, 369, 370, 371, - 372, 373, 930, 375, 376, 377, 378, 379, 380, 381, + 372, 373, 935, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 0, 386, 387, 388, 389, 390, - 931, 392, 393, 394, 395, 396, 397, 398, 399, 932, + 936, 392, 393, 394, 395, 396, 397, 398, 399, 937, 401, 0, 402, 403, 404, 405, 406, 407, 408, 409, - 410, 411, 412, 413, 414, 415, 933, 417, 0, 418, + 410, 411, 412, 413, 414, 415, 938, 417, 0, 418, 419, 0, 420, 421, 422, 423, 424, 425, 426, 0, - 934, 935, 0, 0, 429, 430, 936, 432, 937, 938, - 434, 435, 939, 437, 438, 3055, 440, 441, 0, 0, - 442, 443, 444, 445, 446, 940, 0, 448, 449, 450, - 451, 452, 453, 941, 0, 455, 456, 457, 458, 459, + 939, 940, 0, 0, 429, 430, 941, 432, 942, 943, + 434, 435, 944, 437, 438, 3057, 440, 441, 0, 0, + 442, 443, 444, 445, 446, 945, 0, 448, 449, 450, + 451, 452, 453, 946, 0, 455, 456, 457, 458, 459, 460, 461, 0, 0, 462, 0, 0, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, - 476, 477, 478, 479, 480, 481, 482, 483, 942, 0, - 0, 0, 0, 0, 0, 943, 944, 0, 0, 0, - 0, 0, 946, 0, 947, 0, 0, 0, 0, 948, - 0, 949, 950, 93, 883, 582, 884, 885, 886, 887, - 888, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 476, 477, 478, 479, 480, 481, 482, 483, 947, 0, + 0, 0, 0, 0, 0, 948, 949, 0, 0, 0, + 0, 0, 951, 0, 952, 0, 0, 0, 0, 953, + 0, 954, 955, 93, 888, 583, 889, 890, 891, 892, + 893, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 94, 95, 96, 97, 98, 99, 100, 101, 0, - 102, 103, 104, 0, 0, 0, 0, 889, 0, 0, + 102, 103, 104, 0, 0, 0, 0, 894, 0, 0, 105, 106, 0, 107, 108, 109, 110, 111, 112, 113, - -1845, 890, 116, 891, 892, 0, 119, 120, 121, 122, - 123, 124, 893, 894, 125, 126, 895, 896, 129, 0, - 130, 131, 132, 133, 897, 0, 898, 0, 136, 137, + 114, 895, 116, 896, 897, 0, 119, 120, 121, 122, + 123, 124, 898, 899, 125, 126, 900, 901, 129, 0, + 130, 131, 132, 133, 902, 0, 903, 0, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 0, 146, - 147, 148, 149, 150, 151, 0, 152, 153, 154, 3054, - 899, 900, 901, 902, 903, 904, 905, 161, 162, 163, - 164, 165, 166, 167, 906, 907, 170, 908, 171, 0, + 147, 148, 149, 150, 151, 0, 152, 153, 154, 3056, + 904, 905, 906, 907, 908, 909, 910, 161, 162, 163, + 164, 165, 166, 167, 911, 912, 170, 913, 171, 0, 172, 173, 174, 175, 176, 177, 0, 178, 179, 180, - 181, 182, 0, 0, 183, 184, 712, 186, 187, 0, + 181, 182, 0, 0, 183, 184, 717, 186, 187, 0, 188, 189, 190, 0, 191, 192, 193, 0, 194, 195, - 196, 197, 909, 199, 200, 201, 202, 203, 910, 911, - 205, 0, 206, 207, 912, 209, 0, 210, 0, 211, - 212, 0, 213, 214, 215, 216, -1845, 218, 0, 219, - 0, 913, 914, 222, 0, 223, 224, 225, 226, 227, - 228, 229, -1845, 231, 232, 233, 234, 0, 235, 236, + 196, 197, 914, 199, 200, 201, 202, 203, 915, 916, + 205, 0, 206, 207, 917, 209, 0, 210, 0, 211, + 212, 0, 213, 214, 215, 216, 217, 218, 0, 219, + 0, 918, 919, 222, 0, 223, 224, 225, 226, 227, + 228, 229, 230, 231, 232, 233, 234, 0, 235, 236, 237, 238, 239, 240, 0, 241, 242, 243, 244, 245, - 246, 247, 248, 915, 916, 0, 917, 0, 252, 0, - 0, 255, 256, 257, 258, 259, 260, 261, 262, 0, - 0, 263, 264, 265, -1845, 0, 267, 268, 269, 918, - 919, 270, 271, 272, 273, 274, 275, 276, 277, 278, + 246, 247, 248, 920, 921, 0, 922, 0, 252, 253, + 254, 255, 256, 257, 258, 259, 260, 261, 262, 0, + 0, 263, 264, 265, 266, 0, 267, 268, 269, 923, + 924, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, - 289, 290, 291, 292, 293, 920, 295, 921, 297, 298, - 299, 300, 0, 301, 302, 0, 304, 923, 924, 306, - 925, 308, 309, 310, 0, 311, 312, 0, 0, 926, - 314, 315, 0, 0, 316, 317, 318, 319, 320, 927, + 289, 290, 291, 292, 293, 925, 295, 926, 297, 298, + 299, 300, 927, 301, 302, 303, 304, 928, 929, 306, + 930, 308, 309, 310, 0, 311, 312, 0, 0, 931, + 314, 315, 0, 0, 316, 317, 318, 319, 320, 932, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, - 0, 332, 333, 928, 335, 336, 337, 338, 339, 340, + 0, 332, 333, 933, 335, 336, 337, 338, 339, 340, 0, 341, 342, 343, 344, 345, 346, 0, 347, 348, - 349, 929, 351, 352, 353, 354, 0, 355, 356, 357, + 349, 934, 351, 352, 353, 354, 0, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, - 0, 368, 369, 370, 371, 372, 373, 930, 375, 376, + 0, 368, 369, 370, 371, 372, 373, 935, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 0, - 386, 387, 388, 389, 390, 931, 392, 393, 394, 395, - 396, -1845, 398, 399, 932, 401, 0, 402, 403, 404, + 386, 387, 388, 389, 390, 936, 392, 393, 394, 395, + 396, 397, 398, 399, 937, 401, 0, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, - 415, 933, 417, 0, 418, 419, 0, 420, 421, 422, - 423, 424, 425, 426, 0, 934, 935, 0, 0, 429, - 430, 936, 432, 937, 938, 434, 435, 939, 437, 438, - 3055, 440, 441, 0, 0, 442, 443, 444, 445, 446, - 940, 0, 448, 449, 450, 451, 452, 453, 941, 0, + 415, 938, 417, 0, 418, 419, 0, 420, 421, 422, + 423, 424, 425, 426, 0, 939, 940, 0, 0, 429, + 430, 941, 432, 942, 943, 434, 435, 944, 437, 438, + 3057, 440, 441, 0, 0, 442, 443, 444, 445, 446, + 945, 0, 448, 449, 450, 451, 452, 453, 946, 0, 455, 456, 457, 458, 459, 460, 461, 0, 0, 462, 0, 0, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, - 481, 482, 483, -1845, 0, 0, 0, 0, 0, 0, - 943, 944, 0, 0, 0, 0, 0, 946, 0, 947, - 0, 0, 0, 0, 948, 0, 949, 950, 93, 883, - 582, 884, 885, 886, 887, 888, 0, 0, 0, 0, + 481, 482, 483, 947, 0, 0, 0, 0, 0, 0, + 948, 949, 0, 0, 0, 0, 0, 951, 0, 952, + 0, 0, 0, 0, 953, 0, 954, 955, 93, 888, + 583, 889, 890, 891, 892, 893, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 94, 95, 96, 97, 98, 99, 100, 101, 0, 102, 103, 104, 0, 0, - 0, 0, 0, 0, 0, 105, 106, 0, 107, 108, - 109, 110, 111, 112, 113, 114, 890, 116, 891, 892, - 0, 119, 120, 121, 122, 123, 124, 893, 894, 125, - 126, 895, 896, 129, 0, 130, 131, 132, 133, 897, - 0, 898, 0, 136, 137, 138, 139, 140, 141, 142, + 0, 0, 894, 0, 0, 105, 106, 0, 107, 108, + 109, 110, 111, 112, 113, -1846, 895, 116, 896, 897, + 0, 119, 120, 121, 122, 123, 124, 898, 899, 125, + 126, 900, 901, 129, 0, 130, 131, 132, 133, 902, + 0, 903, 0, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 0, 146, 147, 148, 149, 150, 151, - 0, 152, 153, 154, 155, 899, 900, 901, 902, 903, - 904, 905, 161, 162, 163, 164, 165, 166, 167, 906, - 907, 170, 0, 171, 0, 172, 173, 174, 175, 176, + 0, 152, 153, 154, 3056, 904, 905, 906, 907, 908, + 909, 910, 161, 162, 163, 164, 165, 166, 167, 911, + 912, 170, 913, 171, 0, 172, 173, 174, 175, 176, 177, 0, 178, 179, 180, 181, 182, 0, 0, 183, - 184, 712, 186, 187, 0, 188, 189, 190, 0, 191, - 192, 193, 0, 194, 195, 196, 197, 909, 199, 200, - 201, 202, 203, 910, 911, 205, 0, 206, 207, 912, + 184, 717, 186, 187, 0, 188, 189, 190, 0, 191, + 192, 193, 0, 194, 195, 196, 197, 914, 199, 200, + 201, 202, 203, 915, 916, 205, 0, 206, 207, 917, 209, 0, 210, 0, 211, 212, 0, 213, 214, 215, - 216, 217, 218, 0, 219, 0, 913, 914, 222, 0, - 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, + 216, -1846, 218, 0, 219, 0, 918, 919, 222, 0, + 223, 224, 225, 226, 227, 228, 229, -1846, 231, 232, 233, 234, 0, 235, 236, 237, 238, 239, 240, 0, - 241, 242, 243, 244, 245, 246, 247, 248, 915, 916, - 0, 917, 0, 252, 253, 254, 255, 256, 257, 258, - 259, 260, 261, 262, 0, 0, 263, 264, 265, 266, - 0, 267, 268, 269, 918, 919, 270, 271, 272, 273, + 241, 242, 243, 244, 245, 246, 247, 248, 920, 921, + 0, 922, 0, 252, 0, 0, 255, 256, 257, 258, + 259, 260, 261, 262, 0, 0, 263, 264, 265, -1846, + 0, 267, 268, 269, 923, 924, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, - 920, 295, 921, 297, 298, 299, 300, 0, 301, 302, - 303, 304, 923, 924, 306, 925, 308, 309, 310, 0, - 311, 312, 0, 0, 926, 314, 315, 0, 0, 316, - 317, 318, 319, 320, 927, 322, 323, 324, 325, 326, - 327, 328, 329, 330, 331, 0, 332, 333, 928, 335, + 925, 295, 926, 297, 298, 299, 300, 0, 301, 302, + 0, 304, 928, 929, 306, 930, 308, 309, 310, 0, + 311, 312, 0, 0, 931, 314, 315, 0, 0, 316, + 317, 318, 319, 320, 932, 322, 323, 324, 325, 326, + 327, 328, 329, 330, 331, 0, 332, 333, 933, 335, 336, 337, 338, 339, 340, 0, 341, 342, 343, 344, - 345, 346, 0, 347, 348, 349, 929, 351, 352, 353, + 345, 346, 0, 347, 348, 349, 934, 351, 352, 353, 354, 0, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 0, 368, 369, 370, 371, - 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, + 372, 373, 935, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 0, 386, 387, 388, 389, 390, - 931, 392, 393, 394, 395, 396, 397, 398, 399, 932, + 936, 392, 393, 394, 395, 396, -1846, 398, 399, 937, 401, 0, 402, 403, 404, 405, 406, 407, 408, 409, - 410, 411, 412, 413, 414, 415, 933, 417, 0, 418, + 410, 411, 412, 413, 414, 415, 938, 417, 0, 418, 419, 0, 420, 421, 422, 423, 424, 425, 426, 0, - 934, 935, 0, 0, 429, 430, 936, 432, 937, 938, - 434, 435, 939, 437, 438, 439, 440, 441, 0, 0, - 442, 443, 444, 445, 446, 940, 0, 448, 449, 450, - 451, 452, 453, 941, 0, 455, 456, 457, 458, 459, + 939, 940, 0, 0, 429, 430, 941, 432, 942, 943, + 434, 435, 944, 437, 438, 3057, 440, 441, 0, 0, + 442, 443, 444, 445, 446, 945, 0, 448, 449, 450, + 451, 452, 453, 946, 0, 455, 456, 457, 458, 459, 460, 461, 0, 0, 462, 0, 0, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, - 476, 477, 478, 479, 480, 481, 482, 483, 0, 0, - 0, 0, 0, 0, 0, 1707, 1708, 0, 0, 93, - 883, 582, 884, 885, 1709, 887, 888, 0, 0, 0, - 0, 949, 950, 0, 0, 0, 0, 94, 95, 96, + 476, 477, 478, 479, 480, 481, 482, 483, -1846, 0, + 0, 0, 0, 0, 0, 948, 949, 0, 0, 0, + 0, 0, 951, 0, 952, 0, 0, 0, 0, 953, + 0, 954, 955, 93, 888, 583, 889, 890, 891, 892, + 893, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 94, 95, 96, 97, 98, 99, 100, 101, 0, + 102, 103, 104, 0, 0, 0, 0, 0, 0, 0, + 105, 106, 0, 107, 108, 109, 110, 111, 112, 113, + 114, 895, 116, 896, 897, 0, 119, 120, 121, 122, + 123, 124, 898, 899, 125, 126, 900, 901, 129, 0, + 130, 131, 132, 133, 902, 0, 903, 0, 136, 137, + 138, 139, 140, 141, 142, 143, 144, 145, 0, 146, + 147, 148, 149, 150, 151, 0, 152, 153, 154, 155, + 904, 905, 906, 907, 908, 909, 910, 161, 162, 163, + 164, 165, 166, 167, 911, 912, 170, 0, 171, 0, + 172, 173, 174, 175, 176, 177, 0, 178, 179, 180, + 181, 182, 0, 0, 183, 184, 717, 186, 187, 0, + 188, 189, 190, 0, 191, 192, 193, 0, 194, 195, + 196, 197, 914, 199, 200, 201, 202, 203, 915, 916, + 205, 0, 206, 207, 917, 209, 0, 210, 0, 211, + 212, 0, 213, 214, 215, 216, 217, 218, 0, 219, + 0, 918, 919, 222, 0, 223, 224, 225, 226, 227, + 228, 229, 230, 231, 232, 233, 234, 0, 235, 236, + 237, 238, 239, 240, 0, 241, 242, 243, 244, 245, + 246, 247, 248, 920, 921, 0, 922, 0, 252, 253, + 254, 255, 256, 257, 258, 259, 260, 261, 262, 0, + 0, 263, 264, 265, 266, 0, 267, 268, 269, 923, + 924, 270, 271, 272, 273, 274, 275, 276, 277, 278, + 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, + 289, 290, 291, 292, 293, 925, 295, 926, 297, 298, + 299, 300, 0, 301, 302, 303, 304, 928, 929, 306, + 930, 308, 309, 310, 0, 311, 312, 0, 0, 931, + 314, 315, 0, 0, 316, 317, 318, 319, 320, 932, + 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, + 0, 332, 333, 933, 335, 336, 337, 338, 339, 340, + 0, 341, 342, 343, 344, 345, 346, 0, 347, 348, + 349, 934, 351, 352, 353, 354, 0, 355, 356, 357, + 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, + 0, 368, 369, 370, 371, 372, 373, 374, 375, 376, + 377, 378, 379, 380, 381, 382, 383, 384, 385, 0, + 386, 387, 388, 389, 390, 936, 392, 393, 394, 395, + 396, 397, 398, 399, 937, 401, 0, 402, 403, 404, + 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, + 415, 938, 417, 0, 418, 419, 0, 420, 421, 422, + 423, 424, 425, 426, 0, 939, 940, 0, 0, 429, + 430, 941, 432, 942, 943, 434, 435, 944, 437, 438, + 439, 440, 441, 0, 0, 442, 443, 444, 445, 446, + 945, 0, 448, 449, 450, 451, 452, 453, 946, 0, + 455, 456, 457, 458, 459, 460, 461, 0, 0, 462, + 0, 0, 463, 464, 465, 466, 467, 468, 469, 470, + 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, + 481, 482, 483, 0, 0, 0, 0, 0, 0, 0, + 1712, 1713, 0, 0, 93, 888, 583, 889, 890, 1714, + 892, 893, 0, 0, 0, 0, 954, 955, 0, 0, + 0, 0, 94, 95, 96, 97, 98, 99, 100, 101, + 0, 102, 103, 104, 0, 0, 0, 0, 0, 0, + 0, 105, 106, 0, 107, 108, 109, 110, 111, 112, + 113, 114, 895, 116, 896, 897, 0, 119, 120, 121, + 122, 123, 124, 898, 899, 125, 126, 900, 901, 129, + 0, 130, 131, 132, 133, 902, 0, 903, 0, 136, + 137, 138, 139, 140, 141, 142, 143, 144, 145, 0, + 146, 147, 148, 149, 150, 151, 0, 152, 153, 154, + 155, 904, 905, 906, 907, 908, 909, 910, 161, 162, + 163, 164, 165, 166, 167, 911, 912, 170, 0, 171, + 0, 172, 173, 174, 175, 176, 177, 0, 178, 179, + 180, 181, 182, 0, 0, 183, 184, 717, 186, 187, + 0, 188, 189, 190, 0, 191, 192, 193, 0, 194, + 195, 196, 197, 914, 199, 200, 201, 202, 203, 915, + 916, 205, 0, 206, 207, 917, 209, 0, 210, 0, + 211, 212, 0, 213, 214, 215, 216, 217, 218, 0, + 219, 0, 918, 919, 222, 0, 223, 224, 225, 226, + 227, 228, 229, 230, 231, 232, 233, 234, 0, 235, + 236, 237, 238, 239, 240, 0, 241, 242, 243, 244, + 245, 246, 247, 248, 920, 921, 0, 922, 0, 252, + 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, + 0, 0, 263, 264, 265, 266, 0, 267, 268, 269, + 923, 924, 270, 271, 272, 273, 274, 275, 276, 277, + 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, + 288, 289, 290, 291, 292, 293, 925, 295, 926, 297, + 298, 299, 300, 0, 301, 302, 303, 304, 928, 929, + 306, 930, 308, 309, 310, 0, 311, 312, 0, 0, + 313, 314, 315, 0, 0, 316, 317, 318, 319, 320, + 932, 322, 323, 324, 325, 326, 327, 328, 329, 330, + 331, 0, 332, 333, 933, 335, 336, 337, 338, 339, + 340, 0, 341, 342, 343, 344, 345, 346, 0, 347, + 348, 349, 934, 351, 352, 353, 354, 0, 355, 356, + 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, + 367, 0, 368, 369, 370, 371, 372, 373, 1838, 1839, + 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, + 0, 386, 387, 388, 389, 390, 936, 392, 393, 394, + 395, 396, 397, 398, 399, 937, 401, 0, 402, 403, + 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, + 414, 415, 938, 417, 0, 418, 419, 0, 420, 421, + 422, 423, 424, 425, 426, 0, 939, 940, 0, 0, + 429, 430, 941, 432, 942, 943, 434, 435, 944, 437, + 438, 439, 440, 441, 0, 0, 442, 443, 444, 445, + 446, 945, 0, 448, 449, 450, 451, 452, 453, 946, + 0, 455, 456, 457, 458, 459, 460, 461, 0, 0, + 462, 0, 0, 463, 464, 465, 466, 467, 468, 469, + 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, + 480, 481, 482, 483, 0, 0, 0, 0, 0, 0, + 0, 1840, 1841, 0, 0, 0, 0, 0, 0, 0, + 1714, 0, 0, 0, 0, 0, 0, 954, 955, 93, + 888, 583, 889, 890, 891, 892, 893, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 94, 95, 96, 97, 98, 99, 100, 101, 0, 102, 103, 104, 0, 0, 0, 0, 0, 0, 0, 105, 106, 0, 107, - 108, 109, 110, 111, 112, 113, 114, 890, 116, 891, - 892, 0, 119, 120, 121, 122, 123, 124, 893, 894, - 125, 126, 895, 896, 129, 0, 130, 131, 132, 133, - 897, 0, 898, 0, 136, 137, 138, 139, 140, 141, + 108, 109, 110, 111, 112, 113, 114, 895, 116, 896, + 897, 0, 119, 120, 121, 122, 123, 124, 898, 899, + 125, 126, 900, 901, 129, 0, 130, 131, 132, 133, + 902, 0, 903, 0, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 0, 146, 147, 148, 149, 150, - 151, 0, 152, 153, 154, 155, 899, 900, 901, 902, - 903, 904, 905, 161, 162, 163, 164, 165, 166, 167, - 906, 907, 170, 0, 171, 0, 172, 173, 174, 175, + 151, 0, 152, 153, 154, 155, 904, 905, 906, 907, + 908, 909, 910, 161, 162, 163, 164, 165, 166, 167, + 911, 912, 170, 0, 171, 0, 172, 173, 174, 175, 176, 177, 0, 178, 179, 180, 181, 182, 0, 0, - 183, 184, 712, 186, 187, 0, 188, 189, 190, 0, - 191, 192, 193, 0, 194, 195, 196, 197, 909, 199, - 200, 201, 202, 203, 910, 911, 205, 0, 206, 207, - 912, 209, 0, 210, 0, 211, 212, 0, 213, 214, - 215, 216, 217, 218, 0, 219, 0, 913, 914, 222, + 183, 184, 717, 186, 187, 0, 188, 189, 190, 0, + 191, 192, 193, 0, 194, 195, 196, 197, 914, 199, + 200, 201, 202, 203, 915, 916, 205, 0, 206, 207, + 917, 209, 0, 210, 0, 211, 212, 0, 213, 214, + 215, 216, 217, 218, 0, 219, 0, 918, 919, 222, 0, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 0, 235, 236, 237, 238, 239, 240, - 0, 241, 242, 243, 244, 245, 246, 247, 248, 915, - 916, 0, 917, 0, 252, 253, 254, 255, 256, 257, + 0, 241, 242, 243, 244, 245, 246, 247, 248, 920, + 921, 0, 922, 0, 252, 0, 254, 255, 256, 257, 258, 259, 260, 261, 262, 0, 0, 263, 264, 265, - 266, 0, 267, 268, 269, 918, 919, 270, 271, 272, + 266, 0, 267, 268, 269, 923, 924, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, - 293, 920, 295, 921, 297, 298, 299, 300, 0, 301, - 302, 303, 304, 923, 924, 306, 925, 308, 309, 310, - 0, 311, 312, 0, 0, 313, 314, 315, 0, 0, - 316, 317, 318, 319, 320, 927, 322, 323, 324, 325, - 326, 327, 328, 329, 330, 331, 0, 332, 333, 928, + 293, 925, 295, 926, 297, 298, 299, 300, 0, 301, + 302, 303, 304, 928, 929, 306, 930, 308, 309, 310, + 0, 311, 312, 0, 0, 931, 314, 315, 0, 0, + 316, 317, 318, 319, 320, 932, 322, 323, 324, 325, + 326, 327, 328, 329, 330, 331, 0, 332, 333, 933, 335, 336, 337, 338, 339, 340, 0, 341, 342, 343, - 344, 345, 346, 0, 347, 348, 349, 929, 351, 352, + 344, 345, 346, 0, 347, 348, 349, 934, 351, 352, 353, 354, 0, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 0, 368, 369, 370, - 371, 372, 373, 1833, 1834, 376, 377, 378, 379, 380, + 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 0, 386, 387, 388, 389, - 390, 931, 392, 393, 394, 395, 396, 397, 398, 399, - 932, 401, 0, 402, 403, 404, 405, 406, 407, 408, - 409, 410, 411, 412, 413, 414, 415, 933, 417, 0, + 390, 936, 392, 393, 394, 395, 396, 397, 398, 399, + 937, 401, 0, 402, 403, 404, 405, 406, 407, 408, + 409, 410, 411, 412, 413, 414, 415, 938, 417, 0, 418, 419, 0, 420, 421, 422, 423, 424, 425, 426, - 0, 934, 935, 0, 0, 429, 430, 936, 432, 937, - 938, 434, 435, 939, 437, 438, 439, 440, 441, 0, - 0, 442, 443, 444, 445, 446, 940, 0, 448, 449, - 450, 451, 452, 453, 941, 0, 455, 456, 457, 458, + 0, 939, 940, 0, 0, 429, 430, 941, 432, 942, + 943, 434, 435, 944, 437, 438, 439, 440, 441, 0, + 0, 442, 443, 444, 445, 446, 945, 0, 448, 449, + 450, 451, 452, 453, 946, 0, 455, 456, 457, 458, 459, 460, 461, 0, 0, 462, 0, 0, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 0, - 0, 0, 0, 0, 0, 0, 1835, 1836, 0, 0, - 0, 0, 0, 0, 0, 1709, 0, 0, 0, 0, - 0, 0, 949, 950, 93, 883, 582, 884, 885, 886, - 887, 888, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1712, 1713, 0, 0, + 0, 0, 0, 0, 0, 1714, 0, 0, 0, 0, + 0, 0, 954, 955, 93, 888, 583, 889, 890, 891, + 892, 893, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 94, 95, 96, 97, 98, 99, 100, 101, - 0, 102, 103, 104, 0, 0, 0, 0, 0, 0, + 0, 102, 103, 104, 0, 0, 0, 0, 894, 0, 0, 105, 106, 0, 107, 108, 109, 110, 111, 112, - 113, 114, 890, 116, 891, 892, 0, 119, 120, 121, - 122, 123, 124, 893, 894, 125, 126, 895, 896, 129, - 0, 130, 131, 132, 133, 897, 0, 898, 0, 136, + 113, 0, 895, 116, 896, 897, 0, 119, 120, 121, + 122, 123, 124, 898, 899, 125, 126, 900, 901, 129, + 0, 130, 131, 132, 133, 902, 0, 903, 0, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 0, 146, 147, 148, 149, 150, 151, 0, 152, 153, 154, - 155, 899, 900, 901, 902, 903, 904, 905, 161, 162, - 163, 164, 165, 166, 167, 906, 907, 170, 0, 171, + 155, 904, 905, 906, 907, 908, 909, 910, 161, 162, + 163, 164, 165, 166, 167, 911, 912, 170, 913, 171, 0, 172, 173, 174, 175, 176, 177, 0, 178, 179, - 180, 181, 182, 0, 0, 183, 184, 712, 186, 187, - 0, 188, 189, 190, 0, 191, 192, 193, 0, 194, - 195, 196, 197, 909, 199, 200, 201, 202, 203, 910, - 911, 205, 0, 206, 207, 912, 209, 0, 210, 0, - 211, 212, 0, 213, 214, 215, 216, 217, 218, 0, - 219, 0, 913, 914, 222, 0, 223, 224, 225, 226, - 227, 228, 229, 230, 231, 232, 233, 234, 0, 235, + 180, 181, 182, 0, 0, 183, 184, 717, 186, 187, + 0, 188, 189, 190, 0, 191, 0, 193, 0, 194, + 195, 196, 197, 914, 199, 200, 201, 202, 203, 915, + 916, 205, 0, 206, 207, 917, 209, 0, 210, 0, + 211, 212, 0, 213, 214, 215, 216, 0, 218, 0, + 219, 0, 918, 919, 222, 0, 223, 224, 225, 226, + 227, 228, 229, 0, 231, 232, 233, 234, 0, 235, 236, 237, 238, 239, 240, 0, 241, 242, 243, 244, - 245, 246, 247, 248, 915, 916, 0, 917, 0, 252, - 0, 254, 255, 256, 257, 258, 259, 260, 261, 262, - 0, 0, 263, 264, 265, 266, 0, 267, 268, 269, - 918, 919, 270, 271, 272, 273, 274, 275, 276, 277, + 245, 246, 247, 248, 920, 921, 0, 922, 0, 252, + 0, 0, 255, 256, 257, 258, 259, 260, 261, 262, + 0, 0, 263, 264, 265, 0, 0, 267, 268, 269, + 923, 924, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, - 288, 289, 290, 291, 292, 293, 920, 295, 921, 297, - 298, 299, 300, 0, 301, 302, 303, 304, 923, 924, - 306, 925, 308, 309, 310, 0, 311, 312, 0, 0, - 926, 314, 315, 0, 0, 316, 317, 318, 319, 320, - 927, 322, 323, 324, 325, 326, 327, 328, 329, 330, - 331, 0, 332, 333, 928, 335, 336, 337, 338, 339, + 288, 289, 290, 291, 292, 293, 925, 295, 926, 297, + 298, 299, 300, 0, 301, 302, 0, 304, 928, 929, + 306, 930, 308, 309, 310, 0, 311, 312, 0, 0, + 931, 314, 315, 0, 0, 316, 317, 318, 319, 320, + 932, 322, 323, 324, 325, 326, 327, 328, 329, 330, + 331, 0, 332, 333, 933, 335, 336, 337, 338, 339, 340, 0, 341, 342, 343, 344, 345, 346, 0, 347, - 348, 349, 929, 351, 352, 353, 354, 0, 355, 356, + 348, 349, 934, 351, 352, 353, 354, 0, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, - 367, 0, 368, 369, 370, 371, 372, 373, 374, 375, + 367, 0, 368, 369, 370, 371, 372, 373, 935, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, - 0, 386, 387, 388, 389, 390, 931, 392, 393, 394, - 395, 396, 397, 398, 399, 932, 401, 0, 402, 403, + 0, 386, 387, 388, 389, 390, 936, 392, 393, 394, + 395, 396, 0, 398, 399, 937, 401, 0, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, - 414, 415, 933, 417, 0, 418, 419, 0, 420, 421, - 422, 423, 424, 425, 426, 0, 934, 935, 0, 0, - 429, 430, 936, 432, 937, 938, 434, 435, 939, 437, + 414, 415, 938, 417, 0, 418, 419, 0, 420, 421, + 422, 423, 424, 425, 426, 0, 939, 940, 0, 0, + 429, 430, 941, 432, 942, 943, 434, 435, 944, 437, 438, 439, 440, 441, 0, 0, 442, 443, 444, 445, - 446, 940, 0, 448, 449, 450, 451, 452, 453, 941, + 446, 945, 0, 448, 449, 450, 451, 452, 453, 946, 0, 455, 456, 457, 458, 459, 460, 461, 0, 0, 462, 0, 0, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 0, 0, 0, 0, 0, 0, - 0, 1707, 1708, 0, 0, 0, 0, 0, 0, 0, - 1709, 0, 0, 0, 0, 0, 0, 949, 950, 93, - 883, 582, 884, 885, 886, 887, 888, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 94, 95, 96, + 0, 948, 949, 699, 0, 0, 0, 0, 951, 0, + 952, 0, 0, 0, 0, 953, 0, 954, 955, 0, + 0, 94, 95, 96, 97, 98, 99, 100, 101, 0, + 102, 103, 104, 0, 0, 0, 0, 0, 0, 0, + 105, 106, 0, 107, 108, 109, 700, 111, 112, 113, + 0, 701, 702, 703, 704, 0, 119, 120, 121, 122, + 123, 124, 0, 0, 125, 126, 705, 706, 129, 0, + 130, 131, 132, 133, 0, 0, 707, 0, 136, 137, + 138, 139, 140, 141, 708, 143, 144, 145, 0, 146, + 147, 148, 149, 150, 151, 0, 709, 153, 154, 155, + 710, 711, 712, 713, 0, 0, 714, 161, 162, 163, + 164, 165, 166, 167, 715, 716, 170, 0, 171, 0, + 172, 173, 174, 175, 176, 177, 0, 178, 179, 180, + 181, 182, 0, 0, 183, 184, 717, 186, 187, 0, + 188, 189, 190, 0, 191, 192, 193, 0, 194, 195, + 196, 197, 0, 199, 200, 201, 202, 203, 0, 0, + 205, 0, 206, 207, 718, 209, 0, 210, 0, 211, + 719, 0, 720, 214, 215, 0, 721, 218, 0, 219, + 0, 0, 0, 222, 0, 223, 224, 225, 226, 227, + 228, 229, 723, 231, 232, 233, 234, 0, 235, 236, + 237, 238, 239, 240, 0, 241, 724, 0, 244, 245, + 246, 247, 248, 725, 726, 0, 727, 0, 252, 728, + 729, 255, 730, 257, 258, 259, 260, 261, 262, 0, + 0, 263, 731, 265, 732, 0, 267, 268, 269, 0, + 0, 270, 271, 272, 273, 274, 733, 276, 277, 278, + 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, + 289, 290, 291, 292, 293, 734, 735, 736, 297, 298, + 299, 0, 0, 301, 302, 737, 304, 0, 0, 306, + 738, 308, 309, 310, 0, 311, 312, 0, 0, 313, + 314, 315, 0, 0, 316, 0, 739, 319, 740, 0, + 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, + 0, 332, 333, 0, 335, 336, 0, 338, 339, 340, + 0, 341, 342, 343, 344, 345, 346, 0, 347, 348, + 349, 741, 351, 352, 353, 354, 0, 355, 356, 357, + 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, + 0, 368, 369, 742, 371, 372, 373, 743, 375, 376, + 377, 378, 379, 380, 381, 382, 383, 384, 385, 0, + 386, 387, 388, 389, 390, 744, 392, 745, 394, 395, + 396, 746, 398, 399, 747, 401, 0, 402, 403, 404, + 405, 406, 407, 408, 409, 410, 411, 412, 413, 748, + 415, 0, 417, 0, 418, 419, 0, 420, 749, 422, + 423, 424, 425, 426, 0, 750, 751, 0, 0, 429, + 430, 0, 432, 0, 0, 434, 435, 752, 437, 438, + 439, 440, 441, 0, 0, 442, 443, 444, 445, 446, + 753, 0, 448, 449, 450, 451, 452, 0, 754, 0, + 455, 755, 457, 458, 459, 460, 461, 0, 0, 462, + 0, 0, 463, 464, 465, 466, 467, 468, 0, 507, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 480, + 481, 482, 483, 0, 0, 0, 0, 94, 95, 96, 97, 98, 99, 100, 101, 0, 102, 103, 104, 0, - 0, 0, 0, 889, 0, 0, 105, 106, 0, 107, - 108, 109, 110, 111, 112, 113, 0, 890, 116, 891, - 892, 0, 119, 120, 121, 122, 123, 124, 893, 894, - 125, 126, 895, 896, 129, 0, 130, 131, 132, 133, - 897, 0, 898, 0, 136, 137, 138, 139, 140, 141, - 142, 143, 144, 145, 0, 146, 147, 148, 149, 150, - 151, 0, 152, 153, 154, 155, 899, 900, 901, 902, - 903, 904, 905, 161, 162, 163, 164, 165, 166, 167, - 906, 907, 170, 908, 171, 0, 172, 173, 174, 175, + -928, 0, 0, -928, 2401, 0, 105, 106, 0, 107, + 108, 109, 0, 111, 112, 113, 114, 115, 0, 117, + 118, 0, 119, 120, 121, 122, 123, 124, 0, 0, + 125, 126, 127, 128, 129, 0, 130, 131, 132, 133, + 134, 0, 0, 0, 136, 137, 138, 139, 140, 141, + 0, 143, 144, 145, 0, 146, 147, 148, 149, 150, + 151, 0, -275, 153, 154, 155, 0, 0, 0, 0, + 0, 0, 0, 161, 162, 163, 164, 165, 166, 167, + 168, 169, 170, 0, 171, 0, 172, 173, 174, 175, 176, 177, 0, 178, 179, 180, 181, 182, 0, 0, - 183, 184, 712, 186, 187, 0, 188, 189, 190, 0, - 191, 0, 193, 0, 194, 195, 196, 197, 909, 199, - 200, 201, 202, 203, 910, 911, 205, 0, 206, 207, - 912, 209, 0, 210, 0, 211, 212, 0, 213, 214, - 215, 216, 0, 218, 0, 219, 0, 913, 914, 222, + 183, 184, 185, 186, 187, 0, 188, 189, 190, 0, + 191, 192, 193, 0, 194, 195, 196, 197, 198, 199, + 200, 201, 202, 203, 204, 0, 205, 0, 206, 207, + 208, 209, 0, 210, 0, 211, 0, 0, -275, 214, + 215, 510, 0, 218, 0, 219, 0, 220, 221, 222, 0, 223, 224, 225, 226, 227, 228, 229, 0, 231, 232, 233, 234, 0, 235, 236, 237, 238, 239, 240, - 0, 241, 242, 243, 244, 245, 246, 247, 248, 915, - 916, 0, 917, 0, 252, 0, 0, 255, 256, 257, - 258, 259, 260, 261, 262, 0, 0, 263, 264, 265, - 0, 0, 267, 268, 269, 918, 919, 270, 271, 272, - 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, + 0, 241, -275, 243, 244, 245, 246, 247, 248, 249, + 250, 0, 251, 0, 252, 0, 0, 255, -275, 257, + 258, 259, 260, 261, 262, 0, 0, 263, -275, 265, + 0, 0, 267, 268, 269, 0, 0, 270, 271, 272, + 273, 274, 511, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, - 293, 920, 295, 921, 297, 298, 299, 300, 0, 301, - 302, 0, 304, 923, 924, 306, 925, 308, 309, 310, - 0, 311, 312, 0, 0, 926, 314, 315, 0, 0, - 316, 317, 318, 319, 320, 927, 322, 323, 324, 325, - 326, 327, 328, 329, 330, 331, 0, 332, 333, 928, + 293, 294, -275, 296, 297, 298, 299, 300, 0, 301, + 302, 0, 304, 0, 305, 306, 307, 308, 309, 310, + 0, 311, 312, 0, 0, 313, 314, 315, 0, 0, + 316, 317, 0, 319, 0, 321, 322, 323, 324, 325, + 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 335, 336, 337, 338, 339, 340, 0, 341, 342, 343, - 344, 345, 346, 0, 347, 348, 349, 929, 351, 352, + 344, 345, 346, 0, 347, 348, 349, 350, 351, 352, 353, 354, 0, 355, 356, 357, 358, 359, 360, 361, - 362, 363, 364, 365, 366, 367, 0, 368, 369, 370, - 371, 372, 373, 930, 375, 376, 377, 378, 379, 380, + 362, 363, 364, 365, 366, 367, 0, 368, 369, -275, + 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 0, 386, 387, 388, 389, - 390, 931, 392, 393, 394, 395, 396, 0, 398, 399, - 932, 401, 0, 402, 403, 404, 405, 406, 407, 408, - 409, 410, 411, 412, 413, 414, 415, 933, 417, 0, - 418, 419, 0, 420, 421, 422, 423, 424, 425, 426, - 0, 934, 935, 0, 0, 429, 430, 936, 432, 937, - 938, 434, 435, 939, 437, 438, 439, 440, 441, 0, - 0, 442, 443, 444, 445, 446, 940, 0, 448, 449, - 450, 451, 452, 453, 941, 0, 455, 456, 457, 458, + 390, 0, 392, 393, 394, 395, 396, 0, 398, 399, + 400, 401, 0, 402, 403, 404, 405, 406, 407, 408, + 409, 410, 411, 412, 413, 513, 415, 416, 417, 0, + 418, 419, 0, 420, -275, 422, 423, 424, 425, 426, + 0, 427, 428, 0, 0, 429, 430, 431, 432, 433, + 0, 434, 435, 436, 437, 438, 439, 440, 441, 0, + 0, 442, 443, 444, 445, 446, 0, 0, 448, 449, + 450, 451, 452, 453, 454, 0, 455, 0, 457, 458, 459, 460, 461, 0, 0, 462, 0, 0, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, + 475, 476, 477, 478, 479, 480, 481, 482, 483, 93, + 0, 508, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1017, 94, 95, 96, + 97, 98, 99, 100, 101, 0, 102, 103, 104, 0, + 0, 0, 0, 0, 0, 0, 105, 106, 0, 107, + 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, + 118, 0, 119, 120, 121, 122, 123, 124, 0, 899, + 125, 126, 127, 128, 129, 0, 130, 131, 132, 133, + 902, 0, 903, 0, 136, 137, 138, 139, 140, 141, + 142, 143, 144, 145, 0, 146, 147, 148, 149, 150, + 151, 0, 152, 153, 154, 155, 904, 905, 906, 907, + 908, 909, 910, 161, 162, 163, 164, 165, 166, 167, + 168, 169, 170, 0, 171, 0, 172, 173, 174, 175, + 176, 177, 0, 178, 179, 180, 181, 182, 0, 0, + 183, 184, 185, 186, 187, 0, 188, 189, 190, 0, + 191, 192, 193, 0, 194, 195, 196, 197, 198, 199, + 200, 201, 202, 203, 915, 0, 205, 0, 206, 207, + 208, 209, 0, 210, 0, 211, 212, 0, 213, 214, + 215, 216, 217, 218, 0, 219, 0, 220, 221, 222, + 0, 223, 224, 225, 226, 227, 228, 229, 230, 231, + 232, 233, 234, 0, 235, 236, 237, 238, 239, 240, + 0, 241, 242, 243, 244, 245, 246, 247, 248, 249, + 250, 0, 251, 0, 252, 253, 254, 255, 256, 257, + 258, 259, 260, 261, 262, 2144, 0, 263, 264, 265, + 266, 0, 267, 268, 269, 923, 924, 270, 271, 272, + 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, + 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, + 293, 294, 295, 296, 297, 298, 299, 300, 0, 301, + 302, 303, 304, 0, 929, 306, 307, 308, 309, 310, + 0, 311, 312, 0, 615, 313, 314, 315, 0, 0, + 316, 317, 318, 319, 320, 932, 322, 323, 324, 325, + 326, 327, 328, 329, 330, 331, 0, 332, 333, 933, + 335, 336, 337, 338, 339, 340, 0, 341, 342, 343, + 344, 345, 346, 0, 347, 348, 349, 350, 351, 352, + 353, 354, 0, 355, 356, 357, 358, 359, 360, 361, + 362, 363, 364, 365, 366, 367, 0, 368, 369, 370, + 371, 372, 373, 374, 2145, 376, 377, 378, 379, 380, + 381, 382, 383, 384, 385, 26, 386, 387, 388, 389, + 390, 936, 392, 393, 394, 395, 396, 397, 398, 399, + 400, 401, 0, 402, 403, 404, 405, 406, 407, 408, + 409, 410, 411, 412, 413, 414, 415, 938, 417, 0, + 418, 419, 31, 420, 421, 422, 423, 424, 425, 426, + 0, 427, 428, 0, 0, 429, 430, 941, 432, 942, + 0, 434, 435, 944, 437, 438, 439, 440, 441, 0, + 0, 442, 443, 444, 445, 446, 945, 0, 448, 449, + 450, 451, 452, 611, 454, 0, 455, 456, 457, 458, + 459, 460, 461, 0, 0, 462, 0, 34, 463, 464, + 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 0, - 0, 0, 0, 0, 0, 0, 943, 944, 506, 0, - 0, 0, 0, 946, 0, 947, 0, 0, 0, 0, - 948, 0, 949, 950, 0, 0, 94, 95, 96, 97, - 98, 99, 100, 101, 0, 102, 103, 104, 0, 0, - 0, 0, 0, 2399, 0, 105, 106, 0, 107, 108, - 109, 0, 111, 112, 113, 114, 115, 0, 117, 118, - 0, 119, 120, 121, 122, 123, 124, 0, 0, 125, - 126, 127, 128, 129, 0, 130, 131, 132, 133, 134, - 0, 0, 0, 136, 137, 138, 139, 140, 141, 0, - 143, 144, 145, 0, 146, 147, 148, 149, 150, 151, - 0, -754, 153, 154, 155, 0, 0, 0, 0, 0, - 0, 0, 161, 162, 163, 164, 165, 166, 167, 168, - 169, 170, 0, 171, 0, 172, 173, 174, 175, 176, - 177, 0, 178, 179, 180, 181, 182, 0, 0, 183, - 184, 185, 186, 187, 0, 188, 189, 190, 0, 191, - 192, 193, 0, 194, 195, 196, 197, 198, 199, 200, - 201, 202, 203, 204, 0, 205, 0, 206, 207, 208, - 209, 0, 210, 0, 211, 0, 0, -754, 214, 215, - 509, 0, 218, 0, 219, 0, 220, 221, 222, 0, - 223, 224, 225, 226, 227, 228, 229, 0, 231, 232, - 233, 234, 0, 235, 236, 237, 238, 239, 240, 0, - 241, -754, 243, 244, 245, 246, 247, 248, 249, 250, - 0, 251, 0, 252, 0, 0, 255, -754, 257, 258, - 259, 260, 261, 262, 0, 0, 263, -754, 265, 0, - 0, 267, 268, 269, 0, 0, 270, 271, 272, 273, - 274, 510, 276, 277, 278, 279, 280, 281, 282, 283, - 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, - 294, -754, 296, 297, 298, 299, 300, 0, 301, 302, - 0, 304, 0, 305, 306, 307, 308, 309, 310, 0, - 311, 312, 0, 0, 313, 314, 315, 0, 0, 316, - 317, 0, 319, 0, 321, 322, 323, 324, 325, 326, - 327, 328, 329, 330, 331, 0, 332, 333, 334, 335, - 336, 337, 338, 339, 340, 0, 341, 342, 343, 344, - 345, 346, 0, 347, 348, 349, 350, 351, 352, 353, - 354, 0, 355, 356, 357, 358, 359, 360, 361, 362, - 363, 364, 365, 366, 367, 0, 368, 369, -754, 371, - 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, - 382, 383, 384, 385, 0, 386, 387, 388, 389, 390, - 0, 392, 393, 394, 395, 396, 0, 398, 399, 400, - 401, 0, 402, 403, 404, 405, 406, 407, 408, 409, - 410, 411, 412, 413, 512, 415, 416, 417, 0, 418, - 419, 0, 420, -754, 422, 423, 424, 425, 426, 0, - 427, 428, 0, 0, 429, 430, 431, 432, 433, 0, - 434, 435, 436, 437, 438, 439, 440, 441, 0, 0, - 442, 443, 444, 445, 446, 0, 0, 448, 449, 450, - 451, 452, 453, 454, 0, 455, 0, 457, 458, 459, - 460, 461, 0, 0, 462, 0, 0, 463, 464, 465, - 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, - 476, 477, 478, 479, 480, 481, 482, 483, 93, 0, - 507, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1012, 94, 95, 96, 97, - 98, 99, 100, 101, 0, 102, 103, 104, 0, 0, - 0, 0, 0, 0, 0, 105, 106, 0, 107, 108, - 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, - 0, 119, 120, 121, 122, 123, 124, 0, 894, 125, - 126, 127, 128, 129, 0, 130, 131, 132, 133, 897, - 0, 898, 0, 136, 137, 138, 139, 140, 141, 142, - 143, 144, 145, 0, 146, 147, 148, 149, 150, 151, - 0, 152, 153, 154, 155, 899, 900, 901, 902, 903, - 904, 905, 161, 162, 163, 164, 165, 166, 167, 168, - 169, 170, 0, 171, 0, 172, 173, 174, 175, 176, - 177, 0, 178, 179, 180, 181, 182, 0, 0, 183, - 184, 185, 186, 187, 0, 188, 189, 190, 0, 191, - 192, 193, 0, 194, 195, 196, 197, 198, 199, 200, - 201, 202, 203, 910, 0, 205, 0, 206, 207, 208, - 209, 0, 210, 0, 211, 212, 0, 213, 214, 215, - 216, 217, 218, 0, 219, 0, 220, 221, 222, 0, - 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, - 233, 234, 0, 235, 236, 237, 238, 239, 240, 0, - 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, - 0, 251, 0, 252, 253, 254, 255, 256, 257, 258, - 259, 260, 261, 262, 2139, 0, 263, 264, 265, 266, - 0, 267, 268, 269, 918, 919, 270, 271, 272, 273, - 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, - 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, - 294, 295, 296, 297, 298, 299, 300, 0, 301, 302, - 303, 304, 0, 924, 306, 307, 308, 309, 310, 0, - 311, 312, 0, 614, 313, 314, 315, 0, 0, 316, - 317, 318, 319, 320, 927, 322, 323, 324, 325, 326, - 327, 328, 329, 330, 331, 0, 332, 333, 928, 335, - 336, 337, 338, 339, 340, 0, 341, 342, 343, 344, - 345, 346, 0, 347, 348, 349, 350, 351, 352, 353, - 354, 0, 355, 356, 357, 358, 359, 360, 361, 362, - 363, 364, 365, 366, 367, 0, 368, 369, 370, 371, - 372, 373, 374, 2140, 376, 377, 378, 379, 380, 381, - 382, 383, 384, 385, 26, 386, 387, 388, 389, 390, - 931, 392, 393, 394, 395, 396, 397, 398, 399, 400, - 401, 0, 402, 403, 404, 405, 406, 407, 408, 409, - 410, 411, 412, 413, 414, 415, 933, 417, 0, 418, - 419, 31, 420, 421, 422, 423, 424, 425, 426, 0, - 427, 428, 0, 0, 429, 430, 936, 432, 937, 0, - 434, 435, 939, 437, 438, 439, 440, 441, 0, 0, - 442, 443, 444, 445, 446, 940, 0, 448, 449, 450, - 451, 452, 610, 454, 0, 455, 456, 457, 458, 459, - 460, 461, 0, 0, 462, 0, 34, 463, 464, 465, - 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, - 476, 477, 478, 479, 480, 481, 482, 483, 0, 0, - 35, 780, 1302, 582, 0, 0, 0, 887, 0, 0, - 0, 0, 0, 0, 2141, 0, 0, 0, 0, 94, - 95, 96, 97, 98, 99, 100, 101, 0, 102, 103, - 104, 0, 0, 0, 0, 0, 0, 0, 105, 106, - 0, 107, 108, 109, 781, 111, 112, 113, 782, 783, - 784, 785, 786, 0, 119, 120, 121, 122, 123, 124, - 0, 0, 125, 126, 787, 788, 129, 0, 130, 131, - 132, 133, 789, 0, 790, 0, 136, 137, 138, 139, - 140, 141, 791, 143, 144, 145, 0, 146, 147, 148, - 149, 150, 151, 0, 792, 153, 154, 155, 793, 794, - 795, 796, 0, 0, 797, 161, 162, 163, 164, 165, - 166, 167, 798, 799, 170, 0, 171, 0, 172, 173, - 174, 175, 176, 177, 0, 178, 179, 180, 181, 182, - 0, 0, 183, 184, 185, 186, 187, 0, 188, 189, - 190, 0, 191, 192, 193, 0, 194, 195, 196, 197, - 800, 199, 200, 201, 202, 203, 801, 1303, 205, 0, - 206, 207, 802, 209, 0, 210, 0, 211, 803, 0, - 804, 214, 215, 805, 806, 218, 0, 219, 0, 807, - 808, 222, 0, 223, 224, 225, 226, 227, 228, 229, - 809, 231, 232, 233, 234, 0, 235, 236, 237, 238, - 239, 240, 0, 241, 810, 811, 244, 245, 246, 247, - 248, 812, 813, 0, 814, 0, 252, 815, 816, 255, - 817, 257, 258, 259, 260, 261, 262, 0, 0, 263, - 818, 265, 819, 0, 267, 268, 269, 0, 0, 270, - 271, 272, 273, 274, 820, 276, 277, 278, 279, 280, - 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, - 291, 292, 293, 821, 822, 823, 297, 298, 299, 824, - 0, 301, 302, 825, 304, 0, 826, 306, 827, 308, - 309, 310, 0, 311, 312, 1304, 0, 313, 314, 315, - 0, 0, 316, 828, 829, 319, 830, 831, 322, 323, - 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, - 333, 832, 335, 336, 833, 338, 339, 340, 0, 341, - 342, 343, 344, 345, 346, 0, 347, 348, 349, 834, - 351, 352, 353, 354, 0, 355, 356, 357, 358, 359, - 360, 361, 362, 363, 364, 365, 366, 367, 0, 368, - 369, 835, 371, 372, 373, 836, 375, 376, 377, 378, - 379, 380, 381, 382, 383, 384, 385, 0, 386, 387, - 388, 389, 390, 837, 392, 838, 394, 395, 396, 839, - 398, 399, 840, 401, 0, 402, 403, 404, 405, 406, - 407, 408, 409, 410, 411, 412, 413, 841, 415, 842, - 417, 0, 418, 419, 0, 420, 843, 422, 423, 424, - 425, 426, 0, 844, 845, 0, 0, 429, 430, 846, - 432, 847, 1305, 434, 435, 848, 437, 438, 439, 440, - 441, 0, 0, 442, 443, 444, 445, 446, 849, 0, - 448, 449, 450, 451, 452, 1197, 851, 0, 455, 852, - 457, 458, 459, 460, 461, 0, 0, 462, 0, 0, - 463, 464, 465, 466, 467, 468, 853, 854, 855, 856, - 857, 858, 859, 860, 861, 862, 863, 480, 481, 482, - 483, 93, 0, 507, 0, 0, 0, 0, 1306, 1307, - 2017, 0, 0, 0, 0, 0, 0, 2018, 0, 94, - 95, 96, 97, 98, 99, 100, 101, 0, 102, 103, - 104, 0, 0, 0, 0, 0, 0, 0, 105, 106, - 0, 107, 108, 109, 110, 111, 112, 113, 114, 115, - 116, 117, 118, 0, 119, 120, 121, 122, 123, 124, - 0, 894, 125, 126, 127, 128, 129, 0, 130, 131, - 132, 133, 897, 0, 898, 0, 136, 137, 138, 139, - 140, 141, 142, 143, 144, 145, 0, 146, 147, 148, - 149, 150, 151, 0, 152, 153, 154, 155, 899, 900, - 901, 902, 903, 904, 905, 161, 162, 163, 164, 165, - 166, 167, 168, 169, 170, 0, 171, 0, 172, 173, - 174, 175, 176, 177, 0, 178, 179, 180, 181, 182, - 0, 0, 183, 184, 185, 186, 187, 0, 188, 189, - 190, 0, 191, 192, 193, 0, 194, 195, 196, 197, - 198, 199, 200, 201, 202, 203, 910, 0, 205, 0, - 206, 207, 208, 209, 0, 210, 0, 211, 212, 0, - 213, 214, 215, 216, 217, 218, 0, 219, 0, 220, - 221, 222, 0, 223, 224, 225, 226, 227, 228, 229, - 230, 231, 232, 233, 234, 0, 235, 236, 237, 238, - 239, 240, 0, 241, 242, 243, 244, 245, 246, 247, - 248, 249, 250, 0, 251, 0, 252, 253, 254, 255, - 256, 257, 258, 259, 260, 261, 262, 2139, 0, 263, - 264, 265, 266, 0, 267, 268, 269, 918, 919, 270, - 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, - 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, - 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, - 0, 301, 302, 303, 304, 0, 924, 306, 307, 308, - 309, 310, 0, 311, 312, 0, 614, 313, 314, 315, - 0, 0, 316, 317, 318, 319, 320, 927, 322, 323, - 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, - 333, 928, 335, 336, 337, 338, 339, 340, 0, 341, - 342, 343, 344, 345, 346, 0, 347, 348, 349, 350, - 351, 352, 353, 354, 0, 355, 356, 357, 358, 359, - 360, 361, 362, 363, 364, 365, 366, 367, 0, 368, - 369, 370, 371, 372, 373, 374, 2140, 376, 377, 378, - 379, 380, 381, 382, 383, 384, 385, 0, 386, 387, - 388, 389, 390, 931, 392, 393, 394, 395, 396, 397, - 398, 399, 400, 401, 0, 402, 403, 404, 405, 406, - 407, 408, 409, 410, 411, 412, 413, 414, 415, 933, - 417, 0, 418, 419, 0, 420, 421, 422, 423, 424, - 425, 426, 0, 427, 428, 0, 0, 429, 430, 936, - 432, 937, 0, 434, 435, 939, 437, 438, 439, 440, - 441, 0, 0, 442, 443, 444, 445, 446, 940, 0, - 448, 449, 450, 451, 452, 610, 454, 0, 455, 456, - 457, 458, 459, 460, 461, 0, 0, 462, 0, 0, - 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, - 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, - 483, 780, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 2141, 0, 94, - 95, 96, 97, 98, 99, 100, 101, 0, 102, 103, - 104, 3, 4, 0, 0, 0, 0, 0, 105, 106, - 0, 107, 108, 109, 781, 111, 112, 113, 782, 783, - 784, 785, 786, 0, 119, 120, 121, 122, 123, 124, - 0, 0, 125, 126, 787, 788, 129, 0, 130, 131, - 132, 133, 789, 0, 790, 0, 136, 137, 138, 139, - 140, 141, 791, 143, 144, 145, 0, 146, 147, 148, - 149, 150, 151, 0, 792, 153, 154, 155, 793, 794, - 795, 796, 0, 0, 797, 161, 162, 163, 164, 165, - 166, 167, 798, 799, 170, 0, 171, 0, 172, 173, - 174, 175, 176, 177, 0, 178, 179, 180, 181, 182, - 0, 0, 183, 184, 185, 186, 187, 0, 188, 189, - 190, 0, 191, 192, 193, 0, 194, 195, 196, 197, - 800, 199, 200, 201, 202, 203, 801, 0, 205, 0, - 206, 207, 802, 209, 0, 210, 0, 211, 803, 0, - 804, 214, 215, 805, 806, 218, 0, 219, 0, 807, - 808, 222, 0, 223, 224, 225, 226, 227, 228, 229, - 809, 231, 232, 233, 234, 0, 235, 236, 237, 238, - 239, 240, 0, 241, 810, 811, 244, 245, 246, 247, - 248, 812, 813, 0, 814, 0, 252, 815, 816, 255, - 817, 257, 258, 259, 260, 261, 262, 0, 0, 263, - 818, 265, 819, 0, 267, 268, 269, 0, 0, 270, - 271, 272, 273, 274, 820, 276, 277, 278, 279, 280, - 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, - 291, 292, 293, 821, 822, 823, 297, 298, 299, 824, - 0, 301, 302, 825, 304, 0, 826, 306, 827, 308, - 309, 310, 0, 311, 312, 0, 0, 313, 314, 315, - 0, 0, 316, 828, 829, 319, 830, 831, 322, 323, - 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, - 333, 832, 335, 336, 833, 338, 339, 340, 0, 341, - 342, 343, 344, 345, 346, 0, 347, 348, 349, 834, - 351, 352, 353, 354, 0, 355, 356, 357, 358, 359, - 360, 361, 362, 363, 364, 365, 366, 367, 0, 368, - 369, 835, 371, 372, 373, 836, 375, 376, 377, 378, - 379, 380, 381, 382, 383, 384, 385, 26, 386, 387, - 388, 389, 390, 837, 392, 838, 394, 395, 396, 839, - 398, 399, 840, 401, 0, 402, 403, 404, 405, 406, - 407, 408, 409, 410, 411, 412, 413, 841, 415, 842, - 417, 0, 418, 419, 31, 420, 843, 422, 423, 424, - 425, 426, 0, 844, 845, 0, 0, 429, 430, 846, - 432, 847, 0, 434, 435, 848, 437, 438, 439, 440, - 441, 0, 0, 442, 443, 444, 445, 446, 849, 0, - 448, 449, 450, 451, 452, 850, 851, 0, 455, 852, - 457, 458, 459, 460, 461, 0, 0, 462, 0, 34, - 463, 464, 465, 466, 467, 468, 853, 854, 855, 856, - 857, 858, 859, 860, 861, 862, 863, 480, 481, 482, - 483, 93, 0, 35, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 36, 0, 94, - 95, 96, 97, 98, 99, 100, 101, 0, 102, 103, - 104, 0, 0, 0, 0, 0, 0, 0, 105, 106, - 0, 107, 108, 109, 110, 111, 112, 113, 114, 115, - 116, 117, 118, 0, 119, 120, 121, 122, 123, 124, - 0, 894, 125, 126, 127, 128, 129, 0, 130, 131, - 132, 133, 897, 0, 898, 0, 136, 137, 138, 139, - 140, 141, 142, 143, 144, 145, 0, 146, 147, 148, - 149, 150, 151, 0, 152, 153, 154, 155, 899, 900, - 901, 902, 903, 904, 905, 161, 162, 163, 164, 165, - 166, 167, 168, 169, 170, 0, 171, 0, 172, 173, - 174, 175, 176, 177, 0, 178, 179, 180, 181, 182, - 0, 0, 183, 184, 185, 186, 187, 0, 188, 189, - 190, 0, 191, 192, 193, 0, 194, 195, 196, 197, - 198, 199, 200, 201, 202, 203, 910, 0, 205, 0, - 206, 207, 208, 209, 0, 210, 0, 211, 212, 0, - 213, 214, 215, 216, 217, 218, 0, 219, 0, 220, - 221, 222, 0, 223, 224, 225, 226, 227, 228, 229, - 230, 231, 232, 233, 234, 0, 235, 236, 237, 238, - 239, 240, 0, 241, 242, 243, 244, 245, 246, 247, - 248, 249, 250, 0, 251, 0, 252, 253, 254, 255, - 256, 257, 258, 259, 260, 261, 262, 0, 0, 263, - 264, 265, 266, 0, 267, 268, 269, 918, 919, 270, - 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, - 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, - 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, - 0, 301, 302, 303, 304, 0, 924, 306, 307, 308, - 309, 310, 0, 311, 312, 0, 0, 313, 314, 315, - 0, 0, 316, 317, 318, 319, 320, 927, 322, 323, - 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, - 333, 928, 335, 336, 337, 338, 339, 340, 0, 341, - 342, 343, 344, 345, 346, 0, 347, 348, 349, 350, - 351, 352, 353, 354, 0, 355, 356, 357, 358, 359, - 360, 361, 362, 363, 364, 365, 366, 367, 0, 368, - 369, 370, 371, 372, 373, 374, 2140, 376, 377, 378, - 379, 380, 381, 382, 383, 384, 385, 0, 386, 387, - 388, 389, 390, 931, 392, 393, 394, 395, 396, 397, - 398, 399, 400, 401, 0, 402, 403, 404, 405, 406, - 407, 408, 409, 410, 411, 412, 413, 414, 415, 933, - 417, 0, 418, 419, 0, 420, 421, 422, 423, 424, - 425, 426, 0, 427, 428, 0, 0, 429, 430, 936, - 432, 937, 0, 434, 435, 939, 437, 438, 439, 440, - 441, 0, 0, 442, 443, 444, 445, 446, 940, 0, - 448, 449, 450, 451, 452, 453, 454, 0, 455, 456, - 457, 458, 459, 460, 461, 0, 0, 462, 0, 0, - 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, - 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, - 483, 93, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 36, 0, 94, - 95, 96, 97, 98, 99, 100, 101, 0, 102, 103, - 104, 0, 0, 0, 0, 0, 0, 0, 105, 106, - 0, 107, 108, 109, 110, 111, 112, 113, 114, 115, - 116, 117, 118, 0, 119, 120, 121, 122, 123, 124, - 0, 894, 125, 126, 127, 128, 129, 0, 130, 131, - 132, 133, 897, 0, 898, 0, 136, 137, 138, 139, - 140, 141, 142, 143, 144, 145, 0, 146, 147, 148, - 149, 150, 151, 0, 152, 153, 154, 155, 899, 900, - 901, 902, 903, 904, 905, 161, 162, 163, 164, 165, - 166, 167, 168, 169, 170, 0, 171, 0, 172, 173, - 174, 175, 176, 177, 0, 178, 179, 180, 181, 182, - 0, 0, 183, 184, 185, 186, 187, 0, 188, 189, - 190, 0, 191, 192, 193, 0, 194, 195, 196, 197, - 198, 199, 200, 201, 202, 203, 910, 0, 205, 0, - 206, 207, 208, 209, 0, 210, 0, 211, 212, 0, - 213, 214, 215, 216, 217, 218, 0, 219, 0, 220, - 221, 222, 0, 223, 224, 225, 226, 227, 228, 229, - 230, 231, 232, 233, 234, 0, 235, 236, 237, 238, - 239, 240, 0, 241, 242, 243, 244, 245, 246, 247, - 248, 249, 250, 0, 251, 0, 252, 253, 254, 255, - 256, 257, 258, 259, 260, 261, 262, 0, 0, 263, - 264, 265, 266, 0, 267, 268, 269, 918, 919, 270, - 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, - 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, - 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, - 0, 301, 302, 303, 304, 0, 924, 306, 307, 308, - 309, 310, 0, 311, 312, 0, 0, 313, 314, 315, - 0, 0, 316, 317, 318, 319, 320, 927, 322, 323, - 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, - 333, 928, 335, 336, 337, 338, 339, 340, 0, 341, - 342, 343, 344, 345, 346, 0, 347, 348, 349, 350, - 351, 352, 353, 354, 0, 355, 356, 357, 358, 359, - 360, 361, 362, 363, 364, 365, 366, 367, 0, 368, - 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, - 379, 380, 381, 382, 383, 384, 385, 0, 386, 387, - 388, 389, 390, 931, 392, 393, 394, 395, 396, 397, - 398, 399, 400, 401, 0, 402, 403, 404, 405, 406, - 407, 408, 409, 410, 411, 412, 413, 414, 415, 933, - 417, 0, 418, 419, 0, 420, 421, 422, 423, 424, - 425, 426, 0, 427, 428, 0, 0, 429, 430, 936, - 432, 937, 0, 434, 435, 939, 437, 438, 439, 440, - 441, 0, 0, 442, 443, 444, 445, 446, 940, 0, - 448, 449, 450, 451, 452, 453, 454, 0, 455, 456, - 457, 458, 459, 460, 461, 0, 0, 462, 0, 0, - 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, - 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, - 483, 506, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 2817, 0, 94, - 95, 96, 97, 98, 99, 100, 101, 634, 102, 103, - 104, 0, 0, 0, 0, 0, 0, 0, 105, 106, - 0, 107, 108, 109, 0, 111, 112, 113, 114, 115, - 0, 117, 118, 0, 119, 120, 121, 122, 123, 124, - 0, 0, 125, 126, 127, 128, 129, 0, 130, 131, - 132, 133, 134, 0, 0, 0, 136, 137, 138, 139, - 140, 141, 0, 143, 144, 145, 0, 146, 147, 148, - 149, 150, 151, 0, 0, 153, 154, 155, 0, 0, - 0, 0, 0, 0, 0, 161, 162, 163, 164, 165, - 166, 167, 168, 169, 170, 0, 171, 0, 172, 173, - 174, 175, 176, 177, 0, 178, 179, 180, 181, 182, - 0, 0, 183, 184, 185, 186, 187, 0, 188, 189, - 190, 0, 191, 192, 193, 0, 194, 195, 196, 197, - 198, 199, 200, 201, 202, 203, 204, 0, 205, 0, - 206, 207, 208, 209, 0, 210, 0, 211, 0, 0, - 0, 214, 215, 509, 0, 218, 0, 219, 0, 220, - 221, 222, 0, 223, 224, 225, 226, 227, 228, 229, - 0, 231, 232, 233, 234, 0, 235, 236, 237, 238, - 239, 240, 0, 241, 0, 243, 244, 245, 246, 247, - 248, 249, 250, 0, 251, 0, 252, 0, 0, 255, - 0, 257, 258, 259, 260, 261, 262, 0, 0, 263, - 0, 265, 0, 0, 267, 268, 269, 0, 0, 270, - 271, 272, 273, 274, 510, 276, 277, 278, 279, 280, - 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, - 291, 292, 293, 294, 0, 296, 297, 298, 299, 300, - 0, 301, 302, 0, 304, 0, 305, 306, 307, 308, - 309, 310, 0, 311, 312, 0, 0, 313, 314, 315, - 0, 0, 316, 317, 0, 319, 0, 321, 322, 323, - 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, - 333, 334, 335, 336, 337, 338, 339, 340, 0, 341, - 342, 343, 344, 345, 346, 0, 347, 348, 349, 350, - 351, 352, 353, 354, 0, 355, 356, 357, 358, 359, - 360, 361, 362, 363, 364, 365, 366, 367, 0, 368, - 369, 0, 371, 372, 373, 374, 375, 376, 377, 378, - 379, 380, 381, 382, 383, 384, 385, 26, 386, 387, - 388, 389, 390, 0, 392, 393, 394, 395, 396, 0, - 398, 399, 400, 401, 0, 402, 403, 404, 405, 406, - 407, 408, 409, 410, 411, 412, 413, 512, 415, 416, - 417, 0, 418, 419, 31, 420, 0, 422, 423, 424, - 425, 426, 0, 635, 428, 0, 0, 636, 430, 431, - 432, 433, 0, 434, 435, 436, 437, 438, 439, 440, - 441, 0, 0, 442, 443, 444, 445, 446, 0, 0, - 448, 449, 450, 451, 452, 610, 454, 0, 455, 0, - 457, 458, 459, 460, 461, 0, 0, 462, 0, 34, - 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, - 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, - 483, 506, 0, 35, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 36, 0, 94, - 95, 96, 97, 98, 99, 100, 101, 0, 102, 103, - 104, 0, 0, 0, 0, 0, 0, 0, 105, 106, - 0, 107, 108, 109, 0, 111, 112, 113, 114, 115, - 0, 117, 118, 0, 119, 120, 121, 122, 123, 124, - 0, 0, 125, 126, 127, 128, 129, 0, 130, 131, - 132, 133, 134, 0, 0, 0, 136, 137, 138, 139, - 140, 141, 0, 143, 144, 145, 0, 146, 147, 148, - 149, 150, 151, 0, 0, 153, 154, 155, 0, 0, - 0, 0, 0, 0, 0, 161, 162, 163, 164, 165, - 166, 167, 168, 169, 170, 0, 171, 0, 172, 173, - 174, 175, 176, 177, 0, 178, 179, 180, 181, 182, - 0, 0, 183, 184, 185, 186, 187, 0, 188, 189, - 190, 0, 191, 192, 193, 0, 194, 195, 196, 197, - 198, 199, 200, 201, 202, 203, 204, 0, 205, 0, - 206, 207, 208, 209, 0, 210, 0, 211, 0, 0, - 0, 214, 215, 509, 0, 218, 0, 219, 0, 220, - 221, 222, 0, 223, 224, 225, 226, 227, 228, 229, - 0, 231, 232, 233, 234, 0, 235, 236, 237, 238, - 239, 240, 0, 241, 0, 243, 244, 245, 246, 247, - 248, 249, 250, 0, 251, 0, 252, 0, 0, 255, - 0, 257, 258, 259, 260, 261, 262, 0, 0, 263, - 0, 265, 0, 0, 267, 268, 269, 0, 0, 270, - 271, 272, 273, 274, 510, 276, 277, 278, 279, 280, - 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, - 291, 292, 293, 294, 0, 296, 297, 298, 299, 300, - 0, 301, 302, 0, 304, 0, 305, 306, 307, 308, - 309, 310, 0, 311, 312, 0, 0, 313, 314, 315, - 0, 0, 316, 317, 0, 319, 0, 321, 322, 323, - 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, - 333, 334, 335, 336, 337, 338, 339, 340, 0, 341, - 342, 343, 344, 345, 346, 0, 347, 348, 349, 350, - 351, 352, 353, 354, 0, 355, 356, 357, 358, 359, - 360, 361, 362, 363, 364, 365, 366, 367, 0, 368, - 369, 0, 371, 372, 373, 374, 375, 376, 377, 378, - 379, 380, 381, 382, 383, 384, 385, 26, 386, 387, - 388, 389, 390, 0, 392, 393, 394, 395, 396, 0, - 398, 399, 400, 401, 0, 402, 403, 404, 405, 406, - 407, 408, 409, 410, 411, 412, 413, 512, 415, 416, - 417, 0, 418, 419, 31, 420, 0, 422, 423, 424, - 425, 426, 0, 427, 428, 0, 0, 429, 430, 431, - 432, 433, 0, 434, 435, 436, 437, 438, 439, 440, - 441, 0, 0, 442, 443, 444, 445, 446, 0, 0, - 448, 449, 450, 451, 452, 610, 454, 0, 455, 0, - 457, 458, 459, 460, 461, 0, 0, 462, 0, 34, - 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, - 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, - 483, 0, 506, 35, 507, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 36, 0, 0, + 0, 35, 785, 1307, 583, 0, 0, 0, 892, 0, + 0, 0, 0, 0, 0, 2146, 0, 0, 0, 0, 94, 95, 96, 97, 98, 99, 100, 101, 0, 102, 103, 104, 0, 0, 0, 0, 0, 0, 0, 105, - 106, 0, 107, 108, 109, 0, 111, 112, 113, 114, - 115, 0, 117, 118, 0, 119, 120, 121, 122, 123, - 124, 0, 0, 125, 126, 127, 128, 129, 0, 130, - 131, 132, 133, 134, 0, 0, 0, 136, 137, 138, - 139, 140, 141, 0, 143, 144, 145, 0, 146, 147, - 148, 149, 150, 151, 0, 0, 153, 154, 155, 0, - 0, 0, 0, 0, 0, 0, 161, 162, 163, 164, - 165, 166, 167, 168, 169, 170, 0, 171, 0, 172, + 106, 0, 107, 108, 109, 786, 111, 112, 113, 787, + 788, 789, 790, 791, 0, 119, 120, 121, 122, 123, + 124, 0, 0, 125, 126, 792, 793, 129, 0, 130, + 131, 132, 133, 794, 0, 795, 0, 136, 137, 138, + 139, 140, 141, 796, 143, 144, 145, 0, 146, 147, + 148, 149, 150, 151, 0, 797, 153, 154, 155, 798, + 799, 800, 801, 0, 0, 802, 161, 162, 163, 164, + 165, 166, 167, 803, 804, 170, 0, 171, 0, 172, 173, 174, 175, 176, 177, 0, 178, 179, 180, 181, 182, 0, 0, 183, 184, 185, 186, 187, 0, 188, 189, 190, 0, 191, 192, 193, 0, 194, 195, 196, - 197, 198, 199, 200, 201, 202, 203, 204, 0, 205, - 0, 206, 207, 208, 209, 0, 210, 0, 211, 0, - 0, 0, 214, 215, 509, 0, 218, 0, 219, 0, - 220, 221, 222, 0, 223, 224, 225, 226, 227, 228, - 229, 0, 231, 232, 233, 234, 0, 235, 236, 237, - 238, 239, 240, 0, 241, 0, 243, 244, 245, 246, - 247, 248, 249, 250, 0, 251, 0, 252, 0, 0, - 255, 0, 257, 258, 259, 260, 261, 262, 0, 0, - 263, 0, 265, 0, 0, 267, 268, 269, 0, 0, - 270, 271, 272, 273, 274, 510, 276, 277, 278, 279, + 197, 805, 199, 200, 201, 202, 203, 806, 1308, 205, + 0, 206, 207, 807, 209, 0, 210, 0, 211, 808, + 0, 809, 214, 215, 810, 811, 218, 0, 219, 0, + 812, 813, 222, 0, 223, 224, 225, 226, 227, 228, + 229, 814, 231, 232, 233, 234, 0, 235, 236, 237, + 238, 239, 240, 0, 241, 815, 816, 244, 245, 246, + 247, 248, 817, 818, 0, 819, 0, 252, 820, 821, + 255, 822, 257, 258, 259, 260, 261, 262, 0, 0, + 263, 823, 265, 824, 0, 267, 268, 269, 0, 0, + 270, 271, 272, 273, 274, 825, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, - 290, 291, 292, 293, 294, 0, 296, 297, 298, 299, - 300, 0, 301, 302, 0, 304, 0, 305, 306, 307, - 308, 309, 310, 0, 311, 312, 0, 0, 313, 314, - 315, 0, 0, 316, 317, 0, 319, 0, 321, 322, + 290, 291, 292, 293, 826, 827, 828, 297, 298, 299, + 829, 0, 301, 302, 830, 304, 0, 831, 306, 832, + 308, 309, 310, 0, 311, 312, 1309, 0, 313, 314, + 315, 0, 0, 316, 833, 834, 319, 835, 836, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 0, - 332, 333, 334, 335, 336, 337, 338, 339, 340, 0, + 332, 333, 837, 335, 336, 838, 338, 339, 340, 0, 341, 342, 343, 344, 345, 346, 0, 347, 348, 349, - 350, 351, 352, 353, 354, 0, 355, 356, 357, 358, + 839, 351, 352, 353, 354, 0, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 0, - 368, 369, 0, 371, 372, 373, 374, 375, 376, 377, + 368, 369, 840, 371, 372, 373, 841, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 0, 386, - 387, 388, 389, 390, 0, 392, 393, 394, 395, 396, - 0, 398, 399, 400, 401, 0, 402, 403, 404, 405, - 406, 407, 408, 409, 410, 411, 412, 413, 512, 415, - 416, 417, 0, 418, 419, 0, 420, 0, 422, 423, - 424, 425, 426, 0, 427, 428, 0, 0, 429, 430, - 431, 432, 433, 0, 434, 435, 436, 437, 438, 439, - 440, 441, 0, 0, 442, 443, 444, 445, 446, 0, - 0, 448, 449, 450, 451, 452, 453, 454, 0, 455, - 0, 457, 458, 459, 460, 461, 0, 0, 462, 0, - 0, 463, 464, 465, 466, 467, 468, 469, 470, 471, - 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, - 482, 483, 506, 0, 507, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 991, 0, + 387, 388, 389, 390, 842, 392, 843, 394, 395, 396, + 844, 398, 399, 845, 401, 0, 402, 403, 404, 405, + 406, 407, 408, 409, 410, 411, 412, 413, 846, 415, + 847, 417, 0, 418, 419, 0, 420, 848, 422, 423, + 424, 425, 426, 0, 849, 850, 0, 0, 429, 430, + 851, 432, 852, 1310, 434, 435, 853, 437, 438, 439, + 440, 441, 0, 0, 442, 443, 444, 445, 446, 854, + 0, 448, 449, 450, 451, 452, 1202, 856, 0, 455, + 857, 457, 458, 459, 460, 461, 0, 0, 462, 0, + 0, 463, 464, 465, 466, 467, 468, 858, 859, 860, + 861, 862, 863, 864, 865, 866, 867, 868, 480, 481, + 482, 483, 93, 0, 508, 0, 0, 0, 0, 1311, + 1312, 2022, 0, 0, 0, 0, 0, 0, 2023, 0, 94, 95, 96, 97, 98, 99, 100, 101, 0, 102, 103, 104, 0, 0, 0, 0, 0, 0, 0, 105, - 106, 0, 107, 108, 109, 0, 111, 112, 113, 114, - 115, 0, 117, 118, 0, 119, 120, 121, 122, 123, - 124, 0, 0, 125, 126, 127, 128, 129, 0, 130, - 131, 132, 133, 134, 0, 0, 0, 136, 137, 138, - 139, 140, 141, 0, 143, 144, 145, 0, 146, 147, - 148, 149, 150, 151, 0, 0, 153, 154, 155, 0, - 0, 0, 0, 0, 0, 0, 161, 162, 163, 164, + 106, 0, 107, 108, 109, 110, 111, 112, 113, 114, + 115, 116, 117, 118, 0, 119, 120, 121, 122, 123, + 124, 0, 899, 125, 126, 127, 128, 129, 0, 130, + 131, 132, 133, 902, 0, 903, 0, 136, 137, 138, + 139, 140, 141, 142, 143, 144, 145, 0, 146, 147, + 148, 149, 150, 151, 0, 152, 153, 154, 155, 904, + 905, 906, 907, 908, 909, 910, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 0, 171, 0, 172, 173, 174, 175, 176, 177, 0, 178, 179, 180, 181, 182, 0, 0, 183, 184, 185, 186, 187, 0, 188, 189, 190, 0, 191, 192, 193, 0, 194, 195, 196, - 197, 198, 199, 200, 201, 202, 203, 204, 0, 205, - 0, 206, 207, 208, 209, 0, 210, 0, 211, 0, - 0, 0, 214, 215, 509, 0, 218, 0, 219, 0, + 197, 198, 199, 200, 201, 202, 203, 915, 0, 205, + 0, 206, 207, 208, 209, 0, 210, 0, 211, 212, + 0, 213, 214, 215, 216, 217, 218, 0, 219, 0, 220, 221, 222, 0, 223, 224, 225, 226, 227, 228, - 229, 0, 231, 232, 233, 234, 0, 235, 236, 237, - 238, 239, 240, 0, 241, 0, 243, 244, 245, 246, - 247, 248, 249, 250, 0, 251, 0, 252, 0, 0, - 255, 0, 257, 258, 259, 260, 261, 262, 0, 0, - 263, 0, 265, 0, 0, 267, 268, 269, 0, 0, - 270, 271, 272, 273, 274, 510, 276, 277, 278, 279, + 229, 230, 231, 232, 233, 234, 0, 235, 236, 237, + 238, 239, 240, 0, 241, 242, 243, 244, 245, 246, + 247, 248, 249, 250, 0, 251, 0, 252, 253, 254, + 255, 256, 257, 258, 259, 260, 261, 262, 2144, 0, + 263, 264, 265, 266, 0, 267, 268, 269, 923, 924, + 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, - 290, 291, 292, 293, 294, 0, 296, 297, 298, 299, - 300, 0, 301, 302, 0, 304, 0, 305, 306, 307, - 308, 309, 310, 0, 311, 312, 0, 0, 313, 314, - 315, 0, 0, 316, 317, 0, 319, 0, 321, 322, + 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, + 300, 0, 301, 302, 303, 304, 0, 929, 306, 307, + 308, 309, 310, 0, 311, 312, 0, 615, 313, 314, + 315, 0, 0, 316, 317, 318, 319, 320, 932, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 0, - 332, 333, 334, 335, 336, 337, 338, 339, 340, 0, + 332, 333, 933, 335, 336, 337, 338, 339, 340, 0, 341, 342, 343, 344, 345, 346, 0, 347, 348, 349, 350, 351, 352, 353, 354, 0, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 0, - 368, 369, 0, 371, 372, 373, 374, 375, 376, 377, + 368, 369, 370, 371, 372, 373, 374, 2145, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 0, 386, - 387, 388, 389, 390, 0, 392, 393, 394, 395, 396, - 0, 398, 399, 400, 401, 0, 402, 403, 404, 405, - 406, 407, 408, 409, 410, 411, 412, 413, 512, 415, - 416, 417, 0, 418, 419, 0, 420, 0, 422, 423, + 387, 388, 389, 390, 936, 392, 393, 394, 395, 396, + 397, 398, 399, 400, 401, 0, 402, 403, 404, 405, + 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, + 938, 417, 0, 418, 419, 0, 420, 421, 422, 423, 424, 425, 426, 0, 427, 428, 0, 0, 429, 430, - 431, 432, 433, 0, 434, 435, 436, 437, 438, 439, - 440, 441, 0, 0, 442, 443, 444, 445, 446, 0, - 0, 448, 449, 450, 451, 452, 453, 454, 0, 455, - 0, 457, 458, 459, 460, 461, 0, 0, 462, 0, + 941, 432, 942, 0, 434, 435, 944, 437, 438, 439, + 440, 441, 0, 0, 442, 443, 444, 445, 446, 945, + 0, 448, 449, 450, 451, 452, 611, 454, 0, 455, + 456, 457, 458, 459, 460, 461, 0, 0, 462, 0, 0, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, - 482, 483, 506, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 2656, 0, + 482, 483, 785, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 2146, 0, + 94, 95, 96, 97, 98, 99, 100, 101, 0, 102, + 103, 104, 3, 4, 0, 0, 0, 0, 0, 105, + 106, 0, 107, 108, 109, 786, 111, 112, 113, 787, + 788, 789, 790, 791, 0, 119, 120, 121, 122, 123, + 124, 0, 0, 125, 126, 792, 793, 129, 0, 130, + 131, 132, 133, 794, 0, 795, 0, 136, 137, 138, + 139, 140, 141, 796, 143, 144, 145, 0, 146, 147, + 148, 149, 150, 151, 0, 797, 153, 154, 155, 798, + 799, 800, 801, 0, 0, 802, 161, 162, 163, 164, + 165, 166, 167, 803, 804, 170, 0, 171, 0, 172, + 173, 174, 175, 176, 177, 0, 178, 179, 180, 181, + 182, 0, 0, 183, 184, 185, 186, 187, 0, 188, + 189, 190, 0, 191, 192, 193, 0, 194, 195, 196, + 197, 805, 199, 200, 201, 202, 203, 806, 0, 205, + 0, 206, 207, 807, 209, 0, 210, 0, 211, 808, + 0, 809, 214, 215, 810, 811, 218, 0, 219, 0, + 812, 813, 222, 0, 223, 224, 225, 226, 227, 228, + 229, 814, 231, 232, 233, 234, 0, 235, 236, 237, + 238, 239, 240, 0, 241, 815, 816, 244, 245, 246, + 247, 248, 817, 818, 0, 819, 0, 252, 820, 821, + 255, 822, 257, 258, 259, 260, 261, 262, 0, 0, + 263, 823, 265, 824, 0, 267, 268, 269, 0, 0, + 270, 271, 272, 273, 274, 825, 276, 277, 278, 279, + 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, + 290, 291, 292, 293, 826, 827, 828, 297, 298, 299, + 829, 0, 301, 302, 830, 304, 0, 831, 306, 832, + 308, 309, 310, 0, 311, 312, 0, 0, 313, 314, + 315, 0, 0, 316, 833, 834, 319, 835, 836, 322, + 323, 324, 325, 326, 327, 328, 329, 330, 331, 0, + 332, 333, 837, 335, 336, 838, 338, 339, 340, 0, + 341, 342, 343, 344, 345, 346, 0, 347, 348, 349, + 839, 351, 352, 353, 354, 0, 355, 356, 357, 358, + 359, 360, 361, 362, 363, 364, 365, 366, 367, 0, + 368, 369, 840, 371, 372, 373, 841, 375, 376, 377, + 378, 379, 380, 381, 382, 383, 384, 385, 26, 386, + 387, 388, 389, 390, 842, 392, 843, 394, 395, 396, + 844, 398, 399, 845, 401, 0, 402, 403, 404, 405, + 406, 407, 408, 409, 410, 411, 412, 413, 846, 415, + 847, 417, 0, 418, 419, 31, 420, 848, 422, 423, + 424, 425, 426, 0, 849, 850, 0, 0, 429, 430, + 851, 432, 852, 0, 434, 435, 853, 437, 438, 439, + 440, 441, 0, 0, 442, 443, 444, 445, 446, 854, + 0, 448, 449, 450, 451, 452, 855, 856, 0, 455, + 857, 457, 458, 459, 460, 461, 0, 0, 462, 0, + 34, 463, 464, 465, 466, 467, 468, 858, 859, 860, + 861, 862, 863, 864, 865, 866, 867, 868, 480, 481, + 482, 483, 93, 0, 35, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 36, 0, 94, 95, 96, 97, 98, 99, 100, 101, 0, 102, 103, 104, 0, 0, 0, 0, 0, 0, 0, 105, - 106, 0, 107, 108, 109, 0, 111, 112, 113, 114, - 115, 0, 117, 118, 0, 119, 120, 121, 122, 123, - 124, 0, 0, 125, 126, 127, 128, 129, 0, 130, - 131, 132, 133, 134, 0, 0, 0, 136, 137, 138, - 139, 140, 141, 0, 143, 144, 145, 0, 146, 147, - 148, 149, 150, 151, 0, 0, 153, 154, 155, 0, - 0, 0, 0, 0, 0, 0, 161, 162, 163, 164, + 106, 0, 107, 108, 109, 110, 111, 112, 113, 114, + 115, 116, 117, 118, 0, 119, 120, 121, 122, 123, + 124, 0, 899, 125, 126, 127, 128, 129, 0, 130, + 131, 132, 133, 902, 0, 903, 0, 136, 137, 138, + 139, 140, 141, 142, 143, 144, 145, 0, 146, 147, + 148, 149, 150, 151, 0, 152, 153, 154, 155, 904, + 905, 906, 907, 908, 909, 910, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 0, 171, 0, 172, 173, 174, 175, 176, 177, 0, 178, 179, 180, 181, 182, 0, 0, 183, 184, 185, 186, 187, 0, 188, 189, 190, 0, 191, 192, 193, 0, 194, 195, 196, - 197, 198, 199, 200, 201, 202, 203, 204, 0, 205, - 0, 206, 207, 208, 209, 0, 210, 0, 211, 0, - 0, 0, 214, 215, 509, 0, 218, 0, 219, 0, + 197, 198, 199, 200, 201, 202, 203, 915, 0, 205, + 0, 206, 207, 208, 209, 0, 210, 0, 211, 212, + 0, 213, 214, 215, 216, 217, 218, 0, 219, 0, 220, 221, 222, 0, 223, 224, 225, 226, 227, 228, - 229, 0, 231, 232, 233, 234, 0, 235, 236, 237, - 238, 239, 240, 0, 241, 0, 243, 244, 245, 246, - 247, 248, 249, 250, 0, 251, 0, 252, 0, 0, - 255, 0, 257, 258, 259, 260, 261, 262, 0, 0, - 263, 0, 265, 0, 0, 267, 268, 269, 0, 0, - 270, 271, 272, 273, 274, 510, 276, 277, 278, 279, + 229, 230, 231, 232, 233, 234, 0, 235, 236, 237, + 238, 239, 240, 0, 241, 242, 243, 244, 245, 246, + 247, 248, 249, 250, 0, 251, 0, 252, 253, 254, + 255, 256, 257, 258, 259, 260, 261, 262, 0, 0, + 263, 264, 265, 266, 0, 267, 268, 269, 923, 924, + 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, - 290, 291, 292, 293, 294, 0, 296, 297, 298, 299, - 300, 0, 301, 302, 0, 304, 0, 305, 306, 307, + 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, + 300, 0, 301, 302, 303, 304, 0, 929, 306, 307, 308, 309, 310, 0, 311, 312, 0, 0, 313, 314, - 315, 0, 0, 316, 317, 0, 319, 0, 321, 322, + 315, 0, 0, 316, 317, 318, 319, 320, 932, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 0, - 332, 333, 334, 335, 336, 337, 338, 339, 340, 0, + 332, 333, 933, 335, 336, 337, 338, 339, 340, 0, 341, 342, 343, 344, 345, 346, 0, 347, 348, 349, 350, 351, 352, 353, 354, 0, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 0, - 368, 369, 0, 371, 372, 373, 374, 375, 376, 377, + 368, 369, 370, 371, 372, 373, 374, 2145, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 0, 386, - 387, 388, 389, 390, 0, 392, 393, 394, 395, 396, - 0, 398, 399, 400, 401, 0, 402, 403, 404, 405, - 406, 407, 408, 409, 410, 411, 412, 413, 512, 415, - 416, 417, 0, 418, 419, 0, 420, 0, 422, 423, + 387, 388, 389, 390, 936, 392, 393, 394, 395, 396, + 397, 398, 399, 400, 401, 0, 402, 403, 404, 405, + 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, + 938, 417, 0, 418, 419, 0, 420, 421, 422, 423, 424, 425, 426, 0, 427, 428, 0, 0, 429, 430, - 431, 432, 433, 0, 434, 435, 436, 437, 438, 439, - 440, 441, 0, 0, 442, 443, 444, 445, 446, 0, + 941, 432, 942, 0, 434, 435, 944, 437, 438, 439, + 440, 441, 0, 0, 442, 443, 444, 445, 446, 945, 0, 448, 449, 450, 451, 452, 453, 454, 0, 455, - 0, 457, 458, 459, 460, 461, 0, 0, 462, 0, + 456, 457, 458, 459, 460, 461, 0, 0, 462, 0, 0, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, - 482, 483, 506, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1728, 0, + 482, 483, 93, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 36, 0, 94, 95, 96, 97, 98, 99, 100, 101, 0, 102, 103, 104, 0, 0, 0, 0, 0, 0, 0, 105, - 106, 0, 107, 108, 109, 0, 111, 112, 113, 114, - 115, 0, 117, 118, 0, 119, 120, 121, 122, 123, - 124, 0, 0, 125, 126, 127, 128, 129, 0, 130, - 131, 132, 133, 134, 0, 0, 0, 136, 137, 138, - 139, 140, 141, 0, 143, 144, 145, 0, 146, 147, - 148, 149, 150, 151, 0, 0, 153, 154, 155, 0, - 0, 0, 0, 0, 0, 0, 161, 162, 163, 164, + 106, 0, 107, 108, 109, 110, 111, 112, 113, 114, + 115, 116, 117, 118, 0, 119, 120, 121, 122, 123, + 124, 0, 899, 125, 126, 127, 128, 129, 0, 130, + 131, 132, 133, 902, 0, 903, 0, 136, 137, 138, + 139, 140, 141, 142, 143, 144, 145, 0, 146, 147, + 148, 149, 150, 151, 0, 152, 153, 154, 155, 904, + 905, 906, 907, 908, 909, 910, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 0, 171, 0, 172, 173, 174, 175, 176, 177, 0, 178, 179, 180, 181, 182, 0, 0, 183, 184, 185, 186, 187, 0, 188, 189, 190, 0, 191, 192, 193, 0, 194, 195, 196, - 197, 198, 199, 200, 201, 202, 203, 204, 0, 205, - 0, 206, 207, 208, 209, 0, 210, 0, 211, 0, - 0, 0, 214, 215, 509, 0, 218, 0, 219, 0, + 197, 198, 199, 200, 201, 202, 203, 915, 0, 205, + 0, 206, 207, 208, 209, 0, 210, 0, 211, 212, + 0, 213, 214, 215, 216, 217, 218, 0, 219, 0, 220, 221, 222, 0, 223, 224, 225, 226, 227, 228, - 229, 0, 231, 232, 233, 234, 0, 235, 236, 237, - 238, 239, 240, 0, 241, 0, 243, 244, 245, 246, - 247, 248, 249, 250, 0, 251, 0, 252, 0, 0, - 255, 0, 257, 258, 259, 260, 261, 262, 0, 0, - 263, 0, 265, 0, 0, 267, 268, 269, 0, 0, - 270, 271, 272, 273, 274, 510, 276, 277, 278, 279, + 229, 230, 231, 232, 233, 234, 0, 235, 236, 237, + 238, 239, 240, 0, 241, 242, 243, 244, 245, 246, + 247, 248, 249, 250, 0, 251, 0, 252, 253, 254, + 255, 256, 257, 258, 259, 260, 261, 262, 0, 0, + 263, 264, 265, 266, 0, 267, 268, 269, 923, 924, + 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, - 290, 291, 292, 293, 294, 0, 296, 297, 298, 299, - 300, 0, 301, 302, 0, 304, 0, 305, 306, 307, + 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, + 300, 0, 301, 302, 303, 304, 0, 929, 306, 307, 308, 309, 310, 0, 311, 312, 0, 0, 313, 314, - 315, 0, 0, 316, 317, 0, 319, 0, 321, 322, + 315, 0, 0, 316, 317, 318, 319, 320, 932, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 0, - 332, 333, 334, 335, 336, 337, 338, 339, 340, 0, + 332, 333, 933, 335, 336, 337, 338, 339, 340, 0, 341, 342, 343, 344, 345, 346, 0, 347, 348, 349, 350, 351, 352, 353, 354, 0, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 0, - 368, 369, 0, 371, 372, 373, 374, 375, 376, 377, + 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 0, 386, - 387, 388, 389, 390, 0, 392, 393, 394, 395, 396, - 0, 398, 399, 400, 401, 0, 402, 403, 404, 405, - 406, 407, 408, 409, 410, 411, 412, 413, 512, 415, - 416, 417, 0, 418, 419, 0, 420, 0, 422, 423, + 387, 388, 389, 390, 936, 392, 393, 394, 395, 396, + 397, 398, 399, 400, 401, 0, 402, 403, 404, 405, + 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, + 938, 417, 0, 418, 419, 0, 420, 421, 422, 423, 424, 425, 426, 0, 427, 428, 0, 0, 429, 430, - 431, 432, 433, 0, 434, 435, 436, 437, 438, 439, - 440, 441, 0, 0, 442, 443, 444, 445, 446, 0, + 941, 432, 942, 0, 434, 435, 944, 437, 438, 439, + 440, 441, 0, 0, 442, 443, 444, 445, 446, 945, 0, 448, 449, 450, 451, 452, 453, 454, 0, 455, - 0, 457, 458, 459, 460, 461, 0, 0, 462, 0, + 456, 457, 458, 459, 460, 461, 0, 0, 462, 0, 0, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, - 482, 483, 506, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1870, 0, - 94, 95, 96, 97, 98, 99, 100, 101, 0, 102, + 482, 483, 507, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 2819, 0, + 94, 95, 96, 97, 98, 99, 100, 101, 643, 102, 103, 104, 0, 0, 0, 0, 0, 0, 0, 105, 106, 0, 107, 108, 109, 0, 111, 112, 113, 114, 115, 0, 117, 118, 0, 119, 120, 121, 122, 123, @@ -6789,14 +4971,14 @@ static const yytype_int16 yytable[] = 189, 190, 0, 191, 192, 193, 0, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 0, 205, 0, 206, 207, 208, 209, 0, 210, 0, 211, 0, - 0, 0, 214, 215, 509, 0, 218, 0, 219, 0, + 0, 0, 214, 215, 510, 0, 218, 0, 219, 0, 220, 221, 222, 0, 223, 224, 225, 226, 227, 228, 229, 0, 231, 232, 233, 234, 0, 235, 236, 237, 238, 239, 240, 0, 241, 0, 243, 244, 245, 246, 247, 248, 249, 250, 0, 251, 0, 252, 0, 0, 255, 0, 257, 258, 259, 260, 261, 262, 0, 0, 263, 0, 265, 0, 0, 267, 268, 269, 0, 0, - 270, 271, 272, 273, 274, 510, 276, 277, 278, 279, + 270, 271, 272, 273, 274, 511, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 0, 296, 297, 298, 299, 300, 0, 301, 302, 0, 304, 0, 305, 306, 307, @@ -6808,272 +4990,20 @@ static const yytype_int16 yytable[] = 350, 351, 352, 353, 354, 0, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 0, 368, 369, 0, 371, 372, 373, 374, 375, 376, 377, - 378, 379, 380, 381, 382, 383, 384, 385, 0, 386, + 378, 379, 380, 381, 382, 383, 384, 385, 26, 386, 387, 388, 389, 390, 0, 392, 393, 394, 395, 396, 0, 398, 399, 400, 401, 0, 402, 403, 404, 405, - 406, 407, 408, 409, 410, 411, 412, 413, 512, 415, - 416, 417, 0, 418, 419, 0, 420, 0, 422, 423, - 424, 425, 426, 0, 427, 428, 0, 0, 429, 430, + 406, 407, 408, 409, 410, 411, 412, 413, 513, 415, + 416, 417, 0, 418, 419, 31, 420, 0, 422, 423, + 424, 425, 426, 0, 644, 428, 0, 0, 645, 430, 431, 432, 433, 0, 434, 435, 436, 437, 438, 439, 440, 441, 0, 0, 442, 443, 444, 445, 446, 0, - 0, 448, 449, 450, 451, 452, 453, 454, 0, 455, + 0, 448, 449, 450, 451, 452, 611, 454, 0, 455, 0, 457, 458, 459, 460, 461, 0, 0, 462, 0, - 0, 463, 464, 465, 466, 467, 468, 469, 470, 471, + 34, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, - 482, 483, 0, 0, 2505, 1302, 582, 0, 0, 1688, - 887, 0, 0, 0, 0, 0, 1689, 0, 2628, 1690, - 1691, 1692, 94, 95, 96, 97, 98, 99, 100, 101, - 1130, 102, 103, 104, 1131, 1132, 1133, 1134, 1135, 1136, - 1137, 105, 106, 1138, 107, 108, 109, 2506, 111, 112, - 113, 0, 696, 2507, 698, 699, 1139, 119, 120, 121, - 122, 123, 124, 1140, 1141, 125, 126, 700, 701, 129, - 1142, 130, 131, 132, 133, 0, 1143, 2508, 1144, 136, - 137, 138, 139, 140, 141, 2509, 143, 144, 145, 1145, - 146, 147, 148, 149, 150, 151, 1146, 2510, 153, 154, - 155, 2511, 2512, 2513, 2514, 1147, 1148, 2515, 161, 162, - 163, 164, 165, 166, 167, 710, 711, 170, 1149, 171, - 1150, 172, 173, 174, 175, 176, 177, 1151, 178, 179, - 180, 181, 182, 1152, 1153, 183, 184, 712, 186, 187, - 1154, 188, 189, 190, 1155, 191, 192, 193, 1156, 194, - 195, 196, 197, 0, 199, 200, 201, 202, 203, 0, - 1157, 205, 1158, 206, 207, 713, 209, 1159, 210, 1160, - 211, 2516, 1161, 2517, 214, 215, 2518, 2519, 218, 1162, - 219, 1163, 0, 0, 222, 1164, 223, 224, 225, 226, - 227, 228, 229, 2520, 231, 232, 233, 234, 1165, 235, - 236, 237, 238, 239, 240, 1166, 241, 2521, 0, 244, - 245, 246, 247, 248, 720, 721, 1167, 722, 1168, 252, - 2522, 2523, 255, 2524, 257, 258, 259, 260, 261, 262, - 1169, 1170, 263, 2525, 265, 2526, 1171, 267, 268, 269, - 1172, 1173, 270, 271, 272, 273, 274, 2527, 276, 277, - 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, - 288, 289, 290, 291, 292, 293, 729, 2528, 731, 297, - 298, 299, 2529, 1174, 301, 302, 2530, 304, 1175, 0, - 306, 733, 308, 309, 310, 1176, 311, 312, 1177, 1178, - 2531, 314, 315, 1179, 1180, 316, 0, 2532, 319, 2533, - 0, 322, 323, 324, 325, 326, 327, 328, 329, 330, - 331, 1181, 332, 333, 0, 335, 336, 0, 338, 339, - 340, 1182, 341, 342, 343, 344, 345, 346, 1183, 347, - 348, 349, 736, 351, 352, 353, 354, 1184, 355, 356, - 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, - 367, 1185, 368, 369, 2534, 371, 372, 373, 738, 375, - 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, - 1186, 386, 387, 388, 389, 390, 2535, 392, 2536, 394, - 395, 396, 2537, 398, 399, 742, 401, 1187, 402, 403, - 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, - 2538, 415, 0, 417, 1188, 418, 419, 1189, 420, 2539, - 422, 423, 424, 425, 426, 1190, 745, 746, 1191, 1192, - 429, 430, 0, 432, 0, 1193, 434, 435, 2540, 437, - 438, 439, 440, 441, 1194, 1195, 442, 443, 444, 445, - 446, 2541, 1196, 448, 449, 450, 451, 452, 0, 749, - 1198, 455, 2542, 457, 458, 459, 460, 461, 1199, 1200, - 462, 1201, 1202, 463, 464, 465, 466, 467, 468, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 480, 481, 482, 483, 0, 506, 0, 1693, 1694, 1695, - 1688, 2543, 2544, 1698, 1699, 1700, 1701, 1689, 0, 0, - 1690, 1691, 1692, 94, 95, 96, 97, 98, 99, 100, - 101, 0, 102, 103, 104, 0, 0, 0, 0, 0, - 0, 0, 105, 106, 0, 107, 108, 109, 0, 111, - 112, 113, 114, 115, 0, 117, 118, 0, 119, 120, - 121, 122, 123, 124, 0, 0, 125, 126, 127, 128, - 129, 0, 130, 131, 132, 133, 134, 0, 0, 0, - 136, 137, 138, 139, 140, 141, 0, 143, 144, 145, - 0, 146, 147, 148, 149, 150, 151, 0, 0, 153, - 154, 155, 0, 0, 0, 0, 0, 0, 0, 161, - 162, 163, 164, 165, 166, 167, 168, 169, 170, 0, - 171, 0, 172, 173, 174, 175, 176, 177, 0, 178, - 179, 180, 181, 182, 0, 0, 183, 184, 185, 186, - 187, 0, 188, 189, 190, 0, 191, 192, 193, 0, - 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, - 204, 0, 205, 0, 206, 207, 208, 209, 0, 210, - 0, 211, 0, 0, 0, 214, 215, 509, 0, 218, - 0, 219, 0, 220, 221, 222, 0, 223, 224, 225, - 226, 227, 228, 229, 0, 231, 232, 233, 234, 0, - 235, 236, 237, 238, 239, 240, 0, 241, 0, 243, - 244, 245, 246, 247, 248, 249, 250, 0, 251, 0, - 252, 0, 0, 255, 0, 257, 258, 259, 260, 261, - 262, 0, 0, 263, 0, 265, 0, 0, 267, 268, - 269, 0, 0, 270, 271, 272, 273, 274, 510, 276, - 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, - 287, 288, 289, 290, 291, 292, 293, 294, 0, 296, - 297, 298, 299, 300, 0, 301, 302, 0, 304, 0, - 305, 306, 307, 308, 309, 310, 0, 311, 312, 0, - 0, 313, 314, 315, 0, 0, 316, 317, 0, 319, - 0, 321, 322, 323, 324, 325, 326, 327, 328, 329, - 330, 331, 0, 332, 333, 334, 335, 336, 337, 338, - 339, 340, 0, 341, 342, 343, 344, 345, 346, 0, - 347, 348, 349, 350, 351, 352, 353, 354, 0, 355, - 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, - 366, 367, 0, 368, 369, 0, 371, 372, 373, 374, - 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, - 385, 0, 386, 387, 388, 389, 390, 0, 392, 393, - 394, 395, 396, 0, 398, 399, 400, 401, 0, 402, - 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, - 413, 512, 415, 416, 417, 0, 418, 419, 0, 420, - 0, 422, 423, 424, 425, 426, 0, 427, 428, 0, - 0, 429, 430, 431, 432, 433, 0, 434, 435, 436, - 437, 438, 439, 440, 441, 0, 0, 442, 443, 444, - 445, 446, 0, 0, 448, 449, 450, 451, 452, 453, - 454, 0, 455, 0, 457, 458, 459, 460, 461, 0, - 0, 462, 0, 0, 463, 464, 465, 466, 467, 468, - 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, - 479, 480, 481, 482, 483, 0, 0, 0, 1693, 1694, - 1695, 0, 1696, 1697, 1698, 1699, 1700, 1701, 1379, 0, - 0, 1380, 0, 0, 0, 1381, 1382, 1383, 1384, 1385, - 1386, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1387, 0, 1379, 0, 0, - 1380, 0, 0, 1389, 1381, 1382, 1383, 1384, 1385, 1386, - 1390, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1387, 0, 0, 0, 0, 0, - 0, 0, 1389, 1379, 0, 1391, 1380, 0, 0, 1390, - 1381, 1382, 1383, 1384, 1385, 1386, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1387, 0, 1379, 0, 1391, 1380, 0, 0, 1389, 1381, - 1382, 1383, 1384, 1385, 1386, 1390, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1387, - 0, 0, 0, 0, 0, 0, 0, 1389, 0, 0, - 1391, 0, 0, 0, 1390, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1391, - 0, 0, 0, 0, 0, 0, 1392, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1393, 0, 0, 0, 0, 1394, 0, 0, - 1379, 0, 0, 1380, 0, 1392, 0, 1381, 1382, 1383, - 1384, 1385, 1386, 0, 0, 0, 0, 0, 0, 1395, - 1396, 1393, 0, 0, 0, 0, 1394, 1387, 0, 0, - 0, 0, 0, 0, 1397, 1389, 0, 0, 0, 0, - 0, 1392, 1390, 0, 0, 0, 0, 0, 1395, 1396, - 0, 0, 0, 0, 0, 0, 0, 1393, 0, 0, - 0, 0, 1394, 1397, 0, 0, 0, 1391, 0, 0, - 1392, 0, 1398, 0, 0, 1399, 0, 0, 0, 0, - 0, 0, 0, 0, 1395, 1396, 1393, 0, 0, 1400, - 0, 1394, 1401, 0, 0, 0, 0, 0, 0, 1397, - 0, 1398, 0, 0, 1399, 0, 0, 0, 0, 0, - 0, 0, 0, 1395, 1396, 0, 0, 0, 1400, 0, - 0, 1401, 0, 0, 0, 0, 0, 0, 1397, 0, - 0, 0, 0, 0, 0, 0, 0, 1398, 0, 0, - 1399, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1400, 0, 0, 1401, 0, 0, - 0, 0, 0, 0, 0, 0, 1398, 0, 1392, 1399, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1402, 0, 1400, 1393, 0, 1401, 0, 0, 1394, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1402, 1395, 1396, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1397, 0, 0, 0, - 1379, 0, 0, 1380, 0, 0, 0, 1381, 1382, 1383, - 1384, 1385, 1386, 0, 0, 0, 1402, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1387, 0, 0, - 0, 0, 0, 0, 1398, 1389, 0, 1399, 0, 0, - 0, 0, 1390, 0, 0, 1402, 0, 0, 0, 0, - 0, 1400, 0, 1403, 1401, 0, 1404, 1405, 1406, 0, - 1407, 1408, 1409, 1410, 1411, 1412, 0, 1391, 0, 0, - 2602, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1403, 0, 0, 1404, 1405, 1406, 0, 1407, - 1408, 1409, 1410, 1411, 1412, 0, 0, 0, 0, 2624, - 0, 0, 0, 0, 1379, 0, 0, 1380, 0, 0, - 0, 1381, 1382, 1383, 1384, 1385, 1386, 0, 1403, 0, - 0, 1404, 1405, 1406, 0, 1407, 1408, 1409, 1410, 1411, - 1412, 1387, 0, 0, 0, 2627, 0, 0, 0, 1389, - 0, 0, 0, 1402, 0, 0, 1390, 1403, 0, 0, - 1404, 1405, 1406, 0, 1407, 1408, 1409, 1410, 1411, 1412, - 0, 0, 0, 0, 2766, 0, 1379, 0, 1392, 1380, - 0, 1391, 0, 1381, 1382, 1383, 1384, 1385, 1386, 0, - 0, 0, 0, 0, 1393, 0, 0, 0, 0, 1394, - 0, 0, 0, 1387, 0, 0, 0, 0, 0, 0, - 0, 1389, 0, 0, 0, 0, 0, 0, 1390, 0, - 0, 1395, 1396, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1397, 0, 0, 0, - 0, 0, 0, 1391, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1403, 0, 0, 1404, 1405, - 1406, 0, 1407, 1408, 1409, 1410, 1411, 1412, 0, 0, - 0, 0, 2829, 0, 1398, 0, 0, 1399, 0, 0, - 0, 0, 1392, 0, 0, 0, 0, 0, 0, 0, - 0, 1400, 0, 0, 1401, 0, 0, 0, 1393, 0, - 0, 0, 0, 1394, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1395, 1396, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1397, 0, 0, 0, 1392, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1393, 0, 0, 0, 0, 1394, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1398, 0, - 0, 1399, 0, 1402, 0, 0, 0, 1395, 1396, 0, - 0, 0, 0, 0, 0, 1400, 0, 0, 1401, 0, - 0, 0, 1397, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1398, 0, 0, 1399, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1400, 0, 0, - 1401, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1403, 0, 1402, 1404, 1405, - 1406, 0, 1407, 1408, 1409, 1410, 1411, 1412, 0, 0, - 0, 0, 2936, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1402, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1403, - 0, 0, 1404, 1405, 1406, 0, 1407, 1408, 1409, 1410, - 1411, 1412, 0, 0, 0, 0, 2984, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1403, 1129, 0, 1404, 1405, 1406, 0, 1407, 1408, - 1409, 1410, 1411, 1412, 0, 0, 0, 0, 2997, 0, - 94, 95, 96, 97, 98, 99, 100, 101, 1130, 102, - 103, 104, 1131, 1132, 1133, 1134, 1135, 1136, 1137, 105, - 106, 1138, 107, 108, 109, 781, 111, 112, 113, 782, - 783, 784, 785, 786, 1139, 119, 120, 121, 122, 123, - 124, 1140, 1141, 125, 126, 787, 788, 129, 1142, 130, - 131, 132, 133, 789, 1143, 790, 1144, 136, 137, 138, - 139, 140, 141, 791, 143, 144, 145, 1145, 146, 147, - 148, 149, 150, 151, 1146, 792, 153, 154, 155, 793, - 794, 795, 796, 1147, 1148, 797, 161, 162, 163, 164, - 165, 166, 167, 798, 799, 170, 1149, 171, 1150, 172, - 173, 174, 175, 176, 177, 1151, 178, 179, 180, 181, - 182, 1152, 1153, 183, 184, 185, 186, 187, 1154, 188, - 189, 190, 1155, 191, 192, 193, 1156, 194, 195, 196, - 197, 800, 199, 200, 201, 202, 203, 801, 1157, 205, - 1158, 206, 207, 802, 209, 1159, 210, 1160, 211, 803, - 1161, 804, 214, 215, 805, 806, 218, 1162, 219, 1163, - 807, 808, 222, 1164, 223, 224, 225, 226, 227, 228, - 229, 809, 231, 232, 233, 234, 1165, 235, 236, 237, - 238, 239, 240, 1166, 241, 810, 811, 244, 245, 246, - 247, 248, 812, 813, 1167, 814, 1168, 252, 815, 816, - 255, 817, 257, 258, 259, 260, 261, 262, 1169, 1170, - 263, 818, 265, 819, 1171, 267, 268, 269, 1172, 1173, - 270, 271, 272, 273, 274, 820, 276, 277, 278, 279, - 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, - 290, 291, 292, 293, 821, 822, 823, 297, 298, 299, - 824, 1174, 301, 302, 825, 304, 1175, 826, 306, 827, - 308, 309, 310, 1176, 311, 312, 1177, 1178, 313, 314, - 315, 1179, 1180, 316, 828, 829, 319, 830, 831, 322, - 323, 324, 325, 326, 327, 328, 329, 330, 331, 1181, - 332, 333, 832, 335, 336, 833, 338, 339, 340, 1182, - 341, 342, 343, 344, 345, 346, 1183, 347, 348, 349, - 834, 351, 352, 353, 354, 1184, 355, 356, 357, 358, - 359, 360, 361, 362, 363, 364, 365, 366, 367, 1185, - 368, 369, 835, 371, 372, 373, 836, 375, 376, 377, - 378, 379, 380, 381, 382, 383, 384, 385, 1186, 386, - 387, 388, 389, 390, 837, 392, 838, 394, 395, 396, - 839, 398, 399, 840, 401, 1187, 402, 403, 404, 405, - 406, 407, 408, 409, 410, 411, 412, 413, 841, 415, - 842, 417, 1188, 418, 419, 1189, 420, 843, 422, 423, - 424, 425, 426, 1190, 844, 845, 1191, 1192, 429, 430, - 846, 432, 847, 1193, 434, 435, 848, 437, 438, 439, - 440, 441, 1194, 1195, 442, 443, 444, 445, 446, 849, - 1196, 448, 449, 450, 451, 452, 1197, 851, 1198, 455, - 852, 457, 458, 459, 460, 461, 1199, 1200, 462, 1201, - 1202, 463, 464, 465, 466, 467, 468, 853, 854, 855, - 856, 857, 858, 859, 860, 861, 862, 863, 480, 481, - 482, 483, 506, 0, 0, 0, 0, 0, 0, 0, - 0, 1813, 0, 0, 0, 0, 0, 0, 0, 0, + 482, 483, 507, 0, 35, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 36, 0, 94, 95, 96, 97, 98, 99, 100, 101, 0, 102, 103, 104, 0, 0, 0, 0, 0, 0, 0, 105, 106, 0, 107, 108, 109, 0, 111, 112, 113, 114, @@ -7089,14 +5019,14 @@ static const yytype_int16 yytable[] = 189, 190, 0, 191, 192, 193, 0, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 0, 205, 0, 206, 207, 208, 209, 0, 210, 0, 211, 0, - 0, 0, 214, 215, 509, 0, 218, 0, 219, 0, + 0, 0, 214, 215, 510, 0, 218, 0, 219, 0, 220, 221, 222, 0, 223, 224, 225, 226, 227, 228, 229, 0, 231, 232, 233, 234, 0, 235, 236, 237, 238, 239, 240, 0, 241, 0, 243, 244, 245, 246, 247, 248, 249, 250, 0, 251, 0, 252, 0, 0, 255, 0, 257, 258, 259, 260, 261, 262, 0, 0, 263, 0, 265, 0, 0, 267, 268, 269, 0, 0, - 270, 271, 272, 273, 274, 510, 276, 277, 278, 279, + 270, 271, 272, 273, 274, 511, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 0, 296, 297, 298, 299, 300, 0, 301, 302, 0, 304, 0, 305, 306, 307, @@ -7108,915 +5038,20 @@ static const yytype_int16 yytable[] = 350, 351, 352, 353, 354, 0, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 0, 368, 369, 0, 371, 372, 373, 374, 375, 376, 377, - 378, 379, 380, 381, 382, 383, 384, 385, 0, 386, + 378, 379, 380, 381, 382, 383, 384, 385, 26, 386, 387, 388, 389, 390, 0, 392, 393, 394, 395, 396, 0, 398, 399, 400, 401, 0, 402, 403, 404, 405, - 406, 407, 408, 409, 410, 411, 412, 413, 512, 415, - 416, 417, 0, 418, 419, 0, 420, 0, 422, 423, + 406, 407, 408, 409, 410, 411, 412, 413, 513, 415, + 416, 417, 0, 418, 419, 31, 420, 0, 422, 423, 424, 425, 426, 0, 427, 428, 0, 0, 429, 430, 431, 432, 433, 0, 434, 435, 436, 437, 438, 439, 440, 441, 0, 0, 442, 443, 444, 445, 446, 0, - 0, 448, 449, 450, 451, 452, 453, 454, 0, 455, + 0, 448, 449, 450, 451, 452, 611, 454, 0, 455, 0, 457, 458, 459, 460, 461, 0, 0, 462, 0, - 0, 463, 464, 465, 466, 467, 468, 469, 470, 471, + 34, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, - 482, 483, 780, 1302, 582, 0, 0, 0, 887, 0, - 0, 2311, 0, 0, 0, 0, 0, 0, 0, 0, - 94, 95, 96, 97, 98, 99, 100, 101, 0, 102, - 103, 104, 0, 0, 0, 0, 0, 0, 0, 105, - 106, 0, 107, 108, 109, 781, 111, 112, 113, 782, - 783, 784, 785, 786, 0, 119, 120, 121, 122, 123, - 124, 0, 0, 125, 126, 787, 788, 129, 0, 130, - 131, 132, 133, 789, 0, 790, 0, 136, 137, 138, - 139, 140, 141, 791, 143, 144, 145, 0, 146, 147, - 148, 149, 150, 151, 0, 792, 153, 154, 155, 793, - 794, 795, 796, 0, 0, 797, 161, 162, 163, 164, - 165, 166, 167, 798, 799, 170, 1439, 171, 0, 172, - 173, 174, 175, 176, 177, 0, 178, 179, 180, 181, - 182, 0, 0, 183, 184, 185, 186, 187, 0, 188, - 189, 190, 0, 191, 192, 193, 0, 194, 195, 196, - 197, 800, 199, 200, 201, 202, 203, 801, 1303, 205, - 0, 206, 207, 802, 209, 0, 210, 0, 211, 803, - 0, 804, 214, 215, 805, 806, 218, 0, 219, 0, - 807, 808, 222, 0, 223, 224, 225, 226, 227, 228, - 229, 809, 231, 232, 233, 234, 0, 235, 236, 237, - 238, 239, 240, 0, 241, 810, 811, 244, 245, 246, - 247, 248, 812, 813, 0, 814, 0, 252, 815, 816, - 255, 817, 257, 258, 259, 260, 261, 262, 0, 0, - 263, 818, 265, 819, 0, 267, 268, 269, 0, 0, - 270, 271, 272, 273, 274, 820, 276, 277, 278, 279, - 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, - 290, 291, 292, 293, 821, 822, 823, 297, 298, 299, - 824, 0, 301, 302, 825, 304, 0, 826, 306, 827, - 308, 309, 310, 0, 311, 312, 1304, 0, 313, 314, - 315, 0, 0, 316, 828, 829, 319, 830, 831, 322, - 323, 324, 325, 326, 327, 328, 329, 330, 331, 0, - 332, 333, 832, 335, 336, 833, 338, 339, 340, 0, - 341, 342, 343, 344, 345, 346, 0, 347, 348, 349, - 834, 351, 352, 353, 354, 0, 355, 356, 357, 358, - 359, 360, 361, 362, 363, 364, 365, 366, 367, 0, - 368, 369, 835, 371, 372, 373, 836, 375, 376, 377, - 378, 379, 380, 381, 382, 383, 384, 385, 0, 386, - 387, 388, 389, 390, 837, 392, 838, 394, 395, 396, - 839, 398, 399, 840, 401, 0, 402, 403, 404, 405, - 406, 407, 408, 409, 410, 411, 412, 413, 841, 415, - 842, 417, 0, 418, 419, 0, 420, 843, 422, 423, - 424, 425, 426, 0, 844, 845, 0, 0, 429, 430, - 846, 432, 847, 1305, 434, 435, 848, 437, 438, 439, - 440, 441, 0, 0, 442, 443, 444, 445, 446, 849, - 0, 448, 449, 450, 451, 452, 1197, 851, 0, 455, - 852, 457, 458, 459, 460, 461, 0, 0, 462, 0, - 0, 463, 464, 465, 466, 467, 468, 853, 854, 855, - 856, 857, 858, 859, 860, 861, 862, 863, 480, 481, - 482, 483, 780, 1302, 582, 0, 0, 0, 887, 1306, - 1307, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 94, 95, 96, 97, 98, 99, 100, 101, 0, 102, - 103, 104, 0, 0, 0, 0, 0, 0, 0, 105, - 106, 0, 107, 108, 109, 781, 111, 112, 113, 782, - 783, 784, 785, 786, 0, 119, 120, 121, 122, 123, - 124, 0, 0, 125, 126, 787, 788, 129, 0, 130, - 131, 132, 133, 789, 0, 790, 0, 136, 137, 138, - 139, 140, 141, 791, 143, 144, 145, 0, 146, 147, - 148, 149, 150, 151, 0, 792, 153, 154, 155, 793, - 794, 795, 796, 0, 0, 797, 161, 162, 163, 164, - 165, 166, 167, 798, 799, 170, 1441, 171, 0, 172, - 173, 174, 175, 176, 177, 0, 178, 179, 180, 181, - 182, 0, 0, 183, 184, 185, 186, 187, 0, 188, - 189, 190, 0, 191, 192, 193, 0, 194, 195, 196, - 197, 800, 199, 200, 201, 202, 203, 801, 1303, 205, - 0, 206, 207, 802, 209, 0, 210, 0, 211, 803, - 0, 804, 214, 215, 805, 806, 218, 0, 219, 0, - 807, 808, 222, 0, 223, 224, 225, 226, 227, 228, - 229, 809, 231, 232, 233, 234, 0, 235, 236, 237, - 238, 239, 240, 0, 241, 810, 811, 244, 245, 246, - 247, 248, 812, 813, 0, 814, 0, 252, 815, 816, - 255, 817, 257, 258, 259, 260, 261, 262, 0, 0, - 263, 818, 265, 819, 0, 267, 268, 269, 0, 0, - 270, 271, 272, 273, 274, 820, 276, 277, 278, 279, - 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, - 290, 291, 292, 293, 821, 822, 823, 297, 298, 299, - 824, 0, 301, 302, 825, 304, 0, 826, 306, 827, - 308, 309, 310, 0, 311, 312, 1304, 0, 313, 314, - 315, 0, 0, 316, 828, 829, 319, 830, 831, 322, - 323, 324, 325, 326, 327, 328, 329, 330, 331, 0, - 332, 333, 832, 335, 336, 833, 338, 339, 340, 0, - 341, 342, 343, 344, 345, 346, 0, 347, 348, 349, - 834, 351, 352, 353, 354, 0, 355, 356, 357, 358, - 359, 360, 361, 362, 363, 364, 365, 366, 367, 0, - 368, 369, 835, 371, 372, 373, 836, 375, 376, 377, - 378, 379, 380, 381, 382, 383, 384, 385, 0, 386, - 387, 388, 389, 390, 837, 392, 838, 394, 395, 396, - 839, 398, 399, 840, 401, 0, 402, 403, 404, 405, - 406, 407, 408, 409, 410, 411, 412, 413, 841, 415, - 842, 417, 0, 418, 419, 0, 420, 843, 422, 423, - 424, 425, 426, 0, 844, 845, 0, 0, 429, 430, - 846, 432, 847, 1305, 434, 435, 848, 437, 438, 439, - 440, 441, 0, 0, 442, 443, 444, 445, 446, 849, - 0, 448, 449, 450, 451, 452, 1197, 851, 0, 455, - 852, 457, 458, 459, 460, 461, 0, 0, 462, 0, - 0, 463, 464, 465, 466, 467, 468, 853, 854, 855, - 856, 857, 858, 859, 860, 861, 862, 863, 480, 481, - 482, 483, 780, 1302, 582, 0, 0, 0, 887, 1306, - 1307, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 94, 95, 96, 97, 98, 99, 100, 101, 0, 102, - 103, 104, 0, 0, 0, 0, 0, 0, 0, 105, - 106, 0, 107, 108, 109, 781, 111, 112, 113, 782, - 783, 784, 785, 786, 0, 119, 120, 121, 122, 123, - 124, 0, 0, 125, 126, 787, 788, 129, 0, 130, - 131, 132, 133, 789, 0, 790, 0, 136, 137, 138, - 139, 140, 141, 791, 143, 144, 145, 0, 146, 147, - 148, 149, 150, 151, 0, 792, 153, 154, 155, 793, - 794, 795, 796, 0, 0, 797, 161, 162, 163, 164, - 165, 166, 167, 798, 799, 170, 0, 171, 0, 172, - 173, 174, 175, 176, 177, 0, 178, 179, 180, 181, - 182, 0, 0, 183, 184, 185, 186, 187, 0, 188, - 189, 190, 0, 191, 192, 193, 0, 194, 195, 196, - 197, 800, 199, 200, 201, 202, 203, 801, 1303, 205, - 0, 206, 207, 802, 209, 0, 210, 0, 211, 803, - 0, 804, 214, 215, 805, 806, 218, 0, 219, 0, - 807, 808, 222, 0, 223, 224, 225, 226, 227, 228, - 229, 809, 231, 232, 233, 234, 0, 235, 236, 237, - 238, 239, 240, 0, 241, 810, 811, 244, 245, 246, - 247, 248, 812, 813, 0, 814, 0, 252, 815, 816, - 255, 817, 257, 258, 259, 260, 261, 262, 0, 0, - 263, 818, 265, 819, 0, 267, 268, 269, 0, 0, - 270, 271, 272, 273, 274, 820, 276, 277, 278, 279, - 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, - 290, 291, 292, 293, 821, 822, 823, 297, 298, 299, - 824, 0, 301, 302, 825, 304, 0, 826, 306, 827, - 308, 309, 310, 0, 311, 312, 1304, 0, 313, 314, - 315, 0, 0, 316, 828, 829, 319, 830, 831, 322, - 323, 324, 325, 326, 327, 328, 329, 330, 331, 0, - 332, 333, 832, 335, 336, 833, 338, 339, 340, 0, - 341, 342, 343, 344, 345, 346, 0, 347, 348, 349, - 834, 351, 352, 353, 354, 0, 355, 356, 357, 358, - 359, 360, 361, 362, 363, 364, 365, 366, 367, 0, - 368, 369, 835, 371, 372, 373, 836, 375, 376, 377, - 378, 379, 380, 381, 382, 383, 384, 385, 0, 386, - 387, 388, 389, 390, 837, 392, 838, 394, 395, 396, - 839, 398, 399, 840, 401, 0, 402, 403, 404, 405, - 406, 407, 408, 409, 410, 411, 412, 413, 841, 415, - 842, 417, 0, 418, 419, 0, 420, 843, 422, 423, - 424, 425, 426, 0, 844, 845, 0, 0, 429, 430, - 846, 432, 847, 1305, 434, 435, 848, 437, 438, 439, - 440, 441, 0, 0, 442, 443, 444, 445, 446, 849, - 0, 448, 449, 450, 451, 452, 1197, 851, 0, 455, - 852, 457, 458, 459, 460, 461, 0, 0, 462, 0, - 0, 463, 464, 465, 466, 467, 468, 853, 854, 855, - 856, 857, 858, 859, 860, 861, 862, 863, 480, 481, - 482, 483, 0, 0, 1379, 0, 0, 1380, 0, 1306, - 1307, 1381, 1382, 1383, 1384, 1385, 1386, 1379, 0, 0, - 1380, 0, 0, 0, 1381, 1382, 1383, 1384, 1385, 1386, - 0, 1387, 0, 0, 0, 1826, 0, 0, 0, 1389, - 0, 0, 0, 0, 1387, 0, 1390, 0, 0, 0, - 0, 0, 1389, 1379, 0, 0, 1380, 0, 0, 1390, - 1381, 1382, 1383, 1384, 1385, 1386, 1379, 0, 0, 1380, - 0, 1391, 0, 1381, 1382, 1383, 1384, 1385, 1386, 0, - 1387, 0, 0, 0, 1391, 0, 0, 0, 1389, 0, - 0, 0, 0, 1387, 0, 1390, 2039, 0, 0, 0, - 0, 1389, 1379, 0, 0, 1380, 0, 0, 1390, 1381, - 1382, 1383, 1384, 1385, 1386, 0, 0, 0, 0, 0, - 1391, 0, 1827, 0, 0, 0, 0, 0, 0, 1387, - 0, 0, 0, 1391, 0, 0, 0, 1389, 0, 0, - 0, 0, 0, 0, 1390, 0, 0, 1379, 0, 0, - 1380, 0, 0, 0, 1381, 1382, 1383, 1384, 1385, 1386, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1391, - 0, 0, 1392, 0, 1387, 2078, 0, 2084, 0, 0, - 2079, 0, 1389, 0, 0, 1392, 0, 0, 1393, 1390, - 0, 0, 0, 1394, 0, 0, 0, 0, 0, 0, - 0, 1393, 0, 0, 0, 0, 1394, 0, 0, 0, - 3084, 0, 0, 0, 1391, 1395, 1396, 0, 0, 0, - 0, 1392, 0, 0, 0, 0, 0, 0, 1395, 1396, - 1397, 0, 0, 0, 1392, 0, 0, 1393, 0, 0, - 0, 0, 1394, 1397, 0, 0, 0, 0, 0, 0, - 1393, 0, 0, 0, 0, 1394, 0, 0, 0, 0, - 0, 0, 0, 0, 1395, 1396, 0, 0, 1398, 0, - 1392, 1399, 0, 0, 0, 0, 0, 1395, 1396, 1397, - 0, 1398, 0, 0, 1399, 1400, 1393, 0, 1401, 0, - 0, 1394, 1397, 0, 0, 0, 0, 0, 1400, 0, - 0, 1401, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1395, 1396, 1392, 0, 1398, 0, 0, - 1399, 0, 0, 0, 0, 0, 0, 0, 1397, 0, - 1398, 1393, 0, 1399, 1400, 0, 1394, 1401, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1400, 0, 0, - 1401, 0, 0, 0, 0, 0, 0, 0, 1395, 1396, - 3085, 0, 0, 0, 0, 0, 1398, 0, 0, 1399, - 0, 0, 0, 1397, 0, 0, 0, 1402, 0, 0, - 0, 0, 0, 1400, 0, 0, 1401, 0, 0, 0, - 1402, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 2051, 0, 0, 0, 0, 0, - 0, 1398, 0, 0, 1399, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1402, 0, 1400, 0, - 0, 1401, 0, 0, 0, 0, 0, 1831, 0, 1402, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1402, 0, 0, 0, 1403, - 0, 0, 1404, 1405, 1406, 0, 1407, 1408, 1409, 1410, - 1411, 1412, 1403, 0, 0, 1404, 1405, 1406, 0, 1407, - 1408, 1409, 1410, 1411, 1412, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1402, 0, 0, 0, 0, 0, 0, 0, 1403, 0, - 0, 1404, 1405, 1406, 0, 1407, 1408, 1409, 1410, 1411, - 1412, 1403, 0, 0, 1404, 1405, 1406, 0, 1407, 1408, - 1409, 1410, 1411, 1412, 0, 0, 1379, 0, 0, 1380, - 0, 0, 0, 1381, 1382, 1383, 1384, 1385, 1386, 0, - 0, 0, 0, 0, 0, 0, 0, 1403, 0, 0, - 1404, 1405, 1406, 1387, 1407, 1408, 1409, 1410, 1411, 1412, - 0, 1389, 0, 0, 0, 0, 0, 0, 1390, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1403, 1391, 0, 1404, 1405, 1406, 0, 1407, - 1408, 1409, 1410, 1411, 1412, 1379, 0, 0, 1380, 0, - 0, 0, 1381, 1382, 1383, 1384, 1385, 1386, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1387, 0, 1379, 2091, 0, 1380, 0, 0, - 1389, 1381, 1382, 1383, 1384, 1385, 1386, 1390, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1387, 0, 0, 0, 0, 0, 0, 0, 1389, - 0, 0, 1391, 0, 0, 0, 1390, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 2089, - 0, 0, 0, 0, 1392, 0, 0, 0, 0, 0, - 0, 1391, 0, 0, 0, 0, 0, 0, 0, 0, - 1393, 0, 0, 1379, 0, 1394, 1380, 0, 0, 0, - 1381, 1382, 1383, 1384, 1385, 1386, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1395, 1396, 0, - 1387, 0, 0, 2359, 0, 0, 0, 0, 1389, 0, - 0, 0, 1397, 0, 0, 1390, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1392, 0, 0, 0, 0, 0, 0, - 1391, 0, 0, 0, 0, 0, 0, 0, 0, 1393, - 1398, 0, 0, 1399, 1394, 0, 0, 0, 0, 0, - 0, 0, 1392, 0, 0, 0, 0, 1400, 0, 0, - 1401, 0, 0, 0, 0, 0, 1395, 1396, 1393, 0, - 0, 0, 0, 1394, 0, 0, 0, 0, 0, 0, - 0, 1397, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1395, 1396, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1397, 0, 0, 0, 0, 0, 0, 0, 0, 1398, - 0, 0, 1399, 0, 0, 0, 0, 0, 0, 0, - 0, 1392, 0, 0, 1379, 0, 1400, 1380, 0, 1401, - 0, 1381, 1382, 1383, 1384, 1385, 1386, 1393, 1398, 1402, - 0, 1399, 1394, 0, 0, 0, 0, 0, 0, 0, - 0, 1387, 0, 0, 0, 1400, 0, 0, 1401, 1389, - 0, 0, 0, 0, 1395, 1396, 1390, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1397, - 0, 0, 0, 0, 0, 0, 0, 1379, 0, 0, - 1380, 1391, 0, 0, 1381, 1382, 1383, 1384, 1385, 1386, - 1379, 0, 0, 1380, 0, 0, 0, 1381, 0, 0, - 1384, 1385, 1386, 0, 1387, 0, 0, 1398, 1402, 0, - 1399, 0, 1389, 0, 0, 0, 0, 1387, 0, 1390, - 0, 0, 0, 0, 1400, 1389, 0, 1401, 0, 0, - 0, 1403, 1390, 0, 1404, 1405, 1406, 1402, 1407, 1408, - 1409, 1410, 1411, 1412, 1391, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1391, 0, 0, - 0, 0, 0, 0, 1379, 0, 0, 1380, 0, 0, - 2315, 1381, 0, 0, 1384, 1385, 1386, 0, 0, 0, - 0, 0, 1392, 0, 0, 0, 0, 0, 0, 0, - 0, 1387, 0, 0, 0, 0, 0, 0, 1393, 1389, - 0, 0, 0, 1394, 0, 0, 1390, 0, 0, 0, - 1403, 0, 0, 1404, 1405, 1406, 1402, 1407, 1408, 1409, - 1410, 1411, 1412, 0, 0, 1395, 1396, 0, 0, 0, - 0, 1391, 0, 0, 0, 0, 0, 0, 0, 1403, - 1397, 0, 1404, 1405, 1406, 1392, 1407, 1408, 1409, 1410, - 1411, 1412, 0, 0, 0, 0, 0, 1379, 1392, 0, - 1380, 1393, 0, 0, 1381, 0, 1394, 1384, 1385, 1386, - 0, 0, 0, 0, 1393, 0, 0, 0, 1398, 1394, - 0, 1399, 0, 0, 0, 0, 0, 0, 1395, 1396, - 0, 0, 1389, 0, 0, 1400, 0, 0, 1401, 1390, - 0, 1395, 1396, 1397, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1397, 0, 1403, 0, - 0, 1404, 1405, 1406, 1391, 1407, 1408, 1409, 1410, 1411, - 1412, 0, 1392, 0, 0, 0, 0, 0, 0, 0, - 0, 1398, 1, 0, 1399, 0, 0, 0, 1393, 0, - 0, 0, 2, 1394, 1398, 0, 0, 1399, 1400, 0, - 0, 1401, 0, 0, 0, 0, 0, 0, 0, 0, - 5, 1400, 0, 0, 1401, 1395, 1396, 0, 0, 6, - 0, 0, 0, 0, 0, 0, 0, 1402, 0, 0, - 1397, 7, 0, 0, 0, 0, 0, 0, 1379, 0, - 0, 1380, 8, 0, 0, 1381, 0, 0, 1384, 1385, - 1386, 0, 0, 0, 9, 0, 10, 0, 0, 0, - 0, 0, 0, 0, 0, 1392, 0, 0, 1398, 0, - 0, 1399, 0, 1389, 11, 0, 0, 0, 0, 0, - 1390, 1393, 0, 0, 0, 1400, 1394, 0, 12, 0, - 1402, 0, 0, 0, 0, 0, 0, 0, 13, 0, - 0, 0, 0, 1402, 14, 1391, 0, 0, 1395, 1396, - 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1397, 0, 0, 0, 0, 18, 1403, - 0, 0, 1404, 1405, 1406, 0, 1407, 1408, 1409, 1410, - 1411, 1412, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1398, 0, 0, 1399, 0, 0, 0, 0, 0, - 0, 0, 20, 0, 0, 0, 0, 1402, 1400, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1403, 0, 0, 1404, 1405, 1406, 21, 1407, - 1408, 1409, 1410, 1846, 1412, 1403, 1392, 0, 1404, 1405, - 1406, 0, 1407, 1408, 1409, 1410, 1411, 1412, 0, 0, - 0, 0, 1393, 0, 0, 0, 0, 1394, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, -1845, - -1845, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1397, 0, 0, 0, 0, 0, - 1402, 0, 0, 0, 0, 22, 0, 0, 23, 1403, - 0, 0, 1404, 1405, 1406, 0, 1407, 1408, 1409, 1410, - 1411, 1412, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, -1845, 0, 24, 0, 0, - 0, 0, 0, 0, 0, 0, 25, 0, 0, 1400, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 26, 0, 0, 0, 0, 0, 0, 27, 0, 0, - 0, 28, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 29, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 30, 0, 0, 0, 31, 0, 0, - 0, 0, 1403, 0, 0, 1404, 1405, 1406, 0, 1407, - 1408, 1409, 1410, 1411, 1412, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 32, 0, 0, 0, 0, 33, 0, - 0, 1402, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 34, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 35, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1129, 0, - 1750, 0, 0, 1403, 0, 0, 1404, 1405, 1406, 0, - 1407, 1408, 1409, 1410, 1411, 1412, 94, 95, 96, 97, - 98, 99, 100, 101, 1130, 102, 103, 104, 1131, 1132, - 1133, 1134, 1135, 1136, 1137, 105, 106, 1138, 107, 108, - 109, 781, 111, 112, 113, 782, 783, 784, 785, 786, - 1139, 119, 120, 121, 122, 123, 124, 1140, 1141, 125, - 126, 787, 788, 129, 1142, 130, 131, 132, 133, 789, - 1143, 790, 1144, 136, 137, 138, 139, 140, 141, 791, - 143, 144, 145, 1145, 146, 147, 148, 149, 150, 151, - 1146, 792, 153, 154, 155, 793, 794, 795, 796, 1147, - 1148, 797, 161, 162, 163, 164, 165, 166, 167, 798, - 799, 170, 1149, 171, 1150, 172, 173, 174, 175, 176, - 177, 1151, 178, 179, 180, 181, 182, 1152, 1153, 183, - 184, 185, 186, 187, 1154, 188, 189, 190, 1155, 191, - 192, 193, 1156, 194, 195, 196, 197, 800, 199, 200, - 201, 202, 203, 801, 1157, 205, 1158, 206, 207, 802, - 209, 1159, 210, 1160, 211, 803, 1161, 804, 214, 215, - 805, 806, 218, 1162, 219, 1163, 807, 808, 222, 1164, - 223, 224, 225, 226, 227, 228, 229, 809, 231, 232, - 233, 234, 1165, 235, 236, 237, 238, 239, 240, 1166, - 241, 810, 811, 244, 245, 246, 247, 248, 812, 813, - 1167, 814, 1168, 252, 815, 816, 255, 817, 257, 258, - 259, 260, 261, 262, 1169, 1170, 263, 818, 265, 819, - 1171, 267, 268, 269, 1172, 1173, 270, 271, 272, 273, - 274, 820, 276, 277, 278, 279, 280, 281, 282, 283, - 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, - 821, 822, 823, 297, 298, 299, 824, 1174, 301, 302, - 825, 304, 1175, 826, 306, 827, 308, 309, 310, 1176, - 311, 312, 1177, 1178, 313, 314, 315, 1179, 1180, 316, - 828, 829, 319, 830, 831, 322, 323, 324, 325, 326, - 327, 328, 329, 330, 331, 1181, 332, 333, 832, 335, - 336, 833, 338, 339, 340, 1182, 341, 342, 343, 344, - 345, 346, 1183, 347, 348, 349, 834, 351, 352, 353, - 354, 1184, 355, 356, 357, 358, 359, 360, 361, 362, - 363, 364, 365, 366, 367, 1185, 368, 369, 835, 371, - 372, 373, 836, 375, 376, 377, 378, 379, 380, 381, - 382, 383, 384, 385, 1186, 386, 387, 388, 389, 390, - 837, 392, 838, 394, 395, 396, 839, 398, 399, 840, - 401, 1187, 402, 403, 404, 405, 406, 407, 408, 409, - 410, 411, 412, 413, 841, 415, 842, 417, 1188, 418, - 419, 1189, 420, 843, 422, 423, 424, 425, 426, 1190, - 844, 845, 1191, 1192, 429, 430, 846, 432, 847, 1193, - 434, 435, 848, 437, 438, 439, 440, 441, 1194, 1195, - 442, 443, 444, 445, 446, 849, 1196, 448, 449, 450, - 451, 452, 1197, 851, 1198, 455, 852, 457, 458, 459, - 460, 461, 1199, 1200, 462, 1201, 1202, 463, 464, 465, - 466, 467, 468, 853, 854, 855, 856, 857, 858, 859, - 860, 861, 862, 863, 480, 481, 482, 483, 1129, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 94, 95, 96, 97, - 98, 99, 100, 101, 1130, 102, 103, 104, 1131, 1132, - 1133, 1134, 1135, 1136, 1137, 105, 106, 1138, 107, 108, - 109, 781, 111, 112, 113, 782, 783, 784, 785, 786, - 1139, 119, 120, 121, 122, 123, 124, 1140, 1141, 125, - 126, 787, 788, 129, 1142, 130, 131, 132, 133, 789, - 1143, 790, 1144, 136, 137, 138, 139, 140, 141, 791, - 143, 144, 145, 1145, 146, 147, 148, 149, 150, 151, - 1146, 792, 153, 154, 155, 793, 794, 795, 796, 1147, - 1148, 797, 161, 162, 163, 164, 165, 166, 167, 798, - 799, 170, 1149, 171, 1150, 172, 173, 174, 175, 176, - 177, 1151, 178, 179, 180, 181, 182, 1152, 1153, 183, - 184, 185, 186, 187, 1154, 188, 189, 190, 1155, 191, - 192, 193, 1156, 194, 195, 196, 197, 800, 199, 200, - 201, 202, 203, 801, 1157, 205, 1158, 206, 207, 802, - 209, 1159, 210, 1160, 211, 803, 1161, 804, 214, 215, - 805, 806, 218, 1162, 219, 1163, 807, 808, 222, 1164, - 223, 224, 225, 226, 227, 228, 229, 809, 231, 232, - 233, 234, 1165, 235, 236, 237, 238, 239, 240, 1166, - 241, 810, 811, 244, 245, 246, 247, 248, 812, 813, - 1167, 814, 1168, 252, 815, 816, 255, 817, 257, 258, - 259, 260, 261, 262, 1169, 1170, 263, 818, 265, 819, - 1171, 267, 268, 269, 1172, 1173, 270, 271, 272, 273, - 274, 820, 276, 277, 278, 279, 280, 281, 282, 283, - 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, - 821, 822, 823, 297, 298, 299, 824, 1174, 301, 302, - 825, 304, 1175, 826, 306, 827, 308, 309, 310, 1176, - 311, 312, 1177, 1178, 313, 314, 315, 1179, 1180, 316, - 828, 829, 319, 830, 831, 322, 323, 324, 325, 326, - 327, 328, 329, 330, 331, 1181, 332, 333, 832, 335, - 336, 833, 338, 339, 340, 1182, 341, 342, 343, 344, - 345, 346, 1183, 347, 348, 349, 834, 351, 352, 353, - 354, 1184, 355, 356, 357, 358, 359, 360, 361, 362, - 363, 364, 365, 366, 367, 1185, 368, 369, 835, 371, - 372, 373, 836, 375, 376, 377, 378, 379, 380, 381, - 382, 383, 384, 385, 1186, 386, 387, 388, 389, 390, - 837, 392, 838, 394, 395, 396, 839, 398, 399, 840, - 401, 1187, 402, 403, 404, 405, 406, 407, 408, 409, - 410, 411, 412, 413, 841, 415, 842, 417, 1188, 418, - 419, 1189, 420, 843, 422, 423, 424, 425, 426, 1190, - 844, 845, 1191, 1192, 429, 430, 846, 432, 847, 1193, - 434, 435, 848, 437, 438, 439, 440, 441, 1194, 1195, - 442, 443, 444, 445, 446, 849, 1196, 448, 449, 450, - 451, 452, 1197, 851, 1198, 455, 852, 457, 458, 459, - 460, 461, 1199, 1200, 462, 1201, 1202, 463, 464, 465, - 466, 467, 468, 853, 854, 855, 856, 857, 858, 859, - 860, 861, 862, 863, 480, 481, 482, 483, 1129, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 94, 95, 96, 97, - 1897, 99, 100, 101, 1130, 102, 103, 104, 1131, 1132, - 1133, 1134, 1135, 1136, 1137, 105, 106, 1138, 107, 108, - 109, 781, 111, 112, 113, 782, 783, 784, 785, 786, - 1139, 119, 120, 121, 122, 123, 124, 1140, 1141, 125, - 126, 787, 788, 129, 1142, 130, 131, 132, 133, 789, - 1143, 790, 1144, 136, 137, 138, 139, 140, 141, 791, - 143, 144, 145, 1145, 146, 147, 148, 149, 150, 151, - 1146, 792, 153, 154, 155, 793, 794, 795, 796, 1147, - 1148, 797, 161, 162, 163, 164, 165, 166, 167, 798, - 799, 170, 1149, 171, 1150, 172, 173, 174, 175, 176, - 177, 1151, 178, 179, 180, 181, 182, 1152, 1153, 183, - 184, 185, 1898, 187, 1154, 188, 189, 190, 1155, 191, - 192, 193, 1156, 194, 195, 196, 197, 800, 199, 200, - 201, 202, 203, 801, 1157, 205, 1158, 206, 207, 802, - 209, 1159, 210, 1160, 211, 803, 1161, 804, 214, 215, - 805, 806, 218, 1162, 219, 1163, 807, 808, 222, 1164, - 223, 224, 225, 226, 227, 228, 229, 809, 231, 232, - 233, 234, 1165, 235, 236, 237, 238, 239, 240, 1166, - 241, 810, 811, 244, 245, 246, 247, 248, 812, 813, - 1167, 814, 1168, 252, 815, 816, 255, 817, 257, 258, - 259, 260, 261, 262, 1169, 1170, 263, 818, 265, 819, - 1171, 267, 268, 269, 1172, 1173, 270, 271, 272, 273, - 274, 820, 276, 277, 278, 279, 280, 281, 282, 283, - 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, - 821, 822, 823, 297, 298, 299, 824, 1174, 301, 302, - 825, 304, 1175, 826, 306, 827, 308, 309, 310, 1176, - 311, 312, 1177, 1178, 313, 314, 315, 1179, 1180, 316, - 828, 829, 319, 830, 831, 322, 323, 324, 325, 326, - 327, 328, 329, 330, 331, 1181, 332, 333, 832, 335, - 336, 833, 338, 339, 340, 1182, 341, 342, 343, 344, - 345, 346, 1183, 347, 348, 349, 834, 351, 352, 353, - 354, 1184, 355, 356, 357, 358, 359, 360, 361, 362, - 363, 364, 365, 366, 367, 1185, 368, 369, 835, 371, - 372, 373, 836, 375, 376, 377, 378, 379, 380, 381, - 382, 383, 384, 385, 1186, 386, 387, 388, 389, 390, - 837, 1899, 838, 394, 395, 396, 839, 398, 399, 840, - 401, 1187, 402, 403, 404, 405, 406, 407, 408, 409, - 410, 411, 412, 413, 841, 415, 842, 417, 1188, 418, - 419, 1189, 420, 843, 422, 423, 424, 425, 426, 1190, - 844, 845, 1191, 1192, 429, 430, 846, 432, 847, 1193, - 434, 435, 848, 437, 438, 439, 440, 441, 1194, 1195, - 442, 443, 444, 445, 446, 849, 1196, 448, 449, 450, - 451, 452, 1197, 851, 1198, 455, 852, 457, 458, 459, - 460, 461, 1199, 1200, 462, 1201, 1202, 463, 464, 465, - 466, 467, 468, 853, 854, 855, 856, 857, 858, 859, - 860, 861, 862, 863, 480, 481, 482, 483, 93, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 94, 95, 96, 97, - 98, 99, 100, 101, 0, 102, 103, 104, 0, 0, - 0, 0, 0, 0, 0, 105, 106, 0, 107, 108, - 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, - 0, 119, 120, 121, 122, 123, 124, 0, 894, 125, - 126, 127, 128, 129, 0, 130, 131, 132, 133, 897, - 0, 898, 0, 136, 137, 138, 139, 140, 141, 142, - 143, 144, 145, 0, 146, 147, 148, 149, 150, 151, - 0, 152, 153, 154, 155, 899, 900, 901, 902, 903, - 904, 905, 161, 162, 163, 164, 165, 166, 167, 168, - 169, 170, 0, 171, 0, 172, 173, 174, 175, 176, - 177, 0, 178, 179, 180, 181, 182, 0, 0, 183, - 184, 185, 186, 187, 0, 188, 189, 190, 0, 191, - 192, 193, 0, 194, 195, 196, 197, 198, 199, 200, - 201, 202, 203, 910, 0, 205, 0, 206, 207, 208, - 209, 0, 210, 0, 211, 212, 0, 213, 214, 215, - 216, 217, 218, 0, 219, 0, 220, 221, 222, 0, - 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, - 233, 234, 0, 235, 236, 237, 238, 239, 240, 0, - 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, - 0, 251, 0, 252, 253, 254, 255, 256, 257, 258, - 259, 260, 261, 262, 0, 0, 263, 264, 265, 266, - 0, 267, 268, 269, 918, 919, 270, 271, 272, 273, - 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, - 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, - 294, 295, 296, 297, 298, 299, 300, 0, 301, 302, - 303, 304, 0, 924, 306, 307, 308, 309, 310, 0, - 311, 312, 0, 0, 313, 314, 315, 0, 0, 316, - 317, 318, 319, 320, 927, 322, 323, 324, 325, 326, - 327, 328, 329, 330, 331, 0, 332, 333, 928, 335, - 336, 337, 338, 339, 340, 0, 341, 342, 343, 344, - 345, 346, 0, 347, 348, 349, 350, 351, 352, 353, - 354, 0, 355, 356, 357, 358, 359, 360, 361, 362, - 363, 364, 365, 366, 367, 0, 368, 369, 370, 371, - 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, - 382, 383, 384, 385, 0, 386, 387, 388, 389, 390, - 931, 392, 393, 394, 395, 396, 397, 398, 399, 400, - 401, 0, 402, 403, 404, 405, 406, 407, 408, 409, - 410, 411, 412, 413, 414, 415, 933, 417, 0, 418, - 419, 0, 420, 421, 422, 423, 424, 425, 426, 0, - 427, 428, 0, 0, 429, 430, 936, 432, 937, 0, - 434, 435, 939, 437, 438, 439, 440, 441, 0, 0, - 442, 443, 444, 445, 446, 940, 0, 448, 449, 450, - 451, 452, 453, 454, 0, 455, 456, 457, 458, 459, - 460, 461, 0, 0, 462, 0, 0, 463, 464, 465, - 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, - 476, 477, 478, 479, 480, 481, 482, 483, 780, 0, - 582, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 94, 95, 96, 97, - 98, 99, 100, 101, 0, 102, 103, 104, 0, 0, - 0, 0, 0, 0, 0, 105, 106, 0, 107, 108, - 109, 781, 111, 112, 113, 782, 783, 784, 785, 786, - 0, 119, 120, 121, 122, 123, 124, 0, 0, 125, - 126, 787, 788, 129, 0, 130, 131, 132, 133, 789, - 0, 790, 0, 136, 137, 138, 139, 140, 141, 791, - 143, 144, 145, 0, 146, 147, 148, 149, 150, 151, - 0, 792, 153, 154, 155, 793, 794, 795, 796, 0, - 0, 797, 161, 162, 163, 164, 165, 166, 167, 798, - 799, 170, 0, 171, 0, 172, 173, 174, 175, 176, - 177, 0, 178, 179, 180, 181, 182, 0, 0, 183, - 184, 185, 186, 187, 0, 188, 189, 190, 0, 191, - 192, 193, 0, 194, 195, 196, 197, 800, 199, 200, - 201, 202, 203, 801, 1303, 205, 0, 206, 207, 802, - 209, 0, 210, 0, 211, 803, 0, 804, 214, 215, - 805, 806, 218, 0, 219, 0, 807, 808, 222, 0, - 223, 224, 225, 226, 227, 228, 229, 809, 231, 232, - 233, 234, 0, 235, 236, 237, 238, 239, 240, 0, - 241, 810, 811, 244, 245, 246, 247, 248, 812, 813, - 0, 814, 0, 252, 815, 816, 255, 817, 257, 258, - 259, 260, 261, 262, 0, 0, 263, 818, 265, 819, - 0, 267, 268, 269, 0, 0, 270, 271, 272, 273, - 274, 820, 276, 277, 278, 279, 280, 281, 282, 283, - 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, - 821, 822, 823, 297, 298, 299, 824, 0, 301, 302, - 825, 304, 0, 826, 306, 827, 308, 309, 310, 0, - 311, 312, 1304, 0, 313, 314, 315, 0, 0, 316, - 828, 829, 319, 830, 831, 322, 323, 324, 325, 326, - 327, 328, 329, 330, 331, 0, 332, 333, 832, 335, - 336, 833, 338, 339, 340, 0, 341, 342, 343, 344, - 345, 346, 0, 347, 348, 349, 834, 351, 352, 353, - 354, 0, 355, 356, 357, 358, 359, 360, 361, 362, - 363, 364, 365, 366, 367, 0, 368, 369, 835, 371, - 372, 373, 836, 375, 376, 377, 378, 379, 380, 381, - 382, 383, 384, 385, 0, 386, 387, 388, 389, 390, - 837, 392, 838, 394, 395, 396, 839, 398, 399, 840, - 401, 0, 402, 403, 404, 405, 406, 407, 408, 409, - 410, 411, 412, 413, 841, 415, 842, 417, 0, 418, - 419, 0, 420, 843, 422, 423, 424, 425, 426, 0, - 844, 845, 0, 0, 429, 430, 846, 432, 847, 1305, - 434, 435, 848, 437, 438, 439, 440, 441, 0, 0, - 442, 443, 444, 445, 446, 849, 0, 448, 449, 450, - 451, 452, 1197, 851, 0, 455, 852, 457, 458, 459, - 460, 461, 0, 0, 462, 0, 0, 463, 464, 465, - 466, 467, 468, 853, 854, 855, 856, 857, 858, 859, - 860, 861, 862, 863, 480, 481, 482, 483, 780, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 94, 95, 96, 97, - 98, 99, 100, 101, 0, 102, 103, 104, 3, 4, - 0, 0, 0, 0, 0, 105, 106, 0, 107, 108, - 109, 781, 111, 112, 113, 782, 783, 784, 785, 786, - 0, 119, 120, 121, 122, 123, 124, 0, 0, 125, - 126, 787, 788, 129, 0, 130, 131, 132, 133, 789, - 0, 790, 0, 136, 137, 138, 139, 140, 141, 791, - 143, 144, 145, 0, 146, 147, 148, 149, 150, 151, - 0, 792, 153, 154, 155, 793, 794, 795, 796, 0, - 0, 797, 161, 162, 163, 164, 165, 166, 167, 798, - 799, 170, 0, 171, 0, 172, 173, 174, 175, 176, - 177, 0, 178, 179, 180, 181, 182, 0, 0, 183, - 184, 185, 186, 187, 0, 188, 189, 190, 0, 191, - 192, 193, 0, 194, 195, 196, 197, 800, 199, 200, - 201, 202, 203, 801, 0, 205, 0, 206, 207, 802, - 209, 0, 210, 0, 211, 803, 0, 804, 214, 215, - 805, 806, 218, 0, 219, 0, 807, 808, 222, 0, - 223, 224, 225, 226, 227, 228, 229, 809, 231, 232, - 233, 234, 0, 235, 236, 237, 238, 239, 240, 0, - 241, 810, 811, 244, 245, 246, 247, 248, 812, 813, - 0, 814, 0, 252, 815, 816, 255, 817, 257, 258, - 259, 260, 261, 262, 0, 0, 263, 818, 265, 819, - 0, 267, 268, 269, 0, 0, 270, 271, 272, 273, - 274, 820, 276, 277, 278, 279, 280, 281, 282, 283, - 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, - 821, 822, 823, 297, 298, 299, 824, 0, 301, 302, - 825, 304, 0, 826, 306, 827, 308, 309, 310, 0, - 311, 312, 0, 0, 313, 314, 315, 0, 0, 316, - 828, 829, 319, 830, 831, 322, 323, 324, 325, 326, - 327, 328, 329, 330, 331, 0, 332, 333, 832, 335, - 336, 833, 338, 339, 340, 0, 341, 342, 343, 344, - 345, 346, 0, 347, 348, 349, 834, 351, 352, 353, - 354, 0, 355, 356, 357, 358, 359, 360, 361, 362, - 363, 364, 365, 366, 367, 0, 368, 369, 835, 371, - 372, 373, 836, 375, 376, 377, 378, 379, 380, 381, - 382, 383, 384, 385, 0, 386, 387, 388, 389, 390, - 837, 392, 838, 394, 395, 396, 839, 398, 399, 840, - 401, 0, 402, 403, 404, 405, 406, 407, 408, 409, - 410, 411, 412, 413, 841, 415, 842, 417, 0, 418, - 419, 0, 420, 843, 422, 423, 424, 425, 426, 0, - 844, 845, 0, 0, 429, 430, 846, 432, 847, 0, - 434, 435, 848, 437, 438, 439, 440, 441, 0, 0, - 442, 443, 444, 445, 446, 849, 0, 448, 449, 450, - 451, 452, 1197, 851, 0, 455, 852, 457, 458, 459, - 460, 461, 0, 0, 462, 0, 0, 463, 464, 465, - 466, 467, 468, 853, 854, 855, 856, 857, 858, 859, - 860, 861, 862, 863, 480, 481, 482, 483, 93, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 94, 95, 96, 97, - 98, 99, 100, 101, 0, 102, 103, 104, 0, 0, - 0, 0, 0, 0, 0, 105, 106, 0, 107, 108, - 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, - 0, 119, 120, 121, 122, 123, 124, 0, 0, 125, - 126, 127, 128, 129, 0, 130, 131, 132, 133, 134, - 0, 135, 0, 136, 137, 138, 139, 140, 141, 142, - 143, 144, 145, 0, 146, 147, 148, 149, 150, 151, - 0, 152, 153, 154, 155, 156, 157, 158, 159, 0, - 0, 160, 161, 162, 163, 164, 165, 166, 167, 168, - 169, 170, 0, 171, 0, 172, 173, 174, 175, 176, - 177, 0, 178, 179, 180, 181, 182, 0, 0, 183, - 184, 185, 186, 187, 0, 188, 189, 190, 0, 191, - 192, 193, 0, 194, 195, 196, 197, 198, 199, 200, - 201, 202, 203, 204, 0, 205, 0, 206, 207, 208, - 209, 0, 210, 0, 211, 212, 0, 213, 214, 215, - 216, 217, 218, 0, 219, 0, 220, 221, 222, 0, - 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, - 233, 234, 0, 235, 236, 237, 238, 239, 240, 0, - 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, - 0, 251, 0, 252, 253, 254, 255, 256, 257, 258, - 259, 260, 261, 262, 0, 0, 263, 264, 265, 266, - 0, 267, 268, 269, 0, 0, 270, 271, 272, 273, - 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, - 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, - 294, 295, 296, 297, 298, 299, 300, 0, 301, 302, - 303, 304, 0, 305, 306, 307, 308, 309, 310, 0, - 311, 312, 0, 0, 313, 314, 315, 0, 0, 316, - 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, - 327, 328, 329, 330, 331, 0, 332, 333, 334, 335, - 336, 337, 338, 339, 340, 0, 341, 342, 343, 344, - 345, 346, 0, 347, 348, 349, 350, 351, 352, 353, - 354, 0, 355, 356, 357, 358, 359, 360, 361, 362, - 363, 364, 365, 366, 367, 0, 368, 369, 370, 371, - 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, - 382, 383, 384, 385, 0, 386, 387, 388, 389, 390, - 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, - 401, 0, 402, 403, 404, 405, 406, 407, 408, 409, - 410, 411, 412, 413, 414, 415, 416, 417, 0, 418, - 419, 0, 420, 421, 422, 423, 424, 425, 426, 0, - 427, 428, 0, 0, 429, 430, 431, 432, 433, 0, - 434, 435, 436, 437, 438, 439, 440, 441, 0, 0, - 442, 443, 444, 445, 446, 447, 0, 448, 449, 450, - 451, 452, 453, 454, 0, 455, 456, 457, 458, 459, - 460, 461, 0, 0, 462, 0, 0, 463, 464, 465, - 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, - 476, 477, 478, 479, 480, 481, 482, 483, 506, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 94, 95, 96, 97, - 98, 99, 100, 101, 0, 102, 103, 104, 0, 0, - 0, 0, 0, 0, 0, 105, 106, 0, 107, 108, - 109, 0, 111, 112, 113, 114, 115, 0, 117, 118, - 0, 119, 120, 121, 122, 123, 124, 0, 0, 125, - 126, 127, 128, 129, 1502, 130, 131, 132, 133, 134, - 0, 0, 1503, 136, 137, 138, 139, 140, 141, 0, - 143, 144, 145, 1504, 146, 147, 148, 149, 150, 151, - 0, 0, 153, 154, 155, 0, 0, 0, 0, 0, - 0, 0, 161, 162, 163, 164, 165, 166, 167, 168, - 169, 170, 0, 171, 0, 172, 173, 174, 175, 176, - 177, 0, 178, 179, 180, 181, 182, 0, 0, 183, - 184, 185, 186, 187, 0, 188, 189, 190, 0, 191, - 192, 193, 0, 194, 195, 196, 197, 198, 199, 200, - 201, 202, 203, 204, 0, 205, 0, 206, 207, 208, - 209, 0, 210, 1505, 211, 0, 0, 0, 214, 215, - 509, 0, 218, 0, 219, 0, 220, 221, 222, 0, - 223, 224, 225, 226, 227, 1506, 229, 0, 231, 232, - 233, 234, 0, 235, 236, 237, 238, 239, 240, 0, - 241, 0, 243, 244, 245, 246, 247, 248, 249, 250, - 0, 251, 0, 252, 0, 0, 255, 0, 257, 258, - 259, 260, 261, 262, 0, 0, 263, 0, 265, 0, - 0, 267, 268, 269, 0, 0, 270, 271, 272, 273, - 274, 510, 276, 277, 278, 279, 280, 281, 282, 283, - 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, - 294, 0, 296, 297, 298, 299, 300, 0, 301, 302, - 0, 304, 0, 305, 306, 307, 308, 309, 310, 0, - 311, 312, 0, 0, 313, 314, 315, 0, 0, 316, - 317, 0, 319, 0, 321, 322, 323, 324, 325, 326, - 327, 328, 329, 330, 331, 0, 332, 333, 334, 335, - 336, 337, 338, 339, 340, 1507, 341, 342, 343, 344, - 345, 346, 0, 347, 348, 349, 350, 351, 352, 353, - 354, 0, 355, 356, 357, 358, 359, 360, 361, 362, - 363, 364, 365, 366, 367, 0, 368, 369, 0, 371, - 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, - 382, 383, 384, 385, 0, 386, 387, 388, 389, 390, - 0, 392, 393, 394, 395, 396, 0, 398, 399, 400, - 401, 0, 402, 403, 404, 405, 406, 407, 408, 409, - 410, 411, 412, 413, 512, 415, 416, 417, 0, 418, - 419, 0, 420, 0, 422, 423, 424, 425, 426, 0, - 427, 428, 0, 0, 429, 430, 431, 432, 433, 0, - 434, 435, 436, 437, 438, 439, 440, 441, 0, 1508, - 442, 443, 444, 445, 446, 0, 0, 448, 449, 450, - 451, 452, 453, 454, 0, 455, 0, 457, 458, 459, - 460, 461, 0, 0, 462, 0, 0, 463, 464, 465, - 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, - 476, 477, 478, 479, 480, 481, 482, 483, 506, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 94, 95, 96, 97, - 98, 99, 100, 101, 0, 102, 103, 104, 0, 0, - 0, 0, 0, 0, 0, 105, 106, 0, 107, 108, - 109, 0, 111, 112, 113, 114, 115, 0, 117, 118, - 0, 119, 120, 121, 122, 123, 124, 0, 0, 125, - 126, 127, 128, 129, 1502, 130, 131, 132, 133, 134, - 0, 0, 0, 136, 137, 138, 139, 140, 141, 0, - 143, 144, 145, 1504, 146, 147, 148, 149, 150, 151, - 0, 0, 153, 154, 155, 0, 0, 0, 0, 0, - 0, 0, 161, 162, 163, 164, 165, 166, 167, 168, - 169, 170, 0, 171, 0, 172, 173, 174, 175, 176, - 177, 0, 178, 179, 180, 181, 182, 0, 0, 183, - 184, 185, 186, 187, 0, 188, 189, 190, 0, 191, - 192, 193, 0, 194, 195, 196, 197, 198, 199, 200, - 201, 202, 203, 204, 0, 205, 0, 206, 207, 208, - 209, 0, 210, 1505, 211, 0, 0, 0, 214, 215, - 509, 0, 218, 0, 219, 0, 220, 221, 222, 0, - 223, 224, 225, 226, 227, 228, 229, 0, 231, 232, - 233, 234, 0, 235, 236, 237, 238, 239, 240, 0, - 241, 0, 243, 244, 245, 246, 247, 248, 249, 250, - 0, 251, 0, 252, 0, 0, 255, 0, 257, 258, - 259, 260, 261, 262, 0, 0, 263, 0, 265, 1968, - 0, 267, 268, 269, 0, 0, 270, 271, 272, 273, - 274, 510, 276, 277, 278, 279, 280, 281, 282, 283, - 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, - 294, 0, 296, 297, 298, 299, 300, 0, 301, 302, - 0, 304, 0, 305, 306, 307, 308, 309, 310, 0, - 311, 312, 0, 0, 313, 314, 315, 0, 0, 316, - 317, 0, 319, 0, 321, 322, 323, 324, 325, 326, - 327, 328, 329, 330, 331, 0, 332, 333, 334, 335, - 336, 337, 338, 339, 340, 1507, 341, 342, 343, 344, - 345, 346, 0, 347, 348, 349, 350, 351, 352, 353, - 354, 0, 355, 356, 357, 358, 359, 360, 361, 362, - 363, 364, 365, 366, 367, 0, 368, 369, 0, 371, - 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, - 382, 383, 384, 385, 0, 386, 387, 388, 389, 390, - 0, 392, 393, 394, 395, 396, 0, 398, 399, 400, - 401, 0, 402, 403, 404, 405, 406, 407, 408, 409, - 410, 411, 412, 413, 512, 415, 416, 417, 0, 418, - 419, 0, 420, 0, 422, 423, 424, 425, 426, 0, - 427, 428, 0, 0, 429, 430, 431, 432, 433, 0, - 434, 435, 436, 437, 438, 439, 440, 441, 0, 1508, - 442, 443, 444, 445, 446, 0, 0, 448, 449, 450, - 451, 452, 453, 454, 0, 455, 0, 457, 458, 459, - 460, 461, 0, 0, 462, 0, 0, 463, 464, 465, - 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, - 476, 477, 478, 479, 480, 481, 482, 483, 506, 0, - 507, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 94, 95, 96, 97, - 98, 99, 100, 101, 0, 102, 103, 104, 3, 4, - 0, 0, 0, 0, 0, 105, 106, 0, 107, 108, - 109, 0, 111, 112, 113, 114, 115, 0, 117, 118, - 0, 119, 120, 121, 122, 123, 124, 0, 0, 125, - 126, 127, 128, 129, 0, 130, 131, 132, 133, 134, - 0, 0, 0, 136, 137, 138, 139, 140, 141, 0, - 143, 144, 145, 0, 146, 147, 148, 149, 150, 151, - 0, 0, 153, 154, 155, 0, 0, 0, 0, 0, - 0, 0, 161, 162, 163, 164, 165, 166, 167, 168, - 169, 170, 0, 171, 0, 172, 173, 174, 175, 176, - 177, 0, 178, 179, 180, 181, 182, 0, 0, 183, - 184, 185, 186, 187, 0, 188, 189, 190, 0, 191, - 192, 193, 0, 194, 195, 196, 197, 198, 199, 200, - 201, 202, 203, 204, 0, 205, 0, 206, 207, 208, - 209, 0, 210, 0, 211, 0, 0, 0, 214, 215, - 509, 0, 218, 0, 219, 0, 220, 221, 222, 0, - 223, 224, 225, 226, 227, 228, 229, 0, 231, 232, - 233, 234, 0, 235, 236, 237, 238, 239, 240, 0, - 241, 0, 243, 244, 245, 246, 247, 248, 249, 250, - 0, 251, 0, 252, 0, 0, 255, 0, 257, 258, - 259, 260, 261, 262, 0, 0, 263, 0, 265, 0, - 0, 267, 268, 269, 0, 0, 270, 271, 272, 273, - 274, 510, 276, 277, 278, 279, 280, 281, 282, 283, - 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, - 294, 0, 296, 297, 298, 299, 300, 0, 301, 302, - 0, 304, 0, 305, 306, 307, 308, 309, 310, 0, - 311, 312, 0, 0, 313, 314, 315, 0, 0, 316, - 317, 0, 319, 0, 321, 322, 323, 324, 325, 326, - 327, 328, 329, 330, 331, 0, 332, 333, 334, 335, - 336, 337, 338, 339, 340, 0, 341, 342, 343, 344, - 345, 346, 0, 347, 348, 349, 350, 351, 352, 353, - 354, 0, 355, 356, 357, 358, 359, 360, 361, 362, - 363, 364, 365, 366, 367, 0, 368, 369, 0, 371, - 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, - 382, 383, 384, 385, 0, 386, 387, 388, 389, 390, - 0, 392, 393, 394, 395, 396, 0, 398, 399, 400, - 401, 0, 402, 403, 404, 405, 406, 407, 408, 409, - 410, 411, 412, 413, 512, 415, 416, 417, 0, 418, - 419, 0, 420, 0, 422, 423, 424, 425, 426, 0, - 427, 428, 0, 0, 429, 430, 431, 432, 433, 0, - 434, 435, 436, 437, 438, 439, 440, 441, 0, 0, - 442, 443, 444, 445, 446, 0, 0, 448, 449, 450, - 451, 452, 453, 454, 0, 455, 0, 457, 458, 459, - 460, 461, 0, 0, 462, 0, 0, 463, 464, 465, - 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, - 476, 477, 478, 479, 480, 481, 482, 483, 694, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 94, 95, 96, 97, - 98, 99, 100, 101, 0, 102, 103, 104, 0, 0, - 0, 0, 0, -793, 0, 105, 106, 0, 107, 108, - 109, 695, 111, 112, 113, 0, 696, 697, 698, 699, - 0, 119, 120, 121, 122, 123, 124, 0, 0, 125, - 126, 700, 701, 129, 0, 130, 131, 132, 133, 0, - 0, 702, 0, 136, 137, 138, 139, 140, 141, 703, - 143, 144, 145, 0, 146, 147, 148, 149, 150, 151, - 0, 704, 153, 154, 155, 705, 706, 707, 708, 0, - 0, 709, 161, 162, 163, 164, 165, 166, 167, 710, - 711, 170, 0, 171, 0, 172, 173, 174, 175, 176, - 177, 0, 178, 179, 180, 181, 182, 0, 0, 183, - 184, 712, 186, 187, 0, 188, 189, 190, 0, 191, - 192, 193, 0, 194, 195, 196, 197, 0, 199, 200, - 201, 202, 203, 0, 0, 205, 0, 206, 207, 713, - 209, 0, 210, 0, 211, 714, 0, 715, 214, 215, - -793, 716, 218, 0, 219, 0, 0, 0, 222, 0, - 223, 224, 225, 226, 227, 228, 229, 718, 231, 232, - 233, 234, 0, 235, 236, 237, 238, 239, 240, 0, - 241, 719, 0, 244, 245, 246, 247, 248, 720, 721, - 0, 722, 0, 252, 723, 724, 255, 725, 257, 258, - 259, 260, 261, 262, 0, 0, 263, 726, 265, 727, - 0, 267, 268, 269, 0, 0, 270, 271, 272, 273, - 274, 728, 276, 277, 278, 279, 280, 281, 282, 283, - 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, - 729, 730, 731, 297, 298, 299, 0, 0, 301, 302, - 732, 304, 0, 0, 306, 733, 308, 309, 310, 0, - 311, 312, 0, 0, 313, 314, 315, 0, 0, 316, - 0, 734, 319, 735, 0, 322, 323, 324, 325, 326, - 327, 328, 329, 330, 331, 0, 332, 333, 0, 335, - 336, 0, 338, 339, 340, 0, 341, 342, 343, 344, - 345, 346, 0, 347, 348, 349, 736, 351, 352, 353, - 354, 0, 355, 356, 357, 358, 359, 360, 361, 362, - 363, 364, 365, 366, 367, 0, 368, 369, 737, 371, - 372, 373, 738, 375, 376, 377, 378, 379, 380, 381, - 382, 383, 384, 385, 0, 386, 387, 388, 389, 390, - 739, 392, 740, 394, 395, 396, 741, 398, 399, 742, - 401, 0, 402, 403, 404, 405, 406, 407, 408, 409, - 410, 411, 412, 413, 743, 415, 0, 417, 0, 418, - 419, 0, 420, 744, 422, 423, 424, 425, 426, 0, - 745, 746, 0, 0, 429, 430, 0, 432, 0, 0, - 434, 435, 747, 437, 438, 439, 440, 441, 0, 0, - 442, 443, 444, 445, 446, 748, 0, 448, 449, 450, - 451, 452, 0, 749, 0, 455, 750, 457, 458, 459, - 460, 461, 0, 0, 462, 0, 0, 463, 464, 465, - 466, 467, 468, 506, 0, 507, 0, 0, 0, 0, - 0, 0, 0, 0, 480, 481, 482, 483, 0, 0, - 0, 94, 95, 96, 97, 98, 99, 100, 101, 508, - 102, 103, 104, 0, 0, 0, 0, 0, 0, 0, - 105, 106, 0, 107, 108, 109, 0, 111, 112, 113, - 114, 115, 0, 117, 118, 0, 119, 120, 121, 122, - 123, 124, 0, 0, 125, 126, 127, 128, 129, 0, - 130, 131, 132, 133, 134, 0, 0, 0, 136, 137, - 138, 139, 140, 141, 0, 143, 144, 145, 0, 146, - 147, 148, 149, 150, 151, 0, 0, 153, 154, 155, - 0, 0, 0, 0, 0, 0, 0, 161, 162, 163, - 164, 165, 166, 167, 168, 169, 170, 0, 171, 0, - 172, 173, 174, 175, 176, 177, 0, 178, 179, 180, - 181, 182, 0, 0, 183, 184, 185, 186, 187, 0, - 188, 189, 190, 0, 191, 192, 193, 0, 194, 195, - 196, 197, 198, 199, 200, 201, 202, 203, 204, 0, - 205, 0, 206, 207, 208, 209, 0, 210, 0, 211, - 0, 0, 0, 214, 215, 509, 0, 218, 0, 219, - 0, 220, 221, 222, 0, 223, 224, 225, 226, 227, - 228, 229, 0, 231, 232, 233, 234, 0, 235, 236, - 237, 238, 239, 240, 0, 241, 0, 243, 244, 245, - 246, 247, 248, 249, 250, 0, 251, 0, 252, 0, - 0, 255, 0, 257, 258, 259, 260, 261, 262, 0, - 0, 263, 0, 265, 0, 0, 267, 268, 269, 0, - 0, 270, 271, 272, 273, 274, 510, 276, 277, 278, - 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, - 289, 290, 291, 292, 293, 294, 0, 296, 297, 298, - 299, 300, 0, 301, 302, 0, 304, 0, 305, 306, - 307, 308, 309, 310, 0, 311, 312, 0, 0, 313, - 314, 315, 0, 0, 316, 317, 0, 319, 0, 321, - 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, - 0, 332, 333, 334, 335, 336, 337, 511, 339, 340, - 0, 341, 342, 343, 344, 345, 346, 0, 347, 348, - 349, 350, 351, 352, 353, 354, 0, 355, 356, 357, - 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, - 0, 368, 369, 0, 371, 372, 373, 374, 375, 376, - 377, 378, 379, 380, 381, 382, 383, 384, 385, 0, - 386, 387, 388, 389, 390, 0, 392, 393, 394, 395, - 396, 0, 398, 399, 400, 401, 0, 402, 403, 404, - 405, 406, 407, 408, 409, 410, 411, 412, 413, 512, - 415, 416, 417, 0, 418, 419, 0, 420, 0, 422, - 423, 424, 425, 426, 0, 427, 428, 0, 0, 429, - 430, 431, 432, 433, 0, 434, 435, 436, 437, 438, - 439, 440, 441, 0, 0, 442, 443, 444, 445, 446, - 0, 0, 448, 449, 450, 451, 452, 453, 454, 0, - 455, 0, 457, 458, 459, 460, 461, 0, 0, 462, - 0, 0, 463, 464, 465, 466, 467, 468, 469, 470, - 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, - 481, 482, 483, 506, 0, 507, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 482, 483, 0, 507, 35, 508, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 36, 0, 0, 94, 95, 96, 97, 98, 99, 100, 101, 0, 102, 103, 104, 0, 0, 0, 0, 0, 0, 0, 105, 106, 0, 107, 108, 109, 0, 111, 112, 113, @@ -8032,18 +5067,18 @@ static const yytype_int16 yytable[] = 188, 189, 190, 0, 191, 192, 193, 0, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 0, 205, 0, 206, 207, 208, 209, 0, 210, 0, 211, - 0, 0, 0, 214, 215, 509, 0, 218, 0, 219, + 0, 0, 0, 214, 215, 510, 0, 218, 0, 219, 0, 220, 221, 222, 0, 223, 224, 225, 226, 227, 228, 229, 0, 231, 232, 233, 234, 0, 235, 236, 237, 238, 239, 240, 0, 241, 0, 243, 244, 245, 246, 247, 248, 249, 250, 0, 251, 0, 252, 0, 0, 255, 0, 257, 258, 259, 260, 261, 262, 0, 0, 263, 0, 265, 0, 0, 267, 268, 269, 0, - 0, 270, 271, 272, 273, 274, 510, 276, 277, 278, + 0, 270, 271, 272, 273, 274, 511, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 0, 296, 297, 298, 299, 300, 0, 301, 302, 0, 304, 0, 305, 306, - 307, 308, 309, 310, 0, 311, 312, 0, 614, 313, + 307, 308, 309, 310, 0, 311, 312, 0, 0, 313, 314, 315, 0, 0, 316, 317, 0, 319, 0, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 335, 336, 337, 338, 339, 340, @@ -8054,7 +5089,7 @@ static const yytype_int16 yytable[] = 377, 378, 379, 380, 381, 382, 383, 384, 385, 0, 386, 387, 388, 389, 390, 0, 392, 393, 394, 395, 396, 0, 398, 399, 400, 401, 0, 402, 403, 404, - 405, 406, 407, 408, 409, 410, 411, 412, 413, 512, + 405, 406, 407, 408, 409, 410, 411, 412, 413, 513, 415, 416, 417, 0, 418, 419, 0, 420, 0, 422, 423, 424, 425, 426, 0, 427, 428, 0, 0, 429, 430, 431, 432, 433, 0, 434, 435, 436, 437, 438, @@ -8063,8 +5098,8 @@ static const yytype_int16 yytable[] = 455, 0, 457, 458, 459, 460, 461, 0, 0, 462, 0, 0, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, - 481, 482, 483, 506, 0, 507, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 481, 482, 483, 507, 0, 508, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 996, 0, 94, 95, 96, 97, 98, 99, 100, 101, 0, 102, 103, 104, 0, 0, 0, 0, 0, 0, 0, 105, 106, 0, 107, 108, 109, 0, 111, 112, 113, @@ -8080,62 +5115,14 @@ static const yytype_int16 yytable[] = 188, 189, 190, 0, 191, 192, 193, 0, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 0, 205, 0, 206, 207, 208, 209, 0, 210, 0, 211, - 0, 0, 0, 214, 215, 509, 0, 218, 0, 219, - 0, 220, 221, 222, 0, 223, 224, 225, 226, 227, - 657, 229, 0, 231, 232, 233, 234, 0, 235, 236, - 237, 238, 239, 240, 0, 241, 0, 243, 244, 245, - 246, 247, 248, 249, 250, 0, 251, 0, 252, 0, - 0, 255, 0, 257, 258, 259, 260, 261, 262, 0, - 0, 263, 0, 265, 0, 0, 267, 268, 269, 0, - 0, 270, 271, 272, 273, 274, 510, 276, 277, 278, - 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, - 289, 290, 291, 292, 293, 294, 0, 296, 297, 298, - 299, 300, 0, 301, 302, 0, 304, 0, 305, 306, - 307, 308, 309, 310, 0, 311, 312, 0, 614, 313, - 314, 315, 0, 0, 316, 317, 0, 319, 0, 321, - 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, - 0, 332, 333, 334, 335, 336, 337, 338, 339, 340, - 0, 341, 342, 343, 344, 345, 346, 0, 347, 348, - 349, 350, 351, 352, 353, 354, 0, 355, 356, 357, - 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, - 0, 368, 369, 0, 371, 372, 373, 374, 375, 376, - 377, 378, 379, 380, 381, 382, 383, 384, 385, 0, - 386, 387, 388, 389, 390, 0, 392, 393, 394, 395, - 396, 0, 398, 399, 400, 401, 0, 402, 403, 404, - 405, 406, 407, 408, 409, 410, 411, 412, 413, 512, - 415, 416, 417, 0, 418, 419, 0, 420, 0, 422, - 423, 424, 425, 426, 0, 427, 428, 0, 0, 429, - 430, 431, 432, 433, 0, 434, 435, 436, 437, 438, - 439, 440, 441, 0, 0, 442, 443, 444, 445, 446, - 0, 0, 448, 449, 450, 451, 452, 453, 454, 0, - 455, 0, 457, 458, 459, 460, 461, 0, 0, 462, - 0, 0, 463, 464, 465, 466, 467, 468, 469, 470, - 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, - 481, 482, 483, 506, 0, 507, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 94, 95, 96, 97, 98, 99, 100, 101, 685, - 102, 103, 104, 0, 0, 0, 0, 0, 0, 0, - 105, 106, 0, 107, 108, 109, 0, 111, 112, 113, - 114, 115, 0, 117, 118, 0, 119, 120, 121, 122, - 123, 124, 0, 0, 125, 126, 127, 128, 129, 0, - 130, 131, 132, 133, 134, 0, 0, 0, 136, 137, - 138, 139, 140, 141, 0, 143, 144, 145, 0, 146, - 147, 148, 149, 150, 151, 0, 0, 153, 154, 155, - 0, 0, 0, 0, 0, 0, 0, 161, 162, 163, - 164, 165, 166, 167, 168, 169, 170, 0, 171, 0, - 172, 173, 174, 175, 176, 177, 0, 178, 179, 180, - 181, 182, 0, 0, 183, 184, 185, 186, 187, 0, - 188, 189, 190, 0, 191, 192, 193, 0, 194, 195, - 196, 197, 198, 199, 200, 201, 202, 203, 204, 0, - 205, 0, 206, 207, 208, 209, 0, 210, 0, 211, - 0, 0, 0, 214, 215, 509, 0, 218, 0, 219, + 0, 0, 0, 214, 215, 510, 0, 218, 0, 219, 0, 220, 221, 222, 0, 223, 224, 225, 226, 227, 228, 229, 0, 231, 232, 233, 234, 0, 235, 236, 237, 238, 239, 240, 0, 241, 0, 243, 244, 245, 246, 247, 248, 249, 250, 0, 251, 0, 252, 0, 0, 255, 0, 257, 258, 259, 260, 261, 262, 0, 0, 263, 0, 265, 0, 0, 267, 268, 269, 0, - 0, 270, 271, 272, 273, 274, 510, 276, 277, 278, + 0, 270, 271, 272, 273, 274, 511, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 0, 296, 297, 298, 299, 300, 0, 301, 302, 0, 304, 0, 305, 306, @@ -8150,7 +5137,7 @@ static const yytype_int16 yytable[] = 377, 378, 379, 380, 381, 382, 383, 384, 385, 0, 386, 387, 388, 389, 390, 0, 392, 393, 394, 395, 396, 0, 398, 399, 400, 401, 0, 402, 403, 404, - 405, 406, 407, 408, 409, 410, 411, 412, 413, 512, + 405, 406, 407, 408, 409, 410, 411, 412, 413, 513, 415, 416, 417, 0, 418, 419, 0, 420, 0, 422, 423, 424, 425, 426, 0, 427, 428, 0, 0, 429, 430, 431, 432, 433, 0, 434, 435, 436, 437, 438, @@ -8159,56 +5146,8 @@ static const yytype_int16 yytable[] = 455, 0, 457, 458, 459, 460, 461, 0, 0, 462, 0, 0, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, - 481, 482, 483, 506, 0, 507, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 94, 95, 96, 97, 98, 99, 100, 101, 0, - 102, 103, 104, 0, 0, 0, 0, 0, 0, 0, - 105, 106, 0, 107, 108, 109, 0, 111, 112, 113, - 114, 115, 0, 117, 118, 0, 119, 120, 121, 122, - 123, 124, 0, 0, 125, 126, 127, 128, 129, 0, - 130, 131, 132, 133, 134, 0, 0, 0, 136, 137, - 138, 139, 140, 141, 0, 143, 144, 145, 0, 146, - 147, 148, 149, 150, 151, 0, 0, 153, 154, 155, - 0, 0, 0, 0, 0, 0, 0, 161, 162, 163, - 164, 165, 166, 167, 168, 169, 170, 0, 171, 0, - 172, 173, 174, 175, 176, 177, 0, 178, 179, 180, - 181, 182, 0, 0, 183, 184, 185, 186, 187, 0, - 188, 189, 190, 0, 191, 192, 193, 0, 194, 195, - 196, 197, 198, 199, 200, 201, 202, 203, 204, 0, - 205, 0, 206, 207, 208, 209, 0, 210, 0, 211, - 0, 0, 0, 214, 215, 509, 0, 1802, 0, 219, - 0, 220, 221, 222, 0, 223, 224, 225, 226, 227, - 228, 229, 0, 231, 232, 233, 234, 0, 235, 236, - 237, 238, 239, 240, 0, 241, 0, 243, 244, 245, - 246, 247, 248, 249, 250, 0, 251, 0, 252, 0, - 0, 255, 0, 257, 258, 259, 260, 261, 262, 0, - 0, 263, 0, 265, 0, 0, 267, 268, 1803, 0, - 0, 270, 271, 272, 273, 274, 510, 276, 277, 278, - 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, - 289, 290, 291, 292, 293, 294, 0, 296, 297, 298, - 299, 300, 0, 301, 302, 0, 304, 0, 305, 306, - 307, 308, 309, 310, 0, 311, 312, 0, 0, 313, - 314, 315, 0, 0, 316, 317, 0, 319, 0, 321, - 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, - 0, 332, 333, 334, 335, 336, 337, 338, 339, 340, - 0, 341, 342, 343, 344, 345, 346, 0, 347, 348, - 349, 350, 351, 352, 353, 354, 0, 355, 356, 357, - 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, - 0, 368, 369, 0, 371, 372, 373, 374, 375, 376, - 377, 378, 379, 380, 381, 382, 383, 384, 385, 0, - 386, 387, 388, 389, 390, 0, 392, 393, 394, 395, - 396, 0, 398, 399, 400, 401, 0, 402, 403, 404, - 405, 406, 407, 408, 409, 410, 411, 412, 413, 512, - 415, 416, 417, 0, 418, 419, 1804, 420, 0, 422, - 1805, 424, 1806, 426, 0, 427, 428, 0, 0, 429, - 430, 431, 432, 433, 0, 434, 435, 436, 437, 438, - 439, 440, 441, 0, 0, 442, 443, 1807, 445, 446, - 0, 0, 448, 449, 450, 451, 452, 453, 454, 0, - 455, 0, 457, 458, 459, 460, 461, 0, 0, 462, - 0, 0, 463, 464, 465, 466, 467, 468, 469, 470, - 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, - 481, 482, 483, 506, 2774, 0, 0, 0, 0, 2775, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 481, 482, 483, 507, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 2658, 0, 94, 95, 96, 97, 98, 99, 100, 101, 0, 102, 103, 104, 0, 0, 0, 0, 0, 0, 0, 105, 106, 0, 107, 108, 109, 0, 111, 112, 113, @@ -8224,14 +5163,14 @@ static const yytype_int16 yytable[] = 188, 189, 190, 0, 191, 192, 193, 0, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 0, 205, 0, 206, 207, 208, 209, 0, 210, 0, 211, - 0, 0, 0, 214, 215, 509, 0, 218, 0, 219, + 0, 0, 0, 214, 215, 510, 0, 218, 0, 219, 0, 220, 221, 222, 0, 223, 224, 225, 226, 227, 228, 229, 0, 231, 232, 233, 234, 0, 235, 236, 237, 238, 239, 240, 0, 241, 0, 243, 244, 245, 246, 247, 248, 249, 250, 0, 251, 0, 252, 0, 0, 255, 0, 257, 258, 259, 260, 261, 262, 0, 0, 263, 0, 265, 0, 0, 267, 268, 269, 0, - 0, 270, 271, 272, 273, 274, 510, 276, 277, 278, + 0, 270, 271, 272, 273, 274, 511, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 0, 296, 297, 298, 299, 300, 0, 301, 302, 0, 304, 0, 305, 306, @@ -8246,7 +5185,7 @@ static const yytype_int16 yytable[] = 377, 378, 379, 380, 381, 382, 383, 384, 385, 0, 386, 387, 388, 389, 390, 0, 392, 393, 394, 395, 396, 0, 398, 399, 400, 401, 0, 402, 403, 404, - 405, 406, 407, 408, 409, 410, 411, 412, 413, 512, + 405, 406, 407, 408, 409, 410, 411, 412, 413, 513, 415, 416, 417, 0, 418, 419, 0, 420, 0, 422, 423, 424, 425, 426, 0, 427, 428, 0, 0, 429, 430, 431, 432, 433, 0, 434, 435, 436, 437, 438, @@ -8255,8 +5194,8 @@ static const yytype_int16 yytable[] = 455, 0, 457, 458, 459, 460, 461, 0, 0, 462, 0, 0, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, - 481, 482, 483, 506, 0, 507, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 481, 482, 483, 507, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1733, 0, 94, 95, 96, 97, 98, 99, 100, 101, 0, 102, 103, 104, 0, 0, 0, 0, 0, 0, 0, 105, 106, 0, 107, 108, 109, 0, 111, 112, 113, @@ -8272,14 +5211,14 @@ static const yytype_int16 yytable[] = 188, 189, 190, 0, 191, 192, 193, 0, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 0, 205, 0, 206, 207, 208, 209, 0, 210, 0, 211, - 0, 0, 0, 214, 215, 509, 0, 218, 0, 219, + 0, 0, 0, 214, 215, 510, 0, 218, 0, 219, 0, 220, 221, 222, 0, 223, 224, 225, 226, 227, 228, 229, 0, 231, 232, 233, 234, 0, 235, 236, 237, 238, 239, 240, 0, 241, 0, 243, 244, 245, 246, 247, 248, 249, 250, 0, 251, 0, 252, 0, 0, 255, 0, 257, 258, 259, 260, 261, 262, 0, 0, 263, 0, 265, 0, 0, 267, 268, 269, 0, - 0, 270, 271, 272, 273, 274, 510, 276, 277, 278, + 0, 270, 271, 272, 273, 274, 511, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 0, 296, 297, 298, 299, 300, 0, 301, 302, 0, 304, 0, 305, 306, @@ -8294,7 +5233,7 @@ static const yytype_int16 yytable[] = 377, 378, 379, 380, 381, 382, 383, 384, 385, 0, 386, 387, 388, 389, 390, 0, 392, 393, 394, 395, 396, 0, 398, 399, 400, 401, 0, 402, 403, 404, - 405, 406, 407, 408, 409, 410, 411, 412, 413, 512, + 405, 406, 407, 408, 409, 410, 411, 412, 413, 513, 415, 416, 417, 0, 418, 419, 0, 420, 0, 422, 423, 424, 425, 426, 0, 427, 428, 0, 0, 429, 430, 431, 432, 433, 0, 434, 435, 436, 437, 438, @@ -8303,8 +5242,8 @@ static const yytype_int16 yytable[] = 455, 0, 457, 458, 459, 460, 461, 0, 0, 462, 0, 0, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, - 481, 482, 483, 506, 0, 582, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 481, 482, 483, 507, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1876, 0, 94, 95, 96, 97, 98, 99, 100, 101, 0, 102, 103, 104, 0, 0, 0, 0, 0, 0, 0, 105, 106, 0, 107, 108, 109, 0, 111, 112, 113, @@ -8320,14 +5259,14 @@ static const yytype_int16 yytable[] = 188, 189, 190, 0, 191, 192, 193, 0, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 0, 205, 0, 206, 207, 208, 209, 0, 210, 0, 211, - 0, 0, 0, 214, 215, 509, 0, 218, 0, 219, + 0, 0, 0, 214, 215, 510, 0, 218, 0, 219, 0, 220, 221, 222, 0, 223, 224, 225, 226, 227, 228, 229, 0, 231, 232, 233, 234, 0, 235, 236, 237, 238, 239, 240, 0, 241, 0, 243, 244, 245, 246, 247, 248, 249, 250, 0, 251, 0, 252, 0, 0, 255, 0, 257, 258, 259, 260, 261, 262, 0, 0, 263, 0, 265, 0, 0, 267, 268, 269, 0, - 0, 270, 271, 272, 273, 274, 510, 276, 277, 278, + 0, 270, 271, 272, 273, 274, 511, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 0, 296, 297, 298, 299, 300, 0, 301, 302, 0, 304, 0, 305, 306, @@ -8342,7 +5281,7 @@ static const yytype_int16 yytable[] = 377, 378, 379, 380, 381, 382, 383, 384, 385, 0, 386, 387, 388, 389, 390, 0, 392, 393, 394, 395, 396, 0, 398, 399, 400, 401, 0, 402, 403, 404, - 405, 406, 407, 408, 409, 410, 411, 412, 413, 512, + 405, 406, 407, 408, 409, 410, 411, 412, 413, 513, 415, 416, 417, 0, 418, 419, 0, 420, 0, 422, 423, 424, 425, 426, 0, 427, 428, 0, 0, 429, 430, 431, 432, 433, 0, 434, 435, 436, 437, 438, @@ -8351,4982 +5290,4225 @@ static const yytype_int16 yytable[] = 455, 0, 457, 458, 459, 460, 461, 0, 0, 462, 0, 0, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, - 481, 482, 483, 506, 0, 0, 0, 0, 0, 0, + 481, 482, 483, 0, 0, 2506, 1307, 583, 0, 0, + 1693, 892, 0, 0, 0, 0, 0, 1694, 0, 2630, + 1695, 1696, 1697, 94, 95, 96, 97, 98, 99, 100, + 101, 1135, 102, 103, 104, 1136, 1137, 1138, 1139, 1140, + 1141, 1142, 105, 106, 1143, 107, 108, 109, 2507, 111, + 112, 113, 0, 701, 2508, 703, 704, 1144, 119, 120, + 121, 122, 123, 124, 1145, 1146, 125, 126, 705, 706, + 129, 1147, 130, 131, 132, 133, 0, 1148, 2509, 1149, + 136, 137, 138, 139, 140, 141, 2510, 143, 144, 145, + 1150, 146, 147, 148, 149, 150, 151, 1151, 2511, 153, + 154, 155, 2512, 2513, 2514, 2515, 1152, 1153, 2516, 161, + 162, 163, 164, 165, 166, 167, 715, 716, 170, 1154, + 171, 1155, 172, 173, 174, 175, 176, 177, 1156, 178, + 179, 180, 181, 182, 1157, 1158, 183, 184, 717, 186, + 187, 1159, 188, 189, 190, 1160, 191, 192, 193, 1161, + 194, 195, 196, 197, 0, 199, 200, 201, 202, 203, + 0, 1162, 205, 1163, 206, 207, 718, 209, 1164, 210, + 1165, 211, 2517, 1166, 2518, 214, 215, 2519, 2520, 218, + 1167, 219, 1168, 0, 0, 222, 1169, 223, 224, 225, + 226, 227, 228, 229, 2521, 231, 232, 233, 234, 1170, + 235, 236, 237, 238, 239, 240, 1171, 241, 2522, 0, + 244, 245, 246, 247, 248, 725, 726, 1172, 727, 1173, + 252, 2523, 2524, 255, 2525, 257, 258, 259, 260, 261, + 262, 1174, 1175, 263, 2526, 265, 2527, 1176, 267, 268, + 269, 1177, 1178, 270, 271, 272, 273, 274, 2528, 276, + 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, + 287, 288, 289, 290, 291, 292, 293, 734, 2529, 736, + 297, 298, 299, 2530, 1179, 301, 302, 2531, 304, 1180, + 0, 306, 738, 308, 309, 310, 1181, 311, 312, 1182, + 1183, 2532, 314, 315, 1184, 1185, 316, 0, 2533, 319, + 2534, 0, 322, 323, 324, 325, 326, 327, 328, 329, + 330, 331, 1186, 332, 333, 0, 335, 336, 0, 338, + 339, 340, 1187, 341, 342, 343, 344, 345, 346, 1188, + 347, 348, 349, 741, 351, 352, 353, 354, 1189, 355, + 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, + 366, 367, 1190, 368, 369, 2535, 371, 372, 373, 743, + 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, + 385, 1191, 386, 387, 388, 389, 390, 2536, 392, 2537, + 394, 395, 396, 2538, 398, 399, 747, 401, 1192, 402, + 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, + 413, 2539, 415, 0, 417, 1193, 418, 419, 1194, 420, + 2540, 422, 423, 424, 425, 426, 1195, 750, 751, 1196, + 1197, 429, 430, 0, 432, 0, 1198, 434, 435, 2541, + 437, 438, 439, 440, 441, 1199, 1200, 442, 443, 444, + 445, 446, 2542, 1201, 448, 449, 450, 451, 452, 0, + 754, 1203, 455, 2543, 457, 458, 459, 460, 461, 1204, + 1205, 462, 1206, 1207, 463, 464, 465, 466, 467, 468, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 94, 95, 96, 97, 98, 99, 100, 101, 589, - 102, 103, 104, 0, 0, 0, 0, 0, 0, 0, - 105, 106, 0, 107, 108, 109, 0, 111, 112, 113, - 114, 115, 0, 117, 118, 0, 119, 120, 121, 122, - 123, 124, 0, 0, 125, 126, 127, 128, 129, 0, - 130, 131, 132, 133, 134, 0, 0, 0, 136, 137, - 138, 139, 140, 141, 0, 143, 144, 145, 0, 146, - 147, 148, 149, 150, 151, 0, 0, 153, 154, 155, - 0, 0, 0, 0, 0, 0, 0, 161, 162, 163, - 164, 165, 166, 167, 168, 169, 170, 0, 171, 0, - 172, 173, 174, 175, 176, 177, 0, 178, 179, 180, - 181, 182, 0, 0, 183, 184, 185, 186, 187, 0, - 188, 189, 190, 0, 191, 192, 193, 0, 194, 195, - 196, 197, 198, 199, 200, 201, 202, 203, 204, 0, - 205, 0, 206, 207, 208, 209, 0, 210, 0, 211, - 0, 0, 0, 214, 215, 509, 0, 218, 0, 219, - 0, 220, 221, 222, 0, 223, 224, 225, 226, 227, - 228, 229, 0, 231, 232, 233, 234, 0, 235, 236, - 237, 238, 239, 240, 0, 241, 0, 243, 244, 245, - 246, 247, 248, 249, 250, 0, 251, 0, 252, 0, - 0, 255, 0, 257, 258, 259, 260, 261, 262, 0, - 0, 263, 0, 265, 0, 0, 267, 268, 269, 0, - 0, 270, 271, 272, 273, 274, 510, 276, 277, 278, - 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, - 289, 290, 291, 292, 293, 294, 0, 296, 297, 298, - 299, 300, 0, 301, 302, 0, 304, 0, 305, 306, - 307, 308, 309, 310, 0, 311, 312, 0, 0, 313, - 314, 315, 0, 0, 316, 317, 0, 319, 0, 321, - 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, - 0, 332, 333, 334, 335, 336, 337, 338, 339, 340, - 0, 341, 342, 343, 344, 345, 346, 0, 347, 348, - 349, 350, 351, 352, 353, 354, 0, 355, 356, 357, - 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, - 0, 368, 369, 0, 371, 372, 373, 374, 375, 376, - 377, 378, 379, 380, 381, 382, 383, 384, 385, 0, - 386, 387, 388, 389, 390, 0, 392, 393, 394, 395, - 396, 0, 398, 399, 400, 401, 0, 402, 403, 404, - 405, 406, 407, 408, 409, 410, 411, 412, 413, 512, - 415, 416, 417, 0, 418, 419, 0, 420, 0, 422, - 423, 424, 425, 426, 0, 590, 428, 0, 0, 591, - 430, 431, 432, 433, 0, 434, 435, 436, 437, 438, - 439, 440, 441, 0, 0, 442, 443, 444, 445, 446, - 0, 0, 448, 449, 450, 451, 452, 453, 454, 0, - 455, 0, 457, 458, 459, 460, 461, 0, 0, 462, - 0, 0, 463, 464, 465, 466, 467, 468, 469, 470, - 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, - 481, 482, 483, 506, 0, 507, 0, 0, 0, 0, + 0, 480, 481, 482, 483, 0, 507, 0, 1698, 1699, + 1700, 1693, 2544, 2545, 1703, 1704, 1705, 1706, 1694, 0, + 0, 1695, 1696, 1697, 94, 95, 96, 97, 98, 99, + 100, 101, 0, 102, 103, 104, 0, 0, 0, 0, + 0, 0, 0, 105, 106, 0, 107, 108, 109, 0, + 111, 112, 113, 114, 115, 0, 117, 118, 0, 119, + 120, 121, 122, 123, 124, 0, 0, 125, 126, 127, + 128, 129, 0, 130, 131, 132, 133, 134, 0, 0, + 0, 136, 137, 138, 139, 140, 141, 0, 143, 144, + 145, 0, 146, 147, 148, 149, 150, 151, 0, 0, + 153, 154, 155, 0, 0, 0, 0, 0, 0, 0, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, + 0, 171, 0, 172, 173, 174, 175, 176, 177, 0, + 178, 179, 180, 181, 182, 0, 0, 183, 184, 185, + 186, 187, 0, 188, 189, 190, 0, 191, 192, 193, + 0, 194, 195, 196, 197, 198, 199, 200, 201, 202, + 203, 204, 0, 205, 0, 206, 207, 208, 209, 0, + 210, 0, 211, 0, 0, 0, 214, 215, 510, 0, + 218, 0, 219, 0, 220, 221, 222, 0, 223, 224, + 225, 226, 227, 228, 229, 0, 231, 232, 233, 234, + 0, 235, 236, 237, 238, 239, 240, 0, 241, 0, + 243, 244, 245, 246, 247, 248, 249, 250, 0, 251, + 0, 252, 0, 0, 255, 0, 257, 258, 259, 260, + 261, 262, 0, 0, 263, 0, 265, 0, 0, 267, + 268, 269, 0, 0, 270, 271, 272, 273, 274, 511, + 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, + 286, 287, 288, 289, 290, 291, 292, 293, 294, 0, + 296, 297, 298, 299, 300, 0, 301, 302, 0, 304, + 0, 305, 306, 307, 308, 309, 310, 0, 311, 312, + 0, 0, 313, 314, 315, 0, 0, 316, 317, 0, + 319, 0, 321, 322, 323, 324, 325, 326, 327, 328, + 329, 330, 331, 0, 332, 333, 334, 335, 336, 337, + 338, 339, 340, 0, 341, 342, 343, 344, 345, 346, + 0, 347, 348, 349, 350, 351, 352, 353, 354, 0, + 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, + 365, 366, 367, 0, 368, 369, 0, 371, 372, 373, + 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, + 384, 385, 0, 386, 387, 388, 389, 390, 0, 392, + 393, 394, 395, 396, 0, 398, 399, 400, 401, 0, + 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, + 412, 413, 513, 415, 416, 417, 0, 418, 419, 0, + 420, 0, 422, 423, 424, 425, 426, 0, 427, 428, + 0, 0, 429, 430, 431, 432, 433, 0, 434, 435, + 436, 437, 438, 439, 440, 441, 0, 0, 442, 443, + 444, 445, 446, 0, 0, 448, 449, 450, 451, 452, + 453, 454, 0, 455, 0, 457, 458, 459, 460, 461, + 0, 0, 462, 0, 0, 463, 464, 465, 466, 467, + 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, + 478, 479, 480, 481, 482, 483, 0, 0, 0, 1698, + 1699, 1700, 0, 1701, 1702, 1703, 1704, 1705, 1706, 1384, + 0, 0, 1385, 0, 0, 0, 1386, 1387, 1388, 1389, + 1390, 1391, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1392, 0, 1384, 0, + 0, 1385, 0, 0, 1394, 1386, 1387, 1388, 1389, 1390, + 1391, 1395, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1392, 0, 0, 0, 0, + 0, 0, 0, 1394, 1384, 0, 1396, 1385, 0, 0, + 1395, 1386, 1387, 1388, 1389, 1390, 1391, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 94, 95, 96, 97, 98, 99, 100, 101, 0, - 102, 103, 104, 0, 0, 0, 0, 0, 0, 0, - 105, 106, 0, 107, 108, 109, 0, 111, 112, 113, - 114, 115, 0, 117, 118, 0, 119, 120, 121, 122, - 123, 124, 0, 0, 125, 126, 127, 128, 129, 0, - 130, 131, 132, 133, 134, 0, 0, 0, 136, 137, - 138, 139, 140, 141, 0, 143, 144, 145, 0, 146, - 147, 148, 149, 150, 151, 0, 0, 153, 154, 155, - 0, 0, 0, 0, 0, 0, 0, 161, 162, 163, - 164, 165, 166, 167, 168, 169, 170, 0, 171, 0, - 172, 173, 174, 175, 176, 177, 0, 178, 179, 180, - 181, 182, 0, 0, 183, 184, 185, 186, 187, 0, - 188, 189, 190, 0, 191, 192, 193, 0, 194, 195, - 196, 197, 198, 199, 200, 201, 202, 203, 204, 0, - 205, 0, 206, 207, 208, 209, 0, 210, 0, 211, - 0, 0, 0, 214, 215, 509, 0, 218, 0, 219, - 0, 220, 221, 222, 0, 223, 224, 225, 226, 227, - 228, 229, 0, 231, 232, 233, 234, 0, 235, 236, - 237, 238, 239, 240, 0, 241, 0, 243, 244, 245, - 246, 247, 248, 249, 250, 0, 251, 0, 252, 0, - 0, 255, 0, 257, 258, 259, 260, 261, 262, 0, - 0, 263, 0, 265, 0, 0, 267, 268, 269, 0, - 0, 270, 271, 272, 273, 274, 510, 276, 277, 278, - 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, - 289, 290, 291, 292, 293, 294, 0, 296, 297, 298, - 299, 300, 0, 301, 302, 0, 304, 0, 305, 306, - 307, 308, 309, 310, 0, 311, 312, 0, 0, 313, - 314, 315, 0, 0, 316, 317, 0, 319, 0, 321, - 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, - 0, 332, 333, 334, 335, 336, 337, 338, 339, 340, - 0, 341, 342, 343, 344, 345, 346, 0, 347, 348, - 349, 350, 351, 352, 623, 354, 0, 355, 356, 357, - 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, - 0, 368, 369, 0, 371, 372, 373, 374, 375, 376, - 377, 378, 379, 380, 381, 382, 383, 384, 385, 0, - 386, 387, 388, 389, 390, 0, 392, 393, 394, 395, - 396, 0, 398, 399, 400, 401, 0, 402, 403, 404, - 405, 406, 407, 408, 409, 410, 411, 412, 413, 512, - 415, 416, 417, 0, 418, 419, 0, 420, 0, 422, - 423, 424, 425, 426, 0, 427, 428, 0, 0, 429, - 430, 431, 432, 433, 0, 434, 435, 436, 437, 438, - 439, 440, 441, 0, 0, 442, 443, 444, 445, 446, - 0, 0, 448, 449, 450, 451, 452, 453, 454, 0, - 455, 0, 457, 458, 459, 460, 461, 0, 0, 462, - 0, 0, 463, 464, 465, 466, 467, 468, 469, 470, - 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, - 481, 482, 483, 506, 0, 507, 0, 0, 0, 0, + 0, 1392, 0, 1384, 0, 1396, 1385, 0, 0, 1394, + 1386, 1387, 1388, 1389, 1390, 1391, 1395, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 94, 95, 96, 97, 98, 99, 100, 101, 0, - 102, 103, 104, 0, 0, 0, 0, 0, 0, 0, - 105, 106, 0, 107, 108, 109, 0, 111, 112, 113, - 114, 115, 0, 117, 118, 0, 119, 120, 121, 122, - 123, 124, 0, 0, 125, 126, 127, 128, 129, 0, - 130, 131, 132, 133, 134, 0, 0, 0, 136, 137, - 138, 139, 140, 141, 0, 143, 144, 145, 0, 146, - 147, 148, 149, 150, 151, 0, 0, 153, 154, 155, - 0, 0, 0, 0, 0, 0, 0, 161, 162, 163, - 164, 165, 166, 167, 168, 169, 170, 0, 171, 0, - 172, 173, 174, 175, 176, 177, 0, 178, 179, 180, - 181, 182, 0, 0, 183, 184, 185, 186, 187, 0, - 188, 189, 190, 0, 191, 192, 193, 0, 194, 195, - 196, 197, 198, 199, 200, 201, 202, 203, 204, 0, - 205, 0, 206, 207, 208, 209, 0, 210, 0, 211, - 0, 0, 0, 214, 215, 509, 0, 218, 0, 219, - 0, 220, 221, 222, 0, 223, 224, 225, 226, 227, - 652, 229, 0, 231, 232, 233, 234, 0, 235, 236, - 237, 238, 239, 240, 0, 241, 0, 243, 244, 245, - 246, 247, 248, 249, 250, 0, 251, 0, 252, 0, - 0, 255, 0, 257, 258, 259, 260, 261, 262, 0, - 0, 263, 0, 265, 0, 0, 267, 268, 269, 0, - 0, 270, 271, 272, 273, 274, 510, 276, 277, 278, - 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, - 289, 290, 291, 292, 293, 294, 0, 296, 297, 298, - 299, 300, 0, 301, 302, 0, 304, 0, 305, 306, - 307, 308, 309, 310, 0, 311, 312, 0, 0, 313, - 314, 315, 0, 0, 316, 317, 0, 319, 0, 321, - 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, - 0, 332, 333, 334, 335, 336, 337, 338, 339, 340, - 0, 341, 342, 343, 344, 345, 346, 0, 347, 348, - 349, 350, 351, 352, 353, 354, 0, 355, 356, 357, - 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, - 0, 368, 369, 0, 371, 372, 373, 374, 375, 376, - 377, 378, 379, 380, 381, 382, 383, 384, 385, 0, - 386, 387, 388, 389, 390, 0, 392, 393, 394, 395, - 396, 0, 398, 399, 400, 401, 0, 402, 403, 404, - 405, 406, 407, 408, 409, 410, 411, 412, 413, 512, - 415, 416, 417, 0, 418, 419, 0, 420, 0, 422, - 423, 424, 425, 426, 0, 427, 428, 0, 0, 429, - 430, 431, 432, 433, 0, 434, 435, 436, 437, 438, - 439, 440, 441, 0, 0, 442, 443, 444, 445, 446, - 0, 0, 448, 449, 450, 451, 452, 453, 454, 0, - 455, 0, 457, 458, 459, 460, 461, 0, 0, 462, - 0, 0, 463, 464, 465, 466, 467, 468, 469, 470, - 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, - 481, 482, 483, 506, 0, 507, 0, 0, 0, 0, + 1392, 0, 0, 0, 0, 0, 0, 0, 1394, 0, + 0, 1396, 0, 0, 0, 1395, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 94, 95, 96, 97, 98, 99, 100, 101, 0, - 102, 103, 104, 0, 0, 0, 0, 0, 0, 0, - 105, 106, 0, 107, 108, 109, 0, 111, 112, 113, - 114, 115, 0, 117, 118, 0, 119, 120, 121, 122, - 123, 124, 0, 0, 125, 126, 127, 128, 129, 0, - 130, 131, 132, 133, 134, 0, 0, 0, 136, 137, - 138, 139, 140, 141, 0, 143, 144, 145, 0, 146, - 147, 148, 149, 150, 151, 0, 0, 153, 154, 155, - 0, 0, 0, 0, 0, 0, 0, 161, 162, 163, - 164, 165, 166, 167, 168, 169, 170, 0, 171, 0, - 172, 173, 174, 175, 176, 177, 0, 178, 179, 180, - 181, 182, 0, 0, 183, 184, 185, 186, 187, 0, - 188, 189, 190, 0, 191, 192, 193, 0, 194, 195, - 196, 197, 198, 199, 200, 201, 202, 203, 204, 0, - 205, 0, 206, 207, 208, 209, 0, 210, 0, 211, - 0, 0, 0, 214, 215, 509, 0, 218, 0, 219, - 0, 220, 221, 222, 0, 223, 224, 225, 226, 227, - 655, 229, 0, 231, 232, 233, 234, 0, 235, 236, - 237, 238, 239, 240, 0, 241, 0, 243, 244, 245, - 246, 247, 248, 249, 250, 0, 251, 0, 252, 0, - 0, 255, 0, 257, 258, 259, 260, 261, 262, 0, - 0, 263, 0, 265, 0, 0, 267, 268, 269, 0, - 0, 270, 271, 272, 273, 274, 510, 276, 277, 278, - 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, - 289, 290, 291, 292, 293, 294, 0, 296, 297, 298, - 299, 300, 0, 301, 302, 0, 304, 0, 305, 306, - 307, 308, 309, 310, 0, 311, 312, 0, 0, 313, - 314, 315, 0, 0, 316, 317, 0, 319, 0, 321, - 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, - 0, 332, 333, 334, 335, 336, 337, 338, 339, 340, - 0, 341, 342, 343, 344, 345, 346, 0, 347, 348, - 349, 350, 351, 352, 353, 354, 0, 355, 356, 357, - 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, - 0, 368, 369, 0, 371, 372, 373, 374, 375, 376, - 377, 378, 379, 380, 381, 382, 383, 384, 385, 0, - 386, 387, 388, 389, 390, 0, 392, 393, 394, 395, - 396, 0, 398, 399, 400, 401, 0, 402, 403, 404, - 405, 406, 407, 408, 409, 410, 411, 412, 413, 512, - 415, 416, 417, 0, 418, 419, 0, 420, 0, 422, - 423, 424, 425, 426, 0, 427, 428, 0, 0, 429, - 430, 431, 432, 433, 0, 434, 435, 436, 437, 438, - 439, 440, 441, 0, 0, 442, 443, 444, 445, 446, - 0, 0, 448, 449, 450, 451, 452, 453, 454, 0, - 455, 0, 457, 458, 459, 460, 461, 0, 0, 462, - 0, 0, 463, 464, 465, 466, 467, 468, 469, 470, - 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, - 481, 482, 483, 506, 0, 507, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 94, 95, 96, 97, 98, 99, 100, 101, 0, - 102, 103, 104, 0, 0, 0, 0, 0, 0, 0, - 105, 106, 0, 107, 108, 109, 0, 111, 112, 113, - 114, 115, 0, 117, 118, 0, 119, 120, 121, 122, - 123, 124, 0, 0, 125, 126, 127, 128, 129, 0, - 130, 131, 132, 133, 134, 0, 0, 0, 136, 137, - 138, 139, 140, 141, 0, 143, 144, 145, 0, 146, - 147, 148, 149, 150, 151, 0, 0, 153, 154, 155, - 0, 0, 0, 0, 0, 0, 0, 161, 162, 163, - 164, 165, 166, 167, 168, 169, 170, 0, 171, 0, - 172, 173, 174, 175, 176, 177, 0, 178, 179, 180, - 181, 182, 0, 0, 183, 184, 185, 186, 187, 0, - 188, 189, 190, 0, 191, 192, 193, 0, 194, 195, - 196, 197, 198, 199, 200, 201, 202, 203, 204, 0, - 205, 0, 206, 207, 208, 209, 0, 210, 0, 211, - 0, 0, 0, 214, 215, 509, 0, 218, 0, 219, - 0, 220, 221, 222, 0, 223, 224, 225, 226, 227, - 659, 229, 0, 231, 232, 233, 234, 0, 235, 236, - 237, 238, 239, 240, 0, 241, 0, 243, 244, 245, - 246, 247, 248, 249, 250, 0, 251, 0, 252, 0, - 0, 255, 0, 257, 258, 259, 260, 261, 262, 0, - 0, 263, 0, 265, 0, 0, 267, 268, 269, 0, - 0, 270, 271, 272, 273, 274, 510, 276, 277, 278, - 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, - 289, 290, 291, 292, 293, 294, 0, 296, 297, 298, - 299, 300, 0, 301, 302, 0, 304, 0, 305, 306, - 307, 308, 309, 310, 0, 311, 312, 0, 0, 313, - 314, 315, 0, 0, 316, 317, 0, 319, 0, 321, - 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, - 0, 332, 333, 334, 335, 336, 337, 338, 339, 340, - 0, 341, 342, 343, 344, 345, 346, 0, 347, 348, - 349, 350, 351, 352, 353, 354, 0, 355, 356, 357, - 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, - 0, 368, 369, 0, 371, 372, 373, 374, 375, 376, - 377, 378, 379, 380, 381, 382, 383, 384, 385, 0, - 386, 387, 388, 389, 390, 0, 392, 393, 394, 395, - 396, 0, 398, 399, 400, 401, 0, 402, 403, 404, - 405, 406, 407, 408, 409, 410, 411, 412, 413, 512, - 415, 416, 417, 0, 418, 419, 0, 420, 0, 422, - 423, 424, 425, 426, 0, 427, 428, 0, 0, 429, - 430, 431, 432, 433, 0, 434, 435, 436, 437, 438, - 439, 440, 441, 0, 0, 442, 443, 444, 445, 446, - 0, 0, 448, 449, 450, 451, 452, 453, 454, 0, - 455, 0, 457, 458, 459, 460, 461, 0, 0, 462, - 0, 0, 463, 464, 465, 466, 467, 468, 469, 470, - 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, - 481, 482, 483, 694, 0, 0, 0, 0, 0, 0, + 1396, 0, 0, 0, 0, 0, 0, 1397, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 94, 95, 96, 97, 98, 99, 100, 101, 0, - 102, 103, 104, 0, 0, 0, 0, 0, 0, 0, - 105, 106, 0, 107, 108, 109, 695, 111, 112, 113, - 0, 696, 697, 698, 699, 0, 119, 120, 121, 122, - 123, 124, 0, 0, 125, 126, 700, 701, 129, 0, - 130, 131, 132, 133, 0, 0, 702, 0, 136, 137, - 138, 139, 140, 141, 703, 143, 144, 145, 0, 146, - 147, 148, 149, 150, 151, 0, 704, 153, 154, 155, - 705, 706, 707, 708, 0, 0, 709, 161, 162, 163, - 164, 165, 166, 167, 710, 711, 170, 0, 171, 0, - 172, 173, 174, 175, 176, 177, 0, 178, 179, 180, - 181, 182, 0, 0, 183, 184, 712, 186, 187, 0, - 188, 189, 190, 0, 191, 192, 193, 0, 194, 195, - 196, 197, 0, 199, 200, 201, 202, 203, 0, 0, - 205, 0, 206, 207, 713, 209, 0, 210, 0, 211, - 714, 0, 715, 214, 215, 0, 716, 218, 0, 219, - 0, 0, 0, 222, 0, 223, 224, 225, 226, 227, - 717, 229, 718, 231, 232, 233, 234, 0, 235, 236, - 237, 238, 239, 240, 0, 241, 719, 0, 244, 245, - 246, 247, 248, 720, 721, 0, 722, 0, 252, 723, - 724, 255, 725, 257, 258, 259, 260, 261, 262, 0, - 0, 263, 726, 265, 727, 0, 267, 268, 269, 0, - 0, 270, 271, 272, 273, 274, 728, 276, 277, 278, - 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, - 289, 290, 291, 292, 293, 729, 730, 731, 297, 298, - 299, 0, 0, 301, 302, 732, 304, 0, 0, 306, - 733, 308, 309, 310, 0, 311, 312, 0, 0, 313, - 314, 315, 0, 0, 316, 0, 734, 319, 735, 0, - 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, - 0, 332, 333, 0, 335, 336, 0, 338, 339, 340, - 0, 341, 342, 343, 344, 345, 346, 0, 347, 348, - 349, 736, 351, 352, 353, 354, 0, 355, 356, 357, - 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, - 0, 368, 369, 737, 371, 372, 373, 738, 375, 376, - 377, 378, 379, 380, 381, 382, 383, 384, 385, 0, - 386, 387, 388, 389, 390, 739, 392, 740, 394, 395, - 396, 741, 398, 399, 742, 401, 0, 402, 403, 404, - 405, 406, 407, 408, 409, 410, 411, 412, 413, 743, - 415, 0, 417, 0, 418, 419, 0, 420, 744, 422, - 423, 424, 425, 426, 0, 745, 746, 0, 0, 429, - 430, 0, 432, 0, 0, 434, 435, 747, 437, 438, - 439, 440, 441, 0, 0, 442, 443, 444, 445, 446, - 748, 0, 448, 449, 450, 451, 452, 0, 749, 0, - 455, 750, 457, 458, 459, 460, 461, 0, 0, 462, - 0, 0, 463, 464, 465, 466, 467, 468, 506, 0, - 507, 0, 0, 0, 0, 0, 0, 0, 0, 480, - 481, 482, 483, 0, 0, 0, 94, 95, 96, 97, - 98, 99, 100, 101, 0, 102, 103, 104, 0, 0, - 0, 0, 0, 0, 0, 105, 106, 0, 107, 108, - 109, 0, 111, 112, 113, 114, 115, 0, 117, 118, - 0, 119, 120, 121, 122, 123, 124, 0, 0, 125, - 126, 127, 128, 129, 0, 130, 131, 132, 133, 134, - 0, 0, 0, 136, 137, 138, 139, 140, 141, 0, - 143, 144, 145, 0, 146, 147, 148, 149, 150, 151, - 0, 0, 153, 154, 155, 0, 0, 0, 0, 0, - 0, 0, 161, 162, 163, 164, 165, 166, 167, 168, - 169, 170, 0, 171, 0, 172, 173, 174, 175, 176, - 177, 0, 178, 179, 180, 181, 182, 0, 0, 183, - 184, 185, 186, 187, 0, 188, 189, 190, 0, 191, - 192, 193, 0, 194, 195, 196, 197, 198, 199, 200, - 201, 202, 203, 204, 0, 205, 0, 206, 207, 208, - 209, 0, 210, 0, 211, 0, 0, 0, 214, 215, - 509, 0, 218, 0, 219, 0, 220, 221, 222, 0, - 223, 224, 225, 226, 227, 772, 229, 0, 231, 232, - 233, 234, 0, 235, 236, 237, 238, 239, 240, 0, - 241, 0, 243, 244, 245, 246, 247, 248, 249, 250, - 0, 251, 0, 252, 0, 0, 255, 0, 257, 258, - 259, 260, 261, 262, 0, 0, 263, 0, 265, 0, - 0, 267, 268, 269, 0, 0, 270, 271, 272, 273, - 274, 510, 276, 277, 278, 279, 280, 281, 282, 283, - 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, - 294, 0, 296, 297, 298, 299, 300, 0, 301, 302, - 0, 304, 0, 305, 306, 307, 308, 309, 310, 0, - 311, 312, 0, 0, 313, 314, 315, 0, 0, 316, - 317, 0, 319, 0, 321, 322, 323, 324, 325, 326, - 327, 328, 329, 330, 331, 0, 332, 333, 334, 335, - 336, 337, 338, 339, 340, 0, 341, 342, 343, 344, - 345, 346, 0, 347, 348, 349, 350, 351, 352, 353, - 354, 0, 355, 356, 357, 358, 359, 360, 361, 362, - 363, 364, 365, 366, 367, 0, 368, 369, 0, 371, - 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, - 382, 383, 384, 385, 0, 386, 387, 388, 389, 390, - 0, 392, 393, 394, 395, 396, 0, 398, 399, 400, - 401, 0, 402, 403, 404, 405, 406, 407, 408, 409, - 410, 411, 412, 413, 512, 415, 416, 417, 0, 418, - 419, 0, 420, 0, 422, 423, 424, 425, 426, 0, - 427, 428, 0, 0, 429, 430, 431, 432, 433, 0, - 434, 435, 436, 437, 438, 439, 440, 441, 0, 0, - 442, 443, 444, 445, 446, 0, 0, 448, 449, 450, - 451, 452, 453, 454, 0, 455, 0, 457, 458, 459, - 460, 461, 0, 0, 462, 0, 0, 463, 464, 465, - 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, - 476, 477, 478, 479, 480, 481, 482, 483, 506, 0, - 507, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 94, 95, 96, 97, - 98, 99, 100, 101, 0, 102, 103, 104, 0, 0, - 0, 0, 0, 0, 0, 105, 106, 0, 107, 108, - 109, 0, 111, 112, 113, 114, 115, 0, 117, 118, - 0, 119, 120, 121, 122, 123, 124, 0, 0, 125, - 126, 127, 128, 129, 0, 130, 131, 132, 133, 134, - 0, 0, 0, 136, 137, 138, 139, 140, 141, 0, - 143, 144, 145, 0, 146, 147, 148, 149, 150, 151, - 0, 0, 153, 154, 155, 0, 0, 0, 0, 0, - 0, 0, 161, 162, 163, 164, 165, 166, 167, 168, - 169, 170, 0, 171, 0, 172, 173, 174, 175, 176, - 177, 0, 178, 179, 180, 181, 182, 0, 0, 183, - 184, 185, 186, 187, 0, 188, 189, 190, 0, 191, - 192, 193, 0, 194, 195, 196, 197, 198, 199, 200, - 201, 202, 203, 204, 0, 205, 0, 206, 207, 208, - 209, 0, 210, 0, 211, 0, 0, 0, 214, 215, - 509, 0, 218, 0, 219, 0, 220, 221, 222, 0, - 223, 224, 225, 226, 227, 775, 229, 0, 231, 232, - 233, 234, 0, 235, 236, 237, 238, 239, 240, 0, - 241, 0, 243, 244, 245, 246, 247, 248, 249, 250, - 0, 251, 0, 252, 0, 0, 255, 0, 257, 258, - 259, 260, 261, 262, 0, 0, 263, 0, 265, 0, - 0, 267, 268, 269, 0, 0, 270, 271, 272, 273, - 274, 510, 276, 277, 278, 279, 280, 281, 282, 283, - 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, - 294, 0, 296, 297, 298, 299, 300, 0, 301, 302, - 0, 304, 0, 305, 306, 307, 308, 309, 310, 0, - 311, 312, 0, 0, 313, 314, 315, 0, 0, 316, - 317, 0, 319, 0, 321, 322, 323, 324, 325, 326, - 327, 328, 329, 330, 331, 0, 332, 333, 334, 335, - 336, 337, 338, 339, 340, 0, 341, 342, 343, 344, - 345, 346, 0, 347, 348, 349, 350, 351, 352, 353, - 354, 0, 355, 356, 357, 358, 359, 360, 361, 362, - 363, 364, 365, 366, 367, 0, 368, 369, 0, 371, - 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, - 382, 383, 384, 385, 0, 386, 387, 388, 389, 390, - 0, 392, 393, 394, 395, 396, 0, 398, 399, 400, - 401, 0, 402, 403, 404, 405, 406, 407, 408, 409, - 410, 411, 412, 413, 512, 415, 416, 417, 0, 418, - 419, 0, 420, 0, 422, 423, 424, 425, 426, 0, - 427, 428, 0, 0, 429, 430, 431, 432, 433, 0, - 434, 435, 436, 437, 438, 439, 440, 441, 0, 0, - 442, 443, 444, 445, 446, 0, 0, 448, 449, 450, - 451, 452, 453, 454, 0, 455, 0, 457, 458, 459, - 460, 461, 0, 0, 462, 0, 0, 463, 464, 465, - 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, - 476, 477, 478, 479, 480, 481, 482, 483, 506, 0, - 507, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 94, 95, 96, 97, - 98, 99, 100, 101, 0, 102, 103, 104, 0, 0, - 0, 0, 0, 0, 0, 105, 106, 0, 107, 108, - 109, 0, 111, 112, 113, 114, 115, 0, 117, 118, - 0, 119, 120, 121, 122, 123, 124, 0, 0, 125, - 126, 127, 128, 129, 0, 130, 131, 132, 133, 134, - 0, 0, 0, 136, 137, 138, 139, 140, 141, 0, - 143, 144, 145, 0, 146, 147, 148, 149, 150, 151, - 0, 0, 153, 154, 155, 0, 0, 0, 0, 0, - 0, 0, 161, 162, 163, 164, 165, 166, 167, 168, - 169, 170, 0, 171, 0, 172, 173, 174, 175, 176, - 177, 0, 178, 179, 180, 181, 182, 0, 0, 183, - 184, 185, 186, 187, 0, 188, 189, 190, 0, 191, - 192, 193, 0, 194, 195, 196, 197, 198, 199, 200, - 201, 202, 203, 204, 0, 205, 0, 206, 207, 208, - 209, 0, 210, 0, 211, 0, 0, 0, 214, 215, - 509, 0, 218, 0, 219, 0, 220, 221, 222, 0, - 223, 224, 225, 226, 227, 1219, 229, 0, 231, 232, - 233, 234, 0, 235, 236, 237, 238, 239, 240, 0, - 241, 0, 243, 244, 245, 246, 247, 248, 249, 250, - 0, 251, 0, 252, 0, 0, 255, 0, 257, 258, - 259, 260, 261, 262, 0, 0, 263, 0, 265, 0, - 0, 267, 268, 269, 0, 0, 270, 271, 272, 273, - 274, 510, 276, 277, 278, 279, 280, 281, 282, 283, - 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, - 294, 0, 296, 297, 298, 299, 300, 0, 301, 302, - 0, 304, 0, 305, 306, 307, 308, 309, 310, 0, - 311, 312, 0, 0, 313, 314, 315, 0, 0, 316, - 317, 0, 319, 0, 321, 322, 323, 324, 325, 326, - 327, 328, 329, 330, 331, 0, 332, 333, 334, 335, - 336, 337, 338, 339, 340, 0, 341, 342, 343, 344, - 345, 346, 0, 347, 348, 349, 350, 351, 352, 353, - 354, 0, 355, 356, 357, 358, 359, 360, 361, 362, - 363, 364, 365, 366, 367, 0, 368, 369, 0, 371, - 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, - 382, 383, 384, 385, 0, 386, 387, 388, 389, 390, - 0, 392, 393, 394, 395, 396, 0, 398, 399, 400, - 401, 0, 402, 403, 404, 405, 406, 407, 408, 409, - 410, 411, 412, 413, 512, 415, 416, 417, 0, 418, - 419, 0, 420, 0, 422, 423, 424, 425, 426, 0, - 427, 428, 0, 0, 429, 430, 431, 432, 433, 0, - 434, 435, 436, 437, 438, 439, 440, 441, 0, 0, - 442, 443, 444, 445, 446, 0, 0, 448, 449, 450, - 451, 452, 453, 454, 0, 455, 0, 457, 458, 459, - 460, 461, 0, 0, 462, 0, 0, 463, 464, 465, - 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, - 476, 477, 478, 479, 480, 481, 482, 483, 506, 0, - 507, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 94, 95, 96, 97, - 98, 99, 100, 101, 0, 102, 103, 104, 0, 0, - 0, 0, 0, 0, 0, 105, 106, 0, 107, 108, - 109, 0, 111, 112, 113, 114, 115, 0, 117, 118, - 0, 119, 120, 121, 122, 123, 124, 0, 0, 125, - 126, 127, 128, 129, 0, 130, 131, 132, 133, 134, - 0, 0, 0, 136, 137, 138, 139, 140, 141, 0, - 143, 144, 145, 0, 146, 147, 148, 149, 150, 151, - 0, 0, 153, 154, 155, 0, 0, 0, 0, 0, - 0, 0, 161, 162, 163, 164, 165, 166, 167, 168, - 169, 170, 0, 171, 0, 172, 173, 174, 175, 176, - 177, 0, 178, 179, 180, 181, 182, 0, 0, 183, - 184, 185, 186, 187, 0, 188, 189, 190, 0, 191, - 192, 193, 0, 194, 195, 196, 197, 198, 199, 200, - 201, 202, 203, 204, 0, 205, 0, 206, 207, 208, - 209, 0, 210, 0, 211, 0, 0, 0, 214, 215, - 509, 0, 218, 0, 219, 0, 220, 221, 222, 0, - 223, 224, 225, 226, 227, 1221, 229, 0, 231, 232, - 233, 234, 0, 235, 236, 237, 238, 239, 240, 0, - 241, 0, 243, 244, 245, 246, 247, 248, 249, 250, - 0, 251, 0, 252, 0, 0, 255, 0, 257, 258, - 259, 260, 261, 262, 0, 0, 263, 0, 265, 0, - 0, 267, 268, 269, 0, 0, 270, 271, 272, 273, - 274, 510, 276, 277, 278, 279, 280, 281, 282, 283, - 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, - 294, 0, 296, 297, 298, 299, 300, 0, 301, 302, - 0, 304, 0, 305, 306, 307, 308, 309, 310, 0, - 311, 312, 0, 0, 313, 314, 315, 0, 0, 316, - 317, 0, 319, 0, 321, 322, 323, 324, 325, 326, - 327, 328, 329, 330, 331, 0, 332, 333, 334, 335, - 336, 337, 338, 339, 340, 0, 341, 342, 343, 344, - 345, 346, 0, 347, 348, 349, 350, 351, 352, 353, - 354, 0, 355, 356, 357, 358, 359, 360, 361, 362, - 363, 364, 365, 366, 367, 0, 368, 369, 0, 371, - 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, - 382, 383, 384, 385, 0, 386, 387, 388, 389, 390, - 0, 392, 393, 394, 395, 396, 0, 398, 399, 400, - 401, 0, 402, 403, 404, 405, 406, 407, 408, 409, - 410, 411, 412, 413, 512, 415, 416, 417, 0, 418, - 419, 0, 420, 0, 422, 423, 424, 425, 426, 0, - 427, 428, 0, 0, 429, 430, 431, 432, 433, 0, - 434, 435, 436, 437, 438, 439, 440, 441, 0, 0, - 442, 443, 444, 445, 446, 0, 0, 448, 449, 450, - 451, 452, 453, 454, 0, 455, 0, 457, 458, 459, - 460, 461, 0, 0, 462, 0, 0, 463, 464, 465, - 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, - 476, 477, 478, 479, 480, 481, 482, 483, 694, 0, + 0, 0, 0, 1398, 0, 0, 0, 0, 1399, 0, + 0, 1384, 0, 0, 1385, 0, 1397, 0, 1386, 1387, + 1388, 1389, 1390, 1391, 0, 0, 0, 0, 0, 0, + 1400, 1401, 1398, 0, 0, 0, 0, 1399, 1392, 0, + 0, 0, 0, 0, 0, 1402, 1394, 0, 0, 0, + 0, 0, 1397, 1395, 0, 0, 0, 0, 0, 1400, + 1401, 0, 0, 0, 0, 0, 0, 0, 1398, 0, + 0, 0, 0, 1399, 1402, 0, 0, 0, 1396, 0, + 0, 1397, 0, 1403, 0, 0, 1404, 0, 0, 0, + 0, 0, 0, 0, 0, 1400, 1401, 1398, 0, 0, + 1405, 0, 1399, 1406, 0, 0, 0, 0, 0, 0, + 1402, 0, 1403, 0, 0, 1404, 0, 0, 0, 0, + 0, 0, 0, 0, 1400, 1401, 0, 0, 0, 1405, + 0, 0, 1406, 0, 0, 0, 0, 0, 0, 1402, + 0, 0, 0, 0, 0, 0, 0, 0, 1403, 0, + 0, 1404, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1405, 0, 0, 1406, 0, + 0, 0, 0, 0, 0, 0, 0, 1403, 0, 1397, + 1404, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1407, 0, 1405, 1398, 0, 1406, 0, 0, + 1399, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 94, 95, 96, 97, - 98, 99, 100, 101, 0, 102, 103, 104, 0, 0, - 0, 0, 0, 0, 0, 105, 106, 0, 107, 108, - 109, 695, 111, 112, 113, 0, 696, 697, 698, 699, - 0, 119, 120, 121, 122, 123, 124, 0, 0, 125, - 126, 700, 701, 129, 0, 130, 131, 132, 133, 0, - 0, 702, 0, 136, 137, 138, 139, 140, 141, 703, - 143, 144, 145, 0, 146, 147, 148, 149, 150, 151, - 0, 704, 153, 154, 155, 705, 706, 707, 708, 0, - 0, 709, 161, 162, 163, 164, 165, 166, 167, 710, - 711, 170, 0, 171, 0, 172, 173, 174, 175, 176, - 177, 0, 178, 179, 180, 181, 182, 0, 0, 183, - 184, 712, 186, 187, 0, 188, 189, 190, 0, 191, - 192, 193, 0, 194, 195, 196, 197, 0, 199, 200, - 201, 202, 203, 0, 0, 205, 0, 206, 207, 713, - 209, 0, 210, 0, 211, 714, 0, 715, 214, 215, - 0, 716, 218, 0, 219, 0, 0, 0, 222, 0, - 223, 224, 225, 226, 227, 228, 229, 718, 231, 232, - 233, 234, 0, 235, 236, 237, 238, 239, 240, 0, - 241, 719, 0, 244, 245, 246, 247, 248, 720, 721, - 0, 722, 0, 252, 723, 724, 255, 725, 257, 258, - 259, 260, 261, 262, 0, 0, 263, 726, 265, 727, - 0, 267, 268, 269, 0, 0, 270, 271, 272, 273, - 274, 728, 276, 277, 278, 279, 280, 281, 282, 283, - 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, - 729, 730, 731, 297, 298, 299, 0, 0, 301, 302, - 732, 304, 0, 0, 306, 733, 308, 309, 310, 0, - 311, 312, 0, 0, 313, 314, 315, 0, 0, 316, - 0, 734, 319, 735, 0, 322, 323, 324, 325, 326, - 327, 328, 329, 330, 331, 0, 332, 333, 0, 335, - 336, 0, 338, 339, 340, 0, 341, 342, 343, 344, - 345, 346, 0, 347, 348, 349, 736, 351, 352, 353, - 354, 0, 355, 356, 357, 358, 359, 360, 361, 362, - 363, 364, 365, 366, 367, 0, 368, 369, 737, 371, - 372, 373, 738, 375, 376, 377, 378, 379, 380, 381, - 382, 383, 384, 385, 0, 386, 387, 388, 389, 390, - 739, 392, 740, 394, 395, 396, 741, 398, 399, 742, - 401, 0, 402, 403, 404, 405, 406, 407, 408, 409, - 410, 411, 412, 413, 743, 415, 0, 417, 0, 418, - 419, 0, 420, 744, 422, 423, 424, 425, 426, 0, - 745, 746, 0, 0, 429, 430, 0, 432, 0, 0, - 434, 435, 747, 437, 438, 439, 440, 441, 0, 0, - 442, 443, 444, 445, 446, 748, 0, 448, 449, 450, - 451, 452, 0, 749, 0, 455, 750, 457, 458, 459, - 460, 461, 0, 0, 462, 0, 0, 463, 464, 465, - 466, 467, 468, 506, 0, 507, 0, 0, 0, 0, - 0, 0, 0, 0, 480, 481, 482, 483, 0, 0, - 0, 94, 95, 96, 97, 98, 99, 100, 101, 0, - 102, 103, 104, 0, 0, 0, 0, 0, 0, 0, - 105, 106, 0, 107, 108, 109, 0, 111, 112, 113, - 114, 115, 0, 117, 118, 0, 119, 120, 121, 122, - 123, 124, 0, 0, 125, 126, 127, 128, 129, 0, - 130, 131, 132, 133, 134, 0, 0, 0, 136, 137, - 138, 139, 140, 141, 0, 143, 144, 145, 0, 146, - 147, 148, 149, 150, 151, 0, 0, 153, 154, 155, - 0, 0, 0, 0, 0, 0, 0, 161, 162, 163, - 164, 165, 166, 167, 168, 169, 170, 0, 171, 0, - 172, 173, 174, 175, 176, 177, 0, 178, 179, 180, - 181, 182, 0, 0, 183, 184, 185, 186, 187, 0, - 188, 189, 190, 0, 191, 192, 193, 0, 194, 195, - 196, 197, 198, 199, 200, 201, 202, 203, 204, 0, - 205, 0, 206, 207, 208, 209, 0, 210, 0, 211, - 0, 0, 0, 214, 215, 509, 0, 218, 0, 219, - 0, 220, 221, 222, 0, 223, 224, 225, 226, 227, - 1893, 229, 0, 231, 232, 233, 234, 0, 235, 236, - 237, 238, 239, 240, 0, 241, 0, 243, 244, 245, - 246, 247, 248, 249, 250, 0, 251, 0, 252, 0, - 0, 255, 0, 257, 258, 259, 260, 261, 262, 0, - 0, 263, 0, 265, 0, 0, 267, 268, 269, 0, - 0, 270, 271, 272, 273, 274, 510, 276, 277, 278, - 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, - 289, 290, 291, 292, 293, 294, 0, 296, 297, 298, - 299, 300, 0, 301, 302, 0, 304, 0, 305, 306, - 307, 308, 309, 310, 0, 311, 312, 0, 0, 313, - 314, 315, 0, 0, 316, 317, 0, 319, 0, 321, - 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, - 0, 332, 333, 334, 335, 336, 337, 338, 339, 340, - 0, 341, 342, 343, 344, 345, 346, 0, 347, 348, - 349, 350, 351, 352, 353, 354, 0, 355, 356, 357, - 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, - 0, 368, 369, 0, 371, 372, 373, 374, 375, 376, - 377, 378, 379, 380, 381, 382, 383, 384, 385, 0, - 386, 387, 388, 389, 390, 0, 392, 393, 394, 395, - 396, 0, 398, 399, 400, 401, 0, 402, 403, 404, - 405, 406, 407, 408, 409, 410, 411, 412, 413, 512, - 415, 416, 417, 0, 418, 419, 0, 420, 0, 422, - 423, 424, 425, 426, 0, 427, 428, 0, 0, 429, - 430, 431, 432, 433, 0, 434, 435, 436, 437, 438, - 439, 440, 441, 0, 0, 442, 443, 444, 445, 446, - 0, 0, 448, 449, 450, 451, 452, 453, 454, 0, - 455, 0, 457, 458, 459, 460, 461, 0, 0, 462, - 0, 0, 463, 464, 465, 466, 467, 468, 469, 470, - 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, - 481, 482, 483, 506, 0, 0, 0, 0, 0, 0, + 0, 1407, 1400, 1401, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1402, 0, 0, + 0, 1384, 0, 0, 1385, 0, 0, 0, 1386, 1387, + 1388, 1389, 1390, 1391, 0, 0, 0, 1407, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1392, 0, + 0, 0, 0, 0, 0, 1403, 1394, 0, 1404, 0, + 0, 0, 0, 1395, 0, 0, 1407, 0, 0, 0, + 0, 0, 1405, 0, 1408, 1406, 0, 1409, 1410, 1411, + 0, 1412, 1413, 1414, 1415, 1416, 1417, 0, 1396, 0, + 0, 2362, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1408, 0, 0, 1409, 1410, 1411, 0, + 1412, 1413, 1414, 1415, 1416, 1417, 0, 0, 0, 0, + 2452, 0, 0, 0, 0, 1384, 0, 0, 1385, 0, + 0, 0, 1386, 1387, 1388, 1389, 1390, 1391, 0, 1408, + 0, 0, 1409, 1410, 1411, 0, 1412, 1413, 1414, 1415, + 1416, 1417, 1392, 0, 0, 0, 2604, 0, 0, 0, + 1394, 0, 0, 0, 1407, 0, 0, 1395, 1408, 0, + 0, 1409, 1410, 1411, 0, 1412, 1413, 1414, 1415, 1416, + 1417, 0, 0, 0, 0, 2626, 0, 1384, 0, 1397, + 1385, 0, 1396, 0, 1386, 1387, 1388, 1389, 1390, 1391, + 0, 0, 0, 0, 0, 1398, 0, 0, 0, 0, + 1399, 0, 0, 0, 1392, 0, 0, 0, 0, 0, + 0, 0, 1394, 0, 0, 0, 0, 0, 0, 1395, + 0, 0, 1400, 1401, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1402, 0, 0, + 0, 0, 1384, 0, 1396, 1385, 0, 0, 0, 1386, + 1387, 1388, 1389, 1390, 1391, 0, 1408, 0, 0, 1409, + 1410, 1411, 0, 1412, 1413, 1414, 1415, 1416, 1417, 1392, + 0, 0, 0, 2629, 0, 1403, 0, 1394, 1404, 0, + 0, 0, 0, 1397, 1395, 0, 0, 0, 0, 0, + 0, 0, 1405, 0, 0, 1406, 0, 0, 0, 1398, + 0, 0, 0, 0, 1399, 0, 0, 0, 0, 1396, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 94, 95, 96, 97, 98, 99, 100, 101, 0, - 102, 103, 104, 0, 0, 0, 0, 0, 2399, 0, - 105, 106, 0, 107, 108, 109, 0, 111, 112, 113, - 114, 115, 0, 117, 118, 0, 119, 120, 121, 122, - 123, 124, 0, 0, 125, 126, 127, 128, 129, 0, - 130, 131, 132, 133, 134, 0, 0, 0, 136, 137, - 138, 139, 140, 141, 0, 143, 144, 145, 0, 146, - 147, 148, 149, 150, 151, 0, 0, 153, 154, 155, - 0, 0, 0, 0, 0, 0, 0, 161, 162, 163, - 164, 165, 166, 167, 168, 169, 170, 0, 171, 0, - 172, 173, 174, 175, 176, 177, 0, 178, 179, 180, - 181, 182, 0, 0, 183, 184, 185, 186, 187, 0, - 188, 189, 190, 0, 191, 192, 193, 0, 194, 195, - 196, 197, 198, 199, 200, 201, 202, 203, 204, 0, - 205, 0, 206, 207, 208, 209, 0, 210, 0, 211, - 0, 0, 0, 214, 215, 509, 0, 218, 0, 219, - 0, 220, 221, 222, 0, 223, 224, 225, 226, 227, - 228, 229, 0, 231, 232, 233, 234, 0, 235, 236, - 237, 238, 239, 240, 0, 241, 0, 243, 244, 245, - 246, 247, 248, 249, 250, 0, 251, 0, 252, 0, - 0, 255, 0, 257, 258, 259, 260, 261, 262, 0, - 0, 263, 0, 265, 0, 0, 267, 268, 269, 0, - 0, 270, 271, 272, 273, 274, 510, 276, 277, 278, - 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, - 289, 290, 291, 292, 293, 294, 0, 296, 297, 298, - 299, 300, 0, 301, 302, 0, 304, 0, 305, 306, - 307, 308, 309, 310, 0, 311, 312, 0, 0, 313, - 314, 315, 0, 0, 316, 317, 0, 319, 0, 321, - 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, - 0, 332, 333, 334, 335, 336, 337, 338, 339, 340, - 0, 341, 342, 343, 344, 345, 346, 0, 347, 348, - 349, 350, 351, 352, 353, 354, 0, 355, 356, 357, - 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, - 0, 368, 369, 0, 371, 372, 373, 374, 375, 376, - 377, 378, 379, 380, 381, 382, 383, 384, 385, 0, - 386, 387, 388, 389, 390, 0, 392, 393, 394, 395, - 396, 0, 398, 399, 400, 401, 0, 402, 403, 404, - 405, 406, 407, 408, 409, 410, 411, 412, 413, 512, - 415, 416, 417, 0, 418, 419, 0, 420, 0, 422, - 423, 424, 425, 426, 0, 427, 428, 0, 0, 429, - 430, 431, 432, 433, 0, 434, 435, 436, 437, 438, - 439, 440, 441, 0, 0, 442, 443, 444, 445, 446, - 0, 0, 448, 449, 450, 451, 452, 453, 454, 0, - 455, 0, 457, 458, 459, 460, 461, 0, 0, 462, - 0, 0, 463, 464, 465, 466, 467, 468, 469, 470, - 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, - 481, 482, 483, 506, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1400, 1401, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 94, 95, 96, 97, 98, 99, 100, 101, 0, - 102, 103, 104, 0, 0, 0, 0, 0, 2414, 0, - 105, 106, 0, 107, 108, 109, 0, 111, 112, 113, - 114, 115, 0, 117, 118, 0, 119, 120, 121, 122, - 123, 124, 0, 0, 125, 126, 127, 128, 129, 0, - 130, 131, 132, 133, 134, 0, 0, 0, 136, 137, - 138, 139, 140, 141, 0, 143, 144, 145, 0, 146, - 147, 148, 149, 150, 151, 0, 0, 153, 154, 155, - 0, 0, 0, 0, 0, 0, 0, 161, 162, 163, - 164, 165, 166, 167, 168, 169, 170, 0, 171, 0, - 172, 173, 174, 175, 176, 177, 0, 178, 179, 180, - 181, 182, 0, 0, 183, 184, 185, 186, 187, 0, - 188, 189, 190, 0, 191, 192, 193, 0, 194, 195, - 196, 197, 198, 199, 200, 201, 202, 203, 204, 0, - 205, 0, 206, 207, 208, 209, 0, 210, 0, 211, - 0, 0, 0, 214, 215, 509, 0, 218, 0, 219, - 0, 220, 221, 222, 0, 223, 224, 225, 226, 227, - 228, 229, 0, 231, 232, 233, 234, 0, 235, 236, - 237, 238, 239, 240, 0, 241, 0, 243, 244, 245, - 246, 247, 248, 249, 250, 0, 251, 0, 252, 0, - 0, 255, 0, 257, 258, 259, 260, 261, 262, 0, - 0, 263, 0, 265, 0, 0, 267, 268, 269, 0, - 0, 270, 271, 272, 273, 274, 510, 276, 277, 278, - 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, - 289, 290, 291, 292, 293, 294, 0, 296, 297, 298, - 299, 300, 0, 301, 302, 0, 304, 0, 305, 306, - 307, 308, 309, 310, 0, 311, 312, 0, 0, 313, - 314, 315, 0, 0, 316, 317, 0, 319, 0, 321, - 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, - 0, 332, 333, 334, 335, 336, 337, 338, 339, 340, - 0, 341, 342, 343, 344, 345, 346, 0, 347, 348, - 349, 350, 351, 352, 353, 354, 0, 355, 356, 357, - 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, - 0, 368, 369, 0, 371, 372, 373, 374, 375, 376, - 377, 378, 379, 380, 381, 382, 383, 384, 385, 0, - 386, 387, 388, 389, 390, 0, 392, 393, 394, 395, - 396, 0, 398, 399, 400, 401, 0, 402, 403, 404, - 405, 406, 407, 408, 409, 410, 411, 412, 413, 512, - 415, 416, 417, 0, 418, 419, 0, 420, 0, 422, - 423, 424, 425, 426, 0, 427, 428, 0, 0, 429, - 430, 431, 432, 433, 0, 434, 435, 436, 437, 438, - 439, 440, 441, 0, 0, 442, 443, 444, 445, 446, - 0, 0, 448, 449, 450, 451, 452, 453, 454, 0, - 455, 0, 457, 458, 459, 460, 461, 0, 0, 462, - 0, 0, 463, 464, 465, 466, 467, 468, 469, 470, - 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, - 481, 482, 483, 506, 0, 507, 0, 0, 0, 0, + 0, 1402, 0, 0, 0, 1397, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 94, 95, 96, 97, 98, 99, 100, 101, 0, - 102, 103, 104, 0, 0, 0, 0, 0, 0, 0, - 105, 106, 0, 107, 108, 109, 0, 111, 112, 113, - 114, 115, 0, 117, 118, 0, 119, 120, 121, 122, - 123, 124, 0, 0, 125, 126, 127, 128, 129, 0, - 130, 131, 132, 133, 134, 0, 0, 0, 136, 137, - 138, 139, 140, 141, 0, 143, 144, 145, 0, 146, - 147, 148, 149, 150, 151, 0, 0, 153, 154, 155, - 0, 0, 0, 0, 0, 0, 0, 161, 162, 163, - 164, 165, 166, 167, 168, 169, 170, 0, 171, 0, - 172, 173, 174, 175, 176, 177, 0, 178, 179, 180, - 181, 182, 0, 0, 183, 184, 185, 186, 187, 0, - 188, 189, 190, 0, 191, 192, 193, 0, 194, 195, - 196, 197, 198, 199, 200, 201, 202, 203, 204, 0, - 205, 0, 206, 207, 208, 209, 0, 210, 0, 211, - 0, 0, 0, 214, 215, 509, 0, 218, 0, 219, - 0, 220, 221, 222, 0, 223, 224, 225, 226, 227, - 2576, 229, 0, 231, 232, 233, 234, 0, 235, 236, - 237, 238, 239, 240, 0, 241, 0, 243, 244, 245, - 246, 247, 248, 249, 250, 0, 251, 0, 252, 0, - 0, 255, 0, 257, 258, 259, 260, 261, 262, 0, - 0, 263, 0, 265, 0, 0, 267, 268, 269, 0, - 0, 270, 271, 272, 273, 274, 510, 276, 277, 278, - 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, - 289, 290, 291, 292, 293, 294, 0, 296, 297, 298, - 299, 300, 0, 301, 302, 0, 304, 0, 305, 306, - 307, 308, 309, 310, 0, 311, 312, 0, 0, 313, - 314, 315, 0, 0, 316, 317, 0, 319, 0, 321, - 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, - 0, 332, 333, 334, 335, 336, 337, 338, 339, 340, - 0, 341, 342, 343, 344, 345, 346, 0, 347, 348, - 349, 350, 351, 352, 353, 354, 0, 355, 356, 357, - 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, - 0, 368, 369, 0, 371, 372, 373, 374, 375, 376, - 377, 378, 379, 380, 381, 382, 383, 384, 385, 0, - 386, 387, 388, 389, 390, 0, 392, 393, 394, 395, - 396, 0, 398, 399, 400, 401, 0, 402, 403, 404, - 405, 406, 407, 408, 409, 410, 411, 412, 413, 512, - 415, 416, 417, 0, 418, 419, 0, 420, 0, 422, - 423, 424, 425, 426, 0, 427, 428, 0, 0, 429, - 430, 431, 432, 433, 0, 434, 435, 436, 437, 438, - 439, 440, 441, 0, 0, 442, 443, 444, 445, 446, - 0, 0, 448, 449, 450, 451, 452, 453, 454, 0, - 455, 0, 457, 458, 459, 460, 461, 0, 0, 462, - 0, 0, 463, 464, 465, 466, 467, 468, 469, 470, - 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, - 481, 482, 483, 506, 0, 0, 0, 0, 0, 0, + 1384, 1398, 0, 1385, 0, 0, 1399, 1386, 1387, 1388, + 1389, 1390, 1391, 0, 0, 0, 0, 0, 0, 1403, + 0, 0, 1404, 0, 1407, 0, 0, 1392, 1400, 1401, + 0, 0, 0, 0, 0, 1394, 1405, 0, 0, 1406, + 0, 0, 1395, 1402, 0, 0, 0, 0, 0, 0, + 1397, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1398, 1396, 0, 0, + 0, 1399, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1403, 0, 0, 1404, 0, 0, 0, 0, 0, + 0, 0, 0, 1400, 1401, 0, 0, 0, 1405, 0, + 0, 1406, 0, 0, 0, 0, 0, 0, 1402, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 94, 95, 96, 97, 98, 99, 100, 101, 0, - 102, 103, 104, 0, 0, 0, 0, 0, 0, 0, - 105, 106, 0, 107, 108, 109, 0, 111, 112, 113, - 114, 115, 0, 117, 118, 0, 119, 120, 121, 122, - 123, 124, 0, 0, 125, 126, 127, 128, 129, 0, - 130, 131, 132, 133, 134, 0, 0, 0, 136, 137, - 138, 139, 140, 141, 0, 143, 144, 145, 0, 146, - 147, 148, 149, 150, 151, 0, 0, 153, 154, 155, - 0, 0, 0, 0, 0, 0, 0, 161, 162, 163, - 164, 165, 166, 167, 168, 169, 170, 0, 171, 0, - 172, 173, 174, 175, 176, 177, 0, 178, 179, 180, - 181, 182, 0, 0, 183, 184, 185, 186, 187, 0, - 188, 189, 190, 0, 191, 192, 193, 0, 194, 195, - 196, 197, 198, 199, 200, 201, 202, 203, 204, 0, - 205, 0, 206, 207, 208, 209, 0, 210, 0, 211, - 0, 0, 0, 214, 215, 509, 0, 218, 0, 219, - 0, 220, 221, 222, 0, 223, 224, 225, 226, 227, - 228, 229, 0, 231, 232, 233, 234, 0, 235, 236, - 237, 238, 239, 240, 0, 241, 0, 243, 244, 245, - 246, 247, 248, 249, 250, 0, 251, 0, 252, 0, - 0, 255, 0, 257, 258, 259, 260, 261, 262, 0, - 0, 263, 0, 265, 0, 0, 267, 268, 269, 0, - 0, 270, 271, 272, 273, 274, 510, 276, 277, 278, - 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, - 289, 290, 291, 292, 293, 294, 0, 296, 297, 298, - 299, 300, 0, 301, 302, 0, 304, 0, 305, 306, - 307, 308, 309, 310, 0, 311, 312, 0, 0, 313, - 314, 315, 0, 0, 316, 317, 0, 319, 0, 321, - 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, - 0, 332, 333, 334, 335, 336, 337, 338, 339, 340, - 0, 341, 342, 343, 344, 345, 346, 0, 347, 348, - 349, 350, 351, 352, 353, 354, 0, 355, 356, 357, - 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, - 0, 368, 369, 0, 371, 372, 373, 374, 375, 376, - 377, 378, 379, 380, 381, 382, 383, 384, 385, 0, - 386, 387, 388, 389, 390, 0, 392, 393, 394, 395, - 396, 0, 398, 399, 400, 401, 0, 402, 403, 404, - 405, 406, 407, 408, 409, 410, 411, 412, 413, 512, - 415, 416, 417, 0, 418, 419, 0, 420, 0, 422, - 423, 424, 425, 426, 0, 427, 428, 0, 0, 429, - 430, 431, 432, 433, 0, 434, 435, 436, 437, 438, - 439, 440, 441, 0, 0, 442, 443, 444, 445, 446, - 0, 0, 448, 449, 450, 451, 452, 453, 454, 0, - 455, 0, 457, 458, 459, 460, 461, 0, 0, 462, - 0, 0, 463, 464, 465, 466, 467, 468, 469, 470, - 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, - 481, 482, 483, 506, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1408, 0, 1407, 1409, + 1410, 1411, 0, 1412, 1413, 1414, 1415, 1416, 1417, 0, + 0, 0, 0, 2768, 0, 0, 1403, 0, 0, 1404, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 94, 95, 96, 97, 98, 99, 100, 101, 0, - 102, 103, 104, 0, 0, 0, 0, 0, 0, 0, - 105, 106, 0, 107, 108, 109, 0, 111, 112, 113, - 114, 115, 0, 117, 118, 0, 119, 120, 121, 122, - 123, 124, 0, 0, 125, 126, 127, 128, 129, 0, - 130, 131, 132, 133, 134, 0, 0, 0, 136, 137, - 138, 139, 140, 141, 0, 143, 144, 145, 0, 146, - 147, 148, 149, 150, 151, 0, 0, 153, 154, 155, - 0, 0, 0, 0, 0, 0, 0, 161, 162, 163, - 164, 165, 166, 167, 168, 169, 170, 0, 171, 0, - 172, 173, 174, 175, 176, 177, 0, 178, 179, 180, - 181, 182, 0, 0, 183, 184, 185, 186, 187, 0, - 188, 189, 190, 0, 191, 192, 193, 0, 194, 195, - 196, 197, 198, 199, 200, 201, 202, 203, 204, 0, - 205, 0, 206, 207, 208, 209, 0, 210, 0, 211, - 0, 0, 0, 214, 215, 509, 0, 601, 0, 219, - 0, 220, 221, 222, 0, 223, 224, 225, 226, 227, - 228, 229, 0, 231, 232, 233, 234, 0, 235, 236, - 237, 238, 239, 240, 0, 241, 0, 243, 244, 245, - 246, 247, 248, 249, 250, 0, 251, 0, 252, 0, - 0, 255, 0, 257, 258, 259, 260, 261, 262, 0, - 0, 263, 0, 265, 0, 0, 267, 268, 602, 0, - 0, 270, 271, 272, 273, 274, 510, 276, 277, 278, - 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, - 289, 290, 291, 292, 293, 294, 0, 296, 297, 298, - 299, 300, 0, 301, 302, 0, 304, 0, 305, 306, - 307, 308, 309, 310, 0, 311, 312, 0, 0, 313, - 314, 315, 0, 0, 316, 317, 0, 319, 0, 321, - 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, - 0, 332, 333, 334, 335, 336, 337, 338, 339, 340, - 0, 341, 342, 343, 344, 345, 346, 0, 347, 348, - 349, 350, 351, 352, 353, 354, 0, 355, 356, 357, - 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, - 0, 368, 369, 0, 371, 372, 373, 374, 375, 376, - 377, 378, 603, 380, 381, 382, 383, 384, 385, 0, - 386, 387, 388, 389, 604, 0, 392, 393, 394, 395, - 396, 0, 398, 399, 400, 401, 0, 402, 403, 404, - 405, 406, 407, 408, 409, 410, 411, 412, 413, 512, - 415, 416, 417, 0, 418, 419, 0, 420, 0, 422, - 423, 424, 425, 426, 0, 605, 428, 0, 0, 429, - 430, 431, 432, 433, 0, 434, 435, 436, 437, 438, - 439, 440, 441, 0, 0, 442, 443, 444, 445, 446, - 0, 0, 448, 449, 450, 451, 452, 453, 454, 0, - 455, 0, 457, 458, 459, 460, 461, 0, 0, 462, - 0, 0, 463, 464, 465, 466, 467, 468, 469, 470, - 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, - 481, 482, 483, 506, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1405, 1384, 0, 1406, 1385, 1397, 0, + 0, 1386, 1387, 1388, 1389, 1390, 1391, 0, 0, 0, + 0, 0, 0, 0, 1398, 0, 0, 0, 0, 1399, + 1407, 1392, 0, 0, 0, 0, 0, 0, 0, 1394, + 0, 0, 0, 0, 0, 0, 1395, 0, 0, 0, + 0, 1400, 1401, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1402, 0, 0, 0, + 1408, 1396, 0, 1409, 1410, 1411, 0, 1412, 1413, 1414, + 1415, 1416, 1417, 0, 0, 0, 0, 2831, 0, 0, + 0, 0, 0, 0, 0, 1407, 0, 0, 0, 0, + 0, 0, 0, 0, 1403, 0, 0, 1404, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 94, 95, 96, 97, 98, 99, 100, 101, 0, - 102, 103, 104, 0, 0, 0, 0, 0, 0, 0, - 105, 106, 0, 107, 108, 109, 0, 111, 112, 113, - 114, 115, 0, 117, 118, 0, 119, 120, 121, 122, - 123, 124, 0, 0, 125, 126, 127, 128, 129, 0, - 130, 131, 132, 133, 134, 0, 0, 0, 136, 137, - 138, 139, 140, 141, 0, 143, 144, 145, 0, 146, - 147, 148, 149, 150, 151, 0, 0, 153, 154, 155, - 0, 0, 0, 0, 0, 0, 0, 161, 162, 163, - 164, 165, 166, 167, 168, 169, 170, 0, 171, 0, - 172, 173, 174, 175, 176, 177, 0, 178, 179, 180, - 181, 182, 0, 0, 183, 184, 185, 186, 187, 0, - 188, 189, 190, 0, 191, 192, 193, 0, 194, 195, - 196, 197, 198, 199, 200, 201, 202, 203, 204, 0, - 205, 0, 206, 207, 208, 209, 0, 210, 0, 211, - 0, 0, 0, 214, 215, 509, 0, 218, 0, 219, - 0, 220, 221, 222, 0, 223, 224, 225, 226, 227, - 673, 229, 0, 231, 232, 233, 234, 0, 235, 236, - 237, 238, 239, 240, 0, 241, 0, 243, 244, 245, - 246, 247, 248, 249, 250, 0, 251, 0, 252, 0, - 0, 255, 0, 257, 258, 259, 260, 261, 262, 0, - 0, 263, 0, 265, 0, 0, 267, 268, 269, 0, - 0, 270, 271, 272, 273, 274, 510, 276, 277, 278, - 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, - 289, 290, 291, 292, 293, 294, 0, 296, 297, 298, - 299, 300, 0, 301, 302, 0, 304, 0, 305, 306, - 307, 308, 309, 310, 0, 311, 312, 0, 0, 313, - 314, 315, 0, 0, 316, 317, 0, 319, 0, 321, - 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, - 0, 332, 333, 334, 335, 336, 337, 338, 339, 340, - 0, 341, 342, 343, 344, 345, 346, 0, 347, 348, - 349, 350, 351, 352, 353, 354, 0, 355, 356, 357, - 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, - 0, 368, 369, 0, 371, 372, 373, 374, 375, 376, - 377, 378, 379, 380, 381, 382, 383, 384, 385, 0, - 386, 387, 388, 389, 390, 0, 392, 393, 394, 395, - 396, 0, 398, 399, 400, 401, 0, 402, 403, 404, - 405, 406, 407, 408, 409, 410, 411, 412, 413, 512, - 415, 416, 417, 0, 418, 419, 0, 420, 0, 422, - 423, 424, 425, 426, 0, 427, 428, 0, 0, 429, - 430, 431, 432, 433, 0, 434, 435, 436, 437, 438, - 439, 440, 441, 0, 0, 442, 443, 444, 445, 446, - 0, 0, 448, 449, 450, 451, 452, 453, 454, 0, - 455, 0, 457, 458, 459, 460, 461, 0, 0, 462, - 0, 0, 463, 464, 465, 466, 467, 468, 469, 470, - 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, - 481, 482, 483, 506, 0, 0, 0, 0, 0, 0, + 0, 1405, 0, 0, 1406, 0, 0, 0, 0, 0, + 0, 0, 1408, 0, 0, 1409, 1410, 1411, 0, 1412, + 1413, 1414, 1415, 1416, 1417, 0, 0, 0, 0, 2938, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 94, 95, 96, 97, 98, 99, 100, 101, 0, - 102, 103, 104, 0, 0, 0, 0, 0, 0, 0, - 105, 106, 0, 107, 108, 109, 0, 111, 112, 113, - 114, 115, 0, 117, 118, 0, 119, 120, 121, 122, - 123, 124, 0, 0, 125, 126, 127, 128, 129, 0, - 130, 131, 132, 133, 134, 0, 0, 0, 136, 137, - 138, 139, 140, 141, 0, 143, 144, 145, 0, 146, - 147, 148, 149, 150, 151, 0, 0, 153, 154, 155, - 0, 0, 0, 0, 0, 0, 0, 161, 162, 163, - 164, 165, 166, 167, 168, 169, 170, 0, 171, 0, - 172, 173, 174, 175, 176, 177, 0, 178, 179, 180, - 181, 182, 0, 0, 183, 184, 185, 186, 187, 0, - 188, 189, 190, 0, 191, 192, 193, 0, 194, 195, - 196, 197, 198, 199, 200, 201, 202, 203, 204, 0, - 205, 0, 206, 207, 208, 209, 0, 210, 0, 211, - 0, 0, 0, 214, 215, 509, 0, 218, 0, 219, - 0, 220, 221, 222, 0, 223, 224, 225, 226, 227, - 769, 229, 0, 231, 232, 233, 234, 0, 235, 236, - 237, 238, 239, 240, 0, 241, 0, 243, 244, 245, - 246, 247, 248, 249, 250, 0, 251, 0, 252, 0, - 0, 255, 0, 257, 258, 259, 260, 261, 262, 0, - 0, 263, 0, 265, 0, 0, 267, 268, 269, 0, - 0, 270, 271, 272, 273, 274, 510, 276, 277, 278, - 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, - 289, 290, 291, 292, 293, 294, 0, 296, 297, 298, - 299, 300, 0, 301, 302, 0, 304, 0, 305, 306, - 307, 308, 309, 310, 0, 311, 312, 0, 0, 313, - 314, 315, 0, 0, 316, 317, 0, 319, 0, 321, - 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, - 0, 332, 333, 334, 335, 336, 337, 338, 339, 340, - 0, 341, 342, 343, 344, 345, 346, 0, 347, 348, - 349, 350, 351, 352, 353, 354, 0, 355, 356, 357, - 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, - 0, 368, 369, 0, 371, 372, 373, 374, 375, 376, - 377, 378, 379, 380, 381, 382, 383, 384, 385, 0, - 386, 387, 388, 389, 390, 0, 392, 393, 394, 395, - 396, 0, 398, 399, 400, 401, 0, 402, 403, 404, - 405, 406, 407, 408, 409, 410, 411, 412, 413, 512, - 415, 416, 417, 0, 418, 419, 0, 420, 0, 422, - 423, 424, 425, 426, 0, 427, 428, 0, 0, 429, - 430, 431, 432, 433, 0, 434, 435, 436, 437, 438, - 439, 440, 441, 0, 0, 442, 443, 444, 445, 446, - 0, 0, 448, 449, 450, 451, 452, 453, 454, 0, - 455, 0, 457, 458, 459, 460, 461, 0, 0, 462, - 0, 0, 463, 464, 465, 466, 467, 468, 469, 470, - 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, - 481, 482, 483, 506, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 94, 95, 96, 97, 98, 99, 100, 101, 0, - 102, 103, 104, 0, 0, 0, 0, 0, 0, 0, - 105, 106, 0, 107, 108, 109, 0, 111, 112, 113, - 114, 115, 0, 117, 118, 0, 119, 120, 121, 122, - 123, 124, 0, 0, 125, 126, 127, 128, 129, 0, - 130, 131, 132, 133, 134, 0, 0, 0, 136, 137, - 138, 139, 140, 141, 0, 143, 144, 145, 0, 146, - 147, 148, 149, 150, 151, 0, 0, 153, 154, 155, - 0, 0, 0, 0, 0, 0, 0, 161, 162, 163, - 164, 165, 166, 167, 168, 169, 170, 0, 171, 0, - 172, 173, 174, 175, 176, 177, 0, 178, 179, 180, - 181, 182, 0, 0, 183, 184, 185, 186, 187, 0, - 188, 189, 190, 0, 191, 192, 193, 0, 194, 195, - 196, 197, 198, 199, 200, 201, 202, 203, 204, 0, - 205, 0, 206, 207, 208, 209, 0, 210, 0, 211, - 0, 0, 0, 214, 215, 509, 0, 218, 0, 219, - 0, 220, 221, 222, 0, 223, 224, 225, 226, 227, - 228, 229, 0, 231, 232, 233, 234, 0, 235, 236, - 237, 238, 239, 240, 0, 241, 0, 243, 244, 245, - 246, 247, 248, 249, 250, 0, 251, 0, 252, 0, - 0, 255, 0, 257, 258, 259, 260, 261, 262, 0, - 0, 263, 0, 265, 0, 0, 267, 268, 269, 0, - 0, 270, 271, 272, 273, 274, 510, 276, 277, 278, - 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, - 289, 290, 291, 292, 293, 294, 0, 296, 297, 298, - 299, 300, 0, 301, 302, 0, 304, 0, 305, 306, - 307, 308, 309, 310, 0, 311, 312, 0, 0, 313, - 314, 315, 0, 0, 316, 317, 0, 319, 0, 321, - 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, - 0, 332, 333, 334, 335, 336, 337, 338, 339, 340, - 0, 341, 342, 343, 344, 345, 346, 0, 347, 348, - 349, 350, 351, 352, 353, 354, 0, 355, 356, 357, - 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, - 0, 368, 369, 0, 371, 372, 373, 374, 375, 376, - 377, 378, 603, 380, 381, 382, 383, 384, 385, 0, - 386, 387, 388, 389, 390, 0, 392, 393, 394, 395, - 396, 0, 398, 399, 400, 401, 0, 402, 403, 404, - 405, 406, 407, 408, 409, 410, 411, 412, 413, 512, - 415, 416, 417, 0, 418, 419, 0, 420, 0, 422, - 423, 424, 425, 426, 0, 605, 428, 0, 0, 429, - 430, 431, 432, 433, 0, 434, 435, 436, 437, 438, - 439, 440, 441, 0, 0, 442, 443, 444, 445, 446, - 0, 0, 448, 449, 450, 451, 452, 453, 454, 0, - 455, 0, 457, 458, 459, 460, 461, 0, 0, 462, - 0, 0, 463, 464, 465, 466, 467, 468, 469, 470, - 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, - 481, 482, 483, 506, 0, 0, 0, 0, 0, 0, + 0, 0, 1397, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1398, 0, + 0, 0, 0, 1399, 0, 0, 0, 1408, 0, 0, + 1409, 1410, 1411, 0, 1412, 1413, 1414, 1415, 1416, 1417, + 0, 0, 0, 1407, 2986, 1400, 1401, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 94, 95, 96, 97, 98, 99, 100, 101, 0, - 102, 103, 104, 0, 0, 0, 0, 0, 1499, 0, - 105, 106, 0, 107, 108, 109, 0, 111, 112, 113, - 114, 115, 0, 117, 118, 0, 119, 120, 121, 122, - 123, 124, 0, 0, 125, 126, 127, 128, 129, 0, - 130, 131, 132, 133, 134, 0, 0, 0, 136, 137, - 138, 139, 140, 141, 0, 143, 144, 145, 0, 146, - 147, 148, 149, 150, 151, 0, 0, 153, 154, 155, - 0, 0, 0, 0, 0, 0, 0, 161, 162, 163, - 164, 165, 166, 167, 168, 169, 170, 0, 171, 0, - 172, 173, 174, 175, 176, 177, 0, 178, 179, 180, - 181, 182, 0, 0, 183, 184, 185, 186, 187, 0, - 188, 189, 190, 0, 191, 192, 193, 0, 194, 195, - 196, 197, 198, 199, 200, 201, 202, 203, 204, 0, - 205, 0, 206, 207, 208, 209, 0, 210, 0, 211, - 0, 0, 0, 214, 215, 509, 0, 218, 0, 219, - 0, 220, 221, 222, 0, 223, 224, 225, 226, 227, - 228, 229, 0, 231, 232, 233, 234, 0, 235, 236, - 237, 238, 239, 240, 0, 241, 0, 243, 244, 245, - 246, 247, 248, 249, 250, 0, 251, 0, 252, 0, - 0, 255, 0, 257, 258, 259, 260, 261, 262, 0, - 0, 263, 0, 265, 0, 0, 267, 268, 269, 0, - 0, 270, 271, 272, 273, 274, 510, 276, 277, 278, - 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, - 289, 290, 291, 292, 293, 294, 0, 296, 297, 298, - 299, 300, 0, 301, 302, 0, 304, 0, 305, 306, - 307, 308, 309, 310, 0, 311, 312, 0, 0, 313, - 314, 315, 0, 0, 316, 317, 0, 319, 0, 321, - 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, - 0, 332, 333, 334, 335, 336, 337, 338, 339, 340, - 0, 341, 342, 343, 344, 345, 346, 0, 347, 348, - 349, 350, 351, 352, 353, 354, 0, 355, 356, 357, - 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, - 0, 368, 369, 0, 371, 372, 373, 374, 375, 376, - 377, 378, 379, 380, 381, 382, 383, 384, 385, 0, - 386, 387, 388, 389, 390, 0, 0, 393, 394, 395, - 396, 0, 398, 399, 400, 401, 0, 402, 403, 404, - 405, 406, 407, 408, 409, 410, 411, 412, 413, 512, - 415, 416, 417, 0, 418, 419, 0, 420, 0, 422, - 423, 424, 425, 426, 0, 427, 428, 0, 0, 429, - 430, 431, 432, 433, 0, 434, 435, 436, 437, 438, - 439, 440, 441, 0, 0, 442, 443, 444, 445, 446, - 0, 0, 448, 449, 450, 451, 452, 453, 454, 0, - 455, 0, 457, 458, 459, 460, 461, 0, 0, 462, - 0, 0, 463, 464, 465, 466, 467, 468, 469, 470, - 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, - 481, 482, 483, 506, 0, 0, 0, 0, 0, 0, + 1402, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 94, 95, 96, 97, 98, 99, 100, 101, 0, - 102, 103, 104, 0, 0, 0, 0, 0, 0, 0, - 105, 106, 0, 107, 108, 109, 0, 111, 112, 113, - 114, 115, 0, 117, 118, 0, 119, 120, 121, 122, - 123, 124, 0, 0, 125, 126, 127, 128, 129, 0, - 130, 131, 132, 133, 134, 0, 0, 0, 136, 137, - 138, 139, 140, 141, 0, 143, 144, 145, 0, 146, - 147, 148, 149, 150, 151, 0, 0, 153, 154, 155, - 0, 0, 0, 0, 0, 0, 0, 161, 162, 163, - 164, 165, 166, 167, 168, 169, 170, 0, 171, 0, - 172, 173, 174, 175, 176, 177, 0, 178, 179, 180, - 181, 182, 0, 0, 183, 184, 185, 186, 187, 0, - 188, 189, 190, 0, 191, 192, 193, 0, 194, 195, - 196, 197, 198, 199, 200, 201, 202, 203, 204, 0, - 205, 0, 206, 207, 208, 209, 0, 210, 0, 211, - 0, 0, 0, 214, 215, 509, 0, 218, 0, 219, - 0, 220, 221, 222, 0, 223, 224, 225, 226, 227, - 1596, 229, 0, 231, 232, 233, 234, 0, 235, 236, - 237, 238, 239, 240, 0, 241, 0, 243, 244, 245, - 246, 247, 248, 249, 250, 0, 251, 0, 252, 0, - 0, 255, 0, 257, 258, 259, 260, 261, 262, 0, - 0, 263, 0, 265, 0, 0, 267, 268, 269, 0, - 0, 270, 271, 272, 273, 274, 510, 276, 277, 278, - 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, - 289, 290, 291, 292, 293, 294, 0, 296, 297, 298, - 299, 300, 0, 301, 302, 0, 304, 0, 305, 306, - 307, 308, 309, 310, 0, 311, 312, 0, 0, 313, - 314, 315, 0, 0, 316, 317, 0, 319, 0, 321, - 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, - 0, 332, 333, 334, 335, 336, 337, 338, 339, 340, - 0, 341, 342, 343, 344, 345, 346, 0, 347, 348, - 349, 350, 351, 352, 353, 354, 0, 355, 356, 357, - 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, - 0, 368, 369, 0, 371, 372, 373, 374, 375, 376, - 377, 378, 379, 380, 381, 382, 383, 384, 385, 0, - 386, 387, 388, 389, 390, 0, 392, 393, 394, 395, - 396, 0, 398, 399, 400, 401, 0, 402, 403, 404, - 405, 406, 407, 408, 409, 410, 411, 412, 413, 512, - 415, 416, 417, 0, 418, 419, 0, 420, 0, 422, - 423, 424, 425, 426, 0, 427, 428, 0, 0, 429, - 430, 431, 432, 433, 0, 434, 435, 436, 437, 438, - 439, 440, 441, 0, 0, 442, 443, 444, 445, 446, - 0, 0, 448, 449, 450, 451, 452, 453, 454, 0, - 455, 0, 457, 458, 459, 460, 461, 0, 0, 462, - 0, 0, 463, 464, 465, 466, 467, 468, 469, 470, - 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, - 481, 482, 483, 506, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 94, 95, 96, 97, 98, 99, 100, 101, 0, - 102, 103, 104, 0, 0, 0, 0, 0, 0, 0, - 105, 106, 0, 107, 108, 109, 0, 111, 112, 113, - 114, 115, 0, 117, 118, 0, 119, 120, 121, 122, - 123, 124, 0, 0, 125, 126, 127, 128, 129, 0, - 130, 131, 132, 133, 134, 0, 0, 0, 136, 137, - 138, 139, 140, 141, 0, 143, 144, 145, 0, 146, - 147, 148, 149, 150, 151, 0, 0, 153, 154, 155, - 0, 0, 0, 0, 0, 0, 0, 161, 162, 163, - 164, 165, 166, 167, 168, 169, 170, 0, 171, 0, - 172, 173, 174, 175, 176, 177, 0, 178, 179, 180, - 181, 182, 0, 0, 183, 184, 185, 186, 187, 0, - 188, 189, 190, 0, 191, 192, 193, 0, 194, 195, - 196, 197, 198, 199, 200, 201, 202, 203, 204, 0, - 205, 0, 206, 207, 208, 209, 0, 210, 0, 211, - 0, 0, 0, 214, 215, 509, 0, 218, 0, 219, - 0, 220, 221, 222, 0, 223, 224, 225, 226, 227, - 1880, 229, 0, 231, 232, 233, 234, 0, 235, 236, - 237, 238, 239, 240, 0, 241, 0, 243, 244, 245, - 246, 247, 248, 249, 250, 0, 251, 0, 252, 0, - 0, 255, 0, 257, 258, 259, 260, 261, 262, 0, - 0, 263, 0, 265, 0, 0, 267, 268, 269, 0, - 0, 270, 271, 272, 273, 274, 510, 276, 277, 278, - 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, - 289, 290, 291, 292, 293, 294, 0, 296, 297, 298, - 299, 300, 0, 301, 302, 0, 304, 0, 305, 306, - 307, 308, 309, 310, 0, 311, 312, 0, 0, 313, - 314, 315, 0, 0, 316, 317, 0, 319, 0, 321, - 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, - 0, 332, 333, 334, 335, 336, 337, 338, 339, 340, - 0, 341, 342, 343, 344, 345, 346, 0, 347, 348, - 349, 350, 351, 352, 353, 354, 0, 355, 356, 357, - 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, - 0, 368, 369, 0, 371, 372, 373, 374, 375, 376, - 377, 378, 379, 380, 381, 382, 383, 384, 385, 0, - 386, 387, 388, 389, 390, 0, 392, 393, 394, 395, - 396, 0, 398, 399, 400, 401, 0, 402, 403, 404, - 405, 406, 407, 408, 409, 410, 411, 412, 413, 512, - 415, 416, 417, 0, 418, 419, 0, 420, 0, 422, - 423, 424, 425, 426, 0, 427, 428, 0, 0, 429, - 430, 431, 432, 433, 0, 434, 435, 436, 437, 438, - 439, 440, 441, 0, 0, 442, 443, 444, 445, 446, - 0, 0, 448, 449, 450, 451, 452, 453, 454, 0, - 455, 0, 457, 458, 459, 460, 461, 0, 0, 462, - 0, 0, 463, 464, 465, 466, 467, 468, 469, 470, - 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, - 481, 482, 483, 506, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1403, 0, + 0, 1404, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1405, 0, 0, 1406, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 94, 95, 96, 97, 98, 99, 100, 101, 0, - 102, 103, 104, 0, 0, 0, 0, 0, 0, 0, - 105, 106, 0, 107, 108, 109, 0, 111, 112, 113, - 114, 115, 0, 117, 118, 0, 119, 120, 121, 122, - 123, 124, 0, 0, 125, 126, 127, 128, 129, 0, - 130, 131, 132, 133, 134, 0, 0, 0, 136, 137, - 138, 139, 140, 141, 0, 143, 144, 145, 0, 146, - 147, 148, 149, 150, 151, 0, 0, 153, 154, 155, - 0, 0, 0, 0, 0, 0, 0, 161, 162, 163, - 164, 165, 166, 167, 168, 169, 170, 0, 171, 0, - 172, 173, 174, 175, 176, 177, 0, 178, 179, 180, - 181, 182, 0, 0, 183, 184, 185, 186, 187, 0, - 188, 189, 190, 0, 191, 192, 193, 0, 194, 195, - 196, 197, 198, 199, 200, 201, 202, 203, 204, 0, - 205, 0, 206, 207, 208, 209, 0, 210, 0, 211, - 0, 0, 0, 214, 215, 509, 0, 218, 0, 219, - 0, 220, 221, 222, 0, 223, 224, 225, 226, 227, - 1895, 229, 0, 231, 232, 233, 234, 0, 235, 236, - 237, 238, 239, 240, 0, 241, 0, 243, 244, 245, - 246, 247, 248, 249, 250, 0, 251, 0, 252, 0, - 0, 255, 0, 257, 258, 259, 260, 261, 262, 0, - 0, 263, 0, 265, 0, 0, 267, 268, 269, 0, - 0, 270, 271, 272, 273, 274, 510, 276, 277, 278, - 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, - 289, 290, 291, 292, 293, 294, 0, 296, 297, 298, - 299, 300, 0, 301, 302, 0, 304, 0, 305, 306, - 307, 308, 309, 310, 0, 311, 312, 0, 0, 313, - 314, 315, 0, 0, 316, 317, 0, 319, 0, 321, - 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, - 0, 332, 333, 334, 335, 336, 337, 338, 339, 340, - 0, 341, 342, 343, 344, 345, 346, 0, 347, 348, - 349, 350, 351, 352, 353, 354, 0, 355, 356, 357, - 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, - 0, 368, 369, 0, 371, 372, 373, 374, 375, 376, - 377, 378, 379, 380, 381, 382, 383, 384, 385, 0, - 386, 387, 388, 389, 390, 0, 392, 393, 394, 395, - 396, 0, 398, 399, 400, 401, 0, 402, 403, 404, - 405, 406, 407, 408, 409, 410, 411, 412, 413, 512, - 415, 416, 417, 0, 418, 419, 0, 420, 0, 422, - 423, 424, 425, 426, 0, 427, 428, 0, 0, 429, - 430, 431, 432, 433, 0, 434, 435, 436, 437, 438, - 439, 440, 441, 0, 0, 442, 443, 444, 445, 446, - 0, 0, 448, 449, 450, 451, 452, 453, 454, 0, - 455, 0, 457, 458, 459, 460, 461, 0, 0, 462, - 0, 0, 463, 464, 465, 466, 467, 468, 469, 470, - 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, - 481, 482, 483, 2505, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 94, 95, 96, 97, 98, 99, 100, 101, 0, - 102, 103, 104, 0, 0, 0, 0, 0, 0, 0, - 105, 106, 0, 107, 108, 109, 2506, 111, 112, 113, - 0, 696, 2507, 698, 699, 0, 119, 120, 121, 122, - 123, 124, 0, 0, 125, 126, 700, 701, 129, 0, - 130, 131, 132, 133, 0, 0, 2508, 0, 136, 137, - 138, 139, 140, 141, 2509, 143, 144, 145, 0, 146, - 147, 148, 149, 150, 151, 0, 2510, 153, 154, 155, - 2511, 2512, 2513, 2514, 0, 0, 2515, 161, 162, 163, - 164, 165, 166, 167, 710, 711, 170, 0, 171, 0, - 172, 173, 174, 175, 176, 177, 0, 178, 179, 180, - 181, 182, 0, 0, 183, 184, 712, 186, 187, 0, - 188, 189, 190, 0, 191, 192, 193, 0, 194, 195, - 196, 197, 0, 199, 200, 201, 202, 203, 0, 0, - 205, 0, 206, 207, 713, 209, 0, 210, 0, 211, - 2516, 0, 2517, 214, 215, 2518, 2519, 218, 0, 219, - 0, 0, 0, 222, 0, 223, 224, 225, 226, 227, - 228, 229, 2520, 231, 232, 233, 234, 0, 235, 236, - 237, 238, 239, 240, 0, 241, 2521, 0, 244, 245, - 246, 247, 248, 720, 721, 0, 722, 0, 252, 2522, - 2523, 255, 2524, 257, 258, 259, 260, 261, 262, 0, - 0, 263, 2525, 265, 2526, 0, 267, 268, 269, 0, - 0, 270, 271, 272, 273, 274, 2719, 276, 277, 278, - 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, - 289, 290, 291, 292, 293, 729, 2528, 731, 297, 298, - 299, 0, 0, 301, 302, 2530, 304, 0, 0, 306, - 733, 308, 309, 310, 0, 311, 312, 0, 0, 313, - 314, 315, 0, 0, 316, 0, 2532, 319, 2533, 0, - 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, - 0, 332, 333, 0, 335, 336, 0, 338, 339, 340, - 0, 341, 342, 343, 344, 345, 346, 0, 347, 348, - 349, 736, 351, 352, 353, 354, 0, 355, 356, 357, - 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, - 0, 368, 369, 2534, 371, 372, 373, 0, 375, 376, - 377, 378, 379, 380, 381, 382, 383, 384, 385, 0, - 386, 387, 388, 389, 390, 2535, 392, 0, 394, 395, - 396, 2537, 398, 399, 742, 401, 0, 402, 403, 404, - 405, 406, 407, 408, 409, 410, 411, 412, 413, 2720, - 415, 0, 417, 0, 418, 419, 0, 420, 2539, 422, - 423, 424, 425, 426, 0, 745, 746, 0, 0, 429, - 430, 0, 432, 0, 0, 434, 435, 2540, 437, 438, - 439, 440, 441, 0, 0, 442, 443, 444, 445, 446, - 2541, 0, 448, 449, 450, 451, 452, 0, 749, 0, - 455, 2542, 457, 458, 459, 460, 461, 0, 0, 462, - 0, 0, 463, 464, 465, 466, 467, 468, 694, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 480, - 481, 482, 483, 0, 0, 0, 94, 95, 96, 97, - 98, 99, 100, 101, 0, 102, 103, 104, 0, 0, - 0, 0, 0, 0, 0, 105, 106, 0, 107, 108, - 109, 695, 111, 112, 113, 0, 696, 697, 698, 699, - 0, 119, 120, 121, 122, 123, 124, 0, 0, 125, - 126, 700, 701, 129, 0, 130, 131, 132, 133, 0, - 0, 702, 0, 136, 137, 138, 139, 140, 141, 703, - 143, 144, 145, 0, 146, 147, 148, 149, 150, 151, - 0, 704, 153, 154, 155, 705, 706, 707, 708, 0, - 0, 709, 161, 162, 163, 164, 165, 166, 167, 710, - 711, 170, 0, 171, 0, 172, 173, 174, 175, 176, - 177, 0, 178, 179, 180, 181, 182, 0, 0, 183, - 184, 712, 186, 187, 0, 188, 189, 190, 0, 191, - 192, 193, 0, 194, 195, 196, 197, 0, 199, 200, - 201, 202, 203, 0, 0, 205, 0, 206, 207, 713, - 209, 0, 210, 0, 211, 714, 0, 715, 214, 215, - 0, 716, 218, 0, 219, 0, 0, 0, 222, 0, - 223, 224, 225, 226, 227, 228, 229, 718, 231, 232, - 233, 234, 0, 235, 236, 237, 238, 239, 240, 0, - 241, 719, 0, 244, 245, 246, 247, 248, 720, 721, - 0, 722, 0, 252, 723, 724, 255, 725, 257, 258, - 259, 260, 261, 262, 0, 0, 263, 726, 265, 727, - 0, 267, 268, 269, 0, 0, 270, 271, 272, 273, - 274, 0, 276, 277, 278, 279, 280, 281, 282, 283, - 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, - 729, 730, 731, 297, 298, 299, 0, 0, 301, 302, - 732, 304, 0, 0, 306, 733, 308, 309, 310, 0, - 311, 312, 0, 0, 313, 314, 315, 0, 0, 316, - 0, 734, 319, 735, 0, 322, 323, 324, 325, 326, - 327, 328, 329, 330, 331, 0, 332, 333, 0, 335, - 336, 0, 338, 339, 340, 0, 341, 342, 343, 344, - 345, 346, 0, 347, 348, 349, 736, 351, 352, 353, - 354, 0, 355, 356, 357, 358, 359, 360, 361, 362, - 363, 364, 365, 366, 367, 0, 368, 369, 737, 371, - 372, 373, 0, 375, 376, 377, 378, 379, 380, 381, - 382, 383, 384, 385, 0, 386, 387, 388, 389, 390, - 739, 392, 0, 394, 395, 396, 741, 398, 399, 742, - 401, 0, 402, 403, 404, 405, 406, 407, 408, 409, - 410, 411, 412, 413, 0, 415, 0, 417, 0, 418, - 419, 0, 420, 744, 422, 423, 424, 425, 426, 0, - 745, 746, 0, 0, 429, 430, 0, 432, 0, 0, - 434, 435, 747, 437, 438, 439, 440, 441, 0, 0, - 442, 443, 444, 445, 446, 748, 0, 448, 449, 450, - 451, 452, 0, 749, 0, 455, 750, 457, 458, 459, - 460, 461, 0, 0, 462, 0, 0, 463, 464, 465, - 466, 467, 468, 506, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 480, 481, 482, 483, 0, 0, - 0, 94, 95, 96, 97, 98, 99, 100, 101, 0, - 102, 103, 104, 0, 0, 0, 0, 0, 0, 0, - 105, 106, 0, 107, 108, 109, 0, 111, 112, 113, - 114, 115, 0, 117, 118, 0, 119, 120, 121, 122, - 123, 124, 0, 0, 125, 126, 127, 128, 129, 0, - 130, 131, 132, 133, 134, 0, 0, 0, 136, 137, - 138, 139, 140, 141, 0, 143, 144, 145, 0, 146, - 147, 148, 149, 150, 151, 0, 0, 153, 154, 155, - 0, 0, 0, 0, 0, 0, 0, 161, 162, 163, - 164, 165, 166, 167, 168, 169, 170, 0, 171, 0, - 172, 173, 174, 175, 176, 177, 0, 178, 179, 180, - 181, 182, 0, 0, 183, 184, 185, 186, 187, 0, - 188, 189, 190, 0, 191, 192, 193, 0, 194, 195, - 196, 197, 198, 199, 200, 201, 202, 203, 204, 0, - 205, 0, 206, 207, 208, 209, 0, 210, 0, 211, - 0, 0, 0, 214, 215, 509, 0, 218, 0, 219, - 0, 220, 221, 222, 0, 223, 224, 225, 226, 227, - 228, 229, 0, 231, 232, 233, 234, 0, 235, 236, - 237, 238, 239, 240, 0, 241, 0, 243, 244, 245, - 246, 247, 248, 249, 250, 0, 251, 0, 252, 0, - 0, 255, 0, 257, 258, 259, 260, 261, 262, 0, - 0, 263, 0, 265, 0, 0, 267, 268, 269, 0, - 0, 270, 271, 272, 273, 274, 510, 276, 277, 278, - 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, - 289, 290, 291, 292, 293, 294, 0, 296, 297, 298, - 299, 300, 0, 301, 302, 0, 304, 0, 305, 306, - 307, 308, 309, 310, 0, 311, 312, 0, 0, 313, - 314, 315, 0, 0, 316, 317, 0, 319, 0, 321, - 322, 323, 324, 325, 326, 327, 0, 329, 330, 331, - 0, 332, 333, 334, 335, 336, 337, 338, 339, 340, - 0, 341, 342, 343, 344, 345, 346, 0, 347, 0, - 349, 350, 351, 352, 353, 354, 0, 355, 356, 357, - 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, - 0, 368, 369, 0, 371, 372, 373, 374, 0, 376, - 377, 378, 379, 380, 381, 382, 383, 384, 385, 0, - 386, 387, 388, 389, 390, 0, 392, 393, 394, 395, - 396, 0, 398, 399, 400, 401, 0, 402, 403, 404, - 405, 406, 407, 408, 409, 410, 411, 412, 413, 512, - 415, 416, 417, 0, 418, 419, 0, 420, 0, 422, - 423, 424, 425, 426, 0, 427, 428, 0, 0, 429, - 430, 431, 432, 433, 0, 434, 435, 436, 437, 438, - 439, 440, 441, 0, 0, 442, 443, 444, 445, 446, - 0, 0, 448, 449, 450, 451, 452, 453, 454, 0, - 455, 0, 457, 458, 459, 460, 461, 0, 0, 462, - 0, 0, 463, 464, 465, 466, 467, 468, 469, 470, - 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, - 481, 482, 483, 1, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 2, 0, 3, 4, 0, 0, 0, + 0, 0, 0, 0, 0, 1408, 0, 0, 1409, 1410, + 1411, 0, 1412, 1413, 1414, 1415, 1416, 1417, 0, 0, + 0, 0, 2999, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, - 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 9, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, - 0, 0, 0, 0, 0, 14, 0, 0, 0, 0, - 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1407, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 21, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1134, 0, 1408, + 0, 0, 1409, 1410, 1411, 0, 1412, 1413, 1414, 1415, + 1416, 1417, 0, 0, 1569, 94, 95, 96, 97, 98, + 99, 100, 101, 1135, 102, 103, 104, 1136, 1137, 1138, + 1139, 1140, 1141, 1142, 105, 106, 1143, 107, 108, 109, + 786, 111, 112, 113, 787, 788, 789, 790, 791, 1144, + 119, 120, 121, 122, 123, 124, 1145, 1146, 125, 126, + 792, 793, 129, 1147, 130, 131, 132, 133, 794, 1148, + 795, 1149, 136, 137, 138, 139, 140, 141, 796, 143, + 144, 145, 1150, 146, 147, 148, 149, 150, 151, 1151, + 797, 153, 154, 155, 798, 799, 800, 801, 1152, 1153, + 802, 161, 162, 163, 164, 165, 166, 167, 803, 804, + 170, 1154, 171, 1155, 172, 173, 174, 175, 176, 177, + 1156, 178, 179, 180, 181, 182, 1157, 1158, 183, 184, + 185, 186, 187, 1159, 188, 189, 190, 1160, 191, 192, + 193, 1161, 194, 195, 196, 197, 805, 199, 200, 201, + 202, 203, 806, 1162, 205, 1163, 206, 207, 807, 209, + 1164, 210, 1165, 211, 808, 1166, 809, 214, 215, 810, + 811, 218, 1167, 219, 1168, 812, 813, 222, 1169, 223, + 224, 225, 226, 227, 228, 229, 814, 231, 232, 233, + 234, 1170, 235, 236, 237, 238, 239, 240, 1171, 241, + 815, 816, 244, 245, 246, 247, 248, 817, 818, 1172, + 819, 1173, 252, 820, 821, 255, 822, 257, 258, 259, + 260, 261, 262, 1174, 1175, 263, 823, 265, 824, 1176, + 267, 268, 269, 1177, 1178, 270, 271, 272, 273, 274, + 825, 276, 277, 278, 279, 280, 281, 282, 283, 284, + 285, 286, 287, 288, 289, 290, 291, 292, 293, 826, + 827, 828, 297, 298, 299, 829, 1179, 301, 302, 830, + 304, 1180, 831, 306, 832, 308, 309, 310, 1181, 311, + 312, 1182, 1183, 313, 314, 315, 1184, 1185, 316, 833, + 834, 319, 835, 836, 322, 323, 324, 325, 326, 327, + 328, 329, 330, 331, 1186, 332, 333, 837, 335, 336, + 838, 338, 339, 340, 1187, 341, 342, 343, 344, 345, + 346, 1188, 347, 348, 349, 839, 351, 352, 353, 354, + 1189, 355, 356, 357, 358, 359, 360, 361, 362, 363, + 364, 365, 366, 367, 1190, 368, 369, 840, 371, 372, + 373, 841, 375, 376, 377, 378, 379, 380, 381, 382, + 383, 384, 385, 1191, 386, 387, 388, 389, 390, 842, + 392, 843, 394, 395, 396, 844, 398, 399, 845, 401, + 1192, 402, 403, 404, 405, 406, 407, 408, 409, 410, + 411, 412, 413, 846, 415, 847, 417, 1193, 418, 419, + 1194, 420, 848, 422, 423, 424, 425, 426, 1195, 849, + 850, 1196, 1197, 429, 430, 851, 432, 852, 1198, 434, + 435, 853, 437, 438, 439, 440, 441, 1199, 1200, 442, + 443, 444, 445, 446, 854, 1201, 448, 449, 450, 451, + 452, 1202, 856, 1203, 455, 857, 457, 458, 459, 460, + 461, 1204, 1205, 462, 1206, 1207, 463, 464, 465, 466, + 467, 468, 858, 859, 860, 861, 862, 863, 864, 865, + 866, 867, 868, 480, 481, 482, 483, 507, 0, 0, + 0, 0, 0, 0, 0, 0, 1818, 0, 0, 0, + 0, 0, 0, 0, 0, 94, 95, 96, 97, 98, + 99, 100, 101, 0, 102, 103, 104, 0, 0, 0, + 0, 0, 0, 0, 105, 106, 0, 107, 108, 109, + 0, 111, 112, 113, 114, 115, 0, 117, 118, 0, + 119, 120, 121, 122, 123, 124, 0, 0, 125, 126, + 127, 128, 129, 0, 130, 131, 132, 133, 134, 0, + 0, 0, 136, 137, 138, 139, 140, 141, 0, 143, + 144, 145, 0, 146, 147, 148, 149, 150, 151, 0, + 0, 153, 154, 155, 0, 0, 0, 0, 0, 0, + 0, 161, 162, 163, 164, 165, 166, 167, 168, 169, + 170, 0, 171, 0, 172, 173, 174, 175, 176, 177, + 0, 178, 179, 180, 181, 182, 0, 0, 183, 184, + 185, 186, 187, 0, 188, 189, 190, 0, 191, 192, + 193, 0, 194, 195, 196, 197, 198, 199, 200, 201, + 202, 203, 204, 0, 205, 0, 206, 207, 208, 209, + 0, 210, 0, 211, 0, 0, 0, 214, 215, 510, + 0, 218, 0, 219, 0, 220, 221, 222, 0, 223, + 224, 225, 226, 227, 228, 229, 0, 231, 232, 233, + 234, 0, 235, 236, 237, 238, 239, 240, 0, 241, + 0, 243, 244, 245, 246, 247, 248, 249, 250, 0, + 251, 0, 252, 0, 0, 255, 0, 257, 258, 259, + 260, 261, 262, 0, 0, 263, 0, 265, 0, 0, + 267, 268, 269, 0, 0, 270, 271, 272, 273, 274, + 511, 276, 277, 278, 279, 280, 281, 282, 283, 284, + 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, + 0, 296, 297, 298, 299, 300, 0, 301, 302, 0, + 304, 0, 305, 306, 307, 308, 309, 310, 0, 311, + 312, 0, 0, 313, 314, 315, 0, 0, 316, 317, + 0, 319, 0, 321, 322, 323, 324, 325, 326, 327, + 328, 329, 330, 331, 0, 332, 333, 334, 335, 336, + 337, 338, 339, 340, 0, 341, 342, 343, 344, 345, + 346, 0, 347, 348, 349, 350, 351, 352, 353, 354, + 0, 355, 356, 357, 358, 359, 360, 361, 362, 363, + 364, 365, 366, 367, 0, 368, 369, 0, 371, 372, + 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, + 383, 384, 385, 0, 386, 387, 388, 389, 390, 0, + 392, 393, 394, 395, 396, 0, 398, 399, 400, 401, + 0, 402, 403, 404, 405, 406, 407, 408, 409, 410, + 411, 412, 413, 513, 415, 416, 417, 0, 418, 419, + 0, 420, 0, 422, 423, 424, 425, 426, 0, 427, + 428, 0, 0, 429, 430, 431, 432, 433, 0, 434, + 435, 436, 437, 438, 439, 440, 441, 0, 0, 442, + 443, 444, 445, 446, 0, 0, 448, 449, 450, 451, + 452, 453, 454, 0, 455, 0, 457, 458, 459, 460, + 461, 0, 0, 462, 0, 0, 463, 464, 465, 466, + 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, + 477, 478, 479, 480, 481, 482, 483, 785, 1307, 583, + 0, 0, 0, 892, 0, 0, 2313, 0, 0, 0, + 0, 0, 0, 0, 0, 94, 95, 96, 97, 98, + 99, 100, 101, 0, 102, 103, 104, 0, 0, 0, + 0, 0, 0, 0, 105, 106, 0, 107, 108, 109, + 786, 111, 112, 113, 787, 788, 789, 790, 791, 0, + 119, 120, 121, 122, 123, 124, 0, 0, 125, 126, + 792, 793, 129, 0, 130, 131, 132, 133, 794, 0, + 795, 0, 136, 137, 138, 139, 140, 141, 796, 143, + 144, 145, 0, 146, 147, 148, 149, 150, 151, 0, + 797, 153, 154, 155, 798, 799, 800, 801, 0, 0, + 802, 161, 162, 163, 164, 165, 166, 167, 803, 804, + 170, 1444, 171, 0, 172, 173, 174, 175, 176, 177, + 0, 178, 179, 180, 181, 182, 0, 0, 183, 184, + 185, 186, 187, 0, 188, 189, 190, 0, 191, 192, + 193, 0, 194, 195, 196, 197, 805, 199, 200, 201, + 202, 203, 806, 1308, 205, 0, 206, 207, 807, 209, + 0, 210, 0, 211, 808, 0, 809, 214, 215, 810, + 811, 218, 0, 219, 0, 812, 813, 222, 0, 223, + 224, 225, 226, 227, 228, 229, 814, 231, 232, 233, + 234, 0, 235, 236, 237, 238, 239, 240, 0, 241, + 815, 816, 244, 245, 246, 247, 248, 817, 818, 0, + 819, 0, 252, 820, 821, 255, 822, 257, 258, 259, + 260, 261, 262, 0, 0, 263, 823, 265, 824, 0, + 267, 268, 269, 0, 0, 270, 271, 272, 273, 274, + 825, 276, 277, 278, 279, 280, 281, 282, 283, 284, + 285, 286, 287, 288, 289, 290, 291, 292, 293, 826, + 827, 828, 297, 298, 299, 829, 0, 301, 302, 830, + 304, 0, 831, 306, 832, 308, 309, 310, 0, 311, + 312, 1309, 0, 313, 314, 315, 0, 0, 316, 833, + 834, 319, 835, 836, 322, 323, 324, 325, 326, 327, + 328, 329, 330, 331, 0, 332, 333, 837, 335, 336, + 838, 338, 339, 340, 0, 341, 342, 343, 344, 345, + 346, 0, 347, 348, 349, 839, 351, 352, 353, 354, + 0, 355, 356, 357, 358, 359, 360, 361, 362, 363, + 364, 365, 366, 367, 0, 368, 369, 840, 371, 372, + 373, 841, 375, 376, 377, 378, 379, 380, 381, 382, + 383, 384, 385, 0, 386, 387, 388, 389, 390, 842, + 392, 843, 394, 395, 396, 844, 398, 399, 845, 401, + 0, 402, 403, 404, 405, 406, 407, 408, 409, 410, + 411, 412, 413, 846, 415, 847, 417, 0, 418, 419, + 0, 420, 848, 422, 423, 424, 425, 426, 0, 849, + 850, 0, 0, 429, 430, 851, 432, 852, 1310, 434, + 435, 853, 437, 438, 439, 440, 441, 0, 0, 442, + 443, 444, 445, 446, 854, 0, 448, 449, 450, 451, + 452, 1202, 856, 0, 455, 857, 457, 458, 459, 460, + 461, 0, 0, 462, 0, 0, 463, 464, 465, 466, + 467, 468, 858, 859, 860, 861, 862, 863, 864, 865, + 866, 867, 868, 480, 481, 482, 483, 785, 1307, 583, + 0, 0, 0, 892, 1311, 1312, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 94, 95, 96, 97, 98, + 99, 100, 101, 0, 102, 103, 104, 0, 0, 0, + 0, 0, 0, 0, 105, 106, 0, 107, 108, 109, + 786, 111, 112, 113, 787, 788, 789, 790, 791, 0, + 119, 120, 121, 122, 123, 124, 0, 0, 125, 126, + 792, 793, 129, 0, 130, 131, 132, 133, 794, 0, + 795, 0, 136, 137, 138, 139, 140, 141, 796, 143, + 144, 145, 0, 146, 147, 148, 149, 150, 151, 0, + 797, 153, 154, 155, 798, 799, 800, 801, 0, 0, + 802, 161, 162, 163, 164, 165, 166, 167, 803, 804, + 170, 1446, 171, 0, 172, 173, 174, 175, 176, 177, + 0, 178, 179, 180, 181, 182, 0, 0, 183, 184, + 185, 186, 187, 0, 188, 189, 190, 0, 191, 192, + 193, 0, 194, 195, 196, 197, 805, 199, 200, 201, + 202, 203, 806, 1308, 205, 0, 206, 207, 807, 209, + 0, 210, 0, 211, 808, 0, 809, 214, 215, 810, + 811, 218, 0, 219, 0, 812, 813, 222, 0, 223, + 224, 225, 226, 227, 228, 229, 814, 231, 232, 233, + 234, 0, 235, 236, 237, 238, 239, 240, 0, 241, + 815, 816, 244, 245, 246, 247, 248, 817, 818, 0, + 819, 0, 252, 820, 821, 255, 822, 257, 258, 259, + 260, 261, 262, 0, 0, 263, 823, 265, 824, 0, + 267, 268, 269, 0, 0, 270, 271, 272, 273, 274, + 825, 276, 277, 278, 279, 280, 281, 282, 283, 284, + 285, 286, 287, 288, 289, 290, 291, 292, 293, 826, + 827, 828, 297, 298, 299, 829, 0, 301, 302, 830, + 304, 0, 831, 306, 832, 308, 309, 310, 0, 311, + 312, 1309, 0, 313, 314, 315, 0, 0, 316, 833, + 834, 319, 835, 836, 322, 323, 324, 325, 326, 327, + 328, 329, 330, 331, 0, 332, 333, 837, 335, 336, + 838, 338, 339, 340, 0, 341, 342, 343, 344, 345, + 346, 0, 347, 348, 349, 839, 351, 352, 353, 354, + 0, 355, 356, 357, 358, 359, 360, 361, 362, 363, + 364, 365, 366, 367, 0, 368, 369, 840, 371, 372, + 373, 841, 375, 376, 377, 378, 379, 380, 381, 382, + 383, 384, 385, 0, 386, 387, 388, 389, 390, 842, + 392, 843, 394, 395, 396, 844, 398, 399, 845, 401, + 0, 402, 403, 404, 405, 406, 407, 408, 409, 410, + 411, 412, 413, 846, 415, 847, 417, 0, 418, 419, + 0, 420, 848, 422, 423, 424, 425, 426, 0, 849, + 850, 0, 0, 429, 430, 851, 432, 852, 1310, 434, + 435, 853, 437, 438, 439, 440, 441, 0, 0, 442, + 443, 444, 445, 446, 854, 0, 448, 449, 450, 451, + 452, 1202, 856, 0, 455, 857, 457, 458, 459, 460, + 461, 0, 0, 462, 0, 0, 463, 464, 465, 466, + 467, 468, 858, 859, 860, 861, 862, 863, 864, 865, + 866, 867, 868, 480, 481, 482, 483, 785, 1307, 583, + 0, 0, 0, 892, 1311, 1312, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 94, 95, 96, 97, 98, + 99, 100, 101, 0, 102, 103, 104, 0, 0, 0, + 0, 0, 0, 0, 105, 106, 0, 107, 108, 109, + 786, 111, 112, 113, 787, 788, 789, 790, 791, 0, + 119, 120, 121, 122, 123, 124, 0, 0, 125, 126, + 792, 793, 129, 0, 130, 131, 132, 133, 794, 0, + 795, 0, 136, 137, 138, 139, 140, 141, 796, 143, + 144, 145, 0, 146, 147, 148, 149, 150, 151, 0, + 797, 153, 154, 155, 798, 799, 800, 801, 0, 0, + 802, 161, 162, 163, 164, 165, 166, 167, 803, 804, + 170, 0, 171, 0, 172, 173, 174, 175, 176, 177, + 0, 178, 179, 180, 181, 182, 0, 0, 183, 184, + 185, 186, 187, 0, 188, 189, 190, 0, 191, 192, + 193, 0, 194, 195, 196, 197, 805, 199, 200, 201, + 202, 203, 806, 1308, 205, 0, 206, 207, 807, 209, + 0, 210, 0, 211, 808, 0, 809, 214, 215, 810, + 811, 218, 0, 219, 0, 812, 813, 222, 0, 223, + 224, 225, 226, 227, 228, 229, 814, 231, 232, 233, + 234, 0, 235, 236, 237, 238, 239, 240, 0, 241, + 815, 816, 244, 245, 246, 247, 248, 817, 818, 0, + 819, 0, 252, 820, 821, 255, 822, 257, 258, 259, + 260, 261, 262, 0, 0, 263, 823, 265, 824, 0, + 267, 268, 269, 0, 0, 270, 271, 272, 273, 274, + 825, 276, 277, 278, 279, 280, 281, 282, 283, 284, + 285, 286, 287, 288, 289, 290, 291, 292, 293, 826, + 827, 828, 297, 298, 299, 829, 0, 301, 302, 830, + 304, 0, 831, 306, 832, 308, 309, 310, 0, 311, + 312, 1309, 0, 313, 314, 315, 0, 0, 316, 833, + 834, 319, 835, 836, 322, 323, 324, 325, 326, 327, + 328, 329, 330, 331, 0, 332, 333, 837, 335, 336, + 838, 338, 339, 340, 0, 341, 342, 343, 344, 345, + 346, 0, 347, 348, 349, 839, 351, 352, 353, 354, + 0, 355, 356, 357, 358, 359, 360, 361, 362, 363, + 364, 365, 366, 367, 0, 368, 369, 840, 371, 372, + 373, 841, 375, 376, 377, 378, 379, 380, 381, 382, + 383, 384, 385, 0, 386, 387, 388, 389, 390, 842, + 392, 843, 394, 395, 396, 844, 398, 399, 845, 401, + 0, 402, 403, 404, 405, 406, 407, 408, 409, 410, + 411, 412, 413, 846, 415, 847, 417, 0, 418, 419, + 0, 420, 848, 422, 423, 424, 425, 426, 0, 849, + 850, 0, 0, 429, 430, 851, 432, 852, 1310, 434, + 435, 853, 437, 438, 439, 440, 441, 0, 0, 442, + 443, 444, 445, 446, 854, 0, 448, 449, 450, 451, + 452, 1202, 856, 0, 455, 857, 457, 458, 459, 460, + 461, 0, 0, 462, 0, 0, 463, 464, 465, 466, + 467, 468, 858, 859, 860, 861, 862, 863, 864, 865, + 866, 867, 868, 480, 481, 482, 483, 0, 0, 1384, + 0, 0, 1385, 0, 1311, 1312, 1386, 1387, 1388, 1389, + 1390, 1391, 1384, 0, 0, 1385, 0, 0, 0, 1386, + 1387, 1388, 1389, 1390, 1391, 0, 1392, 0, 0, 0, + 1831, 0, 0, 0, 1394, 0, 0, 0, 0, 1392, + 0, 1395, 0, 0, 0, 0, 0, 1394, 1384, 0, + 0, 1385, 0, 0, 1395, 1386, 1387, 1388, 1389, 1390, + 1391, 1384, 0, 0, 1385, 0, 1396, 0, 1386, 1387, + 1388, 1389, 1390, 1391, 0, 1392, 0, 0, 0, 1396, + 0, 0, 0, 1394, 0, 0, 0, 0, 1392, 0, + 1395, 2044, 0, 0, 0, 0, 1394, 1384, 0, 0, + 1385, 0, 0, 1395, 1386, 1387, 1388, 1389, 1390, 1391, + 0, 0, 0, 0, 0, 1396, 0, 1832, 0, 0, + 0, 0, 0, 0, 1392, 0, 0, 0, 1396, 0, + 0, 0, 1394, 0, 0, 0, 0, 0, 0, 1395, + 0, 0, 1384, 0, 0, 1385, 0, 0, 0, 1386, + 1387, 1388, 1389, 1390, 1391, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1396, 0, 0, 1397, 0, 1392, + 2083, 0, 2089, 0, 0, 2084, 0, 1394, 0, 0, + 1397, 0, 0, 1398, 1395, 0, 0, 0, 1399, 0, + 0, 0, 0, 0, 0, 0, 1398, 0, 0, 0, + 0, 1399, 0, 0, 0, 3086, 0, 0, 0, 1396, + 1400, 1401, 0, 0, 0, 0, 1397, 0, 0, 0, + 0, 0, 0, 1400, 1401, 1402, 0, 0, 0, 1397, + 0, 0, 1398, 0, 0, 0, 0, 1399, 1402, 0, + 0, 0, 0, 0, 0, 1398, 0, 0, 0, 0, + 1399, 0, 0, 0, 0, 0, 0, 0, 0, 1400, + 1401, 0, 0, 1403, 0, 1397, 1404, 0, 0, 0, + 0, 0, 1400, 1401, 1402, 0, 1403, 0, 0, 1404, + 1405, 1398, 0, 1406, 0, 0, 1399, 1402, 0, 0, + 0, 0, 0, 1405, 0, 0, 1406, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1400, 1401, + 1397, 0, 1403, 0, 0, 1404, 0, 0, 0, 0, + 0, 0, 0, 1402, 0, 1403, 1398, 0, 1404, 1405, + 0, 1399, 1406, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1405, 0, 0, 1406, 0, 0, 0, 0, + 0, 0, 0, 1400, 1401, 3087, 0, 0, 0, 0, + 0, 1403, 0, 0, 1404, 0, 0, 0, 1402, 0, + 0, 0, 1407, 0, 0, 0, 0, 0, 1405, 0, + 0, 1406, 0, 0, 0, 1407, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 2056, + 0, 0, 0, 0, 0, 0, 1403, 0, 0, 1404, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1407, 0, 1405, 0, 0, 1406, 0, 0, 0, + 0, 0, 1836, 0, 1407, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 22, 0, 0, 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, - 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, + 1407, 0, 0, 0, 1408, 0, 0, 1409, 1410, 1411, + 0, 1412, 1413, 1414, 1415, 1416, 1417, 1408, 0, 0, + 1409, 1410, 1411, 0, 1412, 1413, 1414, 1415, 1416, 1417, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 26, 0, 0, 0, 0, 0, 0, 27, 0, - 0, 0, 28, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 29, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 30, 0, 0, 0, 31, 0, + 0, 0, 0, 0, 0, 1407, 0, 0, 0, 0, + 0, 0, 0, 1408, 0, 0, 1409, 1410, 1411, 0, + 1412, 1413, 1414, 1415, 1416, 1417, 1408, 0, 0, 1409, + 1410, 1411, 0, 1412, 1413, 1414, 1415, 1416, 1417, 0, + 0, 1384, 0, 0, 1385, 0, 0, 0, 1386, 1387, + 1388, 1389, 1390, 1391, 0, 0, 0, 0, 0, 0, + 0, 0, 1408, 0, 0, 1409, 1410, 1411, 1392, 1412, + 1413, 1414, 1415, 1416, 1417, 0, 1394, 0, 0, 0, + 0, 0, 0, 1395, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1408, 1396, 0, + 1409, 1410, 1411, 0, 1412, 1413, 1414, 1415, 1416, 1417, + 1384, 0, 0, 1385, 0, 0, 0, 1386, 1387, 1388, + 1389, 1390, 1391, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1392, 0, 1384, + 2096, 0, 1385, 0, 0, 1394, 1386, 1387, 1388, 1389, + 1390, 1391, 1395, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1392, 0, 0, 0, + 0, 0, 0, 0, 1394, 0, 0, 1396, 0, 0, + 0, 1395, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 2094, 0, 0, 0, 0, 1397, + 0, 0, 0, 0, 0, 0, 1396, 0, 0, 0, + 0, 0, 0, 0, 0, 1398, 0, 0, 1384, 0, + 1399, 1385, 0, 0, 0, 1386, 1387, 1388, 1389, 1390, + 1391, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1400, 1401, 0, 1392, 0, 0, 2361, 0, + 0, 0, 0, 1394, 0, 0, 0, 1402, 0, 0, + 1395, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1397, 0, + 0, 0, 0, 0, 0, 1396, 0, 0, 0, 0, + 0, 0, 0, 0, 1398, 1403, 0, 0, 1404, 1399, + 0, 0, 0, 0, 0, 0, 0, 1397, 0, 0, + 0, 0, 1405, 0, 0, 1406, 0, 0, 0, 0, + 0, 1400, 1401, 1398, 0, 0, 0, 0, 1399, 0, + 0, 0, 0, 0, 0, 0, 1402, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1400, 1401, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1402, 0, 0, 0, 0, + 0, 0, 0, 0, 1403, 0, 0, 1404, 0, 0, + 0, 0, 0, 0, 0, 0, 1397, 0, 0, 1384, + 0, 1405, 1385, 0, 1406, 0, 1386, 1387, 1388, 1389, + 1390, 1391, 1398, 1403, 1407, 0, 1404, 1399, 0, 0, + 0, 0, 0, 0, 0, 0, 1392, 0, 0, 0, + 1405, 0, 0, 1406, 1394, 0, 0, 0, 0, 1400, + 1401, 1395, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1402, 0, 0, 0, 0, 0, + 0, 0, 1384, 0, 0, 1385, 1396, 0, 0, 1386, + 1387, 1388, 1389, 1390, 1391, 1384, 0, 0, 1385, 0, + 0, 0, 1386, 0, 0, 1389, 1390, 1391, 0, 1392, + 0, 0, 1403, 1407, 0, 1404, 0, 1394, 0, 0, + 0, 0, 1392, 0, 1395, 0, 0, 0, 0, 1405, + 1394, 0, 1406, 0, 0, 0, 1408, 1395, 0, 1409, + 1410, 1411, 1407, 1412, 1413, 1414, 1415, 1416, 1417, 1396, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 32, 0, 0, 0, 0, 33, - 0, 0, 0, 544, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 34, 0, 0, 0, 0, 0, 0, + 0, 0, 1396, 0, 0, 0, 0, 0, 0, 1384, + 0, 0, 1385, 0, 0, 2317, 1386, 0, 0, 1389, + 1390, 1391, 0, 0, 0, 0, 0, 1397, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 35, 0, 0, + 0, 0, 0, 1398, 1394, 0, 0, 0, 1399, 0, + 0, 1395, 0, 0, 0, 1408, 0, 0, 1409, 1410, + 1411, 1407, 1412, 1413, 1414, 1415, 1416, 1417, 0, 0, + 1400, 1401, 0, 0, 0, 0, 1396, 0, 0, 0, + 0, 0, 0, 0, 1408, 1402, 0, 1409, 1410, 1411, + 1397, 1412, 1413, 1414, 1415, 1416, 1417, 0, 0, 0, + 0, 0, 0, 1397, 0, 0, 1398, 0, 0, 0, + 0, 1399, 0, 0, 0, 0, 0, 0, 0, 1398, + 0, 0, 0, 1403, 1399, 0, 1404, 0, 0, 0, + 0, 0, 0, 1400, 1401, 0, 0, 0, 0, 0, + 1405, 0, 0, 1406, 0, 0, 1400, 1401, 1402, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 545 -}; - -static const yytype_int16 yycheck[] = -{ - 6, 36, 622, 656, 663, 501, 667, 947, 0, 0, - 0, 0, 6, 740, 0, 1070, 646, 545, 1010, 20, - 21, 868, 868, 74, 1068, 537, 617, 1244, 0, 0, - 672, 1458, 0, 6, 1461, 1422, 665, 1814, 1347, 1829, - 30, 1043, 1832, 539, 16, 746, 2267, 16, 950, 31, - 1048, 770, 1810, 1015, 773, 1045, 0, 2238, 2238, 1891, - 76, 544, 540, 1116, 966, 545, 76, 1810, 1772, 1707, - 1708, 1249, 1376, 1377, 1712, 65, 656, 979, 658, 2266, - 660, 876, 11, 1073, 0, 0, 15, 1935, 1936, 1937, - 0, 1887, 0, 0, 23, 2141, 35, 0, 2275, 1870, - 1950, 0, 0, 2279, 1862, 34, 35, 21, 90, 2093, - 5, 52, 5, 0, 0, 5, 0, 1755, 1756, 1862, + 0, 1402, 0, 1408, 0, 0, 1409, 1410, 1411, 0, + 1412, 1413, 1414, 1415, 1416, 1417, 0, 1397, 0, 0, + 0, 0, 0, 0, 0, 0, 1403, 0, 0, 1404, + 0, 0, 0, 1398, 0, 0, 0, 0, 1399, 1403, + 0, 0, 1404, 1405, 0, 0, 1406, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1405, 0, 0, 0, + -1846, -1846, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1407, 0, 0, 1402, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 700, 701, 1430, 564, 1573, 643, 75, 2586, - 5, 987, 2143, 11, 5, 643, 9, 15, 2149, 5, - 5, 1215, 1027, 5, 9, 5, 60, 777, 5, 88, - 5, 5, 9, 731, 1477, 2572, 171, 1963, 13, 14, - 0, 60, 1479, 5, 5, 2582, 25, 5, 60, 5, - 42, 13, 14, 42, 119, 13, 14, 13, 14, 5, - 50, 5, 151, 60, 5, 5, 5, 13, 14, 13, - 14, 5, 13, 14, 13, 14, 5, 5, 172, 13, - 14, 1057, 5, 5, 1060, 1061, 139, 95, 2659, 5, - 13, 14, 13, 14, 5, 5, 77, 13, 14, 29, - 122, 2027, 2028, 3, 935, 77, 36, 88, 3, 4, - 5, 5, 189, 5, 9, 5, 88, 85, 2191, 13, - 14, 109, 2755, 29, 5, 5, 5, 287, 70, 2569, - 36, 2723, 285, 33, 34, 95, 29, 124, 122, 309, - 5, 171, 60, 36, 1342, 273, 378, 2852, 2551, 4, - 1342, 2148, 293, 2479, 9, 293, 1081, 61, 137, 109, - 11, 129, 309, 1342, 15, 69, 117, 1092, 117, 132, - 8, 2080, 29, 11, 2919, 2819, 172, 15, 2156, 200, - 18, 19, 20, 161, 11, 132, 176, 396, 210, 334, - 4, 122, 43, 9, 419, 9, 946, 895, 896, 1056, - 1237, 38, 192, 2740, 163, 119, 137, 197, 69, 39, - 868, 358, 110, 11, 11, 357, 2050, 875, 15, 29, - 2791, 329, 117, 921, 75, 2536, 2052, 2578, 2404, 463, - 951, 38, 2408, 4, 149, 994, 405, 4, 9, 464, - 189, 276, 9, 2205, 234, 43, 455, 2952, 75, 2169, - 358, 485, 11, 2141, 110, 2081, 15, 235, 871, 980, - 147, 406, 2393, 499, 2581, 2396, 2139, 499, 2141, 211, - 170, 440, 172, 270, 2851, 132, 2202, 75, 2204, 287, - 369, 1351, 417, 198, 43, 2206, 1007, 1037, 165, 3034, - 2058, 2059, 2060, 2061, 2062, 1332, 126, 2065, 2066, 2067, - 2068, 2069, 2070, 2071, 2072, 2073, 2074, 168, 453, 305, - 269, 439, 291, 13, 14, 349, 75, 406, 2721, 282, - 270, 216, 132, 272, 494, 272, 277, 287, 215, 0, - 349, 989, 990, 1772, 238, 282, 304, 349, 175, 499, - 2984, 362, 350, 238, 1349, 3050, 499, 494, 383, 370, - 2118, 2119, 349, 488, 1806, 1807, 2682, 499, 447, 197, - 451, 1121, 503, 277, 120, 503, 501, 346, 175, 348, - 2291, 1503, 461, 493, 2447, 2701, 1559, 2954, 443, 376, - 545, 219, 1816, 2309, 3017, 406, 382, 417, 319, 1583, - 350, 381, 1831, 1836, 2965, 2392, 485, 376, 1965, 1035, - 1837, 537, 1587, 2995, 457, 499, 293, 1035, 2848, 545, - 499, 403, 2723, 2723, 403, 2324, 2953, 439, 406, 393, - 394, 502, 499, 1621, 1622, 450, 1215, 2733, 499, 1621, - 497, 349, 453, 1224, 501, 503, 417, 193, 315, 1342, - 463, 1620, 544, 411, 1003, 417, 545, 578, 1874, 580, - 581, 289, 511, 461, 441, 439, 386, 488, 244, 320, - 1465, 344, 485, 599, 600, 646, 166, 613, 499, 503, - 2646, 1654, 603, 613, 499, 2651, 499, 2457, 2654, 499, - 386, 463, 541, 200, 503, 11, 622, 1237, 2450, 15, - 191, 503, 500, 386, 502, 120, 2610, 495, 163, 2850, - 1425, 461, 497, 485, 499, 498, 501, 2638, 499, 631, - 631, 631, 631, 499, 499, 631, 2404, 499, 272, 499, - 2408, 620, 499, 277, 499, 661, 662, 663, 1317, 631, - 631, 2404, 499, 631, 441, 2408, 580, 499, 499, 651, - 500, 499, 502, 499, 2445, 251, 433, 1245, 1246, 2856, - 108, 451, 2858, 499, 623, 499, 1532, 631, 499, 499, - 499, 406, 4, 228, 623, 499, 1542, 9, 193, 1545, - 499, 499, 1331, 434, 328, 1217, 499, 499, 499, 4, - 1330, 422, 1332, 499, 9, 631, 631, 1337, 499, 499, - 2568, 631, 499, 631, 631, 490, 491, 2431, 631, 1388, - 1350, 1243, 631, 631, 740, 499, 1728, 499, 2959, 499, - 2786, 2050, 1371, 1372, 631, 631, 1258, 631, 499, 499, - 499, 631, 631, 1373, 631, 631, 631, 631, 631, 631, - 631, 631, 631, 2950, 499, 490, 491, 224, 410, 1428, - 412, 777, 1363, 1301, 495, 2571, 347, 461, 486, 487, - 488, 437, 490, 491, 492, 493, 494, 495, 66, 67, - 1419, 348, 1639, 1639, 177, 1291, 1292, 2101, 1427, 1594, - 1429, 485, 1298, 453, 490, 491, 490, 491, 2130, 2131, - 2132, 2133, 1990, 270, 2995, 2995, 1294, 1300, 1996, 376, - 334, 1301, 250, 365, 3011, 492, 493, 494, 495, 244, - 258, 1733, 1707, 1708, 2472, 8, 224, 1712, 11, 497, - 369, 499, 15, 499, 441, 18, 19, 20, 1621, 1622, - 1623, 25, 2684, 499, 161, 238, 1818, 31, 3079, 1799, - 1915, 1520, 868, 492, 493, 494, 495, 868, 1380, 875, - 876, 877, 5, 330, 875, 1528, 2637, 406, 3053, 77, - 1755, 1756, 270, 25, 1603, 1938, 499, 893, 2646, 31, - 88, 2403, 406, 2651, 2637, 1391, 2654, 2114, 77, 871, - 244, 2413, 499, 2646, 2416, 1624, 461, 1626, 2651, 88, - 1629, 2654, 947, 2674, 244, 132, 922, 500, 447, 3094, - 503, 1501, 379, 482, 1583, 1555, 1556, 1557, 235, 2238, - 485, 2674, 132, 1923, 1576, 2484, 942, 943, 944, 453, - 946, 947, 159, 2492, 24, 221, 8, 362, 1528, 11, - 30, 500, 953, 15, 503, 244, 18, 19, 20, 159, - 0, 962, 151, 137, 970, 244, 2604, 1547, 500, 1871, - 499, 503, 1552, 35, 244, 976, 16, 284, 1976, 463, - 1600, 1979, 439, 989, 990, 65, 987, 287, 989, 990, - 30, 379, 96, 2825, 2755, 137, 36, 410, 501, 412, - 1512, 485, 11, 119, 1020, 1021, 15, 1023, 463, 482, - 1020, 1021, 2755, 1023, 32, 499, 1022, 492, 362, 711, - 1026, 1027, 437, 256, 257, 65, 170, 410, 2786, 412, - 485, 1037, 362, 25, 43, 461, 76, 463, 56, 31, - 488, 733, 1538, 2786, 499, 497, 219, 1543, 177, 501, - 1056, 439, 8, 501, 437, 11, 1038, 497, 503, 15, - 277, 501, 18, 19, 20, 282, 75, 410, 172, 412, - 334, 200, 272, 362, 766, 1081, 29, 277, 494, 35, - 1009, 172, 282, 362, 499, 501, 1092, 497, 204, 499, - 1072, 501, 362, 437, 490, 491, 492, 493, 494, 495, - 499, 1721, 206, 1615, 482, 5, 370, 437, 8, 238, - 1116, 1639, 494, 500, 14, 206, 289, 291, 222, 501, - 2758, 2882, 2431, 500, 1652, 25, 503, 80, 232, 29, - 500, 222, 161, 366, 367, 500, 89, 166, 503, 2882, - 1760, 232, 406, 2920, 1656, 137, 221, 500, 437, 291, - 503, 56, 2369, 2093, 270, 499, 272, 219, 437, 410, - 2921, 412, 266, 292, 2219, 118, 499, 437, 342, 499, - 25, 2018, 346, 171, 2218, 1894, 31, 1896, 2921, 1897, - 369, 1899, 1812, 2058, 2059, 2060, 2061, 2062, 152, 453, - 2065, 2066, 2067, 2068, 2069, 2070, 2071, 2072, 2073, 2074, - 342, 2203, 376, 2202, 346, 2204, 235, 424, 1644, 1215, - 499, 1217, 1648, 217, 1650, 907, 2260, 406, 435, 2217, - 499, 2219, 1214, 1214, 424, 1214, 152, 289, 1214, 499, - 2409, 1237, 2411, 925, 376, 435, 189, 1243, 1244, 3071, - 342, 3018, 69, 2118, 2119, 3035, 3036, 500, 201, 353, - 503, 500, 1258, 25, 503, 284, 3017, 152, 447, 31, - 3037, 152, 353, 219, 601, 602, 1720, 604, 1722, 1723, - 444, 500, 461, 500, 3017, 500, 503, 8, 503, 499, - 11, 410, 137, 412, 15, 2187, 272, 18, 19, 20, - 117, 13, 14, 1994, 1995, 1301, 485, 1958, 3088, 291, - 13, 14, 444, 500, 35, 434, 503, 501, 437, 500, - 499, 1317, 503, 486, 487, 488, 3093, 490, 491, 492, - 493, 494, 495, 640, 1330, 642, 1332, 38, 1300, 453, - 1336, 1337, 1301, 289, 84, 500, 500, 1327, 503, 503, - 1346, 1342, 1348, 1349, 1350, 1351, 1352, 1353, 1354, 173, - 342, 13, 14, 465, 346, 1327, 1327, 2016, 499, 1327, - 500, 13, 14, 503, 117, 137, 1295, 1373, 1297, 1375, - 13, 14, 450, 369, 1380, 1381, 1382, 1383, 1384, 1385, - 1386, 1387, 1388, 1327, 376, 316, 1392, 1393, 25, 499, - 2607, 1397, 2238, 500, 31, 1401, 503, 152, 1404, 1405, - 1406, 1407, 1408, 1409, 1410, 1411, 1412, 37, 500, 1415, - 406, 503, 500, 499, 2723, 503, 1422, 500, 161, 1425, - 503, 245, 1428, 166, 486, 487, 488, 2814, 490, 491, - 492, 493, 494, 495, 500, 1436, 291, 503, 499, 392, - 499, 1447, 395, 2498, 500, 272, 152, 503, 152, 2451, - 277, 447, 444, 493, 500, 500, 152, 503, 503, 1465, - 38, 500, 287, 1975, 503, 461, 499, 2096, 233, 2089, - 1476, 1477, 500, 5, 500, 503, 1445, 503, 13, 14, - 147, 490, 491, 492, 493, 494, 495, 342, 219, 485, - 2018, 346, 235, 320, 161, 500, 357, 358, 503, 166, - 137, 13, 14, 499, 544, 545, 1512, 1497, 499, 336, - 334, 5, 1518, 8, 1520, 500, 11, 2013, 503, 291, - 15, 376, 499, 18, 19, 20, 500, 2039, 499, 503, - 486, 487, 488, 166, 490, 491, 492, 493, 494, 495, - 499, 284, 2759, 187, 188, 2057, 370, 300, 215, 500, - 13, 14, 503, 1559, 13, 14, 1562, 1563, 289, 1565, - 2987, 2988, 2153, 13, 14, 2194, 13, 14, 235, 499, - 342, 499, 2084, 613, 346, 1504, 499, 1583, 2237, 2091, - 2239, 499, 406, 2302, 499, 1514, 5, 1516, 1594, 444, - 1519, 631, 13, 14, 1600, 5, 1525, 2472, 1527, 5, - 1590, 13, 14, 499, 376, 13, 14, 434, 5, 1615, - 1539, 499, 256, 257, 441, 1544, 369, 284, 499, 1548, - 1549, 1550, 1551, 2253, 1553, 1554, 293, 2269, 300, 453, - 147, 25, 499, 1639, 13, 14, 499, 31, 1639, 499, - 3067, 499, 1643, 2489, 161, 8, 1652, 499, 1654, 166, - 1656, 1652, 15, 406, 291, 18, 19, 20, 499, 1665, - 13, 14, 13, 14, 1670, 13, 14, 13, 14, 13, - 14, 499, 444, 499, 1709, 13, 14, 8, 13, 14, - 11, 13, 14, 148, 15, 2729, 2995, 18, 19, 20, - 9, 357, 358, 499, 447, 260, 261, 369, 215, 357, - 358, 1707, 1708, 1709, 35, 342, 1712, 298, 461, 346, - 366, 367, 357, 358, 1720, 1721, 1722, 1723, 235, 503, - 989, 990, 366, 367, 1730, 1760, 2238, 462, 1734, 2604, - 8, 1737, 485, 11, 406, 217, 503, 15, 99, 376, - 18, 19, 20, 137, 500, 38, 499, 233, 166, 1755, - 1756, 2598, 166, 284, 1760, 486, 487, 488, 282, 490, - 491, 492, 493, 494, 495, 43, 433, 284, 1774, 376, - 499, 1777, 50, 1779, 499, 447, 293, 417, 88, 503, - 56, 2773, 2501, 2502, 56, 417, 417, 2299, 263, 461, - 417, 2420, 500, 1799, 289, 417, 508, 75, 461, 2791, - 152, 95, 501, 272, 1810, 272, 38, 444, 38, 2536, - 2439, 499, 499, 485, 499, 9, 1810, 37, 415, 415, - 497, 497, 417, 417, 1830, 57, 500, 499, 417, 417, - 497, 871, 1867, 500, 501, 1825, 96, 1810, 503, 1845, - 1846, 457, 499, 11, 344, 498, 6, 508, 503, 889, - 499, 11, 503, 1825, 1825, 15, 1862, 1825, 505, 2799, - 20, 21, 22, 23, 24, 415, 277, 27, 1862, 909, - 30, 31, 417, 1879, 34, 35, 108, 2723, 499, 180, - 162, 1825, 171, 2758, 503, 500, 500, 499, 219, 1862, - 215, 1897, 1898, 1899, 1823, 503, 379, 291, 176, 288, - 224, 503, 1903, 2895, 309, 65, 309, 947, 500, 38, - 224, 441, 172, 499, 192, 272, 433, 224, 293, 197, - 285, 325, 499, 152, 453, 152, 289, 87, 88, 89, - 90, 91, 1938, 461, 38, 272, 500, 287, 500, 497, - 482, 2996, 482, 500, 500, 500, 206, 1948, 500, 38, - 498, 287, 346, 500, 500, 171, 234, 500, 289, 500, - 171, 500, 222, 500, 500, 503, 500, 199, 501, 1975, - 155, 482, 232, 500, 2470, 500, 499, 1983, 500, 500, - 1020, 1021, 376, 1023, 69, 500, 500, 417, 2500, 499, - 75, 486, 487, 488, 499, 490, 491, 492, 493, 494, - 495, 499, 458, 88, 484, 288, 266, 288, 288, 243, - 2016, 289, 2018, 439, 503, 458, 447, 2018, 250, 287, - 488, 2961, 2023, 272, 2025, 503, 258, 287, 2029, 2030, - 2036, 417, 117, 2039, 119, 499, 152, 1966, 270, 2045, - 152, 2702, 2048, 200, 152, 2051, 417, 417, 417, 417, - 444, 2057, 2058, 2059, 2060, 2061, 2062, 279, 2093, 2065, - 2066, 2067, 2068, 2069, 2070, 2071, 2072, 2073, 2074, 301, - 2598, 279, 2078, 2079, 498, 2126, 2082, 500, 2084, 38, - 344, 461, 499, 2089, 500, 2091, 285, 2093, 503, 2124, - 287, 38, 152, 353, 277, 143, 2102, 498, 500, 2105, - 171, 2107, 498, 381, 11, 166, 2141, 52, 2114, 2115, - 500, 499, 2118, 2119, 171, 500, 348, 2123, 2124, 204, - 297, 2127, 500, 486, 487, 488, 500, 490, 491, 492, - 493, 494, 495, 2139, 500, 2141, 500, 406, 370, 537, - 171, 503, 485, 180, 500, 2139, 500, 2141, 2154, 2995, - 499, 288, 97, 86, 350, 486, 487, 488, 390, 490, - 491, 492, 493, 494, 495, 152, 2139, 2826, 2141, 446, - 503, 500, 499, 175, 2180, 428, 38, 500, 123, 500, - 500, 441, 499, 499, 81, 441, 498, 272, 503, 500, - 171, 2197, 277, 499, 503, 500, 141, 500, 500, 499, - 145, 500, 500, 408, 499, 483, 222, 222, 486, 487, - 488, 2723, 490, 491, 492, 493, 494, 495, 296, 294, - 499, 56, 167, 184, 461, 170, 500, 2233, 202, 488, - 500, 2237, 2238, 2239, 500, 320, 117, 2238, 38, 224, - 185, 499, 83, 277, 190, 8, 501, 277, 11, 501, - 2880, 336, 15, 501, 501, 18, 19, 20, 501, 501, - 1300, 501, 2263, 2924, 488, 501, 501, 417, 500, 2198, - 501, 417, 38, 501, 500, 2265, 2268, 2268, 2790, 2268, - 2933, 2793, 2268, 2903, 501, 2905, 501, 1327, 501, 501, - 272, 501, 501, 2299, 501, 501, 2225, 2287, 501, 2289, - 501, 501, 109, 501, 287, 461, 501, 499, 501, 2315, - 501, 2240, 2241, 2242, 2243, 2244, 2245, 2246, 2247, 2248, - 2249, 501, 501, 501, 171, 3, 501, 5, 501, 501, - 501, 501, 277, 499, 494, 2994, 499, 499, 498, 222, - 285, 501, 740, 460, 2840, 499, 88, 500, 503, 434, - 133, 511, 336, 38, 1394, 499, 441, 2363, 2364, 152, - 75, 177, 2368, 2369, 500, 124, 152, 2373, 38, 500, - 2376, 2377, 358, 38, 306, 2381, 499, 499, 358, 539, - 540, 541, 500, 328, 200, 499, 499, 327, 499, 75, - 446, 111, 112, 503, 499, 277, 248, 189, 2404, 441, - 428, 499, 2408, 69, 11, 290, 69, 56, 15, 499, - 2404, 503, 500, 499, 2408, 38, 23, 441, 376, 488, - 580, 2917, 238, 287, 270, 428, 2427, 34, 35, 38, - 2436, 2404, 499, 111, 112, 2408, 290, 290, 500, 599, - 600, 601, 602, 360, 604, 499, 537, 500, 2438, 500, - 2440, 500, 499, 202, 614, 287, 219, 1497, 2464, 287, - 500, 9, 500, 623, 343, 122, 2472, 187, 188, 439, - 357, 500, 499, 633, 24, 35, 292, 9, 500, 877, - 631, 88, 1959, 2995, 2220, 2491, 1892, 2233, 1526, 1038, - 2196, 651, 2939, 3045, 2500, 2695, 2997, 3006, 3038, 1043, - 87, 2745, 89, 1898, 91, 1885, 2994, 2280, 2212, 187, - 188, 3004, 1446, 2237, 1882, 2992, 1652, 2494, 2874, 1825, - 680, 681, 682, 683, 1301, 1291, 289, 1243, 2272, 1445, - 2536, 1954, 252, 253, 254, 255, 256, 257, 2016, 2598, - 260, 261, 2471, 2263, 981, 1830, 362, 1009, 1493, 1030, - 1590, 2892, 1029, 2913, 3033, 1845, 1465, 2158, 2974, 2907, - 2812, 1032, 111, 112, 1862, 1492, 2141, 2410, 2393, 2787, - 2139, 2882, 2881, 2426, 252, 253, 254, 255, 256, 257, - 2899, 1342, 260, 261, 2900, 1342, 2977, 2665, 1342, 987, - 2580, 1342, 2598, 2978, 410, 3021, 412, 2598, 2604, 1420, - 1735, 2607, 1778, 537, 2610, 1831, 1666, 1565, 1775, 2436, - 600, 1813, 428, 2619, 2620, 2195, 2921, 2623, 434, 2157, - 2670, 437, 2991, 2441, -1, -1, -1, -1, -1, -1, - -1, 2637, -1, -1, -1, -1, -1, -1, 187, 188, - 2646, -1, -1, 2637, -1, 2651, 366, 367, 2654, 740, - -1, -1, 2646, -1, -1, 2661, 2662, 2651, 1056, -1, - 2654, -1, -1, 2664, 2637, -1, -1, -1, 2674, 1709, - 2676, -1, -1, 2646, -1, -1, -1, -1, 2651, -1, - 2674, 2654, -1, -1, -1, -1, -1, 2693, 366, 367, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 2674, -1, 252, 253, 254, 255, 256, 257, -1, - -1, 260, 261, -1, 0, -1, -1, 2723, -1, -1, - 1760, 881, 2723, 486, 487, 488, -1, 490, 491, 492, - 493, 494, 495, -1, -1, -1, -1, -1, 1778, -1, - -1, -1, -1, -1, 2734, -1, -1, -1, -1, 2755, - -1, -1, 2758, 2759, 1794, -1, -1, -1, -1, 479, - 480, 2755, -1, -1, 2799, -1, -1, -1, -1, -1, - 1810, 38, -1, 537, -1, 2704, 2782, -1, -1, 499, - 2786, -1, 2755, -1, 2790, 1825, 877, 2793, 948, -1, - 57, -1, 2786, 2799, -1, 2724, 2725, 38, -1, -1, - -1, 479, 480, -1, -1, -1, 740, -1, 2814, 95, - 2739, 2817, -1, 2786, -1, -1, 57, 366, 367, 1217, - 2826, -1, 1862, -1, -1, 2831, -1, 1867, -1, 8, - -1, 991, 11, -1, -1, -1, 15, -1, -1, -1, - -1, 108, -1, -1, -1, 1243, 1244, -1, 2849, 1009, - 1010, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 1258, 147, -1, -1, 43, 2855, -1, 108, -1, -1, - -1, 50, -1, -1, -1, 161, 2882, -1, 1038, 1039, - 166, 1041, 1042, 1043, -1, 171, 537, 2816, 2882, -1, - -1, -1, -1, -1, 180, 1055, 75, 2903, 184, 2905, - -1, 2907, -1, -1, 511, 2911, -1, 494, 175, 2882, - -1, -1, 1072, -1, -1, 2921, 1076, -1, -1, -1, - -1, -1, -1, -1, 2914, -1, -1, 2921, -1, 215, - 479, 480, 199, 540, 541, 2941, -1, -1, -1, -1, - -1, -1, -1, 877, -1, -1, -1, -1, 2921, 235, - -1, -1, -1, -1, -1, 2961, -1, -1, 199, -1, - -1, -1, -1, -1, -1, 1056, 145, -1, 2974, -1, - -1, -1, -1, -1, -1, -1, 740, -1, -1, -1, - -1, -1, 1380, 250, -1, -1, -1, -1, 2994, 2995, - -1, 258, -1, -1, 2995, -1, -1, 176, 284, -1, - -1, 287, -1, 270, -1, -1, -1, 293, -1, 250, - -1, 3017, -1, 192, 3020, 3021, 623, 258, 197, -1, - 3010, -1, -1, 3017, -1, -1, -1, 614, -1, 270, - -1, -1, -1, -1, 301, -1, -1, -1, -1, -1, - -1, 327, -1, -1, 3017, 8, 633, 3053, 11, -1, - 1210, -1, 15, 2093, -1, 234, -1, -1, 1218, -1, - 301, -1, -1, -1, 350, -1, -1, 1227, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 43, 348, -1, -1, 2124, -1, -1, 50, 3094, 740, - -1, -1, -1, 680, 681, 682, 683, -1, -1, 2139, - 1260, 2141, -1, 370, -1, -1, -1, 348, -1, -1, - 289, -1, 75, 877, 1512, -1, -1, -1, -1, -1, - 406, -1, 1056, 390, -1, -1, 1217, -1, -1, 370, - -1, 1291, 1292, -1, 1294, 1295, -1, 1297, 1298, -1, - -1, -1, -1, -1, -1, -1, -1, 433, -1, 390, - -1, -1, 1243, 1244, -1, 441, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 1258, -1, -1, - -1, -1, 458, -1, 460, 461, -1, -1, -1, -1, - -1, -1, 145, -1, -1, 8, -1, 1347, 11, -1, - -1, -1, 15, -1, -1, -1, -1, -1, 1358, -1, - -1, -1, 381, -1, -1, -1, -1, -1, -1, -1, - -1, 497, -1, 176, 500, 501, 502, 1615, -1, -1, - 43, -1, -1, -1, -1, 2265, 877, 50, -1, 192, - -1, 1391, -1, -1, 197, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 2287, -1, 2289, - -1, -1, 75, -1, -1, -1, -1, -1, 1656, -1, - -1, -1, 1422, 1423, -1, -1, -1, -1, -1, -1, - -1, 234, -1, -1, -1, -1, 0, -1, -1, -1, - -1, -1, -1, 1217, 1444, -1, 1446, -1, -1, 1380, - -1, -1, 1056, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 483, -1, -1, -1, -1, 1243, - 1244, 490, 491, 492, 493, 494, 495, -1, -1, -1, - -1, -1, 145, -1, 1258, -1, 289, -1, -1, -1, - 1490, -1, -1, -1, -1, -1, -1, -1, 1498, 1499, - -1, 948, -1, 1503, 1504, -1, -1, -1, -1, -1, - -1, -1, -1, 176, 1514, 1515, 1516, 1517, -1, 1519, - -1, -1, -1, -1, 2404, 1525, -1, 1527, 2408, 192, - -1, 95, -1, -1, 197, -1, -1, -1, 1538, 1539, - -1, -1, -1, 1543, 1544, -1, -1, -1, 1548, 1549, - 1550, 1551, -1, 1553, 1554, -1, -1, -1, 2438, -1, - 2440, -1, 1009, 1010, 991, 1056, -1, -1, -1, -1, - -1, 234, -1, 1573, 1574, 1575, -1, -1, 381, -1, - -1, 1512, -1, 147, -1, -1, -1, -1, -1, -1, - -1, 1591, -1, -1, -1, -1, -1, 161, -1, -1, - -1, -1, 166, -1, -1, -1, 1380, 171, -1, -1, - -1, -1, 1039, 1217, -1, 1042, 180, -1, -1, -1, - 184, -1, -1, -1, -1, -1, 289, -1, 1055, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 1243, - 1244, -1, -1, -1, -1, -1, -1, -1, -1, 1076, - -1, 215, -1, -1, 1258, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 235, -1, -1, -1, -1, -1, -1, -1, -1, - 483, -1, -1, -1, 1615, -1, -1, 490, 491, 492, - 493, 494, 495, -1, -1, -1, -1, -1, -1, -1, - 2580, -1, -1, -1, -1, -1, 8, -1, -1, 11, - -1, -1, -1, 15, 38, -1, -1, -1, 381, -1, - 284, -1, -1, 287, -1, 1656, 1217, -1, 1728, 293, - -1, -1, -1, 57, -1, 1735, -1, 1975, 1512, -1, - -1, 43, -1, -1, -1, -1, -1, -1, 50, -1, - -1, -1, 1243, 1244, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 327, -1, -1, 2646, 1258, -1, -1, - -1, 2651, 1772, 75, 2654, -1, 1380, -1, -1, -1, - -1, -1, -1, -1, 108, 109, 350, -1, -1, -1, - -1, 1218, -1, 117, -1, -1, -1, -1, -1, -1, - -1, 2039, -1, -1, 1804, -1, -1, -1, -1, -1, - 1810, -1, -1, -1, -1, -1, -1, -1, -1, 2057, - 483, -1, -1, 1823, -1, -1, -1, 490, 491, 492, - 493, 494, 495, -1, -1, -1, -1, -1, -1, -1, - -1, 1615, 406, 145, -1, -1, 2084, 1294, 1295, -1, - 1297, 175, -1, 2091, 2734, -1, -1, -1, -1, -1, - -1, -1, 1862, -1, 1864, -1, -1, 1867, -1, 433, - 1870, -1, -1, -1, 176, 199, 2114, 441, -1, -1, - -1, -1, 1656, -1, -1, -1, -1, 1887, -1, 1380, - 192, -1, -1, -1, 458, 197, 460, 461, -1, -1, - -1, -1, -1, -1, -1, -1, 2786, -1, 1512, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 2799, - -1, -1, -1, -1, -1, -1, 250, -1, -1, -1, - -1, -1, 234, 497, 258, -1, 500, 501, 502, -1, - -1, -1, -1, -1, -1, -1, 270, -1, 272, -1, - 1950, -1, -1, -1, -1, 1955, -1, -1, -1, -1, - -1, -1, -1, 1963, 1964, 1965, 1966, -1, 1968, -1, - -1, -1, -1, -1, -1, 2855, -1, 301, -1, -1, - -1, -1, 537, -1, -1, 1985, -1, 289, -1, -1, - -1, -1, -1, -1, -1, -1, 1423, 1997, -1, -1, - 2238, -1, -1, -1, -1, -1, -1, 537, -1, -1, - -1, 1615, -1, 2013, -1, -1, -1, 1444, -1, 1446, - -1, 1512, -1, -1, 348, -1, -1, 2027, 2028, -1, - -1, -1, -1, -1, 2914, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 1975, -1, 370, -1, 8, -1, - 2050, 11, 1656, -1, -1, 15, -1, 1504, -1, -1, - -1, 2299, -1, 1490, -1, -1, 390, 1514, 392, 1516, - -1, 395, 1519, -1, -1, -1, -1, -1, 1525, 381, - 1527, -1, -1, 43, -1, -1, -1, -1, -1, -1, - 50, -1, 1539, -1, -1, -1, -1, 1544, -1, -1, - -1, 1548, 1549, 1550, 1551, -1, 1553, 1554, 2039, -1, - -1, -1, -1, -1, -1, 75, 0, -1, -1, -1, - -1, -1, -1, -1, 1615, -1, 2057, -1, -1, -1, - 3010, 2369, -1, -1, -1, -1, 2136, 2137, 2138, 2139, - -1, 2141, 2142, 2143, -1, -1, 1573, 1574, 2148, 2149, - -1, -1, -1, 2084, -1, -1, -1, -1, -1, -1, - 2091, -1, -1, -1, -1, 1656, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 499, -1, 2177, -1, -1, - -1, 483, -1, 2114, -1, 740, -1, -1, 490, 491, - 492, 493, 494, 495, -1, 2195, -1, -1, 2198, -1, - -1, 1975, 2202, 2203, 2204, -1, 2206, -1, -1, -1, - 740, 95, -1, -1, -1, -1, 176, -1, -1, -1, - -1, -1, -1, -1, -1, 2225, -1, 2227, -1, -1, - -1, -1, 192, -1, -1, -1, -1, 197, -1, -1, - 2240, 2241, 2242, 2243, 2244, 2245, 2246, 2247, 2248, 2249, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 2500, 147, -1, 2039, 2266, -1, -1, -1, - 2270, -1, -1, -1, 234, -1, -1, 161, -1, -1, - 2280, 1728, 166, 2057, -1, -1, -1, 171, 1735, -1, - -1, 2291, -1, -1, -1, -1, 180, -1, 2536, -1, - 184, -1, -1, -1, -1, -1, -1, 2238, -1, 2309, - 2084, -1, -1, -1, -1, -1, -1, 2091, -1, -1, - -1, -1, 877, -1, -1, -1, -1, -1, -1, 289, - -1, 215, -1, -1, -1, -1, -1, -1, -1, -1, - 2114, -1, -1, -1, -1, -1, -1, 877, -1, -1, - -1, 235, -1, -1, -1, -1, -1, -1, -1, 2359, - -1, -1, -1, -1, -1, -1, -1, -1, 2299, 2607, - -1, 1975, -1, -1, -1, -1, 1823, 1804, -1, -1, - -1, -1, -1, 2383, -1, 2385, 2386, 2387, 2388, -1, - -1, -1, 2392, 2393, -1, 2395, 2396, -1, -1, 2399, - 284, -1, -1, 287, 2404, -1, -1, -1, 2408, 293, - -1, -1, -1, -1, 2414, -1, -1, -1, -1, -1, - -1, 381, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 2431, -1, -1, -1, 2039, 2436, -1, 2369, -1, - -1, 2441, -1, 327, -1, 2445, -1, -1, -1, -1, - -1, 2451, -1, 2057, -1, -1, -1, 2457, -1, -1, - -1, -1, -1, -1, 2238, -1, 350, -1, -1, -1, - 2470, 2471, -1, -1, -1, -1, -1, -1, 2478, -1, - 2084, -1, -1, -1, 1975, 2723, -1, 2091, -1, -1, - -1, -1, -1, -1, -1, 2495, -1, -1, -1, -1, - -1, 1056, -1, -1, -1, -1, -1, -1, -1, -1, - 2114, -1, -1, -1, -1, -1, -1, -1, -1, 1966, - -1, 2759, 406, 483, -1, 2299, 1056, -1, 1955, -1, - 490, 491, 492, 493, 494, 495, -1, 1964, 1965, -1, - -1, 1968, -1, -1, -1, -1, -1, -1, 2039, 433, - -1, -1, 2790, -1, -1, 2793, 868, 441, 1985, -1, - -1, -1, -1, 875, -1, -1, 2057, -1, -1, 2500, - -1, 2571, -1, -1, 458, -1, 460, 461, -1, -1, - -1, 2581, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 2592, 2084, -1, 2369, -1, -1, -1, -1, - 2091, -1, -1, -1, -1, 2536, -1, -1, -1, -1, - -1, -1, -1, 497, -1, -1, 500, 501, 502, -1, - -1, -1, -1, 2114, -1, -1, -1, -1, 2628, -1, - 599, 600, -1, -1, 2238, -1, -1, 2637, 2638, -1, - 2640, -1, -1, 2643, -1, -1, 2646, -1, -1, -1, - 962, 2651, -1, -1, 2654, -1, 2656, -1, -1, 2659, - -1, -1, 1217, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 2674, 987, 2607, 989, 990, -1, - -1, -1, -1, -1, -1, -1, -1, 1217, 1243, 1244, - -1, -1, 661, 662, -1, 2299, -1, -1, -1, -1, - -1, -1, -1, 1258, 2704, -1, -1, -1, -1, 2136, - 2137, 2138, -1, 1243, 1244, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 2724, 2725, 2500, -1, 1258, -1, - -1, -1, -1, -1, -1, 2735, -1, 2737, -1, 2739, - -1, -1, -1, -1, -1, 1057, -1, 2238, 1060, 1061, - 2177, 2198, 2752, -1, -1, 2755, -1, 2995, -1, -1, - -1, -1, 2536, -1, -1, 2369, -1, -1, -1, -1, - -1, -1, -1, 2773, -1, -1, -1, -1, 2225, -1, - -1, -1, -1, -1, -1, -1, 2786, -1, -1, -1, - -1, 2791, 2723, 2240, 2241, 2242, 2243, 2244, 2245, 2246, - 2247, 2248, 2249, -1, -1, -1, -1, -1, 2299, 2809, - -1, -1, -1, -1, 2814, -1, 2816, -1, -1, -1, - -1, -1, -1, 25, 2824, 1380, -1, -1, 2759, 31, - -1, -1, -1, 2607, -1, -1, 38, -1, -1, -1, - 2840, -1, -1, 2270, -1, -1, 8, -1, -1, 11, - 1380, -1, -1, 15, 2854, 57, -1, -1, -1, 2790, - -1, -1, 2793, -1, -1, -1, -1, -1, -1, -1, - 8, -1, -1, 11, -1, -1, -1, 15, 2369, -1, - -1, 43, 2882, -1, -1, -1, -1, -1, 50, -1, - -1, 2891, -1, -1, -1, 2895, 2500, -1, -1, 2899, - -1, -1, -1, -1, -1, 43, 108, 876, -1, -1, - -1, -1, 50, 75, -1, -1, -1, 2917, 2918, 2919, - -1, 2921, -1, -1, 893, -1, -1, -1, -1, 1241, - -1, -1, 2536, -1, -1, 137, -1, 75, -1, -1, - 1252, -1, 1254, -1, -1, -1, -1, -1, -1, 2723, - 2950, 1263, 2399, 922, -1, -1, -1, 1512, 2385, 2386, - 2387, 2388, -1, -1, -1, 2965, -1, 2414, 1280, -1, - -1, -1, -1, 942, 943, 944, -1, 2977, 947, -1, - -1, -1, 1512, 145, -1, 2759, -1, -1, -1, -1, - -1, 2991, -1, -1, 1306, 1307, -1, 199, -1, -1, - -1, 970, -1, 2607, -1, -1, -1, 145, -1, 2500, - -1, 3011, -1, -1, 176, -1, 2790, 3017, -1, 2793, - -1, -1, -1, -1, 2471, -1, -1, 1339, 1340, -1, - 192, 1343, 1344, 3033, 3034, 197, -1, -1, 176, -1, - -1, -1, -1, -1, -1, 2536, -1, -1, 250, -1, - -1, 2478, -1, 1022, 192, -1, 258, 1026, 1027, 197, - 1615, -1, -1, -1, 2995, -1, -1, -1, 270, -1, - -1, -1, 234, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 1615, -1, -1, -1, 291, - -1, -1, -1, -1, -1, -1, 234, -1, -1, 301, - -1, 1656, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 1081, -1, -1, -1, 2607, -1, -1, 2723, - -1, -1, -1, 1092, -1, -1, 1656, 289, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 342, -1, -1, -1, 346, -1, 348, 1116, -1, -1, - -1, 289, -1, -1, -1, 2759, -1, -1, -1, -1, - -1, -1, -1, -1, 1476, 1477, -1, -1, 370, -1, - -1, -1, -1, -1, 376, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 2790, -1, 390, 2793, - -1, -1, -1, -1, -1, -1, 2643, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 2656, - -1, -1, 2659, -1, -1, -1, -1, -1, -1, 381, - 1532, 2995, -1, -1, -1, -1, -1, -1, -1, -1, - 1542, -1, 2723, 1545, 25, -1, -1, -1, -1, -1, - 31, -1, 444, 381, -1, -1, -1, 38, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 2704, -1, -1, - -1, -1, -1, -1, -1, -1, 57, -1, 2759, -1, - -1, -1, -1, -1, -1, -1, -1, 2724, 2725, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 2739, -1, -1, -1, -1, -1, -1, 2790, - -1, -1, 2793, -1, 1616, 1617, -1, -1, 2735, -1, - -1, -1, -1, -1, -1, -1, -1, 108, -1, -1, - -1, 483, -1, -1, -1, 2752, 2773, 1639, 490, 491, - 492, 493, 494, 495, -1, -1, -1, -1, -1, -1, - 1652, -1, -1, -1, 2791, 483, 137, -1, -1, -1, - -1, -1, 490, 491, 492, 493, 494, 495, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 1336, -1, 2816, - -1, -1, -1, -1, -1, -1, -1, 1346, -1, 1348, - -1, -1, 1351, 1352, 1353, 1354, -1, -1, -1, -1, - -1, 2995, -1, -1, -1, -1, -1, 2824, -1, -1, - -1, -1, -1, -1, -1, -1, 1375, -1, 199, -1, - -1, -1, 1381, 1382, 1383, 1384, 1385, 1386, 1387, -1, - 1975, -1, -1, 1392, 1393, -1, -1, 2854, 1397, -1, - -1, -1, 1401, -1, -1, 1404, 1405, 1406, 1407, 1408, - 1409, 1410, 1411, 1412, -1, 1975, 1415, -1, 2895, -1, - -1, -1, 2899, 1422, 8, -1, 1425, 11, -1, 250, - -1, 15, 16, 17, 18, 19, 20, 258, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 1447, 270, - -1, 35, -1, -1, 2039, -1, -1, -1, -1, 43, - -1, -1, -1, -1, -1, -1, 50, -1, -1, -1, - 291, -1, 2057, 1815, 2995, -1, -1, 1476, 1477, 2039, - 301, -1, -1, -1, -1, -1, -1, -1, 2965, 0, - -1, 75, -1, 1835, 1836, -1, -1, 2057, -1, 2084, - -1, -1, -1, -1, -1, -1, 2091, -1, -1, -1, - 21, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 31, 342, 33, 34, 2084, 346, -1, 348, -1, 2114, - -1, 2091, -1, -1, -1, -1, -1, -1, 49, -1, - -1, -1, -1, -1, -1, -1, -1, 58, -1, 370, - -1, -1, -1, -1, 2114, 376, -1, -1, -1, 70, - 1559, -1, -1, 1562, 1563, -1, 1565, -1, -1, 390, - 81, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 93, -1, 95, -1, -1, -1, -1, -1, - -1, -1, 176, -1, -1, 1594, -1, -1, -1, -1, - -1, -1, 113, -1, -1, -1, -1, -1, 192, -1, - -1, -1, -1, 197, -1, -1, 127, -1, -1, -1, - -1, -1, -1, 444, -1, -1, 137, -1, -1, -1, - -1, -1, 143, -1, -1, 219, 220, -1, -1, -1, - 151, -1, 153, 154, -1, -1, -1, -1, -1, 1991, - 234, -1, -1, 2238, -1, 1654, 167, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 1665, -1, -1, -1, - -1, 1670, -1, -1, -1, -1, -1, -1, 2238, -1, - -1, -1, -1, -1, -1, 196, -1, -1, 272, -1, - -1, 275, -1, -1, -1, -1, -1, -1, -1, -1, - 211, -1, -1, -1, -1, 289, -1, -1, 292, -1, - 1709, -1, -1, -1, 2299, -1, -1, -1, -1, -1, - -1, 1720, -1, 1722, 1723, -1, 237, -1, -1, -1, - -1, 1730, -1, -1, -1, 1734, -1, -1, 1737, 2299, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 3, -1, -1, -1, -1, 8, - -1, -1, 11, -1, 963, -1, 15, 16, 17, 18, - 19, 20, -1, -1, -1, 1774, -1, -1, 1777, -1, - 1779, -1, -1, -1, 2369, -1, 35, -1, -1, 38, - -1, -1, -1, -1, 43, -1, -1, 381, -1, -1, - -1, 50, -1, 314, -1, 1004, 317, -1, -1, 2369, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 75, -1, -1, -1, - -1, 1830, -1, -1, -1, 346, -1, -1, -1, -1, - -1, -1, -1, -1, 355, -1, 1845, 1846, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 369, -1, - -1, -1, -1, -1, -1, 376, -1, -1, -1, 380, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 390, - 1879, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 402, -1, -1, -1, 406, 2238, -1, -1, 483, - -1, -1, 486, 487, 488, -1, 490, 491, 492, 493, - 494, 495, -1, -1, -1, 2500, -1, -1, -1, 503, - -1, 1120, -1, -1, -1, -1, -1, 176, 1127, -1, - -1, 442, -1, -1, -1, -1, 447, -1, -1, 1938, - 2500, -1, -1, 192, -1, -1, -1, -1, 197, -1, - 461, 2536, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 219, 220, -1, -1, 485, -1, 2536, -1, -1, -1, - -1, -1, -1, -1, 1983, 234, -1, -1, 499, -1, - -1, 502, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 2607, 272, -1, -1, 275, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 2036, -1, -1, - 289, -1, -1, 292, 23, -1, 2045, 2607, -1, 2048, - -1, -1, 2051, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 2078, - 2079, -1, -1, 2082, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 2093, -1, -1, 76, -1, -1, - -1, -1, -1, 2102, -1, -1, 2105, -1, 2107, -1, - -1, -1, -1, 92, -1, -1, 2115, -1, -1, -1, - -1, -1, -1, -1, 2123, 2124, -1, -1, 2127, -1, - -1, -1, 381, -1, -1, 1334, -1, -1, 2723, -1, - -1, -1, -1, -1, -1, -1, 1345, 2489, -1, -1, - 1349, -1, 2494, -1, -1, 2154, 1355, 1356, 1357, -1, - -1, 8, -1, 2723, 11, 1364, -1, 146, 15, 16, - 17, 18, 19, 20, 2759, -1, -1, 156, -1, -1, - -1, 2180, -1, -1, -1, -1, -1, -1, 35, 168, - -1, -1, -1, -1, 173, -1, 43, -1, 2197, 2759, - -1, 2543, 2544, 50, -1, 2790, -1, -1, 2793, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 200, 1421, -1, -1, -1, -1, -1, 75, -1, - 2790, -1, -1, 2793, 483, -1, -1, 486, 487, 488, - -1, 490, 491, 492, 493, 494, 495, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 1461, -1, -1, -1, 245, -1, -1, -1, - 249, -1, -1, -1, -1, -1, 1475, -1, -1, -1, - -1, 1480, -1, -1, -1, -1, -1, -1, 8, -1, - -1, 11, -1, -1, -1, 15, 16, 17, 18, 19, - 20, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 35, 2315, -1, 38, -1, - -1, -1, -1, 43, -1, -1, -1, -1, -1, 176, - 50, -1, -1, 312, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 192, -1, 326, -1, -1, - 197, -1, -1, -1, -1, 75, -1, -1, -1, -1, - -1, -1, -1, -1, 2363, 2364, -1, -1, -1, 2368, - 2712, 2713, 219, 220, 2373, -1, -1, 2376, 2377, -1, - 359, 2723, 2381, 362, -1, -1, -1, 234, -1, -1, - -1, 370, -1, -1, 373, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 2995, -1, -1, 392, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 272, -1, 406, 275, -1, - -1, -1, -1, -1, 413, 2995, -1, 2436, -1, -1, - -1, -1, 289, 422, -1, 292, -1, -1, -1, 428, - -1, -1, -1, -1, -1, -1, 176, -1, -1, -1, - -1, -1, -1, -1, -1, 2464, -1, -1, -1, 1668, - -1, -1, 192, -1, 453, -1, -1, 197, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 1687, -1, - -1, -1, 2491, -1, -1, -1, -1, -1, -1, 219, - 220, -1, -1, -1, -1, -1, 1705, -1, 1707, 1708, - -1, 1710, -1, 1712, 234, -1, -1, 1716, -1, -1, - 1719, -1, -1, -1, -1, 1724, -1, -1, 1727, -1, - -1, -1, -1, -1, 381, -1, -1, -1, -1, -1, - 1739, -1, -1, -1, 1743, 1744, 1745, 1746, 1747, 1748, - 1749, -1, 272, -1, -1, 275, 1755, 1756, -1, 1758, - 1759, -1, -1, -1, -1, -1, -1, -1, -1, 289, - -1, 1770, 292, -1, 1773, -1, -1, -1, -1, -1, - -1, -1, 1781, 1782, 1783, 1784, 1785, 1786, 1787, 1788, - 1789, 1790, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 2610, -1, -1, -1, -1, -1, -1, -1, -1, - 2619, 2620, 8, 1822, 2623, 11, -1, -1, -1, 15, - 16, 17, 18, 19, 20, -1, 483, -1, -1, 486, - 487, 488, -1, 490, 491, 492, 493, 494, 495, 35, - -1, 498, -1, 2995, -1, -1, -1, 43, -1, -1, - -1, 381, 2661, 2662, 50, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 2676, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 75, - -1, -1, -1, -1, 2693, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 1943, 1944, 1945, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 483, -1, -1, 486, 487, 488, -1, - 490, 491, 492, 493, 494, 495, -1, -1, -1, -1, - 500, -1, -1, 2782, -1, 8, -1, -1, 11, -1, - 176, -1, 15, 16, 17, 18, 19, 20, -1, -1, - 2799, -1, -1, -1, -1, -1, 192, -1, -1, -1, - -1, 197, 35, -1, -1, 2814, -1, -1, 2817, -1, - 43, -1, -1, -1, -1, -1, -1, 50, -1, -1, - -1, -1, 2831, 219, 220, -1, 2035, -1, -1, -1, - -1, -1, 2041, -1, -1, -1, -1, -1, 234, -1, - -1, -1, 75, -1, -1, 2054, 2055, 2056, -1, 2058, - 2059, 2060, 2061, 2062, -1, -1, 2065, 2066, 2067, 2068, - 2069, 2070, 2071, 2072, 2073, 2074, 2075, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 272, -1, -1, 275, - -1, -1, -1, -1, -1, 2094, -1, -1, 2097, -1, - 2099, -1, -1, 289, 2103, 2104, 292, -1, 2907, -1, - -1, -1, 2911, -1, -1, -1, -1, -1, 2117, 2118, - 2119, 2120, -1, 2122, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 2941, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 176, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 192, - -1, -1, -1, -1, 197, 2974, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 381, 219, 220, -1, -1, - 2199, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 234, -1, -1, -1, -1, -1, -1, -1, -1, - 8, 3020, 3021, 11, -1, -1, -1, 15, 16, 17, - 18, 19, 20, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 35, -1, 272, - -1, -1, 275, -1, 3053, 43, -1, -1, -1, -1, - -1, -1, 50, -1, -1, -1, 289, -1, -1, 292, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 75, -1, -1, - -1, 2290, -1, -1, -1, 3094, -1, 483, -1, -1, - 486, 487, 488, -1, 490, 491, 492, 493, 494, 495, - -1, -1, -1, -1, 500, -1, -1, 2316, -1, -1, - -1, 2320, 2321, -1, 2323, -1, -1, 2326, 2327, 2328, - 2329, 2330, -1, -1, -1, 2334, 2335, 2336, 2337, 2338, - 2339, 2340, 2341, 2342, 2343, 2344, 2345, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 2355, -1, 381, -1, - -1, -1, -1, 2362, -1, -1, 2365, -1, 2367, -1, - -1, -1, 2371, -1, -1, 2374, 2375, -1, -1, 2378, - 2379, -1, -1, 2382, 8, -1, -1, 11, 176, -1, - -1, 15, 16, 17, 18, 19, 20, -1, -1, -1, - -1, -1, -1, -1, 192, -1, -1, -1, -1, 197, - -1, 35, -1, -1, -1, -1, -1, -1, -1, 43, - -1, -1, 2421, -1, -1, -1, 50, -1, -1, -1, - -1, 219, 220, -1, -1, -1, 2435, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 234, -1, -1, 2448, - -1, 75, -1, -1, -1, -1, -1, -1, -1, -1, - 483, -1, -1, 486, 487, 488, -1, 490, 491, 492, - 493, 494, 495, 2472, -1, -1, -1, 500, -1, -1, - -1, -1, -1, -1, 272, -1, -1, 275, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 289, -1, -1, 292, -1, -1, -1, -1, -1, - -1, -1, 8, -1, -1, 11, -1, -1, -1, 15, - 16, 17, 18, 19, 20, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 35, - -1, -1, -1, -1, -1, -1, -1, 43, -1, -1, - -1, -1, 176, -1, 50, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 192, -1, - -1, -1, -1, 197, -1, -1, -1, -1, -1, 75, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 381, -1, 219, 220, -1, -1, -1, - -1, 2600, -1, -1, -1, 2604, -1, -1, -1, -1, - 234, -1, -1, -1, 2613, 2614, 2615, -1, -1, 2618, - -1, -1, 2621, 2622, -1, -1, -1, 2626, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 272, -1, - -1, 275, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 289, -1, -1, 292, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 176, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 2690, -1, -1, -1, 483, 192, 2696, 486, 487, - 488, 197, 490, 491, 492, 493, 494, 495, -1, -1, - 2709, -1, 500, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 219, 220, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 234, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 381, 2757, 2758, - -1, -1, -1, -1, 2763, 2764, 2765, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 272, -1, -1, 275, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 289, -1, -1, 292, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 2807, 2808, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 2823, -1, -1, -1, -1, -1, - -1, -1, -1, 2832, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 483, - -1, -1, 486, 487, 488, -1, 490, 491, 492, 493, - 494, 495, -1, -1, -1, -1, 500, 2876, -1, -1, - -1, -1, -1, -1, -1, 381, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 2894, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 2916, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 2935, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 2979, -1, -1, -1, -1, -1, -1, 483, -1, -1, - 486, 487, 488, -1, 490, 491, 492, 493, 494, 495, - -1, -1, -1, -1, 500, -1, -1, -1, -1, 3008, - -1, -1, -1, -1, -1, -1, -1, -1, 3, 4, - 5, 6, 7, 8, 9, 10, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 21, 22, 23, 24, - 25, 26, 27, 28, 29, 30, 31, 32, -1, -1, - -1, -1, 37, -1, -1, 40, 41, 3056, 43, 44, - 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, - -1, 56, 57, 58, 59, 60, 61, 62, 63, 64, - 65, 66, 67, 68, -1, 70, 71, 72, 73, 74, - -1, 76, -1, 78, 79, 80, 81, 82, 83, 84, - 85, 86, 87, -1, 89, 90, 91, 92, 93, 94, - -1, 96, 97, 98, 99, 100, 101, 102, 103, 104, - 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, - 115, 116, 117, 118, -1, 120, 121, 122, 123, 124, - 125, -1, 127, 128, 129, 130, 131, 132, -1, 134, - 135, 136, 137, 138, -1, 140, 141, 142, -1, 144, - 145, 146, -1, 148, 149, 150, 151, 152, 153, 154, - 155, 156, 157, 158, 159, 160, -1, 162, 163, 164, - 165, -1, 167, -1, 169, 170, -1, 172, 173, 174, - 175, 176, 177, -1, 179, -1, 181, 182, 183, -1, - 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, - 195, 196, -1, 198, 199, 200, 201, 202, 203, -1, - 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, - -1, 216, -1, 218, 219, 220, 221, 222, 223, 224, - 225, 226, 227, 228, -1, -1, 231, 232, 233, 234, - -1, 236, 237, 238, 239, 240, 241, 242, 243, 244, - 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, - 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, - 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, - 275, 276, 277, 278, 279, 280, 281, 282, 283, -1, - 285, 286, -1, -1, 289, 290, 291, -1, -1, 294, - 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, - 305, 306, 307, 308, 309, -1, 311, 312, 313, 314, - 315, 316, 317, 318, 319, -1, 321, 322, 323, 324, - 325, 326, -1, 328, 329, 330, 331, 332, 333, 334, - 335, -1, 337, 338, 339, 340, 341, 342, 343, 344, - 345, 346, 347, 348, 349, -1, 351, 352, 353, 354, - 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, - 365, 366, 367, 368, -1, 370, 371, 372, 373, 374, - 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, - 385, -1, 387, 388, 389, 390, 391, 392, 393, 394, - 395, 396, 397, 398, 399, 400, 401, 402, -1, 404, - 405, -1, 407, 408, 409, 410, 411, 412, 413, -1, - 415, 416, -1, -1, 419, 420, 421, 422, 423, 424, - 425, 426, 427, 428, 429, 430, 431, 432, -1, -1, - 435, 436, 437, 438, 439, 440, -1, 442, 443, 444, - 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, - 455, 456, -1, -1, 459, -1, -1, 462, 463, 464, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, -1846, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1405, 0, 0, 0, 0, 1407, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1407, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1408, 0, 0, 1409, 1410, 1411, + 0, 1412, 1413, 1414, 1415, 1416, 1417, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1407, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1408, 0, 0, + 1409, 1410, 1411, 0, 1412, 1413, 1414, 1415, 1851, 1417, + 1408, 0, 0, 1409, 1410, 1411, 0, 1412, 1413, 1414, + 1415, 1416, 1417, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1134, + 0, 1755, 0, 0, 1408, 0, 0, 1409, 1410, 1411, + 0, 1412, 1413, 1414, 1415, 1416, 1417, 94, 95, 96, + 97, 98, 99, 100, 101, 1135, 102, 103, 104, 1136, + 1137, 1138, 1139, 1140, 1141, 1142, 105, 106, 1143, 107, + 108, 109, 786, 111, 112, 113, 787, 788, 789, 790, + 791, 1144, 119, 120, 121, 122, 123, 124, 1145, 1146, + 125, 126, 792, 793, 129, 1147, 130, 131, 132, 133, + 794, 1148, 795, 1149, 136, 137, 138, 139, 140, 141, + 796, 143, 144, 145, 1150, 146, 147, 148, 149, 150, + 151, 1151, 797, 153, 154, 155, 798, 799, 800, 801, + 1152, 1153, 802, 161, 162, 163, 164, 165, 166, 167, + 803, 804, 170, 1154, 171, 1155, 172, 173, 174, 175, + 176, 177, 1156, 178, 179, 180, 181, 182, 1157, 1158, + 183, 184, 185, 186, 187, 1159, 188, 189, 190, 1160, + 191, 192, 193, 1161, 194, 195, 196, 197, 805, 199, + 200, 201, 202, 203, 806, 1162, 205, 1163, 206, 207, + 807, 209, 1164, 210, 1165, 211, 808, 1166, 809, 214, + 215, 810, 811, 218, 1167, 219, 1168, 812, 813, 222, + 1169, 223, 224, 225, 226, 227, 228, 229, 814, 231, + 232, 233, 234, 1170, 235, 236, 237, 238, 239, 240, + 1171, 241, 815, 816, 244, 245, 246, 247, 248, 817, + 818, 1172, 819, 1173, 252, 820, 821, 255, 822, 257, + 258, 259, 260, 261, 262, 1174, 1175, 263, 823, 265, + 824, 1176, 267, 268, 269, 1177, 1178, 270, 271, 272, + 273, 274, 825, 276, 277, 278, 279, 280, 281, 282, + 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, + 293, 826, 827, 828, 297, 298, 299, 829, 1179, 301, + 302, 830, 304, 1180, 831, 306, 832, 308, 309, 310, + 1181, 311, 312, 1182, 1183, 313, 314, 315, 1184, 1185, + 316, 833, 834, 319, 835, 836, 322, 323, 324, 325, + 326, 327, 328, 329, 330, 331, 1186, 332, 333, 837, + 335, 336, 838, 338, 339, 340, 1187, 341, 342, 343, + 344, 345, 346, 1188, 347, 348, 349, 839, 351, 352, + 353, 354, 1189, 355, 356, 357, 358, 359, 360, 361, + 362, 363, 364, 365, 366, 367, 1190, 368, 369, 840, + 371, 372, 373, 841, 375, 376, 377, 378, 379, 380, + 381, 382, 383, 384, 385, 1191, 386, 387, 388, 389, + 390, 842, 392, 843, 394, 395, 396, 844, 398, 399, + 845, 401, 1192, 402, 403, 404, 405, 406, 407, 408, + 409, 410, 411, 412, 413, 846, 415, 847, 417, 1193, + 418, 419, 1194, 420, 848, 422, 423, 424, 425, 426, + 1195, 849, 850, 1196, 1197, 429, 430, 851, 432, 852, + 1198, 434, 435, 853, 437, 438, 439, 440, 441, 1199, + 1200, 442, 443, 444, 445, 446, 854, 1201, 448, 449, + 450, 451, 452, 1202, 856, 1203, 455, 857, 457, 458, + 459, 460, 461, 1204, 1205, 462, 1206, 1207, 463, 464, + 465, 466, 467, 468, 858, 859, 860, 861, 862, 863, + 864, 865, 866, 867, 868, 480, 481, 482, 483, 1134, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 94, 95, 96, + 97, 98, 99, 100, 101, 1135, 102, 103, 104, 1136, + 1137, 1138, 1139, 1140, 1141, 1142, 105, 106, 1143, 107, + 108, 109, 786, 111, 112, 113, 787, 788, 789, 790, + 791, 1144, 119, 120, 121, 122, 123, 124, 1145, 1146, + 125, 126, 792, 793, 129, 1147, 130, 131, 132, 133, + 794, 1148, 795, 1149, 136, 137, 138, 139, 140, 141, + 796, 143, 144, 145, 1150, 146, 147, 148, 149, 150, + 151, 1151, 797, 153, 154, 155, 798, 799, 800, 801, + 1152, 1153, 802, 161, 162, 163, 164, 165, 166, 167, + 803, 804, 170, 1154, 171, 1155, 172, 173, 174, 175, + 176, 177, 1156, 178, 179, 180, 181, 182, 1157, 1158, + 183, 184, 185, 186, 187, 1159, 188, 189, 190, 1160, + 191, 192, 193, 1161, 194, 195, 196, 197, 805, 199, + 200, 201, 202, 203, 806, 1162, 205, 1163, 206, 207, + 807, 209, 1164, 210, 1165, 211, 808, 1166, 809, 214, + 215, 810, 811, 218, 1167, 219, 1168, 812, 813, 222, + 1169, 223, 224, 225, 226, 227, 228, 229, 814, 231, + 232, 233, 234, 1170, 235, 236, 237, 238, 239, 240, + 1171, 241, 815, 816, 244, 245, 246, 247, 248, 817, + 818, 1172, 819, 1173, 252, 820, 821, 255, 822, 257, + 258, 259, 260, 261, 262, 1174, 1175, 263, 823, 265, + 824, 1176, 267, 268, 269, 1177, 1178, 270, 271, 272, + 273, 274, 825, 276, 277, 278, 279, 280, 281, 282, + 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, + 293, 826, 827, 828, 297, 298, 299, 829, 1179, 301, + 302, 830, 304, 1180, 831, 306, 832, 308, 309, 310, + 1181, 311, 312, 1182, 1183, 313, 314, 315, 1184, 1185, + 316, 833, 834, 319, 835, 836, 322, 323, 324, 325, + 326, 327, 328, 329, 330, 331, 1186, 332, 333, 837, + 335, 336, 838, 338, 339, 340, 1187, 341, 342, 343, + 344, 345, 346, 1188, 347, 348, 349, 839, 351, 352, + 353, 354, 1189, 355, 356, 357, 358, 359, 360, 361, + 362, 363, 364, 365, 366, 367, 1190, 368, 369, 840, + 371, 372, 373, 841, 375, 376, 377, 378, 379, 380, + 381, 382, 383, 384, 385, 1191, 386, 387, 388, 389, + 390, 842, 392, 843, 394, 395, 396, 844, 398, 399, + 845, 401, 1192, 402, 403, 404, 405, 406, 407, 408, + 409, 410, 411, 412, 413, 846, 415, 847, 417, 1193, + 418, 419, 1194, 420, 848, 422, 423, 424, 425, 426, + 1195, 849, 850, 1196, 1197, 429, 430, 851, 432, 852, + 1198, 434, 435, 853, 437, 438, 439, 440, 441, 1199, + 1200, 442, 443, 444, 445, 446, 854, 1201, 448, 449, + 450, 451, 452, 1202, 856, 1203, 455, 857, 457, 458, + 459, 460, 461, 1204, 1205, 462, 1206, 1207, 463, 464, + 465, 466, 467, 468, 858, 859, 860, 861, 862, 863, + 864, 865, 866, 867, 868, 480, 481, 482, 483, 1134, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 94, 95, 96, + 97, 1902, 99, 100, 101, 1135, 102, 103, 104, 1136, + 1137, 1138, 1139, 1140, 1141, 1142, 105, 106, 1143, 107, + 108, 109, 786, 111, 112, 113, 787, 788, 789, 790, + 791, 1144, 119, 120, 121, 122, 123, 124, 1145, 1146, + 125, 126, 792, 793, 129, 1147, 130, 131, 132, 133, + 794, 1148, 795, 1149, 136, 137, 138, 139, 140, 141, + 796, 143, 144, 145, 1150, 146, 147, 148, 149, 150, + 151, 1151, 797, 153, 154, 155, 798, 799, 800, 801, + 1152, 1153, 802, 161, 162, 163, 164, 165, 166, 167, + 803, 804, 170, 1154, 171, 1155, 172, 173, 174, 175, + 176, 177, 1156, 178, 179, 180, 181, 182, 1157, 1158, + 183, 184, 185, 1903, 187, 1159, 188, 189, 190, 1160, + 191, 192, 193, 1161, 194, 195, 196, 197, 805, 199, + 200, 201, 202, 203, 806, 1162, 205, 1163, 206, 207, + 807, 209, 1164, 210, 1165, 211, 808, 1166, 809, 214, + 215, 810, 811, 218, 1167, 219, 1168, 812, 813, 222, + 1169, 223, 224, 225, 226, 227, 228, 229, 814, 231, + 232, 233, 234, 1170, 235, 236, 237, 238, 239, 240, + 1171, 241, 815, 816, 244, 245, 246, 247, 248, 817, + 818, 1172, 819, 1173, 252, 820, 821, 255, 822, 257, + 258, 259, 260, 261, 262, 1174, 1175, 263, 823, 265, + 824, 1176, 267, 268, 269, 1177, 1178, 270, 271, 272, + 273, 274, 825, 276, 277, 278, 279, 280, 281, 282, + 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, + 293, 826, 827, 828, 297, 298, 299, 829, 1179, 301, + 302, 830, 304, 1180, 831, 306, 832, 308, 309, 310, + 1181, 311, 312, 1182, 1183, 313, 314, 315, 1184, 1185, + 316, 833, 834, 319, 835, 836, 322, 323, 324, 325, + 326, 327, 328, 329, 330, 331, 1186, 332, 333, 837, + 335, 336, 838, 338, 339, 340, 1187, 341, 342, 343, + 344, 345, 346, 1188, 347, 348, 349, 839, 351, 352, + 353, 354, 1189, 355, 356, 357, 358, 359, 360, 361, + 362, 363, 364, 365, 366, 367, 1190, 368, 369, 840, + 371, 372, 373, 841, 375, 376, 377, 378, 379, 380, + 381, 382, 383, 384, 385, 1191, 386, 387, 388, 389, + 390, 842, 1904, 843, 394, 395, 396, 844, 398, 399, + 845, 401, 1192, 402, 403, 404, 405, 406, 407, 408, + 409, 410, 411, 412, 413, 846, 415, 847, 417, 1193, + 418, 419, 1194, 420, 848, 422, 423, 424, 425, 426, + 1195, 849, 850, 1196, 1197, 429, 430, 851, 432, 852, + 1198, 434, 435, 853, 437, 438, 439, 440, 441, 1199, + 1200, 442, 443, 444, 445, 446, 854, 1201, 448, 449, + 450, 451, 452, 1202, 856, 1203, 455, 857, 457, 458, + 459, 460, 461, 1204, 1205, 462, 1206, 1207, 463, 464, + 465, 466, 467, 468, 858, 859, 860, 861, 862, 863, + 864, 865, 866, 867, 868, 480, 481, 482, 483, 93, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 94, 95, 96, + 97, 98, 99, 100, 101, 0, 102, 103, 104, 0, + 0, 0, 0, 0, 0, 0, 105, 106, 0, 107, + 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, + 118, 0, 119, 120, 121, 122, 123, 124, 0, 899, + 125, 126, 127, 128, 129, 0, 130, 131, 132, 133, + 902, 0, 903, 0, 136, 137, 138, 139, 140, 141, + 142, 143, 144, 145, 0, 146, 147, 148, 149, 150, + 151, 0, 152, 153, 154, 155, 904, 905, 906, 907, + 908, 909, 910, 161, 162, 163, 164, 165, 166, 167, + 168, 169, 170, 0, 171, 0, 172, 173, 174, 175, + 176, 177, 0, 178, 179, 180, 181, 182, 0, 0, + 183, 184, 185, 186, 187, 0, 188, 189, 190, 0, + 191, 192, 193, 0, 194, 195, 196, 197, 198, 199, + 200, 201, 202, 203, 915, 0, 205, 0, 206, 207, + 208, 209, 0, 210, 0, 211, 212, 0, 213, 214, + 215, 216, 217, 218, 0, 219, 0, 220, 221, 222, + 0, 223, 224, 225, 226, 227, 228, 229, 230, 231, + 232, 233, 234, 0, 235, 236, 237, 238, 239, 240, + 0, 241, 242, 243, 244, 245, 246, 247, 248, 249, + 250, 0, 251, 0, 252, 253, 254, 255, 256, 257, + 258, 259, 260, 261, 262, 0, 0, 263, 264, 265, + 266, 0, 267, 268, 269, 923, 924, 270, 271, 272, + 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, + 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, + 293, 294, 295, 296, 297, 298, 299, 300, 0, 301, + 302, 303, 304, 0, 929, 306, 307, 308, 309, 310, + 0, 311, 312, 0, 0, 313, 314, 315, 0, 0, + 316, 317, 318, 319, 320, 932, 322, 323, 324, 325, + 326, 327, 328, 329, 330, 331, 0, 332, 333, 933, + 335, 336, 337, 338, 339, 340, 0, 341, 342, 343, + 344, 345, 346, 0, 347, 348, 349, 350, 351, 352, + 353, 354, 0, 355, 356, 357, 358, 359, 360, 361, + 362, 363, 364, 365, 366, 367, 0, 368, 369, 370, + 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, + 381, 382, 383, 384, 385, 0, 386, 387, 388, 389, + 390, 936, 392, 393, 394, 395, 396, 397, 398, 399, + 400, 401, 0, 402, 403, 404, 405, 406, 407, 408, + 409, 410, 411, 412, 413, 414, 415, 938, 417, 0, + 418, 419, 0, 420, 421, 422, 423, 424, 425, 426, + 0, 427, 428, 0, 0, 429, 430, 941, 432, 942, + 0, 434, 435, 944, 437, 438, 439, 440, 441, 0, + 0, 442, 443, 444, 445, 446, 945, 0, 448, 449, + 450, 451, 452, 453, 454, 0, 455, 456, 457, 458, + 459, 460, 461, 0, 0, 462, 0, 0, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, - 475, 476, 477, 478, 479, 480, 481, 482, 483, -1, - -1, -1, -1, -1, -1, 490, 491, 492, -1, -1, - -1, -1, 497, -1, 499, 500, -1, -1, -1, 504, - -1, 506, 507, 3, 4, 5, 6, 7, 8, 9, - 10, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 21, 22, 23, 24, 25, 26, 27, 28, -1, - 30, 31, 32, -1, -1, -1, -1, 37, -1, -1, - 40, 41, -1, 43, 44, 45, 46, 47, 48, 49, - 50, 51, 52, 53, 54, -1, 56, 57, 58, 59, - 60, 61, 62, 63, 64, 65, 66, 67, 68, -1, - 70, 71, 72, 73, 74, -1, 76, -1, 78, 79, - 80, 81, 82, 83, 84, 85, 86, 87, -1, 89, - 90, 91, 92, 93, 94, -1, 96, 97, 98, 99, - 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, - 110, 111, 112, 113, 114, 115, 116, 117, 118, -1, - 120, 121, 122, 123, 124, 125, -1, 127, 128, 129, - 130, 131, -1, -1, 134, 135, 136, 137, 138, -1, - 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, - 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, - 160, -1, 162, 163, 164, 165, -1, 167, -1, 169, - 170, -1, 172, 173, 174, 175, 176, 177, -1, 179, - -1, 181, 182, 183, -1, 185, 186, 187, 188, 189, - 190, 191, 192, 193, 194, 195, 196, -1, 198, 199, - 200, 201, 202, 203, -1, 205, 206, 207, 208, 209, - 210, 211, 212, 213, 214, -1, 216, -1, 218, 219, - 220, 221, 222, 223, 224, 225, 226, 227, 228, -1, - -1, 231, 232, 233, 234, -1, 236, 237, 238, 239, - 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, - 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, - 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, - 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, - 280, 281, 282, 283, -1, 285, 286, -1, -1, 289, - 290, 291, -1, -1, 294, 295, 296, 297, 298, 299, - 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, - -1, 311, 312, 313, 314, 315, 316, 317, 318, 319, - -1, 321, 322, 323, 324, 325, 326, -1, 328, 329, - 330, 331, 332, 333, 334, 335, -1, 337, 338, 339, - 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, - -1, 351, 352, 353, 354, 355, 356, 357, 358, 359, - 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, - 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, - 380, 381, 382, 383, 384, 385, -1, 387, 388, 389, - 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, - 400, 401, 402, -1, 404, 405, 406, 407, 408, 409, - 410, 411, 412, 413, -1, 415, 416, -1, -1, 419, - 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, - 430, 431, 432, -1, -1, 435, 436, 437, 438, 439, - 440, -1, 442, 443, 444, 445, 446, 447, 448, -1, - 450, 451, 452, 453, 454, 455, 456, -1, -1, 459, - -1, 461, 462, 463, 464, 465, 466, 467, 468, 469, - 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, - 480, 481, 482, 483, -1, 485, -1, -1, -1, -1, - 490, 491, -1, -1, -1, -1, -1, 497, -1, 499, - 500, -1, -1, -1, 504, -1, 506, 507, 3, 4, - 5, 6, 7, 8, 9, 10, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 21, 22, 23, 24, - 25, 26, 27, 28, -1, 30, 31, 32, -1, -1, - -1, -1, 37, -1, -1, 40, 41, -1, 43, 44, - 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, - -1, 56, 57, 58, 59, 60, 61, 62, 63, 64, - 65, 66, 67, 68, -1, 70, 71, 72, 73, 74, - -1, 76, -1, 78, 79, 80, 81, 82, 83, 84, - 85, 86, 87, -1, 89, 90, 91, 92, 93, 94, - -1, 96, 97, 98, 99, 100, 101, 102, 103, 104, - 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, - 115, 116, 117, 118, -1, 120, 121, 122, 123, 124, - 125, -1, 127, 128, 129, 130, 131, -1, -1, 134, - 135, 136, 137, 138, -1, 140, 141, 142, -1, 144, - 145, 146, -1, 148, 149, 150, 151, 152, 153, 154, - 155, 156, 157, 158, 159, 160, -1, 162, 163, 164, - 165, -1, 167, -1, 169, 170, -1, 172, 173, 174, - 175, 176, 177, -1, 179, -1, 181, 182, 183, -1, - 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, - 195, 196, -1, 198, 199, 200, 201, 202, 203, -1, - 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, - -1, 216, -1, 218, 219, 220, 221, 222, 223, 224, - 225, 226, 227, 228, -1, -1, 231, 232, 233, 234, - -1, 236, 237, 238, 239, 240, 241, 242, 243, 244, - 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, - 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, - 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, - 275, 276, 277, 278, 279, 280, 281, 282, 283, -1, - 285, 286, -1, -1, 289, 290, 291, -1, -1, 294, - 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, - 305, 306, 307, 308, 309, -1, 311, 312, 313, 314, - 315, 316, 317, 318, 319, -1, 321, 322, 323, 324, - 325, 326, -1, 328, 329, 330, 331, 332, 333, 334, - 335, -1, 337, 338, 339, 340, 341, 342, 343, 344, - 345, 346, 347, 348, 349, -1, 351, 352, 353, 354, - 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, - 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, - 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, - 385, -1, 387, 388, 389, 390, 391, 392, 393, 394, - 395, 396, 397, 398, 399, 400, 401, 402, -1, 404, - 405, 406, 407, 408, 409, 410, 411, 412, 413, -1, - 415, 416, -1, -1, 419, 420, 421, 422, 423, 424, - 425, 426, 427, 428, 429, 430, 431, 432, -1, -1, - 435, 436, 437, 438, 439, 440, -1, 442, 443, 444, - 445, 446, 447, 448, -1, 450, 451, 452, 453, 454, - 455, 456, -1, -1, 459, -1, 461, 462, 463, 464, - 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, - 475, 476, 477, 478, 479, 480, 481, 482, 483, -1, - 485, -1, -1, -1, -1, 490, 491, -1, -1, -1, - -1, -1, 497, -1, 499, -1, -1, -1, -1, 504, - -1, 506, 507, 3, 4, 5, 6, 7, 8, 9, - 10, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 21, 22, 23, 24, 25, 26, 27, 28, -1, - 30, 31, 32, -1, -1, -1, -1, 37, -1, -1, - 40, 41, -1, 43, 44, 45, 46, 47, 48, 49, - 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, - 60, 61, 62, 63, 64, 65, 66, 67, 68, -1, - 70, 71, 72, 73, 74, -1, 76, -1, 78, 79, - 80, 81, 82, 83, 84, 85, 86, 87, -1, 89, - 90, 91, 92, 93, 94, -1, 96, 97, 98, 99, - 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, - 110, 111, 112, 113, 114, 115, 116, 117, 118, -1, - 120, 121, 122, 123, 124, 125, -1, 127, 128, 129, - 130, 131, -1, -1, 134, 135, 136, 137, 138, -1, - 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, - 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, - 160, -1, 162, 163, 164, 165, -1, 167, -1, 169, - 170, 171, 172, 173, 174, 175, 176, 177, -1, 179, - -1, 181, 182, 183, -1, 185, 186, 187, 188, 189, - 190, 191, 192, 193, 194, 195, 196, -1, 198, 199, - 200, 201, 202, 203, -1, 205, 206, 207, 208, 209, - 210, 211, 212, 213, 214, -1, 216, -1, 218, 219, - 220, 221, 222, 223, 224, 225, 226, 227, 228, -1, - 230, 231, 232, 233, 234, -1, 236, 237, 238, 239, - 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, - 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, - 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, - 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, - 280, 281, 282, 283, -1, 285, 286, -1, -1, 289, - 290, 291, -1, -1, 294, 295, 296, 297, 298, 299, - 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, - -1, 311, 312, 313, 314, 315, 316, 317, 318, 319, - -1, 321, 322, 323, 324, 325, 326, -1, 328, 329, - 330, 331, 332, 333, 334, 335, -1, 337, 338, 339, - 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, - -1, 351, 352, 353, 354, 355, 356, 357, 358, 359, - 360, 361, 362, 363, 364, 365, 366, 367, 368, -1, - 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, - 380, 381, 382, 383, 384, 385, -1, 387, 388, 389, + 475, 476, 477, 478, 479, 480, 481, 482, 483, 785, + 0, 583, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 94, 95, 96, + 97, 98, 99, 100, 101, 0, 102, 103, 104, 0, + 0, 0, 0, 0, 0, 0, 105, 106, 0, 107, + 108, 109, 786, 111, 112, 113, 787, 788, 789, 790, + 791, 0, 119, 120, 121, 122, 123, 124, 0, 0, + 125, 126, 792, 793, 129, 0, 130, 131, 132, 133, + 794, 0, 795, 0, 136, 137, 138, 139, 140, 141, + 796, 143, 144, 145, 0, 146, 147, 148, 149, 150, + 151, 0, 797, 153, 154, 155, 798, 799, 800, 801, + 0, 0, 802, 161, 162, 163, 164, 165, 166, 167, + 803, 804, 170, 0, 171, 0, 172, 173, 174, 175, + 176, 177, 0, 178, 179, 180, 181, 182, 0, 0, + 183, 184, 185, 186, 187, 0, 188, 189, 190, 0, + 191, 192, 193, 0, 194, 195, 196, 197, 805, 199, + 200, 201, 202, 203, 806, 1308, 205, 0, 206, 207, + 807, 209, 0, 210, 0, 211, 808, 0, 809, 214, + 215, 810, 811, 218, 0, 219, 0, 812, 813, 222, + 0, 223, 224, 225, 226, 227, 228, 229, 814, 231, + 232, 233, 234, 0, 235, 236, 237, 238, 239, 240, + 0, 241, 815, 816, 244, 245, 246, 247, 248, 817, + 818, 0, 819, 0, 252, 820, 821, 255, 822, 257, + 258, 259, 260, 261, 262, 0, 0, 263, 823, 265, + 824, 0, 267, 268, 269, 0, 0, 270, 271, 272, + 273, 274, 825, 276, 277, 278, 279, 280, 281, 282, + 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, + 293, 826, 827, 828, 297, 298, 299, 829, 0, 301, + 302, 830, 304, 0, 831, 306, 832, 308, 309, 310, + 0, 311, 312, 1309, 0, 313, 314, 315, 0, 0, + 316, 833, 834, 319, 835, 836, 322, 323, 324, 325, + 326, 327, 328, 329, 330, 331, 0, 332, 333, 837, + 335, 336, 838, 338, 339, 340, 0, 341, 342, 343, + 344, 345, 346, 0, 347, 348, 349, 839, 351, 352, + 353, 354, 0, 355, 356, 357, 358, 359, 360, 361, + 362, 363, 364, 365, 366, 367, 0, 368, 369, 840, + 371, 372, 373, 841, 375, 376, 377, 378, 379, 380, + 381, 382, 383, 384, 385, 0, 386, 387, 388, 389, + 390, 842, 392, 843, 394, 395, 396, 844, 398, 399, + 845, 401, 0, 402, 403, 404, 405, 406, 407, 408, + 409, 410, 411, 412, 413, 846, 415, 847, 417, 0, + 418, 419, 0, 420, 848, 422, 423, 424, 425, 426, + 0, 849, 850, 0, 0, 429, 430, 851, 432, 852, + 1310, 434, 435, 853, 437, 438, 439, 440, 441, 0, + 0, 442, 443, 444, 445, 446, 854, 0, 448, 449, + 450, 451, 452, 1202, 856, 0, 455, 857, 457, 458, + 459, 460, 461, 0, 0, 462, 0, 0, 463, 464, + 465, 466, 467, 468, 858, 859, 860, 861, 862, 863, + 864, 865, 866, 867, 868, 480, 481, 482, 483, 785, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 94, 95, 96, + 97, 98, 99, 100, 101, 0, 102, 103, 104, 3, + 4, 0, 0, 0, 0, 0, 105, 106, 0, 107, + 108, 109, 786, 111, 112, 113, 787, 788, 789, 790, + 791, 0, 119, 120, 121, 122, 123, 124, 0, 0, + 125, 126, 792, 793, 129, 0, 130, 131, 132, 133, + 794, 0, 795, 0, 136, 137, 138, 139, 140, 141, + 796, 143, 144, 145, 0, 146, 147, 148, 149, 150, + 151, 0, 797, 153, 154, 155, 798, 799, 800, 801, + 0, 0, 802, 161, 162, 163, 164, 165, 166, 167, + 803, 804, 170, 0, 171, 0, 172, 173, 174, 175, + 176, 177, 0, 178, 179, 180, 181, 182, 0, 0, + 183, 184, 185, 186, 187, 0, 188, 189, 190, 0, + 191, 192, 193, 0, 194, 195, 196, 197, 805, 199, + 200, 201, 202, 203, 806, 0, 205, 0, 206, 207, + 807, 209, 0, 210, 0, 211, 808, 0, 809, 214, + 215, 810, 811, 218, 0, 219, 0, 812, 813, 222, + 0, 223, 224, 225, 226, 227, 228, 229, 814, 231, + 232, 233, 234, 0, 235, 236, 237, 238, 239, 240, + 0, 241, 815, 816, 244, 245, 246, 247, 248, 817, + 818, 0, 819, 0, 252, 820, 821, 255, 822, 257, + 258, 259, 260, 261, 262, 0, 0, 263, 823, 265, + 824, 0, 267, 268, 269, 0, 0, 270, 271, 272, + 273, 274, 825, 276, 277, 278, 279, 280, 281, 282, + 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, + 293, 826, 827, 828, 297, 298, 299, 829, 0, 301, + 302, 830, 304, 0, 831, 306, 832, 308, 309, 310, + 0, 311, 312, 0, 0, 313, 314, 315, 0, 0, + 316, 833, 834, 319, 835, 836, 322, 323, 324, 325, + 326, 327, 328, 329, 330, 331, 0, 332, 333, 837, + 335, 336, 838, 338, 339, 340, 0, 341, 342, 343, + 344, 345, 346, 0, 347, 348, 349, 839, 351, 352, + 353, 354, 0, 355, 356, 357, 358, 359, 360, 361, + 362, 363, 364, 365, 366, 367, 0, 368, 369, 840, + 371, 372, 373, 841, 375, 376, 377, 378, 379, 380, + 381, 382, 383, 384, 385, 0, 386, 387, 388, 389, + 390, 842, 392, 843, 394, 395, 396, 844, 398, 399, + 845, 401, 0, 402, 403, 404, 405, 406, 407, 408, + 409, 410, 411, 412, 413, 846, 415, 847, 417, 0, + 418, 419, 0, 420, 848, 422, 423, 424, 425, 426, + 0, 849, 850, 0, 0, 429, 430, 851, 432, 852, + 0, 434, 435, 853, 437, 438, 439, 440, 441, 0, + 0, 442, 443, 444, 445, 446, 854, 0, 448, 449, + 450, 451, 452, 1202, 856, 0, 455, 857, 457, 458, + 459, 460, 461, 0, 0, 462, 0, 0, 463, 464, + 465, 466, 467, 468, 858, 859, 860, 861, 862, 863, + 864, 865, 866, 867, 868, 480, 481, 482, 483, 93, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 94, 95, 96, + 97, 98, 99, 100, 101, 0, 102, 103, 104, 0, + 0, 0, 0, 0, 0, 0, 105, 106, 0, 107, + 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, + 118, 0, 119, 120, 121, 122, 123, 124, 0, 0, + 125, 126, 127, 128, 129, 0, 130, 131, 132, 133, + 134, 0, 135, 0, 136, 137, 138, 139, 140, 141, + 142, 143, 144, 145, 0, 146, 147, 148, 149, 150, + 151, 0, 152, 153, 154, 155, 156, 157, 158, 159, + 0, 0, 160, 161, 162, 163, 164, 165, 166, 167, + 168, 169, 170, 0, 171, 0, 172, 173, 174, 175, + 176, 177, 0, 178, 179, 180, 181, 182, 0, 0, + 183, 184, 185, 186, 187, 0, 188, 189, 190, 0, + 191, 192, 193, 0, 194, 195, 196, 197, 198, 199, + 200, 201, 202, 203, 204, 0, 205, 0, 206, 207, + 208, 209, 0, 210, 0, 211, 212, 0, 213, 214, + 215, 216, 217, 218, 0, 219, 0, 220, 221, 222, + 0, 223, 224, 225, 226, 227, 228, 229, 230, 231, + 232, 233, 234, 0, 235, 236, 237, 238, 239, 240, + 0, 241, 242, 243, 244, 245, 246, 247, 248, 249, + 250, 0, 251, 0, 252, 253, 254, 255, 256, 257, + 258, 259, 260, 261, 262, 0, 0, 263, 264, 265, + 266, 0, 267, 268, 269, 0, 0, 270, 271, 272, + 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, + 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, + 293, 294, 295, 296, 297, 298, 299, 300, 0, 301, + 302, 303, 304, 0, 305, 306, 307, 308, 309, 310, + 0, 311, 312, 0, 0, 313, 314, 315, 0, 0, + 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, + 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, + 335, 336, 337, 338, 339, 340, 0, 341, 342, 343, + 344, 345, 346, 0, 347, 348, 349, 350, 351, 352, + 353, 354, 0, 355, 356, 357, 358, 359, 360, 361, + 362, 363, 364, 365, 366, 367, 0, 368, 369, 370, + 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, + 381, 382, 383, 384, 385, 0, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, - 400, 401, 402, -1, 404, 405, -1, 407, 408, 409, - 410, 411, 412, 413, -1, 415, 416, -1, 418, 419, - 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, - 430, 431, 432, -1, -1, 435, 436, 437, 438, 439, - 440, -1, 442, 443, 444, 445, 446, 447, 448, -1, - 450, 451, 452, 453, 454, 455, 456, -1, -1, 459, - -1, -1, 462, 463, 464, 465, 466, 467, 468, 469, - 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, - 480, 481, 482, 483, -1, -1, -1, -1, -1, -1, - 490, 491, -1, -1, -1, -1, -1, 497, -1, 499, - -1, -1, -1, -1, 504, -1, 506, 507, 3, 4, - 5, 6, 7, 8, 9, 10, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 21, 22, 23, 24, - 25, 26, 27, 28, 29, 30, 31, 32, -1, -1, - -1, 36, 37, -1, -1, 40, 41, -1, 43, 44, - 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, - -1, 56, 57, 58, 59, 60, 61, 62, 63, 64, - 65, 66, 67, 68, -1, 70, 71, 72, 73, 74, - -1, 76, -1, 78, 79, 80, 81, 82, 83, 84, - 85, 86, 87, -1, 89, 90, 91, 92, 93, 94, - -1, 96, 97, 98, 99, 100, 101, 102, 103, 104, - 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, - 115, 116, 117, 118, -1, 120, 121, 122, 123, 124, - 125, -1, 127, 128, 129, 130, 131, -1, -1, 134, - 135, 136, 137, 138, -1, 140, 141, 142, -1, 144, - 145, 146, -1, 148, 149, 150, 151, 152, 153, 154, - 155, 156, 157, 158, 159, 160, -1, 162, 163, 164, - 165, -1, 167, -1, 169, 170, -1, 172, 173, 174, - 175, 176, 177, -1, 179, -1, 181, 182, 183, -1, - 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, - 195, 196, -1, 198, 199, 200, 201, 202, 203, -1, - 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, - -1, 216, -1, 218, 219, 220, 221, 222, 223, 224, - 225, 226, 227, 228, -1, -1, 231, 232, 233, 234, - -1, 236, 237, 238, 239, 240, 241, 242, 243, 244, - 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, - 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, - 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, - 275, 276, 277, 278, 279, 280, 281, 282, 283, -1, - 285, 286, -1, -1, 289, 290, 291, -1, -1, 294, - 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, - 305, 306, 307, 308, 309, -1, 311, 312, 313, 314, - 315, 316, 317, 318, 319, -1, 321, 322, 323, 324, - 325, 326, -1, 328, 329, 330, 331, 332, 333, 334, - 335, -1, 337, 338, 339, 340, 341, 342, 343, 344, - 345, 346, 347, 348, 349, -1, 351, 352, 353, 354, - 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, - 365, 366, 367, 368, -1, 370, 371, 372, 373, 374, - 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, - 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, - 395, 396, 397, 398, 399, 400, 401, 402, -1, 404, - 405, -1, 407, 408, 409, 410, 411, 412, 413, -1, - 415, 416, -1, -1, 419, 420, 421, 422, 423, 424, - 425, 426, 427, 428, 429, 430, 431, 432, -1, -1, - 435, 436, 437, 438, 439, 440, -1, 442, 443, 444, - 445, 446, 447, 448, -1, 450, 451, 452, 453, 454, - 455, 456, -1, -1, 459, -1, -1, 462, 463, 464, + 400, 401, 0, 402, 403, 404, 405, 406, 407, 408, + 409, 410, 411, 412, 413, 414, 415, 416, 417, 0, + 418, 419, 0, 420, 421, 422, 423, 424, 425, 426, + 0, 427, 428, 0, 0, 429, 430, 431, 432, 433, + 0, 434, 435, 436, 437, 438, 439, 440, 441, 0, + 0, 442, 443, 444, 445, 446, 447, 0, 448, 449, + 450, 451, 452, 453, 454, 0, 455, 456, 457, 458, + 459, 460, 461, 0, 0, 462, 0, 0, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, - 475, 476, 477, 478, 479, 480, 481, 482, 483, -1, - -1, -1, -1, -1, -1, 490, 491, -1, -1, -1, - -1, -1, 497, -1, 499, -1, -1, -1, -1, 504, - -1, 506, 507, 3, 4, 5, 6, 7, 8, 9, - 10, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 21, 22, 23, 24, 25, 26, 27, 28, 29, - 30, 31, 32, -1, -1, -1, -1, 37, -1, -1, - 40, 41, -1, 43, 44, 45, 46, 47, 48, 49, - 50, 51, 52, 53, 54, -1, 56, 57, 58, 59, - 60, 61, 62, 63, 64, 65, 66, 67, 68, -1, - 70, 71, 72, 73, 74, -1, 76, -1, 78, 79, - 80, 81, 82, 83, 84, 85, 86, 87, -1, 89, - 90, 91, 92, 93, 94, -1, 96, 97, 98, 99, - 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, - 110, 111, 112, 113, 114, 115, 116, 117, 118, -1, - 120, 121, 122, 123, 124, 125, -1, 127, 128, 129, - 130, 131, -1, -1, 134, 135, 136, 137, 138, -1, - 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, - 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, - 160, -1, 162, 163, 164, 165, -1, 167, -1, 169, - 170, -1, 172, 173, 174, 175, 176, 177, -1, 179, - -1, 181, 182, 183, -1, 185, 186, 187, 188, 189, - 190, 191, 192, 193, 194, 195, 196, -1, 198, 199, - 200, 201, 202, 203, -1, 205, 206, 207, 208, 209, - 210, 211, 212, 213, 214, -1, 216, -1, 218, 219, - 220, 221, 222, 223, 224, 225, 226, 227, 228, -1, - -1, 231, 232, 233, 234, -1, 236, 237, 238, 239, - 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, - 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, - 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, - 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, - 280, 281, 282, 283, -1, 285, 286, -1, -1, 289, - 290, 291, -1, -1, 294, 295, 296, 297, 298, 299, - 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, - -1, 311, 312, 313, 314, 315, 316, 317, 318, 319, - -1, 321, 322, 323, 324, 325, 326, -1, 328, 329, - 330, 331, 332, 333, 334, 335, -1, 337, 338, 339, - 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, - -1, 351, 352, 353, 354, 355, 356, 357, 358, 359, - 360, 361, 362, 363, 364, 365, 366, 367, 368, -1, - 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, - 380, 381, 382, 383, 384, 385, -1, 387, 388, 389, - 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, - 400, 401, 402, -1, 404, 405, -1, 407, 408, 409, - 410, 411, 412, 413, -1, 415, 416, -1, -1, 419, - 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, - 430, 431, 432, -1, -1, 435, 436, 437, 438, 439, - 440, -1, 442, 443, 444, 445, 446, 447, 448, -1, - 450, 451, 452, 453, 454, 455, 456, -1, -1, 459, - -1, -1, 462, 463, 464, 465, 466, 467, 468, 469, - 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, - 480, 481, 482, 483, -1, -1, -1, -1, -1, -1, - 490, 491, 492, -1, -1, -1, -1, 497, -1, 499, - -1, -1, -1, -1, 504, -1, 506, 507, 3, 4, - 5, 6, 7, 8, 9, 10, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 21, 22, 23, 24, - 25, 26, 27, 28, 29, 30, 31, 32, -1, -1, - -1, -1, 37, -1, -1, 40, 41, -1, 43, 44, - 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, - -1, 56, 57, 58, 59, 60, 61, 62, 63, 64, - 65, 66, 67, 68, -1, 70, 71, 72, 73, 74, - -1, 76, -1, 78, 79, 80, 81, 82, 83, 84, - 85, 86, 87, -1, 89, 90, 91, 92, 93, 94, - -1, 96, 97, 98, 99, 100, 101, 102, 103, 104, - 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, - 115, 116, 117, 118, -1, 120, 121, 122, 123, 124, - 125, -1, 127, 128, 129, 130, 131, -1, -1, 134, - 135, 136, 137, 138, -1, 140, 141, 142, -1, 144, - 145, 146, -1, 148, 149, 150, 151, 152, 153, 154, - 155, 156, 157, 158, 159, 160, -1, 162, 163, 164, - 165, -1, 167, -1, 169, 170, -1, 172, 173, 174, - 175, 176, 177, -1, 179, -1, 181, 182, 183, -1, - 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, - 195, 196, -1, 198, 199, 200, 201, 202, 203, -1, - 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, - -1, 216, -1, 218, 219, 220, 221, 222, 223, 224, - 225, 226, 227, 228, -1, -1, 231, 232, 233, 234, - -1, 236, 237, 238, 239, 240, 241, 242, 243, 244, - 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, - 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, - 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, - 275, 276, 277, 278, 279, 280, 281, 282, 283, -1, - 285, 286, -1, -1, 289, 290, 291, -1, -1, 294, - 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, - 305, 306, 307, 308, 309, -1, 311, 312, 313, 314, - 315, 316, 317, 318, 319, -1, 321, 322, 323, 324, - 325, 326, -1, 328, 329, 330, 331, 332, 333, 334, - 335, -1, 337, 338, 339, 340, 341, 342, 343, 344, - 345, 346, 347, 348, 349, -1, 351, 352, 353, 354, - 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, - 365, 366, 367, 368, -1, 370, 371, 372, 373, 374, - 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, - 385, -1, 387, 388, 389, 390, 391, 392, 393, 394, - 395, 396, 397, 398, 399, 400, 401, 402, -1, 404, - 405, -1, 407, 408, 409, 410, 411, 412, 413, -1, - 415, 416, -1, -1, 419, 420, 421, 422, 423, 424, - 425, 426, 427, 428, 429, 430, 431, 432, -1, -1, - 435, 436, 437, 438, 439, 440, -1, 442, 443, 444, - 445, 446, 447, 448, -1, 450, 451, 452, 453, 454, - 455, 456, -1, -1, 459, -1, -1, 462, 463, 464, + 475, 476, 477, 478, 479, 480, 481, 482, 483, 507, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 94, 95, 96, + 97, 98, 99, 100, 101, 0, 102, 103, 104, 0, + 0, 0, 0, 0, 0, 0, 105, 106, 0, 107, + 108, 109, 0, 111, 112, 113, 114, 115, 0, 117, + 118, 0, 119, 120, 121, 122, 123, 124, 0, 0, + 125, 126, 127, 128, 129, 1507, 130, 131, 132, 133, + 134, 0, 0, 1508, 136, 137, 138, 139, 140, 141, + 0, 143, 144, 145, 1509, 146, 147, 148, 149, 150, + 151, 0, 0, 153, 154, 155, 0, 0, 0, 0, + 0, 0, 0, 161, 162, 163, 164, 165, 166, 167, + 168, 169, 170, 0, 171, 0, 172, 173, 174, 175, + 176, 177, 0, 178, 179, 180, 181, 182, 0, 0, + 183, 184, 185, 186, 187, 0, 188, 189, 190, 0, + 191, 192, 193, 0, 194, 195, 196, 197, 198, 199, + 200, 201, 202, 203, 204, 0, 205, 0, 206, 207, + 208, 209, 0, 210, 1510, 211, 0, 0, 0, 214, + 215, 510, 0, 218, 0, 219, 0, 220, 221, 222, + 0, 223, 224, 225, 226, 227, 1511, 229, 0, 231, + 232, 233, 234, 0, 235, 236, 237, 238, 239, 240, + 0, 241, 0, 243, 244, 245, 246, 247, 248, 249, + 250, 0, 251, 0, 252, 0, 0, 255, 0, 257, + 258, 259, 260, 261, 262, 0, 0, 263, 0, 265, + 0, 0, 267, 268, 269, 0, 0, 270, 271, 272, + 273, 274, 511, 276, 277, 278, 279, 280, 281, 282, + 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, + 293, 294, 0, 296, 297, 298, 299, 300, 0, 301, + 302, 0, 304, 0, 305, 306, 307, 308, 309, 310, + 0, 311, 312, 0, 0, 313, 314, 315, 0, 0, + 316, 317, 0, 319, 0, 321, 322, 323, 324, 325, + 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, + 335, 336, 337, 338, 339, 340, 1512, 341, 342, 343, + 344, 345, 346, 0, 347, 348, 349, 350, 351, 352, + 353, 354, 0, 355, 356, 357, 358, 359, 360, 361, + 362, 363, 364, 365, 366, 367, 0, 368, 369, 0, + 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, + 381, 382, 383, 384, 385, 0, 386, 387, 388, 389, + 390, 0, 392, 393, 394, 395, 396, 0, 398, 399, + 400, 401, 0, 402, 403, 404, 405, 406, 407, 408, + 409, 410, 411, 412, 413, 513, 415, 416, 417, 0, + 418, 419, 0, 420, 0, 422, 423, 424, 425, 426, + 0, 427, 428, 0, 0, 429, 430, 431, 432, 433, + 0, 434, 435, 436, 437, 438, 439, 440, 441, 0, + 1513, 442, 443, 444, 445, 446, 0, 0, 448, 449, + 450, 451, 452, 453, 454, 0, 455, 0, 457, 458, + 459, 460, 461, 0, 0, 462, 0, 0, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, - 475, 476, 477, 478, 479, 480, 481, 482, 483, -1, - -1, -1, -1, -1, -1, 490, 491, 492, -1, -1, - -1, -1, 497, -1, 499, -1, -1, -1, -1, 504, - -1, 506, 507, 3, 4, 5, 6, 7, 8, 9, - 10, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 21, 22, 23, 24, 25, 26, 27, 28, -1, - 30, 31, 32, -1, -1, -1, -1, 37, -1, -1, - 40, 41, -1, 43, 44, 45, 46, 47, 48, 49, - 50, 51, 52, 53, 54, -1, 56, 57, 58, 59, - 60, 61, 62, 63, 64, 65, 66, 67, 68, -1, - 70, 71, 72, 73, 74, -1, 76, -1, 78, 79, - 80, 81, 82, 83, 84, 85, 86, 87, -1, 89, - 90, 91, 92, 93, 94, -1, 96, 97, 98, 99, - 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, - 110, 111, 112, 113, 114, 115, 116, 117, 118, -1, - 120, 121, 122, 123, 124, 125, -1, 127, 128, 129, - 130, 131, -1, -1, 134, 135, 136, 137, 138, -1, - 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, - 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, - 160, -1, 162, 163, 164, 165, -1, 167, -1, 169, - 170, -1, 172, 173, 174, 175, 176, 177, -1, 179, - -1, 181, 182, 183, -1, 185, 186, 187, 188, 189, - 190, 191, 192, 193, 194, 195, 196, -1, 198, 199, - 200, 201, 202, 203, -1, 205, 206, 207, 208, 209, - 210, 211, 212, 213, 214, -1, 216, -1, 218, 219, - 220, 221, 222, 223, 224, 225, 226, 227, 228, -1, - -1, 231, 232, 233, 234, -1, 236, 237, 238, 239, - 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, - 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, - 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, - 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, - 280, 281, 282, 283, -1, 285, 286, -1, -1, 289, - 290, 291, -1, -1, 294, 295, 296, 297, 298, 299, - 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, - -1, 311, 312, 313, 314, 315, 316, 317, 318, 319, - -1, 321, 322, 323, 324, 325, 326, -1, 328, 329, - 330, 331, 332, 333, 334, 335, -1, 337, 338, 339, - 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, - -1, 351, 352, 353, 354, 355, 356, 357, 358, 359, - 360, 361, 362, 363, 364, 365, 366, 367, 368, -1, - 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, - 380, 381, 382, 383, 384, 385, -1, 387, 388, 389, - 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, - 400, 401, 402, -1, 404, 405, -1, 407, 408, 409, - 410, 411, 412, 413, -1, 415, 416, -1, -1, 419, - 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, - 430, 431, 432, -1, -1, 435, 436, 437, 438, 439, - 440, -1, 442, 443, 444, 445, 446, 447, 448, -1, - 450, 451, 452, 453, 454, 455, 456, -1, -1, 459, - -1, -1, 462, 463, 464, 465, 466, 467, 468, 469, - 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, - 480, 481, 482, 483, -1, -1, -1, -1, -1, -1, - 490, 491, 492, -1, -1, -1, -1, 497, -1, 499, - -1, -1, -1, -1, 504, -1, 506, 507, 3, 4, - 5, 6, 7, 8, 9, 10, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 21, 22, 23, 24, - 25, 26, 27, 28, 29, 30, 31, 32, -1, -1, - -1, -1, 37, -1, -1, 40, 41, -1, 43, 44, - 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, - -1, 56, 57, 58, 59, 60, 61, 62, 63, 64, - 65, 66, 67, 68, -1, 70, 71, 72, 73, 74, - -1, 76, -1, 78, 79, 80, 81, 82, 83, 84, - 85, 86, 87, -1, 89, 90, 91, 92, 93, 94, - -1, 96, 97, 98, 99, 100, 101, 102, 103, 104, - 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, - 115, 116, 117, 118, -1, 120, 121, 122, 123, 124, - 125, -1, 127, 128, 129, 130, 131, -1, -1, 134, - 135, 136, 137, 138, -1, 140, 141, 142, -1, 144, - 145, 146, -1, 148, 149, 150, 151, 152, 153, 154, - 155, 156, 157, 158, 159, 160, -1, 162, 163, 164, - 165, -1, 167, -1, 169, 170, -1, 172, 173, 174, - 175, 176, 177, -1, 179, -1, 181, 182, 183, -1, - 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, - 195, 196, -1, 198, 199, 200, 201, 202, 203, -1, - 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, - -1, 216, -1, 218, 219, 220, 221, 222, 223, 224, - 225, 226, 227, 228, -1, -1, 231, 232, 233, 234, - -1, 236, 237, 238, 239, 240, 241, 242, 243, 244, - 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, - 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, - 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, - 275, 276, 277, 278, 279, 280, 281, 282, 283, -1, - 285, 286, -1, -1, 289, 290, 291, -1, -1, 294, - 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, - 305, 306, 307, 308, 309, -1, 311, 312, 313, 314, - 315, 316, 317, 318, 319, -1, 321, 322, 323, 324, - 325, 326, -1, 328, 329, 330, 331, 332, 333, 334, - 335, -1, 337, 338, 339, 340, 341, 342, 343, 344, - 345, 346, 347, 348, 349, -1, 351, 352, 353, 354, - 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, - 365, 366, 367, 368, -1, 370, 371, 372, 373, 374, - 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, - 385, -1, 387, 388, 389, 390, 391, 392, 393, 394, - 395, 396, 397, 398, 399, 400, 401, 402, -1, 404, - 405, -1, 407, 408, 409, 410, 411, 412, 413, -1, - 415, 416, -1, -1, 419, 420, 421, 422, 423, 424, - 425, 426, 427, 428, 429, 430, 431, 432, -1, -1, - 435, 436, 437, 438, 439, 440, -1, 442, 443, 444, - 445, 446, 447, 448, -1, 450, 451, 452, 453, 454, - 455, 456, -1, -1, 459, -1, -1, 462, 463, 464, + 475, 476, 477, 478, 479, 480, 481, 482, 483, 507, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 94, 95, 96, + 97, 98, 99, 100, 101, 0, 102, 103, 104, 0, + 0, 0, 0, 0, 0, 0, 105, 106, 0, 107, + 108, 109, 0, 111, 112, 113, 114, 115, 0, 117, + 118, 0, 119, 120, 121, 122, 123, 124, 0, 0, + 125, 126, 127, 128, 129, 1507, 130, 131, 132, 133, + 134, 0, 0, 0, 136, 137, 138, 139, 140, 141, + 0, 143, 144, 145, 1509, 146, 147, 148, 149, 150, + 151, 0, 0, 153, 154, 155, 0, 0, 0, 0, + 0, 0, 0, 161, 162, 163, 164, 165, 166, 167, + 168, 169, 170, 0, 171, 0, 172, 173, 174, 175, + 176, 177, 0, 178, 179, 180, 181, 182, 0, 0, + 183, 184, 185, 186, 187, 0, 188, 189, 190, 0, + 191, 192, 193, 0, 194, 195, 196, 197, 198, 199, + 200, 201, 202, 203, 204, 0, 205, 0, 206, 207, + 208, 209, 0, 210, 1510, 211, 0, 0, 0, 214, + 215, 510, 0, 218, 0, 219, 0, 220, 221, 222, + 0, 223, 224, 225, 226, 227, 228, 229, 0, 231, + 232, 233, 234, 0, 235, 236, 237, 238, 239, 240, + 0, 241, 0, 243, 244, 245, 246, 247, 248, 249, + 250, 0, 251, 0, 252, 0, 0, 255, 0, 257, + 258, 259, 260, 261, 262, 0, 0, 263, 0, 265, + 1971, 0, 267, 268, 269, 0, 0, 270, 271, 272, + 273, 274, 511, 276, 277, 278, 279, 280, 281, 282, + 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, + 293, 294, 0, 296, 297, 298, 299, 300, 0, 301, + 302, 0, 304, 0, 305, 306, 307, 308, 309, 310, + 0, 311, 312, 0, 0, 313, 314, 315, 0, 0, + 316, 317, 0, 319, 0, 321, 322, 323, 324, 325, + 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, + 335, 336, 337, 338, 339, 340, 1512, 341, 342, 343, + 344, 345, 346, 0, 347, 348, 349, 350, 351, 352, + 353, 354, 0, 355, 356, 357, 358, 359, 360, 361, + 362, 363, 364, 365, 366, 367, 0, 368, 369, 0, + 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, + 381, 382, 383, 384, 385, 0, 386, 387, 388, 389, + 390, 0, 392, 393, 394, 395, 396, 0, 398, 399, + 400, 401, 0, 402, 403, 404, 405, 406, 407, 408, + 409, 410, 411, 412, 413, 513, 415, 416, 417, 0, + 418, 419, 0, 420, 0, 422, 423, 424, 425, 426, + 0, 427, 428, 0, 0, 429, 430, 431, 432, 433, + 0, 434, 435, 436, 437, 438, 439, 440, 441, 0, + 1513, 442, 443, 444, 445, 446, 0, 0, 448, 449, + 450, 451, 452, 453, 454, 0, 455, 0, 457, 458, + 459, 460, 461, 0, 0, 462, 0, 0, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, - 475, 476, 477, 478, 479, 480, 481, 482, 483, -1, - -1, -1, -1, -1, -1, 490, 491, -1, -1, -1, - -1, -1, 497, -1, 499, -1, -1, -1, -1, 504, - -1, 506, 507, 3, 4, 5, 6, 7, 8, 9, - 10, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 21, 22, 23, 24, 25, 26, 27, 28, -1, - 30, 31, 32, -1, -1, -1, -1, 37, -1, -1, - 40, 41, -1, 43, 44, 45, 46, 47, 48, 49, - 50, 51, 52, 53, 54, -1, 56, 57, 58, 59, - 60, 61, 62, 63, 64, 65, 66, 67, 68, -1, - 70, 71, 72, 73, 74, -1, 76, -1, 78, 79, - 80, 81, 82, 83, 84, 85, 86, 87, -1, 89, - 90, 91, 92, 93, 94, -1, 96, 97, 98, 99, - 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, - 110, 111, 112, 113, 114, 115, 116, 117, 118, -1, - 120, 121, 122, 123, 124, 125, -1, 127, 128, 129, - 130, 131, -1, -1, 134, 135, 136, 137, 138, -1, - 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, - 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, - 160, -1, 162, 163, 164, 165, -1, 167, -1, 169, - 170, -1, 172, 173, 174, 175, 176, 177, -1, 179, - -1, 181, 182, 183, -1, 185, 186, 187, 188, 189, - 190, 191, 192, 193, 194, 195, 196, -1, 198, 199, - 200, 201, 202, 203, -1, 205, 206, 207, 208, 209, - 210, 211, 212, 213, 214, -1, 216, -1, 218, 219, - 220, 221, 222, 223, 224, 225, 226, 227, 228, -1, - -1, 231, 232, 233, 234, -1, 236, 237, 238, 239, - 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, - 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, - 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, - 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, - 280, 281, 282, 283, -1, 285, 286, -1, -1, 289, - 290, 291, -1, -1, 294, 295, 296, 297, 298, 299, - 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, - -1, 311, 312, 313, 314, 315, 316, 317, 318, 319, - -1, 321, 322, 323, 324, 325, 326, -1, 328, 329, - 330, 331, 332, 333, 334, 335, -1, 337, 338, 339, - 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, - -1, 351, 352, 353, 354, 355, 356, 357, 358, 359, - 360, 361, 362, 363, 364, 365, 366, 367, 368, -1, - 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, - 380, 381, 382, 383, 384, 385, -1, 387, 388, 389, - 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, - 400, 401, 402, -1, 404, 405, -1, 407, 408, 409, - 410, 411, 412, 413, -1, 415, 416, -1, -1, 419, - 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, - 430, 431, 432, -1, -1, 435, 436, 437, 438, 439, - 440, -1, 442, 443, 444, 445, 446, 447, 448, -1, - 450, 451, 452, 453, 454, 455, 456, -1, -1, 459, - -1, -1, 462, 463, 464, 465, 466, 467, 468, 469, - 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, - 480, 481, 482, 483, -1, -1, -1, -1, -1, -1, - 490, 491, -1, -1, -1, -1, -1, 497, -1, 499, - 500, -1, -1, -1, 504, -1, 506, 507, 3, 4, - 5, 6, 7, 8, 9, 10, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 21, 22, 23, 24, - 25, 26, 27, 28, -1, 30, 31, 32, -1, -1, - -1, -1, 37, -1, -1, 40, 41, -1, 43, 44, - 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, - -1, 56, 57, 58, 59, 60, 61, 62, 63, 64, - 65, 66, 67, 68, -1, 70, 71, 72, 73, 74, - -1, 76, -1, 78, 79, 80, 81, 82, 83, 84, - 85, 86, 87, -1, 89, 90, 91, 92, 93, 94, - -1, 96, 97, 98, 99, 100, 101, 102, 103, 104, - 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, - 115, 116, 117, 118, -1, 120, 121, 122, 123, 124, - 125, -1, 127, 128, 129, 130, 131, -1, -1, 134, - 135, 136, 137, 138, -1, 140, 141, 142, -1, 144, - 145, 146, -1, 148, 149, 150, 151, 152, 153, 154, - 155, 156, 157, 158, 159, 160, -1, 162, 163, 164, - 165, -1, 167, -1, 169, 170, -1, 172, 173, 174, - 175, 176, 177, -1, 179, -1, 181, 182, 183, -1, - 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, - 195, 196, -1, 198, 199, 200, 201, 202, 203, -1, - 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, - -1, 216, -1, 218, 219, 220, 221, 222, 223, 224, - 225, 226, 227, 228, -1, -1, 231, 232, 233, 234, - -1, 236, 237, 238, 239, 240, 241, 242, 243, 244, - 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, - 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, - 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, - 275, 276, 277, 278, 279, 280, 281, 282, 283, -1, - 285, 286, -1, -1, 289, 290, 291, -1, -1, 294, - 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, - 305, 306, 307, 308, 309, -1, 311, 312, 313, 314, - 315, 316, 317, 318, 319, -1, 321, 322, 323, 324, - 325, 326, -1, 328, 329, 330, 331, 332, 333, 334, - 335, -1, 337, 338, 339, 340, 341, 342, 343, 344, - 345, 346, 347, 348, 349, -1, 351, 352, 353, 354, - 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, - 365, 366, 367, 368, -1, 370, 371, 372, 373, 374, - 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, - 385, -1, 387, 388, 389, 390, 391, 392, 393, 394, - 395, 396, 397, 398, 399, 400, 401, 402, -1, 404, - 405, -1, 407, 408, 409, 410, 411, 412, 413, -1, - 415, 416, -1, -1, 419, 420, 421, 422, 423, 424, - 425, 426, 427, 428, 429, 430, 431, 432, -1, -1, - 435, 436, 437, 438, 439, 440, -1, 442, 443, 444, - 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, - 455, 456, -1, -1, 459, -1, -1, 462, 463, 464, + 475, 476, 477, 478, 479, 480, 481, 482, 483, 507, + 0, 508, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 94, 95, 96, + 97, 98, 99, 100, 101, 0, 102, 103, 104, 3, + 4, 0, 0, 0, 0, 0, 105, 106, 0, 107, + 108, 109, 0, 111, 112, 113, 114, 115, 0, 117, + 118, 0, 119, 120, 121, 122, 123, 124, 0, 0, + 125, 126, 127, 128, 129, 0, 130, 131, 132, 133, + 134, 0, 0, 0, 136, 137, 138, 139, 140, 141, + 0, 143, 144, 145, 0, 146, 147, 148, 149, 150, + 151, 0, 0, 153, 154, 155, 0, 0, 0, 0, + 0, 0, 0, 161, 162, 163, 164, 165, 166, 167, + 168, 169, 170, 0, 171, 0, 172, 173, 174, 175, + 176, 177, 0, 178, 179, 180, 181, 182, 0, 0, + 183, 184, 185, 186, 187, 0, 188, 189, 190, 0, + 191, 192, 193, 0, 194, 195, 196, 197, 198, 199, + 200, 201, 202, 203, 204, 0, 205, 0, 206, 207, + 208, 209, 0, 210, 0, 211, 0, 0, 0, 214, + 215, 510, 0, 218, 0, 219, 0, 220, 221, 222, + 0, 223, 224, 225, 226, 227, 228, 229, 0, 231, + 232, 233, 234, 0, 235, 236, 237, 238, 239, 240, + 0, 241, 0, 243, 244, 245, 246, 247, 248, 249, + 250, 0, 251, 0, 252, 0, 0, 255, 0, 257, + 258, 259, 260, 261, 262, 0, 0, 263, 0, 265, + 0, 0, 267, 268, 269, 0, 0, 270, 271, 272, + 273, 274, 511, 276, 277, 278, 279, 280, 281, 282, + 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, + 293, 294, 0, 296, 297, 298, 299, 300, 0, 301, + 302, 0, 304, 0, 305, 306, 307, 308, 309, 310, + 0, 311, 312, 0, 0, 313, 314, 315, 0, 0, + 316, 317, 0, 319, 0, 321, 322, 323, 324, 325, + 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, + 335, 336, 337, 338, 339, 340, 0, 341, 342, 343, + 344, 345, 346, 0, 347, 348, 349, 350, 351, 352, + 353, 354, 0, 355, 356, 357, 358, 359, 360, 361, + 362, 363, 364, 365, 366, 367, 0, 368, 369, 0, + 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, + 381, 382, 383, 384, 385, 0, 386, 387, 388, 389, + 390, 0, 392, 393, 394, 395, 396, 0, 398, 399, + 400, 401, 0, 402, 403, 404, 405, 406, 407, 408, + 409, 410, 411, 412, 413, 513, 415, 416, 417, 0, + 418, 419, 0, 420, 0, 422, 423, 424, 425, 426, + 0, 427, 428, 0, 0, 429, 430, 431, 432, 433, + 0, 434, 435, 436, 437, 438, 439, 440, 441, 0, + 0, 442, 443, 444, 445, 446, 0, 0, 448, 449, + 450, 451, 452, 453, 454, 0, 455, 0, 457, 458, + 459, 460, 461, 0, 0, 462, 0, 0, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, - 475, 476, 477, 478, 479, 480, 481, 482, 483, -1, - -1, -1, -1, -1, -1, 490, 491, -1, -1, -1, - -1, -1, 497, -1, 499, -1, -1, -1, -1, 504, - -1, 506, 507, 3, 4, 5, 6, 7, 8, 9, - 10, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 21, 22, 23, 24, 25, 26, 27, 28, -1, - 30, 31, 32, -1, -1, -1, -1, 37, -1, -1, - 40, 41, -1, 43, 44, 45, 46, 47, 48, 49, - 50, 51, 52, 53, 54, -1, 56, 57, 58, 59, - 60, 61, 62, 63, 64, 65, 66, 67, 68, -1, - 70, 71, 72, 73, 74, -1, 76, -1, 78, 79, - 80, 81, 82, 83, 84, 85, 86, 87, -1, 89, - 90, 91, 92, 93, 94, -1, 96, 97, 98, 99, - 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, - 110, 111, 112, 113, 114, 115, 116, 117, 118, -1, - 120, 121, 122, 123, 124, 125, -1, 127, 128, 129, - 130, 131, -1, -1, 134, 135, 136, 137, 138, -1, - 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, - 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, - 160, -1, 162, 163, 164, 165, -1, 167, -1, 169, - 170, -1, 172, 173, 174, 175, 176, 177, -1, 179, - -1, 181, 182, 183, -1, 185, 186, 187, 188, 189, - 190, 191, 192, 193, 194, 195, 196, -1, 198, 199, - 200, 201, 202, 203, -1, 205, 206, 207, 208, 209, - 210, 211, 212, 213, 214, -1, 216, -1, 218, 219, - 220, 221, 222, 223, 224, 225, 226, 227, 228, -1, - -1, 231, 232, 233, 234, -1, 236, 237, 238, 239, - 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, - 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, - 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, - 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, - 280, 281, 282, 283, -1, 285, 286, -1, -1, 289, - 290, 291, -1, -1, 294, 295, 296, 297, 298, 299, - 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, - -1, 311, 312, 313, 314, 315, 316, 317, 318, 319, - -1, 321, 322, 323, 324, 325, 326, -1, 328, 329, - 330, 331, 332, 333, 334, 335, -1, 337, 338, 339, - 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, - -1, 351, 352, 353, 354, 355, 356, 357, 358, 359, - 360, 361, 362, 363, 364, 365, 366, 367, 368, -1, - 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, - 380, 381, 382, 383, 384, 385, -1, 387, 388, 389, - 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, - 400, 401, 402, -1, 404, 405, -1, 407, 408, 409, - 410, 411, 412, 413, -1, 415, 416, -1, -1, 419, - 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, - 430, 431, 432, -1, -1, 435, 436, 437, 438, 439, - 440, -1, 442, 443, 444, 445, 446, 447, 448, -1, - 450, 451, 452, 453, 454, 455, 456, -1, -1, 459, - -1, -1, 462, 463, 464, 465, 466, 467, 468, 469, - 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, - 480, 481, 482, 483, -1, -1, -1, -1, -1, -1, - 490, 491, -1, -1, -1, -1, -1, 497, -1, 499, - 500, -1, -1, -1, 504, -1, 506, 507, 3, 4, - 5, 6, 7, 8, 9, 10, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 21, 22, 23, 24, - 25, 26, 27, 28, -1, 30, 31, 32, -1, -1, - -1, -1, 37, -1, -1, 40, 41, -1, 43, 44, - 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, - -1, 56, 57, 58, 59, 60, 61, 62, 63, 64, - 65, 66, 67, 68, -1, 70, 71, 72, 73, 74, - -1, 76, -1, 78, 79, 80, 81, 82, 83, 84, - 85, 86, 87, -1, 89, 90, 91, 92, 93, 94, - -1, 96, 97, 98, 99, 100, 101, 102, 103, 104, - 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, - 115, 116, 117, 118, -1, 120, 121, 122, 123, 124, - 125, -1, 127, 128, 129, 130, 131, -1, -1, 134, - 135, 136, 137, 138, -1, 140, 141, 142, -1, 144, - 145, 146, -1, 148, 149, 150, 151, 152, 153, 154, - 155, 156, 157, 158, 159, 160, -1, 162, 163, 164, - 165, -1, 167, -1, 169, 170, 171, 172, 173, 174, - 175, 176, 177, -1, 179, -1, 181, 182, 183, -1, - 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, - 195, 196, -1, 198, 199, 200, 201, 202, 203, -1, - 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, - -1, 216, -1, 218, 219, 220, 221, 222, 223, 224, - 225, 226, 227, 228, -1, -1, 231, 232, 233, 234, - -1, 236, 237, 238, 239, 240, 241, 242, 243, 244, - 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, - 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, - 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, - 275, 276, 277, 278, 279, 280, 281, 282, 283, -1, - 285, 286, -1, -1, 289, 290, 291, -1, -1, 294, - 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, - 305, 306, 307, 308, 309, -1, 311, 312, 313, 314, - 315, 316, 317, 318, 319, -1, 321, 322, 323, 324, - 325, 326, -1, 328, 329, 330, 331, 332, 333, 334, - 335, -1, 337, 338, 339, 340, 341, 342, 343, 344, - 345, 346, 347, 348, 349, -1, 351, 352, 353, 354, - 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, - 365, 366, 367, 368, -1, 370, 371, 372, 373, 374, - 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, - 385, -1, 387, 388, 389, 390, 391, 392, 393, 394, - 395, 396, 397, 398, 399, 400, 401, 402, -1, 404, - 405, -1, 407, 408, 409, 410, 411, 412, 413, -1, - 415, 416, -1, -1, 419, 420, 421, 422, 423, 424, - 425, 426, 427, 428, 429, 430, 431, 432, -1, -1, - 435, 436, 437, 438, 439, 440, -1, 442, 443, 444, - 445, 446, 447, 448, -1, 450, 451, 452, 453, 454, - 455, 456, -1, -1, 459, -1, -1, 462, 463, 464, + 475, 476, 477, 478, 479, 480, 481, 482, 483, 507, + 0, 508, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 94, 95, 96, + 97, 98, 99, 100, 101, 509, 102, 103, 104, 0, + 0, 0, 0, 0, 0, 0, 105, 106, 0, 107, + 108, 109, 0, 111, 112, 113, 114, 115, 0, 117, + 118, 0, 119, 120, 121, 122, 123, 124, 0, 0, + 125, 126, 127, 128, 129, 0, 130, 131, 132, 133, + 134, 0, 0, 0, 136, 137, 138, 139, 140, 141, + 0, 143, 144, 145, 0, 146, 147, 148, 149, 150, + 151, 0, 0, 153, 154, 155, 0, 0, 0, 0, + 0, 0, 0, 161, 162, 163, 164, 165, 166, 167, + 168, 169, 170, 0, 171, 0, 172, 173, 174, 175, + 176, 177, 0, 178, 179, 180, 181, 182, 0, 0, + 183, 184, 185, 186, 187, 0, 188, 189, 190, 0, + 191, 192, 193, 0, 194, 195, 196, 197, 198, 199, + 200, 201, 202, 203, 204, 0, 205, 0, 206, 207, + 208, 209, 0, 210, 0, 211, 0, 0, 0, 214, + 215, 510, 0, 218, 0, 219, 0, 220, 221, 222, + 0, 223, 224, 225, 226, 227, 228, 229, 0, 231, + 232, 233, 234, 0, 235, 236, 237, 238, 239, 240, + 0, 241, 0, 243, 244, 245, 246, 247, 248, 249, + 250, 0, 251, 0, 252, 0, 0, 255, 0, 257, + 258, 259, 260, 261, 262, 0, 0, 263, 0, 265, + 0, 0, 267, 268, 269, 0, 0, 270, 271, 272, + 273, 274, 511, 276, 277, 278, 279, 280, 281, 282, + 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, + 293, 294, 0, 296, 297, 298, 299, 300, 0, 301, + 302, 0, 304, 0, 305, 306, 307, 308, 309, 310, + 0, 311, 312, 0, 0, 313, 314, 315, 0, 0, + 316, 317, 0, 319, 0, 321, 322, 323, 324, 325, + 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, + 335, 336, 337, 512, 339, 340, 0, 341, 342, 343, + 344, 345, 346, 0, 347, 348, 349, 350, 351, 352, + 353, 354, 0, 355, 356, 357, 358, 359, 360, 361, + 362, 363, 364, 365, 366, 367, 0, 368, 369, 0, + 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, + 381, 382, 383, 384, 385, 0, 386, 387, 388, 389, + 390, 0, 392, 393, 394, 395, 396, 0, 398, 399, + 400, 401, 0, 402, 403, 404, 405, 406, 407, 408, + 409, 410, 411, 412, 413, 513, 415, 416, 417, 0, + 418, 419, 0, 420, 0, 422, 423, 424, 425, 426, + 0, 427, 428, 0, 0, 429, 430, 431, 432, 433, + 0, 434, 435, 436, 437, 438, 439, 440, 441, 0, + 0, 442, 443, 444, 445, 446, 0, 0, 448, 449, + 450, 451, 452, 453, 454, 0, 455, 0, 457, 458, + 459, 460, 461, 0, 0, 462, 0, 0, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, - 475, 476, 477, 478, 479, 480, 481, 482, 483, -1, - -1, -1, -1, -1, -1, 490, 491, -1, -1, -1, - -1, -1, 497, -1, 499, -1, -1, -1, -1, 504, - -1, 506, 507, 3, 4, 5, 6, 7, 8, 9, - 10, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 21, 22, 23, 24, 25, 26, 27, 28, -1, - 30, 31, 32, -1, -1, -1, -1, 37, -1, -1, - 40, 41, -1, 43, 44, 45, 46, 47, 48, 49, - 50, 51, 52, 53, 54, -1, 56, 57, 58, 59, - 60, 61, 62, 63, 64, 65, 66, 67, 68, -1, - 70, 71, 72, 73, 74, -1, 76, -1, 78, 79, - 80, 81, 82, 83, 84, 85, 86, 87, -1, 89, - 90, 91, 92, 93, 94, -1, 96, 97, 98, 99, - 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, - 110, 111, 112, 113, 114, 115, 116, 117, 118, -1, - 120, 121, 122, 123, 124, 125, -1, 127, 128, 129, - 130, 131, -1, -1, 134, 135, 136, 137, 138, -1, - 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, - 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, - 160, -1, 162, 163, 164, 165, -1, 167, -1, 169, - 170, -1, 172, 173, 174, 175, 176, 177, -1, 179, - -1, 181, 182, 183, -1, 185, 186, 187, 188, 189, - 190, 191, 192, 193, 194, 195, 196, -1, 198, 199, - 200, 201, 202, 203, -1, 205, 206, 207, 208, 209, - 210, 211, 212, 213, 214, -1, 216, -1, 218, 219, - 220, 221, 222, 223, 224, 225, 226, 227, 228, -1, - -1, 231, 232, 233, 234, -1, 236, 237, 238, 239, - 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, - 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, - 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, - 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, - 280, 281, 282, 283, -1, 285, 286, -1, -1, 289, - 290, 291, -1, -1, 294, 295, 296, 297, 298, 299, - 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, - -1, 311, 312, 313, 314, 315, 316, 317, 318, 319, - -1, 321, 322, 323, 324, 325, 326, -1, 328, 329, - 330, 331, 332, 333, 334, 335, -1, 337, 338, 339, - 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, - -1, 351, 352, 353, 354, 355, 356, 357, 358, 359, - 360, 361, 362, 363, 364, 365, 366, 367, 368, -1, - 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, - 380, 381, 382, 383, 384, 385, -1, 387, 388, 389, - 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, - 400, 401, 402, -1, 404, 405, 406, 407, 408, 409, - 410, 411, 412, 413, -1, 415, 416, -1, -1, 419, - 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, - 430, 431, 432, -1, -1, 435, 436, 437, 438, 439, - 440, -1, 442, 443, 444, 445, 446, 447, 448, -1, - 450, 451, 452, 453, 454, 455, 456, -1, -1, 459, - -1, -1, 462, 463, 464, 465, 466, 467, 468, 469, - 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, - 480, 481, 482, 483, -1, -1, -1, -1, -1, -1, - 490, 491, -1, -1, -1, -1, -1, 497, -1, 499, - -1, -1, -1, -1, 504, -1, 506, 507, 3, 4, - 5, 6, 7, 8, 9, 10, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 21, 22, 23, 24, - 25, 26, 27, 28, -1, 30, 31, 32, -1, -1, - -1, -1, 37, -1, -1, 40, 41, -1, 43, 44, - 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, - -1, 56, 57, 58, 59, 60, 61, 62, 63, 64, - 65, 66, 67, 68, -1, 70, 71, 72, 73, 74, - -1, 76, -1, 78, 79, 80, 81, 82, 83, 84, - 85, 86, 87, -1, 89, 90, 91, 92, 93, 94, - -1, 96, 97, 98, 99, 100, 101, 102, 103, 104, - 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, - 115, 116, 117, 118, -1, 120, 121, 122, 123, 124, - 125, -1, 127, 128, 129, 130, 131, -1, -1, 134, - 135, 136, 137, 138, -1, 140, 141, 142, -1, 144, - 145, 146, -1, 148, 149, 150, 151, 152, 153, 154, - 155, 156, 157, 158, 159, 160, -1, 162, 163, 164, - 165, -1, 167, -1, 169, 170, -1, 172, 173, 174, - 175, 176, 177, -1, 179, -1, 181, 182, 183, -1, - 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, - 195, 196, -1, 198, 199, 200, 201, 202, 203, -1, - 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, - -1, 216, -1, 218, 219, 220, 221, 222, 223, 224, - 225, 226, 227, 228, -1, -1, 231, 232, 233, 234, - -1, 236, 237, 238, 239, 240, 241, 242, 243, 244, - 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, - 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, - 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, - 275, 276, 277, 278, 279, 280, 281, 282, 283, -1, - 285, 286, -1, -1, 289, 290, 291, -1, -1, 294, - 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, - 305, 306, 307, 308, 309, -1, 311, 312, 313, 314, - 315, 316, 317, 318, 319, -1, 321, 322, 323, 324, - 325, 326, -1, 328, 329, 330, 331, 332, 333, 334, - 335, -1, 337, 338, 339, 340, 341, 342, 343, 344, - 345, 346, 347, 348, 349, -1, 351, 352, 353, 354, - 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, - 365, 366, 367, 368, -1, 370, 371, 372, 373, 374, - 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, - 385, -1, 387, 388, 389, 390, 391, 392, 393, 394, - 395, 396, 397, 398, 399, 400, 401, 402, -1, 404, - 405, -1, 407, 408, 409, 410, 411, 412, 413, -1, - 415, 416, -1, -1, 419, 420, 421, 422, 423, 424, - 425, 426, 427, 428, 429, 430, 431, 432, -1, -1, - 435, 436, 437, 438, 439, 440, -1, 442, 443, 444, - 445, 446, 447, 448, -1, 450, 451, 452, 453, 454, - 455, 456, -1, 458, 459, -1, -1, 462, 463, 464, + 475, 476, 477, 478, 479, 480, 481, 482, 483, 507, + 0, 508, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 94, 95, 96, + 97, 98, 99, 100, 101, 0, 102, 103, 104, 0, + 0, 0, 0, 0, 0, 0, 105, 106, 0, 107, + 108, 109, 0, 111, 112, 113, 114, 115, 0, 117, + 118, 0, 119, 120, 121, 122, 123, 124, 0, 0, + 125, 126, 127, 128, 129, 0, 130, 131, 132, 133, + 134, 0, 0, 0, 136, 137, 138, 139, 140, 141, + 0, 143, 144, 145, 0, 146, 147, 148, 149, 150, + 151, 0, 0, 153, 154, 155, 0, 0, 0, 0, + 0, 0, 0, 161, 162, 163, 164, 165, 166, 167, + 168, 169, 170, 0, 171, 0, 172, 173, 174, 175, + 176, 177, 0, 178, 179, 180, 181, 182, 0, 0, + 183, 184, 185, 186, 187, 0, 188, 189, 190, 0, + 191, 192, 193, 0, 194, 195, 196, 197, 198, 199, + 200, 201, 202, 203, 204, 0, 205, 0, 206, 207, + 208, 209, 0, 210, 0, 211, 0, 0, 0, 214, + 215, 510, 0, 218, 0, 219, 0, 220, 221, 222, + 0, 223, 224, 225, 226, 227, 228, 229, 0, 231, + 232, 233, 234, 0, 235, 236, 237, 238, 239, 240, + 0, 241, 0, 243, 244, 245, 246, 247, 248, 249, + 250, 0, 251, 0, 252, 0, 0, 255, 0, 257, + 258, 259, 260, 261, 262, 0, 0, 263, 0, 265, + 0, 0, 267, 268, 269, 0, 0, 270, 271, 272, + 273, 274, 511, 276, 277, 278, 279, 280, 281, 282, + 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, + 293, 294, 0, 296, 297, 298, 299, 300, 0, 301, + 302, 0, 304, 0, 305, 306, 307, 308, 309, 310, + 0, 311, 312, 0, 615, 313, 314, 315, 0, 0, + 316, 317, 0, 319, 0, 321, 322, 323, 324, 325, + 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, + 335, 336, 337, 338, 339, 340, 0, 341, 342, 343, + 344, 345, 346, 0, 347, 348, 349, 350, 351, 352, + 353, 354, 0, 355, 356, 357, 358, 359, 360, 361, + 362, 363, 364, 365, 366, 367, 0, 368, 369, 0, + 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, + 381, 382, 383, 384, 385, 0, 386, 387, 388, 389, + 390, 0, 392, 393, 394, 395, 396, 0, 398, 399, + 400, 401, 0, 402, 403, 404, 405, 406, 407, 408, + 409, 410, 411, 412, 413, 513, 415, 416, 417, 0, + 418, 419, 0, 420, 0, 422, 423, 424, 425, 426, + 0, 427, 428, 0, 0, 429, 430, 431, 432, 433, + 0, 434, 435, 436, 437, 438, 439, 440, 441, 0, + 0, 442, 443, 444, 445, 446, 0, 0, 448, 449, + 450, 451, 452, 453, 454, 0, 455, 0, 457, 458, + 459, 460, 461, 0, 0, 462, 0, 0, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, - 475, 476, 477, 478, 479, 480, 481, 482, 483, -1, - -1, -1, -1, -1, -1, 490, 491, -1, -1, -1, - -1, -1, 497, -1, 499, -1, -1, -1, -1, 504, - -1, 506, 507, 3, 4, 5, 6, 7, 8, 9, - 10, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 21, 22, 23, 24, 25, 26, 27, 28, -1, - 30, 31, 32, -1, -1, -1, -1, 37, -1, -1, - 40, 41, -1, 43, 44, 45, 46, 47, 48, 49, - 50, 51, 52, 53, 54, -1, 56, 57, 58, 59, - 60, 61, 62, 63, 64, 65, 66, 67, 68, -1, - 70, 71, 72, 73, 74, -1, 76, -1, 78, 79, - 80, 81, 82, 83, 84, 85, 86, 87, -1, 89, - 90, 91, 92, 93, 94, -1, 96, 97, 98, 99, - 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, - 110, 111, 112, 113, 114, 115, 116, 117, 118, -1, - 120, 121, 122, 123, 124, 125, -1, 127, 128, 129, - 130, 131, -1, -1, 134, 135, 136, 137, 138, -1, - 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, - 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, - 160, -1, 162, 163, 164, 165, -1, 167, -1, 169, - 170, -1, 172, 173, 174, 175, 176, 177, -1, 179, - -1, 181, 182, 183, -1, 185, 186, 187, 188, 189, - 190, 191, 192, 193, 194, 195, 196, -1, 198, 199, - 200, 201, 202, 203, -1, 205, 206, 207, 208, 209, - 210, 211, 212, 213, 214, -1, 216, -1, 218, 219, - 220, 221, 222, 223, 224, 225, 226, 227, 228, -1, - -1, 231, 232, 233, 234, -1, 236, 237, 238, 239, - 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, - 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, - 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, - 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, - 280, 281, 282, 283, -1, 285, 286, -1, -1, 289, - 290, 291, -1, -1, 294, 295, 296, 297, 298, 299, - 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, - -1, 311, 312, 313, 314, 315, 316, 317, 318, 319, - -1, 321, 322, 323, 324, 325, 326, -1, 328, 329, - 330, 331, 332, 333, 334, 335, -1, 337, 338, 339, - 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, - -1, 351, 352, 353, 354, 355, 356, 357, 358, 359, - 360, 361, 362, 363, 364, 365, 366, 367, 368, -1, - 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, - 380, 381, 382, 383, 384, 385, -1, 387, 388, 389, - 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, - 400, 401, 402, -1, 404, 405, -1, 407, 408, 409, - 410, 411, 412, 413, -1, 415, 416, -1, -1, 419, - 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, - 430, 431, 432, -1, -1, 435, 436, 437, 438, 439, - 440, -1, 442, 443, 444, 445, 446, 447, 448, -1, - 450, 451, 452, 453, 454, 455, 456, -1, -1, 459, - -1, -1, 462, 463, 464, 465, 466, 467, 468, 469, - 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, - 480, 481, 482, 483, -1, -1, -1, -1, -1, -1, - 490, 491, -1, -1, -1, -1, -1, 497, -1, 499, - -1, -1, -1, -1, 504, -1, 506, 507, 3, 4, - 5, 6, 7, 8, 9, 10, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 21, 22, 23, 24, - 25, 26, 27, 28, -1, 30, 31, 32, -1, -1, - -1, -1, 37, -1, -1, 40, 41, -1, 43, 44, - 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, - -1, 56, 57, 58, 59, 60, 61, 62, 63, 64, - 65, 66, 67, 68, -1, 70, 71, 72, 73, 74, - -1, 76, -1, 78, 79, 80, 81, 82, 83, 84, - 85, 86, 87, -1, 89, 90, 91, 92, 93, 94, - -1, 96, 97, 98, 99, 100, 101, 102, 103, 104, - 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, - 115, 116, 117, 118, -1, 120, 121, 122, 123, 124, - 125, -1, 127, 128, 129, 130, 131, -1, -1, 134, - 135, 136, 137, 138, -1, 140, 141, 142, -1, 144, - 145, 146, -1, 148, 149, 150, 151, 152, 153, 154, - 155, 156, 157, 158, 159, 160, -1, 162, 163, 164, - 165, -1, 167, -1, 169, 170, -1, 172, 173, 174, - 175, 176, 177, -1, 179, -1, 181, 182, 183, -1, - 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, - 195, 196, -1, 198, 199, 200, 201, 202, 203, -1, - 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, - -1, 216, -1, 218, 219, 220, 221, 222, 223, 224, - 225, 226, 227, 228, -1, -1, 231, 232, 233, 234, - -1, 236, 237, 238, 239, 240, 241, 242, 243, 244, - 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, - 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, - 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, - 275, 276, 277, 278, 279, 280, 281, 282, 283, -1, - 285, 286, -1, -1, 289, 290, 291, -1, -1, 294, - 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, - 305, 306, 307, 308, 309, -1, 311, 312, 313, 314, - 315, 316, 317, 318, 319, -1, 321, 322, 323, 324, - 325, 326, -1, 328, 329, 330, 331, 332, 333, 334, - 335, -1, 337, 338, 339, 340, 341, 342, 343, 344, - 345, 346, 347, 348, 349, -1, 351, 352, 353, 354, - 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, - 365, 366, 367, 368, -1, 370, 371, 372, 373, 374, - 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, - 385, -1, 387, 388, 389, 390, 391, 392, 393, 394, - 395, 396, 397, 398, 399, 400, 401, 402, -1, 404, - 405, -1, 407, 408, 409, 410, 411, 412, 413, -1, - 415, 416, -1, -1, 419, 420, 421, 422, 423, 424, - 425, 426, 427, 428, 429, 430, 431, 432, -1, -1, - 435, 436, 437, 438, 439, 440, -1, 442, 443, 444, - 445, 446, 447, 448, -1, 450, 451, 452, 453, 454, - 455, 456, -1, -1, 459, -1, -1, 462, 463, 464, + 475, 476, 477, 478, 479, 480, 481, 482, 483, 507, + 0, 508, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 94, 95, 96, + 97, 98, 99, 100, 101, 0, 102, 103, 104, 0, + 0, 0, 0, 0, 0, 0, 105, 106, 0, 107, + 108, 109, 0, 111, 112, 113, 114, 115, 0, 117, + 118, 0, 119, 120, 121, 122, 123, 124, 0, 0, + 125, 126, 127, 128, 129, 0, 130, 131, 132, 133, + 134, 0, 0, 0, 136, 137, 138, 139, 140, 141, + 0, 143, 144, 145, 0, 146, 147, 148, 149, 150, + 151, 0, 0, 153, 154, 155, 0, 0, 0, 0, + 0, 0, 0, 161, 162, 163, 164, 165, 166, 167, + 168, 169, 170, 0, 171, 0, 172, 173, 174, 175, + 176, 177, 0, 178, 179, 180, 181, 182, 0, 0, + 183, 184, 185, 186, 187, 0, 188, 189, 190, 0, + 191, 192, 193, 0, 194, 195, 196, 197, 198, 199, + 200, 201, 202, 203, 204, 0, 205, 0, 206, 207, + 208, 209, 0, 210, 0, 211, 0, 0, 0, 214, + 215, 510, 0, 218, 0, 219, 0, 220, 221, 222, + 0, 223, 224, 225, 226, 227, 658, 229, 0, 231, + 232, 233, 234, 0, 235, 236, 237, 238, 239, 240, + 0, 241, 0, 243, 244, 245, 246, 247, 248, 249, + 250, 0, 251, 0, 252, 0, 0, 255, 0, 257, + 258, 259, 260, 261, 262, 0, 0, 263, 0, 265, + 0, 0, 267, 268, 269, 0, 0, 270, 271, 272, + 273, 274, 511, 276, 277, 278, 279, 280, 281, 282, + 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, + 293, 294, 0, 296, 297, 298, 299, 300, 0, 301, + 302, 0, 304, 0, 305, 306, 307, 308, 309, 310, + 0, 311, 312, 0, 615, 313, 314, 315, 0, 0, + 316, 317, 0, 319, 0, 321, 322, 323, 324, 325, + 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, + 335, 336, 337, 338, 339, 340, 0, 341, 342, 343, + 344, 345, 346, 0, 347, 348, 349, 350, 351, 352, + 353, 354, 0, 355, 356, 357, 358, 359, 360, 361, + 362, 363, 364, 365, 366, 367, 0, 368, 369, 0, + 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, + 381, 382, 383, 384, 385, 0, 386, 387, 388, 389, + 390, 0, 392, 393, 394, 395, 396, 0, 398, 399, + 400, 401, 0, 402, 403, 404, 405, 406, 407, 408, + 409, 410, 411, 412, 413, 513, 415, 416, 417, 0, + 418, 419, 0, 420, 0, 422, 423, 424, 425, 426, + 0, 427, 428, 0, 0, 429, 430, 431, 432, 433, + 0, 434, 435, 436, 437, 438, 439, 440, 441, 0, + 0, 442, 443, 444, 445, 446, 0, 0, 448, 449, + 450, 451, 452, 453, 454, 0, 455, 0, 457, 458, + 459, 460, 461, 0, 0, 462, 0, 0, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, - 475, 476, 477, 478, 479, 480, 481, 482, 483, -1, - -1, -1, -1, -1, -1, 490, 491, -1, -1, -1, - -1, -1, 497, -1, 499, -1, -1, -1, -1, 504, - -1, 506, 507, 3, 4, 5, 6, 7, 8, 9, - 10, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 21, 22, 23, 24, 25, 26, 27, 28, -1, - 30, 31, 32, -1, -1, -1, -1, 37, -1, -1, - 40, 41, -1, 43, 44, 45, 46, 47, 48, 49, - 50, 51, 52, 53, 54, -1, 56, 57, 58, 59, - 60, 61, 62, 63, 64, 65, 66, 67, 68, -1, - 70, 71, 72, 73, 74, -1, 76, -1, 78, 79, - 80, 81, 82, 83, 84, 85, 86, 87, -1, 89, - 90, 91, 92, 93, 94, -1, 96, 97, 98, 99, - 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, - 110, 111, 112, 113, 114, 115, 116, 117, 118, -1, - 120, 121, 122, 123, 124, 125, -1, 127, 128, 129, - 130, 131, -1, -1, 134, 135, 136, 137, 138, -1, - 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, - 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, - 160, -1, 162, 163, 164, 165, -1, 167, -1, 169, - 170, -1, 172, 173, 174, 175, 176, 177, -1, 179, - -1, 181, 182, 183, -1, 185, 186, 187, 188, 189, - 190, 191, 192, 193, 194, 195, 196, -1, 198, 199, - 200, 201, 202, 203, -1, 205, 206, 207, 208, 209, - 210, 211, 212, 213, 214, -1, 216, -1, 218, 219, - 220, 221, 222, 223, 224, 225, 226, 227, 228, -1, - -1, 231, 232, 233, 234, -1, 236, 237, 238, 239, - 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, - 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, - 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, - 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, - 280, 281, 282, 283, -1, 285, 286, -1, -1, 289, - 290, 291, -1, -1, 294, 295, 296, 297, 298, 299, - 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, - -1, 311, 312, 313, 314, 315, 316, 317, 318, 319, - -1, 321, 322, 323, 324, 325, 326, -1, 328, 329, - 330, 331, 332, 333, 334, 335, -1, 337, 338, 339, - 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, - -1, 351, 352, 353, 354, 355, 356, 357, 358, 359, - 360, 361, 362, 363, 364, 365, 366, 367, 368, -1, - 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, - 380, 381, 382, 383, 384, 385, -1, 387, 388, 389, - 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, - 400, 401, 402, -1, 404, 405, -1, 407, 408, 409, - 410, 411, 412, 413, -1, 415, 416, -1, -1, 419, - 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, - 430, 431, 432, -1, -1, 435, 436, 437, 438, 439, - 440, -1, 442, 443, 444, 445, 446, 447, 448, -1, - 450, 451, 452, 453, 454, 455, 456, -1, -1, 459, - -1, -1, 462, 463, 464, 465, 466, 467, 468, 469, - 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, - 480, 481, 482, 483, -1, -1, -1, -1, -1, -1, - 490, 491, -1, -1, -1, -1, -1, 497, -1, 499, - -1, -1, -1, -1, 504, -1, 506, 507, 3, 4, - 5, 6, 7, 8, 9, 10, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 21, 22, 23, 24, - 25, 26, 27, 28, -1, 30, 31, 32, -1, -1, - -1, -1, 37, -1, -1, 40, 41, -1, 43, 44, - 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, - -1, 56, 57, 58, 59, 60, 61, 62, 63, 64, - 65, 66, 67, 68, -1, 70, 71, 72, 73, 74, - -1, 76, -1, 78, 79, 80, 81, 82, 83, 84, - 85, 86, 87, -1, 89, 90, 91, 92, 93, 94, - -1, 96, 97, 98, 99, 100, 101, 102, 103, 104, - 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, - 115, 116, 117, 118, -1, 120, 121, 122, 123, 124, - 125, -1, 127, 128, 129, 130, 131, -1, -1, 134, - 135, 136, 137, 138, -1, 140, 141, 142, -1, 144, - 145, 146, -1, 148, 149, 150, 151, 152, 153, 154, - 155, 156, 157, 158, 159, 160, -1, 162, 163, 164, - 165, -1, 167, -1, 169, 170, -1, 172, 173, 174, - 175, 176, 177, -1, 179, -1, 181, 182, 183, -1, - 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, - 195, 196, -1, 198, 199, 200, 201, 202, 203, -1, - 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, - -1, 216, -1, 218, 219, 220, 221, 222, 223, 224, - 225, 226, 227, 228, -1, -1, 231, 232, 233, 234, - -1, 236, 237, 238, 239, 240, 241, 242, 243, 244, - 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, - 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, - 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, - 275, 276, 277, 278, 279, 280, 281, 282, 283, -1, - 285, 286, -1, -1, 289, 290, 291, -1, -1, 294, - 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, - 305, 306, 307, 308, 309, -1, 311, 312, 313, 314, - 315, 316, 317, 318, 319, -1, 321, 322, 323, 324, - 325, 326, -1, 328, 329, 330, 331, 332, 333, 334, - 335, -1, 337, 338, 339, 340, 341, 342, 343, 344, - 345, 346, 347, 348, 349, -1, 351, 352, 353, 354, - 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, - 365, 366, 367, 368, -1, 370, 371, 372, 373, 374, - 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, - 385, -1, 387, 388, 389, 390, 391, 392, 393, 394, - 395, 396, 397, 398, 399, 400, 401, 402, -1, 404, - 405, -1, 407, 408, 409, 410, 411, 412, 413, -1, - 415, 416, -1, -1, 419, 420, 421, 422, 423, 424, - 425, 426, 427, 428, 429, 430, 431, 432, -1, -1, - 435, 436, 437, 438, 439, 440, -1, 442, 443, 444, - 445, 446, 447, 448, -1, 450, 451, 452, 453, 454, - 455, 456, -1, -1, 459, -1, -1, 462, 463, 464, + 475, 476, 477, 478, 479, 480, 481, 482, 483, 507, + 0, 508, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 94, 95, 96, + 97, 98, 99, 100, 101, 690, 102, 103, 104, 0, + 0, 0, 0, 0, 0, 0, 105, 106, 0, 107, + 108, 109, 0, 111, 112, 113, 114, 115, 0, 117, + 118, 0, 119, 120, 121, 122, 123, 124, 0, 0, + 125, 126, 127, 128, 129, 0, 130, 131, 132, 133, + 134, 0, 0, 0, 136, 137, 138, 139, 140, 141, + 0, 143, 144, 145, 0, 146, 147, 148, 149, 150, + 151, 0, 0, 153, 154, 155, 0, 0, 0, 0, + 0, 0, 0, 161, 162, 163, 164, 165, 166, 167, + 168, 169, 170, 0, 171, 0, 172, 173, 174, 175, + 176, 177, 0, 178, 179, 180, 181, 182, 0, 0, + 183, 184, 185, 186, 187, 0, 188, 189, 190, 0, + 191, 192, 193, 0, 194, 195, 196, 197, 198, 199, + 200, 201, 202, 203, 204, 0, 205, 0, 206, 207, + 208, 209, 0, 210, 0, 211, 0, 0, 0, 214, + 215, 510, 0, 218, 0, 219, 0, 220, 221, 222, + 0, 223, 224, 225, 226, 227, 228, 229, 0, 231, + 232, 233, 234, 0, 235, 236, 237, 238, 239, 240, + 0, 241, 0, 243, 244, 245, 246, 247, 248, 249, + 250, 0, 251, 0, 252, 0, 0, 255, 0, 257, + 258, 259, 260, 261, 262, 0, 0, 263, 0, 265, + 0, 0, 267, 268, 269, 0, 0, 270, 271, 272, + 273, 274, 511, 276, 277, 278, 279, 280, 281, 282, + 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, + 293, 294, 0, 296, 297, 298, 299, 300, 0, 301, + 302, 0, 304, 0, 305, 306, 307, 308, 309, 310, + 0, 311, 312, 0, 0, 313, 314, 315, 0, 0, + 316, 317, 0, 319, 0, 321, 322, 323, 324, 325, + 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, + 335, 336, 337, 338, 339, 340, 0, 341, 342, 343, + 344, 345, 346, 0, 347, 348, 349, 350, 351, 352, + 353, 354, 0, 355, 356, 357, 358, 359, 360, 361, + 362, 363, 364, 365, 366, 367, 0, 368, 369, 0, + 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, + 381, 382, 383, 384, 385, 0, 386, 387, 388, 389, + 390, 0, 392, 393, 394, 395, 396, 0, 398, 399, + 400, 401, 0, 402, 403, 404, 405, 406, 407, 408, + 409, 410, 411, 412, 413, 513, 415, 416, 417, 0, + 418, 419, 0, 420, 0, 422, 423, 424, 425, 426, + 0, 427, 428, 0, 0, 429, 430, 431, 432, 433, + 0, 434, 435, 436, 437, 438, 439, 440, 441, 0, + 0, 442, 443, 444, 445, 446, 0, 0, 448, 449, + 450, 451, 452, 453, 454, 0, 455, 0, 457, 458, + 459, 460, 461, 0, 0, 462, 0, 0, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, - 475, 476, 477, 478, 479, 480, 481, 482, 483, -1, - -1, -1, -1, -1, -1, 490, 491, -1, -1, -1, - -1, -1, 497, -1, 499, -1, -1, -1, -1, 504, - -1, 506, 507, 3, 4, 5, 6, 7, 8, 9, - 10, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 21, 22, 23, 24, 25, 26, 27, 28, -1, - 30, 31, 32, -1, -1, -1, -1, 37, -1, -1, - 40, 41, -1, 43, 44, 45, 46, 47, 48, 49, - 50, 51, 52, 53, 54, -1, 56, 57, 58, 59, - 60, 61, 62, 63, 64, 65, 66, 67, 68, -1, - 70, 71, 72, 73, 74, -1, 76, -1, 78, 79, - 80, 81, 82, 83, 84, 85, 86, 87, -1, 89, - 90, 91, 92, 93, 94, -1, 96, 97, 98, 99, - 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, - 110, 111, 112, 113, 114, 115, 116, 117, 118, -1, - 120, 121, 122, 123, 124, 125, -1, 127, 128, 129, - 130, 131, -1, -1, 134, 135, 136, 137, 138, -1, - 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, - 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, - 160, -1, 162, 163, 164, 165, -1, 167, -1, 169, - 170, -1, 172, 173, 174, 175, 176, 177, -1, 179, - -1, 181, 182, 183, -1, 185, 186, 187, 188, 189, - 190, 191, 192, 193, 194, 195, 196, -1, 198, 199, - 200, 201, 202, 203, -1, 205, 206, 207, 208, 209, - 210, 211, 212, 213, 214, -1, 216, -1, 218, 219, - 220, 221, 222, 223, 224, 225, 226, 227, 228, -1, - -1, 231, 232, 233, 234, -1, 236, 237, 238, 239, - 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, - 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, - 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, - 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, - 280, 281, 282, 283, -1, 285, 286, -1, -1, 289, - 290, 291, -1, -1, 294, 295, 296, 297, 298, 299, - 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, - -1, 311, 312, 313, 314, 315, 316, 317, 318, 319, - -1, 321, 322, 323, 324, 325, 326, -1, 328, 329, - 330, 331, 332, 333, 334, 335, -1, 337, 338, 339, - 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, - -1, 351, 352, 353, 354, 355, 356, 357, 358, 359, - 360, 361, 362, 363, 364, 365, 366, 367, 368, -1, - 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, - 380, 381, 382, 383, 384, 385, -1, 387, 388, 389, - 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, - 400, 401, 402, -1, 404, 405, -1, 407, 408, 409, - 410, 411, 412, 413, -1, 415, 416, -1, -1, 419, - 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, - 430, 431, 432, -1, -1, 435, 436, 437, 438, 439, - 440, -1, 442, 443, 444, 445, 446, 447, 448, -1, - 450, 451, 452, 453, 454, 455, 456, -1, -1, 459, - -1, -1, 462, 463, 464, 465, 466, 467, 468, 469, - 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, - 480, 481, 482, 483, -1, -1, -1, -1, -1, -1, - 490, 491, -1, -1, -1, -1, -1, 497, -1, 499, - -1, -1, -1, -1, 504, -1, 506, 507, 3, 4, - 5, 6, 7, 8, 9, 10, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 21, 22, 23, 24, - 25, 26, 27, 28, -1, 30, 31, 32, -1, -1, - -1, -1, 37, -1, -1, 40, 41, -1, 43, 44, - 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, - -1, 56, 57, 58, 59, 60, 61, 62, 63, 64, - 65, 66, 67, 68, -1, 70, 71, 72, 73, 74, - -1, 76, -1, 78, 79, 80, 81, 82, 83, 84, - 85, 86, 87, -1, 89, 90, 91, 92, 93, 94, - -1, 96, 97, 98, 99, 100, 101, 102, 103, 104, - 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, - 115, 116, 117, 118, -1, 120, 121, 122, 123, 124, - 125, -1, 127, 128, 129, 130, 131, -1, -1, 134, - 135, 136, 137, 138, -1, 140, 141, 142, -1, 144, - 145, 146, -1, 148, 149, 150, 151, 152, 153, 154, - 155, 156, 157, 158, 159, 160, -1, 162, 163, 164, - 165, -1, 167, -1, 169, 170, -1, 172, 173, 174, - 175, 176, 177, -1, 179, -1, 181, 182, 183, -1, - 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, - 195, 196, -1, 198, 199, 200, 201, 202, 203, -1, - 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, - -1, 216, -1, 218, 219, 220, 221, 222, 223, 224, - 225, 226, 227, 228, -1, -1, 231, 232, 233, 234, - -1, 236, 237, 238, 239, 240, 241, 242, 243, 244, - 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, - 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, - 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, - 275, 276, 277, 278, 279, 280, 281, 282, 283, -1, - 285, 286, -1, -1, 289, 290, 291, -1, -1, 294, - 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, - 305, 306, 307, 308, 309, -1, 311, 312, 313, 314, - 315, 316, 317, 318, 319, -1, 321, 322, 323, 324, - 325, 326, -1, 328, 329, 330, 331, 332, 333, 334, - 335, -1, 337, 338, 339, 340, 341, 342, 343, 344, - 345, 346, 347, 348, 349, -1, 351, 352, 353, 354, - 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, - 365, 366, 367, 368, -1, 370, 371, 372, 373, 374, - 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, - 385, -1, 387, 388, 389, 390, 391, 392, 393, 394, - 395, 396, 397, 398, 399, 400, 401, 402, -1, 404, - 405, -1, 407, 408, 409, 410, 411, 412, 413, -1, - 415, 416, -1, -1, 419, 420, 421, 422, 423, 424, - 425, 426, 427, 428, 429, 430, 431, 432, -1, -1, - 435, 436, 437, 438, 439, 440, -1, 442, 443, 444, - 445, 446, 447, 448, -1, 450, 451, 452, 453, 454, - 455, 456, -1, -1, 459, -1, -1, 462, 463, 464, - 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, - 475, 476, 477, 478, 479, 480, 481, 482, 483, -1, - -1, -1, -1, -1, -1, 490, 491, -1, -1, -1, - -1, -1, 497, -1, 499, -1, -1, -1, -1, 504, - -1, 506, 507, 3, 4, 5, 6, 7, 8, 9, - 10, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 21, 22, 23, 24, 25, 26, 27, 28, -1, - 30, 31, 32, -1, -1, -1, -1, 37, -1, -1, - 40, 41, -1, 43, 44, 45, 46, 47, 48, 49, - 50, 51, 52, 53, 54, -1, 56, 57, 58, 59, - 60, 61, 62, 63, 64, 65, 66, 67, 68, -1, - 70, 71, 72, 73, 74, -1, 76, -1, 78, 79, - 80, 81, 82, 83, 84, 85, 86, 87, -1, 89, - 90, 91, 92, 93, 94, -1, 96, 97, 98, 99, - 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, - 110, 111, 112, 113, 114, 115, 116, 117, 118, -1, - 120, 121, 122, 123, 124, 125, -1, 127, 128, 129, - 130, 131, -1, -1, 134, 135, 136, 137, 138, -1, - 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, - 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, - 160, -1, 162, 163, 164, 165, -1, 167, -1, 169, - 170, -1, 172, 173, 174, 175, 176, 177, -1, 179, - -1, 181, 182, 183, -1, 185, 186, 187, 188, 189, - 190, 191, 192, 193, 194, 195, 196, -1, 198, 199, - 200, 201, 202, 203, -1, 205, 206, 207, 208, 209, - 210, 211, 212, 213, 214, -1, 216, -1, 218, 219, - 220, 221, 222, 223, 224, 225, 226, 227, 228, -1, - -1, 231, 232, 233, 234, -1, 236, 237, 238, 239, - 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, - 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, - 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, - 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, - 280, 281, 282, 283, -1, 285, 286, -1, -1, 289, - 290, 291, -1, -1, 294, 295, 296, 297, 298, 299, - 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, - -1, 311, 312, 313, 314, 315, 316, 317, 318, 319, - -1, 321, 322, 323, 324, 325, 326, -1, 328, 329, - 330, 331, 332, 333, 334, 335, -1, 337, 338, 339, - 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, - -1, 351, 352, 353, 354, 355, 356, 357, 358, 359, - 360, 361, 362, 363, 364, 365, 366, 367, 368, -1, - 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, - 380, 381, 382, 383, 384, 385, -1, 387, 388, 389, - 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, - 400, 401, 402, -1, 404, 405, -1, 407, 408, 409, - 410, 411, 412, 413, -1, 415, 416, -1, -1, 419, - 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, - 430, 431, 432, -1, -1, 435, 436, 437, 438, 439, - 440, -1, 442, 443, 444, 445, 446, 447, 448, -1, - 450, 451, 452, 453, 454, 455, 456, -1, -1, 459, - -1, -1, 462, 463, 464, 465, 466, 467, 468, 469, - 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, - 480, 481, 482, 483, -1, -1, -1, -1, -1, -1, - 490, 491, -1, -1, -1, -1, -1, 497, -1, 499, - -1, -1, -1, -1, 504, -1, 506, 507, 3, 4, - 5, 6, 7, 8, 9, 10, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 21, 22, 23, 24, - 25, 26, 27, 28, -1, 30, 31, 32, -1, -1, - -1, -1, 37, -1, -1, 40, 41, -1, 43, 44, - 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, - -1, 56, 57, 58, 59, 60, 61, 62, 63, 64, - 65, 66, 67, 68, -1, 70, 71, 72, 73, 74, - -1, 76, -1, 78, 79, 80, 81, 82, 83, 84, - 85, 86, 87, -1, 89, 90, 91, 92, 93, 94, - -1, 96, 97, 98, 99, 100, 101, 102, 103, 104, - 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, - 115, 116, 117, 118, -1, 120, 121, 122, 123, 124, - 125, -1, 127, 128, 129, 130, 131, -1, -1, 134, - 135, 136, 137, 138, -1, 140, 141, 142, -1, 144, - 145, 146, -1, 148, 149, 150, 151, 152, 153, 154, - 155, 156, 157, 158, 159, 160, -1, 162, 163, 164, - 165, -1, 167, -1, 169, 170, -1, 172, 173, 174, - 175, 176, 177, -1, 179, -1, 181, 182, 183, -1, - 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, - 195, 196, -1, 198, 199, 200, 201, 202, 203, -1, - 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, - -1, 216, -1, 218, 219, 220, 221, 222, 223, 224, - 225, 226, 227, 228, -1, -1, 231, 232, 233, 234, - -1, 236, 237, 238, 239, 240, 241, 242, 243, 244, - 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, - 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, - 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, - 275, 276, 277, 278, 279, 280, 281, 282, 283, -1, - 285, 286, -1, -1, 289, 290, 291, -1, -1, 294, - 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, - 305, 306, 307, 308, 309, -1, 311, 312, 313, 314, - 315, 316, 317, 318, 319, -1, 321, 322, 323, 324, - 325, 326, -1, 328, 329, 330, 331, 332, 333, 334, - 335, -1, 337, 338, 339, 340, 341, 342, 343, 344, - 345, 346, 347, 348, 349, -1, 351, 352, 353, 354, - 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, - 365, 366, 367, 368, -1, 370, 371, 372, 373, 374, - 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, - 385, -1, 387, 388, 389, 390, 391, 392, 393, 394, - 395, 396, 397, 398, 399, 400, 401, 402, -1, 404, - 405, -1, 407, 408, 409, 410, 411, 412, 413, -1, - 415, 416, -1, -1, 419, 420, 421, 422, 423, 424, - 425, 426, 427, 428, 429, 430, 431, 432, -1, -1, - 435, 436, 437, 438, 439, 440, -1, 442, 443, 444, - 445, 446, 447, 448, -1, 450, 451, 452, 453, 454, - 455, 456, -1, -1, 459, -1, -1, 462, 463, 464, + 475, 476, 477, 478, 479, 480, 481, 482, 483, 507, + 0, 508, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 94, 95, 96, + 97, 98, 99, 100, 101, 0, 102, 103, 104, 0, + 0, 0, 0, 0, 0, 0, 105, 106, 0, 107, + 108, 109, 0, 111, 112, 113, 114, 115, 0, 117, + 118, 0, 119, 120, 121, 122, 123, 124, 0, 0, + 125, 126, 127, 128, 129, 0, 130, 131, 132, 133, + 134, 0, 0, 0, 136, 137, 138, 139, 140, 141, + 0, 143, 144, 145, 0, 146, 147, 148, 149, 150, + 151, 0, 0, 153, 154, 155, 0, 0, 0, 0, + 0, 0, 0, 161, 162, 163, 164, 165, 166, 167, + 168, 169, 170, 0, 171, 0, 172, 173, 174, 175, + 176, 177, 0, 178, 179, 180, 181, 182, 0, 0, + 183, 184, 185, 186, 187, 0, 188, 189, 190, 0, + 191, 192, 193, 0, 194, 195, 196, 197, 198, 199, + 200, 201, 202, 203, 204, 0, 205, 0, 206, 207, + 208, 209, 0, 210, 0, 211, 0, 0, 0, 214, + 215, 510, 0, 1807, 0, 219, 0, 220, 221, 222, + 0, 223, 224, 225, 226, 227, 228, 229, 0, 231, + 232, 233, 234, 0, 235, 236, 237, 238, 239, 240, + 0, 241, 0, 243, 244, 245, 246, 247, 248, 249, + 250, 0, 251, 0, 252, 0, 0, 255, 0, 257, + 258, 259, 260, 261, 262, 0, 0, 263, 0, 265, + 0, 0, 267, 268, 1808, 0, 0, 270, 271, 272, + 273, 274, 511, 276, 277, 278, 279, 280, 281, 282, + 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, + 293, 294, 0, 296, 297, 298, 299, 300, 0, 301, + 302, 0, 304, 0, 305, 306, 307, 308, 309, 310, + 0, 311, 312, 0, 0, 313, 314, 315, 0, 0, + 316, 317, 0, 319, 0, 321, 322, 323, 324, 325, + 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, + 335, 336, 337, 338, 339, 340, 0, 341, 342, 343, + 344, 345, 346, 0, 347, 348, 349, 350, 351, 352, + 353, 354, 0, 355, 356, 357, 358, 359, 360, 361, + 362, 363, 364, 365, 366, 367, 0, 368, 369, 0, + 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, + 381, 382, 383, 384, 385, 0, 386, 387, 388, 389, + 390, 0, 392, 393, 394, 395, 396, 0, 398, 399, + 400, 401, 0, 402, 403, 404, 405, 406, 407, 408, + 409, 410, 411, 412, 413, 513, 415, 416, 417, 0, + 418, 419, 1809, 420, 0, 422, 1810, 424, 1811, 426, + 0, 427, 428, 0, 0, 429, 430, 431, 432, 433, + 0, 434, 435, 436, 437, 438, 439, 440, 441, 0, + 0, 442, 443, 1812, 445, 446, 0, 0, 448, 449, + 450, 451, 452, 453, 454, 0, 455, 0, 457, 458, + 459, 460, 461, 0, 0, 462, 0, 0, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, - 475, 476, 477, 478, 479, 480, 481, 482, 483, -1, - -1, -1, -1, -1, -1, 490, 491, -1, -1, -1, - -1, -1, 497, -1, 499, -1, -1, -1, -1, 504, - -1, 506, 507, 3, 4, 5, 6, 7, 8, 9, - 10, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 21, 22, 23, 24, 25, 26, 27, 28, -1, - 30, 31, 32, -1, -1, -1, -1, 37, -1, -1, - 40, 41, -1, 43, 44, 45, 46, 47, 48, 49, - 50, 51, 52, 53, 54, -1, 56, 57, 58, 59, - 60, 61, 62, 63, 64, 65, 66, 67, 68, -1, - 70, 71, 72, 73, 74, -1, 76, -1, 78, 79, - 80, 81, 82, 83, 84, 85, 86, 87, -1, 89, - 90, 91, 92, 93, 94, -1, 96, 97, 98, 99, - 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, - 110, 111, 112, 113, 114, 115, 116, 117, 118, -1, - 120, 121, 122, 123, 124, 125, -1, 127, 128, 129, - 130, 131, -1, -1, 134, 135, 136, 137, 138, -1, - 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, - 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, - 160, -1, 162, 163, 164, 165, -1, 167, -1, 169, - 170, -1, 172, 173, 174, 175, 176, 177, -1, 179, - -1, 181, 182, 183, -1, 185, 186, 187, 188, 189, - 190, 191, 192, 193, 194, 195, 196, -1, 198, 199, - 200, 201, 202, 203, -1, 205, 206, 207, 208, 209, - 210, 211, 212, 213, 214, -1, 216, -1, 218, -1, - -1, 221, 222, 223, 224, 225, 226, 227, 228, -1, - -1, 231, 232, 233, 234, -1, 236, 237, 238, 239, - 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, - 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, - 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, - 270, 271, -1, 273, 274, -1, 276, 277, 278, 279, - 280, 281, 282, 283, -1, 285, 286, -1, -1, 289, - 290, 291, -1, -1, 294, 295, 296, 297, 298, 299, - 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, - -1, 311, 312, 313, 314, 315, 316, 317, 318, 319, - -1, 321, 322, 323, 324, 325, 326, -1, 328, 329, - 330, 331, 332, 333, 334, 335, -1, 337, 338, 339, - 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, - -1, 351, 352, 353, 354, 355, 356, 357, 358, 359, - 360, 361, 362, 363, 364, 365, 366, 367, 368, -1, - 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, - 380, 381, 382, 383, 384, 385, -1, 387, 388, 389, - 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, - 400, 401, 402, -1, 404, 405, -1, 407, 408, 409, - 410, 411, 412, 413, -1, 415, 416, -1, -1, 419, - 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, - 430, 431, 432, -1, -1, 435, 436, 437, 438, 439, - 440, -1, 442, 443, 444, 445, 446, 447, 448, -1, - 450, 451, 452, 453, 454, 455, 456, -1, -1, 459, - -1, -1, 462, 463, 464, 465, 466, 467, 468, 469, - 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, - 480, 481, 482, 483, -1, -1, -1, -1, -1, -1, - 490, 491, -1, -1, -1, -1, -1, 497, -1, 499, - -1, -1, -1, -1, 504, -1, 506, 507, 3, 4, - 5, 6, 7, 8, 9, 10, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 21, 22, 23, 24, - 25, 26, 27, 28, -1, 30, 31, 32, -1, -1, - -1, -1, -1, -1, -1, 40, 41, -1, 43, 44, - 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, - -1, 56, 57, 58, 59, 60, 61, 62, 63, 64, - 65, 66, 67, 68, -1, 70, 71, 72, 73, 74, - -1, 76, -1, 78, 79, 80, 81, 82, 83, 84, - 85, 86, 87, -1, 89, 90, 91, 92, 93, 94, - -1, 96, 97, 98, 99, 100, 101, 102, 103, 104, - 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, - 115, 116, -1, 118, -1, 120, 121, 122, 123, 124, - 125, -1, 127, 128, 129, 130, 131, -1, -1, 134, - 135, 136, 137, 138, -1, 140, 141, 142, -1, 144, - 145, 146, -1, 148, 149, 150, 151, 152, 153, 154, - 155, 156, 157, 158, 159, 160, -1, 162, 163, 164, - 165, -1, 167, -1, 169, 170, -1, 172, 173, 174, - 175, 176, 177, -1, 179, -1, 181, 182, 183, -1, - 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, - 195, 196, -1, 198, 199, 200, 201, 202, 203, -1, - 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, - -1, 216, -1, 218, 219, 220, 221, 222, 223, 224, - 225, 226, 227, 228, -1, -1, 231, 232, 233, 234, - -1, 236, 237, 238, 239, 240, 241, 242, 243, 244, - 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, - 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, - 265, 266, 267, 268, 269, 270, 271, -1, 273, 274, - 275, 276, 277, 278, 279, 280, 281, 282, 283, -1, - 285, 286, -1, -1, 289, 290, 291, -1, -1, 294, - 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, - 305, 306, 307, 308, 309, -1, 311, 312, 313, 314, - 315, 316, 317, 318, 319, -1, 321, 322, 323, 324, - 325, 326, -1, 328, 329, 330, 331, 332, 333, 334, - 335, -1, 337, 338, 339, 340, 341, 342, 343, 344, - 345, 346, 347, 348, 349, -1, 351, 352, 353, 354, - 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, - 365, 366, 367, 368, -1, 370, 371, 372, 373, 374, - 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, - 385, -1, 387, 388, 389, 390, 391, 392, 393, 394, - 395, 396, 397, 398, 399, 400, 401, 402, -1, 404, - 405, -1, 407, 408, 409, 410, 411, 412, 413, -1, - 415, 416, -1, -1, 419, 420, 421, 422, 423, 424, - 425, 426, 427, 428, 429, 430, 431, 432, -1, -1, - 435, 436, 437, 438, 439, 440, -1, 442, 443, 444, - 445, 446, 447, 448, -1, 450, 451, 452, 453, 454, - 455, 456, -1, -1, 459, -1, -1, 462, 463, 464, + 475, 476, 477, 478, 479, 480, 481, 482, 483, 507, + 2776, 0, 0, 0, 0, 2777, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 94, 95, 96, + 97, 98, 99, 100, 101, 0, 102, 103, 104, 0, + 0, 0, 0, 0, 0, 0, 105, 106, 0, 107, + 108, 109, 0, 111, 112, 113, 114, 115, 0, 117, + 118, 0, 119, 120, 121, 122, 123, 124, 0, 0, + 125, 126, 127, 128, 129, 0, 130, 131, 132, 133, + 134, 0, 0, 0, 136, 137, 138, 139, 140, 141, + 0, 143, 144, 145, 0, 146, 147, 148, 149, 150, + 151, 0, 0, 153, 154, 155, 0, 0, 0, 0, + 0, 0, 0, 161, 162, 163, 164, 165, 166, 167, + 168, 169, 170, 0, 171, 0, 172, 173, 174, 175, + 176, 177, 0, 178, 179, 180, 181, 182, 0, 0, + 183, 184, 185, 186, 187, 0, 188, 189, 190, 0, + 191, 192, 193, 0, 194, 195, 196, 197, 198, 199, + 200, 201, 202, 203, 204, 0, 205, 0, 206, 207, + 208, 209, 0, 210, 0, 211, 0, 0, 0, 214, + 215, 510, 0, 218, 0, 219, 0, 220, 221, 222, + 0, 223, 224, 225, 226, 227, 228, 229, 0, 231, + 232, 233, 234, 0, 235, 236, 237, 238, 239, 240, + 0, 241, 0, 243, 244, 245, 246, 247, 248, 249, + 250, 0, 251, 0, 252, 0, 0, 255, 0, 257, + 258, 259, 260, 261, 262, 0, 0, 263, 0, 265, + 0, 0, 267, 268, 269, 0, 0, 270, 271, 272, + 273, 274, 511, 276, 277, 278, 279, 280, 281, 282, + 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, + 293, 294, 0, 296, 297, 298, 299, 300, 0, 301, + 302, 0, 304, 0, 305, 306, 307, 308, 309, 310, + 0, 311, 312, 0, 0, 313, 314, 315, 0, 0, + 316, 317, 0, 319, 0, 321, 322, 323, 324, 325, + 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, + 335, 336, 337, 338, 339, 340, 0, 341, 342, 343, + 344, 345, 346, 0, 347, 348, 349, 350, 351, 352, + 353, 354, 0, 355, 356, 357, 358, 359, 360, 361, + 362, 363, 364, 365, 366, 367, 0, 368, 369, 0, + 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, + 381, 382, 383, 384, 385, 0, 386, 387, 388, 389, + 390, 0, 392, 393, 394, 395, 396, 0, 398, 399, + 400, 401, 0, 402, 403, 404, 405, 406, 407, 408, + 409, 410, 411, 412, 413, 513, 415, 416, 417, 0, + 418, 419, 0, 420, 0, 422, 423, 424, 425, 426, + 0, 427, 428, 0, 0, 429, 430, 431, 432, 433, + 0, 434, 435, 436, 437, 438, 439, 440, 441, 0, + 0, 442, 443, 444, 445, 446, 0, 0, 448, 449, + 450, 451, 452, 453, 454, 0, 455, 0, 457, 458, + 459, 460, 461, 0, 0, 462, 0, 0, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, - 475, 476, 477, 478, 479, 480, 481, 482, -1, -1, - -1, -1, -1, -1, -1, 490, 491, -1, -1, 3, - 4, 5, 6, 7, 499, 9, 10, -1, -1, -1, - -1, 506, 507, -1, -1, -1, -1, 21, 22, 23, - 24, 25, 26, 27, 28, -1, 30, 31, 32, -1, - -1, -1, -1, -1, -1, -1, 40, 41, -1, 43, - 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, - 54, -1, 56, 57, 58, 59, 60, 61, 62, 63, - 64, 65, 66, 67, 68, -1, 70, 71, 72, 73, - 74, -1, 76, -1, 78, 79, 80, 81, 82, 83, - 84, 85, 86, 87, -1, 89, 90, 91, 92, 93, - 94, -1, 96, 97, 98, 99, 100, 101, 102, 103, - 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, - 114, 115, 116, -1, 118, -1, 120, 121, 122, 123, - 124, 125, -1, 127, 128, 129, 130, 131, -1, -1, - 134, 135, 136, 137, 138, -1, 140, 141, 142, -1, - 144, 145, 146, -1, 148, 149, 150, 151, 152, 153, - 154, 155, 156, 157, 158, 159, 160, -1, 162, 163, - 164, 165, -1, 167, -1, 169, 170, -1, 172, 173, - 174, 175, 176, 177, -1, 179, -1, 181, 182, 183, - -1, 185, 186, 187, 188, 189, 190, 191, 192, 193, - 194, 195, 196, -1, 198, 199, 200, 201, 202, 203, - -1, 205, 206, 207, 208, 209, 210, 211, 212, 213, - 214, -1, 216, -1, 218, 219, 220, 221, 222, 223, - 224, 225, 226, 227, 228, -1, -1, 231, 232, 233, - 234, -1, 236, 237, 238, 239, 240, 241, 242, 243, - 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, - 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, - 264, 265, 266, 267, 268, 269, 270, 271, -1, 273, - 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, - -1, 285, 286, -1, -1, 289, 290, 291, -1, -1, - 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, - 304, 305, 306, 307, 308, 309, -1, 311, 312, 313, - 314, 315, 316, 317, 318, 319, -1, 321, 322, 323, - 324, 325, 326, -1, 328, 329, 330, 331, 332, 333, - 334, 335, -1, 337, 338, 339, 340, 341, 342, 343, - 344, 345, 346, 347, 348, 349, -1, 351, 352, 353, - 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, - 364, 365, 366, 367, 368, -1, 370, 371, 372, 373, - 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, - 384, 385, -1, 387, 388, 389, 390, 391, 392, 393, - 394, 395, 396, 397, 398, 399, 400, 401, 402, -1, - 404, 405, -1, 407, 408, 409, 410, 411, 412, 413, - -1, 415, 416, -1, -1, 419, 420, 421, 422, 423, - 424, 425, 426, 427, 428, 429, 430, 431, 432, -1, - -1, 435, 436, 437, 438, 439, 440, -1, 442, 443, - 444, 445, 446, 447, 448, -1, 450, 451, 452, 453, - 454, 455, 456, -1, -1, 459, -1, -1, 462, 463, - 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, - 474, 475, 476, 477, 478, 479, 480, 481, 482, -1, - -1, -1, -1, -1, -1, -1, 490, 491, -1, -1, - -1, -1, -1, -1, -1, 499, -1, -1, -1, -1, - -1, -1, 506, 507, 3, 4, 5, 6, 7, 8, - 9, 10, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 21, 22, 23, 24, 25, 26, 27, 28, - -1, 30, 31, 32, -1, -1, -1, -1, -1, -1, - -1, 40, 41, -1, 43, 44, 45, 46, 47, 48, - 49, 50, 51, 52, 53, 54, -1, 56, 57, 58, - 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, - -1, 70, 71, 72, 73, 74, -1, 76, -1, 78, - 79, 80, 81, 82, 83, 84, 85, 86, 87, -1, - 89, 90, 91, 92, 93, 94, -1, 96, 97, 98, - 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, - 109, 110, 111, 112, 113, 114, 115, 116, -1, 118, - -1, 120, 121, 122, 123, 124, 125, -1, 127, 128, - 129, 130, 131, -1, -1, 134, 135, 136, 137, 138, - -1, 140, 141, 142, -1, 144, 145, 146, -1, 148, - 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, - 159, 160, -1, 162, 163, 164, 165, -1, 167, -1, - 169, 170, -1, 172, 173, 174, 175, 176, 177, -1, - 179, -1, 181, 182, 183, -1, 185, 186, 187, 188, - 189, 190, 191, 192, 193, 194, 195, 196, -1, 198, - 199, 200, 201, 202, 203, -1, 205, 206, 207, 208, - 209, 210, 211, 212, 213, 214, -1, 216, -1, 218, - -1, 220, 221, 222, 223, 224, 225, 226, 227, 228, - -1, -1, 231, 232, 233, 234, -1, 236, 237, 238, - 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, - 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, - 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, - 269, 270, 271, -1, 273, 274, 275, 276, 277, 278, - 279, 280, 281, 282, 283, -1, 285, 286, -1, -1, - 289, 290, 291, -1, -1, 294, 295, 296, 297, 298, - 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, - 309, -1, 311, 312, 313, 314, 315, 316, 317, 318, - 319, -1, 321, 322, 323, 324, 325, 326, -1, 328, - 329, 330, 331, 332, 333, 334, 335, -1, 337, 338, - 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, - 349, -1, 351, 352, 353, 354, 355, 356, 357, 358, - 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, - -1, 370, 371, 372, 373, 374, 375, 376, 377, 378, - 379, 380, 381, 382, 383, 384, 385, -1, 387, 388, - 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, - 399, 400, 401, 402, -1, 404, 405, -1, 407, 408, - 409, 410, 411, 412, 413, -1, 415, 416, -1, -1, - 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, - 429, 430, 431, 432, -1, -1, 435, 436, 437, 438, - 439, 440, -1, 442, 443, 444, 445, 446, 447, 448, - -1, 450, 451, 452, 453, 454, 455, 456, -1, -1, - 459, -1, -1, 462, 463, 464, 465, 466, 467, 468, - 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, - 479, 480, 481, 482, -1, -1, -1, -1, -1, -1, - -1, 490, 491, -1, -1, -1, -1, -1, -1, -1, - 499, -1, -1, -1, -1, -1, -1, 506, 507, 3, - 4, 5, 6, 7, 8, 9, 10, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 21, 22, 23, - 24, 25, 26, 27, 28, -1, 30, 31, 32, -1, - -1, -1, -1, 37, -1, -1, 40, 41, -1, 43, - 44, 45, 46, 47, 48, 49, -1, 51, 52, 53, - 54, -1, 56, 57, 58, 59, 60, 61, 62, 63, - 64, 65, 66, 67, 68, -1, 70, 71, 72, 73, - 74, -1, 76, -1, 78, 79, 80, 81, 82, 83, - 84, 85, 86, 87, -1, 89, 90, 91, 92, 93, - 94, -1, 96, 97, 98, 99, 100, 101, 102, 103, - 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, - 114, 115, 116, 117, 118, -1, 120, 121, 122, 123, - 124, 125, -1, 127, 128, 129, 130, 131, -1, -1, - 134, 135, 136, 137, 138, -1, 140, 141, 142, -1, - 144, -1, 146, -1, 148, 149, 150, 151, 152, 153, - 154, 155, 156, 157, 158, 159, 160, -1, 162, 163, - 164, 165, -1, 167, -1, 169, 170, -1, 172, 173, - 174, 175, -1, 177, -1, 179, -1, 181, 182, 183, - -1, 185, 186, 187, 188, 189, 190, 191, -1, 193, - 194, 195, 196, -1, 198, 199, 200, 201, 202, 203, - -1, 205, 206, 207, 208, 209, 210, 211, 212, 213, - 214, -1, 216, -1, 218, -1, -1, 221, 222, 223, - 224, 225, 226, 227, 228, -1, -1, 231, 232, 233, - -1, -1, 236, 237, 238, 239, 240, 241, 242, 243, - 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, - 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, - 264, 265, 266, 267, 268, 269, 270, 271, -1, 273, - 274, -1, 276, 277, 278, 279, 280, 281, 282, 283, - -1, 285, 286, -1, -1, 289, 290, 291, -1, -1, - 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, - 304, 305, 306, 307, 308, 309, -1, 311, 312, 313, - 314, 315, 316, 317, 318, 319, -1, 321, 322, 323, - 324, 325, 326, -1, 328, 329, 330, 331, 332, 333, - 334, 335, -1, 337, 338, 339, 340, 341, 342, 343, - 344, 345, 346, 347, 348, 349, -1, 351, 352, 353, - 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, - 364, 365, 366, 367, 368, -1, 370, 371, 372, 373, - 374, 375, 376, 377, 378, 379, 380, -1, 382, 383, - 384, 385, -1, 387, 388, 389, 390, 391, 392, 393, - 394, 395, 396, 397, 398, 399, 400, 401, 402, -1, - 404, 405, -1, 407, 408, 409, 410, 411, 412, 413, - -1, 415, 416, -1, -1, 419, 420, 421, 422, 423, - 424, 425, 426, 427, 428, 429, 430, 431, 432, -1, - -1, 435, 436, 437, 438, 439, 440, -1, 442, 443, - 444, 445, 446, 447, 448, -1, 450, 451, 452, 453, - 454, 455, 456, -1, -1, 459, -1, -1, 462, 463, - 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, - 474, 475, 476, 477, 478, 479, 480, 481, 482, -1, - -1, -1, -1, -1, -1, -1, 490, 491, 3, -1, - -1, -1, -1, 497, -1, 499, -1, -1, -1, -1, - 504, -1, 506, 507, -1, -1, 21, 22, 23, 24, - 25, 26, 27, 28, -1, 30, 31, 32, -1, -1, - -1, -1, -1, 38, -1, 40, 41, -1, 43, 44, - 45, -1, 47, 48, 49, 50, 51, -1, 53, 54, - -1, 56, 57, 58, 59, 60, 61, -1, -1, 64, - 65, 66, 67, 68, -1, 70, 71, 72, 73, 74, - -1, -1, -1, 78, 79, 80, 81, 82, 83, -1, - 85, 86, 87, -1, 89, 90, 91, 92, 93, 94, - -1, 96, 97, 98, 99, -1, -1, -1, -1, -1, - -1, -1, 107, 108, 109, 110, 111, 112, 113, 114, - 115, 116, -1, 118, -1, 120, 121, 122, 123, 124, - 125, -1, 127, 128, 129, 130, 131, -1, -1, 134, - 135, 136, 137, 138, -1, 140, 141, 142, -1, 144, - 145, 146, -1, 148, 149, 150, 151, 152, 153, 154, - 155, 156, 157, 158, -1, 160, -1, 162, 163, 164, - 165, -1, 167, -1, 169, -1, -1, 172, 173, 174, - 175, -1, 177, -1, 179, -1, 181, 182, 183, -1, - 185, 186, 187, 188, 189, 190, 191, -1, 193, 194, - 195, 196, -1, 198, 199, 200, 201, 202, 203, -1, - 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, - -1, 216, -1, 218, -1, -1, 221, 222, 223, 224, - 225, 226, 227, 228, -1, -1, 231, 232, 233, -1, - -1, 236, 237, 238, -1, -1, 241, 242, 243, 244, - 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, - 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, - 265, 266, 267, 268, 269, 270, 271, -1, 273, 274, - -1, 276, -1, 278, 279, 280, 281, 282, 283, -1, - 285, 286, -1, -1, 289, 290, 291, -1, -1, 294, - 295, -1, 297, -1, 299, 300, 301, 302, 303, 304, - 305, 306, 307, 308, 309, -1, 311, 312, 313, 314, - 315, 316, 317, 318, 319, -1, 321, 322, 323, 324, - 325, 326, -1, 328, 329, 330, 331, 332, 333, 334, - 335, -1, 337, 338, 339, 340, 341, 342, 343, 344, - 345, 346, 347, 348, 349, -1, 351, 352, 353, 354, - 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, - 365, 366, 367, 368, -1, 370, 371, 372, 373, 374, - -1, 376, 377, 378, 379, 380, -1, 382, 383, 384, - 385, -1, 387, 388, 389, 390, 391, 392, 393, 394, - 395, 396, 397, 398, 399, 400, 401, 402, -1, 404, - 405, -1, 407, 408, 409, 410, 411, 412, 413, -1, - 415, 416, -1, -1, 419, 420, 421, 422, 423, -1, - 425, 426, 427, 428, 429, 430, 431, 432, -1, -1, - 435, 436, 437, 438, 439, -1, -1, 442, 443, 444, - 445, 446, 447, 448, -1, 450, -1, 452, 453, 454, - 455, 456, -1, -1, 459, -1, -1, 462, 463, 464, + 475, 476, 477, 478, 479, 480, 481, 482, 483, 507, + 0, 508, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 94, 95, 96, + 97, 98, 99, 100, 101, 0, 102, 103, 104, 0, + 0, 0, 0, 0, 0, 0, 105, 106, 0, 107, + 108, 109, 0, 111, 112, 113, 114, 115, 0, 117, + 118, 0, 119, 120, 121, 122, 123, 124, 0, 0, + 125, 126, 127, 128, 129, 0, 130, 131, 132, 133, + 134, 0, 0, 0, 136, 137, 138, 139, 140, 141, + 0, 143, 144, 145, 0, 146, 147, 148, 149, 150, + 151, 0, 0, 153, 154, 155, 0, 0, 0, 0, + 0, 0, 0, 161, 162, 163, 164, 165, 166, 167, + 168, 169, 170, 0, 171, 0, 172, 173, 174, 175, + 176, 177, 0, 178, 179, 180, 181, 182, 0, 0, + 183, 184, 185, 186, 187, 0, 188, 189, 190, 0, + 191, 192, 193, 0, 194, 195, 196, 197, 198, 199, + 200, 201, 202, 203, 204, 0, 205, 0, 206, 207, + 208, 209, 0, 210, 0, 211, 0, 0, 0, 214, + 215, 510, 0, 218, 0, 219, 0, 220, 221, 222, + 0, 223, 224, 225, 226, 227, 228, 229, 0, 231, + 232, 233, 234, 0, 235, 236, 237, 238, 239, 240, + 0, 241, 0, 243, 244, 245, 246, 247, 248, 249, + 250, 0, 251, 0, 252, 0, 0, 255, 0, 257, + 258, 259, 260, 261, 262, 0, 0, 263, 0, 265, + 0, 0, 267, 268, 269, 0, 0, 270, 271, 272, + 273, 274, 511, 276, 277, 278, 279, 280, 281, 282, + 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, + 293, 294, 0, 296, 297, 298, 299, 300, 0, 301, + 302, 0, 304, 0, 305, 306, 307, 308, 309, 310, + 0, 311, 312, 0, 0, 313, 314, 315, 0, 0, + 316, 317, 0, 319, 0, 321, 322, 323, 324, 325, + 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, + 335, 336, 337, 338, 339, 340, 0, 341, 342, 343, + 344, 345, 346, 0, 347, 348, 349, 350, 351, 352, + 353, 354, 0, 355, 356, 357, 358, 359, 360, 361, + 362, 363, 364, 365, 366, 367, 0, 368, 369, 0, + 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, + 381, 382, 383, 384, 385, 0, 386, 387, 388, 389, + 390, 0, 392, 393, 394, 395, 396, 0, 398, 399, + 400, 401, 0, 402, 403, 404, 405, 406, 407, 408, + 409, 410, 411, 412, 413, 513, 415, 416, 417, 0, + 418, 419, 0, 420, 0, 422, 423, 424, 425, 426, + 0, 427, 428, 0, 0, 429, 430, 431, 432, 433, + 0, 434, 435, 436, 437, 438, 439, 440, 441, 0, + 0, 442, 443, 444, 445, 446, 0, 0, 448, 449, + 450, 451, 452, 453, 454, 0, 455, 0, 457, 458, + 459, 460, 461, 0, 0, 462, 0, 0, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, - 475, 476, 477, 478, 479, 480, 481, 482, 3, -1, - 5, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 500, 21, 22, 23, 24, - 25, 26, 27, 28, -1, 30, 31, 32, -1, -1, - -1, -1, -1, -1, -1, 40, 41, -1, 43, 44, - 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, - -1, 56, 57, 58, 59, 60, 61, -1, 63, 64, - 65, 66, 67, 68, -1, 70, 71, 72, 73, 74, - -1, 76, -1, 78, 79, 80, 81, 82, 83, 84, - 85, 86, 87, -1, 89, 90, 91, 92, 93, 94, - -1, 96, 97, 98, 99, 100, 101, 102, 103, 104, - 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, - 115, 116, -1, 118, -1, 120, 121, 122, 123, 124, - 125, -1, 127, 128, 129, 130, 131, -1, -1, 134, - 135, 136, 137, 138, -1, 140, 141, 142, -1, 144, - 145, 146, -1, 148, 149, 150, 151, 152, 153, 154, - 155, 156, 157, 158, -1, 160, -1, 162, 163, 164, - 165, -1, 167, -1, 169, 170, -1, 172, 173, 174, - 175, 176, 177, -1, 179, -1, 181, 182, 183, -1, - 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, - 195, 196, -1, 198, 199, 200, 201, 202, 203, -1, - 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, - -1, 216, -1, 218, 219, 220, 221, 222, 223, 224, - 225, 226, 227, 228, 229, -1, 231, 232, 233, 234, - -1, 236, 237, 238, 239, 240, 241, 242, 243, 244, - 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, - 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, - 265, 266, 267, 268, 269, 270, 271, -1, 273, 274, - 275, 276, -1, 278, 279, 280, 281, 282, 283, -1, - 285, 286, -1, 288, 289, 290, 291, -1, -1, 294, - 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, - 305, 306, 307, 308, 309, -1, 311, 312, 313, 314, - 315, 316, 317, 318, 319, -1, 321, 322, 323, 324, - 325, 326, -1, 328, 329, 330, 331, 332, 333, 334, - 335, -1, 337, 338, 339, 340, 341, 342, 343, 344, - 345, 346, 347, 348, 349, -1, 351, 352, 353, 354, - 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, - 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, - 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, - 385, -1, 387, 388, 389, 390, 391, 392, 393, 394, - 395, 396, 397, 398, 399, 400, 401, 402, -1, 404, - 405, 406, 407, 408, 409, 410, 411, 412, 413, -1, - 415, 416, -1, -1, 419, 420, 421, 422, 423, -1, - 425, 426, 427, 428, 429, 430, 431, 432, -1, -1, - 435, 436, 437, 438, 439, 440, -1, 442, 443, 444, - 445, 446, 447, 448, -1, 450, 451, 452, 453, 454, - 455, 456, -1, -1, 459, -1, 461, 462, 463, 464, + 475, 476, 477, 478, 479, 480, 481, 482, 483, 507, + 0, 583, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 94, 95, 96, + 97, 98, 99, 100, 101, 0, 102, 103, 104, 0, + 0, 0, 0, 0, 0, 0, 105, 106, 0, 107, + 108, 109, 0, 111, 112, 113, 114, 115, 0, 117, + 118, 0, 119, 120, 121, 122, 123, 124, 0, 0, + 125, 126, 127, 128, 129, 0, 130, 131, 132, 133, + 134, 0, 0, 0, 136, 137, 138, 139, 140, 141, + 0, 143, 144, 145, 0, 146, 147, 148, 149, 150, + 151, 0, 0, 153, 154, 155, 0, 0, 0, 0, + 0, 0, 0, 161, 162, 163, 164, 165, 166, 167, + 168, 169, 170, 0, 171, 0, 172, 173, 174, 175, + 176, 177, 0, 178, 179, 180, 181, 182, 0, 0, + 183, 184, 185, 186, 187, 0, 188, 189, 190, 0, + 191, 192, 193, 0, 194, 195, 196, 197, 198, 199, + 200, 201, 202, 203, 204, 0, 205, 0, 206, 207, + 208, 209, 0, 210, 0, 211, 0, 0, 0, 214, + 215, 510, 0, 218, 0, 219, 0, 220, 221, 222, + 0, 223, 224, 225, 226, 227, 228, 229, 0, 231, + 232, 233, 234, 0, 235, 236, 237, 238, 239, 240, + 0, 241, 0, 243, 244, 245, 246, 247, 248, 249, + 250, 0, 251, 0, 252, 0, 0, 255, 0, 257, + 258, 259, 260, 261, 262, 0, 0, 263, 0, 265, + 0, 0, 267, 268, 269, 0, 0, 270, 271, 272, + 273, 274, 511, 276, 277, 278, 279, 280, 281, 282, + 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, + 293, 294, 0, 296, 297, 298, 299, 300, 0, 301, + 302, 0, 304, 0, 305, 306, 307, 308, 309, 310, + 0, 311, 312, 0, 0, 313, 314, 315, 0, 0, + 316, 317, 0, 319, 0, 321, 322, 323, 324, 325, + 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, + 335, 336, 337, 338, 339, 340, 0, 341, 342, 343, + 344, 345, 346, 0, 347, 348, 349, 350, 351, 352, + 353, 354, 0, 355, 356, 357, 358, 359, 360, 361, + 362, 363, 364, 365, 366, 367, 0, 368, 369, 0, + 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, + 381, 382, 383, 384, 385, 0, 386, 387, 388, 389, + 390, 0, 392, 393, 394, 395, 396, 0, 398, 399, + 400, 401, 0, 402, 403, 404, 405, 406, 407, 408, + 409, 410, 411, 412, 413, 513, 415, 416, 417, 0, + 418, 419, 0, 420, 0, 422, 423, 424, 425, 426, + 0, 427, 428, 0, 0, 429, 430, 431, 432, 433, + 0, 434, 435, 436, 437, 438, 439, 440, 441, 0, + 0, 442, 443, 444, 445, 446, 0, 0, 448, 449, + 450, 451, 452, 453, 454, 0, 455, 0, 457, 458, + 459, 460, 461, 0, 0, 462, 0, 0, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, - 475, 476, 477, 478, 479, 480, 481, 482, -1, -1, - 485, 3, 4, 5, -1, -1, -1, 9, -1, -1, - -1, -1, -1, -1, 499, -1, -1, -1, -1, 21, - 22, 23, 24, 25, 26, 27, 28, -1, 30, 31, - 32, -1, -1, -1, -1, -1, -1, -1, 40, 41, - -1, 43, 44, 45, 46, 47, 48, 49, 50, 51, - 52, 53, 54, -1, 56, 57, 58, 59, 60, 61, - -1, -1, 64, 65, 66, 67, 68, -1, 70, 71, - 72, 73, 74, -1, 76, -1, 78, 79, 80, 81, - 82, 83, 84, 85, 86, 87, -1, 89, 90, 91, - 92, 93, 94, -1, 96, 97, 98, 99, 100, 101, - 102, 103, -1, -1, 106, 107, 108, 109, 110, 111, - 112, 113, 114, 115, 116, -1, 118, -1, 120, 121, - 122, 123, 124, 125, -1, 127, 128, 129, 130, 131, - -1, -1, 134, 135, 136, 137, 138, -1, 140, 141, - 142, -1, 144, 145, 146, -1, 148, 149, 150, 151, - 152, 153, 154, 155, 156, 157, 158, 159, 160, -1, - 162, 163, 164, 165, -1, 167, -1, 169, 170, -1, - 172, 173, 174, 175, 176, 177, -1, 179, -1, 181, - 182, 183, -1, 185, 186, 187, 188, 189, 190, 191, - 192, 193, 194, 195, 196, -1, 198, 199, 200, 201, - 202, 203, -1, 205, 206, 207, 208, 209, 210, 211, - 212, 213, 214, -1, 216, -1, 218, 219, 220, 221, - 222, 223, 224, 225, 226, 227, 228, -1, -1, 231, - 232, 233, 234, -1, 236, 237, 238, -1, -1, 241, - 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, - 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, - 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, - -1, 273, 274, 275, 276, -1, 278, 279, 280, 281, - 282, 283, -1, 285, 286, 287, -1, 289, 290, 291, - -1, -1, 294, 295, 296, 297, 298, 299, 300, 301, - 302, 303, 304, 305, 306, 307, 308, 309, -1, 311, - 312, 313, 314, 315, 316, 317, 318, 319, -1, 321, - 322, 323, 324, 325, 326, -1, 328, 329, 330, 331, - 332, 333, 334, 335, -1, 337, 338, 339, 340, 341, - 342, 343, 344, 345, 346, 347, 348, 349, -1, 351, - 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, - 362, 363, 364, 365, 366, 367, 368, -1, 370, 371, - 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, - 382, 383, 384, 385, -1, 387, 388, 389, 390, 391, - 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, - 402, -1, 404, 405, -1, 407, 408, 409, 410, 411, - 412, 413, -1, 415, 416, -1, -1, 419, 420, 421, - 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, - 432, -1, -1, 435, 436, 437, 438, 439, 440, -1, - 442, 443, 444, 445, 446, 447, 448, -1, 450, 451, - 452, 453, 454, 455, 456, -1, -1, 459, -1, -1, - 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, - 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, - 482, 3, -1, 5, -1, -1, -1, -1, 490, 491, - 492, -1, -1, -1, -1, -1, -1, 499, -1, 21, - 22, 23, 24, 25, 26, 27, 28, -1, 30, 31, - 32, -1, -1, -1, -1, -1, -1, -1, 40, 41, - -1, 43, 44, 45, 46, 47, 48, 49, 50, 51, - 52, 53, 54, -1, 56, 57, 58, 59, 60, 61, - -1, 63, 64, 65, 66, 67, 68, -1, 70, 71, - 72, 73, 74, -1, 76, -1, 78, 79, 80, 81, - 82, 83, 84, 85, 86, 87, -1, 89, 90, 91, - 92, 93, 94, -1, 96, 97, 98, 99, 100, 101, - 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, - 112, 113, 114, 115, 116, -1, 118, -1, 120, 121, - 122, 123, 124, 125, -1, 127, 128, 129, 130, 131, - -1, -1, 134, 135, 136, 137, 138, -1, 140, 141, - 142, -1, 144, 145, 146, -1, 148, 149, 150, 151, - 152, 153, 154, 155, 156, 157, 158, -1, 160, -1, - 162, 163, 164, 165, -1, 167, -1, 169, 170, -1, - 172, 173, 174, 175, 176, 177, -1, 179, -1, 181, - 182, 183, -1, 185, 186, 187, 188, 189, 190, 191, - 192, 193, 194, 195, 196, -1, 198, 199, 200, 201, - 202, 203, -1, 205, 206, 207, 208, 209, 210, 211, - 212, 213, 214, -1, 216, -1, 218, 219, 220, 221, - 222, 223, 224, 225, 226, 227, 228, 229, -1, 231, - 232, 233, 234, -1, 236, 237, 238, 239, 240, 241, - 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, - 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, - 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, - -1, 273, 274, 275, 276, -1, 278, 279, 280, 281, - 282, 283, -1, 285, 286, -1, 288, 289, 290, 291, - -1, -1, 294, 295, 296, 297, 298, 299, 300, 301, - 302, 303, 304, 305, 306, 307, 308, 309, -1, 311, - 312, 313, 314, 315, 316, 317, 318, 319, -1, 321, - 322, 323, 324, 325, 326, -1, 328, 329, 330, 331, - 332, 333, 334, 335, -1, 337, 338, 339, 340, 341, - 342, 343, 344, 345, 346, 347, 348, 349, -1, 351, - 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, - 362, 363, 364, 365, 366, 367, 368, -1, 370, 371, - 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, - 382, 383, 384, 385, -1, 387, 388, 389, 390, 391, - 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, - 402, -1, 404, 405, -1, 407, 408, 409, 410, 411, - 412, 413, -1, 415, 416, -1, -1, 419, 420, 421, - 422, 423, -1, 425, 426, 427, 428, 429, 430, 431, - 432, -1, -1, 435, 436, 437, 438, 439, 440, -1, - 442, 443, 444, 445, 446, 447, 448, -1, 450, 451, - 452, 453, 454, 455, 456, -1, -1, 459, -1, -1, - 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, - 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, - 482, 3, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 499, -1, 21, - 22, 23, 24, 25, 26, 27, 28, -1, 30, 31, - 32, 33, 34, -1, -1, -1, -1, -1, 40, 41, - -1, 43, 44, 45, 46, 47, 48, 49, 50, 51, - 52, 53, 54, -1, 56, 57, 58, 59, 60, 61, - -1, -1, 64, 65, 66, 67, 68, -1, 70, 71, - 72, 73, 74, -1, 76, -1, 78, 79, 80, 81, - 82, 83, 84, 85, 86, 87, -1, 89, 90, 91, - 92, 93, 94, -1, 96, 97, 98, 99, 100, 101, - 102, 103, -1, -1, 106, 107, 108, 109, 110, 111, - 112, 113, 114, 115, 116, -1, 118, -1, 120, 121, - 122, 123, 124, 125, -1, 127, 128, 129, 130, 131, - -1, -1, 134, 135, 136, 137, 138, -1, 140, 141, - 142, -1, 144, 145, 146, -1, 148, 149, 150, 151, - 152, 153, 154, 155, 156, 157, 158, -1, 160, -1, - 162, 163, 164, 165, -1, 167, -1, 169, 170, -1, - 172, 173, 174, 175, 176, 177, -1, 179, -1, 181, - 182, 183, -1, 185, 186, 187, 188, 189, 190, 191, - 192, 193, 194, 195, 196, -1, 198, 199, 200, 201, - 202, 203, -1, 205, 206, 207, 208, 209, 210, 211, - 212, 213, 214, -1, 216, -1, 218, 219, 220, 221, - 222, 223, 224, 225, 226, 227, 228, -1, -1, 231, - 232, 233, 234, -1, 236, 237, 238, -1, -1, 241, - 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, - 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, - 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, - -1, 273, 274, 275, 276, -1, 278, 279, 280, 281, - 282, 283, -1, 285, 286, -1, -1, 289, 290, 291, - -1, -1, 294, 295, 296, 297, 298, 299, 300, 301, - 302, 303, 304, 305, 306, 307, 308, 309, -1, 311, - 312, 313, 314, 315, 316, 317, 318, 319, -1, 321, - 322, 323, 324, 325, 326, -1, 328, 329, 330, 331, - 332, 333, 334, 335, -1, 337, 338, 339, 340, 341, - 342, 343, 344, 345, 346, 347, 348, 349, -1, 351, - 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, - 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, - 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, - 382, 383, 384, 385, -1, 387, 388, 389, 390, 391, - 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, - 402, -1, 404, 405, 406, 407, 408, 409, 410, 411, - 412, 413, -1, 415, 416, -1, -1, 419, 420, 421, - 422, 423, -1, 425, 426, 427, 428, 429, 430, 431, - 432, -1, -1, 435, 436, 437, 438, 439, 440, -1, - 442, 443, 444, 445, 446, 447, 448, -1, 450, 451, - 452, 453, 454, 455, 456, -1, -1, 459, -1, 461, - 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, - 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, - 482, 3, -1, 485, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 499, -1, 21, - 22, 23, 24, 25, 26, 27, 28, -1, 30, 31, - 32, -1, -1, -1, -1, -1, -1, -1, 40, 41, - -1, 43, 44, 45, 46, 47, 48, 49, 50, 51, - 52, 53, 54, -1, 56, 57, 58, 59, 60, 61, - -1, 63, 64, 65, 66, 67, 68, -1, 70, 71, - 72, 73, 74, -1, 76, -1, 78, 79, 80, 81, - 82, 83, 84, 85, 86, 87, -1, 89, 90, 91, - 92, 93, 94, -1, 96, 97, 98, 99, 100, 101, - 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, - 112, 113, 114, 115, 116, -1, 118, -1, 120, 121, - 122, 123, 124, 125, -1, 127, 128, 129, 130, 131, - -1, -1, 134, 135, 136, 137, 138, -1, 140, 141, - 142, -1, 144, 145, 146, -1, 148, 149, 150, 151, - 152, 153, 154, 155, 156, 157, 158, -1, 160, -1, - 162, 163, 164, 165, -1, 167, -1, 169, 170, -1, - 172, 173, 174, 175, 176, 177, -1, 179, -1, 181, - 182, 183, -1, 185, 186, 187, 188, 189, 190, 191, - 192, 193, 194, 195, 196, -1, 198, 199, 200, 201, - 202, 203, -1, 205, 206, 207, 208, 209, 210, 211, - 212, 213, 214, -1, 216, -1, 218, 219, 220, 221, - 222, 223, 224, 225, 226, 227, 228, -1, -1, 231, - 232, 233, 234, -1, 236, 237, 238, 239, 240, 241, - 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, - 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, - 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, - -1, 273, 274, 275, 276, -1, 278, 279, 280, 281, - 282, 283, -1, 285, 286, -1, -1, 289, 290, 291, - -1, -1, 294, 295, 296, 297, 298, 299, 300, 301, - 302, 303, 304, 305, 306, 307, 308, 309, -1, 311, - 312, 313, 314, 315, 316, 317, 318, 319, -1, 321, - 322, 323, 324, 325, 326, -1, 328, 329, 330, 331, - 332, 333, 334, 335, -1, 337, 338, 339, 340, 341, - 342, 343, 344, 345, 346, 347, 348, 349, -1, 351, - 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, - 362, 363, 364, 365, 366, 367, 368, -1, 370, 371, - 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, - 382, 383, 384, 385, -1, 387, 388, 389, 390, 391, - 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, - 402, -1, 404, 405, -1, 407, 408, 409, 410, 411, - 412, 413, -1, 415, 416, -1, -1, 419, 420, 421, - 422, 423, -1, 425, 426, 427, 428, 429, 430, 431, - 432, -1, -1, 435, 436, 437, 438, 439, 440, -1, - 442, 443, 444, 445, 446, 447, 448, -1, 450, 451, - 452, 453, 454, 455, 456, -1, -1, 459, -1, -1, - 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, - 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, - 482, 3, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 499, -1, 21, - 22, 23, 24, 25, 26, 27, 28, -1, 30, 31, - 32, -1, -1, -1, -1, -1, -1, -1, 40, 41, - -1, 43, 44, 45, 46, 47, 48, 49, 50, 51, - 52, 53, 54, -1, 56, 57, 58, 59, 60, 61, - -1, 63, 64, 65, 66, 67, 68, -1, 70, 71, - 72, 73, 74, -1, 76, -1, 78, 79, 80, 81, - 82, 83, 84, 85, 86, 87, -1, 89, 90, 91, - 92, 93, 94, -1, 96, 97, 98, 99, 100, 101, - 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, - 112, 113, 114, 115, 116, -1, 118, -1, 120, 121, - 122, 123, 124, 125, -1, 127, 128, 129, 130, 131, - -1, -1, 134, 135, 136, 137, 138, -1, 140, 141, - 142, -1, 144, 145, 146, -1, 148, 149, 150, 151, - 152, 153, 154, 155, 156, 157, 158, -1, 160, -1, - 162, 163, 164, 165, -1, 167, -1, 169, 170, -1, - 172, 173, 174, 175, 176, 177, -1, 179, -1, 181, - 182, 183, -1, 185, 186, 187, 188, 189, 190, 191, - 192, 193, 194, 195, 196, -1, 198, 199, 200, 201, - 202, 203, -1, 205, 206, 207, 208, 209, 210, 211, - 212, 213, 214, -1, 216, -1, 218, 219, 220, 221, - 222, 223, 224, 225, 226, 227, 228, -1, -1, 231, - 232, 233, 234, -1, 236, 237, 238, 239, 240, 241, - 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, - 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, - 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, - -1, 273, 274, 275, 276, -1, 278, 279, 280, 281, - 282, 283, -1, 285, 286, -1, -1, 289, 290, 291, - -1, -1, 294, 295, 296, 297, 298, 299, 300, 301, - 302, 303, 304, 305, 306, 307, 308, 309, -1, 311, - 312, 313, 314, 315, 316, 317, 318, 319, -1, 321, - 322, 323, 324, 325, 326, -1, 328, 329, 330, 331, - 332, 333, 334, 335, -1, 337, 338, 339, 340, 341, - 342, 343, 344, 345, 346, 347, 348, 349, -1, 351, - 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, - 362, 363, 364, 365, 366, 367, 368, -1, 370, 371, - 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, - 382, 383, 384, 385, -1, 387, 388, 389, 390, 391, - 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, - 402, -1, 404, 405, -1, 407, 408, 409, 410, 411, - 412, 413, -1, 415, 416, -1, -1, 419, 420, 421, - 422, 423, -1, 425, 426, 427, 428, 429, 430, 431, - 432, -1, -1, 435, 436, 437, 438, 439, 440, -1, - 442, 443, 444, 445, 446, 447, 448, -1, 450, 451, - 452, 453, 454, 455, 456, -1, -1, 459, -1, -1, - 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, - 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, - 482, 3, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 499, -1, 21, - 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, - 32, -1, -1, -1, -1, -1, -1, -1, 40, 41, - -1, 43, 44, 45, -1, 47, 48, 49, 50, 51, - -1, 53, 54, -1, 56, 57, 58, 59, 60, 61, - -1, -1, 64, 65, 66, 67, 68, -1, 70, 71, - 72, 73, 74, -1, -1, -1, 78, 79, 80, 81, - 82, 83, -1, 85, 86, 87, -1, 89, 90, 91, - 92, 93, 94, -1, -1, 97, 98, 99, -1, -1, - -1, -1, -1, -1, -1, 107, 108, 109, 110, 111, - 112, 113, 114, 115, 116, -1, 118, -1, 120, 121, - 122, 123, 124, 125, -1, 127, 128, 129, 130, 131, - -1, -1, 134, 135, 136, 137, 138, -1, 140, 141, - 142, -1, 144, 145, 146, -1, 148, 149, 150, 151, - 152, 153, 154, 155, 156, 157, 158, -1, 160, -1, - 162, 163, 164, 165, -1, 167, -1, 169, -1, -1, - -1, 173, 174, 175, -1, 177, -1, 179, -1, 181, - 182, 183, -1, 185, 186, 187, 188, 189, 190, 191, - -1, 193, 194, 195, 196, -1, 198, 199, 200, 201, - 202, 203, -1, 205, -1, 207, 208, 209, 210, 211, - 212, 213, 214, -1, 216, -1, 218, -1, -1, 221, - -1, 223, 224, 225, 226, 227, 228, -1, -1, 231, - -1, 233, -1, -1, 236, 237, 238, -1, -1, 241, - 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, - 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, - 262, 263, 264, 265, -1, 267, 268, 269, 270, 271, - -1, 273, 274, -1, 276, -1, 278, 279, 280, 281, - 282, 283, -1, 285, 286, -1, -1, 289, 290, 291, - -1, -1, 294, 295, -1, 297, -1, 299, 300, 301, - 302, 303, 304, 305, 306, 307, 308, 309, -1, 311, - 312, 313, 314, 315, 316, 317, 318, 319, -1, 321, - 322, 323, 324, 325, 326, -1, 328, 329, 330, 331, - 332, 333, 334, 335, -1, 337, 338, 339, 340, 341, - 342, 343, 344, 345, 346, 347, 348, 349, -1, 351, - 352, -1, 354, 355, 356, 357, 358, 359, 360, 361, - 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, - 372, 373, 374, -1, 376, 377, 378, 379, 380, -1, - 382, 383, 384, 385, -1, 387, 388, 389, 390, 391, - 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, - 402, -1, 404, 405, 406, 407, -1, 409, 410, 411, - 412, 413, -1, 415, 416, -1, -1, 419, 420, 421, - 422, 423, -1, 425, 426, 427, 428, 429, 430, 431, - 432, -1, -1, 435, 436, 437, 438, 439, -1, -1, - 442, 443, 444, 445, 446, 447, 448, -1, 450, -1, - 452, 453, 454, 455, 456, -1, -1, 459, -1, 461, - 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, - 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, - 482, 3, -1, 485, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 499, -1, 21, - 22, 23, 24, 25, 26, 27, 28, -1, 30, 31, - 32, -1, -1, -1, -1, -1, -1, -1, 40, 41, - -1, 43, 44, 45, -1, 47, 48, 49, 50, 51, - -1, 53, 54, -1, 56, 57, 58, 59, 60, 61, - -1, -1, 64, 65, 66, 67, 68, -1, 70, 71, - 72, 73, 74, -1, -1, -1, 78, 79, 80, 81, - 82, 83, -1, 85, 86, 87, -1, 89, 90, 91, - 92, 93, 94, -1, -1, 97, 98, 99, -1, -1, - -1, -1, -1, -1, -1, 107, 108, 109, 110, 111, - 112, 113, 114, 115, 116, -1, 118, -1, 120, 121, - 122, 123, 124, 125, -1, 127, 128, 129, 130, 131, - -1, -1, 134, 135, 136, 137, 138, -1, 140, 141, - 142, -1, 144, 145, 146, -1, 148, 149, 150, 151, - 152, 153, 154, 155, 156, 157, 158, -1, 160, -1, - 162, 163, 164, 165, -1, 167, -1, 169, -1, -1, - -1, 173, 174, 175, -1, 177, -1, 179, -1, 181, - 182, 183, -1, 185, 186, 187, 188, 189, 190, 191, - -1, 193, 194, 195, 196, -1, 198, 199, 200, 201, - 202, 203, -1, 205, -1, 207, 208, 209, 210, 211, - 212, 213, 214, -1, 216, -1, 218, -1, -1, 221, - -1, 223, 224, 225, 226, 227, 228, -1, -1, 231, - -1, 233, -1, -1, 236, 237, 238, -1, -1, 241, - 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, - 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, - 262, 263, 264, 265, -1, 267, 268, 269, 270, 271, - -1, 273, 274, -1, 276, -1, 278, 279, 280, 281, - 282, 283, -1, 285, 286, -1, -1, 289, 290, 291, - -1, -1, 294, 295, -1, 297, -1, 299, 300, 301, - 302, 303, 304, 305, 306, 307, 308, 309, -1, 311, - 312, 313, 314, 315, 316, 317, 318, 319, -1, 321, - 322, 323, 324, 325, 326, -1, 328, 329, 330, 331, - 332, 333, 334, 335, -1, 337, 338, 339, 340, 341, - 342, 343, 344, 345, 346, 347, 348, 349, -1, 351, - 352, -1, 354, 355, 356, 357, 358, 359, 360, 361, - 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, - 372, 373, 374, -1, 376, 377, 378, 379, 380, -1, - 382, 383, 384, 385, -1, 387, 388, 389, 390, 391, - 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, - 402, -1, 404, 405, 406, 407, -1, 409, 410, 411, - 412, 413, -1, 415, 416, -1, -1, 419, 420, 421, - 422, 423, -1, 425, 426, 427, 428, 429, 430, 431, - 432, -1, -1, 435, 436, 437, 438, 439, -1, -1, - 442, 443, 444, 445, 446, 447, 448, -1, 450, -1, - 452, 453, 454, 455, 456, -1, -1, 459, -1, 461, - 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, - 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, - 482, -1, 3, 485, 5, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 499, -1, -1, - 21, 22, 23, 24, 25, 26, 27, 28, -1, 30, - 31, 32, -1, -1, -1, -1, -1, -1, -1, 40, - 41, -1, 43, 44, 45, -1, 47, 48, 49, 50, - 51, -1, 53, 54, -1, 56, 57, 58, 59, 60, - 61, -1, -1, 64, 65, 66, 67, 68, -1, 70, - 71, 72, 73, 74, -1, -1, -1, 78, 79, 80, - 81, 82, 83, -1, 85, 86, 87, -1, 89, 90, - 91, 92, 93, 94, -1, -1, 97, 98, 99, -1, - -1, -1, -1, -1, -1, -1, 107, 108, 109, 110, - 111, 112, 113, 114, 115, 116, -1, 118, -1, 120, - 121, 122, 123, 124, 125, -1, 127, 128, 129, 130, - 131, -1, -1, 134, 135, 136, 137, 138, -1, 140, - 141, 142, -1, 144, 145, 146, -1, 148, 149, 150, - 151, 152, 153, 154, 155, 156, 157, 158, -1, 160, - -1, 162, 163, 164, 165, -1, 167, -1, 169, -1, - -1, -1, 173, 174, 175, -1, 177, -1, 179, -1, - 181, 182, 183, -1, 185, 186, 187, 188, 189, 190, - 191, -1, 193, 194, 195, 196, -1, 198, 199, 200, - 201, 202, 203, -1, 205, -1, 207, 208, 209, 210, - 211, 212, 213, 214, -1, 216, -1, 218, -1, -1, - 221, -1, 223, 224, 225, 226, 227, 228, -1, -1, - 231, -1, 233, -1, -1, 236, 237, 238, -1, -1, - 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, - 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, - 261, 262, 263, 264, 265, -1, 267, 268, 269, 270, - 271, -1, 273, 274, -1, 276, -1, 278, 279, 280, - 281, 282, 283, -1, 285, 286, -1, -1, 289, 290, - 291, -1, -1, 294, 295, -1, 297, -1, 299, 300, - 301, 302, 303, 304, 305, 306, 307, 308, 309, -1, - 311, 312, 313, 314, 315, 316, 317, 318, 319, -1, - 321, 322, 323, 324, 325, 326, -1, 328, 329, 330, - 331, 332, 333, 334, 335, -1, 337, 338, 339, 340, - 341, 342, 343, 344, 345, 346, 347, 348, 349, -1, - 351, 352, -1, 354, 355, 356, 357, 358, 359, 360, - 361, 362, 363, 364, 365, 366, 367, 368, -1, 370, - 371, 372, 373, 374, -1, 376, 377, 378, 379, 380, - -1, 382, 383, 384, 385, -1, 387, 388, 389, 390, - 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, - 401, 402, -1, 404, 405, -1, 407, -1, 409, 410, - 411, 412, 413, -1, 415, 416, -1, -1, 419, 420, - 421, 422, 423, -1, 425, 426, 427, 428, 429, 430, - 431, 432, -1, -1, 435, 436, 437, 438, 439, -1, - -1, 442, 443, 444, 445, 446, 447, 448, -1, 450, - -1, 452, 453, 454, 455, 456, -1, -1, 459, -1, - -1, 462, 463, 464, 465, 466, 467, 468, 469, 470, - 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, - 481, 482, 3, -1, 5, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 499, -1, - 21, 22, 23, 24, 25, 26, 27, 28, -1, 30, - 31, 32, -1, -1, -1, -1, -1, -1, -1, 40, - 41, -1, 43, 44, 45, -1, 47, 48, 49, 50, - 51, -1, 53, 54, -1, 56, 57, 58, 59, 60, - 61, -1, -1, 64, 65, 66, 67, 68, -1, 70, - 71, 72, 73, 74, -1, -1, -1, 78, 79, 80, - 81, 82, 83, -1, 85, 86, 87, -1, 89, 90, - 91, 92, 93, 94, -1, -1, 97, 98, 99, -1, - -1, -1, -1, -1, -1, -1, 107, 108, 109, 110, - 111, 112, 113, 114, 115, 116, -1, 118, -1, 120, - 121, 122, 123, 124, 125, -1, 127, 128, 129, 130, - 131, -1, -1, 134, 135, 136, 137, 138, -1, 140, - 141, 142, -1, 144, 145, 146, -1, 148, 149, 150, - 151, 152, 153, 154, 155, 156, 157, 158, -1, 160, - -1, 162, 163, 164, 165, -1, 167, -1, 169, -1, - -1, -1, 173, 174, 175, -1, 177, -1, 179, -1, - 181, 182, 183, -1, 185, 186, 187, 188, 189, 190, - 191, -1, 193, 194, 195, 196, -1, 198, 199, 200, - 201, 202, 203, -1, 205, -1, 207, 208, 209, 210, - 211, 212, 213, 214, -1, 216, -1, 218, -1, -1, - 221, -1, 223, 224, 225, 226, 227, 228, -1, -1, - 231, -1, 233, -1, -1, 236, 237, 238, -1, -1, - 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, - 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, - 261, 262, 263, 264, 265, -1, 267, 268, 269, 270, - 271, -1, 273, 274, -1, 276, -1, 278, 279, 280, - 281, 282, 283, -1, 285, 286, -1, -1, 289, 290, - 291, -1, -1, 294, 295, -1, 297, -1, 299, 300, - 301, 302, 303, 304, 305, 306, 307, 308, 309, -1, - 311, 312, 313, 314, 315, 316, 317, 318, 319, -1, - 321, 322, 323, 324, 325, 326, -1, 328, 329, 330, - 331, 332, 333, 334, 335, -1, 337, 338, 339, 340, - 341, 342, 343, 344, 345, 346, 347, 348, 349, -1, - 351, 352, -1, 354, 355, 356, 357, 358, 359, 360, - 361, 362, 363, 364, 365, 366, 367, 368, -1, 370, - 371, 372, 373, 374, -1, 376, 377, 378, 379, 380, - -1, 382, 383, 384, 385, -1, 387, 388, 389, 390, - 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, - 401, 402, -1, 404, 405, -1, 407, -1, 409, 410, - 411, 412, 413, -1, 415, 416, -1, -1, 419, 420, - 421, 422, 423, -1, 425, 426, 427, 428, 429, 430, - 431, 432, -1, -1, 435, 436, 437, 438, 439, -1, - -1, 442, 443, 444, 445, 446, 447, 448, -1, 450, - -1, 452, 453, 454, 455, 456, -1, -1, 459, -1, - -1, 462, 463, 464, 465, 466, 467, 468, 469, 470, - 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, - 481, 482, 3, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 499, -1, - 21, 22, 23, 24, 25, 26, 27, 28, -1, 30, - 31, 32, -1, -1, -1, -1, -1, -1, -1, 40, - 41, -1, 43, 44, 45, -1, 47, 48, 49, 50, - 51, -1, 53, 54, -1, 56, 57, 58, 59, 60, - 61, -1, -1, 64, 65, 66, 67, 68, -1, 70, - 71, 72, 73, 74, -1, -1, -1, 78, 79, 80, - 81, 82, 83, -1, 85, 86, 87, -1, 89, 90, - 91, 92, 93, 94, -1, -1, 97, 98, 99, -1, - -1, -1, -1, -1, -1, -1, 107, 108, 109, 110, - 111, 112, 113, 114, 115, 116, -1, 118, -1, 120, - 121, 122, 123, 124, 125, -1, 127, 128, 129, 130, - 131, -1, -1, 134, 135, 136, 137, 138, -1, 140, - 141, 142, -1, 144, 145, 146, -1, 148, 149, 150, - 151, 152, 153, 154, 155, 156, 157, 158, -1, 160, - -1, 162, 163, 164, 165, -1, 167, -1, 169, -1, - -1, -1, 173, 174, 175, -1, 177, -1, 179, -1, - 181, 182, 183, -1, 185, 186, 187, 188, 189, 190, - 191, -1, 193, 194, 195, 196, -1, 198, 199, 200, - 201, 202, 203, -1, 205, -1, 207, 208, 209, 210, - 211, 212, 213, 214, -1, 216, -1, 218, -1, -1, - 221, -1, 223, 224, 225, 226, 227, 228, -1, -1, - 231, -1, 233, -1, -1, 236, 237, 238, -1, -1, - 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, - 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, - 261, 262, 263, 264, 265, -1, 267, 268, 269, 270, - 271, -1, 273, 274, -1, 276, -1, 278, 279, 280, - 281, 282, 283, -1, 285, 286, -1, -1, 289, 290, - 291, -1, -1, 294, 295, -1, 297, -1, 299, 300, - 301, 302, 303, 304, 305, 306, 307, 308, 309, -1, - 311, 312, 313, 314, 315, 316, 317, 318, 319, -1, - 321, 322, 323, 324, 325, 326, -1, 328, 329, 330, - 331, 332, 333, 334, 335, -1, 337, 338, 339, 340, - 341, 342, 343, 344, 345, 346, 347, 348, 349, -1, - 351, 352, -1, 354, 355, 356, 357, 358, 359, 360, - 361, 362, 363, 364, 365, 366, 367, 368, -1, 370, - 371, 372, 373, 374, -1, 376, 377, 378, 379, 380, - -1, 382, 383, 384, 385, -1, 387, 388, 389, 390, - 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, - 401, 402, -1, 404, 405, -1, 407, -1, 409, 410, - 411, 412, 413, -1, 415, 416, -1, -1, 419, 420, - 421, 422, 423, -1, 425, 426, 427, 428, 429, 430, - 431, 432, -1, -1, 435, 436, 437, 438, 439, -1, - -1, 442, 443, 444, 445, 446, 447, 448, -1, 450, - -1, 452, 453, 454, 455, 456, -1, -1, 459, -1, - -1, 462, 463, 464, 465, 466, 467, 468, 469, 470, - 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, - 481, 482, 3, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 499, -1, - 21, 22, 23, 24, 25, 26, 27, 28, -1, 30, - 31, 32, -1, -1, -1, -1, -1, -1, -1, 40, - 41, -1, 43, 44, 45, -1, 47, 48, 49, 50, - 51, -1, 53, 54, -1, 56, 57, 58, 59, 60, - 61, -1, -1, 64, 65, 66, 67, 68, -1, 70, - 71, 72, 73, 74, -1, -1, -1, 78, 79, 80, - 81, 82, 83, -1, 85, 86, 87, -1, 89, 90, - 91, 92, 93, 94, -1, -1, 97, 98, 99, -1, - -1, -1, -1, -1, -1, -1, 107, 108, 109, 110, - 111, 112, 113, 114, 115, 116, -1, 118, -1, 120, - 121, 122, 123, 124, 125, -1, 127, 128, 129, 130, - 131, -1, -1, 134, 135, 136, 137, 138, -1, 140, - 141, 142, -1, 144, 145, 146, -1, 148, 149, 150, - 151, 152, 153, 154, 155, 156, 157, 158, -1, 160, - -1, 162, 163, 164, 165, -1, 167, -1, 169, -1, - -1, -1, 173, 174, 175, -1, 177, -1, 179, -1, - 181, 182, 183, -1, 185, 186, 187, 188, 189, 190, - 191, -1, 193, 194, 195, 196, -1, 198, 199, 200, - 201, 202, 203, -1, 205, -1, 207, 208, 209, 210, - 211, 212, 213, 214, -1, 216, -1, 218, -1, -1, - 221, -1, 223, 224, 225, 226, 227, 228, -1, -1, - 231, -1, 233, -1, -1, 236, 237, 238, -1, -1, - 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, - 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, - 261, 262, 263, 264, 265, -1, 267, 268, 269, 270, - 271, -1, 273, 274, -1, 276, -1, 278, 279, 280, - 281, 282, 283, -1, 285, 286, -1, -1, 289, 290, - 291, -1, -1, 294, 295, -1, 297, -1, 299, 300, - 301, 302, 303, 304, 305, 306, 307, 308, 309, -1, - 311, 312, 313, 314, 315, 316, 317, 318, 319, -1, - 321, 322, 323, 324, 325, 326, -1, 328, 329, 330, - 331, 332, 333, 334, 335, -1, 337, 338, 339, 340, - 341, 342, 343, 344, 345, 346, 347, 348, 349, -1, - 351, 352, -1, 354, 355, 356, 357, 358, 359, 360, - 361, 362, 363, 364, 365, 366, 367, 368, -1, 370, - 371, 372, 373, 374, -1, 376, 377, 378, 379, 380, - -1, 382, 383, 384, 385, -1, 387, 388, 389, 390, - 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, - 401, 402, -1, 404, 405, -1, 407, -1, 409, 410, - 411, 412, 413, -1, 415, 416, -1, -1, 419, 420, - 421, 422, 423, -1, 425, 426, 427, 428, 429, 430, - 431, 432, -1, -1, 435, 436, 437, 438, 439, -1, - -1, 442, 443, 444, 445, 446, 447, 448, -1, 450, - -1, 452, 453, 454, 455, 456, -1, -1, 459, -1, - -1, 462, 463, 464, 465, 466, 467, 468, 469, 470, - 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, - 481, 482, 3, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 499, -1, - 21, 22, 23, 24, 25, 26, 27, 28, -1, 30, - 31, 32, -1, -1, -1, -1, -1, -1, -1, 40, - 41, -1, 43, 44, 45, -1, 47, 48, 49, 50, - 51, -1, 53, 54, -1, 56, 57, 58, 59, 60, - 61, -1, -1, 64, 65, 66, 67, 68, -1, 70, - 71, 72, 73, 74, -1, -1, -1, 78, 79, 80, - 81, 82, 83, -1, 85, 86, 87, -1, 89, 90, - 91, 92, 93, 94, -1, -1, 97, 98, 99, -1, - -1, -1, -1, -1, -1, -1, 107, 108, 109, 110, - 111, 112, 113, 114, 115, 116, -1, 118, -1, 120, - 121, 122, 123, 124, 125, -1, 127, 128, 129, 130, - 131, -1, -1, 134, 135, 136, 137, 138, -1, 140, - 141, 142, -1, 144, 145, 146, -1, 148, 149, 150, - 151, 152, 153, 154, 155, 156, 157, 158, -1, 160, - -1, 162, 163, 164, 165, -1, 167, -1, 169, -1, - -1, -1, 173, 174, 175, -1, 177, -1, 179, -1, - 181, 182, 183, -1, 185, 186, 187, 188, 189, 190, - 191, -1, 193, 194, 195, 196, -1, 198, 199, 200, - 201, 202, 203, -1, 205, -1, 207, 208, 209, 210, - 211, 212, 213, 214, -1, 216, -1, 218, -1, -1, - 221, -1, 223, 224, 225, 226, 227, 228, -1, -1, - 231, -1, 233, -1, -1, 236, 237, 238, -1, -1, - 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, - 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, - 261, 262, 263, 264, 265, -1, 267, 268, 269, 270, - 271, -1, 273, 274, -1, 276, -1, 278, 279, 280, - 281, 282, 283, -1, 285, 286, -1, -1, 289, 290, - 291, -1, -1, 294, 295, -1, 297, -1, 299, 300, - 301, 302, 303, 304, 305, 306, 307, 308, 309, -1, - 311, 312, 313, 314, 315, 316, 317, 318, 319, -1, - 321, 322, 323, 324, 325, 326, -1, 328, 329, 330, - 331, 332, 333, 334, 335, -1, 337, 338, 339, 340, - 341, 342, 343, 344, 345, 346, 347, 348, 349, -1, - 351, 352, -1, 354, 355, 356, 357, 358, 359, 360, - 361, 362, 363, 364, 365, 366, 367, 368, -1, 370, - 371, 372, 373, 374, -1, 376, 377, 378, 379, 380, - -1, 382, 383, 384, 385, -1, 387, 388, 389, 390, - 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, - 401, 402, -1, 404, 405, -1, 407, -1, 409, 410, - 411, 412, 413, -1, 415, 416, -1, -1, 419, 420, - 421, 422, 423, -1, 425, 426, 427, 428, 429, 430, - 431, 432, -1, -1, 435, 436, 437, 438, 439, -1, - -1, 442, 443, 444, 445, 446, 447, 448, -1, 450, - -1, 452, 453, 454, 455, 456, -1, -1, 459, -1, - -1, 462, 463, 464, 465, 466, 467, 468, 469, 470, - 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, - 481, 482, -1, -1, 3, 4, 5, -1, -1, 8, - 9, -1, -1, -1, -1, -1, 15, -1, 499, 18, - 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, - 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, - 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, - 49, -1, 51, 52, 53, 54, 55, 56, 57, 58, - 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, - 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, - 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, - 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, - 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, - 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, - 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, - 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, - 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, - 149, 150, 151, -1, 153, 154, 155, 156, 157, -1, - 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, - 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, - 179, 180, -1, -1, 183, 184, 185, 186, 187, 188, - 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, - 199, 200, 201, 202, 203, 204, 205, 206, -1, 208, - 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, - 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, - 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, - 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, - 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, - 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, - 269, 270, 271, 272, 273, 274, 275, 276, 277, -1, - 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, - 289, 290, 291, 292, 293, 294, -1, 296, 297, 298, - -1, 300, 301, 302, 303, 304, 305, 306, 307, 308, - 309, 310, 311, 312, -1, 314, 315, -1, 317, 318, - 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, - 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, - 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, - 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, - 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, - 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, - 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, - 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, - 399, 400, -1, 402, 403, 404, 405, 406, 407, 408, - 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, - 419, 420, -1, 422, -1, 424, 425, 426, 427, 428, - 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, - 439, 440, 441, 442, 443, 444, 445, 446, -1, 448, - 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, - 459, 460, 461, 462, 463, 464, 465, 466, 467, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 479, 480, 481, 482, -1, 3, -1, 486, 487, 488, - 8, 490, 491, 492, 493, 494, 495, 15, -1, -1, - 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, - 28, -1, 30, 31, 32, -1, -1, -1, -1, -1, - -1, -1, 40, 41, -1, 43, 44, 45, -1, 47, - 48, 49, 50, 51, -1, 53, 54, -1, 56, 57, - 58, 59, 60, 61, -1, -1, 64, 65, 66, 67, - 68, -1, 70, 71, 72, 73, 74, -1, -1, -1, - 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, - -1, 89, 90, 91, 92, 93, 94, -1, -1, 97, - 98, 99, -1, -1, -1, -1, -1, -1, -1, 107, - 108, 109, 110, 111, 112, 113, 114, 115, 116, -1, - 118, -1, 120, 121, 122, 123, 124, 125, -1, 127, - 128, 129, 130, 131, -1, -1, 134, 135, 136, 137, - 138, -1, 140, 141, 142, -1, 144, 145, 146, -1, - 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, - 158, -1, 160, -1, 162, 163, 164, 165, -1, 167, - -1, 169, -1, -1, -1, 173, 174, 175, -1, 177, - -1, 179, -1, 181, 182, 183, -1, 185, 186, 187, - 188, 189, 190, 191, -1, 193, 194, 195, 196, -1, - 198, 199, 200, 201, 202, 203, -1, 205, -1, 207, - 208, 209, 210, 211, 212, 213, 214, -1, 216, -1, - 218, -1, -1, 221, -1, 223, 224, 225, 226, 227, - 228, -1, -1, 231, -1, 233, -1, -1, 236, 237, - 238, -1, -1, 241, 242, 243, 244, 245, 246, 247, - 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, - 258, 259, 260, 261, 262, 263, 264, 265, -1, 267, - 268, 269, 270, 271, -1, 273, 274, -1, 276, -1, - 278, 279, 280, 281, 282, 283, -1, 285, 286, -1, - -1, 289, 290, 291, -1, -1, 294, 295, -1, 297, - -1, 299, 300, 301, 302, 303, 304, 305, 306, 307, - 308, 309, -1, 311, 312, 313, 314, 315, 316, 317, - 318, 319, -1, 321, 322, 323, 324, 325, 326, -1, - 328, 329, 330, 331, 332, 333, 334, 335, -1, 337, - 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, - 348, 349, -1, 351, 352, -1, 354, 355, 356, 357, - 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, - 368, -1, 370, 371, 372, 373, 374, -1, 376, 377, - 378, 379, 380, -1, 382, 383, 384, 385, -1, 387, - 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, - 398, 399, 400, 401, 402, -1, 404, 405, -1, 407, - -1, 409, 410, 411, 412, 413, -1, 415, 416, -1, - -1, 419, 420, 421, 422, 423, -1, 425, 426, 427, - 428, 429, 430, 431, 432, -1, -1, 435, 436, 437, - 438, 439, -1, -1, 442, 443, 444, 445, 446, 447, - 448, -1, 450, -1, 452, 453, 454, 455, 456, -1, - -1, 459, -1, -1, 462, 463, 464, 465, 466, 467, - 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, - 478, 479, 480, 481, 482, -1, -1, -1, 486, 487, - 488, -1, 490, 491, 492, 493, 494, 495, 8, -1, - -1, 11, -1, -1, -1, 15, 16, 17, 18, 19, - 20, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 35, -1, 8, -1, -1, - 11, -1, -1, 43, 15, 16, 17, 18, 19, 20, - 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 35, -1, -1, -1, -1, -1, - -1, -1, 43, 8, -1, 75, 11, -1, -1, 50, - 15, 16, 17, 18, 19, 20, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 35, -1, 8, -1, 75, 11, -1, -1, 43, 15, - 16, 17, 18, 19, 20, 50, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 35, - -1, -1, -1, -1, -1, -1, -1, 43, -1, -1, - 75, -1, -1, -1, 50, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 75, - -1, -1, -1, -1, -1, -1, 176, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 192, -1, -1, -1, -1, 197, -1, -1, - 8, -1, -1, 11, -1, 176, -1, 15, 16, 17, - 18, 19, 20, -1, -1, -1, -1, -1, -1, 219, - 220, 192, -1, -1, -1, -1, 197, 35, -1, -1, - -1, -1, -1, -1, 234, 43, -1, -1, -1, -1, - -1, 176, 50, -1, -1, -1, -1, -1, 219, 220, - -1, -1, -1, -1, -1, -1, -1, 192, -1, -1, - -1, -1, 197, 234, -1, -1, -1, 75, -1, -1, - 176, -1, 272, -1, -1, 275, -1, -1, -1, -1, - -1, -1, -1, -1, 219, 220, 192, -1, -1, 289, - -1, 197, 292, -1, -1, -1, -1, -1, -1, 234, - -1, 272, -1, -1, 275, -1, -1, -1, -1, -1, - -1, -1, -1, 219, 220, -1, -1, -1, 289, -1, - -1, 292, -1, -1, -1, -1, -1, -1, 234, -1, - -1, -1, -1, -1, -1, -1, -1, 272, -1, -1, - 275, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 289, -1, -1, 292, -1, -1, - -1, -1, -1, -1, -1, -1, 272, -1, 176, 275, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 381, -1, 289, 192, -1, 292, -1, -1, 197, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 381, 219, 220, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 234, -1, -1, -1, - 8, -1, -1, 11, -1, -1, -1, 15, 16, 17, - 18, 19, 20, -1, -1, -1, 381, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 35, -1, -1, - -1, -1, -1, -1, 272, 43, -1, 275, -1, -1, - -1, -1, 50, -1, -1, 381, -1, -1, -1, -1, - -1, 289, -1, 483, 292, -1, 486, 487, 488, -1, - 490, 491, 492, 493, 494, 495, -1, 75, -1, -1, - 500, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 483, -1, -1, 486, 487, 488, -1, 490, - 491, 492, 493, 494, 495, -1, -1, -1, -1, 500, - -1, -1, -1, -1, 8, -1, -1, 11, -1, -1, - -1, 15, 16, 17, 18, 19, 20, -1, 483, -1, - -1, 486, 487, 488, -1, 490, 491, 492, 493, 494, - 495, 35, -1, -1, -1, 500, -1, -1, -1, 43, - -1, -1, -1, 381, -1, -1, 50, 483, -1, -1, - 486, 487, 488, -1, 490, 491, 492, 493, 494, 495, - -1, -1, -1, -1, 500, -1, 8, -1, 176, 11, - -1, 75, -1, 15, 16, 17, 18, 19, 20, -1, - -1, -1, -1, -1, 192, -1, -1, -1, -1, 197, - -1, -1, -1, 35, -1, -1, -1, -1, -1, -1, - -1, 43, -1, -1, -1, -1, -1, -1, 50, -1, - -1, 219, 220, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 234, -1, -1, -1, - -1, -1, -1, 75, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 483, -1, -1, 486, 487, - 488, -1, 490, 491, 492, 493, 494, 495, -1, -1, - -1, -1, 500, -1, 272, -1, -1, 275, -1, -1, - -1, -1, 176, -1, -1, -1, -1, -1, -1, -1, - -1, 289, -1, -1, 292, -1, -1, -1, 192, -1, - -1, -1, -1, 197, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 219, 220, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 234, -1, -1, -1, 176, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 192, -1, -1, -1, -1, 197, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 272, -1, - -1, 275, -1, 381, -1, -1, -1, 219, 220, -1, - -1, -1, -1, -1, -1, 289, -1, -1, 292, -1, - -1, -1, 234, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 272, -1, -1, 275, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 289, -1, -1, - 292, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 483, -1, 381, 486, 487, - 488, -1, 490, 491, 492, 493, 494, 495, -1, -1, - -1, -1, 500, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 381, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 483, - -1, -1, 486, 487, 488, -1, 490, 491, 492, 493, - 494, 495, -1, -1, -1, -1, 500, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 483, 3, -1, 486, 487, 488, -1, 490, 491, - 492, 493, 494, 495, -1, -1, -1, -1, 500, -1, - 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, - 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, - 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, - 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, - 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, - 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, - 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, - 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, - 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, - 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, - 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, - 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, - 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, - 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, - 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, - 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, - 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, - 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, - 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, - 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, - 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, - 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, - 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, - 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, - 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, - 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, - 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, - 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, - 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, - 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, + 475, 476, 477, 478, 479, 480, 481, 482, 483, 507, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 94, 95, 96, + 97, 98, 99, 100, 101, 590, 102, 103, 104, 0, + 0, 0, 0, 0, 0, 0, 105, 106, 0, 107, + 108, 109, 0, 111, 112, 113, 114, 115, 0, 117, + 118, 0, 119, 120, 121, 122, 123, 124, 0, 0, + 125, 126, 127, 128, 129, 0, 130, 131, 132, 133, + 134, 0, 0, 0, 136, 137, 138, 139, 140, 141, + 0, 143, 144, 145, 0, 146, 147, 148, 149, 150, + 151, 0, 0, 153, 154, 155, 0, 0, 0, 0, + 0, 0, 0, 161, 162, 163, 164, 165, 166, 167, + 168, 169, 170, 0, 171, 0, 172, 173, 174, 175, + 176, 177, 0, 178, 179, 180, 181, 182, 0, 0, + 183, 184, 185, 186, 187, 0, 188, 189, 190, 0, + 191, 192, 193, 0, 194, 195, 196, 197, 198, 199, + 200, 201, 202, 203, 204, 0, 205, 0, 206, 207, + 208, 209, 0, 210, 0, 211, 0, 0, 0, 214, + 215, 510, 0, 218, 0, 219, 0, 220, 221, 222, + 0, 223, 224, 225, 226, 227, 228, 229, 0, 231, + 232, 233, 234, 0, 235, 236, 237, 238, 239, 240, + 0, 241, 0, 243, 244, 245, 246, 247, 248, 249, + 250, 0, 251, 0, 252, 0, 0, 255, 0, 257, + 258, 259, 260, 261, 262, 0, 0, 263, 0, 265, + 0, 0, 267, 268, 269, 0, 0, 270, 271, 272, + 273, 274, 511, 276, 277, 278, 279, 280, 281, 282, + 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, + 293, 294, 0, 296, 297, 298, 299, 300, 0, 301, + 302, 0, 304, 0, 305, 306, 307, 308, 309, 310, + 0, 311, 312, 0, 0, 313, 314, 315, 0, 0, + 316, 317, 0, 319, 0, 321, 322, 323, 324, 325, + 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, + 335, 336, 337, 338, 339, 340, 0, 341, 342, 343, + 344, 345, 346, 0, 347, 348, 349, 350, 351, 352, + 353, 354, 0, 355, 356, 357, 358, 359, 360, 361, + 362, 363, 364, 365, 366, 367, 0, 368, 369, 0, + 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, + 381, 382, 383, 384, 385, 0, 386, 387, 388, 389, + 390, 0, 392, 393, 394, 395, 396, 0, 398, 399, + 400, 401, 0, 402, 403, 404, 405, 406, 407, 408, + 409, 410, 411, 412, 413, 513, 415, 416, 417, 0, + 418, 419, 0, 420, 0, 422, 423, 424, 425, 426, + 0, 591, 428, 0, 0, 592, 430, 431, 432, 433, + 0, 434, 435, 436, 437, 438, 439, 440, 441, 0, + 0, 442, 443, 444, 445, 446, 0, 0, 448, 449, + 450, 451, 452, 453, 454, 0, 455, 0, 457, 458, + 459, 460, 461, 0, 0, 462, 0, 0, 463, 464, + 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, + 475, 476, 477, 478, 479, 480, 481, 482, 483, 507, + 0, 508, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 94, 95, 96, + 97, 98, 99, 100, 101, 0, 102, 103, 104, 0, + 0, 0, 0, 0, 0, 0, 105, 106, 0, 107, + 108, 109, 0, 111, 112, 113, 114, 115, 0, 117, + 118, 0, 119, 120, 121, 122, 123, 124, 0, 0, + 125, 126, 127, 128, 129, 0, 130, 131, 132, 133, + 134, 0, 0, 0, 136, 137, 138, 139, 140, 141, + 0, 143, 144, 145, 0, 146, 147, 148, 149, 150, + 151, 0, 0, 153, 154, 155, 0, 0, 0, 0, + 0, 0, 0, 161, 162, 163, 164, 165, 166, 167, + 168, 169, 170, 0, 171, 0, 172, 173, 174, 175, + 176, 177, 0, 178, 179, 180, 181, 182, 0, 0, + 183, 184, 185, 186, 187, 0, 188, 189, 190, 0, + 191, 192, 193, 0, 194, 195, 196, 197, 198, 199, + 200, 201, 202, 203, 204, 0, 205, 0, 206, 207, + 208, 209, 0, 210, 0, 211, 0, 0, 0, 214, + 215, 510, 0, 218, 0, 219, 0, 220, 221, 222, + 0, 223, 224, 225, 226, 227, 228, 229, 0, 231, + 232, 233, 234, 0, 235, 236, 237, 238, 239, 240, + 0, 241, 0, 243, 244, 245, 246, 247, 248, 249, + 250, 0, 251, 0, 252, 0, 0, 255, 0, 257, + 258, 259, 260, 261, 262, 0, 0, 263, 0, 265, + 0, 0, 267, 268, 269, 0, 0, 270, 271, 272, + 273, 274, 511, 276, 277, 278, 279, 280, 281, 282, + 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, + 293, 294, 0, 296, 297, 298, 299, 300, 0, 301, + 302, 0, 304, 0, 305, 306, 307, 308, 309, 310, + 0, 311, 312, 0, 0, 313, 314, 315, 0, 0, + 316, 317, 0, 319, 0, 321, 322, 323, 324, 325, + 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, + 335, 336, 337, 338, 339, 340, 0, 341, 342, 343, + 344, 345, 346, 0, 347, 348, 349, 350, 351, 352, + 624, 354, 0, 355, 356, 357, 358, 359, 360, 361, + 362, 363, 364, 365, 366, 367, 0, 368, 369, 0, + 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, + 381, 382, 383, 384, 385, 0, 386, 387, 388, 389, + 390, 0, 392, 393, 394, 395, 396, 0, 398, 399, + 400, 401, 0, 402, 403, 404, 405, 406, 407, 408, + 409, 410, 411, 412, 413, 513, 415, 416, 417, 0, + 418, 419, 0, 420, 0, 422, 423, 424, 425, 426, + 0, 427, 428, 0, 0, 429, 430, 431, 432, 433, + 0, 434, 435, 436, 437, 438, 439, 440, 441, 0, + 0, 442, 443, 444, 445, 446, 0, 0, 448, 449, + 450, 451, 452, 453, 454, 0, 455, 0, 457, 458, + 459, 460, 461, 0, 0, 462, 0, 0, 463, 464, + 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, + 475, 476, 477, 478, 479, 480, 481, 482, 483, 507, + 0, 508, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 94, 95, 96, + 97, 98, 99, 100, 101, 0, 102, 103, 104, 0, + 0, 0, 0, 0, 0, 0, 105, 106, 0, 107, + 108, 109, 0, 111, 112, 113, 114, 115, 0, 117, + 118, 0, 119, 120, 121, 122, 123, 124, 0, 0, + 125, 126, 127, 128, 129, 0, 130, 131, 132, 133, + 134, 0, 0, 0, 136, 137, 138, 139, 140, 141, + 0, 143, 144, 145, 0, 146, 147, 148, 149, 150, + 151, 0, 0, 153, 154, 155, 0, 0, 0, 0, + 0, 0, 0, 161, 162, 163, 164, 165, 166, 167, + 168, 169, 170, 0, 171, 0, 172, 173, 174, 175, + 176, 177, 0, 178, 179, 180, 181, 182, 0, 0, + 183, 184, 185, 186, 187, 0, 188, 189, 190, 0, + 191, 192, 193, 0, 194, 195, 196, 197, 198, 199, + 200, 201, 202, 203, 204, 0, 205, 0, 206, 207, + 208, 209, 0, 210, 0, 211, 0, 0, 0, 214, + 215, 510, 0, 218, 0, 219, 0, 220, 221, 222, + 0, 223, 224, 225, 226, 227, 653, 229, 0, 231, + 232, 233, 234, 0, 235, 236, 237, 238, 239, 240, + 0, 241, 0, 243, 244, 245, 246, 247, 248, 249, + 250, 0, 251, 0, 252, 0, 0, 255, 0, 257, + 258, 259, 260, 261, 262, 0, 0, 263, 0, 265, + 0, 0, 267, 268, 269, 0, 0, 270, 271, 272, + 273, 274, 511, 276, 277, 278, 279, 280, 281, 282, + 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, + 293, 294, 0, 296, 297, 298, 299, 300, 0, 301, + 302, 0, 304, 0, 305, 306, 307, 308, 309, 310, + 0, 311, 312, 0, 0, 313, 314, 315, 0, 0, + 316, 317, 0, 319, 0, 321, 322, 323, 324, 325, + 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, + 335, 336, 337, 338, 339, 340, 0, 341, 342, 343, + 344, 345, 346, 0, 347, 348, 349, 350, 351, 352, + 353, 354, 0, 355, 356, 357, 358, 359, 360, 361, + 362, 363, 364, 365, 366, 367, 0, 368, 369, 0, + 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, + 381, 382, 383, 384, 385, 0, 386, 387, 388, 389, + 390, 0, 392, 393, 394, 395, 396, 0, 398, 399, + 400, 401, 0, 402, 403, 404, 405, 406, 407, 408, + 409, 410, 411, 412, 413, 513, 415, 416, 417, 0, + 418, 419, 0, 420, 0, 422, 423, 424, 425, 426, + 0, 427, 428, 0, 0, 429, 430, 431, 432, 433, + 0, 434, 435, 436, 437, 438, 439, 440, 441, 0, + 0, 442, 443, 444, 445, 446, 0, 0, 448, 449, + 450, 451, 452, 453, 454, 0, 455, 0, 457, 458, + 459, 460, 461, 0, 0, 462, 0, 0, 463, 464, + 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, + 475, 476, 477, 478, 479, 480, 481, 482, 483, 507, + 0, 508, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 94, 95, 96, + 97, 98, 99, 100, 101, 0, 102, 103, 104, 0, + 0, 0, 0, 0, 0, 0, 105, 106, 0, 107, + 108, 109, 0, 111, 112, 113, 114, 115, 0, 117, + 118, 0, 119, 120, 121, 122, 123, 124, 0, 0, + 125, 126, 127, 128, 129, 0, 130, 131, 132, 133, + 134, 0, 0, 0, 136, 137, 138, 139, 140, 141, + 0, 143, 144, 145, 0, 146, 147, 148, 149, 150, + 151, 0, 0, 153, 154, 155, 0, 0, 0, 0, + 0, 0, 0, 161, 162, 163, 164, 165, 166, 167, + 168, 169, 170, 0, 171, 0, 172, 173, 174, 175, + 176, 177, 0, 178, 179, 180, 181, 182, 0, 0, + 183, 184, 185, 186, 187, 0, 188, 189, 190, 0, + 191, 192, 193, 0, 194, 195, 196, 197, 198, 199, + 200, 201, 202, 203, 204, 0, 205, 0, 206, 207, + 208, 209, 0, 210, 0, 211, 0, 0, 0, 214, + 215, 510, 0, 218, 0, 219, 0, 220, 221, 222, + 0, 223, 224, 225, 226, 227, 656, 229, 0, 231, + 232, 233, 234, 0, 235, 236, 237, 238, 239, 240, + 0, 241, 0, 243, 244, 245, 246, 247, 248, 249, + 250, 0, 251, 0, 252, 0, 0, 255, 0, 257, + 258, 259, 260, 261, 262, 0, 0, 263, 0, 265, + 0, 0, 267, 268, 269, 0, 0, 270, 271, 272, + 273, 274, 511, 276, 277, 278, 279, 280, 281, 282, + 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, + 293, 294, 0, 296, 297, 298, 299, 300, 0, 301, + 302, 0, 304, 0, 305, 306, 307, 308, 309, 310, + 0, 311, 312, 0, 0, 313, 314, 315, 0, 0, + 316, 317, 0, 319, 0, 321, 322, 323, 324, 325, + 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, + 335, 336, 337, 338, 339, 340, 0, 341, 342, 343, + 344, 345, 346, 0, 347, 348, 349, 350, 351, 352, + 353, 354, 0, 355, 356, 357, 358, 359, 360, 361, + 362, 363, 364, 365, 366, 367, 0, 368, 369, 0, + 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, + 381, 382, 383, 384, 385, 0, 386, 387, 388, 389, + 390, 0, 392, 393, 394, 395, 396, 0, 398, 399, + 400, 401, 0, 402, 403, 404, 405, 406, 407, 408, + 409, 410, 411, 412, 413, 513, 415, 416, 417, 0, + 418, 419, 0, 420, 0, 422, 423, 424, 425, 426, + 0, 427, 428, 0, 0, 429, 430, 431, 432, 433, + 0, 434, 435, 436, 437, 438, 439, 440, 441, 0, + 0, 442, 443, 444, 445, 446, 0, 0, 448, 449, + 450, 451, 452, 453, 454, 0, 455, 0, 457, 458, + 459, 460, 461, 0, 0, 462, 0, 0, 463, 464, + 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, + 475, 476, 477, 478, 479, 480, 481, 482, 483, 507, + 0, 508, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 94, 95, 96, + 97, 98, 99, 100, 101, 0, 102, 103, 104, 0, + 0, 0, 0, 0, 0, 0, 105, 106, 0, 107, + 108, 109, 0, 111, 112, 113, 114, 115, 0, 117, + 118, 0, 119, 120, 121, 122, 123, 124, 0, 0, + 125, 126, 127, 128, 129, 0, 130, 131, 132, 133, + 134, 0, 0, 0, 136, 137, 138, 139, 140, 141, + 0, 143, 144, 145, 0, 146, 147, 148, 149, 150, + 151, 0, 0, 153, 154, 155, 0, 0, 0, 0, + 0, 0, 0, 161, 162, 163, 164, 165, 166, 167, + 168, 169, 170, 0, 171, 0, 172, 173, 174, 175, + 176, 177, 0, 178, 179, 180, 181, 182, 0, 0, + 183, 184, 185, 186, 187, 0, 188, 189, 190, 0, + 191, 192, 193, 0, 194, 195, 196, 197, 198, 199, + 200, 201, 202, 203, 204, 0, 205, 0, 206, 207, + 208, 209, 0, 210, 0, 211, 0, 0, 0, 214, + 215, 510, 0, 218, 0, 219, 0, 220, 221, 222, + 0, 223, 224, 225, 226, 227, 660, 229, 0, 231, + 232, 233, 234, 0, 235, 236, 237, 238, 239, 240, + 0, 241, 0, 243, 244, 245, 246, 247, 248, 249, + 250, 0, 251, 0, 252, 0, 0, 255, 0, 257, + 258, 259, 260, 261, 262, 0, 0, 263, 0, 265, + 0, 0, 267, 268, 269, 0, 0, 270, 271, 272, + 273, 274, 511, 276, 277, 278, 279, 280, 281, 282, + 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, + 293, 294, 0, 296, 297, 298, 299, 300, 0, 301, + 302, 0, 304, 0, 305, 306, 307, 308, 309, 310, + 0, 311, 312, 0, 0, 313, 314, 315, 0, 0, + 316, 317, 0, 319, 0, 321, 322, 323, 324, 325, + 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, + 335, 336, 337, 338, 339, 340, 0, 341, 342, 343, + 344, 345, 346, 0, 347, 348, 349, 350, 351, 352, + 353, 354, 0, 355, 356, 357, 358, 359, 360, 361, + 362, 363, 364, 365, 366, 367, 0, 368, 369, 0, + 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, + 381, 382, 383, 384, 385, 0, 386, 387, 388, 389, + 390, 0, 392, 393, 394, 395, 396, 0, 398, 399, + 400, 401, 0, 402, 403, 404, 405, 406, 407, 408, + 409, 410, 411, 412, 413, 513, 415, 416, 417, 0, + 418, 419, 0, 420, 0, 422, 423, 424, 425, 426, + 0, 427, 428, 0, 0, 429, 430, 431, 432, 433, + 0, 434, 435, 436, 437, 438, 439, 440, 441, 0, + 0, 442, 443, 444, 445, 446, 0, 0, 448, 449, + 450, 451, 452, 453, 454, 0, 455, 0, 457, 458, + 459, 460, 461, 0, 0, 462, 0, 0, 463, 464, + 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, + 475, 476, 477, 478, 479, 480, 481, 482, 483, 699, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 94, 95, 96, + 97, 98, 99, 100, 101, 0, 102, 103, 104, 0, + 0, 0, 0, 0, 0, 0, 105, 106, 0, 107, + 108, 109, 700, 111, 112, 113, 0, 701, 702, 703, + 704, 0, 119, 120, 121, 122, 123, 124, 0, 0, + 125, 126, 705, 706, 129, 0, 130, 131, 132, 133, + 0, 0, 707, 0, 136, 137, 138, 139, 140, 141, + 708, 143, 144, 145, 0, 146, 147, 148, 149, 150, + 151, 0, 709, 153, 154, 155, 710, 711, 712, 713, + 0, 0, 714, 161, 162, 163, 164, 165, 166, 167, + 715, 716, 170, 0, 171, 0, 172, 173, 174, 175, + 176, 177, 0, 178, 179, 180, 181, 182, 0, 0, + 183, 184, 717, 186, 187, 0, 188, 189, 190, 0, + 191, 192, 193, 0, 194, 195, 196, 197, 0, 199, + 200, 201, 202, 203, 0, 0, 205, 0, 206, 207, + 718, 209, 0, 210, 0, 211, 719, 0, 720, 214, + 215, 0, 721, 218, 0, 219, 0, 0, 0, 222, + 0, 223, 224, 225, 226, 227, 722, 229, 723, 231, + 232, 233, 234, 0, 235, 236, 237, 238, 239, 240, + 0, 241, 724, 0, 244, 245, 246, 247, 248, 725, + 726, 0, 727, 0, 252, 728, 729, 255, 730, 257, + 258, 259, 260, 261, 262, 0, 0, 263, 731, 265, + 732, 0, 267, 268, 269, 0, 0, 270, 271, 272, + 273, 274, 733, 276, 277, 278, 279, 280, 281, 282, + 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, + 293, 734, 735, 736, 297, 298, 299, 0, 0, 301, + 302, 737, 304, 0, 0, 306, 738, 308, 309, 310, + 0, 311, 312, 0, 0, 313, 314, 315, 0, 0, + 316, 0, 739, 319, 740, 0, 322, 323, 324, 325, + 326, 327, 328, 329, 330, 331, 0, 332, 333, 0, + 335, 336, 0, 338, 339, 340, 0, 341, 342, 343, + 344, 345, 346, 0, 347, 348, 349, 741, 351, 352, + 353, 354, 0, 355, 356, 357, 358, 359, 360, 361, + 362, 363, 364, 365, 366, 367, 0, 368, 369, 742, + 371, 372, 373, 743, 375, 376, 377, 378, 379, 380, + 381, 382, 383, 384, 385, 0, 386, 387, 388, 389, + 390, 744, 392, 745, 394, 395, 396, 746, 398, 399, + 747, 401, 0, 402, 403, 404, 405, 406, 407, 408, + 409, 410, 411, 412, 413, 748, 415, 0, 417, 0, + 418, 419, 0, 420, 749, 422, 423, 424, 425, 426, + 0, 750, 751, 0, 0, 429, 430, 0, 432, 0, + 0, 434, 435, 752, 437, 438, 439, 440, 441, 0, + 0, 442, 443, 444, 445, 446, 753, 0, 448, 449, + 450, 451, 452, 0, 754, 0, 455, 755, 457, 458, + 459, 460, 461, 0, 0, 462, 0, 0, 463, 464, + 465, 466, 467, 468, 507, 0, 508, 0, 0, 0, + 0, 0, 0, 0, 0, 480, 481, 482, 483, 0, + 0, 0, 94, 95, 96, 97, 98, 99, 100, 101, + 0, 102, 103, 104, 0, 0, 0, 0, 0, 0, + 0, 105, 106, 0, 107, 108, 109, 0, 111, 112, + 113, 114, 115, 0, 117, 118, 0, 119, 120, 121, + 122, 123, 124, 0, 0, 125, 126, 127, 128, 129, + 0, 130, 131, 132, 133, 134, 0, 0, 0, 136, + 137, 138, 139, 140, 141, 0, 143, 144, 145, 0, + 146, 147, 148, 149, 150, 151, 0, 0, 153, 154, + 155, 0, 0, 0, 0, 0, 0, 0, 161, 162, + 163, 164, 165, 166, 167, 168, 169, 170, 0, 171, + 0, 172, 173, 174, 175, 176, 177, 0, 178, 179, + 180, 181, 182, 0, 0, 183, 184, 185, 186, 187, + 0, 188, 189, 190, 0, 191, 192, 193, 0, 194, + 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, + 0, 205, 0, 206, 207, 208, 209, 0, 210, 0, + 211, 0, 0, 0, 214, 215, 510, 0, 218, 0, + 219, 0, 220, 221, 222, 0, 223, 224, 225, 226, + 227, 777, 229, 0, 231, 232, 233, 234, 0, 235, + 236, 237, 238, 239, 240, 0, 241, 0, 243, 244, + 245, 246, 247, 248, 249, 250, 0, 251, 0, 252, + 0, 0, 255, 0, 257, 258, 259, 260, 261, 262, + 0, 0, 263, 0, 265, 0, 0, 267, 268, 269, + 0, 0, 270, 271, 272, 273, 274, 511, 276, 277, + 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, + 288, 289, 290, 291, 292, 293, 294, 0, 296, 297, + 298, 299, 300, 0, 301, 302, 0, 304, 0, 305, + 306, 307, 308, 309, 310, 0, 311, 312, 0, 0, + 313, 314, 315, 0, 0, 316, 317, 0, 319, 0, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, - 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, - 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, - 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, - 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, + 331, 0, 332, 333, 334, 335, 336, 337, 338, 339, + 340, 0, 341, 342, 343, 344, 345, 346, 0, 347, + 348, 349, 350, 351, 352, 353, 354, 0, 355, 356, + 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, + 367, 0, 368, 369, 0, 371, 372, 373, 374, 375, + 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, + 0, 386, 387, 388, 389, 390, 0, 392, 393, 394, + 395, 396, 0, 398, 399, 400, 401, 0, 402, 403, + 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, + 513, 415, 416, 417, 0, 418, 419, 0, 420, 0, + 422, 423, 424, 425, 426, 0, 427, 428, 0, 0, + 429, 430, 431, 432, 433, 0, 434, 435, 436, 437, + 438, 439, 440, 441, 0, 0, 442, 443, 444, 445, + 446, 0, 0, 448, 449, 450, 451, 452, 453, 454, + 0, 455, 0, 457, 458, 459, 460, 461, 0, 0, + 462, 0, 0, 463, 464, 465, 466, 467, 468, 469, + 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, + 480, 481, 482, 483, 507, 0, 508, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 94, 95, 96, 97, 98, 99, 100, 101, + 0, 102, 103, 104, 0, 0, 0, 0, 0, 0, + 0, 105, 106, 0, 107, 108, 109, 0, 111, 112, + 113, 114, 115, 0, 117, 118, 0, 119, 120, 121, + 122, 123, 124, 0, 0, 125, 126, 127, 128, 129, + 0, 130, 131, 132, 133, 134, 0, 0, 0, 136, + 137, 138, 139, 140, 141, 0, 143, 144, 145, 0, + 146, 147, 148, 149, 150, 151, 0, 0, 153, 154, + 155, 0, 0, 0, 0, 0, 0, 0, 161, 162, + 163, 164, 165, 166, 167, 168, 169, 170, 0, 171, + 0, 172, 173, 174, 175, 176, 177, 0, 178, 179, + 180, 181, 182, 0, 0, 183, 184, 185, 186, 187, + 0, 188, 189, 190, 0, 191, 192, 193, 0, 194, + 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, + 0, 205, 0, 206, 207, 208, 209, 0, 210, 0, + 211, 0, 0, 0, 214, 215, 510, 0, 218, 0, + 219, 0, 220, 221, 222, 0, 223, 224, 225, 226, + 227, 780, 229, 0, 231, 232, 233, 234, 0, 235, + 236, 237, 238, 239, 240, 0, 241, 0, 243, 244, + 245, 246, 247, 248, 249, 250, 0, 251, 0, 252, + 0, 0, 255, 0, 257, 258, 259, 260, 261, 262, + 0, 0, 263, 0, 265, 0, 0, 267, 268, 269, + 0, 0, 270, 271, 272, 273, 274, 511, 276, 277, + 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, + 288, 289, 290, 291, 292, 293, 294, 0, 296, 297, + 298, 299, 300, 0, 301, 302, 0, 304, 0, 305, + 306, 307, 308, 309, 310, 0, 311, 312, 0, 0, + 313, 314, 315, 0, 0, 316, 317, 0, 319, 0, + 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, + 331, 0, 332, 333, 334, 335, 336, 337, 338, 339, + 340, 0, 341, 342, 343, 344, 345, 346, 0, 347, + 348, 349, 350, 351, 352, 353, 354, 0, 355, 356, + 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, + 367, 0, 368, 369, 0, 371, 372, 373, 374, 375, + 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, + 0, 386, 387, 388, 389, 390, 0, 392, 393, 394, + 395, 396, 0, 398, 399, 400, 401, 0, 402, 403, + 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, + 513, 415, 416, 417, 0, 418, 419, 0, 420, 0, + 422, 423, 424, 425, 426, 0, 427, 428, 0, 0, + 429, 430, 431, 432, 433, 0, 434, 435, 436, 437, + 438, 439, 440, 441, 0, 0, 442, 443, 444, 445, + 446, 0, 0, 448, 449, 450, 451, 452, 453, 454, + 0, 455, 0, 457, 458, 459, 460, 461, 0, 0, + 462, 0, 0, 463, 464, 465, 466, 467, 468, 469, + 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, + 480, 481, 482, 483, 507, 0, 508, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 94, 95, 96, 97, 98, 99, 100, 101, + 0, 102, 103, 104, 0, 0, 0, 0, 0, 0, + 0, 105, 106, 0, 107, 108, 109, 0, 111, 112, + 113, 114, 115, 0, 117, 118, 0, 119, 120, 121, + 122, 123, 124, 0, 0, 125, 126, 127, 128, 129, + 0, 130, 131, 132, 133, 134, 0, 0, 0, 136, + 137, 138, 139, 140, 141, 0, 143, 144, 145, 0, + 146, 147, 148, 149, 150, 151, 0, 0, 153, 154, + 155, 0, 0, 0, 0, 0, 0, 0, 161, 162, + 163, 164, 165, 166, 167, 168, 169, 170, 0, 171, + 0, 172, 173, 174, 175, 176, 177, 0, 178, 179, + 180, 181, 182, 0, 0, 183, 184, 185, 186, 187, + 0, 188, 189, 190, 0, 191, 192, 193, 0, 194, + 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, + 0, 205, 0, 206, 207, 208, 209, 0, 210, 0, + 211, 0, 0, 0, 214, 215, 510, 0, 218, 0, + 219, 0, 220, 221, 222, 0, 223, 224, 225, 226, + 227, 1224, 229, 0, 231, 232, 233, 234, 0, 235, + 236, 237, 238, 239, 240, 0, 241, 0, 243, 244, + 245, 246, 247, 248, 249, 250, 0, 251, 0, 252, + 0, 0, 255, 0, 257, 258, 259, 260, 261, 262, + 0, 0, 263, 0, 265, 0, 0, 267, 268, 269, + 0, 0, 270, 271, 272, 273, 274, 511, 276, 277, + 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, + 288, 289, 290, 291, 292, 293, 294, 0, 296, 297, + 298, 299, 300, 0, 301, 302, 0, 304, 0, 305, + 306, 307, 308, 309, 310, 0, 311, 312, 0, 0, + 313, 314, 315, 0, 0, 316, 317, 0, 319, 0, + 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, + 331, 0, 332, 333, 334, 335, 336, 337, 338, 339, + 340, 0, 341, 342, 343, 344, 345, 346, 0, 347, + 348, 349, 350, 351, 352, 353, 354, 0, 355, 356, + 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, + 367, 0, 368, 369, 0, 371, 372, 373, 374, 375, + 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, + 0, 386, 387, 388, 389, 390, 0, 392, 393, 394, + 395, 396, 0, 398, 399, 400, 401, 0, 402, 403, + 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, + 513, 415, 416, 417, 0, 418, 419, 0, 420, 0, + 422, 423, 424, 425, 426, 0, 427, 428, 0, 0, + 429, 430, 431, 432, 433, 0, 434, 435, 436, 437, + 438, 439, 440, 441, 0, 0, 442, 443, 444, 445, + 446, 0, 0, 448, 449, 450, 451, 452, 453, 454, + 0, 455, 0, 457, 458, 459, 460, 461, 0, 0, + 462, 0, 0, 463, 464, 465, 466, 467, 468, 469, + 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, + 480, 481, 482, 483, 507, 0, 508, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 94, 95, 96, 97, 98, 99, 100, 101, + 0, 102, 103, 104, 0, 0, 0, 0, 0, 0, + 0, 105, 106, 0, 107, 108, 109, 0, 111, 112, + 113, 114, 115, 0, 117, 118, 0, 119, 120, 121, + 122, 123, 124, 0, 0, 125, 126, 127, 128, 129, + 0, 130, 131, 132, 133, 134, 0, 0, 0, 136, + 137, 138, 139, 140, 141, 0, 143, 144, 145, 0, + 146, 147, 148, 149, 150, 151, 0, 0, 153, 154, + 155, 0, 0, 0, 0, 0, 0, 0, 161, 162, + 163, 164, 165, 166, 167, 168, 169, 170, 0, 171, + 0, 172, 173, 174, 175, 176, 177, 0, 178, 179, + 180, 181, 182, 0, 0, 183, 184, 185, 186, 187, + 0, 188, 189, 190, 0, 191, 192, 193, 0, 194, + 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, + 0, 205, 0, 206, 207, 208, 209, 0, 210, 0, + 211, 0, 0, 0, 214, 215, 510, 0, 218, 0, + 219, 0, 220, 221, 222, 0, 223, 224, 225, 226, + 227, 1226, 229, 0, 231, 232, 233, 234, 0, 235, + 236, 237, 238, 239, 240, 0, 241, 0, 243, 244, + 245, 246, 247, 248, 249, 250, 0, 251, 0, 252, + 0, 0, 255, 0, 257, 258, 259, 260, 261, 262, + 0, 0, 263, 0, 265, 0, 0, 267, 268, 269, + 0, 0, 270, 271, 272, 273, 274, 511, 276, 277, + 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, + 288, 289, 290, 291, 292, 293, 294, 0, 296, 297, + 298, 299, 300, 0, 301, 302, 0, 304, 0, 305, + 306, 307, 308, 309, 310, 0, 311, 312, 0, 0, + 313, 314, 315, 0, 0, 316, 317, 0, 319, 0, + 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, + 331, 0, 332, 333, 334, 335, 336, 337, 338, 339, + 340, 0, 341, 342, 343, 344, 345, 346, 0, 347, + 348, 349, 350, 351, 352, 353, 354, 0, 355, 356, + 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, + 367, 0, 368, 369, 0, 371, 372, 373, 374, 375, + 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, + 0, 386, 387, 388, 389, 390, 0, 392, 393, 394, + 395, 396, 0, 398, 399, 400, 401, 0, 402, 403, + 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, + 513, 415, 416, 417, 0, 418, 419, 0, 420, 0, + 422, 423, 424, 425, 426, 0, 427, 428, 0, 0, + 429, 430, 431, 432, 433, 0, 434, 435, 436, 437, + 438, 439, 440, 441, 0, 0, 442, 443, 444, 445, + 446, 0, 0, 448, 449, 450, 451, 452, 453, 454, + 0, 455, 0, 457, 458, 459, 460, 461, 0, 0, + 462, 0, 0, 463, 464, 465, 466, 467, 468, 469, + 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, + 480, 481, 482, 483, 699, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 94, 95, 96, 97, 98, 99, 100, 101, + 0, 102, 103, 104, 0, 0, 0, 0, 0, 0, + 0, 105, 106, 0, 107, 108, 109, 700, 111, 112, + 113, 0, 701, 702, 703, 704, 0, 119, 120, 121, + 122, 123, 124, 0, 0, 125, 126, 705, 706, 129, + 0, 130, 131, 132, 133, 0, 0, 707, 0, 136, + 137, 138, 139, 140, 141, 708, 143, 144, 145, 0, + 146, 147, 148, 149, 150, 151, 0, 709, 153, 154, + 155, 710, 711, 712, 713, 0, 0, 714, 161, 162, + 163, 164, 165, 166, 167, 715, 716, 170, 0, 171, + 0, 172, 173, 174, 175, 176, 177, 0, 178, 179, + 180, 181, 182, 0, 0, 183, 184, 717, 186, 187, + 0, 188, 189, 190, 0, 191, 192, 193, 0, 194, + 195, 196, 197, 0, 199, 200, 201, 202, 203, 0, + 0, 205, 0, 206, 207, 718, 209, 0, 210, 0, + 211, 719, 0, 720, 214, 215, 0, 721, 218, 0, + 219, 0, 0, 0, 222, 0, 223, 224, 225, 226, + 227, 228, 229, 723, 231, 232, 233, 234, 0, 235, + 236, 237, 238, 239, 240, 0, 241, 724, 0, 244, + 245, 246, 247, 248, 725, 726, 0, 727, 0, 252, + 728, 729, 255, 730, 257, 258, 259, 260, 261, 262, + 0, 0, 263, 731, 265, 732, 0, 267, 268, 269, + 0, 0, 270, 271, 272, 273, 274, 733, 276, 277, + 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, + 288, 289, 290, 291, 292, 293, 734, 735, 736, 297, + 298, 299, 0, 0, 301, 302, 737, 304, 0, 0, + 306, 738, 308, 309, 310, 0, 311, 312, 0, 0, + 313, 314, 315, 0, 0, 316, 0, 739, 319, 740, + 0, 322, 323, 324, 325, 326, 327, 328, 329, 330, + 331, 0, 332, 333, 0, 335, 336, 0, 338, 339, + 340, 0, 341, 342, 343, 344, 345, 346, 0, 347, + 348, 349, 741, 351, 352, 353, 354, 0, 355, 356, + 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, + 367, 0, 368, 369, 742, 371, 372, 373, 743, 375, + 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, + 0, 386, 387, 388, 389, 390, 744, 392, 745, 394, + 395, 396, 746, 398, 399, 747, 401, 0, 402, 403, + 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, + 748, 415, 0, 417, 0, 418, 419, 0, 420, 749, + 422, 423, 424, 425, 426, 0, 750, 751, 0, 0, + 429, 430, 0, 432, 0, 0, 434, 435, 752, 437, + 438, 439, 440, 441, 0, 0, 442, 443, 444, 445, + 446, 753, 0, 448, 449, 450, 451, 452, 0, 754, + 0, 455, 755, 457, 458, 459, 460, 461, 0, 0, + 462, 0, 0, 463, 464, 465, 466, 467, 468, 507, + 0, 508, 0, 0, 0, 0, 0, 0, 0, 0, + 480, 481, 482, 483, 0, 0, 0, 94, 95, 96, + 97, 98, 99, 100, 101, 0, 102, 103, 104, 0, + 0, 0, 0, 0, 0, 0, 105, 106, 0, 107, + 108, 109, 0, 111, 112, 113, 114, 115, 0, 117, + 118, 0, 119, 120, 121, 122, 123, 124, 0, 0, + 125, 126, 127, 128, 129, 0, 130, 131, 132, 133, + 134, 0, 0, 0, 136, 137, 138, 139, 140, 141, + 0, 143, 144, 145, 0, 146, 147, 148, 149, 150, + 151, 0, 0, 153, 154, 155, 0, 0, 0, 0, + 0, 0, 0, 161, 162, 163, 164, 165, 166, 167, + 168, 169, 170, 0, 171, 0, 172, 173, 174, 175, + 176, 177, 0, 178, 179, 180, 181, 182, 0, 0, + 183, 184, 185, 186, 187, 0, 188, 189, 190, 0, + 191, 192, 193, 0, 194, 195, 196, 197, 198, 199, + 200, 201, 202, 203, 204, 0, 205, 0, 206, 207, + 208, 209, 0, 210, 0, 211, 0, 0, 0, 214, + 215, 510, 0, 218, 0, 219, 0, 220, 221, 222, + 0, 223, 224, 225, 226, 227, 1898, 229, 0, 231, + 232, 233, 234, 0, 235, 236, 237, 238, 239, 240, + 0, 241, 0, 243, 244, 245, 246, 247, 248, 249, + 250, 0, 251, 0, 252, 0, 0, 255, 0, 257, + 258, 259, 260, 261, 262, 0, 0, 263, 0, 265, + 0, 0, 267, 268, 269, 0, 0, 270, 271, 272, + 273, 274, 511, 276, 277, 278, 279, 280, 281, 282, + 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, + 293, 294, 0, 296, 297, 298, 299, 300, 0, 301, + 302, 0, 304, 0, 305, 306, 307, 308, 309, 310, + 0, 311, 312, 0, 0, 313, 314, 315, 0, 0, + 316, 317, 0, 319, 0, 321, 322, 323, 324, 325, + 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, + 335, 336, 337, 338, 339, 340, 0, 341, 342, 343, + 344, 345, 346, 0, 347, 348, 349, 350, 351, 352, + 353, 354, 0, 355, 356, 357, 358, 359, 360, 361, + 362, 363, 364, 365, 366, 367, 0, 368, 369, 0, + 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, + 381, 382, 383, 384, 385, 0, 386, 387, 388, 389, + 390, 0, 392, 393, 394, 395, 396, 0, 398, 399, + 400, 401, 0, 402, 403, 404, 405, 406, 407, 408, + 409, 410, 411, 412, 413, 513, 415, 416, 417, 0, + 418, 419, 0, 420, 0, 422, 423, 424, 425, 426, + 0, 427, 428, 0, 0, 429, 430, 431, 432, 433, + 0, 434, 435, 436, 437, 438, 439, 440, 441, 0, + 0, 442, 443, 444, 445, 446, 0, 0, 448, 449, + 450, 451, 452, 453, 454, 0, 455, 0, 457, 458, + 459, 460, 461, 0, 0, 462, 0, 0, 463, 464, + 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, + 475, 476, 477, 478, 479, 480, 481, 482, 483, 507, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 94, 95, 96, + 97, 98, 99, 100, 101, 0, 102, 103, 104, 0, + 0, 0, 0, 0, 2401, 0, 105, 106, 0, 107, + 108, 109, 0, 111, 112, 113, 114, 115, 0, 117, + 118, 0, 119, 120, 121, 122, 123, 124, 0, 0, + 125, 126, 127, 128, 129, 0, 130, 131, 132, 133, + 134, 0, 0, 0, 136, 137, 138, 139, 140, 141, + 0, 143, 144, 145, 0, 146, 147, 148, 149, 150, + 151, 0, 0, 153, 154, 155, 0, 0, 0, 0, + 0, 0, 0, 161, 162, 163, 164, 165, 166, 167, + 168, 169, 170, 0, 171, 0, 172, 173, 174, 175, + 176, 177, 0, 178, 179, 180, 181, 182, 0, 0, + 183, 184, 185, 186, 187, 0, 188, 189, 190, 0, + 191, 192, 193, 0, 194, 195, 196, 197, 198, 199, + 200, 201, 202, 203, 204, 0, 205, 0, 206, 207, + 208, 209, 0, 210, 0, 211, 0, 0, 0, 214, + 215, 510, 0, 218, 0, 219, 0, 220, 221, 222, + 0, 223, 224, 225, 226, 227, 228, 229, 0, 231, + 232, 233, 234, 0, 235, 236, 237, 238, 239, 240, + 0, 241, 0, 243, 244, 245, 246, 247, 248, 249, + 250, 0, 251, 0, 252, 0, 0, 255, 0, 257, + 258, 259, 260, 261, 262, 0, 0, 263, 0, 265, + 0, 0, 267, 268, 269, 0, 0, 270, 271, 272, + 273, 274, 511, 276, 277, 278, 279, 280, 281, 282, + 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, + 293, 294, 0, 296, 297, 298, 299, 300, 0, 301, + 302, 0, 304, 0, 305, 306, 307, 308, 309, 310, + 0, 311, 312, 0, 0, 313, 314, 315, 0, 0, + 316, 317, 0, 319, 0, 321, 322, 323, 324, 325, + 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, + 335, 336, 337, 338, 339, 340, 0, 341, 342, 343, + 344, 345, 346, 0, 347, 348, 349, 350, 351, 352, + 353, 354, 0, 355, 356, 357, 358, 359, 360, 361, + 362, 363, 364, 365, 366, 367, 0, 368, 369, 0, + 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, + 381, 382, 383, 384, 385, 0, 386, 387, 388, 389, + 390, 0, 392, 393, 394, 395, 396, 0, 398, 399, + 400, 401, 0, 402, 403, 404, 405, 406, 407, 408, + 409, 410, 411, 412, 413, 513, 415, 416, 417, 0, + 418, 419, 0, 420, 0, 422, 423, 424, 425, 426, + 0, 427, 428, 0, 0, 429, 430, 431, 432, 433, + 0, 434, 435, 436, 437, 438, 439, 440, 441, 0, + 0, 442, 443, 444, 445, 446, 0, 0, 448, 449, + 450, 451, 452, 453, 454, 0, 455, 0, 457, 458, + 459, 460, 461, 0, 0, 462, 0, 0, 463, 464, + 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, + 475, 476, 477, 478, 479, 480, 481, 482, 483, 507, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 94, 95, 96, + 97, 98, 99, 100, 101, 0, 102, 103, 104, 0, + 0, 0, 0, 0, 2416, 0, 105, 106, 0, 107, + 108, 109, 0, 111, 112, 113, 114, 115, 0, 117, + 118, 0, 119, 120, 121, 122, 123, 124, 0, 0, + 125, 126, 127, 128, 129, 0, 130, 131, 132, 133, + 134, 0, 0, 0, 136, 137, 138, 139, 140, 141, + 0, 143, 144, 145, 0, 146, 147, 148, 149, 150, + 151, 0, 0, 153, 154, 155, 0, 0, 0, 0, + 0, 0, 0, 161, 162, 163, 164, 165, 166, 167, + 168, 169, 170, 0, 171, 0, 172, 173, 174, 175, + 176, 177, 0, 178, 179, 180, 181, 182, 0, 0, + 183, 184, 185, 186, 187, 0, 188, 189, 190, 0, + 191, 192, 193, 0, 194, 195, 196, 197, 198, 199, + 200, 201, 202, 203, 204, 0, 205, 0, 206, 207, + 208, 209, 0, 210, 0, 211, 0, 0, 0, 214, + 215, 510, 0, 218, 0, 219, 0, 220, 221, 222, + 0, 223, 224, 225, 226, 227, 228, 229, 0, 231, + 232, 233, 234, 0, 235, 236, 237, 238, 239, 240, + 0, 241, 0, 243, 244, 245, 246, 247, 248, 249, + 250, 0, 251, 0, 252, 0, 0, 255, 0, 257, + 258, 259, 260, 261, 262, 0, 0, 263, 0, 265, + 0, 0, 267, 268, 269, 0, 0, 270, 271, 272, + 273, 274, 511, 276, 277, 278, 279, 280, 281, 282, + 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, + 293, 294, 0, 296, 297, 298, 299, 300, 0, 301, + 302, 0, 304, 0, 305, 306, 307, 308, 309, 310, + 0, 311, 312, 0, 0, 313, 314, 315, 0, 0, + 316, 317, 0, 319, 0, 321, 322, 323, 324, 325, + 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, + 335, 336, 337, 338, 339, 340, 0, 341, 342, 343, + 344, 345, 346, 0, 347, 348, 349, 350, 351, 352, + 353, 354, 0, 355, 356, 357, 358, 359, 360, 361, + 362, 363, 364, 365, 366, 367, 0, 368, 369, 0, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, - 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, - 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, - 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, - 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, - 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, - 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, - 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, - 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, - 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, - 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, - 481, 482, 3, -1, -1, -1, -1, -1, -1, -1, - -1, 492, -1, -1, -1, -1, -1, -1, -1, -1, - 21, 22, 23, 24, 25, 26, 27, 28, -1, 30, - 31, 32, -1, -1, -1, -1, -1, -1, -1, 40, - 41, -1, 43, 44, 45, -1, 47, 48, 49, 50, - 51, -1, 53, 54, -1, 56, 57, 58, 59, 60, - 61, -1, -1, 64, 65, 66, 67, 68, -1, 70, - 71, 72, 73, 74, -1, -1, -1, 78, 79, 80, - 81, 82, 83, -1, 85, 86, 87, -1, 89, 90, - 91, 92, 93, 94, -1, -1, 97, 98, 99, -1, - -1, -1, -1, -1, -1, -1, 107, 108, 109, 110, - 111, 112, 113, 114, 115, 116, -1, 118, -1, 120, - 121, 122, 123, 124, 125, -1, 127, 128, 129, 130, - 131, -1, -1, 134, 135, 136, 137, 138, -1, 140, - 141, 142, -1, 144, 145, 146, -1, 148, 149, 150, - 151, 152, 153, 154, 155, 156, 157, 158, -1, 160, - -1, 162, 163, 164, 165, -1, 167, -1, 169, -1, - -1, -1, 173, 174, 175, -1, 177, -1, 179, -1, - 181, 182, 183, -1, 185, 186, 187, 188, 189, 190, - 191, -1, 193, 194, 195, 196, -1, 198, 199, 200, - 201, 202, 203, -1, 205, -1, 207, 208, 209, 210, - 211, 212, 213, 214, -1, 216, -1, 218, -1, -1, - 221, -1, 223, 224, 225, 226, 227, 228, -1, -1, - 231, -1, 233, -1, -1, 236, 237, 238, -1, -1, - 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, - 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, - 261, 262, 263, 264, 265, -1, 267, 268, 269, 270, - 271, -1, 273, 274, -1, 276, -1, 278, 279, 280, - 281, 282, 283, -1, 285, 286, -1, -1, 289, 290, - 291, -1, -1, 294, 295, -1, 297, -1, 299, 300, - 301, 302, 303, 304, 305, 306, 307, 308, 309, -1, - 311, 312, 313, 314, 315, 316, 317, 318, 319, -1, - 321, 322, 323, 324, 325, 326, -1, 328, 329, 330, - 331, 332, 333, 334, 335, -1, 337, 338, 339, 340, - 341, 342, 343, 344, 345, 346, 347, 348, 349, -1, - 351, 352, -1, 354, 355, 356, 357, 358, 359, 360, - 361, 362, 363, 364, 365, 366, 367, 368, -1, 370, - 371, 372, 373, 374, -1, 376, 377, 378, 379, 380, - -1, 382, 383, 384, 385, -1, 387, 388, 389, 390, - 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, - 401, 402, -1, 404, 405, -1, 407, -1, 409, 410, - 411, 412, 413, -1, 415, 416, -1, -1, 419, 420, - 421, 422, 423, -1, 425, 426, 427, 428, 429, 430, - 431, 432, -1, -1, 435, 436, 437, 438, 439, -1, - -1, 442, 443, 444, 445, 446, 447, 448, -1, 450, - -1, 452, 453, 454, 455, 456, -1, -1, 459, -1, - -1, 462, 463, 464, 465, 466, 467, 468, 469, 470, - 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, - 481, 482, 3, 4, 5, -1, -1, -1, 9, -1, - -1, 492, -1, -1, -1, -1, -1, -1, -1, -1, - 21, 22, 23, 24, 25, 26, 27, 28, -1, 30, - 31, 32, -1, -1, -1, -1, -1, -1, -1, 40, - 41, -1, 43, 44, 45, 46, 47, 48, 49, 50, - 51, 52, 53, 54, -1, 56, 57, 58, 59, 60, - 61, -1, -1, 64, 65, 66, 67, 68, -1, 70, - 71, 72, 73, 74, -1, 76, -1, 78, 79, 80, - 81, 82, 83, 84, 85, 86, 87, -1, 89, 90, - 91, 92, 93, 94, -1, 96, 97, 98, 99, 100, - 101, 102, 103, -1, -1, 106, 107, 108, 109, 110, - 111, 112, 113, 114, 115, 116, 117, 118, -1, 120, - 121, 122, 123, 124, 125, -1, 127, 128, 129, 130, - 131, -1, -1, 134, 135, 136, 137, 138, -1, 140, - 141, 142, -1, 144, 145, 146, -1, 148, 149, 150, - 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, - -1, 162, 163, 164, 165, -1, 167, -1, 169, 170, - -1, 172, 173, 174, 175, 176, 177, -1, 179, -1, - 181, 182, 183, -1, 185, 186, 187, 188, 189, 190, - 191, 192, 193, 194, 195, 196, -1, 198, 199, 200, - 201, 202, 203, -1, 205, 206, 207, 208, 209, 210, - 211, 212, 213, 214, -1, 216, -1, 218, 219, 220, - 221, 222, 223, 224, 225, 226, 227, 228, -1, -1, - 231, 232, 233, 234, -1, 236, 237, 238, -1, -1, - 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, - 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, - 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, - 271, -1, 273, 274, 275, 276, -1, 278, 279, 280, - 281, 282, 283, -1, 285, 286, 287, -1, 289, 290, - 291, -1, -1, 294, 295, 296, 297, 298, 299, 300, - 301, 302, 303, 304, 305, 306, 307, 308, 309, -1, - 311, 312, 313, 314, 315, 316, 317, 318, 319, -1, - 321, 322, 323, 324, 325, 326, -1, 328, 329, 330, - 331, 332, 333, 334, 335, -1, 337, 338, 339, 340, - 341, 342, 343, 344, 345, 346, 347, 348, 349, -1, - 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, - 361, 362, 363, 364, 365, 366, 367, 368, -1, 370, + 381, 382, 383, 384, 385, 0, 386, 387, 388, 389, + 390, 0, 392, 393, 394, 395, 396, 0, 398, 399, + 400, 401, 0, 402, 403, 404, 405, 406, 407, 408, + 409, 410, 411, 412, 413, 513, 415, 416, 417, 0, + 418, 419, 0, 420, 0, 422, 423, 424, 425, 426, + 0, 427, 428, 0, 0, 429, 430, 431, 432, 433, + 0, 434, 435, 436, 437, 438, 439, 440, 441, 0, + 0, 442, 443, 444, 445, 446, 0, 0, 448, 449, + 450, 451, 452, 453, 454, 0, 455, 0, 457, 458, + 459, 460, 461, 0, 0, 462, 0, 0, 463, 464, + 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, + 475, 476, 477, 478, 479, 480, 481, 482, 483, 507, + 0, 508, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 94, 95, 96, + 97, 98, 99, 100, 101, 0, 102, 103, 104, 0, + 0, 0, 0, 0, 0, 0, 105, 106, 0, 107, + 108, 109, 0, 111, 112, 113, 114, 115, 0, 117, + 118, 0, 119, 120, 121, 122, 123, 124, 0, 0, + 125, 126, 127, 128, 129, 0, 130, 131, 132, 133, + 134, 0, 0, 0, 136, 137, 138, 139, 140, 141, + 0, 143, 144, 145, 0, 146, 147, 148, 149, 150, + 151, 0, 0, 153, 154, 155, 0, 0, 0, 0, + 0, 0, 0, 161, 162, 163, 164, 165, 166, 167, + 168, 169, 170, 0, 171, 0, 172, 173, 174, 175, + 176, 177, 0, 178, 179, 180, 181, 182, 0, 0, + 183, 184, 185, 186, 187, 0, 188, 189, 190, 0, + 191, 192, 193, 0, 194, 195, 196, 197, 198, 199, + 200, 201, 202, 203, 204, 0, 205, 0, 206, 207, + 208, 209, 0, 210, 0, 211, 0, 0, 0, 214, + 215, 510, 0, 218, 0, 219, 0, 220, 221, 222, + 0, 223, 224, 225, 226, 227, 2578, 229, 0, 231, + 232, 233, 234, 0, 235, 236, 237, 238, 239, 240, + 0, 241, 0, 243, 244, 245, 246, 247, 248, 249, + 250, 0, 251, 0, 252, 0, 0, 255, 0, 257, + 258, 259, 260, 261, 262, 0, 0, 263, 0, 265, + 0, 0, 267, 268, 269, 0, 0, 270, 271, 272, + 273, 274, 511, 276, 277, 278, 279, 280, 281, 282, + 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, + 293, 294, 0, 296, 297, 298, 299, 300, 0, 301, + 302, 0, 304, 0, 305, 306, 307, 308, 309, 310, + 0, 311, 312, 0, 0, 313, 314, 315, 0, 0, + 316, 317, 0, 319, 0, 321, 322, 323, 324, 325, + 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, + 335, 336, 337, 338, 339, 340, 0, 341, 342, 343, + 344, 345, 346, 0, 347, 348, 349, 350, 351, 352, + 353, 354, 0, 355, 356, 357, 358, 359, 360, 361, + 362, 363, 364, 365, 366, 367, 0, 368, 369, 0, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, - 381, 382, 383, 384, 385, -1, 387, 388, 389, 390, - 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, - 401, 402, -1, 404, 405, -1, 407, 408, 409, 410, - 411, 412, 413, -1, 415, 416, -1, -1, 419, 420, - 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, - 431, 432, -1, -1, 435, 436, 437, 438, 439, 440, - -1, 442, 443, 444, 445, 446, 447, 448, -1, 450, - 451, 452, 453, 454, 455, 456, -1, -1, 459, -1, - -1, 462, 463, 464, 465, 466, 467, 468, 469, 470, - 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, - 481, 482, 3, 4, 5, -1, -1, -1, 9, 490, - 491, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 21, 22, 23, 24, 25, 26, 27, 28, -1, 30, - 31, 32, -1, -1, -1, -1, -1, -1, -1, 40, - 41, -1, 43, 44, 45, 46, 47, 48, 49, 50, - 51, 52, 53, 54, -1, 56, 57, 58, 59, 60, - 61, -1, -1, 64, 65, 66, 67, 68, -1, 70, - 71, 72, 73, 74, -1, 76, -1, 78, 79, 80, - 81, 82, 83, 84, 85, 86, 87, -1, 89, 90, - 91, 92, 93, 94, -1, 96, 97, 98, 99, 100, - 101, 102, 103, -1, -1, 106, 107, 108, 109, 110, - 111, 112, 113, 114, 115, 116, 117, 118, -1, 120, - 121, 122, 123, 124, 125, -1, 127, 128, 129, 130, - 131, -1, -1, 134, 135, 136, 137, 138, -1, 140, - 141, 142, -1, 144, 145, 146, -1, 148, 149, 150, - 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, - -1, 162, 163, 164, 165, -1, 167, -1, 169, 170, - -1, 172, 173, 174, 175, 176, 177, -1, 179, -1, - 181, 182, 183, -1, 185, 186, 187, 188, 189, 190, - 191, 192, 193, 194, 195, 196, -1, 198, 199, 200, - 201, 202, 203, -1, 205, 206, 207, 208, 209, 210, - 211, 212, 213, 214, -1, 216, -1, 218, 219, 220, - 221, 222, 223, 224, 225, 226, 227, 228, -1, -1, - 231, 232, 233, 234, -1, 236, 237, 238, -1, -1, - 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, - 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, - 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, - 271, -1, 273, 274, 275, 276, -1, 278, 279, 280, - 281, 282, 283, -1, 285, 286, 287, -1, 289, 290, - 291, -1, -1, 294, 295, 296, 297, 298, 299, 300, - 301, 302, 303, 304, 305, 306, 307, 308, 309, -1, - 311, 312, 313, 314, 315, 316, 317, 318, 319, -1, - 321, 322, 323, 324, 325, 326, -1, 328, 329, 330, - 331, 332, 333, 334, 335, -1, 337, 338, 339, 340, - 341, 342, 343, 344, 345, 346, 347, 348, 349, -1, - 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, - 361, 362, 363, 364, 365, 366, 367, 368, -1, 370, + 381, 382, 383, 384, 385, 0, 386, 387, 388, 389, + 390, 0, 392, 393, 394, 395, 396, 0, 398, 399, + 400, 401, 0, 402, 403, 404, 405, 406, 407, 408, + 409, 410, 411, 412, 413, 513, 415, 416, 417, 0, + 418, 419, 0, 420, 0, 422, 423, 424, 425, 426, + 0, 427, 428, 0, 0, 429, 430, 431, 432, 433, + 0, 434, 435, 436, 437, 438, 439, 440, 441, 0, + 0, 442, 443, 444, 445, 446, 0, 0, 448, 449, + 450, 451, 452, 453, 454, 0, 455, 0, 457, 458, + 459, 460, 461, 0, 0, 462, 0, 0, 463, 464, + 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, + 475, 476, 477, 478, 479, 480, 481, 482, 483, 507, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 94, 95, 96, + 97, 98, 99, 100, 101, 0, 102, 103, 104, 0, + 0, 0, 0, 0, 0, 0, 105, 106, 0, 107, + 108, 109, 0, 111, 112, 113, 114, 115, 0, 117, + 118, 0, 119, 120, 121, 122, 123, 124, 0, 0, + 125, 126, 127, 128, 129, 0, 130, 131, 132, 133, + 134, 0, 0, 0, 136, 137, 138, 139, 140, 141, + 0, 143, 144, 145, 0, 146, 147, 148, 149, 150, + 151, 0, 0, 153, 154, 155, 0, 0, 0, 0, + 0, 0, 0, 161, 162, 163, 164, 165, 166, 167, + 168, 169, 170, 0, 171, 0, 172, 173, 174, 175, + 176, 177, 0, 178, 179, 180, 181, 182, 0, 0, + 183, 184, 185, 186, 187, 0, 188, 189, 190, 0, + 191, 192, 193, 0, 194, 195, 196, 197, 198, 199, + 200, 201, 202, 203, 204, 0, 205, 0, 206, 207, + 208, 209, 0, 210, 0, 211, 0, 0, 0, 214, + 215, 510, 0, 218, 0, 219, 0, 220, 221, 222, + 0, 223, 224, 225, 226, 227, 228, 229, 0, 231, + 232, 233, 234, 0, 235, 236, 237, 238, 239, 240, + 0, 241, 0, 243, 244, 245, 246, 247, 248, 249, + 250, 0, 251, 0, 252, 0, 0, 255, 0, 257, + 258, 259, 260, 261, 262, 0, 0, 263, 0, 265, + 0, 0, 267, 268, 269, 0, 0, 270, 271, 272, + 273, 274, 511, 276, 277, 278, 279, 280, 281, 282, + 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, + 293, 294, 0, 296, 297, 298, 299, 300, 0, 301, + 302, 0, 304, 0, 305, 306, 307, 308, 309, 310, + 0, 311, 312, 0, 0, 313, 314, 315, 0, 0, + 316, 317, 0, 319, 0, 321, 322, 323, 324, 325, + 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, + 335, 336, 337, 338, 339, 340, 0, 341, 342, 343, + 344, 345, 346, 0, 347, 348, 349, 350, 351, 352, + 353, 354, 0, 355, 356, 357, 358, 359, 360, 361, + 362, 363, 364, 365, 366, 367, 0, 368, 369, 0, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, - 381, 382, 383, 384, 385, -1, 387, 388, 389, 390, - 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, - 401, 402, -1, 404, 405, -1, 407, 408, 409, 410, - 411, 412, 413, -1, 415, 416, -1, -1, 419, 420, - 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, - 431, 432, -1, -1, 435, 436, 437, 438, 439, 440, - -1, 442, 443, 444, 445, 446, 447, 448, -1, 450, - 451, 452, 453, 454, 455, 456, -1, -1, 459, -1, - -1, 462, 463, 464, 465, 466, 467, 468, 469, 470, - 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, - 481, 482, 3, 4, 5, -1, -1, -1, 9, 490, - 491, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 21, 22, 23, 24, 25, 26, 27, 28, -1, 30, - 31, 32, -1, -1, -1, -1, -1, -1, -1, 40, - 41, -1, 43, 44, 45, 46, 47, 48, 49, 50, - 51, 52, 53, 54, -1, 56, 57, 58, 59, 60, - 61, -1, -1, 64, 65, 66, 67, 68, -1, 70, - 71, 72, 73, 74, -1, 76, -1, 78, 79, 80, - 81, 82, 83, 84, 85, 86, 87, -1, 89, 90, - 91, 92, 93, 94, -1, 96, 97, 98, 99, 100, - 101, 102, 103, -1, -1, 106, 107, 108, 109, 110, - 111, 112, 113, 114, 115, 116, -1, 118, -1, 120, - 121, 122, 123, 124, 125, -1, 127, 128, 129, 130, - 131, -1, -1, 134, 135, 136, 137, 138, -1, 140, - 141, 142, -1, 144, 145, 146, -1, 148, 149, 150, - 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, - -1, 162, 163, 164, 165, -1, 167, -1, 169, 170, - -1, 172, 173, 174, 175, 176, 177, -1, 179, -1, - 181, 182, 183, -1, 185, 186, 187, 188, 189, 190, - 191, 192, 193, 194, 195, 196, -1, 198, 199, 200, - 201, 202, 203, -1, 205, 206, 207, 208, 209, 210, - 211, 212, 213, 214, -1, 216, -1, 218, 219, 220, - 221, 222, 223, 224, 225, 226, 227, 228, -1, -1, - 231, 232, 233, 234, -1, 236, 237, 238, -1, -1, - 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, - 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, - 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, - 271, -1, 273, 274, 275, 276, -1, 278, 279, 280, - 281, 282, 283, -1, 285, 286, 287, -1, 289, 290, - 291, -1, -1, 294, 295, 296, 297, 298, 299, 300, - 301, 302, 303, 304, 305, 306, 307, 308, 309, -1, - 311, 312, 313, 314, 315, 316, 317, 318, 319, -1, - 321, 322, 323, 324, 325, 326, -1, 328, 329, 330, - 331, 332, 333, 334, 335, -1, 337, 338, 339, 340, - 341, 342, 343, 344, 345, 346, 347, 348, 349, -1, - 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, - 361, 362, 363, 364, 365, 366, 367, 368, -1, 370, + 381, 382, 383, 384, 385, 0, 386, 387, 388, 389, + 390, 0, 392, 393, 394, 395, 396, 0, 398, 399, + 400, 401, 0, 402, 403, 404, 405, 406, 407, 408, + 409, 410, 411, 412, 413, 513, 415, 416, 417, 0, + 418, 419, 0, 420, 0, 422, 423, 424, 425, 426, + 0, 427, 428, 0, 0, 429, 430, 431, 432, 433, + 0, 434, 435, 436, 437, 438, 439, 440, 441, 0, + 0, 442, 443, 444, 445, 446, 0, 0, 448, 449, + 450, 451, 452, 453, 454, 0, 455, 0, 457, 458, + 459, 460, 461, 0, 0, 462, 0, 0, 463, 464, + 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, + 475, 476, 477, 478, 479, 480, 481, 482, 483, 507, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 94, 95, 96, + 97, 98, 99, 100, 101, 0, 102, 103, 104, 0, + 0, 0, 0, 0, 0, 0, 105, 106, 0, 107, + 108, 109, 0, 111, 112, 113, 114, 115, 0, 117, + 118, 0, 119, 120, 121, 122, 123, 124, 0, 0, + 125, 126, 127, 128, 129, 0, 130, 131, 132, 133, + 134, 0, 0, 0, 136, 137, 138, 139, 140, 141, + 0, 143, 144, 145, 0, 146, 147, 148, 149, 150, + 151, 0, 0, 153, 154, 155, 0, 0, 0, 0, + 0, 0, 0, 161, 162, 163, 164, 165, 166, 167, + 168, 169, 170, 0, 171, 0, 172, 173, 174, 175, + 176, 177, 0, 178, 179, 180, 181, 182, 0, 0, + 183, 184, 185, 186, 187, 0, 188, 189, 190, 0, + 191, 192, 193, 0, 194, 195, 196, 197, 198, 199, + 200, 201, 202, 203, 204, 0, 205, 0, 206, 207, + 208, 209, 0, 210, 0, 211, 0, 0, 0, 214, + 215, 510, 0, 602, 0, 219, 0, 220, 221, 222, + 0, 223, 224, 225, 226, 227, 228, 229, 0, 231, + 232, 233, 234, 0, 235, 236, 237, 238, 239, 240, + 0, 241, 0, 243, 244, 245, 246, 247, 248, 249, + 250, 0, 251, 0, 252, 0, 0, 255, 0, 257, + 258, 259, 260, 261, 262, 0, 0, 263, 0, 265, + 0, 0, 267, 268, 603, 0, 0, 270, 271, 272, + 273, 274, 511, 276, 277, 278, 279, 280, 281, 282, + 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, + 293, 294, 0, 296, 297, 298, 299, 300, 0, 301, + 302, 0, 304, 0, 305, 306, 307, 308, 309, 310, + 0, 311, 312, 0, 0, 313, 314, 315, 0, 0, + 316, 317, 0, 319, 0, 321, 322, 323, 324, 325, + 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, + 335, 336, 337, 338, 339, 340, 0, 341, 342, 343, + 344, 345, 346, 0, 347, 348, 349, 350, 351, 352, + 353, 354, 0, 355, 356, 357, 358, 359, 360, 361, + 362, 363, 364, 365, 366, 367, 0, 368, 369, 0, + 371, 372, 373, 374, 375, 376, 377, 378, 604, 380, + 381, 382, 383, 384, 385, 0, 386, 387, 388, 389, + 605, 0, 392, 393, 394, 395, 396, 0, 398, 399, + 400, 401, 0, 402, 403, 404, 405, 406, 407, 408, + 409, 410, 411, 412, 413, 513, 415, 416, 417, 0, + 418, 419, 0, 420, 0, 422, 423, 424, 425, 426, + 0, 606, 428, 0, 0, 429, 430, 431, 432, 433, + 0, 434, 435, 436, 437, 438, 439, 440, 441, 0, + 0, 442, 443, 444, 445, 446, 0, 0, 448, 449, + 450, 451, 452, 453, 454, 0, 455, 0, 457, 458, + 459, 460, 461, 0, 0, 462, 0, 0, 463, 464, + 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, + 475, 476, 477, 478, 479, 480, 481, 482, 483, 507, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 94, 95, 96, + 97, 98, 99, 100, 101, 0, 102, 103, 104, 0, + 0, 0, 0, 0, 0, 0, 105, 106, 0, 107, + 108, 109, 0, 111, 112, 113, 114, 115, 0, 117, + 118, 0, 119, 120, 121, 122, 123, 124, 0, 0, + 125, 126, 127, 128, 129, 0, 130, 131, 132, 133, + 134, 0, 0, 0, 136, 137, 138, 139, 140, 141, + 0, 143, 144, 145, 0, 146, 147, 148, 149, 150, + 151, 0, 0, 153, 154, 155, 0, 0, 0, 0, + 0, 0, 0, 161, 162, 163, 164, 165, 166, 167, + 168, 169, 170, 0, 171, 0, 172, 173, 174, 175, + 176, 177, 0, 178, 179, 180, 181, 182, 0, 0, + 183, 184, 185, 186, 187, 0, 188, 189, 190, 0, + 191, 192, 193, 0, 194, 195, 196, 197, 198, 199, + 200, 201, 202, 203, 204, 0, 205, 0, 206, 207, + 208, 209, 0, 210, 0, 211, 0, 0, 0, 214, + 215, 510, 0, 218, 0, 219, 0, 220, 221, 222, + 0, 223, 224, 225, 226, 227, 678, 229, 0, 231, + 232, 233, 234, 0, 235, 236, 237, 238, 239, 240, + 0, 241, 0, 243, 244, 245, 246, 247, 248, 249, + 250, 0, 251, 0, 252, 0, 0, 255, 0, 257, + 258, 259, 260, 261, 262, 0, 0, 263, 0, 265, + 0, 0, 267, 268, 269, 0, 0, 270, 271, 272, + 273, 274, 511, 276, 277, 278, 279, 280, 281, 282, + 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, + 293, 294, 0, 296, 297, 298, 299, 300, 0, 301, + 302, 0, 304, 0, 305, 306, 307, 308, 309, 310, + 0, 311, 312, 0, 0, 313, 314, 315, 0, 0, + 316, 317, 0, 319, 0, 321, 322, 323, 324, 325, + 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, + 335, 336, 337, 338, 339, 340, 0, 341, 342, 343, + 344, 345, 346, 0, 347, 348, 349, 350, 351, 352, + 353, 354, 0, 355, 356, 357, 358, 359, 360, 361, + 362, 363, 364, 365, 366, 367, 0, 368, 369, 0, + 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, + 381, 382, 383, 384, 385, 0, 386, 387, 388, 389, + 390, 0, 392, 393, 394, 395, 396, 0, 398, 399, + 400, 401, 0, 402, 403, 404, 405, 406, 407, 408, + 409, 410, 411, 412, 413, 513, 415, 416, 417, 0, + 418, 419, 0, 420, 0, 422, 423, 424, 425, 426, + 0, 427, 428, 0, 0, 429, 430, 431, 432, 433, + 0, 434, 435, 436, 437, 438, 439, 440, 441, 0, + 0, 442, 443, 444, 445, 446, 0, 0, 448, 449, + 450, 451, 452, 453, 454, 0, 455, 0, 457, 458, + 459, 460, 461, 0, 0, 462, 0, 0, 463, 464, + 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, + 475, 476, 477, 478, 479, 480, 481, 482, 483, 507, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 94, 95, 96, + 97, 98, 99, 100, 101, 0, 102, 103, 104, 0, + 0, 0, 0, 0, 0, 0, 105, 106, 0, 107, + 108, 109, 0, 111, 112, 113, 114, 115, 0, 117, + 118, 0, 119, 120, 121, 122, 123, 124, 0, 0, + 125, 126, 127, 128, 129, 0, 130, 131, 132, 133, + 134, 0, 0, 0, 136, 137, 138, 139, 140, 141, + 0, 143, 144, 145, 0, 146, 147, 148, 149, 150, + 151, 0, 0, 153, 154, 155, 0, 0, 0, 0, + 0, 0, 0, 161, 162, 163, 164, 165, 166, 167, + 168, 169, 170, 0, 171, 0, 172, 173, 174, 175, + 176, 177, 0, 178, 179, 180, 181, 182, 0, 0, + 183, 184, 185, 186, 187, 0, 188, 189, 190, 0, + 191, 192, 193, 0, 194, 195, 196, 197, 198, 199, + 200, 201, 202, 203, 204, 0, 205, 0, 206, 207, + 208, 209, 0, 210, 0, 211, 0, 0, 0, 214, + 215, 510, 0, 218, 0, 219, 0, 220, 221, 222, + 0, 223, 224, 225, 226, 227, 774, 229, 0, 231, + 232, 233, 234, 0, 235, 236, 237, 238, 239, 240, + 0, 241, 0, 243, 244, 245, 246, 247, 248, 249, + 250, 0, 251, 0, 252, 0, 0, 255, 0, 257, + 258, 259, 260, 261, 262, 0, 0, 263, 0, 265, + 0, 0, 267, 268, 269, 0, 0, 270, 271, 272, + 273, 274, 511, 276, 277, 278, 279, 280, 281, 282, + 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, + 293, 294, 0, 296, 297, 298, 299, 300, 0, 301, + 302, 0, 304, 0, 305, 306, 307, 308, 309, 310, + 0, 311, 312, 0, 0, 313, 314, 315, 0, 0, + 316, 317, 0, 319, 0, 321, 322, 323, 324, 325, + 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, + 335, 336, 337, 338, 339, 340, 0, 341, 342, 343, + 344, 345, 346, 0, 347, 348, 349, 350, 351, 352, + 353, 354, 0, 355, 356, 357, 358, 359, 360, 361, + 362, 363, 364, 365, 366, 367, 0, 368, 369, 0, + 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, + 381, 382, 383, 384, 385, 0, 386, 387, 388, 389, + 390, 0, 392, 393, 394, 395, 396, 0, 398, 399, + 400, 401, 0, 402, 403, 404, 405, 406, 407, 408, + 409, 410, 411, 412, 413, 513, 415, 416, 417, 0, + 418, 419, 0, 420, 0, 422, 423, 424, 425, 426, + 0, 427, 428, 0, 0, 429, 430, 431, 432, 433, + 0, 434, 435, 436, 437, 438, 439, 440, 441, 0, + 0, 442, 443, 444, 445, 446, 0, 0, 448, 449, + 450, 451, 452, 453, 454, 0, 455, 0, 457, 458, + 459, 460, 461, 0, 0, 462, 0, 0, 463, 464, + 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, + 475, 476, 477, 478, 479, 480, 481, 482, 483, 507, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 94, 95, 96, + 97, 98, 99, 100, 101, 0, 102, 103, 104, 0, + 0, 0, 0, 0, 0, 0, 105, 106, 0, 107, + 108, 109, 0, 111, 112, 113, 114, 115, 0, 117, + 118, 0, 119, 120, 121, 122, 123, 124, 0, 0, + 125, 126, 127, 128, 129, 0, 130, 131, 132, 133, + 134, 0, 0, 0, 136, 137, 138, 139, 140, 141, + 0, 143, 144, 145, 0, 146, 147, 148, 149, 150, + 151, 0, 0, 153, 154, 155, 0, 0, 0, 0, + 0, 0, 0, 161, 162, 163, 164, 165, 166, 167, + 168, 169, 170, 0, 171, 0, 172, 173, 174, 175, + 176, 177, 0, 178, 179, 180, 181, 182, 0, 0, + 183, 184, 185, 186, 187, 0, 188, 189, 190, 0, + 191, 192, 193, 0, 194, 195, 196, 197, 198, 199, + 200, 201, 202, 203, 204, 0, 205, 0, 206, 207, + 208, 209, 0, 210, 0, 211, 0, 0, 0, 214, + 215, 510, 0, 218, 0, 219, 0, 220, 221, 222, + 0, 223, 224, 225, 226, 227, 228, 229, 0, 231, + 232, 233, 234, 0, 235, 236, 237, 238, 239, 240, + 0, 241, 0, 243, 244, 245, 246, 247, 248, 249, + 250, 0, 251, 0, 252, 0, 0, 255, 0, 257, + 258, 259, 260, 261, 262, 0, 0, 263, 0, 265, + 0, 0, 267, 268, 269, 0, 0, 270, 271, 272, + 273, 274, 511, 276, 277, 278, 279, 280, 281, 282, + 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, + 293, 294, 0, 296, 297, 298, 299, 300, 0, 301, + 302, 0, 304, 0, 305, 306, 307, 308, 309, 310, + 0, 311, 312, 0, 0, 313, 314, 315, 0, 0, + 316, 317, 0, 319, 0, 321, 322, 323, 324, 325, + 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, + 335, 336, 337, 338, 339, 340, 0, 341, 342, 343, + 344, 345, 346, 0, 347, 348, 349, 350, 351, 352, + 353, 354, 0, 355, 356, 357, 358, 359, 360, 361, + 362, 363, 364, 365, 366, 367, 0, 368, 369, 0, + 371, 372, 373, 374, 375, 376, 377, 378, 604, 380, + 381, 382, 383, 384, 385, 0, 386, 387, 388, 389, + 390, 0, 392, 393, 394, 395, 396, 0, 398, 399, + 400, 401, 0, 402, 403, 404, 405, 406, 407, 408, + 409, 410, 411, 412, 413, 513, 415, 416, 417, 0, + 418, 419, 0, 420, 0, 422, 423, 424, 425, 426, + 0, 606, 428, 0, 0, 429, 430, 431, 432, 433, + 0, 434, 435, 436, 437, 438, 439, 440, 441, 0, + 0, 442, 443, 444, 445, 446, 0, 0, 448, 449, + 450, 451, 452, 453, 454, 0, 455, 0, 457, 458, + 459, 460, 461, 0, 0, 462, 0, 0, 463, 464, + 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, + 475, 476, 477, 478, 479, 480, 481, 482, 483, 507, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 94, 95, 96, + 97, 98, 99, 100, 101, 0, 102, 103, 104, 0, + 0, 0, 0, 0, 1503, 0, 105, 106, 0, 107, + 108, 109, 0, 111, 112, 113, 114, 115, 0, 117, + 118, 0, 119, 120, 121, 122, 123, 124, 0, 0, + 125, 126, 127, 128, 129, 0, 130, 131, 132, 133, + 134, 0, 0, 0, 136, 137, 138, 139, 140, 141, + 0, 143, 144, 145, 0, 146, 147, 148, 149, 150, + 151, 0, 0, 153, 154, 155, 0, 0, 0, 0, + 0, 0, 0, 161, 162, 163, 164, 165, 166, 167, + 168, 169, 170, 0, 171, 0, 172, 173, 174, 175, + 176, 177, 0, 178, 179, 180, 181, 182, 0, 0, + 183, 184, 185, 186, 187, 0, 188, 189, 190, 0, + 191, 192, 193, 0, 194, 195, 196, 197, 198, 199, + 200, 201, 202, 203, 204, 0, 205, 0, 206, 207, + 208, 209, 0, 210, 0, 211, 0, 0, 0, 214, + 215, 510, 0, 218, 0, 219, 0, 220, 221, 222, + 0, 223, 224, 225, 226, 227, 228, 229, 0, 231, + 232, 233, 234, 0, 235, 236, 237, 238, 239, 240, + 0, 241, 0, 243, 244, 245, 246, 247, 248, 249, + 250, 0, 251, 0, 252, 0, 0, 255, 0, 257, + 258, 259, 260, 261, 262, 0, 0, 263, 0, 265, + 0, 0, 267, 268, 269, 0, 0, 270, 271, 272, + 273, 274, 511, 276, 277, 278, 279, 280, 281, 282, + 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, + 293, 294, 0, 296, 297, 298, 299, 300, 0, 301, + 302, 0, 304, 0, 305, 306, 307, 308, 309, 310, + 0, 311, 312, 0, 0, 313, 314, 315, 0, 0, + 316, 317, 0, 319, 0, 321, 322, 323, 324, 325, + 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, + 335, 336, 337, 338, 339, 340, 0, 341, 342, 343, + 344, 345, 346, 0, 347, 348, 349, 350, 351, 352, + 353, 354, 0, 355, 356, 357, 358, 359, 360, 361, + 362, 363, 364, 365, 366, 367, 0, 368, 369, 0, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, - 381, 382, 383, 384, 385, -1, 387, 388, 389, 390, - 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, - 401, 402, -1, 404, 405, -1, 407, 408, 409, 410, - 411, 412, 413, -1, 415, 416, -1, -1, 419, 420, - 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, - 431, 432, -1, -1, 435, 436, 437, 438, 439, 440, - -1, 442, 443, 444, 445, 446, 447, 448, -1, 450, - 451, 452, 453, 454, 455, 456, -1, -1, 459, -1, - -1, 462, 463, 464, 465, 466, 467, 468, 469, 470, - 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, - 481, 482, -1, -1, 8, -1, -1, 11, -1, 490, - 491, 15, 16, 17, 18, 19, 20, 8, -1, -1, - 11, -1, -1, -1, 15, 16, 17, 18, 19, 20, - -1, 35, -1, -1, -1, 39, -1, -1, -1, 43, - -1, -1, -1, -1, 35, -1, 50, -1, -1, -1, - -1, -1, 43, 8, -1, -1, 11, -1, -1, 50, - 15, 16, 17, 18, 19, 20, 8, -1, -1, 11, - -1, 75, -1, 15, 16, 17, 18, 19, 20, -1, - 35, -1, -1, -1, 75, -1, -1, -1, 43, -1, - -1, -1, -1, 35, -1, 50, 38, -1, -1, -1, - -1, 43, 8, -1, -1, 11, -1, -1, 50, 15, - 16, 17, 18, 19, 20, -1, -1, -1, -1, -1, - 75, -1, 126, -1, -1, -1, -1, -1, -1, 35, - -1, -1, -1, 75, -1, -1, -1, 43, -1, -1, - -1, -1, -1, -1, 50, -1, -1, 8, -1, -1, - 11, -1, -1, -1, 15, 16, 17, 18, 19, 20, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 75, - -1, -1, 176, -1, 35, 166, -1, 38, -1, -1, - 171, -1, 43, -1, -1, 176, -1, -1, 192, 50, - -1, -1, -1, 197, -1, -1, -1, -1, -1, -1, - -1, 192, -1, -1, -1, -1, 197, -1, -1, -1, - 165, -1, -1, -1, 75, 219, 220, -1, -1, -1, - -1, 176, -1, -1, -1, -1, -1, -1, 219, 220, - 234, -1, -1, -1, 176, -1, -1, 192, -1, -1, - -1, -1, 197, 234, -1, -1, -1, -1, -1, -1, - 192, -1, -1, -1, -1, 197, -1, -1, -1, -1, - -1, -1, -1, -1, 219, 220, -1, -1, 272, -1, - 176, 275, -1, -1, -1, -1, -1, 219, 220, 234, - -1, 272, -1, -1, 275, 289, 192, -1, 292, -1, - -1, 197, 234, -1, -1, -1, -1, -1, 289, -1, - -1, 292, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 219, 220, 176, -1, 272, -1, -1, - 275, -1, -1, -1, -1, -1, -1, -1, 234, -1, - 272, 192, -1, 275, 289, -1, 197, 292, -1, -1, + 381, 382, 383, 384, 385, 0, 386, 387, 388, 389, + 390, 0, 0, 393, 394, 395, 396, 0, 398, 399, + 400, 401, 0, 402, 403, 404, 405, 406, 407, 408, + 409, 410, 411, 412, 413, 513, 415, 416, 417, 0, + 418, 419, 0, 420, 0, 422, 423, 424, 425, 426, + 0, 427, 428, 0, 0, 429, 430, 431, 432, 433, + 0, 434, 435, 436, 437, 438, 439, 440, 441, 0, + 0, 442, 443, 444, 445, 446, 0, 0, 448, 449, + 450, 451, 452, 453, 454, 0, 455, 0, 457, 458, + 459, 460, 461, 0, 0, 462, 0, 0, 463, 464, + 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, + 475, 476, 477, 478, 479, 480, 481, 482, 483, 507, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 94, 95, 96, + 97, 98, 99, 100, 101, 0, 102, 103, 104, 0, + 0, 0, 0, 0, 0, 0, 105, 106, 0, 107, + 108, 109, 0, 111, 112, 113, 114, 115, 0, 117, + 118, 0, 119, 120, 121, 122, 123, 124, 0, 0, + 125, 126, 127, 128, 129, 0, 130, 131, 132, 133, + 134, 0, 0, 0, 136, 137, 138, 139, 140, 141, + 0, 143, 144, 145, 0, 146, 147, 148, 149, 150, + 151, 0, 0, 153, 154, 155, 0, 0, 0, 0, + 0, 0, 0, 161, 162, 163, 164, 165, 166, 167, + 168, 169, 170, 0, 171, 0, 172, 173, 174, 175, + 176, 177, 0, 178, 179, 180, 181, 182, 0, 0, + 183, 184, 185, 186, 187, 0, 188, 189, 190, 0, + 191, 192, 193, 0, 194, 195, 196, 197, 198, 199, + 200, 201, 202, 203, 204, 0, 205, 0, 206, 207, + 208, 209, 0, 210, 0, 211, 0, 0, 0, 214, + 215, 510, 0, 218, 0, 219, 0, 220, 221, 222, + 0, 223, 224, 225, 226, 227, 1601, 229, 0, 231, + 232, 233, 234, 0, 235, 236, 237, 238, 239, 240, + 0, 241, 0, 243, 244, 245, 246, 247, 248, 249, + 250, 0, 251, 0, 252, 0, 0, 255, 0, 257, + 258, 259, 260, 261, 262, 0, 0, 263, 0, 265, + 0, 0, 267, 268, 269, 0, 0, 270, 271, 272, + 273, 274, 511, 276, 277, 278, 279, 280, 281, 282, + 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, + 293, 294, 0, 296, 297, 298, 299, 300, 0, 301, + 302, 0, 304, 0, 305, 306, 307, 308, 309, 310, + 0, 311, 312, 0, 0, 313, 314, 315, 0, 0, + 316, 317, 0, 319, 0, 321, 322, 323, 324, 325, + 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, + 335, 336, 337, 338, 339, 340, 0, 341, 342, 343, + 344, 345, 346, 0, 347, 348, 349, 350, 351, 352, + 353, 354, 0, 355, 356, 357, 358, 359, 360, 361, + 362, 363, 364, 365, 366, 367, 0, 368, 369, 0, + 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, + 381, 382, 383, 384, 385, 0, 386, 387, 388, 389, + 390, 0, 392, 393, 394, 395, 396, 0, 398, 399, + 400, 401, 0, 402, 403, 404, 405, 406, 407, 408, + 409, 410, 411, 412, 413, 513, 415, 416, 417, 0, + 418, 419, 0, 420, 0, 422, 423, 424, 425, 426, + 0, 427, 428, 0, 0, 429, 430, 431, 432, 433, + 0, 434, 435, 436, 437, 438, 439, 440, 441, 0, + 0, 442, 443, 444, 445, 446, 0, 0, 448, 449, + 450, 451, 452, 453, 454, 0, 455, 0, 457, 458, + 459, 460, 461, 0, 0, 462, 0, 0, 463, 464, + 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, + 475, 476, 477, 478, 479, 480, 481, 482, 483, 507, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 94, 95, 96, + 97, 98, 99, 100, 101, 0, 102, 103, 104, 0, + 0, 0, 0, 0, 0, 0, 105, 106, 0, 107, + 108, 109, 0, 111, 112, 113, 114, 115, 0, 117, + 118, 0, 119, 120, 121, 122, 123, 124, 0, 0, + 125, 126, 127, 128, 129, 0, 130, 131, 132, 133, + 134, 0, 0, 0, 136, 137, 138, 139, 140, 141, + 0, 143, 144, 145, 0, 146, 147, 148, 149, 150, + 151, 0, 0, 153, 154, 155, 0, 0, 0, 0, + 0, 0, 0, 161, 162, 163, 164, 165, 166, 167, + 168, 169, 170, 0, 171, 0, 172, 173, 174, 175, + 176, 177, 0, 178, 179, 180, 181, 182, 0, 0, + 183, 184, 185, 186, 187, 0, 188, 189, 190, 0, + 191, 192, 193, 0, 194, 195, 196, 197, 198, 199, + 200, 201, 202, 203, 204, 0, 205, 0, 206, 207, + 208, 209, 0, 210, 0, 211, 0, 0, 0, 214, + 215, 510, 0, 218, 0, 219, 0, 220, 221, 222, + 0, 223, 224, 225, 226, 227, 1885, 229, 0, 231, + 232, 233, 234, 0, 235, 236, 237, 238, 239, 240, + 0, 241, 0, 243, 244, 245, 246, 247, 248, 249, + 250, 0, 251, 0, 252, 0, 0, 255, 0, 257, + 258, 259, 260, 261, 262, 0, 0, 263, 0, 265, + 0, 0, 267, 268, 269, 0, 0, 270, 271, 272, + 273, 274, 511, 276, 277, 278, 279, 280, 281, 282, + 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, + 293, 294, 0, 296, 297, 298, 299, 300, 0, 301, + 302, 0, 304, 0, 305, 306, 307, 308, 309, 310, + 0, 311, 312, 0, 0, 313, 314, 315, 0, 0, + 316, 317, 0, 319, 0, 321, 322, 323, 324, 325, + 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, + 335, 336, 337, 338, 339, 340, 0, 341, 342, 343, + 344, 345, 346, 0, 347, 348, 349, 350, 351, 352, + 353, 354, 0, 355, 356, 357, 358, 359, 360, 361, + 362, 363, 364, 365, 366, 367, 0, 368, 369, 0, + 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, + 381, 382, 383, 384, 385, 0, 386, 387, 388, 389, + 390, 0, 392, 393, 394, 395, 396, 0, 398, 399, + 400, 401, 0, 402, 403, 404, 405, 406, 407, 408, + 409, 410, 411, 412, 413, 513, 415, 416, 417, 0, + 418, 419, 0, 420, 0, 422, 423, 424, 425, 426, + 0, 427, 428, 0, 0, 429, 430, 431, 432, 433, + 0, 434, 435, 436, 437, 438, 439, 440, 441, 0, + 0, 442, 443, 444, 445, 446, 0, 0, 448, 449, + 450, 451, 452, 453, 454, 0, 455, 0, 457, 458, + 459, 460, 461, 0, 0, 462, 0, 0, 463, 464, + 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, + 475, 476, 477, 478, 479, 480, 481, 482, 483, 507, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 94, 95, 96, + 97, 98, 99, 100, 101, 0, 102, 103, 104, 0, + 0, 0, 0, 0, 0, 0, 105, 106, 0, 107, + 108, 109, 0, 111, 112, 113, 114, 115, 0, 117, + 118, 0, 119, 120, 121, 122, 123, 124, 0, 0, + 125, 126, 127, 128, 129, 0, 130, 131, 132, 133, + 134, 0, 0, 0, 136, 137, 138, 139, 140, 141, + 0, 143, 144, 145, 0, 146, 147, 148, 149, 150, + 151, 0, 0, 153, 154, 155, 0, 0, 0, 0, + 0, 0, 0, 161, 162, 163, 164, 165, 166, 167, + 168, 169, 170, 0, 171, 0, 172, 173, 174, 175, + 176, 177, 0, 178, 179, 180, 181, 182, 0, 0, + 183, 184, 185, 186, 187, 0, 188, 189, 190, 0, + 191, 192, 193, 0, 194, 195, 196, 197, 198, 199, + 200, 201, 202, 203, 204, 0, 205, 0, 206, 207, + 208, 209, 0, 210, 0, 211, 0, 0, 0, 214, + 215, 510, 0, 218, 0, 219, 0, 220, 221, 222, + 0, 223, 224, 225, 226, 227, 1900, 229, 0, 231, + 232, 233, 234, 0, 235, 236, 237, 238, 239, 240, + 0, 241, 0, 243, 244, 245, 246, 247, 248, 249, + 250, 0, 251, 0, 252, 0, 0, 255, 0, 257, + 258, 259, 260, 261, 262, 0, 0, 263, 0, 265, + 0, 0, 267, 268, 269, 0, 0, 270, 271, 272, + 273, 274, 511, 276, 277, 278, 279, 280, 281, 282, + 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, + 293, 294, 0, 296, 297, 298, 299, 300, 0, 301, + 302, 0, 304, 0, 305, 306, 307, 308, 309, 310, + 0, 311, 312, 0, 0, 313, 314, 315, 0, 0, + 316, 317, 0, 319, 0, 321, 322, 323, 324, 325, + 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, + 335, 336, 337, 338, 339, 340, 0, 341, 342, 343, + 344, 345, 346, 0, 347, 348, 349, 350, 351, 352, + 353, 354, 0, 355, 356, 357, 358, 359, 360, 361, + 362, 363, 364, 365, 366, 367, 0, 368, 369, 0, + 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, + 381, 382, 383, 384, 385, 0, 386, 387, 388, 389, + 390, 0, 392, 393, 394, 395, 396, 0, 398, 399, + 400, 401, 0, 402, 403, 404, 405, 406, 407, 408, + 409, 410, 411, 412, 413, 513, 415, 416, 417, 0, + 418, 419, 0, 420, 0, 422, 423, 424, 425, 426, + 0, 427, 428, 0, 0, 429, 430, 431, 432, 433, + 0, 434, 435, 436, 437, 438, 439, 440, 441, 0, + 0, 442, 443, 444, 445, 446, 0, 0, 448, 449, + 450, 451, 452, 453, 454, 0, 455, 0, 457, 458, + 459, 460, 461, 0, 0, 462, 0, 0, 463, 464, + 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, + 475, 476, 477, 478, 479, 480, 481, 482, 483, 2506, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 94, 95, 96, + 97, 98, 99, 100, 101, 0, 102, 103, 104, 0, + 0, 0, 0, 0, 0, 0, 105, 106, 0, 107, + 108, 109, 2507, 111, 112, 113, 0, 701, 2508, 703, + 704, 0, 119, 120, 121, 122, 123, 124, 0, 0, + 125, 126, 705, 706, 129, 0, 130, 131, 132, 133, + 0, 0, 2509, 0, 136, 137, 138, 139, 140, 141, + 2510, 143, 144, 145, 0, 146, 147, 148, 149, 150, + 151, 0, 2511, 153, 154, 155, 2512, 2513, 2514, 2515, + 0, 0, 2516, 161, 162, 163, 164, 165, 166, 167, + 715, 716, 170, 0, 171, 0, 172, 173, 174, 175, + 176, 177, 0, 178, 179, 180, 181, 182, 0, 0, + 183, 184, 717, 186, 187, 0, 188, 189, 190, 0, + 191, 192, 193, 0, 194, 195, 196, 197, 0, 199, + 200, 201, 202, 203, 0, 0, 205, 0, 206, 207, + 718, 209, 0, 210, 0, 211, 2517, 0, 2518, 214, + 215, 2519, 2520, 218, 0, 219, 0, 0, 0, 222, + 0, 223, 224, 225, 226, 227, 228, 229, 2521, 231, + 232, 233, 234, 0, 235, 236, 237, 238, 239, 240, + 0, 241, 2522, 0, 244, 245, 246, 247, 248, 725, + 726, 0, 727, 0, 252, 2523, 2524, 255, 2525, 257, + 258, 259, 260, 261, 262, 0, 0, 263, 2526, 265, + 2527, 0, 267, 268, 269, 0, 0, 270, 271, 272, + 273, 274, 2721, 276, 277, 278, 279, 280, 281, 282, + 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, + 293, 734, 2529, 736, 297, 298, 299, 0, 0, 301, + 302, 2531, 304, 0, 0, 306, 738, 308, 309, 310, + 0, 311, 312, 0, 0, 313, 314, 315, 0, 0, + 316, 0, 2533, 319, 2534, 0, 322, 323, 324, 325, + 326, 327, 328, 329, 330, 331, 0, 332, 333, 0, + 335, 336, 0, 338, 339, 340, 0, 341, 342, 343, + 344, 345, 346, 0, 347, 348, 349, 741, 351, 352, + 353, 354, 0, 355, 356, 357, 358, 359, 360, 361, + 362, 363, 364, 365, 366, 367, 0, 368, 369, 2535, + 371, 372, 373, 0, 375, 376, 377, 378, 379, 380, + 381, 382, 383, 384, 385, 0, 386, 387, 388, 389, + 390, 2536, 392, 0, 394, 395, 396, 2538, 398, 399, + 747, 401, 0, 402, 403, 404, 405, 406, 407, 408, + 409, 410, 411, 412, 413, 2722, 415, 0, 417, 0, + 418, 419, 0, 420, 2540, 422, 423, 424, 425, 426, + 0, 750, 751, 0, 0, 429, 430, 0, 432, 0, + 0, 434, 435, 2541, 437, 438, 439, 440, 441, 0, + 0, 442, 443, 444, 445, 446, 2542, 0, 448, 449, + 450, 451, 452, 0, 754, 0, 455, 2543, 457, 458, + 459, 460, 461, 0, 0, 462, 0, 0, 463, 464, + 465, 466, 467, 468, 699, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 480, 481, 482, 483, 0, + 0, 0, 94, 95, 96, 97, 98, 99, 100, 101, + 0, 102, 103, 104, 0, 0, 0, 0, 0, 0, + 0, 105, 106, 0, 107, 108, 109, 700, 111, 112, + 113, 0, 701, 702, 703, 704, 0, 119, 120, 121, + 122, 123, 124, 0, 0, 125, 126, 705, 706, 129, + 0, 130, 131, 132, 133, 0, 0, 707, 0, 136, + 137, 138, 139, 140, 141, 708, 143, 144, 145, 0, + 146, 147, 148, 149, 150, 151, 0, 709, 153, 154, + 155, 710, 711, 712, 713, 0, 0, 714, 161, 162, + 163, 164, 165, 166, 167, 715, 716, 170, 0, 171, + 0, 172, 173, 174, 175, 176, 177, 0, 178, 179, + 180, 181, 182, 0, 0, 183, 184, 717, 186, 187, + 0, 188, 189, 190, 0, 191, 192, 193, 0, 194, + 195, 196, 197, 0, 199, 200, 201, 202, 203, 0, + 0, 205, 0, 206, 207, 718, 209, 0, 210, 0, + 211, 719, 0, 720, 214, 215, 0, 721, 218, 0, + 219, 0, 0, 0, 222, 0, 223, 224, 225, 226, + 227, 228, 229, 723, 231, 232, 233, 234, 0, 235, + 236, 237, 238, 239, 240, 0, 241, 724, 0, 244, + 245, 246, 247, 248, 725, 726, 0, 727, 0, 252, + 728, 729, 255, 730, 257, 258, 259, 260, 261, 262, + 0, 0, 263, 731, 265, 732, 0, 267, 268, 269, + 0, 0, 270, 271, 272, 273, 274, 0, 276, 277, + 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, + 288, 289, 290, 291, 292, 293, 734, 735, 736, 297, + 298, 299, 0, 0, 301, 302, 737, 304, 0, 0, + 306, 738, 308, 309, 310, 0, 311, 312, 0, 0, + 313, 314, 315, 0, 0, 316, 0, 739, 319, 740, + 0, 322, 323, 324, 325, 326, 327, 328, 329, 330, + 331, 0, 332, 333, 0, 335, 336, 0, 338, 339, + 340, 0, 341, 342, 343, 344, 345, 346, 0, 347, + 348, 349, 741, 351, 352, 353, 354, 0, 355, 356, + 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, + 367, 0, 368, 369, 742, 371, 372, 373, 0, 375, + 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, + 0, 386, 387, 388, 389, 390, 744, 392, 0, 394, + 395, 396, 746, 398, 399, 747, 401, 0, 402, 403, + 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, + 0, 415, 0, 417, 0, 418, 419, 0, 420, 749, + 422, 423, 424, 425, 426, 0, 750, 751, 0, 0, + 429, 430, 0, 432, 0, 0, 434, 435, 752, 437, + 438, 439, 440, 441, 0, 0, 442, 443, 444, 445, + 446, 753, 0, 448, 449, 450, 451, 452, 0, 754, + 0, 455, 755, 457, 458, 459, 460, 461, 0, 0, + 462, 0, 0, 463, 464, 465, 466, 467, 468, 507, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 480, 481, 482, 483, 0, 0, 0, 94, 95, 96, + 97, 98, 99, 100, 101, 0, 102, 103, 104, 0, + 0, 0, 0, 0, 0, 0, 105, 106, 0, 107, + 108, 109, 0, 111, 112, 113, 114, 115, 0, 117, + 118, 0, 119, 120, 121, 122, 123, 124, 0, 0, + 125, 126, 127, 128, 129, 0, 130, 131, 132, 133, + 134, 0, 0, 0, 136, 137, 138, 139, 140, 141, + 0, 143, 144, 145, 0, 146, 147, 148, 149, 150, + 151, 0, 0, 153, 154, 155, 0, 0, 0, 0, + 0, 0, 0, 161, 162, 163, 164, 165, 166, 167, + 168, 169, 170, 0, 171, 0, 172, 173, 174, 175, + 176, 177, 0, 178, 179, 180, 181, 182, 0, 0, + 183, 184, 185, 186, 187, 0, 188, 189, 190, 0, + 191, 192, 193, 0, 194, 195, 196, 197, 198, 199, + 200, 201, 202, 203, 204, 0, 205, 0, 206, 207, + 208, 209, 0, 210, 0, 211, 0, 0, 0, 214, + 215, 510, 0, 218, 0, 219, 0, 220, 221, 222, + 0, 223, 224, 225, 226, 227, 228, 229, 0, 231, + 232, 233, 234, 0, 235, 236, 237, 238, 239, 240, + 0, 241, 0, 243, 244, 245, 246, 247, 248, 249, + 250, 0, 251, 0, 252, 0, 0, 255, 0, 257, + 258, 259, 260, 261, 262, 0, 0, 263, 0, 265, + 0, 0, 267, 268, 269, 0, 0, 270, 271, 272, + 273, 274, 511, 276, 277, 278, 279, 280, 281, 282, + 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, + 293, 294, 0, 296, 297, 298, 299, 300, 0, 301, + 302, 0, 304, 0, 305, 306, 307, 308, 309, 310, + 0, 311, 312, 0, 0, 313, 314, 315, 0, 0, + 316, 317, 0, 319, 0, 321, 322, 323, 324, 325, + 326, 327, 0, 329, 330, 331, 0, 332, 333, 334, + 335, 336, 337, 338, 339, 340, 0, 341, 342, 343, + 344, 345, 346, 0, 347, 0, 349, 350, 351, 352, + 353, 354, 0, 355, 356, 357, 358, 359, 360, 361, + 362, 363, 364, 365, 366, 367, 0, 368, 369, 0, + 371, 372, 373, 374, 0, 376, 377, 378, 379, 380, + 381, 382, 383, 384, 385, 0, 386, 387, 388, 389, + 390, 0, 392, 393, 394, 395, 396, 0, 398, 399, + 400, 401, 0, 402, 403, 404, 405, 406, 407, 408, + 409, 410, 411, 412, 413, 513, 415, 416, 417, 0, + 418, 419, 0, 420, 0, 422, 423, 424, 425, 426, + 0, 427, 428, 0, 0, 429, 430, 431, 432, 433, + 0, 434, 435, 436, 437, 438, 439, 440, 441, 0, + 0, 442, 443, 444, 445, 446, 0, 0, 448, 449, + 450, 451, 452, 453, 454, 0, 455, 0, 457, 458, + 459, 460, 461, 0, 0, 462, 0, 0, 463, 464, + 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, + 475, 476, 477, 478, 479, 480, 481, 482, 483, 1, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 2, + 2, 3, 4, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 5, 5, 0, + 0, 0, 0, 0, 0, 0, 6, 6, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, + 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 9, 9, 10, 10, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 11, 11, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 12, 12, 0, 0, 0, + 0, 0, 0, 0, 0, 13, 13, 0, 0, 0, + 0, 14, 14, 0, 0, 0, 0, 0, 0, 15, + 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 18, 18, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, + 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 21, 21, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 22, 22, 0, 23, 23, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 24, 24, 0, 0, 0, 0, + 0, 0, 0, 25, 25, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 26, 26, 0, + 0, 0, 0, 0, 27, 27, 0, 0, 28, 28, + 0, 0, 0, 0, 0, 0, 0, 0, 29, 29, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 30, 30, 0, 0, 31, 31, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 32, 32, 0, 0, 0, 33, 33, 0, 0, 545, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 34, + 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 35, 35, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 546, 36 +}; + +static const yytype_int16 yycheck[] = +{ + 6, 36, 672, 657, 502, 0, 6, 952, 0, 664, + 0, 0, 6, 0, 0, 46, 1074, 640, 873, 1015, + 546, 677, 623, 0, 745, 776, 1048, 778, 1427, 873, + 1073, 1461, 618, 0, 1464, 1249, 0, 751, 30, 16, + 1352, 955, 540, 16, 1819, 666, 1834, 1121, 1053, 1837, + 1896, 48, 31, 1777, 657, 1042, 659, 971, 661, 545, + 541, 538, 54, 546, 0, 48, 1050, 2241, 2241, 1254, + 984, 1815, 1381, 1382, 2146, 881, 1892, 2285, 2269, 2267, + 0, 1712, 1713, 1876, 21, 0, 1717, 0, 0, 0, + 0, 0, 0, 0, 1078, 0, 35, 0, 0, 0, + 0, 0, 2278, 0, 2098, 560, 1955, 60, 0, 5, + 0, 90, 0, 11, 0, 0, 9, 15, 1940, 1941, + 1942, 5, 637, 1867, 705, 706, 5, 5, 5, 1760, + 1761, 5, 0, 52, 13, 14, 637, 1435, 1578, 13, + 14, 5, 5, 1480, 5, 5, 9, 9, 992, 75, + 0, 1220, 1968, 13, 14, 736, 1482, 2148, 5, 5, + 122, 117, 1029, 2154, 171, 119, 42, 13, 14, 60, + 42, 122, 2571, 1953, 69, 147, 109, 5, 139, 172, + 5, 782, 5, 5, 9, 13, 14, 5, 873, 5, + 13, 14, 5, 5, 5, 880, 5, 1815, 5, 20, + 21, 13, 14, 5, 13, 14, 13, 14, 5, 2661, + 5, 13, 14, 5, 5, 189, 2032, 2033, 1062, 5, + 5, 1065, 1066, 77, 5, 60, 940, 95, 13, 14, + 2585, 29, 13, 14, 88, 29, 3, 124, 36, 2725, + 13, 14, 36, 215, 2196, 95, 60, 29, 210, 1867, + 2575, 287, 171, 2481, 36, 5, 5, 5, 5, 5, + 2153, 85, 285, 2588, 1347, 273, 33, 34, 293, 293, + 1347, 119, 309, 168, 191, 2549, 4, 171, 108, 1347, + 1086, 9, 967, 70, 38, 11, 3, 4, 5, 15, + 2821, 1097, 9, 77, 161, 11, 39, 117, 2757, 15, + 2085, 109, 378, 132, 88, 129, 163, 992, 163, 994, + 995, 117, 357, 1242, 244, 2211, 165, 43, 161, 900, + 901, 293, 2854, 11, 29, 405, 396, 43, 4, 2057, + 38, 2055, 497, 9, 2406, 463, 501, 441, 2410, 2161, + 1061, 2793, 497, 120, 300, 926, 501, 873, 11, 75, + 951, 441, 15, 419, 880, 224, 29, 485, 2086, 75, + 440, 13, 14, 2537, 2210, 13, 14, 122, 235, 189, + 956, 499, 11, 228, 1811, 1812, 15, 1062, 999, 110, + 1065, 1066, 137, 126, 538, 455, 2174, 75, 132, 2580, + 876, 2207, 235, 2209, 2582, 499, 349, 2293, 464, 985, + 117, 270, 2146, 170, 2395, 172, 61, 2398, 1337, 499, + 417, 1356, 269, 369, 69, 159, 193, 284, 2743, 287, + 250, 175, 2954, 499, 211, 320, 1012, 132, 258, 277, + 347, 439, 2063, 2064, 2065, 2066, 2067, 287, 1039, 2070, + 2071, 2072, 2073, 2074, 2075, 2076, 2077, 2078, 2079, 2723, + 406, 2850, 272, 282, 499, 2986, 2684, 494, 349, 132, + 11, 433, 270, 499, 15, 1777, 315, 175, 994, 995, + 110, 277, 23, 406, 0, 2703, 499, 439, 503, 503, + 304, 488, 350, 34, 35, 2265, 1508, 1354, 439, 443, + 1564, 447, 2123, 2124, 501, 2311, 457, 2449, 2853, 216, + 350, 2394, 494, 1126, 1841, 461, 499, 437, 499, 2995, + 379, 546, 1821, 11, 349, 2967, 1842, 15, 166, 1588, + 3052, 238, 1037, 417, 1836, 499, 2144, 403, 2146, 485, + 1970, 403, 538, 277, 1592, 349, 1037, 88, 282, 434, + 546, 2326, 1625, 499, 502, 43, 393, 394, 1625, 1626, + 503, 2725, 2725, 1008, 441, 60, 1624, 272, 2734, 1229, + 3019, 1246, 277, 417, 319, 1220, 450, 463, 545, 499, + 439, 497, 1257, 546, 1259, 501, 2648, 75, 503, 1264, + 499, 2653, 1880, 238, 2656, 1659, 463, 411, 386, 485, + 2921, 745, 386, 461, 600, 601, 1281, 495, 66, 67, + 2955, 1468, 120, 499, 386, 498, 2452, 1347, 485, 640, + 2459, 461, 503, 328, 451, 499, 613, 623, 2612, 497, + 499, 499, 499, 501, 1430, 499, 1311, 1312, 490, 491, + 613, 2956, 500, 417, 502, 499, 499, 632, 499, 499, + 632, 1242, 632, 632, 581, 632, 632, 25, 621, 2640, + 500, 2859, 502, 499, 2447, 632, 662, 663, 664, 1344, + 1345, 2852, 2406, 1348, 1349, 632, 2410, 1322, 632, 1250, + 1251, 499, 493, 652, 499, 193, 499, 499, 344, 172, + 424, 499, 2858, 499, 451, 624, 499, 499, 499, 503, + 499, 435, 499, 1537, 276, 499, 632, 499, 2135, 2136, + 2137, 2138, 499, 1547, 499, 3036, 1550, 499, 499, 2433, + 13, 14, 632, 499, 499, 1336, 2788, 632, 499, 632, + 632, 632, 632, 632, 632, 632, 499, 632, 882, 632, + 632, 632, 632, 632, 1335, 632, 1337, 1733, 1393, 745, + 632, 1342, 632, 2055, 632, 1222, 632, 632, 2570, 499, + 499, 499, 499, 499, 1355, 1376, 1377, 2573, 579, 137, + 581, 582, 490, 491, 2952, 270, 492, 493, 494, 495, + 2961, 1248, 177, 490, 491, 329, 782, 1378, 1433, 495, + 1306, 500, 1368, 604, 503, 461, 149, 200, 2406, 1644, + 256, 257, 2410, 1599, 1479, 1480, 96, 2106, 1296, 1297, + 1644, 383, 2639, 1424, 358, 1303, 244, 132, 244, 485, + 1995, 1432, 305, 1434, 490, 491, 2001, 1294, 1299, 1305, + 348, 2995, 2995, 1306, 1738, 3013, 488, 490, 491, 492, + 493, 494, 495, 238, 538, 198, 1823, 499, 992, 2676, + 2686, 25, 151, 2474, 349, 1712, 1713, 31, 376, 119, + 1717, 494, 1537, 492, 493, 494, 495, 1608, 501, 1804, + 251, 1919, 1547, 69, 244, 1550, 77, 873, 488, 1943, + 1525, 376, 172, 3055, 880, 881, 882, 88, 1629, 1533, + 1631, 501, 309, 1634, 11, 1625, 1626, 1627, 244, 382, + 3081, 461, 898, 1760, 1761, 173, 463, 716, 1396, 876, + 366, 367, 2486, 1506, 2648, 2119, 206, 1061, 1385, 2653, + 2494, 117, 2656, 291, 3096, 485, 43, 952, 485, 738, + 2757, 927, 222, 422, 362, 1581, 362, 406, 463, 2241, + 1533, 358, 232, 1588, 204, 1620, 1621, 1560, 1561, 1562, + 453, 947, 948, 949, 1928, 951, 952, 272, 75, 1552, + 485, 770, 500, 137, 1557, 503, 24, 282, 244, 1644, + 29, 512, 30, 1877, 499, 365, 266, 245, 346, 975, + 348, 25, 1657, 8, 1979, 2606, 11, 31, 499, 1984, + 15, 2827, 362, 18, 19, 20, 54, 287, 994, 995, + 334, 542, 490, 491, 492, 493, 494, 495, 376, 437, + 270, 437, 272, 8, 1605, 410, 362, 412, 151, 132, + 15, 80, 5, 18, 19, 20, 300, 334, 1024, 200, + 89, 2639, 1028, 1029, 32, 1022, 1023, 494, 1025, 410, + 2648, 412, 437, 1039, 501, 2653, 159, 1514, 2656, 1022, + 1023, 745, 1025, 77, 2788, 1543, 50, 2884, 56, 118, + 1548, 244, 873, 353, 88, 1061, 334, 437, 2676, 880, + 369, 499, 406, 499, 1043, 2405, 272, 494, 1222, 13, + 14, 277, 4, 624, 172, 2415, 362, 9, 2418, 5, + 1086, 437, 8, 137, 500, 369, 2923, 503, 14, 406, + 499, 1097, 370, 912, 1248, 1249, 1649, 406, 1077, 25, + 1653, 4, 1655, 29, 221, 4, 9, 291, 206, 453, + 9, 930, 4, 500, 320, 1121, 503, 9, 1644, 499, + 189, 2433, 406, 500, 222, 1726, 503, 25, 406, 2760, + 336, 1657, 201, 31, 232, 1820, 453, 958, 447, 2757, + 1294, 441, 1619, 499, 13, 14, 967, 2922, 1899, 272, + 1901, 437, 461, 2098, 277, 1840, 1841, 2371, 342, 282, + 981, 482, 346, 447, 1765, 410, 2224, 412, 2023, 362, + 2788, 992, 176, 994, 995, 453, 485, 461, 882, 25, + 2223, 362, 3019, 501, 1661, 31, 2208, 287, 192, 370, + 499, 482, 376, 197, 1817, 492, 2063, 2064, 2065, 2066, + 2067, 485, 170, 2070, 2071, 2072, 2073, 2074, 2075, 2076, + 2077, 2078, 2079, 499, 1220, 499, 1222, 2222, 500, 2224, + 2263, 503, 13, 14, 1219, 406, 369, 3073, 434, 1219, + 234, 1385, 1219, 1219, 503, 441, 1242, 291, 1725, 137, + 1727, 1728, 1248, 1249, 437, 3020, 13, 14, 500, 3037, + 3038, 503, 499, 161, 289, 353, 2123, 2124, 166, 25, + 444, 13, 14, 406, 3039, 31, 2884, 0, 497, 497, + 499, 499, 453, 501, 602, 603, 500, 605, 2192, 503, + 410, 500, 412, 16, 289, 1999, 2000, 500, 1294, 499, + 503, 137, 346, 1963, 56, 369, 500, 30, 500, 503, + 1306, 424, 3090, 36, 447, 2923, 499, 25, 461, 482, + 463, 1996, 435, 31, 161, 48, 1322, 221, 461, 166, + 3095, 54, 376, 392, 224, 152, 395, 235, 1305, 1335, + 171, 1337, 406, 1306, 500, 1341, 1342, 503, 500, 217, + 1332, 503, 485, 1332, 410, 1351, 412, 1353, 1354, 1355, + 1356, 1357, 1358, 1359, 342, 1332, 499, 1061, 500, 500, + 1514, 503, 503, 25, 500, 1332, 2021, 503, 1332, 31, + 270, 137, 1378, 447, 1380, 500, 284, 381, 503, 1385, + 1386, 1387, 1388, 1389, 1390, 1391, 1392, 1393, 235, 152, + 444, 1397, 1398, 291, 152, 2609, 1402, 2241, 152, 500, + 1406, 3019, 503, 1409, 1410, 1411, 1412, 1413, 1414, 1415, + 1416, 1417, 500, 2725, 1420, 503, 634, 2816, 636, 137, + 500, 1427, 500, 503, 1430, 499, 538, 1433, 272, 500, + 330, 2453, 503, 334, 501, 500, 500, 284, 503, 503, + 499, 3, 2500, 5, 342, 291, 1452, 500, 346, 38, + 503, 486, 487, 488, 453, 490, 491, 492, 493, 494, + 495, 500, 1468, 1014, 503, 1619, 84, 500, 177, 370, + 503, 13, 14, 1479, 1480, 137, 465, 1450, 376, 379, + 2101, 486, 487, 488, 450, 490, 491, 492, 493, 494, + 495, 200, 2411, 2094, 2413, 1972, 342, 2023, 316, 500, + 346, 96, 503, 500, 499, 406, 503, 1661, 1514, 500, + 1502, 152, 503, 147, 369, 13, 14, 1523, 1222, 1525, + 2018, 500, 13, 14, 503, 291, 1347, 161, 500, 238, + 376, 503, 166, 187, 188, 1902, 2207, 1904, 2209, 439, + 13, 14, 13, 14, 1248, 1249, 444, 2761, 499, 111, + 112, 406, 453, 2304, 13, 14, 2241, 499, 1564, 2989, + 2990, 1567, 1568, 499, 1570, 13, 14, 2044, 13, 14, + 13, 14, 2158, 291, 13, 14, 342, 172, 2199, 37, + 346, 215, 1588, 292, 499, 2062, 152, 2242, 152, 2244, + 1294, 152, 447, 1599, 13, 14, 13, 14, 444, 1605, + 287, 235, 256, 257, 499, 1597, 461, 2474, 13, 14, + 376, 206, 2089, 1619, 38, 2271, 13, 14, 1439, 2096, + 13, 14, 13, 14, 342, 187, 188, 222, 346, 291, + 485, 357, 358, 745, 233, 2258, 499, 232, 1644, 3069, + 5, 87, 5, 89, 499, 91, 499, 2491, 260, 261, + 284, 1657, 166, 1659, 499, 1661, 357, 358, 376, 293, + 366, 367, 357, 358, 1670, 357, 358, 994, 995, 1675, + 499, 266, 5, 499, 499, 499, 499, 499, 444, 1714, + 342, 1385, 5, 2995, 346, 499, 499, 499, 2731, 499, + 252, 253, 254, 255, 256, 257, 499, 499, 260, 261, + 5, 410, 8, 412, 499, 11, 1712, 1713, 1714, 15, + 5, 1717, 366, 367, 376, 499, 499, 499, 499, 1725, + 1726, 1727, 1728, 148, 9, 434, 444, 499, 437, 1735, + 1765, 462, 503, 1739, 217, 298, 1742, 43, 99, 2606, + 500, 38, 503, 166, 50, 2600, 284, 282, 166, 1300, + 376, 1302, 2503, 2504, 1760, 1761, 233, 499, 353, 1765, + 417, 494, 499, 88, 2241, 503, 147, 417, 56, 75, + 882, 11, 56, 1779, 417, 15, 1782, 263, 1784, 2775, + 161, 417, 444, 23, 500, 166, 508, 417, 461, 501, + 152, 177, 95, 272, 34, 35, 272, 2793, 1804, 433, + 499, 2422, 38, 499, 366, 367, 2491, 9, 499, 1815, + 1514, 2496, 545, 546, 200, 1815, 2537, 37, 1972, 415, + 2441, 1815, 415, 1644, 2301, 497, 497, 1648, 503, 1835, + 417, 417, 417, 417, 215, 500, 1657, 1872, 1830, 145, + 457, 1830, 11, 499, 1850, 1851, 498, 344, 88, 508, + 503, 277, 238, 1830, 235, 503, 2801, 415, 505, 2544, + 2545, 1867, 499, 1830, 499, 417, 1830, 1867, 180, 162, + 176, 171, 500, 1867, 503, 500, 499, 215, 1884, 503, + 613, 2725, 224, 379, 288, 500, 192, 309, 69, 309, + 2044, 197, 503, 2760, 75, 441, 1902, 1903, 1904, 632, + 38, 2897, 499, 284, 224, 6, 292, 88, 2062, 224, + 11, 293, 293, 272, 15, 1619, 325, 479, 480, 20, + 21, 22, 23, 24, 453, 285, 27, 499, 234, 30, + 31, 152, 38, 34, 35, 2089, 117, 1943, 119, 152, + 2998, 461, 2096, 272, 287, 500, 500, 497, 482, 1061, + 538, 482, 500, 54, 38, 500, 500, 1661, 1509, 500, + 287, 500, 498, 500, 171, 2119, 1972, 500, 1519, 501, + 1521, 482, 500, 1524, 2472, 500, 362, 500, 500, 1530, + 171, 1532, 1988, 289, 500, 500, 87, 88, 89, 90, + 91, 500, 500, 1544, 500, 500, 503, 500, 1549, 499, + 499, 417, 1553, 1554, 1555, 1556, 499, 1558, 1559, 499, + 155, 458, 484, 288, 288, 2021, 288, 2023, 2963, 503, + 243, 458, 287, 204, 410, 2502, 412, 439, 503, 2714, + 2715, 488, 447, 417, 2704, 2041, 499, 272, 2044, 152, + 2725, 200, 428, 152, 2050, 152, 417, 2053, 434, 495, + 2056, 437, 433, 417, 279, 279, 2062, 2063, 2064, 2065, + 2066, 2067, 417, 2098, 2070, 2071, 2072, 2073, 2074, 2075, + 2076, 2077, 2078, 2079, 2600, 381, 417, 2083, 2084, 500, + 38, 2087, 344, 2089, 498, 285, 1907, 2241, 2094, 499, + 2096, 272, 2098, 38, 2129, 503, 277, 500, 287, 38, + 2131, 2107, 152, 461, 2110, 500, 2112, 277, 498, 498, + 1222, 2146, 57, 2119, 2120, 143, 497, 2123, 2124, 500, + 501, 11, 2128, 2129, 171, 166, 2132, 500, 500, 52, + 500, 500, 1953, 500, 171, 297, 1248, 1249, 2144, 320, + 2146, 171, 499, 876, 2144, 406, 2146, 2301, 500, 503, + 2144, 2995, 2146, 2159, 485, 336, 38, 745, 180, 38, + 500, 894, 499, 108, 500, 288, 350, 446, 86, 615, + 152, 503, 500, 2828, 97, 57, 175, 483, 57, 2185, + 499, 914, 1294, 428, 490, 491, 492, 493, 494, 495, + 500, 500, 500, 38, 81, 499, 2202, 499, 441, 498, + 123, 171, 2023, 649, 500, 503, 500, 2028, 499, 2030, + 500, 503, 499, 2034, 2035, 408, 499, 2371, 141, 952, + 500, 222, 145, 500, 500, 296, 108, 222, 499, 108, + 294, 56, 184, 500, 2240, 2241, 2242, 488, 2244, 685, + 686, 687, 688, 500, 167, 500, 461, 170, 2725, 202, + 117, 38, 499, 434, 199, 224, 2926, 83, 190, 2882, + 441, 277, 185, 277, 501, 417, 417, 501, 1972, 501, + 501, 501, 512, 1385, 501, 2270, 2268, 1828, 38, 501, + 2270, 2935, 501, 2270, 2270, 501, 272, 501, 500, 1022, + 1023, 501, 1025, 175, 882, 2301, 501, 2289, 501, 2291, + 501, 541, 542, 501, 2905, 250, 2907, 501, 109, 501, + 2995, 2317, 488, 258, 501, 2792, 501, 199, 2795, 501, + 199, 501, 501, 501, 501, 270, 501, 501, 501, 501, + 501, 461, 287, 501, 501, 501, 501, 501, 499, 499, + 2044, 171, 2997, 499, 2842, 499, 222, 500, 2502, 499, + 460, 88, 133, 336, 277, 503, 301, 499, 2062, 2365, + 2366, 38, 285, 152, 2370, 2371, 75, 500, 250, 2375, + 124, 250, 2378, 2379, 152, 38, 258, 2383, 500, 258, + 358, 358, 306, 2537, 624, 2089, 38, 499, 270, 500, + 327, 270, 2096, 446, 495, 499, 499, 499, 499, 499, + 2406, 502, 1514, 348, 2410, 328, 2406, 503, 75, 499, + 2410, 512, 2406, 277, 248, 2119, 2410, 189, 441, 301, + 2241, 2919, 301, 428, 499, 370, 69, 290, 69, 56, + 499, 1982, 2438, 500, 499, 503, 38, 441, 376, 540, + 541, 542, 488, 270, 2265, 390, 287, 428, 2440, 38, + 2442, 499, 290, 290, 499, 2609, 500, 500, 500, 499, + 2466, 500, 360, 202, 287, 287, 348, 500, 2474, 348, + 9, 343, 122, 1061, 500, 439, 357, 24, 35, 500, + 581, 499, 9, 500, 1959, 632, 2600, 2493, 370, 2021, + 1014, 370, 986, 1835, 1496, 2894, 2502, 2915, 3035, 600, + 601, 602, 603, 1850, 605, 1032, 1468, 1619, 390, 2163, + 1031, 390, 2976, 2909, 615, 2814, 1034, 1495, 2995, 1867, + 2146, 2789, 2428, 624, 2395, 2144, 2884, 2883, 2901, 2412, + 2902, 2537, 1347, 2667, 2979, 3023, 1347, 2241, 1347, 1347, + 2980, 1425, 1740, 1836, 1783, 1671, 1570, 1780, 649, 1661, + 996, 652, 601, 1818, 8, 500, 2438, 11, 2162, 2941, + 2697, 15, 2496, 3047, 2999, 3008, 3040, 1048, 2745, 1903, + 1890, 2725, 1305, 2279, 2997, 2217, 3006, 2244, 2994, 1887, + 1964, 1306, 1296, 1531, 685, 686, 687, 688, 1248, 43, + 2225, 2583, 1897, 2240, 2600, 1830, 50, 2301, 1044, 1332, + 2606, 1047, 1450, 2609, 2876, 1043, 2612, 2761, 2429, 2201, + 1657, 2443, 2200, 2274, 1060, 2621, 2622, 2923, 2672, 2625, + 1451, 75, 2993, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 2639, 1222, 1081, -1, -1, 2792, 2639, + -1, 2795, 2648, -1, -1, 2639, 0, 2653, 2648, -1, + 2656, -1, 2203, 2653, 2648, -1, 2656, 2663, 2664, 2653, + 1248, 1249, 2656, -1, -1, -1, 1399, 2371, -1, -1, + 2676, -1, 2678, -1, -1, -1, 2676, -1, -1, 2230, + -1, -1, 2676, 8, -1, -1, 11, -1, -1, 2695, + 15, 145, -1, -1, 2245, 2246, 2247, 2248, 2249, 2250, + 2251, 2252, 2253, 2254, -1, -1, 1294, -1, -1, -1, + -1, -1, -1, 953, -1, -1, -1, -1, 43, 2725, + -1, -1, 176, -1, -1, 50, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 192, -1, + -1, 95, -1, 197, 2736, -1, -1, -1, -1, -1, + 75, 2757, -1, -1, 2760, 2761, -1, 2757, -1, -1, + -1, 8, -1, 2757, 11, -1, 2801, -1, 15, 1502, + -1, 18, 19, 20, 1014, 1015, -1, 1223, 2784, 2600, + 234, -1, 2788, -1, -1, 886, 2792, -1, 2788, 2795, + -1, -1, -1, 147, 2788, 2801, -1, 1385, 2502, -1, + -1, -1, -1, -1, -1, -1, -1, 161, -1, -1, + 2816, -1, 166, 2819, -1, -1, -1, 171, -1, -1, + 145, -1, 2828, -1, -1, -1, 180, 2833, -1, -1, + 184, -1, -1, 2537, -1, 289, -1, -1, -1, -1, + -1, 2995, -1, -1, -1, 2666, -1, -1, -1, -1, + -1, 176, 953, -1, -1, -1, -1, -1, -1, 8, + 1972, 215, 11, -1, 1597, 2857, 15, 192, -1, 18, + 19, 20, 197, -1, -1, -1, -1, -1, 2884, -1, + -1, 235, -1, -1, 2884, -1, -1, -1, -1, -1, + 2884, -1, -1, -1, -1, 996, -1, -1, -1, 2905, + -1, 2907, -1, 2909, 2725, 2609, -1, 2913, -1, 234, + 538, -1, -1, 1014, 1015, -1, -1, 2923, -1, -1, + -1, -1, 2473, 2923, 2916, -1, 1514, 381, -1, 2923, + 284, -1, 2044, 287, -1, -1, -1, 2943, -1, 293, + -1, -1, 1043, 1044, 1045, -1, 1047, 1048, -1, -1, + 2062, -1, -1, -1, -1, -1, -1, 2963, -1, 1060, + -1, -1, -1, -1, 289, -1, -1, -1, -1, -1, + 2976, -1, 219, 327, -1, -1, 1077, 2089, -1, -1, + 1081, 1714, 1428, -1, 2096, -1, -1, -1, -1, 2995, + -1, 2997, -1, -1, -1, -1, 350, -1, -1, -1, + -1, -1, -1, 1449, -1, 1451, -1, 2119, -1, -1, + -1, -1, -1, 3019, -1, -1, 3022, 3023, -1, 3019, + 3012, 2725, -1, -1, -1, 3019, -1, -1, -1, 483, + 2851, 1619, 1765, -1, -1, -1, 490, 491, 492, 493, + 494, 495, 289, -1, -1, -1, -1, 1493, 197, 3055, + 1783, -1, 406, -1, -1, -1, 381, 2761, -1, 1299, + 1300, -1, 1302, -1, -1, -1, 1799, -1, -1, -1, + 219, -1, -1, 1661, -1, -1, -1, -1, -1, 433, + -1, -1, 1815, -1, -1, -1, 538, 441, 2792, -1, + 3096, 2795, -1, -1, -1, -1, -1, 1830, -1, -1, + 538, -1, -1, -1, 458, -1, 460, 461, -1, -1, + -1, -1, -1, 8, 1215, -1, 11, 745, -1, -1, + 15, -1, 1223, 18, 19, 20, -1, -1, -1, 2241, + -1, 1232, 1578, 1579, 1867, -1, -1, -1, -1, 1872, + 289, -1, -1, 497, -1, -1, 500, 501, 502, -1, + -1, -1, -1, -1, -1, 2706, -1, -1, 483, -1, + 1261, -1, -1, -1, -1, 490, 491, 492, 493, 494, + 495, -1, -1, -1, 2995, 2726, 2727, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 2301, + -1, 2742, -1, -1, -1, 1296, 1297, -1, 1299, 1300, + -1, 1302, 1303, -1, -1, -1, 8, -1, -1, 11, + 111, 112, -1, 15, -1, -1, 18, 19, 20, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 35, -1, -1, -1, -1, -1, 486, + 487, 488, -1, 490, 491, 492, 493, 494, 495, -1, + -1, 1352, -1, -1, 882, -1, -1, -1, -1, 2371, + -1, 8, 1363, -1, 11, -1, -1, 2818, 15, 1509, + -1, 18, 19, 20, -1, -1, -1, -1, -1, 1519, + -1, 1521, -1, -1, 1524, -1, 187, 188, 35, -1, + 1530, 2995, 1532, 745, -1, 1396, -1, -1, -1, -1, + -1, -1, -1, -1, 1544, -1, -1, 745, -1, 1549, + -1, -1, -1, 1553, 1554, 1555, 1556, -1, 1558, 1559, + -1, -1, -1, -1, 219, -1, 1427, 1428, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 486, 487, 488, + -1, 490, 491, 492, 493, 494, 495, -1, 1449, -1, + 1451, 252, 253, 254, 255, 256, 257, -1, -1, 260, + 261, 8, -1, 1809, 11, 2098, -1, -1, 15, -1, + -1, 18, 19, 20, -1, 0, -1, -1, -1, -1, + -1, -1, -1, -1, 1972, -1, -1, -1, 35, -1, + 2502, -1, 1493, -1, 289, -1, 2129, -1, -1, -1, + -1, -1, 1503, -1, 1505, -1, -1, 1508, 1509, -1, + -1, 2144, -1, 2146, -1, -1, -1, 219, 1519, 1520, + 1521, 1522, -1, 1524, -1, 2537, -1, -1, -1, 1530, + 882, 1532, -1, 1061, -1, -1, -1, -1, -1, -1, + -1, -1, 1543, 1544, 882, -1, -1, 1548, 1549, -1, + -1, -1, 1553, 1554, 1555, 1556, 2044, 1558, 1559, -1, + -1, -1, -1, -1, -1, 366, 367, -1, -1, -1, + 95, -1, 219, -1, 2062, -1, -1, 1578, 1579, 1580, -1, -1, -1, -1, -1, -1, -1, 289, -1, -1, - 292, -1, -1, -1, -1, -1, -1, -1, 219, 220, - 315, -1, -1, -1, -1, -1, 272, -1, -1, 275, - -1, -1, -1, 234, -1, -1, -1, 381, -1, -1, - -1, -1, -1, 289, -1, -1, 292, -1, -1, -1, - 381, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 310, -1, -1, -1, -1, -1, - -1, 272, -1, -1, 275, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 381, -1, 289, -1, - -1, 292, -1, -1, -1, -1, -1, 441, -1, 381, + -1, -1, 8, 1733, 1595, 11, -1, 2609, -1, 15, + 1740, 2089, 18, 19, 20, -1, -1, -1, 2096, -1, + -1, -1, -1, -1, 1960, -1, -1, -1, -1, 35, + -1, -1, 147, 1969, 1970, 1971, -1, -1, -1, -1, + -1, 2119, -1, -1, -1, 2268, 161, -1, -1, -1, + -1, 166, 289, -1, 1990, -1, 171, -1, -1, -1, + -1, -1, -1, -1, -1, 180, 2289, -1, 2291, 184, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 219, -1, -1, -1, -1, -1, 479, 480, + -1, -1, -1, -1, -1, -1, -1, -1, 1828, -1, + 215, 486, 487, 488, 1222, 490, 491, 492, 493, 494, + 495, -1, -1, -1, -1, -1, -1, -1, -1, 1061, + 235, -1, -1, 2725, -1, -1, -1, -1, -1, -1, + 1248, 1249, -1, 1061, -1, -1, -1, -1, -1, -1, + -1, -1, 1733, -1, -1, -1, -1, -1, -1, 1740, + -1, -1, 289, -1, -1, -1, -1, -1, -1, 2761, + -1, -1, -1, 2241, -1, -1, -1, -1, -1, 284, + -1, -1, 287, -1, -1, -1, 1294, -1, 293, -1, + -1, -1, -1, 2406, -1, -1, 1777, 2410, -1, -1, + 2792, -1, -1, 2795, 486, 487, 488, -1, 490, 491, + 492, 493, 494, 495, -1, 2141, 2142, 2143, -1, -1, + -1, -1, 327, 219, -1, -1, -1, 2440, 1809, 2442, + -1, -1, -1, 2301, 1815, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 350, -1, 1828, -1, -1, + -1, -1, -1, -1, -1, -1, 2182, -1, -1, 486, + 487, 488, 1982, 490, 491, 492, 493, 494, 495, -1, + -1, -1, -1, -1, -1, -1, -1, 1385, -1, -1, + -1, -1, -1, -1, -1, -1, 1867, -1, 1869, -1, + 1222, 1872, -1, 289, -1, 1876, -1, -1, -1, -1, + -1, 406, -1, 2371, 1222, -1, -1, -1, -1, -1, + -1, 1892, -1, -1, -1, -1, 1248, 1249, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 433, -1, + 1248, 1249, -1, -1, -1, -1, 441, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 2272, -1, -1, -1, + -1, -1, -1, 458, -1, 460, 461, -1, -1, 486, + 487, 488, 1294, 490, 491, 492, 493, 494, 495, -1, + 2583, -1, -1, -1, 1955, -1, 1294, -1, -1, 1960, + -1, -1, -1, -1, -1, -1, -1, 1968, 1969, 1970, + 1971, -1, 497, -1, -1, 500, 501, 502, -1, -1, + -1, 1982, -1, 2995, -1, -1, 1514, -1, -1, 1990, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 2002, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 2502, 2648, -1, 2018, -1, -1, + 2653, -1, -1, 2656, -1, -1, -1, -1, -1, -1, + -1, 2032, 2033, 1385, -1, -1, -1, -1, -1, -1, + -1, 2387, 2388, 2389, 2390, -1, -1, 1385, -1, 2537, + -1, -1, -1, -1, 2055, -1, -1, -1, -1, -1, + -1, -1, -1, 2203, -1, -1, -1, -1, -1, -1, + 486, 487, 488, -1, 490, 491, 492, 493, 494, 495, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 381, -1, -1, -1, 483, - -1, -1, 486, 487, 488, -1, 490, 491, 492, 493, - 494, 495, 483, -1, -1, 486, 487, 488, -1, 490, - 491, 492, 493, 494, 495, -1, -1, -1, -1, -1, + 2230, 1619, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 2736, -1, 2245, 2246, 2247, 2248, 2249, + 2250, 2251, 2252, 2253, 2254, -1, -1, -1, -1, -1, + -1, 2609, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 1661, 2480, -1, -1, -1, -1, -1, + 2141, 2142, 2143, 2144, -1, 2146, 2147, 2148, -1, -1, + -1, -1, 2153, 2154, -1, 2788, 111, 112, -1, -1, + -1, -1, 1514, -1, -1, -1, -1, -1, 2801, -1, + -1, -1, -1, -1, -1, -1, 1514, -1, -1, -1, + -1, 2182, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 25, -1, -1, -1, -1, -1, 31, -1, 2200, + -1, -1, 2203, -1, 38, -1, 2207, 2208, 2209, -1, + 2211, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 57, 2857, -1, -1, -1, -1, 2230, + -1, 2232, 187, 188, -1, -1, -1, 2725, -1, -1, + -1, -1, -1, 38, 2245, 2246, 2247, 2248, 2249, 2250, + 2251, 2252, 2253, 2254, -1, -1, -1, 600, 601, -1, + -1, 2401, 57, -1, -1, -1, 2267, 1619, -1, -1, + -1, 2272, -1, 2761, 108, -1, 2416, -1, 2279, -1, + -1, 1619, -1, 2916, -1, -1, -1, -1, -1, -1, + -1, -1, 2293, -1, -1, -1, -1, 252, 253, 254, + 255, 256, 257, 137, 2792, 260, 261, 2795, -1, 1661, + 2311, -1, -1, 108, 109, -1, -1, -1, -1, 662, + 663, -1, 117, 1661, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 2473, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 381, -1, -1, -1, -1, -1, -1, -1, 483, -1, - -1, 486, 487, 488, -1, 490, 491, 492, 493, 494, - 495, 483, -1, -1, 486, 487, 488, -1, 490, 491, - 492, 493, 494, 495, -1, -1, 8, -1, -1, 11, - -1, -1, -1, 15, 16, 17, 18, 19, 20, -1, - -1, -1, -1, -1, -1, -1, -1, 483, -1, -1, - 486, 487, 488, 35, 490, 491, 492, 493, 494, 495, - -1, 43, -1, -1, -1, -1, -1, -1, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 2361, -1, -1, -1, -1, 199, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 3012, + 175, -1, -1, -1, 2385, -1, 2387, 2388, 2389, 2390, + -1, 2737, -1, 2394, 2395, -1, 2397, 2398, -1, -1, + 2401, -1, -1, -1, 199, 2406, -1, -1, 2754, 2410, + -1, 366, 367, -1, -1, 2416, 250, -1, -1, -1, + -1, -1, -1, -1, 258, -1, -1, -1, -1, -1, + -1, -1, 2433, -1, -1, -1, 270, 2438, -1, -1, + -1, -1, 2443, -1, 1972, -1, 2447, -1, -1, -1, + -1, -1, 2453, 8, -1, 250, 11, 291, 2459, -1, + 15, -1, -1, 258, -1, -1, -1, 301, -1, -1, + -1, 2472, 2473, -1, -1, 270, -1, 272, -1, 2480, + 2826, -1, -1, -1, -1, -1, -1, -1, 43, -1, + -1, -1, -1, -1, -1, 50, 2497, -1, -1, -1, + -1, -1, -1, -1, -1, 2645, 301, 2995, 342, -1, + 2856, -1, 346, -1, 348, -1, 2044, -1, 2658, -1, + 75, 2661, -1, -1, 479, 480, -1, 0, -1, -1, + -1, -1, -1, -1, 2062, -1, 370, -1, 881, -1, + -1, -1, 376, -1, 499, -1, -1, -1, -1, -1, + -1, -1, -1, 348, -1, 898, 390, -1, -1, -1, + -1, 2089, -1, -1, -1, -1, 2706, -1, 2096, -1, + -1, -1, 2573, -1, -1, 370, -1, -1, -1, -1, + -1, 2582, -1, -1, 927, -1, 2726, 2727, -1, -1, + 145, 2119, -1, 2594, -1, 390, -1, 392, -1, -1, + 395, -1, 2742, -1, 947, 948, 949, -1, -1, 952, + 444, -1, -1, -1, -1, -1, 8, -1, -1, 11, + 1972, 176, 95, 15, -1, -1, 18, 19, 20, 2630, + -1, -1, 975, -1, 1972, 2775, -1, 192, 2639, 2640, + -1, 2642, 197, -1, 2645, -1, -1, 2648, -1, -1, + -1, 43, 2653, 2793, -1, 2656, -1, 2658, 50, -1, + 2661, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 147, 2676, -1, -1, 2818, 234, + -1, 1024, -1, 75, -1, 1028, 1029, -1, 161, -1, + -1, -1, 2044, 166, -1, -1, -1, -1, 171, -1, + -1, -1, -1, -1, 499, 2706, 2044, 180, -1, -1, + 2062, 184, -1, 2241, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 2062, 2726, 2727, -1, -1, -1, + -1, -1, -1, -1, 289, -1, 2737, 2089, 2739, -1, + -1, 2742, 215, 1086, 2096, -1, -1, -1, -1, -1, + -1, 2089, -1, 2754, 1097, -1, 2757, 2897, 2096, -1, + -1, 2901, 235, -1, -1, -1, -1, 2119, -1, -1, + -1, -1, -1, 2301, 2775, -1, -1, -1, 1121, -1, + -1, 2119, -1, -1, 176, -1, -1, 2788, -1, -1, + -1, -1, 2793, -1, -1, -1, -1, -1, -1, -1, + 192, -1, -1, -1, -1, 197, -1, -1, -1, -1, + 2811, 284, -1, -1, 287, 2816, -1, 2818, -1, -1, + 293, -1, -1, -1, -1, 2826, 381, 2967, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 483, 75, -1, 486, 487, 488, -1, 490, - 491, 492, 493, 494, 495, 8, -1, -1, 11, -1, - -1, -1, 15, 16, 17, 18, 19, 20, -1, -1, + -1, 2842, 234, 2371, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 327, 2856, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 35, -1, 8, 38, -1, 11, -1, -1, - 43, 15, 16, 17, 18, 19, 20, 50, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 350, -1, -1, + -1, -1, -1, 2884, -1, -1, -1, -1, -1, 2241, + -1, -1, 2893, -1, -1, -1, 2897, 289, -1, -1, + 2901, -1, -1, 2241, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 2919, 2920, + 2921, -1, 2923, -1, -1, -1, -1, -1, 483, -1, + -1, -1, -1, 406, -1, 490, 491, 492, 493, 494, + 495, -1, -1, -1, -1, -1, -1, -1, -1, 2301, + -1, 2952, -1, -1, -1, -1, -1, -1, -1, -1, + 433, -1, -1, 2301, -1, -1, 2967, -1, 441, -1, + -1, -1, -1, -1, 2502, -1, -1, -1, 2979, -1, + -1, -1, -1, -1, -1, 458, -1, 460, 461, 381, + -1, -1, 2993, -1, -1, -1, -1, -1, 1341, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 1351, 2537, + 1353, -1, 3013, 1356, 1357, 1358, 1359, -1, 3019, 2371, + -1, -1, -1, -1, 497, -1, -1, 500, 501, 502, + -1, -1, -1, 2371, 3035, 3036, -1, 1380, -1, -1, + -1, -1, -1, 1386, 1387, 1388, 1389, 1390, 1391, 1392, + -1, -1, -1, -1, 1397, 1398, -1, -1, -1, 1402, + -1, -1, -1, 1406, -1, -1, 1409, 1410, 1411, 1412, + 1413, 1414, 1415, 1416, 1417, -1, -1, 1420, -1, -1, + -1, 2609, -1, -1, 1427, -1, -1, 1430, -1, -1, + -1, 483, -1, -1, 486, 487, 488, -1, 490, 491, + 492, 493, 494, 495, -1, -1, -1, 0, -1, 1452, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 35, -1, -1, -1, -1, -1, -1, -1, 43, - -1, -1, 75, -1, -1, -1, 50, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 171, - -1, -1, -1, -1, 176, -1, -1, -1, -1, -1, - -1, 75, -1, -1, -1, -1, -1, -1, -1, -1, - 192, -1, -1, 8, -1, 197, 11, -1, -1, -1, - 15, 16, 17, 18, 19, 20, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 219, 220, -1, - 35, -1, -1, 38, -1, -1, -1, -1, 43, -1, - -1, -1, 234, -1, -1, 50, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 21, -1, + -1, -1, 968, -1, -1, -1, 1479, 1480, 31, -1, + 33, 34, -1, -1, -1, -1, -1, -1, -1, -1, + 2502, -1, -1, -1, -1, -1, 49, -1, -1, -1, + -1, -1, -1, -1, 2502, 58, -1, -1, -1, -1, + -1, -1, -1, 1009, -1, -1, -1, 70, -1, -1, + -1, -1, -1, -1, -1, 2537, -1, -1, 81, -1, + -1, -1, -1, -1, -1, -1, -1, 2725, -1, 2537, + 93, -1, 95, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 176, -1, -1, -1, -1, -1, -1, - 75, -1, -1, -1, -1, -1, -1, -1, -1, 192, - 272, -1, -1, 275, 197, -1, -1, -1, -1, -1, - -1, -1, 176, -1, -1, -1, -1, 289, -1, -1, - 292, -1, -1, -1, -1, -1, 219, 220, 192, -1, - -1, -1, -1, 197, -1, -1, -1, -1, -1, -1, - -1, 234, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 219, 220, -1, -1, -1, + 113, 1564, -1, -1, 1567, 1568, -1, 1570, -1, -1, + -1, -1, -1, 2761, 127, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 137, -1, -1, -1, -1, -1, + 143, -1, -1, -1, -1, -1, 1599, 2609, 151, -1, + 153, 154, -1, 8, 2792, -1, 11, 2795, -1, -1, + 15, 2609, -1, -1, 167, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 1125, + -1, -1, -1, -1, -1, -1, 1132, -1, 43, -1, + -1, -1, -1, 196, -1, 50, -1, -1, -1, -1, + -1, -1, 8, -1, -1, 11, 1659, -1, 211, 15, + -1, -1, -1, -1, -1, -1, 8, 1670, -1, 11, + 75, -1, 1675, 15, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 237, -1, -1, 43, 8, -1, + -1, 11, -1, -1, 50, 15, 16, 17, 18, 19, + 20, 43, -1, -1, -1, -1, -1, -1, 50, -1, + -1, 1714, -1, 2725, -1, 35, -1, -1, -1, 75, + -1, -1, 1725, 43, 1727, 1728, -1, 2725, -1, -1, + 50, -1, 1735, 75, -1, -1, 1739, -1, -1, 1742, + 145, -1, -1, -1, -1, -1, -1, -1, -1, 2761, + -1, -1, -1, -1, -1, 75, -1, -1, -1, -1, + -1, 314, -1, 2761, 317, -1, -1, -1, -1, -1, + -1, 176, -1, -1, -1, -1, 1779, -1, -1, 1782, + 2792, 1784, -1, 2795, -1, -1, -1, 192, -1, 145, + -1, -1, 197, 346, 2792, -1, -1, 2795, -1, -1, + -1, -1, 355, -1, -1, -1, -1, 2995, -1, -1, + -1, -1, -1, -1, -1, -1, 369, -1, -1, -1, + 176, -1, -1, 376, -1, -1, -1, 380, -1, 234, + -1, -1, 1835, -1, 176, -1, 192, 390, -1, -1, + -1, 197, -1, 1339, -1, -1, -1, 1850, 1851, 402, + 192, -1, -1, 406, 1350, 197, 176, -1, 1354, -1, + -1, -1, -1, -1, 1360, 1361, 1362, -1, -1, -1, + -1, -1, 192, 1369, -1, -1, -1, 197, 234, -1, + -1, 1884, -1, -1, 289, -1, -1, -1, -1, 442, + -1, -1, 234, -1, 447, -1, -1, -1, -1, 219, + 220, -1, -1, -1, -1, -1, -1, -1, 461, -1, + -1, -1, -1, -1, 234, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 234, -1, -1, -1, -1, -1, -1, -1, -1, 272, - -1, -1, 275, -1, -1, -1, -1, -1, -1, -1, - -1, 176, -1, -1, 8, -1, 289, 11, -1, 292, - -1, 15, 16, 17, 18, 19, 20, 192, 272, 381, - -1, 275, 197, -1, -1, -1, -1, -1, -1, -1, - -1, 35, -1, -1, -1, 289, -1, -1, 292, 43, - -1, -1, -1, -1, 219, 220, 50, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 234, - -1, -1, -1, -1, -1, -1, -1, 8, -1, -1, - 11, 75, -1, -1, 15, 16, 17, 18, 19, 20, - 8, -1, -1, 11, -1, -1, -1, 15, -1, -1, - 18, 19, 20, -1, 35, -1, -1, 272, 381, -1, - 275, -1, 43, -1, -1, -1, -1, 35, -1, 50, - -1, -1, -1, -1, 289, 43, -1, 292, -1, -1, - -1, 483, 50, -1, 486, 487, 488, 381, 490, 491, - 492, 493, 494, 495, 75, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 75, -1, -1, - -1, -1, -1, -1, 8, -1, -1, 11, -1, -1, - 414, 15, -1, -1, 18, 19, 20, -1, -1, -1, - -1, -1, 176, -1, -1, -1, -1, -1, -1, -1, - -1, 35, -1, -1, -1, -1, -1, -1, 192, 43, - -1, -1, -1, 197, -1, -1, 50, -1, -1, -1, - 483, -1, -1, 486, 487, 488, 381, 490, 491, 492, - 493, 494, 495, -1, -1, 219, 220, -1, -1, -1, - -1, 75, -1, -1, -1, -1, -1, -1, -1, 483, - 234, -1, 486, 487, 488, 176, 490, 491, 492, 493, - 494, 495, -1, -1, -1, -1, -1, 8, 176, -1, - 11, 192, -1, -1, 15, -1, 197, 18, 19, 20, - -1, -1, -1, -1, 192, -1, -1, -1, 272, 197, - -1, 275, -1, -1, -1, -1, -1, -1, 219, 220, - -1, -1, 43, -1, -1, 289, -1, -1, 292, 50, - -1, 219, 220, 234, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 234, -1, 483, -1, - -1, 486, 487, 488, 75, 490, 491, 492, 493, 494, - 495, -1, 176, -1, -1, -1, -1, -1, -1, -1, - -1, 272, 21, -1, 275, -1, -1, -1, 192, -1, - -1, -1, 31, 197, 272, -1, -1, 275, 289, -1, - -1, 292, -1, -1, -1, -1, -1, -1, -1, -1, - 49, 289, -1, -1, 292, 219, 220, -1, -1, 58, - -1, -1, -1, -1, -1, -1, -1, 381, -1, -1, - 234, 70, -1, -1, -1, -1, -1, -1, 8, -1, - -1, 11, 81, -1, -1, 15, -1, -1, 18, 19, - 20, -1, -1, -1, 93, -1, 95, -1, -1, -1, - -1, -1, -1, -1, -1, 176, -1, -1, 272, -1, - -1, 275, -1, 43, 113, -1, -1, -1, -1, -1, - 50, 192, -1, -1, -1, 289, 197, -1, 127, -1, - 381, -1, -1, -1, -1, -1, -1, -1, 137, -1, - -1, -1, -1, 381, 143, 75, -1, -1, 219, 220, - -1, -1, 151, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 234, -1, -1, -1, -1, 167, 483, - -1, -1, 486, 487, 488, -1, 490, 491, 492, 493, - 494, 495, -1, -1, -1, -1, -1, -1, -1, -1, + 1426, 8, 485, 289, 11, -1, -1, -1, 15, -1, + 1943, 18, 19, 20, -1, -1, 499, 289, -1, 502, + -1, -1, 272, -1, -1, 275, -1, -1, 35, -1, + -1, -1, -1, -1, -1, -1, 43, -1, 1464, 289, + -1, -1, 292, 50, -1, -1, 381, -1, -1, -1, + -1, -1, 1478, 2995, -1, 1988, -1, 1483, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 2995, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 272, -1, -1, 275, -1, -1, -1, -1, -1, - -1, -1, 211, -1, -1, -1, -1, 381, 289, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 483, -1, -1, 486, 487, 488, 237, 490, - 491, 492, 493, 494, 495, 483, 176, -1, 486, 487, - 488, -1, 490, 491, 492, 493, 494, 495, -1, -1, - -1, -1, 192, -1, -1, -1, -1, 197, -1, -1, + -1, -1, -1, -1, -1, 381, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 2041, 381, + -1, -1, -1, -1, -1, -1, -1, 2050, -1, -1, + 2053, -1, -1, 2056, -1, -1, -1, -1, -1, -1, + -1, 381, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 483, -1, + 2083, 2084, -1, -1, 2087, 490, 491, 492, 493, 494, + 495, -1, -1, -1, -1, 2098, -1, -1, -1, 176, + -1, -1, -1, -1, 2107, -1, -1, 2110, -1, 2112, + -1, -1, -1, -1, -1, 192, -1, 2120, -1, -1, + 197, -1, -1, -1, -1, 2128, 2129, 483, -1, 2132, + -1, -1, -1, -1, 490, 491, 492, 493, 494, 495, + -1, 483, 219, 220, -1, -1, -1, -1, 490, 491, + 492, 493, 494, 495, -1, -1, 2159, 234, -1, -1, + -1, -1, -1, 483, -1, -1, 486, 487, 488, -1, + 490, 491, 492, 493, 494, 495, -1, 1673, -1, -1, + -1, -1, 2185, 503, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 272, 1692, -1, 275, 2202, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 219, - 220, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 234, -1, -1, -1, -1, -1, - 381, -1, -1, -1, -1, 314, -1, -1, 317, 483, - -1, -1, 486, 487, 488, -1, 490, 491, 492, 493, - 494, 495, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 275, -1, 346, -1, -1, - -1, -1, -1, -1, -1, -1, 355, -1, -1, 289, + -1, -1, 289, -1, 1710, 292, 1712, 1713, -1, 1715, + -1, 1717, -1, -1, -1, 1721, -1, -1, 1724, -1, + -1, -1, -1, 1729, -1, -1, 1732, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 1744, -1, + -1, -1, 1748, 1749, 1750, 1751, 1752, 1753, 1754, -1, + -1, -1, -1, -1, 1760, 1761, -1, 1763, 1764, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 1775, + -1, -1, 1778, -1, -1, -1, -1, -1, -1, -1, + 1786, 1787, 1788, 1789, 1790, 1791, 1792, 1793, 1794, 1795, + -1, -1, -1, -1, 381, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 2317, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 369, -1, -1, -1, -1, -1, -1, 376, -1, -1, - -1, 380, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 390, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 402, -1, -1, -1, 406, -1, -1, - -1, -1, 483, -1, -1, 486, 487, 488, -1, 490, - 491, 492, 493, 494, 495, -1, -1, -1, -1, -1, + -1, 1827, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 442, -1, -1, -1, -1, 447, -1, - -1, 381, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 461, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 485, -1, -1, -1, + -1, -1, 2365, 2366, -1, -1, -1, 2370, -1, -1, + -1, -1, 2375, -1, -1, 2378, 2379, -1, -1, -1, + 2383, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 483, -1, -1, 486, + 487, 488, -1, 490, 491, 492, 493, 494, 495, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 2438, 8, -1, -1, 11, + -1, -1, -1, 15, -1, -1, 18, 19, 20, -1, + -1, -1, 1948, 1949, 1950, -1, -1, -1, -1, -1, + -1, -1, -1, 2466, -1, -1, -1, -1, -1, -1, + -1, 43, -1, -1, -1, -1, -1, -1, 50, 3, + -1, -1, -1, -1, 8, -1, -1, 11, -1, -1, + 2493, 15, 16, 17, 18, 19, 20, -1, -1, -1, + -1, -1, -1, 75, -1, -1, -1, -1, -1, -1, + -1, 35, -1, -1, 38, -1, -1, -1, -1, 43, + 8, -1, -1, 11, -1, -1, 50, 15, 16, 17, + 18, 19, 20, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 2040, -1, -1, 35, -1, -1, + 2046, 75, -1, -1, -1, 43, -1, -1, -1, -1, + -1, -1, 50, 2059, 2060, 2061, -1, 2063, 2064, 2065, + 2066, 2067, -1, -1, 2070, 2071, 2072, 2073, 2074, 2075, + 2076, 2077, 2078, 2079, 2080, -1, -1, 75, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 2099, 176, -1, 2102, -1, 2104, 2612, + -1, -1, 2108, 2109, -1, -1, -1, -1, 2621, 2622, + 192, -1, 2625, -1, -1, 197, 2122, 2123, 2124, 2125, + -1, 2127, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 219, 220, -1, + -1, -1, 176, -1, -1, -1, -1, -1, -1, -1, + 2663, 2664, 234, -1, -1, -1, -1, -1, 192, -1, + -1, 8, -1, 197, 11, 2678, -1, -1, 15, 16, + 17, 18, 19, 20, -1, -1, -1, -1, 176, -1, + -1, -1, 2695, -1, -1, 219, 220, -1, 35, -1, + 272, 38, -1, 275, 192, -1, 43, -1, 2204, 197, + 234, -1, -1, 50, -1, -1, -1, 289, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 219, 220, -1, -1, -1, -1, -1, 75, -1, + -1, -1, -1, -1, -1, -1, 234, -1, 272, -1, + -1, 275, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 8, 289, -1, 11, 292, -1, + -1, 15, 16, 17, 18, 19, 20, -1, -1, -1, + -1, 2784, -1, -1, 272, -1, -1, 275, -1, -1, + -1, 35, -1, -1, -1, -1, 2292, -1, 2801, 43, + -1, 289, -1, -1, 292, -1, 50, -1, -1, 381, + -1, -1, -1, 2816, -1, -1, 2819, -1, -1, -1, + -1, -1, 2318, -1, -1, -1, 2322, 2323, -1, 2325, + 2833, 75, 2328, 2329, 2330, 2331, 2332, -1, -1, 176, + 2336, 2337, 2338, 2339, 2340, 2341, 2342, 2343, 2344, 2345, + 2346, 2347, -1, -1, -1, 192, -1, 381, -1, -1, + 197, 2357, -1, -1, -1, -1, -1, -1, 2364, -1, + -1, 2367, -1, 2369, -1, -1, -1, 2373, -1, -1, + 2376, 2377, 219, 220, 2380, 2381, -1, -1, 2384, -1, + -1, -1, -1, 381, -1, -1, -1, 234, -1, -1, + -1, -1, -1, -1, -1, -1, 2909, -1, -1, -1, + 2913, 483, -1, -1, 486, 487, 488, -1, 490, 491, + 492, 493, 494, 495, -1, -1, -1, 2423, -1, -1, + -1, -1, 176, -1, -1, 272, -1, -1, 275, -1, + 2943, 2437, -1, -1, -1, -1, -1, -1, 192, -1, + -1, -1, 289, 197, 2450, 292, -1, -1, -1, 483, + -1, -1, 486, 487, 488, -1, 490, 491, 492, 493, + 494, 495, -1, 2976, -1, 219, 220, -1, 2474, -1, + -1, -1, -1, -1, 23, -1, -1, -1, -1, -1, + 234, -1, -1, -1, -1, 483, -1, -1, 486, 487, + 488, -1, 490, 491, 492, 493, 494, 495, -1, -1, + -1, -1, 500, -1, 8, -1, -1, 11, -1, 3022, + 3023, 15, 16, 17, 18, 19, 20, -1, 272, -1, + -1, 275, -1, -1, -1, -1, -1, 76, -1, -1, + -1, 35, -1, -1, 381, 289, -1, -1, 292, 43, + -1, -1, 3055, 92, -1, -1, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 499, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 75, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 3096, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 2602, 146, -1, -1, + 2606, -1, 25, -1, -1, -1, -1, 156, 31, 2615, + 2616, 2617, -1, -1, 2620, 38, -1, 2623, 2624, 168, + -1, -1, 2628, -1, 173, -1, -1, 381, -1, -1, + -1, -1, -1, -1, 57, -1, 483, -1, -1, 486, + 487, 488, -1, 490, 491, 492, 493, 494, 495, -1, + -1, 200, -1, 500, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 176, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 108, 2692, -1, 192, -1, + -1, -1, 2698, 197, -1, -1, 245, -1, -1, -1, + 249, -1, -1, -1, -1, 2711, -1, -1, -1, -1, + -1, -1, -1, -1, 137, 219, 220, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 483, + 234, -1, 486, 487, 488, -1, 490, 491, 492, 493, + 494, 495, -1, -1, -1, -1, 500, -1, -1, -1, + -1, -1, -1, 2759, 2760, -1, -1, -1, -1, 2765, + 2766, 2767, -1, 312, -1, -1, -1, -1, 272, -1, + -1, 275, -1, -1, -1, -1, 199, 326, -1, -1, + -1, -1, -1, -1, -1, 289, -1, -1, 292, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 3, -1, - 5, -1, -1, 483, -1, -1, 486, 487, 488, -1, - 490, 491, 492, 493, 494, 495, 21, 22, 23, 24, - 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, - 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, + -1, -1, -1, 2809, 2810, -1, -1, -1, -1, -1, + 359, -1, -1, 362, -1, -1, -1, -1, -1, 2825, + -1, 370, -1, -1, 373, -1, -1, 250, 2834, -1, + -1, -1, -1, -1, -1, 258, -1, -1, -1, -1, + -1, -1, -1, 392, -1, -1, -1, 270, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 406, -1, -1, + -1, -1, -1, -1, 413, -1, -1, -1, 291, -1, + -1, -1, 2878, 422, -1, -1, -1, 381, 301, 428, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 2896, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 453, -1, -1, -1, -1, -1, + -1, -1, 2918, -1, -1, -1, -1, -1, -1, 342, + -1, -1, -1, 346, -1, 348, -1, -1, -1, -1, + -1, 2937, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 370, -1, -1, + -1, -1, -1, 376, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 390, -1, -1, + -1, -1, -1, -1, -1, 2981, -1, -1, -1, 483, + -1, -1, 486, 487, 488, -1, 490, 491, 492, 493, + 494, 495, -1, -1, -1, -1, 500, -1, -1, -1, + -1, -1, -1, -1, 3010, -1, -1, -1, -1, -1, + -1, -1, -1, 3, 4, 5, 6, 7, 8, 9, + 10, 444, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 21, 22, 23, 24, 25, 26, 27, 28, 29, + 30, 31, 32, -1, -1, -1, -1, 37, -1, -1, + 40, 41, 3058, 43, 44, 45, 46, 47, 48, 49, + 50, 51, 52, 53, 54, -1, 56, 57, 58, 59, + 60, 61, 62, 63, 64, 65, 66, 67, 68, -1, + 70, 71, 72, 73, 74, -1, 76, -1, 78, 79, + 80, 81, 82, 83, 84, 85, 86, 87, -1, 89, + 90, 91, 92, 93, 94, -1, 96, 97, 98, 99, + 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, + 110, 111, 112, 113, 114, 115, 116, 117, 118, -1, + 120, 121, 122, 123, 124, 125, -1, 127, 128, 129, + 130, 131, 132, -1, 134, 135, 136, 137, 138, -1, + 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, + 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, + 160, -1, 162, 163, 164, 165, -1, 167, -1, 169, + 170, -1, 172, 173, 174, 175, 176, 177, -1, 179, + -1, 181, 182, 183, -1, 185, 186, 187, 188, 189, + 190, 191, 192, 193, 194, 195, 196, -1, 198, 199, + 200, 201, 202, 203, -1, 205, 206, 207, 208, 209, + 210, 211, 212, 213, 214, -1, 216, -1, 218, 219, + 220, 221, 222, 223, 224, 225, 226, 227, 228, -1, + -1, 231, 232, 233, 234, -1, 236, 237, 238, 239, + 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, + 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, + 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, + 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, + 280, 281, 282, 283, -1, 285, 286, -1, -1, 289, + 290, 291, -1, -1, 294, 295, 296, 297, 298, 299, + 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, + -1, 311, 312, 313, 314, 315, 316, 317, 318, 319, + -1, 321, 322, 323, 324, 325, 326, -1, 328, 329, + 330, 331, 332, 333, 334, 335, -1, 337, 338, 339, + 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, + -1, 351, 352, 353, 354, 355, 356, 357, 358, 359, + 360, 361, 362, 363, 364, 365, 366, 367, 368, -1, + 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, + 380, 381, 382, 383, 384, 385, -1, 387, 388, 389, + 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, + 400, 401, 402, -1, 404, 405, -1, 407, 408, 409, + 410, 411, 412, 413, -1, 415, 416, -1, -1, 419, + 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, + 430, 431, 432, -1, -1, 435, 436, 437, 438, 439, + 440, -1, 442, 443, 444, 445, 446, 447, 448, 449, + 450, 451, 452, 453, 454, 455, 456, -1, -1, 459, + -1, -1, 462, 463, 464, 465, 466, 467, 468, 469, + 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, + 480, 481, 482, 483, -1, -1, -1, -1, -1, -1, + 490, 491, 492, -1, -1, -1, -1, 497, -1, 499, + 500, -1, -1, -1, 504, -1, 506, 507, 3, 4, + 5, 6, 7, 8, 9, 10, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 21, 22, 23, 24, + 25, 26, 27, 28, -1, 30, 31, 32, -1, -1, + -1, -1, 37, -1, -1, 40, 41, -1, 43, 44, + 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, + -1, 56, 57, 58, 59, 60, 61, 62, 63, 64, + 65, 66, 67, 68, -1, 70, 71, 72, 73, 74, + -1, 76, -1, 78, 79, 80, 81, 82, 83, 84, + 85, 86, 87, -1, 89, 90, 91, 92, 93, 94, + -1, 96, 97, 98, 99, 100, 101, 102, 103, 104, + 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, + 115, 116, 117, 118, -1, 120, 121, 122, 123, 124, + 125, -1, 127, 128, 129, 130, 131, -1, -1, 134, + 135, 136, 137, 138, -1, 140, 141, 142, -1, 144, + 145, 146, -1, 148, 149, 150, 151, 152, 153, 154, + 155, 156, 157, 158, 159, 160, -1, 162, 163, 164, + 165, -1, 167, -1, 169, 170, -1, 172, 173, 174, + 175, 176, 177, -1, 179, -1, 181, 182, 183, -1, + 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, + 195, 196, -1, 198, 199, 200, 201, 202, 203, -1, + 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, + -1, 216, -1, 218, 219, 220, 221, 222, 223, 224, + 225, 226, 227, 228, -1, -1, 231, 232, 233, 234, + -1, 236, 237, 238, 239, 240, 241, 242, 243, 244, + 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, + 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, + 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, + 275, 276, 277, 278, 279, 280, 281, 282, 283, -1, + 285, 286, -1, -1, 289, 290, 291, -1, -1, 294, + 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, + 305, 306, 307, 308, 309, -1, 311, 312, 313, 314, + 315, 316, 317, 318, 319, -1, 321, 322, 323, 324, + 325, 326, -1, 328, 329, 330, 331, 332, 333, 334, + 335, -1, 337, 338, 339, 340, 341, 342, 343, 344, + 345, 346, 347, 348, 349, -1, 351, 352, 353, 354, + 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, + 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, + 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, + 385, -1, 387, 388, 389, 390, 391, 392, 393, 394, + 395, 396, 397, 398, 399, 400, 401, 402, -1, 404, + 405, 406, 407, 408, 409, 410, 411, 412, 413, -1, + 415, 416, -1, -1, 419, 420, 421, 422, 423, 424, + 425, 426, 427, 428, 429, 430, 431, 432, -1, -1, + 435, 436, 437, 438, 439, 440, -1, 442, 443, 444, + 445, 446, 447, 448, -1, 450, 451, 452, 453, 454, + 455, 456, -1, -1, 459, -1, 461, 462, 463, 464, + 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, + 475, 476, 477, 478, 479, 480, 481, 482, 483, -1, + 485, -1, -1, -1, -1, 490, 491, -1, -1, -1, + -1, -1, 497, -1, 499, 500, -1, -1, -1, 504, + -1, 506, 507, 3, 4, 5, 6, 7, 8, 9, + 10, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 21, 22, 23, 24, 25, 26, 27, 28, -1, + 30, 31, 32, -1, -1, -1, -1, 37, -1, -1, + 40, 41, -1, 43, 44, 45, 46, 47, 48, 49, + 50, 51, 52, 53, 54, -1, 56, 57, 58, 59, + 60, 61, 62, 63, 64, 65, 66, 67, 68, -1, + 70, 71, 72, 73, 74, -1, 76, -1, 78, 79, + 80, 81, 82, 83, 84, 85, 86, 87, -1, 89, + 90, 91, 92, 93, 94, -1, 96, 97, 98, 99, + 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, + 110, 111, 112, 113, 114, 115, 116, 117, 118, -1, + 120, 121, 122, 123, 124, 125, -1, 127, 128, 129, + 130, 131, -1, -1, 134, 135, 136, 137, 138, -1, + 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, + 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, + 160, -1, 162, 163, 164, 165, -1, 167, -1, 169, + 170, -1, 172, 173, 174, 175, 176, 177, -1, 179, + -1, 181, 182, 183, -1, 185, 186, 187, 188, 189, + 190, 191, 192, 193, 194, 195, 196, -1, 198, 199, + 200, 201, 202, 203, -1, 205, 206, 207, 208, 209, + 210, 211, 212, 213, 214, -1, 216, -1, 218, 219, + 220, 221, 222, 223, 224, 225, 226, 227, 228, -1, + -1, 231, 232, 233, 234, -1, 236, 237, 238, 239, + 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, + 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, + 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, + 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, + 280, 281, 282, 283, -1, 285, 286, -1, -1, 289, + 290, 291, -1, -1, 294, 295, 296, 297, 298, 299, + 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, + -1, 311, 312, 313, 314, 315, 316, 317, 318, 319, + -1, 321, 322, 323, 324, 325, 326, -1, 328, 329, + 330, 331, 332, 333, 334, 335, -1, 337, 338, 339, + 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, + -1, 351, 352, 353, 354, 355, 356, 357, 358, 359, + 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, + 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, + 380, 381, 382, 383, 384, 385, -1, 387, 388, 389, + 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, + 400, 401, 402, -1, 404, 405, 406, 407, 408, 409, + 410, 411, 412, 413, -1, 415, 416, -1, -1, 419, + 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, + 430, 431, 432, -1, -1, 435, 436, 437, 438, 439, + 440, -1, 442, 443, 444, 445, 446, 447, 448, -1, + 450, 451, 452, 453, 454, 455, 456, -1, -1, 459, + -1, 461, 462, 463, 464, 465, 466, 467, 468, 469, + 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, + 480, 481, 482, 483, -1, 485, -1, -1, -1, -1, + 490, 491, -1, -1, -1, -1, -1, 497, -1, 499, + -1, -1, -1, -1, 504, -1, 506, 507, 3, 4, + 5, 6, 7, 8, 9, 10, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 21, 22, 23, 24, + 25, 26, 27, 28, -1, 30, 31, 32, -1, -1, + -1, -1, 37, -1, -1, 40, 41, -1, 43, 44, + 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, + 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, + 65, 66, 67, 68, -1, 70, 71, 72, 73, 74, + -1, 76, -1, 78, 79, 80, 81, 82, 83, 84, + 85, 86, 87, -1, 89, 90, 91, 92, 93, 94, + -1, 96, 97, 98, 99, 100, 101, 102, 103, 104, + 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, + 115, 116, 117, 118, -1, 120, 121, 122, 123, 124, + 125, -1, 127, 128, 129, 130, 131, -1, -1, 134, + 135, 136, 137, 138, -1, 140, 141, 142, -1, 144, + 145, 146, -1, 148, 149, 150, 151, 152, 153, 154, + 155, 156, 157, 158, 159, 160, -1, 162, 163, 164, + 165, -1, 167, -1, 169, 170, 171, 172, 173, 174, + 175, 176, 177, -1, 179, -1, 181, 182, 183, -1, + 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, + 195, 196, -1, 198, 199, 200, 201, 202, 203, -1, + 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, + -1, 216, -1, 218, 219, 220, 221, 222, 223, 224, + 225, 226, 227, 228, -1, 230, 231, 232, 233, 234, + -1, 236, 237, 238, 239, 240, 241, 242, 243, 244, + 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, + 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, + 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, + 275, 276, 277, 278, 279, 280, 281, 282, 283, -1, + 285, 286, -1, -1, 289, 290, 291, -1, -1, 294, + 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, + 305, 306, 307, 308, 309, -1, 311, 312, 313, 314, + 315, 316, 317, 318, 319, -1, 321, 322, 323, 324, + 325, 326, -1, 328, 329, 330, 331, 332, 333, 334, + 335, -1, 337, 338, 339, 340, 341, 342, 343, 344, + 345, 346, 347, 348, 349, -1, 351, 352, 353, 354, + 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, + 365, 366, 367, 368, -1, 370, 371, 372, 373, 374, + 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, + 385, -1, 387, 388, 389, 390, 391, 392, 393, 394, + 395, 396, 397, 398, 399, 400, 401, 402, -1, 404, + 405, -1, 407, 408, 409, 410, 411, 412, 413, -1, + 415, 416, -1, 418, 419, 420, 421, 422, 423, 424, + 425, 426, 427, 428, 429, 430, 431, 432, -1, -1, + 435, 436, 437, 438, 439, 440, -1, 442, 443, 444, + 445, 446, 447, 448, -1, 450, 451, 452, 453, 454, + 455, 456, -1, -1, 459, -1, -1, 462, 463, 464, + 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, + 475, 476, 477, 478, 479, 480, 481, 482, 483, -1, + -1, -1, -1, -1, -1, 490, 491, -1, -1, -1, + -1, -1, 497, -1, 499, -1, -1, -1, -1, 504, + -1, 506, 507, 3, 4, 5, 6, 7, 8, 9, + 10, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 21, 22, 23, 24, 25, 26, 27, 28, 29, + 30, 31, 32, -1, -1, -1, 36, 37, -1, -1, + 40, 41, -1, 43, 44, 45, 46, 47, 48, 49, + 50, 51, 52, 53, 54, -1, 56, 57, 58, 59, + 60, 61, 62, 63, 64, 65, 66, 67, 68, -1, + 70, 71, 72, 73, 74, -1, 76, -1, 78, 79, + 80, 81, 82, 83, 84, 85, 86, 87, -1, 89, + 90, 91, 92, 93, 94, -1, 96, 97, 98, 99, + 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, + 110, 111, 112, 113, 114, 115, 116, 117, 118, -1, + 120, 121, 122, 123, 124, 125, -1, 127, 128, 129, + 130, 131, -1, -1, 134, 135, 136, 137, 138, -1, + 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, + 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, + 160, -1, 162, 163, 164, 165, -1, 167, -1, 169, + 170, -1, 172, 173, 174, 175, 176, 177, -1, 179, + -1, 181, 182, 183, -1, 185, 186, 187, 188, 189, + 190, 191, 192, 193, 194, 195, 196, -1, 198, 199, + 200, 201, 202, 203, -1, 205, 206, 207, 208, 209, + 210, 211, 212, 213, 214, -1, 216, -1, 218, 219, + 220, 221, 222, 223, 224, 225, 226, 227, 228, -1, + -1, 231, 232, 233, 234, -1, 236, 237, 238, 239, + 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, + 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, + 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, + 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, + 280, 281, 282, 283, -1, 285, 286, -1, -1, 289, + 290, 291, -1, -1, 294, 295, 296, 297, 298, 299, + 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, + -1, 311, 312, 313, 314, 315, 316, 317, 318, 319, + -1, 321, 322, 323, 324, 325, 326, -1, 328, 329, + 330, 331, 332, 333, 334, 335, -1, 337, 338, 339, + 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, + -1, 351, 352, 353, 354, 355, 356, 357, 358, 359, + 360, 361, 362, 363, 364, 365, 366, 367, 368, -1, + 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, + 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, + 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, + 400, 401, 402, -1, 404, 405, -1, 407, 408, 409, + 410, 411, 412, 413, -1, 415, 416, -1, -1, 419, + 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, + 430, 431, 432, -1, -1, 435, 436, 437, 438, 439, + 440, -1, 442, 443, 444, 445, 446, 447, 448, -1, + 450, 451, 452, 453, 454, 455, 456, -1, -1, 459, + -1, -1, 462, 463, 464, 465, 466, 467, 468, 469, + 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, + 480, 481, 482, 483, -1, -1, -1, -1, -1, -1, + 490, 491, -1, -1, -1, -1, -1, 497, -1, 499, + -1, -1, -1, -1, 504, -1, 506, 507, 3, 4, + 5, 6, 7, 8, 9, 10, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 21, 22, 23, 24, + 25, 26, 27, 28, 29, 30, 31, 32, -1, -1, + -1, -1, 37, -1, -1, 40, 41, -1, 43, 44, + 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, + -1, 56, 57, 58, 59, 60, 61, 62, 63, 64, + 65, 66, 67, 68, -1, 70, 71, 72, 73, 74, + -1, 76, -1, 78, 79, 80, 81, 82, 83, 84, + 85, 86, 87, -1, 89, 90, 91, 92, 93, 94, + -1, 96, 97, 98, 99, 100, 101, 102, 103, 104, + 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, + 115, 116, 117, 118, -1, 120, 121, 122, 123, 124, + 125, -1, 127, 128, 129, 130, 131, -1, -1, 134, + 135, 136, 137, 138, -1, 140, 141, 142, -1, 144, + 145, 146, -1, 148, 149, 150, 151, 152, 153, 154, + 155, 156, 157, 158, 159, 160, -1, 162, 163, 164, + 165, -1, 167, -1, 169, 170, -1, 172, 173, 174, + 175, 176, 177, -1, 179, -1, 181, 182, 183, -1, + 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, + 195, 196, -1, 198, 199, 200, 201, 202, 203, -1, + 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, + -1, 216, -1, 218, 219, 220, 221, 222, 223, 224, + 225, 226, 227, 228, -1, -1, 231, 232, 233, 234, + -1, 236, 237, 238, 239, 240, 241, 242, 243, 244, + 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, + 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, + 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, + 275, 276, 277, 278, 279, 280, 281, 282, 283, -1, + 285, 286, -1, -1, 289, 290, 291, -1, -1, 294, + 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, + 305, 306, 307, 308, 309, -1, 311, 312, 313, 314, + 315, 316, 317, 318, 319, -1, 321, 322, 323, 324, + 325, 326, -1, 328, 329, 330, 331, 332, 333, 334, + 335, -1, 337, 338, 339, 340, 341, 342, 343, 344, + 345, 346, 347, 348, 349, -1, 351, 352, 353, 354, + 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, + 365, 366, 367, 368, -1, 370, 371, 372, 373, 374, + 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, + 385, -1, 387, 388, 389, 390, 391, 392, 393, 394, + 395, 396, 397, 398, 399, 400, 401, 402, -1, 404, + 405, -1, 407, 408, 409, 410, 411, 412, 413, -1, + 415, 416, -1, -1, 419, 420, 421, 422, 423, 424, + 425, 426, 427, 428, 429, 430, 431, 432, -1, -1, + 435, 436, 437, 438, 439, 440, -1, 442, 443, 444, + 445, 446, 447, 448, -1, 450, 451, 452, 453, 454, + 455, 456, -1, -1, 459, -1, -1, 462, 463, 464, + 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, + 475, 476, 477, 478, 479, 480, 481, 482, 483, -1, + -1, -1, -1, -1, -1, 490, 491, 492, -1, -1, + -1, -1, 497, -1, 499, -1, -1, -1, -1, 504, + -1, 506, 507, 3, 4, 5, 6, 7, 8, 9, + 10, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 21, 22, 23, 24, 25, 26, 27, 28, 29, + 30, 31, 32, -1, -1, -1, -1, 37, -1, -1, + 40, 41, -1, 43, 44, 45, 46, 47, 48, 49, + 50, 51, 52, 53, 54, -1, 56, 57, 58, 59, + 60, 61, 62, 63, 64, 65, 66, 67, 68, -1, + 70, 71, 72, 73, 74, -1, 76, -1, 78, 79, + 80, 81, 82, 83, 84, 85, 86, 87, -1, 89, + 90, 91, 92, 93, 94, -1, 96, 97, 98, 99, + 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, + 110, 111, 112, 113, 114, 115, 116, 117, 118, -1, + 120, 121, 122, 123, 124, 125, -1, 127, 128, 129, + 130, 131, -1, -1, 134, 135, 136, 137, 138, -1, + 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, + 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, + 160, -1, 162, 163, 164, 165, -1, 167, -1, 169, + 170, -1, 172, 173, 174, 175, 176, 177, -1, 179, + -1, 181, 182, 183, -1, 185, 186, 187, 188, 189, + 190, 191, 192, 193, 194, 195, 196, -1, 198, 199, + 200, 201, 202, 203, -1, 205, 206, 207, 208, 209, + 210, 211, 212, 213, 214, -1, 216, -1, 218, 219, + 220, 221, 222, 223, 224, 225, 226, 227, 228, -1, + -1, 231, 232, 233, 234, -1, 236, 237, 238, 239, + 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, + 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, + 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, + 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, + 280, 281, 282, 283, -1, 285, 286, -1, -1, 289, + 290, 291, -1, -1, 294, 295, 296, 297, 298, 299, + 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, + -1, 311, 312, 313, 314, 315, 316, 317, 318, 319, + -1, 321, 322, 323, 324, 325, 326, -1, 328, 329, + 330, 331, 332, 333, 334, 335, -1, 337, 338, 339, + 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, + -1, 351, 352, 353, 354, 355, 356, 357, 358, 359, + 360, 361, 362, 363, 364, 365, 366, 367, 368, -1, + 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, + 380, 381, 382, 383, 384, 385, -1, 387, 388, 389, + 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, + 400, 401, 402, -1, 404, 405, -1, 407, 408, 409, + 410, 411, 412, 413, -1, 415, 416, -1, -1, 419, + 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, + 430, 431, 432, -1, -1, 435, 436, 437, 438, 439, + 440, -1, 442, 443, 444, 445, 446, 447, 448, -1, + 450, 451, 452, 453, 454, 455, 456, -1, -1, 459, + -1, -1, 462, 463, 464, 465, 466, 467, 468, 469, + 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, + 480, 481, 482, 483, -1, -1, -1, -1, -1, -1, + 490, 491, 492, -1, -1, -1, -1, 497, -1, 499, + -1, -1, -1, -1, 504, -1, 506, 507, 3, 4, + 5, 6, 7, 8, 9, 10, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 21, 22, 23, 24, + 25, 26, 27, 28, -1, 30, 31, 32, -1, -1, + -1, -1, 37, -1, -1, 40, 41, -1, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, - 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, - 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, - 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, - 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, - 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, + -1, 56, 57, 58, 59, 60, 61, 62, 63, 64, + 65, 66, 67, 68, -1, 70, 71, 72, 73, 74, + -1, 76, -1, 78, 79, 80, 81, 82, 83, 84, + 85, 86, 87, -1, 89, 90, 91, 92, 93, 94, + -1, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, - 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, - 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, - 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, - 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, - 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, - 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, - 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, + 115, 116, 117, 118, -1, 120, 121, 122, 123, 124, + 125, -1, 127, 128, 129, 130, 131, -1, -1, 134, + 135, 136, 137, 138, -1, 140, 141, 142, -1, 144, + 145, 146, -1, 148, 149, 150, 151, 152, 153, 154, + 155, 156, 157, 158, 159, 160, -1, 162, 163, 164, + 165, -1, 167, -1, 169, 170, -1, 172, 173, 174, + 175, 176, 177, -1, 179, -1, 181, 182, 183, -1, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, - 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, + 195, 196, -1, 198, 199, 200, 201, 202, 203, -1, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, - 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, - 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, - 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, + -1, 216, -1, 218, 219, 220, 221, 222, 223, 224, + 225, 226, 227, 228, -1, -1, 231, 232, 233, 234, + -1, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, - 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, - 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, + 275, 276, 277, 278, 279, 280, 281, 282, 283, -1, + 285, 286, -1, -1, 289, 290, 291, -1, -1, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, - 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, - 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, - 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, - 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, - 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, + 305, 306, 307, 308, 309, -1, 311, 312, 313, 314, + 315, 316, 317, 318, 319, -1, 321, 322, 323, 324, + 325, 326, -1, 328, 329, 330, 331, 332, 333, 334, + 335, -1, 337, 338, 339, 340, 341, 342, 343, 344, + 345, 346, 347, 348, 349, -1, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, - 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, + 365, 366, 367, 368, -1, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, - 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, - 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, - 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, - 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, - 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, - 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, - 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, - 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, + 385, -1, 387, 388, 389, 390, 391, 392, 393, 394, + 395, 396, 397, 398, 399, 400, 401, 402, -1, 404, + 405, -1, 407, 408, 409, 410, 411, 412, 413, -1, + 415, 416, -1, -1, 419, 420, 421, 422, 423, 424, + 425, 426, 427, 428, 429, 430, 431, 432, -1, -1, + 435, 436, 437, 438, 439, 440, -1, 442, 443, 444, + 445, 446, 447, 448, -1, 450, 451, 452, 453, 454, + 455, 456, -1, -1, 459, -1, -1, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, - 475, 476, 477, 478, 479, 480, 481, 482, 3, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 475, 476, 477, 478, 479, 480, 481, 482, 483, -1, + -1, -1, -1, -1, -1, 490, 491, 492, -1, -1, + -1, -1, 497, -1, 499, -1, -1, -1, -1, 504, + -1, 506, 507, 3, 4, 5, 6, 7, 8, 9, + 10, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 21, 22, 23, 24, 25, 26, 27, 28, 29, + 30, 31, 32, -1, -1, -1, -1, 37, -1, -1, + 40, 41, -1, 43, 44, 45, 46, 47, 48, 49, + 50, 51, 52, 53, 54, -1, 56, 57, 58, 59, + 60, 61, 62, 63, 64, 65, 66, 67, 68, -1, + 70, 71, 72, 73, 74, -1, 76, -1, 78, 79, + 80, 81, 82, 83, 84, 85, 86, 87, -1, 89, + 90, 91, 92, 93, 94, -1, 96, 97, 98, 99, + 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, + 110, 111, 112, 113, 114, 115, 116, 117, 118, -1, + 120, 121, 122, 123, 124, 125, -1, 127, 128, 129, + 130, 131, -1, -1, 134, 135, 136, 137, 138, -1, + 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, + 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, + 160, -1, 162, 163, 164, 165, -1, 167, -1, 169, + 170, -1, 172, 173, 174, 175, 176, 177, -1, 179, + -1, 181, 182, 183, -1, 185, 186, 187, 188, 189, + 190, 191, 192, 193, 194, 195, 196, -1, 198, 199, + 200, 201, 202, 203, -1, 205, 206, 207, 208, 209, + 210, 211, 212, 213, 214, -1, 216, -1, 218, 219, + 220, 221, 222, 223, 224, 225, 226, 227, 228, -1, + -1, 231, 232, 233, 234, -1, 236, 237, 238, 239, + 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, + 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, + 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, + 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, + 280, 281, 282, 283, -1, 285, 286, -1, -1, 289, + 290, 291, -1, -1, 294, 295, 296, 297, 298, 299, + 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, + -1, 311, 312, 313, 314, 315, 316, 317, 318, 319, + -1, 321, 322, 323, 324, 325, 326, -1, 328, 329, + 330, 331, 332, 333, 334, 335, -1, 337, 338, 339, + 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, + -1, 351, 352, 353, 354, 355, 356, 357, 358, 359, + 360, 361, 362, 363, 364, 365, 366, 367, 368, -1, + 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, + 380, 381, 382, 383, 384, 385, -1, 387, 388, 389, + 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, + 400, 401, 402, -1, 404, 405, -1, 407, 408, 409, + 410, 411, 412, 413, -1, 415, 416, -1, -1, 419, + 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, + 430, 431, 432, -1, -1, 435, 436, 437, 438, 439, + 440, -1, 442, 443, 444, 445, 446, 447, 448, -1, + 450, 451, 452, 453, 454, 455, 456, -1, -1, 459, + -1, -1, 462, 463, 464, 465, 466, 467, 468, 469, + 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, + 480, 481, 482, 483, -1, -1, -1, -1, -1, -1, + 490, 491, -1, -1, -1, -1, -1, 497, -1, 499, + -1, -1, -1, -1, 504, -1, 506, 507, 3, 4, + 5, 6, 7, 8, 9, 10, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 21, 22, 23, 24, - 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, - 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, + 25, 26, 27, 28, -1, 30, 31, 32, -1, -1, + -1, -1, 37, -1, -1, 40, 41, -1, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, - 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, - 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, - 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, - 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, - 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, + -1, 56, 57, 58, 59, 60, 61, 62, 63, 64, + 65, 66, 67, 68, -1, 70, 71, 72, 73, 74, + -1, 76, -1, 78, 79, 80, 81, 82, 83, 84, + 85, 86, 87, -1, 89, 90, 91, 92, 93, 94, + -1, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, - 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, - 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, - 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, - 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, - 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, - 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, - 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, + 115, 116, 117, 118, -1, 120, 121, 122, 123, 124, + 125, -1, 127, 128, 129, 130, 131, -1, -1, 134, + 135, 136, 137, 138, -1, 140, 141, 142, -1, 144, + 145, 146, -1, 148, 149, 150, 151, 152, 153, 154, + 155, 156, 157, 158, 159, 160, -1, 162, 163, 164, + 165, -1, 167, -1, 169, 170, -1, 172, 173, 174, + 175, 176, 177, -1, 179, -1, 181, 182, 183, -1, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, - 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, + 195, 196, -1, 198, 199, 200, 201, 202, 203, -1, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, - 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, - 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, - 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, + -1, 216, -1, 218, 219, 220, 221, 222, 223, 224, + 225, 226, 227, 228, -1, -1, 231, 232, 233, 234, + -1, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, - 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, - 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, + 275, 276, 277, 278, 279, 280, 281, 282, 283, -1, + 285, 286, -1, -1, 289, 290, 291, -1, -1, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, - 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, - 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, - 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, - 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, - 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, + 305, 306, 307, 308, 309, -1, 311, 312, 313, 314, + 315, 316, 317, 318, 319, -1, 321, 322, 323, 324, + 325, 326, -1, 328, 329, 330, 331, 332, 333, 334, + 335, -1, 337, 338, 339, 340, 341, 342, 343, 344, + 345, 346, 347, 348, 349, -1, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, - 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, + 365, 366, 367, 368, -1, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, - 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, - 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, - 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, - 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, - 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, - 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, - 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, - 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, + 385, -1, 387, 388, 389, 390, 391, 392, 393, 394, + 395, 396, 397, 398, 399, 400, 401, 402, -1, 404, + 405, -1, 407, 408, 409, 410, 411, 412, 413, -1, + 415, 416, -1, -1, 419, 420, 421, 422, 423, 424, + 425, 426, 427, 428, 429, 430, 431, 432, -1, -1, + 435, 436, 437, 438, 439, 440, -1, 442, 443, 444, + 445, 446, 447, 448, -1, 450, 451, 452, 453, 454, + 455, 456, -1, -1, 459, -1, -1, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, - 475, 476, 477, 478, 479, 480, 481, 482, 3, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 475, 476, 477, 478, 479, 480, 481, 482, 483, -1, + -1, -1, -1, -1, -1, 490, 491, -1, -1, -1, + -1, -1, 497, -1, 499, 500, -1, -1, -1, 504, + -1, 506, 507, 3, 4, 5, 6, 7, 8, 9, + 10, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 21, 22, 23, 24, 25, 26, 27, 28, -1, + 30, 31, 32, -1, -1, -1, -1, 37, -1, -1, + 40, 41, -1, 43, 44, 45, 46, 47, 48, 49, + 50, 51, 52, 53, 54, -1, 56, 57, 58, 59, + 60, 61, 62, 63, 64, 65, 66, 67, 68, -1, + 70, 71, 72, 73, 74, -1, 76, -1, 78, 79, + 80, 81, 82, 83, 84, 85, 86, 87, -1, 89, + 90, 91, 92, 93, 94, -1, 96, 97, 98, 99, + 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, + 110, 111, 112, 113, 114, 115, 116, 117, 118, -1, + 120, 121, 122, 123, 124, 125, -1, 127, 128, 129, + 130, 131, -1, -1, 134, 135, 136, 137, 138, -1, + 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, + 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, + 160, -1, 162, 163, 164, 165, -1, 167, -1, 169, + 170, -1, 172, 173, 174, 175, 176, 177, -1, 179, + -1, 181, 182, 183, -1, 185, 186, 187, 188, 189, + 190, 191, 192, 193, 194, 195, 196, -1, 198, 199, + 200, 201, 202, 203, -1, 205, 206, 207, 208, 209, + 210, 211, 212, 213, 214, -1, 216, -1, 218, 219, + 220, 221, 222, 223, 224, 225, 226, 227, 228, -1, + -1, 231, 232, 233, 234, -1, 236, 237, 238, 239, + 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, + 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, + 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, + 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, + 280, 281, 282, 283, -1, 285, 286, -1, -1, 289, + 290, 291, -1, -1, 294, 295, 296, 297, 298, 299, + 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, + -1, 311, 312, 313, 314, 315, 316, 317, 318, 319, + -1, 321, 322, 323, 324, 325, 326, -1, 328, 329, + 330, 331, 332, 333, 334, 335, -1, 337, 338, 339, + 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, + -1, 351, 352, 353, 354, 355, 356, 357, 358, 359, + 360, 361, 362, 363, 364, 365, 366, 367, 368, -1, + 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, + 380, 381, 382, 383, 384, 385, -1, 387, 388, 389, + 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, + 400, 401, 402, -1, 404, 405, -1, 407, 408, 409, + 410, 411, 412, 413, -1, 415, 416, -1, -1, 419, + 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, + 430, 431, 432, -1, -1, 435, 436, 437, 438, 439, + 440, -1, 442, 443, 444, 445, 446, 447, 448, 449, + 450, 451, 452, 453, 454, 455, 456, -1, -1, 459, + -1, -1, 462, 463, 464, 465, 466, 467, 468, 469, + 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, + 480, 481, 482, 483, -1, -1, -1, -1, -1, -1, + 490, 491, -1, -1, -1, -1, -1, 497, -1, 499, + -1, -1, -1, -1, 504, -1, 506, 507, 3, 4, + 5, 6, 7, 8, 9, 10, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 21, 22, 23, 24, - 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, - 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, + 25, 26, 27, 28, -1, 30, 31, 32, -1, -1, + -1, -1, 37, -1, -1, 40, 41, -1, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, - 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, - 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, - 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, - 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, - 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, + -1, 56, 57, 58, 59, 60, 61, 62, 63, 64, + 65, 66, 67, 68, -1, 70, 71, 72, 73, 74, + -1, 76, -1, 78, 79, 80, 81, 82, 83, 84, + 85, 86, 87, -1, 89, 90, 91, 92, 93, 94, + -1, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, - 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, - 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, - 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, - 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, - 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, - 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, - 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, + 115, 116, 117, 118, -1, 120, 121, 122, 123, 124, + 125, -1, 127, 128, 129, 130, 131, -1, -1, 134, + 135, 136, 137, 138, -1, 140, 141, 142, -1, 144, + 145, 146, -1, 148, 149, 150, 151, 152, 153, 154, + 155, 156, 157, 158, 159, 160, -1, 162, 163, 164, + 165, -1, 167, -1, 169, 170, -1, 172, 173, 174, + 175, 176, 177, -1, 179, -1, 181, 182, 183, -1, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, - 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, + 195, 196, -1, 198, 199, 200, 201, 202, 203, -1, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, - 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, - 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, - 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, + -1, 216, -1, 218, 219, 220, 221, 222, 223, 224, + 225, 226, 227, 228, -1, -1, 231, 232, 233, 234, + -1, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, - 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, - 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, + 275, 276, 277, 278, 279, 280, 281, 282, 283, -1, + 285, 286, -1, -1, 289, 290, 291, -1, -1, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, - 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, - 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, - 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, - 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, - 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, + 305, 306, 307, 308, 309, -1, 311, 312, 313, 314, + 315, 316, 317, 318, 319, -1, 321, 322, 323, 324, + 325, 326, -1, 328, 329, 330, 331, 332, 333, 334, + 335, -1, 337, 338, 339, 340, 341, 342, 343, 344, + 345, 346, 347, 348, 349, -1, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, - 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, + 365, 366, 367, 368, -1, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, - 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, - 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, - 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, - 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, - 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, - 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, - 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, - 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, + 385, -1, 387, 388, 389, 390, 391, 392, 393, 394, + 395, 396, 397, 398, 399, 400, 401, 402, -1, 404, + 405, -1, 407, 408, 409, 410, 411, 412, 413, -1, + 415, 416, -1, -1, 419, 420, 421, 422, 423, 424, + 425, 426, 427, 428, 429, 430, 431, 432, -1, -1, + 435, 436, 437, 438, 439, 440, -1, 442, 443, 444, + 445, 446, 447, 448, -1, 450, 451, 452, 453, 454, + 455, 456, -1, -1, 459, -1, -1, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, - 475, 476, 477, 478, 479, 480, 481, 482, 3, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 475, 476, 477, 478, 479, 480, 481, 482, 483, -1, + -1, -1, -1, -1, -1, 490, 491, -1, -1, -1, + -1, -1, 497, -1, 499, 500, -1, -1, -1, 504, + -1, 506, 507, 3, 4, 5, 6, 7, 8, 9, + 10, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 21, 22, 23, 24, 25, 26, 27, 28, -1, + 30, 31, 32, -1, -1, -1, -1, 37, -1, -1, + 40, 41, -1, 43, 44, 45, 46, 47, 48, 49, + 50, 51, 52, 53, 54, -1, 56, 57, 58, 59, + 60, 61, 62, 63, 64, 65, 66, 67, 68, -1, + 70, 71, 72, 73, 74, -1, 76, -1, 78, 79, + 80, 81, 82, 83, 84, 85, 86, 87, -1, 89, + 90, 91, 92, 93, 94, -1, 96, 97, 98, 99, + 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, + 110, 111, 112, 113, 114, 115, 116, 117, 118, -1, + 120, 121, 122, 123, 124, 125, -1, 127, 128, 129, + 130, 131, -1, -1, 134, 135, 136, 137, 138, -1, + 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, + 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, + 160, -1, 162, 163, 164, 165, -1, 167, -1, 169, + 170, 171, 172, 173, 174, 175, 176, 177, -1, 179, + -1, 181, 182, 183, -1, 185, 186, 187, 188, 189, + 190, 191, 192, 193, 194, 195, 196, -1, 198, 199, + 200, 201, 202, 203, -1, 205, 206, 207, 208, 209, + 210, 211, 212, 213, 214, -1, 216, -1, 218, 219, + 220, 221, 222, 223, 224, 225, 226, 227, 228, -1, + -1, 231, 232, 233, 234, -1, 236, 237, 238, 239, + 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, + 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, + 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, + 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, + 280, 281, 282, 283, -1, 285, 286, -1, -1, 289, + 290, 291, -1, -1, 294, 295, 296, 297, 298, 299, + 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, + -1, 311, 312, 313, 314, 315, 316, 317, 318, 319, + -1, 321, 322, 323, 324, 325, 326, -1, 328, 329, + 330, 331, 332, 333, 334, 335, -1, 337, 338, 339, + 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, + -1, 351, 352, 353, 354, 355, 356, 357, 358, 359, + 360, 361, 362, 363, 364, 365, 366, 367, 368, -1, + 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, + 380, 381, 382, 383, 384, 385, -1, 387, 388, 389, + 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, + 400, 401, 402, -1, 404, 405, -1, 407, 408, 409, + 410, 411, 412, 413, -1, 415, 416, -1, -1, 419, + 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, + 430, 431, 432, -1, -1, 435, 436, 437, 438, 439, + 440, -1, 442, 443, 444, 445, 446, 447, 448, -1, + 450, 451, 452, 453, 454, 455, 456, -1, -1, 459, + -1, -1, 462, 463, 464, 465, 466, 467, 468, 469, + 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, + 480, 481, 482, 483, -1, -1, -1, -1, -1, -1, + 490, 491, -1, -1, -1, -1, -1, 497, -1, 499, + -1, -1, -1, -1, 504, -1, 506, 507, 3, 4, + 5, 6, 7, 8, 9, 10, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 21, 22, 23, 24, 25, 26, 27, 28, -1, 30, 31, 32, -1, -1, - -1, -1, -1, -1, -1, 40, 41, -1, 43, 44, + -1, -1, 37, -1, -1, 40, 41, -1, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, - -1, 56, 57, 58, 59, 60, 61, -1, 63, 64, + -1, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, -1, 70, 71, 72, 73, 74, -1, 76, -1, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, -1, 89, 90, 91, 92, 93, 94, -1, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, - 115, 116, -1, 118, -1, 120, 121, 122, 123, 124, + 115, 116, 117, 118, -1, 120, 121, 122, 123, 124, 125, -1, 127, 128, 129, 130, 131, -1, -1, 134, 135, 136, 137, 138, -1, 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, 150, 151, 152, 153, 154, - 155, 156, 157, 158, -1, 160, -1, 162, 163, 164, + 155, 156, 157, 158, 159, 160, -1, 162, 163, 164, 165, -1, 167, -1, 169, 170, -1, 172, 173, 174, 175, 176, 177, -1, 179, -1, 181, 182, 183, -1, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, @@ -13337,8 +9519,8 @@ static const yytype_int16 yycheck[] = -1, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, - 265, 266, 267, 268, 269, 270, 271, -1, 273, 274, - 275, 276, -1, 278, 279, 280, 281, 282, 283, -1, + 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, + 275, 276, 277, 278, 279, 280, 281, 282, 283, -1, 285, 286, -1, -1, 289, 290, 291, -1, -1, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, -1, 311, 312, 313, 314, @@ -13351,26 +9533,79 @@ static const yytype_int16 yycheck[] = 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, -1, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, -1, 404, - 405, -1, 407, 408, 409, 410, 411, 412, 413, -1, - 415, 416, -1, -1, 419, 420, 421, 422, 423, -1, + 405, 406, 407, 408, 409, 410, 411, 412, 413, -1, + 415, 416, -1, -1, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, -1, -1, 435, 436, 437, 438, 439, 440, -1, 442, 443, 444, 445, 446, 447, 448, -1, 450, 451, 452, 453, 454, 455, 456, -1, -1, 459, -1, -1, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, - 475, 476, 477, 478, 479, 480, 481, 482, 3, -1, - 5, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 475, 476, 477, 478, 479, 480, 481, 482, 483, -1, + -1, -1, -1, -1, -1, 490, 491, -1, -1, -1, + -1, -1, 497, -1, 499, -1, -1, -1, -1, 504, + -1, 506, 507, 3, 4, 5, 6, 7, 8, 9, + 10, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 21, 22, 23, 24, 25, 26, 27, 28, -1, + 30, 31, 32, -1, -1, -1, -1, 37, -1, -1, + 40, 41, -1, 43, 44, 45, 46, 47, 48, 49, + 50, 51, 52, 53, 54, -1, 56, 57, 58, 59, + 60, 61, 62, 63, 64, 65, 66, 67, 68, -1, + 70, 71, 72, 73, 74, -1, 76, -1, 78, 79, + 80, 81, 82, 83, 84, 85, 86, 87, -1, 89, + 90, 91, 92, 93, 94, -1, 96, 97, 98, 99, + 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, + 110, 111, 112, 113, 114, 115, 116, 117, 118, -1, + 120, 121, 122, 123, 124, 125, -1, 127, 128, 129, + 130, 131, -1, -1, 134, 135, 136, 137, 138, -1, + 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, + 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, + 160, -1, 162, 163, 164, 165, -1, 167, -1, 169, + 170, -1, 172, 173, 174, 175, 176, 177, -1, 179, + -1, 181, 182, 183, -1, 185, 186, 187, 188, 189, + 190, 191, 192, 193, 194, 195, 196, -1, 198, 199, + 200, 201, 202, 203, -1, 205, 206, 207, 208, 209, + 210, 211, 212, 213, 214, -1, 216, -1, 218, 219, + 220, 221, 222, 223, 224, 225, 226, 227, 228, -1, + -1, 231, 232, 233, 234, -1, 236, 237, 238, 239, + 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, + 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, + 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, + 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, + 280, 281, 282, 283, -1, 285, 286, -1, -1, 289, + 290, 291, -1, -1, 294, 295, 296, 297, 298, 299, + 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, + -1, 311, 312, 313, 314, 315, 316, 317, 318, 319, + -1, 321, 322, 323, 324, 325, 326, -1, 328, 329, + 330, 331, 332, 333, 334, 335, -1, 337, 338, 339, + 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, + -1, 351, 352, 353, 354, 355, 356, 357, 358, 359, + 360, 361, 362, 363, 364, 365, 366, 367, 368, -1, + 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, + 380, 381, 382, 383, 384, 385, -1, 387, 388, 389, + 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, + 400, 401, 402, -1, 404, 405, -1, 407, 408, 409, + 410, 411, 412, 413, -1, 415, 416, -1, -1, 419, + 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, + 430, 431, 432, -1, -1, 435, 436, 437, 438, 439, + 440, -1, 442, 443, 444, 445, 446, 447, 448, -1, + 450, 451, 452, 453, 454, 455, 456, -1, 458, 459, + -1, -1, 462, 463, 464, 465, 466, 467, 468, 469, + 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, + 480, 481, 482, 483, -1, -1, -1, -1, -1, -1, + 490, 491, -1, -1, -1, -1, -1, 497, -1, 499, + -1, -1, -1, -1, 504, -1, 506, 507, 3, 4, + 5, 6, 7, 8, 9, 10, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 21, 22, 23, 24, 25, 26, 27, 28, -1, 30, 31, 32, -1, -1, - -1, -1, -1, -1, -1, 40, 41, -1, 43, 44, + -1, -1, 37, -1, -1, 40, 41, -1, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, - -1, 56, 57, 58, 59, 60, 61, -1, -1, 64, + -1, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, -1, 70, 71, 72, 73, 74, -1, 76, -1, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, -1, 89, 90, 91, 92, 93, 94, - -1, 96, 97, 98, 99, 100, 101, 102, 103, -1, - -1, 106, 107, 108, 109, 110, 111, 112, 113, 114, - 115, 116, -1, 118, -1, 120, 121, 122, 123, 124, + -1, 96, 97, 98, 99, 100, 101, 102, 103, 104, + 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, + 115, 116, 117, 118, -1, 120, 121, 122, 123, 124, 125, -1, 127, 128, 129, 130, 131, -1, -1, 134, 135, 136, 137, 138, -1, 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, 150, 151, 152, 153, 154, @@ -13382,12 +9617,12 @@ static const yytype_int16 yycheck[] = 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, -1, 216, -1, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, -1, -1, 231, 232, 233, 234, - -1, 236, 237, 238, -1, -1, 241, 242, 243, 244, + -1, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, - 265, 266, 267, 268, 269, 270, 271, -1, 273, 274, - 275, 276, -1, 278, 279, 280, 281, 282, 283, -1, - 285, 286, 287, -1, 289, 290, 291, -1, -1, 294, + 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, + 275, 276, 277, 278, 279, 280, 281, 282, 283, -1, + 285, 286, -1, -1, 289, 290, 291, -1, -1, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, -1, 311, 312, 313, 314, 315, 316, 317, 318, 319, -1, 321, 322, 323, 324, @@ -13406,23 +9641,76 @@ static const yytype_int16 yycheck[] = 445, 446, 447, 448, -1, 450, 451, 452, 453, 454, 455, 456, -1, -1, 459, -1, -1, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, - 475, 476, 477, 478, 479, 480, 481, 482, 3, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 475, 476, 477, 478, 479, 480, 481, 482, 483, -1, + -1, -1, -1, -1, -1, 490, 491, -1, -1, -1, + -1, -1, 497, -1, 499, -1, -1, -1, -1, 504, + -1, 506, 507, 3, 4, 5, 6, 7, 8, 9, + 10, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 21, 22, 23, 24, 25, 26, 27, 28, -1, + 30, 31, 32, -1, -1, -1, -1, 37, -1, -1, + 40, 41, -1, 43, 44, 45, 46, 47, 48, 49, + 50, 51, 52, 53, 54, -1, 56, 57, 58, 59, + 60, 61, 62, 63, 64, 65, 66, 67, 68, -1, + 70, 71, 72, 73, 74, -1, 76, -1, 78, 79, + 80, 81, 82, 83, 84, 85, 86, 87, -1, 89, + 90, 91, 92, 93, 94, -1, 96, 97, 98, 99, + 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, + 110, 111, 112, 113, 114, 115, 116, 117, 118, -1, + 120, 121, 122, 123, 124, 125, -1, 127, 128, 129, + 130, 131, -1, -1, 134, 135, 136, 137, 138, -1, + 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, + 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, + 160, -1, 162, 163, 164, 165, -1, 167, -1, 169, + 170, -1, 172, 173, 174, 175, 176, 177, -1, 179, + -1, 181, 182, 183, -1, 185, 186, 187, 188, 189, + 190, 191, 192, 193, 194, 195, 196, -1, 198, 199, + 200, 201, 202, 203, -1, 205, 206, 207, 208, 209, + 210, 211, 212, 213, 214, -1, 216, -1, 218, 219, + 220, 221, 222, 223, 224, 225, 226, 227, 228, -1, + -1, 231, 232, 233, 234, -1, 236, 237, 238, 239, + 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, + 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, + 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, + 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, + 280, 281, 282, 283, -1, 285, 286, -1, -1, 289, + 290, 291, -1, -1, 294, 295, 296, 297, 298, 299, + 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, + -1, 311, 312, 313, 314, 315, 316, 317, 318, 319, + -1, 321, 322, 323, 324, 325, 326, -1, 328, 329, + 330, 331, 332, 333, 334, 335, -1, 337, 338, 339, + 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, + -1, 351, 352, 353, 354, 355, 356, 357, 358, 359, + 360, 361, 362, 363, 364, 365, 366, 367, 368, -1, + 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, + 380, 381, 382, 383, 384, 385, -1, 387, 388, 389, + 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, + 400, 401, 402, -1, 404, 405, -1, 407, 408, 409, + 410, 411, 412, 413, -1, 415, 416, -1, -1, 419, + 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, + 430, 431, 432, -1, -1, 435, 436, 437, 438, 439, + 440, -1, 442, 443, 444, 445, 446, 447, 448, -1, + 450, 451, 452, 453, 454, 455, 456, -1, -1, 459, + -1, -1, 462, 463, 464, 465, 466, 467, 468, 469, + 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, + 480, 481, 482, 483, -1, -1, -1, -1, -1, -1, + 490, 491, -1, -1, -1, -1, -1, 497, -1, 499, + -1, -1, -1, -1, 504, -1, 506, 507, 3, 4, + 5, 6, 7, 8, 9, 10, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 21, 22, 23, 24, - 25, 26, 27, 28, -1, 30, 31, 32, 33, 34, - -1, -1, -1, -1, -1, 40, 41, -1, 43, 44, + 25, 26, 27, 28, -1, 30, 31, 32, -1, -1, + -1, -1, 37, -1, -1, 40, 41, -1, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, - -1, 56, 57, 58, 59, 60, 61, -1, -1, 64, + -1, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, -1, 70, 71, 72, 73, 74, -1, 76, -1, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, -1, 89, 90, 91, 92, 93, 94, - -1, 96, 97, 98, 99, 100, 101, 102, 103, -1, - -1, 106, 107, 108, 109, 110, 111, 112, 113, 114, - 115, 116, -1, 118, -1, 120, 121, 122, 123, 124, + -1, 96, 97, 98, 99, 100, 101, 102, 103, 104, + 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, + 115, 116, 117, 118, -1, 120, 121, 122, 123, 124, 125, -1, 127, 128, 129, 130, 131, -1, -1, 134, 135, 136, 137, 138, -1, 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, 150, 151, 152, 153, 154, - 155, 156, 157, 158, -1, 160, -1, 162, 163, 164, + 155, 156, 157, 158, 159, 160, -1, 162, 163, 164, 165, -1, 167, -1, 169, 170, -1, 172, 173, 174, 175, 176, 177, -1, 179, -1, 181, 182, 183, -1, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, @@ -13430,11 +9718,11 @@ static const yytype_int16 yycheck[] = 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, -1, 216, -1, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, -1, -1, 231, 232, 233, 234, - -1, 236, 237, 238, -1, -1, 241, 242, 243, 244, + -1, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, - 265, 266, 267, 268, 269, 270, 271, -1, 273, 274, - 275, 276, -1, 278, 279, 280, 281, 282, 283, -1, + 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, + 275, 276, 277, 278, 279, 280, 281, 282, 283, -1, 285, 286, -1, -1, 289, 290, 291, -1, -1, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, -1, 311, 312, 313, 314, @@ -13448,29 +9736,82 @@ static const yytype_int16 yycheck[] = 385, -1, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, -1, 404, 405, -1, 407, 408, 409, 410, 411, 412, 413, -1, - 415, 416, -1, -1, 419, 420, 421, 422, 423, -1, + 415, 416, -1, -1, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, -1, -1, 435, 436, 437, 438, 439, 440, -1, 442, 443, 444, 445, 446, 447, 448, -1, 450, 451, 452, 453, 454, 455, 456, -1, -1, 459, -1, -1, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, - 475, 476, 477, 478, 479, 480, 481, 482, 3, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 475, 476, 477, 478, 479, 480, 481, 482, 483, -1, + -1, -1, -1, -1, -1, 490, 491, -1, -1, -1, + -1, -1, 497, -1, 499, -1, -1, -1, -1, 504, + -1, 506, 507, 3, 4, 5, 6, 7, 8, 9, + 10, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 21, 22, 23, 24, 25, 26, 27, 28, -1, + 30, 31, 32, -1, -1, -1, -1, 37, -1, -1, + 40, 41, -1, 43, 44, 45, 46, 47, 48, 49, + 50, 51, 52, 53, 54, -1, 56, 57, 58, 59, + 60, 61, 62, 63, 64, 65, 66, 67, 68, -1, + 70, 71, 72, 73, 74, -1, 76, -1, 78, 79, + 80, 81, 82, 83, 84, 85, 86, 87, -1, 89, + 90, 91, 92, 93, 94, -1, 96, 97, 98, 99, + 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, + 110, 111, 112, 113, 114, 115, 116, 117, 118, -1, + 120, 121, 122, 123, 124, 125, -1, 127, 128, 129, + 130, 131, -1, -1, 134, 135, 136, 137, 138, -1, + 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, + 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, + 160, -1, 162, 163, 164, 165, -1, 167, -1, 169, + 170, -1, 172, 173, 174, 175, 176, 177, -1, 179, + -1, 181, 182, 183, -1, 185, 186, 187, 188, 189, + 190, 191, 192, 193, 194, 195, 196, -1, 198, 199, + 200, 201, 202, 203, -1, 205, 206, 207, 208, 209, + 210, 211, 212, 213, 214, -1, 216, -1, 218, 219, + 220, 221, 222, 223, 224, 225, 226, 227, 228, -1, + -1, 231, 232, 233, 234, -1, 236, 237, 238, 239, + 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, + 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, + 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, + 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, + 280, 281, 282, 283, -1, 285, 286, -1, -1, 289, + 290, 291, -1, -1, 294, 295, 296, 297, 298, 299, + 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, + -1, 311, 312, 313, 314, 315, 316, 317, 318, 319, + -1, 321, 322, 323, 324, 325, 326, -1, 328, 329, + 330, 331, 332, 333, 334, 335, -1, 337, 338, 339, + 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, + -1, 351, 352, 353, 354, 355, 356, 357, 358, 359, + 360, 361, 362, 363, 364, 365, 366, 367, 368, -1, + 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, + 380, 381, 382, 383, 384, 385, -1, 387, 388, 389, + 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, + 400, 401, 402, -1, 404, 405, -1, 407, 408, 409, + 410, 411, 412, 413, -1, 415, 416, -1, -1, 419, + 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, + 430, 431, 432, -1, -1, 435, 436, 437, 438, 439, + 440, -1, 442, 443, 444, 445, 446, 447, 448, -1, + 450, 451, 452, 453, 454, 455, 456, -1, -1, 459, + -1, -1, 462, 463, 464, 465, 466, 467, 468, 469, + 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, + 480, 481, 482, 483, -1, -1, -1, -1, -1, -1, + 490, 491, -1, -1, -1, -1, -1, 497, -1, 499, + -1, -1, -1, -1, 504, -1, 506, 507, 3, 4, + 5, 6, 7, 8, 9, 10, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 21, 22, 23, 24, 25, 26, 27, 28, -1, 30, 31, 32, -1, -1, - -1, -1, -1, -1, -1, 40, 41, -1, 43, 44, + -1, -1, 37, -1, -1, 40, 41, -1, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, - -1, 56, 57, 58, 59, 60, 61, -1, -1, 64, + -1, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, -1, 70, 71, 72, 73, 74, -1, 76, -1, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, -1, 89, 90, 91, 92, 93, 94, - -1, 96, 97, 98, 99, 100, 101, 102, 103, -1, - -1, 106, 107, 108, 109, 110, 111, 112, 113, 114, - 115, 116, -1, 118, -1, 120, 121, 122, 123, 124, + -1, 96, 97, 98, 99, 100, 101, 102, 103, 104, + 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, + 115, 116, 117, 118, -1, 120, 121, 122, 123, 124, 125, -1, 127, 128, 129, 130, 131, -1, -1, 134, 135, 136, 137, 138, -1, 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, 150, 151, 152, 153, 154, - 155, 156, 157, 158, -1, 160, -1, 162, 163, 164, + 155, 156, 157, 158, 159, 160, -1, 162, 163, 164, 165, -1, 167, -1, 169, 170, -1, 172, 173, 174, 175, 176, 177, -1, 179, -1, 181, 182, 183, -1, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, @@ -13478,11 +9819,11 @@ static const yytype_int16 yycheck[] = 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, -1, 216, -1, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, -1, -1, 231, 232, 233, 234, - -1, 236, 237, 238, -1, -1, 241, 242, 243, 244, + -1, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, - 265, 266, 267, 268, 269, 270, 271, -1, 273, 274, - 275, 276, -1, 278, 279, 280, 281, 282, 283, -1, + 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, + 275, 276, 277, 278, 279, 280, 281, 282, 283, -1, 285, 286, -1, -1, 289, 290, 291, -1, -1, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, -1, 311, 312, 313, 314, @@ -13496,445 +9837,897 @@ static const yytype_int16 yycheck[] = 385, -1, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, -1, 404, 405, -1, 407, 408, 409, 410, 411, 412, 413, -1, - 415, 416, -1, -1, 419, 420, 421, 422, 423, -1, + 415, 416, -1, -1, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, -1, -1, 435, 436, 437, 438, 439, 440, -1, 442, 443, 444, 445, 446, 447, 448, -1, 450, 451, 452, 453, 454, 455, 456, -1, -1, 459, -1, -1, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, - 475, 476, 477, 478, 479, 480, 481, 482, 3, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 21, 22, 23, 24, - 25, 26, 27, 28, -1, 30, 31, 32, -1, -1, - -1, -1, -1, -1, -1, 40, 41, -1, 43, 44, - 45, -1, 47, 48, 49, 50, 51, -1, 53, 54, - -1, 56, 57, 58, 59, 60, 61, -1, -1, 64, - 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, - -1, -1, 77, 78, 79, 80, 81, 82, 83, -1, - 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, - -1, -1, 97, 98, 99, -1, -1, -1, -1, -1, - -1, -1, 107, 108, 109, 110, 111, 112, 113, 114, - 115, 116, -1, 118, -1, 120, 121, 122, 123, 124, - 125, -1, 127, 128, 129, 130, 131, -1, -1, 134, - 135, 136, 137, 138, -1, 140, 141, 142, -1, 144, - 145, 146, -1, 148, 149, 150, 151, 152, 153, 154, - 155, 156, 157, 158, -1, 160, -1, 162, 163, 164, - 165, -1, 167, 168, 169, -1, -1, -1, 173, 174, - 175, -1, 177, -1, 179, -1, 181, 182, 183, -1, - 185, 186, 187, 188, 189, 190, 191, -1, 193, 194, - 195, 196, -1, 198, 199, 200, 201, 202, 203, -1, - 205, -1, 207, 208, 209, 210, 211, 212, 213, 214, - -1, 216, -1, 218, -1, -1, 221, -1, 223, 224, - 225, 226, 227, 228, -1, -1, 231, -1, 233, -1, - -1, 236, 237, 238, -1, -1, 241, 242, 243, 244, - 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, - 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, - 265, -1, 267, 268, 269, 270, 271, -1, 273, 274, - -1, 276, -1, 278, 279, 280, 281, 282, 283, -1, - 285, 286, -1, -1, 289, 290, 291, -1, -1, 294, - 295, -1, 297, -1, 299, 300, 301, 302, 303, 304, - 305, 306, 307, 308, 309, -1, 311, 312, 313, 314, - 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, - 325, 326, -1, 328, 329, 330, 331, 332, 333, 334, - 335, -1, 337, 338, 339, 340, 341, 342, 343, 344, - 345, 346, 347, 348, 349, -1, 351, 352, -1, 354, - 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, - 365, 366, 367, 368, -1, 370, 371, 372, 373, 374, - -1, 376, 377, 378, 379, 380, -1, 382, 383, 384, - 385, -1, 387, 388, 389, 390, 391, 392, 393, 394, - 395, 396, 397, 398, 399, 400, 401, 402, -1, 404, - 405, -1, 407, -1, 409, 410, 411, 412, 413, -1, - 415, 416, -1, -1, 419, 420, 421, 422, 423, -1, - 425, 426, 427, 428, 429, 430, 431, 432, -1, 434, - 435, 436, 437, 438, 439, -1, -1, 442, 443, 444, - 445, 446, 447, 448, -1, 450, -1, 452, 453, 454, - 455, 456, -1, -1, 459, -1, -1, 462, 463, 464, - 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, - 475, 476, 477, 478, 479, 480, 481, 482, 3, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 21, 22, 23, 24, - 25, 26, 27, 28, -1, 30, 31, 32, -1, -1, - -1, -1, -1, -1, -1, 40, 41, -1, 43, 44, - 45, -1, 47, 48, 49, 50, 51, -1, 53, 54, - -1, 56, 57, 58, 59, 60, 61, -1, -1, 64, - 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, - -1, -1, -1, 78, 79, 80, 81, 82, 83, -1, - 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, - -1, -1, 97, 98, 99, -1, -1, -1, -1, -1, - -1, -1, 107, 108, 109, 110, 111, 112, 113, 114, - 115, 116, -1, 118, -1, 120, 121, 122, 123, 124, - 125, -1, 127, 128, 129, 130, 131, -1, -1, 134, - 135, 136, 137, 138, -1, 140, 141, 142, -1, 144, - 145, 146, -1, 148, 149, 150, 151, 152, 153, 154, - 155, 156, 157, 158, -1, 160, -1, 162, 163, 164, - 165, -1, 167, 168, 169, -1, -1, -1, 173, 174, - 175, -1, 177, -1, 179, -1, 181, 182, 183, -1, - 185, 186, 187, 188, 189, 190, 191, -1, 193, 194, - 195, 196, -1, 198, 199, 200, 201, 202, 203, -1, - 205, -1, 207, 208, 209, 210, 211, 212, 213, 214, - -1, 216, -1, 218, -1, -1, 221, -1, 223, 224, - 225, 226, 227, 228, -1, -1, 231, -1, 233, 234, - -1, 236, 237, 238, -1, -1, 241, 242, 243, 244, - 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, - 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, - 265, -1, 267, 268, 269, 270, 271, -1, 273, 274, - -1, 276, -1, 278, 279, 280, 281, 282, 283, -1, - 285, 286, -1, -1, 289, 290, 291, -1, -1, 294, - 295, -1, 297, -1, 299, 300, 301, 302, 303, 304, - 305, 306, 307, 308, 309, -1, 311, 312, 313, 314, - 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, - 325, 326, -1, 328, 329, 330, 331, 332, 333, 334, - 335, -1, 337, 338, 339, 340, 341, 342, 343, 344, - 345, 346, 347, 348, 349, -1, 351, 352, -1, 354, - 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, - 365, 366, 367, 368, -1, 370, 371, 372, 373, 374, - -1, 376, 377, 378, 379, 380, -1, 382, 383, 384, - 385, -1, 387, 388, 389, 390, 391, 392, 393, 394, - 395, 396, 397, 398, 399, 400, 401, 402, -1, 404, - 405, -1, 407, -1, 409, 410, 411, 412, 413, -1, - 415, 416, -1, -1, 419, 420, 421, 422, 423, -1, - 425, 426, 427, 428, 429, 430, 431, 432, -1, 434, - 435, 436, 437, 438, 439, -1, -1, 442, 443, 444, - 445, 446, 447, 448, -1, 450, -1, 452, 453, 454, - 455, 456, -1, -1, 459, -1, -1, 462, 463, 464, - 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, - 475, 476, 477, 478, 479, 480, 481, 482, 3, -1, - 5, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 21, 22, 23, 24, - 25, 26, 27, 28, -1, 30, 31, 32, 33, 34, - -1, -1, -1, -1, -1, 40, 41, -1, 43, 44, - 45, -1, 47, 48, 49, 50, 51, -1, 53, 54, - -1, 56, 57, 58, 59, 60, 61, -1, -1, 64, - 65, 66, 67, 68, -1, 70, 71, 72, 73, 74, - -1, -1, -1, 78, 79, 80, 81, 82, 83, -1, - 85, 86, 87, -1, 89, 90, 91, 92, 93, 94, - -1, -1, 97, 98, 99, -1, -1, -1, -1, -1, - -1, -1, 107, 108, 109, 110, 111, 112, 113, 114, - 115, 116, -1, 118, -1, 120, 121, 122, 123, 124, - 125, -1, 127, 128, 129, 130, 131, -1, -1, 134, - 135, 136, 137, 138, -1, 140, 141, 142, -1, 144, - 145, 146, -1, 148, 149, 150, 151, 152, 153, 154, - 155, 156, 157, 158, -1, 160, -1, 162, 163, 164, - 165, -1, 167, -1, 169, -1, -1, -1, 173, 174, - 175, -1, 177, -1, 179, -1, 181, 182, 183, -1, - 185, 186, 187, 188, 189, 190, 191, -1, 193, 194, - 195, 196, -1, 198, 199, 200, 201, 202, 203, -1, - 205, -1, 207, 208, 209, 210, 211, 212, 213, 214, - -1, 216, -1, 218, -1, -1, 221, -1, 223, 224, - 225, 226, 227, 228, -1, -1, 231, -1, 233, -1, - -1, 236, 237, 238, -1, -1, 241, 242, 243, 244, - 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, - 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, - 265, -1, 267, 268, 269, 270, 271, -1, 273, 274, - -1, 276, -1, 278, 279, 280, 281, 282, 283, -1, - 285, 286, -1, -1, 289, 290, 291, -1, -1, 294, - 295, -1, 297, -1, 299, 300, 301, 302, 303, 304, - 305, 306, 307, 308, 309, -1, 311, 312, 313, 314, - 315, 316, 317, 318, 319, -1, 321, 322, 323, 324, - 325, 326, -1, 328, 329, 330, 331, 332, 333, 334, - 335, -1, 337, 338, 339, 340, 341, 342, 343, 344, - 345, 346, 347, 348, 349, -1, 351, 352, -1, 354, - 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, - 365, 366, 367, 368, -1, 370, 371, 372, 373, 374, - -1, 376, 377, 378, 379, 380, -1, 382, 383, 384, - 385, -1, 387, 388, 389, 390, 391, 392, 393, 394, - 395, 396, 397, 398, 399, 400, 401, 402, -1, 404, - 405, -1, 407, -1, 409, 410, 411, 412, 413, -1, - 415, 416, -1, -1, 419, 420, 421, 422, 423, -1, - 425, 426, 427, 428, 429, 430, 431, 432, -1, -1, - 435, 436, 437, 438, 439, -1, -1, 442, 443, 444, - 445, 446, 447, 448, -1, 450, -1, 452, 453, 454, - 455, 456, -1, -1, 459, -1, -1, 462, 463, 464, - 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, - 475, 476, 477, 478, 479, 480, 481, 482, 3, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 21, 22, 23, 24, - 25, 26, 27, 28, -1, 30, 31, 32, -1, -1, - -1, -1, -1, 38, -1, 40, 41, -1, 43, 44, - 45, 46, 47, 48, 49, -1, 51, 52, 53, 54, - -1, 56, 57, 58, 59, 60, 61, -1, -1, 64, - 65, 66, 67, 68, -1, 70, 71, 72, 73, -1, - -1, 76, -1, 78, 79, 80, 81, 82, 83, 84, - 85, 86, 87, -1, 89, 90, 91, 92, 93, 94, - -1, 96, 97, 98, 99, 100, 101, 102, 103, -1, - -1, 106, 107, 108, 109, 110, 111, 112, 113, 114, - 115, 116, -1, 118, -1, 120, 121, 122, 123, 124, - 125, -1, 127, 128, 129, 130, 131, -1, -1, 134, - 135, 136, 137, 138, -1, 140, 141, 142, -1, 144, - 145, 146, -1, 148, 149, 150, 151, -1, 153, 154, - 155, 156, 157, -1, -1, 160, -1, 162, 163, 164, - 165, -1, 167, -1, 169, 170, -1, 172, 173, 174, - 175, 176, 177, -1, 179, -1, -1, -1, 183, -1, - 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, - 195, 196, -1, 198, 199, 200, 201, 202, 203, -1, - 205, 206, -1, 208, 209, 210, 211, 212, 213, 214, - -1, 216, -1, 218, 219, 220, 221, 222, 223, 224, - 225, 226, 227, 228, -1, -1, 231, 232, 233, 234, - -1, 236, 237, 238, -1, -1, 241, 242, 243, 244, - 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, - 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, - 265, 266, 267, 268, 269, 270, -1, -1, 273, 274, - 275, 276, -1, -1, 279, 280, 281, 282, 283, -1, - 285, 286, -1, -1, 289, 290, 291, -1, -1, 294, - -1, 296, 297, 298, -1, 300, 301, 302, 303, 304, - 305, 306, 307, 308, 309, -1, 311, 312, -1, 314, - 315, -1, 317, 318, 319, -1, 321, 322, 323, 324, - 325, 326, -1, 328, 329, 330, 331, 332, 333, 334, - 335, -1, 337, 338, 339, 340, 341, 342, 343, 344, - 345, 346, 347, 348, 349, -1, 351, 352, 353, 354, - 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, - 365, 366, 367, 368, -1, 370, 371, 372, 373, 374, - 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, - 385, -1, 387, 388, 389, 390, 391, 392, 393, 394, - 395, 396, 397, 398, 399, 400, -1, 402, -1, 404, - 405, -1, 407, 408, 409, 410, 411, 412, 413, -1, - 415, 416, -1, -1, 419, 420, -1, 422, -1, -1, - 425, 426, 427, 428, 429, 430, 431, 432, -1, -1, - 435, 436, 437, 438, 439, 440, -1, 442, 443, 444, - 445, 446, -1, 448, -1, 450, 451, 452, 453, 454, - 455, 456, -1, -1, 459, -1, -1, 462, 463, 464, - 465, 466, 467, 3, -1, 5, -1, -1, -1, -1, - -1, -1, -1, -1, 479, 480, 481, 482, -1, -1, - -1, 21, 22, 23, 24, 25, 26, 27, 28, 29, - 30, 31, 32, -1, -1, -1, -1, -1, -1, -1, - 40, 41, -1, 43, 44, 45, -1, 47, 48, 49, - 50, 51, -1, 53, 54, -1, 56, 57, 58, 59, - 60, 61, -1, -1, 64, 65, 66, 67, 68, -1, - 70, 71, 72, 73, 74, -1, -1, -1, 78, 79, - 80, 81, 82, 83, -1, 85, 86, 87, -1, 89, - 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, - -1, -1, -1, -1, -1, -1, -1, 107, 108, 109, - 110, 111, 112, 113, 114, 115, 116, -1, 118, -1, - 120, 121, 122, 123, 124, 125, -1, 127, 128, 129, - 130, 131, -1, -1, 134, 135, 136, 137, 138, -1, - 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, - 150, 151, 152, 153, 154, 155, 156, 157, 158, -1, - 160, -1, 162, 163, 164, 165, -1, 167, -1, 169, - -1, -1, -1, 173, 174, 175, -1, 177, -1, 179, - -1, 181, 182, 183, -1, 185, 186, 187, 188, 189, - 190, 191, -1, 193, 194, 195, 196, -1, 198, 199, - 200, 201, 202, 203, -1, 205, -1, 207, 208, 209, - 210, 211, 212, 213, 214, -1, 216, -1, 218, -1, - -1, 221, -1, 223, 224, 225, 226, 227, 228, -1, - -1, 231, -1, 233, -1, -1, 236, 237, 238, -1, - -1, 241, 242, 243, 244, 245, 246, 247, 248, 249, - 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, - 260, 261, 262, 263, 264, 265, -1, 267, 268, 269, - 270, 271, -1, 273, 274, -1, 276, -1, 278, 279, - 280, 281, 282, 283, -1, 285, 286, -1, -1, 289, - 290, 291, -1, -1, 294, 295, -1, 297, -1, 299, - 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, - -1, 311, 312, 313, 314, 315, 316, 317, 318, 319, - -1, 321, 322, 323, 324, 325, 326, -1, 328, 329, - 330, 331, 332, 333, 334, 335, -1, 337, 338, 339, - 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, - -1, 351, 352, -1, 354, 355, 356, 357, 358, 359, - 360, 361, 362, 363, 364, 365, 366, 367, 368, -1, - 370, 371, 372, 373, 374, -1, 376, 377, 378, 379, - 380, -1, 382, 383, 384, 385, -1, 387, 388, 389, - 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, - 400, 401, 402, -1, 404, 405, -1, 407, -1, 409, - 410, 411, 412, 413, -1, 415, 416, -1, -1, 419, - 420, 421, 422, 423, -1, 425, 426, 427, 428, 429, - 430, 431, 432, -1, -1, 435, 436, 437, 438, 439, - -1, -1, 442, 443, 444, 445, 446, 447, 448, -1, - 450, -1, 452, 453, 454, 455, 456, -1, -1, 459, - -1, -1, 462, 463, 464, 465, 466, 467, 468, 469, - 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, - 480, 481, 482, 3, -1, 5, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 475, 476, 477, 478, 479, 480, 481, 482, 483, -1, + -1, -1, -1, -1, -1, 490, 491, -1, -1, -1, + -1, -1, 497, -1, 499, -1, -1, -1, -1, 504, + -1, 506, 507, 3, 4, 5, 6, 7, 8, 9, + 10, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 21, 22, 23, 24, 25, 26, 27, 28, -1, - 30, 31, 32, -1, -1, -1, -1, -1, -1, -1, - 40, 41, -1, 43, 44, 45, -1, 47, 48, 49, - 50, 51, -1, 53, 54, -1, 56, 57, 58, 59, - 60, 61, -1, -1, 64, 65, 66, 67, 68, -1, - 70, 71, 72, 73, 74, -1, -1, -1, 78, 79, - 80, 81, 82, 83, -1, 85, 86, 87, -1, 89, - 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, - -1, -1, -1, -1, -1, -1, -1, 107, 108, 109, - 110, 111, 112, 113, 114, 115, 116, -1, 118, -1, + 30, 31, 32, -1, -1, -1, -1, 37, -1, -1, + 40, 41, -1, 43, 44, 45, 46, 47, 48, 49, + 50, 51, 52, 53, 54, -1, 56, 57, 58, 59, + 60, 61, 62, 63, 64, 65, 66, 67, 68, -1, + 70, 71, 72, 73, 74, -1, 76, -1, 78, 79, + 80, 81, 82, 83, 84, 85, 86, 87, -1, 89, + 90, 91, 92, 93, 94, -1, 96, 97, 98, 99, + 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, + 110, 111, 112, 113, 114, 115, 116, 117, 118, -1, 120, 121, 122, 123, 124, 125, -1, 127, 128, 129, 130, 131, -1, -1, 134, 135, 136, 137, 138, -1, 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, - 150, 151, 152, 153, 154, 155, 156, 157, 158, -1, + 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, -1, 162, 163, 164, 165, -1, 167, -1, 169, - -1, -1, -1, 173, 174, 175, -1, 177, -1, 179, + 170, -1, 172, 173, 174, 175, 176, 177, -1, 179, -1, 181, 182, 183, -1, 185, 186, 187, 188, 189, - 190, 191, -1, 193, 194, 195, 196, -1, 198, 199, - 200, 201, 202, 203, -1, 205, -1, 207, 208, 209, - 210, 211, 212, 213, 214, -1, 216, -1, 218, -1, - -1, 221, -1, 223, 224, 225, 226, 227, 228, -1, - -1, 231, -1, 233, -1, -1, 236, 237, 238, -1, - -1, 241, 242, 243, 244, 245, 246, 247, 248, 249, + 190, 191, 192, 193, 194, 195, 196, -1, 198, 199, + 200, 201, 202, 203, -1, 205, 206, 207, 208, 209, + 210, 211, 212, 213, 214, -1, 216, -1, 218, 219, + 220, 221, 222, 223, 224, 225, 226, 227, 228, -1, + -1, 231, 232, 233, 234, -1, 236, 237, 238, 239, + 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, - 260, 261, 262, 263, 264, 265, -1, 267, 268, 269, - 270, 271, -1, 273, 274, -1, 276, -1, 278, 279, - 280, 281, 282, 283, -1, 285, 286, -1, 288, 289, - 290, 291, -1, -1, 294, 295, -1, 297, -1, 299, + 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, + 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, + 280, 281, 282, 283, -1, 285, 286, -1, -1, 289, + 290, 291, -1, -1, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, -1, 311, 312, 313, 314, 315, 316, 317, 318, 319, -1, 321, 322, 323, 324, 325, 326, -1, 328, 329, 330, 331, 332, 333, 334, 335, -1, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, - -1, 351, 352, -1, 354, 355, 356, 357, 358, 359, + -1, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, -1, - 370, 371, 372, 373, 374, -1, 376, 377, 378, 379, - 380, -1, 382, 383, 384, 385, -1, 387, 388, 389, + 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, + 380, 381, 382, 383, 384, 385, -1, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, - 400, 401, 402, -1, 404, 405, -1, 407, -1, 409, + 400, 401, 402, -1, 404, 405, -1, 407, 408, 409, 410, 411, 412, 413, -1, 415, 416, -1, -1, 419, - 420, 421, 422, 423, -1, 425, 426, 427, 428, 429, + 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, -1, -1, 435, 436, 437, 438, 439, - -1, -1, 442, 443, 444, 445, 446, 447, 448, -1, - 450, -1, 452, 453, 454, 455, 456, -1, -1, 459, + 440, -1, 442, 443, 444, 445, 446, 447, 448, -1, + 450, 451, 452, 453, 454, 455, 456, -1, -1, 459, -1, -1, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, - 480, 481, 482, 3, -1, 5, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 480, 481, 482, 483, -1, -1, -1, -1, -1, -1, + 490, 491, -1, -1, -1, -1, -1, 497, -1, 499, + -1, -1, -1, -1, 504, -1, 506, 507, 3, 4, + 5, 6, 7, 8, 9, 10, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 21, 22, 23, 24, + 25, 26, 27, 28, -1, 30, 31, 32, -1, -1, + -1, -1, 37, -1, -1, 40, 41, -1, 43, 44, + 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, + -1, 56, 57, 58, 59, 60, 61, 62, 63, 64, + 65, 66, 67, 68, -1, 70, 71, 72, 73, 74, + -1, 76, -1, 78, 79, 80, 81, 82, 83, 84, + 85, 86, 87, -1, 89, 90, 91, 92, 93, 94, + -1, 96, 97, 98, 99, 100, 101, 102, 103, 104, + 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, + 115, 116, 117, 118, -1, 120, 121, 122, 123, 124, + 125, -1, 127, 128, 129, 130, 131, -1, -1, 134, + 135, 136, 137, 138, -1, 140, 141, 142, -1, 144, + 145, 146, -1, 148, 149, 150, 151, 152, 153, 154, + 155, 156, 157, 158, 159, 160, -1, 162, 163, 164, + 165, -1, 167, -1, 169, 170, -1, 172, 173, 174, + 175, 176, 177, -1, 179, -1, 181, 182, 183, -1, + 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, + 195, 196, -1, 198, 199, 200, 201, 202, 203, -1, + 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, + -1, 216, -1, 218, 219, 220, 221, 222, 223, 224, + 225, 226, 227, 228, -1, -1, 231, 232, 233, 234, + -1, 236, 237, 238, 239, 240, 241, 242, 243, 244, + 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, + 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, + 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, + 275, 276, 277, 278, 279, 280, 281, 282, 283, -1, + 285, 286, -1, -1, 289, 290, 291, -1, -1, 294, + 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, + 305, 306, 307, 308, 309, -1, 311, 312, 313, 314, + 315, 316, 317, 318, 319, -1, 321, 322, 323, 324, + 325, 326, -1, 328, 329, 330, 331, 332, 333, 334, + 335, -1, 337, 338, 339, 340, 341, 342, 343, 344, + 345, 346, 347, 348, 349, -1, 351, 352, 353, 354, + 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, + 365, 366, 367, 368, -1, 370, 371, 372, 373, 374, + 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, + 385, -1, 387, 388, 389, 390, 391, 392, 393, 394, + 395, 396, 397, 398, 399, 400, 401, 402, -1, 404, + 405, -1, 407, 408, 409, 410, 411, 412, 413, -1, + 415, 416, -1, -1, 419, 420, 421, 422, 423, 424, + 425, 426, 427, 428, 429, 430, 431, 432, -1, -1, + 435, 436, 437, 438, 439, 440, -1, 442, 443, 444, + 445, 446, 447, 448, -1, 450, 451, 452, 453, 454, + 455, 456, -1, -1, 459, -1, -1, 462, 463, 464, + 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, + 475, 476, 477, 478, 479, 480, 481, 482, 483, -1, + -1, -1, -1, -1, -1, 490, 491, -1, -1, -1, + -1, -1, 497, -1, 499, -1, -1, -1, -1, 504, + -1, 506, 507, 3, 4, 5, 6, 7, 8, 9, + 10, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 21, 22, 23, 24, 25, 26, 27, 28, -1, - 30, 31, 32, -1, -1, -1, -1, -1, -1, -1, - 40, 41, -1, 43, 44, 45, -1, 47, 48, 49, - 50, 51, -1, 53, 54, -1, 56, 57, 58, 59, - 60, 61, -1, -1, 64, 65, 66, 67, 68, -1, - 70, 71, 72, 73, 74, -1, -1, -1, 78, 79, - 80, 81, 82, 83, -1, 85, 86, 87, -1, 89, - 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, - -1, -1, -1, -1, -1, -1, -1, 107, 108, 109, - 110, 111, 112, 113, 114, 115, 116, -1, 118, -1, + 30, 31, 32, -1, -1, -1, -1, 37, -1, -1, + 40, 41, -1, 43, 44, 45, 46, 47, 48, 49, + 50, 51, 52, 53, 54, -1, 56, 57, 58, 59, + 60, 61, 62, 63, 64, 65, 66, 67, 68, -1, + 70, 71, 72, 73, 74, -1, 76, -1, 78, 79, + 80, 81, 82, 83, 84, 85, 86, 87, -1, 89, + 90, 91, 92, 93, 94, -1, 96, 97, 98, 99, + 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, + 110, 111, 112, 113, 114, 115, 116, 117, 118, -1, 120, 121, 122, 123, 124, 125, -1, 127, 128, 129, 130, 131, -1, -1, 134, 135, 136, 137, 138, -1, 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, - 150, 151, 152, 153, 154, 155, 156, 157, 158, -1, + 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, -1, 162, 163, 164, 165, -1, 167, -1, 169, - -1, -1, -1, 173, 174, 175, -1, 177, -1, 179, + 170, -1, 172, 173, 174, 175, 176, 177, -1, 179, -1, 181, 182, 183, -1, 185, 186, 187, 188, 189, - 190, 191, -1, 193, 194, 195, 196, -1, 198, 199, - 200, 201, 202, 203, -1, 205, -1, 207, 208, 209, - 210, 211, 212, 213, 214, -1, 216, -1, 218, -1, - -1, 221, -1, 223, 224, 225, 226, 227, 228, -1, - -1, 231, -1, 233, -1, -1, 236, 237, 238, -1, - -1, 241, 242, 243, 244, 245, 246, 247, 248, 249, + 190, 191, 192, 193, 194, 195, 196, -1, 198, 199, + 200, 201, 202, 203, -1, 205, 206, 207, 208, 209, + 210, 211, 212, 213, 214, -1, 216, -1, 218, 219, + 220, 221, 222, 223, 224, 225, 226, 227, 228, -1, + -1, 231, 232, 233, 234, -1, 236, 237, 238, 239, + 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, - 260, 261, 262, 263, 264, 265, -1, 267, 268, 269, - 270, 271, -1, 273, 274, -1, 276, -1, 278, 279, - 280, 281, 282, 283, -1, 285, 286, -1, 288, 289, - 290, 291, -1, -1, 294, 295, -1, 297, -1, 299, + 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, + 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, + 280, 281, 282, 283, -1, 285, 286, -1, -1, 289, + 290, 291, -1, -1, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, -1, 311, 312, 313, 314, 315, 316, 317, 318, 319, -1, 321, 322, 323, 324, 325, 326, -1, 328, 329, 330, 331, 332, 333, 334, 335, -1, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, - -1, 351, 352, -1, 354, 355, 356, 357, 358, 359, + -1, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, -1, - 370, 371, 372, 373, 374, -1, 376, 377, 378, 379, - 380, -1, 382, 383, 384, 385, -1, 387, 388, 389, + 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, + 380, 381, 382, 383, 384, 385, -1, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, - 400, 401, 402, -1, 404, 405, -1, 407, -1, 409, + 400, 401, 402, -1, 404, 405, -1, 407, 408, 409, 410, 411, 412, 413, -1, 415, 416, -1, -1, 419, - 420, 421, 422, 423, -1, 425, 426, 427, 428, 429, + 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, -1, -1, 435, 436, 437, 438, 439, - -1, -1, 442, 443, 444, 445, 446, 447, 448, -1, - 450, -1, 452, 453, 454, 455, 456, -1, -1, 459, + 440, -1, 442, 443, 444, 445, 446, 447, 448, -1, + 450, 451, 452, 453, 454, 455, 456, -1, -1, 459, -1, -1, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, - 480, 481, 482, 3, -1, 5, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 21, 22, 23, 24, 25, 26, 27, 28, 29, + 480, 481, 482, 483, -1, -1, -1, -1, -1, -1, + 490, 491, -1, -1, -1, -1, -1, 497, -1, 499, + -1, -1, -1, -1, 504, -1, 506, 507, 3, 4, + 5, 6, 7, 8, 9, 10, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 21, 22, 23, 24, + 25, 26, 27, 28, -1, 30, 31, 32, -1, -1, + -1, -1, 37, -1, -1, 40, 41, -1, 43, 44, + 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, + -1, 56, 57, 58, 59, 60, 61, 62, 63, 64, + 65, 66, 67, 68, -1, 70, 71, 72, 73, 74, + -1, 76, -1, 78, 79, 80, 81, 82, 83, 84, + 85, 86, 87, -1, 89, 90, 91, 92, 93, 94, + -1, 96, 97, 98, 99, 100, 101, 102, 103, 104, + 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, + 115, 116, 117, 118, -1, 120, 121, 122, 123, 124, + 125, -1, 127, 128, 129, 130, 131, -1, -1, 134, + 135, 136, 137, 138, -1, 140, 141, 142, -1, 144, + 145, 146, -1, 148, 149, 150, 151, 152, 153, 154, + 155, 156, 157, 158, 159, 160, -1, 162, 163, 164, + 165, -1, 167, -1, 169, 170, -1, 172, 173, 174, + 175, 176, 177, -1, 179, -1, 181, 182, 183, -1, + 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, + 195, 196, -1, 198, 199, 200, 201, 202, 203, -1, + 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, + -1, 216, -1, 218, -1, -1, 221, 222, 223, 224, + 225, 226, 227, 228, -1, -1, 231, 232, 233, 234, + -1, 236, 237, 238, 239, 240, 241, 242, 243, 244, + 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, + 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, + 265, 266, 267, 268, 269, 270, 271, -1, 273, 274, + -1, 276, 277, 278, 279, 280, 281, 282, 283, -1, + 285, 286, -1, -1, 289, 290, 291, -1, -1, 294, + 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, + 305, 306, 307, 308, 309, -1, 311, 312, 313, 314, + 315, 316, 317, 318, 319, -1, 321, 322, 323, 324, + 325, 326, -1, 328, 329, 330, 331, 332, 333, 334, + 335, -1, 337, 338, 339, 340, 341, 342, 343, 344, + 345, 346, 347, 348, 349, -1, 351, 352, 353, 354, + 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, + 365, 366, 367, 368, -1, 370, 371, 372, 373, 374, + 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, + 385, -1, 387, 388, 389, 390, 391, 392, 393, 394, + 395, 396, 397, 398, 399, 400, 401, 402, -1, 404, + 405, -1, 407, 408, 409, 410, 411, 412, 413, -1, + 415, 416, -1, -1, 419, 420, 421, 422, 423, 424, + 425, 426, 427, 428, 429, 430, 431, 432, -1, -1, + 435, 436, 437, 438, 439, 440, -1, 442, 443, 444, + 445, 446, 447, 448, -1, 450, 451, 452, 453, 454, + 455, 456, -1, -1, 459, -1, -1, 462, 463, 464, + 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, + 475, 476, 477, 478, 479, 480, 481, 482, 483, -1, + -1, -1, -1, -1, -1, 490, 491, -1, -1, -1, + -1, -1, 497, -1, 499, -1, -1, -1, -1, 504, + -1, 506, 507, 3, 4, 5, 6, 7, 8, 9, + 10, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 21, 22, 23, 24, 25, 26, 27, 28, -1, 30, 31, 32, -1, -1, -1, -1, -1, -1, -1, - 40, 41, -1, 43, 44, 45, -1, 47, 48, 49, - 50, 51, -1, 53, 54, -1, 56, 57, 58, 59, - 60, 61, -1, -1, 64, 65, 66, 67, 68, -1, - 70, 71, 72, 73, 74, -1, -1, -1, 78, 79, - 80, 81, 82, 83, -1, 85, 86, 87, -1, 89, - 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, - -1, -1, -1, -1, -1, -1, -1, 107, 108, 109, + 40, 41, -1, 43, 44, 45, 46, 47, 48, 49, + 50, 51, 52, 53, 54, -1, 56, 57, 58, 59, + 60, 61, 62, 63, 64, 65, 66, 67, 68, -1, + 70, 71, 72, 73, 74, -1, 76, -1, 78, 79, + 80, 81, 82, 83, 84, 85, 86, 87, -1, 89, + 90, 91, 92, 93, 94, -1, 96, 97, 98, 99, + 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, -1, 118, -1, 120, 121, 122, 123, 124, 125, -1, 127, 128, 129, 130, 131, -1, -1, 134, 135, 136, 137, 138, -1, 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, - 150, 151, 152, 153, 154, 155, 156, 157, 158, -1, + 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, -1, 162, 163, 164, 165, -1, 167, -1, 169, - -1, -1, -1, 173, 174, 175, -1, 177, -1, 179, + 170, -1, 172, 173, 174, 175, 176, 177, -1, 179, -1, 181, 182, 183, -1, 185, 186, 187, 188, 189, - 190, 191, -1, 193, 194, 195, 196, -1, 198, 199, - 200, 201, 202, 203, -1, 205, -1, 207, 208, 209, - 210, 211, 212, 213, 214, -1, 216, -1, 218, -1, - -1, 221, -1, 223, 224, 225, 226, 227, 228, -1, - -1, 231, -1, 233, -1, -1, 236, 237, 238, -1, - -1, 241, 242, 243, 244, 245, 246, 247, 248, 249, + 190, 191, 192, 193, 194, 195, 196, -1, 198, 199, + 200, 201, 202, 203, -1, 205, 206, 207, 208, 209, + 210, 211, 212, 213, 214, -1, 216, -1, 218, 219, + 220, 221, 222, 223, 224, 225, 226, 227, 228, -1, + -1, 231, 232, 233, 234, -1, 236, 237, 238, 239, + 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, - 260, 261, 262, 263, 264, 265, -1, 267, 268, 269, - 270, 271, -1, 273, 274, -1, 276, -1, 278, 279, + 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, + 270, 271, -1, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, -1, 285, 286, -1, -1, 289, - 290, 291, -1, -1, 294, 295, -1, 297, -1, 299, + 290, 291, -1, -1, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, -1, 311, 312, 313, 314, 315, 316, 317, 318, 319, -1, 321, 322, 323, 324, 325, 326, -1, 328, 329, 330, 331, 332, 333, 334, 335, -1, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, - -1, 351, 352, -1, 354, 355, 356, 357, 358, 359, + -1, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, -1, - 370, 371, 372, 373, 374, -1, 376, 377, 378, 379, - 380, -1, 382, 383, 384, 385, -1, 387, 388, 389, + 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, + 380, 381, 382, 383, 384, 385, -1, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, - 400, 401, 402, -1, 404, 405, -1, 407, -1, 409, + 400, 401, 402, -1, 404, 405, -1, 407, 408, 409, 410, 411, 412, 413, -1, 415, 416, -1, -1, 419, - 420, 421, 422, 423, -1, 425, 426, 427, 428, 429, + 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, -1, -1, 435, 436, 437, 438, 439, - -1, -1, 442, 443, 444, 445, 446, 447, 448, -1, - 450, -1, 452, 453, 454, 455, 456, -1, -1, 459, + 440, -1, 442, 443, 444, 445, 446, 447, 448, -1, + 450, 451, 452, 453, 454, 455, 456, -1, -1, 459, -1, -1, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, - 480, 481, 482, 3, -1, 5, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 480, 481, 482, -1, -1, -1, -1, -1, -1, -1, + 490, 491, -1, -1, 3, 4, 5, 6, 7, 499, + 9, 10, -1, -1, -1, -1, 506, 507, -1, -1, + -1, -1, 21, 22, 23, 24, 25, 26, 27, 28, + -1, 30, 31, 32, -1, -1, -1, -1, -1, -1, + -1, 40, 41, -1, 43, 44, 45, 46, 47, 48, + 49, 50, 51, 52, 53, 54, -1, 56, 57, 58, + 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, + -1, 70, 71, 72, 73, 74, -1, 76, -1, 78, + 79, 80, 81, 82, 83, 84, 85, 86, 87, -1, + 89, 90, 91, 92, 93, 94, -1, 96, 97, 98, + 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, + 109, 110, 111, 112, 113, 114, 115, 116, -1, 118, + -1, 120, 121, 122, 123, 124, 125, -1, 127, 128, + 129, 130, 131, -1, -1, 134, 135, 136, 137, 138, + -1, 140, 141, 142, -1, 144, 145, 146, -1, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, + 159, 160, -1, 162, 163, 164, 165, -1, 167, -1, + 169, 170, -1, 172, 173, 174, 175, 176, 177, -1, + 179, -1, 181, 182, 183, -1, 185, 186, 187, 188, + 189, 190, 191, 192, 193, 194, 195, 196, -1, 198, + 199, 200, 201, 202, 203, -1, 205, 206, 207, 208, + 209, 210, 211, 212, 213, 214, -1, 216, -1, 218, + 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, + -1, -1, 231, 232, 233, 234, -1, 236, 237, 238, + 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, + 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, + 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, + 269, 270, 271, -1, 273, 274, 275, 276, 277, 278, + 279, 280, 281, 282, 283, -1, 285, 286, -1, -1, + 289, 290, 291, -1, -1, 294, 295, 296, 297, 298, + 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, + 309, -1, 311, 312, 313, 314, 315, 316, 317, 318, + 319, -1, 321, 322, 323, 324, 325, 326, -1, 328, + 329, 330, 331, 332, 333, 334, 335, -1, 337, 338, + 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, + 349, -1, 351, 352, 353, 354, 355, 356, 357, 358, + 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, + -1, 370, 371, 372, 373, 374, 375, 376, 377, 378, + 379, 380, 381, 382, 383, 384, 385, -1, 387, 388, + 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, + 399, 400, 401, 402, -1, 404, 405, -1, 407, 408, + 409, 410, 411, 412, 413, -1, 415, 416, -1, -1, + 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, + 429, 430, 431, 432, -1, -1, 435, 436, 437, 438, + 439, 440, -1, 442, 443, 444, 445, 446, 447, 448, + -1, 450, 451, 452, 453, 454, 455, 456, -1, -1, + 459, -1, -1, 462, 463, 464, 465, 466, 467, 468, + 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, + 479, 480, 481, 482, -1, -1, -1, -1, -1, -1, + -1, 490, 491, -1, -1, -1, -1, -1, -1, -1, + 499, -1, -1, -1, -1, -1, -1, 506, 507, 3, + 4, 5, 6, 7, 8, 9, 10, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 21, 22, 23, + 24, 25, 26, 27, 28, -1, 30, 31, 32, -1, + -1, -1, -1, -1, -1, -1, 40, 41, -1, 43, + 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, + 54, -1, 56, 57, 58, 59, 60, 61, 62, 63, + 64, 65, 66, 67, 68, -1, 70, 71, 72, 73, + 74, -1, 76, -1, 78, 79, 80, 81, 82, 83, + 84, 85, 86, 87, -1, 89, 90, 91, 92, 93, + 94, -1, 96, 97, 98, 99, 100, 101, 102, 103, + 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, + 114, 115, 116, -1, 118, -1, 120, 121, 122, 123, + 124, 125, -1, 127, 128, 129, 130, 131, -1, -1, + 134, 135, 136, 137, 138, -1, 140, 141, 142, -1, + 144, 145, 146, -1, 148, 149, 150, 151, 152, 153, + 154, 155, 156, 157, 158, 159, 160, -1, 162, 163, + 164, 165, -1, 167, -1, 169, 170, -1, 172, 173, + 174, 175, 176, 177, -1, 179, -1, 181, 182, 183, + -1, 185, 186, 187, 188, 189, 190, 191, 192, 193, + 194, 195, 196, -1, 198, 199, 200, 201, 202, 203, + -1, 205, 206, 207, 208, 209, 210, 211, 212, 213, + 214, -1, 216, -1, 218, -1, 220, 221, 222, 223, + 224, 225, 226, 227, 228, -1, -1, 231, 232, 233, + 234, -1, 236, 237, 238, 239, 240, 241, 242, 243, + 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, + 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, + 264, 265, 266, 267, 268, 269, 270, 271, -1, 273, + 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, + -1, 285, 286, -1, -1, 289, 290, 291, -1, -1, + 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, + 304, 305, 306, 307, 308, 309, -1, 311, 312, 313, + 314, 315, 316, 317, 318, 319, -1, 321, 322, 323, + 324, 325, 326, -1, 328, 329, 330, 331, 332, 333, + 334, 335, -1, 337, 338, 339, 340, 341, 342, 343, + 344, 345, 346, 347, 348, 349, -1, 351, 352, 353, + 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, + 364, 365, 366, 367, 368, -1, 370, 371, 372, 373, + 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, + 384, 385, -1, 387, 388, 389, 390, 391, 392, 393, + 394, 395, 396, 397, 398, 399, 400, 401, 402, -1, + 404, 405, -1, 407, 408, 409, 410, 411, 412, 413, + -1, 415, 416, -1, -1, 419, 420, 421, 422, 423, + 424, 425, 426, 427, 428, 429, 430, 431, 432, -1, + -1, 435, 436, 437, 438, 439, 440, -1, 442, 443, + 444, 445, 446, 447, 448, -1, 450, 451, 452, 453, + 454, 455, 456, -1, -1, 459, -1, -1, 462, 463, + 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, + 474, 475, 476, 477, 478, 479, 480, 481, 482, -1, + -1, -1, -1, -1, -1, -1, 490, 491, -1, -1, + -1, -1, -1, -1, -1, 499, -1, -1, -1, -1, + -1, -1, 506, 507, 3, 4, 5, 6, 7, 8, + 9, 10, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 21, 22, 23, 24, 25, 26, 27, 28, + -1, 30, 31, 32, -1, -1, -1, -1, 37, -1, + -1, 40, 41, -1, 43, 44, 45, 46, 47, 48, + 49, -1, 51, 52, 53, 54, -1, 56, 57, 58, + 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, + -1, 70, 71, 72, 73, 74, -1, 76, -1, 78, + 79, 80, 81, 82, 83, 84, 85, 86, 87, -1, + 89, 90, 91, 92, 93, 94, -1, 96, 97, 98, + 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, + 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, + -1, 120, 121, 122, 123, 124, 125, -1, 127, 128, + 129, 130, 131, -1, -1, 134, 135, 136, 137, 138, + -1, 140, 141, 142, -1, 144, -1, 146, -1, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, + 159, 160, -1, 162, 163, 164, 165, -1, 167, -1, + 169, 170, -1, 172, 173, 174, 175, -1, 177, -1, + 179, -1, 181, 182, 183, -1, 185, 186, 187, 188, + 189, 190, 191, -1, 193, 194, 195, 196, -1, 198, + 199, 200, 201, 202, 203, -1, 205, 206, 207, 208, + 209, 210, 211, 212, 213, 214, -1, 216, -1, 218, + -1, -1, 221, 222, 223, 224, 225, 226, 227, 228, + -1, -1, 231, 232, 233, -1, -1, 236, 237, 238, + 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, + 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, + 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, + 269, 270, 271, -1, 273, 274, -1, 276, 277, 278, + 279, 280, 281, 282, 283, -1, 285, 286, -1, -1, + 289, 290, 291, -1, -1, 294, 295, 296, 297, 298, + 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, + 309, -1, 311, 312, 313, 314, 315, 316, 317, 318, + 319, -1, 321, 322, 323, 324, 325, 326, -1, 328, + 329, 330, 331, 332, 333, 334, 335, -1, 337, 338, + 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, + 349, -1, 351, 352, 353, 354, 355, 356, 357, 358, + 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, + -1, 370, 371, 372, 373, 374, 375, 376, 377, 378, + 379, 380, -1, 382, 383, 384, 385, -1, 387, 388, + 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, + 399, 400, 401, 402, -1, 404, 405, -1, 407, 408, + 409, 410, 411, 412, 413, -1, 415, 416, -1, -1, + 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, + 429, 430, 431, 432, -1, -1, 435, 436, 437, 438, + 439, 440, -1, 442, 443, 444, 445, 446, 447, 448, + -1, 450, 451, 452, 453, 454, 455, 456, -1, -1, + 459, -1, -1, 462, 463, 464, 465, 466, 467, 468, + 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, + 479, 480, 481, 482, -1, -1, -1, -1, -1, -1, + -1, 490, 491, 3, -1, -1, -1, -1, 497, -1, + 499, -1, -1, -1, -1, 504, -1, 506, 507, -1, -1, 21, 22, 23, 24, 25, 26, 27, 28, -1, 30, 31, 32, -1, -1, -1, -1, -1, -1, -1, - 40, 41, -1, 43, 44, 45, -1, 47, 48, 49, - 50, 51, -1, 53, 54, -1, 56, 57, 58, 59, + 40, 41, -1, 43, 44, 45, 46, 47, 48, 49, + -1, 51, 52, 53, 54, -1, 56, 57, 58, 59, 60, 61, -1, -1, 64, 65, 66, 67, 68, -1, - 70, 71, 72, 73, 74, -1, -1, -1, 78, 79, - 80, 81, 82, 83, -1, 85, 86, 87, -1, 89, - 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, - -1, -1, -1, -1, -1, -1, -1, 107, 108, 109, + 70, 71, 72, 73, -1, -1, 76, -1, 78, 79, + 80, 81, 82, 83, 84, 85, 86, 87, -1, 89, + 90, 91, 92, 93, 94, -1, 96, 97, 98, 99, + 100, 101, 102, 103, -1, -1, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, -1, 118, -1, 120, 121, 122, 123, 124, 125, -1, 127, 128, 129, 130, 131, -1, -1, 134, 135, 136, 137, 138, -1, 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, - 150, 151, 152, 153, 154, 155, 156, 157, 158, -1, + 150, 151, -1, 153, 154, 155, 156, 157, -1, -1, 160, -1, 162, 163, 164, 165, -1, 167, -1, 169, - -1, -1, -1, 173, 174, 175, -1, 177, -1, 179, - -1, 181, 182, 183, -1, 185, 186, 187, 188, 189, - 190, 191, -1, 193, 194, 195, 196, -1, 198, 199, - 200, 201, 202, 203, -1, 205, -1, 207, 208, 209, - 210, 211, 212, 213, 214, -1, 216, -1, 218, -1, - -1, 221, -1, 223, 224, 225, 226, 227, 228, -1, - -1, 231, -1, 233, -1, -1, 236, 237, 238, -1, + 170, -1, 172, 173, 174, -1, 176, 177, -1, 179, + -1, -1, -1, 183, -1, 185, 186, 187, 188, 189, + 190, 191, 192, 193, 194, 195, 196, -1, 198, 199, + 200, 201, 202, 203, -1, 205, 206, -1, 208, 209, + 210, 211, 212, 213, 214, -1, 216, -1, 218, 219, + 220, 221, 222, 223, 224, 225, 226, 227, 228, -1, + -1, 231, 232, 233, 234, -1, 236, 237, 238, -1, -1, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, - 260, 261, 262, 263, 264, 265, -1, 267, 268, 269, - 270, 271, -1, 273, 274, -1, 276, -1, 278, 279, + 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, + 270, -1, -1, 273, 274, 275, 276, -1, -1, 279, 280, 281, 282, 283, -1, 285, 286, -1, -1, 289, - 290, 291, -1, -1, 294, 295, -1, 297, -1, 299, + 290, 291, -1, -1, 294, -1, 296, 297, 298, -1, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, - -1, 311, 312, 313, 314, 315, 316, 317, 318, 319, + -1, 311, 312, -1, 314, 315, -1, 317, 318, 319, -1, 321, 322, 323, 324, 325, 326, -1, 328, 329, 330, 331, 332, 333, 334, 335, -1, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, - -1, 351, 352, -1, 354, 355, 356, 357, 358, 359, + -1, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, -1, - 370, 371, 372, 373, 374, -1, 376, 377, 378, 379, - 380, -1, 382, 383, 384, 385, -1, 387, 388, 389, + 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, + 380, 381, 382, 383, 384, 385, -1, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, - 400, 401, 402, -1, 404, 405, 406, 407, -1, 409, + 400, -1, 402, -1, 404, 405, -1, 407, 408, 409, 410, 411, 412, 413, -1, 415, 416, -1, -1, 419, - 420, 421, 422, 423, -1, 425, 426, 427, 428, 429, + 420, -1, 422, -1, -1, 425, 426, 427, 428, 429, 430, 431, 432, -1, -1, 435, 436, 437, 438, 439, - -1, -1, 442, 443, 444, 445, 446, 447, 448, -1, - 450, -1, 452, 453, 454, 455, 456, -1, -1, 459, - -1, -1, 462, 463, 464, 465, 466, 467, 468, 469, - 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, - 480, 481, 482, 3, 4, -1, -1, -1, -1, 9, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 440, -1, 442, 443, 444, 445, 446, -1, 448, -1, + 450, 451, 452, 453, 454, 455, 456, -1, -1, 459, + -1, -1, 462, 463, 464, 465, 466, 467, -1, 3, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 479, + 480, 481, 482, -1, -1, -1, -1, 21, 22, 23, + 24, 25, 26, 27, 28, -1, 30, 31, 32, -1, + 500, -1, -1, 503, 38, -1, 40, 41, -1, 43, + 44, 45, -1, 47, 48, 49, 50, 51, -1, 53, + 54, -1, 56, 57, 58, 59, 60, 61, -1, -1, + 64, 65, 66, 67, 68, -1, 70, 71, 72, 73, + 74, -1, -1, -1, 78, 79, 80, 81, 82, 83, + -1, 85, 86, 87, -1, 89, 90, 91, 92, 93, + 94, -1, 96, 97, 98, 99, -1, -1, -1, -1, + -1, -1, -1, 107, 108, 109, 110, 111, 112, 113, + 114, 115, 116, -1, 118, -1, 120, 121, 122, 123, + 124, 125, -1, 127, 128, 129, 130, 131, -1, -1, + 134, 135, 136, 137, 138, -1, 140, 141, 142, -1, + 144, 145, 146, -1, 148, 149, 150, 151, 152, 153, + 154, 155, 156, 157, 158, -1, 160, -1, 162, 163, + 164, 165, -1, 167, -1, 169, -1, -1, 172, 173, + 174, 175, -1, 177, -1, 179, -1, 181, 182, 183, + -1, 185, 186, 187, 188, 189, 190, 191, -1, 193, + 194, 195, 196, -1, 198, 199, 200, 201, 202, 203, + -1, 205, 206, 207, 208, 209, 210, 211, 212, 213, + 214, -1, 216, -1, 218, -1, -1, 221, 222, 223, + 224, 225, 226, 227, 228, -1, -1, 231, 232, 233, + -1, -1, 236, 237, 238, -1, -1, 241, 242, 243, + 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, + 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, + 264, 265, 266, 267, 268, 269, 270, 271, -1, 273, + 274, -1, 276, -1, 278, 279, 280, 281, 282, 283, + -1, 285, 286, -1, -1, 289, 290, 291, -1, -1, + 294, 295, -1, 297, -1, 299, 300, 301, 302, 303, + 304, 305, 306, 307, 308, 309, -1, 311, 312, 313, + 314, 315, 316, 317, 318, 319, -1, 321, 322, 323, + 324, 325, 326, -1, 328, 329, 330, 331, 332, 333, + 334, 335, -1, 337, 338, 339, 340, 341, 342, 343, + 344, 345, 346, 347, 348, 349, -1, 351, 352, 353, + 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, + 364, 365, 366, 367, 368, -1, 370, 371, 372, 373, + 374, -1, 376, 377, 378, 379, 380, -1, 382, 383, + 384, 385, -1, 387, 388, 389, 390, 391, 392, 393, + 394, 395, 396, 397, 398, 399, 400, 401, 402, -1, + 404, 405, -1, 407, 408, 409, 410, 411, 412, 413, + -1, 415, 416, -1, -1, 419, 420, 421, 422, 423, + -1, 425, 426, 427, 428, 429, 430, 431, 432, -1, + -1, 435, 436, 437, 438, 439, -1, -1, 442, 443, + 444, 445, 446, 447, 448, -1, 450, -1, 452, 453, + 454, 455, 456, -1, -1, 459, -1, -1, 462, 463, + 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, + 474, 475, 476, 477, 478, 479, 480, 481, 482, 3, + -1, 5, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 500, 21, 22, 23, + 24, 25, 26, 27, 28, -1, 30, 31, 32, -1, + -1, -1, -1, -1, -1, -1, 40, 41, -1, 43, + 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, + 54, -1, 56, 57, 58, 59, 60, 61, -1, 63, + 64, 65, 66, 67, 68, -1, 70, 71, 72, 73, + 74, -1, 76, -1, 78, 79, 80, 81, 82, 83, + 84, 85, 86, 87, -1, 89, 90, 91, 92, 93, + 94, -1, 96, 97, 98, 99, 100, 101, 102, 103, + 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, + 114, 115, 116, -1, 118, -1, 120, 121, 122, 123, + 124, 125, -1, 127, 128, 129, 130, 131, -1, -1, + 134, 135, 136, 137, 138, -1, 140, 141, 142, -1, + 144, 145, 146, -1, 148, 149, 150, 151, 152, 153, + 154, 155, 156, 157, 158, -1, 160, -1, 162, 163, + 164, 165, -1, 167, -1, 169, 170, -1, 172, 173, + 174, 175, 176, 177, -1, 179, -1, 181, 182, 183, + -1, 185, 186, 187, 188, 189, 190, 191, 192, 193, + 194, 195, 196, -1, 198, 199, 200, 201, 202, 203, + -1, 205, 206, 207, 208, 209, 210, 211, 212, 213, + 214, -1, 216, -1, 218, 219, 220, 221, 222, 223, + 224, 225, 226, 227, 228, 229, -1, 231, 232, 233, + 234, -1, 236, 237, 238, 239, 240, 241, 242, 243, + 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, + 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, + 264, 265, 266, 267, 268, 269, 270, 271, -1, 273, + 274, 275, 276, -1, 278, 279, 280, 281, 282, 283, + -1, 285, 286, -1, 288, 289, 290, 291, -1, -1, + 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, + 304, 305, 306, 307, 308, 309, -1, 311, 312, 313, + 314, 315, 316, 317, 318, 319, -1, 321, 322, 323, + 324, 325, 326, -1, 328, 329, 330, 331, 332, 333, + 334, 335, -1, 337, 338, 339, 340, 341, 342, 343, + 344, 345, 346, 347, 348, 349, -1, 351, 352, 353, + 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, + 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, + 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, + 384, 385, -1, 387, 388, 389, 390, 391, 392, 393, + 394, 395, 396, 397, 398, 399, 400, 401, 402, -1, + 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, + -1, 415, 416, -1, -1, 419, 420, 421, 422, 423, + -1, 425, 426, 427, 428, 429, 430, 431, 432, -1, + -1, 435, 436, 437, 438, 439, 440, -1, 442, 443, + 444, 445, 446, 447, 448, -1, 450, 451, 452, 453, + 454, 455, 456, -1, -1, 459, -1, 461, 462, 463, + 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, + 474, 475, 476, 477, 478, 479, 480, 481, 482, -1, + -1, 485, 3, 4, 5, -1, -1, -1, 9, -1, + -1, -1, -1, -1, -1, 499, -1, -1, -1, -1, + 21, 22, 23, 24, 25, 26, 27, 28, -1, 30, + 31, 32, -1, -1, -1, -1, -1, -1, -1, 40, + 41, -1, 43, 44, 45, 46, 47, 48, 49, 50, + 51, 52, 53, 54, -1, 56, 57, 58, 59, 60, + 61, -1, -1, 64, 65, 66, 67, 68, -1, 70, + 71, 72, 73, 74, -1, 76, -1, 78, 79, 80, + 81, 82, 83, 84, 85, 86, 87, -1, 89, 90, + 91, 92, 93, 94, -1, 96, 97, 98, 99, 100, + 101, 102, 103, -1, -1, 106, 107, 108, 109, 110, + 111, 112, 113, 114, 115, 116, -1, 118, -1, 120, + 121, 122, 123, 124, 125, -1, 127, 128, 129, 130, + 131, -1, -1, 134, 135, 136, 137, 138, -1, 140, + 141, 142, -1, 144, 145, 146, -1, 148, 149, 150, + 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, + -1, 162, 163, 164, 165, -1, 167, -1, 169, 170, + -1, 172, 173, 174, 175, 176, 177, -1, 179, -1, + 181, 182, 183, -1, 185, 186, 187, 188, 189, 190, + 191, 192, 193, 194, 195, 196, -1, 198, 199, 200, + 201, 202, 203, -1, 205, 206, 207, 208, 209, 210, + 211, 212, 213, 214, -1, 216, -1, 218, 219, 220, + 221, 222, 223, 224, 225, 226, 227, 228, -1, -1, + 231, 232, 233, 234, -1, 236, 237, 238, -1, -1, + 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, + 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, + 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, + 271, -1, 273, 274, 275, 276, -1, 278, 279, 280, + 281, 282, 283, -1, 285, 286, 287, -1, 289, 290, + 291, -1, -1, 294, 295, 296, 297, 298, 299, 300, + 301, 302, 303, 304, 305, 306, 307, 308, 309, -1, + 311, 312, 313, 314, 315, 316, 317, 318, 319, -1, + 321, 322, 323, 324, 325, 326, -1, 328, 329, 330, + 331, 332, 333, 334, 335, -1, 337, 338, 339, 340, + 341, 342, 343, 344, 345, 346, 347, 348, 349, -1, + 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, + 361, 362, 363, 364, 365, 366, 367, 368, -1, 370, + 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, + 381, 382, 383, 384, 385, -1, 387, 388, 389, 390, + 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, + 401, 402, -1, 404, 405, -1, 407, 408, 409, 410, + 411, 412, 413, -1, 415, 416, -1, -1, 419, 420, + 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, + 431, 432, -1, -1, 435, 436, 437, 438, 439, 440, + -1, 442, 443, 444, 445, 446, 447, 448, -1, 450, + 451, 452, 453, 454, 455, 456, -1, -1, 459, -1, + -1, 462, 463, 464, 465, 466, 467, 468, 469, 470, + 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, + 481, 482, 3, -1, 5, -1, -1, -1, -1, 490, + 491, 492, -1, -1, -1, -1, -1, -1, 499, -1, + 21, 22, 23, 24, 25, 26, 27, 28, -1, 30, + 31, 32, -1, -1, -1, -1, -1, -1, -1, 40, + 41, -1, 43, 44, 45, 46, 47, 48, 49, 50, + 51, 52, 53, 54, -1, 56, 57, 58, 59, 60, + 61, -1, 63, 64, 65, 66, 67, 68, -1, 70, + 71, 72, 73, 74, -1, 76, -1, 78, 79, 80, + 81, 82, 83, 84, 85, 86, 87, -1, 89, 90, + 91, 92, 93, 94, -1, 96, 97, 98, 99, 100, + 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, + 111, 112, 113, 114, 115, 116, -1, 118, -1, 120, + 121, 122, 123, 124, 125, -1, 127, 128, 129, 130, + 131, -1, -1, 134, 135, 136, 137, 138, -1, 140, + 141, 142, -1, 144, 145, 146, -1, 148, 149, 150, + 151, 152, 153, 154, 155, 156, 157, 158, -1, 160, + -1, 162, 163, 164, 165, -1, 167, -1, 169, 170, + -1, 172, 173, 174, 175, 176, 177, -1, 179, -1, + 181, 182, 183, -1, 185, 186, 187, 188, 189, 190, + 191, 192, 193, 194, 195, 196, -1, 198, 199, 200, + 201, 202, 203, -1, 205, 206, 207, 208, 209, 210, + 211, 212, 213, 214, -1, 216, -1, 218, 219, 220, + 221, 222, 223, 224, 225, 226, 227, 228, 229, -1, + 231, 232, 233, 234, -1, 236, 237, 238, 239, 240, + 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, + 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, + 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, + 271, -1, 273, 274, 275, 276, -1, 278, 279, 280, + 281, 282, 283, -1, 285, 286, -1, 288, 289, 290, + 291, -1, -1, 294, 295, 296, 297, 298, 299, 300, + 301, 302, 303, 304, 305, 306, 307, 308, 309, -1, + 311, 312, 313, 314, 315, 316, 317, 318, 319, -1, + 321, 322, 323, 324, 325, 326, -1, 328, 329, 330, + 331, 332, 333, 334, 335, -1, 337, 338, 339, 340, + 341, 342, 343, 344, 345, 346, 347, 348, 349, -1, + 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, + 361, 362, 363, 364, 365, 366, 367, 368, -1, 370, + 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, + 381, 382, 383, 384, 385, -1, 387, 388, 389, 390, + 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, + 401, 402, -1, 404, 405, -1, 407, 408, 409, 410, + 411, 412, 413, -1, 415, 416, -1, -1, 419, 420, + 421, 422, 423, -1, 425, 426, 427, 428, 429, 430, + 431, 432, -1, -1, 435, 436, 437, 438, 439, 440, + -1, 442, 443, 444, 445, 446, 447, 448, -1, 450, + 451, 452, 453, 454, 455, 456, -1, -1, 459, -1, + -1, 462, 463, 464, 465, 466, 467, 468, 469, 470, + 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, + 481, 482, 3, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 499, -1, + 21, 22, 23, 24, 25, 26, 27, 28, -1, 30, + 31, 32, 33, 34, -1, -1, -1, -1, -1, 40, + 41, -1, 43, 44, 45, 46, 47, 48, 49, 50, + 51, 52, 53, 54, -1, 56, 57, 58, 59, 60, + 61, -1, -1, 64, 65, 66, 67, 68, -1, 70, + 71, 72, 73, 74, -1, 76, -1, 78, 79, 80, + 81, 82, 83, 84, 85, 86, 87, -1, 89, 90, + 91, 92, 93, 94, -1, 96, 97, 98, 99, 100, + 101, 102, 103, -1, -1, 106, 107, 108, 109, 110, + 111, 112, 113, 114, 115, 116, -1, 118, -1, 120, + 121, 122, 123, 124, 125, -1, 127, 128, 129, 130, + 131, -1, -1, 134, 135, 136, 137, 138, -1, 140, + 141, 142, -1, 144, 145, 146, -1, 148, 149, 150, + 151, 152, 153, 154, 155, 156, 157, 158, -1, 160, + -1, 162, 163, 164, 165, -1, 167, -1, 169, 170, + -1, 172, 173, 174, 175, 176, 177, -1, 179, -1, + 181, 182, 183, -1, 185, 186, 187, 188, 189, 190, + 191, 192, 193, 194, 195, 196, -1, 198, 199, 200, + 201, 202, 203, -1, 205, 206, 207, 208, 209, 210, + 211, 212, 213, 214, -1, 216, -1, 218, 219, 220, + 221, 222, 223, 224, 225, 226, 227, 228, -1, -1, + 231, 232, 233, 234, -1, 236, 237, 238, -1, -1, + 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, + 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, + 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, + 271, -1, 273, 274, 275, 276, -1, 278, 279, 280, + 281, 282, 283, -1, 285, 286, -1, -1, 289, 290, + 291, -1, -1, 294, 295, 296, 297, 298, 299, 300, + 301, 302, 303, 304, 305, 306, 307, 308, 309, -1, + 311, 312, 313, 314, 315, 316, 317, 318, 319, -1, + 321, 322, 323, 324, 325, 326, -1, 328, 329, 330, + 331, 332, 333, 334, 335, -1, 337, 338, 339, 340, + 341, 342, 343, 344, 345, 346, 347, 348, 349, -1, + 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, + 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, + 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, + 381, 382, 383, 384, 385, -1, 387, 388, 389, 390, + 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, + 401, 402, -1, 404, 405, 406, 407, 408, 409, 410, + 411, 412, 413, -1, 415, 416, -1, -1, 419, 420, + 421, 422, 423, -1, 425, 426, 427, 428, 429, 430, + 431, 432, -1, -1, 435, 436, 437, 438, 439, 440, + -1, 442, 443, 444, 445, 446, 447, 448, -1, 450, + 451, 452, 453, 454, 455, 456, -1, -1, 459, -1, + 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, + 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, + 481, 482, 3, -1, 485, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 499, -1, + 21, 22, 23, 24, 25, 26, 27, 28, -1, 30, + 31, 32, -1, -1, -1, -1, -1, -1, -1, 40, + 41, -1, 43, 44, 45, 46, 47, 48, 49, 50, + 51, 52, 53, 54, -1, 56, 57, 58, 59, 60, + 61, -1, 63, 64, 65, 66, 67, 68, -1, 70, + 71, 72, 73, 74, -1, 76, -1, 78, 79, 80, + 81, 82, 83, 84, 85, 86, 87, -1, 89, 90, + 91, 92, 93, 94, -1, 96, 97, 98, 99, 100, + 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, + 111, 112, 113, 114, 115, 116, -1, 118, -1, 120, + 121, 122, 123, 124, 125, -1, 127, 128, 129, 130, + 131, -1, -1, 134, 135, 136, 137, 138, -1, 140, + 141, 142, -1, 144, 145, 146, -1, 148, 149, 150, + 151, 152, 153, 154, 155, 156, 157, 158, -1, 160, + -1, 162, 163, 164, 165, -1, 167, -1, 169, 170, + -1, 172, 173, 174, 175, 176, 177, -1, 179, -1, + 181, 182, 183, -1, 185, 186, 187, 188, 189, 190, + 191, 192, 193, 194, 195, 196, -1, 198, 199, 200, + 201, 202, 203, -1, 205, 206, 207, 208, 209, 210, + 211, 212, 213, 214, -1, 216, -1, 218, 219, 220, + 221, 222, 223, 224, 225, 226, 227, 228, -1, -1, + 231, 232, 233, 234, -1, 236, 237, 238, 239, 240, + 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, + 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, + 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, + 271, -1, 273, 274, 275, 276, -1, 278, 279, 280, + 281, 282, 283, -1, 285, 286, -1, -1, 289, 290, + 291, -1, -1, 294, 295, 296, 297, 298, 299, 300, + 301, 302, 303, 304, 305, 306, 307, 308, 309, -1, + 311, 312, 313, 314, 315, 316, 317, 318, 319, -1, + 321, 322, 323, 324, 325, 326, -1, 328, 329, 330, + 331, 332, 333, 334, 335, -1, 337, 338, 339, 340, + 341, 342, 343, 344, 345, 346, 347, 348, 349, -1, + 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, + 361, 362, 363, 364, 365, 366, 367, 368, -1, 370, + 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, + 381, 382, 383, 384, 385, -1, 387, 388, 389, 390, + 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, + 401, 402, -1, 404, 405, -1, 407, 408, 409, 410, + 411, 412, 413, -1, 415, 416, -1, -1, 419, 420, + 421, 422, 423, -1, 425, 426, 427, 428, 429, 430, + 431, 432, -1, -1, 435, 436, 437, 438, 439, 440, + -1, 442, 443, 444, 445, 446, 447, 448, -1, 450, + 451, 452, 453, 454, 455, 456, -1, -1, 459, -1, + -1, 462, 463, 464, 465, 466, 467, 468, 469, 470, + 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, + 481, 482, 3, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 499, -1, + 21, 22, 23, 24, 25, 26, 27, 28, -1, 30, + 31, 32, -1, -1, -1, -1, -1, -1, -1, 40, + 41, -1, 43, 44, 45, 46, 47, 48, 49, 50, + 51, 52, 53, 54, -1, 56, 57, 58, 59, 60, + 61, -1, 63, 64, 65, 66, 67, 68, -1, 70, + 71, 72, 73, 74, -1, 76, -1, 78, 79, 80, + 81, 82, 83, 84, 85, 86, 87, -1, 89, 90, + 91, 92, 93, 94, -1, 96, 97, 98, 99, 100, + 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, + 111, 112, 113, 114, 115, 116, -1, 118, -1, 120, + 121, 122, 123, 124, 125, -1, 127, 128, 129, 130, + 131, -1, -1, 134, 135, 136, 137, 138, -1, 140, + 141, 142, -1, 144, 145, 146, -1, 148, 149, 150, + 151, 152, 153, 154, 155, 156, 157, 158, -1, 160, + -1, 162, 163, 164, 165, -1, 167, -1, 169, 170, + -1, 172, 173, 174, 175, 176, 177, -1, 179, -1, + 181, 182, 183, -1, 185, 186, 187, 188, 189, 190, + 191, 192, 193, 194, 195, 196, -1, 198, 199, 200, + 201, 202, 203, -1, 205, 206, 207, 208, 209, 210, + 211, 212, 213, 214, -1, 216, -1, 218, 219, 220, + 221, 222, 223, 224, 225, 226, 227, 228, -1, -1, + 231, 232, 233, 234, -1, 236, 237, 238, 239, 240, + 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, + 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, + 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, + 271, -1, 273, 274, 275, 276, -1, 278, 279, 280, + 281, 282, 283, -1, 285, 286, -1, -1, 289, 290, + 291, -1, -1, 294, 295, 296, 297, 298, 299, 300, + 301, 302, 303, 304, 305, 306, 307, 308, 309, -1, + 311, 312, 313, 314, 315, 316, 317, 318, 319, -1, + 321, 322, 323, 324, 325, 326, -1, 328, 329, 330, + 331, 332, 333, 334, 335, -1, 337, 338, 339, 340, + 341, 342, 343, 344, 345, 346, 347, 348, 349, -1, + 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, + 361, 362, 363, 364, 365, 366, 367, 368, -1, 370, + 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, + 381, 382, 383, 384, 385, -1, 387, 388, 389, 390, + 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, + 401, 402, -1, 404, 405, -1, 407, 408, 409, 410, + 411, 412, 413, -1, 415, 416, -1, -1, 419, 420, + 421, 422, 423, -1, 425, 426, 427, 428, 429, 430, + 431, 432, -1, -1, 435, 436, 437, 438, 439, 440, + -1, 442, 443, 444, 445, 446, 447, 448, -1, 450, + 451, 452, 453, 454, 455, 456, -1, -1, 459, -1, + -1, 462, 463, 464, 465, 466, 467, 468, 469, 470, + 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, + 481, 482, 3, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 499, -1, + 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, + 31, 32, -1, -1, -1, -1, -1, -1, -1, 40, + 41, -1, 43, 44, 45, -1, 47, 48, 49, 50, + 51, -1, 53, 54, -1, 56, 57, 58, 59, 60, + 61, -1, -1, 64, 65, 66, 67, 68, -1, 70, + 71, 72, 73, 74, -1, -1, -1, 78, 79, 80, + 81, 82, 83, -1, 85, 86, 87, -1, 89, 90, + 91, 92, 93, 94, -1, -1, 97, 98, 99, -1, + -1, -1, -1, -1, -1, -1, 107, 108, 109, 110, + 111, 112, 113, 114, 115, 116, -1, 118, -1, 120, + 121, 122, 123, 124, 125, -1, 127, 128, 129, 130, + 131, -1, -1, 134, 135, 136, 137, 138, -1, 140, + 141, 142, -1, 144, 145, 146, -1, 148, 149, 150, + 151, 152, 153, 154, 155, 156, 157, 158, -1, 160, + -1, 162, 163, 164, 165, -1, 167, -1, 169, -1, + -1, -1, 173, 174, 175, -1, 177, -1, 179, -1, + 181, 182, 183, -1, 185, 186, 187, 188, 189, 190, + 191, -1, 193, 194, 195, 196, -1, 198, 199, 200, + 201, 202, 203, -1, 205, -1, 207, 208, 209, 210, + 211, 212, 213, 214, -1, 216, -1, 218, -1, -1, + 221, -1, 223, 224, 225, 226, 227, 228, -1, -1, + 231, -1, 233, -1, -1, 236, 237, 238, -1, -1, + 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, + 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, + 261, 262, 263, 264, 265, -1, 267, 268, 269, 270, + 271, -1, 273, 274, -1, 276, -1, 278, 279, 280, + 281, 282, 283, -1, 285, 286, -1, -1, 289, 290, + 291, -1, -1, 294, 295, -1, 297, -1, 299, 300, + 301, 302, 303, 304, 305, 306, 307, 308, 309, -1, + 311, 312, 313, 314, 315, 316, 317, 318, 319, -1, + 321, 322, 323, 324, 325, 326, -1, 328, 329, 330, + 331, 332, 333, 334, 335, -1, 337, 338, 339, 340, + 341, 342, 343, 344, 345, 346, 347, 348, 349, -1, + 351, 352, -1, 354, 355, 356, 357, 358, 359, 360, + 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, + 371, 372, 373, 374, -1, 376, 377, 378, 379, 380, + -1, 382, 383, 384, 385, -1, 387, 388, 389, 390, + 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, + 401, 402, -1, 404, 405, 406, 407, -1, 409, 410, + 411, 412, 413, -1, 415, 416, -1, -1, 419, 420, + 421, 422, 423, -1, 425, 426, 427, 428, 429, 430, + 431, 432, -1, -1, 435, 436, 437, 438, 439, -1, + -1, 442, 443, 444, 445, 446, 447, 448, -1, 450, + -1, 452, 453, 454, 455, 456, -1, -1, 459, -1, + 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, + 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, + 481, 482, 3, -1, 485, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 499, -1, + 21, 22, 23, 24, 25, 26, 27, 28, -1, 30, + 31, 32, -1, -1, -1, -1, -1, -1, -1, 40, + 41, -1, 43, 44, 45, -1, 47, 48, 49, 50, + 51, -1, 53, 54, -1, 56, 57, 58, 59, 60, + 61, -1, -1, 64, 65, 66, 67, 68, -1, 70, + 71, 72, 73, 74, -1, -1, -1, 78, 79, 80, + 81, 82, 83, -1, 85, 86, 87, -1, 89, 90, + 91, 92, 93, 94, -1, -1, 97, 98, 99, -1, + -1, -1, -1, -1, -1, -1, 107, 108, 109, 110, + 111, 112, 113, 114, 115, 116, -1, 118, -1, 120, + 121, 122, 123, 124, 125, -1, 127, 128, 129, 130, + 131, -1, -1, 134, 135, 136, 137, 138, -1, 140, + 141, 142, -1, 144, 145, 146, -1, 148, 149, 150, + 151, 152, 153, 154, 155, 156, 157, 158, -1, 160, + -1, 162, 163, 164, 165, -1, 167, -1, 169, -1, + -1, -1, 173, 174, 175, -1, 177, -1, 179, -1, + 181, 182, 183, -1, 185, 186, 187, 188, 189, 190, + 191, -1, 193, 194, 195, 196, -1, 198, 199, 200, + 201, 202, 203, -1, 205, -1, 207, 208, 209, 210, + 211, 212, 213, 214, -1, 216, -1, 218, -1, -1, + 221, -1, 223, 224, 225, 226, 227, 228, -1, -1, + 231, -1, 233, -1, -1, 236, 237, 238, -1, -1, + 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, + 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, + 261, 262, 263, 264, 265, -1, 267, 268, 269, 270, + 271, -1, 273, 274, -1, 276, -1, 278, 279, 280, + 281, 282, 283, -1, 285, 286, -1, -1, 289, 290, + 291, -1, -1, 294, 295, -1, 297, -1, 299, 300, + 301, 302, 303, 304, 305, 306, 307, 308, 309, -1, + 311, 312, 313, 314, 315, 316, 317, 318, 319, -1, + 321, 322, 323, 324, 325, 326, -1, 328, 329, 330, + 331, 332, 333, 334, 335, -1, 337, 338, 339, 340, + 341, 342, 343, 344, 345, 346, 347, 348, 349, -1, + 351, 352, -1, 354, 355, 356, 357, 358, 359, 360, + 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, + 371, 372, 373, 374, -1, 376, 377, 378, 379, 380, + -1, 382, 383, 384, 385, -1, 387, 388, 389, 390, + 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, + 401, 402, -1, 404, 405, 406, 407, -1, 409, 410, + 411, 412, 413, -1, 415, 416, -1, -1, 419, 420, + 421, 422, 423, -1, 425, 426, 427, 428, 429, 430, + 431, 432, -1, -1, 435, 436, 437, 438, 439, -1, + -1, 442, 443, 444, 445, 446, 447, 448, -1, 450, + -1, 452, 453, 454, 455, 456, -1, -1, 459, -1, + 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, + 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, + 481, 482, -1, 3, 485, 5, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 499, -1, -1, 21, 22, 23, 24, 25, 26, 27, 28, -1, 30, 31, 32, -1, -1, -1, -1, -1, -1, -1, 40, 41, -1, 43, 44, 45, -1, 47, 48, 49, @@ -13982,7 +10775,7 @@ static const yytype_int16 yycheck[] = -1, -1, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 3, -1, 5, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 499, -1, 21, 22, 23, 24, 25, 26, 27, 28, -1, 30, 31, 32, -1, -1, -1, -1, -1, -1, -1, 40, 41, -1, 43, 44, 45, -1, 47, 48, 49, @@ -14029,8 +10822,8 @@ static const yytype_int16 yycheck[] = 450, -1, 452, 453, 454, 455, 456, -1, -1, 459, -1, -1, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, - 480, 481, 482, 3, -1, 5, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 480, 481, 482, 3, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 499, -1, 21, 22, 23, 24, 25, 26, 27, 28, -1, 30, 31, 32, -1, -1, -1, -1, -1, -1, -1, 40, 41, -1, 43, 44, 45, -1, 47, 48, 49, @@ -14078,55 +10871,7 @@ static const yytype_int16 yycheck[] = -1, -1, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 3, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 21, 22, 23, 24, 25, 26, 27, 28, 29, - 30, 31, 32, -1, -1, -1, -1, -1, -1, -1, - 40, 41, -1, 43, 44, 45, -1, 47, 48, 49, - 50, 51, -1, 53, 54, -1, 56, 57, 58, 59, - 60, 61, -1, -1, 64, 65, 66, 67, 68, -1, - 70, 71, 72, 73, 74, -1, -1, -1, 78, 79, - 80, 81, 82, 83, -1, 85, 86, 87, -1, 89, - 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, - -1, -1, -1, -1, -1, -1, -1, 107, 108, 109, - 110, 111, 112, 113, 114, 115, 116, -1, 118, -1, - 120, 121, 122, 123, 124, 125, -1, 127, 128, 129, - 130, 131, -1, -1, 134, 135, 136, 137, 138, -1, - 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, - 150, 151, 152, 153, 154, 155, 156, 157, 158, -1, - 160, -1, 162, 163, 164, 165, -1, 167, -1, 169, - -1, -1, -1, 173, 174, 175, -1, 177, -1, 179, - -1, 181, 182, 183, -1, 185, 186, 187, 188, 189, - 190, 191, -1, 193, 194, 195, 196, -1, 198, 199, - 200, 201, 202, 203, -1, 205, -1, 207, 208, 209, - 210, 211, 212, 213, 214, -1, 216, -1, 218, -1, - -1, 221, -1, 223, 224, 225, 226, 227, 228, -1, - -1, 231, -1, 233, -1, -1, 236, 237, 238, -1, - -1, 241, 242, 243, 244, 245, 246, 247, 248, 249, - 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, - 260, 261, 262, 263, 264, 265, -1, 267, 268, 269, - 270, 271, -1, 273, 274, -1, 276, -1, 278, 279, - 280, 281, 282, 283, -1, 285, 286, -1, -1, 289, - 290, 291, -1, -1, 294, 295, -1, 297, -1, 299, - 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, - -1, 311, 312, 313, 314, 315, 316, 317, 318, 319, - -1, 321, 322, 323, 324, 325, 326, -1, 328, 329, - 330, 331, 332, 333, 334, 335, -1, 337, 338, 339, - 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, - -1, 351, 352, -1, 354, 355, 356, 357, 358, 359, - 360, 361, 362, 363, 364, 365, 366, 367, 368, -1, - 370, 371, 372, 373, 374, -1, 376, 377, 378, 379, - 380, -1, 382, 383, 384, 385, -1, 387, 388, 389, - 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, - 400, 401, 402, -1, 404, 405, -1, 407, -1, 409, - 410, 411, 412, 413, -1, 415, 416, -1, -1, 419, - 420, 421, 422, 423, -1, 425, 426, 427, 428, 429, - 430, 431, 432, -1, -1, 435, 436, 437, 438, 439, - -1, -1, 442, 443, 444, 445, 446, 447, 448, -1, - 450, -1, 452, 453, 454, 455, 456, -1, -1, 459, - -1, -1, 462, 463, 464, 465, 466, 467, 468, 469, - 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, - 480, 481, 482, 3, -1, 5, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 499, -1, 21, 22, 23, 24, 25, 26, 27, 28, -1, 30, 31, 32, -1, -1, -1, -1, -1, -1, -1, 40, 41, -1, 43, 44, 45, -1, 47, 48, 49, @@ -14173,8 +10918,8 @@ static const yytype_int16 yycheck[] = 450, -1, 452, 453, 454, 455, 456, -1, -1, 459, -1, -1, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, - 480, 481, 482, 3, -1, 5, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 480, 481, 482, 3, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 499, -1, 21, 22, 23, 24, 25, 26, 27, 28, -1, 30, 31, 32, -1, -1, -1, -1, -1, -1, -1, 40, 41, -1, 43, 44, 45, -1, 47, 48, 49, @@ -14221,1217 +10966,2856 @@ static const yytype_int16 yycheck[] = 450, -1, 452, 453, 454, 455, 456, -1, -1, 459, -1, -1, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, - 480, 481, 482, 3, -1, 5, -1, -1, -1, -1, + 480, 481, 482, -1, -1, 3, 4, 5, -1, -1, + 8, 9, -1, -1, -1, -1, -1, 15, -1, 499, + 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, + 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, + 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, + 48, 49, -1, 51, 52, 53, 54, 55, 56, 57, + 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, + 68, 69, 70, 71, 72, 73, -1, 75, 76, 77, + 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, + 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, + 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, + 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, + 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, + 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, + 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, + 148, 149, 150, 151, -1, 153, 154, 155, 156, 157, + -1, 159, 160, 161, 162, 163, 164, 165, 166, 167, + 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, + 178, 179, 180, -1, -1, 183, 184, 185, 186, 187, + 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, + 198, 199, 200, 201, 202, 203, 204, 205, 206, -1, + 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, + 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, + 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, + 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, + 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, + 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, + 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, + -1, 279, 280, 281, 282, 283, 284, 285, 286, 287, + 288, 289, 290, 291, 292, 293, 294, -1, 296, 297, + 298, -1, 300, 301, 302, 303, 304, 305, 306, 307, + 308, 309, 310, 311, 312, -1, 314, 315, -1, 317, + 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, + 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, + 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, + 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, + 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, + 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, + 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, + 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, + 398, 399, 400, -1, 402, 403, 404, 405, 406, 407, + 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, + 418, 419, 420, -1, 422, -1, 424, 425, 426, 427, + 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, + 438, 439, 440, 441, 442, 443, 444, 445, 446, -1, + 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, + 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 479, 480, 481, 482, -1, 3, -1, 486, 487, + 488, 8, 490, 491, 492, 493, 494, 495, 15, -1, + -1, 18, 19, 20, 21, 22, 23, 24, 25, 26, + 27, 28, -1, 30, 31, 32, -1, -1, -1, -1, + -1, -1, -1, 40, 41, -1, 43, 44, 45, -1, + 47, 48, 49, 50, 51, -1, 53, 54, -1, 56, + 57, 58, 59, 60, 61, -1, -1, 64, 65, 66, + 67, 68, -1, 70, 71, 72, 73, 74, -1, -1, + -1, 78, 79, 80, 81, 82, 83, -1, 85, 86, + 87, -1, 89, 90, 91, 92, 93, 94, -1, -1, + 97, 98, 99, -1, -1, -1, -1, -1, -1, -1, + 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, + -1, 118, -1, 120, 121, 122, 123, 124, 125, -1, + 127, 128, 129, 130, 131, -1, -1, 134, 135, 136, + 137, 138, -1, 140, 141, 142, -1, 144, 145, 146, + -1, 148, 149, 150, 151, 152, 153, 154, 155, 156, + 157, 158, -1, 160, -1, 162, 163, 164, 165, -1, + 167, -1, 169, -1, -1, -1, 173, 174, 175, -1, + 177, -1, 179, -1, 181, 182, 183, -1, 185, 186, + 187, 188, 189, 190, 191, -1, 193, 194, 195, 196, + -1, 198, 199, 200, 201, 202, 203, -1, 205, -1, + 207, 208, 209, 210, 211, 212, 213, 214, -1, 216, + -1, 218, -1, -1, 221, -1, 223, 224, 225, 226, + 227, 228, -1, -1, 231, -1, 233, -1, -1, 236, + 237, 238, -1, -1, 241, 242, 243, 244, 245, 246, + 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, + 257, 258, 259, 260, 261, 262, 263, 264, 265, -1, + 267, 268, 269, 270, 271, -1, 273, 274, -1, 276, + -1, 278, 279, 280, 281, 282, 283, -1, 285, 286, + -1, -1, 289, 290, 291, -1, -1, 294, 295, -1, + 297, -1, 299, 300, 301, 302, 303, 304, 305, 306, + 307, 308, 309, -1, 311, 312, 313, 314, 315, 316, + 317, 318, 319, -1, 321, 322, 323, 324, 325, 326, + -1, 328, 329, 330, 331, 332, 333, 334, 335, -1, + 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, + 347, 348, 349, -1, 351, 352, -1, 354, 355, 356, + 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, + 367, 368, -1, 370, 371, 372, 373, 374, -1, 376, + 377, 378, 379, 380, -1, 382, 383, 384, 385, -1, + 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, + 397, 398, 399, 400, 401, 402, -1, 404, 405, -1, + 407, -1, 409, 410, 411, 412, 413, -1, 415, 416, + -1, -1, 419, 420, 421, 422, 423, -1, 425, 426, + 427, 428, 429, 430, 431, 432, -1, -1, 435, 436, + 437, 438, 439, -1, -1, 442, 443, 444, 445, 446, + 447, 448, -1, 450, -1, 452, 453, 454, 455, 456, + -1, -1, 459, -1, -1, 462, 463, 464, 465, 466, + 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, + 477, 478, 479, 480, 481, 482, -1, -1, -1, 486, + 487, 488, -1, 490, 491, 492, 493, 494, 495, 8, + -1, -1, 11, -1, -1, -1, 15, 16, 17, 18, + 19, 20, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 35, -1, 8, -1, + -1, 11, -1, -1, 43, 15, 16, 17, 18, 19, + 20, 50, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 35, -1, -1, -1, -1, + -1, -1, -1, 43, 8, -1, 75, 11, -1, -1, + 50, 15, 16, 17, 18, 19, 20, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 35, -1, 8, -1, 75, 11, -1, -1, 43, + 15, 16, 17, 18, 19, 20, 50, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 35, -1, -1, -1, -1, -1, -1, -1, 43, -1, + -1, 75, -1, -1, -1, 50, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 75, -1, -1, -1, -1, -1, -1, 176, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 192, -1, -1, -1, -1, 197, -1, + -1, 8, -1, -1, 11, -1, 176, -1, 15, 16, + 17, 18, 19, 20, -1, -1, -1, -1, -1, -1, + 219, 220, 192, -1, -1, -1, -1, 197, 35, -1, + -1, -1, -1, -1, -1, 234, 43, -1, -1, -1, + -1, -1, 176, 50, -1, -1, -1, -1, -1, 219, + 220, -1, -1, -1, -1, -1, -1, -1, 192, -1, + -1, -1, -1, 197, 234, -1, -1, -1, 75, -1, + -1, 176, -1, 272, -1, -1, 275, -1, -1, -1, + -1, -1, -1, -1, -1, 219, 220, 192, -1, -1, + 289, -1, 197, 292, -1, -1, -1, -1, -1, -1, + 234, -1, 272, -1, -1, 275, -1, -1, -1, -1, + -1, -1, -1, -1, 219, 220, -1, -1, -1, 289, + -1, -1, 292, -1, -1, -1, -1, -1, -1, 234, + -1, -1, -1, -1, -1, -1, -1, -1, 272, -1, + -1, 275, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 289, -1, -1, 292, -1, + -1, -1, -1, -1, -1, -1, -1, 272, -1, 176, + 275, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 381, -1, 289, 192, -1, 292, -1, -1, + 197, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 381, 219, 220, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 234, -1, -1, + -1, 8, -1, -1, 11, -1, -1, -1, 15, 16, + 17, 18, 19, 20, -1, -1, -1, 381, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 35, -1, + -1, -1, -1, -1, -1, 272, 43, -1, 275, -1, + -1, -1, -1, 50, -1, -1, 381, -1, -1, -1, + -1, -1, 289, -1, 483, 292, -1, 486, 487, 488, + -1, 490, 491, 492, 493, 494, 495, -1, 75, -1, + -1, 500, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 483, -1, -1, 486, 487, 488, -1, + 490, 491, 492, 493, 494, 495, -1, -1, -1, -1, + 500, -1, -1, -1, -1, 8, -1, -1, 11, -1, + -1, -1, 15, 16, 17, 18, 19, 20, -1, 483, + -1, -1, 486, 487, 488, -1, 490, 491, 492, 493, + 494, 495, 35, -1, -1, -1, 500, -1, -1, -1, + 43, -1, -1, -1, 381, -1, -1, 50, 483, -1, + -1, 486, 487, 488, -1, 490, 491, 492, 493, 494, + 495, -1, -1, -1, -1, 500, -1, 8, -1, 176, + 11, -1, 75, -1, 15, 16, 17, 18, 19, 20, + -1, -1, -1, -1, -1, 192, -1, -1, -1, -1, + 197, -1, -1, -1, 35, -1, -1, -1, -1, -1, + -1, -1, 43, -1, -1, -1, -1, -1, -1, 50, + -1, -1, 219, 220, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 234, -1, -1, + -1, -1, 8, -1, 75, 11, -1, -1, -1, 15, + 16, 17, 18, 19, 20, -1, 483, -1, -1, 486, + 487, 488, -1, 490, 491, 492, 493, 494, 495, 35, + -1, -1, -1, 500, -1, 272, -1, 43, 275, -1, + -1, -1, -1, 176, 50, -1, -1, -1, -1, -1, + -1, -1, 289, -1, -1, 292, -1, -1, -1, 192, + -1, -1, -1, -1, 197, -1, -1, -1, -1, 75, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 219, 220, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 234, -1, -1, -1, 176, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 8, 192, -1, 11, -1, -1, 197, 15, 16, 17, + 18, 19, 20, -1, -1, -1, -1, -1, -1, 272, + -1, -1, 275, -1, 381, -1, -1, 35, 219, 220, + -1, -1, -1, -1, -1, 43, 289, -1, -1, 292, + -1, -1, 50, 234, -1, -1, -1, -1, -1, -1, + 176, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 192, 75, -1, -1, + -1, 197, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 272, -1, -1, 275, -1, -1, -1, -1, -1, + -1, -1, -1, 219, 220, -1, -1, -1, 289, -1, + -1, 292, -1, -1, -1, -1, -1, -1, 234, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 483, -1, 381, 486, + 487, 488, -1, 490, 491, 492, 493, 494, 495, -1, + -1, -1, -1, 500, -1, -1, 272, -1, -1, 275, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 289, 8, -1, 292, 11, 176, -1, + -1, 15, 16, 17, 18, 19, 20, -1, -1, -1, + -1, -1, -1, -1, 192, -1, -1, -1, -1, 197, + 381, 35, -1, -1, -1, -1, -1, -1, -1, 43, + -1, -1, -1, -1, -1, -1, 50, -1, -1, -1, + -1, 219, 220, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 234, -1, -1, -1, + 483, 75, -1, 486, 487, 488, -1, 490, 491, 492, + 493, 494, 495, -1, -1, -1, -1, 500, -1, -1, + -1, -1, -1, -1, -1, 381, -1, -1, -1, -1, + -1, -1, -1, -1, 272, -1, -1, 275, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 289, -1, -1, 292, -1, -1, -1, -1, -1, + -1, -1, 483, -1, -1, 486, 487, 488, -1, 490, + 491, 492, 493, 494, 495, -1, -1, -1, -1, 500, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 176, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 192, -1, + -1, -1, -1, 197, -1, -1, -1, 483, -1, -1, + 486, 487, 488, -1, 490, 491, 492, 493, 494, 495, + -1, -1, -1, 381, 500, 219, 220, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 234, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 272, -1, + -1, 275, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 289, -1, -1, 292, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 483, -1, -1, 486, 487, + 488, -1, 490, 491, 492, 493, 494, 495, -1, -1, + -1, -1, 500, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 381, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 3, -1, 483, + -1, -1, 486, 487, 488, -1, 490, 491, 492, 493, + 494, 495, -1, -1, 498, 21, 22, 23, 24, 25, + 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, + 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, + 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, + 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, + 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, + 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, + 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, + 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, + 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, + 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, + 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, + 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, + 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, + 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, + 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, + 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, + 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, + 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, + 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, + 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, + 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, + 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, + 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, + 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, + 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, + 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, + 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, + 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, + 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, + 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, + 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, + 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, + 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, + 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, + 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, + 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, + 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, + 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, + 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, + 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, + 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, + 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, + 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, + 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, + 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, + 476, 477, 478, 479, 480, 481, 482, 3, -1, -1, + -1, -1, -1, -1, -1, -1, 492, -1, -1, -1, + -1, -1, -1, -1, -1, 21, 22, 23, 24, 25, + 26, 27, 28, -1, 30, 31, 32, -1, -1, -1, + -1, -1, -1, -1, 40, 41, -1, 43, 44, 45, + -1, 47, 48, 49, 50, 51, -1, 53, 54, -1, + 56, 57, 58, 59, 60, 61, -1, -1, 64, 65, + 66, 67, 68, -1, 70, 71, 72, 73, 74, -1, + -1, -1, 78, 79, 80, 81, 82, 83, -1, 85, + 86, 87, -1, 89, 90, 91, 92, 93, 94, -1, + -1, 97, 98, 99, -1, -1, -1, -1, -1, -1, + -1, 107, 108, 109, 110, 111, 112, 113, 114, 115, + 116, -1, 118, -1, 120, 121, 122, 123, 124, 125, + -1, 127, 128, 129, 130, 131, -1, -1, 134, 135, + 136, 137, 138, -1, 140, 141, 142, -1, 144, 145, + 146, -1, 148, 149, 150, 151, 152, 153, 154, 155, + 156, 157, 158, -1, 160, -1, 162, 163, 164, 165, + -1, 167, -1, 169, -1, -1, -1, 173, 174, 175, + -1, 177, -1, 179, -1, 181, 182, 183, -1, 185, + 186, 187, 188, 189, 190, 191, -1, 193, 194, 195, + 196, -1, 198, 199, 200, 201, 202, 203, -1, 205, + -1, 207, 208, 209, 210, 211, 212, 213, 214, -1, + 216, -1, 218, -1, -1, 221, -1, 223, 224, 225, + 226, 227, 228, -1, -1, 231, -1, 233, -1, -1, + 236, 237, 238, -1, -1, 241, 242, 243, 244, 245, + 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, + 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, + -1, 267, 268, 269, 270, 271, -1, 273, 274, -1, + 276, -1, 278, 279, 280, 281, 282, 283, -1, 285, + 286, -1, -1, 289, 290, 291, -1, -1, 294, 295, + -1, 297, -1, 299, 300, 301, 302, 303, 304, 305, + 306, 307, 308, 309, -1, 311, 312, 313, 314, 315, + 316, 317, 318, 319, -1, 321, 322, 323, 324, 325, + 326, -1, 328, 329, 330, 331, 332, 333, 334, 335, + -1, 337, 338, 339, 340, 341, 342, 343, 344, 345, + 346, 347, 348, 349, -1, 351, 352, -1, 354, 355, + 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, + 366, 367, 368, -1, 370, 371, 372, 373, 374, -1, + 376, 377, 378, 379, 380, -1, 382, 383, 384, 385, + -1, 387, 388, 389, 390, 391, 392, 393, 394, 395, + 396, 397, 398, 399, 400, 401, 402, -1, 404, 405, + -1, 407, -1, 409, 410, 411, 412, 413, -1, 415, + 416, -1, -1, 419, 420, 421, 422, 423, -1, 425, + 426, 427, 428, 429, 430, 431, 432, -1, -1, 435, + 436, 437, 438, 439, -1, -1, 442, 443, 444, 445, + 446, 447, 448, -1, 450, -1, 452, 453, 454, 455, + 456, -1, -1, 459, -1, -1, 462, 463, 464, 465, + 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, + 476, 477, 478, 479, 480, 481, 482, 3, 4, 5, + -1, -1, -1, 9, -1, -1, 492, -1, -1, -1, + -1, -1, -1, -1, -1, 21, 22, 23, 24, 25, + 26, 27, 28, -1, 30, 31, 32, -1, -1, -1, + -1, -1, -1, -1, 40, 41, -1, 43, 44, 45, + 46, 47, 48, 49, 50, 51, 52, 53, 54, -1, + 56, 57, 58, 59, 60, 61, -1, -1, 64, 65, + 66, 67, 68, -1, 70, 71, 72, 73, 74, -1, + 76, -1, 78, 79, 80, 81, 82, 83, 84, 85, + 86, 87, -1, 89, 90, 91, 92, 93, 94, -1, + 96, 97, 98, 99, 100, 101, 102, 103, -1, -1, + 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, + 116, 117, 118, -1, 120, 121, 122, 123, 124, 125, + -1, 127, 128, 129, 130, 131, -1, -1, 134, 135, + 136, 137, 138, -1, 140, 141, 142, -1, 144, 145, + 146, -1, 148, 149, 150, 151, 152, 153, 154, 155, + 156, 157, 158, 159, 160, -1, 162, 163, 164, 165, + -1, 167, -1, 169, 170, -1, 172, 173, 174, 175, + 176, 177, -1, 179, -1, 181, 182, 183, -1, 185, + 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, + 196, -1, 198, 199, 200, 201, 202, 203, -1, 205, + 206, 207, 208, 209, 210, 211, 212, 213, 214, -1, + 216, -1, 218, 219, 220, 221, 222, 223, 224, 225, + 226, 227, 228, -1, -1, 231, 232, 233, 234, -1, + 236, 237, 238, -1, -1, 241, 242, 243, 244, 245, + 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, + 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, + 266, 267, 268, 269, 270, 271, -1, 273, 274, 275, + 276, -1, 278, 279, 280, 281, 282, 283, -1, 285, + 286, 287, -1, 289, 290, 291, -1, -1, 294, 295, + 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, + 306, 307, 308, 309, -1, 311, 312, 313, 314, 315, + 316, 317, 318, 319, -1, 321, 322, 323, 324, 325, + 326, -1, 328, 329, 330, 331, 332, 333, 334, 335, + -1, 337, 338, 339, 340, 341, 342, 343, 344, 345, + 346, 347, 348, 349, -1, 351, 352, 353, 354, 355, + 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, + 366, 367, 368, -1, 370, 371, 372, 373, 374, 375, + 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, + -1, 387, 388, 389, 390, 391, 392, 393, 394, 395, + 396, 397, 398, 399, 400, 401, 402, -1, 404, 405, + -1, 407, 408, 409, 410, 411, 412, 413, -1, 415, + 416, -1, -1, 419, 420, 421, 422, 423, 424, 425, + 426, 427, 428, 429, 430, 431, 432, -1, -1, 435, + 436, 437, 438, 439, 440, -1, 442, 443, 444, 445, + 446, 447, 448, -1, 450, 451, 452, 453, 454, 455, + 456, -1, -1, 459, -1, -1, 462, 463, 464, 465, + 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, + 476, 477, 478, 479, 480, 481, 482, 3, 4, 5, + -1, -1, -1, 9, 490, 491, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 21, 22, 23, 24, 25, + 26, 27, 28, -1, 30, 31, 32, -1, -1, -1, + -1, -1, -1, -1, 40, 41, -1, 43, 44, 45, + 46, 47, 48, 49, 50, 51, 52, 53, 54, -1, + 56, 57, 58, 59, 60, 61, -1, -1, 64, 65, + 66, 67, 68, -1, 70, 71, 72, 73, 74, -1, + 76, -1, 78, 79, 80, 81, 82, 83, 84, 85, + 86, 87, -1, 89, 90, 91, 92, 93, 94, -1, + 96, 97, 98, 99, 100, 101, 102, 103, -1, -1, + 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, + 116, 117, 118, -1, 120, 121, 122, 123, 124, 125, + -1, 127, 128, 129, 130, 131, -1, -1, 134, 135, + 136, 137, 138, -1, 140, 141, 142, -1, 144, 145, + 146, -1, 148, 149, 150, 151, 152, 153, 154, 155, + 156, 157, 158, 159, 160, -1, 162, 163, 164, 165, + -1, 167, -1, 169, 170, -1, 172, 173, 174, 175, + 176, 177, -1, 179, -1, 181, 182, 183, -1, 185, + 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, + 196, -1, 198, 199, 200, 201, 202, 203, -1, 205, + 206, 207, 208, 209, 210, 211, 212, 213, 214, -1, + 216, -1, 218, 219, 220, 221, 222, 223, 224, 225, + 226, 227, 228, -1, -1, 231, 232, 233, 234, -1, + 236, 237, 238, -1, -1, 241, 242, 243, 244, 245, + 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, + 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, + 266, 267, 268, 269, 270, 271, -1, 273, 274, 275, + 276, -1, 278, 279, 280, 281, 282, 283, -1, 285, + 286, 287, -1, 289, 290, 291, -1, -1, 294, 295, + 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, + 306, 307, 308, 309, -1, 311, 312, 313, 314, 315, + 316, 317, 318, 319, -1, 321, 322, 323, 324, 325, + 326, -1, 328, 329, 330, 331, 332, 333, 334, 335, + -1, 337, 338, 339, 340, 341, 342, 343, 344, 345, + 346, 347, 348, 349, -1, 351, 352, 353, 354, 355, + 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, + 366, 367, 368, -1, 370, 371, 372, 373, 374, 375, + 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, + -1, 387, 388, 389, 390, 391, 392, 393, 394, 395, + 396, 397, 398, 399, 400, 401, 402, -1, 404, 405, + -1, 407, 408, 409, 410, 411, 412, 413, -1, 415, + 416, -1, -1, 419, 420, 421, 422, 423, 424, 425, + 426, 427, 428, 429, 430, 431, 432, -1, -1, 435, + 436, 437, 438, 439, 440, -1, 442, 443, 444, 445, + 446, 447, 448, -1, 450, 451, 452, 453, 454, 455, + 456, -1, -1, 459, -1, -1, 462, 463, 464, 465, + 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, + 476, 477, 478, 479, 480, 481, 482, 3, 4, 5, + -1, -1, -1, 9, 490, 491, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 21, 22, 23, 24, 25, + 26, 27, 28, -1, 30, 31, 32, -1, -1, -1, + -1, -1, -1, -1, 40, 41, -1, 43, 44, 45, + 46, 47, 48, 49, 50, 51, 52, 53, 54, -1, + 56, 57, 58, 59, 60, 61, -1, -1, 64, 65, + 66, 67, 68, -1, 70, 71, 72, 73, 74, -1, + 76, -1, 78, 79, 80, 81, 82, 83, 84, 85, + 86, 87, -1, 89, 90, 91, 92, 93, 94, -1, + 96, 97, 98, 99, 100, 101, 102, 103, -1, -1, + 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, + 116, -1, 118, -1, 120, 121, 122, 123, 124, 125, + -1, 127, 128, 129, 130, 131, -1, -1, 134, 135, + 136, 137, 138, -1, 140, 141, 142, -1, 144, 145, + 146, -1, 148, 149, 150, 151, 152, 153, 154, 155, + 156, 157, 158, 159, 160, -1, 162, 163, 164, 165, + -1, 167, -1, 169, 170, -1, 172, 173, 174, 175, + 176, 177, -1, 179, -1, 181, 182, 183, -1, 185, + 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, + 196, -1, 198, 199, 200, 201, 202, 203, -1, 205, + 206, 207, 208, 209, 210, 211, 212, 213, 214, -1, + 216, -1, 218, 219, 220, 221, 222, 223, 224, 225, + 226, 227, 228, -1, -1, 231, 232, 233, 234, -1, + 236, 237, 238, -1, -1, 241, 242, 243, 244, 245, + 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, + 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, + 266, 267, 268, 269, 270, 271, -1, 273, 274, 275, + 276, -1, 278, 279, 280, 281, 282, 283, -1, 285, + 286, 287, -1, 289, 290, 291, -1, -1, 294, 295, + 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, + 306, 307, 308, 309, -1, 311, 312, 313, 314, 315, + 316, 317, 318, 319, -1, 321, 322, 323, 324, 325, + 326, -1, 328, 329, 330, 331, 332, 333, 334, 335, + -1, 337, 338, 339, 340, 341, 342, 343, 344, 345, + 346, 347, 348, 349, -1, 351, 352, 353, 354, 355, + 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, + 366, 367, 368, -1, 370, 371, 372, 373, 374, 375, + 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, + -1, 387, 388, 389, 390, 391, 392, 393, 394, 395, + 396, 397, 398, 399, 400, 401, 402, -1, 404, 405, + -1, 407, 408, 409, 410, 411, 412, 413, -1, 415, + 416, -1, -1, 419, 420, 421, 422, 423, 424, 425, + 426, 427, 428, 429, 430, 431, 432, -1, -1, 435, + 436, 437, 438, 439, 440, -1, 442, 443, 444, 445, + 446, 447, 448, -1, 450, 451, 452, 453, 454, 455, + 456, -1, -1, 459, -1, -1, 462, 463, 464, 465, + 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, + 476, 477, 478, 479, 480, 481, 482, -1, -1, 8, + -1, -1, 11, -1, 490, 491, 15, 16, 17, 18, + 19, 20, 8, -1, -1, 11, -1, -1, -1, 15, + 16, 17, 18, 19, 20, -1, 35, -1, -1, -1, + 39, -1, -1, -1, 43, -1, -1, -1, -1, 35, + -1, 50, -1, -1, -1, -1, -1, 43, 8, -1, + -1, 11, -1, -1, 50, 15, 16, 17, 18, 19, + 20, 8, -1, -1, 11, -1, 75, -1, 15, 16, + 17, 18, 19, 20, -1, 35, -1, -1, -1, 75, + -1, -1, -1, 43, -1, -1, -1, -1, 35, -1, + 50, 38, -1, -1, -1, -1, 43, 8, -1, -1, + 11, -1, -1, 50, 15, 16, 17, 18, 19, 20, + -1, -1, -1, -1, -1, 75, -1, 126, -1, -1, + -1, -1, -1, -1, 35, -1, -1, -1, 75, -1, + -1, -1, 43, -1, -1, -1, -1, -1, -1, 50, + -1, -1, 8, -1, -1, 11, -1, -1, -1, 15, + 16, 17, 18, 19, 20, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 75, -1, -1, 176, -1, 35, + 166, -1, 38, -1, -1, 171, -1, 43, -1, -1, + 176, -1, -1, 192, 50, -1, -1, -1, 197, -1, + -1, -1, -1, -1, -1, -1, 192, -1, -1, -1, + -1, 197, -1, -1, -1, 165, -1, -1, -1, 75, + 219, 220, -1, -1, -1, -1, 176, -1, -1, -1, + -1, -1, -1, 219, 220, 234, -1, -1, -1, 176, + -1, -1, 192, -1, -1, -1, -1, 197, 234, -1, + -1, -1, -1, -1, -1, 192, -1, -1, -1, -1, + 197, -1, -1, -1, -1, -1, -1, -1, -1, 219, + 220, -1, -1, 272, -1, 176, 275, -1, -1, -1, + -1, -1, 219, 220, 234, -1, 272, -1, -1, 275, + 289, 192, -1, 292, -1, -1, 197, 234, -1, -1, + -1, -1, -1, 289, -1, -1, 292, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 219, 220, + 176, -1, 272, -1, -1, 275, -1, -1, -1, -1, + -1, -1, -1, 234, -1, 272, 192, -1, 275, 289, + -1, 197, 292, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 289, -1, -1, 292, -1, -1, -1, -1, + -1, -1, -1, 219, 220, 315, -1, -1, -1, -1, + -1, 272, -1, -1, 275, -1, -1, -1, 234, -1, + -1, -1, 381, -1, -1, -1, -1, -1, 289, -1, + -1, 292, -1, -1, -1, 381, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 310, + -1, -1, -1, -1, -1, -1, 272, -1, -1, 275, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 381, -1, 289, -1, -1, 292, -1, -1, -1, + -1, -1, 441, -1, 381, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 21, 22, 23, 24, 25, 26, 27, 28, -1, - 30, 31, 32, -1, -1, -1, -1, -1, -1, -1, - 40, 41, -1, 43, 44, 45, -1, 47, 48, 49, - 50, 51, -1, 53, 54, -1, 56, 57, 58, 59, - 60, 61, -1, -1, 64, 65, 66, 67, 68, -1, - 70, 71, 72, 73, 74, -1, -1, -1, 78, 79, - 80, 81, 82, 83, -1, 85, 86, 87, -1, 89, - 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, - -1, -1, -1, -1, -1, -1, -1, 107, 108, 109, - 110, 111, 112, 113, 114, 115, 116, -1, 118, -1, - 120, 121, 122, 123, 124, 125, -1, 127, 128, 129, - 130, 131, -1, -1, 134, 135, 136, 137, 138, -1, - 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, - 150, 151, 152, 153, 154, 155, 156, 157, 158, -1, - 160, -1, 162, 163, 164, 165, -1, 167, -1, 169, - -1, -1, -1, 173, 174, 175, -1, 177, -1, 179, - -1, 181, 182, 183, -1, 185, 186, 187, 188, 189, - 190, 191, -1, 193, 194, 195, 196, -1, 198, 199, - 200, 201, 202, 203, -1, 205, -1, 207, 208, 209, - 210, 211, 212, 213, 214, -1, 216, -1, 218, -1, - -1, 221, -1, 223, 224, 225, 226, 227, 228, -1, - -1, 231, -1, 233, -1, -1, 236, 237, 238, -1, - -1, 241, 242, 243, 244, 245, 246, 247, 248, 249, - 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, - 260, 261, 262, 263, 264, 265, -1, 267, 268, 269, - 270, 271, -1, 273, 274, -1, 276, -1, 278, 279, - 280, 281, 282, 283, -1, 285, 286, -1, -1, 289, - 290, 291, -1, -1, 294, 295, -1, 297, -1, 299, - 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, - -1, 311, 312, 313, 314, 315, 316, 317, 318, 319, - -1, 321, 322, 323, 324, 325, 326, -1, 328, 329, - 330, 331, 332, 333, 334, 335, -1, 337, 338, 339, - 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, - -1, 351, 352, -1, 354, 355, 356, 357, 358, 359, - 360, 361, 362, 363, 364, 365, 366, 367, 368, -1, - 370, 371, 372, 373, 374, -1, 376, 377, 378, 379, - 380, -1, 382, 383, 384, 385, -1, 387, 388, 389, - 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, - 400, 401, 402, -1, 404, 405, -1, 407, -1, 409, - 410, 411, 412, 413, -1, 415, 416, -1, -1, 419, - 420, 421, 422, 423, -1, 425, 426, 427, 428, 429, - 430, 431, 432, -1, -1, 435, 436, 437, 438, 439, - -1, -1, 442, 443, 444, 445, 446, 447, 448, -1, - 450, -1, 452, 453, 454, 455, 456, -1, -1, 459, - -1, -1, 462, 463, 464, 465, 466, 467, 468, 469, - 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, - 480, 481, 482, 3, -1, 5, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 21, 22, 23, 24, 25, 26, 27, 28, -1, - 30, 31, 32, -1, -1, -1, -1, -1, -1, -1, - 40, 41, -1, 43, 44, 45, -1, 47, 48, 49, - 50, 51, -1, 53, 54, -1, 56, 57, 58, 59, - 60, 61, -1, -1, 64, 65, 66, 67, 68, -1, - 70, 71, 72, 73, 74, -1, -1, -1, 78, 79, - 80, 81, 82, 83, -1, 85, 86, 87, -1, 89, - 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, - -1, -1, -1, -1, -1, -1, -1, 107, 108, 109, - 110, 111, 112, 113, 114, 115, 116, -1, 118, -1, - 120, 121, 122, 123, 124, 125, -1, 127, 128, 129, - 130, 131, -1, -1, 134, 135, 136, 137, 138, -1, - 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, - 150, 151, 152, 153, 154, 155, 156, 157, 158, -1, - 160, -1, 162, 163, 164, 165, -1, 167, -1, 169, - -1, -1, -1, 173, 174, 175, -1, 177, -1, 179, - -1, 181, 182, 183, -1, 185, 186, 187, 188, 189, - 190, 191, -1, 193, 194, 195, 196, -1, 198, 199, - 200, 201, 202, 203, -1, 205, -1, 207, 208, 209, - 210, 211, 212, 213, 214, -1, 216, -1, 218, -1, - -1, 221, -1, 223, 224, 225, 226, 227, 228, -1, - -1, 231, -1, 233, -1, -1, 236, 237, 238, -1, - -1, 241, 242, 243, 244, 245, 246, 247, 248, 249, - 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, - 260, 261, 262, 263, 264, 265, -1, 267, 268, 269, - 270, 271, -1, 273, 274, -1, 276, -1, 278, 279, - 280, 281, 282, 283, -1, 285, 286, -1, -1, 289, - 290, 291, -1, -1, 294, 295, -1, 297, -1, 299, - 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, - -1, 311, 312, 313, 314, 315, 316, 317, 318, 319, - -1, 321, 322, 323, 324, 325, 326, -1, 328, 329, - 330, 331, 332, 333, 334, 335, -1, 337, 338, 339, - 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, - -1, 351, 352, -1, 354, 355, 356, 357, 358, 359, - 360, 361, 362, 363, 364, 365, 366, 367, 368, -1, - 370, 371, 372, 373, 374, -1, 376, 377, 378, 379, - 380, -1, 382, 383, 384, 385, -1, 387, 388, 389, - 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, - 400, 401, 402, -1, 404, 405, -1, 407, -1, 409, - 410, 411, 412, 413, -1, 415, 416, -1, -1, 419, - 420, 421, 422, 423, -1, 425, 426, 427, 428, 429, - 430, 431, 432, -1, -1, 435, 436, 437, 438, 439, - -1, -1, 442, 443, 444, 445, 446, 447, 448, -1, - 450, -1, 452, 453, 454, 455, 456, -1, -1, 459, - -1, -1, 462, 463, 464, 465, 466, 467, 468, 469, - 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, - 480, 481, 482, 3, -1, -1, -1, -1, -1, -1, + 381, -1, -1, -1, 483, -1, -1, 486, 487, 488, + -1, 490, 491, 492, 493, 494, 495, 483, -1, -1, + 486, 487, 488, -1, 490, 491, 492, 493, 494, 495, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 21, 22, 23, 24, 25, 26, 27, 28, -1, - 30, 31, 32, -1, -1, -1, -1, -1, -1, -1, - 40, 41, -1, 43, 44, 45, 46, 47, 48, 49, - -1, 51, 52, 53, 54, -1, 56, 57, 58, 59, - 60, 61, -1, -1, 64, 65, 66, 67, 68, -1, - 70, 71, 72, 73, -1, -1, 76, -1, 78, 79, - 80, 81, 82, 83, 84, 85, 86, 87, -1, 89, - 90, 91, 92, 93, 94, -1, 96, 97, 98, 99, - 100, 101, 102, 103, -1, -1, 106, 107, 108, 109, - 110, 111, 112, 113, 114, 115, 116, -1, 118, -1, - 120, 121, 122, 123, 124, 125, -1, 127, 128, 129, - 130, 131, -1, -1, 134, 135, 136, 137, 138, -1, - 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, - 150, 151, -1, 153, 154, 155, 156, 157, -1, -1, - 160, -1, 162, 163, 164, 165, -1, 167, -1, 169, - 170, -1, 172, 173, 174, -1, 176, 177, -1, 179, - -1, -1, -1, 183, -1, 185, 186, 187, 188, 189, - 190, 191, 192, 193, 194, 195, 196, -1, 198, 199, - 200, 201, 202, 203, -1, 205, 206, -1, 208, 209, - 210, 211, 212, 213, 214, -1, 216, -1, 218, 219, - 220, 221, 222, 223, 224, 225, 226, 227, 228, -1, - -1, 231, 232, 233, 234, -1, 236, 237, 238, -1, - -1, 241, 242, 243, 244, 245, 246, 247, 248, 249, - 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, - 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, - 270, -1, -1, 273, 274, 275, 276, -1, -1, 279, - 280, 281, 282, 283, -1, 285, 286, -1, -1, 289, - 290, 291, -1, -1, 294, -1, 296, 297, 298, -1, - 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, - -1, 311, 312, -1, 314, 315, -1, 317, 318, 319, - -1, 321, 322, 323, 324, 325, 326, -1, 328, 329, - 330, 331, 332, 333, 334, 335, -1, 337, 338, 339, - 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, - -1, 351, 352, 353, 354, 355, 356, 357, 358, 359, - 360, 361, 362, 363, 364, 365, 366, 367, 368, -1, - 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, - 380, 381, 382, 383, 384, 385, -1, 387, 388, 389, - 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, - 400, -1, 402, -1, 404, 405, -1, 407, 408, 409, - 410, 411, 412, 413, -1, 415, 416, -1, -1, 419, - 420, -1, 422, -1, -1, 425, 426, 427, 428, 429, - 430, 431, 432, -1, -1, 435, 436, 437, 438, 439, - 440, -1, 442, 443, 444, 445, 446, -1, 448, -1, - 450, 451, 452, 453, 454, 455, 456, -1, -1, 459, - -1, -1, 462, 463, 464, 465, 466, 467, 3, -1, - 5, -1, -1, -1, -1, -1, -1, -1, -1, 479, - 480, 481, 482, -1, -1, -1, 21, 22, 23, 24, - 25, 26, 27, 28, -1, 30, 31, 32, -1, -1, - -1, -1, -1, -1, -1, 40, 41, -1, 43, 44, - 45, -1, 47, 48, 49, 50, 51, -1, 53, 54, - -1, 56, 57, 58, 59, 60, 61, -1, -1, 64, - 65, 66, 67, 68, -1, 70, 71, 72, 73, 74, - -1, -1, -1, 78, 79, 80, 81, 82, 83, -1, - 85, 86, 87, -1, 89, 90, 91, 92, 93, 94, - -1, -1, 97, 98, 99, -1, -1, -1, -1, -1, - -1, -1, 107, 108, 109, 110, 111, 112, 113, 114, - 115, 116, -1, 118, -1, 120, 121, 122, 123, 124, - 125, -1, 127, 128, 129, 130, 131, -1, -1, 134, - 135, 136, 137, 138, -1, 140, 141, 142, -1, 144, - 145, 146, -1, 148, 149, 150, 151, 152, 153, 154, - 155, 156, 157, 158, -1, 160, -1, 162, 163, 164, - 165, -1, 167, -1, 169, -1, -1, -1, 173, 174, - 175, -1, 177, -1, 179, -1, 181, 182, 183, -1, - 185, 186, 187, 188, 189, 190, 191, -1, 193, 194, - 195, 196, -1, 198, 199, 200, 201, 202, 203, -1, - 205, -1, 207, 208, 209, 210, 211, 212, 213, 214, - -1, 216, -1, 218, -1, -1, 221, -1, 223, 224, - 225, 226, 227, 228, -1, -1, 231, -1, 233, -1, - -1, 236, 237, 238, -1, -1, 241, 242, 243, 244, - 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, - 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, - 265, -1, 267, 268, 269, 270, 271, -1, 273, 274, - -1, 276, -1, 278, 279, 280, 281, 282, 283, -1, - 285, 286, -1, -1, 289, 290, 291, -1, -1, 294, - 295, -1, 297, -1, 299, 300, 301, 302, 303, 304, - 305, 306, 307, 308, 309, -1, 311, 312, 313, 314, - 315, 316, 317, 318, 319, -1, 321, 322, 323, 324, - 325, 326, -1, 328, 329, 330, 331, 332, 333, 334, - 335, -1, 337, 338, 339, 340, 341, 342, 343, 344, - 345, 346, 347, 348, 349, -1, 351, 352, -1, 354, - 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, - 365, 366, 367, 368, -1, 370, 371, 372, 373, 374, - -1, 376, 377, 378, 379, 380, -1, 382, 383, 384, - 385, -1, 387, 388, 389, 390, 391, 392, 393, 394, - 395, 396, 397, 398, 399, 400, 401, 402, -1, 404, - 405, -1, 407, -1, 409, 410, 411, 412, 413, -1, - 415, 416, -1, -1, 419, 420, 421, 422, 423, -1, - 425, 426, 427, 428, 429, 430, 431, 432, -1, -1, - 435, 436, 437, 438, 439, -1, -1, 442, 443, 444, - 445, 446, 447, 448, -1, 450, -1, 452, 453, 454, - 455, 456, -1, -1, 459, -1, -1, 462, 463, 464, - 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, - 475, 476, 477, 478, 479, 480, 481, 482, 3, -1, - 5, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 21, 22, 23, 24, - 25, 26, 27, 28, -1, 30, 31, 32, -1, -1, - -1, -1, -1, -1, -1, 40, 41, -1, 43, 44, - 45, -1, 47, 48, 49, 50, 51, -1, 53, 54, - -1, 56, 57, 58, 59, 60, 61, -1, -1, 64, - 65, 66, 67, 68, -1, 70, 71, 72, 73, 74, - -1, -1, -1, 78, 79, 80, 81, 82, 83, -1, - 85, 86, 87, -1, 89, 90, 91, 92, 93, 94, - -1, -1, 97, 98, 99, -1, -1, -1, -1, -1, - -1, -1, 107, 108, 109, 110, 111, 112, 113, 114, - 115, 116, -1, 118, -1, 120, 121, 122, 123, 124, - 125, -1, 127, 128, 129, 130, 131, -1, -1, 134, - 135, 136, 137, 138, -1, 140, 141, 142, -1, 144, - 145, 146, -1, 148, 149, 150, 151, 152, 153, 154, - 155, 156, 157, 158, -1, 160, -1, 162, 163, 164, - 165, -1, 167, -1, 169, -1, -1, -1, 173, 174, - 175, -1, 177, -1, 179, -1, 181, 182, 183, -1, - 185, 186, 187, 188, 189, 190, 191, -1, 193, 194, - 195, 196, -1, 198, 199, 200, 201, 202, 203, -1, - 205, -1, 207, 208, 209, 210, 211, 212, 213, 214, - -1, 216, -1, 218, -1, -1, 221, -1, 223, 224, - 225, 226, 227, 228, -1, -1, 231, -1, 233, -1, - -1, 236, 237, 238, -1, -1, 241, 242, 243, 244, - 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, - 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, - 265, -1, 267, 268, 269, 270, 271, -1, 273, 274, - -1, 276, -1, 278, 279, 280, 281, 282, 283, -1, - 285, 286, -1, -1, 289, 290, 291, -1, -1, 294, - 295, -1, 297, -1, 299, 300, 301, 302, 303, 304, - 305, 306, 307, 308, 309, -1, 311, 312, 313, 314, - 315, 316, 317, 318, 319, -1, 321, 322, 323, 324, - 325, 326, -1, 328, 329, 330, 331, 332, 333, 334, - 335, -1, 337, 338, 339, 340, 341, 342, 343, 344, - 345, 346, 347, 348, 349, -1, 351, 352, -1, 354, - 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, - 365, 366, 367, 368, -1, 370, 371, 372, 373, 374, - -1, 376, 377, 378, 379, 380, -1, 382, 383, 384, - 385, -1, 387, 388, 389, 390, 391, 392, 393, 394, - 395, 396, 397, 398, 399, 400, 401, 402, -1, 404, - 405, -1, 407, -1, 409, 410, 411, 412, 413, -1, - 415, 416, -1, -1, 419, 420, 421, 422, 423, -1, - 425, 426, 427, 428, 429, 430, 431, 432, -1, -1, - 435, 436, 437, 438, 439, -1, -1, 442, 443, 444, - 445, 446, 447, 448, -1, 450, -1, 452, 453, 454, - 455, 456, -1, -1, 459, -1, -1, 462, 463, 464, - 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, - 475, 476, 477, 478, 479, 480, 481, 482, 3, -1, - 5, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 21, 22, 23, 24, - 25, 26, 27, 28, -1, 30, 31, 32, -1, -1, - -1, -1, -1, -1, -1, 40, 41, -1, 43, 44, - 45, -1, 47, 48, 49, 50, 51, -1, 53, 54, - -1, 56, 57, 58, 59, 60, 61, -1, -1, 64, - 65, 66, 67, 68, -1, 70, 71, 72, 73, 74, - -1, -1, -1, 78, 79, 80, 81, 82, 83, -1, - 85, 86, 87, -1, 89, 90, 91, 92, 93, 94, - -1, -1, 97, 98, 99, -1, -1, -1, -1, -1, - -1, -1, 107, 108, 109, 110, 111, 112, 113, 114, - 115, 116, -1, 118, -1, 120, 121, 122, 123, 124, - 125, -1, 127, 128, 129, 130, 131, -1, -1, 134, - 135, 136, 137, 138, -1, 140, 141, 142, -1, 144, - 145, 146, -1, 148, 149, 150, 151, 152, 153, 154, - 155, 156, 157, 158, -1, 160, -1, 162, 163, 164, - 165, -1, 167, -1, 169, -1, -1, -1, 173, 174, - 175, -1, 177, -1, 179, -1, 181, 182, 183, -1, - 185, 186, 187, 188, 189, 190, 191, -1, 193, 194, - 195, 196, -1, 198, 199, 200, 201, 202, 203, -1, - 205, -1, 207, 208, 209, 210, 211, 212, 213, 214, - -1, 216, -1, 218, -1, -1, 221, -1, 223, 224, - 225, 226, 227, 228, -1, -1, 231, -1, 233, -1, - -1, 236, 237, 238, -1, -1, 241, 242, 243, 244, - 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, - 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, - 265, -1, 267, 268, 269, 270, 271, -1, 273, 274, - -1, 276, -1, 278, 279, 280, 281, 282, 283, -1, - 285, 286, -1, -1, 289, 290, 291, -1, -1, 294, - 295, -1, 297, -1, 299, 300, 301, 302, 303, 304, - 305, 306, 307, 308, 309, -1, 311, 312, 313, 314, - 315, 316, 317, 318, 319, -1, 321, 322, 323, 324, - 325, 326, -1, 328, 329, 330, 331, 332, 333, 334, - 335, -1, 337, 338, 339, 340, 341, 342, 343, 344, - 345, 346, 347, 348, 349, -1, 351, 352, -1, 354, - 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, - 365, 366, 367, 368, -1, 370, 371, 372, 373, 374, - -1, 376, 377, 378, 379, 380, -1, 382, 383, 384, - 385, -1, 387, 388, 389, 390, 391, 392, 393, 394, - 395, 396, 397, 398, 399, 400, 401, 402, -1, 404, - 405, -1, 407, -1, 409, 410, 411, 412, 413, -1, - 415, 416, -1, -1, 419, 420, 421, 422, 423, -1, - 425, 426, 427, 428, 429, 430, 431, 432, -1, -1, - 435, 436, 437, 438, 439, -1, -1, 442, 443, 444, - 445, 446, 447, 448, -1, 450, -1, 452, 453, 454, - 455, 456, -1, -1, 459, -1, -1, 462, 463, 464, - 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, - 475, 476, 477, 478, 479, 480, 481, 482, 3, -1, - 5, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 21, 22, 23, 24, - 25, 26, 27, 28, -1, 30, 31, 32, -1, -1, - -1, -1, -1, -1, -1, 40, 41, -1, 43, 44, - 45, -1, 47, 48, 49, 50, 51, -1, 53, 54, - -1, 56, 57, 58, 59, 60, 61, -1, -1, 64, - 65, 66, 67, 68, -1, 70, 71, 72, 73, 74, - -1, -1, -1, 78, 79, 80, 81, 82, 83, -1, - 85, 86, 87, -1, 89, 90, 91, 92, 93, 94, - -1, -1, 97, 98, 99, -1, -1, -1, -1, -1, - -1, -1, 107, 108, 109, 110, 111, 112, 113, 114, - 115, 116, -1, 118, -1, 120, 121, 122, 123, 124, - 125, -1, 127, 128, 129, 130, 131, -1, -1, 134, - 135, 136, 137, 138, -1, 140, 141, 142, -1, 144, - 145, 146, -1, 148, 149, 150, 151, 152, 153, 154, - 155, 156, 157, 158, -1, 160, -1, 162, 163, 164, - 165, -1, 167, -1, 169, -1, -1, -1, 173, 174, - 175, -1, 177, -1, 179, -1, 181, 182, 183, -1, - 185, 186, 187, 188, 189, 190, 191, -1, 193, 194, - 195, 196, -1, 198, 199, 200, 201, 202, 203, -1, - 205, -1, 207, 208, 209, 210, 211, 212, 213, 214, - -1, 216, -1, 218, -1, -1, 221, -1, 223, 224, - 225, 226, 227, 228, -1, -1, 231, -1, 233, -1, - -1, 236, 237, 238, -1, -1, 241, 242, 243, 244, - 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, - 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, - 265, -1, 267, 268, 269, 270, 271, -1, 273, 274, - -1, 276, -1, 278, 279, 280, 281, 282, 283, -1, - 285, 286, -1, -1, 289, 290, 291, -1, -1, 294, - 295, -1, 297, -1, 299, 300, 301, 302, 303, 304, - 305, 306, 307, 308, 309, -1, 311, 312, 313, 314, - 315, 316, 317, 318, 319, -1, 321, 322, 323, 324, - 325, 326, -1, 328, 329, 330, 331, 332, 333, 334, - 335, -1, 337, 338, 339, 340, 341, 342, 343, 344, - 345, 346, 347, 348, 349, -1, 351, 352, -1, 354, - 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, - 365, 366, 367, 368, -1, 370, 371, 372, 373, 374, - -1, 376, 377, 378, 379, 380, -1, 382, 383, 384, - 385, -1, 387, 388, 389, 390, 391, 392, 393, 394, - 395, 396, 397, 398, 399, 400, 401, 402, -1, 404, - 405, -1, 407, -1, 409, 410, 411, 412, 413, -1, - 415, 416, -1, -1, 419, 420, 421, 422, 423, -1, - 425, 426, 427, 428, 429, 430, 431, 432, -1, -1, - 435, 436, 437, 438, 439, -1, -1, 442, 443, 444, - 445, 446, 447, 448, -1, 450, -1, 452, 453, 454, - 455, 456, -1, -1, 459, -1, -1, 462, 463, 464, - 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, - 475, 476, 477, 478, 479, 480, 481, 482, 3, -1, + -1, -1, -1, -1, -1, 381, -1, -1, -1, -1, + -1, -1, -1, 483, -1, -1, 486, 487, 488, -1, + 490, 491, 492, 493, 494, 495, 483, -1, -1, 486, + 487, 488, -1, 490, 491, 492, 493, 494, 495, -1, + -1, 8, -1, -1, 11, -1, -1, -1, 15, 16, + 17, 18, 19, 20, -1, -1, -1, -1, -1, -1, + -1, -1, 483, -1, -1, 486, 487, 488, 35, 490, + 491, 492, 493, 494, 495, -1, 43, -1, -1, -1, + -1, -1, -1, 50, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 483, 75, -1, + 486, 487, 488, -1, 490, 491, 492, 493, 494, 495, + 8, -1, -1, 11, -1, -1, -1, 15, 16, 17, + 18, 19, 20, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 35, -1, 8, + 38, -1, 11, -1, -1, 43, 15, 16, 17, 18, + 19, 20, 50, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 35, -1, -1, -1, + -1, -1, -1, -1, 43, -1, -1, 75, -1, -1, + -1, 50, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 171, -1, -1, -1, -1, 176, + -1, -1, -1, -1, -1, -1, 75, -1, -1, -1, + -1, -1, -1, -1, -1, 192, -1, -1, 8, -1, + 197, 11, -1, -1, -1, 15, 16, 17, 18, 19, + 20, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 219, 220, -1, 35, -1, -1, 38, -1, + -1, -1, -1, 43, -1, -1, -1, 234, -1, -1, + 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 176, -1, + -1, -1, -1, -1, -1, 75, -1, -1, -1, -1, + -1, -1, -1, -1, 192, 272, -1, -1, 275, 197, + -1, -1, -1, -1, -1, -1, -1, 176, -1, -1, + -1, -1, 289, -1, -1, 292, -1, -1, -1, -1, + -1, 219, 220, 192, -1, -1, -1, -1, 197, -1, + -1, -1, -1, -1, -1, -1, 234, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 219, 220, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 234, -1, -1, -1, -1, + -1, -1, -1, -1, 272, -1, -1, 275, -1, -1, + -1, -1, -1, -1, -1, -1, 176, -1, -1, 8, + -1, 289, 11, -1, 292, -1, 15, 16, 17, 18, + 19, 20, 192, 272, 381, -1, 275, 197, -1, -1, + -1, -1, -1, -1, -1, -1, 35, -1, -1, -1, + 289, -1, -1, 292, 43, -1, -1, -1, -1, 219, + 220, 50, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 234, -1, -1, -1, -1, -1, + -1, -1, 8, -1, -1, 11, 75, -1, -1, 15, + 16, 17, 18, 19, 20, 8, -1, -1, 11, -1, + -1, -1, 15, -1, -1, 18, 19, 20, -1, 35, + -1, -1, 272, 381, -1, 275, -1, 43, -1, -1, + -1, -1, 35, -1, 50, -1, -1, -1, -1, 289, + 43, -1, 292, -1, -1, -1, 483, 50, -1, 486, + 487, 488, 381, 490, 491, 492, 493, 494, 495, 75, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 75, -1, -1, -1, -1, -1, -1, 8, + -1, -1, 11, -1, -1, 414, 15, -1, -1, 18, + 19, 20, -1, -1, -1, -1, -1, 176, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 192, 43, -1, -1, -1, 197, -1, + -1, 50, -1, -1, -1, 483, -1, -1, 486, 487, + 488, 381, 490, 491, 492, 493, 494, 495, -1, -1, + 219, 220, -1, -1, -1, -1, 75, -1, -1, -1, + -1, -1, -1, -1, 483, 234, -1, 486, 487, 488, + 176, 490, 491, 492, 493, 494, 495, -1, -1, -1, + -1, -1, -1, 176, -1, -1, 192, -1, -1, -1, + -1, 197, -1, -1, -1, -1, -1, -1, -1, 192, + -1, -1, -1, 272, 197, -1, 275, -1, -1, -1, + -1, -1, -1, 219, 220, -1, -1, -1, -1, -1, + 289, -1, -1, 292, -1, -1, 219, 220, 234, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 234, -1, 483, -1, -1, 486, 487, 488, -1, + 490, 491, 492, 493, 494, 495, -1, 176, -1, -1, + -1, -1, -1, -1, -1, -1, 272, -1, -1, 275, + -1, -1, -1, 192, -1, -1, -1, -1, 197, 272, + -1, -1, 275, 289, -1, -1, 292, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 289, -1, -1, -1, + 219, 220, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 381, -1, -1, 234, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 275, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 289, -1, -1, -1, -1, 381, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 381, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 483, -1, -1, 486, 487, 488, + -1, 490, 491, 492, 493, 494, 495, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 381, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 483, -1, -1, + 486, 487, 488, -1, 490, 491, 492, 493, 494, 495, + 483, -1, -1, 486, 487, 488, -1, 490, 491, 492, + 493, 494, 495, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 3, + -1, 5, -1, -1, 483, -1, -1, 486, 487, 488, + -1, 490, 491, 492, 493, 494, 495, 21, 22, 23, + 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, + 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, + 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, + 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, + 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, + 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, + 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, + 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, + 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, + 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, + 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, + 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, + 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, + 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, + 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, + 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, + 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, + 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, + 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, + 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, + 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, + 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, + 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, + 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, + 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, + 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, + 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, + 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, + 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, + 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, + 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, + 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, + 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, + 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, + 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, + 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, + 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, + 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, + 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, + 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, + 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, + 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, + 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, + 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, + 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, + 474, 475, 476, 477, 478, 479, 480, 481, 482, 3, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 21, 22, 23, + 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, + 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, + 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, + 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, + 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, + 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, + 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, + 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, + 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, + 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, + 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, + 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, + 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, + 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, + 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, + 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, + 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, + 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, + 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, + 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, + 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, + 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, + 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, + 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, + 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, + 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, + 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, + 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, + 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, + 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, + 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, + 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, + 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, + 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, + 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, + 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, + 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, + 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, + 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, + 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, + 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, + 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, + 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, + 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, + 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, + 474, 475, 476, 477, 478, 479, 480, 481, 482, 3, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 21, 22, 23, + 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, + 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, + 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, + 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, + 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, + 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, + 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, + 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, + 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, + 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, + 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, + 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, + 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, + 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, + 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, + 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, + 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, + 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, + 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, + 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, + 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, + 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, + 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, + 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, + 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, + 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, + 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, + 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, + 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, + 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, + 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, + 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, + 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, + 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, + 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, + 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, + 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, + 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, + 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, + 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, + 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, + 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, + 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, + 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, + 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, + 474, 475, 476, 477, 478, 479, 480, 481, 482, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 21, 22, 23, 24, - 25, 26, 27, 28, -1, 30, 31, 32, -1, -1, - -1, -1, -1, -1, -1, 40, 41, -1, 43, 44, - 45, 46, 47, 48, 49, -1, 51, 52, 53, 54, - -1, 56, 57, 58, 59, 60, 61, -1, -1, 64, - 65, 66, 67, 68, -1, 70, 71, 72, 73, -1, - -1, 76, -1, 78, 79, 80, 81, 82, 83, 84, - 85, 86, 87, -1, 89, 90, 91, 92, 93, 94, - -1, 96, 97, 98, 99, 100, 101, 102, 103, -1, - -1, 106, 107, 108, 109, 110, 111, 112, 113, 114, - 115, 116, -1, 118, -1, 120, 121, 122, 123, 124, - 125, -1, 127, 128, 129, 130, 131, -1, -1, 134, - 135, 136, 137, 138, -1, 140, 141, 142, -1, 144, - 145, 146, -1, 148, 149, 150, 151, -1, 153, 154, - 155, 156, 157, -1, -1, 160, -1, 162, 163, 164, - 165, -1, 167, -1, 169, 170, -1, 172, 173, 174, - -1, 176, 177, -1, 179, -1, -1, -1, 183, -1, - 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, - 195, 196, -1, 198, 199, 200, 201, 202, 203, -1, - 205, 206, -1, 208, 209, 210, 211, 212, 213, 214, - -1, 216, -1, 218, 219, 220, 221, 222, 223, 224, - 225, 226, 227, 228, -1, -1, 231, 232, 233, 234, - -1, 236, 237, 238, -1, -1, 241, 242, 243, 244, - 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, - 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, - 265, 266, 267, 268, 269, 270, -1, -1, 273, 274, - 275, 276, -1, -1, 279, 280, 281, 282, 283, -1, - 285, 286, -1, -1, 289, 290, 291, -1, -1, 294, - -1, 296, 297, 298, -1, 300, 301, 302, 303, 304, - 305, 306, 307, 308, 309, -1, 311, 312, -1, 314, - 315, -1, 317, 318, 319, -1, 321, 322, 323, 324, - 325, 326, -1, 328, 329, 330, 331, 332, 333, 334, - 335, -1, 337, 338, 339, 340, 341, 342, 343, 344, - 345, 346, 347, 348, 349, -1, 351, 352, 353, 354, - 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, - 365, 366, 367, 368, -1, 370, 371, 372, 373, 374, - 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, - 385, -1, 387, 388, 389, 390, 391, 392, 393, 394, - 395, 396, 397, 398, 399, 400, -1, 402, -1, 404, - 405, -1, 407, 408, 409, 410, 411, 412, 413, -1, - 415, 416, -1, -1, 419, 420, -1, 422, -1, -1, - 425, 426, 427, 428, 429, 430, 431, 432, -1, -1, - 435, 436, 437, 438, 439, 440, -1, 442, 443, 444, - 445, 446, -1, 448, -1, 450, 451, 452, 453, 454, - 455, 456, -1, -1, 459, -1, -1, 462, 463, 464, - 465, 466, 467, 3, -1, 5, -1, -1, -1, -1, - -1, -1, -1, -1, 479, 480, 481, 482, -1, -1, - -1, 21, 22, 23, 24, 25, 26, 27, 28, -1, - 30, 31, 32, -1, -1, -1, -1, -1, -1, -1, - 40, 41, -1, 43, 44, 45, -1, 47, 48, 49, - 50, 51, -1, 53, 54, -1, 56, 57, 58, 59, - 60, 61, -1, -1, 64, 65, 66, 67, 68, -1, - 70, 71, 72, 73, 74, -1, -1, -1, 78, 79, - 80, 81, 82, 83, -1, 85, 86, 87, -1, 89, - 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, - -1, -1, -1, -1, -1, -1, -1, 107, 108, 109, - 110, 111, 112, 113, 114, 115, 116, -1, 118, -1, - 120, 121, 122, 123, 124, 125, -1, 127, 128, 129, - 130, 131, -1, -1, 134, 135, 136, 137, 138, -1, - 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, - 150, 151, 152, 153, 154, 155, 156, 157, 158, -1, - 160, -1, 162, 163, 164, 165, -1, 167, -1, 169, - -1, -1, -1, 173, 174, 175, -1, 177, -1, 179, - -1, 181, 182, 183, -1, 185, 186, 187, 188, 189, - 190, 191, -1, 193, 194, 195, 196, -1, 198, 199, - 200, 201, 202, 203, -1, 205, -1, 207, 208, 209, - 210, 211, 212, 213, 214, -1, 216, -1, 218, -1, - -1, 221, -1, 223, 224, 225, 226, 227, 228, -1, - -1, 231, -1, 233, -1, -1, 236, 237, 238, -1, - -1, 241, 242, 243, 244, 245, 246, 247, 248, 249, - 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, - 260, 261, 262, 263, 264, 265, -1, 267, 268, 269, - 270, 271, -1, 273, 274, -1, 276, -1, 278, 279, - 280, 281, 282, 283, -1, 285, 286, -1, -1, 289, - 290, 291, -1, -1, 294, 295, -1, 297, -1, 299, - 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, - -1, 311, 312, 313, 314, 315, 316, 317, 318, 319, - -1, 321, 322, 323, 324, 325, 326, -1, 328, 329, - 330, 331, 332, 333, 334, 335, -1, 337, 338, 339, - 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, - -1, 351, 352, -1, 354, 355, 356, 357, 358, 359, - 360, 361, 362, 363, 364, 365, 366, 367, 368, -1, - 370, 371, 372, 373, 374, -1, 376, 377, 378, 379, - 380, -1, 382, 383, 384, 385, -1, 387, 388, 389, - 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, - 400, 401, 402, -1, 404, 405, -1, 407, -1, 409, - 410, 411, 412, 413, -1, 415, 416, -1, -1, 419, - 420, 421, 422, 423, -1, 425, 426, 427, 428, 429, - 430, 431, 432, -1, -1, 435, 436, 437, 438, 439, - -1, -1, 442, 443, 444, 445, 446, 447, 448, -1, - 450, -1, 452, 453, 454, 455, 456, -1, -1, 459, - -1, -1, 462, 463, 464, 465, 466, 467, 468, 469, - 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, - 480, 481, 482, 3, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 21, 22, 23, + 24, 25, 26, 27, 28, -1, 30, 31, 32, -1, + -1, -1, -1, -1, -1, -1, 40, 41, -1, 43, + 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, + 54, -1, 56, 57, 58, 59, 60, 61, -1, 63, + 64, 65, 66, 67, 68, -1, 70, 71, 72, 73, + 74, -1, 76, -1, 78, 79, 80, 81, 82, 83, + 84, 85, 86, 87, -1, 89, 90, 91, 92, 93, + 94, -1, 96, 97, 98, 99, 100, 101, 102, 103, + 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, + 114, 115, 116, -1, 118, -1, 120, 121, 122, 123, + 124, 125, -1, 127, 128, 129, 130, 131, -1, -1, + 134, 135, 136, 137, 138, -1, 140, 141, 142, -1, + 144, 145, 146, -1, 148, 149, 150, 151, 152, 153, + 154, 155, 156, 157, 158, -1, 160, -1, 162, 163, + 164, 165, -1, 167, -1, 169, 170, -1, 172, 173, + 174, 175, 176, 177, -1, 179, -1, 181, 182, 183, + -1, 185, 186, 187, 188, 189, 190, 191, 192, 193, + 194, 195, 196, -1, 198, 199, 200, 201, 202, 203, + -1, 205, 206, 207, 208, 209, 210, 211, 212, 213, + 214, -1, 216, -1, 218, 219, 220, 221, 222, 223, + 224, 225, 226, 227, 228, -1, -1, 231, 232, 233, + 234, -1, 236, 237, 238, 239, 240, 241, 242, 243, + 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, + 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, + 264, 265, 266, 267, 268, 269, 270, 271, -1, 273, + 274, 275, 276, -1, 278, 279, 280, 281, 282, 283, + -1, 285, 286, -1, -1, 289, 290, 291, -1, -1, + 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, + 304, 305, 306, 307, 308, 309, -1, 311, 312, 313, + 314, 315, 316, 317, 318, 319, -1, 321, 322, 323, + 324, 325, 326, -1, 328, 329, 330, 331, 332, 333, + 334, 335, -1, 337, 338, 339, 340, 341, 342, 343, + 344, 345, 346, 347, 348, 349, -1, 351, 352, 353, + 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, + 364, 365, 366, 367, 368, -1, 370, 371, 372, 373, + 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, + 384, 385, -1, 387, 388, 389, 390, 391, 392, 393, + 394, 395, 396, 397, 398, 399, 400, 401, 402, -1, + 404, 405, -1, 407, 408, 409, 410, 411, 412, 413, + -1, 415, 416, -1, -1, 419, 420, 421, 422, 423, + -1, 425, 426, 427, 428, 429, 430, 431, 432, -1, + -1, 435, 436, 437, 438, 439, 440, -1, 442, 443, + 444, 445, 446, 447, 448, -1, 450, 451, 452, 453, + 454, 455, 456, -1, -1, 459, -1, -1, 462, 463, + 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, + 474, 475, 476, 477, 478, 479, 480, 481, 482, 3, + -1, 5, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 21, 22, 23, + 24, 25, 26, 27, 28, -1, 30, 31, 32, -1, + -1, -1, -1, -1, -1, -1, 40, 41, -1, 43, + 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, + 54, -1, 56, 57, 58, 59, 60, 61, -1, -1, + 64, 65, 66, 67, 68, -1, 70, 71, 72, 73, + 74, -1, 76, -1, 78, 79, 80, 81, 82, 83, + 84, 85, 86, 87, -1, 89, 90, 91, 92, 93, + 94, -1, 96, 97, 98, 99, 100, 101, 102, 103, + -1, -1, 106, 107, 108, 109, 110, 111, 112, 113, + 114, 115, 116, -1, 118, -1, 120, 121, 122, 123, + 124, 125, -1, 127, 128, 129, 130, 131, -1, -1, + 134, 135, 136, 137, 138, -1, 140, 141, 142, -1, + 144, 145, 146, -1, 148, 149, 150, 151, 152, 153, + 154, 155, 156, 157, 158, 159, 160, -1, 162, 163, + 164, 165, -1, 167, -1, 169, 170, -1, 172, 173, + 174, 175, 176, 177, -1, 179, -1, 181, 182, 183, + -1, 185, 186, 187, 188, 189, 190, 191, 192, 193, + 194, 195, 196, -1, 198, 199, 200, 201, 202, 203, + -1, 205, 206, 207, 208, 209, 210, 211, 212, 213, + 214, -1, 216, -1, 218, 219, 220, 221, 222, 223, + 224, 225, 226, 227, 228, -1, -1, 231, 232, 233, + 234, -1, 236, 237, 238, -1, -1, 241, 242, 243, + 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, + 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, + 264, 265, 266, 267, 268, 269, 270, 271, -1, 273, + 274, 275, 276, -1, 278, 279, 280, 281, 282, 283, + -1, 285, 286, 287, -1, 289, 290, 291, -1, -1, + 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, + 304, 305, 306, 307, 308, 309, -1, 311, 312, 313, + 314, 315, 316, 317, 318, 319, -1, 321, 322, 323, + 324, 325, 326, -1, 328, 329, 330, 331, 332, 333, + 334, 335, -1, 337, 338, 339, 340, 341, 342, 343, + 344, 345, 346, 347, 348, 349, -1, 351, 352, 353, + 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, + 364, 365, 366, 367, 368, -1, 370, 371, 372, 373, + 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, + 384, 385, -1, 387, 388, 389, 390, 391, 392, 393, + 394, 395, 396, 397, 398, 399, 400, 401, 402, -1, + 404, 405, -1, 407, 408, 409, 410, 411, 412, 413, + -1, 415, 416, -1, -1, 419, 420, 421, 422, 423, + 424, 425, 426, 427, 428, 429, 430, 431, 432, -1, + -1, 435, 436, 437, 438, 439, 440, -1, 442, 443, + 444, 445, 446, 447, 448, -1, 450, 451, 452, 453, + 454, 455, 456, -1, -1, 459, -1, -1, 462, 463, + 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, + 474, 475, 476, 477, 478, 479, 480, 481, 482, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 21, 22, 23, 24, 25, 26, 27, 28, -1, - 30, 31, 32, -1, -1, -1, -1, -1, 38, -1, - 40, 41, -1, 43, 44, 45, -1, 47, 48, 49, - 50, 51, -1, 53, 54, -1, 56, 57, 58, 59, - 60, 61, -1, -1, 64, 65, 66, 67, 68, -1, - 70, 71, 72, 73, 74, -1, -1, -1, 78, 79, - 80, 81, 82, 83, -1, 85, 86, 87, -1, 89, - 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, - -1, -1, -1, -1, -1, -1, -1, 107, 108, 109, - 110, 111, 112, 113, 114, 115, 116, -1, 118, -1, - 120, 121, 122, 123, 124, 125, -1, 127, 128, 129, - 130, 131, -1, -1, 134, 135, 136, 137, 138, -1, - 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, - 150, 151, 152, 153, 154, 155, 156, 157, 158, -1, - 160, -1, 162, 163, 164, 165, -1, 167, -1, 169, - -1, -1, -1, 173, 174, 175, -1, 177, -1, 179, - -1, 181, 182, 183, -1, 185, 186, 187, 188, 189, - 190, 191, -1, 193, 194, 195, 196, -1, 198, 199, - 200, 201, 202, 203, -1, 205, -1, 207, 208, 209, - 210, 211, 212, 213, 214, -1, 216, -1, 218, -1, - -1, 221, -1, 223, 224, 225, 226, 227, 228, -1, - -1, 231, -1, 233, -1, -1, 236, 237, 238, -1, - -1, 241, 242, 243, 244, 245, 246, 247, 248, 249, - 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, - 260, 261, 262, 263, 264, 265, -1, 267, 268, 269, - 270, 271, -1, 273, 274, -1, 276, -1, 278, 279, - 280, 281, 282, 283, -1, 285, 286, -1, -1, 289, - 290, 291, -1, -1, 294, 295, -1, 297, -1, 299, - 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, - -1, 311, 312, 313, 314, 315, 316, 317, 318, 319, - -1, 321, 322, 323, 324, 325, 326, -1, 328, 329, - 330, 331, 332, 333, 334, 335, -1, 337, 338, 339, - 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, - -1, 351, 352, -1, 354, 355, 356, 357, 358, 359, - 360, 361, 362, 363, 364, 365, 366, 367, 368, -1, - 370, 371, 372, 373, 374, -1, 376, 377, 378, 379, - 380, -1, 382, 383, 384, 385, -1, 387, 388, 389, - 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, - 400, 401, 402, -1, 404, 405, -1, 407, -1, 409, - 410, 411, 412, 413, -1, 415, 416, -1, -1, 419, - 420, 421, 422, 423, -1, 425, 426, 427, 428, 429, - 430, 431, 432, -1, -1, 435, 436, 437, 438, 439, - -1, -1, 442, 443, 444, 445, 446, 447, 448, -1, - 450, -1, 452, 453, 454, 455, 456, -1, -1, 459, - -1, -1, 462, 463, 464, 465, 466, 467, 468, 469, - 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, - 480, 481, 482, 3, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 21, 22, 23, + 24, 25, 26, 27, 28, -1, 30, 31, 32, 33, + 34, -1, -1, -1, -1, -1, 40, 41, -1, 43, + 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, + 54, -1, 56, 57, 58, 59, 60, 61, -1, -1, + 64, 65, 66, 67, 68, -1, 70, 71, 72, 73, + 74, -1, 76, -1, 78, 79, 80, 81, 82, 83, + 84, 85, 86, 87, -1, 89, 90, 91, 92, 93, + 94, -1, 96, 97, 98, 99, 100, 101, 102, 103, + -1, -1, 106, 107, 108, 109, 110, 111, 112, 113, + 114, 115, 116, -1, 118, -1, 120, 121, 122, 123, + 124, 125, -1, 127, 128, 129, 130, 131, -1, -1, + 134, 135, 136, 137, 138, -1, 140, 141, 142, -1, + 144, 145, 146, -1, 148, 149, 150, 151, 152, 153, + 154, 155, 156, 157, 158, -1, 160, -1, 162, 163, + 164, 165, -1, 167, -1, 169, 170, -1, 172, 173, + 174, 175, 176, 177, -1, 179, -1, 181, 182, 183, + -1, 185, 186, 187, 188, 189, 190, 191, 192, 193, + 194, 195, 196, -1, 198, 199, 200, 201, 202, 203, + -1, 205, 206, 207, 208, 209, 210, 211, 212, 213, + 214, -1, 216, -1, 218, 219, 220, 221, 222, 223, + 224, 225, 226, 227, 228, -1, -1, 231, 232, 233, + 234, -1, 236, 237, 238, -1, -1, 241, 242, 243, + 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, + 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, + 264, 265, 266, 267, 268, 269, 270, 271, -1, 273, + 274, 275, 276, -1, 278, 279, 280, 281, 282, 283, + -1, 285, 286, -1, -1, 289, 290, 291, -1, -1, + 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, + 304, 305, 306, 307, 308, 309, -1, 311, 312, 313, + 314, 315, 316, 317, 318, 319, -1, 321, 322, 323, + 324, 325, 326, -1, 328, 329, 330, 331, 332, 333, + 334, 335, -1, 337, 338, 339, 340, 341, 342, 343, + 344, 345, 346, 347, 348, 349, -1, 351, 352, 353, + 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, + 364, 365, 366, 367, 368, -1, 370, 371, 372, 373, + 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, + 384, 385, -1, 387, 388, 389, 390, 391, 392, 393, + 394, 395, 396, 397, 398, 399, 400, 401, 402, -1, + 404, 405, -1, 407, 408, 409, 410, 411, 412, 413, + -1, 415, 416, -1, -1, 419, 420, 421, 422, 423, + -1, 425, 426, 427, 428, 429, 430, 431, 432, -1, + -1, 435, 436, 437, 438, 439, 440, -1, 442, 443, + 444, 445, 446, 447, 448, -1, 450, 451, 452, 453, + 454, 455, 456, -1, -1, 459, -1, -1, 462, 463, + 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, + 474, 475, 476, 477, 478, 479, 480, 481, 482, 3, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 21, 22, 23, + 24, 25, 26, 27, 28, -1, 30, 31, 32, -1, + -1, -1, -1, -1, -1, -1, 40, 41, -1, 43, + 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, + 54, -1, 56, 57, 58, 59, 60, 61, -1, -1, + 64, 65, 66, 67, 68, -1, 70, 71, 72, 73, + 74, -1, 76, -1, 78, 79, 80, 81, 82, 83, + 84, 85, 86, 87, -1, 89, 90, 91, 92, 93, + 94, -1, 96, 97, 98, 99, 100, 101, 102, 103, + -1, -1, 106, 107, 108, 109, 110, 111, 112, 113, + 114, 115, 116, -1, 118, -1, 120, 121, 122, 123, + 124, 125, -1, 127, 128, 129, 130, 131, -1, -1, + 134, 135, 136, 137, 138, -1, 140, 141, 142, -1, + 144, 145, 146, -1, 148, 149, 150, 151, 152, 153, + 154, 155, 156, 157, 158, -1, 160, -1, 162, 163, + 164, 165, -1, 167, -1, 169, 170, -1, 172, 173, + 174, 175, 176, 177, -1, 179, -1, 181, 182, 183, + -1, 185, 186, 187, 188, 189, 190, 191, 192, 193, + 194, 195, 196, -1, 198, 199, 200, 201, 202, 203, + -1, 205, 206, 207, 208, 209, 210, 211, 212, 213, + 214, -1, 216, -1, 218, 219, 220, 221, 222, 223, + 224, 225, 226, 227, 228, -1, -1, 231, 232, 233, + 234, -1, 236, 237, 238, -1, -1, 241, 242, 243, + 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, + 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, + 264, 265, 266, 267, 268, 269, 270, 271, -1, 273, + 274, 275, 276, -1, 278, 279, 280, 281, 282, 283, + -1, 285, 286, -1, -1, 289, 290, 291, -1, -1, + 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, + 304, 305, 306, 307, 308, 309, -1, 311, 312, 313, + 314, 315, 316, 317, 318, 319, -1, 321, 322, 323, + 324, 325, 326, -1, 328, 329, 330, 331, 332, 333, + 334, 335, -1, 337, 338, 339, 340, 341, 342, 343, + 344, 345, 346, 347, 348, 349, -1, 351, 352, 353, + 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, + 364, 365, 366, 367, 368, -1, 370, 371, 372, 373, + 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, + 384, 385, -1, 387, 388, 389, 390, 391, 392, 393, + 394, 395, 396, 397, 398, 399, 400, 401, 402, -1, + 404, 405, -1, 407, 408, 409, 410, 411, 412, 413, + -1, 415, 416, -1, -1, 419, 420, 421, 422, 423, + -1, 425, 426, 427, 428, 429, 430, 431, 432, -1, + -1, 435, 436, 437, 438, 439, 440, -1, 442, 443, + 444, 445, 446, 447, 448, -1, 450, 451, 452, 453, + 454, 455, 456, -1, -1, 459, -1, -1, 462, 463, + 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, + 474, 475, 476, 477, 478, 479, 480, 481, 482, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 21, 22, 23, 24, 25, 26, 27, 28, -1, - 30, 31, 32, -1, -1, -1, -1, -1, 38, -1, - 40, 41, -1, 43, 44, 45, -1, 47, 48, 49, - 50, 51, -1, 53, 54, -1, 56, 57, 58, 59, - 60, 61, -1, -1, 64, 65, 66, 67, 68, -1, - 70, 71, 72, 73, 74, -1, -1, -1, 78, 79, - 80, 81, 82, 83, -1, 85, 86, 87, -1, 89, - 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, - -1, -1, -1, -1, -1, -1, -1, 107, 108, 109, - 110, 111, 112, 113, 114, 115, 116, -1, 118, -1, - 120, 121, 122, 123, 124, 125, -1, 127, 128, 129, - 130, 131, -1, -1, 134, 135, 136, 137, 138, -1, - 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, - 150, 151, 152, 153, 154, 155, 156, 157, 158, -1, - 160, -1, 162, 163, 164, 165, -1, 167, -1, 169, - -1, -1, -1, 173, 174, 175, -1, 177, -1, 179, - -1, 181, 182, 183, -1, 185, 186, 187, 188, 189, - 190, 191, -1, 193, 194, 195, 196, -1, 198, 199, - 200, 201, 202, 203, -1, 205, -1, 207, 208, 209, - 210, 211, 212, 213, 214, -1, 216, -1, 218, -1, - -1, 221, -1, 223, 224, 225, 226, 227, 228, -1, - -1, 231, -1, 233, -1, -1, 236, 237, 238, -1, - -1, 241, 242, 243, 244, 245, 246, 247, 248, 249, - 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, - 260, 261, 262, 263, 264, 265, -1, 267, 268, 269, - 270, 271, -1, 273, 274, -1, 276, -1, 278, 279, - 280, 281, 282, 283, -1, 285, 286, -1, -1, 289, - 290, 291, -1, -1, 294, 295, -1, 297, -1, 299, - 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, - -1, 311, 312, 313, 314, 315, 316, 317, 318, 319, - -1, 321, 322, 323, 324, 325, 326, -1, 328, 329, - 330, 331, 332, 333, 334, 335, -1, 337, 338, 339, - 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, - -1, 351, 352, -1, 354, 355, 356, 357, 358, 359, - 360, 361, 362, 363, 364, 365, 366, 367, 368, -1, - 370, 371, 372, 373, 374, -1, 376, 377, 378, 379, - 380, -1, 382, 383, 384, 385, -1, 387, 388, 389, - 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, - 400, 401, 402, -1, 404, 405, -1, 407, -1, 409, - 410, 411, 412, 413, -1, 415, 416, -1, -1, 419, - 420, 421, 422, 423, -1, 425, 426, 427, 428, 429, - 430, 431, 432, -1, -1, 435, 436, 437, 438, 439, - -1, -1, 442, 443, 444, 445, 446, 447, 448, -1, - 450, -1, 452, 453, 454, 455, 456, -1, -1, 459, - -1, -1, 462, 463, 464, 465, 466, 467, 468, 469, - 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, - 480, 481, 482, 3, -1, 5, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 21, 22, 23, + 24, 25, 26, 27, 28, -1, 30, 31, 32, -1, + -1, -1, -1, -1, -1, -1, 40, 41, -1, 43, + 44, 45, -1, 47, 48, 49, 50, 51, -1, 53, + 54, -1, 56, 57, 58, 59, 60, 61, -1, -1, + 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, + 74, -1, -1, 77, 78, 79, 80, 81, 82, 83, + -1, 85, 86, 87, 88, 89, 90, 91, 92, 93, + 94, -1, -1, 97, 98, 99, -1, -1, -1, -1, + -1, -1, -1, 107, 108, 109, 110, 111, 112, 113, + 114, 115, 116, -1, 118, -1, 120, 121, 122, 123, + 124, 125, -1, 127, 128, 129, 130, 131, -1, -1, + 134, 135, 136, 137, 138, -1, 140, 141, 142, -1, + 144, 145, 146, -1, 148, 149, 150, 151, 152, 153, + 154, 155, 156, 157, 158, -1, 160, -1, 162, 163, + 164, 165, -1, 167, 168, 169, -1, -1, -1, 173, + 174, 175, -1, 177, -1, 179, -1, 181, 182, 183, + -1, 185, 186, 187, 188, 189, 190, 191, -1, 193, + 194, 195, 196, -1, 198, 199, 200, 201, 202, 203, + -1, 205, -1, 207, 208, 209, 210, 211, 212, 213, + 214, -1, 216, -1, 218, -1, -1, 221, -1, 223, + 224, 225, 226, 227, 228, -1, -1, 231, -1, 233, + -1, -1, 236, 237, 238, -1, -1, 241, 242, 243, + 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, + 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, + 264, 265, -1, 267, 268, 269, 270, 271, -1, 273, + 274, -1, 276, -1, 278, 279, 280, 281, 282, 283, + -1, 285, 286, -1, -1, 289, 290, 291, -1, -1, + 294, 295, -1, 297, -1, 299, 300, 301, 302, 303, + 304, 305, 306, 307, 308, 309, -1, 311, 312, 313, + 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, + 324, 325, 326, -1, 328, 329, 330, 331, 332, 333, + 334, 335, -1, 337, 338, 339, 340, 341, 342, 343, + 344, 345, 346, 347, 348, 349, -1, 351, 352, -1, + 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, + 364, 365, 366, 367, 368, -1, 370, 371, 372, 373, + 374, -1, 376, 377, 378, 379, 380, -1, 382, 383, + 384, 385, -1, 387, 388, 389, 390, 391, 392, 393, + 394, 395, 396, 397, 398, 399, 400, 401, 402, -1, + 404, 405, -1, 407, -1, 409, 410, 411, 412, 413, + -1, 415, 416, -1, -1, 419, 420, 421, 422, 423, + -1, 425, 426, 427, 428, 429, 430, 431, 432, -1, + 434, 435, 436, 437, 438, 439, -1, -1, 442, 443, + 444, 445, 446, 447, 448, -1, 450, -1, 452, 453, + 454, 455, 456, -1, -1, 459, -1, -1, 462, 463, + 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, + 474, 475, 476, 477, 478, 479, 480, 481, 482, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 21, 22, 23, 24, 25, 26, 27, 28, -1, - 30, 31, 32, -1, -1, -1, -1, -1, -1, -1, - 40, 41, -1, 43, 44, 45, -1, 47, 48, 49, - 50, 51, -1, 53, 54, -1, 56, 57, 58, 59, - 60, 61, -1, -1, 64, 65, 66, 67, 68, -1, - 70, 71, 72, 73, 74, -1, -1, -1, 78, 79, - 80, 81, 82, 83, -1, 85, 86, 87, -1, 89, - 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, - -1, -1, -1, -1, -1, -1, -1, 107, 108, 109, - 110, 111, 112, 113, 114, 115, 116, -1, 118, -1, - 120, 121, 122, 123, 124, 125, -1, 127, 128, 129, - 130, 131, -1, -1, 134, 135, 136, 137, 138, -1, - 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, - 150, 151, 152, 153, 154, 155, 156, 157, 158, -1, - 160, -1, 162, 163, 164, 165, -1, 167, -1, 169, - -1, -1, -1, 173, 174, 175, -1, 177, -1, 179, - -1, 181, 182, 183, -1, 185, 186, 187, 188, 189, - 190, 191, -1, 193, 194, 195, 196, -1, 198, 199, - 200, 201, 202, 203, -1, 205, -1, 207, 208, 209, - 210, 211, 212, 213, 214, -1, 216, -1, 218, -1, - -1, 221, -1, 223, 224, 225, 226, 227, 228, -1, - -1, 231, -1, 233, -1, -1, 236, 237, 238, -1, - -1, 241, 242, 243, 244, 245, 246, 247, 248, 249, - 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, - 260, 261, 262, 263, 264, 265, -1, 267, 268, 269, - 270, 271, -1, 273, 274, -1, 276, -1, 278, 279, - 280, 281, 282, 283, -1, 285, 286, -1, -1, 289, - 290, 291, -1, -1, 294, 295, -1, 297, -1, 299, - 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, - -1, 311, 312, 313, 314, 315, 316, 317, 318, 319, - -1, 321, 322, 323, 324, 325, 326, -1, 328, 329, - 330, 331, 332, 333, 334, 335, -1, 337, 338, 339, - 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, - -1, 351, 352, -1, 354, 355, 356, 357, 358, 359, - 360, 361, 362, 363, 364, 365, 366, 367, 368, -1, - 370, 371, 372, 373, 374, -1, 376, 377, 378, 379, - 380, -1, 382, 383, 384, 385, -1, 387, 388, 389, - 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, - 400, 401, 402, -1, 404, 405, -1, 407, -1, 409, - 410, 411, 412, 413, -1, 415, 416, -1, -1, 419, - 420, 421, 422, 423, -1, 425, 426, 427, 428, 429, - 430, 431, 432, -1, -1, 435, 436, 437, 438, 439, - -1, -1, 442, 443, 444, 445, 446, 447, 448, -1, - 450, -1, 452, 453, 454, 455, 456, -1, -1, 459, - -1, -1, 462, 463, 464, 465, 466, 467, 468, 469, - 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, - 480, 481, 482, 3, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 21, 22, 23, + 24, 25, 26, 27, 28, -1, 30, 31, 32, -1, + -1, -1, -1, -1, -1, -1, 40, 41, -1, 43, + 44, 45, -1, 47, 48, 49, 50, 51, -1, 53, + 54, -1, 56, 57, 58, 59, 60, 61, -1, -1, + 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, + 74, -1, -1, -1, 78, 79, 80, 81, 82, 83, + -1, 85, 86, 87, 88, 89, 90, 91, 92, 93, + 94, -1, -1, 97, 98, 99, -1, -1, -1, -1, + -1, -1, -1, 107, 108, 109, 110, 111, 112, 113, + 114, 115, 116, -1, 118, -1, 120, 121, 122, 123, + 124, 125, -1, 127, 128, 129, 130, 131, -1, -1, + 134, 135, 136, 137, 138, -1, 140, 141, 142, -1, + 144, 145, 146, -1, 148, 149, 150, 151, 152, 153, + 154, 155, 156, 157, 158, -1, 160, -1, 162, 163, + 164, 165, -1, 167, 168, 169, -1, -1, -1, 173, + 174, 175, -1, 177, -1, 179, -1, 181, 182, 183, + -1, 185, 186, 187, 188, 189, 190, 191, -1, 193, + 194, 195, 196, -1, 198, 199, 200, 201, 202, 203, + -1, 205, -1, 207, 208, 209, 210, 211, 212, 213, + 214, -1, 216, -1, 218, -1, -1, 221, -1, 223, + 224, 225, 226, 227, 228, -1, -1, 231, -1, 233, + 234, -1, 236, 237, 238, -1, -1, 241, 242, 243, + 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, + 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, + 264, 265, -1, 267, 268, 269, 270, 271, -1, 273, + 274, -1, 276, -1, 278, 279, 280, 281, 282, 283, + -1, 285, 286, -1, -1, 289, 290, 291, -1, -1, + 294, 295, -1, 297, -1, 299, 300, 301, 302, 303, + 304, 305, 306, 307, 308, 309, -1, 311, 312, 313, + 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, + 324, 325, 326, -1, 328, 329, 330, 331, 332, 333, + 334, 335, -1, 337, 338, 339, 340, 341, 342, 343, + 344, 345, 346, 347, 348, 349, -1, 351, 352, -1, + 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, + 364, 365, 366, 367, 368, -1, 370, 371, 372, 373, + 374, -1, 376, 377, 378, 379, 380, -1, 382, 383, + 384, 385, -1, 387, 388, 389, 390, 391, 392, 393, + 394, 395, 396, 397, 398, 399, 400, 401, 402, -1, + 404, 405, -1, 407, -1, 409, 410, 411, 412, 413, + -1, 415, 416, -1, -1, 419, 420, 421, 422, 423, + -1, 425, 426, 427, 428, 429, 430, 431, 432, -1, + 434, 435, 436, 437, 438, 439, -1, -1, 442, 443, + 444, 445, 446, 447, 448, -1, 450, -1, 452, 453, + 454, 455, 456, -1, -1, 459, -1, -1, 462, 463, + 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, + 474, 475, 476, 477, 478, 479, 480, 481, 482, 3, + -1, 5, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 21, 22, 23, + 24, 25, 26, 27, 28, -1, 30, 31, 32, 33, + 34, -1, -1, -1, -1, -1, 40, 41, -1, 43, + 44, 45, -1, 47, 48, 49, 50, 51, -1, 53, + 54, -1, 56, 57, 58, 59, 60, 61, -1, -1, + 64, 65, 66, 67, 68, -1, 70, 71, 72, 73, + 74, -1, -1, -1, 78, 79, 80, 81, 82, 83, + -1, 85, 86, 87, -1, 89, 90, 91, 92, 93, + 94, -1, -1, 97, 98, 99, -1, -1, -1, -1, + -1, -1, -1, 107, 108, 109, 110, 111, 112, 113, + 114, 115, 116, -1, 118, -1, 120, 121, 122, 123, + 124, 125, -1, 127, 128, 129, 130, 131, -1, -1, + 134, 135, 136, 137, 138, -1, 140, 141, 142, -1, + 144, 145, 146, -1, 148, 149, 150, 151, 152, 153, + 154, 155, 156, 157, 158, -1, 160, -1, 162, 163, + 164, 165, -1, 167, -1, 169, -1, -1, -1, 173, + 174, 175, -1, 177, -1, 179, -1, 181, 182, 183, + -1, 185, 186, 187, 188, 189, 190, 191, -1, 193, + 194, 195, 196, -1, 198, 199, 200, 201, 202, 203, + -1, 205, -1, 207, 208, 209, 210, 211, 212, 213, + 214, -1, 216, -1, 218, -1, -1, 221, -1, 223, + 224, 225, 226, 227, 228, -1, -1, 231, -1, 233, + -1, -1, 236, 237, 238, -1, -1, 241, 242, 243, + 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, + 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, + 264, 265, -1, 267, 268, 269, 270, 271, -1, 273, + 274, -1, 276, -1, 278, 279, 280, 281, 282, 283, + -1, 285, 286, -1, -1, 289, 290, 291, -1, -1, + 294, 295, -1, 297, -1, 299, 300, 301, 302, 303, + 304, 305, 306, 307, 308, 309, -1, 311, 312, 313, + 314, 315, 316, 317, 318, 319, -1, 321, 322, 323, + 324, 325, 326, -1, 328, 329, 330, 331, 332, 333, + 334, 335, -1, 337, 338, 339, 340, 341, 342, 343, + 344, 345, 346, 347, 348, 349, -1, 351, 352, -1, + 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, + 364, 365, 366, 367, 368, -1, 370, 371, 372, 373, + 374, -1, 376, 377, 378, 379, 380, -1, 382, 383, + 384, 385, -1, 387, 388, 389, 390, 391, 392, 393, + 394, 395, 396, 397, 398, 399, 400, 401, 402, -1, + 404, 405, -1, 407, -1, 409, 410, 411, 412, 413, + -1, 415, 416, -1, -1, 419, 420, 421, 422, 423, + -1, 425, 426, 427, 428, 429, 430, 431, 432, -1, + -1, 435, 436, 437, 438, 439, -1, -1, 442, 443, + 444, 445, 446, 447, 448, -1, 450, -1, 452, 453, + 454, 455, 456, -1, -1, 459, -1, -1, 462, 463, + 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, + 474, 475, 476, 477, 478, 479, 480, 481, 482, 3, + -1, 5, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 21, 22, 23, + 24, 25, 26, 27, 28, 29, 30, 31, 32, -1, + -1, -1, -1, -1, -1, -1, 40, 41, -1, 43, + 44, 45, -1, 47, 48, 49, 50, 51, -1, 53, + 54, -1, 56, 57, 58, 59, 60, 61, -1, -1, + 64, 65, 66, 67, 68, -1, 70, 71, 72, 73, + 74, -1, -1, -1, 78, 79, 80, 81, 82, 83, + -1, 85, 86, 87, -1, 89, 90, 91, 92, 93, + 94, -1, -1, 97, 98, 99, -1, -1, -1, -1, + -1, -1, -1, 107, 108, 109, 110, 111, 112, 113, + 114, 115, 116, -1, 118, -1, 120, 121, 122, 123, + 124, 125, -1, 127, 128, 129, 130, 131, -1, -1, + 134, 135, 136, 137, 138, -1, 140, 141, 142, -1, + 144, 145, 146, -1, 148, 149, 150, 151, 152, 153, + 154, 155, 156, 157, 158, -1, 160, -1, 162, 163, + 164, 165, -1, 167, -1, 169, -1, -1, -1, 173, + 174, 175, -1, 177, -1, 179, -1, 181, 182, 183, + -1, 185, 186, 187, 188, 189, 190, 191, -1, 193, + 194, 195, 196, -1, 198, 199, 200, 201, 202, 203, + -1, 205, -1, 207, 208, 209, 210, 211, 212, 213, + 214, -1, 216, -1, 218, -1, -1, 221, -1, 223, + 224, 225, 226, 227, 228, -1, -1, 231, -1, 233, + -1, -1, 236, 237, 238, -1, -1, 241, 242, 243, + 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, + 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, + 264, 265, -1, 267, 268, 269, 270, 271, -1, 273, + 274, -1, 276, -1, 278, 279, 280, 281, 282, 283, + -1, 285, 286, -1, -1, 289, 290, 291, -1, -1, + 294, 295, -1, 297, -1, 299, 300, 301, 302, 303, + 304, 305, 306, 307, 308, 309, -1, 311, 312, 313, + 314, 315, 316, 317, 318, 319, -1, 321, 322, 323, + 324, 325, 326, -1, 328, 329, 330, 331, 332, 333, + 334, 335, -1, 337, 338, 339, 340, 341, 342, 343, + 344, 345, 346, 347, 348, 349, -1, 351, 352, -1, + 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, + 364, 365, 366, 367, 368, -1, 370, 371, 372, 373, + 374, -1, 376, 377, 378, 379, 380, -1, 382, 383, + 384, 385, -1, 387, 388, 389, 390, 391, 392, 393, + 394, 395, 396, 397, 398, 399, 400, 401, 402, -1, + 404, 405, -1, 407, -1, 409, 410, 411, 412, 413, + -1, 415, 416, -1, -1, 419, 420, 421, 422, 423, + -1, 425, 426, 427, 428, 429, 430, 431, 432, -1, + -1, 435, 436, 437, 438, 439, -1, -1, 442, 443, + 444, 445, 446, 447, 448, -1, 450, -1, 452, 453, + 454, 455, 456, -1, -1, 459, -1, -1, 462, 463, + 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, + 474, 475, 476, 477, 478, 479, 480, 481, 482, 3, + -1, 5, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 21, 22, 23, + 24, 25, 26, 27, 28, -1, 30, 31, 32, -1, + -1, -1, -1, -1, -1, -1, 40, 41, -1, 43, + 44, 45, -1, 47, 48, 49, 50, 51, -1, 53, + 54, -1, 56, 57, 58, 59, 60, 61, -1, -1, + 64, 65, 66, 67, 68, -1, 70, 71, 72, 73, + 74, -1, -1, -1, 78, 79, 80, 81, 82, 83, + -1, 85, 86, 87, -1, 89, 90, 91, 92, 93, + 94, -1, -1, 97, 98, 99, -1, -1, -1, -1, + -1, -1, -1, 107, 108, 109, 110, 111, 112, 113, + 114, 115, 116, -1, 118, -1, 120, 121, 122, 123, + 124, 125, -1, 127, 128, 129, 130, 131, -1, -1, + 134, 135, 136, 137, 138, -1, 140, 141, 142, -1, + 144, 145, 146, -1, 148, 149, 150, 151, 152, 153, + 154, 155, 156, 157, 158, -1, 160, -1, 162, 163, + 164, 165, -1, 167, -1, 169, -1, -1, -1, 173, + 174, 175, -1, 177, -1, 179, -1, 181, 182, 183, + -1, 185, 186, 187, 188, 189, 190, 191, -1, 193, + 194, 195, 196, -1, 198, 199, 200, 201, 202, 203, + -1, 205, -1, 207, 208, 209, 210, 211, 212, 213, + 214, -1, 216, -1, 218, -1, -1, 221, -1, 223, + 224, 225, 226, 227, 228, -1, -1, 231, -1, 233, + -1, -1, 236, 237, 238, -1, -1, 241, 242, 243, + 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, + 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, + 264, 265, -1, 267, 268, 269, 270, 271, -1, 273, + 274, -1, 276, -1, 278, 279, 280, 281, 282, 283, + -1, 285, 286, -1, 288, 289, 290, 291, -1, -1, + 294, 295, -1, 297, -1, 299, 300, 301, 302, 303, + 304, 305, 306, 307, 308, 309, -1, 311, 312, 313, + 314, 315, 316, 317, 318, 319, -1, 321, 322, 323, + 324, 325, 326, -1, 328, 329, 330, 331, 332, 333, + 334, 335, -1, 337, 338, 339, 340, 341, 342, 343, + 344, 345, 346, 347, 348, 349, -1, 351, 352, -1, + 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, + 364, 365, 366, 367, 368, -1, 370, 371, 372, 373, + 374, -1, 376, 377, 378, 379, 380, -1, 382, 383, + 384, 385, -1, 387, 388, 389, 390, 391, 392, 393, + 394, 395, 396, 397, 398, 399, 400, 401, 402, -1, + 404, 405, -1, 407, -1, 409, 410, 411, 412, 413, + -1, 415, 416, -1, -1, 419, 420, 421, 422, 423, + -1, 425, 426, 427, 428, 429, 430, 431, 432, -1, + -1, 435, 436, 437, 438, 439, -1, -1, 442, 443, + 444, 445, 446, 447, 448, -1, 450, -1, 452, 453, + 454, 455, 456, -1, -1, 459, -1, -1, 462, 463, + 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, + 474, 475, 476, 477, 478, 479, 480, 481, 482, 3, + -1, 5, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 21, 22, 23, + 24, 25, 26, 27, 28, -1, 30, 31, 32, -1, + -1, -1, -1, -1, -1, -1, 40, 41, -1, 43, + 44, 45, -1, 47, 48, 49, 50, 51, -1, 53, + 54, -1, 56, 57, 58, 59, 60, 61, -1, -1, + 64, 65, 66, 67, 68, -1, 70, 71, 72, 73, + 74, -1, -1, -1, 78, 79, 80, 81, 82, 83, + -1, 85, 86, 87, -1, 89, 90, 91, 92, 93, + 94, -1, -1, 97, 98, 99, -1, -1, -1, -1, + -1, -1, -1, 107, 108, 109, 110, 111, 112, 113, + 114, 115, 116, -1, 118, -1, 120, 121, 122, 123, + 124, 125, -1, 127, 128, 129, 130, 131, -1, -1, + 134, 135, 136, 137, 138, -1, 140, 141, 142, -1, + 144, 145, 146, -1, 148, 149, 150, 151, 152, 153, + 154, 155, 156, 157, 158, -1, 160, -1, 162, 163, + 164, 165, -1, 167, -1, 169, -1, -1, -1, 173, + 174, 175, -1, 177, -1, 179, -1, 181, 182, 183, + -1, 185, 186, 187, 188, 189, 190, 191, -1, 193, + 194, 195, 196, -1, 198, 199, 200, 201, 202, 203, + -1, 205, -1, 207, 208, 209, 210, 211, 212, 213, + 214, -1, 216, -1, 218, -1, -1, 221, -1, 223, + 224, 225, 226, 227, 228, -1, -1, 231, -1, 233, + -1, -1, 236, 237, 238, -1, -1, 241, 242, 243, + 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, + 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, + 264, 265, -1, 267, 268, 269, 270, 271, -1, 273, + 274, -1, 276, -1, 278, 279, 280, 281, 282, 283, + -1, 285, 286, -1, 288, 289, 290, 291, -1, -1, + 294, 295, -1, 297, -1, 299, 300, 301, 302, 303, + 304, 305, 306, 307, 308, 309, -1, 311, 312, 313, + 314, 315, 316, 317, 318, 319, -1, 321, 322, 323, + 324, 325, 326, -1, 328, 329, 330, 331, 332, 333, + 334, 335, -1, 337, 338, 339, 340, 341, 342, 343, + 344, 345, 346, 347, 348, 349, -1, 351, 352, -1, + 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, + 364, 365, 366, 367, 368, -1, 370, 371, 372, 373, + 374, -1, 376, 377, 378, 379, 380, -1, 382, 383, + 384, 385, -1, 387, 388, 389, 390, 391, 392, 393, + 394, 395, 396, 397, 398, 399, 400, 401, 402, -1, + 404, 405, -1, 407, -1, 409, 410, 411, 412, 413, + -1, 415, 416, -1, -1, 419, 420, 421, 422, 423, + -1, 425, 426, 427, 428, 429, 430, 431, 432, -1, + -1, 435, 436, 437, 438, 439, -1, -1, 442, 443, + 444, 445, 446, 447, 448, -1, 450, -1, 452, 453, + 454, 455, 456, -1, -1, 459, -1, -1, 462, 463, + 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, + 474, 475, 476, 477, 478, 479, 480, 481, 482, 3, + -1, 5, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 21, 22, 23, + 24, 25, 26, 27, 28, 29, 30, 31, 32, -1, + -1, -1, -1, -1, -1, -1, 40, 41, -1, 43, + 44, 45, -1, 47, 48, 49, 50, 51, -1, 53, + 54, -1, 56, 57, 58, 59, 60, 61, -1, -1, + 64, 65, 66, 67, 68, -1, 70, 71, 72, 73, + 74, -1, -1, -1, 78, 79, 80, 81, 82, 83, + -1, 85, 86, 87, -1, 89, 90, 91, 92, 93, + 94, -1, -1, 97, 98, 99, -1, -1, -1, -1, + -1, -1, -1, 107, 108, 109, 110, 111, 112, 113, + 114, 115, 116, -1, 118, -1, 120, 121, 122, 123, + 124, 125, -1, 127, 128, 129, 130, 131, -1, -1, + 134, 135, 136, 137, 138, -1, 140, 141, 142, -1, + 144, 145, 146, -1, 148, 149, 150, 151, 152, 153, + 154, 155, 156, 157, 158, -1, 160, -1, 162, 163, + 164, 165, -1, 167, -1, 169, -1, -1, -1, 173, + 174, 175, -1, 177, -1, 179, -1, 181, 182, 183, + -1, 185, 186, 187, 188, 189, 190, 191, -1, 193, + 194, 195, 196, -1, 198, 199, 200, 201, 202, 203, + -1, 205, -1, 207, 208, 209, 210, 211, 212, 213, + 214, -1, 216, -1, 218, -1, -1, 221, -1, 223, + 224, 225, 226, 227, 228, -1, -1, 231, -1, 233, + -1, -1, 236, 237, 238, -1, -1, 241, 242, 243, + 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, + 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, + 264, 265, -1, 267, 268, 269, 270, 271, -1, 273, + 274, -1, 276, -1, 278, 279, 280, 281, 282, 283, + -1, 285, 286, -1, -1, 289, 290, 291, -1, -1, + 294, 295, -1, 297, -1, 299, 300, 301, 302, 303, + 304, 305, 306, 307, 308, 309, -1, 311, 312, 313, + 314, 315, 316, 317, 318, 319, -1, 321, 322, 323, + 324, 325, 326, -1, 328, 329, 330, 331, 332, 333, + 334, 335, -1, 337, 338, 339, 340, 341, 342, 343, + 344, 345, 346, 347, 348, 349, -1, 351, 352, -1, + 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, + 364, 365, 366, 367, 368, -1, 370, 371, 372, 373, + 374, -1, 376, 377, 378, 379, 380, -1, 382, 383, + 384, 385, -1, 387, 388, 389, 390, 391, 392, 393, + 394, 395, 396, 397, 398, 399, 400, 401, 402, -1, + 404, 405, -1, 407, -1, 409, 410, 411, 412, 413, + -1, 415, 416, -1, -1, 419, 420, 421, 422, 423, + -1, 425, 426, 427, 428, 429, 430, 431, 432, -1, + -1, 435, 436, 437, 438, 439, -1, -1, 442, 443, + 444, 445, 446, 447, 448, -1, 450, -1, 452, 453, + 454, 455, 456, -1, -1, 459, -1, -1, 462, 463, + 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, + 474, 475, 476, 477, 478, 479, 480, 481, 482, 3, + -1, 5, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 21, 22, 23, + 24, 25, 26, 27, 28, -1, 30, 31, 32, -1, + -1, -1, -1, -1, -1, -1, 40, 41, -1, 43, + 44, 45, -1, 47, 48, 49, 50, 51, -1, 53, + 54, -1, 56, 57, 58, 59, 60, 61, -1, -1, + 64, 65, 66, 67, 68, -1, 70, 71, 72, 73, + 74, -1, -1, -1, 78, 79, 80, 81, 82, 83, + -1, 85, 86, 87, -1, 89, 90, 91, 92, 93, + 94, -1, -1, 97, 98, 99, -1, -1, -1, -1, + -1, -1, -1, 107, 108, 109, 110, 111, 112, 113, + 114, 115, 116, -1, 118, -1, 120, 121, 122, 123, + 124, 125, -1, 127, 128, 129, 130, 131, -1, -1, + 134, 135, 136, 137, 138, -1, 140, 141, 142, -1, + 144, 145, 146, -1, 148, 149, 150, 151, 152, 153, + 154, 155, 156, 157, 158, -1, 160, -1, 162, 163, + 164, 165, -1, 167, -1, 169, -1, -1, -1, 173, + 174, 175, -1, 177, -1, 179, -1, 181, 182, 183, + -1, 185, 186, 187, 188, 189, 190, 191, -1, 193, + 194, 195, 196, -1, 198, 199, 200, 201, 202, 203, + -1, 205, -1, 207, 208, 209, 210, 211, 212, 213, + 214, -1, 216, -1, 218, -1, -1, 221, -1, 223, + 224, 225, 226, 227, 228, -1, -1, 231, -1, 233, + -1, -1, 236, 237, 238, -1, -1, 241, 242, 243, + 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, + 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, + 264, 265, -1, 267, 268, 269, 270, 271, -1, 273, + 274, -1, 276, -1, 278, 279, 280, 281, 282, 283, + -1, 285, 286, -1, -1, 289, 290, 291, -1, -1, + 294, 295, -1, 297, -1, 299, 300, 301, 302, 303, + 304, 305, 306, 307, 308, 309, -1, 311, 312, 313, + 314, 315, 316, 317, 318, 319, -1, 321, 322, 323, + 324, 325, 326, -1, 328, 329, 330, 331, 332, 333, + 334, 335, -1, 337, 338, 339, 340, 341, 342, 343, + 344, 345, 346, 347, 348, 349, -1, 351, 352, -1, + 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, + 364, 365, 366, 367, 368, -1, 370, 371, 372, 373, + 374, -1, 376, 377, 378, 379, 380, -1, 382, 383, + 384, 385, -1, 387, 388, 389, 390, 391, 392, 393, + 394, 395, 396, 397, 398, 399, 400, 401, 402, -1, + 404, 405, 406, 407, -1, 409, 410, 411, 412, 413, + -1, 415, 416, -1, -1, 419, 420, 421, 422, 423, + -1, 425, 426, 427, 428, 429, 430, 431, 432, -1, + -1, 435, 436, 437, 438, 439, -1, -1, 442, 443, + 444, 445, 446, 447, 448, -1, 450, -1, 452, 453, + 454, 455, 456, -1, -1, 459, -1, -1, 462, 463, + 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, + 474, 475, 476, 477, 478, 479, 480, 481, 482, 3, + 4, -1, -1, -1, -1, 9, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 21, 22, 23, + 24, 25, 26, 27, 28, -1, 30, 31, 32, -1, + -1, -1, -1, -1, -1, -1, 40, 41, -1, 43, + 44, 45, -1, 47, 48, 49, 50, 51, -1, 53, + 54, -1, 56, 57, 58, 59, 60, 61, -1, -1, + 64, 65, 66, 67, 68, -1, 70, 71, 72, 73, + 74, -1, -1, -1, 78, 79, 80, 81, 82, 83, + -1, 85, 86, 87, -1, 89, 90, 91, 92, 93, + 94, -1, -1, 97, 98, 99, -1, -1, -1, -1, + -1, -1, -1, 107, 108, 109, 110, 111, 112, 113, + 114, 115, 116, -1, 118, -1, 120, 121, 122, 123, + 124, 125, -1, 127, 128, 129, 130, 131, -1, -1, + 134, 135, 136, 137, 138, -1, 140, 141, 142, -1, + 144, 145, 146, -1, 148, 149, 150, 151, 152, 153, + 154, 155, 156, 157, 158, -1, 160, -1, 162, 163, + 164, 165, -1, 167, -1, 169, -1, -1, -1, 173, + 174, 175, -1, 177, -1, 179, -1, 181, 182, 183, + -1, 185, 186, 187, 188, 189, 190, 191, -1, 193, + 194, 195, 196, -1, 198, 199, 200, 201, 202, 203, + -1, 205, -1, 207, 208, 209, 210, 211, 212, 213, + 214, -1, 216, -1, 218, -1, -1, 221, -1, 223, + 224, 225, 226, 227, 228, -1, -1, 231, -1, 233, + -1, -1, 236, 237, 238, -1, -1, 241, 242, 243, + 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, + 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, + 264, 265, -1, 267, 268, 269, 270, 271, -1, 273, + 274, -1, 276, -1, 278, 279, 280, 281, 282, 283, + -1, 285, 286, -1, -1, 289, 290, 291, -1, -1, + 294, 295, -1, 297, -1, 299, 300, 301, 302, 303, + 304, 305, 306, 307, 308, 309, -1, 311, 312, 313, + 314, 315, 316, 317, 318, 319, -1, 321, 322, 323, + 324, 325, 326, -1, 328, 329, 330, 331, 332, 333, + 334, 335, -1, 337, 338, 339, 340, 341, 342, 343, + 344, 345, 346, 347, 348, 349, -1, 351, 352, -1, + 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, + 364, 365, 366, 367, 368, -1, 370, 371, 372, 373, + 374, -1, 376, 377, 378, 379, 380, -1, 382, 383, + 384, 385, -1, 387, 388, 389, 390, 391, 392, 393, + 394, 395, 396, 397, 398, 399, 400, 401, 402, -1, + 404, 405, -1, 407, -1, 409, 410, 411, 412, 413, + -1, 415, 416, -1, -1, 419, 420, 421, 422, 423, + -1, 425, 426, 427, 428, 429, 430, 431, 432, -1, + -1, 435, 436, 437, 438, 439, -1, -1, 442, 443, + 444, 445, 446, 447, 448, -1, 450, -1, 452, 453, + 454, 455, 456, -1, -1, 459, -1, -1, 462, 463, + 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, + 474, 475, 476, 477, 478, 479, 480, 481, 482, 3, + -1, 5, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 21, 22, 23, + 24, 25, 26, 27, 28, -1, 30, 31, 32, -1, + -1, -1, -1, -1, -1, -1, 40, 41, -1, 43, + 44, 45, -1, 47, 48, 49, 50, 51, -1, 53, + 54, -1, 56, 57, 58, 59, 60, 61, -1, -1, + 64, 65, 66, 67, 68, -1, 70, 71, 72, 73, + 74, -1, -1, -1, 78, 79, 80, 81, 82, 83, + -1, 85, 86, 87, -1, 89, 90, 91, 92, 93, + 94, -1, -1, 97, 98, 99, -1, -1, -1, -1, + -1, -1, -1, 107, 108, 109, 110, 111, 112, 113, + 114, 115, 116, -1, 118, -1, 120, 121, 122, 123, + 124, 125, -1, 127, 128, 129, 130, 131, -1, -1, + 134, 135, 136, 137, 138, -1, 140, 141, 142, -1, + 144, 145, 146, -1, 148, 149, 150, 151, 152, 153, + 154, 155, 156, 157, 158, -1, 160, -1, 162, 163, + 164, 165, -1, 167, -1, 169, -1, -1, -1, 173, + 174, 175, -1, 177, -1, 179, -1, 181, 182, 183, + -1, 185, 186, 187, 188, 189, 190, 191, -1, 193, + 194, 195, 196, -1, 198, 199, 200, 201, 202, 203, + -1, 205, -1, 207, 208, 209, 210, 211, 212, 213, + 214, -1, 216, -1, 218, -1, -1, 221, -1, 223, + 224, 225, 226, 227, 228, -1, -1, 231, -1, 233, + -1, -1, 236, 237, 238, -1, -1, 241, 242, 243, + 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, + 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, + 264, 265, -1, 267, 268, 269, 270, 271, -1, 273, + 274, -1, 276, -1, 278, 279, 280, 281, 282, 283, + -1, 285, 286, -1, -1, 289, 290, 291, -1, -1, + 294, 295, -1, 297, -1, 299, 300, 301, 302, 303, + 304, 305, 306, 307, 308, 309, -1, 311, 312, 313, + 314, 315, 316, 317, 318, 319, -1, 321, 322, 323, + 324, 325, 326, -1, 328, 329, 330, 331, 332, 333, + 334, 335, -1, 337, 338, 339, 340, 341, 342, 343, + 344, 345, 346, 347, 348, 349, -1, 351, 352, -1, + 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, + 364, 365, 366, 367, 368, -1, 370, 371, 372, 373, + 374, -1, 376, 377, 378, 379, 380, -1, 382, 383, + 384, 385, -1, 387, 388, 389, 390, 391, 392, 393, + 394, 395, 396, 397, 398, 399, 400, 401, 402, -1, + 404, 405, -1, 407, -1, 409, 410, 411, 412, 413, + -1, 415, 416, -1, -1, 419, 420, 421, 422, 423, + -1, 425, 426, 427, 428, 429, 430, 431, 432, -1, + -1, 435, 436, 437, 438, 439, -1, -1, 442, 443, + 444, 445, 446, 447, 448, -1, 450, -1, 452, 453, + 454, 455, 456, -1, -1, 459, -1, -1, 462, 463, + 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, + 474, 475, 476, 477, 478, 479, 480, 481, 482, 3, + -1, 5, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 21, 22, 23, + 24, 25, 26, 27, 28, -1, 30, 31, 32, -1, + -1, -1, -1, -1, -1, -1, 40, 41, -1, 43, + 44, 45, -1, 47, 48, 49, 50, 51, -1, 53, + 54, -1, 56, 57, 58, 59, 60, 61, -1, -1, + 64, 65, 66, 67, 68, -1, 70, 71, 72, 73, + 74, -1, -1, -1, 78, 79, 80, 81, 82, 83, + -1, 85, 86, 87, -1, 89, 90, 91, 92, 93, + 94, -1, -1, 97, 98, 99, -1, -1, -1, -1, + -1, -1, -1, 107, 108, 109, 110, 111, 112, 113, + 114, 115, 116, -1, 118, -1, 120, 121, 122, 123, + 124, 125, -1, 127, 128, 129, 130, 131, -1, -1, + 134, 135, 136, 137, 138, -1, 140, 141, 142, -1, + 144, 145, 146, -1, 148, 149, 150, 151, 152, 153, + 154, 155, 156, 157, 158, -1, 160, -1, 162, 163, + 164, 165, -1, 167, -1, 169, -1, -1, -1, 173, + 174, 175, -1, 177, -1, 179, -1, 181, 182, 183, + -1, 185, 186, 187, 188, 189, 190, 191, -1, 193, + 194, 195, 196, -1, 198, 199, 200, 201, 202, 203, + -1, 205, -1, 207, 208, 209, 210, 211, 212, 213, + 214, -1, 216, -1, 218, -1, -1, 221, -1, 223, + 224, 225, 226, 227, 228, -1, -1, 231, -1, 233, + -1, -1, 236, 237, 238, -1, -1, 241, 242, 243, + 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, + 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, + 264, 265, -1, 267, 268, 269, 270, 271, -1, 273, + 274, -1, 276, -1, 278, 279, 280, 281, 282, 283, + -1, 285, 286, -1, -1, 289, 290, 291, -1, -1, + 294, 295, -1, 297, -1, 299, 300, 301, 302, 303, + 304, 305, 306, 307, 308, 309, -1, 311, 312, 313, + 314, 315, 316, 317, 318, 319, -1, 321, 322, 323, + 324, 325, 326, -1, 328, 329, 330, 331, 332, 333, + 334, 335, -1, 337, 338, 339, 340, 341, 342, 343, + 344, 345, 346, 347, 348, 349, -1, 351, 352, -1, + 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, + 364, 365, 366, 367, 368, -1, 370, 371, 372, 373, + 374, -1, 376, 377, 378, 379, 380, -1, 382, 383, + 384, 385, -1, 387, 388, 389, 390, 391, 392, 393, + 394, 395, 396, 397, 398, 399, 400, 401, 402, -1, + 404, 405, -1, 407, -1, 409, 410, 411, 412, 413, + -1, 415, 416, -1, -1, 419, 420, 421, 422, 423, + -1, 425, 426, 427, 428, 429, 430, 431, 432, -1, + -1, 435, 436, 437, 438, 439, -1, -1, 442, 443, + 444, 445, 446, 447, 448, -1, 450, -1, 452, 453, + 454, 455, 456, -1, -1, 459, -1, -1, 462, 463, + 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, + 474, 475, 476, 477, 478, 479, 480, 481, 482, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 21, 22, 23, 24, 25, 26, 27, 28, -1, - 30, 31, 32, -1, -1, -1, -1, -1, -1, -1, - 40, 41, -1, 43, 44, 45, -1, 47, 48, 49, - 50, 51, -1, 53, 54, -1, 56, 57, 58, 59, - 60, 61, -1, -1, 64, 65, 66, 67, 68, -1, - 70, 71, 72, 73, 74, -1, -1, -1, 78, 79, - 80, 81, 82, 83, -1, 85, 86, 87, -1, 89, - 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, - -1, -1, -1, -1, -1, -1, -1, 107, 108, 109, - 110, 111, 112, 113, 114, 115, 116, -1, 118, -1, - 120, 121, 122, 123, 124, 125, -1, 127, 128, 129, - 130, 131, -1, -1, 134, 135, 136, 137, 138, -1, - 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, - 150, 151, 152, 153, 154, 155, 156, 157, 158, -1, - 160, -1, 162, 163, 164, 165, -1, 167, -1, 169, - -1, -1, -1, 173, 174, 175, -1, 177, -1, 179, - -1, 181, 182, 183, -1, 185, 186, 187, 188, 189, - 190, 191, -1, 193, 194, 195, 196, -1, 198, 199, - 200, 201, 202, 203, -1, 205, -1, 207, 208, 209, - 210, 211, 212, 213, 214, -1, 216, -1, 218, -1, - -1, 221, -1, 223, 224, 225, 226, 227, 228, -1, - -1, 231, -1, 233, -1, -1, 236, 237, 238, -1, - -1, 241, 242, 243, 244, 245, 246, 247, 248, 249, - 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, - 260, 261, 262, 263, 264, 265, -1, 267, 268, 269, - 270, 271, -1, 273, 274, -1, 276, -1, 278, 279, - 280, 281, 282, 283, -1, 285, 286, -1, -1, 289, - 290, 291, -1, -1, 294, 295, -1, 297, -1, 299, - 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, - -1, 311, 312, 313, 314, 315, 316, 317, 318, 319, - -1, 321, 322, 323, 324, 325, 326, -1, 328, 329, - 330, 331, 332, 333, 334, 335, -1, 337, 338, 339, - 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, - -1, 351, 352, -1, 354, 355, 356, 357, 358, 359, - 360, 361, 362, 363, 364, 365, 366, 367, 368, -1, - 370, 371, 372, 373, 374, -1, 376, 377, 378, 379, - 380, -1, 382, 383, 384, 385, -1, 387, 388, 389, - 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, - 400, 401, 402, -1, 404, 405, -1, 407, -1, 409, - 410, 411, 412, 413, -1, 415, 416, -1, -1, 419, - 420, 421, 422, 423, -1, 425, 426, 427, 428, 429, - 430, 431, 432, -1, -1, 435, 436, 437, 438, 439, - -1, -1, 442, 443, 444, 445, 446, 447, 448, -1, - 450, -1, 452, 453, 454, 455, 456, -1, -1, 459, - -1, -1, 462, 463, 464, 465, 466, 467, 468, 469, - 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, - 480, 481, 482, 3, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 21, 22, 23, + 24, 25, 26, 27, 28, 29, 30, 31, 32, -1, + -1, -1, -1, -1, -1, -1, 40, 41, -1, 43, + 44, 45, -1, 47, 48, 49, 50, 51, -1, 53, + 54, -1, 56, 57, 58, 59, 60, 61, -1, -1, + 64, 65, 66, 67, 68, -1, 70, 71, 72, 73, + 74, -1, -1, -1, 78, 79, 80, 81, 82, 83, + -1, 85, 86, 87, -1, 89, 90, 91, 92, 93, + 94, -1, -1, 97, 98, 99, -1, -1, -1, -1, + -1, -1, -1, 107, 108, 109, 110, 111, 112, 113, + 114, 115, 116, -1, 118, -1, 120, 121, 122, 123, + 124, 125, -1, 127, 128, 129, 130, 131, -1, -1, + 134, 135, 136, 137, 138, -1, 140, 141, 142, -1, + 144, 145, 146, -1, 148, 149, 150, 151, 152, 153, + 154, 155, 156, 157, 158, -1, 160, -1, 162, 163, + 164, 165, -1, 167, -1, 169, -1, -1, -1, 173, + 174, 175, -1, 177, -1, 179, -1, 181, 182, 183, + -1, 185, 186, 187, 188, 189, 190, 191, -1, 193, + 194, 195, 196, -1, 198, 199, 200, 201, 202, 203, + -1, 205, -1, 207, 208, 209, 210, 211, 212, 213, + 214, -1, 216, -1, 218, -1, -1, 221, -1, 223, + 224, 225, 226, 227, 228, -1, -1, 231, -1, 233, + -1, -1, 236, 237, 238, -1, -1, 241, 242, 243, + 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, + 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, + 264, 265, -1, 267, 268, 269, 270, 271, -1, 273, + 274, -1, 276, -1, 278, 279, 280, 281, 282, 283, + -1, 285, 286, -1, -1, 289, 290, 291, -1, -1, + 294, 295, -1, 297, -1, 299, 300, 301, 302, 303, + 304, 305, 306, 307, 308, 309, -1, 311, 312, 313, + 314, 315, 316, 317, 318, 319, -1, 321, 322, 323, + 324, 325, 326, -1, 328, 329, 330, 331, 332, 333, + 334, 335, -1, 337, 338, 339, 340, 341, 342, 343, + 344, 345, 346, 347, 348, 349, -1, 351, 352, -1, + 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, + 364, 365, 366, 367, 368, -1, 370, 371, 372, 373, + 374, -1, 376, 377, 378, 379, 380, -1, 382, 383, + 384, 385, -1, 387, 388, 389, 390, 391, 392, 393, + 394, 395, 396, 397, 398, 399, 400, 401, 402, -1, + 404, 405, -1, 407, -1, 409, 410, 411, 412, 413, + -1, 415, 416, -1, -1, 419, 420, 421, 422, 423, + -1, 425, 426, 427, 428, 429, 430, 431, 432, -1, + -1, 435, 436, 437, 438, 439, -1, -1, 442, 443, + 444, 445, 446, 447, 448, -1, 450, -1, 452, 453, + 454, 455, 456, -1, -1, 459, -1, -1, 462, 463, + 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, + 474, 475, 476, 477, 478, 479, 480, 481, 482, 3, + -1, 5, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 21, 22, 23, + 24, 25, 26, 27, 28, -1, 30, 31, 32, -1, + -1, -1, -1, -1, -1, -1, 40, 41, -1, 43, + 44, 45, -1, 47, 48, 49, 50, 51, -1, 53, + 54, -1, 56, 57, 58, 59, 60, 61, -1, -1, + 64, 65, 66, 67, 68, -1, 70, 71, 72, 73, + 74, -1, -1, -1, 78, 79, 80, 81, 82, 83, + -1, 85, 86, 87, -1, 89, 90, 91, 92, 93, + 94, -1, -1, 97, 98, 99, -1, -1, -1, -1, + -1, -1, -1, 107, 108, 109, 110, 111, 112, 113, + 114, 115, 116, -1, 118, -1, 120, 121, 122, 123, + 124, 125, -1, 127, 128, 129, 130, 131, -1, -1, + 134, 135, 136, 137, 138, -1, 140, 141, 142, -1, + 144, 145, 146, -1, 148, 149, 150, 151, 152, 153, + 154, 155, 156, 157, 158, -1, 160, -1, 162, 163, + 164, 165, -1, 167, -1, 169, -1, -1, -1, 173, + 174, 175, -1, 177, -1, 179, -1, 181, 182, 183, + -1, 185, 186, 187, 188, 189, 190, 191, -1, 193, + 194, 195, 196, -1, 198, 199, 200, 201, 202, 203, + -1, 205, -1, 207, 208, 209, 210, 211, 212, 213, + 214, -1, 216, -1, 218, -1, -1, 221, -1, 223, + 224, 225, 226, 227, 228, -1, -1, 231, -1, 233, + -1, -1, 236, 237, 238, -1, -1, 241, 242, 243, + 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, + 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, + 264, 265, -1, 267, 268, 269, 270, 271, -1, 273, + 274, -1, 276, -1, 278, 279, 280, 281, 282, 283, + -1, 285, 286, -1, -1, 289, 290, 291, -1, -1, + 294, 295, -1, 297, -1, 299, 300, 301, 302, 303, + 304, 305, 306, 307, 308, 309, -1, 311, 312, 313, + 314, 315, 316, 317, 318, 319, -1, 321, 322, 323, + 324, 325, 326, -1, 328, 329, 330, 331, 332, 333, + 334, 335, -1, 337, 338, 339, 340, 341, 342, 343, + 344, 345, 346, 347, 348, 349, -1, 351, 352, -1, + 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, + 364, 365, 366, 367, 368, -1, 370, 371, 372, 373, + 374, -1, 376, 377, 378, 379, 380, -1, 382, 383, + 384, 385, -1, 387, 388, 389, 390, 391, 392, 393, + 394, 395, 396, 397, 398, 399, 400, 401, 402, -1, + 404, 405, -1, 407, -1, 409, 410, 411, 412, 413, + -1, 415, 416, -1, -1, 419, 420, 421, 422, 423, + -1, 425, 426, 427, 428, 429, 430, 431, 432, -1, + -1, 435, 436, 437, 438, 439, -1, -1, 442, 443, + 444, 445, 446, 447, 448, -1, 450, -1, 452, 453, + 454, 455, 456, -1, -1, 459, -1, -1, 462, 463, + 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, + 474, 475, 476, 477, 478, 479, 480, 481, 482, 3, + -1, 5, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 21, 22, 23, + 24, 25, 26, 27, 28, -1, 30, 31, 32, -1, + -1, -1, -1, -1, -1, -1, 40, 41, -1, 43, + 44, 45, -1, 47, 48, 49, 50, 51, -1, 53, + 54, -1, 56, 57, 58, 59, 60, 61, -1, -1, + 64, 65, 66, 67, 68, -1, 70, 71, 72, 73, + 74, -1, -1, -1, 78, 79, 80, 81, 82, 83, + -1, 85, 86, 87, -1, 89, 90, 91, 92, 93, + 94, -1, -1, 97, 98, 99, -1, -1, -1, -1, + -1, -1, -1, 107, 108, 109, 110, 111, 112, 113, + 114, 115, 116, -1, 118, -1, 120, 121, 122, 123, + 124, 125, -1, 127, 128, 129, 130, 131, -1, -1, + 134, 135, 136, 137, 138, -1, 140, 141, 142, -1, + 144, 145, 146, -1, 148, 149, 150, 151, 152, 153, + 154, 155, 156, 157, 158, -1, 160, -1, 162, 163, + 164, 165, -1, 167, -1, 169, -1, -1, -1, 173, + 174, 175, -1, 177, -1, 179, -1, 181, 182, 183, + -1, 185, 186, 187, 188, 189, 190, 191, -1, 193, + 194, 195, 196, -1, 198, 199, 200, 201, 202, 203, + -1, 205, -1, 207, 208, 209, 210, 211, 212, 213, + 214, -1, 216, -1, 218, -1, -1, 221, -1, 223, + 224, 225, 226, 227, 228, -1, -1, 231, -1, 233, + -1, -1, 236, 237, 238, -1, -1, 241, 242, 243, + 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, + 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, + 264, 265, -1, 267, 268, 269, 270, 271, -1, 273, + 274, -1, 276, -1, 278, 279, 280, 281, 282, 283, + -1, 285, 286, -1, -1, 289, 290, 291, -1, -1, + 294, 295, -1, 297, -1, 299, 300, 301, 302, 303, + 304, 305, 306, 307, 308, 309, -1, 311, 312, 313, + 314, 315, 316, 317, 318, 319, -1, 321, 322, 323, + 324, 325, 326, -1, 328, 329, 330, 331, 332, 333, + 334, 335, -1, 337, 338, 339, 340, 341, 342, 343, + 344, 345, 346, 347, 348, 349, -1, 351, 352, -1, + 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, + 364, 365, 366, 367, 368, -1, 370, 371, 372, 373, + 374, -1, 376, 377, 378, 379, 380, -1, 382, 383, + 384, 385, -1, 387, 388, 389, 390, 391, 392, 393, + 394, 395, 396, 397, 398, 399, 400, 401, 402, -1, + 404, 405, -1, 407, -1, 409, 410, 411, 412, 413, + -1, 415, 416, -1, -1, 419, 420, 421, 422, 423, + -1, 425, 426, 427, 428, 429, 430, 431, 432, -1, + -1, 435, 436, 437, 438, 439, -1, -1, 442, 443, + 444, 445, 446, 447, 448, -1, 450, -1, 452, 453, + 454, 455, 456, -1, -1, 459, -1, -1, 462, 463, + 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, + 474, 475, 476, 477, 478, 479, 480, 481, 482, 3, + -1, 5, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 21, 22, 23, + 24, 25, 26, 27, 28, -1, 30, 31, 32, -1, + -1, -1, -1, -1, -1, -1, 40, 41, -1, 43, + 44, 45, -1, 47, 48, 49, 50, 51, -1, 53, + 54, -1, 56, 57, 58, 59, 60, 61, -1, -1, + 64, 65, 66, 67, 68, -1, 70, 71, 72, 73, + 74, -1, -1, -1, 78, 79, 80, 81, 82, 83, + -1, 85, 86, 87, -1, 89, 90, 91, 92, 93, + 94, -1, -1, 97, 98, 99, -1, -1, -1, -1, + -1, -1, -1, 107, 108, 109, 110, 111, 112, 113, + 114, 115, 116, -1, 118, -1, 120, 121, 122, 123, + 124, 125, -1, 127, 128, 129, 130, 131, -1, -1, + 134, 135, 136, 137, 138, -1, 140, 141, 142, -1, + 144, 145, 146, -1, 148, 149, 150, 151, 152, 153, + 154, 155, 156, 157, 158, -1, 160, -1, 162, 163, + 164, 165, -1, 167, -1, 169, -1, -1, -1, 173, + 174, 175, -1, 177, -1, 179, -1, 181, 182, 183, + -1, 185, 186, 187, 188, 189, 190, 191, -1, 193, + 194, 195, 196, -1, 198, 199, 200, 201, 202, 203, + -1, 205, -1, 207, 208, 209, 210, 211, 212, 213, + 214, -1, 216, -1, 218, -1, -1, 221, -1, 223, + 224, 225, 226, 227, 228, -1, -1, 231, -1, 233, + -1, -1, 236, 237, 238, -1, -1, 241, 242, 243, + 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, + 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, + 264, 265, -1, 267, 268, 269, 270, 271, -1, 273, + 274, -1, 276, -1, 278, 279, 280, 281, 282, 283, + -1, 285, 286, -1, -1, 289, 290, 291, -1, -1, + 294, 295, -1, 297, -1, 299, 300, 301, 302, 303, + 304, 305, 306, 307, 308, 309, -1, 311, 312, 313, + 314, 315, 316, 317, 318, 319, -1, 321, 322, 323, + 324, 325, 326, -1, 328, 329, 330, 331, 332, 333, + 334, 335, -1, 337, 338, 339, 340, 341, 342, 343, + 344, 345, 346, 347, 348, 349, -1, 351, 352, -1, + 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, + 364, 365, 366, 367, 368, -1, 370, 371, 372, 373, + 374, -1, 376, 377, 378, 379, 380, -1, 382, 383, + 384, 385, -1, 387, 388, 389, 390, 391, 392, 393, + 394, 395, 396, 397, 398, 399, 400, 401, 402, -1, + 404, 405, -1, 407, -1, 409, 410, 411, 412, 413, + -1, 415, 416, -1, -1, 419, 420, 421, 422, 423, + -1, 425, 426, 427, 428, 429, 430, 431, 432, -1, + -1, 435, 436, 437, 438, 439, -1, -1, 442, 443, + 444, 445, 446, 447, 448, -1, 450, -1, 452, 453, + 454, 455, 456, -1, -1, 459, -1, -1, 462, 463, + 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, + 474, 475, 476, 477, 478, 479, 480, 481, 482, 3, + -1, 5, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 21, 22, 23, + 24, 25, 26, 27, 28, -1, 30, 31, 32, -1, + -1, -1, -1, -1, -1, -1, 40, 41, -1, 43, + 44, 45, -1, 47, 48, 49, 50, 51, -1, 53, + 54, -1, 56, 57, 58, 59, 60, 61, -1, -1, + 64, 65, 66, 67, 68, -1, 70, 71, 72, 73, + 74, -1, -1, -1, 78, 79, 80, 81, 82, 83, + -1, 85, 86, 87, -1, 89, 90, 91, 92, 93, + 94, -1, -1, 97, 98, 99, -1, -1, -1, -1, + -1, -1, -1, 107, 108, 109, 110, 111, 112, 113, + 114, 115, 116, -1, 118, -1, 120, 121, 122, 123, + 124, 125, -1, 127, 128, 129, 130, 131, -1, -1, + 134, 135, 136, 137, 138, -1, 140, 141, 142, -1, + 144, 145, 146, -1, 148, 149, 150, 151, 152, 153, + 154, 155, 156, 157, 158, -1, 160, -1, 162, 163, + 164, 165, -1, 167, -1, 169, -1, -1, -1, 173, + 174, 175, -1, 177, -1, 179, -1, 181, 182, 183, + -1, 185, 186, 187, 188, 189, 190, 191, -1, 193, + 194, 195, 196, -1, 198, 199, 200, 201, 202, 203, + -1, 205, -1, 207, 208, 209, 210, 211, 212, 213, + 214, -1, 216, -1, 218, -1, -1, 221, -1, 223, + 224, 225, 226, 227, 228, -1, -1, 231, -1, 233, + -1, -1, 236, 237, 238, -1, -1, 241, 242, 243, + 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, + 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, + 264, 265, -1, 267, 268, 269, 270, 271, -1, 273, + 274, -1, 276, -1, 278, 279, 280, 281, 282, 283, + -1, 285, 286, -1, -1, 289, 290, 291, -1, -1, + 294, 295, -1, 297, -1, 299, 300, 301, 302, 303, + 304, 305, 306, 307, 308, 309, -1, 311, 312, 313, + 314, 315, 316, 317, 318, 319, -1, 321, 322, 323, + 324, 325, 326, -1, 328, 329, 330, 331, 332, 333, + 334, 335, -1, 337, 338, 339, 340, 341, 342, 343, + 344, 345, 346, 347, 348, 349, -1, 351, 352, -1, + 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, + 364, 365, 366, 367, 368, -1, 370, 371, 372, 373, + 374, -1, 376, 377, 378, 379, 380, -1, 382, 383, + 384, 385, -1, 387, 388, 389, 390, 391, 392, 393, + 394, 395, 396, 397, 398, 399, 400, 401, 402, -1, + 404, 405, -1, 407, -1, 409, 410, 411, 412, 413, + -1, 415, 416, -1, -1, 419, 420, 421, 422, 423, + -1, 425, 426, 427, 428, 429, 430, 431, 432, -1, + -1, 435, 436, 437, 438, 439, -1, -1, 442, 443, + 444, 445, 446, 447, 448, -1, 450, -1, 452, 453, + 454, 455, 456, -1, -1, 459, -1, -1, 462, 463, + 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, + 474, 475, 476, 477, 478, 479, 480, 481, 482, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 21, 22, 23, 24, 25, 26, 27, 28, -1, - 30, 31, 32, -1, -1, -1, -1, -1, -1, -1, - 40, 41, -1, 43, 44, 45, -1, 47, 48, 49, - 50, 51, -1, 53, 54, -1, 56, 57, 58, 59, - 60, 61, -1, -1, 64, 65, 66, 67, 68, -1, - 70, 71, 72, 73, 74, -1, -1, -1, 78, 79, - 80, 81, 82, 83, -1, 85, 86, 87, -1, 89, - 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, - -1, -1, -1, -1, -1, -1, -1, 107, 108, 109, - 110, 111, 112, 113, 114, 115, 116, -1, 118, -1, - 120, 121, 122, 123, 124, 125, -1, 127, 128, 129, - 130, 131, -1, -1, 134, 135, 136, 137, 138, -1, - 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, - 150, 151, 152, 153, 154, 155, 156, 157, 158, -1, - 160, -1, 162, 163, 164, 165, -1, 167, -1, 169, - -1, -1, -1, 173, 174, 175, -1, 177, -1, 179, - -1, 181, 182, 183, -1, 185, 186, 187, 188, 189, - 190, 191, -1, 193, 194, 195, 196, -1, 198, 199, - 200, 201, 202, 203, -1, 205, -1, 207, 208, 209, - 210, 211, 212, 213, 214, -1, 216, -1, 218, -1, - -1, 221, -1, 223, 224, 225, 226, 227, 228, -1, - -1, 231, -1, 233, -1, -1, 236, 237, 238, -1, - -1, 241, 242, 243, 244, 245, 246, 247, 248, 249, - 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, - 260, 261, 262, 263, 264, 265, -1, 267, 268, 269, - 270, 271, -1, 273, 274, -1, 276, -1, 278, 279, - 280, 281, 282, 283, -1, 285, 286, -1, -1, 289, - 290, 291, -1, -1, 294, 295, -1, 297, -1, 299, - 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, - -1, 311, 312, 313, 314, 315, 316, 317, 318, 319, - -1, 321, 322, 323, 324, 325, 326, -1, 328, 329, - 330, 331, 332, 333, 334, 335, -1, 337, 338, 339, - 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, - -1, 351, 352, -1, 354, 355, 356, 357, 358, 359, - 360, 361, 362, 363, 364, 365, 366, 367, 368, -1, - 370, 371, 372, 373, 374, -1, 376, 377, 378, 379, - 380, -1, 382, 383, 384, 385, -1, 387, 388, 389, - 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, - 400, 401, 402, -1, 404, 405, -1, 407, -1, 409, - 410, 411, 412, 413, -1, 415, 416, -1, -1, 419, - 420, 421, 422, 423, -1, 425, 426, 427, 428, 429, - 430, 431, 432, -1, -1, 435, 436, 437, 438, 439, - -1, -1, 442, 443, 444, 445, 446, 447, 448, -1, - 450, -1, 452, 453, 454, 455, 456, -1, -1, 459, - -1, -1, 462, 463, 464, 465, 466, 467, 468, 469, - 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, - 480, 481, 482, 3, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 21, 22, 23, + 24, 25, 26, 27, 28, -1, 30, 31, 32, -1, + -1, -1, -1, -1, -1, -1, 40, 41, -1, 43, + 44, 45, 46, 47, 48, 49, -1, 51, 52, 53, + 54, -1, 56, 57, 58, 59, 60, 61, -1, -1, + 64, 65, 66, 67, 68, -1, 70, 71, 72, 73, + -1, -1, 76, -1, 78, 79, 80, 81, 82, 83, + 84, 85, 86, 87, -1, 89, 90, 91, 92, 93, + 94, -1, 96, 97, 98, 99, 100, 101, 102, 103, + -1, -1, 106, 107, 108, 109, 110, 111, 112, 113, + 114, 115, 116, -1, 118, -1, 120, 121, 122, 123, + 124, 125, -1, 127, 128, 129, 130, 131, -1, -1, + 134, 135, 136, 137, 138, -1, 140, 141, 142, -1, + 144, 145, 146, -1, 148, 149, 150, 151, -1, 153, + 154, 155, 156, 157, -1, -1, 160, -1, 162, 163, + 164, 165, -1, 167, -1, 169, 170, -1, 172, 173, + 174, -1, 176, 177, -1, 179, -1, -1, -1, 183, + -1, 185, 186, 187, 188, 189, 190, 191, 192, 193, + 194, 195, 196, -1, 198, 199, 200, 201, 202, 203, + -1, 205, 206, -1, 208, 209, 210, 211, 212, 213, + 214, -1, 216, -1, 218, 219, 220, 221, 222, 223, + 224, 225, 226, 227, 228, -1, -1, 231, 232, 233, + 234, -1, 236, 237, 238, -1, -1, 241, 242, 243, + 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, + 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, + 264, 265, 266, 267, 268, 269, 270, -1, -1, 273, + 274, 275, 276, -1, -1, 279, 280, 281, 282, 283, + -1, 285, 286, -1, -1, 289, 290, 291, -1, -1, + 294, -1, 296, 297, 298, -1, 300, 301, 302, 303, + 304, 305, 306, 307, 308, 309, -1, 311, 312, -1, + 314, 315, -1, 317, 318, 319, -1, 321, 322, 323, + 324, 325, 326, -1, 328, 329, 330, 331, 332, 333, + 334, 335, -1, 337, 338, 339, 340, 341, 342, 343, + 344, 345, 346, 347, 348, 349, -1, 351, 352, 353, + 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, + 364, 365, 366, 367, 368, -1, 370, 371, 372, 373, + 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, + 384, 385, -1, 387, 388, 389, 390, 391, 392, 393, + 394, 395, 396, 397, 398, 399, 400, -1, 402, -1, + 404, 405, -1, 407, 408, 409, 410, 411, 412, 413, + -1, 415, 416, -1, -1, 419, 420, -1, 422, -1, + -1, 425, 426, 427, 428, 429, 430, 431, 432, -1, + -1, 435, 436, 437, 438, 439, 440, -1, 442, 443, + 444, 445, 446, -1, 448, -1, 450, 451, 452, 453, + 454, 455, 456, -1, -1, 459, -1, -1, 462, 463, + 464, 465, 466, 467, 3, -1, 5, -1, -1, -1, + -1, -1, -1, -1, -1, 479, 480, 481, 482, -1, + -1, -1, 21, 22, 23, 24, 25, 26, 27, 28, + -1, 30, 31, 32, -1, -1, -1, -1, -1, -1, + -1, 40, 41, -1, 43, 44, 45, -1, 47, 48, + 49, 50, 51, -1, 53, 54, -1, 56, 57, 58, + 59, 60, 61, -1, -1, 64, 65, 66, 67, 68, + -1, 70, 71, 72, 73, 74, -1, -1, -1, 78, + 79, 80, 81, 82, 83, -1, 85, 86, 87, -1, + 89, 90, 91, 92, 93, 94, -1, -1, 97, 98, + 99, -1, -1, -1, -1, -1, -1, -1, 107, 108, + 109, 110, 111, 112, 113, 114, 115, 116, -1, 118, + -1, 120, 121, 122, 123, 124, 125, -1, 127, 128, + 129, 130, 131, -1, -1, 134, 135, 136, 137, 138, + -1, 140, 141, 142, -1, 144, 145, 146, -1, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, + -1, 160, -1, 162, 163, 164, 165, -1, 167, -1, + 169, -1, -1, -1, 173, 174, 175, -1, 177, -1, + 179, -1, 181, 182, 183, -1, 185, 186, 187, 188, + 189, 190, 191, -1, 193, 194, 195, 196, -1, 198, + 199, 200, 201, 202, 203, -1, 205, -1, 207, 208, + 209, 210, 211, 212, 213, 214, -1, 216, -1, 218, + -1, -1, 221, -1, 223, 224, 225, 226, 227, 228, + -1, -1, 231, -1, 233, -1, -1, 236, 237, 238, + -1, -1, 241, 242, 243, 244, 245, 246, 247, 248, + 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, + 259, 260, 261, 262, 263, 264, 265, -1, 267, 268, + 269, 270, 271, -1, 273, 274, -1, 276, -1, 278, + 279, 280, 281, 282, 283, -1, 285, 286, -1, -1, + 289, 290, 291, -1, -1, 294, 295, -1, 297, -1, + 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, + 309, -1, 311, 312, 313, 314, 315, 316, 317, 318, + 319, -1, 321, 322, 323, 324, 325, 326, -1, 328, + 329, 330, 331, 332, 333, 334, 335, -1, 337, 338, + 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, + 349, -1, 351, 352, -1, 354, 355, 356, 357, 358, + 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, + -1, 370, 371, 372, 373, 374, -1, 376, 377, 378, + 379, 380, -1, 382, 383, 384, 385, -1, 387, 388, + 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, + 399, 400, 401, 402, -1, 404, 405, -1, 407, -1, + 409, 410, 411, 412, 413, -1, 415, 416, -1, -1, + 419, 420, 421, 422, 423, -1, 425, 426, 427, 428, + 429, 430, 431, 432, -1, -1, 435, 436, 437, 438, + 439, -1, -1, 442, 443, 444, 445, 446, 447, 448, + -1, 450, -1, 452, 453, 454, 455, 456, -1, -1, + 459, -1, -1, 462, 463, 464, 465, 466, 467, 468, + 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, + 479, 480, 481, 482, 3, -1, 5, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 21, 22, 23, 24, 25, 26, 27, 28, -1, - 30, 31, 32, -1, -1, -1, -1, -1, -1, -1, - 40, 41, -1, 43, 44, 45, -1, 47, 48, 49, - 50, 51, -1, 53, 54, -1, 56, 57, 58, 59, - 60, 61, -1, -1, 64, 65, 66, 67, 68, -1, - 70, 71, 72, 73, 74, -1, -1, -1, 78, 79, - 80, 81, 82, 83, -1, 85, 86, 87, -1, 89, - 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, - -1, -1, -1, -1, -1, -1, -1, 107, 108, 109, - 110, 111, 112, 113, 114, 115, 116, -1, 118, -1, - 120, 121, 122, 123, 124, 125, -1, 127, 128, 129, - 130, 131, -1, -1, 134, 135, 136, 137, 138, -1, - 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, - 150, 151, 152, 153, 154, 155, 156, 157, 158, -1, - 160, -1, 162, 163, 164, 165, -1, 167, -1, 169, - -1, -1, -1, 173, 174, 175, -1, 177, -1, 179, - -1, 181, 182, 183, -1, 185, 186, 187, 188, 189, - 190, 191, -1, 193, 194, 195, 196, -1, 198, 199, - 200, 201, 202, 203, -1, 205, -1, 207, 208, 209, - 210, 211, 212, 213, 214, -1, 216, -1, 218, -1, - -1, 221, -1, 223, 224, 225, 226, 227, 228, -1, - -1, 231, -1, 233, -1, -1, 236, 237, 238, -1, - -1, 241, 242, 243, 244, 245, 246, 247, 248, 249, - 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, - 260, 261, 262, 263, 264, 265, -1, 267, 268, 269, - 270, 271, -1, 273, 274, -1, 276, -1, 278, 279, - 280, 281, 282, 283, -1, 285, 286, -1, -1, 289, - 290, 291, -1, -1, 294, 295, -1, 297, -1, 299, - 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, - -1, 311, 312, 313, 314, 315, 316, 317, 318, 319, - -1, 321, 322, 323, 324, 325, 326, -1, 328, 329, - 330, 331, 332, 333, 334, 335, -1, 337, 338, 339, - 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, - -1, 351, 352, -1, 354, 355, 356, 357, 358, 359, - 360, 361, 362, 363, 364, 365, 366, 367, 368, -1, - 370, 371, 372, 373, 374, -1, 376, 377, 378, 379, - 380, -1, 382, 383, 384, 385, -1, 387, 388, 389, - 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, - 400, 401, 402, -1, 404, 405, -1, 407, -1, 409, - 410, 411, 412, 413, -1, 415, 416, -1, -1, 419, - 420, 421, 422, 423, -1, 425, 426, 427, 428, 429, - 430, 431, 432, -1, -1, 435, 436, 437, 438, 439, - -1, -1, 442, 443, 444, 445, 446, 447, 448, -1, - 450, -1, 452, 453, 454, 455, 456, -1, -1, 459, - -1, -1, 462, 463, 464, 465, 466, 467, 468, 469, - 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, - 480, 481, 482, 3, -1, -1, -1, -1, -1, -1, + -1, -1, 21, 22, 23, 24, 25, 26, 27, 28, + -1, 30, 31, 32, -1, -1, -1, -1, -1, -1, + -1, 40, 41, -1, 43, 44, 45, -1, 47, 48, + 49, 50, 51, -1, 53, 54, -1, 56, 57, 58, + 59, 60, 61, -1, -1, 64, 65, 66, 67, 68, + -1, 70, 71, 72, 73, 74, -1, -1, -1, 78, + 79, 80, 81, 82, 83, -1, 85, 86, 87, -1, + 89, 90, 91, 92, 93, 94, -1, -1, 97, 98, + 99, -1, -1, -1, -1, -1, -1, -1, 107, 108, + 109, 110, 111, 112, 113, 114, 115, 116, -1, 118, + -1, 120, 121, 122, 123, 124, 125, -1, 127, 128, + 129, 130, 131, -1, -1, 134, 135, 136, 137, 138, + -1, 140, 141, 142, -1, 144, 145, 146, -1, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, + -1, 160, -1, 162, 163, 164, 165, -1, 167, -1, + 169, -1, -1, -1, 173, 174, 175, -1, 177, -1, + 179, -1, 181, 182, 183, -1, 185, 186, 187, 188, + 189, 190, 191, -1, 193, 194, 195, 196, -1, 198, + 199, 200, 201, 202, 203, -1, 205, -1, 207, 208, + 209, 210, 211, 212, 213, 214, -1, 216, -1, 218, + -1, -1, 221, -1, 223, 224, 225, 226, 227, 228, + -1, -1, 231, -1, 233, -1, -1, 236, 237, 238, + -1, -1, 241, 242, 243, 244, 245, 246, 247, 248, + 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, + 259, 260, 261, 262, 263, 264, 265, -1, 267, 268, + 269, 270, 271, -1, 273, 274, -1, 276, -1, 278, + 279, 280, 281, 282, 283, -1, 285, 286, -1, -1, + 289, 290, 291, -1, -1, 294, 295, -1, 297, -1, + 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, + 309, -1, 311, 312, 313, 314, 315, 316, 317, 318, + 319, -1, 321, 322, 323, 324, 325, 326, -1, 328, + 329, 330, 331, 332, 333, 334, 335, -1, 337, 338, + 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, + 349, -1, 351, 352, -1, 354, 355, 356, 357, 358, + 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, + -1, 370, 371, 372, 373, 374, -1, 376, 377, 378, + 379, 380, -1, 382, 383, 384, 385, -1, 387, 388, + 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, + 399, 400, 401, 402, -1, 404, 405, -1, 407, -1, + 409, 410, 411, 412, 413, -1, 415, 416, -1, -1, + 419, 420, 421, 422, 423, -1, 425, 426, 427, 428, + 429, 430, 431, 432, -1, -1, 435, 436, 437, 438, + 439, -1, -1, 442, 443, 444, 445, 446, 447, 448, + -1, 450, -1, 452, 453, 454, 455, 456, -1, -1, + 459, -1, -1, 462, 463, 464, 465, 466, 467, 468, + 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, + 479, 480, 481, 482, 3, -1, 5, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 21, 22, 23, 24, 25, 26, 27, 28, -1, - 30, 31, 32, -1, -1, -1, -1, -1, -1, -1, - 40, 41, -1, 43, 44, 45, -1, 47, 48, 49, - 50, 51, -1, 53, 54, -1, 56, 57, 58, 59, - 60, 61, -1, -1, 64, 65, 66, 67, 68, -1, - 70, 71, 72, 73, 74, -1, -1, -1, 78, 79, - 80, 81, 82, 83, -1, 85, 86, 87, -1, 89, - 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, - -1, -1, -1, -1, -1, -1, -1, 107, 108, 109, - 110, 111, 112, 113, 114, 115, 116, -1, 118, -1, - 120, 121, 122, 123, 124, 125, -1, 127, 128, 129, - 130, 131, -1, -1, 134, 135, 136, 137, 138, -1, - 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, - 150, 151, 152, 153, 154, 155, 156, 157, 158, -1, - 160, -1, 162, 163, 164, 165, -1, 167, -1, 169, - -1, -1, -1, 173, 174, 175, -1, 177, -1, 179, - -1, 181, 182, 183, -1, 185, 186, 187, 188, 189, - 190, 191, -1, 193, 194, 195, 196, -1, 198, 199, - 200, 201, 202, 203, -1, 205, -1, 207, 208, 209, - 210, 211, 212, 213, 214, -1, 216, -1, 218, -1, - -1, 221, -1, 223, 224, 225, 226, 227, 228, -1, - -1, 231, -1, 233, -1, -1, 236, 237, 238, -1, - -1, 241, 242, 243, 244, 245, 246, 247, 248, 249, - 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, - 260, 261, 262, 263, 264, 265, -1, 267, 268, 269, - 270, 271, -1, 273, 274, -1, 276, -1, 278, 279, - 280, 281, 282, 283, -1, 285, 286, -1, -1, 289, - 290, 291, -1, -1, 294, 295, -1, 297, -1, 299, - 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, - -1, 311, 312, 313, 314, 315, 316, 317, 318, 319, - -1, 321, 322, 323, 324, 325, 326, -1, 328, 329, - 330, 331, 332, 333, 334, 335, -1, 337, 338, 339, - 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, - -1, 351, 352, -1, 354, 355, 356, 357, 358, 359, - 360, 361, 362, 363, 364, 365, 366, 367, 368, -1, - 370, 371, 372, 373, 374, -1, 376, 377, 378, 379, - 380, -1, 382, 383, 384, 385, -1, 387, 388, 389, - 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, - 400, 401, 402, -1, 404, 405, -1, 407, -1, 409, - 410, 411, 412, 413, -1, 415, 416, -1, -1, 419, - 420, 421, 422, 423, -1, 425, 426, 427, 428, 429, - 430, 431, 432, -1, -1, 435, 436, 437, 438, 439, - -1, -1, 442, 443, 444, 445, 446, 447, 448, -1, - 450, -1, 452, 453, 454, 455, 456, -1, -1, 459, - -1, -1, 462, 463, 464, 465, 466, 467, 468, 469, - 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, - 480, 481, 482, 3, -1, -1, -1, -1, -1, -1, + -1, -1, 21, 22, 23, 24, 25, 26, 27, 28, + -1, 30, 31, 32, -1, -1, -1, -1, -1, -1, + -1, 40, 41, -1, 43, 44, 45, -1, 47, 48, + 49, 50, 51, -1, 53, 54, -1, 56, 57, 58, + 59, 60, 61, -1, -1, 64, 65, 66, 67, 68, + -1, 70, 71, 72, 73, 74, -1, -1, -1, 78, + 79, 80, 81, 82, 83, -1, 85, 86, 87, -1, + 89, 90, 91, 92, 93, 94, -1, -1, 97, 98, + 99, -1, -1, -1, -1, -1, -1, -1, 107, 108, + 109, 110, 111, 112, 113, 114, 115, 116, -1, 118, + -1, 120, 121, 122, 123, 124, 125, -1, 127, 128, + 129, 130, 131, -1, -1, 134, 135, 136, 137, 138, + -1, 140, 141, 142, -1, 144, 145, 146, -1, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, + -1, 160, -1, 162, 163, 164, 165, -1, 167, -1, + 169, -1, -1, -1, 173, 174, 175, -1, 177, -1, + 179, -1, 181, 182, 183, -1, 185, 186, 187, 188, + 189, 190, 191, -1, 193, 194, 195, 196, -1, 198, + 199, 200, 201, 202, 203, -1, 205, -1, 207, 208, + 209, 210, 211, 212, 213, 214, -1, 216, -1, 218, + -1, -1, 221, -1, 223, 224, 225, 226, 227, 228, + -1, -1, 231, -1, 233, -1, -1, 236, 237, 238, + -1, -1, 241, 242, 243, 244, 245, 246, 247, 248, + 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, + 259, 260, 261, 262, 263, 264, 265, -1, 267, 268, + 269, 270, 271, -1, 273, 274, -1, 276, -1, 278, + 279, 280, 281, 282, 283, -1, 285, 286, -1, -1, + 289, 290, 291, -1, -1, 294, 295, -1, 297, -1, + 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, + 309, -1, 311, 312, 313, 314, 315, 316, 317, 318, + 319, -1, 321, 322, 323, 324, 325, 326, -1, 328, + 329, 330, 331, 332, 333, 334, 335, -1, 337, 338, + 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, + 349, -1, 351, 352, -1, 354, 355, 356, 357, 358, + 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, + -1, 370, 371, 372, 373, 374, -1, 376, 377, 378, + 379, 380, -1, 382, 383, 384, 385, -1, 387, 388, + 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, + 399, 400, 401, 402, -1, 404, 405, -1, 407, -1, + 409, 410, 411, 412, 413, -1, 415, 416, -1, -1, + 419, 420, 421, 422, 423, -1, 425, 426, 427, 428, + 429, 430, 431, 432, -1, -1, 435, 436, 437, 438, + 439, -1, -1, 442, 443, 444, 445, 446, 447, 448, + -1, 450, -1, 452, 453, 454, 455, 456, -1, -1, + 459, -1, -1, 462, 463, 464, 465, 466, 467, 468, + 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, + 479, 480, 481, 482, 3, -1, 5, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 21, 22, 23, 24, 25, 26, 27, 28, -1, - 30, 31, 32, -1, -1, -1, -1, -1, -1, -1, - 40, 41, -1, 43, 44, 45, -1, 47, 48, 49, - 50, 51, -1, 53, 54, -1, 56, 57, 58, 59, - 60, 61, -1, -1, 64, 65, 66, 67, 68, -1, - 70, 71, 72, 73, 74, -1, -1, -1, 78, 79, - 80, 81, 82, 83, -1, 85, 86, 87, -1, 89, - 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, - -1, -1, -1, -1, -1, -1, -1, 107, 108, 109, - 110, 111, 112, 113, 114, 115, 116, -1, 118, -1, - 120, 121, 122, 123, 124, 125, -1, 127, 128, 129, - 130, 131, -1, -1, 134, 135, 136, 137, 138, -1, - 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, - 150, 151, 152, 153, 154, 155, 156, 157, 158, -1, - 160, -1, 162, 163, 164, 165, -1, 167, -1, 169, - -1, -1, -1, 173, 174, 175, -1, 177, -1, 179, - -1, 181, 182, 183, -1, 185, 186, 187, 188, 189, - 190, 191, -1, 193, 194, 195, 196, -1, 198, 199, - 200, 201, 202, 203, -1, 205, -1, 207, 208, 209, - 210, 211, 212, 213, 214, -1, 216, -1, 218, -1, - -1, 221, -1, 223, 224, 225, 226, 227, 228, -1, - -1, 231, -1, 233, -1, -1, 236, 237, 238, -1, - -1, 241, 242, 243, 244, 245, 246, 247, 248, 249, - 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, - 260, 261, 262, 263, 264, 265, -1, 267, 268, 269, - 270, 271, -1, 273, 274, -1, 276, -1, 278, 279, - 280, 281, 282, 283, -1, 285, 286, -1, -1, 289, - 290, 291, -1, -1, 294, 295, -1, 297, -1, 299, - 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, - -1, 311, 312, 313, 314, 315, 316, 317, 318, 319, - -1, 321, 322, 323, 324, 325, 326, -1, 328, 329, - 330, 331, 332, 333, 334, 335, -1, 337, 338, 339, - 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, - -1, 351, 352, -1, 354, 355, 356, 357, 358, 359, - 360, 361, 362, 363, 364, 365, 366, 367, 368, -1, - 370, 371, 372, 373, 374, -1, 376, 377, 378, 379, - 380, -1, 382, 383, 384, 385, -1, 387, 388, 389, - 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, - 400, 401, 402, -1, 404, 405, -1, 407, -1, 409, - 410, 411, 412, 413, -1, 415, 416, -1, -1, 419, - 420, 421, 422, 423, -1, 425, 426, 427, 428, 429, - 430, 431, 432, -1, -1, 435, 436, 437, 438, 439, - -1, -1, 442, 443, 444, 445, 446, 447, 448, -1, - 450, -1, 452, 453, 454, 455, 456, -1, -1, 459, - -1, -1, 462, 463, 464, 465, 466, 467, 468, 469, - 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, - 480, 481, 482, 3, -1, -1, -1, -1, -1, -1, + -1, -1, 21, 22, 23, 24, 25, 26, 27, 28, + -1, 30, 31, 32, -1, -1, -1, -1, -1, -1, + -1, 40, 41, -1, 43, 44, 45, -1, 47, 48, + 49, 50, 51, -1, 53, 54, -1, 56, 57, 58, + 59, 60, 61, -1, -1, 64, 65, 66, 67, 68, + -1, 70, 71, 72, 73, 74, -1, -1, -1, 78, + 79, 80, 81, 82, 83, -1, 85, 86, 87, -1, + 89, 90, 91, 92, 93, 94, -1, -1, 97, 98, + 99, -1, -1, -1, -1, -1, -1, -1, 107, 108, + 109, 110, 111, 112, 113, 114, 115, 116, -1, 118, + -1, 120, 121, 122, 123, 124, 125, -1, 127, 128, + 129, 130, 131, -1, -1, 134, 135, 136, 137, 138, + -1, 140, 141, 142, -1, 144, 145, 146, -1, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, + -1, 160, -1, 162, 163, 164, 165, -1, 167, -1, + 169, -1, -1, -1, 173, 174, 175, -1, 177, -1, + 179, -1, 181, 182, 183, -1, 185, 186, 187, 188, + 189, 190, 191, -1, 193, 194, 195, 196, -1, 198, + 199, 200, 201, 202, 203, -1, 205, -1, 207, 208, + 209, 210, 211, 212, 213, 214, -1, 216, -1, 218, + -1, -1, 221, -1, 223, 224, 225, 226, 227, 228, + -1, -1, 231, -1, 233, -1, -1, 236, 237, 238, + -1, -1, 241, 242, 243, 244, 245, 246, 247, 248, + 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, + 259, 260, 261, 262, 263, 264, 265, -1, 267, 268, + 269, 270, 271, -1, 273, 274, -1, 276, -1, 278, + 279, 280, 281, 282, 283, -1, 285, 286, -1, -1, + 289, 290, 291, -1, -1, 294, 295, -1, 297, -1, + 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, + 309, -1, 311, 312, 313, 314, 315, 316, 317, 318, + 319, -1, 321, 322, 323, 324, 325, 326, -1, 328, + 329, 330, 331, 332, 333, 334, 335, -1, 337, 338, + 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, + 349, -1, 351, 352, -1, 354, 355, 356, 357, 358, + 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, + -1, 370, 371, 372, 373, 374, -1, 376, 377, 378, + 379, 380, -1, 382, 383, 384, 385, -1, 387, 388, + 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, + 399, 400, 401, 402, -1, 404, 405, -1, 407, -1, + 409, 410, 411, 412, 413, -1, 415, 416, -1, -1, + 419, 420, 421, 422, 423, -1, 425, 426, 427, 428, + 429, 430, 431, 432, -1, -1, 435, 436, 437, 438, + 439, -1, -1, 442, 443, 444, 445, 446, 447, 448, + -1, 450, -1, 452, 453, 454, 455, 456, -1, -1, + 459, -1, -1, 462, 463, 464, 465, 466, 467, 468, + 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, + 479, 480, 481, 482, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 21, 22, 23, 24, 25, 26, 27, 28, -1, - 30, 31, 32, -1, -1, -1, -1, -1, 38, -1, - 40, 41, -1, 43, 44, 45, -1, 47, 48, 49, - 50, 51, -1, 53, 54, -1, 56, 57, 58, 59, - 60, 61, -1, -1, 64, 65, 66, 67, 68, -1, - 70, 71, 72, 73, 74, -1, -1, -1, 78, 79, - 80, 81, 82, 83, -1, 85, 86, 87, -1, 89, - 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, - -1, -1, -1, -1, -1, -1, -1, 107, 108, 109, - 110, 111, 112, 113, 114, 115, 116, -1, 118, -1, - 120, 121, 122, 123, 124, 125, -1, 127, 128, 129, - 130, 131, -1, -1, 134, 135, 136, 137, 138, -1, - 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, - 150, 151, 152, 153, 154, 155, 156, 157, 158, -1, - 160, -1, 162, 163, 164, 165, -1, 167, -1, 169, - -1, -1, -1, 173, 174, 175, -1, 177, -1, 179, - -1, 181, 182, 183, -1, 185, 186, 187, 188, 189, - 190, 191, -1, 193, 194, 195, 196, -1, 198, 199, - 200, 201, 202, 203, -1, 205, -1, 207, 208, 209, - 210, 211, 212, 213, 214, -1, 216, -1, 218, -1, - -1, 221, -1, 223, 224, 225, 226, 227, 228, -1, - -1, 231, -1, 233, -1, -1, 236, 237, 238, -1, - -1, 241, 242, 243, 244, 245, 246, 247, 248, 249, - 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, - 260, 261, 262, 263, 264, 265, -1, 267, 268, 269, - 270, 271, -1, 273, 274, -1, 276, -1, 278, 279, - 280, 281, 282, 283, -1, 285, 286, -1, -1, 289, - 290, 291, -1, -1, 294, 295, -1, 297, -1, 299, - 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, - -1, 311, 312, 313, 314, 315, 316, 317, 318, 319, - -1, 321, 322, 323, 324, 325, 326, -1, 328, 329, - 330, 331, 332, 333, 334, 335, -1, 337, 338, 339, - 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, - -1, 351, 352, -1, 354, 355, 356, 357, 358, 359, - 360, 361, 362, 363, 364, 365, 366, 367, 368, -1, - 370, 371, 372, 373, 374, -1, -1, 377, 378, 379, - 380, -1, 382, 383, 384, 385, -1, 387, 388, 389, - 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, - 400, 401, 402, -1, 404, 405, -1, 407, -1, 409, - 410, 411, 412, 413, -1, 415, 416, -1, -1, 419, - 420, 421, 422, 423, -1, 425, 426, 427, 428, 429, - 430, 431, 432, -1, -1, 435, 436, 437, 438, 439, - -1, -1, 442, 443, 444, 445, 446, 447, 448, -1, - 450, -1, 452, 453, 454, 455, 456, -1, -1, 459, - -1, -1, 462, 463, 464, 465, 466, 467, 468, 469, - 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, - 480, 481, 482, 3, -1, -1, -1, -1, -1, -1, + -1, -1, 21, 22, 23, 24, 25, 26, 27, 28, + -1, 30, 31, 32, -1, -1, -1, -1, -1, -1, + -1, 40, 41, -1, 43, 44, 45, 46, 47, 48, + 49, -1, 51, 52, 53, 54, -1, 56, 57, 58, + 59, 60, 61, -1, -1, 64, 65, 66, 67, 68, + -1, 70, 71, 72, 73, -1, -1, 76, -1, 78, + 79, 80, 81, 82, 83, 84, 85, 86, 87, -1, + 89, 90, 91, 92, 93, 94, -1, 96, 97, 98, + 99, 100, 101, 102, 103, -1, -1, 106, 107, 108, + 109, 110, 111, 112, 113, 114, 115, 116, -1, 118, + -1, 120, 121, 122, 123, 124, 125, -1, 127, 128, + 129, 130, 131, -1, -1, 134, 135, 136, 137, 138, + -1, 140, 141, 142, -1, 144, 145, 146, -1, 148, + 149, 150, 151, -1, 153, 154, 155, 156, 157, -1, + -1, 160, -1, 162, 163, 164, 165, -1, 167, -1, + 169, 170, -1, 172, 173, 174, -1, 176, 177, -1, + 179, -1, -1, -1, 183, -1, 185, 186, 187, 188, + 189, 190, 191, 192, 193, 194, 195, 196, -1, 198, + 199, 200, 201, 202, 203, -1, 205, 206, -1, 208, + 209, 210, 211, 212, 213, 214, -1, 216, -1, 218, + 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, + -1, -1, 231, 232, 233, 234, -1, 236, 237, 238, + -1, -1, 241, 242, 243, 244, 245, 246, 247, 248, + 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, + 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, + 269, 270, -1, -1, 273, 274, 275, 276, -1, -1, + 279, 280, 281, 282, 283, -1, 285, 286, -1, -1, + 289, 290, 291, -1, -1, 294, -1, 296, 297, 298, + -1, 300, 301, 302, 303, 304, 305, 306, 307, 308, + 309, -1, 311, 312, -1, 314, 315, -1, 317, 318, + 319, -1, 321, 322, 323, 324, 325, 326, -1, 328, + 329, 330, 331, 332, 333, 334, 335, -1, 337, 338, + 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, + 349, -1, 351, 352, 353, 354, 355, 356, 357, 358, + 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, + -1, 370, 371, 372, 373, 374, 375, 376, 377, 378, + 379, 380, 381, 382, 383, 384, 385, -1, 387, 388, + 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, + 399, 400, -1, 402, -1, 404, 405, -1, 407, 408, + 409, 410, 411, 412, 413, -1, 415, 416, -1, -1, + 419, 420, -1, 422, -1, -1, 425, 426, 427, 428, + 429, 430, 431, 432, -1, -1, 435, 436, 437, 438, + 439, 440, -1, 442, 443, 444, 445, 446, -1, 448, + -1, 450, 451, 452, 453, 454, 455, 456, -1, -1, + 459, -1, -1, 462, 463, 464, 465, 466, 467, 3, + -1, 5, -1, -1, -1, -1, -1, -1, -1, -1, + 479, 480, 481, 482, -1, -1, -1, 21, 22, 23, + 24, 25, 26, 27, 28, -1, 30, 31, 32, -1, + -1, -1, -1, -1, -1, -1, 40, 41, -1, 43, + 44, 45, -1, 47, 48, 49, 50, 51, -1, 53, + 54, -1, 56, 57, 58, 59, 60, 61, -1, -1, + 64, 65, 66, 67, 68, -1, 70, 71, 72, 73, + 74, -1, -1, -1, 78, 79, 80, 81, 82, 83, + -1, 85, 86, 87, -1, 89, 90, 91, 92, 93, + 94, -1, -1, 97, 98, 99, -1, -1, -1, -1, + -1, -1, -1, 107, 108, 109, 110, 111, 112, 113, + 114, 115, 116, -1, 118, -1, 120, 121, 122, 123, + 124, 125, -1, 127, 128, 129, 130, 131, -1, -1, + 134, 135, 136, 137, 138, -1, 140, 141, 142, -1, + 144, 145, 146, -1, 148, 149, 150, 151, 152, 153, + 154, 155, 156, 157, 158, -1, 160, -1, 162, 163, + 164, 165, -1, 167, -1, 169, -1, -1, -1, 173, + 174, 175, -1, 177, -1, 179, -1, 181, 182, 183, + -1, 185, 186, 187, 188, 189, 190, 191, -1, 193, + 194, 195, 196, -1, 198, 199, 200, 201, 202, 203, + -1, 205, -1, 207, 208, 209, 210, 211, 212, 213, + 214, -1, 216, -1, 218, -1, -1, 221, -1, 223, + 224, 225, 226, 227, 228, -1, -1, 231, -1, 233, + -1, -1, 236, 237, 238, -1, -1, 241, 242, 243, + 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, + 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, + 264, 265, -1, 267, 268, 269, 270, 271, -1, 273, + 274, -1, 276, -1, 278, 279, 280, 281, 282, 283, + -1, 285, 286, -1, -1, 289, 290, 291, -1, -1, + 294, 295, -1, 297, -1, 299, 300, 301, 302, 303, + 304, 305, 306, 307, 308, 309, -1, 311, 312, 313, + 314, 315, 316, 317, 318, 319, -1, 321, 322, 323, + 324, 325, 326, -1, 328, 329, 330, 331, 332, 333, + 334, 335, -1, 337, 338, 339, 340, 341, 342, 343, + 344, 345, 346, 347, 348, 349, -1, 351, 352, -1, + 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, + 364, 365, 366, 367, 368, -1, 370, 371, 372, 373, + 374, -1, 376, 377, 378, 379, 380, -1, 382, 383, + 384, 385, -1, 387, 388, 389, 390, 391, 392, 393, + 394, 395, 396, 397, 398, 399, 400, 401, 402, -1, + 404, 405, -1, 407, -1, 409, 410, 411, 412, 413, + -1, 415, 416, -1, -1, 419, 420, 421, 422, 423, + -1, 425, 426, 427, 428, 429, 430, 431, 432, -1, + -1, 435, 436, 437, 438, 439, -1, -1, 442, 443, + 444, 445, 446, 447, 448, -1, 450, -1, 452, 453, + 454, 455, 456, -1, -1, 459, -1, -1, 462, 463, + 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, + 474, 475, 476, 477, 478, 479, 480, 481, 482, 3, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 21, 22, 23, + 24, 25, 26, 27, 28, -1, 30, 31, 32, -1, + -1, -1, -1, -1, 38, -1, 40, 41, -1, 43, + 44, 45, -1, 47, 48, 49, 50, 51, -1, 53, + 54, -1, 56, 57, 58, 59, 60, 61, -1, -1, + 64, 65, 66, 67, 68, -1, 70, 71, 72, 73, + 74, -1, -1, -1, 78, 79, 80, 81, 82, 83, + -1, 85, 86, 87, -1, 89, 90, 91, 92, 93, + 94, -1, -1, 97, 98, 99, -1, -1, -1, -1, + -1, -1, -1, 107, 108, 109, 110, 111, 112, 113, + 114, 115, 116, -1, 118, -1, 120, 121, 122, 123, + 124, 125, -1, 127, 128, 129, 130, 131, -1, -1, + 134, 135, 136, 137, 138, -1, 140, 141, 142, -1, + 144, 145, 146, -1, 148, 149, 150, 151, 152, 153, + 154, 155, 156, 157, 158, -1, 160, -1, 162, 163, + 164, 165, -1, 167, -1, 169, -1, -1, -1, 173, + 174, 175, -1, 177, -1, 179, -1, 181, 182, 183, + -1, 185, 186, 187, 188, 189, 190, 191, -1, 193, + 194, 195, 196, -1, 198, 199, 200, 201, 202, 203, + -1, 205, -1, 207, 208, 209, 210, 211, 212, 213, + 214, -1, 216, -1, 218, -1, -1, 221, -1, 223, + 224, 225, 226, 227, 228, -1, -1, 231, -1, 233, + -1, -1, 236, 237, 238, -1, -1, 241, 242, 243, + 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, + 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, + 264, 265, -1, 267, 268, 269, 270, 271, -1, 273, + 274, -1, 276, -1, 278, 279, 280, 281, 282, 283, + -1, 285, 286, -1, -1, 289, 290, 291, -1, -1, + 294, 295, -1, 297, -1, 299, 300, 301, 302, 303, + 304, 305, 306, 307, 308, 309, -1, 311, 312, 313, + 314, 315, 316, 317, 318, 319, -1, 321, 322, 323, + 324, 325, 326, -1, 328, 329, 330, 331, 332, 333, + 334, 335, -1, 337, 338, 339, 340, 341, 342, 343, + 344, 345, 346, 347, 348, 349, -1, 351, 352, -1, + 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, + 364, 365, 366, 367, 368, -1, 370, 371, 372, 373, + 374, -1, 376, 377, 378, 379, 380, -1, 382, 383, + 384, 385, -1, 387, 388, 389, 390, 391, 392, 393, + 394, 395, 396, 397, 398, 399, 400, 401, 402, -1, + 404, 405, -1, 407, -1, 409, 410, 411, 412, 413, + -1, 415, 416, -1, -1, 419, 420, 421, 422, 423, + -1, 425, 426, 427, 428, 429, 430, 431, 432, -1, + -1, 435, 436, 437, 438, 439, -1, -1, 442, 443, + 444, 445, 446, 447, 448, -1, 450, -1, 452, 453, + 454, 455, 456, -1, -1, 459, -1, -1, 462, 463, + 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, + 474, 475, 476, 477, 478, 479, 480, 481, 482, 3, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 21, 22, 23, + 24, 25, 26, 27, 28, -1, 30, 31, 32, -1, + -1, -1, -1, -1, 38, -1, 40, 41, -1, 43, + 44, 45, -1, 47, 48, 49, 50, 51, -1, 53, + 54, -1, 56, 57, 58, 59, 60, 61, -1, -1, + 64, 65, 66, 67, 68, -1, 70, 71, 72, 73, + 74, -1, -1, -1, 78, 79, 80, 81, 82, 83, + -1, 85, 86, 87, -1, 89, 90, 91, 92, 93, + 94, -1, -1, 97, 98, 99, -1, -1, -1, -1, + -1, -1, -1, 107, 108, 109, 110, 111, 112, 113, + 114, 115, 116, -1, 118, -1, 120, 121, 122, 123, + 124, 125, -1, 127, 128, 129, 130, 131, -1, -1, + 134, 135, 136, 137, 138, -1, 140, 141, 142, -1, + 144, 145, 146, -1, 148, 149, 150, 151, 152, 153, + 154, 155, 156, 157, 158, -1, 160, -1, 162, 163, + 164, 165, -1, 167, -1, 169, -1, -1, -1, 173, + 174, 175, -1, 177, -1, 179, -1, 181, 182, 183, + -1, 185, 186, 187, 188, 189, 190, 191, -1, 193, + 194, 195, 196, -1, 198, 199, 200, 201, 202, 203, + -1, 205, -1, 207, 208, 209, 210, 211, 212, 213, + 214, -1, 216, -1, 218, -1, -1, 221, -1, 223, + 224, 225, 226, 227, 228, -1, -1, 231, -1, 233, + -1, -1, 236, 237, 238, -1, -1, 241, 242, 243, + 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, + 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, + 264, 265, -1, 267, 268, 269, 270, 271, -1, 273, + 274, -1, 276, -1, 278, 279, 280, 281, 282, 283, + -1, 285, 286, -1, -1, 289, 290, 291, -1, -1, + 294, 295, -1, 297, -1, 299, 300, 301, 302, 303, + 304, 305, 306, 307, 308, 309, -1, 311, 312, 313, + 314, 315, 316, 317, 318, 319, -1, 321, 322, 323, + 324, 325, 326, -1, 328, 329, 330, 331, 332, 333, + 334, 335, -1, 337, 338, 339, 340, 341, 342, 343, + 344, 345, 346, 347, 348, 349, -1, 351, 352, -1, + 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, + 364, 365, 366, 367, 368, -1, 370, 371, 372, 373, + 374, -1, 376, 377, 378, 379, 380, -1, 382, 383, + 384, 385, -1, 387, 388, 389, 390, 391, 392, 393, + 394, 395, 396, 397, 398, 399, 400, 401, 402, -1, + 404, 405, -1, 407, -1, 409, 410, 411, 412, 413, + -1, 415, 416, -1, -1, 419, 420, 421, 422, 423, + -1, 425, 426, 427, 428, 429, 430, 431, 432, -1, + -1, 435, 436, 437, 438, 439, -1, -1, 442, 443, + 444, 445, 446, 447, 448, -1, 450, -1, 452, 453, + 454, 455, 456, -1, -1, 459, -1, -1, 462, 463, + 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, + 474, 475, 476, 477, 478, 479, 480, 481, 482, 3, + -1, 5, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 21, 22, 23, + 24, 25, 26, 27, 28, -1, 30, 31, 32, -1, + -1, -1, -1, -1, -1, -1, 40, 41, -1, 43, + 44, 45, -1, 47, 48, 49, 50, 51, -1, 53, + 54, -1, 56, 57, 58, 59, 60, 61, -1, -1, + 64, 65, 66, 67, 68, -1, 70, 71, 72, 73, + 74, -1, -1, -1, 78, 79, 80, 81, 82, 83, + -1, 85, 86, 87, -1, 89, 90, 91, 92, 93, + 94, -1, -1, 97, 98, 99, -1, -1, -1, -1, + -1, -1, -1, 107, 108, 109, 110, 111, 112, 113, + 114, 115, 116, -1, 118, -1, 120, 121, 122, 123, + 124, 125, -1, 127, 128, 129, 130, 131, -1, -1, + 134, 135, 136, 137, 138, -1, 140, 141, 142, -1, + 144, 145, 146, -1, 148, 149, 150, 151, 152, 153, + 154, 155, 156, 157, 158, -1, 160, -1, 162, 163, + 164, 165, -1, 167, -1, 169, -1, -1, -1, 173, + 174, 175, -1, 177, -1, 179, -1, 181, 182, 183, + -1, 185, 186, 187, 188, 189, 190, 191, -1, 193, + 194, 195, 196, -1, 198, 199, 200, 201, 202, 203, + -1, 205, -1, 207, 208, 209, 210, 211, 212, 213, + 214, -1, 216, -1, 218, -1, -1, 221, -1, 223, + 224, 225, 226, 227, 228, -1, -1, 231, -1, 233, + -1, -1, 236, 237, 238, -1, -1, 241, 242, 243, + 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, + 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, + 264, 265, -1, 267, 268, 269, 270, 271, -1, 273, + 274, -1, 276, -1, 278, 279, 280, 281, 282, 283, + -1, 285, 286, -1, -1, 289, 290, 291, -1, -1, + 294, 295, -1, 297, -1, 299, 300, 301, 302, 303, + 304, 305, 306, 307, 308, 309, -1, 311, 312, 313, + 314, 315, 316, 317, 318, 319, -1, 321, 322, 323, + 324, 325, 326, -1, 328, 329, 330, 331, 332, 333, + 334, 335, -1, 337, 338, 339, 340, 341, 342, 343, + 344, 345, 346, 347, 348, 349, -1, 351, 352, -1, + 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, + 364, 365, 366, 367, 368, -1, 370, 371, 372, 373, + 374, -1, 376, 377, 378, 379, 380, -1, 382, 383, + 384, 385, -1, 387, 388, 389, 390, 391, 392, 393, + 394, 395, 396, 397, 398, 399, 400, 401, 402, -1, + 404, 405, -1, 407, -1, 409, 410, 411, 412, 413, + -1, 415, 416, -1, -1, 419, 420, 421, 422, 423, + -1, 425, 426, 427, 428, 429, 430, 431, 432, -1, + -1, 435, 436, 437, 438, 439, -1, -1, 442, 443, + 444, 445, 446, 447, 448, -1, 450, -1, 452, 453, + 454, 455, 456, -1, -1, 459, -1, -1, 462, 463, + 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, + 474, 475, 476, 477, 478, 479, 480, 481, 482, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 21, 22, 23, 24, 25, 26, 27, 28, -1, - 30, 31, 32, -1, -1, -1, -1, -1, -1, -1, - 40, 41, -1, 43, 44, 45, -1, 47, 48, 49, - 50, 51, -1, 53, 54, -1, 56, 57, 58, 59, - 60, 61, -1, -1, 64, 65, 66, 67, 68, -1, - 70, 71, 72, 73, 74, -1, -1, -1, 78, 79, - 80, 81, 82, 83, -1, 85, 86, 87, -1, 89, - 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, - -1, -1, -1, -1, -1, -1, -1, 107, 108, 109, - 110, 111, 112, 113, 114, 115, 116, -1, 118, -1, - 120, 121, 122, 123, 124, 125, -1, 127, 128, 129, - 130, 131, -1, -1, 134, 135, 136, 137, 138, -1, - 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, - 150, 151, 152, 153, 154, 155, 156, 157, 158, -1, - 160, -1, 162, 163, 164, 165, -1, 167, -1, 169, - -1, -1, -1, 173, 174, 175, -1, 177, -1, 179, - -1, 181, 182, 183, -1, 185, 186, 187, 188, 189, - 190, 191, -1, 193, 194, 195, 196, -1, 198, 199, - 200, 201, 202, 203, -1, 205, -1, 207, 208, 209, - 210, 211, 212, 213, 214, -1, 216, -1, 218, -1, - -1, 221, -1, 223, 224, 225, 226, 227, 228, -1, - -1, 231, -1, 233, -1, -1, 236, 237, 238, -1, - -1, 241, 242, 243, 244, 245, 246, 247, 248, 249, - 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, - 260, 261, 262, 263, 264, 265, -1, 267, 268, 269, - 270, 271, -1, 273, 274, -1, 276, -1, 278, 279, - 280, 281, 282, 283, -1, 285, 286, -1, -1, 289, - 290, 291, -1, -1, 294, 295, -1, 297, -1, 299, - 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, - -1, 311, 312, 313, 314, 315, 316, 317, 318, 319, - -1, 321, 322, 323, 324, 325, 326, -1, 328, 329, - 330, 331, 332, 333, 334, 335, -1, 337, 338, 339, - 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, - -1, 351, 352, -1, 354, 355, 356, 357, 358, 359, - 360, 361, 362, 363, 364, 365, 366, 367, 368, -1, - 370, 371, 372, 373, 374, -1, 376, 377, 378, 379, - 380, -1, 382, 383, 384, 385, -1, 387, 388, 389, - 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, - 400, 401, 402, -1, 404, 405, -1, 407, -1, 409, - 410, 411, 412, 413, -1, 415, 416, -1, -1, 419, - 420, 421, 422, 423, -1, 425, 426, 427, 428, 429, - 430, 431, 432, -1, -1, 435, 436, 437, 438, 439, - -1, -1, 442, 443, 444, 445, 446, 447, 448, -1, - 450, -1, 452, 453, 454, 455, 456, -1, -1, 459, - -1, -1, 462, 463, 464, 465, 466, 467, 468, 469, - 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, - 480, 481, 482, 3, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 21, 22, 23, + 24, 25, 26, 27, 28, -1, 30, 31, 32, -1, + -1, -1, -1, -1, -1, -1, 40, 41, -1, 43, + 44, 45, -1, 47, 48, 49, 50, 51, -1, 53, + 54, -1, 56, 57, 58, 59, 60, 61, -1, -1, + 64, 65, 66, 67, 68, -1, 70, 71, 72, 73, + 74, -1, -1, -1, 78, 79, 80, 81, 82, 83, + -1, 85, 86, 87, -1, 89, 90, 91, 92, 93, + 94, -1, -1, 97, 98, 99, -1, -1, -1, -1, + -1, -1, -1, 107, 108, 109, 110, 111, 112, 113, + 114, 115, 116, -1, 118, -1, 120, 121, 122, 123, + 124, 125, -1, 127, 128, 129, 130, 131, -1, -1, + 134, 135, 136, 137, 138, -1, 140, 141, 142, -1, + 144, 145, 146, -1, 148, 149, 150, 151, 152, 153, + 154, 155, 156, 157, 158, -1, 160, -1, 162, 163, + 164, 165, -1, 167, -1, 169, -1, -1, -1, 173, + 174, 175, -1, 177, -1, 179, -1, 181, 182, 183, + -1, 185, 186, 187, 188, 189, 190, 191, -1, 193, + 194, 195, 196, -1, 198, 199, 200, 201, 202, 203, + -1, 205, -1, 207, 208, 209, 210, 211, 212, 213, + 214, -1, 216, -1, 218, -1, -1, 221, -1, 223, + 224, 225, 226, 227, 228, -1, -1, 231, -1, 233, + -1, -1, 236, 237, 238, -1, -1, 241, 242, 243, + 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, + 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, + 264, 265, -1, 267, 268, 269, 270, 271, -1, 273, + 274, -1, 276, -1, 278, 279, 280, 281, 282, 283, + -1, 285, 286, -1, -1, 289, 290, 291, -1, -1, + 294, 295, -1, 297, -1, 299, 300, 301, 302, 303, + 304, 305, 306, 307, 308, 309, -1, 311, 312, 313, + 314, 315, 316, 317, 318, 319, -1, 321, 322, 323, + 324, 325, 326, -1, 328, 329, 330, 331, 332, 333, + 334, 335, -1, 337, 338, 339, 340, 341, 342, 343, + 344, 345, 346, 347, 348, 349, -1, 351, 352, -1, + 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, + 364, 365, 366, 367, 368, -1, 370, 371, 372, 373, + 374, -1, 376, 377, 378, 379, 380, -1, 382, 383, + 384, 385, -1, 387, 388, 389, 390, 391, 392, 393, + 394, 395, 396, 397, 398, 399, 400, 401, 402, -1, + 404, 405, -1, 407, -1, 409, 410, 411, 412, 413, + -1, 415, 416, -1, -1, 419, 420, 421, 422, 423, + -1, 425, 426, 427, 428, 429, 430, 431, 432, -1, + -1, 435, 436, 437, 438, 439, -1, -1, 442, 443, + 444, 445, 446, 447, 448, -1, 450, -1, 452, 453, + 454, 455, 456, -1, -1, 459, -1, -1, 462, 463, + 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, + 474, 475, 476, 477, 478, 479, 480, 481, 482, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 21, 22, 23, 24, 25, 26, 27, 28, -1, - 30, 31, 32, -1, -1, -1, -1, -1, -1, -1, - 40, 41, -1, 43, 44, 45, -1, 47, 48, 49, - 50, 51, -1, 53, 54, -1, 56, 57, 58, 59, - 60, 61, -1, -1, 64, 65, 66, 67, 68, -1, - 70, 71, 72, 73, 74, -1, -1, -1, 78, 79, - 80, 81, 82, 83, -1, 85, 86, 87, -1, 89, - 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, - -1, -1, -1, -1, -1, -1, -1, 107, 108, 109, - 110, 111, 112, 113, 114, 115, 116, -1, 118, -1, - 120, 121, 122, 123, 124, 125, -1, 127, 128, 129, - 130, 131, -1, -1, 134, 135, 136, 137, 138, -1, - 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, - 150, 151, 152, 153, 154, 155, 156, 157, 158, -1, - 160, -1, 162, 163, 164, 165, -1, 167, -1, 169, - -1, -1, -1, 173, 174, 175, -1, 177, -1, 179, - -1, 181, 182, 183, -1, 185, 186, 187, 188, 189, - 190, 191, -1, 193, 194, 195, 196, -1, 198, 199, - 200, 201, 202, 203, -1, 205, -1, 207, 208, 209, - 210, 211, 212, 213, 214, -1, 216, -1, 218, -1, - -1, 221, -1, 223, 224, 225, 226, 227, 228, -1, - -1, 231, -1, 233, -1, -1, 236, 237, 238, -1, - -1, 241, 242, 243, 244, 245, 246, 247, 248, 249, - 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, - 260, 261, 262, 263, 264, 265, -1, 267, 268, 269, - 270, 271, -1, 273, 274, -1, 276, -1, 278, 279, - 280, 281, 282, 283, -1, 285, 286, -1, -1, 289, - 290, 291, -1, -1, 294, 295, -1, 297, -1, 299, - 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, - -1, 311, 312, 313, 314, 315, 316, 317, 318, 319, - -1, 321, 322, 323, 324, 325, 326, -1, 328, 329, - 330, 331, 332, 333, 334, 335, -1, 337, 338, 339, - 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, - -1, 351, 352, -1, 354, 355, 356, 357, 358, 359, - 360, 361, 362, 363, 364, 365, 366, 367, 368, -1, - 370, 371, 372, 373, 374, -1, 376, 377, 378, 379, - 380, -1, 382, 383, 384, 385, -1, 387, 388, 389, - 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, - 400, 401, 402, -1, 404, 405, -1, 407, -1, 409, - 410, 411, 412, 413, -1, 415, 416, -1, -1, 419, - 420, 421, 422, 423, -1, 425, 426, 427, 428, 429, - 430, 431, 432, -1, -1, 435, 436, 437, 438, 439, - -1, -1, 442, 443, 444, 445, 446, 447, 448, -1, - 450, -1, 452, 453, 454, 455, 456, -1, -1, 459, - -1, -1, 462, 463, 464, 465, 466, 467, 468, 469, - 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, - 480, 481, 482, 3, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 21, 22, 23, + 24, 25, 26, 27, 28, -1, 30, 31, 32, -1, + -1, -1, -1, -1, -1, -1, 40, 41, -1, 43, + 44, 45, -1, 47, 48, 49, 50, 51, -1, 53, + 54, -1, 56, 57, 58, 59, 60, 61, -1, -1, + 64, 65, 66, 67, 68, -1, 70, 71, 72, 73, + 74, -1, -1, -1, 78, 79, 80, 81, 82, 83, + -1, 85, 86, 87, -1, 89, 90, 91, 92, 93, + 94, -1, -1, 97, 98, 99, -1, -1, -1, -1, + -1, -1, -1, 107, 108, 109, 110, 111, 112, 113, + 114, 115, 116, -1, 118, -1, 120, 121, 122, 123, + 124, 125, -1, 127, 128, 129, 130, 131, -1, -1, + 134, 135, 136, 137, 138, -1, 140, 141, 142, -1, + 144, 145, 146, -1, 148, 149, 150, 151, 152, 153, + 154, 155, 156, 157, 158, -1, 160, -1, 162, 163, + 164, 165, -1, 167, -1, 169, -1, -1, -1, 173, + 174, 175, -1, 177, -1, 179, -1, 181, 182, 183, + -1, 185, 186, 187, 188, 189, 190, 191, -1, 193, + 194, 195, 196, -1, 198, 199, 200, 201, 202, 203, + -1, 205, -1, 207, 208, 209, 210, 211, 212, 213, + 214, -1, 216, -1, 218, -1, -1, 221, -1, 223, + 224, 225, 226, 227, 228, -1, -1, 231, -1, 233, + -1, -1, 236, 237, 238, -1, -1, 241, 242, 243, + 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, + 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, + 264, 265, -1, 267, 268, 269, 270, 271, -1, 273, + 274, -1, 276, -1, 278, 279, 280, 281, 282, 283, + -1, 285, 286, -1, -1, 289, 290, 291, -1, -1, + 294, 295, -1, 297, -1, 299, 300, 301, 302, 303, + 304, 305, 306, 307, 308, 309, -1, 311, 312, 313, + 314, 315, 316, 317, 318, 319, -1, 321, 322, 323, + 324, 325, 326, -1, 328, 329, 330, 331, 332, 333, + 334, 335, -1, 337, 338, 339, 340, 341, 342, 343, + 344, 345, 346, 347, 348, 349, -1, 351, 352, -1, + 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, + 364, 365, 366, 367, 368, -1, 370, 371, 372, 373, + 374, -1, 376, 377, 378, 379, 380, -1, 382, 383, + 384, 385, -1, 387, 388, 389, 390, 391, 392, 393, + 394, 395, 396, 397, 398, 399, 400, 401, 402, -1, + 404, 405, -1, 407, -1, 409, 410, 411, 412, 413, + -1, 415, 416, -1, -1, 419, 420, 421, 422, 423, + -1, 425, 426, 427, 428, 429, 430, 431, 432, -1, + -1, 435, 436, 437, 438, 439, -1, -1, 442, 443, + 444, 445, 446, 447, 448, -1, 450, -1, 452, 453, + 454, 455, 456, -1, -1, 459, -1, -1, 462, 463, + 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, + 474, 475, 476, 477, 478, 479, 480, 481, 482, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 21, 22, 23, 24, 25, 26, 27, 28, -1, - 30, 31, 32, -1, -1, -1, -1, -1, -1, -1, - 40, 41, -1, 43, 44, 45, -1, 47, 48, 49, - 50, 51, -1, 53, 54, -1, 56, 57, 58, 59, - 60, 61, -1, -1, 64, 65, 66, 67, 68, -1, - 70, 71, 72, 73, 74, -1, -1, -1, 78, 79, - 80, 81, 82, 83, -1, 85, 86, 87, -1, 89, - 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, - -1, -1, -1, -1, -1, -1, -1, 107, 108, 109, - 110, 111, 112, 113, 114, 115, 116, -1, 118, -1, - 120, 121, 122, 123, 124, 125, -1, 127, 128, 129, - 130, 131, -1, -1, 134, 135, 136, 137, 138, -1, - 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, - 150, 151, 152, 153, 154, 155, 156, 157, 158, -1, - 160, -1, 162, 163, 164, 165, -1, 167, -1, 169, - -1, -1, -1, 173, 174, 175, -1, 177, -1, 179, - -1, 181, 182, 183, -1, 185, 186, 187, 188, 189, - 190, 191, -1, 193, 194, 195, 196, -1, 198, 199, - 200, 201, 202, 203, -1, 205, -1, 207, 208, 209, - 210, 211, 212, 213, 214, -1, 216, -1, 218, -1, - -1, 221, -1, 223, 224, 225, 226, 227, 228, -1, - -1, 231, -1, 233, -1, -1, 236, 237, 238, -1, - -1, 241, 242, 243, 244, 245, 246, 247, 248, 249, - 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, - 260, 261, 262, 263, 264, 265, -1, 267, 268, 269, - 270, 271, -1, 273, 274, -1, 276, -1, 278, 279, - 280, 281, 282, 283, -1, 285, 286, -1, -1, 289, - 290, 291, -1, -1, 294, 295, -1, 297, -1, 299, - 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, - -1, 311, 312, 313, 314, 315, 316, 317, 318, 319, - -1, 321, 322, 323, 324, 325, 326, -1, 328, 329, - 330, 331, 332, 333, 334, 335, -1, 337, 338, 339, - 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, - -1, 351, 352, -1, 354, 355, 356, 357, 358, 359, - 360, 361, 362, 363, 364, 365, 366, 367, 368, -1, - 370, 371, 372, 373, 374, -1, 376, 377, 378, 379, - 380, -1, 382, 383, 384, 385, -1, 387, 388, 389, - 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, - 400, 401, 402, -1, 404, 405, -1, 407, -1, 409, - 410, 411, 412, 413, -1, 415, 416, -1, -1, 419, - 420, 421, 422, 423, -1, 425, 426, 427, 428, 429, - 430, 431, 432, -1, -1, 435, 436, 437, 438, 439, - -1, -1, 442, 443, 444, 445, 446, 447, 448, -1, - 450, -1, 452, 453, 454, 455, 456, -1, -1, 459, - -1, -1, 462, 463, 464, 465, 466, 467, 468, 469, - 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, - 480, 481, 482, 3, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 21, 22, 23, + 24, 25, 26, 27, 28, -1, 30, 31, 32, -1, + -1, -1, -1, -1, -1, -1, 40, 41, -1, 43, + 44, 45, -1, 47, 48, 49, 50, 51, -1, 53, + 54, -1, 56, 57, 58, 59, 60, 61, -1, -1, + 64, 65, 66, 67, 68, -1, 70, 71, 72, 73, + 74, -1, -1, -1, 78, 79, 80, 81, 82, 83, + -1, 85, 86, 87, -1, 89, 90, 91, 92, 93, + 94, -1, -1, 97, 98, 99, -1, -1, -1, -1, + -1, -1, -1, 107, 108, 109, 110, 111, 112, 113, + 114, 115, 116, -1, 118, -1, 120, 121, 122, 123, + 124, 125, -1, 127, 128, 129, 130, 131, -1, -1, + 134, 135, 136, 137, 138, -1, 140, 141, 142, -1, + 144, 145, 146, -1, 148, 149, 150, 151, 152, 153, + 154, 155, 156, 157, 158, -1, 160, -1, 162, 163, + 164, 165, -1, 167, -1, 169, -1, -1, -1, 173, + 174, 175, -1, 177, -1, 179, -1, 181, 182, 183, + -1, 185, 186, 187, 188, 189, 190, 191, -1, 193, + 194, 195, 196, -1, 198, 199, 200, 201, 202, 203, + -1, 205, -1, 207, 208, 209, 210, 211, 212, 213, + 214, -1, 216, -1, 218, -1, -1, 221, -1, 223, + 224, 225, 226, 227, 228, -1, -1, 231, -1, 233, + -1, -1, 236, 237, 238, -1, -1, 241, 242, 243, + 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, + 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, + 264, 265, -1, 267, 268, 269, 270, 271, -1, 273, + 274, -1, 276, -1, 278, 279, 280, 281, 282, 283, + -1, 285, 286, -1, -1, 289, 290, 291, -1, -1, + 294, 295, -1, 297, -1, 299, 300, 301, 302, 303, + 304, 305, 306, 307, 308, 309, -1, 311, 312, 313, + 314, 315, 316, 317, 318, 319, -1, 321, 322, 323, + 324, 325, 326, -1, 328, 329, 330, 331, 332, 333, + 334, 335, -1, 337, 338, 339, 340, 341, 342, 343, + 344, 345, 346, 347, 348, 349, -1, 351, 352, -1, + 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, + 364, 365, 366, 367, 368, -1, 370, 371, 372, 373, + 374, -1, 376, 377, 378, 379, 380, -1, 382, 383, + 384, 385, -1, 387, 388, 389, 390, 391, 392, 393, + 394, 395, 396, 397, 398, 399, 400, 401, 402, -1, + 404, 405, -1, 407, -1, 409, 410, 411, 412, 413, + -1, 415, 416, -1, -1, 419, 420, 421, 422, 423, + -1, 425, 426, 427, 428, 429, 430, 431, 432, -1, + -1, 435, 436, 437, 438, 439, -1, -1, 442, 443, + 444, 445, 446, 447, 448, -1, 450, -1, 452, 453, + 454, 455, 456, -1, -1, 459, -1, -1, 462, 463, + 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, + 474, 475, 476, 477, 478, 479, 480, 481, 482, 3, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 21, 22, 23, + 24, 25, 26, 27, 28, -1, 30, 31, 32, -1, + -1, -1, -1, -1, -1, -1, 40, 41, -1, 43, + 44, 45, -1, 47, 48, 49, 50, 51, -1, 53, + 54, -1, 56, 57, 58, 59, 60, 61, -1, -1, + 64, 65, 66, 67, 68, -1, 70, 71, 72, 73, + 74, -1, -1, -1, 78, 79, 80, 81, 82, 83, + -1, 85, 86, 87, -1, 89, 90, 91, 92, 93, + 94, -1, -1, 97, 98, 99, -1, -1, -1, -1, + -1, -1, -1, 107, 108, 109, 110, 111, 112, 113, + 114, 115, 116, -1, 118, -1, 120, 121, 122, 123, + 124, 125, -1, 127, 128, 129, 130, 131, -1, -1, + 134, 135, 136, 137, 138, -1, 140, 141, 142, -1, + 144, 145, 146, -1, 148, 149, 150, 151, 152, 153, + 154, 155, 156, 157, 158, -1, 160, -1, 162, 163, + 164, 165, -1, 167, -1, 169, -1, -1, -1, 173, + 174, 175, -1, 177, -1, 179, -1, 181, 182, 183, + -1, 185, 186, 187, 188, 189, 190, 191, -1, 193, + 194, 195, 196, -1, 198, 199, 200, 201, 202, 203, + -1, 205, -1, 207, 208, 209, 210, 211, 212, 213, + 214, -1, 216, -1, 218, -1, -1, 221, -1, 223, + 224, 225, 226, 227, 228, -1, -1, 231, -1, 233, + -1, -1, 236, 237, 238, -1, -1, 241, 242, 243, + 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, + 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, + 264, 265, -1, 267, 268, 269, 270, 271, -1, 273, + 274, -1, 276, -1, 278, 279, 280, 281, 282, 283, + -1, 285, 286, -1, -1, 289, 290, 291, -1, -1, + 294, 295, -1, 297, -1, 299, 300, 301, 302, 303, + 304, 305, 306, 307, 308, 309, -1, 311, 312, 313, + 314, 315, 316, 317, 318, 319, -1, 321, 322, 323, + 324, 325, 326, -1, 328, 329, 330, 331, 332, 333, + 334, 335, -1, 337, 338, 339, 340, 341, 342, 343, + 344, 345, 346, 347, 348, 349, -1, 351, 352, -1, + 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, + 364, 365, 366, 367, 368, -1, 370, 371, 372, 373, + 374, -1, 376, 377, 378, 379, 380, -1, 382, 383, + 384, 385, -1, 387, 388, 389, 390, 391, 392, 393, + 394, 395, 396, 397, 398, 399, 400, 401, 402, -1, + 404, 405, -1, 407, -1, 409, 410, 411, 412, 413, + -1, 415, 416, -1, -1, 419, 420, 421, 422, 423, + -1, 425, 426, 427, 428, 429, 430, 431, 432, -1, + -1, 435, 436, 437, 438, 439, -1, -1, 442, 443, + 444, 445, 446, 447, 448, -1, 450, -1, 452, 453, + 454, 455, 456, -1, -1, 459, -1, -1, 462, 463, + 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, + 474, 475, 476, 477, 478, 479, 480, 481, 482, 3, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 21, 22, 23, + 24, 25, 26, 27, 28, -1, 30, 31, 32, -1, + -1, -1, -1, -1, -1, -1, 40, 41, -1, 43, + 44, 45, -1, 47, 48, 49, 50, 51, -1, 53, + 54, -1, 56, 57, 58, 59, 60, 61, -1, -1, + 64, 65, 66, 67, 68, -1, 70, 71, 72, 73, + 74, -1, -1, -1, 78, 79, 80, 81, 82, 83, + -1, 85, 86, 87, -1, 89, 90, 91, 92, 93, + 94, -1, -1, 97, 98, 99, -1, -1, -1, -1, + -1, -1, -1, 107, 108, 109, 110, 111, 112, 113, + 114, 115, 116, -1, 118, -1, 120, 121, 122, 123, + 124, 125, -1, 127, 128, 129, 130, 131, -1, -1, + 134, 135, 136, 137, 138, -1, 140, 141, 142, -1, + 144, 145, 146, -1, 148, 149, 150, 151, 152, 153, + 154, 155, 156, 157, 158, -1, 160, -1, 162, 163, + 164, 165, -1, 167, -1, 169, -1, -1, -1, 173, + 174, 175, -1, 177, -1, 179, -1, 181, 182, 183, + -1, 185, 186, 187, 188, 189, 190, 191, -1, 193, + 194, 195, 196, -1, 198, 199, 200, 201, 202, 203, + -1, 205, -1, 207, 208, 209, 210, 211, 212, 213, + 214, -1, 216, -1, 218, -1, -1, 221, -1, 223, + 224, 225, 226, 227, 228, -1, -1, 231, -1, 233, + -1, -1, 236, 237, 238, -1, -1, 241, 242, 243, + 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, + 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, + 264, 265, -1, 267, 268, 269, 270, 271, -1, 273, + 274, -1, 276, -1, 278, 279, 280, 281, 282, 283, + -1, 285, 286, -1, -1, 289, 290, 291, -1, -1, + 294, 295, -1, 297, -1, 299, 300, 301, 302, 303, + 304, 305, 306, 307, 308, 309, -1, 311, 312, 313, + 314, 315, 316, 317, 318, 319, -1, 321, 322, 323, + 324, 325, 326, -1, 328, 329, 330, 331, 332, 333, + 334, 335, -1, 337, 338, 339, 340, 341, 342, 343, + 344, 345, 346, 347, 348, 349, -1, 351, 352, -1, + 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, + 364, 365, 366, 367, 368, -1, 370, 371, 372, 373, + 374, -1, 376, 377, 378, 379, 380, -1, 382, 383, + 384, 385, -1, 387, 388, 389, 390, 391, 392, 393, + 394, 395, 396, 397, 398, 399, 400, 401, 402, -1, + 404, 405, -1, 407, -1, 409, 410, 411, 412, 413, + -1, 415, 416, -1, -1, 419, 420, 421, 422, 423, + -1, 425, 426, 427, 428, 429, 430, 431, 432, -1, + -1, 435, 436, 437, 438, 439, -1, -1, 442, 443, + 444, 445, 446, 447, 448, -1, 450, -1, 452, 453, + 454, 455, 456, -1, -1, 459, -1, -1, 462, 463, + 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, + 474, 475, 476, 477, 478, 479, 480, 481, 482, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 21, 22, 23, 24, 25, 26, 27, 28, -1, - 30, 31, 32, -1, -1, -1, -1, -1, -1, -1, - 40, 41, -1, 43, 44, 45, 46, 47, 48, 49, - -1, 51, 52, 53, 54, -1, 56, 57, 58, 59, - 60, 61, -1, -1, 64, 65, 66, 67, 68, -1, - 70, 71, 72, 73, -1, -1, 76, -1, 78, 79, - 80, 81, 82, 83, 84, 85, 86, 87, -1, 89, - 90, 91, 92, 93, 94, -1, 96, 97, 98, 99, - 100, 101, 102, 103, -1, -1, 106, 107, 108, 109, - 110, 111, 112, 113, 114, 115, 116, -1, 118, -1, - 120, 121, 122, 123, 124, 125, -1, 127, 128, 129, - 130, 131, -1, -1, 134, 135, 136, 137, 138, -1, - 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, - 150, 151, -1, 153, 154, 155, 156, 157, -1, -1, - 160, -1, 162, 163, 164, 165, -1, 167, -1, 169, - 170, -1, 172, 173, 174, 175, 176, 177, -1, 179, - -1, -1, -1, 183, -1, 185, 186, 187, 188, 189, - 190, 191, 192, 193, 194, 195, 196, -1, 198, 199, - 200, 201, 202, 203, -1, 205, 206, -1, 208, 209, - 210, 211, 212, 213, 214, -1, 216, -1, 218, 219, - 220, 221, 222, 223, 224, 225, 226, 227, 228, -1, - -1, 231, 232, 233, 234, -1, 236, 237, 238, -1, - -1, 241, 242, 243, 244, 245, 246, 247, 248, 249, - 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, - 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, - 270, -1, -1, 273, 274, 275, 276, -1, -1, 279, - 280, 281, 282, 283, -1, 285, 286, -1, -1, 289, - 290, 291, -1, -1, 294, -1, 296, 297, 298, -1, - 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, - -1, 311, 312, -1, 314, 315, -1, 317, 318, 319, - -1, 321, 322, 323, 324, 325, 326, -1, 328, 329, - 330, 331, 332, 333, 334, 335, -1, 337, 338, 339, - 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, - -1, 351, 352, 353, 354, 355, 356, -1, 358, 359, - 360, 361, 362, 363, 364, 365, 366, 367, 368, -1, - 370, 371, 372, 373, 374, 375, 376, -1, 378, 379, - 380, 381, 382, 383, 384, 385, -1, 387, 388, 389, - 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, - 400, -1, 402, -1, 404, 405, -1, 407, 408, 409, - 410, 411, 412, 413, -1, 415, 416, -1, -1, 419, - 420, -1, 422, -1, -1, 425, 426, 427, 428, 429, - 430, 431, 432, -1, -1, 435, 436, 437, 438, 439, - 440, -1, 442, 443, 444, 445, 446, -1, 448, -1, - 450, 451, 452, 453, 454, 455, 456, -1, -1, 459, - -1, -1, 462, 463, 464, 465, 466, 467, 3, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 479, - 480, 481, 482, -1, -1, -1, 21, 22, 23, 24, - 25, 26, 27, 28, -1, 30, 31, 32, -1, -1, - -1, -1, -1, -1, -1, 40, 41, -1, 43, 44, - 45, 46, 47, 48, 49, -1, 51, 52, 53, 54, - -1, 56, 57, 58, 59, 60, 61, -1, -1, 64, - 65, 66, 67, 68, -1, 70, 71, 72, 73, -1, - -1, 76, -1, 78, 79, 80, 81, 82, 83, 84, - 85, 86, 87, -1, 89, 90, 91, 92, 93, 94, - -1, 96, 97, 98, 99, 100, 101, 102, 103, -1, - -1, 106, 107, 108, 109, 110, 111, 112, 113, 114, - 115, 116, -1, 118, -1, 120, 121, 122, 123, 124, - 125, -1, 127, 128, 129, 130, 131, -1, -1, 134, - 135, 136, 137, 138, -1, 140, 141, 142, -1, 144, - 145, 146, -1, 148, 149, 150, 151, -1, 153, 154, - 155, 156, 157, -1, -1, 160, -1, 162, 163, 164, - 165, -1, 167, -1, 169, 170, -1, 172, 173, 174, - -1, 176, 177, -1, 179, -1, -1, -1, 183, -1, - 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, - 195, 196, -1, 198, 199, 200, 201, 202, 203, -1, - 205, 206, -1, 208, 209, 210, 211, 212, 213, 214, - -1, 216, -1, 218, 219, 220, 221, 222, 223, 224, - 225, 226, 227, 228, -1, -1, 231, 232, 233, 234, - -1, 236, 237, 238, -1, -1, 241, 242, 243, 244, - 245, -1, 247, 248, 249, 250, 251, 252, 253, 254, - 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, - 265, 266, 267, 268, 269, 270, -1, -1, 273, 274, - 275, 276, -1, -1, 279, 280, 281, 282, 283, -1, - 285, 286, -1, -1, 289, 290, 291, -1, -1, 294, - -1, 296, 297, 298, -1, 300, 301, 302, 303, 304, - 305, 306, 307, 308, 309, -1, 311, 312, -1, 314, - 315, -1, 317, 318, 319, -1, 321, 322, 323, 324, - 325, 326, -1, 328, 329, 330, 331, 332, 333, 334, - 335, -1, 337, 338, 339, 340, 341, 342, 343, 344, - 345, 346, 347, 348, 349, -1, 351, 352, 353, 354, - 355, 356, -1, 358, 359, 360, 361, 362, 363, 364, - 365, 366, 367, 368, -1, 370, 371, 372, 373, 374, - 375, 376, -1, 378, 379, 380, 381, 382, 383, 384, - 385, -1, 387, 388, 389, 390, 391, 392, 393, 394, - 395, 396, 397, 398, -1, 400, -1, 402, -1, 404, - 405, -1, 407, 408, 409, 410, 411, 412, 413, -1, - 415, 416, -1, -1, 419, 420, -1, 422, -1, -1, - 425, 426, 427, 428, 429, 430, 431, 432, -1, -1, - 435, 436, 437, 438, 439, 440, -1, 442, 443, 444, - 445, 446, -1, 448, -1, 450, 451, 452, 453, 454, - 455, 456, -1, -1, 459, -1, -1, 462, 463, 464, - 465, 466, 467, 3, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 479, 480, 481, 482, -1, -1, - -1, 21, 22, 23, 24, 25, 26, 27, 28, -1, - 30, 31, 32, -1, -1, -1, -1, -1, -1, -1, - 40, 41, -1, 43, 44, 45, -1, 47, 48, 49, - 50, 51, -1, 53, 54, -1, 56, 57, 58, 59, - 60, 61, -1, -1, 64, 65, 66, 67, 68, -1, - 70, 71, 72, 73, 74, -1, -1, -1, 78, 79, - 80, 81, 82, 83, -1, 85, 86, 87, -1, 89, - 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, - -1, -1, -1, -1, -1, -1, -1, 107, 108, 109, - 110, 111, 112, 113, 114, 115, 116, -1, 118, -1, - 120, 121, 122, 123, 124, 125, -1, 127, 128, 129, - 130, 131, -1, -1, 134, 135, 136, 137, 138, -1, - 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, - 150, 151, 152, 153, 154, 155, 156, 157, 158, -1, - 160, -1, 162, 163, 164, 165, -1, 167, -1, 169, - -1, -1, -1, 173, 174, 175, -1, 177, -1, 179, - -1, 181, 182, 183, -1, 185, 186, 187, 188, 189, - 190, 191, -1, 193, 194, 195, 196, -1, 198, 199, - 200, 201, 202, 203, -1, 205, -1, 207, 208, 209, - 210, 211, 212, 213, 214, -1, 216, -1, 218, -1, - -1, 221, -1, 223, 224, 225, 226, 227, 228, -1, - -1, 231, -1, 233, -1, -1, 236, 237, 238, -1, - -1, 241, 242, 243, 244, 245, 246, 247, 248, 249, - 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, - 260, 261, 262, 263, 264, 265, -1, 267, 268, 269, - 270, 271, -1, 273, 274, -1, 276, -1, 278, 279, - 280, 281, 282, 283, -1, 285, 286, -1, -1, 289, - 290, 291, -1, -1, 294, 295, -1, 297, -1, 299, - 300, 301, 302, 303, 304, 305, -1, 307, 308, 309, - -1, 311, 312, 313, 314, 315, 316, 317, 318, 319, - -1, 321, 322, 323, 324, 325, 326, -1, 328, -1, - 330, 331, 332, 333, 334, 335, -1, 337, 338, 339, - 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, - -1, 351, 352, -1, 354, 355, 356, 357, -1, 359, - 360, 361, 362, 363, 364, 365, 366, 367, 368, -1, - 370, 371, 372, 373, 374, -1, 376, 377, 378, 379, - 380, -1, 382, 383, 384, 385, -1, 387, 388, 389, - 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, - 400, 401, 402, -1, 404, 405, -1, 407, -1, 409, - 410, 411, 412, 413, -1, 415, 416, -1, -1, 419, - 420, 421, 422, 423, -1, 425, 426, 427, 428, 429, - 430, 431, 432, -1, -1, 435, 436, 437, 438, 439, - -1, -1, 442, 443, 444, 445, 446, 447, 448, -1, - 450, -1, 452, 453, 454, 455, 456, -1, -1, 459, - -1, -1, 462, 463, 464, 465, 466, 467, 468, 469, - 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, - 480, 481, 482, 21, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 31, -1, 33, 34, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 21, 22, 23, + 24, 25, 26, 27, 28, -1, 30, 31, 32, -1, + -1, -1, -1, -1, 38, -1, 40, 41, -1, 43, + 44, 45, -1, 47, 48, 49, 50, 51, -1, 53, + 54, -1, 56, 57, 58, 59, 60, 61, -1, -1, + 64, 65, 66, 67, 68, -1, 70, 71, 72, 73, + 74, -1, -1, -1, 78, 79, 80, 81, 82, 83, + -1, 85, 86, 87, -1, 89, 90, 91, 92, 93, + 94, -1, -1, 97, 98, 99, -1, -1, -1, -1, + -1, -1, -1, 107, 108, 109, 110, 111, 112, 113, + 114, 115, 116, -1, 118, -1, 120, 121, 122, 123, + 124, 125, -1, 127, 128, 129, 130, 131, -1, -1, + 134, 135, 136, 137, 138, -1, 140, 141, 142, -1, + 144, 145, 146, -1, 148, 149, 150, 151, 152, 153, + 154, 155, 156, 157, 158, -1, 160, -1, 162, 163, + 164, 165, -1, 167, -1, 169, -1, -1, -1, 173, + 174, 175, -1, 177, -1, 179, -1, 181, 182, 183, + -1, 185, 186, 187, 188, 189, 190, 191, -1, 193, + 194, 195, 196, -1, 198, 199, 200, 201, 202, 203, + -1, 205, -1, 207, 208, 209, 210, 211, 212, 213, + 214, -1, 216, -1, 218, -1, -1, 221, -1, 223, + 224, 225, 226, 227, 228, -1, -1, 231, -1, 233, + -1, -1, 236, 237, 238, -1, -1, 241, 242, 243, + 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, + 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, + 264, 265, -1, 267, 268, 269, 270, 271, -1, 273, + 274, -1, 276, -1, 278, 279, 280, 281, 282, 283, + -1, 285, 286, -1, -1, 289, 290, 291, -1, -1, + 294, 295, -1, 297, -1, 299, 300, 301, 302, 303, + 304, 305, 306, 307, 308, 309, -1, 311, 312, 313, + 314, 315, 316, 317, 318, 319, -1, 321, 322, 323, + 324, 325, 326, -1, 328, 329, 330, 331, 332, 333, + 334, 335, -1, 337, 338, 339, 340, 341, 342, 343, + 344, 345, 346, 347, 348, 349, -1, 351, 352, -1, + 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, + 364, 365, 366, 367, 368, -1, 370, 371, 372, 373, + 374, -1, -1, 377, 378, 379, 380, -1, 382, 383, + 384, 385, -1, 387, 388, 389, 390, 391, 392, 393, + 394, 395, 396, 397, 398, 399, 400, 401, 402, -1, + 404, 405, -1, 407, -1, 409, 410, 411, 412, 413, + -1, 415, 416, -1, -1, 419, 420, 421, 422, 423, + -1, 425, 426, 427, 428, 429, 430, 431, 432, -1, + -1, 435, 436, 437, 438, 439, -1, -1, 442, 443, + 444, 445, 446, 447, 448, -1, 450, -1, 452, 453, + 454, 455, 456, -1, -1, 459, -1, -1, 462, 463, + 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, + 474, 475, 476, 477, 478, 479, 480, 481, 482, 3, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 21, 22, 23, + 24, 25, 26, 27, 28, -1, 30, 31, 32, -1, + -1, -1, -1, -1, -1, -1, 40, 41, -1, 43, + 44, 45, -1, 47, 48, 49, 50, 51, -1, 53, + 54, -1, 56, 57, 58, 59, 60, 61, -1, -1, + 64, 65, 66, 67, 68, -1, 70, 71, 72, 73, + 74, -1, -1, -1, 78, 79, 80, 81, 82, 83, + -1, 85, 86, 87, -1, 89, 90, 91, 92, 93, + 94, -1, -1, 97, 98, 99, -1, -1, -1, -1, + -1, -1, -1, 107, 108, 109, 110, 111, 112, 113, + 114, 115, 116, -1, 118, -1, 120, 121, 122, 123, + 124, 125, -1, 127, 128, 129, 130, 131, -1, -1, + 134, 135, 136, 137, 138, -1, 140, 141, 142, -1, + 144, 145, 146, -1, 148, 149, 150, 151, 152, 153, + 154, 155, 156, 157, 158, -1, 160, -1, 162, 163, + 164, 165, -1, 167, -1, 169, -1, -1, -1, 173, + 174, 175, -1, 177, -1, 179, -1, 181, 182, 183, + -1, 185, 186, 187, 188, 189, 190, 191, -1, 193, + 194, 195, 196, -1, 198, 199, 200, 201, 202, 203, + -1, 205, -1, 207, 208, 209, 210, 211, 212, 213, + 214, -1, 216, -1, 218, -1, -1, 221, -1, 223, + 224, 225, 226, 227, 228, -1, -1, 231, -1, 233, + -1, -1, 236, 237, 238, -1, -1, 241, 242, 243, + 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, + 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, + 264, 265, -1, 267, 268, 269, 270, 271, -1, 273, + 274, -1, 276, -1, 278, 279, 280, 281, 282, 283, + -1, 285, 286, -1, -1, 289, 290, 291, -1, -1, + 294, 295, -1, 297, -1, 299, 300, 301, 302, 303, + 304, 305, 306, 307, 308, 309, -1, 311, 312, 313, + 314, 315, 316, 317, 318, 319, -1, 321, 322, 323, + 324, 325, 326, -1, 328, 329, 330, 331, 332, 333, + 334, 335, -1, 337, 338, 339, 340, 341, 342, 343, + 344, 345, 346, 347, 348, 349, -1, 351, 352, -1, + 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, + 364, 365, 366, 367, 368, -1, 370, 371, 372, 373, + 374, -1, 376, 377, 378, 379, 380, -1, 382, 383, + 384, 385, -1, 387, 388, 389, 390, 391, 392, 393, + 394, 395, 396, 397, 398, 399, 400, 401, 402, -1, + 404, 405, -1, 407, -1, 409, 410, 411, 412, 413, + -1, 415, 416, -1, -1, 419, 420, 421, 422, 423, + -1, 425, 426, 427, 428, 429, 430, 431, 432, -1, + -1, 435, 436, 437, 438, 439, -1, -1, 442, 443, + 444, 445, 446, 447, 448, -1, 450, -1, 452, 453, + 454, 455, 456, -1, -1, 459, -1, -1, 462, 463, + 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, + 474, 475, 476, 477, 478, 479, 480, 481, 482, 3, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 21, 22, 23, + 24, 25, 26, 27, 28, -1, 30, 31, 32, -1, + -1, -1, -1, -1, -1, -1, 40, 41, -1, 43, + 44, 45, -1, 47, 48, 49, 50, 51, -1, 53, + 54, -1, 56, 57, 58, 59, 60, 61, -1, -1, + 64, 65, 66, 67, 68, -1, 70, 71, 72, 73, + 74, -1, -1, -1, 78, 79, 80, 81, 82, 83, + -1, 85, 86, 87, -1, 89, 90, 91, 92, 93, + 94, -1, -1, 97, 98, 99, -1, -1, -1, -1, + -1, -1, -1, 107, 108, 109, 110, 111, 112, 113, + 114, 115, 116, -1, 118, -1, 120, 121, 122, 123, + 124, 125, -1, 127, 128, 129, 130, 131, -1, -1, + 134, 135, 136, 137, 138, -1, 140, 141, 142, -1, + 144, 145, 146, -1, 148, 149, 150, 151, 152, 153, + 154, 155, 156, 157, 158, -1, 160, -1, 162, 163, + 164, 165, -1, 167, -1, 169, -1, -1, -1, 173, + 174, 175, -1, 177, -1, 179, -1, 181, 182, 183, + -1, 185, 186, 187, 188, 189, 190, 191, -1, 193, + 194, 195, 196, -1, 198, 199, 200, 201, 202, 203, + -1, 205, -1, 207, 208, 209, 210, 211, 212, 213, + 214, -1, 216, -1, 218, -1, -1, 221, -1, 223, + 224, 225, 226, 227, 228, -1, -1, 231, -1, 233, + -1, -1, 236, 237, 238, -1, -1, 241, 242, 243, + 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, + 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, + 264, 265, -1, 267, 268, 269, 270, 271, -1, 273, + 274, -1, 276, -1, 278, 279, 280, 281, 282, 283, + -1, 285, 286, -1, -1, 289, 290, 291, -1, -1, + 294, 295, -1, 297, -1, 299, 300, 301, 302, 303, + 304, 305, 306, 307, 308, 309, -1, 311, 312, 313, + 314, 315, 316, 317, 318, 319, -1, 321, 322, 323, + 324, 325, 326, -1, 328, 329, 330, 331, 332, 333, + 334, 335, -1, 337, 338, 339, 340, 341, 342, 343, + 344, 345, 346, 347, 348, 349, -1, 351, 352, -1, + 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, + 364, 365, 366, 367, 368, -1, 370, 371, 372, 373, + 374, -1, 376, 377, 378, 379, 380, -1, 382, 383, + 384, 385, -1, 387, 388, 389, 390, 391, 392, 393, + 394, 395, 396, 397, 398, 399, 400, 401, 402, -1, + 404, 405, -1, 407, -1, 409, 410, 411, 412, 413, + -1, 415, 416, -1, -1, 419, 420, 421, 422, 423, + -1, 425, 426, 427, 428, 429, 430, 431, 432, -1, + -1, 435, 436, 437, 438, 439, -1, -1, 442, 443, + 444, 445, 446, 447, 448, -1, 450, -1, 452, 453, + 454, 455, 456, -1, -1, 459, -1, -1, 462, 463, + 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, + 474, 475, 476, 477, 478, 479, 480, 481, 482, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 49, -1, -1, -1, -1, -1, -1, -1, -1, - 58, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 70, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 81, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 93, -1, 95, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 21, 22, 23, + 24, 25, 26, 27, 28, -1, 30, 31, 32, -1, + -1, -1, -1, -1, -1, -1, 40, 41, -1, 43, + 44, 45, -1, 47, 48, 49, 50, 51, -1, 53, + 54, -1, 56, 57, 58, 59, 60, 61, -1, -1, + 64, 65, 66, 67, 68, -1, 70, 71, 72, 73, + 74, -1, -1, -1, 78, 79, 80, 81, 82, 83, + -1, 85, 86, 87, -1, 89, 90, 91, 92, 93, + 94, -1, -1, 97, 98, 99, -1, -1, -1, -1, + -1, -1, -1, 107, 108, 109, 110, 111, 112, 113, + 114, 115, 116, -1, 118, -1, 120, 121, 122, 123, + 124, 125, -1, 127, 128, 129, 130, 131, -1, -1, + 134, 135, 136, 137, 138, -1, 140, 141, 142, -1, + 144, 145, 146, -1, 148, 149, 150, 151, 152, 153, + 154, 155, 156, 157, 158, -1, 160, -1, 162, 163, + 164, 165, -1, 167, -1, 169, -1, -1, -1, 173, + 174, 175, -1, 177, -1, 179, -1, 181, 182, 183, + -1, 185, 186, 187, 188, 189, 190, 191, -1, 193, + 194, 195, 196, -1, 198, 199, 200, 201, 202, 203, + -1, 205, -1, 207, 208, 209, 210, 211, 212, 213, + 214, -1, 216, -1, 218, -1, -1, 221, -1, 223, + 224, 225, 226, 227, 228, -1, -1, 231, -1, 233, + -1, -1, 236, 237, 238, -1, -1, 241, 242, 243, + 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, + 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, + 264, 265, -1, 267, 268, 269, 270, 271, -1, 273, + 274, -1, 276, -1, 278, 279, 280, 281, 282, 283, + -1, 285, 286, -1, -1, 289, 290, 291, -1, -1, + 294, 295, -1, 297, -1, 299, 300, 301, 302, 303, + 304, 305, 306, 307, 308, 309, -1, 311, 312, 313, + 314, 315, 316, 317, 318, 319, -1, 321, 322, 323, + 324, 325, 326, -1, 328, 329, 330, 331, 332, 333, + 334, 335, -1, 337, 338, 339, 340, 341, 342, 343, + 344, 345, 346, 347, 348, 349, -1, 351, 352, -1, + 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, + 364, 365, 366, 367, 368, -1, 370, 371, 372, 373, + 374, -1, 376, 377, 378, 379, 380, -1, 382, 383, + 384, 385, -1, 387, 388, 389, 390, 391, 392, 393, + 394, 395, 396, 397, 398, 399, 400, 401, 402, -1, + 404, 405, -1, 407, -1, 409, 410, 411, 412, 413, + -1, 415, 416, -1, -1, 419, 420, 421, 422, 423, + -1, 425, 426, 427, 428, 429, 430, 431, 432, -1, + -1, 435, 436, 437, 438, 439, -1, -1, 442, 443, + 444, 445, 446, 447, 448, -1, 450, -1, 452, 453, + 454, 455, 456, -1, -1, 459, -1, -1, 462, 463, + 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, + 474, 475, 476, 477, 478, 479, 480, 481, 482, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 113, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 127, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 137, - -1, -1, -1, -1, -1, 143, -1, -1, -1, -1, - -1, -1, -1, 151, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 167, + -1, -1, -1, -1, -1, -1, -1, 21, 22, 23, + 24, 25, 26, 27, 28, -1, 30, 31, 32, -1, + -1, -1, -1, -1, -1, -1, 40, 41, -1, 43, + 44, 45, 46, 47, 48, 49, -1, 51, 52, 53, + 54, -1, 56, 57, 58, 59, 60, 61, -1, -1, + 64, 65, 66, 67, 68, -1, 70, 71, 72, 73, + -1, -1, 76, -1, 78, 79, 80, 81, 82, 83, + 84, 85, 86, 87, -1, 89, 90, 91, 92, 93, + 94, -1, 96, 97, 98, 99, 100, 101, 102, 103, + -1, -1, 106, 107, 108, 109, 110, 111, 112, 113, + 114, 115, 116, -1, 118, -1, 120, 121, 122, 123, + 124, 125, -1, 127, 128, 129, 130, 131, -1, -1, + 134, 135, 136, 137, 138, -1, 140, 141, 142, -1, + 144, 145, 146, -1, 148, 149, 150, 151, -1, 153, + 154, 155, 156, 157, -1, -1, 160, -1, 162, 163, + 164, 165, -1, 167, -1, 169, 170, -1, 172, 173, + 174, 175, 176, 177, -1, 179, -1, -1, -1, 183, + -1, 185, 186, 187, 188, 189, 190, 191, 192, 193, + 194, 195, 196, -1, 198, 199, 200, 201, 202, 203, + -1, 205, 206, -1, 208, 209, 210, 211, 212, 213, + 214, -1, 216, -1, 218, 219, 220, 221, 222, 223, + 224, 225, 226, 227, 228, -1, -1, 231, 232, 233, + 234, -1, 236, 237, 238, -1, -1, 241, 242, 243, + 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, + 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, + 264, 265, 266, 267, 268, 269, 270, -1, -1, 273, + 274, 275, 276, -1, -1, 279, 280, 281, 282, 283, + -1, 285, 286, -1, -1, 289, 290, 291, -1, -1, + 294, -1, 296, 297, 298, -1, 300, 301, 302, 303, + 304, 305, 306, 307, 308, 309, -1, 311, 312, -1, + 314, 315, -1, 317, 318, 319, -1, 321, 322, 323, + 324, 325, 326, -1, 328, 329, 330, 331, 332, 333, + 334, 335, -1, 337, 338, 339, 340, 341, 342, 343, + 344, 345, 346, 347, 348, 349, -1, 351, 352, 353, + 354, 355, 356, -1, 358, 359, 360, 361, 362, 363, + 364, 365, 366, 367, 368, -1, 370, 371, 372, 373, + 374, 375, 376, -1, 378, 379, 380, 381, 382, 383, + 384, 385, -1, 387, 388, 389, 390, 391, 392, 393, + 394, 395, 396, 397, 398, 399, 400, -1, 402, -1, + 404, 405, -1, 407, 408, 409, 410, 411, 412, 413, + -1, 415, 416, -1, -1, 419, 420, -1, 422, -1, + -1, 425, 426, 427, 428, 429, 430, 431, 432, -1, + -1, 435, 436, 437, 438, 439, 440, -1, 442, 443, + 444, 445, 446, -1, 448, -1, 450, 451, 452, 453, + 454, 455, 456, -1, -1, 459, -1, -1, 462, 463, + 464, 465, 466, 467, 3, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 479, 480, 481, 482, -1, + -1, -1, 21, 22, 23, 24, 25, 26, 27, 28, + -1, 30, 31, 32, -1, -1, -1, -1, -1, -1, + -1, 40, 41, -1, 43, 44, 45, 46, 47, 48, + 49, -1, 51, 52, 53, 54, -1, 56, 57, 58, + 59, 60, 61, -1, -1, 64, 65, 66, 67, 68, + -1, 70, 71, 72, 73, -1, -1, 76, -1, 78, + 79, 80, 81, 82, 83, 84, 85, 86, 87, -1, + 89, 90, 91, 92, 93, 94, -1, 96, 97, 98, + 99, 100, 101, 102, 103, -1, -1, 106, 107, 108, + 109, 110, 111, 112, 113, 114, 115, 116, -1, 118, + -1, 120, 121, 122, 123, 124, 125, -1, 127, 128, + 129, 130, 131, -1, -1, 134, 135, 136, 137, 138, + -1, 140, 141, 142, -1, 144, 145, 146, -1, 148, + 149, 150, 151, -1, 153, 154, 155, 156, 157, -1, + -1, 160, -1, 162, 163, 164, 165, -1, 167, -1, + 169, 170, -1, 172, 173, 174, -1, 176, 177, -1, + 179, -1, -1, -1, 183, -1, 185, 186, 187, 188, + 189, 190, 191, 192, 193, 194, 195, 196, -1, 198, + 199, 200, 201, 202, 203, -1, 205, 206, -1, 208, + 209, 210, 211, 212, 213, 214, -1, 216, -1, 218, + 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, + -1, -1, 231, 232, 233, 234, -1, 236, 237, 238, + -1, -1, 241, 242, 243, 244, 245, -1, 247, 248, + 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, + 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, + 269, 270, -1, -1, 273, 274, 275, 276, -1, -1, + 279, 280, 281, 282, 283, -1, 285, 286, -1, -1, + 289, 290, 291, -1, -1, 294, -1, 296, 297, 298, + -1, 300, 301, 302, 303, 304, 305, 306, 307, 308, + 309, -1, 311, 312, -1, 314, 315, -1, 317, 318, + 319, -1, 321, 322, 323, 324, 325, 326, -1, 328, + 329, 330, 331, 332, 333, 334, 335, -1, 337, 338, + 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, + 349, -1, 351, 352, 353, 354, 355, 356, -1, 358, + 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, + -1, 370, 371, 372, 373, 374, 375, 376, -1, 378, + 379, 380, 381, 382, 383, 384, 385, -1, 387, 388, + 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, + -1, 400, -1, 402, -1, 404, 405, -1, 407, 408, + 409, 410, 411, 412, 413, -1, 415, 416, -1, -1, + 419, 420, -1, 422, -1, -1, 425, 426, 427, 428, + 429, 430, 431, 432, -1, -1, 435, 436, 437, 438, + 439, 440, -1, 442, 443, 444, 445, 446, -1, 448, + -1, 450, 451, 452, 453, 454, 455, 456, -1, -1, + 459, -1, -1, 462, 463, 464, 465, 466, 467, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 479, 480, 481, 482, -1, -1, -1, 21, 22, 23, + 24, 25, 26, 27, 28, -1, 30, 31, 32, -1, + -1, -1, -1, -1, -1, -1, 40, 41, -1, 43, + 44, 45, -1, 47, 48, 49, 50, 51, -1, 53, + 54, -1, 56, 57, 58, 59, 60, 61, -1, -1, + 64, 65, 66, 67, 68, -1, 70, 71, 72, 73, + 74, -1, -1, -1, 78, 79, 80, 81, 82, 83, + -1, 85, 86, 87, -1, 89, 90, 91, 92, 93, + 94, -1, -1, 97, 98, 99, -1, -1, -1, -1, + -1, -1, -1, 107, 108, 109, 110, 111, 112, 113, + 114, 115, 116, -1, 118, -1, 120, 121, 122, 123, + 124, 125, -1, 127, 128, 129, 130, 131, -1, -1, + 134, 135, 136, 137, 138, -1, 140, 141, 142, -1, + 144, 145, 146, -1, 148, 149, 150, 151, 152, 153, + 154, 155, 156, 157, 158, -1, 160, -1, 162, 163, + 164, 165, -1, 167, -1, 169, -1, -1, -1, 173, + 174, 175, -1, 177, -1, 179, -1, 181, 182, 183, + -1, 185, 186, 187, 188, 189, 190, 191, -1, 193, + 194, 195, 196, -1, 198, 199, 200, 201, 202, 203, + -1, 205, -1, 207, 208, 209, 210, 211, 212, 213, + 214, -1, 216, -1, 218, -1, -1, 221, -1, 223, + 224, 225, 226, 227, 228, -1, -1, 231, -1, 233, + -1, -1, 236, 237, 238, -1, -1, 241, 242, 243, + 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, + 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, + 264, 265, -1, 267, 268, 269, 270, 271, -1, 273, + 274, -1, 276, -1, 278, 279, 280, 281, 282, 283, + -1, 285, 286, -1, -1, 289, 290, 291, -1, -1, + 294, 295, -1, 297, -1, 299, 300, 301, 302, 303, + 304, 305, -1, 307, 308, 309, -1, 311, 312, 313, + 314, 315, 316, 317, 318, 319, -1, 321, 322, 323, + 324, 325, 326, -1, 328, -1, 330, 331, 332, 333, + 334, 335, -1, 337, 338, 339, 340, 341, 342, 343, + 344, 345, 346, 347, 348, 349, -1, 351, 352, -1, + 354, 355, 356, 357, -1, 359, 360, 361, 362, 363, + 364, 365, 366, 367, 368, -1, 370, 371, 372, 373, + 374, -1, 376, 377, 378, 379, 380, -1, 382, 383, + 384, 385, -1, 387, 388, 389, 390, 391, 392, 393, + 394, 395, 396, 397, 398, 399, 400, 401, 402, -1, + 404, 405, -1, 407, -1, 409, 410, 411, 412, 413, + -1, 415, 416, -1, -1, 419, 420, 421, 422, 423, + -1, 425, 426, 427, 428, 429, 430, 431, 432, -1, + -1, 435, 436, 437, 438, 439, -1, -1, 442, 443, + 444, 445, 446, 447, 448, -1, 450, -1, 452, 453, + 454, 455, 456, -1, -1, 459, -1, -1, 462, 463, + 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, + 474, 475, 476, 477, 478, 479, 480, 481, 482, 21, + 21, -1, -1, -1, -1, -1, -1, -1, -1, 31, + 31, 33, 34, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 49, 49, -1, + -1, -1, -1, -1, -1, -1, 58, 58, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 70, 70, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 81, + 81, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 93, 93, 95, 95, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 113, 113, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 127, 127, -1, -1, -1, + -1, -1, -1, -1, -1, 137, 137, -1, -1, -1, + -1, 143, 143, -1, -1, -1, -1, -1, -1, 151, + 151, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 167, 167, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 211, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 237, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 211, + 211, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 237, 237, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 314, -1, -1, 317, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 314, 314, -1, 317, 317, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 346, -1, - -1, -1, -1, -1, -1, -1, -1, 355, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 369, -1, -1, -1, -1, -1, -1, 376, -1, - -1, -1, 380, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 390, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 402, -1, -1, -1, 406, -1, + -1, -1, -1, -1, 346, 346, -1, -1, -1, -1, + -1, -1, -1, 355, 355, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 369, 369, -1, + -1, -1, -1, -1, 376, 376, -1, -1, 380, 380, + -1, -1, -1, -1, -1, -1, -1, -1, 390, 390, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 402, 402, -1, -1, 406, 406, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 442, -1, -1, -1, -1, 447, - -1, -1, -1, 451, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 461, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 485, -1, -1, + 442, 442, -1, -1, -1, 447, 447, -1, -1, 451, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 461, + 461, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 499 + -1, -1, -1, 485, 485, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 499, 499 }; -/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing - symbol of state STATE-NUM. */ -static const yytype_uint16 yystos[] = + /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing + symbol of state STATE-NUM. */ +static const yytype_int16 yystos[] = { 0, 21, 31, 33, 34, 49, 58, 70, 81, 93, 95, 113, 127, 137, 143, 151, 153, 154, 167, 196, 211, 237, 314, 317, 346, 355, 369, 376, 380, 390, 402, 406, 442, 447, 461, 485, 499, 510, 511, 512, - 513, 516, 519, 520, 523, 534, 535, 539, 587, 594, - 595, 596, 598, 600, 606, 607, 610, 613, 620, 627, - 631, 638, 640, 642, 644, 645, 647, 652, 653, 670, - 671, 672, 673, 674, 675, 676, 677, 728, 729, 874, - 875, 877, 881, 896, 419, 464, 876, 200, 362, 370, - 406, 453, 876, 3, 21, 22, 23, 24, 25, 26, + 513, 530, 533, 534, 535, 536, 537, 538, 539, 590, + 591, 736, 737, 740, 741, 743, 750, 751, 799, 801, + 804, 811, 815, 822, 823, 834, 836, 838, 841, 846, + 853, 854, 855, 859, 861, 867, 868, 870, 872, 875, + 876, 877, 881, 896, 419, 464, 835, 200, 362, 370, + 406, 453, 835, 3, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 32, 40, 41, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 56, 57, 58, 59, 60, 61, 64, 65, 66, 67, 68, @@ -15470,450 +13854,835 @@ static const yytype_uint16 yystos[] = 444, 445, 446, 447, 448, 450, 451, 452, 453, 454, 455, 456, 459, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, - 479, 480, 481, 482, 787, 859, 863, 866, 897, 898, - 899, 876, 52, 499, 665, 177, 238, 292, 362, 410, - 412, 428, 434, 437, 585, 619, 3, 5, 29, 175, - 246, 317, 399, 857, 863, 864, 897, 23, 76, 92, - 146, 156, 168, 173, 200, 245, 249, 312, 326, 359, - 362, 370, 373, 392, 406, 413, 422, 428, 453, 632, - 633, 636, 876, 857, 451, 499, 513, 516, 519, 520, - 523, 534, 535, 539, 587, 594, 596, 598, 600, 606, - 607, 610, 613, 623, 627, 631, 638, 640, 642, 644, - 647, 652, 653, 672, 874, 875, 877, 896, 110, 70, - 211, 110, 5, 643, 862, 863, 643, 863, 857, 29, - 415, 419, 514, 515, 646, 863, 876, 29, 132, 684, - 685, 177, 238, 362, 374, 415, 601, 602, 646, 876, - 447, 646, 672, 677, 288, 741, 854, 863, 864, 172, - 499, 649, 499, 334, 678, 679, 857, 678, 673, 674, - 0, 502, 451, 621, 29, 415, 419, 646, 672, 147, - 215, 293, 433, 687, 688, 673, 675, 676, 503, 122, - 210, 439, 190, 854, 857, 190, 854, 190, 741, 190, - 854, 499, 497, 501, 838, 840, 672, 854, 410, 412, - 410, 412, 344, 190, 863, 863, 868, 173, 245, 334, - 370, 406, 453, 611, 200, 29, 857, 251, 422, 109, - 406, 406, 453, 365, 3, 46, 51, 52, 53, 54, - 66, 67, 76, 84, 96, 100, 101, 102, 103, 106, - 114, 115, 136, 164, 170, 172, 176, 190, 192, 206, - 213, 214, 216, 219, 220, 222, 232, 234, 246, 265, - 266, 267, 275, 280, 296, 298, 331, 353, 357, 375, - 377, 381, 384, 399, 408, 415, 416, 427, 440, 448, - 451, 637, 752, 754, 756, 758, 760, 762, 764, 765, - 766, 768, 769, 770, 772, 773, 867, 897, 900, 190, - 634, 868, 190, 855, 857, 190, 857, 499, 599, 623, - 3, 46, 50, 51, 52, 53, 54, 66, 67, 74, - 76, 84, 96, 100, 101, 102, 103, 106, 114, 115, - 152, 158, 164, 170, 172, 175, 176, 181, 182, 192, - 206, 207, 213, 214, 216, 219, 220, 222, 232, 234, - 246, 265, 266, 267, 271, 275, 278, 280, 295, 296, - 298, 299, 313, 316, 331, 353, 357, 375, 377, 381, - 384, 399, 401, 408, 415, 416, 421, 423, 427, 440, - 447, 448, 451, 468, 469, 470, 471, 472, 473, 474, - 475, 476, 477, 478, 624, 626, 627, 629, 630, 897, - 901, 621, 862, 643, 862, 488, 499, 499, 608, 482, - 221, 501, 287, 4, 6, 7, 8, 9, 10, 37, - 51, 53, 54, 62, 63, 66, 67, 74, 76, 100, - 101, 102, 103, 104, 105, 106, 114, 115, 117, 152, - 158, 159, 164, 181, 182, 213, 214, 216, 239, 240, - 265, 267, 272, 277, 278, 280, 289, 299, 313, 331, - 357, 375, 384, 401, 415, 416, 421, 423, 424, 427, - 440, 448, 483, 490, 491, 492, 497, 499, 504, 506, - 507, 673, 718, 757, 760, 763, 764, 765, 767, 768, - 769, 772, 773, 784, 786, 787, 788, 790, 804, 805, - 812, 832, 837, 844, 845, 846, 859, 860, 861, 862, - 863, 843, 845, 601, 601, 862, 601, 482, 171, 417, - 488, 499, 854, 492, 840, 3, 170, 172, 451, 627, - 648, 650, 170, 651, 784, 816, 817, 863, 678, 503, - 499, 870, 500, 500, 512, 854, 482, 221, 29, 132, - 683, 683, 56, 683, 161, 166, 235, 284, 693, 695, - 696, 721, 723, 724, 725, 687, 688, 499, 171, 217, - 536, 741, 152, 25, 31, 137, 291, 342, 346, 376, - 444, 528, 531, 532, 342, 152, 38, 57, 108, 199, - 250, 258, 270, 301, 342, 348, 370, 376, 390, 531, - 588, 591, 152, 342, 376, 531, 152, 342, 376, 531, - 3, 29, 46, 52, 76, 84, 96, 100, 101, 102, - 103, 106, 132, 170, 172, 175, 176, 192, 206, 219, - 220, 222, 232, 234, 246, 266, 275, 296, 298, 353, - 375, 381, 399, 408, 427, 440, 449, 451, 492, 500, - 784, 819, 820, 865, 871, 897, 902, 784, 839, 3, - 29, 33, 34, 35, 36, 37, 38, 39, 42, 55, - 62, 63, 69, 75, 77, 88, 95, 104, 105, 117, - 119, 126, 132, 133, 139, 143, 147, 159, 161, 166, - 168, 171, 178, 180, 184, 197, 204, 215, 217, 229, - 230, 235, 239, 240, 272, 277, 284, 287, 288, 292, - 293, 310, 320, 327, 336, 350, 369, 386, 403, 406, - 414, 417, 418, 424, 433, 434, 441, 447, 449, 457, - 458, 460, 461, 858, 872, 897, 901, 903, 838, 500, - 499, 574, 585, 272, 521, 501, 869, 38, 453, 190, - 854, 190, 518, 854, 854, 854, 84, 616, 465, 85, - 129, 304, 411, 450, 771, 771, 771, 499, 759, 759, - 316, 499, 761, 152, 499, 66, 67, 771, 759, 756, - 463, 485, 499, 774, 499, 774, 60, 349, 503, 635, - 499, 37, 755, 499, 111, 112, 187, 188, 252, 253, - 254, 255, 256, 257, 260, 261, 366, 367, 479, 480, - 499, 775, 776, 777, 778, 779, 780, 781, 782, 783, - 759, 152, 503, 635, 152, 503, 635, 152, 287, 817, - 500, 503, 4, 159, 287, 424, 490, 491, 590, 593, - 622, 624, 625, 628, 861, 862, 623, 499, 660, 664, - 590, 603, 605, 628, 819, 754, 821, 38, 233, 863, - 499, 841, 497, 673, 784, 836, 499, 499, 166, 499, - 499, 673, 499, 499, 499, 784, 499, 499, 499, 499, - 499, 499, 499, 499, 499, 784, 784, 784, 148, 847, - 848, 817, 818, 673, 784, 816, 806, 807, 808, 864, - 9, 841, 840, 499, 862, 499, 861, 862, 3, 8, - 11, 15, 16, 17, 18, 19, 20, 35, 38, 43, - 50, 75, 176, 192, 197, 219, 220, 234, 272, 275, - 289, 292, 381, 483, 486, 487, 488, 490, 491, 492, - 493, 494, 495, 810, 811, 812, 814, 462, 791, 841, - 298, 784, 503, 217, 680, 499, 862, 841, 501, 840, - 680, 3, 117, 238, 590, 604, 773, 862, 99, 117, - 605, 117, 605, 854, 500, 503, 621, 503, 500, 679, - 855, 856, 38, 870, 233, 675, 675, 29, 492, 689, - 690, 784, 675, 163, 269, 709, 224, 270, 330, 379, - 439, 4, 9, 29, 704, 784, 490, 491, 705, 706, - 784, 786, 721, 722, 696, 695, 693, 694, 166, 724, - 282, 726, 693, 721, 817, 536, 854, 879, 376, 38, - 863, 854, 69, 77, 88, 168, 190, 320, 434, 556, - 566, 581, 863, 77, 88, 597, 88, 597, 499, 417, - 499, 554, 244, 437, 554, 88, 503, 417, 854, 756, - 590, 56, 592, 590, 590, 108, 250, 258, 56, 417, - 461, 485, 589, 263, 362, 589, 591, 741, 88, 417, - 597, 362, 854, 417, 362, 819, 819, 820, 500, 503, - 687, 688, 13, 14, 498, 508, 417, 573, 578, 863, - 461, 663, 334, 406, 453, 152, 95, 522, 539, 613, - 638, 640, 858, 501, 754, 854, 272, 588, 641, 272, - 38, 499, 574, 574, 499, 612, 190, 568, 617, 863, - 499, 818, 861, 637, 821, 771, 771, 37, 755, 415, - 415, 861, 861, 754, 751, 863, 497, 497, 861, 861, - 417, 417, 417, 417, 634, 868, 855, 857, 857, 868, - 500, 623, 629, 4, 861, 4, 861, 662, 669, 872, - 52, 97, 123, 141, 145, 167, 170, 185, 277, 285, - 328, 666, 503, 500, 503, 500, 503, 535, 609, 652, - 672, 877, 817, 838, 818, 457, 833, 834, 784, 817, - 499, 861, 861, 3, 775, 776, 777, 778, 779, 780, - 781, 782, 822, 823, 862, 861, 861, 784, 8, 15, - 18, 19, 20, 486, 487, 488, 490, 491, 492, 493, - 494, 495, 810, 815, 863, 784, 824, 490, 491, 499, - 785, 786, 812, 826, 500, 817, 784, 816, 827, 784, - 55, 171, 230, 418, 784, 817, 830, 784, 499, 863, - 344, 852, 498, 500, 503, 503, 505, 508, 817, 784, - 783, 783, 754, 784, 784, 784, 784, 784, 784, 784, - 5, 872, 873, 415, 42, 403, 842, 868, 784, 784, - 499, 673, 831, 132, 159, 272, 277, 282, 424, 435, - 784, 277, 499, 784, 417, 50, 176, 192, 197, 234, - 381, 784, 784, 784, 784, 784, 784, 784, 784, 784, - 784, 29, 36, 386, 809, 180, 162, 792, 357, 499, - 805, 846, 177, 238, 406, 410, 412, 437, 681, 854, - 171, 730, 819, 492, 730, 499, 862, 500, 854, 648, - 595, 854, 784, 503, 500, 499, 39, 126, 691, 691, - 503, 441, 691, 357, 358, 490, 491, 706, 708, 786, - 379, 224, 288, 309, 309, 503, 494, 4, 707, 861, - 707, 357, 358, 708, 853, 854, 276, 383, 727, 722, - 694, 500, 441, 538, 38, 117, 300, 499, 672, 878, - 499, 863, 883, 892, 893, 895, 863, 342, 531, 499, - 190, 566, 857, 224, 272, 224, 441, 499, 559, 753, - 754, 857, 863, 190, 857, 190, 863, 25, 137, 376, - 527, 530, 550, 564, 872, 857, 558, 577, 872, 857, - 528, 857, 342, 376, 531, 588, 590, 868, 857, 590, - 868, 857, 590, 342, 376, 531, 857, 857, 857, 857, - 342, 376, 531, 857, 857, 687, 687, 687, 449, 820, - 191, 347, 686, 784, 784, 784, 839, 325, 659, 500, - 503, 285, 171, 417, 654, 453, 518, 854, 854, 863, - 292, 585, 858, 499, 152, 152, 151, 672, 234, 556, - 566, 569, 572, 582, 584, 863, 461, 463, 561, 461, - 618, 500, 819, 38, 272, 287, 817, 500, 500, 635, - 500, 497, 482, 482, 500, 500, 500, 503, 754, 861, - 498, 861, 500, 500, 776, 778, 779, 780, 779, 780, - 780, 635, 635, 287, 635, 500, 503, 492, 499, 590, - 628, 661, 38, 658, 862, 658, 272, 277, 328, 658, - 658, 603, 754, 500, 498, 784, 139, 834, 835, 38, - 500, 784, 500, 500, 500, 171, 500, 500, 503, 500, - 501, 310, 825, 500, 785, 785, 784, 11, 15, 18, - 19, 20, 197, 219, 289, 486, 487, 488, 490, 491, - 492, 493, 494, 495, 812, 785, 500, 500, 166, 171, - 828, 829, 503, 500, 38, 830, 817, 830, 830, 171, - 500, 38, 856, 499, 784, 849, 841, 784, 806, 784, - 500, 500, 482, 785, 785, 145, 817, 171, 132, 159, - 277, 282, 424, 435, 499, 145, 815, 784, 403, 842, - 784, 831, 784, 417, 499, 673, 499, 499, 155, 793, - 410, 412, 410, 412, 854, 406, 682, 682, 682, 229, - 358, 499, 673, 729, 731, 732, 733, 734, 741, 742, - 787, 789, 790, 863, 458, 747, 687, 848, 747, 861, - 783, 870, 609, 484, 692, 692, 690, 289, 810, 813, - 692, 4, 861, 708, 288, 439, 705, 503, 243, 732, - 458, 537, 863, 447, 405, 440, 887, 863, 882, 891, - 287, 884, 888, 895, 841, 503, 730, 488, 417, 784, - 272, 581, 499, 152, 499, 559, 200, 578, 579, 540, - 38, 175, 549, 575, 540, 25, 137, 346, 348, 376, - 524, 525, 526, 532, 533, 152, 635, 152, 635, 550, - 564, 550, 500, 503, 543, 862, 500, 503, 488, 501, - 417, 362, 88, 417, 597, 362, 417, 417, 417, 362, - 686, 686, 686, 820, 279, 279, 500, 498, 393, 394, - 668, 862, 573, 659, 854, 38, 499, 574, 521, 344, - 406, 578, 854, 518, 854, 857, 461, 517, 854, 500, - 503, 285, 554, 285, 287, 553, 554, 38, 500, 406, - 784, 152, 854, 500, 755, 861, 774, 774, 755, 863, - 498, 498, 868, 662, 628, 656, 667, 862, 862, 277, - 578, 492, 578, 862, 862, 414, 784, 143, 754, 500, - 784, 784, 815, 784, 828, 754, 785, 785, 785, 785, - 785, 132, 272, 282, 785, 785, 785, 785, 785, 785, - 785, 785, 785, 785, 784, 784, 829, 828, 754, 500, - 500, 500, 817, 754, 500, 784, 849, 850, 851, 38, - 500, 783, 784, 35, 35, 784, 500, 784, 171, 499, - 821, 784, 500, 145, 785, 785, 145, 145, 784, 784, - 688, 458, 784, 297, 797, 682, 682, 682, 682, 854, - 854, 854, 673, 742, 171, 673, 729, 733, 734, 38, - 735, 736, 863, 735, 503, 96, 172, 206, 222, 232, - 266, 353, 738, 736, 38, 735, 737, 863, 485, 746, - 840, 784, 180, 710, 686, 852, 710, 500, 500, 163, - 228, 499, 692, 288, 854, 784, 350, 886, 446, 841, - 500, 503, 86, 886, 500, 503, 883, 537, 784, 857, - 500, 152, 579, 566, 579, 540, 568, 503, 500, 119, - 204, 270, 272, 565, 499, 32, 56, 586, 575, 69, - 75, 88, 117, 119, 204, 272, 277, 320, 336, 434, - 441, 545, 546, 560, 175, 117, 189, 272, 554, 589, - 109, 117, 175, 272, 392, 395, 554, 591, 376, 526, - 428, 857, 863, 530, 577, 3, 46, 52, 76, 84, - 96, 100, 101, 102, 103, 106, 170, 172, 175, 176, - 192, 206, 219, 220, 222, 232, 234, 246, 266, 271, - 275, 289, 296, 298, 353, 375, 377, 381, 399, 408, - 427, 440, 451, 490, 491, 541, 580, 590, 754, 813, - 862, 865, 897, 903, 872, 857, 857, 857, 857, 857, - 857, 857, 857, 857, 857, 500, 500, 500, 687, 589, - 668, 499, 672, 572, 618, 585, 190, 854, 500, 641, - 38, 499, 599, 109, 270, 563, 561, 569, 81, 672, - 672, 568, 441, 615, 498, 754, 635, 500, 503, 578, - 784, 500, 500, 829, 171, 132, 282, 499, 500, 500, - 503, 500, 863, 784, 784, 784, 821, 500, 784, 35, - 35, 784, 784, 145, 500, 500, 784, 500, 499, 798, - 863, 854, 854, 854, 854, 736, 737, 499, 500, 864, - 408, 701, 702, 499, 702, 733, 222, 296, 739, 733, - 739, 222, 738, 739, 222, 702, 499, 864, 702, 499, - 294, 56, 184, 719, 500, 719, 862, 815, 844, 672, - 300, 672, 882, 287, 499, 880, 488, 895, 886, 540, - 566, 500, 500, 461, 571, 120, 193, 202, 119, 443, - 784, 117, 38, 499, 868, 857, 785, 120, 193, 119, - 277, 224, 854, 571, 83, 586, 190, 277, 590, 784, - 586, 277, 490, 491, 593, 863, 754, 635, 635, 246, - 399, 865, 869, 488, 417, 417, 686, 660, 441, 655, - 657, 578, 517, 500, 38, 406, 272, 499, 618, 151, - 672, 572, 517, 109, 149, 198, 553, 122, 137, 319, - 461, 639, 287, 614, 863, 499, 667, 785, 171, 499, - 821, 849, 500, 784, 784, 784, 500, 799, 863, 743, - 744, 789, 735, 499, 4, 9, 697, 699, 700, 863, - 856, 733, 287, 441, 740, 733, 222, 733, 748, 749, - 864, 499, 748, 864, 29, 98, 181, 356, 492, 499, - 711, 712, 713, 714, 715, 716, 717, 784, 784, 460, - 794, 862, 794, 500, 503, 887, 88, 499, 789, 863, - 885, 894, 133, 784, 336, 571, 499, 562, 540, 500, - 189, 499, 784, 272, 546, 571, 574, 857, 38, 152, - 75, 750, 869, 494, 541, 857, 857, 500, 589, 124, - 500, 561, 672, 854, 152, 38, 857, 517, 500, 29, - 80, 89, 118, 189, 201, 392, 395, 557, 557, 358, - 358, 61, 69, 238, 854, 894, 785, 821, 500, 306, - 800, 500, 503, 38, 745, 856, 309, 494, 309, 358, - 494, 499, 499, 500, 784, 499, 733, 740, 500, 503, - 754, 748, 500, 499, 378, 499, 500, 503, 795, 796, - 863, 327, 720, 720, 446, 857, 784, 75, 889, 889, - 500, 503, 273, 439, 854, 540, 567, 570, 872, 396, - 455, 547, 548, 499, 542, 784, 500, 248, 583, 189, - 868, 441, 529, 494, 428, 660, 862, 618, 553, 639, - 499, 854, 672, 599, 561, 69, 290, 69, 615, 500, - 500, 56, 687, 746, 743, 499, 500, 863, 697, 856, - 749, 750, 500, 817, 499, 817, 713, 503, 38, 784, - 441, 698, 698, 672, 500, 868, 868, 890, 890, 747, - 885, 376, 574, 500, 503, 488, 588, 500, 270, 555, - 172, 305, 382, 287, 551, 552, 576, 542, 784, 428, - 38, 499, 639, 517, 553, 290, 290, 499, 618, 816, - 329, 358, 801, 748, 500, 503, 500, 500, 500, 712, - 500, 796, 798, 360, 889, 691, 691, 893, 583, 570, - 541, 500, 548, 202, 122, 439, 287, 576, 287, 551, - 672, 894, 747, 50, 99, 430, 784, 802, 803, 802, - 500, 500, 9, 343, 703, 500, 700, 890, 692, 692, - 747, 552, 60, 270, 349, 376, 544, 544, 639, 500, - 803, 357, 165, 315, 165, 315, 500, 499, 691, 540, - 24, 117, 277, 618, 35, 9, 692, 747, 803, 500 + 479, 480, 481, 482, 649, 721, 725, 728, 897, 898, + 899, 835, 52, 171, 499, 525, 177, 238, 292, 362, + 410, 412, 428, 434, 437, 797, 852, 3, 5, 29, + 175, 246, 317, 399, 719, 725, 726, 897, 23, 76, + 92, 146, 156, 168, 173, 200, 245, 249, 312, 326, + 359, 362, 370, 373, 392, 406, 413, 422, 428, 453, + 816, 817, 820, 835, 719, 451, 499, 513, 530, 533, + 534, 736, 737, 740, 743, 750, 751, 799, 801, 807, + 811, 815, 822, 823, 834, 836, 838, 841, 846, 855, + 859, 861, 867, 868, 870, 872, 875, 876, 877, 110, + 70, 211, 110, 5, 724, 725, 869, 869, 725, 719, + 29, 415, 419, 531, 532, 725, 742, 835, 29, 132, + 546, 547, 177, 238, 362, 374, 415, 742, 862, 863, + 835, 447, 534, 539, 742, 288, 603, 716, 725, 726, + 172, 499, 843, 499, 334, 540, 541, 719, 540, 535, + 536, 0, 502, 147, 215, 293, 433, 549, 550, 535, + 537, 538, 503, 29, 415, 419, 534, 742, 451, 805, + 122, 210, 439, 190, 716, 719, 190, 716, 190, 603, + 190, 716, 499, 497, 501, 700, 702, 393, 394, 528, + 724, 534, 716, 410, 412, 410, 412, 344, 190, 725, + 725, 730, 173, 245, 334, 370, 406, 453, 873, 200, + 29, 719, 251, 422, 109, 406, 406, 453, 365, 3, + 46, 51, 52, 53, 54, 66, 67, 76, 84, 96, + 100, 101, 102, 103, 106, 114, 115, 136, 164, 170, + 172, 176, 190, 192, 206, 213, 214, 216, 219, 220, + 222, 232, 234, 246, 265, 266, 267, 275, 280, 296, + 298, 331, 353, 357, 375, 377, 381, 384, 399, 408, + 415, 416, 427, 440, 448, 451, 614, 616, 618, 620, + 622, 624, 626, 627, 628, 630, 631, 632, 634, 635, + 729, 821, 897, 900, 190, 730, 818, 190, 717, 719, + 190, 719, 499, 800, 807, 3, 46, 50, 51, 52, + 53, 54, 66, 67, 74, 76, 84, 96, 100, 101, + 102, 103, 106, 114, 115, 152, 158, 164, 170, 172, + 175, 176, 181, 182, 192, 206, 207, 213, 214, 216, + 219, 220, 222, 232, 234, 246, 265, 266, 267, 271, + 275, 278, 280, 295, 296, 298, 299, 313, 316, 331, + 353, 357, 375, 377, 381, 384, 399, 401, 408, 415, + 416, 421, 423, 427, 440, 447, 448, 451, 468, 469, + 470, 471, 472, 473, 474, 475, 476, 477, 478, 808, + 810, 811, 813, 814, 897, 901, 805, 724, 869, 724, + 488, 499, 499, 839, 482, 221, 501, 287, 4, 6, + 7, 8, 9, 10, 37, 51, 53, 54, 62, 63, + 66, 67, 74, 76, 100, 101, 102, 103, 104, 105, + 106, 114, 115, 117, 152, 158, 159, 164, 181, 182, + 213, 214, 216, 239, 240, 265, 267, 272, 277, 278, + 280, 289, 299, 313, 331, 357, 375, 384, 401, 415, + 416, 421, 423, 424, 427, 440, 448, 483, 490, 491, + 492, 497, 499, 504, 506, 507, 535, 580, 619, 622, + 625, 626, 627, 629, 630, 631, 634, 635, 646, 648, + 649, 650, 652, 666, 667, 674, 694, 699, 706, 707, + 708, 721, 722, 723, 724, 725, 705, 707, 862, 862, + 724, 862, 482, 171, 417, 488, 499, 716, 492, 702, + 3, 170, 172, 451, 811, 842, 844, 170, 845, 646, + 678, 679, 725, 540, 503, 499, 732, 500, 500, 512, + 29, 132, 545, 545, 56, 545, 161, 166, 235, 284, + 555, 557, 558, 583, 585, 586, 587, 549, 550, 499, + 482, 221, 716, 171, 217, 603, 856, 152, 25, 31, + 137, 291, 342, 346, 376, 444, 828, 831, 832, 342, + 152, 38, 57, 108, 199, 250, 258, 270, 301, 342, + 348, 370, 376, 390, 744, 747, 831, 152, 342, 376, + 831, 152, 342, 376, 831, 3, 29, 46, 52, 76, + 84, 96, 100, 101, 102, 103, 106, 132, 170, 172, + 175, 176, 192, 206, 219, 220, 222, 232, 234, 246, + 266, 275, 296, 298, 353, 375, 381, 399, 408, 427, + 440, 449, 451, 492, 500, 646, 681, 682, 727, 733, + 897, 902, 646, 701, 3, 29, 33, 34, 35, 36, + 37, 38, 39, 42, 55, 62, 63, 69, 75, 77, + 88, 95, 104, 105, 117, 119, 126, 132, 133, 139, + 143, 147, 159, 161, 166, 168, 171, 178, 180, 184, + 197, 204, 215, 217, 229, 230, 235, 239, 240, 272, + 277, 284, 287, 288, 292, 293, 310, 320, 327, 336, + 350, 369, 386, 403, 406, 414, 417, 418, 424, 433, + 434, 441, 447, 449, 457, 458, 460, 461, 720, 734, + 897, 901, 903, 700, 500, 499, 786, 797, 272, 802, + 501, 731, 38, 453, 190, 716, 190, 716, 739, 716, + 716, 84, 849, 465, 85, 129, 304, 411, 450, 633, + 633, 633, 499, 621, 621, 316, 499, 623, 152, 499, + 66, 67, 633, 621, 618, 463, 485, 499, 636, 499, + 636, 499, 37, 617, 499, 111, 112, 187, 188, 252, + 253, 254, 255, 256, 257, 260, 261, 366, 367, 479, + 480, 499, 637, 638, 639, 640, 641, 642, 643, 644, + 645, 621, 60, 349, 503, 819, 152, 503, 819, 152, + 503, 819, 152, 287, 679, 500, 503, 4, 159, 287, + 424, 490, 491, 723, 724, 746, 749, 806, 808, 809, + 812, 807, 499, 520, 524, 746, 812, 864, 866, 681, + 616, 683, 38, 233, 725, 499, 703, 497, 535, 646, + 698, 499, 499, 166, 499, 499, 535, 499, 499, 499, + 646, 499, 499, 499, 499, 499, 499, 499, 499, 499, + 646, 646, 646, 148, 709, 710, 679, 680, 535, 646, + 678, 668, 669, 670, 726, 9, 703, 702, 499, 724, + 499, 723, 724, 3, 8, 11, 15, 16, 17, 18, + 19, 20, 35, 38, 43, 50, 75, 176, 192, 197, + 219, 220, 234, 272, 275, 289, 292, 381, 483, 486, + 487, 488, 490, 491, 492, 493, 494, 495, 672, 673, + 674, 676, 462, 653, 703, 298, 646, 503, 217, 542, + 499, 724, 703, 501, 702, 542, 3, 117, 238, 635, + 724, 746, 865, 99, 117, 866, 117, 866, 716, 500, + 503, 805, 503, 500, 541, 717, 718, 38, 537, 537, + 29, 492, 551, 552, 646, 537, 163, 269, 571, 224, + 270, 330, 379, 439, 4, 9, 29, 566, 646, 490, + 491, 567, 568, 646, 648, 583, 584, 558, 557, 555, + 556, 166, 586, 282, 588, 555, 583, 679, 233, 732, + 856, 716, 879, 38, 725, 376, 716, 69, 77, 88, + 168, 190, 320, 434, 725, 768, 778, 793, 77, 88, + 837, 88, 837, 499, 417, 499, 766, 244, 437, 766, + 88, 503, 417, 716, 618, 746, 56, 748, 746, 746, + 108, 250, 258, 56, 417, 461, 485, 745, 263, 362, + 745, 747, 603, 88, 417, 837, 362, 716, 417, 362, + 681, 681, 682, 500, 503, 549, 550, 13, 14, 498, + 508, 417, 725, 785, 790, 461, 523, 334, 406, 453, + 152, 95, 751, 803, 846, 859, 870, 720, 501, 616, + 716, 272, 744, 871, 272, 499, 786, 38, 786, 499, + 874, 190, 725, 780, 850, 499, 680, 723, 821, 683, + 633, 633, 37, 617, 415, 415, 723, 723, 613, 725, + 497, 497, 723, 723, 417, 417, 417, 417, 616, 818, + 730, 717, 719, 719, 730, 500, 807, 813, 4, 723, + 4, 723, 522, 529, 734, 52, 97, 123, 141, 145, + 167, 170, 185, 277, 285, 328, 526, 503, 500, 503, + 500, 503, 534, 840, 855, 876, 877, 679, 700, 680, + 457, 695, 696, 646, 679, 499, 723, 723, 3, 637, + 638, 639, 640, 641, 642, 643, 644, 684, 685, 724, + 723, 723, 646, 8, 15, 18, 19, 20, 486, 487, + 488, 490, 491, 492, 493, 494, 495, 672, 677, 725, + 646, 686, 490, 491, 499, 647, 648, 674, 688, 500, + 679, 646, 678, 689, 646, 55, 171, 230, 418, 646, + 679, 692, 646, 499, 725, 344, 714, 498, 500, 503, + 503, 505, 508, 679, 646, 645, 645, 616, 646, 646, + 646, 646, 646, 646, 646, 5, 734, 735, 415, 42, + 403, 704, 730, 646, 646, 499, 535, 693, 132, 159, + 272, 277, 282, 424, 435, 646, 277, 499, 646, 417, + 50, 176, 192, 197, 234, 381, 646, 646, 646, 646, + 646, 646, 646, 646, 646, 646, 29, 36, 386, 671, + 180, 162, 654, 357, 499, 667, 708, 177, 238, 406, + 410, 412, 437, 543, 716, 171, 592, 681, 492, 592, + 499, 724, 500, 716, 842, 716, 896, 646, 503, 500, + 499, 39, 126, 553, 553, 503, 441, 553, 357, 358, + 490, 491, 568, 570, 648, 379, 224, 288, 309, 309, + 503, 494, 4, 569, 723, 569, 357, 358, 570, 715, + 716, 276, 383, 589, 584, 556, 500, 441, 858, 38, + 117, 300, 499, 534, 878, 725, 499, 725, 883, 892, + 893, 895, 342, 831, 499, 190, 778, 719, 224, 272, + 224, 441, 499, 771, 615, 616, 719, 725, 190, 719, + 190, 725, 25, 137, 376, 734, 762, 776, 827, 830, + 719, 734, 770, 789, 719, 828, 719, 342, 376, 744, + 831, 746, 730, 719, 746, 730, 719, 746, 342, 376, + 831, 719, 719, 719, 719, 342, 376, 831, 719, 719, + 549, 549, 549, 449, 682, 191, 347, 548, 646, 646, + 646, 701, 325, 519, 500, 503, 285, 171, 417, 514, + 453, 716, 739, 716, 725, 292, 797, 720, 499, 152, + 152, 234, 725, 768, 778, 781, 784, 794, 796, 461, + 463, 773, 151, 534, 461, 851, 500, 681, 38, 272, + 287, 679, 500, 500, 819, 500, 497, 482, 482, 500, + 500, 500, 503, 616, 723, 498, 723, 500, 500, 638, + 640, 641, 642, 641, 642, 642, 819, 819, 287, 819, + 500, 503, 492, 499, 521, 746, 812, 38, 518, 724, + 518, 272, 277, 328, 518, 518, 864, 616, 500, 498, + 646, 139, 696, 697, 38, 500, 646, 500, 500, 500, + 171, 500, 500, 503, 500, 501, 310, 687, 500, 647, + 647, 646, 11, 15, 18, 19, 20, 197, 219, 289, + 486, 487, 488, 490, 491, 492, 493, 494, 495, 674, + 647, 500, 500, 166, 171, 690, 691, 503, 500, 38, + 692, 679, 692, 692, 171, 500, 38, 718, 499, 646, + 711, 703, 646, 668, 646, 500, 500, 482, 647, 647, + 145, 679, 171, 132, 159, 277, 282, 424, 435, 499, + 145, 677, 646, 403, 704, 646, 693, 646, 417, 499, + 535, 499, 499, 155, 655, 410, 412, 410, 412, 716, + 406, 544, 544, 544, 229, 358, 499, 535, 591, 593, + 594, 595, 596, 603, 604, 649, 651, 652, 725, 458, + 609, 549, 710, 609, 723, 645, 732, 840, 484, 554, + 554, 552, 289, 672, 675, 554, 4, 723, 570, 288, + 439, 567, 503, 243, 594, 458, 857, 725, 447, 405, + 440, 887, 725, 882, 891, 287, 884, 888, 895, 703, + 503, 592, 488, 417, 646, 272, 793, 499, 152, 499, + 771, 200, 790, 791, 752, 38, 175, 761, 787, 752, + 25, 137, 346, 348, 376, 824, 825, 826, 832, 833, + 152, 819, 152, 819, 762, 776, 762, 724, 755, 500, + 503, 488, 501, 500, 503, 417, 362, 88, 417, 837, + 362, 417, 417, 417, 362, 548, 548, 548, 682, 279, + 279, 500, 498, 528, 785, 519, 716, 499, 38, 786, + 802, 344, 406, 790, 716, 716, 739, 716, 500, 503, + 285, 766, 285, 287, 765, 719, 461, 738, 766, 38, + 500, 406, 646, 152, 716, 500, 617, 723, 636, 636, + 617, 725, 498, 498, 730, 522, 516, 527, 812, 724, + 724, 277, 790, 492, 790, 724, 724, 414, 646, 143, + 616, 500, 646, 646, 677, 646, 690, 616, 647, 647, + 647, 647, 647, 132, 272, 282, 647, 647, 647, 647, + 647, 647, 647, 647, 647, 647, 646, 646, 691, 690, + 616, 500, 500, 500, 679, 616, 500, 646, 711, 712, + 713, 38, 500, 645, 646, 35, 35, 646, 500, 646, + 171, 499, 683, 646, 500, 145, 647, 647, 145, 145, + 646, 646, 550, 458, 646, 297, 659, 544, 544, 544, + 544, 716, 716, 716, 535, 604, 171, 535, 591, 595, + 596, 38, 597, 598, 725, 597, 503, 96, 172, 206, + 222, 232, 266, 353, 600, 598, 38, 597, 599, 725, + 485, 608, 702, 646, 180, 572, 548, 714, 572, 500, + 500, 163, 228, 499, 554, 288, 716, 646, 350, 886, + 446, 703, 500, 503, 86, 886, 500, 503, 883, 857, + 646, 719, 500, 152, 791, 778, 791, 752, 780, 503, + 500, 119, 204, 270, 272, 777, 499, 32, 56, 798, + 787, 69, 75, 88, 117, 119, 204, 272, 277, 320, + 336, 434, 441, 757, 758, 772, 175, 117, 189, 272, + 766, 745, 109, 117, 175, 272, 392, 395, 747, 766, + 376, 826, 428, 719, 725, 830, 3, 46, 52, 76, + 84, 96, 100, 101, 102, 103, 106, 170, 172, 175, + 176, 192, 206, 219, 220, 222, 232, 234, 246, 266, + 271, 275, 289, 296, 298, 353, 375, 377, 381, 399, + 408, 427, 440, 451, 490, 491, 616, 675, 724, 727, + 746, 753, 792, 897, 903, 734, 789, 719, 719, 719, + 719, 719, 719, 719, 719, 719, 719, 500, 500, 500, + 549, 745, 528, 499, 784, 534, 851, 797, 190, 716, + 500, 871, 499, 38, 775, 773, 781, 81, 800, 109, + 270, 534, 534, 780, 441, 848, 498, 616, 819, 500, + 503, 790, 646, 500, 500, 691, 171, 132, 282, 499, + 500, 500, 503, 500, 725, 646, 646, 646, 683, 500, + 646, 35, 35, 646, 646, 145, 500, 500, 646, 500, + 499, 660, 725, 716, 716, 716, 716, 598, 599, 499, + 500, 726, 408, 563, 564, 499, 564, 595, 222, 296, + 601, 595, 601, 222, 600, 601, 222, 564, 499, 726, + 564, 499, 294, 56, 184, 581, 500, 581, 724, 677, + 706, 534, 300, 534, 882, 287, 499, 880, 488, 895, + 886, 752, 778, 500, 500, 461, 783, 120, 193, 202, + 119, 443, 646, 117, 38, 499, 730, 719, 647, 120, + 193, 119, 277, 224, 716, 783, 83, 798, 190, 277, + 746, 646, 798, 277, 490, 491, 749, 725, 616, 819, + 819, 246, 399, 727, 731, 488, 417, 417, 548, 520, + 441, 515, 517, 790, 500, 738, 38, 406, 272, 499, + 851, 784, 151, 534, 149, 198, 765, 122, 137, 319, + 738, 109, 461, 860, 287, 725, 847, 499, 527, 647, + 171, 499, 683, 711, 500, 646, 646, 646, 500, 661, + 725, 605, 606, 651, 597, 499, 4, 9, 559, 561, + 562, 725, 718, 595, 287, 441, 602, 595, 222, 595, + 610, 611, 726, 499, 610, 726, 29, 98, 181, 356, + 492, 499, 573, 574, 575, 576, 577, 578, 579, 646, + 646, 460, 656, 724, 656, 500, 503, 887, 88, 499, + 651, 725, 885, 894, 133, 646, 336, 783, 499, 774, + 752, 500, 189, 499, 646, 272, 758, 783, 786, 719, + 38, 152, 75, 612, 731, 494, 753, 719, 719, 500, + 745, 124, 500, 773, 534, 716, 152, 38, 500, 719, + 738, 29, 80, 89, 118, 189, 201, 392, 395, 769, + 769, 358, 358, 61, 69, 238, 716, 894, 647, 683, + 500, 306, 662, 500, 503, 38, 607, 718, 309, 494, + 309, 358, 494, 499, 499, 500, 646, 499, 595, 602, + 500, 503, 616, 610, 500, 499, 378, 499, 500, 503, + 657, 658, 725, 327, 582, 582, 446, 719, 646, 75, + 889, 889, 500, 503, 273, 439, 716, 752, 734, 779, + 782, 396, 455, 759, 760, 499, 754, 646, 500, 248, + 795, 189, 730, 441, 829, 494, 428, 520, 724, 851, + 765, 860, 499, 716, 534, 773, 800, 69, 290, 69, + 848, 500, 500, 56, 549, 608, 605, 499, 500, 725, + 559, 718, 611, 612, 500, 679, 499, 679, 575, 503, + 38, 646, 441, 560, 560, 534, 500, 730, 730, 890, + 890, 609, 885, 376, 786, 488, 500, 503, 744, 500, + 270, 767, 172, 305, 382, 287, 763, 764, 788, 754, + 646, 428, 38, 499, 860, 765, 738, 290, 290, 499, + 851, 678, 329, 358, 663, 610, 500, 503, 500, 500, + 500, 574, 500, 658, 660, 360, 889, 553, 553, 893, + 795, 753, 782, 500, 760, 202, 122, 439, 287, 788, + 287, 763, 534, 894, 609, 50, 99, 430, 646, 664, + 665, 664, 500, 500, 9, 343, 565, 500, 562, 890, + 554, 554, 609, 764, 60, 270, 349, 376, 756, 756, + 860, 500, 665, 357, 165, 315, 165, 315, 500, 499, + 553, 752, 24, 117, 277, 851, 35, 9, 554, 609, + 665, 500 }; -#define yyerrok (yyerrstatus = 0) -#define yyclearin (yychar = YYEMPTY) -#define YYEMPTY (-2) -#define YYEOF 0 - -#define YYACCEPT goto yyacceptlab -#define YYABORT goto yyabortlab -#define YYERROR goto yyerrorlab + /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ +static const yytype_int16 yyr1[] = +{ + 0, 509, 510, 511, 511, 512, 512, 512, 512, 512, + 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, + 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, + 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, + 513, 513, 513, 514, 514, 515, 515, 516, 516, 517, + 517, 518, 518, 519, 519, 520, 520, 521, 521, 521, + 521, 521, 522, 523, 523, 524, 524, 525, 525, 526, + 526, 526, 526, 526, 526, 526, 526, 526, 526, 526, + 526, 526, 526, 527, 528, 528, 528, 529, 529, 530, + 531, 531, 532, 532, 532, 533, 534, 534, 535, 535, + 536, 536, 536, 536, 536, 536, 536, 536, 537, 537, + 538, 538, 538, 538, 538, 538, 538, 539, 539, 539, + 540, 540, 541, 542, 542, 543, 543, 543, 543, 543, + 543, 543, 543, 543, 544, 544, 545, 545, 545, 546, + 546, 547, 547, 548, 548, 548, 549, 549, 550, 550, + 550, 551, 551, 552, 552, 553, 553, 553, 554, 554, + 554, 555, 555, 555, 555, 556, 556, 557, 557, 557, + 557, 558, 558, 559, 559, 559, 559, 559, 559, 560, + 560, 561, 561, 562, 562, 562, 562, 563, 564, 564, + 565, 565, 566, 566, 566, 566, 566, 567, 568, 568, + 568, 569, 569, 570, 570, 571, 571, 572, 572, 572, + 572, 573, 573, 574, 574, 575, 575, 575, 575, 575, + 576, 577, 578, 579, 580, 580, 581, 581, 582, 582, + 583, 583, 584, 584, 585, 585, 586, 587, 587, 587, + 587, 588, 588, 589, 589, 589, 590, 590, 591, 591, + 592, 592, 593, 593, 594, 594, 595, 595, 595, 595, + 595, 595, 595, 595, 596, 596, 596, 596, 596, 596, + 597, 597, 597, 597, 598, 598, 599, 599, 599, 599, + 599, 600, 600, 600, 600, 601, 601, 602, 602, 603, + 603, 603, 603, 604, 604, 605, 606, 606, 607, 607, + 608, 608, 609, 609, 610, 610, 611, 612, 612, 613, + 613, 614, 614, 615, 615, 616, 616, 616, 616, 616, + 616, 616, 616, 617, 617, 617, 618, 618, 618, 618, + 618, 618, 618, 619, 619, 619, 619, 620, 621, 621, + 622, 622, 622, 622, 622, 622, 622, 622, 622, 622, + 622, 623, 623, 624, 624, 625, 625, 626, 627, 628, + 628, 629, 629, 630, 631, 632, 632, 632, 632, 632, + 632, 633, 633, 634, 634, 634, 634, 635, 636, 636, + 636, 637, 637, 638, 638, 639, 639, 640, 640, 641, + 641, 642, 642, 643, 643, 644, 644, 645, 645, 645, + 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, + 645, 645, 645, 646, 646, 646, 646, 646, 646, 646, + 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, + 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, + 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, + 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, + 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, + 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, + 646, 646, 646, 646, 647, 647, 647, 647, 647, 647, + 647, 647, 647, 647, 647, 647, 647, 647, 647, 647, + 647, 647, 647, 647, 647, 647, 647, 647, 648, 648, + 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, + 649, 649, 649, 649, 649, 649, 649, 650, 650, 651, + 651, 652, 652, 652, 652, 652, 652, 652, 652, 652, + 652, 652, 652, 652, 652, 652, 652, 652, 652, 652, + 652, 652, 652, 652, 652, 652, 652, 652, 652, 652, + 653, 653, 654, 654, 654, 655, 655, 656, 656, 657, + 657, 658, 659, 659, 659, 660, 661, 661, 662, 662, + 663, 663, 663, 664, 664, 665, 665, 665, 665, 665, + 666, 666, 667, 667, 668, 669, 669, 670, 670, 671, + 671, 671, 672, 672, 673, 673, 673, 673, 673, 673, + 673, 673, 673, 673, 673, 673, 673, 674, 674, 675, + 675, 676, 676, 676, 676, 676, 676, 676, 676, 677, + 677, 678, 678, 679, 679, 680, 680, 681, 681, 682, + 682, 682, 683, 683, 684, 684, 685, 685, 685, 685, + 685, 685, 685, 685, 685, 685, 686, 686, 687, 688, + 688, 689, 689, 689, 689, 689, 689, 690, 691, 692, + 692, 692, 693, 693, 694, 695, 695, 696, 697, 697, + 698, 698, 699, 699, 700, 700, 700, 701, 701, 702, + 702, 703, 703, 704, 704, 705, 705, 706, 706, 707, + 707, 708, 708, 708, 708, 708, 709, 709, 710, 710, + 711, 712, 712, 713, 713, 714, 714, 714, 715, 715, + 716, 716, 717, 717, 718, 718, 719, 720, 721, 721, + 722, 722, 722, 722, 722, 722, 722, 722, 722, 722, + 722, 722, 722, 722, 723, 724, 725, 725, 725, 726, + 726, 727, 727, 727, 728, 728, 728, 729, 729, 729, + 730, 730, 731, 731, 732, 732, 733, 734, 734, 734, + 734, 735, 735, 736, 736, 736, 737, 737, 737, 738, + 738, 738, 739, 740, 740, 740, 740, 740, 740, 740, + 740, 741, 741, 742, 742, 743, 743, 744, 744, 745, + 745, 745, 746, 746, 746, 746, 747, 747, 747, 747, + 747, 747, 747, 747, 747, 747, 747, 747, 747, 747, + 748, 748, 749, 749, 749, 750, 750, 750, 750, 751, + 751, 751, 752, 752, 753, 753, 753, 753, 753, 753, + 754, 754, 755, 756, 756, 756, 756, 756, 757, 757, + 757, 757, 758, 758, 758, 758, 758, 758, 758, 758, + 759, 759, 760, 760, 761, 761, 761, 762, 763, 764, + 764, 764, 764, 764, 765, 765, 765, 765, 766, 767, + 767, 768, 768, 769, 769, 769, 769, 769, 769, 769, + 769, 770, 770, 771, 772, 772, 772, 772, 773, 773, + 773, 773, 774, 775, 775, 775, 776, 777, 777, 777, + 777, 777, 777, 778, 778, 779, 779, 780, 781, 781, + 781, 782, 782, 783, 783, 784, 784, 784, 785, 786, + 786, 787, 787, 788, 789, 789, 789, 789, 790, 790, + 791, 791, 792, 792, 792, 793, 793, 793, 793, 793, + 793, 794, 794, 795, 795, 795, 795, 796, 797, 797, + 797, 797, 797, 797, 797, 797, 798, 798, 799, 799, + 799, 800, 800, 801, 801, 802, 802, 803, 803, 803, + 803, 804, 804, 804, 804, 805, 805, 806, 806, 806, + 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, + 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, + 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, + 808, 808, 808, 809, 809, 810, 810, 811, 811, 812, + 812, 812, 812, 813, 814, 814, 815, 815, 815, 815, + 815, 815, 815, 815, 816, 816, 816, 816, 816, 816, + 816, 816, 816, 816, 816, 816, 816, 816, 816, 816, + 817, 817, 817, 817, 817, 817, 817, 818, 818, 819, + 819, 819, 820, 820, 820, 821, 821, 822, 823, 823, + 823, 823, 823, 823, 823, 823, 824, 824, 825, 825, + 826, 826, 826, 826, 827, 827, 828, 828, 828, 828, + 828, 828, 828, 828, 828, 828, 828, 828, 828, 828, + 828, 828, 828, 828, 828, 828, 828, 828, 828, 828, + 828, 828, 828, 828, 828, 829, 829, 830, 830, 830, + 830, 831, 831, 832, 833, 833, 833, 834, 834, 834, + 834, 834, 834, 835, 835, 835, 836, 836, 836, 836, + 836, 836, 836, 836, 836, 836, 836, 836, 836, 837, + 837, 838, 839, 839, 840, 840, 840, 840, 841, 841, + 841, 841, 841, 842, 842, 842, 842, 842, 843, 843, + 844, 844, 845, 845, 846, 846, 847, 848, 848, 849, + 849, 850, 850, 851, 851, 852, 852, 853, 854, 855, + 856, 856, 856, 857, 857, 858, 858, 859, 859, 859, + 859, 860, 860, 860, 860, 861, 861, 861, 861, 862, + 862, 862, 862, 863, 863, 863, 863, 864, 864, 865, + 865, 865, 865, 865, 865, 865, 866, 866, 867, 867, + 868, 868, 868, 869, 869, 870, 870, 871, 871, 872, + 872, 873, 873, 874, 874, 875, 875, 875, 875, 875, + 875, 876, 877, 878, 878, 878, 878, 878, 879, 879, + 880, 880, 880, 881, 881, 882, 883, 883, 884, 884, + 884, 885, 885, 885, 886, 886, 887, 887, 888, 888, + 889, 889, 890, 890, 891, 891, 892, 892, 893, 893, + 894, 894, 895, 896, 896, 897, 897, 897, 897, 897, + 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, + 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, + 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, + 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, + 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, + 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, + 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, + 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, + 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, + 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, + 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, + 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, + 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, + 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, + 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, + 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, + 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, + 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, + 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, + 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, + 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, + 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, + 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, + 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, + 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, + 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, + 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, + 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, + 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, + 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, + 897, 897, 898, 898, 898, 898, 898, 898, 898, 898, + 898, 898, 898, 898, 898, 898, 898, 898, 898, 898, + 898, 898, 898, 898, 898, 898, 898, 898, 898, 898, + 898, 898, 898, 898, 898, 898, 898, 898, 898, 898, + 898, 898, 898, 898, 898, 898, 898, 898, 898, 898, + 898, 898, 898, 898, 898, 899, 899, 899, 899, 899, + 899, 899, 899, 899, 899, 899, 899, 899, 899, 899, + 899, 899, 899, 899, 899, 899, 899, 899, 899, 899, + 899, 899, 899, 899, 899, 899, 899, 899, 900, 900, + 900, 900, 900, 900, 900, 900, 900, 900, 900, 900, + 900, 900, 900, 900, 900, 900, 900, 900, 900, 900, + 900, 900, 900, 900, 900, 900, 900, 900, 900, 901, + 901, 901, 901, 901, 901, 901, 901, 901, 901, 901, + 901, 901, 901, 901, 901, 901, 901, 901, 901, 901, + 901, 901, 901, 901, 901, 901, 901, 901, 901, 901, + 901, 901, 901, 901, 901, 901, 901, 901, 901, 901, + 901, 901, 901, 901, 901, 901, 901, 901, 901, 901, + 901, 901, 901, 901, 901, 901, 901, 901, 901, 901, + 901, 901, 901, 901, 901, 901, 901, 901, 901, 901, + 901, 901, 901, 901, 901, 901, 901, 901, 901, 901, + 901, 901, 902, 902, 902, 902, 902, 902, 902, 902, + 902, 902, 902, 902, 902, 902, 902, 902, 902, 902, + 902, 902, 902, 902, 902, 902, 902, 902, 902, 902, + 902, 902, 902, 902, 902, 902, 903, 903, 903, 903, + 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, + 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, + 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, + 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, + 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, + 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, + 903, 903, 903, 903, 903, 903, 903, 903 +}; + /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */ +static const yytype_int8 yyr2[] = +{ + 0, 2, 1, 3, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, + 3, 11, 9, 1, 1, 3, 0, 1, 3, 1, + 0, 1, 0, 1, 0, 1, 3, 1, 1, 1, + 3, 0, 2, 2, 0, 2, 0, 1, 0, 1, + 1, 1, 3, 3, 1, 1, 3, 3, 3, 3, + 4, 3, 2, 1, 1, 1, 1, 1, 3, 2, + 1, 1, 1, 2, 3, 2, 1, 1, 3, 3, + 1, 2, 4, 4, 2, 3, 5, 5, 1, 1, + 11, 11, 1, 2, 4, 4, 4, 2, 2, 3, + 1, 3, 6, 2, 0, 3, 3, 4, 4, 4, + 4, 3, 2, 1, 1, 0, 1, 1, 0, 1, + 5, 1, 0, 2, 2, 0, 1, 0, 3, 5, + 5, 1, 3, 4, 3, 1, 1, 0, 2, 2, + 0, 2, 2, 1, 1, 1, 0, 2, 4, 5, + 4, 2, 3, 2, 2, 2, 2, 1, 2, 3, + 0, 1, 0, 5, 1, 4, 6, 2, 1, 0, + 4, 0, 1, 1, 2, 2, 2, 1, 1, 2, + 2, 1, 1, 1, 1, 1, 1, 3, 3, 3, + 0, 1, 3, 1, 2, 1, 1, 1, 1, 1, + 2, 4, 4, 5, 1, 1, 2, 0, 2, 0, + 1, 3, 1, 0, 1, 2, 3, 2, 4, 2, + 3, 2, 0, 1, 2, 0, 4, 5, 1, 2, + 2, 0, 1, 3, 1, 2, 3, 3, 3, 3, + 3, 3, 1, 4, 3, 4, 5, 4, 5, 4, + 5, 2, 4, 1, 1, 0, 1, 4, 5, 4, + 0, 2, 2, 2, 1, 1, 0, 4, 2, 1, + 2, 2, 4, 2, 6, 2, 1, 3, 4, 0, + 2, 0, 2, 0, 1, 3, 3, 2, 0, 2, + 4, 1, 1, 1, 0, 2, 3, 5, 6, 2, + 3, 5, 5, 3, 4, 0, 1, 1, 1, 1, + 1, 2, 4, 1, 1, 1, 1, 2, 3, 0, + 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, + 1, 3, 0, 1, 1, 1, 1, 5, 2, 1, + 1, 1, 1, 4, 1, 2, 2, 1, 3, 3, + 2, 1, 0, 5, 2, 5, 2, 1, 3, 3, + 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 3, 3, 3, 3, 3, + 3, 3, 0, 1, 3, 3, 5, 2, 2, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 2, 2, 3, 3, 2, 2, 3, + 3, 5, 4, 6, 3, 5, 4, 6, 4, 6, + 5, 7, 3, 2, 4, 3, 2, 1, 3, 3, + 3, 3, 3, 3, 4, 3, 4, 3, 4, 5, + 6, 6, 7, 6, 7, 6, 7, 3, 4, 4, + 6, 2, 1, 4, 1, 3, 2, 2, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 2, 2, 5, 6, 6, 7, 1, 1, + 2, 2, 2, 4, 1, 2, 1, 2, 2, 4, + 3, 6, 7, 9, 7, 7, 4, 5, 1, 1, + 1, 5, 1, 1, 4, 1, 4, 1, 4, 1, + 4, 1, 1, 1, 1, 1, 1, 6, 6, 4, + 4, 4, 4, 6, 5, 5, 5, 4, 6, 4, + 5, 0, 5, 4, 0, 1, 0, 2, 0, 1, + 3, 3, 2, 2, 0, 6, 1, 0, 3, 0, + 2, 2, 0, 1, 4, 2, 2, 2, 2, 2, + 4, 3, 1, 5, 3, 1, 3, 1, 2, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 4, 1, + 4, 1, 4, 1, 2, 1, 2, 1, 2, 1, + 3, 1, 3, 1, 2, 1, 0, 1, 3, 1, + 3, 3, 1, 3, 3, 0, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 4, 3, 2, 3, + 0, 3, 3, 2, 2, 1, 0, 2, 2, 3, + 2, 1, 1, 3, 5, 1, 2, 4, 2, 0, + 1, 0, 1, 2, 2, 3, 5, 1, 0, 1, + 2, 0, 2, 1, 0, 1, 0, 1, 3, 1, + 2, 3, 2, 1, 3, 5, 4, 2, 1, 0, + 3, 1, 3, 1, 2, 4, 2, 0, 1, 3, + 1, 2, 1, 3, 1, 2, 1, 1, 1, 2, + 1, 1, 2, 1, 1, 2, 7, 2, 5, 3, + 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 2, 2, 3, 3, 0, 1, 1, 1, 1, + 1, 1, 1, 2, 4, 5, 7, 10, 9, 2, + 3, 0, 4, 2, 2, 2, 2, 3, 4, 2, + 1, 1, 1, 1, 3, 4, 6, 1, 2, 1, + 1, 0, 1, 2, 2, 1, 2, 2, 1, 2, + 3, 2, 2, 2, 2, 3, 3, 3, 1, 3, + 1, 0, 1, 2, 2, 2, 3, 2, 3, 9, + 12, 11, 0, 2, 1, 1, 1, 1, 1, 1, + 3, 0, 1, 2, 1, 1, 2, 2, 3, 1, + 1, 2, 2, 1, 2, 3, 5, 3, 2, 5, + 1, 1, 1, 0, 5, 7, 5, 2, 3, 1, + 1, 2, 2, 0, 3, 4, 4, 0, 3, 2, + 0, 3, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 3, 3, 1, 2, 2, 2, 2, 2, + 2, 0, 3, 3, 3, 0, 1, 2, 1, 2, + 2, 2, 2, 3, 4, 1, 3, 1, 1, 1, + 1, 3, 1, 2, 0, 1, 2, 0, 1, 3, + 0, 2, 0, 3, 3, 1, 5, 3, 1, 3, + 1, 2, 1, 4, 5, 5, 6, 3, 7, 4, + 11, 1, 3, 2, 2, 2, 0, 3, 1, 1, + 2, 2, 2, 2, 1, 0, 1, 2, 3, 9, + 12, 3, 0, 4, 7, 2, 0, 1, 1, 1, + 1, 2, 4, 3, 5, 1, 0, 1, 1, 0, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, + 1, 1, 1, 2, 1, 1, 6, 4, 6, 4, + 6, 8, 4, 6, 1, 1, 1, 1, 2, 1, + 2, 1, 2, 1, 1, 1, 3, 3, 3, 3, + 2, 2, 1, 3, 1, 1, 1, 1, 3, 1, + 1, 0, 1, 1, 1, 1, 3, 5, 4, 6, + 4, 6, 4, 6, 4, 6, 1, 2, 3, 2, + 1, 3, 2, 3, 1, 3, 2, 5, 3, 6, + 4, 6, 6, 6, 5, 5, 6, 9, 4, 5, + 7, 6, 4, 8, 4, 2, 4, 3, 6, 4, + 2, 2, 2, 2, 1, 2, 0, 1, 2, 2, + 2, 1, 3, 4, 2, 1, 0, 2, 2, 2, + 2, 2, 2, 1, 1, 0, 6, 6, 8, 6, + 8, 6, 8, 6, 8, 8, 10, 8, 10, 1, + 0, 5, 3, 0, 1, 1, 1, 1, 4, 5, + 5, 4, 6, 1, 1, 1, 1, 1, 1, 0, + 1, 3, 1, 0, 13, 16, 1, 2, 0, 1, + 0, 1, 0, 2, 0, 1, 0, 4, 3, 7, + 1, 2, 3, 2, 0, 2, 0, 9, 11, 12, + 14, 3, 4, 4, 0, 2, 3, 3, 3, 1, + 3, 3, 2, 3, 3, 3, 3, 1, 1, 1, + 1, 3, 5, 1, 1, 1, 1, 3, 2, 1, + 2, 2, 3, 1, 1, 5, 8, 1, 0, 8, + 7, 1, 1, 2, 3, 6, 8, 6, 8, 6, + 8, 8, 7, 1, 4, 4, 7, 2, 1, 3, + 4, 3, 0, 1, 0, 2, 3, 5, 8, 5, + 0, 5, 5, 7, 2, 0, 1, 1, 1, 3, + 2, 0, 1, 0, 1, 3, 1, 3, 1, 2, + 1, 3, 2, 2, 4, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1 +}; -/* Like YYERROR except do call yyerror. This remains here temporarily - to ease the transition to the new meaning of YYERROR, for GCC. - Once GCC version 2 has supplanted version 1, this can go. */ -#define YYFAIL goto yyerrlab +#define yyerrok (yyerrstatus = 0) +#define yyclearin (yychar = YYEMPTY) +#define YYEMPTY (-2) +#define YYEOF 0 -#define YYRECOVERING() (!!yyerrstatus) +#define YYACCEPT goto yyacceptlab +#define YYABORT goto yyabortlab +#define YYERROR goto yyerrorlab -#define YYBACKUP(Token, Value) \ -do \ - if (yychar == YYEMPTY && yylen == 1) \ - { \ - yychar = (Token); \ - yylval = (Value); \ - yytoken = YYTRANSLATE (yychar); \ - YYPOPSTACK (1); \ - goto yybackup; \ - } \ - else \ - { \ - yyerror (&yylloc, yyscanner, YY_("syntax error: cannot back up")); \ - YYERROR; \ - } \ -while (YYID (0)) +#define YYRECOVERING() (!!yyerrstatus) -#define YYTERROR 1 -#define YYERRCODE 256 +#define YYBACKUP(Token, Value) \ + do \ + if (yychar == YYEMPTY) \ + { \ + yychar = (Token); \ + yylval = (Value); \ + YYPOPSTACK (yylen); \ + yystate = *yyssp; \ + goto yybackup; \ + } \ + else \ + { \ + yyerror (&yylloc, yyscanner, YY_("syntax error: cannot back up")); \ + YYERROR; \ + } \ + while (0) + +/* Error token number */ +#define YYTERROR 1 +#define YYERRCODE 256 /* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N]. If N is 0, then set CURRENT to the empty location which ends the previous symbol: RHS[0] (always defined). */ -#define YYRHSLOC(Rhs, K) ((Rhs)[K]) #ifndef YYLLOC_DEFAULT -# define YYLLOC_DEFAULT(Current, Rhs, N) \ - do \ - if (YYID (N)) \ - { \ - (Current).first_line = YYRHSLOC (Rhs, 1).first_line; \ - (Current).first_column = YYRHSLOC (Rhs, 1).first_column; \ - (Current).last_line = YYRHSLOC (Rhs, N).last_line; \ - (Current).last_column = YYRHSLOC (Rhs, N).last_column; \ - } \ - else \ - { \ - (Current).first_line = (Current).last_line = \ - YYRHSLOC (Rhs, 0).last_line; \ - (Current).first_column = (Current).last_column = \ - YYRHSLOC (Rhs, 0).last_column; \ - } \ - while (YYID (0)) +# define YYLLOC_DEFAULT(Current, Rhs, N) \ + do \ + if (N) \ + { \ + (Current).first_line = YYRHSLOC (Rhs, 1).first_line; \ + (Current).first_column = YYRHSLOC (Rhs, 1).first_column; \ + (Current).last_line = YYRHSLOC (Rhs, N).last_line; \ + (Current).last_column = YYRHSLOC (Rhs, N).last_column; \ + } \ + else \ + { \ + (Current).first_line = (Current).last_line = \ + YYRHSLOC (Rhs, 0).last_line; \ + (Current).first_column = (Current).last_column = \ + YYRHSLOC (Rhs, 0).last_column; \ + } \ + while (0) #endif +#define YYRHSLOC(Rhs, K) ((Rhs)[K]) + + +/* Enable debugging if requested. */ +#if YYDEBUG + +# ifndef YYFPRINTF +# include /* INFRINGES ON USER NAME SPACE */ +# define YYFPRINTF fprintf +# endif + +# define YYDPRINTF(Args) \ +do { \ + if (yydebug) \ + YYFPRINTF Args; \ +} while (0) + /* YY_LOCATION_PRINT -- Print the location on the stream. This macro was not mandated originally: define only if we know we won't break user code: when these are the locations we know. */ #ifndef YY_LOCATION_PRINT -# if YYLTYPE_IS_TRIVIAL -# define YY_LOCATION_PRINT(File, Loc) \ - fprintf (File, "%d.%d-%d.%d", \ - (Loc).first_line, (Loc).first_column, \ - (Loc).last_line, (Loc).last_column) +# if defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL + +/* Print *YYLOCP on YYO. Private, do not rely on its existence. */ + +YY_ATTRIBUTE_UNUSED +static int +yy_location_print_ (FILE *yyo, YYLTYPE const * const yylocp) +{ + int res = 0; + int end_col = 0 != yylocp->last_column ? yylocp->last_column - 1 : 0; + if (0 <= yylocp->first_line) + { + res += YYFPRINTF (yyo, "%d", yylocp->first_line); + if (0 <= yylocp->first_column) + res += YYFPRINTF (yyo, ".%d", yylocp->first_column); + } + if (0 <= yylocp->last_line) + { + if (yylocp->first_line < yylocp->last_line) + { + res += YYFPRINTF (yyo, "-%d", yylocp->last_line); + if (0 <= end_col) + res += YYFPRINTF (yyo, ".%d", end_col); + } + else if (0 <= end_col && yylocp->first_column < end_col) + res += YYFPRINTF (yyo, "-%d", end_col); + } + return res; + } + +# define YY_LOCATION_PRINT(File, Loc) \ + yy_location_print_ (File, &(Loc)) + # else # define YY_LOCATION_PRINT(File, Loc) ((void) 0) # endif #endif -/* YYLEX -- calling `yylex' with the right arguments. */ - -#ifdef YYLEX_PARAM -# define YYLEX yylex (&yylval, &yylloc, YYLEX_PARAM) -#else -# define YYLEX yylex (&yylval, &yylloc, yyscanner) -#endif +# define YY_SYMBOL_PRINT(Title, Type, Value, Location) \ +do { \ + if (yydebug) \ + { \ + YYFPRINTF (stderr, "%s ", Title); \ + yy_symbol_print (stderr, \ + Type, Value, Location, yyscanner); \ + YYFPRINTF (stderr, "\n"); \ + } \ +} while (0) -/* Enable debugging if requested. */ -#if YYDEBUG -# ifndef YYFPRINTF -# include /* INFRINGES ON USER NAME SPACE */ -# define YYFPRINTF fprintf -# endif +/*-----------------------------------. +| Print this symbol's value on YYO. | +`-----------------------------------*/ -# define YYDPRINTF(Args) \ -do { \ - if (yydebug) \ - YYFPRINTF Args; \ -} while (YYID (0)) - -# define YY_SYMBOL_PRINT(Title, Type, Value, Location) \ -do { \ - if (yydebug) \ - { \ - YYFPRINTF (stderr, "%s ", Title); \ - yy_symbol_print (stderr, \ - Type, Value, Location, yyscanner); \ - YYFPRINTF (stderr, "\n"); \ - } \ -} while (YYID (0)) - - -/*--------------------------------. -| Print this symbol on YYOUTPUT. | -`--------------------------------*/ - -/*ARGSUSED*/ -#if (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) -static void -yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, YYLTYPE const * const yylocationp, core_yyscan_t yyscanner) -#else static void -yy_symbol_value_print (yyoutput, yytype, yyvaluep, yylocationp, yyscanner) - FILE *yyoutput; - int yytype; - YYSTYPE const * const yyvaluep; - YYLTYPE const * const yylocationp; - core_yyscan_t yyscanner; -#endif +yy_symbol_value_print (FILE *yyo, int yytype, YYSTYPE const * const yyvaluep, YYLTYPE const * const yylocationp, core_yyscan_t yyscanner) { - if (!yyvaluep) - return; + FILE *yyoutput = yyo; + YYUSE (yyoutput); YYUSE (yylocationp); YYUSE (yyscanner); + if (!yyvaluep) + return; # ifdef YYPRINT if (yytype < YYNTOKENS) - YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep); -# else - YYUSE (yyoutput); + YYPRINT (yyo, yytoknum[yytype], *yyvaluep); # endif - switch (yytype) - { - default: - break; - } + YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN + YYUSE (yytype); + YY_IGNORE_MAYBE_UNINITIALIZED_END } -/*--------------------------------. -| Print this symbol on YYOUTPUT. | -`--------------------------------*/ +/*---------------------------. +| Print this symbol on YYO. | +`---------------------------*/ -#if (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) -static void -yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, YYLTYPE const * const yylocationp, core_yyscan_t yyscanner) -#else static void -yy_symbol_print (yyoutput, yytype, yyvaluep, yylocationp, yyscanner) - FILE *yyoutput; - int yytype; - YYSTYPE const * const yyvaluep; - YYLTYPE const * const yylocationp; - core_yyscan_t yyscanner; -#endif +yy_symbol_print (FILE *yyo, int yytype, YYSTYPE const * const yyvaluep, YYLTYPE const * const yylocationp, core_yyscan_t yyscanner) { - if (yytype < YYNTOKENS) - YYFPRINTF (yyoutput, "token %s (", yytname[yytype]); - else - YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]); + YYFPRINTF (yyo, "%s %s (", + yytype < YYNTOKENS ? "token" : "nterm", yytname[yytype]); - YY_LOCATION_PRINT (yyoutput, *yylocationp); - YYFPRINTF (yyoutput, ": "); - yy_symbol_value_print (yyoutput, yytype, yyvaluep, yylocationp, yyscanner); - YYFPRINTF (yyoutput, ")"); + YY_LOCATION_PRINT (yyo, *yylocationp); + YYFPRINTF (yyo, ": "); + yy_symbol_value_print (yyo, yytype, yyvaluep, yylocationp, yyscanner); + YYFPRINTF (yyo, ")"); } /*------------------------------------------------------------------. @@ -15921,68 +14690,54 @@ yy_symbol_print (yyoutput, yytype, yyvaluep, yylocationp, yyscanner) | TOP (included). | `------------------------------------------------------------------*/ -#if (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) -static void -yy_stack_print (yytype_int16 *bottom, yytype_int16 *top) -#else static void -yy_stack_print (bottom, top) - yytype_int16 *bottom; - yytype_int16 *top; -#endif +yy_stack_print (yy_state_t *yybottom, yy_state_t *yytop) { YYFPRINTF (stderr, "Stack now"); - for (; bottom <= top; ++bottom) - YYFPRINTF (stderr, " %d", *bottom); + for (; yybottom <= yytop; yybottom++) + { + int yybot = *yybottom; + YYFPRINTF (stderr, " %d", yybot); + } YYFPRINTF (stderr, "\n"); } -# define YY_STACK_PRINT(Bottom, Top) \ -do { \ - if (yydebug) \ - yy_stack_print ((Bottom), (Top)); \ -} while (YYID (0)) +# define YY_STACK_PRINT(Bottom, Top) \ +do { \ + if (yydebug) \ + yy_stack_print ((Bottom), (Top)); \ +} while (0) /*------------------------------------------------. | Report that the YYRULE is going to be reduced. | `------------------------------------------------*/ -#if (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) static void -yy_reduce_print (YYSTYPE *yyvsp, YYLTYPE *yylsp, int yyrule, core_yyscan_t yyscanner) -#else -static void -yy_reduce_print (yyvsp, yylsp, yyrule, yyscanner) - YYSTYPE *yyvsp; - YYLTYPE *yylsp; - int yyrule; - core_yyscan_t yyscanner; -#endif +yy_reduce_print (yy_state_t *yyssp, YYSTYPE *yyvsp, YYLTYPE *yylsp, int yyrule, core_yyscan_t yyscanner) { + int yylno = yyrline[yyrule]; int yynrhs = yyr2[yyrule]; int yyi; - unsigned long int yylno = yyrline[yyrule]; - YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n", - yyrule - 1, yylno); + YYFPRINTF (stderr, "Reducing stack by rule %d (line %d):\n", + yyrule - 1, yylno); /* The symbols being reduced. */ for (yyi = 0; yyi < yynrhs; yyi++) { - fprintf (stderr, " $%d = ", yyi + 1); - yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi], - &(yyvsp[(yyi + 1) - (yynrhs)]) - , &(yylsp[(yyi + 1) - (yynrhs)]) , yyscanner); - fprintf (stderr, "\n"); + YYFPRINTF (stderr, " $%d = ", yyi + 1); + yy_symbol_print (stderr, + yystos[+yyssp[yyi + 1 - yynrhs]], + &yyvsp[(yyi + 1) - (yynrhs)] + , &(yylsp[(yyi + 1) - (yynrhs)]) , yyscanner); + YYFPRINTF (stderr, "\n"); } } -# define YY_REDUCE_PRINT(Rule) \ -do { \ - if (yydebug) \ - yy_reduce_print (yyvsp, yylsp, Rule, yyscanner); \ -} while (YYID (0)) +# define YY_REDUCE_PRINT(Rule) \ +do { \ + if (yydebug) \ + yy_reduce_print (yyssp, yyvsp, yylsp, Rule, yyscanner); \ +} while (0) /* Nonzero means print parse trace. It is left uninitialized so that multiple parsers can coexist. */ @@ -15996,7 +14751,7 @@ int yydebug; /* YYINITDEPTH -- initial size of the parser's stacks. */ -#ifndef YYINITDEPTH +#ifndef YYINITDEPTH # define YYINITDEPTH 200 #endif @@ -16011,26 +14766,18 @@ int yydebug; # define YYMAXDEPTH 10000 #endif - #if YYERROR_VERBOSE # ifndef yystrlen # if defined __GLIBC__ && defined _STRING_H -# define yystrlen strlen +# define yystrlen(S) (YY_CAST (YYPTRDIFF_T, strlen (S))) # else /* Return the length of YYSTR. */ -#if (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) -static YYSIZE_T +static YYPTRDIFF_T yystrlen (const char *yystr) -#else -static YYSIZE_T -yystrlen (yystr) - const char *yystr; -#endif { - YYSIZE_T yylen; + YYPTRDIFF_T yylen; for (yylen = 0; yystr[yylen]; yylen++) continue; return yylen; @@ -16044,16 +14791,8 @@ yystrlen (yystr) # else /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in YYDEST. */ -#if (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) static char * yystpcpy (char *yydest, const char *yysrc) -#else -static char * -yystpcpy (yydest, yysrc) - char *yydest; - const char *yysrc; -#endif { char *yyd = yydest; const char *yys = yysrc; @@ -16074,209 +14813,210 @@ yystpcpy (yydest, yysrc) backslash-backslash). YYSTR is taken from yytname. If YYRES is null, do not copy; instead, return the length of what the result would have been. */ -static YYSIZE_T +static YYPTRDIFF_T yytnamerr (char *yyres, const char *yystr) { if (*yystr == '"') { - YYSIZE_T yyn = 0; + YYPTRDIFF_T yyn = 0; char const *yyp = yystr; for (;;) - switch (*++yyp) - { - case '\'': - case ',': - goto do_not_strip_quotes; - - case '\\': - if (*++yyp != '\\') - goto do_not_strip_quotes; - /* Fall through. */ - default: - if (yyres) - yyres[yyn] = *yyp; - yyn++; - break; - - case '"': - if (yyres) - yyres[yyn] = '\0'; - return yyn; - } + switch (*++yyp) + { + case '\'': + case ',': + goto do_not_strip_quotes; + + case '\\': + if (*++yyp != '\\') + goto do_not_strip_quotes; + else + goto append; + + append: + default: + if (yyres) + yyres[yyn] = *yyp; + yyn++; + break; + + case '"': + if (yyres) + yyres[yyn] = '\0'; + return yyn; + } do_not_strip_quotes: ; } - if (! yyres) + if (yyres) + return yystpcpy (yyres, yystr) - yyres; + else return yystrlen (yystr); - - return yystpcpy (yyres, yystr) - yyres; } # endif -/* Copy into YYRESULT an error message about the unexpected token - YYCHAR while in state YYSTATE. Return the number of bytes copied, - including the terminating null byte. If YYRESULT is null, do not - copy anything; just return the number of bytes that would be - copied. As a special case, return 0 if an ordinary "syntax error" - message will do. Return YYSIZE_MAXIMUM if overflow occurs during - size calculation. */ -static YYSIZE_T -yysyntax_error (char *yyresult, int yystate, int yychar) +/* Copy into *YYMSG, which is of size *YYMSG_ALLOC, an error message + about the unexpected token YYTOKEN for the state stack whose top is + YYSSP. + + Return 0 if *YYMSG was successfully written. Return 1 if *YYMSG is + not large enough to hold the message. In that case, also set + *YYMSG_ALLOC to the required number of bytes. Return 2 if the + required number of bytes is too large to store. */ +static int +yysyntax_error (YYPTRDIFF_T *yymsg_alloc, char **yymsg, + yy_state_t *yyssp, int yytoken) { - int yyn = yypact[yystate]; + enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 }; + /* Internationalized format string. */ + const char *yyformat = YY_NULLPTR; + /* Arguments of yyformat: reported tokens (one for the "unexpected", + one per "expected"). */ + char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM]; + /* Actual size of YYARG. */ + int yycount = 0; + /* Cumulated lengths of YYARG. */ + YYPTRDIFF_T yysize = 0; + + /* There are many possibilities here to consider: + - If this state is a consistent state with a default action, then + the only way this function was invoked is if the default action + is an error action. In that case, don't check for expected + tokens because there are none. + - The only way there can be no lookahead present (in yychar) is if + this state is a consistent state with a default action. Thus, + detecting the absence of a lookahead is sufficient to determine + that there is no unexpected or expected token to report. In that + case, just report a simple "syntax error". + - Don't assume there isn't a lookahead just because this state is a + consistent state with a default action. There might have been a + previous inconsistent state, consistent state with a non-default + action, or user semantic action that manipulated yychar. + - Of course, the expected token list depends on states to have + correct lookahead information, and it depends on the parser not + to perform extra reductions after fetching a lookahead from the + scanner and before detecting a syntax error. Thus, state merging + (from LALR or IELR) and default reductions corrupt the expected + token list. However, the list is correct for canonical LR with + one exception: it will still contain any token that will not be + accepted due to an error action in a later state. + */ + if (yytoken != YYEMPTY) + { + int yyn = yypact[+*yyssp]; + YYPTRDIFF_T yysize0 = yytnamerr (YY_NULLPTR, yytname[yytoken]); + yysize = yysize0; + yyarg[yycount++] = yytname[yytoken]; + if (!yypact_value_is_default (yyn)) + { + /* Start YYX at -YYN if negative to avoid negative indexes in + YYCHECK. In other words, skip the first -YYN actions for + this state because they are default actions. */ + int yyxbegin = yyn < 0 ? -yyn : 0; + /* Stay within bounds of both yycheck and yytname. */ + int yychecklim = YYLAST - yyn + 1; + int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS; + int yyx; + + for (yyx = yyxbegin; yyx < yyxend; ++yyx) + if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR + && !yytable_value_is_error (yytable[yyx + yyn])) + { + if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM) + { + yycount = 1; + yysize = yysize0; + break; + } + yyarg[yycount++] = yytname[yyx]; + { + YYPTRDIFF_T yysize1 + = yysize + yytnamerr (YY_NULLPTR, yytname[yyx]); + if (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM) + yysize = yysize1; + else + return 2; + } + } + } + } - if (! (YYPACT_NINF < yyn && yyn <= YYLAST)) - return 0; - else - { - int yytype = YYTRANSLATE (yychar); - YYSIZE_T yysize0 = yytnamerr (0, yytname[yytype]); - YYSIZE_T yysize = yysize0; - YYSIZE_T yysize1; - int yysize_overflow = 0; - enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 }; - char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM]; - int yyx; - -# if 0 - /* This is so xgettext sees the translatable formats that are - constructed on the fly. */ - YY_("syntax error, unexpected %s"); - YY_("syntax error, unexpected %s, expecting %s"); - YY_("syntax error, unexpected %s, expecting %s or %s"); - YY_("syntax error, unexpected %s, expecting %s or %s or %s"); - YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s"); -# endif - char *yyfmt; - char const *yyf; - static char const yyunexpected[] = "syntax error, unexpected %s"; - static char const yyexpecting[] = ", expecting %s"; - static char const yyor[] = " or %s"; - char yyformat[sizeof yyunexpected - + sizeof yyexpecting - 1 - + ((YYERROR_VERBOSE_ARGS_MAXIMUM - 2) - * (sizeof yyor - 1))]; - char const *yyprefix = yyexpecting; - - /* Start YYX at -YYN if negative to avoid negative indexes in - YYCHECK. */ - int yyxbegin = yyn < 0 ? -yyn : 0; - - /* Stay within bounds of both yycheck and yytname. */ - int yychecklim = YYLAST - yyn + 1; - int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS; - int yycount = 1; - - yyarg[0] = yytname[yytype]; - yyfmt = yystpcpy (yyformat, yyunexpected); - - for (yyx = yyxbegin; yyx < yyxend; ++yyx) - if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR) - { - if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM) - { - yycount = 1; - yysize = yysize0; - yyformat[sizeof yyunexpected - 1] = '\0'; - break; - } - yyarg[yycount++] = yytname[yyx]; - yysize1 = yysize + yytnamerr (0, yytname[yyx]); - yysize_overflow |= (yysize1 < yysize); - yysize = yysize1; - yyfmt = yystpcpy (yyfmt, yyprefix); - yyprefix = yyor; - } - - yyf = YY_(yyformat); - yysize1 = yysize + yystrlen (yyf); - yysize_overflow |= (yysize1 < yysize); - yysize = yysize1; + switch (yycount) + { +# define YYCASE_(N, S) \ + case N: \ + yyformat = S; \ + break + default: /* Avoid compiler warnings. */ + YYCASE_(0, YY_("syntax error")); + YYCASE_(1, YY_("syntax error, unexpected %s")); + YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s")); + YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s")); + YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s")); + YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s")); +# undef YYCASE_ + } - if (yysize_overflow) - return YYSIZE_MAXIMUM; + { + /* Don't count the "%s"s in the final size, but reserve room for + the terminator. */ + YYPTRDIFF_T yysize1 = yysize + (yystrlen (yyformat) - 2 * yycount) + 1; + if (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM) + yysize = yysize1; + else + return 2; + } - if (yyresult) - { - /* Avoid sprintf, as that infringes on the user's name space. - Don't have undefined behavior even if the translation - produced a string with the wrong number of "%s"s. */ - char *yyp = yyresult; - int yyi = 0; - while ((*yyp = *yyf) != '\0') - { - if (*yyp == '%' && yyf[1] == 's' && yyi < yycount) - { - yyp += yytnamerr (yyp, yyarg[yyi++]); - yyf += 2; - } - else - { - yyp++; - yyf++; - } - } - } - return yysize; + if (*yymsg_alloc < yysize) + { + *yymsg_alloc = 2 * yysize; + if (! (yysize <= *yymsg_alloc + && *yymsg_alloc <= YYSTACK_ALLOC_MAXIMUM)) + *yymsg_alloc = YYSTACK_ALLOC_MAXIMUM; + return 1; } + + /* Avoid sprintf, as that infringes on the user's name space. + Don't have undefined behavior even if the translation + produced a string with the wrong number of "%s"s. */ + { + char *yyp = *yymsg; + int yyi = 0; + while ((*yyp = *yyformat) != '\0') + if (*yyp == '%' && yyformat[1] == 's' && yyi < yycount) + { + yyp += yytnamerr (yyp, yyarg[yyi++]); + yyformat += 2; + } + else + { + ++yyp; + ++yyformat; + } + } + return 0; } #endif /* YYERROR_VERBOSE */ - /*-----------------------------------------------. | Release the memory associated to this symbol. | `-----------------------------------------------*/ -/*ARGSUSED*/ -#if (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) static void yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, YYLTYPE *yylocationp, core_yyscan_t yyscanner) -#else -static void -yydestruct (yymsg, yytype, yyvaluep, yylocationp, yyscanner) - const char *yymsg; - int yytype; - YYSTYPE *yyvaluep; - YYLTYPE *yylocationp; - core_yyscan_t yyscanner; -#endif { YYUSE (yyvaluep); YYUSE (yylocationp); YYUSE (yyscanner); - if (!yymsg) yymsg = "Deleting"; YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp); - switch (yytype) - { - - default: - break; - } + YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN + YYUSE (yytype); + YY_IGNORE_MAYBE_UNINITIALIZED_END } - - -/* Prevent warnings from -Wmissing-prototypes. */ - -#ifdef YYPARSE_PARAM -#if defined __STDC__ || defined __cplusplus -int yyparse (void *YYPARSE_PARAM); -#else -int yyparse (); -#endif -#else /* ! YYPARSE_PARAM */ -#if defined __STDC__ || defined __cplusplus -int yyparse (core_yyscan_t yyscanner); -#else -int yyparse (); -#endif -#endif /* ! YYPARSE_PARAM */ - - @@ -16285,214 +15025,211 @@ int yyparse (); | yyparse. | `----------*/ -#ifdef YYPARSE_PARAM -#if (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) -int -yyparse (void *YYPARSE_PARAM) -#else -int -yyparse (YYPARSE_PARAM) - void *YYPARSE_PARAM; -#endif -#else /* ! YYPARSE_PARAM */ -#if (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) int yyparse (core_yyscan_t yyscanner) -#else -int -yyparse (yyscanner) - core_yyscan_t yyscanner; -#endif -#endif { - /* The look-ahead symbol. */ +/* The lookahead symbol. */ int yychar; -/* The semantic value of the look-ahead symbol. */ -YYSTYPE yylval; -/* Number of syntax errors so far. */ -int yynerrs; -/* Location data for the look-ahead symbol. */ -YYLTYPE yylloc; +/* The semantic value of the lookahead symbol. */ +/* Default value used for initialization, for pacifying older GCCs + or non-GCC compilers. */ +YY_INITIAL_VALUE (static YYSTYPE yyval_default;) +YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); - int yystate; - int yyn; - int yyresult; - /* Number of tokens to shift before error messages enabled. */ - int yyerrstatus; - /* Look-ahead token as an internal (translated) token number. */ - int yytoken = 0; -#if YYERROR_VERBOSE - /* Buffer for error messages, and its allocated size. */ - char yymsgbuf[128]; - char *yymsg = yymsgbuf; - YYSIZE_T yymsg_alloc = sizeof yymsgbuf; -#endif +/* Location data for the lookahead symbol. */ +static YYLTYPE yyloc_default +# if defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL + = { 1, 1, 1, 1 } +# endif +; +YYLTYPE yylloc = yyloc_default; - /* Three stacks and their tools: - `yyss': related to states, - `yyvs': related to semantic values, - `yyls': related to locations. + /* Number of syntax errors so far. */ + int yynerrs; - Refer to the stacks thru separate pointers, to allow yyoverflow - to reallocate them elsewhere. */ + yy_state_fast_t yystate; + /* Number of tokens to shift before error messages enabled. */ + int yyerrstatus; - /* The state stack. */ - yytype_int16 yyssa[YYINITDEPTH]; - yytype_int16 *yyss = yyssa; - yytype_int16 *yyssp; + /* The stacks and their tools: + 'yyss': related to states. + 'yyvs': related to semantic values. + 'yyls': related to locations. - /* The semantic value stack. */ - YYSTYPE yyvsa[YYINITDEPTH]; - YYSTYPE *yyvs = yyvsa; - YYSTYPE *yyvsp; + Refer to the stacks through separate pointers, to allow yyoverflow + to reallocate them elsewhere. */ - /* The location stack. */ - YYLTYPE yylsa[YYINITDEPTH]; - YYLTYPE *yyls = yylsa; - YYLTYPE *yylsp; - /* The locations where the error started and ended. */ - YYLTYPE yyerror_range[2]; + /* The state stack. */ + yy_state_t yyssa[YYINITDEPTH]; + yy_state_t *yyss; + yy_state_t *yyssp; -#define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N), yylsp -= (N)) + /* The semantic value stack. */ + YYSTYPE yyvsa[YYINITDEPTH]; + YYSTYPE *yyvs; + YYSTYPE *yyvsp; - YYSIZE_T yystacksize = YYINITDEPTH; + /* The location stack. */ + YYLTYPE yylsa[YYINITDEPTH]; + YYLTYPE *yyls; + YYLTYPE *yylsp; + + /* The locations where the error started and ended. */ + YYLTYPE yyerror_range[3]; + YYPTRDIFF_T yystacksize; + + int yyn; + int yyresult; + /* Lookahead token as an internal (translated) token number. */ + int yytoken = 0; /* The variables used to return semantic value and location from the action routines. */ YYSTYPE yyval; YYLTYPE yyloc; +#if YYERROR_VERBOSE + /* Buffer for error messages, and its allocated size. */ + char yymsgbuf[128]; + char *yymsg = yymsgbuf; + YYPTRDIFF_T yymsg_alloc = sizeof yymsgbuf; +#endif + +#define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N), yylsp -= (N)) + /* The number of symbols on the RHS of the reduced rule. Keep to zero when no symbol should be popped. */ int yylen = 0; + yyssp = yyss = yyssa; + yyvsp = yyvs = yyvsa; + yylsp = yyls = yylsa; + yystacksize = YYINITDEPTH; + YYDPRINTF ((stderr, "Starting parse\n")); yystate = 0; yyerrstatus = 0; - yynerrs = 0; - yychar = YYEMPTY; /* Cause a token to be read. */ - - /* Initialize stack pointers. - Waste one element of value and location stack - so that they stay on the same level as the state stack. - The wasted elements are never initialized. */ - - yyssp = yyss; - yyvsp = yyvs; - yylsp = yyls; -#if YYLTYPE_IS_TRIVIAL - /* Initialize the default location before parsing starts. */ - yylloc.first_line = yylloc.last_line = 1; - yylloc.first_column = yylloc.last_column = 0; -#endif - + yynerrs = 0; (void)yynerrs; + yychar = YYEMPTY; /* Cause a token to be read. */ + yylsp[0] = yylloc; goto yysetstate; + /*------------------------------------------------------------. -| yynewstate -- Push a new state, which is found in yystate. | +| yynewstate -- push a new state, which is found in yystate. | `------------------------------------------------------------*/ - yynewstate: +yynewstate: /* In all cases, when you get here, the value and location stacks have just been pushed. So pushing a state here evens the stacks. */ yyssp++; - yysetstate: - *yyssp = yystate; + +/*--------------------------------------------------------------------. +| yysetstate -- set current state (the top of the stack) to yystate. | +`--------------------------------------------------------------------*/ +yysetstate: + YYDPRINTF ((stderr, "Entering state %d\n", yystate)); + YY_ASSERT (0 <= yystate && yystate < YYNSTATES); + YY_IGNORE_USELESS_CAST_BEGIN + *yyssp = YY_CAST (yy_state_t, yystate); + YY_IGNORE_USELESS_CAST_END if (yyss + yystacksize - 1 <= yyssp) +#if !defined yyoverflow && !defined YYSTACK_RELOCATE + goto yyexhaustedlab; +#else { /* Get the current used size of the three stacks, in elements. */ - YYSIZE_T yysize = yyssp - yyss + 1; + YYPTRDIFF_T yysize = yyssp - yyss + 1; -#ifdef yyoverflow +# if defined yyoverflow { - /* Give user a chance to reallocate the stack. Use copies of - these so that the &'s don't force the real ones into - memory. */ - YYSTYPE *yyvs1 = yyvs; - yytype_int16 *yyss1 = yyss; - YYLTYPE *yyls1 = yyls; - - /* Each stack pointer address is followed by the size of the - data in use in that stack, in bytes. This used to be a - conditional around just the two extra args, but that might - be undefined if yyoverflow is a macro. */ - yyoverflow (YY_("memory exhausted"), - &yyss1, yysize * sizeof (*yyssp), - &yyvs1, yysize * sizeof (*yyvsp), - &yyls1, yysize * sizeof (*yylsp), - &yystacksize); - yyls = yyls1; - yyss = yyss1; - yyvs = yyvs1; + /* Give user a chance to reallocate the stack. Use copies of + these so that the &'s don't force the real ones into + memory. */ + yy_state_t *yyss1 = yyss; + YYSTYPE *yyvs1 = yyvs; + YYLTYPE *yyls1 = yyls; + + /* Each stack pointer address is followed by the size of the + data in use in that stack, in bytes. This used to be a + conditional around just the two extra args, but that might + be undefined if yyoverflow is a macro. */ + yyoverflow (YY_("memory exhausted"), + &yyss1, yysize * YYSIZEOF (*yyssp), + &yyvs1, yysize * YYSIZEOF (*yyvsp), + &yyls1, yysize * YYSIZEOF (*yylsp), + &yystacksize); + yyss = yyss1; + yyvs = yyvs1; + yyls = yyls1; } -#else /* no yyoverflow */ -# ifndef YYSTACK_RELOCATE - goto yyexhaustedlab; -# else +# else /* defined YYSTACK_RELOCATE */ /* Extend the stack our own way. */ if (YYMAXDEPTH <= yystacksize) - goto yyexhaustedlab; + goto yyexhaustedlab; yystacksize *= 2; if (YYMAXDEPTH < yystacksize) - yystacksize = YYMAXDEPTH; + yystacksize = YYMAXDEPTH; { - yytype_int16 *yyss1 = yyss; - union yyalloc *yyptr = - (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize)); - if (! yyptr) - goto yyexhaustedlab; - YYSTACK_RELOCATE (yyss); - YYSTACK_RELOCATE (yyvs); - YYSTACK_RELOCATE (yyls); -# undef YYSTACK_RELOCATE - if (yyss1 != yyssa) - YYSTACK_FREE (yyss1); + yy_state_t *yyss1 = yyss; + union yyalloc *yyptr = + YY_CAST (union yyalloc *, + YYSTACK_ALLOC (YY_CAST (YYSIZE_T, YYSTACK_BYTES (yystacksize)))); + if (! yyptr) + goto yyexhaustedlab; + YYSTACK_RELOCATE (yyss_alloc, yyss); + YYSTACK_RELOCATE (yyvs_alloc, yyvs); + YYSTACK_RELOCATE (yyls_alloc, yyls); +# undef YYSTACK_RELOCATE + if (yyss1 != yyssa) + YYSTACK_FREE (yyss1); } # endif -#endif /* no yyoverflow */ yyssp = yyss + yysize - 1; yyvsp = yyvs + yysize - 1; yylsp = yyls + yysize - 1; - YYDPRINTF ((stderr, "Stack size increased to %lu\n", - (unsigned long int) yystacksize)); + YY_IGNORE_USELESS_CAST_BEGIN + YYDPRINTF ((stderr, "Stack size increased to %ld\n", + YY_CAST (long, yystacksize))); + YY_IGNORE_USELESS_CAST_END if (yyss + yystacksize - 1 <= yyssp) - YYABORT; + YYABORT; } +#endif /* !defined yyoverflow && !defined YYSTACK_RELOCATE */ - YYDPRINTF ((stderr, "Entering state %d\n", yystate)); + if (yystate == YYFINAL) + YYACCEPT; goto yybackup; + /*-----------. | yybackup. | `-----------*/ yybackup: - /* Do appropriate processing given the current state. Read a - look-ahead token if we need one and don't already have one. */ + lookahead token if we need one and don't already have one. */ - /* First try to decide what to do without reference to look-ahead token. */ + /* First try to decide what to do without reference to lookahead token. */ yyn = yypact[yystate]; - if (yyn == YYPACT_NINF) + if (yypact_value_is_default (yyn)) goto yydefault; - /* Not known => get a look-ahead token if don't already have one. */ + /* Not known => get a lookahead token if don't already have one. */ - /* YYCHAR is either YYEMPTY or YYEOF or a valid look-ahead symbol. */ + /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol. */ if (yychar == YYEMPTY) { YYDPRINTF ((stderr, "Reading a token: ")); - yychar = YYLEX; + yychar = yylex (&yylval, &yylloc, yyscanner); } if (yychar <= YYEOF) @@ -16514,30 +15251,27 @@ YYLTYPE yylloc; yyn = yytable[yyn]; if (yyn <= 0) { - if (yyn == 0 || yyn == YYTABLE_NINF) - goto yyerrlab; + if (yytable_value_is_error (yyn)) + goto yyerrlab; yyn = -yyn; goto yyreduce; } - if (yyn == YYFINAL) - YYACCEPT; - /* Count tokens shifted since error; after three, turn off error status. */ if (yyerrstatus) yyerrstatus--; - /* Shift the look-ahead token. */ + /* Shift the lookahead token. */ YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc); - - /* Discard the shifted token unless it is eof. */ - if (yychar != YYEOF) - yychar = YYEMPTY; - yystate = yyn; + YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN *++yyvsp = yylval; + YY_IGNORE_MAYBE_UNINITIALIZED_END *++yylsp = yylloc; + + /* Discard the shifted token. */ + yychar = YYEMPTY; goto yynewstate; @@ -16552,14 +15286,14 @@ YYLTYPE yylloc; /*-----------------------------. -| yyreduce -- Do a reduction. | +| yyreduce -- do a reduction. | `-----------------------------*/ yyreduce: /* yyn is the number of a rule to reduce with. */ yylen = yyr2[yyn]; /* If YYLEN is nonzero, implement the default value of the action: - `$$ = $1'. + '$$ = $1'. Otherwise, the following line sets YYVAL to garbage. This behavior is undocumented and Bison @@ -16568,9331 +15302,10569 @@ YYLTYPE yylloc; GCC warning that YYVAL may be used uninitialized. */ yyval = yyvsp[1-yylen]; - /* Default location. */ + /* Default location. */ YYLLOC_DEFAULT (yyloc, (yylsp - yylen), yylen); + yyerror_range[1] = yyloc; YY_REDUCE_PRINT (yyn); switch (yyn) { - case 2: + case 2: #line 467 "third_party/libpg_query/grammar/grammar.y" - { - pg_yyget_extra(yyscanner)->parsetree = (yyvsp[(1) - (1)].list); - ;} + { + pg_yyget_extra(yyscanner)->parsetree = (yyvsp[0].list); + } +#line 15317 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 3: #line 483 "third_party/libpg_query/grammar/grammar.y" - { - if ((yyvsp[(1) - (3)].list) != NIL) + { + if ((yyvsp[-2].list) != NIL) { /* update length of previous stmt */ - updateRawStmtEnd(llast_node(PGRawStmt, (yyvsp[(1) - (3)].list)), (yylsp[(2) - (3)])); + updateRawStmtEnd(llast_node(PGRawStmt, (yyvsp[-2].list)), (yylsp[-1])); } - if ((yyvsp[(3) - (3)].node) != NULL) - (yyval.list) = lappend((yyvsp[(1) - (3)].list), makeRawStmt((yyvsp[(3) - (3)].node), (yylsp[(2) - (3)]) + 1)); + if ((yyvsp[0].node) != NULL) + (yyval.list) = lappend((yyvsp[-2].list), makeRawStmt((yyvsp[0].node), (yylsp[-1]) + 1)); else - (yyval.list) = (yyvsp[(1) - (3)].list); - ;} + (yyval.list) = (yyvsp[-2].list); + } +#line 15333 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 4: #line 495 "third_party/libpg_query/grammar/grammar.y" - { - if ((yyvsp[(1) - (1)].node) != NULL) - (yyval.list) = list_make1(makeRawStmt((yyvsp[(1) - (1)].node), 0)); + { + if ((yyvsp[0].node) != NULL) + (yyval.list) = list_make1(makeRawStmt((yyvsp[0].node), 0)); else (yyval.list) = NIL; - ;} + } +#line 15344 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 39: #line 538 "third_party/libpg_query/grammar/grammar.y" - { (yyval.node) = NULL; ;} + { (yyval.node) = NULL; } +#line 15350 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 40: -#line 2 "third_party/libpg_query/grammar/statements/variable_reset.y" - { (yyval.node) = (PGNode *) (yyvsp[(2) - (2)].vsetstmt); ;} +#line 2 "third_party/libpg_query/grammar/statements/copy.y" + { + PGCopyStmt *n = makeNode(PGCopyStmt); + n->relation = NULL; + n->query = NULL; + n->attlist = NIL; + n->is_from = true; + n->is_program = true; + n->filename = (yyvsp[0].str); + n->options = NIL; + + if (n->is_program && n->filename == NULL) + ereport(ERROR, + (errcode(PG_ERRCODE_SYNTAX_ERROR), + errmsg("COPYFROMFILE not allowed with NULL"), + parser_errposition((yylsp[0])))); + + (yyval.node) = (PGNode *)n; + } +#line 15373 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 41: -#line 8 "third_party/libpg_query/grammar/statements/variable_reset.y" - { - PGVariableSetStmt *n = makeNode(PGVariableSetStmt); - n->kind = VAR_RESET; - n->name = (yyvsp[(1) - (1)].str); - (yyval.vsetstmt) = n; - ;} +#line 22 "third_party/libpg_query/grammar/statements/copy.y" + { + PGCopyStmt *n = makeNode(PGCopyStmt); + n->relation = (yyvsp[-8].range); + n->query = NULL; + n->attlist = (yyvsp[-7].list); + n->is_from = (yyvsp[-5].boolean); + n->is_program = (yyvsp[-4].boolean); + n->filename = (yyvsp[-3].str); + + if (n->is_program && n->filename == NULL) + ereport(ERROR, + (errcode(PG_ERRCODE_SYNTAX_ERROR), + errmsg("STDIN/STDOUT not allowed with PROGRAM"), + parser_errposition((yylsp[-3])))); + + n->options = NIL; + /* Concatenate user-supplied flags */ + if ((yyvsp[-9].defelt)) + n->options = lappend(n->options, (yyvsp[-9].defelt)); + if ((yyvsp[-6].defelt)) + n->options = lappend(n->options, (yyvsp[-6].defelt)); + if ((yyvsp[-2].defelt)) + n->options = lappend(n->options, (yyvsp[-2].defelt)); + if ((yyvsp[0].list)) + n->options = list_concat(n->options, (yyvsp[0].list)); + (yyval.node) = (PGNode *)n; + } +#line 15405 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 42: -#line 15 "third_party/libpg_query/grammar/statements/variable_reset.y" - { - PGVariableSetStmt *n = makeNode(PGVariableSetStmt); - n->kind = VAR_RESET_ALL; - (yyval.vsetstmt) = n; - ;} +#line 50 "third_party/libpg_query/grammar/statements/copy.y" + { + PGCopyStmt *n = makeNode(PGCopyStmt); + n->relation = NULL; + n->query = (yyvsp[-6].node); + n->attlist = NIL; + n->is_from = false; + n->is_program = (yyvsp[-3].boolean); + n->filename = (yyvsp[-2].str); + n->options = (yyvsp[0].list); + + if (n->is_program && n->filename == NULL) + ereport(ERROR, + (errcode(PG_ERRCODE_SYNTAX_ERROR), + errmsg("STDIN/STDOUT not allowed with PROGRAM"), + parser_errposition((yylsp[-4])))); + + (yyval.node) = (PGNode *)n; + } +#line 15428 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 43: -#line 24 "third_party/libpg_query/grammar/statements/variable_reset.y" - { (yyval.vsetstmt) = (yyvsp[(1) - (1)].vsetstmt); ;} +#line 72 "third_party/libpg_query/grammar/statements/copy.y" + { (yyval.boolean) = true; } +#line 15434 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 44: -#line 26 "third_party/libpg_query/grammar/statements/variable_reset.y" - { - PGVariableSetStmt *n = makeNode(PGVariableSetStmt); - n->kind = VAR_RESET; - n->name = (char*) "timezone"; - (yyval.vsetstmt) = n; - ;} +#line 73 "third_party/libpg_query/grammar/statements/copy.y" + { (yyval.boolean) = false; } +#line 15440 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 45: -#line 33 "third_party/libpg_query/grammar/statements/variable_reset.y" - { - PGVariableSetStmt *n = makeNode(PGVariableSetStmt); - n->kind = VAR_RESET; - n->name = (char*) "transaction_isolation"; - (yyval.vsetstmt) = n; - ;} +#line 79 "third_party/libpg_query/grammar/statements/copy.y" + { + (yyval.defelt) = makeDefElem("delimiter", (PGNode *)makeString((yyvsp[0].str)), (yylsp[-1])); + } +#line 15448 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 46: -#line 12 "third_party/libpg_query/grammar/statements/create_as.y" - { - PGCreateTableAsStmt *ctas = makeNode(PGCreateTableAsStmt); - ctas->query = (yyvsp[(6) - (7)].node); - ctas->into = (yyvsp[(4) - (7)].into); - ctas->relkind = PG_OBJECT_TABLE; - ctas->is_select_into = false; - ctas->onconflict = PG_ERROR_ON_CONFLICT; - /* cram additional flags into the PGIntoClause */ - (yyvsp[(4) - (7)].into)->rel->relpersistence = (yyvsp[(2) - (7)].ival); - (yyvsp[(4) - (7)].into)->skipData = !((yyvsp[(7) - (7)].boolean)); - (yyval.node) = (PGNode *) ctas; - ;} +#line 82 "third_party/libpg_query/grammar/statements/copy.y" + { (yyval.defelt) = NULL; } +#line 15454 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 47: -#line 25 "third_party/libpg_query/grammar/statements/create_as.y" - { - PGCreateTableAsStmt *ctas = makeNode(PGCreateTableAsStmt); - ctas->query = (yyvsp[(9) - (10)].node); - ctas->into = (yyvsp[(7) - (10)].into); - ctas->relkind = PG_OBJECT_TABLE; - ctas->is_select_into = false; - ctas->onconflict = PG_IGNORE_ON_CONFLICT; - /* cram additional flags into the PGIntoClause */ - (yyvsp[(7) - (10)].into)->rel->relpersistence = (yyvsp[(2) - (10)].ival); - (yyvsp[(7) - (10)].into)->skipData = !((yyvsp[(10) - (10)].boolean)); - (yyval.node) = (PGNode *) ctas; - ;} +#line 88 "third_party/libpg_query/grammar/statements/copy.y" + { + (yyval.list) = list_make1((yyvsp[0].node)); + } +#line 15462 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 48: -#line 38 "third_party/libpg_query/grammar/statements/create_as.y" - { - PGCreateTableAsStmt *ctas = makeNode(PGCreateTableAsStmt); - ctas->query = (yyvsp[(8) - (9)].node); - ctas->into = (yyvsp[(6) - (9)].into); - ctas->relkind = PG_OBJECT_TABLE; - ctas->is_select_into = false; - ctas->onconflict = PG_REPLACE_ON_CONFLICT; - /* cram additional flags into the PGIntoClause */ - (yyvsp[(6) - (9)].into)->rel->relpersistence = (yyvsp[(4) - (9)].ival); - (yyvsp[(6) - (9)].into)->skipData = !((yyvsp[(9) - (9)].boolean)); - (yyval.node) = (PGNode *) ctas; - ;} +#line 92 "third_party/libpg_query/grammar/statements/copy.y" + { + (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].node)); + } +#line 15470 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 49: -#line 54 "third_party/libpg_query/grammar/statements/create_as.y" - { (yyval.boolean) = true; ;} +#line 99 "third_party/libpg_query/grammar/statements/copy.y" + {} +#line 15476 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 50: -#line 55 "third_party/libpg_query/grammar/statements/create_as.y" - { (yyval.boolean) = false; ;} +#line 100 "third_party/libpg_query/grammar/statements/copy.y" + {} +#line 15482 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 51: -#line 56 "third_party/libpg_query/grammar/statements/create_as.y" - { (yyval.boolean) = true; ;} +#line 104 "third_party/libpg_query/grammar/statements/copy.y" + {} +#line 15488 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 52: -#line 62 "third_party/libpg_query/grammar/statements/create_as.y" - { - (yyval.into) = makeNode(PGIntoClause); - (yyval.into)->rel = (yyvsp[(1) - (4)].range); - (yyval.into)->colNames = (yyvsp[(2) - (4)].list); - (yyval.into)->options = (yyvsp[(3) - (4)].list); - (yyval.into)->onCommit = (yyvsp[(4) - (4)].oncommit); - (yyval.into)->viewQuery = NULL; - (yyval.into)->skipData = false; /* might get changed later */ - ;} +#line 105 "third_party/libpg_query/grammar/statements/copy.y" + {} +#line 15494 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 53: -#line 8 "third_party/libpg_query/grammar/statements/pragma.y" - { - PGPragmaStmt *n = makeNode(PGPragmaStmt); - n->kind = PG_PRAGMA_TYPE_NOTHING; - n->name = (yyvsp[(2) - (2)].str); - (yyval.node) = (PGNode *)n; - ;} +#line 110 "third_party/libpg_query/grammar/statements/copy.y" + { (yyval.boolean) = true; } +#line 15500 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 54: -#line 15 "third_party/libpg_query/grammar/statements/pragma.y" - { - PGPragmaStmt *n = makeNode(PGPragmaStmt); - n->kind = PG_PRAGMA_TYPE_ASSIGNMENT; - n->name = (yyvsp[(2) - (4)].str); - n->args = (yyvsp[(4) - (4)].list); - (yyval.node) = (PGNode *)n; - ;} +#line 111 "third_party/libpg_query/grammar/statements/copy.y" + { (yyval.boolean) = false; } +#line 15506 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 55: -#line 23 "third_party/libpg_query/grammar/statements/pragma.y" - { - PGPragmaStmt *n = makeNode(PGPragmaStmt); - n->kind = PG_PRAGMA_TYPE_CALL; - n->name = (yyvsp[(2) - (5)].str); - n->args = (yyvsp[(4) - (5)].list); - (yyval.node) = (PGNode *)n; - ;} +#line 115 "third_party/libpg_query/grammar/statements/copy.y" + { (yyval.list) = (yyvsp[0].list); } +#line 15512 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 56: -#line 8 "third_party/libpg_query/grammar/statements/create_schema.y" - { - PGCreateSchemaStmt *n = makeNode(PGCreateSchemaStmt); - /* ...but not both */ - n->schemaname = (yyvsp[(3) - (4)].str); - n->schemaElts = (yyvsp[(4) - (4)].list); - n->onconflict = PG_ERROR_ON_CONFLICT; - (yyval.node) = (PGNode *)n; - ;} +#line 116 "third_party/libpg_query/grammar/statements/copy.y" + { (yyval.list) = (yyvsp[-1].list); } +#line 15518 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 57: -#line 17 "third_party/libpg_query/grammar/statements/create_schema.y" - { - PGCreateSchemaStmt *n = makeNode(PGCreateSchemaStmt); - /* ...but not here */ - n->schemaname = (yyvsp[(6) - (7)].str); - if ((yyvsp[(7) - (7)].list) != NIL) - ereport(ERROR, - (errcode(PG_ERRCODE_FEATURE_NOT_SUPPORTED), - errmsg("CREATE SCHEMA IF NOT EXISTS cannot include schema elements"), - parser_errposition((yylsp[(7) - (7)])))); - n->schemaElts = (yyvsp[(7) - (7)].list); - n->onconflict = PG_IGNORE_ON_CONFLICT; - (yyval.node) = (PGNode *)n; - ;} +#line 121 "third_party/libpg_query/grammar/statements/copy.y" + { (yyval.node) = (PGNode *) makeString((yyvsp[0].str)); } +#line 15524 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 58: -#line 35 "third_party/libpg_query/grammar/statements/create_schema.y" - { - if ((yyloc) < 0) /* see comments for YYLLOC_DEFAULT */ - (yyloc) = (yylsp[(2) - (2)]); - (yyval.list) = lappend((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].node)); - ;} +#line 122 "third_party/libpg_query/grammar/statements/copy.y" + { (yyval.node) = (PGNode *) (yyvsp[0].value); } +#line 15530 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 59: -#line 41 "third_party/libpg_query/grammar/statements/create_schema.y" - { (yyval.list) = NIL; ;} +#line 123 "third_party/libpg_query/grammar/statements/copy.y" + { (yyval.node) = (PGNode *) makeNode(PGAStar); } +#line 15536 "third_party/libpg_query/grammar/grammar_out.cpp" + break; + + case 60: +#line 124 "third_party/libpg_query/grammar/statements/copy.y" + { (yyval.node) = (PGNode *) (yyvsp[-1].list); } +#line 15542 "third_party/libpg_query/grammar/grammar_out.cpp" + break; + + case 61: +#line 125 "third_party/libpg_query/grammar/statements/copy.y" + { (yyval.node) = NULL; } +#line 15548 "third_party/libpg_query/grammar/grammar_out.cpp" + break; + + case 62: +#line 131 "third_party/libpg_query/grammar/statements/copy.y" + { + (yyval.defelt) = makeDefElem((yyvsp[-1].str), (yyvsp[0].node), (yylsp[-1])); + } +#line 15556 "third_party/libpg_query/grammar/grammar_out.cpp" + break; + + case 63: +#line 139 "third_party/libpg_query/grammar/statements/copy.y" + { + (yyval.defelt) = makeDefElem("oids", (PGNode *)makeInteger(true), (yylsp[-1])); + } +#line 15564 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 64: -#line 10 "third_party/libpg_query/grammar/statements/alter_table.y" - { - PGAlterTableStmt *n = makeNode(PGAlterTableStmt); - n->relation = (yyvsp[(3) - (4)].range); - n->cmds = (yyvsp[(4) - (4)].list); - n->relkind = PG_OBJECT_TABLE; - n->missing_ok = false; - (yyval.node) = (PGNode *)n; - ;} +#line 142 "third_party/libpg_query/grammar/statements/copy.y" + { (yyval.defelt) = NULL; } +#line 15570 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 65: -#line 19 "third_party/libpg_query/grammar/statements/alter_table.y" - { - PGAlterTableStmt *n = makeNode(PGAlterTableStmt); - n->relation = (yyvsp[(5) - (6)].range); - n->cmds = (yyvsp[(6) - (6)].list); - n->relkind = PG_OBJECT_TABLE; - n->missing_ok = true; - (yyval.node) = (PGNode *)n; - ;} +#line 147 "third_party/libpg_query/grammar/statements/copy.y" + { (yyval.list) = lappend((yyvsp[-1].list), (yyvsp[0].defelt)); } +#line 15576 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 66: -#line 28 "third_party/libpg_query/grammar/statements/alter_table.y" - { - PGAlterTableStmt *n = makeNode(PGAlterTableStmt); - n->relation = (yyvsp[(3) - (4)].range); - n->cmds = (yyvsp[(4) - (4)].list); - n->relkind = PG_OBJECT_INDEX; - n->missing_ok = false; - (yyval.node) = (PGNode *)n; - ;} +#line 148 "third_party/libpg_query/grammar/statements/copy.y" + { (yyval.list) = NIL; } +#line 15582 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 67: -#line 37 "third_party/libpg_query/grammar/statements/alter_table.y" - { - PGAlterTableStmt *n = makeNode(PGAlterTableStmt); - n->relation = (yyvsp[(5) - (6)].range); - n->cmds = (yyvsp[(6) - (6)].list); - n->relkind = PG_OBJECT_INDEX; - n->missing_ok = true; - (yyval.node) = (PGNode *)n; - ;} +#line 154 "third_party/libpg_query/grammar/statements/copy.y" + { + (yyval.defelt) = makeDefElem("format", (PGNode *)makeString("binary"), (yylsp[0])); + } +#line 15590 "third_party/libpg_query/grammar/grammar_out.cpp" break; - - case 68: -#line 46 "third_party/libpg_query/grammar/statements/alter_table.y" - { - PGAlterTableStmt *n = makeNode(PGAlterTableStmt); - n->relation = (yyvsp[(3) - (4)].range); - n->cmds = (yyvsp[(4) - (4)].list); - n->relkind = PG_OBJECT_SEQUENCE; - n->missing_ok = false; - (yyval.node) = (PGNode *)n; - ;} + + case 68: +#line 157 "third_party/libpg_query/grammar/statements/copy.y" + { (yyval.defelt) = NULL; } +#line 15596 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 69: -#line 55 "third_party/libpg_query/grammar/statements/alter_table.y" - { - PGAlterTableStmt *n = makeNode(PGAlterTableStmt); - n->relation = (yyvsp[(5) - (6)].range); - n->cmds = (yyvsp[(6) - (6)].list); - n->relkind = PG_OBJECT_SEQUENCE; - n->missing_ok = true; - (yyval.node) = (PGNode *)n; - ;} +#line 163 "third_party/libpg_query/grammar/statements/copy.y" + { + (yyval.defelt) = makeDefElem("format", (PGNode *)makeString("binary"), (yylsp[0])); + } +#line 15604 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 70: -#line 64 "third_party/libpg_query/grammar/statements/alter_table.y" - { - PGAlterTableStmt *n = makeNode(PGAlterTableStmt); - n->relation = (yyvsp[(3) - (4)].range); - n->cmds = (yyvsp[(4) - (4)].list); - n->relkind = PG_OBJECT_VIEW; - n->missing_ok = false; - (yyval.node) = (PGNode *)n; - ;} +#line 167 "third_party/libpg_query/grammar/statements/copy.y" + { + (yyval.defelt) = makeDefElem("oids", (PGNode *)makeInteger(true), (yylsp[0])); + } +#line 15612 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 71: -#line 73 "third_party/libpg_query/grammar/statements/alter_table.y" - { - PGAlterTableStmt *n = makeNode(PGAlterTableStmt); - n->relation = (yyvsp[(5) - (6)].range); - n->cmds = (yyvsp[(6) - (6)].list); - n->relkind = PG_OBJECT_VIEW; - n->missing_ok = true; - (yyval.node) = (PGNode *)n; - ;} +#line 171 "third_party/libpg_query/grammar/statements/copy.y" + { + (yyval.defelt) = makeDefElem("freeze", (PGNode *)makeInteger(true), (yylsp[0])); + } +#line 15620 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 72: -#line 86 "third_party/libpg_query/grammar/statements/alter_table.y" - { (yyval.list) = list_make1((yyvsp[(1) - (1)].defelt)); ;} +#line 175 "third_party/libpg_query/grammar/statements/copy.y" + { + (yyval.defelt) = makeDefElem("delimiter", (PGNode *)makeString((yyvsp[0].str)), (yylsp[-2])); + } +#line 15628 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 73: -#line 88 "third_party/libpg_query/grammar/statements/alter_table.y" - { (yyval.list) = lappend((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].defelt)); ;} +#line 179 "third_party/libpg_query/grammar/statements/copy.y" + { + (yyval.defelt) = makeDefElem("null", (PGNode *)makeString((yyvsp[0].str)), (yylsp[-2])); + } +#line 15636 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 74: -#line 93 "third_party/libpg_query/grammar/statements/alter_table.y" - { (yyval.node) = (yyvsp[(3) - (3)].node); ;} +#line 183 "third_party/libpg_query/grammar/statements/copy.y" + { + (yyval.defelt) = makeDefElem("format", (PGNode *)makeString("csv"), (yylsp[0])); + } +#line 15644 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 75: -#line 94 "third_party/libpg_query/grammar/statements/alter_table.y" - { (yyval.node) = NULL; ;} +#line 187 "third_party/libpg_query/grammar/statements/copy.y" + { + (yyval.defelt) = makeDefElem("header", (PGNode *)makeInteger(true), (yylsp[0])); + } +#line 15652 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 76: -#line 100 "third_party/libpg_query/grammar/statements/alter_table.y" - { - (yyval.defelt) = makeDefElem("restart", NULL, (yylsp[(1) - (1)])); - ;} +#line 191 "third_party/libpg_query/grammar/statements/copy.y" + { + (yyval.defelt) = makeDefElem("quote", (PGNode *)makeString((yyvsp[0].str)), (yylsp[-2])); + } +#line 15660 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 77: -#line 104 "third_party/libpg_query/grammar/statements/alter_table.y" - { - (yyval.defelt) = makeDefElem("restart", (PGNode *)(yyvsp[(3) - (3)].value), (yylsp[(1) - (3)])); - ;} +#line 195 "third_party/libpg_query/grammar/statements/copy.y" + { + (yyval.defelt) = makeDefElem("escape", (PGNode *)makeString((yyvsp[0].str)), (yylsp[-2])); + } +#line 15668 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 78: -#line 108 "third_party/libpg_query/grammar/statements/alter_table.y" - { - if (strcmp((yyvsp[(2) - (2)].defelt)->defname, "as") == 0 || - strcmp((yyvsp[(2) - (2)].defelt)->defname, "restart") == 0 || - strcmp((yyvsp[(2) - (2)].defelt)->defname, "owned_by") == 0) - ereport(ERROR, - (errcode(PG_ERRCODE_SYNTAX_ERROR), - errmsg("sequence option \"%s\" not supported here", (yyvsp[(2) - (2)].defelt)->defname), - parser_errposition((yylsp[(2) - (2)])))); - (yyval.defelt) = (yyvsp[(2) - (2)].defelt); - ;} +#line 199 "third_party/libpg_query/grammar/statements/copy.y" + { + (yyval.defelt) = makeDefElem("force_quote", (PGNode *)(yyvsp[0].list), (yylsp[-2])); + } +#line 15676 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 79: -#line 119 "third_party/libpg_query/grammar/statements/alter_table.y" - { - (yyval.defelt) = makeDefElem("generated", (PGNode *) makeInteger((yyvsp[(3) - (3)].ival)), (yylsp[(1) - (3)])); - ;} +#line 203 "third_party/libpg_query/grammar/statements/copy.y" + { + (yyval.defelt) = makeDefElem("force_quote", (PGNode *)makeNode(PGAStar), (yylsp[-2])); + } +#line 15684 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 80: -#line 127 "third_party/libpg_query/grammar/statements/alter_table.y" - { - (yyval.list) = list_make1((yyvsp[(1) - (1)].defelt)); - ;} +#line 207 "third_party/libpg_query/grammar/statements/copy.y" + { + (yyval.defelt) = makeDefElem("force_not_null", (PGNode *)(yyvsp[0].list), (yylsp[-3])); + } +#line 15692 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 81: -#line 131 "third_party/libpg_query/grammar/statements/alter_table.y" - { - (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].defelt)); - ;} +#line 211 "third_party/libpg_query/grammar/statements/copy.y" + { + (yyval.defelt) = makeDefElem("force_null", (PGNode *)(yyvsp[0].list), (yylsp[-2])); + } +#line 15700 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 82: -#line 140 "third_party/libpg_query/grammar/statements/alter_table.y" - { - PGAlterTableCmd *n = makeNode(PGAlterTableCmd); - n->subtype = PG_AT_AddColumn; - n->def = (yyvsp[(2) - (2)].node); - n->missing_ok = false; - (yyval.node) = (PGNode *)n; - ;} +#line 215 "third_party/libpg_query/grammar/statements/copy.y" + { + (yyval.defelt) = makeDefElem("encoding", (PGNode *)makeString((yyvsp[0].str)), (yylsp[-1])); + } +#line 15708 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 83: -#line 149 "third_party/libpg_query/grammar/statements/alter_table.y" - { - PGAlterTableCmd *n = makeNode(PGAlterTableCmd); - n->subtype = PG_AT_AddColumn; - n->def = (yyvsp[(5) - (5)].node); - n->missing_ok = true; - (yyval.node) = (PGNode *)n; - ;} +#line 222 "third_party/libpg_query/grammar/statements/copy.y" + { (yyval.node) = (PGNode *) makeString((yyvsp[0].str)); } +#line 15714 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 84: -#line 158 "third_party/libpg_query/grammar/statements/alter_table.y" - { - PGAlterTableCmd *n = makeNode(PGAlterTableCmd); - n->subtype = PG_AT_AddColumn; - n->def = (yyvsp[(3) - (3)].node); - n->missing_ok = false; - (yyval.node) = (PGNode *)n; - ;} +#line 228 "third_party/libpg_query/grammar/statements/copy.y" + { (yyval.str) = (yyvsp[0].str); } +#line 15720 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 85: -#line 167 "third_party/libpg_query/grammar/statements/alter_table.y" - { - PGAlterTableCmd *n = makeNode(PGAlterTableCmd); - n->subtype = PG_AT_AddColumn; - n->def = (yyvsp[(6) - (6)].node); - n->missing_ok = true; - (yyval.node) = (PGNode *)n; - ;} +#line 229 "third_party/libpg_query/grammar/statements/copy.y" + { (yyval.str) = NULL; } +#line 15726 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 86: -#line 176 "third_party/libpg_query/grammar/statements/alter_table.y" - { - PGAlterTableCmd *n = makeNode(PGAlterTableCmd); - n->subtype = PG_AT_ColumnDefault; - n->name = (yyvsp[(3) - (4)].str); - n->def = (yyvsp[(4) - (4)].node); - (yyval.node) = (PGNode *)n; - ;} +#line 230 "third_party/libpg_query/grammar/statements/copy.y" + { (yyval.str) = NULL; } +#line 15732 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 87: -#line 185 "third_party/libpg_query/grammar/statements/alter_table.y" - { - PGAlterTableCmd *n = makeNode(PGAlterTableCmd); - n->subtype = PG_AT_DropNotNull; - n->name = (yyvsp[(3) - (6)].str); - (yyval.node) = (PGNode *)n; - ;} +#line 236 "third_party/libpg_query/grammar/statements/copy.y" + { + (yyval.list) = list_make1((yyvsp[0].defelt)); + } +#line 15740 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 88: -#line 193 "third_party/libpg_query/grammar/statements/alter_table.y" - { - PGAlterTableCmd *n = makeNode(PGAlterTableCmd); - n->subtype = PG_AT_SetNotNull; - n->name = (yyvsp[(3) - (6)].str); - (yyval.node) = (PGNode *)n; - ;} +#line 240 "third_party/libpg_query/grammar/statements/copy.y" + { + (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].defelt)); + } +#line 15748 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 89: -#line 201 "third_party/libpg_query/grammar/statements/alter_table.y" - { - PGAlterTableCmd *n = makeNode(PGAlterTableCmd); - n->subtype = PG_AT_SetStatistics; - n->name = (yyvsp[(3) - (6)].str); - n->def = (PGNode *) makeInteger((yyvsp[(6) - (6)].ival)); - (yyval.node) = (PGNode *)n; - ;} +#line 2 "third_party/libpg_query/grammar/statements/variable_reset.y" + { (yyval.node) = (PGNode *) (yyvsp[0].vsetstmt); } +#line 15754 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 90: -#line 210 "third_party/libpg_query/grammar/statements/alter_table.y" - { - PGAlterTableCmd *n = makeNode(PGAlterTableCmd); - n->subtype = PG_AT_SetOptions; - n->name = (yyvsp[(3) - (5)].str); - n->def = (PGNode *) (yyvsp[(5) - (5)].list); - (yyval.node) = (PGNode *)n; - ;} +#line 8 "third_party/libpg_query/grammar/statements/variable_reset.y" + { + PGVariableSetStmt *n = makeNode(PGVariableSetStmt); + n->kind = VAR_RESET; + n->name = (yyvsp[0].str); + (yyval.vsetstmt) = n; + } +#line 15765 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 91: -#line 219 "third_party/libpg_query/grammar/statements/alter_table.y" - { - PGAlterTableCmd *n = makeNode(PGAlterTableCmd); - n->subtype = PG_AT_ResetOptions; - n->name = (yyvsp[(3) - (5)].str); - n->def = (PGNode *) (yyvsp[(5) - (5)].list); - (yyval.node) = (PGNode *)n; - ;} +#line 15 "third_party/libpg_query/grammar/statements/variable_reset.y" + { + PGVariableSetStmt *n = makeNode(PGVariableSetStmt); + n->kind = VAR_RESET_ALL; + (yyval.vsetstmt) = n; + } +#line 15775 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 92: -#line 228 "third_party/libpg_query/grammar/statements/alter_table.y" - { - PGAlterTableCmd *n = makeNode(PGAlterTableCmd); - n->subtype = PG_AT_SetStorage; - n->name = (yyvsp[(3) - (6)].str); - n->def = (PGNode *) makeString((yyvsp[(6) - (6)].str)); - (yyval.node) = (PGNode *)n; - ;} +#line 24 "third_party/libpg_query/grammar/statements/variable_reset.y" + { (yyval.vsetstmt) = (yyvsp[0].vsetstmt); } +#line 15781 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 93: -#line 237 "third_party/libpg_query/grammar/statements/alter_table.y" - { - PGAlterTableCmd *n = makeNode(PGAlterTableCmd); - PGConstraint *c = makeNode(PGConstraint); - - c->contype = PG_CONSTR_IDENTITY; - c->generated_when = (yyvsp[(6) - (9)].ival); - c->options = (yyvsp[(9) - (9)].list); - c->location = (yylsp[(5) - (9)]); - - n->subtype = PG_AT_AddIdentity; - n->name = (yyvsp[(3) - (9)].str); - n->def = (PGNode *) c; - - (yyval.node) = (PGNode *)n; - ;} +#line 26 "third_party/libpg_query/grammar/statements/variable_reset.y" + { + PGVariableSetStmt *n = makeNode(PGVariableSetStmt); + n->kind = VAR_RESET; + n->name = (char*) "timezone"; + (yyval.vsetstmt) = n; + } +#line 15792 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 94: -#line 254 "third_party/libpg_query/grammar/statements/alter_table.y" - { - PGAlterTableCmd *n = makeNode(PGAlterTableCmd); - n->subtype = PG_AT_SetIdentity; - n->name = (yyvsp[(3) - (4)].str); - n->def = (PGNode *) (yyvsp[(4) - (4)].list); - (yyval.node) = (PGNode *)n; - ;} +#line 33 "third_party/libpg_query/grammar/statements/variable_reset.y" + { + PGVariableSetStmt *n = makeNode(PGVariableSetStmt); + n->kind = VAR_RESET; + n->name = (char*) "transaction_isolation"; + (yyval.vsetstmt) = n; + } +#line 15803 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 95: -#line 263 "third_party/libpg_query/grammar/statements/alter_table.y" - { - PGAlterTableCmd *n = makeNode(PGAlterTableCmd); - n->subtype = AT_DropIdentity; - n->name = (yyvsp[(3) - (5)].str); - n->missing_ok = false; - (yyval.node) = (PGNode *)n; - ;} - break; - - case 96: -#line 272 "third_party/libpg_query/grammar/statements/alter_table.y" - { - PGAlterTableCmd *n = makeNode(PGAlterTableCmd); - n->subtype = AT_DropIdentity; - n->name = (yyvsp[(3) - (7)].str); - n->missing_ok = true; - (yyval.node) = (PGNode *)n; - ;} - break; - - case 97: -#line 281 "third_party/libpg_query/grammar/statements/alter_table.y" - { - PGAlterTableCmd *n = makeNode(PGAlterTableCmd); - n->subtype = PG_AT_DropColumn; - n->name = (yyvsp[(5) - (6)].str); - n->behavior = (yyvsp[(6) - (6)].dbehavior); - n->missing_ok = true; - (yyval.node) = (PGNode *)n; - ;} +#line 7 "third_party/libpg_query/grammar/statements/call.y" + { + PGCallStmt *n = makeNode(PGCallStmt); + n->func = (yyvsp[0].node); + (yyval.node) = (PGNode *) n; + } +#line 15813 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 98: -#line 291 "third_party/libpg_query/grammar/statements/alter_table.y" - { - PGAlterTableCmd *n = makeNode(PGAlterTableCmd); - n->subtype = PG_AT_DropColumn; - n->name = (yyvsp[(3) - (4)].str); - n->behavior = (yyvsp[(4) - (4)].dbehavior); - n->missing_ok = false; - (yyval.node) = (PGNode *)n; - ;} +#line 52 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.node) = (yyvsp[-1].node); } +#line 15819 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 99: -#line 304 "third_party/libpg_query/grammar/statements/alter_table.y" - { - PGAlterTableCmd *n = makeNode(PGAlterTableCmd); - PGColumnDef *def = makeNode(PGColumnDef); - n->subtype = PG_AT_AlterColumnType; - n->name = (yyvsp[(3) - (8)].str); - n->def = (PGNode *) def; - /* We only use these fields of the PGColumnDef node */ - def->typeName = (yyvsp[(6) - (8)].typnam); - def->collClause = (PGCollateClause *) (yyvsp[(7) - (8)].node); - def->raw_default = (yyvsp[(8) - (8)].node); - def->location = (yylsp[(3) - (8)]); - (yyval.node) = (PGNode *)n; - ;} +#line 53 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.node) = (yyvsp[-1].node); } +#line 15825 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 100: -#line 319 "third_party/libpg_query/grammar/statements/alter_table.y" - { - PGAlterTableCmd *n = makeNode(PGAlterTableCmd); - n->subtype = PG_AT_AlterColumnGenericOptions; - n->name = (yyvsp[(3) - (4)].str); - n->def = (PGNode *) (yyvsp[(4) - (4)].list); - (yyval.node) = (PGNode *)n; - ;} +#line 68 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.node) = (yyvsp[0].node); } +#line 15831 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 101: -#line 328 "third_party/libpg_query/grammar/statements/alter_table.y" - { - PGAlterTableCmd *n = makeNode(PGAlterTableCmd); - n->subtype = PG_AT_AddConstraint; - n->def = (yyvsp[(2) - (2)].node); - (yyval.node) = (PGNode *)n; - ;} +#line 70 "third_party/libpg_query/grammar/statements/select.y" + { + insertSelectOptions((PGSelectStmt *) (yyvsp[-1].node), (yyvsp[0].list), NIL, + NULL, NULL, NULL, + yyscanner); + (yyval.node) = (yyvsp[-1].node); + } +#line 15842 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 102: -#line 336 "third_party/libpg_query/grammar/statements/alter_table.y" - { - PGAlterTableCmd *n = makeNode(PGAlterTableCmd); - PGConstraint *c = makeNode(PGConstraint); - n->subtype = PG_AT_AlterConstraint; - n->def = (PGNode *) c; - c->contype = PG_CONSTR_FOREIGN; /* others not supported, yet */ - c->conname = (yyvsp[(3) - (4)].str); - processCASbits((yyvsp[(4) - (4)].ival), (yylsp[(4) - (4)]), "ALTER CONSTRAINT statement", - &c->deferrable, - &c->initdeferred, - NULL, NULL, yyscanner); - (yyval.node) = (PGNode *)n; - ;} +#line 77 "third_party/libpg_query/grammar/statements/select.y" + { + insertSelectOptions((PGSelectStmt *) (yyvsp[-3].node), (yyvsp[-2].list), (yyvsp[-1].list), + (PGNode*) list_nth((yyvsp[0].list), 0), (PGNode*) list_nth((yyvsp[0].list), 1), + NULL, + yyscanner); + (yyval.node) = (yyvsp[-3].node); + } +#line 15854 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 103: -#line 351 "third_party/libpg_query/grammar/statements/alter_table.y" - { - PGAlterTableCmd *n = makeNode(PGAlterTableCmd); - n->subtype = PG_AT_ValidateConstraint; - n->name = (yyvsp[(3) - (3)].str); - (yyval.node) = (PGNode *)n; - ;} +#line 85 "third_party/libpg_query/grammar/statements/select.y" + { + insertSelectOptions((PGSelectStmt *) (yyvsp[-3].node), (yyvsp[-2].list), (yyvsp[0].list), + (PGNode*) list_nth((yyvsp[-1].list), 0), (PGNode*) list_nth((yyvsp[-1].list), 1), + NULL, + yyscanner); + (yyval.node) = (yyvsp[-3].node); + } +#line 15866 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 104: -#line 359 "third_party/libpg_query/grammar/statements/alter_table.y" - { - PGAlterTableCmd *n = makeNode(PGAlterTableCmd); - n->subtype = PG_AT_DropConstraint; - n->name = (yyvsp[(5) - (6)].str); - n->behavior = (yyvsp[(6) - (6)].dbehavior); - n->missing_ok = true; - (yyval.node) = (PGNode *)n; - ;} +#line 93 "third_party/libpg_query/grammar/statements/select.y" + { + insertSelectOptions((PGSelectStmt *) (yyvsp[0].node), NULL, NIL, + NULL, NULL, + (yyvsp[-1].with), + yyscanner); + (yyval.node) = (yyvsp[0].node); + } +#line 15878 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 105: -#line 369 "third_party/libpg_query/grammar/statements/alter_table.y" - { - PGAlterTableCmd *n = makeNode(PGAlterTableCmd); - n->subtype = PG_AT_DropConstraint; - n->name = (yyvsp[(3) - (4)].str); - n->behavior = (yyvsp[(4) - (4)].dbehavior); - n->missing_ok = false; - (yyval.node) = (PGNode *)n; - ;} +#line 101 "third_party/libpg_query/grammar/statements/select.y" + { + insertSelectOptions((PGSelectStmt *) (yyvsp[-1].node), (yyvsp[0].list), NIL, + NULL, NULL, + (yyvsp[-2].with), + yyscanner); + (yyval.node) = (yyvsp[-1].node); + } +#line 15890 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 106: -#line 379 "third_party/libpg_query/grammar/statements/alter_table.y" - { - PGAlterTableCmd *n = makeNode(PGAlterTableCmd); - n->subtype = PG_AT_SetLogged; - (yyval.node) = (PGNode *)n; - ;} +#line 109 "third_party/libpg_query/grammar/statements/select.y" + { + insertSelectOptions((PGSelectStmt *) (yyvsp[-3].node), (yyvsp[-2].list), (yyvsp[-1].list), + (PGNode*) list_nth((yyvsp[0].list), 0), (PGNode*) list_nth((yyvsp[0].list), 1), + (yyvsp[-4].with), + yyscanner); + (yyval.node) = (yyvsp[-3].node); + } +#line 15902 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 107: -#line 386 "third_party/libpg_query/grammar/statements/alter_table.y" - { - PGAlterTableCmd *n = makeNode(PGAlterTableCmd); - n->subtype = PG_AT_SetUnLogged; - (yyval.node) = (PGNode *)n; - ;} +#line 117 "third_party/libpg_query/grammar/statements/select.y" + { + insertSelectOptions((PGSelectStmt *) (yyvsp[-3].node), (yyvsp[-2].list), (yyvsp[0].list), + (PGNode*) list_nth((yyvsp[-1].list), 0), (PGNode*) list_nth((yyvsp[-1].list), 1), + (yyvsp[-4].with), + yyscanner); + (yyval.node) = (yyvsp[-3].node); + } +#line 15914 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 108: -#line 393 "third_party/libpg_query/grammar/statements/alter_table.y" - { - PGAlterTableCmd *n = makeNode(PGAlterTableCmd); - n->subtype = PG_AT_SetRelOptions; - n->def = (PGNode *)(yyvsp[(2) - (2)].list); - (yyval.node) = (PGNode *)n; - ;} +#line 127 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.node) = (yyvsp[0].node); } +#line 15920 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 109: -#line 401 "third_party/libpg_query/grammar/statements/alter_table.y" - { - PGAlterTableCmd *n = makeNode(PGAlterTableCmd); - n->subtype = PG_AT_ResetRelOptions; - n->def = (PGNode *)(yyvsp[(2) - (2)].list); - (yyval.node) = (PGNode *)n; - ;} + case 109: +#line 128 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.node) = (yyvsp[0].node); } +#line 15926 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 110: -#line 408 "third_party/libpg_query/grammar/statements/alter_table.y" - { - PGAlterTableCmd *n = makeNode(PGAlterTableCmd); - n->subtype = PG_AT_GenericOptions; - n->def = (PGNode *)(yyvsp[(1) - (1)].list); - (yyval.node) = (PGNode *) n; - ;} +#line 158 "third_party/libpg_query/grammar/statements/select.y" + { + PGSelectStmt *n = makeNode(PGSelectStmt); + n->targetList = (yyvsp[-8].list); + n->intoClause = (yyvsp[-7].into); + n->fromClause = (yyvsp[-6].list); + n->whereClause = (yyvsp[-5].node); + n->groupClause = (yyvsp[-4].list); + n->havingClause = (yyvsp[-3].node); + n->windowClause = (yyvsp[-2].list); + n->qualifyClause = (yyvsp[-1].node); + n->sampleOptions = (yyvsp[0].node); + (yyval.node) = (PGNode *)n; + } +#line 15944 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 111: -#line 418 "third_party/libpg_query/grammar/statements/alter_table.y" - { (yyval.node) = (yyvsp[(2) - (2)].node); ;} +#line 174 "third_party/libpg_query/grammar/statements/select.y" + { + PGSelectStmt *n = makeNode(PGSelectStmt); + n->distinctClause = (yyvsp[-9].list); + n->targetList = (yyvsp[-8].list); + n->intoClause = (yyvsp[-7].into); + n->fromClause = (yyvsp[-6].list); + n->whereClause = (yyvsp[-5].node); + n->groupClause = (yyvsp[-4].list); + n->havingClause = (yyvsp[-3].node); + n->windowClause = (yyvsp[-2].list); + n->qualifyClause = (yyvsp[-1].node); + n->sampleOptions = (yyvsp[0].node); + (yyval.node) = (PGNode *)n; + } +#line 15963 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 112: -#line 419 "third_party/libpg_query/grammar/statements/alter_table.y" - { (yyval.node) = NULL; ;} +#line 188 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.node) = (yyvsp[0].node); } +#line 15969 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 113: -#line 425 "third_party/libpg_query/grammar/statements/alter_table.y" - { - (yyval.defelt) = (yyvsp[(1) - (1)].defelt); - ;} +#line 190 "third_party/libpg_query/grammar/statements/select.y" + { + /* same as SELECT * FROM relation_expr */ + PGColumnRef *cr = makeNode(PGColumnRef); + PGResTarget *rt = makeNode(PGResTarget); + PGSelectStmt *n = makeNode(PGSelectStmt); + + cr->fields = list_make1(makeNode(PGAStar)); + cr->location = -1; + + rt->name = NULL; + rt->indirection = NIL; + rt->val = (PGNode *)cr; + rt->location = -1; + + n->targetList = list_make1(rt); + n->fromClause = list_make1((yyvsp[0].range)); + (yyval.node) = (PGNode *)n; + } +#line 15992 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 114: -#line 429 "third_party/libpg_query/grammar/statements/alter_table.y" - { - (yyval.defelt) = (yyvsp[(2) - (2)].defelt); - (yyval.defelt)->defaction = PG_DEFELEM_SET; - ;} +#line 209 "third_party/libpg_query/grammar/statements/select.y" + { + (yyval.node) = makeSetOp(PG_SETOP_UNION, (yyvsp[-1].boolean), (yyvsp[-3].node), (yyvsp[0].node)); + } +#line 16000 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 115: -#line 434 "third_party/libpg_query/grammar/statements/alter_table.y" - { - (yyval.defelt) = (yyvsp[(2) - (2)].defelt); - (yyval.defelt)->defaction = PG_DEFELEM_ADD; - ;} +#line 213 "third_party/libpg_query/grammar/statements/select.y" + { + (yyval.node) = makeSetOp(PG_SETOP_INTERSECT, (yyvsp[-1].boolean), (yyvsp[-3].node), (yyvsp[0].node)); + } +#line 16008 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 116: -#line 439 "third_party/libpg_query/grammar/statements/alter_table.y" - { - (yyval.defelt) = makeDefElemExtended(NULL, (yyvsp[(2) - (2)].str), NULL, DEFELEM_DROP, (yylsp[(2) - (2)])); - ;} +#line 217 "third_party/libpg_query/grammar/statements/select.y" + { + (yyval.node) = makeSetOp(PG_SETOP_EXCEPT, (yyvsp[-1].boolean), (yyvsp[-3].node), (yyvsp[0].node)); + } +#line 16016 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 117: -#line 446 "third_party/libpg_query/grammar/statements/alter_table.y" - { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); ;} +#line 234 "third_party/libpg_query/grammar/statements/select.y" + { + (yyval.with) = makeNode(PGWithClause); + (yyval.with)->ctes = (yyvsp[0].list); + (yyval.with)->recursive = false; + (yyval.with)->location = (yylsp[-1]); + } +#line 16027 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 118: -#line 447 "third_party/libpg_query/grammar/statements/alter_table.y" - { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node)); ;} +#line 241 "third_party/libpg_query/grammar/statements/select.y" + { + (yyval.with) = makeNode(PGWithClause); + (yyval.with)->ctes = (yyvsp[0].list); + (yyval.with)->recursive = false; + (yyval.with)->location = (yylsp[-1]); + } +#line 16038 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 119: -#line 452 "third_party/libpg_query/grammar/statements/alter_table.y" - { (yyval.list) = (yyvsp[(3) - (4)].list); ;} +#line 248 "third_party/libpg_query/grammar/statements/select.y" + { + (yyval.with) = makeNode(PGWithClause); + (yyval.with)->ctes = (yyvsp[0].list); + (yyval.with)->recursive = true; + (yyval.with)->location = (yylsp[-2]); + } +#line 16049 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 120: -#line 456 "third_party/libpg_query/grammar/statements/alter_table.y" - { (yyval.ival) = 1; ;} +#line 257 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = list_make1((yyvsp[0].node)); } +#line 16055 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 121: -#line 457 "third_party/libpg_query/grammar/statements/alter_table.y" - { (yyval.ival) = 0; ;} +#line 258 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].node)); } +#line 16061 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 122: -#line 458 "third_party/libpg_query/grammar/statements/alter_table.y" - { (yyval.ival) = 0; ;} +#line 262 "third_party/libpg_query/grammar/statements/select.y" + { + PGCommonTableExpr *n = makeNode(PGCommonTableExpr); + n->ctename = (yyvsp[-5].str); + n->aliascolnames = (yyvsp[-4].list); + n->ctequery = (yyvsp[-1].node); + n->location = (yylsp[-5]); + (yyval.node) = (PGNode *) n; + } +#line 16074 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 123: -#line 8 "third_party/libpg_query/grammar/statements/deallocate.y" - { - PGDeallocateStmt *n = makeNode(PGDeallocateStmt); - n->name = (yyvsp[(2) - (2)].str); - (yyval.node) = (PGNode *) n; - ;} +#line 274 "third_party/libpg_query/grammar/statements/select.y" + { + (yyval.into) = makeNode(PGIntoClause); + (yyval.into)->rel = (yyvsp[0].range); + (yyval.into)->colNames = NIL; + (yyval.into)->options = NIL; + (yyval.into)->onCommit = PG_ONCOMMIT_NOOP; + (yyval.into)->viewQuery = NULL; + (yyval.into)->skipData = false; + } +#line 16088 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 124: -#line 14 "third_party/libpg_query/grammar/statements/deallocate.y" - { - PGDeallocateStmt *n = makeNode(PGDeallocateStmt); - n->name = (yyvsp[(3) - (3)].str); - (yyval.node) = (PGNode *) n; - ;} +#line 284 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.into) = NULL; } +#line 16094 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 125: -#line 20 "third_party/libpg_query/grammar/statements/deallocate.y" - { - PGDeallocateStmt *n = makeNode(PGDeallocateStmt); - n->name = NULL; - (yyval.node) = (PGNode *) n; - ;} +#line 293 "third_party/libpg_query/grammar/statements/select.y" + { + (yyval.range) = (yyvsp[0].range); + (yyval.range)->relpersistence = PG_RELPERSISTENCE_TEMP; + } +#line 16103 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 126: -#line 26 "third_party/libpg_query/grammar/statements/deallocate.y" - { - PGDeallocateStmt *n = makeNode(PGDeallocateStmt); - n->name = NULL; - (yyval.node) = (PGNode *) n; - ;} +#line 298 "third_party/libpg_query/grammar/statements/select.y" + { + (yyval.range) = (yyvsp[0].range); + (yyval.range)->relpersistence = PG_RELPERSISTENCE_TEMP; + } +#line 16112 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 127: -#line 9 "third_party/libpg_query/grammar/statements/delete.y" - { - PGDeleteStmt *n = makeNode(PGDeleteStmt); - n->relation = (yyvsp[(4) - (7)].range); - n->usingClause = (yyvsp[(5) - (7)].list); - n->whereClause = (yyvsp[(6) - (7)].node); - n->returningList = (yyvsp[(7) - (7)].list); - n->withClause = (yyvsp[(1) - (7)].with); - (yyval.node) = (PGNode *)n; - ;} +#line 303 "third_party/libpg_query/grammar/statements/select.y" + { + (yyval.range) = (yyvsp[0].range); + (yyval.range)->relpersistence = PG_RELPERSISTENCE_TEMP; + } +#line 16121 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 128: -#line 22 "third_party/libpg_query/grammar/statements/delete.y" - { - (yyval.range) = (yyvsp[(1) - (1)].range); - ;} +#line 308 "third_party/libpg_query/grammar/statements/select.y" + { + (yyval.range) = (yyvsp[0].range); + (yyval.range)->relpersistence = PG_RELPERSISTENCE_TEMP; + } +#line 16130 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 129: -#line 26 "third_party/libpg_query/grammar/statements/delete.y" - { - PGAlias *alias = makeNode(PGAlias); - alias->aliasname = (yyvsp[(2) - (2)].str); - (yyvsp[(1) - (2)].range)->alias = alias; - (yyval.range) = (yyvsp[(1) - (2)].range); - ;} +#line 313 "third_party/libpg_query/grammar/statements/select.y" + { + ereport(PGWARNING, + (errmsg("GLOBAL is deprecated in temporary table creation"), + parser_errposition((yylsp[-3])))); + (yyval.range) = (yyvsp[0].range); + (yyval.range)->relpersistence = PG_RELPERSISTENCE_TEMP; + } +#line 16142 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 130: -#line 33 "third_party/libpg_query/grammar/statements/delete.y" - { - PGAlias *alias = makeNode(PGAlias); - alias->aliasname = (yyvsp[(3) - (3)].str); - (yyvsp[(1) - (3)].range)->alias = alias; - (yyval.range) = (yyvsp[(1) - (3)].range); - ;} +#line 321 "third_party/libpg_query/grammar/statements/select.y" + { + ereport(PGWARNING, + (errmsg("GLOBAL is deprecated in temporary table creation"), + parser_errposition((yylsp[-3])))); + (yyval.range) = (yyvsp[0].range); + (yyval.range)->relpersistence = PG_RELPERSISTENCE_TEMP; + } +#line 16154 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 131: -#line 43 "third_party/libpg_query/grammar/statements/delete.y" - { (yyval.node) = (yyvsp[(2) - (2)].node); ;} +#line 329 "third_party/libpg_query/grammar/statements/select.y" + { + (yyval.range) = (yyvsp[0].range); + (yyval.range)->relpersistence = PG_RELPERSISTENCE_UNLOGGED; + } +#line 16163 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 132: -#line 44 "third_party/libpg_query/grammar/statements/delete.y" - { (yyval.node) = NULL; ;} +#line 334 "third_party/libpg_query/grammar/statements/select.y" + { + (yyval.range) = (yyvsp[0].range); + (yyval.range)->relpersistence = RELPERSISTENCE_PERMANENT; + } +#line 16172 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 133: -#line 50 "third_party/libpg_query/grammar/statements/delete.y" - { (yyval.list) = (yyvsp[(2) - (2)].list); ;} +#line 339 "third_party/libpg_query/grammar/statements/select.y" + { + (yyval.range) = (yyvsp[0].range); + (yyval.range)->relpersistence = RELPERSISTENCE_PERMANENT; + } +#line 16181 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 134: -#line 51 "third_party/libpg_query/grammar/statements/delete.y" - { (yyval.list) = NIL; ;} +#line 345 "third_party/libpg_query/grammar/statements/select.y" + {} +#line 16187 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 135: -#line 9 "third_party/libpg_query/grammar/statements/create.y" - { - PGCreateStmt *n = makeNode(PGCreateStmt); - (yyvsp[(4) - (9)].range)->relpersistence = (yyvsp[(2) - (9)].ival); - n->relation = (yyvsp[(4) - (9)].range); - n->tableElts = (yyvsp[(6) - (9)].list); - n->ofTypename = NULL; - n->constraints = NIL; - n->options = (yyvsp[(8) - (9)].list); - n->oncommit = (yyvsp[(9) - (9)].oncommit); - n->onconflict = PG_ERROR_ON_CONFLICT; - (yyval.node) = (PGNode *)n; - ;} +#line 346 "third_party/libpg_query/grammar/statements/select.y" + {} +#line 16193 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 136: -#line 24 "third_party/libpg_query/grammar/statements/create.y" - { - PGCreateStmt *n = makeNode(PGCreateStmt); - (yyvsp[(7) - (12)].range)->relpersistence = (yyvsp[(2) - (12)].ival); - n->relation = (yyvsp[(7) - (12)].range); - n->tableElts = (yyvsp[(9) - (12)].list); - n->ofTypename = NULL; - n->constraints = NIL; - n->options = (yyvsp[(11) - (12)].list); - n->oncommit = (yyvsp[(12) - (12)].oncommit); - n->onconflict = PG_IGNORE_ON_CONFLICT; - (yyval.node) = (PGNode *)n; - ;} +#line 350 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.boolean) = true; } +#line 16199 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 137: -#line 39 "third_party/libpg_query/grammar/statements/create.y" - { - PGCreateStmt *n = makeNode(PGCreateStmt); - (yyvsp[(6) - (11)].range)->relpersistence = (yyvsp[(4) - (11)].ival); - n->relation = (yyvsp[(6) - (11)].range); - n->tableElts = (yyvsp[(8) - (11)].list); - n->ofTypename = NULL; - n->constraints = NIL; - n->options = (yyvsp[(10) - (11)].list); - n->oncommit = (yyvsp[(11) - (11)].oncommit); - n->onconflict = PG_REPLACE_ON_CONFLICT; - (yyval.node) = (PGNode *)n; - ;} +#line 351 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.boolean) = false; } +#line 16205 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 138: -#line 56 "third_party/libpg_query/grammar/statements/create.y" - { (yyval.ival) = 0; ;} +#line 352 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.boolean) = false; } +#line 16211 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 139: -#line 58 "third_party/libpg_query/grammar/statements/create.y" - { - /* - * We must complain about conflicting options. - * We could, but choose not to, complain about redundant - * options (ie, where $2's bit is already set in $1). - */ - int newspec = (yyvsp[(1) - (2)].ival) | (yyvsp[(2) - (2)].ival); - - /* special message for this case */ - if ((newspec & (CAS_NOT_DEFERRABLE | CAS_INITIALLY_DEFERRED)) == (CAS_NOT_DEFERRABLE | CAS_INITIALLY_DEFERRED)) - ereport(ERROR, - (errcode(PG_ERRCODE_SYNTAX_ERROR), - errmsg("constraint declared INITIALLY DEFERRED must be DEFERRABLE"), - parser_errposition((yylsp[(2) - (2)])))); - /* generic message for other conflicts */ - if ((newspec & (CAS_NOT_DEFERRABLE | CAS_DEFERRABLE)) == (CAS_NOT_DEFERRABLE | CAS_DEFERRABLE) || - (newspec & (CAS_INITIALLY_IMMEDIATE | CAS_INITIALLY_DEFERRED)) == (CAS_INITIALLY_IMMEDIATE | CAS_INITIALLY_DEFERRED)) - ereport(ERROR, - (errcode(PG_ERRCODE_SYNTAX_ERROR), - errmsg("conflicting constraint properties"), - parser_errposition((yylsp[(2) - (2)])))); - (yyval.ival) = newspec; - ;} +#line 359 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = list_make1(NIL); } +#line 16217 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 140: -#line 84 "third_party/libpg_query/grammar/statements/create.y" - { (yyval.node) = (PGNode *)(yyvsp[(1) - (1)].typnam); ;} +#line 360 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = (yyvsp[-1].list); } +#line 16223 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 141: -#line 85 "third_party/libpg_query/grammar/statements/create.y" - { (yyval.node) = (PGNode *)makeString(pstrdup((yyvsp[(1) - (1)].keyword))); ;} +#line 364 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = NIL;} +#line 16229 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 142: -#line 86 "third_party/libpg_query/grammar/statements/create.y" - { (yyval.node) = (PGNode *)(yyvsp[(1) - (1)].list); ;} +#line 365 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = NIL; } +#line 16235 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 143: -#line 87 "third_party/libpg_query/grammar/statements/create.y" - { (yyval.node) = (PGNode *)(yyvsp[(1) - (1)].value); ;} +#line 369 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.boolean) = true;} +#line 16241 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 144: -#line 88 "third_party/libpg_query/grammar/statements/create.y" - { (yyval.node) = (PGNode *)makeString((yyvsp[(1) - (1)].str)); ;} +#line 370 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.boolean) = false;} +#line 16247 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 145: -#line 89 "third_party/libpg_query/grammar/statements/create.y" - { (yyval.node) = (PGNode *)makeString(pstrdup((yyvsp[(1) - (1)].keyword))); ;} +#line 371 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.boolean) = false; } +#line 16253 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 146: -#line 93 "third_party/libpg_query/grammar/statements/create.y" - { (yyval.list) = (yyvsp[(2) - (3)].list); ;} +#line 375 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = (yyvsp[0].list);} +#line 16259 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 147: -#line 94 "third_party/libpg_query/grammar/statements/create.y" - { (yyval.list) = NIL; ;} +#line 376 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = NIL; } +#line 16265 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 148: -#line 99 "third_party/libpg_query/grammar/statements/create.y" - { (yyval.node) = (PGNode *) makeString((yyvsp[(1) - (1)].str)); ;} +#line 380 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = (yyvsp[0].list); } +#line 16271 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 149: -#line 104 "third_party/libpg_query/grammar/statements/create.y" - { (yyval.ival) = PG_FKCONSTR_ACTION_NOACTION; ;} +#line 382 "third_party/libpg_query/grammar/statements/select.y" + { + PGSortBy *sort = makeNode(PGSortBy); + sort->node = (PGNode *) makeNode(PGAStar); + sort->sortby_dir = (yyvsp[-1].sortorder); + sort->sortby_nulls = (yyvsp[0].nullorder); + sort->useOp = NIL; + sort->location = -1; /* no operator */ + (yyval.list) = list_make1(sort); + } +#line 16285 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 150: -#line 105 "third_party/libpg_query/grammar/statements/create.y" - { (yyval.ival) = PG_FKCONSTR_ACTION_RESTRICT; ;} +#line 392 "third_party/libpg_query/grammar/statements/select.y" + { + PGSortBy *sort = makeNode(PGSortBy); + sort->node = (PGNode *) makeNode(PGAStar); + sort->sortby_dir = (yyvsp[-1].sortorder); + sort->sortby_nulls = (yyvsp[0].nullorder); + sort->useOp = NIL; + sort->location = -1; /* no operator */ + (yyval.list) = list_make1(sort); + } +#line 16299 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 151: -#line 106 "third_party/libpg_query/grammar/statements/create.y" - { (yyval.ival) = PG_FKCONSTR_ACTION_CASCADE; ;} +#line 404 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = list_make1((yyvsp[0].sortby)); } +#line 16305 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 152: -#line 107 "third_party/libpg_query/grammar/statements/create.y" - { (yyval.ival) = PG_FKCONSTR_ACTION_SETNULL; ;} +#line 405 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].sortby)); } +#line 16311 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 153: -#line 108 "third_party/libpg_query/grammar/statements/create.y" - { (yyval.ival) = PG_FKCONSTR_ACTION_SETDEFAULT; ;} +#line 409 "third_party/libpg_query/grammar/statements/select.y" + { + (yyval.sortby) = makeNode(PGSortBy); + (yyval.sortby)->node = (yyvsp[-3].node); + (yyval.sortby)->sortby_dir = SORTBY_USING; + (yyval.sortby)->sortby_nulls = (yyvsp[0].nullorder); + (yyval.sortby)->useOp = (yyvsp[-1].list); + (yyval.sortby)->location = (yylsp[-1]); + } +#line 16324 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 154: -#line 114 "third_party/libpg_query/grammar/statements/create.y" - { - PGConstraint *n = castNode(PGConstraint, (yyvsp[(3) - (3)].node)); - n->conname = (yyvsp[(2) - (3)].str); - n->location = (yylsp[(1) - (3)]); - (yyval.node) = (PGNode *) n; - ;} +#line 418 "third_party/libpg_query/grammar/statements/select.y" + { + (yyval.sortby) = makeNode(PGSortBy); + (yyval.sortby)->node = (yyvsp[-2].node); + (yyval.sortby)->sortby_dir = (yyvsp[-1].sortorder); + (yyval.sortby)->sortby_nulls = (yyvsp[0].nullorder); + (yyval.sortby)->useOp = NIL; + (yyval.sortby)->location = -1; /* no operator */ + } +#line 16337 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 155: -#line 120 "third_party/libpg_query/grammar/statements/create.y" - { (yyval.node) = (yyvsp[(1) - (1)].node); ;} +#line 428 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.sortorder) = PG_SORTBY_ASC; } +#line 16343 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 156: -#line 121 "third_party/libpg_query/grammar/statements/create.y" - { (yyval.node) = (yyvsp[(1) - (1)].node); ;} +#line 429 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.sortorder) = PG_SORTBY_DESC; } +#line 16349 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 157: -#line 123 "third_party/libpg_query/grammar/statements/create.y" - { - /* - * Note: the PGCollateClause is momentarily included in - * the list built by ColQualList, but we split it out - * again in SplitColQualList. - */ - PGCollateClause *n = makeNode(PGCollateClause); - n->arg = NULL; - n->collname = (yyvsp[(2) - (2)].list); - n->location = (yylsp[(1) - (2)]); - (yyval.node) = (PGNode *) n; - ;} +#line 430 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.sortorder) = PG_SORTBY_DEFAULT; } +#line 16355 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 158: -#line 140 "third_party/libpg_query/grammar/statements/create.y" - { - PGConstraint *n = makeNode(PGConstraint); - n->contype = PG_CONSTR_NOTNULL; - n->location = (yylsp[(1) - (2)]); - (yyval.node) = (PGNode *)n; - ;} - break; - - case 159: -#line 147 "third_party/libpg_query/grammar/statements/create.y" - { - PGConstraint *n = makeNode(PGConstraint); - n->contype = PG_CONSTR_NULL; - n->location = (yylsp[(1) - (1)]); - (yyval.node) = (PGNode *)n; - ;} +#line 433 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.nullorder) = PG_SORTBY_NULLS_FIRST; } +#line 16361 "third_party/libpg_query/grammar/grammar_out.cpp" + break; + + case 159: +#line 434 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.nullorder) = PG_SORTBY_NULLS_LAST; } +#line 16367 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 160: -#line 154 "third_party/libpg_query/grammar/statements/create.y" - { - PGConstraint *n = makeNode(PGConstraint); - n->contype = PG_CONSTR_UNIQUE; - n->location = (yylsp[(1) - (2)]); - n->keys = NULL; - n->options = (yyvsp[(2) - (2)].list); - n->indexname = NULL; - (yyval.node) = (PGNode *)n; - ;} +#line 435 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.nullorder) = PG_SORTBY_NULLS_DEFAULT; } +#line 16373 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 161: -#line 164 "third_party/libpg_query/grammar/statements/create.y" - { - PGConstraint *n = makeNode(PGConstraint); - n->contype = PG_CONSTR_PRIMARY; - n->location = (yylsp[(1) - (3)]); - n->keys = NULL; - n->options = (yyvsp[(3) - (3)].list); - n->indexname = NULL; - (yyval.node) = (PGNode *)n; - ;} +#line 439 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = list_make2((yyvsp[0].node), (yyvsp[-1].node)); } +#line 16379 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 162: -#line 174 "third_party/libpg_query/grammar/statements/create.y" - { - PGConstraint *n = makeNode(PGConstraint); - n->contype = PG_CONSTR_CHECK; - n->location = (yylsp[(1) - (5)]); - n->is_no_inherit = (yyvsp[(5) - (5)].boolean); - n->raw_expr = (yyvsp[(3) - (5)].node); - n->cooked_expr = NULL; - n->skip_validation = false; - n->initially_valid = true; - (yyval.node) = (PGNode *)n; - ;} +#line 440 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = list_make2((yyvsp[-1].node), (yyvsp[0].node)); } +#line 16385 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 163: -#line 186 "third_party/libpg_query/grammar/statements/create.y" - { - PGConstraint *n = makeNode(PGConstraint); - n->contype = PG_CONSTR_COMPRESSION; - n->location = (yylsp[(1) - (3)]); - n->compression_name = (yyvsp[(3) - (3)].str); - (yyval.node) = (PGNode *)n; - ;} +#line 441 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = list_make2(NULL, (yyvsp[0].node)); } +#line 16391 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 164: -#line 194 "third_party/libpg_query/grammar/statements/create.y" - { - PGConstraint *n = makeNode(PGConstraint); - n->contype = PG_CONSTR_DEFAULT; - n->location = (yylsp[(1) - (2)]); - n->raw_expr = (yyvsp[(2) - (2)].node); - n->cooked_expr = NULL; - (yyval.node) = (PGNode *)n; - ;} +#line 442 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = list_make2((yyvsp[0].node), NULL); } +#line 16397 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 165: -#line 203 "third_party/libpg_query/grammar/statements/create.y" - { - PGConstraint *n = makeNode(PGConstraint); - n->contype = PG_CONSTR_FOREIGN; - n->location = (yylsp[(1) - (5)]); - n->pktable = (yyvsp[(2) - (5)].range); - n->fk_attrs = NIL; - n->pk_attrs = (yyvsp[(3) - (5)].list); - n->fk_matchtype = (yyvsp[(4) - (5)].ival); - n->fk_upd_action = (char) ((yyvsp[(5) - (5)].ival) >> 8); - n->fk_del_action = (char) ((yyvsp[(5) - (5)].ival) & 0xFF); - n->skip_validation = false; - n->initially_valid = true; - (yyval.node) = (PGNode *)n; - ;} +#line 446 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = (yyvsp[0].list); } +#line 16403 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 166: -#line 220 "third_party/libpg_query/grammar/statements/create.y" - { (yyval.constr) = PG_CONSTR_GENERATED_VIRTUAL; ;} +#line 447 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = list_make2(NULL,NULL); } +#line 16409 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 167: -#line 221 "third_party/libpg_query/grammar/statements/create.y" - { (yyval.constr) = PG_CONSTR_GENERATED_STORED; ;} +#line 452 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.node) = (yyvsp[0].node); } +#line 16415 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 168: -#line 225 "third_party/libpg_query/grammar/statements/create.y" - { (yyval.constr) = (yyvsp[(1) - (1)].constr) ;} +#line 454 "third_party/libpg_query/grammar/statements/select.y" + { + /* Disabled because it was too confusing, bjm 2002-02-18 */ + ereport(ERROR, + (errcode(PG_ERRCODE_SYNTAX_ERROR), + errmsg("LIMIT #,# syntax is not supported"), + errhint("Use separate LIMIT and OFFSET clauses."), + parser_errposition((yylsp[-3])))); + } +#line 16428 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 169: -#line 226 "third_party/libpg_query/grammar/statements/create.y" - { (yyval.constr) = PG_CONSTR_GENERATED_VIRTUAL; ;} +#line 470 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.node) = (yyvsp[-2].node); } +#line 16434 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 170: -#line 231 "third_party/libpg_query/grammar/statements/create.y" - { - PGConstraint *n = makeNode(PGConstraint); - n->contype = PG_CONSTR_IDENTITY; - n->generated_when = (yyvsp[(2) - (5)].ival); - n->options = (yyvsp[(5) - (5)].list); - n->location = (yylsp[(1) - (5)]); - (yyval.node) = (PGNode *)n; - ;} +#line 472 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.node) = makeIntConst(1, -1); } +#line 16440 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 171: -#line 240 "third_party/libpg_query/grammar/statements/create.y" - { - PGConstraint *n = makeNode(PGConstraint); - n->contype = (yyvsp[(7) - (7)].constr); - n->generated_when = (yyvsp[(2) - (7)].ival); - n->raw_expr = (yyvsp[(5) - (7)].node); - n->cooked_expr = NULL; - n->location = (yylsp[(1) - (7)]); - - /* - * Can't do this in the grammar because of shift/reduce - * conflicts. (IDENTITY allows both ALWAYS and BY - * DEFAULT, but generated columns only allow ALWAYS.) We - * can also give a more useful error message and location. - */ - if ((yyvsp[(2) - (7)].ival) != PG_ATTRIBUTE_IDENTITY_ALWAYS) - ereport(ERROR, - (errcode(PG_ERRCODE_SYNTAX_ERROR), - errmsg("for a generated column, GENERATED ALWAYS must be specified"), - parser_errposition((yylsp[(2) - (7)])))); - - (yyval.node) = (PGNode *)n; - ;} +#line 477 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.node) = (yyvsp[0].node); } +#line 16446 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 172: -#line 263 "third_party/libpg_query/grammar/statements/create.y" - { - PGConstraint *n = makeNode(PGConstraint); - n->contype = (yyvsp[(5) - (5)].constr); - n->generated_when = PG_ATTRIBUTE_IDENTITY_ALWAYS; - n->raw_expr = (yyvsp[(3) - (5)].node); - n->cooked_expr = NULL; - n->location = (yylsp[(1) - (5)]); - (yyval.node) = (PGNode *)n; - ;} +#line 480 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.node) = (yyvsp[-1].node); } +#line 16452 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 173: -#line 277 "third_party/libpg_query/grammar/statements/create.y" - { - (yyval.defelt) = makeDefElem((yyvsp[(1) - (2)].str), (yyvsp[(2) - (2)].node), (yylsp[(1) - (2)])); - ;} +#line 488 "third_party/libpg_query/grammar/statements/select.y" + { + (yyval.node) = makeSampleSize(makeFloat((yyvsp[-1].str)), true); + } +#line 16460 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 174: -#line 283 "third_party/libpg_query/grammar/statements/create.y" - { (yyval.ival) = (yyvsp[(3) - (3)].ival); ;} +#line 492 "third_party/libpg_query/grammar/statements/select.y" + { + (yyval.node) = makeSampleSize(makeInteger((yyvsp[-1].ival)), true); + } +#line 16468 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 175: -#line 289 "third_party/libpg_query/grammar/statements/create.y" - { (yyval.ival) = ((yyvsp[(1) - (1)].ival) << 8) | (PG_FKCONSTR_ACTION_NOACTION & 0xFF); ;} +#line 496 "third_party/libpg_query/grammar/statements/select.y" + { + (yyval.node) = makeSampleSize(makeFloat((yyvsp[-1].str)), true); + } +#line 16476 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 176: -#line 291 "third_party/libpg_query/grammar/statements/create.y" - { (yyval.ival) = (PG_FKCONSTR_ACTION_NOACTION << 8) | ((yyvsp[(1) - (1)].ival) & 0xFF); ;} +#line 500 "third_party/libpg_query/grammar/statements/select.y" + { + (yyval.node) = makeSampleSize(makeInteger((yyvsp[-1].ival)), true); + } +#line 16484 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 177: -#line 293 "third_party/libpg_query/grammar/statements/create.y" - { (yyval.ival) = ((yyvsp[(1) - (2)].ival) << 8) | ((yyvsp[(2) - (2)].ival) & 0xFF); ;} +#line 504 "third_party/libpg_query/grammar/statements/select.y" + { + (yyval.node) = makeSampleSize(makeInteger((yyvsp[0].ival)), false); + } +#line 16492 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 178: -#line 295 "third_party/libpg_query/grammar/statements/create.y" - { (yyval.ival) = ((yyvsp[(2) - (2)].ival) << 8) | ((yyvsp[(1) - (2)].ival) & 0xFF); ;} +#line 508 "third_party/libpg_query/grammar/statements/select.y" + { + (yyval.node) = makeSampleSize(makeInteger((yyvsp[-1].ival)), false); + } +#line 16500 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 179: -#line 297 "third_party/libpg_query/grammar/statements/create.y" - { (yyval.ival) = (PG_FKCONSTR_ACTION_NOACTION << 8) | (PG_FKCONSTR_ACTION_NOACTION & 0xFF); ;} +#line 515 "third_party/libpg_query/grammar/statements/select.y" + { + (yyval.node) = (yyvsp[0].node); + } +#line 16508 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 180: -#line 300 "third_party/libpg_query/grammar/statements/create.y" - { (yyval.oncommit) = ONCOMMIT_DROP; ;} +#line 519 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.node) = NULL; } +#line 16514 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 181: -#line 301 "third_party/libpg_query/grammar/statements/create.y" - { (yyval.oncommit) = PG_ONCOMMIT_DELETE_ROWS; ;} +#line 526 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.str) = (yyvsp[0].str); } +#line 16520 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 182: -#line 302 "third_party/libpg_query/grammar/statements/create.y" - { (yyval.oncommit) = PG_ONCOMMIT_PRESERVE_ROWS; ;} +#line 527 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.str) = NULL; } +#line 16526 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 183: -#line 303 "third_party/libpg_query/grammar/statements/create.y" - { (yyval.oncommit) = PG_ONCOMMIT_NOOP; ;} +#line 532 "third_party/libpg_query/grammar/statements/select.y" + { + int seed = (yyvsp[0].ival); + (yyval.node) = makeSampleOptions((yyvsp[-2].node), (yyvsp[-4].str), &seed, (yylsp[-4])); + } +#line 16535 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 184: -#line 308 "third_party/libpg_query/grammar/statements/create.y" - { (yyval.list) = (yyvsp[(2) - (3)].list); ;} +#line 537 "third_party/libpg_query/grammar/statements/select.y" + { + (yyval.node) = makeSampleOptions((yyvsp[0].node), NULL, NULL, (yylsp[0])); + } +#line 16543 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 185: -#line 312 "third_party/libpg_query/grammar/statements/create.y" - { (yyval.boolean) = true; ;} +#line 541 "third_party/libpg_query/grammar/statements/select.y" + { + (yyval.node) = makeSampleOptions((yyvsp[-3].node), (yyvsp[-1].str), NULL, (yylsp[-3])); + } +#line 16551 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 186: -#line 313 "third_party/libpg_query/grammar/statements/create.y" - { (yyval.boolean) = false; ;} +#line 545 "third_party/libpg_query/grammar/statements/select.y" + { + int seed = (yyvsp[-1].ival); + (yyval.node) = makeSampleOptions((yyvsp[-5].node), (yyvsp[-3].str), &seed, (yylsp[-5])); + } +#line 16560 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 187: -#line 319 "third_party/libpg_query/grammar/statements/create.y" - { - PGConstraint *n = castNode(PGConstraint, (yyvsp[(3) - (3)].node)); - n->conname = (yyvsp[(2) - (3)].str); - n->location = (yylsp[(1) - (3)]); - (yyval.node) = (PGNode *) n; - ;} +#line 553 "third_party/libpg_query/grammar/statements/select.y" + { + (yyval.node) = (yyvsp[0].node); + } +#line 16568 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 188: -#line 325 "third_party/libpg_query/grammar/statements/create.y" - { (yyval.node) = (yyvsp[(1) - (1)].node); ;} +#line 559 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.node) = (yyvsp[0].node); } +#line 16574 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 189: -#line 330 "third_party/libpg_query/grammar/statements/create.y" - { (yyval.ival) = PG_CREATE_TABLE_LIKE_COMMENTS; ;} +#line 560 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.node) = NULL; } +#line 16580 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 190: -#line 331 "third_party/libpg_query/grammar/statements/create.y" - { (yyval.ival) = PG_CREATE_TABLE_LIKE_CONSTRAINTS; ;} +#line 565 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.ival) = (yyvsp[-1].ival); } +#line 16586 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 191: -#line 332 "third_party/libpg_query/grammar/statements/create.y" - { (yyval.ival) = PG_CREATE_TABLE_LIKE_DEFAULTS; ;} +#line 566 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.ival) = -1; } +#line 16592 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 192: -#line 333 "third_party/libpg_query/grammar/statements/create.y" - { (yyval.ival) = PG_CREATE_TABLE_LIKE_IDENTITY; ;} +#line 570 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.node) = (yyvsp[0].node); } +#line 16598 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 193: -#line 334 "third_party/libpg_query/grammar/statements/create.y" - { (yyval.ival) = PG_CREATE_TABLE_LIKE_INDEXES; ;} +#line 572 "third_party/libpg_query/grammar/statements/select.y" + { + /* LIMIT ALL is represented as a NULL constant */ + (yyval.node) = makeNullAConst((yylsp[0])); + } +#line 16607 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 194: -#line 335 "third_party/libpg_query/grammar/statements/create.y" - { (yyval.ival) = PG_CREATE_TABLE_LIKE_STATISTICS; ;} +#line 577 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.node) = makeLimitPercent((yyvsp[-1].node)); } +#line 16613 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 195: -#line 336 "third_party/libpg_query/grammar/statements/create.y" - { (yyval.ival) = PG_CREATE_TABLE_LIKE_STORAGE; ;} +#line 579 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.node) = makeLimitPercent(makeFloatConst((yyvsp[-1].str),(yylsp[-1]))); } +#line 16619 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 196: -#line 337 "third_party/libpg_query/grammar/statements/create.y" - { (yyval.ival) = PG_CREATE_TABLE_LIKE_ALL; ;} +#line 581 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.node) = makeLimitPercent(makeIntConst((yyvsp[-1].ival),(yylsp[-1]))); } +#line 16625 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 197: -#line 343 "third_party/libpg_query/grammar/statements/create.y" - { (yyval.list) = list_make1((yyvsp[(1) - (1)].defelt)); ;} +#line 585 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.node) = (yyvsp[0].node); } +#line 16631 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 198: -#line 344 "third_party/libpg_query/grammar/statements/create.y" - { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].defelt)); ;} +#line 605 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.node) = (yyvsp[0].node); } +#line 16637 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 199: -#line 348 "third_party/libpg_query/grammar/statements/create.y" - { (yyval.str) = (yyvsp[(3) - (3)].str); ;} +#line 607 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, "+", NULL, (yyvsp[0].node), (yylsp[-1])); } +#line 16643 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 200: -#line 354 "third_party/libpg_query/grammar/statements/create.y" - { - PGConstraint *n = makeNode(PGConstraint); - n->contype = PG_CONSTR_ATTR_DEFERRABLE; - n->location = (yylsp[(1) - (1)]); - (yyval.node) = (PGNode *)n; - ;} +#line 609 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.node) = doNegate((yyvsp[0].node), (yylsp[-1])); } +#line 16649 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 201: -#line 361 "third_party/libpg_query/grammar/statements/create.y" - { - PGConstraint *n = makeNode(PGConstraint); - n->contype = PG_CONSTR_ATTR_NOT_DEFERRABLE; - n->location = (yylsp[(1) - (2)]); - (yyval.node) = (PGNode *)n; - ;} +#line 613 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.node) = makeIntConst((yyvsp[0].ival),(yylsp[0])); } +#line 16655 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 202: -#line 368 "third_party/libpg_query/grammar/statements/create.y" - { - PGConstraint *n = makeNode(PGConstraint); - n->contype = PG_CONSTR_ATTR_DEFERRED; - n->location = (yylsp[(1) - (2)]); - (yyval.node) = (PGNode *)n; - ;} +#line 614 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.node) = makeFloatConst((yyvsp[0].str),(yylsp[0])); } +#line 16661 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 203: -#line 375 "third_party/libpg_query/grammar/statements/create.y" - { - PGConstraint *n = makeNode(PGConstraint); - n->contype = PG_CONSTR_ATTR_IMMEDIATE; - n->location = (yylsp[(1) - (2)]); - (yyval.node) = (PGNode *)n; - ;} +#line 618 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.ival) = 0; } +#line 16667 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 204: -#line 386 "third_party/libpg_query/grammar/statements/create.y" - { (yyval.list) = (yyvsp[(2) - (2)].list); ;} +#line 619 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.ival) = 0; } +#line 16673 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 205: -#line 387 "third_party/libpg_query/grammar/statements/create.y" - { (yyval.list) = list_make1(makeDefElem("oids", (PGNode *) makeInteger(true), (yylsp[(1) - (2)]))); ;} +#line 622 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.ival) = 0; } +#line 16679 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 206: -#line 388 "third_party/libpg_query/grammar/statements/create.y" - { (yyval.list) = list_make1(makeDefElem("oids", (PGNode *) makeInteger(false), (yylsp[(1) - (2)]))); ;} +#line 623 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.ival) = 0; } +#line 16685 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 207: -#line 389 "third_party/libpg_query/grammar/statements/create.y" - { (yyval.list) = NIL; ;} +#line 648 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = (yyvsp[0].list); } +#line 16691 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 208: -#line 393 "third_party/libpg_query/grammar/statements/create.y" - { (yyval.list) = (yyvsp[(2) - (3)].list); ;} +#line 650 "third_party/libpg_query/grammar/statements/select.y" + { + PGNode *node = (PGNode *) makeGroupingSet(GROUPING_SET_ALL, NIL, (yylsp[0])); + (yyval.list) = list_make1(node); + } +#line 16700 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 209: -#line 398 "third_party/libpg_query/grammar/statements/create.y" - { (yyval.ival) = (yyvsp[(1) - (3)].ival) | (yyvsp[(3) - (3)].ival); ;} +#line 655 "third_party/libpg_query/grammar/statements/select.y" + { + PGNode *node = (PGNode *) makeGroupingSet(GROUPING_SET_ALL, NIL, (yylsp[0])); + (yyval.list) = list_make1(node); + } +#line 16709 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 210: -#line 399 "third_party/libpg_query/grammar/statements/create.y" - { (yyval.ival) = (yyvsp[(1) - (3)].ival) & ~(yyvsp[(3) - (3)].ival); ;} +#line 659 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = NIL; } +#line 16715 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 211: -#line 400 "third_party/libpg_query/grammar/statements/create.y" - { (yyval.ival) = 0; ;} +#line 663 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = list_make1((yyvsp[0].node)); } +#line 16721 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 212: -#line 405 "third_party/libpg_query/grammar/statements/create.y" - { (yyval.str) = (yyvsp[(1) - (1)].str); ;} +#line 664 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = lappend((yyvsp[-2].list),(yyvsp[0].node)); } +#line 16727 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 213: -#line 410 "third_party/libpg_query/grammar/statements/create.y" - { (yyval.ival) = CAS_NOT_DEFERRABLE; ;} +#line 668 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = (yyvsp[0].list); } +#line 16733 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 214: -#line 411 "third_party/libpg_query/grammar/statements/create.y" - { (yyval.ival) = CAS_DEFERRABLE; ;} +#line 669 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = (yyvsp[-1].list); } +#line 16739 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 215: -#line 412 "third_party/libpg_query/grammar/statements/create.y" - { (yyval.ival) = CAS_INITIALLY_IMMEDIATE; ;} +#line 673 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.node) = (yyvsp[0].node); } +#line 16745 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 216: -#line 413 "third_party/libpg_query/grammar/statements/create.y" - { (yyval.ival) = CAS_INITIALLY_DEFERRED; ;} +#line 674 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.node) = (yyvsp[0].node); } +#line 16751 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 217: -#line 414 "third_party/libpg_query/grammar/statements/create.y" - { (yyval.ival) = CAS_NOT_VALID; ;} +#line 675 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.node) = (yyvsp[0].node); } +#line 16757 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 218: -#line 415 "third_party/libpg_query/grammar/statements/create.y" - { (yyval.ival) = CAS_NO_INHERIT; ;} - break; - - case 219: -#line 421 "third_party/libpg_query/grammar/statements/create.y" - { - PGColumnDef *n = makeNode(PGColumnDef); - n->category = COL_STANDARD; - n->colname = (yyvsp[(1) - (3)].str); - n->typeName = (yyvsp[(2) - (3)].typnam); - n->inhcount = 0; - n->is_local = true; - n->is_not_null = false; - n->is_from_type = false; - n->storage = 0; - n->raw_default = NULL; - n->cooked_default = NULL; - n->collOid = InvalidOid; - SplitColQualList((yyvsp[(3) - (3)].list), &n->constraints, &n->collClause, - yyscanner); - n->location = (yylsp[(1) - (3)]); - (yyval.node) = (PGNode *)n; - ;} +#line 676 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.node) = (yyvsp[0].node); } +#line 16763 "third_party/libpg_query/grammar/grammar_out.cpp" break; - - case 220: -#line 441 "third_party/libpg_query/grammar/statements/create.y" - { - PGColumnDef *n = makeNode(PGColumnDef); - n->category = COL_GENERATED; - n->colname = (yyvsp[(1) - (4)].str); - n->typeName = (yyvsp[(2) - (4)].typnam); - n->inhcount = 0; - n->is_local = true; - n->is_not_null = false; - n->is_from_type = false; - n->storage = 0; - n->raw_default = NULL; - n->cooked_default = NULL; - n->collOid = InvalidOid; - // merge the constraints with the generated column constraint - auto constraints = (yyvsp[(4) - (4)].list); - if (constraints) { - constraints = lappend(constraints, (yyvsp[(3) - (4)].node)); - } else { - constraints = list_make1((yyvsp[(3) - (4)].node)); - } - SplitColQualList(constraints, &n->constraints, &n->collClause, - yyscanner); - n->location = (yylsp[(1) - (4)]); - (yyval.node) = (PGNode *)n; - ;} + + case 219: +#line 677 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.node) = (yyvsp[0].node); } +#line 16769 "third_party/libpg_query/grammar/grammar_out.cpp" + break; + + case 220: +#line 682 "third_party/libpg_query/grammar/statements/select.y" + { + (yyval.node) = (PGNode *) makeGroupingSet(GROUPING_SET_EMPTY, NIL, (yylsp[-1])); + } +#line 16777 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 221: -#line 469 "third_party/libpg_query/grammar/statements/create.y" - { (yyval.list) = list_make1((yyvsp[(1) - (1)].defelt)); ;} +#line 695 "third_party/libpg_query/grammar/statements/select.y" + { + (yyval.node) = (PGNode *) makeGroupingSet(GROUPING_SET_ROLLUP, (yyvsp[-1].list), (yylsp[-3])); + } +#line 16785 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 222: -#line 470 "third_party/libpg_query/grammar/statements/create.y" - { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].defelt)); ;} +#line 702 "third_party/libpg_query/grammar/statements/select.y" + { + (yyval.node) = (PGNode *) makeGroupingSet(GROUPING_SET_CUBE, (yyvsp[-1].list), (yylsp[-3])); + } +#line 16793 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 223: -#line 474 "third_party/libpg_query/grammar/statements/create.y" - { (yyval.str) = (yyvsp[(1) - (1)].str); ;} +#line 709 "third_party/libpg_query/grammar/statements/select.y" + { + (yyval.node) = (PGNode *) makeGroupingSet(GROUPING_SET_SETS, (yyvsp[-1].list), (yylsp[-4])); + } +#line 16801 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 224: -#line 478 "third_party/libpg_query/grammar/statements/create.y" - { (yyval.node) = (yyvsp[(1) - (1)].node); ;} +#line 715 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.node) = NULL; } +#line 16807 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 225: -#line 479 "third_party/libpg_query/grammar/statements/create.y" - { (yyval.node) = (yyvsp[(1) - (1)].node); ;} +#line 716 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.node) = NULL; } +#line 16813 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 226: -#line 480 "third_party/libpg_query/grammar/statements/create.y" - { (yyval.node) = (yyvsp[(1) - (1)].node); ;} +#line 720 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.node) = (yyvsp[0].node); } +#line 16819 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 227: -#line 485 "third_party/libpg_query/grammar/statements/create.y" - { - (yyval.defelt) = makeDefElem((yyvsp[(1) - (3)].str), (PGNode *) (yyvsp[(3) - (3)].node), (yylsp[(1) - (3)])); - ;} +#line 721 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.node) = NULL; } +#line 16825 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 228: -#line 489 "third_party/libpg_query/grammar/statements/create.y" - { - (yyval.defelt) = makeDefElem((yyvsp[(1) - (1)].str), NULL, (yylsp[(1) - (1)])); - ;} +#line 725 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.node) = (yyvsp[0].node); } +#line 16831 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 229: -#line 496 "third_party/libpg_query/grammar/statements/create.y" - { (yyval.list) = (yyvsp[(2) - (2)].list); ;} +#line 726 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.node) = NULL; } +#line 16837 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 230: -#line 497 "third_party/libpg_query/grammar/statements/create.y" - { (yyval.list) = NIL; ;} +#line 730 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = (yyvsp[0].list); } +#line 16843 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 231: -#line 502 "third_party/libpg_query/grammar/statements/create.y" - { (yyval.list) = (yyvsp[(1) - (1)].list); ;} +#line 731 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = NIL; } +#line 16849 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 232: -#line 503 "third_party/libpg_query/grammar/statements/create.y" - { (yyval.list) = (yyvsp[(1) - (2)].list); ;} +#line 735 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = (yyvsp[0].list); } +#line 16855 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 233: -#line 504 "third_party/libpg_query/grammar/statements/create.y" - { (yyval.list) = NIL; ;} +#line 736 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = NIL; } +#line 16861 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 234: -#line 509 "third_party/libpg_query/grammar/statements/create.y" - { - (yyval.node) = (PGNode *) makeString((yyvsp[(1) - (1)].str)); - ;} +#line 740 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = list_make1((yyvsp[0].node)); } +#line 16867 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 235: -#line 516 "third_party/libpg_query/grammar/statements/create.y" - { (yyval.list) = (yyvsp[(2) - (3)].list); ;} +#line 741 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = lappend((yyvsp[-1].list), (yyvsp[0].node)); } +#line 16873 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 236: -#line 517 "third_party/libpg_query/grammar/statements/create.y" - { (yyval.list) = NIL; ;} +#line 746 "third_party/libpg_query/grammar/statements/select.y" + { + PGLockingClause *n = makeNode(PGLockingClause); + n->lockedRels = (yyvsp[-1].list); + n->strength = (yyvsp[-2].lockstrength); + n->waitPolicy = (yyvsp[0].lockwaitpolicy); + (yyval.node) = (PGNode *) n; + } +#line 16885 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 237: -#line 522 "third_party/libpg_query/grammar/statements/create.y" - { (yyval.list) = lappend((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].node)); ;} +#line 756 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.lockstrength) = LCS_FORUPDATE; } +#line 16891 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 238: -#line 523 "third_party/libpg_query/grammar/statements/create.y" - { (yyval.list) = NIL; ;} +#line 757 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.lockstrength) = PG_LCS_FORNOKEYUPDATE; } +#line 16897 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 239: -#line 527 "third_party/libpg_query/grammar/statements/create.y" - { (yyval.ival) = (yyvsp[(3) - (3)].ival); ;} +#line 758 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.lockstrength) = PG_LCS_FORSHARE; } +#line 16903 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 240: -#line 533 "third_party/libpg_query/grammar/statements/create.y" - { - (yyval.defelt) = makeDefElem((yyvsp[(1) - (3)].str), (PGNode *) (yyvsp[(3) - (3)].node), (yylsp[(1) - (3)])); - ;} +#line 759 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.lockstrength) = PG_LCS_FORKEYSHARE; } +#line 16909 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 241: -#line 537 "third_party/libpg_query/grammar/statements/create.y" - { - (yyval.defelt) = makeDefElem((yyvsp[(1) - (1)].str), NULL, (yylsp[(1) - (1)])); - ;} +#line 763 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = (yyvsp[0].list); } +#line 16915 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 242: -#line 541 "third_party/libpg_query/grammar/statements/create.y" - { - (yyval.defelt) = makeDefElemExtended((yyvsp[(1) - (5)].str), (yyvsp[(3) - (5)].str), (PGNode *) (yyvsp[(5) - (5)].node), - PG_DEFELEM_UNSPEC, (yylsp[(1) - (5)])); - ;} +#line 764 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = NIL; } +#line 16921 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 243: -#line 546 "third_party/libpg_query/grammar/statements/create.y" - { - (yyval.defelt) = makeDefElemExtended((yyvsp[(1) - (3)].str), (yyvsp[(3) - (3)].str), NULL, PG_DEFELEM_UNSPEC, (yylsp[(1) - (3)])); - ;} +#line 769 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.lockwaitpolicy) = LockWaitError; } +#line 16927 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 244: -#line 553 "third_party/libpg_query/grammar/statements/create.y" - { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); ;} +#line 770 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.lockwaitpolicy) = PGLockWaitSkip; } +#line 16933 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 245: -#line 554 "third_party/libpg_query/grammar/statements/create.y" - { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node)); ;} +#line 771 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.lockwaitpolicy) = PGLockWaitBlock; } +#line 16939 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 246: -#line 558 "third_party/libpg_query/grammar/statements/create.y" - { (yyval.list) = (yyvsp[(1) - (1)].list); ;} +#line 781 "third_party/libpg_query/grammar/statements/select.y" + { + PGSelectStmt *n = makeNode(PGSelectStmt); + n->valuesLists = list_make1((yyvsp[-1].list)); + (yyval.node) = (PGNode *) n; + } +#line 16949 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 247: -#line 559 "third_party/libpg_query/grammar/statements/create.y" - { (yyval.list) = (yyvsp[(1) - (2)].list); ;} +#line 787 "third_party/libpg_query/grammar/statements/select.y" + { + PGSelectStmt *n = (PGSelectStmt *) (yyvsp[-4].node); + n->valuesLists = lappend(n->valuesLists, (yyvsp[-1].list)); + (yyval.node) = (PGNode *) n; + } +#line 16959 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 248: -#line 563 "third_party/libpg_query/grammar/statements/create.y" - { (yyval.typnam) = (yyvsp[(1) - (1)].typnam); ;} +#line 795 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.node) = (yyvsp[0].node); } +#line 16965 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 249: -#line 565 "third_party/libpg_query/grammar/statements/create.y" - { - (yyval.typnam) = makeTypeNameFromNameList(lcons(makeString((yyvsp[(1) - (4)].str)), (yyvsp[(2) - (4)].list))); - (yyval.typnam)->pct_type = true; - (yyval.typnam)->location = (yylsp[(1) - (4)]); - ;} +#line 796 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.node) = (yyvsp[-1].node); } +#line 16971 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 250: -#line 571 "third_party/libpg_query/grammar/statements/create.y" - { - (yyval.typnam) = makeTypeNameFromNameList(lcons(makeString((yyvsp[(2) - (5)].str)), (yyvsp[(3) - (5)].list))); - (yyval.typnam)->pct_type = true; - (yyval.typnam)->setof = true; - (yyval.typnam)->location = (yylsp[(2) - (5)]); - ;} +#line 809 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = (yyvsp[0].list); } +#line 16977 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 251: -#line 582 "third_party/libpg_query/grammar/statements/create.y" - { - PGConstraint *n = makeNode(PGConstraint); - n->contype = PG_CONSTR_CHECK; - n->location = (yylsp[(1) - (5)]); - n->raw_expr = (yyvsp[(3) - (5)].node); - n->cooked_expr = NULL; - processCASbits((yyvsp[(5) - (5)].ival), (yylsp[(5) - (5)]), "CHECK", - NULL, NULL, &n->skip_validation, - &n->is_no_inherit, yyscanner); - n->initially_valid = !n->skip_validation; - (yyval.node) = (PGNode *)n; - ;} +#line 810 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = NIL; } +#line 16983 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 252: -#line 596 "third_party/libpg_query/grammar/statements/create.y" - { - PGConstraint *n = makeNode(PGConstraint); - n->contype = PG_CONSTR_UNIQUE; - n->location = (yylsp[(1) - (6)]); - n->keys = (yyvsp[(3) - (6)].list); - n->options = (yyvsp[(5) - (6)].list); - n->indexname = NULL; - processCASbits((yyvsp[(6) - (6)].ival), (yylsp[(6) - (6)]), "UNIQUE", - &n->deferrable, &n->initdeferred, NULL, - NULL, yyscanner); - (yyval.node) = (PGNode *)n; - ;} +#line 814 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = list_make1((yyvsp[0].node)); } +#line 16989 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 253: -#line 609 "third_party/libpg_query/grammar/statements/create.y" - { - PGConstraint *n = makeNode(PGConstraint); - n->contype = PG_CONSTR_UNIQUE; - n->location = (yylsp[(1) - (3)]); - n->keys = NIL; - n->options = NIL; - n->indexname = (yyvsp[(2) - (3)].str); - n->indexspace = NULL; - processCASbits((yyvsp[(3) - (3)].ival), (yylsp[(3) - (3)]), "UNIQUE", - &n->deferrable, &n->initdeferred, NULL, - NULL, yyscanner); - (yyval.node) = (PGNode *)n; - ;} +#line 815 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].node)); } +#line 16995 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 254: -#line 624 "third_party/libpg_query/grammar/statements/create.y" - { - PGConstraint *n = makeNode(PGConstraint); - n->contype = PG_CONSTR_PRIMARY; - n->location = (yylsp[(1) - (7)]); - n->keys = (yyvsp[(4) - (7)].list); - n->options = (yyvsp[(6) - (7)].list); - n->indexname = NULL; - processCASbits((yyvsp[(7) - (7)].ival), (yylsp[(7) - (7)]), "PRIMARY KEY", - &n->deferrable, &n->initdeferred, NULL, - NULL, yyscanner); - (yyval.node) = (PGNode *)n; - ;} +#line 819 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = (yyvsp[0].list); } +#line 17001 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 255: -#line 637 "third_party/libpg_query/grammar/statements/create.y" - { - PGConstraint *n = makeNode(PGConstraint); - n->contype = PG_CONSTR_PRIMARY; - n->location = (yylsp[(1) - (4)]); - n->keys = NIL; - n->options = NIL; - n->indexname = (yyvsp[(3) - (4)].str); - n->indexspace = NULL; - processCASbits((yyvsp[(4) - (4)].ival), (yylsp[(4) - (4)]), "PRIMARY KEY", - &n->deferrable, &n->initdeferred, NULL, - NULL, yyscanner); - (yyval.node) = (PGNode *)n; - ;} +#line 820 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = (yyvsp[-1].list); } +#line 17007 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 256: -#line 652 "third_party/libpg_query/grammar/statements/create.y" - { - PGConstraint *n = makeNode(PGConstraint); - n->contype = PG_CONSTR_FOREIGN; - n->location = (yylsp[(1) - (11)]); - n->pktable = (yyvsp[(7) - (11)].range); - n->fk_attrs = (yyvsp[(4) - (11)].list); - n->pk_attrs = (yyvsp[(8) - (11)].list); - n->fk_matchtype = (yyvsp[(9) - (11)].ival); - n->fk_upd_action = (char) ((yyvsp[(10) - (11)].ival) >> 8); - n->fk_del_action = (char) ((yyvsp[(10) - (11)].ival) & 0xFF); - processCASbits((yyvsp[(11) - (11)].ival), (yylsp[(11) - (11)]), "FOREIGN KEY", - &n->deferrable, &n->initdeferred, - &n->skip_validation, NULL, - yyscanner); - n->initially_valid = !n->skip_validation; - (yyval.node) = (PGNode *)n; - ;} +#line 827 "third_party/libpg_query/grammar/statements/select.y" + { + (yyvsp[-2].range)->alias = (yyvsp[-1].alias); + (yyvsp[-2].range)->sample = (yyvsp[0].node); + (yyval.node) = (PGNode *) (yyvsp[-2].range); + } +#line 17017 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 257: -#line 674 "third_party/libpg_query/grammar/statements/create.y" - { - (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); - ;} +#line 833 "third_party/libpg_query/grammar/statements/select.y" + { + PGRangeFunction *n = (PGRangeFunction *) (yyvsp[-2].node); + n->alias = (PGAlias*) linitial((yyvsp[-1].list)); + n->coldeflist = (PGList*) lsecond((yyvsp[-1].list)); + n->sample = (yyvsp[0].node); + (yyval.node) = (PGNode *) n; + } +#line 17029 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 258: -#line 678 "third_party/libpg_query/grammar/statements/create.y" - { - (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node)); - ;} +#line 841 "third_party/libpg_query/grammar/statements/select.y" + { + PGRangeSubselect *n = makeNode(PGRangeSubselect); + n->lateral = false; + n->subquery = (yyvsp[-2].node); + n->alias = (yyvsp[-1].alias); + n->sample = (yyvsp[0].node); + (yyval.node) = (PGNode *) n; + } +#line 17042 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 259: -#line 685 "third_party/libpg_query/grammar/statements/create.y" - { - (yyval.ival) = PG_FKCONSTR_MATCH_FULL; - ;} +#line 850 "third_party/libpg_query/grammar/statements/select.y" + { + PGRangeFunction *n = (PGRangeFunction *) (yyvsp[-1].node); + n->lateral = true; + n->alias = (PGAlias*) linitial((yyvsp[0].list)); + n->coldeflist = (PGList*) lsecond((yyvsp[0].list)); + (yyval.node) = (PGNode *) n; + } +#line 17054 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 260: -#line 689 "third_party/libpg_query/grammar/statements/create.y" - { - ereport(ERROR, - (errcode(PG_ERRCODE_FEATURE_NOT_SUPPORTED), - errmsg("MATCH PARTIAL not yet implemented"), - parser_errposition((yylsp[(1) - (2)])))); - (yyval.ival) = PG_FKCONSTR_MATCH_PARTIAL; - ;} +#line 858 "third_party/libpg_query/grammar/statements/select.y" + { + PGRangeSubselect *n = makeNode(PGRangeSubselect); + n->lateral = false; + n->subquery = (yyvsp[-2].node); + n->alias = (yyvsp[-1].alias); + n->sample = (yyvsp[0].node); + (yyval.node) = (PGNode *) n; + } +#line 17067 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 261: -#line 697 "third_party/libpg_query/grammar/statements/create.y" - { - (yyval.ival) = PG_FKCONSTR_MATCH_SIMPLE; - ;} +#line 867 "third_party/libpg_query/grammar/statements/select.y" + { + PGRangeSubselect *n = makeNode(PGRangeSubselect); + n->lateral = true; + n->subquery = (yyvsp[-1].node); + n->alias = (yyvsp[0].alias); + n->sample = NULL; + (yyval.node) = (PGNode *) n; + } +#line 17080 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 262: -#line 701 "third_party/libpg_query/grammar/statements/create.y" - { - (yyval.ival) = PG_FKCONSTR_MATCH_SIMPLE; - ;} +#line 876 "third_party/libpg_query/grammar/statements/select.y" + { + (yyval.node) = (PGNode *) (yyvsp[0].jexpr); + } +#line 17088 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 263: -#line 709 "third_party/libpg_query/grammar/statements/create.y" - { - PGTableLikeClause *n = makeNode(PGTableLikeClause); - n->relation = (yyvsp[(2) - (3)].range); - n->options = (yyvsp[(3) - (3)].ival); - (yyval.node) = (PGNode *)n; - ;} +#line 880 "third_party/libpg_query/grammar/statements/select.y" + { + (yyvsp[-2].jexpr)->alias = (yyvsp[0].alias); + (yyval.node) = (PGNode *) (yyvsp[-2].jexpr); + } +#line 17097 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 264: -#line 718 "third_party/libpg_query/grammar/statements/create.y" - { (yyval.ival) = PG_RELPERSISTENCE_TEMP; ;} +#line 906 "third_party/libpg_query/grammar/statements/select.y" + { + (yyval.jexpr) = (yyvsp[-1].jexpr); + } +#line 17105 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 265: -#line 719 "third_party/libpg_query/grammar/statements/create.y" - { (yyval.ival) = PG_RELPERSISTENCE_TEMP; ;} +#line 910 "third_party/libpg_query/grammar/statements/select.y" + { + /* CROSS JOIN is same as unqualified inner join */ + PGJoinExpr *n = makeNode(PGJoinExpr); + n->jointype = PG_JOIN_INNER; + n->isNatural = false; + n->larg = (yyvsp[-3].node); + n->rarg = (yyvsp[0].node); + n->usingClause = NIL; + n->quals = NULL; + n->location = (yylsp[-2]); + (yyval.jexpr) = n; + } +#line 17122 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 266: -#line 720 "third_party/libpg_query/grammar/statements/create.y" - { (yyval.ival) = PG_RELPERSISTENCE_TEMP; ;} +#line 923 "third_party/libpg_query/grammar/statements/select.y" + { + PGJoinExpr *n = makeNode(PGJoinExpr); + n->jointype = (yyvsp[-3].jtype); + n->isNatural = false; + n->larg = (yyvsp[-4].node); + n->rarg = (yyvsp[-1].node); + if ((yyvsp[0].node) != NULL && IsA((yyvsp[0].node), PGList)) + n->usingClause = (PGList *) (yyvsp[0].node); /* USING clause */ + else + n->quals = (yyvsp[0].node); /* ON clause */ + n->location = (yylsp[-3]); + (yyval.jexpr) = n; + } +#line 17140 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 267: -#line 721 "third_party/libpg_query/grammar/statements/create.y" - { (yyval.ival) = PG_RELPERSISTENCE_TEMP; ;} +#line 937 "third_party/libpg_query/grammar/statements/select.y" + { + /* letting join_type reduce to empty doesn't work */ + PGJoinExpr *n = makeNode(PGJoinExpr); + n->jointype = PG_JOIN_INNER; + n->isNatural = false; + n->larg = (yyvsp[-3].node); + n->rarg = (yyvsp[-1].node); + if ((yyvsp[0].node) != NULL && IsA((yyvsp[0].node), PGList)) + n->usingClause = (PGList *) (yyvsp[0].node); /* USING clause */ + else + n->quals = (yyvsp[0].node); /* ON clause */ + n->location = (yylsp[-2]); + (yyval.jexpr) = n; + } +#line 17159 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 268: -#line 723 "third_party/libpg_query/grammar/statements/create.y" - { - ereport(PGWARNING, - (errmsg("GLOBAL is deprecated in temporary table creation"), - parser_errposition((yylsp[(1) - (2)])))); - (yyval.ival) = PG_RELPERSISTENCE_TEMP; - ;} +#line 952 "third_party/libpg_query/grammar/statements/select.y" + { + PGJoinExpr *n = makeNode(PGJoinExpr); + n->jointype = (yyvsp[-2].jtype); + n->isNatural = true; + n->larg = (yyvsp[-4].node); + n->rarg = (yyvsp[0].node); + n->usingClause = NIL; /* figure out which columns later... */ + n->quals = NULL; /* fill later */ + n->location = (yylsp[-3]); + (yyval.jexpr) = n; + } +#line 17175 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 269: -#line 730 "third_party/libpg_query/grammar/statements/create.y" - { - ereport(PGWARNING, - (errmsg("GLOBAL is deprecated in temporary table creation"), - parser_errposition((yylsp[(1) - (2)])))); - (yyval.ival) = PG_RELPERSISTENCE_TEMP; - ;} +#line 964 "third_party/libpg_query/grammar/statements/select.y" + { + /* letting join_type reduce to empty doesn't work */ + PGJoinExpr *n = makeNode(PGJoinExpr); + n->jointype = PG_JOIN_INNER; + n->isNatural = true; + n->larg = (yyvsp[-3].node); + n->rarg = (yyvsp[0].node); + n->usingClause = NIL; /* figure out which columns later... */ + n->quals = NULL; /* fill later */ + n->location = (yylsp[-2]); + (yyval.jexpr) = n; + } +#line 17192 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 270: -#line 736 "third_party/libpg_query/grammar/statements/create.y" - { (yyval.ival) = PG_RELPERSISTENCE_UNLOGGED; ;} +#line 980 "third_party/libpg_query/grammar/statements/select.y" + { + (yyval.alias) = makeNode(PGAlias); + (yyval.alias)->aliasname = (yyvsp[-3].str); + (yyval.alias)->colnames = (yyvsp[-1].list); + } +#line 17202 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 271: -#line 737 "third_party/libpg_query/grammar/statements/create.y" - { (yyval.ival) = RELPERSISTENCE_PERMANENT; ;} +#line 986 "third_party/libpg_query/grammar/statements/select.y" + { + (yyval.alias) = makeNode(PGAlias); + (yyval.alias)->aliasname = (yyvsp[0].str); + } +#line 17211 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 272: -#line 742 "third_party/libpg_query/grammar/statements/create.y" - { (yyval.ival) = PG_ATTRIBUTE_IDENTITY_ALWAYS; ;} +#line 991 "third_party/libpg_query/grammar/statements/select.y" + { + (yyval.alias) = makeNode(PGAlias); + (yyval.alias)->aliasname = (yyvsp[-3].str); + (yyval.alias)->colnames = (yyvsp[-1].list); + } +#line 17221 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 273: -#line 743 "third_party/libpg_query/grammar/statements/create.y" - { (yyval.ival) = ATTRIBUTE_IDENTITY_BY_DEFAULT; ;} +#line 997 "third_party/libpg_query/grammar/statements/select.y" + { + (yyval.alias) = makeNode(PGAlias); + (yyval.alias)->aliasname = (yyvsp[0].str); + } +#line 17230 "third_party/libpg_query/grammar/grammar_out.cpp" break; - - case 274: -#line 10 "third_party/libpg_query/grammar/statements/alter_sequence.y" - { - PGAlterSeqStmt *n = makeNode(PGAlterSeqStmt); - n->sequence = (yyvsp[(3) - (4)].range); - n->options = (yyvsp[(4) - (4)].list); - n->missing_ok = false; - (yyval.node) = (PGNode *)n; - ;} + + case 274: +#line 1003 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.alias) = (yyvsp[0].alias); } +#line 17236 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 275: -#line 18 "third_party/libpg_query/grammar/statements/alter_sequence.y" - { - PGAlterSeqStmt *n = makeNode(PGAlterSeqStmt); - n->sequence = (yyvsp[(5) - (6)].range); - n->options = (yyvsp[(6) - (6)].list); - n->missing_ok = true; - (yyval.node) = (PGNode *)n; - ;} +#line 1004 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.alias) = NULL; } +#line 17242 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 276: -#line 29 "third_party/libpg_query/grammar/statements/alter_sequence.y" - { (yyval.list) = list_make1((yyvsp[(1) - (1)].defelt)); ;} +#line 1013 "third_party/libpg_query/grammar/statements/select.y" + { + (yyval.list) = list_make2((yyvsp[0].alias), NIL); + } +#line 17250 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 277: -#line 30 "third_party/libpg_query/grammar/statements/alter_sequence.y" - { (yyval.list) = lappend((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].defelt)); ;} +#line 1017 "third_party/libpg_query/grammar/statements/select.y" + { + (yyval.list) = list_make2(NULL, (yyvsp[-1].list)); + } +#line 17258 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 278: -#line 34 "third_party/libpg_query/grammar/statements/alter_sequence.y" - {;} +#line 1021 "third_party/libpg_query/grammar/statements/select.y" + { + PGAlias *a = makeNode(PGAlias); + a->aliasname = (yyvsp[-3].str); + (yyval.list) = list_make2(a, (yyvsp[-1].list)); + } +#line 17268 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 279: -#line 35 "third_party/libpg_query/grammar/statements/alter_sequence.y" - {;} +#line 1027 "third_party/libpg_query/grammar/statements/select.y" + { + PGAlias *a = makeNode(PGAlias); + a->aliasname = (yyvsp[-3].str); + (yyval.list) = list_make2(a, (yyvsp[-1].list)); + } +#line 17278 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 280: -#line 36 "third_party/libpg_query/grammar/statements/alter_sequence.y" - {;} +#line 1033 "third_party/libpg_query/grammar/statements/select.y" + { + (yyval.list) = list_make2(NULL, NIL); + } +#line 17286 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 281: -#line 41 "third_party/libpg_query/grammar/statements/alter_sequence.y" - { (yyval.value) = makeFloat((yyvsp[(1) - (1)].str)); ;} +#line 1038 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.jtype) = PG_JOIN_FULL; } +#line 17292 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 282: -#line 42 "third_party/libpg_query/grammar/statements/alter_sequence.y" - { (yyval.value) = makeFloat((yyvsp[(2) - (2)].str)); ;} +#line 1039 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.jtype) = PG_JOIN_LEFT; } +#line 17298 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 283: -#line 44 "third_party/libpg_query/grammar/statements/alter_sequence.y" - { - (yyval.value) = makeFloat((yyvsp[(2) - (2)].str)); - doNegateFloat((yyval.value)); - ;} +#line 1040 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.jtype) = PG_JOIN_RIGHT; } +#line 17304 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 284: -#line 48 "third_party/libpg_query/grammar/statements/alter_sequence.y" - { (yyval.value) = makeInteger((yyvsp[(1) - (1)].ival)); ;} +#line 1041 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.jtype) = PG_JOIN_INNER; } +#line 17310 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 285: -#line 53 "third_party/libpg_query/grammar/statements/alter_sequence.y" - { - (yyval.defelt) = makeDefElem("as", (PGNode *)(yyvsp[(2) - (2)].typnam), (yylsp[(1) - (2)])); - ;} +#line 1045 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.node) = NULL; } +#line 17316 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 286: -#line 57 "third_party/libpg_query/grammar/statements/alter_sequence.y" - { - (yyval.defelt) = makeDefElem("cache", (PGNode *)(yyvsp[(2) - (2)].value), (yylsp[(1) - (2)])); - ;} +#line 1046 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.node) = NULL; } +#line 17322 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 287: -#line 61 "third_party/libpg_query/grammar/statements/alter_sequence.y" - { - (yyval.defelt) = makeDefElem("cycle", (PGNode *)makeInteger(true), (yylsp[(1) - (1)])); - ;} +#line 1058 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.node) = (PGNode *) (yyvsp[-1].list); } +#line 17328 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 288: -#line 65 "third_party/libpg_query/grammar/statements/alter_sequence.y" - { - (yyval.defelt) = makeDefElem("cycle", (PGNode *)makeInteger(false), (yylsp[(1) - (2)])); - ;} +#line 1059 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.node) = (yyvsp[0].node); } +#line 17334 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 289: -#line 69 "third_party/libpg_query/grammar/statements/alter_sequence.y" - { - (yyval.defelt) = makeDefElem("increment", (PGNode *)(yyvsp[(3) - (3)].value), (yylsp[(1) - (3)])); - ;} +#line 1065 "third_party/libpg_query/grammar/statements/select.y" + { + /* inheritance query, implicitly */ + (yyval.range) = (yyvsp[0].range); + (yyval.range)->inh = true; + (yyval.range)->alias = NULL; + } +#line 17345 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 290: -#line 73 "third_party/libpg_query/grammar/statements/alter_sequence.y" - { - (yyval.defelt) = makeDefElem("maxvalue", (PGNode *)(yyvsp[(2) - (2)].value), (yylsp[(1) - (2)])); - ;} +#line 1072 "third_party/libpg_query/grammar/statements/select.y" + { + /* inheritance query, explicitly */ + (yyval.range) = (yyvsp[-1].range); + (yyval.range)->inh = true; + (yyval.range)->alias = NULL; + } +#line 17356 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 291: -#line 77 "third_party/libpg_query/grammar/statements/alter_sequence.y" - { - (yyval.defelt) = makeDefElem("minvalue", (PGNode *)(yyvsp[(2) - (2)].value), (yylsp[(1) - (2)])); - ;} +#line 1079 "third_party/libpg_query/grammar/statements/select.y" + { + /* no inheritance */ + (yyval.range) = (yyvsp[0].range); + (yyval.range)->inh = false; + (yyval.range)->alias = NULL; + } +#line 17367 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 292: -#line 81 "third_party/libpg_query/grammar/statements/alter_sequence.y" - { - (yyval.defelt) = makeDefElem("maxvalue", NULL, (yylsp[(1) - (2)])); - ;} +#line 1086 "third_party/libpg_query/grammar/statements/select.y" + { + /* no inheritance, SQL99-style syntax */ + (yyval.range) = (yyvsp[-1].range); + (yyval.range)->inh = false; + (yyval.range)->alias = NULL; + } +#line 17378 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 293: -#line 85 "third_party/libpg_query/grammar/statements/alter_sequence.y" - { - (yyval.defelt) = makeDefElem("minvalue", NULL, (yylsp[(1) - (2)])); - ;} +#line 1118 "third_party/libpg_query/grammar/statements/select.y" + { + PGRangeFunction *n = makeNode(PGRangeFunction); + n->lateral = false; + n->ordinality = (yyvsp[0].boolean); + n->is_rowsfrom = false; + n->functions = list_make1(list_make2((yyvsp[-1].node), NIL)); + n->sample = NULL; + /* alias and coldeflist are set by table_ref production */ + (yyval.node) = (PGNode *) n; + } +#line 17393 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 294: -#line 89 "third_party/libpg_query/grammar/statements/alter_sequence.y" - { - (yyval.defelt) = makeDefElem("owned_by", (PGNode *)(yyvsp[(3) - (3)].list), (yylsp[(1) - (3)])); - ;} +#line 1129 "third_party/libpg_query/grammar/statements/select.y" + { + PGRangeFunction *n = makeNode(PGRangeFunction); + n->lateral = false; + n->ordinality = (yyvsp[0].boolean); + n->is_rowsfrom = true; + n->functions = (yyvsp[-2].list); + n->sample = NULL; + /* alias and coldeflist are set by table_ref production */ + (yyval.node) = (PGNode *) n; + } +#line 17408 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 295: -#line 93 "third_party/libpg_query/grammar/statements/alter_sequence.y" - { - /* not documented, only used by pg_dump */ - (yyval.defelt) = makeDefElem("sequence_name", (PGNode *)(yyvsp[(3) - (3)].list), (yylsp[(1) - (3)])); - ;} +#line 1142 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = list_make2((yyvsp[-1].node), (yyvsp[0].list)); } +#line 17414 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 296: -#line 98 "third_party/libpg_query/grammar/statements/alter_sequence.y" - { - (yyval.defelt) = makeDefElem("start", (PGNode *)(yyvsp[(3) - (3)].value), (yylsp[(1) - (3)])); - ;} +#line 1146 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = list_make1((yyvsp[0].list)); } +#line 17420 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 297: -#line 102 "third_party/libpg_query/grammar/statements/alter_sequence.y" - { - (yyval.defelt) = makeDefElem("restart", NULL, (yylsp[(1) - (1)])); - ;} +#line 1147 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].list)); } +#line 17426 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 298: -#line 106 "third_party/libpg_query/grammar/statements/alter_sequence.y" - { - (yyval.defelt) = makeDefElem("restart", (PGNode *)(yyvsp[(3) - (3)].value), (yylsp[(1) - (3)])); - ;} +#line 1150 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = (yyvsp[-1].list); } +#line 17432 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 299: -#line 112 "third_party/libpg_query/grammar/statements/alter_sequence.y" - {;} +#line 1151 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = NIL; } +#line 17438 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 300: -#line 113 "third_party/libpg_query/grammar/statements/alter_sequence.y" - {;} +#line 1154 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.boolean) = true; } +#line 17444 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 301: -#line 117 "third_party/libpg_query/grammar/statements/alter_sequence.y" - { (yyval.ival) = (yyvsp[(1) - (1)].ival); ;} +#line 1155 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.boolean) = false; } +#line 17450 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 302: -#line 118 "third_party/libpg_query/grammar/statements/alter_sequence.y" - { (yyval.ival) = + (yyvsp[(2) - (2)].ival); ;} +#line 1160 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.node) = (yyvsp[0].node); } +#line 17456 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 303: -#line 119 "third_party/libpg_query/grammar/statements/alter_sequence.y" - { (yyval.ival) = - (yyvsp[(2) - (2)].ival); ;} +#line 1161 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.node) = NULL; } +#line 17462 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 304: -#line 8 "third_party/libpg_query/grammar/statements/alter_schema.y" - { - PGAlterObjectSchemaStmt *n = makeNode(PGAlterObjectSchemaStmt); - n->objectType = PG_OBJECT_TABLE; - n->relation = (yyvsp[(3) - (6)].range); - n->newschema = (yyvsp[(6) - (6)].str); - n->missing_ok = false; - (yyval.node) = (PGNode *)n; - ;} +#line 1167 "third_party/libpg_query/grammar/statements/select.y" + { + (yyval.list) = list_make1((yyvsp[0].node)); + } +#line 17470 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 305: -#line 17 "third_party/libpg_query/grammar/statements/alter_schema.y" - { - PGAlterObjectSchemaStmt *n = makeNode(PGAlterObjectSchemaStmt); - n->objectType = PG_OBJECT_TABLE; - n->relation = (yyvsp[(5) - (8)].range); - n->newschema = (yyvsp[(8) - (8)].str); - n->missing_ok = true; - (yyval.node) = (PGNode *)n; - ;} +#line 1171 "third_party/libpg_query/grammar/statements/select.y" + { + (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].node)); + } +#line 17478 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 306: -#line 26 "third_party/libpg_query/grammar/statements/alter_schema.y" - { - PGAlterObjectSchemaStmt *n = makeNode(PGAlterObjectSchemaStmt); - n->objectType = PG_OBJECT_SEQUENCE; - n->relation = (yyvsp[(3) - (6)].range); - n->newschema = (yyvsp[(6) - (6)].str); - n->missing_ok = false; +#line 1177 "third_party/libpg_query/grammar/statements/select.y" + { + PGColumnDef *n = makeNode(PGColumnDef); + n->colname = (yyvsp[-2].str); + n->typeName = (yyvsp[-1].typnam); + n->inhcount = 0; + n->is_local = true; + n->is_not_null = false; + n->is_from_type = false; + n->storage = 0; + n->raw_default = NULL; + n->cooked_default = NULL; + n->collClause = (PGCollateClause *) (yyvsp[0].node); + n->collOid = InvalidOid; + n->constraints = NIL; + n->location = (yylsp[-2]); (yyval.node) = (PGNode *)n; - ;} + } +#line 17500 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 307: -#line 35 "third_party/libpg_query/grammar/statements/alter_schema.y" - { - PGAlterObjectSchemaStmt *n = makeNode(PGAlterObjectSchemaStmt); - n->objectType = PG_OBJECT_SEQUENCE; - n->relation = (yyvsp[(5) - (8)].range); - n->newschema = (yyvsp[(8) - (8)].str); - n->missing_ok = true; - (yyval.node) = (PGNode *)n; - ;} +#line 1198 "third_party/libpg_query/grammar/statements/select.y" + { + PGCollateClause *n = makeNode(PGCollateClause); + n->arg = NULL; + n->collname = (yyvsp[0].list); + n->location = (yylsp[-1]); + (yyval.node) = (PGNode *) n; + } +#line 17512 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 308: -#line 44 "third_party/libpg_query/grammar/statements/alter_schema.y" - { - PGAlterObjectSchemaStmt *n = makeNode(PGAlterObjectSchemaStmt); - n->objectType = PG_OBJECT_VIEW; - n->relation = (yyvsp[(3) - (6)].range); - n->newschema = (yyvsp[(6) - (6)].str); - n->missing_ok = false; - (yyval.node) = (PGNode *)n; - ;} +#line 1205 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.node) = NULL; } +#line 17518 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 309: -#line 53 "third_party/libpg_query/grammar/statements/alter_schema.y" - { - PGAlterObjectSchemaStmt *n = makeNode(PGAlterObjectSchemaStmt); - n->objectType = PG_OBJECT_VIEW; - n->relation = (yyvsp[(5) - (8)].range); - n->newschema = (yyvsp[(8) - (8)].str); - n->missing_ok = true; - (yyval.node) = (PGNode *)n; - ;} +#line 1218 "third_party/libpg_query/grammar/statements/select.y" + { + (yyval.list) = list_make1(list_make2(makeString((yyvsp[-1].str)), (yyvsp[0].typnam))); + } +#line 17526 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 310: -#line 10 "third_party/libpg_query/grammar/statements/analyze.y" - { - PGVacuumStmt *n = makeNode(PGVacuumStmt); - n->options = PG_VACOPT_ANALYZE; - if ((yyvsp[(2) - (2)].boolean)) - n->options |= PG_VACOPT_VERBOSE; - n->relation = NULL; - n->va_cols = NIL; - (yyval.node) = (PGNode *)n; - ;} - break; - - case 311: -#line 20 "third_party/libpg_query/grammar/statements/analyze.y" - { - PGVacuumStmt *n = makeNode(PGVacuumStmt); - n->options = PG_VACOPT_ANALYZE; - if ((yyvsp[(2) - (4)].boolean)) - n->options |= PG_VACOPT_VERBOSE; - n->relation = (yyvsp[(3) - (4)].range); - n->va_cols = (yyvsp[(4) - (4)].list); - (yyval.node) = (PGNode *)n; - ;} - break; - - case 312: -#line 7 "third_party/libpg_query/grammar/statements/rename.y" - { - PGRenameStmt *n = makeNode(PGRenameStmt); - n->renameType = PG_OBJECT_SCHEMA; - n->subname = (yyvsp[(3) - (6)].str); - n->newname = (yyvsp[(6) - (6)].str); - n->missing_ok = false; - (yyval.node) = (PGNode *)n; - ;} +#line 1221 "third_party/libpg_query/grammar/statements/select.y" + { + (yyval.list) = lappend((yyvsp[-3].list), list_make2(makeString((yyvsp[-1].str)), (yyvsp[0].typnam))); + } +#line 17534 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 313: -#line 16 "third_party/libpg_query/grammar/statements/rename.y" - { - PGRenameStmt *n = makeNode(PGRenameStmt); - n->renameType = PG_OBJECT_TABLE; - n->relation = (yyvsp[(3) - (6)].range); - n->subname = NULL; - n->newname = (yyvsp[(6) - (6)].str); - n->missing_ok = false; - (yyval.node) = (PGNode *)n; - ;} +#line 1228 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.typnam) = (yyvsp[0].typnam); } +#line 17540 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 314: -#line 26 "third_party/libpg_query/grammar/statements/rename.y" - { - PGRenameStmt *n = makeNode(PGRenameStmt); - n->renameType = PG_OBJECT_TABLE; - n->relation = (yyvsp[(5) - (8)].range); - n->subname = NULL; - n->newname = (yyvsp[(8) - (8)].str); - n->missing_ok = true; - (yyval.node) = (PGNode *)n; - ;} +#line 1229 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.typnam) = NULL; } +#line 17546 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 315: -#line 36 "third_party/libpg_query/grammar/statements/rename.y" - { - PGRenameStmt *n = makeNode(PGRenameStmt); - n->renameType = PG_OBJECT_SEQUENCE; - n->relation = (yyvsp[(3) - (6)].range); - n->subname = NULL; - n->newname = (yyvsp[(6) - (6)].str); - n->missing_ok = false; - (yyval.node) = (PGNode *)n; - ;} +#line 1232 "third_party/libpg_query/grammar/statements/select.y" + { + (yyval.typnam) = (yyvsp[-1].typnam); + (yyval.typnam)->arrayBounds = (yyvsp[0].list); + } +#line 17555 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 316: -#line 46 "third_party/libpg_query/grammar/statements/rename.y" - { - PGRenameStmt *n = makeNode(PGRenameStmt); - n->renameType = PG_OBJECT_SEQUENCE; - n->relation = (yyvsp[(5) - (8)].range); - n->subname = NULL; - n->newname = (yyvsp[(8) - (8)].str); - n->missing_ok = true; - (yyval.node) = (PGNode *)n; - ;} +#line 1237 "third_party/libpg_query/grammar/statements/select.y" + { + (yyval.typnam) = (yyvsp[-1].typnam); + (yyval.typnam)->arrayBounds = (yyvsp[0].list); + (yyval.typnam)->setof = true; + } +#line 17565 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 317: -#line 56 "third_party/libpg_query/grammar/statements/rename.y" - { - PGRenameStmt *n = makeNode(PGRenameStmt); - n->renameType = PG_OBJECT_VIEW; - n->relation = (yyvsp[(3) - (6)].range); - n->subname = NULL; - n->newname = (yyvsp[(6) - (6)].str); - n->missing_ok = false; - (yyval.node) = (PGNode *)n; - ;} +#line 1244 "third_party/libpg_query/grammar/statements/select.y" + { + (yyval.typnam) = (yyvsp[-4].typnam); + (yyval.typnam)->arrayBounds = list_make1(makeInteger((yyvsp[-1].ival))); + } +#line 17574 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 318: -#line 66 "third_party/libpg_query/grammar/statements/rename.y" - { - PGRenameStmt *n = makeNode(PGRenameStmt); - n->renameType = PG_OBJECT_VIEW; - n->relation = (yyvsp[(5) - (8)].range); - n->subname = NULL; - n->newname = (yyvsp[(8) - (8)].str); - n->missing_ok = true; - (yyval.node) = (PGNode *)n; - ;} +#line 1249 "third_party/libpg_query/grammar/statements/select.y" + { + (yyval.typnam) = (yyvsp[-4].typnam); + (yyval.typnam)->arrayBounds = list_make1(makeInteger((yyvsp[-1].ival))); + (yyval.typnam)->setof = true; + } +#line 17584 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 319: -#line 76 "third_party/libpg_query/grammar/statements/rename.y" - { - PGRenameStmt *n = makeNode(PGRenameStmt); - n->renameType = PG_OBJECT_INDEX; - n->relation = (yyvsp[(3) - (6)].range); - n->subname = NULL; - n->newname = (yyvsp[(6) - (6)].str); - n->missing_ok = false; - (yyval.node) = (PGNode *)n; - ;} +#line 1255 "third_party/libpg_query/grammar/statements/select.y" + { + (yyval.typnam) = (yyvsp[-1].typnam); + (yyval.typnam)->arrayBounds = list_make1(makeInteger(-1)); + } +#line 17593 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 320: -#line 86 "third_party/libpg_query/grammar/statements/rename.y" - { - PGRenameStmt *n = makeNode(PGRenameStmt); - n->renameType = PG_OBJECT_INDEX; - n->relation = (yyvsp[(5) - (8)].range); - n->subname = NULL; - n->newname = (yyvsp[(8) - (8)].str); - n->missing_ok = true; - (yyval.node) = (PGNode *)n; - ;} +#line 1260 "third_party/libpg_query/grammar/statements/select.y" + { + (yyval.typnam) = (yyvsp[-1].typnam); + (yyval.typnam)->arrayBounds = list_make1(makeInteger(-1)); + (yyval.typnam)->setof = true; + } +#line 17603 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 321: -#line 96 "third_party/libpg_query/grammar/statements/rename.y" - { - PGRenameStmt *n = makeNode(PGRenameStmt); - n->renameType = PG_OBJECT_COLUMN; - n->relationType = PG_OBJECT_TABLE; - n->relation = (yyvsp[(3) - (8)].range); - n->subname = (yyvsp[(6) - (8)].str); - n->newname = (yyvsp[(8) - (8)].str); - n->missing_ok = false; - (yyval.node) = (PGNode *)n; - ;} +#line 1265 "third_party/libpg_query/grammar/statements/select.y" + { + (yyval.typnam) = SystemTypeName("struct"); + (yyval.typnam)->arrayBounds = (yyvsp[0].list); + (yyval.typnam)->typmods = (yyvsp[-2].list); + (yyval.typnam)->location = (yylsp[-4]); + } +#line 17614 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 322: -#line 107 "third_party/libpg_query/grammar/statements/rename.y" - { - PGRenameStmt *n = makeNode(PGRenameStmt); - n->renameType = PG_OBJECT_COLUMN; - n->relationType = PG_OBJECT_TABLE; - n->relation = (yyvsp[(5) - (10)].range); - n->subname = (yyvsp[(8) - (10)].str); - n->newname = (yyvsp[(10) - (10)].str); - n->missing_ok = true; - (yyval.node) = (PGNode *)n; - ;} +#line 1271 "third_party/libpg_query/grammar/statements/select.y" + { + (yyval.typnam) = SystemTypeName("map"); + (yyval.typnam)->arrayBounds = (yyvsp[0].list); + (yyval.typnam)->typmods = (yyvsp[-2].list); + (yyval.typnam)->location = (yylsp[-4]); + } +#line 17625 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 323: -#line 118 "third_party/libpg_query/grammar/statements/rename.y" - { - PGRenameStmt *n = makeNode(PGRenameStmt); - n->renameType = PG_OBJECT_TABCONSTRAINT; - n->relation = (yyvsp[(3) - (8)].range); - n->subname = (yyvsp[(6) - (8)].str); - n->newname = (yyvsp[(8) - (8)].str); - n->missing_ok = false; - (yyval.node) = (PGNode *)n; - ;} +#line 1281 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = lappend((yyvsp[-2].list), makeInteger(-1)); } +#line 17631 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 324: -#line 128 "third_party/libpg_query/grammar/statements/rename.y" - { - PGRenameStmt *n = makeNode(PGRenameStmt); - n->renameType = PG_OBJECT_TABCONSTRAINT; - n->relation = (yyvsp[(5) - (10)].range); - n->subname = (yyvsp[(8) - (10)].str); - n->newname = (yyvsp[(10) - (10)].str); - n->missing_ok = true; - (yyval.node) = (PGNode *)n; - ;} +#line 1283 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = lappend((yyvsp[-3].list), makeInteger((yyvsp[-1].ival))); } +#line 17637 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 325: -#line 140 "third_party/libpg_query/grammar/statements/rename.y" - { (yyval.ival) = COLUMN; ;} +#line 1285 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = NIL; } +#line 17643 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 326: -#line 141 "third_party/libpg_query/grammar/statements/rename.y" - { (yyval.ival) = 0; ;} +#line 1289 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.typnam) = (yyvsp[0].typnam); } +#line 17649 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 327: -#line 8 "third_party/libpg_query/grammar/statements/execute.y" - { - PGExecuteStmt *n = makeNode(PGExecuteStmt); - n->name = (yyvsp[(2) - (3)].str); - n->params = (yyvsp[(3) - (3)].list); - (yyval.node) = (PGNode *) n; - ;} +#line 1290 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.typnam) = (yyvsp[0].typnam); } +#line 17655 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 328: -#line 16 "third_party/libpg_query/grammar/statements/execute.y" - { - PGCreateTableAsStmt *ctas = makeNode(PGCreateTableAsStmt); - PGExecuteStmt *n = makeNode(PGExecuteStmt); - n->name = (yyvsp[(7) - (9)].str); - n->params = (yyvsp[(8) - (9)].list); - ctas->query = (PGNode *) n; - ctas->into = (yyvsp[(4) - (9)].into); - ctas->relkind = PG_OBJECT_TABLE; - ctas->is_select_into = false; - ctas->onconflict = PG_ERROR_ON_CONFLICT; - /* cram additional flags into the PGIntoClause */ - (yyvsp[(4) - (9)].into)->rel->relpersistence = (yyvsp[(2) - (9)].ival); - (yyvsp[(4) - (9)].into)->skipData = !((yyvsp[(9) - (9)].boolean)); - (yyval.node) = (PGNode *) ctas; - ;} +#line 1291 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.typnam) = (yyvsp[0].typnam); } +#line 17661 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 329: -#line 33 "third_party/libpg_query/grammar/statements/execute.y" - { - PGCreateTableAsStmt *ctas = makeNode(PGCreateTableAsStmt); - PGExecuteStmt *n = makeNode(PGExecuteStmt); - n->name = (yyvsp[(10) - (12)].str); - n->params = (yyvsp[(11) - (12)].list); - ctas->query = (PGNode *) n; - ctas->into = (yyvsp[(7) - (12)].into); - ctas->relkind = PG_OBJECT_TABLE; - ctas->is_select_into = false; - ctas->onconflict = PG_IGNORE_ON_CONFLICT; - /* cram additional flags into the PGIntoClause */ - (yyvsp[(7) - (12)].into)->rel->relpersistence = (yyvsp[(2) - (12)].ival); - (yyvsp[(7) - (12)].into)->skipData = !((yyvsp[(12) - (12)].boolean)); - (yyval.node) = (PGNode *) ctas; - ;} +#line 1292 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.typnam) = (yyvsp[0].typnam); } +#line 17667 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 330: -#line 51 "third_party/libpg_query/grammar/statements/execute.y" - { (yyval.list) = (yyvsp[(2) - (3)].list); ;} +#line 1293 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.typnam) = (yyvsp[0].typnam); } +#line 17673 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 331: -#line 52 "third_party/libpg_query/grammar/statements/execute.y" - { (yyval.list) = NIL; ;} +#line 1295 "third_party/libpg_query/grammar/statements/select.y" + { + (yyval.typnam) = (yyvsp[-1].typnam); + (yyval.typnam)->typmods = (yyvsp[0].list); + } +#line 17682 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 332: -#line 11 "third_party/libpg_query/grammar/statements/variable_set.y" - { - PGVariableSetStmt *n = (yyvsp[(2) - (2)].vsetstmt); - n->scope = VAR_SET_SCOPE_DEFAULT; - (yyval.node) = (PGNode *) n; - ;} +#line 1300 "third_party/libpg_query/grammar/statements/select.y" + { + (yyval.typnam) = (yyvsp[-3].typnam); + (yyval.typnam)->typmods = list_make2(makeIntConst(INTERVAL_FULL_RANGE, -1), + makeIntConst((yyvsp[-1].ival), (yylsp[-1]))); + } +#line 17692 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 333: -#line 17 "third_party/libpg_query/grammar/statements/variable_set.y" - { - PGVariableSetStmt *n = (yyvsp[(3) - (3)].vsetstmt); - n->scope = VAR_SET_SCOPE_LOCAL; - (yyval.node) = (PGNode *) n; - ;} +#line 1319 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.typnam) = (yyvsp[0].typnam); } +#line 17698 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 334: -#line 23 "third_party/libpg_query/grammar/statements/variable_set.y" - { - PGVariableSetStmt *n = (yyvsp[(3) - (3)].vsetstmt); - n->scope = VAR_SET_SCOPE_SESSION; - (yyval.node) = (PGNode *) n; - ;} +#line 1320 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.typnam) = (yyvsp[0].typnam); } +#line 17704 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 335: -#line 29 "third_party/libpg_query/grammar/statements/variable_set.y" - { - PGVariableSetStmt *n = (yyvsp[(3) - (3)].vsetstmt); - n->scope = VAR_SET_SCOPE_GLOBAL; - (yyval.node) = (PGNode *) n; - ;} +#line 1321 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.typnam) = (yyvsp[0].typnam); } +#line 17710 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 336: -#line 38 "third_party/libpg_query/grammar/statements/variable_set.y" - {(yyval.vsetstmt) = (yyvsp[(1) - (1)].vsetstmt);;} +#line 1322 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.typnam) = (yyvsp[0].typnam); } +#line 17716 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 337: -#line 40 "third_party/libpg_query/grammar/statements/variable_set.y" - { - PGVariableSetStmt *n = makeNode(PGVariableSetStmt); - n->kind = VAR_SET_CURRENT; - n->name = (yyvsp[(1) - (3)].str); - (yyval.vsetstmt) = n; - ;} +#line 1334 "third_party/libpg_query/grammar/statements/select.y" + { + (yyval.typnam) = makeTypeName((yyvsp[-1].str)); + (yyval.typnam)->typmods = (yyvsp[0].list); + (yyval.typnam)->location = (yylsp[-1]); + } +#line 17726 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 338: -#line 48 "third_party/libpg_query/grammar/statements/variable_set.y" - { - PGVariableSetStmt *n = makeNode(PGVariableSetStmt); - n->kind = VAR_SET_VALUE; - n->name = (char*) "timezone"; - if ((yyvsp[(3) - (3)].node) != NULL) - n->args = list_make1((yyvsp[(3) - (3)].node)); - else - n->kind = VAR_SET_DEFAULT; - (yyval.vsetstmt) = n; - ;} +#line 1347 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = (yyvsp[-1].list); } +#line 17732 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 339: -#line 59 "third_party/libpg_query/grammar/statements/variable_set.y" - { - PGVariableSetStmt *n = makeNode(PGVariableSetStmt); - n->kind = VAR_SET_VALUE; - n->name = (char*) "search_path"; - n->args = list_make1(makeStringConst((yyvsp[(2) - (2)].str), (yylsp[(2) - (2)]))); - (yyval.vsetstmt) = n; - ;} +#line 1348 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = NIL; } +#line 17738 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 340: -#line 71 "third_party/libpg_query/grammar/statements/variable_set.y" - { - PGVariableSetStmt *n = makeNode(PGVariableSetStmt); - n->kind = VAR_SET_VALUE; - n->name = (yyvsp[(1) - (3)].str); - n->args = (yyvsp[(3) - (3)].list); - (yyval.vsetstmt) = n; - ;} +#line 1355 "third_party/libpg_query/grammar/statements/select.y" + { + (yyval.typnam) = SystemTypeName("int4"); + (yyval.typnam)->location = (yylsp[0]); + } +#line 17747 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 341: -#line 79 "third_party/libpg_query/grammar/statements/variable_set.y" - { - PGVariableSetStmt *n = makeNode(PGVariableSetStmt); - n->kind = VAR_SET_VALUE; - n->name = (yyvsp[(1) - (3)].str); - n->args = (yyvsp[(3) - (3)].list); - (yyval.vsetstmt) = n; - ;} +#line 1360 "third_party/libpg_query/grammar/statements/select.y" + { + (yyval.typnam) = SystemTypeName("int4"); + (yyval.typnam)->location = (yylsp[0]); + } +#line 17756 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 342: -#line 87 "third_party/libpg_query/grammar/statements/variable_set.y" - { - PGVariableSetStmt *n = makeNode(PGVariableSetStmt); - n->kind = VAR_SET_DEFAULT; - n->name = (yyvsp[(1) - (3)].str); - (yyval.vsetstmt) = n; - ;} +#line 1365 "third_party/libpg_query/grammar/statements/select.y" + { + (yyval.typnam) = SystemTypeName("int2"); + (yyval.typnam)->location = (yylsp[0]); + } +#line 17765 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 343: -#line 94 "third_party/libpg_query/grammar/statements/variable_set.y" - { - PGVariableSetStmt *n = makeNode(PGVariableSetStmt); - n->kind = VAR_SET_DEFAULT; - n->name = (yyvsp[(1) - (3)].str); - (yyval.vsetstmt) = n; - ;} +#line 1370 "third_party/libpg_query/grammar/statements/select.y" + { + (yyval.typnam) = SystemTypeName("int8"); + (yyval.typnam)->location = (yylsp[0]); + } +#line 17774 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 344: -#line 104 "third_party/libpg_query/grammar/statements/variable_set.y" - { (yyval.node) = makeStringConst((yyvsp[(1) - (1)].str), (yylsp[(1) - (1)])); ;} +#line 1375 "third_party/libpg_query/grammar/statements/select.y" + { + (yyval.typnam) = SystemTypeName("float4"); + (yyval.typnam)->location = (yylsp[0]); + } +#line 17783 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 345: -#line 106 "third_party/libpg_query/grammar/statements/variable_set.y" - { (yyval.node) = makeAConst((yyvsp[(1) - (1)].value), (yylsp[(1) - (1)])); ;} +#line 1380 "third_party/libpg_query/grammar/statements/select.y" + { + (yyval.typnam) = (yyvsp[0].typnam); + (yyval.typnam)->location = (yylsp[-1]); + } +#line 17792 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 346: -#line 112 "third_party/libpg_query/grammar/statements/variable_set.y" - { - (yyval.node) = makeStringConst((yyvsp[(1) - (1)].str), (yylsp[(1) - (1)])); - ;} +#line 1385 "third_party/libpg_query/grammar/statements/select.y" + { + (yyval.typnam) = SystemTypeName("float8"); + (yyval.typnam)->location = (yylsp[-1]); + } +#line 17801 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 347: -#line 116 "third_party/libpg_query/grammar/statements/variable_set.y" - { - (yyval.node) = makeStringConst((yyvsp[(1) - (1)].str), (yylsp[(1) - (1)])); - ;} +#line 1390 "third_party/libpg_query/grammar/statements/select.y" + { + (yyval.typnam) = SystemTypeName("numeric"); + (yyval.typnam)->typmods = (yyvsp[0].list); + (yyval.typnam)->location = (yylsp[-1]); + } +#line 17811 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 348: -#line 120 "third_party/libpg_query/grammar/statements/variable_set.y" - { - PGTypeName *t = (yyvsp[(1) - (3)].typnam); - if ((yyvsp[(3) - (3)].list) != NIL) - { - PGAConst *n = (PGAConst *) linitial((yyvsp[(3) - (3)].list)); - if ((n->val.val.ival & ~(INTERVAL_MASK(HOUR) | INTERVAL_MASK(MINUTE))) != 0) - ereport(ERROR, - (errcode(PG_ERRCODE_SYNTAX_ERROR), - errmsg("time zone interval must be HOUR or HOUR TO MINUTE"), - parser_errposition((yylsp[(3) - (3)])))); - } - t->typmods = (yyvsp[(3) - (3)].list); - (yyval.node) = makeStringConstCast((yyvsp[(2) - (3)].str), (yylsp[(2) - (3)]), t); - ;} +#line 1396 "third_party/libpg_query/grammar/statements/select.y" + { + (yyval.typnam) = SystemTypeName("numeric"); + (yyval.typnam)->typmods = (yyvsp[0].list); + (yyval.typnam)->location = (yylsp[-1]); + } +#line 17821 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 349: -#line 135 "third_party/libpg_query/grammar/statements/variable_set.y" - { - PGTypeName *t = (yyvsp[(1) - (5)].typnam); - t->typmods = list_make2(makeIntConst(INTERVAL_FULL_RANGE, -1), - makeIntConst((yyvsp[(3) - (5)].ival), (yylsp[(3) - (5)]))); - (yyval.node) = makeStringConstCast((yyvsp[(5) - (5)].str), (yylsp[(5) - (5)]), t); - ;} +#line 1402 "third_party/libpg_query/grammar/statements/select.y" + { + (yyval.typnam) = SystemTypeName("numeric"); + (yyval.typnam)->typmods = (yyvsp[0].list); + (yyval.typnam)->location = (yylsp[-1]); + } +#line 17831 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 350: -#line 141 "third_party/libpg_query/grammar/statements/variable_set.y" - { (yyval.node) = makeAConst((yyvsp[(1) - (1)].value), (yylsp[(1) - (1)])); ;} +#line 1408 "third_party/libpg_query/grammar/statements/select.y" + { + (yyval.typnam) = SystemTypeName("bool"); + (yyval.typnam)->location = (yylsp[0]); + } +#line 17840 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 351: -#line 142 "third_party/libpg_query/grammar/statements/variable_set.y" - { (yyval.node) = NULL; ;} +#line 1415 "third_party/libpg_query/grammar/statements/select.y" + { + /* + * Check FLOAT() precision limits assuming IEEE floating + * types - thomas 1997-09-18 + */ + if ((yyvsp[-1].ival) < 1) + ereport(ERROR, + (errcode(PG_ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("precision for type float must be at least 1 bit"), + parser_errposition((yylsp[-1])))); + else if ((yyvsp[-1].ival) <= 24) + (yyval.typnam) = SystemTypeName("float4"); + else if ((yyvsp[-1].ival) <= 53) + (yyval.typnam) = SystemTypeName("float8"); + else + ereport(ERROR, + (errcode(PG_ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("precision for type float must be less than 54 bits"), + parser_errposition((yylsp[-1])))); + } +#line 17865 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 352: -#line 143 "third_party/libpg_query/grammar/statements/variable_set.y" - { (yyval.node) = NULL; ;} +#line 1436 "third_party/libpg_query/grammar/statements/select.y" + { + (yyval.typnam) = SystemTypeName("float4"); + } +#line 17873 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 353: -#line 147 "third_party/libpg_query/grammar/statements/variable_set.y" - { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); ;} +#line 1446 "third_party/libpg_query/grammar/statements/select.y" + { + (yyval.typnam) = (yyvsp[0].typnam); + } +#line 17881 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 354: -#line 148 "third_party/libpg_query/grammar/statements/variable_set.y" - { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node)); ;} +#line 1450 "third_party/libpg_query/grammar/statements/select.y" + { + (yyval.typnam) = (yyvsp[0].typnam); + } +#line 17889 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 355: -#line 6 "third_party/libpg_query/grammar/statements/checkpoint.y" - { - PGCheckPointStmt *n = makeNode(PGCheckPointStmt); - n->force = true; - (yyval.node) = (PGNode *)n; - ;} +#line 1458 "third_party/libpg_query/grammar/statements/select.y" + { + (yyval.typnam) = (yyvsp[0].typnam); + } +#line 17897 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 356: -#line 12 "third_party/libpg_query/grammar/statements/checkpoint.y" - { - PGCheckPointStmt *n = makeNode(PGCheckPointStmt); - n->force = false; - (yyval.node) = (PGNode *)n; - ;} +#line 1462 "third_party/libpg_query/grammar/statements/select.y" + { + (yyval.typnam) = (yyvsp[0].typnam); + (yyval.typnam)->typmods = NIL; + } +#line 17906 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 357: -#line 8 "third_party/libpg_query/grammar/statements/prepare.y" - { - PGPrepareStmt *n = makeNode(PGPrepareStmt); - n->name = (yyvsp[(2) - (5)].str); - n->argtypes = (yyvsp[(3) - (5)].list); - n->query = (yyvsp[(5) - (5)].node); - (yyval.node) = (PGNode *) n; - ;} +#line 1470 "third_party/libpg_query/grammar/statements/select.y" + { + const char *typname; + + typname = (yyvsp[-3].boolean) ? "varbit" : "bit"; + (yyval.typnam) = SystemTypeName(typname); + (yyval.typnam)->typmods = (yyvsp[-1].list); + (yyval.typnam)->location = (yylsp[-4]); + } +#line 17919 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 358: -#line 18 "third_party/libpg_query/grammar/statements/prepare.y" - { (yyval.list) = (yyvsp[(2) - (3)].list); ;} +#line 1482 "third_party/libpg_query/grammar/statements/select.y" + { + /* bit defaults to bit(1), varbit to no limit */ + if ((yyvsp[0].boolean)) + { + (yyval.typnam) = SystemTypeName("varbit"); + } + else + { + (yyval.typnam) = SystemTypeName("bit"); + (yyval.typnam)->typmods = list_make1(makeIntConst(1, -1)); + } + (yyval.typnam)->location = (yylsp[-1]); + } +#line 17937 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 359: -#line 19 "third_party/libpg_query/grammar/statements/prepare.y" - { (yyval.list) = NIL; ;} +#line 1503 "third_party/libpg_query/grammar/statements/select.y" + { + (yyval.typnam) = (yyvsp[0].typnam); + } +#line 17945 "third_party/libpg_query/grammar/grammar_out.cpp" + break; + + case 360: +#line 1507 "third_party/libpg_query/grammar/statements/select.y" + { + (yyval.typnam) = (yyvsp[0].typnam); + } +#line 17953 "third_party/libpg_query/grammar/grammar_out.cpp" + break; + + case 361: +#line 1513 "third_party/libpg_query/grammar/statements/select.y" + { + (yyval.typnam) = (yyvsp[0].typnam); + } +#line 17961 "third_party/libpg_query/grammar/grammar_out.cpp" + break; + + case 362: +#line 1517 "third_party/libpg_query/grammar/statements/select.y" + { + /* Length was not specified so allow to be unrestricted. + * This handles problems with fixed-length (bpchar) strings + * which in column definitions must default to a length + * of one, but should not be constrained if the length + * was not specified. + */ + (yyval.typnam) = (yyvsp[0].typnam); + (yyval.typnam)->typmods = NIL; + } +#line 17976 "third_party/libpg_query/grammar/grammar_out.cpp" + break; + + case 363: +#line 1530 "third_party/libpg_query/grammar/statements/select.y" + { + (yyval.typnam) = SystemTypeName((yyvsp[-3].conststr)); + (yyval.typnam)->typmods = list_make1(makeIntConst((yyvsp[-1].ival), (yylsp[-1]))); + (yyval.typnam)->location = (yylsp[-3]); + } +#line 17986 "third_party/libpg_query/grammar/grammar_out.cpp" + break; + + case 364: +#line 1538 "third_party/libpg_query/grammar/statements/select.y" + { + (yyval.typnam) = SystemTypeName((yyvsp[0].conststr)); + /* char defaults to char(1), varchar to no limit */ + if (strcmp((yyvsp[0].conststr), "bpchar") == 0) + (yyval.typnam)->typmods = list_make1(makeIntConst(1, -1)); + (yyval.typnam)->location = (yylsp[0]); + } +#line 17998 "third_party/libpg_query/grammar/grammar_out.cpp" + break; + + case 365: +#line 1548 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.conststr) = (yyvsp[0].boolean) ? "varchar": "bpchar"; } +#line 18004 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 364: -#line 9 "third_party/libpg_query/grammar/statements/create_function.y" - { - PGCreateFunctionStmt *n = makeNode(PGCreateFunctionStmt); - n->relpersistence=(yyvsp[(2) - (8)].ival); - n->name = (yyvsp[(4) - (8)].range); - n->params = (yyvsp[(5) - (8)].list); - n->function = NULL; - n->query = (yyvsp[(8) - (8)].node); - (yyval.node) = (PGNode *)n; - - ;} + case 366: +#line 1550 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.conststr) = (yyvsp[0].boolean) ? "varchar": "bpchar"; } +#line 18010 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 365: -#line 21 "third_party/libpg_query/grammar/statements/create_function.y" - { - PGCreateFunctionStmt *n = makeNode(PGCreateFunctionStmt); - n->relpersistence=(yyvsp[(2) - (7)].ival); - n->name = (yyvsp[(4) - (7)].range); - n->params = (yyvsp[(5) - (7)].list); - n->function = (yyvsp[(7) - (7)].node); - n->query = NULL; - (yyval.node) = (PGNode *)n; - ;} + case 367: +#line 1552 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.conststr) = "varchar"; } +#line 18016 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 368: -#line 42 "third_party/libpg_query/grammar/statements/create_function.y" - { - (yyval.list) = NIL; - ;} +#line 1554 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.conststr) = (yyvsp[0].boolean) ? "varchar": "bpchar"; } +#line 18022 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 369: -#line 46 "third_party/libpg_query/grammar/statements/create_function.y" - { - (yyval.list) = (yyvsp[(2) - (3)].list); - ;} +#line 1556 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.conststr) = (yyvsp[0].boolean) ? "varchar": "bpchar"; } +#line 18028 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 370: -#line 11 "third_party/libpg_query/grammar/statements/index.y" - { - PGIndexStmt *n = makeNode(PGIndexStmt); - n->unique = (yyvsp[(2) - (13)].boolean); - n->concurrent = (yyvsp[(4) - (13)].boolean); - n->idxname = (yyvsp[(5) - (13)].str); - n->relation = (yyvsp[(7) - (13)].range); - n->accessMethod = (yyvsp[(8) - (13)].str); - n->indexParams = (yyvsp[(10) - (13)].list); - n->options = (yyvsp[(12) - (13)].list); - n->whereClause = (yyvsp[(13) - (13)].node); - n->excludeOpNames = NIL; - n->idxcomment = NULL; - n->indexOid = InvalidOid; - n->oldNode = InvalidOid; - n->primary = false; - n->isconstraint = false; - n->deferrable = false; - n->initdeferred = false; - n->transformed = false; - n->onconflict = PG_ERROR_ON_CONFLICT; - (yyval.node) = (PGNode *)n; - ;} +#line 1558 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.conststr) = (yyvsp[0].boolean) ? "varchar": "bpchar"; } +#line 18034 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 371: -#line 36 "third_party/libpg_query/grammar/statements/index.y" - { - PGIndexStmt *n = makeNode(PGIndexStmt); - n->unique = (yyvsp[(2) - (16)].boolean); - n->concurrent = (yyvsp[(4) - (16)].boolean); - n->idxname = (yyvsp[(8) - (16)].str); - n->relation = (yyvsp[(10) - (16)].range); - n->accessMethod = (yyvsp[(11) - (16)].str); - n->indexParams = (yyvsp[(13) - (16)].list); - n->options = (yyvsp[(15) - (16)].list); - n->whereClause = (yyvsp[(16) - (16)].node); - n->excludeOpNames = NIL; - n->idxcomment = NULL; - n->indexOid = InvalidOid; - n->oldNode = InvalidOid; - n->primary = false; - n->isconstraint = false; - n->deferrable = false; - n->initdeferred = false; - n->transformed = false; - n->onconflict = PG_IGNORE_ON_CONFLICT; - (yyval.node) = (PGNode *)n; - ;} +#line 1562 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.boolean) = true; } +#line 18040 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 372: -#line 62 "third_party/libpg_query/grammar/statements/index.y" - { (yyval.str) = (yyvsp[(1) - (1)].str); ;} +#line 1563 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.boolean) = false; } +#line 18046 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 373: -#line 66 "third_party/libpg_query/grammar/statements/index.y" - { (yyval.str) = (yyvsp[(2) - (2)].str); ;} +#line 1571 "third_party/libpg_query/grammar/statements/select.y" + { + if ((yyvsp[0].boolean)) + (yyval.typnam) = SystemTypeName("timestamptz"); + else + (yyval.typnam) = SystemTypeName("timestamp"); + (yyval.typnam)->typmods = list_make1(makeIntConst((yyvsp[-2].ival), (yylsp[-2]))); + (yyval.typnam)->location = (yylsp[-4]); + } +#line 18059 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 374: -#line 67 "third_party/libpg_query/grammar/statements/index.y" - { (yyval.str) = (char*) DEFAULT_INDEX_TYPE; ;} +#line 1580 "third_party/libpg_query/grammar/statements/select.y" + { + if ((yyvsp[0].boolean)) + (yyval.typnam) = SystemTypeName("timestamptz"); + else + (yyval.typnam) = SystemTypeName("timestamp"); + (yyval.typnam)->location = (yylsp[-1]); + } +#line 18071 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 375: -#line 72 "third_party/libpg_query/grammar/statements/index.y" - { (yyval.boolean) = true; ;} +#line 1588 "third_party/libpg_query/grammar/statements/select.y" + { + if ((yyvsp[0].boolean)) + (yyval.typnam) = SystemTypeName("timetz"); + else + (yyval.typnam) = SystemTypeName("time"); + (yyval.typnam)->typmods = list_make1(makeIntConst((yyvsp[-2].ival), (yylsp[-2]))); + (yyval.typnam)->location = (yylsp[-4]); + } +#line 18084 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 376: -#line 73 "third_party/libpg_query/grammar/statements/index.y" - { (yyval.boolean) = false; ;} +#line 1597 "third_party/libpg_query/grammar/statements/select.y" + { + if ((yyvsp[0].boolean)) + (yyval.typnam) = SystemTypeName("timetz"); + else + (yyval.typnam) = SystemTypeName("time"); + (yyval.typnam)->location = (yylsp[-1]); + } +#line 18096 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 377: -#line 78 "third_party/libpg_query/grammar/statements/index.y" - { (yyval.str) = (yyvsp[(1) - (1)].str); ;} +#line 1608 "third_party/libpg_query/grammar/statements/select.y" + { + (yyval.typnam) = SystemTypeName("interval"); + (yyval.typnam)->location = (yylsp[0]); + } +#line 18105 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 378: -#line 79 "third_party/libpg_query/grammar/statements/index.y" - { (yyval.str) = NULL; ;} +#line 1615 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.boolean) = true; } +#line 18111 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 379: -#line 83 "third_party/libpg_query/grammar/statements/index.y" - { (yyval.list) = (yyvsp[(2) - (2)].list); ;} +#line 1616 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.boolean) = false; } +#line 18117 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 380: -#line 84 "third_party/libpg_query/grammar/statements/index.y" - { (yyval.list) = NIL; ;} +#line 1617 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.boolean) = false; } +#line 18123 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 381: -#line 89 "third_party/libpg_query/grammar/statements/index.y" - { (yyval.boolean) = true; ;} + case 397: +#line 1646 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(YEAR), (yylsp[0]))); } +#line 18129 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 382: -#line 90 "third_party/libpg_query/grammar/statements/index.y" - { (yyval.boolean) = false; ;} + case 398: +#line 1648 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(MONTH), (yylsp[0]))); } +#line 18135 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 383: -#line 10 "third_party/libpg_query/grammar/statements/explain.y" - { - PGExplainStmt *n = makeNode(PGExplainStmt); - n->query = (yyvsp[(2) - (2)].node); - n->options = NIL; - (yyval.node) = (PGNode *) n; - ;} + case 399: +#line 1650 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(DAY), (yylsp[0]))); } +#line 18141 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 384: -#line 17 "third_party/libpg_query/grammar/statements/explain.y" - { - PGExplainStmt *n = makeNode(PGExplainStmt); - n->query = (yyvsp[(4) - (4)].node); - n->options = list_make1(makeDefElem("analyze", NULL, (yylsp[(2) - (4)]))); - if ((yyvsp[(3) - (4)].boolean)) - n->options = lappend(n->options, - makeDefElem("verbose", NULL, (yylsp[(3) - (4)]))); - (yyval.node) = (PGNode *) n; - ;} + case 400: +#line 1652 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(HOUR), (yylsp[0]))); } +#line 18147 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 385: -#line 27 "third_party/libpg_query/grammar/statements/explain.y" - { - PGExplainStmt *n = makeNode(PGExplainStmt); - n->query = (yyvsp[(3) - (3)].node); - n->options = list_make1(makeDefElem("verbose", NULL, (yylsp[(2) - (3)]))); - (yyval.node) = (PGNode *) n; - ;} + case 401: +#line 1654 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(MINUTE), (yylsp[0]))); } +#line 18153 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 386: -#line 34 "third_party/libpg_query/grammar/statements/explain.y" - { - PGExplainStmt *n = makeNode(PGExplainStmt); - n->query = (yyvsp[(5) - (5)].node); - n->options = (yyvsp[(3) - (5)].list); + case 402: +#line 1656 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(SECOND), (yylsp[0]))); } +#line 18159 "third_party/libpg_query/grammar/grammar_out.cpp" + break; + + case 403: +#line 1658 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(MILLISECOND), (yylsp[0]))); } +#line 18165 "third_party/libpg_query/grammar/grammar_out.cpp" + break; + + case 404: +#line 1660 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(MICROSECOND), (yylsp[0]))); } +#line 18171 "third_party/libpg_query/grammar/grammar_out.cpp" + break; + + case 405: +#line 1662 "third_party/libpg_query/grammar/statements/select.y" + { + (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(YEAR) | + INTERVAL_MASK(MONTH), (yylsp[-2]))); + } +#line 18180 "third_party/libpg_query/grammar/grammar_out.cpp" + break; + + case 406: +#line 1667 "third_party/libpg_query/grammar/statements/select.y" + { + (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(DAY) | + INTERVAL_MASK(HOUR), (yylsp[-2]))); + } +#line 18189 "third_party/libpg_query/grammar/grammar_out.cpp" + break; + + case 407: +#line 1672 "third_party/libpg_query/grammar/statements/select.y" + { + (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(DAY) | + INTERVAL_MASK(HOUR) | + INTERVAL_MASK(MINUTE), (yylsp[-2]))); + } +#line 18199 "third_party/libpg_query/grammar/grammar_out.cpp" + break; + + case 408: +#line 1678 "third_party/libpg_query/grammar/statements/select.y" + { + (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(DAY) | + INTERVAL_MASK(HOUR) | + INTERVAL_MASK(MINUTE) | + INTERVAL_MASK(SECOND), (yylsp[-2]))); + } +#line 18210 "third_party/libpg_query/grammar/grammar_out.cpp" + break; + + case 409: +#line 1685 "third_party/libpg_query/grammar/statements/select.y" + { + (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(HOUR) | + INTERVAL_MASK(MINUTE), (yylsp[-2]))); + } +#line 18219 "third_party/libpg_query/grammar/grammar_out.cpp" + break; + + case 410: +#line 1690 "third_party/libpg_query/grammar/statements/select.y" + { + (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(HOUR) | + INTERVAL_MASK(MINUTE) | + INTERVAL_MASK(SECOND), (yylsp[-2]))); + } +#line 18229 "third_party/libpg_query/grammar/grammar_out.cpp" + break; + + case 411: +#line 1696 "third_party/libpg_query/grammar/statements/select.y" + { + (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(MINUTE) | + INTERVAL_MASK(SECOND), (yylsp[-2]))); + } +#line 18238 "third_party/libpg_query/grammar/grammar_out.cpp" + break; + + case 412: +#line 1701 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = NIL; } +#line 18244 "third_party/libpg_query/grammar/grammar_out.cpp" + break; + + case 413: +#line 1732 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.node) = (yyvsp[0].node); } +#line 18250 "third_party/libpg_query/grammar/grammar_out.cpp" + break; + + case 414: +#line 1735 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.node) = makeTypeCast((yyvsp[-2].node), (yyvsp[0].typnam), 0, (yylsp[-1])); } +#line 18256 "third_party/libpg_query/grammar/grammar_out.cpp" + break; + + case 415: +#line 1737 "third_party/libpg_query/grammar/statements/select.y" + { + PGCollateClause *n = makeNode(PGCollateClause); + n->arg = (yyvsp[-2].node); + n->collname = (yyvsp[0].list); + n->location = (yylsp[-1]); (yyval.node) = (PGNode *) n; - ;} + } +#line 18268 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 387: -#line 44 "third_party/libpg_query/grammar/statements/explain.y" - { (yyval.boolean) = true; ;} + case 416: +#line 1745 "third_party/libpg_query/grammar/statements/select.y" + { + (yyval.node) = (PGNode *) makeFuncCall(SystemFuncName("timezone"), + list_make2((yyvsp[0].node), (yyvsp[-4].node)), + (yylsp[-3])); + } +#line 18278 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 388: -#line 45 "third_party/libpg_query/grammar/statements/explain.y" - { (yyval.boolean) = false; ;} + case 417: +#line 1760 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, "+", NULL, (yyvsp[0].node), (yylsp[-1])); } +#line 18284 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 389: -#line 50 "third_party/libpg_query/grammar/statements/explain.y" - { (yyval.node) = (PGNode *) makeString((yyvsp[(1) - (1)].str)); ;} + case 418: +#line 1762 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.node) = doNegate((yyvsp[0].node), (yylsp[-1])); } +#line 18290 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 390: -#line 51 "third_party/libpg_query/grammar/statements/explain.y" - { (yyval.node) = (PGNode *) (yyvsp[(1) - (1)].value); ;} + case 419: +#line 1764 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, "+", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); } +#line 18296 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 391: -#line 52 "third_party/libpg_query/grammar/statements/explain.y" - { (yyval.node) = NULL; ;} + case 420: +#line 1766 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, "-", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); } +#line 18302 "third_party/libpg_query/grammar/grammar_out.cpp" + break; + + case 421: +#line 1768 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, "*", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); } +#line 18308 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 422: -#line 90 "third_party/libpg_query/grammar/statements/explain.y" - { (yyval.str) = (yyvsp[(1) - (1)].str); ;} +#line 1770 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, "/", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); } +#line 18314 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 423: -#line 91 "third_party/libpg_query/grammar/statements/explain.y" - { (yyval.str) = pstrdup((yyvsp[(1) - (1)].keyword)); ;} +#line 1772 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, "%", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); } +#line 18320 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 424: -#line 92 "third_party/libpg_query/grammar/statements/explain.y" - { (yyval.str) = pstrdup((yyvsp[(1) - (1)].keyword)); ;} +#line 1774 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, "^", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); } +#line 18326 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 425: -#line 97 "third_party/libpg_query/grammar/statements/explain.y" - { (yyval.str) = (yyvsp[(1) - (1)].str); ;} +#line 1776 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, "**", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); } +#line 18332 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 426: -#line 98 "third_party/libpg_query/grammar/statements/explain.y" - { (yyval.str) = (yyvsp[(1) - (1)].str); ;} +#line 1778 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, "<", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); } +#line 18338 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 427: -#line 104 "third_party/libpg_query/grammar/statements/explain.y" - { - (yyval.list) = list_make1((yyvsp[(1) - (1)].defelt)); - ;} +#line 1780 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, ">", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); } +#line 18344 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 428: -#line 108 "third_party/libpg_query/grammar/statements/explain.y" - { - (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].defelt)); - ;} +#line 1782 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, "=", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); } +#line 18350 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 429: -#line 115 "third_party/libpg_query/grammar/statements/explain.y" - {;} +#line 1784 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, "<=", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); } +#line 18356 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 430: -#line 116 "third_party/libpg_query/grammar/statements/explain.y" - {;} +#line 1786 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, ">=", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); } +#line 18362 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 431: -#line 121 "third_party/libpg_query/grammar/statements/explain.y" - { (yyval.str) = (char*) "true"; ;} +#line 1788 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, "<>", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); } +#line 18368 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 432: -#line 122 "third_party/libpg_query/grammar/statements/explain.y" - { (yyval.str) = (char*) "false"; ;} +#line 1791 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.node) = (PGNode *) makeAExpr(PG_AEXPR_OP, (yyvsp[-1].list), (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); } +#line 18374 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 433: -#line 123 "third_party/libpg_query/grammar/statements/explain.y" - { (yyval.str) = (char*) "on"; ;} +#line 1793 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.node) = (PGNode *) makeAExpr(PG_AEXPR_OP, (yyvsp[-1].list), NULL, (yyvsp[0].node), (yylsp[-1])); } +#line 18380 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 434: -#line 129 "third_party/libpg_query/grammar/statements/explain.y" - { (yyval.str) = (yyvsp[(1) - (1)].str); ;} +#line 1795 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.node) = (PGNode *) makeAExpr(PG_AEXPR_OP, (yyvsp[0].list), (yyvsp[-1].node), NULL, (yylsp[0])); } +#line 18386 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 435: -#line 135 "third_party/libpg_query/grammar/statements/explain.y" - { - (yyval.defelt) = makeDefElem((yyvsp[(1) - (2)].str), (yyvsp[(2) - (2)].node), (yylsp[(1) - (2)])); - ;} +#line 1798 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.node) = makeAndExpr((yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); } +#line 18392 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 436: -#line 142 "third_party/libpg_query/grammar/statements/explain.y" - { (yyval.str) = (yyvsp[(1) - (1)].str); ;} +#line 1800 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.node) = makeOrExpr((yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); } +#line 18398 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 437: -#line 143 "third_party/libpg_query/grammar/statements/explain.y" - { (yyval.str) = (char*) "analyze"; ;} +#line 1802 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.node) = makeNotExpr((yyvsp[0].node), (yylsp[-1])); } +#line 18404 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 438: -#line 10 "third_party/libpg_query/grammar/statements/drop.y" - { - PGDropStmt *n = makeNode(PGDropStmt); - n->removeType = (yyvsp[(2) - (6)].objtype); - n->missing_ok = true; - n->objects = (yyvsp[(5) - (6)].list); - n->behavior = (yyvsp[(6) - (6)].dbehavior); - n->concurrent = false; - (yyval.node) = (PGNode *)n; - ;} +#line 1804 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.node) = makeNotExpr((yyvsp[0].node), (yylsp[-1])); } +#line 18410 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 439: -#line 20 "third_party/libpg_query/grammar/statements/drop.y" - { - PGDropStmt *n = makeNode(PGDropStmt); - n->removeType = (yyvsp[(2) - (4)].objtype); - n->missing_ok = false; - n->objects = (yyvsp[(3) - (4)].list); - n->behavior = (yyvsp[(4) - (4)].dbehavior); - n->concurrent = false; - (yyval.node) = (PGNode *)n; - ;} +#line 1806 "third_party/libpg_query/grammar/statements/select.y" + { + (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_GLOB, "~~~", + (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); + } +#line 18419 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 440: -#line 30 "third_party/libpg_query/grammar/statements/drop.y" - { - PGDropStmt *n = makeNode(PGDropStmt); - n->removeType = (yyvsp[(2) - (6)].objtype); - n->missing_ok = true; - n->objects = (yyvsp[(5) - (6)].list); - n->behavior = (yyvsp[(6) - (6)].dbehavior); - n->concurrent = false; - (yyval.node) = (PGNode *)n; - ;} +#line 1811 "third_party/libpg_query/grammar/statements/select.y" + { + (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_LIKE, "~~", + (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); + } +#line 18428 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 441: -#line 40 "third_party/libpg_query/grammar/statements/drop.y" - { - PGDropStmt *n = makeNode(PGDropStmt); - n->removeType = (yyvsp[(2) - (4)].objtype); - n->missing_ok = false; - n->objects = (yyvsp[(3) - (4)].list); - n->behavior = (yyvsp[(4) - (4)].dbehavior); - n->concurrent = false; - (yyval.node) = (PGNode *)n; - ;} +#line 1816 "third_party/libpg_query/grammar/statements/select.y" + { + PGFuncCall *n = makeFuncCall(SystemFuncName("like_escape"), + list_make3((yyvsp[-4].node), (yyvsp[-2].node), (yyvsp[0].node)), + (yylsp[-3])); + (yyval.node) = (PGNode *) n; + } +#line 18439 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 442: -#line 50 "third_party/libpg_query/grammar/statements/drop.y" - { - PGDropStmt *n = makeNode(PGDropStmt); - n->removeType = (yyvsp[(2) - (6)].objtype); - n->objects = list_make1(lappend((yyvsp[(5) - (6)].list), makeString((yyvsp[(3) - (6)].str)))); - n->behavior = (yyvsp[(6) - (6)].dbehavior); - n->missing_ok = false; - n->concurrent = false; - (yyval.node) = (PGNode *) n; - ;} +#line 1823 "third_party/libpg_query/grammar/statements/select.y" + { + (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_LIKE, "!~~", + (yyvsp[-3].node), (yyvsp[0].node), (yylsp[-2])); + } +#line 18448 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 443: -#line 60 "third_party/libpg_query/grammar/statements/drop.y" - { - PGDropStmt *n = makeNode(PGDropStmt); - n->removeType = (yyvsp[(2) - (8)].objtype); - n->objects = list_make1(lappend((yyvsp[(7) - (8)].list), makeString((yyvsp[(5) - (8)].str)))); - n->behavior = (yyvsp[(8) - (8)].dbehavior); - n->missing_ok = true; - n->concurrent = false; +#line 1828 "third_party/libpg_query/grammar/statements/select.y" + { + PGFuncCall *n = makeFuncCall(SystemFuncName("not_like_escape"), + list_make3((yyvsp[-5].node), (yyvsp[-2].node), (yyvsp[0].node)), + (yylsp[-4])); (yyval.node) = (PGNode *) n; - ;} + } +#line 18459 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 444: -#line 70 "third_party/libpg_query/grammar/statements/drop.y" - { - PGDropStmt *n = makeNode(PGDropStmt); - n->removeType = PG_OBJECT_TYPE; - n->missing_ok = false; - n->objects = (yyvsp[(3) - (4)].list); - n->behavior = (yyvsp[(4) - (4)].dbehavior); - n->concurrent = false; - (yyval.node) = (PGNode *) n; - ;} +#line 1835 "third_party/libpg_query/grammar/statements/select.y" + { + (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_ILIKE, "~~*", + (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); + } +#line 18468 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 445: -#line 80 "third_party/libpg_query/grammar/statements/drop.y" - { - PGDropStmt *n = makeNode(PGDropStmt); - n->removeType = PG_OBJECT_TYPE; - n->missing_ok = true; - n->objects = (yyvsp[(5) - (6)].list); - n->behavior = (yyvsp[(6) - (6)].dbehavior); - n->concurrent = false; +#line 1840 "third_party/libpg_query/grammar/statements/select.y" + { + PGFuncCall *n = makeFuncCall(SystemFuncName("ilike_escape"), + list_make3((yyvsp[-4].node), (yyvsp[-2].node), (yyvsp[0].node)), + (yylsp[-3])); (yyval.node) = (PGNode *) n; - ;} + } +#line 18479 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 446: -#line 93 "third_party/libpg_query/grammar/statements/drop.y" - { (yyval.objtype) = PG_OBJECT_TABLE; ;} +#line 1847 "third_party/libpg_query/grammar/statements/select.y" + { + (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_ILIKE, "!~~*", + (yyvsp[-3].node), (yyvsp[0].node), (yylsp[-2])); + } +#line 18488 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 447: -#line 94 "third_party/libpg_query/grammar/statements/drop.y" - { (yyval.objtype) = PG_OBJECT_SEQUENCE; ;} +#line 1852 "third_party/libpg_query/grammar/statements/select.y" + { + PGFuncCall *n = makeFuncCall(SystemFuncName("not_ilike_escape"), + list_make3((yyvsp[-5].node), (yyvsp[-2].node), (yyvsp[0].node)), + (yylsp[-4])); + (yyval.node) = (PGNode *) n; + } +#line 18499 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 448: -#line 95 "third_party/libpg_query/grammar/statements/drop.y" - { (yyval.objtype) = PG_OBJECT_FUNCTION; ;} +#line 1860 "third_party/libpg_query/grammar/statements/select.y" + { + PGFuncCall *n = makeFuncCall(SystemFuncName("similar_escape"), + list_make2((yyvsp[0].node), makeNullAConst(-1)), + (yylsp[-2])); + (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_SIMILAR, "~", + (yyvsp[-3].node), (PGNode *) n, (yylsp[-2])); + } +#line 18511 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 449: -#line 96 "third_party/libpg_query/grammar/statements/drop.y" - { (yyval.objtype) = PG_OBJECT_FUNCTION; ;} +#line 1868 "third_party/libpg_query/grammar/statements/select.y" + { + PGFuncCall *n = makeFuncCall(SystemFuncName("similar_escape"), + list_make2((yyvsp[-2].node), (yyvsp[0].node)), + (yylsp[-4])); + (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_SIMILAR, "~", + (yyvsp[-5].node), (PGNode *) n, (yylsp[-4])); + } +#line 18523 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 450: -#line 97 "third_party/libpg_query/grammar/statements/drop.y" - { (yyval.objtype) = PG_OBJECT_TABLE_MACRO; ;} +#line 1876 "third_party/libpg_query/grammar/statements/select.y" + { + PGFuncCall *n = makeFuncCall(SystemFuncName("similar_escape"), + list_make2((yyvsp[0].node), makeNullAConst(-1)), + (yylsp[-3])); + (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_SIMILAR, "!~", + (yyvsp[-4].node), (PGNode *) n, (yylsp[-3])); + } +#line 18535 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 451: -#line 98 "third_party/libpg_query/grammar/statements/drop.y" - { (yyval.objtype) = PG_OBJECT_VIEW; ;} +#line 1884 "third_party/libpg_query/grammar/statements/select.y" + { + PGFuncCall *n = makeFuncCall(SystemFuncName("similar_escape"), + list_make2((yyvsp[-2].node), (yyvsp[0].node)), + (yylsp[-5])); + (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_SIMILAR, "!~", + (yyvsp[-6].node), (PGNode *) n, (yylsp[-5])); + } +#line 18547 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 452: -#line 99 "third_party/libpg_query/grammar/statements/drop.y" - { (yyval.objtype) = PG_OBJECT_MATVIEW; ;} +#line 1902 "third_party/libpg_query/grammar/statements/select.y" + { + PGNullTest *n = makeNode(PGNullTest); + n->arg = (PGExpr *) (yyvsp[-2].node); + n->nulltesttype = PG_IS_NULL; + n->location = (yylsp[-1]); + (yyval.node) = (PGNode *)n; + } +#line 18559 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 453: -#line 100 "third_party/libpg_query/grammar/statements/drop.y" - { (yyval.objtype) = PG_OBJECT_INDEX; ;} +#line 1910 "third_party/libpg_query/grammar/statements/select.y" + { + PGNullTest *n = makeNode(PGNullTest); + n->arg = (PGExpr *) (yyvsp[-1].node); + n->nulltesttype = PG_IS_NULL; + n->location = (yylsp[0]); + (yyval.node) = (PGNode *)n; + } +#line 18571 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 454: -#line 101 "third_party/libpg_query/grammar/statements/drop.y" - { (yyval.objtype) = PG_OBJECT_FOREIGN_TABLE; ;} +#line 1918 "third_party/libpg_query/grammar/statements/select.y" + { + PGNullTest *n = makeNode(PGNullTest); + n->arg = (PGExpr *) (yyvsp[-3].node); + n->nulltesttype = IS_NOT_NULL; + n->location = (yylsp[-2]); + (yyval.node) = (PGNode *)n; + } +#line 18583 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 455: -#line 102 "third_party/libpg_query/grammar/statements/drop.y" - { (yyval.objtype) = PG_OBJECT_COLLATION; ;} +#line 1926 "third_party/libpg_query/grammar/statements/select.y" + { + PGNullTest *n = makeNode(PGNullTest); + n->arg = (PGExpr *) (yyvsp[-2].node); + n->nulltesttype = IS_NOT_NULL; + n->location = (yylsp[-1]); + (yyval.node) = (PGNode *)n; + } +#line 18595 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 456: -#line 103 "third_party/libpg_query/grammar/statements/drop.y" - { (yyval.objtype) = PG_OBJECT_CONVERSION; ;} +#line 1934 "third_party/libpg_query/grammar/statements/select.y" + { + PGNullTest *n = makeNode(PGNullTest); + n->arg = (PGExpr *) (yyvsp[-1].node); + n->nulltesttype = IS_NOT_NULL; + n->location = (yylsp[0]); + (yyval.node) = (PGNode *)n; + } +#line 18607 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 457: -#line 104 "third_party/libpg_query/grammar/statements/drop.y" - { (yyval.objtype) = PG_OBJECT_STATISTIC_EXT; ;} +#line 1941 "third_party/libpg_query/grammar/statements/select.y" + { + PGFuncCall *n = makeFuncCall(SystemFuncName("row"), (yyvsp[0].list), (yylsp[0])); + (yyval.node) = (PGNode *) n; + } +#line 18616 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 458: -#line 105 "third_party/libpg_query/grammar/statements/drop.y" - { (yyval.objtype) = PG_OBJECT_TSPARSER; ;} +#line 1945 "third_party/libpg_query/grammar/statements/select.y" + { + PGFuncCall *n = makeFuncCall(SystemFuncName("struct_pack"), (yyvsp[-1].list), (yylsp[-1])); + (yyval.node) = (PGNode *) n; + } +#line 18625 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 459: -#line 106 "third_party/libpg_query/grammar/statements/drop.y" - { (yyval.objtype) = PG_OBJECT_TSDICTIONARY; ;} +#line 1949 "third_party/libpg_query/grammar/statements/select.y" + { + PGFuncCall *n = makeFuncCall(SystemFuncName("list_value"), (yyvsp[-1].list), (yylsp[-1])); + (yyval.node) = (PGNode *) n; + } +#line 18634 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 460: -#line 107 "third_party/libpg_query/grammar/statements/drop.y" - { (yyval.objtype) = PG_OBJECT_TSTEMPLATE; ;} +#line 1954 "third_party/libpg_query/grammar/statements/select.y" + { + PGLambdaFunction *n = makeNode(PGLambdaFunction); + n->lhs = (yyvsp[-2].node); + n->rhs = (yyvsp[0].node); + n->location = (yylsp[-1]); + (yyval.node) = (PGNode *) n; + } +#line 18646 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 461: -#line 108 "third_party/libpg_query/grammar/statements/drop.y" - { (yyval.objtype) = PG_OBJECT_TSCONFIGURATION; ;} +#line 1962 "third_party/libpg_query/grammar/statements/select.y" + { + (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, "->>", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); + } +#line 18654 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 462: -#line 113 "third_party/libpg_query/grammar/statements/drop.y" - { (yyval.objtype) = PG_OBJECT_ACCESS_METHOD; ;} +#line 1966 "third_party/libpg_query/grammar/statements/select.y" + { + if (list_length((yyvsp[-2].list)) != 2) + ereport(ERROR, + (errcode(PG_ERRCODE_SYNTAX_ERROR), + errmsg("wrong number of parameters on left side of OVERLAPS expression"), + parser_errposition((yylsp[-2])))); + if (list_length((yyvsp[0].list)) != 2) + ereport(ERROR, + (errcode(PG_ERRCODE_SYNTAX_ERROR), + errmsg("wrong number of parameters on right side of OVERLAPS expression"), + parser_errposition((yylsp[0])))); + (yyval.node) = (PGNode *) makeFuncCall(SystemFuncName("overlaps"), + list_concat((yyvsp[-2].list), (yyvsp[0].list)), + (yylsp[-1])); + } +#line 18674 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 463: -#line 114 "third_party/libpg_query/grammar/statements/drop.y" - { (yyval.objtype) = PG_OBJECT_EVENT_TRIGGER; ;} +#line 1982 "third_party/libpg_query/grammar/statements/select.y" + { + PGBooleanTest *b = makeNode(PGBooleanTest); + b->arg = (PGExpr *) (yyvsp[-2].node); + b->booltesttype = PG_IS_TRUE; + b->location = (yylsp[-1]); + (yyval.node) = (PGNode *)b; + } +#line 18686 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 464: -#line 115 "third_party/libpg_query/grammar/statements/drop.y" - { (yyval.objtype) = PG_OBJECT_EXTENSION; ;} +#line 1990 "third_party/libpg_query/grammar/statements/select.y" + { + PGBooleanTest *b = makeNode(PGBooleanTest); + b->arg = (PGExpr *) (yyvsp[-3].node); + b->booltesttype = IS_NOT_TRUE; + b->location = (yylsp[-2]); + (yyval.node) = (PGNode *)b; + } +#line 18698 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 465: -#line 116 "third_party/libpg_query/grammar/statements/drop.y" - { (yyval.objtype) = PG_OBJECT_FDW; ;} +#line 1998 "third_party/libpg_query/grammar/statements/select.y" + { + PGBooleanTest *b = makeNode(PGBooleanTest); + b->arg = (PGExpr *) (yyvsp[-2].node); + b->booltesttype = IS_FALSE; + b->location = (yylsp[-1]); + (yyval.node) = (PGNode *)b; + } +#line 18710 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 466: -#line 117 "third_party/libpg_query/grammar/statements/drop.y" - { (yyval.objtype) = PG_OBJECT_PUBLICATION; ;} +#line 2006 "third_party/libpg_query/grammar/statements/select.y" + { + PGBooleanTest *b = makeNode(PGBooleanTest); + b->arg = (PGExpr *) (yyvsp[-3].node); + b->booltesttype = IS_NOT_FALSE; + b->location = (yylsp[-2]); + (yyval.node) = (PGNode *)b; + } +#line 18722 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 467: -#line 118 "third_party/libpg_query/grammar/statements/drop.y" - { (yyval.objtype) = PG_OBJECT_SCHEMA; ;} +#line 2014 "third_party/libpg_query/grammar/statements/select.y" + { + PGBooleanTest *b = makeNode(PGBooleanTest); + b->arg = (PGExpr *) (yyvsp[-2].node); + b->booltesttype = IS_UNKNOWN; + b->location = (yylsp[-1]); + (yyval.node) = (PGNode *)b; + } +#line 18734 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 468: -#line 119 "third_party/libpg_query/grammar/statements/drop.y" - { (yyval.objtype) = PG_OBJECT_FOREIGN_SERVER; ;} +#line 2022 "third_party/libpg_query/grammar/statements/select.y" + { + PGBooleanTest *b = makeNode(PGBooleanTest); + b->arg = (PGExpr *) (yyvsp[-3].node); + b->booltesttype = IS_NOT_UNKNOWN; + b->location = (yylsp[-2]); + (yyval.node) = (PGNode *)b; + } +#line 18746 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 469: -#line 124 "third_party/libpg_query/grammar/statements/drop.y" - { (yyval.list) = list_make1((yyvsp[(1) - (1)].list)); ;} +#line 2030 "third_party/libpg_query/grammar/statements/select.y" + { + (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_DISTINCT, "=", (yyvsp[-4].node), (yyvsp[0].node), (yylsp[-3])); + } +#line 18754 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 470: -#line 125 "third_party/libpg_query/grammar/statements/drop.y" - { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].list)); ;} +#line 2034 "third_party/libpg_query/grammar/statements/select.y" + { + (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_NOT_DISTINCT, "=", (yyvsp[-5].node), (yyvsp[0].node), (yylsp[-4])); + } +#line 18762 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 471: -#line 130 "third_party/libpg_query/grammar/statements/drop.y" - { (yyval.dbehavior) = PG_DROP_CASCADE; ;} +#line 2038 "third_party/libpg_query/grammar/statements/select.y" + { + (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OF, "=", (yyvsp[-5].node), (PGNode *) (yyvsp[-1].list), (yylsp[-4])); + } +#line 18770 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 472: -#line 131 "third_party/libpg_query/grammar/statements/drop.y" - { (yyval.dbehavior) = PG_DROP_RESTRICT; ;} +#line 2042 "third_party/libpg_query/grammar/statements/select.y" + { + (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OF, "<>", (yyvsp[-6].node), (PGNode *) (yyvsp[-1].list), (yylsp[-5])); + } +#line 18778 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 473: -#line 132 "third_party/libpg_query/grammar/statements/drop.y" - { (yyval.dbehavior) = PG_DROP_RESTRICT; /* default */ ;} +#line 2046 "third_party/libpg_query/grammar/statements/select.y" + { + (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_BETWEEN, + "BETWEEN", + (yyvsp[-5].node), + (PGNode *) list_make2((yyvsp[-2].node), (yyvsp[0].node)), + (yylsp[-4])); + } +#line 18790 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 474: -#line 137 "third_party/libpg_query/grammar/statements/drop.y" - { (yyval.objtype) = PG_OBJECT_POLICY; ;} +#line 2054 "third_party/libpg_query/grammar/statements/select.y" + { + (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_NOT_BETWEEN, + "NOT BETWEEN", + (yyvsp[-6].node), + (PGNode *) list_make2((yyvsp[-2].node), (yyvsp[0].node)), + (yylsp[-5])); + } +#line 18802 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 475: -#line 138 "third_party/libpg_query/grammar/statements/drop.y" - { (yyval.objtype) = PG_OBJECT_RULE; ;} +#line 2062 "third_party/libpg_query/grammar/statements/select.y" + { + (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_BETWEEN_SYM, + "BETWEEN SYMMETRIC", + (yyvsp[-5].node), + (PGNode *) list_make2((yyvsp[-2].node), (yyvsp[0].node)), + (yylsp[-4])); + } +#line 18814 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 476: -#line 139 "third_party/libpg_query/grammar/statements/drop.y" - { (yyval.objtype) = PG_OBJECT_TRIGGER; ;} +#line 2070 "third_party/libpg_query/grammar/statements/select.y" + { + (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_NOT_BETWEEN_SYM, + "NOT BETWEEN SYMMETRIC", + (yyvsp[-6].node), + (PGNode *) list_make2((yyvsp[-2].node), (yyvsp[0].node)), + (yylsp[-5])); + } +#line 18826 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 477: -#line 142 "third_party/libpg_query/grammar/statements/drop.y" - { (yyval.list) = list_make1((yyvsp[(1) - (1)].typnam)); ;} +#line 2078 "third_party/libpg_query/grammar/statements/select.y" + { + /* in_expr returns a PGSubLink or a list of a_exprs */ + if (IsA((yyvsp[0].node), PGSubLink)) + { + /* generate foo = ANY (subquery) */ + PGSubLink *n = (PGSubLink *) (yyvsp[0].node); + n->subLinkType = PG_ANY_SUBLINK; + n->subLinkId = 0; + n->testexpr = (yyvsp[-2].node); + n->operName = NIL; /* show it's IN not = ANY */ + n->location = (yylsp[-1]); + (yyval.node) = (PGNode *)n; + } + else + { + /* generate scalar IN expression */ + (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_IN, "=", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); + } + } +#line 18850 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 478: -#line 143 "third_party/libpg_query/grammar/statements/drop.y" - { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].typnam)); ;} +#line 2098 "third_party/libpg_query/grammar/statements/select.y" + { + /* in_expr returns a PGSubLink or a list of a_exprs */ + if (IsA((yyvsp[0].node), PGSubLink)) + { + /* generate NOT (foo = ANY (subquery)) */ + /* Make an = ANY node */ + PGSubLink *n = (PGSubLink *) (yyvsp[0].node); + n->subLinkType = PG_ANY_SUBLINK; + n->subLinkId = 0; + n->testexpr = (yyvsp[-3].node); + n->operName = NIL; /* show it's IN not = ANY */ + n->location = (yylsp[-2]); + /* Stick a NOT on top; must have same parse location */ + (yyval.node) = makeNotExpr((PGNode *) n, (yylsp[-2])); + } + else + { + /* generate scalar NOT IN expression */ + (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_IN, "<>", (yyvsp[-3].node), (yyvsp[0].node), (yylsp[-2])); + } + } +#line 18876 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 479: -#line 10 "third_party/libpg_query/grammar/statements/view.y" - { - PGViewStmt *n = makeNode(PGViewStmt); - n->view = (yyvsp[(4) - (9)].range); - n->view->relpersistence = (yyvsp[(2) - (9)].ival); - n->aliases = (yyvsp[(5) - (9)].list); - n->query = (yyvsp[(8) - (9)].node); - n->onconflict = PG_ERROR_ON_CONFLICT; - n->options = (yyvsp[(6) - (9)].list); - n->withCheckOption = (yyvsp[(9) - (9)].viewcheckoption); - (yyval.node) = (PGNode *) n; - ;} +#line 2120 "third_party/libpg_query/grammar/statements/select.y" + { + PGSubLink *n = makeNode(PGSubLink); + n->subLinkType = (yyvsp[-1].subquerytype); + n->subLinkId = 0; + n->testexpr = (yyvsp[-3].node); + n->operName = (yyvsp[-2].list); + n->subselect = (yyvsp[0].node); + n->location = (yylsp[-2]); + (yyval.node) = (PGNode *)n; + } +#line 18891 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 480: -#line 23 "third_party/libpg_query/grammar/statements/view.y" - { - PGViewStmt *n = makeNode(PGViewStmt); - n->view = (yyvsp[(6) - (11)].range); - n->view->relpersistence = (yyvsp[(4) - (11)].ival); - n->aliases = (yyvsp[(7) - (11)].list); - n->query = (yyvsp[(10) - (11)].node); - n->onconflict = PG_REPLACE_ON_CONFLICT; - n->options = (yyvsp[(8) - (11)].list); - n->withCheckOption = (yyvsp[(11) - (11)].viewcheckoption); - (yyval.node) = (PGNode *) n; - ;} +#line 2131 "third_party/libpg_query/grammar/statements/select.y" + { + if ((yyvsp[-3].subquerytype) == PG_ANY_SUBLINK) + (yyval.node) = (PGNode *) makeAExpr(PG_AEXPR_OP_ANY, (yyvsp[-4].list), (yyvsp[-5].node), (yyvsp[-1].node), (yylsp[-4])); + else + (yyval.node) = (PGNode *) makeAExpr(PG_AEXPR_OP_ALL, (yyvsp[-4].list), (yyvsp[-5].node), (yyvsp[-1].node), (yylsp[-4])); + } +#line 18902 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 481: -#line 36 "third_party/libpg_query/grammar/statements/view.y" - { - PGViewStmt *n = makeNode(PGViewStmt); - n->view = (yyvsp[(5) - (12)].range); - n->view->relpersistence = (yyvsp[(2) - (12)].ival); - n->aliases = (yyvsp[(7) - (12)].list); - n->query = makeRecursiveViewSelect(n->view->relname, n->aliases, (yyvsp[(11) - (12)].node)); - n->onconflict = PG_ERROR_ON_CONFLICT; - n->options = (yyvsp[(9) - (12)].list); - n->withCheckOption = (yyvsp[(12) - (12)].viewcheckoption); - if (n->withCheckOption != PG_NO_CHECK_OPTION) - ereport(ERROR, - (errcode(PG_ERRCODE_FEATURE_NOT_SUPPORTED), - errmsg("WITH CHECK OPTION not supported on recursive views"), - parser_errposition((yylsp[(12) - (12)])))); - (yyval.node) = (PGNode *) n; - ;} +#line 2138 "third_party/libpg_query/grammar/statements/select.y" + { + PGSubLink *n = makeNode(PGSubLink); + n->subLinkType = PG_ARRAY_SUBLINK; + n->subLinkId = 0; + n->testexpr = NULL; + n->operName = NULL; + n->subselect = (yyvsp[0].node); + n->location = (yylsp[0]); + (yyval.node) = (PGNode *)n; + } +#line 18917 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 482: -#line 54 "third_party/libpg_query/grammar/statements/view.y" - { - PGViewStmt *n = makeNode(PGViewStmt); - n->view = (yyvsp[(7) - (14)].range); - n->view->relpersistence = (yyvsp[(4) - (14)].ival); - n->aliases = (yyvsp[(9) - (14)].list); - n->query = makeRecursiveViewSelect(n->view->relname, n->aliases, (yyvsp[(13) - (14)].node)); - n->onconflict = PG_REPLACE_ON_CONFLICT; - n->options = (yyvsp[(11) - (14)].list); - n->withCheckOption = (yyvsp[(14) - (14)].viewcheckoption); - if (n->withCheckOption != PG_NO_CHECK_OPTION) - ereport(ERROR, - (errcode(PG_ERRCODE_FEATURE_NOT_SUPPORTED), - errmsg("WITH CHECK OPTION not supported on recursive views"), - parser_errposition((yylsp[(14) - (14)])))); - (yyval.node) = (PGNode *) n; - ;} +#line 2149 "third_party/libpg_query/grammar/statements/select.y" + { + /* + * The SQL spec only allows DEFAULT in "contextually typed + * expressions", but for us, it's easier to allow it in + * any a_expr and then throw error during parse analysis + * if it's in an inappropriate context. This way also + * lets us say something smarter than "syntax error". + */ + PGSetToDefault *n = makeNode(PGSetToDefault); + /* parse analysis will fill in the rest */ + n->location = (yylsp[0]); + (yyval.node) = (PGNode *)n; + } +#line 18935 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 483: -#line 74 "third_party/libpg_query/grammar/statements/view.y" - { (yyval.viewcheckoption) = CASCADED_CHECK_OPTION; ;} +#line 2162 "third_party/libpg_query/grammar/statements/select.y" + { + PGList *func_name = list_make1(makeString("construct_array")); + PGFuncCall *n = makeFuncCall(func_name, (yyvsp[-1].list), (yylsp[-3])); + (yyval.node) = (PGNode *) n; + } +#line 18945 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 484: -#line 75 "third_party/libpg_query/grammar/statements/view.y" - { (yyval.viewcheckoption) = CASCADED_CHECK_OPTION; ;} +#line 2179 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.node) = (yyvsp[0].node); } +#line 18951 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 485: -#line 76 "third_party/libpg_query/grammar/statements/view.y" - { (yyval.viewcheckoption) = PG_LOCAL_CHECK_OPTION; ;} +#line 2181 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.node) = makeTypeCast((yyvsp[-2].node), (yyvsp[0].typnam), 0, (yylsp[-1])); } +#line 18957 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 486: -#line 77 "third_party/libpg_query/grammar/statements/view.y" - { (yyval.viewcheckoption) = PG_NO_CHECK_OPTION; ;} +#line 2183 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, "+", NULL, (yyvsp[0].node), (yylsp[-1])); } +#line 18963 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 487: -#line 10 "third_party/libpg_query/grammar/statements/create_sequence.y" - { - PGCreateSeqStmt *n = makeNode(PGCreateSeqStmt); - (yyvsp[(4) - (5)].range)->relpersistence = (yyvsp[(2) - (5)].ival); - n->sequence = (yyvsp[(4) - (5)].range); - n->options = (yyvsp[(5) - (5)].list); - n->ownerId = InvalidOid; - n->onconflict = PG_ERROR_ON_CONFLICT; - (yyval.node) = (PGNode *)n; - ;} - break; - - case 488: -#line 20 "third_party/libpg_query/grammar/statements/create_sequence.y" - { - PGCreateSeqStmt *n = makeNode(PGCreateSeqStmt); - (yyvsp[(7) - (8)].range)->relpersistence = (yyvsp[(2) - (8)].ival); - n->sequence = (yyvsp[(7) - (8)].range); - n->options = (yyvsp[(8) - (8)].list); - n->ownerId = InvalidOid; - n->onconflict = PG_IGNORE_ON_CONFLICT; - (yyval.node) = (PGNode *)n; - ;} +#line 2185 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.node) = doNegate((yyvsp[0].node), (yylsp[-1])); } +#line 18969 "third_party/libpg_query/grammar/grammar_out.cpp" + break; + + case 488: +#line 2187 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, "+", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); } +#line 18975 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 489: -#line 32 "third_party/libpg_query/grammar/statements/create_sequence.y" - { (yyval.list) = (yyvsp[(1) - (1)].list); ;} +#line 2189 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, "-", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); } +#line 18981 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 490: -#line 33 "third_party/libpg_query/grammar/statements/create_sequence.y" - { (yyval.list) = NIL; ;} +#line 2191 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, "*", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); } +#line 18987 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 491: -#line 8 "third_party/libpg_query/grammar/statements/load.y" - { - PGLoadStmt *n = makeNode(PGLoadStmt); - n->filename = (yyvsp[(2) - (2)].str); - n->load_type = PG_LOAD_TYPE_LOAD; - (yyval.node) = (PGNode *)n; - ;} +#line 2193 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, "/", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); } +#line 18993 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 492: -#line 14 "third_party/libpg_query/grammar/statements/load.y" - { - PGLoadStmt *n = makeNode(PGLoadStmt); - n->filename = (yyvsp[(2) - (2)].str); - n->load_type = PG_LOAD_TYPE_INSTALL; - (yyval.node) = (PGNode *)n; - ;} +#line 2195 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, "%", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); } +#line 18999 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 493: -#line 20 "third_party/libpg_query/grammar/statements/load.y" - { - PGLoadStmt *n = makeNode(PGLoadStmt); - n->filename = (yyvsp[(3) - (3)].str); - n->load_type = PG_LOAD_TYPE_FORCE_INSTALL; - (yyval.node) = (PGNode *)n; - ;} +#line 2197 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, "^", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); } +#line 19005 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 494: -#line 28 "third_party/libpg_query/grammar/statements/load.y" - { (yyval.str) = (yyvsp[(1) - (1)].str); ;} +#line 2199 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, "**", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); } +#line 19011 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 495: -#line 29 "third_party/libpg_query/grammar/statements/load.y" - { (yyval.str) = (yyvsp[(1) - (1)].str); ;} +#line 2201 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, "<", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); } +#line 19017 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 496: -#line 3 "third_party/libpg_query/grammar/statements/variable_show.y" - { - PGVariableShowSelectStmt *n = makeNode(PGVariableShowSelectStmt); - n->stmt = (yyvsp[(2) - (2)].node); - n->name = (char*) "select"; - n->is_summary = 0; - (yyval.node) = (PGNode *) n; - ;} +#line 2203 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, ">", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); } +#line 19023 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 497: -#line 10 "third_party/libpg_query/grammar/statements/variable_show.y" - { - PGVariableShowSelectStmt *n = makeNode(PGVariableShowSelectStmt); - n->stmt = (yyvsp[(2) - (2)].node); - n->name = (char*) "select"; - n->is_summary = 1; - (yyval.node) = (PGNode *) n; - ;} +#line 2205 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, "=", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); } +#line 19029 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 498: -#line 18 "third_party/libpg_query/grammar/statements/variable_show.y" - { - PGVariableShowStmt *n = makeNode(PGVariableShowStmt); - n->name = (yyvsp[(2) - (2)].str); - n->is_summary = 1; - (yyval.node) = (PGNode *) n; - ;} +#line 2207 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, "<=", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); } +#line 19035 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 499: -#line 25 "third_party/libpg_query/grammar/statements/variable_show.y" - { - PGVariableShowStmt *n = makeNode(PGVariableShowStmt); - n->name = (yyvsp[(2) - (2)].str); - n->is_summary = 0; - (yyval.node) = (PGNode *) n; - ;} +#line 2209 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, ">=", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); } +#line 19041 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 500: -#line 32 "third_party/libpg_query/grammar/statements/variable_show.y" - { - PGVariableShowStmt *n = makeNode(PGVariableShowStmt); - n->name = (char*) "timezone"; - n->is_summary = 0; - (yyval.node) = (PGNode *) n; - ;} +#line 2211 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, "<>", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); } +#line 19047 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 501: -#line 39 "third_party/libpg_query/grammar/statements/variable_show.y" - { - PGVariableShowStmt *n = makeNode(PGVariableShowStmt); - n->name = (char*) "transaction_isolation"; - n->is_summary = 0; - (yyval.node) = (PGNode *) n; - ;} +#line 2213 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.node) = (PGNode *) makeAExpr(PG_AEXPR_OP, (yyvsp[-1].list), (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); } +#line 19053 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 502: -#line 46 "third_party/libpg_query/grammar/statements/variable_show.y" - { - PGVariableShowStmt *n = makeNode(PGVariableShowStmt); - n->name = (char*) "__show_tables_expanded"; - n->is_summary = 0; - (yyval.node) = (PGNode *) n; - ;} +#line 2215 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.node) = (PGNode *) makeAExpr(PG_AEXPR_OP, (yyvsp[-1].list), NULL, (yyvsp[0].node), (yylsp[-1])); } +#line 19059 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 503: -#line 53 "third_party/libpg_query/grammar/statements/variable_show.y" - { - PGVariableShowStmt *n = makeNode(PGVariableShowStmt); - n->name = (char*) "__show_tables_expanded"; - n->is_summary = 0; - (yyval.node) = (PGNode *) n; - ;} +#line 2217 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.node) = (PGNode *) makeAExpr(PG_AEXPR_OP, (yyvsp[0].list), (yyvsp[-1].node), NULL, (yylsp[0])); } +#line 19065 "third_party/libpg_query/grammar/grammar_out.cpp" + break; + + case 504: +#line 2219 "third_party/libpg_query/grammar/statements/select.y" + { + (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_DISTINCT, "=", (yyvsp[-4].node), (yyvsp[0].node), (yylsp[-3])); + } +#line 19073 "third_party/libpg_query/grammar/grammar_out.cpp" + break; + + case 505: +#line 2223 "third_party/libpg_query/grammar/statements/select.y" + { + (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_NOT_DISTINCT, "=", (yyvsp[-5].node), (yyvsp[0].node), (yylsp[-4])); + } +#line 19081 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 506: -#line 63 "third_party/libpg_query/grammar/statements/variable_show.y" - { (yyval.str) = (yyvsp[(1) - (1)].str); ;} +#line 2227 "third_party/libpg_query/grammar/statements/select.y" + { + (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OF, "=", (yyvsp[-5].node), (PGNode *) (yyvsp[-1].list), (yylsp[-4])); + } +#line 19089 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 507: -#line 65 "third_party/libpg_query/grammar/statements/variable_show.y" - { (yyval.str) = psprintf("%s.%s", (yyvsp[(1) - (3)].str), (yyvsp[(3) - (3)].str)); ;} +#line 2231 "third_party/libpg_query/grammar/statements/select.y" + { + (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OF, "<>", (yyvsp[-6].node), (PGNode *) (yyvsp[-1].list), (yylsp[-5])); + } +#line 19097 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 508: -#line 9 "third_party/libpg_query/grammar/statements/vacuum.y" - { - PGVacuumStmt *n = makeNode(PGVacuumStmt); - n->options = PG_VACOPT_VACUUM; - if ((yyvsp[(2) - (4)].boolean)) - n->options |= PG_VACOPT_FULL; - if ((yyvsp[(3) - (4)].boolean)) - n->options |= PG_VACOPT_FREEZE; - if ((yyvsp[(4) - (4)].boolean)) - n->options |= PG_VACOPT_VERBOSE; - n->relation = NULL; - n->va_cols = NIL; - (yyval.node) = (PGNode *)n; - ;} +#line 2244 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.node) = (yyvsp[0].node); } +#line 19103 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 509: -#line 23 "third_party/libpg_query/grammar/statements/vacuum.y" - { - PGVacuumStmt *n = makeNode(PGVacuumStmt); - n->options = PG_VACOPT_VACUUM; - if ((yyvsp[(2) - (5)].boolean)) - n->options |= PG_VACOPT_FULL; - if ((yyvsp[(3) - (5)].boolean)) - n->options |= PG_VACOPT_FREEZE; - if ((yyvsp[(4) - (5)].boolean)) - n->options |= PG_VACOPT_VERBOSE; - n->relation = (yyvsp[(5) - (5)].range); - n->va_cols = NIL; - (yyval.node) = (PGNode *)n; - ;} +#line 2245 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.node) = (yyvsp[0].node); } +#line 19109 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 510: -#line 37 "third_party/libpg_query/grammar/statements/vacuum.y" - { - PGVacuumStmt *n = (PGVacuumStmt *) (yyvsp[(5) - (5)].node); - n->options |= PG_VACOPT_VACUUM; - if ((yyvsp[(2) - (5)].boolean)) - n->options |= PG_VACOPT_FULL; - if ((yyvsp[(3) - (5)].boolean)) - n->options |= PG_VACOPT_FREEZE; - if ((yyvsp[(4) - (5)].boolean)) - n->options |= PG_VACOPT_VERBOSE; - (yyval.node) = (PGNode *)n; - ;} +#line 2247 "third_party/libpg_query/grammar/statements/select.y" + { + PGPositionalReference *n = makeNode(PGPositionalReference); + n->position = (yyvsp[0].ival); + n->location = (yylsp[-1]); + (yyval.node) = (PGNode *) n; + } +#line 19120 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 511: -#line 49 "third_party/libpg_query/grammar/statements/vacuum.y" - { - PGVacuumStmt *n = makeNode(PGVacuumStmt); - n->options = PG_VACOPT_VACUUM | (yyvsp[(3) - (4)].ival); - n->relation = NULL; - n->va_cols = NIL; - (yyval.node) = (PGNode *) n; - ;} +#line 2254 "third_party/libpg_query/grammar/statements/select.y" + { + if ((yyvsp[0].list)) + { + PGAIndirection *n = makeNode(PGAIndirection); + n->arg = makeParamRef(0, (yylsp[-1])); + n->indirection = check_indirection((yyvsp[0].list), yyscanner); + (yyval.node) = (PGNode *) n; + } + else + (yyval.node) = makeParamRef(0, (yylsp[-1])); + } +#line 19136 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 512: -#line 57 "third_party/libpg_query/grammar/statements/vacuum.y" - { - PGVacuumStmt *n = makeNode(PGVacuumStmt); - n->options = PG_VACOPT_VACUUM | (yyvsp[(3) - (6)].ival); - n->relation = (yyvsp[(5) - (6)].range); - n->va_cols = (yyvsp[(6) - (6)].list); - if (n->va_cols != NIL) /* implies analyze */ - n->options |= PG_VACOPT_ANALYZE; - (yyval.node) = (PGNode *) n; - ;} +#line 2266 "third_party/libpg_query/grammar/statements/select.y" + { + PGParamRef *p = makeNode(PGParamRef); + p->number = (yyvsp[-1].ival); + p->location = (yylsp[-1]); + if ((yyvsp[0].list)) + { + PGAIndirection *n = makeNode(PGAIndirection); + n->arg = (PGNode *) p; + n->indirection = check_indirection((yyvsp[0].list), yyscanner); + (yyval.node) = (PGNode *) n; + } + else + (yyval.node) = (PGNode *) p; + } +#line 19155 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 513: -#line 70 "third_party/libpg_query/grammar/statements/vacuum.y" - { (yyval.ival) = PG_VACOPT_ANALYZE; ;} +#line 2281 "third_party/libpg_query/grammar/statements/select.y" + { + if ((yyvsp[0].list)) + { + PGAIndirection *n = makeNode(PGAIndirection); + n->arg = (yyvsp[-2].node); + n->indirection = check_indirection((yyvsp[0].list), yyscanner); + (yyval.node) = (PGNode *)n; + } + else + (yyval.node) = (yyvsp[-2].node); + } +#line 19171 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 514: -#line 71 "third_party/libpg_query/grammar/statements/vacuum.y" - { (yyval.ival) = PG_VACOPT_VERBOSE; ;} +#line 2293 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.node) = (yyvsp[0].node); } +#line 19177 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 515: -#line 72 "third_party/libpg_query/grammar/statements/vacuum.y" - { (yyval.ival) = PG_VACOPT_FREEZE; ;} +#line 2295 "third_party/libpg_query/grammar/statements/select.y" + { + if ((yyvsp[0].list)) { + PGAIndirection *n = makeNode(PGAIndirection); + n->arg = (yyvsp[-1].node); + n->indirection = check_indirection((yyvsp[0].list), yyscanner); + (yyval.node) = (PGNode *)n; + } + else { + (yyval.node) = (yyvsp[-1].node); + } + } +#line 19193 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 516: -#line 73 "third_party/libpg_query/grammar/statements/vacuum.y" - { (yyval.ival) = PG_VACOPT_FULL; ;} +#line 2307 "third_party/libpg_query/grammar/statements/select.y" + { + PGSubLink *n = makeNode(PGSubLink); + n->subLinkType = PG_EXPR_SUBLINK; + n->subLinkId = 0; + n->testexpr = NULL; + n->operName = NIL; + n->subselect = (yyvsp[0].node); + n->location = (yylsp[0]); + (yyval.node) = (PGNode *)n; + } +#line 19208 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 517: -#line 75 "third_party/libpg_query/grammar/statements/vacuum.y" - { - if (strcmp((yyvsp[(1) - (1)].str), "disable_page_skipping") == 0) - (yyval.ival) = PG_VACOPT_DISABLE_PAGE_SKIPPING; - else - ereport(ERROR, - (errcode(PG_ERRCODE_SYNTAX_ERROR), - errmsg("unrecognized VACUUM option \"%s\"", (yyvsp[(1) - (1)].str)), - parser_errposition((yylsp[(1) - (1)])))); - ;} +#line 2318 "third_party/libpg_query/grammar/statements/select.y" + { + /* + * Because the select_with_parens nonterminal is designed + * to "eat" as many levels of parens as possible, the + * '(' a_expr ')' opt_indirection production above will + * fail to match a sub-SELECT with indirection decoration; + * the sub-SELECT won't be regarded as an a_expr as long + * as there are parens around it. To support applying + * subscripting or field selection to a sub-SELECT result, + * we need this redundant-looking production. + */ + PGSubLink *n = makeNode(PGSubLink); + PGAIndirection *a = makeNode(PGAIndirection); + n->subLinkType = PG_EXPR_SUBLINK; + n->subLinkId = 0; + n->testexpr = NULL; + n->operName = NIL; + n->subselect = (yyvsp[-1].node); + n->location = (yylsp[-1]); + a->arg = (PGNode *)n; + a->indirection = check_indirection((yyvsp[0].list), yyscanner); + (yyval.node) = (PGNode *)a; + } +#line 19236 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 518: -#line 87 "third_party/libpg_query/grammar/statements/vacuum.y" - { (yyval.boolean) = true; ;} +#line 2342 "third_party/libpg_query/grammar/statements/select.y" + { + PGSubLink *n = makeNode(PGSubLink); + n->subLinkType = PG_EXISTS_SUBLINK; + n->subLinkId = 0; + n->testexpr = NULL; + n->operName = NIL; + n->subselect = (yyvsp[0].node); + n->location = (yylsp[-1]); + (yyval.node) = (PGNode *)n; + } +#line 19251 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 519: -#line 88 "third_party/libpg_query/grammar/statements/vacuum.y" - { (yyval.boolean) = false; ;} +#line 2353 "third_party/libpg_query/grammar/statements/select.y" + { + PGGroupingFunc *g = makeNode(PGGroupingFunc); + g->args = (yyvsp[-1].list); + g->location = (yylsp[-3]); + (yyval.node) = (PGNode *)g; + } +#line 19262 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 520: -#line 93 "third_party/libpg_query/grammar/statements/vacuum.y" - { (yyval.ival) = (yyvsp[(1) - (1)].ival); ;} +#line 2362 "third_party/libpg_query/grammar/statements/select.y" + { + (yyval.node) = (PGNode *) makeFuncCall((yyvsp[-2].list), NIL, (yylsp[-2])); + } +#line 19270 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 521: -#line 94 "third_party/libpg_query/grammar/statements/vacuum.y" - { (yyval.ival) = (yyvsp[(1) - (3)].ival) | (yyvsp[(3) - (3)].ival); ;} +#line 2366 "third_party/libpg_query/grammar/statements/select.y" + { + PGFuncCall *n = makeFuncCall((yyvsp[-5].list), (yyvsp[-3].list), (yylsp[-5])); + n->agg_order = (yyvsp[-2].list); + n->agg_ignore_nulls = (yyvsp[-1].boolean); + (yyval.node) = (PGNode *)n; + } +#line 19281 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 522: -#line 98 "third_party/libpg_query/grammar/statements/vacuum.y" - { (yyval.boolean) = true; ;} +#line 2373 "third_party/libpg_query/grammar/statements/select.y" + { + PGFuncCall *n = makeFuncCall((yyvsp[-6].list), list_make1((yyvsp[-3].node)), (yylsp[-6])); + n->func_variadic = true; + n->agg_order = (yyvsp[-2].list); + n->agg_ignore_nulls = (yyvsp[-1].boolean); + (yyval.node) = (PGNode *)n; + } +#line 19293 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 523: -#line 99 "third_party/libpg_query/grammar/statements/vacuum.y" - { (yyval.boolean) = false; ;} - break; - - case 524: -#line 12 "third_party/libpg_query/grammar/statements/update.y" - { - PGUpdateStmt *n = makeNode(PGUpdateStmt); - n->relation = (yyvsp[(3) - (8)].range); - n->targetList = (yyvsp[(5) - (8)].list); - n->fromClause = (yyvsp[(6) - (8)].list); - n->whereClause = (yyvsp[(7) - (8)].node); - n->returningList = (yyvsp[(8) - (8)].list); - n->withClause = (yyvsp[(1) - (8)].with); +#line 2381 "third_party/libpg_query/grammar/statements/select.y" + { + PGFuncCall *n = makeFuncCall((yyvsp[-8].list), lappend((yyvsp[-6].list), (yyvsp[-3].node)), (yylsp[-8])); + n->func_variadic = true; + n->agg_order = (yyvsp[-2].list); + n->agg_ignore_nulls = (yyvsp[-1].boolean); (yyval.node) = (PGNode *)n; - ;} + } +#line 19305 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 525: -#line 3 "third_party/libpg_query/grammar/statements/copy.y" - { - PGCopyStmt *n = makeNode(PGCopyStmt); - n->relation = (yyvsp[(3) - (11)].range); - n->query = NULL; - n->attlist = (yyvsp[(4) - (11)].list); - n->is_from = (yyvsp[(6) - (11)].boolean); - n->is_program = (yyvsp[(7) - (11)].boolean); - n->filename = (yyvsp[(8) - (11)].str); - - if (n->is_program && n->filename == NULL) - ereport(ERROR, - (errcode(PG_ERRCODE_SYNTAX_ERROR), - errmsg("STDIN/STDOUT not allowed with PROGRAM"), - parser_errposition((yylsp[(8) - (11)])))); - - n->options = NIL; - /* Concatenate user-supplied flags */ - if ((yyvsp[(2) - (11)].defelt)) - n->options = lappend(n->options, (yyvsp[(2) - (11)].defelt)); - if ((yyvsp[(5) - (11)].defelt)) - n->options = lappend(n->options, (yyvsp[(5) - (11)].defelt)); - if ((yyvsp[(9) - (11)].defelt)) - n->options = lappend(n->options, (yyvsp[(9) - (11)].defelt)); - if ((yyvsp[(11) - (11)].list)) - n->options = list_concat(n->options, (yyvsp[(11) - (11)].list)); + case 524: +#line 2389 "third_party/libpg_query/grammar/statements/select.y" + { + PGFuncCall *n = makeFuncCall((yyvsp[-6].list), (yyvsp[-3].list), (yylsp[-6])); + n->agg_order = (yyvsp[-2].list); + n->agg_ignore_nulls = (yyvsp[-1].boolean); + /* Ideally we'd mark the PGFuncCall node to indicate + * "must be an aggregate", but there's no provision + * for that in PGFuncCall at the moment. + */ (yyval.node) = (PGNode *)n; - ;} + } +#line 19320 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 526: -#line 31 "third_party/libpg_query/grammar/statements/copy.y" - { - PGCopyStmt *n = makeNode(PGCopyStmt); - n->relation = NULL; - n->query = (yyvsp[(3) - (9)].node); - n->attlist = NIL; - n->is_from = false; - n->is_program = (yyvsp[(6) - (9)].boolean); - n->filename = (yyvsp[(7) - (9)].str); - n->options = (yyvsp[(9) - (9)].list); - - if (n->is_program && n->filename == NULL) - ereport(ERROR, - (errcode(PG_ERRCODE_SYNTAX_ERROR), - errmsg("STDIN/STDOUT not allowed with PROGRAM"), - parser_errposition((yylsp[(5) - (9)])))); + case 525: +#line 2400 "third_party/libpg_query/grammar/statements/select.y" + { + PGFuncCall *n = makeFuncCall((yyvsp[-6].list), (yyvsp[-3].list), (yylsp[-6])); + n->agg_order = (yyvsp[-2].list); + n->agg_ignore_nulls = (yyvsp[-1].boolean); + n->agg_distinct = true; + (yyval.node) = (PGNode *)n; + } +#line 19332 "third_party/libpg_query/grammar/grammar_out.cpp" + break; + case 526: +#line 2408 "third_party/libpg_query/grammar/statements/select.y" + { + /* + * We consider AGGREGATE(*) to invoke a parameterless + * aggregate. This does the right thing for COUNT(*), + * and there are no other aggregates in SQL that accept + * '*' as parameter. + * + * The PGFuncCall node is also marked agg_star = true, + * so that later processing can detect what the argument + * really was. + */ + PGFuncCall *n = makeFuncCall((yyvsp[-3].list), NIL, (yylsp[-3])); + n->agg_star = true; (yyval.node) = (PGNode *)n; - ;} + } +#line 19352 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 527: -#line 53 "third_party/libpg_query/grammar/statements/copy.y" - { (yyval.boolean) = true; ;} +#line 2436 "third_party/libpg_query/grammar/statements/select.y" + { + PGFuncCall *n = (PGFuncCall *) (yyvsp[-4].node); + /* + * The order clause for WITHIN GROUP and the one for + * plain-aggregate ORDER BY share a field, so we have to + * check here that at most one is present. We also check + * for DISTINCT and VARIADIC here to give a better error + * location. Other consistency checks are deferred to + * parse analysis. + */ + if ((yyvsp[-3].list) != NIL) + { + if (n->agg_order != NIL) + ereport(ERROR, + (errcode(PG_ERRCODE_SYNTAX_ERROR), + errmsg("cannot use multiple ORDER BY clauses with WITHIN GROUP"), + parser_errposition((yylsp[-3])))); + if (n->agg_distinct) + ereport(ERROR, + (errcode(PG_ERRCODE_SYNTAX_ERROR), + errmsg("cannot use DISTINCT with WITHIN GROUP"), + parser_errposition((yylsp[-3])))); + if (n->func_variadic) + ereport(ERROR, + (errcode(PG_ERRCODE_SYNTAX_ERROR), + errmsg("cannot use VARIADIC with WITHIN GROUP"), + parser_errposition((yylsp[-3])))); + n->agg_order = (yyvsp[-3].list); + n->agg_within_group = true; + } + n->agg_filter = (yyvsp[-2].node); + n->export_state = (yyvsp[-1].boolean); + n->over = (yyvsp[0].windef); + (yyval.node) = (PGNode *) n; + } +#line 19392 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 528: -#line 54 "third_party/libpg_query/grammar/statements/copy.y" - { (yyval.boolean) = false; ;} +#line 2472 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.node) = (yyvsp[0].node); } +#line 19398 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 529: -#line 60 "third_party/libpg_query/grammar/statements/copy.y" - { - (yyval.defelt) = makeDefElem("delimiter", (PGNode *)makeString((yyvsp[(3) - (3)].str)), (yylsp[(2) - (3)])); - ;} +#line 2482 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.node) = (yyvsp[0].node); } +#line 19404 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 530: -#line 63 "third_party/libpg_query/grammar/statements/copy.y" - { (yyval.defelt) = NULL; ;} +#line 2483 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.node) = (yyvsp[0].node); } +#line 19410 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 531: -#line 69 "third_party/libpg_query/grammar/statements/copy.y" - { - (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); - ;} +#line 2491 "third_party/libpg_query/grammar/statements/select.y" + { + (yyval.node) = (PGNode *) makeFuncCall(SystemFuncName("pg_collation_for"), + list_make1((yyvsp[-1].node)), + (yylsp[-4])); + } +#line 19420 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 532: -#line 73 "third_party/libpg_query/grammar/statements/copy.y" - { - (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node)); - ;} +#line 2497 "third_party/libpg_query/grammar/statements/select.y" + { + (yyval.node) = makeSQLValueFunction(PG_SVFOP_CURRENT_DATE, -1, (yylsp[0])); + } +#line 19428 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 533: -#line 80 "third_party/libpg_query/grammar/statements/copy.y" - {;} +#line 2501 "third_party/libpg_query/grammar/statements/select.y" + { + (yyval.node) = makeSQLValueFunction(PG_SVFOP_CURRENT_TIME, -1, (yylsp[0])); + } +#line 19436 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 534: -#line 81 "third_party/libpg_query/grammar/statements/copy.y" - {;} +#line 2505 "third_party/libpg_query/grammar/statements/select.y" + { + (yyval.node) = makeSQLValueFunction(PG_SVFOP_CURRENT_TIME_N, (yyvsp[-1].ival), (yylsp[-3])); + } +#line 19444 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 535: -#line 85 "third_party/libpg_query/grammar/statements/copy.y" - {;} +#line 2509 "third_party/libpg_query/grammar/statements/select.y" + { + (yyval.node) = makeSQLValueFunction(PG_SVFOP_CURRENT_TIMESTAMP, -1, (yylsp[0])); + } +#line 19452 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 536: -#line 86 "third_party/libpg_query/grammar/statements/copy.y" - {;} +#line 2513 "third_party/libpg_query/grammar/statements/select.y" + { + (yyval.node) = makeSQLValueFunction(PG_SVFOP_CURRENT_TIMESTAMP_N, (yyvsp[-1].ival), (yylsp[-3])); + } +#line 19460 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 537: -#line 91 "third_party/libpg_query/grammar/statements/copy.y" - { (yyval.boolean) = true; ;} +#line 2517 "third_party/libpg_query/grammar/statements/select.y" + { + (yyval.node) = makeSQLValueFunction(PG_SVFOP_LOCALTIME, -1, (yylsp[0])); + } +#line 19468 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 538: -#line 92 "third_party/libpg_query/grammar/statements/copy.y" - { (yyval.boolean) = false; ;} +#line 2521 "third_party/libpg_query/grammar/statements/select.y" + { + (yyval.node) = makeSQLValueFunction(PG_SVFOP_LOCALTIME_N, (yyvsp[-1].ival), (yylsp[-3])); + } +#line 19476 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 539: -#line 96 "third_party/libpg_query/grammar/statements/copy.y" - { (yyval.list) = (yyvsp[(1) - (1)].list); ;} +#line 2525 "third_party/libpg_query/grammar/statements/select.y" + { + (yyval.node) = makeSQLValueFunction(PG_SVFOP_LOCALTIMESTAMP, -1, (yylsp[0])); + } +#line 19484 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 540: -#line 97 "third_party/libpg_query/grammar/statements/copy.y" - { (yyval.list) = (yyvsp[(2) - (3)].list); ;} +#line 2529 "third_party/libpg_query/grammar/statements/select.y" + { + (yyval.node) = makeSQLValueFunction(PG_SVFOP_LOCALTIMESTAMP_N, (yyvsp[-1].ival), (yylsp[-3])); + } +#line 19492 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 541: -#line 102 "third_party/libpg_query/grammar/statements/copy.y" - { (yyval.node) = (PGNode *) makeString((yyvsp[(1) - (1)].str)); ;} +#line 2533 "third_party/libpg_query/grammar/statements/select.y" + { + (yyval.node) = makeSQLValueFunction(PG_SVFOP_CURRENT_ROLE, -1, (yylsp[0])); + } +#line 19500 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 542: -#line 103 "third_party/libpg_query/grammar/statements/copy.y" - { (yyval.node) = (PGNode *) (yyvsp[(1) - (1)].value); ;} +#line 2537 "third_party/libpg_query/grammar/statements/select.y" + { + (yyval.node) = makeSQLValueFunction(PG_SVFOP_CURRENT_USER, -1, (yylsp[0])); + } +#line 19508 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 543: -#line 104 "third_party/libpg_query/grammar/statements/copy.y" - { (yyval.node) = (PGNode *) makeNode(PGAStar); ;} +#line 2541 "third_party/libpg_query/grammar/statements/select.y" + { + (yyval.node) = makeSQLValueFunction(PG_SVFOP_SESSION_USER, -1, (yylsp[0])); + } +#line 19516 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 544: -#line 105 "third_party/libpg_query/grammar/statements/copy.y" - { (yyval.node) = (PGNode *) (yyvsp[(2) - (3)].list); ;} +#line 2545 "third_party/libpg_query/grammar/statements/select.y" + { + (yyval.node) = makeSQLValueFunction(PG_SVFOP_USER, -1, (yylsp[0])); + } +#line 19524 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 545: -#line 106 "third_party/libpg_query/grammar/statements/copy.y" - { (yyval.node) = NULL; ;} +#line 2549 "third_party/libpg_query/grammar/statements/select.y" + { + (yyval.node) = makeSQLValueFunction(PG_SVFOP_CURRENT_CATALOG, -1, (yylsp[0])); + } +#line 19532 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 546: -#line 112 "third_party/libpg_query/grammar/statements/copy.y" - { - (yyval.defelt) = makeDefElem((yyvsp[(1) - (2)].str), (yyvsp[(2) - (2)].node), (yylsp[(1) - (2)])); - ;} +#line 2553 "third_party/libpg_query/grammar/statements/select.y" + { + (yyval.node) = makeSQLValueFunction(PG_SVFOP_CURRENT_SCHEMA, -1, (yylsp[0])); + } +#line 19540 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 547: -#line 120 "third_party/libpg_query/grammar/statements/copy.y" - { - (yyval.defelt) = makeDefElem("oids", (PGNode *)makeInteger(true), (yylsp[(1) - (2)])); - ;} +#line 2557 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.node) = makeTypeCast((yyvsp[-3].node), (yyvsp[-1].typnam), 0, (yylsp[-5])); } +#line 19546 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 548: -#line 123 "third_party/libpg_query/grammar/statements/copy.y" - { (yyval.defelt) = NULL; ;} +#line 2559 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.node) = makeTypeCast((yyvsp[-3].node), (yyvsp[-1].typnam), 1, (yylsp[-5])); } +#line 19552 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 549: -#line 128 "third_party/libpg_query/grammar/statements/copy.y" - { (yyval.list) = lappend((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].defelt)); ;} +#line 2561 "third_party/libpg_query/grammar/statements/select.y" + { + (yyval.node) = (PGNode *) makeFuncCall(SystemFuncName("date_part"), (yyvsp[-1].list), (yylsp[-3])); + } +#line 19560 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 550: -#line 129 "third_party/libpg_query/grammar/statements/copy.y" - { (yyval.list) = NIL; ;} +#line 2565 "third_party/libpg_query/grammar/statements/select.y" + { + /* overlay(A PLACING B FROM C FOR D) is converted to + * overlay(A, B, C, D) + * overlay(A PLACING B FROM C) is converted to + * overlay(A, B, C) + */ + (yyval.node) = (PGNode *) makeFuncCall(SystemFuncName("overlay"), (yyvsp[-1].list), (yylsp[-3])); + } +#line 19573 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 551: -#line 135 "third_party/libpg_query/grammar/statements/copy.y" - { - (yyval.defelt) = makeDefElem("format", (PGNode *)makeString("binary"), (yylsp[(1) - (1)])); - ;} +#line 2574 "third_party/libpg_query/grammar/statements/select.y" + { + /* position(A in B) is converted to position(B, A) */ + (yyval.node) = (PGNode *) makeFuncCall(SystemFuncName("position"), (yyvsp[-1].list), (yylsp[-3])); + } +#line 19582 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 552: -#line 138 "third_party/libpg_query/grammar/statements/copy.y" - { (yyval.defelt) = NULL; ;} +#line 2579 "third_party/libpg_query/grammar/statements/select.y" + { + /* substring(A from B for C) is converted to + * substring(A, B, C) - thomas 2000-11-28 + */ + (yyval.node) = (PGNode *) makeFuncCall(SystemFuncName("substring"), (yyvsp[-1].list), (yylsp[-3])); + } +#line 19593 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 553: -#line 144 "third_party/libpg_query/grammar/statements/copy.y" - { - (yyval.defelt) = makeDefElem("format", (PGNode *)makeString("binary"), (yylsp[(1) - (1)])); - ;} +#line 2586 "third_party/libpg_query/grammar/statements/select.y" + { + /* TREAT(expr AS target) converts expr of a particular type to target, + * which is defined to be a subtype of the original expression. + * In SQL99, this is intended for use with structured UDTs, + * but let's make this a generally useful form allowing stronger + * coercions than are handled by implicit casting. + * + * Convert SystemTypeName() to SystemFuncName() even though + * at the moment they result in the same thing. + */ + (yyval.node) = (PGNode *) makeFuncCall(SystemFuncName(((PGValue *)llast((yyvsp[-1].typnam)->names))->val.str), + list_make1((yyvsp[-3].node)), + (yylsp[-5])); + } +#line 19612 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 554: -#line 148 "third_party/libpg_query/grammar/statements/copy.y" - { - (yyval.defelt) = makeDefElem("oids", (PGNode *)makeInteger(true), (yylsp[(1) - (1)])); - ;} +#line 2601 "third_party/libpg_query/grammar/statements/select.y" + { + /* various trim expressions are defined in SQL + * - thomas 1997-07-19 + */ + (yyval.node) = (PGNode *) makeFuncCall(SystemFuncName("trim"), (yyvsp[-1].list), (yylsp[-4])); + } +#line 19623 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 555: -#line 152 "third_party/libpg_query/grammar/statements/copy.y" - { - (yyval.defelt) = makeDefElem("freeze", (PGNode *)makeInteger(true), (yylsp[(1) - (1)])); - ;} +#line 2608 "third_party/libpg_query/grammar/statements/select.y" + { + (yyval.node) = (PGNode *) makeFuncCall(SystemFuncName("ltrim"), (yyvsp[-1].list), (yylsp[-4])); + } +#line 19631 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 556: -#line 156 "third_party/libpg_query/grammar/statements/copy.y" - { - (yyval.defelt) = makeDefElem("delimiter", (PGNode *)makeString((yyvsp[(3) - (3)].str)), (yylsp[(1) - (3)])); - ;} +#line 2612 "third_party/libpg_query/grammar/statements/select.y" + { + (yyval.node) = (PGNode *) makeFuncCall(SystemFuncName("rtrim"), (yyvsp[-1].list), (yylsp[-4])); + } +#line 19639 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 557: -#line 160 "third_party/libpg_query/grammar/statements/copy.y" - { - (yyval.defelt) = makeDefElem("null", (PGNode *)makeString((yyvsp[(3) - (3)].str)), (yylsp[(1) - (3)])); - ;} +#line 2616 "third_party/libpg_query/grammar/statements/select.y" + { + (yyval.node) = (PGNode *) makeFuncCall(SystemFuncName("trim"), (yyvsp[-1].list), (yylsp[-3])); + } +#line 19647 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 558: -#line 164 "third_party/libpg_query/grammar/statements/copy.y" - { - (yyval.defelt) = makeDefElem("format", (PGNode *)makeString("csv"), (yylsp[(1) - (1)])); - ;} +#line 2620 "third_party/libpg_query/grammar/statements/select.y" + { + (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_NULLIF, "=", (yyvsp[-3].node), (yyvsp[-1].node), (yylsp[-5])); + } +#line 19655 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 559: -#line 168 "third_party/libpg_query/grammar/statements/copy.y" - { - (yyval.defelt) = makeDefElem("header", (PGNode *)makeInteger(true), (yylsp[(1) - (1)])); - ;} +#line 2624 "third_party/libpg_query/grammar/statements/select.y" + { + PGCoalesceExpr *c = makeNode(PGCoalesceExpr); + c->args = (yyvsp[-1].list); + c->location = (yylsp[-3]); + (yyval.node) = (PGNode *)c; + } +#line 19666 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 560: -#line 172 "third_party/libpg_query/grammar/statements/copy.y" - { - (yyval.defelt) = makeDefElem("quote", (PGNode *)makeString((yyvsp[(3) - (3)].str)), (yylsp[(1) - (3)])); - ;} +#line 2637 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = (yyvsp[-1].list); } +#line 19672 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 561: -#line 176 "third_party/libpg_query/grammar/statements/copy.y" - { - (yyval.defelt) = makeDefElem("escape", (PGNode *)makeString((yyvsp[(3) - (3)].str)), (yylsp[(1) - (3)])); - ;} +#line 2638 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = NIL; } +#line 19678 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 562: -#line 180 "third_party/libpg_query/grammar/statements/copy.y" - { - (yyval.defelt) = makeDefElem("force_quote", (PGNode *)(yyvsp[(3) - (3)].list), (yylsp[(1) - (3)])); - ;} +#line 2642 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.node) = (yyvsp[-1].node); } +#line 19684 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 563: -#line 184 "third_party/libpg_query/grammar/statements/copy.y" - { - (yyval.defelt) = makeDefElem("force_quote", (PGNode *)makeNode(PGAStar), (yylsp[(1) - (3)])); - ;} +#line 2643 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.node) = (yyvsp[-1].node); } +#line 19690 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 564: -#line 188 "third_party/libpg_query/grammar/statements/copy.y" - { - (yyval.defelt) = makeDefElem("force_not_null", (PGNode *)(yyvsp[(4) - (4)].list), (yylsp[(1) - (4)])); - ;} +#line 2644 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.node) = NULL; } +#line 19696 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 565: -#line 192 "third_party/libpg_query/grammar/statements/copy.y" - { - (yyval.defelt) = makeDefElem("force_null", (PGNode *)(yyvsp[(3) - (3)].list), (yylsp[(1) - (3)])); - ;} +#line 2648 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.boolean) = true; } +#line 19702 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 566: -#line 196 "third_party/libpg_query/grammar/statements/copy.y" - { - (yyval.defelt) = makeDefElem("encoding", (PGNode *)makeString((yyvsp[(2) - (2)].str)), (yylsp[(1) - (2)])); - ;} +#line 2649 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.boolean) = false; } +#line 19708 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 567: -#line 203 "third_party/libpg_query/grammar/statements/copy.y" - { (yyval.node) = (PGNode *) makeString((yyvsp[(1) - (1)].str)); ;} +#line 2656 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = (yyvsp[0].list); } +#line 19714 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 568: -#line 209 "third_party/libpg_query/grammar/statements/copy.y" - { (yyval.str) = (yyvsp[(1) - (1)].str); ;} +#line 2657 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = NIL; } +#line 19720 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 569: -#line 210 "third_party/libpg_query/grammar/statements/copy.y" - { (yyval.str) = NULL; ;} +#line 2661 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = list_make1((yyvsp[0].windef)); } +#line 19726 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 570: -#line 211 "third_party/libpg_query/grammar/statements/copy.y" - { (yyval.str) = NULL; ;} +#line 2663 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].windef)); } +#line 19732 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 571: -#line 217 "third_party/libpg_query/grammar/statements/copy.y" - { - (yyval.list) = list_make1((yyvsp[(1) - (1)].defelt)); - ;} +#line 2668 "third_party/libpg_query/grammar/statements/select.y" + { + PGWindowDef *n = (yyvsp[0].windef); + n->name = (yyvsp[-2].str); + (yyval.windef) = n; + } +#line 19742 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 572: -#line 221 "third_party/libpg_query/grammar/statements/copy.y" - { - (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].defelt)); - ;} +#line 2676 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.windef) = (yyvsp[0].windef); } +#line 19748 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 573: -#line 8 "third_party/libpg_query/grammar/statements/export.y" - { - PGExportStmt *n = makeNode(PGExportStmt); - n->filename = (yyvsp[(3) - (4)].str); - n->options = NIL; - if ((yyvsp[(4) - (4)].list)) { - n->options = list_concat(n->options, (yyvsp[(4) - (4)].list)); - } - (yyval.node) = (PGNode *)n; - ;} +#line 2678 "third_party/libpg_query/grammar/statements/select.y" + { + PGWindowDef *n = makeNode(PGWindowDef); + n->name = (yyvsp[0].str); + n->refname = NULL; + n->partitionClause = NIL; + n->orderClause = NIL; + n->frameOptions = FRAMEOPTION_DEFAULTS; + n->startOffset = NULL; + n->endOffset = NULL; + n->location = (yylsp[0]); + (yyval.windef) = n; + } +#line 19765 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 574: -#line 21 "third_party/libpg_query/grammar/statements/export.y" - { - PGImportStmt *n = makeNode(PGImportStmt); - n->filename = (yyvsp[(3) - (3)].str); - (yyval.node) = (PGNode *)n; - ;} +#line 2691 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.windef) = NULL; } +#line 19771 "third_party/libpg_query/grammar/grammar_out.cpp" + break; + + case 575: +#line 2696 "third_party/libpg_query/grammar/statements/select.y" + { + PGWindowDef *n = makeNode(PGWindowDef); + n->name = NULL; + n->refname = (yyvsp[-4].str); + n->partitionClause = (yyvsp[-3].list); + n->orderClause = (yyvsp[-2].list); + /* copy relevant fields of opt_frame_clause */ + n->frameOptions = (yyvsp[-1].windef)->frameOptions; + n->startOffset = (yyvsp[-1].windef)->startOffset; + n->endOffset = (yyvsp[-1].windef)->endOffset; + n->location = (yylsp[-5]); + (yyval.windef) = n; + } +#line 19789 "third_party/libpg_query/grammar/grammar_out.cpp" + break; + + case 576: +#line 2721 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.str) = (yyvsp[0].str); } +#line 19795 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 577: -#line 52 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.node) = (yyvsp[(2) - (3)].node); ;} +#line 2722 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.str) = NULL; } +#line 19801 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 578: -#line 53 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.node) = (yyvsp[(2) - (3)].node); ;} +#line 2725 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = (yyvsp[0].list); } +#line 19807 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 579: -#line 68 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.node) = (yyvsp[(1) - (1)].node); ;} +#line 2726 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = NIL; } +#line 19813 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 580: -#line 70 "third_party/libpg_query/grammar/statements/select.y" - { - insertSelectOptions((PGSelectStmt *) (yyvsp[(1) - (2)].node), (yyvsp[(2) - (2)].list), NIL, - NULL, NULL, NULL, - yyscanner); - (yyval.node) = (yyvsp[(1) - (2)].node); - ;} +#line 2738 "third_party/libpg_query/grammar/statements/select.y" + { + PGWindowDef *n = (yyvsp[0].windef); + n->frameOptions |= FRAMEOPTION_NONDEFAULT | FRAMEOPTION_RANGE; + (yyval.windef) = n; + } +#line 19823 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 581: -#line 77 "third_party/libpg_query/grammar/statements/select.y" - { - insertSelectOptions((PGSelectStmt *) (yyvsp[(1) - (4)].node), (yyvsp[(2) - (4)].list), (yyvsp[(3) - (4)].list), - (PGNode*) list_nth((yyvsp[(4) - (4)].list), 0), (PGNode*) list_nth((yyvsp[(4) - (4)].list), 1), - NULL, - yyscanner); - (yyval.node) = (yyvsp[(1) - (4)].node); - ;} +#line 2744 "third_party/libpg_query/grammar/statements/select.y" + { + PGWindowDef *n = (yyvsp[0].windef); + n->frameOptions |= FRAMEOPTION_NONDEFAULT | FRAMEOPTION_ROWS; + (yyval.windef) = n; + } +#line 19833 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 582: -#line 85 "third_party/libpg_query/grammar/statements/select.y" - { - insertSelectOptions((PGSelectStmt *) (yyvsp[(1) - (4)].node), (yyvsp[(2) - (4)].list), (yyvsp[(4) - (4)].list), - (PGNode*) list_nth((yyvsp[(3) - (4)].list), 0), (PGNode*) list_nth((yyvsp[(3) - (4)].list), 1), - NULL, - yyscanner); - (yyval.node) = (yyvsp[(1) - (4)].node); - ;} +#line 2750 "third_party/libpg_query/grammar/statements/select.y" + { + PGWindowDef *n = makeNode(PGWindowDef); + n->frameOptions = FRAMEOPTION_DEFAULTS; + n->startOffset = NULL; + n->endOffset = NULL; + (yyval.windef) = n; + } +#line 19845 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 583: -#line 93 "third_party/libpg_query/grammar/statements/select.y" - { - insertSelectOptions((PGSelectStmt *) (yyvsp[(2) - (2)].node), NULL, NIL, - NULL, NULL, - (yyvsp[(1) - (2)].with), - yyscanner); - (yyval.node) = (yyvsp[(2) - (2)].node); - ;} +#line 2760 "third_party/libpg_query/grammar/statements/select.y" + { + PGWindowDef *n = (yyvsp[0].windef); + /* reject invalid cases */ + if (n->frameOptions & FRAMEOPTION_START_UNBOUNDED_FOLLOWING) + ereport(ERROR, + (errcode(PG_ERRCODE_WINDOWING_ERROR), + errmsg("frame start cannot be UNBOUNDED FOLLOWING"), + parser_errposition((yylsp[0])))); + if (n->frameOptions & FRAMEOPTION_START_VALUE_FOLLOWING) + ereport(ERROR, + (errcode(PG_ERRCODE_WINDOWING_ERROR), + errmsg("frame starting from following row cannot end with current row"), + parser_errposition((yylsp[0])))); + n->frameOptions |= FRAMEOPTION_END_CURRENT_ROW; + (yyval.windef) = n; + } +#line 19866 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 584: -#line 101 "third_party/libpg_query/grammar/statements/select.y" - { - insertSelectOptions((PGSelectStmt *) (yyvsp[(2) - (3)].node), (yyvsp[(3) - (3)].list), NIL, - NULL, NULL, - (yyvsp[(1) - (3)].with), - yyscanner); - (yyval.node) = (yyvsp[(2) - (3)].node); - ;} +#line 2777 "third_party/libpg_query/grammar/statements/select.y" + { + PGWindowDef *n1 = (yyvsp[-2].windef); + PGWindowDef *n2 = (yyvsp[0].windef); + /* form merged options */ + int frameOptions = n1->frameOptions; + /* shift converts START_ options to END_ options */ + frameOptions |= n2->frameOptions << 1; + frameOptions |= FRAMEOPTION_BETWEEN; + /* reject invalid cases */ + if (frameOptions & FRAMEOPTION_START_UNBOUNDED_FOLLOWING) + ereport(ERROR, + (errcode(PG_ERRCODE_WINDOWING_ERROR), + errmsg("frame start cannot be UNBOUNDED FOLLOWING"), + parser_errposition((yylsp[-2])))); + if (frameOptions & FRAMEOPTION_END_UNBOUNDED_PRECEDING) + ereport(ERROR, + (errcode(PG_ERRCODE_WINDOWING_ERROR), + errmsg("frame end cannot be UNBOUNDED PRECEDING"), + parser_errposition((yylsp[0])))); + if ((frameOptions & FRAMEOPTION_START_CURRENT_ROW) && + (frameOptions & FRAMEOPTION_END_VALUE_PRECEDING)) + ereport(ERROR, + (errcode(PG_ERRCODE_WINDOWING_ERROR), + errmsg("frame starting from current row cannot have preceding rows"), + parser_errposition((yylsp[0])))); + if ((frameOptions & FRAMEOPTION_START_VALUE_FOLLOWING) && + (frameOptions & (FRAMEOPTION_END_VALUE_PRECEDING | + FRAMEOPTION_END_CURRENT_ROW))) + ereport(ERROR, + (errcode(PG_ERRCODE_WINDOWING_ERROR), + errmsg("frame starting from following row cannot have preceding rows"), + parser_errposition((yylsp[0])))); + n1->frameOptions = frameOptions; + n1->endOffset = n2->startOffset; + (yyval.windef) = n1; + } +#line 19907 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 585: -#line 109 "third_party/libpg_query/grammar/statements/select.y" - { - insertSelectOptions((PGSelectStmt *) (yyvsp[(2) - (5)].node), (yyvsp[(3) - (5)].list), (yyvsp[(4) - (5)].list), - (PGNode*) list_nth((yyvsp[(5) - (5)].list), 0), (PGNode*) list_nth((yyvsp[(5) - (5)].list), 1), - (yyvsp[(1) - (5)].with), - yyscanner); - (yyval.node) = (yyvsp[(2) - (5)].node); - ;} +#line 2822 "third_party/libpg_query/grammar/statements/select.y" + { + PGWindowDef *n = makeNode(PGWindowDef); + n->frameOptions = FRAMEOPTION_START_UNBOUNDED_PRECEDING; + n->startOffset = NULL; + n->endOffset = NULL; + (yyval.windef) = n; + } +#line 19919 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 586: -#line 117 "third_party/libpg_query/grammar/statements/select.y" - { - insertSelectOptions((PGSelectStmt *) (yyvsp[(2) - (5)].node), (yyvsp[(3) - (5)].list), (yyvsp[(5) - (5)].list), - (PGNode*) list_nth((yyvsp[(4) - (5)].list), 0), (PGNode*) list_nth((yyvsp[(4) - (5)].list), 1), - (yyvsp[(1) - (5)].with), - yyscanner); - (yyval.node) = (yyvsp[(2) - (5)].node); - ;} +#line 2830 "third_party/libpg_query/grammar/statements/select.y" + { + PGWindowDef *n = makeNode(PGWindowDef); + n->frameOptions = FRAMEOPTION_START_UNBOUNDED_FOLLOWING; + n->startOffset = NULL; + n->endOffset = NULL; + (yyval.windef) = n; + } +#line 19931 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 587: -#line 127 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.node) = (yyvsp[(1) - (1)].node); ;} +#line 2838 "third_party/libpg_query/grammar/statements/select.y" + { + PGWindowDef *n = makeNode(PGWindowDef); + n->frameOptions = FRAMEOPTION_START_CURRENT_ROW; + n->startOffset = NULL; + n->endOffset = NULL; + (yyval.windef) = n; + } +#line 19943 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 588: -#line 128 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.node) = (yyvsp[(1) - (1)].node); ;} +#line 2846 "third_party/libpg_query/grammar/statements/select.y" + { + PGWindowDef *n = makeNode(PGWindowDef); + n->frameOptions = FRAMEOPTION_START_VALUE_PRECEDING; + n->startOffset = (yyvsp[-1].node); + n->endOffset = NULL; + (yyval.windef) = n; + } +#line 19955 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 589: -#line 158 "third_party/libpg_query/grammar/statements/select.y" - { - PGSelectStmt *n = makeNode(PGSelectStmt); - n->targetList = (yyvsp[(3) - (11)].list); - n->intoClause = (yyvsp[(4) - (11)].into); - n->fromClause = (yyvsp[(5) - (11)].list); - n->whereClause = (yyvsp[(6) - (11)].node); - n->groupClause = (yyvsp[(7) - (11)].list); - n->havingClause = (yyvsp[(8) - (11)].node); - n->windowClause = (yyvsp[(9) - (11)].list); - n->qualifyClause = (yyvsp[(10) - (11)].node); - n->sampleOptions = (yyvsp[(11) - (11)].node); - (yyval.node) = (PGNode *)n; - ;} +#line 2854 "third_party/libpg_query/grammar/statements/select.y" + { + PGWindowDef *n = makeNode(PGWindowDef); + n->frameOptions = FRAMEOPTION_START_VALUE_FOLLOWING; + n->startOffset = (yyvsp[-1].node); + n->endOffset = NULL; + (yyval.windef) = n; + } +#line 19967 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 590: -#line 174 "third_party/libpg_query/grammar/statements/select.y" - { - PGSelectStmt *n = makeNode(PGSelectStmt); - n->distinctClause = (yyvsp[(2) - (11)].list); - n->targetList = (yyvsp[(3) - (11)].list); - n->intoClause = (yyvsp[(4) - (11)].into); - n->fromClause = (yyvsp[(5) - (11)].list); - n->whereClause = (yyvsp[(6) - (11)].node); - n->groupClause = (yyvsp[(7) - (11)].list); - n->havingClause = (yyvsp[(8) - (11)].node); - n->windowClause = (yyvsp[(9) - (11)].list); - n->qualifyClause = (yyvsp[(10) - (11)].node); - n->sampleOptions = (yyvsp[(11) - (11)].node); - (yyval.node) = (PGNode *)n; - ;} +#line 2874 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = (yyvsp[-1].list); } +#line 19973 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 591: -#line 188 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.node) = (yyvsp[(1) - (1)].node); ;} +#line 2875 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = NIL; } +#line 19979 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 592: -#line 190 "third_party/libpg_query/grammar/statements/select.y" - { - /* same as SELECT * FROM relation_expr */ - PGColumnRef *cr = makeNode(PGColumnRef); - PGResTarget *rt = makeNode(PGResTarget); - PGSelectStmt *n = makeNode(PGSelectStmt); - - cr->fields = list_make1(makeNode(PGAStar)); - cr->location = -1; - - rt->name = NULL; - rt->indirection = NIL; - rt->val = (PGNode *)cr; - rt->location = -1; - - n->targetList = list_make1(rt); - n->fromClause = list_make1((yyvsp[(2) - (2)].range)); - (yyval.node) = (PGNode *)n; - ;} +#line 2878 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = (yyvsp[0].list);} +#line 19985 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 593: -#line 209 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.node) = makeSetOp(PG_SETOP_UNION, (yyvsp[(3) - (4)].boolean), (yyvsp[(1) - (4)].node), (yyvsp[(4) - (4)].node)); - ;} +#line 2879 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = lappend((yyvsp[-3].list), (yyvsp[-1].node)); } +#line 19991 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 594: -#line 213 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.node) = makeSetOp(PG_SETOP_INTERSECT, (yyvsp[(3) - (4)].boolean), (yyvsp[(1) - (4)].node), (yyvsp[(4) - (4)].node)); - ;} +#line 2883 "third_party/libpg_query/grammar/statements/select.y" + { + PGNamedArgExpr *na = makeNode(PGNamedArgExpr); + na->name = (yyvsp[-2].str); + na->arg = (PGExpr *) (yyvsp[0].node); + na->argnumber = -1; + na->location = (yylsp[-2]); + (yyval.node) = (PGNode *) na; + } +#line 20004 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 595: -#line 217 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.node) = makeSetOp(PG_SETOP_EXCEPT, (yyvsp[(3) - (4)].boolean), (yyvsp[(1) - (4)].node), (yyvsp[(4) - (4)].node)); - ;} +#line 2893 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = list_make1((yyvsp[0].node)); } +#line 20010 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 596: -#line 234 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.with) = makeNode(PGWithClause); - (yyval.with)->ctes = (yyvsp[(2) - (2)].list); - (yyval.with)->recursive = false; - (yyval.with)->location = (yylsp[(1) - (2)]); - ;} +#line 2894 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].node)); } +#line 20016 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 597: -#line 241 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.with) = makeNode(PGWithClause); - (yyval.with)->ctes = (yyvsp[(2) - (2)].list); - (yyval.with)->recursive = false; - (yyval.with)->location = (yylsp[(1) - (2)]); - ;} +#line 2898 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = (yyvsp[0].list); } +#line 20022 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 598: -#line 248 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.with) = makeNode(PGWithClause); - (yyval.with)->ctes = (yyvsp[(3) - (3)].list); - (yyval.with)->recursive = true; - (yyval.with)->location = (yylsp[(1) - (3)]); - ;} +#line 2899 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = (yyvsp[-1].list); } +#line 20028 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 599: -#line 257 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); ;} +#line 2903 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.subquerytype) = PG_ANY_SUBLINK; } +#line 20034 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 600: -#line 258 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node)); ;} +#line 2904 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.subquerytype) = PG_ANY_SUBLINK; } +#line 20040 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 601: -#line 262 "third_party/libpg_query/grammar/statements/select.y" - { - PGCommonTableExpr *n = makeNode(PGCommonTableExpr); - n->ctename = (yyvsp[(1) - (6)].str); - n->aliascolnames = (yyvsp[(2) - (6)].list); - n->ctequery = (yyvsp[(5) - (6)].node); - n->location = (yylsp[(1) - (6)]); - (yyval.node) = (PGNode *) n; - ;} +#line 2905 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.subquerytype) = PG_ALL_SUBLINK; } +#line 20046 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 602: -#line 274 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.into) = makeNode(PGIntoClause); - (yyval.into)->rel = (yyvsp[(2) - (2)].range); - (yyval.into)->colNames = NIL; - (yyval.into)->options = NIL; - (yyval.into)->onCommit = PG_ONCOMMIT_NOOP; - (yyval.into)->viewQuery = NULL; - (yyval.into)->skipData = false; - ;} +#line 2908 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.str) = (yyvsp[0].str); } +#line 20052 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 603: -#line 284 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.into) = NULL; ;} +#line 2909 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.str) = (char*) (yyvsp[0].conststr); } +#line 20058 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 604: -#line 293 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.range) = (yyvsp[(3) - (3)].range); - (yyval.range)->relpersistence = PG_RELPERSISTENCE_TEMP; - ;} +#line 2912 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.conststr) = "+"; } +#line 20064 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 605: -#line 298 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.range) = (yyvsp[(3) - (3)].range); - (yyval.range)->relpersistence = PG_RELPERSISTENCE_TEMP; - ;} +#line 2913 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.conststr) = "-"; } +#line 20070 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 606: -#line 303 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.range) = (yyvsp[(4) - (4)].range); - (yyval.range)->relpersistence = PG_RELPERSISTENCE_TEMP; - ;} +#line 2914 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.conststr) = "*"; } +#line 20076 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 607: -#line 308 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.range) = (yyvsp[(4) - (4)].range); - (yyval.range)->relpersistence = PG_RELPERSISTENCE_TEMP; - ;} +#line 2915 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.conststr) = "/"; } +#line 20082 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 608: -#line 313 "third_party/libpg_query/grammar/statements/select.y" - { - ereport(PGWARNING, - (errmsg("GLOBAL is deprecated in temporary table creation"), - parser_errposition((yylsp[(1) - (4)])))); - (yyval.range) = (yyvsp[(4) - (4)].range); - (yyval.range)->relpersistence = PG_RELPERSISTENCE_TEMP; - ;} +#line 2916 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.conststr) = "%"; } +#line 20088 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 609: -#line 321 "third_party/libpg_query/grammar/statements/select.y" - { - ereport(PGWARNING, - (errmsg("GLOBAL is deprecated in temporary table creation"), - parser_errposition((yylsp[(1) - (4)])))); - (yyval.range) = (yyvsp[(4) - (4)].range); - (yyval.range)->relpersistence = PG_RELPERSISTENCE_TEMP; - ;} +#line 2917 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.conststr) = "^"; } +#line 20094 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 610: -#line 329 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.range) = (yyvsp[(3) - (3)].range); - (yyval.range)->relpersistence = PG_RELPERSISTENCE_UNLOGGED; - ;} +#line 2918 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.conststr) = "**"; } +#line 20100 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 611: -#line 334 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.range) = (yyvsp[(2) - (2)].range); - (yyval.range)->relpersistence = RELPERSISTENCE_PERMANENT; - ;} +#line 2919 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.conststr) = "<"; } +#line 20106 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 612: -#line 339 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.range) = (yyvsp[(1) - (1)].range); - (yyval.range)->relpersistence = RELPERSISTENCE_PERMANENT; - ;} +#line 2920 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.conststr) = ">"; } +#line 20112 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 613: -#line 345 "third_party/libpg_query/grammar/statements/select.y" - {;} +#line 2921 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.conststr) = "="; } +#line 20118 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 614: -#line 346 "third_party/libpg_query/grammar/statements/select.y" - {;} +#line 2922 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.conststr) = "<="; } +#line 20124 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 615: -#line 350 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.boolean) = true; ;} +#line 2923 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.conststr) = ">="; } +#line 20130 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 616: -#line 351 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.boolean) = false; ;} +#line 2924 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.conststr) = "<>"; } +#line 20136 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 617: -#line 352 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.boolean) = false; ;} +#line 2928 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = list_make1(makeString((yyvsp[0].str))); } +#line 20142 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 618: -#line 359 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = list_make1(NIL); ;} +#line 2930 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = (yyvsp[-1].list); } +#line 20148 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 619: -#line 360 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = (yyvsp[(4) - (5)].list); ;} +#line 2935 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = list_make1(makeString((yyvsp[0].str))); } +#line 20154 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 620: -#line 364 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = NIL;;} +#line 2937 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = (yyvsp[-1].list); } +#line 20160 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 621: -#line 365 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = NIL; ;} +#line 2942 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = list_make1(makeString((yyvsp[0].str))); } +#line 20166 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 622: -#line 369 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.boolean) = true;;} +#line 2944 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = (yyvsp[-1].list); } +#line 20172 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 623: -#line 370 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.boolean) = false;;} +#line 2946 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = list_make1(makeString("~~")); } +#line 20178 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 624: -#line 371 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.boolean) = false; ;} +#line 2948 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = list_make1(makeString("!~~")); } +#line 20184 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 625: -#line 375 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = (yyvsp[(1) - (1)].list);;} +#line 2950 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = list_make1(makeString("~~~")); } +#line 20190 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 626: -#line 376 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = NIL; ;} +#line 2952 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = list_make1(makeString("!~~~")); } +#line 20196 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 627: -#line 380 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = (yyvsp[(3) - (3)].list); ;} +#line 2954 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = list_make1(makeString("~~*")); } +#line 20202 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 628: -#line 382 "third_party/libpg_query/grammar/statements/select.y" - { - PGSortBy *sort = makeNode(PGSortBy); - sort->node = (PGNode *) makeNode(PGAStar); - sort->sortby_dir = (yyvsp[(4) - (5)].sortorder); - sort->sortby_nulls = (yyvsp[(5) - (5)].nullorder); - sort->useOp = NIL; - sort->location = -1; /* no operator */ - (yyval.list) = list_make1(sort); - ;} +#line 2956 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = list_make1(makeString("!~~*")); } +#line 20208 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 629: -#line 392 "third_party/libpg_query/grammar/statements/select.y" - { - PGSortBy *sort = makeNode(PGSortBy); - sort->node = (PGNode *) makeNode(PGAStar); - sort->sortby_dir = (yyvsp[(4) - (5)].sortorder); - sort->sortby_nulls = (yyvsp[(5) - (5)].nullorder); - sort->useOp = NIL; - sort->location = -1; /* no operator */ - (yyval.list) = list_make1(sort); - ;} +#line 2970 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = list_make1(makeString((yyvsp[0].str))); } +#line 20214 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 630: -#line 404 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = list_make1((yyvsp[(1) - (1)].sortby)); ;} +#line 2972 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = lcons(makeString((yyvsp[-2].str)), (yyvsp[0].list)); } +#line 20220 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 631: -#line 405 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].sortby)); ;} +#line 2976 "third_party/libpg_query/grammar/statements/select.y" + { + (yyval.list) = list_make1((yyvsp[0].node)); + } +#line 20228 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 632: -#line 409 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.sortby) = makeNode(PGSortBy); - (yyval.sortby)->node = (yyvsp[(1) - (4)].node); - (yyval.sortby)->sortby_dir = SORTBY_USING; - (yyval.sortby)->sortby_nulls = (yyvsp[(4) - (4)].nullorder); - (yyval.sortby)->useOp = (yyvsp[(3) - (4)].list); - (yyval.sortby)->location = (yylsp[(3) - (4)]); - ;} +#line 2980 "third_party/libpg_query/grammar/statements/select.y" + { + (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].node)); + } +#line 20236 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 633: -#line 418 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.sortby) = makeNode(PGSortBy); - (yyval.sortby)->node = (yyvsp[(1) - (3)].node); - (yyval.sortby)->sortby_dir = (yyvsp[(2) - (3)].sortorder); - (yyval.sortby)->sortby_nulls = (yyvsp[(3) - (3)].nullorder); - (yyval.sortby)->useOp = NIL; - (yyval.sortby)->location = -1; /* no operator */ - ;} +#line 2987 "third_party/libpg_query/grammar/statements/select.y" + { + (yyval.list) = (yyvsp[0].list); + } +#line 20244 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 634: -#line 428 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.sortorder) = PG_SORTBY_ASC; ;} +#line 2992 "third_party/libpg_query/grammar/statements/select.y" + { + (yyval.list) = (yyvsp[-1].list); + } +#line 20252 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 635: -#line 429 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.sortorder) = PG_SORTBY_DESC; ;} +#line 2999 "third_party/libpg_query/grammar/statements/select.y" + { + (yyval.list) = (yyvsp[0].list); + } +#line 20260 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 636: -#line 430 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.sortorder) = PG_SORTBY_DEFAULT; ;} +#line 3003 "third_party/libpg_query/grammar/statements/select.y" + { + (yyval.list) = NULL; + } +#line 20268 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 637: -#line 433 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.nullorder) = PG_SORTBY_NULLS_FIRST; ;} +#line 3012 "third_party/libpg_query/grammar/statements/select.y" + { + (yyval.list) = list_make1((yyvsp[0].node)); + } +#line 20276 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 638: -#line 434 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.nullorder) = PG_SORTBY_NULLS_LAST; ;} +#line 3016 "third_party/libpg_query/grammar/statements/select.y" + { + (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].node)); + } +#line 20284 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 639: -#line 435 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.nullorder) = PG_SORTBY_NULLS_DEFAULT; ;} +#line 3022 "third_party/libpg_query/grammar/statements/select.y" + { + (yyval.node) = (yyvsp[0].node); + } +#line 20292 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 640: -#line 439 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = list_make2((yyvsp[(2) - (2)].node), (yyvsp[(1) - (2)].node)); ;} +#line 3026 "third_party/libpg_query/grammar/statements/select.y" + { + PGNamedArgExpr *na = makeNode(PGNamedArgExpr); + na->name = (yyvsp[-2].str); + na->arg = (PGExpr *) (yyvsp[0].node); + na->argnumber = -1; /* until determined */ + na->location = (yylsp[-2]); + (yyval.node) = (PGNode *) na; + } +#line 20305 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 641: -#line 440 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = list_make2((yyvsp[(1) - (2)].node), (yyvsp[(2) - (2)].node)); ;} +#line 3035 "third_party/libpg_query/grammar/statements/select.y" + { + PGNamedArgExpr *na = makeNode(PGNamedArgExpr); + na->name = (yyvsp[-2].str); + na->arg = (PGExpr *) (yyvsp[0].node); + na->argnumber = -1; /* until determined */ + na->location = (yylsp[-2]); + (yyval.node) = (PGNode *) na; + } +#line 20318 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 642: -#line 441 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = list_make2(NULL, (yyvsp[(1) - (1)].node)); ;} +#line 3045 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = list_make1((yyvsp[0].typnam)); } +#line 20324 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 643: -#line 442 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = list_make2((yyvsp[(1) - (1)].node), NULL); ;} +#line 3046 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].typnam)); } +#line 20330 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 644: -#line 446 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = (yyvsp[(1) - (1)].list); ;} +#line 3051 "third_party/libpg_query/grammar/statements/select.y" + { + (yyval.list) = list_make2(makeStringConst((yyvsp[-2].str), (yylsp[-2])), (yyvsp[0].node)); + } +#line 20338 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 645: -#line 447 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = list_make2(NULL,NULL); ;} +#line 3054 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = NIL; } +#line 20344 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 646: -#line 452 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.node) = (yyvsp[(2) - (2)].node); ;} +#line 3061 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.str) = (yyvsp[0].str); } +#line 20350 "third_party/libpg_query/grammar/grammar_out.cpp" break; - - case 647: -#line 454 "third_party/libpg_query/grammar/statements/select.y" - { - /* Disabled because it was too confusing, bjm 2002-02-18 */ - ereport(ERROR, - (errcode(PG_ERRCODE_SYNTAX_ERROR), - errmsg("LIMIT #,# syntax is not supported"), - errhint("Use separate LIMIT and OFFSET clauses."), - parser_errposition((yylsp[(1) - (4)])))); - ;} + + case 647: +#line 3062 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.str) = (char*) "year"; } +#line 20356 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 648: -#line 470 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.node) = (yyvsp[(3) - (5)].node); ;} +#line 3063 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.str) = (char*) "month"; } +#line 20362 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 649: -#line 472 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.node) = makeIntConst(1, -1); ;} +#line 3064 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.str) = (char*) "day"; } +#line 20368 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 650: -#line 477 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.node) = (yyvsp[(2) - (2)].node); ;} +#line 3065 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.str) = (char*) "hour"; } +#line 20374 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 651: -#line 480 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.node) = (yyvsp[(2) - (3)].node); ;} +#line 3066 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.str) = (char*) "minute"; } +#line 20380 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 652: -#line 488 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.node) = makeSampleSize(makeFloat((yyvsp[(1) - (2)].str)), true); - ;} +#line 3067 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.str) = (char*) "second"; } +#line 20386 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 653: -#line 492 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.node) = makeSampleSize(makeInteger((yyvsp[(1) - (2)].ival)), true); - ;} +#line 3068 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.str) = (char*) "millisecond"; } +#line 20392 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 654: -#line 496 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.node) = makeSampleSize(makeFloat((yyvsp[(1) - (2)].str)), true); - ;} +#line 3069 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.str) = (char*) "microsecond"; } +#line 20398 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 655: -#line 500 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.node) = makeSampleSize(makeInteger((yyvsp[(1) - (2)].ival)), true); - ;} +#line 3070 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.str) = (yyvsp[0].str); } +#line 20404 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 656: -#line 504 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.node) = makeSampleSize(makeInteger((yyvsp[(1) - (1)].ival)), false); - ;} +#line 3081 "third_party/libpg_query/grammar/statements/select.y" + { + (yyval.list) = list_make4((yyvsp[-3].node), (yyvsp[-2].node), (yyvsp[-1].node), (yyvsp[0].node)); + } +#line 20412 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 657: -#line 508 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.node) = makeSampleSize(makeInteger((yyvsp[(1) - (2)].ival)), false); - ;} +#line 3085 "third_party/libpg_query/grammar/statements/select.y" + { + (yyval.list) = list_make3((yyvsp[-2].node), (yyvsp[-1].node), (yyvsp[0].node)); + } +#line 20420 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 658: -#line 515 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.node) = (yyvsp[(3) - (3)].node); - ;} +#line 3092 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.node) = (yyvsp[0].node); } +#line 20426 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 659: -#line 519 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.node) = NULL; ;} +#line 3098 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = list_make2((yyvsp[0].node), (yyvsp[-2].node)); } +#line 20432 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 660: -#line 526 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.str) = (yyvsp[(1) - (1)].str); ;} +#line 3099 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = NIL; } +#line 20438 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 661: -#line 527 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.str) = NULL; ;} +#line 3116 "third_party/libpg_query/grammar/statements/select.y" + { + (yyval.list) = list_make3((yyvsp[-2].node), (yyvsp[-1].node), (yyvsp[0].node)); + } +#line 20446 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 662: -#line 532 "third_party/libpg_query/grammar/statements/select.y" - { - int seed = (yyvsp[(5) - (5)].ival); - (yyval.node) = makeSampleOptions((yyvsp[(3) - (5)].node), (yyvsp[(1) - (5)].str), &seed, (yylsp[(1) - (5)])); - ;} +#line 3120 "third_party/libpg_query/grammar/statements/select.y" + { + /* not legal per SQL99, but might as well allow it */ + (yyval.list) = list_make3((yyvsp[-2].node), (yyvsp[0].node), (yyvsp[-1].node)); + } +#line 20455 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 663: -#line 537 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.node) = makeSampleOptions((yyvsp[(1) - (1)].node), NULL, NULL, (yylsp[(1) - (1)])); - ;} +#line 3125 "third_party/libpg_query/grammar/statements/select.y" + { + (yyval.list) = list_make2((yyvsp[-1].node), (yyvsp[0].node)); + } +#line 20463 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 664: -#line 541 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.node) = makeSampleOptions((yyvsp[(1) - (4)].node), (yyvsp[(3) - (4)].str), NULL, (yylsp[(1) - (4)])); - ;} +#line 3129 "third_party/libpg_query/grammar/statements/select.y" + { + /* + * Since there are no cases where this syntax allows + * a textual FOR value, we forcibly cast the argument + * to int4. The possible matches in pg_proc are + * substring(text,int4) and substring(text,text), + * and we don't want the parser to choose the latter, + * which it is likely to do if the second argument + * is unknown or doesn't have an implicit cast to int4. + */ + (yyval.list) = list_make3((yyvsp[-1].node), makeIntConst(1, -1), + makeTypeCast((yyvsp[0].node), + SystemTypeName("int4"), 0, -1)); + } +#line 20482 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 665: -#line 545 "third_party/libpg_query/grammar/statements/select.y" - { - int seed = (yyvsp[(5) - (6)].ival); - (yyval.node) = makeSampleOptions((yyvsp[(1) - (6)].node), (yyvsp[(3) - (6)].str), &seed, (yylsp[(1) - (6)])); - ;} +#line 3144 "third_party/libpg_query/grammar/statements/select.y" + { + (yyval.list) = (yyvsp[0].list); + } +#line 20490 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 666: -#line 553 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.node) = (yyvsp[(2) - (2)].node); - ;} +#line 3148 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = NIL; } +#line 20496 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 667: -#line 559 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.node) = (yyvsp[(1) - (1)].node); ;} +#line 3152 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.node) = (yyvsp[0].node); } +#line 20502 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 668: -#line 560 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.node) = NULL; ;} +#line 3155 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.node) = (yyvsp[0].node); } +#line 20508 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 669: -#line 565 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.ival) = (yyvsp[(3) - (4)].ival); ;} +#line 3158 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = lappend((yyvsp[0].list), (yyvsp[-2].node)); } +#line 20514 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 670: -#line 566 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.ival) = -1; ;} +#line 3159 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = (yyvsp[0].list); } +#line 20520 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 671: -#line 570 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.node) = (yyvsp[(1) - (1)].node); ;} +#line 3160 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = (yyvsp[0].list); } +#line 20526 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 672: -#line 572 "third_party/libpg_query/grammar/statements/select.y" - { - /* LIMIT ALL is represented as a NULL constant */ - (yyval.node) = makeNullAConst((yylsp[(1) - (1)])); - ;} +#line 3164 "third_party/libpg_query/grammar/statements/select.y" + { + PGSubLink *n = makeNode(PGSubLink); + n->subselect = (yyvsp[0].node); + /* other fields will be filled later */ + (yyval.node) = (PGNode *)n; + } +#line 20537 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 673: -#line 577 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.node) = makeLimitPercent((yyvsp[(1) - (2)].node)); ;} +#line 3170 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.node) = (PGNode *)(yyvsp[-1].list); } +#line 20543 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 674: -#line 579 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.node) = makeLimitPercent(makeFloatConst((yyvsp[(1) - (2)].str),(yylsp[(1) - (2)]))); ;} +#line 3181 "third_party/libpg_query/grammar/statements/select.y" + { + PGCaseExpr *c = makeNode(PGCaseExpr); + c->casetype = InvalidOid; /* not analyzed yet */ + c->arg = (PGExpr *) (yyvsp[-3].node); + c->args = (yyvsp[-2].list); + c->defresult = (PGExpr *) (yyvsp[-1].node); + c->location = (yylsp[-4]); + (yyval.node) = (PGNode *)c; + } +#line 20557 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 675: -#line 581 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.node) = makeLimitPercent(makeIntConst((yyvsp[(1) - (2)].ival),(yylsp[(1) - (2)]))); ;} +#line 3194 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = list_make1((yyvsp[0].node)); } +#line 20563 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 676: -#line 585 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.node) = (yyvsp[(1) - (1)].node); ;} +#line 3195 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = lappend((yyvsp[-1].list), (yyvsp[0].node)); } +#line 20569 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 677: -#line 605 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.node) = (yyvsp[(1) - (1)].node); ;} +#line 3200 "third_party/libpg_query/grammar/statements/select.y" + { + PGCaseWhen *w = makeNode(PGCaseWhen); + w->expr = (PGExpr *) (yyvsp[-2].node); + w->result = (PGExpr *) (yyvsp[0].node); + w->location = (yylsp[-3]); + (yyval.node) = (PGNode *)w; + } +#line 20581 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 678: -#line 607 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, "+", NULL, (yyvsp[(2) - (2)].node), (yylsp[(1) - (2)])); ;} +#line 3210 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.node) = (yyvsp[0].node); } +#line 20587 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 679: -#line 609 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.node) = doNegate((yyvsp[(2) - (2)].node), (yylsp[(1) - (2)])); ;} +#line 3211 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.node) = NULL; } +#line 20593 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 680: -#line 613 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.node) = makeIntConst((yyvsp[(1) - (1)].ival),(yylsp[(1) - (1)])); ;} +#line 3214 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.node) = (yyvsp[0].node); } +#line 20599 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 681: -#line 614 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.node) = makeFloatConst((yyvsp[(1) - (1)].str),(yylsp[(1) - (1)])); ;} +#line 3215 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.node) = NULL; } +#line 20605 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 682: -#line 618 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.ival) = 0; ;} +#line 3219 "third_party/libpg_query/grammar/statements/select.y" + { + (yyval.node) = makeColumnRef((yyvsp[0].str), NIL, (yylsp[0]), yyscanner); + } +#line 20613 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 683: -#line 619 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.ival) = 0; ;} +#line 3223 "third_party/libpg_query/grammar/statements/select.y" + { + (yyval.node) = makeColumnRef((yyvsp[-1].str), (yyvsp[0].list), (yylsp[-1]), yyscanner); + } +#line 20621 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 684: -#line 622 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.ival) = 0; ;} +#line 3230 "third_party/libpg_query/grammar/statements/select.y" + { + (yyval.node) = (PGNode *) makeString((yyvsp[0].str)); + } +#line 20629 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 685: -#line 623 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.ival) = 0; ;} +#line 3234 "third_party/libpg_query/grammar/statements/select.y" + { + PGAIndices *ai = makeNode(PGAIndices); + ai->is_slice = false; + ai->lidx = NULL; + ai->uidx = (yyvsp[-1].node); + (yyval.node) = (PGNode *) ai; + } +#line 20641 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 686: -#line 648 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = (yyvsp[(3) - (3)].list); ;} +#line 3242 "third_party/libpg_query/grammar/statements/select.y" + { + PGAIndices *ai = makeNode(PGAIndices); + ai->is_slice = true; + ai->lidx = (yyvsp[-3].node); + ai->uidx = (yyvsp[-1].node); + (yyval.node) = (PGNode *) ai; + } +#line 20653 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 687: -#line 650 "third_party/libpg_query/grammar/statements/select.y" - { - PGNode *node = (PGNode *) makeGroupingSet(GROUPING_SET_ALL, NIL, (yylsp[(3) - (3)])); - (yyval.list) = list_make1(node); - ;} +#line 3252 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.node) = (yyvsp[0].node); } +#line 20659 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 688: -#line 655 "third_party/libpg_query/grammar/statements/select.y" - { - PGNode *node = (PGNode *) makeGroupingSet(GROUPING_SET_ALL, NIL, (yylsp[(3) - (3)])); - (yyval.list) = list_make1(node); - ;} +#line 3253 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.node) = NULL; } +#line 20665 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 689: -#line 659 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = NIL; ;} +#line 3257 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = list_make1((yyvsp[0].node)); } +#line 20671 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 690: -#line 663 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); ;} +#line 3258 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = lappend((yyvsp[-1].list), (yyvsp[0].node)); } +#line 20677 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 691: -#line 664 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = lappend((yyvsp[(1) - (3)].list),(yyvsp[(3) - (3)].node)); ;} +#line 3262 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = NIL; } +#line 20683 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 692: -#line 668 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = (yyvsp[(1) - (1)].list); ;} - break; - - case 693: -#line 669 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = (yyvsp[(1) - (2)].list); ;} - break; - - case 694: -#line 673 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.node) = (yyvsp[(1) - (1)].node); ;} +#line 3263 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = lappend((yyvsp[-1].list), (yyvsp[0].node)); } +#line 20689 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 695: -#line 674 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.node) = (yyvsp[(1) - (1)].node); ;} +#line 3277 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = (yyvsp[0].list); } +#line 20695 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 696: -#line 675 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.node) = (yyvsp[(1) - (1)].node); ;} +#line 3278 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = NIL; } +#line 20701 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 697: -#line 676 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.node) = (yyvsp[(1) - (1)].node); ;} +#line 3282 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = list_make1((yyvsp[0].target)); } +#line 20707 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 698: -#line 677 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.node) = (yyvsp[(1) - (1)].node); ;} +#line 3283 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].target)); } +#line 20713 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 699: -#line 682 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.node) = (PGNode *) makeGroupingSet(GROUPING_SET_EMPTY, NIL, (yylsp[(1) - (2)])); - ;} +#line 3287 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = (yyvsp[0].list); } +#line 20719 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 700: -#line 695 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.node) = (PGNode *) makeGroupingSet(GROUPING_SET_ROLLUP, (yyvsp[(3) - (4)].list), (yylsp[(1) - (4)])); - ;} +#line 3288 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = (yyvsp[-1].list); } +#line 20725 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 701: -#line 702 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.node) = (PGNode *) makeGroupingSet(GROUPING_SET_CUBE, (yyvsp[(3) - (4)].list), (yylsp[(1) - (4)])); - ;} +#line 3292 "third_party/libpg_query/grammar/statements/select.y" + { + (yyval.target) = makeNode(PGResTarget); + (yyval.target)->name = (yyvsp[0].str); + (yyval.target)->indirection = NIL; + (yyval.target)->val = (PGNode *)(yyvsp[-2].node); + (yyval.target)->location = (yylsp[-2]); + } +#line 20737 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 702: -#line 709 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.node) = (PGNode *) makeGroupingSet(GROUPING_SET_SETS, (yyvsp[(4) - (5)].list), (yylsp[(1) - (5)])); - ;} +#line 3308 "third_party/libpg_query/grammar/statements/select.y" + { + (yyval.target) = makeNode(PGResTarget); + (yyval.target)->name = (yyvsp[0].str); + (yyval.target)->indirection = NIL; + (yyval.target)->val = (PGNode *)(yyvsp[-1].node); + (yyval.target)->location = (yylsp[-1]); + } +#line 20749 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 703: -#line 715 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.node) = NULL; ;} +#line 3316 "third_party/libpg_query/grammar/statements/select.y" + { + (yyval.target) = makeNode(PGResTarget); + (yyval.target)->name = NULL; + (yyval.target)->indirection = NIL; + (yyval.target)->val = (PGNode *)(yyvsp[0].node); + (yyval.target)->location = (yylsp[0]); + } +#line 20761 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 704: -#line 716 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.node) = NULL; ;} +#line 3324 "third_party/libpg_query/grammar/statements/select.y" + { + PGColumnRef *n = makeNode(PGColumnRef); + PGAStar *star = makeNode(PGAStar); + n->fields = list_make1(star); + n->location = (yylsp[-2]); + star->except_list = (yyvsp[-1].list); + star->replace_list = (yyvsp[0].list); + + (yyval.target) = makeNode(PGResTarget); + (yyval.target)->name = NULL; + (yyval.target)->indirection = NIL; + (yyval.target)->val = (PGNode *)n; + (yyval.target)->location = (yylsp[-2]); + } +#line 20780 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 705: -#line 720 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.node) = (yyvsp[(2) - (2)].node); ;} +#line 3339 "third_party/libpg_query/grammar/statements/select.y" + { + PGColumnRef *n = makeNode(PGColumnRef); + PGAStar *star = makeNode(PGAStar); + n->fields = list_make1(star); + n->location = (yylsp[-4]); + star->relation = (yyvsp[-4].str); + star->except_list = (yyvsp[-1].list); + star->replace_list = (yyvsp[0].list); + + (yyval.target) = makeNode(PGResTarget); + (yyval.target)->name = NULL; + (yyval.target)->indirection = NIL; + (yyval.target)->val = (PGNode *)n; + (yyval.target)->location = (yylsp[-4]); + } +#line 20800 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 706: -#line 721 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.node) = NULL; ;} +#line 3356 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = (yyvsp[-1].list); } +#line 20806 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 707: -#line 725 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.node) = (yyvsp[(2) - (2)].node); ;} +#line 3357 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = list_make1(makeString((yyvsp[0].str))); } +#line 20812 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 708: -#line 726 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.node) = NULL; ;} +#line 3360 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = (yyvsp[0].list); } +#line 20818 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 709: -#line 730 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = (yyvsp[(1) - (1)].list); ;} +#line 3361 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = NULL; } +#line 20824 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 710: -#line 731 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = NIL; ;} +#line 3364 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = list_make2((yyvsp[-2].node), makeString((yyvsp[0].str))); } +#line 20830 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 711: -#line 735 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = (yyvsp[(1) - (1)].list); ;} +#line 3368 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = list_make1((yyvsp[0].list)); } +#line 20836 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 712: -#line 736 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = NIL; ;} +#line 3369 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].list)); } +#line 20842 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 713: -#line 740 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); ;} +#line 3373 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = (yyvsp[0].list); } +#line 20848 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 714: -#line 741 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = lappend((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].node)); ;} +#line 3374 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = (yyvsp[-1].list); } +#line 20854 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 715: -#line 746 "third_party/libpg_query/grammar/statements/select.y" - { - PGLockingClause *n = makeNode(PGLockingClause); - n->lockedRels = (yyvsp[(2) - (3)].list); - n->strength = (yyvsp[(1) - (3)].lockstrength); - n->waitPolicy = (yyvsp[(3) - (3)].lockwaitpolicy); - (yyval.node) = (PGNode *) n; - ;} +#line 3377 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = (yyvsp[-1].list); } +#line 20860 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 716: -#line 756 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.lockstrength) = LCS_FORUPDATE; ;} +#line 3378 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = list_make1((yyvsp[0].list)); } +#line 20866 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 717: -#line 757 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.lockstrength) = PG_LCS_FORNOKEYUPDATE; ;} +#line 3379 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = NULL; } +#line 20872 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 718: -#line 758 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.lockstrength) = PG_LCS_FORSHARE; ;} +#line 3389 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = list_make1((yyvsp[0].range)); } +#line 20878 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 719: -#line 759 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.lockstrength) = PG_LCS_FORKEYSHARE; ;} +#line 3390 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].range)); } +#line 20884 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 720: -#line 763 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = (yyvsp[(2) - (2)].list); ;} +#line 3402 "third_party/libpg_query/grammar/statements/select.y" + { + (yyval.range) = makeRangeVar(NULL, (yyvsp[0].str), (yylsp[0])); + } +#line 20892 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 721: -#line 764 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = NIL; ;} +#line 3406 "third_party/libpg_query/grammar/statements/select.y" + { + check_qualified_name((yyvsp[0].list), yyscanner); + (yyval.range) = makeRangeVar(NULL, NULL, (yylsp[-1])); + switch (list_length((yyvsp[0].list))) + { + case 1: + (yyval.range)->catalogname = NULL; + (yyval.range)->schemaname = (yyvsp[-1].str); + (yyval.range)->relname = strVal(linitial((yyvsp[0].list))); + break; + case 2: + (yyval.range)->catalogname = (yyvsp[-1].str); + (yyval.range)->schemaname = strVal(linitial((yyvsp[0].list))); + (yyval.range)->relname = strVal(lsecond((yyvsp[0].list))); + break; + default: + ereport(ERROR, + (errcode(PG_ERRCODE_SYNTAX_ERROR), + errmsg("improper qualified name (too many dotted names): %s", + NameListToString(lcons(makeString((yyvsp[-1].str)), (yyvsp[0].list)))), + parser_errposition((yylsp[-1])))); + break; + } + } +#line 20921 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 722: -#line 769 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.lockwaitpolicy) = LockWaitError; ;} +#line 3433 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = list_make1(makeString((yyvsp[0].str))); } +#line 20927 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 723: -#line 770 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.lockwaitpolicy) = PGLockWaitSkip; ;} +#line 3435 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = lappend((yyvsp[-2].list), makeString((yyvsp[0].str))); } +#line 20933 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 724: -#line 771 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.lockwaitpolicy) = PGLockWaitBlock; ;} +#line 3440 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = (yyvsp[0].list); } +#line 20939 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 725: -#line 781 "third_party/libpg_query/grammar/statements/select.y" - { - PGSelectStmt *n = makeNode(PGSelectStmt); - n->valuesLists = list_make1((yyvsp[(3) - (4)].list)); - (yyval.node) = (PGNode *) n; - ;} +#line 3441 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = (yyvsp[-1].list); } +#line 20945 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 726: -#line 787 "third_party/libpg_query/grammar/statements/select.y" - { - PGSelectStmt *n = (PGSelectStmt *) (yyvsp[(1) - (5)].node); - n->valuesLists = lappend(n->valuesLists, (yyvsp[(4) - (5)].list)); - (yyval.node) = (PGNode *) n; - ;} +#line 3444 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.str) = (yyvsp[0].str); } +#line 20951 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 727: -#line 795 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.node) = (yyvsp[(1) - (1)].node); ;} +#line 3446 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.str) = (yyvsp[0].str); } +#line 20957 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 728: -#line 796 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.node) = (yyvsp[(1) - (2)].node); ;} +#line 3457 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = list_make1(makeString((yyvsp[0].str))); } +#line 20963 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 729: -#line 809 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = (yyvsp[(2) - (2)].list); ;} +#line 3460 "third_party/libpg_query/grammar/statements/select.y" + { + (yyval.list) = check_func_name(lcons(makeString((yyvsp[-1].str)), (yyvsp[0].list)), + yyscanner); + } +#line 20972 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 730: -#line 810 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = NIL; ;} +#line 3471 "third_party/libpg_query/grammar/statements/select.y" + { + (yyval.node) = makeIntConst((yyvsp[0].ival), (yylsp[0])); + } +#line 20980 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 731: -#line 814 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); ;} +#line 3475 "third_party/libpg_query/grammar/statements/select.y" + { + (yyval.node) = makeFloatConst((yyvsp[0].str), (yylsp[0])); + } +#line 20988 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 732: -#line 815 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node)); ;} +#line 3479 "third_party/libpg_query/grammar/statements/select.y" + { + if ((yyvsp[0].list)) + { + PGAIndirection *n = makeNode(PGAIndirection); + n->arg = makeStringConst((yyvsp[-1].str), (yylsp[-1])); + n->indirection = check_indirection((yyvsp[0].list), yyscanner); + (yyval.node) = (PGNode *) n; + } + else + (yyval.node) = makeStringConst((yyvsp[-1].str), (yylsp[-1])); + } +#line 21004 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 733: -#line 819 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = (yyvsp[(1) - (1)].list); ;} +#line 3491 "third_party/libpg_query/grammar/statements/select.y" + { + (yyval.node) = makeBitStringConst((yyvsp[0].str), (yylsp[0])); + } +#line 21012 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 734: -#line 820 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = (yyvsp[(1) - (2)].list); ;} +#line 3495 "third_party/libpg_query/grammar/statements/select.y" + { + /* This is a bit constant per SQL99: + * Without Feature F511, "BIT data type", + * a shall not be a + * or a . + */ + (yyval.node) = makeBitStringConst((yyvsp[0].str), (yylsp[0])); + } +#line 21025 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 735: -#line 827 "third_party/libpg_query/grammar/statements/select.y" - { - (yyvsp[(1) - (3)].range)->alias = (yyvsp[(2) - (3)].alias); - (yyvsp[(1) - (3)].range)->sample = (yyvsp[(3) - (3)].node); - (yyval.node) = (PGNode *) (yyvsp[(1) - (3)].range); - ;} +#line 3504 "third_party/libpg_query/grammar/statements/select.y" + { + /* generic type 'literal' syntax */ + PGTypeName *t = makeTypeNameFromNameList((yyvsp[-1].list)); + t->location = (yylsp[-1]); + (yyval.node) = makeStringConstCast((yyvsp[0].str), (yylsp[0]), t); + } +#line 21036 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 736: -#line 833 "third_party/libpg_query/grammar/statements/select.y" - { - PGRangeFunction *n = (PGRangeFunction *) (yyvsp[(1) - (3)].node); - n->alias = (PGAlias*) linitial((yyvsp[(2) - (3)].list)); - n->coldeflist = (PGList*) lsecond((yyvsp[(2) - (3)].list)); - n->sample = (yyvsp[(3) - (3)].node); - (yyval.node) = (PGNode *) n; - ;} +#line 3511 "third_party/libpg_query/grammar/statements/select.y" + { + /* generic syntax with a type modifier */ + PGTypeName *t = makeTypeNameFromNameList((yyvsp[-6].list)); + PGListCell *lc; + + /* + * We must use func_arg_list and opt_sort_clause in the + * production to avoid reduce/reduce conflicts, but we + * don't actually wish to allow PGNamedArgExpr in this + * context, ORDER BY, nor IGNORE NULLS. + */ + foreach(lc, (yyvsp[-4].list)) + { + PGNamedArgExpr *arg = (PGNamedArgExpr *) lfirst(lc); + + if (IsA(arg, PGNamedArgExpr)) + ereport(ERROR, + (errcode(PG_ERRCODE_SYNTAX_ERROR), + errmsg("type modifier cannot have parameter name"), + parser_errposition(arg->location))); + } + if ((yyvsp[-3].list) != NIL) + ereport(ERROR, + (errcode(PG_ERRCODE_SYNTAX_ERROR), + errmsg("type modifier cannot have ORDER BY"), + parser_errposition((yylsp[-3])))); + if ((yyvsp[-2].boolean) != false) + ereport(ERROR, + (errcode(PG_ERRCODE_SYNTAX_ERROR), + errmsg("type modifier cannot have IGNORE NULLS"), + parser_errposition((yylsp[-2])))); + + + t->typmods = (yyvsp[-4].list); + t->location = (yylsp[-6]); + (yyval.node) = makeStringConstCast((yyvsp[0].str), (yylsp[0]), t); + } +#line 21078 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 737: -#line 841 "third_party/libpg_query/grammar/statements/select.y" - { - PGRangeSubselect *n = makeNode(PGRangeSubselect); - n->lateral = false; - n->subquery = (yyvsp[(1) - (3)].node); - n->alias = (yyvsp[(2) - (3)].alias); - n->sample = (yyvsp[(3) - (3)].node); - (yyval.node) = (PGNode *) n; - ;} +#line 3549 "third_party/libpg_query/grammar/statements/select.y" + { + (yyval.node) = makeStringConstCast((yyvsp[0].str), (yylsp[0]), (yyvsp[-1].typnam)); + } +#line 21086 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 738: -#line 850 "third_party/libpg_query/grammar/statements/select.y" - { - PGRangeFunction *n = (PGRangeFunction *) (yyvsp[(2) - (3)].node); - n->lateral = true; - n->alias = (PGAlias*) linitial((yyvsp[(3) - (3)].list)); - n->coldeflist = (PGList*) lsecond((yyvsp[(3) - (3)].list)); - (yyval.node) = (PGNode *) n; - ;} +#line 3553 "third_party/libpg_query/grammar/statements/select.y" + { + (yyval.node) = makeIntervalNode((yyvsp[-2].node), (yylsp[-2]), (yyvsp[0].list)); + } +#line 21094 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 739: -#line 858 "third_party/libpg_query/grammar/statements/select.y" - { - PGRangeSubselect *n = makeNode(PGRangeSubselect); - n->lateral = false; - n->subquery = (yyvsp[(1) - (3)].node); - n->alias = (yyvsp[(2) - (3)].alias); - n->sample = (yyvsp[(3) - (3)].node); - (yyval.node) = (PGNode *) n; - ;} +#line 3557 "third_party/libpg_query/grammar/statements/select.y" + { + (yyval.node) = makeIntervalNode((yyvsp[-1].ival), (yylsp[-1]), (yyvsp[0].list)); + } +#line 21102 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 740: -#line 867 "third_party/libpg_query/grammar/statements/select.y" - { - PGRangeSubselect *n = makeNode(PGRangeSubselect); - n->lateral = true; - n->subquery = (yyvsp[(2) - (3)].node); - n->alias = (yyvsp[(3) - (3)].alias); - n->sample = NULL; - (yyval.node) = (PGNode *) n; - ;} +#line 3561 "third_party/libpg_query/grammar/statements/select.y" + { + (yyval.node) = makeIntervalNode((yyvsp[-1].str), (yylsp[-1]), (yyvsp[0].list)); + } +#line 21110 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 741: -#line 876 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.node) = (PGNode *) (yyvsp[(1) - (1)].jexpr); - ;} +#line 3565 "third_party/libpg_query/grammar/statements/select.y" + { + (yyval.node) = makeBoolAConst(true, (yylsp[0])); + } +#line 21118 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 742: -#line 880 "third_party/libpg_query/grammar/statements/select.y" - { - (yyvsp[(2) - (4)].jexpr)->alias = (yyvsp[(4) - (4)].alias); - (yyval.node) = (PGNode *) (yyvsp[(2) - (4)].jexpr); - ;} +#line 3569 "third_party/libpg_query/grammar/statements/select.y" + { + (yyval.node) = makeBoolAConst(false, (yylsp[0])); + } +#line 21126 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 743: -#line 906 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.jexpr) = (yyvsp[(2) - (3)].jexpr); - ;} +#line 3573 "third_party/libpg_query/grammar/statements/select.y" + { + (yyval.node) = makeNullAConst((yylsp[0])); + } +#line 21134 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 744: -#line 910 "third_party/libpg_query/grammar/statements/select.y" - { - /* CROSS JOIN is same as unqualified inner join */ - PGJoinExpr *n = makeNode(PGJoinExpr); - n->jointype = PG_JOIN_INNER; - n->isNatural = false; - n->larg = (yyvsp[(1) - (4)].node); - n->rarg = (yyvsp[(4) - (4)].node); - n->usingClause = NIL; - n->quals = NULL; - n->location = (yylsp[(2) - (4)]); - (yyval.jexpr) = n; - ;} +#line 3578 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.ival) = (yyvsp[0].ival); } +#line 21140 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 745: -#line 923 "third_party/libpg_query/grammar/statements/select.y" - { - PGJoinExpr *n = makeNode(PGJoinExpr); - n->jointype = (yyvsp[(2) - (5)].jtype); - n->isNatural = false; - n->larg = (yyvsp[(1) - (5)].node); - n->rarg = (yyvsp[(4) - (5)].node); - if ((yyvsp[(5) - (5)].node) != NULL && IsA((yyvsp[(5) - (5)].node), PGList)) - n->usingClause = (PGList *) (yyvsp[(5) - (5)].node); /* USING clause */ - else - n->quals = (yyvsp[(5) - (5)].node); /* ON clause */ - n->location = (yylsp[(2) - (5)]); - (yyval.jexpr) = n; - ;} +#line 3579 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.str) = (yyvsp[0].str); } +#line 21146 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 746: -#line 937 "third_party/libpg_query/grammar/statements/select.y" - { - /* letting join_type reduce to empty doesn't work */ - PGJoinExpr *n = makeNode(PGJoinExpr); - n->jointype = PG_JOIN_INNER; - n->isNatural = false; - n->larg = (yyvsp[(1) - (4)].node); - n->rarg = (yyvsp[(3) - (4)].node); - if ((yyvsp[(4) - (4)].node) != NULL && IsA((yyvsp[(4) - (4)].node), PGList)) - n->usingClause = (PGList *) (yyvsp[(4) - (4)].node); /* USING clause */ - else - n->quals = (yyvsp[(4) - (4)].node); /* ON clause */ - n->location = (yylsp[(2) - (4)]); - (yyval.jexpr) = n; - ;} +#line 3595 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.str) = (yyvsp[0].str); } +#line 21152 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 747: -#line 952 "third_party/libpg_query/grammar/statements/select.y" - { - PGJoinExpr *n = makeNode(PGJoinExpr); - n->jointype = (yyvsp[(3) - (5)].jtype); - n->isNatural = true; - n->larg = (yyvsp[(1) - (5)].node); - n->rarg = (yyvsp[(5) - (5)].node); - n->usingClause = NIL; /* figure out which columns later... */ - n->quals = NULL; /* fill later */ - n->location = (yylsp[(2) - (5)]); - (yyval.jexpr) = n; - ;} +#line 3596 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.str) = pstrdup((yyvsp[0].keyword)); } +#line 21158 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 748: -#line 964 "third_party/libpg_query/grammar/statements/select.y" - { - /* letting join_type reduce to empty doesn't work */ - PGJoinExpr *n = makeNode(PGJoinExpr); - n->jointype = PG_JOIN_INNER; - n->isNatural = true; - n->larg = (yyvsp[(1) - (4)].node); - n->rarg = (yyvsp[(4) - (4)].node); - n->usingClause = NIL; /* figure out which columns later... */ - n->quals = NULL; /* fill later */ - n->location = (yylsp[(2) - (4)]); - (yyval.jexpr) = n; - ;} +#line 3597 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.str) = pstrdup((yyvsp[0].keyword)); } +#line 21164 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 749: -#line 980 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.alias) = makeNode(PGAlias); - (yyval.alias)->aliasname = (yyvsp[(2) - (5)].str); - (yyval.alias)->colnames = (yyvsp[(4) - (5)].list); - ;} +#line 3600 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.str) = (yyvsp[0].str); } +#line 21170 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 750: -#line 986 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.alias) = makeNode(PGAlias); - (yyval.alias)->aliasname = (yyvsp[(2) - (2)].str); - ;} +#line 3601 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.str) = (yyvsp[0].str); } +#line 21176 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 751: -#line 991 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.alias) = makeNode(PGAlias); - (yyval.alias)->aliasname = (yyvsp[(1) - (4)].str); - (yyval.alias)->colnames = (yyvsp[(3) - (4)].list); - ;} +#line 3607 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.str) = (yyvsp[0].str); } +#line 21182 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 752: -#line 997 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.alias) = makeNode(PGAlias); - (yyval.alias)->aliasname = (yyvsp[(1) - (1)].str); - ;} +#line 3608 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.str) = pstrdup((yyvsp[0].keyword)); } +#line 21188 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 753: -#line 1003 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.alias) = (yyvsp[(1) - (1)].alias); ;} +#line 3609 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.str) = pstrdup((yyvsp[0].keyword)); } +#line 21194 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 754: -#line 1004 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.alias) = NULL; ;} +#line 3612 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.str) = (yyvsp[0].str); } +#line 21200 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 755: -#line 1013 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.list) = list_make2((yyvsp[(1) - (1)].alias), NIL); - ;} +#line 3613 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.str) = pstrdup((yyvsp[0].keyword)); } +#line 21206 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 756: -#line 1017 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.list) = list_make2(NULL, (yyvsp[(3) - (4)].list)); - ;} +#line 3614 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.str) = pstrdup((yyvsp[0].keyword)); } +#line 21212 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 757: -#line 1021 "third_party/libpg_query/grammar/statements/select.y" - { - PGAlias *a = makeNode(PGAlias); - a->aliasname = (yyvsp[(2) - (5)].str); - (yyval.list) = list_make2(a, (yyvsp[(4) - (5)].list)); - ;} +#line 3617 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.str) = (yyvsp[0].str); } +#line 21218 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 758: -#line 1027 "third_party/libpg_query/grammar/statements/select.y" - { - PGAlias *a = makeNode(PGAlias); - a->aliasname = (yyvsp[(1) - (4)].str); - (yyval.list) = list_make2(a, (yyvsp[(3) - (4)].list)); - ;} +#line 3618 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.str) = pstrdup((yyvsp[0].keyword)); } +#line 21224 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 759: -#line 1033 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.list) = list_make2(NULL, NIL); - ;} +#line 3619 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.str) = pstrdup((yyvsp[0].keyword)); } +#line 21230 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 760: -#line 1038 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.jtype) = PG_JOIN_FULL; ;} +#line 3622 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = list_make1(makeString((yyvsp[0].str))); } +#line 21236 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 761: -#line 1039 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.jtype) = PG_JOIN_LEFT; ;} +#line 3623 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = lcons(makeString((yyvsp[-1].str)), (yyvsp[0].list)); } +#line 21242 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 762: -#line 1040 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.jtype) = PG_JOIN_RIGHT; ;} +#line 3627 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = list_make1(makeString((yyvsp[0].str))); } +#line 21248 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 763: -#line 1041 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.jtype) = PG_JOIN_INNER; ;} +#line 3629 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = lappend((yyvsp[-2].list), makeString((yyvsp[0].str))); } +#line 21254 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 764: -#line 1045 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.node) = NULL; ;} +#line 3633 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = (yyvsp[-1].list); } +#line 21260 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 765: -#line 1046 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.node) = NULL; ;} - break; - - case 766: -#line 1058 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.node) = (PGNode *) (yyvsp[(3) - (4)].list); ;} +#line 3634 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = NIL; } +#line 21266 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 767: -#line 1059 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.node) = (yyvsp[(2) - (2)].node); ;} +#line 3645 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.str) = (yyvsp[0].str); } +#line 21272 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 768: -#line 1065 "third_party/libpg_query/grammar/statements/select.y" - { - /* inheritance query, implicitly */ - (yyval.range) = (yyvsp[(1) - (1)].range); - (yyval.range)->inh = true; - (yyval.range)->alias = NULL; - ;} +#line 3646 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.str) = pstrdup((yyvsp[0].keyword)); } +#line 21278 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 769: -#line 1072 "third_party/libpg_query/grammar/statements/select.y" - { - /* inheritance query, explicitly */ - (yyval.range) = (yyvsp[(1) - (2)].range); - (yyval.range)->inh = true; - (yyval.range)->alias = NULL; - ;} +#line 3647 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.str) = pstrdup((yyvsp[0].keyword)); } +#line 21284 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 770: -#line 1079 "third_party/libpg_query/grammar/statements/select.y" - { - /* no inheritance */ - (yyval.range) = (yyvsp[(2) - (2)].range); - (yyval.range)->inh = false; - (yyval.range)->alias = NULL; - ;} +#line 3648 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.str) = pstrdup((yyvsp[0].keyword)); } +#line 21290 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 771: -#line 1086 "third_party/libpg_query/grammar/statements/select.y" - { - /* no inheritance, SQL99-style syntax */ - (yyval.range) = (yyvsp[(3) - (4)].range); - (yyval.range)->inh = false; - (yyval.range)->alias = NULL; - ;} +#line 3651 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.str) = (yyvsp[0].str); } +#line 21296 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 772: -#line 1118 "third_party/libpg_query/grammar/statements/select.y" - { - PGRangeFunction *n = makeNode(PGRangeFunction); - n->lateral = false; - n->ordinality = (yyvsp[(2) - (2)].boolean); - n->is_rowsfrom = false; - n->functions = list_make1(list_make2((yyvsp[(1) - (2)].node), NIL)); - n->sample = NULL; - /* alias and coldeflist are set by table_ref production */ - (yyval.node) = (PGNode *) n; - ;} +#line 3652 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.str) = (yyvsp[0].str); } +#line 21302 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 773: -#line 1129 "third_party/libpg_query/grammar/statements/select.y" - { - PGRangeFunction *n = makeNode(PGRangeFunction); - n->lateral = false; - n->ordinality = (yyvsp[(6) - (6)].boolean); - n->is_rowsfrom = true; - n->functions = (yyvsp[(4) - (6)].list); - n->sample = NULL; - /* alias and coldeflist are set by table_ref production */ - (yyval.node) = (PGNode *) n; - ;} +#line 8 "third_party/libpg_query/grammar/statements/pragma.y" + { + PGPragmaStmt *n = makeNode(PGPragmaStmt); + n->kind = PG_PRAGMA_TYPE_NOTHING; + n->name = (yyvsp[0].str); + (yyval.node) = (PGNode *)n; + } +#line 21313 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 774: -#line 1142 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = list_make2((yyvsp[(1) - (2)].node), (yyvsp[(2) - (2)].list)); ;} +#line 15 "third_party/libpg_query/grammar/statements/pragma.y" + { + PGPragmaStmt *n = makeNode(PGPragmaStmt); + n->kind = PG_PRAGMA_TYPE_ASSIGNMENT; + n->name = (yyvsp[-2].str); + n->args = (yyvsp[0].list); + (yyval.node) = (PGNode *)n; + } +#line 21325 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 775: -#line 1146 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = list_make1((yyvsp[(1) - (1)].list)); ;} +#line 23 "third_party/libpg_query/grammar/statements/pragma.y" + { + PGPragmaStmt *n = makeNode(PGPragmaStmt); + n->kind = PG_PRAGMA_TYPE_CALL; + n->name = (yyvsp[-3].str); + n->args = (yyvsp[-1].list); + (yyval.node) = (PGNode *)n; + } +#line 21337 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 776: -#line 1147 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].list)); ;} +#line 12 "third_party/libpg_query/grammar/statements/create_as.y" + { + PGCreateTableAsStmt *ctas = makeNode(PGCreateTableAsStmt); + ctas->query = (yyvsp[-1].node); + ctas->into = (yyvsp[-3].into); + ctas->relkind = PG_OBJECT_TABLE; + ctas->is_select_into = false; + ctas->onconflict = PG_ERROR_ON_CONFLICT; + /* cram additional flags into the PGIntoClause */ + (yyvsp[-3].into)->rel->relpersistence = (yyvsp[-5].ival); + (yyvsp[-3].into)->skipData = !((yyvsp[0].boolean)); + (yyval.node) = (PGNode *) ctas; + } +#line 21354 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 777: -#line 1150 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = (yyvsp[(3) - (4)].list); ;} +#line 25 "third_party/libpg_query/grammar/statements/create_as.y" + { + PGCreateTableAsStmt *ctas = makeNode(PGCreateTableAsStmt); + ctas->query = (yyvsp[-1].node); + ctas->into = (yyvsp[-3].into); + ctas->relkind = PG_OBJECT_TABLE; + ctas->is_select_into = false; + ctas->onconflict = PG_IGNORE_ON_CONFLICT; + /* cram additional flags into the PGIntoClause */ + (yyvsp[-3].into)->rel->relpersistence = (yyvsp[-8].ival); + (yyvsp[-3].into)->skipData = !((yyvsp[0].boolean)); + (yyval.node) = (PGNode *) ctas; + } +#line 21371 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 778: -#line 1151 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = NIL; ;} +#line 38 "third_party/libpg_query/grammar/statements/create_as.y" + { + PGCreateTableAsStmt *ctas = makeNode(PGCreateTableAsStmt); + ctas->query = (yyvsp[-1].node); + ctas->into = (yyvsp[-3].into); + ctas->relkind = PG_OBJECT_TABLE; + ctas->is_select_into = false; + ctas->onconflict = PG_REPLACE_ON_CONFLICT; + /* cram additional flags into the PGIntoClause */ + (yyvsp[-3].into)->rel->relpersistence = (yyvsp[-5].ival); + (yyvsp[-3].into)->skipData = !((yyvsp[0].boolean)); + (yyval.node) = (PGNode *) ctas; + } +#line 21388 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 779: -#line 1154 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.boolean) = true; ;} +#line 54 "third_party/libpg_query/grammar/statements/create_as.y" + { (yyval.boolean) = true; } +#line 21394 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 780: -#line 1155 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.boolean) = false; ;} +#line 55 "third_party/libpg_query/grammar/statements/create_as.y" + { (yyval.boolean) = false; } +#line 21400 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 781: -#line 1160 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.node) = (yyvsp[(2) - (2)].node); ;} +#line 56 "third_party/libpg_query/grammar/statements/create_as.y" + { (yyval.boolean) = true; } +#line 21406 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 782: -#line 1161 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.node) = NULL; ;} +#line 62 "third_party/libpg_query/grammar/statements/create_as.y" + { + (yyval.into) = makeNode(PGIntoClause); + (yyval.into)->rel = (yyvsp[-3].range); + (yyval.into)->colNames = (yyvsp[-2].list); + (yyval.into)->options = (yyvsp[-1].list); + (yyval.into)->onCommit = (yyvsp[0].oncommit); + (yyval.into)->viewQuery = NULL; + (yyval.into)->skipData = false; /* might get changed later */ + } +#line 21420 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 783: -#line 1167 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); - ;} +#line 3 "third_party/libpg_query/grammar/statements/variable_show.y" + { + PGVariableShowSelectStmt *n = makeNode(PGVariableShowSelectStmt); + n->stmt = (yyvsp[0].node); + n->name = (char*) "select"; + n->is_summary = 0; + (yyval.node) = (PGNode *) n; + } +#line 21432 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 784: -#line 1171 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node)); - ;} +#line 10 "third_party/libpg_query/grammar/statements/variable_show.y" + { + PGVariableShowSelectStmt *n = makeNode(PGVariableShowSelectStmt); + n->stmt = (yyvsp[0].node); + n->name = (char*) "select"; + n->is_summary = 1; + (yyval.node) = (PGNode *) n; + } +#line 21444 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 785: -#line 1177 "third_party/libpg_query/grammar/statements/select.y" - { - PGColumnDef *n = makeNode(PGColumnDef); - n->colname = (yyvsp[(1) - (3)].str); - n->typeName = (yyvsp[(2) - (3)].typnam); - n->inhcount = 0; - n->is_local = true; - n->is_not_null = false; - n->is_from_type = false; - n->storage = 0; - n->raw_default = NULL; - n->cooked_default = NULL; - n->collClause = (PGCollateClause *) (yyvsp[(3) - (3)].node); - n->collOid = InvalidOid; - n->constraints = NIL; - n->location = (yylsp[(1) - (3)]); - (yyval.node) = (PGNode *)n; - ;} +#line 18 "third_party/libpg_query/grammar/statements/variable_show.y" + { + PGVariableShowStmt *n = makeNode(PGVariableShowStmt); + n->name = (yyvsp[0].str); + n->is_summary = 1; + (yyval.node) = (PGNode *) n; + } +#line 21455 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 786: -#line 1198 "third_party/libpg_query/grammar/statements/select.y" - { - PGCollateClause *n = makeNode(PGCollateClause); - n->arg = NULL; - n->collname = (yyvsp[(2) - (2)].list); - n->location = (yylsp[(1) - (2)]); - (yyval.node) = (PGNode *) n; - ;} +#line 25 "third_party/libpg_query/grammar/statements/variable_show.y" + { + PGVariableShowStmt *n = makeNode(PGVariableShowStmt); + n->name = (yyvsp[0].str); + n->is_summary = 0; + (yyval.node) = (PGNode *) n; + } +#line 21466 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 787: -#line 1205 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.node) = NULL; ;} +#line 32 "third_party/libpg_query/grammar/statements/variable_show.y" + { + PGVariableShowStmt *n = makeNode(PGVariableShowStmt); + n->name = (char*) "timezone"; + n->is_summary = 0; + (yyval.node) = (PGNode *) n; + } +#line 21477 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 788: -#line 1218 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.list) = list_make1(list_make2(makeString((yyvsp[(1) - (2)].str)), (yyvsp[(2) - (2)].typnam))); - ;} +#line 39 "third_party/libpg_query/grammar/statements/variable_show.y" + { + PGVariableShowStmt *n = makeNode(PGVariableShowStmt); + n->name = (char*) "transaction_isolation"; + n->is_summary = 0; + (yyval.node) = (PGNode *) n; + } +#line 21488 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 789: -#line 1221 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.list) = lappend((yyvsp[(1) - (4)].list), list_make2(makeString((yyvsp[(3) - (4)].str)), (yyvsp[(4) - (4)].typnam))); - ;} +#line 46 "third_party/libpg_query/grammar/statements/variable_show.y" + { + PGVariableShowStmt *n = makeNode(PGVariableShowStmt); + n->name = (char*) "__show_tables_expanded"; + n->is_summary = 0; + (yyval.node) = (PGNode *) n; + } +#line 21499 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 792: -#line 1228 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.typnam) = (yyvsp[(1) - (1)].typnam); ;} + case 790: +#line 53 "third_party/libpg_query/grammar/statements/variable_show.y" + { + PGVariableShowStmt *n = makeNode(PGVariableShowStmt); + n->name = (char*) "__show_tables_expanded"; + n->is_summary = 0; + (yyval.node) = (PGNode *) n; + } +#line 21510 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 793: -#line 1229 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.typnam) = NULL; ;} +#line 63 "third_party/libpg_query/grammar/statements/variable_show.y" + { (yyval.str) = (yyvsp[0].str); } +#line 21516 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 794: -#line 1232 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.typnam) = (yyvsp[(1) - (2)].typnam); - (yyval.typnam)->arrayBounds = (yyvsp[(2) - (2)].list); - ;} +#line 65 "third_party/libpg_query/grammar/statements/variable_show.y" + { (yyval.str) = psprintf("%s.%s", (yyvsp[-2].str), (yyvsp[0].str)); } +#line 21522 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 795: -#line 1237 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.typnam) = (yyvsp[(2) - (3)].typnam); - (yyval.typnam)->arrayBounds = (yyvsp[(3) - (3)].list); - (yyval.typnam)->setof = true; - ;} +#line 10 "third_party/libpg_query/grammar/statements/alter_sequence.y" + { + PGAlterSeqStmt *n = makeNode(PGAlterSeqStmt); + n->sequence = (yyvsp[-1].range); + n->options = (yyvsp[0].list); + n->missing_ok = false; + (yyval.node) = (PGNode *)n; + } +#line 21534 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 796: -#line 1244 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.typnam) = (yyvsp[(1) - (5)].typnam); - (yyval.typnam)->arrayBounds = list_make1(makeInteger((yyvsp[(4) - (5)].ival))); - ;} +#line 18 "third_party/libpg_query/grammar/statements/alter_sequence.y" + { + PGAlterSeqStmt *n = makeNode(PGAlterSeqStmt); + n->sequence = (yyvsp[-1].range); + n->options = (yyvsp[0].list); + n->missing_ok = true; + (yyval.node) = (PGNode *)n; + } +#line 21546 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 797: -#line 1249 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.typnam) = (yyvsp[(2) - (6)].typnam); - (yyval.typnam)->arrayBounds = list_make1(makeInteger((yyvsp[(5) - (6)].ival))); - (yyval.typnam)->setof = true; - ;} +#line 29 "third_party/libpg_query/grammar/statements/alter_sequence.y" + { (yyval.list) = list_make1((yyvsp[0].defelt)); } +#line 21552 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 798: -#line 1255 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.typnam) = (yyvsp[(1) - (2)].typnam); - (yyval.typnam)->arrayBounds = list_make1(makeInteger(-1)); - ;} +#line 30 "third_party/libpg_query/grammar/statements/alter_sequence.y" + { (yyval.list) = lappend((yyvsp[-1].list), (yyvsp[0].defelt)); } +#line 21558 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 799: -#line 1260 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.typnam) = (yyvsp[(2) - (3)].typnam); - (yyval.typnam)->arrayBounds = list_make1(makeInteger(-1)); - (yyval.typnam)->setof = true; - ;} +#line 34 "third_party/libpg_query/grammar/statements/alter_sequence.y" + {} +#line 21564 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 800: -#line 1265 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.typnam) = SystemTypeName("struct"); - (yyval.typnam)->arrayBounds = (yyvsp[(5) - (5)].list); - (yyval.typnam)->typmods = (yyvsp[(3) - (5)].list); - (yyval.typnam)->location = (yylsp[(1) - (5)]); - ;} +#line 35 "third_party/libpg_query/grammar/statements/alter_sequence.y" + {} +#line 21570 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 801: -#line 1271 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.typnam) = SystemTypeName("map"); - (yyval.typnam)->arrayBounds = (yyvsp[(5) - (5)].list); - (yyval.typnam)->typmods = (yyvsp[(3) - (5)].list); - (yyval.typnam)->location = (yylsp[(1) - (5)]); - ;} +#line 36 "third_party/libpg_query/grammar/statements/alter_sequence.y" + {} +#line 21576 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 802: -#line 1281 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = lappend((yyvsp[(1) - (3)].list), makeInteger(-1)); ;} +#line 41 "third_party/libpg_query/grammar/statements/alter_sequence.y" + { (yyval.value) = makeFloat((yyvsp[0].str)); } +#line 21582 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 803: -#line 1283 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = lappend((yyvsp[(1) - (4)].list), makeInteger((yyvsp[(3) - (4)].ival))); ;} +#line 42 "third_party/libpg_query/grammar/statements/alter_sequence.y" + { (yyval.value) = makeFloat((yyvsp[0].str)); } +#line 21588 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 804: -#line 1285 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = NIL; ;} +#line 44 "third_party/libpg_query/grammar/statements/alter_sequence.y" + { + (yyval.value) = makeFloat((yyvsp[0].str)); + doNegateFloat((yyval.value)); + } +#line 21597 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 805: -#line 1289 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.typnam) = (yyvsp[(1) - (1)].typnam); ;} +#line 48 "third_party/libpg_query/grammar/statements/alter_sequence.y" + { (yyval.value) = makeInteger((yyvsp[0].ival)); } +#line 21603 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 806: -#line 1290 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.typnam) = (yyvsp[(1) - (1)].typnam); ;} +#line 53 "third_party/libpg_query/grammar/statements/alter_sequence.y" + { + (yyval.defelt) = makeDefElem("as", (PGNode *)(yyvsp[0].typnam), (yylsp[-1])); + } +#line 21611 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 807: -#line 1291 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.typnam) = (yyvsp[(1) - (1)].typnam); ;} +#line 57 "third_party/libpg_query/grammar/statements/alter_sequence.y" + { + (yyval.defelt) = makeDefElem("cache", (PGNode *)(yyvsp[0].value), (yylsp[-1])); + } +#line 21619 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 808: -#line 1292 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.typnam) = (yyvsp[(1) - (1)].typnam); ;} +#line 61 "third_party/libpg_query/grammar/statements/alter_sequence.y" + { + (yyval.defelt) = makeDefElem("cycle", (PGNode *)makeInteger(true), (yylsp[0])); + } +#line 21627 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 809: -#line 1293 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.typnam) = (yyvsp[(1) - (1)].typnam); ;} +#line 65 "third_party/libpg_query/grammar/statements/alter_sequence.y" + { + (yyval.defelt) = makeDefElem("cycle", (PGNode *)makeInteger(false), (yylsp[-1])); + } +#line 21635 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 810: -#line 1295 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.typnam) = (yyvsp[(1) - (2)].typnam); - (yyval.typnam)->typmods = (yyvsp[(2) - (2)].list); - ;} +#line 69 "third_party/libpg_query/grammar/statements/alter_sequence.y" + { + (yyval.defelt) = makeDefElem("increment", (PGNode *)(yyvsp[0].value), (yylsp[-2])); + } +#line 21643 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 811: -#line 1300 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.typnam) = (yyvsp[(1) - (4)].typnam); - (yyval.typnam)->typmods = list_make2(makeIntConst(INTERVAL_FULL_RANGE, -1), - makeIntConst((yyvsp[(3) - (4)].ival), (yylsp[(3) - (4)]))); - ;} +#line 73 "third_party/libpg_query/grammar/statements/alter_sequence.y" + { + (yyval.defelt) = makeDefElem("maxvalue", (PGNode *)(yyvsp[0].value), (yylsp[-1])); + } +#line 21651 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 812: -#line 1319 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.typnam) = (yyvsp[(1) - (1)].typnam); ;} +#line 77 "third_party/libpg_query/grammar/statements/alter_sequence.y" + { + (yyval.defelt) = makeDefElem("minvalue", (PGNode *)(yyvsp[0].value), (yylsp[-1])); + } +#line 21659 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 813: -#line 1320 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.typnam) = (yyvsp[(1) - (1)].typnam); ;} +#line 81 "third_party/libpg_query/grammar/statements/alter_sequence.y" + { + (yyval.defelt) = makeDefElem("maxvalue", NULL, (yylsp[-1])); + } +#line 21667 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 814: -#line 1321 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.typnam) = (yyvsp[(1) - (1)].typnam); ;} +#line 85 "third_party/libpg_query/grammar/statements/alter_sequence.y" + { + (yyval.defelt) = makeDefElem("minvalue", NULL, (yylsp[-1])); + } +#line 21675 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 815: -#line 1322 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.typnam) = (yyvsp[(1) - (1)].typnam); ;} +#line 89 "third_party/libpg_query/grammar/statements/alter_sequence.y" + { + (yyval.defelt) = makeDefElem("owned_by", (PGNode *)(yyvsp[0].list), (yylsp[-2])); + } +#line 21683 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 816: -#line 1334 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.typnam) = makeTypeName((yyvsp[(1) - (2)].str)); - (yyval.typnam)->typmods = (yyvsp[(2) - (2)].list); - (yyval.typnam)->location = (yylsp[(1) - (2)]); - ;} +#line 93 "third_party/libpg_query/grammar/statements/alter_sequence.y" + { + /* not documented, only used by pg_dump */ + (yyval.defelt) = makeDefElem("sequence_name", (PGNode *)(yyvsp[0].list), (yylsp[-2])); + } +#line 21692 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 817: -#line 1347 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = (yyvsp[(2) - (3)].list); ;} +#line 98 "third_party/libpg_query/grammar/statements/alter_sequence.y" + { + (yyval.defelt) = makeDefElem("start", (PGNode *)(yyvsp[0].value), (yylsp[-2])); + } +#line 21700 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 818: -#line 1348 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = NIL; ;} +#line 102 "third_party/libpg_query/grammar/statements/alter_sequence.y" + { + (yyval.defelt) = makeDefElem("restart", NULL, (yylsp[0])); + } +#line 21708 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 819: -#line 1355 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.typnam) = SystemTypeName("int4"); - (yyval.typnam)->location = (yylsp[(1) - (1)]); - ;} +#line 106 "third_party/libpg_query/grammar/statements/alter_sequence.y" + { + (yyval.defelt) = makeDefElem("restart", (PGNode *)(yyvsp[0].value), (yylsp[-2])); + } +#line 21716 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 820: -#line 1360 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.typnam) = SystemTypeName("int4"); - (yyval.typnam)->location = (yylsp[(1) - (1)]); - ;} +#line 112 "third_party/libpg_query/grammar/statements/alter_sequence.y" + {} +#line 21722 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 821: -#line 1365 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.typnam) = SystemTypeName("int2"); - (yyval.typnam)->location = (yylsp[(1) - (1)]); - ;} +#line 113 "third_party/libpg_query/grammar/statements/alter_sequence.y" + {} +#line 21728 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 822: -#line 1370 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.typnam) = SystemTypeName("int8"); - (yyval.typnam)->location = (yylsp[(1) - (1)]); - ;} +#line 117 "third_party/libpg_query/grammar/statements/alter_sequence.y" + { (yyval.ival) = (yyvsp[0].ival); } +#line 21734 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 823: -#line 1375 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.typnam) = SystemTypeName("float4"); - (yyval.typnam)->location = (yylsp[(1) - (1)]); - ;} +#line 118 "third_party/libpg_query/grammar/statements/alter_sequence.y" + { (yyval.ival) = + (yyvsp[0].ival); } +#line 21740 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 824: -#line 1380 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.typnam) = (yyvsp[(2) - (2)].typnam); - (yyval.typnam)->location = (yylsp[(1) - (2)]); - ;} +#line 119 "third_party/libpg_query/grammar/statements/alter_sequence.y" + { (yyval.ival) = - (yyvsp[0].ival); } +#line 21746 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 825: -#line 1385 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.typnam) = SystemTypeName("float8"); - (yyval.typnam)->location = (yylsp[(1) - (2)]); - ;} +#line 8 "third_party/libpg_query/grammar/statements/deallocate.y" + { + PGDeallocateStmt *n = makeNode(PGDeallocateStmt); + n->name = (yyvsp[0].str); + (yyval.node) = (PGNode *) n; + } +#line 21756 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 826: -#line 1390 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.typnam) = SystemTypeName("numeric"); - (yyval.typnam)->typmods = (yyvsp[(2) - (2)].list); - (yyval.typnam)->location = (yylsp[(1) - (2)]); - ;} +#line 14 "third_party/libpg_query/grammar/statements/deallocate.y" + { + PGDeallocateStmt *n = makeNode(PGDeallocateStmt); + n->name = (yyvsp[0].str); + (yyval.node) = (PGNode *) n; + } +#line 21766 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 827: -#line 1396 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.typnam) = SystemTypeName("numeric"); - (yyval.typnam)->typmods = (yyvsp[(2) - (2)].list); - (yyval.typnam)->location = (yylsp[(1) - (2)]); - ;} +#line 20 "third_party/libpg_query/grammar/statements/deallocate.y" + { + PGDeallocateStmt *n = makeNode(PGDeallocateStmt); + n->name = NULL; + (yyval.node) = (PGNode *) n; + } +#line 21776 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 828: -#line 1402 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.typnam) = SystemTypeName("numeric"); - (yyval.typnam)->typmods = (yyvsp[(2) - (2)].list); - (yyval.typnam)->location = (yylsp[(1) - (2)]); - ;} +#line 26 "third_party/libpg_query/grammar/statements/deallocate.y" + { + PGDeallocateStmt *n = makeNode(PGDeallocateStmt); + n->name = NULL; + (yyval.node) = (PGNode *) n; + } +#line 21786 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 829: -#line 1408 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.typnam) = SystemTypeName("bool"); - (yyval.typnam)->location = (yylsp[(1) - (1)]); - ;} - break; - - case 830: -#line 1415 "third_party/libpg_query/grammar/statements/select.y" - { - /* - * Check FLOAT() precision limits assuming IEEE floating - * types - thomas 1997-09-18 - */ - if ((yyvsp[(2) - (3)].ival) < 1) - ereport(ERROR, - (errcode(PG_ERRCODE_INVALID_PARAMETER_VALUE), - errmsg("precision for type float must be at least 1 bit"), - parser_errposition((yylsp[(2) - (3)])))); - else if ((yyvsp[(2) - (3)].ival) <= 24) - (yyval.typnam) = SystemTypeName("float4"); - else if ((yyvsp[(2) - (3)].ival) <= 53) - (yyval.typnam) = SystemTypeName("float8"); - else - ereport(ERROR, - (errcode(PG_ERRCODE_INVALID_PARAMETER_VALUE), - errmsg("precision for type float must be less than 54 bits"), - parser_errposition((yylsp[(2) - (3)])))); - ;} +#line 9 "third_party/libpg_query/grammar/statements/create.y" + { + PGCreateStmt *n = makeNode(PGCreateStmt); + (yyvsp[-5].range)->relpersistence = (yyvsp[-7].ival); + n->relation = (yyvsp[-5].range); + n->tableElts = (yyvsp[-3].list); + n->ofTypename = NULL; + n->constraints = NIL; + n->options = (yyvsp[-1].list); + n->oncommit = (yyvsp[0].oncommit); + n->onconflict = PG_ERROR_ON_CONFLICT; + (yyval.node) = (PGNode *)n; + } +#line 21803 "third_party/libpg_query/grammar/grammar_out.cpp" + break; + + case 830: +#line 24 "third_party/libpg_query/grammar/statements/create.y" + { + PGCreateStmt *n = makeNode(PGCreateStmt); + (yyvsp[-5].range)->relpersistence = (yyvsp[-10].ival); + n->relation = (yyvsp[-5].range); + n->tableElts = (yyvsp[-3].list); + n->ofTypename = NULL; + n->constraints = NIL; + n->options = (yyvsp[-1].list); + n->oncommit = (yyvsp[0].oncommit); + n->onconflict = PG_IGNORE_ON_CONFLICT; + (yyval.node) = (PGNode *)n; + } +#line 21820 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 831: -#line 1436 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.typnam) = SystemTypeName("float4"); - ;} +#line 39 "third_party/libpg_query/grammar/statements/create.y" + { + PGCreateStmt *n = makeNode(PGCreateStmt); + (yyvsp[-5].range)->relpersistence = (yyvsp[-7].ival); + n->relation = (yyvsp[-5].range); + n->tableElts = (yyvsp[-3].list); + n->ofTypename = NULL; + n->constraints = NIL; + n->options = (yyvsp[-1].list); + n->oncommit = (yyvsp[0].oncommit); + n->onconflict = PG_REPLACE_ON_CONFLICT; + (yyval.node) = (PGNode *)n; + } +#line 21837 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 832: -#line 1446 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.typnam) = (yyvsp[(1) - (1)].typnam); - ;} +#line 56 "third_party/libpg_query/grammar/statements/create.y" + { (yyval.ival) = 0; } +#line 21843 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 833: -#line 1450 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.typnam) = (yyvsp[(1) - (1)].typnam); - ;} +#line 58 "third_party/libpg_query/grammar/statements/create.y" + { + /* + * We must complain about conflicting options. + * We could, but choose not to, complain about redundant + * options (ie, where $2's bit is already set in $1). + */ + int newspec = (yyvsp[-1].ival) | (yyvsp[0].ival); + + /* special message for this case */ + if ((newspec & (CAS_NOT_DEFERRABLE | CAS_INITIALLY_DEFERRED)) == (CAS_NOT_DEFERRABLE | CAS_INITIALLY_DEFERRED)) + ereport(ERROR, + (errcode(PG_ERRCODE_SYNTAX_ERROR), + errmsg("constraint declared INITIALLY DEFERRED must be DEFERRABLE"), + parser_errposition((yylsp[0])))); + /* generic message for other conflicts */ + if ((newspec & (CAS_NOT_DEFERRABLE | CAS_DEFERRABLE)) == (CAS_NOT_DEFERRABLE | CAS_DEFERRABLE) || + (newspec & (CAS_INITIALLY_IMMEDIATE | CAS_INITIALLY_DEFERRED)) == (CAS_INITIALLY_IMMEDIATE | CAS_INITIALLY_DEFERRED)) + ereport(ERROR, + (errcode(PG_ERRCODE_SYNTAX_ERROR), + errmsg("conflicting constraint properties"), + parser_errposition((yylsp[0])))); + (yyval.ival) = newspec; + } +#line 21871 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 834: -#line 1458 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.typnam) = (yyvsp[(1) - (1)].typnam); - ;} +#line 84 "third_party/libpg_query/grammar/statements/create.y" + { (yyval.node) = (PGNode *)(yyvsp[0].typnam); } +#line 21877 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 835: -#line 1462 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.typnam) = (yyvsp[(1) - (1)].typnam); - (yyval.typnam)->typmods = NIL; - ;} +#line 85 "third_party/libpg_query/grammar/statements/create.y" + { (yyval.node) = (PGNode *)makeString(pstrdup((yyvsp[0].keyword))); } +#line 21883 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 836: -#line 1470 "third_party/libpg_query/grammar/statements/select.y" - { - const char *typname; - - typname = (yyvsp[(2) - (5)].boolean) ? "varbit" : "bit"; - (yyval.typnam) = SystemTypeName(typname); - (yyval.typnam)->typmods = (yyvsp[(4) - (5)].list); - (yyval.typnam)->location = (yylsp[(1) - (5)]); - ;} +#line 86 "third_party/libpg_query/grammar/statements/create.y" + { (yyval.node) = (PGNode *)(yyvsp[0].list); } +#line 21889 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 837: -#line 1482 "third_party/libpg_query/grammar/statements/select.y" - { - /* bit defaults to bit(1), varbit to no limit */ - if ((yyvsp[(2) - (2)].boolean)) - { - (yyval.typnam) = SystemTypeName("varbit"); - } - else - { - (yyval.typnam) = SystemTypeName("bit"); - (yyval.typnam)->typmods = list_make1(makeIntConst(1, -1)); - } - (yyval.typnam)->location = (yylsp[(1) - (2)]); - ;} +#line 87 "third_party/libpg_query/grammar/statements/create.y" + { (yyval.node) = (PGNode *)(yyvsp[0].value); } +#line 21895 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 838: -#line 1503 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.typnam) = (yyvsp[(1) - (1)].typnam); - ;} +#line 88 "third_party/libpg_query/grammar/statements/create.y" + { (yyval.node) = (PGNode *)makeString((yyvsp[0].str)); } +#line 21901 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 839: -#line 1507 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.typnam) = (yyvsp[(1) - (1)].typnam); - ;} +#line 89 "third_party/libpg_query/grammar/statements/create.y" + { (yyval.node) = (PGNode *)makeString(pstrdup((yyvsp[0].keyword))); } +#line 21907 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 840: -#line 1513 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.typnam) = (yyvsp[(1) - (1)].typnam); - ;} +#line 93 "third_party/libpg_query/grammar/statements/create.y" + { (yyval.list) = (yyvsp[-1].list); } +#line 21913 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 841: -#line 1517 "third_party/libpg_query/grammar/statements/select.y" - { - /* Length was not specified so allow to be unrestricted. - * This handles problems with fixed-length (bpchar) strings - * which in column definitions must default to a length - * of one, but should not be constrained if the length - * was not specified. - */ - (yyval.typnam) = (yyvsp[(1) - (1)].typnam); - (yyval.typnam)->typmods = NIL; - ;} +#line 94 "third_party/libpg_query/grammar/statements/create.y" + { (yyval.list) = NIL; } +#line 21919 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 842: -#line 1530 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.typnam) = SystemTypeName((yyvsp[(1) - (4)].conststr)); - (yyval.typnam)->typmods = list_make1(makeIntConst((yyvsp[(3) - (4)].ival), (yylsp[(3) - (4)]))); - (yyval.typnam)->location = (yylsp[(1) - (4)]); - ;} +#line 99 "third_party/libpg_query/grammar/statements/create.y" + { (yyval.node) = (PGNode *) makeString((yyvsp[0].str)); } +#line 21925 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 843: -#line 1538 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.typnam) = SystemTypeName((yyvsp[(1) - (1)].conststr)); - /* char defaults to char(1), varchar to no limit */ - if (strcmp((yyvsp[(1) - (1)].conststr), "bpchar") == 0) - (yyval.typnam)->typmods = list_make1(makeIntConst(1, -1)); - (yyval.typnam)->location = (yylsp[(1) - (1)]); - ;} +#line 104 "third_party/libpg_query/grammar/statements/create.y" + { (yyval.ival) = PG_FKCONSTR_ACTION_NOACTION; } +#line 21931 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 844: -#line 1548 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.conststr) = (yyvsp[(2) - (2)].boolean) ? "varchar": "bpchar"; ;} +#line 105 "third_party/libpg_query/grammar/statements/create.y" + { (yyval.ival) = PG_FKCONSTR_ACTION_RESTRICT; } +#line 21937 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 845: -#line 1550 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.conststr) = (yyvsp[(2) - (2)].boolean) ? "varchar": "bpchar"; ;} +#line 106 "third_party/libpg_query/grammar/statements/create.y" + { (yyval.ival) = PG_FKCONSTR_ACTION_CASCADE; } +#line 21943 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 846: -#line 1552 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.conststr) = "varchar"; ;} +#line 107 "third_party/libpg_query/grammar/statements/create.y" + { (yyval.ival) = PG_FKCONSTR_ACTION_SETNULL; } +#line 21949 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 847: -#line 1554 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.conststr) = (yyvsp[(3) - (3)].boolean) ? "varchar": "bpchar"; ;} +#line 108 "third_party/libpg_query/grammar/statements/create.y" + { (yyval.ival) = PG_FKCONSTR_ACTION_SETDEFAULT; } +#line 21955 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 848: -#line 1556 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.conststr) = (yyvsp[(3) - (3)].boolean) ? "varchar": "bpchar"; ;} +#line 114 "third_party/libpg_query/grammar/statements/create.y" + { + PGConstraint *n = castNode(PGConstraint, (yyvsp[0].node)); + n->conname = (yyvsp[-1].str); + n->location = (yylsp[-2]); + (yyval.node) = (PGNode *) n; + } +#line 21966 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 849: -#line 1558 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.conststr) = (yyvsp[(2) - (2)].boolean) ? "varchar": "bpchar"; ;} +#line 120 "third_party/libpg_query/grammar/statements/create.y" + { (yyval.node) = (yyvsp[0].node); } +#line 21972 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 850: -#line 1562 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.boolean) = true; ;} +#line 121 "third_party/libpg_query/grammar/statements/create.y" + { (yyval.node) = (yyvsp[0].node); } +#line 21978 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 851: -#line 1563 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.boolean) = false; ;} +#line 123 "third_party/libpg_query/grammar/statements/create.y" + { + /* + * Note: the PGCollateClause is momentarily included in + * the list built by ColQualList, but we split it out + * again in SplitColQualList. + */ + PGCollateClause *n = makeNode(PGCollateClause); + n->arg = NULL; + n->collname = (yyvsp[0].list); + n->location = (yylsp[-1]); + (yyval.node) = (PGNode *) n; + } +#line 21995 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 852: -#line 1571 "third_party/libpg_query/grammar/statements/select.y" - { - if ((yyvsp[(5) - (5)].boolean)) - (yyval.typnam) = SystemTypeName("timestamptz"); - else - (yyval.typnam) = SystemTypeName("timestamp"); - (yyval.typnam)->typmods = list_make1(makeIntConst((yyvsp[(3) - (5)].ival), (yylsp[(3) - (5)]))); - (yyval.typnam)->location = (yylsp[(1) - (5)]); - ;} +#line 140 "third_party/libpg_query/grammar/statements/create.y" + { + PGConstraint *n = makeNode(PGConstraint); + n->contype = PG_CONSTR_NOTNULL; + n->location = (yylsp[-1]); + (yyval.node) = (PGNode *)n; + } +#line 22006 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 853: -#line 1580 "third_party/libpg_query/grammar/statements/select.y" - { - if ((yyvsp[(2) - (2)].boolean)) - (yyval.typnam) = SystemTypeName("timestamptz"); - else - (yyval.typnam) = SystemTypeName("timestamp"); - (yyval.typnam)->location = (yylsp[(1) - (2)]); - ;} +#line 147 "third_party/libpg_query/grammar/statements/create.y" + { + PGConstraint *n = makeNode(PGConstraint); + n->contype = PG_CONSTR_NULL; + n->location = (yylsp[0]); + (yyval.node) = (PGNode *)n; + } +#line 22017 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 854: -#line 1588 "third_party/libpg_query/grammar/statements/select.y" - { - if ((yyvsp[(5) - (5)].boolean)) - (yyval.typnam) = SystemTypeName("timetz"); - else - (yyval.typnam) = SystemTypeName("time"); - (yyval.typnam)->typmods = list_make1(makeIntConst((yyvsp[(3) - (5)].ival), (yylsp[(3) - (5)]))); - (yyval.typnam)->location = (yylsp[(1) - (5)]); - ;} +#line 154 "third_party/libpg_query/grammar/statements/create.y" + { + PGConstraint *n = makeNode(PGConstraint); + n->contype = PG_CONSTR_UNIQUE; + n->location = (yylsp[-1]); + n->keys = NULL; + n->options = (yyvsp[0].list); + n->indexname = NULL; + (yyval.node) = (PGNode *)n; + } +#line 22031 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 855: -#line 1597 "third_party/libpg_query/grammar/statements/select.y" - { - if ((yyvsp[(2) - (2)].boolean)) - (yyval.typnam) = SystemTypeName("timetz"); - else - (yyval.typnam) = SystemTypeName("time"); - (yyval.typnam)->location = (yylsp[(1) - (2)]); - ;} - break; - - case 856: -#line 1608 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.typnam) = SystemTypeName("interval"); - (yyval.typnam)->location = (yylsp[(1) - (1)]); - ;} - break; - - case 857: -#line 1615 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.boolean) = true; ;} - break; - - case 858: -#line 1616 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.boolean) = false; ;} - break; - - case 859: -#line 1617 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.boolean) = false; ;} - break; - - case 876: -#line 1646 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(YEAR), (yylsp[(1) - (1)]))); ;} - break; - - case 877: -#line 1648 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(MONTH), (yylsp[(1) - (1)]))); ;} - break; - - case 878: -#line 1650 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(DAY), (yylsp[(1) - (1)]))); ;} - break; - - case 879: -#line 1652 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(HOUR), (yylsp[(1) - (1)]))); ;} - break; - - case 880: -#line 1654 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(MINUTE), (yylsp[(1) - (1)]))); ;} - break; - - case 881: -#line 1656 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(SECOND), (yylsp[(1) - (1)]))); ;} - break; - - case 882: -#line 1658 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(MILLISECOND), (yylsp[(1) - (1)]))); ;} - break; - - case 883: -#line 1660 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(MICROSECOND), (yylsp[(1) - (1)]))); ;} - break; - - case 884: -#line 1662 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(YEAR) | - INTERVAL_MASK(MONTH), (yylsp[(1) - (3)]))); - ;} - break; - - case 885: -#line 1667 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(DAY) | - INTERVAL_MASK(HOUR), (yylsp[(1) - (3)]))); - ;} - break; - - case 886: -#line 1672 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(DAY) | - INTERVAL_MASK(HOUR) | - INTERVAL_MASK(MINUTE), (yylsp[(1) - (3)]))); - ;} - break; - - case 887: -#line 1678 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(DAY) | - INTERVAL_MASK(HOUR) | - INTERVAL_MASK(MINUTE) | - INTERVAL_MASK(SECOND), (yylsp[(1) - (3)]))); - ;} - break; - - case 888: -#line 1685 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(HOUR) | - INTERVAL_MASK(MINUTE), (yylsp[(1) - (3)]))); - ;} - break; - - case 889: -#line 1690 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(HOUR) | - INTERVAL_MASK(MINUTE) | - INTERVAL_MASK(SECOND), (yylsp[(1) - (3)]))); - ;} - break; - - case 890: -#line 1696 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(MINUTE) | - INTERVAL_MASK(SECOND), (yylsp[(1) - (3)]))); - ;} +#line 164 "third_party/libpg_query/grammar/statements/create.y" + { + PGConstraint *n = makeNode(PGConstraint); + n->contype = PG_CONSTR_PRIMARY; + n->location = (yylsp[-2]); + n->keys = NULL; + n->options = (yyvsp[0].list); + n->indexname = NULL; + (yyval.node) = (PGNode *)n; + } +#line 22045 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 891: -#line 1701 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = NIL; ;} + case 856: +#line 174 "third_party/libpg_query/grammar/statements/create.y" + { + PGConstraint *n = makeNode(PGConstraint); + n->contype = PG_CONSTR_CHECK; + n->location = (yylsp[-4]); + n->is_no_inherit = (yyvsp[0].boolean); + n->raw_expr = (yyvsp[-2].node); + n->cooked_expr = NULL; + n->skip_validation = false; + n->initially_valid = true; + (yyval.node) = (PGNode *)n; + } +#line 22061 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 892: -#line 1732 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.node) = (yyvsp[(1) - (1)].node); ;} + case 857: +#line 186 "third_party/libpg_query/grammar/statements/create.y" + { + PGConstraint *n = makeNode(PGConstraint); + n->contype = PG_CONSTR_COMPRESSION; + n->location = (yylsp[-2]); + n->compression_name = (yyvsp[0].str); + (yyval.node) = (PGNode *)n; + } +#line 22073 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 893: -#line 1735 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.node) = makeTypeCast((yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].typnam), 0, (yylsp[(2) - (3)])); ;} + case 858: +#line 194 "third_party/libpg_query/grammar/statements/create.y" + { + PGConstraint *n = makeNode(PGConstraint); + n->contype = PG_CONSTR_DEFAULT; + n->location = (yylsp[-1]); + n->raw_expr = (yyvsp[0].node); + n->cooked_expr = NULL; + (yyval.node) = (PGNode *)n; + } +#line 22086 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 894: -#line 1737 "third_party/libpg_query/grammar/statements/select.y" - { - PGCollateClause *n = makeNode(PGCollateClause); - n->arg = (yyvsp[(1) - (3)].node); - n->collname = (yyvsp[(3) - (3)].list); - n->location = (yylsp[(2) - (3)]); - (yyval.node) = (PGNode *) n; - ;} + case 859: +#line 203 "third_party/libpg_query/grammar/statements/create.y" + { + PGConstraint *n = makeNode(PGConstraint); + n->contype = PG_CONSTR_FOREIGN; + n->location = (yylsp[-4]); + n->pktable = (yyvsp[-3].range); + n->fk_attrs = NIL; + n->pk_attrs = (yyvsp[-2].list); + n->fk_matchtype = (yyvsp[-1].ival); + n->fk_upd_action = (char) ((yyvsp[0].ival) >> 8); + n->fk_del_action = (char) ((yyvsp[0].ival) & 0xFF); + n->skip_validation = false; + n->initially_valid = true; + (yyval.node) = (PGNode *)n; + } +#line 22105 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 895: -#line 1745 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.node) = (PGNode *) makeFuncCall(SystemFuncName("timezone"), - list_make2((yyvsp[(5) - (5)].node), (yyvsp[(1) - (5)].node)), - (yylsp[(2) - (5)])); - ;} + case 860: +#line 220 "third_party/libpg_query/grammar/statements/create.y" + { (yyval.constr) = PG_CONSTR_GENERATED_VIRTUAL; } +#line 22111 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 896: -#line 1760 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, "+", NULL, (yyvsp[(2) - (2)].node), (yylsp[(1) - (2)])); ;} + case 861: +#line 221 "third_party/libpg_query/grammar/statements/create.y" + { (yyval.constr) = PG_CONSTR_GENERATED_STORED; } +#line 22117 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 897: -#line 1762 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.node) = doNegate((yyvsp[(2) - (2)].node), (yylsp[(1) - (2)])); ;} + case 862: +#line 225 "third_party/libpg_query/grammar/statements/create.y" + { (yyval.constr) = (yyvsp[0].constr); } +#line 22123 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 898: -#line 1764 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, "+", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} + case 863: +#line 226 "third_party/libpg_query/grammar/statements/create.y" + { (yyval.constr) = PG_CONSTR_GENERATED_VIRTUAL; } +#line 22129 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 899: -#line 1766 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, "-", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} + case 864: +#line 231 "third_party/libpg_query/grammar/statements/create.y" + { + PGConstraint *n = makeNode(PGConstraint); + n->contype = PG_CONSTR_IDENTITY; + n->generated_when = (yyvsp[-3].ival); + n->options = (yyvsp[0].list); + n->location = (yylsp[-4]); + (yyval.node) = (PGNode *)n; + } +#line 22142 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 900: -#line 1768 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, "*", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} - break; + case 865: +#line 240 "third_party/libpg_query/grammar/statements/create.y" + { + PGConstraint *n = makeNode(PGConstraint); + n->contype = (yyvsp[0].constr); + n->generated_when = (yyvsp[-5].ival); + n->raw_expr = (yyvsp[-2].node); + n->cooked_expr = NULL; + n->location = (yylsp[-6]); - case 901: -#line 1770 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, "/", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} - break; + /* + * Can't do this in the grammar because of shift/reduce + * conflicts. (IDENTITY allows both ALWAYS and BY + * DEFAULT, but generated columns only allow ALWAYS.) We + * can also give a more useful error message and location. + */ + if ((yyvsp[-5].ival) != PG_ATTRIBUTE_IDENTITY_ALWAYS) + ereport(ERROR, + (errcode(PG_ERRCODE_SYNTAX_ERROR), + errmsg("for a generated column, GENERATED ALWAYS must be specified"), + parser_errposition((yylsp[-5])))); - case 902: -#line 1772 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, "%", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} + (yyval.node) = (PGNode *)n; + } +#line 22169 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 903: -#line 1774 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, "^", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} + case 866: +#line 263 "third_party/libpg_query/grammar/statements/create.y" + { + PGConstraint *n = makeNode(PGConstraint); + n->contype = (yyvsp[0].constr); + n->generated_when = PG_ATTRIBUTE_IDENTITY_ALWAYS; + n->raw_expr = (yyvsp[-2].node); + n->cooked_expr = NULL; + n->location = (yylsp[-4]); + (yyval.node) = (PGNode *)n; + } +#line 22183 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 904: -#line 1776 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, "**", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} + case 867: +#line 277 "third_party/libpg_query/grammar/statements/create.y" + { + (yyval.defelt) = makeDefElem((yyvsp[-1].str), (yyvsp[0].node), (yylsp[-1])); + } +#line 22191 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 905: -#line 1778 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, "<", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} + case 868: +#line 283 "third_party/libpg_query/grammar/statements/create.y" + { (yyval.ival) = (yyvsp[0].ival); } +#line 22197 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 906: -#line 1780 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, ">", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} + case 869: +#line 289 "third_party/libpg_query/grammar/statements/create.y" + { (yyval.ival) = ((yyvsp[0].ival) << 8) | (PG_FKCONSTR_ACTION_NOACTION & 0xFF); } +#line 22203 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 907: -#line 1782 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, "=", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} + case 870: +#line 291 "third_party/libpg_query/grammar/statements/create.y" + { (yyval.ival) = (PG_FKCONSTR_ACTION_NOACTION << 8) | ((yyvsp[0].ival) & 0xFF); } +#line 22209 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 908: -#line 1784 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, "<=", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} + case 871: +#line 293 "third_party/libpg_query/grammar/statements/create.y" + { (yyval.ival) = ((yyvsp[-1].ival) << 8) | ((yyvsp[0].ival) & 0xFF); } +#line 22215 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 909: -#line 1786 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, ">=", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} + case 872: +#line 295 "third_party/libpg_query/grammar/statements/create.y" + { (yyval.ival) = ((yyvsp[0].ival) << 8) | ((yyvsp[-1].ival) & 0xFF); } +#line 22221 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 910: -#line 1788 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, "<>", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} + case 873: +#line 297 "third_party/libpg_query/grammar/statements/create.y" + { (yyval.ival) = (PG_FKCONSTR_ACTION_NOACTION << 8) | (PG_FKCONSTR_ACTION_NOACTION & 0xFF); } +#line 22227 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 911: -#line 1791 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.node) = (PGNode *) makeAExpr(PG_AEXPR_OP, (yyvsp[(2) - (3)].list), (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} + case 874: +#line 300 "third_party/libpg_query/grammar/statements/create.y" + { (yyval.oncommit) = ONCOMMIT_DROP; } +#line 22233 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 912: -#line 1793 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.node) = (PGNode *) makeAExpr(PG_AEXPR_OP, (yyvsp[(1) - (2)].list), NULL, (yyvsp[(2) - (2)].node), (yylsp[(1) - (2)])); ;} + case 875: +#line 301 "third_party/libpg_query/grammar/statements/create.y" + { (yyval.oncommit) = PG_ONCOMMIT_DELETE_ROWS; } +#line 22239 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 913: -#line 1795 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.node) = (PGNode *) makeAExpr(PG_AEXPR_OP, (yyvsp[(2) - (2)].list), (yyvsp[(1) - (2)].node), NULL, (yylsp[(2) - (2)])); ;} + case 876: +#line 302 "third_party/libpg_query/grammar/statements/create.y" + { (yyval.oncommit) = PG_ONCOMMIT_PRESERVE_ROWS; } +#line 22245 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 914: -#line 1798 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.node) = makeAndExpr((yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} + case 877: +#line 303 "third_party/libpg_query/grammar/statements/create.y" + { (yyval.oncommit) = PG_ONCOMMIT_NOOP; } +#line 22251 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 915: -#line 1800 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.node) = makeOrExpr((yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} + case 878: +#line 308 "third_party/libpg_query/grammar/statements/create.y" + { (yyval.list) = (yyvsp[-1].list); } +#line 22257 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 916: -#line 1802 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.node) = makeNotExpr((yyvsp[(2) - (2)].node), (yylsp[(1) - (2)])); ;} + case 879: +#line 312 "third_party/libpg_query/grammar/statements/create.y" + { (yyval.boolean) = true; } +#line 22263 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 917: -#line 1804 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.node) = makeNotExpr((yyvsp[(2) - (2)].node), (yylsp[(1) - (2)])); ;} + case 880: +#line 313 "third_party/libpg_query/grammar/statements/create.y" + { (yyval.boolean) = false; } +#line 22269 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 918: -#line 1806 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_GLOB, "~~~", - (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); - ;} + case 881: +#line 319 "third_party/libpg_query/grammar/statements/create.y" + { + PGConstraint *n = castNode(PGConstraint, (yyvsp[0].node)); + n->conname = (yyvsp[-1].str); + n->location = (yylsp[-2]); + (yyval.node) = (PGNode *) n; + } +#line 22280 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 919: -#line 1811 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_LIKE, "~~", - (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); - ;} + case 882: +#line 325 "third_party/libpg_query/grammar/statements/create.y" + { (yyval.node) = (yyvsp[0].node); } +#line 22286 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 920: -#line 1816 "third_party/libpg_query/grammar/statements/select.y" - { - PGFuncCall *n = makeFuncCall(SystemFuncName("like_escape"), - list_make3((yyvsp[(1) - (5)].node), (yyvsp[(3) - (5)].node), (yyvsp[(5) - (5)].node)), - (yylsp[(2) - (5)])); - (yyval.node) = (PGNode *) n; - ;} + case 883: +#line 330 "third_party/libpg_query/grammar/statements/create.y" + { (yyval.ival) = PG_CREATE_TABLE_LIKE_COMMENTS; } +#line 22292 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 921: -#line 1823 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_LIKE, "!~~", - (yyvsp[(1) - (4)].node), (yyvsp[(4) - (4)].node), (yylsp[(2) - (4)])); - ;} + case 884: +#line 331 "third_party/libpg_query/grammar/statements/create.y" + { (yyval.ival) = PG_CREATE_TABLE_LIKE_CONSTRAINTS; } +#line 22298 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 922: -#line 1828 "third_party/libpg_query/grammar/statements/select.y" - { - PGFuncCall *n = makeFuncCall(SystemFuncName("not_like_escape"), - list_make3((yyvsp[(1) - (6)].node), (yyvsp[(4) - (6)].node), (yyvsp[(6) - (6)].node)), - (yylsp[(2) - (6)])); - (yyval.node) = (PGNode *) n; - ;} + case 885: +#line 332 "third_party/libpg_query/grammar/statements/create.y" + { (yyval.ival) = PG_CREATE_TABLE_LIKE_DEFAULTS; } +#line 22304 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 923: -#line 1835 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_ILIKE, "~~*", - (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); - ;} + case 886: +#line 333 "third_party/libpg_query/grammar/statements/create.y" + { (yyval.ival) = PG_CREATE_TABLE_LIKE_IDENTITY; } +#line 22310 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 924: -#line 1840 "third_party/libpg_query/grammar/statements/select.y" - { - PGFuncCall *n = makeFuncCall(SystemFuncName("ilike_escape"), - list_make3((yyvsp[(1) - (5)].node), (yyvsp[(3) - (5)].node), (yyvsp[(5) - (5)].node)), - (yylsp[(2) - (5)])); - (yyval.node) = (PGNode *) n; - ;} + case 887: +#line 334 "third_party/libpg_query/grammar/statements/create.y" + { (yyval.ival) = PG_CREATE_TABLE_LIKE_INDEXES; } +#line 22316 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 925: -#line 1847 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_ILIKE, "!~~*", - (yyvsp[(1) - (4)].node), (yyvsp[(4) - (4)].node), (yylsp[(2) - (4)])); - ;} + case 888: +#line 335 "third_party/libpg_query/grammar/statements/create.y" + { (yyval.ival) = PG_CREATE_TABLE_LIKE_STATISTICS; } +#line 22322 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 926: -#line 1852 "third_party/libpg_query/grammar/statements/select.y" - { - PGFuncCall *n = makeFuncCall(SystemFuncName("not_ilike_escape"), - list_make3((yyvsp[(1) - (6)].node), (yyvsp[(4) - (6)].node), (yyvsp[(6) - (6)].node)), - (yylsp[(2) - (6)])); - (yyval.node) = (PGNode *) n; - ;} + case 889: +#line 336 "third_party/libpg_query/grammar/statements/create.y" + { (yyval.ival) = PG_CREATE_TABLE_LIKE_STORAGE; } +#line 22328 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 927: -#line 1860 "third_party/libpg_query/grammar/statements/select.y" - { - PGFuncCall *n = makeFuncCall(SystemFuncName("similar_escape"), - list_make2((yyvsp[(4) - (4)].node), makeNullAConst(-1)), - (yylsp[(2) - (4)])); - (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_SIMILAR, "~", - (yyvsp[(1) - (4)].node), (PGNode *) n, (yylsp[(2) - (4)])); - ;} + case 890: +#line 337 "third_party/libpg_query/grammar/statements/create.y" + { (yyval.ival) = PG_CREATE_TABLE_LIKE_ALL; } +#line 22334 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 928: -#line 1868 "third_party/libpg_query/grammar/statements/select.y" - { - PGFuncCall *n = makeFuncCall(SystemFuncName("similar_escape"), - list_make2((yyvsp[(4) - (6)].node), (yyvsp[(6) - (6)].node)), - (yylsp[(2) - (6)])); - (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_SIMILAR, "~", - (yyvsp[(1) - (6)].node), (PGNode *) n, (yylsp[(2) - (6)])); - ;} + case 891: +#line 343 "third_party/libpg_query/grammar/statements/create.y" + { (yyval.list) = list_make1((yyvsp[0].defelt)); } +#line 22340 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 929: -#line 1876 "third_party/libpg_query/grammar/statements/select.y" - { - PGFuncCall *n = makeFuncCall(SystemFuncName("similar_escape"), - list_make2((yyvsp[(5) - (5)].node), makeNullAConst(-1)), - (yylsp[(2) - (5)])); - (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_SIMILAR, "!~", - (yyvsp[(1) - (5)].node), (PGNode *) n, (yylsp[(2) - (5)])); - ;} + case 892: +#line 344 "third_party/libpg_query/grammar/statements/create.y" + { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].defelt)); } +#line 22346 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 930: -#line 1884 "third_party/libpg_query/grammar/statements/select.y" - { - PGFuncCall *n = makeFuncCall(SystemFuncName("similar_escape"), - list_make2((yyvsp[(5) - (7)].node), (yyvsp[(7) - (7)].node)), - (yylsp[(2) - (7)])); - (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_SIMILAR, "!~", - (yyvsp[(1) - (7)].node), (PGNode *) n, (yylsp[(2) - (7)])); - ;} + case 893: +#line 348 "third_party/libpg_query/grammar/statements/create.y" + { (yyval.str) = (yyvsp[0].str); } +#line 22352 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 931: -#line 1902 "third_party/libpg_query/grammar/statements/select.y" - { - PGNullTest *n = makeNode(PGNullTest); - n->arg = (PGExpr *) (yyvsp[(1) - (3)].node); - n->nulltesttype = PG_IS_NULL; - n->location = (yylsp[(2) - (3)]); + case 894: +#line 354 "third_party/libpg_query/grammar/statements/create.y" + { + PGConstraint *n = makeNode(PGConstraint); + n->contype = PG_CONSTR_ATTR_DEFERRABLE; + n->location = (yylsp[0]); (yyval.node) = (PGNode *)n; - ;} + } +#line 22363 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 932: -#line 1910 "third_party/libpg_query/grammar/statements/select.y" - { - PGNullTest *n = makeNode(PGNullTest); - n->arg = (PGExpr *) (yyvsp[(1) - (2)].node); - n->nulltesttype = PG_IS_NULL; - n->location = (yylsp[(2) - (2)]); + case 895: +#line 361 "third_party/libpg_query/grammar/statements/create.y" + { + PGConstraint *n = makeNode(PGConstraint); + n->contype = PG_CONSTR_ATTR_NOT_DEFERRABLE; + n->location = (yylsp[-1]); (yyval.node) = (PGNode *)n; - ;} + } +#line 22374 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 933: -#line 1918 "third_party/libpg_query/grammar/statements/select.y" - { - PGNullTest *n = makeNode(PGNullTest); - n->arg = (PGExpr *) (yyvsp[(1) - (4)].node); - n->nulltesttype = IS_NOT_NULL; - n->location = (yylsp[(2) - (4)]); + case 896: +#line 368 "third_party/libpg_query/grammar/statements/create.y" + { + PGConstraint *n = makeNode(PGConstraint); + n->contype = PG_CONSTR_ATTR_DEFERRED; + n->location = (yylsp[-1]); (yyval.node) = (PGNode *)n; - ;} + } +#line 22385 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 934: -#line 1926 "third_party/libpg_query/grammar/statements/select.y" - { - PGNullTest *n = makeNode(PGNullTest); - n->arg = (PGExpr *) (yyvsp[(1) - (3)].node); - n->nulltesttype = IS_NOT_NULL; - n->location = (yylsp[(2) - (3)]); + case 897: +#line 375 "third_party/libpg_query/grammar/statements/create.y" + { + PGConstraint *n = makeNode(PGConstraint); + n->contype = PG_CONSTR_ATTR_IMMEDIATE; + n->location = (yylsp[-1]); (yyval.node) = (PGNode *)n; - ;} + } +#line 22396 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 935: -#line 1934 "third_party/libpg_query/grammar/statements/select.y" - { - PGNullTest *n = makeNode(PGNullTest); - n->arg = (PGExpr *) (yyvsp[(1) - (2)].node); - n->nulltesttype = IS_NOT_NULL; - n->location = (yylsp[(2) - (2)]); - (yyval.node) = (PGNode *)n; - ;} + case 898: +#line 386 "third_party/libpg_query/grammar/statements/create.y" + { (yyval.list) = (yyvsp[0].list); } +#line 22402 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 936: -#line 1941 "third_party/libpg_query/grammar/statements/select.y" - { - PGFuncCall *n = makeFuncCall(SystemFuncName("row"), (yyvsp[(1) - (1)].list), (yylsp[(1) - (1)])); - (yyval.node) = (PGNode *) n; - ;} + case 899: +#line 387 "third_party/libpg_query/grammar/statements/create.y" + { (yyval.list) = list_make1(makeDefElem("oids", (PGNode *) makeInteger(true), (yylsp[-1]))); } +#line 22408 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 937: -#line 1945 "third_party/libpg_query/grammar/statements/select.y" - { - PGFuncCall *n = makeFuncCall(SystemFuncName("struct_pack"), (yyvsp[(2) - (3)].list), (yylsp[(2) - (3)])); - (yyval.node) = (PGNode *) n; - ;} + case 900: +#line 388 "third_party/libpg_query/grammar/statements/create.y" + { (yyval.list) = list_make1(makeDefElem("oids", (PGNode *) makeInteger(false), (yylsp[-1]))); } +#line 22414 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 938: -#line 1949 "third_party/libpg_query/grammar/statements/select.y" - { - PGFuncCall *n = makeFuncCall(SystemFuncName("list_value"), (yyvsp[(2) - (3)].list), (yylsp[(2) - (3)])); - (yyval.node) = (PGNode *) n; - ;} + case 901: +#line 389 "third_party/libpg_query/grammar/statements/create.y" + { (yyval.list) = NIL; } +#line 22420 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 939: -#line 1954 "third_party/libpg_query/grammar/statements/select.y" - { - PGLambdaFunction *n = makeNode(PGLambdaFunction); - n->lhs = (yyvsp[(1) - (3)].node); - n->rhs = (yyvsp[(3) - (3)].node); - n->location = (yylsp[(2) - (3)]); - (yyval.node) = (PGNode *) n; - ;} + case 902: +#line 393 "third_party/libpg_query/grammar/statements/create.y" + { (yyval.list) = (yyvsp[-1].list); } +#line 22426 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 940: -#line 1962 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, "->>", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); - ;} + case 903: +#line 398 "third_party/libpg_query/grammar/statements/create.y" + { (yyval.ival) = (yyvsp[-2].ival) | (yyvsp[0].ival); } +#line 22432 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 941: -#line 1966 "third_party/libpg_query/grammar/statements/select.y" - { - if (list_length((yyvsp[(1) - (3)].list)) != 2) - ereport(ERROR, - (errcode(PG_ERRCODE_SYNTAX_ERROR), - errmsg("wrong number of parameters on left side of OVERLAPS expression"), - parser_errposition((yylsp[(1) - (3)])))); - if (list_length((yyvsp[(3) - (3)].list)) != 2) - ereport(ERROR, - (errcode(PG_ERRCODE_SYNTAX_ERROR), - errmsg("wrong number of parameters on right side of OVERLAPS expression"), - parser_errposition((yylsp[(3) - (3)])))); - (yyval.node) = (PGNode *) makeFuncCall(SystemFuncName("overlaps"), - list_concat((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].list)), - (yylsp[(2) - (3)])); - ;} + case 904: +#line 399 "third_party/libpg_query/grammar/statements/create.y" + { (yyval.ival) = (yyvsp[-2].ival) & ~(yyvsp[0].ival); } +#line 22438 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 942: -#line 1982 "third_party/libpg_query/grammar/statements/select.y" - { - PGBooleanTest *b = makeNode(PGBooleanTest); - b->arg = (PGExpr *) (yyvsp[(1) - (3)].node); - b->booltesttype = PG_IS_TRUE; - b->location = (yylsp[(2) - (3)]); - (yyval.node) = (PGNode *)b; - ;} + case 905: +#line 400 "third_party/libpg_query/grammar/statements/create.y" + { (yyval.ival) = 0; } +#line 22444 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 943: -#line 1990 "third_party/libpg_query/grammar/statements/select.y" - { - PGBooleanTest *b = makeNode(PGBooleanTest); - b->arg = (PGExpr *) (yyvsp[(1) - (4)].node); - b->booltesttype = IS_NOT_TRUE; - b->location = (yylsp[(2) - (4)]); - (yyval.node) = (PGNode *)b; - ;} + case 906: +#line 405 "third_party/libpg_query/grammar/statements/create.y" + { (yyval.str) = (yyvsp[0].str); } +#line 22450 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 944: -#line 1998 "third_party/libpg_query/grammar/statements/select.y" - { - PGBooleanTest *b = makeNode(PGBooleanTest); - b->arg = (PGExpr *) (yyvsp[(1) - (3)].node); - b->booltesttype = IS_FALSE; - b->location = (yylsp[(2) - (3)]); - (yyval.node) = (PGNode *)b; - ;} + case 907: +#line 410 "third_party/libpg_query/grammar/statements/create.y" + { (yyval.ival) = CAS_NOT_DEFERRABLE; } +#line 22456 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 945: -#line 2006 "third_party/libpg_query/grammar/statements/select.y" - { - PGBooleanTest *b = makeNode(PGBooleanTest); - b->arg = (PGExpr *) (yyvsp[(1) - (4)].node); - b->booltesttype = IS_NOT_FALSE; - b->location = (yylsp[(2) - (4)]); - (yyval.node) = (PGNode *)b; - ;} + case 908: +#line 411 "third_party/libpg_query/grammar/statements/create.y" + { (yyval.ival) = CAS_DEFERRABLE; } +#line 22462 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 946: -#line 2014 "third_party/libpg_query/grammar/statements/select.y" - { - PGBooleanTest *b = makeNode(PGBooleanTest); - b->arg = (PGExpr *) (yyvsp[(1) - (3)].node); - b->booltesttype = IS_UNKNOWN; - b->location = (yylsp[(2) - (3)]); - (yyval.node) = (PGNode *)b; - ;} + case 909: +#line 412 "third_party/libpg_query/grammar/statements/create.y" + { (yyval.ival) = CAS_INITIALLY_IMMEDIATE; } +#line 22468 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 947: -#line 2022 "third_party/libpg_query/grammar/statements/select.y" - { - PGBooleanTest *b = makeNode(PGBooleanTest); - b->arg = (PGExpr *) (yyvsp[(1) - (4)].node); - b->booltesttype = IS_NOT_UNKNOWN; - b->location = (yylsp[(2) - (4)]); - (yyval.node) = (PGNode *)b; - ;} + case 910: +#line 413 "third_party/libpg_query/grammar/statements/create.y" + { (yyval.ival) = CAS_INITIALLY_DEFERRED; } +#line 22474 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 948: -#line 2030 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_DISTINCT, "=", (yyvsp[(1) - (5)].node), (yyvsp[(5) - (5)].node), (yylsp[(2) - (5)])); - ;} + case 911: +#line 414 "third_party/libpg_query/grammar/statements/create.y" + { (yyval.ival) = CAS_NOT_VALID; } +#line 22480 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 949: -#line 2034 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_NOT_DISTINCT, "=", (yyvsp[(1) - (6)].node), (yyvsp[(6) - (6)].node), (yylsp[(2) - (6)])); - ;} + case 912: +#line 415 "third_party/libpg_query/grammar/statements/create.y" + { (yyval.ival) = CAS_NO_INHERIT; } +#line 22486 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 950: -#line 2038 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OF, "=", (yyvsp[(1) - (6)].node), (PGNode *) (yyvsp[(5) - (6)].list), (yylsp[(2) - (6)])); - ;} + case 913: +#line 421 "third_party/libpg_query/grammar/statements/create.y" + { + PGColumnDef *n = makeNode(PGColumnDef); + n->category = COL_STANDARD; + n->colname = (yyvsp[-2].str); + n->typeName = (yyvsp[-1].typnam); + n->inhcount = 0; + n->is_local = true; + n->is_not_null = false; + n->is_from_type = false; + n->storage = 0; + n->raw_default = NULL; + n->cooked_default = NULL; + n->collOid = InvalidOid; + SplitColQualList((yyvsp[0].list), &n->constraints, &n->collClause, + yyscanner); + n->location = (yylsp[-2]); + (yyval.node) = (PGNode *)n; + } +#line 22509 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 951: -#line 2042 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OF, "<>", (yyvsp[(1) - (7)].node), (PGNode *) (yyvsp[(6) - (7)].list), (yylsp[(2) - (7)])); - ;} + case 914: +#line 441 "third_party/libpg_query/grammar/statements/create.y" + { + PGColumnDef *n = makeNode(PGColumnDef); + n->category = COL_GENERATED; + n->colname = (yyvsp[-3].str); + n->typeName = (yyvsp[-2].typnam); + n->inhcount = 0; + n->is_local = true; + n->is_not_null = false; + n->is_from_type = false; + n->storage = 0; + n->raw_default = NULL; + n->cooked_default = NULL; + n->collOid = InvalidOid; + // merge the constraints with the generated column constraint + auto constraints = (yyvsp[0].list); + if (constraints) { + constraints = lappend(constraints, (yyvsp[-1].node)); + } else { + constraints = list_make1((yyvsp[-1].node)); + } + SplitColQualList(constraints, &n->constraints, &n->collClause, + yyscanner); + n->location = (yylsp[-3]); + (yyval.node) = (PGNode *)n; + } +#line 22539 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 952: -#line 2046 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_BETWEEN, - "BETWEEN", - (yyvsp[(1) - (6)].node), - (PGNode *) list_make2((yyvsp[(4) - (6)].node), (yyvsp[(6) - (6)].node)), - (yylsp[(2) - (6)])); - ;} + case 915: +#line 469 "third_party/libpg_query/grammar/statements/create.y" + { (yyval.list) = list_make1((yyvsp[0].defelt)); } +#line 22545 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 953: -#line 2054 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_NOT_BETWEEN, - "NOT BETWEEN", - (yyvsp[(1) - (7)].node), - (PGNode *) list_make2((yyvsp[(5) - (7)].node), (yyvsp[(7) - (7)].node)), - (yylsp[(2) - (7)])); - ;} + case 916: +#line 470 "third_party/libpg_query/grammar/statements/create.y" + { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].defelt)); } +#line 22551 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 954: -#line 2062 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_BETWEEN_SYM, - "BETWEEN SYMMETRIC", - (yyvsp[(1) - (6)].node), - (PGNode *) list_make2((yyvsp[(4) - (6)].node), (yyvsp[(6) - (6)].node)), - (yylsp[(2) - (6)])); - ;} + case 917: +#line 474 "third_party/libpg_query/grammar/statements/create.y" + { (yyval.str) = (yyvsp[0].str); } +#line 22557 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 955: -#line 2070 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_NOT_BETWEEN_SYM, - "NOT BETWEEN SYMMETRIC", - (yyvsp[(1) - (7)].node), - (PGNode *) list_make2((yyvsp[(5) - (7)].node), (yyvsp[(7) - (7)].node)), - (yylsp[(2) - (7)])); - ;} + case 918: +#line 478 "third_party/libpg_query/grammar/statements/create.y" + { (yyval.node) = (yyvsp[0].node); } +#line 22563 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 956: -#line 2078 "third_party/libpg_query/grammar/statements/select.y" - { - /* in_expr returns a PGSubLink or a list of a_exprs */ - if (IsA((yyvsp[(3) - (3)].node), PGSubLink)) - { - /* generate foo = ANY (subquery) */ - PGSubLink *n = (PGSubLink *) (yyvsp[(3) - (3)].node); - n->subLinkType = PG_ANY_SUBLINK; - n->subLinkId = 0; - n->testexpr = (yyvsp[(1) - (3)].node); - n->operName = NIL; /* show it's IN not = ANY */ - n->location = (yylsp[(2) - (3)]); - (yyval.node) = (PGNode *)n; - } - else - { - /* generate scalar IN expression */ - (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_IN, "=", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); - } - ;} + case 919: +#line 479 "third_party/libpg_query/grammar/statements/create.y" + { (yyval.node) = (yyvsp[0].node); } +#line 22569 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 957: -#line 2098 "third_party/libpg_query/grammar/statements/select.y" - { - /* in_expr returns a PGSubLink or a list of a_exprs */ - if (IsA((yyvsp[(4) - (4)].node), PGSubLink)) - { - /* generate NOT (foo = ANY (subquery)) */ - /* Make an = ANY node */ - PGSubLink *n = (PGSubLink *) (yyvsp[(4) - (4)].node); - n->subLinkType = PG_ANY_SUBLINK; - n->subLinkId = 0; - n->testexpr = (yyvsp[(1) - (4)].node); - n->operName = NIL; /* show it's IN not = ANY */ - n->location = (yylsp[(2) - (4)]); - /* Stick a NOT on top; must have same parse location */ - (yyval.node) = makeNotExpr((PGNode *) n, (yylsp[(2) - (4)])); - } - else - { - /* generate scalar NOT IN expression */ - (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_IN, "<>", (yyvsp[(1) - (4)].node), (yyvsp[(4) - (4)].node), (yylsp[(2) - (4)])); - } - ;} + case 920: +#line 480 "third_party/libpg_query/grammar/statements/create.y" + { (yyval.node) = (yyvsp[0].node); } +#line 22575 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 958: -#line 2120 "third_party/libpg_query/grammar/statements/select.y" - { - PGSubLink *n = makeNode(PGSubLink); - n->subLinkType = (yyvsp[(3) - (4)].subquerytype); - n->subLinkId = 0; - n->testexpr = (yyvsp[(1) - (4)].node); - n->operName = (yyvsp[(2) - (4)].list); - n->subselect = (yyvsp[(4) - (4)].node); - n->location = (yylsp[(2) - (4)]); - (yyval.node) = (PGNode *)n; - ;} + case 921: +#line 485 "third_party/libpg_query/grammar/statements/create.y" + { + (yyval.defelt) = makeDefElem((yyvsp[-2].str), (PGNode *) (yyvsp[0].node), (yylsp[-2])); + } +#line 22583 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 959: -#line 2131 "third_party/libpg_query/grammar/statements/select.y" - { - if ((yyvsp[(3) - (6)].subquerytype) == PG_ANY_SUBLINK) - (yyval.node) = (PGNode *) makeAExpr(PG_AEXPR_OP_ANY, (yyvsp[(2) - (6)].list), (yyvsp[(1) - (6)].node), (yyvsp[(5) - (6)].node), (yylsp[(2) - (6)])); - else - (yyval.node) = (PGNode *) makeAExpr(PG_AEXPR_OP_ALL, (yyvsp[(2) - (6)].list), (yyvsp[(1) - (6)].node), (yyvsp[(5) - (6)].node), (yylsp[(2) - (6)])); - ;} + case 922: +#line 489 "third_party/libpg_query/grammar/statements/create.y" + { + (yyval.defelt) = makeDefElem((yyvsp[0].str), NULL, (yylsp[0])); + } +#line 22591 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 960: -#line 2138 "third_party/libpg_query/grammar/statements/select.y" - { - PGSubLink *n = makeNode(PGSubLink); - n->subLinkType = PG_ARRAY_SUBLINK; - n->subLinkId = 0; - n->testexpr = NULL; - n->operName = NULL; - n->subselect = (yyvsp[(2) - (2)].node); - n->location = (yylsp[(2) - (2)]); - (yyval.node) = (PGNode *)n; - ;} + case 923: +#line 496 "third_party/libpg_query/grammar/statements/create.y" + { (yyval.list) = (yyvsp[0].list); } +#line 22597 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 961: -#line 2149 "third_party/libpg_query/grammar/statements/select.y" - { - /* - * The SQL spec only allows DEFAULT in "contextually typed - * expressions", but for us, it's easier to allow it in - * any a_expr and then throw error during parse analysis - * if it's in an inappropriate context. This way also - * lets us say something smarter than "syntax error". - */ - PGSetToDefault *n = makeNode(PGSetToDefault); - /* parse analysis will fill in the rest */ - n->location = (yylsp[(1) - (1)]); - (yyval.node) = (PGNode *)n; - ;} + case 924: +#line 497 "third_party/libpg_query/grammar/statements/create.y" + { (yyval.list) = NIL; } +#line 22603 "third_party/libpg_query/grammar/grammar_out.cpp" + break; + + case 925: +#line 502 "third_party/libpg_query/grammar/statements/create.y" + { (yyval.list) = (yyvsp[0].list); } +#line 22609 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 962: -#line 2162 "third_party/libpg_query/grammar/statements/select.y" - { - PGList *func_name = list_make1(makeString("construct_array")); - PGFuncCall *n = makeFuncCall(func_name, (yyvsp[(3) - (4)].list), (yylsp[(1) - (4)])); - (yyval.node) = (PGNode *) n; - ;} + case 926: +#line 503 "third_party/libpg_query/grammar/statements/create.y" + { (yyval.list) = (yyvsp[-1].list); } +#line 22615 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 963: -#line 2179 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.node) = (yyvsp[(1) - (1)].node); ;} + case 927: +#line 504 "third_party/libpg_query/grammar/statements/create.y" + { (yyval.list) = NIL; } +#line 22621 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 964: -#line 2181 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.node) = makeTypeCast((yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].typnam), 0, (yylsp[(2) - (3)])); ;} + case 928: +#line 509 "third_party/libpg_query/grammar/statements/create.y" + { + (yyval.node) = (PGNode *) makeString((yyvsp[0].str)); + } +#line 22629 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 965: -#line 2183 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, "+", NULL, (yyvsp[(2) - (2)].node), (yylsp[(1) - (2)])); ;} + case 929: +#line 516 "third_party/libpg_query/grammar/statements/create.y" + { (yyval.list) = (yyvsp[-1].list); } +#line 22635 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 966: -#line 2185 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.node) = doNegate((yyvsp[(2) - (2)].node), (yylsp[(1) - (2)])); ;} + case 930: +#line 517 "third_party/libpg_query/grammar/statements/create.y" + { (yyval.list) = NIL; } +#line 22641 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 967: -#line 2187 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, "+", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} + case 931: +#line 522 "third_party/libpg_query/grammar/statements/create.y" + { (yyval.list) = lappend((yyvsp[-1].list), (yyvsp[0].node)); } +#line 22647 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 968: -#line 2189 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, "-", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} + case 932: +#line 523 "third_party/libpg_query/grammar/statements/create.y" + { (yyval.list) = NIL; } +#line 22653 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 969: -#line 2191 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, "*", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} + case 933: +#line 527 "third_party/libpg_query/grammar/statements/create.y" + { (yyval.ival) = (yyvsp[0].ival); } +#line 22659 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 970: -#line 2193 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, "/", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} + case 934: +#line 533 "third_party/libpg_query/grammar/statements/create.y" + { + (yyval.defelt) = makeDefElem((yyvsp[-2].str), (PGNode *) (yyvsp[0].node), (yylsp[-2])); + } +#line 22667 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 971: -#line 2195 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, "%", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} + case 935: +#line 537 "third_party/libpg_query/grammar/statements/create.y" + { + (yyval.defelt) = makeDefElem((yyvsp[0].str), NULL, (yylsp[0])); + } +#line 22675 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 972: -#line 2197 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, "^", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} + case 936: +#line 541 "third_party/libpg_query/grammar/statements/create.y" + { + (yyval.defelt) = makeDefElemExtended((yyvsp[-4].str), (yyvsp[-2].str), (PGNode *) (yyvsp[0].node), + PG_DEFELEM_UNSPEC, (yylsp[-4])); + } +#line 22684 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 973: -#line 2199 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, "**", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} + case 937: +#line 546 "third_party/libpg_query/grammar/statements/create.y" + { + (yyval.defelt) = makeDefElemExtended((yyvsp[-2].str), (yyvsp[0].str), NULL, PG_DEFELEM_UNSPEC, (yylsp[-2])); + } +#line 22692 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 974: -#line 2201 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, "<", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} + case 938: +#line 553 "third_party/libpg_query/grammar/statements/create.y" + { (yyval.list) = list_make1((yyvsp[0].node)); } +#line 22698 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 975: -#line 2203 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, ">", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} + case 939: +#line 554 "third_party/libpg_query/grammar/statements/create.y" + { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].node)); } +#line 22704 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 976: -#line 2205 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, "=", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} + case 940: +#line 558 "third_party/libpg_query/grammar/statements/create.y" + { (yyval.list) = (yyvsp[0].list); } +#line 22710 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 977: -#line 2207 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, "<=", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} + case 941: +#line 559 "third_party/libpg_query/grammar/statements/create.y" + { (yyval.list) = (yyvsp[-1].list); } +#line 22716 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 978: -#line 2209 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, ">=", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} + case 942: +#line 563 "third_party/libpg_query/grammar/statements/create.y" + { (yyval.typnam) = (yyvsp[0].typnam); } +#line 22722 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 979: -#line 2211 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, "<>", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} + case 943: +#line 565 "third_party/libpg_query/grammar/statements/create.y" + { + (yyval.typnam) = makeTypeNameFromNameList(lcons(makeString((yyvsp[-3].str)), (yyvsp[-2].list))); + (yyval.typnam)->pct_type = true; + (yyval.typnam)->location = (yylsp[-3]); + } +#line 22732 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 980: -#line 2213 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.node) = (PGNode *) makeAExpr(PG_AEXPR_OP, (yyvsp[(2) - (3)].list), (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} + case 944: +#line 571 "third_party/libpg_query/grammar/statements/create.y" + { + (yyval.typnam) = makeTypeNameFromNameList(lcons(makeString((yyvsp[-3].str)), (yyvsp[-2].list))); + (yyval.typnam)->pct_type = true; + (yyval.typnam)->setof = true; + (yyval.typnam)->location = (yylsp[-3]); + } +#line 22743 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 981: -#line 2215 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.node) = (PGNode *) makeAExpr(PG_AEXPR_OP, (yyvsp[(1) - (2)].list), NULL, (yyvsp[(2) - (2)].node), (yylsp[(1) - (2)])); ;} + case 945: +#line 582 "third_party/libpg_query/grammar/statements/create.y" + { + PGConstraint *n = makeNode(PGConstraint); + n->contype = PG_CONSTR_CHECK; + n->location = (yylsp[-4]); + n->raw_expr = (yyvsp[-2].node); + n->cooked_expr = NULL; + processCASbits((yyvsp[0].ival), (yylsp[0]), "CHECK", + NULL, NULL, &n->skip_validation, + &n->is_no_inherit, yyscanner); + n->initially_valid = !n->skip_validation; + (yyval.node) = (PGNode *)n; + } +#line 22760 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 982: -#line 2217 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.node) = (PGNode *) makeAExpr(PG_AEXPR_OP, (yyvsp[(2) - (2)].list), (yyvsp[(1) - (2)].node), NULL, (yylsp[(2) - (2)])); ;} + case 946: +#line 596 "third_party/libpg_query/grammar/statements/create.y" + { + PGConstraint *n = makeNode(PGConstraint); + n->contype = PG_CONSTR_UNIQUE; + n->location = (yylsp[-5]); + n->keys = (yyvsp[-3].list); + n->options = (yyvsp[-1].list); + n->indexname = NULL; + processCASbits((yyvsp[0].ival), (yylsp[0]), "UNIQUE", + &n->deferrable, &n->initdeferred, NULL, + NULL, yyscanner); + (yyval.node) = (PGNode *)n; + } +#line 22777 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 983: -#line 2219 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_DISTINCT, "=", (yyvsp[(1) - (5)].node), (yyvsp[(5) - (5)].node), (yylsp[(2) - (5)])); - ;} + case 947: +#line 609 "third_party/libpg_query/grammar/statements/create.y" + { + PGConstraint *n = makeNode(PGConstraint); + n->contype = PG_CONSTR_UNIQUE; + n->location = (yylsp[-2]); + n->keys = NIL; + n->options = NIL; + n->indexname = (yyvsp[-1].str); + n->indexspace = NULL; + processCASbits((yyvsp[0].ival), (yylsp[0]), "UNIQUE", + &n->deferrable, &n->initdeferred, NULL, + NULL, yyscanner); + (yyval.node) = (PGNode *)n; + } +#line 22795 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 984: -#line 2223 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_NOT_DISTINCT, "=", (yyvsp[(1) - (6)].node), (yyvsp[(6) - (6)].node), (yylsp[(2) - (6)])); - ;} + case 948: +#line 624 "third_party/libpg_query/grammar/statements/create.y" + { + PGConstraint *n = makeNode(PGConstraint); + n->contype = PG_CONSTR_PRIMARY; + n->location = (yylsp[-6]); + n->keys = (yyvsp[-3].list); + n->options = (yyvsp[-1].list); + n->indexname = NULL; + processCASbits((yyvsp[0].ival), (yylsp[0]), "PRIMARY KEY", + &n->deferrable, &n->initdeferred, NULL, + NULL, yyscanner); + (yyval.node) = (PGNode *)n; + } +#line 22812 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 985: -#line 2227 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OF, "=", (yyvsp[(1) - (6)].node), (PGNode *) (yyvsp[(5) - (6)].list), (yylsp[(2) - (6)])); - ;} + case 949: +#line 637 "third_party/libpg_query/grammar/statements/create.y" + { + PGConstraint *n = makeNode(PGConstraint); + n->contype = PG_CONSTR_PRIMARY; + n->location = (yylsp[-3]); + n->keys = NIL; + n->options = NIL; + n->indexname = (yyvsp[-1].str); + n->indexspace = NULL; + processCASbits((yyvsp[0].ival), (yylsp[0]), "PRIMARY KEY", + &n->deferrable, &n->initdeferred, NULL, + NULL, yyscanner); + (yyval.node) = (PGNode *)n; + } +#line 22830 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 986: -#line 2231 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OF, "<>", (yyvsp[(1) - (7)].node), (PGNode *) (yyvsp[(6) - (7)].list), (yylsp[(2) - (7)])); - ;} + case 950: +#line 652 "third_party/libpg_query/grammar/statements/create.y" + { + PGConstraint *n = makeNode(PGConstraint); + n->contype = PG_CONSTR_FOREIGN; + n->location = (yylsp[-10]); + n->pktable = (yyvsp[-4].range); + n->fk_attrs = (yyvsp[-7].list); + n->pk_attrs = (yyvsp[-3].list); + n->fk_matchtype = (yyvsp[-2].ival); + n->fk_upd_action = (char) ((yyvsp[-1].ival) >> 8); + n->fk_del_action = (char) ((yyvsp[-1].ival) & 0xFF); + processCASbits((yyvsp[0].ival), (yylsp[0]), "FOREIGN KEY", + &n->deferrable, &n->initdeferred, + &n->skip_validation, NULL, + yyscanner); + n->initially_valid = !n->skip_validation; + (yyval.node) = (PGNode *)n; + } +#line 22852 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 987: -#line 2244 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.node) = (yyvsp[(1) - (1)].node); ;} + case 951: +#line 674 "third_party/libpg_query/grammar/statements/create.y" + { + (yyval.list) = list_make1((yyvsp[0].node)); + } +#line 22860 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 988: -#line 2245 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.node) = (yyvsp[(1) - (1)].node); ;} + case 952: +#line 678 "third_party/libpg_query/grammar/statements/create.y" + { + (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].node)); + } +#line 22868 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 989: -#line 2247 "third_party/libpg_query/grammar/statements/select.y" - { - PGPositionalReference *n = makeNode(PGPositionalReference); - n->position = (yyvsp[(2) - (2)].ival); - n->location = (yylsp[(1) - (2)]); - (yyval.node) = (PGNode *) n; - ;} + case 953: +#line 685 "third_party/libpg_query/grammar/statements/create.y" + { + (yyval.ival) = PG_FKCONSTR_MATCH_FULL; + } +#line 22876 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 990: -#line 2254 "third_party/libpg_query/grammar/statements/select.y" - { - if ((yyvsp[(2) - (2)].list)) - { - PGAIndirection *n = makeNode(PGAIndirection); - n->arg = makeParamRef(0, (yylsp[(1) - (2)])); - n->indirection = check_indirection((yyvsp[(2) - (2)].list), yyscanner); - (yyval.node) = (PGNode *) n; - } - else - (yyval.node) = makeParamRef(0, (yylsp[(1) - (2)])); - ;} + case 954: +#line 689 "third_party/libpg_query/grammar/statements/create.y" + { + ereport(ERROR, + (errcode(PG_ERRCODE_FEATURE_NOT_SUPPORTED), + errmsg("MATCH PARTIAL not yet implemented"), + parser_errposition((yylsp[-1])))); + (yyval.ival) = PG_FKCONSTR_MATCH_PARTIAL; + } +#line 22888 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 991: -#line 2266 "third_party/libpg_query/grammar/statements/select.y" - { - PGParamRef *p = makeNode(PGParamRef); - p->number = (yyvsp[(1) - (2)].ival); - p->location = (yylsp[(1) - (2)]); - if ((yyvsp[(2) - (2)].list)) - { - PGAIndirection *n = makeNode(PGAIndirection); - n->arg = (PGNode *) p; - n->indirection = check_indirection((yyvsp[(2) - (2)].list), yyscanner); - (yyval.node) = (PGNode *) n; - } - else - (yyval.node) = (PGNode *) p; - ;} + case 955: +#line 697 "third_party/libpg_query/grammar/statements/create.y" + { + (yyval.ival) = PG_FKCONSTR_MATCH_SIMPLE; + } +#line 22896 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 992: -#line 2281 "third_party/libpg_query/grammar/statements/select.y" - { - if ((yyvsp[(4) - (4)].list)) - { - PGAIndirection *n = makeNode(PGAIndirection); - n->arg = (yyvsp[(2) - (4)].node); - n->indirection = check_indirection((yyvsp[(4) - (4)].list), yyscanner); - (yyval.node) = (PGNode *)n; - } - else - (yyval.node) = (yyvsp[(2) - (4)].node); - ;} + case 956: +#line 701 "third_party/libpg_query/grammar/statements/create.y" + { + (yyval.ival) = PG_FKCONSTR_MATCH_SIMPLE; + } +#line 22904 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 993: -#line 2293 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.node) = (yyvsp[(1) - (1)].node); ;} + case 957: +#line 709 "third_party/libpg_query/grammar/statements/create.y" + { + PGTableLikeClause *n = makeNode(PGTableLikeClause); + n->relation = (yyvsp[-1].range); + n->options = (yyvsp[0].ival); + (yyval.node) = (PGNode *)n; + } +#line 22915 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 994: -#line 2295 "third_party/libpg_query/grammar/statements/select.y" - { - if ((yyvsp[(2) - (2)].list)) { - PGAIndirection *n = makeNode(PGAIndirection); - n->arg = (yyvsp[(1) - (2)].node); - n->indirection = check_indirection((yyvsp[(2) - (2)].list), yyscanner); - (yyval.node) = (PGNode *)n; - } - else { - (yyval.node) = (yyvsp[(1) - (2)].node); - } - ;} + case 958: +#line 718 "third_party/libpg_query/grammar/statements/create.y" + { (yyval.ival) = PG_RELPERSISTENCE_TEMP; } +#line 22921 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 995: -#line 2307 "third_party/libpg_query/grammar/statements/select.y" - { - PGSubLink *n = makeNode(PGSubLink); - n->subLinkType = PG_EXPR_SUBLINK; - n->subLinkId = 0; - n->testexpr = NULL; - n->operName = NIL; - n->subselect = (yyvsp[(1) - (1)].node); - n->location = (yylsp[(1) - (1)]); - (yyval.node) = (PGNode *)n; - ;} + case 959: +#line 719 "third_party/libpg_query/grammar/statements/create.y" + { (yyval.ival) = PG_RELPERSISTENCE_TEMP; } +#line 22927 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 996: -#line 2318 "third_party/libpg_query/grammar/statements/select.y" - { - /* - * Because the select_with_parens nonterminal is designed - * to "eat" as many levels of parens as possible, the - * '(' a_expr ')' opt_indirection production above will - * fail to match a sub-SELECT with indirection decoration; - * the sub-SELECT won't be regarded as an a_expr as long - * as there are parens around it. To support applying - * subscripting or field selection to a sub-SELECT result, - * we need this redundant-looking production. - */ - PGSubLink *n = makeNode(PGSubLink); - PGAIndirection *a = makeNode(PGAIndirection); - n->subLinkType = PG_EXPR_SUBLINK; - n->subLinkId = 0; - n->testexpr = NULL; - n->operName = NIL; - n->subselect = (yyvsp[(1) - (2)].node); - n->location = (yylsp[(1) - (2)]); - a->arg = (PGNode *)n; - a->indirection = check_indirection((yyvsp[(2) - (2)].list), yyscanner); - (yyval.node) = (PGNode *)a; - ;} + case 960: +#line 720 "third_party/libpg_query/grammar/statements/create.y" + { (yyval.ival) = PG_RELPERSISTENCE_TEMP; } +#line 22933 "third_party/libpg_query/grammar/grammar_out.cpp" + break; + + case 961: +#line 721 "third_party/libpg_query/grammar/statements/create.y" + { (yyval.ival) = PG_RELPERSISTENCE_TEMP; } +#line 22939 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 997: -#line 2342 "third_party/libpg_query/grammar/statements/select.y" - { - PGSubLink *n = makeNode(PGSubLink); - n->subLinkType = PG_EXISTS_SUBLINK; - n->subLinkId = 0; - n->testexpr = NULL; - n->operName = NIL; - n->subselect = (yyvsp[(2) - (2)].node); - n->location = (yylsp[(1) - (2)]); - (yyval.node) = (PGNode *)n; - ;} + case 962: +#line 723 "third_party/libpg_query/grammar/statements/create.y" + { + ereport(PGWARNING, + (errmsg("GLOBAL is deprecated in temporary table creation"), + parser_errposition((yylsp[-1])))); + (yyval.ival) = PG_RELPERSISTENCE_TEMP; + } +#line 22950 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 998: -#line 2353 "third_party/libpg_query/grammar/statements/select.y" - { - PGGroupingFunc *g = makeNode(PGGroupingFunc); - g->args = (yyvsp[(3) - (4)].list); - g->location = (yylsp[(1) - (4)]); - (yyval.node) = (PGNode *)g; - ;} + case 963: +#line 730 "third_party/libpg_query/grammar/statements/create.y" + { + ereport(PGWARNING, + (errmsg("GLOBAL is deprecated in temporary table creation"), + parser_errposition((yylsp[-1])))); + (yyval.ival) = PG_RELPERSISTENCE_TEMP; + } +#line 22961 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 999: -#line 2362 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.node) = (PGNode *) makeFuncCall((yyvsp[(1) - (3)].list), NIL, (yylsp[(1) - (3)])); - ;} + case 964: +#line 736 "third_party/libpg_query/grammar/statements/create.y" + { (yyval.ival) = PG_RELPERSISTENCE_UNLOGGED; } +#line 22967 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1000: -#line 2366 "third_party/libpg_query/grammar/statements/select.y" - { - PGFuncCall *n = makeFuncCall((yyvsp[(1) - (6)].list), (yyvsp[(3) - (6)].list), (yylsp[(1) - (6)])); - n->agg_order = (yyvsp[(4) - (6)].list); - n->agg_ignore_nulls = (yyvsp[(5) - (6)].boolean); - (yyval.node) = (PGNode *)n; - ;} + case 965: +#line 737 "third_party/libpg_query/grammar/statements/create.y" + { (yyval.ival) = RELPERSISTENCE_PERMANENT; } +#line 22973 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1001: -#line 2373 "third_party/libpg_query/grammar/statements/select.y" - { - PGFuncCall *n = makeFuncCall((yyvsp[(1) - (7)].list), list_make1((yyvsp[(4) - (7)].node)), (yylsp[(1) - (7)])); - n->func_variadic = true; - n->agg_order = (yyvsp[(5) - (7)].list); - n->agg_ignore_nulls = (yyvsp[(6) - (7)].boolean); - (yyval.node) = (PGNode *)n; - ;} + case 966: +#line 742 "third_party/libpg_query/grammar/statements/create.y" + { (yyval.ival) = PG_ATTRIBUTE_IDENTITY_ALWAYS; } +#line 22979 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1002: -#line 2381 "third_party/libpg_query/grammar/statements/select.y" - { - PGFuncCall *n = makeFuncCall((yyvsp[(1) - (9)].list), lappend((yyvsp[(3) - (9)].list), (yyvsp[(6) - (9)].node)), (yylsp[(1) - (9)])); - n->func_variadic = true; - n->agg_order = (yyvsp[(7) - (9)].list); - n->agg_ignore_nulls = (yyvsp[(8) - (9)].boolean); - (yyval.node) = (PGNode *)n; - ;} + case 967: +#line 743 "third_party/libpg_query/grammar/statements/create.y" + { (yyval.ival) = ATTRIBUTE_IDENTITY_BY_DEFAULT; } +#line 22985 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1003: -#line 2389 "third_party/libpg_query/grammar/statements/select.y" - { - PGFuncCall *n = makeFuncCall((yyvsp[(1) - (7)].list), (yyvsp[(4) - (7)].list), (yylsp[(1) - (7)])); - n->agg_order = (yyvsp[(5) - (7)].list); - n->agg_ignore_nulls = (yyvsp[(6) - (7)].boolean); - /* Ideally we'd mark the PGFuncCall node to indicate - * "must be an aggregate", but there's no provision - * for that in PGFuncCall at the moment. - */ - (yyval.node) = (PGNode *)n; - ;} + case 968: +#line 8 "third_party/libpg_query/grammar/statements/execute.y" + { + PGExecuteStmt *n = makeNode(PGExecuteStmt); + n->name = (yyvsp[-1].str); + n->params = (yyvsp[0].list); + (yyval.node) = (PGNode *) n; + } +#line 22996 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1004: -#line 2400 "third_party/libpg_query/grammar/statements/select.y" - { - PGFuncCall *n = makeFuncCall((yyvsp[(1) - (7)].list), (yyvsp[(4) - (7)].list), (yylsp[(1) - (7)])); - n->agg_order = (yyvsp[(5) - (7)].list); - n->agg_ignore_nulls = (yyvsp[(6) - (7)].boolean); - n->agg_distinct = true; - (yyval.node) = (PGNode *)n; - ;} + case 969: +#line 16 "third_party/libpg_query/grammar/statements/execute.y" + { + PGCreateTableAsStmt *ctas = makeNode(PGCreateTableAsStmt); + PGExecuteStmt *n = makeNode(PGExecuteStmt); + n->name = (yyvsp[-2].str); + n->params = (yyvsp[-1].list); + ctas->query = (PGNode *) n; + ctas->into = (yyvsp[-5].into); + ctas->relkind = PG_OBJECT_TABLE; + ctas->is_select_into = false; + ctas->onconflict = PG_ERROR_ON_CONFLICT; + /* cram additional flags into the PGIntoClause */ + (yyvsp[-5].into)->rel->relpersistence = (yyvsp[-7].ival); + (yyvsp[-5].into)->skipData = !((yyvsp[0].boolean)); + (yyval.node) = (PGNode *) ctas; + } +#line 23016 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1005: -#line 2408 "third_party/libpg_query/grammar/statements/select.y" - { - /* - * We consider AGGREGATE(*) to invoke a parameterless - * aggregate. This does the right thing for COUNT(*), - * and there are no other aggregates in SQL that accept - * '*' as parameter. - * - * The PGFuncCall node is also marked agg_star = true, - * so that later processing can detect what the argument - * really was. - */ - PGFuncCall *n = makeFuncCall((yyvsp[(1) - (4)].list), NIL, (yylsp[(1) - (4)])); - n->agg_star = true; - (yyval.node) = (PGNode *)n; - ;} + case 970: +#line 33 "third_party/libpg_query/grammar/statements/execute.y" + { + PGCreateTableAsStmt *ctas = makeNode(PGCreateTableAsStmt); + PGExecuteStmt *n = makeNode(PGExecuteStmt); + n->name = (yyvsp[-2].str); + n->params = (yyvsp[-1].list); + ctas->query = (PGNode *) n; + ctas->into = (yyvsp[-5].into); + ctas->relkind = PG_OBJECT_TABLE; + ctas->is_select_into = false; + ctas->onconflict = PG_IGNORE_ON_CONFLICT; + /* cram additional flags into the PGIntoClause */ + (yyvsp[-5].into)->rel->relpersistence = (yyvsp[-10].ival); + (yyvsp[-5].into)->skipData = !((yyvsp[0].boolean)); + (yyval.node) = (PGNode *) ctas; + } +#line 23036 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1006: -#line 2436 "third_party/libpg_query/grammar/statements/select.y" - { - PGFuncCall *n = (PGFuncCall *) (yyvsp[(1) - (5)].node); - /* - * The order clause for WITHIN GROUP and the one for - * plain-aggregate ORDER BY share a field, so we have to - * check here that at most one is present. We also check - * for DISTINCT and VARIADIC here to give a better error - * location. Other consistency checks are deferred to - * parse analysis. - */ - if ((yyvsp[(2) - (5)].list) != NIL) - { - if (n->agg_order != NIL) - ereport(ERROR, - (errcode(PG_ERRCODE_SYNTAX_ERROR), - errmsg("cannot use multiple ORDER BY clauses with WITHIN GROUP"), - parser_errposition((yylsp[(2) - (5)])))); - if (n->agg_distinct) - ereport(ERROR, - (errcode(PG_ERRCODE_SYNTAX_ERROR), - errmsg("cannot use DISTINCT with WITHIN GROUP"), - parser_errposition((yylsp[(2) - (5)])))); - if (n->func_variadic) - ereport(ERROR, - (errcode(PG_ERRCODE_SYNTAX_ERROR), - errmsg("cannot use VARIADIC with WITHIN GROUP"), - parser_errposition((yylsp[(2) - (5)])))); - n->agg_order = (yyvsp[(2) - (5)].list); - n->agg_within_group = true; - } - n->agg_filter = (yyvsp[(3) - (5)].node); - n->export_state = (yyvsp[(4) - (5)].boolean); - n->over = (yyvsp[(5) - (5)].windef); - (yyval.node) = (PGNode *) n; - ;} + case 971: +#line 51 "third_party/libpg_query/grammar/statements/execute.y" + { (yyval.list) = (yyvsp[-1].list); } +#line 23042 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1007: -#line 2472 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.node) = (yyvsp[(1) - (1)].node); ;} + case 972: +#line 52 "third_party/libpg_query/grammar/statements/execute.y" + { (yyval.list) = NIL; } +#line 23048 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1008: -#line 2482 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.node) = (yyvsp[(1) - (1)].node); ;} + case 973: +#line 8 "third_party/libpg_query/grammar/statements/create_schema.y" + { + PGCreateSchemaStmt *n = makeNode(PGCreateSchemaStmt); + /* ...but not both */ + n->schemaname = (yyvsp[-1].str); + n->schemaElts = (yyvsp[0].list); + n->onconflict = PG_ERROR_ON_CONFLICT; + (yyval.node) = (PGNode *)n; + } +#line 23061 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1009: -#line 2483 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.node) = (yyvsp[(1) - (1)].node); ;} + case 974: +#line 17 "third_party/libpg_query/grammar/statements/create_schema.y" + { + PGCreateSchemaStmt *n = makeNode(PGCreateSchemaStmt); + /* ...but not here */ + n->schemaname = (yyvsp[-1].str); + if ((yyvsp[0].list) != NIL) + ereport(ERROR, + (errcode(PG_ERRCODE_FEATURE_NOT_SUPPORTED), + errmsg("CREATE SCHEMA IF NOT EXISTS cannot include schema elements"), + parser_errposition((yylsp[0])))); + n->schemaElts = (yyvsp[0].list); + n->onconflict = PG_IGNORE_ON_CONFLICT; + (yyval.node) = (PGNode *)n; + } +#line 23079 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1010: -#line 2491 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.node) = (PGNode *) makeFuncCall(SystemFuncName("pg_collation_for"), - list_make1((yyvsp[(4) - (5)].node)), - (yylsp[(1) - (5)])); - ;} + case 975: +#line 35 "third_party/libpg_query/grammar/statements/create_schema.y" + { + if ((yyloc) < 0) /* see comments for YYLLOC_DEFAULT */ + (yyloc) = (yylsp[0]); + (yyval.list) = lappend((yyvsp[-1].list), (yyvsp[0].node)); + } +#line 23089 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1011: -#line 2497 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.node) = makeSQLValueFunction(PG_SVFOP_CURRENT_DATE, -1, (yylsp[(1) - (1)])); - ;} + case 976: +#line 41 "third_party/libpg_query/grammar/statements/create_schema.y" + { (yyval.list) = NIL; } +#line 23095 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1012: -#line 2501 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.node) = makeSQLValueFunction(PG_SVFOP_CURRENT_TIME, -1, (yylsp[(1) - (1)])); - ;} + case 981: +#line 10 "third_party/libpg_query/grammar/statements/explain.y" + { + PGExplainStmt *n = makeNode(PGExplainStmt); + n->query = (yyvsp[0].node); + n->options = NIL; + (yyval.node) = (PGNode *) n; + } +#line 23106 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1013: -#line 2505 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.node) = makeSQLValueFunction(PG_SVFOP_CURRENT_TIME_N, (yyvsp[(3) - (4)].ival), (yylsp[(1) - (4)])); - ;} + case 982: +#line 17 "third_party/libpg_query/grammar/statements/explain.y" + { + PGExplainStmt *n = makeNode(PGExplainStmt); + n->query = (yyvsp[0].node); + n->options = list_make1(makeDefElem("analyze", NULL, (yylsp[-2]))); + if ((yyvsp[-1].boolean)) + n->options = lappend(n->options, + makeDefElem("verbose", NULL, (yylsp[-1]))); + (yyval.node) = (PGNode *) n; + } +#line 23120 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1014: -#line 2509 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.node) = makeSQLValueFunction(PG_SVFOP_CURRENT_TIMESTAMP, -1, (yylsp[(1) - (1)])); - ;} + case 983: +#line 27 "third_party/libpg_query/grammar/statements/explain.y" + { + PGExplainStmt *n = makeNode(PGExplainStmt); + n->query = (yyvsp[0].node); + n->options = list_make1(makeDefElem("verbose", NULL, (yylsp[-1]))); + (yyval.node) = (PGNode *) n; + } +#line 23131 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1015: -#line 2513 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.node) = makeSQLValueFunction(PG_SVFOP_CURRENT_TIMESTAMP_N, (yyvsp[(3) - (4)].ival), (yylsp[(1) - (4)])); - ;} + case 984: +#line 34 "third_party/libpg_query/grammar/statements/explain.y" + { + PGExplainStmt *n = makeNode(PGExplainStmt); + n->query = (yyvsp[0].node); + n->options = (yyvsp[-2].list); + (yyval.node) = (PGNode *) n; + } +#line 23142 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1016: -#line 2517 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.node) = makeSQLValueFunction(PG_SVFOP_LOCALTIME, -1, (yylsp[(1) - (1)])); - ;} + case 985: +#line 44 "third_party/libpg_query/grammar/statements/explain.y" + { (yyval.boolean) = true; } +#line 23148 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1017: -#line 2521 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.node) = makeSQLValueFunction(PG_SVFOP_LOCALTIME_N, (yyvsp[(3) - (4)].ival), (yylsp[(1) - (4)])); - ;} + case 986: +#line 45 "third_party/libpg_query/grammar/statements/explain.y" + { (yyval.boolean) = false; } +#line 23154 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1018: -#line 2525 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.node) = makeSQLValueFunction(PG_SVFOP_LOCALTIMESTAMP, -1, (yylsp[(1) - (1)])); - ;} + case 987: +#line 50 "third_party/libpg_query/grammar/statements/explain.y" + { (yyval.node) = (PGNode *) makeString((yyvsp[0].str)); } +#line 23160 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1019: -#line 2529 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.node) = makeSQLValueFunction(PG_SVFOP_LOCALTIMESTAMP_N, (yyvsp[(3) - (4)].ival), (yylsp[(1) - (4)])); - ;} + case 988: +#line 51 "third_party/libpg_query/grammar/statements/explain.y" + { (yyval.node) = (PGNode *) (yyvsp[0].value); } +#line 23166 "third_party/libpg_query/grammar/grammar_out.cpp" + break; + + case 989: +#line 52 "third_party/libpg_query/grammar/statements/explain.y" + { (yyval.node) = NULL; } +#line 23172 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1020: -#line 2533 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.node) = makeSQLValueFunction(PG_SVFOP_CURRENT_ROLE, -1, (yylsp[(1) - (1)])); - ;} +#line 90 "third_party/libpg_query/grammar/statements/explain.y" + { (yyval.str) = (yyvsp[0].str); } +#line 23178 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1021: -#line 2537 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.node) = makeSQLValueFunction(PG_SVFOP_CURRENT_USER, -1, (yylsp[(1) - (1)])); - ;} +#line 91 "third_party/libpg_query/grammar/statements/explain.y" + { (yyval.str) = pstrdup((yyvsp[0].keyword)); } +#line 23184 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1022: -#line 2541 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.node) = makeSQLValueFunction(PG_SVFOP_SESSION_USER, -1, (yylsp[(1) - (1)])); - ;} +#line 92 "third_party/libpg_query/grammar/statements/explain.y" + { (yyval.str) = pstrdup((yyvsp[0].keyword)); } +#line 23190 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1023: -#line 2545 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.node) = makeSQLValueFunction(PG_SVFOP_USER, -1, (yylsp[(1) - (1)])); - ;} +#line 97 "third_party/libpg_query/grammar/statements/explain.y" + { (yyval.str) = (yyvsp[0].str); } +#line 23196 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1024: -#line 2549 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.node) = makeSQLValueFunction(PG_SVFOP_CURRENT_CATALOG, -1, (yylsp[(1) - (1)])); - ;} +#line 98 "third_party/libpg_query/grammar/statements/explain.y" + { (yyval.str) = (yyvsp[0].str); } +#line 23202 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1025: -#line 2553 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.node) = makeSQLValueFunction(PG_SVFOP_CURRENT_SCHEMA, -1, (yylsp[(1) - (1)])); - ;} +#line 104 "third_party/libpg_query/grammar/statements/explain.y" + { + (yyval.list) = list_make1((yyvsp[0].defelt)); + } +#line 23210 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1026: -#line 2557 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.node) = makeTypeCast((yyvsp[(3) - (6)].node), (yyvsp[(5) - (6)].typnam), 0, (yylsp[(1) - (6)])); ;} +#line 108 "third_party/libpg_query/grammar/statements/explain.y" + { + (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].defelt)); + } +#line 23218 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1027: -#line 2559 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.node) = makeTypeCast((yyvsp[(3) - (6)].node), (yyvsp[(5) - (6)].typnam), 1, (yylsp[(1) - (6)])); ;} +#line 115 "third_party/libpg_query/grammar/statements/explain.y" + {} +#line 23224 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1028: -#line 2561 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.node) = (PGNode *) makeFuncCall(SystemFuncName("date_part"), (yyvsp[(3) - (4)].list), (yylsp[(1) - (4)])); - ;} +#line 116 "third_party/libpg_query/grammar/statements/explain.y" + {} +#line 23230 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1029: -#line 2565 "third_party/libpg_query/grammar/statements/select.y" - { - /* overlay(A PLACING B FROM C FOR D) is converted to - * overlay(A, B, C, D) - * overlay(A PLACING B FROM C) is converted to - * overlay(A, B, C) - */ - (yyval.node) = (PGNode *) makeFuncCall(SystemFuncName("overlay"), (yyvsp[(3) - (4)].list), (yylsp[(1) - (4)])); - ;} +#line 121 "third_party/libpg_query/grammar/statements/explain.y" + { (yyval.str) = (char*) "true"; } +#line 23236 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1030: -#line 2574 "third_party/libpg_query/grammar/statements/select.y" - { - /* position(A in B) is converted to position(B, A) */ - (yyval.node) = (PGNode *) makeFuncCall(SystemFuncName("position"), (yyvsp[(3) - (4)].list), (yylsp[(1) - (4)])); - ;} +#line 122 "third_party/libpg_query/grammar/statements/explain.y" + { (yyval.str) = (char*) "false"; } +#line 23242 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1031: -#line 2579 "third_party/libpg_query/grammar/statements/select.y" - { - /* substring(A from B for C) is converted to - * substring(A, B, C) - thomas 2000-11-28 - */ - (yyval.node) = (PGNode *) makeFuncCall(SystemFuncName("substring"), (yyvsp[(3) - (4)].list), (yylsp[(1) - (4)])); - ;} +#line 123 "third_party/libpg_query/grammar/statements/explain.y" + { (yyval.str) = (char*) "on"; } +#line 23248 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1032: -#line 2586 "third_party/libpg_query/grammar/statements/select.y" - { - /* TREAT(expr AS target) converts expr of a particular type to target, - * which is defined to be a subtype of the original expression. - * In SQL99, this is intended for use with structured UDTs, - * but let's make this a generally useful form allowing stronger - * coercions than are handled by implicit casting. - * - * Convert SystemTypeName() to SystemFuncName() even though - * at the moment they result in the same thing. - */ - (yyval.node) = (PGNode *) makeFuncCall(SystemFuncName(((PGValue *)llast((yyvsp[(5) - (6)].typnam)->names))->val.str), - list_make1((yyvsp[(3) - (6)].node)), - (yylsp[(1) - (6)])); - ;} +#line 129 "third_party/libpg_query/grammar/statements/explain.y" + { (yyval.str) = (yyvsp[0].str); } +#line 23254 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1033: -#line 2601 "third_party/libpg_query/grammar/statements/select.y" - { - /* various trim expressions are defined in SQL - * - thomas 1997-07-19 - */ - (yyval.node) = (PGNode *) makeFuncCall(SystemFuncName("trim"), (yyvsp[(4) - (5)].list), (yylsp[(1) - (5)])); - ;} +#line 135 "third_party/libpg_query/grammar/statements/explain.y" + { + (yyval.defelt) = makeDefElem((yyvsp[-1].str), (yyvsp[0].node), (yylsp[-1])); + } +#line 23262 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1034: -#line 2608 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.node) = (PGNode *) makeFuncCall(SystemFuncName("ltrim"), (yyvsp[(4) - (5)].list), (yylsp[(1) - (5)])); - ;} +#line 142 "third_party/libpg_query/grammar/statements/explain.y" + { (yyval.str) = (yyvsp[0].str); } +#line 23268 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1035: -#line 2612 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.node) = (PGNode *) makeFuncCall(SystemFuncName("rtrim"), (yyvsp[(4) - (5)].list), (yylsp[(1) - (5)])); - ;} +#line 143 "third_party/libpg_query/grammar/statements/explain.y" + { (yyval.str) = (char*) "analyze"; } +#line 23274 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1036: -#line 2616 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.node) = (PGNode *) makeFuncCall(SystemFuncName("trim"), (yyvsp[(3) - (4)].list), (yylsp[(1) - (4)])); - ;} +#line 10 "third_party/libpg_query/grammar/statements/drop.y" + { + PGDropStmt *n = makeNode(PGDropStmt); + n->removeType = (yyvsp[-4].objtype); + n->missing_ok = true; + n->objects = (yyvsp[-1].list); + n->behavior = (yyvsp[0].dbehavior); + n->concurrent = false; + (yyval.node) = (PGNode *)n; + } +#line 23288 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1037: -#line 2620 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_NULLIF, "=", (yyvsp[(3) - (6)].node), (yyvsp[(5) - (6)].node), (yylsp[(1) - (6)])); - ;} +#line 20 "third_party/libpg_query/grammar/statements/drop.y" + { + PGDropStmt *n = makeNode(PGDropStmt); + n->removeType = (yyvsp[-2].objtype); + n->missing_ok = false; + n->objects = (yyvsp[-1].list); + n->behavior = (yyvsp[0].dbehavior); + n->concurrent = false; + (yyval.node) = (PGNode *)n; + } +#line 23302 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1038: -#line 2624 "third_party/libpg_query/grammar/statements/select.y" - { - PGCoalesceExpr *c = makeNode(PGCoalesceExpr); - c->args = (yyvsp[(3) - (4)].list); - c->location = (yylsp[(1) - (4)]); - (yyval.node) = (PGNode *)c; - ;} +#line 30 "third_party/libpg_query/grammar/statements/drop.y" + { + PGDropStmt *n = makeNode(PGDropStmt); + n->removeType = (yyvsp[-4].objtype); + n->missing_ok = true; + n->objects = (yyvsp[-1].list); + n->behavior = (yyvsp[0].dbehavior); + n->concurrent = false; + (yyval.node) = (PGNode *)n; + } +#line 23316 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1039: -#line 2637 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = (yyvsp[(4) - (5)].list); ;} +#line 40 "third_party/libpg_query/grammar/statements/drop.y" + { + PGDropStmt *n = makeNode(PGDropStmt); + n->removeType = (yyvsp[-2].objtype); + n->missing_ok = false; + n->objects = (yyvsp[-1].list); + n->behavior = (yyvsp[0].dbehavior); + n->concurrent = false; + (yyval.node) = (PGNode *)n; + } +#line 23330 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1040: -#line 2638 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = NIL; ;} +#line 50 "third_party/libpg_query/grammar/statements/drop.y" + { + PGDropStmt *n = makeNode(PGDropStmt); + n->removeType = (yyvsp[-4].objtype); + n->objects = list_make1(lappend((yyvsp[-1].list), makeString((yyvsp[-3].str)))); + n->behavior = (yyvsp[0].dbehavior); + n->missing_ok = false; + n->concurrent = false; + (yyval.node) = (PGNode *) n; + } +#line 23344 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1041: -#line 2642 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.node) = (yyvsp[(4) - (5)].node); ;} +#line 60 "third_party/libpg_query/grammar/statements/drop.y" + { + PGDropStmt *n = makeNode(PGDropStmt); + n->removeType = (yyvsp[-6].objtype); + n->objects = list_make1(lappend((yyvsp[-1].list), makeString((yyvsp[-3].str)))); + n->behavior = (yyvsp[0].dbehavior); + n->missing_ok = true; + n->concurrent = false; + (yyval.node) = (PGNode *) n; + } +#line 23358 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1042: -#line 2643 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.node) = (yyvsp[(3) - (4)].node); ;} +#line 70 "third_party/libpg_query/grammar/statements/drop.y" + { + PGDropStmt *n = makeNode(PGDropStmt); + n->removeType = PG_OBJECT_TYPE; + n->missing_ok = false; + n->objects = (yyvsp[-1].list); + n->behavior = (yyvsp[0].dbehavior); + n->concurrent = false; + (yyval.node) = (PGNode *) n; + } +#line 23372 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1043: -#line 2644 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.node) = NULL; ;} +#line 80 "third_party/libpg_query/grammar/statements/drop.y" + { + PGDropStmt *n = makeNode(PGDropStmt); + n->removeType = PG_OBJECT_TYPE; + n->missing_ok = true; + n->objects = (yyvsp[-1].list); + n->behavior = (yyvsp[0].dbehavior); + n->concurrent = false; + (yyval.node) = (PGNode *) n; + } +#line 23386 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1044: -#line 2648 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.boolean) = true; ;} +#line 93 "third_party/libpg_query/grammar/statements/drop.y" + { (yyval.objtype) = PG_OBJECT_TABLE; } +#line 23392 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1045: -#line 2649 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.boolean) = false; ;} +#line 94 "third_party/libpg_query/grammar/statements/drop.y" + { (yyval.objtype) = PG_OBJECT_SEQUENCE; } +#line 23398 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1046: -#line 2656 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = (yyvsp[(2) - (2)].list); ;} +#line 95 "third_party/libpg_query/grammar/statements/drop.y" + { (yyval.objtype) = PG_OBJECT_FUNCTION; } +#line 23404 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1047: -#line 2657 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = NIL; ;} +#line 96 "third_party/libpg_query/grammar/statements/drop.y" + { (yyval.objtype) = PG_OBJECT_FUNCTION; } +#line 23410 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1048: -#line 2661 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = list_make1((yyvsp[(1) - (1)].windef)); ;} +#line 97 "third_party/libpg_query/grammar/statements/drop.y" + { (yyval.objtype) = PG_OBJECT_TABLE_MACRO; } +#line 23416 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1049: -#line 2663 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].windef)); ;} +#line 98 "third_party/libpg_query/grammar/statements/drop.y" + { (yyval.objtype) = PG_OBJECT_VIEW; } +#line 23422 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1050: -#line 2668 "third_party/libpg_query/grammar/statements/select.y" - { - PGWindowDef *n = (yyvsp[(3) - (3)].windef); - n->name = (yyvsp[(1) - (3)].str); - (yyval.windef) = n; - ;} +#line 99 "third_party/libpg_query/grammar/statements/drop.y" + { (yyval.objtype) = PG_OBJECT_MATVIEW; } +#line 23428 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1051: -#line 2676 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.windef) = (yyvsp[(2) - (2)].windef); ;} +#line 100 "third_party/libpg_query/grammar/statements/drop.y" + { (yyval.objtype) = PG_OBJECT_INDEX; } +#line 23434 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1052: -#line 2678 "third_party/libpg_query/grammar/statements/select.y" - { - PGWindowDef *n = makeNode(PGWindowDef); - n->name = (yyvsp[(2) - (2)].str); - n->refname = NULL; - n->partitionClause = NIL; - n->orderClause = NIL; - n->frameOptions = FRAMEOPTION_DEFAULTS; - n->startOffset = NULL; - n->endOffset = NULL; - n->location = (yylsp[(2) - (2)]); - (yyval.windef) = n; - ;} +#line 101 "third_party/libpg_query/grammar/statements/drop.y" + { (yyval.objtype) = PG_OBJECT_FOREIGN_TABLE; } +#line 23440 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1053: -#line 2691 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.windef) = NULL; ;} +#line 102 "third_party/libpg_query/grammar/statements/drop.y" + { (yyval.objtype) = PG_OBJECT_COLLATION; } +#line 23446 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1054: -#line 2696 "third_party/libpg_query/grammar/statements/select.y" - { - PGWindowDef *n = makeNode(PGWindowDef); - n->name = NULL; - n->refname = (yyvsp[(2) - (6)].str); - n->partitionClause = (yyvsp[(3) - (6)].list); - n->orderClause = (yyvsp[(4) - (6)].list); - /* copy relevant fields of opt_frame_clause */ - n->frameOptions = (yyvsp[(5) - (6)].windef)->frameOptions; - n->startOffset = (yyvsp[(5) - (6)].windef)->startOffset; - n->endOffset = (yyvsp[(5) - (6)].windef)->endOffset; - n->location = (yylsp[(1) - (6)]); - (yyval.windef) = n; - ;} +#line 103 "third_party/libpg_query/grammar/statements/drop.y" + { (yyval.objtype) = PG_OBJECT_CONVERSION; } +#line 23452 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1055: -#line 2721 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.str) = (yyvsp[(1) - (1)].str); ;} +#line 104 "third_party/libpg_query/grammar/statements/drop.y" + { (yyval.objtype) = PG_OBJECT_STATISTIC_EXT; } +#line 23458 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1056: -#line 2722 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.str) = NULL; ;} +#line 105 "third_party/libpg_query/grammar/statements/drop.y" + { (yyval.objtype) = PG_OBJECT_TSPARSER; } +#line 23464 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1057: -#line 2725 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = (yyvsp[(3) - (3)].list); ;} +#line 106 "third_party/libpg_query/grammar/statements/drop.y" + { (yyval.objtype) = PG_OBJECT_TSDICTIONARY; } +#line 23470 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1058: -#line 2726 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = NIL; ;} +#line 107 "third_party/libpg_query/grammar/statements/drop.y" + { (yyval.objtype) = PG_OBJECT_TSTEMPLATE; } +#line 23476 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1059: -#line 2738 "third_party/libpg_query/grammar/statements/select.y" - { - PGWindowDef *n = (yyvsp[(2) - (2)].windef); - n->frameOptions |= FRAMEOPTION_NONDEFAULT | FRAMEOPTION_RANGE; - (yyval.windef) = n; - ;} +#line 108 "third_party/libpg_query/grammar/statements/drop.y" + { (yyval.objtype) = PG_OBJECT_TSCONFIGURATION; } +#line 23482 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1060: -#line 2744 "third_party/libpg_query/grammar/statements/select.y" - { - PGWindowDef *n = (yyvsp[(2) - (2)].windef); - n->frameOptions |= FRAMEOPTION_NONDEFAULT | FRAMEOPTION_ROWS; - (yyval.windef) = n; - ;} +#line 113 "third_party/libpg_query/grammar/statements/drop.y" + { (yyval.objtype) = PG_OBJECT_ACCESS_METHOD; } +#line 23488 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1061: -#line 2750 "third_party/libpg_query/grammar/statements/select.y" - { - PGWindowDef *n = makeNode(PGWindowDef); - n->frameOptions = FRAMEOPTION_DEFAULTS; - n->startOffset = NULL; - n->endOffset = NULL; - (yyval.windef) = n; - ;} +#line 114 "third_party/libpg_query/grammar/statements/drop.y" + { (yyval.objtype) = PG_OBJECT_EVENT_TRIGGER; } +#line 23494 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1062: -#line 2760 "third_party/libpg_query/grammar/statements/select.y" - { - PGWindowDef *n = (yyvsp[(1) - (1)].windef); - /* reject invalid cases */ - if (n->frameOptions & FRAMEOPTION_START_UNBOUNDED_FOLLOWING) - ereport(ERROR, - (errcode(PG_ERRCODE_WINDOWING_ERROR), - errmsg("frame start cannot be UNBOUNDED FOLLOWING"), - parser_errposition((yylsp[(1) - (1)])))); - if (n->frameOptions & FRAMEOPTION_START_VALUE_FOLLOWING) - ereport(ERROR, - (errcode(PG_ERRCODE_WINDOWING_ERROR), - errmsg("frame starting from following row cannot end with current row"), - parser_errposition((yylsp[(1) - (1)])))); - n->frameOptions |= FRAMEOPTION_END_CURRENT_ROW; - (yyval.windef) = n; - ;} +#line 115 "third_party/libpg_query/grammar/statements/drop.y" + { (yyval.objtype) = PG_OBJECT_EXTENSION; } +#line 23500 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1063: -#line 2777 "third_party/libpg_query/grammar/statements/select.y" - { - PGWindowDef *n1 = (yyvsp[(2) - (4)].windef); - PGWindowDef *n2 = (yyvsp[(4) - (4)].windef); - /* form merged options */ - int frameOptions = n1->frameOptions; - /* shift converts START_ options to END_ options */ - frameOptions |= n2->frameOptions << 1; - frameOptions |= FRAMEOPTION_BETWEEN; - /* reject invalid cases */ - if (frameOptions & FRAMEOPTION_START_UNBOUNDED_FOLLOWING) - ereport(ERROR, - (errcode(PG_ERRCODE_WINDOWING_ERROR), - errmsg("frame start cannot be UNBOUNDED FOLLOWING"), - parser_errposition((yylsp[(2) - (4)])))); - if (frameOptions & FRAMEOPTION_END_UNBOUNDED_PRECEDING) - ereport(ERROR, - (errcode(PG_ERRCODE_WINDOWING_ERROR), - errmsg("frame end cannot be UNBOUNDED PRECEDING"), - parser_errposition((yylsp[(4) - (4)])))); - if ((frameOptions & FRAMEOPTION_START_CURRENT_ROW) && - (frameOptions & FRAMEOPTION_END_VALUE_PRECEDING)) - ereport(ERROR, - (errcode(PG_ERRCODE_WINDOWING_ERROR), - errmsg("frame starting from current row cannot have preceding rows"), - parser_errposition((yylsp[(4) - (4)])))); - if ((frameOptions & FRAMEOPTION_START_VALUE_FOLLOWING) && - (frameOptions & (FRAMEOPTION_END_VALUE_PRECEDING | - FRAMEOPTION_END_CURRENT_ROW))) - ereport(ERROR, - (errcode(PG_ERRCODE_WINDOWING_ERROR), - errmsg("frame starting from following row cannot have preceding rows"), - parser_errposition((yylsp[(4) - (4)])))); - n1->frameOptions = frameOptions; - n1->endOffset = n2->startOffset; - (yyval.windef) = n1; - ;} +#line 116 "third_party/libpg_query/grammar/statements/drop.y" + { (yyval.objtype) = PG_OBJECT_FDW; } +#line 23506 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1064: -#line 2822 "third_party/libpg_query/grammar/statements/select.y" - { - PGWindowDef *n = makeNode(PGWindowDef); - n->frameOptions = FRAMEOPTION_START_UNBOUNDED_PRECEDING; - n->startOffset = NULL; - n->endOffset = NULL; - (yyval.windef) = n; - ;} +#line 117 "third_party/libpg_query/grammar/statements/drop.y" + { (yyval.objtype) = PG_OBJECT_PUBLICATION; } +#line 23512 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1065: -#line 2830 "third_party/libpg_query/grammar/statements/select.y" - { - PGWindowDef *n = makeNode(PGWindowDef); - n->frameOptions = FRAMEOPTION_START_UNBOUNDED_FOLLOWING; - n->startOffset = NULL; - n->endOffset = NULL; - (yyval.windef) = n; - ;} +#line 118 "third_party/libpg_query/grammar/statements/drop.y" + { (yyval.objtype) = PG_OBJECT_SCHEMA; } +#line 23518 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1066: -#line 2838 "third_party/libpg_query/grammar/statements/select.y" - { - PGWindowDef *n = makeNode(PGWindowDef); - n->frameOptions = FRAMEOPTION_START_CURRENT_ROW; - n->startOffset = NULL; - n->endOffset = NULL; - (yyval.windef) = n; - ;} +#line 119 "third_party/libpg_query/grammar/statements/drop.y" + { (yyval.objtype) = PG_OBJECT_FOREIGN_SERVER; } +#line 23524 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1067: -#line 2846 "third_party/libpg_query/grammar/statements/select.y" - { - PGWindowDef *n = makeNode(PGWindowDef); - n->frameOptions = FRAMEOPTION_START_VALUE_PRECEDING; - n->startOffset = (yyvsp[(1) - (2)].node); - n->endOffset = NULL; - (yyval.windef) = n; - ;} +#line 124 "third_party/libpg_query/grammar/statements/drop.y" + { (yyval.list) = list_make1((yyvsp[0].list)); } +#line 23530 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1068: -#line 2854 "third_party/libpg_query/grammar/statements/select.y" - { - PGWindowDef *n = makeNode(PGWindowDef); - n->frameOptions = FRAMEOPTION_START_VALUE_FOLLOWING; - n->startOffset = (yyvsp[(1) - (2)].node); - n->endOffset = NULL; - (yyval.windef) = n; - ;} +#line 125 "third_party/libpg_query/grammar/statements/drop.y" + { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].list)); } +#line 23536 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1069: -#line 2874 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = (yyvsp[(3) - (4)].list); ;} +#line 130 "third_party/libpg_query/grammar/statements/drop.y" + { (yyval.dbehavior) = PG_DROP_CASCADE; } +#line 23542 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1070: -#line 2875 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = NIL; ;} +#line 131 "third_party/libpg_query/grammar/statements/drop.y" + { (yyval.dbehavior) = PG_DROP_RESTRICT; } +#line 23548 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1071: -#line 2878 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = (yyvsp[(1) - (1)].list);;} +#line 132 "third_party/libpg_query/grammar/statements/drop.y" + { (yyval.dbehavior) = PG_DROP_RESTRICT; /* default */ } +#line 23554 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1072: -#line 2879 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = lappend((yyvsp[(2) - (5)].list), (yyvsp[(4) - (5)].node)); ;} +#line 137 "third_party/libpg_query/grammar/statements/drop.y" + { (yyval.objtype) = PG_OBJECT_POLICY; } +#line 23560 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1073: -#line 2883 "third_party/libpg_query/grammar/statements/select.y" - { - PGNamedArgExpr *na = makeNode(PGNamedArgExpr); - na->name = (yyvsp[(1) - (3)].str); - na->arg = (PGExpr *) (yyvsp[(3) - (3)].node); - na->argnumber = -1; - na->location = (yylsp[(1) - (3)]); - (yyval.node) = (PGNode *) na; - ;} +#line 138 "third_party/libpg_query/grammar/statements/drop.y" + { (yyval.objtype) = PG_OBJECT_RULE; } +#line 23566 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1074: -#line 2893 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); ;} +#line 139 "third_party/libpg_query/grammar/statements/drop.y" + { (yyval.objtype) = PG_OBJECT_TRIGGER; } +#line 23572 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1075: -#line 2894 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node)); ;} +#line 142 "third_party/libpg_query/grammar/statements/drop.y" + { (yyval.list) = list_make1((yyvsp[0].typnam)); } +#line 23578 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1076: -#line 2898 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = (yyvsp[(1) - (1)].list); ;} +#line 143 "third_party/libpg_query/grammar/statements/drop.y" + { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].typnam)); } +#line 23584 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1077: -#line 2899 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = (yyvsp[(1) - (2)].list); ;} +#line 8 "third_party/libpg_query/grammar/statements/create_type.y" + { + PGCreateTypeStmt *n = makeNode(PGCreateTypeStmt); + n->typeName = (yyvsp[-2].list); + auto name = std::string(reinterpret_cast((yyvsp[0].typnam)->names->tail->data.ptr_value)->val.str); + if (name == "enum") { + n->kind = PG_NEWTYPE_ENUM; + n->vals = (yyvsp[0].typnam)->typmods; + } else { + n->kind = PG_NEWTYPE_ALIAS; + n->ofType = (yyvsp[0].typnam); + } + (yyval.node) = (PGNode *)n; + } +#line 23602 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1078: -#line 2903 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.subquerytype) = PG_ANY_SUBLINK; ;} +#line 10 "third_party/libpg_query/grammar/statements/alter_table.y" + { + PGAlterTableStmt *n = makeNode(PGAlterTableStmt); + n->relation = (yyvsp[-1].range); + n->cmds = (yyvsp[0].list); + n->relkind = PG_OBJECT_TABLE; + n->missing_ok = false; + (yyval.node) = (PGNode *)n; + } +#line 23615 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1079: -#line 2904 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.subquerytype) = PG_ANY_SUBLINK; ;} +#line 19 "third_party/libpg_query/grammar/statements/alter_table.y" + { + PGAlterTableStmt *n = makeNode(PGAlterTableStmt); + n->relation = (yyvsp[-1].range); + n->cmds = (yyvsp[0].list); + n->relkind = PG_OBJECT_TABLE; + n->missing_ok = true; + (yyval.node) = (PGNode *)n; + } +#line 23628 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1080: -#line 2905 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.subquerytype) = PG_ALL_SUBLINK; ;} +#line 28 "third_party/libpg_query/grammar/statements/alter_table.y" + { + PGAlterTableStmt *n = makeNode(PGAlterTableStmt); + n->relation = (yyvsp[-1].range); + n->cmds = (yyvsp[0].list); + n->relkind = PG_OBJECT_INDEX; + n->missing_ok = false; + (yyval.node) = (PGNode *)n; + } +#line 23641 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1081: -#line 2908 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.str) = (yyvsp[(1) - (1)].str); ;} +#line 37 "third_party/libpg_query/grammar/statements/alter_table.y" + { + PGAlterTableStmt *n = makeNode(PGAlterTableStmt); + n->relation = (yyvsp[-1].range); + n->cmds = (yyvsp[0].list); + n->relkind = PG_OBJECT_INDEX; + n->missing_ok = true; + (yyval.node) = (PGNode *)n; + } +#line 23654 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1082: -#line 2909 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.str) = (char*) (yyvsp[(1) - (1)].conststr); ;} +#line 46 "third_party/libpg_query/grammar/statements/alter_table.y" + { + PGAlterTableStmt *n = makeNode(PGAlterTableStmt); + n->relation = (yyvsp[-1].range); + n->cmds = (yyvsp[0].list); + n->relkind = PG_OBJECT_SEQUENCE; + n->missing_ok = false; + (yyval.node) = (PGNode *)n; + } +#line 23667 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1083: -#line 2912 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.conststr) = "+"; ;} +#line 55 "third_party/libpg_query/grammar/statements/alter_table.y" + { + PGAlterTableStmt *n = makeNode(PGAlterTableStmt); + n->relation = (yyvsp[-1].range); + n->cmds = (yyvsp[0].list); + n->relkind = PG_OBJECT_SEQUENCE; + n->missing_ok = true; + (yyval.node) = (PGNode *)n; + } +#line 23680 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1084: -#line 2913 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.conststr) = "-"; ;} +#line 64 "third_party/libpg_query/grammar/statements/alter_table.y" + { + PGAlterTableStmt *n = makeNode(PGAlterTableStmt); + n->relation = (yyvsp[-1].range); + n->cmds = (yyvsp[0].list); + n->relkind = PG_OBJECT_VIEW; + n->missing_ok = false; + (yyval.node) = (PGNode *)n; + } +#line 23693 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1085: -#line 2914 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.conststr) = "*"; ;} +#line 73 "third_party/libpg_query/grammar/statements/alter_table.y" + { + PGAlterTableStmt *n = makeNode(PGAlterTableStmt); + n->relation = (yyvsp[-1].range); + n->cmds = (yyvsp[0].list); + n->relkind = PG_OBJECT_VIEW; + n->missing_ok = true; + (yyval.node) = (PGNode *)n; + } +#line 23706 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1086: -#line 2915 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.conststr) = "/"; ;} +#line 86 "third_party/libpg_query/grammar/statements/alter_table.y" + { (yyval.list) = list_make1((yyvsp[0].defelt)); } +#line 23712 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1087: -#line 2916 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.conststr) = "%"; ;} +#line 88 "third_party/libpg_query/grammar/statements/alter_table.y" + { (yyval.list) = lappend((yyvsp[-1].list), (yyvsp[0].defelt)); } +#line 23718 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1088: -#line 2917 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.conststr) = "^"; ;} +#line 93 "third_party/libpg_query/grammar/statements/alter_table.y" + { (yyval.node) = (yyvsp[0].node); } +#line 23724 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1089: -#line 2918 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.conststr) = "**"; ;} +#line 94 "third_party/libpg_query/grammar/statements/alter_table.y" + { (yyval.node) = NULL; } +#line 23730 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1090: -#line 2919 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.conststr) = "<"; ;} +#line 100 "third_party/libpg_query/grammar/statements/alter_table.y" + { + (yyval.defelt) = makeDefElem("restart", NULL, (yylsp[0])); + } +#line 23738 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1091: -#line 2920 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.conststr) = ">"; ;} +#line 104 "third_party/libpg_query/grammar/statements/alter_table.y" + { + (yyval.defelt) = makeDefElem("restart", (PGNode *)(yyvsp[0].value), (yylsp[-2])); + } +#line 23746 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1092: -#line 2921 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.conststr) = "="; ;} +#line 108 "third_party/libpg_query/grammar/statements/alter_table.y" + { + if (strcmp((yyvsp[0].defelt)->defname, "as") == 0 || + strcmp((yyvsp[0].defelt)->defname, "restart") == 0 || + strcmp((yyvsp[0].defelt)->defname, "owned_by") == 0) + ereport(ERROR, + (errcode(PG_ERRCODE_SYNTAX_ERROR), + errmsg("sequence option \"%s\" not supported here", (yyvsp[0].defelt)->defname), + parser_errposition((yylsp[0])))); + (yyval.defelt) = (yyvsp[0].defelt); + } +#line 23761 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1093: -#line 2922 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.conststr) = "<="; ;} +#line 119 "third_party/libpg_query/grammar/statements/alter_table.y" + { + (yyval.defelt) = makeDefElem("generated", (PGNode *) makeInteger((yyvsp[0].ival)), (yylsp[-2])); + } +#line 23769 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1094: -#line 2923 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.conststr) = ">="; ;} +#line 127 "third_party/libpg_query/grammar/statements/alter_table.y" + { + (yyval.list) = list_make1((yyvsp[0].defelt)); + } +#line 23777 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1095: -#line 2924 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.conststr) = "<>"; ;} +#line 131 "third_party/libpg_query/grammar/statements/alter_table.y" + { + (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].defelt)); + } +#line 23785 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1096: -#line 2928 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = list_make1(makeString((yyvsp[(1) - (1)].str))); ;} +#line 140 "third_party/libpg_query/grammar/statements/alter_table.y" + { + PGAlterTableCmd *n = makeNode(PGAlterTableCmd); + n->subtype = PG_AT_AddColumn; + n->def = (yyvsp[0].node); + n->missing_ok = false; + (yyval.node) = (PGNode *)n; + } +#line 23797 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1097: -#line 2930 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = (yyvsp[(3) - (4)].list); ;} +#line 149 "third_party/libpg_query/grammar/statements/alter_table.y" + { + PGAlterTableCmd *n = makeNode(PGAlterTableCmd); + n->subtype = PG_AT_AddColumn; + n->def = (yyvsp[0].node); + n->missing_ok = true; + (yyval.node) = (PGNode *)n; + } +#line 23809 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1098: -#line 2935 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = list_make1(makeString((yyvsp[(1) - (1)].str))); ;} +#line 158 "third_party/libpg_query/grammar/statements/alter_table.y" + { + PGAlterTableCmd *n = makeNode(PGAlterTableCmd); + n->subtype = PG_AT_AddColumn; + n->def = (yyvsp[0].node); + n->missing_ok = false; + (yyval.node) = (PGNode *)n; + } +#line 23821 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1099: -#line 2937 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = (yyvsp[(3) - (4)].list); ;} +#line 167 "third_party/libpg_query/grammar/statements/alter_table.y" + { + PGAlterTableCmd *n = makeNode(PGAlterTableCmd); + n->subtype = PG_AT_AddColumn; + n->def = (yyvsp[0].node); + n->missing_ok = true; + (yyval.node) = (PGNode *)n; + } +#line 23833 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1100: -#line 2942 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = list_make1(makeString((yyvsp[(1) - (1)].str))); ;} +#line 176 "third_party/libpg_query/grammar/statements/alter_table.y" + { + PGAlterTableCmd *n = makeNode(PGAlterTableCmd); + n->subtype = PG_AT_ColumnDefault; + n->name = (yyvsp[-1].str); + n->def = (yyvsp[0].node); + (yyval.node) = (PGNode *)n; + } +#line 23845 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1101: -#line 2944 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = (yyvsp[(3) - (4)].list); ;} +#line 185 "third_party/libpg_query/grammar/statements/alter_table.y" + { + PGAlterTableCmd *n = makeNode(PGAlterTableCmd); + n->subtype = PG_AT_DropNotNull; + n->name = (yyvsp[-3].str); + (yyval.node) = (PGNode *)n; + } +#line 23856 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1102: -#line 2946 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = list_make1(makeString("~~")); ;} +#line 193 "third_party/libpg_query/grammar/statements/alter_table.y" + { + PGAlterTableCmd *n = makeNode(PGAlterTableCmd); + n->subtype = PG_AT_SetNotNull; + n->name = (yyvsp[-3].str); + (yyval.node) = (PGNode *)n; + } +#line 23867 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1103: -#line 2948 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = list_make1(makeString("!~~")); ;} +#line 201 "third_party/libpg_query/grammar/statements/alter_table.y" + { + PGAlterTableCmd *n = makeNode(PGAlterTableCmd); + n->subtype = PG_AT_SetStatistics; + n->name = (yyvsp[-3].str); + n->def = (PGNode *) makeInteger((yyvsp[0].ival)); + (yyval.node) = (PGNode *)n; + } +#line 23879 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1104: -#line 2950 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = list_make1(makeString("~~~")); ;} +#line 210 "third_party/libpg_query/grammar/statements/alter_table.y" + { + PGAlterTableCmd *n = makeNode(PGAlterTableCmd); + n->subtype = PG_AT_SetOptions; + n->name = (yyvsp[-2].str); + n->def = (PGNode *) (yyvsp[0].list); + (yyval.node) = (PGNode *)n; + } +#line 23891 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1105: -#line 2952 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = list_make1(makeString("!~~~")); ;} +#line 219 "third_party/libpg_query/grammar/statements/alter_table.y" + { + PGAlterTableCmd *n = makeNode(PGAlterTableCmd); + n->subtype = PG_AT_ResetOptions; + n->name = (yyvsp[-2].str); + n->def = (PGNode *) (yyvsp[0].list); + (yyval.node) = (PGNode *)n; + } +#line 23903 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1106: -#line 2954 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = list_make1(makeString("~~*")); ;} +#line 228 "third_party/libpg_query/grammar/statements/alter_table.y" + { + PGAlterTableCmd *n = makeNode(PGAlterTableCmd); + n->subtype = PG_AT_SetStorage; + n->name = (yyvsp[-3].str); + n->def = (PGNode *) makeString((yyvsp[0].str)); + (yyval.node) = (PGNode *)n; + } +#line 23915 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1107: -#line 2956 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = list_make1(makeString("!~~*")); ;} +#line 237 "third_party/libpg_query/grammar/statements/alter_table.y" + { + PGAlterTableCmd *n = makeNode(PGAlterTableCmd); + PGConstraint *c = makeNode(PGConstraint); + + c->contype = PG_CONSTR_IDENTITY; + c->generated_when = (yyvsp[-3].ival); + c->options = (yyvsp[0].list); + c->location = (yylsp[-4]); + + n->subtype = PG_AT_AddIdentity; + n->name = (yyvsp[-6].str); + n->def = (PGNode *) c; + + (yyval.node) = (PGNode *)n; + } +#line 23935 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1108: -#line 2970 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = list_make1(makeString((yyvsp[(1) - (1)].str))); ;} +#line 254 "third_party/libpg_query/grammar/statements/alter_table.y" + { + PGAlterTableCmd *n = makeNode(PGAlterTableCmd); + n->subtype = PG_AT_SetIdentity; + n->name = (yyvsp[-1].str); + n->def = (PGNode *) (yyvsp[0].list); + (yyval.node) = (PGNode *)n; + } +#line 23947 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1109: -#line 2972 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = lcons(makeString((yyvsp[(1) - (3)].str)), (yyvsp[(3) - (3)].list)); ;} +#line 263 "third_party/libpg_query/grammar/statements/alter_table.y" + { + PGAlterTableCmd *n = makeNode(PGAlterTableCmd); + n->subtype = AT_DropIdentity; + n->name = (yyvsp[-2].str); + n->missing_ok = false; + (yyval.node) = (PGNode *)n; + } +#line 23959 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1110: -#line 2976 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); - ;} +#line 272 "third_party/libpg_query/grammar/statements/alter_table.y" + { + PGAlterTableCmd *n = makeNode(PGAlterTableCmd); + n->subtype = AT_DropIdentity; + n->name = (yyvsp[-4].str); + n->missing_ok = true; + (yyval.node) = (PGNode *)n; + } +#line 23971 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1111: -#line 2980 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node)); - ;} +#line 281 "third_party/libpg_query/grammar/statements/alter_table.y" + { + PGAlterTableCmd *n = makeNode(PGAlterTableCmd); + n->subtype = PG_AT_DropColumn; + n->name = (yyvsp[-1].str); + n->behavior = (yyvsp[0].dbehavior); + n->missing_ok = true; + (yyval.node) = (PGNode *)n; + } +#line 23984 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1112: -#line 2987 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.list) = (yyvsp[(1) - (1)].list); - ;} +#line 291 "third_party/libpg_query/grammar/statements/alter_table.y" + { + PGAlterTableCmd *n = makeNode(PGAlterTableCmd); + n->subtype = PG_AT_DropColumn; + n->name = (yyvsp[-1].str); + n->behavior = (yyvsp[0].dbehavior); + n->missing_ok = false; + (yyval.node) = (PGNode *)n; + } +#line 23997 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1113: -#line 2992 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.list) = (yyvsp[(1) - (2)].list); - ;} +#line 304 "third_party/libpg_query/grammar/statements/alter_table.y" + { + PGAlterTableCmd *n = makeNode(PGAlterTableCmd); + PGColumnDef *def = makeNode(PGColumnDef); + n->subtype = PG_AT_AlterColumnType; + n->name = (yyvsp[-5].str); + n->def = (PGNode *) def; + /* We only use these fields of the PGColumnDef node */ + def->typeName = (yyvsp[-2].typnam); + def->collClause = (PGCollateClause *) (yyvsp[-1].node); + def->raw_default = (yyvsp[0].node); + def->location = (yylsp[-5]); + (yyval.node) = (PGNode *)n; + } +#line 24015 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1114: -#line 2999 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.list) = (yyvsp[(1) - (1)].list); - ;} +#line 319 "third_party/libpg_query/grammar/statements/alter_table.y" + { + PGAlterTableCmd *n = makeNode(PGAlterTableCmd); + n->subtype = PG_AT_AlterColumnGenericOptions; + n->name = (yyvsp[-1].str); + n->def = (PGNode *) (yyvsp[0].list); + (yyval.node) = (PGNode *)n; + } +#line 24027 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1115: -#line 3003 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.list) = NULL; - ;} +#line 328 "third_party/libpg_query/grammar/statements/alter_table.y" + { + PGAlterTableCmd *n = makeNode(PGAlterTableCmd); + n->subtype = PG_AT_AddConstraint; + n->def = (yyvsp[0].node); + (yyval.node) = (PGNode *)n; + } +#line 24038 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1116: -#line 3012 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); - ;} +#line 336 "third_party/libpg_query/grammar/statements/alter_table.y" + { + PGAlterTableCmd *n = makeNode(PGAlterTableCmd); + PGConstraint *c = makeNode(PGConstraint); + n->subtype = PG_AT_AlterConstraint; + n->def = (PGNode *) c; + c->contype = PG_CONSTR_FOREIGN; /* others not supported, yet */ + c->conname = (yyvsp[-1].str); + processCASbits((yyvsp[0].ival), (yylsp[0]), "ALTER CONSTRAINT statement", + &c->deferrable, + &c->initdeferred, + NULL, NULL, yyscanner); + (yyval.node) = (PGNode *)n; + } +#line 24056 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1117: -#line 3016 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node)); - ;} +#line 351 "third_party/libpg_query/grammar/statements/alter_table.y" + { + PGAlterTableCmd *n = makeNode(PGAlterTableCmd); + n->subtype = PG_AT_ValidateConstraint; + n->name = (yyvsp[0].str); + (yyval.node) = (PGNode *)n; + } +#line 24067 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1118: -#line 3022 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.node) = (yyvsp[(1) - (1)].node); - ;} +#line 359 "third_party/libpg_query/grammar/statements/alter_table.y" + { + PGAlterTableCmd *n = makeNode(PGAlterTableCmd); + n->subtype = PG_AT_DropConstraint; + n->name = (yyvsp[-1].str); + n->behavior = (yyvsp[0].dbehavior); + n->missing_ok = true; + (yyval.node) = (PGNode *)n; + } +#line 24080 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1119: -#line 3026 "third_party/libpg_query/grammar/statements/select.y" - { - PGNamedArgExpr *na = makeNode(PGNamedArgExpr); - na->name = (yyvsp[(1) - (3)].str); - na->arg = (PGExpr *) (yyvsp[(3) - (3)].node); - na->argnumber = -1; /* until determined */ - na->location = (yylsp[(1) - (3)]); - (yyval.node) = (PGNode *) na; - ;} +#line 369 "third_party/libpg_query/grammar/statements/alter_table.y" + { + PGAlterTableCmd *n = makeNode(PGAlterTableCmd); + n->subtype = PG_AT_DropConstraint; + n->name = (yyvsp[-1].str); + n->behavior = (yyvsp[0].dbehavior); + n->missing_ok = false; + (yyval.node) = (PGNode *)n; + } +#line 24093 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1120: -#line 3035 "third_party/libpg_query/grammar/statements/select.y" - { - PGNamedArgExpr *na = makeNode(PGNamedArgExpr); - na->name = (yyvsp[(1) - (3)].str); - na->arg = (PGExpr *) (yyvsp[(3) - (3)].node); - na->argnumber = -1; /* until determined */ - na->location = (yylsp[(1) - (3)]); - (yyval.node) = (PGNode *) na; - ;} +#line 379 "third_party/libpg_query/grammar/statements/alter_table.y" + { + PGAlterTableCmd *n = makeNode(PGAlterTableCmd); + n->subtype = PG_AT_SetLogged; + (yyval.node) = (PGNode *)n; + } +#line 24103 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1121: -#line 3045 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = list_make1((yyvsp[(1) - (1)].typnam)); ;} +#line 386 "third_party/libpg_query/grammar/statements/alter_table.y" + { + PGAlterTableCmd *n = makeNode(PGAlterTableCmd); + n->subtype = PG_AT_SetUnLogged; + (yyval.node) = (PGNode *)n; + } +#line 24113 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1122: -#line 3046 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].typnam)); ;} +#line 393 "third_party/libpg_query/grammar/statements/alter_table.y" + { + PGAlterTableCmd *n = makeNode(PGAlterTableCmd); + n->subtype = PG_AT_SetRelOptions; + n->def = (PGNode *)(yyvsp[0].list); + (yyval.node) = (PGNode *)n; + } +#line 24124 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1123: -#line 3051 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.list) = list_make2(makeStringConst((yyvsp[(1) - (3)].str), (yylsp[(1) - (3)])), (yyvsp[(3) - (3)].node)); - ;} +#line 401 "third_party/libpg_query/grammar/statements/alter_table.y" + { + PGAlterTableCmd *n = makeNode(PGAlterTableCmd); + n->subtype = PG_AT_ResetRelOptions; + n->def = (PGNode *)(yyvsp[0].list); + (yyval.node) = (PGNode *)n; + } +#line 24135 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1124: -#line 3054 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = NIL; ;} +#line 408 "third_party/libpg_query/grammar/statements/alter_table.y" + { + PGAlterTableCmd *n = makeNode(PGAlterTableCmd); + n->subtype = PG_AT_GenericOptions; + n->def = (PGNode *)(yyvsp[0].list); + (yyval.node) = (PGNode *) n; + } +#line 24146 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1125: -#line 3061 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.str) = (yyvsp[(1) - (1)].str); ;} +#line 418 "third_party/libpg_query/grammar/statements/alter_table.y" + { (yyval.node) = (yyvsp[0].node); } +#line 24152 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1126: -#line 3062 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.str) = (char*) "year"; ;} +#line 419 "third_party/libpg_query/grammar/statements/alter_table.y" + { (yyval.node) = NULL; } +#line 24158 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1127: -#line 3063 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.str) = (char*) "month"; ;} +#line 425 "third_party/libpg_query/grammar/statements/alter_table.y" + { + (yyval.defelt) = (yyvsp[0].defelt); + } +#line 24166 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1128: -#line 3064 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.str) = (char*) "day"; ;} +#line 429 "third_party/libpg_query/grammar/statements/alter_table.y" + { + (yyval.defelt) = (yyvsp[0].defelt); + (yyval.defelt)->defaction = PG_DEFELEM_SET; + } +#line 24175 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1129: -#line 3065 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.str) = (char*) "hour"; ;} +#line 434 "third_party/libpg_query/grammar/statements/alter_table.y" + { + (yyval.defelt) = (yyvsp[0].defelt); + (yyval.defelt)->defaction = PG_DEFELEM_ADD; + } +#line 24184 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1130: -#line 3066 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.str) = (char*) "minute"; ;} +#line 439 "third_party/libpg_query/grammar/statements/alter_table.y" + { + (yyval.defelt) = makeDefElemExtended(NULL, (yyvsp[0].str), NULL, DEFELEM_DROP, (yylsp[0])); + } +#line 24192 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1131: -#line 3067 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.str) = (char*) "second"; ;} +#line 446 "third_party/libpg_query/grammar/statements/alter_table.y" + { (yyval.list) = list_make1((yyvsp[0].node)); } +#line 24198 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1132: -#line 3068 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.str) = (char*) "millisecond"; ;} +#line 447 "third_party/libpg_query/grammar/statements/alter_table.y" + { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].node)); } +#line 24204 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1133: -#line 3069 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.str) = (char*) "microsecond"; ;} +#line 452 "third_party/libpg_query/grammar/statements/alter_table.y" + { (yyval.list) = (yyvsp[-1].list); } +#line 24210 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1134: -#line 3070 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.str) = (yyvsp[(1) - (1)].str); ;} +#line 456 "third_party/libpg_query/grammar/statements/alter_table.y" + { (yyval.ival) = 1; } +#line 24216 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1135: -#line 3081 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.list) = list_make4((yyvsp[(1) - (4)].node), (yyvsp[(2) - (4)].node), (yyvsp[(3) - (4)].node), (yyvsp[(4) - (4)].node)); - ;} +#line 457 "third_party/libpg_query/grammar/statements/alter_table.y" + { (yyval.ival) = 0; } +#line 24222 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1136: -#line 3085 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.list) = list_make3((yyvsp[(1) - (3)].node), (yyvsp[(2) - (3)].node), (yyvsp[(3) - (3)].node)); - ;} +#line 458 "third_party/libpg_query/grammar/statements/alter_table.y" + { (yyval.ival) = 0; } +#line 24228 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1137: -#line 3092 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.node) = (yyvsp[(2) - (2)].node); ;} +#line 3 "third_party/libpg_query/grammar/statements/transaction.y" + { + PGTransactionStmt *n = makeNode(PGTransactionStmt); + n->kind = PG_TRANS_STMT_ROLLBACK; + n->options = NIL; + (yyval.node) = (PGNode *)n; + } +#line 24239 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1138: -#line 3098 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = list_make2((yyvsp[(3) - (3)].node), (yyvsp[(1) - (3)].node)); ;} +#line 10 "third_party/libpg_query/grammar/statements/transaction.y" + { + PGTransactionStmt *n = makeNode(PGTransactionStmt); + n->kind = PG_TRANS_STMT_BEGIN; + (yyval.node) = (PGNode *)n; + } +#line 24249 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1139: -#line 3099 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = NIL; ;} +#line 16 "third_party/libpg_query/grammar/statements/transaction.y" + { + PGTransactionStmt *n = makeNode(PGTransactionStmt); + n->kind = PG_TRANS_STMT_START; + (yyval.node) = (PGNode *)n; + } +#line 24259 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1140: -#line 3116 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.list) = list_make3((yyvsp[(1) - (3)].node), (yyvsp[(2) - (3)].node), (yyvsp[(3) - (3)].node)); - ;} +#line 22 "third_party/libpg_query/grammar/statements/transaction.y" + { + PGTransactionStmt *n = makeNode(PGTransactionStmt); + n->kind = PG_TRANS_STMT_COMMIT; + n->options = NIL; + (yyval.node) = (PGNode *)n; + } +#line 24270 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1141: -#line 3120 "third_party/libpg_query/grammar/statements/select.y" - { - /* not legal per SQL99, but might as well allow it */ - (yyval.list) = list_make3((yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yyvsp[(2) - (3)].node)); - ;} +#line 29 "third_party/libpg_query/grammar/statements/transaction.y" + { + PGTransactionStmt *n = makeNode(PGTransactionStmt); + n->kind = PG_TRANS_STMT_COMMIT; + n->options = NIL; + (yyval.node) = (PGNode *)n; + } +#line 24281 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1142: -#line 3125 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.list) = list_make2((yyvsp[(1) - (2)].node), (yyvsp[(2) - (2)].node)); - ;} +#line 36 "third_party/libpg_query/grammar/statements/transaction.y" + { + PGTransactionStmt *n = makeNode(PGTransactionStmt); + n->kind = PG_TRANS_STMT_ROLLBACK; + n->options = NIL; + (yyval.node) = (PGNode *)n; + } +#line 24292 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1143: -#line 3129 "third_party/libpg_query/grammar/statements/select.y" - { - /* - * Since there are no cases where this syntax allows - * a textual FOR value, we forcibly cast the argument - * to int4. The possible matches in pg_proc are - * substring(text,int4) and substring(text,text), - * and we don't want the parser to choose the latter, - * which it is likely to do if the second argument - * is unknown or doesn't have an implicit cast to int4. - */ - (yyval.list) = list_make3((yyvsp[(1) - (2)].node), makeIntConst(1, -1), - makeTypeCast((yyvsp[(2) - (2)].node), - SystemTypeName("int4"), 0, -1)); - ;} +#line 45 "third_party/libpg_query/grammar/statements/transaction.y" + {} +#line 24298 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1144: -#line 3144 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.list) = (yyvsp[(1) - (1)].list); - ;} +#line 46 "third_party/libpg_query/grammar/statements/transaction.y" + {} +#line 24304 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1145: -#line 3148 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = NIL; ;} +#line 47 "third_party/libpg_query/grammar/statements/transaction.y" + {} +#line 24310 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1146: -#line 3152 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.node) = (yyvsp[(2) - (2)].node); ;} +#line 7 "third_party/libpg_query/grammar/statements/rename.y" + { + PGRenameStmt *n = makeNode(PGRenameStmt); + n->renameType = PG_OBJECT_SCHEMA; + n->subname = (yyvsp[-3].str); + n->newname = (yyvsp[0].str); + n->missing_ok = false; + (yyval.node) = (PGNode *)n; + } +#line 24323 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1147: -#line 3155 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.node) = (yyvsp[(2) - (2)].node); ;} +#line 16 "third_party/libpg_query/grammar/statements/rename.y" + { + PGRenameStmt *n = makeNode(PGRenameStmt); + n->renameType = PG_OBJECT_TABLE; + n->relation = (yyvsp[-3].range); + n->subname = NULL; + n->newname = (yyvsp[0].str); + n->missing_ok = false; + (yyval.node) = (PGNode *)n; + } +#line 24337 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1148: -#line 3158 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = lappend((yyvsp[(3) - (3)].list), (yyvsp[(1) - (3)].node)); ;} +#line 26 "third_party/libpg_query/grammar/statements/rename.y" + { + PGRenameStmt *n = makeNode(PGRenameStmt); + n->renameType = PG_OBJECT_TABLE; + n->relation = (yyvsp[-3].range); + n->subname = NULL; + n->newname = (yyvsp[0].str); + n->missing_ok = true; + (yyval.node) = (PGNode *)n; + } +#line 24351 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1149: -#line 3159 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = (yyvsp[(2) - (2)].list); ;} +#line 36 "third_party/libpg_query/grammar/statements/rename.y" + { + PGRenameStmt *n = makeNode(PGRenameStmt); + n->renameType = PG_OBJECT_SEQUENCE; + n->relation = (yyvsp[-3].range); + n->subname = NULL; + n->newname = (yyvsp[0].str); + n->missing_ok = false; + (yyval.node) = (PGNode *)n; + } +#line 24365 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1150: -#line 3160 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = (yyvsp[(1) - (1)].list); ;} +#line 46 "third_party/libpg_query/grammar/statements/rename.y" + { + PGRenameStmt *n = makeNode(PGRenameStmt); + n->renameType = PG_OBJECT_SEQUENCE; + n->relation = (yyvsp[-3].range); + n->subname = NULL; + n->newname = (yyvsp[0].str); + n->missing_ok = true; + (yyval.node) = (PGNode *)n; + } +#line 24379 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1151: -#line 3164 "third_party/libpg_query/grammar/statements/select.y" - { - PGSubLink *n = makeNode(PGSubLink); - n->subselect = (yyvsp[(1) - (1)].node); - /* other fields will be filled later */ +#line 56 "third_party/libpg_query/grammar/statements/rename.y" + { + PGRenameStmt *n = makeNode(PGRenameStmt); + n->renameType = PG_OBJECT_VIEW; + n->relation = (yyvsp[-3].range); + n->subname = NULL; + n->newname = (yyvsp[0].str); + n->missing_ok = false; (yyval.node) = (PGNode *)n; - ;} + } +#line 24393 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1152: -#line 3170 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.node) = (PGNode *)(yyvsp[(2) - (3)].list); ;} +#line 66 "third_party/libpg_query/grammar/statements/rename.y" + { + PGRenameStmt *n = makeNode(PGRenameStmt); + n->renameType = PG_OBJECT_VIEW; + n->relation = (yyvsp[-3].range); + n->subname = NULL; + n->newname = (yyvsp[0].str); + n->missing_ok = true; + (yyval.node) = (PGNode *)n; + } +#line 24407 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1153: -#line 3181 "third_party/libpg_query/grammar/statements/select.y" - { - PGCaseExpr *c = makeNode(PGCaseExpr); - c->casetype = InvalidOid; /* not analyzed yet */ - c->arg = (PGExpr *) (yyvsp[(2) - (5)].node); - c->args = (yyvsp[(3) - (5)].list); - c->defresult = (PGExpr *) (yyvsp[(4) - (5)].node); - c->location = (yylsp[(1) - (5)]); - (yyval.node) = (PGNode *)c; - ;} +#line 76 "third_party/libpg_query/grammar/statements/rename.y" + { + PGRenameStmt *n = makeNode(PGRenameStmt); + n->renameType = PG_OBJECT_INDEX; + n->relation = (yyvsp[-3].range); + n->subname = NULL; + n->newname = (yyvsp[0].str); + n->missing_ok = false; + (yyval.node) = (PGNode *)n; + } +#line 24421 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1154: -#line 3194 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); ;} +#line 86 "third_party/libpg_query/grammar/statements/rename.y" + { + PGRenameStmt *n = makeNode(PGRenameStmt); + n->renameType = PG_OBJECT_INDEX; + n->relation = (yyvsp[-3].range); + n->subname = NULL; + n->newname = (yyvsp[0].str); + n->missing_ok = true; + (yyval.node) = (PGNode *)n; + } +#line 24435 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1155: -#line 3195 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = lappend((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].node)); ;} +#line 96 "third_party/libpg_query/grammar/statements/rename.y" + { + PGRenameStmt *n = makeNode(PGRenameStmt); + n->renameType = PG_OBJECT_COLUMN; + n->relationType = PG_OBJECT_TABLE; + n->relation = (yyvsp[-5].range); + n->subname = (yyvsp[-2].str); + n->newname = (yyvsp[0].str); + n->missing_ok = false; + (yyval.node) = (PGNode *)n; + } +#line 24450 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1156: -#line 3200 "third_party/libpg_query/grammar/statements/select.y" - { - PGCaseWhen *w = makeNode(PGCaseWhen); - w->expr = (PGExpr *) (yyvsp[(2) - (4)].node); - w->result = (PGExpr *) (yyvsp[(4) - (4)].node); - w->location = (yylsp[(1) - (4)]); - (yyval.node) = (PGNode *)w; - ;} +#line 107 "third_party/libpg_query/grammar/statements/rename.y" + { + PGRenameStmt *n = makeNode(PGRenameStmt); + n->renameType = PG_OBJECT_COLUMN; + n->relationType = PG_OBJECT_TABLE; + n->relation = (yyvsp[-5].range); + n->subname = (yyvsp[-2].str); + n->newname = (yyvsp[0].str); + n->missing_ok = true; + (yyval.node) = (PGNode *)n; + } +#line 24465 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1157: -#line 3210 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.node) = (yyvsp[(2) - (2)].node); ;} +#line 118 "third_party/libpg_query/grammar/statements/rename.y" + { + PGRenameStmt *n = makeNode(PGRenameStmt); + n->renameType = PG_OBJECT_TABCONSTRAINT; + n->relation = (yyvsp[-5].range); + n->subname = (yyvsp[-2].str); + n->newname = (yyvsp[0].str); + n->missing_ok = false; + (yyval.node) = (PGNode *)n; + } +#line 24479 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1158: -#line 3211 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.node) = NULL; ;} +#line 128 "third_party/libpg_query/grammar/statements/rename.y" + { + PGRenameStmt *n = makeNode(PGRenameStmt); + n->renameType = PG_OBJECT_TABCONSTRAINT; + n->relation = (yyvsp[-5].range); + n->subname = (yyvsp[-2].str); + n->newname = (yyvsp[0].str); + n->missing_ok = true; + (yyval.node) = (PGNode *)n; + } +#line 24493 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1159: -#line 3214 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.node) = (yyvsp[(1) - (1)].node); ;} +#line 140 "third_party/libpg_query/grammar/statements/rename.y" + { (yyval.ival) = COLUMN; } +#line 24499 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1160: -#line 3215 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.node) = NULL; ;} +#line 141 "third_party/libpg_query/grammar/statements/rename.y" + { (yyval.ival) = 0; } +#line 24505 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1161: -#line 3219 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.node) = makeColumnRef((yyvsp[(1) - (1)].str), NIL, (yylsp[(1) - (1)]), yyscanner); - ;} +#line 8 "third_party/libpg_query/grammar/statements/prepare.y" + { + PGPrepareStmt *n = makeNode(PGPrepareStmt); + n->name = (yyvsp[-3].str); + n->argtypes = (yyvsp[-2].list); + n->query = (yyvsp[0].node); + (yyval.node) = (PGNode *) n; + } +#line 24517 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1162: -#line 3223 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.node) = makeColumnRef((yyvsp[(1) - (2)].str), (yyvsp[(2) - (2)].list), (yylsp[(1) - (2)]), yyscanner); - ;} +#line 18 "third_party/libpg_query/grammar/statements/prepare.y" + { (yyval.list) = (yyvsp[-1].list); } +#line 24523 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1163: -#line 3230 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.node) = (PGNode *) makeString((yyvsp[(2) - (2)].str)); - ;} - break; - - case 1164: -#line 3234 "third_party/libpg_query/grammar/statements/select.y" - { - PGAIndices *ai = makeNode(PGAIndices); - ai->is_slice = false; - ai->lidx = NULL; - ai->uidx = (yyvsp[(2) - (3)].node); - (yyval.node) = (PGNode *) ai; - ;} - break; - - case 1165: -#line 3242 "third_party/libpg_query/grammar/statements/select.y" - { - PGAIndices *ai = makeNode(PGAIndices); - ai->is_slice = true; - ai->lidx = (yyvsp[(2) - (5)].node); - ai->uidx = (yyvsp[(4) - (5)].node); - (yyval.node) = (PGNode *) ai; - ;} - break; - - case 1166: -#line 3252 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.node) = (yyvsp[(1) - (1)].node); ;} - break; - - case 1167: -#line 3253 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.node) = NULL; ;} +#line 19 "third_party/libpg_query/grammar/statements/prepare.y" + { (yyval.list) = NIL; } +#line 24529 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1168: -#line 3257 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); ;} +#line 9 "third_party/libpg_query/grammar/statements/vacuum.y" + { + PGVacuumStmt *n = makeNode(PGVacuumStmt); + n->options = PG_VACOPT_VACUUM; + if ((yyvsp[-2].boolean)) + n->options |= PG_VACOPT_FULL; + if ((yyvsp[-1].boolean)) + n->options |= PG_VACOPT_FREEZE; + if ((yyvsp[0].boolean)) + n->options |= PG_VACOPT_VERBOSE; + n->relation = NULL; + n->va_cols = NIL; + (yyval.node) = (PGNode *)n; + } +#line 24547 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1169: -#line 3258 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = lappend((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].node)); ;} +#line 23 "third_party/libpg_query/grammar/statements/vacuum.y" + { + PGVacuumStmt *n = makeNode(PGVacuumStmt); + n->options = PG_VACOPT_VACUUM; + if ((yyvsp[-3].boolean)) + n->options |= PG_VACOPT_FULL; + if ((yyvsp[-2].boolean)) + n->options |= PG_VACOPT_FREEZE; + if ((yyvsp[-1].boolean)) + n->options |= PG_VACOPT_VERBOSE; + n->relation = (yyvsp[0].range); + n->va_cols = NIL; + (yyval.node) = (PGNode *)n; + } +#line 24565 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1170: -#line 3262 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = NIL; ;} +#line 37 "third_party/libpg_query/grammar/statements/vacuum.y" + { + PGVacuumStmt *n = (PGVacuumStmt *) (yyvsp[0].node); + n->options |= PG_VACOPT_VACUUM; + if ((yyvsp[-3].boolean)) + n->options |= PG_VACOPT_FULL; + if ((yyvsp[-2].boolean)) + n->options |= PG_VACOPT_FREEZE; + if ((yyvsp[-1].boolean)) + n->options |= PG_VACOPT_VERBOSE; + (yyval.node) = (PGNode *)n; + } +#line 24581 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1171: -#line 3263 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = lappend((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].node)); ;} +#line 49 "third_party/libpg_query/grammar/statements/vacuum.y" + { + PGVacuumStmt *n = makeNode(PGVacuumStmt); + n->options = PG_VACOPT_VACUUM | (yyvsp[-1].ival); + n->relation = NULL; + n->va_cols = NIL; + (yyval.node) = (PGNode *) n; + } +#line 24593 "third_party/libpg_query/grammar/grammar_out.cpp" + break; + + case 1172: +#line 57 "third_party/libpg_query/grammar/statements/vacuum.y" + { + PGVacuumStmt *n = makeNode(PGVacuumStmt); + n->options = PG_VACOPT_VACUUM | (yyvsp[-3].ival); + n->relation = (yyvsp[-1].range); + n->va_cols = (yyvsp[0].list); + if (n->va_cols != NIL) /* implies analyze */ + n->options |= PG_VACOPT_ANALYZE; + (yyval.node) = (PGNode *) n; + } +#line 24607 "third_party/libpg_query/grammar/grammar_out.cpp" + break; + + case 1173: +#line 70 "third_party/libpg_query/grammar/statements/vacuum.y" + { (yyval.ival) = PG_VACOPT_ANALYZE; } +#line 24613 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1174: -#line 3277 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = (yyvsp[(1) - (1)].list); ;} +#line 71 "third_party/libpg_query/grammar/statements/vacuum.y" + { (yyval.ival) = PG_VACOPT_VERBOSE; } +#line 24619 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1175: -#line 3278 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = NIL; ;} +#line 72 "third_party/libpg_query/grammar/statements/vacuum.y" + { (yyval.ival) = PG_VACOPT_FREEZE; } +#line 24625 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1176: -#line 3282 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = list_make1((yyvsp[(1) - (1)].target)); ;} +#line 73 "third_party/libpg_query/grammar/statements/vacuum.y" + { (yyval.ival) = PG_VACOPT_FULL; } +#line 24631 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1177: -#line 3283 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].target)); ;} +#line 75 "third_party/libpg_query/grammar/statements/vacuum.y" + { + if (strcmp((yyvsp[0].str), "disable_page_skipping") == 0) + (yyval.ival) = PG_VACOPT_DISABLE_PAGE_SKIPPING; + else + ereport(ERROR, + (errcode(PG_ERRCODE_SYNTAX_ERROR), + errmsg("unrecognized VACUUM option \"%s\"", (yyvsp[0].str)), + parser_errposition((yylsp[0])))); + } +#line 24645 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1178: -#line 3287 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = (yyvsp[(1) - (1)].list); ;} +#line 87 "third_party/libpg_query/grammar/statements/vacuum.y" + { (yyval.boolean) = true; } +#line 24651 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1179: -#line 3288 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = (yyvsp[(1) - (2)].list); ;} +#line 88 "third_party/libpg_query/grammar/statements/vacuum.y" + { (yyval.boolean) = false; } +#line 24657 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1180: -#line 3292 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.target) = makeNode(PGResTarget); - (yyval.target)->name = (yyvsp[(3) - (3)].str); - (yyval.target)->indirection = NIL; - (yyval.target)->val = (PGNode *)(yyvsp[(1) - (3)].node); - (yyval.target)->location = (yylsp[(1) - (3)]); - ;} +#line 93 "third_party/libpg_query/grammar/statements/vacuum.y" + { (yyval.ival) = (yyvsp[0].ival); } +#line 24663 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1181: -#line 3308 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.target) = makeNode(PGResTarget); - (yyval.target)->name = (yyvsp[(2) - (2)].str); - (yyval.target)->indirection = NIL; - (yyval.target)->val = (PGNode *)(yyvsp[(1) - (2)].node); - (yyval.target)->location = (yylsp[(1) - (2)]); - ;} +#line 94 "third_party/libpg_query/grammar/statements/vacuum.y" + { (yyval.ival) = (yyvsp[-2].ival) | (yyvsp[0].ival); } +#line 24669 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1182: -#line 3316 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.target) = makeNode(PGResTarget); - (yyval.target)->name = NULL; - (yyval.target)->indirection = NIL; - (yyval.target)->val = (PGNode *)(yyvsp[(1) - (1)].node); - (yyval.target)->location = (yylsp[(1) - (1)]); - ;} +#line 98 "third_party/libpg_query/grammar/statements/vacuum.y" + { (yyval.boolean) = true; } +#line 24675 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1183: -#line 3324 "third_party/libpg_query/grammar/statements/select.y" - { - PGColumnRef *n = makeNode(PGColumnRef); - PGAStar *star = makeNode(PGAStar); - n->fields = list_make1(star); - n->location = (yylsp[(1) - (3)]); - star->except_list = (yyvsp[(2) - (3)].list); - star->replace_list = (yyvsp[(3) - (3)].list); - - (yyval.target) = makeNode(PGResTarget); - (yyval.target)->name = NULL; - (yyval.target)->indirection = NIL; - (yyval.target)->val = (PGNode *)n; - (yyval.target)->location = (yylsp[(1) - (3)]); - ;} +#line 99 "third_party/libpg_query/grammar/statements/vacuum.y" + { (yyval.boolean) = false; } +#line 24681 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1184: -#line 3339 "third_party/libpg_query/grammar/statements/select.y" - { - PGColumnRef *n = makeNode(PGColumnRef); - PGAStar *star = makeNode(PGAStar); - n->fields = list_make1(star); - n->location = (yylsp[(1) - (5)]); - star->relation = (yyvsp[(1) - (5)].str); - star->except_list = (yyvsp[(4) - (5)].list); - star->replace_list = (yyvsp[(5) - (5)].list); - - (yyval.target) = makeNode(PGResTarget); - (yyval.target)->name = NULL; - (yyval.target)->indirection = NIL; - (yyval.target)->val = (PGNode *)n; - (yyval.target)->location = (yylsp[(1) - (5)]); - ;} +#line 11 "third_party/libpg_query/grammar/statements/index.y" + { + PGIndexStmt *n = makeNode(PGIndexStmt); + n->unique = (yyvsp[-11].boolean); + n->concurrent = (yyvsp[-9].boolean); + n->idxname = (yyvsp[-8].str); + n->relation = (yyvsp[-6].range); + n->accessMethod = (yyvsp[-5].str); + n->indexParams = (yyvsp[-3].list); + n->options = (yyvsp[-1].list); + n->whereClause = (yyvsp[0].node); + n->excludeOpNames = NIL; + n->idxcomment = NULL; + n->indexOid = InvalidOid; + n->oldNode = InvalidOid; + n->primary = false; + n->isconstraint = false; + n->deferrable = false; + n->initdeferred = false; + n->transformed = false; + n->onconflict = PG_ERROR_ON_CONFLICT; + (yyval.node) = (PGNode *)n; + } +#line 24708 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1185: -#line 3356 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = (yyvsp[(3) - (4)].list); ;} +#line 36 "third_party/libpg_query/grammar/statements/index.y" + { + PGIndexStmt *n = makeNode(PGIndexStmt); + n->unique = (yyvsp[-14].boolean); + n->concurrent = (yyvsp[-12].boolean); + n->idxname = (yyvsp[-8].str); + n->relation = (yyvsp[-6].range); + n->accessMethod = (yyvsp[-5].str); + n->indexParams = (yyvsp[-3].list); + n->options = (yyvsp[-1].list); + n->whereClause = (yyvsp[0].node); + n->excludeOpNames = NIL; + n->idxcomment = NULL; + n->indexOid = InvalidOid; + n->oldNode = InvalidOid; + n->primary = false; + n->isconstraint = false; + n->deferrable = false; + n->initdeferred = false; + n->transformed = false; + n->onconflict = PG_IGNORE_ON_CONFLICT; + (yyval.node) = (PGNode *)n; + } +#line 24735 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1186: -#line 3357 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = list_make1(makeString((yyvsp[(2) - (2)].str))); ;} +#line 62 "third_party/libpg_query/grammar/statements/index.y" + { (yyval.str) = (yyvsp[0].str); } +#line 24741 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1187: -#line 3360 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = (yyvsp[(1) - (1)].list); ;} +#line 66 "third_party/libpg_query/grammar/statements/index.y" + { (yyval.str) = (yyvsp[0].str); } +#line 24747 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1188: -#line 3361 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = NULL; ;} +#line 67 "third_party/libpg_query/grammar/statements/index.y" + { (yyval.str) = (char*) DEFAULT_INDEX_TYPE; } +#line 24753 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1189: -#line 3364 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = list_make2((yyvsp[(1) - (3)].node), makeString((yyvsp[(3) - (3)].str))); ;} +#line 72 "third_party/libpg_query/grammar/statements/index.y" + { (yyval.boolean) = true; } +#line 24759 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1190: -#line 3368 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = list_make1((yyvsp[(1) - (1)].list)); ;} +#line 73 "third_party/libpg_query/grammar/statements/index.y" + { (yyval.boolean) = false; } +#line 24765 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1191: -#line 3369 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].list)); ;} +#line 78 "third_party/libpg_query/grammar/statements/index.y" + { (yyval.str) = (yyvsp[0].str); } +#line 24771 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1192: -#line 3373 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = (yyvsp[(1) - (1)].list); ;} +#line 79 "third_party/libpg_query/grammar/statements/index.y" + { (yyval.str) = NULL; } +#line 24777 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1193: -#line 3374 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = (yyvsp[(1) - (2)].list); ;} +#line 83 "third_party/libpg_query/grammar/statements/index.y" + { (yyval.list) = (yyvsp[0].list); } +#line 24783 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1194: -#line 3377 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = (yyvsp[(3) - (4)].list); ;} +#line 84 "third_party/libpg_query/grammar/statements/index.y" + { (yyval.list) = NIL; } +#line 24789 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1195: -#line 3378 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = list_make1((yyvsp[(2) - (2)].list)); ;} +#line 89 "third_party/libpg_query/grammar/statements/index.y" + { (yyval.boolean) = true; } +#line 24795 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1196: -#line 3379 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = NULL; ;} +#line 90 "third_party/libpg_query/grammar/statements/index.y" + { (yyval.boolean) = false; } +#line 24801 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1197: -#line 3389 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = list_make1((yyvsp[(1) - (1)].range)); ;} +#line 8 "third_party/libpg_query/grammar/statements/export.y" + { + PGExportStmt *n = makeNode(PGExportStmt); + n->filename = (yyvsp[-1].str); + n->options = NIL; + if ((yyvsp[0].list)) { + n->options = list_concat(n->options, (yyvsp[0].list)); + } + (yyval.node) = (PGNode *)n; + } +#line 24815 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1198: -#line 3390 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].range)); ;} +#line 21 "third_party/libpg_query/grammar/statements/export.y" + { + PGImportStmt *n = makeNode(PGImportStmt); + n->filename = (yyvsp[0].str); + (yyval.node) = (PGNode *)n; + } +#line 24825 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1199: -#line 3402 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.range) = makeRangeVar(NULL, (yyvsp[(1) - (1)].str), (yylsp[(1) - (1)])); - ;} +#line 9 "third_party/libpg_query/grammar/statements/delete.y" + { + PGDeleteStmt *n = makeNode(PGDeleteStmt); + n->relation = (yyvsp[-3].range); + n->usingClause = (yyvsp[-2].list); + n->whereClause = (yyvsp[-1].node); + n->returningList = (yyvsp[0].list); + n->withClause = (yyvsp[-6].with); + (yyval.node) = (PGNode *)n; + } +#line 24839 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1200: -#line 3406 "third_party/libpg_query/grammar/statements/select.y" - { - check_qualified_name((yyvsp[(2) - (2)].list), yyscanner); - (yyval.range) = makeRangeVar(NULL, NULL, (yylsp[(1) - (2)])); - switch (list_length((yyvsp[(2) - (2)].list))) - { - case 1: - (yyval.range)->catalogname = NULL; - (yyval.range)->schemaname = (yyvsp[(1) - (2)].str); - (yyval.range)->relname = strVal(linitial((yyvsp[(2) - (2)].list))); - break; - case 2: - (yyval.range)->catalogname = (yyvsp[(1) - (2)].str); - (yyval.range)->schemaname = strVal(linitial((yyvsp[(2) - (2)].list))); - (yyval.range)->relname = strVal(lsecond((yyvsp[(2) - (2)].list))); - break; - default: - ereport(ERROR, - (errcode(PG_ERRCODE_SYNTAX_ERROR), - errmsg("improper qualified name (too many dotted names): %s", - NameListToString(lcons(makeString((yyvsp[(1) - (2)].str)), (yyvsp[(2) - (2)].list)))), - parser_errposition((yylsp[(1) - (2)])))); - break; - } - ;} +#line 22 "third_party/libpg_query/grammar/statements/delete.y" + { + (yyval.range) = (yyvsp[0].range); + } +#line 24847 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1201: -#line 3433 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = list_make1(makeString((yyvsp[(1) - (1)].str))); ;} +#line 26 "third_party/libpg_query/grammar/statements/delete.y" + { + PGAlias *alias = makeNode(PGAlias); + alias->aliasname = (yyvsp[0].str); + (yyvsp[-1].range)->alias = alias; + (yyval.range) = (yyvsp[-1].range); + } +#line 24858 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1202: -#line 3435 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = lappend((yyvsp[(1) - (3)].list), makeString((yyvsp[(3) - (3)].str))); ;} +#line 33 "third_party/libpg_query/grammar/statements/delete.y" + { + PGAlias *alias = makeNode(PGAlias); + alias->aliasname = (yyvsp[0].str); + (yyvsp[-2].range)->alias = alias; + (yyval.range) = (yyvsp[-2].range); + } +#line 24869 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1203: -#line 3440 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = (yyvsp[(1) - (1)].list); ;} +#line 43 "third_party/libpg_query/grammar/statements/delete.y" + { (yyval.node) = (yyvsp[0].node); } +#line 24875 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1204: -#line 3441 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = (yyvsp[(1) - (2)].list); ;} +#line 44 "third_party/libpg_query/grammar/statements/delete.y" + { (yyval.node) = NULL; } +#line 24881 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1205: -#line 3444 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.str) = (yyvsp[(1) - (1)].str); ;} +#line 50 "third_party/libpg_query/grammar/statements/delete.y" + { (yyval.list) = (yyvsp[0].list); } +#line 24887 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1206: -#line 3446 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.str) = (yyvsp[(1) - (1)].str); ;} +#line 51 "third_party/libpg_query/grammar/statements/delete.y" + { (yyval.list) = NIL; } +#line 24893 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1207: -#line 3457 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = list_make1(makeString((yyvsp[(1) - (1)].str))); ;} +#line 10 "third_party/libpg_query/grammar/statements/view.y" + { + PGViewStmt *n = makeNode(PGViewStmt); + n->view = (yyvsp[-5].range); + n->view->relpersistence = (yyvsp[-7].ival); + n->aliases = (yyvsp[-4].list); + n->query = (yyvsp[-1].node); + n->onconflict = PG_ERROR_ON_CONFLICT; + n->options = (yyvsp[-3].list); + n->withCheckOption = (yyvsp[0].viewcheckoption); + (yyval.node) = (PGNode *) n; + } +#line 24909 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1208: -#line 3460 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.list) = check_func_name(lcons(makeString((yyvsp[(1) - (2)].str)), (yyvsp[(2) - (2)].list)), - yyscanner); - ;} +#line 23 "third_party/libpg_query/grammar/statements/view.y" + { + PGViewStmt *n = makeNode(PGViewStmt); + n->view = (yyvsp[-5].range); + n->view->relpersistence = (yyvsp[-7].ival); + n->aliases = (yyvsp[-4].list); + n->query = (yyvsp[-1].node); + n->onconflict = PG_REPLACE_ON_CONFLICT; + n->options = (yyvsp[-3].list); + n->withCheckOption = (yyvsp[0].viewcheckoption); + (yyval.node) = (PGNode *) n; + } +#line 24925 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1209: -#line 3471 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.node) = makeIntConst((yyvsp[(1) - (1)].ival), (yylsp[(1) - (1)])); - ;} +#line 36 "third_party/libpg_query/grammar/statements/view.y" + { + PGViewStmt *n = makeNode(PGViewStmt); + n->view = (yyvsp[-7].range); + n->view->relpersistence = (yyvsp[-10].ival); + n->aliases = (yyvsp[-5].list); + n->query = makeRecursiveViewSelect(n->view->relname, n->aliases, (yyvsp[-1].node)); + n->onconflict = PG_ERROR_ON_CONFLICT; + n->options = (yyvsp[-3].list); + n->withCheckOption = (yyvsp[0].viewcheckoption); + if (n->withCheckOption != PG_NO_CHECK_OPTION) + ereport(ERROR, + (errcode(PG_ERRCODE_FEATURE_NOT_SUPPORTED), + errmsg("WITH CHECK OPTION not supported on recursive views"), + parser_errposition((yylsp[0])))); + (yyval.node) = (PGNode *) n; + } +#line 24946 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1210: -#line 3475 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.node) = makeFloatConst((yyvsp[(1) - (1)].str), (yylsp[(1) - (1)])); - ;} +#line 54 "third_party/libpg_query/grammar/statements/view.y" + { + PGViewStmt *n = makeNode(PGViewStmt); + n->view = (yyvsp[-7].range); + n->view->relpersistence = (yyvsp[-10].ival); + n->aliases = (yyvsp[-5].list); + n->query = makeRecursiveViewSelect(n->view->relname, n->aliases, (yyvsp[-1].node)); + n->onconflict = PG_REPLACE_ON_CONFLICT; + n->options = (yyvsp[-3].list); + n->withCheckOption = (yyvsp[0].viewcheckoption); + if (n->withCheckOption != PG_NO_CHECK_OPTION) + ereport(ERROR, + (errcode(PG_ERRCODE_FEATURE_NOT_SUPPORTED), + errmsg("WITH CHECK OPTION not supported on recursive views"), + parser_errposition((yylsp[0])))); + (yyval.node) = (PGNode *) n; + } +#line 24967 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1211: -#line 3479 "third_party/libpg_query/grammar/statements/select.y" - { - if ((yyvsp[(2) - (2)].list)) - { - PGAIndirection *n = makeNode(PGAIndirection); - n->arg = makeStringConst((yyvsp[(1) - (2)].str), (yylsp[(1) - (2)])); - n->indirection = check_indirection((yyvsp[(2) - (2)].list), yyscanner); - (yyval.node) = (PGNode *) n; - } - else - (yyval.node) = makeStringConst((yyvsp[(1) - (2)].str), (yylsp[(1) - (2)])); - ;} +#line 74 "third_party/libpg_query/grammar/statements/view.y" + { (yyval.viewcheckoption) = CASCADED_CHECK_OPTION; } +#line 24973 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1212: -#line 3491 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.node) = makeBitStringConst((yyvsp[(1) - (1)].str), (yylsp[(1) - (1)])); - ;} +#line 75 "third_party/libpg_query/grammar/statements/view.y" + { (yyval.viewcheckoption) = CASCADED_CHECK_OPTION; } +#line 24979 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1213: -#line 3495 "third_party/libpg_query/grammar/statements/select.y" - { - /* This is a bit constant per SQL99: - * Without Feature F511, "BIT data type", - * a shall not be a - * or a . - */ - (yyval.node) = makeBitStringConst((yyvsp[(1) - (1)].str), (yylsp[(1) - (1)])); - ;} +#line 76 "third_party/libpg_query/grammar/statements/view.y" + { (yyval.viewcheckoption) = PG_LOCAL_CHECK_OPTION; } +#line 24985 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1214: -#line 3504 "third_party/libpg_query/grammar/statements/select.y" - { - /* generic type 'literal' syntax */ - PGTypeName *t = makeTypeNameFromNameList((yyvsp[(1) - (2)].list)); - t->location = (yylsp[(1) - (2)]); - (yyval.node) = makeStringConstCast((yyvsp[(2) - (2)].str), (yylsp[(2) - (2)]), t); - ;} +#line 77 "third_party/libpg_query/grammar/statements/view.y" + { (yyval.viewcheckoption) = PG_NO_CHECK_OPTION; } +#line 24991 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1215: -#line 3511 "third_party/libpg_query/grammar/statements/select.y" - { - /* generic syntax with a type modifier */ - PGTypeName *t = makeTypeNameFromNameList((yyvsp[(1) - (7)].list)); - PGListCell *lc; - - /* - * We must use func_arg_list and opt_sort_clause in the - * production to avoid reduce/reduce conflicts, but we - * don't actually wish to allow PGNamedArgExpr in this - * context, ORDER BY, nor IGNORE NULLS. - */ - foreach(lc, (yyvsp[(3) - (7)].list)) - { - PGNamedArgExpr *arg = (PGNamedArgExpr *) lfirst(lc); - - if (IsA(arg, PGNamedArgExpr)) - ereport(ERROR, - (errcode(PG_ERRCODE_SYNTAX_ERROR), - errmsg("type modifier cannot have parameter name"), - parser_errposition(arg->location))); - } - if ((yyvsp[(4) - (7)].list) != NIL) - ereport(ERROR, - (errcode(PG_ERRCODE_SYNTAX_ERROR), - errmsg("type modifier cannot have ORDER BY"), - parser_errposition((yylsp[(4) - (7)])))); - if ((yyvsp[(5) - (7)].boolean) != false) - ereport(ERROR, - (errcode(PG_ERRCODE_SYNTAX_ERROR), - errmsg("type modifier cannot have IGNORE NULLS"), - parser_errposition((yylsp[(5) - (7)])))); - - - t->typmods = (yyvsp[(3) - (7)].list); - t->location = (yylsp[(1) - (7)]); - (yyval.node) = makeStringConstCast((yyvsp[(7) - (7)].str), (yylsp[(7) - (7)]), t); - ;} +#line 11 "third_party/libpg_query/grammar/statements/variable_set.y" + { + PGVariableSetStmt *n = (yyvsp[0].vsetstmt); + n->scope = VAR_SET_SCOPE_DEFAULT; + (yyval.node) = (PGNode *) n; + } +#line 25001 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1216: -#line 3549 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.node) = makeStringConstCast((yyvsp[(2) - (2)].str), (yylsp[(2) - (2)]), (yyvsp[(1) - (2)].typnam)); - ;} +#line 17 "third_party/libpg_query/grammar/statements/variable_set.y" + { + PGVariableSetStmt *n = (yyvsp[0].vsetstmt); + n->scope = VAR_SET_SCOPE_LOCAL; + (yyval.node) = (PGNode *) n; + } +#line 25011 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1217: -#line 3553 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.node) = makeIntervalNode((yyvsp[(3) - (5)].node), (yylsp[(3) - (5)]), (yyvsp[(5) - (5)].list)); - ;} +#line 23 "third_party/libpg_query/grammar/statements/variable_set.y" + { + PGVariableSetStmt *n = (yyvsp[0].vsetstmt); + n->scope = VAR_SET_SCOPE_SESSION; + (yyval.node) = (PGNode *) n; + } +#line 25021 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1218: -#line 3557 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.node) = makeIntervalNode((yyvsp[(2) - (3)].ival), (yylsp[(2) - (3)]), (yyvsp[(3) - (3)].list)); - ;} +#line 29 "third_party/libpg_query/grammar/statements/variable_set.y" + { + PGVariableSetStmt *n = (yyvsp[0].vsetstmt); + n->scope = VAR_SET_SCOPE_GLOBAL; + (yyval.node) = (PGNode *) n; + } +#line 25031 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1219: -#line 3561 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.node) = makeIntervalNode((yyvsp[(2) - (3)].str), (yylsp[(2) - (3)]), (yyvsp[(3) - (3)].list)); - ;} +#line 38 "third_party/libpg_query/grammar/statements/variable_set.y" + {(yyval.vsetstmt) = (yyvsp[0].vsetstmt);} +#line 25037 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1220: -#line 3565 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.node) = makeBoolAConst(true, (yylsp[(1) - (1)])); - ;} +#line 40 "third_party/libpg_query/grammar/statements/variable_set.y" + { + PGVariableSetStmt *n = makeNode(PGVariableSetStmt); + n->kind = VAR_SET_CURRENT; + n->name = (yyvsp[-2].str); + (yyval.vsetstmt) = n; + } +#line 25048 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1221: -#line 3569 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.node) = makeBoolAConst(false, (yylsp[(1) - (1)])); - ;} +#line 48 "third_party/libpg_query/grammar/statements/variable_set.y" + { + PGVariableSetStmt *n = makeNode(PGVariableSetStmt); + n->kind = VAR_SET_VALUE; + n->name = (char*) "timezone"; + if ((yyvsp[0].node) != NULL) + n->args = list_make1((yyvsp[0].node)); + else + n->kind = VAR_SET_DEFAULT; + (yyval.vsetstmt) = n; + } +#line 25063 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1222: -#line 3573 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.node) = makeNullAConst((yylsp[(1) - (1)])); - ;} +#line 59 "third_party/libpg_query/grammar/statements/variable_set.y" + { + PGVariableSetStmt *n = makeNode(PGVariableSetStmt); + n->kind = VAR_SET_VALUE; + n->name = (char*) "search_path"; + n->args = list_make1(makeStringConst((yyvsp[0].str), (yylsp[0]))); + (yyval.vsetstmt) = n; + } +#line 25075 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1223: -#line 3578 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.ival) = (yyvsp[(1) - (1)].ival); ;} +#line 71 "third_party/libpg_query/grammar/statements/variable_set.y" + { + PGVariableSetStmt *n = makeNode(PGVariableSetStmt); + n->kind = VAR_SET_VALUE; + n->name = (yyvsp[-2].str); + n->args = (yyvsp[0].list); + (yyval.vsetstmt) = n; + } +#line 25087 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1224: -#line 3579 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.str) = (yyvsp[(1) - (1)].str); ;} +#line 79 "third_party/libpg_query/grammar/statements/variable_set.y" + { + PGVariableSetStmt *n = makeNode(PGVariableSetStmt); + n->kind = VAR_SET_VALUE; + n->name = (yyvsp[-2].str); + n->args = (yyvsp[0].list); + (yyval.vsetstmt) = n; + } +#line 25099 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1225: -#line 3595 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.str) = (yyvsp[(1) - (1)].str); ;} +#line 87 "third_party/libpg_query/grammar/statements/variable_set.y" + { + PGVariableSetStmt *n = makeNode(PGVariableSetStmt); + n->kind = VAR_SET_DEFAULT; + n->name = (yyvsp[-2].str); + (yyval.vsetstmt) = n; + } +#line 25110 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1226: -#line 3596 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.str) = pstrdup((yyvsp[(1) - (1)].keyword)); ;} +#line 94 "third_party/libpg_query/grammar/statements/variable_set.y" + { + PGVariableSetStmt *n = makeNode(PGVariableSetStmt); + n->kind = VAR_SET_DEFAULT; + n->name = (yyvsp[-2].str); + (yyval.vsetstmt) = n; + } +#line 25121 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1227: -#line 3597 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.str) = pstrdup((yyvsp[(1) - (1)].keyword)); ;} +#line 104 "third_party/libpg_query/grammar/statements/variable_set.y" + { (yyval.node) = makeStringConst((yyvsp[0].str), (yylsp[0])); } +#line 25127 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1228: -#line 3600 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.str) = (yyvsp[(1) - (1)].str); ;} +#line 106 "third_party/libpg_query/grammar/statements/variable_set.y" + { (yyval.node) = makeAConst((yyvsp[0].value), (yylsp[0])); } +#line 25133 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1229: -#line 3601 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.str) = (yyvsp[(1) - (1)].str); ;} +#line 112 "third_party/libpg_query/grammar/statements/variable_set.y" + { + (yyval.node) = makeStringConst((yyvsp[0].str), (yylsp[0])); + } +#line 25141 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1230: -#line 3607 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.str) = (yyvsp[(1) - (1)].str); ;} +#line 116 "third_party/libpg_query/grammar/statements/variable_set.y" + { + (yyval.node) = makeStringConst((yyvsp[0].str), (yylsp[0])); + } +#line 25149 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1231: -#line 3608 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.str) = pstrdup((yyvsp[(1) - (1)].keyword)); ;} +#line 120 "third_party/libpg_query/grammar/statements/variable_set.y" + { + PGTypeName *t = (yyvsp[-2].typnam); + if ((yyvsp[0].list) != NIL) + { + PGAConst *n = (PGAConst *) linitial((yyvsp[0].list)); + if ((n->val.val.ival & ~(INTERVAL_MASK(HOUR) | INTERVAL_MASK(MINUTE))) != 0) + ereport(ERROR, + (errcode(PG_ERRCODE_SYNTAX_ERROR), + errmsg("time zone interval must be HOUR or HOUR TO MINUTE"), + parser_errposition((yylsp[0])))); + } + t->typmods = (yyvsp[0].list); + (yyval.node) = makeStringConstCast((yyvsp[-1].str), (yylsp[-1]), t); + } +#line 25168 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1232: -#line 3609 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.str) = pstrdup((yyvsp[(1) - (1)].keyword)); ;} +#line 135 "third_party/libpg_query/grammar/statements/variable_set.y" + { + PGTypeName *t = (yyvsp[-4].typnam); + t->typmods = list_make2(makeIntConst(INTERVAL_FULL_RANGE, -1), + makeIntConst((yyvsp[-2].ival), (yylsp[-2]))); + (yyval.node) = makeStringConstCast((yyvsp[0].str), (yylsp[0]), t); + } +#line 25179 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1233: -#line 3612 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.str) = (yyvsp[(1) - (1)].str); ;} +#line 141 "third_party/libpg_query/grammar/statements/variable_set.y" + { (yyval.node) = makeAConst((yyvsp[0].value), (yylsp[0])); } +#line 25185 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1234: -#line 3613 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.str) = pstrdup((yyvsp[(1) - (1)].keyword)); ;} +#line 142 "third_party/libpg_query/grammar/statements/variable_set.y" + { (yyval.node) = NULL; } +#line 25191 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1235: -#line 3614 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.str) = pstrdup((yyvsp[(1) - (1)].keyword)); ;} +#line 143 "third_party/libpg_query/grammar/statements/variable_set.y" + { (yyval.node) = NULL; } +#line 25197 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1236: -#line 3617 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.str) = (yyvsp[(1) - (1)].str); ;} +#line 147 "third_party/libpg_query/grammar/statements/variable_set.y" + { (yyval.list) = list_make1((yyvsp[0].node)); } +#line 25203 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1237: -#line 3618 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.str) = pstrdup((yyvsp[(1) - (1)].keyword)); ;} +#line 148 "third_party/libpg_query/grammar/statements/variable_set.y" + { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].node)); } +#line 25209 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1238: -#line 3619 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.str) = pstrdup((yyvsp[(1) - (1)].keyword)); ;} +#line 6 "third_party/libpg_query/grammar/statements/checkpoint.y" + { + PGCheckPointStmt *n = makeNode(PGCheckPointStmt); + n->force = true; + (yyval.node) = (PGNode *)n; + } +#line 25219 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1239: -#line 3622 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = list_make1(makeString((yyvsp[(1) - (1)].str))); ;} +#line 12 "third_party/libpg_query/grammar/statements/checkpoint.y" + { + PGCheckPointStmt *n = makeNode(PGCheckPointStmt); + n->force = false; + (yyval.node) = (PGNode *)n; + } +#line 25229 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1240: -#line 3623 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = lcons(makeString((yyvsp[(1) - (2)].str)), (yyvsp[(2) - (2)].list)); ;} +#line 8 "third_party/libpg_query/grammar/statements/load.y" + { + PGLoadStmt *n = makeNode(PGLoadStmt); + n->filename = (yyvsp[0].str); + n->load_type = PG_LOAD_TYPE_LOAD; + (yyval.node) = (PGNode *)n; + } +#line 25240 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1241: -#line 3627 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = list_make1(makeString((yyvsp[(2) - (2)].str))); ;} +#line 14 "third_party/libpg_query/grammar/statements/load.y" + { + PGLoadStmt *n = makeNode(PGLoadStmt); + n->filename = (yyvsp[0].str); + n->load_type = PG_LOAD_TYPE_INSTALL; + (yyval.node) = (PGNode *)n; + } +#line 25251 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1242: -#line 3629 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = lappend((yyvsp[(1) - (3)].list), makeString((yyvsp[(3) - (3)].str))); ;} +#line 20 "third_party/libpg_query/grammar/statements/load.y" + { + PGLoadStmt *n = makeNode(PGLoadStmt); + n->filename = (yyvsp[0].str); + n->load_type = PG_LOAD_TYPE_FORCE_INSTALL; + (yyval.node) = (PGNode *)n; + } +#line 25262 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1243: -#line 3633 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = (yyvsp[(2) - (3)].list); ;} +#line 28 "third_party/libpg_query/grammar/statements/load.y" + { (yyval.str) = (yyvsp[0].str); } +#line 25268 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1244: -#line 3634 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = NIL; ;} +#line 29 "third_party/libpg_query/grammar/statements/load.y" + { (yyval.str) = (yyvsp[0].str); } +#line 25274 "third_party/libpg_query/grammar/grammar_out.cpp" + break; + + case 1245: +#line 10 "third_party/libpg_query/grammar/statements/create_sequence.y" + { + PGCreateSeqStmt *n = makeNode(PGCreateSeqStmt); + (yyvsp[-1].range)->relpersistence = (yyvsp[-3].ival); + n->sequence = (yyvsp[-1].range); + n->options = (yyvsp[0].list); + n->ownerId = InvalidOid; + n->onconflict = PG_ERROR_ON_CONFLICT; + (yyval.node) = (PGNode *)n; + } +#line 25288 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1246: -#line 3645 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.str) = (yyvsp[(1) - (1)].str); ;} +#line 20 "third_party/libpg_query/grammar/statements/create_sequence.y" + { + PGCreateSeqStmt *n = makeNode(PGCreateSeqStmt); + (yyvsp[-1].range)->relpersistence = (yyvsp[-6].ival); + n->sequence = (yyvsp[-1].range); + n->options = (yyvsp[0].list); + n->ownerId = InvalidOid; + n->onconflict = PG_IGNORE_ON_CONFLICT; + (yyval.node) = (PGNode *)n; + } +#line 25302 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1247: -#line 3646 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.str) = pstrdup((yyvsp[(1) - (1)].keyword)); ;} +#line 32 "third_party/libpg_query/grammar/statements/create_sequence.y" + { (yyval.list) = (yyvsp[0].list); } +#line 25308 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1248: -#line 3647 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.str) = pstrdup((yyvsp[(1) - (1)].keyword)); ;} +#line 33 "third_party/libpg_query/grammar/statements/create_sequence.y" + { (yyval.list) = NIL; } +#line 25314 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1249: -#line 3648 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.str) = pstrdup((yyvsp[(1) - (1)].keyword)); ;} +#line 9 "third_party/libpg_query/grammar/statements/create_function.y" + { + PGCreateFunctionStmt *n = makeNode(PGCreateFunctionStmt); + n->relpersistence=(yyvsp[-6].ival); + n->name = (yyvsp[-4].range); + n->params = (yyvsp[-3].list); + n->function = NULL; + n->query = (yyvsp[0].node); + (yyval.node) = (PGNode *)n; + + } +#line 25329 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1250: -#line 3651 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.str) = (yyvsp[(1) - (1)].str); ;} - break; - - case 1251: -#line 3652 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.str) = (yyvsp[(1) - (1)].str); ;} - break; - - case 1252: -#line 7 "third_party/libpg_query/grammar/statements/call.y" - { - PGCallStmt *n = makeNode(PGCallStmt); - n->func = (yyvsp[(2) - (2)].node); - (yyval.node) = (PGNode *) n; - ;} +#line 21 "third_party/libpg_query/grammar/statements/create_function.y" + { + PGCreateFunctionStmt *n = makeNode(PGCreateFunctionStmt); + n->relpersistence=(yyvsp[-5].ival); + n->name = (yyvsp[-3].range); + n->params = (yyvsp[-2].list); + n->function = (yyvsp[0].node); + n->query = NULL; + (yyval.node) = (PGNode *)n; + } +#line 25343 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1253: -#line 3 "third_party/libpg_query/grammar/statements/transaction.y" - { - PGTransactionStmt *n = makeNode(PGTransactionStmt); - n->kind = PG_TRANS_STMT_ROLLBACK; - n->options = NIL; - (yyval.node) = (PGNode *)n; - ;} +#line 42 "third_party/libpg_query/grammar/statements/create_function.y" + { + (yyval.list) = NIL; + } +#line 25351 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1254: -#line 10 "third_party/libpg_query/grammar/statements/transaction.y" - { - PGTransactionStmt *n = makeNode(PGTransactionStmt); - n->kind = PG_TRANS_STMT_BEGIN; - (yyval.node) = (PGNode *)n; - ;} +#line 46 "third_party/libpg_query/grammar/statements/create_function.y" + { + (yyval.list) = (yyvsp[-1].list); + } +#line 25359 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1255: -#line 16 "third_party/libpg_query/grammar/statements/transaction.y" - { - PGTransactionStmt *n = makeNode(PGTransactionStmt); - n->kind = PG_TRANS_STMT_START; +#line 8 "third_party/libpg_query/grammar/statements/alter_schema.y" + { + PGAlterObjectSchemaStmt *n = makeNode(PGAlterObjectSchemaStmt); + n->objectType = PG_OBJECT_TABLE; + n->relation = (yyvsp[-3].range); + n->newschema = (yyvsp[0].str); + n->missing_ok = false; (yyval.node) = (PGNode *)n; - ;} + } +#line 25372 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1256: -#line 22 "third_party/libpg_query/grammar/statements/transaction.y" - { - PGTransactionStmt *n = makeNode(PGTransactionStmt); - n->kind = PG_TRANS_STMT_COMMIT; - n->options = NIL; +#line 17 "third_party/libpg_query/grammar/statements/alter_schema.y" + { + PGAlterObjectSchemaStmt *n = makeNode(PGAlterObjectSchemaStmt); + n->objectType = PG_OBJECT_TABLE; + n->relation = (yyvsp[-3].range); + n->newschema = (yyvsp[0].str); + n->missing_ok = true; (yyval.node) = (PGNode *)n; - ;} + } +#line 25385 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1257: -#line 29 "third_party/libpg_query/grammar/statements/transaction.y" - { - PGTransactionStmt *n = makeNode(PGTransactionStmt); - n->kind = PG_TRANS_STMT_COMMIT; - n->options = NIL; +#line 26 "third_party/libpg_query/grammar/statements/alter_schema.y" + { + PGAlterObjectSchemaStmt *n = makeNode(PGAlterObjectSchemaStmt); + n->objectType = PG_OBJECT_SEQUENCE; + n->relation = (yyvsp[-3].range); + n->newschema = (yyvsp[0].str); + n->missing_ok = false; (yyval.node) = (PGNode *)n; - ;} + } +#line 25398 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1258: -#line 36 "third_party/libpg_query/grammar/statements/transaction.y" - { - PGTransactionStmt *n = makeNode(PGTransactionStmt); - n->kind = PG_TRANS_STMT_ROLLBACK; - n->options = NIL; +#line 35 "third_party/libpg_query/grammar/statements/alter_schema.y" + { + PGAlterObjectSchemaStmt *n = makeNode(PGAlterObjectSchemaStmt); + n->objectType = PG_OBJECT_SEQUENCE; + n->relation = (yyvsp[-3].range); + n->newschema = (yyvsp[0].str); + n->missing_ok = true; (yyval.node) = (PGNode *)n; - ;} + } +#line 25411 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1259: -#line 45 "third_party/libpg_query/grammar/statements/transaction.y" - {;} +#line 44 "third_party/libpg_query/grammar/statements/alter_schema.y" + { + PGAlterObjectSchemaStmt *n = makeNode(PGAlterObjectSchemaStmt); + n->objectType = PG_OBJECT_VIEW; + n->relation = (yyvsp[-3].range); + n->newschema = (yyvsp[0].str); + n->missing_ok = false; + (yyval.node) = (PGNode *)n; + } +#line 25424 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1260: -#line 46 "third_party/libpg_query/grammar/statements/transaction.y" - {;} +#line 53 "third_party/libpg_query/grammar/statements/alter_schema.y" + { + PGAlterObjectSchemaStmt *n = makeNode(PGAlterObjectSchemaStmt); + n->objectType = PG_OBJECT_VIEW; + n->relation = (yyvsp[-3].range); + n->newschema = (yyvsp[0].str); + n->missing_ok = true; + (yyval.node) = (PGNode *)n; + } +#line 25437 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1261: -#line 47 "third_party/libpg_query/grammar/statements/transaction.y" - {;} +#line 12 "third_party/libpg_query/grammar/statements/update.y" + { + PGUpdateStmt *n = makeNode(PGUpdateStmt); + n->relation = (yyvsp[-5].range); + n->targetList = (yyvsp[-3].list); + n->fromClause = (yyvsp[-2].list); + n->whereClause = (yyvsp[-1].node); + n->returningList = (yyvsp[0].list); + n->withClause = (yyvsp[-7].with); + (yyval.node) = (PGNode *)n; + } +#line 25452 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1262: #line 10 "third_party/libpg_query/grammar/statements/insert.y" - { - (yyvsp[(5) - (7)].istmt)->relation = (yyvsp[(4) - (7)].range); - (yyvsp[(5) - (7)].istmt)->onConflictClause = (yyvsp[(6) - (7)].onconflict); - (yyvsp[(5) - (7)].istmt)->returningList = (yyvsp[(7) - (7)].list); - (yyvsp[(5) - (7)].istmt)->withClause = (yyvsp[(1) - (7)].with); - (yyval.node) = (PGNode *) (yyvsp[(5) - (7)].istmt); - ;} + { + (yyvsp[-2].istmt)->relation = (yyvsp[-3].range); + (yyvsp[-2].istmt)->onConflictClause = (yyvsp[-1].onconflict); + (yyvsp[-2].istmt)->returningList = (yyvsp[0].list); + (yyvsp[-2].istmt)->withClause = (yyvsp[-6].with); + (yyval.node) = (PGNode *) (yyvsp[-2].istmt); + } +#line 25464 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1263: #line 22 "third_party/libpg_query/grammar/statements/insert.y" - { + { (yyval.istmt) = makeNode(PGInsertStmt); (yyval.istmt)->cols = NIL; - (yyval.istmt)->selectStmt = (yyvsp[(1) - (1)].node); - ;} + (yyval.istmt)->selectStmt = (yyvsp[0].node); + } +#line 25474 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1264: #line 28 "third_party/libpg_query/grammar/statements/insert.y" - { + { (yyval.istmt) = makeNode(PGInsertStmt); (yyval.istmt)->cols = NIL; - (yyval.istmt)->override = (yyvsp[(2) - (4)].override); - (yyval.istmt)->selectStmt = (yyvsp[(4) - (4)].node); - ;} + (yyval.istmt)->override = (yyvsp[-2].override); + (yyval.istmt)->selectStmt = (yyvsp[0].node); + } +#line 25485 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1265: #line 35 "third_party/libpg_query/grammar/statements/insert.y" - { + { (yyval.istmt) = makeNode(PGInsertStmt); - (yyval.istmt)->cols = (yyvsp[(2) - (4)].list); - (yyval.istmt)->selectStmt = (yyvsp[(4) - (4)].node); - ;} + (yyval.istmt)->cols = (yyvsp[-2].list); + (yyval.istmt)->selectStmt = (yyvsp[0].node); + } +#line 25495 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1266: #line 41 "third_party/libpg_query/grammar/statements/insert.y" - { + { (yyval.istmt) = makeNode(PGInsertStmt); - (yyval.istmt)->cols = (yyvsp[(2) - (7)].list); - (yyval.istmt)->override = (yyvsp[(5) - (7)].override); - (yyval.istmt)->selectStmt = (yyvsp[(7) - (7)].node); - ;} + (yyval.istmt)->cols = (yyvsp[-5].list); + (yyval.istmt)->override = (yyvsp[-2].override); + (yyval.istmt)->selectStmt = (yyvsp[0].node); + } +#line 25506 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1267: #line 48 "third_party/libpg_query/grammar/statements/insert.y" - { + { (yyval.istmt) = makeNode(PGInsertStmt); (yyval.istmt)->cols = NIL; (yyval.istmt)->selectStmt = NULL; - ;} + } +#line 25516 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1268: #line 58 "third_party/libpg_query/grammar/statements/insert.y" - { - (yyval.range) = (yyvsp[(1) - (1)].range); - ;} + { + (yyval.range) = (yyvsp[0].range); + } +#line 25524 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1269: #line 62 "third_party/libpg_query/grammar/statements/insert.y" - { - (yyvsp[(1) - (3)].range)->alias = makeAlias((yyvsp[(3) - (3)].str), NIL); - (yyval.range) = (yyvsp[(1) - (3)].range); - ;} + { + (yyvsp[-2].range)->alias = makeAlias((yyvsp[0].str), NIL); + (yyval.range) = (yyvsp[-2].range); + } +#line 25533 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1270: #line 71 "third_party/libpg_query/grammar/statements/insert.y" - { + { (yyval.infer) = makeNode(PGInferClause); - (yyval.infer)->indexElems = (yyvsp[(2) - (4)].list); - (yyval.infer)->whereClause = (yyvsp[(4) - (4)].node); + (yyval.infer)->indexElems = (yyvsp[-2].list); + (yyval.infer)->whereClause = (yyvsp[0].node); (yyval.infer)->conname = NULL; - (yyval.infer)->location = (yylsp[(1) - (4)]); - ;} + (yyval.infer)->location = (yylsp[-3]); + } +#line 25545 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1271: #line 80 "third_party/libpg_query/grammar/statements/insert.y" - { + { (yyval.infer) = makeNode(PGInferClause); (yyval.infer)->indexElems = NIL; (yyval.infer)->whereClause = NULL; - (yyval.infer)->conname = (yyvsp[(3) - (3)].str); - (yyval.infer)->location = (yylsp[(1) - (3)]); - ;} + (yyval.infer)->conname = (yyvsp[0].str); + (yyval.infer)->location = (yylsp[-2]); + } +#line 25557 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1272: #line 88 "third_party/libpg_query/grammar/statements/insert.y" - { + { (yyval.infer) = NULL; - ;} + } +#line 25565 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1273: #line 95 "third_party/libpg_query/grammar/statements/insert.y" - { (yyval.with) = (yyvsp[(1) - (1)].with); ;} + { (yyval.with) = (yyvsp[0].with); } +#line 25571 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1274: #line 96 "third_party/libpg_query/grammar/statements/insert.y" - { (yyval.with) = NULL; ;} + { (yyval.with) = NULL; } +#line 25577 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1275: #line 102 "third_party/libpg_query/grammar/statements/insert.y" - { + { (yyval.target) = makeNode(PGResTarget); - (yyval.target)->name = (yyvsp[(1) - (2)].str); - (yyval.target)->indirection = check_indirection((yyvsp[(2) - (2)].list), yyscanner); + (yyval.target)->name = (yyvsp[-1].str); + (yyval.target)->indirection = check_indirection((yyvsp[0].list), yyscanner); (yyval.target)->val = NULL; - (yyval.target)->location = (yylsp[(1) - (2)]); - ;} + (yyval.target)->location = (yylsp[-1]); + } +#line 25589 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1276: #line 114 "third_party/libpg_query/grammar/statements/insert.y" - { - (yyvsp[(1) - (3)].target)->val = (PGNode *) (yyvsp[(3) - (3)].node); - (yyval.list) = list_make1((yyvsp[(1) - (3)].target)); - ;} + { + (yyvsp[-2].target)->val = (PGNode *) (yyvsp[0].node); + (yyval.list) = list_make1((yyvsp[-2].target)); + } +#line 25598 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1277: #line 119 "third_party/libpg_query/grammar/statements/insert.y" - { - int ncolumns = list_length((yyvsp[(2) - (5)].list)); + { + int ncolumns = list_length((yyvsp[-3].list)); int i = 1; PGListCell *col_cell; /* Create a PGMultiAssignRef source for each target */ - foreach(col_cell, (yyvsp[(2) - (5)].list)) + foreach(col_cell, (yyvsp[-3].list)) { PGResTarget *res_col = (PGResTarget *) lfirst(col_cell); PGMultiAssignRef *r = makeNode(PGMultiAssignRef); - r->source = (PGNode *) (yyvsp[(5) - (5)].node); + r->source = (PGNode *) (yyvsp[0].node); r->colno = i; r->ncolumns = ncolumns; res_col->val = (PGNode *) r; i++; } - (yyval.list) = (yyvsp[(2) - (5)].list); - ;} + (yyval.list) = (yyvsp[-3].list); + } +#line 25623 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1278: #line 144 "third_party/libpg_query/grammar/statements/insert.y" - { + { (yyval.onconflict) = makeNode(PGOnConflictClause); (yyval.onconflict)->action = PG_ONCONFLICT_UPDATE; - (yyval.onconflict)->infer = (yyvsp[(3) - (8)].infer); - (yyval.onconflict)->targetList = (yyvsp[(7) - (8)].list); - (yyval.onconflict)->whereClause = (yyvsp[(8) - (8)].node); - (yyval.onconflict)->location = (yylsp[(1) - (8)]); - ;} + (yyval.onconflict)->infer = (yyvsp[-5].infer); + (yyval.onconflict)->targetList = (yyvsp[-1].list); + (yyval.onconflict)->whereClause = (yyvsp[0].node); + (yyval.onconflict)->location = (yylsp[-7]); + } +#line 25636 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1279: #line 154 "third_party/libpg_query/grammar/statements/insert.y" - { + { (yyval.onconflict) = makeNode(PGOnConflictClause); (yyval.onconflict)->action = PG_ONCONFLICT_NOTHING; - (yyval.onconflict)->infer = (yyvsp[(3) - (5)].infer); + (yyval.onconflict)->infer = (yyvsp[-2].infer); (yyval.onconflict)->targetList = NIL; (yyval.onconflict)->whereClause = NULL; - (yyval.onconflict)->location = (yylsp[(1) - (5)]); - ;} + (yyval.onconflict)->location = (yylsp[-4]); + } +#line 25649 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1280: #line 163 "third_party/libpg_query/grammar/statements/insert.y" - { + { (yyval.onconflict) = NULL; - ;} + } +#line 25657 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1281: #line 170 "third_party/libpg_query/grammar/statements/insert.y" - { + { (yyval.ielem) = makeNode(PGIndexElem); - (yyval.ielem)->name = (yyvsp[(1) - (5)].str); + (yyval.ielem)->name = (yyvsp[-4].str); (yyval.ielem)->expr = NULL; (yyval.ielem)->indexcolname = NULL; - (yyval.ielem)->collation = (yyvsp[(2) - (5)].list); - (yyval.ielem)->opclass = (yyvsp[(3) - (5)].list); - (yyval.ielem)->ordering = (yyvsp[(4) - (5)].sortorder); - (yyval.ielem)->nulls_ordering = (yyvsp[(5) - (5)].nullorder); - ;} + (yyval.ielem)->collation = (yyvsp[-3].list); + (yyval.ielem)->opclass = (yyvsp[-2].list); + (yyval.ielem)->ordering = (yyvsp[-1].sortorder); + (yyval.ielem)->nulls_ordering = (yyvsp[0].nullorder); + } +#line 25672 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1282: #line 181 "third_party/libpg_query/grammar/statements/insert.y" - { + { (yyval.ielem) = makeNode(PGIndexElem); (yyval.ielem)->name = NULL; - (yyval.ielem)->expr = (yyvsp[(1) - (5)].node); + (yyval.ielem)->expr = (yyvsp[-4].node); (yyval.ielem)->indexcolname = NULL; - (yyval.ielem)->collation = (yyvsp[(2) - (5)].list); - (yyval.ielem)->opclass = (yyvsp[(3) - (5)].list); - (yyval.ielem)->ordering = (yyvsp[(4) - (5)].sortorder); - (yyval.ielem)->nulls_ordering = (yyvsp[(5) - (5)].nullorder); - ;} + (yyval.ielem)->collation = (yyvsp[-3].list); + (yyval.ielem)->opclass = (yyvsp[-2].list); + (yyval.ielem)->ordering = (yyvsp[-1].sortorder); + (yyval.ielem)->nulls_ordering = (yyvsp[0].nullorder); + } +#line 25687 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1283: #line 192 "third_party/libpg_query/grammar/statements/insert.y" - { + { (yyval.ielem) = makeNode(PGIndexElem); (yyval.ielem)->name = NULL; - (yyval.ielem)->expr = (yyvsp[(2) - (7)].node); + (yyval.ielem)->expr = (yyvsp[-5].node); (yyval.ielem)->indexcolname = NULL; - (yyval.ielem)->collation = (yyvsp[(4) - (7)].list); - (yyval.ielem)->opclass = (yyvsp[(5) - (7)].list); - (yyval.ielem)->ordering = (yyvsp[(6) - (7)].sortorder); - (yyval.ielem)->nulls_ordering = (yyvsp[(7) - (7)].nullorder); - ;} + (yyval.ielem)->collation = (yyvsp[-3].list); + (yyval.ielem)->opclass = (yyvsp[-2].list); + (yyval.ielem)->ordering = (yyvsp[-1].sortorder); + (yyval.ielem)->nulls_ordering = (yyvsp[0].nullorder); + } +#line 25702 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1284: #line 206 "third_party/libpg_query/grammar/statements/insert.y" - { (yyval.list) = (yyvsp[(2) - (2)].list); ;} + { (yyval.list) = (yyvsp[0].list); } +#line 25708 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1285: #line 207 "third_party/libpg_query/grammar/statements/insert.y" - { (yyval.list) = NIL; ;} + { (yyval.list) = NIL; } +#line 25714 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1286: #line 213 "third_party/libpg_query/grammar/statements/insert.y" - { (yyval.override) = PG_OVERRIDING_USER_VALUE; ;} + { (yyval.override) = PG_OVERRIDING_USER_VALUE; } +#line 25720 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1287: #line 214 "third_party/libpg_query/grammar/statements/insert.y" - { (yyval.override) = OVERRIDING_SYSTEM_VALUE; ;} + { (yyval.override) = OVERRIDING_SYSTEM_VALUE; } +#line 25726 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1288: #line 219 "third_party/libpg_query/grammar/statements/insert.y" - { (yyval.list) = list_make1((yyvsp[(1) - (1)].target)); ;} + { (yyval.list) = list_make1((yyvsp[0].target)); } +#line 25732 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1289: #line 220 "third_party/libpg_query/grammar/statements/insert.y" - { (yyval.list) = lappend((yyvsp[(1) - (3)].list),(yyvsp[(3) - (3)].target)); ;} + { (yyval.list) = lappend((yyvsp[-2].list),(yyvsp[0].target)); } +#line 25738 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1290: #line 226 "third_party/libpg_query/grammar/statements/insert.y" - { (yyval.list) = (yyvsp[(2) - (2)].list); ;} + { (yyval.list) = (yyvsp[0].list); } +#line 25744 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1291: #line 227 "third_party/libpg_query/grammar/statements/insert.y" - { (yyval.list) = NIL; ;} + { (yyval.list) = NIL; } +#line 25750 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1292: #line 231 "third_party/libpg_query/grammar/statements/insert.y" - { (yyval.list) = (yyvsp[(1) - (1)].list); ;} + { (yyval.list) = (yyvsp[0].list); } +#line 25756 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1293: #line 232 "third_party/libpg_query/grammar/statements/insert.y" - { (yyval.list) = NIL; ;} + { (yyval.list) = NIL; } +#line 25762 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1294: #line 238 "third_party/libpg_query/grammar/statements/insert.y" - { (yyval.list) = list_make1((yyvsp[(1) - (1)].target)); ;} + { (yyval.list) = list_make1((yyvsp[0].target)); } +#line 25768 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1295: #line 240 "third_party/libpg_query/grammar/statements/insert.y" - { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].target)); ;} + { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].target)); } +#line 25774 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1296: #line 245 "third_party/libpg_query/grammar/statements/insert.y" - { (yyval.list) = (yyvsp[(1) - (1)].list); ;} + { (yyval.list) = (yyvsp[0].list); } +#line 25780 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1297: #line 246 "third_party/libpg_query/grammar/statements/insert.y" - { (yyval.list) = list_concat((yyvsp[(1) - (3)].list),(yyvsp[(3) - (3)].list)); ;} + { (yyval.list) = list_concat((yyvsp[-2].list),(yyvsp[0].list)); } +#line 25786 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1298: #line 250 "third_party/libpg_query/grammar/statements/insert.y" - { (yyval.list) = (yyvsp[(1) - (1)].list); ;} + { (yyval.list) = (yyvsp[0].list); } +#line 25792 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1299: #line 251 "third_party/libpg_query/grammar/statements/insert.y" - { (yyval.list) = (yyvsp[(1) - (2)].list); ;} + { (yyval.list) = (yyvsp[-1].list); } +#line 25798 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1300: #line 254 "third_party/libpg_query/grammar/statements/insert.y" - { (yyval.list) = list_make1((yyvsp[(1) - (1)].ielem)); ;} + { (yyval.list) = list_make1((yyvsp[0].ielem)); } +#line 25804 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1301: #line 255 "third_party/libpg_query/grammar/statements/insert.y" - { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].ielem)); ;} + { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].ielem)); } +#line 25810 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1302: #line 261 "third_party/libpg_query/grammar/statements/insert.y" - { + { (yyval.target) = makeNode(PGResTarget); - (yyval.target)->name = (yyvsp[(1) - (2)].str); - (yyval.target)->indirection = check_indirection((yyvsp[(2) - (2)].list), yyscanner); + (yyval.target)->name = (yyvsp[-1].str); + (yyval.target)->indirection = check_indirection((yyvsp[0].list), yyscanner); (yyval.target)->val = NULL; /* upper production sets this */ - (yyval.target)->location = (yylsp[(1) - (2)]); - ;} + (yyval.target)->location = (yylsp[-1]); + } +#line 25822 "third_party/libpg_query/grammar/grammar_out.cpp" break; case 1303: -#line 8 "third_party/libpg_query/grammar/statements/create_type.y" - { - PGCreateTypeStmt *n = makeNode(PGCreateTypeStmt); - n->typeName = (yyvsp[(3) - (5)].list); - auto name = std::string(reinterpret_cast((yyvsp[(5) - (5)].typnam)->names->tail->data.ptr_value)->val.str); - if (name == "enum") { - n->kind = PG_NEWTYPE_ENUM; - n->vals = (yyvsp[(5) - (5)].typnam)->typmods; - } else { - n->kind = PG_NEWTYPE_ALIAS; - n->ofType = (yyvsp[(5) - (5)].typnam); - } +#line 10 "third_party/libpg_query/grammar/statements/analyze.y" + { + PGVacuumStmt *n = makeNode(PGVacuumStmt); + n->options = PG_VACOPT_ANALYZE; + if ((yyvsp[0].boolean)) + n->options |= PG_VACOPT_VERBOSE; + n->relation = NULL; + n->va_cols = NIL; + (yyval.node) = (PGNode *)n; + } +#line 25836 "third_party/libpg_query/grammar/grammar_out.cpp" + break; + + case 1304: +#line 20 "third_party/libpg_query/grammar/statements/analyze.y" + { + PGVacuumStmt *n = makeNode(PGVacuumStmt); + n->options = PG_VACOPT_ANALYZE; + if ((yyvsp[-2].boolean)) + n->options |= PG_VACOPT_VERBOSE; + n->relation = (yyvsp[-1].range); + n->va_cols = (yyvsp[0].list); (yyval.node) = (PGNode *)n; - ;} + } +#line 25850 "third_party/libpg_query/grammar/grammar_out.cpp" break; -/* Line 1267 of yacc.c. */ -#line 25894 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 25854 "third_party/libpg_query/grammar/grammar_out.cpp" + default: break; } + /* User semantic actions sometimes alter yychar, and that requires + that yytoken be updated with the new translation. We take the + approach of translating immediately before every use of yytoken. + One alternative is translating here after every semantic action, + but that translation would be missed if the semantic action invokes + YYABORT, YYACCEPT, or YYERROR immediately after altering yychar or + if it invokes YYBACKUP. In the case of YYABORT or YYACCEPT, an + incorrect destructor might then be invoked immediately. In the + case of YYERROR or YYBACKUP, subsequent parser actions might lead + to an incorrect destructor call or verbose syntax error message + before the lookahead is translated. */ YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc); YYPOPSTACK (yylen); @@ -25902,25 +25874,28 @@ YYLTYPE yylloc; *++yyvsp = yyval; *++yylsp = yyloc; - /* Now `shift' the result of the reduction. Determine what state + /* Now 'shift' the result of the reduction. Determine what state that goes to, based on the state we popped back to and the rule number reduced by. */ - - yyn = yyr1[yyn]; - - yystate = yypgoto[yyn - YYNTOKENS] + *yyssp; - if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp) - yystate = yytable[yystate]; - else - yystate = yydefgoto[yyn - YYNTOKENS]; + { + const int yylhs = yyr1[yyn] - YYNTOKENS; + const int yyi = yypgoto[yylhs] + *yyssp; + yystate = (0 <= yyi && yyi <= YYLAST && yycheck[yyi] == *yyssp + ? yytable[yyi] + : yydefgoto[yylhs]); + } goto yynewstate; -/*------------------------------------. -| yyerrlab -- here on detecting error | -`------------------------------------*/ +/*--------------------------------------. +| yyerrlab -- here on detecting error. | +`--------------------------------------*/ yyerrlab: + /* Make sure we have latest lookahead translation. See comments at + user semantic actions for why this is necessary. */ + yytoken = yychar == YYEMPTY ? YYEMPTY : YYTRANSLATE (yychar); + /* If not already recovering from an error, report this error. */ if (!yyerrstatus) { @@ -25928,62 +25903,61 @@ YYLTYPE yylloc; #if ! YYERROR_VERBOSE yyerror (&yylloc, yyscanner, YY_("syntax error")); #else +# define YYSYNTAX_ERROR yysyntax_error (&yymsg_alloc, &yymsg, \ + yyssp, yytoken) { - YYSIZE_T yysize = yysyntax_error (0, yystate, yychar); - if (yymsg_alloc < yysize && yymsg_alloc < YYSTACK_ALLOC_MAXIMUM) - { - YYSIZE_T yyalloc = 2 * yysize; - if (! (yysize <= yyalloc && yyalloc <= YYSTACK_ALLOC_MAXIMUM)) - yyalloc = YYSTACK_ALLOC_MAXIMUM; - if (yymsg != yymsgbuf) - YYSTACK_FREE (yymsg); - yymsg = (char *) YYSTACK_ALLOC (yyalloc); - if (yymsg) - yymsg_alloc = yyalloc; - else - { - yymsg = yymsgbuf; - yymsg_alloc = sizeof yymsgbuf; - } - } - - if (0 < yysize && yysize <= yymsg_alloc) - { - (void) yysyntax_error (yymsg, yystate, yychar); - yyerror (&yylloc, yyscanner, yymsg); - } - else - { - yyerror (&yylloc, yyscanner, YY_("syntax error")); - if (yysize != 0) - goto yyexhaustedlab; - } + char const *yymsgp = YY_("syntax error"); + int yysyntax_error_status; + yysyntax_error_status = YYSYNTAX_ERROR; + if (yysyntax_error_status == 0) + yymsgp = yymsg; + else if (yysyntax_error_status == 1) + { + if (yymsg != yymsgbuf) + YYSTACK_FREE (yymsg); + yymsg = YY_CAST (char *, YYSTACK_ALLOC (YY_CAST (YYSIZE_T, yymsg_alloc))); + if (!yymsg) + { + yymsg = yymsgbuf; + yymsg_alloc = sizeof yymsgbuf; + yysyntax_error_status = 2; + } + else + { + yysyntax_error_status = YYSYNTAX_ERROR; + yymsgp = yymsg; + } + } + yyerror (&yylloc, yyscanner, yymsgp); + if (yysyntax_error_status == 2) + goto yyexhaustedlab; } +# undef YYSYNTAX_ERROR #endif } - yyerror_range[0] = yylloc; + yyerror_range[1] = yylloc; if (yyerrstatus == 3) { - /* If just tried and failed to reuse look-ahead token after an - error, discard it. */ + /* If just tried and failed to reuse lookahead token after an + error, discard it. */ if (yychar <= YYEOF) - { - /* Return failure if at end of input. */ - if (yychar == YYEOF) - YYABORT; - } + { + /* Return failure if at end of input. */ + if (yychar == YYEOF) + YYABORT; + } else - { - yydestruct ("Error: discarding", - yytoken, &yylval, &yylloc, yyscanner); - yychar = YYEMPTY; - } + { + yydestruct ("Error: discarding", + yytoken, &yylval, &yylloc, yyscanner); + yychar = YYEMPTY; + } } - /* Else will try to reuse look-ahead token after shifting the error + /* Else will try to reuse lookahead token after shifting the error token. */ goto yyerrlab1; @@ -25992,15 +25966,12 @@ YYLTYPE yylloc; | yyerrorlab -- error raised explicitly by YYERROR. | `---------------------------------------------------*/ yyerrorlab: + /* Pacify compilers when the user code never invokes YYERROR and the + label yyerrorlab therefore never appears in user code. */ + if (0) + YYERROR; - /* Pacify compilers like GCC when the user code never invokes - YYERROR and the label yyerrorlab therefore never appears in user - code. */ - if (/*CONSTCOND*/ 0) - goto yyerrorlab; - - yyerror_range[0] = yylsp[1-yylen]; - /* Do not reclaim the symbols of the rule which action triggered + /* Do not reclaim the symbols of the rule whose action triggered this YYERROR. */ YYPOPSTACK (yylen); yylen = 0; @@ -26013,43 +25984,42 @@ YYLTYPE yylloc; | yyerrlab1 -- common code for both syntax error and YYERROR. | `-------------------------------------------------------------*/ yyerrlab1: - yyerrstatus = 3; /* Each real token shifted decrements this. */ + yyerrstatus = 3; /* Each real token shifted decrements this. */ for (;;) { yyn = yypact[yystate]; - if (yyn != YYPACT_NINF) - { - yyn += YYTERROR; - if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR) - { - yyn = yytable[yyn]; - if (0 < yyn) - break; - } - } + if (!yypact_value_is_default (yyn)) + { + yyn += YYTERROR; + if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR) + { + yyn = yytable[yyn]; + if (0 < yyn) + break; + } + } /* Pop the current state because it cannot handle the error token. */ if (yyssp == yyss) - YYABORT; + YYABORT; - yyerror_range[0] = *yylsp; + yyerror_range[1] = *yylsp; yydestruct ("Error: popping", - yystos[yystate], yyvsp, yylsp, yyscanner); + yystos[yystate], yyvsp, yylsp, yyscanner); YYPOPSTACK (1); yystate = *yyssp; YY_STACK_PRINT (yyss, yyssp); } - if (yyn == YYFINAL) - YYACCEPT; - + YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN *++yyvsp = yylval; + YY_IGNORE_MAYBE_UNINITIALIZED_END - yyerror_range[1] = yylloc; + yyerror_range[2] = yylloc; /* Using YYLLOC is tempting, but would change the location of - the look-ahead. YYLOC is available though. */ - YYLLOC_DEFAULT (yyloc, (yyerror_range - 1), 2); + the lookahead. YYLOC is available though. */ + YYLLOC_DEFAULT (yyloc, yyerror_range, 2); *++yylsp = yyloc; /* Shift the error token. */ @@ -26066,6 +26036,7 @@ YYLTYPE yylloc; yyresult = 0; goto yyreturn; + /*-----------------------------------. | yyabortlab -- YYABORT comes here. | `-----------------------------------*/ @@ -26073,7 +26044,8 @@ YYLTYPE yylloc; yyresult = 1; goto yyreturn; -#ifndef yyoverflow + +#if !defined yyoverflow || YYERROR_VERBOSE /*-------------------------------------------------. | yyexhaustedlab -- memory exhaustion comes here. | `-------------------------------------------------*/ @@ -26083,18 +26055,27 @@ YYLTYPE yylloc; /* Fall through. */ #endif + +/*-----------------------------------------------------. +| yyreturn -- parsing is finished, return the result. | +`-----------------------------------------------------*/ yyreturn: - if (yychar != YYEOF && yychar != YYEMPTY) - yydestruct ("Cleanup: discarding lookahead", - yytoken, &yylval, &yylloc, yyscanner); - /* Do not reclaim the symbols of the rule which action triggered + if (yychar != YYEMPTY) + { + /* Make sure we have latest lookahead translation. See comments at + user semantic actions for why this is necessary. */ + yytoken = YYTRANSLATE (yychar); + yydestruct ("Cleanup: discarding lookahead", + yytoken, &yylval, &yylloc, yyscanner); + } + /* Do not reclaim the symbols of the rule whose action triggered this YYABORT or YYACCEPT. */ YYPOPSTACK (yylen); YY_STACK_PRINT (yyss, yyssp); while (yyssp != yyss) { yydestruct ("Cleanup: popping", - yystos[*yyssp], yyvsp, yylsp, yyscanner); + yystos[+*yyssp], yyvsp, yylsp, yyscanner); YYPOPSTACK (1); } #ifndef yyoverflow @@ -26105,12 +26086,9 @@ YYLTYPE yylloc; if (yymsg != yymsgbuf) YYSTACK_FREE (yymsg); #endif - /* Make sure YYID is used. */ - return YYID (yyresult); + return yyresult; } - - -#line 33 "third_party/libpg_query/grammar/statements/create_type.y" +#line 41 "third_party/libpg_query/grammar/statements/analyze.y" #line 1 "third_party/libpg_query/grammar/grammar.cpp" @@ -26863,4 +26841,3 @@ parser_init(base_yy_extra_type *yyext) #undef yylloc } // namespace duckdb_libpgquery - From 5fe8610353d4a1348e390b264e94661ccc8a7c99 Mon Sep 17 00:00:00 2001 From: clundro Date: Tue, 28 Mar 2023 17:05:22 +0800 Subject: [PATCH 3/3] [spam] chang file structrue. Signed-off-by: clundro --- test/binder/binder_test.cpp | 7 +- .../libpg_query/grammar/statements/copy.y | 40 +- .../libpg_query/include/parser/gram.hpp | 992 +- .../libpg_query/src_backend_parser_gram.cpp | 31108 ++++++++-------- 4 files changed, 16120 insertions(+), 16027 deletions(-) diff --git a/test/binder/binder_test.cpp b/test/binder/binder_test.cpp index 21ba23e9d..3698143e0 100644 --- a/test/binder/binder_test.cpp +++ b/test/binder/binder_test.cpp @@ -173,11 +173,16 @@ TEST(BinderTest, BindBinaryOp) { PrintStatements(statements); } -TEST(BinderTest, DIABLED_BindCopyFrom) { +TEST(BinderTest, DISABLED_BindCopyFrom) { auto statements = TryBind("copy from 'a.csv'"); PrintStatements(statements); } +TEST(BinderTest, DISABLED_SelectFromCSV) { + auto statements = TryBind("select * from 'a.csv'"); + PrintStatements(statements); +} + // TODO(chi): subquery is not supported yet TEST(BinderTest, DISABLED_BindUncorrelatedSubquery) { auto statements = TryBind("select * from (select * from a) INNER JOIN (select * from b) ON a.x = b.y"); diff --git a/third_party/libpg_query/grammar/statements/copy.y b/third_party/libpg_query/grammar/statements/copy.y index a7cec301f..ead6b8d77 100644 --- a/third_party/libpg_query/grammar/statements/copy.y +++ b/third_party/libpg_query/grammar/statements/copy.y @@ -1,23 +1,4 @@ -CopyStmt: COPY FROM copy_file_name - { - PGCopyStmt *n = makeNode(PGCopyStmt); - n->relation = NULL; - n->query = NULL; - n->attlist = NIL; - n->is_from = true; - n->is_program = true; - n->filename = $3; - n->options = NIL; - - if (n->is_program && n->filename == NULL) - ereport(ERROR, - (errcode(PG_ERRCODE_SYNTAX_ERROR), - errmsg("COPYFROMFILE not allowed with NULL"), - parser_errposition(@3))); - - $$ = (PGNode *)n; - } - | COPY opt_binary qualified_name opt_column_list opt_oids +CopyStmt: COPY opt_binary qualified_name opt_column_list opt_oids copy_from opt_program copy_file_name copy_delimiter opt_with copy_options { PGCopyStmt *n = makeNode(PGCopyStmt); @@ -63,6 +44,25 @@ CopyStmt: COPY FROM copy_file_name errmsg("STDIN/STDOUT not allowed with PROGRAM"), parser_errposition(@5))); + $$ = (PGNode *)n; + } + | COPY FROM copy_file_name + { + PGCopyStmt *n = makeNode(PGCopyStmt); + n->relation = NULL; + n->query = NULL; + n->attlist = NIL; + n->is_from = true; + n->is_program = false; + n->filename = $3; + n->options = NIL; + + if (n->filename == NULL) + ereport(ERROR, + (errcode(PG_ERRCODE_SYNTAX_ERROR), + errmsg("COPYFROMFILE not allowed with NULL"), + parser_errposition(@3))); + $$ = (PGNode *)n; } ; diff --git a/third_party/libpg_query/include/parser/gram.hpp b/third_party/libpg_query/include/parser/gram.hpp index f6512d730..ffbcdd69d 100644 --- a/third_party/libpg_query/include/parser/gram.hpp +++ b/third_party/libpg_query/include/parser/gram.hpp @@ -1,8 +1,8 @@ -/* A Bison parser, made by GNU Bison 3.5.1. */ +/* A Bison parser, made by GNU Bison 3.8.1. */ /* Bison interface for Yacc-like parsers in C - Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2020 Free Software Foundation, + Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2021 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify @@ -16,7 +16,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program. If not, see . */ + along with this program. If not, see . */ /* As a special exception, you may create a larger work that contains part or all of the Bison parser skeleton and distribute that work @@ -31,8 +31,9 @@ This special exception was added by the Free Software Foundation in version 2.2 of Bison. */ -/* Undocumented macros, especially those whose name start with YY_, - are private implementation details. Do not rely on them. */ +/* DO NOT RELY ON FEATURES THAT ARE NOT DOCUMENTED in the manual, + especially those whose name start with YY_ or yy_. They are + private implementation details that can be changed or removed. */ #ifndef YY_BASE_YY_THIRD_PARTY_LIBPG_QUERY_GRAMMAR_GRAMMAR_OUT_HPP_INCLUDED # define YY_BASE_YY_THIRD_PARTY_LIBPG_QUERY_GRAMMAR_GRAMMAR_OUT_HPP_INCLUDED @@ -44,497 +45,502 @@ extern int base_yydebug; #endif -/* Token type. */ +/* Token kinds. */ #ifndef YYTOKENTYPE # define YYTOKENTYPE enum yytokentype { - IDENT = 258, - FCONST = 259, - SCONST = 260, - BCONST = 261, - XCONST = 262, - Op = 263, - ICONST = 264, - PARAM = 265, - TYPECAST = 266, - DOT_DOT = 267, - COLON_EQUALS = 268, - EQUALS_GREATER = 269, - POWER_OF = 270, - LAMBDA_ARROW = 271, - DOUBLE_ARROW = 272, - LESS_EQUALS = 273, - GREATER_EQUALS = 274, - NOT_EQUALS = 275, - ABORT_P = 276, - ABSOLUTE_P = 277, - ACCESS = 278, - ACTION = 279, - ADD_P = 280, - ADMIN = 281, - AFTER = 282, - AGGREGATE = 283, - ALL = 284, - ALSO = 285, - ALTER = 286, - ALWAYS = 287, - ANALYSE = 288, - ANALYZE = 289, - AND = 290, - ANY = 291, - ARRAY = 292, - AS = 293, - ASC_P = 294, - ASSERTION = 295, - ASSIGNMENT = 296, - ASYMMETRIC = 297, - AT = 298, - ATTACH = 299, - ATTRIBUTE = 300, - AUTHORIZATION = 301, - BACKWARD = 302, - BEFORE = 303, - BEGIN_P = 304, - BETWEEN = 305, - BIGINT = 306, - BINARY = 307, - BIT = 308, - BOOLEAN_P = 309, - BOTH = 310, - BY = 311, - CACHE = 312, - CALL_P = 313, - CALLED = 314, - CASCADE = 315, - CASCADED = 316, - CASE = 317, - CAST = 318, - CATALOG_P = 319, - CHAIN = 320, - CHAR_P = 321, - CHARACTER = 322, - CHARACTERISTICS = 323, - CHECK_P = 324, - CHECKPOINT = 325, - CLASS = 326, - CLOSE = 327, - CLUSTER = 328, - COALESCE = 329, - COLLATE = 330, - COLLATION = 331, - COLUMN = 332, - COLUMNS = 333, - COMMENT = 334, - COMMENTS = 335, - COMMIT = 336, - COMMITTED = 337, - COMPRESSION = 338, - CONCURRENTLY = 339, - CONFIGURATION = 340, - CONFLICT = 341, - CONNECTION = 342, - CONSTRAINT = 343, - CONSTRAINTS = 344, - CONTENT_P = 345, - CONTINUE_P = 346, - CONVERSION_P = 347, - COPY = 348, - COST = 349, - CREATE_P = 350, - CROSS = 351, - CSV = 352, - CUBE = 353, - CURRENT_P = 354, - CURRENT_CATALOG = 355, - CURRENT_DATE = 356, - CURRENT_ROLE = 357, - CURRENT_SCHEMA = 358, - CURRENT_TIME = 359, - CURRENT_TIMESTAMP = 360, - CURRENT_USER = 361, - CURSOR = 362, - CYCLE = 363, - DATA_P = 364, - DATABASE = 365, - DAY_P = 366, - DAYS_P = 367, - DEALLOCATE = 368, - DEC = 369, - DECIMAL_P = 370, - DECLARE = 371, - DEFAULT = 372, - DEFAULTS = 373, - DEFERRABLE = 374, - DEFERRED = 375, - DEFINER = 376, - DELETE_P = 377, - DELIMITER = 378, - DELIMITERS = 379, - DEPENDS = 380, - DESC_P = 381, - DESCRIBE = 382, - DETACH = 383, - DICTIONARY = 384, - DISABLE_P = 385, - DISCARD = 386, - DISTINCT = 387, - DO = 388, - DOCUMENT_P = 389, - DOMAIN_P = 390, - DOUBLE_P = 391, - DROP = 392, - EACH = 393, - ELSE = 394, - ENABLE_P = 395, - ENCODING = 396, - ENCRYPTED = 397, - END_P = 398, - ENUM_P = 399, - ESCAPE = 400, - EVENT = 401, - EXCEPT = 402, - EXCLUDE = 403, - EXCLUDING = 404, - EXCLUSIVE = 405, - EXECUTE = 406, - EXISTS = 407, - EXPLAIN = 408, - EXPORT_P = 409, - EXPORT_STATE = 410, - EXTENSION = 411, - EXTERNAL = 412, - EXTRACT = 413, - FALSE_P = 414, - FAMILY = 415, - FETCH = 416, - FILTER = 417, - FIRST_P = 418, - FLOAT_P = 419, - FOLLOWING = 420, - FOR = 421, - FORCE = 422, - FOREIGN = 423, - FORWARD = 424, - FREEZE = 425, - FROM = 426, - FULL = 427, - FUNCTION = 428, - FUNCTIONS = 429, - GENERATED = 430, - GLOB = 431, - GLOBAL = 432, - GRANT = 433, - GRANTED = 434, - GROUP_P = 435, - GROUPING = 436, - GROUPING_ID = 437, - HANDLER = 438, - HAVING = 439, - HEADER_P = 440, - HOLD = 441, - HOUR_P = 442, - HOURS_P = 443, - IDENTITY_P = 444, - IF_P = 445, - IGNORE_P = 446, - ILIKE = 447, - IMMEDIATE = 448, - IMMUTABLE = 449, - IMPLICIT_P = 450, - IMPORT_P = 451, - IN_P = 452, - INCLUDING = 453, - INCREMENT = 454, - INDEX = 455, - INDEXES = 456, - INHERIT = 457, - INHERITS = 458, - INITIALLY = 459, - INLINE_P = 460, - INNER_P = 461, - INOUT = 462, - INPUT_P = 463, - INSENSITIVE = 464, - INSERT = 465, - INSTALL = 466, - INSTEAD = 467, - INT_P = 468, - INTEGER = 469, - INTERSECT = 470, - INTERVAL = 471, - INTO = 472, - INVOKER = 473, - IS = 474, - ISNULL = 475, - ISOLATION = 476, - JOIN = 477, - JSON = 478, - KEY = 479, - LABEL = 480, - LANGUAGE = 481, - LARGE_P = 482, - LAST_P = 483, - LATERAL_P = 484, - LEADING = 485, - LEAKPROOF = 486, - LEFT = 487, - LEVEL = 488, - LIKE = 489, - LIMIT = 490, - LISTEN = 491, - LOAD = 492, - LOCAL = 493, - LOCALTIME = 494, - LOCALTIMESTAMP = 495, - LOCATION = 496, - LOCK_P = 497, - LOCKED = 498, - LOGGED = 499, - MACRO = 500, - MAP = 501, - MAPPING = 502, - MATCH = 503, - MATERIALIZED = 504, - MAXVALUE = 505, - METHOD = 506, - MICROSECOND_P = 507, - MICROSECONDS_P = 508, - MILLISECOND_P = 509, - MILLISECONDS_P = 510, - MINUTE_P = 511, - MINUTES_P = 512, - MINVALUE = 513, - MODE = 514, - MONTH_P = 515, - MONTHS_P = 516, - MOVE = 517, - NAME_P = 518, - NAMES = 519, - NATIONAL = 520, - NATURAL = 521, - NCHAR = 522, - NEW = 523, - NEXT = 524, - NO = 525, - NONE = 526, - NOT = 527, - NOTHING = 528, - NOTIFY = 529, - NOTNULL = 530, - NOWAIT = 531, - NULL_P = 532, - NULLIF = 533, - NULLS_P = 534, - NUMERIC = 535, - OBJECT_P = 536, - OF = 537, - OFF = 538, - OFFSET = 539, - OIDS = 540, - OLD = 541, - ON = 542, - ONLY = 543, - OPERATOR = 544, - OPTION = 545, - OPTIONS = 546, - OR = 547, - ORDER = 548, - ORDINALITY = 549, - OUT_P = 550, - OUTER_P = 551, - OVER = 552, - OVERLAPS = 553, - OVERLAY = 554, - OVERRIDING = 555, - OWNED = 556, - OWNER = 557, - PARALLEL = 558, - PARSER = 559, - PARTIAL = 560, - PARTITION = 561, - PASSING = 562, - PASSWORD = 563, - PERCENT = 564, - PLACING = 565, - PLANS = 566, - POLICY = 567, - POSITION = 568, - PRAGMA_P = 569, - PRECEDING = 570, - PRECISION = 571, - PREPARE = 572, - PREPARED = 573, - PRESERVE = 574, - PRIMARY = 575, - PRIOR = 576, - PRIVILEGES = 577, - PROCEDURAL = 578, - PROCEDURE = 579, - PROGRAM = 580, - PUBLICATION = 581, - QUALIFY = 582, - QUOTE = 583, - RANGE = 584, - READ_P = 585, - REAL = 586, - REASSIGN = 587, - RECHECK = 588, - RECURSIVE = 589, - REF = 590, - REFERENCES = 591, - REFERENCING = 592, - REFRESH = 593, - REINDEX = 594, - RELATIVE_P = 595, - RELEASE = 596, - RENAME = 597, - REPEATABLE = 598, - REPLACE = 599, - REPLICA = 600, - RESET = 601, - RESPECT_P = 602, - RESTART = 603, - RESTRICT = 604, - RETURNING = 605, - RETURNS = 606, - REVOKE = 607, - RIGHT = 608, - ROLE = 609, - ROLLBACK = 610, - ROLLUP = 611, - ROW = 612, - ROWS = 613, - RULE = 614, - SAMPLE = 615, - SAVEPOINT = 616, - SCHEMA = 617, - SCHEMAS = 618, - SCROLL = 619, - SEARCH = 620, - SECOND_P = 621, - SECONDS_P = 622, - SECURITY = 623, - SELECT = 624, - SEQUENCE = 625, - SEQUENCES = 626, - SERIALIZABLE = 627, - SERVER = 628, - SESSION = 629, - SESSION_USER = 630, - SET = 631, - SETOF = 632, - SETS = 633, - SHARE = 634, - SHOW = 635, - SIMILAR = 636, - SIMPLE = 637, - SKIP = 638, - SMALLINT = 639, - SNAPSHOT = 640, - SOME = 641, - SQL_P = 642, - STABLE = 643, - STANDALONE_P = 644, - START = 645, - STATEMENT = 646, - STATISTICS = 647, - STDIN = 648, - STDOUT = 649, - STORAGE = 650, - STORED = 651, - STRICT_P = 652, - STRIP_P = 653, - STRUCT = 654, - SUBSCRIPTION = 655, - SUBSTRING = 656, - SUMMARIZE = 657, - SYMMETRIC = 658, - SYSID = 659, - SYSTEM_P = 660, - TABLE = 661, - TABLES = 662, - TABLESAMPLE = 663, - TABLESPACE = 664, - TEMP = 665, - TEMPLATE = 666, - TEMPORARY = 667, - TEXT_P = 668, - THEN = 669, - TIME = 670, - TIMESTAMP = 671, - TO = 672, - TRAILING = 673, - TRANSACTION = 674, - TRANSFORM = 675, - TREAT = 676, - TRIGGER = 677, - TRIM = 678, - TRUE_P = 679, - TRUNCATE = 680, - TRUSTED = 681, - TRY_CAST = 682, - TYPE_P = 683, - TYPES_P = 684, - UNBOUNDED = 685, - UNCOMMITTED = 686, - UNENCRYPTED = 687, - UNION = 688, - UNIQUE = 689, - UNKNOWN = 690, - UNLISTEN = 691, - UNLOGGED = 692, - UNTIL = 693, - UPDATE = 694, - USER = 695, - USING = 696, - VACUUM = 697, - VALID = 698, - VALIDATE = 699, - VALIDATOR = 700, - VALUE_P = 701, - VALUES = 702, - VARCHAR = 703, - VARIADIC = 704, - VARYING = 705, - VERBOSE = 706, - VERSION_P = 707, - VIEW = 708, - VIEWS = 709, - VIRTUAL = 710, - VOLATILE = 711, - WHEN = 712, - WHERE = 713, - WHITESPACE_P = 714, - WINDOW = 715, - WITH = 716, - WITHIN = 717, - WITHOUT = 718, - WORK = 719, - WRAPPER = 720, - WRITE_P = 721, - XML_P = 722, - XMLATTRIBUTES = 723, - XMLCONCAT = 724, - XMLELEMENT = 725, - XMLEXISTS = 726, - XMLFOREST = 727, - XMLNAMESPACES = 728, - XMLPARSE = 729, - XMLPI = 730, - XMLROOT = 731, - XMLSERIALIZE = 732, - XMLTABLE = 733, - YEAR_P = 734, - YEARS_P = 735, - YES_P = 736, - ZONE = 737, - NOT_LA = 738, - NULLS_LA = 739, - WITH_LA = 740, - POSTFIXOP = 741, - UMINUS = 742 + YYEMPTY = -2, + YYEOF = 0, /* "end of file" */ + YYerror = 256, /* error */ + YYUNDEF = 257, /* "invalid token" */ + IDENT = 258, /* IDENT */ + FCONST = 259, /* FCONST */ + SCONST = 260, /* SCONST */ + BCONST = 261, /* BCONST */ + XCONST = 262, /* XCONST */ + Op = 263, /* Op */ + ICONST = 264, /* ICONST */ + PARAM = 265, /* PARAM */ + TYPECAST = 266, /* TYPECAST */ + DOT_DOT = 267, /* DOT_DOT */ + COLON_EQUALS = 268, /* COLON_EQUALS */ + EQUALS_GREATER = 269, /* EQUALS_GREATER */ + POWER_OF = 270, /* POWER_OF */ + LAMBDA_ARROW = 271, /* LAMBDA_ARROW */ + DOUBLE_ARROW = 272, /* DOUBLE_ARROW */ + LESS_EQUALS = 273, /* LESS_EQUALS */ + GREATER_EQUALS = 274, /* GREATER_EQUALS */ + NOT_EQUALS = 275, /* NOT_EQUALS */ + ABORT_P = 276, /* ABORT_P */ + ABSOLUTE_P = 277, /* ABSOLUTE_P */ + ACCESS = 278, /* ACCESS */ + ACTION = 279, /* ACTION */ + ADD_P = 280, /* ADD_P */ + ADMIN = 281, /* ADMIN */ + AFTER = 282, /* AFTER */ + AGGREGATE = 283, /* AGGREGATE */ + ALL = 284, /* ALL */ + ALSO = 285, /* ALSO */ + ALTER = 286, /* ALTER */ + ALWAYS = 287, /* ALWAYS */ + ANALYSE = 288, /* ANALYSE */ + ANALYZE = 289, /* ANALYZE */ + AND = 290, /* AND */ + ANY = 291, /* ANY */ + ARRAY = 292, /* ARRAY */ + AS = 293, /* AS */ + ASC_P = 294, /* ASC_P */ + ASSERTION = 295, /* ASSERTION */ + ASSIGNMENT = 296, /* ASSIGNMENT */ + ASYMMETRIC = 297, /* ASYMMETRIC */ + AT = 298, /* AT */ + ATTACH = 299, /* ATTACH */ + ATTRIBUTE = 300, /* ATTRIBUTE */ + AUTHORIZATION = 301, /* AUTHORIZATION */ + BACKWARD = 302, /* BACKWARD */ + BEFORE = 303, /* BEFORE */ + BEGIN_P = 304, /* BEGIN_P */ + BETWEEN = 305, /* BETWEEN */ + BIGINT = 306, /* BIGINT */ + BINARY = 307, /* BINARY */ + BIT = 308, /* BIT */ + BOOLEAN_P = 309, /* BOOLEAN_P */ + BOTH = 310, /* BOTH */ + BY = 311, /* BY */ + CACHE = 312, /* CACHE */ + CALL_P = 313, /* CALL_P */ + CALLED = 314, /* CALLED */ + CASCADE = 315, /* CASCADE */ + CASCADED = 316, /* CASCADED */ + CASE = 317, /* CASE */ + CAST = 318, /* CAST */ + CATALOG_P = 319, /* CATALOG_P */ + CHAIN = 320, /* CHAIN */ + CHAR_P = 321, /* CHAR_P */ + CHARACTER = 322, /* CHARACTER */ + CHARACTERISTICS = 323, /* CHARACTERISTICS */ + CHECK_P = 324, /* CHECK_P */ + CHECKPOINT = 325, /* CHECKPOINT */ + CLASS = 326, /* CLASS */ + CLOSE = 327, /* CLOSE */ + CLUSTER = 328, /* CLUSTER */ + COALESCE = 329, /* COALESCE */ + COLLATE = 330, /* COLLATE */ + COLLATION = 331, /* COLLATION */ + COLUMN = 332, /* COLUMN */ + COLUMNS = 333, /* COLUMNS */ + COMMENT = 334, /* COMMENT */ + COMMENTS = 335, /* COMMENTS */ + COMMIT = 336, /* COMMIT */ + COMMITTED = 337, /* COMMITTED */ + COMPRESSION = 338, /* COMPRESSION */ + CONCURRENTLY = 339, /* CONCURRENTLY */ + CONFIGURATION = 340, /* CONFIGURATION */ + CONFLICT = 341, /* CONFLICT */ + CONNECTION = 342, /* CONNECTION */ + CONSTRAINT = 343, /* CONSTRAINT */ + CONSTRAINTS = 344, /* CONSTRAINTS */ + CONTENT_P = 345, /* CONTENT_P */ + CONTINUE_P = 346, /* CONTINUE_P */ + CONVERSION_P = 347, /* CONVERSION_P */ + COPY = 348, /* COPY */ + COST = 349, /* COST */ + CREATE_P = 350, /* CREATE_P */ + CROSS = 351, /* CROSS */ + CSV = 352, /* CSV */ + CUBE = 353, /* CUBE */ + CURRENT_P = 354, /* CURRENT_P */ + CURRENT_CATALOG = 355, /* CURRENT_CATALOG */ + CURRENT_DATE = 356, /* CURRENT_DATE */ + CURRENT_ROLE = 357, /* CURRENT_ROLE */ + CURRENT_SCHEMA = 358, /* CURRENT_SCHEMA */ + CURRENT_TIME = 359, /* CURRENT_TIME */ + CURRENT_TIMESTAMP = 360, /* CURRENT_TIMESTAMP */ + CURRENT_USER = 361, /* CURRENT_USER */ + CURSOR = 362, /* CURSOR */ + CYCLE = 363, /* CYCLE */ + DATA_P = 364, /* DATA_P */ + DATABASE = 365, /* DATABASE */ + DAY_P = 366, /* DAY_P */ + DAYS_P = 367, /* DAYS_P */ + DEALLOCATE = 368, /* DEALLOCATE */ + DEC = 369, /* DEC */ + DECIMAL_P = 370, /* DECIMAL_P */ + DECLARE = 371, /* DECLARE */ + DEFAULT = 372, /* DEFAULT */ + DEFAULTS = 373, /* DEFAULTS */ + DEFERRABLE = 374, /* DEFERRABLE */ + DEFERRED = 375, /* DEFERRED */ + DEFINER = 376, /* DEFINER */ + DELETE_P = 377, /* DELETE_P */ + DELIMITER = 378, /* DELIMITER */ + DELIMITERS = 379, /* DELIMITERS */ + DEPENDS = 380, /* DEPENDS */ + DESC_P = 381, /* DESC_P */ + DESCRIBE = 382, /* DESCRIBE */ + DETACH = 383, /* DETACH */ + DICTIONARY = 384, /* DICTIONARY */ + DISABLE_P = 385, /* DISABLE_P */ + DISCARD = 386, /* DISCARD */ + DISTINCT = 387, /* DISTINCT */ + DO = 388, /* DO */ + DOCUMENT_P = 389, /* DOCUMENT_P */ + DOMAIN_P = 390, /* DOMAIN_P */ + DOUBLE_P = 391, /* DOUBLE_P */ + DROP = 392, /* DROP */ + EACH = 393, /* EACH */ + ELSE = 394, /* ELSE */ + ENABLE_P = 395, /* ENABLE_P */ + ENCODING = 396, /* ENCODING */ + ENCRYPTED = 397, /* ENCRYPTED */ + END_P = 398, /* END_P */ + ENUM_P = 399, /* ENUM_P */ + ESCAPE = 400, /* ESCAPE */ + EVENT = 401, /* EVENT */ + EXCEPT = 402, /* EXCEPT */ + EXCLUDE = 403, /* EXCLUDE */ + EXCLUDING = 404, /* EXCLUDING */ + EXCLUSIVE = 405, /* EXCLUSIVE */ + EXECUTE = 406, /* EXECUTE */ + EXISTS = 407, /* EXISTS */ + EXPLAIN = 408, /* EXPLAIN */ + EXPORT_P = 409, /* EXPORT_P */ + EXPORT_STATE = 410, /* EXPORT_STATE */ + EXTENSION = 411, /* EXTENSION */ + EXTERNAL = 412, /* EXTERNAL */ + EXTRACT = 413, /* EXTRACT */ + FALSE_P = 414, /* FALSE_P */ + FAMILY = 415, /* FAMILY */ + FETCH = 416, /* FETCH */ + FILTER = 417, /* FILTER */ + FIRST_P = 418, /* FIRST_P */ + FLOAT_P = 419, /* FLOAT_P */ + FOLLOWING = 420, /* FOLLOWING */ + FOR = 421, /* FOR */ + FORCE = 422, /* FORCE */ + FOREIGN = 423, /* FOREIGN */ + FORWARD = 424, /* FORWARD */ + FREEZE = 425, /* FREEZE */ + FROM = 426, /* FROM */ + FULL = 427, /* FULL */ + FUNCTION = 428, /* FUNCTION */ + FUNCTIONS = 429, /* FUNCTIONS */ + GENERATED = 430, /* GENERATED */ + GLOB = 431, /* GLOB */ + GLOBAL = 432, /* GLOBAL */ + GRANT = 433, /* GRANT */ + GRANTED = 434, /* GRANTED */ + GROUP_P = 435, /* GROUP_P */ + GROUPING = 436, /* GROUPING */ + GROUPING_ID = 437, /* GROUPING_ID */ + HANDLER = 438, /* HANDLER */ + HAVING = 439, /* HAVING */ + HEADER_P = 440, /* HEADER_P */ + HOLD = 441, /* HOLD */ + HOUR_P = 442, /* HOUR_P */ + HOURS_P = 443, /* HOURS_P */ + IDENTITY_P = 444, /* IDENTITY_P */ + IF_P = 445, /* IF_P */ + IGNORE_P = 446, /* IGNORE_P */ + ILIKE = 447, /* ILIKE */ + IMMEDIATE = 448, /* IMMEDIATE */ + IMMUTABLE = 449, /* IMMUTABLE */ + IMPLICIT_P = 450, /* IMPLICIT_P */ + IMPORT_P = 451, /* IMPORT_P */ + IN_P = 452, /* IN_P */ + INCLUDING = 453, /* INCLUDING */ + INCREMENT = 454, /* INCREMENT */ + INDEX = 455, /* INDEX */ + INDEXES = 456, /* INDEXES */ + INHERIT = 457, /* INHERIT */ + INHERITS = 458, /* INHERITS */ + INITIALLY = 459, /* INITIALLY */ + INLINE_P = 460, /* INLINE_P */ + INNER_P = 461, /* INNER_P */ + INOUT = 462, /* INOUT */ + INPUT_P = 463, /* INPUT_P */ + INSENSITIVE = 464, /* INSENSITIVE */ + INSERT = 465, /* INSERT */ + INSTALL = 466, /* INSTALL */ + INSTEAD = 467, /* INSTEAD */ + INT_P = 468, /* INT_P */ + INTEGER = 469, /* INTEGER */ + INTERSECT = 470, /* INTERSECT */ + INTERVAL = 471, /* INTERVAL */ + INTO = 472, /* INTO */ + INVOKER = 473, /* INVOKER */ + IS = 474, /* IS */ + ISNULL = 475, /* ISNULL */ + ISOLATION = 476, /* ISOLATION */ + JOIN = 477, /* JOIN */ + JSON = 478, /* JSON */ + KEY = 479, /* KEY */ + LABEL = 480, /* LABEL */ + LANGUAGE = 481, /* LANGUAGE */ + LARGE_P = 482, /* LARGE_P */ + LAST_P = 483, /* LAST_P */ + LATERAL_P = 484, /* LATERAL_P */ + LEADING = 485, /* LEADING */ + LEAKPROOF = 486, /* LEAKPROOF */ + LEFT = 487, /* LEFT */ + LEVEL = 488, /* LEVEL */ + LIKE = 489, /* LIKE */ + LIMIT = 490, /* LIMIT */ + LISTEN = 491, /* LISTEN */ + LOAD = 492, /* LOAD */ + LOCAL = 493, /* LOCAL */ + LOCALTIME = 494, /* LOCALTIME */ + LOCALTIMESTAMP = 495, /* LOCALTIMESTAMP */ + LOCATION = 496, /* LOCATION */ + LOCK_P = 497, /* LOCK_P */ + LOCKED = 498, /* LOCKED */ + LOGGED = 499, /* LOGGED */ + MACRO = 500, /* MACRO */ + MAP = 501, /* MAP */ + MAPPING = 502, /* MAPPING */ + MATCH = 503, /* MATCH */ + MATERIALIZED = 504, /* MATERIALIZED */ + MAXVALUE = 505, /* MAXVALUE */ + METHOD = 506, /* METHOD */ + MICROSECOND_P = 507, /* MICROSECOND_P */ + MICROSECONDS_P = 508, /* MICROSECONDS_P */ + MILLISECOND_P = 509, /* MILLISECOND_P */ + MILLISECONDS_P = 510, /* MILLISECONDS_P */ + MINUTE_P = 511, /* MINUTE_P */ + MINUTES_P = 512, /* MINUTES_P */ + MINVALUE = 513, /* MINVALUE */ + MODE = 514, /* MODE */ + MONTH_P = 515, /* MONTH_P */ + MONTHS_P = 516, /* MONTHS_P */ + MOVE = 517, /* MOVE */ + NAME_P = 518, /* NAME_P */ + NAMES = 519, /* NAMES */ + NATIONAL = 520, /* NATIONAL */ + NATURAL = 521, /* NATURAL */ + NCHAR = 522, /* NCHAR */ + NEW = 523, /* NEW */ + NEXT = 524, /* NEXT */ + NO = 525, /* NO */ + NONE = 526, /* NONE */ + NOT = 527, /* NOT */ + NOTHING = 528, /* NOTHING */ + NOTIFY = 529, /* NOTIFY */ + NOTNULL = 530, /* NOTNULL */ + NOWAIT = 531, /* NOWAIT */ + NULL_P = 532, /* NULL_P */ + NULLIF = 533, /* NULLIF */ + NULLS_P = 534, /* NULLS_P */ + NUMERIC = 535, /* NUMERIC */ + OBJECT_P = 536, /* OBJECT_P */ + OF = 537, /* OF */ + OFF = 538, /* OFF */ + OFFSET = 539, /* OFFSET */ + OIDS = 540, /* OIDS */ + OLD = 541, /* OLD */ + ON = 542, /* ON */ + ONLY = 543, /* ONLY */ + OPERATOR = 544, /* OPERATOR */ + OPTION = 545, /* OPTION */ + OPTIONS = 546, /* OPTIONS */ + OR = 547, /* OR */ + ORDER = 548, /* ORDER */ + ORDINALITY = 549, /* ORDINALITY */ + OUT_P = 550, /* OUT_P */ + OUTER_P = 551, /* OUTER_P */ + OVER = 552, /* OVER */ + OVERLAPS = 553, /* OVERLAPS */ + OVERLAY = 554, /* OVERLAY */ + OVERRIDING = 555, /* OVERRIDING */ + OWNED = 556, /* OWNED */ + OWNER = 557, /* OWNER */ + PARALLEL = 558, /* PARALLEL */ + PARSER = 559, /* PARSER */ + PARTIAL = 560, /* PARTIAL */ + PARTITION = 561, /* PARTITION */ + PASSING = 562, /* PASSING */ + PASSWORD = 563, /* PASSWORD */ + PERCENT = 564, /* PERCENT */ + PLACING = 565, /* PLACING */ + PLANS = 566, /* PLANS */ + POLICY = 567, /* POLICY */ + POSITION = 568, /* POSITION */ + PRAGMA_P = 569, /* PRAGMA_P */ + PRECEDING = 570, /* PRECEDING */ + PRECISION = 571, /* PRECISION */ + PREPARE = 572, /* PREPARE */ + PREPARED = 573, /* PREPARED */ + PRESERVE = 574, /* PRESERVE */ + PRIMARY = 575, /* PRIMARY */ + PRIOR = 576, /* PRIOR */ + PRIVILEGES = 577, /* PRIVILEGES */ + PROCEDURAL = 578, /* PROCEDURAL */ + PROCEDURE = 579, /* PROCEDURE */ + PROGRAM = 580, /* PROGRAM */ + PUBLICATION = 581, /* PUBLICATION */ + QUALIFY = 582, /* QUALIFY */ + QUOTE = 583, /* QUOTE */ + RANGE = 584, /* RANGE */ + READ_P = 585, /* READ_P */ + REAL = 586, /* REAL */ + REASSIGN = 587, /* REASSIGN */ + RECHECK = 588, /* RECHECK */ + RECURSIVE = 589, /* RECURSIVE */ + REF = 590, /* REF */ + REFERENCES = 591, /* REFERENCES */ + REFERENCING = 592, /* REFERENCING */ + REFRESH = 593, /* REFRESH */ + REINDEX = 594, /* REINDEX */ + RELATIVE_P = 595, /* RELATIVE_P */ + RELEASE = 596, /* RELEASE */ + RENAME = 597, /* RENAME */ + REPEATABLE = 598, /* REPEATABLE */ + REPLACE = 599, /* REPLACE */ + REPLICA = 600, /* REPLICA */ + RESET = 601, /* RESET */ + RESPECT_P = 602, /* RESPECT_P */ + RESTART = 603, /* RESTART */ + RESTRICT = 604, /* RESTRICT */ + RETURNING = 605, /* RETURNING */ + RETURNS = 606, /* RETURNS */ + REVOKE = 607, /* REVOKE */ + RIGHT = 608, /* RIGHT */ + ROLE = 609, /* ROLE */ + ROLLBACK = 610, /* ROLLBACK */ + ROLLUP = 611, /* ROLLUP */ + ROW = 612, /* ROW */ + ROWS = 613, /* ROWS */ + RULE = 614, /* RULE */ + SAMPLE = 615, /* SAMPLE */ + SAVEPOINT = 616, /* SAVEPOINT */ + SCHEMA = 617, /* SCHEMA */ + SCHEMAS = 618, /* SCHEMAS */ + SCROLL = 619, /* SCROLL */ + SEARCH = 620, /* SEARCH */ + SECOND_P = 621, /* SECOND_P */ + SECONDS_P = 622, /* SECONDS_P */ + SECURITY = 623, /* SECURITY */ + SELECT = 624, /* SELECT */ + SEQUENCE = 625, /* SEQUENCE */ + SEQUENCES = 626, /* SEQUENCES */ + SERIALIZABLE = 627, /* SERIALIZABLE */ + SERVER = 628, /* SERVER */ + SESSION = 629, /* SESSION */ + SESSION_USER = 630, /* SESSION_USER */ + SET = 631, /* SET */ + SETOF = 632, /* SETOF */ + SETS = 633, /* SETS */ + SHARE = 634, /* SHARE */ + SHOW = 635, /* SHOW */ + SIMILAR = 636, /* SIMILAR */ + SIMPLE = 637, /* SIMPLE */ + SKIP = 638, /* SKIP */ + SMALLINT = 639, /* SMALLINT */ + SNAPSHOT = 640, /* SNAPSHOT */ + SOME = 641, /* SOME */ + SQL_P = 642, /* SQL_P */ + STABLE = 643, /* STABLE */ + STANDALONE_P = 644, /* STANDALONE_P */ + START = 645, /* START */ + STATEMENT = 646, /* STATEMENT */ + STATISTICS = 647, /* STATISTICS */ + STDIN = 648, /* STDIN */ + STDOUT = 649, /* STDOUT */ + STORAGE = 650, /* STORAGE */ + STORED = 651, /* STORED */ + STRICT_P = 652, /* STRICT_P */ + STRIP_P = 653, /* STRIP_P */ + STRUCT = 654, /* STRUCT */ + SUBSCRIPTION = 655, /* SUBSCRIPTION */ + SUBSTRING = 656, /* SUBSTRING */ + SUMMARIZE = 657, /* SUMMARIZE */ + SYMMETRIC = 658, /* SYMMETRIC */ + SYSID = 659, /* SYSID */ + SYSTEM_P = 660, /* SYSTEM_P */ + TABLE = 661, /* TABLE */ + TABLES = 662, /* TABLES */ + TABLESAMPLE = 663, /* TABLESAMPLE */ + TABLESPACE = 664, /* TABLESPACE */ + TEMP = 665, /* TEMP */ + TEMPLATE = 666, /* TEMPLATE */ + TEMPORARY = 667, /* TEMPORARY */ + TEXT_P = 668, /* TEXT_P */ + THEN = 669, /* THEN */ + TIME = 670, /* TIME */ + TIMESTAMP = 671, /* TIMESTAMP */ + TO = 672, /* TO */ + TRAILING = 673, /* TRAILING */ + TRANSACTION = 674, /* TRANSACTION */ + TRANSFORM = 675, /* TRANSFORM */ + TREAT = 676, /* TREAT */ + TRIGGER = 677, /* TRIGGER */ + TRIM = 678, /* TRIM */ + TRUE_P = 679, /* TRUE_P */ + TRUNCATE = 680, /* TRUNCATE */ + TRUSTED = 681, /* TRUSTED */ + TRY_CAST = 682, /* TRY_CAST */ + TYPE_P = 683, /* TYPE_P */ + TYPES_P = 684, /* TYPES_P */ + UNBOUNDED = 685, /* UNBOUNDED */ + UNCOMMITTED = 686, /* UNCOMMITTED */ + UNENCRYPTED = 687, /* UNENCRYPTED */ + UNION = 688, /* UNION */ + UNIQUE = 689, /* UNIQUE */ + UNKNOWN = 690, /* UNKNOWN */ + UNLISTEN = 691, /* UNLISTEN */ + UNLOGGED = 692, /* UNLOGGED */ + UNTIL = 693, /* UNTIL */ + UPDATE = 694, /* UPDATE */ + USER = 695, /* USER */ + USING = 696, /* USING */ + VACUUM = 697, /* VACUUM */ + VALID = 698, /* VALID */ + VALIDATE = 699, /* VALIDATE */ + VALIDATOR = 700, /* VALIDATOR */ + VALUE_P = 701, /* VALUE_P */ + VALUES = 702, /* VALUES */ + VARCHAR = 703, /* VARCHAR */ + VARIADIC = 704, /* VARIADIC */ + VARYING = 705, /* VARYING */ + VERBOSE = 706, /* VERBOSE */ + VERSION_P = 707, /* VERSION_P */ + VIEW = 708, /* VIEW */ + VIEWS = 709, /* VIEWS */ + VIRTUAL = 710, /* VIRTUAL */ + VOLATILE = 711, /* VOLATILE */ + WHEN = 712, /* WHEN */ + WHERE = 713, /* WHERE */ + WHITESPACE_P = 714, /* WHITESPACE_P */ + WINDOW = 715, /* WINDOW */ + WITH = 716, /* WITH */ + WITHIN = 717, /* WITHIN */ + WITHOUT = 718, /* WITHOUT */ + WORK = 719, /* WORK */ + WRAPPER = 720, /* WRAPPER */ + WRITE_P = 721, /* WRITE_P */ + XML_P = 722, /* XML_P */ + XMLATTRIBUTES = 723, /* XMLATTRIBUTES */ + XMLCONCAT = 724, /* XMLCONCAT */ + XMLELEMENT = 725, /* XMLELEMENT */ + XMLEXISTS = 726, /* XMLEXISTS */ + XMLFOREST = 727, /* XMLFOREST */ + XMLNAMESPACES = 728, /* XMLNAMESPACES */ + XMLPARSE = 729, /* XMLPARSE */ + XMLPI = 730, /* XMLPI */ + XMLROOT = 731, /* XMLROOT */ + XMLSERIALIZE = 732, /* XMLSERIALIZE */ + XMLTABLE = 733, /* XMLTABLE */ + YEAR_P = 734, /* YEAR_P */ + YEARS_P = 735, /* YEARS_P */ + YES_P = 736, /* YES_P */ + ZONE = 737, /* ZONE */ + NOT_LA = 738, /* NOT_LA */ + NULLS_LA = 739, /* NULLS_LA */ + WITH_LA = 740, /* WITH_LA */ + POSTFIXOP = 741, /* POSTFIXOP */ + UMINUS = 742 /* UMINUS */ }; + typedef enum yytokentype yytoken_kind_t; #endif /* Value type. */ @@ -586,7 +592,7 @@ union YYSTYPE PGSubLinkType subquerytype; PGViewCheckOption viewcheckoption; -#line 590 "third_party/libpg_query/grammar/grammar_out.hpp" +#line 596 "third_party/libpg_query/grammar/grammar_out.hpp" }; typedef union YYSTYPE YYSTYPE; @@ -610,6 +616,8 @@ struct YYLTYPE + int base_yyparse (core_yyscan_t yyscanner); + #endif /* !YY_BASE_YY_THIRD_PARTY_LIBPG_QUERY_GRAMMAR_GRAMMAR_OUT_HPP_INCLUDED */ diff --git a/third_party/libpg_query/src_backend_parser_gram.cpp b/third_party/libpg_query/src_backend_parser_gram.cpp index cd9572a4e..e3a9723ed 100644 --- a/third_party/libpg_query/src_backend_parser_gram.cpp +++ b/third_party/libpg_query/src_backend_parser_gram.cpp @@ -1,8 +1,8 @@ -/* A Bison parser, made by GNU Bison 3.5.1. */ +/* A Bison parser, made by GNU Bison 3.8.1. */ /* Bison implementation for Yacc-like parsers in C - Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2020 Free Software Foundation, + Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2021 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify @@ -16,7 +16,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program. If not, see . */ + along with this program. If not, see . */ /* As a special exception, you may create a larger work that contains part or all of the Bison parser skeleton and distribute that work @@ -34,6 +34,10 @@ /* C LALR(1) parser skeleton written by Richard Stallman, by simplifying the original so-called "semantic" parser. */ +/* DO NOT RELY ON FEATURES THAT ARE NOT DOCUMENTED in the manual, + especially those whose name start with YY_ or yy_. They are + private implementation details that can be changed or removed. */ + /* All symbols defined below should begin with yy or YY, to avoid infringing on user name space. This should be done even for local variables, as they might otherwise be expanded by user macros. @@ -41,14 +45,11 @@ define necessary library symbols; they are noted "INFRINGES ON USER NAME SPACE" below. */ -/* Undocumented macros, especially those whose name start with YY_, - are private implementation details. Do not rely on them. */ - -/* Identify Bison output. */ -#define YYBISON 1 +/* Identify Bison output, and Bison version. */ +#define YYBISON 30801 -/* Bison version. */ -#define YYBISON_VERSION "3.5.1" +/* Bison version string. */ +#define YYBISON_VERSION "3.8.1" /* Skeleton name. */ #define YYSKELETON_NAME "yacc.c" @@ -237,7 +238,7 @@ static PGNode *makeRecursiveViewSelect(char *relname, PGList *aliases, PGNode *q static PGNode *makeLimitPercent(PGNode *limit_percent); -#line 241 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 242 "third_party/libpg_query/grammar/grammar_out.cpp" # ifndef YY_CAST # ifdef __cplusplus @@ -260,595 +261,918 @@ static PGNode *makeLimitPercent(PGNode *limit_percent); # endif # endif -/* Enabling verbose error messages. */ -#ifdef YYERROR_VERBOSE -# undef YYERROR_VERBOSE -# define YYERROR_VERBOSE 1 -#else -# define YYERROR_VERBOSE 0 -#endif - -/* Use api.header.include to #include this header - instead of duplicating it here. */ -#ifndef YY_BASE_YY_THIRD_PARTY_LIBPG_QUERY_GRAMMAR_GRAMMAR_OUT_HPP_INCLUDED -# define YY_BASE_YY_THIRD_PARTY_LIBPG_QUERY_GRAMMAR_GRAMMAR_OUT_HPP_INCLUDED -/* Debug traces. */ -#ifndef YYDEBUG -# define YYDEBUG 0 -#endif -#if YYDEBUG -extern int base_yydebug; -#endif - -/* Token type. */ -#ifndef YYTOKENTYPE -# define YYTOKENTYPE - enum yytokentype - { - IDENT = 258, - FCONST = 259, - SCONST = 260, - BCONST = 261, - XCONST = 262, - Op = 263, - ICONST = 264, - PARAM = 265, - TYPECAST = 266, - DOT_DOT = 267, - COLON_EQUALS = 268, - EQUALS_GREATER = 269, - POWER_OF = 270, - LAMBDA_ARROW = 271, - DOUBLE_ARROW = 272, - LESS_EQUALS = 273, - GREATER_EQUALS = 274, - NOT_EQUALS = 275, - ABORT_P = 276, - ABSOLUTE_P = 277, - ACCESS = 278, - ACTION = 279, - ADD_P = 280, - ADMIN = 281, - AFTER = 282, - AGGREGATE = 283, - ALL = 284, - ALSO = 285, - ALTER = 286, - ALWAYS = 287, - ANALYSE = 288, - ANALYZE = 289, - AND = 290, - ANY = 291, - ARRAY = 292, - AS = 293, - ASC_P = 294, - ASSERTION = 295, - ASSIGNMENT = 296, - ASYMMETRIC = 297, - AT = 298, - ATTACH = 299, - ATTRIBUTE = 300, - AUTHORIZATION = 301, - BACKWARD = 302, - BEFORE = 303, - BEGIN_P = 304, - BETWEEN = 305, - BIGINT = 306, - BINARY = 307, - BIT = 308, - BOOLEAN_P = 309, - BOTH = 310, - BY = 311, - CACHE = 312, - CALL_P = 313, - CALLED = 314, - CASCADE = 315, - CASCADED = 316, - CASE = 317, - CAST = 318, - CATALOG_P = 319, - CHAIN = 320, - CHAR_P = 321, - CHARACTER = 322, - CHARACTERISTICS = 323, - CHECK_P = 324, - CHECKPOINT = 325, - CLASS = 326, - CLOSE = 327, - CLUSTER = 328, - COALESCE = 329, - COLLATE = 330, - COLLATION = 331, - COLUMN = 332, - COLUMNS = 333, - COMMENT = 334, - COMMENTS = 335, - COMMIT = 336, - COMMITTED = 337, - COMPRESSION = 338, - CONCURRENTLY = 339, - CONFIGURATION = 340, - CONFLICT = 341, - CONNECTION = 342, - CONSTRAINT = 343, - CONSTRAINTS = 344, - CONTENT_P = 345, - CONTINUE_P = 346, - CONVERSION_P = 347, - COPY = 348, - COST = 349, - CREATE_P = 350, - CROSS = 351, - CSV = 352, - CUBE = 353, - CURRENT_P = 354, - CURRENT_CATALOG = 355, - CURRENT_DATE = 356, - CURRENT_ROLE = 357, - CURRENT_SCHEMA = 358, - CURRENT_TIME = 359, - CURRENT_TIMESTAMP = 360, - CURRENT_USER = 361, - CURSOR = 362, - CYCLE = 363, - DATA_P = 364, - DATABASE = 365, - DAY_P = 366, - DAYS_P = 367, - DEALLOCATE = 368, - DEC = 369, - DECIMAL_P = 370, - DECLARE = 371, - DEFAULT = 372, - DEFAULTS = 373, - DEFERRABLE = 374, - DEFERRED = 375, - DEFINER = 376, - DELETE_P = 377, - DELIMITER = 378, - DELIMITERS = 379, - DEPENDS = 380, - DESC_P = 381, - DESCRIBE = 382, - DETACH = 383, - DICTIONARY = 384, - DISABLE_P = 385, - DISCARD = 386, - DISTINCT = 387, - DO = 388, - DOCUMENT_P = 389, - DOMAIN_P = 390, - DOUBLE_P = 391, - DROP = 392, - EACH = 393, - ELSE = 394, - ENABLE_P = 395, - ENCODING = 396, - ENCRYPTED = 397, - END_P = 398, - ENUM_P = 399, - ESCAPE = 400, - EVENT = 401, - EXCEPT = 402, - EXCLUDE = 403, - EXCLUDING = 404, - EXCLUSIVE = 405, - EXECUTE = 406, - EXISTS = 407, - EXPLAIN = 408, - EXPORT_P = 409, - EXPORT_STATE = 410, - EXTENSION = 411, - EXTERNAL = 412, - EXTRACT = 413, - FALSE_P = 414, - FAMILY = 415, - FETCH = 416, - FILTER = 417, - FIRST_P = 418, - FLOAT_P = 419, - FOLLOWING = 420, - FOR = 421, - FORCE = 422, - FOREIGN = 423, - FORWARD = 424, - FREEZE = 425, - FROM = 426, - FULL = 427, - FUNCTION = 428, - FUNCTIONS = 429, - GENERATED = 430, - GLOB = 431, - GLOBAL = 432, - GRANT = 433, - GRANTED = 434, - GROUP_P = 435, - GROUPING = 436, - GROUPING_ID = 437, - HANDLER = 438, - HAVING = 439, - HEADER_P = 440, - HOLD = 441, - HOUR_P = 442, - HOURS_P = 443, - IDENTITY_P = 444, - IF_P = 445, - IGNORE_P = 446, - ILIKE = 447, - IMMEDIATE = 448, - IMMUTABLE = 449, - IMPLICIT_P = 450, - IMPORT_P = 451, - IN_P = 452, - INCLUDING = 453, - INCREMENT = 454, - INDEX = 455, - INDEXES = 456, - INHERIT = 457, - INHERITS = 458, - INITIALLY = 459, - INLINE_P = 460, - INNER_P = 461, - INOUT = 462, - INPUT_P = 463, - INSENSITIVE = 464, - INSERT = 465, - INSTALL = 466, - INSTEAD = 467, - INT_P = 468, - INTEGER = 469, - INTERSECT = 470, - INTERVAL = 471, - INTO = 472, - INVOKER = 473, - IS = 474, - ISNULL = 475, - ISOLATION = 476, - JOIN = 477, - JSON = 478, - KEY = 479, - LABEL = 480, - LANGUAGE = 481, - LARGE_P = 482, - LAST_P = 483, - LATERAL_P = 484, - LEADING = 485, - LEAKPROOF = 486, - LEFT = 487, - LEVEL = 488, - LIKE = 489, - LIMIT = 490, - LISTEN = 491, - LOAD = 492, - LOCAL = 493, - LOCALTIME = 494, - LOCALTIMESTAMP = 495, - LOCATION = 496, - LOCK_P = 497, - LOCKED = 498, - LOGGED = 499, - MACRO = 500, - MAP = 501, - MAPPING = 502, - MATCH = 503, - MATERIALIZED = 504, - MAXVALUE = 505, - METHOD = 506, - MICROSECOND_P = 507, - MICROSECONDS_P = 508, - MILLISECOND_P = 509, - MILLISECONDS_P = 510, - MINUTE_P = 511, - MINUTES_P = 512, - MINVALUE = 513, - MODE = 514, - MONTH_P = 515, - MONTHS_P = 516, - MOVE = 517, - NAME_P = 518, - NAMES = 519, - NATIONAL = 520, - NATURAL = 521, - NCHAR = 522, - NEW = 523, - NEXT = 524, - NO = 525, - NONE = 526, - NOT = 527, - NOTHING = 528, - NOTIFY = 529, - NOTNULL = 530, - NOWAIT = 531, - NULL_P = 532, - NULLIF = 533, - NULLS_P = 534, - NUMERIC = 535, - OBJECT_P = 536, - OF = 537, - OFF = 538, - OFFSET = 539, - OIDS = 540, - OLD = 541, - ON = 542, - ONLY = 543, - OPERATOR = 544, - OPTION = 545, - OPTIONS = 546, - OR = 547, - ORDER = 548, - ORDINALITY = 549, - OUT_P = 550, - OUTER_P = 551, - OVER = 552, - OVERLAPS = 553, - OVERLAY = 554, - OVERRIDING = 555, - OWNED = 556, - OWNER = 557, - PARALLEL = 558, - PARSER = 559, - PARTIAL = 560, - PARTITION = 561, - PASSING = 562, - PASSWORD = 563, - PERCENT = 564, - PLACING = 565, - PLANS = 566, - POLICY = 567, - POSITION = 568, - PRAGMA_P = 569, - PRECEDING = 570, - PRECISION = 571, - PREPARE = 572, - PREPARED = 573, - PRESERVE = 574, - PRIMARY = 575, - PRIOR = 576, - PRIVILEGES = 577, - PROCEDURAL = 578, - PROCEDURE = 579, - PROGRAM = 580, - PUBLICATION = 581, - QUALIFY = 582, - QUOTE = 583, - RANGE = 584, - READ_P = 585, - REAL = 586, - REASSIGN = 587, - RECHECK = 588, - RECURSIVE = 589, - REF = 590, - REFERENCES = 591, - REFERENCING = 592, - REFRESH = 593, - REINDEX = 594, - RELATIVE_P = 595, - RELEASE = 596, - RENAME = 597, - REPEATABLE = 598, - REPLACE = 599, - REPLICA = 600, - RESET = 601, - RESPECT_P = 602, - RESTART = 603, - RESTRICT = 604, - RETURNING = 605, - RETURNS = 606, - REVOKE = 607, - RIGHT = 608, - ROLE = 609, - ROLLBACK = 610, - ROLLUP = 611, - ROW = 612, - ROWS = 613, - RULE = 614, - SAMPLE = 615, - SAVEPOINT = 616, - SCHEMA = 617, - SCHEMAS = 618, - SCROLL = 619, - SEARCH = 620, - SECOND_P = 621, - SECONDS_P = 622, - SECURITY = 623, - SELECT = 624, - SEQUENCE = 625, - SEQUENCES = 626, - SERIALIZABLE = 627, - SERVER = 628, - SESSION = 629, - SESSION_USER = 630, - SET = 631, - SETOF = 632, - SETS = 633, - SHARE = 634, - SHOW = 635, - SIMILAR = 636, - SIMPLE = 637, - SKIP = 638, - SMALLINT = 639, - SNAPSHOT = 640, - SOME = 641, - SQL_P = 642, - STABLE = 643, - STANDALONE_P = 644, - START = 645, - STATEMENT = 646, - STATISTICS = 647, - STDIN = 648, - STDOUT = 649, - STORAGE = 650, - STORED = 651, - STRICT_P = 652, - STRIP_P = 653, - STRUCT = 654, - SUBSCRIPTION = 655, - SUBSTRING = 656, - SUMMARIZE = 657, - SYMMETRIC = 658, - SYSID = 659, - SYSTEM_P = 660, - TABLE = 661, - TABLES = 662, - TABLESAMPLE = 663, - TABLESPACE = 664, - TEMP = 665, - TEMPLATE = 666, - TEMPORARY = 667, - TEXT_P = 668, - THEN = 669, - TIME = 670, - TIMESTAMP = 671, - TO = 672, - TRAILING = 673, - TRANSACTION = 674, - TRANSFORM = 675, - TREAT = 676, - TRIGGER = 677, - TRIM = 678, - TRUE_P = 679, - TRUNCATE = 680, - TRUSTED = 681, - TRY_CAST = 682, - TYPE_P = 683, - TYPES_P = 684, - UNBOUNDED = 685, - UNCOMMITTED = 686, - UNENCRYPTED = 687, - UNION = 688, - UNIQUE = 689, - UNKNOWN = 690, - UNLISTEN = 691, - UNLOGGED = 692, - UNTIL = 693, - UPDATE = 694, - USER = 695, - USING = 696, - VACUUM = 697, - VALID = 698, - VALIDATE = 699, - VALIDATOR = 700, - VALUE_P = 701, - VALUES = 702, - VARCHAR = 703, - VARIADIC = 704, - VARYING = 705, - VERBOSE = 706, - VERSION_P = 707, - VIEW = 708, - VIEWS = 709, - VIRTUAL = 710, - VOLATILE = 711, - WHEN = 712, - WHERE = 713, - WHITESPACE_P = 714, - WINDOW = 715, - WITH = 716, - WITHIN = 717, - WITHOUT = 718, - WORK = 719, - WRAPPER = 720, - WRITE_P = 721, - XML_P = 722, - XMLATTRIBUTES = 723, - XMLCONCAT = 724, - XMLELEMENT = 725, - XMLEXISTS = 726, - XMLFOREST = 727, - XMLNAMESPACES = 728, - XMLPARSE = 729, - XMLPI = 730, - XMLROOT = 731, - XMLSERIALIZE = 732, - XMLTABLE = 733, - YEAR_P = 734, - YEARS_P = 735, - YES_P = 736, - ZONE = 737, - NOT_LA = 738, - NULLS_LA = 739, - WITH_LA = 740, - POSTFIXOP = 741, - UMINUS = 742 - }; -#endif - -/* Value type. */ -#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED -union YYSTYPE -{ -#line 14 "third_party/libpg_query/grammar/grammar.y" - - core_YYSTYPE core_yystype; - /* these fields must match core_YYSTYPE: */ - int ival; - char *str; - const char *keyword; - const char *conststr; - - char chr; - bool boolean; - PGJoinType jtype; - PGDropBehavior dbehavior; - PGOnCommitAction oncommit; - PGOnCreateConflict oncreateconflict; - PGList *list; - PGNode *node; - PGValue *value; - PGObjectType objtype; - PGTypeName *typnam; - PGObjectWithArgs *objwithargs; - PGDefElem *defelt; - PGSortBy *sortby; - PGWindowDef *windef; - PGJoinExpr *jexpr; - PGIndexElem *ielem; - PGAlias *alias; - PGRangeVar *range; - PGIntoClause *into; - PGWithClause *with; - PGInferClause *infer; - PGOnConflictClause *onconflict; - PGAIndices *aind; - PGResTarget *target; - PGInsertStmt *istmt; - PGVariableSetStmt *vsetstmt; - PGOverridingKind override; - PGSortByDir sortorder; - PGSortByNulls nullorder; - PGConstrType constr; - PGLockClauseStrength lockstrength; - PGLockWaitPolicy lockwaitpolicy; - PGSubLinkType subquerytype; - PGViewCheckOption viewcheckoption; - -#line 826 "third_party/libpg_query/grammar/grammar_out.cpp" - -}; -typedef union YYSTYPE YYSTYPE; -# define YYSTYPE_IS_TRIVIAL 1 -# define YYSTYPE_IS_DECLARED 1 -#endif - -/* Location type. */ -#if ! defined YYLTYPE && ! defined YYLTYPE_IS_DECLARED -typedef struct YYLTYPE YYLTYPE; -struct YYLTYPE +#include "include/parser/gram.hpp" +/* Symbol kind. */ +enum yysymbol_kind_t { - int first_line; - int first_column; - int last_line; - int last_column; + YYSYMBOL_YYEMPTY = -2, + YYSYMBOL_YYEOF = 0, /* "end of file" */ + YYSYMBOL_YYerror = 1, /* error */ + YYSYMBOL_YYUNDEF = 2, /* "invalid token" */ + YYSYMBOL_IDENT = 3, /* IDENT */ + YYSYMBOL_FCONST = 4, /* FCONST */ + YYSYMBOL_SCONST = 5, /* SCONST */ + YYSYMBOL_BCONST = 6, /* BCONST */ + YYSYMBOL_XCONST = 7, /* XCONST */ + YYSYMBOL_Op = 8, /* Op */ + YYSYMBOL_ICONST = 9, /* ICONST */ + YYSYMBOL_PARAM = 10, /* PARAM */ + YYSYMBOL_TYPECAST = 11, /* TYPECAST */ + YYSYMBOL_DOT_DOT = 12, /* DOT_DOT */ + YYSYMBOL_COLON_EQUALS = 13, /* COLON_EQUALS */ + YYSYMBOL_EQUALS_GREATER = 14, /* EQUALS_GREATER */ + YYSYMBOL_POWER_OF = 15, /* POWER_OF */ + YYSYMBOL_LAMBDA_ARROW = 16, /* LAMBDA_ARROW */ + YYSYMBOL_DOUBLE_ARROW = 17, /* DOUBLE_ARROW */ + YYSYMBOL_LESS_EQUALS = 18, /* LESS_EQUALS */ + YYSYMBOL_GREATER_EQUALS = 19, /* GREATER_EQUALS */ + YYSYMBOL_NOT_EQUALS = 20, /* NOT_EQUALS */ + YYSYMBOL_ABORT_P = 21, /* ABORT_P */ + YYSYMBOL_ABSOLUTE_P = 22, /* ABSOLUTE_P */ + YYSYMBOL_ACCESS = 23, /* ACCESS */ + YYSYMBOL_ACTION = 24, /* ACTION */ + YYSYMBOL_ADD_P = 25, /* ADD_P */ + YYSYMBOL_ADMIN = 26, /* ADMIN */ + YYSYMBOL_AFTER = 27, /* AFTER */ + YYSYMBOL_AGGREGATE = 28, /* AGGREGATE */ + YYSYMBOL_ALL = 29, /* ALL */ + YYSYMBOL_ALSO = 30, /* ALSO */ + YYSYMBOL_ALTER = 31, /* ALTER */ + YYSYMBOL_ALWAYS = 32, /* ALWAYS */ + YYSYMBOL_ANALYSE = 33, /* ANALYSE */ + YYSYMBOL_ANALYZE = 34, /* ANALYZE */ + YYSYMBOL_AND = 35, /* AND */ + YYSYMBOL_ANY = 36, /* ANY */ + YYSYMBOL_ARRAY = 37, /* ARRAY */ + YYSYMBOL_AS = 38, /* AS */ + YYSYMBOL_ASC_P = 39, /* ASC_P */ + YYSYMBOL_ASSERTION = 40, /* ASSERTION */ + YYSYMBOL_ASSIGNMENT = 41, /* ASSIGNMENT */ + YYSYMBOL_ASYMMETRIC = 42, /* ASYMMETRIC */ + YYSYMBOL_AT = 43, /* AT */ + YYSYMBOL_ATTACH = 44, /* ATTACH */ + YYSYMBOL_ATTRIBUTE = 45, /* ATTRIBUTE */ + YYSYMBOL_AUTHORIZATION = 46, /* AUTHORIZATION */ + YYSYMBOL_BACKWARD = 47, /* BACKWARD */ + YYSYMBOL_BEFORE = 48, /* BEFORE */ + YYSYMBOL_BEGIN_P = 49, /* BEGIN_P */ + YYSYMBOL_BETWEEN = 50, /* BETWEEN */ + YYSYMBOL_BIGINT = 51, /* BIGINT */ + YYSYMBOL_BINARY = 52, /* BINARY */ + YYSYMBOL_BIT = 53, /* BIT */ + YYSYMBOL_BOOLEAN_P = 54, /* BOOLEAN_P */ + YYSYMBOL_BOTH = 55, /* BOTH */ + YYSYMBOL_BY = 56, /* BY */ + YYSYMBOL_CACHE = 57, /* CACHE */ + YYSYMBOL_CALL_P = 58, /* CALL_P */ + YYSYMBOL_CALLED = 59, /* CALLED */ + YYSYMBOL_CASCADE = 60, /* CASCADE */ + YYSYMBOL_CASCADED = 61, /* CASCADED */ + YYSYMBOL_CASE = 62, /* CASE */ + YYSYMBOL_CAST = 63, /* CAST */ + YYSYMBOL_CATALOG_P = 64, /* CATALOG_P */ + YYSYMBOL_CHAIN = 65, /* CHAIN */ + YYSYMBOL_CHAR_P = 66, /* CHAR_P */ + YYSYMBOL_CHARACTER = 67, /* CHARACTER */ + YYSYMBOL_CHARACTERISTICS = 68, /* CHARACTERISTICS */ + YYSYMBOL_CHECK_P = 69, /* CHECK_P */ + YYSYMBOL_CHECKPOINT = 70, /* CHECKPOINT */ + YYSYMBOL_CLASS = 71, /* CLASS */ + YYSYMBOL_CLOSE = 72, /* CLOSE */ + YYSYMBOL_CLUSTER = 73, /* CLUSTER */ + YYSYMBOL_COALESCE = 74, /* COALESCE */ + YYSYMBOL_COLLATE = 75, /* COLLATE */ + YYSYMBOL_COLLATION = 76, /* COLLATION */ + YYSYMBOL_COLUMN = 77, /* COLUMN */ + YYSYMBOL_COLUMNS = 78, /* COLUMNS */ + YYSYMBOL_COMMENT = 79, /* COMMENT */ + YYSYMBOL_COMMENTS = 80, /* COMMENTS */ + YYSYMBOL_COMMIT = 81, /* COMMIT */ + YYSYMBOL_COMMITTED = 82, /* COMMITTED */ + YYSYMBOL_COMPRESSION = 83, /* COMPRESSION */ + YYSYMBOL_CONCURRENTLY = 84, /* CONCURRENTLY */ + YYSYMBOL_CONFIGURATION = 85, /* CONFIGURATION */ + YYSYMBOL_CONFLICT = 86, /* CONFLICT */ + YYSYMBOL_CONNECTION = 87, /* CONNECTION */ + YYSYMBOL_CONSTRAINT = 88, /* CONSTRAINT */ + YYSYMBOL_CONSTRAINTS = 89, /* CONSTRAINTS */ + YYSYMBOL_CONTENT_P = 90, /* CONTENT_P */ + YYSYMBOL_CONTINUE_P = 91, /* CONTINUE_P */ + YYSYMBOL_CONVERSION_P = 92, /* CONVERSION_P */ + YYSYMBOL_COPY = 93, /* COPY */ + YYSYMBOL_COST = 94, /* COST */ + YYSYMBOL_CREATE_P = 95, /* CREATE_P */ + YYSYMBOL_CROSS = 96, /* CROSS */ + YYSYMBOL_CSV = 97, /* CSV */ + YYSYMBOL_CUBE = 98, /* CUBE */ + YYSYMBOL_CURRENT_P = 99, /* CURRENT_P */ + YYSYMBOL_CURRENT_CATALOG = 100, /* CURRENT_CATALOG */ + YYSYMBOL_CURRENT_DATE = 101, /* CURRENT_DATE */ + YYSYMBOL_CURRENT_ROLE = 102, /* CURRENT_ROLE */ + YYSYMBOL_CURRENT_SCHEMA = 103, /* CURRENT_SCHEMA */ + YYSYMBOL_CURRENT_TIME = 104, /* CURRENT_TIME */ + YYSYMBOL_CURRENT_TIMESTAMP = 105, /* CURRENT_TIMESTAMP */ + YYSYMBOL_CURRENT_USER = 106, /* CURRENT_USER */ + YYSYMBOL_CURSOR = 107, /* CURSOR */ + YYSYMBOL_CYCLE = 108, /* CYCLE */ + YYSYMBOL_DATA_P = 109, /* DATA_P */ + YYSYMBOL_DATABASE = 110, /* DATABASE */ + YYSYMBOL_DAY_P = 111, /* DAY_P */ + YYSYMBOL_DAYS_P = 112, /* DAYS_P */ + YYSYMBOL_DEALLOCATE = 113, /* DEALLOCATE */ + YYSYMBOL_DEC = 114, /* DEC */ + YYSYMBOL_DECIMAL_P = 115, /* DECIMAL_P */ + YYSYMBOL_DECLARE = 116, /* DECLARE */ + YYSYMBOL_DEFAULT = 117, /* DEFAULT */ + YYSYMBOL_DEFAULTS = 118, /* DEFAULTS */ + YYSYMBOL_DEFERRABLE = 119, /* DEFERRABLE */ + YYSYMBOL_DEFERRED = 120, /* DEFERRED */ + YYSYMBOL_DEFINER = 121, /* DEFINER */ + YYSYMBOL_DELETE_P = 122, /* DELETE_P */ + YYSYMBOL_DELIMITER = 123, /* DELIMITER */ + YYSYMBOL_DELIMITERS = 124, /* DELIMITERS */ + YYSYMBOL_DEPENDS = 125, /* DEPENDS */ + YYSYMBOL_DESC_P = 126, /* DESC_P */ + YYSYMBOL_DESCRIBE = 127, /* DESCRIBE */ + YYSYMBOL_DETACH = 128, /* DETACH */ + YYSYMBOL_DICTIONARY = 129, /* DICTIONARY */ + YYSYMBOL_DISABLE_P = 130, /* DISABLE_P */ + YYSYMBOL_DISCARD = 131, /* DISCARD */ + YYSYMBOL_DISTINCT = 132, /* DISTINCT */ + YYSYMBOL_DO = 133, /* DO */ + YYSYMBOL_DOCUMENT_P = 134, /* DOCUMENT_P */ + YYSYMBOL_DOMAIN_P = 135, /* DOMAIN_P */ + YYSYMBOL_DOUBLE_P = 136, /* DOUBLE_P */ + YYSYMBOL_DROP = 137, /* DROP */ + YYSYMBOL_EACH = 138, /* EACH */ + YYSYMBOL_ELSE = 139, /* ELSE */ + YYSYMBOL_ENABLE_P = 140, /* ENABLE_P */ + YYSYMBOL_ENCODING = 141, /* ENCODING */ + YYSYMBOL_ENCRYPTED = 142, /* ENCRYPTED */ + YYSYMBOL_END_P = 143, /* END_P */ + YYSYMBOL_ENUM_P = 144, /* ENUM_P */ + YYSYMBOL_ESCAPE = 145, /* ESCAPE */ + YYSYMBOL_EVENT = 146, /* EVENT */ + YYSYMBOL_EXCEPT = 147, /* EXCEPT */ + YYSYMBOL_EXCLUDE = 148, /* EXCLUDE */ + YYSYMBOL_EXCLUDING = 149, /* EXCLUDING */ + YYSYMBOL_EXCLUSIVE = 150, /* EXCLUSIVE */ + YYSYMBOL_EXECUTE = 151, /* EXECUTE */ + YYSYMBOL_EXISTS = 152, /* EXISTS */ + YYSYMBOL_EXPLAIN = 153, /* EXPLAIN */ + YYSYMBOL_EXPORT_P = 154, /* EXPORT_P */ + YYSYMBOL_EXPORT_STATE = 155, /* EXPORT_STATE */ + YYSYMBOL_EXTENSION = 156, /* EXTENSION */ + YYSYMBOL_EXTERNAL = 157, /* EXTERNAL */ + YYSYMBOL_EXTRACT = 158, /* EXTRACT */ + YYSYMBOL_FALSE_P = 159, /* FALSE_P */ + YYSYMBOL_FAMILY = 160, /* FAMILY */ + YYSYMBOL_FETCH = 161, /* FETCH */ + YYSYMBOL_FILTER = 162, /* FILTER */ + YYSYMBOL_FIRST_P = 163, /* FIRST_P */ + YYSYMBOL_FLOAT_P = 164, /* FLOAT_P */ + YYSYMBOL_FOLLOWING = 165, /* FOLLOWING */ + YYSYMBOL_FOR = 166, /* FOR */ + YYSYMBOL_FORCE = 167, /* FORCE */ + YYSYMBOL_FOREIGN = 168, /* FOREIGN */ + YYSYMBOL_FORWARD = 169, /* FORWARD */ + YYSYMBOL_FREEZE = 170, /* FREEZE */ + YYSYMBOL_FROM = 171, /* FROM */ + YYSYMBOL_FULL = 172, /* FULL */ + YYSYMBOL_FUNCTION = 173, /* FUNCTION */ + YYSYMBOL_FUNCTIONS = 174, /* FUNCTIONS */ + YYSYMBOL_GENERATED = 175, /* GENERATED */ + YYSYMBOL_GLOB = 176, /* GLOB */ + YYSYMBOL_GLOBAL = 177, /* GLOBAL */ + YYSYMBOL_GRANT = 178, /* GRANT */ + YYSYMBOL_GRANTED = 179, /* GRANTED */ + YYSYMBOL_GROUP_P = 180, /* GROUP_P */ + YYSYMBOL_GROUPING = 181, /* GROUPING */ + YYSYMBOL_GROUPING_ID = 182, /* GROUPING_ID */ + YYSYMBOL_HANDLER = 183, /* HANDLER */ + YYSYMBOL_HAVING = 184, /* HAVING */ + YYSYMBOL_HEADER_P = 185, /* HEADER_P */ + YYSYMBOL_HOLD = 186, /* HOLD */ + YYSYMBOL_HOUR_P = 187, /* HOUR_P */ + YYSYMBOL_HOURS_P = 188, /* HOURS_P */ + YYSYMBOL_IDENTITY_P = 189, /* IDENTITY_P */ + YYSYMBOL_IF_P = 190, /* IF_P */ + YYSYMBOL_IGNORE_P = 191, /* IGNORE_P */ + YYSYMBOL_ILIKE = 192, /* ILIKE */ + YYSYMBOL_IMMEDIATE = 193, /* IMMEDIATE */ + YYSYMBOL_IMMUTABLE = 194, /* IMMUTABLE */ + YYSYMBOL_IMPLICIT_P = 195, /* IMPLICIT_P */ + YYSYMBOL_IMPORT_P = 196, /* IMPORT_P */ + YYSYMBOL_IN_P = 197, /* IN_P */ + YYSYMBOL_INCLUDING = 198, /* INCLUDING */ + YYSYMBOL_INCREMENT = 199, /* INCREMENT */ + YYSYMBOL_INDEX = 200, /* INDEX */ + YYSYMBOL_INDEXES = 201, /* INDEXES */ + YYSYMBOL_INHERIT = 202, /* INHERIT */ + YYSYMBOL_INHERITS = 203, /* INHERITS */ + YYSYMBOL_INITIALLY = 204, /* INITIALLY */ + YYSYMBOL_INLINE_P = 205, /* INLINE_P */ + YYSYMBOL_INNER_P = 206, /* INNER_P */ + YYSYMBOL_INOUT = 207, /* INOUT */ + YYSYMBOL_INPUT_P = 208, /* INPUT_P */ + YYSYMBOL_INSENSITIVE = 209, /* INSENSITIVE */ + YYSYMBOL_INSERT = 210, /* INSERT */ + YYSYMBOL_INSTALL = 211, /* INSTALL */ + YYSYMBOL_INSTEAD = 212, /* INSTEAD */ + YYSYMBOL_INT_P = 213, /* INT_P */ + YYSYMBOL_INTEGER = 214, /* INTEGER */ + YYSYMBOL_INTERSECT = 215, /* INTERSECT */ + YYSYMBOL_INTERVAL = 216, /* INTERVAL */ + YYSYMBOL_INTO = 217, /* INTO */ + YYSYMBOL_INVOKER = 218, /* INVOKER */ + YYSYMBOL_IS = 219, /* IS */ + YYSYMBOL_ISNULL = 220, /* ISNULL */ + YYSYMBOL_ISOLATION = 221, /* ISOLATION */ + YYSYMBOL_JOIN = 222, /* JOIN */ + YYSYMBOL_JSON = 223, /* JSON */ + YYSYMBOL_KEY = 224, /* KEY */ + YYSYMBOL_LABEL = 225, /* LABEL */ + YYSYMBOL_LANGUAGE = 226, /* LANGUAGE */ + YYSYMBOL_LARGE_P = 227, /* LARGE_P */ + YYSYMBOL_LAST_P = 228, /* LAST_P */ + YYSYMBOL_LATERAL_P = 229, /* LATERAL_P */ + YYSYMBOL_LEADING = 230, /* LEADING */ + YYSYMBOL_LEAKPROOF = 231, /* LEAKPROOF */ + YYSYMBOL_LEFT = 232, /* LEFT */ + YYSYMBOL_LEVEL = 233, /* LEVEL */ + YYSYMBOL_LIKE = 234, /* LIKE */ + YYSYMBOL_LIMIT = 235, /* LIMIT */ + YYSYMBOL_LISTEN = 236, /* LISTEN */ + YYSYMBOL_LOAD = 237, /* LOAD */ + YYSYMBOL_LOCAL = 238, /* LOCAL */ + YYSYMBOL_LOCALTIME = 239, /* LOCALTIME */ + YYSYMBOL_LOCALTIMESTAMP = 240, /* LOCALTIMESTAMP */ + YYSYMBOL_LOCATION = 241, /* LOCATION */ + YYSYMBOL_LOCK_P = 242, /* LOCK_P */ + YYSYMBOL_LOCKED = 243, /* LOCKED */ + YYSYMBOL_LOGGED = 244, /* LOGGED */ + YYSYMBOL_MACRO = 245, /* MACRO */ + YYSYMBOL_MAP = 246, /* MAP */ + YYSYMBOL_MAPPING = 247, /* MAPPING */ + YYSYMBOL_MATCH = 248, /* MATCH */ + YYSYMBOL_MATERIALIZED = 249, /* MATERIALIZED */ + YYSYMBOL_MAXVALUE = 250, /* MAXVALUE */ + YYSYMBOL_METHOD = 251, /* METHOD */ + YYSYMBOL_MICROSECOND_P = 252, /* MICROSECOND_P */ + YYSYMBOL_MICROSECONDS_P = 253, /* MICROSECONDS_P */ + YYSYMBOL_MILLISECOND_P = 254, /* MILLISECOND_P */ + YYSYMBOL_MILLISECONDS_P = 255, /* MILLISECONDS_P */ + YYSYMBOL_MINUTE_P = 256, /* MINUTE_P */ + YYSYMBOL_MINUTES_P = 257, /* MINUTES_P */ + YYSYMBOL_MINVALUE = 258, /* MINVALUE */ + YYSYMBOL_MODE = 259, /* MODE */ + YYSYMBOL_MONTH_P = 260, /* MONTH_P */ + YYSYMBOL_MONTHS_P = 261, /* MONTHS_P */ + YYSYMBOL_MOVE = 262, /* MOVE */ + YYSYMBOL_NAME_P = 263, /* NAME_P */ + YYSYMBOL_NAMES = 264, /* NAMES */ + YYSYMBOL_NATIONAL = 265, /* NATIONAL */ + YYSYMBOL_NATURAL = 266, /* NATURAL */ + YYSYMBOL_NCHAR = 267, /* NCHAR */ + YYSYMBOL_NEW = 268, /* NEW */ + YYSYMBOL_NEXT = 269, /* NEXT */ + YYSYMBOL_NO = 270, /* NO */ + YYSYMBOL_NONE = 271, /* NONE */ + YYSYMBOL_NOT = 272, /* NOT */ + YYSYMBOL_NOTHING = 273, /* NOTHING */ + YYSYMBOL_NOTIFY = 274, /* NOTIFY */ + YYSYMBOL_NOTNULL = 275, /* NOTNULL */ + YYSYMBOL_NOWAIT = 276, /* NOWAIT */ + YYSYMBOL_NULL_P = 277, /* NULL_P */ + YYSYMBOL_NULLIF = 278, /* NULLIF */ + YYSYMBOL_NULLS_P = 279, /* NULLS_P */ + YYSYMBOL_NUMERIC = 280, /* NUMERIC */ + YYSYMBOL_OBJECT_P = 281, /* OBJECT_P */ + YYSYMBOL_OF = 282, /* OF */ + YYSYMBOL_OFF = 283, /* OFF */ + YYSYMBOL_OFFSET = 284, /* OFFSET */ + YYSYMBOL_OIDS = 285, /* OIDS */ + YYSYMBOL_OLD = 286, /* OLD */ + YYSYMBOL_ON = 287, /* ON */ + YYSYMBOL_ONLY = 288, /* ONLY */ + YYSYMBOL_OPERATOR = 289, /* OPERATOR */ + YYSYMBOL_OPTION = 290, /* OPTION */ + YYSYMBOL_OPTIONS = 291, /* OPTIONS */ + YYSYMBOL_OR = 292, /* OR */ + YYSYMBOL_ORDER = 293, /* ORDER */ + YYSYMBOL_ORDINALITY = 294, /* ORDINALITY */ + YYSYMBOL_OUT_P = 295, /* OUT_P */ + YYSYMBOL_OUTER_P = 296, /* OUTER_P */ + YYSYMBOL_OVER = 297, /* OVER */ + YYSYMBOL_OVERLAPS = 298, /* OVERLAPS */ + YYSYMBOL_OVERLAY = 299, /* OVERLAY */ + YYSYMBOL_OVERRIDING = 300, /* OVERRIDING */ + YYSYMBOL_OWNED = 301, /* OWNED */ + YYSYMBOL_OWNER = 302, /* OWNER */ + YYSYMBOL_PARALLEL = 303, /* PARALLEL */ + YYSYMBOL_PARSER = 304, /* PARSER */ + YYSYMBOL_PARTIAL = 305, /* PARTIAL */ + YYSYMBOL_PARTITION = 306, /* PARTITION */ + YYSYMBOL_PASSING = 307, /* PASSING */ + YYSYMBOL_PASSWORD = 308, /* PASSWORD */ + YYSYMBOL_PERCENT = 309, /* PERCENT */ + YYSYMBOL_PLACING = 310, /* PLACING */ + YYSYMBOL_PLANS = 311, /* PLANS */ + YYSYMBOL_POLICY = 312, /* POLICY */ + YYSYMBOL_POSITION = 313, /* POSITION */ + YYSYMBOL_PRAGMA_P = 314, /* PRAGMA_P */ + YYSYMBOL_PRECEDING = 315, /* PRECEDING */ + YYSYMBOL_PRECISION = 316, /* PRECISION */ + YYSYMBOL_PREPARE = 317, /* PREPARE */ + YYSYMBOL_PREPARED = 318, /* PREPARED */ + YYSYMBOL_PRESERVE = 319, /* PRESERVE */ + YYSYMBOL_PRIMARY = 320, /* PRIMARY */ + YYSYMBOL_PRIOR = 321, /* PRIOR */ + YYSYMBOL_PRIVILEGES = 322, /* PRIVILEGES */ + YYSYMBOL_PROCEDURAL = 323, /* PROCEDURAL */ + YYSYMBOL_PROCEDURE = 324, /* PROCEDURE */ + YYSYMBOL_PROGRAM = 325, /* PROGRAM */ + YYSYMBOL_PUBLICATION = 326, /* PUBLICATION */ + YYSYMBOL_QUALIFY = 327, /* QUALIFY */ + YYSYMBOL_QUOTE = 328, /* QUOTE */ + YYSYMBOL_RANGE = 329, /* RANGE */ + YYSYMBOL_READ_P = 330, /* READ_P */ + YYSYMBOL_REAL = 331, /* REAL */ + YYSYMBOL_REASSIGN = 332, /* REASSIGN */ + YYSYMBOL_RECHECK = 333, /* RECHECK */ + YYSYMBOL_RECURSIVE = 334, /* RECURSIVE */ + YYSYMBOL_REF = 335, /* REF */ + YYSYMBOL_REFERENCES = 336, /* REFERENCES */ + YYSYMBOL_REFERENCING = 337, /* REFERENCING */ + YYSYMBOL_REFRESH = 338, /* REFRESH */ + YYSYMBOL_REINDEX = 339, /* REINDEX */ + YYSYMBOL_RELATIVE_P = 340, /* RELATIVE_P */ + YYSYMBOL_RELEASE = 341, /* RELEASE */ + YYSYMBOL_RENAME = 342, /* RENAME */ + YYSYMBOL_REPEATABLE = 343, /* REPEATABLE */ + YYSYMBOL_REPLACE = 344, /* REPLACE */ + YYSYMBOL_REPLICA = 345, /* REPLICA */ + YYSYMBOL_RESET = 346, /* RESET */ + YYSYMBOL_RESPECT_P = 347, /* RESPECT_P */ + YYSYMBOL_RESTART = 348, /* RESTART */ + YYSYMBOL_RESTRICT = 349, /* RESTRICT */ + YYSYMBOL_RETURNING = 350, /* RETURNING */ + YYSYMBOL_RETURNS = 351, /* RETURNS */ + YYSYMBOL_REVOKE = 352, /* REVOKE */ + YYSYMBOL_RIGHT = 353, /* RIGHT */ + YYSYMBOL_ROLE = 354, /* ROLE */ + YYSYMBOL_ROLLBACK = 355, /* ROLLBACK */ + YYSYMBOL_ROLLUP = 356, /* ROLLUP */ + YYSYMBOL_ROW = 357, /* ROW */ + YYSYMBOL_ROWS = 358, /* ROWS */ + YYSYMBOL_RULE = 359, /* RULE */ + YYSYMBOL_SAMPLE = 360, /* SAMPLE */ + YYSYMBOL_SAVEPOINT = 361, /* SAVEPOINT */ + YYSYMBOL_SCHEMA = 362, /* SCHEMA */ + YYSYMBOL_SCHEMAS = 363, /* SCHEMAS */ + YYSYMBOL_SCROLL = 364, /* SCROLL */ + YYSYMBOL_SEARCH = 365, /* SEARCH */ + YYSYMBOL_SECOND_P = 366, /* SECOND_P */ + YYSYMBOL_SECONDS_P = 367, /* SECONDS_P */ + YYSYMBOL_SECURITY = 368, /* SECURITY */ + YYSYMBOL_SELECT = 369, /* SELECT */ + YYSYMBOL_SEQUENCE = 370, /* SEQUENCE */ + YYSYMBOL_SEQUENCES = 371, /* SEQUENCES */ + YYSYMBOL_SERIALIZABLE = 372, /* SERIALIZABLE */ + YYSYMBOL_SERVER = 373, /* SERVER */ + YYSYMBOL_SESSION = 374, /* SESSION */ + YYSYMBOL_SESSION_USER = 375, /* SESSION_USER */ + YYSYMBOL_SET = 376, /* SET */ + YYSYMBOL_SETOF = 377, /* SETOF */ + YYSYMBOL_SETS = 378, /* SETS */ + YYSYMBOL_SHARE = 379, /* SHARE */ + YYSYMBOL_SHOW = 380, /* SHOW */ + YYSYMBOL_SIMILAR = 381, /* SIMILAR */ + YYSYMBOL_SIMPLE = 382, /* SIMPLE */ + YYSYMBOL_SKIP = 383, /* SKIP */ + YYSYMBOL_SMALLINT = 384, /* SMALLINT */ + YYSYMBOL_SNAPSHOT = 385, /* SNAPSHOT */ + YYSYMBOL_SOME = 386, /* SOME */ + YYSYMBOL_SQL_P = 387, /* SQL_P */ + YYSYMBOL_STABLE = 388, /* STABLE */ + YYSYMBOL_STANDALONE_P = 389, /* STANDALONE_P */ + YYSYMBOL_START = 390, /* START */ + YYSYMBOL_STATEMENT = 391, /* STATEMENT */ + YYSYMBOL_STATISTICS = 392, /* STATISTICS */ + YYSYMBOL_STDIN = 393, /* STDIN */ + YYSYMBOL_STDOUT = 394, /* STDOUT */ + YYSYMBOL_STORAGE = 395, /* STORAGE */ + YYSYMBOL_STORED = 396, /* STORED */ + YYSYMBOL_STRICT_P = 397, /* STRICT_P */ + YYSYMBOL_STRIP_P = 398, /* STRIP_P */ + YYSYMBOL_STRUCT = 399, /* STRUCT */ + YYSYMBOL_SUBSCRIPTION = 400, /* SUBSCRIPTION */ + YYSYMBOL_SUBSTRING = 401, /* SUBSTRING */ + YYSYMBOL_SUMMARIZE = 402, /* SUMMARIZE */ + YYSYMBOL_SYMMETRIC = 403, /* SYMMETRIC */ + YYSYMBOL_SYSID = 404, /* SYSID */ + YYSYMBOL_SYSTEM_P = 405, /* SYSTEM_P */ + YYSYMBOL_TABLE = 406, /* TABLE */ + YYSYMBOL_TABLES = 407, /* TABLES */ + YYSYMBOL_TABLESAMPLE = 408, /* TABLESAMPLE */ + YYSYMBOL_TABLESPACE = 409, /* TABLESPACE */ + YYSYMBOL_TEMP = 410, /* TEMP */ + YYSYMBOL_TEMPLATE = 411, /* TEMPLATE */ + YYSYMBOL_TEMPORARY = 412, /* TEMPORARY */ + YYSYMBOL_TEXT_P = 413, /* TEXT_P */ + YYSYMBOL_THEN = 414, /* THEN */ + YYSYMBOL_TIME = 415, /* TIME */ + YYSYMBOL_TIMESTAMP = 416, /* TIMESTAMP */ + YYSYMBOL_TO = 417, /* TO */ + YYSYMBOL_TRAILING = 418, /* TRAILING */ + YYSYMBOL_TRANSACTION = 419, /* TRANSACTION */ + YYSYMBOL_TRANSFORM = 420, /* TRANSFORM */ + YYSYMBOL_TREAT = 421, /* TREAT */ + YYSYMBOL_TRIGGER = 422, /* TRIGGER */ + YYSYMBOL_TRIM = 423, /* TRIM */ + YYSYMBOL_TRUE_P = 424, /* TRUE_P */ + YYSYMBOL_TRUNCATE = 425, /* TRUNCATE */ + YYSYMBOL_TRUSTED = 426, /* TRUSTED */ + YYSYMBOL_TRY_CAST = 427, /* TRY_CAST */ + YYSYMBOL_TYPE_P = 428, /* TYPE_P */ + YYSYMBOL_TYPES_P = 429, /* TYPES_P */ + YYSYMBOL_UNBOUNDED = 430, /* UNBOUNDED */ + YYSYMBOL_UNCOMMITTED = 431, /* UNCOMMITTED */ + YYSYMBOL_UNENCRYPTED = 432, /* UNENCRYPTED */ + YYSYMBOL_UNION = 433, /* UNION */ + YYSYMBOL_UNIQUE = 434, /* UNIQUE */ + YYSYMBOL_UNKNOWN = 435, /* UNKNOWN */ + YYSYMBOL_UNLISTEN = 436, /* UNLISTEN */ + YYSYMBOL_UNLOGGED = 437, /* UNLOGGED */ + YYSYMBOL_UNTIL = 438, /* UNTIL */ + YYSYMBOL_UPDATE = 439, /* UPDATE */ + YYSYMBOL_USER = 440, /* USER */ + YYSYMBOL_USING = 441, /* USING */ + YYSYMBOL_VACUUM = 442, /* VACUUM */ + YYSYMBOL_VALID = 443, /* VALID */ + YYSYMBOL_VALIDATE = 444, /* VALIDATE */ + YYSYMBOL_VALIDATOR = 445, /* VALIDATOR */ + YYSYMBOL_VALUE_P = 446, /* VALUE_P */ + YYSYMBOL_VALUES = 447, /* VALUES */ + YYSYMBOL_VARCHAR = 448, /* VARCHAR */ + YYSYMBOL_VARIADIC = 449, /* VARIADIC */ + YYSYMBOL_VARYING = 450, /* VARYING */ + YYSYMBOL_VERBOSE = 451, /* VERBOSE */ + YYSYMBOL_VERSION_P = 452, /* VERSION_P */ + YYSYMBOL_VIEW = 453, /* VIEW */ + YYSYMBOL_VIEWS = 454, /* VIEWS */ + YYSYMBOL_VIRTUAL = 455, /* VIRTUAL */ + YYSYMBOL_VOLATILE = 456, /* VOLATILE */ + YYSYMBOL_WHEN = 457, /* WHEN */ + YYSYMBOL_WHERE = 458, /* WHERE */ + YYSYMBOL_WHITESPACE_P = 459, /* WHITESPACE_P */ + YYSYMBOL_WINDOW = 460, /* WINDOW */ + YYSYMBOL_WITH = 461, /* WITH */ + YYSYMBOL_WITHIN = 462, /* WITHIN */ + YYSYMBOL_WITHOUT = 463, /* WITHOUT */ + YYSYMBOL_WORK = 464, /* WORK */ + YYSYMBOL_WRAPPER = 465, /* WRAPPER */ + YYSYMBOL_WRITE_P = 466, /* WRITE_P */ + YYSYMBOL_XML_P = 467, /* XML_P */ + YYSYMBOL_XMLATTRIBUTES = 468, /* XMLATTRIBUTES */ + YYSYMBOL_XMLCONCAT = 469, /* XMLCONCAT */ + YYSYMBOL_XMLELEMENT = 470, /* XMLELEMENT */ + YYSYMBOL_XMLEXISTS = 471, /* XMLEXISTS */ + YYSYMBOL_XMLFOREST = 472, /* XMLFOREST */ + YYSYMBOL_XMLNAMESPACES = 473, /* XMLNAMESPACES */ + YYSYMBOL_XMLPARSE = 474, /* XMLPARSE */ + YYSYMBOL_XMLPI = 475, /* XMLPI */ + YYSYMBOL_XMLROOT = 476, /* XMLROOT */ + YYSYMBOL_XMLSERIALIZE = 477, /* XMLSERIALIZE */ + YYSYMBOL_XMLTABLE = 478, /* XMLTABLE */ + YYSYMBOL_YEAR_P = 479, /* YEAR_P */ + YYSYMBOL_YEARS_P = 480, /* YEARS_P */ + YYSYMBOL_YES_P = 481, /* YES_P */ + YYSYMBOL_ZONE = 482, /* ZONE */ + YYSYMBOL_NOT_LA = 483, /* NOT_LA */ + YYSYMBOL_NULLS_LA = 484, /* NULLS_LA */ + YYSYMBOL_WITH_LA = 485, /* WITH_LA */ + YYSYMBOL_486_ = 486, /* '<' */ + YYSYMBOL_487_ = 487, /* '>' */ + YYSYMBOL_488_ = 488, /* '=' */ + YYSYMBOL_POSTFIXOP = 489, /* POSTFIXOP */ + YYSYMBOL_490_ = 490, /* '+' */ + YYSYMBOL_491_ = 491, /* '-' */ + YYSYMBOL_492_ = 492, /* '*' */ + YYSYMBOL_493_ = 493, /* '/' */ + YYSYMBOL_494_ = 494, /* '%' */ + YYSYMBOL_495_ = 495, /* '^' */ + YYSYMBOL_UMINUS = 496, /* UMINUS */ + YYSYMBOL_497_ = 497, /* '[' */ + YYSYMBOL_498_ = 498, /* ']' */ + YYSYMBOL_499_ = 499, /* '(' */ + YYSYMBOL_500_ = 500, /* ')' */ + YYSYMBOL_501_ = 501, /* '.' */ + YYSYMBOL_502_ = 502, /* ';' */ + YYSYMBOL_503_ = 503, /* ',' */ + YYSYMBOL_504_ = 504, /* '{' */ + YYSYMBOL_505_ = 505, /* '}' */ + YYSYMBOL_506_ = 506, /* '#' */ + YYSYMBOL_507_ = 507, /* '?' */ + YYSYMBOL_508_ = 508, /* ':' */ + YYSYMBOL_YYACCEPT = 509, /* $accept */ + YYSYMBOL_stmtblock = 510, /* stmtblock */ + YYSYMBOL_stmtmulti = 511, /* stmtmulti */ + YYSYMBOL_stmt = 512, /* stmt */ + YYSYMBOL_AlterObjectSchemaStmt = 513, /* AlterObjectSchemaStmt */ + YYSYMBOL_AlterSeqStmt = 514, /* AlterSeqStmt */ + YYSYMBOL_SeqOptList = 515, /* SeqOptList */ + YYSYMBOL_opt_with = 516, /* opt_with */ + YYSYMBOL_NumericOnly = 517, /* NumericOnly */ + YYSYMBOL_SeqOptElem = 518, /* SeqOptElem */ + YYSYMBOL_opt_by = 519, /* opt_by */ + YYSYMBOL_SignedIconst = 520, /* SignedIconst */ + YYSYMBOL_AlterTableStmt = 521, /* AlterTableStmt */ + YYSYMBOL_alter_identity_column_option_list = 522, /* alter_identity_column_option_list */ + YYSYMBOL_alter_column_default = 523, /* alter_column_default */ + YYSYMBOL_alter_identity_column_option = 524, /* alter_identity_column_option */ + YYSYMBOL_alter_generic_option_list = 525, /* alter_generic_option_list */ + YYSYMBOL_alter_table_cmd = 526, /* alter_table_cmd */ + YYSYMBOL_alter_using = 527, /* alter_using */ + YYSYMBOL_alter_generic_option_elem = 528, /* alter_generic_option_elem */ + YYSYMBOL_alter_table_cmds = 529, /* alter_table_cmds */ + YYSYMBOL_alter_generic_options = 530, /* alter_generic_options */ + YYSYMBOL_opt_set_data = 531, /* opt_set_data */ + YYSYMBOL_AnalyzeStmt = 532, /* AnalyzeStmt */ + YYSYMBOL_unreserved_keyword = 533, /* unreserved_keyword */ + YYSYMBOL_col_name_keyword = 534, /* col_name_keyword */ + YYSYMBOL_func_name_keyword = 535, /* func_name_keyword */ + YYSYMBOL_type_name_keyword = 536, /* type_name_keyword */ + YYSYMBOL_other_keyword = 537, /* other_keyword */ + YYSYMBOL_type_func_name_keyword = 538, /* type_func_name_keyword */ + YYSYMBOL_reserved_keyword = 539, /* reserved_keyword */ + YYSYMBOL_CallStmt = 540, /* CallStmt */ + YYSYMBOL_CheckPointStmt = 541, /* CheckPointStmt */ + YYSYMBOL_CopyStmt = 542, /* CopyStmt */ + YYSYMBOL_copy_from = 543, /* copy_from */ + YYSYMBOL_copy_delimiter = 544, /* copy_delimiter */ + YYSYMBOL_copy_generic_opt_arg_list = 545, /* copy_generic_opt_arg_list */ + YYSYMBOL_opt_using = 546, /* opt_using */ + YYSYMBOL_opt_as = 547, /* opt_as */ + YYSYMBOL_opt_program = 548, /* opt_program */ + YYSYMBOL_copy_options = 549, /* copy_options */ + YYSYMBOL_copy_generic_opt_arg = 550, /* copy_generic_opt_arg */ + YYSYMBOL_copy_generic_opt_elem = 551, /* copy_generic_opt_elem */ + YYSYMBOL_opt_oids = 552, /* opt_oids */ + YYSYMBOL_copy_opt_list = 553, /* copy_opt_list */ + YYSYMBOL_opt_binary = 554, /* opt_binary */ + YYSYMBOL_copy_opt_item = 555, /* copy_opt_item */ + YYSYMBOL_copy_generic_opt_arg_list_item = 556, /* copy_generic_opt_arg_list_item */ + YYSYMBOL_copy_file_name = 557, /* copy_file_name */ + YYSYMBOL_copy_generic_opt_list = 558, /* copy_generic_opt_list */ + YYSYMBOL_CreateStmt = 559, /* CreateStmt */ + YYSYMBOL_ConstraintAttributeSpec = 560, /* ConstraintAttributeSpec */ + YYSYMBOL_def_arg = 561, /* def_arg */ + YYSYMBOL_OptParenthesizedSeqOptList = 562, /* OptParenthesizedSeqOptList */ + YYSYMBOL_generic_option_arg = 563, /* generic_option_arg */ + YYSYMBOL_key_action = 564, /* key_action */ + YYSYMBOL_ColConstraint = 565, /* ColConstraint */ + YYSYMBOL_ColConstraintElem = 566, /* ColConstraintElem */ + YYSYMBOL_GeneratedColumnType = 567, /* GeneratedColumnType */ + YYSYMBOL_opt_GeneratedColumnType = 568, /* opt_GeneratedColumnType */ + YYSYMBOL_GeneratedConstraintElem = 569, /* GeneratedConstraintElem */ + YYSYMBOL_generic_option_elem = 570, /* generic_option_elem */ + YYSYMBOL_key_update = 571, /* key_update */ + YYSYMBOL_key_actions = 572, /* key_actions */ + YYSYMBOL_OnCommitOption = 573, /* OnCommitOption */ + YYSYMBOL_reloptions = 574, /* reloptions */ + YYSYMBOL_opt_no_inherit = 575, /* opt_no_inherit */ + YYSYMBOL_TableConstraint = 576, /* TableConstraint */ + YYSYMBOL_TableLikeOption = 577, /* TableLikeOption */ + YYSYMBOL_reloption_list = 578, /* reloption_list */ + YYSYMBOL_ExistingIndex = 579, /* ExistingIndex */ + YYSYMBOL_ConstraintAttr = 580, /* ConstraintAttr */ + YYSYMBOL_OptWith = 581, /* OptWith */ + YYSYMBOL_definition = 582, /* definition */ + YYSYMBOL_TableLikeOptionList = 583, /* TableLikeOptionList */ + YYSYMBOL_generic_option_name = 584, /* generic_option_name */ + YYSYMBOL_ConstraintAttributeElem = 585, /* ConstraintAttributeElem */ + YYSYMBOL_columnDef = 586, /* columnDef */ + YYSYMBOL_def_list = 587, /* def_list */ + YYSYMBOL_index_name = 588, /* index_name */ + YYSYMBOL_TableElement = 589, /* TableElement */ + YYSYMBOL_def_elem = 590, /* def_elem */ + YYSYMBOL_opt_definition = 591, /* opt_definition */ + YYSYMBOL_OptTableElementList = 592, /* OptTableElementList */ + YYSYMBOL_columnElem = 593, /* columnElem */ + YYSYMBOL_opt_column_list = 594, /* opt_column_list */ + YYSYMBOL_ColQualList = 595, /* ColQualList */ + YYSYMBOL_key_delete = 596, /* key_delete */ + YYSYMBOL_reloption_elem = 597, /* reloption_elem */ + YYSYMBOL_columnList = 598, /* columnList */ + YYSYMBOL_columnList_opt_comma = 599, /* columnList_opt_comma */ + YYSYMBOL_func_type = 600, /* func_type */ + YYSYMBOL_ConstraintElem = 601, /* ConstraintElem */ + YYSYMBOL_TableElementList = 602, /* TableElementList */ + YYSYMBOL_key_match = 603, /* key_match */ + YYSYMBOL_TableLikeClause = 604, /* TableLikeClause */ + YYSYMBOL_OptTemp = 605, /* OptTemp */ + YYSYMBOL_generated_when = 606, /* generated_when */ + YYSYMBOL_CreateAsStmt = 607, /* CreateAsStmt */ + YYSYMBOL_opt_with_data = 608, /* opt_with_data */ + YYSYMBOL_create_as_target = 609, /* create_as_target */ + YYSYMBOL_CreateFunctionStmt = 610, /* CreateFunctionStmt */ + YYSYMBOL_macro_alias = 611, /* macro_alias */ + YYSYMBOL_param_list = 612, /* param_list */ + YYSYMBOL_CreateSchemaStmt = 613, /* CreateSchemaStmt */ + YYSYMBOL_OptSchemaEltList = 614, /* OptSchemaEltList */ + YYSYMBOL_schema_stmt = 615, /* schema_stmt */ + YYSYMBOL_CreateSeqStmt = 616, /* CreateSeqStmt */ + YYSYMBOL_OptSeqOptList = 617, /* OptSeqOptList */ + YYSYMBOL_CreateTypeStmt = 618, /* CreateTypeStmt */ + YYSYMBOL_DeallocateStmt = 619, /* DeallocateStmt */ + YYSYMBOL_DeleteStmt = 620, /* DeleteStmt */ + YYSYMBOL_relation_expr_opt_alias = 621, /* relation_expr_opt_alias */ + YYSYMBOL_where_or_current_clause = 622, /* where_or_current_clause */ + YYSYMBOL_using_clause = 623, /* using_clause */ + YYSYMBOL_DropStmt = 624, /* DropStmt */ + YYSYMBOL_drop_type_any_name = 625, /* drop_type_any_name */ + YYSYMBOL_drop_type_name = 626, /* drop_type_name */ + YYSYMBOL_any_name_list = 627, /* any_name_list */ + YYSYMBOL_opt_drop_behavior = 628, /* opt_drop_behavior */ + YYSYMBOL_drop_type_name_on_any_name = 629, /* drop_type_name_on_any_name */ + YYSYMBOL_type_name_list = 630, /* type_name_list */ + YYSYMBOL_ExecuteStmt = 631, /* ExecuteStmt */ + YYSYMBOL_execute_param_clause = 632, /* execute_param_clause */ + YYSYMBOL_ExplainStmt = 633, /* ExplainStmt */ + YYSYMBOL_opt_verbose = 634, /* opt_verbose */ + YYSYMBOL_explain_option_arg = 635, /* explain_option_arg */ + YYSYMBOL_ExplainableStmt = 636, /* ExplainableStmt */ + YYSYMBOL_NonReservedWord = 637, /* NonReservedWord */ + YYSYMBOL_NonReservedWord_or_Sconst = 638, /* NonReservedWord_or_Sconst */ + YYSYMBOL_explain_option_list = 639, /* explain_option_list */ + YYSYMBOL_analyze_keyword = 640, /* analyze_keyword */ + YYSYMBOL_opt_boolean_or_string = 641, /* opt_boolean_or_string */ + YYSYMBOL_explain_option_elem = 642, /* explain_option_elem */ + YYSYMBOL_explain_option_name = 643, /* explain_option_name */ + YYSYMBOL_ExportStmt = 644, /* ExportStmt */ + YYSYMBOL_ImportStmt = 645, /* ImportStmt */ + YYSYMBOL_IndexStmt = 646, /* IndexStmt */ + YYSYMBOL_access_method = 647, /* access_method */ + YYSYMBOL_access_method_clause = 648, /* access_method_clause */ + YYSYMBOL_opt_concurrently = 649, /* opt_concurrently */ + YYSYMBOL_opt_index_name = 650, /* opt_index_name */ + YYSYMBOL_opt_reloptions = 651, /* opt_reloptions */ + YYSYMBOL_opt_unique = 652, /* opt_unique */ + YYSYMBOL_InsertStmt = 653, /* InsertStmt */ + YYSYMBOL_insert_rest = 654, /* insert_rest */ + YYSYMBOL_insert_target = 655, /* insert_target */ + YYSYMBOL_opt_conf_expr = 656, /* opt_conf_expr */ + YYSYMBOL_opt_with_clause = 657, /* opt_with_clause */ + YYSYMBOL_insert_column_item = 658, /* insert_column_item */ + YYSYMBOL_set_clause = 659, /* set_clause */ + YYSYMBOL_opt_on_conflict = 660, /* opt_on_conflict */ + YYSYMBOL_index_elem = 661, /* index_elem */ + YYSYMBOL_returning_clause = 662, /* returning_clause */ + YYSYMBOL_override_kind = 663, /* override_kind */ + YYSYMBOL_set_target_list = 664, /* set_target_list */ + YYSYMBOL_opt_collate = 665, /* opt_collate */ + YYSYMBOL_opt_class = 666, /* opt_class */ + YYSYMBOL_insert_column_list = 667, /* insert_column_list */ + YYSYMBOL_set_clause_list = 668, /* set_clause_list */ + YYSYMBOL_set_clause_list_opt_comma = 669, /* set_clause_list_opt_comma */ + YYSYMBOL_index_params = 670, /* index_params */ + YYSYMBOL_set_target = 671, /* set_target */ + YYSYMBOL_LoadStmt = 672, /* LoadStmt */ + YYSYMBOL_file_name = 673, /* file_name */ + YYSYMBOL_PragmaStmt = 674, /* PragmaStmt */ + YYSYMBOL_PrepareStmt = 675, /* PrepareStmt */ + YYSYMBOL_prep_type_clause = 676, /* prep_type_clause */ + YYSYMBOL_PreparableStmt = 677, /* PreparableStmt */ + YYSYMBOL_RenameStmt = 678, /* RenameStmt */ + YYSYMBOL_opt_column = 679, /* opt_column */ + YYSYMBOL_SelectStmt = 680, /* SelectStmt */ + YYSYMBOL_select_with_parens = 681, /* select_with_parens */ + YYSYMBOL_select_no_parens = 682, /* select_no_parens */ + YYSYMBOL_select_clause = 683, /* select_clause */ + YYSYMBOL_simple_select = 684, /* simple_select */ + YYSYMBOL_with_clause = 685, /* with_clause */ + YYSYMBOL_cte_list = 686, /* cte_list */ + YYSYMBOL_common_table_expr = 687, /* common_table_expr */ + YYSYMBOL_into_clause = 688, /* into_clause */ + YYSYMBOL_OptTempTableName = 689, /* OptTempTableName */ + YYSYMBOL_opt_table = 690, /* opt_table */ + YYSYMBOL_all_or_distinct = 691, /* all_or_distinct */ + YYSYMBOL_distinct_clause = 692, /* distinct_clause */ + YYSYMBOL_opt_all_clause = 693, /* opt_all_clause */ + YYSYMBOL_opt_ignore_nulls = 694, /* opt_ignore_nulls */ + YYSYMBOL_opt_sort_clause = 695, /* opt_sort_clause */ + YYSYMBOL_sort_clause = 696, /* sort_clause */ + YYSYMBOL_sortby_list = 697, /* sortby_list */ + YYSYMBOL_sortby = 698, /* sortby */ + YYSYMBOL_opt_asc_desc = 699, /* opt_asc_desc */ + YYSYMBOL_opt_nulls_order = 700, /* opt_nulls_order */ + YYSYMBOL_select_limit = 701, /* select_limit */ + YYSYMBOL_opt_select_limit = 702, /* opt_select_limit */ + YYSYMBOL_limit_clause = 703, /* limit_clause */ + YYSYMBOL_offset_clause = 704, /* offset_clause */ + YYSYMBOL_sample_count = 705, /* sample_count */ + YYSYMBOL_sample_clause = 706, /* sample_clause */ + YYSYMBOL_opt_sample_func = 707, /* opt_sample_func */ + YYSYMBOL_tablesample_entry = 708, /* tablesample_entry */ + YYSYMBOL_tablesample_clause = 709, /* tablesample_clause */ + YYSYMBOL_opt_tablesample_clause = 710, /* opt_tablesample_clause */ + YYSYMBOL_opt_repeatable_clause = 711, /* opt_repeatable_clause */ + YYSYMBOL_select_limit_value = 712, /* select_limit_value */ + YYSYMBOL_select_offset_value = 713, /* select_offset_value */ + YYSYMBOL_select_fetch_first_value = 714, /* select_fetch_first_value */ + YYSYMBOL_I_or_F_const = 715, /* I_or_F_const */ + YYSYMBOL_row_or_rows = 716, /* row_or_rows */ + YYSYMBOL_first_or_next = 717, /* first_or_next */ + YYSYMBOL_group_clause = 718, /* group_clause */ + YYSYMBOL_group_by_list = 719, /* group_by_list */ + YYSYMBOL_group_by_list_opt_comma = 720, /* group_by_list_opt_comma */ + YYSYMBOL_group_by_item = 721, /* group_by_item */ + YYSYMBOL_empty_grouping_set = 722, /* empty_grouping_set */ + YYSYMBOL_rollup_clause = 723, /* rollup_clause */ + YYSYMBOL_cube_clause = 724, /* cube_clause */ + YYSYMBOL_grouping_sets_clause = 725, /* grouping_sets_clause */ + YYSYMBOL_grouping_or_grouping_id = 726, /* grouping_or_grouping_id */ + YYSYMBOL_having_clause = 727, /* having_clause */ + YYSYMBOL_qualify_clause = 728, /* qualify_clause */ + YYSYMBOL_for_locking_clause = 729, /* for_locking_clause */ + YYSYMBOL_opt_for_locking_clause = 730, /* opt_for_locking_clause */ + YYSYMBOL_for_locking_items = 731, /* for_locking_items */ + YYSYMBOL_for_locking_item = 732, /* for_locking_item */ + YYSYMBOL_for_locking_strength = 733, /* for_locking_strength */ + YYSYMBOL_locked_rels_list = 734, /* locked_rels_list */ + YYSYMBOL_opt_nowait_or_skip = 735, /* opt_nowait_or_skip */ + YYSYMBOL_values_clause = 736, /* values_clause */ + YYSYMBOL_values_clause_opt_comma = 737, /* values_clause_opt_comma */ + YYSYMBOL_from_clause = 738, /* from_clause */ + YYSYMBOL_from_list = 739, /* from_list */ + YYSYMBOL_from_list_opt_comma = 740, /* from_list_opt_comma */ + YYSYMBOL_table_ref = 741, /* table_ref */ + YYSYMBOL_joined_table = 742, /* joined_table */ + YYSYMBOL_alias_clause = 743, /* alias_clause */ + YYSYMBOL_opt_alias_clause = 744, /* opt_alias_clause */ + YYSYMBOL_func_alias_clause = 745, /* func_alias_clause */ + YYSYMBOL_join_type = 746, /* join_type */ + YYSYMBOL_join_outer = 747, /* join_outer */ + YYSYMBOL_join_qual = 748, /* join_qual */ + YYSYMBOL_relation_expr = 749, /* relation_expr */ + YYSYMBOL_func_table = 750, /* func_table */ + YYSYMBOL_rowsfrom_item = 751, /* rowsfrom_item */ + YYSYMBOL_rowsfrom_list = 752, /* rowsfrom_list */ + YYSYMBOL_opt_col_def_list = 753, /* opt_col_def_list */ + YYSYMBOL_opt_ordinality = 754, /* opt_ordinality */ + YYSYMBOL_where_clause = 755, /* where_clause */ + YYSYMBOL_TableFuncElementList = 756, /* TableFuncElementList */ + YYSYMBOL_TableFuncElement = 757, /* TableFuncElement */ + YYSYMBOL_opt_collate_clause = 758, /* opt_collate_clause */ + YYSYMBOL_colid_type_list = 759, /* colid_type_list */ + YYSYMBOL_RowOrStruct = 760, /* RowOrStruct */ + YYSYMBOL_opt_Typename = 761, /* opt_Typename */ + YYSYMBOL_Typename = 762, /* Typename */ + YYSYMBOL_opt_array_bounds = 763, /* opt_array_bounds */ + YYSYMBOL_SimpleTypename = 764, /* SimpleTypename */ + YYSYMBOL_ConstTypename = 765, /* ConstTypename */ + YYSYMBOL_GenericType = 766, /* GenericType */ + YYSYMBOL_opt_type_modifiers = 767, /* opt_type_modifiers */ + YYSYMBOL_Numeric = 768, /* Numeric */ + YYSYMBOL_opt_float = 769, /* opt_float */ + YYSYMBOL_Bit = 770, /* Bit */ + YYSYMBOL_ConstBit = 771, /* ConstBit */ + YYSYMBOL_BitWithLength = 772, /* BitWithLength */ + YYSYMBOL_BitWithoutLength = 773, /* BitWithoutLength */ + YYSYMBOL_Character = 774, /* Character */ + YYSYMBOL_ConstCharacter = 775, /* ConstCharacter */ + YYSYMBOL_CharacterWithLength = 776, /* CharacterWithLength */ + YYSYMBOL_CharacterWithoutLength = 777, /* CharacterWithoutLength */ + YYSYMBOL_character = 778, /* character */ + YYSYMBOL_opt_varying = 779, /* opt_varying */ + YYSYMBOL_ConstDatetime = 780, /* ConstDatetime */ + YYSYMBOL_ConstInterval = 781, /* ConstInterval */ + YYSYMBOL_opt_timezone = 782, /* opt_timezone */ + YYSYMBOL_year_keyword = 783, /* year_keyword */ + YYSYMBOL_month_keyword = 784, /* month_keyword */ + YYSYMBOL_day_keyword = 785, /* day_keyword */ + YYSYMBOL_hour_keyword = 786, /* hour_keyword */ + YYSYMBOL_minute_keyword = 787, /* minute_keyword */ + YYSYMBOL_second_keyword = 788, /* second_keyword */ + YYSYMBOL_millisecond_keyword = 789, /* millisecond_keyword */ + YYSYMBOL_microsecond_keyword = 790, /* microsecond_keyword */ + YYSYMBOL_opt_interval = 791, /* opt_interval */ + YYSYMBOL_a_expr = 792, /* a_expr */ + YYSYMBOL_b_expr = 793, /* b_expr */ + YYSYMBOL_c_expr = 794, /* c_expr */ + YYSYMBOL_func_application = 795, /* func_application */ + YYSYMBOL_func_expr = 796, /* func_expr */ + YYSYMBOL_func_expr_windowless = 797, /* func_expr_windowless */ + YYSYMBOL_func_expr_common_subexpr = 798, /* func_expr_common_subexpr */ + YYSYMBOL_within_group_clause = 799, /* within_group_clause */ + YYSYMBOL_filter_clause = 800, /* filter_clause */ + YYSYMBOL_export_clause = 801, /* export_clause */ + YYSYMBOL_window_clause = 802, /* window_clause */ + YYSYMBOL_window_definition_list = 803, /* window_definition_list */ + YYSYMBOL_window_definition = 804, /* window_definition */ + YYSYMBOL_over_clause = 805, /* over_clause */ + YYSYMBOL_window_specification = 806, /* window_specification */ + YYSYMBOL_opt_existing_window_name = 807, /* opt_existing_window_name */ + YYSYMBOL_opt_partition_clause = 808, /* opt_partition_clause */ + YYSYMBOL_opt_frame_clause = 809, /* opt_frame_clause */ + YYSYMBOL_frame_extent = 810, /* frame_extent */ + YYSYMBOL_frame_bound = 811, /* frame_bound */ + YYSYMBOL_qualified_row = 812, /* qualified_row */ + YYSYMBOL_row = 813, /* row */ + YYSYMBOL_dict_arg = 814, /* dict_arg */ + YYSYMBOL_dict_arguments = 815, /* dict_arguments */ + YYSYMBOL_dict_arguments_opt_comma = 816, /* dict_arguments_opt_comma */ + YYSYMBOL_sub_type = 817, /* sub_type */ + YYSYMBOL_all_Op = 818, /* all_Op */ + YYSYMBOL_MathOp = 819, /* MathOp */ + YYSYMBOL_qual_Op = 820, /* qual_Op */ + YYSYMBOL_qual_all_Op = 821, /* qual_all_Op */ + YYSYMBOL_subquery_Op = 822, /* subquery_Op */ + YYSYMBOL_any_operator = 823, /* any_operator */ + YYSYMBOL_expr_list = 824, /* expr_list */ + YYSYMBOL_expr_list_opt_comma = 825, /* expr_list_opt_comma */ + YYSYMBOL_opt_expr_list_opt_comma = 826, /* opt_expr_list_opt_comma */ + YYSYMBOL_func_arg_list = 827, /* func_arg_list */ + YYSYMBOL_func_arg_expr = 828, /* func_arg_expr */ + YYSYMBOL_type_list = 829, /* type_list */ + YYSYMBOL_extract_list = 830, /* extract_list */ + YYSYMBOL_extract_arg = 831, /* extract_arg */ + YYSYMBOL_overlay_list = 832, /* overlay_list */ + YYSYMBOL_overlay_placing = 833, /* overlay_placing */ + YYSYMBOL_position_list = 834, /* position_list */ + YYSYMBOL_substr_list = 835, /* substr_list */ + YYSYMBOL_substr_from = 836, /* substr_from */ + YYSYMBOL_substr_for = 837, /* substr_for */ + YYSYMBOL_trim_list = 838, /* trim_list */ + YYSYMBOL_in_expr = 839, /* in_expr */ + YYSYMBOL_case_expr = 840, /* case_expr */ + YYSYMBOL_when_clause_list = 841, /* when_clause_list */ + YYSYMBOL_when_clause = 842, /* when_clause */ + YYSYMBOL_case_default = 843, /* case_default */ + YYSYMBOL_case_arg = 844, /* case_arg */ + YYSYMBOL_columnref = 845, /* columnref */ + YYSYMBOL_indirection_el = 846, /* indirection_el */ + YYSYMBOL_opt_slice_bound = 847, /* opt_slice_bound */ + YYSYMBOL_indirection = 848, /* indirection */ + YYSYMBOL_opt_indirection = 849, /* opt_indirection */ + YYSYMBOL_opt_asymmetric = 850, /* opt_asymmetric */ + YYSYMBOL_opt_target_list_opt_comma = 851, /* opt_target_list_opt_comma */ + YYSYMBOL_target_list = 852, /* target_list */ + YYSYMBOL_target_list_opt_comma = 853, /* target_list_opt_comma */ + YYSYMBOL_target_el = 854, /* target_el */ + YYSYMBOL_except_list = 855, /* except_list */ + YYSYMBOL_opt_except_list = 856, /* opt_except_list */ + YYSYMBOL_replace_list_el = 857, /* replace_list_el */ + YYSYMBOL_replace_list = 858, /* replace_list */ + YYSYMBOL_replace_list_opt_comma = 859, /* replace_list_opt_comma */ + YYSYMBOL_opt_replace_list = 860, /* opt_replace_list */ + YYSYMBOL_qualified_name_list = 861, /* qualified_name_list */ + YYSYMBOL_qualified_name = 862, /* qualified_name */ + YYSYMBOL_name_list = 863, /* name_list */ + YYSYMBOL_name_list_opt_comma = 864, /* name_list_opt_comma */ + YYSYMBOL_name = 865, /* name */ + YYSYMBOL_attr_name = 866, /* attr_name */ + YYSYMBOL_func_name = 867, /* func_name */ + YYSYMBOL_AexprConst = 868, /* AexprConst */ + YYSYMBOL_Iconst = 869, /* Iconst */ + YYSYMBOL_Sconst = 870, /* Sconst */ + YYSYMBOL_ColId = 871, /* ColId */ + YYSYMBOL_ColIdOrString = 872, /* ColIdOrString */ + YYSYMBOL_type_function_name = 873, /* type_function_name */ + YYSYMBOL_function_name_token = 874, /* function_name_token */ + YYSYMBOL_type_name_token = 875, /* type_name_token */ + YYSYMBOL_any_name = 876, /* any_name */ + YYSYMBOL_attrs = 877, /* attrs */ + YYSYMBOL_opt_name_list = 878, /* opt_name_list */ + YYSYMBOL_param_name = 879, /* param_name */ + YYSYMBOL_ColLabel = 880, /* ColLabel */ + YYSYMBOL_ColLabelOrString = 881, /* ColLabelOrString */ + YYSYMBOL_TransactionStmt = 882, /* TransactionStmt */ + YYSYMBOL_opt_transaction = 883, /* opt_transaction */ + YYSYMBOL_UpdateStmt = 884, /* UpdateStmt */ + YYSYMBOL_VacuumStmt = 885, /* VacuumStmt */ + YYSYMBOL_vacuum_option_elem = 886, /* vacuum_option_elem */ + YYSYMBOL_opt_full = 887, /* opt_full */ + YYSYMBOL_vacuum_option_list = 888, /* vacuum_option_list */ + YYSYMBOL_opt_freeze = 889, /* opt_freeze */ + YYSYMBOL_VariableResetStmt = 890, /* VariableResetStmt */ + YYSYMBOL_generic_reset = 891, /* generic_reset */ + YYSYMBOL_reset_rest = 892, /* reset_rest */ + YYSYMBOL_VariableSetStmt = 893, /* VariableSetStmt */ + YYSYMBOL_set_rest = 894, /* set_rest */ + YYSYMBOL_generic_set = 895, /* generic_set */ + YYSYMBOL_var_value = 896, /* var_value */ + YYSYMBOL_zone_value = 897, /* zone_value */ + YYSYMBOL_var_list = 898, /* var_list */ + YYSYMBOL_VariableShowStmt = 899, /* VariableShowStmt */ + YYSYMBOL_show_or_describe = 900, /* show_or_describe */ + YYSYMBOL_var_name = 901, /* var_name */ + YYSYMBOL_ViewStmt = 902, /* ViewStmt */ + YYSYMBOL_opt_check_option = 903 /* opt_check_option */ }; -# define YYLTYPE_IS_DECLARED 1 -# define YYLTYPE_IS_TRIVIAL 1 -#endif - - +typedef enum yysymbol_kind_t yysymbol_kind_t; -int base_yyparse (core_yyscan_t yyscanner); - -#endif /* !YY_BASE_YY_THIRD_PARTY_LIBPG_QUERY_GRAMMAR_GRAMMAR_OUT_HPP_INCLUDED */ @@ -889,6 +1213,18 @@ typedef int_least16_t yytype_int16; typedef short yytype_int16; #endif +/* Work around bug in HP-UX 11.23, which defines these macros + incorrectly for preprocessor constants. This workaround can likely + be removed in 2023, as HPE has promised support for HP-UX 11.23 + (aka HP-UX 11i v2) only through the end of 2022; see Table 2 of + . */ +#ifdef __hpux +# undef UINT_LEAST8_MAX +# undef UINT_LEAST16_MAX +# define UINT_LEAST8_MAX 255 +# define UINT_LEAST16_MAX 65535 +#endif + #if defined __UINT_LEAST8_MAX__ && __UINT_LEAST8_MAX__ <= __INT_MAX__ typedef __UINT_LEAST8_TYPE__ yytype_uint8; #elif (!defined __UINT_LEAST8_MAX__ && defined YY_STDINT_H \ @@ -948,6 +1284,7 @@ typedef int yytype_uint16; #define YYSIZEOF(X) YY_CAST (YYPTRDIFF_T, sizeof (X)) + /* Stored state numbers (used for stacks). */ typedef yytype_int16 yy_state_t; @@ -966,6 +1303,7 @@ typedef int yy_state_fast_t; # endif #endif + #ifndef YY_ATTRIBUTE_PURE # if defined __GNUC__ && 2 < __GNUC__ + (96 <= __GNUC_MINOR__) # define YY_ATTRIBUTE_PURE __attribute__ ((__pure__)) @@ -984,17 +1322,23 @@ typedef int yy_state_fast_t; /* Suppress unused-variable warnings by "using" E. */ #if ! defined lint || defined __GNUC__ -# define YYUSE(E) ((void) (E)) +# define YY_USE(E) ((void) (E)) #else -# define YYUSE(E) /* empty */ +# define YY_USE(E) /* empty */ #endif -#if defined __GNUC__ && ! defined __ICC && 407 <= __GNUC__ * 100 + __GNUC_MINOR__ /* Suppress an incorrect diagnostic about yylval being uninitialized. */ -# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \ +#if defined __GNUC__ && ! defined __ICC && 406 <= __GNUC__ * 100 + __GNUC_MINOR__ +# if __GNUC__ * 100 + __GNUC_MINOR__ < 407 +# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \ + _Pragma ("GCC diagnostic push") \ + _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"") +# else +# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \ _Pragma ("GCC diagnostic push") \ _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"") \ _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"") +# endif # define YY_IGNORE_MAYBE_UNINITIALIZED_END \ _Pragma ("GCC diagnostic pop") #else @@ -1023,7 +1367,7 @@ typedef int yy_state_fast_t; #define YY_ASSERT(E) ((void) (0 && (E))) -#if ! defined yyoverflow || YYERROR_VERBOSE +#if !defined yyoverflow /* The parser invokes alloca or malloc; define the necessary symbols. */ @@ -1088,8 +1432,7 @@ void free (void *); /* INFRINGES ON USER NAME SPACE */ # endif # endif # endif -#endif /* ! defined yyoverflow || YYERROR_VERBOSE */ - +#endif /* !defined yyoverflow */ #if (! defined yyoverflow \ && (! defined __cplusplus \ @@ -1157,7 +1500,7 @@ union yyalloc /* YYFINAL -- State number of the termination state. */ #define YYFINAL 631 /* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 56718 +#define YYLAST 56874 /* YYNTOKENS -- Number of terminals. */ #define YYNTOKENS 509 @@ -1168,14 +1511,16 @@ union yyalloc /* YYNSTATES -- Number of states. */ #define YYNSTATES 3102 -#define YYUNDEFTOK 2 +/* YYMAXUTOK -- Last valid token kind. */ #define YYMAXUTOK 742 /* YYTRANSLATE(TOKEN-NUM) -- Symbol number corresponding to TOKEN-NUM as returned by yylex, with out-of-bounds checking. */ -#define YYTRANSLATE(YYX) \ - (0 <= (YYX) && (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) +#define YYTRANSLATE(YYX) \ + (0 <= (YYX) && (YYX) <= YYMAXUTOK \ + ? YY_CAST (yysymbol_kind_t, yytranslate[YYX]) \ + : YYSYMBOL_YYUNDEF) /* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM as returned by yylex. */ @@ -1259,14 +1604,14 @@ static const yytype_int16 yytranslate[] = }; #if YYDEBUG - /* YYRLINE[YYN] -- Source line where rule number YYN was defined. */ +/* YYRLINE[YYN] -- Source line where rule number YYN was defined. */ static const yytype_int16 yyrline[] = { 0, 466, 466, 482, 494, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 538, - 1, 20, 49, 72, 73, 78, 82, 87, 91, 99, + 1, 30, 49, 72, 73, 78, 82, 87, 91, 99, 100, 104, 105, 110, 111, 115, 116, 121, 122, 123, 124, 125, 130, 138, 142, 147, 148, 153, 157, 162, 166, 170, 174, 178, 182, 186, 190, 194, 198, 202, @@ -1457,35 +1802,42 @@ static const yytype_int16 yyrline[] = }; #endif -#if YYDEBUG || YYERROR_VERBOSE || 0 +/** Accessing symbol of state STATE. */ +#define YY_ACCESSING_SYMBOL(State) YY_CAST (yysymbol_kind_t, yystos[State]) + +#if YYDEBUG || 0 +/* The user-facing name of the symbol whose (internal) number is + YYSYMBOL. No bounds checking. */ +static const char *yysymbol_name (yysymbol_kind_t yysymbol) YY_ATTRIBUTE_UNUSED; + /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM. First, the terminals, then, starting at YYNTOKENS, nonterminals. */ static const char *const yytname[] = { - "$end", "error", "$undefined", "IDENT", "FCONST", "SCONST", "BCONST", - "XCONST", "Op", "ICONST", "PARAM", "TYPECAST", "DOT_DOT", "COLON_EQUALS", - "EQUALS_GREATER", "POWER_OF", "LAMBDA_ARROW", "DOUBLE_ARROW", - "LESS_EQUALS", "GREATER_EQUALS", "NOT_EQUALS", "ABORT_P", "ABSOLUTE_P", - "ACCESS", "ACTION", "ADD_P", "ADMIN", "AFTER", "AGGREGATE", "ALL", - "ALSO", "ALTER", "ALWAYS", "ANALYSE", "ANALYZE", "AND", "ANY", "ARRAY", - "AS", "ASC_P", "ASSERTION", "ASSIGNMENT", "ASYMMETRIC", "AT", "ATTACH", - "ATTRIBUTE", "AUTHORIZATION", "BACKWARD", "BEFORE", "BEGIN_P", "BETWEEN", - "BIGINT", "BINARY", "BIT", "BOOLEAN_P", "BOTH", "BY", "CACHE", "CALL_P", - "CALLED", "CASCADE", "CASCADED", "CASE", "CAST", "CATALOG_P", "CHAIN", - "CHAR_P", "CHARACTER", "CHARACTERISTICS", "CHECK_P", "CHECKPOINT", - "CLASS", "CLOSE", "CLUSTER", "COALESCE", "COLLATE", "COLLATION", - "COLUMN", "COLUMNS", "COMMENT", "COMMENTS", "COMMIT", "COMMITTED", - "COMPRESSION", "CONCURRENTLY", "CONFIGURATION", "CONFLICT", "CONNECTION", - "CONSTRAINT", "CONSTRAINTS", "CONTENT_P", "CONTINUE_P", "CONVERSION_P", - "COPY", "COST", "CREATE_P", "CROSS", "CSV", "CUBE", "CURRENT_P", - "CURRENT_CATALOG", "CURRENT_DATE", "CURRENT_ROLE", "CURRENT_SCHEMA", - "CURRENT_TIME", "CURRENT_TIMESTAMP", "CURRENT_USER", "CURSOR", "CYCLE", - "DATA_P", "DATABASE", "DAY_P", "DAYS_P", "DEALLOCATE", "DEC", - "DECIMAL_P", "DECLARE", "DEFAULT", "DEFAULTS", "DEFERRABLE", "DEFERRED", - "DEFINER", "DELETE_P", "DELIMITER", "DELIMITERS", "DEPENDS", "DESC_P", - "DESCRIBE", "DETACH", "DICTIONARY", "DISABLE_P", "DISCARD", "DISTINCT", - "DO", "DOCUMENT_P", "DOMAIN_P", "DOUBLE_P", "DROP", "EACH", "ELSE", - "ENABLE_P", "ENCODING", "ENCRYPTED", "END_P", "ENUM_P", "ESCAPE", + "\"end of file\"", "error", "\"invalid token\"", "IDENT", "FCONST", + "SCONST", "BCONST", "XCONST", "Op", "ICONST", "PARAM", "TYPECAST", + "DOT_DOT", "COLON_EQUALS", "EQUALS_GREATER", "POWER_OF", "LAMBDA_ARROW", + "DOUBLE_ARROW", "LESS_EQUALS", "GREATER_EQUALS", "NOT_EQUALS", "ABORT_P", + "ABSOLUTE_P", "ACCESS", "ACTION", "ADD_P", "ADMIN", "AFTER", "AGGREGATE", + "ALL", "ALSO", "ALTER", "ALWAYS", "ANALYSE", "ANALYZE", "AND", "ANY", + "ARRAY", "AS", "ASC_P", "ASSERTION", "ASSIGNMENT", "ASYMMETRIC", "AT", + "ATTACH", "ATTRIBUTE", "AUTHORIZATION", "BACKWARD", "BEFORE", "BEGIN_P", + "BETWEEN", "BIGINT", "BINARY", "BIT", "BOOLEAN_P", "BOTH", "BY", "CACHE", + "CALL_P", "CALLED", "CASCADE", "CASCADED", "CASE", "CAST", "CATALOG_P", + "CHAIN", "CHAR_P", "CHARACTER", "CHARACTERISTICS", "CHECK_P", + "CHECKPOINT", "CLASS", "CLOSE", "CLUSTER", "COALESCE", "COLLATE", + "COLLATION", "COLUMN", "COLUMNS", "COMMENT", "COMMENTS", "COMMIT", + "COMMITTED", "COMPRESSION", "CONCURRENTLY", "CONFIGURATION", "CONFLICT", + "CONNECTION", "CONSTRAINT", "CONSTRAINTS", "CONTENT_P", "CONTINUE_P", + "CONVERSION_P", "COPY", "COST", "CREATE_P", "CROSS", "CSV", "CUBE", + "CURRENT_P", "CURRENT_CATALOG", "CURRENT_DATE", "CURRENT_ROLE", + "CURRENT_SCHEMA", "CURRENT_TIME", "CURRENT_TIMESTAMP", "CURRENT_USER", + "CURSOR", "CYCLE", "DATA_P", "DATABASE", "DAY_P", "DAYS_P", "DEALLOCATE", + "DEC", "DECIMAL_P", "DECLARE", "DEFAULT", "DEFAULTS", "DEFERRABLE", + "DEFERRED", "DEFINER", "DELETE_P", "DELIMITER", "DELIMITERS", "DEPENDS", + "DESC_P", "DESCRIBE", "DETACH", "DICTIONARY", "DISABLE_P", "DISCARD", + "DISTINCT", "DO", "DOCUMENT_P", "DOMAIN_P", "DOUBLE_P", "DROP", "EACH", + "ELSE", "ENABLE_P", "ENCODING", "ENCRYPTED", "END_P", "ENUM_P", "ESCAPE", "EVENT", "EXCEPT", "EXCLUDE", "EXCLUDING", "EXCLUSIVE", "EXECUTE", "EXISTS", "EXPLAIN", "EXPORT_P", "EXPORT_STATE", "EXTENSION", "EXTERNAL", "EXTRACT", "FALSE_P", "FAMILY", "FETCH", "FILTER", "FIRST_P", "FLOAT_P", @@ -1542,73 +1894,24 @@ static const char *const yytname[] = "YES_P", "ZONE", "NOT_LA", "NULLS_LA", "WITH_LA", "'<'", "'>'", "'='", "POSTFIXOP", "'+'", "'-'", "'*'", "'/'", "'%'", "'^'", "UMINUS", "'['", "']'", "'('", "')'", "'.'", "';'", "','", "'{'", "'}'", "'#'", "'?'", - "':'", "$accept", "stmtblock", "stmtmulti", "stmt", "CopyStmt", - "copy_from", "copy_delimiter", "copy_generic_opt_arg_list", "opt_using", - "opt_as", "opt_program", "copy_options", "copy_generic_opt_arg", - "copy_generic_opt_elem", "opt_oids", "copy_opt_list", "opt_binary", - "copy_opt_item", "copy_generic_opt_arg_list_item", "copy_file_name", - "copy_generic_opt_list", "VariableResetStmt", "generic_reset", - "reset_rest", "CallStmt", "SelectStmt", "select_with_parens", - "select_no_parens", "select_clause", "simple_select", "with_clause", - "cte_list", "common_table_expr", "into_clause", "OptTempTableName", - "opt_table", "all_or_distinct", "distinct_clause", "opt_all_clause", - "opt_ignore_nulls", "opt_sort_clause", "sort_clause", "sortby_list", - "sortby", "opt_asc_desc", "opt_nulls_order", "select_limit", - "opt_select_limit", "limit_clause", "offset_clause", "sample_count", - "sample_clause", "opt_sample_func", "tablesample_entry", - "tablesample_clause", "opt_tablesample_clause", "opt_repeatable_clause", - "select_limit_value", "select_offset_value", "select_fetch_first_value", - "I_or_F_const", "row_or_rows", "first_or_next", "group_clause", - "group_by_list", "group_by_list_opt_comma", "group_by_item", - "empty_grouping_set", "rollup_clause", "cube_clause", - "grouping_sets_clause", "grouping_or_grouping_id", "having_clause", - "qualify_clause", "for_locking_clause", "opt_for_locking_clause", - "for_locking_items", "for_locking_item", "for_locking_strength", - "locked_rels_list", "opt_nowait_or_skip", "values_clause", - "values_clause_opt_comma", "from_clause", "from_list", - "from_list_opt_comma", "table_ref", "joined_table", "alias_clause", - "opt_alias_clause", "func_alias_clause", "join_type", "join_outer", - "join_qual", "relation_expr", "func_table", "rowsfrom_item", - "rowsfrom_list", "opt_col_def_list", "opt_ordinality", "where_clause", - "TableFuncElementList", "TableFuncElement", "opt_collate_clause", - "colid_type_list", "RowOrStruct", "opt_Typename", "Typename", - "opt_array_bounds", "SimpleTypename", "ConstTypename", "GenericType", - "opt_type_modifiers", "Numeric", "opt_float", "Bit", "ConstBit", - "BitWithLength", "BitWithoutLength", "Character", "ConstCharacter", - "CharacterWithLength", "CharacterWithoutLength", "character", - "opt_varying", "ConstDatetime", "ConstInterval", "opt_timezone", - "year_keyword", "month_keyword", "day_keyword", "hour_keyword", - "minute_keyword", "second_keyword", "millisecond_keyword", - "microsecond_keyword", "opt_interval", "a_expr", "b_expr", "c_expr", - "func_application", "func_expr", "func_expr_windowless", - "func_expr_common_subexpr", "within_group_clause", "filter_clause", - "export_clause", "window_clause", "window_definition_list", - "window_definition", "over_clause", "window_specification", - "opt_existing_window_name", "opt_partition_clause", "opt_frame_clause", - "frame_extent", "frame_bound", "qualified_row", "row", "dict_arg", - "dict_arguments", "dict_arguments_opt_comma", "sub_type", "all_Op", - "MathOp", "qual_Op", "qual_all_Op", "subquery_Op", "any_operator", - "expr_list", "expr_list_opt_comma", "opt_expr_list_opt_comma", - "func_arg_list", "func_arg_expr", "type_list", "extract_list", - "extract_arg", "overlay_list", "overlay_placing", "position_list", - "substr_list", "substr_from", "substr_for", "trim_list", "in_expr", - "case_expr", "when_clause_list", "when_clause", "case_default", - "case_arg", "columnref", "indirection_el", "opt_slice_bound", - "indirection", "opt_indirection", "opt_asymmetric", - "opt_target_list_opt_comma", "target_list", "target_list_opt_comma", - "target_el", "except_list", "opt_except_list", "replace_list_el", - "replace_list", "replace_list_opt_comma", "opt_replace_list", - "qualified_name_list", "qualified_name", "name_list", - "name_list_opt_comma", "name", "attr_name", "func_name", "AexprConst", - "Iconst", "Sconst", "ColId", "ColIdOrString", "type_function_name", - "function_name_token", "type_name_token", "any_name", "attrs", - "opt_name_list", "param_name", "ColLabel", "ColLabelOrString", - "PragmaStmt", "CreateAsStmt", "opt_with_data", "create_as_target", - "VariableShowStmt", "show_or_describe", "var_name", "AlterSeqStmt", - "SeqOptList", "opt_with", "NumericOnly", "SeqOptElem", "opt_by", - "SignedIconst", "DeallocateStmt", "CreateStmt", - "ConstraintAttributeSpec", "def_arg", "OptParenthesizedSeqOptList", - "generic_option_arg", "key_action", "ColConstraint", "ColConstraintElem", + "':'", "$accept", "stmtblock", "stmtmulti", "stmt", + "AlterObjectSchemaStmt", "AlterSeqStmt", "SeqOptList", "opt_with", + "NumericOnly", "SeqOptElem", "opt_by", "SignedIconst", "AlterTableStmt", + "alter_identity_column_option_list", "alter_column_default", + "alter_identity_column_option", "alter_generic_option_list", + "alter_table_cmd", "alter_using", "alter_generic_option_elem", + "alter_table_cmds", "alter_generic_options", "opt_set_data", + "AnalyzeStmt", "unreserved_keyword", "col_name_keyword", + "func_name_keyword", "type_name_keyword", "other_keyword", + "type_func_name_keyword", "reserved_keyword", "CallStmt", + "CheckPointStmt", "CopyStmt", "copy_from", "copy_delimiter", + "copy_generic_opt_arg_list", "opt_using", "opt_as", "opt_program", + "copy_options", "copy_generic_opt_arg", "copy_generic_opt_elem", + "opt_oids", "copy_opt_list", "opt_binary", "copy_opt_item", + "copy_generic_opt_arg_list_item", "copy_file_name", + "copy_generic_opt_list", "CreateStmt", "ConstraintAttributeSpec", + "def_arg", "OptParenthesizedSeqOptList", "generic_option_arg", + "key_action", "ColConstraint", "ColConstraintElem", "GeneratedColumnType", "opt_GeneratedColumnType", "GeneratedConstraintElem", "generic_option_elem", "key_update", "key_actions", "OnCommitOption", "reloptions", "opt_no_inherit", @@ -1619,100 +1922,97 @@ static const char *const yytname[] = "OptTableElementList", "columnElem", "opt_column_list", "ColQualList", "key_delete", "reloption_elem", "columnList", "columnList_opt_comma", "func_type", "ConstraintElem", "TableElementList", "key_match", - "TableLikeClause", "OptTemp", "generated_when", "ExecuteStmt", - "execute_param_clause", "CreateSchemaStmt", "OptSchemaEltList", - "schema_stmt", "ExplainStmt", "opt_verbose", "explain_option_arg", - "ExplainableStmt", "NonReservedWord", "NonReservedWord_or_Sconst", - "explain_option_list", "analyze_keyword", "opt_boolean_or_string", - "explain_option_elem", "explain_option_name", "DropStmt", - "drop_type_any_name", "drop_type_name", "any_name_list", - "opt_drop_behavior", "drop_type_name_on_any_name", "type_name_list", - "CreateTypeStmt", "AlterTableStmt", "alter_identity_column_option_list", - "alter_column_default", "alter_identity_column_option", - "alter_generic_option_list", "alter_table_cmd", "alter_using", - "alter_generic_option_elem", "alter_table_cmds", "alter_generic_options", - "opt_set_data", "TransactionStmt", "opt_transaction", "RenameStmt", - "opt_column", "PrepareStmt", "prep_type_clause", "PreparableStmt", - "VacuumStmt", "vacuum_option_elem", "opt_full", "vacuum_option_list", - "opt_freeze", "IndexStmt", "access_method", "access_method_clause", - "opt_concurrently", "opt_index_name", "opt_reloptions", "opt_unique", - "ExportStmt", "ImportStmt", "DeleteStmt", "relation_expr_opt_alias", - "where_or_current_clause", "using_clause", "ViewStmt", - "opt_check_option", "VariableSetStmt", "set_rest", "generic_set", - "var_value", "zone_value", "var_list", "CheckPointStmt", "LoadStmt", - "file_name", "CreateSeqStmt", "OptSeqOptList", "CreateFunctionStmt", - "macro_alias", "param_list", "AlterObjectSchemaStmt", "UpdateStmt", - "InsertStmt", "insert_rest", "insert_target", "opt_conf_expr", - "opt_with_clause", "insert_column_item", "set_clause", "opt_on_conflict", - "index_elem", "returning_clause", "override_kind", "set_target_list", - "opt_collate", "opt_class", "insert_column_list", "set_clause_list", - "set_clause_list_opt_comma", "index_params", "set_target", "AnalyzeStmt", - "unreserved_keyword", "col_name_keyword", "func_name_keyword", - "type_name_keyword", "other_keyword", "type_func_name_keyword", - "reserved_keyword", YY_NULLPTR + "TableLikeClause", "OptTemp", "generated_when", "CreateAsStmt", + "opt_with_data", "create_as_target", "CreateFunctionStmt", "macro_alias", + "param_list", "CreateSchemaStmt", "OptSchemaEltList", "schema_stmt", + "CreateSeqStmt", "OptSeqOptList", "CreateTypeStmt", "DeallocateStmt", + "DeleteStmt", "relation_expr_opt_alias", "where_or_current_clause", + "using_clause", "DropStmt", "drop_type_any_name", "drop_type_name", + "any_name_list", "opt_drop_behavior", "drop_type_name_on_any_name", + "type_name_list", "ExecuteStmt", "execute_param_clause", "ExplainStmt", + "opt_verbose", "explain_option_arg", "ExplainableStmt", + "NonReservedWord", "NonReservedWord_or_Sconst", "explain_option_list", + "analyze_keyword", "opt_boolean_or_string", "explain_option_elem", + "explain_option_name", "ExportStmt", "ImportStmt", "IndexStmt", + "access_method", "access_method_clause", "opt_concurrently", + "opt_index_name", "opt_reloptions", "opt_unique", "InsertStmt", + "insert_rest", "insert_target", "opt_conf_expr", "opt_with_clause", + "insert_column_item", "set_clause", "opt_on_conflict", "index_elem", + "returning_clause", "override_kind", "set_target_list", "opt_collate", + "opt_class", "insert_column_list", "set_clause_list", + "set_clause_list_opt_comma", "index_params", "set_target", "LoadStmt", + "file_name", "PragmaStmt", "PrepareStmt", "prep_type_clause", + "PreparableStmt", "RenameStmt", "opt_column", "SelectStmt", + "select_with_parens", "select_no_parens", "select_clause", + "simple_select", "with_clause", "cte_list", "common_table_expr", + "into_clause", "OptTempTableName", "opt_table", "all_or_distinct", + "distinct_clause", "opt_all_clause", "opt_ignore_nulls", + "opt_sort_clause", "sort_clause", "sortby_list", "sortby", + "opt_asc_desc", "opt_nulls_order", "select_limit", "opt_select_limit", + "limit_clause", "offset_clause", "sample_count", "sample_clause", + "opt_sample_func", "tablesample_entry", "tablesample_clause", + "opt_tablesample_clause", "opt_repeatable_clause", "select_limit_value", + "select_offset_value", "select_fetch_first_value", "I_or_F_const", + "row_or_rows", "first_or_next", "group_clause", "group_by_list", + "group_by_list_opt_comma", "group_by_item", "empty_grouping_set", + "rollup_clause", "cube_clause", "grouping_sets_clause", + "grouping_or_grouping_id", "having_clause", "qualify_clause", + "for_locking_clause", "opt_for_locking_clause", "for_locking_items", + "for_locking_item", "for_locking_strength", "locked_rels_list", + "opt_nowait_or_skip", "values_clause", "values_clause_opt_comma", + "from_clause", "from_list", "from_list_opt_comma", "table_ref", + "joined_table", "alias_clause", "opt_alias_clause", "func_alias_clause", + "join_type", "join_outer", "join_qual", "relation_expr", "func_table", + "rowsfrom_item", "rowsfrom_list", "opt_col_def_list", "opt_ordinality", + "where_clause", "TableFuncElementList", "TableFuncElement", + "opt_collate_clause", "colid_type_list", "RowOrStruct", "opt_Typename", + "Typename", "opt_array_bounds", "SimpleTypename", "ConstTypename", + "GenericType", "opt_type_modifiers", "Numeric", "opt_float", "Bit", + "ConstBit", "BitWithLength", "BitWithoutLength", "Character", + "ConstCharacter", "CharacterWithLength", "CharacterWithoutLength", + "character", "opt_varying", "ConstDatetime", "ConstInterval", + "opt_timezone", "year_keyword", "month_keyword", "day_keyword", + "hour_keyword", "minute_keyword", "second_keyword", + "millisecond_keyword", "microsecond_keyword", "opt_interval", "a_expr", + "b_expr", "c_expr", "func_application", "func_expr", + "func_expr_windowless", "func_expr_common_subexpr", + "within_group_clause", "filter_clause", "export_clause", "window_clause", + "window_definition_list", "window_definition", "over_clause", + "window_specification", "opt_existing_window_name", + "opt_partition_clause", "opt_frame_clause", "frame_extent", + "frame_bound", "qualified_row", "row", "dict_arg", "dict_arguments", + "dict_arguments_opt_comma", "sub_type", "all_Op", "MathOp", "qual_Op", + "qual_all_Op", "subquery_Op", "any_operator", "expr_list", + "expr_list_opt_comma", "opt_expr_list_opt_comma", "func_arg_list", + "func_arg_expr", "type_list", "extract_list", "extract_arg", + "overlay_list", "overlay_placing", "position_list", "substr_list", + "substr_from", "substr_for", "trim_list", "in_expr", "case_expr", + "when_clause_list", "when_clause", "case_default", "case_arg", + "columnref", "indirection_el", "opt_slice_bound", "indirection", + "opt_indirection", "opt_asymmetric", "opt_target_list_opt_comma", + "target_list", "target_list_opt_comma", "target_el", "except_list", + "opt_except_list", "replace_list_el", "replace_list", + "replace_list_opt_comma", "opt_replace_list", "qualified_name_list", + "qualified_name", "name_list", "name_list_opt_comma", "name", + "attr_name", "func_name", "AexprConst", "Iconst", "Sconst", "ColId", + "ColIdOrString", "type_function_name", "function_name_token", + "type_name_token", "any_name", "attrs", "opt_name_list", "param_name", + "ColLabel", "ColLabelOrString", "TransactionStmt", "opt_transaction", + "UpdateStmt", "VacuumStmt", "vacuum_option_elem", "opt_full", + "vacuum_option_list", "opt_freeze", "VariableResetStmt", "generic_reset", + "reset_rest", "VariableSetStmt", "set_rest", "generic_set", "var_value", + "zone_value", "var_list", "VariableShowStmt", "show_or_describe", + "var_name", "ViewStmt", "opt_check_option", YY_NULLPTR }; -#endif -# ifdef YYPRINT -/* YYTOKNUM[NUM] -- (External) token number corresponding to the - (internal) symbol number NUM (which must be that of a token). */ -static const yytype_int16 yytoknum[] = +static const char * +yysymbol_name (yysymbol_kind_t yysymbol) { - 0, 256, 257, 258, 259, 260, 261, 262, 263, 264, - 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, - 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, - 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, - 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, - 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, - 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, - 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, - 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, - 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, - 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, - 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, - 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, - 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, - 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, - 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, - 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, - 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, - 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, - 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, - 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, - 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, - 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, - 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, - 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, - 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, - 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, - 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, - 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, - 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, - 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, - 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, - 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, - 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, - 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, - 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, - 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, - 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, - 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, - 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, - 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, - 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, - 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, - 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, - 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, - 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, - 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, - 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, - 735, 736, 737, 738, 739, 740, 60, 62, 61, 741, - 43, 45, 42, 47, 37, 94, 742, 91, 93, 40, - 41, 46, 59, 44, 123, 125, 35, 63, 58 -}; -# endif + return yytname[yysymbol]; +} +#endif -#define YYPACT_NINF (-2533) +#define YYPACT_NINF (-2709) #define yypact_value_is_default(Yyn) \ ((Yyn) == YYPACT_NINF) @@ -1722,337 +2022,337 @@ static const yytype_int16 yytoknum[] = #define yytable_value_is_error(Yyn) \ ((Yyn) == YYTABLE_NINF) - /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing - STATE-NUM. */ +/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing + STATE-NUM. */ static const int yypact[] = { - 5007, -66, 819, -2533, -2533, -66, 37576, -2533, -66, 81, - 1614, 39496, -2533, 6521, -66, 42376, 56218, 269, 213, 360, - 42856, 42856, 50506, 42376, 43336, -66, 295, 50986, -2533, -66, - 25499, 39976, 7, 9, 43816, 42376, 1145, 474, 42, -2533, - -2533, -2533, -2533, -2533, 132, -2533, 28, 150, 926, 75, - -2533, -2533, -2533, -2533, 25019, -2533, -2533, -2533, -2533, -2533, - -2533, 163, -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, - -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, - -2533, -2533, 38, -2533, -2533, -2533, -2533, 44296, 42376, 44776, - 40456, 45256, -2533, 136, -2533, -2533, -2533, -2533, -2533, -2533, - -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, - -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, - -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, - -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, - -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, - -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, - -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, - -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, - -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, - -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, - -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, - -2533, -2533, -2533, -2533, -2533, -2533, 139, -2533, -2533, -2533, - -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, - -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, - -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, - -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, - -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, - -2533, -2533, -2533, -2533, -2533, 178, -2533, -2533, -2533, -2533, - -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, - -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, - -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, - -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, - -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, - -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, - -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, - -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, - -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, - -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, - -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, - -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, - -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, - -2533, -2533, -2533, -2533, 182, -2533, -2533, -2533, -2533, -2533, - -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, - -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, - -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, - -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, - -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, - -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, - -2533, -2533, -2533, -2533, -2533, 196, -165, -2533, 184, -2533, - -2533, -2533, -2533, 153, 1145, 42376, 619, 755, 334, 51466, - -2533, -2533, 50506, -2533, -2533, 722, 587, -2533, -2533, -2533, - -2533, -2533, 40936, -2533, -2533, -2533, -2533, -2533, 609, -2533, - -2533, 501, -2533, 67, -2533, -2533, 521, 487, -2533, -2533, - -2533, -2533, -2533, -2533, -2533, -2533, 600, -2533, 45736, -2533, - 51946, 46201, 46681, -2533, 479, 56219, 23579, -2533, -2533, -2533, - -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, - 163, -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, - -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, 1007, - -2533, 42856, 1007, -2533, -2533, -2533, -2533, -2533, 338, 591, - -2533, 679, 883, -2533, -2533, -2533, 682, -2533, -2533, 900, - 10615, 10615, 52426, 52426, 1007, 52426, 709, -7, -2533, -2533, - -2533, 9, -2533, 926, 682, 25980, -2533, 703, -165, -2533, - -2533, 233, 1032, 14655, 42376, 731, -2533, 753, 731, 781, - 798, -2533, 5007, 327, 327, 1238, 327, 1092, 1153, -2533, - 1366, -2533, 790, -2533, 827, 1096, -2533, 682, -2533, 42376, - 1159, 1122, 39976, 1173, 816, 1012, 1237, 4066, 1242, 1102, - 1246, 1154, 7080, 14655, 35176, -2533, -165, -2533, -2533, -2533, - -2533, 922, 941, -2533, -2533, -2533, -2533, 595, 1156, -2533, - 933, 1411, -2533, -2533, 1001, 47161, 47641, 42376, 42376, 1382, - -2533, -2533, -2533, -2533, 1011, -2533, -2533, -2533, 176, -2533, - -2533, -2533, -2533, 1034, -2533, 1034, 1034, -2533, -2533, -2533, - -2533, -2533, -2533, -2533, -2533, 1005, 1005, 1182, 1049, -2533, - -2533, -2533, 1359, -2533, -2533, -2533, -2533, -2533, -2533, -2533, - -2533, -2533, -2533, 1058, 532, -2533, 1034, -2533, 1005, -2533, - -2533, -2533, -2533, -2533, -2533, 55291, -2533, -2533, -2533, -2533, - -128, 465, -2533, -2533, -2533, -2533, 1064, -2533, 1542, -2533, - -2533, -2533, -2533, -2533, -2533, -2533, -2533, 1085, -2533, 3945, - 1005, 47, -2533, -2533, 1434, -2533, 109, 1436, 186, -2533, - 1439, 1313, 14655, -2533, -2533, -2533, -2533, -2533, -2533, -2533, - -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, - -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, - -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, - -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, - -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, - -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, - -2533, -2533, -2533, -2533, -2533, 9, -2533, -2533, -2533, -2533, - -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, - 281, -2533, -2533, 32684, -2533, -2533, 56219, 1105, -2533, -2533, - 32684, 15160, 48121, 1576, -2533, 1401, 50506, 1137, -2533, -2533, - -2533, -2533, -2533, -2533, 771, 1635, 116, 1637, 14655, 1147, - 116, 116, 1155, 1486, 187, 189, 203, 205, 1171, 1174, - 208, 209, 209, -2533, 1175, 1176, -2533, 214, 1177, 1178, - 1667, 1677, 137, 1186, 1187, 532, 116, 14655, -2533, 1188, - 209, 1190, 1197, 1198, 1695, 1205, 250, 1705, 1216, 104, - 123, 1217, 1218, -2533, 1219, 251, 252, 14655, 14655, 14655, - 1575, 14655, 8090, 42376, 1715, -2533, -165, 1228, 1007, -2533, - -2533, -2533, -2533, -2533, -2533, -2533, -2533, 175, 6036, -2533, - 1269, -2533, -2533, -2533, 1437, 14655, -2533, -2533, 1229, 1517, - -2533, 253, -2533, -2533, -2533, -155, 1517, -2533, -2533, -2533, - -2533, -2533, 283, 1639, 31724, 32204, 42376, -2533, -2533, -165, - -2533, -2533, -2533, -2533, -2533, -2533, 452, -2533, 163, 34071, - 1239, 1240, -165, 731, 42376, 42376, 1703, -2533, -2533, -2533, - -2533, -2533, 926, 926, 9605, 926, 143, 1100, 11120, 15665, - 1577, 1462, 157, 133, 1582, -2533, 1465, 1092, 1153, 14655, - -2533, 1523, 753, 39976, 42376, 52906, 1374, 42376, 38056, 789, - 966, 1258, 1343, 1263, 70, 1675, -2533, 1262, -2533, 1350, - 42376, 55291, 272, -2533, 1712, 272, 272, 170, 1716, 1357, - 324, 1514, 562, 430, 2121, -2533, 1262, 39976, 146, 564, - 1262, 42376, 1364, 620, 1262, 121, 15160, 348, 697, 352, - 1056, 1131, 126, 140, 154, 172, 177, 15160, 1209, 1233, - 188, 1248, 1458, 1502, 1509, 1527, 1529, 1541, 1552, 191, - 1555, 1557, 1561, 1581, 1583, 193, 1595, 198, 1603, 227, - 215, 15160, 1607, 1284, -2533, 34071, -25, -2533, -2533, 1609, - 219, -2533, 30286, 1278, -2533, -2533, -2533, -2533, -2533, -2533, - -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, - -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, - -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, - -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, - -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, - -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, - -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, - -2533, -2533, -2533, -2533, 1370, 50506, 1327, 656, 1638, 1697, - 35176, 1288, 48121, 42376, 1521, 2121, 1524, 1301, 1764, 941, - 1304, -2533, 53386, -2533, -2533, -2533, -2533, -2533, -2533, 1309, - -2533, -2533, 14655, -2533, -2533, -2533, 1798, -2533, 48121, 48121, - 1034, 1034, -2533, -2533, 1780, 1404, 1407, 1798, -2533, 1798, - -2533, 50506, 1328, 1329, 1798, -2533, -2533, -2533, -2533, -2533, - -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, - -2533, 1798, 1413, -2533, 1414, 1415, 1416, -2533, -2533, -2533, - -2533, -2533, -2533, -2533, 48121, -2533, 50506, 50506, -2533, 42376, - 42376, -2533, 42376, 50506, 1335, 56219, 37096, -2533, -2533, -2533, - -2533, 1068, 1097, -2533, -2533, -2533, -2533, -2533, -2533, -2533, - -2533, -2533, 35176, -2533, 2077, -2533, -2533, -2533, 1325, 584, - -2533, 613, 1145, -2533, -2533, 14655, -165, 14655, -2533, 34071, - 1383, 14655, 14655, 1344, 1798, 1798, -2533, 1438, 1798, 1798, - 5988, 14655, 28863, 14655, 19200, 11625, 14655, 14655, 8595, 14655, - 5988, 1831, 1831, 26940, -2533, 1503, -2533, 1348, 1619, 6072, - 1347, -2533, 1352, 1353, 1341, -2533, -165, -165, 14655, -2533, - 14655, 3099, 3099, -2533, 202, 48121, 14655, 14655, 14655, 14655, - 14655, 14655, 14655, 34696, 1442, 124, 50506, 14655, 14655, 1363, - 877, -2533, 14655, 1574, -2533, 1365, 14655, 1448, 996, 14655, - 14655, 14655, 14655, 14655, 14655, 14655, 14655, 14655, -2533, -2533, - 20701, 206, 1688, 1707, -165, -45, 502, 10615, 41416, 1700, - 7080, -2533, -165, 30764, 122, 1700, -2533, -2533, -2533, 254, - -2533, -2533, -2533, -2533, -2533, 1325, -2533, 1325, 1372, 42376, - 233, 39016, 14655, -2533, -2533, 1371, 1375, 1377, 1662, -2533, - 257, 257, 1376, -2533, 33161, 1662, -2533, -2533, 19691, 1504, - 1658, 1596, -2533, -2533, 1578, 1580, -2533, 1389, 34134, 16170, - 16170, -2533, 1274, 34071, 1299, -2533, -2533, -2533, -2533, -2533, - -2533, 131, -2533, 42376, 418, 1577, 133, 1385, -2533, -2533, - 1454, 1862, 44, 50506, -2533, 27420, 1234, 1403, 53866, 42376, - 1680, 1641, 1685, -104, 48121, -2533, -2533, -2533, -2533, 42376, - 50506, 48586, 54346, 35656, 42376, 35176, -2533, -2533, -2533, -2533, - 42376, 946, 42376, 6647, -2533, -2533, -2533, 272, -2533, -2533, - -2533, -2533, -2533, 50506, 42376, -2533, -2533, 272, 50506, 42376, - 272, -2533, 1282, 42376, 42376, 42376, 42376, 1338, 42376, 42376, - -24, -24, 1618, -2533, 12130, 83, -2533, 14655, 14655, -2533, - 14655, 1591, -2533, -2533, 623, 1640, 106, 1471, 42376, 42376, - 50506, 1291, -2533, -2533, -2533, -2533, -2533, -2533, 35176, -2533, - 1428, 1779, 2121, -2533, 1787, 38536, 847, 691, 1480, 12635, - 1894, 1671, -2533, -2533, 1657, 14655, 1445, 1446, 47, 718, - -2533, -2533, 1450, 1329, 1466, 1469, 1452, 1455, 748, 48121, - 1798, 107, 1456, 1459, 1388, 1346, 534, 1294, -2533, 109, - -2533, 186, -2533, 1673, 165, -2533, -2533, -2533, -2533, -2533, - -2533, -2533, -2533, 776, 22619, -2533, -2533, 1916, 1007, 1916, - 285, -2533, -2533, 1916, -2533, 1916, -2533, 32684, -2533, 15160, - -2533, 48121, -2533, -2533, -2533, -2533, -2533, 1461, -2533, 1464, - 14655, 39, -2533, 33223, 1463, 14655, 1467, 1472, -2533, -2533, - -2533, -2533, -2533, -2533, -2533, -2533, -2533, 1475, 1793, -2533, - 1477, 1478, 5240, -2533, -2533, -2533, -2533, -2533, -2533, -2533, - -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, 1484, 1468, - 33259, 1485, 19200, 19200, 8090, 2851, -2533, 19200, 1491, -2533, - 1492, 33174, 1493, 1494, 33304, 13140, 14655, 13140, 13140, 33713, - -2533, 1495, 33792, 42376, -2533, 16675, -2533, -2533, -2533, 14655, - 42376, -2533, 14655, 1497, 6316, -2533, -2533, -2533, 873, 5483, - 502, 4508, 4508, 4508, 5988, -2533, -2533, -2533, 1489, -2533, - 19200, 19200, -2533, 5218, 1694, 8090, -2533, -2533, 1809, -2533, - 256, -2533, 1500, -2533, -2533, 2546, -2533, 28863, 34147, 14655, - 128, -2533, 14655, 1363, 14655, 1584, 4508, 4508, 4508, 274, - 274, 284, 284, 284, 873, 502, -2533, -2533, -2533, 1501, - 1507, 1510, 1855, 1205, 14655, -2533, -2533, 870, 934, 42376, - 2646, 3375, 4427, -2533, -2533, 23099, 1553, -25, 1575, 1553, - 1798, 3099, -2533, 753, -2533, -2533, -2533, 34071, 42376, -2533, - 1145, -2533, -2533, 1528, 1528, 14655, 995, 1528, 1725, 1726, - 1101, 1101, 1274, 1728, -2533, -2533, 1588, -2533, -2533, -2533, - 14655, 9100, 1305, -2533, 1308, -2533, -2533, -2533, -2533, 1516, - -2533, -2533, 1777, -2533, -2533, -2533, -2533, 23099, 1563, 50506, - 1585, -80, 25499, -2533, 1735, -2533, 50506, -2533, -2533, 1525, - 1700, 1543, 1616, 1262, 14655, 1765, -2533, 105, 1537, 1887, - -90, 1841, 50506, -2533, 246, 292, -2533, 622, 1891, 165, - 1893, 165, 35176, 35176, 35176, -2533, -2533, 1007, 787, -2533, - -2533, 380, 796, -2533, -2533, -2533, -2533, 1629, 644, 2121, - 1262, -2533, -2533, -2533, -2533, -2533, -2533, -2533, 216, 714, - 1262, 1636, -2533, 1645, -2533, 1659, 807, 1262, -2533, -2533, - 83, 83, 83, 15160, -2533, 1775, 1776, 1579, 34071, 34071, - 34071, 1586, -2533, 153, -2533, 50506, -2533, -2533, -2533, 1591, - 42376, 1590, 2042, 941, -2533, 1738, 1099, -2533, 50506, 42376, - 42376, 42376, 21190, -2533, -2533, -2533, 1597, 1592, -2533, -23, - 1800, 1811, 42376, 1642, 1263, 2061, -2533, 834, 13645, 1950, - 42376, 1605, -2533, -2533, -2533, -2533, 1798, -2533, -2533, 433, - 433, -2533, 50506, -2533, 1610, -2533, 1611, -2533, -2533, -2533, - -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, 50506, -2533, - -2533, 35176, -2533, 36616, -2533, -2533, -2533, -2533, 1007, -2533, - 1007, 1830, 50506, 31244, 1007, 1007, -2533, -2533, -2533, -2533, - 33821, 14655, -2533, 1972, 48121, -2533, 6566, -2533, -2533, -2533, - 14655, -2533, -2533, 14655, -2533, 28863, 14655, 1953, -2533, 2110, - 2110, 6072, 48121, 19200, 19200, 19200, 19200, 19200, 675, 1190, - 19200, 19200, 19200, 19200, 19200, 19200, 19200, 19200, 19200, 20196, - 337, -2533, -2533, 14655, 14655, 1959, 1953, 14655, -2533, 48121, - 1627, -2533, 1628, 1630, 14655, -2533, 48121, 1631, 8090, 33900, - -2533, -165, 29351, -2533, 34071, -2533, 3099, 14655, 3198, 3253, - 14655, 1633, 14655, 1963, -2533, -2533, 1643, -2533, -2533, 48121, - 14655, 1648, 2675, 19200, 19200, 4345, -2533, 5155, 14655, 8090, - -2533, 1618, 14150, -2533, 1838, 1739, 1739, 1739, 1739, -2533, - -2533, 42376, 42376, 42376, 24059, 1970, 22136, 49066, 49066, 1646, - -2533, 1405, -2533, 49066, 49546, -2533, 1669, -2533, -165, 14655, - 1978, 83, 1503, 1978, 1660, -2533, -2533, 1664, 145, -2533, - -2533, -2533, 1663, -2533, 1528, -2533, -2533, -2533, 1877, -2533, - -2533, -2533, 42376, -2533, -2533, 14655, 1816, -2533, -2533, -2533, - -2533, 1721, -2533, -2533, 838, 2082, 1816, 858, -2533, -165, - 27420, 1563, 14655, 42376, 29380, 2018, -2533, 50506, 50506, 50506, - -2533, 50506, 1668, 1672, 730, 1681, 992, -2533, 1819, 730, - 2001, 180, 1263, 324, 4105, 472, -2533, -2533, -2533, 1755, - 42376, -2533, 50506, -2533, -2533, -2533, -2533, -2533, -2533, -2533, - 35656, 28382, 35176, -2533, 35176, 42376, 42376, 42376, 42376, 42376, - 42376, 42376, 42376, 42376, 42376, 1690, 1691, 1692, 1618, -2533, - -2533, -2533, -2533, 430, -2533, 153, 1696, 38536, 1145, 1480, - 1697, 595, 50026, 859, 2121, 1698, 2155, -2533, 847, 38536, - -2533, -2533, -2533, 2113, -2533, 479, 192, -2533, -2533, 1145, - -2533, 1145, 34071, 50506, 1757, -2533, 1329, 1701, -2533, -2533, - 1329, 48121, -2533, -2533, 165, -2533, 864, -2533, -2533, -2533, - -2533, 50506, 1702, -2533, 1702, -2533, -2533, 14655, 34071, -2533, - 1704, -2533, 34071, 29416, -2533, 34071, 1959, -2533, 2110, 965, - 965, 965, 2753, 2030, 171, 1709, 965, 965, 965, 361, - 361, 102, 102, 102, 2110, 337, 34071, 34071, -2533, -2533, - 1706, -2533, -2533, -2533, -2533, 1710, -2533, 6223, -2533, 1708, - 1720, 50506, -2533, -2533, 312, 14655, 14655, 5218, -2533, 34221, - 14655, 48121, 875, 5218, 218, 14655, 3353, 3484, 14655, 14655, - 5204, 29445, 1723, 14655, 29543, 27900, -2533, 42376, 42376, 42376, - 42376, -2533, -2533, -2533, 49066, 49546, 1713, 21656, 49066, 1405, - 1724, 42376, -2533, 1807, 1717, 1807, 23099, 1999, 1929, -2533, - 23099, 1929, 902, 1929, 2005, 1807, 26460, -2533, 1807, 1729, - 1936, -2533, 772, 34071, 2175, 2048, 1733, -2533, 2048, 1007, - -2533, -2533, -2533, 28863, -2533, -2533, -2533, 34071, 10615, -2533, - 1145, -165, 716, 50506, -36, -2533, 1749, 50506, -2533, 1816, - 34071, -2533, -2533, 50506, 1743, -2533, 1745, 730, -2533, 50506, - 1785, -2533, 223, 2047, 46, -2533, 14655, -2533, 2133, 2213, - 1819, 1753, 50506, 42376, 19200, -2533, 482, 152, -2533, 2031, - 42376, 1785, 2174, -2533, -2533, -2533, 992, -2533, 2068, 1984, - -2533, 272, -2533, 14655, 992, 1986, 138, 50506, -2533, -2533, - 2118, -2533, 48121, 165, 165, -2533, 1763, 1766, 1768, 1769, - 1770, 1773, 1778, 1781, 1784, 1786, 1790, 1795, 1797, -2533, - 1799, 1802, 1806, 1808, 1813, 1815, 1818, 1820, 1058, 1821, - -2533, 1822, 1663, 1823, 1825, 1826, 1827, 54826, 1828, 1829, - 1832, 1833, 1834, 1835, 1068, 1097, -2533, -2533, -2533, 933, - -2533, -2533, -2533, 1836, -2533, 1824, -2533, -2533, -2533, 1848, - -2533, 1849, -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, - 83, 1105, 113, 50506, 1788, 1642, 2240, 683, 2014, 1839, - 1480, -2533, 38536, 857, 637, 1811, -2533, 245, 1642, -2533, - 2199, 1870, -2533, 2045, 50506, 1840, -2533, -2533, -2533, -2533, - 36616, 1702, 34071, -2533, -2533, -2533, 19200, 2170, 1844, 48121, - -2533, -2533, 14655, -2533, -2533, 5218, 5218, 34221, 899, -2533, - 5218, 14655, 14655, 5218, 5218, 14655, -2533, -2533, 29773, -2533, - 55756, -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, 36136, - 49066, 1846, 41896, -2533, -2533, 42376, -2533, 1405, 23099, -2533, - -2533, 700, -2533, 23099, 2124, -2533, 23099, -2533, 42376, 1850, - -2533, 42376, -2533, 10110, 14655, 1890, 1007, 1890, -2533, 1847, - 1852, -2533, -80, -2533, -2533, 2263, 24539, 2219, 14655, -2533, - -2533, 730, -2533, 2017, 1785, 1858, -2533, -2533, -2533, -2533, - -2533, -2533, 29877, -2533, 26, 14655, -2533, 794, 2753, -2533, - -2533, -2533, -2533, 1785, 941, -2533, 42376, 2323, 2211, -2533, - -2533, 34071, -2533, -2533, 1798, 1798, -2533, -2533, 2291, -2533, - -2533, -2533, -2533, 933, 357, 28382, 42376, 42376, 1867, -2533, - -2533, 430, 2246, 912, 847, -2533, 1145, 42376, 2222, 38536, - 2337, 1878, 42376, 1642, 931, 931, -2533, 2022, -2533, 2023, - -2533, -2533, 345, -2533, 42376, -2533, -2533, 24539, -2533, 3105, - 19200, 48121, 920, -2533, -2533, 5218, 5218, 5218, -2533, 2076, - -2533, -2533, 929, 2348, -2533, 42376, -37, 573, 1888, 1896, - -2533, -2533, 1889, -2533, 14655, 1897, -2533, -2533, 23099, 700, - 935, -2533, 48121, 42376, 936, 48121, -2533, 1898, -76, 1900, - -2533, 7585, 1904, -2533, -2533, -2533, -2533, -2533, -2533, 34071, - 34071, 50506, 2063, -2533, 2063, -2533, 10615, 1947, 42376, 14655, - 2333, 74, -2533, 947, -8, 34071, 42376, -2533, 35176, -2533, - 730, -70, 1910, 14655, 29939, 2136, -2533, -2533, 2166, -2533, - 2228, -2533, 50506, 1977, 533, 1995, -2533, -2533, -2533, -2533, - 1105, 1007, 1480, 1811, 1870, 1925, 42376, 1145, 847, 479, - -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, -2533, - -2533, -2533, -2533, 2357, 2137, 2359, 1757, 961, 3105, 967, - -2533, 2373, 1618, 1669, 36136, 1931, -2533, 1933, -2533, -2533, - -2533, -2533, -2533, 50506, 1108, -2533, 34071, 42376, -2533, -2533, - -2533, 42376, 2291, 999, -2533, 14655, 1935, 14655, -2533, 17180, - 1932, -2533, 2398, 14655, 1996, 1996, 1145, -2533, 30004, 50506, - 50506, 50506, 1553, 24539, -2533, 2062, 941, 730, 1954, 1003, - -2533, -2533, -2533, -2533, -2533, 2121, -2533, 30122, 2173, 507, - 2159, 1910, -2533, 14655, -2533, 2019, -2533, -2533, -2533, 2411, - -2533, -2533, 38536, 1952, 1870, 1811, 1642, 2162, -2533, 2163, - 1955, 1480, -2533, 14655, 446, -2533, -2533, 42376, -2533, 1009, - 1956, 1957, -2533, -2533, -2533, 1958, 17180, 1961, -2533, 50506, - 1960, 34071, 2102, -2533, -2533, -2533, 2333, -2533, -2533, 257, - 257, -2533, -2533, 27420, 2166, 28382, -2533, 35176, 2055, -70, - 2261, -2533, -2533, -2533, -2533, 49, 2177, -2533, 2178, -2533, - 34071, -2533, 1145, 38536, -2533, -2533, -2533, -2533, -2533, 24539, - 1553, 1493, 17685, 17685, 1967, 1021, -2533, 2461, 2128, -2533, - -2533, 1974, -2533, -2533, -2533, 41896, 50506, 1528, 1528, 1553, - 2159, -2533, -2533, -2533, -2533, -2533, 495, 495, 2350, -2533, - 2036, -2533, 1870, 1028, -2533, 18695, 2119, 151, 33210, -2533, - -2533, -2533, -2533, -2533, 1979, 1982, -2533, -2533, -2533, 257, - -2533, -2533, -2533, -2533, -2533, 2453, -2533, 194, -2533, -2533, - -2533, 1480, 2443, -2533, -2533, -2533, -2533, -2533, -2533, 2473, - 1528, 730, -2533, -2533, -2533, 1553, 18190, 1983, -2533, -2533, - -2533, -2533 + 3342, -106, 845, -2709, -2709, -106, 37732, -2709, -106, 63, + 1086, 39652, -2709, 3581, -106, 42532, 56374, 242, 267, 251, + 43012, 43012, 50662, 42532, 43492, -106, 292, 51142, -2709, -106, + 25567, 40132, 8, -105, 43972, 42532, 1044, 413, -68, -2709, + -2709, -2709, -2709, -2709, -2709, -2709, -2709, -2709, -2709, -2709, + -2709, -2709, -2709, -2709, -2709, -2709, -2709, -2709, 77, -2709, + -2709, -2709, -2709, 114, -2709, -2709, -2709, -2709, -2709, 130, + -2709, 195, 174, -74, 158, -2709, -2709, -2709, -2709, -2709, + -2709, -2709, 25087, -2709, -2709, -2709, -2709, 44452, 42532, 44932, + 40612, 45412, -2709, 113, -2709, -2709, -2709, -2709, -2709, -2709, + -2709, -2709, -2709, -2709, -2709, -2709, -2709, -2709, -2709, -2709, + -2709, -2709, -2709, -2709, -2709, -2709, -2709, -2709, -2709, -2709, + -2709, -2709, -2709, -2709, -2709, -2709, -2709, -2709, -2709, -2709, + -2709, -2709, -2709, -2709, -2709, -2709, -2709, -2709, -2709, -2709, + -2709, -2709, -2709, -2709, -2709, -2709, -2709, -2709, -2709, -2709, + -2709, -2709, -2709, -2709, -2709, -2709, -2709, -2709, -2709, -2709, + -2709, -2709, -2709, -2709, -2709, -2709, -2709, -2709, -2709, -2709, + -2709, -2709, -2709, -2709, -2709, -2709, -2709, -2709, -2709, -2709, + -2709, -2709, -2709, -2709, -2709, -2709, -2709, -2709, -2709, -2709, + -2709, -2709, -2709, -2709, -2709, -2709, -2709, -2709, -2709, -2709, + -2709, -2709, -2709, -2709, -2709, -2709, -2709, -2709, -2709, -2709, + -2709, -2709, -2709, -2709, -2709, -2709, 139, -2709, -2709, -2709, + -2709, -2709, -2709, -2709, -2709, -2709, -2709, -2709, -2709, -2709, + -2709, -2709, -2709, -2709, -2709, -2709, -2709, -2709, -2709, -2709, + -2709, -2709, -2709, -2709, -2709, -2709, -2709, -2709, -2709, -2709, + -2709, -2709, -2709, -2709, -2709, -2709, -2709, -2709, -2709, -2709, + -2709, -2709, -2709, -2709, -2709, -2709, -2709, -2709, -2709, -2709, + -2709, -2709, -2709, -2709, -2709, 185, -2709, -2709, -2709, -2709, + -2709, -2709, -2709, -2709, -2709, -2709, -2709, -2709, -2709, -2709, + -2709, -2709, -2709, -2709, -2709, -2709, -2709, -2709, -2709, -2709, + -2709, -2709, -2709, -2709, -2709, -2709, -2709, -2709, -2709, -2709, + -2709, -2709, -2709, -2709, -2709, -2709, -2709, -2709, -2709, -2709, + -2709, -2709, -2709, -2709, -2709, -2709, -2709, -2709, -2709, -2709, + -2709, -2709, -2709, -2709, -2709, -2709, -2709, -2709, -2709, -2709, + -2709, -2709, -2709, -2709, -2709, -2709, -2709, -2709, -2709, -2709, + -2709, -2709, -2709, -2709, -2709, -2709, -2709, -2709, -2709, -2709, + -2709, -2709, -2709, -2709, -2709, -2709, -2709, -2709, -2709, -2709, + -2709, -2709, -2709, -2709, -2709, -2709, -2709, -2709, -2709, -2709, + -2709, -2709, -2709, -2709, -2709, -2709, -2709, -2709, -2709, -2709, + -2709, -2709, -2709, -2709, -2709, -2709, -2709, -2709, -2709, -2709, + -2709, -2709, -2709, -2709, -2709, -2709, -2709, -2709, -2709, -2709, + -2709, -2709, -2709, -2709, 187, -2709, -2709, -2709, -2709, -2709, + -2709, -2709, -2709, -2709, -2709, -2709, -2709, -2709, -2709, -2709, + -2709, -2709, -2709, -2709, -2709, -2709, -2709, -2709, -2709, -2709, + -2709, -2709, -2709, -2709, -2709, -2709, -2709, -2709, -2709, -2709, + -2709, -2709, -2709, -2709, -2709, -2709, -2709, -2709, -2709, -2709, + -2709, -2709, -2709, -2709, -2709, -2709, -2709, -2709, -2709, -2709, + -2709, -2709, -2709, -2709, -2709, -2709, -2709, -2709, -2709, -2709, + -2709, -2709, -2709, -2709, 191, -2709, -2709, -2709, 189, 380, + -2709, -2709, -2709, 148, 1044, 42532, 544, 796, 354, 51622, + -2709, -2709, 50662, -2709, -2709, 922, 386, -2709, -2709, -2709, + -2709, -2709, 41092, -2709, -2709, -2709, -2709, -2709, 546, -2709, + -2709, 411, -2709, 154, -2709, -2709, 409, 445, -2709, -2709, + -2709, -2709, -2709, -2709, -2709, -2709, 474, -2709, 45892, -2709, + 52102, 46357, 46837, -2709, 414, 56375, 23647, -2709, -2709, -2709, + -2709, -2709, -2709, -2709, -2709, -2709, -2709, -2709, -2709, -2709, + -2709, -2709, -2709, -2709, 77, -2709, -2709, -2709, -2709, -2709, + -2709, -2709, -2709, -2709, -2709, -2709, -2709, -2709, -2709, 914, + -2709, 43012, 914, -2709, -2709, -2709, -2709, -2709, 462, 476, + -2709, 517, 764, -2709, -2709, -2709, 514, -2709, -2709, 737, + 10683, 10683, 52582, 52582, 914, 52582, 559, -2709, -2709, 1, + -2709, -105, -2709, -74, 514, 26048, -2709, 541, 380, -2709, + -2709, 137, 898, 14723, 42532, 557, -2709, 613, 557, 618, + 632, -2709, 3342, -2709, 42532, 972, 932, 40132, 873, 873, + 1108, 873, 729, 962, -2709, 1647, -2709, 692, -2709, 767, + 998, -2709, 514, 1112, 234, 929, 1124, 1529, 1142, 810, + 1167, 811, 7148, 14723, 35332, -2709, 380, -2709, -2709, -2709, + -2709, 827, 857, -2709, -2709, -2709, -2709, 588, 1060, -2709, + 843, 1324, -2709, -2709, 936, 47317, 47797, 42532, 42532, 1318, + -2709, -2709, -2709, -2709, 958, -2709, -2709, -2709, 390, -2709, + -2709, -2709, -2709, 979, -2709, 979, 979, -2709, -2709, -2709, + -2709, -2709, -2709, -2709, -2709, 952, 952, 1117, 959, -2709, + -2709, -2709, 1312, -2709, -2709, -2709, -2709, -2709, -2709, -2709, + -2709, -2709, -2709, 973, 1027, -2709, 979, -2709, 952, -2709, + -2709, -2709, -2709, -2709, -2709, 55447, -2709, -2709, -2709, -2709, + 555, 726, -2709, -2709, -2709, -2709, -2709, -2709, 72, 983, + -2709, 1406, -2709, -2709, -2709, -2709, -2709, -2709, -2709, -2709, + 1013, -2709, 3329, 952, 1345, 78, -2709, 1350, 90, -2709, + 1364, 1191, 14723, -2709, -2709, -2709, -2709, -2709, -2709, -2709, + -2709, -2709, -2709, -2709, -2709, -2709, -2709, -2709, -2709, -2709, + -2709, -2709, -2709, -2709, -2709, -2709, -2709, -2709, -2709, -2709, + -2709, -2709, -2709, -2709, -2709, -2709, -2709, -2709, -2709, -2709, + -2709, -2709, -2709, -2709, -2709, -2709, -2709, -2709, -2709, -2709, + -2709, -2709, -2709, -2709, -2709, -2709, -2709, -2709, -2709, -2709, + -2709, -2709, -2709, -2709, -2709, -2709, -2709, -2709, -2709, -2709, + -2709, -2709, -2709, -2709, -2709, -105, -2709, -2709, -2709, -2709, + -2709, -2709, -2709, -2709, -2709, -2709, -2709, -2709, -2709, -2709, + -2709, -2709, 549, -2709, -2709, 32752, 56375, 1058, -2709, -2709, + 32752, 15228, 48277, 1525, -2709, 1341, 50662, 1078, -2709, -2709, + -2709, -2709, -2709, -2709, 121, 1575, 200, 1579, 14723, 1089, + 200, 200, 1093, 1432, 201, 203, 204, 207, 1097, 1101, + 208, 209, 209, -2709, 1103, 1114, -2709, 211, 1126, 1136, + 1645, 1660, 150, 1153, 1172, 1027, 200, 14723, -2709, 1182, + 209, 1185, 1189, 1210, 1705, 1213, 213, 1710, 1217, 116, + 140, 1218, 1219, -2709, 1225, 217, 226, 14723, 14723, 14723, + 1583, 14723, 8158, 42532, 1716, -2709, 380, 1228, 914, -2709, + -2709, -2709, -2709, -2709, -2709, -2709, -2709, 156, 5519, -2709, + 1270, -2709, -2709, -2709, 1437, 14723, -2709, -2709, 1234, 1530, + -2709, 250, -2709, -2709, -2709, 570, 1530, -2709, -2709, -2709, + -2709, -2709, 276, 1654, 31792, 32272, 42532, -2709, -2709, 380, + -2709, -2709, -2709, -2709, -2709, -2709, 682, -2709, 77, 34139, + 1243, 1251, 380, 557, 42532, 42532, 1718, -2709, -2709, -2709, + 613, 40132, 42532, 1381, 53062, -2709, -2709, -74, -74, 9673, + -74, 157, 731, 11188, 15733, 1594, 1478, 673, 188, 1597, + -2709, 1485, 729, 962, 14723, -2709, 1535, 42532, 38212, 905, + 920, 1271, 1352, 1273, 531, 1686, -2709, 1272, -2709, 1360, + 42532, 55447, 278, -2709, 1724, 278, 278, 232, 1725, 1366, + 313, 1522, 39, -86, 2874, -2709, 1272, 40132, 152, 659, + 1272, 42532, 1369, 672, 1272, 134, 15228, 1291, 1355, 284, + 1363, 1380, 138, 144, 149, 155, 168, 15228, 1402, 1474, + 170, 1494, 1577, 1581, 1591, 1595, 1598, 1602, 1605, 173, + 1608, 1615, 1619, 1626, 1628, 180, 1632, 184, 1634, 163, + 186, 15228, 1643, 1289, -2709, 190, -2709, 34139, -35, -2709, + -2709, 1646, 30354, 1282, -2709, -2709, -2709, -2709, -2709, -2709, + -2709, -2709, -2709, -2709, -2709, -2709, -2709, -2709, -2709, -2709, + -2709, -2709, -2709, -2709, -2709, -2709, -2709, -2709, -2709, -2709, + -2709, -2709, -2709, -2709, -2709, -2709, -2709, -2709, -2709, -2709, + -2709, -2709, -2709, -2709, -2709, -2709, -2709, -2709, -2709, -2709, + -2709, -2709, -2709, -2709, -2709, -2709, -2709, -2709, -2709, -2709, + -2709, -2709, -2709, -2709, -2709, -2709, -2709, -2709, -2709, -2709, + -2709, -2709, -2709, -2709, -2709, -2709, -2709, -2709, -2709, -2709, + -2709, -2709, -2709, -2709, 1374, 50662, 1331, -22, 1641, 1700, + 35332, 1299, 48277, 42532, 1532, 2874, 1533, 1768, 1308, 857, + 1311, -2709, 53542, -2709, -2709, -2709, -2709, -2709, -2709, 1315, + -2709, -2709, 14723, -2709, -2709, -2709, 1802, -2709, 48277, 48277, + 979, 979, -2709, -2709, 1779, 1403, 1404, 1802, -2709, 1802, + -2709, -2709, -2709, 48277, -2709, 50662, 1327, 1329, 1802, -2709, + -2709, -2709, -2709, -2709, -2709, -2709, -2709, -2709, -2709, -2709, + -2709, -2709, -2709, -2709, -2709, 1802, 1400, -2709, 1411, 1414, + 1416, -2709, -2709, -2709, -2709, -2709, 50662, 50662, -2709, 42532, + 42532, -2709, 42532, 50662, 1323, 56375, 37252, -2709, -2709, -2709, + -2709, 970, 1054, -2709, -2709, -2709, -2709, -2709, -2709, -2709, + -2709, -2709, 35332, -2709, 1706, -2709, -2709, -2709, 1332, 701, + -2709, 745, 1044, -2709, -2709, 14723, 380, 14723, -2709, 34139, + 1377, 14723, 14723, 1337, 1802, 1802, -2709, 3769, 1802, 1802, + 5559, 14723, 28931, 14723, 19268, 11693, 14723, 14723, 8663, 14723, + 5559, 1827, 1827, 27008, -2709, 1495, -2709, 1342, 1106, 6138, + 1343, -2709, 1346, 1336, 1344, -2709, 380, 380, 14723, -2709, + 14723, 3564, 3564, -2709, 197, 48277, 14723, 14723, 14723, 14723, + 14723, 14723, 14723, 34852, 1433, 181, 50662, 14723, 14723, 1351, + 1041, -2709, 14723, 1568, -2709, 1354, 14723, 1438, 243, 14723, + 14723, 14723, 14723, 14723, 14723, 14723, 14723, 14723, -2709, -2709, + 20769, 237, 1674, 1694, 380, 21, 355, 10683, 41572, 1695, + 7148, -2709, 380, 30832, 103, 1695, -2709, -2709, -2709, -2709, + 263, -2709, -2709, -2709, -2709, 1332, -2709, 1332, 1357, 42532, + 137, 39172, 14723, -2709, -2709, 1365, 1367, 1370, -2709, 1431, + 666, 1841, 27488, 50662, -2709, 1665, -2709, 290, 290, 1378, + -2709, 33229, 1665, -2709, -2709, 19759, 1504, 1661, 1596, -2709, + -2709, 1578, 1580, -2709, 1383, 34202, 16238, 16238, -2709, 1304, + 34139, 1320, -2709, -2709, -2709, -2709, -2709, -2709, 593, -2709, + 42532, 29, 1594, 188, 1388, -2709, 826, 1391, 54022, 42532, + 1668, 1621, 1671, 379, -2709, -2709, -2709, 48277, -2709, 42532, + 50662, 48742, 54502, 35812, 42532, 35332, -2709, -2709, -2709, -2709, + 42532, 927, 42532, 6637, -2709, -2709, -2709, 278, -2709, -2709, + -2709, -2709, -2709, 50662, 42532, -2709, -2709, 278, 50662, 42532, + 278, -2709, 833, 42532, 42532, 42532, 42532, 834, 42532, 42532, + 32, 32, 1609, -2709, 12198, 153, -2709, 14723, 14723, -2709, + 14723, 1582, -2709, 784, -2709, 1623, 160, 1456, 42532, 42532, + 50662, 1022, -2709, -2709, -2709, -2709, -2709, -2709, 35332, -2709, + 1412, 1758, 2874, -2709, 1760, 37, 38692, 822, 1452, 12703, + 1876, 1644, -2709, 1631, -2709, 14723, 1423, 1435, 72, 799, + -2709, -2709, 1439, 1329, 1450, 1462, 1451, 1453, -2709, 817, + 48277, 1802, 107, 1454, 1457, 1430, 650, 551, 1326, 78, + -2709, 90, -2709, 1651, 142, -2709, -2709, -2709, -2709, -2709, + -2709, -2709, -2709, 839, 22687, -2709, -2709, 1892, 914, 1892, + 719, -2709, -2709, 1892, -2709, 1892, -2709, 32752, -2709, 15228, + -2709, 48277, -2709, -2709, -2709, -2709, -2709, 1458, -2709, 1436, + 14723, 80, -2709, 33291, 1459, 14723, 1460, 1464, -2709, -2709, + -2709, -2709, -2709, -2709, -2709, -2709, -2709, 1471, 1781, -2709, + 1472, 1476, 4812, -2709, -2709, -2709, -2709, -2709, -2709, -2709, + -2709, -2709, -2709, -2709, -2709, -2709, -2709, -2709, 1477, 1480, + 33327, 1479, 19268, 19268, 8158, 1507, -2709, 19268, 1484, -2709, + 1486, 33242, 1482, 1487, 33372, 13208, 14723, 13208, 13208, 33781, + -2709, 1488, 33860, 42532, -2709, 16743, -2709, -2709, -2709, 14723, + 42532, -2709, 14723, 1490, 6570, -2709, -2709, -2709, 1055, 34215, + 355, 1434, 1434, 1434, 5559, -2709, -2709, -2709, 1473, -2709, + 19268, 19268, -2709, 2200, 3678, 8158, -2709, -2709, 1785, -2709, + 844, -2709, 1493, -2709, -2709, 6378, -2709, 28931, 34289, 14723, + 182, -2709, 14723, 1351, 14723, 1561, 1434, 1434, 1434, 285, + 285, 231, 231, 231, 1055, 355, -2709, -2709, -2709, 1497, + 1505, 1506, 1848, 1213, 14723, -2709, -2709, 883, 900, 42532, + 2818, 4418, 4779, -2709, -2709, 23167, 1548, -35, 1583, 1548, + 1802, 3564, -2709, 613, -2709, -2709, -2709, 34139, 42532, -2709, + 1044, 23167, 1550, 1563, -60, 25567, 1726, -2709, 50662, 50662, + -2709, 1508, 1695, 1524, -2709, -2709, -2709, -2709, 1534, 1534, + 14723, 1730, 1534, 1734, 1735, 1127, 1127, 1304, 1736, -2709, + -2709, 1587, -2709, -2709, -2709, 14723, 9168, 1338, -2709, 1340, + -2709, -2709, -2709, -2709, 1526, -2709, -2709, 1787, -2709, -2709, + -2709, -2709, 1611, 1272, 14723, 1759, -2709, 239, 1537, 1880, + 381, 1833, 50662, -2709, 310, 331, -2709, 768, 1887, 142, + 1888, 142, 35332, 35332, 35332, 840, -2709, -2709, 914, -2709, + -2709, 854, -2709, -109, -2709, -2709, -2709, 1624, 775, 2874, + 1272, -2709, -2709, -2709, -2709, -2709, -2709, -2709, 179, 776, + 1272, 1625, -2709, 1629, -2709, 1635, 798, 1272, -2709, -2709, + 153, 153, 153, 15228, -2709, 1764, 1766, 1551, 34139, 34139, + 34139, 1555, -2709, 148, -2709, 50662, -2709, -2709, -2709, 1582, + 42532, 2010, 1564, 857, -2709, 1738, -20, -2709, 50662, 42532, + 42532, 42532, 1593, 42532, -2709, -2709, -2709, 1562, 1576, -2709, + 21258, -33, 1799, 1800, 1273, 2053, -2709, 864, 13713, 1942, + 42532, 1599, -2709, -2709, -2709, -2709, 1802, -2709, -2709, 510, + 510, -2709, 50662, -2709, 1604, -2709, 1607, -2709, -2709, -2709, + -2709, -2709, -2709, -2709, -2709, -2709, -2709, -2709, 50662, -2709, + -2709, 35332, -2709, 36772, -2709, -2709, -2709, -2709, 914, -2709, + 914, 1818, 50662, 31312, 914, 914, -2709, -2709, -2709, -2709, + 33889, 14723, -2709, 1957, 48277, -2709, 6631, -2709, -2709, -2709, + 14723, -2709, -2709, 14723, -2709, 28931, 14723, 1932, -2709, 2096, + 2096, 6138, 48277, 19268, 19268, 19268, 19268, 19268, 432, 1185, + 19268, 19268, 19268, 19268, 19268, 19268, 19268, 19268, 19268, 20264, + 393, -2709, -2709, 14723, 14723, 1943, 1932, 14723, -2709, 48277, + 1610, -2709, 1612, 1620, 14723, -2709, 48277, 1627, 8158, 33968, + -2709, 380, 29419, -2709, 34139, -2709, 3564, 14723, 1475, 2360, + 14723, 1630, 14723, 1937, -2709, -2709, 1616, -2709, -2709, 48277, + 14723, 1636, 29978, 19268, 19268, 30021, -2709, 34052, 14723, 8158, + -2709, 1609, 14218, -2709, 1814, 1713, 1713, 1713, 1713, -2709, + -2709, 42532, 42532, 42532, 24127, 1950, 22204, 49222, 49222, 1622, + -2709, 1448, -2709, 49222, 49702, -2709, 1639, -2709, 380, 14723, + 1948, 153, 1495, 1948, 1648, -2709, -2709, 1649, -2709, 14723, + 1782, -2709, -2709, -2709, 1683, -2709, 870, -2709, 2045, 1782, + -2709, 895, -2709, 27488, 1550, 14723, 380, 624, -2709, -2709, + -2709, 1640, -2709, 1534, -2709, -2709, -2709, 1846, -2709, -2709, + -2709, 42532, -2709, 42532, 29448, 1989, -2709, 50662, 50662, 50662, + -2709, 50662, 1642, 1655, 875, 1658, 597, -2709, 2432, 875, + 1968, 584, 1273, 313, 2207, 26, -2709, -2709, -2709, 1731, + 42532, -2709, 50662, -2709, -2709, -2709, -2709, -2709, 35812, -2709, + -2709, -2709, 35332, 28450, 35332, 42532, 42532, 42532, 42532, 42532, + 42532, 42532, 42532, 42532, 42532, 1662, 1666, 1667, 1609, -2709, + -2709, -2709, -2709, -86, -2709, 148, 1669, 1044, 38692, 1452, + 1700, 588, 50182, 925, 2874, 2106, 1672, 414, 167, -2709, + -2709, 822, 38692, -2709, -2709, -2709, 2065, -2709, -2709, 1044, + -2709, 1044, 34139, 50662, 1719, -2709, 1329, 1663, -2709, -2709, + 1329, 48277, -2709, -2709, 142, -2709, 938, -2709, -2709, -2709, + -2709, 50662, 1670, -2709, 1670, -2709, -2709, 14723, 34139, -2709, + 1675, -2709, 34139, 29484, -2709, 34139, 1943, -2709, 2096, 1455, + 1455, 1455, 2078, 1999, 268, 1673, 1455, 1455, 1455, 319, + 319, 118, 118, 118, 2096, 393, 34139, 34139, -2709, -2709, + 1676, -2709, -2709, -2709, -2709, 1677, -2709, 6051, -2709, 1678, + 1680, 50662, -2709, -2709, 890, 14723, 14723, 2200, -2709, 6507, + 14723, 48277, 944, 2200, 282, 14723, 3078, 3626, 14723, 14723, + 34377, 29513, 1682, 14723, 29611, 27968, -2709, 42532, 42532, 42532, + 42532, -2709, -2709, -2709, 49222, 49702, 1679, 21724, 49222, 1448, + 1684, 42532, -2709, 1775, 1687, 1775, 23167, 1952, 1889, -2709, + 23167, 1889, 897, 1889, 1965, 1775, 26528, -2709, 1775, 1691, + 1901, -2709, 697, 34139, 2140, 2013, 1698, -2709, 2013, 914, + -2709, 34139, 10683, -2709, 1044, 797, 50662, 380, -25, -2709, + 1711, 50662, -2709, 1782, 34139, -2709, -2709, 28931, -2709, -2709, + -2709, -2709, -2709, 50662, 1701, -2709, 1702, 875, -2709, 50662, + 1739, -2709, 218, 2001, 96, -2709, 14723, -2709, 2087, 2167, + 2432, 1707, 50662, 42532, 19268, -2709, 221, 220, -2709, 1983, + 42532, 1739, 2126, -2709, -2709, -2709, 597, -2709, 2020, 1936, + -2709, 278, -2709, 14723, 597, 1949, 295, 50662, -2709, -2709, + 2228, -2709, 48277, 142, 142, -2709, -2709, 1727, 1729, 1733, + 1740, 1741, 1743, 1745, 1746, 1748, 1755, 1757, 1761, 1762, + -2709, 1767, 1772, 1776, 1777, 1786, 1793, 1795, 1797, 973, + 1798, -2709, 1801, 1640, 1803, 1804, 1805, 1806, 54982, 1807, + 1808, 1816, 1817, 1819, 1820, 970, 1054, -2709, 1821, -2709, + -2709, -2709, -2709, -2709, -2709, 843, 1747, -2709, -2709, 1810, + -2709, 1822, -2709, -2709, -2709, -2709, -2709, -2709, -2709, -2709, + 153, 1058, 117, 50662, 1593, 1714, 2181, -15, 1959, 1789, + 1452, -2709, 693, 38692, 1593, -2709, 2131, 669, 1800, -2709, + 162, 1839, -2709, 1972, 50662, 1824, -2709, -2709, -2709, -2709, + 36772, 1670, 34139, -2709, -2709, -2709, 19268, 2090, 1826, 48277, + -2709, -2709, 14723, -2709, -2709, 2200, 2200, 6507, 957, -2709, + 2200, 14723, 14723, 2200, 2200, 14723, -2709, -2709, 29841, -2709, + 55912, -2709, -2709, -2709, -2709, -2709, -2709, -2709, -2709, 36292, + 49222, 1828, 42052, -2709, -2709, 42532, -2709, 1448, 23167, -2709, + -2709, 1059, -2709, 23167, 2038, -2709, 23167, -2709, 42532, 1829, + -2709, 42532, -2709, 10178, 14723, 1843, 914, 1843, -2709, 1823, + -2709, -60, -2709, -2709, 2177, 24607, 2168, 14723, -2709, -2709, + 1830, 875, -2709, 1993, 1739, 1832, -2709, -2709, -2709, -2709, + -2709, -2709, 29945, -2709, 49, 14723, -2709, 246, 2078, -2709, + -2709, -2709, -2709, 1739, 857, -2709, 42532, 2281, 2180, -2709, + -2709, 34139, -2709, -2709, 1802, 1802, -2709, -2709, 2259, -2709, + -2709, -2709, -2709, 843, 543, 28450, 42532, 42532, 1835, -2709, + -2709, -86, 2217, 968, -2709, 822, 1044, 42532, 2190, 38692, + 2305, 42532, 1593, 1844, -2709, -2709, 842, 842, -2709, 1988, + -2709, 1990, 225, -2709, 42532, -2709, -2709, 24607, -2709, 3036, + 19268, 48277, 989, -2709, -2709, 2200, 2200, 2200, -2709, 2041, + -2709, -2709, 1001, 2311, -2709, 42532, -52, -32, 1851, 1852, + -2709, -2709, 1853, -2709, 14723, 1855, -2709, -2709, 23167, 1059, + 1003, -2709, 48277, 42532, 1030, 48277, -2709, 1856, -90, 1857, + -2709, 7653, 1849, -2709, -2709, -2709, -2709, -2709, -2709, 34139, + 34139, 50662, 2030, -2709, 2030, 10683, 1912, 42532, 14723, -2709, + 1032, 2286, 196, -3, 34139, -2709, 42532, -2709, 35332, -2709, + 875, -73, 1863, 14723, 30007, 2086, -2709, -2709, 2118, -2709, + 2185, -2709, 50662, 1929, 556, 1953, -2709, -2709, -2709, -2709, + 1058, 914, 1452, 1800, 1839, 1884, 42532, 1044, 414, -2709, + 822, -2709, -2709, -2709, -2709, -2709, -2709, -2709, -2709, -2709, + -2709, -2709, -2709, 2315, 2095, 2317, 1719, 1037, 3036, 1038, + -2709, 2331, 1609, 1639, 36292, 1891, -2709, 1893, -2709, -2709, + -2709, -2709, -2709, 50662, 1184, -2709, 34139, 42532, -2709, -2709, + -2709, 42532, 2259, 1042, -2709, 14723, 1895, 14723, -2709, 17248, + 1885, -2709, 2353, 14723, 1955, 1955, 1044, -2709, 30072, 1548, + 24607, 50662, 50662, 50662, -2709, 2023, 857, 875, 1050, -2709, + 1913, -2709, -2709, -2709, -2709, 2874, -2709, 30190, 2132, 205, + 2120, 1863, -2709, 14723, -2709, 1977, -2709, -2709, -2709, 2371, + -2709, -2709, 38692, 1915, 1839, 1593, 1800, 2121, -2709, 2127, + 1921, 1452, -2709, 14723, 591, -2709, -2709, 42532, -2709, 1052, + 1923, 1925, -2709, -2709, -2709, 1928, 17248, 1930, -2709, 50662, + 1933, 34139, 2069, -2709, -2709, -2709, 2286, -2709, -2709, -2709, + 290, -2709, 290, 27488, 2118, -2709, 35332, 28450, 752, -73, + 2229, -2709, -2709, -2709, -2709, 105, 2148, -2709, 2152, -2709, + 34139, -2709, 1044, 38692, -2709, -2709, -2709, -2709, -2709, 24607, + 1548, 1482, 17753, 17753, 1941, 1056, -2709, 2437, 2107, -2709, + -2709, 1951, -2709, -2709, -2709, 42052, 50662, 1534, 1534, 1548, + 2120, -2709, -2709, -2709, -2709, -2709, 561, 561, 2327, -2709, + 2014, -2709, 1839, 1065, -2709, 18763, 2097, 466, 33278, -2709, + -2709, -2709, -2709, -2709, 1956, 1960, -2709, -2709, -2709, 290, + -2709, -2709, -2709, -2709, -2709, 2428, -2709, 210, -2709, -2709, + -2709, 1452, 2420, -2709, -2709, -2709, -2709, -2709, -2709, 2452, + 1534, 875, -2709, -2709, -2709, 1548, 18258, 1962, -2709, -2709, + -2709, -2709 }; - /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM. - Performed when YYTABLE does not specify something else to do. Zero - means the default is an error. */ +/* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM. + Performed when YYTABLE does not specify something else to do. Zero + means the default is an error. */ static const yytype_int16 yydefact[] = { 1274, 1145, 0, 1028, 1027, 1145, 0, 1239, 1145, 68, 965, 0, 792, 0, 1145, 0, 1274, 0, 0, 0, 0, 0, 0, 0, 0, 1145, 142, 0, 791, 1145, 0, 0, 1179, 0, 0, 0, 0, 0, 2, 4, - 11, 35, 9, 31, 109, 96, 147, 108, 1273, 248, - 112, 28, 12, 37, 790, 6, 18, 16, 21, 14, - 22, 986, 20, 17, 7, 32, 30, 29, 34, 25, - 23, 24, 19, 38, 36, 10, 27, 15, 13, 5, - 33, 26, 0, 8, 1144, 1143, 1137, 0, 0, 0, + 5, 6, 7, 8, 9, 10, 11, 16, 12, 13, + 14, 15, 17, 18, 19, 20, 21, 22, 986, 23, + 24, 25, 26, 0, 27, 28, 29, 30, 31, 109, + 96, 147, 108, 1273, 248, 112, 32, 33, 34, 35, + 36, 37, 790, 38, 1144, 1143, 1137, 0, 0, 0, 0, 0, 1138, 746, 1305, 1306, 1307, 1308, 1309, 1310, 1311, 1312, 1313, 1314, 1315, 1316, 1317, 1318, 1319, 1320, 1665, 1321, 1322, 1323, 1612, 1613, 1666, 1614, 1615, 1324, @@ -2092,25 +2392,25 @@ static const yytype_int16 yydefact[] = 1592, 1593, 1594, 1652, 1653, 1595, 1697, 1596, 1597, 1598, 1599, 1600, 1601, 1602, 1603, 1604, 1605, 1606, 1607, 1654, 1655, 1656, 1657, 1658, 1659, 1660, 1661, 1662, 1663, 1664, - 1608, 1609, 1610, 1611, 95, 0, 0, 728, 747, 748, - 756, 1140, 67, 0, 0, 0, 0, 0, 0, 0, + 1608, 1609, 1610, 1611, 747, 748, 756, 95, 0, 0, + 728, 1140, 67, 0, 0, 0, 0, 0, 0, 0, 959, 958, 0, 1195, 964, 0, 0, 746, 750, 827, - 1624, 1631, 1496, 1645, 825, 749, 726, 747, 0, 1053, + 1624, 1631, 1496, 1645, 747, 825, 749, 726, 0, 1053, 1054, 0, 1062, 0, 1046, 1051, 1047, 0, 1072, 1064, 1073, 1065, 1045, 1066, 1055, 1044, 0, 1074, 0, 1049, - 0, 0, 0, 1141, 972, 1274, 0, 995, 1016, 993, - 1012, 1009, 996, 1018, 991, 1002, 1000, 1005, 998, 981, - 986, 1004, 1001, 992, 1013, 1011, 1010, 1015, 1006, 1003, - 1019, 1017, 994, 1008, 999, 997, 990, 1014, 1007, 0, - 1238, 0, 0, 745, 1243, 1244, 1241, 1240, 773, 1163, - 91, 1647, 1575, 92, 89, 793, 90, 1142, 141, 139, - 0, 696, 1403, 1441, 1534, 1545, 1647, 0, 1215, 1219, + 0, 0, 0, 1141, 972, 1274, 0, 990, 991, 992, + 993, 994, 995, 1000, 996, 997, 998, 999, 1001, 1002, + 1003, 1004, 1005, 981, 986, 1006, 1007, 1008, 1009, 1010, + 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 0, + 1238, 0, 0, 745, 1241, 1243, 1244, 1240, 773, 1163, + 91, 1647, 1575, 793, 92, 89, 90, 1142, 141, 139, + 0, 696, 1403, 1441, 1534, 1545, 1647, 1215, 1219, 0, 1139, 1652, 784, 0, 785, 0, 113, 289, 749, 720, 1178, 0, 1183, 0, 1510, 117, 120, 765, 118, 109, - 0, 1, 1274, 138, 138, 0, 138, 0, 101, 109, - 104, 108, 249, 789, 1647, 1575, 783, 786, 985, 1303, - 0, 0, 0, 1411, 0, 0, 1411, 0, 1411, 0, - 1411, 0, 0, 688, 0, 689, 729, 85, 86, 40, + 0, 1, 1274, 985, 1303, 0, 0, 0, 138, 138, + 0, 138, 0, 101, 109, 104, 108, 249, 789, 1647, + 1575, 783, 786, 1411, 0, 0, 1411, 0, 1411, 0, + 1411, 0, 0, 688, 0, 689, 729, 85, 86, 42, 84, 0, 930, 963, 962, 961, 960, 965, 1411, 976, 760, 0, 1251, 1252, 0, 0, 0, 0, 0, 1190, 828, 826, 1060, 1061, 0, 1052, 1048, 1050, 0, 757, @@ -2119,9 +2419,9 @@ static const yytype_int16 yydefact[] = 1709, 1710, 1411, 1711, 1712, 340, 341, 377, 1713, 1714, 1715, 1716, 1717, 0, 0, 1718, 372, 1719, 339, 1720, 1721, 344, 1722, 311, 1723, 0, 1724, 342, 312, 1725, - 380, 380, 1726, 1727, 367, 1728, 0, 1075, 325, 326, - 327, 328, 353, 354, 329, 359, 360, 364, 330, 412, - 339, 1071, 758, 759, 1411, 1067, 1071, 1411, 1071, 722, + 380, 380, 1726, 1727, 367, 1728, 758, 759, 1071, 0, + 1075, 325, 326, 327, 328, 353, 354, 329, 359, 360, + 364, 330, 412, 339, 1411, 1071, 1067, 1411, 1071, 722, 1411, 0, 0, 968, 983, 1020, 1729, 1730, 1731, 1732, 1733, 1734, 1736, 1735, 1737, 1738, 1739, 1740, 1741, 1742, 1743, 1744, 1745, 1746, 1747, 1748, 1749, 1750, 1751, 1752, @@ -2130,8 +2430,8 @@ static const yytype_int16 yydefact[] = 1773, 1774, 1775, 1777, 1776, 1778, 1779, 1780, 1781, 1782, 1783, 1784, 1785, 1786, 1787, 1788, 1789, 1790, 1791, 1792, 1793, 1794, 1795, 1796, 1797, 1798, 1799, 1800, 1801, 1802, - 1803, 1804, 1805, 1806, 1807, 1808, 1809, 1810, 1811, 1034, - 0, 1035, 1025, 989, 1021, 1022, 1274, 66, 1242, 1198, + 1803, 1804, 1805, 1806, 1807, 1808, 1809, 1810, 1811, 1021, + 1022, 1034, 0, 1035, 1025, 989, 1274, 66, 1242, 1198, 0, 0, 0, 0, 93, 0, 0, 0, 731, 733, 734, 617, 744, 691, 0, 1613, 1614, 1615, 681, 0, 1616, 1617, 1618, 1667, 545, 532, 541, 546, 533, 535, @@ -2146,9 +2446,9 @@ static const yytype_int16 yydefact[] = 1222, 1217, 0, 0, 0, 0, 0, 291, 290, 721, 1177, 1175, 1176, 1174, 1173, 1180, 0, 1182, 986, 631, 633, 0, 682, 119, 0, 0, 0, 99, 98, 3, - 136, 137, 0, 0, 0, 0, 0, 0, 0, 0, - 233, 163, 164, 166, 230, 234, 242, 0, 105, 0, - 787, 0, 765, 0, 0, 1200, 0, 0, 0, 1160, + 765, 0, 0, 0, 1200, 136, 137, 0, 0, 0, + 0, 0, 0, 0, 0, 233, 163, 164, 166, 230, + 234, 242, 0, 105, 0, 787, 0, 0, 0, 1160, 1160, 0, 0, 0, 0, 0, 1131, 1080, 1124, 0, 0, 0, 0, 808, 821, 0, 0, 0, 0, 0, 818, 0, 0, 801, 795, 797, 1082, 0, 1160, 0, @@ -2156,27 +2456,27 @@ static const yytype_int16 yydefact[] = 1668, 1669, 545, 532, 541, 546, 542, 0, 1675, 1676, 1624, 1678, 1679, 1680, 1681, 1682, 1683, 1684, 1685, 1631, 1687, 1688, 1689, 1690, 1691, 543, 1693, 1645, 1695, 1651, - 544, 0, 1697, 0, 520, 639, 147, 637, 766, 0, - 747, 753, 687, 0, 767, 1846, 1847, 1848, 1849, 1850, + 544, 0, 1697, 0, 520, 747, 753, 639, 147, 637, + 766, 0, 687, 0, 767, 1846, 1847, 1848, 1849, 1850, 1851, 1852, 1853, 1854, 1855, 1856, 1857, 1858, 1859, 1860, 1861, 1862, 1863, 1864, 1865, 1866, 1867, 1868, 1869, 1870, 1871, 1872, 1873, 1874, 1875, 1876, 1877, 1878, 1879, 1880, 1881, 1882, 1883, 1884, 1885, 1886, 1887, 1888, 1889, 1890, 1891, 1892, 1893, 1894, 1895, 1896, 1897, 1898, 1899, 1900, 1901, 1902, 1903, 1904, 1905, 1906, 1907, 1908, 1909, 1910, - 1911, 1912, 1798, 1913, 1914, 1915, 1916, 1917, 684, 727, - 769, 768, 770, 690, 0, 0, 64, 0, 0, 973, - 0, 761, 0, 0, 1411, 1248, 1411, 930, 0, 930, + 1911, 1912, 1798, 1913, 1914, 1915, 1916, 1917, 769, 768, + 770, 684, 727, 690, 0, 0, 64, 0, 0, 973, + 0, 761, 0, 0, 1411, 1248, 1411, 0, 930, 930, 0, 1189, 1192, 1063, 1059, 1057, 1056, 1058, 371, 358, 366, 365, 636, 348, 347, 346, 0, 345, 0, 0, 372, 372, 370, 349, 325, 0, 0, 0, 376, 0, - 374, 0, 319, 315, 0, 385, 386, 387, 388, 395, - 396, 393, 394, 389, 390, 383, 384, 391, 392, 381, - 382, 0, 397, 398, 399, 400, 401, 402, 403, 404, - 331, 337, 1069, 1070, 0, 1042, 0, 0, 1037, 0, + 374, 1069, 1070, 0, 1042, 0, 319, 315, 0, 385, + 386, 387, 388, 395, 396, 393, 394, 389, 390, 383, + 384, 391, 392, 381, 382, 0, 397, 398, 399, 400, + 401, 402, 403, 404, 331, 337, 0, 0, 1037, 0, 0, 1039, 0, 0, 0, 1274, 0, 802, 1030, 1031, - 1029, 0, 0, 822, 1024, 988, 805, 1033, 1023, 1032, - 987, 982, 0, 1197, 55, 1228, 1227, 1236, 774, 0, + 1029, 0, 0, 988, 805, 1033, 1023, 1032, 987, 822, + 1024, 982, 0, 1197, 55, 1228, 1227, 1236, 774, 0, 642, 0, 1274, 94, 794, 0, 512, 636, 481, 680, 0, 0, 0, 0, 0, 0, 518, 645, 0, 0, 437, 0, 0, 0, 660, 0, 666, 0, 0, 0, @@ -2187,30 +2487,30 @@ static const yytype_int16 yydefact[] = 0, 453, 623, 0, 456, 0, 0, 0, 0, 611, 612, 613, 604, 605, 606, 607, 608, 609, 621, 603, 434, 0, 0, 564, 515, 0, 433, 700, 0, 251, - 0, 735, 732, 0, 683, 251, 1230, 1234, 1235, 0, - 1229, 1233, 1221, 1220, 1225, 1223, 1226, 1224, 0, 1171, - 0, 1168, 634, 246, 121, 724, 0, 0, 116, 115, - 157, 157, 148, 151, 157, 114, 205, 206, 0, 0, - 0, 0, 239, 237, 731, 744, 193, 167, 192, 0, - 0, 171, 0, 197, 413, 232, 103, 161, 162, 165, - 102, 0, 235, 0, 245, 233, 166, 0, 788, 1304, - 1206, 1268, 0, 0, 1201, 0, 0, 0, 0, 0, - 0, 1411, 0, 0, 314, 1115, 1096, 882, 1159, 0, + 0, 735, 732, 0, 683, 251, 1230, 1234, 1235, 1233, + 0, 1229, 1221, 1220, 1225, 1223, 1226, 1224, 0, 1171, + 0, 1168, 634, 246, 121, 724, 0, 0, 1304, 1206, + 0, 1268, 0, 0, 1201, 116, 115, 157, 157, 148, + 151, 157, 114, 205, 206, 0, 0, 0, 0, 239, + 237, 731, 744, 193, 167, 192, 0, 0, 171, 0, + 197, 413, 232, 103, 161, 162, 165, 102, 0, 235, + 0, 245, 233, 166, 0, 788, 0, 0, 0, 0, + 0, 1411, 0, 0, 1115, 1096, 882, 314, 1159, 0, 0, 0, 0, 0, 0, 0, 1123, 1120, 1121, 1122, 0, 0, 0, 0, 806, 807, 820, 0, 811, 812, 809, 813, 814, 0, 0, 799, 800, 0, 0, 0, 0, 798, 0, 0, 0, 0, 0, 0, 0, 0, 147, 147, 147, 526, 0, 145, 146, 0, 0, 685, - 688, 54, 928, 938, 0, 0, 0, 0, 0, 0, - 0, 965, 977, 975, 978, 980, 979, 762, 0, 1077, - 0, 0, 1247, 1245, 0, 927, 901, 0, 1194, 0, - 0, 1411, 917, 1191, 0, 0, 0, 0, 1071, 0, - 369, 368, 320, 316, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1076, 1071, + 688, 54, 938, 0, 928, 0, 0, 0, 0, 0, + 0, 965, 977, 975, 979, 978, 980, 762, 0, 1077, + 0, 0, 1247, 1245, 0, 0, 927, 901, 1194, 0, + 0, 1411, 1191, 0, 917, 0, 0, 0, 1071, 0, + 369, 368, 320, 316, 0, 0, 0, 0, 1076, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1071, 1068, 1071, 723, 0, 1071, 971, 984, 1026, 803, 823, 804, 824, 87, 0, 61, 69, 74, 52, 0, 52, 0, 71, 75, 52, 70, 52, 65, 0, 775, 0, - 1162, 0, 1164, 1161, 1167, 1166, 1165, 0, 692, 0, + 1162, 0, 1167, 1165, 1161, 1164, 1166, 0, 692, 0, 0, 679, 675, 0, 0, 0, 0, 0, 646, 647, 648, 649, 650, 651, 652, 653, 654, 0, 0, 655, 0, 0, 0, 602, 610, 614, 615, 616, 611, 612, @@ -2226,27 +2526,27 @@ static const yytype_int16 yydefact[] = 420, 421, 422, 423, 424, 432, 601, 599, 600, 0, 0, 0, 566, 0, 0, 462, 698, 1403, 1441, 0, 135, 135, 135, 123, 133, 0, 303, 147, 709, 303, - 0, 412, 292, 765, 1181, 1169, 1170, 632, 725, 764, - 1274, 155, 156, 160, 160, 0, 0, 160, 1642, 1530, - 0, 0, 0, 0, 198, 240, 0, 231, 195, 196, - 0, 194, 731, 199, 730, 200, 203, 204, 172, 241, - 718, 243, 0, 236, 107, 106, 247, 0, 1204, 0, - 0, 0, 0, 1263, 1280, 1202, 0, 691, 1296, 1298, - 251, 0, 0, 1081, 0, 1411, 1098, 0, 0, 0, + 0, 412, 292, 765, 1181, 1170, 1169, 632, 725, 764, + 1274, 0, 1204, 0, 0, 0, 1280, 1263, 0, 0, + 1296, 1298, 251, 0, 691, 1202, 155, 156, 160, 160, + 0, 0, 160, 1642, 1530, 0, 0, 0, 0, 198, + 240, 0, 231, 195, 196, 0, 194, 731, 199, 730, + 200, 203, 204, 172, 241, 718, 243, 0, 236, 107, + 106, 247, 0, 1081, 0, 1411, 1098, 0, 0, 0, 0, 0, 0, 832, 0, 932, 832, 1136, 1411, 1071, - 1411, 1071, 1309, 1378, 1546, 906, 1127, 0, 0, 1094, - 1153, 935, 0, 891, 1117, 1132, 1146, 0, 0, 796, + 1411, 1071, 1309, 1378, 1546, 0, 1094, 1127, 0, 906, + 1153, 0, 891, 935, 1117, 1132, 1146, 0, 0, 796, 1083, 810, 815, 1149, 819, 816, 1257, 817, 1160, 0, 1079, 0, 1147, 0, 1255, 0, 0, 1085, 1151, 1259, 145, 145, 145, 0, 638, 0, 0, 0, 640, 641, 687, 0, 53, 0, 929, 0, 63, 43, 44, 54, - 0, 930, 0, 930, 976, 0, 0, 763, 0, 0, - 0, 0, 314, 920, 918, 951, 0, 925, 919, 0, - 0, 877, 0, 781, 0, 0, 1253, 0, 0, 0, + 0, 0, 930, 930, 976, 0, 0, 763, 0, 0, + 0, 0, 781, 0, 920, 918, 951, 0, 925, 919, + 314, 0, 0, 877, 0, 0, 1253, 0, 0, 0, 0, 0, 338, 351, 1043, 325, 0, 379, 378, 380, 380, 325, 0, 309, 0, 323, 0, 363, 332, 405, 406, 407, 408, 409, 410, 411, 1036, 1038, 0, 1040, - 56, 0, 59, 0, 62, 58, 57, 51, 0, 82, + 56, 0, 59, 0, 58, 62, 57, 51, 0, 82, 0, 0, 0, 0, 0, 0, 1237, 643, 140, 483, 0, 0, 676, 0, 0, 559, 0, 534, 536, 549, 0, 538, 540, 0, 618, 0, 0, 0, 550, 486, @@ -2260,19 +2560,19 @@ static const yytype_int16 yydefact[] = 479, 0, 0, 565, 574, 135, 135, 135, 135, 132, 134, 0, 0, 0, 0, 1530, 0, 275, 0, 254, 250, 252, 262, 275, 280, 529, 301, 530, 749, 0, - 210, 145, 717, 210, 0, 1231, 1172, 0, 0, 149, - 150, 152, 0, 619, 160, 154, 202, 201, 0, 170, - 238, 168, 0, 244, 1205, 0, 1285, 1269, 1267, 1287, - 1286, 0, 691, 1294, 0, 0, 1285, 0, 1288, 1302, - 1299, 1204, 0, 0, 0, 0, 881, 0, 0, 0, + 210, 145, 717, 210, 0, 1231, 1172, 0, 1205, 0, + 1285, 1267, 1287, 1286, 0, 1294, 0, 691, 0, 1285, + 1269, 0, 1288, 1299, 1204, 0, 1302, 0, 149, 150, + 152, 0, 619, 160, 154, 202, 201, 0, 170, 238, + 168, 0, 244, 0, 0, 0, 881, 0, 0, 0, 832, 0, 940, 0, 947, 0, 0, 932, 913, 1116, 0, 0, 0, 1090, 1135, 1108, 1100, 1086, 1114, 0, - 0, 1119, 0, 1112, 1129, 1130, 1128, 842, 867, 1133, - 0, 0, 0, 878, 0, 0, 0, 0, 0, 0, + 0, 1119, 0, 1112, 1129, 1130, 1128, 1133, 0, 867, + 842, 878, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 147, 143, - 144, 521, 686, 801, 939, 0, 0, 927, 0, 1194, - 974, 965, 0, 0, 1248, 930, 0, 905, 901, 926, - 899, 898, 900, 0, 782, 972, 0, 776, 1193, 0, + 144, 521, 686, 801, 939, 0, 0, 0, 927, 1194, + 974, 965, 0, 0, 1248, 0, 930, 972, 0, 776, + 905, 901, 926, 899, 898, 900, 0, 782, 1193, 0, 1254, 0, 1250, 0, 1188, 357, 322, 0, 375, 373, 321, 0, 317, 324, 1071, 88, 0, 47, 83, 72, 77, 0, 81, 79, 78, 73, 76, 0, 678, 674, @@ -2287,22 +2587,22 @@ static const yytype_int16 yydefact[] = 262, 0, 274, 189, 273, 189, 255, 0, 286, 284, 0, 286, 0, 286, 0, 189, 0, 276, 189, 273, 0, 293, 721, 302, 0, 227, 0, 705, 227, 0, - 122, 158, 159, 0, 153, 169, 719, 1203, 0, 1199, - 0, 1275, 0, 0, 1272, 1262, 0, 0, 1297, 1285, - 1276, 1154, 832, 0, 0, 1097, 0, 949, 893, 941, + 122, 1203, 0, 1199, 0, 0, 0, 1275, 1272, 1262, + 0, 0, 1297, 1285, 1276, 158, 159, 0, 153, 169, + 719, 1154, 832, 0, 0, 1097, 0, 949, 893, 941, 924, 908, 0, 0, 0, 833, 0, 966, 0, 0, 914, 0, 0, 0, 0, 894, 0, 0, 853, 0, 0, 924, 0, 931, 849, 850, 0, 1089, 1109, 0, 1105, 0, 1134, 0, 0, 0, 0, 0, 1092, 1104, - 0, 1087, 0, 1071, 1071, 1095, 757, 1698, 1699, 1700, - 1701, 1702, 1703, 1704, 1705, 1706, 1707, 1708, 1709, 1824, - 1710, 1711, 1712, 1713, 1714, 1715, 1716, 1717, 1833, 1718, - 839, 1719, 1477, 1720, 1721, 1722, 1723, 0, 1724, 312, - 1725, 1726, 1727, 1728, 604, 605, 942, 836, 838, 0, - 837, 934, 834, 758, 835, 937, 892, 1150, 1258, 0, + 0, 1087, 0, 1071, 1071, 1095, 892, 757, 1698, 1699, + 1700, 1701, 1702, 1703, 1704, 1705, 1706, 1707, 1708, 1709, + 1824, 1710, 1711, 1712, 1713, 1714, 1715, 1716, 1717, 1833, + 1718, 839, 1719, 1477, 1720, 1721, 1722, 1723, 0, 1724, + 312, 1725, 1726, 1727, 1728, 604, 605, 837, 758, 835, + 934, 834, 942, 836, 838, 0, 937, 1150, 1258, 0, 1148, 0, 1256, 1157, 1155, 1152, 1260, 524, 525, 522, - 145, 66, 46, 0, 0, 781, 0, 0, 1411, 0, - 1194, 1246, 927, 0, 957, 877, 952, 0, 781, 779, + 145, 66, 46, 0, 781, 0, 0, 0, 1411, 0, + 1194, 1246, 0, 927, 781, 779, 0, 957, 877, 952, 0, 1214, 1249, 0, 0, 0, 318, 310, 1041, 60, 0, 80, 677, 547, 558, 656, 0, 0, 0, 0, 553, 548, 714, 715, 710, 475, 473, 470, 0, 471, @@ -2310,45 +2610,45 @@ static const yytype_int16 yydefact[] = 577, 572, 573, 130, 129, 128, 127, 261, 259, 0, 264, 271, 182, 188, 260, 0, 258, 253, 0, 285, 281, 0, 282, 0, 0, 283, 0, 256, 0, 271, - 257, 0, 300, 0, 0, 568, 521, 568, 1232, 0, - 1284, 1264, 0, 1265, 1295, 0, 0, 0, 0, 1289, - 1261, 945, 1099, 0, 924, 0, 832, 910, 909, 912, + 257, 0, 300, 0, 0, 568, 521, 568, 1232, 1284, + 1264, 0, 1265, 1295, 0, 0, 0, 0, 1289, 1261, + 0, 945, 1099, 0, 924, 0, 832, 910, 909, 912, 907, 911, 0, 967, 0, 0, 851, 0, 858, 896, 897, 895, 852, 924, 930, 854, 0, 0, 0, 1101, 1091, 1088, 1093, 1102, 0, 0, 1103, 1106, 308, 1118, - 1111, 1833, 1841, 0, 0, 0, 0, 0, 0, 42, - 49, 801, 0, 0, 901, 778, 0, 0, 0, 927, - 0, 0, 0, 781, 0, 0, 829, 0, 874, 0, - 969, 780, 0, 1207, 0, 1186, 1187, 0, 48, 504, + 1111, 1833, 1841, 0, 0, 0, 0, 0, 0, 41, + 49, 801, 0, 0, 778, 901, 0, 0, 0, 927, + 0, 0, 781, 0, 969, 780, 0, 0, 829, 0, + 874, 0, 0, 1207, 0, 1187, 1186, 0, 48, 504, 0, 0, 0, 712, 472, 476, 474, 451, 562, 579, 576, 296, 0, 299, 263, 0, 0, 177, 184, 0, 187, 181, 0, 265, 0, 0, 267, 269, 0, 0, 0, 304, 0, 0, 0, 726, 208, 1353, 1625, 1529, 209, 0, 213, 207, 211, 216, 218, 217, 219, 215, - 226, 0, 229, 736, 229, 620, 0, 0, 0, 0, - 1291, 1291, 1300, 0, 0, 1277, 0, 832, 0, 923, + 226, 0, 229, 736, 229, 0, 0, 0, 0, 1300, + 0, 1291, 1291, 0, 1277, 620, 0, 832, 0, 923, 946, 863, 841, 0, 0, 0, 848, 855, 956, 857, 0, 1110, 0, 1126, 0, 0, 936, 1158, 1156, 523, - 66, 0, 1194, 877, 1214, 0, 0, 0, 901, 972, - 777, 890, 883, 884, 885, 886, 887, 888, 889, 904, + 66, 0, 1194, 877, 1214, 0, 0, 0, 972, 777, + 901, 890, 883, 884, 885, 886, 887, 888, 889, 904, 903, 875, 876, 0, 0, 0, 1188, 0, 505, 0, 506, 0, 147, 301, 0, 0, 295, 0, 175, 173, 176, 178, 174, 0, 0, 272, 288, 0, 268, 266, 277, 0, 308, 0, 279, 0, 0, 0, 220, 214, - 567, 569, 0, 0, 180, 180, 0, 1271, 0, 0, - 1293, 1293, 303, 0, 1279, 0, 930, 948, 922, 0, - 915, 861, 860, 862, 866, 0, 864, 0, 880, 0, - 873, 841, 307, 0, 1113, 0, 943, 41, 45, 0, - 831, 1208, 927, 0, 1214, 877, 781, 0, 1211, 0, + 567, 569, 0, 0, 180, 180, 0, 1271, 0, 303, + 0, 0, 1293, 1293, 1279, 0, 930, 948, 0, 915, + 922, 861, 860, 862, 866, 0, 864, 0, 880, 0, + 873, 841, 307, 0, 1113, 0, 943, 40, 45, 0, + 831, 1208, 927, 0, 1214, 781, 877, 0, 1211, 0, 0, 1194, 507, 0, 582, 294, 297, 0, 270, 0, 0, 0, 305, 306, 278, 0, 0, 0, 212, 0, - 0, 228, 0, 111, 110, 1266, 1291, 1290, 1292, 157, - 157, 1270, 1301, 0, 956, 0, 902, 0, 0, 863, + 0, 228, 0, 111, 110, 1266, 1291, 1270, 1301, 1290, + 157, 1292, 157, 0, 956, 902, 0, 0, 0, 863, 0, 856, 953, 954, 955, 0, 869, 859, 870, 1107, - 1125, 944, 0, 927, 1209, 830, 970, 1212, 1213, 0, + 1125, 944, 0, 927, 1209, 970, 830, 1212, 1213, 0, 303, 578, 0, 0, 0, 0, 185, 0, 191, 287, 222, 0, 221, 570, 571, 182, 1293, 160, 160, 303, - 873, 921, 916, 840, 865, 879, 0, 0, 0, 871, + 873, 916, 921, 840, 865, 879, 0, 0, 0, 871, 0, 872, 1214, 0, 1184, 1612, 1354, 1582, 0, 580, 583, 581, 575, 298, 0, 0, 183, 223, 179, 157, 1282, 1281, 1278, 832, 845, 0, 844, 0, 933, 868, @@ -2357,3253 +2657,2301 @@ static const yytype_int16 yydefact[] = 584, 190 }; - /* YYPGOTO[NTERM-NUM]. */ +/* YYPGOTO[NTERM-NUM]. */ static const yytype_int16 yypgoto[] = { - -2533, -2533, -2533, 1853, 64, -2533, -2533, -2533, -2533, -553, - 525, -2399, -2533, 468, -2533, -2533, -2533, -2533, -114, -1780, - -2533, 80, -2533, -2533, 85, 8, 1267, -35, 3, 17, - 23, 61, 1476, 1506, -2533, -1437, 782, -2533, -2533, -1822, - -623, -31, -2533, 658, -1430, -1788, -515, 998, 1473, 1479, - -399, -418, -2533, -537, -2533, -1340, -2533, -2533, 653, 1038, - -1337, -1326, -2533, 346, -2533, -464, -396, -2533, -2533, -2533, - -2533, -2533, 94, -299, -501, 1022, -2533, 1482, -2533, -2533, - -2533, -2533, -1744, -1298, -2533, 652, -2072, 374, -1991, -1893, - 129, 117, -919, -268, 21, 381, -358, -2533, -2533, -356, - -1775, -2452, -373, -372, -2533, -2533, -2533, -477, -1185, -721, - -2533, -2533, 181, 296, -2533, -2533, -2533, 888, 1412, -2533, - -2533, 2372, 2548, -2533, -581, 2562, -154, -714, 1185, -1068, - 1189, -1083, -1077, -740, 1191, 1192, -1309, 3557, -1631, -867, - 0, -2533, -1837, -1618, -2533, -2533, -2533, -134, -2533, -445, - -2533, -440, -2533, -2533, -2533, -488, -2182, -2533, 1116, 802, - -2533, -2533, -2533, -1312, -2533, 4064, 707, -2533, -1724, -945, - -601, -929, -806, -1074, -1214, -2533, -2533, -2533, -2533, -2533, - -2533, -1728, -1785, -487, 761, -2533, -2533, 874, -2533, -2533, - -2533, -621, 976, -586, -914, 767, -2533, 118, 1951, -1399, - -2533, 735, -1994, -2533, -2533, 396, -2533, 1554, -481, -996, - 449, -1069, 6, -2533, -685, 179, 1899, 1760, -2174, -2533, - -2533, -498, -2274, -987, -2533, -655, -2533, 87, 88, -2325, - -1440, 89, -2533, 932, 90, -654, -1043, -844, -1058, -2533, - 66, 91, 5, -1846, -2486, -382, -2533, -484, -2533, -137, - -2533, -435, -2533, -367, -443, -474, -2355, -1005, -2533, 1519, - -177, -2533, 680, -2533, -2176, -2533, -2533, 666, -2533, -1022, - -2533, -1896, 294, -423, -2228, -2188, -1849, -670, 358, -430, - 333, -1816, -671, -2533, 692, -2533, -416, -2533, -656, -1584, - 92, -2208, 93, 616, -2533, -2533, -455, -2533, -486, -483, - -2533, -2533, 27, -855, 1275, -2533, 95, -2533, -2533, 1286, - -751, -2533, 1340, 97, 98, -2533, -2533, 365, -2533, 1052, - -2533, 353, -603, 695, -2533, 99, 1074, 100, -984, 101, - -2533, 765, 103, 1152, -2533, -2533, -2533, 10, -2533, -272, - -2533, -2533, -2191, -2533, -2533, -2533, 11, 1562, 408, -2533, - 13, -2532, 108, 672, -2533, 953, -2533, 673, 110, 112, - 63, 14, 339, 114, -2533, -2533, 115, 33, 36, -2533, - -2533, -2533, -2533, 168, 412, -2533, -306, -1952, -54, -2533, - -2531, -2331, -2533, -2533, -371, -2459, -1793, 1169, -6, -2533, - -2533, -2533, -526, -2533, -2173 + -2709, -2709, -2709, 1831, 81, 83, -654, -1046, -855, -1065, + -2709, -30, 85, -2709, -2709, 244, -2709, 933, -2709, 229, + -595, 573, -2709, 1020, -6, -2709, -2709, -2709, -524, -2709, + -2173, 86, 87, 89, -2709, -2709, -2709, -2709, -294, 513, + -2324, -2709, 452, -2709, -2709, -2709, -2709, -125, -1736, -2709, + 4, -1843, -2486, -465, -2709, -567, -2709, -216, -2709, -517, + -2709, -482, -525, -555, -2463, -998, -2709, 1440, -256, -2709, + 602, -2709, -2190, -2709, -2709, 590, -2709, -1013, -2709, -1908, + 212, -501, -2220, -2194, -1852, -655, 280, -507, 258, -1812, + -770, -2709, 615, -2709, -491, -2709, -648, -1654, 97, -2339, + -1414, 99, -2709, -2709, 100, 540, -2709, 10, 235, 101, + 102, 28, 1491, 327, -2709, 106, -2709, -2709, 1220, -738, + -2709, 1265, 109, -2187, -2709, -454, -2709, -480, -478, -2709, + -2709, 5, -839, 1208, -2709, -2709, -2709, 13, -2709, -361, + -2709, -2709, -2208, -2709, 31, -2709, -2709, -2709, -2709, 82, + 334, -2709, -401, -1935, -150, -2709, -2521, -2621, -2709, -2709, + -471, -2507, -1760, 111, 71, 112, 119, -2709, 694, 120, + -996, 2, 675, -13, -21, -16, 33, 53, 1509, 1539, + -2709, -897, 934, -2709, -2709, -1806, -634, -56, -2709, 676, + -1420, -1810, -511, 1025, 1496, 1498, -364, -384, -2709, -500, + -2709, -1379, -2709, -2709, 671, 1062, -1286, -1323, -2709, 376, + -2709, -436, -368, -2709, -2709, -2709, -2709, -2709, 115, -272, + -496, 1043, -2709, 1511, -2709, -2709, -2709, -2709, -1759, -1321, + -2709, 713, -2042, 400, -2041, -1893, 159, 135, -826, -241, + 27, 408, -331, -2709, -2709, -327, -1773, -2412, -344, -343, + -2709, -2709, -2709, -513, -1185, -726, -2709, -2709, -463, 2085, + -2709, -2709, -2709, 2089, 2482, -2709, -2709, 2749, 2860, -2709, + -610, 3172, 652, -710, 1211, -1110, 1214, -1096, -831, -1055, + 1215, 1216, -1304, 3326, -1619, -989, 6, -2709, -2411, -1583, + -2709, -2709, -2709, -107, -2709, -412, -2709, -406, -2709, -2709, + -2709, -448, -2708, -2709, 1155, 838, -2709, -2709, -2709, -1308, + -2709, 4132, 732, -2709, -1702, -936, -615, -909, -808, -1061, + -1190, -2709, -2709, -2709, -2709, -2709, -2709, -1127, -1813, -466, + 802, -2709, -2709, 911, -2709, -2709, -2709, -640, 1017, -580, + -908, 808, -2709, 161, 1991, -1397, -2709, 771, -1993, -2709, + -2709, 428, -2709, 2223, -470, -991, 1513, -1041, 12, -2709, + 3869, -14, 1652, 889, -2176, -2709, -2709, -497, -2301, -970, + -2709, -663, -2709, 122, 1301, 34, 123, 1141, -2709, -2709, + -2709, 124, -2709, -2709, 127, 503, -2709, 939, -2709, 705, + 128, -2709, 910, 14, -2611 }; - /* YYDEFGOTO[NTERM-NUM]. */ +/* YYDEFGOTO[NTERM-NUM]. */ static const yytype_int16 yydefgoto[] = { - -1, 37, 38, 39, 547, 1959, 2731, 2306, 2732, 2028, - 1953, 1323, 2024, 1642, 1576, 1324, 495, 1656, 2307, 669, - 1643, 548, 593, 594, 549, 550, 956, 45, 46, 47, - 613, 625, 626, 1429, 1813, 2141, 1022, 600, 601, 1947, - 637, 1566, 1462, 1463, 1833, 2169, 1489, 1490, 1031, 1032, - 2778, 2983, 2779, 2780, 2643, 2644, 3066, 1477, 1481, 1482, - 1853, 1843, 1468, 2425, 2802, 2803, 2804, 2805, 2806, 2807, - 2808, 957, 2665, 2914, 1485, 1486, 1034, 1035, 1036, 1494, - 1863, 49, 50, 1816, 2149, 2150, 2151, 2152, 2402, 2403, - 2418, 2414, 2650, 2786, 2153, 2154, 2771, 2772, 2886, 2421, - 2160, 2790, 2791, 2843, 1618, 756, 1894, 1330, 1263, 758, - 958, 759, 1243, 959, 1247, 761, 960, 961, 962, 764, - 963, 964, 965, 767, 1239, 966, 967, 1258, 1282, 1283, - 1284, 1285, 1286, 1287, 1288, 1289, 1290, 1009, 1715, 969, - 970, 971, 2156, 972, 1423, 1802, 2134, 2812, 2910, 2911, - 2386, 2631, 2769, 2882, 3024, 3059, 3060, 973, 974, 1371, - 1372, 1373, 1799, 1418, 1419, 975, 2547, 1421, 1708, 1010, - 1730, 1367, 1126, 1127, 1331, 1687, 1688, 1711, 2057, 1718, - 1723, 2085, 2086, 1731, 1767, 976, 1671, 1672, 2043, 1340, - 977, 665, 1133, 666, 1336, 1761, 986, 978, 979, 980, - 1364, 1365, 2100, 2359, 2360, 1736, 1859, 617, 1455, 2782, - 779, 1208, 981, 982, 983, 984, 1012, 619, 1128, 487, - 770, 2988, 1221, 1016, 1129, 1905, 1757, 551, 552, 2287, - 1228, 553, 54, 607, 554, 1592, 1547, 1325, 1075, 1537, - 1316, 555, 556, 2214, 2551, 2936, 2238, 3078, 2483, 2484, - 2933, 2934, 2217, 1906, 3006, 3007, 2284, 1529, 3001, 1973, - 2869, 1912, 1893, 2485, 1981, 2829, 2584, 1907, 2465, 1974, - 2929, 1603, 1975, 2930, 2686, 1976, 1573, 1596, 2218, 3008, - 1913, 1574, 2213, 2552, 1517, 1977, 2940, 1978, 505, 2469, - 557, 783, 558, 1219, 1583, 60, 649, 1317, 559, 1318, - 1319, 870, 61, 1326, 872, 873, 561, 540, 541, 776, - 1295, 542, 771, 562, 563, 2225, 2226, 2227, 1908, 1056, - 2944, 1909, 1057, 1058, 2229, 564, 86, 565, 1520, 566, - 883, 1663, 567, 1005, 622, 1006, 1008, 568, 2756, 2595, - 1232, 1604, 1985, 506, 70, 71, 569, 1046, 2186, 1868, - 570, 2753, 571, 608, 609, 1327, 1442, 1328, 572, 573, - 586, 574, 1593, 575, 688, 1600, 576, 577, 578, 1874, - 1502, 2677, 82, 2193, 1878, 2196, 2822, 2439, 2191, 2197, - 2920, 2989, 2194, 1879, 1880, 2823, 1881, 83, 517, 489, - 490, 773, 1211, 1131, 1212 + 0, 37, 38, 39, 547, 548, 1592, 1547, 1325, 1075, + 1537, 1314, 549, 2225, 2226, 2227, 1905, 1056, 2944, 1906, + 1057, 1058, 2229, 43, 514, 485, 486, 757, 1209, 1126, + 1210, 550, 551, 552, 1959, 2731, 2306, 2732, 2028, 1953, + 1323, 2025, 1642, 1576, 1324, 495, 1656, 2307, 669, 1643, + 553, 2214, 2550, 2936, 2239, 3078, 2483, 2484, 2933, 2934, + 2217, 1907, 3006, 3007, 2287, 1529, 3001, 1974, 2869, 1911, + 1893, 2485, 1983, 2829, 2587, 1908, 2465, 1975, 2928, 1602, + 1976, 2929, 2686, 1977, 1572, 1597, 2218, 3008, 1912, 1573, + 2213, 2551, 1516, 1978, 2940, 1979, 505, 2469, 554, 2279, + 1227, 555, 688, 1600, 556, 1219, 1583, 557, 1593, 558, + 559, 560, 1023, 2170, 1832, 561, 540, 541, 775, 1264, + 542, 758, 562, 783, 57, 634, 1315, 563, 1316, 1317, + 872, 58, 1326, 874, 875, 59, 60, 565, 2755, 2595, + 1232, 1603, 1985, 506, 566, 1836, 1460, 2676, 63, 2175, + 1840, 2179, 2819, 2433, 2174, 2181, 2922, 2990, 2176, 1841, + 1842, 2820, 1843, 567, 584, 568, 569, 883, 1664, 570, + 1520, 571, 956, 70, 71, 72, 613, 625, 626, 1429, + 1813, 2141, 1027, 600, 601, 1947, 642, 1566, 1469, 1470, + 1848, 2188, 1496, 1497, 1036, 1037, 2778, 2983, 2779, 2780, + 2643, 2644, 3066, 1484, 1488, 1489, 1868, 1858, 1475, 2425, + 2802, 2803, 2804, 2805, 2806, 2807, 2808, 957, 2665, 2914, + 1492, 1493, 1039, 1040, 1041, 1501, 1878, 74, 75, 1816, + 2149, 2150, 2151, 2152, 2402, 2403, 2418, 2414, 2650, 2786, + 2153, 2154, 2771, 2772, 2886, 2421, 2160, 2790, 2791, 2843, + 1619, 759, 1894, 1330, 1267, 761, 958, 762, 1243, 959, + 1247, 764, 960, 961, 962, 767, 963, 964, 965, 770, + 1239, 966, 967, 1258, 1286, 1287, 1288, 1289, 1290, 1291, + 1292, 1293, 1294, 1009, 1715, 969, 970, 971, 2156, 972, + 1423, 1802, 2134, 2812, 2910, 2911, 2386, 2631, 2769, 2882, + 3024, 3059, 3060, 973, 974, 1371, 1372, 1373, 1799, 1418, + 1419, 975, 2553, 1421, 1708, 1010, 1730, 1367, 1128, 1129, + 1331, 1687, 1688, 1711, 2057, 1718, 1723, 2085, 2086, 1731, + 1767, 976, 1671, 1672, 2043, 1340, 977, 665, 1133, 666, + 1336, 1761, 986, 978, 979, 980, 1364, 1365, 2100, 2359, + 2360, 1736, 1874, 617, 1455, 2782, 779, 1211, 981, 982, + 983, 984, 1012, 619, 1130, 490, 773, 2991, 1221, 1016, + 1131, 1909, 1757, 572, 86, 573, 574, 1005, 622, 1006, + 1008, 575, 594, 595, 576, 607, 608, 1327, 1442, 1328, + 577, 82, 609, 578, 2753 }; - /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If - positive, shift that token. If negative, reduce the rule whose - number is the opposite. If YYTABLE_NINF, syntax error. */ +/* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If + positive, shift that token. If negative, reduce the rule whose + number is the opposite. If YYTABLE_NINF, syntax error. */ static const yytype_int16 yytable[] = { - 488, 630, 1216, 1074, 681, 57, 484, 1370, 43, 1209, - 69, 72, 485, 73, 77, 638, 1551, 1037, 1320, 1456, - 875, 1217, 1011, 48, 1254, 1298, 1516, 1301, 1806, 1315, - 1550, 1834, 999, 80, 1837, 1609, 81, 1260, 612, 48, - 1707, 1376, 775, 560, 2163, 1213, 2170, 1562, 1526, 2175, - 2219, 640, 616, 2121, 1076, 1499, 1080, 1424, 1084, 784, - 778, 757, 646, 869, 40, 641, 1522, 2549, 2554, 1613, - 1432, 2148, 1745, 1746, 2399, 1329, 2212, 2588, 2576, 2574, - 41, 2059, 2060, 2198, 587, 42, 2080, 51, 52, 53, - 55, 56, 58, 59, 1555, 62, 628, 63, 64, 65, - 66, 67, 2585, 68, 2358, 876, 2264, 1292, 74, -380, - 75, 659, 76, 2062, 78, 79, 892, 2063, 2255, 2256, - 2257, -372, 1030, 2148, 1240, 1241, -754, -729, -380, 2108, - 2109, -1670, -97, 492, -751, -751, 1033, 1819, 1962, -1817, - -1817, -754, -377, 1855, -1677, -1671, -377, 892, 1441, 2919, - -100, 1587, 2273, -1818, -1818, 1252, 1858, 2405, 583, -1672, - 650, 1870, 1484, 2417, 993, 2690, 1759, -1819, -1819, 1292, - 1759, 3046, 2729, 2263, 1507, 633, 694, -1673, 2041, 620, - 583, 1304, -1674, -1686, 892, -1820, -1820, -1694, 1313, -755, - -1821, -1821, -1670, -1677, -1671, 1313, -1686, 2157, -1692, 584, - 584, -1824, -1824, -1694, -1833, -1833, -1839, -1839, -1672, 2794, - -1673, -1841, -1841, -1674, -339, 2832, 2312, 2314, 1535, -352, - -1696, 1538, 1539, 1518, -755, 1292, 1260, -97, -1844, -1844, - 2746, -602, -752, -752, 1553, 1796, 1000, -50, -602, 2846, - -1843, -1843, 1797, 634, 2445, -100, 1292, -622, 651, 2157, - 2735, 2675, 493, 2705, -622, -1692, -1696, -367, 583, 583, - 2415, 1234, 2280, 2750, 1682, 2924, 3, 4, 635, 635, - 1683, 2701, 2888, 1510, 1945, 2724, 1307, 1957, 1540, 1680, - 1560, 892, 1381, 580, 2215, 1385, 1436, 1307, 583, 1386, - 2921, 1561, 892, 1518, 1026, 1385, 1831, 2487, 2877, 1386, - 2348, 2589, 2906, 2607, 2247, 1235, 1466, 1313, 2431, 1313, - 1313, 3093, 1803, 1606, 1527, 2458, 3084, 1394, 1026, 1240, - 1241, 635, 2951, 1385, 598, 2189, 2931, 1394, -801, 2326, - -313, 2324, 663, -801, 2647, 1255, 664, 1891, 2651, 2426, - 1534, 2903, 663, 2687, 1871, 1252, 1433, 875, 2062, 1396, - 1366, 1891, 2063, 84, 875, 1469, 1020, 1256, 2349, 1396, - 2190, -1812, -1812, 2723, 2457, -1814, -1814, 2747, 1028, 2488, - 1377, 1257, 2062, 2432, 2142, 2143, 2063, 1313, 1213, 579, - 1313, 1313, 2748, 1832, 769, 2932, 2434, 1396, 2113, 2740, - 1321, 2212, 1028, 2212, 2741, 1892, 1293, 2593, 85, 1434, - 1437, 1470, 2398, 1001, 2417, 1002, 2873, 2405, 1669, 2209, - 994, 1722, 1467, 26, 2874, 2114, 2688, 1029, 2860, -97, - 1541, 2216, 3014, -224, 581, 1512, 1434, 599, 1542, 2702, - 1946, 2925, 2328, 2329, 2330, 2331, 2332, -100, 1497, 2336, - 2337, 2338, 2339, 2340, 2341, 2342, 2343, 2344, 2345, 2844, - 31, 2947, 2489, 2608, 1804, 3036, 2827, 2889, 1293, 1021, - 514, 636, 2590, 2676, 544, 1707, 3085, -313, 875, 875, - 582, 3094, 589, 695, 631, 2837, 1525, 652, 1564, 1659, - 1236, 995, -97, 627, 627, 2572, 1886, 1716, 3047, 2691, - 1944, 33, 2376, 2377, 886, 2601, 1670, 2680, 2950, 727, - -100, 2637, 671, 1565, 1855, 34, 621, 1528, 623, 3041, - 1472, 630, 2165, 1385, 1293, 3025, 2178, 1386, 1343, 1967, - 3080, 1438, 1495, 1958, 2173, 2833, 2157, 1760, 2157, 35, - 2276, 2123, 772, 2115, 1551, 1293, 1496, 655, 2116, 1513, - 874, 2605, 2010, 1872, 632, 1394, 667, 668, 2011, 2013, - 1294, 2549, 2554, 1451, 2730, 3074, 2009, 2031, 2853, 1598, - 3053, 1607, 2032, 1554, 2749, 1209, 1238, 1255, 48, 1525, - 1473, 663, 1616, 871, 1617, 664, 2783, 1396, 642, 1622, - 494, 2787, 2201, 2875, 2789, 1944, 1255, 1237, -602, 1256, - 2990, 769, 1798, -97, 488, 488, 1623, 2078, 1250, 1251, - 3015, 1844, 2699, 1257, -622, 2005, 2681, 1684, 1256, 1038, - 2264, -100, 1297, 2033, 648, -372, 640, 488, 2763, 663, - -754, -729, 1259, 664, 1817, -1670, 1639, 1641, 2714, 2715, - 641, 3016, -97, 2248, -97, -754, -377, 57, -1677, -1671, - 43, 1366, 69, 72, 878, 73, 77, 2220, 1004, 2774, - -100, 2956, -100, -1672, 2679, 48, 1130, 488, 1210, 1676, - 1677, 2949, 2148, 1690, 1691, 80, 2148, 1644, 81, 1610, - 1611, -1673, 670, 1045, 1380, 2700, -1674, -1686, 677, 3002, - 2117, -1694, 2955, -755, 1003, 1013, -1670, -1677, -1671, 1300, - -1686, 2118, -1692, 1921, 1861, 662, 40, -1694, 2387, 2388, - 2389, 2390, -1672, 1924, -1673, 3069, 1927, -1674, 1242, 2669, - -1813, -1813, 41, 1246, -1696, 1668, 2898, 42, -755, 51, - 52, 53, 55, 56, 58, 59, 1359, 62, 769, 63, - 64, 65, 66, 67, 1667, 68, 1366, 2097, 1756, 772, - 74, 1674, 75, 1707, 76, 1589, 78, 79, 2728, -1692, - -1696, -367, 1430, 1820, 1720, 1668, 1213, 2733, 877, 2221, - 584, 879, 1311, 1312, 2574, 3075, 1414, 1415, 1416, 1417, - 3020, 757, 496, 1311, 1312, 3022, 488, 1743, 1209, 1417, - 875, 1305, 1377, 990, 1306, 1545, 2744, 689, 2157, 2026, - 1273, 1274, 2157, 1987, 1854, 1854, 2407, 2363, 775, 1630, - 2025, 1862, 2773, 1668, 3023, 1634, 1527, 2333, 1527, 1546, - 2296, 1668, 3003, 1213, -801, -801, 2300, 1628, 1631, 1636, - 2223, 2549, 2554, 869, 2101, 2741, 880, 2073, 2074, 2075, - 2076, 2077, 2078, 497, 760, 2745, 2166, 881, 1439, 2820, - 2830, 1048, 1982, 2698, 3076, 1716, 1716, 1049, 2500, 2461, - 1716, 2845, 1313, 2075, 2076, 2077, 2078, 1994, 1588, 1370, - 692, 1551, 1313, 2471, 1527, 1313, 1518, 874, 2241, 2258, - 1911, 3077, 2408, 3082, 874, 1130, 772, 1519, 2016, 1919, - 2017, 2242, 2890, 2019, 1385, 2012, 2014, 2015, 1527, 3004, - 3095, 1545, 488, 1716, 1716, 682, 1255, 1244, 1762, 48, - 1277, 1278, 2707, 1883, 2148, 2372, 2409, 769, 1747, 2148, - 2712, 2474, 2148, 1051, 3100, 1546, 1394, 630, 1256, 1253, - 2820, 488, 2410, 693, 1549, 1966, 1556, 696, 1255, 2173, - 1920, 2891, 2411, 1209, 2462, 2004, 2006, 1940, 1941, 1942, - 697, 488, 488, 488, 2249, 488, 488, 2334, 1396, 1930, - 1256, 1291, 1449, 1050, 1937, 1450, 596, 2335, 1527, 1313, - 2861, 691, 614, 2199, 1259, 698, 2412, 683, 2222, 488, - 2223, 1048, 1313, 891, 2281, 2759, 2062, 1049, 782, 2288, - 2063, 2927, 1559, -1846, -1846, -1846, 647, 2784, 874, 874, - 1577, 781, 1412, 1413, 1414, 1415, 1416, 1417, 2224, 1528, - 2463, 1528, 2464, 1693, 1991, 500, 2246, 501, 2742, 1768, - 1694, 2862, 583, 1695, 1696, 1697, 2672, 1577, 488, 87, - 2863, 2157, 488, 488, 2467, 1458, 1459, 2945, 1465, 673, - 2157, 674, 504, 488, 1588, 2157, 1769, 1895, 2157, 641, - 641, 760, 641, 1518, 2148, 1922, 1780, 2773, 2468, 2864, - 1925, 1527, 1314, 2413, 1521, 772, 684, 1528, 2157, 1314, - 26, 1525, 1578, 1525, 1045, 2646, 2835, 2892, 769, -1815, - -1815, 2478, 1638, 627, 2408, 2657, 2250, 892, 2660, 92, - 1130, 1528, 491, 1050, 1658, 26, 2820, 1659, 543, 2737, - 882, 1130, 685, 1244, 769, 769, 2030, 31, 1552, 597, - 2034, 1640, 2035, 610, 885, 2176, 892, 1051, 2409, 1579, - 892, 1253, 2776, 1660, 2479, 1130, 1661, 2777, 875, 1525, - 2865, 1707, 31, 1954, 2653, 2091, 1955, 1048, 686, 2878, - 2480, 875, 2866, 1049, 2411, 2164, 1579, 1379, 33, 2157, - 769, 2785, 2003, 1525, -1816, -1816, 1382, 2991, 2231, 1770, - 2233, 1528, 34, 1370, 1771, 2177, 2177, 2618, 1052, 1772, - 1431, 884, 1053, 33, 2111, 675, 2498, 676, 2308, 2254, - 2157, 1440, 1781, 1314, 1314, 687, 35, 34, 760, 1048, - 2491, 88, 2820, 886, 2037, 1049, 2455, 887, 1782, 89, - 36, 992, 1054, 1783, 2161, 998, 1716, 1716, 1716, 1716, - 1716, 35, 1007, 1716, 1716, 1716, 1716, 1716, 1716, 1716, - 1716, 1716, 1716, 1525, 1210, 36, 772, 2490, 1995, 2499, - 2571, 1661, -1822, -1822, 1582, 90, 26, 3091, 2481, 1584, - 1784, 769, 1585, 1586, 1014, 2482, 488, 1051, 2090, 1050, - 2092, 2093, 772, 772, 1528, 3054, -1823, -1823, 2001, 3070, - 3071, 2002, 1015, 1026, 2069, 2413, 1716, 1716, 1027, 1048, - 1055, -1825, -1825, 31, 3072, 1049, 2157, 44, 1337, 663, - 36, -729, 91, 664, 988, 989, 2020, 991, 2441, 2021, - 2135, 1017, 2136, 44, 2172, 2298, 2299, 2239, 772, 1039, - 2240, 1050, 1053, 2269, 1024, 26, 2243, 44, 1018, 2244, - 874, 1773, 3098, 629, 33, 2157, 1525, 1048, 1979, 1040, - 1980, 2297, 1774, 1049, -146, 639, 1210, 1041, 34, -146, - 3099, 44, 1054, 2867, 1469, 1047, 2868, 1028, 48, 488, - 1043, 488, 31, 871, 2290, 488, 488, 1659, 2442, 1044, - 1662, 2443, 35, 1664, 2137, 488, 2138, 488, 488, 488, - 488, 488, 488, 488, 1059, 48, 36, 760, 2446, 2580, - 769, 2447, 1955, 1048, 2599, 1665, 1644, 2600, 1666, 1049, - 1470, 1050, 488, 33, 488, 2619, 1029, 1785, 1661, 772, - 488, 488, 488, 488, 488, 488, 488, 1210, -146, 1060, - 1055, 488, 488, 1051, 1077, 2762, 488, 2550, 1081, 2764, - 488, 2157, 1661, 488, 488, 488, 488, 488, 488, 488, - 488, 488, 2852, 2173, 488, 1955, 1023, 1806, 1025, 1050, - 2880, 488, 1214, 1661, 1130, 36, 762, 1210, 1218, 2883, - 1471, 2682, 2884, 684, 1220, 2900, 2904, -146, 2901, 2901, - 1215, 1678, 2498, 583, 1078, 1051, 488, 2922, 1053, 1222, - 2923, -1846, -1846, -1846, 1223, 2073, 2074, 2075, 2076, 2077, - 2078, 2961, 488, 627, 2923, 769, 1231, 2962, 496, 685, - 1661, -1826, -1826, 488, 488, 1050, 1233, 1004, 1079, 1472, - 1668, 1698, 1699, 1700, 1238, 1701, 1702, 1703, 1704, 1705, - 1706, -1196, 2652, 2354, 2655, 1895, 1082, 875, 1245, 2974, - 1053, 2407, 2901, 2996, 1242, 2272, 2997, 769, 772, 3026, - 1873, 1248, 3027, 633, 26, -1827, -1827, 1210, 760, 1210, - 2304, 3063, -1828, -1828, 2901, 1051, 1689, -147, 3081, 497, - 1083, 2923, -147, 1267, 1268, 2234, 2454, 2236, 2456, 1473, - -1829, -1829, -1830, -1830, 760, 760, 1055, 2879, 1246, 1265, - 1266, 31, 687, 2598, -1831, -1831, 1313, 1249, 1130, 3037, - 3038, 488, 488, 1261, 488, -1832, -1832, 2320, -1834, -1834, - -1835, -1835, 2422, 1051, -1836, -1836, 1882, 2408, 1668, 1262, - 1053, 634, 1210, 1965, 1264, 2327, 1296, 2555, 1299, 1911, - 760, 1302, 33, 1130, -1837, -1837, -1838, -1838, 1055, 488, - 1303, -147, 1273, 1274, 1322, 1983, 34, 1716, -1840, -1840, - 1054, 2409, 2350, 772, 1332, 2577, -1842, -1842, 1821, 2355, - -1845, -1845, 1567, 1568, 1928, 1267, 1268, 2410, 1053, 1051, - 35, 1856, 1857, 762, 1333, 2570, 1335, 2411, 874, 3090, - -343, 654, -350, 657, 36, 661, 1341, 2710, 1275, 1276, - -147, 874, 1343, 1130, 1342, 772, -198, -198, 1929, 635, - 1277, 1278, -202, -202, 488, -201, -201, 1445, 1447, 488, - 1344, 2412, -340, 1345, 36, 1347, -224, -225, 1055, 630, - 1935, 760, -341, 2173, 1053, 1348, 1349, 1351, 2850, 1352, - 1269, 1270, 1271, 1272, 1273, 1274, 1353, 1354, 1275, 1276, - -344, 500, 1384, 501, 1355, 1385, 488, 488, 488, 1386, - -342, 488, 1277, 1278, 1936, 1356, 1357, 1358, 1359, 488, - 488, 488, 488, 1363, 1375, 503, 1055, 1378, 504, 488, - 630, 1422, 1427, 488, 1428, 1425, 488, 1394, 1443, 1716, - 1453, 1457, 1452, 1027, -1846, 2308, 1029, 1493, 1491, 1632, - 1505, 1633, 2719, 2720, 488, 488, 1498, 1523, 2413, 488, - 1524, 44, 1525, 1530, 2546, 1531, -109, 1532, 1536, 1396, - 762, 516, 1543, 488, 1544, 516, 488, 1548, 488, 2887, - -109, 1558, 1055, 516, 1563, -109, 1570, 1571, 1575, 1588, - 1580, 496, 1581, 1591, 516, 516, 1594, 2887, 488, 636, - 1595, 1213, 1597, 1599, 1277, 1278, 1313, 892, 1605, 488, - 760, 1313, 44, 629, -1196, 2155, 1254, 1612, 769, 1614, - 1668, 485, 1615, 1314, 2597, 1620, 1621, 2029, 1657, 488, - 1624, 1625, 1626, 1627, -109, 1635, 1314, 630, 1662, 2110, - 1670, 1664, 1385, 1675, 488, 488, 1737, 1735, 516, 1742, - 1739, 1776, 497, 48, -109, 1740, 1370, 1758, 1741, 1639, - 1641, 488, 1765, 1665, 1777, 1779, 1666, 2155, 1800, 1801, - -1846, 1815, 1822, 485, 1828, 1829, 1830, 634, 488, 1835, - 639, 2550, 1846, 1845, 1847, 1866, -1846, 1848, 2471, 1849, - 769, -1846, 1850, 1716, 2472, 1867, 1210, 1210, 1210, 44, - 1869, 2971, 1884, -109, 1888, 486, 498, 2473, 769, 1890, - 515, 635, -109, 1889, 515, 760, 1952, 1279, 1280, 585, - 585, 588, 515, 595, 1960, 1956, 595, 1968, -1846, 595, - 618, 1969, 1988, 515, 515, 769, 2474, 1130, 2475, 1970, - 1551, 1984, 769, 1989, 1990, 1992, 1993, 1996, 1997, 762, - 763, 1998, 1999, 595, 2027, 2000, 2007, 760, 1887, 2008, - 2018, 2038, 2039, 2045, 2050, 769, 772, 2047, 1896, 2055, - 1899, 2107, 2048, 1910, 2696, 2049, 499, 2051, 2052, 1914, - 2112, 1916, 488, 1405, 2054, 2058, 618, 515, 618, 618, - 618, 2081, 2082, 1923, 2088, 2095, 2087, 2105, 1926, 2119, - 2129, 2128, 1931, 1932, 1933, 1934, 2131, 1938, 1939, 2132, - 2133, 2159, 2168, -203, -204, 1210, 2179, 874, 3021, 2182, - 2183, 2185, 2195, 2476, 500, 2718, 501, 2180, 2200, 1639, - 1641, 2202, 2188, 2203, 2838, 488, 2207, 2205, 772, 2208, - 1313, 2211, 502, 2230, 488, 2232, 2245, 488, 503, 672, - 488, 504, -109, 2251, 2259, 2260, 772, 488, 488, 488, - 488, 488, 2252, 630, 488, 488, 488, 488, 488, 488, - 488, 488, 488, 488, 875, -1846, 2253, 488, 488, 2261, - 2268, 488, 2271, 772, 2262, 2282, 2237, 769, 488, 2267, - 772, 2477, 488, 1061, 630, 2279, 2478, 2278, 2283, 2289, - 2382, 488, 2293, 2286, 488, 2295, 488, 2311, 2302, 2303, - 762, 630, 1062, 772, 488, 2319, 663, 488, 488, 1017, - 664, 2062, 488, 488, 2084, 2083, 488, 2351, 2352, 1645, - 2353, 2356, 670, 2368, 2370, 2385, 762, 762, 488, 2479, - 488, 2396, 2371, 44, 2155, 2140, 2155, 769, 2374, 2406, - 485, 2550, 485, 488, 2420, 2480, 1061, 763, 2424, 1061, - 2429, 1338, 2433, 1063, 2430, 2435, 2438, 2440, 2444, 997, - 2453, 2459, 2460, 2928, 1646, 1062, 2486, -1846, 1062, 488, - 2466, 1346, 762, 2502, 1412, 1413, 1414, 1415, 1416, 1417, - 2567, 2568, 2569, 2583, 2587, 2573, 488, 2582, 2594, 2596, - 1647, 2606, 1314, 1042, 2603, 1955, 2610, 2309, 2609, 2310, - 2611, 2612, 2639, 2315, 2316, 2642, 2645, 769, 1648, 1368, - 2613, 2648, 1649, 2627, 2640, 2649, 1063, 2656, 2661, 1063, - 2662, 2663, 2664, 2666, 1210, 2553, 1210, 2678, 1210, 1225, - 1227, 1229, 1230, 2683, 1650, 2684, 2685, 1651, 2546, 2689, - 2693, 2694, 2695, 2481, 1064, 2703, 2994, 2706, 2708, 2964, - 2482, 2709, 1652, 2713, -751, 2726, 2727, -1812, 760, -1813, - -1814, -1815, 516, 762, -1816, 1582, 2575, 1632, 2736, -1817, - 1584, 2998, -1818, 1585, 1586, -1819, 2738, -1820, 2734, 639, - 639, -1821, 639, 2494, 763, 772, -1822, 2591, -1823, 2592, - -1825, 516, 516, -1826, 2975, 1065, 2977, -1827, 2751, -1828, - 1313, 488, 2725, 1066, -1829, 2902, -1830, 1064, 2902, -1831, - 1064, -1832, -1834, -1835, -1836, 1067, -1837, -1838, -1839, -1840, - -1841, 2752, 2754, -1842, -1843, -1844, -1845, -752, 2739, 2757, - 760, 2760, 2928, 2761, 2942, 2775, 2788, 2815, 769, 2793, - 2811, 2818, 2824, 2826, 1653, 2816, 1068, 2828, 760, 488, - 488, 2840, 1654, 2841, 488, 772, 2842, 2849, 1065, 488, - 2851, 1065, 488, 488, 2856, 2857, 1066, 488, 2858, 1066, - 2871, 2872, 2881, 769, 516, 760, 2885, 2893, 1067, 2895, - 2913, 1067, 760, 2916, 618, 2894, 2897, 2905, 679, 2907, - 488, 680, 762, 1070, 488, 1655, 2155, 2909, 2919, 2935, - 2155, 515, 485, 2702, 2939, 760, 485, 2941, 2943, 1068, - 2548, 2987, 1068, 2946, 2952, 1071, 2957, 2958, 2959, 2963, - 2967, 2285, 488, 2968, 2976, 2979, 2980, 2982, 2993, 680, - 515, 515, 2995, 3000, 670, 1073, 3005, 3011, 2671, 3012, - 2673, 3013, 3017, 3018, 3019, 769, 3028, 3029, 3030, 2630, - 488, 3032, 3035, 3045, 3048, 3050, 1070, 3062, 488, 1070, - 3064, 3065, 3046, 763, 3067, 3047, 3083, 3092, 3096, 3088, - 585, 3089, 3097, 3101, 2265, 1019, 2758, 488, 1071, 2305, - 1454, 1071, 1435, 2171, 1865, 2970, 772, 2984, 3068, 985, - 985, 595, 595, 2181, 595, 1488, 1842, 762, 1073, 2428, - 1487, 1073, 3031, 2978, 618, 2915, 1492, 1864, 2546, 2184, - 2400, 2899, 2667, 515, 2638, 2395, 2966, 2965, 2972, 2654, - 2973, 2553, 1679, 2814, 3033, 3061, 1681, 760, 1685, 1686, - 3034, 1805, 2103, 2174, 2126, 2042, 1951, 2124, 618, 762, - 1448, 618, 987, 2162, 1384, 3043, 2670, 1385, 2427, 3009, - 2836, 1386, 2716, 3079, 3044, 3051, 3073, 1515, 2870, 2235, - 2210, 769, 44, 2586, 3042, 2470, 3049, 2556, 3040, 2206, - 2270, 1637, 1629, 1915, 618, 618, 618, 618, 1608, 1394, - 2501, 2743, 2228, 2505, 874, 2167, -1846, 760, 1501, 44, - 488, 1506, 1824, 772, 2960, 1500, 488, 769, 2668, 2449, - 2036, 2674, 2448, 2581, 1533, 488, 488, 2992, 2817, 488, - 1826, 1396, 3039, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 488, 763, 1557, 0, 0, 769, 2155, - 0, 769, 488, 0, 0, 485, -1571, 488, 2155, 0, - 488, 0, 2451, 2155, 485, 0, 2155, 488, 488, 485, - 763, 763, 485, 0, 0, 0, 1766, 760, 0, 0, - 488, 0, 488, 0, 0, 0, 2155, 0, 0, 2503, - 0, 0, 485, 1384, 0, 0, 1385, 0, 0, 488, - 1386, 2120, 0, 0, 2557, 2558, 2559, 2560, 2561, 2562, - 2563, 2564, 2565, 2566, 0, 0, 763, 0, 0, 0, - 0, 0, 0, 1374, 0, 0, 0, 0, 1394, 2553, - 0, 0, -1846, 0, 0, -1846, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, -1846, 0, - 0, -1571, 0, -1846, 2854, 0, 0, 0, 0, 0, - 1396, 488, 0, 0, 488, 772, 0, 2155, 0, 0, - 0, 891, 0, 485, 2062, 0, 630, 0, 2063, 44, - 0, 2064, 2065, 2066, 516, 516, 0, 1590, 488, 1314, - -1846, 0, 488, 0, 0, 1334, 772, 0, 2155, 772, - 0, 0, 0, -1571, 485, 488, 0, 763, 760, 0, - 0, 0, 0, 0, 0, 0, 0, -1571, 0, 0, - 488, 0, -1571, 488, 0, 0, 0, -1571, 0, 0, - 2375, 0, 1210, 0, 0, 0, -1571, 488, 0, 0, - -1571, 0, 0, 760, 0, 1405, 0, 0, 0, 0, - 0, 769, 0, 0, 0, 2813, 0, 0, 0, 0, - 0, -1846, 515, 0, 0, 0, 0, 0, 0, 891, - 762, -1571, 2062, 0, 44, 2954, 2063, -1846, 0, 2064, - 2065, 2066, -1846, 0, 0, 0, 0, 0, 488, 0, - 0, -1571, 0, 0, 2155, 0, 0, 0, 0, 0, - 485, 0, 0, 0, 0, 618, 0, 0, 0, 488, - 0, 488, 0, 488, 2548, 760, 0, 488, 0, -1846, - 765, 0, 0, 515, 515, 0, 0, 488, 0, 0, - 0, 0, 2697, 2155, 2985, 0, 763, -1846, 0, 485, - -1571, 0, 762, -1571, 0, 0, 0, 488, 0, -1571, - 0, 0, 618, 618, 1504, 0, 618, 1514, 0, 0, - 762, 0, 0, 0, 0, 0, 0, 488, 0, 618, - 0, 0, 0, 0, 1405, 0, 0, 0, 0, 0, - 488, 0, 2068, -1571, 0, 0, 618, 762, 0, 0, - 618, 1368, 1814, 0, 762, 0, 0, 0, 0, 2553, - 0, 1210, 0, 0, 0, 0, -1571, 0, 0, 0, - 0, 0, 0, 1823, 0, 1825, 0, 762, 0, 0, - 0, 0, 0, 488, 0, 0, 488, 488, 0, 2155, - 3052, 760, 0, 0, 0, 485, 0, 0, 0, -1846, - 2948, 763, 1368, 0, 0, 0, 1412, 1413, 1414, 1415, - 1416, 1417, 2069, 0, 0, 0, 0, 1860, 2067, 488, - 1766, 0, 2140, 0, 0, 0, -1846, 760, 0, 516, - 516, 0, 516, 0, 0, 0, 2130, 0, 0, 0, - 2068, 0, 0, 763, 0, 0, 0, 0, 0, -1571, - 0, 0, 2147, 0, 0, 0, 766, -1571, 760, 0, - 488, 760, 0, 0, 0, 0, 0, 44, 0, 0, - 768, 0, 0, 0, -1571, 0, -1571, -1571, 0, 0, - 0, 0, 0, 891, 1572, 0, 2062, 765, 0, 0, - 2063, 0, 618, 2064, 2065, 2066, 0, 0, 0, 762, - 0, 1602, 1961, 1963, 2147, 0, 0, 0, 0, 629, - 2069, 0, 0, -1571, 0, 0, -1571, -1571, -1571, 0, - 0, 0, 0, 0, 0, 2839, 0, 0, -1846, 0, - 1619, 0, 0, 0, 0, 1412, 1413, 1414, 1415, 1416, - 1417, 0, 0, 0, 2548, 2847, 2848, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 762, - 0, 2859, 0, 0, 0, 680, 680, 0, 515, 515, - 0, 515, 680, 0, 0, 0, 891, 0, 0, 2062, - 1265, 1266, 0, 2063, 0, 0, 2064, 2065, 2066, 0, + 484, 1212, 68, 1074, 47, 681, 585, 585, 1011, 1551, + 51, 1042, 487, 61, 83, 643, 1370, 1216, 488, 1254, + 1313, 564, 870, 630, 1456, 760, 1213, 1550, 54, 1217, + 1806, 62, 612, 73, 77, 1515, 1318, 1298, 999, 2189, + 1301, 1260, 2194, 776, 1707, 1491, 2163, 1376, 1849, 73, + 1458, 1852, 645, 2219, 1522, 1526, 2148, 646, 616, 1609, + 1562, 2576, 1076, 1424, 1080, 784, 1084, 2555, 871, 1613, + 2549, 778, 2148, 1329, 2575, 2121, 1432, 1745, 1746, 2182, + 2212, 40, 1555, 41, 651, 42, 44, 45, 628, 46, + 2584, 2588, 587, 2059, 2060, 1240, 1241, 48, 2080, 49, + 50, 52, 53, 2264, 2399, 2358, 55, 2405, -729, 56, + 876, 64, 65, 2417, 1819, 492, 892, 659, -754, 66, + 67, -380, 76, 78, 79, 2748, 1252, 80, 81, 2062, + -97, 1035, 1261, 2063, 2255, 2256, 2257, 1439, 1261, -754, + 1000, 2108, 2109, -1670, -1677, -380, 1038, -751, -751, -1671, + 1261, -1817, -1817, 583, -1672, -377, 2273, -1818, -1818, -377, + -1673, 583, -1819, -1819, 1961, 892, 1873, 1304, -1820, -1820, + 3, 4, 993, -1674, -100, -1677, -1843, -1843, -1686, 1587, + 620, -1821, -1821, -1824, -1824, -1692, -1833, -1833, 1971, -1694, + -1686, -1696, -1694, -1839, -1839, -755, -755, -1841, -1841, -1844, + -1844, 1870, 1261, -752, -752, -372, -1670, 1535, -1671, -1672, + 1538, 1539, -1673, -1674, -339, 2690, -352, 2263, -1692, 2041, + 2312, 2314, -1696, 1759, 1759, -97, -602, 3046, 2773, 1518, + 1260, -367, 2157, -602, 493, 2734, 635, 1680, 2832, 2846, + 1553, -50, 1385, 2951, 2439, 2744, 1386, 2729, 2157, 2794, + 2877, 1682, 2283, 1244, 2724, 583, 1518, 2888, 640, 1048, + 2415, 2705, 2674, 694, 2821, 1049, 1796, 2247, 583, -100, + 2924, 2921, 2348, 1797, 1394, 1253, 2585, 2890, 1560, 1436, + 1307, 583, 1307, 1527, 2749, 892, 2873, 892, 2906, 1561, + 1240, 1241, 1684, 1780, 2874, 26, 1385, -1814, -1814, 2750, + 1386, 2923, 2992, 2458, 892, 1876, 1396, 1001, 1507, 1002, + 1295, -622, 1577, 84, 684, 2471, 1252, -801, -622, 1577, + 1473, 598, -801, 2931, 636, 640, 2891, 3093, 1394, 1846, + 2062, 1957, 31, 1606, 2063, 1534, 1366, 580, 2687, 2701, + 1540, 2699, 638, 3014, 1945, 2172, 2821, 3082, 2215, 1031, + 685, 870, 579, 2324, 2417, 2426, 870, 2405, 85, 1213, + 1396, 582, 2723, 2474, 2647, 1716, 1385, 2457, 2651, -313, + 1386, 1050, 2740, 33, 2223, 1545, 1377, 3002, 1803, 2243, + 2173, 2903, 2932, 2448, 1578, 2593, 2272, 2398, 3100, 2743, + 2950, 2737, 2244, 1437, 623, 2212, 1321, 2212, 1394, 1546, + 2607, 1549, 2500, 2859, 2062, 1434, 26, 1510, 2063, -224, + 639, 2688, 1877, 631, 2700, 3069, 1847, -97, 994, 1781, + 1722, 1262, 2844, 1033, 599, 36, 1474, 1262, 1669, 1504, + 1396, 1579, 1434, 687, 632, 1782, 2925, 2586, 1579, 1262, + 1783, 3080, 2889, 31, 2328, 2329, 2330, 2331, 2332, 1244, + 1343, 2336, 2337, 2338, 2339, 2340, 2341, 2342, 2343, 2344, + 2345, -100, 2892, 2875, 2827, 3036, 1525, 1253, 1564, 1707, + 870, 870, 1034, 2773, 2675, 1234, 1528, 1784, 581, 670, + -97, 2751, 1541, 2837, 33, 2216, 1859, 3094, 640, 995, + 1542, 1262, 727, 3016, 1565, 1886, 671, 2702, 34, 2601, + 1946, 2637, 886, 1944, 2376, 2377, -313, 621, 2679, 2821, + 3003, 3042, 3053, 2605, 1438, 2009, 1683, 2165, 2835, 1235, + 1804, 2184, 35, 2478, -100, 1051, 2947, 1551, 633, 2572, + 2010, 1502, 756, 630, 2197, 1659, 36, 1670, 1525, 2691, + 869, 667, 668, 2192, 3047, 2853, 1503, 1967, 2833, 2555, + 2608, 873, 2549, 637, 1451, 3025, 2275, 1212, 2730, 1512, + 695, 2157, 494, 2157, 2333, 877, 2479, 585, 879, 1554, + 1870, 2012, 2014, 2015, 1598, 1263, 1052, 1958, 73, 1255, + 1053, 1297, 2480, -602, 1760, 2123, 689, 3004, 1003, 1043, + 990, -97, 645, 1300, 484, 484, 2248, 646, 1944, 2774, + 663, 1256, -729, 1255, 664, 2005, 2783, 2264, 2821, 2681, + 1054, 2787, -754, 2078, 2789, 1257, 3015, 484, 1337, 2763, + 36, 3074, 1817, 1798, 1785, 1256, 1004, 1366, 641, 2467, + -97, 3084, -97, -754, 68, -100, 47, -1670, -1677, 1259, + 1610, 1611, 51, -1671, 2949, 61, 83, 2148, -1672, -377, + 1238, 2148, 878, 2468, -1673, 1380, 1125, 484, 1208, 1644, + 54, 647, 1359, 62, 1024, 73, 77, -1674, -622, -1677, + 2956, 2955, -1686, 1513, -100, 69, -100, 1013, 1055, -1692, + 2481, 2678, 1921, -1694, -1686, -1696, -1694, 2482, 662, -755, + -755, 69, 1924, 663, 1236, 1927, 1668, 664, 677, -372, + -1670, 2487, -1671, -1672, 2334, 69, -1673, -1674, 1242, 1589, + 1246, 629, -1692, 40, 2335, 41, -1696, 42, 44, 45, + 1667, 46, 1366, 1716, 1716, -367, 1417, 1674, 1716, 48, + 1756, 49, 50, 52, 53, 760, 1668, 1213, 55, 756, + 1720, 56, 2097, 64, 65, 2680, 2898, 1707, 644, 1430, + 1618, 66, 67, 3020, 76, 78, 79, 69, 2575, 80, + 81, 2733, 1820, 1743, 2728, 496, 1311, 1312, 1311, 1312, + 1212, 1716, 1716, 2488, 1545, 1527, 484, 1414, 1415, 1416, + 1417, 3085, 870, 1833, 1668, 2714, 2715, 2445, 1377, 2024, + 1061, 1987, 1668, 2220, 1213, 2011, 2013, 692, 1546, 776, + 1630, 1237, 2363, -801, -801, 2026, 1634, 1277, 1278, 1062, + 2296, 2075, 2076, 2077, 2078, 696, 2300, 1476, 2746, 2743, + 1891, 2555, 1891, 2157, 2549, 1636, 497, 2157, 871, 1631, + 2101, 3075, 2707, 693, 1031, 1048, 1048, 1271, 1272, 698, + 2712, 1049, 1049, 2830, 2741, 1412, 1413, 1414, 1415, 1416, + 1417, 1048, 2446, 2166, 1551, 2698, 2489, 1049, 1048, 1048, + 1063, 1320, 1913, 1477, 1049, 1049, 1320, 2747, 1370, 869, + 1994, 2861, 1747, 3095, 869, 1125, 756, 663, 1892, 1919, + 2209, 664, 2258, 2073, 2074, 2075, 2076, 2077, 2078, 2148, + 1031, 2016, 484, 2017, 2148, 1032, 2019, 2148, 697, 1762, + 517, 1385, 1025, 1527, 517, 2221, 1277, 1278, 1033, 73, + 3076, 1883, 517, 782, 2142, 2143, 1527, 1281, 1282, 583, + 3022, 484, 2862, 517, 517, 1212, 1940, 1941, 1942, 2372, + 2326, 2863, 2249, 1966, 596, 2192, 2186, 3077, 1920, 630, + 614, 484, 484, 484, 1379, 484, 484, 1050, 1050, 3023, + 880, 1064, 1048, 1382, 673, 1476, 674, 1930, 1049, 2349, + 2864, 881, 1937, 1050, 1033, 1396, 1834, 1431, 1528, 484, + 1050, 1050, 1479, 1255, 1638, 882, 2113, 517, 1441, 892, + 1320, 1320, 1518, 2284, 2927, 885, 2288, 2759, 869, 869, + 1991, 2031, 652, 1519, 2461, 1256, 2032, 1518, 500, 884, + 501, 1477, 1065, 2114, 1895, 1026, 1465, 1466, 1521, 1472, + 1066, 646, 646, 1034, 646, 886, 1281, 1282, 1255, 1527, + 1527, 1556, 1067, 484, 887, 504, 2646, 484, 484, 2148, + 1525, 2865, 1480, 998, 1559, 26, 2657, 2845, 484, 2660, + 1256, 992, 1527, 2866, 1588, 87, 1922, 2033, 1024, 1305, + 2945, 1925, 1306, 1068, 1257, 756, 2157, 1588, 1640, 1051, + 1014, 1478, 26, 892, 1050, 2157, 1385, 663, 1007, 2408, + 2157, 1433, 31, 2157, 1716, 1716, 1716, 1716, 1716, 2462, + 1125, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, + 1716, 1125, 2157, 1250, 1251, 682, 1528, 2671, 1394, 31, + 1070, 1051, 1051, 2409, 1552, 988, 989, 2003, 991, 1528, + 1479, 2091, 1015, 33, 2222, 1125, 2223, 1051, 1017, 2653, + 870, 2115, 1071, -146, 1051, 1051, 2116, 34, -146, 2411, + 1396, 2195, 1018, 870, 1716, 1716, 892, 2246, 2250, 1707, + 33, 2878, 1073, 1021, 2224, 2463, 2987, 2464, 2037, 1022, + 2111, 35, 1078, 1082, 34, 2407, 1053, 1053, 1525, 2498, + 2254, 2231, 1370, 2233, 1029, 1835, 26, 683, 1882, 69, + 1480, 1525, 1053, 1768, 2157, 1928, 1935, 2491, 35, 1053, + 1053, 2618, 1449, 2161, 2308, 1450, 1079, 1083, 2776, 1255, + 772, 1044, 36, 2777, 663, 2455, -729, -146, 664, 496, + 1769, 1658, 1054, 31, 1659, 2157, 675, 88, 676, 1929, + 1936, 1256, 1528, 1528, 1208, 89, 756, 2571, 1051, 1046, + 69, 629, -1196, 1582, 2490, 1259, 2499, 3070, 3071, 1584, + 3091, 2408, 1585, 1586, 2867, 1528, 484, 2868, 2387, 2388, + 2389, 2390, 756, 756, 33, 1660, -146, 3054, 1661, 1045, + 2413, 90, 3043, -109, 1055, 1055, 684, 756, 34, 2090, + 497, 2092, 2093, 496, 1047, 2409, 3072, -109, 2117, 2437, + 1055, 1059, -109, 1053, 1525, 1525, 1060, 1055, 1055, 2118, + 3098, 2410, 35, 1981, 1954, 1982, -1196, 1955, 644, 2298, + 2299, 2411, 685, 2135, 1077, 2136, 36, 1525, 91, 1995, + 869, 2157, 1661, 1054, -1812, -1812, 92, 69, 2269, 491, + 2137, 873, 2138, 1770, 1965, 543, 1208, 2001, 1771, 1081, + 2002, -109, 3099, 1772, 497, 2412, 597, 1214, 686, 484, + 610, 484, 1218, 1689, 1665, 484, 484, 2157, 73, 2020, + 2237, -109, 2021, 2238, 1220, 484, 2784, 484, 484, 484, + 484, 484, 484, 484, 2241, 2030, 1215, 2242, 1644, 2034, + 1662, 2035, 1222, 1663, 2290, 73, 1666, 1659, -1813, -1813, + 2435, 1055, 484, 2436, 484, 687, -1815, -1815, 498, 756, + 484, 484, 484, 484, 484, 484, 484, 1208, 2547, 1223, + -109, 484, 484, -1816, -1816, 2440, 484, 772, 2441, -109, + 484, 517, 1231, 484, 484, 484, 484, 484, 484, 484, + 484, 484, 2413, 26, 484, -1822, -1822, 2192, 1806, 2762, + 2234, 484, 2236, 1233, 1125, 2580, 1821, 1208, 1955, 1238, + 517, 517, 500, 1245, 501, 2498, 2157, 2454, 2599, 2456, + 2682, 2600, 1384, 1266, 2619, 1385, 484, 1661, 499, 1386, + 31, 1242, -1846, -1846, -1846, 1004, 503, 2764, 1246, 504, + 1661, 1668, 1837, 891, 1248, 1773, 2062, 1895, 2852, 484, + 2063, 1955, 1249, -1846, -1846, -1846, 1774, 1394, 1303, 2354, + 484, 484, 1265, 891, 1395, 1716, 2062, -1823, -1823, 2880, + 2063, 33, 1661, 2064, 2065, 2066, 500, 1296, 501, 870, + 2785, 2883, 1299, 2900, 2884, 34, 2901, -1825, -1825, 1396, + 2365, 756, 1268, 517, 502, 891, 1302, 1208, 2062, 1208, + 503, 2304, 2063, 504, 515, 2064, 2065, 2066, 544, 35, + 2904, 2320, 2919, 2901, 772, 2920, 589, 2961, 2962, -109, + 2920, 1661, 2974, 36, 2407, 2901, 1668, 627, 627, 2327, + 2995, 69, 3026, 2996, 1048, 3027, 3063, 1322, 1125, 2901, + 1049, 484, 484, 1332, 484, 3081, 2598, 1061, 2920, 1338, + 3037, 2879, 3038, 1028, 1333, 1030, 2350, 1335, 2422, 1913, + -343, 2556, 1208, 2355, -350, 2652, 1062, 2655, 1341, 1346, + -1826, -1826, 1342, 1125, -1827, -1827, 1344, 1972, 1343, 484, + 1345, 655, 36, 663, -1828, -1828, 1017, 664, -1829, -1829, + 1397, -1830, -1830, 1347, 756, -1831, -1831, 1716, -1832, -1832, + 2408, -1834, -1834, 2577, 2570, -224, 1398, 1368, -1835, -1835, + 1320, 1399, -1836, -1836, 2029, -225, 2710, 1063, 869, -1837, + -1837, -1838, -1838, 1320, 1440, -1840, -1840, -1842, -1842, 3090, + -340, 869, 1348, 1125, 2409, 756, -1845, -1845, 489, 1567, + 1568, 1871, 1872, 516, 484, -341, 1050, 516, 1402, 484, + 2410, 1349, 586, 586, 588, 516, 593, -198, -198, 593, + 2411, 1351, 593, 618, 1352, 2850, 516, 516, 1353, 2192, + 1279, 1280, 1281, 1282, 2068, -202, -202, -201, -201, 1445, + 1447, 630, 644, 644, 2067, 644, 484, 484, 484, 1354, + -344, 484, 1355, 772, 2412, -342, 1356, 1357, 1358, 484, + 484, 484, 484, 1405, 1359, 1375, 2068, 1378, 1064, 484, + 2552, 1363, 1422, 484, 593, 1425, 484, 1427, 1693, 618, + 516, 618, 618, 618, 2069, 1694, 1452, 1428, 1695, 1696, + 1697, 1453, 630, 1443, 484, 484, 1457, 1462, 1645, 484, + 1032, 2308, 1034, 1498, 2069, 2719, 2720, 1500, 1505, 1524, + 1523, 1716, 1525, 484, 1530, 1531, 484, 1532, 484, 1065, + 1536, 1543, 1213, 1544, 2887, 1548, 1558, 1066, 2597, 1563, + 1570, 1571, 1575, 1580, 638, 1581, 2069, 1668, 484, 1067, + 1588, 2413, 2887, 1646, 1591, 1594, 1595, 1596, -147, 484, + 1599, 892, 1254, -147, 1605, 1407, 1612, 1625, 1614, 1615, + 1051, 2155, 630, 1635, 1621, 484, 1622, 488, 1626, 1647, + 1068, 1627, 1665, 1628, 1670, 1657, 1675, 2155, 1385, 1735, + 1737, 1741, 1374, 488, 484, 1776, 1739, 1648, 1758, 1740, + 1765, 1649, 1742, 1777, 1800, 1779, 1801, 1822, 1662, 484, + 484, 1663, 639, 73, 1666, 1370, 1815, 1829, 1828, 1830, + 2547, 1069, 1831, 1650, 772, 1053, 1651, 1070, 484, 1838, + 639, 1850, -147, 1860, 1862, 1861, 1865, 1863, 1881, 1864, + 1884, 1652, 1888, 1889, 2240, 1890, 1208, 1208, 1208, 1071, + 772, 772, 640, 517, 517, 1072, 2971, 1952, 1956, 1960, + 1969, 1968, 1970, 1984, 1988, 772, 1989, 1408, 1990, 1073, + -1846, -1846, -1846, 1992, 1412, 1413, 1414, 1415, 1416, 1417, + 2027, -147, 1997, 1551, 2039, 1993, 1996, 1125, 2018, 670, + 640, -1846, -1846, -1846, 1998, 2073, 2074, 2075, 2076, 2077, + 2078, 1999, 2050, 2000, 2007, 2107, 2112, 2008, 2038, 2045, + 2047, 2070, 2071, 2072, 2048, 2073, 2074, 2075, 2076, 2077, + 2078, 2049, 2051, 1055, 756, 2696, 2052, 2054, 2128, 2058, + 69, 2055, 484, 1653, 2081, 2087, 2082, 2088, 2095, 2718, + 2105, 1654, 2119, 2070, 2071, 2072, 2129, 2073, 2074, 2075, + 2076, 2077, 2078, 2133, 2131, 2132, 2159, 69, 2169, 1320, + 2171, 2183, 2185, 2178, 2309, 1208, 2310, 869, 2187, 2191, + 2315, 2316, -203, -204, 2198, 691, 2199, 3021, 2203, 2201, + 2202, 2205, 2208, 2211, 1655, 484, 2207, 772, 756, 2230, + 2232, 2245, 2251, 2259, 484, 2260, 2252, 484, 2267, 2838, + 484, 2261, 2253, 2262, 2278, 781, 756, 484, 484, 484, + 484, 484, 2281, 2268, 484, 484, 484, 484, 484, 484, + 484, 484, 484, 484, 1766, 2382, 870, 484, 484, 2282, + 641, 484, 2271, 756, 2285, 630, 891, 2286, 484, 2062, + 756, 2289, 484, 2063, 2293, 2311, 2064, 2065, 2066, 2295, + 2319, 484, 2302, 2084, 484, 2303, 484, 2062, 2370, 2083, + 2351, 2385, 2352, 756, 484, 2371, 630, 484, 484, 2140, + 2353, 2396, 484, 484, 2420, 2406, 484, 2356, 2424, 2434, + 2368, 2438, 2432, 630, 2449, 69, 2374, 627, 484, 2447, + 484, 2453, 2547, 2486, 2582, 2459, 2590, 618, 2429, 2430, + 2155, 679, 2155, 484, 680, 2460, 488, 2466, 488, 2502, + 2594, 2596, 2567, 484, 516, 2930, 2568, 2569, 2573, 772, + 2606, 2583, 2609, 1955, 2648, 2603, 2610, 2611, 2639, 484, + 2613, 2612, 2627, 2642, 2640, 2649, 2645, 2656, 517, 517, + 2661, 517, 680, 516, 516, 2662, 2663, 2664, 2666, 2677, + 2685, 2683, 2684, 2689, 2693, 2694, 2695, 2703, 1384, 2706, + 2708, 1385, 2552, 2709, 2735, 1386, 1698, 1699, 1700, 2736, + 1701, 1702, 1703, 1704, 1705, 1706, 2713, 2726, -751, 2554, + -1812, 2738, 1208, 586, -1813, 2725, 1208, 2548, 1208, 2727, + 2745, -1814, -1815, 1394, -1816, 1061, -1817, -1818, 2964, -1819, + -1846, 670, 985, 985, 593, 593, -1820, 593, -1821, 2754, + 2788, 2760, -1822, -1823, 1062, 2817, 1061, 618, -1825, 2574, + 69, 2994, 772, -1826, 1582, 1396, 516, -1827, -1828, 2902, + 1584, 2998, 2902, 1585, 1586, 1062, 618, -1829, 2739, 618, + 2975, 2591, 2977, 2592, -1830, 756, -1831, 2068, -1832, -1834, + 2752, 2823, -1835, 2811, -1836, -1837, -1838, -1839, -1840, -1841, + 654, 484, 657, 772, 661, 1063, 2492, -1842, -1843, 2840, + -1844, -1845, -752, 2757, 2493, 2761, 2815, 2775, 2793, 2826, + 2825, 2828, 2841, 2930, 2842, 2849, 1063, 618, 618, 618, + 618, 2851, 2856, 2857, 2860, 2942, 2871, 2881, 2872, 2885, + 2893, 2894, 2909, 2895, 2897, 2905, 2907, 2913, 2916, 484, + 484, 2921, 2935, 2702, 484, 756, 2939, 2069, 891, 484, + 2943, 2062, 484, 484, 2941, 2063, -1846, 484, 2064, 2065, + 2066, 2946, 2494, 2952, 2957, 2958, 2959, 2963, 2979, 1368, + 2967, 2980, -1846, 2968, 2976, 2366, 2982, -1846, 517, 2993, + 484, 2997, 3000, 2494, 484, 3011, 1064, 3005, 517, 3012, + 517, 3017, 2155, 517, 3013, 2668, 2155, 3018, 488, 517, + 3019, 517, 488, 3028, 2989, 3029, 484, 1064, 3030, 3035, + 3032, 3045, 2630, 517, -1846, 3048, 2670, 2672, 517, 3050, + 1368, 3062, 517, 517, 517, 517, 3064, 517, 517, 3046, + 3065, 3067, 3092, 3047, 3083, 3096, 3088, 1065, 1766, 3089, + 484, 3097, 3101, 1019, 1915, 1066, 2716, 2505, 484, 2501, + 2228, 1825, 2265, 2305, 2130, 2758, 3009, 1067, 1065, 2495, + 3079, 2836, 3044, 3051, 2552, 3073, 1066, 484, 1514, 1405, + 2147, 2870, 2210, 2235, 2589, 3041, 756, 2470, 1067, 3049, + 2506, 2471, 2206, 3040, 2270, 69, 2147, 2472, 1068, 2581, + 629, 2443, 1459, 1608, 1637, 2960, 1629, 2442, 2673, 2988, + 2473, 2816, 3039, 1454, 2167, 1435, 2190, 627, 1880, 1068, + 2970, 2984, 2548, 1495, 1494, 3068, 2200, 1857, 1334, 2428, + 3031, 2978, 2915, 2667, 2168, 1879, 2400, 2654, 2899, 2474, + 1499, 2475, 2395, 2966, 2638, 1070, 2965, 2972, 1679, 2973, + 2814, 1681, 1685, 1686, 2070, 2071, 2072, 3033, 2073, 2074, + 2075, 2076, 2077, 2078, 3034, 3061, 1070, 1071, 2103, 2068, + 1805, -1846, 2042, 2193, 2742, 2126, 1320, 1951, 2124, 2162, + 2427, 1824, 987, 2669, 869, 0, 2036, 1073, 1071, 2496, + 484, 0, 2497, 756, 0, 516, 484, 0, 0, 0, + 0, 0, 0, 0, 0, 484, 484, 0, 1073, 484, + 0, 0, 517, 763, 0, 0, 0, 765, 0, 1374, + 0, 0, 772, 484, 0, 0, 2476, 0, 0, 0, + 0, 0, 484, 0, 0, 2155, 0, 484, 618, 2069, + 484, 488, 2813, 0, 2155, 0, 0, 484, 484, 2155, + 488, 0, 2155, 0, 0, 488, 516, 516, 488, 484, + 0, 484, 0, 618, 618, 0, 1464, 0, 0, 0, + 0, 2155, 0, -1846, 0, 0, 0, 488, 0, 484, + 1412, 1413, 1414, 1415, 1416, 1417, 772, 0, 0, 618, + 1517, 0, 0, 0, 2477, 0, 1525, 0, 0, 2478, + 0, 2554, 618, 0, 772, 0, 0, 517, 672, 2548, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 618, + 0, 0, 0, 618, 0, 0, 0, 0, 2854, 0, + 0, 772, 0, 0, 0, 0, 0, 0, 772, 0, + 0, 484, 2479, 0, 484, 756, 0, 0, 0, 0, + 0, 0, 0, 2155, 0, 0, 0, 0, 2480, 488, + 0, 772, 0, 1368, 0, 0, 0, 0, 484, 0, + 0, 0, 484, 0, 0, 0, 756, 0, 630, 756, + 0, 0, 0, 0, 2155, 484, 0, 0, 0, 0, + 488, 0, 0, 0, 1368, 0, 0, 0, 0, 484, + 0, 0, 484, 1632, 0, 1633, 0, 0, -1571, 2394, + 0, 2397, 1208, 0, 0, 0, 0, 484, 0, 0, + 763, 0, 0, 0, 765, 0, 0, 2948, 997, 0, + 0, 0, 0, 0, 0, 0, 2070, 2071, 2072, 0, + 2073, 2074, 2075, 2076, 2077, 2078, 0, 1020, 0, 2954, + 517, 0, 0, 0, 0, 0, 2481, 1574, 0, 0, + 0, 0, 0, 2482, 0, 618, 0, 0, 484, 0, + 0, 0, 0, 0, 1604, 0, 0, 0, 0, 0, + 2155, 0, 0, 0, 0, 772, 488, 0, 0, 484, + 0, 484, 0, 484, 0, 0, 0, 484, 1225, 1228, + 1229, 1230, 1061, -1571, 484, 0, 0, 1620, 2985, 0, + 0, 0, 0, 0, 0, 0, 2155, 0, 0, 0, + 0, 1062, 488, 0, 0, 0, 0, 484, 0, 0, + 0, 0, 69, 0, 0, 0, 0, 0, 680, 680, + 0, 516, 516, 772, 516, 680, 0, 484, 0, 0, + 0, 0, 0, 0, 69, -1571, 69, 763, 0, 0, + 484, 765, 0, 0, 0, 0, 0, 0, 0, -1571, + 0, 0, 1063, 2554, -1571, 0, 0, 0, 0, -1571, + 1208, 2548, 0, 0, 0, 0, 0, 0, -1571, 0, + 0, 0, -1571, 0, 1709, 0, 0, 0, 0, 0, + 0, 0, 0, 484, 3052, 1734, 484, 484, 0, 0, + 766, 0, 1887, 772, 0, 2155, 0, 0, 0, 0, + 0, 488, 1896, -1571, 1899, 0, 0, 1910, 0, 0, + 0, 0, 0, 1914, 891, 1916, 0, 2062, 680, 484, + 0, 2063, 0, -1571, 2064, 2065, 2066, 1923, 0, 0, + 0, 0, 1926, 0, 0, 0, 1931, 1932, 1933, 1934, + 0, 1938, 1939, 1064, 0, 0, 0, 0, 0, 985, + 618, 2147, 0, 0, 0, 2147, 891, 0, 0, 2062, + 484, 0, 517, 2063, 0, 0, 2064, 2065, 2066, 0, + 0, 618, -1571, 618, 0, -1571, 0, 0, 0, 69, + 69, -1571, 0, 2621, 1844, 1845, 0, 0, 0, 517, + 0, 0, 0, 0, 1065, 0, 0, 0, 0, 0, + 0, 0, 1066, 0, 517, 517, 517, 517, 517, 517, + 517, 517, 517, 517, 1067, -1571, 763, 0, 0, 0, + 765, 0, 618, 0, 772, 0, 0, 0, 0, 0, + 1517, 516, 0, 0, 0, 0, 0, 0, -1571, 0, + 0, 516, 1897, 516, 1901, 1068, 516, 0, 0, 0, + 0, 0, 516, 0, 516, 0, 0, 0, 0, 0, + 772, 0, 0, 0, 0, 680, 516, 0, 0, 0, + 680, 516, 0, 0, 0, 516, 516, 516, 516, 0, + 516, 516, 0, 0, 0, 0, 0, 0, 0, 1448, + 0, 0, 1070, 0, 2140, 0, 0, 766, 0, 0, + 618, 618, 1964, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1071, 1461, 0, 0, 1980, 0, + 0, -1571, 0, 0, 0, -1846, 0, 69, 0, -1571, + 0, 772, 0, 0, 1073, 0, 0, 0, 0, 0, + 1506, 0, 0, 0, 0, 0, -1571, 0, -1571, -1571, + 0, 0, 0, 1533, 0, 0, 0, 768, 0, 0, + 2641, 0, 0, 0, 0, 0, 0, 2068, 0, 0, + 0, 0, 0, 0, 1557, 2659, 0, 763, 0, 0, + 0, 765, 0, 0, 0, -1571, 0, 0, -1571, -1571, + -1571, 0, 0, 2147, 0, 2069, 0, 0, 2147, 0, + 0, 2147, 0, 763, 763, 0, 0, 765, 765, 0, + 0, 1632, -39, 0, 0, 0, 0, 0, 763, 0, + 0, 0, 765, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 517, 1, 766, 0, 0, 2069, 0, 0, + 0, 0, 0, 2, 0, 3, 4, 772, 0, 0, + 0, 0, 0, 0, 0, 516, 0, 0, 0, 0, + 0, 5, 516, 0, 0, 0, 0, 0, 769, 0, + 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 69, 7, 772, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 8, 0, 0, 0, 0, 0, 1709, + 0, 0, 0, 0, 0, 9, 0, 10, 0, 0, + 1269, 1270, 0, 0, 772, 0, 1590, 772, 0, 0, + 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, + 0, 618, 0, 2147, 0, 0, 0, 2158, 0, 12, + 763, 0, 0, 0, 765, 0, 1368, 0, 0, 13, + 516, 0, 0, 2158, 2277, 14, 0, 2177, 0, 0, + 2180, 1844, 0, 15, 768, 16, 17, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, + 0, 0, 0, 0, 0, 0, 1271, 1272, 0, 0, + 0, 0, 2070, 2071, 2072, 0, 2073, 2074, 2075, 2076, + 2077, 2078, 69, 0, 517, 0, 0, 0, 19, 0, + 0, 0, 0, 766, 1574, 0, 0, 2792, 0, 0, + 2795, 0, 0, 20, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 2070, 2071, 2072, 0, 2073, 2074, + 2075, 2076, 2077, 2078, 0, 0, 0, 0, 0, 21, + 0, 1273, 1274, 1275, 1276, 1277, 1278, 0, 0, 1279, + 1280, 69, 0, 0, 0, 517, 0, 0, 0, 0, + 0, 0, 763, 0, 518, 769, 765, 1574, 0, 0, + 0, 0, 618, 0, 0, 517, 517, 0, 0, 0, + 1574, 618, 618, 516, 0, 618, 0, 0, 0, 0, + 517, 768, 0, 0, 891, 0, 0, 2062, 0, 0, + 0, 2063, 618, 0, 2064, 2065, 2066, 0, 0, 772, + 0, 1814, 0, 0, 2301, 0, 22, 519, 0, 23, + 0, 2622, 0, 0, 517, 0, 0, 0, 0, 0, + 680, 0, 1823, 520, 1826, 1269, 1270, 0, 0, 0, + 0, 0, 2795, 0, 1574, 1574, 1384, 69, 24, 1385, + 0, 0, 0, 1386, 0, 1281, 1282, 25, 0, 0, + 0, 0, 0, 0, 766, 763, 517, 1709, 0, 765, + 771, 26, 0, 0, 0, 0, 2451, 0, 27, 0, + 0, 1394, 28, 1875, 0, 0, 0, 521, -1846, 0, + 766, 766, 29, 0, 0, 0, 0, 522, 0, 0, + 0, 0, 769, 2503, 30, 766, 763, 0, 31, 523, + 765, 1271, 1272, 1396, 524, 0, 0, 0, 2557, 2558, + 2559, 2560, 2561, 2562, 2563, 2564, 2565, 2566, 0, 0, + 0, 0, 1678, 0, 583, 0, 0, 0, 0, 0, + 0, 525, 0, 0, 32, 0, 517, 0, 0, 33, + 2792, 0, 0, 618, 618, 618, 489, 0, 2158, 2404, + 2404, 1962, 1963, 34, 0, 2404, 2419, 0, 1283, 1284, + 768, 0, 0, 0, 0, 0, 1273, 1274, 1275, 1276, + 1277, 1278, 0, 2110, 1279, 1280, 526, 35, 1285, 0, + 527, 0, 0, 0, 0, 1844, 0, 0, 0, 0, + 0, 36, 0, 0, -39, 2068, 0, 0, 0, 0, + 0, 0, 0, 618, -1846, 516, 2792, 0, 0, 1574, + 1517, 1574, 0, 1604, 0, 0, 0, 766, 0, 0, + -1846, 0, 0, 0, 0, -1846, 0, 0, 0, 0, + 1269, 1270, 516, 0, 2504, 0, 0, 0, 0, 0, + 0, 0, 0, 528, 0, 0, 0, 516, 516, 516, + 516, 516, 516, 516, 516, 516, 516, 529, 0, 0, + 0, 0, -1846, 0, 0, 2069, 0, 771, 0, 0, + 1980, 769, 0, 0, 618, 0, 968, 968, 0, 0, + 1281, 1282, 0, 0, 1517, 0, 0, 0, 0, 0, + 530, 0, 0, 531, 0, 1604, 0, 0, 0, 0, + 0, 532, 0, 0, 533, 0, 1271, 1272, 0, 0, + 0, 0, 0, 1574, 0, 0, 0, 1405, 0, 0, + 0, 768, 0, 534, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 2697, 535, 1127, 1132, + 0, 0, 0, 0, 536, 0, 0, 768, 768, 766, + 0, 0, 0, 537, 0, 0, 0, 0, 0, 538, + 0, 0, 768, 2614, 0, 0, 0, 0, 0, 0, + 0, 1273, 1274, 1275, 1276, 1277, 1278, 0, 0, 1279, + 1280, 0, 2139, 0, 539, 0, 0, 2632, 0, 618, + 618, 618, 618, 1283, 1284, 0, 2404, 2419, 0, 2404, + 2404, 0, 0, 516, 771, 0, 0, 0, 2158, -1846, + 0, 0, 2158, 0, 0, 763, 0, 0, 516, 765, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 2365, 0, 0, 0, 0, 0, 2070, - 2071, 2072, 0, 2073, 2074, 2075, 2076, 2077, 2078, 0, - 0, 1709, 0, 0, 765, 0, 0, 0, 0, 762, - 0, 891, 1734, 0, 2062, 0, 0, 2917, 2063, 516, - 0, 2064, 2065, 2066, 0, 0, 0, 0, 0, 516, - 0, 516, 0, 0, 516, 0, 1267, 1268, 2366, 0, - 516, 760, 516, 766, 0, 680, 0, 0, 0, 0, - 0, 0, 0, 0, 516, 0, 0, 768, 0, 516, - 0, 0, 0, 516, 516, 516, 516, 0, 516, 516, - 0, 0, 0, 0, -1846, 0, 985, 618, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 2070, 2071, 2072, - 0, 2073, 2074, 2075, 2076, 2077, 2078, 0, 618, 0, - 618, 1269, 1270, 1271, 1272, 1273, 1274, 0, 0, 1275, - 1276, 891, 0, 2139, 2062, 1368, 0, 0, 2063, 0, - 0, 2064, 2065, 2066, 0, -1573, 0, 0, 0, 0, - 0, 0, 0, 0, 763, 0, 0, 0, 2621, 0, - 762, 0, 618, 0, 2069, 0, 1368, 0, 0, 0, - 0, 0, 1875, 0, 1877, 0, 0, 1514, 515, 0, - 0, 2394, 0, 2397, 0, 0, 0, 2068, 515, 1897, - 515, 1901, 0, 515, 0, 762, 0, 0, 0, 515, - 766, 515, 0, 765, 0, 0, 0, 0, 0, 0, - 0, 0, 680, 515, 768, 0, 0, 680, 515, 0, - 0, 0, 515, 515, 515, 515, 763, 515, 515, 0, - 0, 0, 0, 0, 0, 1277, 1278, 0, 0, 0, - -1573, 0, 2068, 0, 763, 0, 0, 618, 618, 1964, - 0, 0, 0, 0, 0, 0, 0, 2069, 0, 0, - 0, 0, 891, 516, 1972, 2062, 0, 762, 0, 2063, - 1374, 763, 2064, 2065, 2066, 0, 0, 0, 763, 0, - 0, 0, 0, 0, 2266, 0, 0, 0, 0, 2622, - 0, 0, -1573, 2274, 2275, 2277, 0, 0, 0, 0, - 0, 763, 0, 0, 0, 44, -1573, 0, 0, 0, - 0, -1573, 2069, 0, 2294, 0, -1573, 0, 0, 0, - 0, 0, 0, 0, 0, -1573, 44, 0, 44, -1573, + 0, 0, 769, 0, 985, 0, 0, 0, 2177, 0, + 0, 0, 0, 1844, 0, 0, 0, 0, 0, 1709, + 0, 0, 766, 0, 0, 1517, 0, 0, 769, 769, + 0, 1574, 2070, 2071, 2072, 0, 2073, 2074, 2075, 2076, + 2077, 2078, 0, 769, 680, 516, 0, 0, 0, 763, + 0, 0, 618, 765, 768, 1281, 1282, 0, 0, 0, + 0, 0, 0, 766, 0, 0, 0, 763, 0, 2717, + 0, 765, 0, 0, 0, 0, 0, 0, 0, 0, + 0, -1846, 0, 0, 0, 0, 0, 0, 1412, 1413, + 1414, 1415, 1416, 1417, 763, 0, 0, 0, 765, 0, + 0, 763, 0, 2266, 0, 765, 0, 0, 0, 0, + 0, 0, 2274, 2276, 0, 0, 2280, 0, 0, 0, + 0, 0, 0, 0, 763, 0, 0, 1127, 765, 0, + 0, 0, 0, 2294, 0, 0, 0, 0, 0, 2839, + 0, 0, 0, 0, 1339, 1574, 0, 0, 0, 0, + 0, 0, 0, 771, 0, 1980, 0, 0, 0, 2847, + 2848, 0, 0, 0, 0, 769, 2756, 0, 1283, 1284, + 0, 0, 0, 1350, 2858, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 768, 0, 0, 0, + 0, 0, 0, 1360, 1361, 1362, 0, 0, 1369, 0, + 0, 0, 2770, 0, 0, 0, 0, 0, 0, 0, + 0, 489, 2404, 0, 2781, 0, 0, 516, 0, 0, + 2158, 1426, 0, 0, 0, 2158, 0, 0, 2158, 0, + 516, 0, 0, 516, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 2822, 763, 0, + 2917, 0, 765, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 2068, 0, 0, 0, 0, 0, 1279, 1280, - 0, 0, 0, 0, 0, 0, 0, 0, 516, 0, - -1573, 2070, 2071, 2072, 765, 2073, 2074, 2075, 2076, 2077, - 2078, 0, 0, 0, 0, 0, 0, 0, 0, 766, - -1573, 0, 0, 762, 0, 0, 0, 0, 0, 0, - 765, 765, 0, 768, 0, 0, 0, 0, 0, 0, - 0, 0, 515, 0, 0, 0, 0, 0, 0, 515, - 0, 0, 2069, 0, 0, 0, 0, 0, 0, 762, - 0, 0, 0, 763, 0, 0, 0, 0, 0, -1573, - 0, 0, -1573, 0, 0, 0, 765, 0, -1573, 0, - 0, 0, 0, 2147, 0, 0, 1709, 2147, 0, 0, - 762, 0, 0, 762, 2070, 2071, 2072, 0, 2073, 2074, - 2075, 2076, 2077, 2078, 0, 2391, 2392, 2393, 0, 0, - 0, 0, -1573, 2068, 0, 0, 0, 44, 618, 44, - 0, 0, 0, 763, 2158, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, -1573, 0, 515, 0, 0, - 0, 0, 0, 0, 0, 0, 2436, 0, 0, 2070, - 2071, 2072, 516, 2073, 2074, 2075, 2076, 2077, 2078, 0, - 0, 0, 0, 0, 0, 0, 0, 765, 0, 0, - 0, 0, 0, 0, 0, 0, 2158, 0, 2187, 0, - 766, 2192, 0, 2069, 0, 1877, 0, 0, 0, 0, - 0, 2140, 0, 763, 768, 0, 0, 0, 0, 0, - 0, 1572, 0, 0, 0, 0, 766, 766, 0, 0, + 0, 0, 0, 0, 0, 1471, 0, 0, 516, 1485, + 1490, 0, 0, 0, 2391, 2392, 2393, 0, 0, 768, + 0, 0, 0, 0, 0, 0, 0, 769, 516, 516, + 0, 0, 0, 0, 0, 0, 763, 0, 0, 618, + 765, 1517, 0, 516, 771, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 618, 0, 0, 2822, + 768, 0, 1127, 0, 0, 0, 0, 0, -1573, 0, + 771, 771, 0, 1127, 2450, 0, 0, 516, 0, 0, + 0, 0, 0, 0, 0, 771, 0, 0, 0, 0, + 2158, 0, 0, 0, 0, 516, 0, 1127, 0, 0, + 0, 0, 0, 0, 0, 0, 763, 0, 0, 0, + 765, 0, 766, 2912, 0, 0, 0, 985, 0, 516, + 0, 0, 0, 0, 0, 0, 0, 0, 618, 0, + 769, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 680, 2579, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 618, 0, + 0, 0, 0, -1573, 0, 0, 0, 0, 0, 0, + 0, 769, 0, 0, 0, 0, 766, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 489, 0, 0, 0, + 0, 0, 0, 0, 766, 2969, 0, 0, 0, 516, + 0, 0, 0, 516, 0, 0, 0, 771, 0, 0, + 0, 0, 0, 0, 0, -1573, 0, 0, 0, 0, + 0, 766, 2822, 680, 680, 680, 0, 0, 766, -1573, + 0, 0, 0, 0, -1573, 0, 0, 763, 0, -1573, + 0, 765, 0, 0, 0, 0, 0, 0, -1573, 0, + 0, 766, -1573, 0, 1517, 0, 0, 0, 0, 0, + 2633, 2634, 2635, 2636, 0, 0, 0, 0, 0, 516, + 0, 0, 0, 763, 0, 0, 0, 765, 0, 0, + 0, 2912, 0, -1573, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1844, 0, 0, 0, 0, + 0, 0, 0, -1573, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1517, 0, 1673, 0, 0, + 0, 2822, 0, 0, 0, 0, 0, 1692, 0, 1710, + 0, 0, 1721, 1724, 1729, 1732, 0, 2781, 680, 771, + 0, 0, 0, 0, 763, 0, 0, 0, 765, 0, + 0, 0, -1573, 2704, 0, -1573, 1744, 0, 0, 0, + 0, -1573, 1748, 1749, 1750, 1751, 1752, 1753, 1754, 0, + 0, 0, 0, 1763, 1764, 766, 0, 0, 1775, 768, + 0, 0, 1778, 0, 0, 1786, 1787, 1788, 1789, 1790, + 1791, 1792, 1793, 1794, 1319, -1573, 1795, 0, 0, 1319, + 0, 0, 0, 968, 0, 0, 1127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1573, 0, - 768, 768, 0, 0, 0, 0, -1573, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 2579, 0, 0, 0, - 0, 0, 0, -1573, 0, -1573, -1573, 0, 0, 2070, - 2071, 2072, 766, 2073, 2074, 2075, 2076, 2077, 2078, 0, - 44, 0, 0, 0, 1572, 0, 768, 0, 0, 618, - 0, 0, 0, 0, 0, 0, 0, 1572, 618, 618, - 618, 0, -1573, 0, 0, -1573, -1573, -1573, 0, 0, - 0, 515, 0, 762, 0, 0, 765, 0, 0, 618, + 0, 0, 0, 0, 0, 0, 0, 0, 1827, -1587, + 0, 0, 0, 766, 0, 0, 0, 0, 0, 0, + 0, 0, 771, 768, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 2301, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 763, 2147, 0, 680, 0, 0, - 2147, 0, 0, 2147, 0, 0, 0, 0, 0, 0, - 0, 1572, 1572, 766, 0, 0, 0, 0, 0, 0, - 0, 2633, 2634, 2635, 2636, 0, 0, 768, 0, 763, - 0, 0, 0, 0, 1709, 0, 0, 0, 0, 0, - 0, 0, 0, 516, 0, 0, 0, 0, 0, 0, - 2070, 2071, 2072, 0, 2073, 2074, 2075, 2076, 2077, 2078, + 763, 768, 1361, 1362, 765, 0, 0, 0, 0, 0, + 1384, 0, 0, 1385, 2140, 0, 0, 1386, 1387, 1388, + 1389, 1390, 1391, 771, 0, 0, 1381, 0, 768, 0, + 769, 0, 0, 0, 0, 768, 763, 1392, 0, 0, + 765, -1573, 0, 766, 0, 1394, 0, 0, 0, -1573, + 0, 1319, 1395, 1319, 1319, 0, 0, 0, 768, 0, + 0, 0, 0, 0, -1587, 0, -1573, 763, -1573, -1573, + 763, 765, 0, 0, 765, 0, 0, 1396, 0, 0, + 1127, 0, 0, 1948, 1949, 0, 1950, 0, 0, 0, + 0, 0, 0, 0, 769, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, -1573, 0, 0, -1573, -1573, + -1573, 0, 769, 0, 0, 1127, -1587, 0, 0, 0, + 0, 1319, 0, 0, 1319, 1319, 0, 0, 0, 0, + -1587, 0, 0, 0, 0, -1587, 0, 0, 0, 769, + -1587, 0, 0, 0, 0, 0, 769, 0, 0, -1587, + 2855, 0, 0, -1587, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 2876, 0, 769, + 0, 0, 0, 0, 766, 1127, 0, 0, 1397, 0, + 0, 0, 768, 0, -1587, 0, 2040, 0, 0, 0, + 0, 2046, 0, 0, 1398, 0, 0, 0, 0, 1399, + 0, 0, 0, 0, -1587, 0, 0, 0, 0, 0, + 766, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1400, 1401, 0, 0, 0, 0, 0, 0, 0, + 2061, 0, 0, 0, 0, 0, 1402, 0, 0, 2926, + 768, 1729, 0, 1729, 1729, 0, 0, 0, 0, 0, + 0, 2099, 0, -1587, 0, 2102, -1587, 0, 2104, 0, + 0, 0, -1587, 0, 0, 0, 0, 0, 0, 2953, + 0, 0, 763, 0, 1403, 0, 765, 1404, 0, 0, + 0, 766, 0, 0, 0, 0, 0, 0, 0, 0, + 1420, 1405, 0, 769, 1406, 2122, -1587, 0, 2125, 0, + 2127, 0, 0, 0, 0, 1607, 0, 0, 0, 0, + 768, 0, 0, 0, 0, 0, 1616, 0, 1617, -1587, + 0, 0, 0, 0, 0, 0, 0, 1623, 0, 0, + 0, 1420, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 771, 0, 1624, 0, 0, 0, 0, 0, + 0, 769, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1471, 0, 0, 0, + 1639, 1641, 0, 0, 0, 2140, 0, 0, 0, 0, + 0, 1490, 1793, 1407, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 766, 0, 0, + 2204, 0, -1587, 1676, 1677, 0, 771, 1690, 1691, 0, + -1587, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 769, 0, 0, 771, 0, 0, -1587, 0, -1587, + -1587, 0, 0, 766, 0, 0, 0, 0, 0, 0, + 0, 768, 0, 0, 0, 0, 0, 0, 0, 1420, + 0, 771, 0, 0, 1420, 0, 0, 0, 771, 1127, + 0, 0, 0, 0, 766, 0, -1587, 766, 0, -1587, + -1587, -1587, 0, 0, 0, 0, 0, 768, 0, 0, + 0, 771, 0, 0, 0, 1408, 0, 0, 1409, 1410, + 1411, 0, 1412, 1413, 1414, 1415, 1416, 1417, 0, 0, + 0, 0, 0, 0, 2292, 2053, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 516, 765, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 44, 0, 516, 516, 516, 516, 516, - 516, 516, 516, 516, 516, 0, 0, 0, 0, 0, - 0, 763, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 765, 2704, 0, 0, 0, 0, 0, - 618, 618, 618, 486, 0, 2158, 2404, 2404, 0, 0, - 0, 0, 2404, 2419, 0, 2147, 1265, 1266, 0, 0, - 0, 0, 766, 0, 0, 0, 0, 0, 1368, 0, - 0, 0, 0, 0, 0, 0, 768, 0, 0, 0, - 0, 618, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1048, 0, 0, 0, 0, 0, 1049, 0, 1877, - 0, 0, 515, 0, 1061, 0, 1572, 1514, 1572, 0, - 1602, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1062, 44, 0, 0, 0, 0, 515, - 0, 2504, 1267, 1268, 0, 0, 0, 763, 0, 0, - 0, 0, 0, 1061, 515, 515, 515, 515, 515, 515, - 515, 515, 515, 515, 0, 0, 0, 968, 968, 0, - 0, 2641, 1062, 0, 0, 0, 1972, 766, 0, 0, - 0, 618, 0, 763, 1063, 0, 2659, 0, 1514, 0, - 0, 768, 0, 44, 0, 0, 0, 0, 0, 0, - 0, 0, 1602, 0, 0, 0, 0, 1269, 1270, 1271, - 1272, 1273, 1274, 1050, 763, 1275, 1276, 763, 0, 766, - 1572, 0, 0, 1063, 2492, 0, 0, 0, 0, 1125, - 1132, 0, 2493, 768, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 516, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 2614, 0, 0, 0, 0, 1064, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 44, - 2494, 0, 0, 0, 2632, 0, 618, 618, 618, 618, - 0, 2855, 0, 2404, 2419, 0, 2404, 2404, 0, 0, - 515, 0, 0, 0, 1064, 2158, 0, 0, 2876, 2158, - 0, 1277, 1278, 0, 0, 515, 1065, 0, 0, 0, - 0, 0, 0, 0, 1066, 0, 0, 0, 0, 0, - 0, 0, 1709, 0, 0, 0, 1067, 985, 0, 0, - 0, 0, 2192, 0, 765, 0, 1877, 0, 0, 0, - 0, 0, 1514, 1384, 0, 1065, 1385, 1051, 1572, 0, - 1386, 0, 0, 1066, 0, 0, 0, 1068, 0, 0, - 0, 680, 515, 0, 0, 1067, 0, 2495, 0, 618, - 2926, 0, 0, 0, 0, 0, 0, 0, 1394, 0, - 0, 0, 0, 0, 0, -1846, 2717, 0, 0, 0, - 0, 0, 0, 0, 0, 516, 1068, 763, 1069, 0, - 2953, 0, 1053, 0, 1070, 0, 765, 0, 2792, 0, - 1396, 2795, 0, 0, 1279, 1280, 0, -1587, 0, 0, - 0, 0, 0, 0, 765, 0, 1071, 0, 1125, 0, - 0, 0, 1072, 0, 1281, 0, 0, 0, 0, 0, - 0, 0, 0, 1070, 0, 1339, 1073, 0, 0, 0, - 0, 765, 0, 0, 0, 0, 516, 0, 765, 0, - 0, 0, 1572, 0, 0, 1071, 0, 0, 0, 0, - 0, 1972, 0, 0, 1350, 0, 516, 516, 0, 0, - 2378, 765, 0, 2755, 0, 1073, 0, 2496, 0, 0, - 2497, 0, 516, 0, 1360, 1361, 1362, 0, 0, 1369, - 1055, 0, 0, 0, 0, 0, 1384, 0, 0, 1385, - 766, -1846, -1587, 1386, 0, 0, -1846, -1846, -1846, 2770, - 0, 0, 1426, 0, 768, 516, 0, -1846, 486, 2404, - 0, 2781, -1846, 0, 515, 0, 0, 2158, 0, 0, - 0, 1394, 2158, 2795, 0, 2158, 0, 515, 1395, 0, - 515, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, -1587, 2821, 0, 0, 516, -1846, - 0, 1464, 0, 1396, 0, 1478, 1483, 0, -1587, 0, - 0, 0, 766, -1587, 0, 0, 0, 0, -1587, 0, - 0, 0, 0, 0, 1525, 515, 768, -1587, 0, 0, - 766, -1587, 0, 765, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 768, 515, 515, 0, 0, 0, - 0, 0, 0, 0, 1405, 0, 618, 766, 1514, 0, - 0, 515, -1587, 1125, 766, 0, 0, 0, 0, 0, - 0, 768, 0, 618, 1125, 0, 2821, 516, 768, 0, - 0, 2792, -1587, 0, 0, 0, 0, 766, 0, 0, - 0, 0, 0, 765, 515, 0, 0, 0, 1125, 0, - 0, 768, 0, 0, 1397, 0, 0, 2158, 0, 0, - 0, 0, 515, 0, 0, 0, 0, 0, 0, 0, - 1398, 0, 0, 0, 0, 1399, 0, 0, 0, 0, - 2912, -1587, 0, 0, -1587, 985, 0, 515, 0, 0, - -1587, 0, 0, 0, 0, 618, -1846, 2792, 0, 0, + 0, 0, 0, 0, 0, 1869, 1869, 0, 768, 0, + 0, 0, 769, 0, 0, 0, 0, 2318, 0, 0, + 0, 0, 0, 0, 0, 0, 2322, 0, 0, 2323, + 0, 0, 2325, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 769, 0, + 0, 0, 0, 0, 0, 0, 1319, 0, 0, 2346, + 2347, 0, 0, 1827, 0, 771, 1319, 0, 0, 1319, + 0, 0, 0, 0, 2357, 0, 0, 0, 0, 0, + 0, 0, 0, 2364, 0, 0, 2367, 0, 2369, 0, + 0, 0, 0, 0, 0, 0, 2373, 0, 0, 0, + 0, 0, 0, 0, 2380, 2381, 0, 0, 2384, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 769, + 0, 1420, 0, 771, 768, 0, 0, 0, 0, 766, + 0, 0, 1420, 0, 0, 2423, 1717, 0, 0, 0, + 2004, 2006, 1420, 1420, 1420, 2431, 0, 0, 0, 0, + 0, 1420, 0, 0, 0, 0, 0, 0, 0, 0, + 768, 2444, 0, 1319, 0, 0, 0, 0, 0, 0, + 0, 0, 1383, 0, 0, 0, 1319, 1384, 0, 0, + 1385, 0, 0, 0, 1386, 1387, 1388, 1389, 1390, 1391, + 0, 768, 0, 771, 768, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1392, 0, 0, 1393, 1420, 0, + 0, 0, 1394, 0, 0, 0, 0, 1384, 0, 1395, + 1385, 0, 0, 0, 1386, 0, 0, 1389, 1390, 1391, + 0, 0, 0, 0, 0, 769, 0, 0, 0, 0, + 0, 0, 0, 0, 1396, 0, 0, 0, 0, 0, + 0, 0, 1394, 1420, 0, 0, 0, 0, 0, 1395, + 0, 0, 0, 0, 0, 0, 0, 1420, 0, 0, + 0, 769, 1420, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1396, 0, 0, 0, 0, 0, + 0, 0, 0, 2602, 0, 0, 0, 0, 0, 0, + 0, 0, 769, 0, 0, 769, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 680, 1402, 765, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, -1587, 618, 0, 0, 0, 0, + 0, 0, 0, 0, 771, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 2164, + 0, 2615, 2616, 0, 0, 1397, 2617, 0, 0, 0, + 0, 2620, 0, 0, 2623, 2624, 0, 0, 0, 2628, + 771, 1398, 0, 0, 0, 0, 1399, 0, 0, 0, + 0, 0, 0, 0, 2196, 2196, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1397, 0, 0, 1400, 1401, + 0, 0, 0, 0, 0, 0, 768, 0, 0, 0, + 0, 1398, 0, 1402, 0, 0, 1399, 0, 968, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, -1587, 0, 0, - 0, 0, 0, 486, 0, 0, 0, 0, 0, 766, - 0, 0, 2969, 0, 0, 0, 515, 1405, 0, 0, - 515, 0, 0, 768, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 680, 680, - 680, 0, 2821, 0, 0, 0, 0, 0, -1846, 0, - 0, 0, 0, 2140, 0, 1412, 1413, 1414, 1415, 1416, - 1417, 0, 0, 0, 0, 0, 0, 0, 0, 766, - 0, 1514, 0, 0, 0, 0, 0, 0, 0, 0, - -1587, 0, 0, 768, 0, 0, 515, 0, -1587, 0, - 0, 0, 0, 0, 765, 0, 0, 0, 2912, 0, - 0, 0, 0, 0, 0, -1587, 0, -1587, -1587, 1407, - 0, 0, 1877, 0, 0, 0, 0, 0, 1673, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1692, 765, - 1710, 0, 1514, 1721, 1724, 1729, 1732, 0, 2821, 766, - 0, 0, 0, 0, -1587, 0, 0, -1587, -1587, -1587, - 0, 0, 0, 768, 2781, 680, 0, 1744, 0, 0, - 0, 0, 0, 1748, 1749, 1750, 1751, 1752, 1753, 1754, - 0, 0, 0, 0, 1763, 1764, 0, 0, 0, 1775, - 0, 0, 0, 1778, 0, 0, 1786, 1787, 1788, 1789, - 1790, 1791, 1792, 1793, 1794, 0, 0, 1795, 0, 0, - 0, 765, 0, 0, 968, 0, 0, 1125, 0, 0, - 0, 1408, 0, 0, -1846, -1846, -1846, 0, 1412, 1413, - 1414, 1415, 1416, 1417, 0, 0, 0, -39, 0, 1827, + 0, 0, 0, 0, 0, 0, 0, 0, 1400, 1401, + 0, 771, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1403, 2692, 1402, 1404, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1420, 0, 0, 1405, 0, + 0, 1406, 0, 0, 0, 0, 0, 0, 0, 2711, + 0, 0, 0, 0, 1420, 0, 0, 0, 0, 0, + 0, 1403, 0, 0, 1404, 0, 0, 0, 0, 0, + 0, 0, 1420, 0, 1717, 1717, 0, 2079, 1405, 1717, + 0, 0, 0, 1420, 0, 0, 1420, 769, 0, 0, + 0, 1420, 0, 0, 1420, 2297, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1420, 0, 0, 0, + 1420, 1420, 1420, 1420, 1420, 1420, 1420, 0, 0, 0, + 0, 0, 1717, 1717, 0, 1420, 1420, 771, 0, 0, + 1407, 0, 0, 0, 0, 0, 0, 1420, 0, 0, + 1420, 0, 0, 0, 0, 0, 0, 0, 1420, 1420, + 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 0, 0, + 0, 0, 0, 771, 0, 0, 0, 0, 2099, 0, + 1407, 0, 0, 0, 0, 0, 0, 2765, 2766, 0, + 0, 2767, 0, 0, 0, 0, 0, 0, 0, 1420, + 0, 0, 0, 0, 771, 0, 0, 771, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, - 0, 0, 1420, 0, 0, 0, 1361, 1362, 2, 0, - 3, 4, 0, 0, 0, 0, 0, 0, 0, 0, - 766, 0, 0, 0, 0, 0, 5, 0, 0, 0, - 0, 0, 0, 0, 768, 6, 0, 0, 0, 0, - 0, 0, 0, 1420, 0, 0, 0, 7, 0, 0, - 0, 0, 0, 0, 0, 766, 0, 0, 8, 0, - 0, 0, 0, 0, 0, 0, 0, 765, 0, 768, - 9, 0, 10, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 2809, + 2810, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1408, 2824, 0, 1409, 1410, 1411, 0, 1412, + 1413, 1414, 1415, 1416, 1417, 0, 0, 0, 0, 0, + 0, 2834, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 11, 1125, 0, 0, 1948, 1949, 0, 1950, 0, 0, - 0, 0, 0, 765, 12, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 13, 0, 0, 0, 0, 0, - 14, 0, 0, 0, 0, 0, 1125, 766, 15, 0, - 16, 17, 0, 1384, 765, 0, 1385, 765, 0, 0, - 1386, 768, 0, 0, 18, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1420, - 0, 0, 0, 0, 0, 0, 1420, 0, 1394, 0, - 0, 0, 0, 19, 0, -1846, 0, 0, 0, 0, - 0, 0, 1384, 0, 0, 1385, 1125, 0, 20, 1386, - 0, 0, 0, 0, 0, 0, 1384, 2040, 0, 1385, - 1396, 0, 2046, 1386, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 21, 0, 0, 1394, 1384, 0, - 0, 1385, 0, 0, -1846, 1386, 1387, 1388, 1389, 1390, - 1391, 1394, 0, 0, 0, 0, 0, 0, -1846, 0, - 0, 2061, 0, 766, 0, 1392, 0, 0, 0, 1396, - 0, 0, 1729, 1394, 1729, 1729, 0, 768, 0, 0, - 1395, 0, 2099, 1396, 0, 0, 2102, 0, 0, 2104, - 2379, 0, 0, 0, 0, 0, 0, 0, 0, 766, - 0, 0, 0, 0, 0, 1396, 0, 0, 0, 0, - 0, 22, 0, 768, 23, 0, 0, 0, 0, 0, - 0, -1846, 0, 0, 0, 0, 2122, 0, 0, 2125, - 766, 2127, 0, 766, 0, 0, 0, -1846, 0, 2625, - 0, 0, -1846, 24, 768, 0, 0, 768, 0, 0, - 0, 0, 25, 0, 0, 0, 0, 765, 0, 0, - 0, 0, 0, 0, 0, 0, 26, 0, 0, 0, - -1846, 0, 0, 27, 0, 0, 0, 28, 0, -1846, - 0, 0, 1464, 0, -1846, 0, -1846, 29, 0, 0, - 0, -1846, 0, 1420, 0, 0, 0, 1483, 1793, 30, - -1846, 0, 0, 31, 1420, -1846, 1397, 0, 1717, 0, - 0, 0, 0, 0, 1420, 1420, 1420, 0, 0, 0, - 0, 0, 1398, 1420, 0, 0, 0, 1399, -1846, 0, - 0, 2204, 0, 0, 1405, 0, 0, 0, 0, 32, - 0, 0, -1846, 0, 33, 0, 0, 0, 0, 1400, - 1401, 0, 0, 0, 0, 0, 0, 0, 34, 0, - 0, 0, 0, 0, 1402, 0, 0, 0, 0, 0, + 0, 0, 1408, 0, 0, 1409, 1410, 1411, 0, 1412, + 1413, 1414, 1415, 1416, 1417, 0, 0, 0, 0, 1384, + 0, 0, 1385, 0, 0, 0, 1386, 1387, 1388, 1389, + 1390, 1391, 0, 0, 0, 0, 0, 0, 0, 0, + 1420, 1420, 1420, 0, 0, 0, 1392, 0, 0, 2361, + 0, 0, 0, 0, 1394, 0, 0, 0, 0, 0, + 0, 1395, 0, 0, 0, 0, 0, 0, 0, 0, + 2896, 0, 1319, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1396, 1369, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1420, 1384, 35, 1405, 1385, 0, 0, 0, 1386, 0, - 1125, 1389, 1390, 1391, 0, 0, 36, 1405, 0, -39, - 0, 0, 1403, 0, 0, 1404, 0, 0, 1392, 0, - 0, 0, 0, 0, 0, 0, 1394, 0, 1420, 1405, - 0, 0, 1406, 1395, 0, 0, -1846, 0, 0, 0, - 0, 0, 1420, 766, 0, 2292, 0, 1420, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 768, 1396, 0, + 0, 968, 0, 0, 2918, 0, 1384, 0, 0, 1385, + 0, 0, 0, 1386, 1387, 1388, 1389, 1390, 1391, 2937, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 771, + 0, 0, 1420, 1392, 0, 0, 0, 0, 1420, 0, + 0, 1394, 0, 0, 0, 0, 0, 0, 1395, 0, + 0, 2079, 2079, 1420, 0, 1717, 1717, 1717, 1717, 1717, + 0, 0, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, + 1717, 1717, 2079, 1396, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1397, 0, 0, + 0, 1420, 0, 0, 1420, 2809, 1420, 0, 0, 2981, + 2079, 2079, 0, 1398, 0, 0, 0, 0, 1399, 0, + 0, 0, 0, 0, 1420, 1717, 1717, 1420, 0, 1420, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 3010, + 1400, 1401, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1402, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 2809, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1397, 0, 0, 0, 0, 0, + 0, 0, 0, 1403, 0, 0, 1404, 0, 0, 0, + 1398, 0, 0, 0, 0, 1399, 1420, 0, 0, 0, + 1405, 0, 0, 1406, 0, 0, 0, 0, 3058, 3058, + 0, 0, 0, 0, 0, 0, 0, 1400, 1401, 0, + 1319, 0, 0, 0, 0, 1319, 0, 0, 0, 0, + 0, 0, 1402, 0, 0, 0, 0, 0, 0, 0, + 0, 3058, 0, 0, 0, 0, 1384, 0, 0, 1385, + 0, 0, 0, 1386, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, -1846, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 2318, -1846, - 0, 0, 0, 0, 0, 0, 0, 2322, 0, 0, - 2323, 0, 0, 2325, 0, 0, 0, 0, 0, 0, - 0, 1407, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, -1846, 0, - 2346, 2347, 0, 0, 1827, 1412, 1413, 1414, 1415, 1416, - 1417, 0, 0, 0, 0, 2357, 0, 0, 0, 1397, - 0, 0, 0, 0, 2364, 0, 0, 2367, 0, 2369, - 0, 0, 0, 0, 0, 1398, 0, 2373, 0, 0, - 1399, 0, 0, 0, 0, 2380, 2381, -1846, 0, 2384, - 0, 0, 0, 0, 1412, 1413, 1414, 1415, 1416, 1417, - 0, -1846, 1400, 1401, 0, 0, 0, 0, 1412, 1413, - 1414, 1415, 1416, 1417, 0, 0, 2423, 1402, 0, 0, - 0, 0, 0, 1408, 0, 0, 1409, 1410, 1411, 0, - 1412, 1413, 1414, 1415, 1416, 1417, 0, 1420, 0, 0, - 0, 0, 2437, 2053, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1403, 1420, 0, 1404, 2450, + 1403, 0, 0, 1404, 1639, 1641, 0, 0, 0, 0, + 0, 1394, 3058, 0, 1420, 0, 0, 1405, -1846, 0, + 1406, 0, 1407, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1405, 0, 1420, 1406, 1717, 1717, 0, 2079, - 0, 1717, 0, 0, 0, 1420, 0, 0, 1420, 0, - 0, 0, 0, 1420, 0, 0, 1420, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1420, 0, - 0, 0, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 0, - 0, 0, 0, 0, 1717, 1717, 0, 1420, 1420, 0, + 1420, 0, 0, 1396, 1420, 1420, 0, 1420, 0, 0, + 2079, 2079, 2079, 2079, 2079, 0, 0, 0, 2079, 2079, + 2079, 2079, 2079, 2079, 2079, 2079, 2079, 2079, 1420, 1420, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1420, - 0, 0, 1420, 0, 0, 0, 0, 0, 0, 0, - 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, - 0, 0, 0, 0, 1407, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 2602, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1420, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 2615, 2616, 0, 0, 0, 2617, 0, 0, - 0, 0, 2620, 0, 0, 2623, 2624, 0, 0, 0, - 2628, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1408, 0, 0, 1409, - 1410, 1411, 0, 1412, 1413, 1414, 1415, 1416, 1417, 0, + 0, 0, 0, 0, 0, 0, 1420, 0, 0, 1420, + 0, 1420, 0, 0, 0, 1420, 0, 0, 2079, 2079, + 0, 0, 1420, 1420, 0, 1384, 1420, 0, 1385, 1407, + 0, 0, 1386, 2120, 0, 1389, 1390, 1391, 0, 0, + 0, 0, 0, 0, 1408, 0, 0, 1409, 1410, 1411, + 0, 1412, 1413, 1414, 1415, 1416, 1417, 0, 0, 0, + 1394, 1738, 0, 0, -1846, 1420, 0, 1395, 0, 0, + 0, 0, 0, 1420, 0, 0, 0, 0, 0, 0, + -1846, 0, 0, 0, 0, -1846, 1420, 0, 1384, 0, + 0, 1385, 1396, 1639, 1641, 1386, 1387, 1388, 1389, 1390, + 1391, 0, 0, 0, 1319, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1392, 1717, 0, 0, 0, + 0, 0, -1846, 1394, 0, 0, 0, 0, 0, 0, + 1395, 1408, 0, 0, 1409, 1410, 1411, 0, 1412, 1413, + 1414, 1415, 1416, 1417, 0, 0, 0, 0, 1738, 1384, + 0, 0, 1385, 0, 0, 1396, 1386, 1387, 1388, 1389, + 1390, 1391, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1048, 0, 0, 0, 1392, 1405, 1049, 0, + 0, 0, 0, 0, 1394, 1061, 0, 0, 0, 0, + 0, 1395, 0, 1397, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1062, 0, 0, 0, 0, 1398, + 0, 0, 0, 0, 1399, 0, 1396, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 968, 1384, 0, 0, 1385, - 0, 0, 0, 1386, 0, 0, 1389, 1390, 1391, 0, - 0, 0, 1420, 1420, 1420, 0, 0, 0, 0, 0, - 0, 0, 0, 2692, 0, 0, 0, 0, 0, 0, - 0, 1394, 0, 0, 0, 0, 0, 0, 1395, 1383, - 0, 0, 0, 0, 1384, 0, 0, 1385, 0, 0, - 2711, 1386, 1387, 1388, 1389, 1390, 1391, 0, 0, 0, - 0, 0, 0, 1396, 0, 0, 0, 0, 0, 0, - 0, 1392, 0, 0, 1393, 0, 0, 0, 0, 1394, - 1384, 0, 0, 1385, 0, 0, 1395, 1386, 1387, 1388, - 1389, 1390, 1391, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1420, 0, 0, 1392, 0, 0, - 1420, 1396, 0, 0, 0, 1394, 0, 0, 0, 0, - 0, 0, 1395, 2079, 2079, 1420, 0, 1717, 1717, 1717, - 1717, 1717, 0, 0, 1717, 1717, 1717, 1717, 1717, 1717, - 1717, 1717, 1717, 1717, 2079, 0, 0, 1396, 0, 0, + 0, 0, 0, 0, 0, 0, -1846, -1846, 0, 0, + 0, 0, 0, 0, 1420, 0, 0, 0, 1717, 0, + 0, 1402, 0, 0, 0, 1063, 1397, 1420, 1420, 1420, + 0, 0, 1420, 0, 0, 1420, 1420, 0, 0, -1846, + 1420, 0, 1398, 0, 0, 0, 0, 1399, 0, 0, + 0, 0, 0, 0, 1050, 0, 0, 0, 0, 0, + 0, 0, -1846, 0, 0, 0, 0, 0, 0, 1400, + 1401, 0, 0, 0, 0, 0, 1405, 0, 0, 0, + 0, 0, 0, 0, 1402, 0, 0, 1397, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1420, 1397, 0, 1420, 0, 1420, 2099, - 0, 0, 2079, 2079, 0, 0, 0, 0, 2765, 2766, - 1398, 0, 2767, 0, 0, 1399, 1420, 1717, 1717, 1420, - 0, 1420, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1400, 1401, 0, - 0, 0, 1397, 0, 0, 0, 0, 0, 0, 0, - 2809, 2810, 1402, 0, 0, 0, 0, 0, 1398, 0, - 0, 1384, 0, 1399, 1385, 2825, 0, 0, 1386, 1387, - 1388, 1389, 1390, 1391, 0, 0, 0, 0, 1397, 0, - 0, 0, 2834, 0, 0, 1400, 1401, 0, 1392, 0, - 1403, 2361, 0, 1404, 1398, 0, 1394, 0, 1420, 1399, - 1402, 0, 0, 1395, 0, 0, 0, 1405, 0, 0, + 0, 0, 0, 1398, 1420, 0, 0, 0, 1399, 0, + 2079, 0, 0, 0, 0, 0, 1064, 0, 0, 0, + 0, 0, 1403, 1420, 0, 1404, 0, 0, 0, 0, + 1400, 1401, 0, 0, 0, 0, 0, 0, 0, 1405, + 0, -1846, 1406, 0, 0, 1402, 1319, 0, 1412, 1413, + 1414, 1415, 1416, 1417, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1065, 1407, 0, + 0, 2079, 1717, 0, 0, 1066, 0, 1420, 1420, 1420, + 0, 0, 0, 1403, 0, 0, 1404, 1067, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1400, 1401, 0, 0, 0, 0, 0, 1396, 0, - 0, 0, 0, 0, 0, 0, 1402, 0, 1403, 0, - 0, 1404, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1384, 1405, 0, 1385, 1406, 0, - 0, 1386, 1387, 1388, 1389, 1390, 1391, 0, 0, 0, - 0, 2896, 0, 0, 1403, 0, 0, 1404, 0, 0, - 0, 1392, 0, 0, 0, 0, 1420, 0, 1369, 1394, - 0, 1405, 0, 0, 1406, 0, 1395, 0, 0, 1407, - 0, 0, 0, 968, 0, 0, 2918, 0, 0, 0, - 0, 0, 1420, 0, 0, 0, 1420, 1420, 0, 1420, - 2937, 1396, 2079, 2079, 2079, 2079, 2079, 0, 0, 1397, - 2079, 2079, 2079, 2079, 2079, 2079, 2079, 2079, 2079, 2079, - 1420, 1420, 0, 0, 0, 1398, 0, 1407, 0, 0, - 1399, 1420, 0, 0, 0, 0, 0, 0, 1420, 0, - 0, 1420, 0, 1420, 0, 0, 0, 1420, 0, 0, - 2079, 2079, 1400, 1401, 1420, 1420, 0, 0, 1420, 0, - 0, 0, 0, 1407, 0, 0, 0, 1402, 0, 0, - 0, 0, 0, 0, 0, 0, 2809, 0, 0, 0, - 2981, 1408, 0, 0, 1409, 1410, 1411, 0, 1412, 1413, - 1414, 1415, 1416, 1417, 0, 0, 0, 1420, 0, 0, - 0, 0, 1397, 0, 0, 1403, 0, 0, 1404, 0, - 3010, 1420, 0, 0, 0, 0, 0, 0, 1398, 0, - 0, 0, 1405, 1399, 1420, 1406, 0, 0, 0, 1408, - 0, 0, 1409, 1410, 1411, 0, 1412, 1413, 1414, 1415, - 1416, 1417, 0, 2809, 0, 1400, 1401, 0, 1717, 0, - 0, 0, 0, 0, 518, 0, 0, 0, 0, 0, - 1402, 0, 0, 0, 0, 1408, 0, 0, 1409, 1410, - 1411, 0, 1412, 1413, 1414, 1415, 1416, 1417, 0, 0, - 0, 0, 1738, 0, 1384, 0, 0, 1385, 0, 3058, - 3058, 1386, 1387, 1388, 1389, 1390, 1391, 0, 1403, 0, - 0, 1404, 0, 0, 0, 0, 0, 519, 0, 0, - 0, 1392, 0, 0, 1407, 1405, 0, 0, 1406, 1394, - 0, 0, 3058, 520, 0, 0, 1395, 0, 0, 0, + 1405, 0, 0, 1406, 0, 0, 0, 0, 1051, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1068, 0, + 0, 1420, 1420, 0, 0, 0, 0, 0, 0, 0, + 0, 1407, 0, 0, 0, 0, 1420, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1420, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1917, + 0, 0, 0, 1053, 0, 1070, 0, 0, 0, 0, + 1408, 0, 0, 1409, 1410, 1411, 0, 1412, 1413, 1414, + 1415, 1416, 1417, 0, 0, 0, 0, 1071, 0, 0, + 2079, 0, 1407, 1918, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1073, 1420, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1396, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 3058, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1420, 521, 0, 0, - 1717, 0, 1048, 0, 0, 0, 0, 522, 1049, 1420, - 1420, 1420, 0, 0, 1420, 1061, 0, 1420, 1420, 523, - 0, 0, 1420, 0, 524, 0, 0, 1407, 0, 0, - 0, 0, 0, 0, 1062, 0, 1408, 0, 0, 1409, - 1410, 1411, 0, 1412, 1413, 1414, 1415, 1416, 1417, 0, - 0, 525, 0, 1738, 0, 0, 0, 0, 0, 0, + 1420, 0, 0, 1408, 0, 0, 1409, 1410, 1411, 0, + 1412, 1413, 1414, 1415, 1416, 1417, 0, 0, 0, 1420, + 2106, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1055, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1397, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1063, 1420, 0, 1398, 0, - 0, 0, 2079, 1399, 0, 0, 526, 0, 0, 0, - 527, 0, 0, 0, 0, 1420, 0, 0, 0, 0, - 0, 0, 0, 0, 1050, 1400, 1401, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1408, - 1402, 0, 1409, 1410, 1411, 0, 1412, 1413, 1414, 1415, - 1416, 1417, 0, 0, 0, 0, 2106, 0, 0, 0, - 0, 0, 0, 2079, 1717, 0, 0, 0, 0, 1420, - 1420, 1420, 0, 528, 0, 0, 0, 0, 1403, 0, - 0, 1404, 0, 0, 0, 0, 1064, 529, 0, 0, - 0, 0, 0, 0, 0, 1405, 0, 0, 1406, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1420, 1420, 0, 0, 0, 0, 0, - 530, 0, 0, 531, 0, 0, 0, 0, 0, 1420, - 0, 532, 0, 0, 533, 0, 0, 1065, 1420, 0, - 0, 0, 0, 0, 0, 1066, 0, 0, 0, 0, - 0, 0, 0, 534, 0, 0, 0, 1067, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 535, 0, 0, - 0, 0, 0, 0, 536, 0, 0, 0, 1051, 0, - 0, 0, 2079, 537, 0, 0, 0, 1407, 1068, 538, + 0, 0, 0, 1420, 1408, 0, 0, 1409, 1410, 1411, + 0, 1412, 1413, 1414, 1415, 1416, 1417, 0, 0, 0, + 0, 2321, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1420, 0, 0, 0, 0, 0, 0, 0, + 0, 1085, 888, 583, 889, 890, 891, 892, 893, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 94, + 95, 96, 97, 98, 99, 100, 101, 1086, 102, 103, + 104, 0, 0, 0, 0, 894, 0, 0, 105, 106, + 1420, 107, 108, 109, 1087, 111, 112, 113, 114, 895, + 1088, 896, 897, 0, 119, 120, 121, 122, 123, 124, + 898, 899, 125, 126, 900, 901, 129, 0, 130, 131, + 132, 133, 902, 0, 1089, 0, 136, 137, 138, 139, + 140, 141, 1090, 143, 144, 145, 0, 146, 147, 148, + 149, 150, 151, 0, 1091, 153, 154, 155, 1092, 1093, + 1094, 1095, 908, 909, 1096, 161, 162, 163, 164, 165, + 166, 167, 911, 912, 170, 913, 171, 0, 172, 173, + 174, 175, 176, 177, 0, 178, 179, 180, 181, 182, + 1097, 0, 183, 184, 717, 186, 187, 0, 188, 189, + 190, 0, 191, 192, 193, 0, 194, 195, 196, 197, + 914, 199, 200, 201, 202, 203, 915, 916, 205, 0, + 206, 207, 917, 209, 0, 210, 0, 211, 1098, 0, + 1099, 214, 215, 1100, 1101, 218, 0, 219, 0, 918, + 919, 222, 0, 223, 224, 225, 226, 227, 228, 229, + 1102, 231, 232, 233, 234, 0, 235, 236, 237, 238, + 239, 240, 0, 241, 1103, 243, 244, 245, 246, 247, + 248, 920, 921, 0, 922, 0, 252, 1104, 1105, 255, + 1106, 257, 258, 259, 260, 261, 262, 0, 0, 263, + 1107, 265, 1108, 0, 267, 268, 269, 923, 924, 270, + 271, 272, 273, 274, 1109, 276, 277, 278, 279, 280, + 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, + 291, 292, 293, 925, 1110, 926, 297, 298, 299, 300, + 927, 301, 302, 1111, 304, 928, 929, 306, 930, 308, + 309, 310, 0, 311, 312, 0, 0, 931, 314, 315, + 0, 0, 316, 317, 1112, 319, 1113, 932, 322, 323, + 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, + 333, 933, 335, 336, 337, 338, 339, 340, 0, 341, + 342, 343, 344, 345, 346, 0, 347, 348, 349, 934, + 351, 352, 353, 354, 0, 355, 356, 357, 358, 359, + 360, 361, 362, 363, 364, 365, 366, 367, 0, 368, + 369, 1114, 371, 372, 373, 935, 375, 376, 377, 378, + 379, 380, 381, 382, 383, 384, 385, 0, 386, 387, + 388, 389, 390, 1115, 392, 393, 394, 395, 396, 1116, + 398, 399, 937, 401, 0, 402, 403, 404, 405, 406, + 407, 408, 409, 410, 411, 412, 413, 1117, 415, 938, + 417, 0, 418, 419, 0, 420, 1118, 422, 423, 424, + 425, 426, 0, 939, 940, 0, 0, 429, 430, 941, + 432, 942, 943, 434, 435, 1119, 437, 438, 439, 440, + 441, 0, 0, 442, 443, 444, 445, 446, 1120, 0, + 448, 449, 450, 451, 452, 453, 946, 1121, 455, 1122, + 457, 458, 459, 460, 461, 0, 0, 462, 0, 0, + 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, + 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, + 483, 947, 0, 0, 0, 0, 0, 0, 948, 949, + 1123, 0, 0, 0, 0, 951, 0, 952, 1124, 0, + 0, 0, 953, 0, 954, 955, 93, 888, 583, 889, + 890, 891, 892, 893, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 94, 95, 96, 97, 98, 99, + 100, 101, 0, 102, 103, 104, 0, 0, 0, 0, + 894, 0, 0, 105, 106, 0, 107, 108, 109, 110, + 111, 112, 113, 114, 895, 116, 896, 897, 0, 119, + 120, 121, 122, 123, 124, 898, 899, 125, 126, 900, + 901, 129, 0, 130, 131, 132, 133, 902, 0, 903, + 0, 136, 137, 138, 139, 140, 141, 142, 143, 144, + 145, 0, 146, 147, 148, 149, 150, 151, 0, 152, + 153, 154, 155, 904, 905, 906, 907, 908, 909, 910, + 161, 162, 163, 164, 165, 166, 167, 911, 912, 170, + 913, 171, 0, 172, 173, 174, 175, 176, 177, 0, + 178, 179, 180, 181, 182, 0, 0, 183, 184, 717, + 186, 187, 0, 188, 189, 190, 0, 191, 192, 193, + 0, 194, 195, 196, 197, 914, 199, 200, 201, 202, + 203, 915, 916, 205, 0, 206, 207, 917, 209, 0, + 210, 0, 211, 212, 0, 213, 214, 215, 216, 217, + 218, 0, 219, 0, 918, 919, 222, 0, 223, 224, + 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, + 0, 235, 236, 237, 238, 239, 240, 0, 241, 242, + 243, 244, 245, 246, 247, 248, 920, 921, 0, 922, + 0, 252, 253, 254, 255, 256, 257, 258, 259, 260, + 261, 262, 0, 0, 263, 264, 265, 266, 0, 267, + 268, 269, 923, 924, 270, 271, 272, 273, 274, 275, + 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, + 286, 287, 288, 289, 290, 291, 292, 293, 925, 295, + 926, 297, 298, 299, 300, 927, 301, 302, 303, 304, + 928, 929, 306, 930, 308, 309, 310, 0, 311, 312, + 0, 0, 931, 314, 315, 0, 0, 316, 317, 318, + 319, 320, 932, 322, 323, 324, 325, 326, 327, 328, + 329, 330, 331, 0, 332, 333, 933, 335, 336, 337, + 338, 339, 340, 0, 341, 342, 343, 344, 345, 346, + 0, 347, 348, 349, 934, 351, 352, 353, 354, 0, + 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, + 365, 366, 367, 0, 368, 369, 370, 371, 372, 373, + 935, 375, 376, 377, 378, 379, 380, 381, 382, 383, + 384, 385, 26, 386, 387, 388, 389, 390, 936, 392, + 393, 394, 395, 396, 397, 398, 399, 937, 401, 0, + 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, + 412, 413, 414, 415, 938, 417, 0, 418, 419, 31, + 420, 421, 422, 423, 424, 425, 426, 0, 939, 940, + 0, 0, 429, 430, 941, 432, 942, 943, 434, 435, + 944, 437, 438, 439, 440, 441, 0, 0, 442, 443, + 444, 445, 446, 945, 0, 448, 449, 450, 451, 452, + 611, 946, 0, 455, 456, 457, 458, 459, 460, 461, + 0, 0, 462, 0, 34, 463, 464, 465, 466, 467, + 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, + 478, 479, 480, 481, 482, 483, 947, 0, 35, 0, + 0, 0, 0, 948, 949, 0, 0, 0, 0, 0, + 951, 0, 952, 2908, 0, 0, 0, 953, 0, 954, + 955, 93, 888, 583, 889, 890, 891, 892, 893, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 94, + 95, 96, 97, 98, 99, 100, 101, 0, 102, 103, + 104, 0, 0, 0, 0, 894, 0, 0, 105, 106, + 0, 107, 108, 109, 110, 111, 112, 113, 114, 895, + 116, 896, 897, 0, 119, 120, 121, 122, 123, 124, + 898, 899, 125, 126, 900, 901, 129, 0, 130, 131, + 132, 133, 902, 0, 903, 0, 136, 137, 138, 139, + 140, 141, 142, 143, 144, 145, 0, 146, 147, 148, + 149, 150, 151, 0, 152, 153, 154, 155, 904, 905, + 906, 907, 908, 909, 910, 161, 162, 163, 164, 165, + 166, 167, 911, 912, 170, 913, 171, 0, 172, 173, + 174, 175, 176, 177, 0, 178, 179, 180, 181, 182, + 0, 0, 183, 184, 717, 186, 187, 0, 188, 189, + 190, 0, 191, 192, 193, 0, 194, 195, 196, 197, + 914, 199, 200, 201, 202, 203, 915, 916, 205, 0, + 206, 207, 917, 209, 0, 210, 0, 211, 212, 0, + 213, 214, 215, 216, 217, 218, 0, 219, 0, 918, + 919, 222, 0, 223, 224, 225, 226, 227, 228, 229, + 230, 231, 232, 233, 234, 0, 235, 236, 237, 238, + 239, 240, 0, 241, 242, 243, 244, 245, 246, 247, + 248, 920, 921, 0, 922, 0, 252, 253, 254, 255, + 256, 257, 258, 259, 260, 261, 262, 0, 0, 263, + 264, 265, 266, 0, 267, 268, 269, 923, 924, 270, + 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, + 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, + 291, 292, 293, 925, 295, 926, 297, 298, 299, 300, + 927, 301, 302, 303, 304, 928, 929, 306, 930, 308, + 309, 310, 0, 311, 312, 0, 0, 931, 314, 315, + 0, 0, 316, 317, 318, 319, 320, 932, 322, 323, + 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, + 333, 933, 335, 336, 337, 338, 339, 340, 0, 341, + 342, 343, 344, 345, 346, 0, 347, 348, 349, 934, + 351, 352, 353, 354, 0, 355, 356, 357, 358, 359, + 360, 361, 362, 363, 364, 365, 366, 367, 0, 368, + 369, 370, 371, 372, 373, 935, 375, 376, 377, 378, + 379, 380, 381, 382, 383, 384, 385, 26, 386, 387, + 388, 389, 390, 936, 392, 393, 394, 395, 396, 397, + 398, 399, 937, 401, 0, 402, 403, 404, 405, 406, + 407, 408, 409, 410, 411, 412, 413, 414, 415, 938, + 417, 0, 418, 419, 31, 420, 421, 422, 423, 424, + 425, 426, 0, 939, 940, 0, 0, 429, 430, 941, + 432, 942, 943, 434, 435, 944, 437, 438, 439, 440, + 441, 0, 0, 442, 443, 444, 445, 446, 945, 0, + 448, 449, 450, 451, 452, 611, 946, 0, 455, 456, + 457, 458, 459, 460, 461, 0, 0, 462, 0, 34, + 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, + 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, + 483, 947, 0, 35, 0, 0, 0, 0, 948, 949, + 0, 0, 0, 0, 0, 951, 0, 952, 0, 0, + 0, 0, 953, 0, 954, 955, 93, 888, 583, 889, + 890, 891, 892, 893, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 94, 95, 96, 97, 98, 99, + 100, 101, 0, 102, 103, 104, 0, 0, 0, 0, + 894, 0, 0, 105, 106, 0, 107, 108, 109, 110, + 111, 112, 113, 114, 895, 116, 896, 897, 1725, 119, + 120, 121, 122, 123, 124, 898, 899, 125, 126, 900, + 901, 129, 0, 130, 131, 132, 133, 902, 0, 903, + 0, 136, 137, 138, 139, 140, 141, 142, 143, 144, + 145, 0, 146, 147, 148, 149, 150, 151, 0, 152, + 153, 154, 155, 904, 905, 906, 907, 908, 909, 910, + 161, 162, 163, 164, 165, 166, 167, 911, 912, 170, + 913, 171, 0, 172, 173, 174, 175, 176, 177, 0, + 178, 179, 180, 181, 182, 0, 0, 183, 184, 717, + 186, 187, 0, 188, 189, 190, 0, 191, 192, 193, + 0, 194, 195, 196, 197, 914, 199, 200, 201, 202, + 203, 915, 916, 205, 0, 206, 207, 917, 209, 0, + 210, 0, 211, 212, 1726, 213, 214, 215, 216, 217, + 218, 0, 219, 0, 918, 919, 222, 0, 223, 224, + 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, + 0, 235, 236, 237, 238, 239, 240, 0, 241, 242, + 243, 244, 245, 246, 247, 248, 920, 921, 0, 922, + 0, 252, 253, 254, 255, 256, 257, 258, 259, 260, + 261, 262, 0, 1727, 263, 264, 265, 266, 0, 267, + 268, 269, 923, 924, 270, 271, 272, 273, 274, 275, + 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, + 286, 287, 288, 289, 290, 291, 292, 293, 925, 295, + 926, 297, 298, 299, 300, 927, 301, 302, 303, 304, + 928, 929, 306, 930, 308, 309, 310, 0, 311, 312, + 0, 0, 931, 314, 315, 0, 0, 316, 317, 318, + 319, 320, 932, 322, 323, 324, 325, 326, 327, 328, + 329, 330, 331, 0, 332, 333, 933, 335, 336, 337, + 338, 339, 340, 0, 341, 342, 343, 344, 345, 346, + 0, 347, 348, 349, 934, 351, 352, 353, 354, 0, + 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, + 365, 366, 367, 0, 368, 369, 370, 371, 372, 373, + 935, 375, 376, 377, 378, 379, 380, 381, 382, 383, + 384, 385, 0, 386, 387, 388, 389, 390, 936, 392, + 393, 394, 395, 396, 397, 398, 399, 937, 401, 0, + 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, + 412, 413, 414, 415, 938, 417, 0, 418, 419, 0, + 420, 421, 422, 423, 424, 425, 426, 0, 939, 940, + 0, 1728, 429, 430, 941, 432, 942, 943, 434, 435, + 944, 437, 438, 439, 440, 441, 0, 0, 442, 443, + 444, 445, 446, 945, 0, 448, 449, 450, 451, 452, + 453, 946, 0, 455, 456, 457, 458, 459, 460, 461, + 0, 0, 462, 0, 0, 463, 464, 465, 466, 467, + 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, + 478, 479, 480, 481, 482, 483, 947, 0, 0, 0, + 0, 0, 0, 948, 949, 0, 0, 0, 0, 0, + 951, 0, 952, 0, 0, 0, 0, 953, 0, 954, + 955, 93, 888, 583, 889, 890, 891, 892, 893, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 94, + 95, 96, 97, 98, 99, 100, 101, -608, 102, 103, + 104, 0, 0, 0, -608, 894, 0, 0, 105, 106, + 0, 107, 108, 109, 110, 111, 112, 113, 114, 895, + 116, 896, 897, 0, 119, 120, 121, 122, 123, 124, + 898, 899, 125, 126, 900, 901, 129, 0, 130, 131, + 132, 133, 902, 0, 903, 0, 136, 137, 138, 139, + 140, 141, 142, 143, 144, 145, 0, 146, 147, 148, + 149, 150, 151, 0, 152, 153, 154, 155, 904, 905, + 906, 907, 908, 909, 910, 161, 162, 163, 164, 165, + 166, 167, 911, 912, 170, 913, 171, 0, 172, 173, + 174, 175, 176, 177, 0, 178, 179, 180, 181, 182, + 0, 0, 183, 184, 717, 186, 187, 0, 188, 189, + 190, 0, 191, 192, 193, 0, 194, 195, 196, 197, + 914, 199, 200, 201, 202, 203, 915, 916, 205, 0, + 206, 207, 917, 209, 0, 210, 0, 211, 212, 0, + 213, 214, 215, 216, 217, 218, 0, 219, 0, 918, + 919, 222, 0, 223, 224, 225, 226, 227, 228, 229, + 230, 231, 232, 233, 234, 0, 235, 236, 237, 238, + 239, 240, 0, 241, 242, 243, 244, 245, 246, 247, + 248, 920, 921, 0, 922, 0, 252, 253, 254, 255, + 256, 257, 258, 259, 260, 261, 262, 0, 0, 263, + 264, 265, 266, 0, 267, 268, 269, 923, 924, 270, + 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, + 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, + 291, 292, 293, 925, 295, 926, 297, 298, 299, 300, + 927, 301, 302, 303, 304, 928, 929, 306, 930, 308, + 309, 310, 0, 311, 312, 0, 0, 931, 314, 315, + 0, 0, 316, 317, 318, 319, 320, 932, 322, 323, + 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, + 333, 933, 335, 336, 337, 338, 339, 340, 0, 341, + 342, 343, 344, 345, 346, 0, 347, 348, 349, 934, + 351, 352, 353, 354, 0, 355, 356, 357, 358, 359, + 360, 361, 362, 363, 364, 365, 366, 367, 0, 368, + 369, 370, 371, 372, 373, 935, 375, 376, 377, 378, + 379, 380, 381, 382, 383, 384, 385, 0, 386, 387, + 388, 389, 390, 936, 392, 393, 394, 395, 396, 397, + 398, 399, 937, 401, -608, 402, 403, 404, 405, 406, + 407, 408, 409, 410, 411, 412, 413, 414, 415, 938, + 417, 0, 418, 419, 0, 420, 421, 422, 423, 424, + 425, 426, 0, 939, 940, 0, 0, 429, 430, 941, + 432, 942, 943, 434, 435, 944, 437, 438, 439, 440, + 441, 0, 0, 442, 443, 444, 445, 446, 945, 0, + 448, 449, 450, 451, 452, 453, 946, 0, 455, 456, + 457, 458, 459, 460, 461, 0, 0, 462, 0, 0, + 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, + 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, + 483, 947, 0, 0, 0, 0, 0, 0, 948, 949, + 0, 0, 0, 0, 0, 951, 0, 952, 0, 0, + 0, 0, 953, 0, 954, 955, 93, 888, 583, 889, + 890, 891, 892, 893, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 94, 95, 96, 97, 98, 99, + 100, 101, 1467, 102, 103, 104, 0, 0, 0, 0, + 894, 0, 0, 105, 106, 0, 107, 108, 109, 110, + 111, 112, 113, 114, 895, 116, 896, 897, 0, 119, + 120, 121, 122, 123, 124, 898, 899, 125, 126, 900, + 901, 129, 0, 130, 131, 132, 133, 902, 0, 903, + 0, 136, 137, 138, 139, 140, 141, 142, 143, 144, + 145, 0, 146, 147, 148, 149, 150, 151, 0, 152, + 153, 154, 155, 904, 905, 906, 907, 908, 909, 910, + 161, 162, 163, 164, 165, 166, 167, 911, 912, 170, + 913, 171, 0, 172, 173, 174, 175, 176, 177, 0, + 178, 179, 180, 181, 182, 0, 0, 183, 184, 717, + 186, 187, 0, 188, 189, 190, 0, 191, 192, 193, + 0, 194, 195, 196, 197, 914, 199, 200, 201, 202, + 203, 915, 916, 205, 0, 206, 207, 917, 209, 0, + 210, 0, 211, 212, 0, 213, 214, 215, 216, 217, + 218, 0, 219, 0, 918, 919, 222, 0, 223, 224, + 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, + 0, 235, 236, 237, 238, 239, 240, 0, 241, 242, + 243, 244, 245, 246, 247, 248, 920, 921, 0, 922, + 0, 252, 253, 254, 255, 256, 257, 258, 259, 260, + 261, 262, 0, 0, 263, 264, 265, 266, 0, 267, + 268, 269, 923, 924, 270, 271, 272, 273, 274, 275, + 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, + 286, 287, 288, 289, 290, 291, 292, 293, 925, 295, + 926, 297, 298, 299, 300, 927, 301, 302, 303, 304, + 928, 929, 306, 930, 308, 309, 310, 0, 311, 312, + 0, 0, 931, 314, 315, 0, 0, 316, 317, 318, + 319, 320, 932, 322, 323, 324, 325, 326, 327, 328, + 329, 330, 331, 0, 332, 333, 933, 335, 336, 337, + 338, 339, 340, 0, 341, 342, 343, 344, 345, 346, + 0, 347, 348, 349, 934, 351, 352, 353, 354, 0, + 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, + 365, 366, 367, 0, 368, 369, 370, 371, 372, 373, + 935, 375, 376, 377, 378, 379, 380, 381, 382, 383, + 384, 385, 0, 386, 387, 388, 389, 390, 936, 392, + 393, 394, 395, 396, 397, 398, 399, 937, 401, 0, + 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, + 412, 413, 414, 415, 938, 417, 0, 418, 419, 0, + 420, 421, 422, 423, 424, 425, 426, 0, 939, 940, + 0, 0, 429, 430, 941, 432, 942, 943, 434, 435, + 944, 437, 438, 439, 440, 441, 0, 0, 442, 443, + 444, 445, 446, 945, 0, 448, 449, 450, 451, 452, + 453, 946, 0, 455, 456, 457, 458, 459, 460, 461, + 0, 0, 462, 0, 0, 463, 464, 465, 466, 467, + 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, + 478, 479, 480, 481, 482, 483, 947, 0, 0, 0, + 0, 0, 0, 948, 949, 1468, 0, 0, 0, 0, + 951, 0, 952, 0, 0, 0, 0, 953, 0, 954, + 955, 93, 888, 583, 889, 890, 891, 892, 893, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 94, + 95, 96, 97, 98, 99, 100, 101, 2796, 102, 103, + 104, 0, 0, 0, 0, 894, 0, 0, 105, 106, + 0, 107, 108, 109, 110, 111, 112, 113, 114, 895, + 116, 896, 897, 0, 119, 120, 121, 122, 123, 124, + 898, 899, 125, 126, 900, 901, 129, 0, 130, 131, + 132, 133, 902, 0, 903, 0, 136, 137, 138, 139, + 140, 141, 142, 143, 144, 145, 0, 146, 147, 148, + 149, 150, 151, 0, 152, 153, 2797, 155, 904, 905, + 906, 907, 908, 909, 910, 161, 162, 163, 164, 165, + 166, 167, 911, 912, 170, 913, 171, 0, 172, 173, + 174, 175, 176, 177, 0, 178, 179, 180, 181, 182, + 0, 0, 183, 184, 717, 186, 187, 0, 188, 189, + 190, 0, 191, 192, 193, 0, 194, 195, 196, 197, + 914, 199, 200, 201, 202, 203, 915, 916, 205, 0, + 206, 207, 917, 209, 0, 210, 0, 211, 212, 0, + 213, 214, 215, 216, 217, 218, 0, 219, 0, 2798, + 919, 222, 0, 223, 224, 225, 226, 227, 228, 229, + 230, 231, 232, 233, 234, 0, 235, 236, 237, 238, + 239, 240, 0, 241, 242, 243, 244, 245, 246, 247, + 248, 920, 921, 0, 922, 0, 252, 253, 254, 255, + 256, 257, 258, 259, 260, 261, 262, 0, 0, 263, + 264, 265, 266, 0, 267, 268, 269, 923, 924, 270, + 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, + 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, + 291, 292, 293, 925, 295, 926, 297, 298, 299, 300, + 927, 301, 302, 303, 304, 928, 929, 306, 930, 308, + 309, 310, 0, 311, 312, 0, 0, 931, 314, 315, + 0, 0, 316, 317, 318, 319, 320, 932, 322, 323, + 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, + 333, 933, 335, 336, 337, 338, 339, 340, 0, 341, + 342, 343, 344, 345, 346, 0, 347, 348, 349, 934, + 351, 352, 353, 354, 0, 355, 356, 357, 358, 359, + 360, 361, 362, 363, 364, 365, 366, 367, 0, 368, + 369, 370, 371, 372, 2799, 935, 375, 376, 377, 378, + 379, 380, 381, 382, 383, 384, 385, 0, 386, 387, + 388, 389, 390, 936, 392, 393, 394, 395, 396, 397, + 398, 399, 937, 401, 0, 402, 403, 404, 405, 406, + 407, 408, 409, 410, 411, 412, 413, 414, 415, 938, + 417, 0, 418, 419, 0, 420, 421, 422, 423, 424, + 425, 426, 0, 939, 940, 0, 0, 429, 430, 941, + 432, 942, 943, 434, 435, 944, 437, 438, 439, 440, + 441, 0, 0, 442, 443, 444, 445, 446, 945, 0, + 448, 449, 450, 451, 452, 453, 946, 0, 455, 456, + 457, 458, 459, 460, 461, 0, 0, 462, 0, 0, + 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, + 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, + 483, 947, 0, 0, 0, 0, 0, 0, 948, 949, + 2800, 0, 0, 0, 0, 951, 0, 2801, 0, 0, + 0, 0, 953, 0, 954, 955, 93, 888, 583, 889, + 890, 891, 892, 893, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 94, 95, 96, 97, 98, 99, + 100, 101, 0, 102, 103, 104, 0, 0, 0, 0, + 894, 0, 0, 105, 106, 0, 107, 108, 109, 110, + 111, 112, 113, 114, 895, 116, 896, 897, 0, 119, + 120, 121, 122, 123, 124, 898, 899, 125, 126, 900, + 901, 129, 0, 130, 131, 132, 133, 902, 0, 903, + 0, 136, 137, 138, 139, 140, 141, 142, 143, 144, + 145, 0, 146, 147, 148, 149, 150, 151, 0, 152, + 153, 154, 155, 904, 905, 906, 907, 908, 909, 910, + 161, 162, 163, 164, 165, 166, 167, 911, 912, 170, + 913, 171, 0, 172, 173, 174, 175, 176, 177, 0, + 178, 179, 180, 181, 182, 0, 0, 183, 184, 717, + 186, 187, 0, 188, 189, 190, 0, 191, 192, 193, + 0, 194, 195, 196, 197, 914, 199, 200, 201, 202, + 203, 915, 916, 205, 0, 206, 207, 917, 209, 0, + 210, 0, 211, 212, 0, 213, 214, 215, 216, 217, + 218, 0, 219, 0, 918, 919, 222, 0, 223, 224, + 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, + 0, 235, 236, 237, 238, 239, 240, 0, 241, 242, + 243, 244, 245, 246, 247, 248, 920, 921, 0, 922, + 0, 252, 253, 254, 255, 256, 257, 258, 259, 260, + 261, 262, 0, 0, 263, 264, 265, 266, 0, 267, + 268, 269, 923, 924, 270, 271, 272, 273, 274, 275, + 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, + 286, 287, 288, 289, 290, 291, 292, 293, 925, 295, + 926, 297, 298, 299, 300, 927, 301, 302, 303, 304, + 928, 929, 306, 930, 308, 309, 310, 0, 311, 312, + 0, 0, 931, 314, 315, 0, 0, 316, 317, 318, + 319, 320, 932, 322, 323, 324, 325, 326, 327, 328, + 329, 330, 331, 0, 332, 333, 933, 335, 336, 337, + 338, 339, 340, 0, 341, 342, 343, 344, 345, 346, + 0, 347, 348, 349, 934, 351, 352, 353, 354, 0, + 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, + 365, 366, 367, 0, 368, 369, 370, 371, 372, 373, + 935, 375, 376, 377, 378, 379, 380, 381, 382, 383, + 384, 385, 0, 386, 387, 388, 389, 390, 936, 392, + 393, 394, 395, 396, 397, 398, 399, 937, 401, 0, + 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, + 412, 413, 414, 415, 938, 417, 0, 418, 419, 0, + 420, 421, 422, 423, 424, 425, 426, 0, 939, 940, + 0, 0, 429, 430, 941, 432, 942, 943, 434, 435, + 944, 437, 438, 439, 440, 441, 0, 0, 442, 443, + 444, 445, 446, 945, 0, 448, 449, 450, 451, 452, + 453, 946, 0, 455, 456, 457, 458, 459, 460, 461, + 0, 0, 462, 0, 0, 463, 464, 465, 466, 467, + 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, + 478, 479, 480, 481, 482, 483, 947, 0, 0, 0, + 0, 0, 0, 948, 949, 950, 0, 0, 0, 0, + 951, 0, 952, 0, 0, 0, 0, 953, 0, 954, + 955, 93, 1481, 583, 889, 890, 891, 1482, 893, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 94, + 95, 96, 97, 98, 99, 100, 101, 1483, 102, 103, + 104, 0, 0, 0, 0, 894, 0, 0, 105, 106, + 0, 107, 108, 109, 110, 111, 112, 113, 114, 895, + 116, 896, 897, 0, 119, 120, 121, 122, 123, 124, + 898, 899, 125, 126, 900, 901, 129, 0, 130, 131, + 132, 133, 902, 0, 903, 0, 136, 137, 138, 139, + 140, 141, 142, 143, 144, 145, 0, 146, 147, 148, + 149, 150, 151, 0, 152, 153, 154, 155, 904, 905, + 906, 907, 908, 909, 910, 161, 162, 163, 164, 165, + 166, 167, 911, 912, 170, 913, 171, 0, 172, 173, + 174, 175, 176, 177, 0, 178, 179, 180, 181, 182, + 0, 0, 183, 184, 717, 186, 187, 0, 188, 189, + 190, 0, 191, 192, 193, 0, 194, 195, 196, 197, + 914, 199, 200, 201, 202, 203, 915, 916, 205, 0, + 206, 207, 917, 209, 0, 210, 0, 211, 212, 0, + 213, 214, 215, 216, 217, 218, 0, 219, 0, 918, + 919, 222, 0, 223, 224, 225, 226, 227, 228, 229, + 230, 231, 232, 233, 234, 0, 235, 236, 237, 238, + 239, 240, 0, 241, 242, 243, 244, 245, 246, 247, + 248, 920, 921, 0, 922, 0, 252, 253, 254, 255, + 256, 257, 258, 259, 260, 261, 262, 0, 0, 263, + 264, 265, 266, 0, 267, 268, 269, 923, 924, 270, + 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, + 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, + 291, 292, 293, 925, 295, 926, 297, 298, 299, 300, + 927, 301, 302, 303, 304, 928, 929, 306, 930, 308, + 309, 310, 0, 311, 312, 0, 0, 931, 314, 315, + 0, 0, 316, 317, 318, 319, 320, 932, 322, 323, + 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, + 333, 933, 335, 336, 337, 338, 339, 340, 0, 341, + 342, 343, 344, 345, 346, 0, 347, 348, 349, 934, + 351, 352, 353, 354, 0, 355, 356, 357, 358, 359, + 360, 361, 362, 363, 364, 365, 366, 367, 0, 368, + 369, 370, 371, 372, 373, 935, 375, 376, 377, 378, + 379, 380, 381, 382, 383, 384, 385, 0, 386, 387, + 388, 389, 390, 936, 392, 393, 394, 395, 396, 397, + 398, 399, 937, 401, 0, 402, 403, 404, 405, 406, + 407, 408, 409, 410, 411, 412, 413, 414, 415, 938, + 417, 0, 418, 419, 0, 420, 421, 422, 423, 424, + 425, 426, 0, 939, 940, 0, 0, 429, 430, 941, + 432, 942, 943, 434, 435, 944, 437, 438, 439, 440, + 441, 0, 0, 442, 443, 444, 445, 446, 945, 0, + 448, 449, 450, 451, 452, 453, 946, 0, 455, 456, + 457, 458, 459, 460, 461, 0, 0, 462, 0, 0, + 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, + 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, + 483, 947, 0, 0, 0, 0, 0, 0, 948, 949, + 0, 0, 0, 0, 0, 951, 0, 952, 0, 0, + 0, 0, 953, 0, 954, 955, 93, 888, 583, 889, + 890, 891, 892, 893, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 94, 95, 96, 97, 98, 99, + 100, 101, 0, 102, 103, 104, 0, 0, 0, 0, + 894, 0, 0, 105, 106, 0, 107, 108, 109, 110, + 111, 112, 113, 114, 895, 116, 896, 897, 0, 119, + 120, 121, 122, 123, 124, 898, 899, 125, 126, 900, + 901, 129, 0, 130, 131, 132, 133, 902, 0, 903, + 0, 136, 137, 138, 139, 140, 141, 142, 143, 144, + 145, 0, 146, 147, 148, 149, 150, 151, 0, 152, + 153, 154, 155, 904, 905, 906, 907, 908, 909, 910, + 161, 162, 163, 164, 165, 166, 167, 911, 912, 170, + 913, 171, 0, 172, 173, 174, 175, 176, 177, 0, + 178, 179, 180, 181, 182, 0, 0, 183, 184, 717, + 186, 187, 0, 188, 189, 190, 0, 191, 192, 193, + 0, 194, 195, 196, 197, 914, 199, 200, 201, 202, + 203, 915, 916, 205, 0, 206, 207, 917, 209, 0, + 210, 0, 211, 212, 0, 213, 214, 215, 216, 217, + 218, 0, 219, 0, 918, 919, 222, 0, 223, 224, + 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, + 0, 235, 236, 237, 238, 239, 240, 0, 241, 242, + 243, 244, 245, 246, 247, 248, 920, 921, 0, 922, + 0, 252, 253, 254, 255, 256, 257, 258, 259, 260, + 261, 262, 0, 0, 263, 264, 265, 266, 0, 267, + 268, 269, 923, 924, 270, 271, 272, 273, 274, 275, + 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, + 286, 287, 288, 289, 290, 291, 292, 293, 925, 295, + 926, 297, 298, 299, 300, 927, 301, 302, 303, 304, + 928, 929, 306, 930, 308, 309, 310, 0, 311, 312, + 0, 0, 931, 314, 315, 0, 0, 316, 317, 318, + 319, 320, 932, 322, 323, 324, 325, 326, 327, 328, + 329, 330, 331, 0, 332, 333, 933, 335, 336, 337, + 338, 339, 340, 0, 341, 342, 343, 344, 345, 346, + 0, 347, 348, 349, 934, 351, 352, 353, 354, 0, + 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, + 365, 366, 367, 0, 368, 369, 370, 371, 372, 373, + 935, 375, 376, 377, 378, 379, 380, 381, 382, 383, + 384, 385, 0, 386, 387, 388, 389, 390, 936, 392, + 393, 394, 395, 396, 397, 398, 399, 937, 401, 0, + 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, + 412, 413, 414, 415, 938, 417, 0, 418, 419, 0, + 420, 421, 422, 423, 424, 425, 426, 0, 939, 940, + 0, 0, 429, 430, 941, 432, 942, 943, 434, 435, + 944, 437, 438, 439, 440, 441, 0, 0, 442, 443, + 444, 445, 446, 945, 0, 448, 449, 450, 451, 452, + 453, 946, 0, 455, 456, 457, 458, 459, 460, 461, + 0, 0, 462, 0, 0, 463, 464, 465, 466, 467, + 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, + 478, 479, 480, 481, 482, 483, 947, 0, 0, 0, + 0, 0, 0, 948, 949, 0, 0, 0, 0, 0, + 951, 0, 952, 1719, 0, 0, 0, 953, 0, 954, + 955, 1085, 888, 583, 889, 890, 891, 892, 893, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 94, + 95, 96, 97, 98, 99, 100, 101, 0, 102, 103, + 104, 0, 0, 0, 0, 894, 0, 0, 105, 106, + 0, 107, 108, 109, 1087, 111, 112, 113, 114, 895, + 1088, 896, 897, 0, 119, 120, 121, 122, 123, 124, + 898, 899, 125, 126, 900, 901, 129, 0, 130, 131, + 132, 133, 902, 0, 1089, 0, 136, 137, 138, 139, + 140, 141, 1090, 143, 144, 145, 0, 146, 147, 148, + 149, 150, 151, 0, 1091, 153, 154, 155, 1092, 1093, + 1094, 1095, 908, 909, 1096, 161, 162, 163, 164, 165, + 166, 167, 911, 912, 170, 913, 171, 0, 172, 173, + 174, 175, 176, 177, 0, 178, 179, 180, 181, 182, + 0, 0, 183, 184, 717, 186, 187, 0, 188, 189, + 190, 0, 191, 192, 193, 0, 194, 195, 196, 197, + 914, 199, 200, 201, 202, 203, 915, 916, 205, 0, + 206, 207, 917, 209, 0, 210, 0, 211, 1098, 0, + 1099, 214, 215, 1100, 1101, 218, 0, 219, 0, 918, + 919, 222, 0, 223, 224, 225, 226, 227, 228, 229, + 1102, 231, 232, 233, 234, 0, 235, 236, 237, 238, + 239, 240, 0, 241, 1103, 243, 244, 245, 246, 247, + 248, 920, 921, 0, 922, 0, 252, 1104, 1105, 255, + 1106, 257, 258, 259, 260, 261, 262, 0, 0, 263, + 1107, 265, 1108, 0, 267, 268, 269, 923, 924, 270, + 271, 272, 273, 274, 1109, 276, 277, 278, 279, 280, + 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, + 291, 292, 293, 925, 1110, 926, 297, 298, 299, 300, + 927, 301, 302, 1111, 304, 928, 929, 306, 930, 308, + 309, 310, 0, 311, 312, 0, 0, 931, 314, 315, + 0, 0, 316, 317, 1112, 319, 1113, 932, 322, 323, + 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, + 333, 933, 335, 336, 337, 338, 339, 340, 0, 341, + 342, 343, 344, 345, 346, 0, 347, 348, 349, 934, + 351, 352, 353, 354, 0, 355, 356, 357, 358, 359, + 360, 361, 362, 363, 364, 365, 366, 367, 0, 368, + 369, 1114, 371, 372, 373, 935, 375, 376, 377, 378, + 379, 380, 381, 382, 383, 384, 385, 0, 386, 387, + 388, 389, 390, 1115, 392, 393, 394, 395, 396, 1116, + 398, 399, 937, 401, 0, 402, 403, 404, 405, 406, + 407, 408, 409, 410, 411, 412, 413, 1117, 415, 938, + 417, 0, 418, 419, 0, 420, 1118, 422, 423, 424, + 425, 426, 0, 939, 940, 0, 0, 429, 430, 941, + 432, 942, 943, 434, 435, 1119, 437, 438, 439, 440, + 441, 0, 0, 442, 443, 444, 445, 446, 1120, 0, + 448, 449, 450, 451, 452, 453, 946, 1943, 455, 1122, + 457, 458, 459, 460, 461, 0, 0, 462, 0, 0, + 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, + 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, + 483, 947, 0, 0, 0, 0, 0, 0, 948, 949, + 0, 0, 0, 0, 0, 951, 0, 952, 0, 0, + 0, 0, 953, 0, 954, 955, 1085, 888, 583, 889, + 890, 891, 892, 893, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 94, 95, 96, 97, 98, 99, + 100, 101, 0, 102, 103, 104, 0, 0, 0, 0, + 894, 0, 0, 105, 106, 0, 107, 108, 109, 1087, + 111, 112, 113, 114, 895, 1088, 896, 897, 0, 119, + 120, 121, 122, 123, 124, 898, 899, 125, 126, 900, + 901, 129, 0, 130, 131, 132, 133, 902, 0, 1089, + 0, 136, 137, 138, 139, 140, 141, 1090, 143, 144, + 145, 0, 146, 147, 148, 149, 150, 151, 0, 1091, + 153, 154, 155, 1092, 1093, 1094, 1095, 908, 909, 1096, + 161, 162, 163, 164, 165, 166, 167, 911, 912, 170, + 913, 171, 0, 172, 173, 174, 175, 176, 177, 0, + 178, 179, 180, 181, 182, 0, 0, 183, 184, 717, + 186, 187, 0, 188, 189, 190, 0, 191, 192, 193, + 0, 194, 195, 196, 197, 914, 199, 200, 201, 202, + 203, 915, 916, 205, 0, 206, 207, 917, 209, 0, + 210, 0, 211, 1098, 0, 1099, 214, 215, 1100, 1101, + 218, 0, 219, 0, 918, 919, 222, 0, 223, 224, + 225, 226, 227, 228, 229, 1102, 231, 232, 233, 234, + 0, 235, 236, 237, 238, 239, 240, 0, 241, 1103, + 243, 244, 245, 246, 247, 248, 920, 921, 0, 922, + 0, 252, 1104, 1105, 255, 1106, 257, 258, 259, 260, + 261, 262, 0, 0, 263, 1107, 265, 1108, 0, 267, + 268, 269, 923, 924, 270, 271, 272, 273, 274, 1109, + 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, + 286, 287, 288, 289, 290, 291, 292, 293, 925, 1110, + 926, 297, 298, 299, 300, 927, 301, 302, 1111, 304, + 928, 929, 306, 930, 308, 309, 310, 0, 311, 312, + 0, 0, 931, 314, 315, 0, 0, 316, 317, 1112, + 319, 1113, 932, 322, 323, 324, 325, 326, 327, 328, + 329, 330, 331, 0, 332, 333, 933, 335, 336, 337, + 338, 339, 340, 0, 341, 342, 343, 344, 345, 346, + 0, 347, 348, 349, 934, 351, 352, 353, 354, 0, + 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, + 365, 366, 367, 0, 368, 369, 1114, 371, 372, 373, + 935, 375, 376, 377, 378, 379, 380, 381, 382, 383, + 384, 385, 0, 386, 387, 388, 389, 390, 1115, 392, + 393, 394, 395, 396, 1116, 398, 399, 937, 401, 0, + 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, + 412, 413, 1117, 415, 938, 417, 0, 418, 419, 0, + 420, 1118, 422, 423, 424, 425, 426, 0, 939, 940, + 0, 0, 429, 430, 941, 432, 942, 943, 434, 435, + 1119, 437, 438, 439, 440, 441, 0, 0, 442, 443, + 444, 445, 446, 1120, 0, 448, 449, 450, 451, 452, + 453, 946, 0, 455, 1122, 457, 458, 459, 460, 461, + 0, 0, 462, 0, 0, 463, 464, 465, 466, 467, + 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, + 478, 479, 480, 481, 482, 483, 947, 0, 0, 0, + 0, 0, 0, 948, 949, 0, 0, 0, 0, 0, + 951, 0, 952, 1986, 0, 0, 0, 953, 0, 954, + 955, 93, 888, 583, 889, 890, 891, 892, 893, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 94, + 95, 96, 97, 98, 99, 100, 101, 0, 102, 103, + 104, 0, 0, 0, 0, 894, 0, 0, 105, 106, + 0, 107, 108, 109, 110, 111, 112, 113, 114, 895, + 116, 896, 897, 0, 119, 120, 121, 122, 123, 124, + 898, 899, 125, 126, 900, 901, 129, 0, 130, 131, + 132, 133, 902, 0, 903, 0, 136, 137, 138, 139, + 140, 141, 142, 143, 144, 145, 0, 146, 147, 148, + 149, 150, 151, 0, 152, 153, 154, 155, 904, 905, + 906, 907, 908, 909, 910, 161, 162, 163, 164, 165, + 166, 167, 911, 912, 170, 913, 171, 0, 172, 173, + 174, 175, 176, 177, 0, 178, 179, 180, 181, 182, + 0, 0, 183, 184, 717, 186, 187, 0, 188, 189, + 190, 0, 191, 192, 193, 0, 194, 195, 196, 197, + 914, 199, 200, 201, 202, 203, 915, 916, 205, 0, + 206, 207, 917, 209, 0, 210, 0, 211, 212, 1726, + 213, 214, 215, 216, 217, 218, 0, 219, 0, 918, + 919, 222, 0, 223, 224, 225, 226, 227, 228, 229, + 230, 231, 232, 233, 234, 0, 235, 236, 237, 238, + 239, 240, 0, 241, 242, 243, 244, 245, 246, 247, + 248, 920, 921, 0, 922, 0, 252, 253, 254, 255, + 256, 257, 258, 259, 260, 261, 262, 0, 0, 263, + 264, 265, 266, 0, 267, 268, 269, 923, 924, 270, + 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, + 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, + 291, 292, 293, 925, 295, 926, 297, 298, 299, 300, + 927, 301, 302, 303, 304, 928, 929, 306, 930, 308, + 309, 310, 0, 311, 312, 0, 0, 931, 314, 315, + 0, 0, 316, 317, 318, 319, 320, 932, 322, 323, + 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, + 333, 933, 335, 336, 337, 338, 339, 340, 0, 341, + 342, 343, 344, 345, 346, 0, 347, 348, 349, 934, + 351, 352, 353, 354, 0, 355, 356, 357, 358, 359, + 360, 361, 362, 363, 364, 365, 366, 367, 0, 368, + 369, 370, 371, 372, 373, 935, 375, 376, 377, 378, + 379, 380, 381, 382, 383, 384, 385, 0, 386, 387, + 388, 389, 390, 936, 392, 393, 394, 395, 396, 397, + 398, 399, 937, 401, 0, 402, 403, 404, 405, 406, + 407, 408, 409, 410, 411, 412, 413, 414, 415, 938, + 417, 0, 418, 419, 0, 420, 421, 422, 423, 424, + 425, 426, 0, 939, 940, 0, 0, 429, 430, 941, + 432, 942, 943, 434, 435, 944, 437, 438, 439, 440, + 441, 0, 0, 442, 443, 444, 445, 446, 945, 0, + 448, 449, 450, 451, 452, 453, 946, 0, 455, 456, + 457, 458, 459, 460, 461, 0, 0, 462, 0, 0, + 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, + 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, + 483, 947, 0, 0, 0, 0, 0, 0, 948, 949, + 0, 0, 0, 0, 0, 951, 0, 952, 0, 0, + 0, 0, 953, 0, 954, 955, 93, 888, 583, 889, + 890, 891, 892, 893, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 94, 95, 96, 97, 98, 99, + 100, 101, 0, 102, 103, 104, 0, 0, 0, 0, + 894, 0, 0, 105, 106, 0, 107, 108, 109, 110, + 111, 112, 113, 114, 895, 116, 896, 897, 0, 119, + 120, 121, 122, 123, 124, 898, 899, 125, 126, 900, + 901, 129, 0, 130, 131, 132, 133, 902, 0, 903, + 0, 136, 137, 138, 139, 140, 141, 142, 143, 144, + 145, 0, 146, 147, 148, 149, 150, 151, 0, 152, + 153, 154, 155, 904, 905, 906, 907, 908, 909, 910, + 161, 162, 163, 164, 165, 166, 167, 911, 912, 170, + 913, 171, 0, 172, 173, 174, 175, 176, 177, 0, + 178, 179, 180, 181, 182, 0, 0, 183, 184, 717, + 186, 187, 0, 188, 189, 190, 0, 191, 192, 193, + 0, 194, 195, 196, 197, 914, 199, 200, 201, 202, + 203, 915, 916, 205, 0, 206, 207, 917, 209, 0, + 210, 0, 211, 212, 0, 213, 214, 215, 216, 217, + 218, 0, 219, 0, 918, 919, 222, 0, 223, 224, + 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, + 0, 235, 236, 237, 238, 239, 240, 0, 241, 242, + 243, 244, 245, 246, 247, 248, 920, 921, 0, 922, + 0, 252, 253, 254, 255, 256, 257, 258, 259, 260, + 261, 262, 0, 0, 263, 264, 265, 266, 0, 267, + 268, 269, 923, 924, 270, 271, 272, 273, 274, 275, + 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, + 286, 287, 288, 289, 290, 291, 292, 293, 925, 295, + 926, 297, 298, 299, 300, 927, 301, 302, 303, 304, + 928, 929, 306, 930, 308, 309, 310, 0, 311, 312, + 0, 0, 931, 314, 315, 0, 0, 316, 317, 318, + 319, 320, 932, 322, 323, 324, 325, 326, 327, 328, + 329, 330, 331, 0, 332, 333, 933, 335, 336, 337, + 338, 339, 340, 0, 341, 342, 343, 344, 345, 346, + 0, 347, 348, 349, 934, 351, 352, 353, 354, 0, + 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, + 365, 366, 367, 0, 368, 369, 370, 371, 372, 373, + 935, 375, 376, 377, 378, 379, 380, 381, 382, 383, + 384, 385, 0, 386, 387, 388, 389, 390, 936, 392, + 393, 394, 395, 396, 397, 398, 399, 937, 401, 0, + 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, + 412, 413, 414, 415, 938, 417, 0, 418, 419, 2291, + 420, 421, 422, 423, 424, 425, 426, 0, 939, 940, + 0, 0, 429, 430, 941, 432, 942, 943, 434, 435, + 944, 437, 438, 439, 440, 441, 0, 0, 442, 443, + 444, 445, 446, 945, 0, 448, 449, 450, 451, 452, + 453, 946, 0, 455, 456, 457, 458, 459, 460, 461, + 0, 0, 462, 0, 0, 463, 464, 465, 466, 467, + 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, + 478, 479, 480, 481, 482, 483, 947, 0, 0, 0, + 0, 0, 0, 948, 949, 0, 0, 0, 0, 0, + 951, 0, 952, 0, 0, 0, 0, 953, 0, 954, + 955, 93, 888, 583, 889, 890, 891, 892, 893, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 94, + 95, 96, 97, 98, 99, 100, 101, 0, 102, 103, + 104, 0, 0, 0, 0, 894, 0, 0, 105, 106, + 0, 107, 108, 109, 110, 111, 112, 113, 114, 895, + 116, 896, 897, 0, 119, 120, 121, 122, 123, 124, + 898, 899, 125, 126, 900, 901, 129, 0, 130, 131, + 132, 133, 902, 0, 903, 0, 136, 137, 138, 139, + 140, 141, 142, 143, 144, 145, 0, 146, 147, 148, + 149, 150, 151, 0, 152, 153, 154, 155, 904, 905, + 906, 907, 908, 909, 910, 161, 162, 163, 164, 165, + 166, 167, 911, 912, 170, 913, 171, 0, 172, 173, + 174, 175, 176, 177, 0, 178, 179, 180, 181, 182, + 0, 0, 183, 184, 717, 186, 187, 0, 188, 189, + 190, 0, 191, 192, 193, 0, 194, 195, 196, 197, + 914, 199, 200, 201, 202, 203, 915, 916, 205, 0, + 206, 207, 917, 209, 0, 210, 0, 211, 212, 0, + 213, 214, 215, 216, 217, 218, 0, 219, 0, 918, + 919, 222, 0, 223, 224, 225, 226, 227, 228, 229, + 230, 231, 232, 233, 234, 0, 235, 236, 237, 238, + 239, 240, 0, 241, 242, 243, 244, 245, 246, 247, + 248, 920, 921, 0, 922, 0, 252, 253, 254, 255, + 256, 257, 258, 259, 260, 261, 262, 0, 0, 263, + 264, 265, 266, 0, 267, 268, 269, 923, 924, 270, + 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, + 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, + 291, 292, 293, 925, 295, 926, 297, 298, 299, 300, + 927, 301, 302, 303, 304, 928, 929, 306, 930, 308, + 309, 310, 0, 311, 312, 0, 0, 931, 314, 315, + 0, 0, 316, 317, 318, 319, 320, 932, 322, 323, + 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, + 333, 933, 335, 336, 337, 338, 339, 340, 0, 341, + 342, 343, 344, 345, 346, 0, 347, 348, 349, 934, + 351, 352, 353, 354, 0, 355, 356, 357, 358, 359, + 360, 361, 362, 363, 364, 365, 366, 367, 0, 368, + 369, 370, 371, 372, 373, 935, 375, 376, 377, 378, + 379, 380, 381, 382, 383, 384, 385, 0, 386, 387, + 388, 389, 390, 936, 392, 393, 394, 395, 396, 397, + 398, 399, 937, 401, 0, 402, 403, 404, 405, 406, + 407, 408, 409, 410, 411, 412, 413, 414, 415, 938, + 417, 0, 418, 419, 0, 420, 421, 422, 423, 424, + 425, 426, 0, 939, 940, 0, 0, 429, 430, 941, + 432, 942, 943, 434, 435, 944, 437, 438, 439, 440, + 441, 0, 0, 442, 443, 444, 445, 446, 945, 0, + 448, 449, 450, 451, 452, 453, 946, 0, 455, 456, + 457, 458, 459, 460, 461, 0, 2383, 462, 0, 0, + 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, + 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, + 483, 947, 0, 0, 0, 0, 0, 0, 948, 949, + 0, 0, 0, 0, 0, 951, 0, 952, 0, 0, + 0, 0, 953, 0, 954, 955, 93, 888, 583, 889, + 890, 891, 892, 893, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 94, 95, 96, 97, 98, 99, + 100, 101, 0, 102, 103, 104, 0, 0, 0, 0, + 894, 0, 0, 105, 106, 0, 107, 108, 109, 110, + 111, 112, 113, 114, 895, 116, 896, 897, 0, 119, + 120, 121, 122, 123, 124, 898, 899, 125, 126, 900, + 901, 129, 0, 130, 131, 132, 133, 902, 0, 903, + 0, 136, 137, 138, 139, 140, 141, 142, 143, 144, + 145, 0, 146, 147, 148, 149, 150, 151, 0, 152, + 153, 154, 155, 904, 905, 906, 907, 908, 909, 910, + 161, 162, 163, 164, 165, 166, 167, 911, 912, 170, + 913, 171, 0, 172, 173, 174, 175, 176, 177, 0, + 178, 179, 180, 181, 182, 0, 0, 183, 184, 717, + 186, 187, 0, 188, 189, 190, 0, 191, 192, 193, + 0, 194, 195, 196, 197, 914, 199, 200, 201, 202, + 203, 915, 916, 205, 0, 206, 207, 917, 209, 0, + 210, 0, 211, 212, 0, 213, 214, 215, 216, 217, + 218, 0, 219, 0, 918, 919, 222, 0, 223, 224, + 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, + 0, 235, 236, 237, 238, 239, 240, 0, 241, 242, + 243, 244, 245, 246, 247, 248, 920, 921, 0, 922, + 0, 252, 253, 254, 255, 256, 257, 258, 259, 260, + 261, 262, 0, 0, 263, 264, 265, 266, 0, 267, + 268, 269, 923, 924, 270, 271, 272, 273, 274, 275, + 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, + 286, 287, 288, 289, 290, 291, 292, 293, 925, 295, + 926, 297, 298, 299, 300, 927, 301, 302, 303, 304, + 928, 929, 306, 930, 308, 309, 310, 0, 311, 312, + 0, 0, 931, 314, 315, 0, 0, 316, 317, 318, + 319, 320, 932, 322, 323, 324, 325, 326, 327, 328, + 329, 330, 331, 0, 332, 333, 933, 335, 336, 337, + 338, 339, 340, 0, 341, 342, 343, 344, 345, 346, + 0, 347, 348, 349, 934, 351, 352, 353, 354, 0, + 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, + 365, 366, 367, 0, 368, 369, 370, 371, 372, 373, + 935, 375, 376, 377, 378, 379, 380, 381, 382, 383, + 384, 385, 0, 386, 387, 388, 389, 390, 936, 392, + 393, 394, 395, 396, 397, 398, 399, 937, 401, 0, + 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, + 412, 413, 414, 415, 938, 417, 0, 418, 419, 0, + 420, 421, 422, 423, 424, 425, 426, 0, 939, 940, + 0, 0, 429, 430, 941, 432, 942, 943, 434, 435, + 944, 437, 438, 439, 440, 441, 0, 0, 442, 443, + 444, 445, 446, 945, 0, 448, 449, 450, 451, 452, + 453, 946, 0, 455, 456, 457, 458, 459, 460, 461, + 0, 0, 462, 0, 0, 463, 464, 465, 466, 467, + 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, + 478, 479, 480, 481, 482, 483, 947, 0, 0, 0, + 0, 0, 0, 948, 949, 0, 0, 0, 0, 0, + 951, 0, 952, 0, 0, 0, 0, 953, 0, 954, + 955, 1085, 888, 583, 889, 890, 891, 892, 893, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 94, + 95, 96, 97, 98, 99, 100, 101, 0, 102, 103, + 104, 0, 0, 0, 0, 894, 0, 0, 105, 106, + 0, 107, 108, 109, 1087, 111, 112, 113, 114, 895, + 1088, 896, 897, 0, 119, 120, 121, 122, 123, 124, + 898, 899, 125, 126, 900, 901, 129, 0, 130, 131, + 132, 133, 902, 0, 1089, 0, 136, 137, 138, 139, + 140, 141, 1090, 143, 144, 145, 0, 146, 147, 148, + 149, 150, 151, 0, 1091, 153, 154, 155, 1092, 1093, + 1094, 1095, 908, 909, 1096, 161, 162, 163, 164, 165, + 166, 167, 911, 912, 170, 913, 171, 0, 172, 173, + 174, 175, 176, 177, 0, 178, 179, 180, 181, 182, + 0, 0, 183, 184, 717, 186, 187, 0, 188, 189, + 190, 0, 191, 192, 193, 0, 194, 195, 196, 197, + 914, 199, 200, 201, 202, 203, 915, 916, 205, 0, + 206, 207, 917, 209, 0, 210, 0, 211, 1098, 0, + 1099, 214, 215, 1100, 1101, 218, 0, 219, 0, 918, + 919, 222, 0, 223, 224, 225, 226, 227, 228, 229, + 1102, 231, 232, 233, 234, 0, 235, 236, 237, 238, + 239, 240, 0, 241, 1103, 243, 244, 245, 246, 247, + 248, 920, 921, 0, 922, 0, 252, 1104, 1105, 255, + 1106, 257, 258, 259, 260, 261, 262, 0, 0, 263, + 1107, 265, 1108, 0, 267, 268, 269, 923, 924, 270, + 271, 272, 273, 274, 1109, 276, 277, 278, 279, 280, + 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, + 291, 292, 293, 925, 1110, 926, 297, 298, 299, 300, + 927, 301, 302, 1111, 304, 928, 929, 306, 930, 308, + 309, 310, 0, 311, 312, 0, 0, 931, 314, 315, + 0, 0, 316, 317, 1112, 319, 1113, 932, 322, 323, + 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, + 333, 933, 335, 336, 337, 338, 339, 340, 0, 341, + 342, 343, 344, 345, 346, 0, 347, 348, 349, 934, + 351, 352, 353, 354, 0, 355, 356, 357, 358, 359, + 360, 361, 362, 363, 364, 365, 366, 367, 0, 368, + 369, 1114, 371, 372, 373, 935, 375, 376, 377, 378, + 379, 380, 381, 382, 383, 384, 385, 0, 386, 387, + 388, 389, 390, 1115, 392, 393, 394, 395, 396, 1116, + 398, 399, 937, 401, 0, 402, 403, 404, 405, 406, + 407, 408, 409, 410, 411, 412, 413, 1117, 415, 938, + 417, 0, 418, 419, 0, 420, 1118, 422, 423, 424, + 425, 426, 0, 939, 940, 0, 0, 429, 430, 941, + 432, 942, 943, 434, 435, 1119, 437, 438, 439, 440, + 441, 0, 0, 442, 443, 444, 445, 446, 1120, 0, + 448, 449, 450, 451, 452, 453, 946, 0, 455, 1122, + 457, 458, 459, 460, 461, 0, 0, 462, 0, 0, + 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, + 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, + 483, 947, 0, 0, 0, 0, 0, 0, 948, 949, + 0, 0, 0, 0, 0, 951, 0, 952, 0, 0, + 0, 0, 953, 0, 954, 955, 93, 888, 583, 889, + 890, 891, 892, 893, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 94, 95, 96, 97, 98, 99, + 100, 101, 0, 102, 103, 104, 0, 0, 0, 0, + 894, 0, 0, 105, 106, 0, 107, 108, 109, 110, + 111, 112, 113, 114, 895, 116, 896, 897, 0, 119, + 120, 121, 122, 123, 124, 898, 899, 125, 126, 900, + 901, 129, 0, 130, 131, 132, 133, 902, 0, 903, + 0, 136, 137, 138, 139, 140, 141, 142, 143, 144, + 145, 0, 146, 147, 148, 149, 150, 151, 0, 152, + 153, 154, 155, 904, 905, 906, 907, 908, 909, 910, + 161, 162, 163, 164, 165, 166, 167, 911, 912, 170, + 913, 171, 0, 172, 173, 174, 175, 176, 177, 0, + 178, 179, 180, 181, 182, 0, 0, 183, 184, 717, + 186, 187, 0, 188, 189, 190, 0, 191, 192, 193, + 0, 194, 195, 196, 197, 914, 199, 200, 201, 202, + 203, 915, 916, 205, 0, 206, 207, 917, 209, 0, + 210, 0, 211, 212, 0, 213, 214, 215, 216, 217, + 218, 0, 219, 0, 918, 919, 222, 0, 223, 224, + 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, + 0, 235, 236, 237, 238, 239, 240, 0, 241, 242, + 243, 244, 245, 246, 247, 248, 920, 921, 0, 922, + 0, 252, 253, 254, 255, 256, 257, 258, 259, 260, + 261, 262, 0, 0, 263, 264, 265, 266, 0, 267, + 268, 269, 923, 924, 270, 271, 272, 273, 274, 275, + 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, + 286, 287, 288, 289, 290, 291, 292, 293, 925, 295, + 926, 297, 298, 299, 300, 927, 301, 302, 303, 304, + 928, 929, 306, 930, 308, 309, 310, 0, 311, 312, + 0, 0, 931, 314, 315, 0, 0, 316, 317, 318, + 319, 320, 932, 322, 323, 324, 325, 326, 327, 328, + 329, 330, 331, 0, 332, 333, 933, 335, 336, 337, + 338, 339, 340, 0, 341, 342, 343, 344, 345, 346, + 0, 347, 348, 349, 934, 351, 352, 353, 354, 0, + 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, + 365, 366, 367, 0, 368, 369, 370, 371, 372, 373, + 935, 375, 376, 377, 378, 379, 380, 381, 382, 383, + 384, 385, 0, 386, 387, 388, 389, 390, 936, 392, + 393, 394, 395, 396, 397, 398, 399, 937, 401, 0, + 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, + 412, 413, 414, 415, 938, 417, 0, 418, 419, 0, + 420, 421, 422, 423, 424, 425, 426, 0, 939, 940, + 0, 0, 429, 430, 941, 432, 942, 943, 434, 435, + 944, 437, 438, 439, 440, 441, 0, 0, 442, 443, + 444, 445, 446, 945, 0, 448, 449, 450, 451, 452, + 453, 946, 0, 455, 456, 457, 458, 459, 460, 461, + 0, 0, 462, 0, 0, 463, 464, 465, 466, 467, + 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, + 478, 479, 480, 481, 482, 483, 947, 0, 0, 0, + 0, 0, 0, 1486, 1487, 0, 0, 0, 0, 0, + 951, 0, 952, 0, 0, 0, 0, 953, 0, 954, + 955, 93, 1867, 583, 889, 890, 891, 892, 893, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 94, + 95, 96, 97, 98, 99, 100, 101, 0, 102, 103, + 104, 0, 0, 0, 0, 894, 0, 0, 105, 106, + 0, 107, 108, 109, 110, 111, 112, 113, 114, 895, + 116, 896, 897, 0, 119, 120, 121, 122, 123, 124, + 898, 899, 125, 126, 900, 901, 129, 0, 130, 131, + 132, 133, 902, 0, 903, 0, 136, 137, 138, 139, + 140, 141, 142, 143, 144, 145, 0, 146, 147, 148, + 149, 150, 151, 0, 152, 153, 154, 155, 904, 905, + 906, 907, 908, 909, 910, 161, 162, 163, 164, 165, + 166, 167, 911, 912, 170, 913, 171, 0, 172, 173, + 174, 175, 176, 177, 0, 178, 179, 180, 181, 182, + 0, 0, 183, 184, 717, 186, 187, 0, 188, 189, + 190, 0, 191, 192, 193, 0, 194, 195, 196, 197, + 914, 199, 200, 201, 202, 203, 915, 916, 205, 0, + 206, 207, 917, 209, 0, 210, 0, 211, 212, 0, + 213, 214, 215, 216, 217, 218, 0, 219, 0, 918, + 919, 222, 0, 223, 224, 225, 226, 227, 228, 229, + 230, 231, 232, 233, 234, 0, 235, 236, 237, 238, + 239, 240, 0, 241, 242, 243, 244, 245, 246, 247, + 248, 920, 921, 0, 922, 0, 252, 253, 254, 255, + 256, 257, 258, 259, 260, 261, 262, 0, 0, 263, + 264, 265, 266, 0, 267, 268, 269, 923, 924, 270, + 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, + 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, + 291, 292, 293, 925, 295, 926, 297, 298, 299, 300, + 927, 301, 302, 303, 304, 928, 929, 306, 930, 308, + 309, 310, 0, 311, 312, 0, 0, 931, 314, 315, + 0, 0, 316, 317, 318, 319, 320, 932, 322, 323, + 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, + 333, 933, 335, 336, 337, 338, 339, 340, 0, 341, + 342, 343, 344, 345, 346, 0, 347, 348, 349, 934, + 351, 352, 353, 354, 0, 355, 356, 357, 358, 359, + 360, 361, 362, 363, 364, 365, 366, 367, 0, 368, + 369, 370, 371, 372, 373, 935, 375, 376, 377, 378, + 379, 380, 381, 382, 383, 384, 385, 0, 386, 387, + 388, 389, 390, 936, 392, 393, 394, 395, 396, 397, + 398, 399, 937, 401, 0, 402, 403, 404, 405, 406, + 407, 408, 409, 410, 411, 412, 413, 414, 415, 938, + 417, 0, 418, 419, 0, 420, 421, 422, 423, 424, + 425, 426, 0, 939, 940, 0, 0, 429, 430, 941, + 432, 942, 943, 434, 435, 944, 437, 438, 439, 440, + 441, 0, 0, 442, 443, 444, 445, 446, 945, 0, + 448, 449, 450, 451, 452, 453, 946, 0, 455, 456, + 457, 458, 459, 460, 461, 0, 0, 462, 0, 0, + 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, + 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, + 483, 947, 0, 0, 0, 0, 0, 0, 948, 949, + 0, 0, 0, 0, 0, 951, 0, 952, 0, 0, + 0, 0, 953, 0, 954, 955, 93, 888, 583, 889, + 890, 891, 892, 893, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 94, 95, 96, 97, 98, 99, + 100, 101, 0, 102, 103, 104, 0, 0, 0, 0, + 894, 0, 0, 105, 106, 0, 107, 108, 109, 110, + 111, 112, 113, 114, 895, 116, 896, 897, 0, 119, + 120, 121, 122, 123, 124, 898, 899, 125, 126, 900, + 901, 129, 0, 130, 131, 132, 133, 902, 0, 903, + 0, 136, 137, 138, 139, 140, 141, 142, 143, 144, + 145, 0, 146, 147, 148, 149, 150, 151, 0, 152, + 153, 154, 155, 904, 905, 906, 907, 908, 909, 910, + 161, 162, 163, 164, 165, 166, 167, 911, 912, 170, + 913, 171, 0, 172, 173, 174, 175, 176, 177, 0, + 178, 179, 180, 181, 182, 0, 0, 183, 184, 717, + 186, 187, 0, 188, 189, 190, 0, 191, 192, 193, + 0, 194, 195, 196, 197, 914, 199, 200, 201, 202, + 203, 915, 916, 205, 0, 206, 207, 917, 209, 0, + 210, 0, 211, 212, 0, 213, 214, 215, 216, 217, + 218, 0, 219, 0, 918, 919, 222, 0, 223, 224, + 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, + 0, 235, 236, 237, 238, 239, 240, 0, 241, 242, + 243, 244, 245, 246, 247, 248, 920, 921, 0, 922, + 0, 252, 253, 254, 255, 256, 257, 258, 259, 260, + 261, 262, 0, 0, 263, 264, 265, 266, 0, 267, + 268, 269, 923, 924, 270, 271, 272, 273, 274, 275, + 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, + 286, 287, 288, 289, 290, 291, 292, 293, 925, 295, + 926, 297, 298, 299, 300, 927, 301, 302, 303, 304, + 928, 929, 306, 930, 308, 309, 310, 0, 311, 312, + 0, 0, 931, 314, 315, 0, 0, 316, 317, 318, + 319, 320, 932, 322, 323, 324, 325, 326, 327, 328, + 329, 330, 331, 0, 332, 333, 933, 335, 336, 337, + 338, 339, 340, 0, 341, 342, 343, 344, 345, 346, + 0, 347, 348, 349, 934, 351, 352, 353, 354, 0, + 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, + 365, 366, 367, 0, 368, 369, 370, 371, 372, 373, + 935, 375, 376, 377, 378, 379, 380, 381, 382, 383, + 384, 385, 0, 386, 387, 388, 389, 390, 936, 392, + 393, 394, 395, 396, 397, 398, 399, 937, 401, 0, + 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, + 412, 413, 414, 415, 938, 417, 0, 418, 419, 0, + 420, 421, 422, 423, 424, 425, 426, 0, 939, 940, + 0, 0, 429, 430, 941, 432, 942, 943, 434, 435, + 944, 437, 438, 439, 440, 441, 0, 0, 442, 443, + 444, 445, 446, 945, 0, 448, 449, 450, 451, 452, + 453, 946, 0, 455, 456, 457, 458, 459, 460, 461, + 0, 0, 462, 0, 0, 463, 464, 465, 466, 467, + 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, + 478, 479, 480, 481, 482, 483, 947, 0, 0, 0, + 0, 0, 0, 948, 949, 0, 0, 0, 0, 0, + 951, 0, 2098, 0, 0, 0, 0, 953, 0, 954, + 955, 93, 888, 583, 889, 890, 891, 892, 893, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 94, + 95, 96, 97, 98, 99, 100, 101, 0, 102, 103, + 104, 0, 0, 0, 0, 894, 0, 0, 105, 106, + 0, 107, 108, 109, 110, 111, 112, 113, 114, 895, + 116, 896, 897, 0, 119, 120, 121, 122, 123, 124, + 898, 899, 125, 126, 900, 901, 129, 0, 130, 131, + 132, 133, 902, 0, 903, 0, 136, 137, 138, 139, + 140, 141, 142, 143, 144, 145, 0, 146, 147, 148, + 149, 150, 151, 0, 152, 153, 2797, 155, 904, 905, + 906, 907, 908, 909, 910, 161, 162, 163, 164, 165, + 166, 167, 911, 912, 170, 913, 171, 0, 172, 173, + 174, 175, 176, 177, 0, 178, 179, 180, 181, 182, + 0, 0, 183, 184, 717, 186, 187, 0, 188, 189, + 190, 0, 191, 192, 193, 0, 194, 195, 196, 197, + 914, 199, 200, 201, 202, 203, 915, 916, 205, 0, + 206, 207, 917, 209, 0, 210, 0, 211, 212, 0, + 213, 214, 215, 216, 217, 218, 0, 219, 0, 2798, + 919, 222, 0, 223, 224, 225, 226, 227, 228, 229, + 230, 231, 232, 233, 234, 0, 235, 236, 237, 238, + 239, 240, 0, 241, 242, 243, 244, 245, 246, 247, + 248, 920, 921, 0, 922, 0, 252, 253, 254, 255, + 256, 257, 258, 259, 260, 261, 262, 0, 0, 263, + 264, 265, 266, 0, 267, 268, 269, 923, 924, 270, + 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, + 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, + 291, 292, 293, 925, 295, 926, 297, 298, 299, 300, + 927, 301, 302, 303, 304, 928, 929, 306, 930, 308, + 309, 310, 0, 311, 312, 0, 0, 931, 314, 315, + 0, 0, 316, 317, 318, 319, 320, 932, 322, 323, + 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, + 333, 933, 335, 336, 337, 338, 339, 340, 0, 341, + 342, 343, 344, 345, 346, 0, 347, 348, 349, 934, + 351, 352, 353, 354, 0, 355, 356, 357, 358, 359, + 360, 361, 362, 363, 364, 365, 366, 367, 0, 368, + 369, 370, 371, 372, 2799, 935, 375, 376, 377, 378, + 379, 380, 381, 382, 383, 384, 385, 0, 386, 387, + 388, 389, 390, 936, 392, 393, 394, 395, 396, 397, + 398, 399, 937, 401, 0, 402, 403, 404, 405, 406, + 407, 408, 409, 410, 411, 412, 413, 414, 415, 938, + 417, 0, 418, 419, 0, 420, 421, 422, 423, 424, + 425, 426, 0, 939, 940, 0, 0, 429, 430, 941, + 432, 942, 943, 434, 435, 944, 437, 438, 439, 440, + 441, 0, 0, 442, 443, 444, 445, 446, 945, 0, + 448, 449, 450, 451, 452, 453, 946, 0, 455, 456, + 457, 458, 459, 460, 461, 0, 0, 462, 0, 0, + 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, + 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, + 483, 947, 0, 0, 0, 0, 0, 0, 948, 949, + 0, 0, 0, 0, 0, 951, 0, 2801, 0, 0, + 0, 0, 953, 0, 954, 955, 93, 888, 583, 889, + 890, 891, 892, 893, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 94, 95, 96, 97, 98, 99, + 100, 101, 0, 102, 103, 104, 0, 0, 0, 0, + 894, 0, 0, 105, 106, 0, 107, 108, 109, 110, + 111, 112, 113, 3055, 895, 116, 896, 897, 0, 119, + 120, 121, 122, 123, 124, 898, 899, 125, 126, 900, + 901, 129, 0, 130, 131, 132, 133, 902, 0, 903, + 0, 136, 137, 138, 139, 140, 141, 142, 143, 144, + 145, 0, 146, 147, 148, 149, 150, 151, 0, 152, + 153, 154, 3056, 904, 905, 906, 907, 908, 909, 910, + 161, 162, 163, 164, 165, 166, 167, 911, 912, 170, + 913, 171, 0, 172, 173, 174, 175, 176, 177, 0, + 178, 179, 180, 181, 182, 0, 0, 183, 184, 717, + 186, 187, 0, 188, 189, 190, 0, 191, 192, 193, + 0, 194, 195, 196, 197, 914, 199, 200, 201, 202, + 203, 915, 916, 205, 0, 206, 207, 917, 209, 0, + 210, 0, 211, 212, 0, 213, 214, 215, 216, 217, + 218, 0, 219, 0, 918, 919, 222, 0, 223, 224, + 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, + 0, 235, 236, 237, 238, 239, 240, 0, 241, 242, + 243, 244, 245, 246, 247, 248, 920, 921, 0, 922, + 0, 252, 253, 254, 255, 256, 257, 258, 259, 260, + 261, 262, 0, 0, 263, 264, 265, 266, 0, 267, + 268, 269, 923, 924, 270, 271, 272, 273, 274, 275, + 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, + 286, 287, 288, 289, 290, 291, 292, 293, 925, 295, + 926, 297, 298, 299, 300, 927, 301, 302, 303, 304, + 928, 929, 306, 930, 308, 309, 310, 0, 311, 312, + 0, 0, 931, 314, 315, 0, 0, 316, 317, 318, + 319, 320, 932, 322, 323, 324, 325, 326, 327, 328, + 329, 330, 331, 0, 332, 333, 933, 335, 336, 337, + 338, 339, 340, 0, 341, 342, 343, 344, 345, 346, + 0, 347, 348, 349, 934, 351, 352, 353, 354, 0, + 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, + 365, 366, 367, 0, 368, 369, 370, 371, 372, 373, + 935, 375, 376, 377, 378, 379, 380, 381, 382, 383, + 384, 385, 0, 386, 387, 388, 389, 390, 936, 392, + 393, 394, 395, 396, 397, 398, 399, 937, 401, 0, + 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, + 412, 413, 414, 415, 938, 417, 0, 418, 419, 0, + 420, 421, 422, 423, 424, 425, 426, 0, 939, 940, + 0, 0, 429, 430, 941, 432, 942, 943, 434, 435, + 944, 437, 438, 3057, 440, 441, 0, 0, 442, 443, + 444, 445, 446, 945, 0, 448, 449, 450, 451, 452, + 453, 946, 0, 455, 456, 457, 458, 459, 460, 461, + 0, 0, 462, 0, 0, 463, 464, 465, 466, 467, + 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, + 478, 479, 480, 481, 482, 483, 947, 0, 0, 0, + 0, 0, 0, 948, 949, 0, 0, 0, 0, 0, + 951, 0, 952, 0, 0, 0, 0, 953, 0, 954, + 955, 93, 888, 583, 889, 890, 891, 892, 893, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 94, + 95, 96, 97, 98, 99, 100, 101, 0, 102, 103, + 104, 0, 0, 0, 0, 894, 0, 0, 105, 106, + 0, 107, 108, 109, 110, 111, 112, 113, 114, 895, + 116, 896, 897, 0, 119, 120, 121, 122, 123, 124, + 898, 899, 125, 126, 900, 901, 129, 0, 130, 131, + 132, 133, 902, 0, 903, 0, 136, 137, 138, 139, + 140, 141, 142, 143, 144, 145, 0, 146, 147, 148, + 149, 150, 151, 0, 152, 153, 154, 3056, 904, 905, + 906, 907, 908, 909, 910, 161, 162, 163, 164, 165, + 166, 167, 911, 912, 170, 913, 171, 0, 172, 173, + 174, 175, 176, 177, 0, 178, 179, 180, 181, 182, + 0, 0, 183, 184, 717, 186, 187, 0, 188, 189, + 190, 0, 191, 192, 193, 0, 194, 195, 196, 197, + 914, 199, 200, 201, 202, 203, 915, 916, 205, 0, + 206, 207, 917, 209, 0, 210, 0, 211, 212, 0, + 213, 214, 215, 216, 217, 218, 0, 219, 0, 918, + 919, 222, 0, 223, 224, 225, 226, 227, 228, 229, + 230, 231, 232, 233, 234, 0, 235, 236, 237, 238, + 239, 240, 0, 241, 242, 243, 244, 245, 246, 247, + 248, 920, 921, 0, 922, 0, 252, 253, 254, 255, + 256, 257, 258, 259, 260, 261, 262, 0, 0, 263, + 264, 265, 266, 0, 267, 268, 269, 923, 924, 270, + 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, + 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, + 291, 292, 293, 925, 295, 926, 297, 298, 299, 300, + 927, 301, 302, 303, 304, 928, 929, 306, 930, 308, + 309, 310, 0, 311, 312, 0, 0, 931, 314, 315, + 0, 0, 316, 317, 318, 319, 320, 932, 322, 323, + 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, + 333, 933, 335, 336, 337, 338, 339, 340, 0, 341, + 342, 343, 344, 345, 346, 0, 347, 348, 349, 934, + 351, 352, 353, 354, 0, 355, 356, 357, 358, 359, + 360, 361, 362, 363, 364, 365, 366, 367, 0, 368, + 369, 370, 371, 372, 373, 935, 375, 376, 377, 378, + 379, 380, 381, 382, 383, 384, 385, 0, 386, 387, + 388, 389, 390, 936, 392, 393, 394, 395, 396, 397, + 398, 399, 937, 401, 0, 402, 403, 404, 405, 406, + 407, 408, 409, 410, 411, 412, 413, 414, 415, 938, + 417, 0, 418, 419, 0, 420, 421, 422, 423, 424, + 425, 426, 0, 939, 940, 0, 0, 429, 430, 941, + 432, 942, 943, 434, 435, 944, 437, 438, 3057, 440, + 441, 0, 0, 442, 443, 444, 445, 446, 945, 0, + 448, 449, 450, 451, 452, 453, 946, 0, 455, 456, + 457, 458, 459, 460, 461, 0, 0, 462, 0, 0, + 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, + 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, + 483, 947, 0, 0, 0, 0, 0, 0, 948, 949, + 0, 0, 0, 0, 0, 951, 0, 952, 0, 0, + 0, 0, 953, 0, 954, 955, 93, 888, 583, 889, + 890, 891, 892, 893, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 94, 95, 96, 97, 98, 99, + 100, 101, 0, 102, 103, 104, 0, 0, 0, 0, + 894, 0, 0, 105, 106, 0, 107, 108, 109, 110, + 111, 112, 113, -1846, 895, 116, 896, 897, 0, 119, + 120, 121, 122, 123, 124, 898, 899, 125, 126, 900, + 901, 129, 0, 130, 131, 132, 133, 902, 0, 903, + 0, 136, 137, 138, 139, 140, 141, 142, 143, 144, + 145, 0, 146, 147, 148, 149, 150, 151, 0, 152, + 153, 154, 3056, 904, 905, 906, 907, 908, 909, 910, + 161, 162, 163, 164, 165, 166, 167, 911, 912, 170, + 913, 171, 0, 172, 173, 174, 175, 176, 177, 0, + 178, 179, 180, 181, 182, 0, 0, 183, 184, 717, + 186, 187, 0, 188, 189, 190, 0, 191, 192, 193, + 0, 194, 195, 196, 197, 914, 199, 200, 201, 202, + 203, 915, 916, 205, 0, 206, 207, 917, 209, 0, + 210, 0, 211, 212, 0, 213, 214, 215, 216, -1846, + 218, 0, 219, 0, 918, 919, 222, 0, 223, 224, + 225, 226, 227, 228, 229, -1846, 231, 232, 233, 234, + 0, 235, 236, 237, 238, 239, 240, 0, 241, 242, + 243, 244, 245, 246, 247, 248, 920, 921, 0, 922, + 0, 252, 0, 0, 255, 256, 257, 258, 259, 260, + 261, 262, 0, 0, 263, 264, 265, -1846, 0, 267, + 268, 269, 923, 924, 270, 271, 272, 273, 274, 275, + 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, + 286, 287, 288, 289, 290, 291, 292, 293, 925, 295, + 926, 297, 298, 299, 300, 0, 301, 302, 0, 304, + 928, 929, 306, 930, 308, 309, 310, 0, 311, 312, + 0, 0, 931, 314, 315, 0, 0, 316, 317, 318, + 319, 320, 932, 322, 323, 324, 325, 326, 327, 328, + 329, 330, 331, 0, 332, 333, 933, 335, 336, 337, + 338, 339, 340, 0, 341, 342, 343, 344, 345, 346, + 0, 347, 348, 349, 934, 351, 352, 353, 354, 0, + 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, + 365, 366, 367, 0, 368, 369, 370, 371, 372, 373, + 935, 375, 376, 377, 378, 379, 380, 381, 382, 383, + 384, 385, 0, 386, 387, 388, 389, 390, 936, 392, + 393, 394, 395, 396, -1846, 398, 399, 937, 401, 0, + 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, + 412, 413, 414, 415, 938, 417, 0, 418, 419, 0, + 420, 421, 422, 423, 424, 425, 426, 0, 939, 940, + 0, 0, 429, 430, 941, 432, 942, 943, 434, 435, + 944, 437, 438, 3057, 440, 441, 0, 0, 442, 443, + 444, 445, 446, 945, 0, 448, 449, 450, 451, 452, + 453, 946, 0, 455, 456, 457, 458, 459, 460, 461, + 0, 0, 462, 0, 0, 463, 464, 465, 466, 467, + 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, + 478, 479, 480, 481, 482, 483, -1846, 0, 0, 0, + 0, 0, 0, 948, 949, 0, 0, 0, 0, 0, + 951, 0, 952, 0, 0, 0, 0, 953, 0, 954, + 955, 93, 888, 583, 889, 890, 891, 892, 893, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 94, + 95, 96, 97, 98, 99, 100, 101, 0, 102, 103, + 104, 0, 0, 0, 0, 0, 0, 0, 105, 106, + 0, 107, 108, 109, 110, 111, 112, 113, 114, 895, + 116, 896, 897, 0, 119, 120, 121, 122, 123, 124, + 898, 899, 125, 126, 900, 901, 129, 0, 130, 131, + 132, 133, 902, 0, 903, 0, 136, 137, 138, 139, + 140, 141, 142, 143, 144, 145, 0, 146, 147, 148, + 149, 150, 151, 0, 152, 153, 154, 155, 904, 905, + 906, 907, 908, 909, 910, 161, 162, 163, 164, 165, + 166, 167, 911, 912, 170, 0, 171, 0, 172, 173, + 174, 175, 176, 177, 0, 178, 179, 180, 181, 182, + 0, 0, 183, 184, 717, 186, 187, 0, 188, 189, + 190, 0, 191, 192, 193, 0, 194, 195, 196, 197, + 914, 199, 200, 201, 202, 203, 915, 916, 205, 0, + 206, 207, 917, 209, 0, 210, 0, 211, 212, 0, + 213, 214, 215, 216, 217, 218, 0, 219, 0, 918, + 919, 222, 0, 223, 224, 225, 226, 227, 228, 229, + 230, 231, 232, 233, 234, 0, 235, 236, 237, 238, + 239, 240, 0, 241, 242, 243, 244, 245, 246, 247, + 248, 920, 921, 0, 922, 0, 252, 253, 254, 255, + 256, 257, 258, 259, 260, 261, 262, 0, 0, 263, + 264, 265, 266, 0, 267, 268, 269, 923, 924, 270, + 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, + 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, + 291, 292, 293, 925, 295, 926, 297, 298, 299, 300, + 0, 301, 302, 303, 304, 928, 929, 306, 930, 308, + 309, 310, 0, 311, 312, 0, 0, 931, 314, 315, + 0, 0, 316, 317, 318, 319, 320, 932, 322, 323, + 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, + 333, 933, 335, 336, 337, 338, 339, 340, 0, 341, + 342, 343, 344, 345, 346, 0, 347, 348, 349, 934, + 351, 352, 353, 354, 0, 355, 356, 357, 358, 359, + 360, 361, 362, 363, 364, 365, 366, 367, 0, 368, + 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, + 379, 380, 381, 382, 383, 384, 385, 0, 386, 387, + 388, 389, 390, 936, 392, 393, 394, 395, 396, 397, + 398, 399, 937, 401, 0, 402, 403, 404, 405, 406, + 407, 408, 409, 410, 411, 412, 413, 414, 415, 938, + 417, 0, 418, 419, 0, 420, 421, 422, 423, 424, + 425, 426, 0, 939, 940, 0, 0, 429, 430, 941, + 432, 942, 943, 434, 435, 944, 437, 438, 439, 440, + 441, 0, 0, 442, 443, 444, 445, 446, 945, 0, + 448, 449, 450, 451, 452, 453, 946, 0, 455, 456, + 457, 458, 459, 460, 461, 0, 0, 462, 0, 0, + 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, + 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, + 483, 0, 0, 0, 0, 0, 0, 0, 1712, 1713, + 0, 0, 93, 888, 583, 889, 890, 1714, 892, 893, + 0, 0, 0, 0, 954, 955, 0, 0, 0, 0, + 94, 95, 96, 97, 98, 99, 100, 101, 0, 102, + 103, 104, 0, 0, 0, 0, 0, 0, 0, 105, + 106, 0, 107, 108, 109, 110, 111, 112, 113, 114, + 895, 116, 896, 897, 0, 119, 120, 121, 122, 123, + 124, 898, 899, 125, 126, 900, 901, 129, 0, 130, + 131, 132, 133, 902, 0, 903, 0, 136, 137, 138, + 139, 140, 141, 142, 143, 144, 145, 0, 146, 147, + 148, 149, 150, 151, 0, 152, 153, 154, 155, 904, + 905, 906, 907, 908, 909, 910, 161, 162, 163, 164, + 165, 166, 167, 911, 912, 170, 0, 171, 0, 172, + 173, 174, 175, 176, 177, 0, 178, 179, 180, 181, + 182, 0, 0, 183, 184, 717, 186, 187, 0, 188, + 189, 190, 0, 191, 192, 193, 0, 194, 195, 196, + 197, 914, 199, 200, 201, 202, 203, 915, 916, 205, + 0, 206, 207, 917, 209, 0, 210, 0, 211, 212, + 0, 213, 214, 215, 216, 217, 218, 0, 219, 0, + 918, 919, 222, 0, 223, 224, 225, 226, 227, 228, + 229, 230, 231, 232, 233, 234, 0, 235, 236, 237, + 238, 239, 240, 0, 241, 242, 243, 244, 245, 246, + 247, 248, 920, 921, 0, 922, 0, 252, 253, 254, + 255, 256, 257, 258, 259, 260, 261, 262, 0, 0, + 263, 264, 265, 266, 0, 267, 268, 269, 923, 924, + 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, + 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, + 290, 291, 292, 293, 925, 295, 926, 297, 298, 299, + 300, 0, 301, 302, 303, 304, 928, 929, 306, 930, + 308, 309, 310, 0, 311, 312, 0, 0, 313, 314, + 315, 0, 0, 316, 317, 318, 319, 320, 932, 322, + 323, 324, 325, 326, 327, 328, 329, 330, 331, 0, + 332, 333, 933, 335, 336, 337, 338, 339, 340, 0, + 341, 342, 343, 344, 345, 346, 0, 347, 348, 349, + 934, 351, 352, 353, 354, 0, 355, 356, 357, 358, + 359, 360, 361, 362, 363, 364, 365, 366, 367, 0, + 368, 369, 370, 371, 372, 373, 1853, 1854, 376, 377, + 378, 379, 380, 381, 382, 383, 384, 385, 0, 386, + 387, 388, 389, 390, 936, 392, 393, 394, 395, 396, + 397, 398, 399, 937, 401, 0, 402, 403, 404, 405, + 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, + 938, 417, 0, 418, 419, 0, 420, 421, 422, 423, + 424, 425, 426, 0, 939, 940, 0, 0, 429, 430, + 941, 432, 942, 943, 434, 435, 944, 437, 438, 439, + 440, 441, 0, 0, 442, 443, 444, 445, 446, 945, + 0, 448, 449, 450, 451, 452, 453, 946, 0, 455, + 456, 457, 458, 459, 460, 461, 0, 0, 462, 0, + 0, 463, 464, 465, 466, 467, 468, 469, 470, 471, + 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, + 482, 483, 0, 0, 0, 0, 0, 0, 0, 1855, + 1856, 0, 0, 0, 0, 0, 0, 0, 1714, 0, + 0, 0, 0, 0, 0, 954, 955, 93, 888, 583, + 889, 890, 891, 892, 893, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 94, 95, 96, 97, 98, + 99, 100, 101, 0, 102, 103, 104, 0, 0, 0, + 0, 0, 0, 0, 105, 106, 0, 107, 108, 109, + 110, 111, 112, 113, 114, 895, 116, 896, 897, 0, + 119, 120, 121, 122, 123, 124, 898, 899, 125, 126, + 900, 901, 129, 0, 130, 131, 132, 133, 902, 0, + 903, 0, 136, 137, 138, 139, 140, 141, 142, 143, + 144, 145, 0, 146, 147, 148, 149, 150, 151, 0, + 152, 153, 154, 155, 904, 905, 906, 907, 908, 909, + 910, 161, 162, 163, 164, 165, 166, 167, 911, 912, + 170, 0, 171, 0, 172, 173, 174, 175, 176, 177, + 0, 178, 179, 180, 181, 182, 0, 0, 183, 184, + 717, 186, 187, 0, 188, 189, 190, 0, 191, 192, + 193, 0, 194, 195, 196, 197, 914, 199, 200, 201, + 202, 203, 915, 916, 205, 0, 206, 207, 917, 209, + 0, 210, 0, 211, 212, 0, 213, 214, 215, 216, + 217, 218, 0, 219, 0, 918, 919, 222, 0, 223, + 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, + 234, 0, 235, 236, 237, 238, 239, 240, 0, 241, + 242, 243, 244, 245, 246, 247, 248, 920, 921, 0, + 922, 0, 252, 0, 254, 255, 256, 257, 258, 259, + 260, 261, 262, 0, 0, 263, 264, 265, 266, 0, + 267, 268, 269, 923, 924, 270, 271, 272, 273, 274, + 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, + 285, 286, 287, 288, 289, 290, 291, 292, 293, 925, + 295, 926, 297, 298, 299, 300, 0, 301, 302, 303, + 304, 928, 929, 306, 930, 308, 309, 310, 0, 311, + 312, 0, 0, 931, 314, 315, 0, 0, 316, 317, + 318, 319, 320, 932, 322, 323, 324, 325, 326, 327, + 328, 329, 330, 331, 0, 332, 333, 933, 335, 336, + 337, 338, 339, 340, 0, 341, 342, 343, 344, 345, + 346, 0, 347, 348, 349, 934, 351, 352, 353, 354, + 0, 355, 356, 357, 358, 359, 360, 361, 362, 363, + 364, 365, 366, 367, 0, 368, 369, 370, 371, 372, + 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, + 383, 384, 385, 0, 386, 387, 388, 389, 390, 936, + 392, 393, 394, 395, 396, 397, 398, 399, 937, 401, + 0, 402, 403, 404, 405, 406, 407, 408, 409, 410, + 411, 412, 413, 414, 415, 938, 417, 0, 418, 419, + 0, 420, 421, 422, 423, 424, 425, 426, 0, 939, + 940, 0, 0, 429, 430, 941, 432, 942, 943, 434, + 435, 944, 437, 438, 439, 440, 441, 0, 0, 442, + 443, 444, 445, 446, 945, 0, 448, 449, 450, 451, + 452, 453, 946, 0, 455, 456, 457, 458, 459, 460, + 461, 0, 0, 462, 0, 0, 463, 464, 465, 466, + 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, + 477, 478, 479, 480, 481, 482, 483, 0, 0, 0, + 0, 0, 0, 0, 1712, 1713, 0, 0, 0, 0, + 0, 0, 0, 1714, 0, 0, 0, 0, 0, 0, + 954, 955, 93, 888, 583, 889, 890, 891, 892, 893, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1420, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 539, 0, 0, 0, 0, 0, - 0, 0, 1420, 0, 0, 0, 0, 0, 0, 1917, - 0, 0, 0, 1053, 0, 1070, 0, 0, 0, 0, - 0, 1420, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1071, 0, 0, - 0, 0, 0, 1918, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1073, 0, 0, - 0, 0, 0, 0, 0, 1420, 0, 0, 0, 1408, - 0, 0, 1409, 1410, 1411, 0, 1412, 1413, 1414, 1415, - 1416, 1417, 0, 0, 0, 0, 2321, 0, 0, 0, - 0, 0, 0, 0, 1420, 0, 0, 0, 0, 0, - 0, 0, 0, 1085, 888, 583, 889, 890, 891, 892, - 893, 1055, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 94, 95, 96, 97, 98, 99, 100, 101, 1086, - 102, 103, 104, 0, 0, 0, 0, 894, 0, 0, - 105, 106, 1420, 107, 108, 109, 1087, 111, 112, 113, - 114, 895, 1088, 896, 897, 0, 119, 120, 121, 122, - 123, 124, 898, 899, 125, 126, 900, 901, 129, 0, - 130, 131, 132, 133, 902, 0, 1089, 0, 136, 137, - 138, 139, 140, 141, 1090, 143, 144, 145, 0, 146, - 147, 148, 149, 150, 151, 0, 1091, 153, 154, 155, - 1092, 1093, 1094, 1095, 908, 909, 1096, 161, 162, 163, - 164, 165, 166, 167, 911, 912, 170, 913, 171, 0, - 172, 173, 174, 175, 176, 177, 0, 178, 179, 180, - 181, 182, 1097, 0, 183, 184, 717, 186, 187, 0, - 188, 189, 190, 0, 191, 192, 193, 0, 194, 195, - 196, 197, 914, 199, 200, 201, 202, 203, 915, 916, - 205, 0, 206, 207, 917, 209, 0, 210, 0, 211, - 1098, 0, 1099, 214, 215, 1100, 1101, 218, 0, 219, - 0, 918, 919, 222, 0, 223, 224, 225, 226, 227, - 228, 229, 1102, 231, 232, 233, 234, 0, 235, 236, - 237, 238, 239, 240, 0, 241, 1103, 243, 244, 245, - 246, 247, 248, 920, 921, 0, 922, 0, 252, 1104, - 1105, 255, 1106, 257, 258, 259, 260, 261, 262, 0, - 0, 263, 1107, 265, 1108, 0, 267, 268, 269, 923, - 924, 270, 271, 272, 273, 274, 1109, 276, 277, 278, - 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, - 289, 290, 291, 292, 293, 925, 1110, 926, 297, 298, - 299, 300, 927, 301, 302, 1111, 304, 928, 929, 306, - 930, 308, 309, 310, 0, 311, 312, 0, 0, 931, - 314, 315, 0, 0, 316, 317, 1112, 319, 1113, 932, - 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, - 0, 332, 333, 933, 335, 336, 337, 338, 339, 340, - 0, 341, 342, 343, 344, 345, 346, 0, 347, 348, - 349, 934, 351, 352, 353, 354, 0, 355, 356, 357, - 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, - 0, 368, 369, 1114, 371, 372, 373, 935, 375, 376, - 377, 378, 379, 380, 381, 382, 383, 384, 385, 0, - 386, 387, 388, 389, 390, 1115, 392, 393, 394, 395, - 396, 1116, 398, 399, 937, 401, 0, 402, 403, 404, - 405, 406, 407, 408, 409, 410, 411, 412, 413, 1117, - 415, 938, 417, 0, 418, 419, 0, 420, 1118, 422, - 423, 424, 425, 426, 0, 939, 940, 0, 0, 429, - 430, 941, 432, 942, 943, 434, 435, 1119, 437, 438, - 439, 440, 441, 0, 0, 442, 443, 444, 445, 446, - 1120, 0, 448, 449, 450, 451, 452, 453, 946, 1121, - 455, 1122, 457, 458, 459, 460, 461, 0, 0, 462, - 0, 0, 463, 464, 465, 466, 467, 468, 469, 470, - 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, - 481, 482, 483, 947, 0, 0, 0, 0, 0, 0, - 948, 949, 1123, 0, 0, 0, 0, 951, 0, 952, - 1124, 0, 0, 0, 953, 0, 954, 955, 93, 888, - 583, 889, 890, 891, 892, 893, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 94, 95, 96, 97, - 98, 99, 100, 101, 0, 102, 103, 104, 0, 0, - 0, 0, 894, 0, 0, 105, 106, 0, 107, 108, - 109, 110, 111, 112, 113, 114, 895, 116, 896, 897, - 0, 119, 120, 121, 122, 123, 124, 898, 899, 125, - 126, 900, 901, 129, 0, 130, 131, 132, 133, 902, - 0, 903, 0, 136, 137, 138, 139, 140, 141, 142, - 143, 144, 145, 0, 146, 147, 148, 149, 150, 151, - 0, 152, 153, 154, 155, 904, 905, 906, 907, 908, - 909, 910, 161, 162, 163, 164, 165, 166, 167, 911, - 912, 170, 913, 171, 0, 172, 173, 174, 175, 176, - 177, 0, 178, 179, 180, 181, 182, 0, 0, 183, - 184, 717, 186, 187, 0, 188, 189, 190, 0, 191, - 192, 193, 0, 194, 195, 196, 197, 914, 199, 200, - 201, 202, 203, 915, 916, 205, 0, 206, 207, 917, - 209, 0, 210, 0, 211, 212, 0, 213, 214, 215, - 216, 217, 218, 0, 219, 0, 918, 919, 222, 0, - 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, - 233, 234, 0, 235, 236, 237, 238, 239, 240, 0, - 241, 242, 243, 244, 245, 246, 247, 248, 920, 921, - 0, 922, 0, 252, 253, 254, 255, 256, 257, 258, - 259, 260, 261, 262, 0, 0, 263, 264, 265, 266, - 0, 267, 268, 269, 923, 924, 270, 271, 272, 273, - 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, - 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, - 925, 295, 926, 297, 298, 299, 300, 927, 301, 302, - 303, 304, 928, 929, 306, 930, 308, 309, 310, 0, - 311, 312, 0, 0, 931, 314, 315, 0, 0, 316, - 317, 318, 319, 320, 932, 322, 323, 324, 325, 326, - 327, 328, 329, 330, 331, 0, 332, 333, 933, 335, - 336, 337, 338, 339, 340, 0, 341, 342, 343, 344, - 345, 346, 0, 347, 348, 349, 934, 351, 352, 353, - 354, 0, 355, 356, 357, 358, 359, 360, 361, 362, - 363, 364, 365, 366, 367, 0, 368, 369, 370, 371, - 372, 373, 935, 375, 376, 377, 378, 379, 380, 381, - 382, 383, 384, 385, 26, 386, 387, 388, 389, 390, - 936, 392, 393, 394, 395, 396, 397, 398, 399, 937, - 401, 0, 402, 403, 404, 405, 406, 407, 408, 409, - 410, 411, 412, 413, 414, 415, 938, 417, 0, 418, - 419, 31, 420, 421, 422, 423, 424, 425, 426, 0, - 939, 940, 0, 0, 429, 430, 941, 432, 942, 943, - 434, 435, 944, 437, 438, 439, 440, 441, 0, 0, - 442, 443, 444, 445, 446, 945, 0, 448, 449, 450, - 451, 452, 611, 946, 0, 455, 456, 457, 458, 459, - 460, 461, 0, 0, 462, 0, 34, 463, 464, 465, - 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, - 476, 477, 478, 479, 480, 481, 482, 483, 947, 0, - 35, 0, 0, 0, 0, 948, 949, 0, 0, 0, - 0, 0, 951, 0, 952, 2908, 0, 0, 0, 953, - 0, 954, 955, 93, 888, 583, 889, 890, 891, 892, - 893, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 94, 95, 96, 97, 98, 99, 100, 101, 0, - 102, 103, 104, 0, 0, 0, 0, 894, 0, 0, - 105, 106, 0, 107, 108, 109, 110, 111, 112, 113, - 114, 895, 116, 896, 897, 0, 119, 120, 121, 122, - 123, 124, 898, 899, 125, 126, 900, 901, 129, 0, - 130, 131, 132, 133, 902, 0, 903, 0, 136, 137, - 138, 139, 140, 141, 142, 143, 144, 145, 0, 146, - 147, 148, 149, 150, 151, 0, 152, 153, 154, 155, - 904, 905, 906, 907, 908, 909, 910, 161, 162, 163, - 164, 165, 166, 167, 911, 912, 170, 913, 171, 0, - 172, 173, 174, 175, 176, 177, 0, 178, 179, 180, - 181, 182, 0, 0, 183, 184, 717, 186, 187, 0, - 188, 189, 190, 0, 191, 192, 193, 0, 194, 195, - 196, 197, 914, 199, 200, 201, 202, 203, 915, 916, - 205, 0, 206, 207, 917, 209, 0, 210, 0, 211, - 212, 0, 213, 214, 215, 216, 217, 218, 0, 219, - 0, 918, 919, 222, 0, 223, 224, 225, 226, 227, - 228, 229, 230, 231, 232, 233, 234, 0, 235, 236, - 237, 238, 239, 240, 0, 241, 242, 243, 244, 245, - 246, 247, 248, 920, 921, 0, 922, 0, 252, 253, - 254, 255, 256, 257, 258, 259, 260, 261, 262, 0, - 0, 263, 264, 265, 266, 0, 267, 268, 269, 923, - 924, 270, 271, 272, 273, 274, 275, 276, 277, 278, - 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, - 289, 290, 291, 292, 293, 925, 295, 926, 297, 298, - 299, 300, 927, 301, 302, 303, 304, 928, 929, 306, - 930, 308, 309, 310, 0, 311, 312, 0, 0, 931, - 314, 315, 0, 0, 316, 317, 318, 319, 320, 932, - 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, - 0, 332, 333, 933, 335, 336, 337, 338, 339, 340, - 0, 341, 342, 343, 344, 345, 346, 0, 347, 348, - 349, 934, 351, 352, 353, 354, 0, 355, 356, 357, - 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, - 0, 368, 369, 370, 371, 372, 373, 935, 375, 376, - 377, 378, 379, 380, 381, 382, 383, 384, 385, 26, - 386, 387, 388, 389, 390, 936, 392, 393, 394, 395, - 396, 397, 398, 399, 937, 401, 0, 402, 403, 404, - 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, - 415, 938, 417, 0, 418, 419, 31, 420, 421, 422, - 423, 424, 425, 426, 0, 939, 940, 0, 0, 429, - 430, 941, 432, 942, 943, 434, 435, 944, 437, 438, - 439, 440, 441, 0, 0, 442, 443, 444, 445, 446, - 945, 0, 448, 449, 450, 451, 452, 611, 946, 0, - 455, 456, 457, 458, 459, 460, 461, 0, 0, 462, - 0, 34, 463, 464, 465, 466, 467, 468, 469, 470, - 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, - 481, 482, 483, 947, 0, 35, 0, 0, 0, 0, - 948, 949, 0, 0, 0, 0, 0, 951, 0, 952, - 0, 0, 0, 0, 953, 0, 954, 955, 93, 888, - 583, 889, 890, 891, 892, 893, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 94, 95, 96, 97, - 98, 99, 100, 101, 0, 102, 103, 104, 0, 0, - 0, 0, 894, 0, 0, 105, 106, 0, 107, 108, - 109, 110, 111, 112, 113, 114, 895, 116, 896, 897, - 1725, 119, 120, 121, 122, 123, 124, 898, 899, 125, - 126, 900, 901, 129, 0, 130, 131, 132, 133, 902, - 0, 903, 0, 136, 137, 138, 139, 140, 141, 142, - 143, 144, 145, 0, 146, 147, 148, 149, 150, 151, - 0, 152, 153, 154, 155, 904, 905, 906, 907, 908, - 909, 910, 161, 162, 163, 164, 165, 166, 167, 911, - 912, 170, 913, 171, 0, 172, 173, 174, 175, 176, - 177, 0, 178, 179, 180, 181, 182, 0, 0, 183, - 184, 717, 186, 187, 0, 188, 189, 190, 0, 191, - 192, 193, 0, 194, 195, 196, 197, 914, 199, 200, - 201, 202, 203, 915, 916, 205, 0, 206, 207, 917, - 209, 0, 210, 0, 211, 212, 1726, 213, 214, 215, - 216, 217, 218, 0, 219, 0, 918, 919, 222, 0, - 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, - 233, 234, 0, 235, 236, 237, 238, 239, 240, 0, - 241, 242, 243, 244, 245, 246, 247, 248, 920, 921, - 0, 922, 0, 252, 253, 254, 255, 256, 257, 258, - 259, 260, 261, 262, 0, 1727, 263, 264, 265, 266, - 0, 267, 268, 269, 923, 924, 270, 271, 272, 273, - 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, - 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, - 925, 295, 926, 297, 298, 299, 300, 927, 301, 302, - 303, 304, 928, 929, 306, 930, 308, 309, 310, 0, - 311, 312, 0, 0, 931, 314, 315, 0, 0, 316, - 317, 318, 319, 320, 932, 322, 323, 324, 325, 326, - 327, 328, 329, 330, 331, 0, 332, 333, 933, 335, - 336, 337, 338, 339, 340, 0, 341, 342, 343, 344, - 345, 346, 0, 347, 348, 349, 934, 351, 352, 353, - 354, 0, 355, 356, 357, 358, 359, 360, 361, 362, - 363, 364, 365, 366, 367, 0, 368, 369, 370, 371, - 372, 373, 935, 375, 376, 377, 378, 379, 380, 381, - 382, 383, 384, 385, 0, 386, 387, 388, 389, 390, - 936, 392, 393, 394, 395, 396, 397, 398, 399, 937, - 401, 0, 402, 403, 404, 405, 406, 407, 408, 409, - 410, 411, 412, 413, 414, 415, 938, 417, 0, 418, - 419, 0, 420, 421, 422, 423, 424, 425, 426, 0, - 939, 940, 0, 1728, 429, 430, 941, 432, 942, 943, - 434, 435, 944, 437, 438, 439, 440, 441, 0, 0, - 442, 443, 444, 445, 446, 945, 0, 448, 449, 450, - 451, 452, 453, 946, 0, 455, 456, 457, 458, 459, - 460, 461, 0, 0, 462, 0, 0, 463, 464, 465, - 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, - 476, 477, 478, 479, 480, 481, 482, 483, 947, 0, - 0, 0, 0, 0, 0, 948, 949, 0, 0, 0, - 0, 0, 951, 0, 952, 0, 0, 0, 0, 953, - 0, 954, 955, 93, 888, 583, 889, 890, 891, 892, - 893, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 94, 95, 96, 97, 98, 99, 100, 101, -608, - 102, 103, 104, 0, 0, 0, -608, 894, 0, 0, - 105, 106, 0, 107, 108, 109, 110, 111, 112, 113, - 114, 895, 116, 896, 897, 0, 119, 120, 121, 122, - 123, 124, 898, 899, 125, 126, 900, 901, 129, 0, - 130, 131, 132, 133, 902, 0, 903, 0, 136, 137, - 138, 139, 140, 141, 142, 143, 144, 145, 0, 146, - 147, 148, 149, 150, 151, 0, 152, 153, 154, 155, - 904, 905, 906, 907, 908, 909, 910, 161, 162, 163, - 164, 165, 166, 167, 911, 912, 170, 913, 171, 0, - 172, 173, 174, 175, 176, 177, 0, 178, 179, 180, - 181, 182, 0, 0, 183, 184, 717, 186, 187, 0, - 188, 189, 190, 0, 191, 192, 193, 0, 194, 195, - 196, 197, 914, 199, 200, 201, 202, 203, 915, 916, - 205, 0, 206, 207, 917, 209, 0, 210, 0, 211, - 212, 0, 213, 214, 215, 216, 217, 218, 0, 219, - 0, 918, 919, 222, 0, 223, 224, 225, 226, 227, - 228, 229, 230, 231, 232, 233, 234, 0, 235, 236, - 237, 238, 239, 240, 0, 241, 242, 243, 244, 245, - 246, 247, 248, 920, 921, 0, 922, 0, 252, 253, - 254, 255, 256, 257, 258, 259, 260, 261, 262, 0, - 0, 263, 264, 265, 266, 0, 267, 268, 269, 923, - 924, 270, 271, 272, 273, 274, 275, 276, 277, 278, - 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, - 289, 290, 291, 292, 293, 925, 295, 926, 297, 298, - 299, 300, 927, 301, 302, 303, 304, 928, 929, 306, - 930, 308, 309, 310, 0, 311, 312, 0, 0, 931, - 314, 315, 0, 0, 316, 317, 318, 319, 320, 932, - 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, - 0, 332, 333, 933, 335, 336, 337, 338, 339, 340, - 0, 341, 342, 343, 344, 345, 346, 0, 347, 348, - 349, 934, 351, 352, 353, 354, 0, 355, 356, 357, - 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, - 0, 368, 369, 370, 371, 372, 373, 935, 375, 376, - 377, 378, 379, 380, 381, 382, 383, 384, 385, 0, - 386, 387, 388, 389, 390, 936, 392, 393, 394, 395, - 396, 397, 398, 399, 937, 401, -608, 402, 403, 404, - 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, - 415, 938, 417, 0, 418, 419, 0, 420, 421, 422, - 423, 424, 425, 426, 0, 939, 940, 0, 0, 429, - 430, 941, 432, 942, 943, 434, 435, 944, 437, 438, - 439, 440, 441, 0, 0, 442, 443, 444, 445, 446, - 945, 0, 448, 449, 450, 451, 452, 453, 946, 0, - 455, 456, 457, 458, 459, 460, 461, 0, 0, 462, - 0, 0, 463, 464, 465, 466, 467, 468, 469, 470, - 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, - 481, 482, 483, 947, 0, 0, 0, 0, 0, 0, - 948, 949, 0, 0, 0, 0, 0, 951, 0, 952, - 0, 0, 0, 0, 953, 0, 954, 955, 93, 888, - 583, 889, 890, 891, 892, 893, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 94, 95, 96, 97, - 98, 99, 100, 101, 1460, 102, 103, 104, 0, 0, - 0, 0, 894, 0, 0, 105, 106, 0, 107, 108, - 109, 110, 111, 112, 113, 114, 895, 116, 896, 897, - 0, 119, 120, 121, 122, 123, 124, 898, 899, 125, - 126, 900, 901, 129, 0, 130, 131, 132, 133, 902, - 0, 903, 0, 136, 137, 138, 139, 140, 141, 142, - 143, 144, 145, 0, 146, 147, 148, 149, 150, 151, - 0, 152, 153, 154, 155, 904, 905, 906, 907, 908, - 909, 910, 161, 162, 163, 164, 165, 166, 167, 911, - 912, 170, 913, 171, 0, 172, 173, 174, 175, 176, - 177, 0, 178, 179, 180, 181, 182, 0, 0, 183, - 184, 717, 186, 187, 0, 188, 189, 190, 0, 191, - 192, 193, 0, 194, 195, 196, 197, 914, 199, 200, - 201, 202, 203, 915, 916, 205, 0, 206, 207, 917, - 209, 0, 210, 0, 211, 212, 0, 213, 214, 215, - 216, 217, 218, 0, 219, 0, 918, 919, 222, 0, - 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, - 233, 234, 0, 235, 236, 237, 238, 239, 240, 0, - 241, 242, 243, 244, 245, 246, 247, 248, 920, 921, - 0, 922, 0, 252, 253, 254, 255, 256, 257, 258, - 259, 260, 261, 262, 0, 0, 263, 264, 265, 266, - 0, 267, 268, 269, 923, 924, 270, 271, 272, 273, - 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, - 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, - 925, 295, 926, 297, 298, 299, 300, 927, 301, 302, - 303, 304, 928, 929, 306, 930, 308, 309, 310, 0, - 311, 312, 0, 0, 931, 314, 315, 0, 0, 316, - 317, 318, 319, 320, 932, 322, 323, 324, 325, 326, - 327, 328, 329, 330, 331, 0, 332, 333, 933, 335, - 336, 337, 338, 339, 340, 0, 341, 342, 343, 344, - 345, 346, 0, 347, 348, 349, 934, 351, 352, 353, - 354, 0, 355, 356, 357, 358, 359, 360, 361, 362, - 363, 364, 365, 366, 367, 0, 368, 369, 370, 371, - 372, 373, 935, 375, 376, 377, 378, 379, 380, 381, - 382, 383, 384, 385, 0, 386, 387, 388, 389, 390, - 936, 392, 393, 394, 395, 396, 397, 398, 399, 937, - 401, 0, 402, 403, 404, 405, 406, 407, 408, 409, - 410, 411, 412, 413, 414, 415, 938, 417, 0, 418, - 419, 0, 420, 421, 422, 423, 424, 425, 426, 0, - 939, 940, 0, 0, 429, 430, 941, 432, 942, 943, - 434, 435, 944, 437, 438, 439, 440, 441, 0, 0, - 442, 443, 444, 445, 446, 945, 0, 448, 449, 450, - 451, 452, 453, 946, 0, 455, 456, 457, 458, 459, - 460, 461, 0, 0, 462, 0, 0, 463, 464, 465, - 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, - 476, 477, 478, 479, 480, 481, 482, 483, 947, 0, - 0, 0, 0, 0, 0, 948, 949, 1461, 0, 0, - 0, 0, 951, 0, 952, 0, 0, 0, 0, 953, - 0, 954, 955, 93, 888, 583, 889, 890, 891, 892, - 893, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 94, 95, 96, 97, 98, 99, 100, 101, 2796, - 102, 103, 104, 0, 0, 0, 0, 894, 0, 0, - 105, 106, 0, 107, 108, 109, 110, 111, 112, 113, - 114, 895, 116, 896, 897, 0, 119, 120, 121, 122, - 123, 124, 898, 899, 125, 126, 900, 901, 129, 0, - 130, 131, 132, 133, 902, 0, 903, 0, 136, 137, - 138, 139, 140, 141, 142, 143, 144, 145, 0, 146, - 147, 148, 149, 150, 151, 0, 152, 153, 2797, 155, - 904, 905, 906, 907, 908, 909, 910, 161, 162, 163, - 164, 165, 166, 167, 911, 912, 170, 913, 171, 0, - 172, 173, 174, 175, 176, 177, 0, 178, 179, 180, - 181, 182, 0, 0, 183, 184, 717, 186, 187, 0, - 188, 189, 190, 0, 191, 192, 193, 0, 194, 195, - 196, 197, 914, 199, 200, 201, 202, 203, 915, 916, - 205, 0, 206, 207, 917, 209, 0, 210, 0, 211, - 212, 0, 213, 214, 215, 216, 217, 218, 0, 219, - 0, 2798, 919, 222, 0, 223, 224, 225, 226, 227, - 228, 229, 230, 231, 232, 233, 234, 0, 235, 236, - 237, 238, 239, 240, 0, 241, 242, 243, 244, 245, - 246, 247, 248, 920, 921, 0, 922, 0, 252, 253, - 254, 255, 256, 257, 258, 259, 260, 261, 262, 0, - 0, 263, 264, 265, 266, 0, 267, 268, 269, 923, - 924, 270, 271, 272, 273, 274, 275, 276, 277, 278, - 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, - 289, 290, 291, 292, 293, 925, 295, 926, 297, 298, - 299, 300, 927, 301, 302, 303, 304, 928, 929, 306, - 930, 308, 309, 310, 0, 311, 312, 0, 0, 931, - 314, 315, 0, 0, 316, 317, 318, 319, 320, 932, - 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, - 0, 332, 333, 933, 335, 336, 337, 338, 339, 340, - 0, 341, 342, 343, 344, 345, 346, 0, 347, 348, - 349, 934, 351, 352, 353, 354, 0, 355, 356, 357, - 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, - 0, 368, 369, 370, 371, 372, 2799, 935, 375, 376, - 377, 378, 379, 380, 381, 382, 383, 384, 385, 0, - 386, 387, 388, 389, 390, 936, 392, 393, 394, 395, - 396, 397, 398, 399, 937, 401, 0, 402, 403, 404, - 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, - 415, 938, 417, 0, 418, 419, 0, 420, 421, 422, - 423, 424, 425, 426, 0, 939, 940, 0, 0, 429, - 430, 941, 432, 942, 943, 434, 435, 944, 437, 438, - 439, 440, 441, 0, 0, 442, 443, 444, 445, 446, - 945, 0, 448, 449, 450, 451, 452, 453, 946, 0, - 455, 456, 457, 458, 459, 460, 461, 0, 0, 462, - 0, 0, 463, 464, 465, 466, 467, 468, 469, 470, - 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, - 481, 482, 483, 947, 0, 0, 0, 0, 0, 0, - 948, 949, 2800, 0, 0, 0, 0, 951, 0, 2801, - 0, 0, 0, 0, 953, 0, 954, 955, 93, 888, - 583, 889, 890, 891, 892, 893, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 94, 95, 96, 97, - 98, 99, 100, 101, 0, 102, 103, 104, 0, 0, - 0, 0, 894, 0, 0, 105, 106, 0, 107, 108, - 109, 110, 111, 112, 113, 114, 895, 116, 896, 897, - 0, 119, 120, 121, 122, 123, 124, 898, 899, 125, - 126, 900, 901, 129, 0, 130, 131, 132, 133, 902, - 0, 903, 0, 136, 137, 138, 139, 140, 141, 142, - 143, 144, 145, 0, 146, 147, 148, 149, 150, 151, - 0, 152, 153, 154, 155, 904, 905, 906, 907, 908, - 909, 910, 161, 162, 163, 164, 165, 166, 167, 911, - 912, 170, 913, 171, 0, 172, 173, 174, 175, 176, - 177, 0, 178, 179, 180, 181, 182, 0, 0, 183, - 184, 717, 186, 187, 0, 188, 189, 190, 0, 191, - 192, 193, 0, 194, 195, 196, 197, 914, 199, 200, - 201, 202, 203, 915, 916, 205, 0, 206, 207, 917, - 209, 0, 210, 0, 211, 212, 0, 213, 214, 215, - 216, 217, 218, 0, 219, 0, 918, 919, 222, 0, - 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, - 233, 234, 0, 235, 236, 237, 238, 239, 240, 0, - 241, 242, 243, 244, 245, 246, 247, 248, 920, 921, - 0, 922, 0, 252, 253, 254, 255, 256, 257, 258, - 259, 260, 261, 262, 0, 0, 263, 264, 265, 266, - 0, 267, 268, 269, 923, 924, 270, 271, 272, 273, - 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, - 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, - 925, 295, 926, 297, 298, 299, 300, 927, 301, 302, - 303, 304, 928, 929, 306, 930, 308, 309, 310, 0, - 311, 312, 0, 0, 931, 314, 315, 0, 0, 316, - 317, 318, 319, 320, 932, 322, 323, 324, 325, 326, - 327, 328, 329, 330, 331, 0, 332, 333, 933, 335, - 336, 337, 338, 339, 340, 0, 341, 342, 343, 344, - 345, 346, 0, 347, 348, 349, 934, 351, 352, 353, - 354, 0, 355, 356, 357, 358, 359, 360, 361, 362, - 363, 364, 365, 366, 367, 0, 368, 369, 370, 371, - 372, 373, 935, 375, 376, 377, 378, 379, 380, 381, - 382, 383, 384, 385, 0, 386, 387, 388, 389, 390, - 936, 392, 393, 394, 395, 396, 397, 398, 399, 937, - 401, 0, 402, 403, 404, 405, 406, 407, 408, 409, - 410, 411, 412, 413, 414, 415, 938, 417, 0, 418, - 419, 0, 420, 421, 422, 423, 424, 425, 426, 0, - 939, 940, 0, 0, 429, 430, 941, 432, 942, 943, - 434, 435, 944, 437, 438, 439, 440, 441, 0, 0, - 442, 443, 444, 445, 446, 945, 0, 448, 449, 450, - 451, 452, 453, 946, 0, 455, 456, 457, 458, 459, - 460, 461, 0, 0, 462, 0, 0, 463, 464, 465, - 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, - 476, 477, 478, 479, 480, 481, 482, 483, 947, 0, - 0, 0, 0, 0, 0, 948, 949, 950, 0, 0, - 0, 0, 951, 0, 952, 0, 0, 0, 0, 953, - 0, 954, 955, 93, 1474, 583, 889, 890, 891, 1475, - 893, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 94, 95, 96, 97, 98, 99, 100, 101, 1476, - 102, 103, 104, 0, 0, 0, 0, 894, 0, 0, - 105, 106, 0, 107, 108, 109, 110, 111, 112, 113, - 114, 895, 116, 896, 897, 0, 119, 120, 121, 122, - 123, 124, 898, 899, 125, 126, 900, 901, 129, 0, - 130, 131, 132, 133, 902, 0, 903, 0, 136, 137, - 138, 139, 140, 141, 142, 143, 144, 145, 0, 146, - 147, 148, 149, 150, 151, 0, 152, 153, 154, 155, - 904, 905, 906, 907, 908, 909, 910, 161, 162, 163, - 164, 165, 166, 167, 911, 912, 170, 913, 171, 0, - 172, 173, 174, 175, 176, 177, 0, 178, 179, 180, - 181, 182, 0, 0, 183, 184, 717, 186, 187, 0, - 188, 189, 190, 0, 191, 192, 193, 0, 194, 195, - 196, 197, 914, 199, 200, 201, 202, 203, 915, 916, - 205, 0, 206, 207, 917, 209, 0, 210, 0, 211, - 212, 0, 213, 214, 215, 216, 217, 218, 0, 219, - 0, 918, 919, 222, 0, 223, 224, 225, 226, 227, - 228, 229, 230, 231, 232, 233, 234, 0, 235, 236, - 237, 238, 239, 240, 0, 241, 242, 243, 244, 245, - 246, 247, 248, 920, 921, 0, 922, 0, 252, 253, - 254, 255, 256, 257, 258, 259, 260, 261, 262, 0, - 0, 263, 264, 265, 266, 0, 267, 268, 269, 923, - 924, 270, 271, 272, 273, 274, 275, 276, 277, 278, - 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, - 289, 290, 291, 292, 293, 925, 295, 926, 297, 298, - 299, 300, 927, 301, 302, 303, 304, 928, 929, 306, - 930, 308, 309, 310, 0, 311, 312, 0, 0, 931, - 314, 315, 0, 0, 316, 317, 318, 319, 320, 932, - 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, - 0, 332, 333, 933, 335, 336, 337, 338, 339, 340, - 0, 341, 342, 343, 344, 345, 346, 0, 347, 348, - 349, 934, 351, 352, 353, 354, 0, 355, 356, 357, - 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, - 0, 368, 369, 370, 371, 372, 373, 935, 375, 376, - 377, 378, 379, 380, 381, 382, 383, 384, 385, 0, - 386, 387, 388, 389, 390, 936, 392, 393, 394, 395, - 396, 397, 398, 399, 937, 401, 0, 402, 403, 404, - 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, - 415, 938, 417, 0, 418, 419, 0, 420, 421, 422, - 423, 424, 425, 426, 0, 939, 940, 0, 0, 429, - 430, 941, 432, 942, 943, 434, 435, 944, 437, 438, - 439, 440, 441, 0, 0, 442, 443, 444, 445, 446, - 945, 0, 448, 449, 450, 451, 452, 453, 946, 0, - 455, 456, 457, 458, 459, 460, 461, 0, 0, 462, - 0, 0, 463, 464, 465, 466, 467, 468, 469, 470, - 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, - 481, 482, 483, 947, 0, 0, 0, 0, 0, 0, - 948, 949, 0, 0, 0, 0, 0, 951, 0, 952, - 0, 0, 0, 0, 953, 0, 954, 955, 93, 888, - 583, 889, 890, 891, 892, 893, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 94, 95, 96, 97, - 98, 99, 100, 101, 0, 102, 103, 104, 0, 0, - 0, 0, 894, 0, 0, 105, 106, 0, 107, 108, - 109, 110, 111, 112, 113, 114, 895, 116, 896, 897, - 0, 119, 120, 121, 122, 123, 124, 898, 899, 125, - 126, 900, 901, 129, 0, 130, 131, 132, 133, 902, - 0, 903, 0, 136, 137, 138, 139, 140, 141, 142, - 143, 144, 145, 0, 146, 147, 148, 149, 150, 151, - 0, 152, 153, 154, 155, 904, 905, 906, 907, 908, - 909, 910, 161, 162, 163, 164, 165, 166, 167, 911, - 912, 170, 913, 171, 0, 172, 173, 174, 175, 176, - 177, 0, 178, 179, 180, 181, 182, 0, 0, 183, - 184, 717, 186, 187, 0, 188, 189, 190, 0, 191, - 192, 193, 0, 194, 195, 196, 197, 914, 199, 200, - 201, 202, 203, 915, 916, 205, 0, 206, 207, 917, - 209, 0, 210, 0, 211, 212, 0, 213, 214, 215, - 216, 217, 218, 0, 219, 0, 918, 919, 222, 0, - 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, - 233, 234, 0, 235, 236, 237, 238, 239, 240, 0, - 241, 242, 243, 244, 245, 246, 247, 248, 920, 921, - 0, 922, 0, 252, 253, 254, 255, 256, 257, 258, - 259, 260, 261, 262, 0, 0, 263, 264, 265, 266, - 0, 267, 268, 269, 923, 924, 270, 271, 272, 273, - 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, - 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, - 925, 295, 926, 297, 298, 299, 300, 927, 301, 302, - 303, 304, 928, 929, 306, 930, 308, 309, 310, 0, - 311, 312, 0, 0, 931, 314, 315, 0, 0, 316, - 317, 318, 319, 320, 932, 322, 323, 324, 325, 326, - 327, 328, 329, 330, 331, 0, 332, 333, 933, 335, - 336, 337, 338, 339, 340, 0, 341, 342, 343, 344, - 345, 346, 0, 347, 348, 349, 934, 351, 352, 353, - 354, 0, 355, 356, 357, 358, 359, 360, 361, 362, - 363, 364, 365, 366, 367, 0, 368, 369, 370, 371, - 372, 373, 935, 375, 376, 377, 378, 379, 380, 381, - 382, 383, 384, 385, 0, 386, 387, 388, 389, 390, - 936, 392, 393, 394, 395, 396, 397, 398, 399, 937, - 401, 0, 402, 403, 404, 405, 406, 407, 408, 409, - 410, 411, 412, 413, 414, 415, 938, 417, 0, 418, - 419, 0, 420, 421, 422, 423, 424, 425, 426, 0, - 939, 940, 0, 0, 429, 430, 941, 432, 942, 943, - 434, 435, 944, 437, 438, 439, 440, 441, 0, 0, - 442, 443, 444, 445, 446, 945, 0, 448, 449, 450, - 451, 452, 453, 946, 0, 455, 456, 457, 458, 459, - 460, 461, 0, 0, 462, 0, 0, 463, 464, 465, - 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, - 476, 477, 478, 479, 480, 481, 482, 483, 947, 0, - 0, 0, 0, 0, 0, 948, 949, 0, 0, 0, - 0, 0, 951, 0, 952, 1719, 0, 0, 0, 953, - 0, 954, 955, 1085, 888, 583, 889, 890, 891, 892, - 893, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 94, 95, 96, 97, 98, 99, 100, 101, 0, - 102, 103, 104, 0, 0, 0, 0, 894, 0, 0, - 105, 106, 0, 107, 108, 109, 1087, 111, 112, 113, - 114, 895, 1088, 896, 897, 0, 119, 120, 121, 122, - 123, 124, 898, 899, 125, 126, 900, 901, 129, 0, - 130, 131, 132, 133, 902, 0, 1089, 0, 136, 137, - 138, 139, 140, 141, 1090, 143, 144, 145, 0, 146, - 147, 148, 149, 150, 151, 0, 1091, 153, 154, 155, - 1092, 1093, 1094, 1095, 908, 909, 1096, 161, 162, 163, - 164, 165, 166, 167, 911, 912, 170, 913, 171, 0, - 172, 173, 174, 175, 176, 177, 0, 178, 179, 180, - 181, 182, 0, 0, 183, 184, 717, 186, 187, 0, - 188, 189, 190, 0, 191, 192, 193, 0, 194, 195, - 196, 197, 914, 199, 200, 201, 202, 203, 915, 916, - 205, 0, 206, 207, 917, 209, 0, 210, 0, 211, - 1098, 0, 1099, 214, 215, 1100, 1101, 218, 0, 219, - 0, 918, 919, 222, 0, 223, 224, 225, 226, 227, - 228, 229, 1102, 231, 232, 233, 234, 0, 235, 236, - 237, 238, 239, 240, 0, 241, 1103, 243, 244, 245, - 246, 247, 248, 920, 921, 0, 922, 0, 252, 1104, - 1105, 255, 1106, 257, 258, 259, 260, 261, 262, 0, - 0, 263, 1107, 265, 1108, 0, 267, 268, 269, 923, - 924, 270, 271, 272, 273, 274, 1109, 276, 277, 278, - 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, - 289, 290, 291, 292, 293, 925, 1110, 926, 297, 298, - 299, 300, 927, 301, 302, 1111, 304, 928, 929, 306, - 930, 308, 309, 310, 0, 311, 312, 0, 0, 931, - 314, 315, 0, 0, 316, 317, 1112, 319, 1113, 932, - 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, - 0, 332, 333, 933, 335, 336, 337, 338, 339, 340, - 0, 341, 342, 343, 344, 345, 346, 0, 347, 348, - 349, 934, 351, 352, 353, 354, 0, 355, 356, 357, - 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, - 0, 368, 369, 1114, 371, 372, 373, 935, 375, 376, - 377, 378, 379, 380, 381, 382, 383, 384, 385, 0, - 386, 387, 388, 389, 390, 1115, 392, 393, 394, 395, - 396, 1116, 398, 399, 937, 401, 0, 402, 403, 404, - 405, 406, 407, 408, 409, 410, 411, 412, 413, 1117, - 415, 938, 417, 0, 418, 419, 0, 420, 1118, 422, - 423, 424, 425, 426, 0, 939, 940, 0, 0, 429, - 430, 941, 432, 942, 943, 434, 435, 1119, 437, 438, - 439, 440, 441, 0, 0, 442, 443, 444, 445, 446, - 1120, 0, 448, 449, 450, 451, 452, 453, 946, 1943, - 455, 1122, 457, 458, 459, 460, 461, 0, 0, 462, - 0, 0, 463, 464, 465, 466, 467, 468, 469, 470, - 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, - 481, 482, 483, 947, 0, 0, 0, 0, 0, 0, - 948, 949, 0, 0, 0, 0, 0, 951, 0, 952, - 0, 0, 0, 0, 953, 0, 954, 955, 1085, 888, - 583, 889, 890, 891, 892, 893, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 94, 95, 96, 97, - 98, 99, 100, 101, 0, 102, 103, 104, 0, 0, - 0, 0, 894, 0, 0, 105, 106, 0, 107, 108, - 109, 1087, 111, 112, 113, 114, 895, 1088, 896, 897, - 0, 119, 120, 121, 122, 123, 124, 898, 899, 125, - 126, 900, 901, 129, 0, 130, 131, 132, 133, 902, - 0, 1089, 0, 136, 137, 138, 139, 140, 141, 1090, - 143, 144, 145, 0, 146, 147, 148, 149, 150, 151, - 0, 1091, 153, 154, 155, 1092, 1093, 1094, 1095, 908, - 909, 1096, 161, 162, 163, 164, 165, 166, 167, 911, - 912, 170, 913, 171, 0, 172, 173, 174, 175, 176, - 177, 0, 178, 179, 180, 181, 182, 0, 0, 183, - 184, 717, 186, 187, 0, 188, 189, 190, 0, 191, - 192, 193, 0, 194, 195, 196, 197, 914, 199, 200, - 201, 202, 203, 915, 916, 205, 0, 206, 207, 917, - 209, 0, 210, 0, 211, 1098, 0, 1099, 214, 215, - 1100, 1101, 218, 0, 219, 0, 918, 919, 222, 0, - 223, 224, 225, 226, 227, 228, 229, 1102, 231, 232, - 233, 234, 0, 235, 236, 237, 238, 239, 240, 0, - 241, 1103, 243, 244, 245, 246, 247, 248, 920, 921, - 0, 922, 0, 252, 1104, 1105, 255, 1106, 257, 258, - 259, 260, 261, 262, 0, 0, 263, 1107, 265, 1108, - 0, 267, 268, 269, 923, 924, 270, 271, 272, 273, - 274, 1109, 276, 277, 278, 279, 280, 281, 282, 283, - 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, - 925, 1110, 926, 297, 298, 299, 300, 927, 301, 302, - 1111, 304, 928, 929, 306, 930, 308, 309, 310, 0, - 311, 312, 0, 0, 931, 314, 315, 0, 0, 316, - 317, 1112, 319, 1113, 932, 322, 323, 324, 325, 326, - 327, 328, 329, 330, 331, 0, 332, 333, 933, 335, - 336, 337, 338, 339, 340, 0, 341, 342, 343, 344, - 345, 346, 0, 347, 348, 349, 934, 351, 352, 353, - 354, 0, 355, 356, 357, 358, 359, 360, 361, 362, - 363, 364, 365, 366, 367, 0, 368, 369, 1114, 371, - 372, 373, 935, 375, 376, 377, 378, 379, 380, 381, - 382, 383, 384, 385, 0, 386, 387, 388, 389, 390, - 1115, 392, 393, 394, 395, 396, 1116, 398, 399, 937, - 401, 0, 402, 403, 404, 405, 406, 407, 408, 409, - 410, 411, 412, 413, 1117, 415, 938, 417, 0, 418, - 419, 0, 420, 1118, 422, 423, 424, 425, 426, 0, - 939, 940, 0, 0, 429, 430, 941, 432, 942, 943, - 434, 435, 1119, 437, 438, 439, 440, 441, 0, 0, - 442, 443, 444, 445, 446, 1120, 0, 448, 449, 450, - 451, 452, 453, 946, 0, 455, 1122, 457, 458, 459, - 460, 461, 0, 0, 462, 0, 0, 463, 464, 465, - 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, - 476, 477, 478, 479, 480, 481, 482, 483, 947, 0, - 0, 0, 0, 0, 0, 948, 949, 0, 0, 0, - 0, 0, 951, 0, 952, 1986, 0, 0, 0, 953, - 0, 954, 955, 93, 888, 583, 889, 890, 891, 892, - 893, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 94, 95, 96, 97, 98, 99, 100, 101, 0, - 102, 103, 104, 0, 0, 0, 0, 894, 0, 0, - 105, 106, 0, 107, 108, 109, 110, 111, 112, 113, - 114, 895, 116, 896, 897, 0, 119, 120, 121, 122, - 123, 124, 898, 899, 125, 126, 900, 901, 129, 0, - 130, 131, 132, 133, 902, 0, 903, 0, 136, 137, - 138, 139, 140, 141, 142, 143, 144, 145, 0, 146, - 147, 148, 149, 150, 151, 0, 152, 153, 154, 155, - 904, 905, 906, 907, 908, 909, 910, 161, 162, 163, - 164, 165, 166, 167, 911, 912, 170, 913, 171, 0, - 172, 173, 174, 175, 176, 177, 0, 178, 179, 180, - 181, 182, 0, 0, 183, 184, 717, 186, 187, 0, - 188, 189, 190, 0, 191, 192, 193, 0, 194, 195, - 196, 197, 914, 199, 200, 201, 202, 203, 915, 916, - 205, 0, 206, 207, 917, 209, 0, 210, 0, 211, - 212, 1726, 213, 214, 215, 216, 217, 218, 0, 219, - 0, 918, 919, 222, 0, 223, 224, 225, 226, 227, - 228, 229, 230, 231, 232, 233, 234, 0, 235, 236, - 237, 238, 239, 240, 0, 241, 242, 243, 244, 245, - 246, 247, 248, 920, 921, 0, 922, 0, 252, 253, - 254, 255, 256, 257, 258, 259, 260, 261, 262, 0, - 0, 263, 264, 265, 266, 0, 267, 268, 269, 923, - 924, 270, 271, 272, 273, 274, 275, 276, 277, 278, - 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, - 289, 290, 291, 292, 293, 925, 295, 926, 297, 298, - 299, 300, 927, 301, 302, 303, 304, 928, 929, 306, - 930, 308, 309, 310, 0, 311, 312, 0, 0, 931, - 314, 315, 0, 0, 316, 317, 318, 319, 320, 932, - 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, - 0, 332, 333, 933, 335, 336, 337, 338, 339, 340, - 0, 341, 342, 343, 344, 345, 346, 0, 347, 348, - 349, 934, 351, 352, 353, 354, 0, 355, 356, 357, - 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, - 0, 368, 369, 370, 371, 372, 373, 935, 375, 376, - 377, 378, 379, 380, 381, 382, 383, 384, 385, 0, - 386, 387, 388, 389, 390, 936, 392, 393, 394, 395, - 396, 397, 398, 399, 937, 401, 0, 402, 403, 404, - 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, - 415, 938, 417, 0, 418, 419, 0, 420, 421, 422, - 423, 424, 425, 426, 0, 939, 940, 0, 0, 429, - 430, 941, 432, 942, 943, 434, 435, 944, 437, 438, - 439, 440, 441, 0, 0, 442, 443, 444, 445, 446, - 945, 0, 448, 449, 450, 451, 452, 453, 946, 0, - 455, 456, 457, 458, 459, 460, 461, 0, 0, 462, - 0, 0, 463, 464, 465, 466, 467, 468, 469, 470, - 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, - 481, 482, 483, 947, 0, 0, 0, 0, 0, 0, - 948, 949, 0, 0, 0, 0, 0, 951, 0, 952, - 0, 0, 0, 0, 953, 0, 954, 955, 93, 888, - 583, 889, 890, 891, 892, 893, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 94, 95, 96, 97, - 98, 99, 100, 101, 0, 102, 103, 104, 0, 0, - 0, 0, 894, 0, 0, 105, 106, 0, 107, 108, - 109, 110, 111, 112, 113, 114, 895, 116, 896, 897, - 0, 119, 120, 121, 122, 123, 124, 898, 899, 125, - 126, 900, 901, 129, 0, 130, 131, 132, 133, 902, - 0, 903, 0, 136, 137, 138, 139, 140, 141, 142, - 143, 144, 145, 0, 146, 147, 148, 149, 150, 151, - 0, 152, 153, 154, 155, 904, 905, 906, 907, 908, - 909, 910, 161, 162, 163, 164, 165, 166, 167, 911, - 912, 170, 913, 171, 0, 172, 173, 174, 175, 176, - 177, 0, 178, 179, 180, 181, 182, 0, 0, 183, - 184, 717, 186, 187, 0, 188, 189, 190, 0, 191, - 192, 193, 0, 194, 195, 196, 197, 914, 199, 200, - 201, 202, 203, 915, 916, 205, 0, 206, 207, 917, - 209, 0, 210, 0, 211, 212, 0, 213, 214, 215, - 216, 217, 218, 0, 219, 0, 918, 919, 222, 0, - 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, - 233, 234, 0, 235, 236, 237, 238, 239, 240, 0, - 241, 242, 243, 244, 245, 246, 247, 248, 920, 921, - 0, 922, 0, 252, 253, 254, 255, 256, 257, 258, - 259, 260, 261, 262, 0, 0, 263, 264, 265, 266, - 0, 267, 268, 269, 923, 924, 270, 271, 272, 273, - 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, - 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, - 925, 295, 926, 297, 298, 299, 300, 927, 301, 302, - 303, 304, 928, 929, 306, 930, 308, 309, 310, 0, - 311, 312, 0, 0, 931, 314, 315, 0, 0, 316, - 317, 318, 319, 320, 932, 322, 323, 324, 325, 326, - 327, 328, 329, 330, 331, 0, 332, 333, 933, 335, - 336, 337, 338, 339, 340, 0, 341, 342, 343, 344, - 345, 346, 0, 347, 348, 349, 934, 351, 352, 353, - 354, 0, 355, 356, 357, 358, 359, 360, 361, 362, - 363, 364, 365, 366, 367, 0, 368, 369, 370, 371, - 372, 373, 935, 375, 376, 377, 378, 379, 380, 381, - 382, 383, 384, 385, 0, 386, 387, 388, 389, 390, - 936, 392, 393, 394, 395, 396, 397, 398, 399, 937, - 401, 0, 402, 403, 404, 405, 406, 407, 408, 409, - 410, 411, 412, 413, 414, 415, 938, 417, 0, 418, - 419, 2291, 420, 421, 422, 423, 424, 425, 426, 0, - 939, 940, 0, 0, 429, 430, 941, 432, 942, 943, - 434, 435, 944, 437, 438, 439, 440, 441, 0, 0, - 442, 443, 444, 445, 446, 945, 0, 448, 449, 450, - 451, 452, 453, 946, 0, 455, 456, 457, 458, 459, - 460, 461, 0, 0, 462, 0, 0, 463, 464, 465, - 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, - 476, 477, 478, 479, 480, 481, 482, 483, 947, 0, - 0, 0, 0, 0, 0, 948, 949, 0, 0, 0, - 0, 0, 951, 0, 952, 0, 0, 0, 0, 953, - 0, 954, 955, 93, 888, 583, 889, 890, 891, 892, - 893, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 94, 95, 96, 97, 98, 99, 100, 101, 0, - 102, 103, 104, 0, 0, 0, 0, 894, 0, 0, - 105, 106, 0, 107, 108, 109, 110, 111, 112, 113, - 114, 895, 116, 896, 897, 0, 119, 120, 121, 122, - 123, 124, 898, 899, 125, 126, 900, 901, 129, 0, - 130, 131, 132, 133, 902, 0, 903, 0, 136, 137, - 138, 139, 140, 141, 142, 143, 144, 145, 0, 146, - 147, 148, 149, 150, 151, 0, 152, 153, 154, 155, - 904, 905, 906, 907, 908, 909, 910, 161, 162, 163, - 164, 165, 166, 167, 911, 912, 170, 913, 171, 0, - 172, 173, 174, 175, 176, 177, 0, 178, 179, 180, - 181, 182, 0, 0, 183, 184, 717, 186, 187, 0, - 188, 189, 190, 0, 191, 192, 193, 0, 194, 195, - 196, 197, 914, 199, 200, 201, 202, 203, 915, 916, - 205, 0, 206, 207, 917, 209, 0, 210, 0, 211, - 212, 0, 213, 214, 215, 216, 217, 218, 0, 219, - 0, 918, 919, 222, 0, 223, 224, 225, 226, 227, - 228, 229, 230, 231, 232, 233, 234, 0, 235, 236, - 237, 238, 239, 240, 0, 241, 242, 243, 244, 245, - 246, 247, 248, 920, 921, 0, 922, 0, 252, 253, - 254, 255, 256, 257, 258, 259, 260, 261, 262, 0, - 0, 263, 264, 265, 266, 0, 267, 268, 269, 923, - 924, 270, 271, 272, 273, 274, 275, 276, 277, 278, - 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, - 289, 290, 291, 292, 293, 925, 295, 926, 297, 298, - 299, 300, 927, 301, 302, 303, 304, 928, 929, 306, - 930, 308, 309, 310, 0, 311, 312, 0, 0, 931, - 314, 315, 0, 0, 316, 317, 318, 319, 320, 932, - 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, - 0, 332, 333, 933, 335, 336, 337, 338, 339, 340, - 0, 341, 342, 343, 344, 345, 346, 0, 347, 348, - 349, 934, 351, 352, 353, 354, 0, 355, 356, 357, - 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, - 0, 368, 369, 370, 371, 372, 373, 935, 375, 376, - 377, 378, 379, 380, 381, 382, 383, 384, 385, 0, - 386, 387, 388, 389, 390, 936, 392, 393, 394, 395, - 396, 397, 398, 399, 937, 401, 0, 402, 403, 404, - 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, - 415, 938, 417, 0, 418, 419, 0, 420, 421, 422, - 423, 424, 425, 426, 0, 939, 940, 0, 0, 429, - 430, 941, 432, 942, 943, 434, 435, 944, 437, 438, - 439, 440, 441, 0, 0, 442, 443, 444, 445, 446, - 945, 0, 448, 449, 450, 451, 452, 453, 946, 0, - 455, 456, 457, 458, 459, 460, 461, 0, 2383, 462, - 0, 0, 463, 464, 465, 466, 467, 468, 469, 470, - 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, - 481, 482, 483, 947, 0, 0, 0, 0, 0, 0, - 948, 949, 0, 0, 0, 0, 0, 951, 0, 952, - 0, 0, 0, 0, 953, 0, 954, 955, 93, 888, - 583, 889, 890, 891, 892, 893, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 94, 95, 96, 97, - 98, 99, 100, 101, 0, 102, 103, 104, 0, 0, - 0, 0, 894, 0, 0, 105, 106, 0, 107, 108, - 109, 110, 111, 112, 113, 114, 895, 116, 896, 897, - 0, 119, 120, 121, 122, 123, 124, 898, 899, 125, - 126, 900, 901, 129, 0, 130, 131, 132, 133, 902, - 0, 903, 0, 136, 137, 138, 139, 140, 141, 142, - 143, 144, 145, 0, 146, 147, 148, 149, 150, 151, - 0, 152, 153, 154, 155, 904, 905, 906, 907, 908, - 909, 910, 161, 162, 163, 164, 165, 166, 167, 911, - 912, 170, 913, 171, 0, 172, 173, 174, 175, 176, - 177, 0, 178, 179, 180, 181, 182, 0, 0, 183, - 184, 717, 186, 187, 0, 188, 189, 190, 0, 191, - 192, 193, 0, 194, 195, 196, 197, 914, 199, 200, - 201, 202, 203, 915, 916, 205, 0, 206, 207, 917, - 209, 0, 210, 0, 211, 212, 0, 213, 214, 215, - 216, 217, 218, 0, 219, 0, 918, 919, 222, 0, - 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, - 233, 234, 0, 235, 236, 237, 238, 239, 240, 0, - 241, 242, 243, 244, 245, 246, 247, 248, 920, 921, - 0, 922, 0, 252, 253, 254, 255, 256, 257, 258, - 259, 260, 261, 262, 0, 0, 263, 264, 265, 266, - 0, 267, 268, 269, 923, 924, 270, 271, 272, 273, - 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, - 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, - 925, 295, 926, 297, 298, 299, 300, 927, 301, 302, - 303, 304, 928, 929, 306, 930, 308, 309, 310, 0, - 311, 312, 0, 0, 931, 314, 315, 0, 0, 316, - 317, 318, 319, 320, 932, 322, 323, 324, 325, 326, - 327, 328, 329, 330, 331, 0, 332, 333, 933, 335, - 336, 337, 338, 339, 340, 0, 341, 342, 343, 344, - 345, 346, 0, 347, 348, 349, 934, 351, 352, 353, - 354, 0, 355, 356, 357, 358, 359, 360, 361, 362, - 363, 364, 365, 366, 367, 0, 368, 369, 370, 371, - 372, 373, 935, 375, 376, 377, 378, 379, 380, 381, - 382, 383, 384, 385, 0, 386, 387, 388, 389, 390, - 936, 392, 393, 394, 395, 396, 397, 398, 399, 937, - 401, 0, 402, 403, 404, 405, 406, 407, 408, 409, - 410, 411, 412, 413, 414, 415, 938, 417, 0, 418, - 419, 0, 420, 421, 422, 423, 424, 425, 426, 0, - 939, 940, 0, 0, 429, 430, 941, 432, 942, 943, - 434, 435, 944, 437, 438, 439, 440, 441, 0, 0, - 442, 443, 444, 445, 446, 945, 0, 448, 449, 450, - 451, 452, 453, 946, 0, 455, 456, 457, 458, 459, - 460, 461, 0, 0, 462, 0, 0, 463, 464, 465, - 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, - 476, 477, 478, 479, 480, 481, 482, 483, 947, 0, - 0, 0, 0, 0, 0, 948, 949, 0, 0, 0, - 0, 0, 951, 0, 952, 0, 0, 0, 0, 953, - 0, 954, 955, 1085, 888, 583, 889, 890, 891, 892, - 893, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 94, 95, 96, 97, 98, 99, 100, 101, 0, - 102, 103, 104, 0, 0, 0, 0, 894, 0, 0, - 105, 106, 0, 107, 108, 109, 1087, 111, 112, 113, - 114, 895, 1088, 896, 897, 0, 119, 120, 121, 122, - 123, 124, 898, 899, 125, 126, 900, 901, 129, 0, - 130, 131, 132, 133, 902, 0, 1089, 0, 136, 137, - 138, 139, 140, 141, 1090, 143, 144, 145, 0, 146, - 147, 148, 149, 150, 151, 0, 1091, 153, 154, 155, - 1092, 1093, 1094, 1095, 908, 909, 1096, 161, 162, 163, - 164, 165, 166, 167, 911, 912, 170, 913, 171, 0, - 172, 173, 174, 175, 176, 177, 0, 178, 179, 180, - 181, 182, 0, 0, 183, 184, 717, 186, 187, 0, - 188, 189, 190, 0, 191, 192, 193, 0, 194, 195, - 196, 197, 914, 199, 200, 201, 202, 203, 915, 916, - 205, 0, 206, 207, 917, 209, 0, 210, 0, 211, - 1098, 0, 1099, 214, 215, 1100, 1101, 218, 0, 219, - 0, 918, 919, 222, 0, 223, 224, 225, 226, 227, - 228, 229, 1102, 231, 232, 233, 234, 0, 235, 236, - 237, 238, 239, 240, 0, 241, 1103, 243, 244, 245, - 246, 247, 248, 920, 921, 0, 922, 0, 252, 1104, - 1105, 255, 1106, 257, 258, 259, 260, 261, 262, 0, - 0, 263, 1107, 265, 1108, 0, 267, 268, 269, 923, - 924, 270, 271, 272, 273, 274, 1109, 276, 277, 278, - 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, - 289, 290, 291, 292, 293, 925, 1110, 926, 297, 298, - 299, 300, 927, 301, 302, 1111, 304, 928, 929, 306, - 930, 308, 309, 310, 0, 311, 312, 0, 0, 931, - 314, 315, 0, 0, 316, 317, 1112, 319, 1113, 932, - 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, - 0, 332, 333, 933, 335, 336, 337, 338, 339, 340, - 0, 341, 342, 343, 344, 345, 346, 0, 347, 348, - 349, 934, 351, 352, 353, 354, 0, 355, 356, 357, - 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, - 0, 368, 369, 1114, 371, 372, 373, 935, 375, 376, - 377, 378, 379, 380, 381, 382, 383, 384, 385, 0, - 386, 387, 388, 389, 390, 1115, 392, 393, 394, 395, - 396, 1116, 398, 399, 937, 401, 0, 402, 403, 404, - 405, 406, 407, 408, 409, 410, 411, 412, 413, 1117, - 415, 938, 417, 0, 418, 419, 0, 420, 1118, 422, - 423, 424, 425, 426, 0, 939, 940, 0, 0, 429, - 430, 941, 432, 942, 943, 434, 435, 1119, 437, 438, - 439, 440, 441, 0, 0, 442, 443, 444, 445, 446, - 1120, 0, 448, 449, 450, 451, 452, 453, 946, 0, - 455, 1122, 457, 458, 459, 460, 461, 0, 0, 462, - 0, 0, 463, 464, 465, 466, 467, 468, 469, 470, - 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, - 481, 482, 483, 947, 0, 0, 0, 0, 0, 0, - 948, 949, 0, 0, 0, 0, 0, 951, 0, 952, - 0, 0, 0, 0, 953, 0, 954, 955, 93, 888, - 583, 889, 890, 891, 892, 893, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 94, 95, 96, 97, - 98, 99, 100, 101, 0, 102, 103, 104, 0, 0, - 0, 0, 894, 0, 0, 105, 106, 0, 107, 108, - 109, 110, 111, 112, 113, 114, 895, 116, 896, 897, - 0, 119, 120, 121, 122, 123, 124, 898, 899, 125, - 126, 900, 901, 129, 0, 130, 131, 132, 133, 902, - 0, 903, 0, 136, 137, 138, 139, 140, 141, 142, - 143, 144, 145, 0, 146, 147, 148, 149, 150, 151, - 0, 152, 153, 154, 155, 904, 905, 906, 907, 908, - 909, 910, 161, 162, 163, 164, 165, 166, 167, 911, - 912, 170, 913, 171, 0, 172, 173, 174, 175, 176, - 177, 0, 178, 179, 180, 181, 182, 0, 0, 183, - 184, 717, 186, 187, 0, 188, 189, 190, 0, 191, - 192, 193, 0, 194, 195, 196, 197, 914, 199, 200, - 201, 202, 203, 915, 916, 205, 0, 206, 207, 917, - 209, 0, 210, 0, 211, 212, 0, 213, 214, 215, - 216, 217, 218, 0, 219, 0, 918, 919, 222, 0, - 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, - 233, 234, 0, 235, 236, 237, 238, 239, 240, 0, - 241, 242, 243, 244, 245, 246, 247, 248, 920, 921, - 0, 922, 0, 252, 253, 254, 255, 256, 257, 258, - 259, 260, 261, 262, 0, 0, 263, 264, 265, 266, - 0, 267, 268, 269, 923, 924, 270, 271, 272, 273, - 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, - 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, - 925, 295, 926, 297, 298, 299, 300, 927, 301, 302, - 303, 304, 928, 929, 306, 930, 308, 309, 310, 0, - 311, 312, 0, 0, 931, 314, 315, 0, 0, 316, - 317, 318, 319, 320, 932, 322, 323, 324, 325, 326, - 327, 328, 329, 330, 331, 0, 332, 333, 933, 335, - 336, 337, 338, 339, 340, 0, 341, 342, 343, 344, - 345, 346, 0, 347, 348, 349, 934, 351, 352, 353, - 354, 0, 355, 356, 357, 358, 359, 360, 361, 362, - 363, 364, 365, 366, 367, 0, 368, 369, 370, 371, - 372, 373, 935, 375, 376, 377, 378, 379, 380, 381, - 382, 383, 384, 385, 0, 386, 387, 388, 389, 390, - 936, 392, 393, 394, 395, 396, 397, 398, 399, 937, - 401, 0, 402, 403, 404, 405, 406, 407, 408, 409, - 410, 411, 412, 413, 414, 415, 938, 417, 0, 418, - 419, 0, 420, 421, 422, 423, 424, 425, 426, 0, - 939, 940, 0, 0, 429, 430, 941, 432, 942, 943, - 434, 435, 944, 437, 438, 439, 440, 441, 0, 0, - 442, 443, 444, 445, 446, 945, 0, 448, 449, 450, - 451, 452, 453, 946, 0, 455, 456, 457, 458, 459, - 460, 461, 0, 0, 462, 0, 0, 463, 464, 465, - 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, - 476, 477, 478, 479, 480, 481, 482, 483, 947, 0, - 0, 0, 0, 0, 0, 1479, 1480, 0, 0, 0, - 0, 0, 951, 0, 952, 0, 0, 0, 0, 953, - 0, 954, 955, 93, 1852, 583, 889, 890, 891, 892, - 893, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 94, 95, 96, 97, 98, 99, 100, 101, 0, - 102, 103, 104, 0, 0, 0, 0, 894, 0, 0, - 105, 106, 0, 107, 108, 109, 110, 111, 112, 113, - 114, 895, 116, 896, 897, 0, 119, 120, 121, 122, - 123, 124, 898, 899, 125, 126, 900, 901, 129, 0, - 130, 131, 132, 133, 902, 0, 903, 0, 136, 137, - 138, 139, 140, 141, 142, 143, 144, 145, 0, 146, - 147, 148, 149, 150, 151, 0, 152, 153, 154, 155, - 904, 905, 906, 907, 908, 909, 910, 161, 162, 163, - 164, 165, 166, 167, 911, 912, 170, 913, 171, 0, - 172, 173, 174, 175, 176, 177, 0, 178, 179, 180, - 181, 182, 0, 0, 183, 184, 717, 186, 187, 0, - 188, 189, 190, 0, 191, 192, 193, 0, 194, 195, - 196, 197, 914, 199, 200, 201, 202, 203, 915, 916, - 205, 0, 206, 207, 917, 209, 0, 210, 0, 211, - 212, 0, 213, 214, 215, 216, 217, 218, 0, 219, - 0, 918, 919, 222, 0, 223, 224, 225, 226, 227, - 228, 229, 230, 231, 232, 233, 234, 0, 235, 236, - 237, 238, 239, 240, 0, 241, 242, 243, 244, 245, - 246, 247, 248, 920, 921, 0, 922, 0, 252, 253, - 254, 255, 256, 257, 258, 259, 260, 261, 262, 0, - 0, 263, 264, 265, 266, 0, 267, 268, 269, 923, - 924, 270, 271, 272, 273, 274, 275, 276, 277, 278, - 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, - 289, 290, 291, 292, 293, 925, 295, 926, 297, 298, - 299, 300, 927, 301, 302, 303, 304, 928, 929, 306, - 930, 308, 309, 310, 0, 311, 312, 0, 0, 931, - 314, 315, 0, 0, 316, 317, 318, 319, 320, 932, - 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, - 0, 332, 333, 933, 335, 336, 337, 338, 339, 340, - 0, 341, 342, 343, 344, 345, 346, 0, 347, 348, - 349, 934, 351, 352, 353, 354, 0, 355, 356, 357, - 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, - 0, 368, 369, 370, 371, 372, 373, 935, 375, 376, - 377, 378, 379, 380, 381, 382, 383, 384, 385, 0, - 386, 387, 388, 389, 390, 936, 392, 393, 394, 395, - 396, 397, 398, 399, 937, 401, 0, 402, 403, 404, - 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, - 415, 938, 417, 0, 418, 419, 0, 420, 421, 422, - 423, 424, 425, 426, 0, 939, 940, 0, 0, 429, - 430, 941, 432, 942, 943, 434, 435, 944, 437, 438, - 439, 440, 441, 0, 0, 442, 443, 444, 445, 446, - 945, 0, 448, 449, 450, 451, 452, 453, 946, 0, - 455, 456, 457, 458, 459, 460, 461, 0, 0, 462, - 0, 0, 463, 464, 465, 466, 467, 468, 469, 470, - 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, - 481, 482, 483, 947, 0, 0, 0, 0, 0, 0, - 948, 949, 0, 0, 0, 0, 0, 951, 0, 952, - 0, 0, 0, 0, 953, 0, 954, 955, 93, 888, - 583, 889, 890, 891, 892, 893, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 94, 95, 96, 97, - 98, 99, 100, 101, 0, 102, 103, 104, 0, 0, - 0, 0, 894, 0, 0, 105, 106, 0, 107, 108, - 109, 110, 111, 112, 113, 114, 895, 116, 896, 897, - 0, 119, 120, 121, 122, 123, 124, 898, 899, 125, - 126, 900, 901, 129, 0, 130, 131, 132, 133, 902, - 0, 903, 0, 136, 137, 138, 139, 140, 141, 142, - 143, 144, 145, 0, 146, 147, 148, 149, 150, 151, - 0, 152, 153, 154, 155, 904, 905, 906, 907, 908, - 909, 910, 161, 162, 163, 164, 165, 166, 167, 911, - 912, 170, 913, 171, 0, 172, 173, 174, 175, 176, - 177, 0, 178, 179, 180, 181, 182, 0, 0, 183, - 184, 717, 186, 187, 0, 188, 189, 190, 0, 191, - 192, 193, 0, 194, 195, 196, 197, 914, 199, 200, - 201, 202, 203, 915, 916, 205, 0, 206, 207, 917, - 209, 0, 210, 0, 211, 212, 0, 213, 214, 215, - 216, 217, 218, 0, 219, 0, 918, 919, 222, 0, - 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, - 233, 234, 0, 235, 236, 237, 238, 239, 240, 0, - 241, 242, 243, 244, 245, 246, 247, 248, 920, 921, - 0, 922, 0, 252, 253, 254, 255, 256, 257, 258, - 259, 260, 261, 262, 0, 0, 263, 264, 265, 266, - 0, 267, 268, 269, 923, 924, 270, 271, 272, 273, - 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, - 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, - 925, 295, 926, 297, 298, 299, 300, 927, 301, 302, - 303, 304, 928, 929, 306, 930, 308, 309, 310, 0, - 311, 312, 0, 0, 931, 314, 315, 0, 0, 316, - 317, 318, 319, 320, 932, 322, 323, 324, 325, 326, - 327, 328, 329, 330, 331, 0, 332, 333, 933, 335, - 336, 337, 338, 339, 340, 0, 341, 342, 343, 344, - 345, 346, 0, 347, 348, 349, 934, 351, 352, 353, - 354, 0, 355, 356, 357, 358, 359, 360, 361, 362, - 363, 364, 365, 366, 367, 0, 368, 369, 370, 371, - 372, 373, 935, 375, 376, 377, 378, 379, 380, 381, - 382, 383, 384, 385, 0, 386, 387, 388, 389, 390, - 936, 392, 393, 394, 395, 396, 397, 398, 399, 937, - 401, 0, 402, 403, 404, 405, 406, 407, 408, 409, - 410, 411, 412, 413, 414, 415, 938, 417, 0, 418, - 419, 0, 420, 421, 422, 423, 424, 425, 426, 0, - 939, 940, 0, 0, 429, 430, 941, 432, 942, 943, - 434, 435, 944, 437, 438, 439, 440, 441, 0, 0, - 442, 443, 444, 445, 446, 945, 0, 448, 449, 450, - 451, 452, 453, 946, 0, 455, 456, 457, 458, 459, - 460, 461, 0, 0, 462, 0, 0, 463, 464, 465, - 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, - 476, 477, 478, 479, 480, 481, 482, 483, 947, 0, - 0, 0, 0, 0, 0, 948, 949, 0, 0, 0, - 0, 0, 951, 0, 2098, 0, 0, 0, 0, 953, - 0, 954, 955, 93, 888, 583, 889, 890, 891, 892, - 893, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 94, 95, 96, 97, 98, 99, 100, 101, 0, - 102, 103, 104, 0, 0, 0, 0, 894, 0, 0, - 105, 106, 0, 107, 108, 109, 110, 111, 112, 113, - 114, 895, 116, 896, 897, 0, 119, 120, 121, 122, - 123, 124, 898, 899, 125, 126, 900, 901, 129, 0, - 130, 131, 132, 133, 902, 0, 903, 0, 136, 137, - 138, 139, 140, 141, 142, 143, 144, 145, 0, 146, - 147, 148, 149, 150, 151, 0, 152, 153, 2797, 155, - 904, 905, 906, 907, 908, 909, 910, 161, 162, 163, - 164, 165, 166, 167, 911, 912, 170, 913, 171, 0, - 172, 173, 174, 175, 176, 177, 0, 178, 179, 180, - 181, 182, 0, 0, 183, 184, 717, 186, 187, 0, - 188, 189, 190, 0, 191, 192, 193, 0, 194, 195, - 196, 197, 914, 199, 200, 201, 202, 203, 915, 916, - 205, 0, 206, 207, 917, 209, 0, 210, 0, 211, - 212, 0, 213, 214, 215, 216, 217, 218, 0, 219, - 0, 2798, 919, 222, 0, 223, 224, 225, 226, 227, - 228, 229, 230, 231, 232, 233, 234, 0, 235, 236, - 237, 238, 239, 240, 0, 241, 242, 243, 244, 245, - 246, 247, 248, 920, 921, 0, 922, 0, 252, 253, - 254, 255, 256, 257, 258, 259, 260, 261, 262, 0, - 0, 263, 264, 265, 266, 0, 267, 268, 269, 923, - 924, 270, 271, 272, 273, 274, 275, 276, 277, 278, - 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, - 289, 290, 291, 292, 293, 925, 295, 926, 297, 298, - 299, 300, 927, 301, 302, 303, 304, 928, 929, 306, - 930, 308, 309, 310, 0, 311, 312, 0, 0, 931, - 314, 315, 0, 0, 316, 317, 318, 319, 320, 932, - 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, - 0, 332, 333, 933, 335, 336, 337, 338, 339, 340, - 0, 341, 342, 343, 344, 345, 346, 0, 347, 348, - 349, 934, 351, 352, 353, 354, 0, 355, 356, 357, - 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, - 0, 368, 369, 370, 371, 372, 2799, 935, 375, 376, - 377, 378, 379, 380, 381, 382, 383, 384, 385, 0, - 386, 387, 388, 389, 390, 936, 392, 393, 394, 395, - 396, 397, 398, 399, 937, 401, 0, 402, 403, 404, - 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, - 415, 938, 417, 0, 418, 419, 0, 420, 421, 422, - 423, 424, 425, 426, 0, 939, 940, 0, 0, 429, - 430, 941, 432, 942, 943, 434, 435, 944, 437, 438, - 439, 440, 441, 0, 0, 442, 443, 444, 445, 446, - 945, 0, 448, 449, 450, 451, 452, 453, 946, 0, - 455, 456, 457, 458, 459, 460, 461, 0, 0, 462, - 0, 0, 463, 464, 465, 466, 467, 468, 469, 470, - 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, - 481, 482, 483, 947, 0, 0, 0, 0, 0, 0, - 948, 949, 0, 0, 0, 0, 0, 951, 0, 2801, - 0, 0, 0, 0, 953, 0, 954, 955, 93, 888, - 583, 889, 890, 891, 892, 893, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 94, 95, 96, 97, - 98, 99, 100, 101, 0, 102, 103, 104, 0, 0, - 0, 0, 894, 0, 0, 105, 106, 0, 107, 108, - 109, 110, 111, 112, 113, 3055, 895, 116, 896, 897, - 0, 119, 120, 121, 122, 123, 124, 898, 899, 125, - 126, 900, 901, 129, 0, 130, 131, 132, 133, 902, - 0, 903, 0, 136, 137, 138, 139, 140, 141, 142, - 143, 144, 145, 0, 146, 147, 148, 149, 150, 151, - 0, 152, 153, 154, 3056, 904, 905, 906, 907, 908, - 909, 910, 161, 162, 163, 164, 165, 166, 167, 911, - 912, 170, 913, 171, 0, 172, 173, 174, 175, 176, - 177, 0, 178, 179, 180, 181, 182, 0, 0, 183, - 184, 717, 186, 187, 0, 188, 189, 190, 0, 191, - 192, 193, 0, 194, 195, 196, 197, 914, 199, 200, - 201, 202, 203, 915, 916, 205, 0, 206, 207, 917, - 209, 0, 210, 0, 211, 212, 0, 213, 214, 215, - 216, 217, 218, 0, 219, 0, 918, 919, 222, 0, - 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, - 233, 234, 0, 235, 236, 237, 238, 239, 240, 0, - 241, 242, 243, 244, 245, 246, 247, 248, 920, 921, - 0, 922, 0, 252, 253, 254, 255, 256, 257, 258, - 259, 260, 261, 262, 0, 0, 263, 264, 265, 266, - 0, 267, 268, 269, 923, 924, 270, 271, 272, 273, - 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, - 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, - 925, 295, 926, 297, 298, 299, 300, 927, 301, 302, - 303, 304, 928, 929, 306, 930, 308, 309, 310, 0, - 311, 312, 0, 0, 931, 314, 315, 0, 0, 316, - 317, 318, 319, 320, 932, 322, 323, 324, 325, 326, - 327, 328, 329, 330, 331, 0, 332, 333, 933, 335, - 336, 337, 338, 339, 340, 0, 341, 342, 343, 344, - 345, 346, 0, 347, 348, 349, 934, 351, 352, 353, - 354, 0, 355, 356, 357, 358, 359, 360, 361, 362, - 363, 364, 365, 366, 367, 0, 368, 369, 370, 371, - 372, 373, 935, 375, 376, 377, 378, 379, 380, 381, - 382, 383, 384, 385, 0, 386, 387, 388, 389, 390, - 936, 392, 393, 394, 395, 396, 397, 398, 399, 937, - 401, 0, 402, 403, 404, 405, 406, 407, 408, 409, - 410, 411, 412, 413, 414, 415, 938, 417, 0, 418, - 419, 0, 420, 421, 422, 423, 424, 425, 426, 0, - 939, 940, 0, 0, 429, 430, 941, 432, 942, 943, - 434, 435, 944, 437, 438, 3057, 440, 441, 0, 0, - 442, 443, 444, 445, 446, 945, 0, 448, 449, 450, - 451, 452, 453, 946, 0, 455, 456, 457, 458, 459, - 460, 461, 0, 0, 462, 0, 0, 463, 464, 465, - 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, - 476, 477, 478, 479, 480, 481, 482, 483, 947, 0, - 0, 0, 0, 0, 0, 948, 949, 0, 0, 0, - 0, 0, 951, 0, 952, 0, 0, 0, 0, 953, - 0, 954, 955, 93, 888, 583, 889, 890, 891, 892, - 893, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 94, 95, 96, 97, 98, 99, 100, 101, 0, - 102, 103, 104, 0, 0, 0, 0, 894, 0, 0, - 105, 106, 0, 107, 108, 109, 110, 111, 112, 113, - 114, 895, 116, 896, 897, 0, 119, 120, 121, 122, - 123, 124, 898, 899, 125, 126, 900, 901, 129, 0, - 130, 131, 132, 133, 902, 0, 903, 0, 136, 137, - 138, 139, 140, 141, 142, 143, 144, 145, 0, 146, - 147, 148, 149, 150, 151, 0, 152, 153, 154, 3056, - 904, 905, 906, 907, 908, 909, 910, 161, 162, 163, - 164, 165, 166, 167, 911, 912, 170, 913, 171, 0, - 172, 173, 174, 175, 176, 177, 0, 178, 179, 180, - 181, 182, 0, 0, 183, 184, 717, 186, 187, 0, - 188, 189, 190, 0, 191, 192, 193, 0, 194, 195, - 196, 197, 914, 199, 200, 201, 202, 203, 915, 916, - 205, 0, 206, 207, 917, 209, 0, 210, 0, 211, - 212, 0, 213, 214, 215, 216, 217, 218, 0, 219, - 0, 918, 919, 222, 0, 223, 224, 225, 226, 227, - 228, 229, 230, 231, 232, 233, 234, 0, 235, 236, - 237, 238, 239, 240, 0, 241, 242, 243, 244, 245, - 246, 247, 248, 920, 921, 0, 922, 0, 252, 253, - 254, 255, 256, 257, 258, 259, 260, 261, 262, 0, - 0, 263, 264, 265, 266, 0, 267, 268, 269, 923, - 924, 270, 271, 272, 273, 274, 275, 276, 277, 278, - 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, - 289, 290, 291, 292, 293, 925, 295, 926, 297, 298, - 299, 300, 927, 301, 302, 303, 304, 928, 929, 306, - 930, 308, 309, 310, 0, 311, 312, 0, 0, 931, - 314, 315, 0, 0, 316, 317, 318, 319, 320, 932, - 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, - 0, 332, 333, 933, 335, 336, 337, 338, 339, 340, - 0, 341, 342, 343, 344, 345, 346, 0, 347, 348, - 349, 934, 351, 352, 353, 354, 0, 355, 356, 357, - 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, - 0, 368, 369, 370, 371, 372, 373, 935, 375, 376, - 377, 378, 379, 380, 381, 382, 383, 384, 385, 0, - 386, 387, 388, 389, 390, 936, 392, 393, 394, 395, - 396, 397, 398, 399, 937, 401, 0, 402, 403, 404, - 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, - 415, 938, 417, 0, 418, 419, 0, 420, 421, 422, - 423, 424, 425, 426, 0, 939, 940, 0, 0, 429, - 430, 941, 432, 942, 943, 434, 435, 944, 437, 438, - 3057, 440, 441, 0, 0, 442, 443, 444, 445, 446, - 945, 0, 448, 449, 450, 451, 452, 453, 946, 0, - 455, 456, 457, 458, 459, 460, 461, 0, 0, 462, - 0, 0, 463, 464, 465, 466, 467, 468, 469, 470, - 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, - 481, 482, 483, 947, 0, 0, 0, 0, 0, 0, - 948, 949, 0, 0, 0, 0, 0, 951, 0, 952, - 0, 0, 0, 0, 953, 0, 954, 955, 93, 888, - 583, 889, 890, 891, 892, 893, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 94, 95, 96, 97, - 98, 99, 100, 101, 0, 102, 103, 104, 0, 0, - 0, 0, 894, 0, 0, 105, 106, 0, 107, 108, - 109, 110, 111, 112, 113, -1846, 895, 116, 896, 897, - 0, 119, 120, 121, 122, 123, 124, 898, 899, 125, - 126, 900, 901, 129, 0, 130, 131, 132, 133, 902, - 0, 903, 0, 136, 137, 138, 139, 140, 141, 142, - 143, 144, 145, 0, 146, 147, 148, 149, 150, 151, - 0, 152, 153, 154, 3056, 904, 905, 906, 907, 908, - 909, 910, 161, 162, 163, 164, 165, 166, 167, 911, - 912, 170, 913, 171, 0, 172, 173, 174, 175, 176, - 177, 0, 178, 179, 180, 181, 182, 0, 0, 183, - 184, 717, 186, 187, 0, 188, 189, 190, 0, 191, - 192, 193, 0, 194, 195, 196, 197, 914, 199, 200, - 201, 202, 203, 915, 916, 205, 0, 206, 207, 917, - 209, 0, 210, 0, 211, 212, 0, 213, 214, 215, - 216, -1846, 218, 0, 219, 0, 918, 919, 222, 0, - 223, 224, 225, 226, 227, 228, 229, -1846, 231, 232, - 233, 234, 0, 235, 236, 237, 238, 239, 240, 0, - 241, 242, 243, 244, 245, 246, 247, 248, 920, 921, - 0, 922, 0, 252, 0, 0, 255, 256, 257, 258, - 259, 260, 261, 262, 0, 0, 263, 264, 265, -1846, - 0, 267, 268, 269, 923, 924, 270, 271, 272, 273, - 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, - 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, - 925, 295, 926, 297, 298, 299, 300, 0, 301, 302, - 0, 304, 928, 929, 306, 930, 308, 309, 310, 0, - 311, 312, 0, 0, 931, 314, 315, 0, 0, 316, - 317, 318, 319, 320, 932, 322, 323, 324, 325, 326, - 327, 328, 329, 330, 331, 0, 332, 333, 933, 335, - 336, 337, 338, 339, 340, 0, 341, 342, 343, 344, - 345, 346, 0, 347, 348, 349, 934, 351, 352, 353, - 354, 0, 355, 356, 357, 358, 359, 360, 361, 362, - 363, 364, 365, 366, 367, 0, 368, 369, 370, 371, - 372, 373, 935, 375, 376, 377, 378, 379, 380, 381, - 382, 383, 384, 385, 0, 386, 387, 388, 389, 390, - 936, 392, 393, 394, 395, 396, -1846, 398, 399, 937, - 401, 0, 402, 403, 404, 405, 406, 407, 408, 409, - 410, 411, 412, 413, 414, 415, 938, 417, 0, 418, - 419, 0, 420, 421, 422, 423, 424, 425, 426, 0, - 939, 940, 0, 0, 429, 430, 941, 432, 942, 943, - 434, 435, 944, 437, 438, 3057, 440, 441, 0, 0, - 442, 443, 444, 445, 446, 945, 0, 448, 449, 450, - 451, 452, 453, 946, 0, 455, 456, 457, 458, 459, - 460, 461, 0, 0, 462, 0, 0, 463, 464, 465, - 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, - 476, 477, 478, 479, 480, 481, 482, 483, -1846, 0, - 0, 0, 0, 0, 0, 948, 949, 0, 0, 0, - 0, 0, 951, 0, 952, 0, 0, 0, 0, 953, - 0, 954, 955, 93, 888, 583, 889, 890, 891, 892, - 893, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 94, 95, 96, 97, 98, 99, 100, 101, 0, - 102, 103, 104, 0, 0, 0, 0, 0, 0, 0, - 105, 106, 0, 107, 108, 109, 110, 111, 112, 113, - 114, 895, 116, 896, 897, 0, 119, 120, 121, 122, - 123, 124, 898, 899, 125, 126, 900, 901, 129, 0, - 130, 131, 132, 133, 902, 0, 903, 0, 136, 137, - 138, 139, 140, 141, 142, 143, 144, 145, 0, 146, - 147, 148, 149, 150, 151, 0, 152, 153, 154, 155, - 904, 905, 906, 907, 908, 909, 910, 161, 162, 163, - 164, 165, 166, 167, 911, 912, 170, 0, 171, 0, - 172, 173, 174, 175, 176, 177, 0, 178, 179, 180, - 181, 182, 0, 0, 183, 184, 717, 186, 187, 0, - 188, 189, 190, 0, 191, 192, 193, 0, 194, 195, - 196, 197, 914, 199, 200, 201, 202, 203, 915, 916, - 205, 0, 206, 207, 917, 209, 0, 210, 0, 211, - 212, 0, 213, 214, 215, 216, 217, 218, 0, 219, - 0, 918, 919, 222, 0, 223, 224, 225, 226, 227, - 228, 229, 230, 231, 232, 233, 234, 0, 235, 236, - 237, 238, 239, 240, 0, 241, 242, 243, 244, 245, - 246, 247, 248, 920, 921, 0, 922, 0, 252, 253, - 254, 255, 256, 257, 258, 259, 260, 261, 262, 0, - 0, 263, 264, 265, 266, 0, 267, 268, 269, 923, - 924, 270, 271, 272, 273, 274, 275, 276, 277, 278, - 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, - 289, 290, 291, 292, 293, 925, 295, 926, 297, 298, - 299, 300, 0, 301, 302, 303, 304, 928, 929, 306, - 930, 308, 309, 310, 0, 311, 312, 0, 0, 931, - 314, 315, 0, 0, 316, 317, 318, 319, 320, 932, - 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, - 0, 332, 333, 933, 335, 336, 337, 338, 339, 340, - 0, 341, 342, 343, 344, 345, 346, 0, 347, 348, - 349, 934, 351, 352, 353, 354, 0, 355, 356, 357, - 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, - 0, 368, 369, 370, 371, 372, 373, 374, 375, 376, - 377, 378, 379, 380, 381, 382, 383, 384, 385, 0, - 386, 387, 388, 389, 390, 936, 392, 393, 394, 395, - 396, 397, 398, 399, 937, 401, 0, 402, 403, 404, - 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, - 415, 938, 417, 0, 418, 419, 0, 420, 421, 422, - 423, 424, 425, 426, 0, 939, 940, 0, 0, 429, - 430, 941, 432, 942, 943, 434, 435, 944, 437, 438, - 439, 440, 441, 0, 0, 442, 443, 444, 445, 446, - 945, 0, 448, 449, 450, 451, 452, 453, 946, 0, - 455, 456, 457, 458, 459, 460, 461, 0, 0, 462, - 0, 0, 463, 464, 465, 466, 467, 468, 469, 470, - 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, - 481, 482, 483, 0, 0, 0, 0, 0, 0, 0, - 1712, 1713, 0, 0, 93, 888, 583, 889, 890, 1714, - 892, 893, 0, 0, 0, 0, 954, 955, 0, 0, - 0, 0, 94, 95, 96, 97, 98, 99, 100, 101, - 0, 102, 103, 104, 0, 0, 0, 0, 0, 0, - 0, 105, 106, 0, 107, 108, 109, 110, 111, 112, - 113, 114, 895, 116, 896, 897, 0, 119, 120, 121, - 122, 123, 124, 898, 899, 125, 126, 900, 901, 129, - 0, 130, 131, 132, 133, 902, 0, 903, 0, 136, - 137, 138, 139, 140, 141, 142, 143, 144, 145, 0, - 146, 147, 148, 149, 150, 151, 0, 152, 153, 154, - 155, 904, 905, 906, 907, 908, 909, 910, 161, 162, - 163, 164, 165, 166, 167, 911, 912, 170, 0, 171, - 0, 172, 173, 174, 175, 176, 177, 0, 178, 179, - 180, 181, 182, 0, 0, 183, 184, 717, 186, 187, - 0, 188, 189, 190, 0, 191, 192, 193, 0, 194, - 195, 196, 197, 914, 199, 200, 201, 202, 203, 915, - 916, 205, 0, 206, 207, 917, 209, 0, 210, 0, - 211, 212, 0, 213, 214, 215, 216, 217, 218, 0, - 219, 0, 918, 919, 222, 0, 223, 224, 225, 226, - 227, 228, 229, 230, 231, 232, 233, 234, 0, 235, - 236, 237, 238, 239, 240, 0, 241, 242, 243, 244, - 245, 246, 247, 248, 920, 921, 0, 922, 0, 252, - 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, - 0, 0, 263, 264, 265, 266, 0, 267, 268, 269, - 923, 924, 270, 271, 272, 273, 274, 275, 276, 277, - 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, - 288, 289, 290, 291, 292, 293, 925, 295, 926, 297, - 298, 299, 300, 0, 301, 302, 303, 304, 928, 929, - 306, 930, 308, 309, 310, 0, 311, 312, 0, 0, - 313, 314, 315, 0, 0, 316, 317, 318, 319, 320, - 932, 322, 323, 324, 325, 326, 327, 328, 329, 330, - 331, 0, 332, 333, 933, 335, 336, 337, 338, 339, - 340, 0, 341, 342, 343, 344, 345, 346, 0, 347, - 348, 349, 934, 351, 352, 353, 354, 0, 355, 356, - 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, - 367, 0, 368, 369, 370, 371, 372, 373, 1838, 1839, - 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, - 0, 386, 387, 388, 389, 390, 936, 392, 393, 394, - 395, 396, 397, 398, 399, 937, 401, 0, 402, 403, - 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, - 414, 415, 938, 417, 0, 418, 419, 0, 420, 421, - 422, 423, 424, 425, 426, 0, 939, 940, 0, 0, - 429, 430, 941, 432, 942, 943, 434, 435, 944, 437, - 438, 439, 440, 441, 0, 0, 442, 443, 444, 445, - 446, 945, 0, 448, 449, 450, 451, 452, 453, 946, - 0, 455, 456, 457, 458, 459, 460, 461, 0, 0, - 462, 0, 0, 463, 464, 465, 466, 467, 468, 469, - 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, - 480, 481, 482, 483, 0, 0, 0, 0, 0, 0, - 0, 1840, 1841, 0, 0, 0, 0, 0, 0, 0, - 1714, 0, 0, 0, 0, 0, 0, 954, 955, 93, - 888, 583, 889, 890, 891, 892, 893, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 94, 95, 96, - 97, 98, 99, 100, 101, 0, 102, 103, 104, 0, - 0, 0, 0, 0, 0, 0, 105, 106, 0, 107, - 108, 109, 110, 111, 112, 113, 114, 895, 116, 896, - 897, 0, 119, 120, 121, 122, 123, 124, 898, 899, - 125, 126, 900, 901, 129, 0, 130, 131, 132, 133, - 902, 0, 903, 0, 136, 137, 138, 139, 140, 141, - 142, 143, 144, 145, 0, 146, 147, 148, 149, 150, - 151, 0, 152, 153, 154, 155, 904, 905, 906, 907, - 908, 909, 910, 161, 162, 163, 164, 165, 166, 167, - 911, 912, 170, 0, 171, 0, 172, 173, 174, 175, - 176, 177, 0, 178, 179, 180, 181, 182, 0, 0, - 183, 184, 717, 186, 187, 0, 188, 189, 190, 0, - 191, 192, 193, 0, 194, 195, 196, 197, 914, 199, - 200, 201, 202, 203, 915, 916, 205, 0, 206, 207, - 917, 209, 0, 210, 0, 211, 212, 0, 213, 214, - 215, 216, 217, 218, 0, 219, 0, 918, 919, 222, - 0, 223, 224, 225, 226, 227, 228, 229, 230, 231, - 232, 233, 234, 0, 235, 236, 237, 238, 239, 240, - 0, 241, 242, 243, 244, 245, 246, 247, 248, 920, - 921, 0, 922, 0, 252, 0, 254, 255, 256, 257, - 258, 259, 260, 261, 262, 0, 0, 263, 264, 265, - 266, 0, 267, 268, 269, 923, 924, 270, 271, 272, - 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, - 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, - 293, 925, 295, 926, 297, 298, 299, 300, 0, 301, - 302, 303, 304, 928, 929, 306, 930, 308, 309, 310, - 0, 311, 312, 0, 0, 931, 314, 315, 0, 0, - 316, 317, 318, 319, 320, 932, 322, 323, 324, 325, - 326, 327, 328, 329, 330, 331, 0, 332, 333, 933, - 335, 336, 337, 338, 339, 340, 0, 341, 342, 343, - 344, 345, 346, 0, 347, 348, 349, 934, 351, 352, - 353, 354, 0, 355, 356, 357, 358, 359, 360, 361, - 362, 363, 364, 365, 366, 367, 0, 368, 369, 370, - 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, - 381, 382, 383, 384, 385, 0, 386, 387, 388, 389, - 390, 936, 392, 393, 394, 395, 396, 397, 398, 399, - 937, 401, 0, 402, 403, 404, 405, 406, 407, 408, - 409, 410, 411, 412, 413, 414, 415, 938, 417, 0, - 418, 419, 0, 420, 421, 422, 423, 424, 425, 426, - 0, 939, 940, 0, 0, 429, 430, 941, 432, 942, - 943, 434, 435, 944, 437, 438, 439, 440, 441, 0, - 0, 442, 443, 444, 445, 446, 945, 0, 448, 449, - 450, 451, 452, 453, 946, 0, 455, 456, 457, 458, - 459, 460, 461, 0, 0, 462, 0, 0, 463, 464, - 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, - 475, 476, 477, 478, 479, 480, 481, 482, 483, 0, - 0, 0, 0, 0, 0, 0, 1712, 1713, 0, 0, - 0, 0, 0, 0, 0, 1714, 0, 0, 0, 0, - 0, 0, 954, 955, 93, 888, 583, 889, 890, 891, - 892, 893, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 94, 95, 96, 97, 98, 99, 100, 101, - 0, 102, 103, 104, 0, 0, 0, 0, 894, 0, - 0, 105, 106, 0, 107, 108, 109, 110, 111, 112, - 113, 0, 895, 116, 896, 897, 0, 119, 120, 121, - 122, 123, 124, 898, 899, 125, 126, 900, 901, 129, - 0, 130, 131, 132, 133, 902, 0, 903, 0, 136, - 137, 138, 139, 140, 141, 142, 143, 144, 145, 0, - 146, 147, 148, 149, 150, 151, 0, 152, 153, 154, - 155, 904, 905, 906, 907, 908, 909, 910, 161, 162, - 163, 164, 165, 166, 167, 911, 912, 170, 913, 171, - 0, 172, 173, 174, 175, 176, 177, 0, 178, 179, - 180, 181, 182, 0, 0, 183, 184, 717, 186, 187, - 0, 188, 189, 190, 0, 191, 0, 193, 0, 194, - 195, 196, 197, 914, 199, 200, 201, 202, 203, 915, - 916, 205, 0, 206, 207, 917, 209, 0, 210, 0, - 211, 212, 0, 213, 214, 215, 216, 0, 218, 0, - 219, 0, 918, 919, 222, 0, 223, 224, 225, 226, - 227, 228, 229, 0, 231, 232, 233, 234, 0, 235, - 236, 237, 238, 239, 240, 0, 241, 242, 243, 244, - 245, 246, 247, 248, 920, 921, 0, 922, 0, 252, - 0, 0, 255, 256, 257, 258, 259, 260, 261, 262, - 0, 0, 263, 264, 265, 0, 0, 267, 268, 269, - 923, 924, 270, 271, 272, 273, 274, 275, 276, 277, - 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, - 288, 289, 290, 291, 292, 293, 925, 295, 926, 297, - 298, 299, 300, 0, 301, 302, 0, 304, 928, 929, - 306, 930, 308, 309, 310, 0, 311, 312, 0, 0, - 931, 314, 315, 0, 0, 316, 317, 318, 319, 320, - 932, 322, 323, 324, 325, 326, 327, 328, 329, 330, - 331, 0, 332, 333, 933, 335, 336, 337, 338, 339, - 340, 0, 341, 342, 343, 344, 345, 346, 0, 347, - 348, 349, 934, 351, 352, 353, 354, 0, 355, 356, - 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, - 367, 0, 368, 369, 370, 371, 372, 373, 935, 375, - 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, - 0, 386, 387, 388, 389, 390, 936, 392, 393, 394, - 395, 396, 0, 398, 399, 937, 401, 0, 402, 403, - 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, - 414, 415, 938, 417, 0, 418, 419, 0, 420, 421, - 422, 423, 424, 425, 426, 0, 939, 940, 0, 0, - 429, 430, 941, 432, 942, 943, 434, 435, 944, 437, - 438, 439, 440, 441, 0, 0, 442, 443, 444, 445, - 446, 945, 0, 448, 449, 450, 451, 452, 453, 946, - 0, 455, 456, 457, 458, 459, 460, 461, 0, 0, - 462, 0, 0, 463, 464, 465, 466, 467, 468, 469, - 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, - 480, 481, 482, 483, 0, 0, 0, 0, 0, 0, - 0, 948, 949, 699, 0, 0, 0, 0, 951, 0, - 952, 0, 0, 0, 0, 953, 0, 954, 955, 0, - 0, 94, 95, 96, 97, 98, 99, 100, 101, 0, - 102, 103, 104, 0, 0, 0, 0, 0, 0, 0, - 105, 106, 0, 107, 108, 109, 700, 111, 112, 113, - 0, 701, 702, 703, 704, 0, 119, 120, 121, 122, - 123, 124, 0, 0, 125, 126, 705, 706, 129, 0, - 130, 131, 132, 133, 0, 0, 707, 0, 136, 137, - 138, 139, 140, 141, 708, 143, 144, 145, 0, 146, - 147, 148, 149, 150, 151, 0, 709, 153, 154, 155, - 710, 711, 712, 713, 0, 0, 714, 161, 162, 163, - 164, 165, 166, 167, 715, 716, 170, 0, 171, 0, - 172, 173, 174, 175, 176, 177, 0, 178, 179, 180, - 181, 182, 0, 0, 183, 184, 717, 186, 187, 0, - 188, 189, 190, 0, 191, 192, 193, 0, 194, 195, - 196, 197, 0, 199, 200, 201, 202, 203, 0, 0, - 205, 0, 206, 207, 718, 209, 0, 210, 0, 211, - 719, 0, 720, 214, 215, 0, 721, 218, 0, 219, - 0, 0, 0, 222, 0, 223, 224, 225, 226, 227, - 228, 229, 723, 231, 232, 233, 234, 0, 235, 236, - 237, 238, 239, 240, 0, 241, 724, 0, 244, 245, - 246, 247, 248, 725, 726, 0, 727, 0, 252, 728, - 729, 255, 730, 257, 258, 259, 260, 261, 262, 0, - 0, 263, 731, 265, 732, 0, 267, 268, 269, 0, - 0, 270, 271, 272, 273, 274, 733, 276, 277, 278, - 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, - 289, 290, 291, 292, 293, 734, 735, 736, 297, 298, - 299, 0, 0, 301, 302, 737, 304, 0, 0, 306, - 738, 308, 309, 310, 0, 311, 312, 0, 0, 313, - 314, 315, 0, 0, 316, 0, 739, 319, 740, 0, - 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, - 0, 332, 333, 0, 335, 336, 0, 338, 339, 340, - 0, 341, 342, 343, 344, 345, 346, 0, 347, 348, - 349, 741, 351, 352, 353, 354, 0, 355, 356, 357, - 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, - 0, 368, 369, 742, 371, 372, 373, 743, 375, 376, - 377, 378, 379, 380, 381, 382, 383, 384, 385, 0, - 386, 387, 388, 389, 390, 744, 392, 745, 394, 395, - 396, 746, 398, 399, 747, 401, 0, 402, 403, 404, - 405, 406, 407, 408, 409, 410, 411, 412, 413, 748, - 415, 0, 417, 0, 418, 419, 0, 420, 749, 422, - 423, 424, 425, 426, 0, 750, 751, 0, 0, 429, - 430, 0, 432, 0, 0, 434, 435, 752, 437, 438, - 439, 440, 441, 0, 0, 442, 443, 444, 445, 446, - 753, 0, 448, 449, 450, 451, 452, 0, 754, 0, - 455, 755, 457, 458, 459, 460, 461, 0, 0, 462, - 0, 0, 463, 464, 465, 466, 467, 468, 0, 507, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 480, - 481, 482, 483, 0, 0, 0, 0, 94, 95, 96, - 97, 98, 99, 100, 101, 0, 102, 103, 104, 0, - -928, 0, 0, -928, 2401, 0, 105, 106, 0, 107, - 108, 109, 0, 111, 112, 113, 114, 115, 0, 117, - 118, 0, 119, 120, 121, 122, 123, 124, 0, 0, - 125, 126, 127, 128, 129, 0, 130, 131, 132, 133, - 134, 0, 0, 0, 136, 137, 138, 139, 140, 141, - 0, 143, 144, 145, 0, 146, 147, 148, 149, 150, - 151, 0, -275, 153, 154, 155, 0, 0, 0, 0, - 0, 0, 0, 161, 162, 163, 164, 165, 166, 167, - 168, 169, 170, 0, 171, 0, 172, 173, 174, 175, - 176, 177, 0, 178, 179, 180, 181, 182, 0, 0, - 183, 184, 185, 186, 187, 0, 188, 189, 190, 0, - 191, 192, 193, 0, 194, 195, 196, 197, 198, 199, - 200, 201, 202, 203, 204, 0, 205, 0, 206, 207, - 208, 209, 0, 210, 0, 211, 0, 0, -275, 214, - 215, 510, 0, 218, 0, 219, 0, 220, 221, 222, - 0, 223, 224, 225, 226, 227, 228, 229, 0, 231, - 232, 233, 234, 0, 235, 236, 237, 238, 239, 240, - 0, 241, -275, 243, 244, 245, 246, 247, 248, 249, - 250, 0, 251, 0, 252, 0, 0, 255, -275, 257, - 258, 259, 260, 261, 262, 0, 0, 263, -275, 265, - 0, 0, 267, 268, 269, 0, 0, 270, 271, 272, - 273, 274, 511, 276, 277, 278, 279, 280, 281, 282, - 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, - 293, 294, -275, 296, 297, 298, 299, 300, 0, 301, - 302, 0, 304, 0, 305, 306, 307, 308, 309, 310, - 0, 311, 312, 0, 0, 313, 314, 315, 0, 0, - 316, 317, 0, 319, 0, 321, 322, 323, 324, 325, - 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, - 335, 336, 337, 338, 339, 340, 0, 341, 342, 343, - 344, 345, 346, 0, 347, 348, 349, 350, 351, 352, - 353, 354, 0, 355, 356, 357, 358, 359, 360, 361, - 362, 363, 364, 365, 366, 367, 0, 368, 369, -275, - 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, - 381, 382, 383, 384, 385, 0, 386, 387, 388, 389, - 390, 0, 392, 393, 394, 395, 396, 0, 398, 399, - 400, 401, 0, 402, 403, 404, 405, 406, 407, 408, - 409, 410, 411, 412, 413, 513, 415, 416, 417, 0, - 418, 419, 0, 420, -275, 422, 423, 424, 425, 426, - 0, 427, 428, 0, 0, 429, 430, 431, 432, 433, - 0, 434, 435, 436, 437, 438, 439, 440, 441, 0, - 0, 442, 443, 444, 445, 446, 0, 0, 448, 449, - 450, 451, 452, 453, 454, 0, 455, 0, 457, 458, - 459, 460, 461, 0, 0, 462, 0, 0, 463, 464, - 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, - 475, 476, 477, 478, 479, 480, 481, 482, 483, 93, - 0, 508, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1017, 94, 95, 96, - 97, 98, 99, 100, 101, 0, 102, 103, 104, 0, - 0, 0, 0, 0, 0, 0, 105, 106, 0, 107, - 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, - 118, 0, 119, 120, 121, 122, 123, 124, 0, 899, - 125, 126, 127, 128, 129, 0, 130, 131, 132, 133, - 902, 0, 903, 0, 136, 137, 138, 139, 140, 141, - 142, 143, 144, 145, 0, 146, 147, 148, 149, 150, - 151, 0, 152, 153, 154, 155, 904, 905, 906, 907, - 908, 909, 910, 161, 162, 163, 164, 165, 166, 167, - 168, 169, 170, 0, 171, 0, 172, 173, 174, 175, - 176, 177, 0, 178, 179, 180, 181, 182, 0, 0, - 183, 184, 185, 186, 187, 0, 188, 189, 190, 0, - 191, 192, 193, 0, 194, 195, 196, 197, 198, 199, - 200, 201, 202, 203, 915, 0, 205, 0, 206, 207, - 208, 209, 0, 210, 0, 211, 212, 0, 213, 214, - 215, 216, 217, 218, 0, 219, 0, 220, 221, 222, - 0, 223, 224, 225, 226, 227, 228, 229, 230, 231, - 232, 233, 234, 0, 235, 236, 237, 238, 239, 240, - 0, 241, 242, 243, 244, 245, 246, 247, 248, 249, - 250, 0, 251, 0, 252, 253, 254, 255, 256, 257, - 258, 259, 260, 261, 262, 2144, 0, 263, 264, 265, - 266, 0, 267, 268, 269, 923, 924, 270, 271, 272, - 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, - 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, - 293, 294, 295, 296, 297, 298, 299, 300, 0, 301, - 302, 303, 304, 0, 929, 306, 307, 308, 309, 310, - 0, 311, 312, 0, 615, 313, 314, 315, 0, 0, - 316, 317, 318, 319, 320, 932, 322, 323, 324, 325, - 326, 327, 328, 329, 330, 331, 0, 332, 333, 933, - 335, 336, 337, 338, 339, 340, 0, 341, 342, 343, - 344, 345, 346, 0, 347, 348, 349, 350, 351, 352, - 353, 354, 0, 355, 356, 357, 358, 359, 360, 361, - 362, 363, 364, 365, 366, 367, 0, 368, 369, 370, - 371, 372, 373, 374, 2145, 376, 377, 378, 379, 380, - 381, 382, 383, 384, 385, 26, 386, 387, 388, 389, - 390, 936, 392, 393, 394, 395, 396, 397, 398, 399, - 400, 401, 0, 402, 403, 404, 405, 406, 407, 408, - 409, 410, 411, 412, 413, 414, 415, 938, 417, 0, - 418, 419, 31, 420, 421, 422, 423, 424, 425, 426, - 0, 427, 428, 0, 0, 429, 430, 941, 432, 942, - 0, 434, 435, 944, 437, 438, 439, 440, 441, 0, - 0, 442, 443, 444, 445, 446, 945, 0, 448, 449, - 450, 451, 452, 611, 454, 0, 455, 456, 457, 458, - 459, 460, 461, 0, 0, 462, 0, 34, 463, 464, - 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, - 475, 476, 477, 478, 479, 480, 481, 482, 483, 0, - 0, 35, 785, 1307, 583, 0, 0, 0, 892, 0, - 0, 0, 0, 0, 0, 2146, 0, 0, 0, 0, - 94, 95, 96, 97, 98, 99, 100, 101, 0, 102, - 103, 104, 0, 0, 0, 0, 0, 0, 0, 105, - 106, 0, 107, 108, 109, 786, 111, 112, 113, 787, - 788, 789, 790, 791, 0, 119, 120, 121, 122, 123, - 124, 0, 0, 125, 126, 792, 793, 129, 0, 130, - 131, 132, 133, 794, 0, 795, 0, 136, 137, 138, - 139, 140, 141, 796, 143, 144, 145, 0, 146, 147, - 148, 149, 150, 151, 0, 797, 153, 154, 155, 798, - 799, 800, 801, 0, 0, 802, 161, 162, 163, 164, - 165, 166, 167, 803, 804, 170, 0, 171, 0, 172, - 173, 174, 175, 176, 177, 0, 178, 179, 180, 181, - 182, 0, 0, 183, 184, 185, 186, 187, 0, 188, - 189, 190, 0, 191, 192, 193, 0, 194, 195, 196, - 197, 805, 199, 200, 201, 202, 203, 806, 1308, 205, - 0, 206, 207, 807, 209, 0, 210, 0, 211, 808, - 0, 809, 214, 215, 810, 811, 218, 0, 219, 0, - 812, 813, 222, 0, 223, 224, 225, 226, 227, 228, - 229, 814, 231, 232, 233, 234, 0, 235, 236, 237, - 238, 239, 240, 0, 241, 815, 816, 244, 245, 246, - 247, 248, 817, 818, 0, 819, 0, 252, 820, 821, - 255, 822, 257, 258, 259, 260, 261, 262, 0, 0, - 263, 823, 265, 824, 0, 267, 268, 269, 0, 0, - 270, 271, 272, 273, 274, 825, 276, 277, 278, 279, - 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, - 290, 291, 292, 293, 826, 827, 828, 297, 298, 299, - 829, 0, 301, 302, 830, 304, 0, 831, 306, 832, - 308, 309, 310, 0, 311, 312, 1309, 0, 313, 314, - 315, 0, 0, 316, 833, 834, 319, 835, 836, 322, - 323, 324, 325, 326, 327, 328, 329, 330, 331, 0, - 332, 333, 837, 335, 336, 838, 338, 339, 340, 0, - 341, 342, 343, 344, 345, 346, 0, 347, 348, 349, - 839, 351, 352, 353, 354, 0, 355, 356, 357, 358, - 359, 360, 361, 362, 363, 364, 365, 366, 367, 0, - 368, 369, 840, 371, 372, 373, 841, 375, 376, 377, - 378, 379, 380, 381, 382, 383, 384, 385, 0, 386, - 387, 388, 389, 390, 842, 392, 843, 394, 395, 396, - 844, 398, 399, 845, 401, 0, 402, 403, 404, 405, - 406, 407, 408, 409, 410, 411, 412, 413, 846, 415, - 847, 417, 0, 418, 419, 0, 420, 848, 422, 423, - 424, 425, 426, 0, 849, 850, 0, 0, 429, 430, - 851, 432, 852, 1310, 434, 435, 853, 437, 438, 439, - 440, 441, 0, 0, 442, 443, 444, 445, 446, 854, - 0, 448, 449, 450, 451, 452, 1202, 856, 0, 455, - 857, 457, 458, 459, 460, 461, 0, 0, 462, 0, - 0, 463, 464, 465, 466, 467, 468, 858, 859, 860, - 861, 862, 863, 864, 865, 866, 867, 868, 480, 481, - 482, 483, 93, 0, 508, 0, 0, 0, 0, 1311, - 1312, 2022, 0, 0, 0, 0, 0, 0, 2023, 0, - 94, 95, 96, 97, 98, 99, 100, 101, 0, 102, - 103, 104, 0, 0, 0, 0, 0, 0, 0, 105, - 106, 0, 107, 108, 109, 110, 111, 112, 113, 114, - 115, 116, 117, 118, 0, 119, 120, 121, 122, 123, - 124, 0, 899, 125, 126, 127, 128, 129, 0, 130, - 131, 132, 133, 902, 0, 903, 0, 136, 137, 138, - 139, 140, 141, 142, 143, 144, 145, 0, 146, 147, - 148, 149, 150, 151, 0, 152, 153, 154, 155, 904, - 905, 906, 907, 908, 909, 910, 161, 162, 163, 164, - 165, 166, 167, 168, 169, 170, 0, 171, 0, 172, - 173, 174, 175, 176, 177, 0, 178, 179, 180, 181, - 182, 0, 0, 183, 184, 185, 186, 187, 0, 188, - 189, 190, 0, 191, 192, 193, 0, 194, 195, 196, - 197, 198, 199, 200, 201, 202, 203, 915, 0, 205, - 0, 206, 207, 208, 209, 0, 210, 0, 211, 212, - 0, 213, 214, 215, 216, 217, 218, 0, 219, 0, - 220, 221, 222, 0, 223, 224, 225, 226, 227, 228, - 229, 230, 231, 232, 233, 234, 0, 235, 236, 237, - 238, 239, 240, 0, 241, 242, 243, 244, 245, 246, - 247, 248, 249, 250, 0, 251, 0, 252, 253, 254, - 255, 256, 257, 258, 259, 260, 261, 262, 2144, 0, - 263, 264, 265, 266, 0, 267, 268, 269, 923, 924, - 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, - 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, - 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, - 300, 0, 301, 302, 303, 304, 0, 929, 306, 307, - 308, 309, 310, 0, 311, 312, 0, 615, 313, 314, - 315, 0, 0, 316, 317, 318, 319, 320, 932, 322, - 323, 324, 325, 326, 327, 328, 329, 330, 331, 0, - 332, 333, 933, 335, 336, 337, 338, 339, 340, 0, - 341, 342, 343, 344, 345, 346, 0, 347, 348, 349, - 350, 351, 352, 353, 354, 0, 355, 356, 357, 358, - 359, 360, 361, 362, 363, 364, 365, 366, 367, 0, - 368, 369, 370, 371, 372, 373, 374, 2145, 376, 377, - 378, 379, 380, 381, 382, 383, 384, 385, 0, 386, - 387, 388, 389, 390, 936, 392, 393, 394, 395, 396, - 397, 398, 399, 400, 401, 0, 402, 403, 404, 405, - 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, - 938, 417, 0, 418, 419, 0, 420, 421, 422, 423, - 424, 425, 426, 0, 427, 428, 0, 0, 429, 430, - 941, 432, 942, 0, 434, 435, 944, 437, 438, 439, - 440, 441, 0, 0, 442, 443, 444, 445, 446, 945, - 0, 448, 449, 450, 451, 452, 611, 454, 0, 455, - 456, 457, 458, 459, 460, 461, 0, 0, 462, 0, - 0, 463, 464, 465, 466, 467, 468, 469, 470, 471, - 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, - 482, 483, 785, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 2146, 0, - 94, 95, 96, 97, 98, 99, 100, 101, 0, 102, - 103, 104, 3, 4, 0, 0, 0, 0, 0, 105, - 106, 0, 107, 108, 109, 786, 111, 112, 113, 787, - 788, 789, 790, 791, 0, 119, 120, 121, 122, 123, - 124, 0, 0, 125, 126, 792, 793, 129, 0, 130, - 131, 132, 133, 794, 0, 795, 0, 136, 137, 138, - 139, 140, 141, 796, 143, 144, 145, 0, 146, 147, - 148, 149, 150, 151, 0, 797, 153, 154, 155, 798, - 799, 800, 801, 0, 0, 802, 161, 162, 163, 164, - 165, 166, 167, 803, 804, 170, 0, 171, 0, 172, - 173, 174, 175, 176, 177, 0, 178, 179, 180, 181, - 182, 0, 0, 183, 184, 185, 186, 187, 0, 188, - 189, 190, 0, 191, 192, 193, 0, 194, 195, 196, - 197, 805, 199, 200, 201, 202, 203, 806, 0, 205, - 0, 206, 207, 807, 209, 0, 210, 0, 211, 808, - 0, 809, 214, 215, 810, 811, 218, 0, 219, 0, - 812, 813, 222, 0, 223, 224, 225, 226, 227, 228, - 229, 814, 231, 232, 233, 234, 0, 235, 236, 237, - 238, 239, 240, 0, 241, 815, 816, 244, 245, 246, - 247, 248, 817, 818, 0, 819, 0, 252, 820, 821, - 255, 822, 257, 258, 259, 260, 261, 262, 0, 0, - 263, 823, 265, 824, 0, 267, 268, 269, 0, 0, - 270, 271, 272, 273, 274, 825, 276, 277, 278, 279, - 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, - 290, 291, 292, 293, 826, 827, 828, 297, 298, 299, - 829, 0, 301, 302, 830, 304, 0, 831, 306, 832, - 308, 309, 310, 0, 311, 312, 0, 0, 313, 314, - 315, 0, 0, 316, 833, 834, 319, 835, 836, 322, - 323, 324, 325, 326, 327, 328, 329, 330, 331, 0, - 332, 333, 837, 335, 336, 838, 338, 339, 340, 0, - 341, 342, 343, 344, 345, 346, 0, 347, 348, 349, - 839, 351, 352, 353, 354, 0, 355, 356, 357, 358, - 359, 360, 361, 362, 363, 364, 365, 366, 367, 0, - 368, 369, 840, 371, 372, 373, 841, 375, 376, 377, - 378, 379, 380, 381, 382, 383, 384, 385, 26, 386, - 387, 388, 389, 390, 842, 392, 843, 394, 395, 396, - 844, 398, 399, 845, 401, 0, 402, 403, 404, 405, - 406, 407, 408, 409, 410, 411, 412, 413, 846, 415, - 847, 417, 0, 418, 419, 31, 420, 848, 422, 423, - 424, 425, 426, 0, 849, 850, 0, 0, 429, 430, - 851, 432, 852, 0, 434, 435, 853, 437, 438, 439, - 440, 441, 0, 0, 442, 443, 444, 445, 446, 854, - 0, 448, 449, 450, 451, 452, 855, 856, 0, 455, - 857, 457, 458, 459, 460, 461, 0, 0, 462, 0, - 34, 463, 464, 465, 466, 467, 468, 858, 859, 860, - 861, 862, 863, 864, 865, 866, 867, 868, 480, 481, - 482, 483, 93, 0, 35, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 36, 0, - 94, 95, 96, 97, 98, 99, 100, 101, 0, 102, - 103, 104, 0, 0, 0, 0, 0, 0, 0, 105, - 106, 0, 107, 108, 109, 110, 111, 112, 113, 114, - 115, 116, 117, 118, 0, 119, 120, 121, 122, 123, - 124, 0, 899, 125, 126, 127, 128, 129, 0, 130, - 131, 132, 133, 902, 0, 903, 0, 136, 137, 138, - 139, 140, 141, 142, 143, 144, 145, 0, 146, 147, - 148, 149, 150, 151, 0, 152, 153, 154, 155, 904, - 905, 906, 907, 908, 909, 910, 161, 162, 163, 164, - 165, 166, 167, 168, 169, 170, 0, 171, 0, 172, - 173, 174, 175, 176, 177, 0, 178, 179, 180, 181, - 182, 0, 0, 183, 184, 185, 186, 187, 0, 188, - 189, 190, 0, 191, 192, 193, 0, 194, 195, 196, - 197, 198, 199, 200, 201, 202, 203, 915, 0, 205, - 0, 206, 207, 208, 209, 0, 210, 0, 211, 212, - 0, 213, 214, 215, 216, 217, 218, 0, 219, 0, - 220, 221, 222, 0, 223, 224, 225, 226, 227, 228, - 229, 230, 231, 232, 233, 234, 0, 235, 236, 237, - 238, 239, 240, 0, 241, 242, 243, 244, 245, 246, - 247, 248, 249, 250, 0, 251, 0, 252, 253, 254, - 255, 256, 257, 258, 259, 260, 261, 262, 0, 0, - 263, 264, 265, 266, 0, 267, 268, 269, 923, 924, - 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, - 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, - 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, - 300, 0, 301, 302, 303, 304, 0, 929, 306, 307, - 308, 309, 310, 0, 311, 312, 0, 0, 313, 314, - 315, 0, 0, 316, 317, 318, 319, 320, 932, 322, - 323, 324, 325, 326, 327, 328, 329, 330, 331, 0, - 332, 333, 933, 335, 336, 337, 338, 339, 340, 0, - 341, 342, 343, 344, 345, 346, 0, 347, 348, 349, - 350, 351, 352, 353, 354, 0, 355, 356, 357, 358, - 359, 360, 361, 362, 363, 364, 365, 366, 367, 0, - 368, 369, 370, 371, 372, 373, 374, 2145, 376, 377, - 378, 379, 380, 381, 382, 383, 384, 385, 0, 386, - 387, 388, 389, 390, 936, 392, 393, 394, 395, 396, - 397, 398, 399, 400, 401, 0, 402, 403, 404, 405, - 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, - 938, 417, 0, 418, 419, 0, 420, 421, 422, 423, - 424, 425, 426, 0, 427, 428, 0, 0, 429, 430, - 941, 432, 942, 0, 434, 435, 944, 437, 438, 439, - 440, 441, 0, 0, 442, 443, 444, 445, 446, 945, - 0, 448, 449, 450, 451, 452, 453, 454, 0, 455, - 456, 457, 458, 459, 460, 461, 0, 0, 462, 0, - 0, 463, 464, 465, 466, 467, 468, 469, 470, 471, - 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, - 482, 483, 93, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 36, 0, 94, 95, 96, 97, 98, 99, 100, 101, 0, 102, - 103, 104, 0, 0, 0, 0, 0, 0, 0, 105, - 106, 0, 107, 108, 109, 110, 111, 112, 113, 114, - 115, 116, 117, 118, 0, 119, 120, 121, 122, 123, - 124, 0, 899, 125, 126, 127, 128, 129, 0, 130, + 103, 104, 0, 0, 0, 0, 894, 0, 0, 105, + 106, 0, 107, 108, 109, 110, 111, 112, 113, 0, + 895, 116, 896, 897, 0, 119, 120, 121, 122, 123, + 124, 898, 899, 125, 126, 900, 901, 129, 0, 130, 131, 132, 133, 902, 0, 903, 0, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 0, 146, 147, 148, 149, 150, 151, 0, 152, 153, 154, 155, 904, 905, 906, 907, 908, 909, 910, 161, 162, 163, 164, - 165, 166, 167, 168, 169, 170, 0, 171, 0, 172, + 165, 166, 167, 911, 912, 170, 913, 171, 0, 172, 173, 174, 175, 176, 177, 0, 178, 179, 180, 181, - 182, 0, 0, 183, 184, 185, 186, 187, 0, 188, - 189, 190, 0, 191, 192, 193, 0, 194, 195, 196, - 197, 198, 199, 200, 201, 202, 203, 915, 0, 205, - 0, 206, 207, 208, 209, 0, 210, 0, 211, 212, - 0, 213, 214, 215, 216, 217, 218, 0, 219, 0, - 220, 221, 222, 0, 223, 224, 225, 226, 227, 228, - 229, 230, 231, 232, 233, 234, 0, 235, 236, 237, + 182, 0, 0, 183, 184, 717, 186, 187, 0, 188, + 189, 190, 0, 191, 0, 193, 0, 194, 195, 196, + 197, 914, 199, 200, 201, 202, 203, 915, 916, 205, + 0, 206, 207, 917, 209, 0, 210, 0, 211, 212, + 0, 213, 214, 215, 216, 0, 218, 0, 219, 0, + 918, 919, 222, 0, 223, 224, 225, 226, 227, 228, + 229, 0, 231, 232, 233, 234, 0, 235, 236, 237, 238, 239, 240, 0, 241, 242, 243, 244, 245, 246, - 247, 248, 249, 250, 0, 251, 0, 252, 253, 254, + 247, 248, 920, 921, 0, 922, 0, 252, 0, 0, 255, 256, 257, 258, 259, 260, 261, 262, 0, 0, - 263, 264, 265, 266, 0, 267, 268, 269, 923, 924, + 263, 264, 265, 0, 0, 267, 268, 269, 923, 924, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, - 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, - 300, 0, 301, 302, 303, 304, 0, 929, 306, 307, - 308, 309, 310, 0, 311, 312, 0, 0, 313, 314, + 290, 291, 292, 293, 925, 295, 926, 297, 298, 299, + 300, 0, 301, 302, 0, 304, 928, 929, 306, 930, + 308, 309, 310, 0, 311, 312, 0, 0, 931, 314, 315, 0, 0, 316, 317, 318, 319, 320, 932, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 933, 335, 336, 337, 338, 339, 340, 0, 341, 342, 343, 344, 345, 346, 0, 347, 348, 349, - 350, 351, 352, 353, 354, 0, 355, 356, 357, 358, + 934, 351, 352, 353, 354, 0, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 0, - 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, + 368, 369, 370, 371, 372, 373, 935, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 0, 386, 387, 388, 389, 390, 936, 392, 393, 394, 395, 396, - 397, 398, 399, 400, 401, 0, 402, 403, 404, 405, + 0, 398, 399, 937, 401, 0, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 938, 417, 0, 418, 419, 0, 420, 421, 422, 423, - 424, 425, 426, 0, 427, 428, 0, 0, 429, 430, - 941, 432, 942, 0, 434, 435, 944, 437, 438, 439, + 424, 425, 426, 0, 939, 940, 0, 0, 429, 430, + 941, 432, 942, 943, 434, 435, 944, 437, 438, 439, 440, 441, 0, 0, 442, 443, 444, 445, 446, 945, - 0, 448, 449, 450, 451, 452, 453, 454, 0, 455, + 0, 448, 449, 450, 451, 452, 453, 946, 0, 455, 456, 457, 458, 459, 460, 461, 0, 0, 462, 0, 0, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, - 482, 483, 507, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 2819, 0, - 94, 95, 96, 97, 98, 99, 100, 101, 643, 102, - 103, 104, 0, 0, 0, 0, 0, 0, 0, 105, - 106, 0, 107, 108, 109, 0, 111, 112, 113, 114, - 115, 0, 117, 118, 0, 119, 120, 121, 122, 123, - 124, 0, 0, 125, 126, 127, 128, 129, 0, 130, - 131, 132, 133, 134, 0, 0, 0, 136, 137, 138, - 139, 140, 141, 0, 143, 144, 145, 0, 146, 147, - 148, 149, 150, 151, 0, 0, 153, 154, 155, 0, - 0, 0, 0, 0, 0, 0, 161, 162, 163, 164, - 165, 166, 167, 168, 169, 170, 0, 171, 0, 172, - 173, 174, 175, 176, 177, 0, 178, 179, 180, 181, - 182, 0, 0, 183, 184, 185, 186, 187, 0, 188, - 189, 190, 0, 191, 192, 193, 0, 194, 195, 196, - 197, 198, 199, 200, 201, 202, 203, 204, 0, 205, - 0, 206, 207, 208, 209, 0, 210, 0, 211, 0, - 0, 0, 214, 215, 510, 0, 218, 0, 219, 0, - 220, 221, 222, 0, 223, 224, 225, 226, 227, 228, - 229, 0, 231, 232, 233, 234, 0, 235, 236, 237, - 238, 239, 240, 0, 241, 0, 243, 244, 245, 246, - 247, 248, 249, 250, 0, 251, 0, 252, 0, 0, - 255, 0, 257, 258, 259, 260, 261, 262, 0, 0, - 263, 0, 265, 0, 0, 267, 268, 269, 0, 0, - 270, 271, 272, 273, 274, 511, 276, 277, 278, 279, - 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, - 290, 291, 292, 293, 294, 0, 296, 297, 298, 299, - 300, 0, 301, 302, 0, 304, 0, 305, 306, 307, - 308, 309, 310, 0, 311, 312, 0, 0, 313, 314, - 315, 0, 0, 316, 317, 0, 319, 0, 321, 322, - 323, 324, 325, 326, 327, 328, 329, 330, 331, 0, - 332, 333, 334, 335, 336, 337, 338, 339, 340, 0, - 341, 342, 343, 344, 345, 346, 0, 347, 348, 349, - 350, 351, 352, 353, 354, 0, 355, 356, 357, 358, - 359, 360, 361, 362, 363, 364, 365, 366, 367, 0, - 368, 369, 0, 371, 372, 373, 374, 375, 376, 377, - 378, 379, 380, 381, 382, 383, 384, 385, 26, 386, - 387, 388, 389, 390, 0, 392, 393, 394, 395, 396, - 0, 398, 399, 400, 401, 0, 402, 403, 404, 405, - 406, 407, 408, 409, 410, 411, 412, 413, 513, 415, - 416, 417, 0, 418, 419, 31, 420, 0, 422, 423, - 424, 425, 426, 0, 644, 428, 0, 0, 645, 430, - 431, 432, 433, 0, 434, 435, 436, 437, 438, 439, - 440, 441, 0, 0, 442, 443, 444, 445, 446, 0, - 0, 448, 449, 450, 451, 452, 611, 454, 0, 455, - 0, 457, 458, 459, 460, 461, 0, 0, 462, 0, - 34, 463, 464, 465, 466, 467, 468, 469, 470, 471, - 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, - 482, 483, 507, 0, 35, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 36, 0, - 94, 95, 96, 97, 98, 99, 100, 101, 0, 102, - 103, 104, 0, 0, 0, 0, 0, 0, 0, 105, - 106, 0, 107, 108, 109, 0, 111, 112, 113, 114, - 115, 0, 117, 118, 0, 119, 120, 121, 122, 123, - 124, 0, 0, 125, 126, 127, 128, 129, 0, 130, - 131, 132, 133, 134, 0, 0, 0, 136, 137, 138, - 139, 140, 141, 0, 143, 144, 145, 0, 146, 147, - 148, 149, 150, 151, 0, 0, 153, 154, 155, 0, - 0, 0, 0, 0, 0, 0, 161, 162, 163, 164, - 165, 166, 167, 168, 169, 170, 0, 171, 0, 172, - 173, 174, 175, 176, 177, 0, 178, 179, 180, 181, - 182, 0, 0, 183, 184, 185, 186, 187, 0, 188, - 189, 190, 0, 191, 192, 193, 0, 194, 195, 196, - 197, 198, 199, 200, 201, 202, 203, 204, 0, 205, - 0, 206, 207, 208, 209, 0, 210, 0, 211, 0, - 0, 0, 214, 215, 510, 0, 218, 0, 219, 0, - 220, 221, 222, 0, 223, 224, 225, 226, 227, 228, - 229, 0, 231, 232, 233, 234, 0, 235, 236, 237, - 238, 239, 240, 0, 241, 0, 243, 244, 245, 246, - 247, 248, 249, 250, 0, 251, 0, 252, 0, 0, - 255, 0, 257, 258, 259, 260, 261, 262, 0, 0, - 263, 0, 265, 0, 0, 267, 268, 269, 0, 0, - 270, 271, 272, 273, 274, 511, 276, 277, 278, 279, - 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, - 290, 291, 292, 293, 294, 0, 296, 297, 298, 299, - 300, 0, 301, 302, 0, 304, 0, 305, 306, 307, - 308, 309, 310, 0, 311, 312, 0, 0, 313, 314, - 315, 0, 0, 316, 317, 0, 319, 0, 321, 322, - 323, 324, 325, 326, 327, 328, 329, 330, 331, 0, - 332, 333, 334, 335, 336, 337, 338, 339, 340, 0, - 341, 342, 343, 344, 345, 346, 0, 347, 348, 349, - 350, 351, 352, 353, 354, 0, 355, 356, 357, 358, - 359, 360, 361, 362, 363, 364, 365, 366, 367, 0, - 368, 369, 0, 371, 372, 373, 374, 375, 376, 377, - 378, 379, 380, 381, 382, 383, 384, 385, 26, 386, - 387, 388, 389, 390, 0, 392, 393, 394, 395, 396, - 0, 398, 399, 400, 401, 0, 402, 403, 404, 405, - 406, 407, 408, 409, 410, 411, 412, 413, 513, 415, - 416, 417, 0, 418, 419, 31, 420, 0, 422, 423, - 424, 425, 426, 0, 427, 428, 0, 0, 429, 430, - 431, 432, 433, 0, 434, 435, 436, 437, 438, 439, - 440, 441, 0, 0, 442, 443, 444, 445, 446, 0, - 0, 448, 449, 450, 451, 452, 611, 454, 0, 455, - 0, 457, 458, 459, 460, 461, 0, 0, 462, 0, - 34, 463, 464, 465, 466, 467, 468, 469, 470, 471, - 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, - 482, 483, 0, 507, 35, 508, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 36, 0, - 0, 94, 95, 96, 97, 98, 99, 100, 101, 0, - 102, 103, 104, 0, 0, 0, 0, 0, 0, 0, - 105, 106, 0, 107, 108, 109, 0, 111, 112, 113, - 114, 115, 0, 117, 118, 0, 119, 120, 121, 122, - 123, 124, 0, 0, 125, 126, 127, 128, 129, 0, - 130, 131, 132, 133, 134, 0, 0, 0, 136, 137, - 138, 139, 140, 141, 0, 143, 144, 145, 0, 146, - 147, 148, 149, 150, 151, 0, 0, 153, 154, 155, - 0, 0, 0, 0, 0, 0, 0, 161, 162, 163, - 164, 165, 166, 167, 168, 169, 170, 0, 171, 0, - 172, 173, 174, 175, 176, 177, 0, 178, 179, 180, - 181, 182, 0, 0, 183, 184, 185, 186, 187, 0, - 188, 189, 190, 0, 191, 192, 193, 0, 194, 195, - 196, 197, 198, 199, 200, 201, 202, 203, 204, 0, - 205, 0, 206, 207, 208, 209, 0, 210, 0, 211, - 0, 0, 0, 214, 215, 510, 0, 218, 0, 219, - 0, 220, 221, 222, 0, 223, 224, 225, 226, 227, - 228, 229, 0, 231, 232, 233, 234, 0, 235, 236, - 237, 238, 239, 240, 0, 241, 0, 243, 244, 245, - 246, 247, 248, 249, 250, 0, 251, 0, 252, 0, - 0, 255, 0, 257, 258, 259, 260, 261, 262, 0, - 0, 263, 0, 265, 0, 0, 267, 268, 269, 0, - 0, 270, 271, 272, 273, 274, 511, 276, 277, 278, - 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, - 289, 290, 291, 292, 293, 294, 0, 296, 297, 298, - 299, 300, 0, 301, 302, 0, 304, 0, 305, 306, - 307, 308, 309, 310, 0, 311, 312, 0, 0, 313, - 314, 315, 0, 0, 316, 317, 0, 319, 0, 321, - 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, - 0, 332, 333, 334, 335, 336, 337, 338, 339, 340, - 0, 341, 342, 343, 344, 345, 346, 0, 347, 348, - 349, 350, 351, 352, 353, 354, 0, 355, 356, 357, - 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, - 0, 368, 369, 0, 371, 372, 373, 374, 375, 376, - 377, 378, 379, 380, 381, 382, 383, 384, 385, 0, - 386, 387, 388, 389, 390, 0, 392, 393, 394, 395, - 396, 0, 398, 399, 400, 401, 0, 402, 403, 404, - 405, 406, 407, 408, 409, 410, 411, 412, 413, 513, - 415, 416, 417, 0, 418, 419, 0, 420, 0, 422, - 423, 424, 425, 426, 0, 427, 428, 0, 0, 429, - 430, 431, 432, 433, 0, 434, 435, 436, 437, 438, - 439, 440, 441, 0, 0, 442, 443, 444, 445, 446, - 0, 0, 448, 449, 450, 451, 452, 453, 454, 0, - 455, 0, 457, 458, 459, 460, 461, 0, 0, 462, - 0, 0, 463, 464, 465, 466, 467, 468, 469, 470, - 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, - 481, 482, 483, 507, 0, 508, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 996, - 0, 94, 95, 96, 97, 98, 99, 100, 101, 0, - 102, 103, 104, 0, 0, 0, 0, 0, 0, 0, - 105, 106, 0, 107, 108, 109, 0, 111, 112, 113, - 114, 115, 0, 117, 118, 0, 119, 120, 121, 122, - 123, 124, 0, 0, 125, 126, 127, 128, 129, 0, - 130, 131, 132, 133, 134, 0, 0, 0, 136, 137, - 138, 139, 140, 141, 0, 143, 144, 145, 0, 146, - 147, 148, 149, 150, 151, 0, 0, 153, 154, 155, - 0, 0, 0, 0, 0, 0, 0, 161, 162, 163, - 164, 165, 166, 167, 168, 169, 170, 0, 171, 0, - 172, 173, 174, 175, 176, 177, 0, 178, 179, 180, - 181, 182, 0, 0, 183, 184, 185, 186, 187, 0, - 188, 189, 190, 0, 191, 192, 193, 0, 194, 195, - 196, 197, 198, 199, 200, 201, 202, 203, 204, 0, - 205, 0, 206, 207, 208, 209, 0, 210, 0, 211, - 0, 0, 0, 214, 215, 510, 0, 218, 0, 219, - 0, 220, 221, 222, 0, 223, 224, 225, 226, 227, - 228, 229, 0, 231, 232, 233, 234, 0, 235, 236, - 237, 238, 239, 240, 0, 241, 0, 243, 244, 245, - 246, 247, 248, 249, 250, 0, 251, 0, 252, 0, - 0, 255, 0, 257, 258, 259, 260, 261, 262, 0, - 0, 263, 0, 265, 0, 0, 267, 268, 269, 0, - 0, 270, 271, 272, 273, 274, 511, 276, 277, 278, - 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, - 289, 290, 291, 292, 293, 294, 0, 296, 297, 298, - 299, 300, 0, 301, 302, 0, 304, 0, 305, 306, - 307, 308, 309, 310, 0, 311, 312, 0, 0, 313, - 314, 315, 0, 0, 316, 317, 0, 319, 0, 321, - 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, - 0, 332, 333, 334, 335, 336, 337, 338, 339, 340, - 0, 341, 342, 343, 344, 345, 346, 0, 347, 348, - 349, 350, 351, 352, 353, 354, 0, 355, 356, 357, - 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, - 0, 368, 369, 0, 371, 372, 373, 374, 375, 376, - 377, 378, 379, 380, 381, 382, 383, 384, 385, 0, - 386, 387, 388, 389, 390, 0, 392, 393, 394, 395, - 396, 0, 398, 399, 400, 401, 0, 402, 403, 404, - 405, 406, 407, 408, 409, 410, 411, 412, 413, 513, - 415, 416, 417, 0, 418, 419, 0, 420, 0, 422, - 423, 424, 425, 426, 0, 427, 428, 0, 0, 429, - 430, 431, 432, 433, 0, 434, 435, 436, 437, 438, - 439, 440, 441, 0, 0, 442, 443, 444, 445, 446, - 0, 0, 448, 449, 450, 451, 452, 453, 454, 0, - 455, 0, 457, 458, 459, 460, 461, 0, 0, 462, - 0, 0, 463, 464, 465, 466, 467, 468, 469, 470, - 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, - 481, 482, 483, 507, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 2658, - 0, 94, 95, 96, 97, 98, 99, 100, 101, 0, - 102, 103, 104, 0, 0, 0, 0, 0, 0, 0, - 105, 106, 0, 107, 108, 109, 0, 111, 112, 113, - 114, 115, 0, 117, 118, 0, 119, 120, 121, 122, - 123, 124, 0, 0, 125, 126, 127, 128, 129, 0, - 130, 131, 132, 133, 134, 0, 0, 0, 136, 137, - 138, 139, 140, 141, 0, 143, 144, 145, 0, 146, - 147, 148, 149, 150, 151, 0, 0, 153, 154, 155, - 0, 0, 0, 0, 0, 0, 0, 161, 162, 163, - 164, 165, 166, 167, 168, 169, 170, 0, 171, 0, - 172, 173, 174, 175, 176, 177, 0, 178, 179, 180, - 181, 182, 0, 0, 183, 184, 185, 186, 187, 0, - 188, 189, 190, 0, 191, 192, 193, 0, 194, 195, - 196, 197, 198, 199, 200, 201, 202, 203, 204, 0, - 205, 0, 206, 207, 208, 209, 0, 210, 0, 211, - 0, 0, 0, 214, 215, 510, 0, 218, 0, 219, - 0, 220, 221, 222, 0, 223, 224, 225, 226, 227, - 228, 229, 0, 231, 232, 233, 234, 0, 235, 236, - 237, 238, 239, 240, 0, 241, 0, 243, 244, 245, - 246, 247, 248, 249, 250, 0, 251, 0, 252, 0, - 0, 255, 0, 257, 258, 259, 260, 261, 262, 0, - 0, 263, 0, 265, 0, 0, 267, 268, 269, 0, - 0, 270, 271, 272, 273, 274, 511, 276, 277, 278, - 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, - 289, 290, 291, 292, 293, 294, 0, 296, 297, 298, - 299, 300, 0, 301, 302, 0, 304, 0, 305, 306, - 307, 308, 309, 310, 0, 311, 312, 0, 0, 313, - 314, 315, 0, 0, 316, 317, 0, 319, 0, 321, - 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, - 0, 332, 333, 334, 335, 336, 337, 338, 339, 340, - 0, 341, 342, 343, 344, 345, 346, 0, 347, 348, - 349, 350, 351, 352, 353, 354, 0, 355, 356, 357, - 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, - 0, 368, 369, 0, 371, 372, 373, 374, 375, 376, - 377, 378, 379, 380, 381, 382, 383, 384, 385, 0, - 386, 387, 388, 389, 390, 0, 392, 393, 394, 395, - 396, 0, 398, 399, 400, 401, 0, 402, 403, 404, - 405, 406, 407, 408, 409, 410, 411, 412, 413, 513, - 415, 416, 417, 0, 418, 419, 0, 420, 0, 422, - 423, 424, 425, 426, 0, 427, 428, 0, 0, 429, - 430, 431, 432, 433, 0, 434, 435, 436, 437, 438, - 439, 440, 441, 0, 0, 442, 443, 444, 445, 446, - 0, 0, 448, 449, 450, 451, 452, 453, 454, 0, - 455, 0, 457, 458, 459, 460, 461, 0, 0, 462, - 0, 0, 463, 464, 465, 466, 467, 468, 469, 470, - 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, - 481, 482, 483, 507, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1733, - 0, 94, 95, 96, 97, 98, 99, 100, 101, 0, - 102, 103, 104, 0, 0, 0, 0, 0, 0, 0, - 105, 106, 0, 107, 108, 109, 0, 111, 112, 113, - 114, 115, 0, 117, 118, 0, 119, 120, 121, 122, - 123, 124, 0, 0, 125, 126, 127, 128, 129, 0, - 130, 131, 132, 133, 134, 0, 0, 0, 136, 137, - 138, 139, 140, 141, 0, 143, 144, 145, 0, 146, - 147, 148, 149, 150, 151, 0, 0, 153, 154, 155, - 0, 0, 0, 0, 0, 0, 0, 161, 162, 163, - 164, 165, 166, 167, 168, 169, 170, 0, 171, 0, - 172, 173, 174, 175, 176, 177, 0, 178, 179, 180, - 181, 182, 0, 0, 183, 184, 185, 186, 187, 0, - 188, 189, 190, 0, 191, 192, 193, 0, 194, 195, - 196, 197, 198, 199, 200, 201, 202, 203, 204, 0, - 205, 0, 206, 207, 208, 209, 0, 210, 0, 211, - 0, 0, 0, 214, 215, 510, 0, 218, 0, 219, - 0, 220, 221, 222, 0, 223, 224, 225, 226, 227, - 228, 229, 0, 231, 232, 233, 234, 0, 235, 236, - 237, 238, 239, 240, 0, 241, 0, 243, 244, 245, - 246, 247, 248, 249, 250, 0, 251, 0, 252, 0, - 0, 255, 0, 257, 258, 259, 260, 261, 262, 0, - 0, 263, 0, 265, 0, 0, 267, 268, 269, 0, - 0, 270, 271, 272, 273, 274, 511, 276, 277, 278, - 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, - 289, 290, 291, 292, 293, 294, 0, 296, 297, 298, - 299, 300, 0, 301, 302, 0, 304, 0, 305, 306, - 307, 308, 309, 310, 0, 311, 312, 0, 0, 313, - 314, 315, 0, 0, 316, 317, 0, 319, 0, 321, - 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, - 0, 332, 333, 334, 335, 336, 337, 338, 339, 340, - 0, 341, 342, 343, 344, 345, 346, 0, 347, 348, - 349, 350, 351, 352, 353, 354, 0, 355, 356, 357, - 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, - 0, 368, 369, 0, 371, 372, 373, 374, 375, 376, - 377, 378, 379, 380, 381, 382, 383, 384, 385, 0, - 386, 387, 388, 389, 390, 0, 392, 393, 394, 395, - 396, 0, 398, 399, 400, 401, 0, 402, 403, 404, - 405, 406, 407, 408, 409, 410, 411, 412, 413, 513, - 415, 416, 417, 0, 418, 419, 0, 420, 0, 422, - 423, 424, 425, 426, 0, 427, 428, 0, 0, 429, - 430, 431, 432, 433, 0, 434, 435, 436, 437, 438, - 439, 440, 441, 0, 0, 442, 443, 444, 445, 446, - 0, 0, 448, 449, 450, 451, 452, 453, 454, 0, - 455, 0, 457, 458, 459, 460, 461, 0, 0, 462, - 0, 0, 463, 464, 465, 466, 467, 468, 469, 470, - 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, - 481, 482, 483, 507, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1876, - 0, 94, 95, 96, 97, 98, 99, 100, 101, 0, - 102, 103, 104, 0, 0, 0, 0, 0, 0, 0, - 105, 106, 0, 107, 108, 109, 0, 111, 112, 113, - 114, 115, 0, 117, 118, 0, 119, 120, 121, 122, - 123, 124, 0, 0, 125, 126, 127, 128, 129, 0, - 130, 131, 132, 133, 134, 0, 0, 0, 136, 137, - 138, 139, 140, 141, 0, 143, 144, 145, 0, 146, - 147, 148, 149, 150, 151, 0, 0, 153, 154, 155, - 0, 0, 0, 0, 0, 0, 0, 161, 162, 163, - 164, 165, 166, 167, 168, 169, 170, 0, 171, 0, - 172, 173, 174, 175, 176, 177, 0, 178, 179, 180, - 181, 182, 0, 0, 183, 184, 185, 186, 187, 0, - 188, 189, 190, 0, 191, 192, 193, 0, 194, 195, - 196, 197, 198, 199, 200, 201, 202, 203, 204, 0, - 205, 0, 206, 207, 208, 209, 0, 210, 0, 211, - 0, 0, 0, 214, 215, 510, 0, 218, 0, 219, - 0, 220, 221, 222, 0, 223, 224, 225, 226, 227, - 228, 229, 0, 231, 232, 233, 234, 0, 235, 236, - 237, 238, 239, 240, 0, 241, 0, 243, 244, 245, - 246, 247, 248, 249, 250, 0, 251, 0, 252, 0, - 0, 255, 0, 257, 258, 259, 260, 261, 262, 0, - 0, 263, 0, 265, 0, 0, 267, 268, 269, 0, - 0, 270, 271, 272, 273, 274, 511, 276, 277, 278, - 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, - 289, 290, 291, 292, 293, 294, 0, 296, 297, 298, - 299, 300, 0, 301, 302, 0, 304, 0, 305, 306, - 307, 308, 309, 310, 0, 311, 312, 0, 0, 313, - 314, 315, 0, 0, 316, 317, 0, 319, 0, 321, - 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, - 0, 332, 333, 334, 335, 336, 337, 338, 339, 340, - 0, 341, 342, 343, 344, 345, 346, 0, 347, 348, - 349, 350, 351, 352, 353, 354, 0, 355, 356, 357, - 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, - 0, 368, 369, 0, 371, 372, 373, 374, 375, 376, - 377, 378, 379, 380, 381, 382, 383, 384, 385, 0, - 386, 387, 388, 389, 390, 0, 392, 393, 394, 395, - 396, 0, 398, 399, 400, 401, 0, 402, 403, 404, - 405, 406, 407, 408, 409, 410, 411, 412, 413, 513, - 415, 416, 417, 0, 418, 419, 0, 420, 0, 422, - 423, 424, 425, 426, 0, 427, 428, 0, 0, 429, - 430, 431, 432, 433, 0, 434, 435, 436, 437, 438, - 439, 440, 441, 0, 0, 442, 443, 444, 445, 446, - 0, 0, 448, 449, 450, 451, 452, 453, 454, 0, - 455, 0, 457, 458, 459, 460, 461, 0, 0, 462, - 0, 0, 463, 464, 465, 466, 467, 468, 469, 470, - 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, - 481, 482, 483, 0, 0, 2506, 1307, 583, 0, 0, - 1693, 892, 0, 0, 0, 0, 0, 1694, 0, 2630, - 1695, 1696, 1697, 94, 95, 96, 97, 98, 99, 100, - 101, 1135, 102, 103, 104, 1136, 1137, 1138, 1139, 1140, - 1141, 1142, 105, 106, 1143, 107, 108, 109, 2507, 111, - 112, 113, 0, 701, 2508, 703, 704, 1144, 119, 120, - 121, 122, 123, 124, 1145, 1146, 125, 126, 705, 706, - 129, 1147, 130, 131, 132, 133, 0, 1148, 2509, 1149, - 136, 137, 138, 139, 140, 141, 2510, 143, 144, 145, - 1150, 146, 147, 148, 149, 150, 151, 1151, 2511, 153, - 154, 155, 2512, 2513, 2514, 2515, 1152, 1153, 2516, 161, - 162, 163, 164, 165, 166, 167, 715, 716, 170, 1154, - 171, 1155, 172, 173, 174, 175, 176, 177, 1156, 178, - 179, 180, 181, 182, 1157, 1158, 183, 184, 717, 186, - 187, 1159, 188, 189, 190, 1160, 191, 192, 193, 1161, - 194, 195, 196, 197, 0, 199, 200, 201, 202, 203, - 0, 1162, 205, 1163, 206, 207, 718, 209, 1164, 210, - 1165, 211, 2517, 1166, 2518, 214, 215, 2519, 2520, 218, - 1167, 219, 1168, 0, 0, 222, 1169, 223, 224, 225, - 226, 227, 228, 229, 2521, 231, 232, 233, 234, 1170, - 235, 236, 237, 238, 239, 240, 1171, 241, 2522, 0, - 244, 245, 246, 247, 248, 725, 726, 1172, 727, 1173, - 252, 2523, 2524, 255, 2525, 257, 258, 259, 260, 261, - 262, 1174, 1175, 263, 2526, 265, 2527, 1176, 267, 268, - 269, 1177, 1178, 270, 271, 272, 273, 274, 2528, 276, - 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, - 287, 288, 289, 290, 291, 292, 293, 734, 2529, 736, - 297, 298, 299, 2530, 1179, 301, 302, 2531, 304, 1180, - 0, 306, 738, 308, 309, 310, 1181, 311, 312, 1182, - 1183, 2532, 314, 315, 1184, 1185, 316, 0, 2533, 319, - 2534, 0, 322, 323, 324, 325, 326, 327, 328, 329, - 330, 331, 1186, 332, 333, 0, 335, 336, 0, 338, - 339, 340, 1187, 341, 342, 343, 344, 345, 346, 1188, - 347, 348, 349, 741, 351, 352, 353, 354, 1189, 355, - 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, - 366, 367, 1190, 368, 369, 2535, 371, 372, 373, 743, - 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, - 385, 1191, 386, 387, 388, 389, 390, 2536, 392, 2537, - 394, 395, 396, 2538, 398, 399, 747, 401, 1192, 402, - 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, - 413, 2539, 415, 0, 417, 1193, 418, 419, 1194, 420, - 2540, 422, 423, 424, 425, 426, 1195, 750, 751, 1196, - 1197, 429, 430, 0, 432, 0, 1198, 434, 435, 2541, - 437, 438, 439, 440, 441, 1199, 1200, 442, 443, 444, - 445, 446, 2542, 1201, 448, 449, 450, 451, 452, 0, - 754, 1203, 455, 2543, 457, 458, 459, 460, 461, 1204, - 1205, 462, 1206, 1207, 463, 464, 465, 466, 467, 468, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 480, 481, 482, 483, 0, 507, 0, 1698, 1699, - 1700, 1693, 2544, 2545, 1703, 1704, 1705, 1706, 1694, 0, - 0, 1695, 1696, 1697, 94, 95, 96, 97, 98, 99, - 100, 101, 0, 102, 103, 104, 0, 0, 0, 0, - 0, 0, 0, 105, 106, 0, 107, 108, 109, 0, - 111, 112, 113, 114, 115, 0, 117, 118, 0, 119, - 120, 121, 122, 123, 124, 0, 0, 125, 126, 127, - 128, 129, 0, 130, 131, 132, 133, 134, 0, 0, - 0, 136, 137, 138, 139, 140, 141, 0, 143, 144, - 145, 0, 146, 147, 148, 149, 150, 151, 0, 0, - 153, 154, 155, 0, 0, 0, 0, 0, 0, 0, - 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, - 0, 171, 0, 172, 173, 174, 175, 176, 177, 0, - 178, 179, 180, 181, 182, 0, 0, 183, 184, 185, - 186, 187, 0, 188, 189, 190, 0, 191, 192, 193, - 0, 194, 195, 196, 197, 198, 199, 200, 201, 202, - 203, 204, 0, 205, 0, 206, 207, 208, 209, 0, - 210, 0, 211, 0, 0, 0, 214, 215, 510, 0, - 218, 0, 219, 0, 220, 221, 222, 0, 223, 224, - 225, 226, 227, 228, 229, 0, 231, 232, 233, 234, - 0, 235, 236, 237, 238, 239, 240, 0, 241, 0, - 243, 244, 245, 246, 247, 248, 249, 250, 0, 251, - 0, 252, 0, 0, 255, 0, 257, 258, 259, 260, - 261, 262, 0, 0, 263, 0, 265, 0, 0, 267, - 268, 269, 0, 0, 270, 271, 272, 273, 274, 511, - 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, - 286, 287, 288, 289, 290, 291, 292, 293, 294, 0, - 296, 297, 298, 299, 300, 0, 301, 302, 0, 304, - 0, 305, 306, 307, 308, 309, 310, 0, 311, 312, - 0, 0, 313, 314, 315, 0, 0, 316, 317, 0, - 319, 0, 321, 322, 323, 324, 325, 326, 327, 328, - 329, 330, 331, 0, 332, 333, 334, 335, 336, 337, - 338, 339, 340, 0, 341, 342, 343, 344, 345, 346, - 0, 347, 348, 349, 350, 351, 352, 353, 354, 0, - 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, - 365, 366, 367, 0, 368, 369, 0, 371, 372, 373, - 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, - 384, 385, 0, 386, 387, 388, 389, 390, 0, 392, - 393, 394, 395, 396, 0, 398, 399, 400, 401, 0, - 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, - 412, 413, 513, 415, 416, 417, 0, 418, 419, 0, - 420, 0, 422, 423, 424, 425, 426, 0, 427, 428, - 0, 0, 429, 430, 431, 432, 433, 0, 434, 435, - 436, 437, 438, 439, 440, 441, 0, 0, 442, 443, - 444, 445, 446, 0, 0, 448, 449, 450, 451, 452, - 453, 454, 0, 455, 0, 457, 458, 459, 460, 461, - 0, 0, 462, 0, 0, 463, 464, 465, 466, 467, - 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, - 478, 479, 480, 481, 482, 483, 0, 0, 0, 1698, - 1699, 1700, 0, 1701, 1702, 1703, 1704, 1705, 1706, 1384, - 0, 0, 1385, 0, 0, 0, 1386, 1387, 1388, 1389, - 1390, 1391, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1392, 0, 1384, 0, - 0, 1385, 0, 0, 1394, 1386, 1387, 1388, 1389, 1390, - 1391, 1395, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1392, 0, 0, 0, 0, - 0, 0, 0, 1394, 1384, 0, 1396, 1385, 0, 0, - 1395, 1386, 1387, 1388, 1389, 1390, 1391, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1392, 0, 1384, 0, 1396, 1385, 0, 0, 1394, - 1386, 1387, 1388, 1389, 1390, 1391, 1395, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1392, 0, 0, 0, 0, 0, 0, 0, 1394, 0, - 0, 1396, 0, 0, 0, 1395, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1396, 0, 0, 0, 0, 0, 0, 1397, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1398, 0, 0, 0, 0, 1399, 0, - 0, 1384, 0, 0, 1385, 0, 1397, 0, 1386, 1387, - 1388, 1389, 1390, 1391, 0, 0, 0, 0, 0, 0, - 1400, 1401, 1398, 0, 0, 0, 0, 1399, 1392, 0, - 0, 0, 0, 0, 0, 1402, 1394, 0, 0, 0, - 0, 0, 1397, 1395, 0, 0, 0, 0, 0, 1400, - 1401, 0, 0, 0, 0, 0, 0, 0, 1398, 0, - 0, 0, 0, 1399, 1402, 0, 0, 0, 1396, 0, - 0, 1397, 0, 1403, 0, 0, 1404, 0, 0, 0, - 0, 0, 0, 0, 0, 1400, 1401, 1398, 0, 0, - 1405, 0, 1399, 1406, 0, 0, 0, 0, 0, 0, - 1402, 0, 1403, 0, 0, 1404, 0, 0, 0, 0, - 0, 0, 0, 0, 1400, 1401, 0, 0, 0, 1405, - 0, 0, 1406, 0, 0, 0, 0, 0, 0, 1402, - 0, 0, 0, 0, 0, 0, 0, 0, 1403, 0, - 0, 1404, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1405, 0, 0, 1406, 0, - 0, 0, 0, 0, 0, 0, 0, 1403, 0, 1397, - 1404, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1407, 0, 1405, 1398, 0, 1406, 0, 0, - 1399, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1407, 1400, 1401, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1402, 0, 0, - 0, 1384, 0, 0, 1385, 0, 0, 0, 1386, 1387, - 1388, 1389, 1390, 1391, 0, 0, 0, 1407, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1392, 0, - 0, 0, 0, 0, 0, 1403, 1394, 0, 1404, 0, - 0, 0, 0, 1395, 0, 0, 1407, 0, 0, 0, - 0, 0, 1405, 0, 1408, 1406, 0, 1409, 1410, 1411, - 0, 1412, 1413, 1414, 1415, 1416, 1417, 0, 1396, 0, - 0, 2362, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1408, 0, 0, 1409, 1410, 1411, 0, - 1412, 1413, 1414, 1415, 1416, 1417, 0, 0, 0, 0, - 2452, 0, 0, 0, 0, 1384, 0, 0, 1385, 0, - 0, 0, 1386, 1387, 1388, 1389, 1390, 1391, 0, 1408, - 0, 0, 1409, 1410, 1411, 0, 1412, 1413, 1414, 1415, - 1416, 1417, 1392, 0, 0, 0, 2604, 0, 0, 0, - 1394, 0, 0, 0, 1407, 0, 0, 1395, 1408, 0, - 0, 1409, 1410, 1411, 0, 1412, 1413, 1414, 1415, 1416, - 1417, 0, 0, 0, 0, 2626, 0, 1384, 0, 1397, - 1385, 0, 1396, 0, 1386, 1387, 1388, 1389, 1390, 1391, - 0, 0, 0, 0, 0, 1398, 0, 0, 0, 0, - 1399, 0, 0, 0, 1392, 0, 0, 0, 0, 0, - 0, 0, 1394, 0, 0, 0, 0, 0, 0, 1395, - 0, 0, 1400, 1401, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1402, 0, 0, - 0, 0, 1384, 0, 1396, 1385, 0, 0, 0, 1386, - 1387, 1388, 1389, 1390, 1391, 0, 1408, 0, 0, 1409, - 1410, 1411, 0, 1412, 1413, 1414, 1415, 1416, 1417, 1392, - 0, 0, 0, 2629, 0, 1403, 0, 1394, 1404, 0, - 0, 0, 0, 1397, 1395, 0, 0, 0, 0, 0, - 0, 0, 1405, 0, 0, 1406, 0, 0, 0, 1398, - 0, 0, 0, 0, 1399, 0, 0, 0, 0, 1396, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1400, 1401, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1402, 0, 0, 0, 1397, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1384, 1398, 0, 1385, 0, 0, 1399, 1386, 1387, 1388, - 1389, 1390, 1391, 0, 0, 0, 0, 0, 0, 1403, - 0, 0, 1404, 0, 1407, 0, 0, 1392, 1400, 1401, - 0, 0, 0, 0, 0, 1394, 1405, 0, 0, 1406, - 0, 0, 1395, 1402, 0, 0, 0, 0, 0, 0, - 1397, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1398, 1396, 0, 0, - 0, 1399, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1403, 0, 0, 1404, 0, 0, 0, 0, 0, - 0, 0, 0, 1400, 1401, 0, 0, 0, 1405, 0, - 0, 1406, 0, 0, 0, 0, 0, 0, 1402, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1408, 0, 1407, 1409, - 1410, 1411, 0, 1412, 1413, 1414, 1415, 1416, 1417, 0, - 0, 0, 0, 2768, 0, 0, 1403, 0, 0, 1404, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1405, 1384, 0, 1406, 1385, 1397, 0, - 0, 1386, 1387, 1388, 1389, 1390, 1391, 0, 0, 0, - 0, 0, 0, 0, 1398, 0, 0, 0, 0, 1399, - 1407, 1392, 0, 0, 0, 0, 0, 0, 0, 1394, - 0, 0, 0, 0, 0, 0, 1395, 0, 0, 0, - 0, 1400, 1401, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1402, 0, 0, 0, - 1408, 1396, 0, 1409, 1410, 1411, 0, 1412, 1413, 1414, - 1415, 1416, 1417, 0, 0, 0, 0, 2831, 0, 0, - 0, 0, 0, 0, 0, 1407, 0, 0, 0, 0, - 0, 0, 0, 0, 1403, 0, 0, 1404, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1405, 0, 0, 1406, 0, 0, 0, 0, 0, - 0, 0, 1408, 0, 0, 1409, 1410, 1411, 0, 1412, - 1413, 1414, 1415, 1416, 1417, 0, 0, 0, 0, 2938, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1397, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1398, 0, - 0, 0, 0, 1399, 0, 0, 0, 1408, 0, 0, - 1409, 1410, 1411, 0, 1412, 1413, 1414, 1415, 1416, 1417, - 0, 0, 0, 1407, 2986, 1400, 1401, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1402, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1403, 0, - 0, 1404, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1405, 0, 0, 1406, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1408, 0, 0, 1409, 1410, - 1411, 0, 1412, 1413, 1414, 1415, 1416, 1417, 0, 0, - 0, 0, 2999, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1407, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1134, 0, 1408, - 0, 0, 1409, 1410, 1411, 0, 1412, 1413, 1414, 1415, - 1416, 1417, 0, 0, 1569, 94, 95, 96, 97, 98, - 99, 100, 101, 1135, 102, 103, 104, 1136, 1137, 1138, - 1139, 1140, 1141, 1142, 105, 106, 1143, 107, 108, 109, - 786, 111, 112, 113, 787, 788, 789, 790, 791, 1144, - 119, 120, 121, 122, 123, 124, 1145, 1146, 125, 126, - 792, 793, 129, 1147, 130, 131, 132, 133, 794, 1148, - 795, 1149, 136, 137, 138, 139, 140, 141, 796, 143, - 144, 145, 1150, 146, 147, 148, 149, 150, 151, 1151, - 797, 153, 154, 155, 798, 799, 800, 801, 1152, 1153, - 802, 161, 162, 163, 164, 165, 166, 167, 803, 804, - 170, 1154, 171, 1155, 172, 173, 174, 175, 176, 177, - 1156, 178, 179, 180, 181, 182, 1157, 1158, 183, 184, - 185, 186, 187, 1159, 188, 189, 190, 1160, 191, 192, - 193, 1161, 194, 195, 196, 197, 805, 199, 200, 201, - 202, 203, 806, 1162, 205, 1163, 206, 207, 807, 209, - 1164, 210, 1165, 211, 808, 1166, 809, 214, 215, 810, - 811, 218, 1167, 219, 1168, 812, 813, 222, 1169, 223, - 224, 225, 226, 227, 228, 229, 814, 231, 232, 233, - 234, 1170, 235, 236, 237, 238, 239, 240, 1171, 241, - 815, 816, 244, 245, 246, 247, 248, 817, 818, 1172, - 819, 1173, 252, 820, 821, 255, 822, 257, 258, 259, - 260, 261, 262, 1174, 1175, 263, 823, 265, 824, 1176, - 267, 268, 269, 1177, 1178, 270, 271, 272, 273, 274, - 825, 276, 277, 278, 279, 280, 281, 282, 283, 284, - 285, 286, 287, 288, 289, 290, 291, 292, 293, 826, - 827, 828, 297, 298, 299, 829, 1179, 301, 302, 830, - 304, 1180, 831, 306, 832, 308, 309, 310, 1181, 311, - 312, 1182, 1183, 313, 314, 315, 1184, 1185, 316, 833, - 834, 319, 835, 836, 322, 323, 324, 325, 326, 327, - 328, 329, 330, 331, 1186, 332, 333, 837, 335, 336, - 838, 338, 339, 340, 1187, 341, 342, 343, 344, 345, - 346, 1188, 347, 348, 349, 839, 351, 352, 353, 354, - 1189, 355, 356, 357, 358, 359, 360, 361, 362, 363, - 364, 365, 366, 367, 1190, 368, 369, 840, 371, 372, - 373, 841, 375, 376, 377, 378, 379, 380, 381, 382, - 383, 384, 385, 1191, 386, 387, 388, 389, 390, 842, - 392, 843, 394, 395, 396, 844, 398, 399, 845, 401, - 1192, 402, 403, 404, 405, 406, 407, 408, 409, 410, - 411, 412, 413, 846, 415, 847, 417, 1193, 418, 419, - 1194, 420, 848, 422, 423, 424, 425, 426, 1195, 849, - 850, 1196, 1197, 429, 430, 851, 432, 852, 1198, 434, - 435, 853, 437, 438, 439, 440, 441, 1199, 1200, 442, - 443, 444, 445, 446, 854, 1201, 448, 449, 450, 451, - 452, 1202, 856, 1203, 455, 857, 457, 458, 459, 460, - 461, 1204, 1205, 462, 1206, 1207, 463, 464, 465, 466, - 467, 468, 858, 859, 860, 861, 862, 863, 864, 865, - 866, 867, 868, 480, 481, 482, 483, 507, 0, 0, - 0, 0, 0, 0, 0, 0, 1818, 0, 0, 0, - 0, 0, 0, 0, 0, 94, 95, 96, 97, 98, - 99, 100, 101, 0, 102, 103, 104, 0, 0, 0, - 0, 0, 0, 0, 105, 106, 0, 107, 108, 109, + 482, 483, 0, 0, 0, 0, 0, 0, 0, 948, + 949, 699, 0, 0, 0, 0, 951, 0, 952, 0, + 0, 0, 0, 953, 0, 954, 955, 0, 0, 94, + 95, 96, 97, 98, 99, 100, 101, 0, 102, 103, + 104, 0, 0, 0, 0, 0, 0, 0, 105, 106, + 0, 107, 108, 109, 700, 111, 112, 113, 0, 701, + 702, 703, 704, 0, 119, 120, 121, 122, 123, 124, + 0, 0, 125, 126, 705, 706, 129, 0, 130, 131, + 132, 133, 0, 0, 707, 0, 136, 137, 138, 139, + 140, 141, 708, 143, 144, 145, 0, 146, 147, 148, + 149, 150, 151, 0, 709, 153, 154, 155, 710, 711, + 712, 713, 0, 0, 714, 161, 162, 163, 164, 165, + 166, 167, 715, 716, 170, 0, 171, 0, 172, 173, + 174, 175, 176, 177, 0, 178, 179, 180, 181, 182, + 0, 0, 183, 184, 717, 186, 187, 0, 188, 189, + 190, 0, 191, 192, 193, 0, 194, 195, 196, 197, + 0, 199, 200, 201, 202, 203, 0, 0, 205, 0, + 206, 207, 718, 209, 0, 210, 0, 211, 719, 0, + 720, 214, 215, 0, 721, 218, 0, 219, 0, 0, + 0, 222, 0, 223, 224, 225, 226, 227, 228, 229, + 723, 231, 232, 233, 234, 0, 235, 236, 237, 238, + 239, 240, 0, 241, 724, 0, 244, 245, 246, 247, + 248, 725, 726, 0, 727, 0, 252, 728, 729, 255, + 730, 257, 258, 259, 260, 261, 262, 0, 0, 263, + 731, 265, 732, 0, 267, 268, 269, 0, 0, 270, + 271, 272, 273, 274, 733, 276, 277, 278, 279, 280, + 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, + 291, 292, 293, 734, 735, 736, 297, 298, 299, 0, + 0, 301, 302, 737, 304, 0, 0, 306, 738, 308, + 309, 310, 0, 311, 312, 0, 0, 313, 314, 315, + 0, 0, 316, 0, 739, 319, 740, 0, 322, 323, + 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, + 333, 0, 335, 336, 0, 338, 339, 340, 0, 341, + 342, 343, 344, 345, 346, 0, 347, 348, 349, 741, + 351, 352, 353, 354, 0, 355, 356, 357, 358, 359, + 360, 361, 362, 363, 364, 365, 366, 367, 0, 368, + 369, 742, 371, 372, 373, 743, 375, 376, 377, 378, + 379, 380, 381, 382, 383, 384, 385, 0, 386, 387, + 388, 389, 390, 744, 392, 745, 394, 395, 396, 746, + 398, 399, 747, 401, 0, 402, 403, 404, 405, 406, + 407, 408, 409, 410, 411, 412, 413, 748, 415, 0, + 417, 0, 418, 419, 0, 420, 749, 422, 423, 424, + 425, 426, 0, 750, 751, 0, 0, 429, 430, 0, + 432, 0, 0, 434, 435, 752, 437, 438, 439, 440, + 441, 0, 0, 442, 443, 444, 445, 446, 753, 0, + 448, 449, 450, 451, 452, 0, 754, 0, 455, 755, + 457, 458, 459, 460, 461, 0, 0, 462, 0, 0, + 463, 464, 465, 466, 467, 468, 0, 507, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 480, 481, 482, + 483, 0, 0, 0, 0, 94, 95, 96, 97, 98, + 99, 100, 101, 0, 102, 103, 104, 0, -928, 0, + 0, -928, 2401, 0, 105, 106, 0, 107, 108, 109, 0, 111, 112, 113, 114, 115, 0, 117, 118, 0, 119, 120, 121, 122, 123, 124, 0, 0, 125, 126, 127, 128, 129, 0, 130, 131, 132, 133, 134, 0, 0, 0, 136, 137, 138, 139, 140, 141, 0, 143, 144, 145, 0, 146, 147, 148, 149, 150, 151, 0, - 0, 153, 154, 155, 0, 0, 0, 0, 0, 0, + -275, 153, 154, 155, 0, 0, 0, 0, 0, 0, 0, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 0, 171, 0, 172, 173, 174, 175, 176, 177, 0, 178, 179, 180, 181, 182, 0, 0, 183, 184, 185, 186, 187, 0, 188, 189, 190, 0, 191, 192, 193, 0, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 0, 205, 0, 206, 207, 208, 209, - 0, 210, 0, 211, 0, 0, 0, 214, 215, 510, + 0, 210, 0, 211, 0, 0, -275, 214, 215, 510, 0, 218, 0, 219, 0, 220, 221, 222, 0, 223, 224, 225, 226, 227, 228, 229, 0, 231, 232, 233, 234, 0, 235, 236, 237, 238, 239, 240, 0, 241, - 0, 243, 244, 245, 246, 247, 248, 249, 250, 0, - 251, 0, 252, 0, 0, 255, 0, 257, 258, 259, - 260, 261, 262, 0, 0, 263, 0, 265, 0, 0, + -275, 243, 244, 245, 246, 247, 248, 249, 250, 0, + 251, 0, 252, 0, 0, 255, -275, 257, 258, 259, + 260, 261, 262, 0, 0, 263, -275, 265, 0, 0, 267, 268, 269, 0, 0, 270, 271, 272, 273, 274, 511, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, - 0, 296, 297, 298, 299, 300, 0, 301, 302, 0, + -275, 296, 297, 298, 299, 300, 0, 301, 302, 0, 304, 0, 305, 306, 307, 308, 309, 310, 0, 311, 312, 0, 0, 313, 314, 315, 0, 0, 316, 317, 0, 319, 0, 321, 322, 323, 324, 325, 326, 327, @@ -5611,1470 +4959,695 @@ static const yytype_int16 yytable[] = 337, 338, 339, 340, 0, 341, 342, 343, 344, 345, 346, 0, 347, 348, 349, 350, 351, 352, 353, 354, 0, 355, 356, 357, 358, 359, 360, 361, 362, 363, - 364, 365, 366, 367, 0, 368, 369, 0, 371, 372, + 364, 365, 366, 367, 0, 368, 369, -275, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 0, 386, 387, 388, 389, 390, 0, 392, 393, 394, 395, 396, 0, 398, 399, 400, 401, 0, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 513, 415, 416, 417, 0, 418, 419, - 0, 420, 0, 422, 423, 424, 425, 426, 0, 427, + 0, 420, -275, 422, 423, 424, 425, 426, 0, 427, 428, 0, 0, 429, 430, 431, 432, 433, 0, 434, 435, 436, 437, 438, 439, 440, 441, 0, 0, 442, 443, 444, 445, 446, 0, 0, 448, 449, 450, 451, 452, 453, 454, 0, 455, 0, 457, 458, 459, 460, 461, 0, 0, 462, 0, 0, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, - 477, 478, 479, 480, 481, 482, 483, 785, 1307, 583, - 0, 0, 0, 892, 0, 0, 2313, 0, 0, 0, - 0, 0, 0, 0, 0, 94, 95, 96, 97, 98, - 99, 100, 101, 0, 102, 103, 104, 0, 0, 0, - 0, 0, 0, 0, 105, 106, 0, 107, 108, 109, - 786, 111, 112, 113, 787, 788, 789, 790, 791, 0, - 119, 120, 121, 122, 123, 124, 0, 0, 125, 126, - 792, 793, 129, 0, 130, 131, 132, 133, 794, 0, - 795, 0, 136, 137, 138, 139, 140, 141, 796, 143, - 144, 145, 0, 146, 147, 148, 149, 150, 151, 0, - 797, 153, 154, 155, 798, 799, 800, 801, 0, 0, - 802, 161, 162, 163, 164, 165, 166, 167, 803, 804, - 170, 1444, 171, 0, 172, 173, 174, 175, 176, 177, - 0, 178, 179, 180, 181, 182, 0, 0, 183, 184, - 185, 186, 187, 0, 188, 189, 190, 0, 191, 192, - 193, 0, 194, 195, 196, 197, 805, 199, 200, 201, - 202, 203, 806, 1308, 205, 0, 206, 207, 807, 209, - 0, 210, 0, 211, 808, 0, 809, 214, 215, 810, - 811, 218, 0, 219, 0, 812, 813, 222, 0, 223, - 224, 225, 226, 227, 228, 229, 814, 231, 232, 233, - 234, 0, 235, 236, 237, 238, 239, 240, 0, 241, - 815, 816, 244, 245, 246, 247, 248, 817, 818, 0, - 819, 0, 252, 820, 821, 255, 822, 257, 258, 259, - 260, 261, 262, 0, 0, 263, 823, 265, 824, 0, - 267, 268, 269, 0, 0, 270, 271, 272, 273, 274, - 825, 276, 277, 278, 279, 280, 281, 282, 283, 284, - 285, 286, 287, 288, 289, 290, 291, 292, 293, 826, - 827, 828, 297, 298, 299, 829, 0, 301, 302, 830, - 304, 0, 831, 306, 832, 308, 309, 310, 0, 311, - 312, 1309, 0, 313, 314, 315, 0, 0, 316, 833, - 834, 319, 835, 836, 322, 323, 324, 325, 326, 327, - 328, 329, 330, 331, 0, 332, 333, 837, 335, 336, - 838, 338, 339, 340, 0, 341, 342, 343, 344, 345, - 346, 0, 347, 348, 349, 839, 351, 352, 353, 354, - 0, 355, 356, 357, 358, 359, 360, 361, 362, 363, - 364, 365, 366, 367, 0, 368, 369, 840, 371, 372, - 373, 841, 375, 376, 377, 378, 379, 380, 381, 382, - 383, 384, 385, 0, 386, 387, 388, 389, 390, 842, - 392, 843, 394, 395, 396, 844, 398, 399, 845, 401, - 0, 402, 403, 404, 405, 406, 407, 408, 409, 410, - 411, 412, 413, 846, 415, 847, 417, 0, 418, 419, - 0, 420, 848, 422, 423, 424, 425, 426, 0, 849, - 850, 0, 0, 429, 430, 851, 432, 852, 1310, 434, - 435, 853, 437, 438, 439, 440, 441, 0, 0, 442, - 443, 444, 445, 446, 854, 0, 448, 449, 450, 451, - 452, 1202, 856, 0, 455, 857, 457, 458, 459, 460, - 461, 0, 0, 462, 0, 0, 463, 464, 465, 466, - 467, 468, 858, 859, 860, 861, 862, 863, 864, 865, - 866, 867, 868, 480, 481, 482, 483, 785, 1307, 583, - 0, 0, 0, 892, 1311, 1312, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 94, 95, 96, 97, 98, - 99, 100, 101, 0, 102, 103, 104, 0, 0, 0, - 0, 0, 0, 0, 105, 106, 0, 107, 108, 109, - 786, 111, 112, 113, 787, 788, 789, 790, 791, 0, - 119, 120, 121, 122, 123, 124, 0, 0, 125, 126, - 792, 793, 129, 0, 130, 131, 132, 133, 794, 0, - 795, 0, 136, 137, 138, 139, 140, 141, 796, 143, - 144, 145, 0, 146, 147, 148, 149, 150, 151, 0, - 797, 153, 154, 155, 798, 799, 800, 801, 0, 0, - 802, 161, 162, 163, 164, 165, 166, 167, 803, 804, - 170, 1446, 171, 0, 172, 173, 174, 175, 176, 177, - 0, 178, 179, 180, 181, 182, 0, 0, 183, 184, - 185, 186, 187, 0, 188, 189, 190, 0, 191, 192, - 193, 0, 194, 195, 196, 197, 805, 199, 200, 201, - 202, 203, 806, 1308, 205, 0, 206, 207, 807, 209, - 0, 210, 0, 211, 808, 0, 809, 214, 215, 810, - 811, 218, 0, 219, 0, 812, 813, 222, 0, 223, - 224, 225, 226, 227, 228, 229, 814, 231, 232, 233, - 234, 0, 235, 236, 237, 238, 239, 240, 0, 241, - 815, 816, 244, 245, 246, 247, 248, 817, 818, 0, - 819, 0, 252, 820, 821, 255, 822, 257, 258, 259, - 260, 261, 262, 0, 0, 263, 823, 265, 824, 0, - 267, 268, 269, 0, 0, 270, 271, 272, 273, 274, - 825, 276, 277, 278, 279, 280, 281, 282, 283, 284, - 285, 286, 287, 288, 289, 290, 291, 292, 293, 826, - 827, 828, 297, 298, 299, 829, 0, 301, 302, 830, - 304, 0, 831, 306, 832, 308, 309, 310, 0, 311, - 312, 1309, 0, 313, 314, 315, 0, 0, 316, 833, - 834, 319, 835, 836, 322, 323, 324, 325, 326, 327, - 328, 329, 330, 331, 0, 332, 333, 837, 335, 336, - 838, 338, 339, 340, 0, 341, 342, 343, 344, 345, - 346, 0, 347, 348, 349, 839, 351, 352, 353, 354, - 0, 355, 356, 357, 358, 359, 360, 361, 362, 363, - 364, 365, 366, 367, 0, 368, 369, 840, 371, 372, - 373, 841, 375, 376, 377, 378, 379, 380, 381, 382, - 383, 384, 385, 0, 386, 387, 388, 389, 390, 842, - 392, 843, 394, 395, 396, 844, 398, 399, 845, 401, - 0, 402, 403, 404, 405, 406, 407, 408, 409, 410, - 411, 412, 413, 846, 415, 847, 417, 0, 418, 419, - 0, 420, 848, 422, 423, 424, 425, 426, 0, 849, - 850, 0, 0, 429, 430, 851, 432, 852, 1310, 434, - 435, 853, 437, 438, 439, 440, 441, 0, 0, 442, - 443, 444, 445, 446, 854, 0, 448, 449, 450, 451, - 452, 1202, 856, 0, 455, 857, 457, 458, 459, 460, - 461, 0, 0, 462, 0, 0, 463, 464, 465, 466, - 467, 468, 858, 859, 860, 861, 862, 863, 864, 865, - 866, 867, 868, 480, 481, 482, 483, 785, 1307, 583, - 0, 0, 0, 892, 1311, 1312, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 94, 95, 96, 97, 98, + 477, 478, 479, 480, 481, 482, 483, 93, 0, 508, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1017, 94, 95, 96, 97, 98, 99, 100, 101, 0, 102, 103, 104, 0, 0, 0, 0, 0, 0, 0, 105, 106, 0, 107, 108, 109, - 786, 111, 112, 113, 787, 788, 789, 790, 791, 0, - 119, 120, 121, 122, 123, 124, 0, 0, 125, 126, - 792, 793, 129, 0, 130, 131, 132, 133, 794, 0, - 795, 0, 136, 137, 138, 139, 140, 141, 796, 143, + 110, 111, 112, 113, 114, 115, 116, 117, 118, 0, + 119, 120, 121, 122, 123, 124, 0, 899, 125, 126, + 127, 128, 129, 0, 130, 131, 132, 133, 902, 0, + 903, 0, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 0, 146, 147, 148, 149, 150, 151, 0, - 797, 153, 154, 155, 798, 799, 800, 801, 0, 0, - 802, 161, 162, 163, 164, 165, 166, 167, 803, 804, + 152, 153, 154, 155, 904, 905, 906, 907, 908, 909, + 910, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 0, 171, 0, 172, 173, 174, 175, 176, 177, 0, 178, 179, 180, 181, 182, 0, 0, 183, 184, 185, 186, 187, 0, 188, 189, 190, 0, 191, 192, - 193, 0, 194, 195, 196, 197, 805, 199, 200, 201, - 202, 203, 806, 1308, 205, 0, 206, 207, 807, 209, - 0, 210, 0, 211, 808, 0, 809, 214, 215, 810, - 811, 218, 0, 219, 0, 812, 813, 222, 0, 223, - 224, 225, 226, 227, 228, 229, 814, 231, 232, 233, + 193, 0, 194, 195, 196, 197, 198, 199, 200, 201, + 202, 203, 915, 0, 205, 0, 206, 207, 208, 209, + 0, 210, 0, 211, 212, 0, 213, 214, 215, 216, + 217, 218, 0, 219, 0, 220, 221, 222, 0, 223, + 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 0, 235, 236, 237, 238, 239, 240, 0, 241, - 815, 816, 244, 245, 246, 247, 248, 817, 818, 0, - 819, 0, 252, 820, 821, 255, 822, 257, 258, 259, - 260, 261, 262, 0, 0, 263, 823, 265, 824, 0, - 267, 268, 269, 0, 0, 270, 271, 272, 273, 274, - 825, 276, 277, 278, 279, 280, 281, 282, 283, 284, - 285, 286, 287, 288, 289, 290, 291, 292, 293, 826, - 827, 828, 297, 298, 299, 829, 0, 301, 302, 830, - 304, 0, 831, 306, 832, 308, 309, 310, 0, 311, - 312, 1309, 0, 313, 314, 315, 0, 0, 316, 833, - 834, 319, 835, 836, 322, 323, 324, 325, 326, 327, - 328, 329, 330, 331, 0, 332, 333, 837, 335, 336, - 838, 338, 339, 340, 0, 341, 342, 343, 344, 345, - 346, 0, 347, 348, 349, 839, 351, 352, 353, 354, + 242, 243, 244, 245, 246, 247, 248, 249, 250, 0, + 251, 0, 252, 253, 254, 255, 256, 257, 258, 259, + 260, 261, 262, 2144, 0, 263, 264, 265, 266, 0, + 267, 268, 269, 923, 924, 270, 271, 272, 273, 274, + 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, + 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, + 295, 296, 297, 298, 299, 300, 0, 301, 302, 303, + 304, 0, 929, 306, 307, 308, 309, 310, 0, 311, + 312, 0, 615, 313, 314, 315, 0, 0, 316, 317, + 318, 319, 320, 932, 322, 323, 324, 325, 326, 327, + 328, 329, 330, 331, 0, 332, 333, 933, 335, 336, + 337, 338, 339, 340, 0, 341, 342, 343, 344, 345, + 346, 0, 347, 348, 349, 350, 351, 352, 353, 354, 0, 355, 356, 357, 358, 359, 360, 361, 362, 363, - 364, 365, 366, 367, 0, 368, 369, 840, 371, 372, - 373, 841, 375, 376, 377, 378, 379, 380, 381, 382, - 383, 384, 385, 0, 386, 387, 388, 389, 390, 842, - 392, 843, 394, 395, 396, 844, 398, 399, 845, 401, + 364, 365, 366, 367, 0, 368, 369, 370, 371, 372, + 373, 374, 2145, 376, 377, 378, 379, 380, 381, 382, + 383, 384, 385, 26, 386, 387, 388, 389, 390, 936, + 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 0, 402, 403, 404, 405, 406, 407, 408, 409, 410, - 411, 412, 413, 846, 415, 847, 417, 0, 418, 419, - 0, 420, 848, 422, 423, 424, 425, 426, 0, 849, - 850, 0, 0, 429, 430, 851, 432, 852, 1310, 434, - 435, 853, 437, 438, 439, 440, 441, 0, 0, 442, - 443, 444, 445, 446, 854, 0, 448, 449, 450, 451, - 452, 1202, 856, 0, 455, 857, 457, 458, 459, 460, - 461, 0, 0, 462, 0, 0, 463, 464, 465, 466, - 467, 468, 858, 859, 860, 861, 862, 863, 864, 865, - 866, 867, 868, 480, 481, 482, 483, 0, 0, 1384, - 0, 0, 1385, 0, 1311, 1312, 1386, 1387, 1388, 1389, - 1390, 1391, 1384, 0, 0, 1385, 0, 0, 0, 1386, - 1387, 1388, 1389, 1390, 1391, 0, 1392, 0, 0, 0, - 1831, 0, 0, 0, 1394, 0, 0, 0, 0, 1392, - 0, 1395, 0, 0, 0, 0, 0, 1394, 1384, 0, - 0, 1385, 0, 0, 1395, 1386, 1387, 1388, 1389, 1390, - 1391, 1384, 0, 0, 1385, 0, 1396, 0, 1386, 1387, - 1388, 1389, 1390, 1391, 0, 1392, 0, 0, 0, 1396, - 0, 0, 0, 1394, 0, 0, 0, 0, 1392, 0, - 1395, 2044, 0, 0, 0, 0, 1394, 1384, 0, 0, - 1385, 0, 0, 1395, 1386, 1387, 1388, 1389, 1390, 1391, - 0, 0, 0, 0, 0, 1396, 0, 1832, 0, 0, - 0, 0, 0, 0, 1392, 0, 0, 0, 1396, 0, - 0, 0, 1394, 0, 0, 0, 0, 0, 0, 1395, - 0, 0, 1384, 0, 0, 1385, 0, 0, 0, 1386, - 1387, 1388, 1389, 1390, 1391, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1396, 0, 0, 1397, 0, 1392, - 2083, 0, 2089, 0, 0, 2084, 0, 1394, 0, 0, - 1397, 0, 0, 1398, 1395, 0, 0, 0, 1399, 0, - 0, 0, 0, 0, 0, 0, 1398, 0, 0, 0, - 0, 1399, 0, 0, 0, 3086, 0, 0, 0, 1396, - 1400, 1401, 0, 0, 0, 0, 1397, 0, 0, 0, - 0, 0, 0, 1400, 1401, 1402, 0, 0, 0, 1397, - 0, 0, 1398, 0, 0, 0, 0, 1399, 1402, 0, - 0, 0, 0, 0, 0, 1398, 0, 0, 0, 0, - 1399, 0, 0, 0, 0, 0, 0, 0, 0, 1400, - 1401, 0, 0, 1403, 0, 1397, 1404, 0, 0, 0, - 0, 0, 1400, 1401, 1402, 0, 1403, 0, 0, 1404, - 1405, 1398, 0, 1406, 0, 0, 1399, 1402, 0, 0, - 0, 0, 0, 1405, 0, 0, 1406, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1400, 1401, - 1397, 0, 1403, 0, 0, 1404, 0, 0, 0, 0, - 0, 0, 0, 1402, 0, 1403, 1398, 0, 1404, 1405, - 0, 1399, 1406, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1405, 0, 0, 1406, 0, 0, 0, 0, - 0, 0, 0, 1400, 1401, 3087, 0, 0, 0, 0, - 0, 1403, 0, 0, 1404, 0, 0, 0, 1402, 0, - 0, 0, 1407, 0, 0, 0, 0, 0, 1405, 0, - 0, 1406, 0, 0, 0, 1407, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 2056, - 0, 0, 0, 0, 0, 0, 1403, 0, 0, 1404, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1407, 0, 1405, 0, 0, 1406, 0, 0, 0, - 0, 0, 1836, 0, 1407, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1407, 0, 0, 0, 1408, 0, 0, 1409, 1410, 1411, - 0, 1412, 1413, 1414, 1415, 1416, 1417, 1408, 0, 0, - 1409, 1410, 1411, 0, 1412, 1413, 1414, 1415, 1416, 1417, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1407, 0, 0, 0, 0, - 0, 0, 0, 1408, 0, 0, 1409, 1410, 1411, 0, - 1412, 1413, 1414, 1415, 1416, 1417, 1408, 0, 0, 1409, - 1410, 1411, 0, 1412, 1413, 1414, 1415, 1416, 1417, 0, - 0, 1384, 0, 0, 1385, 0, 0, 0, 1386, 1387, - 1388, 1389, 1390, 1391, 0, 0, 0, 0, 0, 0, - 0, 0, 1408, 0, 0, 1409, 1410, 1411, 1392, 1412, - 1413, 1414, 1415, 1416, 1417, 0, 1394, 0, 0, 0, - 0, 0, 0, 1395, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1408, 1396, 0, - 1409, 1410, 1411, 0, 1412, 1413, 1414, 1415, 1416, 1417, - 1384, 0, 0, 1385, 0, 0, 0, 1386, 1387, 1388, - 1389, 1390, 1391, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1392, 0, 1384, - 2096, 0, 1385, 0, 0, 1394, 1386, 1387, 1388, 1389, - 1390, 1391, 1395, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1392, 0, 0, 0, - 0, 0, 0, 0, 1394, 0, 0, 1396, 0, 0, - 0, 1395, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 2094, 0, 0, 0, 0, 1397, - 0, 0, 0, 0, 0, 0, 1396, 0, 0, 0, - 0, 0, 0, 0, 0, 1398, 0, 0, 1384, 0, - 1399, 1385, 0, 0, 0, 1386, 1387, 1388, 1389, 1390, - 1391, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1400, 1401, 0, 1392, 0, 0, 2361, 0, - 0, 0, 0, 1394, 0, 0, 0, 1402, 0, 0, - 1395, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1397, 0, - 0, 0, 0, 0, 0, 1396, 0, 0, 0, 0, - 0, 0, 0, 0, 1398, 1403, 0, 0, 1404, 1399, - 0, 0, 0, 0, 0, 0, 0, 1397, 0, 0, - 0, 0, 1405, 0, 0, 1406, 0, 0, 0, 0, - 0, 1400, 1401, 1398, 0, 0, 0, 0, 1399, 0, - 0, 0, 0, 0, 0, 0, 1402, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1400, 1401, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1402, 0, 0, 0, 0, - 0, 0, 0, 0, 1403, 0, 0, 1404, 0, 0, - 0, 0, 0, 0, 0, 0, 1397, 0, 0, 1384, - 0, 1405, 1385, 0, 1406, 0, 1386, 1387, 1388, 1389, - 1390, 1391, 1398, 1403, 1407, 0, 1404, 1399, 0, 0, - 0, 0, 0, 0, 0, 0, 1392, 0, 0, 0, - 1405, 0, 0, 1406, 1394, 0, 0, 0, 0, 1400, - 1401, 1395, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1402, 0, 0, 0, 0, 0, - 0, 0, 1384, 0, 0, 1385, 1396, 0, 0, 1386, - 1387, 1388, 1389, 1390, 1391, 1384, 0, 0, 1385, 0, - 0, 0, 1386, 0, 0, 1389, 1390, 1391, 0, 1392, - 0, 0, 1403, 1407, 0, 1404, 0, 1394, 0, 0, - 0, 0, 1392, 0, 1395, 0, 0, 0, 0, 1405, - 1394, 0, 1406, 0, 0, 0, 1408, 1395, 0, 1409, - 1410, 1411, 1407, 1412, 1413, 1414, 1415, 1416, 1417, 1396, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1396, 0, 0, 0, 0, 0, 0, 1384, - 0, 0, 1385, 0, 0, 2317, 1386, 0, 0, 1389, - 1390, 1391, 0, 0, 0, 0, 0, 1397, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1398, 1394, 0, 0, 0, 1399, 0, - 0, 1395, 0, 0, 0, 1408, 0, 0, 1409, 1410, - 1411, 1407, 1412, 1413, 1414, 1415, 1416, 1417, 0, 0, - 1400, 1401, 0, 0, 0, 0, 1396, 0, 0, 0, - 0, 0, 0, 0, 1408, 1402, 0, 1409, 1410, 1411, - 1397, 1412, 1413, 1414, 1415, 1416, 1417, 0, 0, 0, - 0, 0, 0, 1397, 0, 0, 1398, 0, 0, 0, - 0, 1399, 0, 0, 0, 0, 0, 0, 0, 1398, - 0, 0, 0, 1403, 1399, 0, 1404, 0, 0, 0, - 0, 0, 0, 1400, 1401, 0, 0, 0, 0, 0, - 1405, 0, 0, 1406, 0, 0, 1400, 1401, 1402, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1402, 0, 1408, 0, 0, 1409, 1410, 1411, 0, - 1412, 1413, 1414, 1415, 1416, 1417, 0, 1397, 0, 0, - 0, 0, 0, 0, 0, 0, 1403, 0, 0, 1404, - 0, 0, 0, 1398, 0, 0, 0, 0, 1399, 1403, - 0, 0, 1404, 1405, 0, 0, 1406, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1405, 0, 0, 0, - -1846, -1846, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1407, 0, 0, 1402, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, -1846, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1405, 0, 0, 0, 0, 1407, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1407, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1408, 0, 0, 1409, 1410, 1411, - 0, 1412, 1413, 1414, 1415, 1416, 1417, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1407, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1408, 0, 0, - 1409, 1410, 1411, 0, 1412, 1413, 1414, 1415, 1851, 1417, - 1408, 0, 0, 1409, 1410, 1411, 0, 1412, 1413, 1414, - 1415, 1416, 1417, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1134, - 0, 1755, 0, 0, 1408, 0, 0, 1409, 1410, 1411, - 0, 1412, 1413, 1414, 1415, 1416, 1417, 94, 95, 96, - 97, 98, 99, 100, 101, 1135, 102, 103, 104, 1136, - 1137, 1138, 1139, 1140, 1141, 1142, 105, 106, 1143, 107, - 108, 109, 786, 111, 112, 113, 787, 788, 789, 790, - 791, 1144, 119, 120, 121, 122, 123, 124, 1145, 1146, - 125, 126, 792, 793, 129, 1147, 130, 131, 132, 133, - 794, 1148, 795, 1149, 136, 137, 138, 139, 140, 141, - 796, 143, 144, 145, 1150, 146, 147, 148, 149, 150, - 151, 1151, 797, 153, 154, 155, 798, 799, 800, 801, - 1152, 1153, 802, 161, 162, 163, 164, 165, 166, 167, - 803, 804, 170, 1154, 171, 1155, 172, 173, 174, 175, - 176, 177, 1156, 178, 179, 180, 181, 182, 1157, 1158, - 183, 184, 185, 186, 187, 1159, 188, 189, 190, 1160, - 191, 192, 193, 1161, 194, 195, 196, 197, 805, 199, - 200, 201, 202, 203, 806, 1162, 205, 1163, 206, 207, - 807, 209, 1164, 210, 1165, 211, 808, 1166, 809, 214, - 215, 810, 811, 218, 1167, 219, 1168, 812, 813, 222, - 1169, 223, 224, 225, 226, 227, 228, 229, 814, 231, - 232, 233, 234, 1170, 235, 236, 237, 238, 239, 240, - 1171, 241, 815, 816, 244, 245, 246, 247, 248, 817, - 818, 1172, 819, 1173, 252, 820, 821, 255, 822, 257, - 258, 259, 260, 261, 262, 1174, 1175, 263, 823, 265, - 824, 1176, 267, 268, 269, 1177, 1178, 270, 271, 272, - 273, 274, 825, 276, 277, 278, 279, 280, 281, 282, - 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, - 293, 826, 827, 828, 297, 298, 299, 829, 1179, 301, - 302, 830, 304, 1180, 831, 306, 832, 308, 309, 310, - 1181, 311, 312, 1182, 1183, 313, 314, 315, 1184, 1185, - 316, 833, 834, 319, 835, 836, 322, 323, 324, 325, - 326, 327, 328, 329, 330, 331, 1186, 332, 333, 837, - 335, 336, 838, 338, 339, 340, 1187, 341, 342, 343, - 344, 345, 346, 1188, 347, 348, 349, 839, 351, 352, - 353, 354, 1189, 355, 356, 357, 358, 359, 360, 361, - 362, 363, 364, 365, 366, 367, 1190, 368, 369, 840, - 371, 372, 373, 841, 375, 376, 377, 378, 379, 380, - 381, 382, 383, 384, 385, 1191, 386, 387, 388, 389, - 390, 842, 392, 843, 394, 395, 396, 844, 398, 399, - 845, 401, 1192, 402, 403, 404, 405, 406, 407, 408, - 409, 410, 411, 412, 413, 846, 415, 847, 417, 1193, - 418, 419, 1194, 420, 848, 422, 423, 424, 425, 426, - 1195, 849, 850, 1196, 1197, 429, 430, 851, 432, 852, - 1198, 434, 435, 853, 437, 438, 439, 440, 441, 1199, - 1200, 442, 443, 444, 445, 446, 854, 1201, 448, 449, - 450, 451, 452, 1202, 856, 1203, 455, 857, 457, 458, - 459, 460, 461, 1204, 1205, 462, 1206, 1207, 463, 464, - 465, 466, 467, 468, 858, 859, 860, 861, 862, 863, - 864, 865, 866, 867, 868, 480, 481, 482, 483, 1134, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 94, 95, 96, - 97, 98, 99, 100, 101, 1135, 102, 103, 104, 1136, - 1137, 1138, 1139, 1140, 1141, 1142, 105, 106, 1143, 107, - 108, 109, 786, 111, 112, 113, 787, 788, 789, 790, - 791, 1144, 119, 120, 121, 122, 123, 124, 1145, 1146, - 125, 126, 792, 793, 129, 1147, 130, 131, 132, 133, - 794, 1148, 795, 1149, 136, 137, 138, 139, 140, 141, - 796, 143, 144, 145, 1150, 146, 147, 148, 149, 150, - 151, 1151, 797, 153, 154, 155, 798, 799, 800, 801, - 1152, 1153, 802, 161, 162, 163, 164, 165, 166, 167, - 803, 804, 170, 1154, 171, 1155, 172, 173, 174, 175, - 176, 177, 1156, 178, 179, 180, 181, 182, 1157, 1158, - 183, 184, 185, 186, 187, 1159, 188, 189, 190, 1160, - 191, 192, 193, 1161, 194, 195, 196, 197, 805, 199, - 200, 201, 202, 203, 806, 1162, 205, 1163, 206, 207, - 807, 209, 1164, 210, 1165, 211, 808, 1166, 809, 214, - 215, 810, 811, 218, 1167, 219, 1168, 812, 813, 222, - 1169, 223, 224, 225, 226, 227, 228, 229, 814, 231, - 232, 233, 234, 1170, 235, 236, 237, 238, 239, 240, - 1171, 241, 815, 816, 244, 245, 246, 247, 248, 817, - 818, 1172, 819, 1173, 252, 820, 821, 255, 822, 257, - 258, 259, 260, 261, 262, 1174, 1175, 263, 823, 265, - 824, 1176, 267, 268, 269, 1177, 1178, 270, 271, 272, - 273, 274, 825, 276, 277, 278, 279, 280, 281, 282, - 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, - 293, 826, 827, 828, 297, 298, 299, 829, 1179, 301, - 302, 830, 304, 1180, 831, 306, 832, 308, 309, 310, - 1181, 311, 312, 1182, 1183, 313, 314, 315, 1184, 1185, - 316, 833, 834, 319, 835, 836, 322, 323, 324, 325, - 326, 327, 328, 329, 330, 331, 1186, 332, 333, 837, - 335, 336, 838, 338, 339, 340, 1187, 341, 342, 343, - 344, 345, 346, 1188, 347, 348, 349, 839, 351, 352, - 353, 354, 1189, 355, 356, 357, 358, 359, 360, 361, - 362, 363, 364, 365, 366, 367, 1190, 368, 369, 840, - 371, 372, 373, 841, 375, 376, 377, 378, 379, 380, - 381, 382, 383, 384, 385, 1191, 386, 387, 388, 389, - 390, 842, 392, 843, 394, 395, 396, 844, 398, 399, - 845, 401, 1192, 402, 403, 404, 405, 406, 407, 408, - 409, 410, 411, 412, 413, 846, 415, 847, 417, 1193, - 418, 419, 1194, 420, 848, 422, 423, 424, 425, 426, - 1195, 849, 850, 1196, 1197, 429, 430, 851, 432, 852, - 1198, 434, 435, 853, 437, 438, 439, 440, 441, 1199, - 1200, 442, 443, 444, 445, 446, 854, 1201, 448, 449, - 450, 451, 452, 1202, 856, 1203, 455, 857, 457, 458, - 459, 460, 461, 1204, 1205, 462, 1206, 1207, 463, 464, - 465, 466, 467, 468, 858, 859, 860, 861, 862, 863, - 864, 865, 866, 867, 868, 480, 481, 482, 483, 1134, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 94, 95, 96, - 97, 1902, 99, 100, 101, 1135, 102, 103, 104, 1136, - 1137, 1138, 1139, 1140, 1141, 1142, 105, 106, 1143, 107, - 108, 109, 786, 111, 112, 113, 787, 788, 789, 790, - 791, 1144, 119, 120, 121, 122, 123, 124, 1145, 1146, - 125, 126, 792, 793, 129, 1147, 130, 131, 132, 133, - 794, 1148, 795, 1149, 136, 137, 138, 139, 140, 141, - 796, 143, 144, 145, 1150, 146, 147, 148, 149, 150, - 151, 1151, 797, 153, 154, 155, 798, 799, 800, 801, - 1152, 1153, 802, 161, 162, 163, 164, 165, 166, 167, - 803, 804, 170, 1154, 171, 1155, 172, 173, 174, 175, - 176, 177, 1156, 178, 179, 180, 181, 182, 1157, 1158, - 183, 184, 185, 1903, 187, 1159, 188, 189, 190, 1160, - 191, 192, 193, 1161, 194, 195, 196, 197, 805, 199, - 200, 201, 202, 203, 806, 1162, 205, 1163, 206, 207, - 807, 209, 1164, 210, 1165, 211, 808, 1166, 809, 214, - 215, 810, 811, 218, 1167, 219, 1168, 812, 813, 222, - 1169, 223, 224, 225, 226, 227, 228, 229, 814, 231, - 232, 233, 234, 1170, 235, 236, 237, 238, 239, 240, - 1171, 241, 815, 816, 244, 245, 246, 247, 248, 817, - 818, 1172, 819, 1173, 252, 820, 821, 255, 822, 257, - 258, 259, 260, 261, 262, 1174, 1175, 263, 823, 265, - 824, 1176, 267, 268, 269, 1177, 1178, 270, 271, 272, - 273, 274, 825, 276, 277, 278, 279, 280, 281, 282, - 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, - 293, 826, 827, 828, 297, 298, 299, 829, 1179, 301, - 302, 830, 304, 1180, 831, 306, 832, 308, 309, 310, - 1181, 311, 312, 1182, 1183, 313, 314, 315, 1184, 1185, - 316, 833, 834, 319, 835, 836, 322, 323, 324, 325, - 326, 327, 328, 329, 330, 331, 1186, 332, 333, 837, - 335, 336, 838, 338, 339, 340, 1187, 341, 342, 343, - 344, 345, 346, 1188, 347, 348, 349, 839, 351, 352, - 353, 354, 1189, 355, 356, 357, 358, 359, 360, 361, - 362, 363, 364, 365, 366, 367, 1190, 368, 369, 840, - 371, 372, 373, 841, 375, 376, 377, 378, 379, 380, - 381, 382, 383, 384, 385, 1191, 386, 387, 388, 389, - 390, 842, 1904, 843, 394, 395, 396, 844, 398, 399, - 845, 401, 1192, 402, 403, 404, 405, 406, 407, 408, - 409, 410, 411, 412, 413, 846, 415, 847, 417, 1193, - 418, 419, 1194, 420, 848, 422, 423, 424, 425, 426, - 1195, 849, 850, 1196, 1197, 429, 430, 851, 432, 852, - 1198, 434, 435, 853, 437, 438, 439, 440, 441, 1199, - 1200, 442, 443, 444, 445, 446, 854, 1201, 448, 449, - 450, 451, 452, 1202, 856, 1203, 455, 857, 457, 458, - 459, 460, 461, 1204, 1205, 462, 1206, 1207, 463, 464, - 465, 466, 467, 468, 858, 859, 860, 861, 862, 863, - 864, 865, 866, 867, 868, 480, 481, 482, 483, 93, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 94, 95, 96, - 97, 98, 99, 100, 101, 0, 102, 103, 104, 0, - 0, 0, 0, 0, 0, 0, 105, 106, 0, 107, - 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, - 118, 0, 119, 120, 121, 122, 123, 124, 0, 899, - 125, 126, 127, 128, 129, 0, 130, 131, 132, 133, - 902, 0, 903, 0, 136, 137, 138, 139, 140, 141, - 142, 143, 144, 145, 0, 146, 147, 148, 149, 150, - 151, 0, 152, 153, 154, 155, 904, 905, 906, 907, - 908, 909, 910, 161, 162, 163, 164, 165, 166, 167, - 168, 169, 170, 0, 171, 0, 172, 173, 174, 175, - 176, 177, 0, 178, 179, 180, 181, 182, 0, 0, - 183, 184, 185, 186, 187, 0, 188, 189, 190, 0, - 191, 192, 193, 0, 194, 195, 196, 197, 198, 199, - 200, 201, 202, 203, 915, 0, 205, 0, 206, 207, - 208, 209, 0, 210, 0, 211, 212, 0, 213, 214, - 215, 216, 217, 218, 0, 219, 0, 220, 221, 222, - 0, 223, 224, 225, 226, 227, 228, 229, 230, 231, - 232, 233, 234, 0, 235, 236, 237, 238, 239, 240, - 0, 241, 242, 243, 244, 245, 246, 247, 248, 249, - 250, 0, 251, 0, 252, 253, 254, 255, 256, 257, - 258, 259, 260, 261, 262, 0, 0, 263, 264, 265, - 266, 0, 267, 268, 269, 923, 924, 270, 271, 272, - 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, - 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, - 293, 294, 295, 296, 297, 298, 299, 300, 0, 301, - 302, 303, 304, 0, 929, 306, 307, 308, 309, 310, - 0, 311, 312, 0, 0, 313, 314, 315, 0, 0, - 316, 317, 318, 319, 320, 932, 322, 323, 324, 325, - 326, 327, 328, 329, 330, 331, 0, 332, 333, 933, - 335, 336, 337, 338, 339, 340, 0, 341, 342, 343, - 344, 345, 346, 0, 347, 348, 349, 350, 351, 352, - 353, 354, 0, 355, 356, 357, 358, 359, 360, 361, - 362, 363, 364, 365, 366, 367, 0, 368, 369, 370, - 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, - 381, 382, 383, 384, 385, 0, 386, 387, 388, 389, - 390, 936, 392, 393, 394, 395, 396, 397, 398, 399, - 400, 401, 0, 402, 403, 404, 405, 406, 407, 408, - 409, 410, 411, 412, 413, 414, 415, 938, 417, 0, - 418, 419, 0, 420, 421, 422, 423, 424, 425, 426, - 0, 427, 428, 0, 0, 429, 430, 941, 432, 942, - 0, 434, 435, 944, 437, 438, 439, 440, 441, 0, - 0, 442, 443, 444, 445, 446, 945, 0, 448, 449, - 450, 451, 452, 453, 454, 0, 455, 456, 457, 458, - 459, 460, 461, 0, 0, 462, 0, 0, 463, 464, - 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, - 475, 476, 477, 478, 479, 480, 481, 482, 483, 785, - 0, 583, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 94, 95, 96, - 97, 98, 99, 100, 101, 0, 102, 103, 104, 0, - 0, 0, 0, 0, 0, 0, 105, 106, 0, 107, - 108, 109, 786, 111, 112, 113, 787, 788, 789, 790, - 791, 0, 119, 120, 121, 122, 123, 124, 0, 0, - 125, 126, 792, 793, 129, 0, 130, 131, 132, 133, - 794, 0, 795, 0, 136, 137, 138, 139, 140, 141, - 796, 143, 144, 145, 0, 146, 147, 148, 149, 150, - 151, 0, 797, 153, 154, 155, 798, 799, 800, 801, - 0, 0, 802, 161, 162, 163, 164, 165, 166, 167, - 803, 804, 170, 0, 171, 0, 172, 173, 174, 175, - 176, 177, 0, 178, 179, 180, 181, 182, 0, 0, - 183, 184, 185, 186, 187, 0, 188, 189, 190, 0, - 191, 192, 193, 0, 194, 195, 196, 197, 805, 199, - 200, 201, 202, 203, 806, 1308, 205, 0, 206, 207, - 807, 209, 0, 210, 0, 211, 808, 0, 809, 214, - 215, 810, 811, 218, 0, 219, 0, 812, 813, 222, - 0, 223, 224, 225, 226, 227, 228, 229, 814, 231, - 232, 233, 234, 0, 235, 236, 237, 238, 239, 240, - 0, 241, 815, 816, 244, 245, 246, 247, 248, 817, - 818, 0, 819, 0, 252, 820, 821, 255, 822, 257, - 258, 259, 260, 261, 262, 0, 0, 263, 823, 265, - 824, 0, 267, 268, 269, 0, 0, 270, 271, 272, - 273, 274, 825, 276, 277, 278, 279, 280, 281, 282, - 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, - 293, 826, 827, 828, 297, 298, 299, 829, 0, 301, - 302, 830, 304, 0, 831, 306, 832, 308, 309, 310, - 0, 311, 312, 1309, 0, 313, 314, 315, 0, 0, - 316, 833, 834, 319, 835, 836, 322, 323, 324, 325, - 326, 327, 328, 329, 330, 331, 0, 332, 333, 837, - 335, 336, 838, 338, 339, 340, 0, 341, 342, 343, - 344, 345, 346, 0, 347, 348, 349, 839, 351, 352, - 353, 354, 0, 355, 356, 357, 358, 359, 360, 361, - 362, 363, 364, 365, 366, 367, 0, 368, 369, 840, - 371, 372, 373, 841, 375, 376, 377, 378, 379, 380, - 381, 382, 383, 384, 385, 0, 386, 387, 388, 389, - 390, 842, 392, 843, 394, 395, 396, 844, 398, 399, - 845, 401, 0, 402, 403, 404, 405, 406, 407, 408, - 409, 410, 411, 412, 413, 846, 415, 847, 417, 0, - 418, 419, 0, 420, 848, 422, 423, 424, 425, 426, - 0, 849, 850, 0, 0, 429, 430, 851, 432, 852, - 1310, 434, 435, 853, 437, 438, 439, 440, 441, 0, - 0, 442, 443, 444, 445, 446, 854, 0, 448, 449, - 450, 451, 452, 1202, 856, 0, 455, 857, 457, 458, - 459, 460, 461, 0, 0, 462, 0, 0, 463, 464, - 465, 466, 467, 468, 858, 859, 860, 861, 862, 863, - 864, 865, 866, 867, 868, 480, 481, 482, 483, 785, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 94, 95, 96, - 97, 98, 99, 100, 101, 0, 102, 103, 104, 3, - 4, 0, 0, 0, 0, 0, 105, 106, 0, 107, - 108, 109, 786, 111, 112, 113, 787, 788, 789, 790, - 791, 0, 119, 120, 121, 122, 123, 124, 0, 0, - 125, 126, 792, 793, 129, 0, 130, 131, 132, 133, - 794, 0, 795, 0, 136, 137, 138, 139, 140, 141, - 796, 143, 144, 145, 0, 146, 147, 148, 149, 150, - 151, 0, 797, 153, 154, 155, 798, 799, 800, 801, - 0, 0, 802, 161, 162, 163, 164, 165, 166, 167, - 803, 804, 170, 0, 171, 0, 172, 173, 174, 175, - 176, 177, 0, 178, 179, 180, 181, 182, 0, 0, - 183, 184, 185, 186, 187, 0, 188, 189, 190, 0, - 191, 192, 193, 0, 194, 195, 196, 197, 805, 199, - 200, 201, 202, 203, 806, 0, 205, 0, 206, 207, - 807, 209, 0, 210, 0, 211, 808, 0, 809, 214, - 215, 810, 811, 218, 0, 219, 0, 812, 813, 222, - 0, 223, 224, 225, 226, 227, 228, 229, 814, 231, - 232, 233, 234, 0, 235, 236, 237, 238, 239, 240, - 0, 241, 815, 816, 244, 245, 246, 247, 248, 817, - 818, 0, 819, 0, 252, 820, 821, 255, 822, 257, - 258, 259, 260, 261, 262, 0, 0, 263, 823, 265, - 824, 0, 267, 268, 269, 0, 0, 270, 271, 272, - 273, 274, 825, 276, 277, 278, 279, 280, 281, 282, - 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, - 293, 826, 827, 828, 297, 298, 299, 829, 0, 301, - 302, 830, 304, 0, 831, 306, 832, 308, 309, 310, - 0, 311, 312, 0, 0, 313, 314, 315, 0, 0, - 316, 833, 834, 319, 835, 836, 322, 323, 324, 325, - 326, 327, 328, 329, 330, 331, 0, 332, 333, 837, - 335, 336, 838, 338, 339, 340, 0, 341, 342, 343, - 344, 345, 346, 0, 347, 348, 349, 839, 351, 352, - 353, 354, 0, 355, 356, 357, 358, 359, 360, 361, - 362, 363, 364, 365, 366, 367, 0, 368, 369, 840, - 371, 372, 373, 841, 375, 376, 377, 378, 379, 380, - 381, 382, 383, 384, 385, 0, 386, 387, 388, 389, - 390, 842, 392, 843, 394, 395, 396, 844, 398, 399, - 845, 401, 0, 402, 403, 404, 405, 406, 407, 408, - 409, 410, 411, 412, 413, 846, 415, 847, 417, 0, - 418, 419, 0, 420, 848, 422, 423, 424, 425, 426, - 0, 849, 850, 0, 0, 429, 430, 851, 432, 852, - 0, 434, 435, 853, 437, 438, 439, 440, 441, 0, - 0, 442, 443, 444, 445, 446, 854, 0, 448, 449, - 450, 451, 452, 1202, 856, 0, 455, 857, 457, 458, - 459, 460, 461, 0, 0, 462, 0, 0, 463, 464, - 465, 466, 467, 468, 858, 859, 860, 861, 862, 863, - 864, 865, 866, 867, 868, 480, 481, 482, 483, 93, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 94, 95, 96, - 97, 98, 99, 100, 101, 0, 102, 103, 104, 0, - 0, 0, 0, 0, 0, 0, 105, 106, 0, 107, - 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, - 118, 0, 119, 120, 121, 122, 123, 124, 0, 0, - 125, 126, 127, 128, 129, 0, 130, 131, 132, 133, - 134, 0, 135, 0, 136, 137, 138, 139, 140, 141, - 142, 143, 144, 145, 0, 146, 147, 148, 149, 150, - 151, 0, 152, 153, 154, 155, 156, 157, 158, 159, - 0, 0, 160, 161, 162, 163, 164, 165, 166, 167, - 168, 169, 170, 0, 171, 0, 172, 173, 174, 175, - 176, 177, 0, 178, 179, 180, 181, 182, 0, 0, - 183, 184, 185, 186, 187, 0, 188, 189, 190, 0, - 191, 192, 193, 0, 194, 195, 196, 197, 198, 199, - 200, 201, 202, 203, 204, 0, 205, 0, 206, 207, - 208, 209, 0, 210, 0, 211, 212, 0, 213, 214, - 215, 216, 217, 218, 0, 219, 0, 220, 221, 222, - 0, 223, 224, 225, 226, 227, 228, 229, 230, 231, - 232, 233, 234, 0, 235, 236, 237, 238, 239, 240, - 0, 241, 242, 243, 244, 245, 246, 247, 248, 249, - 250, 0, 251, 0, 252, 253, 254, 255, 256, 257, - 258, 259, 260, 261, 262, 0, 0, 263, 264, 265, - 266, 0, 267, 268, 269, 0, 0, 270, 271, 272, - 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, - 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, - 293, 294, 295, 296, 297, 298, 299, 300, 0, 301, - 302, 303, 304, 0, 305, 306, 307, 308, 309, 310, - 0, 311, 312, 0, 0, 313, 314, 315, 0, 0, - 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, - 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, - 335, 336, 337, 338, 339, 340, 0, 341, 342, 343, - 344, 345, 346, 0, 347, 348, 349, 350, 351, 352, - 353, 354, 0, 355, 356, 357, 358, 359, 360, 361, - 362, 363, 364, 365, 366, 367, 0, 368, 369, 370, - 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, - 381, 382, 383, 384, 385, 0, 386, 387, 388, 389, - 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, - 400, 401, 0, 402, 403, 404, 405, 406, 407, 408, - 409, 410, 411, 412, 413, 414, 415, 416, 417, 0, - 418, 419, 0, 420, 421, 422, 423, 424, 425, 426, - 0, 427, 428, 0, 0, 429, 430, 431, 432, 433, - 0, 434, 435, 436, 437, 438, 439, 440, 441, 0, - 0, 442, 443, 444, 445, 446, 447, 0, 448, 449, - 450, 451, 452, 453, 454, 0, 455, 456, 457, 458, - 459, 460, 461, 0, 0, 462, 0, 0, 463, 464, - 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, - 475, 476, 477, 478, 479, 480, 481, 482, 483, 507, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 94, 95, 96, - 97, 98, 99, 100, 101, 0, 102, 103, 104, 0, - 0, 0, 0, 0, 0, 0, 105, 106, 0, 107, - 108, 109, 0, 111, 112, 113, 114, 115, 0, 117, - 118, 0, 119, 120, 121, 122, 123, 124, 0, 0, - 125, 126, 127, 128, 129, 1507, 130, 131, 132, 133, - 134, 0, 0, 1508, 136, 137, 138, 139, 140, 141, - 0, 143, 144, 145, 1509, 146, 147, 148, 149, 150, - 151, 0, 0, 153, 154, 155, 0, 0, 0, 0, - 0, 0, 0, 161, 162, 163, 164, 165, 166, 167, - 168, 169, 170, 0, 171, 0, 172, 173, 174, 175, - 176, 177, 0, 178, 179, 180, 181, 182, 0, 0, - 183, 184, 185, 186, 187, 0, 188, 189, 190, 0, - 191, 192, 193, 0, 194, 195, 196, 197, 198, 199, - 200, 201, 202, 203, 204, 0, 205, 0, 206, 207, - 208, 209, 0, 210, 1510, 211, 0, 0, 0, 214, - 215, 510, 0, 218, 0, 219, 0, 220, 221, 222, - 0, 223, 224, 225, 226, 227, 1511, 229, 0, 231, - 232, 233, 234, 0, 235, 236, 237, 238, 239, 240, - 0, 241, 0, 243, 244, 245, 246, 247, 248, 249, - 250, 0, 251, 0, 252, 0, 0, 255, 0, 257, - 258, 259, 260, 261, 262, 0, 0, 263, 0, 265, - 0, 0, 267, 268, 269, 0, 0, 270, 271, 272, - 273, 274, 511, 276, 277, 278, 279, 280, 281, 282, - 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, - 293, 294, 0, 296, 297, 298, 299, 300, 0, 301, - 302, 0, 304, 0, 305, 306, 307, 308, 309, 310, - 0, 311, 312, 0, 0, 313, 314, 315, 0, 0, - 316, 317, 0, 319, 0, 321, 322, 323, 324, 325, - 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, - 335, 336, 337, 338, 339, 340, 1512, 341, 342, 343, - 344, 345, 346, 0, 347, 348, 349, 350, 351, 352, - 353, 354, 0, 355, 356, 357, 358, 359, 360, 361, - 362, 363, 364, 365, 366, 367, 0, 368, 369, 0, - 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, - 381, 382, 383, 384, 385, 0, 386, 387, 388, 389, - 390, 0, 392, 393, 394, 395, 396, 0, 398, 399, - 400, 401, 0, 402, 403, 404, 405, 406, 407, 408, - 409, 410, 411, 412, 413, 513, 415, 416, 417, 0, - 418, 419, 0, 420, 0, 422, 423, 424, 425, 426, - 0, 427, 428, 0, 0, 429, 430, 431, 432, 433, - 0, 434, 435, 436, 437, 438, 439, 440, 441, 0, - 1513, 442, 443, 444, 445, 446, 0, 0, 448, 449, - 450, 451, 452, 453, 454, 0, 455, 0, 457, 458, - 459, 460, 461, 0, 0, 462, 0, 0, 463, 464, - 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, - 475, 476, 477, 478, 479, 480, 481, 482, 483, 507, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 94, 95, 96, - 97, 98, 99, 100, 101, 0, 102, 103, 104, 0, - 0, 0, 0, 0, 0, 0, 105, 106, 0, 107, - 108, 109, 0, 111, 112, 113, 114, 115, 0, 117, - 118, 0, 119, 120, 121, 122, 123, 124, 0, 0, - 125, 126, 127, 128, 129, 1507, 130, 131, 132, 133, - 134, 0, 0, 0, 136, 137, 138, 139, 140, 141, - 0, 143, 144, 145, 1509, 146, 147, 148, 149, 150, - 151, 0, 0, 153, 154, 155, 0, 0, 0, 0, - 0, 0, 0, 161, 162, 163, 164, 165, 166, 167, - 168, 169, 170, 0, 171, 0, 172, 173, 174, 175, - 176, 177, 0, 178, 179, 180, 181, 182, 0, 0, - 183, 184, 185, 186, 187, 0, 188, 189, 190, 0, - 191, 192, 193, 0, 194, 195, 196, 197, 198, 199, - 200, 201, 202, 203, 204, 0, 205, 0, 206, 207, - 208, 209, 0, 210, 1510, 211, 0, 0, 0, 214, - 215, 510, 0, 218, 0, 219, 0, 220, 221, 222, - 0, 223, 224, 225, 226, 227, 228, 229, 0, 231, - 232, 233, 234, 0, 235, 236, 237, 238, 239, 240, - 0, 241, 0, 243, 244, 245, 246, 247, 248, 249, - 250, 0, 251, 0, 252, 0, 0, 255, 0, 257, - 258, 259, 260, 261, 262, 0, 0, 263, 0, 265, - 1971, 0, 267, 268, 269, 0, 0, 270, 271, 272, - 273, 274, 511, 276, 277, 278, 279, 280, 281, 282, - 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, - 293, 294, 0, 296, 297, 298, 299, 300, 0, 301, - 302, 0, 304, 0, 305, 306, 307, 308, 309, 310, - 0, 311, 312, 0, 0, 313, 314, 315, 0, 0, - 316, 317, 0, 319, 0, 321, 322, 323, 324, 325, - 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, - 335, 336, 337, 338, 339, 340, 1512, 341, 342, 343, - 344, 345, 346, 0, 347, 348, 349, 350, 351, 352, - 353, 354, 0, 355, 356, 357, 358, 359, 360, 361, - 362, 363, 364, 365, 366, 367, 0, 368, 369, 0, - 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, - 381, 382, 383, 384, 385, 0, 386, 387, 388, 389, - 390, 0, 392, 393, 394, 395, 396, 0, 398, 399, - 400, 401, 0, 402, 403, 404, 405, 406, 407, 408, - 409, 410, 411, 412, 413, 513, 415, 416, 417, 0, - 418, 419, 0, 420, 0, 422, 423, 424, 425, 426, - 0, 427, 428, 0, 0, 429, 430, 431, 432, 433, - 0, 434, 435, 436, 437, 438, 439, 440, 441, 0, - 1513, 442, 443, 444, 445, 446, 0, 0, 448, 449, - 450, 451, 452, 453, 454, 0, 455, 0, 457, 458, - 459, 460, 461, 0, 0, 462, 0, 0, 463, 464, - 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, - 475, 476, 477, 478, 479, 480, 481, 482, 483, 507, - 0, 508, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 94, 95, 96, - 97, 98, 99, 100, 101, 0, 102, 103, 104, 3, - 4, 0, 0, 0, 0, 0, 105, 106, 0, 107, - 108, 109, 0, 111, 112, 113, 114, 115, 0, 117, - 118, 0, 119, 120, 121, 122, 123, 124, 0, 0, - 125, 126, 127, 128, 129, 0, 130, 131, 132, 133, - 134, 0, 0, 0, 136, 137, 138, 139, 140, 141, - 0, 143, 144, 145, 0, 146, 147, 148, 149, 150, - 151, 0, 0, 153, 154, 155, 0, 0, 0, 0, - 0, 0, 0, 161, 162, 163, 164, 165, 166, 167, - 168, 169, 170, 0, 171, 0, 172, 173, 174, 175, - 176, 177, 0, 178, 179, 180, 181, 182, 0, 0, - 183, 184, 185, 186, 187, 0, 188, 189, 190, 0, - 191, 192, 193, 0, 194, 195, 196, 197, 198, 199, - 200, 201, 202, 203, 204, 0, 205, 0, 206, 207, - 208, 209, 0, 210, 0, 211, 0, 0, 0, 214, - 215, 510, 0, 218, 0, 219, 0, 220, 221, 222, - 0, 223, 224, 225, 226, 227, 228, 229, 0, 231, - 232, 233, 234, 0, 235, 236, 237, 238, 239, 240, - 0, 241, 0, 243, 244, 245, 246, 247, 248, 249, - 250, 0, 251, 0, 252, 0, 0, 255, 0, 257, - 258, 259, 260, 261, 262, 0, 0, 263, 0, 265, - 0, 0, 267, 268, 269, 0, 0, 270, 271, 272, - 273, 274, 511, 276, 277, 278, 279, 280, 281, 282, - 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, - 293, 294, 0, 296, 297, 298, 299, 300, 0, 301, - 302, 0, 304, 0, 305, 306, 307, 308, 309, 310, - 0, 311, 312, 0, 0, 313, 314, 315, 0, 0, - 316, 317, 0, 319, 0, 321, 322, 323, 324, 325, - 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, - 335, 336, 337, 338, 339, 340, 0, 341, 342, 343, - 344, 345, 346, 0, 347, 348, 349, 350, 351, 352, - 353, 354, 0, 355, 356, 357, 358, 359, 360, 361, - 362, 363, 364, 365, 366, 367, 0, 368, 369, 0, - 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, - 381, 382, 383, 384, 385, 0, 386, 387, 388, 389, - 390, 0, 392, 393, 394, 395, 396, 0, 398, 399, - 400, 401, 0, 402, 403, 404, 405, 406, 407, 408, - 409, 410, 411, 412, 413, 513, 415, 416, 417, 0, - 418, 419, 0, 420, 0, 422, 423, 424, 425, 426, - 0, 427, 428, 0, 0, 429, 430, 431, 432, 433, - 0, 434, 435, 436, 437, 438, 439, 440, 441, 0, - 0, 442, 443, 444, 445, 446, 0, 0, 448, 449, - 450, 451, 452, 453, 454, 0, 455, 0, 457, 458, - 459, 460, 461, 0, 0, 462, 0, 0, 463, 464, - 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, - 475, 476, 477, 478, 479, 480, 481, 482, 483, 507, - 0, 508, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 94, 95, 96, - 97, 98, 99, 100, 101, 509, 102, 103, 104, 0, - 0, 0, 0, 0, 0, 0, 105, 106, 0, 107, - 108, 109, 0, 111, 112, 113, 114, 115, 0, 117, - 118, 0, 119, 120, 121, 122, 123, 124, 0, 0, - 125, 126, 127, 128, 129, 0, 130, 131, 132, 133, - 134, 0, 0, 0, 136, 137, 138, 139, 140, 141, - 0, 143, 144, 145, 0, 146, 147, 148, 149, 150, - 151, 0, 0, 153, 154, 155, 0, 0, 0, 0, - 0, 0, 0, 161, 162, 163, 164, 165, 166, 167, - 168, 169, 170, 0, 171, 0, 172, 173, 174, 175, - 176, 177, 0, 178, 179, 180, 181, 182, 0, 0, - 183, 184, 185, 186, 187, 0, 188, 189, 190, 0, - 191, 192, 193, 0, 194, 195, 196, 197, 198, 199, - 200, 201, 202, 203, 204, 0, 205, 0, 206, 207, - 208, 209, 0, 210, 0, 211, 0, 0, 0, 214, - 215, 510, 0, 218, 0, 219, 0, 220, 221, 222, - 0, 223, 224, 225, 226, 227, 228, 229, 0, 231, - 232, 233, 234, 0, 235, 236, 237, 238, 239, 240, - 0, 241, 0, 243, 244, 245, 246, 247, 248, 249, - 250, 0, 251, 0, 252, 0, 0, 255, 0, 257, - 258, 259, 260, 261, 262, 0, 0, 263, 0, 265, - 0, 0, 267, 268, 269, 0, 0, 270, 271, 272, - 273, 274, 511, 276, 277, 278, 279, 280, 281, 282, - 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, - 293, 294, 0, 296, 297, 298, 299, 300, 0, 301, - 302, 0, 304, 0, 305, 306, 307, 308, 309, 310, - 0, 311, 312, 0, 0, 313, 314, 315, 0, 0, - 316, 317, 0, 319, 0, 321, 322, 323, 324, 325, - 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, - 335, 336, 337, 512, 339, 340, 0, 341, 342, 343, - 344, 345, 346, 0, 347, 348, 349, 350, 351, 352, - 353, 354, 0, 355, 356, 357, 358, 359, 360, 361, - 362, 363, 364, 365, 366, 367, 0, 368, 369, 0, - 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, - 381, 382, 383, 384, 385, 0, 386, 387, 388, 389, - 390, 0, 392, 393, 394, 395, 396, 0, 398, 399, - 400, 401, 0, 402, 403, 404, 405, 406, 407, 408, - 409, 410, 411, 412, 413, 513, 415, 416, 417, 0, - 418, 419, 0, 420, 0, 422, 423, 424, 425, 426, - 0, 427, 428, 0, 0, 429, 430, 431, 432, 433, - 0, 434, 435, 436, 437, 438, 439, 440, 441, 0, - 0, 442, 443, 444, 445, 446, 0, 0, 448, 449, - 450, 451, 452, 453, 454, 0, 455, 0, 457, 458, - 459, 460, 461, 0, 0, 462, 0, 0, 463, 464, - 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, - 475, 476, 477, 478, 479, 480, 481, 482, 483, 507, - 0, 508, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 94, 95, 96, - 97, 98, 99, 100, 101, 0, 102, 103, 104, 0, - 0, 0, 0, 0, 0, 0, 105, 106, 0, 107, - 108, 109, 0, 111, 112, 113, 114, 115, 0, 117, - 118, 0, 119, 120, 121, 122, 123, 124, 0, 0, - 125, 126, 127, 128, 129, 0, 130, 131, 132, 133, - 134, 0, 0, 0, 136, 137, 138, 139, 140, 141, - 0, 143, 144, 145, 0, 146, 147, 148, 149, 150, - 151, 0, 0, 153, 154, 155, 0, 0, 0, 0, - 0, 0, 0, 161, 162, 163, 164, 165, 166, 167, - 168, 169, 170, 0, 171, 0, 172, 173, 174, 175, - 176, 177, 0, 178, 179, 180, 181, 182, 0, 0, - 183, 184, 185, 186, 187, 0, 188, 189, 190, 0, - 191, 192, 193, 0, 194, 195, 196, 197, 198, 199, - 200, 201, 202, 203, 204, 0, 205, 0, 206, 207, - 208, 209, 0, 210, 0, 211, 0, 0, 0, 214, - 215, 510, 0, 218, 0, 219, 0, 220, 221, 222, - 0, 223, 224, 225, 226, 227, 228, 229, 0, 231, - 232, 233, 234, 0, 235, 236, 237, 238, 239, 240, - 0, 241, 0, 243, 244, 245, 246, 247, 248, 249, - 250, 0, 251, 0, 252, 0, 0, 255, 0, 257, - 258, 259, 260, 261, 262, 0, 0, 263, 0, 265, - 0, 0, 267, 268, 269, 0, 0, 270, 271, 272, - 273, 274, 511, 276, 277, 278, 279, 280, 281, 282, - 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, - 293, 294, 0, 296, 297, 298, 299, 300, 0, 301, - 302, 0, 304, 0, 305, 306, 307, 308, 309, 310, - 0, 311, 312, 0, 615, 313, 314, 315, 0, 0, - 316, 317, 0, 319, 0, 321, 322, 323, 324, 325, - 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, - 335, 336, 337, 338, 339, 340, 0, 341, 342, 343, - 344, 345, 346, 0, 347, 348, 349, 350, 351, 352, - 353, 354, 0, 355, 356, 357, 358, 359, 360, 361, - 362, 363, 364, 365, 366, 367, 0, 368, 369, 0, - 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, - 381, 382, 383, 384, 385, 0, 386, 387, 388, 389, - 390, 0, 392, 393, 394, 395, 396, 0, 398, 399, - 400, 401, 0, 402, 403, 404, 405, 406, 407, 408, - 409, 410, 411, 412, 413, 513, 415, 416, 417, 0, - 418, 419, 0, 420, 0, 422, 423, 424, 425, 426, - 0, 427, 428, 0, 0, 429, 430, 431, 432, 433, - 0, 434, 435, 436, 437, 438, 439, 440, 441, 0, - 0, 442, 443, 444, 445, 446, 0, 0, 448, 449, - 450, 451, 452, 453, 454, 0, 455, 0, 457, 458, - 459, 460, 461, 0, 0, 462, 0, 0, 463, 464, - 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, - 475, 476, 477, 478, 479, 480, 481, 482, 483, 507, - 0, 508, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 94, 95, 96, - 97, 98, 99, 100, 101, 0, 102, 103, 104, 0, - 0, 0, 0, 0, 0, 0, 105, 106, 0, 107, - 108, 109, 0, 111, 112, 113, 114, 115, 0, 117, - 118, 0, 119, 120, 121, 122, 123, 124, 0, 0, - 125, 126, 127, 128, 129, 0, 130, 131, 132, 133, - 134, 0, 0, 0, 136, 137, 138, 139, 140, 141, - 0, 143, 144, 145, 0, 146, 147, 148, 149, 150, - 151, 0, 0, 153, 154, 155, 0, 0, 0, 0, - 0, 0, 0, 161, 162, 163, 164, 165, 166, 167, - 168, 169, 170, 0, 171, 0, 172, 173, 174, 175, - 176, 177, 0, 178, 179, 180, 181, 182, 0, 0, - 183, 184, 185, 186, 187, 0, 188, 189, 190, 0, - 191, 192, 193, 0, 194, 195, 196, 197, 198, 199, - 200, 201, 202, 203, 204, 0, 205, 0, 206, 207, - 208, 209, 0, 210, 0, 211, 0, 0, 0, 214, - 215, 510, 0, 218, 0, 219, 0, 220, 221, 222, - 0, 223, 224, 225, 226, 227, 658, 229, 0, 231, - 232, 233, 234, 0, 235, 236, 237, 238, 239, 240, - 0, 241, 0, 243, 244, 245, 246, 247, 248, 249, - 250, 0, 251, 0, 252, 0, 0, 255, 0, 257, - 258, 259, 260, 261, 262, 0, 0, 263, 0, 265, - 0, 0, 267, 268, 269, 0, 0, 270, 271, 272, - 273, 274, 511, 276, 277, 278, 279, 280, 281, 282, - 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, - 293, 294, 0, 296, 297, 298, 299, 300, 0, 301, - 302, 0, 304, 0, 305, 306, 307, 308, 309, 310, - 0, 311, 312, 0, 615, 313, 314, 315, 0, 0, - 316, 317, 0, 319, 0, 321, 322, 323, 324, 325, - 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, - 335, 336, 337, 338, 339, 340, 0, 341, 342, 343, - 344, 345, 346, 0, 347, 348, 349, 350, 351, 352, - 353, 354, 0, 355, 356, 357, 358, 359, 360, 361, - 362, 363, 364, 365, 366, 367, 0, 368, 369, 0, - 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, - 381, 382, 383, 384, 385, 0, 386, 387, 388, 389, - 390, 0, 392, 393, 394, 395, 396, 0, 398, 399, - 400, 401, 0, 402, 403, 404, 405, 406, 407, 408, - 409, 410, 411, 412, 413, 513, 415, 416, 417, 0, - 418, 419, 0, 420, 0, 422, 423, 424, 425, 426, - 0, 427, 428, 0, 0, 429, 430, 431, 432, 433, - 0, 434, 435, 436, 437, 438, 439, 440, 441, 0, - 0, 442, 443, 444, 445, 446, 0, 0, 448, 449, - 450, 451, 452, 453, 454, 0, 455, 0, 457, 458, - 459, 460, 461, 0, 0, 462, 0, 0, 463, 464, - 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, - 475, 476, 477, 478, 479, 480, 481, 482, 483, 507, - 0, 508, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 94, 95, 96, - 97, 98, 99, 100, 101, 690, 102, 103, 104, 0, - 0, 0, 0, 0, 0, 0, 105, 106, 0, 107, - 108, 109, 0, 111, 112, 113, 114, 115, 0, 117, - 118, 0, 119, 120, 121, 122, 123, 124, 0, 0, - 125, 126, 127, 128, 129, 0, 130, 131, 132, 133, - 134, 0, 0, 0, 136, 137, 138, 139, 140, 141, - 0, 143, 144, 145, 0, 146, 147, 148, 149, 150, - 151, 0, 0, 153, 154, 155, 0, 0, 0, 0, - 0, 0, 0, 161, 162, 163, 164, 165, 166, 167, - 168, 169, 170, 0, 171, 0, 172, 173, 174, 175, - 176, 177, 0, 178, 179, 180, 181, 182, 0, 0, - 183, 184, 185, 186, 187, 0, 188, 189, 190, 0, - 191, 192, 193, 0, 194, 195, 196, 197, 198, 199, - 200, 201, 202, 203, 204, 0, 205, 0, 206, 207, - 208, 209, 0, 210, 0, 211, 0, 0, 0, 214, - 215, 510, 0, 218, 0, 219, 0, 220, 221, 222, - 0, 223, 224, 225, 226, 227, 228, 229, 0, 231, - 232, 233, 234, 0, 235, 236, 237, 238, 239, 240, - 0, 241, 0, 243, 244, 245, 246, 247, 248, 249, - 250, 0, 251, 0, 252, 0, 0, 255, 0, 257, - 258, 259, 260, 261, 262, 0, 0, 263, 0, 265, - 0, 0, 267, 268, 269, 0, 0, 270, 271, 272, - 273, 274, 511, 276, 277, 278, 279, 280, 281, 282, - 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, - 293, 294, 0, 296, 297, 298, 299, 300, 0, 301, - 302, 0, 304, 0, 305, 306, 307, 308, 309, 310, - 0, 311, 312, 0, 0, 313, 314, 315, 0, 0, - 316, 317, 0, 319, 0, 321, 322, 323, 324, 325, - 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, - 335, 336, 337, 338, 339, 340, 0, 341, 342, 343, - 344, 345, 346, 0, 347, 348, 349, 350, 351, 352, - 353, 354, 0, 355, 356, 357, 358, 359, 360, 361, - 362, 363, 364, 365, 366, 367, 0, 368, 369, 0, - 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, - 381, 382, 383, 384, 385, 0, 386, 387, 388, 389, - 390, 0, 392, 393, 394, 395, 396, 0, 398, 399, - 400, 401, 0, 402, 403, 404, 405, 406, 407, 408, - 409, 410, 411, 412, 413, 513, 415, 416, 417, 0, - 418, 419, 0, 420, 0, 422, 423, 424, 425, 426, - 0, 427, 428, 0, 0, 429, 430, 431, 432, 433, - 0, 434, 435, 436, 437, 438, 439, 440, 441, 0, - 0, 442, 443, 444, 445, 446, 0, 0, 448, 449, - 450, 451, 452, 453, 454, 0, 455, 0, 457, 458, - 459, 460, 461, 0, 0, 462, 0, 0, 463, 464, - 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, - 475, 476, 477, 478, 479, 480, 481, 482, 483, 507, - 0, 508, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 94, 95, 96, - 97, 98, 99, 100, 101, 0, 102, 103, 104, 0, - 0, 0, 0, 0, 0, 0, 105, 106, 0, 107, - 108, 109, 0, 111, 112, 113, 114, 115, 0, 117, - 118, 0, 119, 120, 121, 122, 123, 124, 0, 0, - 125, 126, 127, 128, 129, 0, 130, 131, 132, 133, - 134, 0, 0, 0, 136, 137, 138, 139, 140, 141, - 0, 143, 144, 145, 0, 146, 147, 148, 149, 150, - 151, 0, 0, 153, 154, 155, 0, 0, 0, 0, - 0, 0, 0, 161, 162, 163, 164, 165, 166, 167, - 168, 169, 170, 0, 171, 0, 172, 173, 174, 175, - 176, 177, 0, 178, 179, 180, 181, 182, 0, 0, - 183, 184, 185, 186, 187, 0, 188, 189, 190, 0, - 191, 192, 193, 0, 194, 195, 196, 197, 198, 199, - 200, 201, 202, 203, 204, 0, 205, 0, 206, 207, - 208, 209, 0, 210, 0, 211, 0, 0, 0, 214, - 215, 510, 0, 1807, 0, 219, 0, 220, 221, 222, - 0, 223, 224, 225, 226, 227, 228, 229, 0, 231, - 232, 233, 234, 0, 235, 236, 237, 238, 239, 240, - 0, 241, 0, 243, 244, 245, 246, 247, 248, 249, - 250, 0, 251, 0, 252, 0, 0, 255, 0, 257, - 258, 259, 260, 261, 262, 0, 0, 263, 0, 265, - 0, 0, 267, 268, 1808, 0, 0, 270, 271, 272, - 273, 274, 511, 276, 277, 278, 279, 280, 281, 282, - 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, - 293, 294, 0, 296, 297, 298, 299, 300, 0, 301, - 302, 0, 304, 0, 305, 306, 307, 308, 309, 310, - 0, 311, 312, 0, 0, 313, 314, 315, 0, 0, - 316, 317, 0, 319, 0, 321, 322, 323, 324, 325, - 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, - 335, 336, 337, 338, 339, 340, 0, 341, 342, 343, - 344, 345, 346, 0, 347, 348, 349, 350, 351, 352, - 353, 354, 0, 355, 356, 357, 358, 359, 360, 361, - 362, 363, 364, 365, 366, 367, 0, 368, 369, 0, - 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, - 381, 382, 383, 384, 385, 0, 386, 387, 388, 389, - 390, 0, 392, 393, 394, 395, 396, 0, 398, 399, - 400, 401, 0, 402, 403, 404, 405, 406, 407, 408, - 409, 410, 411, 412, 413, 513, 415, 416, 417, 0, - 418, 419, 1809, 420, 0, 422, 1810, 424, 1811, 426, - 0, 427, 428, 0, 0, 429, 430, 431, 432, 433, - 0, 434, 435, 436, 437, 438, 439, 440, 441, 0, - 0, 442, 443, 1812, 445, 446, 0, 0, 448, 449, - 450, 451, 452, 453, 454, 0, 455, 0, 457, 458, - 459, 460, 461, 0, 0, 462, 0, 0, 463, 464, - 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, - 475, 476, 477, 478, 479, 480, 481, 482, 483, 507, - 2776, 0, 0, 0, 0, 2777, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 94, 95, 96, - 97, 98, 99, 100, 101, 0, 102, 103, 104, 0, - 0, 0, 0, 0, 0, 0, 105, 106, 0, 107, - 108, 109, 0, 111, 112, 113, 114, 115, 0, 117, - 118, 0, 119, 120, 121, 122, 123, 124, 0, 0, - 125, 126, 127, 128, 129, 0, 130, 131, 132, 133, - 134, 0, 0, 0, 136, 137, 138, 139, 140, 141, - 0, 143, 144, 145, 0, 146, 147, 148, 149, 150, - 151, 0, 0, 153, 154, 155, 0, 0, 0, 0, - 0, 0, 0, 161, 162, 163, 164, 165, 166, 167, - 168, 169, 170, 0, 171, 0, 172, 173, 174, 175, - 176, 177, 0, 178, 179, 180, 181, 182, 0, 0, - 183, 184, 185, 186, 187, 0, 188, 189, 190, 0, - 191, 192, 193, 0, 194, 195, 196, 197, 198, 199, - 200, 201, 202, 203, 204, 0, 205, 0, 206, 207, - 208, 209, 0, 210, 0, 211, 0, 0, 0, 214, - 215, 510, 0, 218, 0, 219, 0, 220, 221, 222, - 0, 223, 224, 225, 226, 227, 228, 229, 0, 231, - 232, 233, 234, 0, 235, 236, 237, 238, 239, 240, - 0, 241, 0, 243, 244, 245, 246, 247, 248, 249, - 250, 0, 251, 0, 252, 0, 0, 255, 0, 257, - 258, 259, 260, 261, 262, 0, 0, 263, 0, 265, - 0, 0, 267, 268, 269, 0, 0, 270, 271, 272, - 273, 274, 511, 276, 277, 278, 279, 280, 281, 282, - 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, - 293, 294, 0, 296, 297, 298, 299, 300, 0, 301, - 302, 0, 304, 0, 305, 306, 307, 308, 309, 310, - 0, 311, 312, 0, 0, 313, 314, 315, 0, 0, - 316, 317, 0, 319, 0, 321, 322, 323, 324, 325, - 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, - 335, 336, 337, 338, 339, 340, 0, 341, 342, 343, - 344, 345, 346, 0, 347, 348, 349, 350, 351, 352, - 353, 354, 0, 355, 356, 357, 358, 359, 360, 361, - 362, 363, 364, 365, 366, 367, 0, 368, 369, 0, - 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, - 381, 382, 383, 384, 385, 0, 386, 387, 388, 389, - 390, 0, 392, 393, 394, 395, 396, 0, 398, 399, - 400, 401, 0, 402, 403, 404, 405, 406, 407, 408, - 409, 410, 411, 412, 413, 513, 415, 416, 417, 0, - 418, 419, 0, 420, 0, 422, 423, 424, 425, 426, - 0, 427, 428, 0, 0, 429, 430, 431, 432, 433, - 0, 434, 435, 436, 437, 438, 439, 440, 441, 0, - 0, 442, 443, 444, 445, 446, 0, 0, 448, 449, - 450, 451, 452, 453, 454, 0, 455, 0, 457, 458, - 459, 460, 461, 0, 0, 462, 0, 0, 463, 464, - 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, - 475, 476, 477, 478, 479, 480, 481, 482, 483, 507, - 0, 508, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 94, 95, 96, - 97, 98, 99, 100, 101, 0, 102, 103, 104, 0, - 0, 0, 0, 0, 0, 0, 105, 106, 0, 107, - 108, 109, 0, 111, 112, 113, 114, 115, 0, 117, - 118, 0, 119, 120, 121, 122, 123, 124, 0, 0, - 125, 126, 127, 128, 129, 0, 130, 131, 132, 133, - 134, 0, 0, 0, 136, 137, 138, 139, 140, 141, - 0, 143, 144, 145, 0, 146, 147, 148, 149, 150, - 151, 0, 0, 153, 154, 155, 0, 0, 0, 0, - 0, 0, 0, 161, 162, 163, 164, 165, 166, 167, - 168, 169, 170, 0, 171, 0, 172, 173, 174, 175, - 176, 177, 0, 178, 179, 180, 181, 182, 0, 0, - 183, 184, 185, 186, 187, 0, 188, 189, 190, 0, - 191, 192, 193, 0, 194, 195, 196, 197, 198, 199, - 200, 201, 202, 203, 204, 0, 205, 0, 206, 207, - 208, 209, 0, 210, 0, 211, 0, 0, 0, 214, - 215, 510, 0, 218, 0, 219, 0, 220, 221, 222, - 0, 223, 224, 225, 226, 227, 228, 229, 0, 231, - 232, 233, 234, 0, 235, 236, 237, 238, 239, 240, - 0, 241, 0, 243, 244, 245, 246, 247, 248, 249, - 250, 0, 251, 0, 252, 0, 0, 255, 0, 257, - 258, 259, 260, 261, 262, 0, 0, 263, 0, 265, - 0, 0, 267, 268, 269, 0, 0, 270, 271, 272, - 273, 274, 511, 276, 277, 278, 279, 280, 281, 282, - 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, - 293, 294, 0, 296, 297, 298, 299, 300, 0, 301, - 302, 0, 304, 0, 305, 306, 307, 308, 309, 310, - 0, 311, 312, 0, 0, 313, 314, 315, 0, 0, - 316, 317, 0, 319, 0, 321, 322, 323, 324, 325, - 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, - 335, 336, 337, 338, 339, 340, 0, 341, 342, 343, - 344, 345, 346, 0, 347, 348, 349, 350, 351, 352, - 353, 354, 0, 355, 356, 357, 358, 359, 360, 361, - 362, 363, 364, 365, 366, 367, 0, 368, 369, 0, - 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, - 381, 382, 383, 384, 385, 0, 386, 387, 388, 389, - 390, 0, 392, 393, 394, 395, 396, 0, 398, 399, - 400, 401, 0, 402, 403, 404, 405, 406, 407, 408, - 409, 410, 411, 412, 413, 513, 415, 416, 417, 0, - 418, 419, 0, 420, 0, 422, 423, 424, 425, 426, - 0, 427, 428, 0, 0, 429, 430, 431, 432, 433, - 0, 434, 435, 436, 437, 438, 439, 440, 441, 0, - 0, 442, 443, 444, 445, 446, 0, 0, 448, 449, - 450, 451, 452, 453, 454, 0, 455, 0, 457, 458, - 459, 460, 461, 0, 0, 462, 0, 0, 463, 464, - 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, - 475, 476, 477, 478, 479, 480, 481, 482, 483, 507, - 0, 583, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 94, 95, 96, - 97, 98, 99, 100, 101, 0, 102, 103, 104, 0, - 0, 0, 0, 0, 0, 0, 105, 106, 0, 107, - 108, 109, 0, 111, 112, 113, 114, 115, 0, 117, - 118, 0, 119, 120, 121, 122, 123, 124, 0, 0, - 125, 126, 127, 128, 129, 0, 130, 131, 132, 133, - 134, 0, 0, 0, 136, 137, 138, 139, 140, 141, - 0, 143, 144, 145, 0, 146, 147, 148, 149, 150, - 151, 0, 0, 153, 154, 155, 0, 0, 0, 0, - 0, 0, 0, 161, 162, 163, 164, 165, 166, 167, - 168, 169, 170, 0, 171, 0, 172, 173, 174, 175, - 176, 177, 0, 178, 179, 180, 181, 182, 0, 0, - 183, 184, 185, 186, 187, 0, 188, 189, 190, 0, - 191, 192, 193, 0, 194, 195, 196, 197, 198, 199, - 200, 201, 202, 203, 204, 0, 205, 0, 206, 207, - 208, 209, 0, 210, 0, 211, 0, 0, 0, 214, - 215, 510, 0, 218, 0, 219, 0, 220, 221, 222, - 0, 223, 224, 225, 226, 227, 228, 229, 0, 231, - 232, 233, 234, 0, 235, 236, 237, 238, 239, 240, - 0, 241, 0, 243, 244, 245, 246, 247, 248, 249, - 250, 0, 251, 0, 252, 0, 0, 255, 0, 257, - 258, 259, 260, 261, 262, 0, 0, 263, 0, 265, - 0, 0, 267, 268, 269, 0, 0, 270, 271, 272, - 273, 274, 511, 276, 277, 278, 279, 280, 281, 282, - 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, - 293, 294, 0, 296, 297, 298, 299, 300, 0, 301, - 302, 0, 304, 0, 305, 306, 307, 308, 309, 310, - 0, 311, 312, 0, 0, 313, 314, 315, 0, 0, - 316, 317, 0, 319, 0, 321, 322, 323, 324, 325, - 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, - 335, 336, 337, 338, 339, 340, 0, 341, 342, 343, - 344, 345, 346, 0, 347, 348, 349, 350, 351, 352, - 353, 354, 0, 355, 356, 357, 358, 359, 360, 361, - 362, 363, 364, 365, 366, 367, 0, 368, 369, 0, - 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, - 381, 382, 383, 384, 385, 0, 386, 387, 388, 389, - 390, 0, 392, 393, 394, 395, 396, 0, 398, 399, - 400, 401, 0, 402, 403, 404, 405, 406, 407, 408, - 409, 410, 411, 412, 413, 513, 415, 416, 417, 0, - 418, 419, 0, 420, 0, 422, 423, 424, 425, 426, - 0, 427, 428, 0, 0, 429, 430, 431, 432, 433, - 0, 434, 435, 436, 437, 438, 439, 440, 441, 0, - 0, 442, 443, 444, 445, 446, 0, 0, 448, 449, - 450, 451, 452, 453, 454, 0, 455, 0, 457, 458, - 459, 460, 461, 0, 0, 462, 0, 0, 463, 464, - 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, - 475, 476, 477, 478, 479, 480, 481, 482, 483, 507, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 94, 95, 96, - 97, 98, 99, 100, 101, 590, 102, 103, 104, 0, - 0, 0, 0, 0, 0, 0, 105, 106, 0, 107, - 108, 109, 0, 111, 112, 113, 114, 115, 0, 117, - 118, 0, 119, 120, 121, 122, 123, 124, 0, 0, - 125, 126, 127, 128, 129, 0, 130, 131, 132, 133, - 134, 0, 0, 0, 136, 137, 138, 139, 140, 141, - 0, 143, 144, 145, 0, 146, 147, 148, 149, 150, - 151, 0, 0, 153, 154, 155, 0, 0, 0, 0, - 0, 0, 0, 161, 162, 163, 164, 165, 166, 167, - 168, 169, 170, 0, 171, 0, 172, 173, 174, 175, - 176, 177, 0, 178, 179, 180, 181, 182, 0, 0, - 183, 184, 185, 186, 187, 0, 188, 189, 190, 0, - 191, 192, 193, 0, 194, 195, 196, 197, 198, 199, - 200, 201, 202, 203, 204, 0, 205, 0, 206, 207, - 208, 209, 0, 210, 0, 211, 0, 0, 0, 214, - 215, 510, 0, 218, 0, 219, 0, 220, 221, 222, - 0, 223, 224, 225, 226, 227, 228, 229, 0, 231, - 232, 233, 234, 0, 235, 236, 237, 238, 239, 240, - 0, 241, 0, 243, 244, 245, 246, 247, 248, 249, - 250, 0, 251, 0, 252, 0, 0, 255, 0, 257, - 258, 259, 260, 261, 262, 0, 0, 263, 0, 265, - 0, 0, 267, 268, 269, 0, 0, 270, 271, 272, - 273, 274, 511, 276, 277, 278, 279, 280, 281, 282, - 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, - 293, 294, 0, 296, 297, 298, 299, 300, 0, 301, - 302, 0, 304, 0, 305, 306, 307, 308, 309, 310, - 0, 311, 312, 0, 0, 313, 314, 315, 0, 0, - 316, 317, 0, 319, 0, 321, 322, 323, 324, 325, - 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, - 335, 336, 337, 338, 339, 340, 0, 341, 342, 343, - 344, 345, 346, 0, 347, 348, 349, 350, 351, 352, - 353, 354, 0, 355, 356, 357, 358, 359, 360, 361, - 362, 363, 364, 365, 366, 367, 0, 368, 369, 0, - 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, - 381, 382, 383, 384, 385, 0, 386, 387, 388, 389, - 390, 0, 392, 393, 394, 395, 396, 0, 398, 399, - 400, 401, 0, 402, 403, 404, 405, 406, 407, 408, - 409, 410, 411, 412, 413, 513, 415, 416, 417, 0, - 418, 419, 0, 420, 0, 422, 423, 424, 425, 426, - 0, 591, 428, 0, 0, 592, 430, 431, 432, 433, - 0, 434, 435, 436, 437, 438, 439, 440, 441, 0, - 0, 442, 443, 444, 445, 446, 0, 0, 448, 449, - 450, 451, 452, 453, 454, 0, 455, 0, 457, 458, - 459, 460, 461, 0, 0, 462, 0, 0, 463, 464, - 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, - 475, 476, 477, 478, 479, 480, 481, 482, 483, 507, - 0, 508, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 94, 95, 96, - 97, 98, 99, 100, 101, 0, 102, 103, 104, 0, - 0, 0, 0, 0, 0, 0, 105, 106, 0, 107, - 108, 109, 0, 111, 112, 113, 114, 115, 0, 117, - 118, 0, 119, 120, 121, 122, 123, 124, 0, 0, - 125, 126, 127, 128, 129, 0, 130, 131, 132, 133, - 134, 0, 0, 0, 136, 137, 138, 139, 140, 141, - 0, 143, 144, 145, 0, 146, 147, 148, 149, 150, - 151, 0, 0, 153, 154, 155, 0, 0, 0, 0, - 0, 0, 0, 161, 162, 163, 164, 165, 166, 167, - 168, 169, 170, 0, 171, 0, 172, 173, 174, 175, - 176, 177, 0, 178, 179, 180, 181, 182, 0, 0, - 183, 184, 185, 186, 187, 0, 188, 189, 190, 0, - 191, 192, 193, 0, 194, 195, 196, 197, 198, 199, - 200, 201, 202, 203, 204, 0, 205, 0, 206, 207, - 208, 209, 0, 210, 0, 211, 0, 0, 0, 214, - 215, 510, 0, 218, 0, 219, 0, 220, 221, 222, - 0, 223, 224, 225, 226, 227, 228, 229, 0, 231, - 232, 233, 234, 0, 235, 236, 237, 238, 239, 240, - 0, 241, 0, 243, 244, 245, 246, 247, 248, 249, - 250, 0, 251, 0, 252, 0, 0, 255, 0, 257, - 258, 259, 260, 261, 262, 0, 0, 263, 0, 265, - 0, 0, 267, 268, 269, 0, 0, 270, 271, 272, - 273, 274, 511, 276, 277, 278, 279, 280, 281, 282, - 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, - 293, 294, 0, 296, 297, 298, 299, 300, 0, 301, - 302, 0, 304, 0, 305, 306, 307, 308, 309, 310, - 0, 311, 312, 0, 0, 313, 314, 315, 0, 0, - 316, 317, 0, 319, 0, 321, 322, 323, 324, 325, - 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, - 335, 336, 337, 338, 339, 340, 0, 341, 342, 343, - 344, 345, 346, 0, 347, 348, 349, 350, 351, 352, - 624, 354, 0, 355, 356, 357, 358, 359, 360, 361, - 362, 363, 364, 365, 366, 367, 0, 368, 369, 0, - 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, - 381, 382, 383, 384, 385, 0, 386, 387, 388, 389, - 390, 0, 392, 393, 394, 395, 396, 0, 398, 399, - 400, 401, 0, 402, 403, 404, 405, 406, 407, 408, - 409, 410, 411, 412, 413, 513, 415, 416, 417, 0, - 418, 419, 0, 420, 0, 422, 423, 424, 425, 426, - 0, 427, 428, 0, 0, 429, 430, 431, 432, 433, - 0, 434, 435, 436, 437, 438, 439, 440, 441, 0, - 0, 442, 443, 444, 445, 446, 0, 0, 448, 449, - 450, 451, 452, 453, 454, 0, 455, 0, 457, 458, - 459, 460, 461, 0, 0, 462, 0, 0, 463, 464, - 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, - 475, 476, 477, 478, 479, 480, 481, 482, 483, 507, - 0, 508, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 94, 95, 96, - 97, 98, 99, 100, 101, 0, 102, 103, 104, 0, - 0, 0, 0, 0, 0, 0, 105, 106, 0, 107, - 108, 109, 0, 111, 112, 113, 114, 115, 0, 117, - 118, 0, 119, 120, 121, 122, 123, 124, 0, 0, - 125, 126, 127, 128, 129, 0, 130, 131, 132, 133, - 134, 0, 0, 0, 136, 137, 138, 139, 140, 141, - 0, 143, 144, 145, 0, 146, 147, 148, 149, 150, - 151, 0, 0, 153, 154, 155, 0, 0, 0, 0, - 0, 0, 0, 161, 162, 163, 164, 165, 166, 167, - 168, 169, 170, 0, 171, 0, 172, 173, 174, 175, - 176, 177, 0, 178, 179, 180, 181, 182, 0, 0, - 183, 184, 185, 186, 187, 0, 188, 189, 190, 0, - 191, 192, 193, 0, 194, 195, 196, 197, 198, 199, - 200, 201, 202, 203, 204, 0, 205, 0, 206, 207, - 208, 209, 0, 210, 0, 211, 0, 0, 0, 214, - 215, 510, 0, 218, 0, 219, 0, 220, 221, 222, - 0, 223, 224, 225, 226, 227, 653, 229, 0, 231, - 232, 233, 234, 0, 235, 236, 237, 238, 239, 240, - 0, 241, 0, 243, 244, 245, 246, 247, 248, 249, - 250, 0, 251, 0, 252, 0, 0, 255, 0, 257, - 258, 259, 260, 261, 262, 0, 0, 263, 0, 265, - 0, 0, 267, 268, 269, 0, 0, 270, 271, 272, - 273, 274, 511, 276, 277, 278, 279, 280, 281, 282, - 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, - 293, 294, 0, 296, 297, 298, 299, 300, 0, 301, - 302, 0, 304, 0, 305, 306, 307, 308, 309, 310, - 0, 311, 312, 0, 0, 313, 314, 315, 0, 0, - 316, 317, 0, 319, 0, 321, 322, 323, 324, 325, - 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, - 335, 336, 337, 338, 339, 340, 0, 341, 342, 343, - 344, 345, 346, 0, 347, 348, 349, 350, 351, 352, - 353, 354, 0, 355, 356, 357, 358, 359, 360, 361, - 362, 363, 364, 365, 366, 367, 0, 368, 369, 0, - 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, - 381, 382, 383, 384, 385, 0, 386, 387, 388, 389, - 390, 0, 392, 393, 394, 395, 396, 0, 398, 399, - 400, 401, 0, 402, 403, 404, 405, 406, 407, 408, - 409, 410, 411, 412, 413, 513, 415, 416, 417, 0, - 418, 419, 0, 420, 0, 422, 423, 424, 425, 426, - 0, 427, 428, 0, 0, 429, 430, 431, 432, 433, - 0, 434, 435, 436, 437, 438, 439, 440, 441, 0, - 0, 442, 443, 444, 445, 446, 0, 0, 448, 449, - 450, 451, 452, 453, 454, 0, 455, 0, 457, 458, - 459, 460, 461, 0, 0, 462, 0, 0, 463, 464, - 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, - 475, 476, 477, 478, 479, 480, 481, 482, 483, 507, - 0, 508, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 94, 95, 96, - 97, 98, 99, 100, 101, 0, 102, 103, 104, 0, - 0, 0, 0, 0, 0, 0, 105, 106, 0, 107, - 108, 109, 0, 111, 112, 113, 114, 115, 0, 117, - 118, 0, 119, 120, 121, 122, 123, 124, 0, 0, - 125, 126, 127, 128, 129, 0, 130, 131, 132, 133, - 134, 0, 0, 0, 136, 137, 138, 139, 140, 141, - 0, 143, 144, 145, 0, 146, 147, 148, 149, 150, - 151, 0, 0, 153, 154, 155, 0, 0, 0, 0, - 0, 0, 0, 161, 162, 163, 164, 165, 166, 167, - 168, 169, 170, 0, 171, 0, 172, 173, 174, 175, - 176, 177, 0, 178, 179, 180, 181, 182, 0, 0, - 183, 184, 185, 186, 187, 0, 188, 189, 190, 0, - 191, 192, 193, 0, 194, 195, 196, 197, 198, 199, - 200, 201, 202, 203, 204, 0, 205, 0, 206, 207, - 208, 209, 0, 210, 0, 211, 0, 0, 0, 214, - 215, 510, 0, 218, 0, 219, 0, 220, 221, 222, - 0, 223, 224, 225, 226, 227, 656, 229, 0, 231, - 232, 233, 234, 0, 235, 236, 237, 238, 239, 240, - 0, 241, 0, 243, 244, 245, 246, 247, 248, 249, - 250, 0, 251, 0, 252, 0, 0, 255, 0, 257, - 258, 259, 260, 261, 262, 0, 0, 263, 0, 265, - 0, 0, 267, 268, 269, 0, 0, 270, 271, 272, - 273, 274, 511, 276, 277, 278, 279, 280, 281, 282, - 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, - 293, 294, 0, 296, 297, 298, 299, 300, 0, 301, - 302, 0, 304, 0, 305, 306, 307, 308, 309, 310, - 0, 311, 312, 0, 0, 313, 314, 315, 0, 0, - 316, 317, 0, 319, 0, 321, 322, 323, 324, 325, - 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, - 335, 336, 337, 338, 339, 340, 0, 341, 342, 343, - 344, 345, 346, 0, 347, 348, 349, 350, 351, 352, - 353, 354, 0, 355, 356, 357, 358, 359, 360, 361, - 362, 363, 364, 365, 366, 367, 0, 368, 369, 0, - 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, - 381, 382, 383, 384, 385, 0, 386, 387, 388, 389, - 390, 0, 392, 393, 394, 395, 396, 0, 398, 399, - 400, 401, 0, 402, 403, 404, 405, 406, 407, 408, - 409, 410, 411, 412, 413, 513, 415, 416, 417, 0, - 418, 419, 0, 420, 0, 422, 423, 424, 425, 426, - 0, 427, 428, 0, 0, 429, 430, 431, 432, 433, - 0, 434, 435, 436, 437, 438, 439, 440, 441, 0, - 0, 442, 443, 444, 445, 446, 0, 0, 448, 449, - 450, 451, 452, 453, 454, 0, 455, 0, 457, 458, - 459, 460, 461, 0, 0, 462, 0, 0, 463, 464, - 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, - 475, 476, 477, 478, 479, 480, 481, 482, 483, 507, - 0, 508, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 94, 95, 96, - 97, 98, 99, 100, 101, 0, 102, 103, 104, 0, - 0, 0, 0, 0, 0, 0, 105, 106, 0, 107, - 108, 109, 0, 111, 112, 113, 114, 115, 0, 117, - 118, 0, 119, 120, 121, 122, 123, 124, 0, 0, - 125, 126, 127, 128, 129, 0, 130, 131, 132, 133, - 134, 0, 0, 0, 136, 137, 138, 139, 140, 141, - 0, 143, 144, 145, 0, 146, 147, 148, 149, 150, - 151, 0, 0, 153, 154, 155, 0, 0, 0, 0, - 0, 0, 0, 161, 162, 163, 164, 165, 166, 167, - 168, 169, 170, 0, 171, 0, 172, 173, 174, 175, - 176, 177, 0, 178, 179, 180, 181, 182, 0, 0, - 183, 184, 185, 186, 187, 0, 188, 189, 190, 0, - 191, 192, 193, 0, 194, 195, 196, 197, 198, 199, - 200, 201, 202, 203, 204, 0, 205, 0, 206, 207, - 208, 209, 0, 210, 0, 211, 0, 0, 0, 214, - 215, 510, 0, 218, 0, 219, 0, 220, 221, 222, - 0, 223, 224, 225, 226, 227, 660, 229, 0, 231, - 232, 233, 234, 0, 235, 236, 237, 238, 239, 240, - 0, 241, 0, 243, 244, 245, 246, 247, 248, 249, - 250, 0, 251, 0, 252, 0, 0, 255, 0, 257, - 258, 259, 260, 261, 262, 0, 0, 263, 0, 265, - 0, 0, 267, 268, 269, 0, 0, 270, 271, 272, - 273, 274, 511, 276, 277, 278, 279, 280, 281, 282, - 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, - 293, 294, 0, 296, 297, 298, 299, 300, 0, 301, - 302, 0, 304, 0, 305, 306, 307, 308, 309, 310, - 0, 311, 312, 0, 0, 313, 314, 315, 0, 0, - 316, 317, 0, 319, 0, 321, 322, 323, 324, 325, - 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, - 335, 336, 337, 338, 339, 340, 0, 341, 342, 343, - 344, 345, 346, 0, 347, 348, 349, 350, 351, 352, - 353, 354, 0, 355, 356, 357, 358, 359, 360, 361, - 362, 363, 364, 365, 366, 367, 0, 368, 369, 0, - 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, - 381, 382, 383, 384, 385, 0, 386, 387, 388, 389, - 390, 0, 392, 393, 394, 395, 396, 0, 398, 399, - 400, 401, 0, 402, 403, 404, 405, 406, 407, 408, - 409, 410, 411, 412, 413, 513, 415, 416, 417, 0, - 418, 419, 0, 420, 0, 422, 423, 424, 425, 426, - 0, 427, 428, 0, 0, 429, 430, 431, 432, 433, - 0, 434, 435, 436, 437, 438, 439, 440, 441, 0, - 0, 442, 443, 444, 445, 446, 0, 0, 448, 449, - 450, 451, 452, 453, 454, 0, 455, 0, 457, 458, - 459, 460, 461, 0, 0, 462, 0, 0, 463, 464, - 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, - 475, 476, 477, 478, 479, 480, 481, 482, 483, 699, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 94, 95, 96, - 97, 98, 99, 100, 101, 0, 102, 103, 104, 0, - 0, 0, 0, 0, 0, 0, 105, 106, 0, 107, - 108, 109, 700, 111, 112, 113, 0, 701, 702, 703, - 704, 0, 119, 120, 121, 122, 123, 124, 0, 0, - 125, 126, 705, 706, 129, 0, 130, 131, 132, 133, - 0, 0, 707, 0, 136, 137, 138, 139, 140, 141, - 708, 143, 144, 145, 0, 146, 147, 148, 149, 150, - 151, 0, 709, 153, 154, 155, 710, 711, 712, 713, - 0, 0, 714, 161, 162, 163, 164, 165, 166, 167, - 715, 716, 170, 0, 171, 0, 172, 173, 174, 175, - 176, 177, 0, 178, 179, 180, 181, 182, 0, 0, - 183, 184, 717, 186, 187, 0, 188, 189, 190, 0, - 191, 192, 193, 0, 194, 195, 196, 197, 0, 199, - 200, 201, 202, 203, 0, 0, 205, 0, 206, 207, - 718, 209, 0, 210, 0, 211, 719, 0, 720, 214, - 215, 0, 721, 218, 0, 219, 0, 0, 0, 222, - 0, 223, 224, 225, 226, 227, 722, 229, 723, 231, - 232, 233, 234, 0, 235, 236, 237, 238, 239, 240, - 0, 241, 724, 0, 244, 245, 246, 247, 248, 725, - 726, 0, 727, 0, 252, 728, 729, 255, 730, 257, - 258, 259, 260, 261, 262, 0, 0, 263, 731, 265, - 732, 0, 267, 268, 269, 0, 0, 270, 271, 272, - 273, 274, 733, 276, 277, 278, 279, 280, 281, 282, - 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, - 293, 734, 735, 736, 297, 298, 299, 0, 0, 301, - 302, 737, 304, 0, 0, 306, 738, 308, 309, 310, - 0, 311, 312, 0, 0, 313, 314, 315, 0, 0, - 316, 0, 739, 319, 740, 0, 322, 323, 324, 325, - 326, 327, 328, 329, 330, 331, 0, 332, 333, 0, - 335, 336, 0, 338, 339, 340, 0, 341, 342, 343, - 344, 345, 346, 0, 347, 348, 349, 741, 351, 352, - 353, 354, 0, 355, 356, 357, 358, 359, 360, 361, - 362, 363, 364, 365, 366, 367, 0, 368, 369, 742, - 371, 372, 373, 743, 375, 376, 377, 378, 379, 380, - 381, 382, 383, 384, 385, 0, 386, 387, 388, 389, - 390, 744, 392, 745, 394, 395, 396, 746, 398, 399, - 747, 401, 0, 402, 403, 404, 405, 406, 407, 408, - 409, 410, 411, 412, 413, 748, 415, 0, 417, 0, - 418, 419, 0, 420, 749, 422, 423, 424, 425, 426, - 0, 750, 751, 0, 0, 429, 430, 0, 432, 0, - 0, 434, 435, 752, 437, 438, 439, 440, 441, 0, - 0, 442, 443, 444, 445, 446, 753, 0, 448, 449, - 450, 451, 452, 0, 754, 0, 455, 755, 457, 458, - 459, 460, 461, 0, 0, 462, 0, 0, 463, 464, - 465, 466, 467, 468, 507, 0, 508, 0, 0, 0, - 0, 0, 0, 0, 0, 480, 481, 482, 483, 0, - 0, 0, 94, 95, 96, 97, 98, 99, 100, 101, + 411, 412, 413, 414, 415, 938, 417, 0, 418, 419, + 31, 420, 421, 422, 423, 424, 425, 426, 0, 427, + 428, 0, 0, 429, 430, 941, 432, 942, 0, 434, + 435, 944, 437, 438, 439, 440, 441, 0, 0, 442, + 443, 444, 445, 446, 945, 0, 448, 449, 450, 451, + 452, 611, 454, 0, 455, 456, 457, 458, 459, 460, + 461, 0, 0, 462, 0, 34, 463, 464, 465, 466, + 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, + 477, 478, 479, 480, 481, 482, 483, 0, 0, 35, + 785, 1307, 583, 0, 0, 0, 892, 0, 0, 0, + 0, 0, 0, 2146, 0, 0, 0, 0, 94, 95, + 96, 97, 98, 99, 100, 101, 0, 102, 103, 104, + 0, 0, 0, 0, 0, 0, 0, 105, 106, 0, + 107, 108, 109, 786, 111, 112, 113, 787, 788, 789, + 790, 791, 0, 119, 120, 121, 122, 123, 124, 0, + 0, 125, 126, 792, 793, 129, 0, 130, 131, 132, + 133, 794, 0, 795, 0, 136, 137, 138, 139, 140, + 141, 796, 143, 144, 145, 0, 146, 147, 148, 149, + 150, 151, 0, 797, 153, 154, 155, 798, 799, 800, + 801, 0, 0, 802, 161, 162, 163, 164, 165, 166, + 167, 803, 804, 170, 0, 171, 0, 172, 173, 174, + 175, 176, 177, 0, 178, 179, 180, 181, 182, 0, + 0, 183, 184, 185, 186, 187, 0, 188, 189, 190, + 0, 191, 192, 193, 0, 194, 195, 196, 197, 805, + 199, 200, 201, 202, 203, 806, 1308, 205, 0, 206, + 207, 807, 209, 0, 210, 0, 211, 808, 0, 809, + 214, 215, 810, 811, 218, 0, 219, 0, 812, 813, + 222, 0, 223, 224, 225, 226, 227, 228, 229, 814, + 231, 232, 233, 234, 0, 235, 236, 237, 238, 239, + 240, 0, 241, 815, 816, 244, 245, 246, 247, 248, + 817, 818, 0, 819, 0, 252, 820, 821, 255, 822, + 257, 258, 259, 260, 261, 262, 0, 0, 263, 823, + 265, 824, 0, 267, 268, 269, 0, 0, 270, 271, + 272, 273, 274, 825, 276, 277, 278, 279, 280, 281, + 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, + 292, 293, 826, 827, 828, 297, 298, 299, 829, 0, + 301, 302, 830, 304, 0, 831, 306, 832, 308, 309, + 310, 0, 311, 312, 1309, 0, 313, 314, 315, 0, + 0, 316, 833, 834, 319, 835, 836, 322, 323, 324, + 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, + 837, 335, 336, 838, 338, 339, 340, 0, 341, 342, + 343, 344, 345, 346, 0, 347, 348, 349, 839, 351, + 352, 353, 354, 0, 355, 356, 357, 358, 359, 360, + 361, 362, 363, 364, 365, 366, 367, 0, 368, 369, + 840, 371, 372, 373, 841, 375, 376, 377, 378, 379, + 380, 381, 382, 383, 384, 385, 0, 386, 387, 388, + 389, 390, 842, 392, 843, 394, 395, 396, 844, 398, + 399, 845, 401, 0, 402, 403, 404, 405, 406, 407, + 408, 409, 410, 411, 412, 413, 846, 415, 847, 417, + 0, 418, 419, 0, 420, 848, 422, 423, 424, 425, + 426, 0, 849, 850, 0, 0, 429, 430, 851, 432, + 852, 1310, 434, 435, 853, 437, 438, 439, 440, 441, + 0, 0, 442, 443, 444, 445, 446, 854, 0, 448, + 449, 450, 451, 452, 1202, 856, 0, 455, 857, 457, + 458, 459, 460, 461, 0, 0, 462, 0, 0, 463, + 464, 465, 466, 467, 468, 858, 859, 860, 861, 862, + 863, 864, 865, 866, 867, 868, 480, 481, 482, 483, + 93, 0, 508, 0, 0, 0, 0, 1311, 1312, 2022, + 0, 0, 0, 0, 0, 0, 2023, 0, 94, 95, + 96, 97, 98, 99, 100, 101, 0, 102, 103, 104, + 0, 0, 0, 0, 0, 0, 0, 105, 106, 0, + 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, + 117, 118, 0, 119, 120, 121, 122, 123, 124, 0, + 899, 125, 126, 127, 128, 129, 0, 130, 131, 132, + 133, 902, 0, 903, 0, 136, 137, 138, 139, 140, + 141, 142, 143, 144, 145, 0, 146, 147, 148, 149, + 150, 151, 0, 152, 153, 154, 155, 904, 905, 906, + 907, 908, 909, 910, 161, 162, 163, 164, 165, 166, + 167, 168, 169, 170, 0, 171, 0, 172, 173, 174, + 175, 176, 177, 0, 178, 179, 180, 181, 182, 0, + 0, 183, 184, 185, 186, 187, 0, 188, 189, 190, + 0, 191, 192, 193, 0, 194, 195, 196, 197, 198, + 199, 200, 201, 202, 203, 915, 0, 205, 0, 206, + 207, 208, 209, 0, 210, 0, 211, 212, 0, 213, + 214, 215, 216, 217, 218, 0, 219, 0, 220, 221, + 222, 0, 223, 224, 225, 226, 227, 228, 229, 230, + 231, 232, 233, 234, 0, 235, 236, 237, 238, 239, + 240, 0, 241, 242, 243, 244, 245, 246, 247, 248, + 249, 250, 0, 251, 0, 252, 253, 254, 255, 256, + 257, 258, 259, 260, 261, 262, 2144, 0, 263, 264, + 265, 266, 0, 267, 268, 269, 923, 924, 270, 271, + 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, + 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, + 292, 293, 294, 295, 296, 297, 298, 299, 300, 0, + 301, 302, 303, 304, 0, 929, 306, 307, 308, 309, + 310, 0, 311, 312, 0, 615, 313, 314, 315, 0, + 0, 316, 317, 318, 319, 320, 932, 322, 323, 324, + 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, + 933, 335, 336, 337, 338, 339, 340, 0, 341, 342, + 343, 344, 345, 346, 0, 347, 348, 349, 350, 351, + 352, 353, 354, 0, 355, 356, 357, 358, 359, 360, + 361, 362, 363, 364, 365, 366, 367, 0, 368, 369, + 370, 371, 372, 373, 374, 2145, 376, 377, 378, 379, + 380, 381, 382, 383, 384, 385, 0, 386, 387, 388, + 389, 390, 936, 392, 393, 394, 395, 396, 397, 398, + 399, 400, 401, 0, 402, 403, 404, 405, 406, 407, + 408, 409, 410, 411, 412, 413, 414, 415, 938, 417, + 0, 418, 419, 0, 420, 421, 422, 423, 424, 425, + 426, 0, 427, 428, 0, 0, 429, 430, 941, 432, + 942, 0, 434, 435, 944, 437, 438, 439, 440, 441, + 0, 0, 442, 443, 444, 445, 446, 945, 0, 448, + 449, 450, 451, 452, 611, 454, 0, 455, 456, 457, + 458, 459, 460, 461, 0, 0, 462, 0, 0, 463, + 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, + 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, + 785, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 2146, 0, 94, 95, + 96, 97, 98, 99, 100, 101, 0, 102, 103, 104, + 3, 4, 0, 0, 0, 0, 0, 105, 106, 0, + 107, 108, 109, 786, 111, 112, 113, 787, 788, 789, + 790, 791, 0, 119, 120, 121, 122, 123, 124, 0, + 0, 125, 126, 792, 793, 129, 0, 130, 131, 132, + 133, 794, 0, 795, 0, 136, 137, 138, 139, 140, + 141, 796, 143, 144, 145, 0, 146, 147, 148, 149, + 150, 151, 0, 797, 153, 154, 155, 798, 799, 800, + 801, 0, 0, 802, 161, 162, 163, 164, 165, 166, + 167, 803, 804, 170, 0, 171, 0, 172, 173, 174, + 175, 176, 177, 0, 178, 179, 180, 181, 182, 0, + 0, 183, 184, 185, 186, 187, 0, 188, 189, 190, + 0, 191, 192, 193, 0, 194, 195, 196, 197, 805, + 199, 200, 201, 202, 203, 806, 0, 205, 0, 206, + 207, 807, 209, 0, 210, 0, 211, 808, 0, 809, + 214, 215, 810, 811, 218, 0, 219, 0, 812, 813, + 222, 0, 223, 224, 225, 226, 227, 228, 229, 814, + 231, 232, 233, 234, 0, 235, 236, 237, 238, 239, + 240, 0, 241, 815, 816, 244, 245, 246, 247, 248, + 817, 818, 0, 819, 0, 252, 820, 821, 255, 822, + 257, 258, 259, 260, 261, 262, 0, 0, 263, 823, + 265, 824, 0, 267, 268, 269, 0, 0, 270, 271, + 272, 273, 274, 825, 276, 277, 278, 279, 280, 281, + 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, + 292, 293, 826, 827, 828, 297, 298, 299, 829, 0, + 301, 302, 830, 304, 0, 831, 306, 832, 308, 309, + 310, 0, 311, 312, 0, 0, 313, 314, 315, 0, + 0, 316, 833, 834, 319, 835, 836, 322, 323, 324, + 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, + 837, 335, 336, 838, 338, 339, 340, 0, 341, 342, + 343, 344, 345, 346, 0, 347, 348, 349, 839, 351, + 352, 353, 354, 0, 355, 356, 357, 358, 359, 360, + 361, 362, 363, 364, 365, 366, 367, 0, 368, 369, + 840, 371, 372, 373, 841, 375, 376, 377, 378, 379, + 380, 381, 382, 383, 384, 385, 26, 386, 387, 388, + 389, 390, 842, 392, 843, 394, 395, 396, 844, 398, + 399, 845, 401, 0, 402, 403, 404, 405, 406, 407, + 408, 409, 410, 411, 412, 413, 846, 415, 847, 417, + 0, 418, 419, 31, 420, 848, 422, 423, 424, 425, + 426, 0, 849, 850, 0, 0, 429, 430, 851, 432, + 852, 0, 434, 435, 853, 437, 438, 439, 440, 441, + 0, 0, 442, 443, 444, 445, 446, 854, 0, 448, + 449, 450, 451, 452, 855, 856, 0, 455, 857, 457, + 458, 459, 460, 461, 0, 0, 462, 0, 34, 463, + 464, 465, 466, 467, 468, 858, 859, 860, 861, 862, + 863, 864, 865, 866, 867, 868, 480, 481, 482, 483, + 93, 0, 35, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 36, 0, 94, 95, + 96, 97, 98, 99, 100, 101, 0, 102, 103, 104, + 0, 0, 0, 0, 0, 0, 0, 105, 106, 0, + 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, + 117, 118, 0, 119, 120, 121, 122, 123, 124, 0, + 899, 125, 126, 127, 128, 129, 0, 130, 131, 132, + 133, 902, 0, 903, 0, 136, 137, 138, 139, 140, + 141, 142, 143, 144, 145, 0, 146, 147, 148, 149, + 150, 151, 0, 152, 153, 154, 155, 904, 905, 906, + 907, 908, 909, 910, 161, 162, 163, 164, 165, 166, + 167, 168, 169, 170, 0, 171, 0, 172, 173, 174, + 175, 176, 177, 0, 178, 179, 180, 181, 182, 0, + 0, 183, 184, 185, 186, 187, 0, 188, 189, 190, + 0, 191, 192, 193, 0, 194, 195, 196, 197, 198, + 199, 200, 201, 202, 203, 915, 0, 205, 0, 206, + 207, 208, 209, 0, 210, 0, 211, 212, 0, 213, + 214, 215, 216, 217, 218, 0, 219, 0, 220, 221, + 222, 0, 223, 224, 225, 226, 227, 228, 229, 230, + 231, 232, 233, 234, 0, 235, 236, 237, 238, 239, + 240, 0, 241, 242, 243, 244, 245, 246, 247, 248, + 249, 250, 0, 251, 0, 252, 253, 254, 255, 256, + 257, 258, 259, 260, 261, 262, 0, 0, 263, 264, + 265, 266, 0, 267, 268, 269, 923, 924, 270, 271, + 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, + 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, + 292, 293, 294, 295, 296, 297, 298, 299, 300, 0, + 301, 302, 303, 304, 0, 929, 306, 307, 308, 309, + 310, 0, 311, 312, 0, 0, 313, 314, 315, 0, + 0, 316, 317, 318, 319, 320, 932, 322, 323, 324, + 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, + 933, 335, 336, 337, 338, 339, 340, 0, 341, 342, + 343, 344, 345, 346, 0, 347, 348, 349, 350, 351, + 352, 353, 354, 0, 355, 356, 357, 358, 359, 360, + 361, 362, 363, 364, 365, 366, 367, 0, 368, 369, + 370, 371, 372, 373, 374, 2145, 376, 377, 378, 379, + 380, 381, 382, 383, 384, 385, 0, 386, 387, 388, + 389, 390, 936, 392, 393, 394, 395, 396, 397, 398, + 399, 400, 401, 0, 402, 403, 404, 405, 406, 407, + 408, 409, 410, 411, 412, 413, 414, 415, 938, 417, + 0, 418, 419, 0, 420, 421, 422, 423, 424, 425, + 426, 0, 427, 428, 0, 0, 429, 430, 941, 432, + 942, 0, 434, 435, 944, 437, 438, 439, 440, 441, + 0, 0, 442, 443, 444, 445, 446, 945, 0, 448, + 449, 450, 451, 452, 453, 454, 0, 455, 456, 457, + 458, 459, 460, 461, 0, 0, 462, 0, 0, 463, + 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, + 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, + 93, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 36, 0, 94, 95, + 96, 97, 98, 99, 100, 101, 0, 102, 103, 104, + 0, 0, 0, 0, 0, 0, 0, 105, 106, 0, + 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, + 117, 118, 0, 119, 120, 121, 122, 123, 124, 0, + 899, 125, 126, 127, 128, 129, 0, 130, 131, 132, + 133, 902, 0, 903, 0, 136, 137, 138, 139, 140, + 141, 142, 143, 144, 145, 0, 146, 147, 148, 149, + 150, 151, 0, 152, 153, 154, 155, 904, 905, 906, + 907, 908, 909, 910, 161, 162, 163, 164, 165, 166, + 167, 168, 169, 170, 0, 171, 0, 172, 173, 174, + 175, 176, 177, 0, 178, 179, 180, 181, 182, 0, + 0, 183, 184, 185, 186, 187, 0, 188, 189, 190, + 0, 191, 192, 193, 0, 194, 195, 196, 197, 198, + 199, 200, 201, 202, 203, 915, 0, 205, 0, 206, + 207, 208, 209, 0, 210, 0, 211, 212, 0, 213, + 214, 215, 216, 217, 218, 0, 219, 0, 220, 221, + 222, 0, 223, 224, 225, 226, 227, 228, 229, 230, + 231, 232, 233, 234, 0, 235, 236, 237, 238, 239, + 240, 0, 241, 242, 243, 244, 245, 246, 247, 248, + 249, 250, 0, 251, 0, 252, 253, 254, 255, 256, + 257, 258, 259, 260, 261, 262, 0, 0, 263, 264, + 265, 266, 0, 267, 268, 269, 923, 924, 270, 271, + 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, + 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, + 292, 293, 294, 295, 296, 297, 298, 299, 300, 0, + 301, 302, 303, 304, 0, 929, 306, 307, 308, 309, + 310, 0, 311, 312, 0, 0, 313, 314, 315, 0, + 0, 316, 317, 318, 319, 320, 932, 322, 323, 324, + 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, + 933, 335, 336, 337, 338, 339, 340, 0, 341, 342, + 343, 344, 345, 346, 0, 347, 348, 349, 350, 351, + 352, 353, 354, 0, 355, 356, 357, 358, 359, 360, + 361, 362, 363, 364, 365, 366, 367, 0, 368, 369, + 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, + 380, 381, 382, 383, 384, 385, 0, 386, 387, 388, + 389, 390, 936, 392, 393, 394, 395, 396, 397, 398, + 399, 400, 401, 0, 402, 403, 404, 405, 406, 407, + 408, 409, 410, 411, 412, 413, 414, 415, 938, 417, + 0, 418, 419, 0, 420, 421, 422, 423, 424, 425, + 426, 0, 427, 428, 0, 0, 429, 430, 941, 432, + 942, 0, 434, 435, 944, 437, 438, 439, 440, 441, + 0, 0, 442, 443, 444, 445, 446, 945, 0, 448, + 449, 450, 451, 452, 453, 454, 0, 455, 456, 457, + 458, 459, 460, 461, 0, 0, 462, 0, 0, 463, + 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, + 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, + 507, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 2818, 0, 94, 95, + 96, 97, 98, 99, 100, 101, 648, 102, 103, 104, + 0, 0, 0, 0, 0, 0, 0, 105, 106, 0, + 107, 108, 109, 0, 111, 112, 113, 114, 115, 0, + 117, 118, 0, 119, 120, 121, 122, 123, 124, 0, + 0, 125, 126, 127, 128, 129, 0, 130, 131, 132, + 133, 134, 0, 0, 0, 136, 137, 138, 139, 140, + 141, 0, 143, 144, 145, 0, 146, 147, 148, 149, + 150, 151, 0, 0, 153, 154, 155, 0, 0, 0, + 0, 0, 0, 0, 161, 162, 163, 164, 165, 166, + 167, 168, 169, 170, 0, 171, 0, 172, 173, 174, + 175, 176, 177, 0, 178, 179, 180, 181, 182, 0, + 0, 183, 184, 185, 186, 187, 0, 188, 189, 190, + 0, 191, 192, 193, 0, 194, 195, 196, 197, 198, + 199, 200, 201, 202, 203, 204, 0, 205, 0, 206, + 207, 208, 209, 0, 210, 0, 211, 0, 0, 0, + 214, 215, 510, 0, 218, 0, 219, 0, 220, 221, + 222, 0, 223, 224, 225, 226, 227, 228, 229, 0, + 231, 232, 233, 234, 0, 235, 236, 237, 238, 239, + 240, 0, 241, 0, 243, 244, 245, 246, 247, 248, + 249, 250, 0, 251, 0, 252, 0, 0, 255, 0, + 257, 258, 259, 260, 261, 262, 0, 0, 263, 0, + 265, 0, 0, 267, 268, 269, 0, 0, 270, 271, + 272, 273, 274, 511, 276, 277, 278, 279, 280, 281, + 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, + 292, 293, 294, 0, 296, 297, 298, 299, 300, 0, + 301, 302, 0, 304, 0, 305, 306, 307, 308, 309, + 310, 0, 311, 312, 0, 0, 313, 314, 315, 0, + 0, 316, 317, 0, 319, 0, 321, 322, 323, 324, + 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, + 334, 335, 336, 337, 338, 339, 340, 0, 341, 342, + 343, 344, 345, 346, 0, 347, 348, 349, 350, 351, + 352, 353, 354, 0, 355, 356, 357, 358, 359, 360, + 361, 362, 363, 364, 365, 366, 367, 0, 368, 369, + 0, 371, 372, 373, 374, 375, 376, 377, 378, 379, + 380, 381, 382, 383, 384, 385, 26, 386, 387, 388, + 389, 390, 0, 392, 393, 394, 395, 396, 0, 398, + 399, 400, 401, 0, 402, 403, 404, 405, 406, 407, + 408, 409, 410, 411, 412, 413, 513, 415, 416, 417, + 0, 418, 419, 31, 420, 0, 422, 423, 424, 425, + 426, 0, 649, 428, 0, 0, 650, 430, 431, 432, + 433, 0, 434, 435, 436, 437, 438, 439, 440, 441, + 0, 0, 442, 443, 444, 445, 446, 0, 0, 448, + 449, 450, 451, 452, 611, 454, 0, 455, 0, 457, + 458, 459, 460, 461, 0, 0, 462, 0, 34, 463, + 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, + 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, + 507, 0, 35, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 36, 0, 94, 95, + 96, 97, 98, 99, 100, 101, 0, 102, 103, 104, + 0, 0, 0, 0, 0, 0, 0, 105, 106, 0, + 107, 108, 109, 0, 111, 112, 113, 114, 115, 0, + 117, 118, 0, 119, 120, 121, 122, 123, 124, 0, + 0, 125, 126, 127, 128, 129, 0, 130, 131, 132, + 133, 134, 0, 0, 0, 136, 137, 138, 139, 140, + 141, 0, 143, 144, 145, 0, 146, 147, 148, 149, + 150, 151, 0, 0, 153, 154, 155, 0, 0, 0, + 0, 0, 0, 0, 161, 162, 163, 164, 165, 166, + 167, 168, 169, 170, 0, 171, 0, 172, 173, 174, + 175, 176, 177, 0, 178, 179, 180, 181, 182, 0, + 0, 183, 184, 185, 186, 187, 0, 188, 189, 190, + 0, 191, 192, 193, 0, 194, 195, 196, 197, 198, + 199, 200, 201, 202, 203, 204, 0, 205, 0, 206, + 207, 208, 209, 0, 210, 0, 211, 0, 0, 0, + 214, 215, 510, 0, 218, 0, 219, 0, 220, 221, + 222, 0, 223, 224, 225, 226, 227, 228, 229, 0, + 231, 232, 233, 234, 0, 235, 236, 237, 238, 239, + 240, 0, 241, 0, 243, 244, 245, 246, 247, 248, + 249, 250, 0, 251, 0, 252, 0, 0, 255, 0, + 257, 258, 259, 260, 261, 262, 0, 0, 263, 0, + 265, 0, 0, 267, 268, 269, 0, 0, 270, 271, + 272, 273, 274, 511, 276, 277, 278, 279, 280, 281, + 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, + 292, 293, 294, 0, 296, 297, 298, 299, 300, 0, + 301, 302, 0, 304, 0, 305, 306, 307, 308, 309, + 310, 0, 311, 312, 0, 0, 313, 314, 315, 0, + 0, 316, 317, 0, 319, 0, 321, 322, 323, 324, + 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, + 334, 335, 336, 337, 338, 339, 340, 0, 341, 342, + 343, 344, 345, 346, 0, 347, 348, 349, 350, 351, + 352, 353, 354, 0, 355, 356, 357, 358, 359, 360, + 361, 362, 363, 364, 365, 366, 367, 0, 368, 369, + 0, 371, 372, 373, 374, 375, 376, 377, 378, 379, + 380, 381, 382, 383, 384, 385, 26, 386, 387, 388, + 389, 390, 0, 392, 393, 394, 395, 396, 0, 398, + 399, 400, 401, 0, 402, 403, 404, 405, 406, 407, + 408, 409, 410, 411, 412, 413, 513, 415, 416, 417, + 0, 418, 419, 31, 420, 0, 422, 423, 424, 425, + 426, 0, 427, 428, 0, 0, 429, 430, 431, 432, + 433, 0, 434, 435, 436, 437, 438, 439, 440, 441, + 0, 0, 442, 443, 444, 445, 446, 0, 0, 448, + 449, 450, 451, 452, 611, 454, 0, 455, 0, 457, + 458, 459, 460, 461, 0, 0, 462, 0, 34, 463, + 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, + 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, + 0, 507, 35, 508, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 36, 0, 0, 94, + 95, 96, 97, 98, 99, 100, 101, 0, 102, 103, + 104, 0, 0, 0, 0, 0, 0, 0, 105, 106, + 0, 107, 108, 109, 0, 111, 112, 113, 114, 115, + 0, 117, 118, 0, 119, 120, 121, 122, 123, 124, + 0, 0, 125, 126, 127, 128, 129, 0, 130, 131, + 132, 133, 134, 0, 0, 0, 136, 137, 138, 139, + 140, 141, 0, 143, 144, 145, 0, 146, 147, 148, + 149, 150, 151, 0, 0, 153, 154, 155, 0, 0, + 0, 0, 0, 0, 0, 161, 162, 163, 164, 165, + 166, 167, 168, 169, 170, 0, 171, 0, 172, 173, + 174, 175, 176, 177, 0, 178, 179, 180, 181, 182, + 0, 0, 183, 184, 185, 186, 187, 0, 188, 189, + 190, 0, 191, 192, 193, 0, 194, 195, 196, 197, + 198, 199, 200, 201, 202, 203, 204, 0, 205, 0, + 206, 207, 208, 209, 0, 210, 0, 211, 0, 0, + 0, 214, 215, 510, 0, 218, 0, 219, 0, 220, + 221, 222, 0, 223, 224, 225, 226, 227, 228, 229, + 0, 231, 232, 233, 234, 0, 235, 236, 237, 238, + 239, 240, 0, 241, 0, 243, 244, 245, 246, 247, + 248, 249, 250, 0, 251, 0, 252, 0, 0, 255, + 0, 257, 258, 259, 260, 261, 262, 0, 0, 263, + 0, 265, 0, 0, 267, 268, 269, 0, 0, 270, + 271, 272, 273, 274, 511, 276, 277, 278, 279, 280, + 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, + 291, 292, 293, 294, 0, 296, 297, 298, 299, 300, + 0, 301, 302, 0, 304, 0, 305, 306, 307, 308, + 309, 310, 0, 311, 312, 0, 0, 313, 314, 315, + 0, 0, 316, 317, 0, 319, 0, 321, 322, 323, + 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, + 333, 334, 335, 336, 337, 338, 339, 340, 0, 341, + 342, 343, 344, 345, 346, 0, 347, 348, 349, 350, + 351, 352, 353, 354, 0, 355, 356, 357, 358, 359, + 360, 361, 362, 363, 364, 365, 366, 367, 0, 368, + 369, 0, 371, 372, 373, 374, 375, 376, 377, 378, + 379, 380, 381, 382, 383, 384, 385, 0, 386, 387, + 388, 389, 390, 0, 392, 393, 394, 395, 396, 0, + 398, 399, 400, 401, 0, 402, 403, 404, 405, 406, + 407, 408, 409, 410, 411, 412, 413, 513, 415, 416, + 417, 0, 418, 419, 0, 420, 0, 422, 423, 424, + 425, 426, 0, 427, 428, 0, 0, 429, 430, 431, + 432, 433, 0, 434, 435, 436, 437, 438, 439, 440, + 441, 0, 0, 442, 443, 444, 445, 446, 0, 0, + 448, 449, 450, 451, 452, 453, 454, 0, 455, 0, + 457, 458, 459, 460, 461, 0, 0, 462, 0, 0, + 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, + 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, + 483, 507, 0, 508, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 996, 0, 94, + 95, 96, 97, 98, 99, 100, 101, 0, 102, 103, + 104, 0, 0, 0, 0, 0, 0, 0, 105, 106, + 0, 107, 108, 109, 0, 111, 112, 113, 114, 115, + 0, 117, 118, 0, 119, 120, 121, 122, 123, 124, + 0, 0, 125, 126, 127, 128, 129, 0, 130, 131, + 132, 133, 134, 0, 0, 0, 136, 137, 138, 139, + 140, 141, 0, 143, 144, 145, 0, 146, 147, 148, + 149, 150, 151, 0, 0, 153, 154, 155, 0, 0, + 0, 0, 0, 0, 0, 161, 162, 163, 164, 165, + 166, 167, 168, 169, 170, 0, 171, 0, 172, 173, + 174, 175, 176, 177, 0, 178, 179, 180, 181, 182, + 0, 0, 183, 184, 185, 186, 187, 0, 188, 189, + 190, 0, 191, 192, 193, 0, 194, 195, 196, 197, + 198, 199, 200, 201, 202, 203, 204, 0, 205, 0, + 206, 207, 208, 209, 0, 210, 0, 211, 0, 0, + 0, 214, 215, 510, 0, 218, 0, 219, 0, 220, + 221, 222, 0, 223, 224, 225, 226, 227, 228, 229, + 0, 231, 232, 233, 234, 0, 235, 236, 237, 238, + 239, 240, 0, 241, 0, 243, 244, 245, 246, 247, + 248, 249, 250, 0, 251, 0, 252, 0, 0, 255, + 0, 257, 258, 259, 260, 261, 262, 0, 0, 263, + 0, 265, 0, 0, 267, 268, 269, 0, 0, 270, + 271, 272, 273, 274, 511, 276, 277, 278, 279, 280, + 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, + 291, 292, 293, 294, 0, 296, 297, 298, 299, 300, + 0, 301, 302, 0, 304, 0, 305, 306, 307, 308, + 309, 310, 0, 311, 312, 0, 0, 313, 314, 315, + 0, 0, 316, 317, 0, 319, 0, 321, 322, 323, + 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, + 333, 334, 335, 336, 337, 338, 339, 340, 0, 341, + 342, 343, 344, 345, 346, 0, 347, 348, 349, 350, + 351, 352, 353, 354, 0, 355, 356, 357, 358, 359, + 360, 361, 362, 363, 364, 365, 366, 367, 0, 368, + 369, 0, 371, 372, 373, 374, 375, 376, 377, 378, + 379, 380, 381, 382, 383, 384, 385, 0, 386, 387, + 388, 389, 390, 0, 392, 393, 394, 395, 396, 0, + 398, 399, 400, 401, 0, 402, 403, 404, 405, 406, + 407, 408, 409, 410, 411, 412, 413, 513, 415, 416, + 417, 0, 418, 419, 0, 420, 0, 422, 423, 424, + 425, 426, 0, 427, 428, 0, 0, 429, 430, 431, + 432, 433, 0, 434, 435, 436, 437, 438, 439, 440, + 441, 0, 0, 442, 443, 444, 445, 446, 0, 0, + 448, 449, 450, 451, 452, 453, 454, 0, 455, 0, + 457, 458, 459, 460, 461, 0, 0, 462, 0, 0, + 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, + 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, + 483, 507, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 2658, 0, 94, + 95, 96, 97, 98, 99, 100, 101, 0, 102, 103, + 104, 0, 0, 0, 0, 0, 0, 0, 105, 106, + 0, 107, 108, 109, 0, 111, 112, 113, 114, 115, + 0, 117, 118, 0, 119, 120, 121, 122, 123, 124, + 0, 0, 125, 126, 127, 128, 129, 0, 130, 131, + 132, 133, 134, 0, 0, 0, 136, 137, 138, 139, + 140, 141, 0, 143, 144, 145, 0, 146, 147, 148, + 149, 150, 151, 0, 0, 153, 154, 155, 0, 0, + 0, 0, 0, 0, 0, 161, 162, 163, 164, 165, + 166, 167, 168, 169, 170, 0, 171, 0, 172, 173, + 174, 175, 176, 177, 0, 178, 179, 180, 181, 182, + 0, 0, 183, 184, 185, 186, 187, 0, 188, 189, + 190, 0, 191, 192, 193, 0, 194, 195, 196, 197, + 198, 199, 200, 201, 202, 203, 204, 0, 205, 0, + 206, 207, 208, 209, 0, 210, 0, 211, 0, 0, + 0, 214, 215, 510, 0, 218, 0, 219, 0, 220, + 221, 222, 0, 223, 224, 225, 226, 227, 228, 229, + 0, 231, 232, 233, 234, 0, 235, 236, 237, 238, + 239, 240, 0, 241, 0, 243, 244, 245, 246, 247, + 248, 249, 250, 0, 251, 0, 252, 0, 0, 255, + 0, 257, 258, 259, 260, 261, 262, 0, 0, 263, + 0, 265, 0, 0, 267, 268, 269, 0, 0, 270, + 271, 272, 273, 274, 511, 276, 277, 278, 279, 280, + 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, + 291, 292, 293, 294, 0, 296, 297, 298, 299, 300, + 0, 301, 302, 0, 304, 0, 305, 306, 307, 308, + 309, 310, 0, 311, 312, 0, 0, 313, 314, 315, + 0, 0, 316, 317, 0, 319, 0, 321, 322, 323, + 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, + 333, 334, 335, 336, 337, 338, 339, 340, 0, 341, + 342, 343, 344, 345, 346, 0, 347, 348, 349, 350, + 351, 352, 353, 354, 0, 355, 356, 357, 358, 359, + 360, 361, 362, 363, 364, 365, 366, 367, 0, 368, + 369, 0, 371, 372, 373, 374, 375, 376, 377, 378, + 379, 380, 381, 382, 383, 384, 385, 0, 386, 387, + 388, 389, 390, 0, 392, 393, 394, 395, 396, 0, + 398, 399, 400, 401, 0, 402, 403, 404, 405, 406, + 407, 408, 409, 410, 411, 412, 413, 513, 415, 416, + 417, 0, 418, 419, 0, 420, 0, 422, 423, 424, + 425, 426, 0, 427, 428, 0, 0, 429, 430, 431, + 432, 433, 0, 434, 435, 436, 437, 438, 439, 440, + 441, 0, 0, 442, 443, 444, 445, 446, 0, 0, + 448, 449, 450, 451, 452, 453, 454, 0, 455, 0, + 457, 458, 459, 460, 461, 0, 0, 462, 0, 0, + 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, + 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, + 483, 507, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1733, 0, 94, + 95, 96, 97, 98, 99, 100, 101, 0, 102, 103, + 104, 0, 0, 0, 0, 0, 0, 0, 105, 106, + 0, 107, 108, 109, 0, 111, 112, 113, 114, 115, + 0, 117, 118, 0, 119, 120, 121, 122, 123, 124, + 0, 0, 125, 126, 127, 128, 129, 0, 130, 131, + 132, 133, 134, 0, 0, 0, 136, 137, 138, 139, + 140, 141, 0, 143, 144, 145, 0, 146, 147, 148, + 149, 150, 151, 0, 0, 153, 154, 155, 0, 0, + 0, 0, 0, 0, 0, 161, 162, 163, 164, 165, + 166, 167, 168, 169, 170, 0, 171, 0, 172, 173, + 174, 175, 176, 177, 0, 178, 179, 180, 181, 182, + 0, 0, 183, 184, 185, 186, 187, 0, 188, 189, + 190, 0, 191, 192, 193, 0, 194, 195, 196, 197, + 198, 199, 200, 201, 202, 203, 204, 0, 205, 0, + 206, 207, 208, 209, 0, 210, 0, 211, 0, 0, + 0, 214, 215, 510, 0, 218, 0, 219, 0, 220, + 221, 222, 0, 223, 224, 225, 226, 227, 228, 229, + 0, 231, 232, 233, 234, 0, 235, 236, 237, 238, + 239, 240, 0, 241, 0, 243, 244, 245, 246, 247, + 248, 249, 250, 0, 251, 0, 252, 0, 0, 255, + 0, 257, 258, 259, 260, 261, 262, 0, 0, 263, + 0, 265, 0, 0, 267, 268, 269, 0, 0, 270, + 271, 272, 273, 274, 511, 276, 277, 278, 279, 280, + 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, + 291, 292, 293, 294, 0, 296, 297, 298, 299, 300, + 0, 301, 302, 0, 304, 0, 305, 306, 307, 308, + 309, 310, 0, 311, 312, 0, 0, 313, 314, 315, + 0, 0, 316, 317, 0, 319, 0, 321, 322, 323, + 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, + 333, 334, 335, 336, 337, 338, 339, 340, 0, 341, + 342, 343, 344, 345, 346, 0, 347, 348, 349, 350, + 351, 352, 353, 354, 0, 355, 356, 357, 358, 359, + 360, 361, 362, 363, 364, 365, 366, 367, 0, 368, + 369, 0, 371, 372, 373, 374, 375, 376, 377, 378, + 379, 380, 381, 382, 383, 384, 385, 0, 386, 387, + 388, 389, 390, 0, 392, 393, 394, 395, 396, 0, + 398, 399, 400, 401, 0, 402, 403, 404, 405, 406, + 407, 408, 409, 410, 411, 412, 413, 513, 415, 416, + 417, 0, 418, 419, 0, 420, 0, 422, 423, 424, + 425, 426, 0, 427, 428, 0, 0, 429, 430, 431, + 432, 433, 0, 434, 435, 436, 437, 438, 439, 440, + 441, 0, 0, 442, 443, 444, 445, 446, 0, 0, + 448, 449, 450, 451, 452, 453, 454, 0, 455, 0, + 457, 458, 459, 460, 461, 0, 0, 462, 0, 0, + 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, + 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, + 483, 507, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1839, 0, 94, + 95, 96, 97, 98, 99, 100, 101, 0, 102, 103, + 104, 0, 0, 0, 0, 0, 0, 0, 105, 106, + 0, 107, 108, 109, 0, 111, 112, 113, 114, 115, + 0, 117, 118, 0, 119, 120, 121, 122, 123, 124, + 0, 0, 125, 126, 127, 128, 129, 0, 130, 131, + 132, 133, 134, 0, 0, 0, 136, 137, 138, 139, + 140, 141, 0, 143, 144, 145, 0, 146, 147, 148, + 149, 150, 151, 0, 0, 153, 154, 155, 0, 0, + 0, 0, 0, 0, 0, 161, 162, 163, 164, 165, + 166, 167, 168, 169, 170, 0, 171, 0, 172, 173, + 174, 175, 176, 177, 0, 178, 179, 180, 181, 182, + 0, 0, 183, 184, 185, 186, 187, 0, 188, 189, + 190, 0, 191, 192, 193, 0, 194, 195, 196, 197, + 198, 199, 200, 201, 202, 203, 204, 0, 205, 0, + 206, 207, 208, 209, 0, 210, 0, 211, 0, 0, + 0, 214, 215, 510, 0, 218, 0, 219, 0, 220, + 221, 222, 0, 223, 224, 225, 226, 227, 228, 229, + 0, 231, 232, 233, 234, 0, 235, 236, 237, 238, + 239, 240, 0, 241, 0, 243, 244, 245, 246, 247, + 248, 249, 250, 0, 251, 0, 252, 0, 0, 255, + 0, 257, 258, 259, 260, 261, 262, 0, 0, 263, + 0, 265, 0, 0, 267, 268, 269, 0, 0, 270, + 271, 272, 273, 274, 511, 276, 277, 278, 279, 280, + 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, + 291, 292, 293, 294, 0, 296, 297, 298, 299, 300, + 0, 301, 302, 0, 304, 0, 305, 306, 307, 308, + 309, 310, 0, 311, 312, 0, 0, 313, 314, 315, + 0, 0, 316, 317, 0, 319, 0, 321, 322, 323, + 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, + 333, 334, 335, 336, 337, 338, 339, 340, 0, 341, + 342, 343, 344, 345, 346, 0, 347, 348, 349, 350, + 351, 352, 353, 354, 0, 355, 356, 357, 358, 359, + 360, 361, 362, 363, 364, 365, 366, 367, 0, 368, + 369, 0, 371, 372, 373, 374, 375, 376, 377, 378, + 379, 380, 381, 382, 383, 384, 385, 0, 386, 387, + 388, 389, 390, 0, 392, 393, 394, 395, 396, 0, + 398, 399, 400, 401, 0, 402, 403, 404, 405, 406, + 407, 408, 409, 410, 411, 412, 413, 513, 415, 416, + 417, 0, 418, 419, 0, 420, 0, 422, 423, 424, + 425, 426, 0, 427, 428, 0, 0, 429, 430, 431, + 432, 433, 0, 434, 435, 436, 437, 438, 439, 440, + 441, 0, 0, 442, 443, 444, 445, 446, 0, 0, + 448, 449, 450, 451, 452, 453, 454, 0, 455, 0, + 457, 458, 459, 460, 461, 0, 0, 462, 0, 0, + 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, + 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, + 483, 0, 0, 2507, 1307, 583, 0, 0, 1693, 892, + 0, 0, 0, 0, 0, 1694, 0, 2630, 1695, 1696, + 1697, 94, 95, 96, 97, 98, 99, 100, 101, 1135, + 102, 103, 104, 1136, 1137, 1138, 1139, 1140, 1141, 1142, + 105, 106, 1143, 107, 108, 109, 2508, 111, 112, 113, + 0, 701, 2509, 703, 704, 1144, 119, 120, 121, 122, + 123, 124, 1145, 1146, 125, 126, 705, 706, 129, 1147, + 130, 131, 132, 133, 0, 1148, 2510, 1149, 136, 137, + 138, 139, 140, 141, 2511, 143, 144, 145, 1150, 146, + 147, 148, 149, 150, 151, 1151, 2512, 153, 154, 155, + 2513, 2514, 2515, 2516, 1152, 1153, 2517, 161, 162, 163, + 164, 165, 166, 167, 715, 716, 170, 1154, 171, 1155, + 172, 173, 174, 175, 176, 177, 1156, 178, 179, 180, + 181, 182, 1157, 1158, 183, 184, 717, 186, 187, 1159, + 188, 189, 190, 1160, 191, 192, 193, 1161, 194, 195, + 196, 197, 0, 199, 200, 201, 202, 203, 0, 1162, + 205, 1163, 206, 207, 718, 209, 1164, 210, 1165, 211, + 2518, 1166, 2519, 214, 215, 2520, 2521, 218, 1167, 219, + 1168, 0, 0, 222, 1169, 223, 224, 225, 226, 227, + 228, 229, 2522, 231, 232, 233, 234, 1170, 235, 236, + 237, 238, 239, 240, 1171, 241, 2523, 0, 244, 245, + 246, 247, 248, 725, 726, 1172, 727, 1173, 252, 2524, + 2525, 255, 2526, 257, 258, 259, 260, 261, 262, 1174, + 1175, 263, 2527, 265, 2528, 1176, 267, 268, 269, 1177, + 1178, 270, 271, 272, 273, 274, 2529, 276, 277, 278, + 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, + 289, 290, 291, 292, 293, 734, 2530, 736, 297, 298, + 299, 2531, 1179, 301, 302, 2532, 304, 1180, 0, 306, + 738, 308, 309, 310, 1181, 311, 312, 1182, 1183, 2533, + 314, 315, 1184, 1185, 316, 0, 2534, 319, 2535, 0, + 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, + 1186, 332, 333, 0, 335, 336, 0, 338, 339, 340, + 1187, 341, 342, 343, 344, 345, 346, 1188, 347, 348, + 349, 741, 351, 352, 353, 354, 1189, 355, 356, 357, + 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, + 1190, 368, 369, 2536, 371, 372, 373, 743, 375, 376, + 377, 378, 379, 380, 381, 382, 383, 384, 385, 1191, + 386, 387, 388, 389, 390, 2537, 392, 2538, 394, 395, + 396, 2539, 398, 399, 747, 401, 1192, 402, 403, 404, + 405, 406, 407, 408, 409, 410, 411, 412, 413, 2540, + 415, 0, 417, 1193, 418, 419, 1194, 420, 2541, 422, + 423, 424, 425, 426, 1195, 750, 751, 1196, 1197, 429, + 430, 0, 432, 0, 1198, 434, 435, 2542, 437, 438, + 439, 440, 441, 1199, 1200, 442, 443, 444, 445, 446, + 2543, 1201, 448, 449, 450, 451, 452, 0, 754, 1203, + 455, 2544, 457, 458, 459, 460, 461, 1204, 1205, 462, + 1206, 1207, 463, 464, 465, 466, 467, 468, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 480, + 481, 482, 483, 0, 507, 0, 1698, 1699, 1700, 1693, + 2545, 2546, 1703, 1704, 1705, 1706, 1694, 0, 0, 1695, + 1696, 1697, 94, 95, 96, 97, 98, 99, 100, 101, 0, 102, 103, 104, 0, 0, 0, 0, 0, 0, 0, 105, 106, 0, 107, 108, 109, 0, 111, 112, 113, 114, 115, 0, 117, 118, 0, 119, 120, 121, @@ -7091,7 +5664,7 @@ static const yytype_int16 yytable[] = 0, 205, 0, 206, 207, 208, 209, 0, 210, 0, 211, 0, 0, 0, 214, 215, 510, 0, 218, 0, 219, 0, 220, 221, 222, 0, 223, 224, 225, 226, - 227, 777, 229, 0, 231, 232, 233, 234, 0, 235, + 227, 228, 229, 0, 231, 232, 233, 234, 0, 235, 236, 237, 238, 239, 240, 0, 241, 0, 243, 244, 245, 246, 247, 248, 249, 250, 0, 251, 0, 252, 0, 0, 255, 0, 257, 258, 259, 260, 261, 262, @@ -7120,4199 +5693,4796 @@ static const yytype_int16 yytable[] = 0, 455, 0, 457, 458, 459, 460, 461, 0, 0, 462, 0, 0, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, - 480, 481, 482, 483, 507, 0, 508, 0, 0, 0, + 480, 481, 482, 483, 0, 0, 0, 1698, 1699, 1700, + 0, 1701, 1702, 1703, 1704, 1705, 1706, 1384, 0, 0, + 1385, 0, 0, 0, 1386, 1387, 1388, 1389, 1390, 1391, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 94, 95, 96, 97, 98, 99, 100, 101, - 0, 102, 103, 104, 0, 0, 0, 0, 0, 0, - 0, 105, 106, 0, 107, 108, 109, 0, 111, 112, - 113, 114, 115, 0, 117, 118, 0, 119, 120, 121, - 122, 123, 124, 0, 0, 125, 126, 127, 128, 129, - 0, 130, 131, 132, 133, 134, 0, 0, 0, 136, - 137, 138, 139, 140, 141, 0, 143, 144, 145, 0, - 146, 147, 148, 149, 150, 151, 0, 0, 153, 154, - 155, 0, 0, 0, 0, 0, 0, 0, 161, 162, - 163, 164, 165, 166, 167, 168, 169, 170, 0, 171, - 0, 172, 173, 174, 175, 176, 177, 0, 178, 179, - 180, 181, 182, 0, 0, 183, 184, 185, 186, 187, - 0, 188, 189, 190, 0, 191, 192, 193, 0, 194, - 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, - 0, 205, 0, 206, 207, 208, 209, 0, 210, 0, - 211, 0, 0, 0, 214, 215, 510, 0, 218, 0, - 219, 0, 220, 221, 222, 0, 223, 224, 225, 226, - 227, 780, 229, 0, 231, 232, 233, 234, 0, 235, - 236, 237, 238, 239, 240, 0, 241, 0, 243, 244, - 245, 246, 247, 248, 249, 250, 0, 251, 0, 252, - 0, 0, 255, 0, 257, 258, 259, 260, 261, 262, - 0, 0, 263, 0, 265, 0, 0, 267, 268, 269, - 0, 0, 270, 271, 272, 273, 274, 511, 276, 277, - 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, - 288, 289, 290, 291, 292, 293, 294, 0, 296, 297, - 298, 299, 300, 0, 301, 302, 0, 304, 0, 305, - 306, 307, 308, 309, 310, 0, 311, 312, 0, 0, - 313, 314, 315, 0, 0, 316, 317, 0, 319, 0, - 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, - 331, 0, 332, 333, 334, 335, 336, 337, 338, 339, - 340, 0, 341, 342, 343, 344, 345, 346, 0, 347, - 348, 349, 350, 351, 352, 353, 354, 0, 355, 356, - 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, - 367, 0, 368, 369, 0, 371, 372, 373, 374, 375, - 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, - 0, 386, 387, 388, 389, 390, 0, 392, 393, 394, - 395, 396, 0, 398, 399, 400, 401, 0, 402, 403, - 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, - 513, 415, 416, 417, 0, 418, 419, 0, 420, 0, - 422, 423, 424, 425, 426, 0, 427, 428, 0, 0, - 429, 430, 431, 432, 433, 0, 434, 435, 436, 437, - 438, 439, 440, 441, 0, 0, 442, 443, 444, 445, - 446, 0, 0, 448, 449, 450, 451, 452, 453, 454, - 0, 455, 0, 457, 458, 459, 460, 461, 0, 0, - 462, 0, 0, 463, 464, 465, 466, 467, 468, 469, - 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, - 480, 481, 482, 483, 507, 0, 508, 0, 0, 0, + 0, 0, 0, 0, 1392, 0, 1384, 0, 0, 1385, + 0, 0, 1394, 1386, 1387, 1388, 1389, 1390, 1391, 1395, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 94, 95, 96, 97, 98, 99, 100, 101, - 0, 102, 103, 104, 0, 0, 0, 0, 0, 0, - 0, 105, 106, 0, 107, 108, 109, 0, 111, 112, - 113, 114, 115, 0, 117, 118, 0, 119, 120, 121, - 122, 123, 124, 0, 0, 125, 126, 127, 128, 129, - 0, 130, 131, 132, 133, 134, 0, 0, 0, 136, - 137, 138, 139, 140, 141, 0, 143, 144, 145, 0, - 146, 147, 148, 149, 150, 151, 0, 0, 153, 154, - 155, 0, 0, 0, 0, 0, 0, 0, 161, 162, - 163, 164, 165, 166, 167, 168, 169, 170, 0, 171, - 0, 172, 173, 174, 175, 176, 177, 0, 178, 179, - 180, 181, 182, 0, 0, 183, 184, 185, 186, 187, - 0, 188, 189, 190, 0, 191, 192, 193, 0, 194, - 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, - 0, 205, 0, 206, 207, 208, 209, 0, 210, 0, - 211, 0, 0, 0, 214, 215, 510, 0, 218, 0, - 219, 0, 220, 221, 222, 0, 223, 224, 225, 226, - 227, 1224, 229, 0, 231, 232, 233, 234, 0, 235, - 236, 237, 238, 239, 240, 0, 241, 0, 243, 244, - 245, 246, 247, 248, 249, 250, 0, 251, 0, 252, - 0, 0, 255, 0, 257, 258, 259, 260, 261, 262, - 0, 0, 263, 0, 265, 0, 0, 267, 268, 269, - 0, 0, 270, 271, 272, 273, 274, 511, 276, 277, - 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, - 288, 289, 290, 291, 292, 293, 294, 0, 296, 297, - 298, 299, 300, 0, 301, 302, 0, 304, 0, 305, - 306, 307, 308, 309, 310, 0, 311, 312, 0, 0, - 313, 314, 315, 0, 0, 316, 317, 0, 319, 0, - 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, - 331, 0, 332, 333, 334, 335, 336, 337, 338, 339, - 340, 0, 341, 342, 343, 344, 345, 346, 0, 347, - 348, 349, 350, 351, 352, 353, 354, 0, 355, 356, - 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, - 367, 0, 368, 369, 0, 371, 372, 373, 374, 375, - 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, - 0, 386, 387, 388, 389, 390, 0, 392, 393, 394, - 395, 396, 0, 398, 399, 400, 401, 0, 402, 403, - 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, - 513, 415, 416, 417, 0, 418, 419, 0, 420, 0, - 422, 423, 424, 425, 426, 0, 427, 428, 0, 0, - 429, 430, 431, 432, 433, 0, 434, 435, 436, 437, - 438, 439, 440, 441, 0, 0, 442, 443, 444, 445, - 446, 0, 0, 448, 449, 450, 451, 452, 453, 454, - 0, 455, 0, 457, 458, 459, 460, 461, 0, 0, - 462, 0, 0, 463, 464, 465, 466, 467, 468, 469, - 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, - 480, 481, 482, 483, 507, 0, 508, 0, 0, 0, + 0, 0, 0, 1392, 0, 0, 0, 0, 0, 0, + 0, 1394, 1384, 0, 1396, 1385, 0, 0, 1395, 1386, + 1387, 1388, 1389, 1390, 1391, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1392, + 0, 1384, 0, 1396, 1385, 0, 0, 1394, 1386, 1387, + 1388, 1389, 1390, 1391, 1395, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1392, 0, + 0, 0, 0, 0, 0, 0, 1394, 0, 0, 1396, + 0, 0, 0, 1395, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 94, 95, 96, 97, 98, 99, 100, 101, - 0, 102, 103, 104, 0, 0, 0, 0, 0, 0, - 0, 105, 106, 0, 107, 108, 109, 0, 111, 112, - 113, 114, 115, 0, 117, 118, 0, 119, 120, 121, - 122, 123, 124, 0, 0, 125, 126, 127, 128, 129, - 0, 130, 131, 132, 133, 134, 0, 0, 0, 136, - 137, 138, 139, 140, 141, 0, 143, 144, 145, 0, - 146, 147, 148, 149, 150, 151, 0, 0, 153, 154, - 155, 0, 0, 0, 0, 0, 0, 0, 161, 162, - 163, 164, 165, 166, 167, 168, 169, 170, 0, 171, - 0, 172, 173, 174, 175, 176, 177, 0, 178, 179, - 180, 181, 182, 0, 0, 183, 184, 185, 186, 187, - 0, 188, 189, 190, 0, 191, 192, 193, 0, 194, - 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, - 0, 205, 0, 206, 207, 208, 209, 0, 210, 0, - 211, 0, 0, 0, 214, 215, 510, 0, 218, 0, - 219, 0, 220, 221, 222, 0, 223, 224, 225, 226, - 227, 1226, 229, 0, 231, 232, 233, 234, 0, 235, - 236, 237, 238, 239, 240, 0, 241, 0, 243, 244, - 245, 246, 247, 248, 249, 250, 0, 251, 0, 252, - 0, 0, 255, 0, 257, 258, 259, 260, 261, 262, - 0, 0, 263, 0, 265, 0, 0, 267, 268, 269, - 0, 0, 270, 271, 272, 273, 274, 511, 276, 277, - 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, - 288, 289, 290, 291, 292, 293, 294, 0, 296, 297, - 298, 299, 300, 0, 301, 302, 0, 304, 0, 305, - 306, 307, 308, 309, 310, 0, 311, 312, 0, 0, - 313, 314, 315, 0, 0, 316, 317, 0, 319, 0, - 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, - 331, 0, 332, 333, 334, 335, 336, 337, 338, 339, - 340, 0, 341, 342, 343, 344, 345, 346, 0, 347, - 348, 349, 350, 351, 352, 353, 354, 0, 355, 356, - 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, - 367, 0, 368, 369, 0, 371, 372, 373, 374, 375, - 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, - 0, 386, 387, 388, 389, 390, 0, 392, 393, 394, - 395, 396, 0, 398, 399, 400, 401, 0, 402, 403, - 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, - 513, 415, 416, 417, 0, 418, 419, 0, 420, 0, - 422, 423, 424, 425, 426, 0, 427, 428, 0, 0, - 429, 430, 431, 432, 433, 0, 434, 435, 436, 437, - 438, 439, 440, 441, 0, 0, 442, 443, 444, 445, - 446, 0, 0, 448, 449, 450, 451, 452, 453, 454, - 0, 455, 0, 457, 458, 459, 460, 461, 0, 0, - 462, 0, 0, 463, 464, 465, 466, 467, 468, 469, - 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, - 480, 481, 482, 483, 699, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1396, 0, + 0, 0, 0, 0, 0, 1397, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 94, 95, 96, 97, 98, 99, 100, 101, - 0, 102, 103, 104, 0, 0, 0, 0, 0, 0, - 0, 105, 106, 0, 107, 108, 109, 700, 111, 112, - 113, 0, 701, 702, 703, 704, 0, 119, 120, 121, - 122, 123, 124, 0, 0, 125, 126, 705, 706, 129, - 0, 130, 131, 132, 133, 0, 0, 707, 0, 136, - 137, 138, 139, 140, 141, 708, 143, 144, 145, 0, - 146, 147, 148, 149, 150, 151, 0, 709, 153, 154, - 155, 710, 711, 712, 713, 0, 0, 714, 161, 162, - 163, 164, 165, 166, 167, 715, 716, 170, 0, 171, - 0, 172, 173, 174, 175, 176, 177, 0, 178, 179, - 180, 181, 182, 0, 0, 183, 184, 717, 186, 187, - 0, 188, 189, 190, 0, 191, 192, 193, 0, 194, - 195, 196, 197, 0, 199, 200, 201, 202, 203, 0, - 0, 205, 0, 206, 207, 718, 209, 0, 210, 0, - 211, 719, 0, 720, 214, 215, 0, 721, 218, 0, - 219, 0, 0, 0, 222, 0, 223, 224, 225, 226, - 227, 228, 229, 723, 231, 232, 233, 234, 0, 235, - 236, 237, 238, 239, 240, 0, 241, 724, 0, 244, - 245, 246, 247, 248, 725, 726, 0, 727, 0, 252, - 728, 729, 255, 730, 257, 258, 259, 260, 261, 262, - 0, 0, 263, 731, 265, 732, 0, 267, 268, 269, - 0, 0, 270, 271, 272, 273, 274, 733, 276, 277, - 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, - 288, 289, 290, 291, 292, 293, 734, 735, 736, 297, - 298, 299, 0, 0, 301, 302, 737, 304, 0, 0, - 306, 738, 308, 309, 310, 0, 311, 312, 0, 0, - 313, 314, 315, 0, 0, 316, 0, 739, 319, 740, - 0, 322, 323, 324, 325, 326, 327, 328, 329, 330, - 331, 0, 332, 333, 0, 335, 336, 0, 338, 339, - 340, 0, 341, 342, 343, 344, 345, 346, 0, 347, - 348, 349, 741, 351, 352, 353, 354, 0, 355, 356, - 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, - 367, 0, 368, 369, 742, 371, 372, 373, 743, 375, - 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, - 0, 386, 387, 388, 389, 390, 744, 392, 745, 394, - 395, 396, 746, 398, 399, 747, 401, 0, 402, 403, - 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, - 748, 415, 0, 417, 0, 418, 419, 0, 420, 749, - 422, 423, 424, 425, 426, 0, 750, 751, 0, 0, - 429, 430, 0, 432, 0, 0, 434, 435, 752, 437, - 438, 439, 440, 441, 0, 0, 442, 443, 444, 445, - 446, 753, 0, 448, 449, 450, 451, 452, 0, 754, - 0, 455, 755, 457, 458, 459, 460, 461, 0, 0, - 462, 0, 0, 463, 464, 465, 466, 467, 468, 507, - 0, 508, 0, 0, 0, 0, 0, 0, 0, 0, - 480, 481, 482, 483, 0, 0, 0, 94, 95, 96, - 97, 98, 99, 100, 101, 0, 102, 103, 104, 0, - 0, 0, 0, 0, 0, 0, 105, 106, 0, 107, - 108, 109, 0, 111, 112, 113, 114, 115, 0, 117, - 118, 0, 119, 120, 121, 122, 123, 124, 0, 0, - 125, 126, 127, 128, 129, 0, 130, 131, 132, 133, - 134, 0, 0, 0, 136, 137, 138, 139, 140, 141, - 0, 143, 144, 145, 0, 146, 147, 148, 149, 150, - 151, 0, 0, 153, 154, 155, 0, 0, 0, 0, - 0, 0, 0, 161, 162, 163, 164, 165, 166, 167, - 168, 169, 170, 0, 171, 0, 172, 173, 174, 175, - 176, 177, 0, 178, 179, 180, 181, 182, 0, 0, - 183, 184, 185, 186, 187, 0, 188, 189, 190, 0, - 191, 192, 193, 0, 194, 195, 196, 197, 198, 199, - 200, 201, 202, 203, 204, 0, 205, 0, 206, 207, - 208, 209, 0, 210, 0, 211, 0, 0, 0, 214, - 215, 510, 0, 218, 0, 219, 0, 220, 221, 222, - 0, 223, 224, 225, 226, 227, 1898, 229, 0, 231, - 232, 233, 234, 0, 235, 236, 237, 238, 239, 240, - 0, 241, 0, 243, 244, 245, 246, 247, 248, 249, - 250, 0, 251, 0, 252, 0, 0, 255, 0, 257, - 258, 259, 260, 261, 262, 0, 0, 263, 0, 265, - 0, 0, 267, 268, 269, 0, 0, 270, 271, 272, - 273, 274, 511, 276, 277, 278, 279, 280, 281, 282, - 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, - 293, 294, 0, 296, 297, 298, 299, 300, 0, 301, - 302, 0, 304, 0, 305, 306, 307, 308, 309, 310, - 0, 311, 312, 0, 0, 313, 314, 315, 0, 0, - 316, 317, 0, 319, 0, 321, 322, 323, 324, 325, - 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, - 335, 336, 337, 338, 339, 340, 0, 341, 342, 343, - 344, 345, 346, 0, 347, 348, 349, 350, 351, 352, - 353, 354, 0, 355, 356, 357, 358, 359, 360, 361, - 362, 363, 364, 365, 366, 367, 0, 368, 369, 0, - 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, - 381, 382, 383, 384, 385, 0, 386, 387, 388, 389, - 390, 0, 392, 393, 394, 395, 396, 0, 398, 399, - 400, 401, 0, 402, 403, 404, 405, 406, 407, 408, - 409, 410, 411, 412, 413, 513, 415, 416, 417, 0, - 418, 419, 0, 420, 0, 422, 423, 424, 425, 426, - 0, 427, 428, 0, 0, 429, 430, 431, 432, 433, - 0, 434, 435, 436, 437, 438, 439, 440, 441, 0, - 0, 442, 443, 444, 445, 446, 0, 0, 448, 449, - 450, 451, 452, 453, 454, 0, 455, 0, 457, 458, - 459, 460, 461, 0, 0, 462, 0, 0, 463, 464, - 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, - 475, 476, 477, 478, 479, 480, 481, 482, 483, 507, + 0, 1398, 0, 0, 0, 0, 1399, 0, 0, 1384, + 0, 0, 1385, 0, 1397, 0, 1386, 1387, 1388, 1389, + 1390, 1391, 0, 0, 0, 0, 0, 0, 1400, 1401, + 1398, 0, 0, 0, 0, 1399, 1392, 0, 0, 0, + 0, 0, 0, 1402, 1394, 0, 0, 0, 0, 0, + 1397, 1395, 0, 0, 0, 0, 0, 1400, 1401, 0, + 0, 0, 0, 0, 0, 0, 1398, 0, 0, 0, + 0, 1399, 1402, 0, 0, 0, 1396, 0, 0, 1397, + 0, 1403, 0, 0, 1404, 0, 0, 0, 0, 0, + 0, 0, 0, 1400, 1401, 1398, 0, 0, 1405, 0, + 1399, 1406, 0, 0, 0, 0, 0, 0, 1402, 0, + 1403, 0, 0, 1404, 0, 0, 0, 0, 0, 0, + 0, 0, 1400, 1401, 0, 0, 0, 1405, 0, 0, + 1406, 0, 0, 0, 0, 0, 0, 1402, 0, 0, + 0, 0, 0, 0, 0, 0, 1403, 0, 0, 1404, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 94, 95, 96, - 97, 98, 99, 100, 101, 0, 102, 103, 104, 0, - 0, 0, 0, 0, 2401, 0, 105, 106, 0, 107, - 108, 109, 0, 111, 112, 113, 114, 115, 0, 117, - 118, 0, 119, 120, 121, 122, 123, 124, 0, 0, - 125, 126, 127, 128, 129, 0, 130, 131, 132, 133, - 134, 0, 0, 0, 136, 137, 138, 139, 140, 141, - 0, 143, 144, 145, 0, 146, 147, 148, 149, 150, - 151, 0, 0, 153, 154, 155, 0, 0, 0, 0, - 0, 0, 0, 161, 162, 163, 164, 165, 166, 167, - 168, 169, 170, 0, 171, 0, 172, 173, 174, 175, - 176, 177, 0, 178, 179, 180, 181, 182, 0, 0, - 183, 184, 185, 186, 187, 0, 188, 189, 190, 0, - 191, 192, 193, 0, 194, 195, 196, 197, 198, 199, - 200, 201, 202, 203, 204, 0, 205, 0, 206, 207, - 208, 209, 0, 210, 0, 211, 0, 0, 0, 214, - 215, 510, 0, 218, 0, 219, 0, 220, 221, 222, - 0, 223, 224, 225, 226, 227, 228, 229, 0, 231, - 232, 233, 234, 0, 235, 236, 237, 238, 239, 240, - 0, 241, 0, 243, 244, 245, 246, 247, 248, 249, - 250, 0, 251, 0, 252, 0, 0, 255, 0, 257, - 258, 259, 260, 261, 262, 0, 0, 263, 0, 265, - 0, 0, 267, 268, 269, 0, 0, 270, 271, 272, - 273, 274, 511, 276, 277, 278, 279, 280, 281, 282, - 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, - 293, 294, 0, 296, 297, 298, 299, 300, 0, 301, - 302, 0, 304, 0, 305, 306, 307, 308, 309, 310, - 0, 311, 312, 0, 0, 313, 314, 315, 0, 0, - 316, 317, 0, 319, 0, 321, 322, 323, 324, 325, - 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, - 335, 336, 337, 338, 339, 340, 0, 341, 342, 343, - 344, 345, 346, 0, 347, 348, 349, 350, 351, 352, - 353, 354, 0, 355, 356, 357, 358, 359, 360, 361, - 362, 363, 364, 365, 366, 367, 0, 368, 369, 0, - 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, - 381, 382, 383, 384, 385, 0, 386, 387, 388, 389, - 390, 0, 392, 393, 394, 395, 396, 0, 398, 399, - 400, 401, 0, 402, 403, 404, 405, 406, 407, 408, - 409, 410, 411, 412, 413, 513, 415, 416, 417, 0, - 418, 419, 0, 420, 0, 422, 423, 424, 425, 426, - 0, 427, 428, 0, 0, 429, 430, 431, 432, 433, - 0, 434, 435, 436, 437, 438, 439, 440, 441, 0, - 0, 442, 443, 444, 445, 446, 0, 0, 448, 449, - 450, 451, 452, 453, 454, 0, 455, 0, 457, 458, - 459, 460, 461, 0, 0, 462, 0, 0, 463, 464, - 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, - 475, 476, 477, 478, 479, 480, 481, 482, 483, 507, + 0, 0, 0, 1405, 0, 0, 1406, 0, 0, 0, + 0, 0, 0, 0, 0, 1403, 0, 1397, 1404, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 94, 95, 96, - 97, 98, 99, 100, 101, 0, 102, 103, 104, 0, - 0, 0, 0, 0, 2416, 0, 105, 106, 0, 107, - 108, 109, 0, 111, 112, 113, 114, 115, 0, 117, - 118, 0, 119, 120, 121, 122, 123, 124, 0, 0, - 125, 126, 127, 128, 129, 0, 130, 131, 132, 133, - 134, 0, 0, 0, 136, 137, 138, 139, 140, 141, - 0, 143, 144, 145, 0, 146, 147, 148, 149, 150, - 151, 0, 0, 153, 154, 155, 0, 0, 0, 0, - 0, 0, 0, 161, 162, 163, 164, 165, 166, 167, - 168, 169, 170, 0, 171, 0, 172, 173, 174, 175, - 176, 177, 0, 178, 179, 180, 181, 182, 0, 0, - 183, 184, 185, 186, 187, 0, 188, 189, 190, 0, - 191, 192, 193, 0, 194, 195, 196, 197, 198, 199, - 200, 201, 202, 203, 204, 0, 205, 0, 206, 207, - 208, 209, 0, 210, 0, 211, 0, 0, 0, 214, - 215, 510, 0, 218, 0, 219, 0, 220, 221, 222, - 0, 223, 224, 225, 226, 227, 228, 229, 0, 231, - 232, 233, 234, 0, 235, 236, 237, 238, 239, 240, - 0, 241, 0, 243, 244, 245, 246, 247, 248, 249, - 250, 0, 251, 0, 252, 0, 0, 255, 0, 257, - 258, 259, 260, 261, 262, 0, 0, 263, 0, 265, - 0, 0, 267, 268, 269, 0, 0, 270, 271, 272, - 273, 274, 511, 276, 277, 278, 279, 280, 281, 282, - 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, - 293, 294, 0, 296, 297, 298, 299, 300, 0, 301, - 302, 0, 304, 0, 305, 306, 307, 308, 309, 310, - 0, 311, 312, 0, 0, 313, 314, 315, 0, 0, - 316, 317, 0, 319, 0, 321, 322, 323, 324, 325, - 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, - 335, 336, 337, 338, 339, 340, 0, 341, 342, 343, - 344, 345, 346, 0, 347, 348, 349, 350, 351, 352, - 353, 354, 0, 355, 356, 357, 358, 359, 360, 361, - 362, 363, 364, 365, 366, 367, 0, 368, 369, 0, - 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, - 381, 382, 383, 384, 385, 0, 386, 387, 388, 389, - 390, 0, 392, 393, 394, 395, 396, 0, 398, 399, - 400, 401, 0, 402, 403, 404, 405, 406, 407, 408, - 409, 410, 411, 412, 413, 513, 415, 416, 417, 0, - 418, 419, 0, 420, 0, 422, 423, 424, 425, 426, - 0, 427, 428, 0, 0, 429, 430, 431, 432, 433, - 0, 434, 435, 436, 437, 438, 439, 440, 441, 0, - 0, 442, 443, 444, 445, 446, 0, 0, 448, 449, - 450, 451, 452, 453, 454, 0, 455, 0, 457, 458, - 459, 460, 461, 0, 0, 462, 0, 0, 463, 464, - 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, - 475, 476, 477, 478, 479, 480, 481, 482, 483, 507, - 0, 508, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 94, 95, 96, - 97, 98, 99, 100, 101, 0, 102, 103, 104, 0, - 0, 0, 0, 0, 0, 0, 105, 106, 0, 107, - 108, 109, 0, 111, 112, 113, 114, 115, 0, 117, - 118, 0, 119, 120, 121, 122, 123, 124, 0, 0, - 125, 126, 127, 128, 129, 0, 130, 131, 132, 133, - 134, 0, 0, 0, 136, 137, 138, 139, 140, 141, - 0, 143, 144, 145, 0, 146, 147, 148, 149, 150, - 151, 0, 0, 153, 154, 155, 0, 0, 0, 0, - 0, 0, 0, 161, 162, 163, 164, 165, 166, 167, - 168, 169, 170, 0, 171, 0, 172, 173, 174, 175, - 176, 177, 0, 178, 179, 180, 181, 182, 0, 0, - 183, 184, 185, 186, 187, 0, 188, 189, 190, 0, - 191, 192, 193, 0, 194, 195, 196, 197, 198, 199, - 200, 201, 202, 203, 204, 0, 205, 0, 206, 207, - 208, 209, 0, 210, 0, 211, 0, 0, 0, 214, - 215, 510, 0, 218, 0, 219, 0, 220, 221, 222, - 0, 223, 224, 225, 226, 227, 2578, 229, 0, 231, - 232, 233, 234, 0, 235, 236, 237, 238, 239, 240, - 0, 241, 0, 243, 244, 245, 246, 247, 248, 249, - 250, 0, 251, 0, 252, 0, 0, 255, 0, 257, - 258, 259, 260, 261, 262, 0, 0, 263, 0, 265, - 0, 0, 267, 268, 269, 0, 0, 270, 271, 272, - 273, 274, 511, 276, 277, 278, 279, 280, 281, 282, - 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, - 293, 294, 0, 296, 297, 298, 299, 300, 0, 301, - 302, 0, 304, 0, 305, 306, 307, 308, 309, 310, - 0, 311, 312, 0, 0, 313, 314, 315, 0, 0, - 316, 317, 0, 319, 0, 321, 322, 323, 324, 325, - 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, - 335, 336, 337, 338, 339, 340, 0, 341, 342, 343, - 344, 345, 346, 0, 347, 348, 349, 350, 351, 352, - 353, 354, 0, 355, 356, 357, 358, 359, 360, 361, - 362, 363, 364, 365, 366, 367, 0, 368, 369, 0, - 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, - 381, 382, 383, 384, 385, 0, 386, 387, 388, 389, - 390, 0, 392, 393, 394, 395, 396, 0, 398, 399, - 400, 401, 0, 402, 403, 404, 405, 406, 407, 408, - 409, 410, 411, 412, 413, 513, 415, 416, 417, 0, - 418, 419, 0, 420, 0, 422, 423, 424, 425, 426, - 0, 427, 428, 0, 0, 429, 430, 431, 432, 433, - 0, 434, 435, 436, 437, 438, 439, 440, 441, 0, - 0, 442, 443, 444, 445, 446, 0, 0, 448, 449, - 450, 451, 452, 453, 454, 0, 455, 0, 457, 458, - 459, 460, 461, 0, 0, 462, 0, 0, 463, 464, - 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, - 475, 476, 477, 478, 479, 480, 481, 482, 483, 507, + 1407, 0, 1405, 1398, 0, 1406, 0, 0, 1399, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 94, 95, 96, - 97, 98, 99, 100, 101, 0, 102, 103, 104, 0, - 0, 0, 0, 0, 0, 0, 105, 106, 0, 107, - 108, 109, 0, 111, 112, 113, 114, 115, 0, 117, - 118, 0, 119, 120, 121, 122, 123, 124, 0, 0, - 125, 126, 127, 128, 129, 0, 130, 131, 132, 133, - 134, 0, 0, 0, 136, 137, 138, 139, 140, 141, - 0, 143, 144, 145, 0, 146, 147, 148, 149, 150, - 151, 0, 0, 153, 154, 155, 0, 0, 0, 0, - 0, 0, 0, 161, 162, 163, 164, 165, 166, 167, - 168, 169, 170, 0, 171, 0, 172, 173, 174, 175, - 176, 177, 0, 178, 179, 180, 181, 182, 0, 0, - 183, 184, 185, 186, 187, 0, 188, 189, 190, 0, - 191, 192, 193, 0, 194, 195, 196, 197, 198, 199, - 200, 201, 202, 203, 204, 0, 205, 0, 206, 207, - 208, 209, 0, 210, 0, 211, 0, 0, 0, 214, - 215, 510, 0, 218, 0, 219, 0, 220, 221, 222, - 0, 223, 224, 225, 226, 227, 228, 229, 0, 231, - 232, 233, 234, 0, 235, 236, 237, 238, 239, 240, - 0, 241, 0, 243, 244, 245, 246, 247, 248, 249, - 250, 0, 251, 0, 252, 0, 0, 255, 0, 257, - 258, 259, 260, 261, 262, 0, 0, 263, 0, 265, - 0, 0, 267, 268, 269, 0, 0, 270, 271, 272, - 273, 274, 511, 276, 277, 278, 279, 280, 281, 282, - 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, - 293, 294, 0, 296, 297, 298, 299, 300, 0, 301, - 302, 0, 304, 0, 305, 306, 307, 308, 309, 310, - 0, 311, 312, 0, 0, 313, 314, 315, 0, 0, - 316, 317, 0, 319, 0, 321, 322, 323, 324, 325, - 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, - 335, 336, 337, 338, 339, 340, 0, 341, 342, 343, - 344, 345, 346, 0, 347, 348, 349, 350, 351, 352, - 353, 354, 0, 355, 356, 357, 358, 359, 360, 361, - 362, 363, 364, 365, 366, 367, 0, 368, 369, 0, - 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, - 381, 382, 383, 384, 385, 0, 386, 387, 388, 389, - 390, 0, 392, 393, 394, 395, 396, 0, 398, 399, - 400, 401, 0, 402, 403, 404, 405, 406, 407, 408, - 409, 410, 411, 412, 413, 513, 415, 416, 417, 0, - 418, 419, 0, 420, 0, 422, 423, 424, 425, 426, - 0, 427, 428, 0, 0, 429, 430, 431, 432, 433, - 0, 434, 435, 436, 437, 438, 439, 440, 441, 0, - 0, 442, 443, 444, 445, 446, 0, 0, 448, 449, - 450, 451, 452, 453, 454, 0, 455, 0, 457, 458, - 459, 460, 461, 0, 0, 462, 0, 0, 463, 464, - 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, - 475, 476, 477, 478, 479, 480, 481, 482, 483, 507, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1407, + 1400, 1401, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1402, 0, 0, 0, 1384, + 0, 0, 1385, 0, 0, 0, 1386, 1387, 1388, 1389, + 1390, 1391, 0, 0, 0, 1407, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1392, 0, 0, 0, + 0, 0, 0, 1403, 1394, 0, 1404, 0, 0, 0, + 0, 1395, 0, 0, 1407, 0, 0, 0, 0, 0, + 1405, 0, 1408, 1406, 0, 1409, 1410, 1411, 0, 1412, + 1413, 1414, 1415, 1416, 1417, 0, 1396, 0, 0, 2362, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 94, 95, 96, - 97, 98, 99, 100, 101, 0, 102, 103, 104, 0, - 0, 0, 0, 0, 0, 0, 105, 106, 0, 107, - 108, 109, 0, 111, 112, 113, 114, 115, 0, 117, - 118, 0, 119, 120, 121, 122, 123, 124, 0, 0, - 125, 126, 127, 128, 129, 0, 130, 131, 132, 133, - 134, 0, 0, 0, 136, 137, 138, 139, 140, 141, - 0, 143, 144, 145, 0, 146, 147, 148, 149, 150, - 151, 0, 0, 153, 154, 155, 0, 0, 0, 0, - 0, 0, 0, 161, 162, 163, 164, 165, 166, 167, - 168, 169, 170, 0, 171, 0, 172, 173, 174, 175, - 176, 177, 0, 178, 179, 180, 181, 182, 0, 0, - 183, 184, 185, 186, 187, 0, 188, 189, 190, 0, - 191, 192, 193, 0, 194, 195, 196, 197, 198, 199, - 200, 201, 202, 203, 204, 0, 205, 0, 206, 207, - 208, 209, 0, 210, 0, 211, 0, 0, 0, 214, - 215, 510, 0, 602, 0, 219, 0, 220, 221, 222, - 0, 223, 224, 225, 226, 227, 228, 229, 0, 231, - 232, 233, 234, 0, 235, 236, 237, 238, 239, 240, - 0, 241, 0, 243, 244, 245, 246, 247, 248, 249, - 250, 0, 251, 0, 252, 0, 0, 255, 0, 257, - 258, 259, 260, 261, 262, 0, 0, 263, 0, 265, - 0, 0, 267, 268, 603, 0, 0, 270, 271, 272, - 273, 274, 511, 276, 277, 278, 279, 280, 281, 282, - 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, - 293, 294, 0, 296, 297, 298, 299, 300, 0, 301, - 302, 0, 304, 0, 305, 306, 307, 308, 309, 310, - 0, 311, 312, 0, 0, 313, 314, 315, 0, 0, - 316, 317, 0, 319, 0, 321, 322, 323, 324, 325, - 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, - 335, 336, 337, 338, 339, 340, 0, 341, 342, 343, - 344, 345, 346, 0, 347, 348, 349, 350, 351, 352, - 353, 354, 0, 355, 356, 357, 358, 359, 360, 361, - 362, 363, 364, 365, 366, 367, 0, 368, 369, 0, - 371, 372, 373, 374, 375, 376, 377, 378, 604, 380, - 381, 382, 383, 384, 385, 0, 386, 387, 388, 389, - 605, 0, 392, 393, 394, 395, 396, 0, 398, 399, - 400, 401, 0, 402, 403, 404, 405, 406, 407, 408, - 409, 410, 411, 412, 413, 513, 415, 416, 417, 0, - 418, 419, 0, 420, 0, 422, 423, 424, 425, 426, - 0, 606, 428, 0, 0, 429, 430, 431, 432, 433, - 0, 434, 435, 436, 437, 438, 439, 440, 441, 0, - 0, 442, 443, 444, 445, 446, 0, 0, 448, 449, - 450, 451, 452, 453, 454, 0, 455, 0, 457, 458, - 459, 460, 461, 0, 0, 462, 0, 0, 463, 464, - 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, - 475, 476, 477, 478, 479, 480, 481, 482, 483, 507, + 0, 1408, 0, 0, 1409, 1410, 1411, 0, 1412, 1413, + 1414, 1415, 1416, 1417, 0, 0, 0, 0, 2452, 0, + 0, 0, 0, 1384, 0, 0, 1385, 0, 0, 0, + 1386, 1387, 1388, 1389, 1390, 1391, 0, 1408, 0, 0, + 1409, 1410, 1411, 0, 1412, 1413, 1414, 1415, 1416, 1417, + 1392, 0, 0, 0, 2604, 0, 1384, 0, 1394, 1385, + 0, 0, 1407, 1386, 0, 1395, 1408, 0, 0, 1409, + 1410, 1411, 0, 1412, 1413, 1414, 1415, 1416, 1417, 0, + 0, 0, 0, 2626, 0, 1384, 0, 1397, 1385, 0, + 1396, 1394, 1386, 1387, 1388, 1389, 1390, 1391, -1846, 1384, + 0, 0, 1385, 1398, 0, 0, 1386, 0, 1399, 0, + 0, 0, 1392, 0, 0, 0, 0, 0, 0, 0, + 1394, 0, 0, 1396, 0, 0, 0, 1395, 0, 0, + 1400, 1401, 0, 0, 1394, 0, 0, 0, 0, 0, + 0, -1846, 0, 0, 0, 1402, 0, 0, 0, 0, + 1384, 0, 1396, 1385, 0, 0, 0, 1386, 1387, 1388, + 1389, 1390, 1391, 0, 1408, 0, 1396, 1409, 1410, 1411, + 0, 1412, 1413, 1414, 1415, 1416, 1417, 1392, 0, 0, + 0, 2629, 0, 1403, 0, 1394, 1404, 0, 0, 0, + 0, 1397, 1395, 2375, 0, 0, 0, 0, 0, 0, + 1405, 0, 0, 1406, 0, 0, 0, 1398, 0, 0, + 0, 0, 1399, 0, 0, 0, 0, 1396, 0, 0, + 0, 0, 0, 0, -1846, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1400, 1401, 2378, 0, 0, 0, + -1846, 0, 0, 0, 0, -1846, 0, 0, 0, 1402, + 0, 0, 0, 1397, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, -1846, 1384, 1398, + 0, 1385, 0, 0, 1399, 1386, 1387, 1388, 1389, 1390, + 1391, 0, -1846, -1846, 0, 0, 0, 1403, -1846, 0, + 1404, 0, 1407, 0, 0, 1392, 1400, 1401, 0, 0, + 0, 0, 0, 1394, 1405, 0, 0, 1406, 0, 0, + 1395, 1402, 0, 0, 0, 0, 0, 0, 1397, 0, + 0, 0, 0, 0, 0, -1846, 0, 0, 0, 0, + 0, 0, 0, 0, 1398, 1396, 0, 1405, 0, 1399, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1403, + 0, 0, 1404, 0, 0, 0, 0, 0, 0, 0, + 0, 1400, 1401, 0, 0, 0, 1405, 0, 0, 1406, + 0, 0, 0, 0, 0, 0, 1402, 0, 0, 0, + 1405, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1408, 0, 1407, 1409, 1410, 1411, + 0, 1412, 1413, 1414, 1415, 1416, 1417, 0, 0, 0, + 0, 2768, 0, 0, 1403, 0, 0, 1404, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, -1846, + 0, 1405, 1384, 0, 1406, 1385, 1397, 0, 0, 1386, + 1387, 1388, 1389, 1390, 1391, 0, 0, 0, 0, 0, + 0, 0, 1398, 0, 0, 0, 0, 1399, 1407, 1392, + 0, 0, 0, 0, 0, 0, 0, 1394, 0, 0, + 0, 0, -1846, 0, 1395, 0, 0, 0, 0, 1400, + 1401, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1402, 0, 0, 0, 1408, 1396, + 0, 1409, 1410, 1411, 0, 1412, 1413, 1414, 1415, 1416, + 1417, 0, 0, 0, 0, 2831, 0, 0, 0, 0, + 0, 0, 0, 1407, 0, 0, 0, 0, 0, 0, + 0, -1846, 1403, 0, 0, 1404, 0, 0, 1412, 1413, + 1414, 1415, 1416, 1417, 0, 0, 0, 0, 0, 1405, + 0, 0, 1406, 0, 0, 0, 0, 0, 0, 0, + 1408, 0, 0, 1409, 1410, 1411, 0, 1412, 1413, 1414, + 1415, 1416, 1417, 0, -1846, 0, 0, 2938, 0, 0, + 0, 1412, 1413, 1414, 1415, 1416, 1417, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 94, 95, 96, - 97, 98, 99, 100, 101, 0, 102, 103, 104, 0, - 0, 0, 0, 0, 0, 0, 105, 106, 0, 107, - 108, 109, 0, 111, 112, 113, 114, 115, 0, 117, - 118, 0, 119, 120, 121, 122, 123, 124, 0, 0, - 125, 126, 127, 128, 129, 0, 130, 131, 132, 133, - 134, 0, 0, 0, 136, 137, 138, 139, 140, 141, - 0, 143, 144, 145, 0, 146, 147, 148, 149, 150, - 151, 0, 0, 153, 154, 155, 0, 0, 0, 0, - 0, 0, 0, 161, 162, 163, 164, 165, 166, 167, - 168, 169, 170, 0, 171, 0, 172, 173, 174, 175, - 176, 177, 0, 178, 179, 180, 181, 182, 0, 0, - 183, 184, 185, 186, 187, 0, 188, 189, 190, 0, - 191, 192, 193, 0, 194, 195, 196, 197, 198, 199, - 200, 201, 202, 203, 204, 0, 205, 0, 206, 207, - 208, 209, 0, 210, 0, 211, 0, 0, 0, 214, - 215, 510, 0, 218, 0, 219, 0, 220, 221, 222, - 0, 223, 224, 225, 226, 227, 678, 229, 0, 231, - 232, 233, 234, 0, 235, 236, 237, 238, 239, 240, - 0, 241, 0, 243, 244, 245, 246, 247, 248, 249, - 250, 0, 251, 0, 252, 0, 0, 255, 0, 257, - 258, 259, 260, 261, 262, 0, 0, 263, 0, 265, - 0, 0, 267, 268, 269, 0, 0, 270, 271, 272, - 273, 274, 511, 276, 277, 278, 279, 280, 281, 282, - 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, - 293, 294, 0, 296, 297, 298, 299, 300, 0, 301, - 302, 0, 304, 0, 305, 306, 307, 308, 309, 310, - 0, 311, 312, 0, 0, 313, 314, 315, 0, 0, - 316, 317, 0, 319, 0, 321, 322, 323, 324, 325, - 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, - 335, 336, 337, 338, 339, 340, 0, 341, 342, 343, - 344, 345, 346, 0, 347, 348, 349, 350, 351, 352, - 353, 354, 0, 355, 356, 357, 358, 359, 360, 361, - 362, 363, 364, 365, 366, 367, 0, 368, 369, 0, - 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, - 381, 382, 383, 384, 385, 0, 386, 387, 388, 389, - 390, 0, 392, 393, 394, 395, 396, 0, 398, 399, - 400, 401, 0, 402, 403, 404, 405, 406, 407, 408, - 409, 410, 411, 412, 413, 513, 415, 416, 417, 0, - 418, 419, 0, 420, 0, 422, 423, 424, 425, 426, - 0, 427, 428, 0, 0, 429, 430, 431, 432, 433, - 0, 434, 435, 436, 437, 438, 439, 440, 441, 0, - 0, 442, 443, 444, 445, 446, 0, 0, 448, 449, - 450, 451, 452, 453, 454, 0, 455, 0, 457, 458, - 459, 460, 461, 0, 0, 462, 0, 0, 463, 464, - 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, - 475, 476, 477, 478, 479, 480, 481, 482, 483, 507, + 1397, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1398, 0, 0, 0, + 0, 1399, 0, 0, 0, 1408, 0, 0, 1409, 1410, + 1411, 0, 1412, 1413, 1414, 1415, 1416, 1417, 0, 0, + 0, 1407, 2986, 1400, 1401, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1402, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 94, 95, 96, - 97, 98, 99, 100, 101, 0, 102, 103, 104, 0, - 0, 0, 0, 0, 0, 0, 105, 106, 0, 107, - 108, 109, 0, 111, 112, 113, 114, 115, 0, 117, - 118, 0, 119, 120, 121, 122, 123, 124, 0, 0, - 125, 126, 127, 128, 129, 0, 130, 131, 132, 133, - 134, 0, 0, 0, 136, 137, 138, 139, 140, 141, - 0, 143, 144, 145, 0, 146, 147, 148, 149, 150, - 151, 0, 0, 153, 154, 155, 0, 0, 0, 0, - 0, 0, 0, 161, 162, 163, 164, 165, 166, 167, - 168, 169, 170, 0, 171, 0, 172, 173, 174, 175, - 176, 177, 0, 178, 179, 180, 181, 182, 0, 0, - 183, 184, 185, 186, 187, 0, 188, 189, 190, 0, - 191, 192, 193, 0, 194, 195, 196, 197, 198, 199, - 200, 201, 202, 203, 204, 0, 205, 0, 206, 207, - 208, 209, 0, 210, 0, 211, 0, 0, 0, 214, - 215, 510, 0, 218, 0, 219, 0, 220, 221, 222, - 0, 223, 224, 225, 226, 227, 774, 229, 0, 231, - 232, 233, 234, 0, 235, 236, 237, 238, 239, 240, - 0, 241, 0, 243, 244, 245, 246, 247, 248, 249, - 250, 0, 251, 0, 252, 0, 0, 255, 0, 257, - 258, 259, 260, 261, 262, 0, 0, 263, 0, 265, - 0, 0, 267, 268, 269, 0, 0, 270, 271, 272, - 273, 274, 511, 276, 277, 278, 279, 280, 281, 282, - 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, - 293, 294, 0, 296, 297, 298, 299, 300, 0, 301, - 302, 0, 304, 0, 305, 306, 307, 308, 309, 310, - 0, 311, 312, 0, 0, 313, 314, 315, 0, 0, - 316, 317, 0, 319, 0, 321, 322, 323, 324, 325, - 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, - 335, 336, 337, 338, 339, 340, 0, 341, 342, 343, - 344, 345, 346, 0, 347, 348, 349, 350, 351, 352, - 353, 354, 0, 355, 356, 357, 358, 359, 360, 361, - 362, 363, 364, 365, 366, 367, 0, 368, 369, 0, - 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, - 381, 382, 383, 384, 385, 0, 386, 387, 388, 389, - 390, 0, 392, 393, 394, 395, 396, 0, 398, 399, - 400, 401, 0, 402, 403, 404, 405, 406, 407, 408, - 409, 410, 411, 412, 413, 513, 415, 416, 417, 0, - 418, 419, 0, 420, 0, 422, 423, 424, 425, 426, - 0, 427, 428, 0, 0, 429, 430, 431, 432, 433, - 0, 434, 435, 436, 437, 438, 439, 440, 441, 0, - 0, 442, 443, 444, 445, 446, 0, 0, 448, 449, - 450, 451, 452, 453, 454, 0, 455, 0, 457, 458, - 459, 460, 461, 0, 0, 462, 0, 0, 463, 464, - 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, - 475, 476, 477, 478, 479, 480, 481, 482, 483, 507, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 94, 95, 96, - 97, 98, 99, 100, 101, 0, 102, 103, 104, 0, - 0, 0, 0, 0, 0, 0, 105, 106, 0, 107, - 108, 109, 0, 111, 112, 113, 114, 115, 0, 117, - 118, 0, 119, 120, 121, 122, 123, 124, 0, 0, - 125, 126, 127, 128, 129, 0, 130, 131, 132, 133, - 134, 0, 0, 0, 136, 137, 138, 139, 140, 141, - 0, 143, 144, 145, 0, 146, 147, 148, 149, 150, - 151, 0, 0, 153, 154, 155, 0, 0, 0, 0, - 0, 0, 0, 161, 162, 163, 164, 165, 166, 167, - 168, 169, 170, 0, 171, 0, 172, 173, 174, 175, - 176, 177, 0, 178, 179, 180, 181, 182, 0, 0, - 183, 184, 185, 186, 187, 0, 188, 189, 190, 0, - 191, 192, 193, 0, 194, 195, 196, 197, 198, 199, - 200, 201, 202, 203, 204, 0, 205, 0, 206, 207, - 208, 209, 0, 210, 0, 211, 0, 0, 0, 214, - 215, 510, 0, 218, 0, 219, 0, 220, 221, 222, - 0, 223, 224, 225, 226, 227, 228, 229, 0, 231, - 232, 233, 234, 0, 235, 236, 237, 238, 239, 240, - 0, 241, 0, 243, 244, 245, 246, 247, 248, 249, - 250, 0, 251, 0, 252, 0, 0, 255, 0, 257, - 258, 259, 260, 261, 262, 0, 0, 263, 0, 265, - 0, 0, 267, 268, 269, 0, 0, 270, 271, 272, - 273, 274, 511, 276, 277, 278, 279, 280, 281, 282, - 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, - 293, 294, 0, 296, 297, 298, 299, 300, 0, 301, - 302, 0, 304, 0, 305, 306, 307, 308, 309, 310, - 0, 311, 312, 0, 0, 313, 314, 315, 0, 0, - 316, 317, 0, 319, 0, 321, 322, 323, 324, 325, - 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, - 335, 336, 337, 338, 339, 340, 0, 341, 342, 343, - 344, 345, 346, 0, 347, 348, 349, 350, 351, 352, - 353, 354, 0, 355, 356, 357, 358, 359, 360, 361, - 362, 363, 364, 365, 366, 367, 0, 368, 369, 0, - 371, 372, 373, 374, 375, 376, 377, 378, 604, 380, - 381, 382, 383, 384, 385, 0, 386, 387, 388, 389, - 390, 0, 392, 393, 394, 395, 396, 0, 398, 399, - 400, 401, 0, 402, 403, 404, 405, 406, 407, 408, - 409, 410, 411, 412, 413, 513, 415, 416, 417, 0, - 418, 419, 0, 420, 0, 422, 423, 424, 425, 426, - 0, 606, 428, 0, 0, 429, 430, 431, 432, 433, - 0, 434, 435, 436, 437, 438, 439, 440, 441, 0, - 0, 442, 443, 444, 445, 446, 0, 0, 448, 449, - 450, 451, 452, 453, 454, 0, 455, 0, 457, 458, - 459, 460, 461, 0, 0, 462, 0, 0, 463, 464, - 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, - 475, 476, 477, 478, 479, 480, 481, 482, 483, 507, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 94, 95, 96, - 97, 98, 99, 100, 101, 0, 102, 103, 104, 0, - 0, 0, 0, 0, 1503, 0, 105, 106, 0, 107, - 108, 109, 0, 111, 112, 113, 114, 115, 0, 117, - 118, 0, 119, 120, 121, 122, 123, 124, 0, 0, - 125, 126, 127, 128, 129, 0, 130, 131, 132, 133, - 134, 0, 0, 0, 136, 137, 138, 139, 140, 141, - 0, 143, 144, 145, 0, 146, 147, 148, 149, 150, - 151, 0, 0, 153, 154, 155, 0, 0, 0, 0, - 0, 0, 0, 161, 162, 163, 164, 165, 166, 167, - 168, 169, 170, 0, 171, 0, 172, 173, 174, 175, - 176, 177, 0, 178, 179, 180, 181, 182, 0, 0, - 183, 184, 185, 186, 187, 0, 188, 189, 190, 0, - 191, 192, 193, 0, 194, 195, 196, 197, 198, 199, - 200, 201, 202, 203, 204, 0, 205, 0, 206, 207, - 208, 209, 0, 210, 0, 211, 0, 0, 0, 214, - 215, 510, 0, 218, 0, 219, 0, 220, 221, 222, - 0, 223, 224, 225, 226, 227, 228, 229, 0, 231, - 232, 233, 234, 0, 235, 236, 237, 238, 239, 240, - 0, 241, 0, 243, 244, 245, 246, 247, 248, 249, - 250, 0, 251, 0, 252, 0, 0, 255, 0, 257, - 258, 259, 260, 261, 262, 0, 0, 263, 0, 265, - 0, 0, 267, 268, 269, 0, 0, 270, 271, 272, - 273, 274, 511, 276, 277, 278, 279, 280, 281, 282, - 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, - 293, 294, 0, 296, 297, 298, 299, 300, 0, 301, - 302, 0, 304, 0, 305, 306, 307, 308, 309, 310, - 0, 311, 312, 0, 0, 313, 314, 315, 0, 0, - 316, 317, 0, 319, 0, 321, 322, 323, 324, 325, - 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, - 335, 336, 337, 338, 339, 340, 0, 341, 342, 343, - 344, 345, 346, 0, 347, 348, 349, 350, 351, 352, - 353, 354, 0, 355, 356, 357, 358, 359, 360, 361, - 362, 363, 364, 365, 366, 367, 0, 368, 369, 0, - 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, - 381, 382, 383, 384, 385, 0, 386, 387, 388, 389, - 390, 0, 0, 393, 394, 395, 396, 0, 398, 399, - 400, 401, 0, 402, 403, 404, 405, 406, 407, 408, - 409, 410, 411, 412, 413, 513, 415, 416, 417, 0, - 418, 419, 0, 420, 0, 422, 423, 424, 425, 426, - 0, 427, 428, 0, 0, 429, 430, 431, 432, 433, - 0, 434, 435, 436, 437, 438, 439, 440, 441, 0, - 0, 442, 443, 444, 445, 446, 0, 0, 448, 449, - 450, 451, 452, 453, 454, 0, 455, 0, 457, 458, - 459, 460, 461, 0, 0, 462, 0, 0, 463, 464, - 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, - 475, 476, 477, 478, 479, 480, 481, 482, 483, 507, + 0, 0, 0, 0, 0, 0, 1403, 0, 0, 1404, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 94, 95, 96, - 97, 98, 99, 100, 101, 0, 102, 103, 104, 0, - 0, 0, 0, 0, 0, 0, 105, 106, 0, 107, - 108, 109, 0, 111, 112, 113, 114, 115, 0, 117, - 118, 0, 119, 120, 121, 122, 123, 124, 0, 0, - 125, 126, 127, 128, 129, 0, 130, 131, 132, 133, - 134, 0, 0, 0, 136, 137, 138, 139, 140, 141, - 0, 143, 144, 145, 0, 146, 147, 148, 149, 150, - 151, 0, 0, 153, 154, 155, 0, 0, 0, 0, - 0, 0, 0, 161, 162, 163, 164, 165, 166, 167, - 168, 169, 170, 0, 171, 0, 172, 173, 174, 175, - 176, 177, 0, 178, 179, 180, 181, 182, 0, 0, - 183, 184, 185, 186, 187, 0, 188, 189, 190, 0, - 191, 192, 193, 0, 194, 195, 196, 197, 198, 199, - 200, 201, 202, 203, 204, 0, 205, 0, 206, 207, - 208, 209, 0, 210, 0, 211, 0, 0, 0, 214, - 215, 510, 0, 218, 0, 219, 0, 220, 221, 222, - 0, 223, 224, 225, 226, 227, 1601, 229, 0, 231, - 232, 233, 234, 0, 235, 236, 237, 238, 239, 240, - 0, 241, 0, 243, 244, 245, 246, 247, 248, 249, - 250, 0, 251, 0, 252, 0, 0, 255, 0, 257, - 258, 259, 260, 261, 262, 0, 0, 263, 0, 265, - 0, 0, 267, 268, 269, 0, 0, 270, 271, 272, - 273, 274, 511, 276, 277, 278, 279, 280, 281, 282, - 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, - 293, 294, 0, 296, 297, 298, 299, 300, 0, 301, - 302, 0, 304, 0, 305, 306, 307, 308, 309, 310, - 0, 311, 312, 0, 0, 313, 314, 315, 0, 0, - 316, 317, 0, 319, 0, 321, 322, 323, 324, 325, - 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, - 335, 336, 337, 338, 339, 340, 0, 341, 342, 343, - 344, 345, 346, 0, 347, 348, 349, 350, 351, 352, - 353, 354, 0, 355, 356, 357, 358, 359, 360, 361, - 362, 363, 364, 365, 366, 367, 0, 368, 369, 0, - 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, - 381, 382, 383, 384, 385, 0, 386, 387, 388, 389, - 390, 0, 392, 393, 394, 395, 396, 0, 398, 399, - 400, 401, 0, 402, 403, 404, 405, 406, 407, 408, - 409, 410, 411, 412, 413, 513, 415, 416, 417, 0, - 418, 419, 0, 420, 0, 422, 423, 424, 425, 426, - 0, 427, 428, 0, 0, 429, 430, 431, 432, 433, - 0, 434, 435, 436, 437, 438, 439, 440, 441, 0, - 0, 442, 443, 444, 445, 446, 0, 0, 448, 449, - 450, 451, 452, 453, 454, 0, 455, 0, 457, 458, - 459, 460, 461, 0, 0, 462, 0, 0, 463, 464, - 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, - 475, 476, 477, 478, 479, 480, 481, 482, 483, 507, + 0, 0, 0, 1405, 0, 0, 1406, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 94, 95, 96, - 97, 98, 99, 100, 101, 0, 102, 103, 104, 0, - 0, 0, 0, 0, 0, 0, 105, 106, 0, 107, - 108, 109, 0, 111, 112, 113, 114, 115, 0, 117, - 118, 0, 119, 120, 121, 122, 123, 124, 0, 0, - 125, 126, 127, 128, 129, 0, 130, 131, 132, 133, - 134, 0, 0, 0, 136, 137, 138, 139, 140, 141, - 0, 143, 144, 145, 0, 146, 147, 148, 149, 150, - 151, 0, 0, 153, 154, 155, 0, 0, 0, 0, - 0, 0, 0, 161, 162, 163, 164, 165, 166, 167, - 168, 169, 170, 0, 171, 0, 172, 173, 174, 175, - 176, 177, 0, 178, 179, 180, 181, 182, 0, 0, - 183, 184, 185, 186, 187, 0, 188, 189, 190, 0, - 191, 192, 193, 0, 194, 195, 196, 197, 198, 199, - 200, 201, 202, 203, 204, 0, 205, 0, 206, 207, - 208, 209, 0, 210, 0, 211, 0, 0, 0, 214, - 215, 510, 0, 218, 0, 219, 0, 220, 221, 222, - 0, 223, 224, 225, 226, 227, 1885, 229, 0, 231, - 232, 233, 234, 0, 235, 236, 237, 238, 239, 240, - 0, 241, 0, 243, 244, 245, 246, 247, 248, 249, - 250, 0, 251, 0, 252, 0, 0, 255, 0, 257, - 258, 259, 260, 261, 262, 0, 0, 263, 0, 265, - 0, 0, 267, 268, 269, 0, 0, 270, 271, 272, - 273, 274, 511, 276, 277, 278, 279, 280, 281, 282, - 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, - 293, 294, 0, 296, 297, 298, 299, 300, 0, 301, - 302, 0, 304, 0, 305, 306, 307, 308, 309, 310, - 0, 311, 312, 0, 0, 313, 314, 315, 0, 0, - 316, 317, 0, 319, 0, 321, 322, 323, 324, 325, - 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, - 335, 336, 337, 338, 339, 340, 0, 341, 342, 343, - 344, 345, 346, 0, 347, 348, 349, 350, 351, 352, - 353, 354, 0, 355, 356, 357, 358, 359, 360, 361, - 362, 363, 364, 365, 366, 367, 0, 368, 369, 0, - 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, - 381, 382, 383, 384, 385, 0, 386, 387, 388, 389, - 390, 0, 392, 393, 394, 395, 396, 0, 398, 399, - 400, 401, 0, 402, 403, 404, 405, 406, 407, 408, - 409, 410, 411, 412, 413, 513, 415, 416, 417, 0, - 418, 419, 0, 420, 0, 422, 423, 424, 425, 426, - 0, 427, 428, 0, 0, 429, 430, 431, 432, 433, - 0, 434, 435, 436, 437, 438, 439, 440, 441, 0, - 0, 442, 443, 444, 445, 446, 0, 0, 448, 449, - 450, 451, 452, 453, 454, 0, 455, 0, 457, 458, - 459, 460, 461, 0, 0, 462, 0, 0, 463, 464, - 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, - 475, 476, 477, 478, 479, 480, 481, 482, 483, 507, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 94, 95, 96, - 97, 98, 99, 100, 101, 0, 102, 103, 104, 0, - 0, 0, 0, 0, 0, 0, 105, 106, 0, 107, - 108, 109, 0, 111, 112, 113, 114, 115, 0, 117, - 118, 0, 119, 120, 121, 122, 123, 124, 0, 0, - 125, 126, 127, 128, 129, 0, 130, 131, 132, 133, - 134, 0, 0, 0, 136, 137, 138, 139, 140, 141, - 0, 143, 144, 145, 0, 146, 147, 148, 149, 150, - 151, 0, 0, 153, 154, 155, 0, 0, 0, 0, - 0, 0, 0, 161, 162, 163, 164, 165, 166, 167, - 168, 169, 170, 0, 171, 0, 172, 173, 174, 175, - 176, 177, 0, 178, 179, 180, 181, 182, 0, 0, - 183, 184, 185, 186, 187, 0, 188, 189, 190, 0, - 191, 192, 193, 0, 194, 195, 196, 197, 198, 199, - 200, 201, 202, 203, 204, 0, 205, 0, 206, 207, - 208, 209, 0, 210, 0, 211, 0, 0, 0, 214, - 215, 510, 0, 218, 0, 219, 0, 220, 221, 222, - 0, 223, 224, 225, 226, 227, 1900, 229, 0, 231, - 232, 233, 234, 0, 235, 236, 237, 238, 239, 240, - 0, 241, 0, 243, 244, 245, 246, 247, 248, 249, - 250, 0, 251, 0, 252, 0, 0, 255, 0, 257, - 258, 259, 260, 261, 262, 0, 0, 263, 0, 265, - 0, 0, 267, 268, 269, 0, 0, 270, 271, 272, - 273, 274, 511, 276, 277, 278, 279, 280, 281, 282, - 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, - 293, 294, 0, 296, 297, 298, 299, 300, 0, 301, - 302, 0, 304, 0, 305, 306, 307, 308, 309, 310, - 0, 311, 312, 0, 0, 313, 314, 315, 0, 0, - 316, 317, 0, 319, 0, 321, 322, 323, 324, 325, - 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, - 335, 336, 337, 338, 339, 340, 0, 341, 342, 343, - 344, 345, 346, 0, 347, 348, 349, 350, 351, 352, - 353, 354, 0, 355, 356, 357, 358, 359, 360, 361, - 362, 363, 364, 365, 366, 367, 0, 368, 369, 0, - 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, - 381, 382, 383, 384, 385, 0, 386, 387, 388, 389, - 390, 0, 392, 393, 394, 395, 396, 0, 398, 399, - 400, 401, 0, 402, 403, 404, 405, 406, 407, 408, - 409, 410, 411, 412, 413, 513, 415, 416, 417, 0, - 418, 419, 0, 420, 0, 422, 423, 424, 425, 426, - 0, 427, 428, 0, 0, 429, 430, 431, 432, 433, - 0, 434, 435, 436, 437, 438, 439, 440, 441, 0, - 0, 442, 443, 444, 445, 446, 0, 0, 448, 449, - 450, 451, 452, 453, 454, 0, 455, 0, 457, 458, - 459, 460, 461, 0, 0, 462, 0, 0, 463, 464, - 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, - 475, 476, 477, 478, 479, 480, 481, 482, 483, 2506, + 0, 0, 0, 1408, 0, 0, 1409, 1410, 1411, 0, + 1412, 1413, 1414, 1415, 1416, 1417, 0, 0, 0, 0, + 2999, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 94, 95, 96, - 97, 98, 99, 100, 101, 0, 102, 103, 104, 0, - 0, 0, 0, 0, 0, 0, 105, 106, 0, 107, - 108, 109, 2507, 111, 112, 113, 0, 701, 2508, 703, - 704, 0, 119, 120, 121, 122, 123, 124, 0, 0, - 125, 126, 705, 706, 129, 0, 130, 131, 132, 133, - 0, 0, 2509, 0, 136, 137, 138, 139, 140, 141, - 2510, 143, 144, 145, 0, 146, 147, 148, 149, 150, - 151, 0, 2511, 153, 154, 155, 2512, 2513, 2514, 2515, - 0, 0, 2516, 161, 162, 163, 164, 165, 166, 167, - 715, 716, 170, 0, 171, 0, 172, 173, 174, 175, - 176, 177, 0, 178, 179, 180, 181, 182, 0, 0, - 183, 184, 717, 186, 187, 0, 188, 189, 190, 0, - 191, 192, 193, 0, 194, 195, 196, 197, 0, 199, - 200, 201, 202, 203, 0, 0, 205, 0, 206, 207, - 718, 209, 0, 210, 0, 211, 2517, 0, 2518, 214, - 215, 2519, 2520, 218, 0, 219, 0, 0, 0, 222, - 0, 223, 224, 225, 226, 227, 228, 229, 2521, 231, - 232, 233, 234, 0, 235, 236, 237, 238, 239, 240, - 0, 241, 2522, 0, 244, 245, 246, 247, 248, 725, - 726, 0, 727, 0, 252, 2523, 2524, 255, 2525, 257, - 258, 259, 260, 261, 262, 0, 0, 263, 2526, 265, - 2527, 0, 267, 268, 269, 0, 0, 270, 271, 272, - 273, 274, 2721, 276, 277, 278, 279, 280, 281, 282, - 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, - 293, 734, 2529, 736, 297, 298, 299, 0, 0, 301, - 302, 2531, 304, 0, 0, 306, 738, 308, 309, 310, - 0, 311, 312, 0, 0, 313, 314, 315, 0, 0, - 316, 0, 2533, 319, 2534, 0, 322, 323, 324, 325, - 326, 327, 328, 329, 330, 331, 0, 332, 333, 0, - 335, 336, 0, 338, 339, 340, 0, 341, 342, 343, - 344, 345, 346, 0, 347, 348, 349, 741, 351, 352, - 353, 354, 0, 355, 356, 357, 358, 359, 360, 361, - 362, 363, 364, 365, 366, 367, 0, 368, 369, 2535, - 371, 372, 373, 0, 375, 376, 377, 378, 379, 380, - 381, 382, 383, 384, 385, 0, 386, 387, 388, 389, - 390, 2536, 392, 0, 394, 395, 396, 2538, 398, 399, - 747, 401, 0, 402, 403, 404, 405, 406, 407, 408, - 409, 410, 411, 412, 413, 2722, 415, 0, 417, 0, - 418, 419, 0, 420, 2540, 422, 423, 424, 425, 426, - 0, 750, 751, 0, 0, 429, 430, 0, 432, 0, - 0, 434, 435, 2541, 437, 438, 439, 440, 441, 0, - 0, 442, 443, 444, 445, 446, 2542, 0, 448, 449, - 450, 451, 452, 0, 754, 0, 455, 2543, 457, 458, - 459, 460, 461, 0, 0, 462, 0, 0, 463, 464, - 465, 466, 467, 468, 699, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 480, 481, 482, 483, 0, - 0, 0, 94, 95, 96, 97, 98, 99, 100, 101, - 0, 102, 103, 104, 0, 0, 0, 0, 0, 0, - 0, 105, 106, 0, 107, 108, 109, 700, 111, 112, - 113, 0, 701, 702, 703, 704, 0, 119, 120, 121, - 122, 123, 124, 0, 0, 125, 126, 705, 706, 129, - 0, 130, 131, 132, 133, 0, 0, 707, 0, 136, - 137, 138, 139, 140, 141, 708, 143, 144, 145, 0, - 146, 147, 148, 149, 150, 151, 0, 709, 153, 154, - 155, 710, 711, 712, 713, 0, 0, 714, 161, 162, - 163, 164, 165, 166, 167, 715, 716, 170, 0, 171, - 0, 172, 173, 174, 175, 176, 177, 0, 178, 179, - 180, 181, 182, 0, 0, 183, 184, 717, 186, 187, - 0, 188, 189, 190, 0, 191, 192, 193, 0, 194, - 195, 196, 197, 0, 199, 200, 201, 202, 203, 0, - 0, 205, 0, 206, 207, 718, 209, 0, 210, 0, - 211, 719, 0, 720, 214, 215, 0, 721, 218, 0, - 219, 0, 0, 0, 222, 0, 223, 224, 225, 226, - 227, 228, 229, 723, 231, 232, 233, 234, 0, 235, - 236, 237, 238, 239, 240, 0, 241, 724, 0, 244, - 245, 246, 247, 248, 725, 726, 0, 727, 0, 252, - 728, 729, 255, 730, 257, 258, 259, 260, 261, 262, - 0, 0, 263, 731, 265, 732, 0, 267, 268, 269, - 0, 0, 270, 271, 272, 273, 274, 0, 276, 277, - 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, - 288, 289, 290, 291, 292, 293, 734, 735, 736, 297, - 298, 299, 0, 0, 301, 302, 737, 304, 0, 0, - 306, 738, 308, 309, 310, 0, 311, 312, 0, 0, - 313, 314, 315, 0, 0, 316, 0, 739, 319, 740, - 0, 322, 323, 324, 325, 326, 327, 328, 329, 330, - 331, 0, 332, 333, 0, 335, 336, 0, 338, 339, - 340, 0, 341, 342, 343, 344, 345, 346, 0, 347, - 348, 349, 741, 351, 352, 353, 354, 0, 355, 356, - 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, - 367, 0, 368, 369, 742, 371, 372, 373, 0, 375, - 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, - 0, 386, 387, 388, 389, 390, 744, 392, 0, 394, - 395, 396, 746, 398, 399, 747, 401, 0, 402, 403, - 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, - 0, 415, 0, 417, 0, 418, 419, 0, 420, 749, - 422, 423, 424, 425, 426, 0, 750, 751, 0, 0, - 429, 430, 0, 432, 0, 0, 434, 435, 752, 437, - 438, 439, 440, 441, 0, 0, 442, 443, 444, 445, - 446, 753, 0, 448, 449, 450, 451, 452, 0, 754, - 0, 455, 755, 457, 458, 459, 460, 461, 0, 0, - 462, 0, 0, 463, 464, 465, 466, 467, 468, 507, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 480, 481, 482, 483, 0, 0, 0, 94, 95, 96, - 97, 98, 99, 100, 101, 0, 102, 103, 104, 0, - 0, 0, 0, 0, 0, 0, 105, 106, 0, 107, - 108, 109, 0, 111, 112, 113, 114, 115, 0, 117, - 118, 0, 119, 120, 121, 122, 123, 124, 0, 0, - 125, 126, 127, 128, 129, 0, 130, 131, 132, 133, - 134, 0, 0, 0, 136, 137, 138, 139, 140, 141, - 0, 143, 144, 145, 0, 146, 147, 148, 149, 150, - 151, 0, 0, 153, 154, 155, 0, 0, 0, 0, - 0, 0, 0, 161, 162, 163, 164, 165, 166, 167, - 168, 169, 170, 0, 171, 0, 172, 173, 174, 175, - 176, 177, 0, 178, 179, 180, 181, 182, 0, 0, - 183, 184, 185, 186, 187, 0, 188, 189, 190, 0, - 191, 192, 193, 0, 194, 195, 196, 197, 198, 199, - 200, 201, 202, 203, 204, 0, 205, 0, 206, 207, - 208, 209, 0, 210, 0, 211, 0, 0, 0, 214, - 215, 510, 0, 218, 0, 219, 0, 220, 221, 222, - 0, 223, 224, 225, 226, 227, 228, 229, 0, 231, - 232, 233, 234, 0, 235, 236, 237, 238, 239, 240, - 0, 241, 0, 243, 244, 245, 246, 247, 248, 249, - 250, 0, 251, 0, 252, 0, 0, 255, 0, 257, - 258, 259, 260, 261, 262, 0, 0, 263, 0, 265, - 0, 0, 267, 268, 269, 0, 0, 270, 271, 272, - 273, 274, 511, 276, 277, 278, 279, 280, 281, 282, - 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, - 293, 294, 0, 296, 297, 298, 299, 300, 0, 301, - 302, 0, 304, 0, 305, 306, 307, 308, 309, 310, - 0, 311, 312, 0, 0, 313, 314, 315, 0, 0, - 316, 317, 0, 319, 0, 321, 322, 323, 324, 325, - 326, 327, 0, 329, 330, 331, 0, 332, 333, 334, - 335, 336, 337, 338, 339, 340, 0, 341, 342, 343, - 344, 345, 346, 0, 347, 0, 349, 350, 351, 352, - 353, 354, 0, 355, 356, 357, 358, 359, 360, 361, - 362, 363, 364, 365, 366, 367, 0, 368, 369, 0, - 371, 372, 373, 374, 0, 376, 377, 378, 379, 380, - 381, 382, 383, 384, 385, 0, 386, 387, 388, 389, - 390, 0, 392, 393, 394, 395, 396, 0, 398, 399, - 400, 401, 0, 402, 403, 404, 405, 406, 407, 408, - 409, 410, 411, 412, 413, 513, 415, 416, 417, 0, - 418, 419, 0, 420, 0, 422, 423, 424, 425, 426, - 0, 427, 428, 0, 0, 429, 430, 431, 432, 433, - 0, 434, 435, 436, 437, 438, 439, 440, 441, 0, - 0, 442, 443, 444, 445, 446, 0, 0, 448, 449, - 450, 451, 452, 453, 454, 0, 455, 0, 457, 458, - 459, 460, 461, 0, 0, 462, 0, 0, 463, 464, - 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, - 475, 476, 477, 478, 479, 480, 481, 482, 483, 1, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 2, - 2, 3, 4, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 5, 5, 0, - 0, 0, 0, 0, 0, 0, 6, 6, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, - 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 9, 9, 10, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 11, 11, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 12, 12, 0, 0, 0, - 0, 0, 0, 0, 0, 13, 13, 0, 0, 0, - 0, 14, 14, 0, 0, 0, 0, 0, 0, 15, - 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 18, 18, 0, 0, 0, + 0, 0, 0, 0, 0, 1407, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, - 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 21, 21, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1134, 0, 1408, 0, 0, + 1409, 1410, 1411, 0, 1412, 1413, 1414, 1415, 1416, 1417, + 0, 0, 1569, 94, 95, 96, 97, 98, 99, 100, + 101, 1135, 102, 103, 104, 1136, 1137, 1138, 1139, 1140, + 1141, 1142, 105, 106, 1143, 107, 108, 109, 786, 111, + 112, 113, 787, 788, 789, 790, 791, 1144, 119, 120, + 121, 122, 123, 124, 1145, 1146, 125, 126, 792, 793, + 129, 1147, 130, 131, 132, 133, 794, 1148, 795, 1149, + 136, 137, 138, 139, 140, 141, 796, 143, 144, 145, + 1150, 146, 147, 148, 149, 150, 151, 1151, 797, 153, + 154, 155, 798, 799, 800, 801, 1152, 1153, 802, 161, + 162, 163, 164, 165, 166, 167, 803, 804, 170, 1154, + 171, 1155, 172, 173, 174, 175, 176, 177, 1156, 178, + 179, 180, 181, 182, 1157, 1158, 183, 184, 185, 186, + 187, 1159, 188, 189, 190, 1160, 191, 192, 193, 1161, + 194, 195, 196, 197, 805, 199, 200, 201, 202, 203, + 806, 1162, 205, 1163, 206, 207, 807, 209, 1164, 210, + 1165, 211, 808, 1166, 809, 214, 215, 810, 811, 218, + 1167, 219, 1168, 812, 813, 222, 1169, 223, 224, 225, + 226, 227, 228, 229, 814, 231, 232, 233, 234, 1170, + 235, 236, 237, 238, 239, 240, 1171, 241, 815, 816, + 244, 245, 246, 247, 248, 817, 818, 1172, 819, 1173, + 252, 820, 821, 255, 822, 257, 258, 259, 260, 261, + 262, 1174, 1175, 263, 823, 265, 824, 1176, 267, 268, + 269, 1177, 1178, 270, 271, 272, 273, 274, 825, 276, + 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, + 287, 288, 289, 290, 291, 292, 293, 826, 827, 828, + 297, 298, 299, 829, 1179, 301, 302, 830, 304, 1180, + 831, 306, 832, 308, 309, 310, 1181, 311, 312, 1182, + 1183, 313, 314, 315, 1184, 1185, 316, 833, 834, 319, + 835, 836, 322, 323, 324, 325, 326, 327, 328, 329, + 330, 331, 1186, 332, 333, 837, 335, 336, 838, 338, + 339, 340, 1187, 341, 342, 343, 344, 345, 346, 1188, + 347, 348, 349, 839, 351, 352, 353, 354, 1189, 355, + 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, + 366, 367, 1190, 368, 369, 840, 371, 372, 373, 841, + 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, + 385, 1191, 386, 387, 388, 389, 390, 842, 392, 843, + 394, 395, 396, 844, 398, 399, 845, 401, 1192, 402, + 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, + 413, 846, 415, 847, 417, 1193, 418, 419, 1194, 420, + 848, 422, 423, 424, 425, 426, 1195, 849, 850, 1196, + 1197, 429, 430, 851, 432, 852, 1198, 434, 435, 853, + 437, 438, 439, 440, 441, 1199, 1200, 442, 443, 444, + 445, 446, 854, 1201, 448, 449, 450, 451, 452, 1202, + 856, 1203, 455, 857, 457, 458, 459, 460, 461, 1204, + 1205, 462, 1206, 1207, 463, 464, 465, 466, 467, 468, + 858, 859, 860, 861, 862, 863, 864, 865, 866, 867, + 868, 480, 481, 482, 483, 507, 0, 0, 0, 0, + 0, 0, 0, 0, 1818, 0, 0, 0, 0, 0, + 0, 0, 0, 94, 95, 96, 97, 98, 99, 100, + 101, 0, 102, 103, 104, 0, 0, 0, 0, 0, + 0, 0, 105, 106, 0, 107, 108, 109, 0, 111, + 112, 113, 114, 115, 0, 117, 118, 0, 119, 120, + 121, 122, 123, 124, 0, 0, 125, 126, 127, 128, + 129, 0, 130, 131, 132, 133, 134, 0, 0, 0, + 136, 137, 138, 139, 140, 141, 0, 143, 144, 145, + 0, 146, 147, 148, 149, 150, 151, 0, 0, 153, + 154, 155, 0, 0, 0, 0, 0, 0, 0, 161, + 162, 163, 164, 165, 166, 167, 168, 169, 170, 0, + 171, 0, 172, 173, 174, 175, 176, 177, 0, 178, + 179, 180, 181, 182, 0, 0, 183, 184, 185, 186, + 187, 0, 188, 189, 190, 0, 191, 192, 193, 0, + 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, + 204, 0, 205, 0, 206, 207, 208, 209, 0, 210, + 0, 211, 0, 0, 0, 214, 215, 510, 0, 218, + 0, 219, 0, 220, 221, 222, 0, 223, 224, 225, + 226, 227, 228, 229, 0, 231, 232, 233, 234, 0, + 235, 236, 237, 238, 239, 240, 0, 241, 0, 243, + 244, 245, 246, 247, 248, 249, 250, 0, 251, 0, + 252, 0, 0, 255, 0, 257, 258, 259, 260, 261, + 262, 0, 0, 263, 0, 265, 0, 0, 267, 268, + 269, 0, 0, 270, 271, 272, 273, 274, 511, 276, + 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, + 287, 288, 289, 290, 291, 292, 293, 294, 0, 296, + 297, 298, 299, 300, 0, 301, 302, 0, 304, 0, + 305, 306, 307, 308, 309, 310, 0, 311, 312, 0, + 0, 313, 314, 315, 0, 0, 316, 317, 0, 319, + 0, 321, 322, 323, 324, 325, 326, 327, 328, 329, + 330, 331, 0, 332, 333, 334, 335, 336, 337, 338, + 339, 340, 0, 341, 342, 343, 344, 345, 346, 0, + 347, 348, 349, 350, 351, 352, 353, 354, 0, 355, + 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, + 366, 367, 0, 368, 369, 0, 371, 372, 373, 374, + 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, + 385, 0, 386, 387, 388, 389, 390, 0, 392, 393, + 394, 395, 396, 0, 398, 399, 400, 401, 0, 402, + 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, + 413, 513, 415, 416, 417, 0, 418, 419, 0, 420, + 0, 422, 423, 424, 425, 426, 0, 427, 428, 0, + 0, 429, 430, 431, 432, 433, 0, 434, 435, 436, + 437, 438, 439, 440, 441, 0, 0, 442, 443, 444, + 445, 446, 0, 0, 448, 449, 450, 451, 452, 453, + 454, 0, 455, 0, 457, 458, 459, 460, 461, 0, + 0, 462, 0, 0, 463, 464, 465, 466, 467, 468, + 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, + 479, 480, 481, 482, 483, 785, 1307, 583, 0, 0, + 0, 892, 0, 0, 2313, 0, 0, 0, 0, 0, + 0, 0, 0, 94, 95, 96, 97, 98, 99, 100, + 101, 0, 102, 103, 104, 0, 0, 0, 0, 0, + 0, 0, 105, 106, 0, 107, 108, 109, 786, 111, + 112, 113, 787, 788, 789, 790, 791, 0, 119, 120, + 121, 122, 123, 124, 0, 0, 125, 126, 792, 793, + 129, 0, 130, 131, 132, 133, 794, 0, 795, 0, + 136, 137, 138, 139, 140, 141, 796, 143, 144, 145, + 0, 146, 147, 148, 149, 150, 151, 0, 797, 153, + 154, 155, 798, 799, 800, 801, 0, 0, 802, 161, + 162, 163, 164, 165, 166, 167, 803, 804, 170, 1444, + 171, 0, 172, 173, 174, 175, 176, 177, 0, 178, + 179, 180, 181, 182, 0, 0, 183, 184, 185, 186, + 187, 0, 188, 189, 190, 0, 191, 192, 193, 0, + 194, 195, 196, 197, 805, 199, 200, 201, 202, 203, + 806, 1308, 205, 0, 206, 207, 807, 209, 0, 210, + 0, 211, 808, 0, 809, 214, 215, 810, 811, 218, + 0, 219, 0, 812, 813, 222, 0, 223, 224, 225, + 226, 227, 228, 229, 814, 231, 232, 233, 234, 0, + 235, 236, 237, 238, 239, 240, 0, 241, 815, 816, + 244, 245, 246, 247, 248, 817, 818, 0, 819, 0, + 252, 820, 821, 255, 822, 257, 258, 259, 260, 261, + 262, 0, 0, 263, 823, 265, 824, 0, 267, 268, + 269, 0, 0, 270, 271, 272, 273, 274, 825, 276, + 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, + 287, 288, 289, 290, 291, 292, 293, 826, 827, 828, + 297, 298, 299, 829, 0, 301, 302, 830, 304, 0, + 831, 306, 832, 308, 309, 310, 0, 311, 312, 1309, + 0, 313, 314, 315, 0, 0, 316, 833, 834, 319, + 835, 836, 322, 323, 324, 325, 326, 327, 328, 329, + 330, 331, 0, 332, 333, 837, 335, 336, 838, 338, + 339, 340, 0, 341, 342, 343, 344, 345, 346, 0, + 347, 348, 349, 839, 351, 352, 353, 354, 0, 355, + 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, + 366, 367, 0, 368, 369, 840, 371, 372, 373, 841, + 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, + 385, 0, 386, 387, 388, 389, 390, 842, 392, 843, + 394, 395, 396, 844, 398, 399, 845, 401, 0, 402, + 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, + 413, 846, 415, 847, 417, 0, 418, 419, 0, 420, + 848, 422, 423, 424, 425, 426, 0, 849, 850, 0, + 0, 429, 430, 851, 432, 852, 1310, 434, 435, 853, + 437, 438, 439, 440, 441, 0, 0, 442, 443, 444, + 445, 446, 854, 0, 448, 449, 450, 451, 452, 1202, + 856, 0, 455, 857, 457, 458, 459, 460, 461, 0, + 0, 462, 0, 0, 463, 464, 465, 466, 467, 468, + 858, 859, 860, 861, 862, 863, 864, 865, 866, 867, + 868, 480, 481, 482, 483, 785, 1307, 583, 0, 0, + 0, 892, 1311, 1312, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 94, 95, 96, 97, 98, 99, 100, + 101, 0, 102, 103, 104, 0, 0, 0, 0, 0, + 0, 0, 105, 106, 0, 107, 108, 109, 786, 111, + 112, 113, 787, 788, 789, 790, 791, 0, 119, 120, + 121, 122, 123, 124, 0, 0, 125, 126, 792, 793, + 129, 0, 130, 131, 132, 133, 794, 0, 795, 0, + 136, 137, 138, 139, 140, 141, 796, 143, 144, 145, + 0, 146, 147, 148, 149, 150, 151, 0, 797, 153, + 154, 155, 798, 799, 800, 801, 0, 0, 802, 161, + 162, 163, 164, 165, 166, 167, 803, 804, 170, 1446, + 171, 0, 172, 173, 174, 175, 176, 177, 0, 178, + 179, 180, 181, 182, 0, 0, 183, 184, 185, 186, + 187, 0, 188, 189, 190, 0, 191, 192, 193, 0, + 194, 195, 196, 197, 805, 199, 200, 201, 202, 203, + 806, 1308, 205, 0, 206, 207, 807, 209, 0, 210, + 0, 211, 808, 0, 809, 214, 215, 810, 811, 218, + 0, 219, 0, 812, 813, 222, 0, 223, 224, 225, + 226, 227, 228, 229, 814, 231, 232, 233, 234, 0, + 235, 236, 237, 238, 239, 240, 0, 241, 815, 816, + 244, 245, 246, 247, 248, 817, 818, 0, 819, 0, + 252, 820, 821, 255, 822, 257, 258, 259, 260, 261, + 262, 0, 0, 263, 823, 265, 824, 0, 267, 268, + 269, 0, 0, 270, 271, 272, 273, 274, 825, 276, + 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, + 287, 288, 289, 290, 291, 292, 293, 826, 827, 828, + 297, 298, 299, 829, 0, 301, 302, 830, 304, 0, + 831, 306, 832, 308, 309, 310, 0, 311, 312, 1309, + 0, 313, 314, 315, 0, 0, 316, 833, 834, 319, + 835, 836, 322, 323, 324, 325, 326, 327, 328, 329, + 330, 331, 0, 332, 333, 837, 335, 336, 838, 338, + 339, 340, 0, 341, 342, 343, 344, 345, 346, 0, + 347, 348, 349, 839, 351, 352, 353, 354, 0, 355, + 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, + 366, 367, 0, 368, 369, 840, 371, 372, 373, 841, + 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, + 385, 0, 386, 387, 388, 389, 390, 842, 392, 843, + 394, 395, 396, 844, 398, 399, 845, 401, 0, 402, + 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, + 413, 846, 415, 847, 417, 0, 418, 419, 0, 420, + 848, 422, 423, 424, 425, 426, 0, 849, 850, 0, + 0, 429, 430, 851, 432, 852, 1310, 434, 435, 853, + 437, 438, 439, 440, 441, 0, 0, 442, 443, 444, + 445, 446, 854, 0, 448, 449, 450, 451, 452, 1202, + 856, 0, 455, 857, 457, 458, 459, 460, 461, 0, + 0, 462, 0, 0, 463, 464, 465, 466, 467, 468, + 858, 859, 860, 861, 862, 863, 864, 865, 866, 867, + 868, 480, 481, 482, 483, 785, 1307, 583, 0, 0, + 0, 892, 1311, 1312, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 94, 95, 96, 97, 98, 99, 100, + 101, 0, 102, 103, 104, 0, 0, 0, 0, 0, + 0, 0, 105, 106, 0, 107, 108, 109, 786, 111, + 112, 113, 787, 788, 789, 790, 791, 0, 119, 120, + 121, 122, 123, 124, 0, 0, 125, 126, 792, 793, + 129, 0, 130, 131, 132, 133, 794, 0, 795, 0, + 136, 137, 138, 139, 140, 141, 796, 143, 144, 145, + 0, 146, 147, 148, 149, 150, 151, 0, 797, 153, + 154, 155, 798, 799, 800, 801, 0, 0, 802, 161, + 162, 163, 164, 165, 166, 167, 803, 804, 170, 0, + 171, 0, 172, 173, 174, 175, 176, 177, 0, 178, + 179, 180, 181, 182, 0, 0, 183, 184, 185, 186, + 187, 0, 188, 189, 190, 0, 191, 192, 193, 0, + 194, 195, 196, 197, 805, 199, 200, 201, 202, 203, + 806, 1308, 205, 0, 206, 207, 807, 209, 0, 210, + 0, 211, 808, 0, 809, 214, 215, 810, 811, 218, + 0, 219, 0, 812, 813, 222, 0, 223, 224, 225, + 226, 227, 228, 229, 814, 231, 232, 233, 234, 0, + 235, 236, 237, 238, 239, 240, 0, 241, 815, 816, + 244, 245, 246, 247, 248, 817, 818, 0, 819, 0, + 252, 820, 821, 255, 822, 257, 258, 259, 260, 261, + 262, 0, 0, 263, 823, 265, 824, 0, 267, 268, + 269, 0, 0, 270, 271, 272, 273, 274, 825, 276, + 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, + 287, 288, 289, 290, 291, 292, 293, 826, 827, 828, + 297, 298, 299, 829, 0, 301, 302, 830, 304, 0, + 831, 306, 832, 308, 309, 310, 0, 311, 312, 1309, + 0, 313, 314, 315, 0, 0, 316, 833, 834, 319, + 835, 836, 322, 323, 324, 325, 326, 327, 328, 329, + 330, 331, 0, 332, 333, 837, 335, 336, 838, 338, + 339, 340, 0, 341, 342, 343, 344, 345, 346, 0, + 347, 348, 349, 839, 351, 352, 353, 354, 0, 355, + 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, + 366, 367, 0, 368, 369, 840, 371, 372, 373, 841, + 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, + 385, 0, 386, 387, 388, 389, 390, 842, 392, 843, + 394, 395, 396, 844, 398, 399, 845, 401, 0, 402, + 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, + 413, 846, 415, 847, 417, 0, 418, 419, 0, 420, + 848, 422, 423, 424, 425, 426, 0, 849, 850, 0, + 0, 429, 430, 851, 432, 852, 1310, 434, 435, 853, + 437, 438, 439, 440, 441, 0, 0, 442, 443, 444, + 445, 446, 854, 0, 448, 449, 450, 451, 452, 1202, + 856, 0, 455, 857, 457, 458, 459, 460, 461, 0, + 0, 462, 0, 0, 463, 464, 465, 466, 467, 468, + 858, 859, 860, 861, 862, 863, 864, 865, 866, 867, + 868, 480, 481, 482, 483, 0, 0, 1384, 0, 0, + 1385, 0, 1311, 1312, 1386, 1387, 1388, 1389, 1390, 1391, + 1384, 0, 0, 1385, 0, 0, 0, 1386, 1387, 1388, + 1389, 1390, 1391, 0, 1392, 0, 0, 0, 1846, 0, + 0, 0, 1394, 0, 0, 0, 0, 1392, 0, 1395, + 0, 0, 0, 0, 0, 1394, 1384, 0, 0, 1385, + 0, 0, 1395, 1386, 1387, 1388, 1389, 1390, 1391, 1384, + 0, 0, 1385, 0, 1396, 0, 1386, 1387, 1388, 1389, + 1390, 1391, 0, 1392, 0, 0, 0, 1396, 0, 0, + 0, 1394, 0, 0, 0, 0, 1392, 0, 1395, 2044, + 0, 0, 0, 0, 1394, 1384, 0, 0, 1385, 0, + 0, 1395, 1386, 1387, 1388, 1389, 1390, 1391, 0, 0, + 0, 0, 0, 1396, 0, 1847, 0, 0, 0, 0, + 0, 0, 1392, 0, 0, 0, 1396, 0, 0, 0, + 1394, 0, 0, 0, 0, 0, 0, 1395, 0, 0, + 1384, 0, 0, 1385, 0, 0, 0, 1386, 1387, 1388, + 1389, 1390, 1391, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1396, 0, 0, 1397, 0, 1392, 2083, 0, + 2089, 0, 0, 2084, 0, 1394, 0, 0, 1397, 0, + 0, 1398, 1395, 0, 0, 0, 1399, 0, 0, 0, + 0, 0, 0, 0, 1398, 0, 0, 0, 0, 1399, + 0, 0, 0, 3086, 0, 0, 0, 1396, 1400, 1401, + 0, 0, 0, 0, 1397, 0, 0, 0, 0, 0, + 0, 1400, 1401, 1402, 0, 0, 0, 1397, 0, 0, + 1398, 0, 0, 0, 0, 1399, 1402, 0, 0, 0, + 0, 0, 0, 1398, 0, 0, 0, 0, 1399, 0, + 0, 0, 0, 0, 0, 0, 0, 1400, 1401, 0, + 0, 1403, 0, 1397, 1404, 0, 0, 0, 0, 0, + 1400, 1401, 1402, 0, 1403, 0, 0, 1404, 1405, 1398, + 0, 1406, 0, 0, 1399, 1402, 0, 0, 0, 0, + 0, 1405, 0, 0, 1406, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1400, 1401, 1397, 0, + 1403, 0, 0, 1404, 0, 0, 0, 0, 0, 0, + 0, 1402, 0, 1403, 1398, 0, 1404, 1405, 0, 1399, + 1406, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1405, 0, 0, 1406, 0, 0, 0, 0, 0, 0, + 0, 1400, 1401, 3087, 0, 0, 0, 0, 0, 1403, + 0, 0, 1404, 0, 0, 0, 1402, 0, 0, 0, + 1407, 0, 0, 0, 0, 0, 1405, 0, 0, 1406, + 0, 0, 0, 1407, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 2056, 0, 0, + 0, 0, 0, 0, 1403, 0, 0, 1404, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1407, + 0, 1405, 0, 0, 1406, 0, 0, 0, 0, 0, + 1851, 0, 1407, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 22, 22, 0, 23, 23, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1407, 0, + 0, 0, 1408, 0, 0, 1409, 1410, 1411, 0, 1412, + 1413, 1414, 1415, 1416, 1417, 1408, 0, 0, 1409, 1410, + 1411, 0, 1412, 1413, 1414, 1415, 1416, 1417, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1407, 0, 0, 0, 0, 0, 0, + 0, 1408, 0, 0, 1409, 1410, 1411, 0, 1412, 1413, + 1414, 1415, 1416, 1417, 1408, 0, 0, 1409, 1410, 1411, + 0, 1412, 1413, 1414, 1415, 1416, 1417, 0, 0, 1384, + 0, 0, 1385, 0, 0, 0, 1386, 1387, 1388, 1389, + 1390, 1391, 0, 0, 0, 0, 0, 0, 0, 0, + 1408, 0, 0, 1409, 1410, 1411, 1392, 1412, 1413, 1414, + 1415, 1416, 1417, 0, 1394, 0, 0, 0, 0, 0, + 0, 1395, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 24, 24, 0, 0, 0, 0, - 0, 0, 0, 25, 25, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 26, 26, 0, - 0, 0, 0, 0, 27, 27, 0, 0, 28, 28, - 0, 0, 0, 0, 0, 0, 0, 0, 29, 29, + 0, 0, 0, 0, 0, 1408, 1396, 0, 1409, 1410, + 1411, 0, 1412, 1413, 1414, 1415, 1416, 1417, 1384, 0, + 0, 1385, 0, 0, 0, 1386, 1387, 1388, 1389, 1390, + 1391, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1392, 0, 1384, 2096, 0, + 1385, 0, 0, 1394, 1386, 1387, 1388, 1389, 1390, 1391, + 1395, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1392, 0, 0, 0, 0, 0, + 0, 0, 1394, 0, 0, 1396, 0, 0, 0, 1395, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 30, 30, 0, 0, 31, 31, 0, 0, 0, 0, + 0, 0, 2094, 0, 0, 0, 0, 1397, 0, 0, + 0, 0, 0, 0, 1396, 0, 0, 0, 0, 0, + 0, 0, 0, 1398, 0, 0, 1384, 0, 1399, 1385, + 0, 0, 0, 1386, 1387, 1388, 1389, 1390, 1391, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1400, 1401, 0, 1392, 0, 0, 2361, 0, 0, 0, + 0, 1394, 0, 0, 0, 1402, 0, 0, 1395, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1397, 0, 0, 0, + 0, 0, 0, 1396, 0, 0, 0, 0, 0, 0, + 0, 0, 1398, 1403, 0, 0, 1404, 1399, 0, 0, + 1384, 0, 0, 1385, 0, 1397, 0, 1386, 0, 0, + 1405, 0, 0, 1406, 0, 0, 0, 0, 0, 1400, + 1401, 1398, 0, 0, 0, 0, 1399, 0, 0, 0, + 0, 0, 0, 0, 1402, 1394, 0, 0, 0, 0, + 0, 0, -1846, 0, 0, 0, 0, 0, 1400, 1401, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 32, 32, 0, 0, 0, 33, 33, 0, 0, 545, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 34, - 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1402, 0, 0, 0, 1396, 0, 0, + 0, 0, 1403, 0, 0, 1404, 0, 0, 0, 0, + 0, 0, 0, 0, 1397, 0, 0, 1384, 0, 1405, + 1385, 0, 1406, 0, 1386, 1387, 1388, 1389, 1390, 1391, + 1398, 1403, 1407, 0, 1404, 1399, 0, 0, 0, 0, + 0, 0, 0, 0, 1392, 0, 0, 0, 1405, 0, + 0, 1406, 1394, 0, 0, 0, 0, 1400, 1401, 1395, + 0, 0, 0, 0, 0, 0, 0, 2379, 0, 0, + 0, 0, 1402, 0, 0, 0, 0, 0, 0, 0, + 1384, 0, 0, 1385, 1396, 0, 0, 1386, 1387, 1388, + 1389, 1390, 1391, 1384, 0, 0, 1385, 0, -1846, 0, + 1386, 0, 0, 1389, 1390, 1391, 0, 1392, 0, 0, + 1403, 1407, 0, 1404, -1846, 1394, 0, 0, 0, -1846, + 1392, 0, 1395, 0, 0, 0, 0, 1405, 1394, 0, + 1406, 0, 0, 0, 1408, 1395, 0, 1409, 1410, 1411, + 1407, 1412, 1413, 1414, 1415, 1416, 1417, 1396, 0, 0, + 0, 0, 0, 0, 0, 0, -1846, 0, 0, 0, + 1396, 0, 0, 0, 0, 0, 0, 1384, 0, 0, + 1385, 0, 0, 2317, 1386, 0, 0, 1389, 1390, 1391, + 0, 0, 0, 0, 0, 1397, 0, 0, 0, 0, + 0, 0, 0, 0, 1392, 0, 0, 0, 0, 0, + 0, 1398, 1394, 0, 0, 0, 1399, 0, 0, 1395, + 0, 1405, 0, 1408, 0, 0, 1409, 1410, 1411, 1407, + 1412, 1413, 1414, 1415, 1416, 1417, 0, 0, 1400, 1401, + 0, 0, 0, 0, 1396, 0, 0, 0, 0, 0, + 0, 0, 1408, 1402, 0, 1409, 1410, 1411, 1397, 1412, + 1413, 1414, 1415, 1416, 1417, 1384, 0, 0, 1385, 0, + 0, 1397, 1386, 0, 1398, 0, 0, 0, 0, 1399, + 0, 0, 0, 0, 0, 0, 0, 1398, 0, 0, + 0, 1403, 1399, 0, 1404, 0, 0, 0, 0, 0, + 1394, 1400, 1401, 0, 0, 0, 0, -1846, 1405, 0, + 0, 1406, 0, -1846, 1400, 1401, 1402, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1402, + 0, 1408, 1396, 0, 1409, 1410, 1411, 0, 1412, 1413, + 1414, 1415, 1416, 1417, 0, 1397, 0, 0, 0, 0, + 0, 0, 0, 0, 1403, 0, 0, 1404, 0, 0, + 0, 1398, 0, 0, 0, 0, 1399, 1403, 0, 0, + 1404, 1405, 0, 0, 1406, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1405, 0, 0, 1406, 1400, 1401, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 35, 35, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 546, 36 -}; - -static const yytype_int16 yycheck[] = -{ - 6, 36, 672, 657, 502, 0, 6, 952, 0, 664, - 0, 0, 6, 0, 0, 46, 1074, 640, 873, 1015, - 546, 677, 623, 0, 745, 776, 1048, 778, 1427, 873, - 1073, 1461, 618, 0, 1464, 1249, 0, 751, 30, 16, - 1352, 955, 540, 16, 1819, 666, 1834, 1121, 1053, 1837, - 1896, 48, 31, 1777, 657, 1042, 659, 971, 661, 545, - 541, 538, 54, 546, 0, 48, 1050, 2241, 2241, 1254, - 984, 1815, 1381, 1382, 2146, 881, 1892, 2285, 2269, 2267, - 0, 1712, 1713, 1876, 21, 0, 1717, 0, 0, 0, - 0, 0, 0, 0, 1078, 0, 35, 0, 0, 0, - 0, 0, 2278, 0, 2098, 560, 1955, 60, 0, 5, - 0, 90, 0, 11, 0, 0, 9, 15, 1940, 1941, - 1942, 5, 637, 1867, 705, 706, 5, 5, 5, 1760, - 1761, 5, 0, 52, 13, 14, 637, 1435, 1578, 13, - 14, 5, 5, 1480, 5, 5, 9, 9, 992, 75, - 0, 1220, 1968, 13, 14, 736, 1482, 2148, 5, 5, - 122, 117, 1029, 2154, 171, 119, 42, 13, 14, 60, - 42, 122, 2571, 1953, 69, 147, 109, 5, 139, 172, - 5, 782, 5, 5, 9, 13, 14, 5, 873, 5, - 13, 14, 5, 5, 5, 880, 5, 1815, 5, 20, - 21, 13, 14, 5, 13, 14, 13, 14, 5, 2661, - 5, 13, 14, 5, 5, 189, 2032, 2033, 1062, 5, - 5, 1065, 1066, 77, 5, 60, 940, 95, 13, 14, - 2585, 29, 13, 14, 88, 29, 3, 124, 36, 2725, - 13, 14, 36, 215, 2196, 95, 60, 29, 210, 1867, - 2575, 287, 171, 2481, 36, 5, 5, 5, 5, 5, - 2153, 85, 285, 2588, 1347, 273, 33, 34, 293, 293, - 1347, 119, 309, 168, 191, 2549, 4, 171, 108, 1347, - 1086, 9, 967, 70, 38, 11, 3, 4, 5, 15, - 2821, 1097, 9, 77, 161, 11, 39, 117, 2757, 15, - 2085, 109, 378, 132, 88, 129, 163, 992, 163, 994, - 995, 117, 357, 1242, 244, 2211, 165, 43, 161, 900, - 901, 293, 2854, 11, 29, 405, 396, 43, 4, 2057, - 38, 2055, 497, 9, 2406, 463, 501, 441, 2410, 2161, - 1061, 2793, 497, 120, 300, 926, 501, 873, 11, 75, - 951, 441, 15, 419, 880, 224, 29, 485, 2086, 75, - 440, 13, 14, 2537, 2210, 13, 14, 122, 235, 189, - 956, 499, 11, 228, 1811, 1812, 15, 1062, 999, 110, - 1065, 1066, 137, 126, 538, 455, 2174, 75, 132, 2580, - 876, 2207, 235, 2209, 2582, 499, 349, 2293, 464, 985, - 117, 270, 2146, 170, 2395, 172, 61, 2398, 1337, 499, - 417, 1356, 269, 369, 69, 159, 193, 284, 2743, 287, - 250, 175, 2954, 499, 211, 320, 1012, 132, 258, 277, - 347, 439, 2063, 2064, 2065, 2066, 2067, 287, 1039, 2070, - 2071, 2072, 2073, 2074, 2075, 2076, 2077, 2078, 2079, 2723, - 406, 2850, 272, 282, 499, 2986, 2684, 494, 349, 132, - 11, 433, 270, 499, 15, 1777, 315, 175, 994, 995, - 110, 277, 23, 406, 0, 2703, 499, 439, 503, 503, - 304, 488, 350, 34, 35, 2265, 1508, 1354, 439, 443, - 1564, 447, 2123, 2124, 501, 2311, 457, 2449, 2853, 216, - 350, 2394, 494, 1126, 1841, 461, 499, 437, 499, 2995, - 379, 546, 1821, 11, 349, 2967, 1842, 15, 166, 1588, - 3052, 238, 1037, 417, 1836, 499, 2144, 403, 2146, 485, - 1970, 403, 538, 277, 1592, 349, 1037, 88, 282, 434, - 546, 2326, 1625, 499, 502, 43, 393, 394, 1625, 1626, - 503, 2725, 2725, 1008, 441, 60, 1624, 272, 2734, 1229, - 3019, 1246, 277, 417, 319, 1220, 450, 463, 545, 499, - 439, 497, 1257, 546, 1259, 501, 2648, 75, 503, 1264, - 499, 2653, 1880, 238, 2656, 1659, 463, 411, 386, 485, - 2921, 745, 386, 461, 600, 601, 1281, 495, 66, 67, - 2955, 1468, 120, 499, 386, 498, 2452, 1347, 485, 640, - 2459, 461, 503, 328, 451, 499, 613, 623, 2612, 497, - 499, 499, 499, 501, 1430, 499, 1311, 1312, 490, 491, - 613, 2956, 500, 417, 502, 499, 499, 632, 499, 499, - 632, 1242, 632, 632, 581, 632, 632, 25, 621, 2640, - 500, 2859, 502, 499, 2447, 632, 662, 663, 664, 1344, - 1345, 2852, 2406, 1348, 1349, 632, 2410, 1322, 632, 1250, - 1251, 499, 493, 652, 499, 193, 499, 499, 344, 172, - 424, 499, 2858, 499, 451, 624, 499, 499, 499, 503, - 499, 435, 499, 1537, 276, 499, 632, 499, 2135, 2136, - 2137, 2138, 499, 1547, 499, 3036, 1550, 499, 499, 2433, - 13, 14, 632, 499, 499, 1336, 2788, 632, 499, 632, - 632, 632, 632, 632, 632, 632, 499, 632, 882, 632, - 632, 632, 632, 632, 1335, 632, 1337, 1733, 1393, 745, - 632, 1342, 632, 2055, 632, 1222, 632, 632, 2570, 499, - 499, 499, 499, 499, 1355, 1376, 1377, 2573, 579, 137, - 581, 582, 490, 491, 2952, 270, 492, 493, 494, 495, - 2961, 1248, 177, 490, 491, 329, 782, 1378, 1433, 495, - 1306, 500, 1368, 604, 503, 461, 149, 200, 2406, 1644, - 256, 257, 2410, 1599, 1479, 1480, 96, 2106, 1296, 1297, - 1644, 383, 2639, 1424, 358, 1303, 244, 132, 244, 485, - 1995, 1432, 305, 1434, 490, 491, 2001, 1294, 1299, 1305, - 348, 2995, 2995, 1306, 1738, 3013, 488, 490, 491, 492, - 493, 494, 495, 238, 538, 198, 1823, 499, 992, 2676, - 2686, 25, 151, 2474, 349, 1712, 1713, 31, 376, 119, - 1717, 494, 1537, 492, 493, 494, 495, 1608, 501, 1804, - 251, 1919, 1547, 69, 244, 1550, 77, 873, 488, 1943, - 1525, 376, 172, 3055, 880, 881, 882, 88, 1629, 1533, - 1631, 501, 309, 1634, 11, 1625, 1626, 1627, 244, 382, - 3081, 461, 898, 1760, 1761, 173, 463, 716, 1396, 876, - 366, 367, 2486, 1506, 2648, 2119, 206, 1061, 1385, 2653, - 2494, 117, 2656, 291, 3096, 485, 43, 952, 485, 738, - 2757, 927, 222, 422, 362, 1581, 362, 406, 463, 2241, - 1533, 358, 232, 1588, 204, 1620, 1621, 1560, 1561, 1562, - 453, 947, 948, 949, 1928, 951, 952, 272, 75, 1552, - 485, 770, 500, 137, 1557, 503, 24, 282, 244, 1644, - 29, 512, 30, 1877, 499, 365, 266, 245, 346, 975, - 348, 25, 1657, 8, 1979, 2606, 11, 31, 499, 1984, - 15, 2827, 362, 18, 19, 20, 54, 287, 994, 995, - 334, 542, 490, 491, 492, 493, 494, 495, 376, 437, - 270, 437, 272, 8, 1605, 410, 362, 412, 151, 132, - 15, 80, 5, 18, 19, 20, 300, 334, 1024, 200, - 89, 2639, 1028, 1029, 32, 1022, 1023, 494, 1025, 410, - 2648, 412, 437, 1039, 501, 2653, 159, 1514, 2656, 1022, - 1023, 745, 1025, 77, 2788, 1543, 50, 2884, 56, 118, - 1548, 244, 873, 353, 88, 1061, 334, 437, 2676, 880, - 369, 499, 406, 499, 1043, 2405, 272, 494, 1222, 13, - 14, 277, 4, 624, 172, 2415, 362, 9, 2418, 5, - 1086, 437, 8, 137, 500, 369, 2923, 503, 14, 406, - 499, 1097, 370, 912, 1248, 1249, 1649, 406, 1077, 25, - 1653, 4, 1655, 29, 221, 4, 9, 291, 206, 453, - 9, 930, 4, 500, 320, 1121, 503, 9, 1644, 499, - 189, 2433, 406, 500, 222, 1726, 503, 25, 406, 2760, - 336, 1657, 201, 31, 232, 1820, 453, 958, 447, 2757, - 1294, 441, 1619, 499, 13, 14, 967, 2922, 1899, 272, - 1901, 437, 461, 2098, 277, 1840, 1841, 2371, 342, 282, - 981, 482, 346, 447, 1765, 410, 2224, 412, 2023, 362, - 2788, 992, 176, 994, 995, 453, 485, 461, 882, 25, - 2223, 362, 3019, 501, 1661, 31, 2208, 287, 192, 370, - 499, 482, 376, 197, 1817, 492, 2063, 2064, 2065, 2066, - 2067, 485, 170, 2070, 2071, 2072, 2073, 2074, 2075, 2076, - 2077, 2078, 2079, 499, 1220, 499, 1222, 2222, 500, 2224, - 2263, 503, 13, 14, 1219, 406, 369, 3073, 434, 1219, - 234, 1385, 1219, 1219, 503, 441, 1242, 291, 1725, 137, - 1727, 1728, 1248, 1249, 437, 3020, 13, 14, 500, 3037, - 3038, 503, 499, 161, 289, 353, 2123, 2124, 166, 25, - 444, 13, 14, 406, 3039, 31, 2884, 0, 497, 497, - 499, 499, 453, 501, 602, 603, 500, 605, 2192, 503, - 410, 500, 412, 16, 289, 1999, 2000, 500, 1294, 499, - 503, 137, 346, 1963, 56, 369, 500, 30, 500, 503, - 1306, 424, 3090, 36, 447, 2923, 499, 25, 461, 482, - 463, 1996, 435, 31, 161, 48, 1322, 221, 461, 166, - 3095, 54, 376, 392, 224, 152, 395, 235, 1305, 1335, - 171, 1337, 406, 1306, 500, 1341, 1342, 503, 500, 217, - 1332, 503, 485, 1332, 410, 1351, 412, 1353, 1354, 1355, - 1356, 1357, 1358, 1359, 342, 1332, 499, 1061, 500, 500, - 1514, 503, 503, 25, 500, 1332, 2021, 503, 1332, 31, - 270, 137, 1378, 447, 1380, 500, 284, 381, 503, 1385, - 1386, 1387, 1388, 1389, 1390, 1391, 1392, 1393, 235, 152, - 444, 1397, 1398, 291, 152, 2609, 1402, 2241, 152, 500, - 1406, 3019, 503, 1409, 1410, 1411, 1412, 1413, 1414, 1415, - 1416, 1417, 500, 2725, 1420, 503, 634, 2816, 636, 137, - 500, 1427, 500, 503, 1430, 499, 538, 1433, 272, 500, - 330, 2453, 503, 334, 501, 500, 500, 284, 503, 503, - 499, 3, 2500, 5, 342, 291, 1452, 500, 346, 38, - 503, 486, 487, 488, 453, 490, 491, 492, 493, 494, - 495, 500, 1468, 1014, 503, 1619, 84, 500, 177, 370, - 503, 13, 14, 1479, 1480, 137, 465, 1450, 376, 379, - 2101, 486, 487, 488, 450, 490, 491, 492, 493, 494, - 495, 200, 2411, 2094, 2413, 1972, 342, 2023, 316, 500, - 346, 96, 503, 500, 499, 406, 503, 1661, 1514, 500, - 1502, 152, 503, 147, 369, 13, 14, 1523, 1222, 1525, - 2018, 500, 13, 14, 503, 291, 1347, 161, 500, 238, - 376, 503, 166, 187, 188, 1902, 2207, 1904, 2209, 439, - 13, 14, 13, 14, 1248, 1249, 444, 2761, 499, 111, - 112, 406, 453, 2304, 13, 14, 2241, 499, 1564, 2989, - 2990, 1567, 1568, 499, 1570, 13, 14, 2044, 13, 14, - 13, 14, 2158, 291, 13, 14, 342, 172, 2199, 37, - 346, 215, 1588, 292, 499, 2062, 152, 2242, 152, 2244, - 1294, 152, 447, 1599, 13, 14, 13, 14, 444, 1605, - 287, 235, 256, 257, 499, 1597, 461, 2474, 13, 14, - 376, 206, 2089, 1619, 38, 2271, 13, 14, 1439, 2096, - 13, 14, 13, 14, 342, 187, 188, 222, 346, 291, - 485, 357, 358, 745, 233, 2258, 499, 232, 1644, 3069, - 5, 87, 5, 89, 499, 91, 499, 2491, 260, 261, - 284, 1657, 166, 1659, 499, 1661, 357, 358, 376, 293, - 366, 367, 357, 358, 1670, 357, 358, 994, 995, 1675, - 499, 266, 5, 499, 499, 499, 499, 499, 444, 1714, - 342, 1385, 5, 2995, 346, 499, 499, 499, 2731, 499, - 252, 253, 254, 255, 256, 257, 499, 499, 260, 261, - 5, 410, 8, 412, 499, 11, 1712, 1713, 1714, 15, - 5, 1717, 366, 367, 376, 499, 499, 499, 499, 1725, - 1726, 1727, 1728, 148, 9, 434, 444, 499, 437, 1735, - 1765, 462, 503, 1739, 217, 298, 1742, 43, 99, 2606, - 500, 38, 503, 166, 50, 2600, 284, 282, 166, 1300, - 376, 1302, 2503, 2504, 1760, 1761, 233, 499, 353, 1765, - 417, 494, 499, 88, 2241, 503, 147, 417, 56, 75, - 882, 11, 56, 1779, 417, 15, 1782, 263, 1784, 2775, - 161, 417, 444, 23, 500, 166, 508, 417, 461, 501, - 152, 177, 95, 272, 34, 35, 272, 2793, 1804, 433, - 499, 2422, 38, 499, 366, 367, 2491, 9, 499, 1815, - 1514, 2496, 545, 546, 200, 1815, 2537, 37, 1972, 415, - 2441, 1815, 415, 1644, 2301, 497, 497, 1648, 503, 1835, - 417, 417, 417, 417, 215, 500, 1657, 1872, 1830, 145, - 457, 1830, 11, 499, 1850, 1851, 498, 344, 88, 508, - 503, 277, 238, 1830, 235, 503, 2801, 415, 505, 2544, - 2545, 1867, 499, 1830, 499, 417, 1830, 1867, 180, 162, - 176, 171, 500, 1867, 503, 500, 499, 215, 1884, 503, - 613, 2725, 224, 379, 288, 500, 192, 309, 69, 309, - 2044, 197, 503, 2760, 75, 441, 1902, 1903, 1904, 632, - 38, 2897, 499, 284, 224, 6, 292, 88, 2062, 224, - 11, 293, 293, 272, 15, 1619, 325, 479, 480, 20, - 21, 22, 23, 24, 453, 285, 27, 499, 234, 30, - 31, 152, 38, 34, 35, 2089, 117, 1943, 119, 152, - 2998, 461, 2096, 272, 287, 500, 500, 497, 482, 1061, - 538, 482, 500, 54, 38, 500, 500, 1661, 1509, 500, - 287, 500, 498, 500, 171, 2119, 1972, 500, 1519, 501, - 1521, 482, 500, 1524, 2472, 500, 362, 500, 500, 1530, - 171, 1532, 1988, 289, 500, 500, 87, 88, 89, 90, - 91, 500, 500, 1544, 500, 500, 503, 500, 1549, 499, - 499, 417, 1553, 1554, 1555, 1556, 499, 1558, 1559, 499, - 155, 458, 484, 288, 288, 2021, 288, 2023, 2963, 503, - 243, 458, 287, 204, 410, 2502, 412, 439, 503, 2714, - 2715, 488, 447, 417, 2704, 2041, 499, 272, 2044, 152, - 2725, 200, 428, 152, 2050, 152, 417, 2053, 434, 495, - 2056, 437, 433, 417, 279, 279, 2062, 2063, 2064, 2065, - 2066, 2067, 417, 2098, 2070, 2071, 2072, 2073, 2074, 2075, - 2076, 2077, 2078, 2079, 2600, 381, 417, 2083, 2084, 500, - 38, 2087, 344, 2089, 498, 285, 1907, 2241, 2094, 499, - 2096, 272, 2098, 38, 2129, 503, 277, 500, 287, 38, - 2131, 2107, 152, 461, 2110, 500, 2112, 277, 498, 498, - 1222, 2146, 57, 2119, 2120, 143, 497, 2123, 2124, 500, - 501, 11, 2128, 2129, 171, 166, 2132, 500, 500, 52, - 500, 500, 1953, 500, 171, 297, 1248, 1249, 2144, 320, - 2146, 171, 499, 876, 2144, 406, 2146, 2301, 500, 503, - 2144, 2995, 2146, 2159, 485, 336, 38, 745, 180, 38, - 500, 894, 499, 108, 500, 288, 350, 446, 86, 615, - 152, 503, 500, 2828, 97, 57, 175, 483, 57, 2185, - 499, 914, 1294, 428, 490, 491, 492, 493, 494, 495, - 500, 500, 500, 38, 81, 499, 2202, 499, 441, 498, - 123, 171, 2023, 649, 500, 503, 500, 2028, 499, 2030, - 500, 503, 499, 2034, 2035, 408, 499, 2371, 141, 952, - 500, 222, 145, 500, 500, 296, 108, 222, 499, 108, - 294, 56, 184, 500, 2240, 2241, 2242, 488, 2244, 685, - 686, 687, 688, 500, 167, 500, 461, 170, 2725, 202, - 117, 38, 499, 434, 199, 224, 2926, 83, 190, 2882, - 441, 277, 185, 277, 501, 417, 417, 501, 1972, 501, - 501, 501, 512, 1385, 501, 2270, 2268, 1828, 38, 501, - 2270, 2935, 501, 2270, 2270, 501, 272, 501, 500, 1022, - 1023, 501, 1025, 175, 882, 2301, 501, 2289, 501, 2291, - 501, 541, 542, 501, 2905, 250, 2907, 501, 109, 501, - 2995, 2317, 488, 258, 501, 2792, 501, 199, 2795, 501, - 199, 501, 501, 501, 501, 270, 501, 501, 501, 501, - 501, 461, 287, 501, 501, 501, 501, 501, 499, 499, - 2044, 171, 2997, 499, 2842, 499, 222, 500, 2502, 499, - 460, 88, 133, 336, 277, 503, 301, 499, 2062, 2365, - 2366, 38, 285, 152, 2370, 2371, 75, 500, 250, 2375, - 124, 250, 2378, 2379, 152, 38, 258, 2383, 500, 258, - 358, 358, 306, 2537, 624, 2089, 38, 499, 270, 500, - 327, 270, 2096, 446, 495, 499, 499, 499, 499, 499, - 2406, 502, 1514, 348, 2410, 328, 2406, 503, 75, 499, - 2410, 512, 2406, 277, 248, 2119, 2410, 189, 441, 301, - 2241, 2919, 301, 428, 499, 370, 69, 290, 69, 56, - 499, 1982, 2438, 500, 499, 503, 38, 441, 376, 540, - 541, 542, 488, 270, 2265, 390, 287, 428, 2440, 38, - 2442, 499, 290, 290, 499, 2609, 500, 500, 500, 499, - 2466, 500, 360, 202, 287, 287, 348, 500, 2474, 348, - 9, 343, 122, 1061, 500, 439, 357, 24, 35, 500, - 581, 499, 9, 500, 1959, 632, 2600, 2493, 370, 2021, - 1014, 370, 986, 1835, 1496, 2894, 2502, 2915, 3035, 600, - 601, 602, 603, 1850, 605, 1032, 1468, 1619, 390, 2163, - 1031, 390, 2976, 2909, 615, 2814, 1034, 1495, 2995, 1867, - 2146, 2789, 2428, 624, 2395, 2144, 2884, 2883, 2901, 2412, - 2902, 2537, 1347, 2667, 2979, 3023, 1347, 2241, 1347, 1347, - 2980, 1425, 1740, 1836, 1783, 1671, 1570, 1780, 649, 1661, - 996, 652, 601, 1818, 8, 500, 2438, 11, 2162, 2941, - 2697, 15, 2496, 3047, 2999, 3008, 3040, 1048, 2745, 1903, - 1890, 2725, 1305, 2279, 2997, 2217, 3006, 2244, 2994, 1887, - 1964, 1306, 1296, 1531, 685, 686, 687, 688, 1248, 43, - 2225, 2583, 1897, 2240, 2600, 1830, 50, 2301, 1044, 1332, - 2606, 1047, 1450, 2609, 2876, 1043, 2612, 2761, 2429, 2201, - 1657, 2443, 2200, 2274, 1060, 2621, 2622, 2923, 2672, 2625, - 1451, 75, 2993, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 2639, 1222, 1081, -1, -1, 2792, 2639, - -1, 2795, 2648, -1, -1, 2639, 0, 2653, 2648, -1, - 2656, -1, 2203, 2653, 2648, -1, 2656, 2663, 2664, 2653, - 1248, 1249, 2656, -1, -1, -1, 1399, 2371, -1, -1, - 2676, -1, 2678, -1, -1, -1, 2676, -1, -1, 2230, - -1, -1, 2676, 8, -1, -1, 11, -1, -1, 2695, - 15, 145, -1, -1, 2245, 2246, 2247, 2248, 2249, 2250, - 2251, 2252, 2253, 2254, -1, -1, 1294, -1, -1, -1, - -1, -1, -1, 953, -1, -1, -1, -1, 43, 2725, - -1, -1, 176, -1, -1, 50, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 192, -1, - -1, 95, -1, 197, 2736, -1, -1, -1, -1, -1, - 75, 2757, -1, -1, 2760, 2761, -1, 2757, -1, -1, - -1, 8, -1, 2757, 11, -1, 2801, -1, 15, 1502, - -1, 18, 19, 20, 1014, 1015, -1, 1223, 2784, 2600, - 234, -1, 2788, -1, -1, 886, 2792, -1, 2788, 2795, - -1, -1, -1, 147, 2788, 2801, -1, 1385, 2502, -1, - -1, -1, -1, -1, -1, -1, -1, 161, -1, -1, - 2816, -1, 166, 2819, -1, -1, -1, 171, -1, -1, - 145, -1, 2828, -1, -1, -1, 180, 2833, -1, -1, - 184, -1, -1, 2537, -1, 289, -1, -1, -1, -1, - -1, 2995, -1, -1, -1, 2666, -1, -1, -1, -1, - -1, 176, 953, -1, -1, -1, -1, -1, -1, 8, - 1972, 215, 11, -1, 1597, 2857, 15, 192, -1, 18, - 19, 20, 197, -1, -1, -1, -1, -1, 2884, -1, - -1, 235, -1, -1, 2884, -1, -1, -1, -1, -1, - 2884, -1, -1, -1, -1, 996, -1, -1, -1, 2905, - -1, 2907, -1, 2909, 2725, 2609, -1, 2913, -1, 234, - 538, -1, -1, 1014, 1015, -1, -1, 2923, -1, -1, - -1, -1, 2473, 2923, 2916, -1, 1514, 381, -1, 2923, - 284, -1, 2044, 287, -1, -1, -1, 2943, -1, 293, - -1, -1, 1043, 1044, 1045, -1, 1047, 1048, -1, -1, - 2062, -1, -1, -1, -1, -1, -1, 2963, -1, 1060, - -1, -1, -1, -1, 289, -1, -1, -1, -1, -1, - 2976, -1, 219, 327, -1, -1, 1077, 2089, -1, -1, - 1081, 1714, 1428, -1, 2096, -1, -1, -1, -1, 2995, - -1, 2997, -1, -1, -1, -1, 350, -1, -1, -1, - -1, -1, -1, 1449, -1, 1451, -1, 2119, -1, -1, - -1, -1, -1, 3019, -1, -1, 3022, 3023, -1, 3019, - 3012, 2725, -1, -1, -1, 3019, -1, -1, -1, 483, - 2851, 1619, 1765, -1, -1, -1, 490, 491, 492, 493, - 494, 495, 289, -1, -1, -1, -1, 1493, 197, 3055, - 1783, -1, 406, -1, -1, -1, 381, 2761, -1, 1299, - 1300, -1, 1302, -1, -1, -1, 1799, -1, -1, -1, - 219, -1, -1, 1661, -1, -1, -1, -1, -1, 433, - -1, -1, 1815, -1, -1, -1, 538, 441, 2792, -1, - 3096, 2795, -1, -1, -1, -1, -1, 1830, -1, -1, - 538, -1, -1, -1, 458, -1, 460, 461, -1, -1, - -1, -1, -1, 8, 1215, -1, 11, 745, -1, -1, - 15, -1, 1223, 18, 19, 20, -1, -1, -1, 2241, - -1, 1232, 1578, 1579, 1867, -1, -1, -1, -1, 1872, - 289, -1, -1, 497, -1, -1, 500, 501, 502, -1, - -1, -1, -1, -1, -1, 2706, -1, -1, 483, -1, - 1261, -1, -1, -1, -1, 490, 491, 492, 493, 494, - 495, -1, -1, -1, 2995, 2726, 2727, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 2301, - -1, 2742, -1, -1, -1, 1296, 1297, -1, 1299, 1300, - -1, 1302, 1303, -1, -1, -1, 8, -1, -1, 11, - 111, 112, -1, 15, -1, -1, 18, 19, 20, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 35, -1, -1, -1, -1, -1, 486, - 487, 488, -1, 490, 491, 492, 493, 494, 495, -1, - -1, 1352, -1, -1, 882, -1, -1, -1, -1, 2371, - -1, 8, 1363, -1, 11, -1, -1, 2818, 15, 1509, - -1, 18, 19, 20, -1, -1, -1, -1, -1, 1519, - -1, 1521, -1, -1, 1524, -1, 187, 188, 35, -1, - 1530, 2995, 1532, 745, -1, 1396, -1, -1, -1, -1, - -1, -1, -1, -1, 1544, -1, -1, 745, -1, 1549, - -1, -1, -1, 1553, 1554, 1555, 1556, -1, 1558, 1559, - -1, -1, -1, -1, 219, -1, 1427, 1428, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 486, 487, 488, - -1, 490, 491, 492, 493, 494, 495, -1, 1449, -1, - 1451, 252, 253, 254, 255, 256, 257, -1, -1, 260, - 261, 8, -1, 1809, 11, 2098, -1, -1, 15, -1, - -1, 18, 19, 20, -1, 0, -1, -1, -1, -1, - -1, -1, -1, -1, 1972, -1, -1, -1, 35, -1, - 2502, -1, 1493, -1, 289, -1, 2129, -1, -1, -1, - -1, -1, 1503, -1, 1505, -1, -1, 1508, 1509, -1, - -1, 2144, -1, 2146, -1, -1, -1, 219, 1519, 1520, - 1521, 1522, -1, 1524, -1, 2537, -1, -1, -1, 1530, - 882, 1532, -1, 1061, -1, -1, -1, -1, -1, -1, - -1, -1, 1543, 1544, 882, -1, -1, 1548, 1549, -1, - -1, -1, 1553, 1554, 1555, 1556, 2044, 1558, 1559, -1, - -1, -1, -1, -1, -1, 366, 367, -1, -1, -1, - 95, -1, 219, -1, 2062, -1, -1, 1578, 1579, 1580, - -1, -1, -1, -1, -1, -1, -1, 289, -1, -1, - -1, -1, 8, 1733, 1595, 11, -1, 2609, -1, 15, - 1740, 2089, 18, 19, 20, -1, -1, -1, 2096, -1, - -1, -1, -1, -1, 1960, -1, -1, -1, -1, 35, - -1, -1, 147, 1969, 1970, 1971, -1, -1, -1, -1, - -1, 2119, -1, -1, -1, 2268, 161, -1, -1, -1, - -1, 166, 289, -1, 1990, -1, 171, -1, -1, -1, - -1, -1, -1, -1, -1, 180, 2289, -1, 2291, 184, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 219, -1, -1, -1, -1, -1, 479, 480, - -1, -1, -1, -1, -1, -1, -1, -1, 1828, -1, - 215, 486, 487, 488, 1222, 490, 491, 492, 493, 494, - 495, -1, -1, -1, -1, -1, -1, -1, -1, 1061, - 235, -1, -1, 2725, -1, -1, -1, -1, -1, -1, - 1248, 1249, -1, 1061, -1, -1, -1, -1, -1, -1, - -1, -1, 1733, -1, -1, -1, -1, -1, -1, 1740, - -1, -1, 289, -1, -1, -1, -1, -1, -1, 2761, - -1, -1, -1, 2241, -1, -1, -1, -1, -1, 284, - -1, -1, 287, -1, -1, -1, 1294, -1, 293, -1, - -1, -1, -1, 2406, -1, -1, 1777, 2410, -1, -1, - 2792, -1, -1, 2795, 486, 487, 488, -1, 490, 491, - 492, 493, 494, 495, -1, 2141, 2142, 2143, -1, -1, - -1, -1, 327, 219, -1, -1, -1, 2440, 1809, 2442, - -1, -1, -1, 2301, 1815, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 350, -1, 1828, -1, -1, - -1, -1, -1, -1, -1, -1, 2182, -1, -1, 486, - 487, 488, 1982, 490, 491, 492, 493, 494, 495, -1, - -1, -1, -1, -1, -1, -1, -1, 1385, -1, -1, - -1, -1, -1, -1, -1, -1, 1867, -1, 1869, -1, - 1222, 1872, -1, 289, -1, 1876, -1, -1, -1, -1, - -1, 406, -1, 2371, 1222, -1, -1, -1, -1, -1, - -1, 1892, -1, -1, -1, -1, 1248, 1249, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 433, -1, - 1248, 1249, -1, -1, -1, -1, 441, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 2272, -1, -1, -1, - -1, -1, -1, 458, -1, 460, 461, -1, -1, 486, - 487, 488, 1294, 490, 491, 492, 493, 494, 495, -1, - 2583, -1, -1, -1, 1955, -1, 1294, -1, -1, 1960, - -1, -1, -1, -1, -1, -1, -1, 1968, 1969, 1970, - 1971, -1, 497, -1, -1, 500, 501, 502, -1, -1, - -1, 1982, -1, 2995, -1, -1, 1514, -1, -1, 1990, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 2002, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 2502, 2648, -1, 2018, -1, -1, - 2653, -1, -1, 2656, -1, -1, -1, -1, -1, -1, - -1, 2032, 2033, 1385, -1, -1, -1, -1, -1, -1, - -1, 2387, 2388, 2389, 2390, -1, -1, 1385, -1, 2537, - -1, -1, -1, -1, 2055, -1, -1, -1, -1, -1, - -1, -1, -1, 2203, -1, -1, -1, -1, -1, -1, - 486, 487, 488, -1, 490, 491, 492, 493, 494, 495, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 2230, 1619, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 2736, -1, 2245, 2246, 2247, 2248, 2249, - 2250, 2251, 2252, 2253, 2254, -1, -1, -1, -1, -1, - -1, 2609, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 1661, 2480, -1, -1, -1, -1, -1, - 2141, 2142, 2143, 2144, -1, 2146, 2147, 2148, -1, -1, - -1, -1, 2153, 2154, -1, 2788, 111, 112, -1, -1, - -1, -1, 1514, -1, -1, -1, -1, -1, 2801, -1, - -1, -1, -1, -1, -1, -1, 1514, -1, -1, -1, - -1, 2182, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 25, -1, -1, -1, -1, -1, 31, -1, 2200, - -1, -1, 2203, -1, 38, -1, 2207, 2208, 2209, -1, - 2211, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 57, 2857, -1, -1, -1, -1, 2230, - -1, 2232, 187, 188, -1, -1, -1, 2725, -1, -1, - -1, -1, -1, 38, 2245, 2246, 2247, 2248, 2249, 2250, - 2251, 2252, 2253, 2254, -1, -1, -1, 600, 601, -1, - -1, 2401, 57, -1, -1, -1, 2267, 1619, -1, -1, - -1, 2272, -1, 2761, 108, -1, 2416, -1, 2279, -1, - -1, 1619, -1, 2916, -1, -1, -1, -1, -1, -1, - -1, -1, 2293, -1, -1, -1, -1, 252, 253, 254, - 255, 256, 257, 137, 2792, 260, 261, 2795, -1, 1661, - 2311, -1, -1, 108, 109, -1, -1, -1, -1, 662, - 663, -1, 117, 1661, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 2473, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 2361, -1, -1, -1, -1, 199, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 3012, - 175, -1, -1, -1, 2385, -1, 2387, 2388, 2389, 2390, - -1, 2737, -1, 2394, 2395, -1, 2397, 2398, -1, -1, - 2401, -1, -1, -1, 199, 2406, -1, -1, 2754, 2410, - -1, 366, 367, -1, -1, 2416, 250, -1, -1, -1, - -1, -1, -1, -1, 258, -1, -1, -1, -1, -1, - -1, -1, 2433, -1, -1, -1, 270, 2438, -1, -1, - -1, -1, 2443, -1, 1972, -1, 2447, -1, -1, -1, - -1, -1, 2453, 8, -1, 250, 11, 291, 2459, -1, - 15, -1, -1, 258, -1, -1, -1, 301, -1, -1, - -1, 2472, 2473, -1, -1, 270, -1, 272, -1, 2480, - 2826, -1, -1, -1, -1, -1, -1, -1, 43, -1, - -1, -1, -1, -1, -1, 50, 2497, -1, -1, -1, - -1, -1, -1, -1, -1, 2645, 301, 2995, 342, -1, - 2856, -1, 346, -1, 348, -1, 2044, -1, 2658, -1, - 75, 2661, -1, -1, 479, 480, -1, 0, -1, -1, - -1, -1, -1, -1, 2062, -1, 370, -1, 881, -1, - -1, -1, 376, -1, 499, -1, -1, -1, -1, -1, - -1, -1, -1, 348, -1, 898, 390, -1, -1, -1, - -1, 2089, -1, -1, -1, -1, 2706, -1, 2096, -1, - -1, -1, 2573, -1, -1, 370, -1, -1, -1, -1, - -1, 2582, -1, -1, 927, -1, 2726, 2727, -1, -1, - 145, 2119, -1, 2594, -1, 390, -1, 392, -1, -1, - 395, -1, 2742, -1, 947, 948, 949, -1, -1, 952, - 444, -1, -1, -1, -1, -1, 8, -1, -1, 11, - 1972, 176, 95, 15, -1, -1, 18, 19, 20, 2630, - -1, -1, 975, -1, 1972, 2775, -1, 192, 2639, 2640, - -1, 2642, 197, -1, 2645, -1, -1, 2648, -1, -1, - -1, 43, 2653, 2793, -1, 2656, -1, 2658, 50, -1, - 2661, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 147, 2676, -1, -1, 2818, 234, - -1, 1024, -1, 75, -1, 1028, 1029, -1, 161, -1, - -1, -1, 2044, 166, -1, -1, -1, -1, 171, -1, - -1, -1, -1, -1, 499, 2706, 2044, 180, -1, -1, - 2062, 184, -1, 2241, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 2062, 2726, 2727, -1, -1, -1, - -1, -1, -1, -1, 289, -1, 2737, 2089, 2739, -1, - -1, 2742, 215, 1086, 2096, -1, -1, -1, -1, -1, - -1, 2089, -1, 2754, 1097, -1, 2757, 2897, 2096, -1, - -1, 2901, 235, -1, -1, -1, -1, 2119, -1, -1, - -1, -1, -1, 2301, 2775, -1, -1, -1, 1121, -1, - -1, 2119, -1, -1, 176, -1, -1, 2788, -1, -1, - -1, -1, 2793, -1, -1, -1, -1, -1, -1, -1, - 192, -1, -1, -1, -1, 197, -1, -1, -1, -1, - 2811, 284, -1, -1, 287, 2816, -1, 2818, -1, -1, - 293, -1, -1, -1, -1, 2826, 381, 2967, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 2842, 234, 2371, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 327, 2856, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 350, -1, -1, - -1, -1, -1, 2884, -1, -1, -1, -1, -1, 2241, - -1, -1, 2893, -1, -1, -1, 2897, 289, -1, -1, - 2901, -1, -1, 2241, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 2919, 2920, - 2921, -1, 2923, -1, -1, -1, -1, -1, 483, -1, - -1, -1, -1, 406, -1, 490, 491, 492, 493, 494, - 495, -1, -1, -1, -1, -1, -1, -1, -1, 2301, - -1, 2952, -1, -1, -1, -1, -1, -1, -1, -1, - 433, -1, -1, 2301, -1, -1, 2967, -1, 441, -1, - -1, -1, -1, -1, 2502, -1, -1, -1, 2979, -1, - -1, -1, -1, -1, -1, 458, -1, 460, 461, 381, - -1, -1, 2993, -1, -1, -1, -1, -1, 1341, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 1351, 2537, - 1353, -1, 3013, 1356, 1357, 1358, 1359, -1, 3019, 2371, - -1, -1, -1, -1, 497, -1, -1, 500, 501, 502, - -1, -1, -1, 2371, 3035, 3036, -1, 1380, -1, -1, - -1, -1, -1, 1386, 1387, 1388, 1389, 1390, 1391, 1392, - -1, -1, -1, -1, 1397, 1398, -1, -1, -1, 1402, - -1, -1, -1, 1406, -1, -1, 1409, 1410, 1411, 1412, - 1413, 1414, 1415, 1416, 1417, -1, -1, 1420, -1, -1, - -1, 2609, -1, -1, 1427, -1, -1, 1430, -1, -1, - -1, 483, -1, -1, 486, 487, 488, -1, 490, 491, - 492, 493, 494, 495, -1, -1, -1, 0, -1, 1452, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 21, -1, - -1, -1, 968, -1, -1, -1, 1479, 1480, 31, -1, - 33, 34, -1, -1, -1, -1, -1, -1, -1, -1, - 2502, -1, -1, -1, -1, -1, 49, -1, -1, -1, - -1, -1, -1, -1, 2502, 58, -1, -1, -1, -1, - -1, -1, -1, 1009, -1, -1, -1, 70, -1, -1, - -1, -1, -1, -1, -1, 2537, -1, -1, 81, -1, - -1, -1, -1, -1, -1, -1, -1, 2725, -1, 2537, - 93, -1, 95, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 113, 1564, -1, -1, 1567, 1568, -1, 1570, -1, -1, - -1, -1, -1, 2761, 127, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 137, -1, -1, -1, -1, -1, - 143, -1, -1, -1, -1, -1, 1599, 2609, 151, -1, - 153, 154, -1, 8, 2792, -1, 11, 2795, -1, -1, - 15, 2609, -1, -1, 167, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 1125, - -1, -1, -1, -1, -1, -1, 1132, -1, 43, -1, - -1, -1, -1, 196, -1, 50, -1, -1, -1, -1, - -1, -1, 8, -1, -1, 11, 1659, -1, 211, 15, - -1, -1, -1, -1, -1, -1, 8, 1670, -1, 11, - 75, -1, 1675, 15, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 237, -1, -1, 43, 8, -1, - -1, 11, -1, -1, 50, 15, 16, 17, 18, 19, - 20, 43, -1, -1, -1, -1, -1, -1, 50, -1, - -1, 1714, -1, 2725, -1, 35, -1, -1, -1, 75, - -1, -1, 1725, 43, 1727, 1728, -1, 2725, -1, -1, - 50, -1, 1735, 75, -1, -1, 1739, -1, -1, 1742, - 145, -1, -1, -1, -1, -1, -1, -1, -1, 2761, - -1, -1, -1, -1, -1, 75, -1, -1, -1, -1, - -1, 314, -1, 2761, 317, -1, -1, -1, -1, -1, - -1, 176, -1, -1, -1, -1, 1779, -1, -1, 1782, - 2792, 1784, -1, 2795, -1, -1, -1, 192, -1, 145, - -1, -1, 197, 346, 2792, -1, -1, 2795, -1, -1, - -1, -1, 355, -1, -1, -1, -1, 2995, -1, -1, - -1, -1, -1, -1, -1, -1, 369, -1, -1, -1, - 176, -1, -1, 376, -1, -1, -1, 380, -1, 234, - -1, -1, 1835, -1, 176, -1, 192, 390, -1, -1, - -1, 197, -1, 1339, -1, -1, -1, 1850, 1851, 402, - 192, -1, -1, 406, 1350, 197, 176, -1, 1354, -1, - -1, -1, -1, -1, 1360, 1361, 1362, -1, -1, -1, - -1, -1, 192, 1369, -1, -1, -1, 197, 234, -1, - -1, 1884, -1, -1, 289, -1, -1, -1, -1, 442, - -1, -1, 234, -1, 447, -1, -1, -1, -1, 219, - 220, -1, -1, -1, -1, -1, -1, -1, 461, -1, - -1, -1, -1, -1, 234, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 1426, 8, 485, 289, 11, -1, -1, -1, 15, -1, - 1943, 18, 19, 20, -1, -1, 499, 289, -1, 502, - -1, -1, 272, -1, -1, 275, -1, -1, 35, -1, - -1, -1, -1, -1, -1, -1, 43, -1, 1464, 289, - -1, -1, 292, 50, -1, -1, 381, -1, -1, -1, - -1, -1, 1478, 2995, -1, 1988, -1, 1483, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 2995, 75, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 381, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 2041, 381, - -1, -1, -1, -1, -1, -1, -1, 2050, -1, -1, - 2053, -1, -1, 2056, -1, -1, -1, -1, -1, -1, - -1, 381, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 483, -1, - 2083, 2084, -1, -1, 2087, 490, 491, 492, 493, 494, - 495, -1, -1, -1, -1, 2098, -1, -1, -1, 176, - -1, -1, -1, -1, 2107, -1, -1, 2110, -1, 2112, - -1, -1, -1, -1, -1, 192, -1, 2120, -1, -1, - 197, -1, -1, -1, -1, 2128, 2129, 483, -1, 2132, - -1, -1, -1, -1, 490, 491, 492, 493, 494, 495, - -1, 483, 219, 220, -1, -1, -1, -1, 490, 491, - 492, 493, 494, 495, -1, -1, 2159, 234, -1, -1, - -1, -1, -1, 483, -1, -1, 486, 487, 488, -1, - 490, 491, 492, 493, 494, 495, -1, 1673, -1, -1, - -1, -1, 2185, 503, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 272, 1692, -1, 275, 2202, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 289, -1, 1710, 292, 1712, 1713, -1, 1715, - -1, 1717, -1, -1, -1, 1721, -1, -1, 1724, -1, - -1, -1, -1, 1729, -1, -1, 1732, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 1744, -1, - -1, -1, 1748, 1749, 1750, 1751, 1752, 1753, 1754, -1, - -1, -1, -1, -1, 1760, 1761, -1, 1763, 1764, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 1775, - -1, -1, 1778, -1, -1, -1, -1, -1, -1, -1, - 1786, 1787, 1788, 1789, 1790, 1791, 1792, 1793, 1794, 1795, - -1, -1, -1, -1, 381, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 2317, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 1827, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 2365, 2366, -1, -1, -1, 2370, -1, -1, - -1, -1, 2375, -1, -1, 2378, 2379, -1, -1, -1, - 2383, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 483, -1, -1, 486, - 487, 488, -1, 490, 491, 492, 493, 494, 495, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 2438, 8, -1, -1, 11, - -1, -1, -1, 15, -1, -1, 18, 19, 20, -1, - -1, -1, 1948, 1949, 1950, -1, -1, -1, -1, -1, - -1, -1, -1, 2466, -1, -1, -1, -1, -1, -1, - -1, 43, -1, -1, -1, -1, -1, -1, 50, 3, - -1, -1, -1, -1, 8, -1, -1, 11, -1, -1, - 2493, 15, 16, 17, 18, 19, 20, -1, -1, -1, - -1, -1, -1, 75, -1, -1, -1, -1, -1, -1, - -1, 35, -1, -1, 38, -1, -1, -1, -1, 43, - 8, -1, -1, 11, -1, -1, 50, 15, 16, 17, - 18, 19, 20, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 2040, -1, -1, 35, -1, -1, - 2046, 75, -1, -1, -1, 43, -1, -1, -1, -1, - -1, -1, 50, 2059, 2060, 2061, -1, 2063, 2064, 2065, - 2066, 2067, -1, -1, 2070, 2071, 2072, 2073, 2074, 2075, - 2076, 2077, 2078, 2079, 2080, -1, -1, 75, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 2099, 176, -1, 2102, -1, 2104, 2612, - -1, -1, 2108, 2109, -1, -1, -1, -1, 2621, 2622, - 192, -1, 2625, -1, -1, 197, 2122, 2123, 2124, 2125, - -1, 2127, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 219, 220, -1, - -1, -1, 176, -1, -1, -1, -1, -1, -1, -1, - 2663, 2664, 234, -1, -1, -1, -1, -1, 192, -1, - -1, 8, -1, 197, 11, 2678, -1, -1, 15, 16, - 17, 18, 19, 20, -1, -1, -1, -1, 176, -1, - -1, -1, 2695, -1, -1, 219, 220, -1, 35, -1, - 272, 38, -1, 275, 192, -1, 43, -1, 2204, 197, - 234, -1, -1, 50, -1, -1, -1, 289, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 219, 220, -1, -1, -1, -1, -1, 75, -1, - -1, -1, -1, -1, -1, -1, 234, -1, 272, -1, - -1, 275, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 8, 289, -1, 11, 292, -1, - -1, 15, 16, 17, 18, 19, 20, -1, -1, -1, - -1, 2784, -1, -1, 272, -1, -1, 275, -1, -1, - -1, 35, -1, -1, -1, -1, 2292, -1, 2801, 43, - -1, 289, -1, -1, 292, -1, 50, -1, -1, 381, - -1, -1, -1, 2816, -1, -1, 2819, -1, -1, -1, - -1, -1, 2318, -1, -1, -1, 2322, 2323, -1, 2325, - 2833, 75, 2328, 2329, 2330, 2331, 2332, -1, -1, 176, - 2336, 2337, 2338, 2339, 2340, 2341, 2342, 2343, 2344, 2345, - 2346, 2347, -1, -1, -1, 192, -1, 381, -1, -1, - 197, 2357, -1, -1, -1, -1, -1, -1, 2364, -1, - -1, 2367, -1, 2369, -1, -1, -1, 2373, -1, -1, - 2376, 2377, 219, 220, 2380, 2381, -1, -1, 2384, -1, - -1, -1, -1, 381, -1, -1, -1, 234, -1, -1, - -1, -1, -1, -1, -1, -1, 2909, -1, -1, -1, - 2913, 483, -1, -1, 486, 487, 488, -1, 490, 491, - 492, 493, 494, 495, -1, -1, -1, 2423, -1, -1, - -1, -1, 176, -1, -1, 272, -1, -1, 275, -1, - 2943, 2437, -1, -1, -1, -1, -1, -1, 192, -1, - -1, -1, 289, 197, 2450, 292, -1, -1, -1, 483, - -1, -1, 486, 487, 488, -1, 490, 491, 492, 493, - 494, 495, -1, 2976, -1, 219, 220, -1, 2474, -1, - -1, -1, -1, -1, 23, -1, -1, -1, -1, -1, - 234, -1, -1, -1, -1, 483, -1, -1, 486, 487, - 488, -1, 490, 491, 492, 493, 494, 495, -1, -1, - -1, -1, 500, -1, 8, -1, -1, 11, -1, 3022, - 3023, 15, 16, 17, 18, 19, 20, -1, 272, -1, - -1, 275, -1, -1, -1, -1, -1, 76, -1, -1, - -1, 35, -1, -1, 381, 289, -1, -1, 292, 43, - -1, -1, 3055, 92, -1, -1, 50, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 75, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 3096, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 2602, 146, -1, -1, - 2606, -1, 25, -1, -1, -1, -1, 156, 31, 2615, - 2616, 2617, -1, -1, 2620, 38, -1, 2623, 2624, 168, - -1, -1, 2628, -1, 173, -1, -1, 381, -1, -1, - -1, -1, -1, -1, 57, -1, 483, -1, -1, 486, - 487, 488, -1, 490, 491, 492, 493, 494, 495, -1, - -1, 200, -1, 500, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 176, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 108, 2692, -1, 192, -1, - -1, -1, 2698, 197, -1, -1, 245, -1, -1, -1, - 249, -1, -1, -1, -1, 2711, -1, -1, -1, -1, - -1, -1, -1, -1, 137, 219, 220, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 483, - 234, -1, 486, 487, 488, -1, 490, 491, 492, 493, - 494, 495, -1, -1, -1, -1, 500, -1, -1, -1, - -1, -1, -1, 2759, 2760, -1, -1, -1, -1, 2765, - 2766, 2767, -1, 312, -1, -1, -1, -1, 272, -1, - -1, 275, -1, -1, -1, -1, 199, 326, -1, -1, - -1, -1, -1, -1, -1, 289, -1, -1, 292, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 2809, 2810, -1, -1, -1, -1, -1, - 359, -1, -1, 362, -1, -1, -1, -1, -1, 2825, - -1, 370, -1, -1, 373, -1, -1, 250, 2834, -1, - -1, -1, -1, -1, -1, 258, -1, -1, -1, -1, - -1, -1, -1, 392, -1, -1, -1, 270, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 406, -1, -1, - -1, -1, -1, -1, 413, -1, -1, -1, 291, -1, - -1, -1, 2878, 422, -1, -1, -1, 381, 301, 428, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 2896, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 453, -1, -1, -1, -1, -1, - -1, -1, 2918, -1, -1, -1, -1, -1, -1, 342, - -1, -1, -1, 346, -1, 348, -1, -1, -1, -1, - -1, 2937, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 370, -1, -1, - -1, -1, -1, 376, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 390, -1, -1, - -1, -1, -1, -1, -1, 2981, -1, -1, -1, 483, - -1, -1, 486, 487, 488, -1, 490, 491, 492, 493, - 494, 495, -1, -1, -1, -1, 500, -1, -1, -1, - -1, -1, -1, -1, 3010, -1, -1, -1, -1, -1, - -1, -1, -1, 3, 4, 5, 6, 7, 8, 9, - 10, 444, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 21, 22, 23, 24, 25, 26, 27, 28, 29, - 30, 31, 32, -1, -1, -1, -1, 37, -1, -1, - 40, 41, 3058, 43, 44, 45, 46, 47, 48, 49, - 50, 51, 52, 53, 54, -1, 56, 57, 58, 59, - 60, 61, 62, 63, 64, 65, 66, 67, 68, -1, - 70, 71, 72, 73, 74, -1, 76, -1, 78, 79, - 80, 81, 82, 83, 84, 85, 86, 87, -1, 89, - 90, 91, 92, 93, 94, -1, 96, 97, 98, 99, - 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, - 110, 111, 112, 113, 114, 115, 116, 117, 118, -1, - 120, 121, 122, 123, 124, 125, -1, 127, 128, 129, - 130, 131, 132, -1, 134, 135, 136, 137, 138, -1, - 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, - 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, - 160, -1, 162, 163, 164, 165, -1, 167, -1, 169, - 170, -1, 172, 173, 174, 175, 176, 177, -1, 179, - -1, 181, 182, 183, -1, 185, 186, 187, 188, 189, - 190, 191, 192, 193, 194, 195, 196, -1, 198, 199, - 200, 201, 202, 203, -1, 205, 206, 207, 208, 209, - 210, 211, 212, 213, 214, -1, 216, -1, 218, 219, - 220, 221, 222, 223, 224, 225, 226, 227, 228, -1, - -1, 231, 232, 233, 234, -1, 236, 237, 238, 239, - 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, - 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, - 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, - 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, - 280, 281, 282, 283, -1, 285, 286, -1, -1, 289, - 290, 291, -1, -1, 294, 295, 296, 297, 298, 299, - 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, - -1, 311, 312, 313, 314, 315, 316, 317, 318, 319, - -1, 321, 322, 323, 324, 325, 326, -1, 328, 329, - 330, 331, 332, 333, 334, 335, -1, 337, 338, 339, - 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, - -1, 351, 352, 353, 354, 355, 356, 357, 358, 359, - 360, 361, 362, 363, 364, 365, 366, 367, 368, -1, - 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, - 380, 381, 382, 383, 384, 385, -1, 387, 388, 389, - 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, - 400, 401, 402, -1, 404, 405, -1, 407, 408, 409, - 410, 411, 412, 413, -1, 415, 416, -1, -1, 419, - 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, - 430, 431, 432, -1, -1, 435, 436, 437, 438, 439, - 440, -1, 442, 443, 444, 445, 446, 447, 448, 449, - 450, 451, 452, 453, 454, 455, 456, -1, -1, 459, - -1, -1, 462, 463, 464, 465, 466, 467, 468, 469, - 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, - 480, 481, 482, 483, -1, -1, -1, -1, -1, -1, - 490, 491, 492, -1, -1, -1, -1, 497, -1, 499, - 500, -1, -1, -1, 504, -1, 506, 507, 3, 4, - 5, 6, 7, 8, 9, 10, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 21, 22, 23, 24, - 25, 26, 27, 28, -1, 30, 31, 32, -1, -1, - -1, -1, 37, -1, -1, 40, 41, -1, 43, 44, - 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, - -1, 56, 57, 58, 59, 60, 61, 62, 63, 64, - 65, 66, 67, 68, -1, 70, 71, 72, 73, 74, - -1, 76, -1, 78, 79, 80, 81, 82, 83, 84, - 85, 86, 87, -1, 89, 90, 91, 92, 93, 94, - -1, 96, 97, 98, 99, 100, 101, 102, 103, 104, - 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, - 115, 116, 117, 118, -1, 120, 121, 122, 123, 124, - 125, -1, 127, 128, 129, 130, 131, -1, -1, 134, - 135, 136, 137, 138, -1, 140, 141, 142, -1, 144, - 145, 146, -1, 148, 149, 150, 151, 152, 153, 154, - 155, 156, 157, 158, 159, 160, -1, 162, 163, 164, - 165, -1, 167, -1, 169, 170, -1, 172, 173, 174, - 175, 176, 177, -1, 179, -1, 181, 182, 183, -1, - 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, - 195, 196, -1, 198, 199, 200, 201, 202, 203, -1, - 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, - -1, 216, -1, 218, 219, 220, 221, 222, 223, 224, - 225, 226, 227, 228, -1, -1, 231, 232, 233, 234, - -1, 236, 237, 238, 239, 240, 241, 242, 243, 244, - 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, - 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, - 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, - 275, 276, 277, 278, 279, 280, 281, 282, 283, -1, - 285, 286, -1, -1, 289, 290, 291, -1, -1, 294, - 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, - 305, 306, 307, 308, 309, -1, 311, 312, 313, 314, - 315, 316, 317, 318, 319, -1, 321, 322, 323, 324, - 325, 326, -1, 328, 329, 330, 331, 332, 333, 334, - 335, -1, 337, 338, 339, 340, 341, 342, 343, 344, - 345, 346, 347, 348, 349, -1, 351, 352, 353, 354, - 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, - 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, + 1407, 0, 2625, 1402, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, -1846, 0, 0, 0, 0, + 0, 0, 1412, 1413, 1414, 1415, 1416, 1417, 0, 0, + 0, 0, 0, -1846, 0, 0, 0, 0, 0, 0, + 0, 1403, 0, 0, 1404, 0, 0, 0, 0, -1846, + 0, 0, 0, 0, -1846, 0, 0, 0, 1405, 0, + 0, 0, 0, 1407, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1407, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, -1846, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1408, 0, 0, 1409, 1410, 1411, 0, 1412, + 1413, 1414, 1415, 1416, 1417, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1405, 0, 0, 0, + 1407, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1408, 0, 0, 1409, 1410, + 1411, 0, 1412, 1413, 1414, 1415, 1866, 1417, 1408, 0, + 0, 1409, 1410, 1411, 0, 1412, 1413, 1414, 1415, 1416, + 1417, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, -1846, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1408, 0, 0, 1409, 1410, 1411, 0, 1412, + 1413, 1414, 1415, 1416, 1417, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1134, 0, 1755, 0, 0, + -1846, 0, 0, 0, 0, 0, 0, 1412, 1413, 1414, + 1415, 1416, 1417, 94, 95, 96, 97, 98, 99, 100, + 101, 1135, 102, 103, 104, 1136, 1137, 1138, 1139, 1140, + 1141, 1142, 105, 106, 1143, 107, 108, 109, 786, 111, + 112, 113, 787, 788, 789, 790, 791, 1144, 119, 120, + 121, 122, 123, 124, 1145, 1146, 125, 126, 792, 793, + 129, 1147, 130, 131, 132, 133, 794, 1148, 795, 1149, + 136, 137, 138, 139, 140, 141, 796, 143, 144, 145, + 1150, 146, 147, 148, 149, 150, 151, 1151, 797, 153, + 154, 155, 798, 799, 800, 801, 1152, 1153, 802, 161, + 162, 163, 164, 165, 166, 167, 803, 804, 170, 1154, + 171, 1155, 172, 173, 174, 175, 176, 177, 1156, 178, + 179, 180, 181, 182, 1157, 1158, 183, 184, 185, 186, + 187, 1159, 188, 189, 190, 1160, 191, 192, 193, 1161, + 194, 195, 196, 197, 805, 199, 200, 201, 202, 203, + 806, 1162, 205, 1163, 206, 207, 807, 209, 1164, 210, + 1165, 211, 808, 1166, 809, 214, 215, 810, 811, 218, + 1167, 219, 1168, 812, 813, 222, 1169, 223, 224, 225, + 226, 227, 228, 229, 814, 231, 232, 233, 234, 1170, + 235, 236, 237, 238, 239, 240, 1171, 241, 815, 816, + 244, 245, 246, 247, 248, 817, 818, 1172, 819, 1173, + 252, 820, 821, 255, 822, 257, 258, 259, 260, 261, + 262, 1174, 1175, 263, 823, 265, 824, 1176, 267, 268, + 269, 1177, 1178, 270, 271, 272, 273, 274, 825, 276, + 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, + 287, 288, 289, 290, 291, 292, 293, 826, 827, 828, + 297, 298, 299, 829, 1179, 301, 302, 830, 304, 1180, + 831, 306, 832, 308, 309, 310, 1181, 311, 312, 1182, + 1183, 313, 314, 315, 1184, 1185, 316, 833, 834, 319, + 835, 836, 322, 323, 324, 325, 326, 327, 328, 329, + 330, 331, 1186, 332, 333, 837, 335, 336, 838, 338, + 339, 340, 1187, 341, 342, 343, 344, 345, 346, 1188, + 347, 348, 349, 839, 351, 352, 353, 354, 1189, 355, + 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, + 366, 367, 1190, 368, 369, 840, 371, 372, 373, 841, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, - 385, -1, 387, 388, 389, 390, 391, 392, 393, 394, - 395, 396, 397, 398, 399, 400, 401, 402, -1, 404, - 405, 406, 407, 408, 409, 410, 411, 412, 413, -1, - 415, 416, -1, -1, 419, 420, 421, 422, 423, 424, - 425, 426, 427, 428, 429, 430, 431, 432, -1, -1, - 435, 436, 437, 438, 439, 440, -1, 442, 443, 444, - 445, 446, 447, 448, -1, 450, 451, 452, 453, 454, - 455, 456, -1, -1, 459, -1, 461, 462, 463, 464, - 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, - 475, 476, 477, 478, 479, 480, 481, 482, 483, -1, - 485, -1, -1, -1, -1, 490, 491, -1, -1, -1, - -1, -1, 497, -1, 499, 500, -1, -1, -1, 504, - -1, 506, 507, 3, 4, 5, 6, 7, 8, 9, - 10, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 21, 22, 23, 24, 25, 26, 27, 28, -1, - 30, 31, 32, -1, -1, -1, -1, 37, -1, -1, - 40, 41, -1, 43, 44, 45, 46, 47, 48, 49, - 50, 51, 52, 53, 54, -1, 56, 57, 58, 59, - 60, 61, 62, 63, 64, 65, 66, 67, 68, -1, - 70, 71, 72, 73, 74, -1, 76, -1, 78, 79, - 80, 81, 82, 83, 84, 85, 86, 87, -1, 89, - 90, 91, 92, 93, 94, -1, 96, 97, 98, 99, - 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, - 110, 111, 112, 113, 114, 115, 116, 117, 118, -1, - 120, 121, 122, 123, 124, 125, -1, 127, 128, 129, - 130, 131, -1, -1, 134, 135, 136, 137, 138, -1, - 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, - 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, - 160, -1, 162, 163, 164, 165, -1, 167, -1, 169, - 170, -1, 172, 173, 174, 175, 176, 177, -1, 179, - -1, 181, 182, 183, -1, 185, 186, 187, 188, 189, - 190, 191, 192, 193, 194, 195, 196, -1, 198, 199, - 200, 201, 202, 203, -1, 205, 206, 207, 208, 209, - 210, 211, 212, 213, 214, -1, 216, -1, 218, 219, - 220, 221, 222, 223, 224, 225, 226, 227, 228, -1, - -1, 231, 232, 233, 234, -1, 236, 237, 238, 239, - 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, - 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, - 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, - 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, - 280, 281, 282, 283, -1, 285, 286, -1, -1, 289, - 290, 291, -1, -1, 294, 295, 296, 297, 298, 299, - 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, - -1, 311, 312, 313, 314, 315, 316, 317, 318, 319, - -1, 321, 322, 323, 324, 325, 326, -1, 328, 329, - 330, 331, 332, 333, 334, 335, -1, 337, 338, 339, - 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, - -1, 351, 352, 353, 354, 355, 356, 357, 358, 359, - 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, - 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, - 380, 381, 382, 383, 384, 385, -1, 387, 388, 389, - 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, - 400, 401, 402, -1, 404, 405, 406, 407, 408, 409, - 410, 411, 412, 413, -1, 415, 416, -1, -1, 419, - 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, - 430, 431, 432, -1, -1, 435, 436, 437, 438, 439, - 440, -1, 442, 443, 444, 445, 446, 447, 448, -1, - 450, 451, 452, 453, 454, 455, 456, -1, -1, 459, - -1, 461, 462, 463, 464, 465, 466, 467, 468, 469, - 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, - 480, 481, 482, 483, -1, 485, -1, -1, -1, -1, - 490, 491, -1, -1, -1, -1, -1, 497, -1, 499, - -1, -1, -1, -1, 504, -1, 506, 507, 3, 4, - 5, 6, 7, 8, 9, 10, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 21, 22, 23, 24, - 25, 26, 27, 28, -1, 30, 31, 32, -1, -1, - -1, -1, 37, -1, -1, 40, 41, -1, 43, 44, - 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, - 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, - 65, 66, 67, 68, -1, 70, 71, 72, 73, 74, - -1, 76, -1, 78, 79, 80, 81, 82, 83, 84, - 85, 86, 87, -1, 89, 90, 91, 92, 93, 94, - -1, 96, 97, 98, 99, 100, 101, 102, 103, 104, - 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, - 115, 116, 117, 118, -1, 120, 121, 122, 123, 124, - 125, -1, 127, 128, 129, 130, 131, -1, -1, 134, - 135, 136, 137, 138, -1, 140, 141, 142, -1, 144, - 145, 146, -1, 148, 149, 150, 151, 152, 153, 154, - 155, 156, 157, 158, 159, 160, -1, 162, 163, 164, - 165, -1, 167, -1, 169, 170, 171, 172, 173, 174, - 175, 176, 177, -1, 179, -1, 181, 182, 183, -1, - 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, - 195, 196, -1, 198, 199, 200, 201, 202, 203, -1, - 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, - -1, 216, -1, 218, 219, 220, 221, 222, 223, 224, - 225, 226, 227, 228, -1, 230, 231, 232, 233, 234, - -1, 236, 237, 238, 239, 240, 241, 242, 243, 244, - 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, - 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, - 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, - 275, 276, 277, 278, 279, 280, 281, 282, 283, -1, - 285, 286, -1, -1, 289, 290, 291, -1, -1, 294, - 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, - 305, 306, 307, 308, 309, -1, 311, 312, 313, 314, - 315, 316, 317, 318, 319, -1, 321, 322, 323, 324, - 325, 326, -1, 328, 329, 330, 331, 332, 333, 334, - 335, -1, 337, 338, 339, 340, 341, 342, 343, 344, - 345, 346, 347, 348, 349, -1, 351, 352, 353, 354, - 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, - 365, 366, 367, 368, -1, 370, 371, 372, 373, 374, + 385, 1191, 386, 387, 388, 389, 390, 842, 392, 843, + 394, 395, 396, 844, 398, 399, 845, 401, 1192, 402, + 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, + 413, 846, 415, 847, 417, 1193, 418, 419, 1194, 420, + 848, 422, 423, 424, 425, 426, 1195, 849, 850, 1196, + 1197, 429, 430, 851, 432, 852, 1198, 434, 435, 853, + 437, 438, 439, 440, 441, 1199, 1200, 442, 443, 444, + 445, 446, 854, 1201, 448, 449, 450, 451, 452, 1202, + 856, 1203, 455, 857, 457, 458, 459, 460, 461, 1204, + 1205, 462, 1206, 1207, 463, 464, 465, 466, 467, 468, + 858, 859, 860, 861, 862, 863, 864, 865, 866, 867, + 868, 480, 481, 482, 483, 1134, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 94, 95, 96, 97, 98, 99, 100, + 101, 1135, 102, 103, 104, 1136, 1137, 1138, 1139, 1140, + 1141, 1142, 105, 106, 1143, 107, 108, 109, 786, 111, + 112, 113, 787, 788, 789, 790, 791, 1144, 119, 120, + 121, 122, 123, 124, 1145, 1146, 125, 126, 792, 793, + 129, 1147, 130, 131, 132, 133, 794, 1148, 795, 1149, + 136, 137, 138, 139, 140, 141, 796, 143, 144, 145, + 1150, 146, 147, 148, 149, 150, 151, 1151, 797, 153, + 154, 155, 798, 799, 800, 801, 1152, 1153, 802, 161, + 162, 163, 164, 165, 166, 167, 803, 804, 170, 1154, + 171, 1155, 172, 173, 174, 175, 176, 177, 1156, 178, + 179, 180, 181, 182, 1157, 1158, 183, 184, 185, 186, + 187, 1159, 188, 189, 190, 1160, 191, 192, 193, 1161, + 194, 195, 196, 197, 805, 199, 200, 201, 202, 203, + 806, 1162, 205, 1163, 206, 207, 807, 209, 1164, 210, + 1165, 211, 808, 1166, 809, 214, 215, 810, 811, 218, + 1167, 219, 1168, 812, 813, 222, 1169, 223, 224, 225, + 226, 227, 228, 229, 814, 231, 232, 233, 234, 1170, + 235, 236, 237, 238, 239, 240, 1171, 241, 815, 816, + 244, 245, 246, 247, 248, 817, 818, 1172, 819, 1173, + 252, 820, 821, 255, 822, 257, 258, 259, 260, 261, + 262, 1174, 1175, 263, 823, 265, 824, 1176, 267, 268, + 269, 1177, 1178, 270, 271, 272, 273, 274, 825, 276, + 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, + 287, 288, 289, 290, 291, 292, 293, 826, 827, 828, + 297, 298, 299, 829, 1179, 301, 302, 830, 304, 1180, + 831, 306, 832, 308, 309, 310, 1181, 311, 312, 1182, + 1183, 313, 314, 315, 1184, 1185, 316, 833, 834, 319, + 835, 836, 322, 323, 324, 325, 326, 327, 328, 329, + 330, 331, 1186, 332, 333, 837, 335, 336, 838, 338, + 339, 340, 1187, 341, 342, 343, 344, 345, 346, 1188, + 347, 348, 349, 839, 351, 352, 353, 354, 1189, 355, + 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, + 366, 367, 1190, 368, 369, 840, 371, 372, 373, 841, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, - 385, -1, 387, 388, 389, 390, 391, 392, 393, 394, - 395, 396, 397, 398, 399, 400, 401, 402, -1, 404, - 405, -1, 407, 408, 409, 410, 411, 412, 413, -1, - 415, 416, -1, 418, 419, 420, 421, 422, 423, 424, - 425, 426, 427, 428, 429, 430, 431, 432, -1, -1, - 435, 436, 437, 438, 439, 440, -1, 442, 443, 444, - 445, 446, 447, 448, -1, 450, 451, 452, 453, 454, - 455, 456, -1, -1, 459, -1, -1, 462, 463, 464, - 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, - 475, 476, 477, 478, 479, 480, 481, 482, 483, -1, - -1, -1, -1, -1, -1, 490, 491, -1, -1, -1, - -1, -1, 497, -1, 499, -1, -1, -1, -1, 504, - -1, 506, 507, 3, 4, 5, 6, 7, 8, 9, - 10, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 21, 22, 23, 24, 25, 26, 27, 28, 29, - 30, 31, 32, -1, -1, -1, 36, 37, -1, -1, - 40, 41, -1, 43, 44, 45, 46, 47, 48, 49, - 50, 51, 52, 53, 54, -1, 56, 57, 58, 59, - 60, 61, 62, 63, 64, 65, 66, 67, 68, -1, - 70, 71, 72, 73, 74, -1, 76, -1, 78, 79, - 80, 81, 82, 83, 84, 85, 86, 87, -1, 89, - 90, 91, 92, 93, 94, -1, 96, 97, 98, 99, - 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, - 110, 111, 112, 113, 114, 115, 116, 117, 118, -1, - 120, 121, 122, 123, 124, 125, -1, 127, 128, 129, - 130, 131, -1, -1, 134, 135, 136, 137, 138, -1, - 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, - 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, - 160, -1, 162, 163, 164, 165, -1, 167, -1, 169, - 170, -1, 172, 173, 174, 175, 176, 177, -1, 179, - -1, 181, 182, 183, -1, 185, 186, 187, 188, 189, - 190, 191, 192, 193, 194, 195, 196, -1, 198, 199, - 200, 201, 202, 203, -1, 205, 206, 207, 208, 209, - 210, 211, 212, 213, 214, -1, 216, -1, 218, 219, - 220, 221, 222, 223, 224, 225, 226, 227, 228, -1, - -1, 231, 232, 233, 234, -1, 236, 237, 238, 239, - 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, - 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, - 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, - 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, - 280, 281, 282, 283, -1, 285, 286, -1, -1, 289, - 290, 291, -1, -1, 294, 295, 296, 297, 298, 299, - 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, - -1, 311, 312, 313, 314, 315, 316, 317, 318, 319, - -1, 321, 322, 323, 324, 325, 326, -1, 328, 329, - 330, 331, 332, 333, 334, 335, -1, 337, 338, 339, - 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, - -1, 351, 352, 353, 354, 355, 356, 357, 358, 359, - 360, 361, 362, 363, 364, 365, 366, 367, 368, -1, - 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, - 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, - 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, - 400, 401, 402, -1, 404, 405, -1, 407, 408, 409, - 410, 411, 412, 413, -1, 415, 416, -1, -1, 419, - 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, - 430, 431, 432, -1, -1, 435, 436, 437, 438, 439, - 440, -1, 442, 443, 444, 445, 446, 447, 448, -1, - 450, 451, 452, 453, 454, 455, 456, -1, -1, 459, - -1, -1, 462, 463, 464, 465, 466, 467, 468, 469, - 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, - 480, 481, 482, 483, -1, -1, -1, -1, -1, -1, - 490, 491, -1, -1, -1, -1, -1, 497, -1, 499, - -1, -1, -1, -1, 504, -1, 506, 507, 3, 4, - 5, 6, 7, 8, 9, 10, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 21, 22, 23, 24, - 25, 26, 27, 28, 29, 30, 31, 32, -1, -1, - -1, -1, 37, -1, -1, 40, 41, -1, 43, 44, - 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, - -1, 56, 57, 58, 59, 60, 61, 62, 63, 64, - 65, 66, 67, 68, -1, 70, 71, 72, 73, 74, - -1, 76, -1, 78, 79, 80, 81, 82, 83, 84, - 85, 86, 87, -1, 89, 90, 91, 92, 93, 94, - -1, 96, 97, 98, 99, 100, 101, 102, 103, 104, - 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, - 115, 116, 117, 118, -1, 120, 121, 122, 123, 124, - 125, -1, 127, 128, 129, 130, 131, -1, -1, 134, - 135, 136, 137, 138, -1, 140, 141, 142, -1, 144, - 145, 146, -1, 148, 149, 150, 151, 152, 153, 154, - 155, 156, 157, 158, 159, 160, -1, 162, 163, 164, - 165, -1, 167, -1, 169, 170, -1, 172, 173, 174, - 175, 176, 177, -1, 179, -1, 181, 182, 183, -1, - 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, - 195, 196, -1, 198, 199, 200, 201, 202, 203, -1, - 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, - -1, 216, -1, 218, 219, 220, 221, 222, 223, 224, - 225, 226, 227, 228, -1, -1, 231, 232, 233, 234, - -1, 236, 237, 238, 239, 240, 241, 242, 243, 244, - 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, - 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, - 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, - 275, 276, 277, 278, 279, 280, 281, 282, 283, -1, - 285, 286, -1, -1, 289, 290, 291, -1, -1, 294, - 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, - 305, 306, 307, 308, 309, -1, 311, 312, 313, 314, - 315, 316, 317, 318, 319, -1, 321, 322, 323, 324, - 325, 326, -1, 328, 329, 330, 331, 332, 333, 334, - 335, -1, 337, 338, 339, 340, 341, 342, 343, 344, - 345, 346, 347, 348, 349, -1, 351, 352, 353, 354, - 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, - 365, 366, 367, 368, -1, 370, 371, 372, 373, 374, + 385, 1191, 386, 387, 388, 389, 390, 842, 392, 843, + 394, 395, 396, 844, 398, 399, 845, 401, 1192, 402, + 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, + 413, 846, 415, 847, 417, 1193, 418, 419, 1194, 420, + 848, 422, 423, 424, 425, 426, 1195, 849, 850, 1196, + 1197, 429, 430, 851, 432, 852, 1198, 434, 435, 853, + 437, 438, 439, 440, 441, 1199, 1200, 442, 443, 444, + 445, 446, 854, 1201, 448, 449, 450, 451, 452, 1202, + 856, 1203, 455, 857, 457, 458, 459, 460, 461, 1204, + 1205, 462, 1206, 1207, 463, 464, 465, 466, 467, 468, + 858, 859, 860, 861, 862, 863, 864, 865, 866, 867, + 868, 480, 481, 482, 483, 1134, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 94, 95, 96, 97, 1902, 99, 100, + 101, 1135, 102, 103, 104, 1136, 1137, 1138, 1139, 1140, + 1141, 1142, 105, 106, 1143, 107, 108, 109, 786, 111, + 112, 113, 787, 788, 789, 790, 791, 1144, 119, 120, + 121, 122, 123, 124, 1145, 1146, 125, 126, 792, 793, + 129, 1147, 130, 131, 132, 133, 794, 1148, 795, 1149, + 136, 137, 138, 139, 140, 141, 796, 143, 144, 145, + 1150, 146, 147, 148, 149, 150, 151, 1151, 797, 153, + 154, 155, 798, 799, 800, 801, 1152, 1153, 802, 161, + 162, 163, 164, 165, 166, 167, 803, 804, 170, 1154, + 171, 1155, 172, 173, 174, 175, 176, 177, 1156, 178, + 179, 180, 181, 182, 1157, 1158, 183, 184, 185, 1903, + 187, 1159, 188, 189, 190, 1160, 191, 192, 193, 1161, + 194, 195, 196, 197, 805, 199, 200, 201, 202, 203, + 806, 1162, 205, 1163, 206, 207, 807, 209, 1164, 210, + 1165, 211, 808, 1166, 809, 214, 215, 810, 811, 218, + 1167, 219, 1168, 812, 813, 222, 1169, 223, 224, 225, + 226, 227, 228, 229, 814, 231, 232, 233, 234, 1170, + 235, 236, 237, 238, 239, 240, 1171, 241, 815, 816, + 244, 245, 246, 247, 248, 817, 818, 1172, 819, 1173, + 252, 820, 821, 255, 822, 257, 258, 259, 260, 261, + 262, 1174, 1175, 263, 823, 265, 824, 1176, 267, 268, + 269, 1177, 1178, 270, 271, 272, 273, 274, 825, 276, + 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, + 287, 288, 289, 290, 291, 292, 293, 826, 827, 828, + 297, 298, 299, 829, 1179, 301, 302, 830, 304, 1180, + 831, 306, 832, 308, 309, 310, 1181, 311, 312, 1182, + 1183, 313, 314, 315, 1184, 1185, 316, 833, 834, 319, + 835, 836, 322, 323, 324, 325, 326, 327, 328, 329, + 330, 331, 1186, 332, 333, 837, 335, 336, 838, 338, + 339, 340, 1187, 341, 342, 343, 344, 345, 346, 1188, + 347, 348, 349, 839, 351, 352, 353, 354, 1189, 355, + 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, + 366, 367, 1190, 368, 369, 840, 371, 372, 373, 841, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, - 385, -1, 387, 388, 389, 390, 391, 392, 393, 394, - 395, 396, 397, 398, 399, 400, 401, 402, -1, 404, - 405, -1, 407, 408, 409, 410, 411, 412, 413, -1, - 415, 416, -1, -1, 419, 420, 421, 422, 423, 424, - 425, 426, 427, 428, 429, 430, 431, 432, -1, -1, - 435, 436, 437, 438, 439, 440, -1, 442, 443, 444, - 445, 446, 447, 448, -1, 450, 451, 452, 453, 454, - 455, 456, -1, -1, 459, -1, -1, 462, 463, 464, - 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, - 475, 476, 477, 478, 479, 480, 481, 482, 483, -1, - -1, -1, -1, -1, -1, 490, 491, 492, -1, -1, - -1, -1, 497, -1, 499, -1, -1, -1, -1, 504, - -1, 506, 507, 3, 4, 5, 6, 7, 8, 9, - 10, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 21, 22, 23, 24, 25, 26, 27, 28, 29, - 30, 31, 32, -1, -1, -1, -1, 37, -1, -1, - 40, 41, -1, 43, 44, 45, 46, 47, 48, 49, - 50, 51, 52, 53, 54, -1, 56, 57, 58, 59, - 60, 61, 62, 63, 64, 65, 66, 67, 68, -1, - 70, 71, 72, 73, 74, -1, 76, -1, 78, 79, - 80, 81, 82, 83, 84, 85, 86, 87, -1, 89, - 90, 91, 92, 93, 94, -1, 96, 97, 98, 99, - 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, - 110, 111, 112, 113, 114, 115, 116, 117, 118, -1, - 120, 121, 122, 123, 124, 125, -1, 127, 128, 129, - 130, 131, -1, -1, 134, 135, 136, 137, 138, -1, - 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, - 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, - 160, -1, 162, 163, 164, 165, -1, 167, -1, 169, - 170, -1, 172, 173, 174, 175, 176, 177, -1, 179, - -1, 181, 182, 183, -1, 185, 186, 187, 188, 189, - 190, 191, 192, 193, 194, 195, 196, -1, 198, 199, - 200, 201, 202, 203, -1, 205, 206, 207, 208, 209, - 210, 211, 212, 213, 214, -1, 216, -1, 218, 219, - 220, 221, 222, 223, 224, 225, 226, 227, 228, -1, - -1, 231, 232, 233, 234, -1, 236, 237, 238, 239, - 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, - 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, - 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, - 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, - 280, 281, 282, 283, -1, 285, 286, -1, -1, 289, - 290, 291, -1, -1, 294, 295, 296, 297, 298, 299, - 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, - -1, 311, 312, 313, 314, 315, 316, 317, 318, 319, - -1, 321, 322, 323, 324, 325, 326, -1, 328, 329, - 330, 331, 332, 333, 334, 335, -1, 337, 338, 339, - 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, - -1, 351, 352, 353, 354, 355, 356, 357, 358, 359, - 360, 361, 362, 363, 364, 365, 366, 367, 368, -1, - 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, - 380, 381, 382, 383, 384, 385, -1, 387, 388, 389, - 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, - 400, 401, 402, -1, 404, 405, -1, 407, 408, 409, - 410, 411, 412, 413, -1, 415, 416, -1, -1, 419, - 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, - 430, 431, 432, -1, -1, 435, 436, 437, 438, 439, - 440, -1, 442, 443, 444, 445, 446, 447, 448, -1, - 450, 451, 452, 453, 454, 455, 456, -1, -1, 459, - -1, -1, 462, 463, 464, 465, 466, 467, 468, 469, - 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, - 480, 481, 482, 483, -1, -1, -1, -1, -1, -1, - 490, 491, 492, -1, -1, -1, -1, 497, -1, 499, - -1, -1, -1, -1, 504, -1, 506, 507, 3, 4, - 5, 6, 7, 8, 9, 10, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 21, 22, 23, 24, - 25, 26, 27, 28, -1, 30, 31, 32, -1, -1, - -1, -1, 37, -1, -1, 40, 41, -1, 43, 44, - 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, - -1, 56, 57, 58, 59, 60, 61, 62, 63, 64, - 65, 66, 67, 68, -1, 70, 71, 72, 73, 74, - -1, 76, -1, 78, 79, 80, 81, 82, 83, 84, - 85, 86, 87, -1, 89, 90, 91, 92, 93, 94, - -1, 96, 97, 98, 99, 100, 101, 102, 103, 104, - 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, - 115, 116, 117, 118, -1, 120, 121, 122, 123, 124, - 125, -1, 127, 128, 129, 130, 131, -1, -1, 134, - 135, 136, 137, 138, -1, 140, 141, 142, -1, 144, - 145, 146, -1, 148, 149, 150, 151, 152, 153, 154, - 155, 156, 157, 158, 159, 160, -1, 162, 163, 164, - 165, -1, 167, -1, 169, 170, -1, 172, 173, 174, - 175, 176, 177, -1, 179, -1, 181, 182, 183, -1, - 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, - 195, 196, -1, 198, 199, 200, 201, 202, 203, -1, - 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, - -1, 216, -1, 218, 219, 220, 221, 222, 223, 224, - 225, 226, 227, 228, -1, -1, 231, 232, 233, 234, - -1, 236, 237, 238, 239, 240, 241, 242, 243, 244, - 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, - 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, - 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, - 275, 276, 277, 278, 279, 280, 281, 282, 283, -1, - 285, 286, -1, -1, 289, 290, 291, -1, -1, 294, - 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, - 305, 306, 307, 308, 309, -1, 311, 312, 313, 314, - 315, 316, 317, 318, 319, -1, 321, 322, 323, 324, - 325, 326, -1, 328, 329, 330, 331, 332, 333, 334, - 335, -1, 337, 338, 339, 340, 341, 342, 343, 344, - 345, 346, 347, 348, 349, -1, 351, 352, 353, 354, - 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, - 365, 366, 367, 368, -1, 370, 371, 372, 373, 374, + 385, 1191, 386, 387, 388, 389, 390, 842, 1904, 843, + 394, 395, 396, 844, 398, 399, 845, 401, 1192, 402, + 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, + 413, 846, 415, 847, 417, 1193, 418, 419, 1194, 420, + 848, 422, 423, 424, 425, 426, 1195, 849, 850, 1196, + 1197, 429, 430, 851, 432, 852, 1198, 434, 435, 853, + 437, 438, 439, 440, 441, 1199, 1200, 442, 443, 444, + 445, 446, 854, 1201, 448, 449, 450, 451, 452, 1202, + 856, 1203, 455, 857, 457, 458, 459, 460, 461, 1204, + 1205, 462, 1206, 1207, 463, 464, 465, 466, 467, 468, + 858, 859, 860, 861, 862, 863, 864, 865, 866, 867, + 868, 480, 481, 482, 483, 93, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 94, 95, 96, 97, 98, 99, 100, + 101, 0, 102, 103, 104, 0, 0, 0, 0, 0, + 0, 0, 105, 106, 0, 107, 108, 109, 110, 111, + 112, 113, 114, 115, 116, 117, 118, 0, 119, 120, + 121, 122, 123, 124, 0, 899, 125, 126, 127, 128, + 129, 0, 130, 131, 132, 133, 902, 0, 903, 0, + 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, + 0, 146, 147, 148, 149, 150, 151, 0, 152, 153, + 154, 155, 904, 905, 906, 907, 908, 909, 910, 161, + 162, 163, 164, 165, 166, 167, 168, 169, 170, 0, + 171, 0, 172, 173, 174, 175, 176, 177, 0, 178, + 179, 180, 181, 182, 0, 0, 183, 184, 185, 186, + 187, 0, 188, 189, 190, 0, 191, 192, 193, 0, + 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, + 915, 0, 205, 0, 206, 207, 208, 209, 0, 210, + 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, + 0, 219, 0, 220, 221, 222, 0, 223, 224, 225, + 226, 227, 228, 229, 230, 231, 232, 233, 234, 0, + 235, 236, 237, 238, 239, 240, 0, 241, 242, 243, + 244, 245, 246, 247, 248, 249, 250, 0, 251, 0, + 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, + 262, 0, 0, 263, 264, 265, 266, 0, 267, 268, + 269, 923, 924, 270, 271, 272, 273, 274, 275, 276, + 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, + 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, + 297, 298, 299, 300, 0, 301, 302, 303, 304, 0, + 929, 306, 307, 308, 309, 310, 0, 311, 312, 0, + 0, 313, 314, 315, 0, 0, 316, 317, 318, 319, + 320, 932, 322, 323, 324, 325, 326, 327, 328, 329, + 330, 331, 0, 332, 333, 933, 335, 336, 337, 338, + 339, 340, 0, 341, 342, 343, 344, 345, 346, 0, + 347, 348, 349, 350, 351, 352, 353, 354, 0, 355, + 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, + 366, 367, 0, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, - 385, -1, 387, 388, 389, 390, 391, 392, 393, 394, - 395, 396, 397, 398, 399, 400, 401, 402, -1, 404, - 405, -1, 407, 408, 409, 410, 411, 412, 413, -1, - 415, 416, -1, -1, 419, 420, 421, 422, 423, 424, - 425, 426, 427, 428, 429, 430, 431, 432, -1, -1, - 435, 436, 437, 438, 439, 440, -1, 442, 443, 444, - 445, 446, 447, 448, -1, 450, 451, 452, 453, 454, - 455, 456, -1, -1, 459, -1, -1, 462, 463, 464, - 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, - 475, 476, 477, 478, 479, 480, 481, 482, 483, -1, - -1, -1, -1, -1, -1, 490, 491, 492, -1, -1, - -1, -1, 497, -1, 499, -1, -1, -1, -1, 504, - -1, 506, 507, 3, 4, 5, 6, 7, 8, 9, - 10, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 21, 22, 23, 24, 25, 26, 27, 28, 29, - 30, 31, 32, -1, -1, -1, -1, 37, -1, -1, - 40, 41, -1, 43, 44, 45, 46, 47, 48, 49, - 50, 51, 52, 53, 54, -1, 56, 57, 58, 59, - 60, 61, 62, 63, 64, 65, 66, 67, 68, -1, - 70, 71, 72, 73, 74, -1, 76, -1, 78, 79, - 80, 81, 82, 83, 84, 85, 86, 87, -1, 89, - 90, 91, 92, 93, 94, -1, 96, 97, 98, 99, - 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, - 110, 111, 112, 113, 114, 115, 116, 117, 118, -1, - 120, 121, 122, 123, 124, 125, -1, 127, 128, 129, - 130, 131, -1, -1, 134, 135, 136, 137, 138, -1, - 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, - 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, - 160, -1, 162, 163, 164, 165, -1, 167, -1, 169, - 170, -1, 172, 173, 174, 175, 176, 177, -1, 179, - -1, 181, 182, 183, -1, 185, 186, 187, 188, 189, - 190, 191, 192, 193, 194, 195, 196, -1, 198, 199, - 200, 201, 202, 203, -1, 205, 206, 207, 208, 209, - 210, 211, 212, 213, 214, -1, 216, -1, 218, 219, - 220, 221, 222, 223, 224, 225, 226, 227, 228, -1, - -1, 231, 232, 233, 234, -1, 236, 237, 238, 239, - 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, - 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, - 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, - 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, - 280, 281, 282, 283, -1, 285, 286, -1, -1, 289, - 290, 291, -1, -1, 294, 295, 296, 297, 298, 299, - 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, - -1, 311, 312, 313, 314, 315, 316, 317, 318, 319, - -1, 321, 322, 323, 324, 325, 326, -1, 328, 329, - 330, 331, 332, 333, 334, 335, -1, 337, 338, 339, - 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, - -1, 351, 352, 353, 354, 355, 356, 357, 358, 359, - 360, 361, 362, 363, 364, 365, 366, 367, 368, -1, - 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, - 380, 381, 382, 383, 384, 385, -1, 387, 388, 389, - 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, - 400, 401, 402, -1, 404, 405, -1, 407, 408, 409, - 410, 411, 412, 413, -1, 415, 416, -1, -1, 419, - 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, - 430, 431, 432, -1, -1, 435, 436, 437, 438, 439, - 440, -1, 442, 443, 444, 445, 446, 447, 448, -1, - 450, 451, 452, 453, 454, 455, 456, -1, -1, 459, - -1, -1, 462, 463, 464, 465, 466, 467, 468, 469, - 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, - 480, 481, 482, 483, -1, -1, -1, -1, -1, -1, - 490, 491, -1, -1, -1, -1, -1, 497, -1, 499, - -1, -1, -1, -1, 504, -1, 506, 507, 3, 4, - 5, 6, 7, 8, 9, 10, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 21, 22, 23, 24, - 25, 26, 27, 28, -1, 30, 31, 32, -1, -1, - -1, -1, 37, -1, -1, 40, 41, -1, 43, 44, - 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, - -1, 56, 57, 58, 59, 60, 61, 62, 63, 64, - 65, 66, 67, 68, -1, 70, 71, 72, 73, 74, - -1, 76, -1, 78, 79, 80, 81, 82, 83, 84, - 85, 86, 87, -1, 89, 90, 91, 92, 93, 94, - -1, 96, 97, 98, 99, 100, 101, 102, 103, 104, - 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, - 115, 116, 117, 118, -1, 120, 121, 122, 123, 124, - 125, -1, 127, 128, 129, 130, 131, -1, -1, 134, - 135, 136, 137, 138, -1, 140, 141, 142, -1, 144, - 145, 146, -1, 148, 149, 150, 151, 152, 153, 154, - 155, 156, 157, 158, 159, 160, -1, 162, 163, 164, - 165, -1, 167, -1, 169, 170, -1, 172, 173, 174, - 175, 176, 177, -1, 179, -1, 181, 182, 183, -1, - 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, - 195, 196, -1, 198, 199, 200, 201, 202, 203, -1, - 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, - -1, 216, -1, 218, 219, 220, 221, 222, 223, 224, - 225, 226, 227, 228, -1, -1, 231, 232, 233, 234, - -1, 236, 237, 238, 239, 240, 241, 242, 243, 244, - 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, - 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, - 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, - 275, 276, 277, 278, 279, 280, 281, 282, 283, -1, - 285, 286, -1, -1, 289, 290, 291, -1, -1, 294, - 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, - 305, 306, 307, 308, 309, -1, 311, 312, 313, 314, - 315, 316, 317, 318, 319, -1, 321, 322, 323, 324, - 325, 326, -1, 328, 329, 330, 331, 332, 333, 334, - 335, -1, 337, 338, 339, 340, 341, 342, 343, 344, - 345, 346, 347, 348, 349, -1, 351, 352, 353, 354, - 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, - 365, 366, 367, 368, -1, 370, 371, 372, 373, 374, + 385, 0, 386, 387, 388, 389, 390, 936, 392, 393, + 394, 395, 396, 397, 398, 399, 400, 401, 0, 402, + 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, + 413, 414, 415, 938, 417, 0, 418, 419, 0, 420, + 421, 422, 423, 424, 425, 426, 0, 427, 428, 0, + 0, 429, 430, 941, 432, 942, 0, 434, 435, 944, + 437, 438, 439, 440, 441, 0, 0, 442, 443, 444, + 445, 446, 945, 0, 448, 449, 450, 451, 452, 453, + 454, 0, 455, 456, 457, 458, 459, 460, 461, 0, + 0, 462, 0, 0, 463, 464, 465, 466, 467, 468, + 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, + 479, 480, 481, 482, 483, 785, 0, 583, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 94, 95, 96, 97, 98, 99, 100, + 101, 0, 102, 103, 104, 0, 0, 0, 0, 0, + 0, 0, 105, 106, 0, 107, 108, 109, 786, 111, + 112, 113, 787, 788, 789, 790, 791, 0, 119, 120, + 121, 122, 123, 124, 0, 0, 125, 126, 792, 793, + 129, 0, 130, 131, 132, 133, 794, 0, 795, 0, + 136, 137, 138, 139, 140, 141, 796, 143, 144, 145, + 0, 146, 147, 148, 149, 150, 151, 0, 797, 153, + 154, 155, 798, 799, 800, 801, 0, 0, 802, 161, + 162, 163, 164, 165, 166, 167, 803, 804, 170, 0, + 171, 0, 172, 173, 174, 175, 176, 177, 0, 178, + 179, 180, 181, 182, 0, 0, 183, 184, 185, 186, + 187, 0, 188, 189, 190, 0, 191, 192, 193, 0, + 194, 195, 196, 197, 805, 199, 200, 201, 202, 203, + 806, 1308, 205, 0, 206, 207, 807, 209, 0, 210, + 0, 211, 808, 0, 809, 214, 215, 810, 811, 218, + 0, 219, 0, 812, 813, 222, 0, 223, 224, 225, + 226, 227, 228, 229, 814, 231, 232, 233, 234, 0, + 235, 236, 237, 238, 239, 240, 0, 241, 815, 816, + 244, 245, 246, 247, 248, 817, 818, 0, 819, 0, + 252, 820, 821, 255, 822, 257, 258, 259, 260, 261, + 262, 0, 0, 263, 823, 265, 824, 0, 267, 268, + 269, 0, 0, 270, 271, 272, 273, 274, 825, 276, + 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, + 287, 288, 289, 290, 291, 292, 293, 826, 827, 828, + 297, 298, 299, 829, 0, 301, 302, 830, 304, 0, + 831, 306, 832, 308, 309, 310, 0, 311, 312, 1309, + 0, 313, 314, 315, 0, 0, 316, 833, 834, 319, + 835, 836, 322, 323, 324, 325, 326, 327, 328, 329, + 330, 331, 0, 332, 333, 837, 335, 336, 838, 338, + 339, 340, 0, 341, 342, 343, 344, 345, 346, 0, + 347, 348, 349, 839, 351, 352, 353, 354, 0, 355, + 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, + 366, 367, 0, 368, 369, 840, 371, 372, 373, 841, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, - 385, -1, 387, 388, 389, 390, 391, 392, 393, 394, - 395, 396, 397, 398, 399, 400, 401, 402, -1, 404, - 405, -1, 407, 408, 409, 410, 411, 412, 413, -1, - 415, 416, -1, -1, 419, 420, 421, 422, 423, 424, - 425, 426, 427, 428, 429, 430, 431, 432, -1, -1, - 435, 436, 437, 438, 439, 440, -1, 442, 443, 444, - 445, 446, 447, 448, -1, 450, 451, 452, 453, 454, - 455, 456, -1, -1, 459, -1, -1, 462, 463, 464, - 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, - 475, 476, 477, 478, 479, 480, 481, 482, 483, -1, - -1, -1, -1, -1, -1, 490, 491, -1, -1, -1, - -1, -1, 497, -1, 499, 500, -1, -1, -1, 504, - -1, 506, 507, 3, 4, 5, 6, 7, 8, 9, - 10, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 21, 22, 23, 24, 25, 26, 27, 28, -1, - 30, 31, 32, -1, -1, -1, -1, 37, -1, -1, - 40, 41, -1, 43, 44, 45, 46, 47, 48, 49, - 50, 51, 52, 53, 54, -1, 56, 57, 58, 59, - 60, 61, 62, 63, 64, 65, 66, 67, 68, -1, - 70, 71, 72, 73, 74, -1, 76, -1, 78, 79, - 80, 81, 82, 83, 84, 85, 86, 87, -1, 89, - 90, 91, 92, 93, 94, -1, 96, 97, 98, 99, - 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, - 110, 111, 112, 113, 114, 115, 116, 117, 118, -1, - 120, 121, 122, 123, 124, 125, -1, 127, 128, 129, - 130, 131, -1, -1, 134, 135, 136, 137, 138, -1, - 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, - 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, - 160, -1, 162, 163, 164, 165, -1, 167, -1, 169, - 170, -1, 172, 173, 174, 175, 176, 177, -1, 179, - -1, 181, 182, 183, -1, 185, 186, 187, 188, 189, - 190, 191, 192, 193, 194, 195, 196, -1, 198, 199, - 200, 201, 202, 203, -1, 205, 206, 207, 208, 209, - 210, 211, 212, 213, 214, -1, 216, -1, 218, 219, - 220, 221, 222, 223, 224, 225, 226, 227, 228, -1, - -1, 231, 232, 233, 234, -1, 236, 237, 238, 239, - 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, - 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, - 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, - 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, - 280, 281, 282, 283, -1, 285, 286, -1, -1, 289, - 290, 291, -1, -1, 294, 295, 296, 297, 298, 299, - 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, - -1, 311, 312, 313, 314, 315, 316, 317, 318, 319, - -1, 321, 322, 323, 324, 325, 326, -1, 328, 329, - 330, 331, 332, 333, 334, 335, -1, 337, 338, 339, - 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, - -1, 351, 352, 353, 354, 355, 356, 357, 358, 359, - 360, 361, 362, 363, 364, 365, 366, 367, 368, -1, - 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, - 380, 381, 382, 383, 384, 385, -1, 387, 388, 389, - 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, - 400, 401, 402, -1, 404, 405, -1, 407, 408, 409, - 410, 411, 412, 413, -1, 415, 416, -1, -1, 419, - 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, - 430, 431, 432, -1, -1, 435, 436, 437, 438, 439, - 440, -1, 442, 443, 444, 445, 446, 447, 448, 449, - 450, 451, 452, 453, 454, 455, 456, -1, -1, 459, - -1, -1, 462, 463, 464, 465, 466, 467, 468, 469, - 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, - 480, 481, 482, 483, -1, -1, -1, -1, -1, -1, - 490, 491, -1, -1, -1, -1, -1, 497, -1, 499, - -1, -1, -1, -1, 504, -1, 506, 507, 3, 4, - 5, 6, 7, 8, 9, 10, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 21, 22, 23, 24, - 25, 26, 27, 28, -1, 30, 31, 32, -1, -1, - -1, -1, 37, -1, -1, 40, 41, -1, 43, 44, - 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, - -1, 56, 57, 58, 59, 60, 61, 62, 63, 64, - 65, 66, 67, 68, -1, 70, 71, 72, 73, 74, - -1, 76, -1, 78, 79, 80, 81, 82, 83, 84, - 85, 86, 87, -1, 89, 90, 91, 92, 93, 94, - -1, 96, 97, 98, 99, 100, 101, 102, 103, 104, - 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, - 115, 116, 117, 118, -1, 120, 121, 122, 123, 124, - 125, -1, 127, 128, 129, 130, 131, -1, -1, 134, - 135, 136, 137, 138, -1, 140, 141, 142, -1, 144, - 145, 146, -1, 148, 149, 150, 151, 152, 153, 154, - 155, 156, 157, 158, 159, 160, -1, 162, 163, 164, - 165, -1, 167, -1, 169, 170, -1, 172, 173, 174, - 175, 176, 177, -1, 179, -1, 181, 182, 183, -1, - 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, - 195, 196, -1, 198, 199, 200, 201, 202, 203, -1, - 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, - -1, 216, -1, 218, 219, 220, 221, 222, 223, 224, - 225, 226, 227, 228, -1, -1, 231, 232, 233, 234, - -1, 236, 237, 238, 239, 240, 241, 242, 243, 244, - 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, - 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, - 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, - 275, 276, 277, 278, 279, 280, 281, 282, 283, -1, - 285, 286, -1, -1, 289, 290, 291, -1, -1, 294, - 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, - 305, 306, 307, 308, 309, -1, 311, 312, 313, 314, - 315, 316, 317, 318, 319, -1, 321, 322, 323, 324, - 325, 326, -1, 328, 329, 330, 331, 332, 333, 334, - 335, -1, 337, 338, 339, 340, 341, 342, 343, 344, - 345, 346, 347, 348, 349, -1, 351, 352, 353, 354, - 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, - 365, 366, 367, 368, -1, 370, 371, 372, 373, 374, + 385, 0, 386, 387, 388, 389, 390, 842, 392, 843, + 394, 395, 396, 844, 398, 399, 845, 401, 0, 402, + 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, + 413, 846, 415, 847, 417, 0, 418, 419, 0, 420, + 848, 422, 423, 424, 425, 426, 0, 849, 850, 0, + 0, 429, 430, 851, 432, 852, 1310, 434, 435, 853, + 437, 438, 439, 440, 441, 0, 0, 442, 443, 444, + 445, 446, 854, 0, 448, 449, 450, 451, 452, 1202, + 856, 0, 455, 857, 457, 458, 459, 460, 461, 0, + 0, 462, 0, 0, 463, 464, 465, 466, 467, 468, + 858, 859, 860, 861, 862, 863, 864, 865, 866, 867, + 868, 480, 481, 482, 483, 785, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 94, 95, 96, 97, 98, 99, 100, + 101, 0, 102, 103, 104, 3, 4, 0, 0, 0, + 0, 0, 105, 106, 0, 107, 108, 109, 786, 111, + 112, 113, 787, 788, 789, 790, 791, 0, 119, 120, + 121, 122, 123, 124, 0, 0, 125, 126, 792, 793, + 129, 0, 130, 131, 132, 133, 794, 0, 795, 0, + 136, 137, 138, 139, 140, 141, 796, 143, 144, 145, + 0, 146, 147, 148, 149, 150, 151, 0, 797, 153, + 154, 155, 798, 799, 800, 801, 0, 0, 802, 161, + 162, 163, 164, 165, 166, 167, 803, 804, 170, 0, + 171, 0, 172, 173, 174, 175, 176, 177, 0, 178, + 179, 180, 181, 182, 0, 0, 183, 184, 185, 186, + 187, 0, 188, 189, 190, 0, 191, 192, 193, 0, + 194, 195, 196, 197, 805, 199, 200, 201, 202, 203, + 806, 0, 205, 0, 206, 207, 807, 209, 0, 210, + 0, 211, 808, 0, 809, 214, 215, 810, 811, 218, + 0, 219, 0, 812, 813, 222, 0, 223, 224, 225, + 226, 227, 228, 229, 814, 231, 232, 233, 234, 0, + 235, 236, 237, 238, 239, 240, 0, 241, 815, 816, + 244, 245, 246, 247, 248, 817, 818, 0, 819, 0, + 252, 820, 821, 255, 822, 257, 258, 259, 260, 261, + 262, 0, 0, 263, 823, 265, 824, 0, 267, 268, + 269, 0, 0, 270, 271, 272, 273, 274, 825, 276, + 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, + 287, 288, 289, 290, 291, 292, 293, 826, 827, 828, + 297, 298, 299, 829, 0, 301, 302, 830, 304, 0, + 831, 306, 832, 308, 309, 310, 0, 311, 312, 0, + 0, 313, 314, 315, 0, 0, 316, 833, 834, 319, + 835, 836, 322, 323, 324, 325, 326, 327, 328, 329, + 330, 331, 0, 332, 333, 837, 335, 336, 838, 338, + 339, 340, 0, 341, 342, 343, 344, 345, 346, 0, + 347, 348, 349, 839, 351, 352, 353, 354, 0, 355, + 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, + 366, 367, 0, 368, 369, 840, 371, 372, 373, 841, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, - 385, -1, 387, 388, 389, 390, 391, 392, 393, 394, - 395, 396, 397, 398, 399, 400, 401, 402, -1, 404, - 405, -1, 407, 408, 409, 410, 411, 412, 413, -1, - 415, 416, -1, -1, 419, 420, 421, 422, 423, 424, - 425, 426, 427, 428, 429, 430, 431, 432, -1, -1, - 435, 436, 437, 438, 439, 440, -1, 442, 443, 444, - 445, 446, 447, 448, -1, 450, 451, 452, 453, 454, - 455, 456, -1, -1, 459, -1, -1, 462, 463, 464, - 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, - 475, 476, 477, 478, 479, 480, 481, 482, 483, -1, - -1, -1, -1, -1, -1, 490, 491, -1, -1, -1, - -1, -1, 497, -1, 499, 500, -1, -1, -1, 504, - -1, 506, 507, 3, 4, 5, 6, 7, 8, 9, - 10, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 21, 22, 23, 24, 25, 26, 27, 28, -1, - 30, 31, 32, -1, -1, -1, -1, 37, -1, -1, - 40, 41, -1, 43, 44, 45, 46, 47, 48, 49, - 50, 51, 52, 53, 54, -1, 56, 57, 58, 59, - 60, 61, 62, 63, 64, 65, 66, 67, 68, -1, - 70, 71, 72, 73, 74, -1, 76, -1, 78, 79, - 80, 81, 82, 83, 84, 85, 86, 87, -1, 89, - 90, 91, 92, 93, 94, -1, 96, 97, 98, 99, - 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, - 110, 111, 112, 113, 114, 115, 116, 117, 118, -1, - 120, 121, 122, 123, 124, 125, -1, 127, 128, 129, - 130, 131, -1, -1, 134, 135, 136, 137, 138, -1, - 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, - 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, - 160, -1, 162, 163, 164, 165, -1, 167, -1, 169, - 170, 171, 172, 173, 174, 175, 176, 177, -1, 179, - -1, 181, 182, 183, -1, 185, 186, 187, 188, 189, - 190, 191, 192, 193, 194, 195, 196, -1, 198, 199, - 200, 201, 202, 203, -1, 205, 206, 207, 208, 209, - 210, 211, 212, 213, 214, -1, 216, -1, 218, 219, - 220, 221, 222, 223, 224, 225, 226, 227, 228, -1, - -1, 231, 232, 233, 234, -1, 236, 237, 238, 239, - 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, - 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, - 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, - 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, - 280, 281, 282, 283, -1, 285, 286, -1, -1, 289, - 290, 291, -1, -1, 294, 295, 296, 297, 298, 299, - 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, - -1, 311, 312, 313, 314, 315, 316, 317, 318, 319, - -1, 321, 322, 323, 324, 325, 326, -1, 328, 329, - 330, 331, 332, 333, 334, 335, -1, 337, 338, 339, - 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, - -1, 351, 352, 353, 354, 355, 356, 357, 358, 359, - 360, 361, 362, 363, 364, 365, 366, 367, 368, -1, - 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, - 380, 381, 382, 383, 384, 385, -1, 387, 388, 389, - 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, - 400, 401, 402, -1, 404, 405, -1, 407, 408, 409, - 410, 411, 412, 413, -1, 415, 416, -1, -1, 419, - 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, - 430, 431, 432, -1, -1, 435, 436, 437, 438, 439, - 440, -1, 442, 443, 444, 445, 446, 447, 448, -1, - 450, 451, 452, 453, 454, 455, 456, -1, -1, 459, - -1, -1, 462, 463, 464, 465, 466, 467, 468, 469, - 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, - 480, 481, 482, 483, -1, -1, -1, -1, -1, -1, - 490, 491, -1, -1, -1, -1, -1, 497, -1, 499, - -1, -1, -1, -1, 504, -1, 506, 507, 3, 4, - 5, 6, 7, 8, 9, 10, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 21, 22, 23, 24, - 25, 26, 27, 28, -1, 30, 31, 32, -1, -1, - -1, -1, 37, -1, -1, 40, 41, -1, 43, 44, - 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, - -1, 56, 57, 58, 59, 60, 61, 62, 63, 64, - 65, 66, 67, 68, -1, 70, 71, 72, 73, 74, - -1, 76, -1, 78, 79, 80, 81, 82, 83, 84, - 85, 86, 87, -1, 89, 90, 91, 92, 93, 94, - -1, 96, 97, 98, 99, 100, 101, 102, 103, 104, - 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, - 115, 116, 117, 118, -1, 120, 121, 122, 123, 124, - 125, -1, 127, 128, 129, 130, 131, -1, -1, 134, - 135, 136, 137, 138, -1, 140, 141, 142, -1, 144, - 145, 146, -1, 148, 149, 150, 151, 152, 153, 154, - 155, 156, 157, 158, 159, 160, -1, 162, 163, 164, - 165, -1, 167, -1, 169, 170, -1, 172, 173, 174, - 175, 176, 177, -1, 179, -1, 181, 182, 183, -1, - 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, - 195, 196, -1, 198, 199, 200, 201, 202, 203, -1, - 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, - -1, 216, -1, 218, 219, 220, 221, 222, 223, 224, - 225, 226, 227, 228, -1, -1, 231, 232, 233, 234, - -1, 236, 237, 238, 239, 240, 241, 242, 243, 244, - 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, - 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, - 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, - 275, 276, 277, 278, 279, 280, 281, 282, 283, -1, - 285, 286, -1, -1, 289, 290, 291, -1, -1, 294, - 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, - 305, 306, 307, 308, 309, -1, 311, 312, 313, 314, - 315, 316, 317, 318, 319, -1, 321, 322, 323, 324, - 325, 326, -1, 328, 329, 330, 331, 332, 333, 334, - 335, -1, 337, 338, 339, 340, 341, 342, 343, 344, - 345, 346, 347, 348, 349, -1, 351, 352, 353, 354, - 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, - 365, 366, 367, 368, -1, 370, 371, 372, 373, 374, + 385, 0, 386, 387, 388, 389, 390, 842, 392, 843, + 394, 395, 396, 844, 398, 399, 845, 401, 0, 402, + 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, + 413, 846, 415, 847, 417, 0, 418, 419, 0, 420, + 848, 422, 423, 424, 425, 426, 0, 849, 850, 0, + 0, 429, 430, 851, 432, 852, 0, 434, 435, 853, + 437, 438, 439, 440, 441, 0, 0, 442, 443, 444, + 445, 446, 854, 0, 448, 449, 450, 451, 452, 1202, + 856, 0, 455, 857, 457, 458, 459, 460, 461, 0, + 0, 462, 0, 0, 463, 464, 465, 466, 467, 468, + 858, 859, 860, 861, 862, 863, 864, 865, 866, 867, + 868, 480, 481, 482, 483, 93, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 94, 95, 96, 97, 98, 99, 100, + 101, 0, 102, 103, 104, 0, 0, 0, 0, 0, + 0, 0, 105, 106, 0, 107, 108, 109, 110, 111, + 112, 113, 114, 115, 116, 117, 118, 0, 119, 120, + 121, 122, 123, 124, 0, 0, 125, 126, 127, 128, + 129, 0, 130, 131, 132, 133, 134, 0, 135, 0, + 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, + 0, 146, 147, 148, 149, 150, 151, 0, 152, 153, + 154, 155, 156, 157, 158, 159, 0, 0, 160, 161, + 162, 163, 164, 165, 166, 167, 168, 169, 170, 0, + 171, 0, 172, 173, 174, 175, 176, 177, 0, 178, + 179, 180, 181, 182, 0, 0, 183, 184, 185, 186, + 187, 0, 188, 189, 190, 0, 191, 192, 193, 0, + 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, + 204, 0, 205, 0, 206, 207, 208, 209, 0, 210, + 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, + 0, 219, 0, 220, 221, 222, 0, 223, 224, 225, + 226, 227, 228, 229, 230, 231, 232, 233, 234, 0, + 235, 236, 237, 238, 239, 240, 0, 241, 242, 243, + 244, 245, 246, 247, 248, 249, 250, 0, 251, 0, + 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, + 262, 0, 0, 263, 264, 265, 266, 0, 267, 268, + 269, 0, 0, 270, 271, 272, 273, 274, 275, 276, + 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, + 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, + 297, 298, 299, 300, 0, 301, 302, 303, 304, 0, + 305, 306, 307, 308, 309, 310, 0, 311, 312, 0, + 0, 313, 314, 315, 0, 0, 316, 317, 318, 319, + 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, + 330, 331, 0, 332, 333, 334, 335, 336, 337, 338, + 339, 340, 0, 341, 342, 343, 344, 345, 346, 0, + 347, 348, 349, 350, 351, 352, 353, 354, 0, 355, + 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, + 366, 367, 0, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, - 385, -1, 387, 388, 389, 390, 391, 392, 393, 394, - 395, 396, 397, 398, 399, 400, 401, 402, -1, 404, - 405, 406, 407, 408, 409, 410, 411, 412, 413, -1, - 415, 416, -1, -1, 419, 420, 421, 422, 423, 424, - 425, 426, 427, 428, 429, 430, 431, 432, -1, -1, - 435, 436, 437, 438, 439, 440, -1, 442, 443, 444, - 445, 446, 447, 448, -1, 450, 451, 452, 453, 454, - 455, 456, -1, -1, 459, -1, -1, 462, 463, 464, - 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, - 475, 476, 477, 478, 479, 480, 481, 482, 483, -1, - -1, -1, -1, -1, -1, 490, 491, -1, -1, -1, - -1, -1, 497, -1, 499, -1, -1, -1, -1, 504, - -1, 506, 507, 3, 4, 5, 6, 7, 8, 9, - 10, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 21, 22, 23, 24, 25, 26, 27, 28, -1, - 30, 31, 32, -1, -1, -1, -1, 37, -1, -1, - 40, 41, -1, 43, 44, 45, 46, 47, 48, 49, - 50, 51, 52, 53, 54, -1, 56, 57, 58, 59, - 60, 61, 62, 63, 64, 65, 66, 67, 68, -1, - 70, 71, 72, 73, 74, -1, 76, -1, 78, 79, - 80, 81, 82, 83, 84, 85, 86, 87, -1, 89, - 90, 91, 92, 93, 94, -1, 96, 97, 98, 99, - 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, - 110, 111, 112, 113, 114, 115, 116, 117, 118, -1, - 120, 121, 122, 123, 124, 125, -1, 127, 128, 129, - 130, 131, -1, -1, 134, 135, 136, 137, 138, -1, - 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, - 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, - 160, -1, 162, 163, 164, 165, -1, 167, -1, 169, - 170, -1, 172, 173, 174, 175, 176, 177, -1, 179, - -1, 181, 182, 183, -1, 185, 186, 187, 188, 189, - 190, 191, 192, 193, 194, 195, 196, -1, 198, 199, - 200, 201, 202, 203, -1, 205, 206, 207, 208, 209, - 210, 211, 212, 213, 214, -1, 216, -1, 218, 219, - 220, 221, 222, 223, 224, 225, 226, 227, 228, -1, - -1, 231, 232, 233, 234, -1, 236, 237, 238, 239, - 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, - 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, - 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, - 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, - 280, 281, 282, 283, -1, 285, 286, -1, -1, 289, - 290, 291, -1, -1, 294, 295, 296, 297, 298, 299, - 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, - -1, 311, 312, 313, 314, 315, 316, 317, 318, 319, - -1, 321, 322, 323, 324, 325, 326, -1, 328, 329, - 330, 331, 332, 333, 334, 335, -1, 337, 338, 339, - 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, - -1, 351, 352, 353, 354, 355, 356, 357, 358, 359, - 360, 361, 362, 363, 364, 365, 366, 367, 368, -1, - 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, - 380, 381, 382, 383, 384, 385, -1, 387, 388, 389, - 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, - 400, 401, 402, -1, 404, 405, -1, 407, 408, 409, - 410, 411, 412, 413, -1, 415, 416, -1, -1, 419, - 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, - 430, 431, 432, -1, -1, 435, 436, 437, 438, 439, - 440, -1, 442, 443, 444, 445, 446, 447, 448, -1, - 450, 451, 452, 453, 454, 455, 456, -1, 458, 459, - -1, -1, 462, 463, 464, 465, 466, 467, 468, 469, - 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, - 480, 481, 482, 483, -1, -1, -1, -1, -1, -1, - 490, 491, -1, -1, -1, -1, -1, 497, -1, 499, - -1, -1, -1, -1, 504, -1, 506, 507, 3, 4, - 5, 6, 7, 8, 9, 10, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 21, 22, 23, 24, - 25, 26, 27, 28, -1, 30, 31, 32, -1, -1, - -1, -1, 37, -1, -1, 40, 41, -1, 43, 44, - 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, - -1, 56, 57, 58, 59, 60, 61, 62, 63, 64, - 65, 66, 67, 68, -1, 70, 71, 72, 73, 74, - -1, 76, -1, 78, 79, 80, 81, 82, 83, 84, - 85, 86, 87, -1, 89, 90, 91, 92, 93, 94, - -1, 96, 97, 98, 99, 100, 101, 102, 103, 104, - 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, - 115, 116, 117, 118, -1, 120, 121, 122, 123, 124, - 125, -1, 127, 128, 129, 130, 131, -1, -1, 134, - 135, 136, 137, 138, -1, 140, 141, 142, -1, 144, - 145, 146, -1, 148, 149, 150, 151, 152, 153, 154, - 155, 156, 157, 158, 159, 160, -1, 162, 163, 164, - 165, -1, 167, -1, 169, 170, -1, 172, 173, 174, - 175, 176, 177, -1, 179, -1, 181, 182, 183, -1, - 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, - 195, 196, -1, 198, 199, 200, 201, 202, 203, -1, - 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, - -1, 216, -1, 218, 219, 220, 221, 222, 223, 224, - 225, 226, 227, 228, -1, -1, 231, 232, 233, 234, - -1, 236, 237, 238, 239, 240, 241, 242, 243, 244, - 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, - 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, - 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, - 275, 276, 277, 278, 279, 280, 281, 282, 283, -1, - 285, 286, -1, -1, 289, 290, 291, -1, -1, 294, - 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, - 305, 306, 307, 308, 309, -1, 311, 312, 313, 314, - 315, 316, 317, 318, 319, -1, 321, 322, 323, 324, - 325, 326, -1, 328, 329, 330, 331, 332, 333, 334, - 335, -1, 337, 338, 339, 340, 341, 342, 343, 344, - 345, 346, 347, 348, 349, -1, 351, 352, 353, 354, - 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, - 365, 366, 367, 368, -1, 370, 371, 372, 373, 374, + 385, 0, 386, 387, 388, 389, 390, 391, 392, 393, + 394, 395, 396, 397, 398, 399, 400, 401, 0, 402, + 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, + 413, 414, 415, 416, 417, 0, 418, 419, 0, 420, + 421, 422, 423, 424, 425, 426, 0, 427, 428, 0, + 0, 429, 430, 431, 432, 433, 0, 434, 435, 436, + 437, 438, 439, 440, 441, 0, 0, 442, 443, 444, + 445, 446, 447, 0, 448, 449, 450, 451, 452, 453, + 454, 0, 455, 456, 457, 458, 459, 460, 461, 0, + 0, 462, 0, 0, 463, 464, 465, 466, 467, 468, + 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, + 479, 480, 481, 482, 483, 507, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 94, 95, 96, 97, 98, 99, 100, + 101, 0, 102, 103, 104, 0, 0, 0, 0, 0, + 0, 0, 105, 106, 0, 107, 108, 109, 0, 111, + 112, 113, 114, 115, 0, 117, 118, 0, 119, 120, + 121, 122, 123, 124, 0, 0, 125, 126, 127, 128, + 129, 1507, 130, 131, 132, 133, 134, 0, 0, 1508, + 136, 137, 138, 139, 140, 141, 0, 143, 144, 145, + 1509, 146, 147, 148, 149, 150, 151, 0, 0, 153, + 154, 155, 0, 0, 0, 0, 0, 0, 0, 161, + 162, 163, 164, 165, 166, 167, 168, 169, 170, 0, + 171, 0, 172, 173, 174, 175, 176, 177, 0, 178, + 179, 180, 181, 182, 0, 0, 183, 184, 185, 186, + 187, 0, 188, 189, 190, 0, 191, 192, 193, 0, + 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, + 204, 0, 205, 0, 206, 207, 208, 209, 0, 210, + 1510, 211, 0, 0, 0, 214, 215, 510, 0, 218, + 0, 219, 0, 220, 221, 222, 0, 223, 224, 225, + 226, 227, 1511, 229, 0, 231, 232, 233, 234, 0, + 235, 236, 237, 238, 239, 240, 0, 241, 0, 243, + 244, 245, 246, 247, 248, 249, 250, 0, 251, 0, + 252, 0, 0, 255, 0, 257, 258, 259, 260, 261, + 262, 0, 0, 263, 0, 265, 0, 0, 267, 268, + 269, 0, 0, 270, 271, 272, 273, 274, 511, 276, + 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, + 287, 288, 289, 290, 291, 292, 293, 294, 0, 296, + 297, 298, 299, 300, 0, 301, 302, 0, 304, 0, + 305, 306, 307, 308, 309, 310, 0, 311, 312, 0, + 0, 313, 314, 315, 0, 0, 316, 317, 0, 319, + 0, 321, 322, 323, 324, 325, 326, 327, 328, 329, + 330, 331, 0, 332, 333, 334, 335, 336, 337, 338, + 339, 340, 1512, 341, 342, 343, 344, 345, 346, 0, + 347, 348, 349, 350, 351, 352, 353, 354, 0, 355, + 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, + 366, 367, 0, 368, 369, 0, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, - 385, -1, 387, 388, 389, 390, 391, 392, 393, 394, - 395, 396, 397, 398, 399, 400, 401, 402, -1, 404, - 405, -1, 407, 408, 409, 410, 411, 412, 413, -1, - 415, 416, -1, -1, 419, 420, 421, 422, 423, 424, - 425, 426, 427, 428, 429, 430, 431, 432, -1, -1, - 435, 436, 437, 438, 439, 440, -1, 442, 443, 444, - 445, 446, 447, 448, -1, 450, 451, 452, 453, 454, - 455, 456, -1, -1, 459, -1, -1, 462, 463, 464, - 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, - 475, 476, 477, 478, 479, 480, 481, 482, 483, -1, - -1, -1, -1, -1, -1, 490, 491, -1, -1, -1, - -1, -1, 497, -1, 499, -1, -1, -1, -1, 504, - -1, 506, 507, 3, 4, 5, 6, 7, 8, 9, - 10, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 21, 22, 23, 24, 25, 26, 27, 28, -1, - 30, 31, 32, -1, -1, -1, -1, 37, -1, -1, - 40, 41, -1, 43, 44, 45, 46, 47, 48, 49, - 50, 51, 52, 53, 54, -1, 56, 57, 58, 59, - 60, 61, 62, 63, 64, 65, 66, 67, 68, -1, - 70, 71, 72, 73, 74, -1, 76, -1, 78, 79, - 80, 81, 82, 83, 84, 85, 86, 87, -1, 89, - 90, 91, 92, 93, 94, -1, 96, 97, 98, 99, - 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, - 110, 111, 112, 113, 114, 115, 116, 117, 118, -1, - 120, 121, 122, 123, 124, 125, -1, 127, 128, 129, - 130, 131, -1, -1, 134, 135, 136, 137, 138, -1, - 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, - 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, - 160, -1, 162, 163, 164, 165, -1, 167, -1, 169, - 170, -1, 172, 173, 174, 175, 176, 177, -1, 179, - -1, 181, 182, 183, -1, 185, 186, 187, 188, 189, - 190, 191, 192, 193, 194, 195, 196, -1, 198, 199, - 200, 201, 202, 203, -1, 205, 206, 207, 208, 209, - 210, 211, 212, 213, 214, -1, 216, -1, 218, 219, - 220, 221, 222, 223, 224, 225, 226, 227, 228, -1, - -1, 231, 232, 233, 234, -1, 236, 237, 238, 239, - 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, - 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, - 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, - 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, - 280, 281, 282, 283, -1, 285, 286, -1, -1, 289, - 290, 291, -1, -1, 294, 295, 296, 297, 298, 299, - 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, - -1, 311, 312, 313, 314, 315, 316, 317, 318, 319, - -1, 321, 322, 323, 324, 325, 326, -1, 328, 329, - 330, 331, 332, 333, 334, 335, -1, 337, 338, 339, - 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, - -1, 351, 352, 353, 354, 355, 356, 357, 358, 359, - 360, 361, 362, 363, 364, 365, 366, 367, 368, -1, - 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, - 380, 381, 382, 383, 384, 385, -1, 387, 388, 389, - 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, - 400, 401, 402, -1, 404, 405, -1, 407, 408, 409, - 410, 411, 412, 413, -1, 415, 416, -1, -1, 419, - 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, - 430, 431, 432, -1, -1, 435, 436, 437, 438, 439, - 440, -1, 442, 443, 444, 445, 446, 447, 448, -1, - 450, 451, 452, 453, 454, 455, 456, -1, -1, 459, - -1, -1, 462, 463, 464, 465, 466, 467, 468, 469, - 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, - 480, 481, 482, 483, -1, -1, -1, -1, -1, -1, - 490, 491, -1, -1, -1, -1, -1, 497, -1, 499, - -1, -1, -1, -1, 504, -1, 506, 507, 3, 4, - 5, 6, 7, 8, 9, 10, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 21, 22, 23, 24, - 25, 26, 27, 28, -1, 30, 31, 32, -1, -1, - -1, -1, 37, -1, -1, 40, 41, -1, 43, 44, - 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, - -1, 56, 57, 58, 59, 60, 61, 62, 63, 64, - 65, 66, 67, 68, -1, 70, 71, 72, 73, 74, - -1, 76, -1, 78, 79, 80, 81, 82, 83, 84, - 85, 86, 87, -1, 89, 90, 91, 92, 93, 94, - -1, 96, 97, 98, 99, 100, 101, 102, 103, 104, - 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, - 115, 116, 117, 118, -1, 120, 121, 122, 123, 124, - 125, -1, 127, 128, 129, 130, 131, -1, -1, 134, - 135, 136, 137, 138, -1, 140, 141, 142, -1, 144, - 145, 146, -1, 148, 149, 150, 151, 152, 153, 154, - 155, 156, 157, 158, 159, 160, -1, 162, 163, 164, - 165, -1, 167, -1, 169, 170, -1, 172, 173, 174, - 175, 176, 177, -1, 179, -1, 181, 182, 183, -1, - 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, - 195, 196, -1, 198, 199, 200, 201, 202, 203, -1, - 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, - -1, 216, -1, 218, 219, 220, 221, 222, 223, 224, - 225, 226, 227, 228, -1, -1, 231, 232, 233, 234, - -1, 236, 237, 238, 239, 240, 241, 242, 243, 244, - 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, - 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, - 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, - 275, 276, 277, 278, 279, 280, 281, 282, 283, -1, - 285, 286, -1, -1, 289, 290, 291, -1, -1, 294, - 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, - 305, 306, 307, 308, 309, -1, 311, 312, 313, 314, - 315, 316, 317, 318, 319, -1, 321, 322, 323, 324, - 325, 326, -1, 328, 329, 330, 331, 332, 333, 334, - 335, -1, 337, 338, 339, 340, 341, 342, 343, 344, - 345, 346, 347, 348, 349, -1, 351, 352, 353, 354, - 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, - 365, 366, 367, 368, -1, 370, 371, 372, 373, 374, + 385, 0, 386, 387, 388, 389, 390, 0, 392, 393, + 394, 395, 396, 0, 398, 399, 400, 401, 0, 402, + 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, + 413, 513, 415, 416, 417, 0, 418, 419, 0, 420, + 0, 422, 423, 424, 425, 426, 0, 427, 428, 0, + 0, 429, 430, 431, 432, 433, 0, 434, 435, 436, + 437, 438, 439, 440, 441, 0, 1513, 442, 443, 444, + 445, 446, 0, 0, 448, 449, 450, 451, 452, 453, + 454, 0, 455, 0, 457, 458, 459, 460, 461, 0, + 0, 462, 0, 0, 463, 464, 465, 466, 467, 468, + 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, + 479, 480, 481, 482, 483, 507, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 94, 95, 96, 97, 98, 99, 100, + 101, 0, 102, 103, 104, 0, 0, 0, 0, 0, + 0, 0, 105, 106, 0, 107, 108, 109, 0, 111, + 112, 113, 114, 115, 0, 117, 118, 0, 119, 120, + 121, 122, 123, 124, 0, 0, 125, 126, 127, 128, + 129, 1507, 130, 131, 132, 133, 134, 0, 0, 0, + 136, 137, 138, 139, 140, 141, 0, 143, 144, 145, + 1509, 146, 147, 148, 149, 150, 151, 0, 0, 153, + 154, 155, 0, 0, 0, 0, 0, 0, 0, 161, + 162, 163, 164, 165, 166, 167, 168, 169, 170, 0, + 171, 0, 172, 173, 174, 175, 176, 177, 0, 178, + 179, 180, 181, 182, 0, 0, 183, 184, 185, 186, + 187, 0, 188, 189, 190, 0, 191, 192, 193, 0, + 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, + 204, 0, 205, 0, 206, 207, 208, 209, 0, 210, + 1510, 211, 0, 0, 0, 214, 215, 510, 0, 218, + 0, 219, 0, 220, 221, 222, 0, 223, 224, 225, + 226, 227, 228, 229, 0, 231, 232, 233, 234, 0, + 235, 236, 237, 238, 239, 240, 0, 241, 0, 243, + 244, 245, 246, 247, 248, 249, 250, 0, 251, 0, + 252, 0, 0, 255, 0, 257, 258, 259, 260, 261, + 262, 0, 0, 263, 0, 265, 1973, 0, 267, 268, + 269, 0, 0, 270, 271, 272, 273, 274, 511, 276, + 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, + 287, 288, 289, 290, 291, 292, 293, 294, 0, 296, + 297, 298, 299, 300, 0, 301, 302, 0, 304, 0, + 305, 306, 307, 308, 309, 310, 0, 311, 312, 0, + 0, 313, 314, 315, 0, 0, 316, 317, 0, 319, + 0, 321, 322, 323, 324, 325, 326, 327, 328, 329, + 330, 331, 0, 332, 333, 334, 335, 336, 337, 338, + 339, 340, 1512, 341, 342, 343, 344, 345, 346, 0, + 347, 348, 349, 350, 351, 352, 353, 354, 0, 355, + 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, + 366, 367, 0, 368, 369, 0, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, - 385, -1, 387, 388, 389, 390, 391, 392, 393, 394, - 395, 396, 397, 398, 399, 400, 401, 402, -1, 404, - 405, -1, 407, 408, 409, 410, 411, 412, 413, -1, - 415, 416, -1, -1, 419, 420, 421, 422, 423, 424, - 425, 426, 427, 428, 429, 430, 431, 432, -1, -1, - 435, 436, 437, 438, 439, 440, -1, 442, 443, 444, - 445, 446, 447, 448, -1, 450, 451, 452, 453, 454, - 455, 456, -1, -1, 459, -1, -1, 462, 463, 464, - 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, - 475, 476, 477, 478, 479, 480, 481, 482, 483, -1, - -1, -1, -1, -1, -1, 490, 491, -1, -1, -1, - -1, -1, 497, -1, 499, -1, -1, -1, -1, 504, - -1, 506, 507, 3, 4, 5, 6, 7, 8, 9, - 10, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 21, 22, 23, 24, 25, 26, 27, 28, -1, - 30, 31, 32, -1, -1, -1, -1, 37, -1, -1, - 40, 41, -1, 43, 44, 45, 46, 47, 48, 49, - 50, 51, 52, 53, 54, -1, 56, 57, 58, 59, - 60, 61, 62, 63, 64, 65, 66, 67, 68, -1, - 70, 71, 72, 73, 74, -1, 76, -1, 78, 79, - 80, 81, 82, 83, 84, 85, 86, 87, -1, 89, - 90, 91, 92, 93, 94, -1, 96, 97, 98, 99, - 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, - 110, 111, 112, 113, 114, 115, 116, 117, 118, -1, - 120, 121, 122, 123, 124, 125, -1, 127, 128, 129, - 130, 131, -1, -1, 134, 135, 136, 137, 138, -1, - 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, - 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, - 160, -1, 162, 163, 164, 165, -1, 167, -1, 169, - 170, -1, 172, 173, 174, 175, 176, 177, -1, 179, - -1, 181, 182, 183, -1, 185, 186, 187, 188, 189, - 190, 191, 192, 193, 194, 195, 196, -1, 198, 199, - 200, 201, 202, 203, -1, 205, 206, 207, 208, 209, - 210, 211, 212, 213, 214, -1, 216, -1, 218, 219, - 220, 221, 222, 223, 224, 225, 226, 227, 228, -1, - -1, 231, 232, 233, 234, -1, 236, 237, 238, 239, - 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, - 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, - 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, - 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, - 280, 281, 282, 283, -1, 285, 286, -1, -1, 289, - 290, 291, -1, -1, 294, 295, 296, 297, 298, 299, - 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, - -1, 311, 312, 313, 314, 315, 316, 317, 318, 319, - -1, 321, 322, 323, 324, 325, 326, -1, 328, 329, - 330, 331, 332, 333, 334, 335, -1, 337, 338, 339, - 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, - -1, 351, 352, 353, 354, 355, 356, 357, 358, 359, - 360, 361, 362, 363, 364, 365, 366, 367, 368, -1, - 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, - 380, 381, 382, 383, 384, 385, -1, 387, 388, 389, - 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, - 400, 401, 402, -1, 404, 405, -1, 407, 408, 409, - 410, 411, 412, 413, -1, 415, 416, -1, -1, 419, - 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, - 430, 431, 432, -1, -1, 435, 436, 437, 438, 439, - 440, -1, 442, 443, 444, 445, 446, 447, 448, -1, - 450, 451, 452, 453, 454, 455, 456, -1, -1, 459, - -1, -1, 462, 463, 464, 465, 466, 467, 468, 469, - 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, - 480, 481, 482, 483, -1, -1, -1, -1, -1, -1, - 490, 491, -1, -1, -1, -1, -1, 497, -1, 499, - -1, -1, -1, -1, 504, -1, 506, 507, 3, 4, - 5, 6, 7, 8, 9, 10, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 21, 22, 23, 24, - 25, 26, 27, 28, -1, 30, 31, 32, -1, -1, - -1, -1, 37, -1, -1, 40, 41, -1, 43, 44, - 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, - -1, 56, 57, 58, 59, 60, 61, 62, 63, 64, - 65, 66, 67, 68, -1, 70, 71, 72, 73, 74, - -1, 76, -1, 78, 79, 80, 81, 82, 83, 84, - 85, 86, 87, -1, 89, 90, 91, 92, 93, 94, - -1, 96, 97, 98, 99, 100, 101, 102, 103, 104, - 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, - 115, 116, 117, 118, -1, 120, 121, 122, 123, 124, - 125, -1, 127, 128, 129, 130, 131, -1, -1, 134, - 135, 136, 137, 138, -1, 140, 141, 142, -1, 144, - 145, 146, -1, 148, 149, 150, 151, 152, 153, 154, - 155, 156, 157, 158, 159, 160, -1, 162, 163, 164, - 165, -1, 167, -1, 169, 170, -1, 172, 173, 174, - 175, 176, 177, -1, 179, -1, 181, 182, 183, -1, - 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, - 195, 196, -1, 198, 199, 200, 201, 202, 203, -1, - 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, - -1, 216, -1, 218, 219, 220, 221, 222, 223, 224, - 225, 226, 227, 228, -1, -1, 231, 232, 233, 234, - -1, 236, 237, 238, 239, 240, 241, 242, 243, 244, - 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, - 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, - 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, - 275, 276, 277, 278, 279, 280, 281, 282, 283, -1, - 285, 286, -1, -1, 289, 290, 291, -1, -1, 294, - 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, - 305, 306, 307, 308, 309, -1, 311, 312, 313, 314, - 315, 316, 317, 318, 319, -1, 321, 322, 323, 324, - 325, 326, -1, 328, 329, 330, 331, 332, 333, 334, - 335, -1, 337, 338, 339, 340, 341, 342, 343, 344, - 345, 346, 347, 348, 349, -1, 351, 352, 353, 354, - 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, - 365, 366, 367, 368, -1, 370, 371, 372, 373, 374, + 385, 0, 386, 387, 388, 389, 390, 0, 392, 393, + 394, 395, 396, 0, 398, 399, 400, 401, 0, 402, + 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, + 413, 513, 415, 416, 417, 0, 418, 419, 0, 420, + 0, 422, 423, 424, 425, 426, 0, 427, 428, 0, + 0, 429, 430, 431, 432, 433, 0, 434, 435, 436, + 437, 438, 439, 440, 441, 0, 1513, 442, 443, 444, + 445, 446, 0, 0, 448, 449, 450, 451, 452, 453, + 454, 0, 455, 0, 457, 458, 459, 460, 461, 0, + 0, 462, 0, 0, 463, 464, 465, 466, 467, 468, + 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, + 479, 480, 481, 482, 483, 507, 0, 508, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 94, 95, 96, 97, 98, 99, 100, + 101, 0, 102, 103, 104, 3, 4, 0, 0, 0, + 0, 0, 105, 106, 0, 107, 108, 109, 0, 111, + 112, 113, 114, 115, 0, 117, 118, 0, 119, 120, + 121, 122, 123, 124, 0, 0, 125, 126, 127, 128, + 129, 0, 130, 131, 132, 133, 134, 0, 0, 0, + 136, 137, 138, 139, 140, 141, 0, 143, 144, 145, + 0, 146, 147, 148, 149, 150, 151, 0, 0, 153, + 154, 155, 0, 0, 0, 0, 0, 0, 0, 161, + 162, 163, 164, 165, 166, 167, 168, 169, 170, 0, + 171, 0, 172, 173, 174, 175, 176, 177, 0, 178, + 179, 180, 181, 182, 0, 0, 183, 184, 185, 186, + 187, 0, 188, 189, 190, 0, 191, 192, 193, 0, + 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, + 204, 0, 205, 0, 206, 207, 208, 209, 0, 210, + 0, 211, 0, 0, 0, 214, 215, 510, 0, 218, + 0, 219, 0, 220, 221, 222, 0, 223, 224, 225, + 226, 227, 228, 229, 0, 231, 232, 233, 234, 0, + 235, 236, 237, 238, 239, 240, 0, 241, 0, 243, + 244, 245, 246, 247, 248, 249, 250, 0, 251, 0, + 252, 0, 0, 255, 0, 257, 258, 259, 260, 261, + 262, 0, 0, 263, 0, 265, 0, 0, 267, 268, + 269, 0, 0, 270, 271, 272, 273, 274, 511, 276, + 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, + 287, 288, 289, 290, 291, 292, 293, 294, 0, 296, + 297, 298, 299, 300, 0, 301, 302, 0, 304, 0, + 305, 306, 307, 308, 309, 310, 0, 311, 312, 0, + 0, 313, 314, 315, 0, 0, 316, 317, 0, 319, + 0, 321, 322, 323, 324, 325, 326, 327, 328, 329, + 330, 331, 0, 332, 333, 334, 335, 336, 337, 338, + 339, 340, 0, 341, 342, 343, 344, 345, 346, 0, + 347, 348, 349, 350, 351, 352, 353, 354, 0, 355, + 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, + 366, 367, 0, 368, 369, 0, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, - 385, -1, 387, 388, 389, 390, 391, 392, 393, 394, - 395, 396, 397, 398, 399, 400, 401, 402, -1, 404, - 405, -1, 407, 408, 409, 410, 411, 412, 413, -1, - 415, 416, -1, -1, 419, 420, 421, 422, 423, 424, - 425, 426, 427, 428, 429, 430, 431, 432, -1, -1, - 435, 436, 437, 438, 439, 440, -1, 442, 443, 444, - 445, 446, 447, 448, -1, 450, 451, 452, 453, 454, - 455, 456, -1, -1, 459, -1, -1, 462, 463, 464, - 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, - 475, 476, 477, 478, 479, 480, 481, 482, 483, -1, - -1, -1, -1, -1, -1, 490, 491, -1, -1, -1, - -1, -1, 497, -1, 499, -1, -1, -1, -1, 504, - -1, 506, 507, 3, 4, 5, 6, 7, 8, 9, - 10, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 21, 22, 23, 24, 25, 26, 27, 28, -1, - 30, 31, 32, -1, -1, -1, -1, 37, -1, -1, - 40, 41, -1, 43, 44, 45, 46, 47, 48, 49, - 50, 51, 52, 53, 54, -1, 56, 57, 58, 59, - 60, 61, 62, 63, 64, 65, 66, 67, 68, -1, - 70, 71, 72, 73, 74, -1, 76, -1, 78, 79, - 80, 81, 82, 83, 84, 85, 86, 87, -1, 89, - 90, 91, 92, 93, 94, -1, 96, 97, 98, 99, - 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, - 110, 111, 112, 113, 114, 115, 116, 117, 118, -1, - 120, 121, 122, 123, 124, 125, -1, 127, 128, 129, - 130, 131, -1, -1, 134, 135, 136, 137, 138, -1, - 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, - 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, - 160, -1, 162, 163, 164, 165, -1, 167, -1, 169, - 170, -1, 172, 173, 174, 175, 176, 177, -1, 179, - -1, 181, 182, 183, -1, 185, 186, 187, 188, 189, - 190, 191, 192, 193, 194, 195, 196, -1, 198, 199, - 200, 201, 202, 203, -1, 205, 206, 207, 208, 209, - 210, 211, 212, 213, 214, -1, 216, -1, 218, 219, - 220, 221, 222, 223, 224, 225, 226, 227, 228, -1, - -1, 231, 232, 233, 234, -1, 236, 237, 238, 239, - 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, - 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, - 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, - 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, - 280, 281, 282, 283, -1, 285, 286, -1, -1, 289, - 290, 291, -1, -1, 294, 295, 296, 297, 298, 299, - 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, - -1, 311, 312, 313, 314, 315, 316, 317, 318, 319, - -1, 321, 322, 323, 324, 325, 326, -1, 328, 329, - 330, 331, 332, 333, 334, 335, -1, 337, 338, 339, - 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, - -1, 351, 352, 353, 354, 355, 356, 357, 358, 359, - 360, 361, 362, 363, 364, 365, 366, 367, 368, -1, - 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, - 380, 381, 382, 383, 384, 385, -1, 387, 388, 389, - 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, - 400, 401, 402, -1, 404, 405, -1, 407, 408, 409, - 410, 411, 412, 413, -1, 415, 416, -1, -1, 419, - 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, - 430, 431, 432, -1, -1, 435, 436, 437, 438, 439, - 440, -1, 442, 443, 444, 445, 446, 447, 448, -1, - 450, 451, 452, 453, 454, 455, 456, -1, -1, 459, - -1, -1, 462, 463, 464, 465, 466, 467, 468, 469, - 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, - 480, 481, 482, 483, -1, -1, -1, -1, -1, -1, - 490, 491, -1, -1, -1, -1, -1, 497, -1, 499, - -1, -1, -1, -1, 504, -1, 506, 507, 3, 4, - 5, 6, 7, 8, 9, 10, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 21, 22, 23, 24, - 25, 26, 27, 28, -1, 30, 31, 32, -1, -1, - -1, -1, 37, -1, -1, 40, 41, -1, 43, 44, - 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, - -1, 56, 57, 58, 59, 60, 61, 62, 63, 64, - 65, 66, 67, 68, -1, 70, 71, 72, 73, 74, - -1, 76, -1, 78, 79, 80, 81, 82, 83, 84, - 85, 86, 87, -1, 89, 90, 91, 92, 93, 94, - -1, 96, 97, 98, 99, 100, 101, 102, 103, 104, - 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, - 115, 116, 117, 118, -1, 120, 121, 122, 123, 124, - 125, -1, 127, 128, 129, 130, 131, -1, -1, 134, - 135, 136, 137, 138, -1, 140, 141, 142, -1, 144, - 145, 146, -1, 148, 149, 150, 151, 152, 153, 154, - 155, 156, 157, 158, 159, 160, -1, 162, 163, 164, - 165, -1, 167, -1, 169, 170, -1, 172, 173, 174, - 175, 176, 177, -1, 179, -1, 181, 182, 183, -1, - 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, - 195, 196, -1, 198, 199, 200, 201, 202, 203, -1, - 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, - -1, 216, -1, 218, 219, 220, 221, 222, 223, 224, - 225, 226, 227, 228, -1, -1, 231, 232, 233, 234, - -1, 236, 237, 238, 239, 240, 241, 242, 243, 244, - 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, - 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, - 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, - 275, 276, 277, 278, 279, 280, 281, 282, 283, -1, - 285, 286, -1, -1, 289, 290, 291, -1, -1, 294, - 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, - 305, 306, 307, 308, 309, -1, 311, 312, 313, 314, - 315, 316, 317, 318, 319, -1, 321, 322, 323, 324, - 325, 326, -1, 328, 329, 330, 331, 332, 333, 334, - 335, -1, 337, 338, 339, 340, 341, 342, 343, 344, - 345, 346, 347, 348, 349, -1, 351, 352, 353, 354, - 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, - 365, 366, 367, 368, -1, 370, 371, 372, 373, 374, + 385, 0, 386, 387, 388, 389, 390, 0, 392, 393, + 394, 395, 396, 0, 398, 399, 400, 401, 0, 402, + 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, + 413, 513, 415, 416, 417, 0, 418, 419, 0, 420, + 0, 422, 423, 424, 425, 426, 0, 427, 428, 0, + 0, 429, 430, 431, 432, 433, 0, 434, 435, 436, + 437, 438, 439, 440, 441, 0, 0, 442, 443, 444, + 445, 446, 0, 0, 448, 449, 450, 451, 452, 453, + 454, 0, 455, 0, 457, 458, 459, 460, 461, 0, + 0, 462, 0, 0, 463, 464, 465, 466, 467, 468, + 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, + 479, 480, 481, 482, 483, 507, 0, 508, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 94, 95, 96, 97, 98, 99, 100, + 101, 509, 102, 103, 104, 0, 0, 0, 0, 0, + 0, 0, 105, 106, 0, 107, 108, 109, 0, 111, + 112, 113, 114, 115, 0, 117, 118, 0, 119, 120, + 121, 122, 123, 124, 0, 0, 125, 126, 127, 128, + 129, 0, 130, 131, 132, 133, 134, 0, 0, 0, + 136, 137, 138, 139, 140, 141, 0, 143, 144, 145, + 0, 146, 147, 148, 149, 150, 151, 0, 0, 153, + 154, 155, 0, 0, 0, 0, 0, 0, 0, 161, + 162, 163, 164, 165, 166, 167, 168, 169, 170, 0, + 171, 0, 172, 173, 174, 175, 176, 177, 0, 178, + 179, 180, 181, 182, 0, 0, 183, 184, 185, 186, + 187, 0, 188, 189, 190, 0, 191, 192, 193, 0, + 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, + 204, 0, 205, 0, 206, 207, 208, 209, 0, 210, + 0, 211, 0, 0, 0, 214, 215, 510, 0, 218, + 0, 219, 0, 220, 221, 222, 0, 223, 224, 225, + 226, 227, 228, 229, 0, 231, 232, 233, 234, 0, + 235, 236, 237, 238, 239, 240, 0, 241, 0, 243, + 244, 245, 246, 247, 248, 249, 250, 0, 251, 0, + 252, 0, 0, 255, 0, 257, 258, 259, 260, 261, + 262, 0, 0, 263, 0, 265, 0, 0, 267, 268, + 269, 0, 0, 270, 271, 272, 273, 274, 511, 276, + 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, + 287, 288, 289, 290, 291, 292, 293, 294, 0, 296, + 297, 298, 299, 300, 0, 301, 302, 0, 304, 0, + 305, 306, 307, 308, 309, 310, 0, 311, 312, 0, + 0, 313, 314, 315, 0, 0, 316, 317, 0, 319, + 0, 321, 322, 323, 324, 325, 326, 327, 328, 329, + 330, 331, 0, 332, 333, 334, 335, 336, 337, 512, + 339, 340, 0, 341, 342, 343, 344, 345, 346, 0, + 347, 348, 349, 350, 351, 352, 353, 354, 0, 355, + 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, + 366, 367, 0, 368, 369, 0, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, - 385, -1, 387, 388, 389, 390, 391, 392, 393, 394, - 395, 396, 397, 398, 399, 400, 401, 402, -1, 404, - 405, -1, 407, 408, 409, 410, 411, 412, 413, -1, - 415, 416, -1, -1, 419, 420, 421, 422, 423, 424, - 425, 426, 427, 428, 429, 430, 431, 432, -1, -1, - 435, 436, 437, 438, 439, 440, -1, 442, 443, 444, - 445, 446, 447, 448, -1, 450, 451, 452, 453, 454, - 455, 456, -1, -1, 459, -1, -1, 462, 463, 464, - 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, - 475, 476, 477, 478, 479, 480, 481, 482, 483, -1, - -1, -1, -1, -1, -1, 490, 491, -1, -1, -1, - -1, -1, 497, -1, 499, -1, -1, -1, -1, 504, - -1, 506, 507, 3, 4, 5, 6, 7, 8, 9, - 10, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 21, 22, 23, 24, 25, 26, 27, 28, -1, - 30, 31, 32, -1, -1, -1, -1, 37, -1, -1, - 40, 41, -1, 43, 44, 45, 46, 47, 48, 49, - 50, 51, 52, 53, 54, -1, 56, 57, 58, 59, - 60, 61, 62, 63, 64, 65, 66, 67, 68, -1, - 70, 71, 72, 73, 74, -1, 76, -1, 78, 79, - 80, 81, 82, 83, 84, 85, 86, 87, -1, 89, - 90, 91, 92, 93, 94, -1, 96, 97, 98, 99, - 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, - 110, 111, 112, 113, 114, 115, 116, 117, 118, -1, - 120, 121, 122, 123, 124, 125, -1, 127, 128, 129, - 130, 131, -1, -1, 134, 135, 136, 137, 138, -1, - 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, - 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, - 160, -1, 162, 163, 164, 165, -1, 167, -1, 169, - 170, -1, 172, 173, 174, 175, 176, 177, -1, 179, - -1, 181, 182, 183, -1, 185, 186, 187, 188, 189, - 190, 191, 192, 193, 194, 195, 196, -1, 198, 199, - 200, 201, 202, 203, -1, 205, 206, 207, 208, 209, - 210, 211, 212, 213, 214, -1, 216, -1, 218, 219, - 220, 221, 222, 223, 224, 225, 226, 227, 228, -1, - -1, 231, 232, 233, 234, -1, 236, 237, 238, 239, - 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, - 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, - 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, - 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, - 280, 281, 282, 283, -1, 285, 286, -1, -1, 289, - 290, 291, -1, -1, 294, 295, 296, 297, 298, 299, - 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, - -1, 311, 312, 313, 314, 315, 316, 317, 318, 319, - -1, 321, 322, 323, 324, 325, 326, -1, 328, 329, - 330, 331, 332, 333, 334, 335, -1, 337, 338, 339, - 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, - -1, 351, 352, 353, 354, 355, 356, 357, 358, 359, - 360, 361, 362, 363, 364, 365, 366, 367, 368, -1, - 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, - 380, 381, 382, 383, 384, 385, -1, 387, 388, 389, - 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, - 400, 401, 402, -1, 404, 405, -1, 407, 408, 409, - 410, 411, 412, 413, -1, 415, 416, -1, -1, 419, - 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, - 430, 431, 432, -1, -1, 435, 436, 437, 438, 439, - 440, -1, 442, 443, 444, 445, 446, 447, 448, -1, - 450, 451, 452, 453, 454, 455, 456, -1, -1, 459, - -1, -1, 462, 463, 464, 465, 466, 467, 468, 469, - 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, - 480, 481, 482, 483, -1, -1, -1, -1, -1, -1, - 490, 491, -1, -1, -1, -1, -1, 497, -1, 499, - -1, -1, -1, -1, 504, -1, 506, 507, 3, 4, - 5, 6, 7, 8, 9, 10, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 21, 22, 23, 24, - 25, 26, 27, 28, -1, 30, 31, 32, -1, -1, - -1, -1, 37, -1, -1, 40, 41, -1, 43, 44, - 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, - -1, 56, 57, 58, 59, 60, 61, 62, 63, 64, - 65, 66, 67, 68, -1, 70, 71, 72, 73, 74, - -1, 76, -1, 78, 79, 80, 81, 82, 83, 84, - 85, 86, 87, -1, 89, 90, 91, 92, 93, 94, - -1, 96, 97, 98, 99, 100, 101, 102, 103, 104, - 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, - 115, 116, 117, 118, -1, 120, 121, 122, 123, 124, - 125, -1, 127, 128, 129, 130, 131, -1, -1, 134, - 135, 136, 137, 138, -1, 140, 141, 142, -1, 144, - 145, 146, -1, 148, 149, 150, 151, 152, 153, 154, - 155, 156, 157, 158, 159, 160, -1, 162, 163, 164, - 165, -1, 167, -1, 169, 170, -1, 172, 173, 174, - 175, 176, 177, -1, 179, -1, 181, 182, 183, -1, - 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, - 195, 196, -1, 198, 199, 200, 201, 202, 203, -1, - 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, - -1, 216, -1, 218, -1, -1, 221, 222, 223, 224, - 225, 226, 227, 228, -1, -1, 231, 232, 233, 234, - -1, 236, 237, 238, 239, 240, 241, 242, 243, 244, - 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, - 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, - 265, 266, 267, 268, 269, 270, 271, -1, 273, 274, - -1, 276, 277, 278, 279, 280, 281, 282, 283, -1, - 285, 286, -1, -1, 289, 290, 291, -1, -1, 294, - 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, - 305, 306, 307, 308, 309, -1, 311, 312, 313, 314, - 315, 316, 317, 318, 319, -1, 321, 322, 323, 324, - 325, 326, -1, 328, 329, 330, 331, 332, 333, 334, - 335, -1, 337, 338, 339, 340, 341, 342, 343, 344, - 345, 346, 347, 348, 349, -1, 351, 352, 353, 354, - 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, - 365, 366, 367, 368, -1, 370, 371, 372, 373, 374, + 385, 0, 386, 387, 388, 389, 390, 0, 392, 393, + 394, 395, 396, 0, 398, 399, 400, 401, 0, 402, + 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, + 413, 513, 415, 416, 417, 0, 418, 419, 0, 420, + 0, 422, 423, 424, 425, 426, 0, 427, 428, 0, + 0, 429, 430, 431, 432, 433, 0, 434, 435, 436, + 437, 438, 439, 440, 441, 0, 0, 442, 443, 444, + 445, 446, 0, 0, 448, 449, 450, 451, 452, 453, + 454, 0, 455, 0, 457, 458, 459, 460, 461, 0, + 0, 462, 0, 0, 463, 464, 465, 466, 467, 468, + 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, + 479, 480, 481, 482, 483, 507, 0, 508, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 94, 95, 96, 97, 98, 99, 100, + 101, 0, 102, 103, 104, 0, 0, 0, 0, 0, + 0, 0, 105, 106, 0, 107, 108, 109, 0, 111, + 112, 113, 114, 115, 0, 117, 118, 0, 119, 120, + 121, 122, 123, 124, 0, 0, 125, 126, 127, 128, + 129, 0, 130, 131, 132, 133, 134, 0, 0, 0, + 136, 137, 138, 139, 140, 141, 0, 143, 144, 145, + 0, 146, 147, 148, 149, 150, 151, 0, 0, 153, + 154, 155, 0, 0, 0, 0, 0, 0, 0, 161, + 162, 163, 164, 165, 166, 167, 168, 169, 170, 0, + 171, 0, 172, 173, 174, 175, 176, 177, 0, 178, + 179, 180, 181, 182, 0, 0, 183, 184, 185, 186, + 187, 0, 188, 189, 190, 0, 191, 192, 193, 0, + 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, + 204, 0, 205, 0, 206, 207, 208, 209, 0, 210, + 0, 211, 0, 0, 0, 214, 215, 510, 0, 218, + 0, 219, 0, 220, 221, 222, 0, 223, 224, 225, + 226, 227, 228, 229, 0, 231, 232, 233, 234, 0, + 235, 236, 237, 238, 239, 240, 0, 241, 0, 243, + 244, 245, 246, 247, 248, 249, 250, 0, 251, 0, + 252, 0, 0, 255, 0, 257, 258, 259, 260, 261, + 262, 0, 0, 263, 0, 265, 0, 0, 267, 268, + 269, 0, 0, 270, 271, 272, 273, 274, 511, 276, + 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, + 287, 288, 289, 290, 291, 292, 293, 294, 0, 296, + 297, 298, 299, 300, 0, 301, 302, 0, 304, 0, + 305, 306, 307, 308, 309, 310, 0, 311, 312, 0, + 615, 313, 314, 315, 0, 0, 316, 317, 0, 319, + 0, 321, 322, 323, 324, 325, 326, 327, 328, 329, + 330, 331, 0, 332, 333, 334, 335, 336, 337, 338, + 339, 340, 0, 341, 342, 343, 344, 345, 346, 0, + 347, 348, 349, 350, 351, 352, 353, 354, 0, 355, + 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, + 366, 367, 0, 368, 369, 0, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, - 385, -1, 387, 388, 389, 390, 391, 392, 393, 394, - 395, 396, 397, 398, 399, 400, 401, 402, -1, 404, - 405, -1, 407, 408, 409, 410, 411, 412, 413, -1, - 415, 416, -1, -1, 419, 420, 421, 422, 423, 424, - 425, 426, 427, 428, 429, 430, 431, 432, -1, -1, - 435, 436, 437, 438, 439, 440, -1, 442, 443, 444, - 445, 446, 447, 448, -1, 450, 451, 452, 453, 454, - 455, 456, -1, -1, 459, -1, -1, 462, 463, 464, - 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, - 475, 476, 477, 478, 479, 480, 481, 482, 483, -1, - -1, -1, -1, -1, -1, 490, 491, -1, -1, -1, - -1, -1, 497, -1, 499, -1, -1, -1, -1, 504, - -1, 506, 507, 3, 4, 5, 6, 7, 8, 9, - 10, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 21, 22, 23, 24, 25, 26, 27, 28, -1, - 30, 31, 32, -1, -1, -1, -1, -1, -1, -1, - 40, 41, -1, 43, 44, 45, 46, 47, 48, 49, - 50, 51, 52, 53, 54, -1, 56, 57, 58, 59, - 60, 61, 62, 63, 64, 65, 66, 67, 68, -1, - 70, 71, 72, 73, 74, -1, 76, -1, 78, 79, - 80, 81, 82, 83, 84, 85, 86, 87, -1, 89, - 90, 91, 92, 93, 94, -1, 96, 97, 98, 99, - 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, - 110, 111, 112, 113, 114, 115, 116, -1, 118, -1, - 120, 121, 122, 123, 124, 125, -1, 127, 128, 129, - 130, 131, -1, -1, 134, 135, 136, 137, 138, -1, - 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, - 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, - 160, -1, 162, 163, 164, 165, -1, 167, -1, 169, - 170, -1, 172, 173, 174, 175, 176, 177, -1, 179, - -1, 181, 182, 183, -1, 185, 186, 187, 188, 189, - 190, 191, 192, 193, 194, 195, 196, -1, 198, 199, - 200, 201, 202, 203, -1, 205, 206, 207, 208, 209, - 210, 211, 212, 213, 214, -1, 216, -1, 218, 219, - 220, 221, 222, 223, 224, 225, 226, 227, 228, -1, - -1, 231, 232, 233, 234, -1, 236, 237, 238, 239, - 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, - 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, - 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, - 270, 271, -1, 273, 274, 275, 276, 277, 278, 279, - 280, 281, 282, 283, -1, 285, 286, -1, -1, 289, - 290, 291, -1, -1, 294, 295, 296, 297, 298, 299, - 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, - -1, 311, 312, 313, 314, 315, 316, 317, 318, 319, - -1, 321, 322, 323, 324, 325, 326, -1, 328, 329, - 330, 331, 332, 333, 334, 335, -1, 337, 338, 339, - 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, - -1, 351, 352, 353, 354, 355, 356, 357, 358, 359, - 360, 361, 362, 363, 364, 365, 366, 367, 368, -1, - 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, - 380, 381, 382, 383, 384, 385, -1, 387, 388, 389, - 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, - 400, 401, 402, -1, 404, 405, -1, 407, 408, 409, - 410, 411, 412, 413, -1, 415, 416, -1, -1, 419, - 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, - 430, 431, 432, -1, -1, 435, 436, 437, 438, 439, - 440, -1, 442, 443, 444, 445, 446, 447, 448, -1, - 450, 451, 452, 453, 454, 455, 456, -1, -1, 459, - -1, -1, 462, 463, 464, 465, 466, 467, 468, 469, - 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, - 480, 481, 482, -1, -1, -1, -1, -1, -1, -1, - 490, 491, -1, -1, 3, 4, 5, 6, 7, 499, - 9, 10, -1, -1, -1, -1, 506, 507, -1, -1, - -1, -1, 21, 22, 23, 24, 25, 26, 27, 28, - -1, 30, 31, 32, -1, -1, -1, -1, -1, -1, - -1, 40, 41, -1, 43, 44, 45, 46, 47, 48, - 49, 50, 51, 52, 53, 54, -1, 56, 57, 58, - 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, - -1, 70, 71, 72, 73, 74, -1, 76, -1, 78, - 79, 80, 81, 82, 83, 84, 85, 86, 87, -1, - 89, 90, 91, 92, 93, 94, -1, 96, 97, 98, - 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, - 109, 110, 111, 112, 113, 114, 115, 116, -1, 118, - -1, 120, 121, 122, 123, 124, 125, -1, 127, 128, - 129, 130, 131, -1, -1, 134, 135, 136, 137, 138, - -1, 140, 141, 142, -1, 144, 145, 146, -1, 148, - 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, - 159, 160, -1, 162, 163, 164, 165, -1, 167, -1, - 169, 170, -1, 172, 173, 174, 175, 176, 177, -1, - 179, -1, 181, 182, 183, -1, 185, 186, 187, 188, - 189, 190, 191, 192, 193, 194, 195, 196, -1, 198, - 199, 200, 201, 202, 203, -1, 205, 206, 207, 208, - 209, 210, 211, 212, 213, 214, -1, 216, -1, 218, - 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, - -1, -1, 231, 232, 233, 234, -1, 236, 237, 238, - 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, - 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, - 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, - 269, 270, 271, -1, 273, 274, 275, 276, 277, 278, - 279, 280, 281, 282, 283, -1, 285, 286, -1, -1, - 289, 290, 291, -1, -1, 294, 295, 296, 297, 298, - 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, - 309, -1, 311, 312, 313, 314, 315, 316, 317, 318, - 319, -1, 321, 322, 323, 324, 325, 326, -1, 328, - 329, 330, 331, 332, 333, 334, 335, -1, 337, 338, - 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, - 349, -1, 351, 352, 353, 354, 355, 356, 357, 358, - 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, - -1, 370, 371, 372, 373, 374, 375, 376, 377, 378, - 379, 380, 381, 382, 383, 384, 385, -1, 387, 388, - 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, - 399, 400, 401, 402, -1, 404, 405, -1, 407, 408, - 409, 410, 411, 412, 413, -1, 415, 416, -1, -1, - 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, - 429, 430, 431, 432, -1, -1, 435, 436, 437, 438, - 439, 440, -1, 442, 443, 444, 445, 446, 447, 448, - -1, 450, 451, 452, 453, 454, 455, 456, -1, -1, - 459, -1, -1, 462, 463, 464, 465, 466, 467, 468, + 385, 0, 386, 387, 388, 389, 390, 0, 392, 393, + 394, 395, 396, 0, 398, 399, 400, 401, 0, 402, + 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, + 413, 513, 415, 416, 417, 0, 418, 419, 0, 420, + 0, 422, 423, 424, 425, 426, 0, 427, 428, 0, + 0, 429, 430, 431, 432, 433, 0, 434, 435, 436, + 437, 438, 439, 440, 441, 0, 0, 442, 443, 444, + 445, 446, 0, 0, 448, 449, 450, 451, 452, 453, + 454, 0, 455, 0, 457, 458, 459, 460, 461, 0, + 0, 462, 0, 0, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, - 479, 480, 481, 482, -1, -1, -1, -1, -1, -1, - -1, 490, 491, -1, -1, -1, -1, -1, -1, -1, - 499, -1, -1, -1, -1, -1, -1, 506, 507, 3, - 4, 5, 6, 7, 8, 9, 10, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 21, 22, 23, - 24, 25, 26, 27, 28, -1, 30, 31, 32, -1, - -1, -1, -1, -1, -1, -1, 40, 41, -1, 43, - 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, - 54, -1, 56, 57, 58, 59, 60, 61, 62, 63, - 64, 65, 66, 67, 68, -1, 70, 71, 72, 73, - 74, -1, 76, -1, 78, 79, 80, 81, 82, 83, - 84, 85, 86, 87, -1, 89, 90, 91, 92, 93, - 94, -1, 96, 97, 98, 99, 100, 101, 102, 103, - 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, - 114, 115, 116, -1, 118, -1, 120, 121, 122, 123, - 124, 125, -1, 127, 128, 129, 130, 131, -1, -1, - 134, 135, 136, 137, 138, -1, 140, 141, 142, -1, - 144, 145, 146, -1, 148, 149, 150, 151, 152, 153, - 154, 155, 156, 157, 158, 159, 160, -1, 162, 163, - 164, 165, -1, 167, -1, 169, 170, -1, 172, 173, - 174, 175, 176, 177, -1, 179, -1, 181, 182, 183, - -1, 185, 186, 187, 188, 189, 190, 191, 192, 193, - 194, 195, 196, -1, 198, 199, 200, 201, 202, 203, - -1, 205, 206, 207, 208, 209, 210, 211, 212, 213, - 214, -1, 216, -1, 218, -1, 220, 221, 222, 223, - 224, 225, 226, 227, 228, -1, -1, 231, 232, 233, - 234, -1, 236, 237, 238, 239, 240, 241, 242, 243, - 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, - 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, - 264, 265, 266, 267, 268, 269, 270, 271, -1, 273, - 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, - -1, 285, 286, -1, -1, 289, 290, 291, -1, -1, - 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, - 304, 305, 306, 307, 308, 309, -1, 311, 312, 313, - 314, 315, 316, 317, 318, 319, -1, 321, 322, 323, - 324, 325, 326, -1, 328, 329, 330, 331, 332, 333, - 334, 335, -1, 337, 338, 339, 340, 341, 342, 343, - 344, 345, 346, 347, 348, 349, -1, 351, 352, 353, - 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, - 364, 365, 366, 367, 368, -1, 370, 371, 372, 373, - 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, - 384, 385, -1, 387, 388, 389, 390, 391, 392, 393, - 394, 395, 396, 397, 398, 399, 400, 401, 402, -1, - 404, 405, -1, 407, 408, 409, 410, 411, 412, 413, - -1, 415, 416, -1, -1, 419, 420, 421, 422, 423, - 424, 425, 426, 427, 428, 429, 430, 431, 432, -1, - -1, 435, 436, 437, 438, 439, 440, -1, 442, 443, - 444, 445, 446, 447, 448, -1, 450, 451, 452, 453, - 454, 455, 456, -1, -1, 459, -1, -1, 462, 463, - 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, - 474, 475, 476, 477, 478, 479, 480, 481, 482, -1, - -1, -1, -1, -1, -1, -1, 490, 491, -1, -1, - -1, -1, -1, -1, -1, 499, -1, -1, -1, -1, - -1, -1, 506, 507, 3, 4, 5, 6, 7, 8, - 9, 10, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 21, 22, 23, 24, 25, 26, 27, 28, - -1, 30, 31, 32, -1, -1, -1, -1, 37, -1, - -1, 40, 41, -1, 43, 44, 45, 46, 47, 48, - 49, -1, 51, 52, 53, 54, -1, 56, 57, 58, - 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, - -1, 70, 71, 72, 73, 74, -1, 76, -1, 78, - 79, 80, 81, 82, 83, 84, 85, 86, 87, -1, - 89, 90, 91, 92, 93, 94, -1, 96, 97, 98, - 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, - 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, - -1, 120, 121, 122, 123, 124, 125, -1, 127, 128, - 129, 130, 131, -1, -1, 134, 135, 136, 137, 138, - -1, 140, 141, 142, -1, 144, -1, 146, -1, 148, - 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, - 159, 160, -1, 162, 163, 164, 165, -1, 167, -1, - 169, 170, -1, 172, 173, 174, 175, -1, 177, -1, - 179, -1, 181, 182, 183, -1, 185, 186, 187, 188, - 189, 190, 191, -1, 193, 194, 195, 196, -1, 198, - 199, 200, 201, 202, 203, -1, 205, 206, 207, 208, - 209, 210, 211, 212, 213, 214, -1, 216, -1, 218, - -1, -1, 221, 222, 223, 224, 225, 226, 227, 228, - -1, -1, 231, 232, 233, -1, -1, 236, 237, 238, - 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, - 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, - 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, - 269, 270, 271, -1, 273, 274, -1, 276, 277, 278, - 279, 280, 281, 282, 283, -1, 285, 286, -1, -1, - 289, 290, 291, -1, -1, 294, 295, 296, 297, 298, - 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, - 309, -1, 311, 312, 313, 314, 315, 316, 317, 318, - 319, -1, 321, 322, 323, 324, 325, 326, -1, 328, - 329, 330, 331, 332, 333, 334, 335, -1, 337, 338, - 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, - 349, -1, 351, 352, 353, 354, 355, 356, 357, 358, - 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, - -1, 370, 371, 372, 373, 374, 375, 376, 377, 378, - 379, 380, -1, 382, 383, 384, 385, -1, 387, 388, - 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, - 399, 400, 401, 402, -1, 404, 405, -1, 407, 408, - 409, 410, 411, 412, 413, -1, 415, 416, -1, -1, - 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, - 429, 430, 431, 432, -1, -1, 435, 436, 437, 438, - 439, 440, -1, 442, 443, 444, 445, 446, 447, 448, - -1, 450, 451, 452, 453, 454, 455, 456, -1, -1, - 459, -1, -1, 462, 463, 464, 465, 466, 467, 468, + 479, 480, 481, 482, 483, 507, 0, 508, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 94, 95, 96, 97, 98, 99, 100, + 101, 0, 102, 103, 104, 0, 0, 0, 0, 0, + 0, 0, 105, 106, 0, 107, 108, 109, 0, 111, + 112, 113, 114, 115, 0, 117, 118, 0, 119, 120, + 121, 122, 123, 124, 0, 0, 125, 126, 127, 128, + 129, 0, 130, 131, 132, 133, 134, 0, 0, 0, + 136, 137, 138, 139, 140, 141, 0, 143, 144, 145, + 0, 146, 147, 148, 149, 150, 151, 0, 0, 153, + 154, 155, 0, 0, 0, 0, 0, 0, 0, 161, + 162, 163, 164, 165, 166, 167, 168, 169, 170, 0, + 171, 0, 172, 173, 174, 175, 176, 177, 0, 178, + 179, 180, 181, 182, 0, 0, 183, 184, 185, 186, + 187, 0, 188, 189, 190, 0, 191, 192, 193, 0, + 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, + 204, 0, 205, 0, 206, 207, 208, 209, 0, 210, + 0, 211, 0, 0, 0, 214, 215, 510, 0, 218, + 0, 219, 0, 220, 221, 222, 0, 223, 224, 225, + 226, 227, 658, 229, 0, 231, 232, 233, 234, 0, + 235, 236, 237, 238, 239, 240, 0, 241, 0, 243, + 244, 245, 246, 247, 248, 249, 250, 0, 251, 0, + 252, 0, 0, 255, 0, 257, 258, 259, 260, 261, + 262, 0, 0, 263, 0, 265, 0, 0, 267, 268, + 269, 0, 0, 270, 271, 272, 273, 274, 511, 276, + 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, + 287, 288, 289, 290, 291, 292, 293, 294, 0, 296, + 297, 298, 299, 300, 0, 301, 302, 0, 304, 0, + 305, 306, 307, 308, 309, 310, 0, 311, 312, 0, + 615, 313, 314, 315, 0, 0, 316, 317, 0, 319, + 0, 321, 322, 323, 324, 325, 326, 327, 328, 329, + 330, 331, 0, 332, 333, 334, 335, 336, 337, 338, + 339, 340, 0, 341, 342, 343, 344, 345, 346, 0, + 347, 348, 349, 350, 351, 352, 353, 354, 0, 355, + 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, + 366, 367, 0, 368, 369, 0, 371, 372, 373, 374, + 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, + 385, 0, 386, 387, 388, 389, 390, 0, 392, 393, + 394, 395, 396, 0, 398, 399, 400, 401, 0, 402, + 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, + 413, 513, 415, 416, 417, 0, 418, 419, 0, 420, + 0, 422, 423, 424, 425, 426, 0, 427, 428, 0, + 0, 429, 430, 431, 432, 433, 0, 434, 435, 436, + 437, 438, 439, 440, 441, 0, 0, 442, 443, 444, + 445, 446, 0, 0, 448, 449, 450, 451, 452, 453, + 454, 0, 455, 0, 457, 458, 459, 460, 461, 0, + 0, 462, 0, 0, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, - 479, 480, 481, 482, -1, -1, -1, -1, -1, -1, - -1, 490, 491, 3, -1, -1, -1, -1, 497, -1, - 499, -1, -1, -1, -1, 504, -1, 506, 507, -1, - -1, 21, 22, 23, 24, 25, 26, 27, 28, -1, - 30, 31, 32, -1, -1, -1, -1, -1, -1, -1, - 40, 41, -1, 43, 44, 45, 46, 47, 48, 49, - -1, 51, 52, 53, 54, -1, 56, 57, 58, 59, - 60, 61, -1, -1, 64, 65, 66, 67, 68, -1, - 70, 71, 72, 73, -1, -1, 76, -1, 78, 79, - 80, 81, 82, 83, 84, 85, 86, 87, -1, 89, - 90, 91, 92, 93, 94, -1, 96, 97, 98, 99, - 100, 101, 102, 103, -1, -1, 106, 107, 108, 109, - 110, 111, 112, 113, 114, 115, 116, -1, 118, -1, - 120, 121, 122, 123, 124, 125, -1, 127, 128, 129, - 130, 131, -1, -1, 134, 135, 136, 137, 138, -1, - 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, - 150, 151, -1, 153, 154, 155, 156, 157, -1, -1, - 160, -1, 162, 163, 164, 165, -1, 167, -1, 169, - 170, -1, 172, 173, 174, -1, 176, 177, -1, 179, - -1, -1, -1, 183, -1, 185, 186, 187, 188, 189, - 190, 191, 192, 193, 194, 195, 196, -1, 198, 199, - 200, 201, 202, 203, -1, 205, 206, -1, 208, 209, - 210, 211, 212, 213, 214, -1, 216, -1, 218, 219, - 220, 221, 222, 223, 224, 225, 226, 227, 228, -1, - -1, 231, 232, 233, 234, -1, 236, 237, 238, -1, - -1, 241, 242, 243, 244, 245, 246, 247, 248, 249, - 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, - 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, - 270, -1, -1, 273, 274, 275, 276, -1, -1, 279, - 280, 281, 282, 283, -1, 285, 286, -1, -1, 289, - 290, 291, -1, -1, 294, -1, 296, 297, 298, -1, - 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, - -1, 311, 312, -1, 314, 315, -1, 317, 318, 319, - -1, 321, 322, 323, 324, 325, 326, -1, 328, 329, - 330, 331, 332, 333, 334, 335, -1, 337, 338, 339, - 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, - -1, 351, 352, 353, 354, 355, 356, 357, 358, 359, - 360, 361, 362, 363, 364, 365, 366, 367, 368, -1, - 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, - 380, 381, 382, 383, 384, 385, -1, 387, 388, 389, - 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, - 400, -1, 402, -1, 404, 405, -1, 407, 408, 409, - 410, 411, 412, 413, -1, 415, 416, -1, -1, 419, - 420, -1, 422, -1, -1, 425, 426, 427, 428, 429, - 430, 431, 432, -1, -1, 435, 436, 437, 438, 439, - 440, -1, 442, 443, 444, 445, 446, -1, 448, -1, - 450, 451, 452, 453, 454, 455, 456, -1, -1, 459, - -1, -1, 462, 463, 464, 465, 466, 467, -1, 3, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 479, - 480, 481, 482, -1, -1, -1, -1, 21, 22, 23, - 24, 25, 26, 27, 28, -1, 30, 31, 32, -1, - 500, -1, -1, 503, 38, -1, 40, 41, -1, 43, - 44, 45, -1, 47, 48, 49, 50, 51, -1, 53, - 54, -1, 56, 57, 58, 59, 60, 61, -1, -1, - 64, 65, 66, 67, 68, -1, 70, 71, 72, 73, - 74, -1, -1, -1, 78, 79, 80, 81, 82, 83, - -1, 85, 86, 87, -1, 89, 90, 91, 92, 93, - 94, -1, 96, 97, 98, 99, -1, -1, -1, -1, - -1, -1, -1, 107, 108, 109, 110, 111, 112, 113, - 114, 115, 116, -1, 118, -1, 120, 121, 122, 123, - 124, 125, -1, 127, 128, 129, 130, 131, -1, -1, - 134, 135, 136, 137, 138, -1, 140, 141, 142, -1, - 144, 145, 146, -1, 148, 149, 150, 151, 152, 153, - 154, 155, 156, 157, 158, -1, 160, -1, 162, 163, - 164, 165, -1, 167, -1, 169, -1, -1, 172, 173, - 174, 175, -1, 177, -1, 179, -1, 181, 182, 183, - -1, 185, 186, 187, 188, 189, 190, 191, -1, 193, - 194, 195, 196, -1, 198, 199, 200, 201, 202, 203, - -1, 205, 206, 207, 208, 209, 210, 211, 212, 213, - 214, -1, 216, -1, 218, -1, -1, 221, 222, 223, - 224, 225, 226, 227, 228, -1, -1, 231, 232, 233, - -1, -1, 236, 237, 238, -1, -1, 241, 242, 243, - 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, - 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, - 264, 265, 266, 267, 268, 269, 270, 271, -1, 273, - 274, -1, 276, -1, 278, 279, 280, 281, 282, 283, - -1, 285, 286, -1, -1, 289, 290, 291, -1, -1, - 294, 295, -1, 297, -1, 299, 300, 301, 302, 303, - 304, 305, 306, 307, 308, 309, -1, 311, 312, 313, - 314, 315, 316, 317, 318, 319, -1, 321, 322, 323, - 324, 325, 326, -1, 328, 329, 330, 331, 332, 333, - 334, 335, -1, 337, 338, 339, 340, 341, 342, 343, - 344, 345, 346, 347, 348, 349, -1, 351, 352, 353, - 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, - 364, 365, 366, 367, 368, -1, 370, 371, 372, 373, - 374, -1, 376, 377, 378, 379, 380, -1, 382, 383, - 384, 385, -1, 387, 388, 389, 390, 391, 392, 393, - 394, 395, 396, 397, 398, 399, 400, 401, 402, -1, - 404, 405, -1, 407, 408, 409, 410, 411, 412, 413, - -1, 415, 416, -1, -1, 419, 420, 421, 422, 423, - -1, 425, 426, 427, 428, 429, 430, 431, 432, -1, - -1, 435, 436, 437, 438, 439, -1, -1, 442, 443, - 444, 445, 446, 447, 448, -1, 450, -1, 452, 453, - 454, 455, 456, -1, -1, 459, -1, -1, 462, 463, + 479, 480, 481, 482, 483, 507, 0, 508, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 94, 95, 96, 97, 98, 99, 100, + 101, 690, 102, 103, 104, 0, 0, 0, 0, 0, + 0, 0, 105, 106, 0, 107, 108, 109, 0, 111, + 112, 113, 114, 115, 0, 117, 118, 0, 119, 120, + 121, 122, 123, 124, 0, 0, 125, 126, 127, 128, + 129, 0, 130, 131, 132, 133, 134, 0, 0, 0, + 136, 137, 138, 139, 140, 141, 0, 143, 144, 145, + 0, 146, 147, 148, 149, 150, 151, 0, 0, 153, + 154, 155, 0, 0, 0, 0, 0, 0, 0, 161, + 162, 163, 164, 165, 166, 167, 168, 169, 170, 0, + 171, 0, 172, 173, 174, 175, 176, 177, 0, 178, + 179, 180, 181, 182, 0, 0, 183, 184, 185, 186, + 187, 0, 188, 189, 190, 0, 191, 192, 193, 0, + 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, + 204, 0, 205, 0, 206, 207, 208, 209, 0, 210, + 0, 211, 0, 0, 0, 214, 215, 510, 0, 218, + 0, 219, 0, 220, 221, 222, 0, 223, 224, 225, + 226, 227, 228, 229, 0, 231, 232, 233, 234, 0, + 235, 236, 237, 238, 239, 240, 0, 241, 0, 243, + 244, 245, 246, 247, 248, 249, 250, 0, 251, 0, + 252, 0, 0, 255, 0, 257, 258, 259, 260, 261, + 262, 0, 0, 263, 0, 265, 0, 0, 267, 268, + 269, 0, 0, 270, 271, 272, 273, 274, 511, 276, + 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, + 287, 288, 289, 290, 291, 292, 293, 294, 0, 296, + 297, 298, 299, 300, 0, 301, 302, 0, 304, 0, + 305, 306, 307, 308, 309, 310, 0, 311, 312, 0, + 0, 313, 314, 315, 0, 0, 316, 317, 0, 319, + 0, 321, 322, 323, 324, 325, 326, 327, 328, 329, + 330, 331, 0, 332, 333, 334, 335, 336, 337, 338, + 339, 340, 0, 341, 342, 343, 344, 345, 346, 0, + 347, 348, 349, 350, 351, 352, 353, 354, 0, 355, + 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, + 366, 367, 0, 368, 369, 0, 371, 372, 373, 374, + 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, + 385, 0, 386, 387, 388, 389, 390, 0, 392, 393, + 394, 395, 396, 0, 398, 399, 400, 401, 0, 402, + 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, + 413, 513, 415, 416, 417, 0, 418, 419, 0, 420, + 0, 422, 423, 424, 425, 426, 0, 427, 428, 0, + 0, 429, 430, 431, 432, 433, 0, 434, 435, 436, + 437, 438, 439, 440, 441, 0, 0, 442, 443, 444, + 445, 446, 0, 0, 448, 449, 450, 451, 452, 453, + 454, 0, 455, 0, 457, 458, 459, 460, 461, 0, + 0, 462, 0, 0, 463, 464, 465, 466, 467, 468, + 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, + 479, 480, 481, 482, 483, 507, 0, 508, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 94, 95, 96, 97, 98, 99, 100, + 101, 0, 102, 103, 104, 0, 0, 0, 0, 0, + 0, 0, 105, 106, 0, 107, 108, 109, 0, 111, + 112, 113, 114, 115, 0, 117, 118, 0, 119, 120, + 121, 122, 123, 124, 0, 0, 125, 126, 127, 128, + 129, 0, 130, 131, 132, 133, 134, 0, 0, 0, + 136, 137, 138, 139, 140, 141, 0, 143, 144, 145, + 0, 146, 147, 148, 149, 150, 151, 0, 0, 153, + 154, 155, 0, 0, 0, 0, 0, 0, 0, 161, + 162, 163, 164, 165, 166, 167, 168, 169, 170, 0, + 171, 0, 172, 173, 174, 175, 176, 177, 0, 178, + 179, 180, 181, 182, 0, 0, 183, 184, 185, 186, + 187, 0, 188, 189, 190, 0, 191, 192, 193, 0, + 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, + 204, 0, 205, 0, 206, 207, 208, 209, 0, 210, + 0, 211, 0, 0, 0, 214, 215, 510, 0, 1807, + 0, 219, 0, 220, 221, 222, 0, 223, 224, 225, + 226, 227, 228, 229, 0, 231, 232, 233, 234, 0, + 235, 236, 237, 238, 239, 240, 0, 241, 0, 243, + 244, 245, 246, 247, 248, 249, 250, 0, 251, 0, + 252, 0, 0, 255, 0, 257, 258, 259, 260, 261, + 262, 0, 0, 263, 0, 265, 0, 0, 267, 268, + 1808, 0, 0, 270, 271, 272, 273, 274, 511, 276, + 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, + 287, 288, 289, 290, 291, 292, 293, 294, 0, 296, + 297, 298, 299, 300, 0, 301, 302, 0, 304, 0, + 305, 306, 307, 308, 309, 310, 0, 311, 312, 0, + 0, 313, 314, 315, 0, 0, 316, 317, 0, 319, + 0, 321, 322, 323, 324, 325, 326, 327, 328, 329, + 330, 331, 0, 332, 333, 334, 335, 336, 337, 338, + 339, 340, 0, 341, 342, 343, 344, 345, 346, 0, + 347, 348, 349, 350, 351, 352, 353, 354, 0, 355, + 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, + 366, 367, 0, 368, 369, 0, 371, 372, 373, 374, + 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, + 385, 0, 386, 387, 388, 389, 390, 0, 392, 393, + 394, 395, 396, 0, 398, 399, 400, 401, 0, 402, + 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, + 413, 513, 415, 416, 417, 0, 418, 419, 1809, 420, + 0, 422, 1810, 424, 1811, 426, 0, 427, 428, 0, + 0, 429, 430, 431, 432, 433, 0, 434, 435, 436, + 437, 438, 439, 440, 441, 0, 0, 442, 443, 1812, + 445, 446, 0, 0, 448, 449, 450, 451, 452, 453, + 454, 0, 455, 0, 457, 458, 459, 460, 461, 0, + 0, 462, 0, 0, 463, 464, 465, 466, 467, 468, + 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, + 479, 480, 481, 482, 483, 507, 2776, 0, 0, 0, + 0, 2777, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 94, 95, 96, 97, 98, 99, 100, + 101, 0, 102, 103, 104, 0, 0, 0, 0, 0, + 0, 0, 105, 106, 0, 107, 108, 109, 0, 111, + 112, 113, 114, 115, 0, 117, 118, 0, 119, 120, + 121, 122, 123, 124, 0, 0, 125, 126, 127, 128, + 129, 0, 130, 131, 132, 133, 134, 0, 0, 0, + 136, 137, 138, 139, 140, 141, 0, 143, 144, 145, + 0, 146, 147, 148, 149, 150, 151, 0, 0, 153, + 154, 155, 0, 0, 0, 0, 0, 0, 0, 161, + 162, 163, 164, 165, 166, 167, 168, 169, 170, 0, + 171, 0, 172, 173, 174, 175, 176, 177, 0, 178, + 179, 180, 181, 182, 0, 0, 183, 184, 185, 186, + 187, 0, 188, 189, 190, 0, 191, 192, 193, 0, + 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, + 204, 0, 205, 0, 206, 207, 208, 209, 0, 210, + 0, 211, 0, 0, 0, 214, 215, 510, 0, 218, + 0, 219, 0, 220, 221, 222, 0, 223, 224, 225, + 226, 227, 228, 229, 0, 231, 232, 233, 234, 0, + 235, 236, 237, 238, 239, 240, 0, 241, 0, 243, + 244, 245, 246, 247, 248, 249, 250, 0, 251, 0, + 252, 0, 0, 255, 0, 257, 258, 259, 260, 261, + 262, 0, 0, 263, 0, 265, 0, 0, 267, 268, + 269, 0, 0, 270, 271, 272, 273, 274, 511, 276, + 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, + 287, 288, 289, 290, 291, 292, 293, 294, 0, 296, + 297, 298, 299, 300, 0, 301, 302, 0, 304, 0, + 305, 306, 307, 308, 309, 310, 0, 311, 312, 0, + 0, 313, 314, 315, 0, 0, 316, 317, 0, 319, + 0, 321, 322, 323, 324, 325, 326, 327, 328, 329, + 330, 331, 0, 332, 333, 334, 335, 336, 337, 338, + 339, 340, 0, 341, 342, 343, 344, 345, 346, 0, + 347, 348, 349, 350, 351, 352, 353, 354, 0, 355, + 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, + 366, 367, 0, 368, 369, 0, 371, 372, 373, 374, + 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, + 385, 0, 386, 387, 388, 389, 390, 0, 392, 393, + 394, 395, 396, 0, 398, 399, 400, 401, 0, 402, + 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, + 413, 513, 415, 416, 417, 0, 418, 419, 0, 420, + 0, 422, 423, 424, 425, 426, 0, 427, 428, 0, + 0, 429, 430, 431, 432, 433, 0, 434, 435, 436, + 437, 438, 439, 440, 441, 0, 0, 442, 443, 444, + 445, 446, 0, 0, 448, 449, 450, 451, 452, 453, + 454, 0, 455, 0, 457, 458, 459, 460, 461, 0, + 0, 462, 0, 0, 463, 464, 465, 466, 467, 468, + 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, + 479, 480, 481, 482, 483, 507, 0, 508, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 94, 95, 96, 97, 98, 99, 100, + 101, 0, 102, 103, 104, 0, 0, 0, 0, 0, + 0, 0, 105, 106, 0, 107, 108, 109, 0, 111, + 112, 113, 114, 115, 0, 117, 118, 0, 119, 120, + 121, 122, 123, 124, 0, 0, 125, 126, 127, 128, + 129, 0, 130, 131, 132, 133, 134, 0, 0, 0, + 136, 137, 138, 139, 140, 141, 0, 143, 144, 145, + 0, 146, 147, 148, 149, 150, 151, 0, 0, 153, + 154, 155, 0, 0, 0, 0, 0, 0, 0, 161, + 162, 163, 164, 165, 166, 167, 168, 169, 170, 0, + 171, 0, 172, 173, 174, 175, 176, 177, 0, 178, + 179, 180, 181, 182, 0, 0, 183, 184, 185, 186, + 187, 0, 188, 189, 190, 0, 191, 192, 193, 0, + 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, + 204, 0, 205, 0, 206, 207, 208, 209, 0, 210, + 0, 211, 0, 0, 0, 214, 215, 510, 0, 218, + 0, 219, 0, 220, 221, 222, 0, 223, 224, 225, + 226, 227, 228, 229, 0, 231, 232, 233, 234, 0, + 235, 236, 237, 238, 239, 240, 0, 241, 0, 243, + 244, 245, 246, 247, 248, 249, 250, 0, 251, 0, + 252, 0, 0, 255, 0, 257, 258, 259, 260, 261, + 262, 0, 0, 263, 0, 265, 0, 0, 267, 268, + 269, 0, 0, 270, 271, 272, 273, 274, 511, 276, + 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, + 287, 288, 289, 290, 291, 292, 293, 294, 0, 296, + 297, 298, 299, 300, 0, 301, 302, 0, 304, 0, + 305, 306, 307, 308, 309, 310, 0, 311, 312, 0, + 0, 313, 314, 315, 0, 0, 316, 317, 0, 319, + 0, 321, 322, 323, 324, 325, 326, 327, 328, 329, + 330, 331, 0, 332, 333, 334, 335, 336, 337, 338, + 339, 340, 0, 341, 342, 343, 344, 345, 346, 0, + 347, 348, 349, 350, 351, 352, 353, 354, 0, 355, + 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, + 366, 367, 0, 368, 369, 0, 371, 372, 373, 374, + 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, + 385, 0, 386, 387, 388, 389, 390, 0, 392, 393, + 394, 395, 396, 0, 398, 399, 400, 401, 0, 402, + 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, + 413, 513, 415, 416, 417, 0, 418, 419, 0, 420, + 0, 422, 423, 424, 425, 426, 0, 427, 428, 0, + 0, 429, 430, 431, 432, 433, 0, 434, 435, 436, + 437, 438, 439, 440, 441, 0, 0, 442, 443, 444, + 445, 446, 0, 0, 448, 449, 450, 451, 452, 453, + 454, 0, 455, 0, 457, 458, 459, 460, 461, 0, + 0, 462, 0, 0, 463, 464, 465, 466, 467, 468, + 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, + 479, 480, 481, 482, 483, 507, 0, 583, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 94, 95, 96, 97, 98, 99, 100, + 101, 0, 102, 103, 104, 0, 0, 0, 0, 0, + 0, 0, 105, 106, 0, 107, 108, 109, 0, 111, + 112, 113, 114, 115, 0, 117, 118, 0, 119, 120, + 121, 122, 123, 124, 0, 0, 125, 126, 127, 128, + 129, 0, 130, 131, 132, 133, 134, 0, 0, 0, + 136, 137, 138, 139, 140, 141, 0, 143, 144, 145, + 0, 146, 147, 148, 149, 150, 151, 0, 0, 153, + 154, 155, 0, 0, 0, 0, 0, 0, 0, 161, + 162, 163, 164, 165, 166, 167, 168, 169, 170, 0, + 171, 0, 172, 173, 174, 175, 176, 177, 0, 178, + 179, 180, 181, 182, 0, 0, 183, 184, 185, 186, + 187, 0, 188, 189, 190, 0, 191, 192, 193, 0, + 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, + 204, 0, 205, 0, 206, 207, 208, 209, 0, 210, + 0, 211, 0, 0, 0, 214, 215, 510, 0, 218, + 0, 219, 0, 220, 221, 222, 0, 223, 224, 225, + 226, 227, 228, 229, 0, 231, 232, 233, 234, 0, + 235, 236, 237, 238, 239, 240, 0, 241, 0, 243, + 244, 245, 246, 247, 248, 249, 250, 0, 251, 0, + 252, 0, 0, 255, 0, 257, 258, 259, 260, 261, + 262, 0, 0, 263, 0, 265, 0, 0, 267, 268, + 269, 0, 0, 270, 271, 272, 273, 274, 511, 276, + 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, + 287, 288, 289, 290, 291, 292, 293, 294, 0, 296, + 297, 298, 299, 300, 0, 301, 302, 0, 304, 0, + 305, 306, 307, 308, 309, 310, 0, 311, 312, 0, + 0, 313, 314, 315, 0, 0, 316, 317, 0, 319, + 0, 321, 322, 323, 324, 325, 326, 327, 328, 329, + 330, 331, 0, 332, 333, 334, 335, 336, 337, 338, + 339, 340, 0, 341, 342, 343, 344, 345, 346, 0, + 347, 348, 349, 350, 351, 352, 353, 354, 0, 355, + 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, + 366, 367, 0, 368, 369, 0, 371, 372, 373, 374, + 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, + 385, 0, 386, 387, 388, 389, 390, 0, 392, 393, + 394, 395, 396, 0, 398, 399, 400, 401, 0, 402, + 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, + 413, 513, 415, 416, 417, 0, 418, 419, 0, 420, + 0, 422, 423, 424, 425, 426, 0, 427, 428, 0, + 0, 429, 430, 431, 432, 433, 0, 434, 435, 436, + 437, 438, 439, 440, 441, 0, 0, 442, 443, 444, + 445, 446, 0, 0, 448, 449, 450, 451, 452, 453, + 454, 0, 455, 0, 457, 458, 459, 460, 461, 0, + 0, 462, 0, 0, 463, 464, 465, 466, 467, 468, + 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, + 479, 480, 481, 482, 483, 507, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 94, 95, 96, 97, 98, 99, 100, + 101, 590, 102, 103, 104, 0, 0, 0, 0, 0, + 0, 0, 105, 106, 0, 107, 108, 109, 0, 111, + 112, 113, 114, 115, 0, 117, 118, 0, 119, 120, + 121, 122, 123, 124, 0, 0, 125, 126, 127, 128, + 129, 0, 130, 131, 132, 133, 134, 0, 0, 0, + 136, 137, 138, 139, 140, 141, 0, 143, 144, 145, + 0, 146, 147, 148, 149, 150, 151, 0, 0, 153, + 154, 155, 0, 0, 0, 0, 0, 0, 0, 161, + 162, 163, 164, 165, 166, 167, 168, 169, 170, 0, + 171, 0, 172, 173, 174, 175, 176, 177, 0, 178, + 179, 180, 181, 182, 0, 0, 183, 184, 185, 186, + 187, 0, 188, 189, 190, 0, 191, 192, 193, 0, + 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, + 204, 0, 205, 0, 206, 207, 208, 209, 0, 210, + 0, 211, 0, 0, 0, 214, 215, 510, 0, 218, + 0, 219, 0, 220, 221, 222, 0, 223, 224, 225, + 226, 227, 228, 229, 0, 231, 232, 233, 234, 0, + 235, 236, 237, 238, 239, 240, 0, 241, 0, 243, + 244, 245, 246, 247, 248, 249, 250, 0, 251, 0, + 252, 0, 0, 255, 0, 257, 258, 259, 260, 261, + 262, 0, 0, 263, 0, 265, 0, 0, 267, 268, + 269, 0, 0, 270, 271, 272, 273, 274, 511, 276, + 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, + 287, 288, 289, 290, 291, 292, 293, 294, 0, 296, + 297, 298, 299, 300, 0, 301, 302, 0, 304, 0, + 305, 306, 307, 308, 309, 310, 0, 311, 312, 0, + 0, 313, 314, 315, 0, 0, 316, 317, 0, 319, + 0, 321, 322, 323, 324, 325, 326, 327, 328, 329, + 330, 331, 0, 332, 333, 334, 335, 336, 337, 338, + 339, 340, 0, 341, 342, 343, 344, 345, 346, 0, + 347, 348, 349, 350, 351, 352, 353, 354, 0, 355, + 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, + 366, 367, 0, 368, 369, 0, 371, 372, 373, 374, + 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, + 385, 0, 386, 387, 388, 389, 390, 0, 392, 393, + 394, 395, 396, 0, 398, 399, 400, 401, 0, 402, + 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, + 413, 513, 415, 416, 417, 0, 418, 419, 0, 420, + 0, 422, 423, 424, 425, 426, 0, 591, 428, 0, + 0, 592, 430, 431, 432, 433, 0, 434, 435, 436, + 437, 438, 439, 440, 441, 0, 0, 442, 443, 444, + 445, 446, 0, 0, 448, 449, 450, 451, 452, 453, + 454, 0, 455, 0, 457, 458, 459, 460, 461, 0, + 0, 462, 0, 0, 463, 464, 465, 466, 467, 468, + 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, + 479, 480, 481, 482, 483, 507, 0, 508, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 94, 95, 96, 97, 98, 99, 100, + 101, 0, 102, 103, 104, 0, 0, 0, 0, 0, + 0, 0, 105, 106, 0, 107, 108, 109, 0, 111, + 112, 113, 114, 115, 0, 117, 118, 0, 119, 120, + 121, 122, 123, 124, 0, 0, 125, 126, 127, 128, + 129, 0, 130, 131, 132, 133, 134, 0, 0, 0, + 136, 137, 138, 139, 140, 141, 0, 143, 144, 145, + 0, 146, 147, 148, 149, 150, 151, 0, 0, 153, + 154, 155, 0, 0, 0, 0, 0, 0, 0, 161, + 162, 163, 164, 165, 166, 167, 168, 169, 170, 0, + 171, 0, 172, 173, 174, 175, 176, 177, 0, 178, + 179, 180, 181, 182, 0, 0, 183, 184, 185, 186, + 187, 0, 188, 189, 190, 0, 191, 192, 193, 0, + 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, + 204, 0, 205, 0, 206, 207, 208, 209, 0, 210, + 0, 211, 0, 0, 0, 214, 215, 510, 0, 218, + 0, 219, 0, 220, 221, 222, 0, 223, 224, 225, + 226, 227, 228, 229, 0, 231, 232, 233, 234, 0, + 235, 236, 237, 238, 239, 240, 0, 241, 0, 243, + 244, 245, 246, 247, 248, 249, 250, 0, 251, 0, + 252, 0, 0, 255, 0, 257, 258, 259, 260, 261, + 262, 0, 0, 263, 0, 265, 0, 0, 267, 268, + 269, 0, 0, 270, 271, 272, 273, 274, 511, 276, + 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, + 287, 288, 289, 290, 291, 292, 293, 294, 0, 296, + 297, 298, 299, 300, 0, 301, 302, 0, 304, 0, + 305, 306, 307, 308, 309, 310, 0, 311, 312, 0, + 0, 313, 314, 315, 0, 0, 316, 317, 0, 319, + 0, 321, 322, 323, 324, 325, 326, 327, 328, 329, + 330, 331, 0, 332, 333, 334, 335, 336, 337, 338, + 339, 340, 0, 341, 342, 343, 344, 345, 346, 0, + 347, 348, 349, 350, 351, 352, 624, 354, 0, 355, + 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, + 366, 367, 0, 368, 369, 0, 371, 372, 373, 374, + 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, + 385, 0, 386, 387, 388, 389, 390, 0, 392, 393, + 394, 395, 396, 0, 398, 399, 400, 401, 0, 402, + 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, + 413, 513, 415, 416, 417, 0, 418, 419, 0, 420, + 0, 422, 423, 424, 425, 426, 0, 427, 428, 0, + 0, 429, 430, 431, 432, 433, 0, 434, 435, 436, + 437, 438, 439, 440, 441, 0, 0, 442, 443, 444, + 445, 446, 0, 0, 448, 449, 450, 451, 452, 453, + 454, 0, 455, 0, 457, 458, 459, 460, 461, 0, + 0, 462, 0, 0, 463, 464, 465, 466, 467, 468, + 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, + 479, 480, 481, 482, 483, 507, 0, 508, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 94, 95, 96, 97, 98, 99, 100, + 101, 0, 102, 103, 104, 0, 0, 0, 0, 0, + 0, 0, 105, 106, 0, 107, 108, 109, 0, 111, + 112, 113, 114, 115, 0, 117, 118, 0, 119, 120, + 121, 122, 123, 124, 0, 0, 125, 126, 127, 128, + 129, 0, 130, 131, 132, 133, 134, 0, 0, 0, + 136, 137, 138, 139, 140, 141, 0, 143, 144, 145, + 0, 146, 147, 148, 149, 150, 151, 0, 0, 153, + 154, 155, 0, 0, 0, 0, 0, 0, 0, 161, + 162, 163, 164, 165, 166, 167, 168, 169, 170, 0, + 171, 0, 172, 173, 174, 175, 176, 177, 0, 178, + 179, 180, 181, 182, 0, 0, 183, 184, 185, 186, + 187, 0, 188, 189, 190, 0, 191, 192, 193, 0, + 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, + 204, 0, 205, 0, 206, 207, 208, 209, 0, 210, + 0, 211, 0, 0, 0, 214, 215, 510, 0, 218, + 0, 219, 0, 220, 221, 222, 0, 223, 224, 225, + 226, 227, 653, 229, 0, 231, 232, 233, 234, 0, + 235, 236, 237, 238, 239, 240, 0, 241, 0, 243, + 244, 245, 246, 247, 248, 249, 250, 0, 251, 0, + 252, 0, 0, 255, 0, 257, 258, 259, 260, 261, + 262, 0, 0, 263, 0, 265, 0, 0, 267, 268, + 269, 0, 0, 270, 271, 272, 273, 274, 511, 276, + 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, + 287, 288, 289, 290, 291, 292, 293, 294, 0, 296, + 297, 298, 299, 300, 0, 301, 302, 0, 304, 0, + 305, 306, 307, 308, 309, 310, 0, 311, 312, 0, + 0, 313, 314, 315, 0, 0, 316, 317, 0, 319, + 0, 321, 322, 323, 324, 325, 326, 327, 328, 329, + 330, 331, 0, 332, 333, 334, 335, 336, 337, 338, + 339, 340, 0, 341, 342, 343, 344, 345, 346, 0, + 347, 348, 349, 350, 351, 352, 353, 354, 0, 355, + 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, + 366, 367, 0, 368, 369, 0, 371, 372, 373, 374, + 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, + 385, 0, 386, 387, 388, 389, 390, 0, 392, 393, + 394, 395, 396, 0, 398, 399, 400, 401, 0, 402, + 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, + 413, 513, 415, 416, 417, 0, 418, 419, 0, 420, + 0, 422, 423, 424, 425, 426, 0, 427, 428, 0, + 0, 429, 430, 431, 432, 433, 0, 434, 435, 436, + 437, 438, 439, 440, 441, 0, 0, 442, 443, 444, + 445, 446, 0, 0, 448, 449, 450, 451, 452, 453, + 454, 0, 455, 0, 457, 458, 459, 460, 461, 0, + 0, 462, 0, 0, 463, 464, 465, 466, 467, 468, + 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, + 479, 480, 481, 482, 483, 507, 0, 508, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 94, 95, 96, 97, 98, 99, 100, + 101, 0, 102, 103, 104, 0, 0, 0, 0, 0, + 0, 0, 105, 106, 0, 107, 108, 109, 0, 111, + 112, 113, 114, 115, 0, 117, 118, 0, 119, 120, + 121, 122, 123, 124, 0, 0, 125, 126, 127, 128, + 129, 0, 130, 131, 132, 133, 134, 0, 0, 0, + 136, 137, 138, 139, 140, 141, 0, 143, 144, 145, + 0, 146, 147, 148, 149, 150, 151, 0, 0, 153, + 154, 155, 0, 0, 0, 0, 0, 0, 0, 161, + 162, 163, 164, 165, 166, 167, 168, 169, 170, 0, + 171, 0, 172, 173, 174, 175, 176, 177, 0, 178, + 179, 180, 181, 182, 0, 0, 183, 184, 185, 186, + 187, 0, 188, 189, 190, 0, 191, 192, 193, 0, + 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, + 204, 0, 205, 0, 206, 207, 208, 209, 0, 210, + 0, 211, 0, 0, 0, 214, 215, 510, 0, 218, + 0, 219, 0, 220, 221, 222, 0, 223, 224, 225, + 226, 227, 656, 229, 0, 231, 232, 233, 234, 0, + 235, 236, 237, 238, 239, 240, 0, 241, 0, 243, + 244, 245, 246, 247, 248, 249, 250, 0, 251, 0, + 252, 0, 0, 255, 0, 257, 258, 259, 260, 261, + 262, 0, 0, 263, 0, 265, 0, 0, 267, 268, + 269, 0, 0, 270, 271, 272, 273, 274, 511, 276, + 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, + 287, 288, 289, 290, 291, 292, 293, 294, 0, 296, + 297, 298, 299, 300, 0, 301, 302, 0, 304, 0, + 305, 306, 307, 308, 309, 310, 0, 311, 312, 0, + 0, 313, 314, 315, 0, 0, 316, 317, 0, 319, + 0, 321, 322, 323, 324, 325, 326, 327, 328, 329, + 330, 331, 0, 332, 333, 334, 335, 336, 337, 338, + 339, 340, 0, 341, 342, 343, 344, 345, 346, 0, + 347, 348, 349, 350, 351, 352, 353, 354, 0, 355, + 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, + 366, 367, 0, 368, 369, 0, 371, 372, 373, 374, + 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, + 385, 0, 386, 387, 388, 389, 390, 0, 392, 393, + 394, 395, 396, 0, 398, 399, 400, 401, 0, 402, + 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, + 413, 513, 415, 416, 417, 0, 418, 419, 0, 420, + 0, 422, 423, 424, 425, 426, 0, 427, 428, 0, + 0, 429, 430, 431, 432, 433, 0, 434, 435, 436, + 437, 438, 439, 440, 441, 0, 0, 442, 443, 444, + 445, 446, 0, 0, 448, 449, 450, 451, 452, 453, + 454, 0, 455, 0, 457, 458, 459, 460, 461, 0, + 0, 462, 0, 0, 463, 464, 465, 466, 467, 468, + 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, + 479, 480, 481, 482, 483, 507, 0, 508, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 94, 95, 96, 97, 98, 99, 100, + 101, 0, 102, 103, 104, 0, 0, 0, 0, 0, + 0, 0, 105, 106, 0, 107, 108, 109, 0, 111, + 112, 113, 114, 115, 0, 117, 118, 0, 119, 120, + 121, 122, 123, 124, 0, 0, 125, 126, 127, 128, + 129, 0, 130, 131, 132, 133, 134, 0, 0, 0, + 136, 137, 138, 139, 140, 141, 0, 143, 144, 145, + 0, 146, 147, 148, 149, 150, 151, 0, 0, 153, + 154, 155, 0, 0, 0, 0, 0, 0, 0, 161, + 162, 163, 164, 165, 166, 167, 168, 169, 170, 0, + 171, 0, 172, 173, 174, 175, 176, 177, 0, 178, + 179, 180, 181, 182, 0, 0, 183, 184, 185, 186, + 187, 0, 188, 189, 190, 0, 191, 192, 193, 0, + 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, + 204, 0, 205, 0, 206, 207, 208, 209, 0, 210, + 0, 211, 0, 0, 0, 214, 215, 510, 0, 218, + 0, 219, 0, 220, 221, 222, 0, 223, 224, 225, + 226, 227, 660, 229, 0, 231, 232, 233, 234, 0, + 235, 236, 237, 238, 239, 240, 0, 241, 0, 243, + 244, 245, 246, 247, 248, 249, 250, 0, 251, 0, + 252, 0, 0, 255, 0, 257, 258, 259, 260, 261, + 262, 0, 0, 263, 0, 265, 0, 0, 267, 268, + 269, 0, 0, 270, 271, 272, 273, 274, 511, 276, + 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, + 287, 288, 289, 290, 291, 292, 293, 294, 0, 296, + 297, 298, 299, 300, 0, 301, 302, 0, 304, 0, + 305, 306, 307, 308, 309, 310, 0, 311, 312, 0, + 0, 313, 314, 315, 0, 0, 316, 317, 0, 319, + 0, 321, 322, 323, 324, 325, 326, 327, 328, 329, + 330, 331, 0, 332, 333, 334, 335, 336, 337, 338, + 339, 340, 0, 341, 342, 343, 344, 345, 346, 0, + 347, 348, 349, 350, 351, 352, 353, 354, 0, 355, + 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, + 366, 367, 0, 368, 369, 0, 371, 372, 373, 374, + 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, + 385, 0, 386, 387, 388, 389, 390, 0, 392, 393, + 394, 395, 396, 0, 398, 399, 400, 401, 0, 402, + 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, + 413, 513, 415, 416, 417, 0, 418, 419, 0, 420, + 0, 422, 423, 424, 425, 426, 0, 427, 428, 0, + 0, 429, 430, 431, 432, 433, 0, 434, 435, 436, + 437, 438, 439, 440, 441, 0, 0, 442, 443, 444, + 445, 446, 0, 0, 448, 449, 450, 451, 452, 453, + 454, 0, 455, 0, 457, 458, 459, 460, 461, 0, + 0, 462, 0, 0, 463, 464, 465, 466, 467, 468, + 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, + 479, 480, 481, 482, 483, 699, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 94, 95, 96, 97, 98, 99, 100, + 101, 0, 102, 103, 104, 0, 0, 0, 0, 0, + 0, 0, 105, 106, 0, 107, 108, 109, 700, 111, + 112, 113, 0, 701, 702, 703, 704, 0, 119, 120, + 121, 122, 123, 124, 0, 0, 125, 126, 705, 706, + 129, 0, 130, 131, 132, 133, 0, 0, 707, 0, + 136, 137, 138, 139, 140, 141, 708, 143, 144, 145, + 0, 146, 147, 148, 149, 150, 151, 0, 709, 153, + 154, 155, 710, 711, 712, 713, 0, 0, 714, 161, + 162, 163, 164, 165, 166, 167, 715, 716, 170, 0, + 171, 0, 172, 173, 174, 175, 176, 177, 0, 178, + 179, 180, 181, 182, 0, 0, 183, 184, 717, 186, + 187, 0, 188, 189, 190, 0, 191, 192, 193, 0, + 194, 195, 196, 197, 0, 199, 200, 201, 202, 203, + 0, 0, 205, 0, 206, 207, 718, 209, 0, 210, + 0, 211, 719, 0, 720, 214, 215, 0, 721, 218, + 0, 219, 0, 0, 0, 222, 0, 223, 224, 225, + 226, 227, 722, 229, 723, 231, 232, 233, 234, 0, + 235, 236, 237, 238, 239, 240, 0, 241, 724, 0, + 244, 245, 246, 247, 248, 725, 726, 0, 727, 0, + 252, 728, 729, 255, 730, 257, 258, 259, 260, 261, + 262, 0, 0, 263, 731, 265, 732, 0, 267, 268, + 269, 0, 0, 270, 271, 272, 273, 274, 733, 276, + 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, + 287, 288, 289, 290, 291, 292, 293, 734, 735, 736, + 297, 298, 299, 0, 0, 301, 302, 737, 304, 0, + 0, 306, 738, 308, 309, 310, 0, 311, 312, 0, + 0, 313, 314, 315, 0, 0, 316, 0, 739, 319, + 740, 0, 322, 323, 324, 325, 326, 327, 328, 329, + 330, 331, 0, 332, 333, 0, 335, 336, 0, 338, + 339, 340, 0, 341, 342, 343, 344, 345, 346, 0, + 347, 348, 349, 741, 351, 352, 353, 354, 0, 355, + 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, + 366, 367, 0, 368, 369, 742, 371, 372, 373, 743, + 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, + 385, 0, 386, 387, 388, 389, 390, 744, 392, 745, + 394, 395, 396, 746, 398, 399, 747, 401, 0, 402, + 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, + 413, 748, 415, 0, 417, 0, 418, 419, 0, 420, + 749, 422, 423, 424, 425, 426, 0, 750, 751, 0, + 0, 429, 430, 0, 432, 0, 0, 434, 435, 752, + 437, 438, 439, 440, 441, 0, 0, 442, 443, 444, + 445, 446, 753, 0, 448, 449, 450, 451, 452, 0, + 754, 0, 455, 755, 457, 458, 459, 460, 461, 0, + 0, 462, 0, 0, 463, 464, 465, 466, 467, 468, + 507, 0, 508, 0, 0, 0, 0, 0, 0, 0, + 0, 480, 481, 482, 483, 0, 0, 0, 94, 95, + 96, 97, 98, 99, 100, 101, 0, 102, 103, 104, + 0, 0, 0, 0, 0, 0, 0, 105, 106, 0, + 107, 108, 109, 0, 111, 112, 113, 114, 115, 0, + 117, 118, 0, 119, 120, 121, 122, 123, 124, 0, + 0, 125, 126, 127, 128, 129, 0, 130, 131, 132, + 133, 134, 0, 0, 0, 136, 137, 138, 139, 140, + 141, 0, 143, 144, 145, 0, 146, 147, 148, 149, + 150, 151, 0, 0, 153, 154, 155, 0, 0, 0, + 0, 0, 0, 0, 161, 162, 163, 164, 165, 166, + 167, 168, 169, 170, 0, 171, 0, 172, 173, 174, + 175, 176, 177, 0, 178, 179, 180, 181, 182, 0, + 0, 183, 184, 185, 186, 187, 0, 188, 189, 190, + 0, 191, 192, 193, 0, 194, 195, 196, 197, 198, + 199, 200, 201, 202, 203, 204, 0, 205, 0, 206, + 207, 208, 209, 0, 210, 0, 211, 0, 0, 0, + 214, 215, 510, 0, 218, 0, 219, 0, 220, 221, + 222, 0, 223, 224, 225, 226, 227, 777, 229, 0, + 231, 232, 233, 234, 0, 235, 236, 237, 238, 239, + 240, 0, 241, 0, 243, 244, 245, 246, 247, 248, + 249, 250, 0, 251, 0, 252, 0, 0, 255, 0, + 257, 258, 259, 260, 261, 262, 0, 0, 263, 0, + 265, 0, 0, 267, 268, 269, 0, 0, 270, 271, + 272, 273, 274, 511, 276, 277, 278, 279, 280, 281, + 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, + 292, 293, 294, 0, 296, 297, 298, 299, 300, 0, + 301, 302, 0, 304, 0, 305, 306, 307, 308, 309, + 310, 0, 311, 312, 0, 0, 313, 314, 315, 0, + 0, 316, 317, 0, 319, 0, 321, 322, 323, 324, + 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, + 334, 335, 336, 337, 338, 339, 340, 0, 341, 342, + 343, 344, 345, 346, 0, 347, 348, 349, 350, 351, + 352, 353, 354, 0, 355, 356, 357, 358, 359, 360, + 361, 362, 363, 364, 365, 366, 367, 0, 368, 369, + 0, 371, 372, 373, 374, 375, 376, 377, 378, 379, + 380, 381, 382, 383, 384, 385, 0, 386, 387, 388, + 389, 390, 0, 392, 393, 394, 395, 396, 0, 398, + 399, 400, 401, 0, 402, 403, 404, 405, 406, 407, + 408, 409, 410, 411, 412, 413, 513, 415, 416, 417, + 0, 418, 419, 0, 420, 0, 422, 423, 424, 425, + 426, 0, 427, 428, 0, 0, 429, 430, 431, 432, + 433, 0, 434, 435, 436, 437, 438, 439, 440, 441, + 0, 0, 442, 443, 444, 445, 446, 0, 0, 448, + 449, 450, 451, 452, 453, 454, 0, 455, 0, 457, + 458, 459, 460, 461, 0, 0, 462, 0, 0, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, - 474, 475, 476, 477, 478, 479, 480, 481, 482, 3, - -1, 5, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 500, 21, 22, 23, - 24, 25, 26, 27, 28, -1, 30, 31, 32, -1, - -1, -1, -1, -1, -1, -1, 40, 41, -1, 43, - 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, - 54, -1, 56, 57, 58, 59, 60, 61, -1, 63, - 64, 65, 66, 67, 68, -1, 70, 71, 72, 73, - 74, -1, 76, -1, 78, 79, 80, 81, 82, 83, - 84, 85, 86, 87, -1, 89, 90, 91, 92, 93, - 94, -1, 96, 97, 98, 99, 100, 101, 102, 103, - 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, - 114, 115, 116, -1, 118, -1, 120, 121, 122, 123, - 124, 125, -1, 127, 128, 129, 130, 131, -1, -1, - 134, 135, 136, 137, 138, -1, 140, 141, 142, -1, - 144, 145, 146, -1, 148, 149, 150, 151, 152, 153, - 154, 155, 156, 157, 158, -1, 160, -1, 162, 163, - 164, 165, -1, 167, -1, 169, 170, -1, 172, 173, - 174, 175, 176, 177, -1, 179, -1, 181, 182, 183, - -1, 185, 186, 187, 188, 189, 190, 191, 192, 193, - 194, 195, 196, -1, 198, 199, 200, 201, 202, 203, - -1, 205, 206, 207, 208, 209, 210, 211, 212, 213, - 214, -1, 216, -1, 218, 219, 220, 221, 222, 223, - 224, 225, 226, 227, 228, 229, -1, 231, 232, 233, - 234, -1, 236, 237, 238, 239, 240, 241, 242, 243, - 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, - 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, - 264, 265, 266, 267, 268, 269, 270, 271, -1, 273, - 274, 275, 276, -1, 278, 279, 280, 281, 282, 283, - -1, 285, 286, -1, 288, 289, 290, 291, -1, -1, - 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, - 304, 305, 306, 307, 308, 309, -1, 311, 312, 313, - 314, 315, 316, 317, 318, 319, -1, 321, 322, 323, - 324, 325, 326, -1, 328, 329, 330, 331, 332, 333, - 334, 335, -1, 337, 338, 339, 340, 341, 342, 343, - 344, 345, 346, 347, 348, 349, -1, 351, 352, 353, - 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, - 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, - 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, - 384, 385, -1, 387, 388, 389, 390, 391, 392, 393, - 394, 395, 396, 397, 398, 399, 400, 401, 402, -1, - 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, - -1, 415, 416, -1, -1, 419, 420, 421, 422, 423, - -1, 425, 426, 427, 428, 429, 430, 431, 432, -1, - -1, 435, 436, 437, 438, 439, 440, -1, 442, 443, - 444, 445, 446, 447, 448, -1, 450, 451, 452, 453, - 454, 455, 456, -1, -1, 459, -1, 461, 462, 463, + 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, + 507, 0, 508, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 94, 95, + 96, 97, 98, 99, 100, 101, 0, 102, 103, 104, + 0, 0, 0, 0, 0, 0, 0, 105, 106, 0, + 107, 108, 109, 0, 111, 112, 113, 114, 115, 0, + 117, 118, 0, 119, 120, 121, 122, 123, 124, 0, + 0, 125, 126, 127, 128, 129, 0, 130, 131, 132, + 133, 134, 0, 0, 0, 136, 137, 138, 139, 140, + 141, 0, 143, 144, 145, 0, 146, 147, 148, 149, + 150, 151, 0, 0, 153, 154, 155, 0, 0, 0, + 0, 0, 0, 0, 161, 162, 163, 164, 165, 166, + 167, 168, 169, 170, 0, 171, 0, 172, 173, 174, + 175, 176, 177, 0, 178, 179, 180, 181, 182, 0, + 0, 183, 184, 185, 186, 187, 0, 188, 189, 190, + 0, 191, 192, 193, 0, 194, 195, 196, 197, 198, + 199, 200, 201, 202, 203, 204, 0, 205, 0, 206, + 207, 208, 209, 0, 210, 0, 211, 0, 0, 0, + 214, 215, 510, 0, 218, 0, 219, 0, 220, 221, + 222, 0, 223, 224, 225, 226, 227, 780, 229, 0, + 231, 232, 233, 234, 0, 235, 236, 237, 238, 239, + 240, 0, 241, 0, 243, 244, 245, 246, 247, 248, + 249, 250, 0, 251, 0, 252, 0, 0, 255, 0, + 257, 258, 259, 260, 261, 262, 0, 0, 263, 0, + 265, 0, 0, 267, 268, 269, 0, 0, 270, 271, + 272, 273, 274, 511, 276, 277, 278, 279, 280, 281, + 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, + 292, 293, 294, 0, 296, 297, 298, 299, 300, 0, + 301, 302, 0, 304, 0, 305, 306, 307, 308, 309, + 310, 0, 311, 312, 0, 0, 313, 314, 315, 0, + 0, 316, 317, 0, 319, 0, 321, 322, 323, 324, + 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, + 334, 335, 336, 337, 338, 339, 340, 0, 341, 342, + 343, 344, 345, 346, 0, 347, 348, 349, 350, 351, + 352, 353, 354, 0, 355, 356, 357, 358, 359, 360, + 361, 362, 363, 364, 365, 366, 367, 0, 368, 369, + 0, 371, 372, 373, 374, 375, 376, 377, 378, 379, + 380, 381, 382, 383, 384, 385, 0, 386, 387, 388, + 389, 390, 0, 392, 393, 394, 395, 396, 0, 398, + 399, 400, 401, 0, 402, 403, 404, 405, 406, 407, + 408, 409, 410, 411, 412, 413, 513, 415, 416, 417, + 0, 418, 419, 0, 420, 0, 422, 423, 424, 425, + 426, 0, 427, 428, 0, 0, 429, 430, 431, 432, + 433, 0, 434, 435, 436, 437, 438, 439, 440, 441, + 0, 0, 442, 443, 444, 445, 446, 0, 0, 448, + 449, 450, 451, 452, 453, 454, 0, 455, 0, 457, + 458, 459, 460, 461, 0, 0, 462, 0, 0, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, - 474, 475, 476, 477, 478, 479, 480, 481, 482, -1, - -1, 485, 3, 4, 5, -1, -1, -1, 9, -1, - -1, -1, -1, -1, -1, 499, -1, -1, -1, -1, - 21, 22, 23, 24, 25, 26, 27, 28, -1, 30, - 31, 32, -1, -1, -1, -1, -1, -1, -1, 40, - 41, -1, 43, 44, 45, 46, 47, 48, 49, 50, - 51, 52, 53, 54, -1, 56, 57, 58, 59, 60, - 61, -1, -1, 64, 65, 66, 67, 68, -1, 70, - 71, 72, 73, 74, -1, 76, -1, 78, 79, 80, - 81, 82, 83, 84, 85, 86, 87, -1, 89, 90, - 91, 92, 93, 94, -1, 96, 97, 98, 99, 100, - 101, 102, 103, -1, -1, 106, 107, 108, 109, 110, - 111, 112, 113, 114, 115, 116, -1, 118, -1, 120, - 121, 122, 123, 124, 125, -1, 127, 128, 129, 130, - 131, -1, -1, 134, 135, 136, 137, 138, -1, 140, - 141, 142, -1, 144, 145, 146, -1, 148, 149, 150, - 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, - -1, 162, 163, 164, 165, -1, 167, -1, 169, 170, - -1, 172, 173, 174, 175, 176, 177, -1, 179, -1, - 181, 182, 183, -1, 185, 186, 187, 188, 189, 190, - 191, 192, 193, 194, 195, 196, -1, 198, 199, 200, - 201, 202, 203, -1, 205, 206, 207, 208, 209, 210, - 211, 212, 213, 214, -1, 216, -1, 218, 219, 220, - 221, 222, 223, 224, 225, 226, 227, 228, -1, -1, - 231, 232, 233, 234, -1, 236, 237, 238, -1, -1, - 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, - 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, - 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, - 271, -1, 273, 274, 275, 276, -1, 278, 279, 280, - 281, 282, 283, -1, 285, 286, 287, -1, 289, 290, - 291, -1, -1, 294, 295, 296, 297, 298, 299, 300, - 301, 302, 303, 304, 305, 306, 307, 308, 309, -1, - 311, 312, 313, 314, 315, 316, 317, 318, 319, -1, - 321, 322, 323, 324, 325, 326, -1, 328, 329, 330, - 331, 332, 333, 334, 335, -1, 337, 338, 339, 340, - 341, 342, 343, 344, 345, 346, 347, 348, 349, -1, - 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, - 361, 362, 363, 364, 365, 366, 367, 368, -1, 370, - 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, - 381, 382, 383, 384, 385, -1, 387, 388, 389, 390, - 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, - 401, 402, -1, 404, 405, -1, 407, 408, 409, 410, - 411, 412, 413, -1, 415, 416, -1, -1, 419, 420, - 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, - 431, 432, -1, -1, 435, 436, 437, 438, 439, 440, - -1, 442, 443, 444, 445, 446, 447, 448, -1, 450, - 451, 452, 453, 454, 455, 456, -1, -1, 459, -1, - -1, 462, 463, 464, 465, 466, 467, 468, 469, 470, - 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, - 481, 482, 3, -1, 5, -1, -1, -1, -1, 490, - 491, 492, -1, -1, -1, -1, -1, -1, 499, -1, - 21, 22, 23, 24, 25, 26, 27, 28, -1, 30, - 31, 32, -1, -1, -1, -1, -1, -1, -1, 40, - 41, -1, 43, 44, 45, 46, 47, 48, 49, 50, - 51, 52, 53, 54, -1, 56, 57, 58, 59, 60, - 61, -1, 63, 64, 65, 66, 67, 68, -1, 70, - 71, 72, 73, 74, -1, 76, -1, 78, 79, 80, - 81, 82, 83, 84, 85, 86, 87, -1, 89, 90, - 91, 92, 93, 94, -1, 96, 97, 98, 99, 100, - 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, - 111, 112, 113, 114, 115, 116, -1, 118, -1, 120, - 121, 122, 123, 124, 125, -1, 127, 128, 129, 130, - 131, -1, -1, 134, 135, 136, 137, 138, -1, 140, - 141, 142, -1, 144, 145, 146, -1, 148, 149, 150, - 151, 152, 153, 154, 155, 156, 157, 158, -1, 160, - -1, 162, 163, 164, 165, -1, 167, -1, 169, 170, - -1, 172, 173, 174, 175, 176, 177, -1, 179, -1, - 181, 182, 183, -1, 185, 186, 187, 188, 189, 190, - 191, 192, 193, 194, 195, 196, -1, 198, 199, 200, - 201, 202, 203, -1, 205, 206, 207, 208, 209, 210, - 211, 212, 213, 214, -1, 216, -1, 218, 219, 220, - 221, 222, 223, 224, 225, 226, 227, 228, 229, -1, - 231, 232, 233, 234, -1, 236, 237, 238, 239, 240, - 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, - 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, - 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, - 271, -1, 273, 274, 275, 276, -1, 278, 279, 280, - 281, 282, 283, -1, 285, 286, -1, 288, 289, 290, - 291, -1, -1, 294, 295, 296, 297, 298, 299, 300, - 301, 302, 303, 304, 305, 306, 307, 308, 309, -1, - 311, 312, 313, 314, 315, 316, 317, 318, 319, -1, - 321, 322, 323, 324, 325, 326, -1, 328, 329, 330, - 331, 332, 333, 334, 335, -1, 337, 338, 339, 340, - 341, 342, 343, 344, 345, 346, 347, 348, 349, -1, - 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, - 361, 362, 363, 364, 365, 366, 367, 368, -1, 370, - 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, - 381, 382, 383, 384, 385, -1, 387, 388, 389, 390, - 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, - 401, 402, -1, 404, 405, -1, 407, 408, 409, 410, - 411, 412, 413, -1, 415, 416, -1, -1, 419, 420, - 421, 422, 423, -1, 425, 426, 427, 428, 429, 430, - 431, 432, -1, -1, 435, 436, 437, 438, 439, 440, - -1, 442, 443, 444, 445, 446, 447, 448, -1, 450, - 451, 452, 453, 454, 455, 456, -1, -1, 459, -1, - -1, 462, 463, 464, 465, 466, 467, 468, 469, 470, - 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, - 481, 482, 3, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 499, -1, - 21, 22, 23, 24, 25, 26, 27, 28, -1, 30, - 31, 32, 33, 34, -1, -1, -1, -1, -1, 40, - 41, -1, 43, 44, 45, 46, 47, 48, 49, 50, - 51, 52, 53, 54, -1, 56, 57, 58, 59, 60, - 61, -1, -1, 64, 65, 66, 67, 68, -1, 70, - 71, 72, 73, 74, -1, 76, -1, 78, 79, 80, - 81, 82, 83, 84, 85, 86, 87, -1, 89, 90, - 91, 92, 93, 94, -1, 96, 97, 98, 99, 100, - 101, 102, 103, -1, -1, 106, 107, 108, 109, 110, - 111, 112, 113, 114, 115, 116, -1, 118, -1, 120, - 121, 122, 123, 124, 125, -1, 127, 128, 129, 130, - 131, -1, -1, 134, 135, 136, 137, 138, -1, 140, - 141, 142, -1, 144, 145, 146, -1, 148, 149, 150, - 151, 152, 153, 154, 155, 156, 157, 158, -1, 160, - -1, 162, 163, 164, 165, -1, 167, -1, 169, 170, - -1, 172, 173, 174, 175, 176, 177, -1, 179, -1, - 181, 182, 183, -1, 185, 186, 187, 188, 189, 190, - 191, 192, 193, 194, 195, 196, -1, 198, 199, 200, - 201, 202, 203, -1, 205, 206, 207, 208, 209, 210, - 211, 212, 213, 214, -1, 216, -1, 218, 219, 220, - 221, 222, 223, 224, 225, 226, 227, 228, -1, -1, - 231, 232, 233, 234, -1, 236, 237, 238, -1, -1, - 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, - 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, - 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, - 271, -1, 273, 274, 275, 276, -1, 278, 279, 280, - 281, 282, 283, -1, 285, 286, -1, -1, 289, 290, - 291, -1, -1, 294, 295, 296, 297, 298, 299, 300, - 301, 302, 303, 304, 305, 306, 307, 308, 309, -1, - 311, 312, 313, 314, 315, 316, 317, 318, 319, -1, - 321, 322, 323, 324, 325, 326, -1, 328, 329, 330, - 331, 332, 333, 334, 335, -1, 337, 338, 339, 340, - 341, 342, 343, 344, 345, 346, 347, 348, 349, -1, - 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, - 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, - 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, - 381, 382, 383, 384, 385, -1, 387, 388, 389, 390, - 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, - 401, 402, -1, 404, 405, 406, 407, 408, 409, 410, - 411, 412, 413, -1, 415, 416, -1, -1, 419, 420, - 421, 422, 423, -1, 425, 426, 427, 428, 429, 430, - 431, 432, -1, -1, 435, 436, 437, 438, 439, 440, - -1, 442, 443, 444, 445, 446, 447, 448, -1, 450, - 451, 452, 453, 454, 455, 456, -1, -1, 459, -1, - 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, - 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, - 481, 482, 3, -1, 485, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 499, -1, - 21, 22, 23, 24, 25, 26, 27, 28, -1, 30, - 31, 32, -1, -1, -1, -1, -1, -1, -1, 40, - 41, -1, 43, 44, 45, 46, 47, 48, 49, 50, - 51, 52, 53, 54, -1, 56, 57, 58, 59, 60, - 61, -1, 63, 64, 65, 66, 67, 68, -1, 70, - 71, 72, 73, 74, -1, 76, -1, 78, 79, 80, - 81, 82, 83, 84, 85, 86, 87, -1, 89, 90, - 91, 92, 93, 94, -1, 96, 97, 98, 99, 100, - 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, - 111, 112, 113, 114, 115, 116, -1, 118, -1, 120, - 121, 122, 123, 124, 125, -1, 127, 128, 129, 130, - 131, -1, -1, 134, 135, 136, 137, 138, -1, 140, - 141, 142, -1, 144, 145, 146, -1, 148, 149, 150, - 151, 152, 153, 154, 155, 156, 157, 158, -1, 160, - -1, 162, 163, 164, 165, -1, 167, -1, 169, 170, - -1, 172, 173, 174, 175, 176, 177, -1, 179, -1, - 181, 182, 183, -1, 185, 186, 187, 188, 189, 190, - 191, 192, 193, 194, 195, 196, -1, 198, 199, 200, - 201, 202, 203, -1, 205, 206, 207, 208, 209, 210, - 211, 212, 213, 214, -1, 216, -1, 218, 219, 220, - 221, 222, 223, 224, 225, 226, 227, 228, -1, -1, - 231, 232, 233, 234, -1, 236, 237, 238, 239, 240, - 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, - 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, - 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, - 271, -1, 273, 274, 275, 276, -1, 278, 279, 280, - 281, 282, 283, -1, 285, 286, -1, -1, 289, 290, - 291, -1, -1, 294, 295, 296, 297, 298, 299, 300, - 301, 302, 303, 304, 305, 306, 307, 308, 309, -1, - 311, 312, 313, 314, 315, 316, 317, 318, 319, -1, - 321, 322, 323, 324, 325, 326, -1, 328, 329, 330, - 331, 332, 333, 334, 335, -1, 337, 338, 339, 340, - 341, 342, 343, 344, 345, 346, 347, 348, 349, -1, - 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, - 361, 362, 363, 364, 365, 366, 367, 368, -1, 370, - 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, - 381, 382, 383, 384, 385, -1, 387, 388, 389, 390, - 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, - 401, 402, -1, 404, 405, -1, 407, 408, 409, 410, - 411, 412, 413, -1, 415, 416, -1, -1, 419, 420, - 421, 422, 423, -1, 425, 426, 427, 428, 429, 430, - 431, 432, -1, -1, 435, 436, 437, 438, 439, 440, - -1, 442, 443, 444, 445, 446, 447, 448, -1, 450, - 451, 452, 453, 454, 455, 456, -1, -1, 459, -1, - -1, 462, 463, 464, 465, 466, 467, 468, 469, 470, - 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, - 481, 482, 3, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 499, -1, - 21, 22, 23, 24, 25, 26, 27, 28, -1, 30, - 31, 32, -1, -1, -1, -1, -1, -1, -1, 40, - 41, -1, 43, 44, 45, 46, 47, 48, 49, 50, - 51, 52, 53, 54, -1, 56, 57, 58, 59, 60, - 61, -1, 63, 64, 65, 66, 67, 68, -1, 70, - 71, 72, 73, 74, -1, 76, -1, 78, 79, 80, - 81, 82, 83, 84, 85, 86, 87, -1, 89, 90, - 91, 92, 93, 94, -1, 96, 97, 98, 99, 100, - 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, - 111, 112, 113, 114, 115, 116, -1, 118, -1, 120, - 121, 122, 123, 124, 125, -1, 127, 128, 129, 130, - 131, -1, -1, 134, 135, 136, 137, 138, -1, 140, - 141, 142, -1, 144, 145, 146, -1, 148, 149, 150, - 151, 152, 153, 154, 155, 156, 157, 158, -1, 160, - -1, 162, 163, 164, 165, -1, 167, -1, 169, 170, - -1, 172, 173, 174, 175, 176, 177, -1, 179, -1, - 181, 182, 183, -1, 185, 186, 187, 188, 189, 190, - 191, 192, 193, 194, 195, 196, -1, 198, 199, 200, - 201, 202, 203, -1, 205, 206, 207, 208, 209, 210, - 211, 212, 213, 214, -1, 216, -1, 218, 219, 220, - 221, 222, 223, 224, 225, 226, 227, 228, -1, -1, - 231, 232, 233, 234, -1, 236, 237, 238, 239, 240, - 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, - 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, - 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, - 271, -1, 273, 274, 275, 276, -1, 278, 279, 280, - 281, 282, 283, -1, 285, 286, -1, -1, 289, 290, - 291, -1, -1, 294, 295, 296, 297, 298, 299, 300, - 301, 302, 303, 304, 305, 306, 307, 308, 309, -1, - 311, 312, 313, 314, 315, 316, 317, 318, 319, -1, - 321, 322, 323, 324, 325, 326, -1, 328, 329, 330, - 331, 332, 333, 334, 335, -1, 337, 338, 339, 340, - 341, 342, 343, 344, 345, 346, 347, 348, 349, -1, - 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, - 361, 362, 363, 364, 365, 366, 367, 368, -1, 370, - 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, - 381, 382, 383, 384, 385, -1, 387, 388, 389, 390, - 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, - 401, 402, -1, 404, 405, -1, 407, 408, 409, 410, - 411, 412, 413, -1, 415, 416, -1, -1, 419, 420, - 421, 422, 423, -1, 425, 426, 427, 428, 429, 430, - 431, 432, -1, -1, 435, 436, 437, 438, 439, 440, - -1, 442, 443, 444, 445, 446, 447, 448, -1, 450, - 451, 452, 453, 454, 455, 456, -1, -1, 459, -1, - -1, 462, 463, 464, 465, 466, 467, 468, 469, 470, - 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, - 481, 482, 3, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 499, -1, - 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, - 31, 32, -1, -1, -1, -1, -1, -1, -1, 40, - 41, -1, 43, 44, 45, -1, 47, 48, 49, 50, - 51, -1, 53, 54, -1, 56, 57, 58, 59, 60, - 61, -1, -1, 64, 65, 66, 67, 68, -1, 70, - 71, 72, 73, 74, -1, -1, -1, 78, 79, 80, - 81, 82, 83, -1, 85, 86, 87, -1, 89, 90, - 91, 92, 93, 94, -1, -1, 97, 98, 99, -1, - -1, -1, -1, -1, -1, -1, 107, 108, 109, 110, - 111, 112, 113, 114, 115, 116, -1, 118, -1, 120, - 121, 122, 123, 124, 125, -1, 127, 128, 129, 130, - 131, -1, -1, 134, 135, 136, 137, 138, -1, 140, - 141, 142, -1, 144, 145, 146, -1, 148, 149, 150, - 151, 152, 153, 154, 155, 156, 157, 158, -1, 160, - -1, 162, 163, 164, 165, -1, 167, -1, 169, -1, - -1, -1, 173, 174, 175, -1, 177, -1, 179, -1, - 181, 182, 183, -1, 185, 186, 187, 188, 189, 190, - 191, -1, 193, 194, 195, 196, -1, 198, 199, 200, - 201, 202, 203, -1, 205, -1, 207, 208, 209, 210, - 211, 212, 213, 214, -1, 216, -1, 218, -1, -1, - 221, -1, 223, 224, 225, 226, 227, 228, -1, -1, - 231, -1, 233, -1, -1, 236, 237, 238, -1, -1, - 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, - 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, - 261, 262, 263, 264, 265, -1, 267, 268, 269, 270, - 271, -1, 273, 274, -1, 276, -1, 278, 279, 280, - 281, 282, 283, -1, 285, 286, -1, -1, 289, 290, - 291, -1, -1, 294, 295, -1, 297, -1, 299, 300, - 301, 302, 303, 304, 305, 306, 307, 308, 309, -1, - 311, 312, 313, 314, 315, 316, 317, 318, 319, -1, - 321, 322, 323, 324, 325, 326, -1, 328, 329, 330, - 331, 332, 333, 334, 335, -1, 337, 338, 339, 340, - 341, 342, 343, 344, 345, 346, 347, 348, 349, -1, - 351, 352, -1, 354, 355, 356, 357, 358, 359, 360, - 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, - 371, 372, 373, 374, -1, 376, 377, 378, 379, 380, - -1, 382, 383, 384, 385, -1, 387, 388, 389, 390, - 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, - 401, 402, -1, 404, 405, 406, 407, -1, 409, 410, - 411, 412, 413, -1, 415, 416, -1, -1, 419, 420, - 421, 422, 423, -1, 425, 426, 427, 428, 429, 430, - 431, 432, -1, -1, 435, 436, 437, 438, 439, -1, - -1, 442, 443, 444, 445, 446, 447, 448, -1, 450, - -1, 452, 453, 454, 455, 456, -1, -1, 459, -1, - 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, - 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, - 481, 482, 3, -1, 485, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 499, -1, - 21, 22, 23, 24, 25, 26, 27, 28, -1, 30, - 31, 32, -1, -1, -1, -1, -1, -1, -1, 40, - 41, -1, 43, 44, 45, -1, 47, 48, 49, 50, - 51, -1, 53, 54, -1, 56, 57, 58, 59, 60, - 61, -1, -1, 64, 65, 66, 67, 68, -1, 70, - 71, 72, 73, 74, -1, -1, -1, 78, 79, 80, - 81, 82, 83, -1, 85, 86, 87, -1, 89, 90, - 91, 92, 93, 94, -1, -1, 97, 98, 99, -1, - -1, -1, -1, -1, -1, -1, 107, 108, 109, 110, - 111, 112, 113, 114, 115, 116, -1, 118, -1, 120, - 121, 122, 123, 124, 125, -1, 127, 128, 129, 130, - 131, -1, -1, 134, 135, 136, 137, 138, -1, 140, - 141, 142, -1, 144, 145, 146, -1, 148, 149, 150, - 151, 152, 153, 154, 155, 156, 157, 158, -1, 160, - -1, 162, 163, 164, 165, -1, 167, -1, 169, -1, - -1, -1, 173, 174, 175, -1, 177, -1, 179, -1, - 181, 182, 183, -1, 185, 186, 187, 188, 189, 190, - 191, -1, 193, 194, 195, 196, -1, 198, 199, 200, - 201, 202, 203, -1, 205, -1, 207, 208, 209, 210, - 211, 212, 213, 214, -1, 216, -1, 218, -1, -1, - 221, -1, 223, 224, 225, 226, 227, 228, -1, -1, - 231, -1, 233, -1, -1, 236, 237, 238, -1, -1, - 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, - 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, - 261, 262, 263, 264, 265, -1, 267, 268, 269, 270, - 271, -1, 273, 274, -1, 276, -1, 278, 279, 280, - 281, 282, 283, -1, 285, 286, -1, -1, 289, 290, - 291, -1, -1, 294, 295, -1, 297, -1, 299, 300, - 301, 302, 303, 304, 305, 306, 307, 308, 309, -1, - 311, 312, 313, 314, 315, 316, 317, 318, 319, -1, - 321, 322, 323, 324, 325, 326, -1, 328, 329, 330, - 331, 332, 333, 334, 335, -1, 337, 338, 339, 340, - 341, 342, 343, 344, 345, 346, 347, 348, 349, -1, - 351, 352, -1, 354, 355, 356, 357, 358, 359, 360, - 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, - 371, 372, 373, 374, -1, 376, 377, 378, 379, 380, - -1, 382, 383, 384, 385, -1, 387, 388, 389, 390, - 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, - 401, 402, -1, 404, 405, 406, 407, -1, 409, 410, - 411, 412, 413, -1, 415, 416, -1, -1, 419, 420, - 421, 422, 423, -1, 425, 426, 427, 428, 429, 430, - 431, 432, -1, -1, 435, 436, 437, 438, 439, -1, - -1, 442, 443, 444, 445, 446, 447, 448, -1, 450, - -1, 452, 453, 454, 455, 456, -1, -1, 459, -1, - 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, - 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, - 481, 482, -1, 3, 485, 5, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 499, -1, - -1, 21, 22, 23, 24, 25, 26, 27, 28, -1, - 30, 31, 32, -1, -1, -1, -1, -1, -1, -1, - 40, 41, -1, 43, 44, 45, -1, 47, 48, 49, - 50, 51, -1, 53, 54, -1, 56, 57, 58, 59, - 60, 61, -1, -1, 64, 65, 66, 67, 68, -1, - 70, 71, 72, 73, 74, -1, -1, -1, 78, 79, - 80, 81, 82, 83, -1, 85, 86, 87, -1, 89, - 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, - -1, -1, -1, -1, -1, -1, -1, 107, 108, 109, - 110, 111, 112, 113, 114, 115, 116, -1, 118, -1, - 120, 121, 122, 123, 124, 125, -1, 127, 128, 129, - 130, 131, -1, -1, 134, 135, 136, 137, 138, -1, - 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, - 150, 151, 152, 153, 154, 155, 156, 157, 158, -1, - 160, -1, 162, 163, 164, 165, -1, 167, -1, 169, - -1, -1, -1, 173, 174, 175, -1, 177, -1, 179, - -1, 181, 182, 183, -1, 185, 186, 187, 188, 189, - 190, 191, -1, 193, 194, 195, 196, -1, 198, 199, - 200, 201, 202, 203, -1, 205, -1, 207, 208, 209, - 210, 211, 212, 213, 214, -1, 216, -1, 218, -1, - -1, 221, -1, 223, 224, 225, 226, 227, 228, -1, - -1, 231, -1, 233, -1, -1, 236, 237, 238, -1, - -1, 241, 242, 243, 244, 245, 246, 247, 248, 249, - 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, - 260, 261, 262, 263, 264, 265, -1, 267, 268, 269, - 270, 271, -1, 273, 274, -1, 276, -1, 278, 279, - 280, 281, 282, 283, -1, 285, 286, -1, -1, 289, - 290, 291, -1, -1, 294, 295, -1, 297, -1, 299, - 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, - -1, 311, 312, 313, 314, 315, 316, 317, 318, 319, - -1, 321, 322, 323, 324, 325, 326, -1, 328, 329, - 330, 331, 332, 333, 334, 335, -1, 337, 338, 339, - 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, - -1, 351, 352, -1, 354, 355, 356, 357, 358, 359, - 360, 361, 362, 363, 364, 365, 366, 367, 368, -1, - 370, 371, 372, 373, 374, -1, 376, 377, 378, 379, - 380, -1, 382, 383, 384, 385, -1, 387, 388, 389, - 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, - 400, 401, 402, -1, 404, 405, -1, 407, -1, 409, - 410, 411, 412, 413, -1, 415, 416, -1, -1, 419, - 420, 421, 422, 423, -1, 425, 426, 427, 428, 429, - 430, 431, 432, -1, -1, 435, 436, 437, 438, 439, - -1, -1, 442, 443, 444, 445, 446, 447, 448, -1, - 450, -1, 452, 453, 454, 455, 456, -1, -1, 459, - -1, -1, 462, 463, 464, 465, 466, 467, 468, 469, - 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, - 480, 481, 482, 3, -1, 5, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 499, - -1, 21, 22, 23, 24, 25, 26, 27, 28, -1, - 30, 31, 32, -1, -1, -1, -1, -1, -1, -1, - 40, 41, -1, 43, 44, 45, -1, 47, 48, 49, - 50, 51, -1, 53, 54, -1, 56, 57, 58, 59, - 60, 61, -1, -1, 64, 65, 66, 67, 68, -1, - 70, 71, 72, 73, 74, -1, -1, -1, 78, 79, - 80, 81, 82, 83, -1, 85, 86, 87, -1, 89, - 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, - -1, -1, -1, -1, -1, -1, -1, 107, 108, 109, - 110, 111, 112, 113, 114, 115, 116, -1, 118, -1, - 120, 121, 122, 123, 124, 125, -1, 127, 128, 129, - 130, 131, -1, -1, 134, 135, 136, 137, 138, -1, - 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, - 150, 151, 152, 153, 154, 155, 156, 157, 158, -1, - 160, -1, 162, 163, 164, 165, -1, 167, -1, 169, - -1, -1, -1, 173, 174, 175, -1, 177, -1, 179, - -1, 181, 182, 183, -1, 185, 186, 187, 188, 189, - 190, 191, -1, 193, 194, 195, 196, -1, 198, 199, - 200, 201, 202, 203, -1, 205, -1, 207, 208, 209, - 210, 211, 212, 213, 214, -1, 216, -1, 218, -1, - -1, 221, -1, 223, 224, 225, 226, 227, 228, -1, - -1, 231, -1, 233, -1, -1, 236, 237, 238, -1, - -1, 241, 242, 243, 244, 245, 246, 247, 248, 249, - 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, - 260, 261, 262, 263, 264, 265, -1, 267, 268, 269, - 270, 271, -1, 273, 274, -1, 276, -1, 278, 279, - 280, 281, 282, 283, -1, 285, 286, -1, -1, 289, - 290, 291, -1, -1, 294, 295, -1, 297, -1, 299, - 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, - -1, 311, 312, 313, 314, 315, 316, 317, 318, 319, - -1, 321, 322, 323, 324, 325, 326, -1, 328, 329, - 330, 331, 332, 333, 334, 335, -1, 337, 338, 339, - 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, - -1, 351, 352, -1, 354, 355, 356, 357, 358, 359, - 360, 361, 362, 363, 364, 365, 366, 367, 368, -1, - 370, 371, 372, 373, 374, -1, 376, 377, 378, 379, - 380, -1, 382, 383, 384, 385, -1, 387, 388, 389, - 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, - 400, 401, 402, -1, 404, 405, -1, 407, -1, 409, - 410, 411, 412, 413, -1, 415, 416, -1, -1, 419, - 420, 421, 422, 423, -1, 425, 426, 427, 428, 429, - 430, 431, 432, -1, -1, 435, 436, 437, 438, 439, - -1, -1, 442, 443, 444, 445, 446, 447, 448, -1, - 450, -1, 452, 453, 454, 455, 456, -1, -1, 459, - -1, -1, 462, 463, 464, 465, 466, 467, 468, 469, - 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, - 480, 481, 482, 3, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 499, - -1, 21, 22, 23, 24, 25, 26, 27, 28, -1, - 30, 31, 32, -1, -1, -1, -1, -1, -1, -1, - 40, 41, -1, 43, 44, 45, -1, 47, 48, 49, - 50, 51, -1, 53, 54, -1, 56, 57, 58, 59, - 60, 61, -1, -1, 64, 65, 66, 67, 68, -1, - 70, 71, 72, 73, 74, -1, -1, -1, 78, 79, - 80, 81, 82, 83, -1, 85, 86, 87, -1, 89, - 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, - -1, -1, -1, -1, -1, -1, -1, 107, 108, 109, - 110, 111, 112, 113, 114, 115, 116, -1, 118, -1, - 120, 121, 122, 123, 124, 125, -1, 127, 128, 129, - 130, 131, -1, -1, 134, 135, 136, 137, 138, -1, - 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, - 150, 151, 152, 153, 154, 155, 156, 157, 158, -1, - 160, -1, 162, 163, 164, 165, -1, 167, -1, 169, - -1, -1, -1, 173, 174, 175, -1, 177, -1, 179, - -1, 181, 182, 183, -1, 185, 186, 187, 188, 189, - 190, 191, -1, 193, 194, 195, 196, -1, 198, 199, - 200, 201, 202, 203, -1, 205, -1, 207, 208, 209, - 210, 211, 212, 213, 214, -1, 216, -1, 218, -1, - -1, 221, -1, 223, 224, 225, 226, 227, 228, -1, - -1, 231, -1, 233, -1, -1, 236, 237, 238, -1, - -1, 241, 242, 243, 244, 245, 246, 247, 248, 249, - 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, - 260, 261, 262, 263, 264, 265, -1, 267, 268, 269, - 270, 271, -1, 273, 274, -1, 276, -1, 278, 279, - 280, 281, 282, 283, -1, 285, 286, -1, -1, 289, - 290, 291, -1, -1, 294, 295, -1, 297, -1, 299, - 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, - -1, 311, 312, 313, 314, 315, 316, 317, 318, 319, - -1, 321, 322, 323, 324, 325, 326, -1, 328, 329, - 330, 331, 332, 333, 334, 335, -1, 337, 338, 339, - 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, - -1, 351, 352, -1, 354, 355, 356, 357, 358, 359, - 360, 361, 362, 363, 364, 365, 366, 367, 368, -1, - 370, 371, 372, 373, 374, -1, 376, 377, 378, 379, - 380, -1, 382, 383, 384, 385, -1, 387, 388, 389, - 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, - 400, 401, 402, -1, 404, 405, -1, 407, -1, 409, - 410, 411, 412, 413, -1, 415, 416, -1, -1, 419, - 420, 421, 422, 423, -1, 425, 426, 427, 428, 429, - 430, 431, 432, -1, -1, 435, 436, 437, 438, 439, - -1, -1, 442, 443, 444, 445, 446, 447, 448, -1, - 450, -1, 452, 453, 454, 455, 456, -1, -1, 459, - -1, -1, 462, 463, 464, 465, 466, 467, 468, 469, - 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, - 480, 481, 482, 3, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 499, - -1, 21, 22, 23, 24, 25, 26, 27, 28, -1, - 30, 31, 32, -1, -1, -1, -1, -1, -1, -1, - 40, 41, -1, 43, 44, 45, -1, 47, 48, 49, - 50, 51, -1, 53, 54, -1, 56, 57, 58, 59, - 60, 61, -1, -1, 64, 65, 66, 67, 68, -1, - 70, 71, 72, 73, 74, -1, -1, -1, 78, 79, - 80, 81, 82, 83, -1, 85, 86, 87, -1, 89, - 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, - -1, -1, -1, -1, -1, -1, -1, 107, 108, 109, - 110, 111, 112, 113, 114, 115, 116, -1, 118, -1, - 120, 121, 122, 123, 124, 125, -1, 127, 128, 129, - 130, 131, -1, -1, 134, 135, 136, 137, 138, -1, - 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, - 150, 151, 152, 153, 154, 155, 156, 157, 158, -1, - 160, -1, 162, 163, 164, 165, -1, 167, -1, 169, - -1, -1, -1, 173, 174, 175, -1, 177, -1, 179, - -1, 181, 182, 183, -1, 185, 186, 187, 188, 189, - 190, 191, -1, 193, 194, 195, 196, -1, 198, 199, - 200, 201, 202, 203, -1, 205, -1, 207, 208, 209, - 210, 211, 212, 213, 214, -1, 216, -1, 218, -1, - -1, 221, -1, 223, 224, 225, 226, 227, 228, -1, - -1, 231, -1, 233, -1, -1, 236, 237, 238, -1, - -1, 241, 242, 243, 244, 245, 246, 247, 248, 249, - 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, - 260, 261, 262, 263, 264, 265, -1, 267, 268, 269, - 270, 271, -1, 273, 274, -1, 276, -1, 278, 279, - 280, 281, 282, 283, -1, 285, 286, -1, -1, 289, - 290, 291, -1, -1, 294, 295, -1, 297, -1, 299, - 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, - -1, 311, 312, 313, 314, 315, 316, 317, 318, 319, - -1, 321, 322, 323, 324, 325, 326, -1, 328, 329, - 330, 331, 332, 333, 334, 335, -1, 337, 338, 339, - 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, - -1, 351, 352, -1, 354, 355, 356, 357, 358, 359, - 360, 361, 362, 363, 364, 365, 366, 367, 368, -1, - 370, 371, 372, 373, 374, -1, 376, 377, 378, 379, - 380, -1, 382, 383, 384, 385, -1, 387, 388, 389, - 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, - 400, 401, 402, -1, 404, 405, -1, 407, -1, 409, - 410, 411, 412, 413, -1, 415, 416, -1, -1, 419, - 420, 421, 422, 423, -1, 425, 426, 427, 428, 429, - 430, 431, 432, -1, -1, 435, 436, 437, 438, 439, - -1, -1, 442, 443, 444, 445, 446, 447, 448, -1, - 450, -1, 452, 453, 454, 455, 456, -1, -1, 459, - -1, -1, 462, 463, 464, 465, 466, 467, 468, 469, - 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, - 480, 481, 482, 3, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 499, - -1, 21, 22, 23, 24, 25, 26, 27, 28, -1, - 30, 31, 32, -1, -1, -1, -1, -1, -1, -1, - 40, 41, -1, 43, 44, 45, -1, 47, 48, 49, - 50, 51, -1, 53, 54, -1, 56, 57, 58, 59, - 60, 61, -1, -1, 64, 65, 66, 67, 68, -1, - 70, 71, 72, 73, 74, -1, -1, -1, 78, 79, - 80, 81, 82, 83, -1, 85, 86, 87, -1, 89, - 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, - -1, -1, -1, -1, -1, -1, -1, 107, 108, 109, - 110, 111, 112, 113, 114, 115, 116, -1, 118, -1, - 120, 121, 122, 123, 124, 125, -1, 127, 128, 129, - 130, 131, -1, -1, 134, 135, 136, 137, 138, -1, - 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, - 150, 151, 152, 153, 154, 155, 156, 157, 158, -1, - 160, -1, 162, 163, 164, 165, -1, 167, -1, 169, - -1, -1, -1, 173, 174, 175, -1, 177, -1, 179, - -1, 181, 182, 183, -1, 185, 186, 187, 188, 189, - 190, 191, -1, 193, 194, 195, 196, -1, 198, 199, - 200, 201, 202, 203, -1, 205, -1, 207, 208, 209, - 210, 211, 212, 213, 214, -1, 216, -1, 218, -1, - -1, 221, -1, 223, 224, 225, 226, 227, 228, -1, - -1, 231, -1, 233, -1, -1, 236, 237, 238, -1, - -1, 241, 242, 243, 244, 245, 246, 247, 248, 249, - 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, - 260, 261, 262, 263, 264, 265, -1, 267, 268, 269, - 270, 271, -1, 273, 274, -1, 276, -1, 278, 279, - 280, 281, 282, 283, -1, 285, 286, -1, -1, 289, - 290, 291, -1, -1, 294, 295, -1, 297, -1, 299, - 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, - -1, 311, 312, 313, 314, 315, 316, 317, 318, 319, - -1, 321, 322, 323, 324, 325, 326, -1, 328, 329, - 330, 331, 332, 333, 334, 335, -1, 337, 338, 339, - 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, - -1, 351, 352, -1, 354, 355, 356, 357, 358, 359, - 360, 361, 362, 363, 364, 365, 366, 367, 368, -1, - 370, 371, 372, 373, 374, -1, 376, 377, 378, 379, - 380, -1, 382, 383, 384, 385, -1, 387, 388, 389, - 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, - 400, 401, 402, -1, 404, 405, -1, 407, -1, 409, - 410, 411, 412, 413, -1, 415, 416, -1, -1, 419, - 420, 421, 422, 423, -1, 425, 426, 427, 428, 429, - 430, 431, 432, -1, -1, 435, 436, 437, 438, 439, - -1, -1, 442, 443, 444, 445, 446, 447, 448, -1, - 450, -1, 452, 453, 454, 455, 456, -1, -1, 459, - -1, -1, 462, 463, 464, 465, 466, 467, 468, 469, - 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, - 480, 481, 482, -1, -1, 3, 4, 5, -1, -1, - 8, 9, -1, -1, -1, -1, -1, 15, -1, 499, - 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, - 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, - 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, - 48, 49, -1, 51, 52, 53, 54, 55, 56, 57, - 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, - 68, 69, 70, 71, 72, 73, -1, 75, 76, 77, - 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, - 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, - 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, - 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, - 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, - 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, - 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, - 148, 149, 150, 151, -1, 153, 154, 155, 156, 157, - -1, 159, 160, 161, 162, 163, 164, 165, 166, 167, - 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, - 178, 179, 180, -1, -1, 183, 184, 185, 186, 187, - 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, - 198, 199, 200, 201, 202, 203, 204, 205, 206, -1, - 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, - 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, - 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, - 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, - 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, - 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, - 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, - -1, 279, 280, 281, 282, 283, 284, 285, 286, 287, - 288, 289, 290, 291, 292, 293, 294, -1, 296, 297, - 298, -1, 300, 301, 302, 303, 304, 305, 306, 307, - 308, 309, 310, 311, 312, -1, 314, 315, -1, 317, - 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, - 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, - 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, - 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, - 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, - 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, - 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, - 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, - 398, 399, 400, -1, 402, 403, 404, 405, 406, 407, - 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, - 418, 419, 420, -1, 422, -1, 424, 425, 426, 427, - 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, - 438, 439, 440, 441, 442, 443, 444, 445, 446, -1, - 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, - 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, + 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, + 507, 0, 508, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 94, 95, + 96, 97, 98, 99, 100, 101, 0, 102, 103, 104, + 0, 0, 0, 0, 0, 0, 0, 105, 106, 0, + 107, 108, 109, 0, 111, 112, 113, 114, 115, 0, + 117, 118, 0, 119, 120, 121, 122, 123, 124, 0, + 0, 125, 126, 127, 128, 129, 0, 130, 131, 132, + 133, 134, 0, 0, 0, 136, 137, 138, 139, 140, + 141, 0, 143, 144, 145, 0, 146, 147, 148, 149, + 150, 151, 0, 0, 153, 154, 155, 0, 0, 0, + 0, 0, 0, 0, 161, 162, 163, 164, 165, 166, + 167, 168, 169, 170, 0, 171, 0, 172, 173, 174, + 175, 176, 177, 0, 178, 179, 180, 181, 182, 0, + 0, 183, 184, 185, 186, 187, 0, 188, 189, 190, + 0, 191, 192, 193, 0, 194, 195, 196, 197, 198, + 199, 200, 201, 202, 203, 204, 0, 205, 0, 206, + 207, 208, 209, 0, 210, 0, 211, 0, 0, 0, + 214, 215, 510, 0, 218, 0, 219, 0, 220, 221, + 222, 0, 223, 224, 225, 226, 227, 1224, 229, 0, + 231, 232, 233, 234, 0, 235, 236, 237, 238, 239, + 240, 0, 241, 0, 243, 244, 245, 246, 247, 248, + 249, 250, 0, 251, 0, 252, 0, 0, 255, 0, + 257, 258, 259, 260, 261, 262, 0, 0, 263, 0, + 265, 0, 0, 267, 268, 269, 0, 0, 270, 271, + 272, 273, 274, 511, 276, 277, 278, 279, 280, 281, + 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, + 292, 293, 294, 0, 296, 297, 298, 299, 300, 0, + 301, 302, 0, 304, 0, 305, 306, 307, 308, 309, + 310, 0, 311, 312, 0, 0, 313, 314, 315, 0, + 0, 316, 317, 0, 319, 0, 321, 322, 323, 324, + 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, + 334, 335, 336, 337, 338, 339, 340, 0, 341, 342, + 343, 344, 345, 346, 0, 347, 348, 349, 350, 351, + 352, 353, 354, 0, 355, 356, 357, 358, 359, 360, + 361, 362, 363, 364, 365, 366, 367, 0, 368, 369, + 0, 371, 372, 373, 374, 375, 376, 377, 378, 379, + 380, 381, 382, 383, 384, 385, 0, 386, 387, 388, + 389, 390, 0, 392, 393, 394, 395, 396, 0, 398, + 399, 400, 401, 0, 402, 403, 404, 405, 406, 407, + 408, 409, 410, 411, 412, 413, 513, 415, 416, 417, + 0, 418, 419, 0, 420, 0, 422, 423, 424, 425, + 426, 0, 427, 428, 0, 0, 429, 430, 431, 432, + 433, 0, 434, 435, 436, 437, 438, 439, 440, 441, + 0, 0, 442, 443, 444, 445, 446, 0, 0, 448, + 449, 450, 451, 452, 453, 454, 0, 455, 0, 457, + 458, 459, 460, 461, 0, 0, 462, 0, 0, 463, + 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, + 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, + 507, 0, 508, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 94, 95, + 96, 97, 98, 99, 100, 101, 0, 102, 103, 104, + 0, 0, 0, 0, 0, 0, 0, 105, 106, 0, + 107, 108, 109, 0, 111, 112, 113, 114, 115, 0, + 117, 118, 0, 119, 120, 121, 122, 123, 124, 0, + 0, 125, 126, 127, 128, 129, 0, 130, 131, 132, + 133, 134, 0, 0, 0, 136, 137, 138, 139, 140, + 141, 0, 143, 144, 145, 0, 146, 147, 148, 149, + 150, 151, 0, 0, 153, 154, 155, 0, 0, 0, + 0, 0, 0, 0, 161, 162, 163, 164, 165, 166, + 167, 168, 169, 170, 0, 171, 0, 172, 173, 174, + 175, 176, 177, 0, 178, 179, 180, 181, 182, 0, + 0, 183, 184, 185, 186, 187, 0, 188, 189, 190, + 0, 191, 192, 193, 0, 194, 195, 196, 197, 198, + 199, 200, 201, 202, 203, 204, 0, 205, 0, 206, + 207, 208, 209, 0, 210, 0, 211, 0, 0, 0, + 214, 215, 510, 0, 218, 0, 219, 0, 220, 221, + 222, 0, 223, 224, 225, 226, 227, 1226, 229, 0, + 231, 232, 233, 234, 0, 235, 236, 237, 238, 239, + 240, 0, 241, 0, 243, 244, 245, 246, 247, 248, + 249, 250, 0, 251, 0, 252, 0, 0, 255, 0, + 257, 258, 259, 260, 261, 262, 0, 0, 263, 0, + 265, 0, 0, 267, 268, 269, 0, 0, 270, 271, + 272, 273, 274, 511, 276, 277, 278, 279, 280, 281, + 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, + 292, 293, 294, 0, 296, 297, 298, 299, 300, 0, + 301, 302, 0, 304, 0, 305, 306, 307, 308, 309, + 310, 0, 311, 312, 0, 0, 313, 314, 315, 0, + 0, 316, 317, 0, 319, 0, 321, 322, 323, 324, + 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, + 334, 335, 336, 337, 338, 339, 340, 0, 341, 342, + 343, 344, 345, 346, 0, 347, 348, 349, 350, 351, + 352, 353, 354, 0, 355, 356, 357, 358, 359, 360, + 361, 362, 363, 364, 365, 366, 367, 0, 368, 369, + 0, 371, 372, 373, 374, 375, 376, 377, 378, 379, + 380, 381, 382, 383, 384, 385, 0, 386, 387, 388, + 389, 390, 0, 392, 393, 394, 395, 396, 0, 398, + 399, 400, 401, 0, 402, 403, 404, 405, 406, 407, + 408, 409, 410, 411, 412, 413, 513, 415, 416, 417, + 0, 418, 419, 0, 420, 0, 422, 423, 424, 425, + 426, 0, 427, 428, 0, 0, 429, 430, 431, 432, + 433, 0, 434, 435, 436, 437, 438, 439, 440, 441, + 0, 0, 442, 443, 444, 445, 446, 0, 0, 448, + 449, 450, 451, 452, 453, 454, 0, 455, 0, 457, + 458, 459, 460, 461, 0, 0, 462, 0, 0, 463, + 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, + 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, + 699, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 94, 95, + 96, 97, 98, 99, 100, 101, 0, 102, 103, 104, + 0, 0, 0, 0, 0, 0, 0, 105, 106, 0, + 107, 108, 109, 700, 111, 112, 113, 0, 701, 702, + 703, 704, 0, 119, 120, 121, 122, 123, 124, 0, + 0, 125, 126, 705, 706, 129, 0, 130, 131, 132, + 133, 0, 0, 707, 0, 136, 137, 138, 139, 140, + 141, 708, 143, 144, 145, 0, 146, 147, 148, 149, + 150, 151, 0, 709, 153, 154, 155, 710, 711, 712, + 713, 0, 0, 714, 161, 162, 163, 164, 165, 166, + 167, 715, 716, 170, 0, 171, 0, 172, 173, 174, + 175, 176, 177, 0, 178, 179, 180, 181, 182, 0, + 0, 183, 184, 717, 186, 187, 0, 188, 189, 190, + 0, 191, 192, 193, 0, 194, 195, 196, 197, 0, + 199, 200, 201, 202, 203, 0, 0, 205, 0, 206, + 207, 718, 209, 0, 210, 0, 211, 719, 0, 720, + 214, 215, 0, 721, 218, 0, 219, 0, 0, 0, + 222, 0, 223, 224, 225, 226, 227, 228, 229, 723, + 231, 232, 233, 234, 0, 235, 236, 237, 238, 239, + 240, 0, 241, 724, 0, 244, 245, 246, 247, 248, + 725, 726, 0, 727, 0, 252, 728, 729, 255, 730, + 257, 258, 259, 260, 261, 262, 0, 0, 263, 731, + 265, 732, 0, 267, 268, 269, 0, 0, 270, 271, + 272, 273, 274, 733, 276, 277, 278, 279, 280, 281, + 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, + 292, 293, 734, 735, 736, 297, 298, 299, 0, 0, + 301, 302, 737, 304, 0, 0, 306, 738, 308, 309, + 310, 0, 311, 312, 0, 0, 313, 314, 315, 0, + 0, 316, 0, 739, 319, 740, 0, 322, 323, 324, + 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, + 0, 335, 336, 0, 338, 339, 340, 0, 341, 342, + 343, 344, 345, 346, 0, 347, 348, 349, 741, 351, + 352, 353, 354, 0, 355, 356, 357, 358, 359, 360, + 361, 362, 363, 364, 365, 366, 367, 0, 368, 369, + 742, 371, 372, 373, 743, 375, 376, 377, 378, 379, + 380, 381, 382, 383, 384, 385, 0, 386, 387, 388, + 389, 390, 744, 392, 745, 394, 395, 396, 746, 398, + 399, 747, 401, 0, 402, 403, 404, 405, 406, 407, + 408, 409, 410, 411, 412, 413, 748, 415, 0, 417, + 0, 418, 419, 0, 420, 749, 422, 423, 424, 425, + 426, 0, 750, 751, 0, 0, 429, 430, 0, 432, + 0, 0, 434, 435, 752, 437, 438, 439, 440, 441, + 0, 0, 442, 443, 444, 445, 446, 753, 0, 448, + 449, 450, 451, 452, 0, 754, 0, 455, 755, 457, + 458, 459, 460, 461, 0, 0, 462, 0, 0, 463, + 464, 465, 466, 467, 468, 507, 0, 508, 0, 0, + 0, 0, 0, 0, 0, 0, 480, 481, 482, 483, + 0, 0, 0, 94, 95, 96, 97, 98, 99, 100, + 101, 0, 102, 103, 104, 0, 0, 0, 0, 0, + 0, 0, 105, 106, 0, 107, 108, 109, 0, 111, + 112, 113, 114, 115, 0, 117, 118, 0, 119, 120, + 121, 122, 123, 124, 0, 0, 125, 126, 127, 128, + 129, 0, 130, 131, 132, 133, 134, 0, 0, 0, + 136, 137, 138, 139, 140, 141, 0, 143, 144, 145, + 0, 146, 147, 148, 149, 150, 151, 0, 0, 153, + 154, 155, 0, 0, 0, 0, 0, 0, 0, 161, + 162, 163, 164, 165, 166, 167, 168, 169, 170, 0, + 171, 0, 172, 173, 174, 175, 176, 177, 0, 178, + 179, 180, 181, 182, 0, 0, 183, 184, 185, 186, + 187, 0, 188, 189, 190, 0, 191, 192, 193, 0, + 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, + 204, 0, 205, 0, 206, 207, 208, 209, 0, 210, + 0, 211, 0, 0, 0, 214, 215, 510, 0, 218, + 0, 219, 0, 220, 221, 222, 0, 223, 224, 225, + 226, 227, 1898, 229, 0, 231, 232, 233, 234, 0, + 235, 236, 237, 238, 239, 240, 0, 241, 0, 243, + 244, 245, 246, 247, 248, 249, 250, 0, 251, 0, + 252, 0, 0, 255, 0, 257, 258, 259, 260, 261, + 262, 0, 0, 263, 0, 265, 0, 0, 267, 268, + 269, 0, 0, 270, 271, 272, 273, 274, 511, 276, + 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, + 287, 288, 289, 290, 291, 292, 293, 294, 0, 296, + 297, 298, 299, 300, 0, 301, 302, 0, 304, 0, + 305, 306, 307, 308, 309, 310, 0, 311, 312, 0, + 0, 313, 314, 315, 0, 0, 316, 317, 0, 319, + 0, 321, 322, 323, 324, 325, 326, 327, 328, 329, + 330, 331, 0, 332, 333, 334, 335, 336, 337, 338, + 339, 340, 0, 341, 342, 343, 344, 345, 346, 0, + 347, 348, 349, 350, 351, 352, 353, 354, 0, 355, + 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, + 366, 367, 0, 368, 369, 0, 371, 372, 373, 374, + 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, + 385, 0, 386, 387, 388, 389, 390, 0, 392, 393, + 394, 395, 396, 0, 398, 399, 400, 401, 0, 402, + 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, + 413, 513, 415, 416, 417, 0, 418, 419, 0, 420, + 0, 422, 423, 424, 425, 426, 0, 427, 428, 0, + 0, 429, 430, 431, 432, 433, 0, 434, 435, 436, + 437, 438, 439, 440, 441, 0, 0, 442, 443, 444, + 445, 446, 0, 0, 448, 449, 450, 451, 452, 453, + 454, 0, 455, 0, 457, 458, 459, 460, 461, 0, + 0, 462, 0, 0, 463, 464, 465, 466, 467, 468, + 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, + 479, 480, 481, 482, 483, 507, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 94, 95, 96, 97, 98, 99, 100, + 101, 0, 102, 103, 104, 0, 0, 0, 0, 0, + 2401, 0, 105, 106, 0, 107, 108, 109, 0, 111, + 112, 113, 114, 115, 0, 117, 118, 0, 119, 120, + 121, 122, 123, 124, 0, 0, 125, 126, 127, 128, + 129, 0, 130, 131, 132, 133, 134, 0, 0, 0, + 136, 137, 138, 139, 140, 141, 0, 143, 144, 145, + 0, 146, 147, 148, 149, 150, 151, 0, 0, 153, + 154, 155, 0, 0, 0, 0, 0, 0, 0, 161, + 162, 163, 164, 165, 166, 167, 168, 169, 170, 0, + 171, 0, 172, 173, 174, 175, 176, 177, 0, 178, + 179, 180, 181, 182, 0, 0, 183, 184, 185, 186, + 187, 0, 188, 189, 190, 0, 191, 192, 193, 0, + 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, + 204, 0, 205, 0, 206, 207, 208, 209, 0, 210, + 0, 211, 0, 0, 0, 214, 215, 510, 0, 218, + 0, 219, 0, 220, 221, 222, 0, 223, 224, 225, + 226, 227, 228, 229, 0, 231, 232, 233, 234, 0, + 235, 236, 237, 238, 239, 240, 0, 241, 0, 243, + 244, 245, 246, 247, 248, 249, 250, 0, 251, 0, + 252, 0, 0, 255, 0, 257, 258, 259, 260, 261, + 262, 0, 0, 263, 0, 265, 0, 0, 267, 268, + 269, 0, 0, 270, 271, 272, 273, 274, 511, 276, + 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, + 287, 288, 289, 290, 291, 292, 293, 294, 0, 296, + 297, 298, 299, 300, 0, 301, 302, 0, 304, 0, + 305, 306, 307, 308, 309, 310, 0, 311, 312, 0, + 0, 313, 314, 315, 0, 0, 316, 317, 0, 319, + 0, 321, 322, 323, 324, 325, 326, 327, 328, 329, + 330, 331, 0, 332, 333, 334, 335, 336, 337, 338, + 339, 340, 0, 341, 342, 343, 344, 345, 346, 0, + 347, 348, 349, 350, 351, 352, 353, 354, 0, 355, + 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, + 366, 367, 0, 368, 369, 0, 371, 372, 373, 374, + 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, + 385, 0, 386, 387, 388, 389, 390, 0, 392, 393, + 394, 395, 396, 0, 398, 399, 400, 401, 0, 402, + 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, + 413, 513, 415, 416, 417, 0, 418, 419, 0, 420, + 0, 422, 423, 424, 425, 426, 0, 427, 428, 0, + 0, 429, 430, 431, 432, 433, 0, 434, 435, 436, + 437, 438, 439, 440, 441, 0, 0, 442, 443, 444, + 445, 446, 0, 0, 448, 449, 450, 451, 452, 453, + 454, 0, 455, 0, 457, 458, 459, 460, 461, 0, + 0, 462, 0, 0, 463, 464, 465, 466, 467, 468, + 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, + 479, 480, 481, 482, 483, 507, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 94, 95, 96, 97, 98, 99, 100, + 101, 0, 102, 103, 104, 0, 0, 0, 0, 0, + 2416, 0, 105, 106, 0, 107, 108, 109, 0, 111, + 112, 113, 114, 115, 0, 117, 118, 0, 119, 120, + 121, 122, 123, 124, 0, 0, 125, 126, 127, 128, + 129, 0, 130, 131, 132, 133, 134, 0, 0, 0, + 136, 137, 138, 139, 140, 141, 0, 143, 144, 145, + 0, 146, 147, 148, 149, 150, 151, 0, 0, 153, + 154, 155, 0, 0, 0, 0, 0, 0, 0, 161, + 162, 163, 164, 165, 166, 167, 168, 169, 170, 0, + 171, 0, 172, 173, 174, 175, 176, 177, 0, 178, + 179, 180, 181, 182, 0, 0, 183, 184, 185, 186, + 187, 0, 188, 189, 190, 0, 191, 192, 193, 0, + 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, + 204, 0, 205, 0, 206, 207, 208, 209, 0, 210, + 0, 211, 0, 0, 0, 214, 215, 510, 0, 218, + 0, 219, 0, 220, 221, 222, 0, 223, 224, 225, + 226, 227, 228, 229, 0, 231, 232, 233, 234, 0, + 235, 236, 237, 238, 239, 240, 0, 241, 0, 243, + 244, 245, 246, 247, 248, 249, 250, 0, 251, 0, + 252, 0, 0, 255, 0, 257, 258, 259, 260, 261, + 262, 0, 0, 263, 0, 265, 0, 0, 267, 268, + 269, 0, 0, 270, 271, 272, 273, 274, 511, 276, + 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, + 287, 288, 289, 290, 291, 292, 293, 294, 0, 296, + 297, 298, 299, 300, 0, 301, 302, 0, 304, 0, + 305, 306, 307, 308, 309, 310, 0, 311, 312, 0, + 0, 313, 314, 315, 0, 0, 316, 317, 0, 319, + 0, 321, 322, 323, 324, 325, 326, 327, 328, 329, + 330, 331, 0, 332, 333, 334, 335, 336, 337, 338, + 339, 340, 0, 341, 342, 343, 344, 345, 346, 0, + 347, 348, 349, 350, 351, 352, 353, 354, 0, 355, + 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, + 366, 367, 0, 368, 369, 0, 371, 372, 373, 374, + 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, + 385, 0, 386, 387, 388, 389, 390, 0, 392, 393, + 394, 395, 396, 0, 398, 399, 400, 401, 0, 402, + 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, + 413, 513, 415, 416, 417, 0, 418, 419, 0, 420, + 0, 422, 423, 424, 425, 426, 0, 427, 428, 0, + 0, 429, 430, 431, 432, 433, 0, 434, 435, 436, + 437, 438, 439, 440, 441, 0, 0, 442, 443, 444, + 445, 446, 0, 0, 448, 449, 450, 451, 452, 453, + 454, 0, 455, 0, 457, 458, 459, 460, 461, 0, + 0, 462, 0, 0, 463, 464, 465, 466, 467, 468, + 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, + 479, 480, 481, 482, 483, 507, 0, 508, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 94, 95, 96, 97, 98, 99, 100, + 101, 0, 102, 103, 104, 0, 0, 0, 0, 0, + 0, 0, 105, 106, 0, 107, 108, 109, 0, 111, + 112, 113, 114, 115, 0, 117, 118, 0, 119, 120, + 121, 122, 123, 124, 0, 0, 125, 126, 127, 128, + 129, 0, 130, 131, 132, 133, 134, 0, 0, 0, + 136, 137, 138, 139, 140, 141, 0, 143, 144, 145, + 0, 146, 147, 148, 149, 150, 151, 0, 0, 153, + 154, 155, 0, 0, 0, 0, 0, 0, 0, 161, + 162, 163, 164, 165, 166, 167, 168, 169, 170, 0, + 171, 0, 172, 173, 174, 175, 176, 177, 0, 178, + 179, 180, 181, 182, 0, 0, 183, 184, 185, 186, + 187, 0, 188, 189, 190, 0, 191, 192, 193, 0, + 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, + 204, 0, 205, 0, 206, 207, 208, 209, 0, 210, + 0, 211, 0, 0, 0, 214, 215, 510, 0, 218, + 0, 219, 0, 220, 221, 222, 0, 223, 224, 225, + 226, 227, 2578, 229, 0, 231, 232, 233, 234, 0, + 235, 236, 237, 238, 239, 240, 0, 241, 0, 243, + 244, 245, 246, 247, 248, 249, 250, 0, 251, 0, + 252, 0, 0, 255, 0, 257, 258, 259, 260, 261, + 262, 0, 0, 263, 0, 265, 0, 0, 267, 268, + 269, 0, 0, 270, 271, 272, 273, 274, 511, 276, + 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, + 287, 288, 289, 290, 291, 292, 293, 294, 0, 296, + 297, 298, 299, 300, 0, 301, 302, 0, 304, 0, + 305, 306, 307, 308, 309, 310, 0, 311, 312, 0, + 0, 313, 314, 315, 0, 0, 316, 317, 0, 319, + 0, 321, 322, 323, 324, 325, 326, 327, 328, 329, + 330, 331, 0, 332, 333, 334, 335, 336, 337, 338, + 339, 340, 0, 341, 342, 343, 344, 345, 346, 0, + 347, 348, 349, 350, 351, 352, 353, 354, 0, 355, + 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, + 366, 367, 0, 368, 369, 0, 371, 372, 373, 374, + 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, + 385, 0, 386, 387, 388, 389, 390, 0, 392, 393, + 394, 395, 396, 0, 398, 399, 400, 401, 0, 402, + 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, + 413, 513, 415, 416, 417, 0, 418, 419, 0, 420, + 0, 422, 423, 424, 425, 426, 0, 427, 428, 0, + 0, 429, 430, 431, 432, 433, 0, 434, 435, 436, + 437, 438, 439, 440, 441, 0, 0, 442, 443, 444, + 445, 446, 0, 0, 448, 449, 450, 451, 452, 453, + 454, 0, 455, 0, 457, 458, 459, 460, 461, 0, + 0, 462, 0, 0, 463, 464, 465, 466, 467, 468, + 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, + 479, 480, 481, 482, 483, 507, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 94, 95, 96, 97, 98, 99, 100, + 101, 0, 102, 103, 104, 0, 0, 0, 0, 0, + 0, 0, 105, 106, 0, 107, 108, 109, 0, 111, + 112, 113, 114, 115, 0, 117, 118, 0, 119, 120, + 121, 122, 123, 124, 0, 0, 125, 126, 127, 128, + 129, 0, 130, 131, 132, 133, 134, 0, 0, 0, + 136, 137, 138, 139, 140, 141, 0, 143, 144, 145, + 0, 146, 147, 148, 149, 150, 151, 0, 0, 153, + 154, 155, 0, 0, 0, 0, 0, 0, 0, 161, + 162, 163, 164, 165, 166, 167, 168, 169, 170, 0, + 171, 0, 172, 173, 174, 175, 176, 177, 0, 178, + 179, 180, 181, 182, 0, 0, 183, 184, 185, 186, + 187, 0, 188, 189, 190, 0, 191, 192, 193, 0, + 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, + 204, 0, 205, 0, 206, 207, 208, 209, 0, 210, + 0, 211, 0, 0, 0, 214, 215, 510, 0, 218, + 0, 219, 0, 220, 221, 222, 0, 223, 224, 225, + 226, 227, 228, 229, 0, 231, 232, 233, 234, 0, + 235, 236, 237, 238, 239, 240, 0, 241, 0, 243, + 244, 245, 246, 247, 248, 249, 250, 0, 251, 0, + 252, 0, 0, 255, 0, 257, 258, 259, 260, 261, + 262, 0, 0, 263, 0, 265, 0, 0, 267, 268, + 269, 0, 0, 270, 271, 272, 273, 274, 511, 276, + 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, + 287, 288, 289, 290, 291, 292, 293, 294, 0, 296, + 297, 298, 299, 300, 0, 301, 302, 0, 304, 0, + 305, 306, 307, 308, 309, 310, 0, 311, 312, 0, + 0, 313, 314, 315, 0, 0, 316, 317, 0, 319, + 0, 321, 322, 323, 324, 325, 326, 327, 328, 329, + 330, 331, 0, 332, 333, 334, 335, 336, 337, 338, + 339, 340, 0, 341, 342, 343, 344, 345, 346, 0, + 347, 348, 349, 350, 351, 352, 353, 354, 0, 355, + 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, + 366, 367, 0, 368, 369, 0, 371, 372, 373, 374, + 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, + 385, 0, 386, 387, 388, 389, 390, 0, 392, 393, + 394, 395, 396, 0, 398, 399, 400, 401, 0, 402, + 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, + 413, 513, 415, 416, 417, 0, 418, 419, 0, 420, + 0, 422, 423, 424, 425, 426, 0, 427, 428, 0, + 0, 429, 430, 431, 432, 433, 0, 434, 435, 436, + 437, 438, 439, 440, 441, 0, 0, 442, 443, 444, + 445, 446, 0, 0, 448, 449, 450, 451, 452, 453, + 454, 0, 455, 0, 457, 458, 459, 460, 461, 0, + 0, 462, 0, 0, 463, 464, 465, 466, 467, 468, + 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, + 479, 480, 481, 482, 483, 507, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 94, 95, 96, 97, 98, 99, 100, + 101, 0, 102, 103, 104, 0, 0, 0, 0, 0, + 0, 0, 105, 106, 0, 107, 108, 109, 0, 111, + 112, 113, 114, 115, 0, 117, 118, 0, 119, 120, + 121, 122, 123, 124, 0, 0, 125, 126, 127, 128, + 129, 0, 130, 131, 132, 133, 134, 0, 0, 0, + 136, 137, 138, 139, 140, 141, 0, 143, 144, 145, + 0, 146, 147, 148, 149, 150, 151, 0, 0, 153, + 154, 155, 0, 0, 0, 0, 0, 0, 0, 161, + 162, 163, 164, 165, 166, 167, 168, 169, 170, 0, + 171, 0, 172, 173, 174, 175, 176, 177, 0, 178, + 179, 180, 181, 182, 0, 0, 183, 184, 185, 186, + 187, 0, 188, 189, 190, 0, 191, 192, 193, 0, + 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, + 204, 0, 205, 0, 206, 207, 208, 209, 0, 210, + 0, 211, 0, 0, 0, 214, 215, 510, 0, 602, + 0, 219, 0, 220, 221, 222, 0, 223, 224, 225, + 226, 227, 228, 229, 0, 231, 232, 233, 234, 0, + 235, 236, 237, 238, 239, 240, 0, 241, 0, 243, + 244, 245, 246, 247, 248, 249, 250, 0, 251, 0, + 252, 0, 0, 255, 0, 257, 258, 259, 260, 261, + 262, 0, 0, 263, 0, 265, 0, 0, 267, 268, + 603, 0, 0, 270, 271, 272, 273, 274, 511, 276, + 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, + 287, 288, 289, 290, 291, 292, 293, 294, 0, 296, + 297, 298, 299, 300, 0, 301, 302, 0, 304, 0, + 305, 306, 307, 308, 309, 310, 0, 311, 312, 0, + 0, 313, 314, 315, 0, 0, 316, 317, 0, 319, + 0, 321, 322, 323, 324, 325, 326, 327, 328, 329, + 330, 331, 0, 332, 333, 334, 335, 336, 337, 338, + 339, 340, 0, 341, 342, 343, 344, 345, 346, 0, + 347, 348, 349, 350, 351, 352, 353, 354, 0, 355, + 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, + 366, 367, 0, 368, 369, 0, 371, 372, 373, 374, + 375, 376, 377, 378, 604, 380, 381, 382, 383, 384, + 385, 0, 386, 387, 388, 389, 605, 0, 392, 393, + 394, 395, 396, 0, 398, 399, 400, 401, 0, 402, + 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, + 413, 513, 415, 416, 417, 0, 418, 419, 0, 420, + 0, 422, 423, 424, 425, 426, 0, 606, 428, 0, + 0, 429, 430, 431, 432, 433, 0, 434, 435, 436, + 437, 438, 439, 440, 441, 0, 0, 442, 443, 444, + 445, 446, 0, 0, 448, 449, 450, 451, 452, 453, + 454, 0, 455, 0, 457, 458, 459, 460, 461, 0, + 0, 462, 0, 0, 463, 464, 465, 466, 467, 468, + 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, + 479, 480, 481, 482, 483, 507, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 94, 95, 96, 97, 98, 99, 100, + 101, 0, 102, 103, 104, 0, 0, 0, 0, 0, + 0, 0, 105, 106, 0, 107, 108, 109, 0, 111, + 112, 113, 114, 115, 0, 117, 118, 0, 119, 120, + 121, 122, 123, 124, 0, 0, 125, 126, 127, 128, + 129, 0, 130, 131, 132, 133, 134, 0, 0, 0, + 136, 137, 138, 139, 140, 141, 0, 143, 144, 145, + 0, 146, 147, 148, 149, 150, 151, 0, 0, 153, + 154, 155, 0, 0, 0, 0, 0, 0, 0, 161, + 162, 163, 164, 165, 166, 167, 168, 169, 170, 0, + 171, 0, 172, 173, 174, 175, 176, 177, 0, 178, + 179, 180, 181, 182, 0, 0, 183, 184, 185, 186, + 187, 0, 188, 189, 190, 0, 191, 192, 193, 0, + 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, + 204, 0, 205, 0, 206, 207, 208, 209, 0, 210, + 0, 211, 0, 0, 0, 214, 215, 510, 0, 218, + 0, 219, 0, 220, 221, 222, 0, 223, 224, 225, + 226, 227, 678, 229, 0, 231, 232, 233, 234, 0, + 235, 236, 237, 238, 239, 240, 0, 241, 0, 243, + 244, 245, 246, 247, 248, 249, 250, 0, 251, 0, + 252, 0, 0, 255, 0, 257, 258, 259, 260, 261, + 262, 0, 0, 263, 0, 265, 0, 0, 267, 268, + 269, 0, 0, 270, 271, 272, 273, 274, 511, 276, + 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, + 287, 288, 289, 290, 291, 292, 293, 294, 0, 296, + 297, 298, 299, 300, 0, 301, 302, 0, 304, 0, + 305, 306, 307, 308, 309, 310, 0, 311, 312, 0, + 0, 313, 314, 315, 0, 0, 316, 317, 0, 319, + 0, 321, 322, 323, 324, 325, 326, 327, 328, 329, + 330, 331, 0, 332, 333, 334, 335, 336, 337, 338, + 339, 340, 0, 341, 342, 343, 344, 345, 346, 0, + 347, 348, 349, 350, 351, 352, 353, 354, 0, 355, + 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, + 366, 367, 0, 368, 369, 0, 371, 372, 373, 374, + 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, + 385, 0, 386, 387, 388, 389, 390, 0, 392, 393, + 394, 395, 396, 0, 398, 399, 400, 401, 0, 402, + 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, + 413, 513, 415, 416, 417, 0, 418, 419, 0, 420, + 0, 422, 423, 424, 425, 426, 0, 427, 428, 0, + 0, 429, 430, 431, 432, 433, 0, 434, 435, 436, + 437, 438, 439, 440, 441, 0, 0, 442, 443, 444, + 445, 446, 0, 0, 448, 449, 450, 451, 452, 453, + 454, 0, 455, 0, 457, 458, 459, 460, 461, 0, + 0, 462, 0, 0, 463, 464, 465, 466, 467, 468, + 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, + 479, 480, 481, 482, 483, 507, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 94, 95, 96, 97, 98, 99, 100, + 101, 0, 102, 103, 104, 0, 0, 0, 0, 0, + 0, 0, 105, 106, 0, 107, 108, 109, 0, 111, + 112, 113, 114, 115, 0, 117, 118, 0, 119, 120, + 121, 122, 123, 124, 0, 0, 125, 126, 127, 128, + 129, 0, 130, 131, 132, 133, 134, 0, 0, 0, + 136, 137, 138, 139, 140, 141, 0, 143, 144, 145, + 0, 146, 147, 148, 149, 150, 151, 0, 0, 153, + 154, 155, 0, 0, 0, 0, 0, 0, 0, 161, + 162, 163, 164, 165, 166, 167, 168, 169, 170, 0, + 171, 0, 172, 173, 174, 175, 176, 177, 0, 178, + 179, 180, 181, 182, 0, 0, 183, 184, 185, 186, + 187, 0, 188, 189, 190, 0, 191, 192, 193, 0, + 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, + 204, 0, 205, 0, 206, 207, 208, 209, 0, 210, + 0, 211, 0, 0, 0, 214, 215, 510, 0, 218, + 0, 219, 0, 220, 221, 222, 0, 223, 224, 225, + 226, 227, 774, 229, 0, 231, 232, 233, 234, 0, + 235, 236, 237, 238, 239, 240, 0, 241, 0, 243, + 244, 245, 246, 247, 248, 249, 250, 0, 251, 0, + 252, 0, 0, 255, 0, 257, 258, 259, 260, 261, + 262, 0, 0, 263, 0, 265, 0, 0, 267, 268, + 269, 0, 0, 270, 271, 272, 273, 274, 511, 276, + 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, + 287, 288, 289, 290, 291, 292, 293, 294, 0, 296, + 297, 298, 299, 300, 0, 301, 302, 0, 304, 0, + 305, 306, 307, 308, 309, 310, 0, 311, 312, 0, + 0, 313, 314, 315, 0, 0, 316, 317, 0, 319, + 0, 321, 322, 323, 324, 325, 326, 327, 328, 329, + 330, 331, 0, 332, 333, 334, 335, 336, 337, 338, + 339, 340, 0, 341, 342, 343, 344, 345, 346, 0, + 347, 348, 349, 350, 351, 352, 353, 354, 0, 355, + 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, + 366, 367, 0, 368, 369, 0, 371, 372, 373, 374, + 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, + 385, 0, 386, 387, 388, 389, 390, 0, 392, 393, + 394, 395, 396, 0, 398, 399, 400, 401, 0, 402, + 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, + 413, 513, 415, 416, 417, 0, 418, 419, 0, 420, + 0, 422, 423, 424, 425, 426, 0, 427, 428, 0, + 0, 429, 430, 431, 432, 433, 0, 434, 435, 436, + 437, 438, 439, 440, 441, 0, 0, 442, 443, 444, + 445, 446, 0, 0, 448, 449, 450, 451, 452, 453, + 454, 0, 455, 0, 457, 458, 459, 460, 461, 0, + 0, 462, 0, 0, 463, 464, 465, 466, 467, 468, + 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, + 479, 480, 481, 482, 483, 507, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 94, 95, 96, 97, 98, 99, 100, + 101, 0, 102, 103, 104, 0, 0, 0, 0, 0, + 0, 0, 105, 106, 0, 107, 108, 109, 0, 111, + 112, 113, 114, 115, 0, 117, 118, 0, 119, 120, + 121, 122, 123, 124, 0, 0, 125, 126, 127, 128, + 129, 0, 130, 131, 132, 133, 134, 0, 0, 0, + 136, 137, 138, 139, 140, 141, 0, 143, 144, 145, + 0, 146, 147, 148, 149, 150, 151, 0, 0, 153, + 154, 155, 0, 0, 0, 0, 0, 0, 0, 161, + 162, 163, 164, 165, 166, 167, 168, 169, 170, 0, + 171, 0, 172, 173, 174, 175, 176, 177, 0, 178, + 179, 180, 181, 182, 0, 0, 183, 184, 185, 186, + 187, 0, 188, 189, 190, 0, 191, 192, 193, 0, + 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, + 204, 0, 205, 0, 206, 207, 208, 209, 0, 210, + 0, 211, 0, 0, 0, 214, 215, 510, 0, 218, + 0, 219, 0, 220, 221, 222, 0, 223, 224, 225, + 226, 227, 228, 229, 0, 231, 232, 233, 234, 0, + 235, 236, 237, 238, 239, 240, 0, 241, 0, 243, + 244, 245, 246, 247, 248, 249, 250, 0, 251, 0, + 252, 0, 0, 255, 0, 257, 258, 259, 260, 261, + 262, 0, 0, 263, 0, 265, 0, 0, 267, 268, + 269, 0, 0, 270, 271, 272, 273, 274, 511, 276, + 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, + 287, 288, 289, 290, 291, 292, 293, 294, 0, 296, + 297, 298, 299, 300, 0, 301, 302, 0, 304, 0, + 305, 306, 307, 308, 309, 310, 0, 311, 312, 0, + 0, 313, 314, 315, 0, 0, 316, 317, 0, 319, + 0, 321, 322, 323, 324, 325, 326, 327, 328, 329, + 330, 331, 0, 332, 333, 334, 335, 336, 337, 338, + 339, 340, 0, 341, 342, 343, 344, 345, 346, 0, + 347, 348, 349, 350, 351, 352, 353, 354, 0, 355, + 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, + 366, 367, 0, 368, 369, 0, 371, 372, 373, 374, + 375, 376, 377, 378, 604, 380, 381, 382, 383, 384, + 385, 0, 386, 387, 388, 389, 390, 0, 392, 393, + 394, 395, 396, 0, 398, 399, 400, 401, 0, 402, + 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, + 413, 513, 415, 416, 417, 0, 418, 419, 0, 420, + 0, 422, 423, 424, 425, 426, 0, 606, 428, 0, + 0, 429, 430, 431, 432, 433, 0, 434, 435, 436, + 437, 438, 439, 440, 441, 0, 0, 442, 443, 444, + 445, 446, 0, 0, 448, 449, 450, 451, 452, 453, + 454, 0, 455, 0, 457, 458, 459, 460, 461, 0, + 0, 462, 0, 0, 463, 464, 465, 466, 467, 468, + 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, + 479, 480, 481, 482, 483, 507, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 94, 95, 96, 97, 98, 99, 100, + 101, 0, 102, 103, 104, 0, 0, 0, 0, 0, + 1463, 0, 105, 106, 0, 107, 108, 109, 0, 111, + 112, 113, 114, 115, 0, 117, 118, 0, 119, 120, + 121, 122, 123, 124, 0, 0, 125, 126, 127, 128, + 129, 0, 130, 131, 132, 133, 134, 0, 0, 0, + 136, 137, 138, 139, 140, 141, 0, 143, 144, 145, + 0, 146, 147, 148, 149, 150, 151, 0, 0, 153, + 154, 155, 0, 0, 0, 0, 0, 0, 0, 161, + 162, 163, 164, 165, 166, 167, 168, 169, 170, 0, + 171, 0, 172, 173, 174, 175, 176, 177, 0, 178, + 179, 180, 181, 182, 0, 0, 183, 184, 185, 186, + 187, 0, 188, 189, 190, 0, 191, 192, 193, 0, + 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, + 204, 0, 205, 0, 206, 207, 208, 209, 0, 210, + 0, 211, 0, 0, 0, 214, 215, 510, 0, 218, + 0, 219, 0, 220, 221, 222, 0, 223, 224, 225, + 226, 227, 228, 229, 0, 231, 232, 233, 234, 0, + 235, 236, 237, 238, 239, 240, 0, 241, 0, 243, + 244, 245, 246, 247, 248, 249, 250, 0, 251, 0, + 252, 0, 0, 255, 0, 257, 258, 259, 260, 261, + 262, 0, 0, 263, 0, 265, 0, 0, 267, 268, + 269, 0, 0, 270, 271, 272, 273, 274, 511, 276, + 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, + 287, 288, 289, 290, 291, 292, 293, 294, 0, 296, + 297, 298, 299, 300, 0, 301, 302, 0, 304, 0, + 305, 306, 307, 308, 309, 310, 0, 311, 312, 0, + 0, 313, 314, 315, 0, 0, 316, 317, 0, 319, + 0, 321, 322, 323, 324, 325, 326, 327, 328, 329, + 330, 331, 0, 332, 333, 334, 335, 336, 337, 338, + 339, 340, 0, 341, 342, 343, 344, 345, 346, 0, + 347, 348, 349, 350, 351, 352, 353, 354, 0, 355, + 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, + 366, 367, 0, 368, 369, 0, 371, 372, 373, 374, + 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, + 385, 0, 386, 387, 388, 389, 390, 0, 0, 393, + 394, 395, 396, 0, 398, 399, 400, 401, 0, 402, + 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, + 413, 513, 415, 416, 417, 0, 418, 419, 0, 420, + 0, 422, 423, 424, 425, 426, 0, 427, 428, 0, + 0, 429, 430, 431, 432, 433, 0, 434, 435, 436, + 437, 438, 439, 440, 441, 0, 0, 442, 443, 444, + 445, 446, 0, 0, 448, 449, 450, 451, 452, 453, + 454, 0, 455, 0, 457, 458, 459, 460, 461, 0, + 0, 462, 0, 0, 463, 464, 465, 466, 467, 468, + 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, + 479, 480, 481, 482, 483, 507, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 94, 95, 96, 97, 98, 99, 100, + 101, 0, 102, 103, 104, 0, 0, 0, 0, 0, + 0, 0, 105, 106, 0, 107, 108, 109, 0, 111, + 112, 113, 114, 115, 0, 117, 118, 0, 119, 120, + 121, 122, 123, 124, 0, 0, 125, 126, 127, 128, + 129, 0, 130, 131, 132, 133, 134, 0, 0, 0, + 136, 137, 138, 139, 140, 141, 0, 143, 144, 145, + 0, 146, 147, 148, 149, 150, 151, 0, 0, 153, + 154, 155, 0, 0, 0, 0, 0, 0, 0, 161, + 162, 163, 164, 165, 166, 167, 168, 169, 170, 0, + 171, 0, 172, 173, 174, 175, 176, 177, 0, 178, + 179, 180, 181, 182, 0, 0, 183, 184, 185, 186, + 187, 0, 188, 189, 190, 0, 191, 192, 193, 0, + 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, + 204, 0, 205, 0, 206, 207, 208, 209, 0, 210, + 0, 211, 0, 0, 0, 214, 215, 510, 0, 218, + 0, 219, 0, 220, 221, 222, 0, 223, 224, 225, + 226, 227, 1601, 229, 0, 231, 232, 233, 234, 0, + 235, 236, 237, 238, 239, 240, 0, 241, 0, 243, + 244, 245, 246, 247, 248, 249, 250, 0, 251, 0, + 252, 0, 0, 255, 0, 257, 258, 259, 260, 261, + 262, 0, 0, 263, 0, 265, 0, 0, 267, 268, + 269, 0, 0, 270, 271, 272, 273, 274, 511, 276, + 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, + 287, 288, 289, 290, 291, 292, 293, 294, 0, 296, + 297, 298, 299, 300, 0, 301, 302, 0, 304, 0, + 305, 306, 307, 308, 309, 310, 0, 311, 312, 0, + 0, 313, 314, 315, 0, 0, 316, 317, 0, 319, + 0, 321, 322, 323, 324, 325, 326, 327, 328, 329, + 330, 331, 0, 332, 333, 334, 335, 336, 337, 338, + 339, 340, 0, 341, 342, 343, 344, 345, 346, 0, + 347, 348, 349, 350, 351, 352, 353, 354, 0, 355, + 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, + 366, 367, 0, 368, 369, 0, 371, 372, 373, 374, + 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, + 385, 0, 386, 387, 388, 389, 390, 0, 392, 393, + 394, 395, 396, 0, 398, 399, 400, 401, 0, 402, + 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, + 413, 513, 415, 416, 417, 0, 418, 419, 0, 420, + 0, 422, 423, 424, 425, 426, 0, 427, 428, 0, + 0, 429, 430, 431, 432, 433, 0, 434, 435, 436, + 437, 438, 439, 440, 441, 0, 0, 442, 443, 444, + 445, 446, 0, 0, 448, 449, 450, 451, 452, 453, + 454, 0, 455, 0, 457, 458, 459, 460, 461, 0, + 0, 462, 0, 0, 463, 464, 465, 466, 467, 468, + 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, + 479, 480, 481, 482, 483, 507, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 94, 95, 96, 97, 98, 99, 100, + 101, 0, 102, 103, 104, 0, 0, 0, 0, 0, + 0, 0, 105, 106, 0, 107, 108, 109, 0, 111, + 112, 113, 114, 115, 0, 117, 118, 0, 119, 120, + 121, 122, 123, 124, 0, 0, 125, 126, 127, 128, + 129, 0, 130, 131, 132, 133, 134, 0, 0, 0, + 136, 137, 138, 139, 140, 141, 0, 143, 144, 145, + 0, 146, 147, 148, 149, 150, 151, 0, 0, 153, + 154, 155, 0, 0, 0, 0, 0, 0, 0, 161, + 162, 163, 164, 165, 166, 167, 168, 169, 170, 0, + 171, 0, 172, 173, 174, 175, 176, 177, 0, 178, + 179, 180, 181, 182, 0, 0, 183, 184, 185, 186, + 187, 0, 188, 189, 190, 0, 191, 192, 193, 0, + 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, + 204, 0, 205, 0, 206, 207, 208, 209, 0, 210, + 0, 211, 0, 0, 0, 214, 215, 510, 0, 218, + 0, 219, 0, 220, 221, 222, 0, 223, 224, 225, + 226, 227, 1885, 229, 0, 231, 232, 233, 234, 0, + 235, 236, 237, 238, 239, 240, 0, 241, 0, 243, + 244, 245, 246, 247, 248, 249, 250, 0, 251, 0, + 252, 0, 0, 255, 0, 257, 258, 259, 260, 261, + 262, 0, 0, 263, 0, 265, 0, 0, 267, 268, + 269, 0, 0, 270, 271, 272, 273, 274, 511, 276, + 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, + 287, 288, 289, 290, 291, 292, 293, 294, 0, 296, + 297, 298, 299, 300, 0, 301, 302, 0, 304, 0, + 305, 306, 307, 308, 309, 310, 0, 311, 312, 0, + 0, 313, 314, 315, 0, 0, 316, 317, 0, 319, + 0, 321, 322, 323, 324, 325, 326, 327, 328, 329, + 330, 331, 0, 332, 333, 334, 335, 336, 337, 338, + 339, 340, 0, 341, 342, 343, 344, 345, 346, 0, + 347, 348, 349, 350, 351, 352, 353, 354, 0, 355, + 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, + 366, 367, 0, 368, 369, 0, 371, 372, 373, 374, + 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, + 385, 0, 386, 387, 388, 389, 390, 0, 392, 393, + 394, 395, 396, 0, 398, 399, 400, 401, 0, 402, + 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, + 413, 513, 415, 416, 417, 0, 418, 419, 0, 420, + 0, 422, 423, 424, 425, 426, 0, 427, 428, 0, + 0, 429, 430, 431, 432, 433, 0, 434, 435, 436, + 437, 438, 439, 440, 441, 0, 0, 442, 443, 444, + 445, 446, 0, 0, 448, 449, 450, 451, 452, 453, + 454, 0, 455, 0, 457, 458, 459, 460, 461, 0, + 0, 462, 0, 0, 463, 464, 465, 466, 467, 468, + 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, + 479, 480, 481, 482, 483, 507, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 94, 95, 96, 97, 98, 99, 100, + 101, 0, 102, 103, 104, 0, 0, 0, 0, 0, + 0, 0, 105, 106, 0, 107, 108, 109, 0, 111, + 112, 113, 114, 115, 0, 117, 118, 0, 119, 120, + 121, 122, 123, 124, 0, 0, 125, 126, 127, 128, + 129, 0, 130, 131, 132, 133, 134, 0, 0, 0, + 136, 137, 138, 139, 140, 141, 0, 143, 144, 145, + 0, 146, 147, 148, 149, 150, 151, 0, 0, 153, + 154, 155, 0, 0, 0, 0, 0, 0, 0, 161, + 162, 163, 164, 165, 166, 167, 168, 169, 170, 0, + 171, 0, 172, 173, 174, 175, 176, 177, 0, 178, + 179, 180, 181, 182, 0, 0, 183, 184, 185, 186, + 187, 0, 188, 189, 190, 0, 191, 192, 193, 0, + 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, + 204, 0, 205, 0, 206, 207, 208, 209, 0, 210, + 0, 211, 0, 0, 0, 214, 215, 510, 0, 218, + 0, 219, 0, 220, 221, 222, 0, 223, 224, 225, + 226, 227, 1900, 229, 0, 231, 232, 233, 234, 0, + 235, 236, 237, 238, 239, 240, 0, 241, 0, 243, + 244, 245, 246, 247, 248, 249, 250, 0, 251, 0, + 252, 0, 0, 255, 0, 257, 258, 259, 260, 261, + 262, 0, 0, 263, 0, 265, 0, 0, 267, 268, + 269, 0, 0, 270, 271, 272, 273, 274, 511, 276, + 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, + 287, 288, 289, 290, 291, 292, 293, 294, 0, 296, + 297, 298, 299, 300, 0, 301, 302, 0, 304, 0, + 305, 306, 307, 308, 309, 310, 0, 311, 312, 0, + 0, 313, 314, 315, 0, 0, 316, 317, 0, 319, + 0, 321, 322, 323, 324, 325, 326, 327, 328, 329, + 330, 331, 0, 332, 333, 334, 335, 336, 337, 338, + 339, 340, 0, 341, 342, 343, 344, 345, 346, 0, + 347, 348, 349, 350, 351, 352, 353, 354, 0, 355, + 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, + 366, 367, 0, 368, 369, 0, 371, 372, 373, 374, + 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, + 385, 0, 386, 387, 388, 389, 390, 0, 392, 393, + 394, 395, 396, 0, 398, 399, 400, 401, 0, 402, + 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, + 413, 513, 415, 416, 417, 0, 418, 419, 0, 420, + 0, 422, 423, 424, 425, 426, 0, 427, 428, 0, + 0, 429, 430, 431, 432, 433, 0, 434, 435, 436, + 437, 438, 439, 440, 441, 0, 0, 442, 443, 444, + 445, 446, 0, 0, 448, 449, 450, 451, 452, 453, + 454, 0, 455, 0, 457, 458, 459, 460, 461, 0, + 0, 462, 0, 0, 463, 464, 465, 466, 467, 468, + 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, + 479, 480, 481, 482, 483, 2507, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 94, 95, 96, 97, 98, 99, 100, + 101, 0, 102, 103, 104, 0, 0, 0, 0, 0, + 0, 0, 105, 106, 0, 107, 108, 109, 2508, 111, + 112, 113, 0, 701, 2509, 703, 704, 0, 119, 120, + 121, 122, 123, 124, 0, 0, 125, 126, 705, 706, + 129, 0, 130, 131, 132, 133, 0, 0, 2510, 0, + 136, 137, 138, 139, 140, 141, 2511, 143, 144, 145, + 0, 146, 147, 148, 149, 150, 151, 0, 2512, 153, + 154, 155, 2513, 2514, 2515, 2516, 0, 0, 2517, 161, + 162, 163, 164, 165, 166, 167, 715, 716, 170, 0, + 171, 0, 172, 173, 174, 175, 176, 177, 0, 178, + 179, 180, 181, 182, 0, 0, 183, 184, 717, 186, + 187, 0, 188, 189, 190, 0, 191, 192, 193, 0, + 194, 195, 196, 197, 0, 199, 200, 201, 202, 203, + 0, 0, 205, 0, 206, 207, 718, 209, 0, 210, + 0, 211, 2518, 0, 2519, 214, 215, 2520, 2521, 218, + 0, 219, 0, 0, 0, 222, 0, 223, 224, 225, + 226, 227, 228, 229, 2522, 231, 232, 233, 234, 0, + 235, 236, 237, 238, 239, 240, 0, 241, 2523, 0, + 244, 245, 246, 247, 248, 725, 726, 0, 727, 0, + 252, 2524, 2525, 255, 2526, 257, 258, 259, 260, 261, + 262, 0, 0, 263, 2527, 265, 2528, 0, 267, 268, + 269, 0, 0, 270, 271, 272, 273, 274, 2721, 276, + 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, + 287, 288, 289, 290, 291, 292, 293, 734, 2530, 736, + 297, 298, 299, 0, 0, 301, 302, 2532, 304, 0, + 0, 306, 738, 308, 309, 310, 0, 311, 312, 0, + 0, 313, 314, 315, 0, 0, 316, 0, 2534, 319, + 2535, 0, 322, 323, 324, 325, 326, 327, 328, 329, + 330, 331, 0, 332, 333, 0, 335, 336, 0, 338, + 339, 340, 0, 341, 342, 343, 344, 345, 346, 0, + 347, 348, 349, 741, 351, 352, 353, 354, 0, 355, + 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, + 366, 367, 0, 368, 369, 2536, 371, 372, 373, 0, + 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, + 385, 0, 386, 387, 388, 389, 390, 2537, 392, 0, + 394, 395, 396, 2539, 398, 399, 747, 401, 0, 402, + 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, + 413, 2722, 415, 0, 417, 0, 418, 419, 0, 420, + 2541, 422, 423, 424, 425, 426, 0, 750, 751, 0, + 0, 429, 430, 0, 432, 0, 0, 434, 435, 2542, + 437, 438, 439, 440, 441, 0, 0, 442, 443, 444, + 445, 446, 2543, 0, 448, 449, 450, 451, 452, 0, + 754, 0, 455, 2544, 457, 458, 459, 460, 461, 0, + 0, 462, 0, 0, 463, 464, 465, 466, 467, 468, + 699, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 480, 481, 482, 483, 0, 0, 0, 94, 95, + 96, 97, 98, 99, 100, 101, 0, 102, 103, 104, + 0, 0, 0, 0, 0, 0, 0, 105, 106, 0, + 107, 108, 109, 700, 111, 112, 113, 0, 701, 702, + 703, 704, 0, 119, 120, 121, 122, 123, 124, 0, + 0, 125, 126, 705, 706, 129, 0, 130, 131, 132, + 133, 0, 0, 707, 0, 136, 137, 138, 139, 140, + 141, 708, 143, 144, 145, 0, 146, 147, 148, 149, + 150, 151, 0, 709, 153, 154, 155, 710, 711, 712, + 713, 0, 0, 714, 161, 162, 163, 164, 165, 166, + 167, 715, 716, 170, 0, 171, 0, 172, 173, 174, + 175, 176, 177, 0, 178, 179, 180, 181, 182, 0, + 0, 183, 184, 717, 186, 187, 0, 188, 189, 190, + 0, 191, 192, 193, 0, 194, 195, 196, 197, 0, + 199, 200, 201, 202, 203, 0, 0, 205, 0, 206, + 207, 718, 209, 0, 210, 0, 211, 719, 0, 720, + 214, 215, 0, 721, 218, 0, 219, 0, 0, 0, + 222, 0, 223, 224, 225, 226, 227, 228, 229, 723, + 231, 232, 233, 234, 0, 235, 236, 237, 238, 239, + 240, 0, 241, 724, 0, 244, 245, 246, 247, 248, + 725, 726, 0, 727, 0, 252, 728, 729, 255, 730, + 257, 258, 259, 260, 261, 262, 0, 0, 263, 731, + 265, 732, 0, 267, 268, 269, 0, 0, 270, 271, + 272, 273, 274, 0, 276, 277, 278, 279, 280, 281, + 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, + 292, 293, 734, 735, 736, 297, 298, 299, 0, 0, + 301, 302, 737, 304, 0, 0, 306, 738, 308, 309, + 310, 0, 311, 312, 0, 0, 313, 314, 315, 0, + 0, 316, 0, 739, 319, 740, 0, 322, 323, 324, + 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, + 0, 335, 336, 0, 338, 339, 340, 0, 341, 342, + 343, 344, 345, 346, 0, 347, 348, 349, 741, 351, + 352, 353, 354, 0, 355, 356, 357, 358, 359, 360, + 361, 362, 363, 364, 365, 366, 367, 0, 368, 369, + 742, 371, 372, 373, 0, 375, 376, 377, 378, 379, + 380, 381, 382, 383, 384, 385, 0, 386, 387, 388, + 389, 390, 744, 392, 0, 394, 395, 396, 746, 398, + 399, 747, 401, 0, 402, 403, 404, 405, 406, 407, + 408, 409, 410, 411, 412, 413, 0, 415, 0, 417, + 0, 418, 419, 0, 420, 749, 422, 423, 424, 425, + 426, 0, 750, 751, 0, 0, 429, 430, 0, 432, + 0, 0, 434, 435, 752, 437, 438, 439, 440, 441, + 0, 0, 442, 443, 444, 445, 446, 753, 0, 448, + 449, 450, 451, 452, 0, 754, 0, 455, 755, 457, + 458, 459, 460, 461, 0, 0, 462, 0, 0, 463, + 464, 465, 466, 467, 468, 507, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 480, 481, 482, 483, + 0, 0, 0, 94, 95, 96, 97, 98, 99, 100, + 101, 0, 102, 103, 104, 0, 0, 0, 0, 0, + 0, 0, 105, 106, 0, 107, 108, 109, 0, 111, + 112, 113, 114, 115, 0, 117, 118, 0, 119, 120, + 121, 122, 123, 124, 0, 0, 125, 126, 127, 128, + 129, 0, 130, 131, 132, 133, 134, 0, 0, 0, + 136, 137, 138, 139, 140, 141, 0, 143, 144, 145, + 0, 146, 147, 148, 149, 150, 151, 0, 0, 153, + 154, 155, 0, 0, 0, 0, 0, 0, 0, 161, + 162, 163, 164, 165, 166, 167, 168, 169, 170, 0, + 171, 0, 172, 173, 174, 175, 176, 177, 0, 178, + 179, 180, 181, 182, 0, 0, 183, 184, 185, 186, + 187, 0, 188, 189, 190, 0, 191, 192, 193, 0, + 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, + 204, 0, 205, 0, 206, 207, 208, 209, 0, 210, + 0, 211, 0, 0, 0, 214, 215, 510, 0, 218, + 0, 219, 0, 220, 221, 222, 0, 223, 224, 225, + 226, 227, 228, 229, 0, 231, 232, 233, 234, 0, + 235, 236, 237, 238, 239, 240, 0, 241, 0, 243, + 244, 245, 246, 247, 248, 249, 250, 0, 251, 0, + 252, 0, 0, 255, 0, 257, 258, 259, 260, 261, + 262, 0, 0, 263, 0, 265, 0, 0, 267, 268, + 269, 0, 0, 270, 271, 272, 273, 274, 511, 276, + 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, + 287, 288, 289, 290, 291, 292, 293, 294, 0, 296, + 297, 298, 299, 300, 0, 301, 302, 0, 304, 0, + 305, 306, 307, 308, 309, 310, 0, 311, 312, 0, + 0, 313, 314, 315, 0, 0, 316, 317, 0, 319, + 0, 321, 322, 323, 324, 325, 326, 327, 0, 329, + 330, 331, 0, 332, 333, 334, 335, 336, 337, 338, + 339, 340, 0, 341, 342, 343, 344, 345, 346, 0, + 347, 0, 349, 350, 351, 352, 353, 354, 0, 355, + 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, + 366, 367, 0, 368, 369, 0, 371, 372, 373, 374, + 0, 376, 377, 378, 379, 380, 381, 382, 383, 384, + 385, 0, 386, 387, 388, 389, 390, 0, 392, 393, + 394, 395, 396, 0, 398, 399, 400, 401, 0, 402, + 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, + 413, 513, 415, 416, 417, 0, 418, 419, 0, 420, + 0, 422, 423, 424, 425, 426, 0, 427, 428, 0, + 0, 429, 430, 431, 432, 433, 0, 434, 435, 436, + 437, 438, 439, 440, 441, 0, 0, 442, 443, 444, + 445, 446, 0, 0, 448, 449, 450, 451, 452, 453, + 454, 0, 455, 0, 457, 458, 459, 460, 461, 0, + 0, 462, 0, 0, 463, 464, 465, 466, 467, 468, + 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, + 479, 480, 481, 482, 483, 1, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 2, 2, 3, 4, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 5, 5, 0, 0, 0, 0, 0, + 0, 0, 6, 6, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 7, 7, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 8, 8, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 9, 9, 10, + 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 11, 11, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 12, 12, 0, 0, 0, 0, 0, 0, 0, + 0, 13, 13, 0, 0, 0, 0, 14, 14, 0, + 0, 0, 0, 0, 0, 15, 15, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 18, 18, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 20, 20, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 21, 21, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 22, 22, + 0, 23, 23, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 24, 24, 0, 0, 0, 0, 0, 0, 0, 25, + 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 26, 26, 0, 0, 0, 0, 0, + 27, 27, 0, 0, 28, 28, 0, 0, 0, 0, + 0, 0, 0, 0, 29, 29, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 30, 30, 0, 0, + 31, 31, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 32, 32, 0, 0, + 0, 33, 33, 0, 0, 545, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 34, 34, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, + 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 546, 36 +}; + +static const yytype_int16 yycheck[] = +{ + 6, 664, 0, 657, 0, 502, 20, 21, 623, 1074, + 0, 645, 6, 0, 0, 71, 952, 672, 6, 745, + 875, 16, 546, 36, 1015, 538, 666, 1073, 0, 677, + 1427, 0, 30, 0, 0, 1048, 875, 775, 618, 1849, + 778, 751, 1852, 540, 1352, 1034, 1819, 955, 1468, 16, + 1020, 1471, 73, 1896, 1050, 1053, 1815, 73, 31, 1249, + 1121, 2269, 657, 971, 659, 545, 661, 2243, 546, 1254, + 2243, 541, 1831, 881, 2268, 1777, 984, 1381, 1382, 1839, + 1892, 0, 1078, 0, 82, 0, 0, 0, 35, 0, + 2277, 2281, 21, 1712, 1713, 705, 706, 0, 1717, 0, + 0, 0, 0, 1955, 2146, 2098, 0, 2148, 5, 0, + 564, 0, 0, 2154, 1435, 52, 9, 90, 5, 0, + 0, 5, 0, 0, 0, 2588, 736, 0, 0, 11, + 0, 642, 60, 15, 1940, 1941, 1942, 992, 60, 5, + 3, 1760, 1761, 5, 5, 5, 642, 13, 14, 5, + 60, 13, 14, 5, 5, 5, 1968, 13, 14, 9, + 5, 5, 13, 14, 1578, 9, 1489, 782, 13, 14, + 33, 34, 171, 5, 0, 5, 13, 14, 5, 1220, + 172, 13, 14, 13, 14, 5, 13, 14, 151, 5, + 5, 5, 5, 13, 14, 5, 5, 13, 14, 13, + 14, 1487, 60, 13, 14, 5, 5, 1062, 5, 5, + 1065, 1066, 5, 5, 5, 119, 5, 1953, 5, 139, + 2032, 2033, 5, 42, 42, 95, 29, 122, 2639, 77, + 940, 5, 1815, 36, 171, 2574, 122, 1347, 189, 2725, + 88, 124, 11, 2854, 2179, 2584, 15, 2571, 1831, 2661, + 2757, 1347, 285, 716, 2555, 5, 77, 309, 293, 25, + 2153, 2481, 287, 109, 2675, 31, 29, 88, 5, 95, + 273, 75, 2085, 36, 43, 738, 109, 309, 1086, 3, + 4, 5, 4, 244, 122, 9, 61, 9, 378, 1097, + 900, 901, 1347, 50, 69, 369, 11, 13, 14, 137, + 15, 2822, 2923, 2211, 9, 276, 75, 170, 69, 172, + 773, 29, 334, 419, 334, 69, 926, 4, 36, 334, + 163, 29, 9, 396, 210, 293, 358, 117, 43, 39, + 11, 171, 406, 1242, 15, 1061, 951, 70, 120, 119, + 108, 120, 147, 2954, 191, 405, 2757, 3055, 38, 161, + 370, 875, 110, 2055, 2395, 2161, 880, 2398, 464, 999, + 75, 110, 2538, 117, 2406, 1354, 11, 2210, 2410, 38, + 15, 137, 2580, 447, 348, 461, 956, 172, 357, 488, + 440, 2793, 455, 2193, 406, 2293, 406, 2146, 3096, 2583, + 2853, 406, 501, 117, 499, 2207, 876, 2209, 43, 485, + 132, 362, 376, 2742, 11, 985, 369, 168, 15, 499, + 215, 193, 383, 0, 193, 3036, 126, 287, 417, 176, + 1356, 349, 2723, 235, 132, 499, 269, 349, 1337, 1044, + 75, 453, 1012, 453, 502, 192, 439, 270, 453, 349, + 197, 3052, 494, 406, 2063, 2064, 2065, 2066, 2067, 912, + 166, 2070, 2071, 2072, 2073, 2074, 2075, 2076, 2077, 2078, + 2079, 287, 494, 238, 2684, 2986, 499, 930, 503, 1777, + 994, 995, 284, 2884, 499, 85, 437, 234, 211, 493, + 350, 319, 250, 2703, 447, 175, 1475, 277, 293, 488, + 258, 349, 216, 2956, 1128, 1508, 494, 277, 461, 2311, + 347, 2394, 501, 1564, 2123, 2124, 175, 499, 2443, 2920, + 305, 2997, 3019, 2326, 238, 1625, 1347, 1821, 272, 129, + 499, 1842, 485, 277, 350, 291, 2850, 1592, 451, 2265, + 1626, 1042, 538, 546, 1857, 503, 499, 457, 499, 443, + 546, 393, 394, 1851, 439, 2735, 1042, 1588, 499, 2725, + 282, 546, 2725, 439, 1008, 2967, 1970, 1220, 441, 320, + 406, 2144, 499, 2146, 132, 579, 320, 581, 582, 417, + 1856, 1626, 1627, 1628, 1229, 503, 342, 417, 545, 463, + 346, 503, 336, 386, 403, 403, 200, 382, 451, 645, + 604, 461, 613, 503, 600, 601, 417, 613, 1659, 2640, + 497, 485, 499, 463, 501, 498, 2648, 2459, 3019, 2452, + 376, 2653, 499, 495, 2656, 499, 2955, 623, 497, 2612, + 499, 60, 1430, 386, 381, 485, 621, 1242, 433, 32, + 500, 165, 502, 499, 632, 461, 632, 499, 499, 499, + 1250, 1251, 632, 499, 2852, 632, 632, 2406, 499, 499, + 450, 2410, 581, 56, 499, 499, 662, 663, 664, 1322, + 632, 503, 499, 632, 637, 632, 632, 499, 386, 499, + 2860, 2858, 499, 434, 500, 0, 502, 624, 444, 499, + 434, 2441, 1537, 499, 499, 499, 499, 441, 499, 499, + 499, 16, 1547, 497, 304, 1550, 1336, 501, 344, 499, + 499, 117, 499, 499, 272, 30, 499, 499, 499, 1222, + 499, 36, 499, 632, 282, 632, 499, 632, 632, 632, + 1335, 632, 1337, 1712, 1713, 499, 495, 1342, 1717, 632, + 1393, 632, 632, 632, 632, 1248, 1376, 1377, 632, 745, + 1355, 632, 1733, 632, 632, 2447, 2788, 2055, 73, 499, + 1263, 632, 632, 2961, 632, 632, 632, 82, 2952, 632, + 632, 2573, 499, 1378, 2570, 177, 490, 491, 490, 491, + 1433, 1760, 1761, 189, 461, 244, 782, 492, 493, 494, + 495, 315, 1306, 117, 1424, 490, 491, 163, 1368, 1644, + 38, 1599, 1432, 25, 1434, 1626, 1627, 251, 485, 1296, + 1297, 411, 2106, 490, 491, 1644, 1303, 256, 257, 57, + 1995, 492, 493, 494, 495, 406, 2001, 224, 149, 3013, + 441, 2997, 441, 2406, 2997, 1305, 238, 2410, 1306, 1299, + 1738, 270, 2486, 422, 161, 25, 25, 187, 188, 365, + 2494, 31, 31, 2686, 151, 490, 491, 492, 493, 494, + 495, 25, 228, 1823, 1919, 2474, 272, 31, 25, 25, + 108, 875, 1525, 270, 31, 31, 880, 198, 1804, 875, + 1608, 29, 1385, 3081, 880, 881, 882, 497, 499, 1533, + 499, 501, 1943, 490, 491, 492, 493, 494, 495, 2648, + 161, 1629, 898, 1631, 2653, 166, 1634, 2656, 453, 1396, + 11, 11, 29, 244, 15, 137, 256, 257, 235, 876, + 349, 1506, 23, 499, 1811, 1812, 244, 366, 367, 5, + 329, 927, 80, 34, 35, 1588, 1560, 1561, 1562, 2119, + 2057, 89, 1928, 1581, 24, 2243, 1844, 376, 1533, 952, + 30, 947, 948, 949, 958, 951, 952, 137, 137, 358, + 488, 199, 25, 967, 410, 224, 412, 1552, 31, 2086, + 118, 499, 1557, 137, 235, 75, 300, 981, 437, 975, + 137, 137, 379, 463, 4, 499, 132, 88, 992, 9, + 994, 995, 77, 1981, 2827, 221, 1984, 2606, 994, 995, + 1605, 272, 82, 88, 119, 485, 277, 77, 410, 482, + 412, 270, 250, 159, 1517, 132, 1027, 1028, 88, 1030, + 258, 1027, 1028, 284, 1030, 501, 366, 367, 463, 244, + 244, 362, 270, 1029, 287, 437, 2405, 1033, 1034, 2788, + 499, 189, 439, 492, 362, 369, 2415, 494, 1044, 2418, + 485, 482, 244, 201, 501, 200, 1543, 328, 1021, 500, + 494, 1548, 503, 301, 499, 1061, 2639, 501, 4, 291, + 503, 330, 369, 9, 137, 2648, 11, 497, 170, 172, + 2653, 501, 406, 2656, 2063, 2064, 2065, 2066, 2067, 204, + 1086, 2070, 2071, 2072, 2073, 2074, 2075, 2076, 2077, 2078, + 2079, 1097, 2675, 66, 67, 173, 437, 300, 43, 406, + 348, 291, 291, 206, 1077, 602, 603, 1620, 605, 437, + 379, 1726, 499, 447, 346, 1121, 348, 291, 500, 222, + 1644, 277, 370, 161, 291, 291, 282, 461, 166, 232, + 75, 4, 500, 1657, 2123, 2124, 9, 362, 362, 2447, + 447, 2760, 390, 171, 376, 270, 2919, 272, 1661, 217, + 1765, 485, 342, 342, 461, 96, 346, 346, 499, 2224, + 362, 1899, 2098, 1901, 56, 499, 369, 245, 342, 494, + 439, 499, 346, 132, 2757, 342, 342, 2223, 485, 346, + 346, 2371, 500, 1817, 2023, 503, 376, 376, 4, 463, + 538, 499, 499, 9, 497, 2208, 499, 235, 501, 177, + 159, 500, 376, 406, 503, 2788, 410, 362, 412, 376, + 376, 485, 437, 437, 1220, 370, 1222, 2263, 291, 221, + 545, 546, 200, 1219, 2222, 499, 2224, 3037, 3038, 1219, + 3073, 172, 1219, 1219, 392, 437, 1242, 395, 2135, 2136, + 2137, 2138, 1248, 1249, 447, 500, 284, 3020, 503, 482, + 353, 406, 500, 147, 444, 444, 334, 1263, 461, 1725, + 238, 1727, 1728, 177, 152, 206, 3039, 161, 424, 2177, + 444, 342, 166, 346, 499, 499, 152, 444, 444, 435, + 3090, 222, 485, 461, 500, 463, 200, 503, 613, 1999, + 2000, 232, 370, 410, 152, 412, 499, 499, 453, 500, + 1306, 2884, 503, 376, 13, 14, 5, 632, 1963, 8, + 410, 1306, 412, 272, 292, 14, 1322, 500, 277, 152, + 503, 215, 3095, 282, 238, 266, 25, 500, 406, 1335, + 29, 1337, 272, 1347, 1332, 1341, 1342, 2920, 1305, 500, + 500, 235, 503, 503, 501, 1351, 287, 1353, 1354, 1355, + 1356, 1357, 1358, 1359, 500, 1649, 499, 503, 2021, 1653, + 1332, 1655, 38, 1332, 500, 1332, 1332, 503, 13, 14, + 500, 444, 1378, 503, 1380, 453, 13, 14, 292, 1385, + 1386, 1387, 1388, 1389, 1390, 1391, 1392, 1393, 2243, 453, + 284, 1397, 1398, 13, 14, 500, 1402, 745, 503, 293, + 1406, 512, 84, 1409, 1410, 1411, 1412, 1413, 1414, 1415, + 1416, 1417, 353, 369, 1420, 13, 14, 2725, 2815, 2609, + 1902, 1427, 1904, 465, 1430, 500, 1440, 1433, 503, 450, + 541, 542, 410, 316, 412, 2500, 3019, 2207, 500, 2209, + 2453, 503, 8, 37, 500, 11, 1452, 503, 362, 15, + 406, 499, 18, 19, 20, 1450, 434, 500, 499, 437, + 503, 2101, 1460, 8, 152, 424, 11, 1980, 500, 1475, + 15, 503, 499, 18, 19, 20, 435, 43, 287, 2094, + 1486, 1487, 499, 8, 50, 2474, 11, 13, 14, 500, + 15, 447, 503, 18, 19, 20, 410, 152, 412, 2023, + 441, 500, 152, 500, 503, 461, 503, 13, 14, 75, + 35, 1517, 499, 624, 428, 8, 152, 1523, 11, 1525, + 434, 2018, 15, 437, 11, 18, 19, 20, 15, 485, + 500, 2044, 500, 503, 882, 503, 23, 500, 500, 433, + 503, 503, 500, 499, 96, 503, 2186, 34, 35, 2062, + 500, 876, 500, 503, 25, 503, 500, 499, 1564, 503, + 31, 1567, 1568, 38, 1570, 500, 2304, 38, 503, 894, + 2990, 2761, 2992, 639, 233, 641, 2089, 499, 2158, 2242, + 5, 2244, 1588, 2096, 5, 2411, 57, 2413, 499, 914, + 13, 14, 499, 1599, 13, 14, 499, 1595, 166, 1605, + 499, 88, 499, 497, 13, 14, 500, 501, 13, 14, + 176, 13, 14, 499, 1620, 13, 14, 2606, 13, 14, + 172, 13, 14, 2271, 2258, 499, 192, 952, 13, 14, + 1644, 197, 13, 14, 1648, 499, 2491, 108, 1644, 13, + 14, 13, 14, 1657, 992, 13, 14, 13, 14, 3069, + 5, 1657, 499, 1659, 206, 1661, 13, 14, 6, 13, + 14, 357, 358, 11, 1670, 5, 137, 15, 234, 1675, + 222, 499, 20, 21, 22, 23, 24, 357, 358, 27, + 232, 499, 30, 31, 499, 2731, 34, 35, 499, 2997, + 260, 261, 366, 367, 219, 357, 358, 357, 358, 994, + 995, 1714, 1027, 1028, 197, 1030, 1712, 1713, 1714, 499, + 5, 1717, 499, 1061, 266, 5, 499, 499, 499, 1725, + 1726, 1727, 1728, 289, 499, 9, 219, 499, 199, 1735, + 2243, 148, 462, 1739, 82, 298, 1742, 503, 8, 87, + 88, 89, 90, 91, 289, 15, 503, 217, 18, 19, + 20, 500, 1765, 99, 1760, 1761, 38, 376, 52, 1765, + 166, 2600, 284, 166, 289, 2503, 2504, 282, 233, 417, + 499, 2760, 499, 1779, 88, 503, 1782, 417, 1784, 250, + 56, 56, 2422, 417, 2775, 263, 417, 258, 2301, 500, + 508, 417, 461, 152, 147, 95, 289, 2437, 1804, 270, + 501, 353, 2793, 97, 272, 272, 38, 499, 161, 1815, + 499, 9, 2538, 166, 499, 381, 37, 417, 415, 415, + 291, 1815, 1835, 500, 497, 1831, 497, 1815, 417, 123, + 301, 417, 1830, 417, 457, 503, 499, 1831, 11, 344, + 498, 505, 953, 1831, 1850, 277, 503, 141, 415, 503, + 499, 145, 508, 499, 180, 417, 162, 500, 1830, 1865, + 1866, 1830, 215, 1830, 1830, 2801, 171, 500, 503, 499, + 2725, 342, 441, 167, 1222, 346, 170, 348, 1884, 38, + 215, 503, 235, 379, 288, 224, 503, 309, 500, 309, + 499, 185, 224, 272, 1908, 224, 1902, 1903, 1904, 370, + 1248, 1249, 293, 1014, 1015, 376, 2897, 325, 285, 453, + 152, 499, 152, 461, 38, 1263, 272, 483, 287, 390, + 486, 487, 488, 500, 490, 491, 492, 493, 494, 495, + 38, 284, 482, 2998, 498, 500, 497, 1943, 287, 1953, + 293, 486, 487, 488, 482, 490, 491, 492, 493, 494, + 495, 500, 171, 500, 500, 482, 171, 500, 500, 500, + 500, 486, 487, 488, 500, 490, 491, 492, 493, 494, + 495, 500, 500, 444, 1980, 2472, 500, 500, 417, 500, + 1305, 501, 1988, 277, 500, 503, 500, 500, 500, 2502, + 500, 285, 499, 486, 487, 488, 499, 490, 491, 492, + 493, 494, 495, 155, 499, 499, 458, 1332, 458, 2023, + 447, 503, 488, 287, 2028, 2021, 2030, 2023, 484, 289, + 2034, 2035, 288, 288, 288, 512, 439, 2963, 417, 503, + 243, 272, 152, 200, 328, 2041, 499, 1385, 2044, 152, + 152, 417, 417, 279, 2050, 279, 417, 2053, 38, 2704, + 2056, 500, 417, 498, 461, 542, 2062, 2063, 2064, 2065, + 2066, 2067, 500, 499, 2070, 2071, 2072, 2073, 2074, 2075, + 2076, 2077, 2078, 2079, 1399, 2131, 2600, 2083, 2084, 503, + 433, 2087, 344, 2089, 285, 2098, 8, 287, 2094, 11, + 2096, 38, 2098, 15, 152, 277, 18, 19, 20, 500, + 143, 2107, 498, 171, 2110, 498, 2112, 11, 171, 166, + 500, 297, 500, 2119, 2120, 499, 2129, 2123, 2124, 406, + 500, 171, 2128, 2129, 485, 503, 2132, 500, 180, 446, + 500, 86, 350, 2146, 288, 1460, 500, 624, 2144, 499, + 2146, 152, 2997, 175, 38, 503, 81, 495, 500, 500, + 2144, 499, 2146, 2159, 502, 500, 2144, 499, 2146, 428, + 441, 498, 500, 2169, 512, 2828, 500, 500, 499, 1517, + 171, 499, 499, 503, 222, 500, 500, 500, 499, 2185, + 500, 503, 500, 408, 500, 296, 499, 222, 1299, 1300, + 499, 1302, 540, 541, 542, 294, 56, 184, 500, 488, + 461, 500, 500, 202, 117, 38, 499, 224, 8, 83, + 190, 11, 2725, 277, 500, 15, 486, 487, 488, 38, + 490, 491, 492, 493, 494, 495, 277, 417, 501, 2243, + 501, 272, 2238, 581, 501, 488, 2242, 2243, 2244, 417, + 109, 501, 501, 43, 501, 38, 501, 501, 2882, 501, + 50, 2265, 600, 601, 602, 603, 501, 605, 501, 287, + 222, 171, 501, 501, 57, 88, 38, 615, 501, 2267, + 1595, 2926, 1620, 501, 2270, 75, 624, 501, 501, 2792, + 2270, 2935, 2795, 2270, 2270, 57, 634, 501, 499, 637, + 2905, 2289, 2907, 2291, 501, 2301, 501, 219, 501, 501, + 461, 133, 501, 460, 501, 501, 501, 501, 501, 501, + 87, 2317, 89, 1661, 91, 108, 109, 501, 501, 38, + 501, 501, 501, 499, 117, 499, 503, 499, 499, 336, + 500, 499, 152, 2996, 75, 500, 108, 685, 686, 687, + 688, 124, 152, 38, 500, 2842, 358, 306, 358, 38, + 499, 499, 503, 500, 499, 499, 499, 327, 446, 2365, + 2366, 75, 499, 277, 2370, 2371, 248, 289, 8, 2375, + 441, 11, 2378, 2379, 189, 15, 176, 2383, 18, 19, + 20, 428, 175, 499, 69, 290, 69, 56, 503, 1714, + 499, 38, 192, 500, 499, 35, 441, 197, 1509, 376, + 2406, 488, 270, 175, 2410, 428, 199, 287, 1519, 38, + 1521, 290, 2406, 1524, 499, 2429, 2410, 290, 2406, 1530, + 499, 1532, 2410, 500, 2921, 500, 2432, 199, 500, 360, + 500, 202, 499, 1544, 234, 287, 2434, 2435, 1549, 287, + 1765, 500, 1553, 1554, 1555, 1556, 9, 1558, 1559, 122, + 343, 500, 24, 439, 357, 35, 500, 250, 1783, 499, + 2466, 9, 500, 632, 1531, 258, 2496, 2238, 2474, 2225, + 1897, 1451, 1959, 2021, 1799, 2600, 2941, 270, 250, 272, + 3047, 2697, 2999, 3008, 2997, 3040, 258, 2493, 1048, 289, + 1815, 2747, 1890, 1903, 2282, 2996, 2502, 2217, 270, 3006, + 2242, 69, 1887, 2994, 1964, 1830, 1831, 75, 301, 2274, + 1835, 2184, 1021, 1248, 1306, 2876, 1296, 2183, 2436, 2920, + 88, 2671, 2993, 1014, 1830, 986, 1850, 1014, 1503, 301, + 2894, 2915, 2538, 1037, 1036, 3035, 1865, 1475, 886, 2163, + 2976, 2909, 2814, 2428, 1831, 1502, 2146, 2412, 2789, 117, + 1039, 119, 2144, 2884, 2395, 348, 2883, 2901, 1347, 2902, + 2667, 1347, 1347, 1347, 486, 487, 488, 2979, 490, 491, + 492, 493, 494, 495, 2980, 3023, 348, 370, 1740, 219, + 1425, 381, 1671, 1851, 2582, 1783, 2600, 1570, 1780, 1818, + 2162, 1450, 601, 2432, 2600, -1, 1657, 390, 370, 392, + 2606, -1, 395, 2609, -1, 953, 2612, -1, -1, -1, + -1, -1, -1, -1, -1, 2621, 2622, -1, 390, 2625, + -1, -1, 1733, 538, -1, -1, -1, 538, -1, 1740, + -1, -1, 1980, 2639, -1, -1, 204, -1, -1, -1, + -1, -1, 2648, -1, -1, 2639, -1, 2653, 996, 289, + 2656, 2639, 2666, -1, 2648, -1, -1, 2663, 2664, 2653, + 2648, -1, 2656, -1, -1, 2653, 1014, 1015, 2656, 2675, + -1, 2677, -1, 1021, 1022, -1, 1024, -1, -1, -1, + -1, 2675, -1, 483, -1, -1, -1, 2675, -1, 2695, + 490, 491, 492, 493, 494, 495, 2044, -1, -1, 1047, + 1048, -1, -1, -1, 272, -1, 499, -1, -1, 277, + -1, 2725, 1060, -1, 2062, -1, -1, 1828, 495, 2725, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 1077, + -1, -1, -1, 1081, -1, -1, -1, -1, 2736, -1, + -1, 2089, -1, -1, -1, -1, -1, -1, 2096, -1, + -1, 2757, 320, -1, 2760, 2761, -1, -1, -1, -1, + -1, -1, -1, 2757, -1, -1, -1, -1, 336, 2757, + -1, 2119, -1, 2098, -1, -1, -1, -1, 2784, -1, + -1, -1, 2788, -1, -1, -1, 2792, -1, 2801, 2795, + -1, -1, -1, -1, 2788, 2801, -1, -1, -1, -1, + 2788, -1, -1, -1, 2129, -1, -1, -1, -1, 2815, + -1, -1, 2818, 1300, -1, 1302, -1, -1, 0, 2144, + -1, 2146, 2828, -1, -1, -1, -1, 2833, -1, -1, + 745, -1, -1, -1, 745, -1, -1, 2851, 615, -1, + -1, -1, -1, -1, -1, -1, 486, 487, 488, -1, + 490, 491, 492, 493, 494, 495, -1, 634, -1, 2857, + 1971, -1, -1, -1, -1, -1, 434, 1215, -1, -1, + -1, -1, -1, 441, -1, 1223, -1, -1, 2884, -1, + -1, -1, -1, -1, 1232, -1, -1, -1, -1, -1, + 2884, -1, -1, -1, -1, 2243, 2884, -1, -1, 2905, + -1, 2907, -1, 2909, -1, -1, -1, 2913, 685, 686, + 687, 688, 38, 95, 2920, -1, -1, 1265, 2916, -1, + -1, -1, -1, -1, -1, -1, 2920, -1, -1, -1, + -1, 57, 2920, -1, -1, -1, -1, 2943, -1, -1, + -1, -1, 2267, -1, -1, -1, -1, -1, 1296, 1297, + -1, 1299, 1300, 2301, 1302, 1303, -1, 2963, -1, -1, + -1, -1, -1, -1, 2289, 147, 2291, 882, -1, -1, + 2976, 882, -1, -1, -1, -1, -1, -1, -1, 161, + -1, -1, 108, 2997, 166, -1, -1, -1, -1, 171, + 2996, 2997, -1, -1, -1, -1, -1, -1, 180, -1, + -1, -1, 184, -1, 1352, -1, -1, -1, -1, -1, + -1, -1, -1, 3019, 3012, 1363, 3022, 3023, -1, -1, + 538, -1, 1509, 2371, -1, 3019, -1, -1, -1, -1, + -1, 3019, 1519, 215, 1521, -1, -1, 1524, -1, -1, + -1, -1, -1, 1530, 8, 1532, -1, 11, 1396, 3055, + -1, 15, -1, 235, 18, 19, 20, 1544, -1, -1, + -1, -1, 1549, -1, -1, -1, 1553, 1554, 1555, 1556, + -1, 1558, 1559, 199, -1, -1, -1, -1, -1, 1427, + 1428, 2406, -1, -1, -1, 2410, 8, -1, -1, 11, + 3096, -1, 2203, 15, -1, -1, 18, 19, 20, -1, + -1, 1449, 284, 1451, -1, 287, -1, -1, -1, 2434, + 2435, 293, -1, 35, 1462, 1463, -1, -1, -1, 2230, + -1, -1, -1, -1, 250, -1, -1, -1, -1, -1, + -1, -1, 258, -1, 2245, 2246, 2247, 2248, 2249, 2250, + 2251, 2252, 2253, 2254, 270, 327, 1061, -1, -1, -1, + 1061, -1, 1500, -1, 2502, -1, -1, -1, -1, -1, + 1508, 1509, -1, -1, -1, -1, -1, -1, 350, -1, + -1, 1519, 1520, 1521, 1522, 301, 1524, -1, -1, -1, + -1, -1, 1530, -1, 1532, -1, -1, -1, -1, -1, + 2538, -1, -1, -1, -1, 1543, 1544, -1, -1, -1, + 1548, 1549, -1, -1, -1, 1553, 1554, 1555, 1556, -1, + 1558, 1559, -1, -1, -1, -1, -1, -1, -1, 996, + -1, -1, 348, -1, 406, -1, -1, 745, -1, -1, + 1578, 1579, 1580, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 370, 1022, -1, -1, 1596, -1, + -1, 433, -1, -1, -1, 219, -1, 2582, -1, 441, + -1, 2609, -1, -1, 390, -1, -1, -1, -1, -1, + 1047, -1, -1, -1, -1, -1, 458, -1, 460, 461, + -1, -1, -1, 1060, -1, -1, -1, 538, -1, -1, + 2401, -1, -1, -1, -1, -1, -1, 219, -1, -1, + -1, -1, -1, -1, 1081, 2416, -1, 1222, -1, -1, + -1, 1222, -1, -1, -1, 497, -1, -1, 500, 501, + 502, -1, -1, 2648, -1, 289, -1, -1, 2653, -1, + -1, 2656, -1, 1248, 1249, -1, -1, 1248, 1249, -1, + -1, 1828, 0, -1, -1, -1, -1, -1, 1263, -1, + -1, -1, 1263, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 2473, 21, 882, -1, -1, 289, -1, -1, + -1, -1, -1, 31, -1, 33, 34, 2725, -1, -1, + -1, -1, -1, -1, -1, 1733, -1, -1, -1, -1, + -1, 49, 1740, -1, -1, -1, -1, -1, 538, -1, + 58, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 2736, 70, 2761, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 81, -1, -1, -1, -1, -1, 1777, + -1, -1, -1, -1, -1, 93, -1, 95, -1, -1, + 111, 112, -1, -1, 2792, -1, 1223, 2795, -1, -1, + -1, -1, -1, -1, -1, 113, -1, -1, -1, -1, + -1, 1809, -1, 2788, -1, -1, -1, 1815, -1, 127, + 1385, -1, -1, -1, 1385, -1, 2801, -1, -1, 137, + 1828, -1, -1, 1831, 1971, 143, -1, 1835, -1, -1, + 1838, 1839, -1, 151, 745, 153, 154, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 167, + -1, -1, -1, -1, -1, -1, 187, 188, -1, -1, + -1, -1, 486, 487, 488, -1, 490, 491, 492, 493, + 494, 495, 2857, -1, 2645, -1, -1, -1, 196, -1, + -1, -1, -1, 1061, 1892, -1, -1, 2658, -1, -1, + 2661, -1, -1, 211, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 486, 487, 488, -1, 490, 491, + 492, 493, 494, 495, -1, -1, -1, -1, -1, 237, + -1, 252, 253, 254, 255, 256, 257, -1, -1, 260, + 261, 2916, -1, -1, -1, 2706, -1, -1, -1, -1, + -1, -1, 1517, -1, 23, 745, 1517, 1955, -1, -1, + -1, -1, 1960, -1, -1, 2726, 2727, -1, -1, -1, + 1968, 1969, 1970, 1971, -1, 1973, -1, -1, -1, -1, + 2741, 882, -1, -1, 8, -1, -1, 11, -1, -1, + -1, 15, 1990, -1, 18, 19, 20, -1, -1, 2997, + -1, 1428, -1, -1, 2002, -1, 314, 76, -1, 317, + -1, 35, -1, -1, 2775, -1, -1, -1, -1, -1, + 2018, -1, 1449, 92, 1451, 111, 112, -1, -1, -1, + -1, -1, 2793, -1, 2032, 2033, 8, 3012, 346, 11, + -1, -1, -1, 15, -1, 366, 367, 355, -1, -1, + -1, -1, -1, -1, 1222, 1620, 2817, 2055, -1, 1620, + 538, 369, -1, -1, -1, -1, 2203, -1, 376, -1, + -1, 43, 380, 1500, -1, -1, -1, 146, 50, -1, + 1248, 1249, 390, -1, -1, -1, -1, 156, -1, -1, + -1, -1, 882, 2230, 402, 1263, 1661, -1, 406, 168, + 1661, 187, 188, 75, 173, -1, -1, -1, 2245, 2246, + 2247, 2248, 2249, 2250, 2251, 2252, 2253, 2254, -1, -1, + -1, -1, 3, -1, 5, -1, -1, -1, -1, -1, + -1, 200, -1, -1, 442, -1, 2897, -1, -1, 447, + 2901, -1, -1, 2141, 2142, 2143, 2144, -1, 2146, 2147, + 2148, 1578, 1579, 461, -1, 2153, 2154, -1, 479, 480, + 1061, -1, -1, -1, -1, -1, 252, 253, 254, 255, + 256, 257, -1, 145, 260, 261, 245, 485, 499, -1, + 249, -1, -1, -1, -1, 2183, -1, -1, -1, -1, + -1, 499, -1, -1, 502, 219, -1, -1, -1, -1, + -1, -1, -1, 2201, 176, 2203, 2967, -1, -1, 2207, + 2208, 2209, -1, 2211, -1, -1, -1, 1385, -1, -1, + 192, -1, -1, -1, -1, 197, -1, -1, -1, -1, + 111, 112, 2230, -1, 2232, -1, -1, -1, -1, -1, + -1, -1, -1, 312, -1, -1, -1, 2245, 2246, 2247, + 2248, 2249, 2250, 2251, 2252, 2253, 2254, 326, -1, -1, + -1, -1, 234, -1, -1, 289, -1, 745, -1, -1, + 2268, 1061, -1, -1, 2272, -1, 600, 601, -1, -1, + 366, 367, -1, -1, 2282, -1, -1, -1, -1, -1, + 359, -1, -1, 362, -1, 2293, -1, -1, -1, -1, + -1, 370, -1, -1, 373, -1, 187, 188, -1, -1, + -1, -1, -1, 2311, -1, -1, -1, 289, -1, -1, + -1, 1222, -1, 392, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 2473, 406, 662, 663, + -1, -1, -1, -1, 413, -1, -1, 1248, 1249, 1517, + -1, -1, -1, 422, -1, -1, -1, -1, -1, 428, + -1, -1, 1263, 2361, -1, -1, -1, -1, -1, -1, + -1, 252, 253, 254, 255, 256, 257, -1, -1, 260, + 261, -1, 1809, -1, 453, -1, -1, 2385, -1, 2387, + 2388, 2389, 2390, 479, 480, -1, 2394, 2395, -1, 2397, + 2398, -1, -1, 2401, 882, -1, -1, -1, 2406, 381, + -1, -1, 2410, -1, -1, 1980, -1, -1, 2416, 1980, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 1222, -1, 2432, -1, -1, -1, 2436, -1, + -1, -1, -1, 2441, -1, -1, -1, -1, -1, 2447, + -1, -1, 1620, -1, -1, 2453, -1, -1, 1248, 1249, + -1, 2459, 486, 487, 488, -1, 490, 491, 492, 493, + 494, 495, -1, 1263, 2472, 2473, -1, -1, -1, 2044, + -1, -1, 2480, 2044, 1385, 366, 367, -1, -1, -1, + -1, -1, -1, 1661, -1, -1, -1, 2062, -1, 2497, + -1, 2062, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 483, -1, -1, -1, -1, -1, -1, 490, 491, + 492, 493, 494, 495, 2089, -1, -1, -1, 2089, -1, + -1, 2096, -1, 1960, -1, 2096, -1, -1, -1, -1, + -1, -1, 1969, 1970, -1, -1, 1973, -1, -1, -1, + -1, -1, -1, -1, 2119, -1, -1, 881, 2119, -1, + -1, -1, -1, 1990, -1, -1, -1, -1, -1, 2706, + -1, -1, -1, -1, 898, 2573, -1, -1, -1, -1, + -1, -1, -1, 1061, -1, 2583, -1, -1, -1, 2726, + 2727, -1, -1, -1, -1, 1385, 2594, -1, 479, 480, + -1, -1, -1, 927, 2741, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 1517, -1, -1, -1, + -1, -1, -1, 947, 948, 949, -1, -1, 952, -1, + -1, -1, 2630, -1, -1, -1, -1, -1, -1, -1, + -1, 2639, 2640, -1, 2642, -1, -1, 2645, -1, -1, + 2648, 975, -1, -1, -1, 2653, -1, -1, 2656, -1, + 2658, -1, -1, 2661, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 2675, 2243, -1, + 2817, -1, 2243, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 1029, -1, -1, 2706, 1033, + 1034, -1, -1, -1, 2141, 2142, 2143, -1, -1, 1620, + -1, -1, -1, -1, -1, -1, -1, 1517, 2726, 2727, + -1, -1, -1, -1, -1, -1, 2301, -1, -1, 2737, + 2301, 2739, -1, 2741, 1222, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 2754, -1, -1, 2757, + 1661, -1, 1086, -1, -1, -1, -1, -1, 0, -1, + 1248, 1249, -1, 1097, 2201, -1, -1, 2775, -1, -1, + -1, -1, -1, -1, -1, 1263, -1, -1, -1, -1, + 2788, -1, -1, -1, -1, 2793, -1, 1121, -1, -1, + -1, -1, -1, -1, -1, -1, 2371, -1, -1, -1, + 2371, -1, 1980, 2811, -1, -1, -1, 2815, -1, 2817, + -1, -1, -1, -1, -1, -1, -1, -1, 2826, -1, + 1620, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 2842, 2272, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 2856, -1, + -1, -1, -1, 95, -1, -1, -1, -1, -1, -1, + -1, 1661, -1, -1, -1, -1, 2044, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 2884, -1, -1, -1, + -1, -1, -1, -1, 2062, 2893, -1, -1, -1, 2897, + -1, -1, -1, 2901, -1, -1, -1, 1385, -1, -1, + -1, -1, -1, -1, -1, 147, -1, -1, -1, -1, + -1, 2089, 2920, 2921, 2922, 2923, -1, -1, 2096, 161, + -1, -1, -1, -1, 166, -1, -1, 2502, -1, 171, + -1, 2502, -1, -1, -1, -1, -1, -1, 180, -1, + -1, 2119, 184, -1, 2952, -1, -1, -1, -1, -1, + 2387, 2388, 2389, 2390, -1, -1, -1, -1, -1, 2967, + -1, -1, -1, 2538, -1, -1, -1, 2538, -1, -1, + -1, 2979, -1, 215, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 2993, -1, -1, -1, -1, + -1, -1, -1, 235, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 3013, -1, 1341, -1, -1, + -1, 3019, -1, -1, -1, -1, -1, 1351, -1, 1353, + -1, -1, 1356, 1357, 1358, 1359, -1, 3035, 3036, 1517, + -1, -1, -1, -1, 2609, -1, -1, -1, 2609, -1, + -1, -1, 284, 2480, -1, 287, 1380, -1, -1, -1, + -1, 293, 1386, 1387, 1388, 1389, 1390, 1391, 1392, -1, + -1, -1, -1, 1397, 1398, 2243, -1, -1, 1402, 1980, + -1, -1, 1406, -1, -1, 1409, 1410, 1411, 1412, 1413, + 1414, 1415, 1416, 1417, 875, 327, 1420, -1, -1, 880, + -1, -1, -1, 1427, -1, -1, 1430, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 350, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 1452, 0, + -1, -1, -1, 2301, -1, -1, -1, -1, -1, -1, + -1, -1, 1620, 2044, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 2725, 2062, 1486, 1487, 2725, -1, -1, -1, -1, -1, + 8, -1, -1, 11, 406, -1, -1, 15, 16, 17, + 18, 19, 20, 1661, -1, -1, 967, -1, 2089, -1, + 1980, -1, -1, -1, -1, 2096, 2761, 35, -1, -1, + 2761, 433, -1, 2371, -1, 43, -1, -1, -1, 441, + -1, 992, 50, 994, 995, -1, -1, -1, 2119, -1, + -1, -1, -1, -1, 95, -1, 458, 2792, 460, 461, + 2795, 2792, -1, -1, 2795, -1, -1, 75, -1, -1, + 1564, -1, -1, 1567, 1568, -1, 1570, -1, -1, -1, + -1, -1, -1, -1, 2044, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 497, -1, -1, 500, 501, + 502, -1, 2062, -1, -1, 1599, 147, -1, -1, -1, + -1, 1062, -1, -1, 1065, 1066, -1, -1, -1, -1, + 161, -1, -1, -1, -1, 166, -1, -1, -1, 2089, + 171, -1, -1, -1, -1, -1, 2096, -1, -1, 180, + 2737, -1, -1, 184, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 2754, -1, 2119, + -1, -1, -1, -1, 2502, 1659, -1, -1, 176, -1, + -1, -1, 2243, -1, 215, -1, 1670, -1, -1, -1, + -1, 1675, -1, -1, 192, -1, -1, -1, -1, 197, + -1, -1, -1, -1, 235, -1, -1, -1, -1, -1, + 2538, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 219, 220, -1, -1, -1, -1, -1, -1, -1, + 1714, -1, -1, -1, -1, -1, 234, -1, -1, 2826, + 2301, 1725, -1, 1727, 1728, -1, -1, -1, -1, -1, + -1, 1735, -1, 284, -1, 1739, 287, -1, 1742, -1, + -1, -1, 293, -1, -1, -1, -1, -1, -1, 2856, + -1, -1, 2997, -1, 272, -1, 2997, 275, -1, -1, + -1, 2609, -1, -1, -1, -1, -1, -1, -1, -1, + 968, 289, -1, 2243, 292, 1779, 327, -1, 1782, -1, + 1784, -1, -1, -1, -1, 1246, -1, -1, -1, -1, + 2371, -1, -1, -1, -1, -1, 1257, -1, 1259, 350, + -1, -1, -1, -1, -1, -1, -1, 1268, -1, -1, + -1, 1009, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 1980, -1, 1285, -1, -1, -1, -1, -1, + -1, 2301, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 1850, -1, -1, -1, + 1311, 1312, -1, -1, -1, 406, -1, -1, -1, -1, + -1, 1865, 1866, 381, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 2725, -1, -1, + 1884, -1, 433, 1344, 1345, -1, 2044, 1348, 1349, -1, + 441, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 2371, -1, -1, 2062, -1, -1, 458, -1, 460, + 461, -1, -1, 2761, -1, -1, -1, -1, -1, -1, + -1, 2502, -1, -1, -1, -1, -1, -1, -1, 1127, + -1, 2089, -1, -1, 1132, -1, -1, -1, 2096, 1943, + -1, -1, -1, -1, 2792, -1, 497, 2795, -1, 500, + 501, 502, -1, -1, -1, -1, -1, 2538, -1, -1, + -1, 2119, -1, -1, -1, 483, -1, -1, 486, 487, + 488, -1, 490, 491, 492, 493, 494, 495, -1, -1, + -1, -1, -1, -1, 1988, 503, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 1486, 1487, -1, 2609, -1, + -1, -1, 2502, -1, -1, -1, -1, 2041, -1, -1, + -1, -1, -1, -1, -1, -1, 2050, -1, -1, 2053, + -1, -1, 2056, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 2538, -1, + -1, -1, -1, -1, -1, -1, 1537, -1, -1, 2083, + 2084, -1, -1, 2087, -1, 2243, 1547, -1, -1, 1550, + -1, -1, -1, -1, 2098, -1, -1, -1, -1, -1, + -1, -1, -1, 2107, -1, -1, 2110, -1, 2112, -1, + -1, -1, -1, -1, -1, -1, 2120, -1, -1, -1, + -1, -1, -1, -1, 2128, 2129, -1, -1, 2132, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 2609, + -1, 1339, -1, 2301, 2725, -1, -1, -1, -1, 2997, + -1, -1, 1350, -1, -1, 2159, 1354, -1, -1, -1, + 1621, 1622, 1360, 1361, 1362, 2169, -1, -1, -1, -1, + -1, 1369, -1, -1, -1, -1, -1, -1, -1, -1, + 2761, 2185, -1, 1644, -1, -1, -1, -1, -1, -1, + -1, -1, 3, -1, -1, -1, 1657, 8, -1, -1, + 11, -1, -1, -1, 15, 16, 17, 18, 19, 20, + -1, 2792, -1, 2371, 2795, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 35, -1, -1, 38, 1426, -1, + -1, -1, 43, -1, -1, -1, -1, 8, -1, 50, + 11, -1, -1, -1, 15, -1, -1, 18, 19, 20, + -1, -1, -1, -1, -1, 2725, -1, -1, -1, -1, + -1, -1, -1, -1, 75, -1, -1, -1, -1, -1, + -1, -1, 43, 1471, -1, -1, -1, -1, -1, 50, + -1, -1, -1, -1, -1, -1, -1, 1485, -1, -1, + -1, 2761, 1490, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 75, -1, -1, -1, -1, -1, + -1, -1, -1, 2317, -1, -1, -1, -1, -1, -1, + -1, -1, 2792, -1, -1, 2795, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 2502, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 1820, + -1, 2365, 2366, -1, -1, 176, 2370, -1, -1, -1, + -1, 2375, -1, -1, 2378, 2379, -1, -1, -1, 2383, + 2538, 192, -1, -1, -1, -1, 197, -1, -1, -1, + -1, -1, -1, -1, 1855, 1856, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 176, -1, -1, 219, 220, + -1, -1, -1, -1, -1, -1, 2997, -1, -1, -1, + -1, 192, -1, 234, -1, -1, 197, -1, 2432, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 219, 220, + -1, 2609, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 272, 2466, 234, 275, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 1673, -1, -1, 289, -1, + -1, 292, -1, -1, -1, -1, -1, -1, -1, 2493, + -1, -1, -1, -1, 1692, -1, -1, -1, -1, -1, + -1, 272, -1, -1, 275, -1, -1, -1, -1, -1, + -1, -1, 1710, -1, 1712, 1713, -1, 1715, 289, 1717, + -1, -1, -1, 1721, -1, -1, 1724, 2997, -1, -1, + -1, 1729, -1, -1, 1732, 1996, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 1744, -1, -1, -1, + 1748, 1749, 1750, 1751, 1752, 1753, 1754, -1, -1, -1, + -1, -1, 1760, 1761, -1, 1763, 1764, 2725, -1, -1, + 381, -1, -1, -1, -1, -1, -1, 1775, -1, -1, + 1778, -1, -1, -1, -1, -1, -1, -1, 1786, 1787, + 1788, 1789, 1790, 1791, 1792, 1793, 1794, 1795, -1, -1, + -1, -1, -1, 2761, -1, -1, -1, -1, 2612, -1, + 381, -1, -1, -1, -1, -1, -1, 2621, 2622, -1, + -1, 2625, -1, -1, -1, -1, -1, -1, -1, 1827, + -1, -1, -1, -1, 2792, -1, -1, 2795, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 2663, + 2664, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 483, 2677, -1, 486, 487, 488, -1, 490, + 491, 492, 493, 494, 495, -1, -1, -1, -1, -1, + -1, 2695, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 479, 480, 481, 482, -1, 3, -1, 486, 487, - 488, 8, 490, 491, 492, 493, 494, 495, 15, -1, - -1, 18, 19, 20, 21, 22, 23, 24, 25, 26, + -1, -1, 483, -1, -1, 486, 487, 488, -1, 490, + 491, 492, 493, 494, 495, -1, -1, -1, -1, 8, + -1, -1, 11, -1, -1, -1, 15, 16, 17, 18, + 19, 20, -1, -1, -1, -1, -1, -1, -1, -1, + 1948, 1949, 1950, -1, -1, -1, 35, -1, -1, 38, + -1, -1, -1, -1, 43, -1, -1, -1, -1, -1, + -1, 50, -1, -1, -1, -1, -1, -1, -1, -1, + 2784, -1, 2243, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 75, 2801, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 2815, -1, -1, 2818, -1, 8, -1, -1, 11, + -1, -1, -1, 15, 16, 17, 18, 19, 20, 2833, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 2997, + -1, -1, 2040, 35, -1, -1, -1, -1, 2046, -1, + -1, 43, -1, -1, -1, -1, -1, -1, 50, -1, + -1, 2059, 2060, 2061, -1, 2063, 2064, 2065, 2066, 2067, + -1, -1, 2070, 2071, 2072, 2073, 2074, 2075, 2076, 2077, + 2078, 2079, 2080, 75, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 176, -1, -1, + -1, 2099, -1, -1, 2102, 2909, 2104, -1, -1, 2913, + 2108, 2109, -1, 192, -1, -1, -1, -1, 197, -1, + -1, -1, -1, -1, 2122, 2123, 2124, 2125, -1, 2127, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 2943, + 219, 220, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 234, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 2976, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 176, -1, -1, -1, -1, -1, + -1, -1, -1, 272, -1, -1, 275, -1, -1, -1, + 192, -1, -1, -1, -1, 197, 2204, -1, -1, -1, + 289, -1, -1, 292, -1, -1, -1, -1, 3022, 3023, + -1, -1, -1, -1, -1, -1, -1, 219, 220, -1, + 2491, -1, -1, -1, -1, 2496, -1, -1, -1, -1, + -1, -1, 234, -1, -1, -1, -1, -1, -1, -1, + -1, 3055, -1, -1, -1, -1, 8, -1, -1, 11, + -1, -1, -1, 15, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 272, -1, -1, 275, 2545, 2546, -1, -1, -1, -1, + -1, 43, 3096, -1, 2292, -1, -1, 289, 50, -1, + 292, -1, 381, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 2318, -1, -1, 75, 2322, 2323, -1, 2325, -1, -1, + 2328, 2329, 2330, 2331, 2332, -1, -1, -1, 2336, 2337, + 2338, 2339, 2340, 2341, 2342, 2343, 2344, 2345, 2346, 2347, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 2357, + -1, -1, -1, -1, -1, -1, 2364, -1, -1, 2367, + -1, 2369, -1, -1, -1, 2373, -1, -1, 2376, 2377, + -1, -1, 2380, 2381, -1, 8, 2384, -1, 11, 381, + -1, -1, 15, 145, -1, 18, 19, 20, -1, -1, + -1, -1, -1, -1, 483, -1, -1, 486, 487, 488, + -1, 490, 491, 492, 493, 494, 495, -1, -1, -1, + 43, 500, -1, -1, 176, 2423, -1, 50, -1, -1, + -1, -1, -1, 2431, -1, -1, -1, -1, -1, -1, + 192, -1, -1, -1, -1, 197, 2444, -1, 8, -1, + -1, 11, 75, 2714, 2715, 15, 16, 17, 18, 19, + 20, -1, -1, -1, 2725, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 35, 2474, -1, -1, -1, + -1, -1, 234, 43, -1, -1, -1, -1, -1, -1, + 50, 483, -1, -1, 486, 487, 488, -1, 490, 491, + 492, 493, 494, 495, -1, -1, -1, -1, 500, 8, + -1, -1, 11, -1, -1, 75, 15, 16, 17, 18, + 19, 20, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 25, -1, -1, -1, 35, 289, 31, -1, + -1, -1, -1, -1, 43, 38, -1, -1, -1, -1, + -1, 50, -1, 176, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 57, -1, -1, -1, -1, 192, + -1, -1, -1, -1, 197, -1, 75, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 219, 220, -1, -1, + -1, -1, -1, -1, 2602, -1, -1, -1, 2606, -1, + -1, 234, -1, -1, -1, 108, 176, 2615, 2616, 2617, + -1, -1, 2620, -1, -1, 2623, 2624, -1, -1, 381, + 2628, -1, 192, -1, -1, -1, -1, 197, -1, -1, + -1, -1, -1, -1, 137, -1, -1, -1, -1, -1, + -1, -1, 275, -1, -1, -1, -1, -1, -1, 219, + 220, -1, -1, -1, -1, -1, 289, -1, -1, -1, + -1, -1, -1, -1, 234, -1, -1, 176, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 192, 2692, -1, -1, -1, 197, -1, + 2698, -1, -1, -1, -1, -1, 199, -1, -1, -1, + -1, -1, 272, 2711, -1, 275, -1, -1, -1, -1, + 219, 220, -1, -1, -1, -1, -1, -1, -1, 289, + -1, 483, 292, -1, -1, 234, 2997, -1, 490, 491, + 492, 493, 494, 495, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 250, 381, -1, + -1, 2759, 2760, -1, -1, 258, -1, 2765, 2766, 2767, + -1, -1, -1, 272, -1, -1, 275, 270, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 289, -1, -1, 292, -1, -1, -1, -1, 291, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 301, -1, + -1, 2809, 2810, -1, -1, -1, -1, -1, -1, -1, + -1, 381, -1, -1, -1, -1, 2824, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 2834, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 342, + -1, -1, -1, 346, -1, 348, -1, -1, -1, -1, + 483, -1, -1, 486, 487, 488, -1, 490, 491, 492, + 493, 494, 495, -1, -1, -1, -1, 370, -1, -1, + 2878, -1, 381, 376, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 390, 2896, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 2918, -1, -1, 483, -1, -1, 486, 487, 488, -1, + 490, 491, 492, 493, 494, 495, -1, -1, -1, 2937, + 500, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 444, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 2981, 483, -1, -1, 486, 487, 488, + -1, 490, 491, 492, 493, 494, 495, -1, -1, -1, + -1, 500, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 3010, -1, -1, -1, -1, -1, -1, -1, + -1, 3, 4, 5, 6, 7, 8, 9, 10, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 21, + 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, + 32, -1, -1, -1, -1, 37, -1, -1, 40, 41, + 3058, 43, 44, 45, 46, 47, 48, 49, 50, 51, + 52, 53, 54, -1, 56, 57, 58, 59, 60, 61, + 62, 63, 64, 65, 66, 67, 68, -1, 70, 71, + 72, 73, 74, -1, 76, -1, 78, 79, 80, 81, + 82, 83, 84, 85, 86, 87, -1, 89, 90, 91, + 92, 93, 94, -1, 96, 97, 98, 99, 100, 101, + 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, + 112, 113, 114, 115, 116, 117, 118, -1, 120, 121, + 122, 123, 124, 125, -1, 127, 128, 129, 130, 131, + 132, -1, 134, 135, 136, 137, 138, -1, 140, 141, + 142, -1, 144, 145, 146, -1, 148, 149, 150, 151, + 152, 153, 154, 155, 156, 157, 158, 159, 160, -1, + 162, 163, 164, 165, -1, 167, -1, 169, 170, -1, + 172, 173, 174, 175, 176, 177, -1, 179, -1, 181, + 182, 183, -1, 185, 186, 187, 188, 189, 190, 191, + 192, 193, 194, 195, 196, -1, 198, 199, 200, 201, + 202, 203, -1, 205, 206, 207, 208, 209, 210, 211, + 212, 213, 214, -1, 216, -1, 218, 219, 220, 221, + 222, 223, 224, 225, 226, 227, 228, -1, -1, 231, + 232, 233, 234, -1, 236, 237, 238, 239, 240, 241, + 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, + 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, + 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, + 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, + 282, 283, -1, 285, 286, -1, -1, 289, 290, 291, + -1, -1, 294, 295, 296, 297, 298, 299, 300, 301, + 302, 303, 304, 305, 306, 307, 308, 309, -1, 311, + 312, 313, 314, 315, 316, 317, 318, 319, -1, 321, + 322, 323, 324, 325, 326, -1, 328, 329, 330, 331, + 332, 333, 334, 335, -1, 337, 338, 339, 340, 341, + 342, 343, 344, 345, 346, 347, 348, 349, -1, 351, + 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, + 362, 363, 364, 365, 366, 367, 368, -1, 370, 371, + 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, + 382, 383, 384, 385, -1, 387, 388, 389, 390, 391, + 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, + 402, -1, 404, 405, -1, 407, 408, 409, 410, 411, + 412, 413, -1, 415, 416, -1, -1, 419, 420, 421, + 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, + 432, -1, -1, 435, 436, 437, 438, 439, 440, -1, + 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, + 452, 453, 454, 455, 456, -1, -1, 459, -1, -1, + 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, + 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, + 482, 483, -1, -1, -1, -1, -1, -1, 490, 491, + 492, -1, -1, -1, -1, 497, -1, 499, 500, -1, + -1, -1, 504, -1, 506, 507, 3, 4, 5, 6, + 7, 8, 9, 10, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 21, 22, 23, 24, 25, 26, + 27, 28, -1, 30, 31, 32, -1, -1, -1, -1, + 37, -1, -1, 40, 41, -1, 43, 44, 45, 46, + 47, 48, 49, 50, 51, 52, 53, 54, -1, 56, + 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, + 67, 68, -1, 70, 71, 72, 73, 74, -1, 76, + -1, 78, 79, 80, 81, 82, 83, 84, 85, 86, + 87, -1, 89, 90, 91, 92, 93, 94, -1, 96, + 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, + 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, + 117, 118, -1, 120, 121, 122, 123, 124, 125, -1, + 127, 128, 129, 130, 131, -1, -1, 134, 135, 136, + 137, 138, -1, 140, 141, 142, -1, 144, 145, 146, + -1, 148, 149, 150, 151, 152, 153, 154, 155, 156, + 157, 158, 159, 160, -1, 162, 163, 164, 165, -1, + 167, -1, 169, 170, -1, 172, 173, 174, 175, 176, + 177, -1, 179, -1, 181, 182, 183, -1, 185, 186, + 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, + -1, 198, 199, 200, 201, 202, 203, -1, 205, 206, + 207, 208, 209, 210, 211, 212, 213, 214, -1, 216, + -1, 218, 219, 220, 221, 222, 223, 224, 225, 226, + 227, 228, -1, -1, 231, 232, 233, 234, -1, 236, + 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, + 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, + 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, + 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, + 277, 278, 279, 280, 281, 282, 283, -1, 285, 286, + -1, -1, 289, 290, 291, -1, -1, 294, 295, 296, + 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, + 307, 308, 309, -1, 311, 312, 313, 314, 315, 316, + 317, 318, 319, -1, 321, 322, 323, 324, 325, 326, + -1, 328, 329, 330, 331, 332, 333, 334, 335, -1, + 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, + 347, 348, 349, -1, 351, 352, 353, 354, 355, 356, + 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, + 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, + 377, 378, 379, 380, 381, 382, 383, 384, 385, -1, + 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, + 397, 398, 399, 400, 401, 402, -1, 404, 405, 406, + 407, 408, 409, 410, 411, 412, 413, -1, 415, 416, + -1, -1, 419, 420, 421, 422, 423, 424, 425, 426, + 427, 428, 429, 430, 431, 432, -1, -1, 435, 436, + 437, 438, 439, 440, -1, 442, 443, 444, 445, 446, + 447, 448, -1, 450, 451, 452, 453, 454, 455, 456, + -1, -1, 459, -1, 461, 462, 463, 464, 465, 466, + 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, + 477, 478, 479, 480, 481, 482, 483, -1, 485, -1, + -1, -1, -1, 490, 491, -1, -1, -1, -1, -1, + 497, -1, 499, 500, -1, -1, -1, 504, -1, 506, + 507, 3, 4, 5, 6, 7, 8, 9, 10, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 21, + 22, 23, 24, 25, 26, 27, 28, -1, 30, 31, + 32, -1, -1, -1, -1, 37, -1, -1, 40, 41, + -1, 43, 44, 45, 46, 47, 48, 49, 50, 51, + 52, 53, 54, -1, 56, 57, 58, 59, 60, 61, + 62, 63, 64, 65, 66, 67, 68, -1, 70, 71, + 72, 73, 74, -1, 76, -1, 78, 79, 80, 81, + 82, 83, 84, 85, 86, 87, -1, 89, 90, 91, + 92, 93, 94, -1, 96, 97, 98, 99, 100, 101, + 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, + 112, 113, 114, 115, 116, 117, 118, -1, 120, 121, + 122, 123, 124, 125, -1, 127, 128, 129, 130, 131, + -1, -1, 134, 135, 136, 137, 138, -1, 140, 141, + 142, -1, 144, 145, 146, -1, 148, 149, 150, 151, + 152, 153, 154, 155, 156, 157, 158, 159, 160, -1, + 162, 163, 164, 165, -1, 167, -1, 169, 170, -1, + 172, 173, 174, 175, 176, 177, -1, 179, -1, 181, + 182, 183, -1, 185, 186, 187, 188, 189, 190, 191, + 192, 193, 194, 195, 196, -1, 198, 199, 200, 201, + 202, 203, -1, 205, 206, 207, 208, 209, 210, 211, + 212, 213, 214, -1, 216, -1, 218, 219, 220, 221, + 222, 223, 224, 225, 226, 227, 228, -1, -1, 231, + 232, 233, 234, -1, 236, 237, 238, 239, 240, 241, + 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, + 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, + 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, + 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, + 282, 283, -1, 285, 286, -1, -1, 289, 290, 291, + -1, -1, 294, 295, 296, 297, 298, 299, 300, 301, + 302, 303, 304, 305, 306, 307, 308, 309, -1, 311, + 312, 313, 314, 315, 316, 317, 318, 319, -1, 321, + 322, 323, 324, 325, 326, -1, 328, 329, 330, 331, + 332, 333, 334, 335, -1, 337, 338, 339, 340, 341, + 342, 343, 344, 345, 346, 347, 348, 349, -1, 351, + 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, + 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, + 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, + 382, 383, 384, 385, -1, 387, 388, 389, 390, 391, + 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, + 402, -1, 404, 405, 406, 407, 408, 409, 410, 411, + 412, 413, -1, 415, 416, -1, -1, 419, 420, 421, + 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, + 432, -1, -1, 435, 436, 437, 438, 439, 440, -1, + 442, 443, 444, 445, 446, 447, 448, -1, 450, 451, + 452, 453, 454, 455, 456, -1, -1, 459, -1, 461, + 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, + 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, + 482, 483, -1, 485, -1, -1, -1, -1, 490, 491, + -1, -1, -1, -1, -1, 497, -1, 499, -1, -1, + -1, -1, 504, -1, 506, 507, 3, 4, 5, 6, + 7, 8, 9, 10, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 21, 22, 23, 24, 25, 26, + 27, 28, -1, 30, 31, 32, -1, -1, -1, -1, + 37, -1, -1, 40, 41, -1, 43, 44, 45, 46, + 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, + 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, + 67, 68, -1, 70, 71, 72, 73, 74, -1, 76, + -1, 78, 79, 80, 81, 82, 83, 84, 85, 86, + 87, -1, 89, 90, 91, 92, 93, 94, -1, 96, + 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, + 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, + 117, 118, -1, 120, 121, 122, 123, 124, 125, -1, + 127, 128, 129, 130, 131, -1, -1, 134, 135, 136, + 137, 138, -1, 140, 141, 142, -1, 144, 145, 146, + -1, 148, 149, 150, 151, 152, 153, 154, 155, 156, + 157, 158, 159, 160, -1, 162, 163, 164, 165, -1, + 167, -1, 169, 170, 171, 172, 173, 174, 175, 176, + 177, -1, 179, -1, 181, 182, 183, -1, 185, 186, + 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, + -1, 198, 199, 200, 201, 202, 203, -1, 205, 206, + 207, 208, 209, 210, 211, 212, 213, 214, -1, 216, + -1, 218, 219, 220, 221, 222, 223, 224, 225, 226, + 227, 228, -1, 230, 231, 232, 233, 234, -1, 236, + 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, + 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, + 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, + 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, + 277, 278, 279, 280, 281, 282, 283, -1, 285, 286, + -1, -1, 289, 290, 291, -1, -1, 294, 295, 296, + 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, + 307, 308, 309, -1, 311, 312, 313, 314, 315, 316, + 317, 318, 319, -1, 321, 322, 323, 324, 325, 326, + -1, 328, 329, 330, 331, 332, 333, 334, 335, -1, + 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, + 347, 348, 349, -1, 351, 352, 353, 354, 355, 356, + 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, + 367, 368, -1, 370, 371, 372, 373, 374, 375, 376, + 377, 378, 379, 380, 381, 382, 383, 384, 385, -1, + 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, + 397, 398, 399, 400, 401, 402, -1, 404, 405, -1, + 407, 408, 409, 410, 411, 412, 413, -1, 415, 416, + -1, 418, 419, 420, 421, 422, 423, 424, 425, 426, + 427, 428, 429, 430, 431, 432, -1, -1, 435, 436, + 437, 438, 439, 440, -1, 442, 443, 444, 445, 446, + 447, 448, -1, 450, 451, 452, 453, 454, 455, 456, + -1, -1, 459, -1, -1, 462, 463, 464, 465, 466, + 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, + 477, 478, 479, 480, 481, 482, 483, -1, -1, -1, + -1, -1, -1, 490, 491, -1, -1, -1, -1, -1, + 497, -1, 499, -1, -1, -1, -1, 504, -1, 506, + 507, 3, 4, 5, 6, 7, 8, 9, 10, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 21, + 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, + 32, -1, -1, -1, 36, 37, -1, -1, 40, 41, + -1, 43, 44, 45, 46, 47, 48, 49, 50, 51, + 52, 53, 54, -1, 56, 57, 58, 59, 60, 61, + 62, 63, 64, 65, 66, 67, 68, -1, 70, 71, + 72, 73, 74, -1, 76, -1, 78, 79, 80, 81, + 82, 83, 84, 85, 86, 87, -1, 89, 90, 91, + 92, 93, 94, -1, 96, 97, 98, 99, 100, 101, + 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, + 112, 113, 114, 115, 116, 117, 118, -1, 120, 121, + 122, 123, 124, 125, -1, 127, 128, 129, 130, 131, + -1, -1, 134, 135, 136, 137, 138, -1, 140, 141, + 142, -1, 144, 145, 146, -1, 148, 149, 150, 151, + 152, 153, 154, 155, 156, 157, 158, 159, 160, -1, + 162, 163, 164, 165, -1, 167, -1, 169, 170, -1, + 172, 173, 174, 175, 176, 177, -1, 179, -1, 181, + 182, 183, -1, 185, 186, 187, 188, 189, 190, 191, + 192, 193, 194, 195, 196, -1, 198, 199, 200, 201, + 202, 203, -1, 205, 206, 207, 208, 209, 210, 211, + 212, 213, 214, -1, 216, -1, 218, 219, 220, 221, + 222, 223, 224, 225, 226, 227, 228, -1, -1, 231, + 232, 233, 234, -1, 236, 237, 238, 239, 240, 241, + 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, + 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, + 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, + 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, + 282, 283, -1, 285, 286, -1, -1, 289, 290, 291, + -1, -1, 294, 295, 296, 297, 298, 299, 300, 301, + 302, 303, 304, 305, 306, 307, 308, 309, -1, 311, + 312, 313, 314, 315, 316, 317, 318, 319, -1, 321, + 322, 323, 324, 325, 326, -1, 328, 329, 330, 331, + 332, 333, 334, 335, -1, 337, 338, 339, 340, 341, + 342, 343, 344, 345, 346, 347, 348, 349, -1, 351, + 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, + 362, 363, 364, 365, 366, 367, 368, -1, 370, 371, + 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, + 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, + 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, + 402, -1, 404, 405, -1, 407, 408, 409, 410, 411, + 412, 413, -1, 415, 416, -1, -1, 419, 420, 421, + 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, + 432, -1, -1, 435, 436, 437, 438, 439, 440, -1, + 442, 443, 444, 445, 446, 447, 448, -1, 450, 451, + 452, 453, 454, 455, 456, -1, -1, 459, -1, -1, + 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, + 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, + 482, 483, -1, -1, -1, -1, -1, -1, 490, 491, + -1, -1, -1, -1, -1, 497, -1, 499, -1, -1, + -1, -1, 504, -1, 506, 507, 3, 4, 5, 6, + 7, 8, 9, 10, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 21, 22, 23, 24, 25, 26, + 27, 28, 29, 30, 31, 32, -1, -1, -1, -1, + 37, -1, -1, 40, 41, -1, 43, 44, 45, 46, + 47, 48, 49, 50, 51, 52, 53, 54, -1, 56, + 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, + 67, 68, -1, 70, 71, 72, 73, 74, -1, 76, + -1, 78, 79, 80, 81, 82, 83, 84, 85, 86, + 87, -1, 89, 90, 91, 92, 93, 94, -1, 96, + 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, + 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, + 117, 118, -1, 120, 121, 122, 123, 124, 125, -1, + 127, 128, 129, 130, 131, -1, -1, 134, 135, 136, + 137, 138, -1, 140, 141, 142, -1, 144, 145, 146, + -1, 148, 149, 150, 151, 152, 153, 154, 155, 156, + 157, 158, 159, 160, -1, 162, 163, 164, 165, -1, + 167, -1, 169, 170, -1, 172, 173, 174, 175, 176, + 177, -1, 179, -1, 181, 182, 183, -1, 185, 186, + 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, + -1, 198, 199, 200, 201, 202, 203, -1, 205, 206, + 207, 208, 209, 210, 211, 212, 213, 214, -1, 216, + -1, 218, 219, 220, 221, 222, 223, 224, 225, 226, + 227, 228, -1, -1, 231, 232, 233, 234, -1, 236, + 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, + 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, + 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, + 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, + 277, 278, 279, 280, 281, 282, 283, -1, 285, 286, + -1, -1, 289, 290, 291, -1, -1, 294, 295, 296, + 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, + 307, 308, 309, -1, 311, 312, 313, 314, 315, 316, + 317, 318, 319, -1, 321, 322, 323, 324, 325, 326, + -1, 328, 329, 330, 331, 332, 333, 334, 335, -1, + 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, + 347, 348, 349, -1, 351, 352, 353, 354, 355, 356, + 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, + 367, 368, -1, 370, 371, 372, 373, 374, 375, 376, + 377, 378, 379, 380, 381, 382, 383, 384, 385, -1, + 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, + 397, 398, 399, 400, 401, 402, -1, 404, 405, -1, + 407, 408, 409, 410, 411, 412, 413, -1, 415, 416, + -1, -1, 419, 420, 421, 422, 423, 424, 425, 426, + 427, 428, 429, 430, 431, 432, -1, -1, 435, 436, + 437, 438, 439, 440, -1, 442, 443, 444, 445, 446, + 447, 448, -1, 450, 451, 452, 453, 454, 455, 456, + -1, -1, 459, -1, -1, 462, 463, 464, 465, 466, + 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, + 477, 478, 479, 480, 481, 482, 483, -1, -1, -1, + -1, -1, -1, 490, 491, 492, -1, -1, -1, -1, + 497, -1, 499, -1, -1, -1, -1, 504, -1, 506, + 507, 3, 4, 5, 6, 7, 8, 9, 10, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 21, + 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, + 32, -1, -1, -1, -1, 37, -1, -1, 40, 41, + -1, 43, 44, 45, 46, 47, 48, 49, 50, 51, + 52, 53, 54, -1, 56, 57, 58, 59, 60, 61, + 62, 63, 64, 65, 66, 67, 68, -1, 70, 71, + 72, 73, 74, -1, 76, -1, 78, 79, 80, 81, + 82, 83, 84, 85, 86, 87, -1, 89, 90, 91, + 92, 93, 94, -1, 96, 97, 98, 99, 100, 101, + 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, + 112, 113, 114, 115, 116, 117, 118, -1, 120, 121, + 122, 123, 124, 125, -1, 127, 128, 129, 130, 131, + -1, -1, 134, 135, 136, 137, 138, -1, 140, 141, + 142, -1, 144, 145, 146, -1, 148, 149, 150, 151, + 152, 153, 154, 155, 156, 157, 158, 159, 160, -1, + 162, 163, 164, 165, -1, 167, -1, 169, 170, -1, + 172, 173, 174, 175, 176, 177, -1, 179, -1, 181, + 182, 183, -1, 185, 186, 187, 188, 189, 190, 191, + 192, 193, 194, 195, 196, -1, 198, 199, 200, 201, + 202, 203, -1, 205, 206, 207, 208, 209, 210, 211, + 212, 213, 214, -1, 216, -1, 218, 219, 220, 221, + 222, 223, 224, 225, 226, 227, 228, -1, -1, 231, + 232, 233, 234, -1, 236, 237, 238, 239, 240, 241, + 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, + 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, + 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, + 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, + 282, 283, -1, 285, 286, -1, -1, 289, 290, 291, + -1, -1, 294, 295, 296, 297, 298, 299, 300, 301, + 302, 303, 304, 305, 306, 307, 308, 309, -1, 311, + 312, 313, 314, 315, 316, 317, 318, 319, -1, 321, + 322, 323, 324, 325, 326, -1, 328, 329, 330, 331, + 332, 333, 334, 335, -1, 337, 338, 339, 340, 341, + 342, 343, 344, 345, 346, 347, 348, 349, -1, 351, + 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, + 362, 363, 364, 365, 366, 367, 368, -1, 370, 371, + 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, + 382, 383, 384, 385, -1, 387, 388, 389, 390, 391, + 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, + 402, -1, 404, 405, -1, 407, 408, 409, 410, 411, + 412, 413, -1, 415, 416, -1, -1, 419, 420, 421, + 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, + 432, -1, -1, 435, 436, 437, 438, 439, 440, -1, + 442, 443, 444, 445, 446, 447, 448, -1, 450, 451, + 452, 453, 454, 455, 456, -1, -1, 459, -1, -1, + 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, + 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, + 482, 483, -1, -1, -1, -1, -1, -1, 490, 491, + 492, -1, -1, -1, -1, 497, -1, 499, -1, -1, + -1, -1, 504, -1, 506, 507, 3, 4, 5, 6, + 7, 8, 9, 10, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 21, 22, 23, 24, 25, 26, + 27, 28, -1, 30, 31, 32, -1, -1, -1, -1, + 37, -1, -1, 40, 41, -1, 43, 44, 45, 46, + 47, 48, 49, 50, 51, 52, 53, 54, -1, 56, + 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, + 67, 68, -1, 70, 71, 72, 73, 74, -1, 76, + -1, 78, 79, 80, 81, 82, 83, 84, 85, 86, + 87, -1, 89, 90, 91, 92, 93, 94, -1, 96, + 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, + 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, + 117, 118, -1, 120, 121, 122, 123, 124, 125, -1, + 127, 128, 129, 130, 131, -1, -1, 134, 135, 136, + 137, 138, -1, 140, 141, 142, -1, 144, 145, 146, + -1, 148, 149, 150, 151, 152, 153, 154, 155, 156, + 157, 158, 159, 160, -1, 162, 163, 164, 165, -1, + 167, -1, 169, 170, -1, 172, 173, 174, 175, 176, + 177, -1, 179, -1, 181, 182, 183, -1, 185, 186, + 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, + -1, 198, 199, 200, 201, 202, 203, -1, 205, 206, + 207, 208, 209, 210, 211, 212, 213, 214, -1, 216, + -1, 218, 219, 220, 221, 222, 223, 224, 225, 226, + 227, 228, -1, -1, 231, 232, 233, 234, -1, 236, + 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, + 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, + 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, + 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, + 277, 278, 279, 280, 281, 282, 283, -1, 285, 286, + -1, -1, 289, 290, 291, -1, -1, 294, 295, 296, + 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, + 307, 308, 309, -1, 311, 312, 313, 314, 315, 316, + 317, 318, 319, -1, 321, 322, 323, 324, 325, 326, + -1, 328, 329, 330, 331, 332, 333, 334, 335, -1, + 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, + 347, 348, 349, -1, 351, 352, 353, 354, 355, 356, + 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, + 367, 368, -1, 370, 371, 372, 373, 374, 375, 376, + 377, 378, 379, 380, 381, 382, 383, 384, 385, -1, + 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, + 397, 398, 399, 400, 401, 402, -1, 404, 405, -1, + 407, 408, 409, 410, 411, 412, 413, -1, 415, 416, + -1, -1, 419, 420, 421, 422, 423, 424, 425, 426, + 427, 428, 429, 430, 431, 432, -1, -1, 435, 436, + 437, 438, 439, 440, -1, 442, 443, 444, 445, 446, + 447, 448, -1, 450, 451, 452, 453, 454, 455, 456, + -1, -1, 459, -1, -1, 462, 463, 464, 465, 466, + 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, + 477, 478, 479, 480, 481, 482, 483, -1, -1, -1, + -1, -1, -1, 490, 491, 492, -1, -1, -1, -1, + 497, -1, 499, -1, -1, -1, -1, 504, -1, 506, + 507, 3, 4, 5, 6, 7, 8, 9, 10, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 21, + 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, + 32, -1, -1, -1, -1, 37, -1, -1, 40, 41, + -1, 43, 44, 45, 46, 47, 48, 49, 50, 51, + 52, 53, 54, -1, 56, 57, 58, 59, 60, 61, + 62, 63, 64, 65, 66, 67, 68, -1, 70, 71, + 72, 73, 74, -1, 76, -1, 78, 79, 80, 81, + 82, 83, 84, 85, 86, 87, -1, 89, 90, 91, + 92, 93, 94, -1, 96, 97, 98, 99, 100, 101, + 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, + 112, 113, 114, 115, 116, 117, 118, -1, 120, 121, + 122, 123, 124, 125, -1, 127, 128, 129, 130, 131, + -1, -1, 134, 135, 136, 137, 138, -1, 140, 141, + 142, -1, 144, 145, 146, -1, 148, 149, 150, 151, + 152, 153, 154, 155, 156, 157, 158, 159, 160, -1, + 162, 163, 164, 165, -1, 167, -1, 169, 170, -1, + 172, 173, 174, 175, 176, 177, -1, 179, -1, 181, + 182, 183, -1, 185, 186, 187, 188, 189, 190, 191, + 192, 193, 194, 195, 196, -1, 198, 199, 200, 201, + 202, 203, -1, 205, 206, 207, 208, 209, 210, 211, + 212, 213, 214, -1, 216, -1, 218, 219, 220, 221, + 222, 223, 224, 225, 226, 227, 228, -1, -1, 231, + 232, 233, 234, -1, 236, 237, 238, 239, 240, 241, + 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, + 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, + 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, + 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, + 282, 283, -1, 285, 286, -1, -1, 289, 290, 291, + -1, -1, 294, 295, 296, 297, 298, 299, 300, 301, + 302, 303, 304, 305, 306, 307, 308, 309, -1, 311, + 312, 313, 314, 315, 316, 317, 318, 319, -1, 321, + 322, 323, 324, 325, 326, -1, 328, 329, 330, 331, + 332, 333, 334, 335, -1, 337, 338, 339, 340, 341, + 342, 343, 344, 345, 346, 347, 348, 349, -1, 351, + 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, + 362, 363, 364, 365, 366, 367, 368, -1, 370, 371, + 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, + 382, 383, 384, 385, -1, 387, 388, 389, 390, 391, + 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, + 402, -1, 404, 405, -1, 407, 408, 409, 410, 411, + 412, 413, -1, 415, 416, -1, -1, 419, 420, 421, + 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, + 432, -1, -1, 435, 436, 437, 438, 439, 440, -1, + 442, 443, 444, 445, 446, 447, 448, -1, 450, 451, + 452, 453, 454, 455, 456, -1, -1, 459, -1, -1, + 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, + 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, + 482, 483, -1, -1, -1, -1, -1, -1, 490, 491, + -1, -1, -1, -1, -1, 497, -1, 499, -1, -1, + -1, -1, 504, -1, 506, 507, 3, 4, 5, 6, + 7, 8, 9, 10, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 21, 22, 23, 24, 25, 26, 27, 28, -1, 30, 31, 32, -1, -1, -1, -1, - -1, -1, -1, 40, 41, -1, 43, 44, 45, -1, - 47, 48, 49, 50, 51, -1, 53, 54, -1, 56, - 57, 58, 59, 60, 61, -1, -1, 64, 65, 66, - 67, 68, -1, 70, 71, 72, 73, 74, -1, -1, - -1, 78, 79, 80, 81, 82, 83, -1, 85, 86, - 87, -1, 89, 90, 91, 92, 93, 94, -1, -1, - 97, 98, 99, -1, -1, -1, -1, -1, -1, -1, + 37, -1, -1, 40, 41, -1, 43, 44, 45, 46, + 47, 48, 49, 50, 51, 52, 53, 54, -1, 56, + 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, + 67, 68, -1, 70, 71, 72, 73, 74, -1, 76, + -1, 78, 79, 80, 81, 82, 83, 84, 85, 86, + 87, -1, 89, 90, 91, 92, 93, 94, -1, 96, + 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, - -1, 118, -1, 120, 121, 122, 123, 124, 125, -1, + 117, 118, -1, 120, 121, 122, 123, 124, 125, -1, 127, 128, 129, 130, 131, -1, -1, 134, 135, 136, 137, 138, -1, 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, 150, 151, 152, 153, 154, 155, 156, - 157, 158, -1, 160, -1, 162, 163, 164, 165, -1, - 167, -1, 169, -1, -1, -1, 173, 174, 175, -1, + 157, 158, 159, 160, -1, 162, 163, 164, 165, -1, + 167, -1, 169, 170, -1, 172, 173, 174, 175, 176, 177, -1, 179, -1, 181, 182, 183, -1, 185, 186, - 187, 188, 189, 190, 191, -1, 193, 194, 195, 196, - -1, 198, 199, 200, 201, 202, 203, -1, 205, -1, + 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, + -1, 198, 199, 200, 201, 202, 203, -1, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, -1, 216, - -1, 218, -1, -1, 221, -1, 223, 224, 225, 226, - 227, 228, -1, -1, 231, -1, 233, -1, -1, 236, - 237, 238, -1, -1, 241, 242, 243, 244, 245, 246, + -1, 218, 219, 220, 221, 222, 223, 224, 225, 226, + 227, 228, -1, -1, 231, 232, 233, 234, -1, 236, + 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, - 257, 258, 259, 260, 261, 262, 263, 264, 265, -1, - 267, 268, 269, 270, 271, -1, 273, 274, -1, 276, - -1, 278, 279, 280, 281, 282, 283, -1, 285, 286, - -1, -1, 289, 290, 291, -1, -1, 294, 295, -1, - 297, -1, 299, 300, 301, 302, 303, 304, 305, 306, + 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, + 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, + 277, 278, 279, 280, 281, 282, 283, -1, 285, 286, + -1, -1, 289, 290, 291, -1, -1, 294, 295, 296, + 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, -1, 311, 312, 313, 314, 315, 316, 317, 318, 319, -1, 321, 322, 323, 324, 325, 326, -1, 328, 329, 330, 331, 332, 333, 334, 335, -1, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, - 347, 348, 349, -1, 351, 352, -1, 354, 355, 356, + 347, 348, 349, -1, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, - 367, 368, -1, 370, 371, 372, 373, 374, -1, 376, - 377, 378, 379, 380, -1, 382, 383, 384, 385, -1, + 367, 368, -1, 370, 371, 372, 373, 374, 375, 376, + 377, 378, 379, 380, 381, 382, 383, 384, 385, -1, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, -1, 404, 405, -1, - 407, -1, 409, 410, 411, 412, 413, -1, 415, 416, - -1, -1, 419, 420, 421, 422, 423, -1, 425, 426, + 407, 408, 409, 410, 411, 412, 413, -1, 415, 416, + -1, -1, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, -1, -1, 435, 436, - 437, 438, 439, -1, -1, 442, 443, 444, 445, 446, - 447, 448, -1, 450, -1, 452, 453, 454, 455, 456, + 437, 438, 439, 440, -1, 442, 443, 444, 445, 446, + 447, 448, -1, 450, 451, 452, 453, 454, 455, 456, -1, -1, 459, -1, -1, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, - 477, 478, 479, 480, 481, 482, -1, -1, -1, 486, - 487, 488, -1, 490, 491, 492, 493, 494, 495, 8, - -1, -1, 11, -1, -1, -1, 15, 16, 17, 18, - 19, 20, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 35, -1, 8, -1, - -1, 11, -1, -1, 43, 15, 16, 17, 18, 19, - 20, 50, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 35, -1, -1, -1, -1, - -1, -1, -1, 43, 8, -1, 75, 11, -1, -1, - 50, 15, 16, 17, 18, 19, 20, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 35, -1, 8, -1, 75, 11, -1, -1, 43, - 15, 16, 17, 18, 19, 20, 50, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 35, -1, -1, -1, -1, -1, -1, -1, 43, -1, - -1, 75, -1, -1, -1, 50, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 75, -1, -1, -1, -1, -1, -1, 176, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 192, -1, -1, -1, -1, 197, -1, - -1, 8, -1, -1, 11, -1, 176, -1, 15, 16, - 17, 18, 19, 20, -1, -1, -1, -1, -1, -1, - 219, 220, 192, -1, -1, -1, -1, 197, 35, -1, - -1, -1, -1, -1, -1, 234, 43, -1, -1, -1, - -1, -1, 176, 50, -1, -1, -1, -1, -1, 219, - 220, -1, -1, -1, -1, -1, -1, -1, 192, -1, - -1, -1, -1, 197, 234, -1, -1, -1, 75, -1, - -1, 176, -1, 272, -1, -1, 275, -1, -1, -1, - -1, -1, -1, -1, -1, 219, 220, 192, -1, -1, - 289, -1, 197, 292, -1, -1, -1, -1, -1, -1, - 234, -1, 272, -1, -1, 275, -1, -1, -1, -1, - -1, -1, -1, -1, 219, 220, -1, -1, -1, 289, - -1, -1, 292, -1, -1, -1, -1, -1, -1, 234, - -1, -1, -1, -1, -1, -1, -1, -1, 272, -1, - -1, 275, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 289, -1, -1, 292, -1, - -1, -1, -1, -1, -1, -1, -1, 272, -1, 176, - 275, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 381, -1, 289, 192, -1, 292, -1, -1, - 197, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 381, 219, 220, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 234, -1, -1, - -1, 8, -1, -1, 11, -1, -1, -1, 15, 16, - 17, 18, 19, 20, -1, -1, -1, 381, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 35, -1, - -1, -1, -1, -1, -1, 272, 43, -1, 275, -1, - -1, -1, -1, 50, -1, -1, 381, -1, -1, -1, - -1, -1, 289, -1, 483, 292, -1, 486, 487, 488, - -1, 490, 491, 492, 493, 494, 495, -1, 75, -1, - -1, 500, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 483, -1, -1, 486, 487, 488, -1, - 490, 491, 492, 493, 494, 495, -1, -1, -1, -1, - 500, -1, -1, -1, -1, 8, -1, -1, 11, -1, - -1, -1, 15, 16, 17, 18, 19, 20, -1, 483, - -1, -1, 486, 487, 488, -1, 490, 491, 492, 493, - 494, 495, 35, -1, -1, -1, 500, -1, -1, -1, - 43, -1, -1, -1, 381, -1, -1, 50, 483, -1, - -1, 486, 487, 488, -1, 490, 491, 492, 493, 494, - 495, -1, -1, -1, -1, 500, -1, 8, -1, 176, - 11, -1, 75, -1, 15, 16, 17, 18, 19, 20, - -1, -1, -1, -1, -1, 192, -1, -1, -1, -1, - 197, -1, -1, -1, 35, -1, -1, -1, -1, -1, - -1, -1, 43, -1, -1, -1, -1, -1, -1, 50, - -1, -1, 219, 220, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 234, -1, -1, - -1, -1, 8, -1, 75, 11, -1, -1, -1, 15, - 16, 17, 18, 19, 20, -1, 483, -1, -1, 486, - 487, 488, -1, 490, 491, 492, 493, 494, 495, 35, - -1, -1, -1, 500, -1, 272, -1, 43, 275, -1, - -1, -1, -1, 176, 50, -1, -1, -1, -1, -1, - -1, -1, 289, -1, -1, 292, -1, -1, -1, 192, - -1, -1, -1, -1, 197, -1, -1, -1, -1, 75, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 219, 220, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 234, -1, -1, -1, 176, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 8, 192, -1, 11, -1, -1, 197, 15, 16, 17, - 18, 19, 20, -1, -1, -1, -1, -1, -1, 272, - -1, -1, 275, -1, 381, -1, -1, 35, 219, 220, - -1, -1, -1, -1, -1, 43, 289, -1, -1, 292, - -1, -1, 50, 234, -1, -1, -1, -1, -1, -1, - 176, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 192, 75, -1, -1, - -1, 197, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 272, -1, -1, 275, -1, -1, -1, -1, -1, - -1, -1, -1, 219, 220, -1, -1, -1, 289, -1, - -1, 292, -1, -1, -1, -1, -1, -1, 234, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 483, -1, 381, 486, - 487, 488, -1, 490, 491, 492, 493, 494, 495, -1, - -1, -1, -1, 500, -1, -1, 272, -1, -1, 275, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 289, 8, -1, 292, 11, 176, -1, - -1, 15, 16, 17, 18, 19, 20, -1, -1, -1, - -1, -1, -1, -1, 192, -1, -1, -1, -1, 197, - 381, 35, -1, -1, -1, -1, -1, -1, -1, 43, - -1, -1, -1, -1, -1, -1, 50, -1, -1, -1, - -1, 219, 220, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 234, -1, -1, -1, - 483, 75, -1, 486, 487, 488, -1, 490, 491, 492, - 493, 494, 495, -1, -1, -1, -1, 500, -1, -1, - -1, -1, -1, -1, -1, 381, -1, -1, -1, -1, - -1, -1, -1, -1, 272, -1, -1, 275, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 289, -1, -1, 292, -1, -1, -1, -1, -1, - -1, -1, 483, -1, -1, 486, 487, 488, -1, 490, - 491, 492, 493, 494, 495, -1, -1, -1, -1, 500, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 176, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 192, -1, - -1, -1, -1, 197, -1, -1, -1, 483, -1, -1, - 486, 487, 488, -1, 490, 491, 492, 493, 494, 495, - -1, -1, -1, 381, 500, 219, 220, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 234, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 272, -1, - -1, 275, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 289, -1, -1, 292, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 483, -1, -1, 486, 487, - 488, -1, 490, 491, 492, 493, 494, 495, -1, -1, - -1, -1, 500, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 381, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 3, -1, 483, - -1, -1, 486, 487, 488, -1, 490, 491, 492, 493, - 494, 495, -1, -1, 498, 21, 22, 23, 24, 25, - 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, - 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, - 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, - 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, - 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, - 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, - 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, - 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, - 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, - 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, - 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, - 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, - 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, - 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, - 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, - 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, - 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, - 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, - 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, - 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, - 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, - 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, - 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, - 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, - 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, - 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, - 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, - 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, - 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, - 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, - 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, - 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, - 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, - 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, - 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, - 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, - 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, - 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, - 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, - 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, - 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, - 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, - 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, - 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, - 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, - 476, 477, 478, 479, 480, 481, 482, 3, -1, -1, - -1, -1, -1, -1, -1, -1, 492, -1, -1, -1, - -1, -1, -1, -1, -1, 21, 22, 23, 24, 25, - 26, 27, 28, -1, 30, 31, 32, -1, -1, -1, - -1, -1, -1, -1, 40, 41, -1, 43, 44, 45, - -1, 47, 48, 49, 50, 51, -1, 53, 54, -1, - 56, 57, 58, 59, 60, 61, -1, -1, 64, 65, - 66, 67, 68, -1, 70, 71, 72, 73, 74, -1, - -1, -1, 78, 79, 80, 81, 82, 83, -1, 85, - 86, 87, -1, 89, 90, 91, 92, 93, 94, -1, - -1, 97, 98, 99, -1, -1, -1, -1, -1, -1, - -1, 107, 108, 109, 110, 111, 112, 113, 114, 115, - 116, -1, 118, -1, 120, 121, 122, 123, 124, 125, - -1, 127, 128, 129, 130, 131, -1, -1, 134, 135, - 136, 137, 138, -1, 140, 141, 142, -1, 144, 145, - 146, -1, 148, 149, 150, 151, 152, 153, 154, 155, - 156, 157, 158, -1, 160, -1, 162, 163, 164, 165, - -1, 167, -1, 169, -1, -1, -1, 173, 174, 175, - -1, 177, -1, 179, -1, 181, 182, 183, -1, 185, - 186, 187, 188, 189, 190, 191, -1, 193, 194, 195, - 196, -1, 198, 199, 200, 201, 202, 203, -1, 205, - -1, 207, 208, 209, 210, 211, 212, 213, 214, -1, - 216, -1, 218, -1, -1, 221, -1, 223, 224, 225, - 226, 227, 228, -1, -1, 231, -1, 233, -1, -1, - 236, 237, 238, -1, -1, 241, 242, 243, 244, 245, - 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, - 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, - -1, 267, 268, 269, 270, 271, -1, 273, 274, -1, - 276, -1, 278, 279, 280, 281, 282, 283, -1, 285, - 286, -1, -1, 289, 290, 291, -1, -1, 294, 295, - -1, 297, -1, 299, 300, 301, 302, 303, 304, 305, - 306, 307, 308, 309, -1, 311, 312, 313, 314, 315, - 316, 317, 318, 319, -1, 321, 322, 323, 324, 325, - 326, -1, 328, 329, 330, 331, 332, 333, 334, 335, - -1, 337, 338, 339, 340, 341, 342, 343, 344, 345, - 346, 347, 348, 349, -1, 351, 352, -1, 354, 355, - 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, - 366, 367, 368, -1, 370, 371, 372, 373, 374, -1, - 376, 377, 378, 379, 380, -1, 382, 383, 384, 385, - -1, 387, 388, 389, 390, 391, 392, 393, 394, 395, - 396, 397, 398, 399, 400, 401, 402, -1, 404, 405, - -1, 407, -1, 409, 410, 411, 412, 413, -1, 415, - 416, -1, -1, 419, 420, 421, 422, 423, -1, 425, - 426, 427, 428, 429, 430, 431, 432, -1, -1, 435, - 436, 437, 438, 439, -1, -1, 442, 443, 444, 445, - 446, 447, 448, -1, 450, -1, 452, 453, 454, 455, - 456, -1, -1, 459, -1, -1, 462, 463, 464, 465, - 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, - 476, 477, 478, 479, 480, 481, 482, 3, 4, 5, - -1, -1, -1, 9, -1, -1, 492, -1, -1, -1, + 477, 478, 479, 480, 481, 482, 483, -1, -1, -1, + -1, -1, -1, 490, 491, -1, -1, -1, -1, -1, + 497, -1, 499, 500, -1, -1, -1, 504, -1, 506, + 507, 3, 4, 5, 6, 7, 8, 9, 10, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 21, + 22, 23, 24, 25, 26, 27, 28, -1, 30, 31, + 32, -1, -1, -1, -1, 37, -1, -1, 40, 41, + -1, 43, 44, 45, 46, 47, 48, 49, 50, 51, + 52, 53, 54, -1, 56, 57, 58, 59, 60, 61, + 62, 63, 64, 65, 66, 67, 68, -1, 70, 71, + 72, 73, 74, -1, 76, -1, 78, 79, 80, 81, + 82, 83, 84, 85, 86, 87, -1, 89, 90, 91, + 92, 93, 94, -1, 96, 97, 98, 99, 100, 101, + 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, + 112, 113, 114, 115, 116, 117, 118, -1, 120, 121, + 122, 123, 124, 125, -1, 127, 128, 129, 130, 131, + -1, -1, 134, 135, 136, 137, 138, -1, 140, 141, + 142, -1, 144, 145, 146, -1, 148, 149, 150, 151, + 152, 153, 154, 155, 156, 157, 158, 159, 160, -1, + 162, 163, 164, 165, -1, 167, -1, 169, 170, -1, + 172, 173, 174, 175, 176, 177, -1, 179, -1, 181, + 182, 183, -1, 185, 186, 187, 188, 189, 190, 191, + 192, 193, 194, 195, 196, -1, 198, 199, 200, 201, + 202, 203, -1, 205, 206, 207, 208, 209, 210, 211, + 212, 213, 214, -1, 216, -1, 218, 219, 220, 221, + 222, 223, 224, 225, 226, 227, 228, -1, -1, 231, + 232, 233, 234, -1, 236, 237, 238, 239, 240, 241, + 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, + 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, + 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, + 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, + 282, 283, -1, 285, 286, -1, -1, 289, 290, 291, + -1, -1, 294, 295, 296, 297, 298, 299, 300, 301, + 302, 303, 304, 305, 306, 307, 308, 309, -1, 311, + 312, 313, 314, 315, 316, 317, 318, 319, -1, 321, + 322, 323, 324, 325, 326, -1, 328, 329, 330, 331, + 332, 333, 334, 335, -1, 337, 338, 339, 340, 341, + 342, 343, 344, 345, 346, 347, 348, 349, -1, 351, + 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, + 362, 363, 364, 365, 366, 367, 368, -1, 370, 371, + 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, + 382, 383, 384, 385, -1, 387, 388, 389, 390, 391, + 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, + 402, -1, 404, 405, -1, 407, 408, 409, 410, 411, + 412, 413, -1, 415, 416, -1, -1, 419, 420, 421, + 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, + 432, -1, -1, 435, 436, 437, 438, 439, 440, -1, + 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, + 452, 453, 454, 455, 456, -1, -1, 459, -1, -1, + 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, + 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, + 482, 483, -1, -1, -1, -1, -1, -1, 490, 491, + -1, -1, -1, -1, -1, 497, -1, 499, -1, -1, + -1, -1, 504, -1, 506, 507, 3, 4, 5, 6, + 7, 8, 9, 10, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 21, 22, 23, 24, 25, 26, + 27, 28, -1, 30, 31, 32, -1, -1, -1, -1, + 37, -1, -1, 40, 41, -1, 43, 44, 45, 46, + 47, 48, 49, 50, 51, 52, 53, 54, -1, 56, + 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, + 67, 68, -1, 70, 71, 72, 73, 74, -1, 76, + -1, 78, 79, 80, 81, 82, 83, 84, 85, 86, + 87, -1, 89, 90, 91, 92, 93, 94, -1, 96, + 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, + 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, + 117, 118, -1, 120, 121, 122, 123, 124, 125, -1, + 127, 128, 129, 130, 131, -1, -1, 134, 135, 136, + 137, 138, -1, 140, 141, 142, -1, 144, 145, 146, + -1, 148, 149, 150, 151, 152, 153, 154, 155, 156, + 157, 158, 159, 160, -1, 162, 163, 164, 165, -1, + 167, -1, 169, 170, -1, 172, 173, 174, 175, 176, + 177, -1, 179, -1, 181, 182, 183, -1, 185, 186, + 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, + -1, 198, 199, 200, 201, 202, 203, -1, 205, 206, + 207, 208, 209, 210, 211, 212, 213, 214, -1, 216, + -1, 218, 219, 220, 221, 222, 223, 224, 225, 226, + 227, 228, -1, -1, 231, 232, 233, 234, -1, 236, + 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, + 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, + 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, + 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, + 277, 278, 279, 280, 281, 282, 283, -1, 285, 286, + -1, -1, 289, 290, 291, -1, -1, 294, 295, 296, + 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, + 307, 308, 309, -1, 311, 312, 313, 314, 315, 316, + 317, 318, 319, -1, 321, 322, 323, 324, 325, 326, + -1, 328, 329, 330, 331, 332, 333, 334, 335, -1, + 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, + 347, 348, 349, -1, 351, 352, 353, 354, 355, 356, + 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, + 367, 368, -1, 370, 371, 372, 373, 374, 375, 376, + 377, 378, 379, 380, 381, 382, 383, 384, 385, -1, + 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, + 397, 398, 399, 400, 401, 402, -1, 404, 405, -1, + 407, 408, 409, 410, 411, 412, 413, -1, 415, 416, + -1, -1, 419, 420, 421, 422, 423, 424, 425, 426, + 427, 428, 429, 430, 431, 432, -1, -1, 435, 436, + 437, 438, 439, 440, -1, 442, 443, 444, 445, 446, + 447, 448, -1, 450, 451, 452, 453, 454, 455, 456, + -1, -1, 459, -1, -1, 462, 463, 464, 465, 466, + 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, + 477, 478, 479, 480, 481, 482, 483, -1, -1, -1, + -1, -1, -1, 490, 491, -1, -1, -1, -1, -1, + 497, -1, 499, 500, -1, -1, -1, 504, -1, 506, + 507, 3, 4, 5, 6, 7, 8, 9, 10, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 21, + 22, 23, 24, 25, 26, 27, 28, -1, 30, 31, + 32, -1, -1, -1, -1, 37, -1, -1, 40, 41, + -1, 43, 44, 45, 46, 47, 48, 49, 50, 51, + 52, 53, 54, -1, 56, 57, 58, 59, 60, 61, + 62, 63, 64, 65, 66, 67, 68, -1, 70, 71, + 72, 73, 74, -1, 76, -1, 78, 79, 80, 81, + 82, 83, 84, 85, 86, 87, -1, 89, 90, 91, + 92, 93, 94, -1, 96, 97, 98, 99, 100, 101, + 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, + 112, 113, 114, 115, 116, 117, 118, -1, 120, 121, + 122, 123, 124, 125, -1, 127, 128, 129, 130, 131, + -1, -1, 134, 135, 136, 137, 138, -1, 140, 141, + 142, -1, 144, 145, 146, -1, 148, 149, 150, 151, + 152, 153, 154, 155, 156, 157, 158, 159, 160, -1, + 162, 163, 164, 165, -1, 167, -1, 169, 170, 171, + 172, 173, 174, 175, 176, 177, -1, 179, -1, 181, + 182, 183, -1, 185, 186, 187, 188, 189, 190, 191, + 192, 193, 194, 195, 196, -1, 198, 199, 200, 201, + 202, 203, -1, 205, 206, 207, 208, 209, 210, 211, + 212, 213, 214, -1, 216, -1, 218, 219, 220, 221, + 222, 223, 224, 225, 226, 227, 228, -1, -1, 231, + 232, 233, 234, -1, 236, 237, 238, 239, 240, 241, + 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, + 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, + 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, + 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, + 282, 283, -1, 285, 286, -1, -1, 289, 290, 291, + -1, -1, 294, 295, 296, 297, 298, 299, 300, 301, + 302, 303, 304, 305, 306, 307, 308, 309, -1, 311, + 312, 313, 314, 315, 316, 317, 318, 319, -1, 321, + 322, 323, 324, 325, 326, -1, 328, 329, 330, 331, + 332, 333, 334, 335, -1, 337, 338, 339, 340, 341, + 342, 343, 344, 345, 346, 347, 348, 349, -1, 351, + 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, + 362, 363, 364, 365, 366, 367, 368, -1, 370, 371, + 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, + 382, 383, 384, 385, -1, 387, 388, 389, 390, 391, + 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, + 402, -1, 404, 405, -1, 407, 408, 409, 410, 411, + 412, 413, -1, 415, 416, -1, -1, 419, 420, 421, + 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, + 432, -1, -1, 435, 436, 437, 438, 439, 440, -1, + 442, 443, 444, 445, 446, 447, 448, -1, 450, 451, + 452, 453, 454, 455, 456, -1, -1, 459, -1, -1, + 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, + 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, + 482, 483, -1, -1, -1, -1, -1, -1, 490, 491, + -1, -1, -1, -1, -1, 497, -1, 499, -1, -1, + -1, -1, 504, -1, 506, 507, 3, 4, 5, 6, + 7, 8, 9, 10, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 21, 22, 23, 24, 25, 26, + 27, 28, -1, 30, 31, 32, -1, -1, -1, -1, + 37, -1, -1, 40, 41, -1, 43, 44, 45, 46, + 47, 48, 49, 50, 51, 52, 53, 54, -1, 56, + 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, + 67, 68, -1, 70, 71, 72, 73, 74, -1, 76, + -1, 78, 79, 80, 81, 82, 83, 84, 85, 86, + 87, -1, 89, 90, 91, 92, 93, 94, -1, 96, + 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, + 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, + 117, 118, -1, 120, 121, 122, 123, 124, 125, -1, + 127, 128, 129, 130, 131, -1, -1, 134, 135, 136, + 137, 138, -1, 140, 141, 142, -1, 144, 145, 146, + -1, 148, 149, 150, 151, 152, 153, 154, 155, 156, + 157, 158, 159, 160, -1, 162, 163, 164, 165, -1, + 167, -1, 169, 170, -1, 172, 173, 174, 175, 176, + 177, -1, 179, -1, 181, 182, 183, -1, 185, 186, + 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, + -1, 198, 199, 200, 201, 202, 203, -1, 205, 206, + 207, 208, 209, 210, 211, 212, 213, 214, -1, 216, + -1, 218, 219, 220, 221, 222, 223, 224, 225, 226, + 227, 228, -1, -1, 231, 232, 233, 234, -1, 236, + 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, + 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, + 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, + 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, + 277, 278, 279, 280, 281, 282, 283, -1, 285, 286, + -1, -1, 289, 290, 291, -1, -1, 294, 295, 296, + 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, + 307, 308, 309, -1, 311, 312, 313, 314, 315, 316, + 317, 318, 319, -1, 321, 322, 323, 324, 325, 326, + -1, 328, 329, 330, 331, 332, 333, 334, 335, -1, + 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, + 347, 348, 349, -1, 351, 352, 353, 354, 355, 356, + 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, + 367, 368, -1, 370, 371, 372, 373, 374, 375, 376, + 377, 378, 379, 380, 381, 382, 383, 384, 385, -1, + 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, + 397, 398, 399, 400, 401, 402, -1, 404, 405, 406, + 407, 408, 409, 410, 411, 412, 413, -1, 415, 416, + -1, -1, 419, 420, 421, 422, 423, 424, 425, 426, + 427, 428, 429, 430, 431, 432, -1, -1, 435, 436, + 437, 438, 439, 440, -1, 442, 443, 444, 445, 446, + 447, 448, -1, 450, 451, 452, 453, 454, 455, 456, + -1, -1, 459, -1, -1, 462, 463, 464, 465, 466, + 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, + 477, 478, 479, 480, 481, 482, 483, -1, -1, -1, + -1, -1, -1, 490, 491, -1, -1, -1, -1, -1, + 497, -1, 499, -1, -1, -1, -1, 504, -1, 506, + 507, 3, 4, 5, 6, 7, 8, 9, 10, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 21, + 22, 23, 24, 25, 26, 27, 28, -1, 30, 31, + 32, -1, -1, -1, -1, 37, -1, -1, 40, 41, + -1, 43, 44, 45, 46, 47, 48, 49, 50, 51, + 52, 53, 54, -1, 56, 57, 58, 59, 60, 61, + 62, 63, 64, 65, 66, 67, 68, -1, 70, 71, + 72, 73, 74, -1, 76, -1, 78, 79, 80, 81, + 82, 83, 84, 85, 86, 87, -1, 89, 90, 91, + 92, 93, 94, -1, 96, 97, 98, 99, 100, 101, + 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, + 112, 113, 114, 115, 116, 117, 118, -1, 120, 121, + 122, 123, 124, 125, -1, 127, 128, 129, 130, 131, + -1, -1, 134, 135, 136, 137, 138, -1, 140, 141, + 142, -1, 144, 145, 146, -1, 148, 149, 150, 151, + 152, 153, 154, 155, 156, 157, 158, 159, 160, -1, + 162, 163, 164, 165, -1, 167, -1, 169, 170, -1, + 172, 173, 174, 175, 176, 177, -1, 179, -1, 181, + 182, 183, -1, 185, 186, 187, 188, 189, 190, 191, + 192, 193, 194, 195, 196, -1, 198, 199, 200, 201, + 202, 203, -1, 205, 206, 207, 208, 209, 210, 211, + 212, 213, 214, -1, 216, -1, 218, 219, 220, 221, + 222, 223, 224, 225, 226, 227, 228, -1, -1, 231, + 232, 233, 234, -1, 236, 237, 238, 239, 240, 241, + 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, + 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, + 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, + 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, + 282, 283, -1, 285, 286, -1, -1, 289, 290, 291, + -1, -1, 294, 295, 296, 297, 298, 299, 300, 301, + 302, 303, 304, 305, 306, 307, 308, 309, -1, 311, + 312, 313, 314, 315, 316, 317, 318, 319, -1, 321, + 322, 323, 324, 325, 326, -1, 328, 329, 330, 331, + 332, 333, 334, 335, -1, 337, 338, 339, 340, 341, + 342, 343, 344, 345, 346, 347, 348, 349, -1, 351, + 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, + 362, 363, 364, 365, 366, 367, 368, -1, 370, 371, + 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, + 382, 383, 384, 385, -1, 387, 388, 389, 390, 391, + 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, + 402, -1, 404, 405, -1, 407, 408, 409, 410, 411, + 412, 413, -1, 415, 416, -1, -1, 419, 420, 421, + 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, + 432, -1, -1, 435, 436, 437, 438, 439, 440, -1, + 442, 443, 444, 445, 446, 447, 448, -1, 450, 451, + 452, 453, 454, 455, 456, -1, 458, 459, -1, -1, + 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, + 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, + 482, 483, -1, -1, -1, -1, -1, -1, 490, 491, + -1, -1, -1, -1, -1, 497, -1, 499, -1, -1, + -1, -1, 504, -1, 506, 507, 3, 4, 5, 6, + 7, 8, 9, 10, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 21, 22, 23, 24, 25, 26, + 27, 28, -1, 30, 31, 32, -1, -1, -1, -1, + 37, -1, -1, 40, 41, -1, 43, 44, 45, 46, + 47, 48, 49, 50, 51, 52, 53, 54, -1, 56, + 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, + 67, 68, -1, 70, 71, 72, 73, 74, -1, 76, + -1, 78, 79, 80, 81, 82, 83, 84, 85, 86, + 87, -1, 89, 90, 91, 92, 93, 94, -1, 96, + 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, + 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, + 117, 118, -1, 120, 121, 122, 123, 124, 125, -1, + 127, 128, 129, 130, 131, -1, -1, 134, 135, 136, + 137, 138, -1, 140, 141, 142, -1, 144, 145, 146, + -1, 148, 149, 150, 151, 152, 153, 154, 155, 156, + 157, 158, 159, 160, -1, 162, 163, 164, 165, -1, + 167, -1, 169, 170, -1, 172, 173, 174, 175, 176, + 177, -1, 179, -1, 181, 182, 183, -1, 185, 186, + 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, + -1, 198, 199, 200, 201, 202, 203, -1, 205, 206, + 207, 208, 209, 210, 211, 212, 213, 214, -1, 216, + -1, 218, 219, 220, 221, 222, 223, 224, 225, 226, + 227, 228, -1, -1, 231, 232, 233, 234, -1, 236, + 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, + 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, + 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, + 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, + 277, 278, 279, 280, 281, 282, 283, -1, 285, 286, + -1, -1, 289, 290, 291, -1, -1, 294, 295, 296, + 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, + 307, 308, 309, -1, 311, 312, 313, 314, 315, 316, + 317, 318, 319, -1, 321, 322, 323, 324, 325, 326, + -1, 328, 329, 330, 331, 332, 333, 334, 335, -1, + 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, + 347, 348, 349, -1, 351, 352, 353, 354, 355, 356, + 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, + 367, 368, -1, 370, 371, 372, 373, 374, 375, 376, + 377, 378, 379, 380, 381, 382, 383, 384, 385, -1, + 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, + 397, 398, 399, 400, 401, 402, -1, 404, 405, -1, + 407, 408, 409, 410, 411, 412, 413, -1, 415, 416, + -1, -1, 419, 420, 421, 422, 423, 424, 425, 426, + 427, 428, 429, 430, 431, 432, -1, -1, 435, 436, + 437, 438, 439, 440, -1, 442, 443, 444, 445, 446, + 447, 448, -1, 450, 451, 452, 453, 454, 455, 456, + -1, -1, 459, -1, -1, 462, 463, 464, 465, 466, + 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, + 477, 478, 479, 480, 481, 482, 483, -1, -1, -1, + -1, -1, -1, 490, 491, -1, -1, -1, -1, -1, + 497, -1, 499, -1, -1, -1, -1, 504, -1, 506, + 507, 3, 4, 5, 6, 7, 8, 9, 10, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 21, + 22, 23, 24, 25, 26, 27, 28, -1, 30, 31, + 32, -1, -1, -1, -1, 37, -1, -1, 40, 41, + -1, 43, 44, 45, 46, 47, 48, 49, 50, 51, + 52, 53, 54, -1, 56, 57, 58, 59, 60, 61, + 62, 63, 64, 65, 66, 67, 68, -1, 70, 71, + 72, 73, 74, -1, 76, -1, 78, 79, 80, 81, + 82, 83, 84, 85, 86, 87, -1, 89, 90, 91, + 92, 93, 94, -1, 96, 97, 98, 99, 100, 101, + 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, + 112, 113, 114, 115, 116, 117, 118, -1, 120, 121, + 122, 123, 124, 125, -1, 127, 128, 129, 130, 131, + -1, -1, 134, 135, 136, 137, 138, -1, 140, 141, + 142, -1, 144, 145, 146, -1, 148, 149, 150, 151, + 152, 153, 154, 155, 156, 157, 158, 159, 160, -1, + 162, 163, 164, 165, -1, 167, -1, 169, 170, -1, + 172, 173, 174, 175, 176, 177, -1, 179, -1, 181, + 182, 183, -1, 185, 186, 187, 188, 189, 190, 191, + 192, 193, 194, 195, 196, -1, 198, 199, 200, 201, + 202, 203, -1, 205, 206, 207, 208, 209, 210, 211, + 212, 213, 214, -1, 216, -1, 218, 219, 220, 221, + 222, 223, 224, 225, 226, 227, 228, -1, -1, 231, + 232, 233, 234, -1, 236, 237, 238, 239, 240, 241, + 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, + 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, + 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, + 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, + 282, 283, -1, 285, 286, -1, -1, 289, 290, 291, + -1, -1, 294, 295, 296, 297, 298, 299, 300, 301, + 302, 303, 304, 305, 306, 307, 308, 309, -1, 311, + 312, 313, 314, 315, 316, 317, 318, 319, -1, 321, + 322, 323, 324, 325, 326, -1, 328, 329, 330, 331, + 332, 333, 334, 335, -1, 337, 338, 339, 340, 341, + 342, 343, 344, 345, 346, 347, 348, 349, -1, 351, + 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, + 362, 363, 364, 365, 366, 367, 368, -1, 370, 371, + 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, + 382, 383, 384, 385, -1, 387, 388, 389, 390, 391, + 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, + 402, -1, 404, 405, -1, 407, 408, 409, 410, 411, + 412, 413, -1, 415, 416, -1, -1, 419, 420, 421, + 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, + 432, -1, -1, 435, 436, 437, 438, 439, 440, -1, + 442, 443, 444, 445, 446, 447, 448, -1, 450, 451, + 452, 453, 454, 455, 456, -1, -1, 459, -1, -1, + 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, + 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, + 482, 483, -1, -1, -1, -1, -1, -1, 490, 491, + -1, -1, -1, -1, -1, 497, -1, 499, -1, -1, + -1, -1, 504, -1, 506, 507, 3, 4, 5, 6, + 7, 8, 9, 10, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 21, 22, 23, 24, 25, 26, + 27, 28, -1, 30, 31, 32, -1, -1, -1, -1, + 37, -1, -1, 40, 41, -1, 43, 44, 45, 46, + 47, 48, 49, 50, 51, 52, 53, 54, -1, 56, + 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, + 67, 68, -1, 70, 71, 72, 73, 74, -1, 76, + -1, 78, 79, 80, 81, 82, 83, 84, 85, 86, + 87, -1, 89, 90, 91, 92, 93, 94, -1, 96, + 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, + 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, + 117, 118, -1, 120, 121, 122, 123, 124, 125, -1, + 127, 128, 129, 130, 131, -1, -1, 134, 135, 136, + 137, 138, -1, 140, 141, 142, -1, 144, 145, 146, + -1, 148, 149, 150, 151, 152, 153, 154, 155, 156, + 157, 158, 159, 160, -1, 162, 163, 164, 165, -1, + 167, -1, 169, 170, -1, 172, 173, 174, 175, 176, + 177, -1, 179, -1, 181, 182, 183, -1, 185, 186, + 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, + -1, 198, 199, 200, 201, 202, 203, -1, 205, 206, + 207, 208, 209, 210, 211, 212, 213, 214, -1, 216, + -1, 218, 219, 220, 221, 222, 223, 224, 225, 226, + 227, 228, -1, -1, 231, 232, 233, 234, -1, 236, + 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, + 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, + 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, + 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, + 277, 278, 279, 280, 281, 282, 283, -1, 285, 286, + -1, -1, 289, 290, 291, -1, -1, 294, 295, 296, + 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, + 307, 308, 309, -1, 311, 312, 313, 314, 315, 316, + 317, 318, 319, -1, 321, 322, 323, 324, 325, 326, + -1, 328, 329, 330, 331, 332, 333, 334, 335, -1, + 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, + 347, 348, 349, -1, 351, 352, 353, 354, 355, 356, + 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, + 367, 368, -1, 370, 371, 372, 373, 374, 375, 376, + 377, 378, 379, 380, 381, 382, 383, 384, 385, -1, + 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, + 397, 398, 399, 400, 401, 402, -1, 404, 405, -1, + 407, 408, 409, 410, 411, 412, 413, -1, 415, 416, + -1, -1, 419, 420, 421, 422, 423, 424, 425, 426, + 427, 428, 429, 430, 431, 432, -1, -1, 435, 436, + 437, 438, 439, 440, -1, 442, 443, 444, 445, 446, + 447, 448, -1, 450, 451, 452, 453, 454, 455, 456, + -1, -1, 459, -1, -1, 462, 463, 464, 465, 466, + 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, + 477, 478, 479, 480, 481, 482, 483, -1, -1, -1, + -1, -1, -1, 490, 491, -1, -1, -1, -1, -1, + 497, -1, 499, -1, -1, -1, -1, 504, -1, 506, + 507, 3, 4, 5, 6, 7, 8, 9, 10, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 21, + 22, 23, 24, 25, 26, 27, 28, -1, 30, 31, + 32, -1, -1, -1, -1, 37, -1, -1, 40, 41, + -1, 43, 44, 45, 46, 47, 48, 49, 50, 51, + 52, 53, 54, -1, 56, 57, 58, 59, 60, 61, + 62, 63, 64, 65, 66, 67, 68, -1, 70, 71, + 72, 73, 74, -1, 76, -1, 78, 79, 80, 81, + 82, 83, 84, 85, 86, 87, -1, 89, 90, 91, + 92, 93, 94, -1, 96, 97, 98, 99, 100, 101, + 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, + 112, 113, 114, 115, 116, 117, 118, -1, 120, 121, + 122, 123, 124, 125, -1, 127, 128, 129, 130, 131, + -1, -1, 134, 135, 136, 137, 138, -1, 140, 141, + 142, -1, 144, 145, 146, -1, 148, 149, 150, 151, + 152, 153, 154, 155, 156, 157, 158, 159, 160, -1, + 162, 163, 164, 165, -1, 167, -1, 169, 170, -1, + 172, 173, 174, 175, 176, 177, -1, 179, -1, 181, + 182, 183, -1, 185, 186, 187, 188, 189, 190, 191, + 192, 193, 194, 195, 196, -1, 198, 199, 200, 201, + 202, 203, -1, 205, 206, 207, 208, 209, 210, 211, + 212, 213, 214, -1, 216, -1, 218, 219, 220, 221, + 222, 223, 224, 225, 226, 227, 228, -1, -1, 231, + 232, 233, 234, -1, 236, 237, 238, 239, 240, 241, + 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, + 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, + 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, + 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, + 282, 283, -1, 285, 286, -1, -1, 289, 290, 291, + -1, -1, 294, 295, 296, 297, 298, 299, 300, 301, + 302, 303, 304, 305, 306, 307, 308, 309, -1, 311, + 312, 313, 314, 315, 316, 317, 318, 319, -1, 321, + 322, 323, 324, 325, 326, -1, 328, 329, 330, 331, + 332, 333, 334, 335, -1, 337, 338, 339, 340, 341, + 342, 343, 344, 345, 346, 347, 348, 349, -1, 351, + 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, + 362, 363, 364, 365, 366, 367, 368, -1, 370, 371, + 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, + 382, 383, 384, 385, -1, 387, 388, 389, 390, 391, + 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, + 402, -1, 404, 405, -1, 407, 408, 409, 410, 411, + 412, 413, -1, 415, 416, -1, -1, 419, 420, 421, + 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, + 432, -1, -1, 435, 436, 437, 438, 439, 440, -1, + 442, 443, 444, 445, 446, 447, 448, -1, 450, 451, + 452, 453, 454, 455, 456, -1, -1, 459, -1, -1, + 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, + 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, + 482, 483, -1, -1, -1, -1, -1, -1, 490, 491, + -1, -1, -1, -1, -1, 497, -1, 499, -1, -1, + -1, -1, 504, -1, 506, 507, 3, 4, 5, 6, + 7, 8, 9, 10, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 21, 22, 23, 24, 25, 26, + 27, 28, -1, 30, 31, 32, -1, -1, -1, -1, + 37, -1, -1, 40, 41, -1, 43, 44, 45, 46, + 47, 48, 49, 50, 51, 52, 53, 54, -1, 56, + 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, + 67, 68, -1, 70, 71, 72, 73, 74, -1, 76, + -1, 78, 79, 80, 81, 82, 83, 84, 85, 86, + 87, -1, 89, 90, 91, 92, 93, 94, -1, 96, + 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, + 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, + 117, 118, -1, 120, 121, 122, 123, 124, 125, -1, + 127, 128, 129, 130, 131, -1, -1, 134, 135, 136, + 137, 138, -1, 140, 141, 142, -1, 144, 145, 146, + -1, 148, 149, 150, 151, 152, 153, 154, 155, 156, + 157, 158, 159, 160, -1, 162, 163, 164, 165, -1, + 167, -1, 169, 170, -1, 172, 173, 174, 175, 176, + 177, -1, 179, -1, 181, 182, 183, -1, 185, 186, + 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, + -1, 198, 199, 200, 201, 202, 203, -1, 205, 206, + 207, 208, 209, 210, 211, 212, 213, 214, -1, 216, + -1, 218, 219, 220, 221, 222, 223, 224, 225, 226, + 227, 228, -1, -1, 231, 232, 233, 234, -1, 236, + 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, + 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, + 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, + 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, + 277, 278, 279, 280, 281, 282, 283, -1, 285, 286, + -1, -1, 289, 290, 291, -1, -1, 294, 295, 296, + 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, + 307, 308, 309, -1, 311, 312, 313, 314, 315, 316, + 317, 318, 319, -1, 321, 322, 323, 324, 325, 326, + -1, 328, 329, 330, 331, 332, 333, 334, 335, -1, + 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, + 347, 348, 349, -1, 351, 352, 353, 354, 355, 356, + 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, + 367, 368, -1, 370, 371, 372, 373, 374, 375, 376, + 377, 378, 379, 380, 381, 382, 383, 384, 385, -1, + 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, + 397, 398, 399, 400, 401, 402, -1, 404, 405, -1, + 407, 408, 409, 410, 411, 412, 413, -1, 415, 416, + -1, -1, 419, 420, 421, 422, 423, 424, 425, 426, + 427, 428, 429, 430, 431, 432, -1, -1, 435, 436, + 437, 438, 439, 440, -1, 442, 443, 444, 445, 446, + 447, 448, -1, 450, 451, 452, 453, 454, 455, 456, + -1, -1, 459, -1, -1, 462, 463, 464, 465, 466, + 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, + 477, 478, 479, 480, 481, 482, 483, -1, -1, -1, + -1, -1, -1, 490, 491, -1, -1, -1, -1, -1, + 497, -1, 499, -1, -1, -1, -1, 504, -1, 506, + 507, 3, 4, 5, 6, 7, 8, 9, 10, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 21, + 22, 23, 24, 25, 26, 27, 28, -1, 30, 31, + 32, -1, -1, -1, -1, 37, -1, -1, 40, 41, + -1, 43, 44, 45, 46, 47, 48, 49, 50, 51, + 52, 53, 54, -1, 56, 57, 58, 59, 60, 61, + 62, 63, 64, 65, 66, 67, 68, -1, 70, 71, + 72, 73, 74, -1, 76, -1, 78, 79, 80, 81, + 82, 83, 84, 85, 86, 87, -1, 89, 90, 91, + 92, 93, 94, -1, 96, 97, 98, 99, 100, 101, + 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, + 112, 113, 114, 115, 116, 117, 118, -1, 120, 121, + 122, 123, 124, 125, -1, 127, 128, 129, 130, 131, + -1, -1, 134, 135, 136, 137, 138, -1, 140, 141, + 142, -1, 144, 145, 146, -1, 148, 149, 150, 151, + 152, 153, 154, 155, 156, 157, 158, 159, 160, -1, + 162, 163, 164, 165, -1, 167, -1, 169, 170, -1, + 172, 173, 174, 175, 176, 177, -1, 179, -1, 181, + 182, 183, -1, 185, 186, 187, 188, 189, 190, 191, + 192, 193, 194, 195, 196, -1, 198, 199, 200, 201, + 202, 203, -1, 205, 206, 207, 208, 209, 210, 211, + 212, 213, 214, -1, 216, -1, 218, 219, 220, 221, + 222, 223, 224, 225, 226, 227, 228, -1, -1, 231, + 232, 233, 234, -1, 236, 237, 238, 239, 240, 241, + 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, + 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, + 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, + 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, + 282, 283, -1, 285, 286, -1, -1, 289, 290, 291, + -1, -1, 294, 295, 296, 297, 298, 299, 300, 301, + 302, 303, 304, 305, 306, 307, 308, 309, -1, 311, + 312, 313, 314, 315, 316, 317, 318, 319, -1, 321, + 322, 323, 324, 325, 326, -1, 328, 329, 330, 331, + 332, 333, 334, 335, -1, 337, 338, 339, 340, 341, + 342, 343, 344, 345, 346, 347, 348, 349, -1, 351, + 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, + 362, 363, 364, 365, 366, 367, 368, -1, 370, 371, + 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, + 382, 383, 384, 385, -1, 387, 388, 389, 390, 391, + 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, + 402, -1, 404, 405, -1, 407, 408, 409, 410, 411, + 412, 413, -1, 415, 416, -1, -1, 419, 420, 421, + 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, + 432, -1, -1, 435, 436, 437, 438, 439, 440, -1, + 442, 443, 444, 445, 446, 447, 448, -1, 450, 451, + 452, 453, 454, 455, 456, -1, -1, 459, -1, -1, + 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, + 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, + 482, 483, -1, -1, -1, -1, -1, -1, 490, 491, + -1, -1, -1, -1, -1, 497, -1, 499, -1, -1, + -1, -1, 504, -1, 506, 507, 3, 4, 5, 6, + 7, 8, 9, 10, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 21, 22, 23, 24, 25, 26, + 27, 28, -1, 30, 31, 32, -1, -1, -1, -1, + 37, -1, -1, 40, 41, -1, 43, 44, 45, 46, + 47, 48, 49, 50, 51, 52, 53, 54, -1, 56, + 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, + 67, 68, -1, 70, 71, 72, 73, 74, -1, 76, + -1, 78, 79, 80, 81, 82, 83, 84, 85, 86, + 87, -1, 89, 90, 91, 92, 93, 94, -1, 96, + 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, + 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, + 117, 118, -1, 120, 121, 122, 123, 124, 125, -1, + 127, 128, 129, 130, 131, -1, -1, 134, 135, 136, + 137, 138, -1, 140, 141, 142, -1, 144, 145, 146, + -1, 148, 149, 150, 151, 152, 153, 154, 155, 156, + 157, 158, 159, 160, -1, 162, 163, 164, 165, -1, + 167, -1, 169, 170, -1, 172, 173, 174, 175, 176, + 177, -1, 179, -1, 181, 182, 183, -1, 185, 186, + 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, + -1, 198, 199, 200, 201, 202, 203, -1, 205, 206, + 207, 208, 209, 210, 211, 212, 213, 214, -1, 216, + -1, 218, 219, 220, 221, 222, 223, 224, 225, 226, + 227, 228, -1, -1, 231, 232, 233, 234, -1, 236, + 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, + 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, + 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, + 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, + 277, 278, 279, 280, 281, 282, 283, -1, 285, 286, + -1, -1, 289, 290, 291, -1, -1, 294, 295, 296, + 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, + 307, 308, 309, -1, 311, 312, 313, 314, 315, 316, + 317, 318, 319, -1, 321, 322, 323, 324, 325, 326, + -1, 328, 329, 330, 331, 332, 333, 334, 335, -1, + 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, + 347, 348, 349, -1, 351, 352, 353, 354, 355, 356, + 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, + 367, 368, -1, 370, 371, 372, 373, 374, 375, 376, + 377, 378, 379, 380, 381, 382, 383, 384, 385, -1, + 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, + 397, 398, 399, 400, 401, 402, -1, 404, 405, -1, + 407, 408, 409, 410, 411, 412, 413, -1, 415, 416, + -1, -1, 419, 420, 421, 422, 423, 424, 425, 426, + 427, 428, 429, 430, 431, 432, -1, -1, 435, 436, + 437, 438, 439, 440, -1, 442, 443, 444, 445, 446, + 447, 448, -1, 450, 451, 452, 453, 454, 455, 456, + -1, -1, 459, -1, -1, 462, 463, 464, 465, 466, + 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, + 477, 478, 479, 480, 481, 482, 483, -1, -1, -1, + -1, -1, -1, 490, 491, -1, -1, -1, -1, -1, + 497, -1, 499, -1, -1, -1, -1, 504, -1, 506, + 507, 3, 4, 5, 6, 7, 8, 9, 10, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 21, + 22, 23, 24, 25, 26, 27, 28, -1, 30, 31, + 32, -1, -1, -1, -1, 37, -1, -1, 40, 41, + -1, 43, 44, 45, 46, 47, 48, 49, 50, 51, + 52, 53, 54, -1, 56, 57, 58, 59, 60, 61, + 62, 63, 64, 65, 66, 67, 68, -1, 70, 71, + 72, 73, 74, -1, 76, -1, 78, 79, 80, 81, + 82, 83, 84, 85, 86, 87, -1, 89, 90, 91, + 92, 93, 94, -1, 96, 97, 98, 99, 100, 101, + 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, + 112, 113, 114, 115, 116, 117, 118, -1, 120, 121, + 122, 123, 124, 125, -1, 127, 128, 129, 130, 131, + -1, -1, 134, 135, 136, 137, 138, -1, 140, 141, + 142, -1, 144, 145, 146, -1, 148, 149, 150, 151, + 152, 153, 154, 155, 156, 157, 158, 159, 160, -1, + 162, 163, 164, 165, -1, 167, -1, 169, 170, -1, + 172, 173, 174, 175, 176, 177, -1, 179, -1, 181, + 182, 183, -1, 185, 186, 187, 188, 189, 190, 191, + 192, 193, 194, 195, 196, -1, 198, 199, 200, 201, + 202, 203, -1, 205, 206, 207, 208, 209, 210, 211, + 212, 213, 214, -1, 216, -1, 218, 219, 220, 221, + 222, 223, 224, 225, 226, 227, 228, -1, -1, 231, + 232, 233, 234, -1, 236, 237, 238, 239, 240, 241, + 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, + 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, + 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, + 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, + 282, 283, -1, 285, 286, -1, -1, 289, 290, 291, + -1, -1, 294, 295, 296, 297, 298, 299, 300, 301, + 302, 303, 304, 305, 306, 307, 308, 309, -1, 311, + 312, 313, 314, 315, 316, 317, 318, 319, -1, 321, + 322, 323, 324, 325, 326, -1, 328, 329, 330, 331, + 332, 333, 334, 335, -1, 337, 338, 339, 340, 341, + 342, 343, 344, 345, 346, 347, 348, 349, -1, 351, + 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, + 362, 363, 364, 365, 366, 367, 368, -1, 370, 371, + 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, + 382, 383, 384, 385, -1, 387, 388, 389, 390, 391, + 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, + 402, -1, 404, 405, -1, 407, 408, 409, 410, 411, + 412, 413, -1, 415, 416, -1, -1, 419, 420, 421, + 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, + 432, -1, -1, 435, 436, 437, 438, 439, 440, -1, + 442, 443, 444, 445, 446, 447, 448, -1, 450, 451, + 452, 453, 454, 455, 456, -1, -1, 459, -1, -1, + 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, + 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, + 482, 483, -1, -1, -1, -1, -1, -1, 490, 491, + -1, -1, -1, -1, -1, 497, -1, 499, -1, -1, + -1, -1, 504, -1, 506, 507, 3, 4, 5, 6, + 7, 8, 9, 10, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 21, 22, 23, 24, 25, 26, + 27, 28, -1, 30, 31, 32, -1, -1, -1, -1, + 37, -1, -1, 40, 41, -1, 43, 44, 45, 46, + 47, 48, 49, 50, 51, 52, 53, 54, -1, 56, + 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, + 67, 68, -1, 70, 71, 72, 73, 74, -1, 76, + -1, 78, 79, 80, 81, 82, 83, 84, 85, 86, + 87, -1, 89, 90, 91, 92, 93, 94, -1, 96, + 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, + 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, + 117, 118, -1, 120, 121, 122, 123, 124, 125, -1, + 127, 128, 129, 130, 131, -1, -1, 134, 135, 136, + 137, 138, -1, 140, 141, 142, -1, 144, 145, 146, + -1, 148, 149, 150, 151, 152, 153, 154, 155, 156, + 157, 158, 159, 160, -1, 162, 163, 164, 165, -1, + 167, -1, 169, 170, -1, 172, 173, 174, 175, 176, + 177, -1, 179, -1, 181, 182, 183, -1, 185, 186, + 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, + -1, 198, 199, 200, 201, 202, 203, -1, 205, 206, + 207, 208, 209, 210, 211, 212, 213, 214, -1, 216, + -1, 218, -1, -1, 221, 222, 223, 224, 225, 226, + 227, 228, -1, -1, 231, 232, 233, 234, -1, 236, + 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, + 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, + 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, + 267, 268, 269, 270, 271, -1, 273, 274, -1, 276, + 277, 278, 279, 280, 281, 282, 283, -1, 285, 286, + -1, -1, 289, 290, 291, -1, -1, 294, 295, 296, + 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, + 307, 308, 309, -1, 311, 312, 313, 314, 315, 316, + 317, 318, 319, -1, 321, 322, 323, 324, 325, 326, + -1, 328, 329, 330, 331, 332, 333, 334, 335, -1, + 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, + 347, 348, 349, -1, 351, 352, 353, 354, 355, 356, + 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, + 367, 368, -1, 370, 371, 372, 373, 374, 375, 376, + 377, 378, 379, 380, 381, 382, 383, 384, 385, -1, + 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, + 397, 398, 399, 400, 401, 402, -1, 404, 405, -1, + 407, 408, 409, 410, 411, 412, 413, -1, 415, 416, + -1, -1, 419, 420, 421, 422, 423, 424, 425, 426, + 427, 428, 429, 430, 431, 432, -1, -1, 435, 436, + 437, 438, 439, 440, -1, 442, 443, 444, 445, 446, + 447, 448, -1, 450, 451, 452, 453, 454, 455, 456, + -1, -1, 459, -1, -1, 462, 463, 464, 465, 466, + 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, + 477, 478, 479, 480, 481, 482, 483, -1, -1, -1, + -1, -1, -1, 490, 491, -1, -1, -1, -1, -1, + 497, -1, 499, -1, -1, -1, -1, 504, -1, 506, + 507, 3, 4, 5, 6, 7, 8, 9, 10, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 21, + 22, 23, 24, 25, 26, 27, 28, -1, 30, 31, + 32, -1, -1, -1, -1, -1, -1, -1, 40, 41, + -1, 43, 44, 45, 46, 47, 48, 49, 50, 51, + 52, 53, 54, -1, 56, 57, 58, 59, 60, 61, + 62, 63, 64, 65, 66, 67, 68, -1, 70, 71, + 72, 73, 74, -1, 76, -1, 78, 79, 80, 81, + 82, 83, 84, 85, 86, 87, -1, 89, 90, 91, + 92, 93, 94, -1, 96, 97, 98, 99, 100, 101, + 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, + 112, 113, 114, 115, 116, -1, 118, -1, 120, 121, + 122, 123, 124, 125, -1, 127, 128, 129, 130, 131, + -1, -1, 134, 135, 136, 137, 138, -1, 140, 141, + 142, -1, 144, 145, 146, -1, 148, 149, 150, 151, + 152, 153, 154, 155, 156, 157, 158, 159, 160, -1, + 162, 163, 164, 165, -1, 167, -1, 169, 170, -1, + 172, 173, 174, 175, 176, 177, -1, 179, -1, 181, + 182, 183, -1, 185, 186, 187, 188, 189, 190, 191, + 192, 193, 194, 195, 196, -1, 198, 199, 200, 201, + 202, 203, -1, 205, 206, 207, 208, 209, 210, 211, + 212, 213, 214, -1, 216, -1, 218, 219, 220, 221, + 222, 223, 224, 225, 226, 227, 228, -1, -1, 231, + 232, 233, 234, -1, 236, 237, 238, 239, 240, 241, + 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, + 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, + 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, + -1, 273, 274, 275, 276, 277, 278, 279, 280, 281, + 282, 283, -1, 285, 286, -1, -1, 289, 290, 291, + -1, -1, 294, 295, 296, 297, 298, 299, 300, 301, + 302, 303, 304, 305, 306, 307, 308, 309, -1, 311, + 312, 313, 314, 315, 316, 317, 318, 319, -1, 321, + 322, 323, 324, 325, 326, -1, 328, 329, 330, 331, + 332, 333, 334, 335, -1, 337, 338, 339, 340, 341, + 342, 343, 344, 345, 346, 347, 348, 349, -1, 351, + 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, + 362, 363, 364, 365, 366, 367, 368, -1, 370, 371, + 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, + 382, 383, 384, 385, -1, 387, 388, 389, 390, 391, + 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, + 402, -1, 404, 405, -1, 407, 408, 409, 410, 411, + 412, 413, -1, 415, 416, -1, -1, 419, 420, 421, + 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, + 432, -1, -1, 435, 436, 437, 438, 439, 440, -1, + 442, 443, 444, 445, 446, 447, 448, -1, 450, 451, + 452, 453, 454, 455, 456, -1, -1, 459, -1, -1, + 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, + 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, + 482, -1, -1, -1, -1, -1, -1, -1, 490, 491, + -1, -1, 3, 4, 5, 6, 7, 499, 9, 10, + -1, -1, -1, -1, 506, 507, -1, -1, -1, -1, + 21, 22, 23, 24, 25, 26, 27, 28, -1, 30, + 31, 32, -1, -1, -1, -1, -1, -1, -1, 40, + 41, -1, 43, 44, 45, 46, 47, 48, 49, 50, + 51, 52, 53, 54, -1, 56, 57, 58, 59, 60, + 61, 62, 63, 64, 65, 66, 67, 68, -1, 70, + 71, 72, 73, 74, -1, 76, -1, 78, 79, 80, + 81, 82, 83, 84, 85, 86, 87, -1, 89, 90, + 91, 92, 93, 94, -1, 96, 97, 98, 99, 100, + 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, + 111, 112, 113, 114, 115, 116, -1, 118, -1, 120, + 121, 122, 123, 124, 125, -1, 127, 128, 129, 130, + 131, -1, -1, 134, 135, 136, 137, 138, -1, 140, + 141, 142, -1, 144, 145, 146, -1, 148, 149, 150, + 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, + -1, 162, 163, 164, 165, -1, 167, -1, 169, 170, + -1, 172, 173, 174, 175, 176, 177, -1, 179, -1, + 181, 182, 183, -1, 185, 186, 187, 188, 189, 190, + 191, 192, 193, 194, 195, 196, -1, 198, 199, 200, + 201, 202, 203, -1, 205, 206, 207, 208, 209, 210, + 211, 212, 213, 214, -1, 216, -1, 218, 219, 220, + 221, 222, 223, 224, 225, 226, 227, 228, -1, -1, + 231, 232, 233, 234, -1, 236, 237, 238, 239, 240, + 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, + 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, + 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, + 271, -1, 273, 274, 275, 276, 277, 278, 279, 280, + 281, 282, 283, -1, 285, 286, -1, -1, 289, 290, + 291, -1, -1, 294, 295, 296, 297, 298, 299, 300, + 301, 302, 303, 304, 305, 306, 307, 308, 309, -1, + 311, 312, 313, 314, 315, 316, 317, 318, 319, -1, + 321, 322, 323, 324, 325, 326, -1, 328, 329, 330, + 331, 332, 333, 334, 335, -1, 337, 338, 339, 340, + 341, 342, 343, 344, 345, 346, 347, 348, 349, -1, + 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, + 361, 362, 363, 364, 365, 366, 367, 368, -1, 370, + 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, + 381, 382, 383, 384, 385, -1, 387, 388, 389, 390, + 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, + 401, 402, -1, 404, 405, -1, 407, 408, 409, 410, + 411, 412, 413, -1, 415, 416, -1, -1, 419, 420, + 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, + 431, 432, -1, -1, 435, 436, 437, 438, 439, 440, + -1, 442, 443, 444, 445, 446, 447, 448, -1, 450, + 451, 452, 453, 454, 455, 456, -1, -1, 459, -1, + -1, 462, 463, 464, 465, 466, 467, 468, 469, 470, + 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, + 481, 482, -1, -1, -1, -1, -1, -1, -1, 490, + 491, -1, -1, -1, -1, -1, -1, -1, 499, -1, + -1, -1, -1, -1, -1, 506, 507, 3, 4, 5, + 6, 7, 8, 9, 10, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 21, 22, 23, 24, 25, 26, 27, 28, -1, 30, 31, 32, -1, -1, -1, -1, -1, -1, -1, 40, 41, -1, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, -1, - 56, 57, 58, 59, 60, 61, -1, -1, 64, 65, + 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, -1, 70, 71, 72, 73, 74, -1, 76, -1, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, -1, 89, 90, 91, 92, 93, 94, -1, - 96, 97, 98, 99, 100, 101, 102, 103, -1, -1, + 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, - 116, 117, 118, -1, 120, 121, 122, 123, 124, 125, + 116, -1, 118, -1, 120, 121, 122, 123, 124, 125, -1, 127, 128, 129, 130, 131, -1, -1, 134, 135, 136, 137, 138, -1, 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, 150, 151, 152, 153, 154, 155, @@ -11322,14 +10492,14 @@ static const yytype_int16 yycheck[] = 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, -1, 198, 199, 200, 201, 202, 203, -1, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, -1, - 216, -1, 218, 219, 220, 221, 222, 223, 224, 225, + 216, -1, 218, -1, 220, 221, 222, 223, 224, 225, 226, 227, 228, -1, -1, 231, 232, 233, 234, -1, - 236, 237, 238, -1, -1, 241, 242, 243, 244, 245, + 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, -1, 273, 274, 275, - 276, -1, 278, 279, 280, 281, 282, 283, -1, 285, - 286, 287, -1, 289, 290, 291, -1, -1, 294, 295, + 276, 277, 278, 279, 280, 281, 282, 283, -1, 285, + 286, -1, -1, 289, 290, 291, -1, -1, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, -1, 311, 312, 313, 314, 315, 316, 317, 318, 319, -1, 321, 322, 323, 324, 325, @@ -11348,84 +10518,182 @@ static const yytype_int16 yycheck[] = 446, 447, 448, -1, 450, 451, 452, 453, 454, 455, 456, -1, -1, 459, -1, -1, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, - 476, 477, 478, 479, 480, 481, 482, 3, 4, 5, - -1, -1, -1, 9, 490, 491, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 21, 22, 23, 24, 25, - 26, 27, 28, -1, 30, 31, 32, -1, -1, -1, - -1, -1, -1, -1, 40, 41, -1, 43, 44, 45, - 46, 47, 48, 49, 50, 51, 52, 53, 54, -1, + 476, 477, 478, 479, 480, 481, 482, -1, -1, -1, + -1, -1, -1, -1, 490, 491, -1, -1, -1, -1, + -1, -1, -1, 499, -1, -1, -1, -1, -1, -1, + 506, 507, 3, 4, 5, 6, 7, 8, 9, 10, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 21, 22, 23, 24, 25, 26, 27, 28, -1, 30, + 31, 32, -1, -1, -1, -1, 37, -1, -1, 40, + 41, -1, 43, 44, 45, 46, 47, 48, 49, -1, + 51, 52, 53, 54, -1, 56, 57, 58, 59, 60, + 61, 62, 63, 64, 65, 66, 67, 68, -1, 70, + 71, 72, 73, 74, -1, 76, -1, 78, 79, 80, + 81, 82, 83, 84, 85, 86, 87, -1, 89, 90, + 91, 92, 93, 94, -1, 96, 97, 98, 99, 100, + 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, + 111, 112, 113, 114, 115, 116, 117, 118, -1, 120, + 121, 122, 123, 124, 125, -1, 127, 128, 129, 130, + 131, -1, -1, 134, 135, 136, 137, 138, -1, 140, + 141, 142, -1, 144, -1, 146, -1, 148, 149, 150, + 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, + -1, 162, 163, 164, 165, -1, 167, -1, 169, 170, + -1, 172, 173, 174, 175, -1, 177, -1, 179, -1, + 181, 182, 183, -1, 185, 186, 187, 188, 189, 190, + 191, -1, 193, 194, 195, 196, -1, 198, 199, 200, + 201, 202, 203, -1, 205, 206, 207, 208, 209, 210, + 211, 212, 213, 214, -1, 216, -1, 218, -1, -1, + 221, 222, 223, 224, 225, 226, 227, 228, -1, -1, + 231, 232, 233, -1, -1, 236, 237, 238, 239, 240, + 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, + 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, + 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, + 271, -1, 273, 274, -1, 276, 277, 278, 279, 280, + 281, 282, 283, -1, 285, 286, -1, -1, 289, 290, + 291, -1, -1, 294, 295, 296, 297, 298, 299, 300, + 301, 302, 303, 304, 305, 306, 307, 308, 309, -1, + 311, 312, 313, 314, 315, 316, 317, 318, 319, -1, + 321, 322, 323, 324, 325, 326, -1, 328, 329, 330, + 331, 332, 333, 334, 335, -1, 337, 338, 339, 340, + 341, 342, 343, 344, 345, 346, 347, 348, 349, -1, + 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, + 361, 362, 363, 364, 365, 366, 367, 368, -1, 370, + 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, + -1, 382, 383, 384, 385, -1, 387, 388, 389, 390, + 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, + 401, 402, -1, 404, 405, -1, 407, 408, 409, 410, + 411, 412, 413, -1, 415, 416, -1, -1, 419, 420, + 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, + 431, 432, -1, -1, 435, 436, 437, 438, 439, 440, + -1, 442, 443, 444, 445, 446, 447, 448, -1, 450, + 451, 452, 453, 454, 455, 456, -1, -1, 459, -1, + -1, 462, 463, 464, 465, 466, 467, 468, 469, 470, + 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, + 481, 482, -1, -1, -1, -1, -1, -1, -1, 490, + 491, 3, -1, -1, -1, -1, 497, -1, 499, -1, + -1, -1, -1, 504, -1, 506, 507, -1, -1, 21, + 22, 23, 24, 25, 26, 27, 28, -1, 30, 31, + 32, -1, -1, -1, -1, -1, -1, -1, 40, 41, + -1, 43, 44, 45, 46, 47, 48, 49, -1, 51, + 52, 53, 54, -1, 56, 57, 58, 59, 60, 61, + -1, -1, 64, 65, 66, 67, 68, -1, 70, 71, + 72, 73, -1, -1, 76, -1, 78, 79, 80, 81, + 82, 83, 84, 85, 86, 87, -1, 89, 90, 91, + 92, 93, 94, -1, 96, 97, 98, 99, 100, 101, + 102, 103, -1, -1, 106, 107, 108, 109, 110, 111, + 112, 113, 114, 115, 116, -1, 118, -1, 120, 121, + 122, 123, 124, 125, -1, 127, 128, 129, 130, 131, + -1, -1, 134, 135, 136, 137, 138, -1, 140, 141, + 142, -1, 144, 145, 146, -1, 148, 149, 150, 151, + -1, 153, 154, 155, 156, 157, -1, -1, 160, -1, + 162, 163, 164, 165, -1, 167, -1, 169, 170, -1, + 172, 173, 174, -1, 176, 177, -1, 179, -1, -1, + -1, 183, -1, 185, 186, 187, 188, 189, 190, 191, + 192, 193, 194, 195, 196, -1, 198, 199, 200, 201, + 202, 203, -1, 205, 206, -1, 208, 209, 210, 211, + 212, 213, 214, -1, 216, -1, 218, 219, 220, 221, + 222, 223, 224, 225, 226, 227, 228, -1, -1, 231, + 232, 233, 234, -1, 236, 237, 238, -1, -1, 241, + 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, + 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, + 262, 263, 264, 265, 266, 267, 268, 269, 270, -1, + -1, 273, 274, 275, 276, -1, -1, 279, 280, 281, + 282, 283, -1, 285, 286, -1, -1, 289, 290, 291, + -1, -1, 294, -1, 296, 297, 298, -1, 300, 301, + 302, 303, 304, 305, 306, 307, 308, 309, -1, 311, + 312, -1, 314, 315, -1, 317, 318, 319, -1, 321, + 322, 323, 324, 325, 326, -1, 328, 329, 330, 331, + 332, 333, 334, 335, -1, 337, 338, 339, 340, 341, + 342, 343, 344, 345, 346, 347, 348, 349, -1, 351, + 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, + 362, 363, 364, 365, 366, 367, 368, -1, 370, 371, + 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, + 382, 383, 384, 385, -1, 387, 388, 389, 390, 391, + 392, 393, 394, 395, 396, 397, 398, 399, 400, -1, + 402, -1, 404, 405, -1, 407, 408, 409, 410, 411, + 412, 413, -1, 415, 416, -1, -1, 419, 420, -1, + 422, -1, -1, 425, 426, 427, 428, 429, 430, 431, + 432, -1, -1, 435, 436, 437, 438, 439, 440, -1, + 442, 443, 444, 445, 446, -1, 448, -1, 450, 451, + 452, 453, 454, 455, 456, -1, -1, 459, -1, -1, + 462, 463, 464, 465, 466, 467, -1, 3, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 479, 480, 481, + 482, -1, -1, -1, -1, 21, 22, 23, 24, 25, + 26, 27, 28, -1, 30, 31, 32, -1, 500, -1, + -1, 503, 38, -1, 40, 41, -1, 43, 44, 45, + -1, 47, 48, 49, 50, 51, -1, 53, 54, -1, 56, 57, 58, 59, 60, 61, -1, -1, 64, 65, 66, 67, 68, -1, 70, 71, 72, 73, 74, -1, - 76, -1, 78, 79, 80, 81, 82, 83, 84, 85, + -1, -1, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, -1, 89, 90, 91, 92, 93, 94, -1, - 96, 97, 98, 99, 100, 101, 102, 103, -1, -1, - 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, - 116, 117, 118, -1, 120, 121, 122, 123, 124, 125, + 96, 97, 98, 99, -1, -1, -1, -1, -1, -1, + -1, 107, 108, 109, 110, 111, 112, 113, 114, 115, + 116, -1, 118, -1, 120, 121, 122, 123, 124, 125, -1, 127, 128, 129, 130, 131, -1, -1, 134, 135, 136, 137, 138, -1, 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, 150, 151, 152, 153, 154, 155, - 156, 157, 158, 159, 160, -1, 162, 163, 164, 165, - -1, 167, -1, 169, 170, -1, 172, 173, 174, 175, - 176, 177, -1, 179, -1, 181, 182, 183, -1, 185, - 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, + 156, 157, 158, -1, 160, -1, 162, 163, 164, 165, + -1, 167, -1, 169, -1, -1, 172, 173, 174, 175, + -1, 177, -1, 179, -1, 181, 182, 183, -1, 185, + 186, 187, 188, 189, 190, 191, -1, 193, 194, 195, 196, -1, 198, 199, 200, 201, 202, 203, -1, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, -1, - 216, -1, 218, 219, 220, 221, 222, 223, 224, 225, - 226, 227, 228, -1, -1, 231, 232, 233, 234, -1, + 216, -1, 218, -1, -1, 221, 222, 223, 224, 225, + 226, 227, 228, -1, -1, 231, 232, 233, -1, -1, 236, 237, 238, -1, -1, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, - 266, 267, 268, 269, 270, 271, -1, 273, 274, 275, + 266, 267, 268, 269, 270, 271, -1, 273, 274, -1, 276, -1, 278, 279, 280, 281, 282, 283, -1, 285, - 286, 287, -1, 289, 290, 291, -1, -1, 294, 295, - 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, + 286, -1, -1, 289, 290, 291, -1, -1, 294, 295, + -1, 297, -1, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, -1, 311, 312, 313, 314, 315, 316, 317, 318, 319, -1, 321, 322, 323, 324, 325, 326, -1, 328, 329, 330, 331, 332, 333, 334, 335, -1, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, -1, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, - 366, 367, 368, -1, 370, 371, 372, 373, 374, 375, - 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, + 366, 367, 368, -1, 370, 371, 372, 373, 374, -1, + 376, 377, 378, 379, 380, -1, 382, 383, 384, 385, -1, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, -1, 404, 405, -1, 407, 408, 409, 410, 411, 412, 413, -1, 415, - 416, -1, -1, 419, 420, 421, 422, 423, 424, 425, + 416, -1, -1, 419, 420, 421, 422, 423, -1, 425, 426, 427, 428, 429, 430, 431, 432, -1, -1, 435, - 436, 437, 438, 439, 440, -1, 442, 443, 444, 445, - 446, 447, 448, -1, 450, 451, 452, 453, 454, 455, + 436, 437, 438, 439, -1, -1, 442, 443, 444, 445, + 446, 447, 448, -1, 450, -1, 452, 453, 454, 455, 456, -1, -1, 459, -1, -1, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, - 476, 477, 478, 479, 480, 481, 482, 3, 4, 5, - -1, -1, -1, 9, 490, 491, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 21, 22, 23, 24, 25, + 476, 477, 478, 479, 480, 481, 482, 3, -1, 5, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 500, 21, 22, 23, 24, 25, 26, 27, 28, -1, 30, 31, 32, -1, -1, -1, -1, -1, -1, -1, 40, 41, -1, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, -1, - 56, 57, 58, 59, 60, 61, -1, -1, 64, 65, + 56, 57, 58, 59, 60, 61, -1, 63, 64, 65, 66, 67, 68, -1, 70, 71, 72, 73, 74, -1, 76, -1, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, -1, 89, 90, 91, 92, 93, 94, -1, - 96, 97, 98, 99, 100, 101, 102, 103, -1, -1, + 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, -1, 118, -1, 120, 121, 122, 123, 124, 125, -1, 127, 128, 129, 130, 131, -1, -1, 134, 135, 136, 137, 138, -1, 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, 150, 151, 152, 153, 154, 155, - 156, 157, 158, 159, 160, -1, 162, 163, 164, 165, + 156, 157, 158, -1, 160, -1, 162, 163, 164, 165, -1, 167, -1, 169, 170, -1, 172, 173, 174, 175, 176, 177, -1, 179, -1, 181, 182, 183, -1, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, -1, 198, 199, 200, 201, 202, 203, -1, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, -1, 216, -1, 218, 219, 220, 221, 222, 223, 224, 225, - 226, 227, 228, -1, -1, 231, 232, 233, 234, -1, - 236, 237, 238, -1, -1, 241, 242, 243, 244, 245, + 226, 227, 228, 229, -1, 231, 232, 233, 234, -1, + 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, -1, 273, 274, 275, 276, -1, 278, 279, 280, 281, 282, 283, -1, 285, - 286, 287, -1, 289, 290, 291, -1, -1, 294, 295, + 286, -1, 288, 289, 290, 291, -1, -1, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, -1, 311, 312, 313, 314, 315, 316, 317, 318, 319, -1, 321, 322, 323, 324, 325, @@ -11433,2389 +10701,3453 @@ static const yytype_int16 yycheck[] = -1, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, -1, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, - 366, 367, 368, -1, 370, 371, 372, 373, 374, 375, + 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, -1, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, -1, 404, 405, - -1, 407, 408, 409, 410, 411, 412, 413, -1, 415, - 416, -1, -1, 419, 420, 421, 422, 423, 424, 425, + 406, 407, 408, 409, 410, 411, 412, 413, -1, 415, + 416, -1, -1, 419, 420, 421, 422, 423, -1, 425, 426, 427, 428, 429, 430, 431, 432, -1, -1, 435, 436, 437, 438, 439, 440, -1, 442, 443, 444, 445, 446, 447, 448, -1, 450, 451, 452, 453, 454, 455, - 456, -1, -1, 459, -1, -1, 462, 463, 464, 465, + 456, -1, -1, 459, -1, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, - 476, 477, 478, 479, 480, 481, 482, -1, -1, 8, - -1, -1, 11, -1, 490, 491, 15, 16, 17, 18, - 19, 20, 8, -1, -1, 11, -1, -1, -1, 15, - 16, 17, 18, 19, 20, -1, 35, -1, -1, -1, - 39, -1, -1, -1, 43, -1, -1, -1, -1, 35, - -1, 50, -1, -1, -1, -1, -1, 43, 8, -1, - -1, 11, -1, -1, 50, 15, 16, 17, 18, 19, - 20, 8, -1, -1, 11, -1, 75, -1, 15, 16, - 17, 18, 19, 20, -1, 35, -1, -1, -1, 75, - -1, -1, -1, 43, -1, -1, -1, -1, 35, -1, - 50, 38, -1, -1, -1, -1, 43, 8, -1, -1, - 11, -1, -1, 50, 15, 16, 17, 18, 19, 20, - -1, -1, -1, -1, -1, 75, -1, 126, -1, -1, - -1, -1, -1, -1, 35, -1, -1, -1, 75, -1, - -1, -1, 43, -1, -1, -1, -1, -1, -1, 50, - -1, -1, 8, -1, -1, 11, -1, -1, -1, 15, + 476, 477, 478, 479, 480, 481, 482, -1, -1, 485, + 3, 4, 5, -1, -1, -1, 9, -1, -1, -1, + -1, -1, -1, 499, -1, -1, -1, -1, 21, 22, + 23, 24, 25, 26, 27, 28, -1, 30, 31, 32, + -1, -1, -1, -1, -1, -1, -1, 40, 41, -1, + 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, + 53, 54, -1, 56, 57, 58, 59, 60, 61, -1, + -1, 64, 65, 66, 67, 68, -1, 70, 71, 72, + 73, 74, -1, 76, -1, 78, 79, 80, 81, 82, + 83, 84, 85, 86, 87, -1, 89, 90, 91, 92, + 93, 94, -1, 96, 97, 98, 99, 100, 101, 102, + 103, -1, -1, 106, 107, 108, 109, 110, 111, 112, + 113, 114, 115, 116, -1, 118, -1, 120, 121, 122, + 123, 124, 125, -1, 127, 128, 129, 130, 131, -1, + -1, 134, 135, 136, 137, 138, -1, 140, 141, 142, + -1, 144, 145, 146, -1, 148, 149, 150, 151, 152, + 153, 154, 155, 156, 157, 158, 159, 160, -1, 162, + 163, 164, 165, -1, 167, -1, 169, 170, -1, 172, + 173, 174, 175, 176, 177, -1, 179, -1, 181, 182, + 183, -1, 185, 186, 187, 188, 189, 190, 191, 192, + 193, 194, 195, 196, -1, 198, 199, 200, 201, 202, + 203, -1, 205, 206, 207, 208, 209, 210, 211, 212, + 213, 214, -1, 216, -1, 218, 219, 220, 221, 222, + 223, 224, 225, 226, 227, 228, -1, -1, 231, 232, + 233, 234, -1, 236, 237, 238, -1, -1, 241, 242, + 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, + 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, + 263, 264, 265, 266, 267, 268, 269, 270, 271, -1, + 273, 274, 275, 276, -1, 278, 279, 280, 281, 282, + 283, -1, 285, 286, 287, -1, 289, 290, 291, -1, + -1, 294, 295, 296, 297, 298, 299, 300, 301, 302, + 303, 304, 305, 306, 307, 308, 309, -1, 311, 312, + 313, 314, 315, 316, 317, 318, 319, -1, 321, 322, + 323, 324, 325, 326, -1, 328, 329, 330, 331, 332, + 333, 334, 335, -1, 337, 338, 339, 340, 341, 342, + 343, 344, 345, 346, 347, 348, 349, -1, 351, 352, + 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, + 363, 364, 365, 366, 367, 368, -1, 370, 371, 372, + 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, + 383, 384, 385, -1, 387, 388, 389, 390, 391, 392, + 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, + -1, 404, 405, -1, 407, 408, 409, 410, 411, 412, + 413, -1, 415, 416, -1, -1, 419, 420, 421, 422, + 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, + -1, -1, 435, 436, 437, 438, 439, 440, -1, 442, + 443, 444, 445, 446, 447, 448, -1, 450, 451, 452, + 453, 454, 455, 456, -1, -1, 459, -1, -1, 462, + 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, + 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, + 3, -1, 5, -1, -1, -1, -1, 490, 491, 492, + -1, -1, -1, -1, -1, -1, 499, -1, 21, 22, + 23, 24, 25, 26, 27, 28, -1, 30, 31, 32, + -1, -1, -1, -1, -1, -1, -1, 40, 41, -1, + 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, + 53, 54, -1, 56, 57, 58, 59, 60, 61, -1, + 63, 64, 65, 66, 67, 68, -1, 70, 71, 72, + 73, 74, -1, 76, -1, 78, 79, 80, 81, 82, + 83, 84, 85, 86, 87, -1, 89, 90, 91, 92, + 93, 94, -1, 96, 97, 98, 99, 100, 101, 102, + 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, + 113, 114, 115, 116, -1, 118, -1, 120, 121, 122, + 123, 124, 125, -1, 127, 128, 129, 130, 131, -1, + -1, 134, 135, 136, 137, 138, -1, 140, 141, 142, + -1, 144, 145, 146, -1, 148, 149, 150, 151, 152, + 153, 154, 155, 156, 157, 158, -1, 160, -1, 162, + 163, 164, 165, -1, 167, -1, 169, 170, -1, 172, + 173, 174, 175, 176, 177, -1, 179, -1, 181, 182, + 183, -1, 185, 186, 187, 188, 189, 190, 191, 192, + 193, 194, 195, 196, -1, 198, 199, 200, 201, 202, + 203, -1, 205, 206, 207, 208, 209, 210, 211, 212, + 213, 214, -1, 216, -1, 218, 219, 220, 221, 222, + 223, 224, 225, 226, 227, 228, 229, -1, 231, 232, + 233, 234, -1, 236, 237, 238, 239, 240, 241, 242, + 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, + 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, + 263, 264, 265, 266, 267, 268, 269, 270, 271, -1, + 273, 274, 275, 276, -1, 278, 279, 280, 281, 282, + 283, -1, 285, 286, -1, 288, 289, 290, 291, -1, + -1, 294, 295, 296, 297, 298, 299, 300, 301, 302, + 303, 304, 305, 306, 307, 308, 309, -1, 311, 312, + 313, 314, 315, 316, 317, 318, 319, -1, 321, 322, + 323, 324, 325, 326, -1, 328, 329, 330, 331, 332, + 333, 334, 335, -1, 337, 338, 339, 340, 341, 342, + 343, 344, 345, 346, 347, 348, 349, -1, 351, 352, + 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, + 363, 364, 365, 366, 367, 368, -1, 370, 371, 372, + 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, + 383, 384, 385, -1, 387, 388, 389, 390, 391, 392, + 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, + -1, 404, 405, -1, 407, 408, 409, 410, 411, 412, + 413, -1, 415, 416, -1, -1, 419, 420, 421, 422, + 423, -1, 425, 426, 427, 428, 429, 430, 431, 432, + -1, -1, 435, 436, 437, 438, 439, 440, -1, 442, + 443, 444, 445, 446, 447, 448, -1, 450, 451, 452, + 453, 454, 455, 456, -1, -1, 459, -1, -1, 462, + 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, + 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, + 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 499, -1, 21, 22, + 23, 24, 25, 26, 27, 28, -1, 30, 31, 32, + 33, 34, -1, -1, -1, -1, -1, 40, 41, -1, + 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, + 53, 54, -1, 56, 57, 58, 59, 60, 61, -1, + -1, 64, 65, 66, 67, 68, -1, 70, 71, 72, + 73, 74, -1, 76, -1, 78, 79, 80, 81, 82, + 83, 84, 85, 86, 87, -1, 89, 90, 91, 92, + 93, 94, -1, 96, 97, 98, 99, 100, 101, 102, + 103, -1, -1, 106, 107, 108, 109, 110, 111, 112, + 113, 114, 115, 116, -1, 118, -1, 120, 121, 122, + 123, 124, 125, -1, 127, 128, 129, 130, 131, -1, + -1, 134, 135, 136, 137, 138, -1, 140, 141, 142, + -1, 144, 145, 146, -1, 148, 149, 150, 151, 152, + 153, 154, 155, 156, 157, 158, -1, 160, -1, 162, + 163, 164, 165, -1, 167, -1, 169, 170, -1, 172, + 173, 174, 175, 176, 177, -1, 179, -1, 181, 182, + 183, -1, 185, 186, 187, 188, 189, 190, 191, 192, + 193, 194, 195, 196, -1, 198, 199, 200, 201, 202, + 203, -1, 205, 206, 207, 208, 209, 210, 211, 212, + 213, 214, -1, 216, -1, 218, 219, 220, 221, 222, + 223, 224, 225, 226, 227, 228, -1, -1, 231, 232, + 233, 234, -1, 236, 237, 238, -1, -1, 241, 242, + 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, + 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, + 263, 264, 265, 266, 267, 268, 269, 270, 271, -1, + 273, 274, 275, 276, -1, 278, 279, 280, 281, 282, + 283, -1, 285, 286, -1, -1, 289, 290, 291, -1, + -1, 294, 295, 296, 297, 298, 299, 300, 301, 302, + 303, 304, 305, 306, 307, 308, 309, -1, 311, 312, + 313, 314, 315, 316, 317, 318, 319, -1, 321, 322, + 323, 324, 325, 326, -1, 328, 329, 330, 331, 332, + 333, 334, 335, -1, 337, 338, 339, 340, 341, 342, + 343, 344, 345, 346, 347, 348, 349, -1, 351, 352, + 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, + 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, + 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, + 383, 384, 385, -1, 387, 388, 389, 390, 391, 392, + 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, + -1, 404, 405, 406, 407, 408, 409, 410, 411, 412, + 413, -1, 415, 416, -1, -1, 419, 420, 421, 422, + 423, -1, 425, 426, 427, 428, 429, 430, 431, 432, + -1, -1, 435, 436, 437, 438, 439, 440, -1, 442, + 443, 444, 445, 446, 447, 448, -1, 450, 451, 452, + 453, 454, 455, 456, -1, -1, 459, -1, 461, 462, + 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, + 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, + 3, -1, 485, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 499, -1, 21, 22, + 23, 24, 25, 26, 27, 28, -1, 30, 31, 32, + -1, -1, -1, -1, -1, -1, -1, 40, 41, -1, + 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, + 53, 54, -1, 56, 57, 58, 59, 60, 61, -1, + 63, 64, 65, 66, 67, 68, -1, 70, 71, 72, + 73, 74, -1, 76, -1, 78, 79, 80, 81, 82, + 83, 84, 85, 86, 87, -1, 89, 90, 91, 92, + 93, 94, -1, 96, 97, 98, 99, 100, 101, 102, + 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, + 113, 114, 115, 116, -1, 118, -1, 120, 121, 122, + 123, 124, 125, -1, 127, 128, 129, 130, 131, -1, + -1, 134, 135, 136, 137, 138, -1, 140, 141, 142, + -1, 144, 145, 146, -1, 148, 149, 150, 151, 152, + 153, 154, 155, 156, 157, 158, -1, 160, -1, 162, + 163, 164, 165, -1, 167, -1, 169, 170, -1, 172, + 173, 174, 175, 176, 177, -1, 179, -1, 181, 182, + 183, -1, 185, 186, 187, 188, 189, 190, 191, 192, + 193, 194, 195, 196, -1, 198, 199, 200, 201, 202, + 203, -1, 205, 206, 207, 208, 209, 210, 211, 212, + 213, 214, -1, 216, -1, 218, 219, 220, 221, 222, + 223, 224, 225, 226, 227, 228, -1, -1, 231, 232, + 233, 234, -1, 236, 237, 238, 239, 240, 241, 242, + 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, + 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, + 263, 264, 265, 266, 267, 268, 269, 270, 271, -1, + 273, 274, 275, 276, -1, 278, 279, 280, 281, 282, + 283, -1, 285, 286, -1, -1, 289, 290, 291, -1, + -1, 294, 295, 296, 297, 298, 299, 300, 301, 302, + 303, 304, 305, 306, 307, 308, 309, -1, 311, 312, + 313, 314, 315, 316, 317, 318, 319, -1, 321, 322, + 323, 324, 325, 326, -1, 328, 329, 330, 331, 332, + 333, 334, 335, -1, 337, 338, 339, 340, 341, 342, + 343, 344, 345, 346, 347, 348, 349, -1, 351, 352, + 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, + 363, 364, 365, 366, 367, 368, -1, 370, 371, 372, + 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, + 383, 384, 385, -1, 387, 388, 389, 390, 391, 392, + 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, + -1, 404, 405, -1, 407, 408, 409, 410, 411, 412, + 413, -1, 415, 416, -1, -1, 419, 420, 421, 422, + 423, -1, 425, 426, 427, 428, 429, 430, 431, 432, + -1, -1, 435, 436, 437, 438, 439, 440, -1, 442, + 443, 444, 445, 446, 447, 448, -1, 450, 451, 452, + 453, 454, 455, 456, -1, -1, 459, -1, -1, 462, + 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, + 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, + 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 499, -1, 21, 22, + 23, 24, 25, 26, 27, 28, -1, 30, 31, 32, + -1, -1, -1, -1, -1, -1, -1, 40, 41, -1, + 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, + 53, 54, -1, 56, 57, 58, 59, 60, 61, -1, + 63, 64, 65, 66, 67, 68, -1, 70, 71, 72, + 73, 74, -1, 76, -1, 78, 79, 80, 81, 82, + 83, 84, 85, 86, 87, -1, 89, 90, 91, 92, + 93, 94, -1, 96, 97, 98, 99, 100, 101, 102, + 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, + 113, 114, 115, 116, -1, 118, -1, 120, 121, 122, + 123, 124, 125, -1, 127, 128, 129, 130, 131, -1, + -1, 134, 135, 136, 137, 138, -1, 140, 141, 142, + -1, 144, 145, 146, -1, 148, 149, 150, 151, 152, + 153, 154, 155, 156, 157, 158, -1, 160, -1, 162, + 163, 164, 165, -1, 167, -1, 169, 170, -1, 172, + 173, 174, 175, 176, 177, -1, 179, -1, 181, 182, + 183, -1, 185, 186, 187, 188, 189, 190, 191, 192, + 193, 194, 195, 196, -1, 198, 199, 200, 201, 202, + 203, -1, 205, 206, 207, 208, 209, 210, 211, 212, + 213, 214, -1, 216, -1, 218, 219, 220, 221, 222, + 223, 224, 225, 226, 227, 228, -1, -1, 231, 232, + 233, 234, -1, 236, 237, 238, 239, 240, 241, 242, + 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, + 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, + 263, 264, 265, 266, 267, 268, 269, 270, 271, -1, + 273, 274, 275, 276, -1, 278, 279, 280, 281, 282, + 283, -1, 285, 286, -1, -1, 289, 290, 291, -1, + -1, 294, 295, 296, 297, 298, 299, 300, 301, 302, + 303, 304, 305, 306, 307, 308, 309, -1, 311, 312, + 313, 314, 315, 316, 317, 318, 319, -1, 321, 322, + 323, 324, 325, 326, -1, 328, 329, 330, 331, 332, + 333, 334, 335, -1, 337, 338, 339, 340, 341, 342, + 343, 344, 345, 346, 347, 348, 349, -1, 351, 352, + 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, + 363, 364, 365, 366, 367, 368, -1, 370, 371, 372, + 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, + 383, 384, 385, -1, 387, 388, 389, 390, 391, 392, + 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, + -1, 404, 405, -1, 407, 408, 409, 410, 411, 412, + 413, -1, 415, 416, -1, -1, 419, 420, 421, 422, + 423, -1, 425, 426, 427, 428, 429, 430, 431, 432, + -1, -1, 435, 436, 437, 438, 439, 440, -1, 442, + 443, 444, 445, 446, 447, 448, -1, 450, 451, 452, + 453, 454, 455, 456, -1, -1, 459, -1, -1, 462, + 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, + 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, + 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 499, -1, 21, 22, + 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, + -1, -1, -1, -1, -1, -1, -1, 40, 41, -1, + 43, 44, 45, -1, 47, 48, 49, 50, 51, -1, + 53, 54, -1, 56, 57, 58, 59, 60, 61, -1, + -1, 64, 65, 66, 67, 68, -1, 70, 71, 72, + 73, 74, -1, -1, -1, 78, 79, 80, 81, 82, + 83, -1, 85, 86, 87, -1, 89, 90, 91, 92, + 93, 94, -1, -1, 97, 98, 99, -1, -1, -1, + -1, -1, -1, -1, 107, 108, 109, 110, 111, 112, + 113, 114, 115, 116, -1, 118, -1, 120, 121, 122, + 123, 124, 125, -1, 127, 128, 129, 130, 131, -1, + -1, 134, 135, 136, 137, 138, -1, 140, 141, 142, + -1, 144, 145, 146, -1, 148, 149, 150, 151, 152, + 153, 154, 155, 156, 157, 158, -1, 160, -1, 162, + 163, 164, 165, -1, 167, -1, 169, -1, -1, -1, + 173, 174, 175, -1, 177, -1, 179, -1, 181, 182, + 183, -1, 185, 186, 187, 188, 189, 190, 191, -1, + 193, 194, 195, 196, -1, 198, 199, 200, 201, 202, + 203, -1, 205, -1, 207, 208, 209, 210, 211, 212, + 213, 214, -1, 216, -1, 218, -1, -1, 221, -1, + 223, 224, 225, 226, 227, 228, -1, -1, 231, -1, + 233, -1, -1, 236, 237, 238, -1, -1, 241, 242, + 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, + 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, + 263, 264, 265, -1, 267, 268, 269, 270, 271, -1, + 273, 274, -1, 276, -1, 278, 279, 280, 281, 282, + 283, -1, 285, 286, -1, -1, 289, 290, 291, -1, + -1, 294, 295, -1, 297, -1, 299, 300, 301, 302, + 303, 304, 305, 306, 307, 308, 309, -1, 311, 312, + 313, 314, 315, 316, 317, 318, 319, -1, 321, 322, + 323, 324, 325, 326, -1, 328, 329, 330, 331, 332, + 333, 334, 335, -1, 337, 338, 339, 340, 341, 342, + 343, 344, 345, 346, 347, 348, 349, -1, 351, 352, + -1, 354, 355, 356, 357, 358, 359, 360, 361, 362, + 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, + 373, 374, -1, 376, 377, 378, 379, 380, -1, 382, + 383, 384, 385, -1, 387, 388, 389, 390, 391, 392, + 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, + -1, 404, 405, 406, 407, -1, 409, 410, 411, 412, + 413, -1, 415, 416, -1, -1, 419, 420, 421, 422, + 423, -1, 425, 426, 427, 428, 429, 430, 431, 432, + -1, -1, 435, 436, 437, 438, 439, -1, -1, 442, + 443, 444, 445, 446, 447, 448, -1, 450, -1, 452, + 453, 454, 455, 456, -1, -1, 459, -1, 461, 462, + 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, + 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, + 3, -1, 485, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 499, -1, 21, 22, + 23, 24, 25, 26, 27, 28, -1, 30, 31, 32, + -1, -1, -1, -1, -1, -1, -1, 40, 41, -1, + 43, 44, 45, -1, 47, 48, 49, 50, 51, -1, + 53, 54, -1, 56, 57, 58, 59, 60, 61, -1, + -1, 64, 65, 66, 67, 68, -1, 70, 71, 72, + 73, 74, -1, -1, -1, 78, 79, 80, 81, 82, + 83, -1, 85, 86, 87, -1, 89, 90, 91, 92, + 93, 94, -1, -1, 97, 98, 99, -1, -1, -1, + -1, -1, -1, -1, 107, 108, 109, 110, 111, 112, + 113, 114, 115, 116, -1, 118, -1, 120, 121, 122, + 123, 124, 125, -1, 127, 128, 129, 130, 131, -1, + -1, 134, 135, 136, 137, 138, -1, 140, 141, 142, + -1, 144, 145, 146, -1, 148, 149, 150, 151, 152, + 153, 154, 155, 156, 157, 158, -1, 160, -1, 162, + 163, 164, 165, -1, 167, -1, 169, -1, -1, -1, + 173, 174, 175, -1, 177, -1, 179, -1, 181, 182, + 183, -1, 185, 186, 187, 188, 189, 190, 191, -1, + 193, 194, 195, 196, -1, 198, 199, 200, 201, 202, + 203, -1, 205, -1, 207, 208, 209, 210, 211, 212, + 213, 214, -1, 216, -1, 218, -1, -1, 221, -1, + 223, 224, 225, 226, 227, 228, -1, -1, 231, -1, + 233, -1, -1, 236, 237, 238, -1, -1, 241, 242, + 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, + 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, + 263, 264, 265, -1, 267, 268, 269, 270, 271, -1, + 273, 274, -1, 276, -1, 278, 279, 280, 281, 282, + 283, -1, 285, 286, -1, -1, 289, 290, 291, -1, + -1, 294, 295, -1, 297, -1, 299, 300, 301, 302, + 303, 304, 305, 306, 307, 308, 309, -1, 311, 312, + 313, 314, 315, 316, 317, 318, 319, -1, 321, 322, + 323, 324, 325, 326, -1, 328, 329, 330, 331, 332, + 333, 334, 335, -1, 337, 338, 339, 340, 341, 342, + 343, 344, 345, 346, 347, 348, 349, -1, 351, 352, + -1, 354, 355, 356, 357, 358, 359, 360, 361, 362, + 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, + 373, 374, -1, 376, 377, 378, 379, 380, -1, 382, + 383, 384, 385, -1, 387, 388, 389, 390, 391, 392, + 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, + -1, 404, 405, 406, 407, -1, 409, 410, 411, 412, + 413, -1, 415, 416, -1, -1, 419, 420, 421, 422, + 423, -1, 425, 426, 427, 428, 429, 430, 431, 432, + -1, -1, 435, 436, 437, 438, 439, -1, -1, 442, + 443, 444, 445, 446, 447, 448, -1, 450, -1, 452, + 453, 454, 455, 456, -1, -1, 459, -1, 461, 462, + 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, + 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, + -1, 3, 485, 5, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 499, -1, -1, 21, + 22, 23, 24, 25, 26, 27, 28, -1, 30, 31, + 32, -1, -1, -1, -1, -1, -1, -1, 40, 41, + -1, 43, 44, 45, -1, 47, 48, 49, 50, 51, + -1, 53, 54, -1, 56, 57, 58, 59, 60, 61, + -1, -1, 64, 65, 66, 67, 68, -1, 70, 71, + 72, 73, 74, -1, -1, -1, 78, 79, 80, 81, + 82, 83, -1, 85, 86, 87, -1, 89, 90, 91, + 92, 93, 94, -1, -1, 97, 98, 99, -1, -1, + -1, -1, -1, -1, -1, 107, 108, 109, 110, 111, + 112, 113, 114, 115, 116, -1, 118, -1, 120, 121, + 122, 123, 124, 125, -1, 127, 128, 129, 130, 131, + -1, -1, 134, 135, 136, 137, 138, -1, 140, 141, + 142, -1, 144, 145, 146, -1, 148, 149, 150, 151, + 152, 153, 154, 155, 156, 157, 158, -1, 160, -1, + 162, 163, 164, 165, -1, 167, -1, 169, -1, -1, + -1, 173, 174, 175, -1, 177, -1, 179, -1, 181, + 182, 183, -1, 185, 186, 187, 188, 189, 190, 191, + -1, 193, 194, 195, 196, -1, 198, 199, 200, 201, + 202, 203, -1, 205, -1, 207, 208, 209, 210, 211, + 212, 213, 214, -1, 216, -1, 218, -1, -1, 221, + -1, 223, 224, 225, 226, 227, 228, -1, -1, 231, + -1, 233, -1, -1, 236, 237, 238, -1, -1, 241, + 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, + 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, + 262, 263, 264, 265, -1, 267, 268, 269, 270, 271, + -1, 273, 274, -1, 276, -1, 278, 279, 280, 281, + 282, 283, -1, 285, 286, -1, -1, 289, 290, 291, + -1, -1, 294, 295, -1, 297, -1, 299, 300, 301, + 302, 303, 304, 305, 306, 307, 308, 309, -1, 311, + 312, 313, 314, 315, 316, 317, 318, 319, -1, 321, + 322, 323, 324, 325, 326, -1, 328, 329, 330, 331, + 332, 333, 334, 335, -1, 337, 338, 339, 340, 341, + 342, 343, 344, 345, 346, 347, 348, 349, -1, 351, + 352, -1, 354, 355, 356, 357, 358, 359, 360, 361, + 362, 363, 364, 365, 366, 367, 368, -1, 370, 371, + 372, 373, 374, -1, 376, 377, 378, 379, 380, -1, + 382, 383, 384, 385, -1, 387, 388, 389, 390, 391, + 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, + 402, -1, 404, 405, -1, 407, -1, 409, 410, 411, + 412, 413, -1, 415, 416, -1, -1, 419, 420, 421, + 422, 423, -1, 425, 426, 427, 428, 429, 430, 431, + 432, -1, -1, 435, 436, 437, 438, 439, -1, -1, + 442, 443, 444, 445, 446, 447, 448, -1, 450, -1, + 452, 453, 454, 455, 456, -1, -1, 459, -1, -1, + 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, + 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, + 482, 3, -1, 5, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 499, -1, 21, + 22, 23, 24, 25, 26, 27, 28, -1, 30, 31, + 32, -1, -1, -1, -1, -1, -1, -1, 40, 41, + -1, 43, 44, 45, -1, 47, 48, 49, 50, 51, + -1, 53, 54, -1, 56, 57, 58, 59, 60, 61, + -1, -1, 64, 65, 66, 67, 68, -1, 70, 71, + 72, 73, 74, -1, -1, -1, 78, 79, 80, 81, + 82, 83, -1, 85, 86, 87, -1, 89, 90, 91, + 92, 93, 94, -1, -1, 97, 98, 99, -1, -1, + -1, -1, -1, -1, -1, 107, 108, 109, 110, 111, + 112, 113, 114, 115, 116, -1, 118, -1, 120, 121, + 122, 123, 124, 125, -1, 127, 128, 129, 130, 131, + -1, -1, 134, 135, 136, 137, 138, -1, 140, 141, + 142, -1, 144, 145, 146, -1, 148, 149, 150, 151, + 152, 153, 154, 155, 156, 157, 158, -1, 160, -1, + 162, 163, 164, 165, -1, 167, -1, 169, -1, -1, + -1, 173, 174, 175, -1, 177, -1, 179, -1, 181, + 182, 183, -1, 185, 186, 187, 188, 189, 190, 191, + -1, 193, 194, 195, 196, -1, 198, 199, 200, 201, + 202, 203, -1, 205, -1, 207, 208, 209, 210, 211, + 212, 213, 214, -1, 216, -1, 218, -1, -1, 221, + -1, 223, 224, 225, 226, 227, 228, -1, -1, 231, + -1, 233, -1, -1, 236, 237, 238, -1, -1, 241, + 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, + 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, + 262, 263, 264, 265, -1, 267, 268, 269, 270, 271, + -1, 273, 274, -1, 276, -1, 278, 279, 280, 281, + 282, 283, -1, 285, 286, -1, -1, 289, 290, 291, + -1, -1, 294, 295, -1, 297, -1, 299, 300, 301, + 302, 303, 304, 305, 306, 307, 308, 309, -1, 311, + 312, 313, 314, 315, 316, 317, 318, 319, -1, 321, + 322, 323, 324, 325, 326, -1, 328, 329, 330, 331, + 332, 333, 334, 335, -1, 337, 338, 339, 340, 341, + 342, 343, 344, 345, 346, 347, 348, 349, -1, 351, + 352, -1, 354, 355, 356, 357, 358, 359, 360, 361, + 362, 363, 364, 365, 366, 367, 368, -1, 370, 371, + 372, 373, 374, -1, 376, 377, 378, 379, 380, -1, + 382, 383, 384, 385, -1, 387, 388, 389, 390, 391, + 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, + 402, -1, 404, 405, -1, 407, -1, 409, 410, 411, + 412, 413, -1, 415, 416, -1, -1, 419, 420, 421, + 422, 423, -1, 425, 426, 427, 428, 429, 430, 431, + 432, -1, -1, 435, 436, 437, 438, 439, -1, -1, + 442, 443, 444, 445, 446, 447, 448, -1, 450, -1, + 452, 453, 454, 455, 456, -1, -1, 459, -1, -1, + 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, + 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, + 482, 3, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 499, -1, 21, + 22, 23, 24, 25, 26, 27, 28, -1, 30, 31, + 32, -1, -1, -1, -1, -1, -1, -1, 40, 41, + -1, 43, 44, 45, -1, 47, 48, 49, 50, 51, + -1, 53, 54, -1, 56, 57, 58, 59, 60, 61, + -1, -1, 64, 65, 66, 67, 68, -1, 70, 71, + 72, 73, 74, -1, -1, -1, 78, 79, 80, 81, + 82, 83, -1, 85, 86, 87, -1, 89, 90, 91, + 92, 93, 94, -1, -1, 97, 98, 99, -1, -1, + -1, -1, -1, -1, -1, 107, 108, 109, 110, 111, + 112, 113, 114, 115, 116, -1, 118, -1, 120, 121, + 122, 123, 124, 125, -1, 127, 128, 129, 130, 131, + -1, -1, 134, 135, 136, 137, 138, -1, 140, 141, + 142, -1, 144, 145, 146, -1, 148, 149, 150, 151, + 152, 153, 154, 155, 156, 157, 158, -1, 160, -1, + 162, 163, 164, 165, -1, 167, -1, 169, -1, -1, + -1, 173, 174, 175, -1, 177, -1, 179, -1, 181, + 182, 183, -1, 185, 186, 187, 188, 189, 190, 191, + -1, 193, 194, 195, 196, -1, 198, 199, 200, 201, + 202, 203, -1, 205, -1, 207, 208, 209, 210, 211, + 212, 213, 214, -1, 216, -1, 218, -1, -1, 221, + -1, 223, 224, 225, 226, 227, 228, -1, -1, 231, + -1, 233, -1, -1, 236, 237, 238, -1, -1, 241, + 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, + 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, + 262, 263, 264, 265, -1, 267, 268, 269, 270, 271, + -1, 273, 274, -1, 276, -1, 278, 279, 280, 281, + 282, 283, -1, 285, 286, -1, -1, 289, 290, 291, + -1, -1, 294, 295, -1, 297, -1, 299, 300, 301, + 302, 303, 304, 305, 306, 307, 308, 309, -1, 311, + 312, 313, 314, 315, 316, 317, 318, 319, -1, 321, + 322, 323, 324, 325, 326, -1, 328, 329, 330, 331, + 332, 333, 334, 335, -1, 337, 338, 339, 340, 341, + 342, 343, 344, 345, 346, 347, 348, 349, -1, 351, + 352, -1, 354, 355, 356, 357, 358, 359, 360, 361, + 362, 363, 364, 365, 366, 367, 368, -1, 370, 371, + 372, 373, 374, -1, 376, 377, 378, 379, 380, -1, + 382, 383, 384, 385, -1, 387, 388, 389, 390, 391, + 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, + 402, -1, 404, 405, -1, 407, -1, 409, 410, 411, + 412, 413, -1, 415, 416, -1, -1, 419, 420, 421, + 422, 423, -1, 425, 426, 427, 428, 429, 430, 431, + 432, -1, -1, 435, 436, 437, 438, 439, -1, -1, + 442, 443, 444, 445, 446, 447, 448, -1, 450, -1, + 452, 453, 454, 455, 456, -1, -1, 459, -1, -1, + 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, + 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, + 482, 3, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 499, -1, 21, + 22, 23, 24, 25, 26, 27, 28, -1, 30, 31, + 32, -1, -1, -1, -1, -1, -1, -1, 40, 41, + -1, 43, 44, 45, -1, 47, 48, 49, 50, 51, + -1, 53, 54, -1, 56, 57, 58, 59, 60, 61, + -1, -1, 64, 65, 66, 67, 68, -1, 70, 71, + 72, 73, 74, -1, -1, -1, 78, 79, 80, 81, + 82, 83, -1, 85, 86, 87, -1, 89, 90, 91, + 92, 93, 94, -1, -1, 97, 98, 99, -1, -1, + -1, -1, -1, -1, -1, 107, 108, 109, 110, 111, + 112, 113, 114, 115, 116, -1, 118, -1, 120, 121, + 122, 123, 124, 125, -1, 127, 128, 129, 130, 131, + -1, -1, 134, 135, 136, 137, 138, -1, 140, 141, + 142, -1, 144, 145, 146, -1, 148, 149, 150, 151, + 152, 153, 154, 155, 156, 157, 158, -1, 160, -1, + 162, 163, 164, 165, -1, 167, -1, 169, -1, -1, + -1, 173, 174, 175, -1, 177, -1, 179, -1, 181, + 182, 183, -1, 185, 186, 187, 188, 189, 190, 191, + -1, 193, 194, 195, 196, -1, 198, 199, 200, 201, + 202, 203, -1, 205, -1, 207, 208, 209, 210, 211, + 212, 213, 214, -1, 216, -1, 218, -1, -1, 221, + -1, 223, 224, 225, 226, 227, 228, -1, -1, 231, + -1, 233, -1, -1, 236, 237, 238, -1, -1, 241, + 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, + 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, + 262, 263, 264, 265, -1, 267, 268, 269, 270, 271, + -1, 273, 274, -1, 276, -1, 278, 279, 280, 281, + 282, 283, -1, 285, 286, -1, -1, 289, 290, 291, + -1, -1, 294, 295, -1, 297, -1, 299, 300, 301, + 302, 303, 304, 305, 306, 307, 308, 309, -1, 311, + 312, 313, 314, 315, 316, 317, 318, 319, -1, 321, + 322, 323, 324, 325, 326, -1, 328, 329, 330, 331, + 332, 333, 334, 335, -1, 337, 338, 339, 340, 341, + 342, 343, 344, 345, 346, 347, 348, 349, -1, 351, + 352, -1, 354, 355, 356, 357, 358, 359, 360, 361, + 362, 363, 364, 365, 366, 367, 368, -1, 370, 371, + 372, 373, 374, -1, 376, 377, 378, 379, 380, -1, + 382, 383, 384, 385, -1, 387, 388, 389, 390, 391, + 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, + 402, -1, 404, 405, -1, 407, -1, 409, 410, 411, + 412, 413, -1, 415, 416, -1, -1, 419, 420, 421, + 422, 423, -1, 425, 426, 427, 428, 429, 430, 431, + 432, -1, -1, 435, 436, 437, 438, 439, -1, -1, + 442, 443, 444, 445, 446, 447, 448, -1, 450, -1, + 452, 453, 454, 455, 456, -1, -1, 459, -1, -1, + 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, + 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, + 482, 3, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 499, -1, 21, + 22, 23, 24, 25, 26, 27, 28, -1, 30, 31, + 32, -1, -1, -1, -1, -1, -1, -1, 40, 41, + -1, 43, 44, 45, -1, 47, 48, 49, 50, 51, + -1, 53, 54, -1, 56, 57, 58, 59, 60, 61, + -1, -1, 64, 65, 66, 67, 68, -1, 70, 71, + 72, 73, 74, -1, -1, -1, 78, 79, 80, 81, + 82, 83, -1, 85, 86, 87, -1, 89, 90, 91, + 92, 93, 94, -1, -1, 97, 98, 99, -1, -1, + -1, -1, -1, -1, -1, 107, 108, 109, 110, 111, + 112, 113, 114, 115, 116, -1, 118, -1, 120, 121, + 122, 123, 124, 125, -1, 127, 128, 129, 130, 131, + -1, -1, 134, 135, 136, 137, 138, -1, 140, 141, + 142, -1, 144, 145, 146, -1, 148, 149, 150, 151, + 152, 153, 154, 155, 156, 157, 158, -1, 160, -1, + 162, 163, 164, 165, -1, 167, -1, 169, -1, -1, + -1, 173, 174, 175, -1, 177, -1, 179, -1, 181, + 182, 183, -1, 185, 186, 187, 188, 189, 190, 191, + -1, 193, 194, 195, 196, -1, 198, 199, 200, 201, + 202, 203, -1, 205, -1, 207, 208, 209, 210, 211, + 212, 213, 214, -1, 216, -1, 218, -1, -1, 221, + -1, 223, 224, 225, 226, 227, 228, -1, -1, 231, + -1, 233, -1, -1, 236, 237, 238, -1, -1, 241, + 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, + 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, + 262, 263, 264, 265, -1, 267, 268, 269, 270, 271, + -1, 273, 274, -1, 276, -1, 278, 279, 280, 281, + 282, 283, -1, 285, 286, -1, -1, 289, 290, 291, + -1, -1, 294, 295, -1, 297, -1, 299, 300, 301, + 302, 303, 304, 305, 306, 307, 308, 309, -1, 311, + 312, 313, 314, 315, 316, 317, 318, 319, -1, 321, + 322, 323, 324, 325, 326, -1, 328, 329, 330, 331, + 332, 333, 334, 335, -1, 337, 338, 339, 340, 341, + 342, 343, 344, 345, 346, 347, 348, 349, -1, 351, + 352, -1, 354, 355, 356, 357, 358, 359, 360, 361, + 362, 363, 364, 365, 366, 367, 368, -1, 370, 371, + 372, 373, 374, -1, 376, 377, 378, 379, 380, -1, + 382, 383, 384, 385, -1, 387, 388, 389, 390, 391, + 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, + 402, -1, 404, 405, -1, 407, -1, 409, 410, 411, + 412, 413, -1, 415, 416, -1, -1, 419, 420, 421, + 422, 423, -1, 425, 426, 427, 428, 429, 430, 431, + 432, -1, -1, 435, 436, 437, 438, 439, -1, -1, + 442, 443, 444, 445, 446, 447, 448, -1, 450, -1, + 452, 453, 454, 455, 456, -1, -1, 459, -1, -1, + 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, + 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, + 482, -1, -1, 3, 4, 5, -1, -1, 8, 9, + -1, -1, -1, -1, -1, 15, -1, 499, 18, 19, + 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, + 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, + 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, + -1, 51, 52, 53, 54, 55, 56, 57, 58, 59, + 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, + 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, + 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, + 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, + 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, + 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, + 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, + 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, + 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, + 150, 151, -1, 153, 154, 155, 156, 157, -1, 159, + 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, + 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, + 180, -1, -1, 183, 184, 185, 186, 187, 188, 189, + 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, + 200, 201, 202, 203, 204, 205, 206, -1, 208, 209, + 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, + 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, + 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, + 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, + 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, + 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, + 270, 271, 272, 273, 274, 275, 276, 277, -1, 279, + 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, + 290, 291, 292, 293, 294, -1, 296, 297, 298, -1, + 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, + 310, 311, 312, -1, 314, 315, -1, 317, 318, 319, + 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, + 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, + 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, + 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, + 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, + 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, + 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, + 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, + 400, -1, 402, 403, 404, 405, 406, 407, 408, 409, + 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, + 420, -1, 422, -1, 424, 425, 426, 427, 428, 429, + 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, + 440, 441, 442, 443, 444, 445, 446, -1, 448, 449, + 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, + 460, 461, 462, 463, 464, 465, 466, 467, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 479, + 480, 481, 482, -1, 3, -1, 486, 487, 488, 8, + 490, 491, 492, 493, 494, 495, 15, -1, -1, 18, + 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, + -1, 30, 31, 32, -1, -1, -1, -1, -1, -1, + -1, 40, 41, -1, 43, 44, 45, -1, 47, 48, + 49, 50, 51, -1, 53, 54, -1, 56, 57, 58, + 59, 60, 61, -1, -1, 64, 65, 66, 67, 68, + -1, 70, 71, 72, 73, 74, -1, -1, -1, 78, + 79, 80, 81, 82, 83, -1, 85, 86, 87, -1, + 89, 90, 91, 92, 93, 94, -1, -1, 97, 98, + 99, -1, -1, -1, -1, -1, -1, -1, 107, 108, + 109, 110, 111, 112, 113, 114, 115, 116, -1, 118, + -1, 120, 121, 122, 123, 124, 125, -1, 127, 128, + 129, 130, 131, -1, -1, 134, 135, 136, 137, 138, + -1, 140, 141, 142, -1, 144, 145, 146, -1, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, + -1, 160, -1, 162, 163, 164, 165, -1, 167, -1, + 169, -1, -1, -1, 173, 174, 175, -1, 177, -1, + 179, -1, 181, 182, 183, -1, 185, 186, 187, 188, + 189, 190, 191, -1, 193, 194, 195, 196, -1, 198, + 199, 200, 201, 202, 203, -1, 205, -1, 207, 208, + 209, 210, 211, 212, 213, 214, -1, 216, -1, 218, + -1, -1, 221, -1, 223, 224, 225, 226, 227, 228, + -1, -1, 231, -1, 233, -1, -1, 236, 237, 238, + -1, -1, 241, 242, 243, 244, 245, 246, 247, 248, + 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, + 259, 260, 261, 262, 263, 264, 265, -1, 267, 268, + 269, 270, 271, -1, 273, 274, -1, 276, -1, 278, + 279, 280, 281, 282, 283, -1, 285, 286, -1, -1, + 289, 290, 291, -1, -1, 294, 295, -1, 297, -1, + 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, + 309, -1, 311, 312, 313, 314, 315, 316, 317, 318, + 319, -1, 321, 322, 323, 324, 325, 326, -1, 328, + 329, 330, 331, 332, 333, 334, 335, -1, 337, 338, + 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, + 349, -1, 351, 352, -1, 354, 355, 356, 357, 358, + 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, + -1, 370, 371, 372, 373, 374, -1, 376, 377, 378, + 379, 380, -1, 382, 383, 384, 385, -1, 387, 388, + 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, + 399, 400, 401, 402, -1, 404, 405, -1, 407, -1, + 409, 410, 411, 412, 413, -1, 415, 416, -1, -1, + 419, 420, 421, 422, 423, -1, 425, 426, 427, 428, + 429, 430, 431, 432, -1, -1, 435, 436, 437, 438, + 439, -1, -1, 442, 443, 444, 445, 446, 447, 448, + -1, 450, -1, 452, 453, 454, 455, 456, -1, -1, + 459, -1, -1, 462, 463, 464, 465, 466, 467, 468, + 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, + 479, 480, 481, 482, -1, -1, -1, 486, 487, 488, + -1, 490, 491, 492, 493, 494, 495, 8, -1, -1, + 11, -1, -1, -1, 15, 16, 17, 18, 19, 20, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 35, -1, 8, -1, -1, 11, + -1, -1, 43, 15, 16, 17, 18, 19, 20, 50, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 35, -1, -1, -1, -1, -1, -1, + -1, 43, 8, -1, 75, 11, -1, -1, 50, 15, 16, 17, 18, 19, 20, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 75, -1, -1, 176, -1, 35, - 166, -1, 38, -1, -1, 171, -1, 43, -1, -1, - 176, -1, -1, 192, 50, -1, -1, -1, 197, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 35, + -1, 8, -1, 75, 11, -1, -1, 43, 15, 16, + 17, 18, 19, 20, 50, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 35, -1, + -1, -1, -1, -1, -1, -1, 43, -1, -1, 75, + -1, -1, -1, 50, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 75, -1, + -1, -1, -1, -1, -1, 176, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 192, -1, -1, -1, -1, 197, -1, -1, 8, + -1, -1, 11, -1, 176, -1, 15, 16, 17, 18, + 19, 20, -1, -1, -1, -1, -1, -1, 219, 220, + 192, -1, -1, -1, -1, 197, 35, -1, -1, -1, + -1, -1, -1, 234, 43, -1, -1, -1, -1, -1, + 176, 50, -1, -1, -1, -1, -1, 219, 220, -1, -1, -1, -1, -1, -1, -1, 192, -1, -1, -1, - -1, 197, -1, -1, -1, 165, -1, -1, -1, 75, - 219, 220, -1, -1, -1, -1, 176, -1, -1, -1, - -1, -1, -1, 219, 220, 234, -1, -1, -1, 176, - -1, -1, 192, -1, -1, -1, -1, 197, 234, -1, - -1, -1, -1, -1, -1, 192, -1, -1, -1, -1, - 197, -1, -1, -1, -1, -1, -1, -1, -1, 219, - 220, -1, -1, 272, -1, 176, 275, -1, -1, -1, - -1, -1, 219, 220, 234, -1, 272, -1, -1, 275, - 289, 192, -1, 292, -1, -1, 197, 234, -1, -1, + -1, 197, 234, -1, -1, -1, 75, -1, -1, 176, + -1, 272, -1, -1, 275, -1, -1, -1, -1, -1, + -1, -1, -1, 219, 220, 192, -1, -1, 289, -1, + 197, 292, -1, -1, -1, -1, -1, -1, 234, -1, + 272, -1, -1, 275, -1, -1, -1, -1, -1, -1, + -1, -1, 219, 220, -1, -1, -1, 289, -1, -1, + 292, -1, -1, -1, -1, -1, -1, 234, -1, -1, + -1, -1, -1, -1, -1, -1, 272, -1, -1, 275, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 289, -1, -1, 292, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 219, 220, - 176, -1, 272, -1, -1, 275, -1, -1, -1, -1, - -1, -1, -1, 234, -1, 272, 192, -1, 275, 289, - -1, 197, 292, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 289, -1, -1, 292, -1, -1, -1, -1, - -1, -1, -1, 219, 220, 315, -1, -1, -1, -1, - -1, 272, -1, -1, 275, -1, -1, -1, 234, -1, - -1, -1, 381, -1, -1, -1, -1, -1, 289, -1, - -1, 292, -1, -1, -1, 381, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 310, + -1, -1, -1, -1, -1, 272, -1, 176, 275, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 381, -1, 289, 192, -1, 292, -1, -1, 197, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 381, + 219, 220, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 234, -1, -1, -1, 8, + -1, -1, 11, -1, -1, -1, 15, 16, 17, 18, + 19, 20, -1, -1, -1, 381, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 35, -1, -1, -1, + -1, -1, -1, 272, 43, -1, 275, -1, -1, -1, + -1, 50, -1, -1, 381, -1, -1, -1, -1, -1, + 289, -1, 483, 292, -1, 486, 487, 488, -1, 490, + 491, 492, 493, 494, 495, -1, 75, -1, -1, 500, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 483, -1, -1, 486, 487, 488, -1, 490, 491, + 492, 493, 494, 495, -1, -1, -1, -1, 500, -1, + -1, -1, -1, 8, -1, -1, 11, -1, -1, -1, + 15, 16, 17, 18, 19, 20, -1, 483, -1, -1, + 486, 487, 488, -1, 490, 491, 492, 493, 494, 495, + 35, -1, -1, -1, 500, -1, 8, -1, 43, 11, + -1, -1, 381, 15, -1, 50, 483, -1, -1, 486, + 487, 488, -1, 490, 491, 492, 493, 494, 495, -1, + -1, -1, -1, 500, -1, 8, -1, 176, 11, -1, + 75, 43, 15, 16, 17, 18, 19, 20, 50, 8, + -1, -1, 11, 192, -1, -1, 15, -1, 197, -1, + -1, -1, 35, -1, -1, -1, -1, -1, -1, -1, + 43, -1, -1, 75, -1, -1, -1, 50, -1, -1, + 219, 220, -1, -1, 43, -1, -1, -1, -1, -1, + -1, 50, -1, -1, -1, 234, -1, -1, -1, -1, + 8, -1, 75, 11, -1, -1, -1, 15, 16, 17, + 18, 19, 20, -1, 483, -1, 75, 486, 487, 488, + -1, 490, 491, 492, 493, 494, 495, 35, -1, -1, + -1, 500, -1, 272, -1, 43, 275, -1, -1, -1, + -1, 176, 50, 145, -1, -1, -1, -1, -1, -1, + 289, -1, -1, 292, -1, -1, -1, 192, -1, -1, + -1, -1, 197, -1, -1, -1, -1, 75, -1, -1, + -1, -1, -1, -1, 176, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 219, 220, 145, -1, -1, -1, + 192, -1, -1, -1, -1, 197, -1, -1, -1, 234, + -1, -1, -1, 176, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 176, 8, 192, + -1, 11, -1, -1, 197, 15, 16, 17, 18, 19, + 20, -1, 234, 192, -1, -1, -1, 272, 197, -1, + 275, -1, 381, -1, -1, 35, 219, 220, -1, -1, + -1, -1, -1, 43, 289, -1, -1, 292, -1, -1, + 50, 234, -1, -1, -1, -1, -1, -1, 176, -1, + -1, -1, -1, -1, -1, 234, -1, -1, -1, -1, + -1, -1, -1, -1, 192, 75, -1, 289, -1, 197, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 272, + -1, -1, 275, -1, -1, -1, -1, -1, -1, -1, + -1, 219, 220, -1, -1, -1, 289, -1, -1, 292, + -1, -1, -1, -1, -1, -1, 234, -1, -1, -1, + 289, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 483, -1, 381, 486, 487, 488, + -1, 490, 491, 492, 493, 494, 495, -1, -1, -1, + -1, 500, -1, -1, 272, -1, -1, 275, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 381, + -1, 289, 8, -1, 292, 11, 176, -1, -1, 15, + 16, 17, 18, 19, 20, -1, -1, -1, -1, -1, + -1, -1, 192, -1, -1, -1, -1, 197, 381, 35, + -1, -1, -1, -1, -1, -1, -1, 43, -1, -1, + -1, -1, 381, -1, 50, -1, -1, -1, -1, 219, + 220, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 234, -1, -1, -1, 483, 75, + -1, 486, 487, 488, -1, 490, 491, 492, 493, 494, + 495, -1, -1, -1, -1, 500, -1, -1, -1, -1, + -1, -1, -1, 381, -1, -1, -1, -1, -1, -1, + -1, 483, 272, -1, -1, 275, -1, -1, 490, 491, + 492, 493, 494, 495, -1, -1, -1, -1, -1, 289, + -1, -1, 292, -1, -1, -1, -1, -1, -1, -1, + 483, -1, -1, 486, 487, 488, -1, 490, 491, 492, + 493, 494, 495, -1, 483, -1, -1, 500, -1, -1, + -1, 490, 491, 492, 493, 494, 495, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 176, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 192, -1, -1, -1, + -1, 197, -1, -1, -1, 483, -1, -1, 486, 487, + 488, -1, 490, 491, 492, 493, 494, 495, -1, -1, + -1, 381, 500, 219, 220, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 234, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 272, -1, -1, 275, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 381, -1, 289, -1, -1, 292, -1, -1, -1, - -1, -1, 441, -1, 381, -1, -1, -1, -1, -1, + -1, -1, -1, 289, -1, -1, 292, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 483, -1, -1, 486, 487, 488, -1, + 490, 491, 492, 493, 494, 495, -1, -1, -1, -1, + 500, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 381, -1, -1, -1, 483, -1, -1, 486, 487, 488, - -1, 490, 491, 492, 493, 494, 495, 483, -1, -1, - 486, 487, 488, -1, 490, 491, 492, 493, 494, 495, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 381, -1, -1, -1, -1, - -1, -1, -1, 483, -1, -1, 486, 487, 488, -1, - 490, 491, 492, 493, 494, 495, 483, -1, -1, 486, - 487, 488, -1, 490, 491, 492, 493, 494, 495, -1, - -1, 8, -1, -1, 11, -1, -1, -1, 15, 16, - 17, 18, 19, 20, -1, -1, -1, -1, -1, -1, - -1, -1, 483, -1, -1, 486, 487, 488, 35, 490, - 491, 492, 493, 494, 495, -1, 43, -1, -1, -1, - -1, -1, -1, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 483, 75, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 3, -1, 483, -1, -1, 486, 487, 488, -1, 490, 491, 492, 493, 494, 495, + -1, -1, 498, 21, 22, 23, 24, 25, 26, 27, + 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, + 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, + 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, + 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, + 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, + 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, + 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, + 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, + 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, + 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, + 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, + 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, + 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, + 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, + 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, + 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, + 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, + 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, + 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, + 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, + 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, + 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, + 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, + 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, + 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, + 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, + 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, + 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, + 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, + 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, + 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, + 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, + 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, + 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, + 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, + 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, + 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, + 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, + 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, + 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, + 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, + 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, + 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, + 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, + 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, + 478, 479, 480, 481, 482, 3, -1, -1, -1, -1, + -1, -1, -1, -1, 492, -1, -1, -1, -1, -1, + -1, -1, -1, 21, 22, 23, 24, 25, 26, 27, + 28, -1, 30, 31, 32, -1, -1, -1, -1, -1, + -1, -1, 40, 41, -1, 43, 44, 45, -1, 47, + 48, 49, 50, 51, -1, 53, 54, -1, 56, 57, + 58, 59, 60, 61, -1, -1, 64, 65, 66, 67, + 68, -1, 70, 71, 72, 73, 74, -1, -1, -1, + 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, + -1, 89, 90, 91, 92, 93, 94, -1, -1, 97, + 98, 99, -1, -1, -1, -1, -1, -1, -1, 107, + 108, 109, 110, 111, 112, 113, 114, 115, 116, -1, + 118, -1, 120, 121, 122, 123, 124, 125, -1, 127, + 128, 129, 130, 131, -1, -1, 134, 135, 136, 137, + 138, -1, 140, 141, 142, -1, 144, 145, 146, -1, + 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, + 158, -1, 160, -1, 162, 163, 164, 165, -1, 167, + -1, 169, -1, -1, -1, 173, 174, 175, -1, 177, + -1, 179, -1, 181, 182, 183, -1, 185, 186, 187, + 188, 189, 190, 191, -1, 193, 194, 195, 196, -1, + 198, 199, 200, 201, 202, 203, -1, 205, -1, 207, + 208, 209, 210, 211, 212, 213, 214, -1, 216, -1, + 218, -1, -1, 221, -1, 223, 224, 225, 226, 227, + 228, -1, -1, 231, -1, 233, -1, -1, 236, 237, + 238, -1, -1, 241, 242, 243, 244, 245, 246, 247, + 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, + 258, 259, 260, 261, 262, 263, 264, 265, -1, 267, + 268, 269, 270, 271, -1, 273, 274, -1, 276, -1, + 278, 279, 280, 281, 282, 283, -1, 285, 286, -1, + -1, 289, 290, 291, -1, -1, 294, 295, -1, 297, + -1, 299, 300, 301, 302, 303, 304, 305, 306, 307, + 308, 309, -1, 311, 312, 313, 314, 315, 316, 317, + 318, 319, -1, 321, 322, 323, 324, 325, 326, -1, + 328, 329, 330, 331, 332, 333, 334, 335, -1, 337, + 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, + 348, 349, -1, 351, 352, -1, 354, 355, 356, 357, + 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, + 368, -1, 370, 371, 372, 373, 374, -1, 376, 377, + 378, 379, 380, -1, 382, 383, 384, 385, -1, 387, + 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, + 398, 399, 400, 401, 402, -1, 404, 405, -1, 407, + -1, 409, 410, 411, 412, 413, -1, 415, 416, -1, + -1, 419, 420, 421, 422, 423, -1, 425, 426, 427, + 428, 429, 430, 431, 432, -1, -1, 435, 436, 437, + 438, 439, -1, -1, 442, 443, 444, 445, 446, 447, + 448, -1, 450, -1, 452, 453, 454, 455, 456, -1, + -1, 459, -1, -1, 462, 463, 464, 465, 466, 467, + 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, + 478, 479, 480, 481, 482, 3, 4, 5, -1, -1, + -1, 9, -1, -1, 492, -1, -1, -1, -1, -1, + -1, -1, -1, 21, 22, 23, 24, 25, 26, 27, + 28, -1, 30, 31, 32, -1, -1, -1, -1, -1, + -1, -1, 40, 41, -1, 43, 44, 45, 46, 47, + 48, 49, 50, 51, 52, 53, 54, -1, 56, 57, + 58, 59, 60, 61, -1, -1, 64, 65, 66, 67, + 68, -1, 70, 71, 72, 73, 74, -1, 76, -1, + 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, + -1, 89, 90, 91, 92, 93, 94, -1, 96, 97, + 98, 99, 100, 101, 102, 103, -1, -1, 106, 107, + 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, + 118, -1, 120, 121, 122, 123, 124, 125, -1, 127, + 128, 129, 130, 131, -1, -1, 134, 135, 136, 137, + 138, -1, 140, 141, 142, -1, 144, 145, 146, -1, + 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, + 158, 159, 160, -1, 162, 163, 164, 165, -1, 167, + -1, 169, 170, -1, 172, 173, 174, 175, 176, 177, + -1, 179, -1, 181, 182, 183, -1, 185, 186, 187, + 188, 189, 190, 191, 192, 193, 194, 195, 196, -1, + 198, 199, 200, 201, 202, 203, -1, 205, 206, 207, + 208, 209, 210, 211, 212, 213, 214, -1, 216, -1, + 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, + 228, -1, -1, 231, 232, 233, 234, -1, 236, 237, + 238, -1, -1, 241, 242, 243, 244, 245, 246, 247, + 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, + 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, + 268, 269, 270, 271, -1, 273, 274, 275, 276, -1, + 278, 279, 280, 281, 282, 283, -1, 285, 286, 287, + -1, 289, 290, 291, -1, -1, 294, 295, 296, 297, + 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, + 308, 309, -1, 311, 312, 313, 314, 315, 316, 317, + 318, 319, -1, 321, 322, 323, 324, 325, 326, -1, + 328, 329, 330, 331, 332, 333, 334, 335, -1, 337, + 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, + 348, 349, -1, 351, 352, 353, 354, 355, 356, 357, + 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, + 368, -1, 370, 371, 372, 373, 374, 375, 376, 377, + 378, 379, 380, 381, 382, 383, 384, 385, -1, 387, + 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, + 398, 399, 400, 401, 402, -1, 404, 405, -1, 407, + 408, 409, 410, 411, 412, 413, -1, 415, 416, -1, + -1, 419, 420, 421, 422, 423, 424, 425, 426, 427, + 428, 429, 430, 431, 432, -1, -1, 435, 436, 437, + 438, 439, 440, -1, 442, 443, 444, 445, 446, 447, + 448, -1, 450, 451, 452, 453, 454, 455, 456, -1, + -1, 459, -1, -1, 462, 463, 464, 465, 466, 467, + 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, + 478, 479, 480, 481, 482, 3, 4, 5, -1, -1, + -1, 9, 490, 491, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 21, 22, 23, 24, 25, 26, 27, + 28, -1, 30, 31, 32, -1, -1, -1, -1, -1, + -1, -1, 40, 41, -1, 43, 44, 45, 46, 47, + 48, 49, 50, 51, 52, 53, 54, -1, 56, 57, + 58, 59, 60, 61, -1, -1, 64, 65, 66, 67, + 68, -1, 70, 71, 72, 73, 74, -1, 76, -1, + 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, + -1, 89, 90, 91, 92, 93, 94, -1, 96, 97, + 98, 99, 100, 101, 102, 103, -1, -1, 106, 107, + 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, + 118, -1, 120, 121, 122, 123, 124, 125, -1, 127, + 128, 129, 130, 131, -1, -1, 134, 135, 136, 137, + 138, -1, 140, 141, 142, -1, 144, 145, 146, -1, + 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, + 158, 159, 160, -1, 162, 163, 164, 165, -1, 167, + -1, 169, 170, -1, 172, 173, 174, 175, 176, 177, + -1, 179, -1, 181, 182, 183, -1, 185, 186, 187, + 188, 189, 190, 191, 192, 193, 194, 195, 196, -1, + 198, 199, 200, 201, 202, 203, -1, 205, 206, 207, + 208, 209, 210, 211, 212, 213, 214, -1, 216, -1, + 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, + 228, -1, -1, 231, 232, 233, 234, -1, 236, 237, + 238, -1, -1, 241, 242, 243, 244, 245, 246, 247, + 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, + 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, + 268, 269, 270, 271, -1, 273, 274, 275, 276, -1, + 278, 279, 280, 281, 282, 283, -1, 285, 286, 287, + -1, 289, 290, 291, -1, -1, 294, 295, 296, 297, + 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, + 308, 309, -1, 311, 312, 313, 314, 315, 316, 317, + 318, 319, -1, 321, 322, 323, 324, 325, 326, -1, + 328, 329, 330, 331, 332, 333, 334, 335, -1, 337, + 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, + 348, 349, -1, 351, 352, 353, 354, 355, 356, 357, + 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, + 368, -1, 370, 371, 372, 373, 374, 375, 376, 377, + 378, 379, 380, 381, 382, 383, 384, 385, -1, 387, + 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, + 398, 399, 400, 401, 402, -1, 404, 405, -1, 407, + 408, 409, 410, 411, 412, 413, -1, 415, 416, -1, + -1, 419, 420, 421, 422, 423, 424, 425, 426, 427, + 428, 429, 430, 431, 432, -1, -1, 435, 436, 437, + 438, 439, 440, -1, 442, 443, 444, 445, 446, 447, + 448, -1, 450, 451, 452, 453, 454, 455, 456, -1, + -1, 459, -1, -1, 462, 463, 464, 465, 466, 467, + 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, + 478, 479, 480, 481, 482, 3, 4, 5, -1, -1, + -1, 9, 490, 491, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 21, 22, 23, 24, 25, 26, 27, + 28, -1, 30, 31, 32, -1, -1, -1, -1, -1, + -1, -1, 40, 41, -1, 43, 44, 45, 46, 47, + 48, 49, 50, 51, 52, 53, 54, -1, 56, 57, + 58, 59, 60, 61, -1, -1, 64, 65, 66, 67, + 68, -1, 70, 71, 72, 73, 74, -1, 76, -1, + 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, + -1, 89, 90, 91, 92, 93, 94, -1, 96, 97, + 98, 99, 100, 101, 102, 103, -1, -1, 106, 107, + 108, 109, 110, 111, 112, 113, 114, 115, 116, -1, + 118, -1, 120, 121, 122, 123, 124, 125, -1, 127, + 128, 129, 130, 131, -1, -1, 134, 135, 136, 137, + 138, -1, 140, 141, 142, -1, 144, 145, 146, -1, + 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, + 158, 159, 160, -1, 162, 163, 164, 165, -1, 167, + -1, 169, 170, -1, 172, 173, 174, 175, 176, 177, + -1, 179, -1, 181, 182, 183, -1, 185, 186, 187, + 188, 189, 190, 191, 192, 193, 194, 195, 196, -1, + 198, 199, 200, 201, 202, 203, -1, 205, 206, 207, + 208, 209, 210, 211, 212, 213, 214, -1, 216, -1, + 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, + 228, -1, -1, 231, 232, 233, 234, -1, 236, 237, + 238, -1, -1, 241, 242, 243, 244, 245, 246, 247, + 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, + 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, + 268, 269, 270, 271, -1, 273, 274, 275, 276, -1, + 278, 279, 280, 281, 282, 283, -1, 285, 286, 287, + -1, 289, 290, 291, -1, -1, 294, 295, 296, 297, + 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, + 308, 309, -1, 311, 312, 313, 314, 315, 316, 317, + 318, 319, -1, 321, 322, 323, 324, 325, 326, -1, + 328, 329, 330, 331, 332, 333, 334, 335, -1, 337, + 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, + 348, 349, -1, 351, 352, 353, 354, 355, 356, 357, + 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, + 368, -1, 370, 371, 372, 373, 374, 375, 376, 377, + 378, 379, 380, 381, 382, 383, 384, 385, -1, 387, + 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, + 398, 399, 400, 401, 402, -1, 404, 405, -1, 407, + 408, 409, 410, 411, 412, 413, -1, 415, 416, -1, + -1, 419, 420, 421, 422, 423, 424, 425, 426, 427, + 428, 429, 430, 431, 432, -1, -1, 435, 436, 437, + 438, 439, 440, -1, 442, 443, 444, 445, 446, 447, + 448, -1, 450, 451, 452, 453, 454, 455, 456, -1, + -1, 459, -1, -1, 462, 463, 464, 465, 466, 467, + 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, + 478, 479, 480, 481, 482, -1, -1, 8, -1, -1, + 11, -1, 490, 491, 15, 16, 17, 18, 19, 20, + 8, -1, -1, 11, -1, -1, -1, 15, 16, 17, + 18, 19, 20, -1, 35, -1, -1, -1, 39, -1, + -1, -1, 43, -1, -1, -1, -1, 35, -1, 50, + -1, -1, -1, -1, -1, 43, 8, -1, -1, 11, + -1, -1, 50, 15, 16, 17, 18, 19, 20, 8, + -1, -1, 11, -1, 75, -1, 15, 16, 17, 18, + 19, 20, -1, 35, -1, -1, -1, 75, -1, -1, + -1, 43, -1, -1, -1, -1, 35, -1, 50, 38, + -1, -1, -1, -1, 43, 8, -1, -1, 11, -1, + -1, 50, 15, 16, 17, 18, 19, 20, -1, -1, + -1, -1, -1, 75, -1, 126, -1, -1, -1, -1, + -1, -1, 35, -1, -1, -1, 75, -1, -1, -1, + 43, -1, -1, -1, -1, -1, -1, 50, -1, -1, 8, -1, -1, 11, -1, -1, -1, 15, 16, 17, 18, 19, 20, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 35, -1, 8, - 38, -1, 11, -1, -1, 43, 15, 16, 17, 18, - 19, 20, 50, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 35, -1, -1, -1, - -1, -1, -1, -1, 43, -1, -1, 75, -1, -1, + -1, -1, 75, -1, -1, 176, -1, 35, 166, -1, + 38, -1, -1, 171, -1, 43, -1, -1, 176, -1, + -1, 192, 50, -1, -1, -1, 197, -1, -1, -1, + -1, -1, -1, -1, 192, -1, -1, -1, -1, 197, + -1, -1, -1, 165, -1, -1, -1, 75, 219, 220, + -1, -1, -1, -1, 176, -1, -1, -1, -1, -1, + -1, 219, 220, 234, -1, -1, -1, 176, -1, -1, + 192, -1, -1, -1, -1, 197, 234, -1, -1, -1, + -1, -1, -1, 192, -1, -1, -1, -1, 197, -1, + -1, -1, -1, -1, -1, -1, -1, 219, 220, -1, + -1, 272, -1, 176, 275, -1, -1, -1, -1, -1, + 219, 220, 234, -1, 272, -1, -1, 275, 289, 192, + -1, 292, -1, -1, 197, 234, -1, -1, -1, -1, + -1, 289, -1, -1, 292, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 219, 220, 176, -1, + 272, -1, -1, 275, -1, -1, -1, -1, -1, -1, + -1, 234, -1, 272, 192, -1, 275, 289, -1, 197, + 292, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 289, -1, -1, 292, -1, -1, -1, -1, -1, -1, + -1, 219, 220, 315, -1, -1, -1, -1, -1, 272, + -1, -1, 275, -1, -1, -1, 234, -1, -1, -1, + 381, -1, -1, -1, -1, -1, 289, -1, -1, 292, + -1, -1, -1, 381, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 310, -1, -1, + -1, -1, -1, -1, 272, -1, -1, 275, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 381, + -1, 289, -1, -1, 292, -1, -1, -1, -1, -1, + 441, -1, 381, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 381, -1, + -1, -1, 483, -1, -1, 486, 487, 488, -1, 490, + 491, 492, 493, 494, 495, 483, -1, -1, 486, 487, + 488, -1, 490, 491, 492, 493, 494, 495, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 381, -1, -1, -1, -1, -1, -1, + -1, 483, -1, -1, 486, 487, 488, -1, 490, 491, + 492, 493, 494, 495, 483, -1, -1, 486, 487, 488, + -1, 490, 491, 492, 493, 494, 495, -1, -1, 8, + -1, -1, 11, -1, -1, -1, 15, 16, 17, 18, + 19, 20, -1, -1, -1, -1, -1, -1, -1, -1, + 483, -1, -1, 486, 487, 488, 35, 490, 491, 492, + 493, 494, 495, -1, 43, -1, -1, -1, -1, -1, -1, 50, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 171, -1, -1, -1, -1, 176, - -1, -1, -1, -1, -1, -1, 75, -1, -1, -1, - -1, -1, -1, -1, -1, 192, -1, -1, 8, -1, - 197, 11, -1, -1, -1, 15, 16, 17, 18, 19, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 483, 75, -1, 486, 487, + 488, -1, 490, 491, 492, 493, 494, 495, 8, -1, + -1, 11, -1, -1, -1, 15, 16, 17, 18, 19, 20, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 219, 220, -1, 35, -1, -1, 38, -1, - -1, -1, -1, 43, -1, -1, -1, 234, -1, -1, + -1, -1, -1, -1, -1, 35, -1, 8, 38, -1, + 11, -1, -1, 43, 15, 16, 17, 18, 19, 20, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 176, -1, - -1, -1, -1, -1, -1, 75, -1, -1, -1, -1, - -1, -1, -1, -1, 192, 272, -1, -1, 275, 197, - -1, -1, -1, -1, -1, -1, -1, 176, -1, -1, - -1, -1, 289, -1, -1, 292, -1, -1, -1, -1, - -1, 219, 220, 192, -1, -1, -1, -1, 197, -1, - -1, -1, -1, -1, -1, -1, 234, -1, -1, -1, + -1, -1, -1, -1, 35, -1, -1, -1, -1, -1, + -1, -1, 43, -1, -1, 75, -1, -1, -1, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 219, 220, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 234, -1, -1, -1, -1, + -1, -1, 171, -1, -1, -1, -1, 176, -1, -1, + -1, -1, -1, -1, 75, -1, -1, -1, -1, -1, + -1, -1, -1, 192, -1, -1, 8, -1, 197, 11, + -1, -1, -1, 15, 16, 17, 18, 19, 20, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 219, 220, -1, 35, -1, -1, 38, -1, -1, -1, + -1, 43, -1, -1, -1, 234, -1, -1, 50, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 176, -1, -1, -1, + -1, -1, -1, 75, -1, -1, -1, -1, -1, -1, + -1, -1, 192, 272, -1, -1, 275, 197, -1, -1, + 8, -1, -1, 11, -1, 176, -1, 15, -1, -1, + 289, -1, -1, 292, -1, -1, -1, -1, -1, 219, + 220, 192, -1, -1, -1, -1, 197, -1, -1, -1, + -1, -1, -1, -1, 234, 43, -1, -1, -1, -1, + -1, -1, 50, -1, -1, -1, -1, -1, 219, 220, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 234, -1, -1, -1, 75, -1, -1, + -1, -1, 272, -1, -1, 275, -1, -1, -1, -1, + -1, -1, -1, -1, 176, -1, -1, 8, -1, 289, + 11, -1, 292, -1, 15, 16, 17, 18, 19, 20, + 192, 272, 381, -1, 275, 197, -1, -1, -1, -1, + -1, -1, -1, -1, 35, -1, -1, -1, 289, -1, + -1, 292, 43, -1, -1, -1, -1, 219, 220, 50, + -1, -1, -1, -1, -1, -1, -1, 145, -1, -1, + -1, -1, 234, -1, -1, -1, -1, -1, -1, -1, + 8, -1, -1, 11, 75, -1, -1, 15, 16, 17, + 18, 19, 20, 8, -1, -1, 11, -1, 176, -1, + 15, -1, -1, 18, 19, 20, -1, 35, -1, -1, + 272, 381, -1, 275, 192, 43, -1, -1, -1, 197, + 35, -1, 50, -1, -1, -1, -1, 289, 43, -1, + 292, -1, -1, -1, 483, 50, -1, 486, 487, 488, + 381, 490, 491, 492, 493, 494, 495, 75, -1, -1, + -1, -1, -1, -1, -1, -1, 234, -1, -1, -1, + 75, -1, -1, -1, -1, -1, -1, 8, -1, -1, + 11, -1, -1, 414, 15, -1, -1, 18, 19, 20, + -1, -1, -1, -1, -1, 176, -1, -1, -1, -1, + -1, -1, -1, -1, 35, -1, -1, -1, -1, -1, + -1, 192, 43, -1, -1, -1, 197, -1, -1, 50, + -1, 289, -1, 483, -1, -1, 486, 487, 488, 381, + 490, 491, 492, 493, 494, 495, -1, -1, 219, 220, + -1, -1, -1, -1, 75, -1, -1, -1, -1, -1, + -1, -1, 483, 234, -1, 486, 487, 488, 176, 490, + 491, 492, 493, 494, 495, 8, -1, -1, 11, -1, + -1, 176, 15, -1, 192, -1, -1, -1, -1, 197, + -1, -1, -1, -1, -1, -1, -1, 192, -1, -1, + -1, 272, 197, -1, 275, -1, -1, -1, -1, -1, + 43, 219, 220, -1, -1, -1, -1, 50, 289, -1, + -1, 292, -1, 381, 219, 220, 234, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 234, + -1, 483, 75, -1, 486, 487, 488, -1, 490, 491, + 492, 493, 494, 495, -1, 176, -1, -1, -1, -1, -1, -1, -1, -1, 272, -1, -1, 275, -1, -1, - -1, -1, -1, -1, -1, -1, 176, -1, -1, 8, - -1, 289, 11, -1, 292, -1, 15, 16, 17, 18, - 19, 20, 192, 272, 381, -1, 275, 197, -1, -1, - -1, -1, -1, -1, -1, -1, 35, -1, -1, -1, - 289, -1, -1, 292, 43, -1, -1, -1, -1, 219, - 220, 50, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 234, -1, -1, -1, -1, -1, - -1, -1, 8, -1, -1, 11, 75, -1, -1, 15, - 16, 17, 18, 19, 20, 8, -1, -1, 11, -1, - -1, -1, 15, -1, -1, 18, 19, 20, -1, 35, - -1, -1, 272, 381, -1, 275, -1, 43, -1, -1, - -1, -1, 35, -1, 50, -1, -1, -1, -1, 289, - 43, -1, 292, -1, -1, -1, 483, 50, -1, 486, - 487, 488, 381, 490, 491, 492, 493, 494, 495, 75, + -1, 192, -1, -1, -1, -1, 197, 272, -1, -1, + 275, 289, -1, -1, 292, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 289, -1, -1, 292, 219, 220, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 75, -1, -1, -1, -1, -1, -1, 8, - -1, -1, 11, -1, -1, 414, 15, -1, -1, 18, - 19, 20, -1, -1, -1, -1, -1, 176, -1, -1, + 381, -1, 145, 234, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 483, -1, -1, -1, -1, + -1, -1, 490, 491, 492, 493, 494, 495, -1, -1, + -1, -1, -1, 176, -1, -1, -1, -1, -1, -1, + -1, 272, -1, -1, 275, -1, -1, -1, -1, 192, + -1, -1, -1, -1, 197, -1, -1, -1, 289, -1, + -1, -1, -1, 381, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 381, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 192, 43, -1, -1, -1, 197, -1, - -1, 50, -1, -1, -1, 483, -1, -1, 486, 487, - 488, 381, 490, 491, 492, 493, 494, 495, -1, -1, - 219, 220, -1, -1, -1, -1, 75, -1, -1, -1, - -1, -1, -1, -1, 483, 234, -1, 486, 487, 488, - 176, 490, 491, 492, 493, 494, 495, -1, -1, -1, - -1, -1, -1, 176, -1, -1, 192, -1, -1, -1, - -1, 197, -1, -1, -1, -1, -1, -1, -1, 192, - -1, -1, -1, 272, 197, -1, 275, -1, -1, -1, - -1, -1, -1, 219, 220, -1, -1, -1, -1, -1, - 289, -1, -1, 292, -1, -1, 219, 220, 234, -1, + -1, 234, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 483, -1, -1, 486, 487, 488, -1, 490, + 491, 492, 493, 494, 495, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 234, -1, 483, -1, -1, 486, 487, 488, -1, - 490, 491, 492, 493, 494, 495, -1, 176, -1, -1, - -1, -1, -1, -1, -1, -1, 272, -1, -1, 275, - -1, -1, -1, 192, -1, -1, -1, -1, 197, 272, - -1, -1, 275, 289, -1, -1, 292, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 289, -1, -1, -1, - 219, 220, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 381, -1, -1, 234, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 289, -1, -1, -1, + 381, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 483, -1, -1, 486, 487, + 488, -1, 490, 491, 492, 493, 494, 495, 483, -1, + -1, 486, 487, 488, -1, 490, 491, 492, 493, 494, + 495, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 275, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 289, -1, -1, -1, -1, 381, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 381, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 483, -1, -1, 486, 487, 488, -1, 490, + 491, 492, 493, 494, 495, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 483, -1, -1, 486, 487, 488, - -1, 490, 491, 492, 493, 494, 495, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 381, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 483, -1, -1, - 486, 487, 488, -1, 490, 491, 492, 493, 494, 495, - 483, -1, -1, 486, 487, 488, -1, 490, 491, 492, - 493, 494, 495, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 3, -1, 5, -1, -1, + 483, -1, -1, -1, -1, -1, -1, 490, 491, 492, + 493, 494, 495, 21, 22, 23, 24, 25, 26, 27, + 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, + 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, + 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, + 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, + 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, + 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, + 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, + 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, + 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, + 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, + 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, + 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, + 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, + 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, + 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, + 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, + 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, + 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, + 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, + 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, + 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, + 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, + 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, + 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, + 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, + 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, + 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, + 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, + 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, + 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, + 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, + 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, + 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, + 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, + 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, + 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, + 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, + 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, + 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, + 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, + 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, + 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, + 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, + 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, + 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, + 478, 479, 480, 481, 482, 3, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 21, 22, 23, 24, 25, 26, 27, + 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, + 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, + 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, + 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, + 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, + 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, + 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, + 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, + 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, + 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, + 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, + 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, + 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, + 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, + 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, + 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, + 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, + 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, + 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, + 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, + 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, + 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, + 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, + 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, + 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, + 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, + 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, + 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, + 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, + 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, + 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, + 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, + 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, + 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, + 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, + 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, + 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, + 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, + 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, + 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, + 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, + 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, + 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, + 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, + 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, + 478, 479, 480, 481, 482, 3, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 21, 22, 23, 24, 25, 26, 27, + 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, + 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, + 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, + 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, + 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, + 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, + 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, + 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, + 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, + 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, + 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, + 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, + 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, + 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, + 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, + 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, + 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, + 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, + 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, + 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, + 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, + 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, + 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, + 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, + 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, + 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, + 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, + 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, + 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, + 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, + 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, + 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, + 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, + 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, + 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, + 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, + 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, + 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, + 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, + 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, + 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, + 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, + 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, + 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, + 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, + 478, 479, 480, 481, 482, 3, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 21, 22, 23, 24, 25, 26, 27, + 28, -1, 30, 31, 32, -1, -1, -1, -1, -1, + -1, -1, 40, 41, -1, 43, 44, 45, 46, 47, + 48, 49, 50, 51, 52, 53, 54, -1, 56, 57, + 58, 59, 60, 61, -1, 63, 64, 65, 66, 67, + 68, -1, 70, 71, 72, 73, 74, -1, 76, -1, + 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, + -1, 89, 90, 91, 92, 93, 94, -1, 96, 97, + 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, + 108, 109, 110, 111, 112, 113, 114, 115, 116, -1, + 118, -1, 120, 121, 122, 123, 124, 125, -1, 127, + 128, 129, 130, 131, -1, -1, 134, 135, 136, 137, + 138, -1, 140, 141, 142, -1, 144, 145, 146, -1, + 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, + 158, -1, 160, -1, 162, 163, 164, 165, -1, 167, + -1, 169, 170, -1, 172, 173, 174, 175, 176, 177, + -1, 179, -1, 181, 182, 183, -1, 185, 186, 187, + 188, 189, 190, 191, 192, 193, 194, 195, 196, -1, + 198, 199, 200, 201, 202, 203, -1, 205, 206, 207, + 208, 209, 210, 211, 212, 213, 214, -1, 216, -1, + 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, + 228, -1, -1, 231, 232, 233, 234, -1, 236, 237, + 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, + 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, + 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, + 268, 269, 270, 271, -1, 273, 274, 275, 276, -1, + 278, 279, 280, 281, 282, 283, -1, 285, 286, -1, + -1, 289, 290, 291, -1, -1, 294, 295, 296, 297, + 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, + 308, 309, -1, 311, 312, 313, 314, 315, 316, 317, + 318, 319, -1, 321, 322, 323, 324, 325, 326, -1, + 328, 329, 330, 331, 332, 333, 334, 335, -1, 337, + 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, + 348, 349, -1, 351, 352, 353, 354, 355, 356, 357, + 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, + 368, -1, 370, 371, 372, 373, 374, 375, 376, 377, + 378, 379, 380, 381, 382, 383, 384, 385, -1, 387, + 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, + 398, 399, 400, 401, 402, -1, 404, 405, -1, 407, + 408, 409, 410, 411, 412, 413, -1, 415, 416, -1, + -1, 419, 420, 421, 422, 423, -1, 425, 426, 427, + 428, 429, 430, 431, 432, -1, -1, 435, 436, 437, + 438, 439, 440, -1, 442, 443, 444, 445, 446, 447, + 448, -1, 450, 451, 452, 453, 454, 455, 456, -1, + -1, 459, -1, -1, 462, 463, 464, 465, 466, 467, + 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, + 478, 479, 480, 481, 482, 3, -1, 5, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 21, 22, 23, 24, 25, 26, 27, + 28, -1, 30, 31, 32, -1, -1, -1, -1, -1, + -1, -1, 40, 41, -1, 43, 44, 45, 46, 47, + 48, 49, 50, 51, 52, 53, 54, -1, 56, 57, + 58, 59, 60, 61, -1, -1, 64, 65, 66, 67, + 68, -1, 70, 71, 72, 73, 74, -1, 76, -1, + 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, + -1, 89, 90, 91, 92, 93, 94, -1, 96, 97, + 98, 99, 100, 101, 102, 103, -1, -1, 106, 107, + 108, 109, 110, 111, 112, 113, 114, 115, 116, -1, + 118, -1, 120, 121, 122, 123, 124, 125, -1, 127, + 128, 129, 130, 131, -1, -1, 134, 135, 136, 137, + 138, -1, 140, 141, 142, -1, 144, 145, 146, -1, + 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, + 158, 159, 160, -1, 162, 163, 164, 165, -1, 167, + -1, 169, 170, -1, 172, 173, 174, 175, 176, 177, + -1, 179, -1, 181, 182, 183, -1, 185, 186, 187, + 188, 189, 190, 191, 192, 193, 194, 195, 196, -1, + 198, 199, 200, 201, 202, 203, -1, 205, 206, 207, + 208, 209, 210, 211, 212, 213, 214, -1, 216, -1, + 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, + 228, -1, -1, 231, 232, 233, 234, -1, 236, 237, + 238, -1, -1, 241, 242, 243, 244, 245, 246, 247, + 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, + 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, + 268, 269, 270, 271, -1, 273, 274, 275, 276, -1, + 278, 279, 280, 281, 282, 283, -1, 285, 286, 287, + -1, 289, 290, 291, -1, -1, 294, 295, 296, 297, + 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, + 308, 309, -1, 311, 312, 313, 314, 315, 316, 317, + 318, 319, -1, 321, 322, 323, 324, 325, 326, -1, + 328, 329, 330, 331, 332, 333, 334, 335, -1, 337, + 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, + 348, 349, -1, 351, 352, 353, 354, 355, 356, 357, + 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, + 368, -1, 370, 371, 372, 373, 374, 375, 376, 377, + 378, 379, 380, 381, 382, 383, 384, 385, -1, 387, + 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, + 398, 399, 400, 401, 402, -1, 404, 405, -1, 407, + 408, 409, 410, 411, 412, 413, -1, 415, 416, -1, + -1, 419, 420, 421, 422, 423, 424, 425, 426, 427, + 428, 429, 430, 431, 432, -1, -1, 435, 436, 437, + 438, 439, 440, -1, 442, 443, 444, 445, 446, 447, + 448, -1, 450, 451, 452, 453, 454, 455, 456, -1, + -1, 459, -1, -1, 462, 463, 464, 465, 466, 467, + 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, + 478, 479, 480, 481, 482, 3, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 21, 22, 23, 24, 25, 26, 27, + 28, -1, 30, 31, 32, 33, 34, -1, -1, -1, + -1, -1, 40, 41, -1, 43, 44, 45, 46, 47, + 48, 49, 50, 51, 52, 53, 54, -1, 56, 57, + 58, 59, 60, 61, -1, -1, 64, 65, 66, 67, + 68, -1, 70, 71, 72, 73, 74, -1, 76, -1, + 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, + -1, 89, 90, 91, 92, 93, 94, -1, 96, 97, + 98, 99, 100, 101, 102, 103, -1, -1, 106, 107, + 108, 109, 110, 111, 112, 113, 114, 115, 116, -1, + 118, -1, 120, 121, 122, 123, 124, 125, -1, 127, + 128, 129, 130, 131, -1, -1, 134, 135, 136, 137, + 138, -1, 140, 141, 142, -1, 144, 145, 146, -1, + 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, + 158, -1, 160, -1, 162, 163, 164, 165, -1, 167, + -1, 169, 170, -1, 172, 173, 174, 175, 176, 177, + -1, 179, -1, 181, 182, 183, -1, 185, 186, 187, + 188, 189, 190, 191, 192, 193, 194, 195, 196, -1, + 198, 199, 200, 201, 202, 203, -1, 205, 206, 207, + 208, 209, 210, 211, 212, 213, 214, -1, 216, -1, + 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, + 228, -1, -1, 231, 232, 233, 234, -1, 236, 237, + 238, -1, -1, 241, 242, 243, 244, 245, 246, 247, + 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, + 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, + 268, 269, 270, 271, -1, 273, 274, 275, 276, -1, + 278, 279, 280, 281, 282, 283, -1, 285, 286, -1, + -1, 289, 290, 291, -1, -1, 294, 295, 296, 297, + 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, + 308, 309, -1, 311, 312, 313, 314, 315, 316, 317, + 318, 319, -1, 321, 322, 323, 324, 325, 326, -1, + 328, 329, 330, 331, 332, 333, 334, 335, -1, 337, + 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, + 348, 349, -1, 351, 352, 353, 354, 355, 356, 357, + 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, + 368, -1, 370, 371, 372, 373, 374, 375, 376, 377, + 378, 379, 380, 381, 382, 383, 384, 385, -1, 387, + 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, + 398, 399, 400, 401, 402, -1, 404, 405, -1, 407, + 408, 409, 410, 411, 412, 413, -1, 415, 416, -1, + -1, 419, 420, 421, 422, 423, -1, 425, 426, 427, + 428, 429, 430, 431, 432, -1, -1, 435, 436, 437, + 438, 439, 440, -1, 442, 443, 444, 445, 446, 447, + 448, -1, 450, 451, 452, 453, 454, 455, 456, -1, + -1, 459, -1, -1, 462, 463, 464, 465, 466, 467, + 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, + 478, 479, 480, 481, 482, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 21, 22, 23, 24, 25, 26, 27, + 28, -1, 30, 31, 32, -1, -1, -1, -1, -1, + -1, -1, 40, 41, -1, 43, 44, 45, 46, 47, + 48, 49, 50, 51, 52, 53, 54, -1, 56, 57, + 58, 59, 60, 61, -1, -1, 64, 65, 66, 67, + 68, -1, 70, 71, 72, 73, 74, -1, 76, -1, + 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, + -1, 89, 90, 91, 92, 93, 94, -1, 96, 97, + 98, 99, 100, 101, 102, 103, -1, -1, 106, 107, + 108, 109, 110, 111, 112, 113, 114, 115, 116, -1, + 118, -1, 120, 121, 122, 123, 124, 125, -1, 127, + 128, 129, 130, 131, -1, -1, 134, 135, 136, 137, + 138, -1, 140, 141, 142, -1, 144, 145, 146, -1, + 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, + 158, -1, 160, -1, 162, 163, 164, 165, -1, 167, + -1, 169, 170, -1, 172, 173, 174, 175, 176, 177, + -1, 179, -1, 181, 182, 183, -1, 185, 186, 187, + 188, 189, 190, 191, 192, 193, 194, 195, 196, -1, + 198, 199, 200, 201, 202, 203, -1, 205, 206, 207, + 208, 209, 210, 211, 212, 213, 214, -1, 216, -1, + 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, + 228, -1, -1, 231, 232, 233, 234, -1, 236, 237, + 238, -1, -1, 241, 242, 243, 244, 245, 246, 247, + 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, + 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, + 268, 269, 270, 271, -1, 273, 274, 275, 276, -1, + 278, 279, 280, 281, 282, 283, -1, 285, 286, -1, + -1, 289, 290, 291, -1, -1, 294, 295, 296, 297, + 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, + 308, 309, -1, 311, 312, 313, 314, 315, 316, 317, + 318, 319, -1, 321, 322, 323, 324, 325, 326, -1, + 328, 329, 330, 331, 332, 333, 334, 335, -1, 337, + 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, + 348, 349, -1, 351, 352, 353, 354, 355, 356, 357, + 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, + 368, -1, 370, 371, 372, 373, 374, 375, 376, 377, + 378, 379, 380, 381, 382, 383, 384, 385, -1, 387, + 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, + 398, 399, 400, 401, 402, -1, 404, 405, -1, 407, + 408, 409, 410, 411, 412, 413, -1, 415, 416, -1, + -1, 419, 420, 421, 422, 423, -1, 425, 426, 427, + 428, 429, 430, 431, 432, -1, -1, 435, 436, 437, + 438, 439, 440, -1, 442, 443, 444, 445, 446, 447, + 448, -1, 450, 451, 452, 453, 454, 455, 456, -1, + -1, 459, -1, -1, 462, 463, 464, 465, 466, 467, + 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, + 478, 479, 480, 481, 482, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 3, - -1, 5, -1, -1, 483, -1, -1, 486, 487, 488, - -1, 490, 491, 492, 493, 494, 495, 21, 22, 23, - 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, - 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, - 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, - 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, - 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, - 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, - 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, - 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, - 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, - 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, - 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, - 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, - 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, - 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, - 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, - 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, - 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, - 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, - 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, - 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, - 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, - 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, - 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, - 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, - 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, - 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, - 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, - 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, - 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, - 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, - 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, - 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, - 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, - 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, - 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, - 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, - 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, - 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, - 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, - 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, - 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, - 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, - 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, - 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, - 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, - 474, 475, 476, 477, 478, 479, 480, 481, 482, 3, + -1, -1, -1, 21, 22, 23, 24, 25, 26, 27, + 28, -1, 30, 31, 32, -1, -1, -1, -1, -1, + -1, -1, 40, 41, -1, 43, 44, 45, -1, 47, + 48, 49, 50, 51, -1, 53, 54, -1, 56, 57, + 58, 59, 60, 61, -1, -1, 64, 65, 66, 67, + 68, 69, 70, 71, 72, 73, 74, -1, -1, 77, + 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, + 88, 89, 90, 91, 92, 93, 94, -1, -1, 97, + 98, 99, -1, -1, -1, -1, -1, -1, -1, 107, + 108, 109, 110, 111, 112, 113, 114, 115, 116, -1, + 118, -1, 120, 121, 122, 123, 124, 125, -1, 127, + 128, 129, 130, 131, -1, -1, 134, 135, 136, 137, + 138, -1, 140, 141, 142, -1, 144, 145, 146, -1, + 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, + 158, -1, 160, -1, 162, 163, 164, 165, -1, 167, + 168, 169, -1, -1, -1, 173, 174, 175, -1, 177, + -1, 179, -1, 181, 182, 183, -1, 185, 186, 187, + 188, 189, 190, 191, -1, 193, 194, 195, 196, -1, + 198, 199, 200, 201, 202, 203, -1, 205, -1, 207, + 208, 209, 210, 211, 212, 213, 214, -1, 216, -1, + 218, -1, -1, 221, -1, 223, 224, 225, 226, 227, + 228, -1, -1, 231, -1, 233, -1, -1, 236, 237, + 238, -1, -1, 241, 242, 243, 244, 245, 246, 247, + 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, + 258, 259, 260, 261, 262, 263, 264, 265, -1, 267, + 268, 269, 270, 271, -1, 273, 274, -1, 276, -1, + 278, 279, 280, 281, 282, 283, -1, 285, 286, -1, + -1, 289, 290, 291, -1, -1, 294, 295, -1, 297, + -1, 299, 300, 301, 302, 303, 304, 305, 306, 307, + 308, 309, -1, 311, 312, 313, 314, 315, 316, 317, + 318, 319, 320, 321, 322, 323, 324, 325, 326, -1, + 328, 329, 330, 331, 332, 333, 334, 335, -1, 337, + 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, + 348, 349, -1, 351, 352, -1, 354, 355, 356, 357, + 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, + 368, -1, 370, 371, 372, 373, 374, -1, 376, 377, + 378, 379, 380, -1, 382, 383, 384, 385, -1, 387, + 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, + 398, 399, 400, 401, 402, -1, 404, 405, -1, 407, + -1, 409, 410, 411, 412, 413, -1, 415, 416, -1, + -1, 419, 420, 421, 422, 423, -1, 425, 426, 427, + 428, 429, 430, 431, 432, -1, 434, 435, 436, 437, + 438, 439, -1, -1, 442, 443, 444, 445, 446, 447, + 448, -1, 450, -1, 452, 453, 454, 455, 456, -1, + -1, 459, -1, -1, 462, 463, 464, 465, 466, 467, + 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, + 478, 479, 480, 481, 482, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 21, 22, 23, - 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, - 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, - 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, - 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, - 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, - 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, - 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, - 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, - 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, - 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, - 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, - 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, - 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, - 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, - 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, - 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, - 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, - 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, - 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, - 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, - 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, - 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, - 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, - 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, - 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, - 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, - 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, - 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, - 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, - 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, - 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, - 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, - 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, - 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, - 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, - 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, - 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, - 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, - 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, - 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, - 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, - 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, - 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, - 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, - 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, - 474, 475, 476, 477, 478, 479, 480, 481, 482, 3, + -1, -1, -1, 21, 22, 23, 24, 25, 26, 27, + 28, -1, 30, 31, 32, -1, -1, -1, -1, -1, + -1, -1, 40, 41, -1, 43, 44, 45, -1, 47, + 48, 49, 50, 51, -1, 53, 54, -1, 56, 57, + 58, 59, 60, 61, -1, -1, 64, 65, 66, 67, + 68, 69, 70, 71, 72, 73, 74, -1, -1, -1, + 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, + 88, 89, 90, 91, 92, 93, 94, -1, -1, 97, + 98, 99, -1, -1, -1, -1, -1, -1, -1, 107, + 108, 109, 110, 111, 112, 113, 114, 115, 116, -1, + 118, -1, 120, 121, 122, 123, 124, 125, -1, 127, + 128, 129, 130, 131, -1, -1, 134, 135, 136, 137, + 138, -1, 140, 141, 142, -1, 144, 145, 146, -1, + 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, + 158, -1, 160, -1, 162, 163, 164, 165, -1, 167, + 168, 169, -1, -1, -1, 173, 174, 175, -1, 177, + -1, 179, -1, 181, 182, 183, -1, 185, 186, 187, + 188, 189, 190, 191, -1, 193, 194, 195, 196, -1, + 198, 199, 200, 201, 202, 203, -1, 205, -1, 207, + 208, 209, 210, 211, 212, 213, 214, -1, 216, -1, + 218, -1, -1, 221, -1, 223, 224, 225, 226, 227, + 228, -1, -1, 231, -1, 233, 234, -1, 236, 237, + 238, -1, -1, 241, 242, 243, 244, 245, 246, 247, + 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, + 258, 259, 260, 261, 262, 263, 264, 265, -1, 267, + 268, 269, 270, 271, -1, 273, 274, -1, 276, -1, + 278, 279, 280, 281, 282, 283, -1, 285, 286, -1, + -1, 289, 290, 291, -1, -1, 294, 295, -1, 297, + -1, 299, 300, 301, 302, 303, 304, 305, 306, 307, + 308, 309, -1, 311, 312, 313, 314, 315, 316, 317, + 318, 319, 320, 321, 322, 323, 324, 325, 326, -1, + 328, 329, 330, 331, 332, 333, 334, 335, -1, 337, + 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, + 348, 349, -1, 351, 352, -1, 354, 355, 356, 357, + 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, + 368, -1, 370, 371, 372, 373, 374, -1, 376, 377, + 378, 379, 380, -1, 382, 383, 384, 385, -1, 387, + 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, + 398, 399, 400, 401, 402, -1, 404, 405, -1, 407, + -1, 409, 410, 411, 412, 413, -1, 415, 416, -1, + -1, 419, 420, 421, 422, 423, -1, 425, 426, 427, + 428, 429, 430, 431, 432, -1, 434, 435, 436, 437, + 438, 439, -1, -1, 442, 443, 444, 445, 446, 447, + 448, -1, 450, -1, 452, 453, 454, 455, 456, -1, + -1, 459, -1, -1, 462, 463, 464, 465, 466, 467, + 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, + 478, 479, 480, 481, 482, 3, -1, 5, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 21, 22, 23, - 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, - 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, - 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, - 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, - 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, - 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, - 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, - 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, - 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, - 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, - 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, - 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, - 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, - 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, - 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, - 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, - 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, - 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, - 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, - 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, - 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, - 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, - 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, - 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, - 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, - 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, - 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, - 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, - 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, - 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, - 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, - 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, - 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, - 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, - 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, - 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, - 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, - 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, - 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, - 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, - 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, - 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, - 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, - 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, - 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, - 474, 475, 476, 477, 478, 479, 480, 481, 482, 3, + -1, -1, -1, 21, 22, 23, 24, 25, 26, 27, + 28, -1, 30, 31, 32, 33, 34, -1, -1, -1, + -1, -1, 40, 41, -1, 43, 44, 45, -1, 47, + 48, 49, 50, 51, -1, 53, 54, -1, 56, 57, + 58, 59, 60, 61, -1, -1, 64, 65, 66, 67, + 68, -1, 70, 71, 72, 73, 74, -1, -1, -1, + 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, + -1, 89, 90, 91, 92, 93, 94, -1, -1, 97, + 98, 99, -1, -1, -1, -1, -1, -1, -1, 107, + 108, 109, 110, 111, 112, 113, 114, 115, 116, -1, + 118, -1, 120, 121, 122, 123, 124, 125, -1, 127, + 128, 129, 130, 131, -1, -1, 134, 135, 136, 137, + 138, -1, 140, 141, 142, -1, 144, 145, 146, -1, + 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, + 158, -1, 160, -1, 162, 163, 164, 165, -1, 167, + -1, 169, -1, -1, -1, 173, 174, 175, -1, 177, + -1, 179, -1, 181, 182, 183, -1, 185, 186, 187, + 188, 189, 190, 191, -1, 193, 194, 195, 196, -1, + 198, 199, 200, 201, 202, 203, -1, 205, -1, 207, + 208, 209, 210, 211, 212, 213, 214, -1, 216, -1, + 218, -1, -1, 221, -1, 223, 224, 225, 226, 227, + 228, -1, -1, 231, -1, 233, -1, -1, 236, 237, + 238, -1, -1, 241, 242, 243, 244, 245, 246, 247, + 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, + 258, 259, 260, 261, 262, 263, 264, 265, -1, 267, + 268, 269, 270, 271, -1, 273, 274, -1, 276, -1, + 278, 279, 280, 281, 282, 283, -1, 285, 286, -1, + -1, 289, 290, 291, -1, -1, 294, 295, -1, 297, + -1, 299, 300, 301, 302, 303, 304, 305, 306, 307, + 308, 309, -1, 311, 312, 313, 314, 315, 316, 317, + 318, 319, -1, 321, 322, 323, 324, 325, 326, -1, + 328, 329, 330, 331, 332, 333, 334, 335, -1, 337, + 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, + 348, 349, -1, 351, 352, -1, 354, 355, 356, 357, + 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, + 368, -1, 370, 371, 372, 373, 374, -1, 376, 377, + 378, 379, 380, -1, 382, 383, 384, 385, -1, 387, + 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, + 398, 399, 400, 401, 402, -1, 404, 405, -1, 407, + -1, 409, 410, 411, 412, 413, -1, 415, 416, -1, + -1, 419, 420, 421, 422, 423, -1, 425, 426, 427, + 428, 429, 430, 431, 432, -1, -1, 435, 436, 437, + 438, 439, -1, -1, 442, 443, 444, 445, 446, 447, + 448, -1, 450, -1, 452, 453, 454, 455, 456, -1, + -1, 459, -1, -1, 462, 463, 464, 465, 466, 467, + 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, + 478, 479, 480, 481, 482, 3, -1, 5, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 21, 22, 23, - 24, 25, 26, 27, 28, -1, 30, 31, 32, -1, - -1, -1, -1, -1, -1, -1, 40, 41, -1, 43, - 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, - 54, -1, 56, 57, 58, 59, 60, 61, -1, 63, - 64, 65, 66, 67, 68, -1, 70, 71, 72, 73, - 74, -1, 76, -1, 78, 79, 80, 81, 82, 83, - 84, 85, 86, 87, -1, 89, 90, 91, 92, 93, - 94, -1, 96, 97, 98, 99, 100, 101, 102, 103, - 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, - 114, 115, 116, -1, 118, -1, 120, 121, 122, 123, - 124, 125, -1, 127, 128, 129, 130, 131, -1, -1, - 134, 135, 136, 137, 138, -1, 140, 141, 142, -1, - 144, 145, 146, -1, 148, 149, 150, 151, 152, 153, - 154, 155, 156, 157, 158, -1, 160, -1, 162, 163, - 164, 165, -1, 167, -1, 169, 170, -1, 172, 173, - 174, 175, 176, 177, -1, 179, -1, 181, 182, 183, - -1, 185, 186, 187, 188, 189, 190, 191, 192, 193, - 194, 195, 196, -1, 198, 199, 200, 201, 202, 203, - -1, 205, 206, 207, 208, 209, 210, 211, 212, 213, - 214, -1, 216, -1, 218, 219, 220, 221, 222, 223, - 224, 225, 226, 227, 228, -1, -1, 231, 232, 233, - 234, -1, 236, 237, 238, 239, 240, 241, 242, 243, - 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, - 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, - 264, 265, 266, 267, 268, 269, 270, 271, -1, 273, - 274, 275, 276, -1, 278, 279, 280, 281, 282, 283, - -1, 285, 286, -1, -1, 289, 290, 291, -1, -1, - 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, - 304, 305, 306, 307, 308, 309, -1, 311, 312, 313, - 314, 315, 316, 317, 318, 319, -1, 321, 322, 323, - 324, 325, 326, -1, 328, 329, 330, 331, 332, 333, - 334, 335, -1, 337, 338, 339, 340, 341, 342, 343, - 344, 345, 346, 347, 348, 349, -1, 351, 352, 353, - 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, - 364, 365, 366, 367, 368, -1, 370, 371, 372, 373, - 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, - 384, 385, -1, 387, 388, 389, 390, 391, 392, 393, - 394, 395, 396, 397, 398, 399, 400, 401, 402, -1, - 404, 405, -1, 407, 408, 409, 410, 411, 412, 413, - -1, 415, 416, -1, -1, 419, 420, 421, 422, 423, - -1, 425, 426, 427, 428, 429, 430, 431, 432, -1, - -1, 435, 436, 437, 438, 439, 440, -1, 442, 443, - 444, 445, 446, 447, 448, -1, 450, 451, 452, 453, - 454, 455, 456, -1, -1, 459, -1, -1, 462, 463, - 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, - 474, 475, 476, 477, 478, 479, 480, 481, 482, 3, - -1, 5, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 21, 22, 23, - 24, 25, 26, 27, 28, -1, 30, 31, 32, -1, - -1, -1, -1, -1, -1, -1, 40, 41, -1, 43, - 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, - 54, -1, 56, 57, 58, 59, 60, 61, -1, -1, - 64, 65, 66, 67, 68, -1, 70, 71, 72, 73, - 74, -1, 76, -1, 78, 79, 80, 81, 82, 83, - 84, 85, 86, 87, -1, 89, 90, 91, 92, 93, - 94, -1, 96, 97, 98, 99, 100, 101, 102, 103, - -1, -1, 106, 107, 108, 109, 110, 111, 112, 113, - 114, 115, 116, -1, 118, -1, 120, 121, 122, 123, - 124, 125, -1, 127, 128, 129, 130, 131, -1, -1, - 134, 135, 136, 137, 138, -1, 140, 141, 142, -1, - 144, 145, 146, -1, 148, 149, 150, 151, 152, 153, - 154, 155, 156, 157, 158, 159, 160, -1, 162, 163, - 164, 165, -1, 167, -1, 169, 170, -1, 172, 173, - 174, 175, 176, 177, -1, 179, -1, 181, 182, 183, - -1, 185, 186, 187, 188, 189, 190, 191, 192, 193, - 194, 195, 196, -1, 198, 199, 200, 201, 202, 203, - -1, 205, 206, 207, 208, 209, 210, 211, 212, 213, - 214, -1, 216, -1, 218, 219, 220, 221, 222, 223, - 224, 225, 226, 227, 228, -1, -1, 231, 232, 233, - 234, -1, 236, 237, 238, -1, -1, 241, 242, 243, - 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, - 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, - 264, 265, 266, 267, 268, 269, 270, 271, -1, 273, - 274, 275, 276, -1, 278, 279, 280, 281, 282, 283, - -1, 285, 286, 287, -1, 289, 290, 291, -1, -1, - 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, - 304, 305, 306, 307, 308, 309, -1, 311, 312, 313, - 314, 315, 316, 317, 318, 319, -1, 321, 322, 323, - 324, 325, 326, -1, 328, 329, 330, 331, 332, 333, - 334, 335, -1, 337, 338, 339, 340, 341, 342, 343, - 344, 345, 346, 347, 348, 349, -1, 351, 352, 353, - 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, - 364, 365, 366, 367, 368, -1, 370, 371, 372, 373, - 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, - 384, 385, -1, 387, 388, 389, 390, 391, 392, 393, - 394, 395, 396, 397, 398, 399, 400, 401, 402, -1, - 404, 405, -1, 407, 408, 409, 410, 411, 412, 413, - -1, 415, 416, -1, -1, 419, 420, 421, 422, 423, - 424, 425, 426, 427, 428, 429, 430, 431, 432, -1, - -1, 435, 436, 437, 438, 439, 440, -1, 442, 443, - 444, 445, 446, 447, 448, -1, 450, 451, 452, 453, - 454, 455, 456, -1, -1, 459, -1, -1, 462, 463, - 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, - 474, 475, 476, 477, 478, 479, 480, 481, 482, 3, + -1, -1, -1, 21, 22, 23, 24, 25, 26, 27, + 28, 29, 30, 31, 32, -1, -1, -1, -1, -1, + -1, -1, 40, 41, -1, 43, 44, 45, -1, 47, + 48, 49, 50, 51, -1, 53, 54, -1, 56, 57, + 58, 59, 60, 61, -1, -1, 64, 65, 66, 67, + 68, -1, 70, 71, 72, 73, 74, -1, -1, -1, + 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, + -1, 89, 90, 91, 92, 93, 94, -1, -1, 97, + 98, 99, -1, -1, -1, -1, -1, -1, -1, 107, + 108, 109, 110, 111, 112, 113, 114, 115, 116, -1, + 118, -1, 120, 121, 122, 123, 124, 125, -1, 127, + 128, 129, 130, 131, -1, -1, 134, 135, 136, 137, + 138, -1, 140, 141, 142, -1, 144, 145, 146, -1, + 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, + 158, -1, 160, -1, 162, 163, 164, 165, -1, 167, + -1, 169, -1, -1, -1, 173, 174, 175, -1, 177, + -1, 179, -1, 181, 182, 183, -1, 185, 186, 187, + 188, 189, 190, 191, -1, 193, 194, 195, 196, -1, + 198, 199, 200, 201, 202, 203, -1, 205, -1, 207, + 208, 209, 210, 211, 212, 213, 214, -1, 216, -1, + 218, -1, -1, 221, -1, 223, 224, 225, 226, 227, + 228, -1, -1, 231, -1, 233, -1, -1, 236, 237, + 238, -1, -1, 241, 242, 243, 244, 245, 246, 247, + 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, + 258, 259, 260, 261, 262, 263, 264, 265, -1, 267, + 268, 269, 270, 271, -1, 273, 274, -1, 276, -1, + 278, 279, 280, 281, 282, 283, -1, 285, 286, -1, + -1, 289, 290, 291, -1, -1, 294, 295, -1, 297, + -1, 299, 300, 301, 302, 303, 304, 305, 306, 307, + 308, 309, -1, 311, 312, 313, 314, 315, 316, 317, + 318, 319, -1, 321, 322, 323, 324, 325, 326, -1, + 328, 329, 330, 331, 332, 333, 334, 335, -1, 337, + 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, + 348, 349, -1, 351, 352, -1, 354, 355, 356, 357, + 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, + 368, -1, 370, 371, 372, 373, 374, -1, 376, 377, + 378, 379, 380, -1, 382, 383, 384, 385, -1, 387, + 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, + 398, 399, 400, 401, 402, -1, 404, 405, -1, 407, + -1, 409, 410, 411, 412, 413, -1, 415, 416, -1, + -1, 419, 420, 421, 422, 423, -1, 425, 426, 427, + 428, 429, 430, 431, 432, -1, -1, 435, 436, 437, + 438, 439, -1, -1, 442, 443, 444, 445, 446, 447, + 448, -1, 450, -1, 452, 453, 454, 455, 456, -1, + -1, 459, -1, -1, 462, 463, 464, 465, 466, 467, + 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, + 478, 479, 480, 481, 482, 3, -1, 5, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 21, 22, 23, - 24, 25, 26, 27, 28, -1, 30, 31, 32, 33, - 34, -1, -1, -1, -1, -1, 40, 41, -1, 43, - 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, - 54, -1, 56, 57, 58, 59, 60, 61, -1, -1, - 64, 65, 66, 67, 68, -1, 70, 71, 72, 73, - 74, -1, 76, -1, 78, 79, 80, 81, 82, 83, - 84, 85, 86, 87, -1, 89, 90, 91, 92, 93, - 94, -1, 96, 97, 98, 99, 100, 101, 102, 103, - -1, -1, 106, 107, 108, 109, 110, 111, 112, 113, - 114, 115, 116, -1, 118, -1, 120, 121, 122, 123, - 124, 125, -1, 127, 128, 129, 130, 131, -1, -1, - 134, 135, 136, 137, 138, -1, 140, 141, 142, -1, - 144, 145, 146, -1, 148, 149, 150, 151, 152, 153, - 154, 155, 156, 157, 158, -1, 160, -1, 162, 163, - 164, 165, -1, 167, -1, 169, 170, -1, 172, 173, - 174, 175, 176, 177, -1, 179, -1, 181, 182, 183, - -1, 185, 186, 187, 188, 189, 190, 191, 192, 193, - 194, 195, 196, -1, 198, 199, 200, 201, 202, 203, - -1, 205, 206, 207, 208, 209, 210, 211, 212, 213, - 214, -1, 216, -1, 218, 219, 220, 221, 222, 223, - 224, 225, 226, 227, 228, -1, -1, 231, 232, 233, - 234, -1, 236, 237, 238, -1, -1, 241, 242, 243, - 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, - 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, - 264, 265, 266, 267, 268, 269, 270, 271, -1, 273, - 274, 275, 276, -1, 278, 279, 280, 281, 282, 283, - -1, 285, 286, -1, -1, 289, 290, 291, -1, -1, - 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, - 304, 305, 306, 307, 308, 309, -1, 311, 312, 313, - 314, 315, 316, 317, 318, 319, -1, 321, 322, 323, - 324, 325, 326, -1, 328, 329, 330, 331, 332, 333, - 334, 335, -1, 337, 338, 339, 340, 341, 342, 343, - 344, 345, 346, 347, 348, 349, -1, 351, 352, 353, - 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, - 364, 365, 366, 367, 368, -1, 370, 371, 372, 373, - 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, - 384, 385, -1, 387, 388, 389, 390, 391, 392, 393, - 394, 395, 396, 397, 398, 399, 400, 401, 402, -1, - 404, 405, -1, 407, 408, 409, 410, 411, 412, 413, - -1, 415, 416, -1, -1, 419, 420, 421, 422, 423, - -1, 425, 426, 427, 428, 429, 430, 431, 432, -1, - -1, 435, 436, 437, 438, 439, 440, -1, 442, 443, - 444, 445, 446, 447, 448, -1, 450, 451, 452, 453, - 454, 455, 456, -1, -1, 459, -1, -1, 462, 463, - 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, - 474, 475, 476, 477, 478, 479, 480, 481, 482, 3, + -1, -1, -1, 21, 22, 23, 24, 25, 26, 27, + 28, -1, 30, 31, 32, -1, -1, -1, -1, -1, + -1, -1, 40, 41, -1, 43, 44, 45, -1, 47, + 48, 49, 50, 51, -1, 53, 54, -1, 56, 57, + 58, 59, 60, 61, -1, -1, 64, 65, 66, 67, + 68, -1, 70, 71, 72, 73, 74, -1, -1, -1, + 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, + -1, 89, 90, 91, 92, 93, 94, -1, -1, 97, + 98, 99, -1, -1, -1, -1, -1, -1, -1, 107, + 108, 109, 110, 111, 112, 113, 114, 115, 116, -1, + 118, -1, 120, 121, 122, 123, 124, 125, -1, 127, + 128, 129, 130, 131, -1, -1, 134, 135, 136, 137, + 138, -1, 140, 141, 142, -1, 144, 145, 146, -1, + 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, + 158, -1, 160, -1, 162, 163, 164, 165, -1, 167, + -1, 169, -1, -1, -1, 173, 174, 175, -1, 177, + -1, 179, -1, 181, 182, 183, -1, 185, 186, 187, + 188, 189, 190, 191, -1, 193, 194, 195, 196, -1, + 198, 199, 200, 201, 202, 203, -1, 205, -1, 207, + 208, 209, 210, 211, 212, 213, 214, -1, 216, -1, + 218, -1, -1, 221, -1, 223, 224, 225, 226, 227, + 228, -1, -1, 231, -1, 233, -1, -1, 236, 237, + 238, -1, -1, 241, 242, 243, 244, 245, 246, 247, + 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, + 258, 259, 260, 261, 262, 263, 264, 265, -1, 267, + 268, 269, 270, 271, -1, 273, 274, -1, 276, -1, + 278, 279, 280, 281, 282, 283, -1, 285, 286, -1, + 288, 289, 290, 291, -1, -1, 294, 295, -1, 297, + -1, 299, 300, 301, 302, 303, 304, 305, 306, 307, + 308, 309, -1, 311, 312, 313, 314, 315, 316, 317, + 318, 319, -1, 321, 322, 323, 324, 325, 326, -1, + 328, 329, 330, 331, 332, 333, 334, 335, -1, 337, + 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, + 348, 349, -1, 351, 352, -1, 354, 355, 356, 357, + 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, + 368, -1, 370, 371, 372, 373, 374, -1, 376, 377, + 378, 379, 380, -1, 382, 383, 384, 385, -1, 387, + 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, + 398, 399, 400, 401, 402, -1, 404, 405, -1, 407, + -1, 409, 410, 411, 412, 413, -1, 415, 416, -1, + -1, 419, 420, 421, 422, 423, -1, 425, 426, 427, + 428, 429, 430, 431, 432, -1, -1, 435, 436, 437, + 438, 439, -1, -1, 442, 443, 444, 445, 446, 447, + 448, -1, 450, -1, 452, 453, 454, 455, 456, -1, + -1, 459, -1, -1, 462, 463, 464, 465, 466, 467, + 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, + 478, 479, 480, 481, 482, 3, -1, 5, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 21, 22, 23, - 24, 25, 26, 27, 28, -1, 30, 31, 32, -1, - -1, -1, -1, -1, -1, -1, 40, 41, -1, 43, - 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, - 54, -1, 56, 57, 58, 59, 60, 61, -1, -1, - 64, 65, 66, 67, 68, -1, 70, 71, 72, 73, - 74, -1, 76, -1, 78, 79, 80, 81, 82, 83, - 84, 85, 86, 87, -1, 89, 90, 91, 92, 93, - 94, -1, 96, 97, 98, 99, 100, 101, 102, 103, - -1, -1, 106, 107, 108, 109, 110, 111, 112, 113, - 114, 115, 116, -1, 118, -1, 120, 121, 122, 123, - 124, 125, -1, 127, 128, 129, 130, 131, -1, -1, - 134, 135, 136, 137, 138, -1, 140, 141, 142, -1, - 144, 145, 146, -1, 148, 149, 150, 151, 152, 153, - 154, 155, 156, 157, 158, -1, 160, -1, 162, 163, - 164, 165, -1, 167, -1, 169, 170, -1, 172, 173, - 174, 175, 176, 177, -1, 179, -1, 181, 182, 183, - -1, 185, 186, 187, 188, 189, 190, 191, 192, 193, - 194, 195, 196, -1, 198, 199, 200, 201, 202, 203, - -1, 205, 206, 207, 208, 209, 210, 211, 212, 213, - 214, -1, 216, -1, 218, 219, 220, 221, 222, 223, - 224, 225, 226, 227, 228, -1, -1, 231, 232, 233, - 234, -1, 236, 237, 238, -1, -1, 241, 242, 243, - 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, - 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, - 264, 265, 266, 267, 268, 269, 270, 271, -1, 273, - 274, 275, 276, -1, 278, 279, 280, 281, 282, 283, - -1, 285, 286, -1, -1, 289, 290, 291, -1, -1, - 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, - 304, 305, 306, 307, 308, 309, -1, 311, 312, 313, - 314, 315, 316, 317, 318, 319, -1, 321, 322, 323, - 324, 325, 326, -1, 328, 329, 330, 331, 332, 333, - 334, 335, -1, 337, 338, 339, 340, 341, 342, 343, - 344, 345, 346, 347, 348, 349, -1, 351, 352, 353, - 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, - 364, 365, 366, 367, 368, -1, 370, 371, 372, 373, - 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, - 384, 385, -1, 387, 388, 389, 390, 391, 392, 393, - 394, 395, 396, 397, 398, 399, 400, 401, 402, -1, - 404, 405, -1, 407, 408, 409, 410, 411, 412, 413, - -1, 415, 416, -1, -1, 419, 420, 421, 422, 423, - -1, 425, 426, 427, 428, 429, 430, 431, 432, -1, - -1, 435, 436, 437, 438, 439, 440, -1, 442, 443, - 444, 445, 446, 447, 448, -1, 450, 451, 452, 453, - 454, 455, 456, -1, -1, 459, -1, -1, 462, 463, - 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, - 474, 475, 476, 477, 478, 479, 480, 481, 482, 3, + -1, -1, -1, 21, 22, 23, 24, 25, 26, 27, + 28, -1, 30, 31, 32, -1, -1, -1, -1, -1, + -1, -1, 40, 41, -1, 43, 44, 45, -1, 47, + 48, 49, 50, 51, -1, 53, 54, -1, 56, 57, + 58, 59, 60, 61, -1, -1, 64, 65, 66, 67, + 68, -1, 70, 71, 72, 73, 74, -1, -1, -1, + 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, + -1, 89, 90, 91, 92, 93, 94, -1, -1, 97, + 98, 99, -1, -1, -1, -1, -1, -1, -1, 107, + 108, 109, 110, 111, 112, 113, 114, 115, 116, -1, + 118, -1, 120, 121, 122, 123, 124, 125, -1, 127, + 128, 129, 130, 131, -1, -1, 134, 135, 136, 137, + 138, -1, 140, 141, 142, -1, 144, 145, 146, -1, + 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, + 158, -1, 160, -1, 162, 163, 164, 165, -1, 167, + -1, 169, -1, -1, -1, 173, 174, 175, -1, 177, + -1, 179, -1, 181, 182, 183, -1, 185, 186, 187, + 188, 189, 190, 191, -1, 193, 194, 195, 196, -1, + 198, 199, 200, 201, 202, 203, -1, 205, -1, 207, + 208, 209, 210, 211, 212, 213, 214, -1, 216, -1, + 218, -1, -1, 221, -1, 223, 224, 225, 226, 227, + 228, -1, -1, 231, -1, 233, -1, -1, 236, 237, + 238, -1, -1, 241, 242, 243, 244, 245, 246, 247, + 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, + 258, 259, 260, 261, 262, 263, 264, 265, -1, 267, + 268, 269, 270, 271, -1, 273, 274, -1, 276, -1, + 278, 279, 280, 281, 282, 283, -1, 285, 286, -1, + 288, 289, 290, 291, -1, -1, 294, 295, -1, 297, + -1, 299, 300, 301, 302, 303, 304, 305, 306, 307, + 308, 309, -1, 311, 312, 313, 314, 315, 316, 317, + 318, 319, -1, 321, 322, 323, 324, 325, 326, -1, + 328, 329, 330, 331, 332, 333, 334, 335, -1, 337, + 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, + 348, 349, -1, 351, 352, -1, 354, 355, 356, 357, + 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, + 368, -1, 370, 371, 372, 373, 374, -1, 376, 377, + 378, 379, 380, -1, 382, 383, 384, 385, -1, 387, + 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, + 398, 399, 400, 401, 402, -1, 404, 405, -1, 407, + -1, 409, 410, 411, 412, 413, -1, 415, 416, -1, + -1, 419, 420, 421, 422, 423, -1, 425, 426, 427, + 428, 429, 430, 431, 432, -1, -1, 435, 436, 437, + 438, 439, -1, -1, 442, 443, 444, 445, 446, 447, + 448, -1, 450, -1, 452, 453, 454, 455, 456, -1, + -1, 459, -1, -1, 462, 463, 464, 465, 466, 467, + 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, + 478, 479, 480, 481, 482, 3, -1, 5, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 21, 22, 23, - 24, 25, 26, 27, 28, -1, 30, 31, 32, -1, - -1, -1, -1, -1, -1, -1, 40, 41, -1, 43, - 44, 45, -1, 47, 48, 49, 50, 51, -1, 53, - 54, -1, 56, 57, 58, 59, 60, 61, -1, -1, - 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, - 74, -1, -1, 77, 78, 79, 80, 81, 82, 83, - -1, 85, 86, 87, 88, 89, 90, 91, 92, 93, - 94, -1, -1, 97, 98, 99, -1, -1, -1, -1, - -1, -1, -1, 107, 108, 109, 110, 111, 112, 113, - 114, 115, 116, -1, 118, -1, 120, 121, 122, 123, - 124, 125, -1, 127, 128, 129, 130, 131, -1, -1, - 134, 135, 136, 137, 138, -1, 140, 141, 142, -1, - 144, 145, 146, -1, 148, 149, 150, 151, 152, 153, - 154, 155, 156, 157, 158, -1, 160, -1, 162, 163, - 164, 165, -1, 167, 168, 169, -1, -1, -1, 173, - 174, 175, -1, 177, -1, 179, -1, 181, 182, 183, - -1, 185, 186, 187, 188, 189, 190, 191, -1, 193, - 194, 195, 196, -1, 198, 199, 200, 201, 202, 203, - -1, 205, -1, 207, 208, 209, 210, 211, 212, 213, - 214, -1, 216, -1, 218, -1, -1, 221, -1, 223, - 224, 225, 226, 227, 228, -1, -1, 231, -1, 233, - -1, -1, 236, 237, 238, -1, -1, 241, 242, 243, - 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, - 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, - 264, 265, -1, 267, 268, 269, 270, 271, -1, 273, - 274, -1, 276, -1, 278, 279, 280, 281, 282, 283, - -1, 285, 286, -1, -1, 289, 290, 291, -1, -1, - 294, 295, -1, 297, -1, 299, 300, 301, 302, 303, - 304, 305, 306, 307, 308, 309, -1, 311, 312, 313, - 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, - 324, 325, 326, -1, 328, 329, 330, 331, 332, 333, - 334, 335, -1, 337, 338, 339, 340, 341, 342, 343, - 344, 345, 346, 347, 348, 349, -1, 351, 352, -1, - 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, - 364, 365, 366, 367, 368, -1, 370, 371, 372, 373, - 374, -1, 376, 377, 378, 379, 380, -1, 382, 383, - 384, 385, -1, 387, 388, 389, 390, 391, 392, 393, - 394, 395, 396, 397, 398, 399, 400, 401, 402, -1, - 404, 405, -1, 407, -1, 409, 410, 411, 412, 413, - -1, 415, 416, -1, -1, 419, 420, 421, 422, 423, - -1, 425, 426, 427, 428, 429, 430, 431, 432, -1, - 434, 435, 436, 437, 438, 439, -1, -1, 442, 443, - 444, 445, 446, 447, 448, -1, 450, -1, 452, 453, - 454, 455, 456, -1, -1, 459, -1, -1, 462, 463, - 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, - 474, 475, 476, 477, 478, 479, 480, 481, 482, 3, + -1, -1, -1, 21, 22, 23, 24, 25, 26, 27, + 28, 29, 30, 31, 32, -1, -1, -1, -1, -1, + -1, -1, 40, 41, -1, 43, 44, 45, -1, 47, + 48, 49, 50, 51, -1, 53, 54, -1, 56, 57, + 58, 59, 60, 61, -1, -1, 64, 65, 66, 67, + 68, -1, 70, 71, 72, 73, 74, -1, -1, -1, + 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, + -1, 89, 90, 91, 92, 93, 94, -1, -1, 97, + 98, 99, -1, -1, -1, -1, -1, -1, -1, 107, + 108, 109, 110, 111, 112, 113, 114, 115, 116, -1, + 118, -1, 120, 121, 122, 123, 124, 125, -1, 127, + 128, 129, 130, 131, -1, -1, 134, 135, 136, 137, + 138, -1, 140, 141, 142, -1, 144, 145, 146, -1, + 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, + 158, -1, 160, -1, 162, 163, 164, 165, -1, 167, + -1, 169, -1, -1, -1, 173, 174, 175, -1, 177, + -1, 179, -1, 181, 182, 183, -1, 185, 186, 187, + 188, 189, 190, 191, -1, 193, 194, 195, 196, -1, + 198, 199, 200, 201, 202, 203, -1, 205, -1, 207, + 208, 209, 210, 211, 212, 213, 214, -1, 216, -1, + 218, -1, -1, 221, -1, 223, 224, 225, 226, 227, + 228, -1, -1, 231, -1, 233, -1, -1, 236, 237, + 238, -1, -1, 241, 242, 243, 244, 245, 246, 247, + 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, + 258, 259, 260, 261, 262, 263, 264, 265, -1, 267, + 268, 269, 270, 271, -1, 273, 274, -1, 276, -1, + 278, 279, 280, 281, 282, 283, -1, 285, 286, -1, + -1, 289, 290, 291, -1, -1, 294, 295, -1, 297, + -1, 299, 300, 301, 302, 303, 304, 305, 306, 307, + 308, 309, -1, 311, 312, 313, 314, 315, 316, 317, + 318, 319, -1, 321, 322, 323, 324, 325, 326, -1, + 328, 329, 330, 331, 332, 333, 334, 335, -1, 337, + 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, + 348, 349, -1, 351, 352, -1, 354, 355, 356, 357, + 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, + 368, -1, 370, 371, 372, 373, 374, -1, 376, 377, + 378, 379, 380, -1, 382, 383, 384, 385, -1, 387, + 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, + 398, 399, 400, 401, 402, -1, 404, 405, -1, 407, + -1, 409, 410, 411, 412, 413, -1, 415, 416, -1, + -1, 419, 420, 421, 422, 423, -1, 425, 426, 427, + 428, 429, 430, 431, 432, -1, -1, 435, 436, 437, + 438, 439, -1, -1, 442, 443, 444, 445, 446, 447, + 448, -1, 450, -1, 452, 453, 454, 455, 456, -1, + -1, 459, -1, -1, 462, 463, 464, 465, 466, 467, + 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, + 478, 479, 480, 481, 482, 3, -1, 5, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 21, 22, 23, - 24, 25, 26, 27, 28, -1, 30, 31, 32, -1, - -1, -1, -1, -1, -1, -1, 40, 41, -1, 43, - 44, 45, -1, 47, 48, 49, 50, 51, -1, 53, - 54, -1, 56, 57, 58, 59, 60, 61, -1, -1, - 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, - 74, -1, -1, -1, 78, 79, 80, 81, 82, 83, - -1, 85, 86, 87, 88, 89, 90, 91, 92, 93, - 94, -1, -1, 97, 98, 99, -1, -1, -1, -1, - -1, -1, -1, 107, 108, 109, 110, 111, 112, 113, - 114, 115, 116, -1, 118, -1, 120, 121, 122, 123, - 124, 125, -1, 127, 128, 129, 130, 131, -1, -1, - 134, 135, 136, 137, 138, -1, 140, 141, 142, -1, - 144, 145, 146, -1, 148, 149, 150, 151, 152, 153, - 154, 155, 156, 157, 158, -1, 160, -1, 162, 163, - 164, 165, -1, 167, 168, 169, -1, -1, -1, 173, - 174, 175, -1, 177, -1, 179, -1, 181, 182, 183, - -1, 185, 186, 187, 188, 189, 190, 191, -1, 193, - 194, 195, 196, -1, 198, 199, 200, 201, 202, 203, - -1, 205, -1, 207, 208, 209, 210, 211, 212, 213, - 214, -1, 216, -1, 218, -1, -1, 221, -1, 223, - 224, 225, 226, 227, 228, -1, -1, 231, -1, 233, - 234, -1, 236, 237, 238, -1, -1, 241, 242, 243, - 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, - 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, - 264, 265, -1, 267, 268, 269, 270, 271, -1, 273, - 274, -1, 276, -1, 278, 279, 280, 281, 282, 283, - -1, 285, 286, -1, -1, 289, 290, 291, -1, -1, - 294, 295, -1, 297, -1, 299, 300, 301, 302, 303, - 304, 305, 306, 307, 308, 309, -1, 311, 312, 313, - 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, - 324, 325, 326, -1, 328, 329, 330, 331, 332, 333, - 334, 335, -1, 337, 338, 339, 340, 341, 342, 343, - 344, 345, 346, 347, 348, 349, -1, 351, 352, -1, - 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, - 364, 365, 366, 367, 368, -1, 370, 371, 372, 373, - 374, -1, 376, 377, 378, 379, 380, -1, 382, 383, - 384, 385, -1, 387, 388, 389, 390, 391, 392, 393, - 394, 395, 396, 397, 398, 399, 400, 401, 402, -1, - 404, 405, -1, 407, -1, 409, 410, 411, 412, 413, - -1, 415, 416, -1, -1, 419, 420, 421, 422, 423, - -1, 425, 426, 427, 428, 429, 430, 431, 432, -1, - 434, 435, 436, 437, 438, 439, -1, -1, 442, 443, - 444, 445, 446, 447, 448, -1, 450, -1, 452, 453, - 454, 455, 456, -1, -1, 459, -1, -1, 462, 463, - 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, - 474, 475, 476, 477, 478, 479, 480, 481, 482, 3, - -1, 5, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 21, 22, 23, - 24, 25, 26, 27, 28, -1, 30, 31, 32, 33, - 34, -1, -1, -1, -1, -1, 40, 41, -1, 43, - 44, 45, -1, 47, 48, 49, 50, 51, -1, 53, - 54, -1, 56, 57, 58, 59, 60, 61, -1, -1, - 64, 65, 66, 67, 68, -1, 70, 71, 72, 73, - 74, -1, -1, -1, 78, 79, 80, 81, 82, 83, - -1, 85, 86, 87, -1, 89, 90, 91, 92, 93, - 94, -1, -1, 97, 98, 99, -1, -1, -1, -1, - -1, -1, -1, 107, 108, 109, 110, 111, 112, 113, - 114, 115, 116, -1, 118, -1, 120, 121, 122, 123, - 124, 125, -1, 127, 128, 129, 130, 131, -1, -1, - 134, 135, 136, 137, 138, -1, 140, 141, 142, -1, - 144, 145, 146, -1, 148, 149, 150, 151, 152, 153, - 154, 155, 156, 157, 158, -1, 160, -1, 162, 163, - 164, 165, -1, 167, -1, 169, -1, -1, -1, 173, - 174, 175, -1, 177, -1, 179, -1, 181, 182, 183, - -1, 185, 186, 187, 188, 189, 190, 191, -1, 193, - 194, 195, 196, -1, 198, 199, 200, 201, 202, 203, - -1, 205, -1, 207, 208, 209, 210, 211, 212, 213, - 214, -1, 216, -1, 218, -1, -1, 221, -1, 223, - 224, 225, 226, 227, 228, -1, -1, 231, -1, 233, - -1, -1, 236, 237, 238, -1, -1, 241, 242, 243, - 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, - 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, - 264, 265, -1, 267, 268, 269, 270, 271, -1, 273, - 274, -1, 276, -1, 278, 279, 280, 281, 282, 283, - -1, 285, 286, -1, -1, 289, 290, 291, -1, -1, - 294, 295, -1, 297, -1, 299, 300, 301, 302, 303, - 304, 305, 306, 307, 308, 309, -1, 311, 312, 313, - 314, 315, 316, 317, 318, 319, -1, 321, 322, 323, - 324, 325, 326, -1, 328, 329, 330, 331, 332, 333, - 334, 335, -1, 337, 338, 339, 340, 341, 342, 343, - 344, 345, 346, 347, 348, 349, -1, 351, 352, -1, - 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, - 364, 365, 366, 367, 368, -1, 370, 371, 372, 373, - 374, -1, 376, 377, 378, 379, 380, -1, 382, 383, - 384, 385, -1, 387, 388, 389, 390, 391, 392, 393, - 394, 395, 396, 397, 398, 399, 400, 401, 402, -1, - 404, 405, -1, 407, -1, 409, 410, 411, 412, 413, - -1, 415, 416, -1, -1, 419, 420, 421, 422, 423, - -1, 425, 426, 427, 428, 429, 430, 431, 432, -1, - -1, 435, 436, 437, 438, 439, -1, -1, 442, 443, - 444, 445, 446, 447, 448, -1, 450, -1, 452, 453, - 454, 455, 456, -1, -1, 459, -1, -1, 462, 463, - 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, - 474, 475, 476, 477, 478, 479, 480, 481, 482, 3, - -1, 5, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 21, 22, 23, - 24, 25, 26, 27, 28, 29, 30, 31, 32, -1, - -1, -1, -1, -1, -1, -1, 40, 41, -1, 43, - 44, 45, -1, 47, 48, 49, 50, 51, -1, 53, - 54, -1, 56, 57, 58, 59, 60, 61, -1, -1, - 64, 65, 66, 67, 68, -1, 70, 71, 72, 73, - 74, -1, -1, -1, 78, 79, 80, 81, 82, 83, - -1, 85, 86, 87, -1, 89, 90, 91, 92, 93, - 94, -1, -1, 97, 98, 99, -1, -1, -1, -1, - -1, -1, -1, 107, 108, 109, 110, 111, 112, 113, - 114, 115, 116, -1, 118, -1, 120, 121, 122, 123, - 124, 125, -1, 127, 128, 129, 130, 131, -1, -1, - 134, 135, 136, 137, 138, -1, 140, 141, 142, -1, - 144, 145, 146, -1, 148, 149, 150, 151, 152, 153, - 154, 155, 156, 157, 158, -1, 160, -1, 162, 163, - 164, 165, -1, 167, -1, 169, -1, -1, -1, 173, - 174, 175, -1, 177, -1, 179, -1, 181, 182, 183, - -1, 185, 186, 187, 188, 189, 190, 191, -1, 193, - 194, 195, 196, -1, 198, 199, 200, 201, 202, 203, - -1, 205, -1, 207, 208, 209, 210, 211, 212, 213, - 214, -1, 216, -1, 218, -1, -1, 221, -1, 223, - 224, 225, 226, 227, 228, -1, -1, 231, -1, 233, - -1, -1, 236, 237, 238, -1, -1, 241, 242, 243, - 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, - 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, - 264, 265, -1, 267, 268, 269, 270, 271, -1, 273, - 274, -1, 276, -1, 278, 279, 280, 281, 282, 283, - -1, 285, 286, -1, -1, 289, 290, 291, -1, -1, - 294, 295, -1, 297, -1, 299, 300, 301, 302, 303, - 304, 305, 306, 307, 308, 309, -1, 311, 312, 313, - 314, 315, 316, 317, 318, 319, -1, 321, 322, 323, - 324, 325, 326, -1, 328, 329, 330, 331, 332, 333, - 334, 335, -1, 337, 338, 339, 340, 341, 342, 343, - 344, 345, 346, 347, 348, 349, -1, 351, 352, -1, - 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, - 364, 365, 366, 367, 368, -1, 370, 371, 372, 373, - 374, -1, 376, 377, 378, 379, 380, -1, 382, 383, - 384, 385, -1, 387, 388, 389, 390, 391, 392, 393, - 394, 395, 396, 397, 398, 399, 400, 401, 402, -1, - 404, 405, -1, 407, -1, 409, 410, 411, 412, 413, - -1, 415, 416, -1, -1, 419, 420, 421, 422, 423, - -1, 425, 426, 427, 428, 429, 430, 431, 432, -1, - -1, 435, 436, 437, 438, 439, -1, -1, 442, 443, - 444, 445, 446, 447, 448, -1, 450, -1, 452, 453, - 454, 455, 456, -1, -1, 459, -1, -1, 462, 463, - 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, - 474, 475, 476, 477, 478, 479, 480, 481, 482, 3, - -1, 5, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 21, 22, 23, - 24, 25, 26, 27, 28, -1, 30, 31, 32, -1, - -1, -1, -1, -1, -1, -1, 40, 41, -1, 43, - 44, 45, -1, 47, 48, 49, 50, 51, -1, 53, - 54, -1, 56, 57, 58, 59, 60, 61, -1, -1, - 64, 65, 66, 67, 68, -1, 70, 71, 72, 73, - 74, -1, -1, -1, 78, 79, 80, 81, 82, 83, - -1, 85, 86, 87, -1, 89, 90, 91, 92, 93, - 94, -1, -1, 97, 98, 99, -1, -1, -1, -1, - -1, -1, -1, 107, 108, 109, 110, 111, 112, 113, - 114, 115, 116, -1, 118, -1, 120, 121, 122, 123, - 124, 125, -1, 127, 128, 129, 130, 131, -1, -1, - 134, 135, 136, 137, 138, -1, 140, 141, 142, -1, - 144, 145, 146, -1, 148, 149, 150, 151, 152, 153, - 154, 155, 156, 157, 158, -1, 160, -1, 162, 163, - 164, 165, -1, 167, -1, 169, -1, -1, -1, 173, - 174, 175, -1, 177, -1, 179, -1, 181, 182, 183, - -1, 185, 186, 187, 188, 189, 190, 191, -1, 193, - 194, 195, 196, -1, 198, 199, 200, 201, 202, 203, - -1, 205, -1, 207, 208, 209, 210, 211, 212, 213, - 214, -1, 216, -1, 218, -1, -1, 221, -1, 223, - 224, 225, 226, 227, 228, -1, -1, 231, -1, 233, - -1, -1, 236, 237, 238, -1, -1, 241, 242, 243, - 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, - 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, - 264, 265, -1, 267, 268, 269, 270, 271, -1, 273, - 274, -1, 276, -1, 278, 279, 280, 281, 282, 283, - -1, 285, 286, -1, 288, 289, 290, 291, -1, -1, - 294, 295, -1, 297, -1, 299, 300, 301, 302, 303, - 304, 305, 306, 307, 308, 309, -1, 311, 312, 313, - 314, 315, 316, 317, 318, 319, -1, 321, 322, 323, - 324, 325, 326, -1, 328, 329, 330, 331, 332, 333, - 334, 335, -1, 337, 338, 339, 340, 341, 342, 343, - 344, 345, 346, 347, 348, 349, -1, 351, 352, -1, - 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, - 364, 365, 366, 367, 368, -1, 370, 371, 372, 373, - 374, -1, 376, 377, 378, 379, 380, -1, 382, 383, - 384, 385, -1, 387, 388, 389, 390, 391, 392, 393, - 394, 395, 396, 397, 398, 399, 400, 401, 402, -1, - 404, 405, -1, 407, -1, 409, 410, 411, 412, 413, - -1, 415, 416, -1, -1, 419, 420, 421, 422, 423, - -1, 425, 426, 427, 428, 429, 430, 431, 432, -1, - -1, 435, 436, 437, 438, 439, -1, -1, 442, 443, - 444, 445, 446, 447, 448, -1, 450, -1, 452, 453, - 454, 455, 456, -1, -1, 459, -1, -1, 462, 463, - 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, - 474, 475, 476, 477, 478, 479, 480, 481, 482, 3, - -1, 5, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 21, 22, 23, - 24, 25, 26, 27, 28, -1, 30, 31, 32, -1, - -1, -1, -1, -1, -1, -1, 40, 41, -1, 43, - 44, 45, -1, 47, 48, 49, 50, 51, -1, 53, - 54, -1, 56, 57, 58, 59, 60, 61, -1, -1, - 64, 65, 66, 67, 68, -1, 70, 71, 72, 73, - 74, -1, -1, -1, 78, 79, 80, 81, 82, 83, - -1, 85, 86, 87, -1, 89, 90, 91, 92, 93, - 94, -1, -1, 97, 98, 99, -1, -1, -1, -1, - -1, -1, -1, 107, 108, 109, 110, 111, 112, 113, - 114, 115, 116, -1, 118, -1, 120, 121, 122, 123, - 124, 125, -1, 127, 128, 129, 130, 131, -1, -1, - 134, 135, 136, 137, 138, -1, 140, 141, 142, -1, - 144, 145, 146, -1, 148, 149, 150, 151, 152, 153, - 154, 155, 156, 157, 158, -1, 160, -1, 162, 163, - 164, 165, -1, 167, -1, 169, -1, -1, -1, 173, - 174, 175, -1, 177, -1, 179, -1, 181, 182, 183, - -1, 185, 186, 187, 188, 189, 190, 191, -1, 193, - 194, 195, 196, -1, 198, 199, 200, 201, 202, 203, - -1, 205, -1, 207, 208, 209, 210, 211, 212, 213, - 214, -1, 216, -1, 218, -1, -1, 221, -1, 223, - 224, 225, 226, 227, 228, -1, -1, 231, -1, 233, - -1, -1, 236, 237, 238, -1, -1, 241, 242, 243, - 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, - 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, - 264, 265, -1, 267, 268, 269, 270, 271, -1, 273, - 274, -1, 276, -1, 278, 279, 280, 281, 282, 283, - -1, 285, 286, -1, 288, 289, 290, 291, -1, -1, - 294, 295, -1, 297, -1, 299, 300, 301, 302, 303, - 304, 305, 306, 307, 308, 309, -1, 311, 312, 313, - 314, 315, 316, 317, 318, 319, -1, 321, 322, 323, - 324, 325, 326, -1, 328, 329, 330, 331, 332, 333, - 334, 335, -1, 337, 338, 339, 340, 341, 342, 343, - 344, 345, 346, 347, 348, 349, -1, 351, 352, -1, - 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, - 364, 365, 366, 367, 368, -1, 370, 371, 372, 373, - 374, -1, 376, 377, 378, 379, 380, -1, 382, 383, - 384, 385, -1, 387, 388, 389, 390, 391, 392, 393, - 394, 395, 396, 397, 398, 399, 400, 401, 402, -1, - 404, 405, -1, 407, -1, 409, 410, 411, 412, 413, - -1, 415, 416, -1, -1, 419, 420, 421, 422, 423, - -1, 425, 426, 427, 428, 429, 430, 431, 432, -1, - -1, 435, 436, 437, 438, 439, -1, -1, 442, 443, - 444, 445, 446, 447, 448, -1, 450, -1, 452, 453, - 454, 455, 456, -1, -1, 459, -1, -1, 462, 463, - 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, - 474, 475, 476, 477, 478, 479, 480, 481, 482, 3, - -1, 5, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 21, 22, 23, - 24, 25, 26, 27, 28, 29, 30, 31, 32, -1, - -1, -1, -1, -1, -1, -1, 40, 41, -1, 43, - 44, 45, -1, 47, 48, 49, 50, 51, -1, 53, - 54, -1, 56, 57, 58, 59, 60, 61, -1, -1, - 64, 65, 66, 67, 68, -1, 70, 71, 72, 73, - 74, -1, -1, -1, 78, 79, 80, 81, 82, 83, - -1, 85, 86, 87, -1, 89, 90, 91, 92, 93, - 94, -1, -1, 97, 98, 99, -1, -1, -1, -1, - -1, -1, -1, 107, 108, 109, 110, 111, 112, 113, - 114, 115, 116, -1, 118, -1, 120, 121, 122, 123, - 124, 125, -1, 127, 128, 129, 130, 131, -1, -1, - 134, 135, 136, 137, 138, -1, 140, 141, 142, -1, - 144, 145, 146, -1, 148, 149, 150, 151, 152, 153, - 154, 155, 156, 157, 158, -1, 160, -1, 162, 163, - 164, 165, -1, 167, -1, 169, -1, -1, -1, 173, - 174, 175, -1, 177, -1, 179, -1, 181, 182, 183, - -1, 185, 186, 187, 188, 189, 190, 191, -1, 193, - 194, 195, 196, -1, 198, 199, 200, 201, 202, 203, - -1, 205, -1, 207, 208, 209, 210, 211, 212, 213, - 214, -1, 216, -1, 218, -1, -1, 221, -1, 223, - 224, 225, 226, 227, 228, -1, -1, 231, -1, 233, - -1, -1, 236, 237, 238, -1, -1, 241, 242, 243, - 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, - 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, - 264, 265, -1, 267, 268, 269, 270, 271, -1, 273, - 274, -1, 276, -1, 278, 279, 280, 281, 282, 283, - -1, 285, 286, -1, -1, 289, 290, 291, -1, -1, - 294, 295, -1, 297, -1, 299, 300, 301, 302, 303, - 304, 305, 306, 307, 308, 309, -1, 311, 312, 313, - 314, 315, 316, 317, 318, 319, -1, 321, 322, 323, - 324, 325, 326, -1, 328, 329, 330, 331, 332, 333, - 334, 335, -1, 337, 338, 339, 340, 341, 342, 343, - 344, 345, 346, 347, 348, 349, -1, 351, 352, -1, - 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, - 364, 365, 366, 367, 368, -1, 370, 371, 372, 373, - 374, -1, 376, 377, 378, 379, 380, -1, 382, 383, - 384, 385, -1, 387, 388, 389, 390, 391, 392, 393, - 394, 395, 396, 397, 398, 399, 400, 401, 402, -1, - 404, 405, -1, 407, -1, 409, 410, 411, 412, 413, - -1, 415, 416, -1, -1, 419, 420, 421, 422, 423, - -1, 425, 426, 427, 428, 429, 430, 431, 432, -1, - -1, 435, 436, 437, 438, 439, -1, -1, 442, 443, - 444, 445, 446, 447, 448, -1, 450, -1, 452, 453, - 454, 455, 456, -1, -1, 459, -1, -1, 462, 463, - 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, - 474, 475, 476, 477, 478, 479, 480, 481, 482, 3, - -1, 5, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 21, 22, 23, - 24, 25, 26, 27, 28, -1, 30, 31, 32, -1, - -1, -1, -1, -1, -1, -1, 40, 41, -1, 43, - 44, 45, -1, 47, 48, 49, 50, 51, -1, 53, - 54, -1, 56, 57, 58, 59, 60, 61, -1, -1, - 64, 65, 66, 67, 68, -1, 70, 71, 72, 73, - 74, -1, -1, -1, 78, 79, 80, 81, 82, 83, - -1, 85, 86, 87, -1, 89, 90, 91, 92, 93, - 94, -1, -1, 97, 98, 99, -1, -1, -1, -1, - -1, -1, -1, 107, 108, 109, 110, 111, 112, 113, - 114, 115, 116, -1, 118, -1, 120, 121, 122, 123, - 124, 125, -1, 127, 128, 129, 130, 131, -1, -1, - 134, 135, 136, 137, 138, -1, 140, 141, 142, -1, - 144, 145, 146, -1, 148, 149, 150, 151, 152, 153, - 154, 155, 156, 157, 158, -1, 160, -1, 162, 163, - 164, 165, -1, 167, -1, 169, -1, -1, -1, 173, - 174, 175, -1, 177, -1, 179, -1, 181, 182, 183, - -1, 185, 186, 187, 188, 189, 190, 191, -1, 193, - 194, 195, 196, -1, 198, 199, 200, 201, 202, 203, - -1, 205, -1, 207, 208, 209, 210, 211, 212, 213, - 214, -1, 216, -1, 218, -1, -1, 221, -1, 223, - 224, 225, 226, 227, 228, -1, -1, 231, -1, 233, - -1, -1, 236, 237, 238, -1, -1, 241, 242, 243, - 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, - 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, - 264, 265, -1, 267, 268, 269, 270, 271, -1, 273, - 274, -1, 276, -1, 278, 279, 280, 281, 282, 283, - -1, 285, 286, -1, -1, 289, 290, 291, -1, -1, - 294, 295, -1, 297, -1, 299, 300, 301, 302, 303, - 304, 305, 306, 307, 308, 309, -1, 311, 312, 313, - 314, 315, 316, 317, 318, 319, -1, 321, 322, 323, - 324, 325, 326, -1, 328, 329, 330, 331, 332, 333, - 334, 335, -1, 337, 338, 339, 340, 341, 342, 343, - 344, 345, 346, 347, 348, 349, -1, 351, 352, -1, - 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, - 364, 365, 366, 367, 368, -1, 370, 371, 372, 373, - 374, -1, 376, 377, 378, 379, 380, -1, 382, 383, - 384, 385, -1, 387, 388, 389, 390, 391, 392, 393, - 394, 395, 396, 397, 398, 399, 400, 401, 402, -1, - 404, 405, 406, 407, -1, 409, 410, 411, 412, 413, - -1, 415, 416, -1, -1, 419, 420, 421, 422, 423, - -1, 425, 426, 427, 428, 429, 430, 431, 432, -1, - -1, 435, 436, 437, 438, 439, -1, -1, 442, 443, - 444, 445, 446, 447, 448, -1, 450, -1, 452, 453, - 454, 455, 456, -1, -1, 459, -1, -1, 462, 463, - 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, - 474, 475, 476, 477, 478, 479, 480, 481, 482, 3, - 4, -1, -1, -1, -1, 9, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 21, 22, 23, - 24, 25, 26, 27, 28, -1, 30, 31, 32, -1, - -1, -1, -1, -1, -1, -1, 40, 41, -1, 43, - 44, 45, -1, 47, 48, 49, 50, 51, -1, 53, - 54, -1, 56, 57, 58, 59, 60, 61, -1, -1, - 64, 65, 66, 67, 68, -1, 70, 71, 72, 73, - 74, -1, -1, -1, 78, 79, 80, 81, 82, 83, - -1, 85, 86, 87, -1, 89, 90, 91, 92, 93, - 94, -1, -1, 97, 98, 99, -1, -1, -1, -1, - -1, -1, -1, 107, 108, 109, 110, 111, 112, 113, - 114, 115, 116, -1, 118, -1, 120, 121, 122, 123, - 124, 125, -1, 127, 128, 129, 130, 131, -1, -1, - 134, 135, 136, 137, 138, -1, 140, 141, 142, -1, - 144, 145, 146, -1, 148, 149, 150, 151, 152, 153, - 154, 155, 156, 157, 158, -1, 160, -1, 162, 163, - 164, 165, -1, 167, -1, 169, -1, -1, -1, 173, - 174, 175, -1, 177, -1, 179, -1, 181, 182, 183, - -1, 185, 186, 187, 188, 189, 190, 191, -1, 193, - 194, 195, 196, -1, 198, 199, 200, 201, 202, 203, - -1, 205, -1, 207, 208, 209, 210, 211, 212, 213, - 214, -1, 216, -1, 218, -1, -1, 221, -1, 223, - 224, 225, 226, 227, 228, -1, -1, 231, -1, 233, - -1, -1, 236, 237, 238, -1, -1, 241, 242, 243, - 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, - 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, - 264, 265, -1, 267, 268, 269, 270, 271, -1, 273, - 274, -1, 276, -1, 278, 279, 280, 281, 282, 283, - -1, 285, 286, -1, -1, 289, 290, 291, -1, -1, - 294, 295, -1, 297, -1, 299, 300, 301, 302, 303, - 304, 305, 306, 307, 308, 309, -1, 311, 312, 313, - 314, 315, 316, 317, 318, 319, -1, 321, 322, 323, - 324, 325, 326, -1, 328, 329, 330, 331, 332, 333, - 334, 335, -1, 337, 338, 339, 340, 341, 342, 343, - 344, 345, 346, 347, 348, 349, -1, 351, 352, -1, - 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, - 364, 365, 366, 367, 368, -1, 370, 371, 372, 373, - 374, -1, 376, 377, 378, 379, 380, -1, 382, 383, - 384, 385, -1, 387, 388, 389, 390, 391, 392, 393, - 394, 395, 396, 397, 398, 399, 400, 401, 402, -1, - 404, 405, -1, 407, -1, 409, 410, 411, 412, 413, - -1, 415, 416, -1, -1, 419, 420, 421, 422, 423, - -1, 425, 426, 427, 428, 429, 430, 431, 432, -1, - -1, 435, 436, 437, 438, 439, -1, -1, 442, 443, - 444, 445, 446, 447, 448, -1, 450, -1, 452, 453, - 454, 455, 456, -1, -1, 459, -1, -1, 462, 463, - 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, - 474, 475, 476, 477, 478, 479, 480, 481, 482, 3, - -1, 5, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 21, 22, 23, - 24, 25, 26, 27, 28, -1, 30, 31, 32, -1, - -1, -1, -1, -1, -1, -1, 40, 41, -1, 43, - 44, 45, -1, 47, 48, 49, 50, 51, -1, 53, - 54, -1, 56, 57, 58, 59, 60, 61, -1, -1, - 64, 65, 66, 67, 68, -1, 70, 71, 72, 73, - 74, -1, -1, -1, 78, 79, 80, 81, 82, 83, - -1, 85, 86, 87, -1, 89, 90, 91, 92, 93, - 94, -1, -1, 97, 98, 99, -1, -1, -1, -1, - -1, -1, -1, 107, 108, 109, 110, 111, 112, 113, - 114, 115, 116, -1, 118, -1, 120, 121, 122, 123, - 124, 125, -1, 127, 128, 129, 130, 131, -1, -1, - 134, 135, 136, 137, 138, -1, 140, 141, 142, -1, - 144, 145, 146, -1, 148, 149, 150, 151, 152, 153, - 154, 155, 156, 157, 158, -1, 160, -1, 162, 163, - 164, 165, -1, 167, -1, 169, -1, -1, -1, 173, - 174, 175, -1, 177, -1, 179, -1, 181, 182, 183, - -1, 185, 186, 187, 188, 189, 190, 191, -1, 193, - 194, 195, 196, -1, 198, 199, 200, 201, 202, 203, - -1, 205, -1, 207, 208, 209, 210, 211, 212, 213, - 214, -1, 216, -1, 218, -1, -1, 221, -1, 223, - 224, 225, 226, 227, 228, -1, -1, 231, -1, 233, - -1, -1, 236, 237, 238, -1, -1, 241, 242, 243, - 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, - 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, - 264, 265, -1, 267, 268, 269, 270, 271, -1, 273, - 274, -1, 276, -1, 278, 279, 280, 281, 282, 283, - -1, 285, 286, -1, -1, 289, 290, 291, -1, -1, - 294, 295, -1, 297, -1, 299, 300, 301, 302, 303, - 304, 305, 306, 307, 308, 309, -1, 311, 312, 313, - 314, 315, 316, 317, 318, 319, -1, 321, 322, 323, - 324, 325, 326, -1, 328, 329, 330, 331, 332, 333, - 334, 335, -1, 337, 338, 339, 340, 341, 342, 343, - 344, 345, 346, 347, 348, 349, -1, 351, 352, -1, - 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, - 364, 365, 366, 367, 368, -1, 370, 371, 372, 373, - 374, -1, 376, 377, 378, 379, 380, -1, 382, 383, - 384, 385, -1, 387, 388, 389, 390, 391, 392, 393, - 394, 395, 396, 397, 398, 399, 400, 401, 402, -1, - 404, 405, -1, 407, -1, 409, 410, 411, 412, 413, - -1, 415, 416, -1, -1, 419, 420, 421, 422, 423, - -1, 425, 426, 427, 428, 429, 430, 431, 432, -1, - -1, 435, 436, 437, 438, 439, -1, -1, 442, 443, - 444, 445, 446, 447, 448, -1, 450, -1, 452, 453, - 454, 455, 456, -1, -1, 459, -1, -1, 462, 463, - 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, - 474, 475, 476, 477, 478, 479, 480, 481, 482, 3, - -1, 5, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 21, 22, 23, - 24, 25, 26, 27, 28, -1, 30, 31, 32, -1, - -1, -1, -1, -1, -1, -1, 40, 41, -1, 43, - 44, 45, -1, 47, 48, 49, 50, 51, -1, 53, - 54, -1, 56, 57, 58, 59, 60, 61, -1, -1, - 64, 65, 66, 67, 68, -1, 70, 71, 72, 73, - 74, -1, -1, -1, 78, 79, 80, 81, 82, 83, - -1, 85, 86, 87, -1, 89, 90, 91, 92, 93, - 94, -1, -1, 97, 98, 99, -1, -1, -1, -1, - -1, -1, -1, 107, 108, 109, 110, 111, 112, 113, - 114, 115, 116, -1, 118, -1, 120, 121, 122, 123, - 124, 125, -1, 127, 128, 129, 130, 131, -1, -1, - 134, 135, 136, 137, 138, -1, 140, 141, 142, -1, - 144, 145, 146, -1, 148, 149, 150, 151, 152, 153, - 154, 155, 156, 157, 158, -1, 160, -1, 162, 163, - 164, 165, -1, 167, -1, 169, -1, -1, -1, 173, - 174, 175, -1, 177, -1, 179, -1, 181, 182, 183, - -1, 185, 186, 187, 188, 189, 190, 191, -1, 193, - 194, 195, 196, -1, 198, 199, 200, 201, 202, 203, - -1, 205, -1, 207, 208, 209, 210, 211, 212, 213, - 214, -1, 216, -1, 218, -1, -1, 221, -1, 223, - 224, 225, 226, 227, 228, -1, -1, 231, -1, 233, - -1, -1, 236, 237, 238, -1, -1, 241, 242, 243, - 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, - 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, - 264, 265, -1, 267, 268, 269, 270, 271, -1, 273, - 274, -1, 276, -1, 278, 279, 280, 281, 282, 283, - -1, 285, 286, -1, -1, 289, 290, 291, -1, -1, - 294, 295, -1, 297, -1, 299, 300, 301, 302, 303, - 304, 305, 306, 307, 308, 309, -1, 311, 312, 313, - 314, 315, 316, 317, 318, 319, -1, 321, 322, 323, - 324, 325, 326, -1, 328, 329, 330, 331, 332, 333, - 334, 335, -1, 337, 338, 339, 340, 341, 342, 343, - 344, 345, 346, 347, 348, 349, -1, 351, 352, -1, - 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, - 364, 365, 366, 367, 368, -1, 370, 371, 372, 373, - 374, -1, 376, 377, 378, 379, 380, -1, 382, 383, - 384, 385, -1, 387, 388, 389, 390, 391, 392, 393, - 394, 395, 396, 397, 398, 399, 400, 401, 402, -1, - 404, 405, -1, 407, -1, 409, 410, 411, 412, 413, - -1, 415, 416, -1, -1, 419, 420, 421, 422, 423, - -1, 425, 426, 427, 428, 429, 430, 431, 432, -1, - -1, 435, 436, 437, 438, 439, -1, -1, 442, 443, - 444, 445, 446, 447, 448, -1, 450, -1, 452, 453, - 454, 455, 456, -1, -1, 459, -1, -1, 462, 463, - 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, - 474, 475, 476, 477, 478, 479, 480, 481, 482, 3, + -1, -1, -1, 21, 22, 23, 24, 25, 26, 27, + 28, -1, 30, 31, 32, -1, -1, -1, -1, -1, + -1, -1, 40, 41, -1, 43, 44, 45, -1, 47, + 48, 49, 50, 51, -1, 53, 54, -1, 56, 57, + 58, 59, 60, 61, -1, -1, 64, 65, 66, 67, + 68, -1, 70, 71, 72, 73, 74, -1, -1, -1, + 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, + -1, 89, 90, 91, 92, 93, 94, -1, -1, 97, + 98, 99, -1, -1, -1, -1, -1, -1, -1, 107, + 108, 109, 110, 111, 112, 113, 114, 115, 116, -1, + 118, -1, 120, 121, 122, 123, 124, 125, -1, 127, + 128, 129, 130, 131, -1, -1, 134, 135, 136, 137, + 138, -1, 140, 141, 142, -1, 144, 145, 146, -1, + 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, + 158, -1, 160, -1, 162, 163, 164, 165, -1, 167, + -1, 169, -1, -1, -1, 173, 174, 175, -1, 177, + -1, 179, -1, 181, 182, 183, -1, 185, 186, 187, + 188, 189, 190, 191, -1, 193, 194, 195, 196, -1, + 198, 199, 200, 201, 202, 203, -1, 205, -1, 207, + 208, 209, 210, 211, 212, 213, 214, -1, 216, -1, + 218, -1, -1, 221, -1, 223, 224, 225, 226, 227, + 228, -1, -1, 231, -1, 233, -1, -1, 236, 237, + 238, -1, -1, 241, 242, 243, 244, 245, 246, 247, + 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, + 258, 259, 260, 261, 262, 263, 264, 265, -1, 267, + 268, 269, 270, 271, -1, 273, 274, -1, 276, -1, + 278, 279, 280, 281, 282, 283, -1, 285, 286, -1, + -1, 289, 290, 291, -1, -1, 294, 295, -1, 297, + -1, 299, 300, 301, 302, 303, 304, 305, 306, 307, + 308, 309, -1, 311, 312, 313, 314, 315, 316, 317, + 318, 319, -1, 321, 322, 323, 324, 325, 326, -1, + 328, 329, 330, 331, 332, 333, 334, 335, -1, 337, + 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, + 348, 349, -1, 351, 352, -1, 354, 355, 356, 357, + 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, + 368, -1, 370, 371, 372, 373, 374, -1, 376, 377, + 378, 379, 380, -1, 382, 383, 384, 385, -1, 387, + 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, + 398, 399, 400, 401, 402, -1, 404, 405, 406, 407, + -1, 409, 410, 411, 412, 413, -1, 415, 416, -1, + -1, 419, 420, 421, 422, 423, -1, 425, 426, 427, + 428, 429, 430, 431, 432, -1, -1, 435, 436, 437, + 438, 439, -1, -1, 442, 443, 444, 445, 446, 447, + 448, -1, 450, -1, 452, 453, 454, 455, 456, -1, + -1, 459, -1, -1, 462, 463, 464, 465, 466, 467, + 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, + 478, 479, 480, 481, 482, 3, 4, -1, -1, -1, + -1, 9, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 21, 22, 23, 24, 25, 26, 27, + 28, -1, 30, 31, 32, -1, -1, -1, -1, -1, + -1, -1, 40, 41, -1, 43, 44, 45, -1, 47, + 48, 49, 50, 51, -1, 53, 54, -1, 56, 57, + 58, 59, 60, 61, -1, -1, 64, 65, 66, 67, + 68, -1, 70, 71, 72, 73, 74, -1, -1, -1, + 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, + -1, 89, 90, 91, 92, 93, 94, -1, -1, 97, + 98, 99, -1, -1, -1, -1, -1, -1, -1, 107, + 108, 109, 110, 111, 112, 113, 114, 115, 116, -1, + 118, -1, 120, 121, 122, 123, 124, 125, -1, 127, + 128, 129, 130, 131, -1, -1, 134, 135, 136, 137, + 138, -1, 140, 141, 142, -1, 144, 145, 146, -1, + 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, + 158, -1, 160, -1, 162, 163, 164, 165, -1, 167, + -1, 169, -1, -1, -1, 173, 174, 175, -1, 177, + -1, 179, -1, 181, 182, 183, -1, 185, 186, 187, + 188, 189, 190, 191, -1, 193, 194, 195, 196, -1, + 198, 199, 200, 201, 202, 203, -1, 205, -1, 207, + 208, 209, 210, 211, 212, 213, 214, -1, 216, -1, + 218, -1, -1, 221, -1, 223, 224, 225, 226, 227, + 228, -1, -1, 231, -1, 233, -1, -1, 236, 237, + 238, -1, -1, 241, 242, 243, 244, 245, 246, 247, + 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, + 258, 259, 260, 261, 262, 263, 264, 265, -1, 267, + 268, 269, 270, 271, -1, 273, 274, -1, 276, -1, + 278, 279, 280, 281, 282, 283, -1, 285, 286, -1, + -1, 289, 290, 291, -1, -1, 294, 295, -1, 297, + -1, 299, 300, 301, 302, 303, 304, 305, 306, 307, + 308, 309, -1, 311, 312, 313, 314, 315, 316, 317, + 318, 319, -1, 321, 322, 323, 324, 325, 326, -1, + 328, 329, 330, 331, 332, 333, 334, 335, -1, 337, + 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, + 348, 349, -1, 351, 352, -1, 354, 355, 356, 357, + 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, + 368, -1, 370, 371, 372, 373, 374, -1, 376, 377, + 378, 379, 380, -1, 382, 383, 384, 385, -1, 387, + 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, + 398, 399, 400, 401, 402, -1, 404, 405, -1, 407, + -1, 409, 410, 411, 412, 413, -1, 415, 416, -1, + -1, 419, 420, 421, 422, 423, -1, 425, 426, 427, + 428, 429, 430, 431, 432, -1, -1, 435, 436, 437, + 438, 439, -1, -1, 442, 443, 444, 445, 446, 447, + 448, -1, 450, -1, 452, 453, 454, 455, 456, -1, + -1, 459, -1, -1, 462, 463, 464, 465, 466, 467, + 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, + 478, 479, 480, 481, 482, 3, -1, 5, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 21, 22, 23, - 24, 25, 26, 27, 28, 29, 30, 31, 32, -1, - -1, -1, -1, -1, -1, -1, 40, 41, -1, 43, - 44, 45, -1, 47, 48, 49, 50, 51, -1, 53, - 54, -1, 56, 57, 58, 59, 60, 61, -1, -1, - 64, 65, 66, 67, 68, -1, 70, 71, 72, 73, - 74, -1, -1, -1, 78, 79, 80, 81, 82, 83, - -1, 85, 86, 87, -1, 89, 90, 91, 92, 93, - 94, -1, -1, 97, 98, 99, -1, -1, -1, -1, - -1, -1, -1, 107, 108, 109, 110, 111, 112, 113, - 114, 115, 116, -1, 118, -1, 120, 121, 122, 123, - 124, 125, -1, 127, 128, 129, 130, 131, -1, -1, - 134, 135, 136, 137, 138, -1, 140, 141, 142, -1, - 144, 145, 146, -1, 148, 149, 150, 151, 152, 153, - 154, 155, 156, 157, 158, -1, 160, -1, 162, 163, - 164, 165, -1, 167, -1, 169, -1, -1, -1, 173, - 174, 175, -1, 177, -1, 179, -1, 181, 182, 183, - -1, 185, 186, 187, 188, 189, 190, 191, -1, 193, - 194, 195, 196, -1, 198, 199, 200, 201, 202, 203, - -1, 205, -1, 207, 208, 209, 210, 211, 212, 213, - 214, -1, 216, -1, 218, -1, -1, 221, -1, 223, - 224, 225, 226, 227, 228, -1, -1, 231, -1, 233, - -1, -1, 236, 237, 238, -1, -1, 241, 242, 243, - 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, - 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, - 264, 265, -1, 267, 268, 269, 270, 271, -1, 273, - 274, -1, 276, -1, 278, 279, 280, 281, 282, 283, - -1, 285, 286, -1, -1, 289, 290, 291, -1, -1, - 294, 295, -1, 297, -1, 299, 300, 301, 302, 303, - 304, 305, 306, 307, 308, 309, -1, 311, 312, 313, - 314, 315, 316, 317, 318, 319, -1, 321, 322, 323, - 324, 325, 326, -1, 328, 329, 330, 331, 332, 333, - 334, 335, -1, 337, 338, 339, 340, 341, 342, 343, - 344, 345, 346, 347, 348, 349, -1, 351, 352, -1, - 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, - 364, 365, 366, 367, 368, -1, 370, 371, 372, 373, - 374, -1, 376, 377, 378, 379, 380, -1, 382, 383, - 384, 385, -1, 387, 388, 389, 390, 391, 392, 393, - 394, 395, 396, 397, 398, 399, 400, 401, 402, -1, - 404, 405, -1, 407, -1, 409, 410, 411, 412, 413, - -1, 415, 416, -1, -1, 419, 420, 421, 422, 423, - -1, 425, 426, 427, 428, 429, 430, 431, 432, -1, - -1, 435, 436, 437, 438, 439, -1, -1, 442, 443, - 444, 445, 446, 447, 448, -1, 450, -1, 452, 453, - 454, 455, 456, -1, -1, 459, -1, -1, 462, 463, - 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, - 474, 475, 476, 477, 478, 479, 480, 481, 482, 3, - -1, 5, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 21, 22, 23, - 24, 25, 26, 27, 28, -1, 30, 31, 32, -1, - -1, -1, -1, -1, -1, -1, 40, 41, -1, 43, - 44, 45, -1, 47, 48, 49, 50, 51, -1, 53, - 54, -1, 56, 57, 58, 59, 60, 61, -1, -1, - 64, 65, 66, 67, 68, -1, 70, 71, 72, 73, - 74, -1, -1, -1, 78, 79, 80, 81, 82, 83, - -1, 85, 86, 87, -1, 89, 90, 91, 92, 93, - 94, -1, -1, 97, 98, 99, -1, -1, -1, -1, - -1, -1, -1, 107, 108, 109, 110, 111, 112, 113, - 114, 115, 116, -1, 118, -1, 120, 121, 122, 123, - 124, 125, -1, 127, 128, 129, 130, 131, -1, -1, - 134, 135, 136, 137, 138, -1, 140, 141, 142, -1, - 144, 145, 146, -1, 148, 149, 150, 151, 152, 153, - 154, 155, 156, 157, 158, -1, 160, -1, 162, 163, - 164, 165, -1, 167, -1, 169, -1, -1, -1, 173, - 174, 175, -1, 177, -1, 179, -1, 181, 182, 183, - -1, 185, 186, 187, 188, 189, 190, 191, -1, 193, - 194, 195, 196, -1, 198, 199, 200, 201, 202, 203, - -1, 205, -1, 207, 208, 209, 210, 211, 212, 213, - 214, -1, 216, -1, 218, -1, -1, 221, -1, 223, - 224, 225, 226, 227, 228, -1, -1, 231, -1, 233, - -1, -1, 236, 237, 238, -1, -1, 241, 242, 243, - 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, - 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, - 264, 265, -1, 267, 268, 269, 270, 271, -1, 273, - 274, -1, 276, -1, 278, 279, 280, 281, 282, 283, - -1, 285, 286, -1, -1, 289, 290, 291, -1, -1, - 294, 295, -1, 297, -1, 299, 300, 301, 302, 303, - 304, 305, 306, 307, 308, 309, -1, 311, 312, 313, - 314, 315, 316, 317, 318, 319, -1, 321, 322, 323, - 324, 325, 326, -1, 328, 329, 330, 331, 332, 333, - 334, 335, -1, 337, 338, 339, 340, 341, 342, 343, - 344, 345, 346, 347, 348, 349, -1, 351, 352, -1, - 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, - 364, 365, 366, 367, 368, -1, 370, 371, 372, 373, - 374, -1, 376, 377, 378, 379, 380, -1, 382, 383, - 384, 385, -1, 387, 388, 389, 390, 391, 392, 393, - 394, 395, 396, 397, 398, 399, 400, 401, 402, -1, - 404, 405, -1, 407, -1, 409, 410, 411, 412, 413, - -1, 415, 416, -1, -1, 419, 420, 421, 422, 423, - -1, 425, 426, 427, 428, 429, 430, 431, 432, -1, - -1, 435, 436, 437, 438, 439, -1, -1, 442, 443, - 444, 445, 446, 447, 448, -1, 450, -1, 452, 453, - 454, 455, 456, -1, -1, 459, -1, -1, 462, 463, - 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, - 474, 475, 476, 477, 478, 479, 480, 481, 482, 3, - -1, 5, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 21, 22, 23, - 24, 25, 26, 27, 28, -1, 30, 31, 32, -1, - -1, -1, -1, -1, -1, -1, 40, 41, -1, 43, - 44, 45, -1, 47, 48, 49, 50, 51, -1, 53, - 54, -1, 56, 57, 58, 59, 60, 61, -1, -1, - 64, 65, 66, 67, 68, -1, 70, 71, 72, 73, - 74, -1, -1, -1, 78, 79, 80, 81, 82, 83, - -1, 85, 86, 87, -1, 89, 90, 91, 92, 93, - 94, -1, -1, 97, 98, 99, -1, -1, -1, -1, - -1, -1, -1, 107, 108, 109, 110, 111, 112, 113, - 114, 115, 116, -1, 118, -1, 120, 121, 122, 123, - 124, 125, -1, 127, 128, 129, 130, 131, -1, -1, - 134, 135, 136, 137, 138, -1, 140, 141, 142, -1, - 144, 145, 146, -1, 148, 149, 150, 151, 152, 153, - 154, 155, 156, 157, 158, -1, 160, -1, 162, 163, - 164, 165, -1, 167, -1, 169, -1, -1, -1, 173, - 174, 175, -1, 177, -1, 179, -1, 181, 182, 183, - -1, 185, 186, 187, 188, 189, 190, 191, -1, 193, - 194, 195, 196, -1, 198, 199, 200, 201, 202, 203, - -1, 205, -1, 207, 208, 209, 210, 211, 212, 213, - 214, -1, 216, -1, 218, -1, -1, 221, -1, 223, - 224, 225, 226, 227, 228, -1, -1, 231, -1, 233, - -1, -1, 236, 237, 238, -1, -1, 241, 242, 243, - 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, - 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, - 264, 265, -1, 267, 268, 269, 270, 271, -1, 273, - 274, -1, 276, -1, 278, 279, 280, 281, 282, 283, - -1, 285, 286, -1, -1, 289, 290, 291, -1, -1, - 294, 295, -1, 297, -1, 299, 300, 301, 302, 303, - 304, 305, 306, 307, 308, 309, -1, 311, 312, 313, - 314, 315, 316, 317, 318, 319, -1, 321, 322, 323, - 324, 325, 326, -1, 328, 329, 330, 331, 332, 333, - 334, 335, -1, 337, 338, 339, 340, 341, 342, 343, - 344, 345, 346, 347, 348, 349, -1, 351, 352, -1, - 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, - 364, 365, 366, 367, 368, -1, 370, 371, 372, 373, - 374, -1, 376, 377, 378, 379, 380, -1, 382, 383, - 384, 385, -1, 387, 388, 389, 390, 391, 392, 393, - 394, 395, 396, 397, 398, 399, 400, 401, 402, -1, - 404, 405, -1, 407, -1, 409, 410, 411, 412, 413, - -1, 415, 416, -1, -1, 419, 420, 421, 422, 423, - -1, 425, 426, 427, 428, 429, 430, 431, 432, -1, - -1, 435, 436, 437, 438, 439, -1, -1, 442, 443, - 444, 445, 446, 447, 448, -1, 450, -1, 452, 453, - 454, 455, 456, -1, -1, 459, -1, -1, 462, 463, - 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, - 474, 475, 476, 477, 478, 479, 480, 481, 482, 3, - -1, 5, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 21, 22, 23, - 24, 25, 26, 27, 28, -1, 30, 31, 32, -1, - -1, -1, -1, -1, -1, -1, 40, 41, -1, 43, - 44, 45, -1, 47, 48, 49, 50, 51, -1, 53, - 54, -1, 56, 57, 58, 59, 60, 61, -1, -1, - 64, 65, 66, 67, 68, -1, 70, 71, 72, 73, - 74, -1, -1, -1, 78, 79, 80, 81, 82, 83, - -1, 85, 86, 87, -1, 89, 90, 91, 92, 93, - 94, -1, -1, 97, 98, 99, -1, -1, -1, -1, - -1, -1, -1, 107, 108, 109, 110, 111, 112, 113, - 114, 115, 116, -1, 118, -1, 120, 121, 122, 123, - 124, 125, -1, 127, 128, 129, 130, 131, -1, -1, - 134, 135, 136, 137, 138, -1, 140, 141, 142, -1, - 144, 145, 146, -1, 148, 149, 150, 151, 152, 153, - 154, 155, 156, 157, 158, -1, 160, -1, 162, 163, - 164, 165, -1, 167, -1, 169, -1, -1, -1, 173, - 174, 175, -1, 177, -1, 179, -1, 181, 182, 183, - -1, 185, 186, 187, 188, 189, 190, 191, -1, 193, - 194, 195, 196, -1, 198, 199, 200, 201, 202, 203, - -1, 205, -1, 207, 208, 209, 210, 211, 212, 213, - 214, -1, 216, -1, 218, -1, -1, 221, -1, 223, - 224, 225, 226, 227, 228, -1, -1, 231, -1, 233, - -1, -1, 236, 237, 238, -1, -1, 241, 242, 243, - 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, - 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, - 264, 265, -1, 267, 268, 269, 270, 271, -1, 273, - 274, -1, 276, -1, 278, 279, 280, 281, 282, 283, - -1, 285, 286, -1, -1, 289, 290, 291, -1, -1, - 294, 295, -1, 297, -1, 299, 300, 301, 302, 303, - 304, 305, 306, 307, 308, 309, -1, 311, 312, 313, - 314, 315, 316, 317, 318, 319, -1, 321, 322, 323, - 324, 325, 326, -1, 328, 329, 330, 331, 332, 333, - 334, 335, -1, 337, 338, 339, 340, 341, 342, 343, - 344, 345, 346, 347, 348, 349, -1, 351, 352, -1, - 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, - 364, 365, 366, 367, 368, -1, 370, 371, 372, 373, - 374, -1, 376, 377, 378, 379, 380, -1, 382, 383, - 384, 385, -1, 387, 388, 389, 390, 391, 392, 393, - 394, 395, 396, 397, 398, 399, 400, 401, 402, -1, - 404, 405, -1, 407, -1, 409, 410, 411, 412, 413, - -1, 415, 416, -1, -1, 419, 420, 421, 422, 423, - -1, 425, 426, 427, 428, 429, 430, 431, 432, -1, - -1, 435, 436, 437, 438, 439, -1, -1, 442, 443, - 444, 445, 446, 447, 448, -1, 450, -1, 452, 453, - 454, 455, 456, -1, -1, 459, -1, -1, 462, 463, - 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, - 474, 475, 476, 477, 478, 479, 480, 481, 482, 3, - -1, 5, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 21, 22, 23, - 24, 25, 26, 27, 28, -1, 30, 31, 32, -1, - -1, -1, -1, -1, -1, -1, 40, 41, -1, 43, - 44, 45, -1, 47, 48, 49, 50, 51, -1, 53, - 54, -1, 56, 57, 58, 59, 60, 61, -1, -1, - 64, 65, 66, 67, 68, -1, 70, 71, 72, 73, - 74, -1, -1, -1, 78, 79, 80, 81, 82, 83, - -1, 85, 86, 87, -1, 89, 90, 91, 92, 93, - 94, -1, -1, 97, 98, 99, -1, -1, -1, -1, - -1, -1, -1, 107, 108, 109, 110, 111, 112, 113, - 114, 115, 116, -1, 118, -1, 120, 121, 122, 123, - 124, 125, -1, 127, 128, 129, 130, 131, -1, -1, - 134, 135, 136, 137, 138, -1, 140, 141, 142, -1, - 144, 145, 146, -1, 148, 149, 150, 151, 152, 153, - 154, 155, 156, 157, 158, -1, 160, -1, 162, 163, - 164, 165, -1, 167, -1, 169, -1, -1, -1, 173, - 174, 175, -1, 177, -1, 179, -1, 181, 182, 183, - -1, 185, 186, 187, 188, 189, 190, 191, -1, 193, - 194, 195, 196, -1, 198, 199, 200, 201, 202, 203, - -1, 205, -1, 207, 208, 209, 210, 211, 212, 213, - 214, -1, 216, -1, 218, -1, -1, 221, -1, 223, - 224, 225, 226, 227, 228, -1, -1, 231, -1, 233, - -1, -1, 236, 237, 238, -1, -1, 241, 242, 243, - 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, - 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, - 264, 265, -1, 267, 268, 269, 270, 271, -1, 273, - 274, -1, 276, -1, 278, 279, 280, 281, 282, 283, - -1, 285, 286, -1, -1, 289, 290, 291, -1, -1, - 294, 295, -1, 297, -1, 299, 300, 301, 302, 303, - 304, 305, 306, 307, 308, 309, -1, 311, 312, 313, - 314, 315, 316, 317, 318, 319, -1, 321, 322, 323, - 324, 325, 326, -1, 328, 329, 330, 331, 332, 333, - 334, 335, -1, 337, 338, 339, 340, 341, 342, 343, - 344, 345, 346, 347, 348, 349, -1, 351, 352, -1, - 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, - 364, 365, 366, 367, 368, -1, 370, 371, 372, 373, - 374, -1, 376, 377, 378, 379, 380, -1, 382, 383, - 384, 385, -1, 387, 388, 389, 390, 391, 392, 393, - 394, 395, 396, 397, 398, 399, 400, 401, 402, -1, - 404, 405, -1, 407, -1, 409, 410, 411, 412, 413, - -1, 415, 416, -1, -1, 419, 420, 421, 422, 423, - -1, 425, 426, 427, 428, 429, 430, 431, 432, -1, - -1, 435, 436, 437, 438, 439, -1, -1, 442, 443, - 444, 445, 446, 447, 448, -1, 450, -1, 452, 453, - 454, 455, 456, -1, -1, 459, -1, -1, 462, 463, - 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, - 474, 475, 476, 477, 478, 479, 480, 481, 482, 3, + -1, -1, -1, 21, 22, 23, 24, 25, 26, 27, + 28, -1, 30, 31, 32, -1, -1, -1, -1, -1, + -1, -1, 40, 41, -1, 43, 44, 45, -1, 47, + 48, 49, 50, 51, -1, 53, 54, -1, 56, 57, + 58, 59, 60, 61, -1, -1, 64, 65, 66, 67, + 68, -1, 70, 71, 72, 73, 74, -1, -1, -1, + 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, + -1, 89, 90, 91, 92, 93, 94, -1, -1, 97, + 98, 99, -1, -1, -1, -1, -1, -1, -1, 107, + 108, 109, 110, 111, 112, 113, 114, 115, 116, -1, + 118, -1, 120, 121, 122, 123, 124, 125, -1, 127, + 128, 129, 130, 131, -1, -1, 134, 135, 136, 137, + 138, -1, 140, 141, 142, -1, 144, 145, 146, -1, + 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, + 158, -1, 160, -1, 162, 163, 164, 165, -1, 167, + -1, 169, -1, -1, -1, 173, 174, 175, -1, 177, + -1, 179, -1, 181, 182, 183, -1, 185, 186, 187, + 188, 189, 190, 191, -1, 193, 194, 195, 196, -1, + 198, 199, 200, 201, 202, 203, -1, 205, -1, 207, + 208, 209, 210, 211, 212, 213, 214, -1, 216, -1, + 218, -1, -1, 221, -1, 223, 224, 225, 226, 227, + 228, -1, -1, 231, -1, 233, -1, -1, 236, 237, + 238, -1, -1, 241, 242, 243, 244, 245, 246, 247, + 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, + 258, 259, 260, 261, 262, 263, 264, 265, -1, 267, + 268, 269, 270, 271, -1, 273, 274, -1, 276, -1, + 278, 279, 280, 281, 282, 283, -1, 285, 286, -1, + -1, 289, 290, 291, -1, -1, 294, 295, -1, 297, + -1, 299, 300, 301, 302, 303, 304, 305, 306, 307, + 308, 309, -1, 311, 312, 313, 314, 315, 316, 317, + 318, 319, -1, 321, 322, 323, 324, 325, 326, -1, + 328, 329, 330, 331, 332, 333, 334, 335, -1, 337, + 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, + 348, 349, -1, 351, 352, -1, 354, 355, 356, 357, + 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, + 368, -1, 370, 371, 372, 373, 374, -1, 376, 377, + 378, 379, 380, -1, 382, 383, 384, 385, -1, 387, + 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, + 398, 399, 400, 401, 402, -1, 404, 405, -1, 407, + -1, 409, 410, 411, 412, 413, -1, 415, 416, -1, + -1, 419, 420, 421, 422, 423, -1, 425, 426, 427, + 428, 429, 430, 431, 432, -1, -1, 435, 436, 437, + 438, 439, -1, -1, 442, 443, 444, 445, 446, 447, + 448, -1, 450, -1, 452, 453, 454, 455, 456, -1, + -1, 459, -1, -1, 462, 463, 464, 465, 466, 467, + 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, + 478, 479, 480, 481, 482, 3, -1, 5, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 21, 22, 23, - 24, 25, 26, 27, 28, -1, 30, 31, 32, -1, - -1, -1, -1, -1, -1, -1, 40, 41, -1, 43, - 44, 45, 46, 47, 48, 49, -1, 51, 52, 53, - 54, -1, 56, 57, 58, 59, 60, 61, -1, -1, - 64, 65, 66, 67, 68, -1, 70, 71, 72, 73, - -1, -1, 76, -1, 78, 79, 80, 81, 82, 83, - 84, 85, 86, 87, -1, 89, 90, 91, 92, 93, - 94, -1, 96, 97, 98, 99, 100, 101, 102, 103, - -1, -1, 106, 107, 108, 109, 110, 111, 112, 113, - 114, 115, 116, -1, 118, -1, 120, 121, 122, 123, - 124, 125, -1, 127, 128, 129, 130, 131, -1, -1, - 134, 135, 136, 137, 138, -1, 140, 141, 142, -1, - 144, 145, 146, -1, 148, 149, 150, 151, -1, 153, - 154, 155, 156, 157, -1, -1, 160, -1, 162, 163, - 164, 165, -1, 167, -1, 169, 170, -1, 172, 173, - 174, -1, 176, 177, -1, 179, -1, -1, -1, 183, - -1, 185, 186, 187, 188, 189, 190, 191, 192, 193, - 194, 195, 196, -1, 198, 199, 200, 201, 202, 203, - -1, 205, 206, -1, 208, 209, 210, 211, 212, 213, - 214, -1, 216, -1, 218, 219, 220, 221, 222, 223, - 224, 225, 226, 227, 228, -1, -1, 231, 232, 233, - 234, -1, 236, 237, 238, -1, -1, 241, 242, 243, - 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, - 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, - 264, 265, 266, 267, 268, 269, 270, -1, -1, 273, - 274, 275, 276, -1, -1, 279, 280, 281, 282, 283, - -1, 285, 286, -1, -1, 289, 290, 291, -1, -1, - 294, -1, 296, 297, 298, -1, 300, 301, 302, 303, - 304, 305, 306, 307, 308, 309, -1, 311, 312, -1, - 314, 315, -1, 317, 318, 319, -1, 321, 322, 323, - 324, 325, 326, -1, 328, 329, 330, 331, 332, 333, - 334, 335, -1, 337, 338, 339, 340, 341, 342, 343, - 344, 345, 346, 347, 348, 349, -1, 351, 352, 353, - 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, - 364, 365, 366, 367, 368, -1, 370, 371, 372, 373, - 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, - 384, 385, -1, 387, 388, 389, 390, 391, 392, 393, - 394, 395, 396, 397, 398, 399, 400, -1, 402, -1, - 404, 405, -1, 407, 408, 409, 410, 411, 412, 413, - -1, 415, 416, -1, -1, 419, 420, -1, 422, -1, - -1, 425, 426, 427, 428, 429, 430, 431, 432, -1, - -1, 435, 436, 437, 438, 439, 440, -1, 442, 443, - 444, 445, 446, -1, 448, -1, 450, 451, 452, 453, - 454, 455, 456, -1, -1, 459, -1, -1, 462, 463, - 464, 465, 466, 467, 3, -1, 5, -1, -1, -1, - -1, -1, -1, -1, -1, 479, 480, 481, 482, -1, - -1, -1, 21, 22, 23, 24, 25, 26, 27, 28, - -1, 30, 31, 32, -1, -1, -1, -1, -1, -1, - -1, 40, 41, -1, 43, 44, 45, -1, 47, 48, - 49, 50, 51, -1, 53, 54, -1, 56, 57, 58, - 59, 60, 61, -1, -1, 64, 65, 66, 67, 68, - -1, 70, 71, 72, 73, 74, -1, -1, -1, 78, - 79, 80, 81, 82, 83, -1, 85, 86, 87, -1, - 89, 90, 91, 92, 93, 94, -1, -1, 97, 98, - 99, -1, -1, -1, -1, -1, -1, -1, 107, 108, - 109, 110, 111, 112, 113, 114, 115, 116, -1, 118, - -1, 120, 121, 122, 123, 124, 125, -1, 127, 128, - 129, 130, 131, -1, -1, 134, 135, 136, 137, 138, - -1, 140, 141, 142, -1, 144, 145, 146, -1, 148, - 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, - -1, 160, -1, 162, 163, 164, 165, -1, 167, -1, - 169, -1, -1, -1, 173, 174, 175, -1, 177, -1, - 179, -1, 181, 182, 183, -1, 185, 186, 187, 188, - 189, 190, 191, -1, 193, 194, 195, 196, -1, 198, - 199, 200, 201, 202, 203, -1, 205, -1, 207, 208, - 209, 210, 211, 212, 213, 214, -1, 216, -1, 218, - -1, -1, 221, -1, 223, 224, 225, 226, 227, 228, - -1, -1, 231, -1, 233, -1, -1, 236, 237, 238, - -1, -1, 241, 242, 243, 244, 245, 246, 247, 248, - 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, - 259, 260, 261, 262, 263, 264, 265, -1, 267, 268, - 269, 270, 271, -1, 273, 274, -1, 276, -1, 278, - 279, 280, 281, 282, 283, -1, 285, 286, -1, -1, - 289, 290, 291, -1, -1, 294, 295, -1, 297, -1, - 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, - 309, -1, 311, 312, 313, 314, 315, 316, 317, 318, - 319, -1, 321, 322, 323, 324, 325, 326, -1, 328, - 329, 330, 331, 332, 333, 334, 335, -1, 337, 338, - 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, - 349, -1, 351, 352, -1, 354, 355, 356, 357, 358, - 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, - -1, 370, 371, 372, 373, 374, -1, 376, 377, 378, - 379, 380, -1, 382, 383, 384, 385, -1, 387, 388, - 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, - 399, 400, 401, 402, -1, 404, 405, -1, 407, -1, - 409, 410, 411, 412, 413, -1, 415, 416, -1, -1, - 419, 420, 421, 422, 423, -1, 425, 426, 427, 428, - 429, 430, 431, 432, -1, -1, 435, 436, 437, 438, - 439, -1, -1, 442, 443, 444, 445, 446, 447, 448, - -1, 450, -1, 452, 453, 454, 455, 456, -1, -1, - 459, -1, -1, 462, 463, 464, 465, 466, 467, 468, - 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, - 479, 480, 481, 482, 3, -1, 5, -1, -1, -1, + -1, -1, -1, 21, 22, 23, 24, 25, 26, 27, + 28, -1, 30, 31, 32, -1, -1, -1, -1, -1, + -1, -1, 40, 41, -1, 43, 44, 45, -1, 47, + 48, 49, 50, 51, -1, 53, 54, -1, 56, 57, + 58, 59, 60, 61, -1, -1, 64, 65, 66, 67, + 68, -1, 70, 71, 72, 73, 74, -1, -1, -1, + 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, + -1, 89, 90, 91, 92, 93, 94, -1, -1, 97, + 98, 99, -1, -1, -1, -1, -1, -1, -1, 107, + 108, 109, 110, 111, 112, 113, 114, 115, 116, -1, + 118, -1, 120, 121, 122, 123, 124, 125, -1, 127, + 128, 129, 130, 131, -1, -1, 134, 135, 136, 137, + 138, -1, 140, 141, 142, -1, 144, 145, 146, -1, + 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, + 158, -1, 160, -1, 162, 163, 164, 165, -1, 167, + -1, 169, -1, -1, -1, 173, 174, 175, -1, 177, + -1, 179, -1, 181, 182, 183, -1, 185, 186, 187, + 188, 189, 190, 191, -1, 193, 194, 195, 196, -1, + 198, 199, 200, 201, 202, 203, -1, 205, -1, 207, + 208, 209, 210, 211, 212, 213, 214, -1, 216, -1, + 218, -1, -1, 221, -1, 223, 224, 225, 226, 227, + 228, -1, -1, 231, -1, 233, -1, -1, 236, 237, + 238, -1, -1, 241, 242, 243, 244, 245, 246, 247, + 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, + 258, 259, 260, 261, 262, 263, 264, 265, -1, 267, + 268, 269, 270, 271, -1, 273, 274, -1, 276, -1, + 278, 279, 280, 281, 282, 283, -1, 285, 286, -1, + -1, 289, 290, 291, -1, -1, 294, 295, -1, 297, + -1, 299, 300, 301, 302, 303, 304, 305, 306, 307, + 308, 309, -1, 311, 312, 313, 314, 315, 316, 317, + 318, 319, -1, 321, 322, 323, 324, 325, 326, -1, + 328, 329, 330, 331, 332, 333, 334, 335, -1, 337, + 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, + 348, 349, -1, 351, 352, -1, 354, 355, 356, 357, + 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, + 368, -1, 370, 371, 372, 373, 374, -1, 376, 377, + 378, 379, 380, -1, 382, 383, 384, 385, -1, 387, + 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, + 398, 399, 400, 401, 402, -1, 404, 405, -1, 407, + -1, 409, 410, 411, 412, 413, -1, 415, 416, -1, + -1, 419, 420, 421, 422, 423, -1, 425, 426, 427, + 428, 429, 430, 431, 432, -1, -1, 435, 436, 437, + 438, 439, -1, -1, 442, 443, 444, 445, 446, 447, + 448, -1, 450, -1, 452, 453, 454, 455, 456, -1, + -1, 459, -1, -1, 462, 463, 464, 465, 466, 467, + 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, + 478, 479, 480, 481, 482, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 21, 22, 23, 24, 25, 26, 27, 28, - -1, 30, 31, 32, -1, -1, -1, -1, -1, -1, - -1, 40, 41, -1, 43, 44, 45, -1, 47, 48, - 49, 50, 51, -1, 53, 54, -1, 56, 57, 58, - 59, 60, 61, -1, -1, 64, 65, 66, 67, 68, - -1, 70, 71, 72, 73, 74, -1, -1, -1, 78, - 79, 80, 81, 82, 83, -1, 85, 86, 87, -1, - 89, 90, 91, 92, 93, 94, -1, -1, 97, 98, - 99, -1, -1, -1, -1, -1, -1, -1, 107, 108, - 109, 110, 111, 112, 113, 114, 115, 116, -1, 118, - -1, 120, 121, 122, 123, 124, 125, -1, 127, 128, - 129, 130, 131, -1, -1, 134, 135, 136, 137, 138, - -1, 140, 141, 142, -1, 144, 145, 146, -1, 148, - 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, - -1, 160, -1, 162, 163, 164, 165, -1, 167, -1, - 169, -1, -1, -1, 173, 174, 175, -1, 177, -1, - 179, -1, 181, 182, 183, -1, 185, 186, 187, 188, - 189, 190, 191, -1, 193, 194, 195, 196, -1, 198, - 199, 200, 201, 202, 203, -1, 205, -1, 207, 208, - 209, 210, 211, 212, 213, 214, -1, 216, -1, 218, - -1, -1, 221, -1, 223, 224, 225, 226, 227, 228, - -1, -1, 231, -1, 233, -1, -1, 236, 237, 238, - -1, -1, 241, 242, 243, 244, 245, 246, 247, 248, - 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, - 259, 260, 261, 262, 263, 264, 265, -1, 267, 268, - 269, 270, 271, -1, 273, 274, -1, 276, -1, 278, - 279, 280, 281, 282, 283, -1, 285, 286, -1, -1, - 289, 290, 291, -1, -1, 294, 295, -1, 297, -1, - 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, - 309, -1, 311, 312, 313, 314, 315, 316, 317, 318, - 319, -1, 321, 322, 323, 324, 325, 326, -1, 328, - 329, 330, 331, 332, 333, 334, 335, -1, 337, 338, - 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, - 349, -1, 351, 352, -1, 354, 355, 356, 357, 358, - 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, - -1, 370, 371, 372, 373, 374, -1, 376, 377, 378, - 379, 380, -1, 382, 383, 384, 385, -1, 387, 388, - 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, - 399, 400, 401, 402, -1, 404, 405, -1, 407, -1, - 409, 410, 411, 412, 413, -1, 415, 416, -1, -1, - 419, 420, 421, 422, 423, -1, 425, 426, 427, 428, - 429, 430, 431, 432, -1, -1, 435, 436, 437, 438, - 439, -1, -1, 442, 443, 444, 445, 446, 447, 448, - -1, 450, -1, 452, 453, 454, 455, 456, -1, -1, - 459, -1, -1, 462, 463, 464, 465, 466, 467, 468, - 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, - 479, 480, 481, 482, 3, -1, 5, -1, -1, -1, + -1, -1, -1, 21, 22, 23, 24, 25, 26, 27, + 28, 29, 30, 31, 32, -1, -1, -1, -1, -1, + -1, -1, 40, 41, -1, 43, 44, 45, -1, 47, + 48, 49, 50, 51, -1, 53, 54, -1, 56, 57, + 58, 59, 60, 61, -1, -1, 64, 65, 66, 67, + 68, -1, 70, 71, 72, 73, 74, -1, -1, -1, + 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, + -1, 89, 90, 91, 92, 93, 94, -1, -1, 97, + 98, 99, -1, -1, -1, -1, -1, -1, -1, 107, + 108, 109, 110, 111, 112, 113, 114, 115, 116, -1, + 118, -1, 120, 121, 122, 123, 124, 125, -1, 127, + 128, 129, 130, 131, -1, -1, 134, 135, 136, 137, + 138, -1, 140, 141, 142, -1, 144, 145, 146, -1, + 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, + 158, -1, 160, -1, 162, 163, 164, 165, -1, 167, + -1, 169, -1, -1, -1, 173, 174, 175, -1, 177, + -1, 179, -1, 181, 182, 183, -1, 185, 186, 187, + 188, 189, 190, 191, -1, 193, 194, 195, 196, -1, + 198, 199, 200, 201, 202, 203, -1, 205, -1, 207, + 208, 209, 210, 211, 212, 213, 214, -1, 216, -1, + 218, -1, -1, 221, -1, 223, 224, 225, 226, 227, + 228, -1, -1, 231, -1, 233, -1, -1, 236, 237, + 238, -1, -1, 241, 242, 243, 244, 245, 246, 247, + 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, + 258, 259, 260, 261, 262, 263, 264, 265, -1, 267, + 268, 269, 270, 271, -1, 273, 274, -1, 276, -1, + 278, 279, 280, 281, 282, 283, -1, 285, 286, -1, + -1, 289, 290, 291, -1, -1, 294, 295, -1, 297, + -1, 299, 300, 301, 302, 303, 304, 305, 306, 307, + 308, 309, -1, 311, 312, 313, 314, 315, 316, 317, + 318, 319, -1, 321, 322, 323, 324, 325, 326, -1, + 328, 329, 330, 331, 332, 333, 334, 335, -1, 337, + 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, + 348, 349, -1, 351, 352, -1, 354, 355, 356, 357, + 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, + 368, -1, 370, 371, 372, 373, 374, -1, 376, 377, + 378, 379, 380, -1, 382, 383, 384, 385, -1, 387, + 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, + 398, 399, 400, 401, 402, -1, 404, 405, -1, 407, + -1, 409, 410, 411, 412, 413, -1, 415, 416, -1, + -1, 419, 420, 421, 422, 423, -1, 425, 426, 427, + 428, 429, 430, 431, 432, -1, -1, 435, 436, 437, + 438, 439, -1, -1, 442, 443, 444, 445, 446, 447, + 448, -1, 450, -1, 452, 453, 454, 455, 456, -1, + -1, 459, -1, -1, 462, 463, 464, 465, 466, 467, + 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, + 478, 479, 480, 481, 482, 3, -1, 5, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 21, 22, 23, 24, 25, 26, 27, 28, - -1, 30, 31, 32, -1, -1, -1, -1, -1, -1, - -1, 40, 41, -1, 43, 44, 45, -1, 47, 48, - 49, 50, 51, -1, 53, 54, -1, 56, 57, 58, - 59, 60, 61, -1, -1, 64, 65, 66, 67, 68, - -1, 70, 71, 72, 73, 74, -1, -1, -1, 78, - 79, 80, 81, 82, 83, -1, 85, 86, 87, -1, - 89, 90, 91, 92, 93, 94, -1, -1, 97, 98, - 99, -1, -1, -1, -1, -1, -1, -1, 107, 108, - 109, 110, 111, 112, 113, 114, 115, 116, -1, 118, - -1, 120, 121, 122, 123, 124, 125, -1, 127, 128, - 129, 130, 131, -1, -1, 134, 135, 136, 137, 138, - -1, 140, 141, 142, -1, 144, 145, 146, -1, 148, - 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, - -1, 160, -1, 162, 163, 164, 165, -1, 167, -1, - 169, -1, -1, -1, 173, 174, 175, -1, 177, -1, - 179, -1, 181, 182, 183, -1, 185, 186, 187, 188, - 189, 190, 191, -1, 193, 194, 195, 196, -1, 198, - 199, 200, 201, 202, 203, -1, 205, -1, 207, 208, - 209, 210, 211, 212, 213, 214, -1, 216, -1, 218, - -1, -1, 221, -1, 223, 224, 225, 226, 227, 228, - -1, -1, 231, -1, 233, -1, -1, 236, 237, 238, - -1, -1, 241, 242, 243, 244, 245, 246, 247, 248, - 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, - 259, 260, 261, 262, 263, 264, 265, -1, 267, 268, - 269, 270, 271, -1, 273, 274, -1, 276, -1, 278, - 279, 280, 281, 282, 283, -1, 285, 286, -1, -1, - 289, 290, 291, -1, -1, 294, 295, -1, 297, -1, - 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, - 309, -1, 311, 312, 313, 314, 315, 316, 317, 318, - 319, -1, 321, 322, 323, 324, 325, 326, -1, 328, - 329, 330, 331, 332, 333, 334, 335, -1, 337, 338, - 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, - 349, -1, 351, 352, -1, 354, 355, 356, 357, 358, - 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, - -1, 370, 371, 372, 373, 374, -1, 376, 377, 378, - 379, 380, -1, 382, 383, 384, 385, -1, 387, 388, - 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, - 399, 400, 401, 402, -1, 404, 405, -1, 407, -1, - 409, 410, 411, 412, 413, -1, 415, 416, -1, -1, - 419, 420, 421, 422, 423, -1, 425, 426, 427, 428, - 429, 430, 431, 432, -1, -1, 435, 436, 437, 438, - 439, -1, -1, 442, 443, 444, 445, 446, 447, 448, - -1, 450, -1, 452, 453, 454, 455, 456, -1, -1, - 459, -1, -1, 462, 463, 464, 465, 466, 467, 468, - 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, - 479, 480, 481, 482, 3, -1, 5, -1, -1, -1, + -1, -1, -1, 21, 22, 23, 24, 25, 26, 27, + 28, -1, 30, 31, 32, -1, -1, -1, -1, -1, + -1, -1, 40, 41, -1, 43, 44, 45, -1, 47, + 48, 49, 50, 51, -1, 53, 54, -1, 56, 57, + 58, 59, 60, 61, -1, -1, 64, 65, 66, 67, + 68, -1, 70, 71, 72, 73, 74, -1, -1, -1, + 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, + -1, 89, 90, 91, 92, 93, 94, -1, -1, 97, + 98, 99, -1, -1, -1, -1, -1, -1, -1, 107, + 108, 109, 110, 111, 112, 113, 114, 115, 116, -1, + 118, -1, 120, 121, 122, 123, 124, 125, -1, 127, + 128, 129, 130, 131, -1, -1, 134, 135, 136, 137, + 138, -1, 140, 141, 142, -1, 144, 145, 146, -1, + 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, + 158, -1, 160, -1, 162, 163, 164, 165, -1, 167, + -1, 169, -1, -1, -1, 173, 174, 175, -1, 177, + -1, 179, -1, 181, 182, 183, -1, 185, 186, 187, + 188, 189, 190, 191, -1, 193, 194, 195, 196, -1, + 198, 199, 200, 201, 202, 203, -1, 205, -1, 207, + 208, 209, 210, 211, 212, 213, 214, -1, 216, -1, + 218, -1, -1, 221, -1, 223, 224, 225, 226, 227, + 228, -1, -1, 231, -1, 233, -1, -1, 236, 237, + 238, -1, -1, 241, 242, 243, 244, 245, 246, 247, + 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, + 258, 259, 260, 261, 262, 263, 264, 265, -1, 267, + 268, 269, 270, 271, -1, 273, 274, -1, 276, -1, + 278, 279, 280, 281, 282, 283, -1, 285, 286, -1, + -1, 289, 290, 291, -1, -1, 294, 295, -1, 297, + -1, 299, 300, 301, 302, 303, 304, 305, 306, 307, + 308, 309, -1, 311, 312, 313, 314, 315, 316, 317, + 318, 319, -1, 321, 322, 323, 324, 325, 326, -1, + 328, 329, 330, 331, 332, 333, 334, 335, -1, 337, + 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, + 348, 349, -1, 351, 352, -1, 354, 355, 356, 357, + 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, + 368, -1, 370, 371, 372, 373, 374, -1, 376, 377, + 378, 379, 380, -1, 382, 383, 384, 385, -1, 387, + 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, + 398, 399, 400, 401, 402, -1, 404, 405, -1, 407, + -1, 409, 410, 411, 412, 413, -1, 415, 416, -1, + -1, 419, 420, 421, 422, 423, -1, 425, 426, 427, + 428, 429, 430, 431, 432, -1, -1, 435, 436, 437, + 438, 439, -1, -1, 442, 443, 444, 445, 446, 447, + 448, -1, 450, -1, 452, 453, 454, 455, 456, -1, + -1, 459, -1, -1, 462, 463, 464, 465, 466, 467, + 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, + 478, 479, 480, 481, 482, 3, -1, 5, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 21, 22, 23, 24, 25, 26, 27, 28, - -1, 30, 31, 32, -1, -1, -1, -1, -1, -1, - -1, 40, 41, -1, 43, 44, 45, -1, 47, 48, - 49, 50, 51, -1, 53, 54, -1, 56, 57, 58, - 59, 60, 61, -1, -1, 64, 65, 66, 67, 68, - -1, 70, 71, 72, 73, 74, -1, -1, -1, 78, - 79, 80, 81, 82, 83, -1, 85, 86, 87, -1, - 89, 90, 91, 92, 93, 94, -1, -1, 97, 98, - 99, -1, -1, -1, -1, -1, -1, -1, 107, 108, - 109, 110, 111, 112, 113, 114, 115, 116, -1, 118, - -1, 120, 121, 122, 123, 124, 125, -1, 127, 128, - 129, 130, 131, -1, -1, 134, 135, 136, 137, 138, - -1, 140, 141, 142, -1, 144, 145, 146, -1, 148, - 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, - -1, 160, -1, 162, 163, 164, 165, -1, 167, -1, - 169, -1, -1, -1, 173, 174, 175, -1, 177, -1, - 179, -1, 181, 182, 183, -1, 185, 186, 187, 188, - 189, 190, 191, -1, 193, 194, 195, 196, -1, 198, - 199, 200, 201, 202, 203, -1, 205, -1, 207, 208, - 209, 210, 211, 212, 213, 214, -1, 216, -1, 218, - -1, -1, 221, -1, 223, 224, 225, 226, 227, 228, - -1, -1, 231, -1, 233, -1, -1, 236, 237, 238, - -1, -1, 241, 242, 243, 244, 245, 246, 247, 248, - 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, - 259, 260, 261, 262, 263, 264, 265, -1, 267, 268, - 269, 270, 271, -1, 273, 274, -1, 276, -1, 278, - 279, 280, 281, 282, 283, -1, 285, 286, -1, -1, - 289, 290, 291, -1, -1, 294, 295, -1, 297, -1, - 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, - 309, -1, 311, 312, 313, 314, 315, 316, 317, 318, - 319, -1, 321, 322, 323, 324, 325, 326, -1, 328, - 329, 330, 331, 332, 333, 334, 335, -1, 337, 338, - 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, - 349, -1, 351, 352, -1, 354, 355, 356, 357, 358, - 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, - -1, 370, 371, 372, 373, 374, -1, 376, 377, 378, - 379, 380, -1, 382, 383, 384, 385, -1, 387, 388, - 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, - 399, 400, 401, 402, -1, 404, 405, -1, 407, -1, - 409, 410, 411, 412, 413, -1, 415, 416, -1, -1, - 419, 420, 421, 422, 423, -1, 425, 426, 427, 428, - 429, 430, 431, 432, -1, -1, 435, 436, 437, 438, - 439, -1, -1, 442, 443, 444, 445, 446, 447, 448, - -1, 450, -1, 452, 453, 454, 455, 456, -1, -1, - 459, -1, -1, 462, 463, 464, 465, 466, 467, 468, - 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, - 479, 480, 481, 482, 3, -1, -1, -1, -1, -1, + -1, -1, -1, 21, 22, 23, 24, 25, 26, 27, + 28, -1, 30, 31, 32, -1, -1, -1, -1, -1, + -1, -1, 40, 41, -1, 43, 44, 45, -1, 47, + 48, 49, 50, 51, -1, 53, 54, -1, 56, 57, + 58, 59, 60, 61, -1, -1, 64, 65, 66, 67, + 68, -1, 70, 71, 72, 73, 74, -1, -1, -1, + 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, + -1, 89, 90, 91, 92, 93, 94, -1, -1, 97, + 98, 99, -1, -1, -1, -1, -1, -1, -1, 107, + 108, 109, 110, 111, 112, 113, 114, 115, 116, -1, + 118, -1, 120, 121, 122, 123, 124, 125, -1, 127, + 128, 129, 130, 131, -1, -1, 134, 135, 136, 137, + 138, -1, 140, 141, 142, -1, 144, 145, 146, -1, + 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, + 158, -1, 160, -1, 162, 163, 164, 165, -1, 167, + -1, 169, -1, -1, -1, 173, 174, 175, -1, 177, + -1, 179, -1, 181, 182, 183, -1, 185, 186, 187, + 188, 189, 190, 191, -1, 193, 194, 195, 196, -1, + 198, 199, 200, 201, 202, 203, -1, 205, -1, 207, + 208, 209, 210, 211, 212, 213, 214, -1, 216, -1, + 218, -1, -1, 221, -1, 223, 224, 225, 226, 227, + 228, -1, -1, 231, -1, 233, -1, -1, 236, 237, + 238, -1, -1, 241, 242, 243, 244, 245, 246, 247, + 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, + 258, 259, 260, 261, 262, 263, 264, 265, -1, 267, + 268, 269, 270, 271, -1, 273, 274, -1, 276, -1, + 278, 279, 280, 281, 282, 283, -1, 285, 286, -1, + -1, 289, 290, 291, -1, -1, 294, 295, -1, 297, + -1, 299, 300, 301, 302, 303, 304, 305, 306, 307, + 308, 309, -1, 311, 312, 313, 314, 315, 316, 317, + 318, 319, -1, 321, 322, 323, 324, 325, 326, -1, + 328, 329, 330, 331, 332, 333, 334, 335, -1, 337, + 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, + 348, 349, -1, 351, 352, -1, 354, 355, 356, 357, + 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, + 368, -1, 370, 371, 372, 373, 374, -1, 376, 377, + 378, 379, 380, -1, 382, 383, 384, 385, -1, 387, + 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, + 398, 399, 400, 401, 402, -1, 404, 405, -1, 407, + -1, 409, 410, 411, 412, 413, -1, 415, 416, -1, + -1, 419, 420, 421, 422, 423, -1, 425, 426, 427, + 428, 429, 430, 431, 432, -1, -1, 435, 436, 437, + 438, 439, -1, -1, 442, 443, 444, 445, 446, 447, + 448, -1, 450, -1, 452, 453, 454, 455, 456, -1, + -1, 459, -1, -1, 462, 463, 464, 465, 466, 467, + 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, + 478, 479, 480, 481, 482, 3, -1, 5, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 21, 22, 23, 24, 25, 26, 27, 28, - -1, 30, 31, 32, -1, -1, -1, -1, -1, -1, - -1, 40, 41, -1, 43, 44, 45, 46, 47, 48, - 49, -1, 51, 52, 53, 54, -1, 56, 57, 58, - 59, 60, 61, -1, -1, 64, 65, 66, 67, 68, - -1, 70, 71, 72, 73, -1, -1, 76, -1, 78, - 79, 80, 81, 82, 83, 84, 85, 86, 87, -1, - 89, 90, 91, 92, 93, 94, -1, 96, 97, 98, - 99, 100, 101, 102, 103, -1, -1, 106, 107, 108, - 109, 110, 111, 112, 113, 114, 115, 116, -1, 118, - -1, 120, 121, 122, 123, 124, 125, -1, 127, 128, - 129, 130, 131, -1, -1, 134, 135, 136, 137, 138, - -1, 140, 141, 142, -1, 144, 145, 146, -1, 148, - 149, 150, 151, -1, 153, 154, 155, 156, 157, -1, - -1, 160, -1, 162, 163, 164, 165, -1, 167, -1, - 169, 170, -1, 172, 173, 174, -1, 176, 177, -1, - 179, -1, -1, -1, 183, -1, 185, 186, 187, 188, - 189, 190, 191, 192, 193, 194, 195, 196, -1, 198, - 199, 200, 201, 202, 203, -1, 205, 206, -1, 208, - 209, 210, 211, 212, 213, 214, -1, 216, -1, 218, - 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, - -1, -1, 231, 232, 233, 234, -1, 236, 237, 238, - -1, -1, 241, 242, 243, 244, 245, 246, 247, 248, - 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, - 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, - 269, 270, -1, -1, 273, 274, 275, 276, -1, -1, - 279, 280, 281, 282, 283, -1, 285, 286, -1, -1, - 289, 290, 291, -1, -1, 294, -1, 296, 297, 298, - -1, 300, 301, 302, 303, 304, 305, 306, 307, 308, - 309, -1, 311, 312, -1, 314, 315, -1, 317, 318, - 319, -1, 321, 322, 323, 324, 325, 326, -1, 328, - 329, 330, 331, 332, 333, 334, 335, -1, 337, 338, - 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, - 349, -1, 351, 352, 353, 354, 355, 356, 357, 358, - 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, - -1, 370, 371, 372, 373, 374, 375, 376, 377, 378, - 379, 380, 381, 382, 383, 384, 385, -1, 387, 388, - 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, - 399, 400, -1, 402, -1, 404, 405, -1, 407, 408, - 409, 410, 411, 412, 413, -1, 415, 416, -1, -1, - 419, 420, -1, 422, -1, -1, 425, 426, 427, 428, - 429, 430, 431, 432, -1, -1, 435, 436, 437, 438, - 439, 440, -1, 442, 443, 444, 445, 446, -1, 448, - -1, 450, 451, 452, 453, 454, 455, 456, -1, -1, - 459, -1, -1, 462, 463, 464, 465, 466, 467, 3, - -1, 5, -1, -1, -1, -1, -1, -1, -1, -1, - 479, 480, 481, 482, -1, -1, -1, 21, 22, 23, - 24, 25, 26, 27, 28, -1, 30, 31, 32, -1, - -1, -1, -1, -1, -1, -1, 40, 41, -1, 43, - 44, 45, -1, 47, 48, 49, 50, 51, -1, 53, - 54, -1, 56, 57, 58, 59, 60, 61, -1, -1, - 64, 65, 66, 67, 68, -1, 70, 71, 72, 73, - 74, -1, -1, -1, 78, 79, 80, 81, 82, 83, - -1, 85, 86, 87, -1, 89, 90, 91, 92, 93, - 94, -1, -1, 97, 98, 99, -1, -1, -1, -1, - -1, -1, -1, 107, 108, 109, 110, 111, 112, 113, - 114, 115, 116, -1, 118, -1, 120, 121, 122, 123, - 124, 125, -1, 127, 128, 129, 130, 131, -1, -1, - 134, 135, 136, 137, 138, -1, 140, 141, 142, -1, - 144, 145, 146, -1, 148, 149, 150, 151, 152, 153, - 154, 155, 156, 157, 158, -1, 160, -1, 162, 163, - 164, 165, -1, 167, -1, 169, -1, -1, -1, 173, - 174, 175, -1, 177, -1, 179, -1, 181, 182, 183, - -1, 185, 186, 187, 188, 189, 190, 191, -1, 193, - 194, 195, 196, -1, 198, 199, 200, 201, 202, 203, - -1, 205, -1, 207, 208, 209, 210, 211, 212, 213, - 214, -1, 216, -1, 218, -1, -1, 221, -1, 223, - 224, 225, 226, 227, 228, -1, -1, 231, -1, 233, - -1, -1, 236, 237, 238, -1, -1, 241, 242, 243, - 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, - 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, - 264, 265, -1, 267, 268, 269, 270, 271, -1, 273, - 274, -1, 276, -1, 278, 279, 280, 281, 282, 283, - -1, 285, 286, -1, -1, 289, 290, 291, -1, -1, - 294, 295, -1, 297, -1, 299, 300, 301, 302, 303, - 304, 305, 306, 307, 308, 309, -1, 311, 312, 313, - 314, 315, 316, 317, 318, 319, -1, 321, 322, 323, - 324, 325, 326, -1, 328, 329, 330, 331, 332, 333, - 334, 335, -1, 337, 338, 339, 340, 341, 342, 343, - 344, 345, 346, 347, 348, 349, -1, 351, 352, -1, - 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, - 364, 365, 366, 367, 368, -1, 370, 371, 372, 373, - 374, -1, 376, 377, 378, 379, 380, -1, 382, 383, - 384, 385, -1, 387, 388, 389, 390, 391, 392, 393, - 394, 395, 396, 397, 398, 399, 400, 401, 402, -1, - 404, 405, -1, 407, -1, 409, 410, 411, 412, 413, - -1, 415, 416, -1, -1, 419, 420, 421, 422, 423, - -1, 425, 426, 427, 428, 429, 430, 431, 432, -1, - -1, 435, 436, 437, 438, 439, -1, -1, 442, 443, - 444, 445, 446, 447, 448, -1, 450, -1, 452, 453, - 454, 455, 456, -1, -1, 459, -1, -1, 462, 463, - 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, - 474, 475, 476, 477, 478, 479, 480, 481, 482, 3, + -1, -1, -1, 21, 22, 23, 24, 25, 26, 27, + 28, -1, 30, 31, 32, -1, -1, -1, -1, -1, + -1, -1, 40, 41, -1, 43, 44, 45, -1, 47, + 48, 49, 50, 51, -1, 53, 54, -1, 56, 57, + 58, 59, 60, 61, -1, -1, 64, 65, 66, 67, + 68, -1, 70, 71, 72, 73, 74, -1, -1, -1, + 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, + -1, 89, 90, 91, 92, 93, 94, -1, -1, 97, + 98, 99, -1, -1, -1, -1, -1, -1, -1, 107, + 108, 109, 110, 111, 112, 113, 114, 115, 116, -1, + 118, -1, 120, 121, 122, 123, 124, 125, -1, 127, + 128, 129, 130, 131, -1, -1, 134, 135, 136, 137, + 138, -1, 140, 141, 142, -1, 144, 145, 146, -1, + 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, + 158, -1, 160, -1, 162, 163, 164, 165, -1, 167, + -1, 169, -1, -1, -1, 173, 174, 175, -1, 177, + -1, 179, -1, 181, 182, 183, -1, 185, 186, 187, + 188, 189, 190, 191, -1, 193, 194, 195, 196, -1, + 198, 199, 200, 201, 202, 203, -1, 205, -1, 207, + 208, 209, 210, 211, 212, 213, 214, -1, 216, -1, + 218, -1, -1, 221, -1, 223, 224, 225, 226, 227, + 228, -1, -1, 231, -1, 233, -1, -1, 236, 237, + 238, -1, -1, 241, 242, 243, 244, 245, 246, 247, + 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, + 258, 259, 260, 261, 262, 263, 264, 265, -1, 267, + 268, 269, 270, 271, -1, 273, 274, -1, 276, -1, + 278, 279, 280, 281, 282, 283, -1, 285, 286, -1, + -1, 289, 290, 291, -1, -1, 294, 295, -1, 297, + -1, 299, 300, 301, 302, 303, 304, 305, 306, 307, + 308, 309, -1, 311, 312, 313, 314, 315, 316, 317, + 318, 319, -1, 321, 322, 323, 324, 325, 326, -1, + 328, 329, 330, 331, 332, 333, 334, 335, -1, 337, + 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, + 348, 349, -1, 351, 352, -1, 354, 355, 356, 357, + 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, + 368, -1, 370, 371, 372, 373, 374, -1, 376, 377, + 378, 379, 380, -1, 382, 383, 384, 385, -1, 387, + 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, + 398, 399, 400, 401, 402, -1, 404, 405, -1, 407, + -1, 409, 410, 411, 412, 413, -1, 415, 416, -1, + -1, 419, 420, 421, 422, 423, -1, 425, 426, 427, + 428, 429, 430, 431, 432, -1, -1, 435, 436, 437, + 438, 439, -1, -1, 442, 443, 444, 445, 446, 447, + 448, -1, 450, -1, 452, 453, 454, 455, 456, -1, + -1, 459, -1, -1, 462, 463, 464, 465, 466, 467, + 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, + 478, 479, 480, 481, 482, 3, -1, 5, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 21, 22, 23, - 24, 25, 26, 27, 28, -1, 30, 31, 32, -1, - -1, -1, -1, -1, 38, -1, 40, 41, -1, 43, - 44, 45, -1, 47, 48, 49, 50, 51, -1, 53, - 54, -1, 56, 57, 58, 59, 60, 61, -1, -1, - 64, 65, 66, 67, 68, -1, 70, 71, 72, 73, - 74, -1, -1, -1, 78, 79, 80, 81, 82, 83, - -1, 85, 86, 87, -1, 89, 90, 91, 92, 93, - 94, -1, -1, 97, 98, 99, -1, -1, -1, -1, - -1, -1, -1, 107, 108, 109, 110, 111, 112, 113, - 114, 115, 116, -1, 118, -1, 120, 121, 122, 123, - 124, 125, -1, 127, 128, 129, 130, 131, -1, -1, - 134, 135, 136, 137, 138, -1, 140, 141, 142, -1, - 144, 145, 146, -1, 148, 149, 150, 151, 152, 153, - 154, 155, 156, 157, 158, -1, 160, -1, 162, 163, - 164, 165, -1, 167, -1, 169, -1, -1, -1, 173, - 174, 175, -1, 177, -1, 179, -1, 181, 182, 183, - -1, 185, 186, 187, 188, 189, 190, 191, -1, 193, - 194, 195, 196, -1, 198, 199, 200, 201, 202, 203, - -1, 205, -1, 207, 208, 209, 210, 211, 212, 213, - 214, -1, 216, -1, 218, -1, -1, 221, -1, 223, - 224, 225, 226, 227, 228, -1, -1, 231, -1, 233, - -1, -1, 236, 237, 238, -1, -1, 241, 242, 243, - 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, - 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, - 264, 265, -1, 267, 268, 269, 270, 271, -1, 273, - 274, -1, 276, -1, 278, 279, 280, 281, 282, 283, - -1, 285, 286, -1, -1, 289, 290, 291, -1, -1, - 294, 295, -1, 297, -1, 299, 300, 301, 302, 303, - 304, 305, 306, 307, 308, 309, -1, 311, 312, 313, - 314, 315, 316, 317, 318, 319, -1, 321, 322, 323, - 324, 325, 326, -1, 328, 329, 330, 331, 332, 333, - 334, 335, -1, 337, 338, 339, 340, 341, 342, 343, - 344, 345, 346, 347, 348, 349, -1, 351, 352, -1, - 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, - 364, 365, 366, 367, 368, -1, 370, 371, 372, 373, - 374, -1, 376, 377, 378, 379, 380, -1, 382, 383, - 384, 385, -1, 387, 388, 389, 390, 391, 392, 393, - 394, 395, 396, 397, 398, 399, 400, 401, 402, -1, - 404, 405, -1, 407, -1, 409, 410, 411, 412, 413, - -1, 415, 416, -1, -1, 419, 420, 421, 422, 423, - -1, 425, 426, 427, 428, 429, 430, 431, 432, -1, - -1, 435, 436, 437, 438, 439, -1, -1, 442, 443, - 444, 445, 446, 447, 448, -1, 450, -1, 452, 453, - 454, 455, 456, -1, -1, 459, -1, -1, 462, 463, - 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, - 474, 475, 476, 477, 478, 479, 480, 481, 482, 3, + -1, -1, -1, 21, 22, 23, 24, 25, 26, 27, + 28, -1, 30, 31, 32, -1, -1, -1, -1, -1, + -1, -1, 40, 41, -1, 43, 44, 45, -1, 47, + 48, 49, 50, 51, -1, 53, 54, -1, 56, 57, + 58, 59, 60, 61, -1, -1, 64, 65, 66, 67, + 68, -1, 70, 71, 72, 73, 74, -1, -1, -1, + 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, + -1, 89, 90, 91, 92, 93, 94, -1, -1, 97, + 98, 99, -1, -1, -1, -1, -1, -1, -1, 107, + 108, 109, 110, 111, 112, 113, 114, 115, 116, -1, + 118, -1, 120, 121, 122, 123, 124, 125, -1, 127, + 128, 129, 130, 131, -1, -1, 134, 135, 136, 137, + 138, -1, 140, 141, 142, -1, 144, 145, 146, -1, + 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, + 158, -1, 160, -1, 162, 163, 164, 165, -1, 167, + -1, 169, -1, -1, -1, 173, 174, 175, -1, 177, + -1, 179, -1, 181, 182, 183, -1, 185, 186, 187, + 188, 189, 190, 191, -1, 193, 194, 195, 196, -1, + 198, 199, 200, 201, 202, 203, -1, 205, -1, 207, + 208, 209, 210, 211, 212, 213, 214, -1, 216, -1, + 218, -1, -1, 221, -1, 223, 224, 225, 226, 227, + 228, -1, -1, 231, -1, 233, -1, -1, 236, 237, + 238, -1, -1, 241, 242, 243, 244, 245, 246, 247, + 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, + 258, 259, 260, 261, 262, 263, 264, 265, -1, 267, + 268, 269, 270, 271, -1, 273, 274, -1, 276, -1, + 278, 279, 280, 281, 282, 283, -1, 285, 286, -1, + -1, 289, 290, 291, -1, -1, 294, 295, -1, 297, + -1, 299, 300, 301, 302, 303, 304, 305, 306, 307, + 308, 309, -1, 311, 312, 313, 314, 315, 316, 317, + 318, 319, -1, 321, 322, 323, 324, 325, 326, -1, + 328, 329, 330, 331, 332, 333, 334, 335, -1, 337, + 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, + 348, 349, -1, 351, 352, -1, 354, 355, 356, 357, + 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, + 368, -1, 370, 371, 372, 373, 374, -1, 376, 377, + 378, 379, 380, -1, 382, 383, 384, 385, -1, 387, + 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, + 398, 399, 400, 401, 402, -1, 404, 405, -1, 407, + -1, 409, 410, 411, 412, 413, -1, 415, 416, -1, + -1, 419, 420, 421, 422, 423, -1, 425, 426, 427, + 428, 429, 430, 431, 432, -1, -1, 435, 436, 437, + 438, 439, -1, -1, 442, 443, 444, 445, 446, 447, + 448, -1, 450, -1, 452, 453, 454, 455, 456, -1, + -1, 459, -1, -1, 462, 463, 464, 465, 466, 467, + 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, + 478, 479, 480, 481, 482, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 21, 22, 23, - 24, 25, 26, 27, 28, -1, 30, 31, 32, -1, - -1, -1, -1, -1, 38, -1, 40, 41, -1, 43, - 44, 45, -1, 47, 48, 49, 50, 51, -1, 53, - 54, -1, 56, 57, 58, 59, 60, 61, -1, -1, - 64, 65, 66, 67, 68, -1, 70, 71, 72, 73, - 74, -1, -1, -1, 78, 79, 80, 81, 82, 83, - -1, 85, 86, 87, -1, 89, 90, 91, 92, 93, - 94, -1, -1, 97, 98, 99, -1, -1, -1, -1, - -1, -1, -1, 107, 108, 109, 110, 111, 112, 113, - 114, 115, 116, -1, 118, -1, 120, 121, 122, 123, - 124, 125, -1, 127, 128, 129, 130, 131, -1, -1, - 134, 135, 136, 137, 138, -1, 140, 141, 142, -1, - 144, 145, 146, -1, 148, 149, 150, 151, 152, 153, - 154, 155, 156, 157, 158, -1, 160, -1, 162, 163, - 164, 165, -1, 167, -1, 169, -1, -1, -1, 173, - 174, 175, -1, 177, -1, 179, -1, 181, 182, 183, - -1, 185, 186, 187, 188, 189, 190, 191, -1, 193, - 194, 195, 196, -1, 198, 199, 200, 201, 202, 203, - -1, 205, -1, 207, 208, 209, 210, 211, 212, 213, - 214, -1, 216, -1, 218, -1, -1, 221, -1, 223, - 224, 225, 226, 227, 228, -1, -1, 231, -1, 233, - -1, -1, 236, 237, 238, -1, -1, 241, 242, 243, - 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, - 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, - 264, 265, -1, 267, 268, 269, 270, 271, -1, 273, - 274, -1, 276, -1, 278, 279, 280, 281, 282, 283, - -1, 285, 286, -1, -1, 289, 290, 291, -1, -1, - 294, 295, -1, 297, -1, 299, 300, 301, 302, 303, - 304, 305, 306, 307, 308, 309, -1, 311, 312, 313, - 314, 315, 316, 317, 318, 319, -1, 321, 322, 323, - 324, 325, 326, -1, 328, 329, 330, 331, 332, 333, - 334, 335, -1, 337, 338, 339, 340, 341, 342, 343, - 344, 345, 346, 347, 348, 349, -1, 351, 352, -1, - 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, - 364, 365, 366, 367, 368, -1, 370, 371, 372, 373, - 374, -1, 376, 377, 378, 379, 380, -1, 382, 383, - 384, 385, -1, 387, 388, 389, 390, 391, 392, 393, - 394, 395, 396, 397, 398, 399, 400, 401, 402, -1, - 404, 405, -1, 407, -1, 409, 410, 411, 412, 413, - -1, 415, 416, -1, -1, 419, 420, 421, 422, 423, - -1, 425, 426, 427, 428, 429, 430, 431, 432, -1, - -1, 435, 436, 437, 438, 439, -1, -1, 442, 443, - 444, 445, 446, 447, 448, -1, 450, -1, 452, 453, - 454, 455, 456, -1, -1, 459, -1, -1, 462, 463, - 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, - 474, 475, 476, 477, 478, 479, 480, 481, 482, 3, - -1, 5, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 21, 22, 23, - 24, 25, 26, 27, 28, -1, 30, 31, 32, -1, - -1, -1, -1, -1, -1, -1, 40, 41, -1, 43, - 44, 45, -1, 47, 48, 49, 50, 51, -1, 53, - 54, -1, 56, 57, 58, 59, 60, 61, -1, -1, - 64, 65, 66, 67, 68, -1, 70, 71, 72, 73, - 74, -1, -1, -1, 78, 79, 80, 81, 82, 83, - -1, 85, 86, 87, -1, 89, 90, 91, 92, 93, - 94, -1, -1, 97, 98, 99, -1, -1, -1, -1, - -1, -1, -1, 107, 108, 109, 110, 111, 112, 113, - 114, 115, 116, -1, 118, -1, 120, 121, 122, 123, - 124, 125, -1, 127, 128, 129, 130, 131, -1, -1, - 134, 135, 136, 137, 138, -1, 140, 141, 142, -1, - 144, 145, 146, -1, 148, 149, 150, 151, 152, 153, - 154, 155, 156, 157, 158, -1, 160, -1, 162, 163, - 164, 165, -1, 167, -1, 169, -1, -1, -1, 173, - 174, 175, -1, 177, -1, 179, -1, 181, 182, 183, - -1, 185, 186, 187, 188, 189, 190, 191, -1, 193, - 194, 195, 196, -1, 198, 199, 200, 201, 202, 203, - -1, 205, -1, 207, 208, 209, 210, 211, 212, 213, - 214, -1, 216, -1, 218, -1, -1, 221, -1, 223, - 224, 225, 226, 227, 228, -1, -1, 231, -1, 233, - -1, -1, 236, 237, 238, -1, -1, 241, 242, 243, - 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, - 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, - 264, 265, -1, 267, 268, 269, 270, 271, -1, 273, - 274, -1, 276, -1, 278, 279, 280, 281, 282, 283, - -1, 285, 286, -1, -1, 289, 290, 291, -1, -1, - 294, 295, -1, 297, -1, 299, 300, 301, 302, 303, - 304, 305, 306, 307, 308, 309, -1, 311, 312, 313, - 314, 315, 316, 317, 318, 319, -1, 321, 322, 323, - 324, 325, 326, -1, 328, 329, 330, 331, 332, 333, - 334, 335, -1, 337, 338, 339, 340, 341, 342, 343, - 344, 345, 346, 347, 348, 349, -1, 351, 352, -1, - 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, - 364, 365, 366, 367, 368, -1, 370, 371, 372, 373, - 374, -1, 376, 377, 378, 379, 380, -1, 382, 383, - 384, 385, -1, 387, 388, 389, 390, 391, 392, 393, - 394, 395, 396, 397, 398, 399, 400, 401, 402, -1, - 404, 405, -1, 407, -1, 409, 410, 411, 412, 413, - -1, 415, 416, -1, -1, 419, 420, 421, 422, 423, - -1, 425, 426, 427, 428, 429, 430, 431, 432, -1, - -1, 435, 436, 437, 438, 439, -1, -1, 442, 443, - 444, 445, 446, 447, 448, -1, 450, -1, 452, 453, - 454, 455, 456, -1, -1, 459, -1, -1, 462, 463, - 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, - 474, 475, 476, 477, 478, 479, 480, 481, 482, 3, + -1, -1, -1, 21, 22, 23, 24, 25, 26, 27, + 28, -1, 30, 31, 32, -1, -1, -1, -1, -1, + -1, -1, 40, 41, -1, 43, 44, 45, 46, 47, + 48, 49, -1, 51, 52, 53, 54, -1, 56, 57, + 58, 59, 60, 61, -1, -1, 64, 65, 66, 67, + 68, -1, 70, 71, 72, 73, -1, -1, 76, -1, + 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, + -1, 89, 90, 91, 92, 93, 94, -1, 96, 97, + 98, 99, 100, 101, 102, 103, -1, -1, 106, 107, + 108, 109, 110, 111, 112, 113, 114, 115, 116, -1, + 118, -1, 120, 121, 122, 123, 124, 125, -1, 127, + 128, 129, 130, 131, -1, -1, 134, 135, 136, 137, + 138, -1, 140, 141, 142, -1, 144, 145, 146, -1, + 148, 149, 150, 151, -1, 153, 154, 155, 156, 157, + -1, -1, 160, -1, 162, 163, 164, 165, -1, 167, + -1, 169, 170, -1, 172, 173, 174, -1, 176, 177, + -1, 179, -1, -1, -1, 183, -1, 185, 186, 187, + 188, 189, 190, 191, 192, 193, 194, 195, 196, -1, + 198, 199, 200, 201, 202, 203, -1, 205, 206, -1, + 208, 209, 210, 211, 212, 213, 214, -1, 216, -1, + 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, + 228, -1, -1, 231, 232, 233, 234, -1, 236, 237, + 238, -1, -1, 241, 242, 243, 244, 245, 246, 247, + 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, + 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, + 268, 269, 270, -1, -1, 273, 274, 275, 276, -1, + -1, 279, 280, 281, 282, 283, -1, 285, 286, -1, + -1, 289, 290, 291, -1, -1, 294, -1, 296, 297, + 298, -1, 300, 301, 302, 303, 304, 305, 306, 307, + 308, 309, -1, 311, 312, -1, 314, 315, -1, 317, + 318, 319, -1, 321, 322, 323, 324, 325, 326, -1, + 328, 329, 330, 331, 332, 333, 334, 335, -1, 337, + 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, + 348, 349, -1, 351, 352, 353, 354, 355, 356, 357, + 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, + 368, -1, 370, 371, 372, 373, 374, 375, 376, 377, + 378, 379, 380, 381, 382, 383, 384, 385, -1, 387, + 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, + 398, 399, 400, -1, 402, -1, 404, 405, -1, 407, + 408, 409, 410, 411, 412, 413, -1, 415, 416, -1, + -1, 419, 420, -1, 422, -1, -1, 425, 426, 427, + 428, 429, 430, 431, 432, -1, -1, 435, 436, 437, + 438, 439, 440, -1, 442, 443, 444, 445, 446, -1, + 448, -1, 450, 451, 452, 453, 454, 455, 456, -1, + -1, 459, -1, -1, 462, 463, 464, 465, 466, 467, + 3, -1, 5, -1, -1, -1, -1, -1, -1, -1, + -1, 479, 480, 481, 482, -1, -1, -1, 21, 22, + 23, 24, 25, 26, 27, 28, -1, 30, 31, 32, + -1, -1, -1, -1, -1, -1, -1, 40, 41, -1, + 43, 44, 45, -1, 47, 48, 49, 50, 51, -1, + 53, 54, -1, 56, 57, 58, 59, 60, 61, -1, + -1, 64, 65, 66, 67, 68, -1, 70, 71, 72, + 73, 74, -1, -1, -1, 78, 79, 80, 81, 82, + 83, -1, 85, 86, 87, -1, 89, 90, 91, 92, + 93, 94, -1, -1, 97, 98, 99, -1, -1, -1, + -1, -1, -1, -1, 107, 108, 109, 110, 111, 112, + 113, 114, 115, 116, -1, 118, -1, 120, 121, 122, + 123, 124, 125, -1, 127, 128, 129, 130, 131, -1, + -1, 134, 135, 136, 137, 138, -1, 140, 141, 142, + -1, 144, 145, 146, -1, 148, 149, 150, 151, 152, + 153, 154, 155, 156, 157, 158, -1, 160, -1, 162, + 163, 164, 165, -1, 167, -1, 169, -1, -1, -1, + 173, 174, 175, -1, 177, -1, 179, -1, 181, 182, + 183, -1, 185, 186, 187, 188, 189, 190, 191, -1, + 193, 194, 195, 196, -1, 198, 199, 200, 201, 202, + 203, -1, 205, -1, 207, 208, 209, 210, 211, 212, + 213, 214, -1, 216, -1, 218, -1, -1, 221, -1, + 223, 224, 225, 226, 227, 228, -1, -1, 231, -1, + 233, -1, -1, 236, 237, 238, -1, -1, 241, 242, + 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, + 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, + 263, 264, 265, -1, 267, 268, 269, 270, 271, -1, + 273, 274, -1, 276, -1, 278, 279, 280, 281, 282, + 283, -1, 285, 286, -1, -1, 289, 290, 291, -1, + -1, 294, 295, -1, 297, -1, 299, 300, 301, 302, + 303, 304, 305, 306, 307, 308, 309, -1, 311, 312, + 313, 314, 315, 316, 317, 318, 319, -1, 321, 322, + 323, 324, 325, 326, -1, 328, 329, 330, 331, 332, + 333, 334, 335, -1, 337, 338, 339, 340, 341, 342, + 343, 344, 345, 346, 347, 348, 349, -1, 351, 352, + -1, 354, 355, 356, 357, 358, 359, 360, 361, 362, + 363, 364, 365, 366, 367, 368, -1, 370, 371, 372, + 373, 374, -1, 376, 377, 378, 379, 380, -1, 382, + 383, 384, 385, -1, 387, 388, 389, 390, 391, 392, + 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, + -1, 404, 405, -1, 407, -1, 409, 410, 411, 412, + 413, -1, 415, 416, -1, -1, 419, 420, 421, 422, + 423, -1, 425, 426, 427, 428, 429, 430, 431, 432, + -1, -1, 435, 436, 437, 438, 439, -1, -1, 442, + 443, 444, 445, 446, 447, 448, -1, 450, -1, 452, + 453, 454, 455, 456, -1, -1, 459, -1, -1, 462, + 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, + 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, + 3, -1, 5, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 21, 22, + 23, 24, 25, 26, 27, 28, -1, 30, 31, 32, + -1, -1, -1, -1, -1, -1, -1, 40, 41, -1, + 43, 44, 45, -1, 47, 48, 49, 50, 51, -1, + 53, 54, -1, 56, 57, 58, 59, 60, 61, -1, + -1, 64, 65, 66, 67, 68, -1, 70, 71, 72, + 73, 74, -1, -1, -1, 78, 79, 80, 81, 82, + 83, -1, 85, 86, 87, -1, 89, 90, 91, 92, + 93, 94, -1, -1, 97, 98, 99, -1, -1, -1, + -1, -1, -1, -1, 107, 108, 109, 110, 111, 112, + 113, 114, 115, 116, -1, 118, -1, 120, 121, 122, + 123, 124, 125, -1, 127, 128, 129, 130, 131, -1, + -1, 134, 135, 136, 137, 138, -1, 140, 141, 142, + -1, 144, 145, 146, -1, 148, 149, 150, 151, 152, + 153, 154, 155, 156, 157, 158, -1, 160, -1, 162, + 163, 164, 165, -1, 167, -1, 169, -1, -1, -1, + 173, 174, 175, -1, 177, -1, 179, -1, 181, 182, + 183, -1, 185, 186, 187, 188, 189, 190, 191, -1, + 193, 194, 195, 196, -1, 198, 199, 200, 201, 202, + 203, -1, 205, -1, 207, 208, 209, 210, 211, 212, + 213, 214, -1, 216, -1, 218, -1, -1, 221, -1, + 223, 224, 225, 226, 227, 228, -1, -1, 231, -1, + 233, -1, -1, 236, 237, 238, -1, -1, 241, 242, + 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, + 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, + 263, 264, 265, -1, 267, 268, 269, 270, 271, -1, + 273, 274, -1, 276, -1, 278, 279, 280, 281, 282, + 283, -1, 285, 286, -1, -1, 289, 290, 291, -1, + -1, 294, 295, -1, 297, -1, 299, 300, 301, 302, + 303, 304, 305, 306, 307, 308, 309, -1, 311, 312, + 313, 314, 315, 316, 317, 318, 319, -1, 321, 322, + 323, 324, 325, 326, -1, 328, 329, 330, 331, 332, + 333, 334, 335, -1, 337, 338, 339, 340, 341, 342, + 343, 344, 345, 346, 347, 348, 349, -1, 351, 352, + -1, 354, 355, 356, 357, 358, 359, 360, 361, 362, + 363, 364, 365, 366, 367, 368, -1, 370, 371, 372, + 373, 374, -1, 376, 377, 378, 379, 380, -1, 382, + 383, 384, 385, -1, 387, 388, 389, 390, 391, 392, + 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, + -1, 404, 405, -1, 407, -1, 409, 410, 411, 412, + 413, -1, 415, 416, -1, -1, 419, 420, 421, 422, + 423, -1, 425, 426, 427, 428, 429, 430, 431, 432, + -1, -1, 435, 436, 437, 438, 439, -1, -1, 442, + 443, 444, 445, 446, 447, 448, -1, 450, -1, 452, + 453, 454, 455, 456, -1, -1, 459, -1, -1, 462, + 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, + 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, + 3, -1, 5, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 21, 22, + 23, 24, 25, 26, 27, 28, -1, 30, 31, 32, + -1, -1, -1, -1, -1, -1, -1, 40, 41, -1, + 43, 44, 45, -1, 47, 48, 49, 50, 51, -1, + 53, 54, -1, 56, 57, 58, 59, 60, 61, -1, + -1, 64, 65, 66, 67, 68, -1, 70, 71, 72, + 73, 74, -1, -1, -1, 78, 79, 80, 81, 82, + 83, -1, 85, 86, 87, -1, 89, 90, 91, 92, + 93, 94, -1, -1, 97, 98, 99, -1, -1, -1, + -1, -1, -1, -1, 107, 108, 109, 110, 111, 112, + 113, 114, 115, 116, -1, 118, -1, 120, 121, 122, + 123, 124, 125, -1, 127, 128, 129, 130, 131, -1, + -1, 134, 135, 136, 137, 138, -1, 140, 141, 142, + -1, 144, 145, 146, -1, 148, 149, 150, 151, 152, + 153, 154, 155, 156, 157, 158, -1, 160, -1, 162, + 163, 164, 165, -1, 167, -1, 169, -1, -1, -1, + 173, 174, 175, -1, 177, -1, 179, -1, 181, 182, + 183, -1, 185, 186, 187, 188, 189, 190, 191, -1, + 193, 194, 195, 196, -1, 198, 199, 200, 201, 202, + 203, -1, 205, -1, 207, 208, 209, 210, 211, 212, + 213, 214, -1, 216, -1, 218, -1, -1, 221, -1, + 223, 224, 225, 226, 227, 228, -1, -1, 231, -1, + 233, -1, -1, 236, 237, 238, -1, -1, 241, 242, + 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, + 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, + 263, 264, 265, -1, 267, 268, 269, 270, 271, -1, + 273, 274, -1, 276, -1, 278, 279, 280, 281, 282, + 283, -1, 285, 286, -1, -1, 289, 290, 291, -1, + -1, 294, 295, -1, 297, -1, 299, 300, 301, 302, + 303, 304, 305, 306, 307, 308, 309, -1, 311, 312, + 313, 314, 315, 316, 317, 318, 319, -1, 321, 322, + 323, 324, 325, 326, -1, 328, 329, 330, 331, 332, + 333, 334, 335, -1, 337, 338, 339, 340, 341, 342, + 343, 344, 345, 346, 347, 348, 349, -1, 351, 352, + -1, 354, 355, 356, 357, 358, 359, 360, 361, 362, + 363, 364, 365, 366, 367, 368, -1, 370, 371, 372, + 373, 374, -1, 376, 377, 378, 379, 380, -1, 382, + 383, 384, 385, -1, 387, 388, 389, 390, 391, 392, + 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, + -1, 404, 405, -1, 407, -1, 409, 410, 411, 412, + 413, -1, 415, 416, -1, -1, 419, 420, 421, 422, + 423, -1, 425, 426, 427, 428, 429, 430, 431, 432, + -1, -1, 435, 436, 437, 438, 439, -1, -1, 442, + 443, 444, 445, 446, 447, 448, -1, 450, -1, 452, + 453, 454, 455, 456, -1, -1, 459, -1, -1, 462, + 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, + 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, + 3, -1, 5, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 21, 22, + 23, 24, 25, 26, 27, 28, -1, 30, 31, 32, + -1, -1, -1, -1, -1, -1, -1, 40, 41, -1, + 43, 44, 45, -1, 47, 48, 49, 50, 51, -1, + 53, 54, -1, 56, 57, 58, 59, 60, 61, -1, + -1, 64, 65, 66, 67, 68, -1, 70, 71, 72, + 73, 74, -1, -1, -1, 78, 79, 80, 81, 82, + 83, -1, 85, 86, 87, -1, 89, 90, 91, 92, + 93, 94, -1, -1, 97, 98, 99, -1, -1, -1, + -1, -1, -1, -1, 107, 108, 109, 110, 111, 112, + 113, 114, 115, 116, -1, 118, -1, 120, 121, 122, + 123, 124, 125, -1, 127, 128, 129, 130, 131, -1, + -1, 134, 135, 136, 137, 138, -1, 140, 141, 142, + -1, 144, 145, 146, -1, 148, 149, 150, 151, 152, + 153, 154, 155, 156, 157, 158, -1, 160, -1, 162, + 163, 164, 165, -1, 167, -1, 169, -1, -1, -1, + 173, 174, 175, -1, 177, -1, 179, -1, 181, 182, + 183, -1, 185, 186, 187, 188, 189, 190, 191, -1, + 193, 194, 195, 196, -1, 198, 199, 200, 201, 202, + 203, -1, 205, -1, 207, 208, 209, 210, 211, 212, + 213, 214, -1, 216, -1, 218, -1, -1, 221, -1, + 223, 224, 225, 226, 227, 228, -1, -1, 231, -1, + 233, -1, -1, 236, 237, 238, -1, -1, 241, 242, + 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, + 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, + 263, 264, 265, -1, 267, 268, 269, 270, 271, -1, + 273, 274, -1, 276, -1, 278, 279, 280, 281, 282, + 283, -1, 285, 286, -1, -1, 289, 290, 291, -1, + -1, 294, 295, -1, 297, -1, 299, 300, 301, 302, + 303, 304, 305, 306, 307, 308, 309, -1, 311, 312, + 313, 314, 315, 316, 317, 318, 319, -1, 321, 322, + 323, 324, 325, 326, -1, 328, 329, 330, 331, 332, + 333, 334, 335, -1, 337, 338, 339, 340, 341, 342, + 343, 344, 345, 346, 347, 348, 349, -1, 351, 352, + -1, 354, 355, 356, 357, 358, 359, 360, 361, 362, + 363, 364, 365, 366, 367, 368, -1, 370, 371, 372, + 373, 374, -1, 376, 377, 378, 379, 380, -1, 382, + 383, 384, 385, -1, 387, 388, 389, 390, 391, 392, + 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, + -1, 404, 405, -1, 407, -1, 409, 410, 411, 412, + 413, -1, 415, 416, -1, -1, 419, 420, 421, 422, + 423, -1, 425, 426, 427, 428, 429, 430, 431, 432, + -1, -1, 435, 436, 437, 438, 439, -1, -1, 442, + 443, 444, 445, 446, 447, 448, -1, 450, -1, 452, + 453, 454, 455, 456, -1, -1, 459, -1, -1, 462, + 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, + 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, + 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 21, 22, + 23, 24, 25, 26, 27, 28, -1, 30, 31, 32, + -1, -1, -1, -1, -1, -1, -1, 40, 41, -1, + 43, 44, 45, 46, 47, 48, 49, -1, 51, 52, + 53, 54, -1, 56, 57, 58, 59, 60, 61, -1, + -1, 64, 65, 66, 67, 68, -1, 70, 71, 72, + 73, -1, -1, 76, -1, 78, 79, 80, 81, 82, + 83, 84, 85, 86, 87, -1, 89, 90, 91, 92, + 93, 94, -1, 96, 97, 98, 99, 100, 101, 102, + 103, -1, -1, 106, 107, 108, 109, 110, 111, 112, + 113, 114, 115, 116, -1, 118, -1, 120, 121, 122, + 123, 124, 125, -1, 127, 128, 129, 130, 131, -1, + -1, 134, 135, 136, 137, 138, -1, 140, 141, 142, + -1, 144, 145, 146, -1, 148, 149, 150, 151, -1, + 153, 154, 155, 156, 157, -1, -1, 160, -1, 162, + 163, 164, 165, -1, 167, -1, 169, 170, -1, 172, + 173, 174, -1, 176, 177, -1, 179, -1, -1, -1, + 183, -1, 185, 186, 187, 188, 189, 190, 191, 192, + 193, 194, 195, 196, -1, 198, 199, 200, 201, 202, + 203, -1, 205, 206, -1, 208, 209, 210, 211, 212, + 213, 214, -1, 216, -1, 218, 219, 220, 221, 222, + 223, 224, 225, 226, 227, 228, -1, -1, 231, 232, + 233, 234, -1, 236, 237, 238, -1, -1, 241, 242, + 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, + 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, + 263, 264, 265, 266, 267, 268, 269, 270, -1, -1, + 273, 274, 275, 276, -1, -1, 279, 280, 281, 282, + 283, -1, 285, 286, -1, -1, 289, 290, 291, -1, + -1, 294, -1, 296, 297, 298, -1, 300, 301, 302, + 303, 304, 305, 306, 307, 308, 309, -1, 311, 312, + -1, 314, 315, -1, 317, 318, 319, -1, 321, 322, + 323, 324, 325, 326, -1, 328, 329, 330, 331, 332, + 333, 334, 335, -1, 337, 338, 339, 340, 341, 342, + 343, 344, 345, 346, 347, 348, 349, -1, 351, 352, + 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, + 363, 364, 365, 366, 367, 368, -1, 370, 371, 372, + 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, + 383, 384, 385, -1, 387, 388, 389, 390, 391, 392, + 393, 394, 395, 396, 397, 398, 399, 400, -1, 402, + -1, 404, 405, -1, 407, 408, 409, 410, 411, 412, + 413, -1, 415, 416, -1, -1, 419, 420, -1, 422, + -1, -1, 425, 426, 427, 428, 429, 430, 431, 432, + -1, -1, 435, 436, 437, 438, 439, 440, -1, 442, + 443, 444, 445, 446, -1, 448, -1, 450, 451, 452, + 453, 454, 455, 456, -1, -1, 459, -1, -1, 462, + 463, 464, 465, 466, 467, 3, -1, 5, -1, -1, + -1, -1, -1, -1, -1, -1, 479, 480, 481, 482, + -1, -1, -1, 21, 22, 23, 24, 25, 26, 27, + 28, -1, 30, 31, 32, -1, -1, -1, -1, -1, + -1, -1, 40, 41, -1, 43, 44, 45, -1, 47, + 48, 49, 50, 51, -1, 53, 54, -1, 56, 57, + 58, 59, 60, 61, -1, -1, 64, 65, 66, 67, + 68, -1, 70, 71, 72, 73, 74, -1, -1, -1, + 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, + -1, 89, 90, 91, 92, 93, 94, -1, -1, 97, + 98, 99, -1, -1, -1, -1, -1, -1, -1, 107, + 108, 109, 110, 111, 112, 113, 114, 115, 116, -1, + 118, -1, 120, 121, 122, 123, 124, 125, -1, 127, + 128, 129, 130, 131, -1, -1, 134, 135, 136, 137, + 138, -1, 140, 141, 142, -1, 144, 145, 146, -1, + 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, + 158, -1, 160, -1, 162, 163, 164, 165, -1, 167, + -1, 169, -1, -1, -1, 173, 174, 175, -1, 177, + -1, 179, -1, 181, 182, 183, -1, 185, 186, 187, + 188, 189, 190, 191, -1, 193, 194, 195, 196, -1, + 198, 199, 200, 201, 202, 203, -1, 205, -1, 207, + 208, 209, 210, 211, 212, 213, 214, -1, 216, -1, + 218, -1, -1, 221, -1, 223, 224, 225, 226, 227, + 228, -1, -1, 231, -1, 233, -1, -1, 236, 237, + 238, -1, -1, 241, 242, 243, 244, 245, 246, 247, + 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, + 258, 259, 260, 261, 262, 263, 264, 265, -1, 267, + 268, 269, 270, 271, -1, 273, 274, -1, 276, -1, + 278, 279, 280, 281, 282, 283, -1, 285, 286, -1, + -1, 289, 290, 291, -1, -1, 294, 295, -1, 297, + -1, 299, 300, 301, 302, 303, 304, 305, 306, 307, + 308, 309, -1, 311, 312, 313, 314, 315, 316, 317, + 318, 319, -1, 321, 322, 323, 324, 325, 326, -1, + 328, 329, 330, 331, 332, 333, 334, 335, -1, 337, + 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, + 348, 349, -1, 351, 352, -1, 354, 355, 356, 357, + 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, + 368, -1, 370, 371, 372, 373, 374, -1, 376, 377, + 378, 379, 380, -1, 382, 383, 384, 385, -1, 387, + 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, + 398, 399, 400, 401, 402, -1, 404, 405, -1, 407, + -1, 409, 410, 411, 412, 413, -1, 415, 416, -1, + -1, 419, 420, 421, 422, 423, -1, 425, 426, 427, + 428, 429, 430, 431, 432, -1, -1, 435, 436, 437, + 438, 439, -1, -1, 442, 443, 444, 445, 446, 447, + 448, -1, 450, -1, 452, 453, 454, 455, 456, -1, + -1, 459, -1, -1, 462, 463, 464, 465, 466, 467, + 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, + 478, 479, 480, 481, 482, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 21, 22, 23, - 24, 25, 26, 27, 28, -1, 30, 31, 32, -1, - -1, -1, -1, -1, -1, -1, 40, 41, -1, 43, - 44, 45, -1, 47, 48, 49, 50, 51, -1, 53, - 54, -1, 56, 57, 58, 59, 60, 61, -1, -1, - 64, 65, 66, 67, 68, -1, 70, 71, 72, 73, - 74, -1, -1, -1, 78, 79, 80, 81, 82, 83, - -1, 85, 86, 87, -1, 89, 90, 91, 92, 93, - 94, -1, -1, 97, 98, 99, -1, -1, -1, -1, - -1, -1, -1, 107, 108, 109, 110, 111, 112, 113, - 114, 115, 116, -1, 118, -1, 120, 121, 122, 123, - 124, 125, -1, 127, 128, 129, 130, 131, -1, -1, - 134, 135, 136, 137, 138, -1, 140, 141, 142, -1, - 144, 145, 146, -1, 148, 149, 150, 151, 152, 153, - 154, 155, 156, 157, 158, -1, 160, -1, 162, 163, - 164, 165, -1, 167, -1, 169, -1, -1, -1, 173, - 174, 175, -1, 177, -1, 179, -1, 181, 182, 183, - -1, 185, 186, 187, 188, 189, 190, 191, -1, 193, - 194, 195, 196, -1, 198, 199, 200, 201, 202, 203, - -1, 205, -1, 207, 208, 209, 210, 211, 212, 213, - 214, -1, 216, -1, 218, -1, -1, 221, -1, 223, - 224, 225, 226, 227, 228, -1, -1, 231, -1, 233, - -1, -1, 236, 237, 238, -1, -1, 241, 242, 243, - 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, - 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, - 264, 265, -1, 267, 268, 269, 270, 271, -1, 273, - 274, -1, 276, -1, 278, 279, 280, 281, 282, 283, - -1, 285, 286, -1, -1, 289, 290, 291, -1, -1, - 294, 295, -1, 297, -1, 299, 300, 301, 302, 303, - 304, 305, 306, 307, 308, 309, -1, 311, 312, 313, - 314, 315, 316, 317, 318, 319, -1, 321, 322, 323, - 324, 325, 326, -1, 328, 329, 330, 331, 332, 333, - 334, 335, -1, 337, 338, 339, 340, 341, 342, 343, - 344, 345, 346, 347, 348, 349, -1, 351, 352, -1, - 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, - 364, 365, 366, 367, 368, -1, 370, 371, 372, 373, - 374, -1, 376, 377, 378, 379, 380, -1, 382, 383, - 384, 385, -1, 387, 388, 389, 390, 391, 392, 393, - 394, 395, 396, 397, 398, 399, 400, 401, 402, -1, - 404, 405, -1, 407, -1, 409, 410, 411, 412, 413, - -1, 415, 416, -1, -1, 419, 420, 421, 422, 423, - -1, 425, 426, 427, 428, 429, 430, 431, 432, -1, - -1, 435, 436, 437, 438, 439, -1, -1, 442, 443, - 444, 445, 446, 447, 448, -1, 450, -1, 452, 453, - 454, 455, 456, -1, -1, 459, -1, -1, 462, 463, - 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, - 474, 475, 476, 477, 478, 479, 480, 481, 482, 3, + -1, -1, -1, 21, 22, 23, 24, 25, 26, 27, + 28, -1, 30, 31, 32, -1, -1, -1, -1, -1, + 38, -1, 40, 41, -1, 43, 44, 45, -1, 47, + 48, 49, 50, 51, -1, 53, 54, -1, 56, 57, + 58, 59, 60, 61, -1, -1, 64, 65, 66, 67, + 68, -1, 70, 71, 72, 73, 74, -1, -1, -1, + 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, + -1, 89, 90, 91, 92, 93, 94, -1, -1, 97, + 98, 99, -1, -1, -1, -1, -1, -1, -1, 107, + 108, 109, 110, 111, 112, 113, 114, 115, 116, -1, + 118, -1, 120, 121, 122, 123, 124, 125, -1, 127, + 128, 129, 130, 131, -1, -1, 134, 135, 136, 137, + 138, -1, 140, 141, 142, -1, 144, 145, 146, -1, + 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, + 158, -1, 160, -1, 162, 163, 164, 165, -1, 167, + -1, 169, -1, -1, -1, 173, 174, 175, -1, 177, + -1, 179, -1, 181, 182, 183, -1, 185, 186, 187, + 188, 189, 190, 191, -1, 193, 194, 195, 196, -1, + 198, 199, 200, 201, 202, 203, -1, 205, -1, 207, + 208, 209, 210, 211, 212, 213, 214, -1, 216, -1, + 218, -1, -1, 221, -1, 223, 224, 225, 226, 227, + 228, -1, -1, 231, -1, 233, -1, -1, 236, 237, + 238, -1, -1, 241, 242, 243, 244, 245, 246, 247, + 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, + 258, 259, 260, 261, 262, 263, 264, 265, -1, 267, + 268, 269, 270, 271, -1, 273, 274, -1, 276, -1, + 278, 279, 280, 281, 282, 283, -1, 285, 286, -1, + -1, 289, 290, 291, -1, -1, 294, 295, -1, 297, + -1, 299, 300, 301, 302, 303, 304, 305, 306, 307, + 308, 309, -1, 311, 312, 313, 314, 315, 316, 317, + 318, 319, -1, 321, 322, 323, 324, 325, 326, -1, + 328, 329, 330, 331, 332, 333, 334, 335, -1, 337, + 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, + 348, 349, -1, 351, 352, -1, 354, 355, 356, 357, + 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, + 368, -1, 370, 371, 372, 373, 374, -1, 376, 377, + 378, 379, 380, -1, 382, 383, 384, 385, -1, 387, + 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, + 398, 399, 400, 401, 402, -1, 404, 405, -1, 407, + -1, 409, 410, 411, 412, 413, -1, 415, 416, -1, + -1, 419, 420, 421, 422, 423, -1, 425, 426, 427, + 428, 429, 430, 431, 432, -1, -1, 435, 436, 437, + 438, 439, -1, -1, 442, 443, 444, 445, 446, 447, + 448, -1, 450, -1, 452, 453, 454, 455, 456, -1, + -1, 459, -1, -1, 462, 463, 464, 465, 466, 467, + 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, + 478, 479, 480, 481, 482, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 21, 22, 23, - 24, 25, 26, 27, 28, -1, 30, 31, 32, -1, - -1, -1, -1, -1, -1, -1, 40, 41, -1, 43, - 44, 45, -1, 47, 48, 49, 50, 51, -1, 53, - 54, -1, 56, 57, 58, 59, 60, 61, -1, -1, - 64, 65, 66, 67, 68, -1, 70, 71, 72, 73, - 74, -1, -1, -1, 78, 79, 80, 81, 82, 83, - -1, 85, 86, 87, -1, 89, 90, 91, 92, 93, - 94, -1, -1, 97, 98, 99, -1, -1, -1, -1, - -1, -1, -1, 107, 108, 109, 110, 111, 112, 113, - 114, 115, 116, -1, 118, -1, 120, 121, 122, 123, - 124, 125, -1, 127, 128, 129, 130, 131, -1, -1, - 134, 135, 136, 137, 138, -1, 140, 141, 142, -1, - 144, 145, 146, -1, 148, 149, 150, 151, 152, 153, - 154, 155, 156, 157, 158, -1, 160, -1, 162, 163, - 164, 165, -1, 167, -1, 169, -1, -1, -1, 173, - 174, 175, -1, 177, -1, 179, -1, 181, 182, 183, - -1, 185, 186, 187, 188, 189, 190, 191, -1, 193, - 194, 195, 196, -1, 198, 199, 200, 201, 202, 203, - -1, 205, -1, 207, 208, 209, 210, 211, 212, 213, - 214, -1, 216, -1, 218, -1, -1, 221, -1, 223, - 224, 225, 226, 227, 228, -1, -1, 231, -1, 233, - -1, -1, 236, 237, 238, -1, -1, 241, 242, 243, - 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, - 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, - 264, 265, -1, 267, 268, 269, 270, 271, -1, 273, - 274, -1, 276, -1, 278, 279, 280, 281, 282, 283, - -1, 285, 286, -1, -1, 289, 290, 291, -1, -1, - 294, 295, -1, 297, -1, 299, 300, 301, 302, 303, - 304, 305, 306, 307, 308, 309, -1, 311, 312, 313, - 314, 315, 316, 317, 318, 319, -1, 321, 322, 323, - 324, 325, 326, -1, 328, 329, 330, 331, 332, 333, - 334, 335, -1, 337, 338, 339, 340, 341, 342, 343, - 344, 345, 346, 347, 348, 349, -1, 351, 352, -1, - 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, - 364, 365, 366, 367, 368, -1, 370, 371, 372, 373, - 374, -1, 376, 377, 378, 379, 380, -1, 382, 383, - 384, 385, -1, 387, 388, 389, 390, 391, 392, 393, - 394, 395, 396, 397, 398, 399, 400, 401, 402, -1, - 404, 405, -1, 407, -1, 409, 410, 411, 412, 413, - -1, 415, 416, -1, -1, 419, 420, 421, 422, 423, - -1, 425, 426, 427, 428, 429, 430, 431, 432, -1, - -1, 435, 436, 437, 438, 439, -1, -1, 442, 443, - 444, 445, 446, 447, 448, -1, 450, -1, 452, 453, - 454, 455, 456, -1, -1, 459, -1, -1, 462, 463, - 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, - 474, 475, 476, 477, 478, 479, 480, 481, 482, 3, + -1, -1, -1, 21, 22, 23, 24, 25, 26, 27, + 28, -1, 30, 31, 32, -1, -1, -1, -1, -1, + 38, -1, 40, 41, -1, 43, 44, 45, -1, 47, + 48, 49, 50, 51, -1, 53, 54, -1, 56, 57, + 58, 59, 60, 61, -1, -1, 64, 65, 66, 67, + 68, -1, 70, 71, 72, 73, 74, -1, -1, -1, + 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, + -1, 89, 90, 91, 92, 93, 94, -1, -1, 97, + 98, 99, -1, -1, -1, -1, -1, -1, -1, 107, + 108, 109, 110, 111, 112, 113, 114, 115, 116, -1, + 118, -1, 120, 121, 122, 123, 124, 125, -1, 127, + 128, 129, 130, 131, -1, -1, 134, 135, 136, 137, + 138, -1, 140, 141, 142, -1, 144, 145, 146, -1, + 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, + 158, -1, 160, -1, 162, 163, 164, 165, -1, 167, + -1, 169, -1, -1, -1, 173, 174, 175, -1, 177, + -1, 179, -1, 181, 182, 183, -1, 185, 186, 187, + 188, 189, 190, 191, -1, 193, 194, 195, 196, -1, + 198, 199, 200, 201, 202, 203, -1, 205, -1, 207, + 208, 209, 210, 211, 212, 213, 214, -1, 216, -1, + 218, -1, -1, 221, -1, 223, 224, 225, 226, 227, + 228, -1, -1, 231, -1, 233, -1, -1, 236, 237, + 238, -1, -1, 241, 242, 243, 244, 245, 246, 247, + 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, + 258, 259, 260, 261, 262, 263, 264, 265, -1, 267, + 268, 269, 270, 271, -1, 273, 274, -1, 276, -1, + 278, 279, 280, 281, 282, 283, -1, 285, 286, -1, + -1, 289, 290, 291, -1, -1, 294, 295, -1, 297, + -1, 299, 300, 301, 302, 303, 304, 305, 306, 307, + 308, 309, -1, 311, 312, 313, 314, 315, 316, 317, + 318, 319, -1, 321, 322, 323, 324, 325, 326, -1, + 328, 329, 330, 331, 332, 333, 334, 335, -1, 337, + 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, + 348, 349, -1, 351, 352, -1, 354, 355, 356, 357, + 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, + 368, -1, 370, 371, 372, 373, 374, -1, 376, 377, + 378, 379, 380, -1, 382, 383, 384, 385, -1, 387, + 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, + 398, 399, 400, 401, 402, -1, 404, 405, -1, 407, + -1, 409, 410, 411, 412, 413, -1, 415, 416, -1, + -1, 419, 420, 421, 422, 423, -1, 425, 426, 427, + 428, 429, 430, 431, 432, -1, -1, 435, 436, 437, + 438, 439, -1, -1, 442, 443, 444, 445, 446, 447, + 448, -1, 450, -1, 452, 453, 454, 455, 456, -1, + -1, 459, -1, -1, 462, 463, 464, 465, 466, 467, + 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, + 478, 479, 480, 481, 482, 3, -1, 5, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 21, 22, 23, - 24, 25, 26, 27, 28, -1, 30, 31, 32, -1, - -1, -1, -1, -1, -1, -1, 40, 41, -1, 43, - 44, 45, -1, 47, 48, 49, 50, 51, -1, 53, - 54, -1, 56, 57, 58, 59, 60, 61, -1, -1, - 64, 65, 66, 67, 68, -1, 70, 71, 72, 73, - 74, -1, -1, -1, 78, 79, 80, 81, 82, 83, - -1, 85, 86, 87, -1, 89, 90, 91, 92, 93, - 94, -1, -1, 97, 98, 99, -1, -1, -1, -1, - -1, -1, -1, 107, 108, 109, 110, 111, 112, 113, - 114, 115, 116, -1, 118, -1, 120, 121, 122, 123, - 124, 125, -1, 127, 128, 129, 130, 131, -1, -1, - 134, 135, 136, 137, 138, -1, 140, 141, 142, -1, - 144, 145, 146, -1, 148, 149, 150, 151, 152, 153, - 154, 155, 156, 157, 158, -1, 160, -1, 162, 163, - 164, 165, -1, 167, -1, 169, -1, -1, -1, 173, - 174, 175, -1, 177, -1, 179, -1, 181, 182, 183, - -1, 185, 186, 187, 188, 189, 190, 191, -1, 193, - 194, 195, 196, -1, 198, 199, 200, 201, 202, 203, - -1, 205, -1, 207, 208, 209, 210, 211, 212, 213, - 214, -1, 216, -1, 218, -1, -1, 221, -1, 223, - 224, 225, 226, 227, 228, -1, -1, 231, -1, 233, - -1, -1, 236, 237, 238, -1, -1, 241, 242, 243, - 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, - 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, - 264, 265, -1, 267, 268, 269, 270, 271, -1, 273, - 274, -1, 276, -1, 278, 279, 280, 281, 282, 283, - -1, 285, 286, -1, -1, 289, 290, 291, -1, -1, - 294, 295, -1, 297, -1, 299, 300, 301, 302, 303, - 304, 305, 306, 307, 308, 309, -1, 311, 312, 313, - 314, 315, 316, 317, 318, 319, -1, 321, 322, 323, - 324, 325, 326, -1, 328, 329, 330, 331, 332, 333, - 334, 335, -1, 337, 338, 339, 340, 341, 342, 343, - 344, 345, 346, 347, 348, 349, -1, 351, 352, -1, - 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, - 364, 365, 366, 367, 368, -1, 370, 371, 372, 373, - 374, -1, 376, 377, 378, 379, 380, -1, 382, 383, - 384, 385, -1, 387, 388, 389, 390, 391, 392, 393, - 394, 395, 396, 397, 398, 399, 400, 401, 402, -1, - 404, 405, -1, 407, -1, 409, 410, 411, 412, 413, - -1, 415, 416, -1, -1, 419, 420, 421, 422, 423, - -1, 425, 426, 427, 428, 429, 430, 431, 432, -1, - -1, 435, 436, 437, 438, 439, -1, -1, 442, 443, - 444, 445, 446, 447, 448, -1, 450, -1, 452, 453, - 454, 455, 456, -1, -1, 459, -1, -1, 462, 463, - 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, - 474, 475, 476, 477, 478, 479, 480, 481, 482, 3, + -1, -1, -1, 21, 22, 23, 24, 25, 26, 27, + 28, -1, 30, 31, 32, -1, -1, -1, -1, -1, + -1, -1, 40, 41, -1, 43, 44, 45, -1, 47, + 48, 49, 50, 51, -1, 53, 54, -1, 56, 57, + 58, 59, 60, 61, -1, -1, 64, 65, 66, 67, + 68, -1, 70, 71, 72, 73, 74, -1, -1, -1, + 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, + -1, 89, 90, 91, 92, 93, 94, -1, -1, 97, + 98, 99, -1, -1, -1, -1, -1, -1, -1, 107, + 108, 109, 110, 111, 112, 113, 114, 115, 116, -1, + 118, -1, 120, 121, 122, 123, 124, 125, -1, 127, + 128, 129, 130, 131, -1, -1, 134, 135, 136, 137, + 138, -1, 140, 141, 142, -1, 144, 145, 146, -1, + 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, + 158, -1, 160, -1, 162, 163, 164, 165, -1, 167, + -1, 169, -1, -1, -1, 173, 174, 175, -1, 177, + -1, 179, -1, 181, 182, 183, -1, 185, 186, 187, + 188, 189, 190, 191, -1, 193, 194, 195, 196, -1, + 198, 199, 200, 201, 202, 203, -1, 205, -1, 207, + 208, 209, 210, 211, 212, 213, 214, -1, 216, -1, + 218, -1, -1, 221, -1, 223, 224, 225, 226, 227, + 228, -1, -1, 231, -1, 233, -1, -1, 236, 237, + 238, -1, -1, 241, 242, 243, 244, 245, 246, 247, + 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, + 258, 259, 260, 261, 262, 263, 264, 265, -1, 267, + 268, 269, 270, 271, -1, 273, 274, -1, 276, -1, + 278, 279, 280, 281, 282, 283, -1, 285, 286, -1, + -1, 289, 290, 291, -1, -1, 294, 295, -1, 297, + -1, 299, 300, 301, 302, 303, 304, 305, 306, 307, + 308, 309, -1, 311, 312, 313, 314, 315, 316, 317, + 318, 319, -1, 321, 322, 323, 324, 325, 326, -1, + 328, 329, 330, 331, 332, 333, 334, 335, -1, 337, + 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, + 348, 349, -1, 351, 352, -1, 354, 355, 356, 357, + 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, + 368, -1, 370, 371, 372, 373, 374, -1, 376, 377, + 378, 379, 380, -1, 382, 383, 384, 385, -1, 387, + 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, + 398, 399, 400, 401, 402, -1, 404, 405, -1, 407, + -1, 409, 410, 411, 412, 413, -1, 415, 416, -1, + -1, 419, 420, 421, 422, 423, -1, 425, 426, 427, + 428, 429, 430, 431, 432, -1, -1, 435, 436, 437, + 438, 439, -1, -1, 442, 443, 444, 445, 446, 447, + 448, -1, 450, -1, 452, 453, 454, 455, 456, -1, + -1, 459, -1, -1, 462, 463, 464, 465, 466, 467, + 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, + 478, 479, 480, 481, 482, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 21, 22, 23, - 24, 25, 26, 27, 28, -1, 30, 31, 32, -1, - -1, -1, -1, -1, -1, -1, 40, 41, -1, 43, - 44, 45, -1, 47, 48, 49, 50, 51, -1, 53, - 54, -1, 56, 57, 58, 59, 60, 61, -1, -1, - 64, 65, 66, 67, 68, -1, 70, 71, 72, 73, - 74, -1, -1, -1, 78, 79, 80, 81, 82, 83, - -1, 85, 86, 87, -1, 89, 90, 91, 92, 93, - 94, -1, -1, 97, 98, 99, -1, -1, -1, -1, - -1, -1, -1, 107, 108, 109, 110, 111, 112, 113, - 114, 115, 116, -1, 118, -1, 120, 121, 122, 123, - 124, 125, -1, 127, 128, 129, 130, 131, -1, -1, - 134, 135, 136, 137, 138, -1, 140, 141, 142, -1, - 144, 145, 146, -1, 148, 149, 150, 151, 152, 153, - 154, 155, 156, 157, 158, -1, 160, -1, 162, 163, - 164, 165, -1, 167, -1, 169, -1, -1, -1, 173, - 174, 175, -1, 177, -1, 179, -1, 181, 182, 183, - -1, 185, 186, 187, 188, 189, 190, 191, -1, 193, - 194, 195, 196, -1, 198, 199, 200, 201, 202, 203, - -1, 205, -1, 207, 208, 209, 210, 211, 212, 213, - 214, -1, 216, -1, 218, -1, -1, 221, -1, 223, - 224, 225, 226, 227, 228, -1, -1, 231, -1, 233, - -1, -1, 236, 237, 238, -1, -1, 241, 242, 243, - 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, - 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, - 264, 265, -1, 267, 268, 269, 270, 271, -1, 273, - 274, -1, 276, -1, 278, 279, 280, 281, 282, 283, - -1, 285, 286, -1, -1, 289, 290, 291, -1, -1, - 294, 295, -1, 297, -1, 299, 300, 301, 302, 303, - 304, 305, 306, 307, 308, 309, -1, 311, 312, 313, - 314, 315, 316, 317, 318, 319, -1, 321, 322, 323, - 324, 325, 326, -1, 328, 329, 330, 331, 332, 333, - 334, 335, -1, 337, 338, 339, 340, 341, 342, 343, - 344, 345, 346, 347, 348, 349, -1, 351, 352, -1, - 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, - 364, 365, 366, 367, 368, -1, 370, 371, 372, 373, - 374, -1, 376, 377, 378, 379, 380, -1, 382, 383, - 384, 385, -1, 387, 388, 389, 390, 391, 392, 393, - 394, 395, 396, 397, 398, 399, 400, 401, 402, -1, - 404, 405, -1, 407, -1, 409, 410, 411, 412, 413, - -1, 415, 416, -1, -1, 419, 420, 421, 422, 423, - -1, 425, 426, 427, 428, 429, 430, 431, 432, -1, - -1, 435, 436, 437, 438, 439, -1, -1, 442, 443, - 444, 445, 446, 447, 448, -1, 450, -1, 452, 453, - 454, 455, 456, -1, -1, 459, -1, -1, 462, 463, - 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, - 474, 475, 476, 477, 478, 479, 480, 481, 482, 3, + -1, -1, -1, 21, 22, 23, 24, 25, 26, 27, + 28, -1, 30, 31, 32, -1, -1, -1, -1, -1, + -1, -1, 40, 41, -1, 43, 44, 45, -1, 47, + 48, 49, 50, 51, -1, 53, 54, -1, 56, 57, + 58, 59, 60, 61, -1, -1, 64, 65, 66, 67, + 68, -1, 70, 71, 72, 73, 74, -1, -1, -1, + 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, + -1, 89, 90, 91, 92, 93, 94, -1, -1, 97, + 98, 99, -1, -1, -1, -1, -1, -1, -1, 107, + 108, 109, 110, 111, 112, 113, 114, 115, 116, -1, + 118, -1, 120, 121, 122, 123, 124, 125, -1, 127, + 128, 129, 130, 131, -1, -1, 134, 135, 136, 137, + 138, -1, 140, 141, 142, -1, 144, 145, 146, -1, + 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, + 158, -1, 160, -1, 162, 163, 164, 165, -1, 167, + -1, 169, -1, -1, -1, 173, 174, 175, -1, 177, + -1, 179, -1, 181, 182, 183, -1, 185, 186, 187, + 188, 189, 190, 191, -1, 193, 194, 195, 196, -1, + 198, 199, 200, 201, 202, 203, -1, 205, -1, 207, + 208, 209, 210, 211, 212, 213, 214, -1, 216, -1, + 218, -1, -1, 221, -1, 223, 224, 225, 226, 227, + 228, -1, -1, 231, -1, 233, -1, -1, 236, 237, + 238, -1, -1, 241, 242, 243, 244, 245, 246, 247, + 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, + 258, 259, 260, 261, 262, 263, 264, 265, -1, 267, + 268, 269, 270, 271, -1, 273, 274, -1, 276, -1, + 278, 279, 280, 281, 282, 283, -1, 285, 286, -1, + -1, 289, 290, 291, -1, -1, 294, 295, -1, 297, + -1, 299, 300, 301, 302, 303, 304, 305, 306, 307, + 308, 309, -1, 311, 312, 313, 314, 315, 316, 317, + 318, 319, -1, 321, 322, 323, 324, 325, 326, -1, + 328, 329, 330, 331, 332, 333, 334, 335, -1, 337, + 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, + 348, 349, -1, 351, 352, -1, 354, 355, 356, 357, + 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, + 368, -1, 370, 371, 372, 373, 374, -1, 376, 377, + 378, 379, 380, -1, 382, 383, 384, 385, -1, 387, + 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, + 398, 399, 400, 401, 402, -1, 404, 405, -1, 407, + -1, 409, 410, 411, 412, 413, -1, 415, 416, -1, + -1, 419, 420, 421, 422, 423, -1, 425, 426, 427, + 428, 429, 430, 431, 432, -1, -1, 435, 436, 437, + 438, 439, -1, -1, 442, 443, 444, 445, 446, 447, + 448, -1, 450, -1, 452, 453, 454, 455, 456, -1, + -1, 459, -1, -1, 462, 463, 464, 465, 466, 467, + 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, + 478, 479, 480, 481, 482, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 21, 22, 23, - 24, 25, 26, 27, 28, -1, 30, 31, 32, -1, - -1, -1, -1, -1, -1, -1, 40, 41, -1, 43, - 44, 45, -1, 47, 48, 49, 50, 51, -1, 53, - 54, -1, 56, 57, 58, 59, 60, 61, -1, -1, - 64, 65, 66, 67, 68, -1, 70, 71, 72, 73, - 74, -1, -1, -1, 78, 79, 80, 81, 82, 83, - -1, 85, 86, 87, -1, 89, 90, 91, 92, 93, - 94, -1, -1, 97, 98, 99, -1, -1, -1, -1, - -1, -1, -1, 107, 108, 109, 110, 111, 112, 113, - 114, 115, 116, -1, 118, -1, 120, 121, 122, 123, - 124, 125, -1, 127, 128, 129, 130, 131, -1, -1, - 134, 135, 136, 137, 138, -1, 140, 141, 142, -1, - 144, 145, 146, -1, 148, 149, 150, 151, 152, 153, - 154, 155, 156, 157, 158, -1, 160, -1, 162, 163, - 164, 165, -1, 167, -1, 169, -1, -1, -1, 173, - 174, 175, -1, 177, -1, 179, -1, 181, 182, 183, - -1, 185, 186, 187, 188, 189, 190, 191, -1, 193, - 194, 195, 196, -1, 198, 199, 200, 201, 202, 203, - -1, 205, -1, 207, 208, 209, 210, 211, 212, 213, - 214, -1, 216, -1, 218, -1, -1, 221, -1, 223, - 224, 225, 226, 227, 228, -1, -1, 231, -1, 233, - -1, -1, 236, 237, 238, -1, -1, 241, 242, 243, - 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, - 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, - 264, 265, -1, 267, 268, 269, 270, 271, -1, 273, - 274, -1, 276, -1, 278, 279, 280, 281, 282, 283, - -1, 285, 286, -1, -1, 289, 290, 291, -1, -1, - 294, 295, -1, 297, -1, 299, 300, 301, 302, 303, - 304, 305, 306, 307, 308, 309, -1, 311, 312, 313, - 314, 315, 316, 317, 318, 319, -1, 321, 322, 323, - 324, 325, 326, -1, 328, 329, 330, 331, 332, 333, - 334, 335, -1, 337, 338, 339, 340, 341, 342, 343, - 344, 345, 346, 347, 348, 349, -1, 351, 352, -1, - 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, - 364, 365, 366, 367, 368, -1, 370, 371, 372, 373, - 374, -1, 376, 377, 378, 379, 380, -1, 382, 383, - 384, 385, -1, 387, 388, 389, 390, 391, 392, 393, - 394, 395, 396, 397, 398, 399, 400, 401, 402, -1, - 404, 405, -1, 407, -1, 409, 410, 411, 412, 413, - -1, 415, 416, -1, -1, 419, 420, 421, 422, 423, - -1, 425, 426, 427, 428, 429, 430, 431, 432, -1, - -1, 435, 436, 437, 438, 439, -1, -1, 442, 443, - 444, 445, 446, 447, 448, -1, 450, -1, 452, 453, - 454, 455, 456, -1, -1, 459, -1, -1, 462, 463, - 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, - 474, 475, 476, 477, 478, 479, 480, 481, 482, 3, + -1, -1, -1, 21, 22, 23, 24, 25, 26, 27, + 28, -1, 30, 31, 32, -1, -1, -1, -1, -1, + -1, -1, 40, 41, -1, 43, 44, 45, -1, 47, + 48, 49, 50, 51, -1, 53, 54, -1, 56, 57, + 58, 59, 60, 61, -1, -1, 64, 65, 66, 67, + 68, -1, 70, 71, 72, 73, 74, -1, -1, -1, + 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, + -1, 89, 90, 91, 92, 93, 94, -1, -1, 97, + 98, 99, -1, -1, -1, -1, -1, -1, -1, 107, + 108, 109, 110, 111, 112, 113, 114, 115, 116, -1, + 118, -1, 120, 121, 122, 123, 124, 125, -1, 127, + 128, 129, 130, 131, -1, -1, 134, 135, 136, 137, + 138, -1, 140, 141, 142, -1, 144, 145, 146, -1, + 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, + 158, -1, 160, -1, 162, 163, 164, 165, -1, 167, + -1, 169, -1, -1, -1, 173, 174, 175, -1, 177, + -1, 179, -1, 181, 182, 183, -1, 185, 186, 187, + 188, 189, 190, 191, -1, 193, 194, 195, 196, -1, + 198, 199, 200, 201, 202, 203, -1, 205, -1, 207, + 208, 209, 210, 211, 212, 213, 214, -1, 216, -1, + 218, -1, -1, 221, -1, 223, 224, 225, 226, 227, + 228, -1, -1, 231, -1, 233, -1, -1, 236, 237, + 238, -1, -1, 241, 242, 243, 244, 245, 246, 247, + 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, + 258, 259, 260, 261, 262, 263, 264, 265, -1, 267, + 268, 269, 270, 271, -1, 273, 274, -1, 276, -1, + 278, 279, 280, 281, 282, 283, -1, 285, 286, -1, + -1, 289, 290, 291, -1, -1, 294, 295, -1, 297, + -1, 299, 300, 301, 302, 303, 304, 305, 306, 307, + 308, 309, -1, 311, 312, 313, 314, 315, 316, 317, + 318, 319, -1, 321, 322, 323, 324, 325, 326, -1, + 328, 329, 330, 331, 332, 333, 334, 335, -1, 337, + 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, + 348, 349, -1, 351, 352, -1, 354, 355, 356, 357, + 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, + 368, -1, 370, 371, 372, 373, 374, -1, 376, 377, + 378, 379, 380, -1, 382, 383, 384, 385, -1, 387, + 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, + 398, 399, 400, 401, 402, -1, 404, 405, -1, 407, + -1, 409, 410, 411, 412, 413, -1, 415, 416, -1, + -1, 419, 420, 421, 422, 423, -1, 425, 426, 427, + 428, 429, 430, 431, 432, -1, -1, 435, 436, 437, + 438, 439, -1, -1, 442, 443, 444, 445, 446, 447, + 448, -1, 450, -1, 452, 453, 454, 455, 456, -1, + -1, 459, -1, -1, 462, 463, 464, 465, 466, 467, + 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, + 478, 479, 480, 481, 482, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 21, 22, 23, - 24, 25, 26, 27, 28, -1, 30, 31, 32, -1, - -1, -1, -1, -1, 38, -1, 40, 41, -1, 43, - 44, 45, -1, 47, 48, 49, 50, 51, -1, 53, - 54, -1, 56, 57, 58, 59, 60, 61, -1, -1, - 64, 65, 66, 67, 68, -1, 70, 71, 72, 73, - 74, -1, -1, -1, 78, 79, 80, 81, 82, 83, - -1, 85, 86, 87, -1, 89, 90, 91, 92, 93, - 94, -1, -1, 97, 98, 99, -1, -1, -1, -1, - -1, -1, -1, 107, 108, 109, 110, 111, 112, 113, - 114, 115, 116, -1, 118, -1, 120, 121, 122, 123, - 124, 125, -1, 127, 128, 129, 130, 131, -1, -1, - 134, 135, 136, 137, 138, -1, 140, 141, 142, -1, - 144, 145, 146, -1, 148, 149, 150, 151, 152, 153, - 154, 155, 156, 157, 158, -1, 160, -1, 162, 163, - 164, 165, -1, 167, -1, 169, -1, -1, -1, 173, - 174, 175, -1, 177, -1, 179, -1, 181, 182, 183, - -1, 185, 186, 187, 188, 189, 190, 191, -1, 193, - 194, 195, 196, -1, 198, 199, 200, 201, 202, 203, - -1, 205, -1, 207, 208, 209, 210, 211, 212, 213, - 214, -1, 216, -1, 218, -1, -1, 221, -1, 223, - 224, 225, 226, 227, 228, -1, -1, 231, -1, 233, - -1, -1, 236, 237, 238, -1, -1, 241, 242, 243, - 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, - 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, - 264, 265, -1, 267, 268, 269, 270, 271, -1, 273, - 274, -1, 276, -1, 278, 279, 280, 281, 282, 283, - -1, 285, 286, -1, -1, 289, 290, 291, -1, -1, - 294, 295, -1, 297, -1, 299, 300, 301, 302, 303, - 304, 305, 306, 307, 308, 309, -1, 311, 312, 313, - 314, 315, 316, 317, 318, 319, -1, 321, 322, 323, - 324, 325, 326, -1, 328, 329, 330, 331, 332, 333, - 334, 335, -1, 337, 338, 339, 340, 341, 342, 343, - 344, 345, 346, 347, 348, 349, -1, 351, 352, -1, - 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, - 364, 365, 366, 367, 368, -1, 370, 371, 372, 373, - 374, -1, -1, 377, 378, 379, 380, -1, 382, 383, - 384, 385, -1, 387, 388, 389, 390, 391, 392, 393, - 394, 395, 396, 397, 398, 399, 400, 401, 402, -1, - 404, 405, -1, 407, -1, 409, 410, 411, 412, 413, - -1, 415, 416, -1, -1, 419, 420, 421, 422, 423, - -1, 425, 426, 427, 428, 429, 430, 431, 432, -1, - -1, 435, 436, 437, 438, 439, -1, -1, 442, 443, - 444, 445, 446, 447, 448, -1, 450, -1, 452, 453, - 454, 455, 456, -1, -1, 459, -1, -1, 462, 463, - 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, - 474, 475, 476, 477, 478, 479, 480, 481, 482, 3, + -1, -1, -1, 21, 22, 23, 24, 25, 26, 27, + 28, -1, 30, 31, 32, -1, -1, -1, -1, -1, + -1, -1, 40, 41, -1, 43, 44, 45, -1, 47, + 48, 49, 50, 51, -1, 53, 54, -1, 56, 57, + 58, 59, 60, 61, -1, -1, 64, 65, 66, 67, + 68, -1, 70, 71, 72, 73, 74, -1, -1, -1, + 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, + -1, 89, 90, 91, 92, 93, 94, -1, -1, 97, + 98, 99, -1, -1, -1, -1, -1, -1, -1, 107, + 108, 109, 110, 111, 112, 113, 114, 115, 116, -1, + 118, -1, 120, 121, 122, 123, 124, 125, -1, 127, + 128, 129, 130, 131, -1, -1, 134, 135, 136, 137, + 138, -1, 140, 141, 142, -1, 144, 145, 146, -1, + 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, + 158, -1, 160, -1, 162, 163, 164, 165, -1, 167, + -1, 169, -1, -1, -1, 173, 174, 175, -1, 177, + -1, 179, -1, 181, 182, 183, -1, 185, 186, 187, + 188, 189, 190, 191, -1, 193, 194, 195, 196, -1, + 198, 199, 200, 201, 202, 203, -1, 205, -1, 207, + 208, 209, 210, 211, 212, 213, 214, -1, 216, -1, + 218, -1, -1, 221, -1, 223, 224, 225, 226, 227, + 228, -1, -1, 231, -1, 233, -1, -1, 236, 237, + 238, -1, -1, 241, 242, 243, 244, 245, 246, 247, + 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, + 258, 259, 260, 261, 262, 263, 264, 265, -1, 267, + 268, 269, 270, 271, -1, 273, 274, -1, 276, -1, + 278, 279, 280, 281, 282, 283, -1, 285, 286, -1, + -1, 289, 290, 291, -1, -1, 294, 295, -1, 297, + -1, 299, 300, 301, 302, 303, 304, 305, 306, 307, + 308, 309, -1, 311, 312, 313, 314, 315, 316, 317, + 318, 319, -1, 321, 322, 323, 324, 325, 326, -1, + 328, 329, 330, 331, 332, 333, 334, 335, -1, 337, + 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, + 348, 349, -1, 351, 352, -1, 354, 355, 356, 357, + 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, + 368, -1, 370, 371, 372, 373, 374, -1, 376, 377, + 378, 379, 380, -1, 382, 383, 384, 385, -1, 387, + 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, + 398, 399, 400, 401, 402, -1, 404, 405, -1, 407, + -1, 409, 410, 411, 412, 413, -1, 415, 416, -1, + -1, 419, 420, 421, 422, 423, -1, 425, 426, 427, + 428, 429, 430, 431, 432, -1, -1, 435, 436, 437, + 438, 439, -1, -1, 442, 443, 444, 445, 446, 447, + 448, -1, 450, -1, 452, 453, 454, 455, 456, -1, + -1, 459, -1, -1, 462, 463, 464, 465, 466, 467, + 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, + 478, 479, 480, 481, 482, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 21, 22, 23, - 24, 25, 26, 27, 28, -1, 30, 31, 32, -1, - -1, -1, -1, -1, -1, -1, 40, 41, -1, 43, - 44, 45, -1, 47, 48, 49, 50, 51, -1, 53, - 54, -1, 56, 57, 58, 59, 60, 61, -1, -1, - 64, 65, 66, 67, 68, -1, 70, 71, 72, 73, - 74, -1, -1, -1, 78, 79, 80, 81, 82, 83, - -1, 85, 86, 87, -1, 89, 90, 91, 92, 93, - 94, -1, -1, 97, 98, 99, -1, -1, -1, -1, - -1, -1, -1, 107, 108, 109, 110, 111, 112, 113, - 114, 115, 116, -1, 118, -1, 120, 121, 122, 123, - 124, 125, -1, 127, 128, 129, 130, 131, -1, -1, - 134, 135, 136, 137, 138, -1, 140, 141, 142, -1, - 144, 145, 146, -1, 148, 149, 150, 151, 152, 153, - 154, 155, 156, 157, 158, -1, 160, -1, 162, 163, - 164, 165, -1, 167, -1, 169, -1, -1, -1, 173, - 174, 175, -1, 177, -1, 179, -1, 181, 182, 183, - -1, 185, 186, 187, 188, 189, 190, 191, -1, 193, - 194, 195, 196, -1, 198, 199, 200, 201, 202, 203, - -1, 205, -1, 207, 208, 209, 210, 211, 212, 213, - 214, -1, 216, -1, 218, -1, -1, 221, -1, 223, - 224, 225, 226, 227, 228, -1, -1, 231, -1, 233, - -1, -1, 236, 237, 238, -1, -1, 241, 242, 243, - 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, - 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, - 264, 265, -1, 267, 268, 269, 270, 271, -1, 273, - 274, -1, 276, -1, 278, 279, 280, 281, 282, 283, - -1, 285, 286, -1, -1, 289, 290, 291, -1, -1, - 294, 295, -1, 297, -1, 299, 300, 301, 302, 303, - 304, 305, 306, 307, 308, 309, -1, 311, 312, 313, - 314, 315, 316, 317, 318, 319, -1, 321, 322, 323, - 324, 325, 326, -1, 328, 329, 330, 331, 332, 333, - 334, 335, -1, 337, 338, 339, 340, 341, 342, 343, - 344, 345, 346, 347, 348, 349, -1, 351, 352, -1, - 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, - 364, 365, 366, 367, 368, -1, 370, 371, 372, 373, - 374, -1, 376, 377, 378, 379, 380, -1, 382, 383, - 384, 385, -1, 387, 388, 389, 390, 391, 392, 393, - 394, 395, 396, 397, 398, 399, 400, 401, 402, -1, - 404, 405, -1, 407, -1, 409, 410, 411, 412, 413, - -1, 415, 416, -1, -1, 419, 420, 421, 422, 423, - -1, 425, 426, 427, 428, 429, 430, 431, 432, -1, - -1, 435, 436, 437, 438, 439, -1, -1, 442, 443, - 444, 445, 446, 447, 448, -1, 450, -1, 452, 453, - 454, 455, 456, -1, -1, 459, -1, -1, 462, 463, - 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, - 474, 475, 476, 477, 478, 479, 480, 481, 482, 3, + -1, -1, -1, 21, 22, 23, 24, 25, 26, 27, + 28, -1, 30, 31, 32, -1, -1, -1, -1, -1, + -1, -1, 40, 41, -1, 43, 44, 45, -1, 47, + 48, 49, 50, 51, -1, 53, 54, -1, 56, 57, + 58, 59, 60, 61, -1, -1, 64, 65, 66, 67, + 68, -1, 70, 71, 72, 73, 74, -1, -1, -1, + 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, + -1, 89, 90, 91, 92, 93, 94, -1, -1, 97, + 98, 99, -1, -1, -1, -1, -1, -1, -1, 107, + 108, 109, 110, 111, 112, 113, 114, 115, 116, -1, + 118, -1, 120, 121, 122, 123, 124, 125, -1, 127, + 128, 129, 130, 131, -1, -1, 134, 135, 136, 137, + 138, -1, 140, 141, 142, -1, 144, 145, 146, -1, + 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, + 158, -1, 160, -1, 162, 163, 164, 165, -1, 167, + -1, 169, -1, -1, -1, 173, 174, 175, -1, 177, + -1, 179, -1, 181, 182, 183, -1, 185, 186, 187, + 188, 189, 190, 191, -1, 193, 194, 195, 196, -1, + 198, 199, 200, 201, 202, 203, -1, 205, -1, 207, + 208, 209, 210, 211, 212, 213, 214, -1, 216, -1, + 218, -1, -1, 221, -1, 223, 224, 225, 226, 227, + 228, -1, -1, 231, -1, 233, -1, -1, 236, 237, + 238, -1, -1, 241, 242, 243, 244, 245, 246, 247, + 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, + 258, 259, 260, 261, 262, 263, 264, 265, -1, 267, + 268, 269, 270, 271, -1, 273, 274, -1, 276, -1, + 278, 279, 280, 281, 282, 283, -1, 285, 286, -1, + -1, 289, 290, 291, -1, -1, 294, 295, -1, 297, + -1, 299, 300, 301, 302, 303, 304, 305, 306, 307, + 308, 309, -1, 311, 312, 313, 314, 315, 316, 317, + 318, 319, -1, 321, 322, 323, 324, 325, 326, -1, + 328, 329, 330, 331, 332, 333, 334, 335, -1, 337, + 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, + 348, 349, -1, 351, 352, -1, 354, 355, 356, 357, + 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, + 368, -1, 370, 371, 372, 373, 374, -1, 376, 377, + 378, 379, 380, -1, 382, 383, 384, 385, -1, 387, + 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, + 398, 399, 400, 401, 402, -1, 404, 405, -1, 407, + -1, 409, 410, 411, 412, 413, -1, 415, 416, -1, + -1, 419, 420, 421, 422, 423, -1, 425, 426, 427, + 428, 429, 430, 431, 432, -1, -1, 435, 436, 437, + 438, 439, -1, -1, 442, 443, 444, 445, 446, 447, + 448, -1, 450, -1, 452, 453, 454, 455, 456, -1, + -1, 459, -1, -1, 462, 463, 464, 465, 466, 467, + 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, + 478, 479, 480, 481, 482, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 21, 22, 23, - 24, 25, 26, 27, 28, -1, 30, 31, 32, -1, - -1, -1, -1, -1, -1, -1, 40, 41, -1, 43, - 44, 45, -1, 47, 48, 49, 50, 51, -1, 53, - 54, -1, 56, 57, 58, 59, 60, 61, -1, -1, - 64, 65, 66, 67, 68, -1, 70, 71, 72, 73, - 74, -1, -1, -1, 78, 79, 80, 81, 82, 83, - -1, 85, 86, 87, -1, 89, 90, 91, 92, 93, - 94, -1, -1, 97, 98, 99, -1, -1, -1, -1, - -1, -1, -1, 107, 108, 109, 110, 111, 112, 113, - 114, 115, 116, -1, 118, -1, 120, 121, 122, 123, - 124, 125, -1, 127, 128, 129, 130, 131, -1, -1, - 134, 135, 136, 137, 138, -1, 140, 141, 142, -1, - 144, 145, 146, -1, 148, 149, 150, 151, 152, 153, - 154, 155, 156, 157, 158, -1, 160, -1, 162, 163, - 164, 165, -1, 167, -1, 169, -1, -1, -1, 173, - 174, 175, -1, 177, -1, 179, -1, 181, 182, 183, - -1, 185, 186, 187, 188, 189, 190, 191, -1, 193, - 194, 195, 196, -1, 198, 199, 200, 201, 202, 203, - -1, 205, -1, 207, 208, 209, 210, 211, 212, 213, - 214, -1, 216, -1, 218, -1, -1, 221, -1, 223, - 224, 225, 226, 227, 228, -1, -1, 231, -1, 233, - -1, -1, 236, 237, 238, -1, -1, 241, 242, 243, - 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, - 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, - 264, 265, -1, 267, 268, 269, 270, 271, -1, 273, - 274, -1, 276, -1, 278, 279, 280, 281, 282, 283, - -1, 285, 286, -1, -1, 289, 290, 291, -1, -1, - 294, 295, -1, 297, -1, 299, 300, 301, 302, 303, - 304, 305, 306, 307, 308, 309, -1, 311, 312, 313, - 314, 315, 316, 317, 318, 319, -1, 321, 322, 323, - 324, 325, 326, -1, 328, 329, 330, 331, 332, 333, - 334, 335, -1, 337, 338, 339, 340, 341, 342, 343, - 344, 345, 346, 347, 348, 349, -1, 351, 352, -1, - 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, - 364, 365, 366, 367, 368, -1, 370, 371, 372, 373, - 374, -1, 376, 377, 378, 379, 380, -1, 382, 383, - 384, 385, -1, 387, 388, 389, 390, 391, 392, 393, - 394, 395, 396, 397, 398, 399, 400, 401, 402, -1, - 404, 405, -1, 407, -1, 409, 410, 411, 412, 413, - -1, 415, 416, -1, -1, 419, 420, 421, 422, 423, - -1, 425, 426, 427, 428, 429, 430, 431, 432, -1, - -1, 435, 436, 437, 438, 439, -1, -1, 442, 443, - 444, 445, 446, 447, 448, -1, 450, -1, 452, 453, - 454, 455, 456, -1, -1, 459, -1, -1, 462, 463, - 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, - 474, 475, 476, 477, 478, 479, 480, 481, 482, 3, + -1, -1, -1, 21, 22, 23, 24, 25, 26, 27, + 28, -1, 30, 31, 32, -1, -1, -1, -1, -1, + -1, -1, 40, 41, -1, 43, 44, 45, -1, 47, + 48, 49, 50, 51, -1, 53, 54, -1, 56, 57, + 58, 59, 60, 61, -1, -1, 64, 65, 66, 67, + 68, -1, 70, 71, 72, 73, 74, -1, -1, -1, + 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, + -1, 89, 90, 91, 92, 93, 94, -1, -1, 97, + 98, 99, -1, -1, -1, -1, -1, -1, -1, 107, + 108, 109, 110, 111, 112, 113, 114, 115, 116, -1, + 118, -1, 120, 121, 122, 123, 124, 125, -1, 127, + 128, 129, 130, 131, -1, -1, 134, 135, 136, 137, + 138, -1, 140, 141, 142, -1, 144, 145, 146, -1, + 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, + 158, -1, 160, -1, 162, 163, 164, 165, -1, 167, + -1, 169, -1, -1, -1, 173, 174, 175, -1, 177, + -1, 179, -1, 181, 182, 183, -1, 185, 186, 187, + 188, 189, 190, 191, -1, 193, 194, 195, 196, -1, + 198, 199, 200, 201, 202, 203, -1, 205, -1, 207, + 208, 209, 210, 211, 212, 213, 214, -1, 216, -1, + 218, -1, -1, 221, -1, 223, 224, 225, 226, 227, + 228, -1, -1, 231, -1, 233, -1, -1, 236, 237, + 238, -1, -1, 241, 242, 243, 244, 245, 246, 247, + 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, + 258, 259, 260, 261, 262, 263, 264, 265, -1, 267, + 268, 269, 270, 271, -1, 273, 274, -1, 276, -1, + 278, 279, 280, 281, 282, 283, -1, 285, 286, -1, + -1, 289, 290, 291, -1, -1, 294, 295, -1, 297, + -1, 299, 300, 301, 302, 303, 304, 305, 306, 307, + 308, 309, -1, 311, 312, 313, 314, 315, 316, 317, + 318, 319, -1, 321, 322, 323, 324, 325, 326, -1, + 328, 329, 330, 331, 332, 333, 334, 335, -1, 337, + 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, + 348, 349, -1, 351, 352, -1, 354, 355, 356, 357, + 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, + 368, -1, 370, 371, 372, 373, 374, -1, 376, 377, + 378, 379, 380, -1, 382, 383, 384, 385, -1, 387, + 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, + 398, 399, 400, 401, 402, -1, 404, 405, -1, 407, + -1, 409, 410, 411, 412, 413, -1, 415, 416, -1, + -1, 419, 420, 421, 422, 423, -1, 425, 426, 427, + 428, 429, 430, 431, 432, -1, -1, 435, 436, 437, + 438, 439, -1, -1, 442, 443, 444, 445, 446, 447, + 448, -1, 450, -1, 452, 453, 454, 455, 456, -1, + -1, 459, -1, -1, 462, 463, 464, 465, 466, 467, + 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, + 478, 479, 480, 481, 482, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 21, 22, 23, - 24, 25, 26, 27, 28, -1, 30, 31, 32, -1, - -1, -1, -1, -1, -1, -1, 40, 41, -1, 43, - 44, 45, -1, 47, 48, 49, 50, 51, -1, 53, - 54, -1, 56, 57, 58, 59, 60, 61, -1, -1, - 64, 65, 66, 67, 68, -1, 70, 71, 72, 73, - 74, -1, -1, -1, 78, 79, 80, 81, 82, 83, - -1, 85, 86, 87, -1, 89, 90, 91, 92, 93, - 94, -1, -1, 97, 98, 99, -1, -1, -1, -1, - -1, -1, -1, 107, 108, 109, 110, 111, 112, 113, - 114, 115, 116, -1, 118, -1, 120, 121, 122, 123, - 124, 125, -1, 127, 128, 129, 130, 131, -1, -1, - 134, 135, 136, 137, 138, -1, 140, 141, 142, -1, - 144, 145, 146, -1, 148, 149, 150, 151, 152, 153, - 154, 155, 156, 157, 158, -1, 160, -1, 162, 163, - 164, 165, -1, 167, -1, 169, -1, -1, -1, 173, - 174, 175, -1, 177, -1, 179, -1, 181, 182, 183, - -1, 185, 186, 187, 188, 189, 190, 191, -1, 193, - 194, 195, 196, -1, 198, 199, 200, 201, 202, 203, - -1, 205, -1, 207, 208, 209, 210, 211, 212, 213, - 214, -1, 216, -1, 218, -1, -1, 221, -1, 223, - 224, 225, 226, 227, 228, -1, -1, 231, -1, 233, - -1, -1, 236, 237, 238, -1, -1, 241, 242, 243, - 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, - 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, - 264, 265, -1, 267, 268, 269, 270, 271, -1, 273, - 274, -1, 276, -1, 278, 279, 280, 281, 282, 283, - -1, 285, 286, -1, -1, 289, 290, 291, -1, -1, - 294, 295, -1, 297, -1, 299, 300, 301, 302, 303, - 304, 305, 306, 307, 308, 309, -1, 311, 312, 313, - 314, 315, 316, 317, 318, 319, -1, 321, 322, 323, - 324, 325, 326, -1, 328, 329, 330, 331, 332, 333, - 334, 335, -1, 337, 338, 339, 340, 341, 342, 343, - 344, 345, 346, 347, 348, 349, -1, 351, 352, -1, - 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, - 364, 365, 366, 367, 368, -1, 370, 371, 372, 373, - 374, -1, 376, 377, 378, 379, 380, -1, 382, 383, - 384, 385, -1, 387, 388, 389, 390, 391, 392, 393, - 394, 395, 396, 397, 398, 399, 400, 401, 402, -1, - 404, 405, -1, 407, -1, 409, 410, 411, 412, 413, - -1, 415, 416, -1, -1, 419, 420, 421, 422, 423, - -1, 425, 426, 427, 428, 429, 430, 431, 432, -1, - -1, 435, 436, 437, 438, 439, -1, -1, 442, 443, - 444, 445, 446, 447, 448, -1, 450, -1, 452, 453, - 454, 455, 456, -1, -1, 459, -1, -1, 462, 463, - 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, - 474, 475, 476, 477, 478, 479, 480, 481, 482, 3, + -1, -1, -1, 21, 22, 23, 24, 25, 26, 27, + 28, -1, 30, 31, 32, -1, -1, -1, -1, -1, + 38, -1, 40, 41, -1, 43, 44, 45, -1, 47, + 48, 49, 50, 51, -1, 53, 54, -1, 56, 57, + 58, 59, 60, 61, -1, -1, 64, 65, 66, 67, + 68, -1, 70, 71, 72, 73, 74, -1, -1, -1, + 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, + -1, 89, 90, 91, 92, 93, 94, -1, -1, 97, + 98, 99, -1, -1, -1, -1, -1, -1, -1, 107, + 108, 109, 110, 111, 112, 113, 114, 115, 116, -1, + 118, -1, 120, 121, 122, 123, 124, 125, -1, 127, + 128, 129, 130, 131, -1, -1, 134, 135, 136, 137, + 138, -1, 140, 141, 142, -1, 144, 145, 146, -1, + 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, + 158, -1, 160, -1, 162, 163, 164, 165, -1, 167, + -1, 169, -1, -1, -1, 173, 174, 175, -1, 177, + -1, 179, -1, 181, 182, 183, -1, 185, 186, 187, + 188, 189, 190, 191, -1, 193, 194, 195, 196, -1, + 198, 199, 200, 201, 202, 203, -1, 205, -1, 207, + 208, 209, 210, 211, 212, 213, 214, -1, 216, -1, + 218, -1, -1, 221, -1, 223, 224, 225, 226, 227, + 228, -1, -1, 231, -1, 233, -1, -1, 236, 237, + 238, -1, -1, 241, 242, 243, 244, 245, 246, 247, + 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, + 258, 259, 260, 261, 262, 263, 264, 265, -1, 267, + 268, 269, 270, 271, -1, 273, 274, -1, 276, -1, + 278, 279, 280, 281, 282, 283, -1, 285, 286, -1, + -1, 289, 290, 291, -1, -1, 294, 295, -1, 297, + -1, 299, 300, 301, 302, 303, 304, 305, 306, 307, + 308, 309, -1, 311, 312, 313, 314, 315, 316, 317, + 318, 319, -1, 321, 322, 323, 324, 325, 326, -1, + 328, 329, 330, 331, 332, 333, 334, 335, -1, 337, + 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, + 348, 349, -1, 351, 352, -1, 354, 355, 356, 357, + 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, + 368, -1, 370, 371, 372, 373, 374, -1, -1, 377, + 378, 379, 380, -1, 382, 383, 384, 385, -1, 387, + 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, + 398, 399, 400, 401, 402, -1, 404, 405, -1, 407, + -1, 409, 410, 411, 412, 413, -1, 415, 416, -1, + -1, 419, 420, 421, 422, 423, -1, 425, 426, 427, + 428, 429, 430, 431, 432, -1, -1, 435, 436, 437, + 438, 439, -1, -1, 442, 443, 444, 445, 446, 447, + 448, -1, 450, -1, 452, 453, 454, 455, 456, -1, + -1, 459, -1, -1, 462, 463, 464, 465, 466, 467, + 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, + 478, 479, 480, 481, 482, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 21, 22, 23, - 24, 25, 26, 27, 28, -1, 30, 31, 32, -1, - -1, -1, -1, -1, -1, -1, 40, 41, -1, 43, - 44, 45, 46, 47, 48, 49, -1, 51, 52, 53, - 54, -1, 56, 57, 58, 59, 60, 61, -1, -1, - 64, 65, 66, 67, 68, -1, 70, 71, 72, 73, - -1, -1, 76, -1, 78, 79, 80, 81, 82, 83, - 84, 85, 86, 87, -1, 89, 90, 91, 92, 93, - 94, -1, 96, 97, 98, 99, 100, 101, 102, 103, - -1, -1, 106, 107, 108, 109, 110, 111, 112, 113, - 114, 115, 116, -1, 118, -1, 120, 121, 122, 123, - 124, 125, -1, 127, 128, 129, 130, 131, -1, -1, - 134, 135, 136, 137, 138, -1, 140, 141, 142, -1, - 144, 145, 146, -1, 148, 149, 150, 151, -1, 153, - 154, 155, 156, 157, -1, -1, 160, -1, 162, 163, - 164, 165, -1, 167, -1, 169, 170, -1, 172, 173, - 174, 175, 176, 177, -1, 179, -1, -1, -1, 183, - -1, 185, 186, 187, 188, 189, 190, 191, 192, 193, - 194, 195, 196, -1, 198, 199, 200, 201, 202, 203, - -1, 205, 206, -1, 208, 209, 210, 211, 212, 213, - 214, -1, 216, -1, 218, 219, 220, 221, 222, 223, - 224, 225, 226, 227, 228, -1, -1, 231, 232, 233, - 234, -1, 236, 237, 238, -1, -1, 241, 242, 243, - 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, - 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, - 264, 265, 266, 267, 268, 269, 270, -1, -1, 273, - 274, 275, 276, -1, -1, 279, 280, 281, 282, 283, - -1, 285, 286, -1, -1, 289, 290, 291, -1, -1, - 294, -1, 296, 297, 298, -1, 300, 301, 302, 303, - 304, 305, 306, 307, 308, 309, -1, 311, 312, -1, - 314, 315, -1, 317, 318, 319, -1, 321, 322, 323, - 324, 325, 326, -1, 328, 329, 330, 331, 332, 333, - 334, 335, -1, 337, 338, 339, 340, 341, 342, 343, - 344, 345, 346, 347, 348, 349, -1, 351, 352, 353, - 354, 355, 356, -1, 358, 359, 360, 361, 362, 363, - 364, 365, 366, 367, 368, -1, 370, 371, 372, 373, - 374, 375, 376, -1, 378, 379, 380, 381, 382, 383, - 384, 385, -1, 387, 388, 389, 390, 391, 392, 393, - 394, 395, 396, 397, 398, 399, 400, -1, 402, -1, - 404, 405, -1, 407, 408, 409, 410, 411, 412, 413, - -1, 415, 416, -1, -1, 419, 420, -1, 422, -1, - -1, 425, 426, 427, 428, 429, 430, 431, 432, -1, - -1, 435, 436, 437, 438, 439, 440, -1, 442, 443, - 444, 445, 446, -1, 448, -1, 450, 451, 452, 453, - 454, 455, 456, -1, -1, 459, -1, -1, 462, 463, - 464, 465, 466, 467, 3, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 479, 480, 481, 482, -1, - -1, -1, 21, 22, 23, 24, 25, 26, 27, 28, - -1, 30, 31, 32, -1, -1, -1, -1, -1, -1, - -1, 40, 41, -1, 43, 44, 45, 46, 47, 48, - 49, -1, 51, 52, 53, 54, -1, 56, 57, 58, - 59, 60, 61, -1, -1, 64, 65, 66, 67, 68, - -1, 70, 71, 72, 73, -1, -1, 76, -1, 78, - 79, 80, 81, 82, 83, 84, 85, 86, 87, -1, - 89, 90, 91, 92, 93, 94, -1, 96, 97, 98, - 99, 100, 101, 102, 103, -1, -1, 106, 107, 108, - 109, 110, 111, 112, 113, 114, 115, 116, -1, 118, - -1, 120, 121, 122, 123, 124, 125, -1, 127, 128, - 129, 130, 131, -1, -1, 134, 135, 136, 137, 138, - -1, 140, 141, 142, -1, 144, 145, 146, -1, 148, - 149, 150, 151, -1, 153, 154, 155, 156, 157, -1, - -1, 160, -1, 162, 163, 164, 165, -1, 167, -1, - 169, 170, -1, 172, 173, 174, -1, 176, 177, -1, - 179, -1, -1, -1, 183, -1, 185, 186, 187, 188, - 189, 190, 191, 192, 193, 194, 195, 196, -1, 198, - 199, 200, 201, 202, 203, -1, 205, 206, -1, 208, - 209, 210, 211, 212, 213, 214, -1, 216, -1, 218, - 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, - -1, -1, 231, 232, 233, 234, -1, 236, 237, 238, - -1, -1, 241, 242, 243, 244, 245, -1, 247, 248, - 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, - 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, - 269, 270, -1, -1, 273, 274, 275, 276, -1, -1, - 279, 280, 281, 282, 283, -1, 285, 286, -1, -1, - 289, 290, 291, -1, -1, 294, -1, 296, 297, 298, - -1, 300, 301, 302, 303, 304, 305, 306, 307, 308, - 309, -1, 311, 312, -1, 314, 315, -1, 317, 318, - 319, -1, 321, 322, 323, 324, 325, 326, -1, 328, - 329, 330, 331, 332, 333, 334, 335, -1, 337, 338, - 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, - 349, -1, 351, 352, 353, 354, 355, 356, -1, 358, - 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, - -1, 370, 371, 372, 373, 374, 375, 376, -1, 378, - 379, 380, 381, 382, 383, 384, 385, -1, 387, 388, - 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, - -1, 400, -1, 402, -1, 404, 405, -1, 407, 408, - 409, 410, 411, 412, 413, -1, 415, 416, -1, -1, - 419, 420, -1, 422, -1, -1, 425, 426, 427, 428, - 429, 430, 431, 432, -1, -1, 435, 436, 437, 438, - 439, 440, -1, 442, 443, 444, 445, 446, -1, 448, - -1, 450, 451, 452, 453, 454, 455, 456, -1, -1, - 459, -1, -1, 462, 463, 464, 465, 466, 467, 3, + -1, -1, -1, 21, 22, 23, 24, 25, 26, 27, + 28, -1, 30, 31, 32, -1, -1, -1, -1, -1, + -1, -1, 40, 41, -1, 43, 44, 45, -1, 47, + 48, 49, 50, 51, -1, 53, 54, -1, 56, 57, + 58, 59, 60, 61, -1, -1, 64, 65, 66, 67, + 68, -1, 70, 71, 72, 73, 74, -1, -1, -1, + 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, + -1, 89, 90, 91, 92, 93, 94, -1, -1, 97, + 98, 99, -1, -1, -1, -1, -1, -1, -1, 107, + 108, 109, 110, 111, 112, 113, 114, 115, 116, -1, + 118, -1, 120, 121, 122, 123, 124, 125, -1, 127, + 128, 129, 130, 131, -1, -1, 134, 135, 136, 137, + 138, -1, 140, 141, 142, -1, 144, 145, 146, -1, + 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, + 158, -1, 160, -1, 162, 163, 164, 165, -1, 167, + -1, 169, -1, -1, -1, 173, 174, 175, -1, 177, + -1, 179, -1, 181, 182, 183, -1, 185, 186, 187, + 188, 189, 190, 191, -1, 193, 194, 195, 196, -1, + 198, 199, 200, 201, 202, 203, -1, 205, -1, 207, + 208, 209, 210, 211, 212, 213, 214, -1, 216, -1, + 218, -1, -1, 221, -1, 223, 224, 225, 226, 227, + 228, -1, -1, 231, -1, 233, -1, -1, 236, 237, + 238, -1, -1, 241, 242, 243, 244, 245, 246, 247, + 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, + 258, 259, 260, 261, 262, 263, 264, 265, -1, 267, + 268, 269, 270, 271, -1, 273, 274, -1, 276, -1, + 278, 279, 280, 281, 282, 283, -1, 285, 286, -1, + -1, 289, 290, 291, -1, -1, 294, 295, -1, 297, + -1, 299, 300, 301, 302, 303, 304, 305, 306, 307, + 308, 309, -1, 311, 312, 313, 314, 315, 316, 317, + 318, 319, -1, 321, 322, 323, 324, 325, 326, -1, + 328, 329, 330, 331, 332, 333, 334, 335, -1, 337, + 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, + 348, 349, -1, 351, 352, -1, 354, 355, 356, 357, + 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, + 368, -1, 370, 371, 372, 373, 374, -1, 376, 377, + 378, 379, 380, -1, 382, 383, 384, 385, -1, 387, + 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, + 398, 399, 400, 401, 402, -1, 404, 405, -1, 407, + -1, 409, 410, 411, 412, 413, -1, 415, 416, -1, + -1, 419, 420, 421, 422, 423, -1, 425, 426, 427, + 428, 429, 430, 431, 432, -1, -1, 435, 436, 437, + 438, 439, -1, -1, 442, 443, 444, 445, 446, 447, + 448, -1, 450, -1, 452, 453, 454, 455, 456, -1, + -1, 459, -1, -1, 462, 463, 464, 465, 466, 467, + 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, + 478, 479, 480, 481, 482, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 479, 480, 481, 482, -1, -1, -1, 21, 22, 23, - 24, 25, 26, 27, 28, -1, 30, 31, 32, -1, - -1, -1, -1, -1, -1, -1, 40, 41, -1, 43, - 44, 45, -1, 47, 48, 49, 50, 51, -1, 53, - 54, -1, 56, 57, 58, 59, 60, 61, -1, -1, - 64, 65, 66, 67, 68, -1, 70, 71, 72, 73, - 74, -1, -1, -1, 78, 79, 80, 81, 82, 83, - -1, 85, 86, 87, -1, 89, 90, 91, 92, 93, - 94, -1, -1, 97, 98, 99, -1, -1, -1, -1, - -1, -1, -1, 107, 108, 109, 110, 111, 112, 113, - 114, 115, 116, -1, 118, -1, 120, 121, 122, 123, - 124, 125, -1, 127, 128, 129, 130, 131, -1, -1, - 134, 135, 136, 137, 138, -1, 140, 141, 142, -1, - 144, 145, 146, -1, 148, 149, 150, 151, 152, 153, - 154, 155, 156, 157, 158, -1, 160, -1, 162, 163, - 164, 165, -1, 167, -1, 169, -1, -1, -1, 173, - 174, 175, -1, 177, -1, 179, -1, 181, 182, 183, - -1, 185, 186, 187, 188, 189, 190, 191, -1, 193, - 194, 195, 196, -1, 198, 199, 200, 201, 202, 203, - -1, 205, -1, 207, 208, 209, 210, 211, 212, 213, - 214, -1, 216, -1, 218, -1, -1, 221, -1, 223, - 224, 225, 226, 227, 228, -1, -1, 231, -1, 233, - -1, -1, 236, 237, 238, -1, -1, 241, 242, 243, - 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, - 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, - 264, 265, -1, 267, 268, 269, 270, 271, -1, 273, - 274, -1, 276, -1, 278, 279, 280, 281, 282, 283, - -1, 285, 286, -1, -1, 289, 290, 291, -1, -1, - 294, 295, -1, 297, -1, 299, 300, 301, 302, 303, - 304, 305, -1, 307, 308, 309, -1, 311, 312, 313, - 314, 315, 316, 317, 318, 319, -1, 321, 322, 323, - 324, 325, 326, -1, 328, -1, 330, 331, 332, 333, - 334, 335, -1, 337, 338, 339, 340, 341, 342, 343, - 344, 345, 346, 347, 348, 349, -1, 351, 352, -1, - 354, 355, 356, 357, -1, 359, 360, 361, 362, 363, - 364, 365, 366, 367, 368, -1, 370, 371, 372, 373, - 374, -1, 376, 377, 378, 379, 380, -1, 382, 383, - 384, 385, -1, 387, 388, 389, 390, 391, 392, 393, - 394, 395, 396, 397, 398, 399, 400, 401, 402, -1, - 404, 405, -1, 407, -1, 409, 410, 411, 412, 413, - -1, 415, 416, -1, -1, 419, 420, 421, 422, 423, - -1, 425, 426, 427, 428, 429, 430, 431, 432, -1, - -1, 435, 436, 437, 438, 439, -1, -1, 442, 443, - 444, 445, 446, 447, 448, -1, 450, -1, 452, 453, - 454, 455, 456, -1, -1, 459, -1, -1, 462, 463, - 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, - 474, 475, 476, 477, 478, 479, 480, 481, 482, 21, - 21, -1, -1, -1, -1, -1, -1, -1, -1, 31, - 31, 33, 34, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 49, 49, -1, - -1, -1, -1, -1, -1, -1, 58, 58, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 70, 70, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 81, - 81, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 93, 93, 95, 95, -1, -1, -1, -1, -1, + -1, -1, -1, 21, 22, 23, 24, 25, 26, 27, + 28, -1, 30, 31, 32, -1, -1, -1, -1, -1, + -1, -1, 40, 41, -1, 43, 44, 45, -1, 47, + 48, 49, 50, 51, -1, 53, 54, -1, 56, 57, + 58, 59, 60, 61, -1, -1, 64, 65, 66, 67, + 68, -1, 70, 71, 72, 73, 74, -1, -1, -1, + 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, + -1, 89, 90, 91, 92, 93, 94, -1, -1, 97, + 98, 99, -1, -1, -1, -1, -1, -1, -1, 107, + 108, 109, 110, 111, 112, 113, 114, 115, 116, -1, + 118, -1, 120, 121, 122, 123, 124, 125, -1, 127, + 128, 129, 130, 131, -1, -1, 134, 135, 136, 137, + 138, -1, 140, 141, 142, -1, 144, 145, 146, -1, + 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, + 158, -1, 160, -1, 162, 163, 164, 165, -1, 167, + -1, 169, -1, -1, -1, 173, 174, 175, -1, 177, + -1, 179, -1, 181, 182, 183, -1, 185, 186, 187, + 188, 189, 190, 191, -1, 193, 194, 195, 196, -1, + 198, 199, 200, 201, 202, 203, -1, 205, -1, 207, + 208, 209, 210, 211, 212, 213, 214, -1, 216, -1, + 218, -1, -1, 221, -1, 223, 224, 225, 226, 227, + 228, -1, -1, 231, -1, 233, -1, -1, 236, 237, + 238, -1, -1, 241, 242, 243, 244, 245, 246, 247, + 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, + 258, 259, 260, 261, 262, 263, 264, 265, -1, 267, + 268, 269, 270, 271, -1, 273, 274, -1, 276, -1, + 278, 279, 280, 281, 282, 283, -1, 285, 286, -1, + -1, 289, 290, 291, -1, -1, 294, 295, -1, 297, + -1, 299, 300, 301, 302, 303, 304, 305, 306, 307, + 308, 309, -1, 311, 312, 313, 314, 315, 316, 317, + 318, 319, -1, 321, 322, 323, 324, 325, 326, -1, + 328, 329, 330, 331, 332, 333, 334, 335, -1, 337, + 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, + 348, 349, -1, 351, 352, -1, 354, 355, 356, 357, + 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, + 368, -1, 370, 371, 372, 373, 374, -1, 376, 377, + 378, 379, 380, -1, 382, 383, 384, 385, -1, 387, + 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, + 398, 399, 400, 401, 402, -1, 404, 405, -1, 407, + -1, 409, 410, 411, 412, 413, -1, 415, 416, -1, + -1, 419, 420, 421, 422, 423, -1, 425, 426, 427, + 428, 429, 430, 431, 432, -1, -1, 435, 436, 437, + 438, 439, -1, -1, 442, 443, 444, 445, 446, 447, + 448, -1, 450, -1, 452, 453, 454, 455, 456, -1, + -1, 459, -1, -1, 462, 463, 464, 465, 466, 467, + 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, + 478, 479, 480, 481, 482, 3, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 21, 22, 23, 24, 25, 26, 27, + 28, -1, 30, 31, 32, -1, -1, -1, -1, -1, + -1, -1, 40, 41, -1, 43, 44, 45, -1, 47, + 48, 49, 50, 51, -1, 53, 54, -1, 56, 57, + 58, 59, 60, 61, -1, -1, 64, 65, 66, 67, + 68, -1, 70, 71, 72, 73, 74, -1, -1, -1, + 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, + -1, 89, 90, 91, 92, 93, 94, -1, -1, 97, + 98, 99, -1, -1, -1, -1, -1, -1, -1, 107, + 108, 109, 110, 111, 112, 113, 114, 115, 116, -1, + 118, -1, 120, 121, 122, 123, 124, 125, -1, 127, + 128, 129, 130, 131, -1, -1, 134, 135, 136, 137, + 138, -1, 140, 141, 142, -1, 144, 145, 146, -1, + 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, + 158, -1, 160, -1, 162, 163, 164, 165, -1, 167, + -1, 169, -1, -1, -1, 173, 174, 175, -1, 177, + -1, 179, -1, 181, 182, 183, -1, 185, 186, 187, + 188, 189, 190, 191, -1, 193, 194, 195, 196, -1, + 198, 199, 200, 201, 202, 203, -1, 205, -1, 207, + 208, 209, 210, 211, 212, 213, 214, -1, 216, -1, + 218, -1, -1, 221, -1, 223, 224, 225, 226, 227, + 228, -1, -1, 231, -1, 233, -1, -1, 236, 237, + 238, -1, -1, 241, 242, 243, 244, 245, 246, 247, + 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, + 258, 259, 260, 261, 262, 263, 264, 265, -1, 267, + 268, 269, 270, 271, -1, 273, 274, -1, 276, -1, + 278, 279, 280, 281, 282, 283, -1, 285, 286, -1, + -1, 289, 290, 291, -1, -1, 294, 295, -1, 297, + -1, 299, 300, 301, 302, 303, 304, 305, 306, 307, + 308, 309, -1, 311, 312, 313, 314, 315, 316, 317, + 318, 319, -1, 321, 322, 323, 324, 325, 326, -1, + 328, 329, 330, 331, 332, 333, 334, 335, -1, 337, + 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, + 348, 349, -1, 351, 352, -1, 354, 355, 356, 357, + 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, + 368, -1, 370, 371, 372, 373, 374, -1, 376, 377, + 378, 379, 380, -1, 382, 383, 384, 385, -1, 387, + 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, + 398, 399, 400, 401, 402, -1, 404, 405, -1, 407, + -1, 409, 410, 411, 412, 413, -1, 415, 416, -1, + -1, 419, 420, 421, 422, 423, -1, 425, 426, 427, + 428, 429, 430, 431, 432, -1, -1, 435, 436, 437, + 438, 439, -1, -1, 442, 443, 444, 445, 446, 447, + 448, -1, 450, -1, 452, 453, 454, 455, 456, -1, + -1, 459, -1, -1, 462, 463, 464, 465, 466, 467, + 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, + 478, 479, 480, 481, 482, 3, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 21, 22, 23, 24, 25, 26, 27, + 28, -1, 30, 31, 32, -1, -1, -1, -1, -1, + -1, -1, 40, 41, -1, 43, 44, 45, 46, 47, + 48, 49, -1, 51, 52, 53, 54, -1, 56, 57, + 58, 59, 60, 61, -1, -1, 64, 65, 66, 67, + 68, -1, 70, 71, 72, 73, -1, -1, 76, -1, + 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, + -1, 89, 90, 91, 92, 93, 94, -1, 96, 97, + 98, 99, 100, 101, 102, 103, -1, -1, 106, 107, + 108, 109, 110, 111, 112, 113, 114, 115, 116, -1, + 118, -1, 120, 121, 122, 123, 124, 125, -1, 127, + 128, 129, 130, 131, -1, -1, 134, 135, 136, 137, + 138, -1, 140, 141, 142, -1, 144, 145, 146, -1, + 148, 149, 150, 151, -1, 153, 154, 155, 156, 157, + -1, -1, 160, -1, 162, 163, 164, 165, -1, 167, + -1, 169, 170, -1, 172, 173, 174, 175, 176, 177, + -1, 179, -1, -1, -1, 183, -1, 185, 186, 187, + 188, 189, 190, 191, 192, 193, 194, 195, 196, -1, + 198, 199, 200, 201, 202, 203, -1, 205, 206, -1, + 208, 209, 210, 211, 212, 213, 214, -1, 216, -1, + 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, + 228, -1, -1, 231, 232, 233, 234, -1, 236, 237, + 238, -1, -1, 241, 242, 243, 244, 245, 246, 247, + 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, + 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, + 268, 269, 270, -1, -1, 273, 274, 275, 276, -1, + -1, 279, 280, 281, 282, 283, -1, 285, 286, -1, + -1, 289, 290, 291, -1, -1, 294, -1, 296, 297, + 298, -1, 300, 301, 302, 303, 304, 305, 306, 307, + 308, 309, -1, 311, 312, -1, 314, 315, -1, 317, + 318, 319, -1, 321, 322, 323, 324, 325, 326, -1, + 328, 329, 330, 331, 332, 333, 334, 335, -1, 337, + 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, + 348, 349, -1, 351, 352, 353, 354, 355, 356, -1, + 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, + 368, -1, 370, 371, 372, 373, 374, 375, 376, -1, + 378, 379, 380, 381, 382, 383, 384, 385, -1, 387, + 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, + 398, 399, 400, -1, 402, -1, 404, 405, -1, 407, + 408, 409, 410, 411, 412, 413, -1, 415, 416, -1, + -1, 419, 420, -1, 422, -1, -1, 425, 426, 427, + 428, 429, 430, 431, 432, -1, -1, 435, 436, 437, + 438, 439, 440, -1, 442, 443, 444, 445, 446, -1, + 448, -1, 450, 451, 452, 453, 454, 455, 456, -1, + -1, 459, -1, -1, 462, 463, 464, 465, 466, 467, + 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 479, 480, 481, 482, -1, -1, -1, 21, 22, + 23, 24, 25, 26, 27, 28, -1, 30, 31, 32, + -1, -1, -1, -1, -1, -1, -1, 40, 41, -1, + 43, 44, 45, 46, 47, 48, 49, -1, 51, 52, + 53, 54, -1, 56, 57, 58, 59, 60, 61, -1, + -1, 64, 65, 66, 67, 68, -1, 70, 71, 72, + 73, -1, -1, 76, -1, 78, 79, 80, 81, 82, + 83, 84, 85, 86, 87, -1, 89, 90, 91, 92, + 93, 94, -1, 96, 97, 98, 99, 100, 101, 102, + 103, -1, -1, 106, 107, 108, 109, 110, 111, 112, + 113, 114, 115, 116, -1, 118, -1, 120, 121, 122, + 123, 124, 125, -1, 127, 128, 129, 130, 131, -1, + -1, 134, 135, 136, 137, 138, -1, 140, 141, 142, + -1, 144, 145, 146, -1, 148, 149, 150, 151, -1, + 153, 154, 155, 156, 157, -1, -1, 160, -1, 162, + 163, 164, 165, -1, 167, -1, 169, 170, -1, 172, + 173, 174, -1, 176, 177, -1, 179, -1, -1, -1, + 183, -1, 185, 186, 187, 188, 189, 190, 191, 192, + 193, 194, 195, 196, -1, 198, 199, 200, 201, 202, + 203, -1, 205, 206, -1, 208, 209, 210, 211, 212, + 213, 214, -1, 216, -1, 218, 219, 220, 221, 222, + 223, 224, 225, 226, 227, 228, -1, -1, 231, 232, + 233, 234, -1, 236, 237, 238, -1, -1, 241, 242, + 243, 244, 245, -1, 247, 248, 249, 250, 251, 252, + 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, + 263, 264, 265, 266, 267, 268, 269, 270, -1, -1, + 273, 274, 275, 276, -1, -1, 279, 280, 281, 282, + 283, -1, 285, 286, -1, -1, 289, 290, 291, -1, + -1, 294, -1, 296, 297, 298, -1, 300, 301, 302, + 303, 304, 305, 306, 307, 308, 309, -1, 311, 312, + -1, 314, 315, -1, 317, 318, 319, -1, 321, 322, + 323, 324, 325, 326, -1, 328, 329, 330, 331, 332, + 333, 334, 335, -1, 337, 338, 339, 340, 341, 342, + 343, 344, 345, 346, 347, 348, 349, -1, 351, 352, + 353, 354, 355, 356, -1, 358, 359, 360, 361, 362, + 363, 364, 365, 366, 367, 368, -1, 370, 371, 372, + 373, 374, 375, 376, -1, 378, 379, 380, 381, 382, + 383, 384, 385, -1, 387, 388, 389, 390, 391, 392, + 393, 394, 395, 396, 397, 398, -1, 400, -1, 402, + -1, 404, 405, -1, 407, 408, 409, 410, 411, 412, + 413, -1, 415, 416, -1, -1, 419, 420, -1, 422, + -1, -1, 425, 426, 427, 428, 429, 430, 431, 432, + -1, -1, 435, 436, 437, 438, 439, 440, -1, 442, + 443, 444, 445, 446, -1, 448, -1, 450, 451, 452, + 453, 454, 455, 456, -1, -1, 459, -1, -1, 462, + 463, 464, 465, 466, 467, 3, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 479, 480, 481, 482, + -1, -1, -1, 21, 22, 23, 24, 25, 26, 27, + 28, -1, 30, 31, 32, -1, -1, -1, -1, -1, + -1, -1, 40, 41, -1, 43, 44, 45, -1, 47, + 48, 49, 50, 51, -1, 53, 54, -1, 56, 57, + 58, 59, 60, 61, -1, -1, 64, 65, 66, 67, + 68, -1, 70, 71, 72, 73, 74, -1, -1, -1, + 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, + -1, 89, 90, 91, 92, 93, 94, -1, -1, 97, + 98, 99, -1, -1, -1, -1, -1, -1, -1, 107, + 108, 109, 110, 111, 112, 113, 114, 115, 116, -1, + 118, -1, 120, 121, 122, 123, 124, 125, -1, 127, + 128, 129, 130, 131, -1, -1, 134, 135, 136, 137, + 138, -1, 140, 141, 142, -1, 144, 145, 146, -1, + 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, + 158, -1, 160, -1, 162, 163, 164, 165, -1, 167, + -1, 169, -1, -1, -1, 173, 174, 175, -1, 177, + -1, 179, -1, 181, 182, 183, -1, 185, 186, 187, + 188, 189, 190, 191, -1, 193, 194, 195, 196, -1, + 198, 199, 200, 201, 202, 203, -1, 205, -1, 207, + 208, 209, 210, 211, 212, 213, 214, -1, 216, -1, + 218, -1, -1, 221, -1, 223, 224, 225, 226, 227, + 228, -1, -1, 231, -1, 233, -1, -1, 236, 237, + 238, -1, -1, 241, 242, 243, 244, 245, 246, 247, + 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, + 258, 259, 260, 261, 262, 263, 264, 265, -1, 267, + 268, 269, 270, 271, -1, 273, 274, -1, 276, -1, + 278, 279, 280, 281, 282, 283, -1, 285, 286, -1, + -1, 289, 290, 291, -1, -1, 294, 295, -1, 297, + -1, 299, 300, 301, 302, 303, 304, 305, -1, 307, + 308, 309, -1, 311, 312, 313, 314, 315, 316, 317, + 318, 319, -1, 321, 322, 323, 324, 325, 326, -1, + 328, -1, 330, 331, 332, 333, 334, 335, -1, 337, + 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, + 348, 349, -1, 351, 352, -1, 354, 355, 356, 357, + -1, 359, 360, 361, 362, 363, 364, 365, 366, 367, + 368, -1, 370, 371, 372, 373, 374, -1, 376, 377, + 378, 379, 380, -1, 382, 383, 384, 385, -1, 387, + 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, + 398, 399, 400, 401, 402, -1, 404, 405, -1, 407, + -1, 409, 410, 411, 412, 413, -1, 415, 416, -1, + -1, 419, 420, 421, 422, 423, -1, 425, 426, 427, + 428, 429, 430, 431, 432, -1, -1, 435, 436, 437, + 438, 439, -1, -1, 442, 443, 444, 445, 446, 447, + 448, -1, 450, -1, 452, 453, 454, 455, 456, -1, + -1, 459, -1, -1, 462, 463, 464, 465, 466, 467, + 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, + 478, 479, 480, 481, 482, 21, 21, -1, -1, -1, + -1, -1, -1, -1, -1, 31, 31, 33, 34, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 113, 113, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 127, 127, -1, -1, -1, - -1, -1, -1, -1, -1, 137, 137, -1, -1, -1, - -1, 143, 143, -1, -1, -1, -1, -1, -1, 151, - 151, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 167, 167, -1, -1, -1, + -1, -1, -1, 49, 49, -1, -1, -1, -1, -1, + -1, -1, 58, 58, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 70, 70, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 81, 81, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 93, 93, 95, + 95, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 113, 113, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 127, 127, -1, -1, -1, -1, -1, -1, -1, + -1, 137, 137, -1, -1, -1, -1, 143, 143, -1, + -1, -1, -1, -1, -1, 151, 151, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 167, 167, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 211, - 211, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 237, 237, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 211, 211, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 237, 237, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 314, 314, -1, 317, 317, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 346, 346, -1, -1, -1, -1, - -1, -1, -1, 355, 355, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 369, 369, -1, - -1, -1, -1, -1, 376, 376, -1, -1, 380, 380, - -1, -1, -1, -1, -1, -1, -1, -1, 390, 390, + -1, -1, -1, -1, -1, -1, -1, -1, 314, 314, + -1, 317, 317, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 402, 402, -1, -1, 406, 406, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 346, 346, -1, -1, -1, -1, -1, -1, -1, 355, + 355, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 369, 369, -1, -1, -1, -1, -1, + 376, 376, -1, -1, 380, 380, -1, -1, -1, -1, + -1, -1, -1, -1, 390, 390, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 402, 402, -1, -1, + 406, 406, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 442, 442, -1, -1, -1, 447, 447, -1, -1, 451, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 461, - 461, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 442, 442, -1, -1, + -1, 447, 447, -1, -1, 451, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 461, 461, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 485, 485, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 499, 499 + -1, -1, -1, -1, -1, -1, -1, -1, -1, 485, + 485, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 499, 499 }; - /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing - symbol of state STATE-NUM. */ +/* YYSTOS[STATE-NUM] -- The symbol kind of the accessing symbol of + state STATE-NUM. */ static const yytype_int16 yystos[] = { 0, 21, 31, 33, 34, 49, 58, 70, 81, 93, 95, 113, 127, 137, 143, 151, 153, 154, 167, 196, 211, 237, 314, 317, 346, 355, 369, 376, 380, 390, 402, 406, 442, 447, 461, 485, 499, 510, 511, 512, - 513, 530, 533, 534, 535, 536, 537, 538, 539, 590, - 591, 736, 737, 740, 741, 743, 750, 751, 799, 801, - 804, 811, 815, 822, 823, 834, 836, 838, 841, 846, - 853, 854, 855, 859, 861, 867, 868, 870, 872, 875, - 876, 877, 881, 896, 419, 464, 835, 200, 362, 370, - 406, 453, 835, 3, 21, 22, 23, 24, 25, 26, + 513, 514, 521, 532, 540, 541, 542, 559, 607, 610, + 613, 616, 618, 619, 620, 624, 631, 633, 640, 644, + 645, 646, 653, 657, 672, 674, 675, 678, 680, 681, + 682, 683, 684, 685, 736, 737, 882, 884, 885, 890, + 893, 899, 900, 902, 419, 464, 883, 200, 362, 370, + 406, 453, 883, 3, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 32, 40, 41, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 56, 57, 58, 59, 60, 61, 64, 65, 66, 67, 68, @@ -13854,37 +14186,37 @@ static const yytype_int16 yystos[] = 444, 445, 446, 447, 448, 450, 451, 452, 453, 454, 455, 456, 459, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, - 479, 480, 481, 482, 649, 721, 725, 728, 897, 898, - 899, 835, 52, 171, 499, 525, 177, 238, 292, 362, - 410, 412, 428, 434, 437, 797, 852, 3, 5, 29, - 175, 246, 317, 399, 719, 725, 726, 897, 23, 76, + 479, 480, 481, 482, 533, 534, 535, 795, 867, 871, + 874, 883, 52, 171, 499, 554, 177, 238, 292, 362, + 410, 412, 428, 434, 437, 605, 652, 3, 5, 29, + 175, 246, 317, 399, 533, 865, 871, 872, 23, 76, 92, 146, 156, 168, 173, 200, 245, 249, 312, 326, 359, 362, 370, 373, 392, 406, 413, 422, 428, 453, - 816, 817, 820, 835, 719, 451, 499, 513, 530, 533, - 534, 736, 737, 740, 743, 750, 751, 799, 801, 807, - 811, 815, 822, 823, 834, 836, 838, 841, 846, 855, - 859, 861, 867, 868, 870, 872, 875, 876, 877, 110, - 70, 211, 110, 5, 724, 725, 869, 869, 725, 719, - 29, 415, 419, 531, 532, 725, 742, 835, 29, 132, - 546, 547, 177, 238, 362, 374, 415, 742, 862, 863, - 835, 447, 534, 539, 742, 288, 603, 716, 725, 726, - 172, 499, 843, 499, 334, 540, 541, 719, 540, 535, - 536, 0, 502, 147, 215, 293, 433, 549, 550, 535, - 537, 538, 503, 29, 415, 419, 534, 742, 451, 805, - 122, 210, 439, 190, 716, 719, 190, 716, 190, 603, - 190, 716, 499, 497, 501, 700, 702, 393, 394, 528, - 724, 534, 716, 410, 412, 410, 412, 344, 190, 725, - 725, 730, 173, 245, 334, 370, 406, 453, 873, 200, - 29, 719, 251, 422, 109, 406, 406, 453, 365, 3, + 625, 626, 629, 883, 865, 451, 499, 513, 514, 521, + 540, 541, 542, 559, 607, 610, 613, 616, 618, 619, + 620, 624, 631, 636, 640, 646, 653, 672, 674, 675, + 678, 680, 882, 884, 885, 890, 893, 899, 902, 110, + 70, 211, 110, 5, 673, 870, 871, 673, 871, 865, + 29, 415, 419, 871, 891, 892, 901, 883, 29, 132, + 692, 693, 177, 238, 362, 374, 415, 894, 895, 901, + 883, 447, 680, 685, 901, 288, 749, 862, 871, 872, + 172, 499, 887, 499, 334, 686, 687, 865, 686, 681, + 682, 0, 502, 451, 634, 122, 210, 439, 147, 215, + 293, 433, 695, 696, 681, 683, 684, 503, 29, 415, + 419, 680, 901, 190, 862, 865, 190, 862, 190, 749, + 190, 862, 499, 497, 501, 846, 848, 393, 394, 557, + 870, 680, 862, 410, 412, 410, 412, 344, 190, 871, + 871, 876, 173, 245, 334, 370, 406, 453, 611, 200, + 29, 865, 251, 422, 109, 406, 406, 453, 365, 3, 46, 51, 52, 53, 54, 66, 67, 76, 84, 96, 100, 101, 102, 103, 106, 114, 115, 136, 164, 170, 172, 176, 190, 192, 206, 213, 214, 216, 219, 220, 222, 232, 234, 246, 265, 266, 267, 275, 280, 296, 298, 331, 353, 357, 375, 377, 381, 384, 399, 408, - 415, 416, 427, 440, 448, 451, 614, 616, 618, 620, - 622, 624, 626, 627, 628, 630, 631, 632, 634, 635, - 729, 821, 897, 900, 190, 730, 818, 190, 717, 719, - 190, 719, 499, 800, 807, 3, 46, 50, 51, 52, + 415, 416, 427, 440, 448, 451, 533, 536, 630, 760, + 762, 764, 766, 768, 770, 772, 773, 774, 776, 777, + 778, 780, 781, 875, 190, 627, 876, 190, 863, 865, + 190, 865, 499, 632, 636, 3, 46, 50, 51, 52, 53, 54, 66, 67, 74, 76, 84, 96, 100, 101, 102, 103, 106, 114, 115, 152, 158, 164, 170, 172, 175, 176, 181, 182, 192, 206, 207, 213, 214, 216, @@ -13892,438 +14224,438 @@ static const yytype_int16 yystos[] = 275, 278, 280, 295, 296, 298, 299, 313, 316, 331, 353, 357, 375, 377, 381, 384, 399, 401, 408, 415, 416, 421, 423, 427, 440, 447, 448, 451, 468, 469, - 470, 471, 472, 473, 474, 475, 476, 477, 478, 808, - 810, 811, 813, 814, 897, 901, 805, 724, 869, 724, - 488, 499, 499, 839, 482, 221, 501, 287, 4, 6, + 470, 471, 472, 473, 474, 475, 476, 477, 478, 533, + 537, 637, 639, 640, 642, 643, 634, 870, 673, 870, + 488, 499, 499, 676, 482, 221, 501, 287, 4, 6, 7, 8, 9, 10, 37, 51, 53, 54, 62, 63, 66, 67, 74, 76, 100, 101, 102, 103, 104, 105, 106, 114, 115, 117, 152, 158, 159, 164, 181, 182, 213, 214, 216, 239, 240, 265, 267, 272, 277, 278, 280, 289, 299, 313, 331, 357, 375, 384, 401, 415, 416, 421, 423, 424, 427, 440, 448, 483, 490, 491, - 492, 497, 499, 504, 506, 507, 535, 580, 619, 622, - 625, 626, 627, 629, 630, 631, 634, 635, 646, 648, - 649, 650, 652, 666, 667, 674, 694, 699, 706, 707, - 708, 721, 722, 723, 724, 725, 705, 707, 862, 862, - 724, 862, 482, 171, 417, 488, 499, 716, 492, 702, - 3, 170, 172, 451, 811, 842, 844, 170, 845, 646, - 678, 679, 725, 540, 503, 499, 732, 500, 500, 512, - 29, 132, 545, 545, 56, 545, 161, 166, 235, 284, - 555, 557, 558, 583, 585, 586, 587, 549, 550, 499, - 482, 221, 716, 171, 217, 603, 856, 152, 25, 31, - 137, 291, 342, 346, 376, 444, 828, 831, 832, 342, + 492, 497, 499, 504, 506, 507, 681, 726, 765, 768, + 771, 772, 773, 775, 776, 777, 780, 781, 792, 794, + 795, 796, 798, 812, 813, 820, 840, 845, 852, 853, + 854, 867, 868, 869, 870, 871, 851, 853, 894, 894, + 870, 894, 482, 171, 417, 488, 499, 862, 492, 848, + 3, 170, 172, 451, 640, 886, 888, 170, 889, 792, + 824, 825, 871, 686, 503, 499, 878, 500, 500, 512, + 862, 171, 217, 621, 749, 29, 132, 691, 691, 56, + 691, 161, 166, 235, 284, 701, 703, 704, 729, 731, + 732, 733, 695, 696, 499, 482, 221, 152, 25, 31, + 137, 291, 342, 346, 376, 444, 526, 529, 530, 342, 152, 38, 57, 108, 199, 250, 258, 270, 301, 342, - 348, 370, 376, 390, 744, 747, 831, 152, 342, 376, - 831, 152, 342, 376, 831, 3, 29, 46, 52, 76, + 348, 370, 376, 390, 515, 518, 529, 152, 342, 376, + 529, 152, 342, 376, 529, 3, 29, 46, 52, 76, 84, 96, 100, 101, 102, 103, 106, 132, 170, 172, 175, 176, 192, 206, 219, 220, 222, 232, 234, 246, 266, 275, 296, 298, 353, 375, 381, 399, 408, 427, - 440, 449, 451, 492, 500, 646, 681, 682, 727, 733, - 897, 902, 646, 701, 3, 29, 33, 34, 35, 36, + 440, 449, 451, 492, 500, 533, 538, 792, 827, 828, + 873, 879, 792, 847, 3, 29, 33, 34, 35, 36, 37, 38, 39, 42, 55, 62, 63, 69, 75, 77, 88, 95, 104, 105, 117, 119, 126, 132, 133, 139, 143, 147, 159, 161, 166, 168, 171, 178, 180, 184, 197, 204, 215, 217, 229, 230, 235, 239, 240, 272, 277, 284, 287, 288, 292, 293, 310, 320, 327, 336, 350, 369, 386, 403, 406, 414, 417, 418, 424, 433, - 434, 441, 447, 449, 457, 458, 460, 461, 720, 734, - 897, 901, 903, 700, 500, 499, 786, 797, 272, 802, - 501, 731, 38, 453, 190, 716, 190, 716, 739, 716, - 716, 84, 849, 465, 85, 129, 304, 411, 450, 633, - 633, 633, 499, 621, 621, 316, 499, 623, 152, 499, - 66, 67, 633, 621, 618, 463, 485, 499, 636, 499, - 636, 499, 37, 617, 499, 111, 112, 187, 188, 252, - 253, 254, 255, 256, 257, 260, 261, 366, 367, 479, - 480, 499, 637, 638, 639, 640, 641, 642, 643, 644, - 645, 621, 60, 349, 503, 819, 152, 503, 819, 152, - 503, 819, 152, 287, 679, 500, 503, 4, 159, 287, - 424, 490, 491, 723, 724, 746, 749, 806, 808, 809, - 812, 807, 499, 520, 524, 746, 812, 864, 866, 681, - 616, 683, 38, 233, 725, 499, 703, 497, 535, 646, - 698, 499, 499, 166, 499, 499, 535, 499, 499, 499, - 646, 499, 499, 499, 499, 499, 499, 499, 499, 499, - 646, 646, 646, 148, 709, 710, 679, 680, 535, 646, - 678, 668, 669, 670, 726, 9, 703, 702, 499, 724, - 499, 723, 724, 3, 8, 11, 15, 16, 17, 18, + 434, 441, 447, 449, 457, 458, 460, 461, 533, 537, + 539, 866, 880, 846, 500, 499, 594, 605, 272, 614, + 501, 877, 38, 453, 190, 862, 190, 609, 862, 862, + 862, 84, 649, 465, 85, 129, 304, 411, 450, 779, + 779, 779, 499, 767, 767, 316, 499, 769, 152, 499, + 66, 67, 779, 767, 764, 463, 485, 499, 782, 499, + 782, 60, 349, 503, 628, 499, 37, 763, 499, 111, + 112, 187, 188, 252, 253, 254, 255, 256, 257, 260, + 261, 366, 367, 479, 480, 499, 783, 784, 785, 786, + 787, 788, 789, 790, 791, 767, 152, 503, 628, 152, + 503, 628, 152, 287, 825, 500, 503, 4, 159, 287, + 424, 490, 491, 517, 520, 635, 637, 638, 641, 869, + 870, 636, 499, 549, 553, 517, 641, 896, 898, 827, + 762, 829, 38, 233, 871, 499, 849, 497, 681, 792, + 844, 499, 499, 166, 499, 499, 681, 499, 499, 499, + 792, 499, 499, 499, 499, 499, 499, 499, 499, 499, + 792, 792, 792, 148, 855, 856, 825, 826, 681, 792, + 824, 814, 815, 816, 872, 9, 849, 848, 499, 870, + 499, 869, 870, 3, 8, 11, 15, 16, 17, 18, 19, 20, 35, 38, 43, 50, 75, 176, 192, 197, 219, 220, 234, 272, 275, 289, 292, 381, 483, 486, - 487, 488, 490, 491, 492, 493, 494, 495, 672, 673, - 674, 676, 462, 653, 703, 298, 646, 503, 217, 542, - 499, 724, 703, 501, 702, 542, 3, 117, 238, 635, - 724, 746, 865, 99, 117, 866, 117, 866, 716, 500, - 503, 805, 503, 500, 541, 717, 718, 38, 537, 537, - 29, 492, 551, 552, 646, 537, 163, 269, 571, 224, - 270, 330, 379, 439, 4, 9, 29, 566, 646, 490, - 491, 567, 568, 646, 648, 583, 584, 558, 557, 555, - 556, 166, 586, 282, 588, 555, 583, 679, 233, 732, - 856, 716, 879, 38, 725, 376, 716, 69, 77, 88, - 168, 190, 320, 434, 725, 768, 778, 793, 77, 88, - 837, 88, 837, 499, 417, 499, 766, 244, 437, 766, - 88, 503, 417, 716, 618, 746, 56, 748, 746, 746, - 108, 250, 258, 56, 417, 461, 485, 745, 263, 362, - 745, 747, 603, 88, 417, 837, 362, 716, 417, 362, - 681, 681, 682, 500, 503, 549, 550, 13, 14, 498, - 508, 417, 725, 785, 790, 461, 523, 334, 406, 453, - 152, 95, 751, 803, 846, 859, 870, 720, 501, 616, - 716, 272, 744, 871, 272, 499, 786, 38, 786, 499, - 874, 190, 725, 780, 850, 499, 680, 723, 821, 683, - 633, 633, 37, 617, 415, 415, 723, 723, 613, 725, - 497, 497, 723, 723, 417, 417, 417, 417, 616, 818, - 730, 717, 719, 719, 730, 500, 807, 813, 4, 723, - 4, 723, 522, 529, 734, 52, 97, 123, 141, 145, - 167, 170, 185, 277, 285, 328, 526, 503, 500, 503, - 500, 503, 534, 840, 855, 876, 877, 679, 700, 680, - 457, 695, 696, 646, 679, 499, 723, 723, 3, 637, - 638, 639, 640, 641, 642, 643, 644, 684, 685, 724, - 723, 723, 646, 8, 15, 18, 19, 20, 486, 487, - 488, 490, 491, 492, 493, 494, 495, 672, 677, 725, - 646, 686, 490, 491, 499, 647, 648, 674, 688, 500, - 679, 646, 678, 689, 646, 55, 171, 230, 418, 646, - 679, 692, 646, 499, 725, 344, 714, 498, 500, 503, - 503, 505, 508, 679, 646, 645, 645, 616, 646, 646, - 646, 646, 646, 646, 646, 5, 734, 735, 415, 42, - 403, 704, 730, 646, 646, 499, 535, 693, 132, 159, - 272, 277, 282, 424, 435, 646, 277, 499, 646, 417, - 50, 176, 192, 197, 234, 381, 646, 646, 646, 646, - 646, 646, 646, 646, 646, 646, 29, 36, 386, 671, - 180, 162, 654, 357, 499, 667, 708, 177, 238, 406, - 410, 412, 437, 543, 716, 171, 592, 681, 492, 592, - 499, 724, 500, 716, 842, 716, 896, 646, 503, 500, - 499, 39, 126, 553, 553, 503, 441, 553, 357, 358, - 490, 491, 568, 570, 648, 379, 224, 288, 309, 309, - 503, 494, 4, 569, 723, 569, 357, 358, 570, 715, - 716, 276, 383, 589, 584, 556, 500, 441, 858, 38, - 117, 300, 499, 534, 878, 725, 499, 725, 883, 892, - 893, 895, 342, 831, 499, 190, 778, 719, 224, 272, - 224, 441, 499, 771, 615, 616, 719, 725, 190, 719, - 190, 725, 25, 137, 376, 734, 762, 776, 827, 830, - 719, 734, 770, 789, 719, 828, 719, 342, 376, 744, - 831, 746, 730, 719, 746, 730, 719, 746, 342, 376, - 831, 719, 719, 719, 719, 342, 376, 831, 719, 719, - 549, 549, 549, 449, 682, 191, 347, 548, 646, 646, - 646, 701, 325, 519, 500, 503, 285, 171, 417, 514, - 453, 716, 739, 716, 725, 292, 797, 720, 499, 152, - 152, 234, 725, 768, 778, 781, 784, 794, 796, 461, - 463, 773, 151, 534, 461, 851, 500, 681, 38, 272, - 287, 679, 500, 500, 819, 500, 497, 482, 482, 500, - 500, 500, 503, 616, 723, 498, 723, 500, 500, 638, - 640, 641, 642, 641, 642, 642, 819, 819, 287, 819, - 500, 503, 492, 499, 521, 746, 812, 38, 518, 724, - 518, 272, 277, 328, 518, 518, 864, 616, 500, 498, - 646, 139, 696, 697, 38, 500, 646, 500, 500, 500, - 171, 500, 500, 503, 500, 501, 310, 687, 500, 647, - 647, 646, 11, 15, 18, 19, 20, 197, 219, 289, - 486, 487, 488, 490, 491, 492, 493, 494, 495, 674, - 647, 500, 500, 166, 171, 690, 691, 503, 500, 38, - 692, 679, 692, 692, 171, 500, 38, 718, 499, 646, - 711, 703, 646, 668, 646, 500, 500, 482, 647, 647, - 145, 679, 171, 132, 159, 277, 282, 424, 435, 499, - 145, 677, 646, 403, 704, 646, 693, 646, 417, 499, - 535, 499, 499, 155, 655, 410, 412, 410, 412, 716, - 406, 544, 544, 544, 229, 358, 499, 535, 591, 593, - 594, 595, 596, 603, 604, 649, 651, 652, 725, 458, - 609, 549, 710, 609, 723, 645, 732, 840, 484, 554, - 554, 552, 289, 672, 675, 554, 4, 723, 570, 288, - 439, 567, 503, 243, 594, 458, 857, 725, 447, 405, - 440, 887, 725, 882, 891, 287, 884, 888, 895, 703, - 503, 592, 488, 417, 646, 272, 793, 499, 152, 499, - 771, 200, 790, 791, 752, 38, 175, 761, 787, 752, - 25, 137, 346, 348, 376, 824, 825, 826, 832, 833, - 152, 819, 152, 819, 762, 776, 762, 724, 755, 500, - 503, 488, 501, 500, 503, 417, 362, 88, 417, 837, - 362, 417, 417, 417, 362, 548, 548, 548, 682, 279, - 279, 500, 498, 528, 785, 519, 716, 499, 38, 786, - 802, 344, 406, 790, 716, 716, 739, 716, 500, 503, - 285, 766, 285, 287, 765, 719, 461, 738, 766, 38, - 500, 406, 646, 152, 716, 500, 617, 723, 636, 636, - 617, 725, 498, 498, 730, 522, 516, 527, 812, 724, - 724, 277, 790, 492, 790, 724, 724, 414, 646, 143, - 616, 500, 646, 646, 677, 646, 690, 616, 647, 647, - 647, 647, 647, 132, 272, 282, 647, 647, 647, 647, - 647, 647, 647, 647, 647, 647, 646, 646, 691, 690, - 616, 500, 500, 500, 679, 616, 500, 646, 711, 712, - 713, 38, 500, 645, 646, 35, 35, 646, 500, 646, - 171, 499, 683, 646, 500, 145, 647, 647, 145, 145, - 646, 646, 550, 458, 646, 297, 659, 544, 544, 544, - 544, 716, 716, 716, 535, 604, 171, 535, 591, 595, - 596, 38, 597, 598, 725, 597, 503, 96, 172, 206, - 222, 232, 266, 353, 600, 598, 38, 597, 599, 725, - 485, 608, 702, 646, 180, 572, 548, 714, 572, 500, - 500, 163, 228, 499, 554, 288, 716, 646, 350, 886, - 446, 703, 500, 503, 86, 886, 500, 503, 883, 857, - 646, 719, 500, 152, 791, 778, 791, 752, 780, 503, - 500, 119, 204, 270, 272, 777, 499, 32, 56, 798, - 787, 69, 75, 88, 117, 119, 204, 272, 277, 320, - 336, 434, 441, 757, 758, 772, 175, 117, 189, 272, - 766, 745, 109, 117, 175, 272, 392, 395, 747, 766, - 376, 826, 428, 719, 725, 830, 3, 46, 52, 76, - 84, 96, 100, 101, 102, 103, 106, 170, 172, 175, - 176, 192, 206, 219, 220, 222, 232, 234, 246, 266, - 271, 275, 289, 296, 298, 353, 375, 377, 381, 399, - 408, 427, 440, 451, 490, 491, 616, 675, 724, 727, - 746, 753, 792, 897, 903, 734, 789, 719, 719, 719, - 719, 719, 719, 719, 719, 719, 719, 500, 500, 500, - 549, 745, 528, 499, 784, 534, 851, 797, 190, 716, - 500, 871, 499, 38, 775, 773, 781, 81, 800, 109, - 270, 534, 534, 780, 441, 848, 498, 616, 819, 500, - 503, 790, 646, 500, 500, 691, 171, 132, 282, 499, - 500, 500, 503, 500, 725, 646, 646, 646, 683, 500, - 646, 35, 35, 646, 646, 145, 500, 500, 646, 500, - 499, 660, 725, 716, 716, 716, 716, 598, 599, 499, - 500, 726, 408, 563, 564, 499, 564, 595, 222, 296, - 601, 595, 601, 222, 600, 601, 222, 564, 499, 726, - 564, 499, 294, 56, 184, 581, 500, 581, 724, 677, - 706, 534, 300, 534, 882, 287, 499, 880, 488, 895, - 886, 752, 778, 500, 500, 461, 783, 120, 193, 202, - 119, 443, 646, 117, 38, 499, 730, 719, 647, 120, - 193, 119, 277, 224, 716, 783, 83, 798, 190, 277, - 746, 646, 798, 277, 490, 491, 749, 725, 616, 819, - 819, 246, 399, 727, 731, 488, 417, 417, 548, 520, - 441, 515, 517, 790, 500, 738, 38, 406, 272, 499, - 851, 784, 151, 534, 149, 198, 765, 122, 137, 319, - 738, 109, 461, 860, 287, 725, 847, 499, 527, 647, - 171, 499, 683, 711, 500, 646, 646, 646, 500, 661, - 725, 605, 606, 651, 597, 499, 4, 9, 559, 561, - 562, 725, 718, 595, 287, 441, 602, 595, 222, 595, - 610, 611, 726, 499, 610, 726, 29, 98, 181, 356, - 492, 499, 573, 574, 575, 576, 577, 578, 579, 646, - 646, 460, 656, 724, 656, 500, 503, 887, 88, 499, - 651, 725, 885, 894, 133, 646, 336, 783, 499, 774, - 752, 500, 189, 499, 646, 272, 758, 783, 786, 719, - 38, 152, 75, 612, 731, 494, 753, 719, 719, 500, - 745, 124, 500, 773, 534, 716, 152, 38, 500, 719, - 738, 29, 80, 89, 118, 189, 201, 392, 395, 769, - 769, 358, 358, 61, 69, 238, 716, 894, 647, 683, - 500, 306, 662, 500, 503, 38, 607, 718, 309, 494, - 309, 358, 494, 499, 499, 500, 646, 499, 595, 602, - 500, 503, 616, 610, 500, 499, 378, 499, 500, 503, - 657, 658, 725, 327, 582, 582, 446, 719, 646, 75, - 889, 889, 500, 503, 273, 439, 716, 752, 734, 779, - 782, 396, 455, 759, 760, 499, 754, 646, 500, 248, - 795, 189, 730, 441, 829, 494, 428, 520, 724, 851, - 765, 860, 499, 716, 534, 773, 800, 69, 290, 69, - 848, 500, 500, 56, 549, 608, 605, 499, 500, 725, - 559, 718, 611, 612, 500, 679, 499, 679, 575, 503, - 38, 646, 441, 560, 560, 534, 500, 730, 730, 890, - 890, 609, 885, 376, 786, 488, 500, 503, 744, 500, - 270, 767, 172, 305, 382, 287, 763, 764, 788, 754, - 646, 428, 38, 499, 860, 765, 738, 290, 290, 499, - 851, 678, 329, 358, 663, 610, 500, 503, 500, 500, - 500, 574, 500, 658, 660, 360, 889, 553, 553, 893, - 795, 753, 782, 500, 760, 202, 122, 439, 287, 788, - 287, 763, 534, 894, 609, 50, 99, 430, 646, 664, - 665, 664, 500, 500, 9, 343, 565, 500, 562, 890, - 554, 554, 609, 764, 60, 270, 349, 376, 756, 756, - 860, 500, 665, 357, 165, 315, 165, 315, 500, 499, - 553, 752, 24, 117, 277, 851, 35, 9, 554, 609, - 665, 500 + 487, 488, 490, 491, 492, 493, 494, 495, 818, 819, + 820, 822, 462, 799, 849, 298, 792, 503, 217, 688, + 499, 870, 849, 501, 848, 688, 3, 117, 238, 517, + 781, 870, 897, 99, 117, 898, 117, 898, 862, 500, + 503, 634, 503, 500, 687, 863, 864, 38, 878, 621, + 655, 862, 376, 38, 871, 683, 683, 29, 492, 697, + 698, 792, 683, 163, 269, 717, 224, 270, 330, 379, + 439, 4, 9, 29, 712, 792, 490, 491, 713, 714, + 792, 794, 729, 730, 704, 703, 701, 702, 166, 732, + 282, 734, 701, 729, 825, 233, 862, 69, 77, 88, + 168, 190, 320, 434, 576, 586, 601, 871, 77, 88, + 679, 88, 679, 499, 417, 499, 574, 244, 437, 574, + 88, 503, 417, 862, 764, 517, 56, 519, 517, 517, + 108, 250, 258, 56, 417, 461, 485, 516, 263, 362, + 516, 518, 749, 88, 417, 679, 362, 862, 417, 362, + 827, 827, 828, 500, 503, 695, 696, 13, 14, 498, + 508, 417, 593, 598, 871, 461, 552, 334, 406, 453, + 152, 95, 559, 615, 616, 646, 902, 866, 501, 762, + 862, 272, 515, 617, 272, 38, 499, 594, 594, 499, + 612, 190, 588, 650, 871, 499, 826, 869, 630, 829, + 779, 779, 37, 763, 415, 415, 869, 869, 762, 759, + 871, 497, 497, 869, 869, 417, 417, 417, 417, 627, + 876, 863, 865, 865, 876, 500, 636, 642, 4, 869, + 4, 869, 551, 558, 880, 52, 97, 123, 141, 145, + 167, 170, 185, 277, 285, 328, 555, 503, 500, 503, + 500, 503, 620, 653, 677, 680, 884, 825, 846, 826, + 457, 841, 842, 792, 825, 499, 869, 869, 3, 783, + 784, 785, 786, 787, 788, 789, 790, 830, 831, 870, + 869, 869, 792, 8, 15, 18, 19, 20, 486, 487, + 488, 490, 491, 492, 493, 494, 495, 818, 823, 871, + 792, 832, 490, 491, 499, 793, 794, 820, 834, 500, + 825, 792, 824, 835, 792, 55, 171, 230, 418, 792, + 825, 838, 792, 499, 871, 344, 860, 498, 500, 503, + 503, 505, 508, 825, 792, 791, 791, 762, 792, 792, + 792, 792, 792, 792, 792, 5, 880, 881, 415, 42, + 403, 850, 876, 792, 792, 499, 681, 839, 132, 159, + 272, 277, 282, 424, 435, 792, 277, 499, 792, 417, + 50, 176, 192, 197, 234, 381, 792, 792, 792, 792, + 792, 792, 792, 792, 792, 792, 29, 36, 386, 817, + 180, 162, 800, 357, 499, 813, 854, 177, 238, 406, + 410, 412, 437, 689, 862, 171, 738, 827, 492, 738, + 499, 870, 500, 862, 886, 532, 862, 792, 503, 500, + 499, 441, 623, 117, 300, 499, 654, 680, 38, 499, + 659, 668, 669, 671, 871, 871, 39, 126, 699, 699, + 503, 441, 699, 357, 358, 490, 491, 714, 716, 794, + 379, 224, 288, 309, 309, 503, 494, 4, 715, 869, + 715, 357, 358, 716, 861, 862, 276, 383, 735, 730, + 702, 500, 342, 529, 499, 190, 586, 865, 224, 272, + 224, 441, 499, 579, 761, 762, 865, 871, 190, 865, + 190, 871, 25, 137, 376, 525, 528, 570, 584, 880, + 865, 578, 597, 880, 865, 526, 865, 342, 376, 515, + 529, 517, 876, 865, 517, 876, 865, 517, 342, 376, + 529, 865, 865, 865, 865, 342, 376, 529, 865, 865, + 695, 695, 695, 449, 828, 191, 347, 694, 792, 792, + 792, 847, 325, 548, 500, 503, 285, 171, 417, 543, + 453, 609, 862, 862, 871, 292, 605, 866, 499, 152, + 152, 151, 680, 234, 576, 586, 589, 592, 602, 604, + 871, 461, 463, 581, 461, 651, 500, 827, 38, 272, + 287, 825, 500, 500, 628, 500, 497, 482, 482, 500, + 500, 500, 503, 762, 869, 498, 869, 500, 500, 784, + 786, 787, 788, 787, 788, 788, 628, 628, 287, 628, + 500, 503, 492, 499, 517, 550, 641, 38, 547, 870, + 547, 272, 277, 328, 547, 547, 896, 762, 500, 498, + 792, 139, 842, 843, 38, 500, 792, 500, 500, 500, + 171, 500, 500, 503, 500, 501, 310, 833, 500, 793, + 793, 792, 11, 15, 18, 19, 20, 197, 219, 289, + 486, 487, 488, 490, 491, 492, 493, 494, 495, 820, + 793, 500, 500, 166, 171, 836, 837, 503, 500, 38, + 838, 825, 838, 838, 171, 500, 38, 864, 499, 792, + 857, 849, 792, 814, 792, 500, 500, 482, 793, 793, + 145, 825, 171, 132, 159, 277, 282, 424, 435, 499, + 145, 823, 792, 403, 850, 792, 839, 792, 417, 499, + 681, 499, 499, 155, 801, 410, 412, 410, 412, 862, + 406, 690, 690, 690, 229, 358, 499, 681, 737, 739, + 740, 741, 742, 749, 750, 795, 797, 798, 871, 458, + 755, 695, 856, 755, 869, 791, 878, 677, 740, 458, + 622, 447, 405, 440, 663, 658, 667, 871, 287, 660, + 871, 664, 671, 503, 738, 488, 849, 484, 700, 700, + 698, 289, 818, 821, 700, 4, 869, 716, 288, 439, + 713, 503, 243, 417, 792, 272, 601, 499, 152, 499, + 579, 200, 598, 599, 560, 38, 175, 569, 595, 560, + 25, 137, 346, 348, 376, 522, 523, 524, 530, 531, + 152, 628, 152, 628, 570, 584, 570, 500, 503, 563, + 870, 500, 503, 488, 501, 417, 362, 88, 417, 679, + 362, 417, 417, 417, 362, 694, 694, 694, 828, 279, + 279, 500, 498, 557, 593, 548, 862, 38, 499, 594, + 614, 344, 406, 598, 862, 609, 862, 865, 461, 608, + 862, 500, 503, 285, 574, 285, 287, 573, 574, 38, + 500, 406, 792, 152, 862, 500, 763, 869, 782, 782, + 763, 871, 498, 498, 876, 551, 545, 556, 641, 870, + 870, 277, 598, 492, 598, 870, 870, 414, 792, 143, + 762, 500, 792, 792, 823, 792, 836, 762, 793, 793, + 793, 793, 793, 132, 272, 282, 793, 793, 793, 793, + 793, 793, 793, 793, 793, 793, 792, 792, 837, 836, + 762, 500, 500, 500, 825, 762, 500, 792, 857, 858, + 859, 38, 500, 791, 792, 35, 35, 792, 500, 792, + 171, 499, 829, 792, 500, 145, 793, 793, 145, 145, + 792, 792, 696, 458, 792, 297, 805, 690, 690, 690, + 690, 862, 862, 862, 681, 750, 171, 681, 737, 741, + 742, 38, 743, 744, 871, 743, 503, 96, 172, 206, + 222, 232, 266, 353, 746, 744, 38, 743, 745, 871, + 485, 754, 848, 792, 180, 718, 694, 860, 718, 500, + 500, 792, 350, 662, 446, 500, 503, 849, 86, 662, + 500, 503, 659, 622, 792, 163, 228, 499, 700, 288, + 862, 865, 500, 152, 599, 586, 599, 560, 588, 503, + 500, 119, 204, 270, 272, 585, 499, 32, 56, 606, + 595, 69, 75, 88, 117, 119, 204, 272, 277, 320, + 336, 434, 441, 565, 566, 580, 175, 117, 189, 272, + 574, 516, 109, 117, 175, 272, 392, 395, 518, 574, + 376, 524, 428, 865, 871, 528, 597, 3, 46, 52, + 76, 84, 96, 100, 101, 102, 103, 106, 170, 172, + 175, 176, 192, 206, 219, 220, 222, 232, 234, 246, + 266, 271, 275, 289, 296, 298, 353, 375, 377, 381, + 399, 408, 427, 440, 451, 490, 491, 517, 533, 539, + 561, 600, 762, 821, 870, 873, 880, 865, 865, 865, + 865, 865, 865, 865, 865, 865, 865, 500, 500, 500, + 695, 516, 557, 499, 680, 592, 651, 605, 190, 862, + 500, 617, 38, 499, 632, 109, 270, 583, 581, 589, + 81, 680, 680, 588, 441, 648, 498, 762, 628, 500, + 503, 598, 792, 500, 500, 837, 171, 132, 282, 499, + 500, 500, 503, 500, 871, 792, 792, 792, 829, 500, + 792, 35, 35, 792, 792, 145, 500, 500, 792, 500, + 499, 806, 871, 862, 862, 862, 862, 744, 745, 499, + 500, 872, 408, 709, 710, 499, 710, 741, 222, 296, + 747, 741, 747, 222, 746, 747, 222, 710, 499, 872, + 710, 499, 294, 56, 184, 727, 500, 727, 870, 852, + 680, 300, 680, 658, 287, 499, 656, 488, 671, 662, + 823, 560, 586, 500, 500, 461, 591, 120, 193, 202, + 119, 443, 792, 117, 38, 499, 876, 865, 793, 120, + 193, 119, 277, 224, 862, 591, 83, 606, 190, 277, + 517, 792, 606, 277, 490, 491, 520, 871, 762, 628, + 628, 246, 399, 873, 877, 488, 417, 417, 694, 549, + 441, 544, 546, 598, 608, 500, 38, 406, 272, 499, + 651, 151, 680, 592, 608, 109, 149, 198, 573, 122, + 137, 319, 461, 903, 287, 647, 871, 499, 556, 793, + 171, 499, 829, 857, 500, 792, 792, 792, 500, 807, + 871, 751, 752, 797, 743, 499, 4, 9, 705, 707, + 708, 871, 864, 741, 287, 441, 748, 741, 222, 741, + 756, 757, 872, 499, 756, 872, 29, 98, 181, 356, + 492, 499, 719, 720, 721, 722, 723, 724, 725, 792, + 792, 460, 802, 870, 802, 503, 663, 88, 499, 661, + 670, 797, 871, 133, 792, 500, 336, 591, 499, 582, + 560, 500, 189, 499, 792, 272, 566, 591, 594, 865, + 38, 152, 75, 758, 877, 494, 561, 865, 865, 500, + 516, 124, 500, 581, 680, 862, 152, 38, 865, 608, + 500, 29, 80, 89, 118, 189, 201, 392, 395, 577, + 577, 358, 358, 61, 69, 238, 862, 670, 793, 829, + 500, 306, 808, 500, 503, 38, 753, 864, 309, 494, + 309, 358, 494, 499, 499, 500, 792, 499, 741, 748, + 500, 503, 762, 756, 500, 499, 378, 499, 500, 503, + 803, 804, 871, 327, 728, 728, 446, 865, 792, 500, + 503, 75, 665, 665, 273, 439, 862, 560, 587, 590, + 880, 396, 455, 567, 568, 499, 562, 792, 500, 248, + 603, 189, 876, 441, 527, 494, 428, 549, 870, 651, + 573, 903, 499, 862, 680, 632, 581, 69, 290, 69, + 648, 500, 500, 56, 695, 754, 751, 499, 500, 871, + 705, 864, 757, 758, 500, 825, 499, 825, 721, 503, + 38, 792, 441, 706, 706, 680, 500, 755, 661, 876, + 666, 876, 666, 376, 594, 500, 503, 488, 515, 500, + 270, 575, 172, 305, 382, 287, 571, 572, 596, 562, + 792, 428, 38, 499, 903, 608, 573, 290, 290, 499, + 651, 824, 329, 358, 809, 756, 500, 503, 500, 500, + 500, 720, 500, 804, 806, 360, 665, 699, 699, 669, + 603, 590, 561, 500, 568, 202, 122, 439, 287, 596, + 287, 571, 680, 670, 755, 50, 99, 430, 792, 810, + 811, 810, 500, 500, 9, 343, 711, 500, 708, 666, + 700, 700, 755, 572, 60, 270, 349, 376, 564, 564, + 903, 500, 811, 357, 165, 315, 165, 315, 500, 499, + 699, 560, 24, 117, 277, 651, 35, 9, 700, 755, + 811, 500 }; - /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ +/* YYR1[RULE-NUM] -- Symbol kind of the left-hand side of rule RULE-NUM. */ static const yytype_int16 yyr1[] = { 0, 509, 510, 511, 511, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, - 513, 513, 513, 514, 514, 515, 515, 516, 516, 517, - 517, 518, 518, 519, 519, 520, 520, 521, 521, 521, - 521, 521, 522, 523, 523, 524, 524, 525, 525, 526, + 542, 542, 542, 543, 543, 544, 544, 545, 545, 546, + 546, 547, 547, 548, 548, 549, 549, 550, 550, 550, + 550, 550, 551, 552, 552, 553, 553, 554, 554, 555, + 555, 555, 555, 555, 555, 555, 555, 555, 555, 555, + 555, 555, 555, 556, 557, 557, 557, 558, 558, 890, + 891, 891, 892, 892, 892, 540, 680, 680, 681, 681, + 682, 682, 682, 682, 682, 682, 682, 682, 683, 683, + 684, 684, 684, 684, 684, 684, 684, 685, 685, 685, + 686, 686, 687, 688, 688, 689, 689, 689, 689, 689, + 689, 689, 689, 689, 690, 690, 691, 691, 691, 692, + 692, 693, 693, 694, 694, 694, 695, 695, 696, 696, + 696, 697, 697, 698, 698, 699, 699, 699, 700, 700, + 700, 701, 701, 701, 701, 702, 702, 703, 703, 703, + 703, 704, 704, 705, 705, 705, 705, 705, 705, 706, + 706, 707, 707, 708, 708, 708, 708, 709, 710, 710, + 711, 711, 712, 712, 712, 712, 712, 713, 714, 714, + 714, 715, 715, 716, 716, 717, 717, 718, 718, 718, + 718, 719, 719, 720, 720, 721, 721, 721, 721, 721, + 722, 723, 724, 725, 726, 726, 727, 727, 728, 728, + 729, 729, 730, 730, 731, 731, 732, 733, 733, 733, + 733, 734, 734, 735, 735, 735, 736, 736, 737, 737, + 738, 738, 739, 739, 740, 740, 741, 741, 741, 741, + 741, 741, 741, 741, 742, 742, 742, 742, 742, 742, + 743, 743, 743, 743, 744, 744, 745, 745, 745, 745, + 745, 746, 746, 746, 746, 747, 747, 748, 748, 749, + 749, 749, 749, 750, 750, 751, 752, 752, 753, 753, + 754, 754, 755, 755, 756, 756, 757, 758, 758, 759, + 759, 760, 760, 761, 761, 762, 762, 762, 762, 762, + 762, 762, 762, 763, 763, 763, 764, 764, 764, 764, + 764, 764, 764, 765, 765, 765, 765, 766, 767, 767, + 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, + 768, 769, 769, 770, 770, 771, 771, 772, 773, 774, + 774, 775, 775, 776, 777, 778, 778, 778, 778, 778, + 778, 779, 779, 780, 780, 780, 780, 781, 782, 782, + 782, 783, 783, 784, 784, 785, 785, 786, 786, 787, + 787, 788, 788, 789, 789, 790, 790, 791, 791, 791, + 791, 791, 791, 791, 791, 791, 791, 791, 791, 791, + 791, 791, 791, 792, 792, 792, 792, 792, 792, 792, + 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, + 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, + 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, + 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, + 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, + 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, + 792, 792, 792, 792, 793, 793, 793, 793, 793, 793, + 793, 793, 793, 793, 793, 793, 793, 793, 793, 793, + 793, 793, 793, 793, 793, 793, 793, 793, 794, 794, + 794, 794, 794, 794, 794, 794, 794, 794, 794, 794, + 795, 795, 795, 795, 795, 795, 795, 796, 796, 797, + 797, 798, 798, 798, 798, 798, 798, 798, 798, 798, + 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, + 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, + 799, 799, 800, 800, 800, 801, 801, 802, 802, 803, + 803, 804, 805, 805, 805, 806, 807, 807, 808, 808, + 809, 809, 809, 810, 810, 811, 811, 811, 811, 811, + 812, 812, 813, 813, 814, 815, 815, 816, 816, 817, + 817, 817, 818, 818, 819, 819, 819, 819, 819, 819, + 819, 819, 819, 819, 819, 819, 819, 820, 820, 821, + 821, 822, 822, 822, 822, 822, 822, 822, 822, 823, + 823, 824, 824, 825, 825, 826, 826, 827, 827, 828, + 828, 828, 829, 829, 830, 830, 831, 831, 831, 831, + 831, 831, 831, 831, 831, 831, 832, 832, 833, 834, + 834, 835, 835, 835, 835, 835, 835, 836, 837, 838, + 838, 838, 839, 839, 840, 841, 841, 842, 843, 843, + 844, 844, 845, 845, 846, 846, 846, 847, 847, 848, + 848, 849, 849, 850, 850, 851, 851, 852, 852, 853, + 853, 854, 854, 854, 854, 854, 855, 855, 856, 856, + 857, 858, 858, 859, 859, 860, 860, 860, 861, 861, + 862, 862, 863, 863, 864, 864, 865, 866, 867, 867, + 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, + 868, 868, 868, 868, 869, 870, 871, 871, 871, 872, + 872, 873, 873, 873, 874, 874, 874, 875, 875, 875, + 876, 876, 877, 877, 878, 878, 879, 880, 880, 880, + 880, 881, 881, 674, 674, 674, 607, 607, 607, 608, + 608, 608, 609, 899, 899, 899, 899, 899, 899, 899, + 899, 900, 900, 901, 901, 514, 514, 515, 515, 516, + 516, 516, 517, 517, 517, 517, 518, 518, 518, 518, + 518, 518, 518, 518, 518, 518, 518, 518, 518, 518, + 519, 519, 520, 520, 520, 619, 619, 619, 619, 559, + 559, 559, 560, 560, 561, 561, 561, 561, 561, 561, + 562, 562, 563, 564, 564, 564, 564, 564, 565, 565, + 565, 565, 566, 566, 566, 566, 566, 566, 566, 566, + 567, 567, 568, 568, 569, 569, 569, 570, 571, 572, + 572, 572, 572, 572, 573, 573, 573, 573, 574, 575, + 575, 576, 576, 577, 577, 577, 577, 577, 577, 577, + 577, 578, 578, 579, 580, 580, 580, 580, 581, 581, + 581, 581, 582, 583, 583, 583, 584, 585, 585, 585, + 585, 585, 585, 586, 586, 587, 587, 588, 589, 589, + 589, 590, 590, 591, 591, 592, 592, 592, 593, 594, + 594, 595, 595, 596, 597, 597, 597, 597, 598, 598, + 599, 599, 600, 600, 600, 601, 601, 601, 601, 601, + 601, 602, 602, 603, 603, 603, 603, 604, 605, 605, + 605, 605, 605, 605, 605, 605, 606, 606, 631, 631, + 631, 632, 632, 613, 613, 614, 614, 615, 615, 615, + 615, 633, 633, 633, 633, 634, 634, 635, 635, 635, + 636, 636, 636, 636, 636, 636, 636, 636, 636, 636, + 636, 636, 636, 636, 636, 636, 636, 636, 636, 636, + 636, 636, 636, 636, 636, 636, 636, 636, 636, 636, + 637, 637, 637, 638, 638, 639, 639, 640, 640, 641, + 641, 641, 641, 642, 643, 643, 624, 624, 624, 624, + 624, 624, 624, 624, 625, 625, 625, 625, 625, 625, + 625, 625, 625, 625, 625, 625, 625, 625, 625, 625, + 626, 626, 626, 626, 626, 626, 626, 627, 627, 628, + 628, 628, 629, 629, 629, 630, 630, 618, 521, 521, + 521, 521, 521, 521, 521, 521, 522, 522, 523, 523, + 524, 524, 524, 524, 525, 525, 526, 526, 526, 526, + 526, 526, 526, 526, 526, 526, 526, 526, 526, 526, 526, 526, 526, 526, 526, 526, 526, 526, 526, 526, - 526, 526, 526, 527, 528, 528, 528, 529, 529, 530, - 531, 531, 532, 532, 532, 533, 534, 534, 535, 535, - 536, 536, 536, 536, 536, 536, 536, 536, 537, 537, - 538, 538, 538, 538, 538, 538, 538, 539, 539, 539, - 540, 540, 541, 542, 542, 543, 543, 543, 543, 543, - 543, 543, 543, 543, 544, 544, 545, 545, 545, 546, - 546, 547, 547, 548, 548, 548, 549, 549, 550, 550, - 550, 551, 551, 552, 552, 553, 553, 553, 554, 554, - 554, 555, 555, 555, 555, 556, 556, 557, 557, 557, - 557, 558, 558, 559, 559, 559, 559, 559, 559, 560, - 560, 561, 561, 562, 562, 562, 562, 563, 564, 564, - 565, 565, 566, 566, 566, 566, 566, 567, 568, 568, - 568, 569, 569, 570, 570, 571, 571, 572, 572, 572, - 572, 573, 573, 574, 574, 575, 575, 575, 575, 575, - 576, 577, 578, 579, 580, 580, 581, 581, 582, 582, - 583, 583, 584, 584, 585, 585, 586, 587, 587, 587, - 587, 588, 588, 589, 589, 589, 590, 590, 591, 591, - 592, 592, 593, 593, 594, 594, 595, 595, 595, 595, - 595, 595, 595, 595, 596, 596, 596, 596, 596, 596, - 597, 597, 597, 597, 598, 598, 599, 599, 599, 599, - 599, 600, 600, 600, 600, 601, 601, 602, 602, 603, - 603, 603, 603, 604, 604, 605, 606, 606, 607, 607, - 608, 608, 609, 609, 610, 610, 611, 612, 612, 613, - 613, 614, 614, 615, 615, 616, 616, 616, 616, 616, - 616, 616, 616, 617, 617, 617, 618, 618, 618, 618, - 618, 618, 618, 619, 619, 619, 619, 620, 621, 621, - 622, 622, 622, 622, 622, 622, 622, 622, 622, 622, - 622, 623, 623, 624, 624, 625, 625, 626, 627, 628, - 628, 629, 629, 630, 631, 632, 632, 632, 632, 632, - 632, 633, 633, 634, 634, 634, 634, 635, 636, 636, - 636, 637, 637, 638, 638, 639, 639, 640, 640, 641, - 641, 642, 642, 643, 643, 644, 644, 645, 645, 645, - 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, - 645, 645, 645, 646, 646, 646, 646, 646, 646, 646, - 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, - 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, - 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, - 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, - 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, - 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, - 646, 646, 646, 646, 647, 647, 647, 647, 647, 647, - 647, 647, 647, 647, 647, 647, 647, 647, 647, 647, - 647, 647, 647, 647, 647, 647, 647, 647, 648, 648, - 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, - 649, 649, 649, 649, 649, 649, 649, 650, 650, 651, - 651, 652, 652, 652, 652, 652, 652, 652, 652, 652, - 652, 652, 652, 652, 652, 652, 652, 652, 652, 652, - 652, 652, 652, 652, 652, 652, 652, 652, 652, 652, - 653, 653, 654, 654, 654, 655, 655, 656, 656, 657, - 657, 658, 659, 659, 659, 660, 661, 661, 662, 662, - 663, 663, 663, 664, 664, 665, 665, 665, 665, 665, - 666, 666, 667, 667, 668, 669, 669, 670, 670, 671, - 671, 671, 672, 672, 673, 673, 673, 673, 673, 673, - 673, 673, 673, 673, 673, 673, 673, 674, 674, 675, - 675, 676, 676, 676, 676, 676, 676, 676, 676, 677, - 677, 678, 678, 679, 679, 680, 680, 681, 681, 682, - 682, 682, 683, 683, 684, 684, 685, 685, 685, 685, - 685, 685, 685, 685, 685, 685, 686, 686, 687, 688, - 688, 689, 689, 689, 689, 689, 689, 690, 691, 692, - 692, 692, 693, 693, 694, 695, 695, 696, 697, 697, - 698, 698, 699, 699, 700, 700, 700, 701, 701, 702, - 702, 703, 703, 704, 704, 705, 705, 706, 706, 707, - 707, 708, 708, 708, 708, 708, 709, 709, 710, 710, - 711, 712, 712, 713, 713, 714, 714, 714, 715, 715, - 716, 716, 717, 717, 718, 718, 719, 720, 721, 721, - 722, 722, 722, 722, 722, 722, 722, 722, 722, 722, - 722, 722, 722, 722, 723, 724, 725, 725, 725, 726, - 726, 727, 727, 727, 728, 728, 728, 729, 729, 729, - 730, 730, 731, 731, 732, 732, 733, 734, 734, 734, - 734, 735, 735, 736, 736, 736, 737, 737, 737, 738, - 738, 738, 739, 740, 740, 740, 740, 740, 740, 740, - 740, 741, 741, 742, 742, 743, 743, 744, 744, 745, - 745, 745, 746, 746, 746, 746, 747, 747, 747, 747, - 747, 747, 747, 747, 747, 747, 747, 747, 747, 747, - 748, 748, 749, 749, 749, 750, 750, 750, 750, 751, - 751, 751, 752, 752, 753, 753, 753, 753, 753, 753, - 754, 754, 755, 756, 756, 756, 756, 756, 757, 757, - 757, 757, 758, 758, 758, 758, 758, 758, 758, 758, - 759, 759, 760, 760, 761, 761, 761, 762, 763, 764, - 764, 764, 764, 764, 765, 765, 765, 765, 766, 767, - 767, 768, 768, 769, 769, 769, 769, 769, 769, 769, - 769, 770, 770, 771, 772, 772, 772, 772, 773, 773, - 773, 773, 774, 775, 775, 775, 776, 777, 777, 777, - 777, 777, 777, 778, 778, 779, 779, 780, 781, 781, - 781, 782, 782, 783, 783, 784, 784, 784, 785, 786, - 786, 787, 787, 788, 789, 789, 789, 789, 790, 790, - 791, 791, 792, 792, 792, 793, 793, 793, 793, 793, - 793, 794, 794, 795, 795, 795, 795, 796, 797, 797, - 797, 797, 797, 797, 797, 797, 798, 798, 799, 799, - 799, 800, 800, 801, 801, 802, 802, 803, 803, 803, - 803, 804, 804, 804, 804, 805, 805, 806, 806, 806, - 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, - 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, - 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, - 808, 808, 808, 809, 809, 810, 810, 811, 811, 812, - 812, 812, 812, 813, 814, 814, 815, 815, 815, 815, - 815, 815, 815, 815, 816, 816, 816, 816, 816, 816, - 816, 816, 816, 816, 816, 816, 816, 816, 816, 816, - 817, 817, 817, 817, 817, 817, 817, 818, 818, 819, - 819, 819, 820, 820, 820, 821, 821, 822, 823, 823, - 823, 823, 823, 823, 823, 823, 824, 824, 825, 825, - 826, 826, 826, 826, 827, 827, 828, 828, 828, 828, - 828, 828, 828, 828, 828, 828, 828, 828, 828, 828, - 828, 828, 828, 828, 828, 828, 828, 828, 828, 828, - 828, 828, 828, 828, 828, 829, 829, 830, 830, 830, - 830, 831, 831, 832, 833, 833, 833, 834, 834, 834, - 834, 834, 834, 835, 835, 835, 836, 836, 836, 836, - 836, 836, 836, 836, 836, 836, 836, 836, 836, 837, - 837, 838, 839, 839, 840, 840, 840, 840, 841, 841, - 841, 841, 841, 842, 842, 842, 842, 842, 843, 843, - 844, 844, 845, 845, 846, 846, 847, 848, 848, 849, - 849, 850, 850, 851, 851, 852, 852, 853, 854, 855, - 856, 856, 856, 857, 857, 858, 858, 859, 859, 859, - 859, 860, 860, 860, 860, 861, 861, 861, 861, 862, - 862, 862, 862, 863, 863, 863, 863, 864, 864, 865, - 865, 865, 865, 865, 865, 865, 866, 866, 867, 867, - 868, 868, 868, 869, 869, 870, 870, 871, 871, 872, - 872, 873, 873, 874, 874, 875, 875, 875, 875, 875, - 875, 876, 877, 878, 878, 878, 878, 878, 879, 879, - 880, 880, 880, 881, 881, 882, 883, 883, 884, 884, - 884, 885, 885, 885, 886, 886, 887, 887, 888, 888, - 889, 889, 890, 890, 891, 891, 892, 892, 893, 893, - 894, 894, 895, 896, 896, 897, 897, 897, 897, 897, - 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, - 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, - 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, - 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, - 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, - 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, - 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, - 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, - 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, - 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, - 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, - 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, - 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, - 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, - 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, - 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, - 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, - 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, - 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, - 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, - 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, - 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, - 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, - 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, - 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, - 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, - 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, - 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, - 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, - 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, - 897, 897, 898, 898, 898, 898, 898, 898, 898, 898, - 898, 898, 898, 898, 898, 898, 898, 898, 898, 898, - 898, 898, 898, 898, 898, 898, 898, 898, 898, 898, - 898, 898, 898, 898, 898, 898, 898, 898, 898, 898, - 898, 898, 898, 898, 898, 898, 898, 898, 898, 898, - 898, 898, 898, 898, 898, 899, 899, 899, 899, 899, - 899, 899, 899, 899, 899, 899, 899, 899, 899, 899, - 899, 899, 899, 899, 899, 899, 899, 899, 899, 899, - 899, 899, 899, 899, 899, 899, 899, 899, 900, 900, - 900, 900, 900, 900, 900, 900, 900, 900, 900, 900, - 900, 900, 900, 900, 900, 900, 900, 900, 900, 900, - 900, 900, 900, 900, 900, 900, 900, 900, 900, 901, - 901, 901, 901, 901, 901, 901, 901, 901, 901, 901, - 901, 901, 901, 901, 901, 901, 901, 901, 901, 901, - 901, 901, 901, 901, 901, 901, 901, 901, 901, 901, - 901, 901, 901, 901, 901, 901, 901, 901, 901, 901, - 901, 901, 901, 901, 901, 901, 901, 901, 901, 901, - 901, 901, 901, 901, 901, 901, 901, 901, 901, 901, - 901, 901, 901, 901, 901, 901, 901, 901, 901, 901, - 901, 901, 901, 901, 901, 901, 901, 901, 901, 901, - 901, 901, 902, 902, 902, 902, 902, 902, 902, 902, - 902, 902, 902, 902, 902, 902, 902, 902, 902, 902, - 902, 902, 902, 902, 902, 902, 902, 902, 902, 902, - 902, 902, 902, 902, 902, 902, 903, 903, 903, 903, - 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, - 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, - 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, - 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, - 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, - 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, - 903, 903, 903, 903, 903, 903, 903, 903 + 526, 526, 526, 526, 526, 527, 527, 528, 528, 528, + 528, 529, 529, 530, 531, 531, 531, 882, 882, 882, + 882, 882, 882, 883, 883, 883, 678, 678, 678, 678, + 678, 678, 678, 678, 678, 678, 678, 678, 678, 679, + 679, 675, 676, 676, 677, 677, 677, 677, 885, 885, + 885, 885, 885, 886, 886, 886, 886, 886, 887, 887, + 888, 888, 889, 889, 646, 646, 647, 648, 648, 649, + 649, 650, 650, 651, 651, 652, 652, 644, 645, 620, + 621, 621, 621, 622, 622, 623, 623, 902, 902, 902, + 902, 903, 903, 903, 903, 893, 893, 893, 893, 894, + 894, 894, 894, 895, 895, 895, 895, 896, 896, 897, + 897, 897, 897, 897, 897, 897, 898, 898, 541, 541, + 672, 672, 672, 673, 673, 616, 616, 617, 617, 610, + 610, 611, 611, 612, 612, 513, 513, 513, 513, 513, + 513, 884, 653, 654, 654, 654, 654, 654, 655, 655, + 656, 656, 656, 657, 657, 658, 659, 659, 660, 660, + 660, 661, 661, 661, 662, 662, 663, 663, 664, 664, + 665, 665, 666, 666, 667, 667, 668, 668, 669, 669, + 670, 670, 671, 532, 532, 533, 533, 533, 533, 533, + 533, 533, 533, 533, 533, 533, 533, 533, 533, 533, + 533, 533, 533, 533, 533, 533, 533, 533, 533, 533, + 533, 533, 533, 533, 533, 533, 533, 533, 533, 533, + 533, 533, 533, 533, 533, 533, 533, 533, 533, 533, + 533, 533, 533, 533, 533, 533, 533, 533, 533, 533, + 533, 533, 533, 533, 533, 533, 533, 533, 533, 533, + 533, 533, 533, 533, 533, 533, 533, 533, 533, 533, + 533, 533, 533, 533, 533, 533, 533, 533, 533, 533, + 533, 533, 533, 533, 533, 533, 533, 533, 533, 533, + 533, 533, 533, 533, 533, 533, 533, 533, 533, 533, + 533, 533, 533, 533, 533, 533, 533, 533, 533, 533, + 533, 533, 533, 533, 533, 533, 533, 533, 533, 533, + 533, 533, 533, 533, 533, 533, 533, 533, 533, 533, + 533, 533, 533, 533, 533, 533, 533, 533, 533, 533, + 533, 533, 533, 533, 533, 533, 533, 533, 533, 533, + 533, 533, 533, 533, 533, 533, 533, 533, 533, 533, + 533, 533, 533, 533, 533, 533, 533, 533, 533, 533, + 533, 533, 533, 533, 533, 533, 533, 533, 533, 533, + 533, 533, 533, 533, 533, 533, 533, 533, 533, 533, + 533, 533, 533, 533, 533, 533, 533, 533, 533, 533, + 533, 533, 533, 533, 533, 533, 533, 533, 533, 533, + 533, 533, 533, 533, 533, 533, 533, 533, 533, 533, + 533, 533, 533, 533, 533, 533, 533, 533, 533, 533, + 533, 533, 533, 533, 533, 533, 533, 533, 533, 533, + 533, 533, 533, 533, 533, 533, 533, 533, 533, 533, + 533, 533, 533, 533, 533, 533, 533, 533, 533, 533, + 533, 533, 533, 533, 533, 533, 533, 533, 533, 533, + 533, 533, 533, 533, 533, 533, 533, 533, 533, 533, + 533, 533, 533, 533, 533, 533, 533, 533, 533, 533, + 533, 533, 533, 533, 533, 533, 533, 533, 533, 533, + 533, 533, 534, 534, 534, 534, 534, 534, 534, 534, + 534, 534, 534, 534, 534, 534, 534, 534, 534, 534, + 534, 534, 534, 534, 534, 534, 534, 534, 534, 534, + 534, 534, 534, 534, 534, 534, 534, 534, 534, 534, + 534, 534, 534, 534, 534, 534, 534, 534, 534, 534, + 534, 534, 534, 534, 534, 535, 535, 535, 535, 535, + 535, 535, 535, 535, 535, 535, 535, 535, 535, 535, + 535, 535, 535, 535, 535, 535, 535, 535, 535, 535, + 535, 535, 535, 535, 535, 535, 535, 535, 536, 536, + 536, 536, 536, 536, 536, 536, 536, 536, 536, 536, + 536, 536, 536, 536, 536, 536, 536, 536, 536, 536, + 536, 536, 536, 536, 536, 536, 536, 536, 536, 537, + 537, 537, 537, 537, 537, 537, 537, 537, 537, 537, + 537, 537, 537, 537, 537, 537, 537, 537, 537, 537, + 537, 537, 537, 537, 537, 537, 537, 537, 537, 537, + 537, 537, 537, 537, 537, 537, 537, 537, 537, 537, + 537, 537, 537, 537, 537, 537, 537, 537, 537, 537, + 537, 537, 537, 537, 537, 537, 537, 537, 537, 537, + 537, 537, 537, 537, 537, 537, 537, 537, 537, 537, + 537, 537, 537, 537, 537, 537, 537, 537, 537, 537, + 537, 537, 538, 538, 538, 538, 538, 538, 538, 538, + 538, 538, 538, 538, 538, 538, 538, 538, 538, 538, + 538, 538, 538, 538, 538, 538, 538, 538, 538, 538, + 538, 538, 538, 538, 538, 538, 539, 539, 539, 539, + 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, + 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, + 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, + 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, + 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, + 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, + 539, 539, 539, 539, 539, 539, 539, 539 }; - /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */ +/* YYR2[RULE-NUM] -- Number of symbols on the right-hand side of rule RULE-NUM. */ static const yytype_int8 yyr2[] = { 0, 2, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, - 3, 11, 9, 1, 1, 3, 0, 1, 3, 1, + 11, 9, 3, 1, 1, 3, 0, 1, 3, 1, 0, 1, 0, 1, 0, 1, 3, 1, 1, 1, 3, 0, 2, 2, 0, 2, 0, 1, 0, 1, 1, 1, 3, 3, 1, 1, 3, 3, 3, 3, @@ -14514,14 +14846,15 @@ static const yytype_int8 yyr2[] = }; +enum { YYENOMEM = -2 }; + #define yyerrok (yyerrstatus = 0) #define yyclearin (yychar = YYEMPTY) -#define YYEMPTY (-2) -#define YYEOF 0 #define YYACCEPT goto yyacceptlab #define YYABORT goto yyabortlab #define YYERROR goto yyerrorlab +#define YYNOMEM goto yyexhaustedlab #define YYRECOVERING() (!!yyerrstatus) @@ -14543,10 +14876,9 @@ static const yytype_int8 yyr2[] = } \ while (0) -/* Error token number */ -#define YYTERROR 1 -#define YYERRCODE 256 - +/* Backward compatibility with an undocumented macro. + Use YYerror or YYUNDEF. */ +#define YYERRCODE YYUNDEF /* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N]. If N is 0, then set CURRENT to the empty location which ends @@ -14590,12 +14922,19 @@ do { \ } while (0) -/* YY_LOCATION_PRINT -- Print the location on the stream. +/* YYLOCATION_PRINT -- Print the location on the stream. This macro was not mandated originally: define only if we know we won't break user code: when these are the locations we know. */ -#ifndef YY_LOCATION_PRINT -# if defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL +# ifndef YYLOCATION_PRINT + +# if defined YY_LOCATION_PRINT + + /* Temporary convenience wrapper in case some people defined the + undocumented and private YY_LOCATION_PRINT macros. */ +# define YYLOCATION_PRINT(File, Loc) YY_LOCATION_PRINT(File, *(Loc)) + +# elif defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL /* Print *YYLOCP on YYO. Private, do not rely on its existence. */ @@ -14623,24 +14962,32 @@ yy_location_print_ (FILE *yyo, YYLTYPE const * const yylocp) res += YYFPRINTF (yyo, "-%d", end_col); } return res; - } +} -# define YY_LOCATION_PRINT(File, Loc) \ - yy_location_print_ (File, &(Loc)) +# define YYLOCATION_PRINT yy_location_print_ -# else -# define YY_LOCATION_PRINT(File, Loc) ((void) 0) -# endif -#endif + /* Temporary convenience wrapper in case some people defined the + undocumented and private YY_LOCATION_PRINT macros. */ +# define YY_LOCATION_PRINT(File, Loc) YYLOCATION_PRINT(File, &(Loc)) + +# else + +# define YYLOCATION_PRINT(File, Loc) ((void) 0) + /* Temporary convenience wrapper in case some people defined the + undocumented and private YY_LOCATION_PRINT macros. */ +# define YY_LOCATION_PRINT YYLOCATION_PRINT + +# endif +# endif /* !defined YYLOCATION_PRINT */ -# define YY_SYMBOL_PRINT(Title, Type, Value, Location) \ +# define YY_SYMBOL_PRINT(Title, Kind, Value, Location) \ do { \ if (yydebug) \ { \ YYFPRINTF (stderr, "%s ", Title); \ yy_symbol_print (stderr, \ - Type, Value, Location, yyscanner); \ + Kind, Value, Location, yyscanner); \ YYFPRINTF (stderr, "\n"); \ } \ } while (0) @@ -14651,20 +14998,17 @@ do { \ `-----------------------------------*/ static void -yy_symbol_value_print (FILE *yyo, int yytype, YYSTYPE const * const yyvaluep, YYLTYPE const * const yylocationp, core_yyscan_t yyscanner) +yy_symbol_value_print (FILE *yyo, + yysymbol_kind_t yykind, YYSTYPE const * const yyvaluep, YYLTYPE const * const yylocationp, core_yyscan_t yyscanner) { FILE *yyoutput = yyo; - YYUSE (yyoutput); - YYUSE (yylocationp); - YYUSE (yyscanner); + YY_USE (yyoutput); + YY_USE (yylocationp); + YY_USE (yyscanner); if (!yyvaluep) return; -# ifdef YYPRINT - if (yytype < YYNTOKENS) - YYPRINT (yyo, yytoknum[yytype], *yyvaluep); -# endif YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN - YYUSE (yytype); + YY_USE (yykind); YY_IGNORE_MAYBE_UNINITIALIZED_END } @@ -14674,14 +15018,15 @@ yy_symbol_value_print (FILE *yyo, int yytype, YYSTYPE const * const yyvaluep, YY `---------------------------*/ static void -yy_symbol_print (FILE *yyo, int yytype, YYSTYPE const * const yyvaluep, YYLTYPE const * const yylocationp, core_yyscan_t yyscanner) +yy_symbol_print (FILE *yyo, + yysymbol_kind_t yykind, YYSTYPE const * const yyvaluep, YYLTYPE const * const yylocationp, core_yyscan_t yyscanner) { YYFPRINTF (yyo, "%s %s (", - yytype < YYNTOKENS ? "token" : "nterm", yytname[yytype]); + yykind < YYNTOKENS ? "token" : "nterm", yysymbol_name (yykind)); - YY_LOCATION_PRINT (yyo, *yylocationp); + YYLOCATION_PRINT (yyo, yylocationp); YYFPRINTF (yyo, ": "); - yy_symbol_value_print (yyo, yytype, yyvaluep, yylocationp, yyscanner); + yy_symbol_value_print (yyo, yykind, yyvaluep, yylocationp, yyscanner); YYFPRINTF (yyo, ")"); } @@ -14714,7 +15059,8 @@ do { \ `------------------------------------------------*/ static void -yy_reduce_print (yy_state_t *yyssp, YYSTYPE *yyvsp, YYLTYPE *yylsp, int yyrule, core_yyscan_t yyscanner) +yy_reduce_print (yy_state_t *yyssp, YYSTYPE *yyvsp, YYLTYPE *yylsp, + int yyrule, core_yyscan_t yyscanner) { int yylno = yyrline[yyrule]; int yynrhs = yyr2[yyrule]; @@ -14726,9 +15072,9 @@ yy_reduce_print (yy_state_t *yyssp, YYSTYPE *yyvsp, YYLTYPE *yylsp, int yyrule, { YYFPRINTF (stderr, " $%d = ", yyi + 1); yy_symbol_print (stderr, - yystos[+yyssp[yyi + 1 - yynrhs]], - &yyvsp[(yyi + 1) - (yynrhs)] - , &(yylsp[(yyi + 1) - (yynrhs)]) , yyscanner); + YY_ACCESSING_SYMBOL (+yyssp[yyi + 1 - yynrhs]), + &yyvsp[(yyi + 1) - (yynrhs)], + &(yylsp[(yyi + 1) - (yynrhs)]), yyscanner); YYFPRINTF (stderr, "\n"); } } @@ -14743,8 +15089,8 @@ do { \ multiple parsers can coexist. */ int yydebug; #else /* !YYDEBUG */ -# define YYDPRINTF(Args) -# define YY_SYMBOL_PRINT(Title, Type, Value, Location) +# define YYDPRINTF(Args) ((void) 0) +# define YY_SYMBOL_PRINT(Title, Kind, Value, Location) # define YY_STACK_PRINT(Bottom, Top) # define YY_REDUCE_PRINT(Rule) #endif /* !YYDEBUG */ @@ -14755,272 +15101,47 @@ int yydebug; # define YYINITDEPTH 200 #endif -/* YYMAXDEPTH -- maximum size the stacks can grow to (effective only - if the built-in stack extension method is used). - - Do not make this value too large; the results are undefined if - YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH) - evaluated with infinite-precision integer arithmetic. */ - -#ifndef YYMAXDEPTH -# define YYMAXDEPTH 10000 -#endif - - -#if YYERROR_VERBOSE - -# ifndef yystrlen -# if defined __GLIBC__ && defined _STRING_H -# define yystrlen(S) (YY_CAST (YYPTRDIFF_T, strlen (S))) -# else -/* Return the length of YYSTR. */ -static YYPTRDIFF_T -yystrlen (const char *yystr) -{ - YYPTRDIFF_T yylen; - for (yylen = 0; yystr[yylen]; yylen++) - continue; - return yylen; -} -# endif -# endif - -# ifndef yystpcpy -# if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE -# define yystpcpy stpcpy -# else -/* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in - YYDEST. */ -static char * -yystpcpy (char *yydest, const char *yysrc) -{ - char *yyd = yydest; - const char *yys = yysrc; - - while ((*yyd++ = *yys++) != '\0') - continue; - - return yyd - 1; -} -# endif -# endif - -# ifndef yytnamerr -/* Copy to YYRES the contents of YYSTR after stripping away unnecessary - quotes and backslashes, so that it's suitable for yyerror. The - heuristic is that double-quoting is unnecessary unless the string - contains an apostrophe, a comma, or backslash (other than - backslash-backslash). YYSTR is taken from yytname. If YYRES is - null, do not copy; instead, return the length of what the result - would have been. */ -static YYPTRDIFF_T -yytnamerr (char *yyres, const char *yystr) -{ - if (*yystr == '"') - { - YYPTRDIFF_T yyn = 0; - char const *yyp = yystr; - - for (;;) - switch (*++yyp) - { - case '\'': - case ',': - goto do_not_strip_quotes; - - case '\\': - if (*++yyp != '\\') - goto do_not_strip_quotes; - else - goto append; - - append: - default: - if (yyres) - yyres[yyn] = *yyp; - yyn++; - break; - - case '"': - if (yyres) - yyres[yyn] = '\0'; - return yyn; - } - do_not_strip_quotes: ; - } +/* YYMAXDEPTH -- maximum size the stacks can grow to (effective only + if the built-in stack extension method is used). - if (yyres) - return yystpcpy (yyres, yystr) - yyres; - else - return yystrlen (yystr); -} -# endif + Do not make this value too large; the results are undefined if + YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH) + evaluated with infinite-precision integer arithmetic. */ -/* Copy into *YYMSG, which is of size *YYMSG_ALLOC, an error message - about the unexpected token YYTOKEN for the state stack whose top is - YYSSP. +#ifndef YYMAXDEPTH +# define YYMAXDEPTH 10000 +#endif - Return 0 if *YYMSG was successfully written. Return 1 if *YYMSG is - not large enough to hold the message. In that case, also set - *YYMSG_ALLOC to the required number of bytes. Return 2 if the - required number of bytes is too large to store. */ -static int -yysyntax_error (YYPTRDIFF_T *yymsg_alloc, char **yymsg, - yy_state_t *yyssp, int yytoken) -{ - enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 }; - /* Internationalized format string. */ - const char *yyformat = YY_NULLPTR; - /* Arguments of yyformat: reported tokens (one for the "unexpected", - one per "expected"). */ - char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM]; - /* Actual size of YYARG. */ - int yycount = 0; - /* Cumulated lengths of YYARG. */ - YYPTRDIFF_T yysize = 0; - - /* There are many possibilities here to consider: - - If this state is a consistent state with a default action, then - the only way this function was invoked is if the default action - is an error action. In that case, don't check for expected - tokens because there are none. - - The only way there can be no lookahead present (in yychar) is if - this state is a consistent state with a default action. Thus, - detecting the absence of a lookahead is sufficient to determine - that there is no unexpected or expected token to report. In that - case, just report a simple "syntax error". - - Don't assume there isn't a lookahead just because this state is a - consistent state with a default action. There might have been a - previous inconsistent state, consistent state with a non-default - action, or user semantic action that manipulated yychar. - - Of course, the expected token list depends on states to have - correct lookahead information, and it depends on the parser not - to perform extra reductions after fetching a lookahead from the - scanner and before detecting a syntax error. Thus, state merging - (from LALR or IELR) and default reductions corrupt the expected - token list. However, the list is correct for canonical LR with - one exception: it will still contain any token that will not be - accepted due to an error action in a later state. - */ - if (yytoken != YYEMPTY) - { - int yyn = yypact[+*yyssp]; - YYPTRDIFF_T yysize0 = yytnamerr (YY_NULLPTR, yytname[yytoken]); - yysize = yysize0; - yyarg[yycount++] = yytname[yytoken]; - if (!yypact_value_is_default (yyn)) - { - /* Start YYX at -YYN if negative to avoid negative indexes in - YYCHECK. In other words, skip the first -YYN actions for - this state because they are default actions. */ - int yyxbegin = yyn < 0 ? -yyn : 0; - /* Stay within bounds of both yycheck and yytname. */ - int yychecklim = YYLAST - yyn + 1; - int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS; - int yyx; - - for (yyx = yyxbegin; yyx < yyxend; ++yyx) - if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR - && !yytable_value_is_error (yytable[yyx + yyn])) - { - if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM) - { - yycount = 1; - yysize = yysize0; - break; - } - yyarg[yycount++] = yytname[yyx]; - { - YYPTRDIFF_T yysize1 - = yysize + yytnamerr (YY_NULLPTR, yytname[yyx]); - if (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM) - yysize = yysize1; - else - return 2; - } - } - } - } - switch (yycount) - { -# define YYCASE_(N, S) \ - case N: \ - yyformat = S; \ - break - default: /* Avoid compiler warnings. */ - YYCASE_(0, YY_("syntax error")); - YYCASE_(1, YY_("syntax error, unexpected %s")); - YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s")); - YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s")); - YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s")); - YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s")); -# undef YYCASE_ - } - { - /* Don't count the "%s"s in the final size, but reserve room for - the terminator. */ - YYPTRDIFF_T yysize1 = yysize + (yystrlen (yyformat) - 2 * yycount) + 1; - if (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM) - yysize = yysize1; - else - return 2; - } - if (*yymsg_alloc < yysize) - { - *yymsg_alloc = 2 * yysize; - if (! (yysize <= *yymsg_alloc - && *yymsg_alloc <= YYSTACK_ALLOC_MAXIMUM)) - *yymsg_alloc = YYSTACK_ALLOC_MAXIMUM; - return 1; - } - /* Avoid sprintf, as that infringes on the user's name space. - Don't have undefined behavior even if the translation - produced a string with the wrong number of "%s"s. */ - { - char *yyp = *yymsg; - int yyi = 0; - while ((*yyp = *yyformat) != '\0') - if (*yyp == '%' && yyformat[1] == 's' && yyi < yycount) - { - yyp += yytnamerr (yyp, yyarg[yyi++]); - yyformat += 2; - } - else - { - ++yyp; - ++yyformat; - } - } - return 0; -} -#endif /* YYERROR_VERBOSE */ /*-----------------------------------------------. | Release the memory associated to this symbol. | `-----------------------------------------------*/ static void -yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, YYLTYPE *yylocationp, core_yyscan_t yyscanner) +yydestruct (const char *yymsg, + yysymbol_kind_t yykind, YYSTYPE *yyvaluep, YYLTYPE *yylocationp, core_yyscan_t yyscanner) { - YYUSE (yyvaluep); - YYUSE (yylocationp); - YYUSE (yyscanner); + YY_USE (yyvaluep); + YY_USE (yylocationp); + YY_USE (yyscanner); if (!yymsg) yymsg = "Deleting"; - YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp); + YY_SYMBOL_PRINT (yymsg, yykind, yyvaluep, yylocationp); YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN - YYUSE (yytype); + YY_USE (yykind); YY_IGNORE_MAYBE_UNINITIALIZED_END } + + /*----------. | yyparse. | `----------*/ @@ -15028,7 +15149,7 @@ yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, YYLTYPE *yylocatio int yyparse (core_yyscan_t yyscanner) { -/* The lookahead symbol. */ +/* Lookahead token kind. */ int yychar; @@ -15047,55 +15168,47 @@ static YYLTYPE yyloc_default YYLTYPE yylloc = yyloc_default; /* Number of syntax errors so far. */ - int yynerrs; + int yynerrs = 0; (void)yynerrs; - yy_state_fast_t yystate; + yy_state_fast_t yystate = 0; /* Number of tokens to shift before error messages enabled. */ - int yyerrstatus; + int yyerrstatus = 0; - /* The stacks and their tools: - 'yyss': related to states. - 'yyvs': related to semantic values. - 'yyls': related to locations. - - Refer to the stacks through separate pointers, to allow yyoverflow + /* Refer to the stacks through separate pointers, to allow yyoverflow to reallocate them elsewhere. */ - /* The state stack. */ + /* Their size. */ + YYPTRDIFF_T yystacksize = YYINITDEPTH; + + /* The state stack: array, bottom, top. */ yy_state_t yyssa[YYINITDEPTH]; - yy_state_t *yyss; - yy_state_t *yyssp; + yy_state_t *yyss = yyssa; + yy_state_t *yyssp = yyss; - /* The semantic value stack. */ + /* The semantic value stack: array, bottom, top. */ YYSTYPE yyvsa[YYINITDEPTH]; - YYSTYPE *yyvs; - YYSTYPE *yyvsp; + YYSTYPE *yyvs = yyvsa; + YYSTYPE *yyvsp = yyvs; - /* The location stack. */ + /* The location stack: array, bottom, top. */ YYLTYPE yylsa[YYINITDEPTH]; - YYLTYPE *yyls; - YYLTYPE *yylsp; - - /* The locations where the error started and ended. */ - YYLTYPE yyerror_range[3]; - - YYPTRDIFF_T yystacksize; + YYLTYPE *yyls = yylsa; + YYLTYPE *yylsp = yyls; int yyn; + /* The return value of yyparse. */ int yyresult; - /* Lookahead token as an internal (translated) token number. */ - int yytoken = 0; + /* Lookahead symbol kind. */ + yysymbol_kind_t yytoken = YYSYMBOL_YYEMPTY; /* The variables used to return semantic value and location from the action routines. */ YYSTYPE yyval; YYLTYPE yyloc; -#if YYERROR_VERBOSE - /* Buffer for error messages, and its allocated size. */ - char yymsgbuf[128]; - char *yymsg = yymsgbuf; - YYPTRDIFF_T yymsg_alloc = sizeof yymsgbuf; -#endif + /* The locations where the error started and ended. */ + YYLTYPE yyerror_range[3]; + + #define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N), yylsp -= (N)) @@ -15103,17 +15216,10 @@ YYLTYPE yylloc = yyloc_default; Keep to zero when no symbol should be popped. */ int yylen = 0; - yyssp = yyss = yyssa; - yyvsp = yyvs = yyvsa; - yylsp = yyls = yylsa; - yystacksize = YYINITDEPTH; - YYDPRINTF ((stderr, "Starting parse\n")); - yystate = 0; - yyerrstatus = 0; - yynerrs = 0; (void)yynerrs; yychar = YYEMPTY; /* Cause a token to be read. */ + yylsp[0] = yylloc; goto yysetstate; @@ -15136,10 +15242,11 @@ YYLTYPE yylloc = yyloc_default; YY_IGNORE_USELESS_CAST_BEGIN *yyssp = YY_CAST (yy_state_t, yystate); YY_IGNORE_USELESS_CAST_END + YY_STACK_PRINT (yyss, yyssp); if (yyss + yystacksize - 1 <= yyssp) #if !defined yyoverflow && !defined YYSTACK_RELOCATE - goto yyexhaustedlab; + YYNOMEM; #else { /* Get the current used size of the three stacks, in elements. */ @@ -15170,7 +15277,7 @@ YYLTYPE yylloc = yyloc_default; # else /* defined YYSTACK_RELOCATE */ /* Extend the stack our own way. */ if (YYMAXDEPTH <= yystacksize) - goto yyexhaustedlab; + YYNOMEM; yystacksize *= 2; if (YYMAXDEPTH < yystacksize) yystacksize = YYMAXDEPTH; @@ -15181,11 +15288,11 @@ YYLTYPE yylloc = yyloc_default; YY_CAST (union yyalloc *, YYSTACK_ALLOC (YY_CAST (YYSIZE_T, YYSTACK_BYTES (yystacksize)))); if (! yyptr) - goto yyexhaustedlab; + YYNOMEM; YYSTACK_RELOCATE (yyss_alloc, yyss); YYSTACK_RELOCATE (yyvs_alloc, yyvs); YYSTACK_RELOCATE (yyls_alloc, yyls); -# undef YYSTACK_RELOCATE +# undef YYSTACK_RELOCATE if (yyss1 != yyssa) YYSTACK_FREE (yyss1); } @@ -15205,6 +15312,7 @@ YYLTYPE yylloc = yyloc_default; } #endif /* !defined yyoverflow && !defined YYSTACK_RELOCATE */ + if (yystate == YYFINAL) YYACCEPT; @@ -15225,18 +15333,30 @@ YYLTYPE yylloc = yyloc_default; /* Not known => get a lookahead token if don't already have one. */ - /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol. */ + /* YYCHAR is either empty, or end-of-input, or a valid lookahead. */ if (yychar == YYEMPTY) { - YYDPRINTF ((stderr, "Reading a token: ")); + YYDPRINTF ((stderr, "Reading a token\n")); yychar = yylex (&yylval, &yylloc, yyscanner); } if (yychar <= YYEOF) { - yychar = yytoken = YYEOF; + yychar = YYEOF; + yytoken = YYSYMBOL_YYEOF; YYDPRINTF ((stderr, "Now at end of input.\n")); } + else if (yychar == YYerror) + { + /* The scanner already issued an error message, process directly + to error recovery. But do not keep the error token as + lookahead, it is too special and may lead us to an endless + loop in error recovery. */ + yychar = YYUNDEF; + yytoken = YYSYMBOL_YYerror; + yyerror_range[1] = yylloc; + goto yyerrlab1; + } else { yytoken = YYTRANSLATE (yychar); @@ -15308,15 +15428,15 @@ YYLTYPE yylloc = yyloc_default; YY_REDUCE_PRINT (yyn); switch (yyn) { - case 2: + case 2: /* stmtblock: stmtmulti */ #line 467 "third_party/libpg_query/grammar/grammar.y" { pg_yyget_extra(yyscanner)->parsetree = (yyvsp[0].list); } -#line 15317 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 15437 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 3: + case 3: /* stmtmulti: stmtmulti ';' stmt */ #line 483 "third_party/libpg_query/grammar/grammar.y" { if ((yyvsp[-2].list) != NIL) @@ -15329,10 +15449,10 @@ YYLTYPE yylloc = yyloc_default; else (yyval.list) = (yyvsp[-2].list); } -#line 15333 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 15453 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 4: + case 4: /* stmtmulti: stmt */ #line 495 "third_party/libpg_query/grammar/grammar.y" { if ((yyvsp[0].node) != NULL) @@ -15340,40 +15460,17 @@ YYLTYPE yylloc = yyloc_default; else (yyval.list) = NIL; } -#line 15344 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 15464 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 39: + case 39: /* stmt: %empty */ #line 538 "third_party/libpg_query/grammar/grammar.y" { (yyval.node) = NULL; } -#line 15350 "third_party/libpg_query/grammar/grammar_out.cpp" - break; - - case 40: -#line 2 "third_party/libpg_query/grammar/statements/copy.y" - { - PGCopyStmt *n = makeNode(PGCopyStmt); - n->relation = NULL; - n->query = NULL; - n->attlist = NIL; - n->is_from = true; - n->is_program = true; - n->filename = (yyvsp[0].str); - n->options = NIL; - - if (n->is_program && n->filename == NULL) - ereport(ERROR, - (errcode(PG_ERRCODE_SYNTAX_ERROR), - errmsg("COPYFROMFILE not allowed with NULL"), - parser_errposition((yylsp[0])))); - - (yyval.node) = (PGNode *)n; - } -#line 15373 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 15470 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 41: -#line 22 "third_party/libpg_query/grammar/statements/copy.y" + case 40: /* CopyStmt: COPY opt_binary qualified_name opt_column_list opt_oids copy_from opt_program copy_file_name copy_delimiter opt_with copy_options */ +#line 3 "third_party/libpg_query/grammar/statements/copy.y" { PGCopyStmt *n = makeNode(PGCopyStmt); n->relation = (yyvsp[-8].range); @@ -15401,11 +15498,11 @@ YYLTYPE yylloc = yyloc_default; n->options = list_concat(n->options, (yyvsp[0].list)); (yyval.node) = (PGNode *)n; } -#line 15405 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 15502 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 42: -#line 50 "third_party/libpg_query/grammar/statements/copy.y" + case 41: /* CopyStmt: COPY '(' SelectStmt ')' TO opt_program copy_file_name opt_with copy_options */ +#line 31 "third_party/libpg_query/grammar/statements/copy.y" { PGCopyStmt *n = makeNode(PGCopyStmt); n->relation = NULL; @@ -15424,336 +15521,359 @@ YYLTYPE yylloc = yyloc_default; (yyval.node) = (PGNode *)n; } -#line 15428 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 15525 "third_party/libpg_query/grammar/grammar_out.cpp" + break; + + case 42: /* CopyStmt: COPY FROM copy_file_name */ +#line 50 "third_party/libpg_query/grammar/statements/copy.y" + { + PGCopyStmt *n = makeNode(PGCopyStmt); + n->relation = NULL; + n->query = NULL; + n->attlist = NIL; + n->is_from = true; + n->is_program = false; + n->filename = (yyvsp[0].str); + n->options = NIL; + + if (n->filename == NULL) + ereport(ERROR, + (errcode(PG_ERRCODE_SYNTAX_ERROR), + errmsg("COPYFROMFILE not allowed with NULL"), + parser_errposition((yylsp[0])))); + + (yyval.node) = (PGNode *)n; + } +#line 15548 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 43: + case 43: /* copy_from: FROM */ #line 72 "third_party/libpg_query/grammar/statements/copy.y" { (yyval.boolean) = true; } -#line 15434 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 15554 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 44: + case 44: /* copy_from: TO */ #line 73 "third_party/libpg_query/grammar/statements/copy.y" { (yyval.boolean) = false; } -#line 15440 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 15560 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 45: + case 45: /* copy_delimiter: opt_using DELIMITERS Sconst */ #line 79 "third_party/libpg_query/grammar/statements/copy.y" { (yyval.defelt) = makeDefElem("delimiter", (PGNode *)makeString((yyvsp[0].str)), (yylsp[-1])); } -#line 15448 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 15568 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 46: + case 46: /* copy_delimiter: %empty */ #line 82 "third_party/libpg_query/grammar/statements/copy.y" { (yyval.defelt) = NULL; } -#line 15454 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 15574 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 47: + case 47: /* copy_generic_opt_arg_list: copy_generic_opt_arg_list_item */ #line 88 "third_party/libpg_query/grammar/statements/copy.y" { (yyval.list) = list_make1((yyvsp[0].node)); } -#line 15462 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 15582 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 48: + case 48: /* copy_generic_opt_arg_list: copy_generic_opt_arg_list ',' copy_generic_opt_arg_list_item */ #line 92 "third_party/libpg_query/grammar/statements/copy.y" { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].node)); } -#line 15470 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 15590 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 49: + case 49: /* opt_using: USING */ #line 99 "third_party/libpg_query/grammar/statements/copy.y" {} -#line 15476 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 15596 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 50: + case 50: /* opt_using: %empty */ #line 100 "third_party/libpg_query/grammar/statements/copy.y" {} -#line 15482 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 15602 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 51: + case 51: /* opt_as: AS */ #line 104 "third_party/libpg_query/grammar/statements/copy.y" {} -#line 15488 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 15608 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 52: + case 52: /* opt_as: %empty */ #line 105 "third_party/libpg_query/grammar/statements/copy.y" {} -#line 15494 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 15614 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 53: + case 53: /* opt_program: PROGRAM */ #line 110 "third_party/libpg_query/grammar/statements/copy.y" { (yyval.boolean) = true; } -#line 15500 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 15620 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 54: + case 54: /* opt_program: %empty */ #line 111 "third_party/libpg_query/grammar/statements/copy.y" { (yyval.boolean) = false; } -#line 15506 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 15626 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 55: + case 55: /* copy_options: copy_opt_list */ #line 115 "third_party/libpg_query/grammar/statements/copy.y" { (yyval.list) = (yyvsp[0].list); } -#line 15512 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 15632 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 56: + case 56: /* copy_options: '(' copy_generic_opt_list ')' */ #line 116 "third_party/libpg_query/grammar/statements/copy.y" { (yyval.list) = (yyvsp[-1].list); } -#line 15518 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 15638 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 57: + case 57: /* copy_generic_opt_arg: opt_boolean_or_string */ #line 121 "third_party/libpg_query/grammar/statements/copy.y" { (yyval.node) = (PGNode *) makeString((yyvsp[0].str)); } -#line 15524 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 15644 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 58: + case 58: /* copy_generic_opt_arg: NumericOnly */ #line 122 "third_party/libpg_query/grammar/statements/copy.y" { (yyval.node) = (PGNode *) (yyvsp[0].value); } -#line 15530 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 15650 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 59: + case 59: /* copy_generic_opt_arg: '*' */ #line 123 "third_party/libpg_query/grammar/statements/copy.y" { (yyval.node) = (PGNode *) makeNode(PGAStar); } -#line 15536 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 15656 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 60: + case 60: /* copy_generic_opt_arg: '(' copy_generic_opt_arg_list ')' */ #line 124 "third_party/libpg_query/grammar/statements/copy.y" { (yyval.node) = (PGNode *) (yyvsp[-1].list); } -#line 15542 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 15662 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 61: + case 61: /* copy_generic_opt_arg: %empty */ #line 125 "third_party/libpg_query/grammar/statements/copy.y" { (yyval.node) = NULL; } -#line 15548 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 15668 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 62: + case 62: /* copy_generic_opt_elem: ColLabel copy_generic_opt_arg */ #line 131 "third_party/libpg_query/grammar/statements/copy.y" { (yyval.defelt) = makeDefElem((yyvsp[-1].str), (yyvsp[0].node), (yylsp[-1])); } -#line 15556 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 15676 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 63: + case 63: /* opt_oids: WITH OIDS */ #line 139 "third_party/libpg_query/grammar/statements/copy.y" { (yyval.defelt) = makeDefElem("oids", (PGNode *)makeInteger(true), (yylsp[-1])); } -#line 15564 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 15684 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 64: + case 64: /* opt_oids: %empty */ #line 142 "third_party/libpg_query/grammar/statements/copy.y" { (yyval.defelt) = NULL; } -#line 15570 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 15690 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 65: + case 65: /* copy_opt_list: copy_opt_list copy_opt_item */ #line 147 "third_party/libpg_query/grammar/statements/copy.y" { (yyval.list) = lappend((yyvsp[-1].list), (yyvsp[0].defelt)); } -#line 15576 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 15696 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 66: + case 66: /* copy_opt_list: %empty */ #line 148 "third_party/libpg_query/grammar/statements/copy.y" { (yyval.list) = NIL; } -#line 15582 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 15702 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 67: + case 67: /* opt_binary: BINARY */ #line 154 "third_party/libpg_query/grammar/statements/copy.y" { (yyval.defelt) = makeDefElem("format", (PGNode *)makeString("binary"), (yylsp[0])); } -#line 15590 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 15710 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 68: + case 68: /* opt_binary: %empty */ #line 157 "third_party/libpg_query/grammar/statements/copy.y" { (yyval.defelt) = NULL; } -#line 15596 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 15716 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 69: + case 69: /* copy_opt_item: BINARY */ #line 163 "third_party/libpg_query/grammar/statements/copy.y" { (yyval.defelt) = makeDefElem("format", (PGNode *)makeString("binary"), (yylsp[0])); } -#line 15604 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 15724 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 70: + case 70: /* copy_opt_item: OIDS */ #line 167 "third_party/libpg_query/grammar/statements/copy.y" { (yyval.defelt) = makeDefElem("oids", (PGNode *)makeInteger(true), (yylsp[0])); } -#line 15612 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 15732 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 71: + case 71: /* copy_opt_item: FREEZE */ #line 171 "third_party/libpg_query/grammar/statements/copy.y" { (yyval.defelt) = makeDefElem("freeze", (PGNode *)makeInteger(true), (yylsp[0])); } -#line 15620 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 15740 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 72: + case 72: /* copy_opt_item: DELIMITER opt_as Sconst */ #line 175 "third_party/libpg_query/grammar/statements/copy.y" { (yyval.defelt) = makeDefElem("delimiter", (PGNode *)makeString((yyvsp[0].str)), (yylsp[-2])); } -#line 15628 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 15748 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 73: + case 73: /* copy_opt_item: NULL_P opt_as Sconst */ #line 179 "third_party/libpg_query/grammar/statements/copy.y" { (yyval.defelt) = makeDefElem("null", (PGNode *)makeString((yyvsp[0].str)), (yylsp[-2])); } -#line 15636 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 15756 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 74: + case 74: /* copy_opt_item: CSV */ #line 183 "third_party/libpg_query/grammar/statements/copy.y" { (yyval.defelt) = makeDefElem("format", (PGNode *)makeString("csv"), (yylsp[0])); } -#line 15644 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 15764 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 75: + case 75: /* copy_opt_item: HEADER_P */ #line 187 "third_party/libpg_query/grammar/statements/copy.y" { (yyval.defelt) = makeDefElem("header", (PGNode *)makeInteger(true), (yylsp[0])); } -#line 15652 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 15772 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 76: + case 76: /* copy_opt_item: QUOTE opt_as Sconst */ #line 191 "third_party/libpg_query/grammar/statements/copy.y" { (yyval.defelt) = makeDefElem("quote", (PGNode *)makeString((yyvsp[0].str)), (yylsp[-2])); } -#line 15660 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 15780 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 77: + case 77: /* copy_opt_item: ESCAPE opt_as Sconst */ #line 195 "third_party/libpg_query/grammar/statements/copy.y" { (yyval.defelt) = makeDefElem("escape", (PGNode *)makeString((yyvsp[0].str)), (yylsp[-2])); } -#line 15668 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 15788 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 78: + case 78: /* copy_opt_item: FORCE QUOTE columnList */ #line 199 "third_party/libpg_query/grammar/statements/copy.y" { (yyval.defelt) = makeDefElem("force_quote", (PGNode *)(yyvsp[0].list), (yylsp[-2])); } -#line 15676 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 15796 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 79: + case 79: /* copy_opt_item: FORCE QUOTE '*' */ #line 203 "third_party/libpg_query/grammar/statements/copy.y" { (yyval.defelt) = makeDefElem("force_quote", (PGNode *)makeNode(PGAStar), (yylsp[-2])); } -#line 15684 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 15804 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 80: + case 80: /* copy_opt_item: FORCE NOT NULL_P columnList */ #line 207 "third_party/libpg_query/grammar/statements/copy.y" { (yyval.defelt) = makeDefElem("force_not_null", (PGNode *)(yyvsp[0].list), (yylsp[-3])); } -#line 15692 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 15812 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 81: + case 81: /* copy_opt_item: FORCE NULL_P columnList */ #line 211 "third_party/libpg_query/grammar/statements/copy.y" { (yyval.defelt) = makeDefElem("force_null", (PGNode *)(yyvsp[0].list), (yylsp[-2])); } -#line 15700 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 15820 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 82: + case 82: /* copy_opt_item: ENCODING Sconst */ #line 215 "third_party/libpg_query/grammar/statements/copy.y" { (yyval.defelt) = makeDefElem("encoding", (PGNode *)makeString((yyvsp[0].str)), (yylsp[-1])); } -#line 15708 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 15828 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 83: + case 83: /* copy_generic_opt_arg_list_item: opt_boolean_or_string */ #line 222 "third_party/libpg_query/grammar/statements/copy.y" { (yyval.node) = (PGNode *) makeString((yyvsp[0].str)); } -#line 15714 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 15834 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 84: + case 84: /* copy_file_name: Sconst */ #line 228 "third_party/libpg_query/grammar/statements/copy.y" { (yyval.str) = (yyvsp[0].str); } -#line 15720 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 15840 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 85: + case 85: /* copy_file_name: STDIN */ #line 229 "third_party/libpg_query/grammar/statements/copy.y" { (yyval.str) = NULL; } -#line 15726 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 15846 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 86: + case 86: /* copy_file_name: STDOUT */ #line 230 "third_party/libpg_query/grammar/statements/copy.y" { (yyval.str) = NULL; } -#line 15732 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 15852 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 87: + case 87: /* copy_generic_opt_list: copy_generic_opt_elem */ #line 236 "third_party/libpg_query/grammar/statements/copy.y" { (yyval.list) = list_make1((yyvsp[0].defelt)); } -#line 15740 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 15860 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 88: + case 88: /* copy_generic_opt_list: copy_generic_opt_list ',' copy_generic_opt_elem */ #line 240 "third_party/libpg_query/grammar/statements/copy.y" { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].defelt)); } -#line 15748 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 15868 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 89: + case 89: /* VariableResetStmt: RESET reset_rest */ #line 2 "third_party/libpg_query/grammar/statements/variable_reset.y" { (yyval.node) = (PGNode *) (yyvsp[0].vsetstmt); } -#line 15754 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 15874 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 90: + case 90: /* generic_reset: var_name */ #line 8 "third_party/libpg_query/grammar/statements/variable_reset.y" { PGVariableSetStmt *n = makeNode(PGVariableSetStmt); @@ -15761,26 +15881,26 @@ YYLTYPE yylloc = yyloc_default; n->name = (yyvsp[0].str); (yyval.vsetstmt) = n; } -#line 15765 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 15885 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 91: + case 91: /* generic_reset: ALL */ #line 15 "third_party/libpg_query/grammar/statements/variable_reset.y" { PGVariableSetStmt *n = makeNode(PGVariableSetStmt); n->kind = VAR_RESET_ALL; (yyval.vsetstmt) = n; } -#line 15775 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 15895 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 92: + case 92: /* reset_rest: generic_reset */ #line 24 "third_party/libpg_query/grammar/statements/variable_reset.y" { (yyval.vsetstmt) = (yyvsp[0].vsetstmt); } -#line 15781 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 15901 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 93: + case 93: /* reset_rest: TIME ZONE */ #line 26 "third_party/libpg_query/grammar/statements/variable_reset.y" { PGVariableSetStmt *n = makeNode(PGVariableSetStmt); @@ -15788,10 +15908,10 @@ YYLTYPE yylloc = yyloc_default; n->name = (char*) "timezone"; (yyval.vsetstmt) = n; } -#line 15792 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 15912 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 94: + case 94: /* reset_rest: TRANSACTION ISOLATION LEVEL */ #line 33 "third_party/libpg_query/grammar/statements/variable_reset.y" { PGVariableSetStmt *n = makeNode(PGVariableSetStmt); @@ -15799,38 +15919,38 @@ YYLTYPE yylloc = yyloc_default; n->name = (char*) "transaction_isolation"; (yyval.vsetstmt) = n; } -#line 15803 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 15923 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 95: + case 95: /* CallStmt: CALL_P func_application */ #line 7 "third_party/libpg_query/grammar/statements/call.y" { PGCallStmt *n = makeNode(PGCallStmt); n->func = (yyvsp[0].node); (yyval.node) = (PGNode *) n; } -#line 15813 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 15933 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 98: + case 98: /* select_with_parens: '(' select_no_parens ')' */ #line 52 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = (yyvsp[-1].node); } -#line 15819 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 15939 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 99: + case 99: /* select_with_parens: '(' select_with_parens ')' */ #line 53 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = (yyvsp[-1].node); } -#line 15825 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 15945 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 100: + case 100: /* select_no_parens: simple_select */ #line 68 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = (yyvsp[0].node); } -#line 15831 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 15951 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 101: + case 101: /* select_no_parens: select_clause sort_clause */ #line 70 "third_party/libpg_query/grammar/statements/select.y" { insertSelectOptions((PGSelectStmt *) (yyvsp[-1].node), (yyvsp[0].list), NIL, @@ -15838,10 +15958,10 @@ YYLTYPE yylloc = yyloc_default; yyscanner); (yyval.node) = (yyvsp[-1].node); } -#line 15842 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 15962 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 102: + case 102: /* select_no_parens: select_clause opt_sort_clause for_locking_clause opt_select_limit */ #line 77 "third_party/libpg_query/grammar/statements/select.y" { insertSelectOptions((PGSelectStmt *) (yyvsp[-3].node), (yyvsp[-2].list), (yyvsp[-1].list), @@ -15850,10 +15970,10 @@ YYLTYPE yylloc = yyloc_default; yyscanner); (yyval.node) = (yyvsp[-3].node); } -#line 15854 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 15974 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 103: + case 103: /* select_no_parens: select_clause opt_sort_clause select_limit opt_for_locking_clause */ #line 85 "third_party/libpg_query/grammar/statements/select.y" { insertSelectOptions((PGSelectStmt *) (yyvsp[-3].node), (yyvsp[-2].list), (yyvsp[0].list), @@ -15862,10 +15982,10 @@ YYLTYPE yylloc = yyloc_default; yyscanner); (yyval.node) = (yyvsp[-3].node); } -#line 15866 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 15986 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 104: + case 104: /* select_no_parens: with_clause select_clause */ #line 93 "third_party/libpg_query/grammar/statements/select.y" { insertSelectOptions((PGSelectStmt *) (yyvsp[0].node), NULL, NIL, @@ -15874,10 +15994,10 @@ YYLTYPE yylloc = yyloc_default; yyscanner); (yyval.node) = (yyvsp[0].node); } -#line 15878 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 15998 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 105: + case 105: /* select_no_parens: with_clause select_clause sort_clause */ #line 101 "third_party/libpg_query/grammar/statements/select.y" { insertSelectOptions((PGSelectStmt *) (yyvsp[-1].node), (yyvsp[0].list), NIL, @@ -15886,10 +16006,10 @@ YYLTYPE yylloc = yyloc_default; yyscanner); (yyval.node) = (yyvsp[-1].node); } -#line 15890 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 16010 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 106: + case 106: /* select_no_parens: with_clause select_clause opt_sort_clause for_locking_clause opt_select_limit */ #line 109 "third_party/libpg_query/grammar/statements/select.y" { insertSelectOptions((PGSelectStmt *) (yyvsp[-3].node), (yyvsp[-2].list), (yyvsp[-1].list), @@ -15898,10 +16018,10 @@ YYLTYPE yylloc = yyloc_default; yyscanner); (yyval.node) = (yyvsp[-3].node); } -#line 15902 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 16022 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 107: + case 107: /* select_no_parens: with_clause select_clause opt_sort_clause select_limit opt_for_locking_clause */ #line 117 "third_party/libpg_query/grammar/statements/select.y" { insertSelectOptions((PGSelectStmt *) (yyvsp[-3].node), (yyvsp[-2].list), (yyvsp[0].list), @@ -15910,22 +16030,22 @@ YYLTYPE yylloc = yyloc_default; yyscanner); (yyval.node) = (yyvsp[-3].node); } -#line 15914 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 16034 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 108: + case 108: /* select_clause: simple_select */ #line 127 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = (yyvsp[0].node); } -#line 15920 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 16040 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 109: + case 109: /* select_clause: select_with_parens */ #line 128 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = (yyvsp[0].node); } -#line 15926 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 16046 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 110: + case 110: /* simple_select: SELECT opt_all_clause opt_target_list_opt_comma into_clause from_clause where_clause group_clause having_clause window_clause qualify_clause sample_clause */ #line 158 "third_party/libpg_query/grammar/statements/select.y" { PGSelectStmt *n = makeNode(PGSelectStmt); @@ -15940,10 +16060,10 @@ YYLTYPE yylloc = yyloc_default; n->sampleOptions = (yyvsp[0].node); (yyval.node) = (PGNode *)n; } -#line 15944 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 16064 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 111: + case 111: /* simple_select: SELECT distinct_clause target_list_opt_comma into_clause from_clause where_clause group_clause having_clause window_clause qualify_clause sample_clause */ #line 174 "third_party/libpg_query/grammar/statements/select.y" { PGSelectStmt *n = makeNode(PGSelectStmt); @@ -15959,16 +16079,16 @@ YYLTYPE yylloc = yyloc_default; n->sampleOptions = (yyvsp[0].node); (yyval.node) = (PGNode *)n; } -#line 15963 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 16083 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 112: + case 112: /* simple_select: values_clause_opt_comma */ #line 188 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = (yyvsp[0].node); } -#line 15969 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 16089 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 113: + case 113: /* simple_select: TABLE relation_expr */ #line 190 "third_party/libpg_query/grammar/statements/select.y" { /* same as SELECT * FROM relation_expr */ @@ -15988,34 +16108,34 @@ YYLTYPE yylloc = yyloc_default; n->fromClause = list_make1((yyvsp[0].range)); (yyval.node) = (PGNode *)n; } -#line 15992 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 16112 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 114: + case 114: /* simple_select: select_clause UNION all_or_distinct select_clause */ #line 209 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = makeSetOp(PG_SETOP_UNION, (yyvsp[-1].boolean), (yyvsp[-3].node), (yyvsp[0].node)); } -#line 16000 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 16120 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 115: + case 115: /* simple_select: select_clause INTERSECT all_or_distinct select_clause */ #line 213 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = makeSetOp(PG_SETOP_INTERSECT, (yyvsp[-1].boolean), (yyvsp[-3].node), (yyvsp[0].node)); } -#line 16008 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 16128 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 116: + case 116: /* simple_select: select_clause EXCEPT all_or_distinct select_clause */ #line 217 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = makeSetOp(PG_SETOP_EXCEPT, (yyvsp[-1].boolean), (yyvsp[-3].node), (yyvsp[0].node)); } -#line 16016 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 16136 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 117: + case 117: /* with_clause: WITH cte_list */ #line 234 "third_party/libpg_query/grammar/statements/select.y" { (yyval.with) = makeNode(PGWithClause); @@ -16023,10 +16143,10 @@ YYLTYPE yylloc = yyloc_default; (yyval.with)->recursive = false; (yyval.with)->location = (yylsp[-1]); } -#line 16027 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 16147 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 118: + case 118: /* with_clause: WITH_LA cte_list */ #line 241 "third_party/libpg_query/grammar/statements/select.y" { (yyval.with) = makeNode(PGWithClause); @@ -16034,10 +16154,10 @@ YYLTYPE yylloc = yyloc_default; (yyval.with)->recursive = false; (yyval.with)->location = (yylsp[-1]); } -#line 16038 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 16158 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 119: + case 119: /* with_clause: WITH RECURSIVE cte_list */ #line 248 "third_party/libpg_query/grammar/statements/select.y" { (yyval.with) = makeNode(PGWithClause); @@ -16045,22 +16165,22 @@ YYLTYPE yylloc = yyloc_default; (yyval.with)->recursive = true; (yyval.with)->location = (yylsp[-2]); } -#line 16049 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 16169 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 120: + case 120: /* cte_list: common_table_expr */ #line 257 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = list_make1((yyvsp[0].node)); } -#line 16055 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 16175 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 121: + case 121: /* cte_list: cte_list ',' common_table_expr */ #line 258 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].node)); } -#line 16061 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 16181 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 122: + case 122: /* common_table_expr: name opt_name_list AS '(' PreparableStmt ')' */ #line 262 "third_party/libpg_query/grammar/statements/select.y" { PGCommonTableExpr *n = makeNode(PGCommonTableExpr); @@ -16070,10 +16190,10 @@ YYLTYPE yylloc = yyloc_default; n->location = (yylsp[-5]); (yyval.node) = (PGNode *) n; } -#line 16074 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 16194 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 123: + case 123: /* into_clause: INTO OptTempTableName */ #line 274 "third_party/libpg_query/grammar/statements/select.y" { (yyval.into) = makeNode(PGIntoClause); @@ -16084,52 +16204,52 @@ YYLTYPE yylloc = yyloc_default; (yyval.into)->viewQuery = NULL; (yyval.into)->skipData = false; } -#line 16088 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 16208 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 124: + case 124: /* into_clause: %empty */ #line 284 "third_party/libpg_query/grammar/statements/select.y" { (yyval.into) = NULL; } -#line 16094 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 16214 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 125: + case 125: /* OptTempTableName: TEMPORARY opt_table qualified_name */ #line 293 "third_party/libpg_query/grammar/statements/select.y" { (yyval.range) = (yyvsp[0].range); (yyval.range)->relpersistence = PG_RELPERSISTENCE_TEMP; } -#line 16103 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 16223 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 126: + case 126: /* OptTempTableName: TEMP opt_table qualified_name */ #line 298 "third_party/libpg_query/grammar/statements/select.y" { (yyval.range) = (yyvsp[0].range); (yyval.range)->relpersistence = PG_RELPERSISTENCE_TEMP; } -#line 16112 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 16232 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 127: + case 127: /* OptTempTableName: LOCAL TEMPORARY opt_table qualified_name */ #line 303 "third_party/libpg_query/grammar/statements/select.y" { (yyval.range) = (yyvsp[0].range); (yyval.range)->relpersistence = PG_RELPERSISTENCE_TEMP; } -#line 16121 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 16241 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 128: + case 128: /* OptTempTableName: LOCAL TEMP opt_table qualified_name */ #line 308 "third_party/libpg_query/grammar/statements/select.y" { (yyval.range) = (yyvsp[0].range); (yyval.range)->relpersistence = PG_RELPERSISTENCE_TEMP; } -#line 16130 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 16250 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 129: + case 129: /* OptTempTableName: GLOBAL TEMPORARY opt_table qualified_name */ #line 313 "third_party/libpg_query/grammar/statements/select.y" { ereport(PGWARNING, @@ -16138,10 +16258,10 @@ YYLTYPE yylloc = yyloc_default; (yyval.range) = (yyvsp[0].range); (yyval.range)->relpersistence = PG_RELPERSISTENCE_TEMP; } -#line 16142 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 16262 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 130: + case 130: /* OptTempTableName: GLOBAL TEMP opt_table qualified_name */ #line 321 "third_party/libpg_query/grammar/statements/select.y" { ereport(PGWARNING, @@ -16150,127 +16270,127 @@ YYLTYPE yylloc = yyloc_default; (yyval.range) = (yyvsp[0].range); (yyval.range)->relpersistence = PG_RELPERSISTENCE_TEMP; } -#line 16154 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 16274 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 131: + case 131: /* OptTempTableName: UNLOGGED opt_table qualified_name */ #line 329 "third_party/libpg_query/grammar/statements/select.y" { (yyval.range) = (yyvsp[0].range); (yyval.range)->relpersistence = PG_RELPERSISTENCE_UNLOGGED; } -#line 16163 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 16283 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 132: + case 132: /* OptTempTableName: TABLE qualified_name */ #line 334 "third_party/libpg_query/grammar/statements/select.y" { (yyval.range) = (yyvsp[0].range); (yyval.range)->relpersistence = RELPERSISTENCE_PERMANENT; } -#line 16172 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 16292 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 133: + case 133: /* OptTempTableName: qualified_name */ #line 339 "third_party/libpg_query/grammar/statements/select.y" { (yyval.range) = (yyvsp[0].range); (yyval.range)->relpersistence = RELPERSISTENCE_PERMANENT; } -#line 16181 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 16301 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 134: + case 134: /* opt_table: TABLE */ #line 345 "third_party/libpg_query/grammar/statements/select.y" {} -#line 16187 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 16307 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 135: + case 135: /* opt_table: %empty */ #line 346 "third_party/libpg_query/grammar/statements/select.y" {} -#line 16193 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 16313 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 136: + case 136: /* all_or_distinct: ALL */ #line 350 "third_party/libpg_query/grammar/statements/select.y" { (yyval.boolean) = true; } -#line 16199 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 16319 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 137: + case 137: /* all_or_distinct: DISTINCT */ #line 351 "third_party/libpg_query/grammar/statements/select.y" { (yyval.boolean) = false; } -#line 16205 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 16325 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 138: + case 138: /* all_or_distinct: %empty */ #line 352 "third_party/libpg_query/grammar/statements/select.y" { (yyval.boolean) = false; } -#line 16211 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 16331 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 139: + case 139: /* distinct_clause: DISTINCT */ #line 359 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = list_make1(NIL); } -#line 16217 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 16337 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 140: + case 140: /* distinct_clause: DISTINCT ON '(' expr_list_opt_comma ')' */ #line 360 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = (yyvsp[-1].list); } -#line 16223 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 16343 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 141: + case 141: /* opt_all_clause: ALL */ #line 364 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = NIL;} -#line 16229 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 16349 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 142: + case 142: /* opt_all_clause: %empty */ #line 365 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = NIL; } -#line 16235 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 16355 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 143: + case 143: /* opt_ignore_nulls: IGNORE_P NULLS_P */ #line 369 "third_party/libpg_query/grammar/statements/select.y" { (yyval.boolean) = true;} -#line 16241 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 16361 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 144: + case 144: /* opt_ignore_nulls: RESPECT_P NULLS_P */ #line 370 "third_party/libpg_query/grammar/statements/select.y" { (yyval.boolean) = false;} -#line 16247 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 16367 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 145: + case 145: /* opt_ignore_nulls: %empty */ #line 371 "third_party/libpg_query/grammar/statements/select.y" { (yyval.boolean) = false; } -#line 16253 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 16373 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 146: + case 146: /* opt_sort_clause: sort_clause */ #line 375 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = (yyvsp[0].list);} -#line 16259 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 16379 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 147: + case 147: /* opt_sort_clause: %empty */ #line 376 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = NIL; } -#line 16265 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 16385 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 148: + case 148: /* sort_clause: ORDER BY sortby_list */ #line 380 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = (yyvsp[0].list); } -#line 16271 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 16391 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 149: + case 149: /* sort_clause: ORDER BY ALL opt_asc_desc opt_nulls_order */ #line 382 "third_party/libpg_query/grammar/statements/select.y" { PGSortBy *sort = makeNode(PGSortBy); @@ -16281,10 +16401,10 @@ YYLTYPE yylloc = yyloc_default; sort->location = -1; /* no operator */ (yyval.list) = list_make1(sort); } -#line 16285 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 16405 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 150: + case 150: /* sort_clause: ORDER BY '*' opt_asc_desc opt_nulls_order */ #line 392 "third_party/libpg_query/grammar/statements/select.y" { PGSortBy *sort = makeNode(PGSortBy); @@ -16295,22 +16415,22 @@ YYLTYPE yylloc = yyloc_default; sort->location = -1; /* no operator */ (yyval.list) = list_make1(sort); } -#line 16299 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 16419 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 151: + case 151: /* sortby_list: sortby */ #line 404 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = list_make1((yyvsp[0].sortby)); } -#line 16305 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 16425 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 152: + case 152: /* sortby_list: sortby_list ',' sortby */ #line 405 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].sortby)); } -#line 16311 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 16431 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 153: + case 153: /* sortby: a_expr USING qual_all_Op opt_nulls_order */ #line 409 "third_party/libpg_query/grammar/statements/select.y" { (yyval.sortby) = makeNode(PGSortBy); @@ -16320,10 +16440,10 @@ YYLTYPE yylloc = yyloc_default; (yyval.sortby)->useOp = (yyvsp[-1].list); (yyval.sortby)->location = (yylsp[-1]); } -#line 16324 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 16444 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 154: + case 154: /* sortby: a_expr opt_asc_desc opt_nulls_order */ #line 418 "third_party/libpg_query/grammar/statements/select.y" { (yyval.sortby) = makeNode(PGSortBy); @@ -16333,88 +16453,88 @@ YYLTYPE yylloc = yyloc_default; (yyval.sortby)->useOp = NIL; (yyval.sortby)->location = -1; /* no operator */ } -#line 16337 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 16457 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 155: + case 155: /* opt_asc_desc: ASC_P */ #line 428 "third_party/libpg_query/grammar/statements/select.y" { (yyval.sortorder) = PG_SORTBY_ASC; } -#line 16343 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 16463 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 156: + case 156: /* opt_asc_desc: DESC_P */ #line 429 "third_party/libpg_query/grammar/statements/select.y" { (yyval.sortorder) = PG_SORTBY_DESC; } -#line 16349 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 16469 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 157: + case 157: /* opt_asc_desc: %empty */ #line 430 "third_party/libpg_query/grammar/statements/select.y" { (yyval.sortorder) = PG_SORTBY_DEFAULT; } -#line 16355 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 16475 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 158: + case 158: /* opt_nulls_order: NULLS_LA FIRST_P */ #line 433 "third_party/libpg_query/grammar/statements/select.y" { (yyval.nullorder) = PG_SORTBY_NULLS_FIRST; } -#line 16361 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 16481 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 159: + case 159: /* opt_nulls_order: NULLS_LA LAST_P */ #line 434 "third_party/libpg_query/grammar/statements/select.y" { (yyval.nullorder) = PG_SORTBY_NULLS_LAST; } -#line 16367 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 16487 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 160: + case 160: /* opt_nulls_order: %empty */ #line 435 "third_party/libpg_query/grammar/statements/select.y" { (yyval.nullorder) = PG_SORTBY_NULLS_DEFAULT; } -#line 16373 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 16493 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 161: + case 161: /* select_limit: limit_clause offset_clause */ #line 439 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = list_make2((yyvsp[0].node), (yyvsp[-1].node)); } -#line 16379 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 16499 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 162: + case 162: /* select_limit: offset_clause limit_clause */ #line 440 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = list_make2((yyvsp[-1].node), (yyvsp[0].node)); } -#line 16385 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 16505 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 163: + case 163: /* select_limit: limit_clause */ #line 441 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = list_make2(NULL, (yyvsp[0].node)); } -#line 16391 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 16511 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 164: + case 164: /* select_limit: offset_clause */ #line 442 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = list_make2((yyvsp[0].node), NULL); } -#line 16397 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 16517 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 165: + case 165: /* opt_select_limit: select_limit */ #line 446 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = (yyvsp[0].list); } -#line 16403 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 16523 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 166: + case 166: /* opt_select_limit: %empty */ #line 447 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = list_make2(NULL,NULL); } -#line 16409 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 16529 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 167: + case 167: /* limit_clause: LIMIT select_limit_value */ #line 452 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = (yyvsp[0].node); } -#line 16415 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 16535 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 168: + case 168: /* limit_clause: LIMIT select_limit_value ',' select_offset_value */ #line 454 "third_party/libpg_query/grammar/statements/select.y" { /* Disabled because it was too confusing, bjm 2002-02-18 */ @@ -16424,455 +16544,455 @@ YYLTYPE yylloc = yyloc_default; errhint("Use separate LIMIT and OFFSET clauses."), parser_errposition((yylsp[-3])))); } -#line 16428 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 16548 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 169: + case 169: /* limit_clause: FETCH first_or_next select_fetch_first_value row_or_rows ONLY */ #line 470 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = (yyvsp[-2].node); } -#line 16434 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 16554 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 170: + case 170: /* limit_clause: FETCH first_or_next row_or_rows ONLY */ #line 472 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = makeIntConst(1, -1); } -#line 16440 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 16560 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 171: + case 171: /* offset_clause: OFFSET select_offset_value */ #line 477 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = (yyvsp[0].node); } -#line 16446 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 16566 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 172: + case 172: /* offset_clause: OFFSET select_fetch_first_value row_or_rows */ #line 480 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = (yyvsp[-1].node); } -#line 16452 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 16572 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 173: + case 173: /* sample_count: FCONST '%' */ #line 488 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = makeSampleSize(makeFloat((yyvsp[-1].str)), true); } -#line 16460 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 16580 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 174: + case 174: /* sample_count: ICONST '%' */ #line 492 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = makeSampleSize(makeInteger((yyvsp[-1].ival)), true); } -#line 16468 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 16588 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 175: + case 175: /* sample_count: FCONST PERCENT */ #line 496 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = makeSampleSize(makeFloat((yyvsp[-1].str)), true); } -#line 16476 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 16596 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 176: + case 176: /* sample_count: ICONST PERCENT */ #line 500 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = makeSampleSize(makeInteger((yyvsp[-1].ival)), true); } -#line 16484 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 16604 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 177: + case 177: /* sample_count: ICONST */ #line 504 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = makeSampleSize(makeInteger((yyvsp[0].ival)), false); } -#line 16492 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 16612 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 178: + case 178: /* sample_count: ICONST ROWS */ #line 508 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = makeSampleSize(makeInteger((yyvsp[-1].ival)), false); } -#line 16500 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 16620 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 179: + case 179: /* sample_clause: USING SAMPLE tablesample_entry */ #line 515 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = (yyvsp[0].node); } -#line 16508 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 16628 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 180: + case 180: /* sample_clause: %empty */ #line 519 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = NULL; } -#line 16514 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 16634 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 181: + case 181: /* opt_sample_func: ColId */ #line 526 "third_party/libpg_query/grammar/statements/select.y" { (yyval.str) = (yyvsp[0].str); } -#line 16520 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 16640 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 182: + case 182: /* opt_sample_func: %empty */ #line 527 "third_party/libpg_query/grammar/statements/select.y" { (yyval.str) = NULL; } -#line 16526 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 16646 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 183: + case 183: /* tablesample_entry: opt_sample_func '(' sample_count ')' opt_repeatable_clause */ #line 532 "third_party/libpg_query/grammar/statements/select.y" { int seed = (yyvsp[0].ival); (yyval.node) = makeSampleOptions((yyvsp[-2].node), (yyvsp[-4].str), &seed, (yylsp[-4])); } -#line 16535 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 16655 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 184: + case 184: /* tablesample_entry: sample_count */ #line 537 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = makeSampleOptions((yyvsp[0].node), NULL, NULL, (yylsp[0])); } -#line 16543 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 16663 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 185: + case 185: /* tablesample_entry: sample_count '(' ColId ')' */ #line 541 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = makeSampleOptions((yyvsp[-3].node), (yyvsp[-1].str), NULL, (yylsp[-3])); } -#line 16551 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 16671 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 186: + case 186: /* tablesample_entry: sample_count '(' ColId ',' ICONST ')' */ #line 545 "third_party/libpg_query/grammar/statements/select.y" { int seed = (yyvsp[-1].ival); (yyval.node) = makeSampleOptions((yyvsp[-5].node), (yyvsp[-3].str), &seed, (yylsp[-5])); } -#line 16560 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 16680 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 187: + case 187: /* tablesample_clause: TABLESAMPLE tablesample_entry */ #line 553 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = (yyvsp[0].node); } -#line 16568 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 16688 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 188: + case 188: /* opt_tablesample_clause: tablesample_clause */ #line 559 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = (yyvsp[0].node); } -#line 16574 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 16694 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 189: + case 189: /* opt_tablesample_clause: %empty */ #line 560 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = NULL; } -#line 16580 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 16700 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 190: + case 190: /* opt_repeatable_clause: REPEATABLE '(' ICONST ')' */ #line 565 "third_party/libpg_query/grammar/statements/select.y" { (yyval.ival) = (yyvsp[-1].ival); } -#line 16586 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 16706 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 191: + case 191: /* opt_repeatable_clause: %empty */ #line 566 "third_party/libpg_query/grammar/statements/select.y" { (yyval.ival) = -1; } -#line 16592 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 16712 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 192: + case 192: /* select_limit_value: a_expr */ #line 570 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = (yyvsp[0].node); } -#line 16598 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 16718 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 193: + case 193: /* select_limit_value: ALL */ #line 572 "third_party/libpg_query/grammar/statements/select.y" { /* LIMIT ALL is represented as a NULL constant */ (yyval.node) = makeNullAConst((yylsp[0])); } -#line 16607 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 16727 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 194: + case 194: /* select_limit_value: a_expr '%' */ #line 577 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = makeLimitPercent((yyvsp[-1].node)); } -#line 16613 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 16733 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 195: + case 195: /* select_limit_value: FCONST PERCENT */ #line 579 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = makeLimitPercent(makeFloatConst((yyvsp[-1].str),(yylsp[-1]))); } -#line 16619 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 16739 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 196: + case 196: /* select_limit_value: ICONST PERCENT */ #line 581 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = makeLimitPercent(makeIntConst((yyvsp[-1].ival),(yylsp[-1]))); } -#line 16625 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 16745 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 197: + case 197: /* select_offset_value: a_expr */ #line 585 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = (yyvsp[0].node); } -#line 16631 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 16751 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 198: + case 198: /* select_fetch_first_value: c_expr */ #line 605 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = (yyvsp[0].node); } -#line 16637 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 16757 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 199: + case 199: /* select_fetch_first_value: '+' I_or_F_const */ #line 607 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, "+", NULL, (yyvsp[0].node), (yylsp[-1])); } -#line 16643 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 16763 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 200: + case 200: /* select_fetch_first_value: '-' I_or_F_const */ #line 609 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = doNegate((yyvsp[0].node), (yylsp[-1])); } -#line 16649 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 16769 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 201: + case 201: /* I_or_F_const: Iconst */ #line 613 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = makeIntConst((yyvsp[0].ival),(yylsp[0])); } -#line 16655 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 16775 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 202: + case 202: /* I_or_F_const: FCONST */ #line 614 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = makeFloatConst((yyvsp[0].str),(yylsp[0])); } -#line 16661 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 16781 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 203: + case 203: /* row_or_rows: ROW */ #line 618 "third_party/libpg_query/grammar/statements/select.y" { (yyval.ival) = 0; } -#line 16667 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 16787 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 204: + case 204: /* row_or_rows: ROWS */ #line 619 "third_party/libpg_query/grammar/statements/select.y" { (yyval.ival) = 0; } -#line 16673 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 16793 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 205: + case 205: /* first_or_next: FIRST_P */ #line 622 "third_party/libpg_query/grammar/statements/select.y" { (yyval.ival) = 0; } -#line 16679 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 16799 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 206: + case 206: /* first_or_next: NEXT */ #line 623 "third_party/libpg_query/grammar/statements/select.y" { (yyval.ival) = 0; } -#line 16685 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 16805 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 207: + case 207: /* group_clause: GROUP_P BY group_by_list_opt_comma */ #line 648 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = (yyvsp[0].list); } -#line 16691 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 16811 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 208: + case 208: /* group_clause: GROUP_P BY ALL */ #line 650 "third_party/libpg_query/grammar/statements/select.y" { PGNode *node = (PGNode *) makeGroupingSet(GROUPING_SET_ALL, NIL, (yylsp[0])); (yyval.list) = list_make1(node); } -#line 16700 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 16820 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 209: + case 209: /* group_clause: GROUP_P BY '*' */ #line 655 "third_party/libpg_query/grammar/statements/select.y" { PGNode *node = (PGNode *) makeGroupingSet(GROUPING_SET_ALL, NIL, (yylsp[0])); (yyval.list) = list_make1(node); } -#line 16709 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 16829 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 210: + case 210: /* group_clause: %empty */ #line 659 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = NIL; } -#line 16715 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 16835 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 211: + case 211: /* group_by_list: group_by_item */ #line 663 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = list_make1((yyvsp[0].node)); } -#line 16721 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 16841 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 212: + case 212: /* group_by_list: group_by_list ',' group_by_item */ #line 664 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = lappend((yyvsp[-2].list),(yyvsp[0].node)); } -#line 16727 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 16847 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 213: + case 213: /* group_by_list_opt_comma: group_by_list */ #line 668 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = (yyvsp[0].list); } -#line 16733 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 16853 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 214: + case 214: /* group_by_list_opt_comma: group_by_list ',' */ #line 669 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = (yyvsp[-1].list); } -#line 16739 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 16859 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 215: + case 215: /* group_by_item: a_expr */ #line 673 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = (yyvsp[0].node); } -#line 16745 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 16865 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 216: + case 216: /* group_by_item: empty_grouping_set */ #line 674 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = (yyvsp[0].node); } -#line 16751 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 16871 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 217: + case 217: /* group_by_item: cube_clause */ #line 675 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = (yyvsp[0].node); } -#line 16757 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 16877 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 218: + case 218: /* group_by_item: rollup_clause */ #line 676 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = (yyvsp[0].node); } -#line 16763 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 16883 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 219: + case 219: /* group_by_item: grouping_sets_clause */ #line 677 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = (yyvsp[0].node); } -#line 16769 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 16889 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 220: + case 220: /* empty_grouping_set: '(' ')' */ #line 682 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = (PGNode *) makeGroupingSet(GROUPING_SET_EMPTY, NIL, (yylsp[-1])); } -#line 16777 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 16897 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 221: + case 221: /* rollup_clause: ROLLUP '(' expr_list_opt_comma ')' */ #line 695 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = (PGNode *) makeGroupingSet(GROUPING_SET_ROLLUP, (yyvsp[-1].list), (yylsp[-3])); } -#line 16785 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 16905 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 222: + case 222: /* cube_clause: CUBE '(' expr_list_opt_comma ')' */ #line 702 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = (PGNode *) makeGroupingSet(GROUPING_SET_CUBE, (yyvsp[-1].list), (yylsp[-3])); } -#line 16793 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 16913 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 223: + case 223: /* grouping_sets_clause: GROUPING SETS '(' group_by_list_opt_comma ')' */ #line 709 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = (PGNode *) makeGroupingSet(GROUPING_SET_SETS, (yyvsp[-1].list), (yylsp[-4])); } -#line 16801 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 16921 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 224: + case 224: /* grouping_or_grouping_id: GROUPING */ #line 715 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = NULL; } -#line 16807 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 16927 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 225: + case 225: /* grouping_or_grouping_id: GROUPING_ID */ #line 716 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = NULL; } -#line 16813 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 16933 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 226: + case 226: /* having_clause: HAVING a_expr */ #line 720 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = (yyvsp[0].node); } -#line 16819 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 16939 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 227: + case 227: /* having_clause: %empty */ #line 721 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = NULL; } -#line 16825 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 16945 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 228: + case 228: /* qualify_clause: QUALIFY a_expr */ #line 725 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = (yyvsp[0].node); } -#line 16831 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 16951 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 229: + case 229: /* qualify_clause: %empty */ #line 726 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = NULL; } -#line 16837 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 16957 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 230: + case 230: /* for_locking_clause: for_locking_items */ #line 730 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = (yyvsp[0].list); } -#line 16843 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 16963 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 231: + case 231: /* for_locking_clause: FOR READ_P ONLY */ #line 731 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = NIL; } -#line 16849 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 16969 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 232: + case 232: /* opt_for_locking_clause: for_locking_clause */ #line 735 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = (yyvsp[0].list); } -#line 16855 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 16975 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 233: + case 233: /* opt_for_locking_clause: %empty */ #line 736 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = NIL; } -#line 16861 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 16981 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 234: + case 234: /* for_locking_items: for_locking_item */ #line 740 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = list_make1((yyvsp[0].node)); } -#line 16867 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 16987 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 235: + case 235: /* for_locking_items: for_locking_items for_locking_item */ #line 741 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = lappend((yyvsp[-1].list), (yyvsp[0].node)); } -#line 16873 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 16993 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 236: + case 236: /* for_locking_item: for_locking_strength locked_rels_list opt_nowait_or_skip */ #line 746 "third_party/libpg_query/grammar/statements/select.y" { PGLockingClause *n = makeNode(PGLockingClause); @@ -16881,142 +17001,142 @@ YYLTYPE yylloc = yyloc_default; n->waitPolicy = (yyvsp[0].lockwaitpolicy); (yyval.node) = (PGNode *) n; } -#line 16885 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 17005 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 237: + case 237: /* for_locking_strength: FOR UPDATE */ #line 756 "third_party/libpg_query/grammar/statements/select.y" { (yyval.lockstrength) = LCS_FORUPDATE; } -#line 16891 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 17011 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 238: + case 238: /* for_locking_strength: FOR NO KEY UPDATE */ #line 757 "third_party/libpg_query/grammar/statements/select.y" { (yyval.lockstrength) = PG_LCS_FORNOKEYUPDATE; } -#line 16897 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 17017 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 239: + case 239: /* for_locking_strength: FOR SHARE */ #line 758 "third_party/libpg_query/grammar/statements/select.y" { (yyval.lockstrength) = PG_LCS_FORSHARE; } -#line 16903 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 17023 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 240: + case 240: /* for_locking_strength: FOR KEY SHARE */ #line 759 "third_party/libpg_query/grammar/statements/select.y" { (yyval.lockstrength) = PG_LCS_FORKEYSHARE; } -#line 16909 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 17029 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 241: + case 241: /* locked_rels_list: OF qualified_name_list */ #line 763 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = (yyvsp[0].list); } -#line 16915 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 17035 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 242: + case 242: /* locked_rels_list: %empty */ #line 764 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = NIL; } -#line 16921 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 17041 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 243: + case 243: /* opt_nowait_or_skip: NOWAIT */ #line 769 "third_party/libpg_query/grammar/statements/select.y" { (yyval.lockwaitpolicy) = LockWaitError; } -#line 16927 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 17047 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 244: + case 244: /* opt_nowait_or_skip: SKIP LOCKED */ #line 770 "third_party/libpg_query/grammar/statements/select.y" { (yyval.lockwaitpolicy) = PGLockWaitSkip; } -#line 16933 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 17053 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 245: + case 245: /* opt_nowait_or_skip: %empty */ #line 771 "third_party/libpg_query/grammar/statements/select.y" { (yyval.lockwaitpolicy) = PGLockWaitBlock; } -#line 16939 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 17059 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 246: + case 246: /* values_clause: VALUES '(' expr_list_opt_comma ')' */ #line 781 "third_party/libpg_query/grammar/statements/select.y" { PGSelectStmt *n = makeNode(PGSelectStmt); n->valuesLists = list_make1((yyvsp[-1].list)); (yyval.node) = (PGNode *) n; } -#line 16949 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 17069 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 247: + case 247: /* values_clause: values_clause ',' '(' expr_list_opt_comma ')' */ #line 787 "third_party/libpg_query/grammar/statements/select.y" { PGSelectStmt *n = (PGSelectStmt *) (yyvsp[-4].node); n->valuesLists = lappend(n->valuesLists, (yyvsp[-1].list)); (yyval.node) = (PGNode *) n; } -#line 16959 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 17079 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 248: + case 248: /* values_clause_opt_comma: values_clause */ #line 795 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = (yyvsp[0].node); } -#line 16965 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 17085 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 249: + case 249: /* values_clause_opt_comma: values_clause ',' */ #line 796 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = (yyvsp[-1].node); } -#line 16971 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 17091 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 250: + case 250: /* from_clause: FROM from_list_opt_comma */ #line 809 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = (yyvsp[0].list); } -#line 16977 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 17097 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 251: + case 251: /* from_clause: %empty */ #line 810 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = NIL; } -#line 16983 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 17103 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 252: + case 252: /* from_list: table_ref */ #line 814 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = list_make1((yyvsp[0].node)); } -#line 16989 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 17109 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 253: + case 253: /* from_list: from_list ',' table_ref */ #line 815 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].node)); } -#line 16995 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 17115 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 254: + case 254: /* from_list_opt_comma: from_list */ #line 819 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = (yyvsp[0].list); } -#line 17001 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 17121 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 255: + case 255: /* from_list_opt_comma: from_list ',' */ #line 820 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = (yyvsp[-1].list); } -#line 17007 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 17127 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 256: + case 256: /* table_ref: relation_expr opt_alias_clause opt_tablesample_clause */ #line 827 "third_party/libpg_query/grammar/statements/select.y" { (yyvsp[-2].range)->alias = (yyvsp[-1].alias); (yyvsp[-2].range)->sample = (yyvsp[0].node); (yyval.node) = (PGNode *) (yyvsp[-2].range); } -#line 17017 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 17137 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 257: + case 257: /* table_ref: func_table func_alias_clause opt_tablesample_clause */ #line 833 "third_party/libpg_query/grammar/statements/select.y" { PGRangeFunction *n = (PGRangeFunction *) (yyvsp[-2].node); @@ -17025,10 +17145,10 @@ YYLTYPE yylloc = yyloc_default; n->sample = (yyvsp[0].node); (yyval.node) = (PGNode *) n; } -#line 17029 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 17149 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 258: + case 258: /* table_ref: values_clause_opt_comma alias_clause opt_tablesample_clause */ #line 841 "third_party/libpg_query/grammar/statements/select.y" { PGRangeSubselect *n = makeNode(PGRangeSubselect); @@ -17038,10 +17158,10 @@ YYLTYPE yylloc = yyloc_default; n->sample = (yyvsp[0].node); (yyval.node) = (PGNode *) n; } -#line 17042 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 17162 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 259: + case 259: /* table_ref: LATERAL_P func_table func_alias_clause */ #line 850 "third_party/libpg_query/grammar/statements/select.y" { PGRangeFunction *n = (PGRangeFunction *) (yyvsp[-1].node); @@ -17050,10 +17170,10 @@ YYLTYPE yylloc = yyloc_default; n->coldeflist = (PGList*) lsecond((yyvsp[0].list)); (yyval.node) = (PGNode *) n; } -#line 17054 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 17174 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 260: + case 260: /* table_ref: select_with_parens opt_alias_clause opt_tablesample_clause */ #line 858 "third_party/libpg_query/grammar/statements/select.y" { PGRangeSubselect *n = makeNode(PGRangeSubselect); @@ -17063,10 +17183,10 @@ YYLTYPE yylloc = yyloc_default; n->sample = (yyvsp[0].node); (yyval.node) = (PGNode *) n; } -#line 17067 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 17187 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 261: + case 261: /* table_ref: LATERAL_P select_with_parens opt_alias_clause */ #line 867 "third_party/libpg_query/grammar/statements/select.y" { PGRangeSubselect *n = makeNode(PGRangeSubselect); @@ -17076,35 +17196,35 @@ YYLTYPE yylloc = yyloc_default; n->sample = NULL; (yyval.node) = (PGNode *) n; } -#line 17080 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 17200 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 262: + case 262: /* table_ref: joined_table */ #line 876 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = (PGNode *) (yyvsp[0].jexpr); } -#line 17088 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 17208 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 263: + case 263: /* table_ref: '(' joined_table ')' alias_clause */ #line 880 "third_party/libpg_query/grammar/statements/select.y" { (yyvsp[-2].jexpr)->alias = (yyvsp[0].alias); (yyval.node) = (PGNode *) (yyvsp[-2].jexpr); } -#line 17097 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 17217 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 264: + case 264: /* joined_table: '(' joined_table ')' */ #line 906 "third_party/libpg_query/grammar/statements/select.y" { (yyval.jexpr) = (yyvsp[-1].jexpr); } -#line 17105 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 17225 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 265: + case 265: /* joined_table: table_ref CROSS JOIN table_ref */ #line 910 "third_party/libpg_query/grammar/statements/select.y" { /* CROSS JOIN is same as unqualified inner join */ @@ -17118,10 +17238,10 @@ YYLTYPE yylloc = yyloc_default; n->location = (yylsp[-2]); (yyval.jexpr) = n; } -#line 17122 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 17242 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 266: + case 266: /* joined_table: table_ref join_type JOIN table_ref join_qual */ #line 923 "third_party/libpg_query/grammar/statements/select.y" { PGJoinExpr *n = makeNode(PGJoinExpr); @@ -17136,10 +17256,10 @@ YYLTYPE yylloc = yyloc_default; n->location = (yylsp[-3]); (yyval.jexpr) = n; } -#line 17140 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 17260 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 267: + case 267: /* joined_table: table_ref JOIN table_ref join_qual */ #line 937 "third_party/libpg_query/grammar/statements/select.y" { /* letting join_type reduce to empty doesn't work */ @@ -17155,10 +17275,10 @@ YYLTYPE yylloc = yyloc_default; n->location = (yylsp[-2]); (yyval.jexpr) = n; } -#line 17159 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 17279 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 268: + case 268: /* joined_table: table_ref NATURAL join_type JOIN table_ref */ #line 952 "third_party/libpg_query/grammar/statements/select.y" { PGJoinExpr *n = makeNode(PGJoinExpr); @@ -17171,10 +17291,10 @@ YYLTYPE yylloc = yyloc_default; n->location = (yylsp[-3]); (yyval.jexpr) = n; } -#line 17175 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 17295 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 269: + case 269: /* joined_table: table_ref NATURAL JOIN table_ref */ #line 964 "third_party/libpg_query/grammar/statements/select.y" { /* letting join_type reduce to empty doesn't work */ @@ -17188,152 +17308,152 @@ YYLTYPE yylloc = yyloc_default; n->location = (yylsp[-2]); (yyval.jexpr) = n; } -#line 17192 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 17312 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 270: + case 270: /* alias_clause: AS ColIdOrString '(' name_list_opt_comma ')' */ #line 980 "third_party/libpg_query/grammar/statements/select.y" { (yyval.alias) = makeNode(PGAlias); (yyval.alias)->aliasname = (yyvsp[-3].str); (yyval.alias)->colnames = (yyvsp[-1].list); } -#line 17202 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 17322 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 271: + case 271: /* alias_clause: AS ColIdOrString */ #line 986 "third_party/libpg_query/grammar/statements/select.y" { (yyval.alias) = makeNode(PGAlias); (yyval.alias)->aliasname = (yyvsp[0].str); } -#line 17211 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 17331 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 272: + case 272: /* alias_clause: ColId '(' name_list_opt_comma ')' */ #line 991 "third_party/libpg_query/grammar/statements/select.y" { (yyval.alias) = makeNode(PGAlias); (yyval.alias)->aliasname = (yyvsp[-3].str); (yyval.alias)->colnames = (yyvsp[-1].list); } -#line 17221 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 17341 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 273: + case 273: /* alias_clause: ColId */ #line 997 "third_party/libpg_query/grammar/statements/select.y" { (yyval.alias) = makeNode(PGAlias); (yyval.alias)->aliasname = (yyvsp[0].str); } -#line 17230 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 17350 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 274: + case 274: /* opt_alias_clause: alias_clause */ #line 1003 "third_party/libpg_query/grammar/statements/select.y" { (yyval.alias) = (yyvsp[0].alias); } -#line 17236 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 17356 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 275: + case 275: /* opt_alias_clause: %empty */ #line 1004 "third_party/libpg_query/grammar/statements/select.y" { (yyval.alias) = NULL; } -#line 17242 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 17362 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 276: + case 276: /* func_alias_clause: alias_clause */ #line 1013 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = list_make2((yyvsp[0].alias), NIL); } -#line 17250 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 17370 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 277: + case 277: /* func_alias_clause: AS '(' TableFuncElementList ')' */ #line 1017 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = list_make2(NULL, (yyvsp[-1].list)); } -#line 17258 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 17378 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 278: + case 278: /* func_alias_clause: AS ColIdOrString '(' TableFuncElementList ')' */ #line 1021 "third_party/libpg_query/grammar/statements/select.y" { PGAlias *a = makeNode(PGAlias); a->aliasname = (yyvsp[-3].str); (yyval.list) = list_make2(a, (yyvsp[-1].list)); } -#line 17268 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 17388 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 279: + case 279: /* func_alias_clause: ColId '(' TableFuncElementList ')' */ #line 1027 "third_party/libpg_query/grammar/statements/select.y" { PGAlias *a = makeNode(PGAlias); a->aliasname = (yyvsp[-3].str); (yyval.list) = list_make2(a, (yyvsp[-1].list)); } -#line 17278 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 17398 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 280: + case 280: /* func_alias_clause: %empty */ #line 1033 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = list_make2(NULL, NIL); } -#line 17286 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 17406 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 281: + case 281: /* join_type: FULL join_outer */ #line 1038 "third_party/libpg_query/grammar/statements/select.y" { (yyval.jtype) = PG_JOIN_FULL; } -#line 17292 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 17412 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 282: + case 282: /* join_type: LEFT join_outer */ #line 1039 "third_party/libpg_query/grammar/statements/select.y" { (yyval.jtype) = PG_JOIN_LEFT; } -#line 17298 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 17418 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 283: + case 283: /* join_type: RIGHT join_outer */ #line 1040 "third_party/libpg_query/grammar/statements/select.y" { (yyval.jtype) = PG_JOIN_RIGHT; } -#line 17304 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 17424 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 284: + case 284: /* join_type: INNER_P */ #line 1041 "third_party/libpg_query/grammar/statements/select.y" { (yyval.jtype) = PG_JOIN_INNER; } -#line 17310 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 17430 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 285: + case 285: /* join_outer: OUTER_P */ #line 1045 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = NULL; } -#line 17316 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 17436 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 286: + case 286: /* join_outer: %empty */ #line 1046 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = NULL; } -#line 17322 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 17442 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 287: + case 287: /* join_qual: USING '(' name_list_opt_comma ')' */ #line 1058 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = (PGNode *) (yyvsp[-1].list); } -#line 17328 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 17448 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 288: + case 288: /* join_qual: ON a_expr */ #line 1059 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = (yyvsp[0].node); } -#line 17334 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 17454 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 289: + case 289: /* relation_expr: qualified_name */ #line 1065 "third_party/libpg_query/grammar/statements/select.y" { /* inheritance query, implicitly */ @@ -17341,10 +17461,10 @@ YYLTYPE yylloc = yyloc_default; (yyval.range)->inh = true; (yyval.range)->alias = NULL; } -#line 17345 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 17465 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 290: + case 290: /* relation_expr: qualified_name '*' */ #line 1072 "third_party/libpg_query/grammar/statements/select.y" { /* inheritance query, explicitly */ @@ -17352,10 +17472,10 @@ YYLTYPE yylloc = yyloc_default; (yyval.range)->inh = true; (yyval.range)->alias = NULL; } -#line 17356 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 17476 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 291: + case 291: /* relation_expr: ONLY qualified_name */ #line 1079 "third_party/libpg_query/grammar/statements/select.y" { /* no inheritance */ @@ -17363,10 +17483,10 @@ YYLTYPE yylloc = yyloc_default; (yyval.range)->inh = false; (yyval.range)->alias = NULL; } -#line 17367 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 17487 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 292: + case 292: /* relation_expr: ONLY '(' qualified_name ')' */ #line 1086 "third_party/libpg_query/grammar/statements/select.y" { /* no inheritance, SQL99-style syntax */ @@ -17374,10 +17494,10 @@ YYLTYPE yylloc = yyloc_default; (yyval.range)->inh = false; (yyval.range)->alias = NULL; } -#line 17378 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 17498 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 293: + case 293: /* func_table: func_expr_windowless opt_ordinality */ #line 1118 "third_party/libpg_query/grammar/statements/select.y" { PGRangeFunction *n = makeNode(PGRangeFunction); @@ -17389,10 +17509,10 @@ YYLTYPE yylloc = yyloc_default; /* alias and coldeflist are set by table_ref production */ (yyval.node) = (PGNode *) n; } -#line 17393 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 17513 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 294: + case 294: /* func_table: ROWS FROM '(' rowsfrom_list ')' opt_ordinality */ #line 1129 "third_party/libpg_query/grammar/statements/select.y" { PGRangeFunction *n = makeNode(PGRangeFunction); @@ -17404,80 +17524,80 @@ YYLTYPE yylloc = yyloc_default; /* alias and coldeflist are set by table_ref production */ (yyval.node) = (PGNode *) n; } -#line 17408 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 17528 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 295: + case 295: /* rowsfrom_item: func_expr_windowless opt_col_def_list */ #line 1142 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = list_make2((yyvsp[-1].node), (yyvsp[0].list)); } -#line 17414 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 17534 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 296: + case 296: /* rowsfrom_list: rowsfrom_item */ #line 1146 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = list_make1((yyvsp[0].list)); } -#line 17420 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 17540 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 297: + case 297: /* rowsfrom_list: rowsfrom_list ',' rowsfrom_item */ #line 1147 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].list)); } -#line 17426 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 17546 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 298: + case 298: /* opt_col_def_list: AS '(' TableFuncElementList ')' */ #line 1150 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = (yyvsp[-1].list); } -#line 17432 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 17552 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 299: + case 299: /* opt_col_def_list: %empty */ #line 1151 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = NIL; } -#line 17438 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 17558 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 300: + case 300: /* opt_ordinality: WITH_LA ORDINALITY */ #line 1154 "third_party/libpg_query/grammar/statements/select.y" { (yyval.boolean) = true; } -#line 17444 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 17564 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 301: + case 301: /* opt_ordinality: %empty */ #line 1155 "third_party/libpg_query/grammar/statements/select.y" { (yyval.boolean) = false; } -#line 17450 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 17570 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 302: + case 302: /* where_clause: WHERE a_expr */ #line 1160 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = (yyvsp[0].node); } -#line 17456 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 17576 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 303: + case 303: /* where_clause: %empty */ #line 1161 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = NULL; } -#line 17462 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 17582 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 304: + case 304: /* TableFuncElementList: TableFuncElement */ #line 1167 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = list_make1((yyvsp[0].node)); } -#line 17470 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 17590 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 305: + case 305: /* TableFuncElementList: TableFuncElementList ',' TableFuncElement */ #line 1171 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].node)); } -#line 17478 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 17598 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 306: + case 306: /* TableFuncElement: ColIdOrString Typename opt_collate_clause */ #line 1177 "third_party/libpg_query/grammar/statements/select.y" { PGColumnDef *n = makeNode(PGColumnDef); @@ -17496,10 +17616,10 @@ YYLTYPE yylloc = yyloc_default; n->location = (yylsp[-2]); (yyval.node) = (PGNode *)n; } -#line 17500 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 17620 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 307: + case 307: /* opt_collate_clause: COLLATE any_name */ #line 1198 "third_party/libpg_query/grammar/statements/select.y" { PGCollateClause *n = makeNode(PGCollateClause); @@ -17508,101 +17628,101 @@ YYLTYPE yylloc = yyloc_default; n->location = (yylsp[-1]); (yyval.node) = (PGNode *) n; } -#line 17512 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 17632 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 308: + case 308: /* opt_collate_clause: %empty */ #line 1205 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = NULL; } -#line 17518 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 17638 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 309: + case 309: /* colid_type_list: ColId Typename */ #line 1218 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = list_make1(list_make2(makeString((yyvsp[-1].str)), (yyvsp[0].typnam))); } -#line 17526 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 17646 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 310: + case 310: /* colid_type_list: colid_type_list ',' ColId Typename */ #line 1221 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = lappend((yyvsp[-3].list), list_make2(makeString((yyvsp[-1].str)), (yyvsp[0].typnam))); } -#line 17534 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 17654 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 313: + case 313: /* opt_Typename: Typename */ #line 1228 "third_party/libpg_query/grammar/statements/select.y" { (yyval.typnam) = (yyvsp[0].typnam); } -#line 17540 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 17660 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 314: + case 314: /* opt_Typename: %empty */ #line 1229 "third_party/libpg_query/grammar/statements/select.y" { (yyval.typnam) = NULL; } -#line 17546 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 17666 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 315: + case 315: /* Typename: SimpleTypename opt_array_bounds */ #line 1232 "third_party/libpg_query/grammar/statements/select.y" { (yyval.typnam) = (yyvsp[-1].typnam); (yyval.typnam)->arrayBounds = (yyvsp[0].list); } -#line 17555 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 17675 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 316: + case 316: /* Typename: SETOF SimpleTypename opt_array_bounds */ #line 1237 "third_party/libpg_query/grammar/statements/select.y" { (yyval.typnam) = (yyvsp[-1].typnam); (yyval.typnam)->arrayBounds = (yyvsp[0].list); (yyval.typnam)->setof = true; } -#line 17565 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 17685 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 317: + case 317: /* Typename: SimpleTypename ARRAY '[' Iconst ']' */ #line 1244 "third_party/libpg_query/grammar/statements/select.y" { (yyval.typnam) = (yyvsp[-4].typnam); (yyval.typnam)->arrayBounds = list_make1(makeInteger((yyvsp[-1].ival))); } -#line 17574 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 17694 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 318: + case 318: /* Typename: SETOF SimpleTypename ARRAY '[' Iconst ']' */ #line 1249 "third_party/libpg_query/grammar/statements/select.y" { (yyval.typnam) = (yyvsp[-4].typnam); (yyval.typnam)->arrayBounds = list_make1(makeInteger((yyvsp[-1].ival))); (yyval.typnam)->setof = true; } -#line 17584 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 17704 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 319: + case 319: /* Typename: SimpleTypename ARRAY */ #line 1255 "third_party/libpg_query/grammar/statements/select.y" { (yyval.typnam) = (yyvsp[-1].typnam); (yyval.typnam)->arrayBounds = list_make1(makeInteger(-1)); } -#line 17593 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 17713 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 320: + case 320: /* Typename: SETOF SimpleTypename ARRAY */ #line 1260 "third_party/libpg_query/grammar/statements/select.y" { (yyval.typnam) = (yyvsp[-1].typnam); (yyval.typnam)->arrayBounds = list_make1(makeInteger(-1)); (yyval.typnam)->setof = true; } -#line 17603 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 17723 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 321: + case 321: /* Typename: RowOrStruct '(' colid_type_list ')' opt_array_bounds */ #line 1265 "third_party/libpg_query/grammar/statements/select.y" { (yyval.typnam) = SystemTypeName("struct"); @@ -17610,10 +17730,10 @@ YYLTYPE yylloc = yyloc_default; (yyval.typnam)->typmods = (yyvsp[-2].list); (yyval.typnam)->location = (yylsp[-4]); } -#line 17614 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 17734 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 322: + case 322: /* Typename: MAP '(' type_list ')' opt_array_bounds */ #line 1271 "third_party/libpg_query/grammar/statements/select.y" { (yyval.typnam) = SystemTypeName("map"); @@ -17621,225 +17741,225 @@ YYLTYPE yylloc = yyloc_default; (yyval.typnam)->typmods = (yyvsp[-2].list); (yyval.typnam)->location = (yylsp[-4]); } -#line 17625 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 17745 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 323: + case 323: /* opt_array_bounds: opt_array_bounds '[' ']' */ #line 1281 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = lappend((yyvsp[-2].list), makeInteger(-1)); } -#line 17631 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 17751 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 324: + case 324: /* opt_array_bounds: opt_array_bounds '[' Iconst ']' */ #line 1283 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = lappend((yyvsp[-3].list), makeInteger((yyvsp[-1].ival))); } -#line 17637 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 17757 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 325: + case 325: /* opt_array_bounds: %empty */ #line 1285 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = NIL; } -#line 17643 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 17763 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 326: + case 326: /* SimpleTypename: GenericType */ #line 1289 "third_party/libpg_query/grammar/statements/select.y" { (yyval.typnam) = (yyvsp[0].typnam); } -#line 17649 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 17769 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 327: + case 327: /* SimpleTypename: Numeric */ #line 1290 "third_party/libpg_query/grammar/statements/select.y" { (yyval.typnam) = (yyvsp[0].typnam); } -#line 17655 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 17775 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 328: + case 328: /* SimpleTypename: Bit */ #line 1291 "third_party/libpg_query/grammar/statements/select.y" { (yyval.typnam) = (yyvsp[0].typnam); } -#line 17661 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 17781 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 329: + case 329: /* SimpleTypename: Character */ #line 1292 "third_party/libpg_query/grammar/statements/select.y" { (yyval.typnam) = (yyvsp[0].typnam); } -#line 17667 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 17787 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 330: + case 330: /* SimpleTypename: ConstDatetime */ #line 1293 "third_party/libpg_query/grammar/statements/select.y" { (yyval.typnam) = (yyvsp[0].typnam); } -#line 17673 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 17793 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 331: + case 331: /* SimpleTypename: ConstInterval opt_interval */ #line 1295 "third_party/libpg_query/grammar/statements/select.y" { (yyval.typnam) = (yyvsp[-1].typnam); (yyval.typnam)->typmods = (yyvsp[0].list); } -#line 17682 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 17802 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 332: + case 332: /* SimpleTypename: ConstInterval '(' Iconst ')' */ #line 1300 "third_party/libpg_query/grammar/statements/select.y" { (yyval.typnam) = (yyvsp[-3].typnam); (yyval.typnam)->typmods = list_make2(makeIntConst(INTERVAL_FULL_RANGE, -1), makeIntConst((yyvsp[-1].ival), (yylsp[-1]))); } -#line 17692 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 17812 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 333: + case 333: /* ConstTypename: Numeric */ #line 1319 "third_party/libpg_query/grammar/statements/select.y" { (yyval.typnam) = (yyvsp[0].typnam); } -#line 17698 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 17818 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 334: + case 334: /* ConstTypename: ConstBit */ #line 1320 "third_party/libpg_query/grammar/statements/select.y" { (yyval.typnam) = (yyvsp[0].typnam); } -#line 17704 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 17824 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 335: + case 335: /* ConstTypename: ConstCharacter */ #line 1321 "third_party/libpg_query/grammar/statements/select.y" { (yyval.typnam) = (yyvsp[0].typnam); } -#line 17710 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 17830 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 336: + case 336: /* ConstTypename: ConstDatetime */ #line 1322 "third_party/libpg_query/grammar/statements/select.y" { (yyval.typnam) = (yyvsp[0].typnam); } -#line 17716 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 17836 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 337: + case 337: /* GenericType: type_name_token opt_type_modifiers */ #line 1334 "third_party/libpg_query/grammar/statements/select.y" { (yyval.typnam) = makeTypeName((yyvsp[-1].str)); (yyval.typnam)->typmods = (yyvsp[0].list); (yyval.typnam)->location = (yylsp[-1]); } -#line 17726 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 17846 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 338: + case 338: /* opt_type_modifiers: '(' opt_expr_list_opt_comma ')' */ #line 1347 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = (yyvsp[-1].list); } -#line 17732 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 17852 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 339: + case 339: /* opt_type_modifiers: %empty */ #line 1348 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = NIL; } -#line 17738 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 17858 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 340: + case 340: /* Numeric: INT_P */ #line 1355 "third_party/libpg_query/grammar/statements/select.y" { (yyval.typnam) = SystemTypeName("int4"); (yyval.typnam)->location = (yylsp[0]); } -#line 17747 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 17867 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 341: + case 341: /* Numeric: INTEGER */ #line 1360 "third_party/libpg_query/grammar/statements/select.y" { (yyval.typnam) = SystemTypeName("int4"); (yyval.typnam)->location = (yylsp[0]); } -#line 17756 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 17876 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 342: + case 342: /* Numeric: SMALLINT */ #line 1365 "third_party/libpg_query/grammar/statements/select.y" { (yyval.typnam) = SystemTypeName("int2"); (yyval.typnam)->location = (yylsp[0]); } -#line 17765 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 17885 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 343: + case 343: /* Numeric: BIGINT */ #line 1370 "third_party/libpg_query/grammar/statements/select.y" { (yyval.typnam) = SystemTypeName("int8"); (yyval.typnam)->location = (yylsp[0]); } -#line 17774 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 17894 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 344: + case 344: /* Numeric: REAL */ #line 1375 "third_party/libpg_query/grammar/statements/select.y" { (yyval.typnam) = SystemTypeName("float4"); (yyval.typnam)->location = (yylsp[0]); } -#line 17783 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 17903 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 345: + case 345: /* Numeric: FLOAT_P opt_float */ #line 1380 "third_party/libpg_query/grammar/statements/select.y" { (yyval.typnam) = (yyvsp[0].typnam); (yyval.typnam)->location = (yylsp[-1]); } -#line 17792 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 17912 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 346: + case 346: /* Numeric: DOUBLE_P PRECISION */ #line 1385 "third_party/libpg_query/grammar/statements/select.y" { (yyval.typnam) = SystemTypeName("float8"); (yyval.typnam)->location = (yylsp[-1]); } -#line 17801 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 17921 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 347: + case 347: /* Numeric: DECIMAL_P opt_type_modifiers */ #line 1390 "third_party/libpg_query/grammar/statements/select.y" { (yyval.typnam) = SystemTypeName("numeric"); (yyval.typnam)->typmods = (yyvsp[0].list); (yyval.typnam)->location = (yylsp[-1]); } -#line 17811 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 17931 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 348: + case 348: /* Numeric: DEC opt_type_modifiers */ #line 1396 "third_party/libpg_query/grammar/statements/select.y" { (yyval.typnam) = SystemTypeName("numeric"); (yyval.typnam)->typmods = (yyvsp[0].list); (yyval.typnam)->location = (yylsp[-1]); } -#line 17821 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 17941 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 349: + case 349: /* Numeric: NUMERIC opt_type_modifiers */ #line 1402 "third_party/libpg_query/grammar/statements/select.y" { (yyval.typnam) = SystemTypeName("numeric"); (yyval.typnam)->typmods = (yyvsp[0].list); (yyval.typnam)->location = (yylsp[-1]); } -#line 17831 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 17951 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 350: + case 350: /* Numeric: BOOLEAN_P */ #line 1408 "third_party/libpg_query/grammar/statements/select.y" { (yyval.typnam) = SystemTypeName("bool"); (yyval.typnam)->location = (yylsp[0]); } -#line 17840 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 17960 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 351: + case 351: /* opt_float: '(' Iconst ')' */ #line 1415 "third_party/libpg_query/grammar/statements/select.y" { /* @@ -17861,51 +17981,51 @@ YYLTYPE yylloc = yyloc_default; errmsg("precision for type float must be less than 54 bits"), parser_errposition((yylsp[-1])))); } -#line 17865 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 17985 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 352: + case 352: /* opt_float: %empty */ #line 1436 "third_party/libpg_query/grammar/statements/select.y" { (yyval.typnam) = SystemTypeName("float4"); } -#line 17873 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 17993 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 353: + case 353: /* Bit: BitWithLength */ #line 1446 "third_party/libpg_query/grammar/statements/select.y" { (yyval.typnam) = (yyvsp[0].typnam); } -#line 17881 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 18001 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 354: + case 354: /* Bit: BitWithoutLength */ #line 1450 "third_party/libpg_query/grammar/statements/select.y" { (yyval.typnam) = (yyvsp[0].typnam); } -#line 17889 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 18009 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 355: + case 355: /* ConstBit: BitWithLength */ #line 1458 "third_party/libpg_query/grammar/statements/select.y" { (yyval.typnam) = (yyvsp[0].typnam); } -#line 17897 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 18017 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 356: + case 356: /* ConstBit: BitWithoutLength */ #line 1462 "third_party/libpg_query/grammar/statements/select.y" { (yyval.typnam) = (yyvsp[0].typnam); (yyval.typnam)->typmods = NIL; } -#line 17906 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 18026 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 357: + case 357: /* BitWithLength: BIT opt_varying '(' expr_list_opt_comma ')' */ #line 1470 "third_party/libpg_query/grammar/statements/select.y" { const char *typname; @@ -17915,10 +18035,10 @@ YYLTYPE yylloc = yyloc_default; (yyval.typnam)->typmods = (yyvsp[-1].list); (yyval.typnam)->location = (yylsp[-4]); } -#line 17919 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 18039 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 358: + case 358: /* BitWithoutLength: BIT opt_varying */ #line 1482 "third_party/libpg_query/grammar/statements/select.y" { /* bit defaults to bit(1), varbit to no limit */ @@ -17933,34 +18053,34 @@ YYLTYPE yylloc = yyloc_default; } (yyval.typnam)->location = (yylsp[-1]); } -#line 17937 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 18057 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 359: + case 359: /* Character: CharacterWithLength */ #line 1503 "third_party/libpg_query/grammar/statements/select.y" { (yyval.typnam) = (yyvsp[0].typnam); } -#line 17945 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 18065 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 360: + case 360: /* Character: CharacterWithoutLength */ #line 1507 "third_party/libpg_query/grammar/statements/select.y" { (yyval.typnam) = (yyvsp[0].typnam); } -#line 17953 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 18073 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 361: + case 361: /* ConstCharacter: CharacterWithLength */ #line 1513 "third_party/libpg_query/grammar/statements/select.y" { (yyval.typnam) = (yyvsp[0].typnam); } -#line 17961 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 18081 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 362: + case 362: /* ConstCharacter: CharacterWithoutLength */ #line 1517 "third_party/libpg_query/grammar/statements/select.y" { /* Length was not specified so allow to be unrestricted. @@ -17972,20 +18092,20 @@ YYLTYPE yylloc = yyloc_default; (yyval.typnam) = (yyvsp[0].typnam); (yyval.typnam)->typmods = NIL; } -#line 17976 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 18096 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 363: + case 363: /* CharacterWithLength: character '(' Iconst ')' */ #line 1530 "third_party/libpg_query/grammar/statements/select.y" { (yyval.typnam) = SystemTypeName((yyvsp[-3].conststr)); (yyval.typnam)->typmods = list_make1(makeIntConst((yyvsp[-1].ival), (yylsp[-1]))); (yyval.typnam)->location = (yylsp[-3]); } -#line 17986 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 18106 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 364: + case 364: /* CharacterWithoutLength: character */ #line 1538 "third_party/libpg_query/grammar/statements/select.y" { (yyval.typnam) = SystemTypeName((yyvsp[0].conststr)); @@ -17994,58 +18114,58 @@ YYLTYPE yylloc = yyloc_default; (yyval.typnam)->typmods = list_make1(makeIntConst(1, -1)); (yyval.typnam)->location = (yylsp[0]); } -#line 17998 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 18118 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 365: + case 365: /* character: CHARACTER opt_varying */ #line 1548 "third_party/libpg_query/grammar/statements/select.y" { (yyval.conststr) = (yyvsp[0].boolean) ? "varchar": "bpchar"; } -#line 18004 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 18124 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 366: + case 366: /* character: CHAR_P opt_varying */ #line 1550 "third_party/libpg_query/grammar/statements/select.y" { (yyval.conststr) = (yyvsp[0].boolean) ? "varchar": "bpchar"; } -#line 18010 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 18130 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 367: + case 367: /* character: VARCHAR */ #line 1552 "third_party/libpg_query/grammar/statements/select.y" { (yyval.conststr) = "varchar"; } -#line 18016 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 18136 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 368: + case 368: /* character: NATIONAL CHARACTER opt_varying */ #line 1554 "third_party/libpg_query/grammar/statements/select.y" { (yyval.conststr) = (yyvsp[0].boolean) ? "varchar": "bpchar"; } -#line 18022 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 18142 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 369: + case 369: /* character: NATIONAL CHAR_P opt_varying */ #line 1556 "third_party/libpg_query/grammar/statements/select.y" { (yyval.conststr) = (yyvsp[0].boolean) ? "varchar": "bpchar"; } -#line 18028 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 18148 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 370: + case 370: /* character: NCHAR opt_varying */ #line 1558 "third_party/libpg_query/grammar/statements/select.y" { (yyval.conststr) = (yyvsp[0].boolean) ? "varchar": "bpchar"; } -#line 18034 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 18154 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 371: + case 371: /* opt_varying: VARYING */ #line 1562 "third_party/libpg_query/grammar/statements/select.y" { (yyval.boolean) = true; } -#line 18040 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 18160 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 372: + case 372: /* opt_varying: %empty */ #line 1563 "third_party/libpg_query/grammar/statements/select.y" { (yyval.boolean) = false; } -#line 18046 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 18166 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 373: + case 373: /* ConstDatetime: TIMESTAMP '(' Iconst ')' opt_timezone */ #line 1571 "third_party/libpg_query/grammar/statements/select.y" { if ((yyvsp[0].boolean)) @@ -18055,10 +18175,10 @@ YYLTYPE yylloc = yyloc_default; (yyval.typnam)->typmods = list_make1(makeIntConst((yyvsp[-2].ival), (yylsp[-2]))); (yyval.typnam)->location = (yylsp[-4]); } -#line 18059 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 18179 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 374: + case 374: /* ConstDatetime: TIMESTAMP opt_timezone */ #line 1580 "third_party/libpg_query/grammar/statements/select.y" { if ((yyvsp[0].boolean)) @@ -18067,10 +18187,10 @@ YYLTYPE yylloc = yyloc_default; (yyval.typnam) = SystemTypeName("timestamp"); (yyval.typnam)->location = (yylsp[-1]); } -#line 18071 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 18191 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 375: + case 375: /* ConstDatetime: TIME '(' Iconst ')' opt_timezone */ #line 1588 "third_party/libpg_query/grammar/statements/select.y" { if ((yyvsp[0].boolean)) @@ -18080,10 +18200,10 @@ YYLTYPE yylloc = yyloc_default; (yyval.typnam)->typmods = list_make1(makeIntConst((yyvsp[-2].ival), (yylsp[-2]))); (yyval.typnam)->location = (yylsp[-4]); } -#line 18084 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 18204 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 376: + case 376: /* ConstDatetime: TIME opt_timezone */ #line 1597 "third_party/libpg_query/grammar/statements/select.y" { if ((yyvsp[0].boolean)) @@ -18092,113 +18212,113 @@ YYLTYPE yylloc = yyloc_default; (yyval.typnam) = SystemTypeName("time"); (yyval.typnam)->location = (yylsp[-1]); } -#line 18096 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 18216 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 377: + case 377: /* ConstInterval: INTERVAL */ #line 1608 "third_party/libpg_query/grammar/statements/select.y" { (yyval.typnam) = SystemTypeName("interval"); (yyval.typnam)->location = (yylsp[0]); } -#line 18105 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 18225 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 378: + case 378: /* opt_timezone: WITH_LA TIME ZONE */ #line 1615 "third_party/libpg_query/grammar/statements/select.y" { (yyval.boolean) = true; } -#line 18111 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 18231 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 379: + case 379: /* opt_timezone: WITHOUT TIME ZONE */ #line 1616 "third_party/libpg_query/grammar/statements/select.y" { (yyval.boolean) = false; } -#line 18117 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 18237 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 380: + case 380: /* opt_timezone: %empty */ #line 1617 "third_party/libpg_query/grammar/statements/select.y" { (yyval.boolean) = false; } -#line 18123 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 18243 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 397: + case 397: /* opt_interval: year_keyword */ #line 1646 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(YEAR), (yylsp[0]))); } -#line 18129 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 18249 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 398: + case 398: /* opt_interval: month_keyword */ #line 1648 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(MONTH), (yylsp[0]))); } -#line 18135 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 18255 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 399: + case 399: /* opt_interval: day_keyword */ #line 1650 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(DAY), (yylsp[0]))); } -#line 18141 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 18261 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 400: + case 400: /* opt_interval: hour_keyword */ #line 1652 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(HOUR), (yylsp[0]))); } -#line 18147 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 18267 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 401: + case 401: /* opt_interval: minute_keyword */ #line 1654 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(MINUTE), (yylsp[0]))); } -#line 18153 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 18273 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 402: + case 402: /* opt_interval: second_keyword */ #line 1656 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(SECOND), (yylsp[0]))); } -#line 18159 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 18279 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 403: + case 403: /* opt_interval: millisecond_keyword */ #line 1658 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(MILLISECOND), (yylsp[0]))); } -#line 18165 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 18285 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 404: + case 404: /* opt_interval: microsecond_keyword */ #line 1660 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(MICROSECOND), (yylsp[0]))); } -#line 18171 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 18291 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 405: + case 405: /* opt_interval: year_keyword TO month_keyword */ #line 1662 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(YEAR) | INTERVAL_MASK(MONTH), (yylsp[-2]))); } -#line 18180 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 18300 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 406: + case 406: /* opt_interval: day_keyword TO hour_keyword */ #line 1667 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(DAY) | INTERVAL_MASK(HOUR), (yylsp[-2]))); } -#line 18189 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 18309 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 407: + case 407: /* opt_interval: day_keyword TO minute_keyword */ #line 1672 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(DAY) | INTERVAL_MASK(HOUR) | INTERVAL_MASK(MINUTE), (yylsp[-2]))); } -#line 18199 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 18319 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 408: + case 408: /* opt_interval: day_keyword TO second_keyword */ #line 1678 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(DAY) | @@ -18206,56 +18326,56 @@ YYLTYPE yylloc = yyloc_default; INTERVAL_MASK(MINUTE) | INTERVAL_MASK(SECOND), (yylsp[-2]))); } -#line 18210 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 18330 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 409: + case 409: /* opt_interval: hour_keyword TO minute_keyword */ #line 1685 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(HOUR) | INTERVAL_MASK(MINUTE), (yylsp[-2]))); } -#line 18219 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 18339 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 410: + case 410: /* opt_interval: hour_keyword TO second_keyword */ #line 1690 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(HOUR) | INTERVAL_MASK(MINUTE) | INTERVAL_MASK(SECOND), (yylsp[-2]))); } -#line 18229 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 18349 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 411: + case 411: /* opt_interval: minute_keyword TO second_keyword */ #line 1696 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(MINUTE) | INTERVAL_MASK(SECOND), (yylsp[-2]))); } -#line 18238 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 18358 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 412: + case 412: /* opt_interval: %empty */ #line 1701 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = NIL; } -#line 18244 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 18364 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 413: + case 413: /* a_expr: c_expr */ #line 1732 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = (yyvsp[0].node); } -#line 18250 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 18370 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 414: + case 414: /* a_expr: a_expr TYPECAST Typename */ #line 1735 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = makeTypeCast((yyvsp[-2].node), (yyvsp[0].typnam), 0, (yylsp[-1])); } -#line 18256 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 18376 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 415: + case 415: /* a_expr: a_expr COLLATE any_name */ #line 1737 "third_party/libpg_query/grammar/statements/select.y" { PGCollateClause *n = makeNode(PGCollateClause); @@ -18264,170 +18384,170 @@ YYLTYPE yylloc = yyloc_default; n->location = (yylsp[-1]); (yyval.node) = (PGNode *) n; } -#line 18268 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 18388 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 416: + case 416: /* a_expr: a_expr AT TIME ZONE a_expr */ #line 1745 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = (PGNode *) makeFuncCall(SystemFuncName("timezone"), list_make2((yyvsp[0].node), (yyvsp[-4].node)), (yylsp[-3])); } -#line 18278 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 18398 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 417: + case 417: /* a_expr: '+' a_expr */ #line 1760 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, "+", NULL, (yyvsp[0].node), (yylsp[-1])); } -#line 18284 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 18404 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 418: + case 418: /* a_expr: '-' a_expr */ #line 1762 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = doNegate((yyvsp[0].node), (yylsp[-1])); } -#line 18290 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 18410 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 419: + case 419: /* a_expr: a_expr '+' a_expr */ #line 1764 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, "+", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); } -#line 18296 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 18416 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 420: + case 420: /* a_expr: a_expr '-' a_expr */ #line 1766 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, "-", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); } -#line 18302 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 18422 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 421: + case 421: /* a_expr: a_expr '*' a_expr */ #line 1768 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, "*", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); } -#line 18308 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 18428 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 422: + case 422: /* a_expr: a_expr '/' a_expr */ #line 1770 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, "/", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); } -#line 18314 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 18434 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 423: + case 423: /* a_expr: a_expr '%' a_expr */ #line 1772 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, "%", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); } -#line 18320 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 18440 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 424: + case 424: /* a_expr: a_expr '^' a_expr */ #line 1774 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, "^", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); } -#line 18326 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 18446 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 425: + case 425: /* a_expr: a_expr POWER_OF a_expr */ #line 1776 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, "**", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); } -#line 18332 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 18452 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 426: + case 426: /* a_expr: a_expr '<' a_expr */ #line 1778 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, "<", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); } -#line 18338 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 18458 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 427: + case 427: /* a_expr: a_expr '>' a_expr */ #line 1780 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, ">", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); } -#line 18344 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 18464 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 428: + case 428: /* a_expr: a_expr '=' a_expr */ #line 1782 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, "=", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); } -#line 18350 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 18470 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 429: + case 429: /* a_expr: a_expr LESS_EQUALS a_expr */ #line 1784 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, "<=", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); } -#line 18356 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 18476 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 430: + case 430: /* a_expr: a_expr GREATER_EQUALS a_expr */ #line 1786 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, ">=", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); } -#line 18362 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 18482 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 431: + case 431: /* a_expr: a_expr NOT_EQUALS a_expr */ #line 1788 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, "<>", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); } -#line 18368 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 18488 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 432: + case 432: /* a_expr: a_expr qual_Op a_expr */ #line 1791 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = (PGNode *) makeAExpr(PG_AEXPR_OP, (yyvsp[-1].list), (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); } -#line 18374 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 18494 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 433: + case 433: /* a_expr: qual_Op a_expr */ #line 1793 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = (PGNode *) makeAExpr(PG_AEXPR_OP, (yyvsp[-1].list), NULL, (yyvsp[0].node), (yylsp[-1])); } -#line 18380 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 18500 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 434: + case 434: /* a_expr: a_expr qual_Op */ #line 1795 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = (PGNode *) makeAExpr(PG_AEXPR_OP, (yyvsp[0].list), (yyvsp[-1].node), NULL, (yylsp[0])); } -#line 18386 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 18506 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 435: + case 435: /* a_expr: a_expr AND a_expr */ #line 1798 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = makeAndExpr((yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); } -#line 18392 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 18512 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 436: + case 436: /* a_expr: a_expr OR a_expr */ #line 1800 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = makeOrExpr((yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); } -#line 18398 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 18518 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 437: + case 437: /* a_expr: NOT a_expr */ #line 1802 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = makeNotExpr((yyvsp[0].node), (yylsp[-1])); } -#line 18404 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 18524 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 438: + case 438: /* a_expr: NOT_LA a_expr */ #line 1804 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = makeNotExpr((yyvsp[0].node), (yylsp[-1])); } -#line 18410 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 18530 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 439: + case 439: /* a_expr: a_expr GLOB a_expr */ #line 1806 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_GLOB, "~~~", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); } -#line 18419 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 18539 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 440: + case 440: /* a_expr: a_expr LIKE a_expr */ #line 1811 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_LIKE, "~~", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); } -#line 18428 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 18548 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 441: + case 441: /* a_expr: a_expr LIKE a_expr ESCAPE a_expr */ #line 1816 "third_party/libpg_query/grammar/statements/select.y" { PGFuncCall *n = makeFuncCall(SystemFuncName("like_escape"), @@ -18435,19 +18555,19 @@ YYLTYPE yylloc = yyloc_default; (yylsp[-3])); (yyval.node) = (PGNode *) n; } -#line 18439 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 18559 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 442: + case 442: /* a_expr: a_expr NOT_LA LIKE a_expr */ #line 1823 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_LIKE, "!~~", (yyvsp[-3].node), (yyvsp[0].node), (yylsp[-2])); } -#line 18448 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 18568 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 443: + case 443: /* a_expr: a_expr NOT_LA LIKE a_expr ESCAPE a_expr */ #line 1828 "third_party/libpg_query/grammar/statements/select.y" { PGFuncCall *n = makeFuncCall(SystemFuncName("not_like_escape"), @@ -18455,19 +18575,19 @@ YYLTYPE yylloc = yyloc_default; (yylsp[-4])); (yyval.node) = (PGNode *) n; } -#line 18459 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 18579 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 444: + case 444: /* a_expr: a_expr ILIKE a_expr */ #line 1835 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_ILIKE, "~~*", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); } -#line 18468 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 18588 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 445: + case 445: /* a_expr: a_expr ILIKE a_expr ESCAPE a_expr */ #line 1840 "third_party/libpg_query/grammar/statements/select.y" { PGFuncCall *n = makeFuncCall(SystemFuncName("ilike_escape"), @@ -18475,19 +18595,19 @@ YYLTYPE yylloc = yyloc_default; (yylsp[-3])); (yyval.node) = (PGNode *) n; } -#line 18479 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 18599 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 446: + case 446: /* a_expr: a_expr NOT_LA ILIKE a_expr */ #line 1847 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_ILIKE, "!~~*", (yyvsp[-3].node), (yyvsp[0].node), (yylsp[-2])); } -#line 18488 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 18608 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 447: + case 447: /* a_expr: a_expr NOT_LA ILIKE a_expr ESCAPE a_expr */ #line 1852 "third_party/libpg_query/grammar/statements/select.y" { PGFuncCall *n = makeFuncCall(SystemFuncName("not_ilike_escape"), @@ -18495,10 +18615,10 @@ YYLTYPE yylloc = yyloc_default; (yylsp[-4])); (yyval.node) = (PGNode *) n; } -#line 18499 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 18619 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 448: + case 448: /* a_expr: a_expr SIMILAR TO a_expr */ #line 1860 "third_party/libpg_query/grammar/statements/select.y" { PGFuncCall *n = makeFuncCall(SystemFuncName("similar_escape"), @@ -18507,10 +18627,10 @@ YYLTYPE yylloc = yyloc_default; (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_SIMILAR, "~", (yyvsp[-3].node), (PGNode *) n, (yylsp[-2])); } -#line 18511 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 18631 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 449: + case 449: /* a_expr: a_expr SIMILAR TO a_expr ESCAPE a_expr */ #line 1868 "third_party/libpg_query/grammar/statements/select.y" { PGFuncCall *n = makeFuncCall(SystemFuncName("similar_escape"), @@ -18519,10 +18639,10 @@ YYLTYPE yylloc = yyloc_default; (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_SIMILAR, "~", (yyvsp[-5].node), (PGNode *) n, (yylsp[-4])); } -#line 18523 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 18643 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 450: + case 450: /* a_expr: a_expr NOT_LA SIMILAR TO a_expr */ #line 1876 "third_party/libpg_query/grammar/statements/select.y" { PGFuncCall *n = makeFuncCall(SystemFuncName("similar_escape"), @@ -18531,10 +18651,10 @@ YYLTYPE yylloc = yyloc_default; (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_SIMILAR, "!~", (yyvsp[-4].node), (PGNode *) n, (yylsp[-3])); } -#line 18535 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 18655 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 451: + case 451: /* a_expr: a_expr NOT_LA SIMILAR TO a_expr ESCAPE a_expr */ #line 1884 "third_party/libpg_query/grammar/statements/select.y" { PGFuncCall *n = makeFuncCall(SystemFuncName("similar_escape"), @@ -18543,10 +18663,10 @@ YYLTYPE yylloc = yyloc_default; (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_SIMILAR, "!~", (yyvsp[-6].node), (PGNode *) n, (yylsp[-5])); } -#line 18547 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 18667 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 452: + case 452: /* a_expr: a_expr IS NULL_P */ #line 1902 "third_party/libpg_query/grammar/statements/select.y" { PGNullTest *n = makeNode(PGNullTest); @@ -18555,10 +18675,10 @@ YYLTYPE yylloc = yyloc_default; n->location = (yylsp[-1]); (yyval.node) = (PGNode *)n; } -#line 18559 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 18679 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 453: + case 453: /* a_expr: a_expr ISNULL */ #line 1910 "third_party/libpg_query/grammar/statements/select.y" { PGNullTest *n = makeNode(PGNullTest); @@ -18567,10 +18687,10 @@ YYLTYPE yylloc = yyloc_default; n->location = (yylsp[0]); (yyval.node) = (PGNode *)n; } -#line 18571 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 18691 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 454: + case 454: /* a_expr: a_expr IS NOT NULL_P */ #line 1918 "third_party/libpg_query/grammar/statements/select.y" { PGNullTest *n = makeNode(PGNullTest); @@ -18579,10 +18699,10 @@ YYLTYPE yylloc = yyloc_default; n->location = (yylsp[-2]); (yyval.node) = (PGNode *)n; } -#line 18583 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 18703 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 455: + case 455: /* a_expr: a_expr NOT NULL_P */ #line 1926 "third_party/libpg_query/grammar/statements/select.y" { PGNullTest *n = makeNode(PGNullTest); @@ -18591,10 +18711,10 @@ YYLTYPE yylloc = yyloc_default; n->location = (yylsp[-1]); (yyval.node) = (PGNode *)n; } -#line 18595 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 18715 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 456: + case 456: /* a_expr: a_expr NOTNULL */ #line 1934 "third_party/libpg_query/grammar/statements/select.y" { PGNullTest *n = makeNode(PGNullTest); @@ -18603,37 +18723,37 @@ YYLTYPE yylloc = yyloc_default; n->location = (yylsp[0]); (yyval.node) = (PGNode *)n; } -#line 18607 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 18727 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 457: + case 457: /* a_expr: row */ #line 1941 "third_party/libpg_query/grammar/statements/select.y" { PGFuncCall *n = makeFuncCall(SystemFuncName("row"), (yyvsp[0].list), (yylsp[0])); (yyval.node) = (PGNode *) n; } -#line 18616 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 18736 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 458: + case 458: /* a_expr: '{' dict_arguments_opt_comma '}' */ #line 1945 "third_party/libpg_query/grammar/statements/select.y" { PGFuncCall *n = makeFuncCall(SystemFuncName("struct_pack"), (yyvsp[-1].list), (yylsp[-1])); (yyval.node) = (PGNode *) n; } -#line 18625 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 18745 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 459: + case 459: /* a_expr: '[' opt_expr_list_opt_comma ']' */ #line 1949 "third_party/libpg_query/grammar/statements/select.y" { PGFuncCall *n = makeFuncCall(SystemFuncName("list_value"), (yyvsp[-1].list), (yylsp[-1])); (yyval.node) = (PGNode *) n; } -#line 18634 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 18754 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 460: + case 460: /* a_expr: a_expr LAMBDA_ARROW a_expr */ #line 1954 "third_party/libpg_query/grammar/statements/select.y" { PGLambdaFunction *n = makeNode(PGLambdaFunction); @@ -18642,18 +18762,18 @@ YYLTYPE yylloc = yyloc_default; n->location = (yylsp[-1]); (yyval.node) = (PGNode *) n; } -#line 18646 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 18766 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 461: + case 461: /* a_expr: a_expr DOUBLE_ARROW a_expr */ #line 1962 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, "->>", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); } -#line 18654 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 18774 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 462: + case 462: /* a_expr: row OVERLAPS row */ #line 1966 "third_party/libpg_query/grammar/statements/select.y" { if (list_length((yyvsp[-2].list)) != 2) @@ -18670,10 +18790,10 @@ YYLTYPE yylloc = yyloc_default; list_concat((yyvsp[-2].list), (yyvsp[0].list)), (yylsp[-1])); } -#line 18674 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 18794 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 463: + case 463: /* a_expr: a_expr IS TRUE_P */ #line 1982 "third_party/libpg_query/grammar/statements/select.y" { PGBooleanTest *b = makeNode(PGBooleanTest); @@ -18682,10 +18802,10 @@ YYLTYPE yylloc = yyloc_default; b->location = (yylsp[-1]); (yyval.node) = (PGNode *)b; } -#line 18686 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 18806 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 464: + case 464: /* a_expr: a_expr IS NOT TRUE_P */ #line 1990 "third_party/libpg_query/grammar/statements/select.y" { PGBooleanTest *b = makeNode(PGBooleanTest); @@ -18694,10 +18814,10 @@ YYLTYPE yylloc = yyloc_default; b->location = (yylsp[-2]); (yyval.node) = (PGNode *)b; } -#line 18698 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 18818 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 465: + case 465: /* a_expr: a_expr IS FALSE_P */ #line 1998 "third_party/libpg_query/grammar/statements/select.y" { PGBooleanTest *b = makeNode(PGBooleanTest); @@ -18706,10 +18826,10 @@ YYLTYPE yylloc = yyloc_default; b->location = (yylsp[-1]); (yyval.node) = (PGNode *)b; } -#line 18710 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 18830 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 466: + case 466: /* a_expr: a_expr IS NOT FALSE_P */ #line 2006 "third_party/libpg_query/grammar/statements/select.y" { PGBooleanTest *b = makeNode(PGBooleanTest); @@ -18718,10 +18838,10 @@ YYLTYPE yylloc = yyloc_default; b->location = (yylsp[-2]); (yyval.node) = (PGNode *)b; } -#line 18722 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 18842 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 467: + case 467: /* a_expr: a_expr IS UNKNOWN */ #line 2014 "third_party/libpg_query/grammar/statements/select.y" { PGBooleanTest *b = makeNode(PGBooleanTest); @@ -18730,10 +18850,10 @@ YYLTYPE yylloc = yyloc_default; b->location = (yylsp[-1]); (yyval.node) = (PGNode *)b; } -#line 18734 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 18854 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 468: + case 468: /* a_expr: a_expr IS NOT UNKNOWN */ #line 2022 "third_party/libpg_query/grammar/statements/select.y" { PGBooleanTest *b = makeNode(PGBooleanTest); @@ -18742,42 +18862,42 @@ YYLTYPE yylloc = yyloc_default; b->location = (yylsp[-2]); (yyval.node) = (PGNode *)b; } -#line 18746 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 18866 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 469: + case 469: /* a_expr: a_expr IS DISTINCT FROM a_expr */ #line 2030 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_DISTINCT, "=", (yyvsp[-4].node), (yyvsp[0].node), (yylsp[-3])); } -#line 18754 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 18874 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 470: + case 470: /* a_expr: a_expr IS NOT DISTINCT FROM a_expr */ #line 2034 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_NOT_DISTINCT, "=", (yyvsp[-5].node), (yyvsp[0].node), (yylsp[-4])); } -#line 18762 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 18882 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 471: + case 471: /* a_expr: a_expr IS OF '(' type_list ')' */ #line 2038 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OF, "=", (yyvsp[-5].node), (PGNode *) (yyvsp[-1].list), (yylsp[-4])); } -#line 18770 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 18890 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 472: + case 472: /* a_expr: a_expr IS NOT OF '(' type_list ')' */ #line 2042 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OF, "<>", (yyvsp[-6].node), (PGNode *) (yyvsp[-1].list), (yylsp[-5])); } -#line 18778 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 18898 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 473: + case 473: /* a_expr: a_expr BETWEEN opt_asymmetric b_expr AND a_expr */ #line 2046 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_BETWEEN, @@ -18786,10 +18906,10 @@ YYLTYPE yylloc = yyloc_default; (PGNode *) list_make2((yyvsp[-2].node), (yyvsp[0].node)), (yylsp[-4])); } -#line 18790 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 18910 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 474: + case 474: /* a_expr: a_expr NOT_LA BETWEEN opt_asymmetric b_expr AND a_expr */ #line 2054 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_NOT_BETWEEN, @@ -18798,10 +18918,10 @@ YYLTYPE yylloc = yyloc_default; (PGNode *) list_make2((yyvsp[-2].node), (yyvsp[0].node)), (yylsp[-5])); } -#line 18802 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 18922 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 475: + case 475: /* a_expr: a_expr BETWEEN SYMMETRIC b_expr AND a_expr */ #line 2062 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_BETWEEN_SYM, @@ -18810,10 +18930,10 @@ YYLTYPE yylloc = yyloc_default; (PGNode *) list_make2((yyvsp[-2].node), (yyvsp[0].node)), (yylsp[-4])); } -#line 18814 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 18934 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 476: + case 476: /* a_expr: a_expr NOT_LA BETWEEN SYMMETRIC b_expr AND a_expr */ #line 2070 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_NOT_BETWEEN_SYM, @@ -18822,10 +18942,10 @@ YYLTYPE yylloc = yyloc_default; (PGNode *) list_make2((yyvsp[-2].node), (yyvsp[0].node)), (yylsp[-5])); } -#line 18826 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 18946 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 477: + case 477: /* a_expr: a_expr IN_P in_expr */ #line 2078 "third_party/libpg_query/grammar/statements/select.y" { /* in_expr returns a PGSubLink or a list of a_exprs */ @@ -18846,10 +18966,10 @@ YYLTYPE yylloc = yyloc_default; (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_IN, "=", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); } } -#line 18850 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 18970 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 478: + case 478: /* a_expr: a_expr NOT_LA IN_P in_expr */ #line 2098 "third_party/libpg_query/grammar/statements/select.y" { /* in_expr returns a PGSubLink or a list of a_exprs */ @@ -18872,10 +18992,10 @@ YYLTYPE yylloc = yyloc_default; (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_IN, "<>", (yyvsp[-3].node), (yyvsp[0].node), (yylsp[-2])); } } -#line 18876 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 18996 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 479: + case 479: /* a_expr: a_expr subquery_Op sub_type select_with_parens */ #line 2120 "third_party/libpg_query/grammar/statements/select.y" { PGSubLink *n = makeNode(PGSubLink); @@ -18887,10 +19007,10 @@ YYLTYPE yylloc = yyloc_default; n->location = (yylsp[-2]); (yyval.node) = (PGNode *)n; } -#line 18891 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 19011 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 480: + case 480: /* a_expr: a_expr subquery_Op sub_type '(' a_expr ')' */ #line 2131 "third_party/libpg_query/grammar/statements/select.y" { if ((yyvsp[-3].subquerytype) == PG_ANY_SUBLINK) @@ -18898,10 +19018,10 @@ YYLTYPE yylloc = yyloc_default; else (yyval.node) = (PGNode *) makeAExpr(PG_AEXPR_OP_ALL, (yyvsp[-4].list), (yyvsp[-5].node), (yyvsp[-1].node), (yylsp[-4])); } -#line 18902 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 19022 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 481: + case 481: /* a_expr: ARRAY select_with_parens */ #line 2138 "third_party/libpg_query/grammar/statements/select.y" { PGSubLink *n = makeNode(PGSubLink); @@ -18913,10 +19033,10 @@ YYLTYPE yylloc = yyloc_default; n->location = (yylsp[0]); (yyval.node) = (PGNode *)n; } -#line 18917 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 19037 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 482: + case 482: /* a_expr: DEFAULT */ #line 2149 "third_party/libpg_query/grammar/statements/select.y" { /* @@ -18931,184 +19051,184 @@ YYLTYPE yylloc = yyloc_default; n->location = (yylsp[0]); (yyval.node) = (PGNode *)n; } -#line 18935 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 19055 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 483: + case 483: /* a_expr: ARRAY '[' opt_expr_list_opt_comma ']' */ #line 2162 "third_party/libpg_query/grammar/statements/select.y" { PGList *func_name = list_make1(makeString("construct_array")); PGFuncCall *n = makeFuncCall(func_name, (yyvsp[-1].list), (yylsp[-3])); (yyval.node) = (PGNode *) n; } -#line 18945 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 19065 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 484: + case 484: /* b_expr: c_expr */ #line 2179 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = (yyvsp[0].node); } -#line 18951 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 19071 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 485: + case 485: /* b_expr: b_expr TYPECAST Typename */ #line 2181 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = makeTypeCast((yyvsp[-2].node), (yyvsp[0].typnam), 0, (yylsp[-1])); } -#line 18957 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 19077 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 486: + case 486: /* b_expr: '+' b_expr */ #line 2183 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, "+", NULL, (yyvsp[0].node), (yylsp[-1])); } -#line 18963 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 19083 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 487: + case 487: /* b_expr: '-' b_expr */ #line 2185 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = doNegate((yyvsp[0].node), (yylsp[-1])); } -#line 18969 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 19089 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 488: + case 488: /* b_expr: b_expr '+' b_expr */ #line 2187 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, "+", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); } -#line 18975 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 19095 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 489: + case 489: /* b_expr: b_expr '-' b_expr */ #line 2189 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, "-", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); } -#line 18981 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 19101 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 490: + case 490: /* b_expr: b_expr '*' b_expr */ #line 2191 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, "*", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); } -#line 18987 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 19107 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 491: + case 491: /* b_expr: b_expr '/' b_expr */ #line 2193 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, "/", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); } -#line 18993 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 19113 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 492: + case 492: /* b_expr: b_expr '%' b_expr */ #line 2195 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, "%", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); } -#line 18999 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 19119 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 493: + case 493: /* b_expr: b_expr '^' b_expr */ #line 2197 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, "^", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); } -#line 19005 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 19125 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 494: + case 494: /* b_expr: b_expr POWER_OF b_expr */ #line 2199 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, "**", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); } -#line 19011 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 19131 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 495: + case 495: /* b_expr: b_expr '<' b_expr */ #line 2201 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, "<", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); } -#line 19017 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 19137 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 496: + case 496: /* b_expr: b_expr '>' b_expr */ #line 2203 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, ">", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); } -#line 19023 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 19143 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 497: + case 497: /* b_expr: b_expr '=' b_expr */ #line 2205 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, "=", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); } -#line 19029 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 19149 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 498: + case 498: /* b_expr: b_expr LESS_EQUALS b_expr */ #line 2207 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, "<=", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); } -#line 19035 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 19155 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 499: + case 499: /* b_expr: b_expr GREATER_EQUALS b_expr */ #line 2209 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, ">=", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); } -#line 19041 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 19161 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 500: + case 500: /* b_expr: b_expr NOT_EQUALS b_expr */ #line 2211 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, "<>", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); } -#line 19047 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 19167 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 501: + case 501: /* b_expr: b_expr qual_Op b_expr */ #line 2213 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = (PGNode *) makeAExpr(PG_AEXPR_OP, (yyvsp[-1].list), (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); } -#line 19053 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 19173 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 502: + case 502: /* b_expr: qual_Op b_expr */ #line 2215 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = (PGNode *) makeAExpr(PG_AEXPR_OP, (yyvsp[-1].list), NULL, (yyvsp[0].node), (yylsp[-1])); } -#line 19059 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 19179 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 503: + case 503: /* b_expr: b_expr qual_Op */ #line 2217 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = (PGNode *) makeAExpr(PG_AEXPR_OP, (yyvsp[0].list), (yyvsp[-1].node), NULL, (yylsp[0])); } -#line 19065 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 19185 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 504: + case 504: /* b_expr: b_expr IS DISTINCT FROM b_expr */ #line 2219 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_DISTINCT, "=", (yyvsp[-4].node), (yyvsp[0].node), (yylsp[-3])); } -#line 19073 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 19193 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 505: + case 505: /* b_expr: b_expr IS NOT DISTINCT FROM b_expr */ #line 2223 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_NOT_DISTINCT, "=", (yyvsp[-5].node), (yyvsp[0].node), (yylsp[-4])); } -#line 19081 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 19201 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 506: + case 506: /* b_expr: b_expr IS OF '(' type_list ')' */ #line 2227 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OF, "=", (yyvsp[-5].node), (PGNode *) (yyvsp[-1].list), (yylsp[-4])); } -#line 19089 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 19209 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 507: + case 507: /* b_expr: b_expr IS NOT OF '(' type_list ')' */ #line 2231 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OF, "<>", (yyvsp[-6].node), (PGNode *) (yyvsp[-1].list), (yylsp[-5])); } -#line 19097 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 19217 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 508: + case 508: /* c_expr: columnref */ #line 2244 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = (yyvsp[0].node); } -#line 19103 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 19223 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 509: + case 509: /* c_expr: AexprConst */ #line 2245 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = (yyvsp[0].node); } -#line 19109 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 19229 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 510: + case 510: /* c_expr: '#' ICONST */ #line 2247 "third_party/libpg_query/grammar/statements/select.y" { PGPositionalReference *n = makeNode(PGPositionalReference); @@ -19116,10 +19236,10 @@ YYLTYPE yylloc = yyloc_default; n->location = (yylsp[-1]); (yyval.node) = (PGNode *) n; } -#line 19120 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 19240 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 511: + case 511: /* c_expr: '?' opt_indirection */ #line 2254 "third_party/libpg_query/grammar/statements/select.y" { if ((yyvsp[0].list)) @@ -19132,10 +19252,10 @@ YYLTYPE yylloc = yyloc_default; else (yyval.node) = makeParamRef(0, (yylsp[-1])); } -#line 19136 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 19256 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 512: + case 512: /* c_expr: PARAM opt_indirection */ #line 2266 "third_party/libpg_query/grammar/statements/select.y" { PGParamRef *p = makeNode(PGParamRef); @@ -19151,10 +19271,10 @@ YYLTYPE yylloc = yyloc_default; else (yyval.node) = (PGNode *) p; } -#line 19155 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 19275 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 513: + case 513: /* c_expr: '(' a_expr ')' opt_indirection */ #line 2281 "third_party/libpg_query/grammar/statements/select.y" { if ((yyvsp[0].list)) @@ -19167,16 +19287,16 @@ YYLTYPE yylloc = yyloc_default; else (yyval.node) = (yyvsp[-2].node); } -#line 19171 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 19291 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 514: + case 514: /* c_expr: case_expr */ #line 2293 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = (yyvsp[0].node); } -#line 19177 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 19297 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 515: + case 515: /* c_expr: func_expr opt_indirection */ #line 2295 "third_party/libpg_query/grammar/statements/select.y" { if ((yyvsp[0].list)) { @@ -19189,10 +19309,10 @@ YYLTYPE yylloc = yyloc_default; (yyval.node) = (yyvsp[-1].node); } } -#line 19193 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 19313 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 516: + case 516: /* c_expr: select_with_parens */ #line 2307 "third_party/libpg_query/grammar/statements/select.y" { PGSubLink *n = makeNode(PGSubLink); @@ -19204,10 +19324,10 @@ YYLTYPE yylloc = yyloc_default; n->location = (yylsp[0]); (yyval.node) = (PGNode *)n; } -#line 19208 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 19328 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 517: + case 517: /* c_expr: select_with_parens indirection */ #line 2318 "third_party/libpg_query/grammar/statements/select.y" { /* @@ -19232,10 +19352,10 @@ YYLTYPE yylloc = yyloc_default; a->indirection = check_indirection((yyvsp[0].list), yyscanner); (yyval.node) = (PGNode *)a; } -#line 19236 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 19356 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 518: + case 518: /* c_expr: EXISTS select_with_parens */ #line 2342 "third_party/libpg_query/grammar/statements/select.y" { PGSubLink *n = makeNode(PGSubLink); @@ -19247,10 +19367,10 @@ YYLTYPE yylloc = yyloc_default; n->location = (yylsp[-1]); (yyval.node) = (PGNode *)n; } -#line 19251 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 19371 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 519: + case 519: /* c_expr: grouping_or_grouping_id '(' expr_list_opt_comma ')' */ #line 2353 "third_party/libpg_query/grammar/statements/select.y" { PGGroupingFunc *g = makeNode(PGGroupingFunc); @@ -19258,18 +19378,18 @@ YYLTYPE yylloc = yyloc_default; g->location = (yylsp[-3]); (yyval.node) = (PGNode *)g; } -#line 19262 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 19382 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 520: + case 520: /* func_application: func_name '(' ')' */ #line 2362 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = (PGNode *) makeFuncCall((yyvsp[-2].list), NIL, (yylsp[-2])); } -#line 19270 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 19390 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 521: + case 521: /* func_application: func_name '(' func_arg_list opt_sort_clause opt_ignore_nulls ')' */ #line 2366 "third_party/libpg_query/grammar/statements/select.y" { PGFuncCall *n = makeFuncCall((yyvsp[-5].list), (yyvsp[-3].list), (yylsp[-5])); @@ -19277,10 +19397,10 @@ YYLTYPE yylloc = yyloc_default; n->agg_ignore_nulls = (yyvsp[-1].boolean); (yyval.node) = (PGNode *)n; } -#line 19281 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 19401 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 522: + case 522: /* func_application: func_name '(' VARIADIC func_arg_expr opt_sort_clause opt_ignore_nulls ')' */ #line 2373 "third_party/libpg_query/grammar/statements/select.y" { PGFuncCall *n = makeFuncCall((yyvsp[-6].list), list_make1((yyvsp[-3].node)), (yylsp[-6])); @@ -19289,10 +19409,10 @@ YYLTYPE yylloc = yyloc_default; n->agg_ignore_nulls = (yyvsp[-1].boolean); (yyval.node) = (PGNode *)n; } -#line 19293 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 19413 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 523: + case 523: /* func_application: func_name '(' func_arg_list ',' VARIADIC func_arg_expr opt_sort_clause opt_ignore_nulls ')' */ #line 2381 "third_party/libpg_query/grammar/statements/select.y" { PGFuncCall *n = makeFuncCall((yyvsp[-8].list), lappend((yyvsp[-6].list), (yyvsp[-3].node)), (yylsp[-8])); @@ -19301,10 +19421,10 @@ YYLTYPE yylloc = yyloc_default; n->agg_ignore_nulls = (yyvsp[-1].boolean); (yyval.node) = (PGNode *)n; } -#line 19305 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 19425 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 524: + case 524: /* func_application: func_name '(' ALL func_arg_list opt_sort_clause opt_ignore_nulls ')' */ #line 2389 "third_party/libpg_query/grammar/statements/select.y" { PGFuncCall *n = makeFuncCall((yyvsp[-6].list), (yyvsp[-3].list), (yylsp[-6])); @@ -19316,10 +19436,10 @@ YYLTYPE yylloc = yyloc_default; */ (yyval.node) = (PGNode *)n; } -#line 19320 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 19440 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 525: + case 525: /* func_application: func_name '(' DISTINCT func_arg_list opt_sort_clause opt_ignore_nulls ')' */ #line 2400 "third_party/libpg_query/grammar/statements/select.y" { PGFuncCall *n = makeFuncCall((yyvsp[-6].list), (yyvsp[-3].list), (yylsp[-6])); @@ -19328,10 +19448,10 @@ YYLTYPE yylloc = yyloc_default; n->agg_distinct = true; (yyval.node) = (PGNode *)n; } -#line 19332 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 19452 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 526: + case 526: /* func_application: func_name '(' '*' ')' */ #line 2408 "third_party/libpg_query/grammar/statements/select.y" { /* @@ -19348,10 +19468,10 @@ YYLTYPE yylloc = yyloc_default; n->agg_star = true; (yyval.node) = (PGNode *)n; } -#line 19352 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 19472 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 527: + case 527: /* func_expr: func_application within_group_clause filter_clause export_clause over_clause */ #line 2436 "third_party/libpg_query/grammar/statements/select.y" { PGFuncCall *n = (PGFuncCall *) (yyvsp[-4].node); @@ -19388,178 +19508,178 @@ YYLTYPE yylloc = yyloc_default; n->over = (yyvsp[0].windef); (yyval.node) = (PGNode *) n; } -#line 19392 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 19512 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 528: + case 528: /* func_expr: func_expr_common_subexpr */ #line 2472 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = (yyvsp[0].node); } -#line 19398 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 19518 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 529: + case 529: /* func_expr_windowless: func_application */ #line 2482 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = (yyvsp[0].node); } -#line 19404 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 19524 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 530: + case 530: /* func_expr_windowless: func_expr_common_subexpr */ #line 2483 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = (yyvsp[0].node); } -#line 19410 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 19530 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 531: + case 531: /* func_expr_common_subexpr: COLLATION FOR '(' a_expr ')' */ #line 2491 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = (PGNode *) makeFuncCall(SystemFuncName("pg_collation_for"), list_make1((yyvsp[-1].node)), (yylsp[-4])); } -#line 19420 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 19540 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 532: + case 532: /* func_expr_common_subexpr: CURRENT_DATE */ #line 2497 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = makeSQLValueFunction(PG_SVFOP_CURRENT_DATE, -1, (yylsp[0])); } -#line 19428 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 19548 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 533: + case 533: /* func_expr_common_subexpr: CURRENT_TIME */ #line 2501 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = makeSQLValueFunction(PG_SVFOP_CURRENT_TIME, -1, (yylsp[0])); } -#line 19436 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 19556 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 534: + case 534: /* func_expr_common_subexpr: CURRENT_TIME '(' Iconst ')' */ #line 2505 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = makeSQLValueFunction(PG_SVFOP_CURRENT_TIME_N, (yyvsp[-1].ival), (yylsp[-3])); } -#line 19444 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 19564 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 535: + case 535: /* func_expr_common_subexpr: CURRENT_TIMESTAMP */ #line 2509 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = makeSQLValueFunction(PG_SVFOP_CURRENT_TIMESTAMP, -1, (yylsp[0])); } -#line 19452 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 19572 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 536: + case 536: /* func_expr_common_subexpr: CURRENT_TIMESTAMP '(' Iconst ')' */ #line 2513 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = makeSQLValueFunction(PG_SVFOP_CURRENT_TIMESTAMP_N, (yyvsp[-1].ival), (yylsp[-3])); } -#line 19460 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 19580 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 537: + case 537: /* func_expr_common_subexpr: LOCALTIME */ #line 2517 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = makeSQLValueFunction(PG_SVFOP_LOCALTIME, -1, (yylsp[0])); } -#line 19468 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 19588 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 538: + case 538: /* func_expr_common_subexpr: LOCALTIME '(' Iconst ')' */ #line 2521 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = makeSQLValueFunction(PG_SVFOP_LOCALTIME_N, (yyvsp[-1].ival), (yylsp[-3])); } -#line 19476 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 19596 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 539: + case 539: /* func_expr_common_subexpr: LOCALTIMESTAMP */ #line 2525 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = makeSQLValueFunction(PG_SVFOP_LOCALTIMESTAMP, -1, (yylsp[0])); } -#line 19484 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 19604 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 540: + case 540: /* func_expr_common_subexpr: LOCALTIMESTAMP '(' Iconst ')' */ #line 2529 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = makeSQLValueFunction(PG_SVFOP_LOCALTIMESTAMP_N, (yyvsp[-1].ival), (yylsp[-3])); } -#line 19492 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 19612 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 541: + case 541: /* func_expr_common_subexpr: CURRENT_ROLE */ #line 2533 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = makeSQLValueFunction(PG_SVFOP_CURRENT_ROLE, -1, (yylsp[0])); } -#line 19500 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 19620 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 542: + case 542: /* func_expr_common_subexpr: CURRENT_USER */ #line 2537 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = makeSQLValueFunction(PG_SVFOP_CURRENT_USER, -1, (yylsp[0])); } -#line 19508 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 19628 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 543: + case 543: /* func_expr_common_subexpr: SESSION_USER */ #line 2541 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = makeSQLValueFunction(PG_SVFOP_SESSION_USER, -1, (yylsp[0])); } -#line 19516 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 19636 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 544: + case 544: /* func_expr_common_subexpr: USER */ #line 2545 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = makeSQLValueFunction(PG_SVFOP_USER, -1, (yylsp[0])); } -#line 19524 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 19644 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 545: + case 545: /* func_expr_common_subexpr: CURRENT_CATALOG */ #line 2549 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = makeSQLValueFunction(PG_SVFOP_CURRENT_CATALOG, -1, (yylsp[0])); } -#line 19532 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 19652 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 546: + case 546: /* func_expr_common_subexpr: CURRENT_SCHEMA */ #line 2553 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = makeSQLValueFunction(PG_SVFOP_CURRENT_SCHEMA, -1, (yylsp[0])); } -#line 19540 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 19660 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 547: + case 547: /* func_expr_common_subexpr: CAST '(' a_expr AS Typename ')' */ #line 2557 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = makeTypeCast((yyvsp[-3].node), (yyvsp[-1].typnam), 0, (yylsp[-5])); } -#line 19546 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 19666 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 548: + case 548: /* func_expr_common_subexpr: TRY_CAST '(' a_expr AS Typename ')' */ #line 2559 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = makeTypeCast((yyvsp[-3].node), (yyvsp[-1].typnam), 1, (yylsp[-5])); } -#line 19552 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 19672 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 549: + case 549: /* func_expr_common_subexpr: EXTRACT '(' extract_list ')' */ #line 2561 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = (PGNode *) makeFuncCall(SystemFuncName("date_part"), (yyvsp[-1].list), (yylsp[-3])); } -#line 19560 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 19680 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 550: + case 550: /* func_expr_common_subexpr: OVERLAY '(' overlay_list ')' */ #line 2565 "third_party/libpg_query/grammar/statements/select.y" { /* overlay(A PLACING B FROM C FOR D) is converted to @@ -19569,19 +19689,19 @@ YYLTYPE yylloc = yyloc_default; */ (yyval.node) = (PGNode *) makeFuncCall(SystemFuncName("overlay"), (yyvsp[-1].list), (yylsp[-3])); } -#line 19573 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 19693 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 551: + case 551: /* func_expr_common_subexpr: POSITION '(' position_list ')' */ #line 2574 "third_party/libpg_query/grammar/statements/select.y" { /* position(A in B) is converted to position(B, A) */ (yyval.node) = (PGNode *) makeFuncCall(SystemFuncName("position"), (yyvsp[-1].list), (yylsp[-3])); } -#line 19582 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 19702 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 552: + case 552: /* func_expr_common_subexpr: SUBSTRING '(' substr_list ')' */ #line 2579 "third_party/libpg_query/grammar/statements/select.y" { /* substring(A from B for C) is converted to @@ -19589,10 +19709,10 @@ YYLTYPE yylloc = yyloc_default; */ (yyval.node) = (PGNode *) makeFuncCall(SystemFuncName("substring"), (yyvsp[-1].list), (yylsp[-3])); } -#line 19593 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 19713 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 553: + case 553: /* func_expr_common_subexpr: TREAT '(' a_expr AS Typename ')' */ #line 2586 "third_party/libpg_query/grammar/statements/select.y" { /* TREAT(expr AS target) converts expr of a particular type to target, @@ -19608,10 +19728,10 @@ YYLTYPE yylloc = yyloc_default; list_make1((yyvsp[-3].node)), (yylsp[-5])); } -#line 19612 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 19732 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 554: + case 554: /* func_expr_common_subexpr: TRIM '(' BOTH trim_list ')' */ #line 2601 "third_party/libpg_query/grammar/statements/select.y" { /* various trim expressions are defined in SQL @@ -19619,42 +19739,42 @@ YYLTYPE yylloc = yyloc_default; */ (yyval.node) = (PGNode *) makeFuncCall(SystemFuncName("trim"), (yyvsp[-1].list), (yylsp[-4])); } -#line 19623 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 19743 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 555: + case 555: /* func_expr_common_subexpr: TRIM '(' LEADING trim_list ')' */ #line 2608 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = (PGNode *) makeFuncCall(SystemFuncName("ltrim"), (yyvsp[-1].list), (yylsp[-4])); } -#line 19631 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 19751 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 556: + case 556: /* func_expr_common_subexpr: TRIM '(' TRAILING trim_list ')' */ #line 2612 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = (PGNode *) makeFuncCall(SystemFuncName("rtrim"), (yyvsp[-1].list), (yylsp[-4])); } -#line 19639 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 19759 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 557: + case 557: /* func_expr_common_subexpr: TRIM '(' trim_list ')' */ #line 2616 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = (PGNode *) makeFuncCall(SystemFuncName("trim"), (yyvsp[-1].list), (yylsp[-3])); } -#line 19647 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 19767 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 558: + case 558: /* func_expr_common_subexpr: NULLIF '(' a_expr ',' a_expr ')' */ #line 2620 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_NULLIF, "=", (yyvsp[-3].node), (yyvsp[-1].node), (yylsp[-5])); } -#line 19655 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 19775 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 559: + case 559: /* func_expr_common_subexpr: COALESCE '(' expr_list_opt_comma ')' */ #line 2624 "third_party/libpg_query/grammar/statements/select.y" { PGCoalesceExpr *c = makeNode(PGCoalesceExpr); @@ -19662,92 +19782,92 @@ YYLTYPE yylloc = yyloc_default; c->location = (yylsp[-3]); (yyval.node) = (PGNode *)c; } -#line 19666 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 19786 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 560: + case 560: /* within_group_clause: WITHIN GROUP_P '(' sort_clause ')' */ #line 2637 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = (yyvsp[-1].list); } -#line 19672 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 19792 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 561: + case 561: /* within_group_clause: %empty */ #line 2638 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = NIL; } -#line 19678 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 19798 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 562: + case 562: /* filter_clause: FILTER '(' WHERE a_expr ')' */ #line 2642 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = (yyvsp[-1].node); } -#line 19684 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 19804 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 563: + case 563: /* filter_clause: FILTER '(' a_expr ')' */ #line 2643 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = (yyvsp[-1].node); } -#line 19690 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 19810 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 564: + case 564: /* filter_clause: %empty */ #line 2644 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = NULL; } -#line 19696 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 19816 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 565: + case 565: /* export_clause: EXPORT_STATE */ #line 2648 "third_party/libpg_query/grammar/statements/select.y" { (yyval.boolean) = true; } -#line 19702 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 19822 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 566: + case 566: /* export_clause: %empty */ #line 2649 "third_party/libpg_query/grammar/statements/select.y" { (yyval.boolean) = false; } -#line 19708 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 19828 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 567: + case 567: /* window_clause: WINDOW window_definition_list */ #line 2656 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = (yyvsp[0].list); } -#line 19714 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 19834 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 568: + case 568: /* window_clause: %empty */ #line 2657 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = NIL; } -#line 19720 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 19840 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 569: + case 569: /* window_definition_list: window_definition */ #line 2661 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = list_make1((yyvsp[0].windef)); } -#line 19726 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 19846 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 570: + case 570: /* window_definition_list: window_definition_list ',' window_definition */ #line 2663 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].windef)); } -#line 19732 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 19852 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 571: + case 571: /* window_definition: ColId AS window_specification */ #line 2668 "third_party/libpg_query/grammar/statements/select.y" { PGWindowDef *n = (yyvsp[0].windef); n->name = (yyvsp[-2].str); (yyval.windef) = n; } -#line 19742 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 19862 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 572: + case 572: /* over_clause: OVER window_specification */ #line 2676 "third_party/libpg_query/grammar/statements/select.y" { (yyval.windef) = (yyvsp[0].windef); } -#line 19748 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 19868 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 573: + case 573: /* over_clause: OVER ColId */ #line 2678 "third_party/libpg_query/grammar/statements/select.y" { PGWindowDef *n = makeNode(PGWindowDef); @@ -19761,16 +19881,16 @@ YYLTYPE yylloc = yyloc_default; n->location = (yylsp[0]); (yyval.windef) = n; } -#line 19765 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 19885 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 574: + case 574: /* over_clause: %empty */ #line 2691 "third_party/libpg_query/grammar/statements/select.y" { (yyval.windef) = NULL; } -#line 19771 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 19891 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 575: + case 575: /* window_specification: '(' opt_existing_window_name opt_partition_clause opt_sort_clause opt_frame_clause ')' */ #line 2696 "third_party/libpg_query/grammar/statements/select.y" { PGWindowDef *n = makeNode(PGWindowDef); @@ -19785,54 +19905,54 @@ YYLTYPE yylloc = yyloc_default; n->location = (yylsp[-5]); (yyval.windef) = n; } -#line 19789 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 19909 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 576: + case 576: /* opt_existing_window_name: ColId */ #line 2721 "third_party/libpg_query/grammar/statements/select.y" { (yyval.str) = (yyvsp[0].str); } -#line 19795 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 19915 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 577: + case 577: /* opt_existing_window_name: %empty */ #line 2722 "third_party/libpg_query/grammar/statements/select.y" { (yyval.str) = NULL; } -#line 19801 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 19921 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 578: + case 578: /* opt_partition_clause: PARTITION BY expr_list */ #line 2725 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = (yyvsp[0].list); } -#line 19807 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 19927 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 579: + case 579: /* opt_partition_clause: %empty */ #line 2726 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = NIL; } -#line 19813 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 19933 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 580: + case 580: /* opt_frame_clause: RANGE frame_extent */ #line 2738 "third_party/libpg_query/grammar/statements/select.y" { PGWindowDef *n = (yyvsp[0].windef); n->frameOptions |= FRAMEOPTION_NONDEFAULT | FRAMEOPTION_RANGE; (yyval.windef) = n; } -#line 19823 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 19943 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 581: + case 581: /* opt_frame_clause: ROWS frame_extent */ #line 2744 "third_party/libpg_query/grammar/statements/select.y" { PGWindowDef *n = (yyvsp[0].windef); n->frameOptions |= FRAMEOPTION_NONDEFAULT | FRAMEOPTION_ROWS; (yyval.windef) = n; } -#line 19833 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 19953 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 582: + case 582: /* opt_frame_clause: %empty */ #line 2750 "third_party/libpg_query/grammar/statements/select.y" { PGWindowDef *n = makeNode(PGWindowDef); @@ -19841,10 +19961,10 @@ YYLTYPE yylloc = yyloc_default; n->endOffset = NULL; (yyval.windef) = n; } -#line 19845 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 19965 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 583: + case 583: /* frame_extent: frame_bound */ #line 2760 "third_party/libpg_query/grammar/statements/select.y" { PGWindowDef *n = (yyvsp[0].windef); @@ -19862,10 +19982,10 @@ YYLTYPE yylloc = yyloc_default; n->frameOptions |= FRAMEOPTION_END_CURRENT_ROW; (yyval.windef) = n; } -#line 19866 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 19986 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 584: + case 584: /* frame_extent: BETWEEN frame_bound AND frame_bound */ #line 2777 "third_party/libpg_query/grammar/statements/select.y" { PGWindowDef *n1 = (yyvsp[-2].windef); @@ -19903,10 +20023,10 @@ YYLTYPE yylloc = yyloc_default; n1->endOffset = n2->startOffset; (yyval.windef) = n1; } -#line 19907 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 20027 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 585: + case 585: /* frame_bound: UNBOUNDED PRECEDING */ #line 2822 "third_party/libpg_query/grammar/statements/select.y" { PGWindowDef *n = makeNode(PGWindowDef); @@ -19915,10 +20035,10 @@ YYLTYPE yylloc = yyloc_default; n->endOffset = NULL; (yyval.windef) = n; } -#line 19919 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 20039 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 586: + case 586: /* frame_bound: UNBOUNDED FOLLOWING */ #line 2830 "third_party/libpg_query/grammar/statements/select.y" { PGWindowDef *n = makeNode(PGWindowDef); @@ -19927,10 +20047,10 @@ YYLTYPE yylloc = yyloc_default; n->endOffset = NULL; (yyval.windef) = n; } -#line 19931 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 20051 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 587: + case 587: /* frame_bound: CURRENT_P ROW */ #line 2838 "third_party/libpg_query/grammar/statements/select.y" { PGWindowDef *n = makeNode(PGWindowDef); @@ -19939,10 +20059,10 @@ YYLTYPE yylloc = yyloc_default; n->endOffset = NULL; (yyval.windef) = n; } -#line 19943 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 20063 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 588: + case 588: /* frame_bound: a_expr PRECEDING */ #line 2846 "third_party/libpg_query/grammar/statements/select.y" { PGWindowDef *n = makeNode(PGWindowDef); @@ -19951,10 +20071,10 @@ YYLTYPE yylloc = yyloc_default; n->endOffset = NULL; (yyval.windef) = n; } -#line 19955 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 20075 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 589: + case 589: /* frame_bound: a_expr FOLLOWING */ #line 2854 "third_party/libpg_query/grammar/statements/select.y" { PGWindowDef *n = makeNode(PGWindowDef); @@ -19963,34 +20083,34 @@ YYLTYPE yylloc = yyloc_default; n->endOffset = NULL; (yyval.windef) = n; } -#line 19967 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 20087 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 590: + case 590: /* qualified_row: ROW '(' expr_list_opt_comma ')' */ #line 2874 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = (yyvsp[-1].list); } -#line 19973 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 20093 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 591: + case 591: /* qualified_row: ROW '(' ')' */ #line 2875 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = NIL; } -#line 19979 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 20099 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 592: + case 592: /* row: qualified_row */ #line 2878 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = (yyvsp[0].list);} -#line 19985 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 20105 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 593: + case 593: /* row: '(' expr_list ',' a_expr ')' */ #line 2879 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = lappend((yyvsp[-3].list), (yyvsp[-1].node)); } -#line 19991 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 20111 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 594: + case 594: /* dict_arg: ColIdOrString ':' a_expr */ #line 2883 "third_party/libpg_query/grammar/statements/select.y" { PGNamedArgExpr *na = makeNode(PGNamedArgExpr); @@ -20000,298 +20120,298 @@ YYLTYPE yylloc = yyloc_default; na->location = (yylsp[-2]); (yyval.node) = (PGNode *) na; } -#line 20004 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 20124 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 595: + case 595: /* dict_arguments: dict_arg */ #line 2893 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = list_make1((yyvsp[0].node)); } -#line 20010 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 20130 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 596: + case 596: /* dict_arguments: dict_arguments ',' dict_arg */ #line 2894 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].node)); } -#line 20016 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 20136 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 597: + case 597: /* dict_arguments_opt_comma: dict_arguments */ #line 2898 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = (yyvsp[0].list); } -#line 20022 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 20142 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 598: + case 598: /* dict_arguments_opt_comma: dict_arguments ',' */ #line 2899 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = (yyvsp[-1].list); } -#line 20028 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 20148 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 599: + case 599: /* sub_type: ANY */ #line 2903 "third_party/libpg_query/grammar/statements/select.y" { (yyval.subquerytype) = PG_ANY_SUBLINK; } -#line 20034 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 20154 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 600: + case 600: /* sub_type: SOME */ #line 2904 "third_party/libpg_query/grammar/statements/select.y" { (yyval.subquerytype) = PG_ANY_SUBLINK; } -#line 20040 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 20160 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 601: + case 601: /* sub_type: ALL */ #line 2905 "third_party/libpg_query/grammar/statements/select.y" { (yyval.subquerytype) = PG_ALL_SUBLINK; } -#line 20046 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 20166 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 602: + case 602: /* all_Op: Op */ #line 2908 "third_party/libpg_query/grammar/statements/select.y" { (yyval.str) = (yyvsp[0].str); } -#line 20052 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 20172 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 603: + case 603: /* all_Op: MathOp */ #line 2909 "third_party/libpg_query/grammar/statements/select.y" { (yyval.str) = (char*) (yyvsp[0].conststr); } -#line 20058 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 20178 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 604: + case 604: /* MathOp: '+' */ #line 2912 "third_party/libpg_query/grammar/statements/select.y" { (yyval.conststr) = "+"; } -#line 20064 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 20184 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 605: + case 605: /* MathOp: '-' */ #line 2913 "third_party/libpg_query/grammar/statements/select.y" { (yyval.conststr) = "-"; } -#line 20070 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 20190 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 606: + case 606: /* MathOp: '*' */ #line 2914 "third_party/libpg_query/grammar/statements/select.y" { (yyval.conststr) = "*"; } -#line 20076 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 20196 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 607: + case 607: /* MathOp: '/' */ #line 2915 "third_party/libpg_query/grammar/statements/select.y" { (yyval.conststr) = "/"; } -#line 20082 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 20202 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 608: + case 608: /* MathOp: '%' */ #line 2916 "third_party/libpg_query/grammar/statements/select.y" { (yyval.conststr) = "%"; } -#line 20088 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 20208 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 609: + case 609: /* MathOp: '^' */ #line 2917 "third_party/libpg_query/grammar/statements/select.y" { (yyval.conststr) = "^"; } -#line 20094 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 20214 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 610: + case 610: /* MathOp: POWER_OF */ #line 2918 "third_party/libpg_query/grammar/statements/select.y" { (yyval.conststr) = "**"; } -#line 20100 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 20220 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 611: + case 611: /* MathOp: '<' */ #line 2919 "third_party/libpg_query/grammar/statements/select.y" { (yyval.conststr) = "<"; } -#line 20106 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 20226 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 612: + case 612: /* MathOp: '>' */ #line 2920 "third_party/libpg_query/grammar/statements/select.y" { (yyval.conststr) = ">"; } -#line 20112 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 20232 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 613: + case 613: /* MathOp: '=' */ #line 2921 "third_party/libpg_query/grammar/statements/select.y" { (yyval.conststr) = "="; } -#line 20118 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 20238 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 614: + case 614: /* MathOp: LESS_EQUALS */ #line 2922 "third_party/libpg_query/grammar/statements/select.y" { (yyval.conststr) = "<="; } -#line 20124 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 20244 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 615: + case 615: /* MathOp: GREATER_EQUALS */ #line 2923 "third_party/libpg_query/grammar/statements/select.y" { (yyval.conststr) = ">="; } -#line 20130 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 20250 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 616: + case 616: /* MathOp: NOT_EQUALS */ #line 2924 "third_party/libpg_query/grammar/statements/select.y" { (yyval.conststr) = "<>"; } -#line 20136 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 20256 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 617: + case 617: /* qual_Op: Op */ #line 2928 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = list_make1(makeString((yyvsp[0].str))); } -#line 20142 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 20262 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 618: + case 618: /* qual_Op: OPERATOR '(' any_operator ')' */ #line 2930 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = (yyvsp[-1].list); } -#line 20148 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 20268 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 619: + case 619: /* qual_all_Op: all_Op */ #line 2935 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = list_make1(makeString((yyvsp[0].str))); } -#line 20154 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 20274 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 620: + case 620: /* qual_all_Op: OPERATOR '(' any_operator ')' */ #line 2937 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = (yyvsp[-1].list); } -#line 20160 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 20280 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 621: + case 621: /* subquery_Op: all_Op */ #line 2942 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = list_make1(makeString((yyvsp[0].str))); } -#line 20166 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 20286 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 622: + case 622: /* subquery_Op: OPERATOR '(' any_operator ')' */ #line 2944 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = (yyvsp[-1].list); } -#line 20172 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 20292 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 623: + case 623: /* subquery_Op: LIKE */ #line 2946 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = list_make1(makeString("~~")); } -#line 20178 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 20298 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 624: + case 624: /* subquery_Op: NOT_LA LIKE */ #line 2948 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = list_make1(makeString("!~~")); } -#line 20184 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 20304 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 625: + case 625: /* subquery_Op: GLOB */ #line 2950 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = list_make1(makeString("~~~")); } -#line 20190 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 20310 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 626: + case 626: /* subquery_Op: NOT_LA GLOB */ #line 2952 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = list_make1(makeString("!~~~")); } -#line 20196 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 20316 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 627: + case 627: /* subquery_Op: ILIKE */ #line 2954 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = list_make1(makeString("~~*")); } -#line 20202 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 20322 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 628: + case 628: /* subquery_Op: NOT_LA ILIKE */ #line 2956 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = list_make1(makeString("!~~*")); } -#line 20208 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 20328 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 629: + case 629: /* any_operator: all_Op */ #line 2970 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = list_make1(makeString((yyvsp[0].str))); } -#line 20214 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 20334 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 630: + case 630: /* any_operator: ColId '.' any_operator */ #line 2972 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = lcons(makeString((yyvsp[-2].str)), (yyvsp[0].list)); } -#line 20220 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 20340 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 631: + case 631: /* expr_list: a_expr */ #line 2976 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = list_make1((yyvsp[0].node)); } -#line 20228 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 20348 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 632: + case 632: /* expr_list: expr_list ',' a_expr */ #line 2980 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].node)); } -#line 20236 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 20356 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 633: + case 633: /* expr_list_opt_comma: expr_list */ #line 2987 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = (yyvsp[0].list); } -#line 20244 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 20364 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 634: + case 634: /* expr_list_opt_comma: expr_list ',' */ #line 2992 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = (yyvsp[-1].list); } -#line 20252 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 20372 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 635: + case 635: /* opt_expr_list_opt_comma: expr_list_opt_comma */ #line 2999 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = (yyvsp[0].list); } -#line 20260 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 20380 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 636: + case 636: /* opt_expr_list_opt_comma: %empty */ #line 3003 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = NULL; } -#line 20268 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 20388 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 637: + case 637: /* func_arg_list: func_arg_expr */ #line 3012 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = list_make1((yyvsp[0].node)); } -#line 20276 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 20396 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 638: + case 638: /* func_arg_list: func_arg_list ',' func_arg_expr */ #line 3016 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].node)); } -#line 20284 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 20404 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 639: + case 639: /* func_arg_expr: a_expr */ #line 3022 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = (yyvsp[0].node); } -#line 20292 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 20412 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 640: + case 640: /* func_arg_expr: param_name COLON_EQUALS a_expr */ #line 3026 "third_party/libpg_query/grammar/statements/select.y" { PGNamedArgExpr *na = makeNode(PGNamedArgExpr); @@ -20301,10 +20421,10 @@ YYLTYPE yylloc = yyloc_default; na->location = (yylsp[-2]); (yyval.node) = (PGNode *) na; } -#line 20305 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 20425 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 641: + case 641: /* func_arg_expr: param_name EQUALS_GREATER a_expr */ #line 3035 "third_party/libpg_query/grammar/statements/select.y" { PGNamedArgExpr *na = makeNode(PGNamedArgExpr); @@ -20314,155 +20434,155 @@ YYLTYPE yylloc = yyloc_default; na->location = (yylsp[-2]); (yyval.node) = (PGNode *) na; } -#line 20318 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 20438 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 642: + case 642: /* type_list: Typename */ #line 3045 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = list_make1((yyvsp[0].typnam)); } -#line 20324 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 20444 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 643: + case 643: /* type_list: type_list ',' Typename */ #line 3046 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].typnam)); } -#line 20330 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 20450 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 644: + case 644: /* extract_list: extract_arg FROM a_expr */ #line 3051 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = list_make2(makeStringConst((yyvsp[-2].str), (yylsp[-2])), (yyvsp[0].node)); } -#line 20338 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 20458 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 645: + case 645: /* extract_list: %empty */ #line 3054 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = NIL; } -#line 20344 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 20464 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 646: + case 646: /* extract_arg: IDENT */ #line 3061 "third_party/libpg_query/grammar/statements/select.y" { (yyval.str) = (yyvsp[0].str); } -#line 20350 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 20470 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 647: + case 647: /* extract_arg: year_keyword */ #line 3062 "third_party/libpg_query/grammar/statements/select.y" { (yyval.str) = (char*) "year"; } -#line 20356 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 20476 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 648: + case 648: /* extract_arg: month_keyword */ #line 3063 "third_party/libpg_query/grammar/statements/select.y" { (yyval.str) = (char*) "month"; } -#line 20362 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 20482 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 649: + case 649: /* extract_arg: day_keyword */ #line 3064 "third_party/libpg_query/grammar/statements/select.y" { (yyval.str) = (char*) "day"; } -#line 20368 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 20488 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 650: + case 650: /* extract_arg: hour_keyword */ #line 3065 "third_party/libpg_query/grammar/statements/select.y" { (yyval.str) = (char*) "hour"; } -#line 20374 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 20494 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 651: + case 651: /* extract_arg: minute_keyword */ #line 3066 "third_party/libpg_query/grammar/statements/select.y" { (yyval.str) = (char*) "minute"; } -#line 20380 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 20500 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 652: + case 652: /* extract_arg: second_keyword */ #line 3067 "third_party/libpg_query/grammar/statements/select.y" { (yyval.str) = (char*) "second"; } -#line 20386 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 20506 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 653: + case 653: /* extract_arg: millisecond_keyword */ #line 3068 "third_party/libpg_query/grammar/statements/select.y" { (yyval.str) = (char*) "millisecond"; } -#line 20392 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 20512 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 654: + case 654: /* extract_arg: microsecond_keyword */ #line 3069 "third_party/libpg_query/grammar/statements/select.y" { (yyval.str) = (char*) "microsecond"; } -#line 20398 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 20518 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 655: + case 655: /* extract_arg: Sconst */ #line 3070 "third_party/libpg_query/grammar/statements/select.y" { (yyval.str) = (yyvsp[0].str); } -#line 20404 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 20524 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 656: + case 656: /* overlay_list: a_expr overlay_placing substr_from substr_for */ #line 3081 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = list_make4((yyvsp[-3].node), (yyvsp[-2].node), (yyvsp[-1].node), (yyvsp[0].node)); } -#line 20412 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 20532 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 657: + case 657: /* overlay_list: a_expr overlay_placing substr_from */ #line 3085 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = list_make3((yyvsp[-2].node), (yyvsp[-1].node), (yyvsp[0].node)); } -#line 20420 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 20540 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 658: + case 658: /* overlay_placing: PLACING a_expr */ #line 3092 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = (yyvsp[0].node); } -#line 20426 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 20546 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 659: + case 659: /* position_list: b_expr IN_P b_expr */ #line 3098 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = list_make2((yyvsp[0].node), (yyvsp[-2].node)); } -#line 20432 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 20552 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 660: + case 660: /* position_list: %empty */ #line 3099 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = NIL; } -#line 20438 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 20558 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 661: + case 661: /* substr_list: a_expr substr_from substr_for */ #line 3116 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = list_make3((yyvsp[-2].node), (yyvsp[-1].node), (yyvsp[0].node)); } -#line 20446 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 20566 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 662: + case 662: /* substr_list: a_expr substr_for substr_from */ #line 3120 "third_party/libpg_query/grammar/statements/select.y" { /* not legal per SQL99, but might as well allow it */ (yyval.list) = list_make3((yyvsp[-2].node), (yyvsp[0].node), (yyvsp[-1].node)); } -#line 20455 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 20575 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 663: + case 663: /* substr_list: a_expr substr_from */ #line 3125 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = list_make2((yyvsp[-1].node), (yyvsp[0].node)); } -#line 20463 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 20583 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 664: + case 664: /* substr_list: a_expr substr_for */ #line 3129 "third_party/libpg_query/grammar/statements/select.y" { /* @@ -20478,54 +20598,54 @@ YYLTYPE yylloc = yyloc_default; makeTypeCast((yyvsp[0].node), SystemTypeName("int4"), 0, -1)); } -#line 20482 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 20602 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 665: + case 665: /* substr_list: expr_list */ #line 3144 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = (yyvsp[0].list); } -#line 20490 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 20610 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 666: + case 666: /* substr_list: %empty */ #line 3148 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = NIL; } -#line 20496 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 20616 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 667: + case 667: /* substr_from: FROM a_expr */ #line 3152 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = (yyvsp[0].node); } -#line 20502 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 20622 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 668: + case 668: /* substr_for: FOR a_expr */ #line 3155 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = (yyvsp[0].node); } -#line 20508 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 20628 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 669: + case 669: /* trim_list: a_expr FROM expr_list_opt_comma */ #line 3158 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = lappend((yyvsp[0].list), (yyvsp[-2].node)); } -#line 20514 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 20634 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 670: + case 670: /* trim_list: FROM expr_list_opt_comma */ #line 3159 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = (yyvsp[0].list); } -#line 20520 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 20640 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 671: + case 671: /* trim_list: expr_list_opt_comma */ #line 3160 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = (yyvsp[0].list); } -#line 20526 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 20646 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 672: + case 672: /* in_expr: select_with_parens */ #line 3164 "third_party/libpg_query/grammar/statements/select.y" { PGSubLink *n = makeNode(PGSubLink); @@ -20533,16 +20653,16 @@ YYLTYPE yylloc = yyloc_default; /* other fields will be filled later */ (yyval.node) = (PGNode *)n; } -#line 20537 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 20657 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 673: + case 673: /* in_expr: '(' expr_list_opt_comma ')' */ #line 3170 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = (PGNode *)(yyvsp[-1].list); } -#line 20543 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 20663 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 674: + case 674: /* case_expr: CASE case_arg when_clause_list case_default END_P */ #line 3181 "third_party/libpg_query/grammar/statements/select.y" { PGCaseExpr *c = makeNode(PGCaseExpr); @@ -20553,22 +20673,22 @@ YYLTYPE yylloc = yyloc_default; c->location = (yylsp[-4]); (yyval.node) = (PGNode *)c; } -#line 20557 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 20677 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 675: + case 675: /* when_clause_list: when_clause */ #line 3194 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = list_make1((yyvsp[0].node)); } -#line 20563 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 20683 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 676: + case 676: /* when_clause_list: when_clause_list when_clause */ #line 3195 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = lappend((yyvsp[-1].list), (yyvsp[0].node)); } -#line 20569 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 20689 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 677: + case 677: /* when_clause: WHEN a_expr THEN a_expr */ #line 3200 "third_party/libpg_query/grammar/statements/select.y" { PGCaseWhen *w = makeNode(PGCaseWhen); @@ -20577,58 +20697,58 @@ YYLTYPE yylloc = yyloc_default; w->location = (yylsp[-3]); (yyval.node) = (PGNode *)w; } -#line 20581 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 20701 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 678: + case 678: /* case_default: ELSE a_expr */ #line 3210 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = (yyvsp[0].node); } -#line 20587 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 20707 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 679: + case 679: /* case_default: %empty */ #line 3211 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = NULL; } -#line 20593 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 20713 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 680: + case 680: /* case_arg: a_expr */ #line 3214 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = (yyvsp[0].node); } -#line 20599 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 20719 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 681: + case 681: /* case_arg: %empty */ #line 3215 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = NULL; } -#line 20605 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 20725 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 682: + case 682: /* columnref: ColId */ #line 3219 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = makeColumnRef((yyvsp[0].str), NIL, (yylsp[0]), yyscanner); } -#line 20613 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 20733 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 683: + case 683: /* columnref: ColId indirection */ #line 3223 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = makeColumnRef((yyvsp[-1].str), (yyvsp[0].list), (yylsp[-1]), yyscanner); } -#line 20621 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 20741 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 684: + case 684: /* indirection_el: '.' attr_name */ #line 3230 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = (PGNode *) makeString((yyvsp[0].str)); } -#line 20629 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 20749 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 685: + case 685: /* indirection_el: '[' a_expr ']' */ #line 3234 "third_party/libpg_query/grammar/statements/select.y" { PGAIndices *ai = makeNode(PGAIndices); @@ -20637,10 +20757,10 @@ YYLTYPE yylloc = yyloc_default; ai->uidx = (yyvsp[-1].node); (yyval.node) = (PGNode *) ai; } -#line 20641 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 20761 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 686: + case 686: /* indirection_el: '[' opt_slice_bound ':' opt_slice_bound ']' */ #line 3242 "third_party/libpg_query/grammar/statements/select.y" { PGAIndices *ai = makeNode(PGAIndices); @@ -20649,82 +20769,82 @@ YYLTYPE yylloc = yyloc_default; ai->uidx = (yyvsp[-1].node); (yyval.node) = (PGNode *) ai; } -#line 20653 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 20773 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 687: + case 687: /* opt_slice_bound: a_expr */ #line 3252 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = (yyvsp[0].node); } -#line 20659 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 20779 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 688: + case 688: /* opt_slice_bound: %empty */ #line 3253 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = NULL; } -#line 20665 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 20785 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 689: + case 689: /* indirection: indirection_el */ #line 3257 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = list_make1((yyvsp[0].node)); } -#line 20671 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 20791 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 690: + case 690: /* indirection: indirection indirection_el */ #line 3258 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = lappend((yyvsp[-1].list), (yyvsp[0].node)); } -#line 20677 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 20797 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 691: + case 691: /* opt_indirection: %empty */ #line 3262 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = NIL; } -#line 20683 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 20803 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 692: + case 692: /* opt_indirection: opt_indirection indirection_el */ #line 3263 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = lappend((yyvsp[-1].list), (yyvsp[0].node)); } -#line 20689 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 20809 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 695: + case 695: /* opt_target_list_opt_comma: target_list_opt_comma */ #line 3277 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = (yyvsp[0].list); } -#line 20695 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 20815 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 696: + case 696: /* opt_target_list_opt_comma: %empty */ #line 3278 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = NIL; } -#line 20701 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 20821 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 697: + case 697: /* target_list: target_el */ #line 3282 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = list_make1((yyvsp[0].target)); } -#line 20707 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 20827 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 698: + case 698: /* target_list: target_list ',' target_el */ #line 3283 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].target)); } -#line 20713 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 20833 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 699: + case 699: /* target_list_opt_comma: target_list */ #line 3287 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = (yyvsp[0].list); } -#line 20719 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 20839 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 700: + case 700: /* target_list_opt_comma: target_list ',' */ #line 3288 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = (yyvsp[-1].list); } -#line 20725 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 20845 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 701: + case 701: /* target_el: a_expr AS ColLabelOrString */ #line 3292 "third_party/libpg_query/grammar/statements/select.y" { (yyval.target) = makeNode(PGResTarget); @@ -20733,10 +20853,10 @@ YYLTYPE yylloc = yyloc_default; (yyval.target)->val = (PGNode *)(yyvsp[-2].node); (yyval.target)->location = (yylsp[-2]); } -#line 20737 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 20857 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 702: + case 702: /* target_el: a_expr IDENT */ #line 3308 "third_party/libpg_query/grammar/statements/select.y" { (yyval.target) = makeNode(PGResTarget); @@ -20745,10 +20865,10 @@ YYLTYPE yylloc = yyloc_default; (yyval.target)->val = (PGNode *)(yyvsp[-1].node); (yyval.target)->location = (yylsp[-1]); } -#line 20749 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 20869 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 703: + case 703: /* target_el: a_expr */ #line 3316 "third_party/libpg_query/grammar/statements/select.y" { (yyval.target) = makeNode(PGResTarget); @@ -20757,10 +20877,10 @@ YYLTYPE yylloc = yyloc_default; (yyval.target)->val = (PGNode *)(yyvsp[0].node); (yyval.target)->location = (yylsp[0]); } -#line 20761 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 20881 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 704: + case 704: /* target_el: '*' opt_except_list opt_replace_list */ #line 3324 "third_party/libpg_query/grammar/statements/select.y" { PGColumnRef *n = makeNode(PGColumnRef); @@ -20776,10 +20896,10 @@ YYLTYPE yylloc = yyloc_default; (yyval.target)->val = (PGNode *)n; (yyval.target)->location = (yylsp[-2]); } -#line 20780 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 20900 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 705: + case 705: /* target_el: ColId '.' '*' opt_except_list opt_replace_list */ #line 3339 "third_party/libpg_query/grammar/statements/select.y" { PGColumnRef *n = makeNode(PGColumnRef); @@ -20796,102 +20916,102 @@ YYLTYPE yylloc = yyloc_default; (yyval.target)->val = (PGNode *)n; (yyval.target)->location = (yylsp[-4]); } -#line 20800 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 20920 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 706: + case 706: /* except_list: EXCLUDE '(' name_list_opt_comma ')' */ #line 3356 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = (yyvsp[-1].list); } -#line 20806 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 20926 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 707: + case 707: /* except_list: EXCLUDE ColId */ #line 3357 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = list_make1(makeString((yyvsp[0].str))); } -#line 20812 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 20932 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 708: + case 708: /* opt_except_list: except_list */ #line 3360 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = (yyvsp[0].list); } -#line 20818 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 20938 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 709: + case 709: /* opt_except_list: %empty */ #line 3361 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = NULL; } -#line 20824 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 20944 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 710: + case 710: /* replace_list_el: a_expr AS ColId */ #line 3364 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = list_make2((yyvsp[-2].node), makeString((yyvsp[0].str))); } -#line 20830 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 20950 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 711: + case 711: /* replace_list: replace_list_el */ #line 3368 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = list_make1((yyvsp[0].list)); } -#line 20836 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 20956 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 712: + case 712: /* replace_list: replace_list ',' replace_list_el */ #line 3369 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].list)); } -#line 20842 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 20962 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 713: + case 713: /* replace_list_opt_comma: replace_list */ #line 3373 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = (yyvsp[0].list); } -#line 20848 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 20968 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 714: + case 714: /* replace_list_opt_comma: replace_list ',' */ #line 3374 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = (yyvsp[-1].list); } -#line 20854 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 20974 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 715: + case 715: /* opt_replace_list: REPLACE '(' replace_list_opt_comma ')' */ #line 3377 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = (yyvsp[-1].list); } -#line 20860 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 20980 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 716: + case 716: /* opt_replace_list: REPLACE replace_list_el */ #line 3378 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = list_make1((yyvsp[0].list)); } -#line 20866 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 20986 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 717: + case 717: /* opt_replace_list: %empty */ #line 3379 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = NULL; } -#line 20872 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 20992 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 718: + case 718: /* qualified_name_list: qualified_name */ #line 3389 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = list_make1((yyvsp[0].range)); } -#line 20878 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 20998 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 719: + case 719: /* qualified_name_list: qualified_name_list ',' qualified_name */ #line 3390 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].range)); } -#line 20884 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 21004 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 720: + case 720: /* qualified_name: ColIdOrString */ #line 3402 "third_party/libpg_query/grammar/statements/select.y" { (yyval.range) = makeRangeVar(NULL, (yyvsp[0].str), (yylsp[0])); } -#line 20892 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 21012 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 721: + case 721: /* qualified_name: ColId indirection */ #line 3406 "third_party/libpg_query/grammar/statements/select.y" { check_qualified_name((yyvsp[0].list), yyscanner); @@ -20917,77 +21037,77 @@ YYLTYPE yylloc = yyloc_default; break; } } -#line 20921 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 21041 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 722: + case 722: /* name_list: name */ #line 3433 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = list_make1(makeString((yyvsp[0].str))); } -#line 20927 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 21047 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 723: + case 723: /* name_list: name_list ',' name */ #line 3435 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = lappend((yyvsp[-2].list), makeString((yyvsp[0].str))); } -#line 20933 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 21053 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 724: + case 724: /* name_list_opt_comma: name_list */ #line 3440 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = (yyvsp[0].list); } -#line 20939 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 21059 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 725: + case 725: /* name_list_opt_comma: name_list ',' */ #line 3441 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = (yyvsp[-1].list); } -#line 20945 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 21065 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 726: + case 726: /* name: ColIdOrString */ #line 3444 "third_party/libpg_query/grammar/statements/select.y" { (yyval.str) = (yyvsp[0].str); } -#line 20951 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 21071 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 727: + case 727: /* attr_name: ColLabel */ #line 3446 "third_party/libpg_query/grammar/statements/select.y" { (yyval.str) = (yyvsp[0].str); } -#line 20957 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 21077 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 728: + case 728: /* func_name: function_name_token */ #line 3457 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = list_make1(makeString((yyvsp[0].str))); } -#line 20963 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 21083 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 729: + case 729: /* func_name: ColId indirection */ #line 3460 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = check_func_name(lcons(makeString((yyvsp[-1].str)), (yyvsp[0].list)), yyscanner); } -#line 20972 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 21092 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 730: + case 730: /* AexprConst: Iconst */ #line 3471 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = makeIntConst((yyvsp[0].ival), (yylsp[0])); } -#line 20980 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 21100 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 731: + case 731: /* AexprConst: FCONST */ #line 3475 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = makeFloatConst((yyvsp[0].str), (yylsp[0])); } -#line 20988 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 21108 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 732: + case 732: /* AexprConst: Sconst opt_indirection */ #line 3479 "third_party/libpg_query/grammar/statements/select.y" { if ((yyvsp[0].list)) @@ -21000,18 +21120,18 @@ YYLTYPE yylloc = yyloc_default; else (yyval.node) = makeStringConst((yyvsp[-1].str), (yylsp[-1])); } -#line 21004 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 21124 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 733: + case 733: /* AexprConst: BCONST */ #line 3491 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = makeBitStringConst((yyvsp[0].str), (yylsp[0])); } -#line 21012 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 21132 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 734: + case 734: /* AexprConst: XCONST */ #line 3495 "third_party/libpg_query/grammar/statements/select.y" { /* This is a bit constant per SQL99: @@ -21021,10 +21141,10 @@ YYLTYPE yylloc = yyloc_default; */ (yyval.node) = makeBitStringConst((yyvsp[0].str), (yylsp[0])); } -#line 21025 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 21145 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 735: + case 735: /* AexprConst: func_name Sconst */ #line 3504 "third_party/libpg_query/grammar/statements/select.y" { /* generic type 'literal' syntax */ @@ -21032,10 +21152,10 @@ YYLTYPE yylloc = yyloc_default; t->location = (yylsp[-1]); (yyval.node) = makeStringConstCast((yyvsp[0].str), (yylsp[0]), t); } -#line 21036 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 21156 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 736: + case 736: /* AexprConst: func_name '(' func_arg_list opt_sort_clause opt_ignore_nulls ')' Sconst */ #line 3511 "third_party/libpg_query/grammar/statements/select.y" { /* generic syntax with a type modifier */ @@ -21074,234 +21194,234 @@ YYLTYPE yylloc = yyloc_default; t->location = (yylsp[-6]); (yyval.node) = makeStringConstCast((yyvsp[0].str), (yylsp[0]), t); } -#line 21078 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 21198 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 737: + case 737: /* AexprConst: ConstTypename Sconst */ #line 3549 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = makeStringConstCast((yyvsp[0].str), (yylsp[0]), (yyvsp[-1].typnam)); } -#line 21086 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 21206 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 738: + case 738: /* AexprConst: ConstInterval '(' a_expr ')' opt_interval */ #line 3553 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = makeIntervalNode((yyvsp[-2].node), (yylsp[-2]), (yyvsp[0].list)); } -#line 21094 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 21214 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 739: + case 739: /* AexprConst: ConstInterval Iconst opt_interval */ #line 3557 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = makeIntervalNode((yyvsp[-1].ival), (yylsp[-1]), (yyvsp[0].list)); } -#line 21102 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 21222 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 740: + case 740: /* AexprConst: ConstInterval Sconst opt_interval */ #line 3561 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = makeIntervalNode((yyvsp[-1].str), (yylsp[-1]), (yyvsp[0].list)); } -#line 21110 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 21230 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 741: + case 741: /* AexprConst: TRUE_P */ #line 3565 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = makeBoolAConst(true, (yylsp[0])); } -#line 21118 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 21238 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 742: + case 742: /* AexprConst: FALSE_P */ #line 3569 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = makeBoolAConst(false, (yylsp[0])); } -#line 21126 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 21246 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 743: + case 743: /* AexprConst: NULL_P */ #line 3573 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = makeNullAConst((yylsp[0])); } -#line 21134 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 21254 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 744: + case 744: /* Iconst: ICONST */ #line 3578 "third_party/libpg_query/grammar/statements/select.y" { (yyval.ival) = (yyvsp[0].ival); } -#line 21140 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 21260 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 745: + case 745: /* Sconst: SCONST */ #line 3579 "third_party/libpg_query/grammar/statements/select.y" { (yyval.str) = (yyvsp[0].str); } -#line 21146 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 21266 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 746: + case 746: /* ColId: IDENT */ #line 3595 "third_party/libpg_query/grammar/statements/select.y" { (yyval.str) = (yyvsp[0].str); } -#line 21152 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 21272 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 747: + case 747: /* ColId: unreserved_keyword */ #line 3596 "third_party/libpg_query/grammar/statements/select.y" { (yyval.str) = pstrdup((yyvsp[0].keyword)); } -#line 21158 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 21278 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 748: + case 748: /* ColId: col_name_keyword */ #line 3597 "third_party/libpg_query/grammar/statements/select.y" { (yyval.str) = pstrdup((yyvsp[0].keyword)); } -#line 21164 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 21284 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 749: + case 749: /* ColIdOrString: ColId */ #line 3600 "third_party/libpg_query/grammar/statements/select.y" { (yyval.str) = (yyvsp[0].str); } -#line 21170 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 21290 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 750: + case 750: /* ColIdOrString: SCONST */ #line 3601 "third_party/libpg_query/grammar/statements/select.y" { (yyval.str) = (yyvsp[0].str); } -#line 21176 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 21296 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 751: + case 751: /* type_function_name: IDENT */ #line 3607 "third_party/libpg_query/grammar/statements/select.y" { (yyval.str) = (yyvsp[0].str); } -#line 21182 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 21302 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 752: + case 752: /* type_function_name: unreserved_keyword */ #line 3608 "third_party/libpg_query/grammar/statements/select.y" { (yyval.str) = pstrdup((yyvsp[0].keyword)); } -#line 21188 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 21308 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 753: + case 753: /* type_function_name: type_func_name_keyword */ #line 3609 "third_party/libpg_query/grammar/statements/select.y" { (yyval.str) = pstrdup((yyvsp[0].keyword)); } -#line 21194 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 21314 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 754: + case 754: /* function_name_token: IDENT */ #line 3612 "third_party/libpg_query/grammar/statements/select.y" { (yyval.str) = (yyvsp[0].str); } -#line 21200 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 21320 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 755: + case 755: /* function_name_token: unreserved_keyword */ #line 3613 "third_party/libpg_query/grammar/statements/select.y" { (yyval.str) = pstrdup((yyvsp[0].keyword)); } -#line 21206 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 21326 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 756: + case 756: /* function_name_token: func_name_keyword */ #line 3614 "third_party/libpg_query/grammar/statements/select.y" { (yyval.str) = pstrdup((yyvsp[0].keyword)); } -#line 21212 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 21332 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 757: + case 757: /* type_name_token: IDENT */ #line 3617 "third_party/libpg_query/grammar/statements/select.y" { (yyval.str) = (yyvsp[0].str); } -#line 21218 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 21338 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 758: + case 758: /* type_name_token: unreserved_keyword */ #line 3618 "third_party/libpg_query/grammar/statements/select.y" { (yyval.str) = pstrdup((yyvsp[0].keyword)); } -#line 21224 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 21344 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 759: + case 759: /* type_name_token: type_name_keyword */ #line 3619 "third_party/libpg_query/grammar/statements/select.y" { (yyval.str) = pstrdup((yyvsp[0].keyword)); } -#line 21230 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 21350 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 760: + case 760: /* any_name: ColId */ #line 3622 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = list_make1(makeString((yyvsp[0].str))); } -#line 21236 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 21356 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 761: + case 761: /* any_name: ColId attrs */ #line 3623 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = lcons(makeString((yyvsp[-1].str)), (yyvsp[0].list)); } -#line 21242 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 21362 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 762: + case 762: /* attrs: '.' attr_name */ #line 3627 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = list_make1(makeString((yyvsp[0].str))); } -#line 21248 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 21368 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 763: + case 763: /* attrs: attrs '.' attr_name */ #line 3629 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = lappend((yyvsp[-2].list), makeString((yyvsp[0].str))); } -#line 21254 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 21374 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 764: + case 764: /* opt_name_list: '(' name_list_opt_comma ')' */ #line 3633 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = (yyvsp[-1].list); } -#line 21260 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 21380 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 765: + case 765: /* opt_name_list: %empty */ #line 3634 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = NIL; } -#line 21266 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 21386 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 767: + case 767: /* ColLabel: IDENT */ #line 3645 "third_party/libpg_query/grammar/statements/select.y" { (yyval.str) = (yyvsp[0].str); } -#line 21272 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 21392 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 768: + case 768: /* ColLabel: other_keyword */ #line 3646 "third_party/libpg_query/grammar/statements/select.y" { (yyval.str) = pstrdup((yyvsp[0].keyword)); } -#line 21278 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 21398 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 769: + case 769: /* ColLabel: unreserved_keyword */ #line 3647 "third_party/libpg_query/grammar/statements/select.y" { (yyval.str) = pstrdup((yyvsp[0].keyword)); } -#line 21284 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 21404 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 770: + case 770: /* ColLabel: reserved_keyword */ #line 3648 "third_party/libpg_query/grammar/statements/select.y" { (yyval.str) = pstrdup((yyvsp[0].keyword)); } -#line 21290 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 21410 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 771: + case 771: /* ColLabelOrString: ColLabel */ #line 3651 "third_party/libpg_query/grammar/statements/select.y" { (yyval.str) = (yyvsp[0].str); } -#line 21296 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 21416 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 772: + case 772: /* ColLabelOrString: SCONST */ #line 3652 "third_party/libpg_query/grammar/statements/select.y" { (yyval.str) = (yyvsp[0].str); } -#line 21302 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 21422 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 773: + case 773: /* PragmaStmt: PRAGMA_P ColId */ #line 8 "third_party/libpg_query/grammar/statements/pragma.y" { PGPragmaStmt *n = makeNode(PGPragmaStmt); @@ -21309,10 +21429,10 @@ YYLTYPE yylloc = yyloc_default; n->name = (yyvsp[0].str); (yyval.node) = (PGNode *)n; } -#line 21313 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 21433 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 774: + case 774: /* PragmaStmt: PRAGMA_P ColId '=' var_list */ #line 15 "third_party/libpg_query/grammar/statements/pragma.y" { PGPragmaStmt *n = makeNode(PGPragmaStmt); @@ -21321,10 +21441,10 @@ YYLTYPE yylloc = yyloc_default; n->args = (yyvsp[0].list); (yyval.node) = (PGNode *)n; } -#line 21325 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 21445 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 775: + case 775: /* PragmaStmt: PRAGMA_P ColId '(' func_arg_list ')' */ #line 23 "third_party/libpg_query/grammar/statements/pragma.y" { PGPragmaStmt *n = makeNode(PGPragmaStmt); @@ -21333,10 +21453,10 @@ YYLTYPE yylloc = yyloc_default; n->args = (yyvsp[-1].list); (yyval.node) = (PGNode *)n; } -#line 21337 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 21457 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 776: + case 776: /* CreateAsStmt: CREATE_P OptTemp TABLE create_as_target AS SelectStmt opt_with_data */ #line 12 "third_party/libpg_query/grammar/statements/create_as.y" { PGCreateTableAsStmt *ctas = makeNode(PGCreateTableAsStmt); @@ -21350,10 +21470,10 @@ YYLTYPE yylloc = yyloc_default; (yyvsp[-3].into)->skipData = !((yyvsp[0].boolean)); (yyval.node) = (PGNode *) ctas; } -#line 21354 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 21474 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 777: + case 777: /* CreateAsStmt: CREATE_P OptTemp TABLE IF_P NOT EXISTS create_as_target AS SelectStmt opt_with_data */ #line 25 "third_party/libpg_query/grammar/statements/create_as.y" { PGCreateTableAsStmt *ctas = makeNode(PGCreateTableAsStmt); @@ -21367,10 +21487,10 @@ YYLTYPE yylloc = yyloc_default; (yyvsp[-3].into)->skipData = !((yyvsp[0].boolean)); (yyval.node) = (PGNode *) ctas; } -#line 21371 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 21491 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 778: + case 778: /* CreateAsStmt: CREATE_P OR REPLACE OptTemp TABLE create_as_target AS SelectStmt opt_with_data */ #line 38 "third_party/libpg_query/grammar/statements/create_as.y" { PGCreateTableAsStmt *ctas = makeNode(PGCreateTableAsStmt); @@ -21384,28 +21504,28 @@ YYLTYPE yylloc = yyloc_default; (yyvsp[-3].into)->skipData = !((yyvsp[0].boolean)); (yyval.node) = (PGNode *) ctas; } -#line 21388 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 21508 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 779: + case 779: /* opt_with_data: WITH DATA_P */ #line 54 "third_party/libpg_query/grammar/statements/create_as.y" { (yyval.boolean) = true; } -#line 21394 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 21514 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 780: + case 780: /* opt_with_data: WITH NO DATA_P */ #line 55 "third_party/libpg_query/grammar/statements/create_as.y" { (yyval.boolean) = false; } -#line 21400 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 21520 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 781: + case 781: /* opt_with_data: %empty */ #line 56 "third_party/libpg_query/grammar/statements/create_as.y" { (yyval.boolean) = true; } -#line 21406 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 21526 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 782: + case 782: /* create_as_target: qualified_name opt_column_list OptWith OnCommitOption */ #line 62 "third_party/libpg_query/grammar/statements/create_as.y" { (yyval.into) = makeNode(PGIntoClause); @@ -21416,10 +21536,10 @@ YYLTYPE yylloc = yyloc_default; (yyval.into)->viewQuery = NULL; (yyval.into)->skipData = false; /* might get changed later */ } -#line 21420 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 21540 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 783: + case 783: /* VariableShowStmt: show_or_describe SelectStmt */ #line 3 "third_party/libpg_query/grammar/statements/variable_show.y" { PGVariableShowSelectStmt *n = makeNode(PGVariableShowSelectStmt); @@ -21428,10 +21548,10 @@ YYLTYPE yylloc = yyloc_default; n->is_summary = 0; (yyval.node) = (PGNode *) n; } -#line 21432 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 21552 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 784: + case 784: /* VariableShowStmt: SUMMARIZE SelectStmt */ #line 10 "third_party/libpg_query/grammar/statements/variable_show.y" { PGVariableShowSelectStmt *n = makeNode(PGVariableShowSelectStmt); @@ -21440,10 +21560,10 @@ YYLTYPE yylloc = yyloc_default; n->is_summary = 1; (yyval.node) = (PGNode *) n; } -#line 21444 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 21564 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 785: + case 785: /* VariableShowStmt: SUMMARIZE var_name */ #line 18 "third_party/libpg_query/grammar/statements/variable_show.y" { PGVariableShowStmt *n = makeNode(PGVariableShowStmt); @@ -21451,10 +21571,10 @@ YYLTYPE yylloc = yyloc_default; n->is_summary = 1; (yyval.node) = (PGNode *) n; } -#line 21455 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 21575 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 786: + case 786: /* VariableShowStmt: show_or_describe var_name */ #line 25 "third_party/libpg_query/grammar/statements/variable_show.y" { PGVariableShowStmt *n = makeNode(PGVariableShowStmt); @@ -21462,10 +21582,10 @@ YYLTYPE yylloc = yyloc_default; n->is_summary = 0; (yyval.node) = (PGNode *) n; } -#line 21466 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 21586 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 787: + case 787: /* VariableShowStmt: show_or_describe TIME ZONE */ #line 32 "third_party/libpg_query/grammar/statements/variable_show.y" { PGVariableShowStmt *n = makeNode(PGVariableShowStmt); @@ -21473,10 +21593,10 @@ YYLTYPE yylloc = yyloc_default; n->is_summary = 0; (yyval.node) = (PGNode *) n; } -#line 21477 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 21597 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 788: + case 788: /* VariableShowStmt: show_or_describe TRANSACTION ISOLATION LEVEL */ #line 39 "third_party/libpg_query/grammar/statements/variable_show.y" { PGVariableShowStmt *n = makeNode(PGVariableShowStmt); @@ -21484,10 +21604,10 @@ YYLTYPE yylloc = yyloc_default; n->is_summary = 0; (yyval.node) = (PGNode *) n; } -#line 21488 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 21608 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 789: + case 789: /* VariableShowStmt: show_or_describe ALL */ #line 46 "third_party/libpg_query/grammar/statements/variable_show.y" { PGVariableShowStmt *n = makeNode(PGVariableShowStmt); @@ -21495,10 +21615,10 @@ YYLTYPE yylloc = yyloc_default; n->is_summary = 0; (yyval.node) = (PGNode *) n; } -#line 21499 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 21619 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 790: + case 790: /* VariableShowStmt: show_or_describe */ #line 53 "third_party/libpg_query/grammar/statements/variable_show.y" { PGVariableShowStmt *n = makeNode(PGVariableShowStmt); @@ -21506,22 +21626,22 @@ YYLTYPE yylloc = yyloc_default; n->is_summary = 0; (yyval.node) = (PGNode *) n; } -#line 21510 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 21630 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 793: + case 793: /* var_name: ColId */ #line 63 "third_party/libpg_query/grammar/statements/variable_show.y" { (yyval.str) = (yyvsp[0].str); } -#line 21516 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 21636 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 794: + case 794: /* var_name: var_name '.' ColId */ #line 65 "third_party/libpg_query/grammar/statements/variable_show.y" { (yyval.str) = psprintf("%s.%s", (yyvsp[-2].str), (yyvsp[0].str)); } -#line 21522 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 21642 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 795: + case 795: /* AlterSeqStmt: ALTER SEQUENCE qualified_name SeqOptList */ #line 10 "third_party/libpg_query/grammar/statements/alter_sequence.y" { PGAlterSeqStmt *n = makeNode(PGAlterSeqStmt); @@ -21530,10 +21650,10 @@ YYLTYPE yylloc = yyloc_default; n->missing_ok = false; (yyval.node) = (PGNode *)n; } -#line 21534 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 21654 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 796: + case 796: /* AlterSeqStmt: ALTER SEQUENCE IF_P EXISTS qualified_name SeqOptList */ #line 18 "third_party/libpg_query/grammar/statements/alter_sequence.y" { PGAlterSeqStmt *n = makeNode(PGAlterSeqStmt); @@ -21542,250 +21662,250 @@ YYLTYPE yylloc = yyloc_default; n->missing_ok = true; (yyval.node) = (PGNode *)n; } -#line 21546 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 21666 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 797: + case 797: /* SeqOptList: SeqOptElem */ #line 29 "third_party/libpg_query/grammar/statements/alter_sequence.y" { (yyval.list) = list_make1((yyvsp[0].defelt)); } -#line 21552 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 21672 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 798: + case 798: /* SeqOptList: SeqOptList SeqOptElem */ #line 30 "third_party/libpg_query/grammar/statements/alter_sequence.y" { (yyval.list) = lappend((yyvsp[-1].list), (yyvsp[0].defelt)); } -#line 21558 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 21678 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 799: + case 799: /* opt_with: WITH */ #line 34 "third_party/libpg_query/grammar/statements/alter_sequence.y" {} -#line 21564 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 21684 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 800: + case 800: /* opt_with: WITH_LA */ #line 35 "third_party/libpg_query/grammar/statements/alter_sequence.y" {} -#line 21570 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 21690 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 801: + case 801: /* opt_with: %empty */ #line 36 "third_party/libpg_query/grammar/statements/alter_sequence.y" {} -#line 21576 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 21696 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 802: + case 802: /* NumericOnly: FCONST */ #line 41 "third_party/libpg_query/grammar/statements/alter_sequence.y" { (yyval.value) = makeFloat((yyvsp[0].str)); } -#line 21582 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 21702 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 803: + case 803: /* NumericOnly: '+' FCONST */ #line 42 "third_party/libpg_query/grammar/statements/alter_sequence.y" { (yyval.value) = makeFloat((yyvsp[0].str)); } -#line 21588 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 21708 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 804: + case 804: /* NumericOnly: '-' FCONST */ #line 44 "third_party/libpg_query/grammar/statements/alter_sequence.y" { (yyval.value) = makeFloat((yyvsp[0].str)); doNegateFloat((yyval.value)); } -#line 21597 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 21717 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 805: + case 805: /* NumericOnly: SignedIconst */ #line 48 "third_party/libpg_query/grammar/statements/alter_sequence.y" { (yyval.value) = makeInteger((yyvsp[0].ival)); } -#line 21603 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 21723 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 806: + case 806: /* SeqOptElem: AS SimpleTypename */ #line 53 "third_party/libpg_query/grammar/statements/alter_sequence.y" { (yyval.defelt) = makeDefElem("as", (PGNode *)(yyvsp[0].typnam), (yylsp[-1])); } -#line 21611 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 21731 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 807: + case 807: /* SeqOptElem: CACHE NumericOnly */ #line 57 "third_party/libpg_query/grammar/statements/alter_sequence.y" { (yyval.defelt) = makeDefElem("cache", (PGNode *)(yyvsp[0].value), (yylsp[-1])); } -#line 21619 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 21739 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 808: + case 808: /* SeqOptElem: CYCLE */ #line 61 "third_party/libpg_query/grammar/statements/alter_sequence.y" { (yyval.defelt) = makeDefElem("cycle", (PGNode *)makeInteger(true), (yylsp[0])); } -#line 21627 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 21747 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 809: + case 809: /* SeqOptElem: NO CYCLE */ #line 65 "third_party/libpg_query/grammar/statements/alter_sequence.y" { (yyval.defelt) = makeDefElem("cycle", (PGNode *)makeInteger(false), (yylsp[-1])); } -#line 21635 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 21755 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 810: + case 810: /* SeqOptElem: INCREMENT opt_by NumericOnly */ #line 69 "third_party/libpg_query/grammar/statements/alter_sequence.y" { (yyval.defelt) = makeDefElem("increment", (PGNode *)(yyvsp[0].value), (yylsp[-2])); } -#line 21643 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 21763 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 811: + case 811: /* SeqOptElem: MAXVALUE NumericOnly */ #line 73 "third_party/libpg_query/grammar/statements/alter_sequence.y" { (yyval.defelt) = makeDefElem("maxvalue", (PGNode *)(yyvsp[0].value), (yylsp[-1])); } -#line 21651 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 21771 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 812: + case 812: /* SeqOptElem: MINVALUE NumericOnly */ #line 77 "third_party/libpg_query/grammar/statements/alter_sequence.y" { (yyval.defelt) = makeDefElem("minvalue", (PGNode *)(yyvsp[0].value), (yylsp[-1])); } -#line 21659 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 21779 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 813: + case 813: /* SeqOptElem: NO MAXVALUE */ #line 81 "third_party/libpg_query/grammar/statements/alter_sequence.y" { (yyval.defelt) = makeDefElem("maxvalue", NULL, (yylsp[-1])); } -#line 21667 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 21787 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 814: + case 814: /* SeqOptElem: NO MINVALUE */ #line 85 "third_party/libpg_query/grammar/statements/alter_sequence.y" { (yyval.defelt) = makeDefElem("minvalue", NULL, (yylsp[-1])); } -#line 21675 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 21795 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 815: + case 815: /* SeqOptElem: OWNED BY any_name */ #line 89 "third_party/libpg_query/grammar/statements/alter_sequence.y" { (yyval.defelt) = makeDefElem("owned_by", (PGNode *)(yyvsp[0].list), (yylsp[-2])); } -#line 21683 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 21803 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 816: + case 816: /* SeqOptElem: SEQUENCE NAME_P any_name */ #line 93 "third_party/libpg_query/grammar/statements/alter_sequence.y" { /* not documented, only used by pg_dump */ (yyval.defelt) = makeDefElem("sequence_name", (PGNode *)(yyvsp[0].list), (yylsp[-2])); } -#line 21692 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 21812 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 817: + case 817: /* SeqOptElem: START opt_with NumericOnly */ #line 98 "third_party/libpg_query/grammar/statements/alter_sequence.y" { (yyval.defelt) = makeDefElem("start", (PGNode *)(yyvsp[0].value), (yylsp[-2])); } -#line 21700 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 21820 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 818: + case 818: /* SeqOptElem: RESTART */ #line 102 "third_party/libpg_query/grammar/statements/alter_sequence.y" { (yyval.defelt) = makeDefElem("restart", NULL, (yylsp[0])); } -#line 21708 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 21828 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 819: + case 819: /* SeqOptElem: RESTART opt_with NumericOnly */ #line 106 "third_party/libpg_query/grammar/statements/alter_sequence.y" { (yyval.defelt) = makeDefElem("restart", (PGNode *)(yyvsp[0].value), (yylsp[-2])); } -#line 21716 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 21836 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 820: + case 820: /* opt_by: BY */ #line 112 "third_party/libpg_query/grammar/statements/alter_sequence.y" {} -#line 21722 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 21842 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 821: + case 821: /* opt_by: %empty */ #line 113 "third_party/libpg_query/grammar/statements/alter_sequence.y" {} -#line 21728 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 21848 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 822: + case 822: /* SignedIconst: Iconst */ #line 117 "third_party/libpg_query/grammar/statements/alter_sequence.y" { (yyval.ival) = (yyvsp[0].ival); } -#line 21734 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 21854 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 823: + case 823: /* SignedIconst: '+' Iconst */ #line 118 "third_party/libpg_query/grammar/statements/alter_sequence.y" { (yyval.ival) = + (yyvsp[0].ival); } -#line 21740 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 21860 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 824: + case 824: /* SignedIconst: '-' Iconst */ #line 119 "third_party/libpg_query/grammar/statements/alter_sequence.y" { (yyval.ival) = - (yyvsp[0].ival); } -#line 21746 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 21866 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 825: + case 825: /* DeallocateStmt: DEALLOCATE name */ #line 8 "third_party/libpg_query/grammar/statements/deallocate.y" { PGDeallocateStmt *n = makeNode(PGDeallocateStmt); n->name = (yyvsp[0].str); (yyval.node) = (PGNode *) n; } -#line 21756 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 21876 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 826: + case 826: /* DeallocateStmt: DEALLOCATE PREPARE name */ #line 14 "third_party/libpg_query/grammar/statements/deallocate.y" { PGDeallocateStmt *n = makeNode(PGDeallocateStmt); n->name = (yyvsp[0].str); (yyval.node) = (PGNode *) n; } -#line 21766 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 21886 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 827: + case 827: /* DeallocateStmt: DEALLOCATE ALL */ #line 20 "third_party/libpg_query/grammar/statements/deallocate.y" { PGDeallocateStmt *n = makeNode(PGDeallocateStmt); n->name = NULL; (yyval.node) = (PGNode *) n; } -#line 21776 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 21896 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 828: + case 828: /* DeallocateStmt: DEALLOCATE PREPARE ALL */ #line 26 "third_party/libpg_query/grammar/statements/deallocate.y" { PGDeallocateStmt *n = makeNode(PGDeallocateStmt); n->name = NULL; (yyval.node) = (PGNode *) n; } -#line 21786 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 21906 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 829: + case 829: /* CreateStmt: CREATE_P OptTemp TABLE qualified_name '(' OptTableElementList ')' OptWith OnCommitOption */ #line 9 "third_party/libpg_query/grammar/statements/create.y" { PGCreateStmt *n = makeNode(PGCreateStmt); @@ -21799,10 +21919,10 @@ YYLTYPE yylloc = yyloc_default; n->onconflict = PG_ERROR_ON_CONFLICT; (yyval.node) = (PGNode *)n; } -#line 21803 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 21923 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 830: + case 830: /* CreateStmt: CREATE_P OptTemp TABLE IF_P NOT EXISTS qualified_name '(' OptTableElementList ')' OptWith OnCommitOption */ #line 24 "third_party/libpg_query/grammar/statements/create.y" { PGCreateStmt *n = makeNode(PGCreateStmt); @@ -21816,10 +21936,10 @@ YYLTYPE yylloc = yyloc_default; n->onconflict = PG_IGNORE_ON_CONFLICT; (yyval.node) = (PGNode *)n; } -#line 21820 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 21940 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 831: + case 831: /* CreateStmt: CREATE_P OR REPLACE OptTemp TABLE qualified_name '(' OptTableElementList ')' OptWith OnCommitOption */ #line 39 "third_party/libpg_query/grammar/statements/create.y" { PGCreateStmt *n = makeNode(PGCreateStmt); @@ -21833,16 +21953,16 @@ YYLTYPE yylloc = yyloc_default; n->onconflict = PG_REPLACE_ON_CONFLICT; (yyval.node) = (PGNode *)n; } -#line 21837 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 21957 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 832: + case 832: /* ConstraintAttributeSpec: %empty */ #line 56 "third_party/libpg_query/grammar/statements/create.y" { (yyval.ival) = 0; } -#line 21843 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 21963 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 833: + case 833: /* ConstraintAttributeSpec: ConstraintAttributeSpec ConstraintAttributeElem */ #line 58 "third_party/libpg_query/grammar/statements/create.y" { /* @@ -21867,94 +21987,94 @@ YYLTYPE yylloc = yyloc_default; parser_errposition((yylsp[0])))); (yyval.ival) = newspec; } -#line 21871 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 21991 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 834: + case 834: /* def_arg: func_type */ #line 84 "third_party/libpg_query/grammar/statements/create.y" { (yyval.node) = (PGNode *)(yyvsp[0].typnam); } -#line 21877 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 21997 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 835: + case 835: /* def_arg: reserved_keyword */ #line 85 "third_party/libpg_query/grammar/statements/create.y" { (yyval.node) = (PGNode *)makeString(pstrdup((yyvsp[0].keyword))); } -#line 21883 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 22003 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 836: + case 836: /* def_arg: qual_all_Op */ #line 86 "third_party/libpg_query/grammar/statements/create.y" { (yyval.node) = (PGNode *)(yyvsp[0].list); } -#line 21889 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 22009 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 837: + case 837: /* def_arg: NumericOnly */ #line 87 "third_party/libpg_query/grammar/statements/create.y" { (yyval.node) = (PGNode *)(yyvsp[0].value); } -#line 21895 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 22015 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 838: + case 838: /* def_arg: Sconst */ #line 88 "third_party/libpg_query/grammar/statements/create.y" { (yyval.node) = (PGNode *)makeString((yyvsp[0].str)); } -#line 21901 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 22021 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 839: + case 839: /* def_arg: NONE */ #line 89 "third_party/libpg_query/grammar/statements/create.y" { (yyval.node) = (PGNode *)makeString(pstrdup((yyvsp[0].keyword))); } -#line 21907 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 22027 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 840: + case 840: /* OptParenthesizedSeqOptList: '(' SeqOptList ')' */ #line 93 "third_party/libpg_query/grammar/statements/create.y" { (yyval.list) = (yyvsp[-1].list); } -#line 21913 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 22033 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 841: + case 841: /* OptParenthesizedSeqOptList: %empty */ #line 94 "third_party/libpg_query/grammar/statements/create.y" { (yyval.list) = NIL; } -#line 21919 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 22039 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 842: + case 842: /* generic_option_arg: Sconst */ #line 99 "third_party/libpg_query/grammar/statements/create.y" { (yyval.node) = (PGNode *) makeString((yyvsp[0].str)); } -#line 21925 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 22045 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 843: + case 843: /* key_action: NO ACTION */ #line 104 "third_party/libpg_query/grammar/statements/create.y" { (yyval.ival) = PG_FKCONSTR_ACTION_NOACTION; } -#line 21931 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 22051 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 844: + case 844: /* key_action: RESTRICT */ #line 105 "third_party/libpg_query/grammar/statements/create.y" { (yyval.ival) = PG_FKCONSTR_ACTION_RESTRICT; } -#line 21937 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 22057 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 845: + case 845: /* key_action: CASCADE */ #line 106 "third_party/libpg_query/grammar/statements/create.y" { (yyval.ival) = PG_FKCONSTR_ACTION_CASCADE; } -#line 21943 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 22063 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 846: + case 846: /* key_action: SET NULL_P */ #line 107 "third_party/libpg_query/grammar/statements/create.y" { (yyval.ival) = PG_FKCONSTR_ACTION_SETNULL; } -#line 21949 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 22069 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 847: + case 847: /* key_action: SET DEFAULT */ #line 108 "third_party/libpg_query/grammar/statements/create.y" { (yyval.ival) = PG_FKCONSTR_ACTION_SETDEFAULT; } -#line 21955 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 22075 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 848: + case 848: /* ColConstraint: CONSTRAINT name ColConstraintElem */ #line 114 "third_party/libpg_query/grammar/statements/create.y" { PGConstraint *n = castNode(PGConstraint, (yyvsp[0].node)); @@ -21962,22 +22082,22 @@ YYLTYPE yylloc = yyloc_default; n->location = (yylsp[-2]); (yyval.node) = (PGNode *) n; } -#line 21966 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 22086 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 849: + case 849: /* ColConstraint: ColConstraintElem */ #line 120 "third_party/libpg_query/grammar/statements/create.y" { (yyval.node) = (yyvsp[0].node); } -#line 21972 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 22092 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 850: + case 850: /* ColConstraint: ConstraintAttr */ #line 121 "third_party/libpg_query/grammar/statements/create.y" { (yyval.node) = (yyvsp[0].node); } -#line 21978 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 22098 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 851: + case 851: /* ColConstraint: COLLATE any_name */ #line 123 "third_party/libpg_query/grammar/statements/create.y" { /* @@ -21991,10 +22111,10 @@ YYLTYPE yylloc = yyloc_default; n->location = (yylsp[-1]); (yyval.node) = (PGNode *) n; } -#line 21995 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 22115 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 852: + case 852: /* ColConstraintElem: NOT NULL_P */ #line 140 "third_party/libpg_query/grammar/statements/create.y" { PGConstraint *n = makeNode(PGConstraint); @@ -22002,10 +22122,10 @@ YYLTYPE yylloc = yyloc_default; n->location = (yylsp[-1]); (yyval.node) = (PGNode *)n; } -#line 22006 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 22126 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 853: + case 853: /* ColConstraintElem: NULL_P */ #line 147 "third_party/libpg_query/grammar/statements/create.y" { PGConstraint *n = makeNode(PGConstraint); @@ -22013,10 +22133,10 @@ YYLTYPE yylloc = yyloc_default; n->location = (yylsp[0]); (yyval.node) = (PGNode *)n; } -#line 22017 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 22137 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 854: + case 854: /* ColConstraintElem: UNIQUE opt_definition */ #line 154 "third_party/libpg_query/grammar/statements/create.y" { PGConstraint *n = makeNode(PGConstraint); @@ -22027,10 +22147,10 @@ YYLTYPE yylloc = yyloc_default; n->indexname = NULL; (yyval.node) = (PGNode *)n; } -#line 22031 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 22151 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 855: + case 855: /* ColConstraintElem: PRIMARY KEY opt_definition */ #line 164 "third_party/libpg_query/grammar/statements/create.y" { PGConstraint *n = makeNode(PGConstraint); @@ -22041,10 +22161,10 @@ YYLTYPE yylloc = yyloc_default; n->indexname = NULL; (yyval.node) = (PGNode *)n; } -#line 22045 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 22165 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 856: + case 856: /* ColConstraintElem: CHECK_P '(' a_expr ')' opt_no_inherit */ #line 174 "third_party/libpg_query/grammar/statements/create.y" { PGConstraint *n = makeNode(PGConstraint); @@ -22057,10 +22177,10 @@ YYLTYPE yylloc = yyloc_default; n->initially_valid = true; (yyval.node) = (PGNode *)n; } -#line 22061 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 22181 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 857: + case 857: /* ColConstraintElem: USING COMPRESSION name */ #line 186 "third_party/libpg_query/grammar/statements/create.y" { PGConstraint *n = makeNode(PGConstraint); @@ -22069,10 +22189,10 @@ YYLTYPE yylloc = yyloc_default; n->compression_name = (yyvsp[0].str); (yyval.node) = (PGNode *)n; } -#line 22073 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 22193 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 858: + case 858: /* ColConstraintElem: DEFAULT b_expr */ #line 194 "third_party/libpg_query/grammar/statements/create.y" { PGConstraint *n = makeNode(PGConstraint); @@ -22082,10 +22202,10 @@ YYLTYPE yylloc = yyloc_default; n->cooked_expr = NULL; (yyval.node) = (PGNode *)n; } -#line 22086 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 22206 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 859: + case 859: /* ColConstraintElem: REFERENCES qualified_name opt_column_list key_match key_actions */ #line 203 "third_party/libpg_query/grammar/statements/create.y" { PGConstraint *n = makeNode(PGConstraint); @@ -22101,34 +22221,34 @@ YYLTYPE yylloc = yyloc_default; n->initially_valid = true; (yyval.node) = (PGNode *)n; } -#line 22105 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 22225 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 860: + case 860: /* GeneratedColumnType: VIRTUAL */ #line 220 "third_party/libpg_query/grammar/statements/create.y" { (yyval.constr) = PG_CONSTR_GENERATED_VIRTUAL; } -#line 22111 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 22231 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 861: + case 861: /* GeneratedColumnType: STORED */ #line 221 "third_party/libpg_query/grammar/statements/create.y" { (yyval.constr) = PG_CONSTR_GENERATED_STORED; } -#line 22117 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 22237 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 862: + case 862: /* opt_GeneratedColumnType: GeneratedColumnType */ #line 225 "third_party/libpg_query/grammar/statements/create.y" { (yyval.constr) = (yyvsp[0].constr); } -#line 22123 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 22243 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 863: + case 863: /* opt_GeneratedColumnType: %empty */ #line 226 "third_party/libpg_query/grammar/statements/create.y" { (yyval.constr) = PG_CONSTR_GENERATED_VIRTUAL; } -#line 22129 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 22249 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 864: + case 864: /* GeneratedConstraintElem: GENERATED generated_when AS IDENTITY_P OptParenthesizedSeqOptList */ #line 231 "third_party/libpg_query/grammar/statements/create.y" { PGConstraint *n = makeNode(PGConstraint); @@ -22138,10 +22258,10 @@ YYLTYPE yylloc = yyloc_default; n->location = (yylsp[-4]); (yyval.node) = (PGNode *)n; } -#line 22142 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 22262 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 865: + case 865: /* GeneratedConstraintElem: GENERATED generated_when AS '(' a_expr ')' opt_GeneratedColumnType */ #line 240 "third_party/libpg_query/grammar/statements/create.y" { PGConstraint *n = makeNode(PGConstraint); @@ -22165,10 +22285,10 @@ YYLTYPE yylloc = yyloc_default; (yyval.node) = (PGNode *)n; } -#line 22169 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 22289 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 866: + case 866: /* GeneratedConstraintElem: AS '(' a_expr ')' opt_GeneratedColumnType */ #line 263 "third_party/libpg_query/grammar/statements/create.y" { PGConstraint *n = makeNode(PGConstraint); @@ -22179,96 +22299,96 @@ YYLTYPE yylloc = yyloc_default; n->location = (yylsp[-4]); (yyval.node) = (PGNode *)n; } -#line 22183 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 22303 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 867: + case 867: /* generic_option_elem: generic_option_name generic_option_arg */ #line 277 "third_party/libpg_query/grammar/statements/create.y" { (yyval.defelt) = makeDefElem((yyvsp[-1].str), (yyvsp[0].node), (yylsp[-1])); } -#line 22191 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 22311 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 868: + case 868: /* key_update: ON UPDATE key_action */ #line 283 "third_party/libpg_query/grammar/statements/create.y" { (yyval.ival) = (yyvsp[0].ival); } -#line 22197 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 22317 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 869: + case 869: /* key_actions: key_update */ #line 289 "third_party/libpg_query/grammar/statements/create.y" { (yyval.ival) = ((yyvsp[0].ival) << 8) | (PG_FKCONSTR_ACTION_NOACTION & 0xFF); } -#line 22203 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 22323 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 870: + case 870: /* key_actions: key_delete */ #line 291 "third_party/libpg_query/grammar/statements/create.y" { (yyval.ival) = (PG_FKCONSTR_ACTION_NOACTION << 8) | ((yyvsp[0].ival) & 0xFF); } -#line 22209 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 22329 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 871: + case 871: /* key_actions: key_update key_delete */ #line 293 "third_party/libpg_query/grammar/statements/create.y" { (yyval.ival) = ((yyvsp[-1].ival) << 8) | ((yyvsp[0].ival) & 0xFF); } -#line 22215 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 22335 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 872: + case 872: /* key_actions: key_delete key_update */ #line 295 "third_party/libpg_query/grammar/statements/create.y" { (yyval.ival) = ((yyvsp[0].ival) << 8) | ((yyvsp[-1].ival) & 0xFF); } -#line 22221 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 22341 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 873: + case 873: /* key_actions: %empty */ #line 297 "third_party/libpg_query/grammar/statements/create.y" { (yyval.ival) = (PG_FKCONSTR_ACTION_NOACTION << 8) | (PG_FKCONSTR_ACTION_NOACTION & 0xFF); } -#line 22227 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 22347 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 874: + case 874: /* OnCommitOption: ON COMMIT DROP */ #line 300 "third_party/libpg_query/grammar/statements/create.y" { (yyval.oncommit) = ONCOMMIT_DROP; } -#line 22233 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 22353 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 875: + case 875: /* OnCommitOption: ON COMMIT DELETE_P ROWS */ #line 301 "third_party/libpg_query/grammar/statements/create.y" { (yyval.oncommit) = PG_ONCOMMIT_DELETE_ROWS; } -#line 22239 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 22359 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 876: + case 876: /* OnCommitOption: ON COMMIT PRESERVE ROWS */ #line 302 "third_party/libpg_query/grammar/statements/create.y" { (yyval.oncommit) = PG_ONCOMMIT_PRESERVE_ROWS; } -#line 22245 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 22365 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 877: + case 877: /* OnCommitOption: %empty */ #line 303 "third_party/libpg_query/grammar/statements/create.y" { (yyval.oncommit) = PG_ONCOMMIT_NOOP; } -#line 22251 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 22371 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 878: + case 878: /* reloptions: '(' reloption_list ')' */ #line 308 "third_party/libpg_query/grammar/statements/create.y" { (yyval.list) = (yyvsp[-1].list); } -#line 22257 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 22377 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 879: + case 879: /* opt_no_inherit: NO INHERIT */ #line 312 "third_party/libpg_query/grammar/statements/create.y" { (yyval.boolean) = true; } -#line 22263 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 22383 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 880: + case 880: /* opt_no_inherit: %empty */ #line 313 "third_party/libpg_query/grammar/statements/create.y" { (yyval.boolean) = false; } -#line 22269 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 22389 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 881: + case 881: /* TableConstraint: CONSTRAINT name ConstraintElem */ #line 319 "third_party/libpg_query/grammar/statements/create.y" { PGConstraint *n = castNode(PGConstraint, (yyvsp[0].node)); @@ -22276,82 +22396,82 @@ YYLTYPE yylloc = yyloc_default; n->location = (yylsp[-2]); (yyval.node) = (PGNode *) n; } -#line 22280 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 22400 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 882: + case 882: /* TableConstraint: ConstraintElem */ #line 325 "third_party/libpg_query/grammar/statements/create.y" { (yyval.node) = (yyvsp[0].node); } -#line 22286 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 22406 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 883: + case 883: /* TableLikeOption: COMMENTS */ #line 330 "third_party/libpg_query/grammar/statements/create.y" { (yyval.ival) = PG_CREATE_TABLE_LIKE_COMMENTS; } -#line 22292 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 22412 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 884: + case 884: /* TableLikeOption: CONSTRAINTS */ #line 331 "third_party/libpg_query/grammar/statements/create.y" { (yyval.ival) = PG_CREATE_TABLE_LIKE_CONSTRAINTS; } -#line 22298 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 22418 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 885: + case 885: /* TableLikeOption: DEFAULTS */ #line 332 "third_party/libpg_query/grammar/statements/create.y" { (yyval.ival) = PG_CREATE_TABLE_LIKE_DEFAULTS; } -#line 22304 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 22424 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 886: + case 886: /* TableLikeOption: IDENTITY_P */ #line 333 "third_party/libpg_query/grammar/statements/create.y" { (yyval.ival) = PG_CREATE_TABLE_LIKE_IDENTITY; } -#line 22310 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 22430 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 887: + case 887: /* TableLikeOption: INDEXES */ #line 334 "third_party/libpg_query/grammar/statements/create.y" { (yyval.ival) = PG_CREATE_TABLE_LIKE_INDEXES; } -#line 22316 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 22436 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 888: + case 888: /* TableLikeOption: STATISTICS */ #line 335 "third_party/libpg_query/grammar/statements/create.y" { (yyval.ival) = PG_CREATE_TABLE_LIKE_STATISTICS; } -#line 22322 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 22442 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 889: + case 889: /* TableLikeOption: STORAGE */ #line 336 "third_party/libpg_query/grammar/statements/create.y" { (yyval.ival) = PG_CREATE_TABLE_LIKE_STORAGE; } -#line 22328 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 22448 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 890: + case 890: /* TableLikeOption: ALL */ #line 337 "third_party/libpg_query/grammar/statements/create.y" { (yyval.ival) = PG_CREATE_TABLE_LIKE_ALL; } -#line 22334 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 22454 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 891: + case 891: /* reloption_list: reloption_elem */ #line 343 "third_party/libpg_query/grammar/statements/create.y" { (yyval.list) = list_make1((yyvsp[0].defelt)); } -#line 22340 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 22460 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 892: + case 892: /* reloption_list: reloption_list ',' reloption_elem */ #line 344 "third_party/libpg_query/grammar/statements/create.y" { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].defelt)); } -#line 22346 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 22466 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 893: + case 893: /* ExistingIndex: USING INDEX index_name */ #line 348 "third_party/libpg_query/grammar/statements/create.y" { (yyval.str) = (yyvsp[0].str); } -#line 22352 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 22472 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 894: + case 894: /* ConstraintAttr: DEFERRABLE */ #line 354 "third_party/libpg_query/grammar/statements/create.y" { PGConstraint *n = makeNode(PGConstraint); @@ -22359,10 +22479,10 @@ YYLTYPE yylloc = yyloc_default; n->location = (yylsp[0]); (yyval.node) = (PGNode *)n; } -#line 22363 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 22483 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 895: + case 895: /* ConstraintAttr: NOT DEFERRABLE */ #line 361 "third_party/libpg_query/grammar/statements/create.y" { PGConstraint *n = makeNode(PGConstraint); @@ -22370,10 +22490,10 @@ YYLTYPE yylloc = yyloc_default; n->location = (yylsp[-1]); (yyval.node) = (PGNode *)n; } -#line 22374 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 22494 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 896: + case 896: /* ConstraintAttr: INITIALLY DEFERRED */ #line 368 "third_party/libpg_query/grammar/statements/create.y" { PGConstraint *n = makeNode(PGConstraint); @@ -22381,10 +22501,10 @@ YYLTYPE yylloc = yyloc_default; n->location = (yylsp[-1]); (yyval.node) = (PGNode *)n; } -#line 22385 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 22505 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 897: + case 897: /* ConstraintAttr: INITIALLY IMMEDIATE */ #line 375 "third_party/libpg_query/grammar/statements/create.y" { PGConstraint *n = makeNode(PGConstraint); @@ -22392,100 +22512,100 @@ YYLTYPE yylloc = yyloc_default; n->location = (yylsp[-1]); (yyval.node) = (PGNode *)n; } -#line 22396 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 22516 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 898: + case 898: /* OptWith: WITH reloptions */ #line 386 "third_party/libpg_query/grammar/statements/create.y" { (yyval.list) = (yyvsp[0].list); } -#line 22402 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 22522 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 899: + case 899: /* OptWith: WITH OIDS */ #line 387 "third_party/libpg_query/grammar/statements/create.y" { (yyval.list) = list_make1(makeDefElem("oids", (PGNode *) makeInteger(true), (yylsp[-1]))); } -#line 22408 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 22528 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 900: + case 900: /* OptWith: WITHOUT OIDS */ #line 388 "third_party/libpg_query/grammar/statements/create.y" { (yyval.list) = list_make1(makeDefElem("oids", (PGNode *) makeInteger(false), (yylsp[-1]))); } -#line 22414 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 22534 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 901: + case 901: /* OptWith: %empty */ #line 389 "third_party/libpg_query/grammar/statements/create.y" { (yyval.list) = NIL; } -#line 22420 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 22540 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 902: + case 902: /* definition: '(' def_list ')' */ #line 393 "third_party/libpg_query/grammar/statements/create.y" { (yyval.list) = (yyvsp[-1].list); } -#line 22426 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 22546 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 903: + case 903: /* TableLikeOptionList: TableLikeOptionList INCLUDING TableLikeOption */ #line 398 "third_party/libpg_query/grammar/statements/create.y" { (yyval.ival) = (yyvsp[-2].ival) | (yyvsp[0].ival); } -#line 22432 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 22552 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 904: + case 904: /* TableLikeOptionList: TableLikeOptionList EXCLUDING TableLikeOption */ #line 399 "third_party/libpg_query/grammar/statements/create.y" { (yyval.ival) = (yyvsp[-2].ival) & ~(yyvsp[0].ival); } -#line 22438 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 22558 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 905: + case 905: /* TableLikeOptionList: %empty */ #line 400 "third_party/libpg_query/grammar/statements/create.y" { (yyval.ival) = 0; } -#line 22444 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 22564 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 906: + case 906: /* generic_option_name: ColLabel */ #line 405 "third_party/libpg_query/grammar/statements/create.y" { (yyval.str) = (yyvsp[0].str); } -#line 22450 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 22570 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 907: + case 907: /* ConstraintAttributeElem: NOT DEFERRABLE */ #line 410 "third_party/libpg_query/grammar/statements/create.y" { (yyval.ival) = CAS_NOT_DEFERRABLE; } -#line 22456 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 22576 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 908: + case 908: /* ConstraintAttributeElem: DEFERRABLE */ #line 411 "third_party/libpg_query/grammar/statements/create.y" { (yyval.ival) = CAS_DEFERRABLE; } -#line 22462 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 22582 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 909: + case 909: /* ConstraintAttributeElem: INITIALLY IMMEDIATE */ #line 412 "third_party/libpg_query/grammar/statements/create.y" { (yyval.ival) = CAS_INITIALLY_IMMEDIATE; } -#line 22468 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 22588 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 910: + case 910: /* ConstraintAttributeElem: INITIALLY DEFERRED */ #line 413 "third_party/libpg_query/grammar/statements/create.y" { (yyval.ival) = CAS_INITIALLY_DEFERRED; } -#line 22474 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 22594 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 911: + case 911: /* ConstraintAttributeElem: NOT VALID */ #line 414 "third_party/libpg_query/grammar/statements/create.y" { (yyval.ival) = CAS_NOT_VALID; } -#line 22480 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 22600 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 912: + case 912: /* ConstraintAttributeElem: NO INHERIT */ #line 415 "third_party/libpg_query/grammar/statements/create.y" { (yyval.ival) = CAS_NO_INHERIT; } -#line 22486 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 22606 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 913: + case 913: /* columnDef: ColId Typename ColQualList */ #line 421 "third_party/libpg_query/grammar/statements/create.y" { PGColumnDef *n = makeNode(PGColumnDef); @@ -22505,10 +22625,10 @@ YYLTYPE yylloc = yyloc_default; n->location = (yylsp[-2]); (yyval.node) = (PGNode *)n; } -#line 22509 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 22629 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 914: + case 914: /* columnDef: ColId opt_Typename GeneratedConstraintElem ColQualList */ #line 441 "third_party/libpg_query/grammar/statements/create.y" { PGColumnDef *n = makeNode(PGColumnDef); @@ -22535,203 +22655,203 @@ YYLTYPE yylloc = yyloc_default; n->location = (yylsp[-3]); (yyval.node) = (PGNode *)n; } -#line 22539 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 22659 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 915: + case 915: /* def_list: def_elem */ #line 469 "third_party/libpg_query/grammar/statements/create.y" { (yyval.list) = list_make1((yyvsp[0].defelt)); } -#line 22545 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 22665 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 916: + case 916: /* def_list: def_list ',' def_elem */ #line 470 "third_party/libpg_query/grammar/statements/create.y" { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].defelt)); } -#line 22551 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 22671 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 917: + case 917: /* index_name: ColId */ #line 474 "third_party/libpg_query/grammar/statements/create.y" { (yyval.str) = (yyvsp[0].str); } -#line 22557 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 22677 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 918: + case 918: /* TableElement: columnDef */ #line 478 "third_party/libpg_query/grammar/statements/create.y" { (yyval.node) = (yyvsp[0].node); } -#line 22563 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 22683 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 919: + case 919: /* TableElement: TableLikeClause */ #line 479 "third_party/libpg_query/grammar/statements/create.y" { (yyval.node) = (yyvsp[0].node); } -#line 22569 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 22689 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 920: + case 920: /* TableElement: TableConstraint */ #line 480 "third_party/libpg_query/grammar/statements/create.y" { (yyval.node) = (yyvsp[0].node); } -#line 22575 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 22695 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 921: + case 921: /* def_elem: ColLabel '=' def_arg */ #line 485 "third_party/libpg_query/grammar/statements/create.y" { (yyval.defelt) = makeDefElem((yyvsp[-2].str), (PGNode *) (yyvsp[0].node), (yylsp[-2])); } -#line 22583 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 22703 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 922: + case 922: /* def_elem: ColLabel */ #line 489 "third_party/libpg_query/grammar/statements/create.y" { (yyval.defelt) = makeDefElem((yyvsp[0].str), NULL, (yylsp[0])); } -#line 22591 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 22711 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 923: + case 923: /* opt_definition: WITH definition */ #line 496 "third_party/libpg_query/grammar/statements/create.y" { (yyval.list) = (yyvsp[0].list); } -#line 22597 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 22717 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 924: + case 924: /* opt_definition: %empty */ #line 497 "third_party/libpg_query/grammar/statements/create.y" { (yyval.list) = NIL; } -#line 22603 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 22723 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 925: + case 925: /* OptTableElementList: TableElementList */ #line 502 "third_party/libpg_query/grammar/statements/create.y" { (yyval.list) = (yyvsp[0].list); } -#line 22609 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 22729 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 926: + case 926: /* OptTableElementList: TableElementList ',' */ #line 503 "third_party/libpg_query/grammar/statements/create.y" { (yyval.list) = (yyvsp[-1].list); } -#line 22615 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 22735 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 927: + case 927: /* OptTableElementList: %empty */ #line 504 "third_party/libpg_query/grammar/statements/create.y" { (yyval.list) = NIL; } -#line 22621 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 22741 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 928: + case 928: /* columnElem: ColId */ #line 509 "third_party/libpg_query/grammar/statements/create.y" { (yyval.node) = (PGNode *) makeString((yyvsp[0].str)); } -#line 22629 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 22749 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 929: + case 929: /* opt_column_list: '(' columnList ')' */ #line 516 "third_party/libpg_query/grammar/statements/create.y" { (yyval.list) = (yyvsp[-1].list); } -#line 22635 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 22755 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 930: + case 930: /* opt_column_list: %empty */ #line 517 "third_party/libpg_query/grammar/statements/create.y" { (yyval.list) = NIL; } -#line 22641 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 22761 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 931: + case 931: /* ColQualList: ColQualList ColConstraint */ #line 522 "third_party/libpg_query/grammar/statements/create.y" { (yyval.list) = lappend((yyvsp[-1].list), (yyvsp[0].node)); } -#line 22647 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 22767 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 932: + case 932: /* ColQualList: %empty */ #line 523 "third_party/libpg_query/grammar/statements/create.y" { (yyval.list) = NIL; } -#line 22653 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 22773 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 933: + case 933: /* key_delete: ON DELETE_P key_action */ #line 527 "third_party/libpg_query/grammar/statements/create.y" { (yyval.ival) = (yyvsp[0].ival); } -#line 22659 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 22779 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 934: + case 934: /* reloption_elem: ColLabel '=' def_arg */ #line 533 "third_party/libpg_query/grammar/statements/create.y" { (yyval.defelt) = makeDefElem((yyvsp[-2].str), (PGNode *) (yyvsp[0].node), (yylsp[-2])); } -#line 22667 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 22787 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 935: + case 935: /* reloption_elem: ColLabel */ #line 537 "third_party/libpg_query/grammar/statements/create.y" { (yyval.defelt) = makeDefElem((yyvsp[0].str), NULL, (yylsp[0])); } -#line 22675 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 22795 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 936: + case 936: /* reloption_elem: ColLabel '.' ColLabel '=' def_arg */ #line 541 "third_party/libpg_query/grammar/statements/create.y" { (yyval.defelt) = makeDefElemExtended((yyvsp[-4].str), (yyvsp[-2].str), (PGNode *) (yyvsp[0].node), PG_DEFELEM_UNSPEC, (yylsp[-4])); } -#line 22684 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 22804 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 937: + case 937: /* reloption_elem: ColLabel '.' ColLabel */ #line 546 "third_party/libpg_query/grammar/statements/create.y" { (yyval.defelt) = makeDefElemExtended((yyvsp[-2].str), (yyvsp[0].str), NULL, PG_DEFELEM_UNSPEC, (yylsp[-2])); } -#line 22692 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 22812 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 938: + case 938: /* columnList: columnElem */ #line 553 "third_party/libpg_query/grammar/statements/create.y" { (yyval.list) = list_make1((yyvsp[0].node)); } -#line 22698 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 22818 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 939: + case 939: /* columnList: columnList ',' columnElem */ #line 554 "third_party/libpg_query/grammar/statements/create.y" { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].node)); } -#line 22704 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 22824 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 940: + case 940: /* columnList_opt_comma: columnList */ #line 558 "third_party/libpg_query/grammar/statements/create.y" { (yyval.list) = (yyvsp[0].list); } -#line 22710 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 22830 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 941: + case 941: /* columnList_opt_comma: columnList ',' */ #line 559 "third_party/libpg_query/grammar/statements/create.y" { (yyval.list) = (yyvsp[-1].list); } -#line 22716 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 22836 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 942: + case 942: /* func_type: Typename */ #line 563 "third_party/libpg_query/grammar/statements/create.y" { (yyval.typnam) = (yyvsp[0].typnam); } -#line 22722 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 22842 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 943: + case 943: /* func_type: type_function_name attrs '%' TYPE_P */ #line 565 "third_party/libpg_query/grammar/statements/create.y" { (yyval.typnam) = makeTypeNameFromNameList(lcons(makeString((yyvsp[-3].str)), (yyvsp[-2].list))); (yyval.typnam)->pct_type = true; (yyval.typnam)->location = (yylsp[-3]); } -#line 22732 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 22852 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 944: + case 944: /* func_type: SETOF type_function_name attrs '%' TYPE_P */ #line 571 "third_party/libpg_query/grammar/statements/create.y" { (yyval.typnam) = makeTypeNameFromNameList(lcons(makeString((yyvsp[-3].str)), (yyvsp[-2].list))); @@ -22739,10 +22859,10 @@ YYLTYPE yylloc = yyloc_default; (yyval.typnam)->setof = true; (yyval.typnam)->location = (yylsp[-3]); } -#line 22743 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 22863 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 945: + case 945: /* ConstraintElem: CHECK_P '(' a_expr ')' ConstraintAttributeSpec */ #line 582 "third_party/libpg_query/grammar/statements/create.y" { PGConstraint *n = makeNode(PGConstraint); @@ -22756,10 +22876,10 @@ YYLTYPE yylloc = yyloc_default; n->initially_valid = !n->skip_validation; (yyval.node) = (PGNode *)n; } -#line 22760 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 22880 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 946: + case 946: /* ConstraintElem: UNIQUE '(' columnList_opt_comma ')' opt_definition ConstraintAttributeSpec */ #line 596 "third_party/libpg_query/grammar/statements/create.y" { PGConstraint *n = makeNode(PGConstraint); @@ -22773,10 +22893,10 @@ YYLTYPE yylloc = yyloc_default; NULL, yyscanner); (yyval.node) = (PGNode *)n; } -#line 22777 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 22897 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 947: + case 947: /* ConstraintElem: UNIQUE ExistingIndex ConstraintAttributeSpec */ #line 609 "third_party/libpg_query/grammar/statements/create.y" { PGConstraint *n = makeNode(PGConstraint); @@ -22791,10 +22911,10 @@ YYLTYPE yylloc = yyloc_default; NULL, yyscanner); (yyval.node) = (PGNode *)n; } -#line 22795 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 22915 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 948: + case 948: /* ConstraintElem: PRIMARY KEY '(' columnList_opt_comma ')' opt_definition ConstraintAttributeSpec */ #line 624 "third_party/libpg_query/grammar/statements/create.y" { PGConstraint *n = makeNode(PGConstraint); @@ -22808,10 +22928,10 @@ YYLTYPE yylloc = yyloc_default; NULL, yyscanner); (yyval.node) = (PGNode *)n; } -#line 22812 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 22932 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 949: + case 949: /* ConstraintElem: PRIMARY KEY ExistingIndex ConstraintAttributeSpec */ #line 637 "third_party/libpg_query/grammar/statements/create.y" { PGConstraint *n = makeNode(PGConstraint); @@ -22826,10 +22946,10 @@ YYLTYPE yylloc = yyloc_default; NULL, yyscanner); (yyval.node) = (PGNode *)n; } -#line 22830 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 22950 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 950: + case 950: /* ConstraintElem: FOREIGN KEY '(' columnList_opt_comma ')' REFERENCES qualified_name opt_column_list key_match key_actions ConstraintAttributeSpec */ #line 652 "third_party/libpg_query/grammar/statements/create.y" { PGConstraint *n = makeNode(PGConstraint); @@ -22848,34 +22968,34 @@ YYLTYPE yylloc = yyloc_default; n->initially_valid = !n->skip_validation; (yyval.node) = (PGNode *)n; } -#line 22852 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 22972 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 951: + case 951: /* TableElementList: TableElement */ #line 674 "third_party/libpg_query/grammar/statements/create.y" { (yyval.list) = list_make1((yyvsp[0].node)); } -#line 22860 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 22980 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 952: + case 952: /* TableElementList: TableElementList ',' TableElement */ #line 678 "third_party/libpg_query/grammar/statements/create.y" { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].node)); } -#line 22868 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 22988 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 953: + case 953: /* key_match: MATCH FULL */ #line 685 "third_party/libpg_query/grammar/statements/create.y" { (yyval.ival) = PG_FKCONSTR_MATCH_FULL; } -#line 22876 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 22996 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 954: + case 954: /* key_match: MATCH PARTIAL */ #line 689 "third_party/libpg_query/grammar/statements/create.y" { ereport(ERROR, @@ -22884,26 +23004,26 @@ YYLTYPE yylloc = yyloc_default; parser_errposition((yylsp[-1])))); (yyval.ival) = PG_FKCONSTR_MATCH_PARTIAL; } -#line 22888 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 23008 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 955: + case 955: /* key_match: MATCH SIMPLE */ #line 697 "third_party/libpg_query/grammar/statements/create.y" { (yyval.ival) = PG_FKCONSTR_MATCH_SIMPLE; } -#line 22896 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 23016 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 956: + case 956: /* key_match: %empty */ #line 701 "third_party/libpg_query/grammar/statements/create.y" { (yyval.ival) = PG_FKCONSTR_MATCH_SIMPLE; } -#line 22904 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 23024 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 957: + case 957: /* TableLikeClause: LIKE qualified_name TableLikeOptionList */ #line 709 "third_party/libpg_query/grammar/statements/create.y" { PGTableLikeClause *n = makeNode(PGTableLikeClause); @@ -22911,34 +23031,34 @@ YYLTYPE yylloc = yyloc_default; n->options = (yyvsp[0].ival); (yyval.node) = (PGNode *)n; } -#line 22915 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 23035 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 958: + case 958: /* OptTemp: TEMPORARY */ #line 718 "third_party/libpg_query/grammar/statements/create.y" { (yyval.ival) = PG_RELPERSISTENCE_TEMP; } -#line 22921 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 23041 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 959: + case 959: /* OptTemp: TEMP */ #line 719 "third_party/libpg_query/grammar/statements/create.y" { (yyval.ival) = PG_RELPERSISTENCE_TEMP; } -#line 22927 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 23047 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 960: + case 960: /* OptTemp: LOCAL TEMPORARY */ #line 720 "third_party/libpg_query/grammar/statements/create.y" { (yyval.ival) = PG_RELPERSISTENCE_TEMP; } -#line 22933 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 23053 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 961: + case 961: /* OptTemp: LOCAL TEMP */ #line 721 "third_party/libpg_query/grammar/statements/create.y" { (yyval.ival) = PG_RELPERSISTENCE_TEMP; } -#line 22939 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 23059 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 962: + case 962: /* OptTemp: GLOBAL TEMPORARY */ #line 723 "third_party/libpg_query/grammar/statements/create.y" { ereport(PGWARNING, @@ -22946,10 +23066,10 @@ YYLTYPE yylloc = yyloc_default; parser_errposition((yylsp[-1])))); (yyval.ival) = PG_RELPERSISTENCE_TEMP; } -#line 22950 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 23070 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 963: + case 963: /* OptTemp: GLOBAL TEMP */ #line 730 "third_party/libpg_query/grammar/statements/create.y" { ereport(PGWARNING, @@ -22957,34 +23077,34 @@ YYLTYPE yylloc = yyloc_default; parser_errposition((yylsp[-1])))); (yyval.ival) = PG_RELPERSISTENCE_TEMP; } -#line 22961 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 23081 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 964: + case 964: /* OptTemp: UNLOGGED */ #line 736 "third_party/libpg_query/grammar/statements/create.y" { (yyval.ival) = PG_RELPERSISTENCE_UNLOGGED; } -#line 22967 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 23087 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 965: + case 965: /* OptTemp: %empty */ #line 737 "third_party/libpg_query/grammar/statements/create.y" { (yyval.ival) = RELPERSISTENCE_PERMANENT; } -#line 22973 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 23093 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 966: + case 966: /* generated_when: ALWAYS */ #line 742 "third_party/libpg_query/grammar/statements/create.y" { (yyval.ival) = PG_ATTRIBUTE_IDENTITY_ALWAYS; } -#line 22979 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 23099 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 967: + case 967: /* generated_when: BY DEFAULT */ #line 743 "third_party/libpg_query/grammar/statements/create.y" { (yyval.ival) = ATTRIBUTE_IDENTITY_BY_DEFAULT; } -#line 22985 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 23105 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 968: + case 968: /* ExecuteStmt: EXECUTE name execute_param_clause */ #line 8 "third_party/libpg_query/grammar/statements/execute.y" { PGExecuteStmt *n = makeNode(PGExecuteStmt); @@ -22992,10 +23112,10 @@ YYLTYPE yylloc = yyloc_default; n->params = (yyvsp[0].list); (yyval.node) = (PGNode *) n; } -#line 22996 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 23116 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 969: + case 969: /* ExecuteStmt: CREATE_P OptTemp TABLE create_as_target AS EXECUTE name execute_param_clause opt_with_data */ #line 16 "third_party/libpg_query/grammar/statements/execute.y" { PGCreateTableAsStmt *ctas = makeNode(PGCreateTableAsStmt); @@ -23012,10 +23132,10 @@ YYLTYPE yylloc = yyloc_default; (yyvsp[-5].into)->skipData = !((yyvsp[0].boolean)); (yyval.node) = (PGNode *) ctas; } -#line 23016 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 23136 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 970: + case 970: /* ExecuteStmt: CREATE_P OptTemp TABLE IF_P NOT EXISTS create_as_target AS EXECUTE name execute_param_clause opt_with_data */ #line 33 "third_party/libpg_query/grammar/statements/execute.y" { PGCreateTableAsStmt *ctas = makeNode(PGCreateTableAsStmt); @@ -23032,22 +23152,22 @@ YYLTYPE yylloc = yyloc_default; (yyvsp[-5].into)->skipData = !((yyvsp[0].boolean)); (yyval.node) = (PGNode *) ctas; } -#line 23036 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 23156 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 971: + case 971: /* execute_param_clause: '(' expr_list_opt_comma ')' */ #line 51 "third_party/libpg_query/grammar/statements/execute.y" { (yyval.list) = (yyvsp[-1].list); } -#line 23042 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 23162 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 972: + case 972: /* execute_param_clause: %empty */ #line 52 "third_party/libpg_query/grammar/statements/execute.y" { (yyval.list) = NIL; } -#line 23048 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 23168 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 973: + case 973: /* CreateSchemaStmt: CREATE_P SCHEMA ColId OptSchemaEltList */ #line 8 "third_party/libpg_query/grammar/statements/create_schema.y" { PGCreateSchemaStmt *n = makeNode(PGCreateSchemaStmt); @@ -23057,10 +23177,10 @@ YYLTYPE yylloc = yyloc_default; n->onconflict = PG_ERROR_ON_CONFLICT; (yyval.node) = (PGNode *)n; } -#line 23061 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 23181 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 974: + case 974: /* CreateSchemaStmt: CREATE_P SCHEMA IF_P NOT EXISTS ColId OptSchemaEltList */ #line 17 "third_party/libpg_query/grammar/statements/create_schema.y" { PGCreateSchemaStmt *n = makeNode(PGCreateSchemaStmt); @@ -23075,26 +23195,26 @@ YYLTYPE yylloc = yyloc_default; n->onconflict = PG_IGNORE_ON_CONFLICT; (yyval.node) = (PGNode *)n; } -#line 23079 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 23199 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 975: + case 975: /* OptSchemaEltList: OptSchemaEltList schema_stmt */ #line 35 "third_party/libpg_query/grammar/statements/create_schema.y" { if ((yyloc) < 0) /* see comments for YYLLOC_DEFAULT */ (yyloc) = (yylsp[0]); (yyval.list) = lappend((yyvsp[-1].list), (yyvsp[0].node)); } -#line 23089 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 23209 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 976: + case 976: /* OptSchemaEltList: %empty */ #line 41 "third_party/libpg_query/grammar/statements/create_schema.y" { (yyval.list) = NIL; } -#line 23095 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 23215 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 981: + case 981: /* ExplainStmt: EXPLAIN ExplainableStmt */ #line 10 "third_party/libpg_query/grammar/statements/explain.y" { PGExplainStmt *n = makeNode(PGExplainStmt); @@ -23102,10 +23222,10 @@ YYLTYPE yylloc = yyloc_default; n->options = NIL; (yyval.node) = (PGNode *) n; } -#line 23106 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 23226 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 982: + case 982: /* ExplainStmt: EXPLAIN analyze_keyword opt_verbose ExplainableStmt */ #line 17 "third_party/libpg_query/grammar/statements/explain.y" { PGExplainStmt *n = makeNode(PGExplainStmt); @@ -23116,10 +23236,10 @@ YYLTYPE yylloc = yyloc_default; makeDefElem("verbose", NULL, (yylsp[-1]))); (yyval.node) = (PGNode *) n; } -#line 23120 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 23240 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 983: + case 983: /* ExplainStmt: EXPLAIN VERBOSE ExplainableStmt */ #line 27 "third_party/libpg_query/grammar/statements/explain.y" { PGExplainStmt *n = makeNode(PGExplainStmt); @@ -23127,10 +23247,10 @@ YYLTYPE yylloc = yyloc_default; n->options = list_make1(makeDefElem("verbose", NULL, (yylsp[-1]))); (yyval.node) = (PGNode *) n; } -#line 23131 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 23251 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 984: + case 984: /* ExplainStmt: EXPLAIN '(' explain_option_list ')' ExplainableStmt */ #line 34 "third_party/libpg_query/grammar/statements/explain.y" { PGExplainStmt *n = makeNode(PGExplainStmt); @@ -23138,142 +23258,142 @@ YYLTYPE yylloc = yyloc_default; n->options = (yyvsp[-2].list); (yyval.node) = (PGNode *) n; } -#line 23142 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 23262 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 985: + case 985: /* opt_verbose: VERBOSE */ #line 44 "third_party/libpg_query/grammar/statements/explain.y" { (yyval.boolean) = true; } -#line 23148 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 23268 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 986: + case 986: /* opt_verbose: %empty */ #line 45 "third_party/libpg_query/grammar/statements/explain.y" { (yyval.boolean) = false; } -#line 23154 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 23274 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 987: + case 987: /* explain_option_arg: opt_boolean_or_string */ #line 50 "third_party/libpg_query/grammar/statements/explain.y" { (yyval.node) = (PGNode *) makeString((yyvsp[0].str)); } -#line 23160 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 23280 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 988: + case 988: /* explain_option_arg: NumericOnly */ #line 51 "third_party/libpg_query/grammar/statements/explain.y" { (yyval.node) = (PGNode *) (yyvsp[0].value); } -#line 23166 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 23286 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 989: + case 989: /* explain_option_arg: %empty */ #line 52 "third_party/libpg_query/grammar/statements/explain.y" { (yyval.node) = NULL; } -#line 23172 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 23292 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1020: + case 1020: /* NonReservedWord: IDENT */ #line 90 "third_party/libpg_query/grammar/statements/explain.y" { (yyval.str) = (yyvsp[0].str); } -#line 23178 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 23298 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1021: + case 1021: /* NonReservedWord: unreserved_keyword */ #line 91 "third_party/libpg_query/grammar/statements/explain.y" { (yyval.str) = pstrdup((yyvsp[0].keyword)); } -#line 23184 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 23304 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1022: + case 1022: /* NonReservedWord: other_keyword */ #line 92 "third_party/libpg_query/grammar/statements/explain.y" { (yyval.str) = pstrdup((yyvsp[0].keyword)); } -#line 23190 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 23310 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1023: + case 1023: /* NonReservedWord_or_Sconst: NonReservedWord */ #line 97 "third_party/libpg_query/grammar/statements/explain.y" { (yyval.str) = (yyvsp[0].str); } -#line 23196 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 23316 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1024: + case 1024: /* NonReservedWord_or_Sconst: Sconst */ #line 98 "third_party/libpg_query/grammar/statements/explain.y" { (yyval.str) = (yyvsp[0].str); } -#line 23202 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 23322 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1025: + case 1025: /* explain_option_list: explain_option_elem */ #line 104 "third_party/libpg_query/grammar/statements/explain.y" { (yyval.list) = list_make1((yyvsp[0].defelt)); } -#line 23210 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 23330 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1026: + case 1026: /* explain_option_list: explain_option_list ',' explain_option_elem */ #line 108 "third_party/libpg_query/grammar/statements/explain.y" { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].defelt)); } -#line 23218 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 23338 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1027: + case 1027: /* analyze_keyword: ANALYZE */ #line 115 "third_party/libpg_query/grammar/statements/explain.y" {} -#line 23224 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 23344 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1028: + case 1028: /* analyze_keyword: ANALYSE */ #line 116 "third_party/libpg_query/grammar/statements/explain.y" {} -#line 23230 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 23350 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1029: + case 1029: /* opt_boolean_or_string: TRUE_P */ #line 121 "third_party/libpg_query/grammar/statements/explain.y" { (yyval.str) = (char*) "true"; } -#line 23236 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 23356 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1030: + case 1030: /* opt_boolean_or_string: FALSE_P */ #line 122 "third_party/libpg_query/grammar/statements/explain.y" { (yyval.str) = (char*) "false"; } -#line 23242 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 23362 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1031: + case 1031: /* opt_boolean_or_string: ON */ #line 123 "third_party/libpg_query/grammar/statements/explain.y" { (yyval.str) = (char*) "on"; } -#line 23248 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 23368 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1032: + case 1032: /* opt_boolean_or_string: NonReservedWord_or_Sconst */ #line 129 "third_party/libpg_query/grammar/statements/explain.y" { (yyval.str) = (yyvsp[0].str); } -#line 23254 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 23374 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1033: + case 1033: /* explain_option_elem: explain_option_name explain_option_arg */ #line 135 "third_party/libpg_query/grammar/statements/explain.y" { (yyval.defelt) = makeDefElem((yyvsp[-1].str), (yyvsp[0].node), (yylsp[-1])); } -#line 23262 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 23382 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1034: + case 1034: /* explain_option_name: NonReservedWord */ #line 142 "third_party/libpg_query/grammar/statements/explain.y" { (yyval.str) = (yyvsp[0].str); } -#line 23268 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 23388 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1035: + case 1035: /* explain_option_name: analyze_keyword */ #line 143 "third_party/libpg_query/grammar/statements/explain.y" { (yyval.str) = (char*) "analyze"; } -#line 23274 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 23394 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1036: + case 1036: /* DropStmt: DROP drop_type_any_name IF_P EXISTS any_name_list opt_drop_behavior */ #line 10 "third_party/libpg_query/grammar/statements/drop.y" { PGDropStmt *n = makeNode(PGDropStmt); @@ -23284,10 +23404,10 @@ YYLTYPE yylloc = yyloc_default; n->concurrent = false; (yyval.node) = (PGNode *)n; } -#line 23288 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 23408 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1037: + case 1037: /* DropStmt: DROP drop_type_any_name any_name_list opt_drop_behavior */ #line 20 "third_party/libpg_query/grammar/statements/drop.y" { PGDropStmt *n = makeNode(PGDropStmt); @@ -23298,10 +23418,10 @@ YYLTYPE yylloc = yyloc_default; n->concurrent = false; (yyval.node) = (PGNode *)n; } -#line 23302 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 23422 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1038: + case 1038: /* DropStmt: DROP drop_type_name IF_P EXISTS name_list opt_drop_behavior */ #line 30 "third_party/libpg_query/grammar/statements/drop.y" { PGDropStmt *n = makeNode(PGDropStmt); @@ -23312,10 +23432,10 @@ YYLTYPE yylloc = yyloc_default; n->concurrent = false; (yyval.node) = (PGNode *)n; } -#line 23316 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 23436 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1039: + case 1039: /* DropStmt: DROP drop_type_name name_list opt_drop_behavior */ #line 40 "third_party/libpg_query/grammar/statements/drop.y" { PGDropStmt *n = makeNode(PGDropStmt); @@ -23326,10 +23446,10 @@ YYLTYPE yylloc = yyloc_default; n->concurrent = false; (yyval.node) = (PGNode *)n; } -#line 23330 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 23450 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1040: + case 1040: /* DropStmt: DROP drop_type_name_on_any_name name ON any_name opt_drop_behavior */ #line 50 "third_party/libpg_query/grammar/statements/drop.y" { PGDropStmt *n = makeNode(PGDropStmt); @@ -23340,10 +23460,10 @@ YYLTYPE yylloc = yyloc_default; n->concurrent = false; (yyval.node) = (PGNode *) n; } -#line 23344 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 23464 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1041: + case 1041: /* DropStmt: DROP drop_type_name_on_any_name IF_P EXISTS name ON any_name opt_drop_behavior */ #line 60 "third_party/libpg_query/grammar/statements/drop.y" { PGDropStmt *n = makeNode(PGDropStmt); @@ -23354,10 +23474,10 @@ YYLTYPE yylloc = yyloc_default; n->concurrent = false; (yyval.node) = (PGNode *) n; } -#line 23358 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 23478 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1042: + case 1042: /* DropStmt: DROP TYPE_P type_name_list opt_drop_behavior */ #line 70 "third_party/libpg_query/grammar/statements/drop.y" { PGDropStmt *n = makeNode(PGDropStmt); @@ -23368,10 +23488,10 @@ YYLTYPE yylloc = yyloc_default; n->concurrent = false; (yyval.node) = (PGNode *) n; } -#line 23372 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 23492 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1043: + case 1043: /* DropStmt: DROP TYPE_P IF_P EXISTS type_name_list opt_drop_behavior */ #line 80 "third_party/libpg_query/grammar/statements/drop.y" { PGDropStmt *n = makeNode(PGDropStmt); @@ -23382,208 +23502,208 @@ YYLTYPE yylloc = yyloc_default; n->concurrent = false; (yyval.node) = (PGNode *) n; } -#line 23386 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 23506 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1044: + case 1044: /* drop_type_any_name: TABLE */ #line 93 "third_party/libpg_query/grammar/statements/drop.y" { (yyval.objtype) = PG_OBJECT_TABLE; } -#line 23392 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 23512 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1045: + case 1045: /* drop_type_any_name: SEQUENCE */ #line 94 "third_party/libpg_query/grammar/statements/drop.y" { (yyval.objtype) = PG_OBJECT_SEQUENCE; } -#line 23398 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 23518 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1046: + case 1046: /* drop_type_any_name: FUNCTION */ #line 95 "third_party/libpg_query/grammar/statements/drop.y" { (yyval.objtype) = PG_OBJECT_FUNCTION; } -#line 23404 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 23524 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1047: + case 1047: /* drop_type_any_name: MACRO */ #line 96 "third_party/libpg_query/grammar/statements/drop.y" { (yyval.objtype) = PG_OBJECT_FUNCTION; } -#line 23410 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 23530 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1048: + case 1048: /* drop_type_any_name: MACRO TABLE */ #line 97 "third_party/libpg_query/grammar/statements/drop.y" { (yyval.objtype) = PG_OBJECT_TABLE_MACRO; } -#line 23416 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 23536 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1049: + case 1049: /* drop_type_any_name: VIEW */ #line 98 "third_party/libpg_query/grammar/statements/drop.y" { (yyval.objtype) = PG_OBJECT_VIEW; } -#line 23422 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 23542 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1050: + case 1050: /* drop_type_any_name: MATERIALIZED VIEW */ #line 99 "third_party/libpg_query/grammar/statements/drop.y" { (yyval.objtype) = PG_OBJECT_MATVIEW; } -#line 23428 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 23548 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1051: + case 1051: /* drop_type_any_name: INDEX */ #line 100 "third_party/libpg_query/grammar/statements/drop.y" { (yyval.objtype) = PG_OBJECT_INDEX; } -#line 23434 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 23554 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1052: + case 1052: /* drop_type_any_name: FOREIGN TABLE */ #line 101 "third_party/libpg_query/grammar/statements/drop.y" { (yyval.objtype) = PG_OBJECT_FOREIGN_TABLE; } -#line 23440 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 23560 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1053: + case 1053: /* drop_type_any_name: COLLATION */ #line 102 "third_party/libpg_query/grammar/statements/drop.y" { (yyval.objtype) = PG_OBJECT_COLLATION; } -#line 23446 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 23566 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1054: + case 1054: /* drop_type_any_name: CONVERSION_P */ #line 103 "third_party/libpg_query/grammar/statements/drop.y" { (yyval.objtype) = PG_OBJECT_CONVERSION; } -#line 23452 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 23572 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1055: + case 1055: /* drop_type_any_name: STATISTICS */ #line 104 "third_party/libpg_query/grammar/statements/drop.y" { (yyval.objtype) = PG_OBJECT_STATISTIC_EXT; } -#line 23458 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 23578 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1056: + case 1056: /* drop_type_any_name: TEXT_P SEARCH PARSER */ #line 105 "third_party/libpg_query/grammar/statements/drop.y" { (yyval.objtype) = PG_OBJECT_TSPARSER; } -#line 23464 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 23584 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1057: + case 1057: /* drop_type_any_name: TEXT_P SEARCH DICTIONARY */ #line 106 "third_party/libpg_query/grammar/statements/drop.y" { (yyval.objtype) = PG_OBJECT_TSDICTIONARY; } -#line 23470 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 23590 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1058: + case 1058: /* drop_type_any_name: TEXT_P SEARCH TEMPLATE */ #line 107 "third_party/libpg_query/grammar/statements/drop.y" { (yyval.objtype) = PG_OBJECT_TSTEMPLATE; } -#line 23476 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 23596 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1059: + case 1059: /* drop_type_any_name: TEXT_P SEARCH CONFIGURATION */ #line 108 "third_party/libpg_query/grammar/statements/drop.y" { (yyval.objtype) = PG_OBJECT_TSCONFIGURATION; } -#line 23482 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 23602 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1060: + case 1060: /* drop_type_name: ACCESS METHOD */ #line 113 "third_party/libpg_query/grammar/statements/drop.y" { (yyval.objtype) = PG_OBJECT_ACCESS_METHOD; } -#line 23488 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 23608 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1061: + case 1061: /* drop_type_name: EVENT TRIGGER */ #line 114 "third_party/libpg_query/grammar/statements/drop.y" { (yyval.objtype) = PG_OBJECT_EVENT_TRIGGER; } -#line 23494 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 23614 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1062: + case 1062: /* drop_type_name: EXTENSION */ #line 115 "third_party/libpg_query/grammar/statements/drop.y" { (yyval.objtype) = PG_OBJECT_EXTENSION; } -#line 23500 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 23620 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1063: + case 1063: /* drop_type_name: FOREIGN DATA_P WRAPPER */ #line 116 "third_party/libpg_query/grammar/statements/drop.y" { (yyval.objtype) = PG_OBJECT_FDW; } -#line 23506 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 23626 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1064: + case 1064: /* drop_type_name: PUBLICATION */ #line 117 "third_party/libpg_query/grammar/statements/drop.y" { (yyval.objtype) = PG_OBJECT_PUBLICATION; } -#line 23512 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 23632 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1065: + case 1065: /* drop_type_name: SCHEMA */ #line 118 "third_party/libpg_query/grammar/statements/drop.y" { (yyval.objtype) = PG_OBJECT_SCHEMA; } -#line 23518 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 23638 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1066: + case 1066: /* drop_type_name: SERVER */ #line 119 "third_party/libpg_query/grammar/statements/drop.y" { (yyval.objtype) = PG_OBJECT_FOREIGN_SERVER; } -#line 23524 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 23644 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1067: + case 1067: /* any_name_list: any_name */ #line 124 "third_party/libpg_query/grammar/statements/drop.y" { (yyval.list) = list_make1((yyvsp[0].list)); } -#line 23530 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 23650 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1068: + case 1068: /* any_name_list: any_name_list ',' any_name */ #line 125 "third_party/libpg_query/grammar/statements/drop.y" { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].list)); } -#line 23536 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 23656 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1069: + case 1069: /* opt_drop_behavior: CASCADE */ #line 130 "third_party/libpg_query/grammar/statements/drop.y" { (yyval.dbehavior) = PG_DROP_CASCADE; } -#line 23542 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 23662 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1070: + case 1070: /* opt_drop_behavior: RESTRICT */ #line 131 "third_party/libpg_query/grammar/statements/drop.y" { (yyval.dbehavior) = PG_DROP_RESTRICT; } -#line 23548 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 23668 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1071: + case 1071: /* opt_drop_behavior: %empty */ #line 132 "third_party/libpg_query/grammar/statements/drop.y" { (yyval.dbehavior) = PG_DROP_RESTRICT; /* default */ } -#line 23554 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 23674 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1072: + case 1072: /* drop_type_name_on_any_name: POLICY */ #line 137 "third_party/libpg_query/grammar/statements/drop.y" { (yyval.objtype) = PG_OBJECT_POLICY; } -#line 23560 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 23680 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1073: + case 1073: /* drop_type_name_on_any_name: RULE */ #line 138 "third_party/libpg_query/grammar/statements/drop.y" { (yyval.objtype) = PG_OBJECT_RULE; } -#line 23566 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 23686 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1074: + case 1074: /* drop_type_name_on_any_name: TRIGGER */ #line 139 "third_party/libpg_query/grammar/statements/drop.y" { (yyval.objtype) = PG_OBJECT_TRIGGER; } -#line 23572 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 23692 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1075: + case 1075: /* type_name_list: Typename */ #line 142 "third_party/libpg_query/grammar/statements/drop.y" { (yyval.list) = list_make1((yyvsp[0].typnam)); } -#line 23578 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 23698 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1076: + case 1076: /* type_name_list: type_name_list ',' Typename */ #line 143 "third_party/libpg_query/grammar/statements/drop.y" { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].typnam)); } -#line 23584 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 23704 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1077: + case 1077: /* CreateTypeStmt: CREATE_P TYPE_P any_name AS Typename */ #line 8 "third_party/libpg_query/grammar/statements/create_type.y" { PGCreateTypeStmt *n = makeNode(PGCreateTypeStmt); @@ -23598,10 +23718,10 @@ YYLTYPE yylloc = yyloc_default; } (yyval.node) = (PGNode *)n; } -#line 23602 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 23722 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1078: + case 1078: /* AlterTableStmt: ALTER TABLE relation_expr alter_table_cmds */ #line 10 "third_party/libpg_query/grammar/statements/alter_table.y" { PGAlterTableStmt *n = makeNode(PGAlterTableStmt); @@ -23611,10 +23731,10 @@ YYLTYPE yylloc = yyloc_default; n->missing_ok = false; (yyval.node) = (PGNode *)n; } -#line 23615 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 23735 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1079: + case 1079: /* AlterTableStmt: ALTER TABLE IF_P EXISTS relation_expr alter_table_cmds */ #line 19 "third_party/libpg_query/grammar/statements/alter_table.y" { PGAlterTableStmt *n = makeNode(PGAlterTableStmt); @@ -23624,10 +23744,10 @@ YYLTYPE yylloc = yyloc_default; n->missing_ok = true; (yyval.node) = (PGNode *)n; } -#line 23628 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 23748 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1080: + case 1080: /* AlterTableStmt: ALTER INDEX qualified_name alter_table_cmds */ #line 28 "third_party/libpg_query/grammar/statements/alter_table.y" { PGAlterTableStmt *n = makeNode(PGAlterTableStmt); @@ -23637,10 +23757,10 @@ YYLTYPE yylloc = yyloc_default; n->missing_ok = false; (yyval.node) = (PGNode *)n; } -#line 23641 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 23761 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1081: + case 1081: /* AlterTableStmt: ALTER INDEX IF_P EXISTS qualified_name alter_table_cmds */ #line 37 "third_party/libpg_query/grammar/statements/alter_table.y" { PGAlterTableStmt *n = makeNode(PGAlterTableStmt); @@ -23650,10 +23770,10 @@ YYLTYPE yylloc = yyloc_default; n->missing_ok = true; (yyval.node) = (PGNode *)n; } -#line 23654 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 23774 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1082: + case 1082: /* AlterTableStmt: ALTER SEQUENCE qualified_name alter_table_cmds */ #line 46 "third_party/libpg_query/grammar/statements/alter_table.y" { PGAlterTableStmt *n = makeNode(PGAlterTableStmt); @@ -23663,10 +23783,10 @@ YYLTYPE yylloc = yyloc_default; n->missing_ok = false; (yyval.node) = (PGNode *)n; } -#line 23667 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 23787 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1083: + case 1083: /* AlterTableStmt: ALTER SEQUENCE IF_P EXISTS qualified_name alter_table_cmds */ #line 55 "third_party/libpg_query/grammar/statements/alter_table.y" { PGAlterTableStmt *n = makeNode(PGAlterTableStmt); @@ -23676,10 +23796,10 @@ YYLTYPE yylloc = yyloc_default; n->missing_ok = true; (yyval.node) = (PGNode *)n; } -#line 23680 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 23800 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1084: + case 1084: /* AlterTableStmt: ALTER VIEW qualified_name alter_table_cmds */ #line 64 "third_party/libpg_query/grammar/statements/alter_table.y" { PGAlterTableStmt *n = makeNode(PGAlterTableStmt); @@ -23689,10 +23809,10 @@ YYLTYPE yylloc = yyloc_default; n->missing_ok = false; (yyval.node) = (PGNode *)n; } -#line 23693 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 23813 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1085: + case 1085: /* AlterTableStmt: ALTER VIEW IF_P EXISTS qualified_name alter_table_cmds */ #line 73 "third_party/libpg_query/grammar/statements/alter_table.y" { PGAlterTableStmt *n = makeNode(PGAlterTableStmt); @@ -23702,50 +23822,50 @@ YYLTYPE yylloc = yyloc_default; n->missing_ok = true; (yyval.node) = (PGNode *)n; } -#line 23706 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 23826 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1086: + case 1086: /* alter_identity_column_option_list: alter_identity_column_option */ #line 86 "third_party/libpg_query/grammar/statements/alter_table.y" { (yyval.list) = list_make1((yyvsp[0].defelt)); } -#line 23712 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 23832 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1087: + case 1087: /* alter_identity_column_option_list: alter_identity_column_option_list alter_identity_column_option */ #line 88 "third_party/libpg_query/grammar/statements/alter_table.y" { (yyval.list) = lappend((yyvsp[-1].list), (yyvsp[0].defelt)); } -#line 23718 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 23838 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1088: + case 1088: /* alter_column_default: SET DEFAULT a_expr */ #line 93 "third_party/libpg_query/grammar/statements/alter_table.y" { (yyval.node) = (yyvsp[0].node); } -#line 23724 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 23844 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1089: + case 1089: /* alter_column_default: DROP DEFAULT */ #line 94 "third_party/libpg_query/grammar/statements/alter_table.y" { (yyval.node) = NULL; } -#line 23730 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 23850 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1090: + case 1090: /* alter_identity_column_option: RESTART */ #line 100 "third_party/libpg_query/grammar/statements/alter_table.y" { (yyval.defelt) = makeDefElem("restart", NULL, (yylsp[0])); } -#line 23738 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 23858 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1091: + case 1091: /* alter_identity_column_option: RESTART opt_with NumericOnly */ #line 104 "third_party/libpg_query/grammar/statements/alter_table.y" { (yyval.defelt) = makeDefElem("restart", (PGNode *)(yyvsp[0].value), (yylsp[-2])); } -#line 23746 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 23866 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1092: + case 1092: /* alter_identity_column_option: SET SeqOptElem */ #line 108 "third_party/libpg_query/grammar/statements/alter_table.y" { if (strcmp((yyvsp[0].defelt)->defname, "as") == 0 || @@ -23757,34 +23877,34 @@ YYLTYPE yylloc = yyloc_default; parser_errposition((yylsp[0])))); (yyval.defelt) = (yyvsp[0].defelt); } -#line 23761 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 23881 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1093: + case 1093: /* alter_identity_column_option: SET GENERATED generated_when */ #line 119 "third_party/libpg_query/grammar/statements/alter_table.y" { (yyval.defelt) = makeDefElem("generated", (PGNode *) makeInteger((yyvsp[0].ival)), (yylsp[-2])); } -#line 23769 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 23889 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1094: + case 1094: /* alter_generic_option_list: alter_generic_option_elem */ #line 127 "third_party/libpg_query/grammar/statements/alter_table.y" { (yyval.list) = list_make1((yyvsp[0].defelt)); } -#line 23777 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 23897 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1095: + case 1095: /* alter_generic_option_list: alter_generic_option_list ',' alter_generic_option_elem */ #line 131 "third_party/libpg_query/grammar/statements/alter_table.y" { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].defelt)); } -#line 23785 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 23905 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1096: + case 1096: /* alter_table_cmd: ADD_P columnDef */ #line 140 "third_party/libpg_query/grammar/statements/alter_table.y" { PGAlterTableCmd *n = makeNode(PGAlterTableCmd); @@ -23793,10 +23913,10 @@ YYLTYPE yylloc = yyloc_default; n->missing_ok = false; (yyval.node) = (PGNode *)n; } -#line 23797 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 23917 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1097: + case 1097: /* alter_table_cmd: ADD_P IF_P NOT EXISTS columnDef */ #line 149 "third_party/libpg_query/grammar/statements/alter_table.y" { PGAlterTableCmd *n = makeNode(PGAlterTableCmd); @@ -23805,10 +23925,10 @@ YYLTYPE yylloc = yyloc_default; n->missing_ok = true; (yyval.node) = (PGNode *)n; } -#line 23809 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 23929 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1098: + case 1098: /* alter_table_cmd: ADD_P COLUMN columnDef */ #line 158 "third_party/libpg_query/grammar/statements/alter_table.y" { PGAlterTableCmd *n = makeNode(PGAlterTableCmd); @@ -23817,10 +23937,10 @@ YYLTYPE yylloc = yyloc_default; n->missing_ok = false; (yyval.node) = (PGNode *)n; } -#line 23821 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 23941 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1099: + case 1099: /* alter_table_cmd: ADD_P COLUMN IF_P NOT EXISTS columnDef */ #line 167 "third_party/libpg_query/grammar/statements/alter_table.y" { PGAlterTableCmd *n = makeNode(PGAlterTableCmd); @@ -23829,10 +23949,10 @@ YYLTYPE yylloc = yyloc_default; n->missing_ok = true; (yyval.node) = (PGNode *)n; } -#line 23833 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 23953 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1100: + case 1100: /* alter_table_cmd: ALTER opt_column ColId alter_column_default */ #line 176 "third_party/libpg_query/grammar/statements/alter_table.y" { PGAlterTableCmd *n = makeNode(PGAlterTableCmd); @@ -23841,10 +23961,10 @@ YYLTYPE yylloc = yyloc_default; n->def = (yyvsp[0].node); (yyval.node) = (PGNode *)n; } -#line 23845 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 23965 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1101: + case 1101: /* alter_table_cmd: ALTER opt_column ColId DROP NOT NULL_P */ #line 185 "third_party/libpg_query/grammar/statements/alter_table.y" { PGAlterTableCmd *n = makeNode(PGAlterTableCmd); @@ -23852,10 +23972,10 @@ YYLTYPE yylloc = yyloc_default; n->name = (yyvsp[-3].str); (yyval.node) = (PGNode *)n; } -#line 23856 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 23976 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1102: + case 1102: /* alter_table_cmd: ALTER opt_column ColId SET NOT NULL_P */ #line 193 "third_party/libpg_query/grammar/statements/alter_table.y" { PGAlterTableCmd *n = makeNode(PGAlterTableCmd); @@ -23863,10 +23983,10 @@ YYLTYPE yylloc = yyloc_default; n->name = (yyvsp[-3].str); (yyval.node) = (PGNode *)n; } -#line 23867 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 23987 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1103: + case 1103: /* alter_table_cmd: ALTER opt_column ColId SET STATISTICS SignedIconst */ #line 201 "third_party/libpg_query/grammar/statements/alter_table.y" { PGAlterTableCmd *n = makeNode(PGAlterTableCmd); @@ -23875,10 +23995,10 @@ YYLTYPE yylloc = yyloc_default; n->def = (PGNode *) makeInteger((yyvsp[0].ival)); (yyval.node) = (PGNode *)n; } -#line 23879 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 23999 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1104: + case 1104: /* alter_table_cmd: ALTER opt_column ColId SET reloptions */ #line 210 "third_party/libpg_query/grammar/statements/alter_table.y" { PGAlterTableCmd *n = makeNode(PGAlterTableCmd); @@ -23887,10 +24007,10 @@ YYLTYPE yylloc = yyloc_default; n->def = (PGNode *) (yyvsp[0].list); (yyval.node) = (PGNode *)n; } -#line 23891 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 24011 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1105: + case 1105: /* alter_table_cmd: ALTER opt_column ColId RESET reloptions */ #line 219 "third_party/libpg_query/grammar/statements/alter_table.y" { PGAlterTableCmd *n = makeNode(PGAlterTableCmd); @@ -23899,10 +24019,10 @@ YYLTYPE yylloc = yyloc_default; n->def = (PGNode *) (yyvsp[0].list); (yyval.node) = (PGNode *)n; } -#line 23903 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 24023 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1106: + case 1106: /* alter_table_cmd: ALTER opt_column ColId SET STORAGE ColId */ #line 228 "third_party/libpg_query/grammar/statements/alter_table.y" { PGAlterTableCmd *n = makeNode(PGAlterTableCmd); @@ -23911,10 +24031,10 @@ YYLTYPE yylloc = yyloc_default; n->def = (PGNode *) makeString((yyvsp[0].str)); (yyval.node) = (PGNode *)n; } -#line 23915 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 24035 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1107: + case 1107: /* alter_table_cmd: ALTER opt_column ColId ADD_P GENERATED generated_when AS IDENTITY_P OptParenthesizedSeqOptList */ #line 237 "third_party/libpg_query/grammar/statements/alter_table.y" { PGAlterTableCmd *n = makeNode(PGAlterTableCmd); @@ -23931,10 +24051,10 @@ YYLTYPE yylloc = yyloc_default; (yyval.node) = (PGNode *)n; } -#line 23935 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 24055 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1108: + case 1108: /* alter_table_cmd: ALTER opt_column ColId alter_identity_column_option_list */ #line 254 "third_party/libpg_query/grammar/statements/alter_table.y" { PGAlterTableCmd *n = makeNode(PGAlterTableCmd); @@ -23943,10 +24063,10 @@ YYLTYPE yylloc = yyloc_default; n->def = (PGNode *) (yyvsp[0].list); (yyval.node) = (PGNode *)n; } -#line 23947 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 24067 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1109: + case 1109: /* alter_table_cmd: ALTER opt_column ColId DROP IDENTITY_P */ #line 263 "third_party/libpg_query/grammar/statements/alter_table.y" { PGAlterTableCmd *n = makeNode(PGAlterTableCmd); @@ -23955,10 +24075,10 @@ YYLTYPE yylloc = yyloc_default; n->missing_ok = false; (yyval.node) = (PGNode *)n; } -#line 23959 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 24079 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1110: + case 1110: /* alter_table_cmd: ALTER opt_column ColId DROP IDENTITY_P IF_P EXISTS */ #line 272 "third_party/libpg_query/grammar/statements/alter_table.y" { PGAlterTableCmd *n = makeNode(PGAlterTableCmd); @@ -23967,10 +24087,10 @@ YYLTYPE yylloc = yyloc_default; n->missing_ok = true; (yyval.node) = (PGNode *)n; } -#line 23971 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 24091 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1111: + case 1111: /* alter_table_cmd: DROP opt_column IF_P EXISTS ColId opt_drop_behavior */ #line 281 "third_party/libpg_query/grammar/statements/alter_table.y" { PGAlterTableCmd *n = makeNode(PGAlterTableCmd); @@ -23980,10 +24100,10 @@ YYLTYPE yylloc = yyloc_default; n->missing_ok = true; (yyval.node) = (PGNode *)n; } -#line 23984 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 24104 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1112: + case 1112: /* alter_table_cmd: DROP opt_column ColId opt_drop_behavior */ #line 291 "third_party/libpg_query/grammar/statements/alter_table.y" { PGAlterTableCmd *n = makeNode(PGAlterTableCmd); @@ -23993,10 +24113,10 @@ YYLTYPE yylloc = yyloc_default; n->missing_ok = false; (yyval.node) = (PGNode *)n; } -#line 23997 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 24117 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1113: + case 1113: /* alter_table_cmd: ALTER opt_column ColId opt_set_data TYPE_P Typename opt_collate_clause alter_using */ #line 304 "third_party/libpg_query/grammar/statements/alter_table.y" { PGAlterTableCmd *n = makeNode(PGAlterTableCmd); @@ -24011,10 +24131,10 @@ YYLTYPE yylloc = yyloc_default; def->location = (yylsp[-5]); (yyval.node) = (PGNode *)n; } -#line 24015 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 24135 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1114: + case 1114: /* alter_table_cmd: ALTER opt_column ColId alter_generic_options */ #line 319 "third_party/libpg_query/grammar/statements/alter_table.y" { PGAlterTableCmd *n = makeNode(PGAlterTableCmd); @@ -24023,10 +24143,10 @@ YYLTYPE yylloc = yyloc_default; n->def = (PGNode *) (yyvsp[0].list); (yyval.node) = (PGNode *)n; } -#line 24027 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 24147 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1115: + case 1115: /* alter_table_cmd: ADD_P TableConstraint */ #line 328 "third_party/libpg_query/grammar/statements/alter_table.y" { PGAlterTableCmd *n = makeNode(PGAlterTableCmd); @@ -24034,10 +24154,10 @@ YYLTYPE yylloc = yyloc_default; n->def = (yyvsp[0].node); (yyval.node) = (PGNode *)n; } -#line 24038 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 24158 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1116: + case 1116: /* alter_table_cmd: ALTER CONSTRAINT name ConstraintAttributeSpec */ #line 336 "third_party/libpg_query/grammar/statements/alter_table.y" { PGAlterTableCmd *n = makeNode(PGAlterTableCmd); @@ -24052,10 +24172,10 @@ YYLTYPE yylloc = yyloc_default; NULL, NULL, yyscanner); (yyval.node) = (PGNode *)n; } -#line 24056 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 24176 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1117: + case 1117: /* alter_table_cmd: VALIDATE CONSTRAINT name */ #line 351 "third_party/libpg_query/grammar/statements/alter_table.y" { PGAlterTableCmd *n = makeNode(PGAlterTableCmd); @@ -24063,10 +24183,10 @@ YYLTYPE yylloc = yyloc_default; n->name = (yyvsp[0].str); (yyval.node) = (PGNode *)n; } -#line 24067 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 24187 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1118: + case 1118: /* alter_table_cmd: DROP CONSTRAINT IF_P EXISTS name opt_drop_behavior */ #line 359 "third_party/libpg_query/grammar/statements/alter_table.y" { PGAlterTableCmd *n = makeNode(PGAlterTableCmd); @@ -24076,10 +24196,10 @@ YYLTYPE yylloc = yyloc_default; n->missing_ok = true; (yyval.node) = (PGNode *)n; } -#line 24080 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 24200 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1119: + case 1119: /* alter_table_cmd: DROP CONSTRAINT name opt_drop_behavior */ #line 369 "third_party/libpg_query/grammar/statements/alter_table.y" { PGAlterTableCmd *n = makeNode(PGAlterTableCmd); @@ -24089,30 +24209,30 @@ YYLTYPE yylloc = yyloc_default; n->missing_ok = false; (yyval.node) = (PGNode *)n; } -#line 24093 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 24213 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1120: + case 1120: /* alter_table_cmd: SET LOGGED */ #line 379 "third_party/libpg_query/grammar/statements/alter_table.y" { PGAlterTableCmd *n = makeNode(PGAlterTableCmd); n->subtype = PG_AT_SetLogged; (yyval.node) = (PGNode *)n; } -#line 24103 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 24223 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1121: + case 1121: /* alter_table_cmd: SET UNLOGGED */ #line 386 "third_party/libpg_query/grammar/statements/alter_table.y" { PGAlterTableCmd *n = makeNode(PGAlterTableCmd); n->subtype = PG_AT_SetUnLogged; (yyval.node) = (PGNode *)n; } -#line 24113 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 24233 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1122: + case 1122: /* alter_table_cmd: SET reloptions */ #line 393 "third_party/libpg_query/grammar/statements/alter_table.y" { PGAlterTableCmd *n = makeNode(PGAlterTableCmd); @@ -24120,10 +24240,10 @@ YYLTYPE yylloc = yyloc_default; n->def = (PGNode *)(yyvsp[0].list); (yyval.node) = (PGNode *)n; } -#line 24124 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 24244 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1123: + case 1123: /* alter_table_cmd: RESET reloptions */ #line 401 "third_party/libpg_query/grammar/statements/alter_table.y" { PGAlterTableCmd *n = makeNode(PGAlterTableCmd); @@ -24131,10 +24251,10 @@ YYLTYPE yylloc = yyloc_default; n->def = (PGNode *)(yyvsp[0].list); (yyval.node) = (PGNode *)n; } -#line 24135 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 24255 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1124: + case 1124: /* alter_table_cmd: alter_generic_options */ #line 408 "third_party/libpg_query/grammar/statements/alter_table.y" { PGAlterTableCmd *n = makeNode(PGAlterTableCmd); @@ -24142,92 +24262,92 @@ YYLTYPE yylloc = yyloc_default; n->def = (PGNode *)(yyvsp[0].list); (yyval.node) = (PGNode *) n; } -#line 24146 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 24266 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1125: + case 1125: /* alter_using: USING a_expr */ #line 418 "third_party/libpg_query/grammar/statements/alter_table.y" { (yyval.node) = (yyvsp[0].node); } -#line 24152 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 24272 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1126: + case 1126: /* alter_using: %empty */ #line 419 "third_party/libpg_query/grammar/statements/alter_table.y" { (yyval.node) = NULL; } -#line 24158 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 24278 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1127: + case 1127: /* alter_generic_option_elem: generic_option_elem */ #line 425 "third_party/libpg_query/grammar/statements/alter_table.y" { (yyval.defelt) = (yyvsp[0].defelt); } -#line 24166 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 24286 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1128: + case 1128: /* alter_generic_option_elem: SET generic_option_elem */ #line 429 "third_party/libpg_query/grammar/statements/alter_table.y" { (yyval.defelt) = (yyvsp[0].defelt); (yyval.defelt)->defaction = PG_DEFELEM_SET; } -#line 24175 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 24295 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1129: + case 1129: /* alter_generic_option_elem: ADD_P generic_option_elem */ #line 434 "third_party/libpg_query/grammar/statements/alter_table.y" { (yyval.defelt) = (yyvsp[0].defelt); (yyval.defelt)->defaction = PG_DEFELEM_ADD; } -#line 24184 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 24304 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1130: + case 1130: /* alter_generic_option_elem: DROP generic_option_name */ #line 439 "third_party/libpg_query/grammar/statements/alter_table.y" { (yyval.defelt) = makeDefElemExtended(NULL, (yyvsp[0].str), NULL, DEFELEM_DROP, (yylsp[0])); } -#line 24192 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 24312 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1131: + case 1131: /* alter_table_cmds: alter_table_cmd */ #line 446 "third_party/libpg_query/grammar/statements/alter_table.y" { (yyval.list) = list_make1((yyvsp[0].node)); } -#line 24198 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 24318 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1132: + case 1132: /* alter_table_cmds: alter_table_cmds ',' alter_table_cmd */ #line 447 "third_party/libpg_query/grammar/statements/alter_table.y" { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].node)); } -#line 24204 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 24324 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1133: + case 1133: /* alter_generic_options: OPTIONS '(' alter_generic_option_list ')' */ #line 452 "third_party/libpg_query/grammar/statements/alter_table.y" { (yyval.list) = (yyvsp[-1].list); } -#line 24210 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 24330 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1134: + case 1134: /* opt_set_data: SET DATA_P */ #line 456 "third_party/libpg_query/grammar/statements/alter_table.y" { (yyval.ival) = 1; } -#line 24216 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 24336 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1135: + case 1135: /* opt_set_data: SET */ #line 457 "third_party/libpg_query/grammar/statements/alter_table.y" { (yyval.ival) = 0; } -#line 24222 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 24342 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1136: + case 1136: /* opt_set_data: %empty */ #line 458 "third_party/libpg_query/grammar/statements/alter_table.y" { (yyval.ival) = 0; } -#line 24228 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 24348 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1137: + case 1137: /* TransactionStmt: ABORT_P opt_transaction */ #line 3 "third_party/libpg_query/grammar/statements/transaction.y" { PGTransactionStmt *n = makeNode(PGTransactionStmt); @@ -24235,30 +24355,30 @@ YYLTYPE yylloc = yyloc_default; n->options = NIL; (yyval.node) = (PGNode *)n; } -#line 24239 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 24359 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1138: + case 1138: /* TransactionStmt: BEGIN_P opt_transaction */ #line 10 "third_party/libpg_query/grammar/statements/transaction.y" { PGTransactionStmt *n = makeNode(PGTransactionStmt); n->kind = PG_TRANS_STMT_BEGIN; (yyval.node) = (PGNode *)n; } -#line 24249 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 24369 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1139: + case 1139: /* TransactionStmt: START opt_transaction */ #line 16 "third_party/libpg_query/grammar/statements/transaction.y" { PGTransactionStmt *n = makeNode(PGTransactionStmt); n->kind = PG_TRANS_STMT_START; (yyval.node) = (PGNode *)n; } -#line 24259 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 24379 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1140: + case 1140: /* TransactionStmt: COMMIT opt_transaction */ #line 22 "third_party/libpg_query/grammar/statements/transaction.y" { PGTransactionStmt *n = makeNode(PGTransactionStmt); @@ -24266,10 +24386,10 @@ YYLTYPE yylloc = yyloc_default; n->options = NIL; (yyval.node) = (PGNode *)n; } -#line 24270 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 24390 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1141: + case 1141: /* TransactionStmt: END_P opt_transaction */ #line 29 "third_party/libpg_query/grammar/statements/transaction.y" { PGTransactionStmt *n = makeNode(PGTransactionStmt); @@ -24277,10 +24397,10 @@ YYLTYPE yylloc = yyloc_default; n->options = NIL; (yyval.node) = (PGNode *)n; } -#line 24281 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 24401 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1142: + case 1142: /* TransactionStmt: ROLLBACK opt_transaction */ #line 36 "third_party/libpg_query/grammar/statements/transaction.y" { PGTransactionStmt *n = makeNode(PGTransactionStmt); @@ -24288,28 +24408,28 @@ YYLTYPE yylloc = yyloc_default; n->options = NIL; (yyval.node) = (PGNode *)n; } -#line 24292 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 24412 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1143: + case 1143: /* opt_transaction: WORK */ #line 45 "third_party/libpg_query/grammar/statements/transaction.y" {} -#line 24298 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 24418 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1144: + case 1144: /* opt_transaction: TRANSACTION */ #line 46 "third_party/libpg_query/grammar/statements/transaction.y" {} -#line 24304 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 24424 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1145: + case 1145: /* opt_transaction: %empty */ #line 47 "third_party/libpg_query/grammar/statements/transaction.y" {} -#line 24310 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 24430 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1146: + case 1146: /* RenameStmt: ALTER SCHEMA name RENAME TO name */ #line 7 "third_party/libpg_query/grammar/statements/rename.y" { PGRenameStmt *n = makeNode(PGRenameStmt); @@ -24319,10 +24439,10 @@ YYLTYPE yylloc = yyloc_default; n->missing_ok = false; (yyval.node) = (PGNode *)n; } -#line 24323 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 24443 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1147: + case 1147: /* RenameStmt: ALTER TABLE relation_expr RENAME TO name */ #line 16 "third_party/libpg_query/grammar/statements/rename.y" { PGRenameStmt *n = makeNode(PGRenameStmt); @@ -24333,10 +24453,10 @@ YYLTYPE yylloc = yyloc_default; n->missing_ok = false; (yyval.node) = (PGNode *)n; } -#line 24337 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 24457 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1148: + case 1148: /* RenameStmt: ALTER TABLE IF_P EXISTS relation_expr RENAME TO name */ #line 26 "third_party/libpg_query/grammar/statements/rename.y" { PGRenameStmt *n = makeNode(PGRenameStmt); @@ -24347,10 +24467,10 @@ YYLTYPE yylloc = yyloc_default; n->missing_ok = true; (yyval.node) = (PGNode *)n; } -#line 24351 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 24471 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1149: + case 1149: /* RenameStmt: ALTER SEQUENCE qualified_name RENAME TO name */ #line 36 "third_party/libpg_query/grammar/statements/rename.y" { PGRenameStmt *n = makeNode(PGRenameStmt); @@ -24361,10 +24481,10 @@ YYLTYPE yylloc = yyloc_default; n->missing_ok = false; (yyval.node) = (PGNode *)n; } -#line 24365 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 24485 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1150: + case 1150: /* RenameStmt: ALTER SEQUENCE IF_P EXISTS qualified_name RENAME TO name */ #line 46 "third_party/libpg_query/grammar/statements/rename.y" { PGRenameStmt *n = makeNode(PGRenameStmt); @@ -24375,10 +24495,10 @@ YYLTYPE yylloc = yyloc_default; n->missing_ok = true; (yyval.node) = (PGNode *)n; } -#line 24379 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 24499 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1151: + case 1151: /* RenameStmt: ALTER VIEW qualified_name RENAME TO name */ #line 56 "third_party/libpg_query/grammar/statements/rename.y" { PGRenameStmt *n = makeNode(PGRenameStmt); @@ -24389,10 +24509,10 @@ YYLTYPE yylloc = yyloc_default; n->missing_ok = false; (yyval.node) = (PGNode *)n; } -#line 24393 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 24513 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1152: + case 1152: /* RenameStmt: ALTER VIEW IF_P EXISTS qualified_name RENAME TO name */ #line 66 "third_party/libpg_query/grammar/statements/rename.y" { PGRenameStmt *n = makeNode(PGRenameStmt); @@ -24403,10 +24523,10 @@ YYLTYPE yylloc = yyloc_default; n->missing_ok = true; (yyval.node) = (PGNode *)n; } -#line 24407 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 24527 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1153: + case 1153: /* RenameStmt: ALTER INDEX qualified_name RENAME TO name */ #line 76 "third_party/libpg_query/grammar/statements/rename.y" { PGRenameStmt *n = makeNode(PGRenameStmt); @@ -24417,10 +24537,10 @@ YYLTYPE yylloc = yyloc_default; n->missing_ok = false; (yyval.node) = (PGNode *)n; } -#line 24421 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 24541 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1154: + case 1154: /* RenameStmt: ALTER INDEX IF_P EXISTS qualified_name RENAME TO name */ #line 86 "third_party/libpg_query/grammar/statements/rename.y" { PGRenameStmt *n = makeNode(PGRenameStmt); @@ -24431,10 +24551,10 @@ YYLTYPE yylloc = yyloc_default; n->missing_ok = true; (yyval.node) = (PGNode *)n; } -#line 24435 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 24555 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1155: + case 1155: /* RenameStmt: ALTER TABLE relation_expr RENAME opt_column name TO name */ #line 96 "third_party/libpg_query/grammar/statements/rename.y" { PGRenameStmt *n = makeNode(PGRenameStmt); @@ -24446,10 +24566,10 @@ YYLTYPE yylloc = yyloc_default; n->missing_ok = false; (yyval.node) = (PGNode *)n; } -#line 24450 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 24570 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1156: + case 1156: /* RenameStmt: ALTER TABLE IF_P EXISTS relation_expr RENAME opt_column name TO name */ #line 107 "third_party/libpg_query/grammar/statements/rename.y" { PGRenameStmt *n = makeNode(PGRenameStmt); @@ -24461,10 +24581,10 @@ YYLTYPE yylloc = yyloc_default; n->missing_ok = true; (yyval.node) = (PGNode *)n; } -#line 24465 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 24585 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1157: + case 1157: /* RenameStmt: ALTER TABLE relation_expr RENAME CONSTRAINT name TO name */ #line 118 "third_party/libpg_query/grammar/statements/rename.y" { PGRenameStmt *n = makeNode(PGRenameStmt); @@ -24475,10 +24595,10 @@ YYLTYPE yylloc = yyloc_default; n->missing_ok = false; (yyval.node) = (PGNode *)n; } -#line 24479 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 24599 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1158: + case 1158: /* RenameStmt: ALTER TABLE IF_P EXISTS relation_expr RENAME CONSTRAINT name TO name */ #line 128 "third_party/libpg_query/grammar/statements/rename.y" { PGRenameStmt *n = makeNode(PGRenameStmt); @@ -24489,22 +24609,22 @@ YYLTYPE yylloc = yyloc_default; n->missing_ok = true; (yyval.node) = (PGNode *)n; } -#line 24493 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 24613 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1159: + case 1159: /* opt_column: COLUMN */ #line 140 "third_party/libpg_query/grammar/statements/rename.y" { (yyval.ival) = COLUMN; } -#line 24499 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 24619 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1160: + case 1160: /* opt_column: %empty */ #line 141 "third_party/libpg_query/grammar/statements/rename.y" { (yyval.ival) = 0; } -#line 24505 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 24625 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1161: + case 1161: /* PrepareStmt: PREPARE name prep_type_clause AS PreparableStmt */ #line 8 "third_party/libpg_query/grammar/statements/prepare.y" { PGPrepareStmt *n = makeNode(PGPrepareStmt); @@ -24513,22 +24633,22 @@ YYLTYPE yylloc = yyloc_default; n->query = (yyvsp[0].node); (yyval.node) = (PGNode *) n; } -#line 24517 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 24637 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1162: + case 1162: /* prep_type_clause: '(' type_list ')' */ #line 18 "third_party/libpg_query/grammar/statements/prepare.y" { (yyval.list) = (yyvsp[-1].list); } -#line 24523 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 24643 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1163: + case 1163: /* prep_type_clause: %empty */ #line 19 "third_party/libpg_query/grammar/statements/prepare.y" { (yyval.list) = NIL; } -#line 24529 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 24649 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1168: + case 1168: /* VacuumStmt: VACUUM opt_full opt_freeze opt_verbose */ #line 9 "third_party/libpg_query/grammar/statements/vacuum.y" { PGVacuumStmt *n = makeNode(PGVacuumStmt); @@ -24543,10 +24663,10 @@ YYLTYPE yylloc = yyloc_default; n->va_cols = NIL; (yyval.node) = (PGNode *)n; } -#line 24547 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 24667 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1169: + case 1169: /* VacuumStmt: VACUUM opt_full opt_freeze opt_verbose qualified_name */ #line 23 "third_party/libpg_query/grammar/statements/vacuum.y" { PGVacuumStmt *n = makeNode(PGVacuumStmt); @@ -24561,10 +24681,10 @@ YYLTYPE yylloc = yyloc_default; n->va_cols = NIL; (yyval.node) = (PGNode *)n; } -#line 24565 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 24685 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1170: + case 1170: /* VacuumStmt: VACUUM opt_full opt_freeze opt_verbose AnalyzeStmt */ #line 37 "third_party/libpg_query/grammar/statements/vacuum.y" { PGVacuumStmt *n = (PGVacuumStmt *) (yyvsp[0].node); @@ -24577,10 +24697,10 @@ YYLTYPE yylloc = yyloc_default; n->options |= PG_VACOPT_VERBOSE; (yyval.node) = (PGNode *)n; } -#line 24581 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 24701 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1171: + case 1171: /* VacuumStmt: VACUUM '(' vacuum_option_list ')' */ #line 49 "third_party/libpg_query/grammar/statements/vacuum.y" { PGVacuumStmt *n = makeNode(PGVacuumStmt); @@ -24589,10 +24709,10 @@ YYLTYPE yylloc = yyloc_default; n->va_cols = NIL; (yyval.node) = (PGNode *) n; } -#line 24593 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 24713 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1172: + case 1172: /* VacuumStmt: VACUUM '(' vacuum_option_list ')' qualified_name opt_name_list */ #line 57 "third_party/libpg_query/grammar/statements/vacuum.y" { PGVacuumStmt *n = makeNode(PGVacuumStmt); @@ -24603,34 +24723,34 @@ YYLTYPE yylloc = yyloc_default; n->options |= PG_VACOPT_ANALYZE; (yyval.node) = (PGNode *) n; } -#line 24607 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 24727 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1173: + case 1173: /* vacuum_option_elem: analyze_keyword */ #line 70 "third_party/libpg_query/grammar/statements/vacuum.y" { (yyval.ival) = PG_VACOPT_ANALYZE; } -#line 24613 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 24733 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1174: + case 1174: /* vacuum_option_elem: VERBOSE */ #line 71 "third_party/libpg_query/grammar/statements/vacuum.y" { (yyval.ival) = PG_VACOPT_VERBOSE; } -#line 24619 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 24739 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1175: + case 1175: /* vacuum_option_elem: FREEZE */ #line 72 "third_party/libpg_query/grammar/statements/vacuum.y" { (yyval.ival) = PG_VACOPT_FREEZE; } -#line 24625 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 24745 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1176: + case 1176: /* vacuum_option_elem: FULL */ #line 73 "third_party/libpg_query/grammar/statements/vacuum.y" { (yyval.ival) = PG_VACOPT_FULL; } -#line 24631 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 24751 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1177: + case 1177: /* vacuum_option_elem: IDENT */ #line 75 "third_party/libpg_query/grammar/statements/vacuum.y" { if (strcmp((yyvsp[0].str), "disable_page_skipping") == 0) @@ -24641,46 +24761,46 @@ YYLTYPE yylloc = yyloc_default; errmsg("unrecognized VACUUM option \"%s\"", (yyvsp[0].str)), parser_errposition((yylsp[0])))); } -#line 24645 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 24765 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1178: + case 1178: /* opt_full: FULL */ #line 87 "third_party/libpg_query/grammar/statements/vacuum.y" { (yyval.boolean) = true; } -#line 24651 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 24771 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1179: + case 1179: /* opt_full: %empty */ #line 88 "third_party/libpg_query/grammar/statements/vacuum.y" { (yyval.boolean) = false; } -#line 24657 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 24777 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1180: + case 1180: /* vacuum_option_list: vacuum_option_elem */ #line 93 "third_party/libpg_query/grammar/statements/vacuum.y" { (yyval.ival) = (yyvsp[0].ival); } -#line 24663 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 24783 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1181: + case 1181: /* vacuum_option_list: vacuum_option_list ',' vacuum_option_elem */ #line 94 "third_party/libpg_query/grammar/statements/vacuum.y" { (yyval.ival) = (yyvsp[-2].ival) | (yyvsp[0].ival); } -#line 24669 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 24789 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1182: + case 1182: /* opt_freeze: FREEZE */ #line 98 "third_party/libpg_query/grammar/statements/vacuum.y" { (yyval.boolean) = true; } -#line 24675 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 24795 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1183: + case 1183: /* opt_freeze: %empty */ #line 99 "third_party/libpg_query/grammar/statements/vacuum.y" { (yyval.boolean) = false; } -#line 24681 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 24801 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1184: + case 1184: /* IndexStmt: CREATE_P opt_unique INDEX opt_concurrently opt_index_name ON qualified_name access_method_clause '(' index_params ')' opt_reloptions where_clause */ #line 11 "third_party/libpg_query/grammar/statements/index.y" { PGIndexStmt *n = makeNode(PGIndexStmt); @@ -24704,10 +24824,10 @@ YYLTYPE yylloc = yyloc_default; n->onconflict = PG_ERROR_ON_CONFLICT; (yyval.node) = (PGNode *)n; } -#line 24708 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 24828 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1185: + case 1185: /* IndexStmt: CREATE_P opt_unique INDEX opt_concurrently IF_P NOT EXISTS index_name ON qualified_name access_method_clause '(' index_params ')' opt_reloptions where_clause */ #line 36 "third_party/libpg_query/grammar/statements/index.y" { PGIndexStmt *n = makeNode(PGIndexStmt); @@ -24731,76 +24851,76 @@ YYLTYPE yylloc = yyloc_default; n->onconflict = PG_IGNORE_ON_CONFLICT; (yyval.node) = (PGNode *)n; } -#line 24735 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 24855 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1186: + case 1186: /* access_method: ColId */ #line 62 "third_party/libpg_query/grammar/statements/index.y" { (yyval.str) = (yyvsp[0].str); } -#line 24741 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 24861 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1187: + case 1187: /* access_method_clause: USING access_method */ #line 66 "third_party/libpg_query/grammar/statements/index.y" { (yyval.str) = (yyvsp[0].str); } -#line 24747 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 24867 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1188: + case 1188: /* access_method_clause: %empty */ #line 67 "third_party/libpg_query/grammar/statements/index.y" { (yyval.str) = (char*) DEFAULT_INDEX_TYPE; } -#line 24753 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 24873 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1189: + case 1189: /* opt_concurrently: CONCURRENTLY */ #line 72 "third_party/libpg_query/grammar/statements/index.y" { (yyval.boolean) = true; } -#line 24759 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 24879 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1190: + case 1190: /* opt_concurrently: %empty */ #line 73 "third_party/libpg_query/grammar/statements/index.y" { (yyval.boolean) = false; } -#line 24765 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 24885 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1191: + case 1191: /* opt_index_name: index_name */ #line 78 "third_party/libpg_query/grammar/statements/index.y" { (yyval.str) = (yyvsp[0].str); } -#line 24771 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 24891 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1192: + case 1192: /* opt_index_name: %empty */ #line 79 "third_party/libpg_query/grammar/statements/index.y" { (yyval.str) = NULL; } -#line 24777 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 24897 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1193: + case 1193: /* opt_reloptions: WITH reloptions */ #line 83 "third_party/libpg_query/grammar/statements/index.y" { (yyval.list) = (yyvsp[0].list); } -#line 24783 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 24903 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1194: + case 1194: /* opt_reloptions: %empty */ #line 84 "third_party/libpg_query/grammar/statements/index.y" { (yyval.list) = NIL; } -#line 24789 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 24909 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1195: + case 1195: /* opt_unique: UNIQUE */ #line 89 "third_party/libpg_query/grammar/statements/index.y" { (yyval.boolean) = true; } -#line 24795 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 24915 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1196: + case 1196: /* opt_unique: %empty */ #line 90 "third_party/libpg_query/grammar/statements/index.y" { (yyval.boolean) = false; } -#line 24801 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 24921 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1197: + case 1197: /* ExportStmt: EXPORT_P DATABASE Sconst copy_options */ #line 8 "third_party/libpg_query/grammar/statements/export.y" { PGExportStmt *n = makeNode(PGExportStmt); @@ -24811,20 +24931,20 @@ YYLTYPE yylloc = yyloc_default; } (yyval.node) = (PGNode *)n; } -#line 24815 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 24935 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1198: + case 1198: /* ImportStmt: IMPORT_P DATABASE Sconst */ #line 21 "third_party/libpg_query/grammar/statements/export.y" { PGImportStmt *n = makeNode(PGImportStmt); n->filename = (yyvsp[0].str); (yyval.node) = (PGNode *)n; } -#line 24825 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 24945 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1199: + case 1199: /* DeleteStmt: opt_with_clause DELETE_P FROM relation_expr_opt_alias using_clause where_or_current_clause returning_clause */ #line 9 "third_party/libpg_query/grammar/statements/delete.y" { PGDeleteStmt *n = makeNode(PGDeleteStmt); @@ -24835,18 +24955,18 @@ YYLTYPE yylloc = yyloc_default; n->withClause = (yyvsp[-6].with); (yyval.node) = (PGNode *)n; } -#line 24839 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 24959 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1200: + case 1200: /* relation_expr_opt_alias: relation_expr */ #line 22 "third_party/libpg_query/grammar/statements/delete.y" { (yyval.range) = (yyvsp[0].range); } -#line 24847 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 24967 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1201: + case 1201: /* relation_expr_opt_alias: relation_expr ColId */ #line 26 "third_party/libpg_query/grammar/statements/delete.y" { PGAlias *alias = makeNode(PGAlias); @@ -24854,10 +24974,10 @@ YYLTYPE yylloc = yyloc_default; (yyvsp[-1].range)->alias = alias; (yyval.range) = (yyvsp[-1].range); } -#line 24858 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 24978 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1202: + case 1202: /* relation_expr_opt_alias: relation_expr AS ColId */ #line 33 "third_party/libpg_query/grammar/statements/delete.y" { PGAlias *alias = makeNode(PGAlias); @@ -24865,34 +24985,34 @@ YYLTYPE yylloc = yyloc_default; (yyvsp[-2].range)->alias = alias; (yyval.range) = (yyvsp[-2].range); } -#line 24869 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 24989 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1203: + case 1203: /* where_or_current_clause: WHERE a_expr */ #line 43 "third_party/libpg_query/grammar/statements/delete.y" { (yyval.node) = (yyvsp[0].node); } -#line 24875 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 24995 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1204: + case 1204: /* where_or_current_clause: %empty */ #line 44 "third_party/libpg_query/grammar/statements/delete.y" { (yyval.node) = NULL; } -#line 24881 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 25001 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1205: + case 1205: /* using_clause: USING from_list_opt_comma */ #line 50 "third_party/libpg_query/grammar/statements/delete.y" { (yyval.list) = (yyvsp[0].list); } -#line 24887 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 25007 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1206: + case 1206: /* using_clause: %empty */ #line 51 "third_party/libpg_query/grammar/statements/delete.y" { (yyval.list) = NIL; } -#line 24893 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 25013 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1207: + case 1207: /* ViewStmt: CREATE_P OptTemp VIEW qualified_name opt_column_list opt_reloptions AS SelectStmt opt_check_option */ #line 10 "third_party/libpg_query/grammar/statements/view.y" { PGViewStmt *n = makeNode(PGViewStmt); @@ -24905,10 +25025,10 @@ YYLTYPE yylloc = yyloc_default; n->withCheckOption = (yyvsp[0].viewcheckoption); (yyval.node) = (PGNode *) n; } -#line 24909 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 25029 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1208: + case 1208: /* ViewStmt: CREATE_P OR REPLACE OptTemp VIEW qualified_name opt_column_list opt_reloptions AS SelectStmt opt_check_option */ #line 23 "third_party/libpg_query/grammar/statements/view.y" { PGViewStmt *n = makeNode(PGViewStmt); @@ -24921,10 +25041,10 @@ YYLTYPE yylloc = yyloc_default; n->withCheckOption = (yyvsp[0].viewcheckoption); (yyval.node) = (PGNode *) n; } -#line 24925 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 25045 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1209: + case 1209: /* ViewStmt: CREATE_P OptTemp RECURSIVE VIEW qualified_name '(' columnList ')' opt_reloptions AS SelectStmt opt_check_option */ #line 36 "third_party/libpg_query/grammar/statements/view.y" { PGViewStmt *n = makeNode(PGViewStmt); @@ -24942,10 +25062,10 @@ YYLTYPE yylloc = yyloc_default; parser_errposition((yylsp[0])))); (yyval.node) = (PGNode *) n; } -#line 24946 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 25066 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1210: + case 1210: /* ViewStmt: CREATE_P OR REPLACE OptTemp RECURSIVE VIEW qualified_name '(' columnList ')' opt_reloptions AS SelectStmt opt_check_option */ #line 54 "third_party/libpg_query/grammar/statements/view.y" { PGViewStmt *n = makeNode(PGViewStmt); @@ -24963,80 +25083,80 @@ YYLTYPE yylloc = yyloc_default; parser_errposition((yylsp[0])))); (yyval.node) = (PGNode *) n; } -#line 24967 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 25087 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1211: + case 1211: /* opt_check_option: WITH CHECK_P OPTION */ #line 74 "third_party/libpg_query/grammar/statements/view.y" { (yyval.viewcheckoption) = CASCADED_CHECK_OPTION; } -#line 24973 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 25093 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1212: + case 1212: /* opt_check_option: WITH CASCADED CHECK_P OPTION */ #line 75 "third_party/libpg_query/grammar/statements/view.y" { (yyval.viewcheckoption) = CASCADED_CHECK_OPTION; } -#line 24979 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 25099 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1213: + case 1213: /* opt_check_option: WITH LOCAL CHECK_P OPTION */ #line 76 "third_party/libpg_query/grammar/statements/view.y" { (yyval.viewcheckoption) = PG_LOCAL_CHECK_OPTION; } -#line 24985 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 25105 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1214: + case 1214: /* opt_check_option: %empty */ #line 77 "third_party/libpg_query/grammar/statements/view.y" { (yyval.viewcheckoption) = PG_NO_CHECK_OPTION; } -#line 24991 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 25111 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1215: + case 1215: /* VariableSetStmt: SET set_rest */ #line 11 "third_party/libpg_query/grammar/statements/variable_set.y" { PGVariableSetStmt *n = (yyvsp[0].vsetstmt); n->scope = VAR_SET_SCOPE_DEFAULT; (yyval.node) = (PGNode *) n; } -#line 25001 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 25121 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1216: + case 1216: /* VariableSetStmt: SET LOCAL set_rest */ #line 17 "third_party/libpg_query/grammar/statements/variable_set.y" { PGVariableSetStmt *n = (yyvsp[0].vsetstmt); n->scope = VAR_SET_SCOPE_LOCAL; (yyval.node) = (PGNode *) n; } -#line 25011 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 25131 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1217: + case 1217: /* VariableSetStmt: SET SESSION set_rest */ #line 23 "third_party/libpg_query/grammar/statements/variable_set.y" { PGVariableSetStmt *n = (yyvsp[0].vsetstmt); n->scope = VAR_SET_SCOPE_SESSION; (yyval.node) = (PGNode *) n; } -#line 25021 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 25141 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1218: + case 1218: /* VariableSetStmt: SET GLOBAL set_rest */ #line 29 "third_party/libpg_query/grammar/statements/variable_set.y" { PGVariableSetStmt *n = (yyvsp[0].vsetstmt); n->scope = VAR_SET_SCOPE_GLOBAL; (yyval.node) = (PGNode *) n; } -#line 25031 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 25151 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1219: + case 1219: /* set_rest: generic_set */ #line 38 "third_party/libpg_query/grammar/statements/variable_set.y" {(yyval.vsetstmt) = (yyvsp[0].vsetstmt);} -#line 25037 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 25157 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1220: + case 1220: /* set_rest: var_name FROM CURRENT_P */ #line 40 "third_party/libpg_query/grammar/statements/variable_set.y" { PGVariableSetStmt *n = makeNode(PGVariableSetStmt); @@ -25044,10 +25164,10 @@ YYLTYPE yylloc = yyloc_default; n->name = (yyvsp[-2].str); (yyval.vsetstmt) = n; } -#line 25048 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 25168 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1221: + case 1221: /* set_rest: TIME ZONE zone_value */ #line 48 "third_party/libpg_query/grammar/statements/variable_set.y" { PGVariableSetStmt *n = makeNode(PGVariableSetStmt); @@ -25059,10 +25179,10 @@ YYLTYPE yylloc = yyloc_default; n->kind = VAR_SET_DEFAULT; (yyval.vsetstmt) = n; } -#line 25063 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 25183 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1222: + case 1222: /* set_rest: SCHEMA Sconst */ #line 59 "third_party/libpg_query/grammar/statements/variable_set.y" { PGVariableSetStmt *n = makeNode(PGVariableSetStmt); @@ -25071,10 +25191,10 @@ YYLTYPE yylloc = yyloc_default; n->args = list_make1(makeStringConst((yyvsp[0].str), (yylsp[0]))); (yyval.vsetstmt) = n; } -#line 25075 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 25195 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1223: + case 1223: /* generic_set: var_name TO var_list */ #line 71 "third_party/libpg_query/grammar/statements/variable_set.y" { PGVariableSetStmt *n = makeNode(PGVariableSetStmt); @@ -25083,10 +25203,10 @@ YYLTYPE yylloc = yyloc_default; n->args = (yyvsp[0].list); (yyval.vsetstmt) = n; } -#line 25087 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 25207 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1224: + case 1224: /* generic_set: var_name '=' var_list */ #line 79 "third_party/libpg_query/grammar/statements/variable_set.y" { PGVariableSetStmt *n = makeNode(PGVariableSetStmt); @@ -25095,10 +25215,10 @@ YYLTYPE yylloc = yyloc_default; n->args = (yyvsp[0].list); (yyval.vsetstmt) = n; } -#line 25099 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 25219 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1225: + case 1225: /* generic_set: var_name TO DEFAULT */ #line 87 "third_party/libpg_query/grammar/statements/variable_set.y" { PGVariableSetStmt *n = makeNode(PGVariableSetStmt); @@ -25106,10 +25226,10 @@ YYLTYPE yylloc = yyloc_default; n->name = (yyvsp[-2].str); (yyval.vsetstmt) = n; } -#line 25110 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 25230 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1226: + case 1226: /* generic_set: var_name '=' DEFAULT */ #line 94 "third_party/libpg_query/grammar/statements/variable_set.y" { PGVariableSetStmt *n = makeNode(PGVariableSetStmt); @@ -25117,38 +25237,38 @@ YYLTYPE yylloc = yyloc_default; n->name = (yyvsp[-2].str); (yyval.vsetstmt) = n; } -#line 25121 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 25241 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1227: + case 1227: /* var_value: opt_boolean_or_string */ #line 104 "third_party/libpg_query/grammar/statements/variable_set.y" { (yyval.node) = makeStringConst((yyvsp[0].str), (yylsp[0])); } -#line 25127 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 25247 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1228: + case 1228: /* var_value: NumericOnly */ #line 106 "third_party/libpg_query/grammar/statements/variable_set.y" { (yyval.node) = makeAConst((yyvsp[0].value), (yylsp[0])); } -#line 25133 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 25253 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1229: + case 1229: /* zone_value: Sconst */ #line 112 "third_party/libpg_query/grammar/statements/variable_set.y" { (yyval.node) = makeStringConst((yyvsp[0].str), (yylsp[0])); } -#line 25141 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 25261 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1230: + case 1230: /* zone_value: IDENT */ #line 116 "third_party/libpg_query/grammar/statements/variable_set.y" { (yyval.node) = makeStringConst((yyvsp[0].str), (yylsp[0])); } -#line 25149 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 25269 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1231: + case 1231: /* zone_value: ConstInterval Sconst opt_interval */ #line 120 "third_party/libpg_query/grammar/statements/variable_set.y" { PGTypeName *t = (yyvsp[-2].typnam); @@ -25164,10 +25284,10 @@ YYLTYPE yylloc = yyloc_default; t->typmods = (yyvsp[0].list); (yyval.node) = makeStringConstCast((yyvsp[-1].str), (yylsp[-1]), t); } -#line 25168 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 25288 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1232: + case 1232: /* zone_value: ConstInterval '(' Iconst ')' Sconst */ #line 135 "third_party/libpg_query/grammar/statements/variable_set.y" { PGTypeName *t = (yyvsp[-4].typnam); @@ -25175,60 +25295,60 @@ YYLTYPE yylloc = yyloc_default; makeIntConst((yyvsp[-2].ival), (yylsp[-2]))); (yyval.node) = makeStringConstCast((yyvsp[0].str), (yylsp[0]), t); } -#line 25179 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 25299 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1233: + case 1233: /* zone_value: NumericOnly */ #line 141 "third_party/libpg_query/grammar/statements/variable_set.y" { (yyval.node) = makeAConst((yyvsp[0].value), (yylsp[0])); } -#line 25185 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 25305 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1234: + case 1234: /* zone_value: DEFAULT */ #line 142 "third_party/libpg_query/grammar/statements/variable_set.y" { (yyval.node) = NULL; } -#line 25191 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 25311 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1235: + case 1235: /* zone_value: LOCAL */ #line 143 "third_party/libpg_query/grammar/statements/variable_set.y" { (yyval.node) = NULL; } -#line 25197 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 25317 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1236: + case 1236: /* var_list: var_value */ #line 147 "third_party/libpg_query/grammar/statements/variable_set.y" { (yyval.list) = list_make1((yyvsp[0].node)); } -#line 25203 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 25323 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1237: + case 1237: /* var_list: var_list ',' var_value */ #line 148 "third_party/libpg_query/grammar/statements/variable_set.y" { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].node)); } -#line 25209 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 25329 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1238: + case 1238: /* CheckPointStmt: FORCE CHECKPOINT */ #line 6 "third_party/libpg_query/grammar/statements/checkpoint.y" { PGCheckPointStmt *n = makeNode(PGCheckPointStmt); n->force = true; (yyval.node) = (PGNode *)n; } -#line 25219 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 25339 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1239: + case 1239: /* CheckPointStmt: CHECKPOINT */ #line 12 "third_party/libpg_query/grammar/statements/checkpoint.y" { PGCheckPointStmt *n = makeNode(PGCheckPointStmt); n->force = false; (yyval.node) = (PGNode *)n; } -#line 25229 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 25349 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1240: + case 1240: /* LoadStmt: LOAD file_name */ #line 8 "third_party/libpg_query/grammar/statements/load.y" { PGLoadStmt *n = makeNode(PGLoadStmt); @@ -25236,10 +25356,10 @@ YYLTYPE yylloc = yyloc_default; n->load_type = PG_LOAD_TYPE_LOAD; (yyval.node) = (PGNode *)n; } -#line 25240 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 25360 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1241: + case 1241: /* LoadStmt: INSTALL file_name */ #line 14 "third_party/libpg_query/grammar/statements/load.y" { PGLoadStmt *n = makeNode(PGLoadStmt); @@ -25247,10 +25367,10 @@ YYLTYPE yylloc = yyloc_default; n->load_type = PG_LOAD_TYPE_INSTALL; (yyval.node) = (PGNode *)n; } -#line 25251 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 25371 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1242: + case 1242: /* LoadStmt: FORCE INSTALL file_name */ #line 20 "third_party/libpg_query/grammar/statements/load.y" { PGLoadStmt *n = makeNode(PGLoadStmt); @@ -25258,22 +25378,22 @@ YYLTYPE yylloc = yyloc_default; n->load_type = PG_LOAD_TYPE_FORCE_INSTALL; (yyval.node) = (PGNode *)n; } -#line 25262 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 25382 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1243: + case 1243: /* file_name: Sconst */ #line 28 "third_party/libpg_query/grammar/statements/load.y" { (yyval.str) = (yyvsp[0].str); } -#line 25268 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 25388 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1244: + case 1244: /* file_name: ColId */ #line 29 "third_party/libpg_query/grammar/statements/load.y" { (yyval.str) = (yyvsp[0].str); } -#line 25274 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 25394 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1245: + case 1245: /* CreateSeqStmt: CREATE_P OptTemp SEQUENCE qualified_name OptSeqOptList */ #line 10 "third_party/libpg_query/grammar/statements/create_sequence.y" { PGCreateSeqStmt *n = makeNode(PGCreateSeqStmt); @@ -25284,10 +25404,10 @@ YYLTYPE yylloc = yyloc_default; n->onconflict = PG_ERROR_ON_CONFLICT; (yyval.node) = (PGNode *)n; } -#line 25288 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 25408 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1246: + case 1246: /* CreateSeqStmt: CREATE_P OptTemp SEQUENCE IF_P NOT EXISTS qualified_name OptSeqOptList */ #line 20 "third_party/libpg_query/grammar/statements/create_sequence.y" { PGCreateSeqStmt *n = makeNode(PGCreateSeqStmt); @@ -25298,22 +25418,22 @@ YYLTYPE yylloc = yyloc_default; n->onconflict = PG_IGNORE_ON_CONFLICT; (yyval.node) = (PGNode *)n; } -#line 25302 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 25422 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1247: + case 1247: /* OptSeqOptList: SeqOptList */ #line 32 "third_party/libpg_query/grammar/statements/create_sequence.y" { (yyval.list) = (yyvsp[0].list); } -#line 25308 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 25428 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1248: + case 1248: /* OptSeqOptList: %empty */ #line 33 "third_party/libpg_query/grammar/statements/create_sequence.y" { (yyval.list) = NIL; } -#line 25314 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 25434 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1249: + case 1249: /* CreateFunctionStmt: CREATE_P OptTemp macro_alias qualified_name param_list AS TABLE SelectStmt */ #line 9 "third_party/libpg_query/grammar/statements/create_function.y" { PGCreateFunctionStmt *n = makeNode(PGCreateFunctionStmt); @@ -25325,10 +25445,10 @@ YYLTYPE yylloc = yyloc_default; (yyval.node) = (PGNode *)n; } -#line 25329 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 25449 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1250: + case 1250: /* CreateFunctionStmt: CREATE_P OptTemp macro_alias qualified_name param_list AS a_expr */ #line 21 "third_party/libpg_query/grammar/statements/create_function.y" { PGCreateFunctionStmt *n = makeNode(PGCreateFunctionStmt); @@ -25339,26 +25459,26 @@ YYLTYPE yylloc = yyloc_default; n->query = NULL; (yyval.node) = (PGNode *)n; } -#line 25343 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 25463 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1253: + case 1253: /* param_list: '(' ')' */ #line 42 "third_party/libpg_query/grammar/statements/create_function.y" { (yyval.list) = NIL; } -#line 25351 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 25471 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1254: + case 1254: /* param_list: '(' func_arg_list ')' */ #line 46 "third_party/libpg_query/grammar/statements/create_function.y" { (yyval.list) = (yyvsp[-1].list); } -#line 25359 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 25479 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1255: + case 1255: /* AlterObjectSchemaStmt: ALTER TABLE relation_expr SET SCHEMA name */ #line 8 "third_party/libpg_query/grammar/statements/alter_schema.y" { PGAlterObjectSchemaStmt *n = makeNode(PGAlterObjectSchemaStmt); @@ -25368,10 +25488,10 @@ YYLTYPE yylloc = yyloc_default; n->missing_ok = false; (yyval.node) = (PGNode *)n; } -#line 25372 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 25492 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1256: + case 1256: /* AlterObjectSchemaStmt: ALTER TABLE IF_P EXISTS relation_expr SET SCHEMA name */ #line 17 "third_party/libpg_query/grammar/statements/alter_schema.y" { PGAlterObjectSchemaStmt *n = makeNode(PGAlterObjectSchemaStmt); @@ -25381,10 +25501,10 @@ YYLTYPE yylloc = yyloc_default; n->missing_ok = true; (yyval.node) = (PGNode *)n; } -#line 25385 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 25505 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1257: + case 1257: /* AlterObjectSchemaStmt: ALTER SEQUENCE qualified_name SET SCHEMA name */ #line 26 "third_party/libpg_query/grammar/statements/alter_schema.y" { PGAlterObjectSchemaStmt *n = makeNode(PGAlterObjectSchemaStmt); @@ -25394,10 +25514,10 @@ YYLTYPE yylloc = yyloc_default; n->missing_ok = false; (yyval.node) = (PGNode *)n; } -#line 25398 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 25518 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1258: + case 1258: /* AlterObjectSchemaStmt: ALTER SEQUENCE IF_P EXISTS qualified_name SET SCHEMA name */ #line 35 "third_party/libpg_query/grammar/statements/alter_schema.y" { PGAlterObjectSchemaStmt *n = makeNode(PGAlterObjectSchemaStmt); @@ -25407,10 +25527,10 @@ YYLTYPE yylloc = yyloc_default; n->missing_ok = true; (yyval.node) = (PGNode *)n; } -#line 25411 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 25531 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1259: + case 1259: /* AlterObjectSchemaStmt: ALTER VIEW qualified_name SET SCHEMA name */ #line 44 "third_party/libpg_query/grammar/statements/alter_schema.y" { PGAlterObjectSchemaStmt *n = makeNode(PGAlterObjectSchemaStmt); @@ -25420,10 +25540,10 @@ YYLTYPE yylloc = yyloc_default; n->missing_ok = false; (yyval.node) = (PGNode *)n; } -#line 25424 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 25544 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1260: + case 1260: /* AlterObjectSchemaStmt: ALTER VIEW IF_P EXISTS qualified_name SET SCHEMA name */ #line 53 "third_party/libpg_query/grammar/statements/alter_schema.y" { PGAlterObjectSchemaStmt *n = makeNode(PGAlterObjectSchemaStmt); @@ -25433,10 +25553,10 @@ YYLTYPE yylloc = yyloc_default; n->missing_ok = true; (yyval.node) = (PGNode *)n; } -#line 25437 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 25557 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1261: + case 1261: /* UpdateStmt: opt_with_clause UPDATE relation_expr_opt_alias SET set_clause_list_opt_comma from_clause where_or_current_clause returning_clause */ #line 12 "third_party/libpg_query/grammar/statements/update.y" { PGUpdateStmt *n = makeNode(PGUpdateStmt); @@ -25448,10 +25568,10 @@ YYLTYPE yylloc = yyloc_default; n->withClause = (yyvsp[-7].with); (yyval.node) = (PGNode *)n; } -#line 25452 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 25572 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1262: + case 1262: /* InsertStmt: opt_with_clause INSERT INTO insert_target insert_rest opt_on_conflict returning_clause */ #line 10 "third_party/libpg_query/grammar/statements/insert.y" { (yyvsp[-2].istmt)->relation = (yyvsp[-3].range); @@ -25460,20 +25580,20 @@ YYLTYPE yylloc = yyloc_default; (yyvsp[-2].istmt)->withClause = (yyvsp[-6].with); (yyval.node) = (PGNode *) (yyvsp[-2].istmt); } -#line 25464 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 25584 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1263: + case 1263: /* insert_rest: SelectStmt */ #line 22 "third_party/libpg_query/grammar/statements/insert.y" { (yyval.istmt) = makeNode(PGInsertStmt); (yyval.istmt)->cols = NIL; (yyval.istmt)->selectStmt = (yyvsp[0].node); } -#line 25474 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 25594 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1264: + case 1264: /* insert_rest: OVERRIDING override_kind VALUE_P SelectStmt */ #line 28 "third_party/libpg_query/grammar/statements/insert.y" { (yyval.istmt) = makeNode(PGInsertStmt); @@ -25481,20 +25601,20 @@ YYLTYPE yylloc = yyloc_default; (yyval.istmt)->override = (yyvsp[-2].override); (yyval.istmt)->selectStmt = (yyvsp[0].node); } -#line 25485 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 25605 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1265: + case 1265: /* insert_rest: '(' insert_column_list ')' SelectStmt */ #line 35 "third_party/libpg_query/grammar/statements/insert.y" { (yyval.istmt) = makeNode(PGInsertStmt); (yyval.istmt)->cols = (yyvsp[-2].list); (yyval.istmt)->selectStmt = (yyvsp[0].node); } -#line 25495 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 25615 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1266: + case 1266: /* insert_rest: '(' insert_column_list ')' OVERRIDING override_kind VALUE_P SelectStmt */ #line 41 "third_party/libpg_query/grammar/statements/insert.y" { (yyval.istmt) = makeNode(PGInsertStmt); @@ -25502,37 +25622,37 @@ YYLTYPE yylloc = yyloc_default; (yyval.istmt)->override = (yyvsp[-2].override); (yyval.istmt)->selectStmt = (yyvsp[0].node); } -#line 25506 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 25626 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1267: + case 1267: /* insert_rest: DEFAULT VALUES */ #line 48 "third_party/libpg_query/grammar/statements/insert.y" { (yyval.istmt) = makeNode(PGInsertStmt); (yyval.istmt)->cols = NIL; (yyval.istmt)->selectStmt = NULL; } -#line 25516 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 25636 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1268: + case 1268: /* insert_target: qualified_name */ #line 58 "third_party/libpg_query/grammar/statements/insert.y" { (yyval.range) = (yyvsp[0].range); } -#line 25524 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 25644 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1269: + case 1269: /* insert_target: qualified_name AS ColId */ #line 62 "third_party/libpg_query/grammar/statements/insert.y" { (yyvsp[-2].range)->alias = makeAlias((yyvsp[0].str), NIL); (yyval.range) = (yyvsp[-2].range); } -#line 25533 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 25653 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1270: + case 1270: /* opt_conf_expr: '(' index_params ')' where_clause */ #line 71 "third_party/libpg_query/grammar/statements/insert.y" { (yyval.infer) = makeNode(PGInferClause); @@ -25541,10 +25661,10 @@ YYLTYPE yylloc = yyloc_default; (yyval.infer)->conname = NULL; (yyval.infer)->location = (yylsp[-3]); } -#line 25545 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 25665 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1271: + case 1271: /* opt_conf_expr: ON CONSTRAINT name */ #line 80 "third_party/libpg_query/grammar/statements/insert.y" { (yyval.infer) = makeNode(PGInferClause); @@ -25553,30 +25673,30 @@ YYLTYPE yylloc = yyloc_default; (yyval.infer)->conname = (yyvsp[0].str); (yyval.infer)->location = (yylsp[-2]); } -#line 25557 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 25677 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1272: + case 1272: /* opt_conf_expr: %empty */ #line 88 "third_party/libpg_query/grammar/statements/insert.y" { (yyval.infer) = NULL; } -#line 25565 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 25685 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1273: + case 1273: /* opt_with_clause: with_clause */ #line 95 "third_party/libpg_query/grammar/statements/insert.y" { (yyval.with) = (yyvsp[0].with); } -#line 25571 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 25691 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1274: + case 1274: /* opt_with_clause: %empty */ #line 96 "third_party/libpg_query/grammar/statements/insert.y" { (yyval.with) = NULL; } -#line 25577 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 25697 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1275: + case 1275: /* insert_column_item: ColId opt_indirection */ #line 102 "third_party/libpg_query/grammar/statements/insert.y" { (yyval.target) = makeNode(PGResTarget); @@ -25585,19 +25705,19 @@ YYLTYPE yylloc = yyloc_default; (yyval.target)->val = NULL; (yyval.target)->location = (yylsp[-1]); } -#line 25589 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 25709 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1276: + case 1276: /* set_clause: set_target '=' a_expr */ #line 114 "third_party/libpg_query/grammar/statements/insert.y" { (yyvsp[-2].target)->val = (PGNode *) (yyvsp[0].node); (yyval.list) = list_make1((yyvsp[-2].target)); } -#line 25598 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 25718 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1277: + case 1277: /* set_clause: '(' set_target_list ')' '=' a_expr */ #line 119 "third_party/libpg_query/grammar/statements/insert.y" { int ncolumns = list_length((yyvsp[-3].list)); @@ -25619,10 +25739,10 @@ YYLTYPE yylloc = yyloc_default; (yyval.list) = (yyvsp[-3].list); } -#line 25623 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 25743 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1278: + case 1278: /* opt_on_conflict: ON CONFLICT opt_conf_expr DO UPDATE SET set_clause_list_opt_comma where_clause */ #line 144 "third_party/libpg_query/grammar/statements/insert.y" { (yyval.onconflict) = makeNode(PGOnConflictClause); @@ -25632,10 +25752,10 @@ YYLTYPE yylloc = yyloc_default; (yyval.onconflict)->whereClause = (yyvsp[0].node); (yyval.onconflict)->location = (yylsp[-7]); } -#line 25636 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 25756 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1279: + case 1279: /* opt_on_conflict: ON CONFLICT opt_conf_expr DO NOTHING */ #line 154 "third_party/libpg_query/grammar/statements/insert.y" { (yyval.onconflict) = makeNode(PGOnConflictClause); @@ -25645,18 +25765,18 @@ YYLTYPE yylloc = yyloc_default; (yyval.onconflict)->whereClause = NULL; (yyval.onconflict)->location = (yylsp[-4]); } -#line 25649 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 25769 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1280: + case 1280: /* opt_on_conflict: %empty */ #line 163 "third_party/libpg_query/grammar/statements/insert.y" { (yyval.onconflict) = NULL; } -#line 25657 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 25777 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1281: + case 1281: /* index_elem: ColId opt_collate opt_class opt_asc_desc opt_nulls_order */ #line 170 "third_party/libpg_query/grammar/statements/insert.y" { (yyval.ielem) = makeNode(PGIndexElem); @@ -25668,10 +25788,10 @@ YYLTYPE yylloc = yyloc_default; (yyval.ielem)->ordering = (yyvsp[-1].sortorder); (yyval.ielem)->nulls_ordering = (yyvsp[0].nullorder); } -#line 25672 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 25792 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1282: + case 1282: /* index_elem: func_expr_windowless opt_collate opt_class opt_asc_desc opt_nulls_order */ #line 181 "third_party/libpg_query/grammar/statements/insert.y" { (yyval.ielem) = makeNode(PGIndexElem); @@ -25683,10 +25803,10 @@ YYLTYPE yylloc = yyloc_default; (yyval.ielem)->ordering = (yyvsp[-1].sortorder); (yyval.ielem)->nulls_ordering = (yyvsp[0].nullorder); } -#line 25687 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 25807 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1283: + case 1283: /* index_elem: '(' a_expr ')' opt_collate opt_class opt_asc_desc opt_nulls_order */ #line 192 "third_party/libpg_query/grammar/statements/insert.y" { (yyval.ielem) = makeNode(PGIndexElem); @@ -25698,118 +25818,118 @@ YYLTYPE yylloc = yyloc_default; (yyval.ielem)->ordering = (yyvsp[-1].sortorder); (yyval.ielem)->nulls_ordering = (yyvsp[0].nullorder); } -#line 25702 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 25822 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1284: + case 1284: /* returning_clause: RETURNING target_list */ #line 206 "third_party/libpg_query/grammar/statements/insert.y" { (yyval.list) = (yyvsp[0].list); } -#line 25708 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 25828 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1285: + case 1285: /* returning_clause: %empty */ #line 207 "third_party/libpg_query/grammar/statements/insert.y" { (yyval.list) = NIL; } -#line 25714 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 25834 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1286: + case 1286: /* override_kind: USER */ #line 213 "third_party/libpg_query/grammar/statements/insert.y" { (yyval.override) = PG_OVERRIDING_USER_VALUE; } -#line 25720 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 25840 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1287: + case 1287: /* override_kind: SYSTEM_P */ #line 214 "third_party/libpg_query/grammar/statements/insert.y" { (yyval.override) = OVERRIDING_SYSTEM_VALUE; } -#line 25726 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 25846 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1288: + case 1288: /* set_target_list: set_target */ #line 219 "third_party/libpg_query/grammar/statements/insert.y" { (yyval.list) = list_make1((yyvsp[0].target)); } -#line 25732 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 25852 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1289: + case 1289: /* set_target_list: set_target_list ',' set_target */ #line 220 "third_party/libpg_query/grammar/statements/insert.y" { (yyval.list) = lappend((yyvsp[-2].list),(yyvsp[0].target)); } -#line 25738 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 25858 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1290: + case 1290: /* opt_collate: COLLATE any_name */ #line 226 "third_party/libpg_query/grammar/statements/insert.y" { (yyval.list) = (yyvsp[0].list); } -#line 25744 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 25864 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1291: + case 1291: /* opt_collate: %empty */ #line 227 "third_party/libpg_query/grammar/statements/insert.y" { (yyval.list) = NIL; } -#line 25750 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 25870 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1292: + case 1292: /* opt_class: any_name */ #line 231 "third_party/libpg_query/grammar/statements/insert.y" { (yyval.list) = (yyvsp[0].list); } -#line 25756 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 25876 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1293: + case 1293: /* opt_class: %empty */ #line 232 "third_party/libpg_query/grammar/statements/insert.y" { (yyval.list) = NIL; } -#line 25762 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 25882 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1294: + case 1294: /* insert_column_list: insert_column_item */ #line 238 "third_party/libpg_query/grammar/statements/insert.y" { (yyval.list) = list_make1((yyvsp[0].target)); } -#line 25768 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 25888 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1295: + case 1295: /* insert_column_list: insert_column_list ',' insert_column_item */ #line 240 "third_party/libpg_query/grammar/statements/insert.y" { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].target)); } -#line 25774 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 25894 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1296: + case 1296: /* set_clause_list: set_clause */ #line 245 "third_party/libpg_query/grammar/statements/insert.y" { (yyval.list) = (yyvsp[0].list); } -#line 25780 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 25900 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1297: + case 1297: /* set_clause_list: set_clause_list ',' set_clause */ #line 246 "third_party/libpg_query/grammar/statements/insert.y" { (yyval.list) = list_concat((yyvsp[-2].list),(yyvsp[0].list)); } -#line 25786 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 25906 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1298: + case 1298: /* set_clause_list_opt_comma: set_clause_list */ #line 250 "third_party/libpg_query/grammar/statements/insert.y" { (yyval.list) = (yyvsp[0].list); } -#line 25792 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 25912 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1299: + case 1299: /* set_clause_list_opt_comma: set_clause_list ',' */ #line 251 "third_party/libpg_query/grammar/statements/insert.y" { (yyval.list) = (yyvsp[-1].list); } -#line 25798 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 25918 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1300: + case 1300: /* index_params: index_elem */ #line 254 "third_party/libpg_query/grammar/statements/insert.y" { (yyval.list) = list_make1((yyvsp[0].ielem)); } -#line 25804 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 25924 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1301: + case 1301: /* index_params: index_params ',' index_elem */ #line 255 "third_party/libpg_query/grammar/statements/insert.y" { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].ielem)); } -#line 25810 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 25930 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1302: + case 1302: /* set_target: ColId opt_indirection */ #line 261 "third_party/libpg_query/grammar/statements/insert.y" { (yyval.target) = makeNode(PGResTarget); @@ -25818,10 +25938,10 @@ YYLTYPE yylloc = yyloc_default; (yyval.target)->val = NULL; /* upper production sets this */ (yyval.target)->location = (yylsp[-1]); } -#line 25822 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 25942 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1303: + case 1303: /* AnalyzeStmt: analyze_keyword opt_verbose */ #line 10 "third_party/libpg_query/grammar/statements/analyze.y" { PGVacuumStmt *n = makeNode(PGVacuumStmt); @@ -25832,10 +25952,10 @@ YYLTYPE yylloc = yyloc_default; n->va_cols = NIL; (yyval.node) = (PGNode *)n; } -#line 25836 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 25956 "third_party/libpg_query/grammar/grammar_out.cpp" break; - case 1304: + case 1304: /* AnalyzeStmt: analyze_keyword opt_verbose qualified_name opt_name_list */ #line 20 "third_party/libpg_query/grammar/statements/analyze.y" { PGVacuumStmt *n = makeNode(PGVacuumStmt); @@ -25846,11 +25966,11 @@ YYLTYPE yylloc = yyloc_default; n->va_cols = (yyvsp[0].list); (yyval.node) = (PGNode *)n; } -#line 25850 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 25970 "third_party/libpg_query/grammar/grammar_out.cpp" break; -#line 25854 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 25974 "third_party/libpg_query/grammar/grammar_out.cpp" default: break; } @@ -25865,11 +25985,10 @@ YYLTYPE yylloc = yyloc_default; case of YYERROR or YYBACKUP, subsequent parser actions might lead to an incorrect destructor call or verbose syntax error message before the lookahead is translated. */ - YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc); + YY_SYMBOL_PRINT ("-> $$ =", YY_CAST (yysymbol_kind_t, yyr1[yyn]), &yyval, &yyloc); YYPOPSTACK (yylen); yylen = 0; - YY_STACK_PRINT (yyss, yyssp); *++yyvsp = yyval; *++yylsp = yyloc; @@ -25894,50 +26013,15 @@ YYLTYPE yylloc = yyloc_default; yyerrlab: /* Make sure we have latest lookahead translation. See comments at user semantic actions for why this is necessary. */ - yytoken = yychar == YYEMPTY ? YYEMPTY : YYTRANSLATE (yychar); - + yytoken = yychar == YYEMPTY ? YYSYMBOL_YYEMPTY : YYTRANSLATE (yychar); /* If not already recovering from an error, report this error. */ if (!yyerrstatus) { ++yynerrs; -#if ! YYERROR_VERBOSE yyerror (&yylloc, yyscanner, YY_("syntax error")); -#else -# define YYSYNTAX_ERROR yysyntax_error (&yymsg_alloc, &yymsg, \ - yyssp, yytoken) - { - char const *yymsgp = YY_("syntax error"); - int yysyntax_error_status; - yysyntax_error_status = YYSYNTAX_ERROR; - if (yysyntax_error_status == 0) - yymsgp = yymsg; - else if (yysyntax_error_status == 1) - { - if (yymsg != yymsgbuf) - YYSTACK_FREE (yymsg); - yymsg = YY_CAST (char *, YYSTACK_ALLOC (YY_CAST (YYSIZE_T, yymsg_alloc))); - if (!yymsg) - { - yymsg = yymsgbuf; - yymsg_alloc = sizeof yymsgbuf; - yysyntax_error_status = 2; - } - else - { - yysyntax_error_status = YYSYNTAX_ERROR; - yymsgp = yymsg; - } - } - yyerror (&yylloc, yyscanner, yymsgp); - if (yysyntax_error_status == 2) - goto yyexhaustedlab; - } -# undef YYSYNTAX_ERROR -#endif } yyerror_range[1] = yylloc; - if (yyerrstatus == 3) { /* If just tried and failed to reuse lookahead token after an @@ -25970,6 +26054,7 @@ YYLTYPE yylloc = yyloc_default; label yyerrorlab therefore never appears in user code. */ if (0) YYERROR; + ++yynerrs; /* Do not reclaim the symbols of the rule whose action triggered this YYERROR. */ @@ -25986,13 +26071,14 @@ YYLTYPE yylloc = yyloc_default; yyerrlab1: yyerrstatus = 3; /* Each real token shifted decrements this. */ + /* Pop stack until we find a state that shifts the error token. */ for (;;) { yyn = yypact[yystate]; if (!yypact_value_is_default (yyn)) { - yyn += YYTERROR; - if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR) + yyn += YYSYMBOL_YYerror; + if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) { yyn = yytable[yyn]; if (0 < yyn) @@ -26006,7 +26092,7 @@ YYLTYPE yylloc = yyloc_default; yyerror_range[1] = *yylsp; yydestruct ("Error: popping", - yystos[yystate], yyvsp, yylsp, yyscanner); + YY_ACCESSING_SYMBOL (yystate), yyvsp, yylsp, yyscanner); YYPOPSTACK (1); yystate = *yyssp; YY_STACK_PRINT (yyss, yyssp); @@ -26017,13 +26103,11 @@ YYLTYPE yylloc = yyloc_default; YY_IGNORE_MAYBE_UNINITIALIZED_END yyerror_range[2] = yylloc; - /* Using YYLLOC is tempting, but would change the location of - the lookahead. YYLOC is available though. */ - YYLLOC_DEFAULT (yyloc, yyerror_range, 2); - *++yylsp = yyloc; + ++yylsp; + YYLLOC_DEFAULT (*yylsp, yyerror_range, 2); /* Shift the error token. */ - YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp); + YY_SYMBOL_PRINT ("Shifting", YY_ACCESSING_SYMBOL (yyn), yyvsp, yylsp); yystate = yyn; goto yynewstate; @@ -26034,7 +26118,7 @@ YYLTYPE yylloc = yyloc_default; `-------------------------------------*/ yyacceptlab: yyresult = 0; - goto yyreturn; + goto yyreturnlab; /*-----------------------------------. @@ -26042,24 +26126,22 @@ YYLTYPE yylloc = yyloc_default; `-----------------------------------*/ yyabortlab: yyresult = 1; - goto yyreturn; + goto yyreturnlab; -#if !defined yyoverflow || YYERROR_VERBOSE -/*-------------------------------------------------. -| yyexhaustedlab -- memory exhaustion comes here. | -`-------------------------------------------------*/ +/*-----------------------------------------------------------. +| yyexhaustedlab -- YYNOMEM (memory exhaustion) comes here. | +`-----------------------------------------------------------*/ yyexhaustedlab: yyerror (&yylloc, yyscanner, YY_("memory exhausted")); yyresult = 2; - /* Fall through. */ -#endif + goto yyreturnlab; -/*-----------------------------------------------------. -| yyreturn -- parsing is finished, return the result. | -`-----------------------------------------------------*/ -yyreturn: +/*----------------------------------------------------------. +| yyreturnlab -- parsing is finished, clean up and return. | +`----------------------------------------------------------*/ +yyreturnlab: if (yychar != YYEMPTY) { /* Make sure we have latest lookahead translation. See comments at @@ -26075,19 +26157,17 @@ YYLTYPE yylloc = yyloc_default; while (yyssp != yyss) { yydestruct ("Cleanup: popping", - yystos[+*yyssp], yyvsp, yylsp, yyscanner); + YY_ACCESSING_SYMBOL (+*yyssp), yyvsp, yylsp, yyscanner); YYPOPSTACK (1); } #ifndef yyoverflow if (yyss != yyssa) YYSTACK_FREE (yyss); #endif -#if YYERROR_VERBOSE - if (yymsg != yymsgbuf) - YYSTACK_FREE (yymsg); -#endif + return yyresult; } + #line 41 "third_party/libpg_query/grammar/statements/analyze.y"