dt-sql-parser
Version:
SQL Parsers for BigData, built with antlr4
789 lines • 116 kB
JavaScript
// Generated from dt-sql-parser/src/grammar/impala/ImpalaSqlLexer.g4 by ANTLR 4.13.1
// @ts-nocheck
import * as antlr from "antlr4ng";
export class ImpalaSqlLexer extends antlr.Lexer {
constructor(input) {
super(input);
this.interpreter = new antlr.LexerATNSimulator(this, ImpalaSqlLexer._ATN, ImpalaSqlLexer.decisionsToDFA, new antlr.PredictionContextCache());
}
get grammarFileName() { return "ImpalaSqlLexer.g4"; }
get literalNames() { return ImpalaSqlLexer.literalNames; }
get symbolicNames() { return ImpalaSqlLexer.symbolicNames; }
get ruleNames() { return ImpalaSqlLexer.ruleNames; }
get serializedATN() { return ImpalaSqlLexer._serializedATN; }
get channelNames() { return ImpalaSqlLexer.channelNames; }
get modeNames() { return ImpalaSqlLexer.modeNames; }
static get _ATN() {
if (!ImpalaSqlLexer.__ATN) {
ImpalaSqlLexer.__ATN = new antlr.ATNDeserializer().deserialize(ImpalaSqlLexer._serializedATN);
}
return ImpalaSqlLexer.__ATN;
}
get vocabulary() {
return ImpalaSqlLexer.vocabulary;
}
}
ImpalaSqlLexer.KW_ADD = 1;
ImpalaSqlLexer.KW_ALL = 2;
ImpalaSqlLexer.KW_ANALYTIC = 3;
ImpalaSqlLexer.KW_ALTER = 4;
ImpalaSqlLexer.KW_AND = 5;
ImpalaSqlLexer.KW_ANY = 6;
ImpalaSqlLexer.KW_ANTI = 7;
ImpalaSqlLexer.KW_ARRAY = 8;
ImpalaSqlLexer.KW_AS = 9;
ImpalaSqlLexer.KW_ASC = 10;
ImpalaSqlLexer.KW_AT = 11;
ImpalaSqlLexer.KW_AGGREGATE = 12;
ImpalaSqlLexer.KW_AUTHORIZATION = 13;
ImpalaSqlLexer.KW_BERNOULLI = 14;
ImpalaSqlLexer.KW_BETWEEN = 15;
ImpalaSqlLexer.KW_BLOCK_SIZE = 16;
ImpalaSqlLexer.KW_PARTITIONED = 17;
ImpalaSqlLexer.KW_PREPARE_FN = 18;
ImpalaSqlLexer.KW_EXTERNAL = 19;
ImpalaSqlLexer.KW_CLOSEFN = 20;
ImpalaSqlLexer.KW_SORT = 21;
ImpalaSqlLexer.KW_PURGE = 22;
ImpalaSqlLexer.KW_STORED = 23;
ImpalaSqlLexer.KW_LOCATION = 24;
ImpalaSqlLexer.KW_TBLPROPERTIES = 25;
ImpalaSqlLexer.KW_BY = 26;
ImpalaSqlLexer.KW_CASCADE = 27;
ImpalaSqlLexer.KW_CASE = 28;
ImpalaSqlLexer.KW_CAST = 29;
ImpalaSqlLexer.KW_CACHED = 30;
ImpalaSqlLexer.KW_CHANGE = 31;
ImpalaSqlLexer.KW_COLUMN = 32;
ImpalaSqlLexer.KW_COLUMNS = 33;
ImpalaSqlLexer.KW_COMMENT = 34;
ImpalaSqlLexer.KW_COMPRESSION = 35;
ImpalaSqlLexer.KW_COMPUTE = 36;
ImpalaSqlLexer.KW_CREATE = 37;
ImpalaSqlLexer.KW_CROSS = 38;
ImpalaSqlLexer.KW_CURRENT = 39;
ImpalaSqlLexer.KW_CURRENT_DATE = 40;
ImpalaSqlLexer.KW_CURRENT_PATH = 41;
ImpalaSqlLexer.KW_CURRENT_TIME = 42;
ImpalaSqlLexer.KW_CURRENT_TIMESTAMP = 43;
ImpalaSqlLexer.KW_CURRENT_USER = 44;
ImpalaSqlLexer.KW_DATA = 45;
ImpalaSqlLexer.KW_DATABASE = 46;
ImpalaSqlLexer.KW_DATABASES = 47;
ImpalaSqlLexer.KW_DAY = 48;
ImpalaSqlLexer.KW_DAYS = 49;
ImpalaSqlLexer.KW_DELETE = 50;
ImpalaSqlLexer.KW_DEFAULT = 51;
ImpalaSqlLexer.KW_DELIMITED = 52;
ImpalaSqlLexer.KW_DISABLE = 53;
ImpalaSqlLexer.KW_UPDATE = 54;
ImpalaSqlLexer.KW_DESC = 55;
ImpalaSqlLexer.KW_DESCRIBE = 56;
ImpalaSqlLexer.KW_DISTINCT = 57;
ImpalaSqlLexer.KW_DROP = 58;
ImpalaSqlLexer.KW_ELSE = 59;
ImpalaSqlLexer.KW_ENCODING = 60;
ImpalaSqlLexer.KW_END = 61;
ImpalaSqlLexer.KW_ESCAPE = 62;
ImpalaSqlLexer.KW_ESCAPED = 63;
ImpalaSqlLexer.KW_EXCEPT = 64;
ImpalaSqlLexer.KW_EXCLUDING = 65;
ImpalaSqlLexer.KW_EXISTS = 66;
ImpalaSqlLexer.KW_EXPLAIN = 67;
ImpalaSqlLexer.KW_EXTRACT = 68;
ImpalaSqlLexer.KW_EXTENDED = 69;
ImpalaSqlLexer.KW_FALSE = 70;
ImpalaSqlLexer.KW_FIELDS = 71;
ImpalaSqlLexer.KW_FILEFORMAT = 72;
ImpalaSqlLexer.KW_FILES = 73;
ImpalaSqlLexer.KW_FILTER = 74;
ImpalaSqlLexer.KW_FIRST = 75;
ImpalaSqlLexer.KW_FINALIZE_FN = 76;
ImpalaSqlLexer.KW_FOLLOWING = 77;
ImpalaSqlLexer.KW_FOR = 78;
ImpalaSqlLexer.KW_FORMAT = 79;
ImpalaSqlLexer.KW_FORMATTED = 80;
ImpalaSqlLexer.KW_FOREIGN = 81;
ImpalaSqlLexer.KW_FROM = 82;
ImpalaSqlLexer.KW_FULL = 83;
ImpalaSqlLexer.KW_FUNCTION = 84;
ImpalaSqlLexer.KW_FUNCTIONS = 85;
ImpalaSqlLexer.KW_GRANT = 86;
ImpalaSqlLexer.KW_GROUP = 87;
ImpalaSqlLexer.KW_GROUPING = 88;
ImpalaSqlLexer.KW_HASH = 89;
ImpalaSqlLexer.KW_HAVING = 90;
ImpalaSqlLexer.KW_HOUR = 91;
ImpalaSqlLexer.KW_HOURS = 92;
ImpalaSqlLexer.KW_IF = 93;
ImpalaSqlLexer.KW_IN = 94;
ImpalaSqlLexer.KW_INCLUDING = 95;
ImpalaSqlLexer.KW_INCREMENTAL = 96;
ImpalaSqlLexer.KW_INNER = 97;
ImpalaSqlLexer.KW_INPATH = 98;
ImpalaSqlLexer.KW_INSERT = 99;
ImpalaSqlLexer.KW_INTERSECT = 100;
ImpalaSqlLexer.KW_INTERVAL = 101;
ImpalaSqlLexer.KW_INTERMEDIATE = 102;
ImpalaSqlLexer.KW_INTO = 103;
ImpalaSqlLexer.KW_INIT_FN = 104;
ImpalaSqlLexer.KW_IREGEXP = 105;
ImpalaSqlLexer.KW_ILIKE = 106;
ImpalaSqlLexer.KW_INVALIDATE = 107;
ImpalaSqlLexer.KW_IS = 108;
ImpalaSqlLexer.KW_JOIN = 109;
ImpalaSqlLexer.KW_KEY = 110;
ImpalaSqlLexer.KW_KUDU = 111;
ImpalaSqlLexer.KW_LAST = 112;
ImpalaSqlLexer.KW_LATERAL = 113;
ImpalaSqlLexer.KW_LEFT = 114;
ImpalaSqlLexer.KW_LIKE = 115;
ImpalaSqlLexer.KW_LIMIT = 116;
ImpalaSqlLexer.KW_LINES = 117;
ImpalaSqlLexer.KW_LOAD = 118;
ImpalaSqlLexer.KW_LOCALTIME = 119;
ImpalaSqlLexer.KW_LOCALTIMESTAMP = 120;
ImpalaSqlLexer.KW_METADATA = 121;
ImpalaSqlLexer.KW_MINUTE = 122;
ImpalaSqlLexer.KW_MINUTES = 123;
ImpalaSqlLexer.KW_MONTH = 124;
ImpalaSqlLexer.KW_MONTHS = 125;
ImpalaSqlLexer.KW_MERGE_FN = 126;
ImpalaSqlLexer.KW_NFC = 127;
ImpalaSqlLexer.KW_NFD = 128;
ImpalaSqlLexer.KW_NFKC = 129;
ImpalaSqlLexer.KW_NFKD = 130;
ImpalaSqlLexer.KW_NORMALIZE = 131;
ImpalaSqlLexer.KW_NOT = 132;
ImpalaSqlLexer.KW_NULL = 133;
ImpalaSqlLexer.KW_NULLS = 134;
ImpalaSqlLexer.KW_OFFSET = 135;
ImpalaSqlLexer.KW_ON = 136;
ImpalaSqlLexer.KW_OPTION = 137;
ImpalaSqlLexer.KW_OR = 138;
ImpalaSqlLexer.KW_ORDER = 139;
ImpalaSqlLexer.KW_ORDINALITY = 140;
ImpalaSqlLexer.KW_OUTER = 141;
ImpalaSqlLexer.KW_OWNER = 142;
ImpalaSqlLexer.KW_OVER = 143;
ImpalaSqlLexer.KW_OVERWRITE = 144;
ImpalaSqlLexer.KW_PARTITION = 145;
ImpalaSqlLexer.KW_PARTITIONS = 146;
ImpalaSqlLexer.KW_PARQUET = 147;
ImpalaSqlLexer.KW_POSITION = 148;
ImpalaSqlLexer.KW_PRECEDING = 149;
ImpalaSqlLexer.KW_PRIMARY = 150;
ImpalaSqlLexer.KW_REPLICATION = 151;
ImpalaSqlLexer.KW_PRIVILEGES = 152;
ImpalaSqlLexer.KW_PROPERTIES = 153;
ImpalaSqlLexer.KW_RANGE = 154;
ImpalaSqlLexer.KW_RECOVER = 155;
ImpalaSqlLexer.KW_RENAME = 156;
ImpalaSqlLexer.KW_REPEATABLE = 157;
ImpalaSqlLexer.KW_REPLACE = 158;
ImpalaSqlLexer.KW_RESTRICT = 159;
ImpalaSqlLexer.KW_RETURNS = 160;
ImpalaSqlLexer.KW_REVOKE = 161;
ImpalaSqlLexer.KW_REFRESH = 162;
ImpalaSqlLexer.KW_REGEXP = 163;
ImpalaSqlLexer.KW_RLIKE = 164;
ImpalaSqlLexer.KW_RIGHT = 165;
ImpalaSqlLexer.KW_ROLE = 166;
ImpalaSqlLexer.KW_ROLES = 167;
ImpalaSqlLexer.KW_ROW = 168;
ImpalaSqlLexer.KW_ROWS = 169;
ImpalaSqlLexer.KW_SCHEMA = 170;
ImpalaSqlLexer.KW_SCHEMAS = 171;
ImpalaSqlLexer.KW_SECOND = 172;
ImpalaSqlLexer.KW_SECONDS = 173;
ImpalaSqlLexer.KW_SELECT = 174;
ImpalaSqlLexer.KW_SERDEPROPERTIES = 175;
ImpalaSqlLexer.KW_SET = 176;
ImpalaSqlLexer.KW_SEMI = 177;
ImpalaSqlLexer.KW_SERVER = 178;
ImpalaSqlLexer.KW_SHOW = 179;
ImpalaSqlLexer.KW_SHUTDOWN = 180;
ImpalaSqlLexer.KW_SOME = 181;
ImpalaSqlLexer.KW_STATS = 182;
ImpalaSqlLexer.KW_STRAIGHT_JOIN = 183;
ImpalaSqlLexer.KW_SUBSTRING = 184;
ImpalaSqlLexer.KW_SYSTEM = 185;
ImpalaSqlLexer.KW_SYMBOL = 186;
ImpalaSqlLexer.KW_SERIALIZE_FN = 187;
ImpalaSqlLexer.KW_TABLE = 188;
ImpalaSqlLexer.KW_TABLES = 189;
ImpalaSqlLexer.KW_TABLESAMPLE = 190;
ImpalaSqlLexer.KW_TERMINATED = 191;
ImpalaSqlLexer.KW_THEN = 192;
ImpalaSqlLexer.KW_TO = 193;
ImpalaSqlLexer.KW_TRUE = 194;
ImpalaSqlLexer.KW_TRY_CAST = 195;
ImpalaSqlLexer.KW_TRUNCATE = 196;
ImpalaSqlLexer.KW_UNCACHED = 197;
ImpalaSqlLexer.KW_UESCAPE = 198;
ImpalaSqlLexer.KW_UNBOUNDED = 199;
ImpalaSqlLexer.KW_UNION = 200;
ImpalaSqlLexer.KW_UNNEST = 201;
ImpalaSqlLexer.KW_UNSET = 202;
ImpalaSqlLexer.KW_USE = 203;
ImpalaSqlLexer.KW_USER = 204;
ImpalaSqlLexer.KW_USING = 205;
ImpalaSqlLexer.KW_UPDATE_FN = 206;
ImpalaSqlLexer.KW_UPSERT = 207;
ImpalaSqlLexer.KW_UNKNOWN = 208;
ImpalaSqlLexer.KW_URI = 209;
ImpalaSqlLexer.KW_VALUE = 210;
ImpalaSqlLexer.KW_VALUES = 211;
ImpalaSqlLexer.KW_VIEW = 212;
ImpalaSqlLexer.KW_VIEWS = 213;
ImpalaSqlLexer.KW_WHEN = 214;
ImpalaSqlLexer.KW_WHERE = 215;
ImpalaSqlLexer.KW_WITH = 216;
ImpalaSqlLexer.KW_YEAR = 217;
ImpalaSqlLexer.KW_YEARS = 218;
ImpalaSqlLexer.KW_TEXTFILE = 219;
ImpalaSqlLexer.KW_ORC = 220;
ImpalaSqlLexer.KW_AVRO = 221;
ImpalaSqlLexer.KW_SEQUENCEFILE = 222;
ImpalaSqlLexer.KW_RCFILE = 223;
ImpalaSqlLexer.KW_REFERENCES = 224;
ImpalaSqlLexer.KW_NOVALIDATE = 225;
ImpalaSqlLexer.KW_RELY = 226;
ImpalaSqlLexer.KW_BINARY = 227;
ImpalaSqlLexer.KW_BIGINT = 228;
ImpalaSqlLexer.KW_BOOLEAN = 229;
ImpalaSqlLexer.KW_CHAR = 230;
ImpalaSqlLexer.KW_DATE = 231;
ImpalaSqlLexer.KW_DECIMAL = 232;
ImpalaSqlLexer.KW_DOUBLE = 233;
ImpalaSqlLexer.KW_INT = 234;
ImpalaSqlLexer.KW_MAP = 235;
ImpalaSqlLexer.KW_REAL = 236;
ImpalaSqlLexer.KW_SMALLINT = 237;
ImpalaSqlLexer.KW_FLOAT = 238;
ImpalaSqlLexer.KW_STRING = 239;
ImpalaSqlLexer.KW_STRUCT = 240;
ImpalaSqlLexer.KW_TIMESTAMP = 241;
ImpalaSqlLexer.KW_TINYINT = 242;
ImpalaSqlLexer.KW_VARCHAR = 243;
ImpalaSqlLexer.KW_COMPLEX = 244;
ImpalaSqlLexer.STATS_NUMDVS = 245;
ImpalaSqlLexer.STATS_NUMNULLS = 246;
ImpalaSqlLexer.STATS_AVGSIZE = 247;
ImpalaSqlLexer.STATS_MAXSIZE = 248;
ImpalaSqlLexer.EQ = 249;
ImpalaSqlLexer.NEQ = 250;
ImpalaSqlLexer.LT = 251;
ImpalaSqlLexer.LTE = 252;
ImpalaSqlLexer.GT = 253;
ImpalaSqlLexer.GTE = 254;
ImpalaSqlLexer.PLUS = 255;
ImpalaSqlLexer.MINUS = 256;
ImpalaSqlLexer.ASTERISK = 257;
ImpalaSqlLexer.SLASH = 258;
ImpalaSqlLexer.PERCENT = 259;
ImpalaSqlLexer.CONCAT = 260;
ImpalaSqlLexer.DOT = 261;
ImpalaSqlLexer.SEMICOLON = 262;
ImpalaSqlLexer.COMMA = 263;
ImpalaSqlLexer.COLON = 264;
ImpalaSqlLexer.LPAREN = 265;
ImpalaSqlLexer.RPAREN = 266;
ImpalaSqlLexer.LSQUARE = 267;
ImpalaSqlLexer.RSQUARE = 268;
ImpalaSqlLexer.LCURLY = 269;
ImpalaSqlLexer.RCURLY = 270;
ImpalaSqlLexer.BITWISEOR = 271;
ImpalaSqlLexer.QUESTION = 272;
ImpalaSqlLexer.RIGHT_ARROW = 273;
ImpalaSqlLexer.STRING = 274;
ImpalaSqlLexer.UNICODE_STRING = 275;
ImpalaSqlLexer.BINARY_LITERAL = 276;
ImpalaSqlLexer.INTEGER_VALUE = 277;
ImpalaSqlLexer.DECIMAL_VALUE = 278;
ImpalaSqlLexer.DOUBLE_VALUE = 279;
ImpalaSqlLexer.IDENTIFIER = 280;
ImpalaSqlLexer.DIGIT_IDENTIFIER = 281;
ImpalaSqlLexer.QUOTED_IDENTIFIER = 282;
ImpalaSqlLexer.BACKQUOTED_IDENTIFIER = 283;
ImpalaSqlLexer.TIME_WITH_TIME_ZONE = 284;
ImpalaSqlLexer.TIMESTAMP_WITH_TIME_ZONE = 285;
ImpalaSqlLexer.DOUBLE_PRECISION = 286;
ImpalaSqlLexer.LINE_COMMENT = 287;
ImpalaSqlLexer.BRACKETED_COMMENT = 288;
ImpalaSqlLexer.WHITE_SPACE = 289;
ImpalaSqlLexer.channelNames = [
"DEFAULT_TOKEN_CHANNEL", "HIDDEN"
];
ImpalaSqlLexer.literalNames = [
null, "'ADD'", "'ALL'", "'ANALYTIC'", "'ALTER'", "'AND'", "'ANY'",
"'ANTI'", "'ARRAY'", "'AS'", "'ASC'", "'AT'", "'AGGREGATE'", "'AUTHORIZATION'",
"'BERNOULLI'", "'BETWEEN'", "'BLOCK_SIZE'", "'PARTITIONED'", "'PREPARE_FN'",
"'EXTERNAL'", "'CLOSEFN'", "'SORT'", "'PURGE'", "'STORED'", "'LOCATION'",
"'TBLPROPERTIES'", "'BY'", "'CASCADE'", "'CASE'", "'CAST'", "'CACHED'",
"'CHANGE'", "'COLUMN'", "'COLUMNS'", "'COMMENT'", "'COMPRESSION'",
"'COMPUTE'", "'CREATE'", "'CROSS'", "'CURRENT'", "'CURRENT_DATE'",
"'CURRENT_PATH'", "'CURRENT_TIME'", "'CURRENT_TIMESTAMP'", "'CURRENT_USER'",
"'DATA'", "'DATABASE'", "'DATABASES'", "'DAY'", "'DAYS'", "'DELETE'",
"'DEFAULT'", "'DELIMITED'", "'DISABLE'", "'UPDATE'", "'DESC'", "'DESCRIBE'",
"'DISTINCT'", "'DROP'", "'ELSE'", "'ENCODING'", "'END'", "'ESCAPE'",
"'ESCAPED'", "'EXCEPT'", "'EXCLUDING'", "'EXISTS'", "'EXPLAIN'",
"'EXTRACT'", "'EXTENDED'", "'FALSE'", "'FIELDS'", "'FILEFORMAT'",
"'FILES'", "'FILTER'", "'FIRST'", "'FINALIZE_FN'", "'FOLLOWING'",
"'FOR'", "'FORMAT'", "'FORMATTED'", "'FOREIGN'", "'FROM'", "'FULL'",
"'FUNCTION'", "'FUNCTIONS'", "'GRANT'", "'GROUP'", "'GROUPING'",
"'HASH'", "'HAVING'", "'HOUR'", "'HOURS'", "'IF'", "'IN'", "'INCLUDING'",
"'INCREMENTAL'", "'INNER'", "'INPATH'", "'INSERT'", "'INTERSECT'",
"'INTERVAL'", "'INTERMEDIATE'", "'INTO'", "'INIT_FN'", "'IREGEXP'",
"'ILIKE'", "'INVALIDATE'", "'IS'", "'JOIN'", "'KEY'", "'KUDU'",
"'LAST'", "'LATERAL'", "'LEFT'", "'LIKE'", "'LIMIT'", "'LINES'",
"'LOAD'", "'LOCALTIME'", "'LOCALTIMESTAMP'", "'METADATA'", "'MINUTE'",
"'MINUTES'", "'MONTH'", "'MONTHS'", "'MERGE_FN'", "'NFC'", "'NFD'",
"'NFKC'", "'NFKD'", "'NORMALIZE'", "'NOT'", "'NULL'", "'NULLS'",
"'OFFSET'", "'ON'", "'OPTION'", "'OR'", "'ORDER'", "'ORDINALITY'",
"'OUTER'", "'OWNER'", "'OVER'", "'OVERWRITE'", "'PARTITION'", "'PARTITIONS'",
"'PARQUET'", "'POSITION'", "'PRECEDING'", "'PRIMARY'", "'REPLICATION'",
"'PRIVILEGES'", "'PROPERTIES'", "'RANGE'", "'RECOVER'", "'RENAME'",
"'REPEATABLE'", "'REPLACE'", "'RESTRICT'", "'RETURNS'", "'REVOKE'",
"'REFRESH'", "'REGEXP'", "'RLIKE'", "'RIGHT'", "'ROLE'", "'ROLES'",
"'ROW'", "'ROWS'", "'SCHEMA'", "'SCHEMAS'", "'SECOND'", "'SECONDS'",
"'SELECT'", "'SERDEPROPERTIES'", "'SET'", "'SEMI'", "'SERVER'",
"'SHOW'", "'SHUTDOWN'", "'SOME'", "'STATS'", "'STRAIGHT_JOIN'",
"'SUBSTRING'", "'SYSTEM'", "'SYMBOL'", "'SERIALIZE_FN'", "'TABLE'",
"'TABLES'", "'TABLESAMPLE'", "'TERMINATED '", "'THEN'", "'TO'",
"'TRUE'", "'TRY_CAST'", "'TRUNCATE'", "'UNCACHED'", "'UESCAPE'",
"'UNBOUNDED'", "'UNION'", "'UNNEST'", "'UNSET'", "'USE'", "'USER'",
"'USING'", "'UPDATE_FN'", "'UPSERT'", "'UNKNOWN'", "'URI'", "'VALUE'",
"'VALUES'", "'VIEW'", "'VIEWS'", "'WHEN'", "'WHERE'", "'WITH'",
"'YEAR'", "'YEARS'", "'TEXTFILE'", "'ORC'", "'AVRO'", "'SEQUENCEFILE'",
"'RCFILE'", "'REFERENCES'", "'NOVALIDATE'", "'RELY'", "'BINARY'",
"'BIGINT'", "'BOOLEAN'", "'CHAR'", "'DATE'", "'DECIMAL'", "'DOUBLE'",
"'INT'", "'MAP'", "'REAL'", "'SMALLINT'", "'FLOAT'", "'STRING'",
"'STRUCT'", "'TIMESTAMP'", "'TINYINT'", "'VARCHAR'", "'COMPLEX'",
"''NUMDVS''", "''NUMNULLS''", "''AVGSIZE''", "''MAXSIZE''", "'='",
null, "'<'", "'<='", "'>'", "'>='", "'+'", "'-'", "'*'", "'/'",
"'%'", "'||'", "'.'", "';'", "','", "':'", "'('", "')'", "'['",
"']'", "'{'", "'}'", "'|'", "'?'", "'->'"
];
ImpalaSqlLexer.symbolicNames = [
null, "KW_ADD", "KW_ALL", "KW_ANALYTIC", "KW_ALTER", "KW_AND", "KW_ANY",
"KW_ANTI", "KW_ARRAY", "KW_AS", "KW_ASC", "KW_AT", "KW_AGGREGATE",
"KW_AUTHORIZATION", "KW_BERNOULLI", "KW_BETWEEN", "KW_BLOCK_SIZE",
"KW_PARTITIONED", "KW_PREPARE_FN", "KW_EXTERNAL", "KW_CLOSEFN",
"KW_SORT", "KW_PURGE", "KW_STORED", "KW_LOCATION", "KW_TBLPROPERTIES",
"KW_BY", "KW_CASCADE", "KW_CASE", "KW_CAST", "KW_CACHED", "KW_CHANGE",
"KW_COLUMN", "KW_COLUMNS", "KW_COMMENT", "KW_COMPRESSION", "KW_COMPUTE",
"KW_CREATE", "KW_CROSS", "KW_CURRENT", "KW_CURRENT_DATE", "KW_CURRENT_PATH",
"KW_CURRENT_TIME", "KW_CURRENT_TIMESTAMP", "KW_CURRENT_USER", "KW_DATA",
"KW_DATABASE", "KW_DATABASES", "KW_DAY", "KW_DAYS", "KW_DELETE",
"KW_DEFAULT", "KW_DELIMITED", "KW_DISABLE", "KW_UPDATE", "KW_DESC",
"KW_DESCRIBE", "KW_DISTINCT", "KW_DROP", "KW_ELSE", "KW_ENCODING",
"KW_END", "KW_ESCAPE", "KW_ESCAPED", "KW_EXCEPT", "KW_EXCLUDING",
"KW_EXISTS", "KW_EXPLAIN", "KW_EXTRACT", "KW_EXTENDED", "KW_FALSE",
"KW_FIELDS", "KW_FILEFORMAT", "KW_FILES", "KW_FILTER", "KW_FIRST",
"KW_FINALIZE_FN", "KW_FOLLOWING", "KW_FOR", "KW_FORMAT", "KW_FORMATTED",
"KW_FOREIGN", "KW_FROM", "KW_FULL", "KW_FUNCTION", "KW_FUNCTIONS",
"KW_GRANT", "KW_GROUP", "KW_GROUPING", "KW_HASH", "KW_HAVING", "KW_HOUR",
"KW_HOURS", "KW_IF", "KW_IN", "KW_INCLUDING", "KW_INCREMENTAL",
"KW_INNER", "KW_INPATH", "KW_INSERT", "KW_INTERSECT", "KW_INTERVAL",
"KW_INTERMEDIATE", "KW_INTO", "KW_INIT_FN", "KW_IREGEXP", "KW_ILIKE",
"KW_INVALIDATE", "KW_IS", "KW_JOIN", "KW_KEY", "KW_KUDU", "KW_LAST",
"KW_LATERAL", "KW_LEFT", "KW_LIKE", "KW_LIMIT", "KW_LINES", "KW_LOAD",
"KW_LOCALTIME", "KW_LOCALTIMESTAMP", "KW_METADATA", "KW_MINUTE",
"KW_MINUTES", "KW_MONTH", "KW_MONTHS", "KW_MERGE_FN", "KW_NFC",
"KW_NFD", "KW_NFKC", "KW_NFKD", "KW_NORMALIZE", "KW_NOT", "KW_NULL",
"KW_NULLS", "KW_OFFSET", "KW_ON", "KW_OPTION", "KW_OR", "KW_ORDER",
"KW_ORDINALITY", "KW_OUTER", "KW_OWNER", "KW_OVER", "KW_OVERWRITE",
"KW_PARTITION", "KW_PARTITIONS", "KW_PARQUET", "KW_POSITION", "KW_PRECEDING",
"KW_PRIMARY", "KW_REPLICATION", "KW_PRIVILEGES", "KW_PROPERTIES",
"KW_RANGE", "KW_RECOVER", "KW_RENAME", "KW_REPEATABLE", "KW_REPLACE",
"KW_RESTRICT", "KW_RETURNS", "KW_REVOKE", "KW_REFRESH", "KW_REGEXP",
"KW_RLIKE", "KW_RIGHT", "KW_ROLE", "KW_ROLES", "KW_ROW", "KW_ROWS",
"KW_SCHEMA", "KW_SCHEMAS", "KW_SECOND", "KW_SECONDS", "KW_SELECT",
"KW_SERDEPROPERTIES", "KW_SET", "KW_SEMI", "KW_SERVER", "KW_SHOW",
"KW_SHUTDOWN", "KW_SOME", "KW_STATS", "KW_STRAIGHT_JOIN", "KW_SUBSTRING",
"KW_SYSTEM", "KW_SYMBOL", "KW_SERIALIZE_FN", "KW_TABLE", "KW_TABLES",
"KW_TABLESAMPLE", "KW_TERMINATED", "KW_THEN", "KW_TO", "KW_TRUE",
"KW_TRY_CAST", "KW_TRUNCATE", "KW_UNCACHED", "KW_UESCAPE", "KW_UNBOUNDED",
"KW_UNION", "KW_UNNEST", "KW_UNSET", "KW_USE", "KW_USER", "KW_USING",
"KW_UPDATE_FN", "KW_UPSERT", "KW_UNKNOWN", "KW_URI", "KW_VALUE",
"KW_VALUES", "KW_VIEW", "KW_VIEWS", "KW_WHEN", "KW_WHERE", "KW_WITH",
"KW_YEAR", "KW_YEARS", "KW_TEXTFILE", "KW_ORC", "KW_AVRO", "KW_SEQUENCEFILE",
"KW_RCFILE", "KW_REFERENCES", "KW_NOVALIDATE", "KW_RELY", "KW_BINARY",
"KW_BIGINT", "KW_BOOLEAN", "KW_CHAR", "KW_DATE", "KW_DECIMAL", "KW_DOUBLE",
"KW_INT", "KW_MAP", "KW_REAL", "KW_SMALLINT", "KW_FLOAT", "KW_STRING",
"KW_STRUCT", "KW_TIMESTAMP", "KW_TINYINT", "KW_VARCHAR", "KW_COMPLEX",
"STATS_NUMDVS", "STATS_NUMNULLS", "STATS_AVGSIZE", "STATS_MAXSIZE",
"EQ", "NEQ", "LT", "LTE", "GT", "GTE", "PLUS", "MINUS", "ASTERISK",
"SLASH", "PERCENT", "CONCAT", "DOT", "SEMICOLON", "COMMA", "COLON",
"LPAREN", "RPAREN", "LSQUARE", "RSQUARE", "LCURLY", "RCURLY", "BITWISEOR",
"QUESTION", "RIGHT_ARROW", "STRING", "UNICODE_STRING", "BINARY_LITERAL",
"INTEGER_VALUE", "DECIMAL_VALUE", "DOUBLE_VALUE", "IDENTIFIER",
"DIGIT_IDENTIFIER", "QUOTED_IDENTIFIER", "BACKQUOTED_IDENTIFIER",
"TIME_WITH_TIME_ZONE", "TIMESTAMP_WITH_TIME_ZONE", "DOUBLE_PRECISION",
"LINE_COMMENT", "BRACKETED_COMMENT", "WHITE_SPACE"
];
ImpalaSqlLexer.modeNames = [
"DEFAULT_MODE",
];
ImpalaSqlLexer.ruleNames = [
"KW_ADD", "KW_ALL", "KW_ANALYTIC", "KW_ALTER", "KW_AND", "KW_ANY",
"KW_ANTI", "KW_ARRAY", "KW_AS", "KW_ASC", "KW_AT", "KW_AGGREGATE",
"KW_AUTHORIZATION", "KW_BERNOULLI", "KW_BETWEEN", "KW_BLOCK_SIZE",
"KW_PARTITIONED", "KW_PREPARE_FN", "KW_EXTERNAL", "KW_CLOSEFN",
"KW_SORT", "KW_PURGE", "KW_STORED", "KW_LOCATION", "KW_TBLPROPERTIES",
"KW_BY", "KW_CASCADE", "KW_CASE", "KW_CAST", "KW_CACHED", "KW_CHANGE",
"KW_COLUMN", "KW_COLUMNS", "KW_COMMENT", "KW_COMPRESSION", "KW_COMPUTE",
"KW_CREATE", "KW_CROSS", "KW_CURRENT", "KW_CURRENT_DATE", "KW_CURRENT_PATH",
"KW_CURRENT_TIME", "KW_CURRENT_TIMESTAMP", "KW_CURRENT_USER", "KW_DATA",
"KW_DATABASE", "KW_DATABASES", "KW_DAY", "KW_DAYS", "KW_DELETE",
"KW_DEFAULT", "KW_DELIMITED", "KW_DISABLE", "KW_UPDATE", "KW_DESC",
"KW_DESCRIBE", "KW_DISTINCT", "KW_DROP", "KW_ELSE", "KW_ENCODING",
"KW_END", "KW_ESCAPE", "KW_ESCAPED", "KW_EXCEPT", "KW_EXCLUDING",
"KW_EXISTS", "KW_EXPLAIN", "KW_EXTRACT", "KW_EXTENDED", "KW_FALSE",
"KW_FIELDS", "KW_FILEFORMAT", "KW_FILES", "KW_FILTER", "KW_FIRST",
"KW_FINALIZE_FN", "KW_FOLLOWING", "KW_FOR", "KW_FORMAT", "KW_FORMATTED",
"KW_FOREIGN", "KW_FROM", "KW_FULL", "KW_FUNCTION", "KW_FUNCTIONS",
"KW_GRANT", "KW_GROUP", "KW_GROUPING", "KW_HASH", "KW_HAVING", "KW_HOUR",
"KW_HOURS", "KW_IF", "KW_IN", "KW_INCLUDING", "KW_INCREMENTAL",
"KW_INNER", "KW_INPATH", "KW_INSERT", "KW_INTERSECT", "KW_INTERVAL",
"KW_INTERMEDIATE", "KW_INTO", "KW_INIT_FN", "KW_IREGEXP", "KW_ILIKE",
"KW_INVALIDATE", "KW_IS", "KW_JOIN", "KW_KEY", "KW_KUDU", "KW_LAST",
"KW_LATERAL", "KW_LEFT", "KW_LIKE", "KW_LIMIT", "KW_LINES", "KW_LOAD",
"KW_LOCALTIME", "KW_LOCALTIMESTAMP", "KW_METADATA", "KW_MINUTE",
"KW_MINUTES", "KW_MONTH", "KW_MONTHS", "KW_MERGE_FN", "KW_NFC",
"KW_NFD", "KW_NFKC", "KW_NFKD", "KW_NORMALIZE", "KW_NOT", "KW_NULL",
"KW_NULLS", "KW_OFFSET", "KW_ON", "KW_OPTION", "KW_OR", "KW_ORDER",
"KW_ORDINALITY", "KW_OUTER", "KW_OWNER", "KW_OVER", "KW_OVERWRITE",
"KW_PARTITION", "KW_PARTITIONS", "KW_PARQUET", "KW_POSITION", "KW_PRECEDING",
"KW_PRIMARY", "KW_REPLICATION", "KW_PRIVILEGES", "KW_PROPERTIES",
"KW_RANGE", "KW_RECOVER", "KW_RENAME", "KW_REPEATABLE", "KW_REPLACE",
"KW_RESTRICT", "KW_RETURNS", "KW_REVOKE", "KW_REFRESH", "KW_REGEXP",
"KW_RLIKE", "KW_RIGHT", "KW_ROLE", "KW_ROLES", "KW_ROW", "KW_ROWS",
"KW_SCHEMA", "KW_SCHEMAS", "KW_SECOND", "KW_SECONDS", "KW_SELECT",
"KW_SERDEPROPERTIES", "KW_SET", "KW_SEMI", "KW_SERVER", "KW_SHOW",
"KW_SHUTDOWN", "KW_SOME", "KW_STATS", "KW_STRAIGHT_JOIN", "KW_SUBSTRING",
"KW_SYSTEM", "KW_SYMBOL", "KW_SERIALIZE_FN", "KW_TABLE", "KW_TABLES",
"KW_TABLESAMPLE", "KW_TERMINATED", "KW_THEN", "KW_TO", "KW_TRUE",
"KW_TRY_CAST", "KW_TRUNCATE", "KW_UNCACHED", "KW_UESCAPE", "KW_UNBOUNDED",
"KW_UNION", "KW_UNNEST", "KW_UNSET", "KW_USE", "KW_USER", "KW_USING",
"KW_UPDATE_FN", "KW_UPSERT", "KW_UNKNOWN", "KW_URI", "KW_VALUE",
"KW_VALUES", "KW_VIEW", "KW_VIEWS", "KW_WHEN", "KW_WHERE", "KW_WITH",
"KW_YEAR", "KW_YEARS", "KW_TEXTFILE", "KW_ORC", "KW_AVRO", "KW_SEQUENCEFILE",
"KW_RCFILE", "KW_REFERENCES", "KW_NOVALIDATE", "KW_RELY", "KW_BINARY",
"KW_BIGINT", "KW_BOOLEAN", "KW_CHAR", "KW_DATE", "KW_DECIMAL", "KW_DOUBLE",
"KW_INT", "KW_MAP", "KW_REAL", "KW_SMALLINT", "KW_FLOAT", "KW_STRING",
"KW_STRUCT", "KW_TIMESTAMP", "KW_TINYINT", "KW_VARCHAR", "KW_COMPLEX",
"STATS_NUMDVS", "STATS_NUMNULLS", "STATS_AVGSIZE", "STATS_MAXSIZE",
"EQ", "NEQ", "LT", "LTE", "GT", "GTE", "PLUS", "MINUS", "ASTERISK",
"SLASH", "PERCENT", "CONCAT", "DOT", "SEMICOLON", "COMMA", "COLON",
"LPAREN", "RPAREN", "LSQUARE", "RSQUARE", "LCURLY", "RCURLY", "BITWISEOR",
"QUESTION", "RIGHT_ARROW", "STRING", "UNICODE_STRING", "BINARY_LITERAL",
"INTEGER_VALUE", "DECIMAL_VALUE", "DOUBLE_VALUE", "IDENTIFIER",
"DIGIT_IDENTIFIER", "QUOTED_IDENTIFIER", "BACKQUOTED_IDENTIFIER",
"TIME_WITH_TIME_ZONE", "TIMESTAMP_WITH_TIME_ZONE", "DOUBLE_PRECISION",
"EXPONENT", "DIGIT", "LETTER", "LINE_COMMENT", "BRACKETED_COMMENT",
"WHITE_SPACE",
];
ImpalaSqlLexer._serializedATN = [
4, 0, 289, 2741, 6, -1, 2, 0, 7, 0, 2, 1, 7, 1, 2, 2, 7, 2, 2, 3, 7, 3, 2, 4, 7, 4, 2, 5, 7,
5, 2, 6, 7, 6, 2, 7, 7, 7, 2, 8, 7, 8, 2, 9, 7, 9, 2, 10, 7, 10, 2, 11, 7, 11, 2, 12, 7, 12,
2, 13, 7, 13, 2, 14, 7, 14, 2, 15, 7, 15, 2, 16, 7, 16, 2, 17, 7, 17, 2, 18, 7, 18, 2, 19,
7, 19, 2, 20, 7, 20, 2, 21, 7, 21, 2, 22, 7, 22, 2, 23, 7, 23, 2, 24, 7, 24, 2, 25, 7, 25,
2, 26, 7, 26, 2, 27, 7, 27, 2, 28, 7, 28, 2, 29, 7, 29, 2, 30, 7, 30, 2, 31, 7, 31, 2, 32,
7, 32, 2, 33, 7, 33, 2, 34, 7, 34, 2, 35, 7, 35, 2, 36, 7, 36, 2, 37, 7, 37, 2, 38, 7, 38,
2, 39, 7, 39, 2, 40, 7, 40, 2, 41, 7, 41, 2, 42, 7, 42, 2, 43, 7, 43, 2, 44, 7, 44, 2, 45,
7, 45, 2, 46, 7, 46, 2, 47, 7, 47, 2, 48, 7, 48, 2, 49, 7, 49, 2, 50, 7, 50, 2, 51, 7, 51,
2, 52, 7, 52, 2, 53, 7, 53, 2, 54, 7, 54, 2, 55, 7, 55, 2, 56, 7, 56, 2, 57, 7, 57, 2, 58,
7, 58, 2, 59, 7, 59, 2, 60, 7, 60, 2, 61, 7, 61, 2, 62, 7, 62, 2, 63, 7, 63, 2, 64, 7, 64,
2, 65, 7, 65, 2, 66, 7, 66, 2, 67, 7, 67, 2, 68, 7, 68, 2, 69, 7, 69, 2, 70, 7, 70, 2, 71,
7, 71, 2, 72, 7, 72, 2, 73, 7, 73, 2, 74, 7, 74, 2, 75, 7, 75, 2, 76, 7, 76, 2, 77, 7, 77,
2, 78, 7, 78, 2, 79, 7, 79, 2, 80, 7, 80, 2, 81, 7, 81, 2, 82, 7, 82, 2, 83, 7, 83, 2, 84,
7, 84, 2, 85, 7, 85, 2, 86, 7, 86, 2, 87, 7, 87, 2, 88, 7, 88, 2, 89, 7, 89, 2, 90, 7, 90,
2, 91, 7, 91, 2, 92, 7, 92, 2, 93, 7, 93, 2, 94, 7, 94, 2, 95, 7, 95, 2, 96, 7, 96, 2, 97,
7, 97, 2, 98, 7, 98, 2, 99, 7, 99, 2, 100, 7, 100, 2, 101, 7, 101, 2, 102, 7, 102, 2, 103,
7, 103, 2, 104, 7, 104, 2, 105, 7, 105, 2, 106, 7, 106, 2, 107, 7, 107, 2, 108, 7, 108,
2, 109, 7, 109, 2, 110, 7, 110, 2, 111, 7, 111, 2, 112, 7, 112, 2, 113, 7, 113, 2, 114,
7, 114, 2, 115, 7, 115, 2, 116, 7, 116, 2, 117, 7, 117, 2, 118, 7, 118, 2, 119, 7, 119,
2, 120, 7, 120, 2, 121, 7, 121, 2, 122, 7, 122, 2, 123, 7, 123, 2, 124, 7, 124, 2, 125,
7, 125, 2, 126, 7, 126, 2, 127, 7, 127, 2, 128, 7, 128, 2, 129, 7, 129, 2, 130, 7, 130,
2, 131, 7, 131, 2, 132, 7, 132, 2, 133, 7, 133, 2, 134, 7, 134, 2, 135, 7, 135, 2, 136,
7, 136, 2, 137, 7, 137, 2, 138, 7, 138, 2, 139, 7, 139, 2, 140, 7, 140, 2, 141, 7, 141,
2, 142, 7, 142, 2, 143, 7, 143, 2, 144, 7, 144, 2, 145, 7, 145, 2, 146, 7, 146, 2, 147,
7, 147, 2, 148, 7, 148, 2, 149, 7, 149, 2, 150, 7, 150, 2, 151, 7, 151, 2, 152, 7, 152,
2, 153, 7, 153, 2, 154, 7, 154, 2, 155, 7, 155, 2, 156, 7, 156, 2, 157, 7, 157, 2, 158,
7, 158, 2, 159, 7, 159, 2, 160, 7, 160, 2, 161, 7, 161, 2, 162, 7, 162, 2, 163, 7, 163,
2, 164, 7, 164, 2, 165, 7, 165, 2, 166, 7, 166, 2, 167, 7, 167, 2, 168, 7, 168, 2, 169,
7, 169, 2, 170, 7, 170, 2, 171, 7, 171, 2, 172, 7, 172, 2, 173, 7, 173, 2, 174, 7, 174,
2, 175, 7, 175, 2, 176, 7, 176, 2, 177, 7, 177, 2, 178, 7, 178, 2, 179, 7, 179, 2, 180,
7, 180, 2, 181, 7, 181, 2, 182, 7, 182, 2, 183, 7, 183, 2, 184, 7, 184, 2, 185, 7, 185,
2, 186, 7, 186, 2, 187, 7, 187, 2, 188, 7, 188, 2, 189, 7, 189, 2, 190, 7, 190, 2, 191,
7, 191, 2, 192, 7, 192, 2, 193, 7, 193, 2, 194, 7, 194, 2, 195, 7, 195, 2, 196, 7, 196,
2, 197, 7, 197, 2, 198, 7, 198, 2, 199, 7, 199, 2, 200, 7, 200, 2, 201, 7, 201, 2, 202,
7, 202, 2, 203, 7, 203, 2, 204, 7, 204, 2, 205, 7, 205, 2, 206, 7, 206, 2, 207, 7, 207,
2, 208, 7, 208, 2, 209, 7, 209, 2, 210, 7, 210, 2, 211, 7, 211, 2, 212, 7, 212, 2, 213,
7, 213, 2, 214, 7, 214, 2, 215, 7, 215, 2, 216, 7, 216, 2, 217, 7, 217, 2, 218, 7, 218,
2, 219, 7, 219, 2, 220, 7, 220, 2, 221, 7, 221, 2, 222, 7, 222, 2, 223, 7, 223, 2, 224,
7, 224, 2, 225, 7, 225, 2, 226, 7, 226, 2, 227, 7, 227, 2, 228, 7, 228, 2, 229, 7, 229,
2, 230, 7, 230, 2, 231, 7, 231, 2, 232, 7, 232, 2, 233, 7, 233, 2, 234, 7, 234, 2, 235,
7, 235, 2, 236, 7, 236, 2, 237, 7, 237, 2, 238, 7, 238, 2, 239, 7, 239, 2, 240, 7, 240,
2, 241, 7, 241, 2, 242, 7, 242, 2, 243, 7, 243, 2, 244, 7, 244, 2, 245, 7, 245, 2, 246,
7, 246, 2, 247, 7, 247, 2, 248, 7, 248, 2, 249, 7, 249, 2, 250, 7, 250, 2, 251, 7, 251,
2, 252, 7, 252, 2, 253, 7, 253, 2, 254, 7, 254, 2, 255, 7, 255, 2, 256, 7, 256, 2, 257,
7, 257, 2, 258, 7, 258, 2, 259, 7, 259, 2, 260, 7, 260, 2, 261, 7, 261, 2, 262, 7, 262,
2, 263, 7, 263, 2, 264, 7, 264, 2, 265, 7, 265, 2, 266, 7, 266, 2, 267, 7, 267, 2, 268,
7, 268, 2, 269, 7, 269, 2, 270, 7, 270, 2, 271, 7, 271, 2, 272, 7, 272, 2, 273, 7, 273,
2, 274, 7, 274, 2, 275, 7, 275, 2, 276, 7, 276, 2, 277, 7, 277, 2, 278, 7, 278, 2, 279,
7, 279, 2, 280, 7, 280, 2, 281, 7, 281, 2, 282, 7, 282, 2, 283, 7, 283, 2, 284, 7, 284,
2, 285, 7, 285, 2, 286, 7, 286, 2, 287, 7, 287, 2, 288, 7, 288, 2, 289, 7, 289, 2, 290,
7, 290, 2, 291, 7, 291, 1, 0, 1, 0, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 1, 2, 1,
2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 4, 1, 4, 1, 4, 1, 4, 1,
5, 1, 5, 1, 5, 1, 5, 1, 6, 1, 6, 1, 6, 1, 6, 1, 6, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 8, 1,
8, 1, 8, 1, 9, 1, 9, 1, 9, 1, 9, 1, 10, 1, 10, 1, 10, 1, 11, 1, 11, 1, 11, 1, 11, 1, 11, 1,
11, 1, 11, 1, 11, 1, 11, 1, 11, 1, 12, 1, 12, 1, 12, 1, 12, 1, 12, 1, 12, 1, 12, 1, 12, 1,
12, 1, 12, 1, 12, 1, 12, 1, 12, 1, 12, 1, 13, 1, 13, 1, 13, 1, 13, 1, 13, 1, 13, 1, 13, 1,
13, 1, 13, 1, 13, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 15, 1, 15, 1,
15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 16, 1, 16, 1, 16, 1, 16, 1,
16, 1, 16, 1, 16, 1, 16, 1, 16, 1, 16, 1, 16, 1, 16, 1, 17, 1, 17, 1, 17, 1, 17, 1, 17, 1,
17, 1, 17, 1, 17, 1, 17, 1, 17, 1, 17, 1, 18, 1, 18, 1, 18, 1, 18, 1, 18, 1, 18, 1, 18, 1,
18, 1, 18, 1, 19, 1, 19, 1, 19, 1, 19, 1, 19, 1, 19, 1, 19, 1, 19, 1, 20, 1, 20, 1, 20, 1,
20, 1, 20, 1, 21, 1, 21, 1, 21, 1, 21, 1, 21, 1, 21, 1, 22, 1, 22, 1, 22, 1, 22, 1, 22, 1,
22, 1, 22, 1, 23, 1, 23, 1, 23, 1, 23, 1, 23, 1, 23, 1, 23, 1, 23, 1, 23, 1, 24, 1, 24, 1,
24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 25, 1,
25, 1, 25, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 27, 1, 27, 1, 27, 1,
27, 1, 27, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1,
29, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1,
31, 1, 31, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 33, 1, 33, 1, 33, 1,
33, 1, 33, 1, 33, 1, 33, 1, 33, 1, 34, 1, 34, 1, 34, 1, 34, 1, 34, 1, 34, 1, 34, 1, 34, 1,
34, 1, 34, 1, 34, 1, 34, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 36, 1,
36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 38, 1,
38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1,
39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1,
40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 1,
41, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1,
42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 43, 1,
43, 1, 43, 1, 43, 1, 43, 1, 43, 1, 43, 1, 43, 1, 43, 1, 43, 1, 43, 1, 43, 1, 43, 1, 44, 1,
44, 1, 44, 1, 44, 1, 44, 1, 45, 1, 45, 1, 45, 1, 45, 1, 45, 1, 45, 1, 45, 1, 45, 1, 45, 1,
46, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 1, 47, 1, 47, 1, 47, 1,
47, 1, 48, 1, 48, 1, 48, 1, 48, 1, 48, 1, 49, 1, 49, 1, 49, 1, 49, 1, 49, 1, 49, 1, 49, 1,
50, 1, 50, 1, 50, 1, 50, 1, 50, 1, 50, 1, 50, 1, 50, 1, 51, 1, 51, 1, 51, 1, 51, 1, 51, 1,
51, 1, 51, 1, 51, 1, 51, 1, 51, 1, 52, 1, 52, 1, 52, 1, 52, 1, 52, 1, 52, 1, 52, 1, 52, 1,
53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 54, 1, 54, 1, 54, 1, 54, 1, 54, 1, 55, 1,
55, 1, 55, 1, 55, 1, 55, 1, 55, 1, 55, 1, 55, 1, 55, 1, 56, 1, 56, 1, 56, 1, 56, 1, 56, 1,
56, 1, 56, 1, 56, 1, 56, 1, 57, 1, 57, 1, 57, 1, 57, 1, 57, 1, 58, 1, 58, 1, 58, 1, 58, 1,
58, 1, 59, 1, 59, 1, 59, 1, 59, 1, 59, 1, 59, 1, 59, 1, 59, 1, 59, 1, 60, 1, 60, 1, 60, 1,
60, 1, 61, 1, 61, 1, 61, 1, 61, 1, 61, 1, 61, 1, 61, 1, 62, 1, 62, 1, 62, 1, 62, 1, 62, 1,
62, 1, 62, 1, 62, 1, 63, 1, 63, 1, 63, 1, 63, 1, 63, 1, 63, 1, 63, 1, 64, 1, 64, 1, 64, 1,
64, 1, 64, 1, 64, 1, 64, 1, 64, 1, 64, 1, 64, 1, 65, 1, 65, 1, 65, 1, 65, 1, 65, 1, 65, 1,
65, 1, 66, 1, 66, 1, 66, 1, 66, 1, 66, 1, 66, 1, 66, 1, 66, 1, 67, 1, 67, 1, 67, 1, 67, 1,
67, 1, 67, 1, 67, 1, 67, 1, 68, 1, 68, 1, 68, 1, 68, 1, 68, 1, 68, 1, 68, 1, 68, 1, 68, 1,
69, 1, 69, 1, 69, 1, 69, 1, 69, 1, 69, 1, 70, 1, 70, 1, 70, 1, 70, 1, 70, 1, 70, 1, 70, 1,
71, 1, 71, 1, 71, 1, 71, 1, 71, 1, 71, 1, 71, 1, 71, 1, 71, 1, 71, 1, 71, 1, 72, 1, 72, 1,
72, 1, 72, 1, 72, 1, 72, 1, 73, 1, 73, 1, 73, 1, 73, 1, 73, 1, 73, 1, 73, 1, 74, 1, 74, 1,
74, 1, 74, 1, 74, 1, 74, 1, 75, 1, 75, 1, 75, 1, 75, 1, 75, 1, 75, 1, 75, 1, 75, 1, 75, 1,
75, 1, 75, 1, 75, 1, 76, 1, 76, 1, 76, 1, 76, 1, 76, 1, 76, 1, 76, 1, 76, 1, 76, 1, 76, 1,
77, 1, 77, 1, 77, 1, 77, 1, 78, 1, 78, 1, 78, 1, 78, 1, 78, 1, 78, 1, 78, 1, 79, 1, 79, 1,
79, 1, 79, 1, 79, 1, 79, 1, 79, 1, 79, 1, 79, 1, 79, 1, 80, 1, 80, 1, 80, 1, 80, 1, 80, 1,
80, 1, 80, 1, 80, 1, 81, 1, 81, 1, 81, 1, 81, 1, 81, 1, 82, 1, 82, 1, 82, 1, 82, 1, 82, 1,
83, 1, 83, 1, 83, 1, 83, 1, 83, 1, 83, 1, 83, 1, 83, 1, 83, 1, 84, 1, 84, 1, 84, 1, 84, 1,
84, 1, 84, 1, 84, 1, 84, 1, 84, 1, 84, 1, 85, 1, 85, 1, 85, 1, 85, 1, 85, 1, 85, 1, 86, 1,
86, 1, 86, 1, 86, 1, 86, 1, 86, 1, 87, 1, 87, 1, 87, 1, 87, 1, 87, 1, 87, 1, 87, 1, 87, 1,
87, 1, 88, 1, 88, 1, 88, 1, 88, 1, 88, 1, 89, 1, 89, 1, 89, 1, 89, 1, 89, 1, 89, 1, 89, 1,
90, 1, 90, 1, 90, 1, 90, 1, 90, 1, 91, 1, 91, 1, 91, 1, 91, 1, 91, 1, 91, 1, 92, 1, 92, 1,
92, 1, 93, 1, 93, 1, 93, 1, 94, 1, 94, 1, 94, 1, 94, 1, 94, 1, 94, 1, 94, 1, 94, 1, 94, 1,
94, 1, 95, 1, 95, 1, 95, 1, 95, 1, 95, 1, 95, 1, 95, 1, 95, 1, 95, 1, 95, 1, 95, 1, 95, 1,
96, 1, 96, 1, 96, 1, 96, 1, 96, 1, 96, 1, 97, 1, 97, 1, 97, 1, 97, 1, 97, 1, 97, 1, 97, 1,
98, 1, 98, 1, 98, 1, 98, 1, 98, 1, 98, 1, 98, 1, 99, 1, 99, 1, 99, 1, 99, 1, 99, 1, 99, 1,
99, 1, 99, 1, 99, 1, 99, 1, 100, 1, 100, 1, 100, 1, 100, 1, 100, 1, 100, 1, 100, 1, 100,
1, 100, 1, 101, 1, 101, 1, 101, 1, 101, 1, 101, 1, 101, 1, 101, 1, 101, 1, 101, 1, 101,
1, 101, 1, 101, 1, 101, 1, 102, 1, 102, 1, 102, 1, 102, 1, 102, 1, 103, 1, 103, 1, 103,
1, 103, 1, 103, 1, 103, 1, 103, 1, 103, 1, 104, 1, 104, 1, 104, 1, 104, 1, 104, 1, 104,
1, 104, 1, 104, 1, 105, 1, 105, 1, 105, 1, 105, 1, 105, 1, 105, 1, 106, 1, 106, 1, 106,
1, 106, 1, 106, 1, 106, 1, 106, 1, 106, 1, 106, 1, 106, 1, 106, 1, 107, 1, 107, 1, 107,
1, 108, 1, 108, 1, 108, 1, 108, 1, 108, 1, 109, 1, 109, 1, 109, 1, 109, 1, 110, 1, 110,
1, 110, 1, 110, 1, 110, 1, 111, 1, 111, 1, 111, 1, 111, 1, 111, 1, 112, 1, 112, 1, 112,
1, 112, 1, 112, 1, 112, 1, 112, 1, 112, 1, 113, 1, 113, 1, 113, 1, 113, 1, 113, 1, 114,
1, 114, 1, 114, 1, 114, 1, 114, 1, 115, 1, 115, 1, 115, 1, 115, 1, 115, 1, 115, 1, 116,
1, 116, 1, 116, 1, 116, 1, 116, 1, 116, 1, 117, 1, 117, 1, 117, 1, 117, 1, 117, 1, 118,
1, 118, 1, 118, 1, 118, 1, 118, 1, 118, 1, 118, 1, 118, 1, 118, 1, 118, 1, 119, 1, 119,
1, 119, 1, 119, 1, 119, 1, 119, 1, 119, 1, 119, 1, 119, 1, 119, 1, 119, 1, 119, 1, 119,
1, 119, 1, 119, 1, 120, 1, 120, 1, 120, 1, 120, 1, 120, 1, 120, 1, 120, 1, 120, 1, 120,
1, 121, 1, 121, 1, 121, 1, 121, 1, 121, 1, 121, 1, 121, 1, 122, 1, 122, 1, 122, 1, 122,
1, 122, 1, 122, 1, 122, 1, 122, 1, 123, 1, 123, 1, 123, 1, 123, 1, 123, 1, 123, 1, 124,
1, 124, 1, 124, 1, 124, 1, 124, 1, 124, 1, 124, 1, 125, 1, 125, 1, 125, 1, 125, 1, 125,
1, 125, 1, 125, 1, 125, 1, 125, 1, 126, 1, 126, 1, 126, 1, 126, 1, 127, 1, 127, 1, 127,
1, 127, 1, 128, 1, 128, 1, 128, 1, 128, 1, 128, 1, 129, 1, 129, 1, 129, 1, 129, 1, 129,
1, 130, 1, 130, 1, 130, 1, 130, 1, 130, 1, 130, 1, 130, 1, 130, 1, 130, 1, 130, 1, 131,
1, 131, 1, 131, 1, 131, 1, 132, 1, 132, 1, 132, 1, 132, 1, 132, 1, 133, 1, 133, 1, 133,
1, 133, 1, 133, 1, 133, 1, 134, 1, 134, 1, 134, 1, 134, 1, 134, 1, 134, 1, 134, 1, 135,
1, 135, 1, 135, 1, 136, 1, 136, 1, 136, 1, 136, 1, 136, 1, 136, 1, 136, 1, 137, 1, 137,
1, 137, 1, 138, 1, 138, 1, 138, 1, 138, 1, 138, 1, 138, 1, 139, 1, 139, 1, 139, 1, 139,
1, 139, 1, 139, 1, 139, 1, 139, 1, 139, 1, 139, 1, 139, 1, 140, 1, 140, 1, 140, 1, 140,
1, 140, 1, 140, 1, 141, 1, 141, 1, 141, 1, 141, 1, 141, 1, 141, 1, 142, 1, 142, 1, 142,
1, 142, 1, 142, 1, 143, 1, 143, 1, 143, 1, 143, 1, 143, 1, 143, 1, 143, 1, 143, 1, 143,
1, 143, 1, 144, 1, 144, 1, 144, 1, 144, 1, 144, 1, 144, 1, 144, 1, 144, 1, 144, 1, 144,
1, 145, 1, 145, 1, 145, 1, 145, 1, 145, 1, 145, 1, 145, 1, 145, 1, 145, 1, 145, 1, 145,
1, 146, 1, 146, 1, 146, 1, 146, 1, 146, 1, 146, 1, 146, 1, 146, 1, 147, 1, 147, 1, 147,
1, 147, 1, 147, 1, 147, 1, 147, 1, 147, 1, 147, 1, 148, 1, 148, 1, 148, 1, 148, 1, 148,
1, 148, 1, 148, 1, 148, 1, 148, 1, 148, 1, 149, 1, 149, 1, 149, 1, 149, 1, 149, 1, 149,
1, 149, 1, 149, 1, 150, 1, 150, 1, 150, 1, 150, 1, 150, 1, 150, 1, 150, 1, 150, 1, 150,
1, 150, 1, 150, 1, 150, 1, 151, 1, 151, 1, 151, 1, 151, 1, 151, 1, 151, 1, 151, 1, 151,
1, 151, 1, 151, 1, 151, 1, 152, 1, 152, 1, 152, 1, 152, 1, 152, 1, 152, 1, 152, 1, 152,
1, 152, 1, 152, 1, 152, 1, 153, 1, 153, 1, 153, 1, 153, 1, 153, 1, 153, 1, 154, 1, 154,
1, 154, 1, 154, 1, 154, 1, 154, 1, 154, 1, 154, 1, 155, 1, 155, 1, 155, 1, 155, 1, 155,
1, 155, 1, 155, 1, 156, 1, 156, 1, 156, 1, 156, 1, 156, 1, 156, 1, 156, 1, 156, 1, 156,
1, 156, 1, 156, 1, 157, 1, 157, 1, 157, 1, 157, 1, 157, 1, 157, 1, 157, 1, 157, 1, 158,
1, 158, 1, 158, 1, 158, 1, 158, 1, 158, 1, 158, 1, 158, 1, 158, 1, 159, 1, 159, 1, 159,
1, 159, 1, 159, 1, 159, 1, 159, 1, 159, 1, 160, 1, 160, 1, 160, 1, 160, 1, 160, 1, 160,
1, 160, 1, 161, 1, 161, 1, 161, 1, 161, 1, 161, 1, 161, 1, 161, 1, 161, 1, 162, 1, 162,
1, 162, 1, 162, 1, 162, 1, 162, 1, 162, 1, 163, 1, 163, 1, 163, 1, 163, 1, 163, 1, 163,
1, 164, 1, 164, 1, 164, 1, 164, 1, 164, 1, 164, 1, 165, 1, 165, 1, 165, 1, 165, 1, 165,
1, 166, 1, 166, 1, 166, 1, 166, 1, 166, 1, 166, 1, 167, 1, 167, 1, 167, 1, 167, 1, 168,
1, 168, 1, 168, 1, 168, 1, 168, 1, 169, 1, 169, 1, 169, 1, 169, 1, 169, 1, 169, 1, 169,
1, 170, 1, 170, 1, 170, 1, 170, 1, 170, 1, 170, 1, 170, 1, 170, 1, 171, 1, 171, 1, 171,
1, 171, 1, 171, 1, 171, 1, 171, 1, 172, 1, 172, 1, 172, 1, 172, 1, 172, 1, 172, 1, 172,
1, 172, 1, 173, 1, 173, 1, 173, 1, 173, 1, 173, 1, 173, 1, 173, 1, 174, 1, 174, 1, 174,
1, 174, 1, 174, 1, 174, 1, 174, 1, 174, 1, 174, 1, 174, 1, 174, 1, 174, 1, 174, 1, 174,
1, 174, 1, 174, 1, 175, 1, 175, 1, 175, 1, 175, 1, 176, 1, 176, 1, 176, 1, 176, 1, 176,
1, 177, 1, 177, 1, 177, 1, 177, 1, 177, 1, 177, 1, 177, 1, 178, 1, 178, 1, 178, 1, 178,
1, 178, 1, 179, 1, 179, 1, 179, 1, 179, 1, 179, 1, 179, 1, 179, 1, 179, 1, 179, 1, 180,
1, 180, 1, 180, 1, 180, 1, 180, 1, 181, 1, 181, 1, 181, 1, 181, 1, 181, 1, 181, 1, 182,
1, 182, 1, 182, 1, 182, 1, 182, 1, 182, 1, 182, 1, 182, 1, 182, 1, 182, 1, 182, 1, 182,
1, 182, 1, 182, 1, 183, 1, 183, 1, 183, 1, 183, 1, 183, 1, 183, 1, 183, 1, 183, 1, 183,
1, 183, 1, 184, 1, 184, 1, 184, 1, 184, 1, 184, 1, 184, 1, 184, 1, 185, 1, 185, 1, 185,
1, 185, 1, 185, 1, 185, 1, 185, 1, 186, 1, 186, 1, 186, 1, 186, 1, 186, 1, 186, 1, 186,
1, 186, 1, 186, 1, 186, 1, 186, 1, 186, 1, 186, 1, 187, 1, 187, 1, 187, 1, 187, 1, 187,
1, 187, 1, 188, 1, 188, 1, 188, 1, 188, 1, 188, 1, 188, 1, 188, 1, 189, 1, 189, 1, 189,
1, 189, 1, 189, 1, 189, 1, 189, 1, 189, 1, 189, 1, 189, 1, 189, 1, 189, 1, 190, 1, 190,
1, 190, 1, 190, 1, 190, 1, 190, 1, 190, 1, 190, 1, 190, 1, 190, 1, 190, 1, 190, 1, 191,
1, 191, 1, 191, 1, 191, 1, 191, 1, 192, 1, 192, 1, 192, 1, 193, 1, 193, 1, 193, 1, 193,
1, 193, 1, 194, 1, 194, 1, 194, 1, 194, 1, 194, 1, 194, 1, 194, 1, 194, 1, 194, 1, 195,
1, 195, 1, 195, 1, 195, 1, 195, 1, 195, 1, 195, 1, 195, 1, 195, 1, 196, 1, 196, 1, 196,
1, 196, 1, 196, 1, 196, 1, 196, 1, 196, 1, 196, 1, 197, 1, 197, 1, 197, 1, 197, 1, 197,
1, 197, 1, 197, 1, 197, 1, 198, 1, 198, 1, 198, 1, 198, 1, 198, 1, 198, 1, 198, 1, 198,
1, 198, 1, 198, 1, 199, 1, 199, 1, 199, 1, 199, 1, 199, 1, 199, 1, 200, 1, 200, 1, 200,
1, 200, 1, 200, 1, 200, 1, 200, 1, 201, 1, 201, 1, 201, 1, 201, 1, 201, 1, 201, 1, 202,
1, 202, 1, 202, 1, 202, 1, 203, 1, 203, 1, 203, 1, 203, 1, 203, 1, 204, 1, 204, 1, 204,
1, 204, 1, 204, 1, 204, 1, 205, 1, 205, 1, 205, 1, 205, 1, 205, 1, 205, 1, 205, 1, 205,
1, 205, 1, 205, 1, 206, 1, 206, 1, 206, 1, 206, 1, 206, 1, 206, 1, 206, 1, 207, 1, 207,
1, 207, 1, 207, 1, 207, 1, 207, 1, 207, 1, 207, 1, 208, 1, 208, 1, 208, 1, 208, 1, 209,
1, 209, 1, 209, 1, 209, 1, 209, 1, 209, 1, 210, 1, 210, 1, 210, 1, 210, 1, 210, 1, 210,
1, 210, 1, 211, 1, 211, 1, 211, 1, 211, 1, 211, 1, 212, 1, 212, 1, 212, 1, 212, 1, 212,
1, 212, 1, 213, 1, 213, 1, 213, 1, 213, 1, 213, 1, 214, 1, 214, 1, 214, 1, 214, 1, 214,
1, 214, 1, 215, 1, 215, 1, 215, 1, 215, 1, 215, 1, 216, 1, 216, 1, 216, 1, 216, 1, 216,
1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 218, 1, 218, 1, 218, 1, 218, 1, 218,
1, 218, 1, 218, 1, 218, 1, 218, 1, 219, 1, 219, 1, 219, 1, 219, 1, 220, 1, 220, 1, 220,
1, 220, 1, 220, 1, 221, 1, 221, 1, 221, 1, 221, 1, 221, 1, 221, 1, 221, 1, 221, 1, 221,
1, 221, 1, 221, 1, 221, 1, 221, 1, 222, 1, 222, 1, 222, 1, 222, 1, 222, 1, 222, 1, 222,
1, 223, 1, 223, 1, 223, 1, 223, 1, 223, 1, 223, 1, 223, 1, 223, 1, 223, 1, 223, 1, 223,
1, 224, 1, 224, 1, 224, 1, 224, 1, 224, 1, 224, 1, 224, 1, 224, 1, 224, 1, 224, 1, 224,
1, 225, 1, 225, 1, 225, 1, 225, 1, 225, 1, 226, 1, 226, 1, 226, 1, 226, 1, 226, 1, 226,
1, 226, 1, 227, 1, 227, 1, 227, 1, 227, 1, 227, 1, 227, 1, 227, 1, 228, 1, 228, 1, 228,
1, 228, 1, 228, 1, 228, 1, 228, 1, 228, 1, 229, 1, 229, 1, 229, 1, 229, 1, 229, 1, 230,
1, 230, 1, 230, 1, 230, 1, 230, 1, 231, 1, 231, 1, 231, 1, 231, 1, 231, 1, 231, 1, 231,
1, 231, 1, 232, 1, 232, 1, 232, 1, 232, 1, 232, 1, 232, 1, 232, 1, 233, 1, 233, 1, 233,
1, 233, 1, 234, 1, 234, 1, 234, 1, 234, 1, 235, 1, 235, 1, 235, 1, 235, 1, 235, 1, 236,
1, 236, 1, 236, 1, 236, 1, 236, 1, 236, 1, 236, 1, 236, 1, 236, 1, 237, 1, 237, 1, 237,
1, 237, 1, 237, 1, 237, 1, 238, 1, 238, 1, 238, 1, 238, 1, 238, 1, 238, 1, 238, 1, 239,
1, 239, 1, 239, 1, 239, 1, 239, 1, 239, 1, 239, 1, 240, 1, 240, 1, 240, 1, 240, 1, 240,
1, 240, 1, 240, 1, 240, 1, 240, 1, 240, 1, 241, 1, 241, 1, 241, 1, 241, 1, 241, 1, 241,
1, 241, 1, 241, 1, 242, 1, 242, 1, 242, 1, 242, 1, 242, 1, 242, 1, 242, 1, 242, 1, 243,
1, 243, 1, 243, 1, 243, 1, 243, 1, 243, 1, 243, 1, 243, 1, 244, 1, 244, 1, 244, 1, 244,
1, 244, 1, 244, 1, 244, 1, 244, 1, 244, 1, 245, 1, 245, 1, 245, 1, 245, 1, 245, 1, 245,
1, 245, 1, 245, 1, 245, 1, 245, 1, 245, 1, 246, 1, 246, 1, 246, 1, 246, 1, 246, 1, 246,
1, 246, 1, 246, 1, 246, 1, 246, 1, 247, 1, 247, 1, 247, 1, 247, 1, 247, 1, 247, 1, 247,
1, 247, 1, 247, 1, 247, 1, 248, 1, 248, 1, 249, 1, 249, 1, 249, 1, 249, 3, 249, 2433,
8, 249, 1, 250, 1, 250, 1, 251, 1, 251, 1, 251, 1, 252, 1, 252, 1, 253, 1, 253, 1, 253,
1, 254, 1, 254, 1, 255, 1, 255, 1, 256, 1, 256, 1, 257, 1, 257, 1, 258, 1, 258, 1, 259,
1, 259, 1, 259, 1, 260, 1, 260, 1, 261, 1, 261, 1, 262, 1, 262, 1, 263, 1, 263, 1, 264,
1, 264, 1, 265, 1, 265, 1, 266, 1, 266, 1, 267, 1, 267, 1, 268, 1, 268, 1, 269, 1, 269,
1, 270, 1, 270, 1, 271, 1, 271, 1, 272, 1, 272, 1, 272, 1, 273, 1, 273, 1, 273, 1, 273,
5, 273, 2489, 8, 273, 10, 273, 12, 273, 2492, 9, 273, 1, 273, 1, 273, 1, 273, 1, 273,
1, 273, 5, 273, 2499, 8, 273, 10, 273, 12, 273, 2502, 9, 273, 1, 273, 3, 273, 2505,
8, 273, 1, 274, 1, 274, 1, 274, 1, 274, 1, 274, 1, 274, 1, 274, 5, 274, 2514, 8, 274,
10, 274, 12, 274, 2517, 9, 274, 1, 274, 1, 274, 1, 275, 1, 275, 1, 275, 1, 275, 5, 275,
2525, 8, 275, 10, 275, 12, 275, 2528, 9, 275, 1, 275, 1, 275, 1, 276, 4, 276, 2533,
8, 276, 11, 276, 12, 276, 2534, 1, 277, 4, 277, 2538, 8, 277, 11, 277, 12, 277, 2539,
1, 277, 1, 277, 5, 277, 2544, 8, 277, 10, 277, 12, 277, 2547, 9, 277, 1, 277, 1, 277,
4, 277, 2551, 8, 277, 11, 277, 12, 277, 2552, 3, 277, 2555, 8, 277, 1, 278, 4, 278,
2558, 8, 278, 11, 278, 12, 278, 2559, 1, 278, 1, 278, 5, 278, 2564, 8, 278, 10, 278,
12, 278, 2567, 9, 278, 3, 278, 2569, 8, 278, 1, 278, 1, 278, 1, 278, 1, 278, 4, 278,
2575, 8, 278, 11, 278, 12, 278, 2576, 1, 278, 1, 278, 3, 278, 2581, 8, 278, 1, 279,
1, 279, 3, 279, 2585, 8, 279, 1, 279, 1, 279, 1, 279, 5, 279, 2590, 8, 279, 10, 279,
12, 279, 2593, 9, 279, 1, 280, 1, 280, 1, 280, 1, 280, 4, 280, 2599, 8, 280, 11, 280,
12, 280, 2600, 1, 281, 1, 281, 1, 281, 1, 281, 5, 281, 2607, 8, 281, 10, 281, 12, 281,
2610, 9, 281, 1, 281, 1, 281, 1, 282, 1, 282, 1, 282, 1, 282, 5, 282, 2618, 8, 282,
10, 282, 12, 282, 2621, 9, 282, 1, 282, 1, 282, 1, 283, 1, 283, 1, 283, 1, 283, 1, 283,
1, 283, 1, 283, 1, 283, 1, 283, 1, 283, 1, 283, 1, 283, 1, 283, 1, 283, 1, 283, 1, 283,
1, 283, 1, 283, 1, 283, 1, 283, 1, 283, 1, 283, 1, 283, 1, 284, 1, 284, 1, 284, 1, 284,
1, 284, 1, 284, 1, 284, 1, 284, 1, 284, 1, 284, 1, 284, 1, 284, 1, 284, 1, 284, 1, 284,
1, 284, 1, 284, 1, 284, 1, 284, 1, 284, 1, 284, 1, 284, 1, 284, 1, 284, 1, 284, 1, 284,
1, 284, 1, 284, 1, 285, 1, 285, 1, 285, 1, 285, 1, 285, 1, 285, 1, 285, 1, 285, 1, 285,
1, 285, 1, 285, 1, 285, 1, 285, 1, 285, 1, 285, 1, 285, 1, 285, 1, 285, 1, 286, 1, 286,
3, 286, 2696, 8, 286, 1, 286, 4, 286, 2699, 8, 286, 11, 286, 12, 286, 2700, 1, 287,
1, 287, 1, 288, 1, 288, 1, 289, 1, 289, 1, 289, 1, 289, 5, 289, 2711, 8, 289, 10, 289,
12, 289, 2714, 9, 289, 1, 289, 3, 289, 2717, 8, 289, 1, 289, 3, 289, 2720, 8, 289,
1, 289, 1, 289, 1, 290, 1, 290, 1, 290, 1, 290, 5, 290, 2728, 8, 290, 10, 290, 12, 290,
2731, 9, 290, 1, 290, 1, 290, 1, 290, 1, 290, 1, 290, 1, 291, 1, 291, 1, 291, 1, 291,
1, 2729, 0, 292, 1, 1, 3, 2, 5, 3, 7, 4, 9, 5, 11, 6, 13, 7, 15, 8, 17, 9, 19, 10, 21, 11,
23, 12, 25, 13, 27, 14, 29, 15, 31, 16, 33, 17, 35, 18, 37, 19, 39, 20, 41, 21, 43, 22,
45, 23, 47, 24, 49, 25, 51, 26, 53, 27, 55, 28, 57, 29, 59, 30, 61, 31, 63, 32, 65, 33,
67, 34, 69, 35, 71, 36, 73, 37, 75, 38, 77, 39, 79, 40, 81, 41, 83, 42, 85, 43, 87, 44,
89, 45, 91, 46, 93, 47, 95, 48, 97, 49, 99, 50, 101, 51, 103, 52, 105, 53, 107, 54,
109, 55, 111, 56, 113, 57, 115, 58, 117, 59, 119, 60, 121, 61, 123, 62, 125, 63, 127,
64, 129, 65, 131, 66, 133, 67, 135, 68, 137, 69, 139, 70, 141, 71, 143, 72, 145, 73,
147, 74, 149, 75, 151, 76, 153, 77, 155, 78, 157, 79, 159, 80, 161, 81, 163, 82, 165,
83, 167, 84, 169, 85, 171, 86, 173, 87, 175, 88, 177, 89, 179, 90, 181, 91, 183, 92,
185, 93, 187, 94, 189, 95, 191, 96, 193, 97, 195, 98, 197, 99, 199, 100, 201, 101,
203, 102, 205, 103, 207, 104, 209, 105, 211, 106, 213, 107, 215, 108, 217, 109,
219, 110, 221, 111, 223, 112, 225, 113, 227, 114, 229, 115, 231, 116, 233, 117,
235, 118, 237, 119, 239, 120, 241, 121, 243, 122, 245, 123, 247, 124, 249, 125,
251, 126, 253, 127, 255, 128, 257, 129, 259, 130, 261, 131, 263, 132, 265, 133,
267, 134, 269, 135, 271, 136, 273, 137, 275, 138, 277, 139, 279, 140, 281, 141,
283, 142, 285, 143, 287, 144, 289, 145, 291, 146, 293, 147, 295, 148, 297, 149,
299, 150, 301, 151, 303, 152, 305, 153, 307, 154, 309, 155, 311, 156, 313, 157,
315, 158, 317, 159, 319, 160, 321, 161, 323, 162, 325, 163, 327, 164, 329, 165,
331, 166, 333, 167, 335, 168, 337, 169, 339, 170, 341, 171, 343, 172, 345, 173,
347, 174, 349, 175, 351, 176, 353, 177, 355, 178, 357, 179, 359, 180, 361, 181,
363, 182, 365, 183, 367, 184, 369, 185, 371, 186, 373, 187, 375, 188, 377, 189,
379, 190, 381, 191, 383, 192, 385, 193, 387, 194, 389, 195, 391, 196, 393, 197,
395, 198, 397, 199, 399, 200, 401, 201, 403, 202, 405, 203, 407, 204, 409, 205,
411, 206, 413, 207, 415, 208, 417, 209, 419, 210, 421, 211, 423, 212, 425, 213,
427, 214, 429, 215, 431, 216, 433, 217, 435, 218, 437, 219, 439, 220, 441, 221,
443, 222, 445, 223, 447, 224, 449, 225, 451, 226, 453, 227, 455, 228, 457, 229,
459, 230, 461, 231, 463, 232, 465, 233, 467, 234, 469, 235, 471, 236, 473, 237,
475, 238, 477, 239, 479, 240, 481, 241, 483, 242, 485, 243, 487, 244, 489, 245,
491, 246, 493, 247, 495, 248, 497, 249, 499, 250, 501, 251, 503, 252, 505, 253,
507, 254, 509, 255, 511, 256, 513, 257, 515, 258, 517, 259, 519, 260, 521, 261,
523, 262, 525, 263, 527, 264, 529, 265, 531, 266, 533, 267, 535, 268, 537, 269,
539, 270, 541, 271, 543, 272, 545, 273, 547, 274, 549, 275, 551, 276, 553, 277,
555, 278, 557, 279, 559, 280, 561, 281, 563, 282, 565, 283, 567, 284, 569, 285,
571, 286, 573, 0, 575, 0, 577, 0, 579, 287, 581, 288, 583, 289, 1, 0, 35, 2, 0, 65,
65, 97, 97, 2, 0, 68, 68, 100, 100, 2, 0, 76, 76, 108, 108, 2, 0, 78, 78, 110, 110, 2,
0, 89, 89, 121, 121, 2, 0, 84, 84, 116, 116, 2, 0, 73, 73, 105, 105, 2, 0, 67, 67, 99,
99, 2, 0, 69, 69, 101, 101, 2, 0, 82, 82, 114, 114, 2, 0, 83, 83, 115, 115, 2, 0, 71,
71, 103, 103, 2, 0, 85, 85, 117, 117, 2, 0, 72, 72, 104, 104, 2, 0, 79, 79, 111, 111,
2, 0, 90, 90, 122, 122, 2, 0, 66, 66, 98, 98, 2, 0, 87, 87, 119, 119, 2, 0, 75, 75, 107,
107, 2, 0, 80, 80, 112, 112, 2, 0, 70, 70, 102, 102, 2, 0, 88, 88, 120, 120, 2, 0, 77,
77, 109, 109, 2, 0, 86, 86, 118, 118, 2, 0, 74, 74, 106, 106, 2, 0, 81, 81, 113, 113,
1, 0, 39, 39, 1, 0, 34, 34, 3, 0, 58, 58, 64, 64, 95, 95, 1, 0, 96, 96, 2, 0, 43, 43, 45,
45, 1, 0, 48, 57, 2, 0, 65, 90, 97, 122, 2, 0, 10, 10, 13, 13, 3, 0, 9, 10, 13, 13, 32,
32, 2773, 0, 1, 1, 0, 0, 0, 0, 3, 1, 0, 0, 0, 0, 5, 1, 0, 0, 0, 0, 7, 1, 0, 0, 0, 0, 9, 1, 0,
0, 0, 0, 11, 1, 0, 0, 0, 0, 13, 1, 0, 0, 0, 0, 15, 1, 0, 0, 0, 0, 17, 1, 0, 0, 0, 0, 19, 1, 0,
0, 0, 0, 21, 1, 0, 0, 0, 0, 23, 1, 0, 0, 0, 0, 25, 1, 0, 0, 0, 0, 27, 1, 0, 0, 0, 0, 29, 1, 0,
0, 0, 0, 31, 1, 0, 0, 0, 0, 33, 1, 0, 0, 0, 0, 35, 1, 0, 0, 0, 0, 37, 1, 0, 0, 0, 0, 39, 1, 0,
0, 0, 0, 41, 1, 0, 0, 0, 0, 43, 1, 0, 0, 0, 0, 45, 1, 0, 0, 0, 0, 47, 1, 0, 0, 0, 0, 49, 1, 0,
0, 0, 0, 51, 1, 0, 0, 0, 0, 53, 1, 0, 0, 0, 0, 55, 1, 0, 0, 0, 0, 57, 1, 0, 0, 0, 0, 59, 1, 0,
0, 0, 0, 61, 1, 0, 0, 0, 0, 63, 1, 0, 0, 0, 0, 65, 1, 0, 0, 0, 0, 67, 1, 0, 0, 0, 0, 69, 1, 0,
0, 0, 0, 71, 1, 0, 0, 0, 0, 73, 1, 0, 0, 0, 0, 75, 1, 0, 0, 0, 0, 77, 1, 0, 0, 0, 0, 79, 1, 0,
0, 0, 0, 81, 1, 0, 0, 0, 0, 83, 1, 0, 0, 0, 0, 85, 1, 0, 0, 0, 0, 87, 1, 0, 0, 0, 0, 89, 1, 0,
0, 0, 0, 91, 1, 0, 0, 0, 0, 93, 1, 0, 0, 0, 0, 95, 1, 0, 0, 0, 0, 97, 1, 0, 0, 0, 0, 99, 1, 0,
0, 0, 0, 101, 1, 0, 0, 0, 0, 103, 1, 0, 0, 0, 0, 105, 1, 0, 0, 0, 0, 107, 1, 0, 0, 0, 0, 109,
1, 0, 0, 0, 0, 111, 1, 0, 0, 0, 0, 113, 1, 0, 0, 0, 0, 115, 1, 0, 0, 0, 0, 117, 1, 0, 0, 0,
0, 119, 1, 0, 0, 0, 0, 121, 1, 0, 0, 0, 0, 123, 1, 0, 0, 0, 0, 125, 1, 0, 0, 0, 0, 127, 1,
0, 0, 0, 0, 129, 1, 0, 0, 0, 0, 131, 1, 0, 0, 0, 0, 133, 1, 0, 0, 0, 0, 135, 1, 0, 0, 0, 0,
137, 1, 0, 0, 0, 0, 139, 1, 0, 0, 0, 0, 141, 1, 0, 0, 0, 0, 143, 1, 0, 0, 0, 0, 145, 1, 0,
0, 0, 0, 147, 1, 0, 0, 0, 0, 149, 1, 0, 0, 0, 0, 151, 1, 0, 0, 0, 0, 153, 1, 0, 0, 0, 0, 155,
1, 0, 0, 0, 0, 157, 1, 0, 0, 0, 0, 159, 1, 0, 0, 0, 0, 161, 1, 0, 0, 0, 0, 163, 1, 0, 0, 0,
0, 165, 1, 0, 0, 0, 0, 167, 1, 0, 0, 0, 0, 169, 1, 0, 0, 0, 0, 171, 1, 0, 0, 0, 0, 173, 1,
0, 0, 0, 0,