dt-sql-parser
Version:
SQL Parsers for BigData, built with antlr4
828 lines • 132 kB
JavaScript
// Generated from dt-sql-parser/src/grammar/trino/TrinoSql.g4 by ANTLR 4.13.1
// @ts-nocheck
import * as antlr from "antlr4ng";
export class TrinoSqlLexer extends antlr.Lexer {
constructor(input) {
super(input);
this.interpreter = new antlr.LexerATNSimulator(this, TrinoSqlLexer._ATN, TrinoSqlLexer.decisionsToDFA, new antlr.PredictionContextCache());
}
get grammarFileName() { return "TrinoSql.g4"; }
get literalNames() { return TrinoSqlLexer.literalNames; }
get symbolicNames() { return TrinoSqlLexer.symbolicNames; }
get ruleNames() { return TrinoSqlLexer.ruleNames; }
get serializedATN() { return TrinoSqlLexer._serializedATN; }
get channelNames() { return TrinoSqlLexer.channelNames; }
get modeNames() { return TrinoSqlLexer.modeNames; }
static get _ATN() {
if (!TrinoSqlLexer.__ATN) {
TrinoSqlLexer.__ATN = new antlr.ATNDeserializer().deserialize(TrinoSqlLexer._serializedATN);
}
return TrinoSqlLexer.__ATN;
}
get vocabulary() {
return TrinoSqlLexer.vocabulary;
}
}
TrinoSqlLexer.T__0 = 1;
TrinoSqlLexer.T__1 = 2;
TrinoSqlLexer.T__2 = 3;
TrinoSqlLexer.T__3 = 4;
TrinoSqlLexer.T__4 = 5;
TrinoSqlLexer.T__5 = 6;
TrinoSqlLexer.T__6 = 7;
TrinoSqlLexer.T__7 = 8;
TrinoSqlLexer.T__8 = 9;
TrinoSqlLexer.T__9 = 10;
TrinoSqlLexer.T__10 = 11;
TrinoSqlLexer.T__11 = 12;
TrinoSqlLexer.T__12 = 13;
TrinoSqlLexer.T__13 = 14;
TrinoSqlLexer.T__14 = 15;
TrinoSqlLexer.T__15 = 16;
TrinoSqlLexer.T__16 = 17;
TrinoSqlLexer.KW_ABSENT = 18;
TrinoSqlLexer.KW_ADD = 19;
TrinoSqlLexer.KW_ADMIN = 20;
TrinoSqlLexer.KW_AFTER = 21;
TrinoSqlLexer.KW_ALL = 22;
TrinoSqlLexer.KW_ALTER = 23;
TrinoSqlLexer.KW_ANALYZE = 24;
TrinoSqlLexer.KW_AND = 25;
TrinoSqlLexer.KW_ANY = 26;
TrinoSqlLexer.KW_ARRAY = 27;
TrinoSqlLexer.KW_AS = 28;
TrinoSqlLexer.KW_ASC = 29;
TrinoSqlLexer.KW_AT = 30;
TrinoSqlLexer.KW_AUTHORIZATION = 31;
TrinoSqlLexer.KW_BEGIN = 32;
TrinoSqlLexer.KW_BERNOULLI = 33;
TrinoSqlLexer.KW_BETWEEN = 34;
TrinoSqlLexer.KW_BOTH = 35;
TrinoSqlLexer.KW_BY = 36;
TrinoSqlLexer.KW_CALL = 37;
TrinoSqlLexer.KW_CALLED = 38;
TrinoSqlLexer.KW_CASCADE = 39;
TrinoSqlLexer.KW_CASE = 40;
TrinoSqlLexer.KW_CAST = 41;
TrinoSqlLexer.KW_CATALOG = 42;
TrinoSqlLexer.KW_CATALOGS = 43;
TrinoSqlLexer.KW_COLUMN = 44;
TrinoSqlLexer.KW_COLUMNS = 45;
TrinoSqlLexer.KW_COMMENT = 46;
TrinoSqlLexer.KW_COMMIT = 47;
TrinoSqlLexer.KW_COMMITTED = 48;
TrinoSqlLexer.KW_CONDITIONAL = 49;
TrinoSqlLexer.KW_CONSTRAINT = 50;
TrinoSqlLexer.KW_COUNT = 51;
TrinoSqlLexer.KW_COPARTITION = 52;
TrinoSqlLexer.KW_CREATE = 53;
TrinoSqlLexer.KW_CROSS = 54;
TrinoSqlLexer.KW_CUBE = 55;
TrinoSqlLexer.KW_CURRENT = 56;
TrinoSqlLexer.KW_CURRENT_CATALOG = 57;
TrinoSqlLexer.KW_CURRENT_DATE = 58;
TrinoSqlLexer.KW_CURRENT_PATH = 59;
TrinoSqlLexer.KW_CURRENT_ROLE = 60;
TrinoSqlLexer.KW_CURRENT_SCHEMA = 61;
TrinoSqlLexer.KW_CURRENT_TIME = 62;
TrinoSqlLexer.KW_CURRENT_TIMESTAMP = 63;
TrinoSqlLexer.KW_CURRENT_USER = 64;
TrinoSqlLexer.KW_DATA = 65;
TrinoSqlLexer.KW_DATE = 66;
TrinoSqlLexer.KW_DAY = 67;
TrinoSqlLexer.KW_DEALLOCATE = 68;
TrinoSqlLexer.KW_DECLARE = 69;
TrinoSqlLexer.KW_DEFAULT = 70;
TrinoSqlLexer.KW_DEFINE = 71;
TrinoSqlLexer.KW_DEFINER = 72;
TrinoSqlLexer.KW_DELETE = 73;
TrinoSqlLexer.KW_DENY = 74;
TrinoSqlLexer.KW_DESC = 75;
TrinoSqlLexer.KW_DESCRIBE = 76;
TrinoSqlLexer.KW_DESCRIPTOR = 77;
TrinoSqlLexer.KW_DETERMINISTIC = 78;
TrinoSqlLexer.KW_DISTINCT = 79;
TrinoSqlLexer.KW_DISTRIBUTED = 80;
TrinoSqlLexer.KW_DO = 81;
TrinoSqlLexer.KW_DOUBLE = 82;
TrinoSqlLexer.KW_DROP = 83;
TrinoSqlLexer.KW_ELSE = 84;
TrinoSqlLexer.KW_EMPTY = 85;
TrinoSqlLexer.KW_ELSEIF = 86;
TrinoSqlLexer.KW_ENCODING = 87;
TrinoSqlLexer.KW_END = 88;
TrinoSqlLexer.KW_ERROR = 89;
TrinoSqlLexer.KW_ESCAPE = 90;
TrinoSqlLexer.KW_EXCEPT = 91;
TrinoSqlLexer.KW_EXCLUDING = 92;
TrinoSqlLexer.KW_EXECUTE = 93;
TrinoSqlLexer.KW_EXISTS = 94;
TrinoSqlLexer.KW_EXPLAIN = 95;
TrinoSqlLexer.KW_EXTRACT = 96;
TrinoSqlLexer.KW_FALSE = 97;
TrinoSqlLexer.KW_FETCH = 98;
TrinoSqlLexer.KW_FILTER = 99;
TrinoSqlLexer.KW_FINAL = 100;
TrinoSqlLexer.KW_FIRST = 101;
TrinoSqlLexer.KW_FOLLOWING = 102;
TrinoSqlLexer.KW_FOR = 103;
TrinoSqlLexer.KW_FORMAT = 104;
TrinoSqlLexer.KW_FROM = 105;
TrinoSqlLexer.KW_FULL = 106;
TrinoSqlLexer.KW_FUNCTION = 107;
TrinoSqlLexer.KW_FUNCTIONS = 108;
TrinoSqlLexer.KW_GRACE = 109;
TrinoSqlLexer.KW_GRANT = 110;
TrinoSqlLexer.KW_GRANTED = 111;
TrinoSqlLexer.KW_GRANTS = 112;
TrinoSqlLexer.KW_GRAPHVIZ = 113;
TrinoSqlLexer.KW_GROUP = 114;
TrinoSqlLexer.KW_GROUPING = 115;
TrinoSqlLexer.KW_GROUPS = 116;
TrinoSqlLexer.KW_HAVING = 117;
TrinoSqlLexer.KW_HOUR = 118;
TrinoSqlLexer.KW_IF = 119;
TrinoSqlLexer.KW_IGNORE = 120;
TrinoSqlLexer.KW_IMMEDIATE = 121;
TrinoSqlLexer.KW_IN = 122;
TrinoSqlLexer.KW_INCLUDING = 123;
TrinoSqlLexer.KW_INITIAL = 124;
TrinoSqlLexer.KW_INNER = 125;
TrinoSqlLexer.KW_INPUT = 126;
TrinoSqlLexer.KW_INSERT = 127;
TrinoSqlLexer.KW_INTERSECT = 128;
TrinoSqlLexer.KW_INTERVAL = 129;
TrinoSqlLexer.KW_INTO = 130;
TrinoSqlLexer.KW_INVOKER = 131;
TrinoSqlLexer.KW_IO = 132;
TrinoSqlLexer.KW_IS = 133;
TrinoSqlLexer.KW_ISOLATION = 134;
TrinoSqlLexer.KW_ITERATE = 135;
TrinoSqlLexer.KW_JOIN = 136;
TrinoSqlLexer.KW_JSON = 137;
TrinoSqlLexer.KW_JSON_ARRAY = 138;
TrinoSqlLexer.KW_JSON_EXISTS = 139;
TrinoSqlLexer.KW_JSON_OBJECT = 140;
TrinoSqlLexer.KW_JSON_QUERY = 141;
TrinoSqlLexer.KW_JSON_TABLE = 142;
TrinoSqlLexer.KW_JSON_VALUE = 143;
TrinoSqlLexer.KW_KEEP = 144;
TrinoSqlLexer.KW_KEY = 145;
TrinoSqlLexer.KW_KEYS = 146;
TrinoSqlLexer.KW_LANGUAGE = 147;
TrinoSqlLexer.KW_LAST = 148;
TrinoSqlLexer.KW_LATERAL = 149;
TrinoSqlLexer.KW_LEADING = 150;
TrinoSqlLexer.KW_LEAVE = 151;
TrinoSqlLexer.KW_LEFT = 152;
TrinoSqlLexer.KW_LEVEL = 153;
TrinoSqlLexer.KW_LIKE = 154;
TrinoSqlLexer.KW_LIMIT = 155;
TrinoSqlLexer.KW_LISTAGG = 156;
TrinoSqlLexer.KW_LOCAL = 157;
TrinoSqlLexer.KW_LOCALTIME = 158;
TrinoSqlLexer.KW_LOCALTIMESTAMP = 159;
TrinoSqlLexer.KW_LOGICAL = 160;
TrinoSqlLexer.KW_LOOP = 161;
TrinoSqlLexer.KW_MAP = 162;
TrinoSqlLexer.KW_MATCH = 163;
TrinoSqlLexer.KW_MATCHED = 164;
TrinoSqlLexer.KW_MATCHES = 165;
TrinoSqlLexer.KW_MATCH_RECOGNIZE = 166;
TrinoSqlLexer.KW_MATERIALIZED = 167;
TrinoSqlLexer.KW_MEASURES = 168;
TrinoSqlLexer.KW_MERGE = 169;
TrinoSqlLexer.KW_MINUTE = 170;
TrinoSqlLexer.KW_MONTH = 171;
TrinoSqlLexer.KW_NATURAL = 172;
TrinoSqlLexer.KW_NESTED = 173;
TrinoSqlLexer.KW_NEXT = 174;
TrinoSqlLexer.KW_NFC = 175;
TrinoSqlLexer.KW_NFD = 176;
TrinoSqlLexer.KW_NFKC = 177;
TrinoSqlLexer.KW_NFKD = 178;
TrinoSqlLexer.KW_NO = 179;
TrinoSqlLexer.KW_NONE = 180;
TrinoSqlLexer.KW_NORMALIZE = 181;
TrinoSqlLexer.KW_NOT = 182;
TrinoSqlLexer.KW_NULL = 183;
TrinoSqlLexer.KW_NULLIF = 184;
TrinoSqlLexer.KW_NULLS = 185;
TrinoSqlLexer.KW_OBJECT = 186;
TrinoSqlLexer.KW_OF = 187;
TrinoSqlLexer.KW_OFFSET = 188;
TrinoSqlLexer.KW_OMIT = 189;
TrinoSqlLexer.KW_ON = 190;
TrinoSqlLexer.KW_ONE = 191;
TrinoSqlLexer.KW_ONLY = 192;
TrinoSqlLexer.KW_OPTION = 193;
TrinoSqlLexer.KW_OR = 194;
TrinoSqlLexer.KW_ORDER = 195;
TrinoSqlLexer.KW_ORDINALITY = 196;
TrinoSqlLexer.KW_OUTER = 197;
TrinoSqlLexer.KW_OUTPUT = 198;
TrinoSqlLexer.KW_OVER = 199;
TrinoSqlLexer.KW_OVERFLOW = 200;
TrinoSqlLexer.KW_PARTITION = 201;
TrinoSqlLexer.KW_PARTITIONS = 202;
TrinoSqlLexer.KW_PASSING = 203;
TrinoSqlLexer.KW_PAST = 204;
TrinoSqlLexer.KW_PATH = 205;
TrinoSqlLexer.KW_PATTERN = 206;
TrinoSqlLexer.KW_PER = 207;
TrinoSqlLexer.KW_PERIOD = 208;
TrinoSqlLexer.KW_PERMUTE = 209;
TrinoSqlLexer.KW_PLAN = 210;
TrinoSqlLexer.KW_POSITION = 211;
TrinoSqlLexer.KW_PRECEDING = 212;
TrinoSqlLexer.KW_PRECISION = 213;
TrinoSqlLexer.KW_PREPARE = 214;
TrinoSqlLexer.KW_PRIVILEGES = 215;
TrinoSqlLexer.KW_PROPERTIES = 216;
TrinoSqlLexer.KW_PRUNE = 217;
TrinoSqlLexer.KW_QUOTES = 218;
TrinoSqlLexer.KW_RANGE = 219;
TrinoSqlLexer.KW_READ = 220;
TrinoSqlLexer.KW_RECURSIVE = 221;
TrinoSqlLexer.KW_REFRESH = 222;
TrinoSqlLexer.KW_RENAME = 223;
TrinoSqlLexer.KW_REPEAT = 224;
TrinoSqlLexer.KW_REPEATABLE = 225;
TrinoSqlLexer.KW_REPLACE = 226;
TrinoSqlLexer.KW_RESET = 227;
TrinoSqlLexer.KW_RESPECT = 228;
TrinoSqlLexer.KW_RESTRICT = 229;
TrinoSqlLexer.KW_RETURN = 230;
TrinoSqlLexer.KW_RETURNING = 231;
TrinoSqlLexer.KW_RETURNS = 232;
TrinoSqlLexer.KW_REVOKE = 233;
TrinoSqlLexer.KW_RIGHT = 234;
TrinoSqlLexer.KW_ROLE = 235;
TrinoSqlLexer.KW_ROLES = 236;
TrinoSqlLexer.KW_ROLLBACK = 237;
TrinoSqlLexer.KW_ROLLUP = 238;
TrinoSqlLexer.KW_ROW = 239;
TrinoSqlLexer.KW_ROWS = 240;
TrinoSqlLexer.KW_RUNNING = 241;
TrinoSqlLexer.KW_SCALAR = 242;
TrinoSqlLexer.KW_SCHEMA = 243;
TrinoSqlLexer.KW_SCHEMAS = 244;
TrinoSqlLexer.KW_SECOND = 245;
TrinoSqlLexer.KW_SECURITY = 246;
TrinoSqlLexer.KW_SEEK = 247;
TrinoSqlLexer.KW_SELECT = 248;
TrinoSqlLexer.KW_SERIALIZABLE = 249;
TrinoSqlLexer.KW_SESSION = 250;
TrinoSqlLexer.KW_SET = 251;
TrinoSqlLexer.KW_SETS = 252;
TrinoSqlLexer.KW_SHOW = 253;
TrinoSqlLexer.KW_SOME = 254;
TrinoSqlLexer.KW_START = 255;
TrinoSqlLexer.KW_STATS = 256;
TrinoSqlLexer.KW_SUBSET = 257;
TrinoSqlLexer.KW_SUBSTRING = 258;
TrinoSqlLexer.KW_SYSTEM = 259;
TrinoSqlLexer.KW_TABLE = 260;
TrinoSqlLexer.KW_TABLES = 261;
TrinoSqlLexer.KW_TABLESAMPLE = 262;
TrinoSqlLexer.KW_TEXT = 263;
TrinoSqlLexer.KW_TEXT_STRING = 264;
TrinoSqlLexer.KW_THEN = 265;
TrinoSqlLexer.KW_TIES = 266;
TrinoSqlLexer.KW_TIME = 267;
TrinoSqlLexer.KW_TIMESTAMP = 268;
TrinoSqlLexer.KW_TO = 269;
TrinoSqlLexer.KW_TRAILING = 270;
TrinoSqlLexer.KW_TRANSACTION = 271;
TrinoSqlLexer.KW_TRIM = 272;
TrinoSqlLexer.KW_TRUE = 273;
TrinoSqlLexer.KW_TRUNCATE = 274;
TrinoSqlLexer.KW_TRY_CAST = 275;
TrinoSqlLexer.KW_TYPE = 276;
TrinoSqlLexer.KW_UESCAPE = 277;
TrinoSqlLexer.KW_UNBOUNDED = 278;
TrinoSqlLexer.KW_UNCOMMITTED = 279;
TrinoSqlLexer.KW_UNCONDITIONAL = 280;
TrinoSqlLexer.KW_UNION = 281;
TrinoSqlLexer.KW_UNIQUE = 282;
TrinoSqlLexer.KW_UNKNOWN = 283;
TrinoSqlLexer.KW_UNMATCHED = 284;
TrinoSqlLexer.KW_UNNEST = 285;
TrinoSqlLexer.KW_UNTIL = 286;
TrinoSqlLexer.KW_UPDATE = 287;
TrinoSqlLexer.KW_USE = 288;
TrinoSqlLexer.KW_USER = 289;
TrinoSqlLexer.KW_USING = 290;
TrinoSqlLexer.KW_UTF16 = 291;
TrinoSqlLexer.KW_UTF32 = 292;
TrinoSqlLexer.KW_UTF8 = 293;
TrinoSqlLexer.KW_VALIDATE = 294;
TrinoSqlLexer.KW_VALUE = 295;
TrinoSqlLexer.KW_VALUES = 296;
TrinoSqlLexer.KW_VERBOSE = 297;
TrinoSqlLexer.KW_VERSION = 298;
TrinoSqlLexer.KW_VIEW = 299;
TrinoSqlLexer.KW_WHEN = 300;
TrinoSqlLexer.KW_WHERE = 301;
TrinoSqlLexer.KW_WHILE = 302;
TrinoSqlLexer.KW_WINDOW = 303;
TrinoSqlLexer.KW_WITH = 304;
TrinoSqlLexer.KW_WITHIN = 305;
TrinoSqlLexer.KW_WITHOUT = 306;
TrinoSqlLexer.KW_WORK = 307;
TrinoSqlLexer.KW_WRAPPER = 308;
TrinoSqlLexer.KW_WRITE = 309;
TrinoSqlLexer.KW_YEAR = 310;
TrinoSqlLexer.KW_ZONE = 311;
TrinoSqlLexer.EQ = 312;
TrinoSqlLexer.NEQ = 313;
TrinoSqlLexer.LT = 314;
TrinoSqlLexer.LTE = 315;
TrinoSqlLexer.GT = 316;
TrinoSqlLexer.GTE = 317;
TrinoSqlLexer.PLUS = 318;
TrinoSqlLexer.MINUS = 319;
TrinoSqlLexer.ASTERISK = 320;
TrinoSqlLexer.SLASH = 321;
TrinoSqlLexer.PERCENT = 322;
TrinoSqlLexer.CONCAT = 323;
TrinoSqlLexer.QUESTION_MARK = 324;
TrinoSqlLexer.SEMICOLON = 325;
TrinoSqlLexer.STRING = 326;
TrinoSqlLexer.UNICODE_STRING = 327;
TrinoSqlLexer.BINARY_LITERAL = 328;
TrinoSqlLexer.INTEGER_VALUE = 329;
TrinoSqlLexer.DECIMAL_VALUE = 330;
TrinoSqlLexer.DOUBLE_VALUE = 331;
TrinoSqlLexer.IDENTIFIER = 332;
TrinoSqlLexer.DIGIT_IDENTIFIER = 333;
TrinoSqlLexer.QUOTED_IDENTIFIER = 334;
TrinoSqlLexer.BACKQUOTED_IDENTIFIER = 335;
TrinoSqlLexer.LINE_COMMENT = 336;
TrinoSqlLexer.BRACKETED_COMMENT = 337;
TrinoSqlLexer.WHITE_SPACE = 338;
TrinoSqlLexer.UNRECOGNIZED = 339;
TrinoSqlLexer.channelNames = [
"DEFAULT_TOKEN_CHANNEL", "HIDDEN"
];
TrinoSqlLexer.literalNames = [
null, "'('", "')'", "','", "'.'", "'SKIP'", "'=>'", "'->'", "'['",
"']'", "':'", "'|'", "'^'", "'$'", "'{-'", "'-}'", "'{'", "'}'",
"'ABSENT'", "'ADD'", "'ADMIN'", "'AFTER'", "'ALL'", "'ALTER'", "'ANALYZE'",
"'AND'", "'ANY'", "'ARRAY'", "'AS'", "'ASC'", "'AT'", "'AUTHORIZATION'",
"'BEGIN'", "'BERNOULLI'", "'BETWEEN'", "'BOTH'", "'BY'", "'CALL'",
"'CALLED'", "'CASCADE'", "'CASE'", "'CAST'", "'CATALOG'", "'CATALOGS'",
"'COLUMN'", "'COLUMNS'", "'COMMENT'", "'COMMIT'", "'COMMITTED'",
"'CONDITIONAL'", "'CONSTRAINT'", "'COUNT'", "'COPARTITION'", "'CREATE'",
"'CROSS'", "'CUBE'", "'CURRENT'", "'CURRENT_CATALOG'", "'CURRENT_DATE'",
"'CURRENT_PATH'", "'CURRENT_ROLE'", "'CURRENT_SCHEMA'", "'CURRENT_TIME'",
"'CURRENT_TIMESTAMP'", "'CURRENT_USER'", "'DATA'", "'DATE'", "'DAY'",
"'DEALLOCATE'", "'DECLARE'", "'DEFAULT'", "'DEFINE'", "'DEFINER'",
"'DELETE'", "'DENY'", "'DESC'", "'DESCRIBE'", "'DESCRIPTOR'", "'DETERMINISTIC'",
"'DISTINCT'", "'DISTRIBUTED'", "'DO'", "'DOUBLE'", "'DROP'", "'ELSE'",
"'EMPTY'", "'ELSEIF'", "'ENCODING'", "'END'", "'ERROR'", "'ESCAPE'",
"'EXCEPT'", "'EXCLUDING'", "'EXECUTE'", "'EXISTS'", "'EXPLAIN'",
"'EXTRACT'", "'FALSE'", "'FETCH'", "'FILTER'", "'FINAL'", "'FIRST'",
"'FOLLOWING'", "'FOR'", "'FORMAT'", "'FROM'", "'FULL'", "'FUNCTION'",
"'FUNCTIONS'", "'GRACE'", "'GRANT'", "'GRANTED'", "'GRANTS'", "'GRAPHVIZ'",
"'GROUP'", "'GROUPING'", "'GROUPS'", "'HAVING'", "'HOUR'", "'IF'",
"'IGNORE'", "'IMMEDIATE'", "'IN'", "'INCLUDING'", "'INITIAL'", "'INNER'",
"'INPUT'", "'INSERT'", "'INTERSECT'", "'INTERVAL'", "'INTO'", "'INVOKER'",
"'IO'", "'IS'", "'ISOLATION'", "'ITERATE'", "'JOIN'", "'JSON'",
"'JSON_ARRAY'", "'JSON_EXISTS'", "'JSON_OBJECT'", "'JSON_QUERY'",
"'JSON_TABLE'", "'JSON_VALUE'", "'KEEP'", "'KEY'", "'KEYS'", "'LANGUAGE'",
"'LAST'", "'LATERAL'", "'LEADING'", "'LEAVE'", "'LEFT'", "'LEVEL'",
"'LIKE'", "'LIMIT'", "'LISTAGG'", "'LOCAL'", "'LOCALTIME'", "'LOCALTIMESTAMP'",
"'LOGICAL'", "'LOOP'", "'MAP'", "'MATCH'", "'MATCHED'", "'MATCHES'",
"'MATCH_RECOGNIZE'", "'MATERIALIZED'", "'MEASURES'", "'MERGE'",
"'MINUTE'", "'MONTH'", "'NATURAL'", "'NESTED'", "'NEXT'", "'NFC'",
"'NFD'", "'NFKC'", "'NFKD'", "'NO'", "'NONE'", "'NORMALIZE'", "'NOT'",
"'NULL'", "'NULLIF'", "'NULLS'", "'OBJECT'", "'OF'", "'OFFSET'",
"'OMIT'", "'ON'", "'ONE'", "'ONLY'", "'OPTION'", "'OR'", "'ORDER'",
"'ORDINALITY'", "'OUTER'", "'OUTPUT'", "'OVER'", "'OVERFLOW'", "'PARTITION'",
"'PARTITIONS'", "'PASSING'", "'PAST'", "'PATH'", "'PATTERN'", "'PER'",
"'PERIOD'", "'PERMUTE'", "'PLAN'", "'POSITION'", "'PRECEDING'",
"'PRECISION'", "'PREPARE'", "'PRIVILEGES'", "'PROPERTIES'", "'PRUNE'",
"'QUOTES'", "'RANGE'", "'READ'", "'RECURSIVE'", "'REFRESH'", "'RENAME'",
"'REPEAT'", "'REPEATABLE'", "'REPLACE'", "'RESET'", "'RESPECT'",
"'RESTRICT'", "'RETURN'", "'RETURNING'", "'RETURNS'", "'REVOKE'",
"'RIGHT'", "'ROLE'", "'ROLES'", "'ROLLBACK'", "'ROLLUP'", "'ROW'",
"'ROWS'", "'RUNNING'", "'SCALAR'", "'SCHEMA'", "'SCHEMAS'", "'SECOND'",
"'SECURITY'", "'SEEK'", "'SELECT'", "'SERIALIZABLE'", "'SESSION'",
"'SET'", "'SETS'", "'SHOW'", "'SOME'", "'START'", "'STATS'", "'SUBSET'",
"'SUBSTRING'", "'SYSTEM'", "'TABLE'", "'TABLES'", "'TABLESAMPLE'",
"'TEXT'", "'STRING'", "'THEN'", "'TIES'", "'TIME'", "'TIMESTAMP'",
"'TO'", "'TRAILING'", "'TRANSACTION'", "'TRIM'", "'TRUE'", "'TRUNCATE'",
"'TRY_CAST'", "'TYPE'", "'UESCAPE'", "'UNBOUNDED'", "'UNCOMMITTED'",
"'UNCONDITIONAL'", "'UNION'", "'UNIQUE'", "'UNKNOWN'", "'UNMATCHED'",
"'UNNEST'", "'UNTIL'", "'UPDATE'", "'USE'", "'USER'", "'USING'",
"'UTF16'", "'UTF32'", "'UTF8'", "'VALIDATE'", "'VALUE'", "'VALUES'",
"'VERBOSE'", "'VERSION'", "'VIEW'", "'WHEN'", "'WHERE'", "'WHILE'",
"'WINDOW'", "'WITH'", "'WITHIN'", "'WITHOUT'", "'WORK'", "'WRAPPER'",
"'WRITE'", "'YEAR'", "'ZONE'", "'='", null, "'<'", "'<='", "'>'",
"'>='", "'+'", "'-'", "'*'", "'/'", "'%'", "'||'", "'?'", "';'"
];
TrinoSqlLexer.symbolicNames = [
null, null, null, null, null, null, null, null, null, null, null,
null, null, null, null, null, null, null, "KW_ABSENT", "KW_ADD",
"KW_ADMIN", "KW_AFTER", "KW_ALL", "KW_ALTER", "KW_ANALYZE", "KW_AND",
"KW_ANY", "KW_ARRAY", "KW_AS", "KW_ASC", "KW_AT", "KW_AUTHORIZATION",
"KW_BEGIN", "KW_BERNOULLI", "KW_BETWEEN", "KW_BOTH", "KW_BY", "KW_CALL",
"KW_CALLED", "KW_CASCADE", "KW_CASE", "KW_CAST", "KW_CATALOG", "KW_CATALOGS",
"KW_COLUMN", "KW_COLUMNS", "KW_COMMENT", "KW_COMMIT", "KW_COMMITTED",
"KW_CONDITIONAL", "KW_CONSTRAINT", "KW_COUNT", "KW_COPARTITION",
"KW_CREATE", "KW_CROSS", "KW_CUBE", "KW_CURRENT", "KW_CURRENT_CATALOG",
"KW_CURRENT_DATE", "KW_CURRENT_PATH", "KW_CURRENT_ROLE", "KW_CURRENT_SCHEMA",
"KW_CURRENT_TIME", "KW_CURRENT_TIMESTAMP", "KW_CURRENT_USER", "KW_DATA",
"KW_DATE", "KW_DAY", "KW_DEALLOCATE", "KW_DECLARE", "KW_DEFAULT",
"KW_DEFINE", "KW_DEFINER", "KW_DELETE", "KW_DENY", "KW_DESC", "KW_DESCRIBE",
"KW_DESCRIPTOR", "KW_DETERMINISTIC", "KW_DISTINCT", "KW_DISTRIBUTED",
"KW_DO", "KW_DOUBLE", "KW_DROP", "KW_ELSE", "KW_EMPTY", "KW_ELSEIF",
"KW_ENCODING", "KW_END", "KW_ERROR", "KW_ESCAPE", "KW_EXCEPT", "KW_EXCLUDING",
"KW_EXECUTE", "KW_EXISTS", "KW_EXPLAIN", "KW_EXTRACT", "KW_FALSE",
"KW_FETCH", "KW_FILTER", "KW_FINAL", "KW_FIRST", "KW_FOLLOWING",
"KW_FOR", "KW_FORMAT", "KW_FROM", "KW_FULL", "KW_FUNCTION", "KW_FUNCTIONS",
"KW_GRACE", "KW_GRANT", "KW_GRANTED", "KW_GRANTS", "KW_GRAPHVIZ",
"KW_GROUP", "KW_GROUPING", "KW_GROUPS", "KW_HAVING", "KW_HOUR",
"KW_IF", "KW_IGNORE", "KW_IMMEDIATE", "KW_IN", "KW_INCLUDING", "KW_INITIAL",
"KW_INNER", "KW_INPUT", "KW_INSERT", "KW_INTERSECT", "KW_INTERVAL",
"KW_INTO", "KW_INVOKER", "KW_IO", "KW_IS", "KW_ISOLATION", "KW_ITERATE",
"KW_JOIN", "KW_JSON", "KW_JSON_ARRAY", "KW_JSON_EXISTS", "KW_JSON_OBJECT",
"KW_JSON_QUERY", "KW_JSON_TABLE", "KW_JSON_VALUE", "KW_KEEP", "KW_KEY",
"KW_KEYS", "KW_LANGUAGE", "KW_LAST", "KW_LATERAL", "KW_LEADING",
"KW_LEAVE", "KW_LEFT", "KW_LEVEL", "KW_LIKE", "KW_LIMIT", "KW_LISTAGG",
"KW_LOCAL", "KW_LOCALTIME", "KW_LOCALTIMESTAMP", "KW_LOGICAL", "KW_LOOP",
"KW_MAP", "KW_MATCH", "KW_MATCHED", "KW_MATCHES", "KW_MATCH_RECOGNIZE",
"KW_MATERIALIZED", "KW_MEASURES", "KW_MERGE", "KW_MINUTE", "KW_MONTH",
"KW_NATURAL", "KW_NESTED", "KW_NEXT", "KW_NFC", "KW_NFD", "KW_NFKC",
"KW_NFKD", "KW_NO", "KW_NONE", "KW_NORMALIZE", "KW_NOT", "KW_NULL",
"KW_NULLIF", "KW_NULLS", "KW_OBJECT", "KW_OF", "KW_OFFSET", "KW_OMIT",
"KW_ON", "KW_ONE", "KW_ONLY", "KW_OPTION", "KW_OR", "KW_ORDER",
"KW_ORDINALITY", "KW_OUTER", "KW_OUTPUT", "KW_OVER", "KW_OVERFLOW",
"KW_PARTITION", "KW_PARTITIONS", "KW_PASSING", "KW_PAST", "KW_PATH",
"KW_PATTERN", "KW_PER", "KW_PERIOD", "KW_PERMUTE", "KW_PLAN", "KW_POSITION",
"KW_PRECEDING", "KW_PRECISION", "KW_PREPARE", "KW_PRIVILEGES", "KW_PROPERTIES",
"KW_PRUNE", "KW_QUOTES", "KW_RANGE", "KW_READ", "KW_RECURSIVE",
"KW_REFRESH", "KW_RENAME", "KW_REPEAT", "KW_REPEATABLE", "KW_REPLACE",
"KW_RESET", "KW_RESPECT", "KW_RESTRICT", "KW_RETURN", "KW_RETURNING",
"KW_RETURNS", "KW_REVOKE", "KW_RIGHT", "KW_ROLE", "KW_ROLES", "KW_ROLLBACK",
"KW_ROLLUP", "KW_ROW", "KW_ROWS", "KW_RUNNING", "KW_SCALAR", "KW_SCHEMA",
"KW_SCHEMAS", "KW_SECOND", "KW_SECURITY", "KW_SEEK", "KW_SELECT",
"KW_SERIALIZABLE", "KW_SESSION", "KW_SET", "KW_SETS", "KW_SHOW",
"KW_SOME", "KW_START", "KW_STATS", "KW_SUBSET", "KW_SUBSTRING",
"KW_SYSTEM", "KW_TABLE", "KW_TABLES", "KW_TABLESAMPLE", "KW_TEXT",
"KW_TEXT_STRING", "KW_THEN", "KW_TIES", "KW_TIME", "KW_TIMESTAMP",
"KW_TO", "KW_TRAILING", "KW_TRANSACTION", "KW_TRIM", "KW_TRUE",
"KW_TRUNCATE", "KW_TRY_CAST", "KW_TYPE", "KW_UESCAPE", "KW_UNBOUNDED",
"KW_UNCOMMITTED", "KW_UNCONDITIONAL", "KW_UNION", "KW_UNIQUE", "KW_UNKNOWN",
"KW_UNMATCHED", "KW_UNNEST", "KW_UNTIL", "KW_UPDATE", "KW_USE",
"KW_USER", "KW_USING", "KW_UTF16", "KW_UTF32", "KW_UTF8", "KW_VALIDATE",
"KW_VALUE", "KW_VALUES", "KW_VERBOSE", "KW_VERSION", "KW_VIEW",
"KW_WHEN", "KW_WHERE", "KW_WHILE", "KW_WINDOW", "KW_WITH", "KW_WITHIN",
"KW_WITHOUT", "KW_WORK", "KW_WRAPPER", "KW_WRITE", "KW_YEAR", "KW_ZONE",
"EQ", "NEQ", "LT", "LTE", "GT", "GTE", "PLUS", "MINUS", "ASTERISK",
"SLASH", "PERCENT", "CONCAT", "QUESTION_MARK", "SEMICOLON", "STRING",
"UNICODE_STRING", "BINARY_LITERAL", "INTEGER_VALUE", "DECIMAL_VALUE",
"DOUBLE_VALUE", "IDENTIFIER", "DIGIT_IDENTIFIER", "QUOTED_IDENTIFIER",
"BACKQUOTED_IDENTIFIER", "LINE_COMMENT", "BRACKETED_COMMENT", "WHITE_SPACE",
"UNRECOGNIZED"
];
TrinoSqlLexer.modeNames = [
"DEFAULT_MODE",
];
TrinoSqlLexer.ruleNames = [
"T__0", "T__1", "T__2", "T__3", "T__4", "T__5", "T__6", "T__7",
"T__8", "T__9", "T__10", "T__11", "T__12", "T__13", "T__14", "T__15",
"T__16", "KW_ABSENT", "KW_ADD", "KW_ADMIN", "KW_AFTER", "KW_ALL",
"KW_ALTER", "KW_ANALYZE", "KW_AND", "KW_ANY", "KW_ARRAY", "KW_AS",
"KW_ASC", "KW_AT", "KW_AUTHORIZATION", "KW_BEGIN", "KW_BERNOULLI",
"KW_BETWEEN", "KW_BOTH", "KW_BY", "KW_CALL", "KW_CALLED", "KW_CASCADE",
"KW_CASE", "KW_CAST", "KW_CATALOG", "KW_CATALOGS", "KW_COLUMN",
"KW_COLUMNS", "KW_COMMENT", "KW_COMMIT", "KW_COMMITTED", "KW_CONDITIONAL",
"KW_CONSTRAINT", "KW_COUNT", "KW_COPARTITION", "KW_CREATE", "KW_CROSS",
"KW_CUBE", "KW_CURRENT", "KW_CURRENT_CATALOG", "KW_CURRENT_DATE",
"KW_CURRENT_PATH", "KW_CURRENT_ROLE", "KW_CURRENT_SCHEMA", "KW_CURRENT_TIME",
"KW_CURRENT_TIMESTAMP", "KW_CURRENT_USER", "KW_DATA", "KW_DATE",
"KW_DAY", "KW_DEALLOCATE", "KW_DECLARE", "KW_DEFAULT", "KW_DEFINE",
"KW_DEFINER", "KW_DELETE", "KW_DENY", "KW_DESC", "KW_DESCRIBE",
"KW_DESCRIPTOR", "KW_DETERMINISTIC", "KW_DISTINCT", "KW_DISTRIBUTED",
"KW_DO", "KW_DOUBLE", "KW_DROP", "KW_ELSE", "KW_EMPTY", "KW_ELSEIF",
"KW_ENCODING", "KW_END", "KW_ERROR", "KW_ESCAPE", "KW_EXCEPT", "KW_EXCLUDING",
"KW_EXECUTE", "KW_EXISTS", "KW_EXPLAIN", "KW_EXTRACT", "KW_FALSE",
"KW_FETCH", "KW_FILTER", "KW_FINAL", "KW_FIRST", "KW_FOLLOWING",
"KW_FOR", "KW_FORMAT", "KW_FROM", "KW_FULL", "KW_FUNCTION", "KW_FUNCTIONS",
"KW_GRACE", "KW_GRANT", "KW_GRANTED", "KW_GRANTS", "KW_GRAPHVIZ",
"KW_GROUP", "KW_GROUPING", "KW_GROUPS", "KW_HAVING", "KW_HOUR",
"KW_IF", "KW_IGNORE", "KW_IMMEDIATE", "KW_IN", "KW_INCLUDING", "KW_INITIAL",
"KW_INNER", "KW_INPUT", "KW_INSERT", "KW_INTERSECT", "KW_INTERVAL",
"KW_INTO", "KW_INVOKER", "KW_IO", "KW_IS", "KW_ISOLATION", "KW_ITERATE",
"KW_JOIN", "KW_JSON", "KW_JSON_ARRAY", "KW_JSON_EXISTS", "KW_JSON_OBJECT",
"KW_JSON_QUERY", "KW_JSON_TABLE", "KW_JSON_VALUE", "KW_KEEP", "KW_KEY",
"KW_KEYS", "KW_LANGUAGE", "KW_LAST", "KW_LATERAL", "KW_LEADING",
"KW_LEAVE", "KW_LEFT", "KW_LEVEL", "KW_LIKE", "KW_LIMIT", "KW_LISTAGG",
"KW_LOCAL", "KW_LOCALTIME", "KW_LOCALTIMESTAMP", "KW_LOGICAL", "KW_LOOP",
"KW_MAP", "KW_MATCH", "KW_MATCHED", "KW_MATCHES", "KW_MATCH_RECOGNIZE",
"KW_MATERIALIZED", "KW_MEASURES", "KW_MERGE", "KW_MINUTE", "KW_MONTH",
"KW_NATURAL", "KW_NESTED", "KW_NEXT", "KW_NFC", "KW_NFD", "KW_NFKC",
"KW_NFKD", "KW_NO", "KW_NONE", "KW_NORMALIZE", "KW_NOT", "KW_NULL",
"KW_NULLIF", "KW_NULLS", "KW_OBJECT", "KW_OF", "KW_OFFSET", "KW_OMIT",
"KW_ON", "KW_ONE", "KW_ONLY", "KW_OPTION", "KW_OR", "KW_ORDER",
"KW_ORDINALITY", "KW_OUTER", "KW_OUTPUT", "KW_OVER", "KW_OVERFLOW",
"KW_PARTITION", "KW_PARTITIONS", "KW_PASSING", "KW_PAST", "KW_PATH",
"KW_PATTERN", "KW_PER", "KW_PERIOD", "KW_PERMUTE", "KW_PLAN", "KW_POSITION",
"KW_PRECEDING", "KW_PRECISION", "KW_PREPARE", "KW_PRIVILEGES", "KW_PROPERTIES",
"KW_PRUNE", "KW_QUOTES", "KW_RANGE", "KW_READ", "KW_RECURSIVE",
"KW_REFRESH", "KW_RENAME", "KW_REPEAT", "KW_REPEATABLE", "KW_REPLACE",
"KW_RESET", "KW_RESPECT", "KW_RESTRICT", "KW_RETURN", "KW_RETURNING",
"KW_RETURNS", "KW_REVOKE", "KW_RIGHT", "KW_ROLE", "KW_ROLES", "KW_ROLLBACK",
"KW_ROLLUP", "KW_ROW", "KW_ROWS", "KW_RUNNING", "KW_SCALAR", "KW_SCHEMA",
"KW_SCHEMAS", "KW_SECOND", "KW_SECURITY", "KW_SEEK", "KW_SELECT",
"KW_SERIALIZABLE", "KW_SESSION", "KW_SET", "KW_SETS", "KW_SHOW",
"KW_SOME", "KW_START", "KW_STATS", "KW_SUBSET", "KW_SUBSTRING",
"KW_SYSTEM", "KW_TABLE", "KW_TABLES", "KW_TABLESAMPLE", "KW_TEXT",
"KW_TEXT_STRING", "KW_THEN", "KW_TIES", "KW_TIME", "KW_TIMESTAMP",
"KW_TO", "KW_TRAILING", "KW_TRANSACTION", "KW_TRIM", "KW_TRUE",
"KW_TRUNCATE", "KW_TRY_CAST", "KW_TYPE", "KW_UESCAPE", "KW_UNBOUNDED",
"KW_UNCOMMITTED", "KW_UNCONDITIONAL", "KW_UNION", "KW_UNIQUE", "KW_UNKNOWN",
"KW_UNMATCHED", "KW_UNNEST", "KW_UNTIL", "KW_UPDATE", "KW_USE",
"KW_USER", "KW_USING", "KW_UTF16", "KW_UTF32", "KW_UTF8", "KW_VALIDATE",
"KW_VALUE", "KW_VALUES", "KW_VERBOSE", "KW_VERSION", "KW_VIEW",
"KW_WHEN", "KW_WHERE", "KW_WHILE", "KW_WINDOW", "KW_WITH", "KW_WITHIN",
"KW_WITHOUT", "KW_WORK", "KW_WRAPPER", "KW_WRITE", "KW_YEAR", "KW_ZONE",
"EQ", "NEQ", "LT", "LTE", "GT", "GTE", "PLUS", "MINUS", "ASTERISK",
"SLASH", "PERCENT", "CONCAT", "QUESTION_MARK", "SEMICOLON", "STRING",
"UNICODE_STRING", "BINARY_LITERAL", "INTEGER_VALUE", "DECIMAL_VALUE",
"DOUBLE_VALUE", "IDENTIFIER", "DIGIT_IDENTIFIER", "QUOTED_IDENTIFIER",
"BACKQUOTED_IDENTIFIER", "DECIMAL_INTEGER", "HEXADECIMAL_INTEGER",
"OCTAL_INTEGER", "BINARY_INTEGER", "EXPONENT", "DIGIT", "LETTER",
"LINE_COMMENT", "BRACKETED_COMMENT", "WHITE_SPACE", "UNRECOGNIZED",
];
TrinoSqlLexer._serializedATN = [
4, 0, 339, 3114, 6, -1, 2, 0, 7, 0, 2, 1, 7, 1, 2, 2, 7, 2, 2, 3, 7, 3, 2, 4, 7, 4, 2, 5, 7,
5, 2, 6, 7, 6, 2, 7, 7, 7, 2, 8, 7, 8, 2, 9, 7, 9, 2, 10, 7, 10, 2, 11, 7, 11, 2, 12, 7, 12,
2, 13, 7, 13, 2, 14, 7, 14, 2, 15, 7, 15, 2, 16, 7, 16, 2, 17, 7, 17, 2, 18, 7, 18, 2, 19,
7, 19, 2, 20, 7, 20, 2, 21, 7, 21, 2, 22, 7, 22, 2, 23, 7, 23, 2, 24, 7, 24, 2, 25, 7, 25,
2, 26, 7, 26, 2, 27, 7, 27, 2, 28, 7, 28, 2, 29, 7, 29, 2, 30, 7, 30, 2, 31, 7, 31, 2, 32,
7, 32, 2, 33, 7, 33, 2, 34, 7, 34, 2, 35, 7, 35, 2, 36, 7, 36, 2, 37, 7, 37, 2, 38, 7, 38,
2, 39, 7, 39, 2, 40, 7, 40, 2, 41, 7, 41, 2, 42, 7, 42, 2, 43, 7, 43, 2, 44, 7, 44, 2, 45,
7, 45, 2, 46, 7, 46, 2, 47, 7, 47, 2, 48, 7, 48, 2, 49, 7, 49, 2, 50, 7, 50, 2, 51, 7, 51,
2, 52, 7, 52, 2, 53, 7, 53, 2, 54, 7, 54, 2, 55, 7, 55, 2, 56, 7, 56, 2, 57, 7, 57, 2, 58,
7, 58, 2, 59, 7, 59, 2, 60, 7, 60, 2, 61, 7, 61, 2, 62, 7, 62, 2, 63, 7, 63, 2, 64, 7, 64,
2, 65, 7, 65, 2, 66, 7, 66, 2, 67, 7, 67, 2, 68, 7, 68, 2, 69, 7, 69, 2, 70, 7, 70, 2, 71,
7, 71, 2, 72, 7, 72, 2, 73, 7, 73, 2, 74, 7, 74, 2, 75, 7, 75, 2, 76, 7, 76, 2, 77, 7, 77,
2, 78, 7, 78, 2, 79, 7, 79, 2, 80, 7, 80, 2, 81, 7, 81, 2, 82, 7, 82, 2, 83, 7, 83, 2, 84,
7, 84, 2, 85, 7, 85, 2, 86, 7, 86, 2, 87, 7, 87, 2, 88, 7, 88, 2, 89, 7, 89, 2, 90, 7, 90,
2, 91, 7, 91, 2, 92, 7, 92, 2, 93, 7, 93, 2, 94, 7, 94, 2, 95, 7, 95, 2, 96, 7, 96, 2, 97,
7, 97, 2, 98, 7, 98, 2, 99, 7, 99, 2, 100, 7, 100, 2, 101, 7, 101, 2, 102, 7, 102, 2, 103,
7, 103, 2, 104, 7, 104, 2, 105, 7, 105, 2, 106, 7, 106, 2, 107, 7, 107, 2, 108, 7, 108,
2, 109, 7, 109, 2, 110, 7, 110, 2, 111, 7, 111, 2, 112, 7, 112, 2, 113, 7, 113, 2, 114,
7, 114, 2, 115, 7, 115, 2, 116, 7, 116, 2, 117, 7, 117, 2, 118, 7, 118, 2, 119, 7, 119,
2, 120, 7, 120, 2, 121, 7, 121, 2, 122, 7, 122, 2, 123, 7, 123, 2, 124, 7, 124, 2, 125,
7, 125, 2, 126, 7, 126, 2, 127, 7, 127, 2, 128, 7, 128, 2, 129, 7, 129, 2, 130, 7, 130,
2, 131, 7, 131, 2, 132, 7, 132, 2, 133, 7, 133, 2, 134, 7, 134, 2, 135, 7, 135, 2, 136,
7, 136, 2, 137, 7, 137, 2, 138, 7, 138, 2, 139, 7, 139, 2, 140, 7, 140, 2, 141, 7, 141,
2, 142, 7, 142, 2, 143, 7, 143, 2, 144, 7, 144, 2, 145, 7, 145, 2, 146, 7, 146, 2, 147,
7, 147, 2, 148, 7, 148, 2, 149, 7, 149, 2, 150, 7, 150, 2, 151, 7, 151, 2, 152, 7, 152,
2, 153, 7, 153, 2, 154, 7, 154, 2, 155, 7, 155, 2, 156, 7, 156, 2, 157, 7, 157, 2, 158,
7, 158, 2, 159, 7, 159, 2, 160, 7, 160, 2, 161, 7, 161, 2, 162, 7, 162, 2, 163, 7, 163,
2, 164, 7, 164, 2, 165, 7, 165, 2, 166, 7, 166, 2, 167, 7, 167, 2, 168, 7, 168, 2, 169,
7, 169, 2, 170, 7, 170, 2, 171, 7, 171, 2, 172, 7, 172, 2, 173, 7, 173, 2, 174, 7, 174,
2, 175, 7, 175, 2, 176, 7, 176, 2, 177, 7, 177, 2, 178, 7, 178, 2, 179, 7, 179, 2, 180,
7, 180, 2, 181, 7, 181, 2, 182, 7, 182, 2, 183, 7, 183, 2, 184, 7, 184, 2, 185, 7, 185,
2, 186, 7, 186, 2, 187, 7, 187, 2, 188, 7, 188, 2, 189, 7, 189, 2, 190, 7, 190, 2, 191,
7, 191, 2, 192, 7, 192, 2, 193, 7, 193, 2, 194, 7, 194, 2, 195, 7, 195, 2, 196, 7, 196,
2, 197, 7, 197, 2, 198, 7, 198, 2, 199, 7, 199, 2, 200, 7, 200, 2, 201, 7, 201, 2, 202,
7, 202, 2, 203, 7, 203, 2, 204, 7, 204, 2, 205, 7, 205, 2, 206, 7, 206, 2, 207, 7, 207,
2, 208, 7, 208, 2, 209, 7, 209, 2, 210, 7, 210, 2, 211, 7, 211, 2, 212, 7, 212, 2, 213,
7, 213, 2, 214, 7, 214, 2, 215, 7, 215, 2, 216, 7, 216, 2, 217, 7, 217, 2, 218, 7, 218,
2, 219, 7, 219, 2, 220, 7, 220, 2, 221, 7, 221, 2, 222, 7, 222, 2, 223, 7, 223, 2, 224,
7, 224, 2, 225, 7, 225, 2, 226, 7, 226, 2, 227, 7, 227, 2, 228, 7, 228, 2, 229, 7, 229,
2, 230, 7, 230, 2, 231, 7, 231, 2, 232, 7, 232, 2, 233, 7, 233, 2, 234, 7, 234, 2, 235,
7, 235, 2, 236, 7, 236, 2, 237, 7, 237, 2, 238, 7, 238, 2, 239, 7, 239, 2, 240, 7, 240,
2, 241, 7, 241, 2, 242, 7, 242, 2, 243, 7, 243, 2, 244, 7, 244, 2, 245, 7, 245, 2, 246,
7, 246, 2, 247, 7, 247, 2, 248, 7, 248, 2, 249, 7, 249, 2, 250, 7, 250, 2, 251, 7, 251,
2, 252, 7, 252, 2, 253, 7, 253, 2, 254, 7, 254, 2, 255, 7, 255, 2, 256, 7, 256, 2, 257,
7, 257, 2, 258, 7, 258, 2, 259, 7, 259, 2, 260, 7, 260, 2, 261, 7, 261, 2, 262, 7, 262,
2, 263, 7, 263, 2, 264, 7, 264, 2, 265, 7, 265, 2, 266, 7, 266, 2, 267, 7, 267, 2, 268,
7, 268, 2, 269, 7, 269, 2, 270, 7, 270, 2, 271, 7, 271, 2, 272, 7, 272, 2, 273, 7, 273,
2, 274, 7, 274, 2, 275, 7, 275, 2, 276, 7, 276, 2, 277, 7, 277, 2, 278, 7, 278, 2, 279,
7, 279, 2, 280, 7, 280, 2, 281, 7, 281, 2, 282, 7, 282, 2, 283, 7, 283, 2, 284, 7, 284,
2, 285, 7, 285, 2, 286, 7, 286, 2, 287, 7, 287, 2, 288, 7, 288, 2, 289, 7, 289, 2, 290,
7, 290, 2, 291, 7, 291, 2, 292, 7, 292, 2, 293, 7, 293, 2, 294, 7, 294, 2, 295, 7, 295,
2, 296, 7, 296, 2, 297, 7, 297, 2, 298, 7, 298, 2, 299, 7, 299, 2, 300, 7, 300, 2, 301,
7, 301, 2, 302, 7, 302, 2, 303, 7, 303, 2, 304, 7, 304, 2, 305, 7, 305, 2, 306, 7, 306,
2, 307, 7, 307, 2, 308, 7, 308, 2, 309, 7, 309, 2, 310, 7, 310, 2, 311, 7, 311, 2, 312,
7, 312, 2, 313, 7, 313, 2, 314, 7, 314, 2, 315, 7, 315, 2, 316, 7, 316, 2, 317, 7, 317,
2, 318, 7, 318, 2, 319, 7, 319, 2, 320, 7, 320, 2, 321, 7, 321, 2, 322, 7, 322, 2, 323,
7, 323, 2, 324, 7, 324, 2, 325, 7, 325, 2, 326, 7, 326, 2, 327, 7, 327, 2, 328, 7, 328,
2, 329, 7, 329, 2, 330, 7, 330, 2, 331, 7, 331, 2, 332, 7, 332, 2, 333, 7, 333, 2, 334,
7, 334, 2, 335, 7, 335, 2, 336, 7, 336, 2, 337, 7, 337, 2, 338, 7, 338, 2, 339, 7, 339,
2, 340, 7, 340, 2, 341, 7, 341, 2, 342, 7, 342, 2, 343, 7, 343, 2, 344, 7, 344, 2, 345,
7, 345, 1, 0, 1, 0, 1, 1, 1, 1, 1, 2, 1, 2, 1, 3, 1, 3, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 5, 1,
5, 1, 5, 1, 6, 1, 6, 1, 6, 1, 7, 1, 7, 1, 8, 1, 8, 1, 9, 1, 9, 1, 10, 1, 10, 1, 11, 1, 11, 1,
12, 1, 12, 1, 13, 1, 13, 1, 13, 1, 14, 1, 14, 1, 14, 1, 15, 1, 15, 1, 16, 1, 16, 1, 17, 1,
17, 1, 17, 1, 17, 1, 17, 1, 17, 1, 17, 1, 18, 1, 18, 1, 18, 1, 18, 1, 19, 1, 19, 1, 19, 1,
19, 1, 19, 1, 19, 1, 20, 1, 20, 1, 20, 1, 20, 1, 20, 1, 20, 1, 21, 1, 21, 1, 21, 1, 21, 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, 24, 1, 24, 1, 24, 1, 24, 1, 25, 1, 25, 1, 25, 1, 25, 1, 26, 1, 26, 1, 26, 1, 26, 1,
26, 1, 26, 1, 27, 1, 27, 1, 27, 1, 28, 1, 28, 1, 28, 1, 28, 1, 29, 1, 29, 1, 29, 1, 30, 1,
30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1,
31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 32, 1, 32, 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, 35, 1, 35, 1, 35, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 37, 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, 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, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1,
42, 1, 43, 1, 43, 1, 43, 1, 43, 1, 43, 1, 43, 1, 43, 1, 44, 1, 44, 1, 44, 1, 44, 1, 44, 1,
44, 1, 44, 1, 44, 1, 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, 47, 1, 47, 1, 47, 1, 47, 1, 47, 1, 47, 1, 47, 1, 47, 1,
47, 1, 47, 1, 48, 1, 48, 1, 48, 1, 48, 1, 48, 1, 48, 1, 48, 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, 49, 1, 49, 1, 49, 1, 49, 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, 51, 1, 51, 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, 54, 1, 54, 1, 54, 1, 54, 1, 54, 1, 55, 1, 55, 1, 55, 1, 55, 1,
55, 1, 55, 1, 55, 1, 55, 1, 56, 1, 56, 1, 56, 1, 56, 1, 56, 1, 56, 1, 56, 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, 57, 1,
57, 1, 57, 1, 57, 1, 57, 1, 57, 1, 57, 1, 57, 1, 58, 1, 58, 1, 58, 1, 58, 1, 58, 1, 58, 1,
58, 1, 58, 1, 58, 1, 58, 1, 58, 1, 58, 1, 58, 1, 59, 1, 59, 1, 59, 1, 59, 1, 59, 1, 59, 1,
59, 1, 59, 1, 59, 1, 59, 1, 59, 1, 59, 1, 59, 1, 60, 1, 60, 1, 60, 1, 60, 1, 60, 1, 60, 1,
60, 1, 60, 1, 60, 1, 60, 1, 60, 1, 60, 1, 60, 1, 60, 1, 60, 1, 61, 1, 61, 1, 61, 1, 61, 1,
61, 1, 61, 1, 61, 1, 61, 1, 61, 1, 61, 1, 61, 1, 61, 1, 61, 1, 62, 1, 62, 1, 62, 1, 62, 1,
62, 1, 62, 1, 62, 1, 62, 1, 62, 1, 62, 1, 62, 1, 62, 1, 62, 1, 62, 1, 62, 1, 62, 1, 62, 1,
62, 1, 63, 1, 63, 1, 63, 1, 63, 1, 63, 1, 63, 1, 63, 1, 63, 1, 63, 1, 63, 1, 63, 1, 63, 1,
63, 1, 64, 1, 64, 1, 64, 1, 64, 1, 64, 1, 65, 1, 65, 1, 65, 1, 65, 1, 65, 1, 66, 1, 66, 1,
66, 1, 66, 1, 67, 1, 67, 1, 67, 1, 67, 1, 67, 1, 67, 1, 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, 69, 1, 69, 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, 72, 1, 72, 1, 72, 1, 72, 1, 72, 1, 72, 1, 72, 1, 73, 1,
73, 1, 73, 1, 73, 1, 73, 1, 74, 1, 74, 1, 74, 1, 74, 1, 74, 1, 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, 76, 1, 77, 1, 77, 1, 77, 1, 77, 1, 77, 1, 77, 1, 77, 1, 77, 1, 77, 1, 77, 1,
77, 1, 77, 1, 77, 1, 77, 1, 78, 1, 78, 1, 78, 1, 78, 1, 78, 1, 78, 1, 78, 1, 78, 1, 78, 1,
79, 1, 79, 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, 81, 1, 81, 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, 84, 1, 84, 1, 84, 1, 84, 1, 84, 1, 84, 1, 85, 1,
85, 1, 85, 1, 85, 1, 85, 1, 85, 1, 85, 1, 86, 1, 86, 1, 86, 1, 86, 1, 86, 1, 86, 1, 86, 1,
86, 1, 86, 1, 87, 1, 87, 1, 87, 1, 87, 1, 88, 1, 88, 1, 88, 1, 88, 1, 88, 1, 88, 1, 89, 1,
89, 1, 89, 1, 89, 1, 89, 1, 89, 1, 89, 1, 90, 1, 90, 1, 90, 1, 90, 1, 90, 1, 90, 1, 90, 1,
91, 1, 91, 1, 91, 1, 91, 1, 91, 1, 91, 1, 91, 1, 91, 1, 91, 1, 91, 1, 92, 1, 92, 1, 92, 1,
92, 1, 92, 1, 92, 1, 92, 1, 92, 1, 93, 1, 93, 1, 93, 1, 93, 1, 93, 1, 93, 1, 93, 1, 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, 96, 1, 96, 1, 96, 1, 96, 1, 96, 1, 96, 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, 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, 102, 1, 102, 1, 102, 1, 102, 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, 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, 107, 1, 107, 1, 107, 1, 107, 1, 107, 1, 107, 1, 107, 1, 107,
1, 107, 1, 107, 1, 108, 1, 108, 1, 108, 1, 108, 1, 108, 1, 108, 1, 109, 1, 109, 1, 109,
1, 109, 1, 109, 1, 109, 1, 110, 1, 110, 1, 110, 1, 110, 1, 110, 1, 110, 1, 110, 1, 110,
1, 111, 1, 111, 1, 111, 1, 111, 1, 111, 1, 111, 1, 111, 1, 112, 1, 112, 1, 112, 1, 112,
1, 112, 1, 112, 1, 112, 1, 112, 1, 112, 1, 113, 1, 113, 1, 113, 1, 113, 1, 113, 1, 113,
1, 114, 1, 114, 1, 114, 1, 114, 1, 114, 1, 114, 1, 114, 1, 114, 1, 114, 1, 115, 1, 115,
1, 115, 1, 115, 1, 115, 1, 115, 1, 115, 1, 116, 1, 116, 1, 116, 1, 116, 1, 116, 1, 116,
1, 116, 1, 117, 1, 117, 1, 117, 1, 117, 1, 117, 1, 118, 1, 118, 1, 118, 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, 120, 1, 121, 1, 121, 1, 121, 1, 122, 1, 122, 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, 123, 1, 123, 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, 126, 1, 126, 1, 126, 1, 126, 1, 126, 1, 126, 1, 126,
1, 127, 1, 127, 1, 127, 1, 127, 1, 127, 1, 127, 1, 127, 1, 127, 1, 127, 1, 127, 1, 128,
1, 128, 1, 128, 1, 128, 1, 128, 1, 128, 1, 128, 1, 128, 1, 128, 1, 129, 1, 129, 1, 129,
1, 129, 1, 129, 1, 130, 1, 130, 1, 130, 1, 130, 1, 130, 1, 130, 1, 130, 1, 130, 1, 131,
1, 131, 1, 131, 1, 132, 1, 132, 1, 132, 1, 133, 1, 133, 1, 133, 1, 133, 1, 133, 1, 133,
1, 133, 1, 133, 1, 133, 1, 133, 1, 134, 1, 134, 1, 134, 1, 134, 1, 134, 1, 134, 1, 134,
1, 134, 1, 135, 1, 135, 1, 135, 1, 135, 1, 135, 1, 136, 1, 136, 1, 136, 1, 136, 1, 136,
1, 137, 1, 137, 1, 137, 1, 137, 1, 137, 1, 137, 1, 137, 1, 137, 1, 137, 1, 137, 1, 137,
1, 138, 1, 138, 1, 138, 1, 138, 1, 138, 1, 138, 1, 138, 1, 138, 1, 138, 1, 138, 1, 138,
1, 138, 1, 139, 1, 139, 1, 139, 1, 139, 1, 139, 1, 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, 140, 1, 140, 1, 140,
1, 140, 1, 140, 1, 141, 1, 141, 1, 141, 1, 141, 1, 141, 1, 141, 1, 141, 1, 141, 1, 141,
1, 141, 1, 141, 1, 142, 1, 142, 1, 142, 1, 142, 1, 142, 1, 142, 1, 142, 1, 142, 1, 142,
1, 142, 1, 142, 1, 143, 1, 143, 1, 143, 1, 143, 1, 143, 1, 144, 1, 144, 1, 144, 1, 144,
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, 146, 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, 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, 151, 1, 151, 1, 151,
1, 151, 1, 151, 1, 152, 1, 152, 1, 152, 1, 152, 1, 152, 1, 152, 1, 153, 1, 153, 1, 153,
1, 153, 1, 153, 1, 154, 1, 154, 1, 154, 1, 154, 1, 154, 1, 154, 1, 155, 1, 155, 1, 155,
1, 155, 1, 155, 1, 155, 1, 155, 1, 155, 1, 156, 1, 156, 1, 156, 1, 156, 1, 156, 1, 156,
1, 157, 1, 157, 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, 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, 161, 1, 161, 1, 161, 1, 161, 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, 163,
1, 163, 1, 164, 1, 164, 1, 164, 1, 164, 1, 164, 1, 164, 1, 164, 1, 164, 1, 165, 1, 165,
1, 165, 1, 165, 1, 165, 1, 165, 1, 165, 1, 165, 1, 165, 1, 165, 1, 165, 1, 165, 1, 165,
1, 165, 1, 165, 1, 165, 1, 166, 1, 166, 1, 166, 1, 166, 1, 166, 1, 166, 1, 166, 1, 166,
1, 166, 1, 166, 1, 166, 1, 166, 1, 166, 1, 167, 1, 167, 1, 167, 1, 167, 1, 167, 1, 167,
1, 167, 1, 167, 1, 167, 1, 168, 1, 168, 1, 168, 1, 168, 1, 168, 1, 168, 1, 169, 1, 169,
1, 169, 1, 169, 1, 169, 1, 169, 1, 169, 1, 170, 1, 170, 1, 170, 1, 170, 1, 170, 1, 170,
1, 171, 1, 171, 1, 171, 1, 171, 1, 171, 1, 171, 1, 171, 1, 171, 1, 172, 1, 172, 1, 172,
1, 172, 1, 172, 1, 172, 1, 172, 1, 173, 1, 173, 1, 173, 1, 173, 1, 173, 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, 178, 1, 178, 1, 178, 1, 179, 1, 179, 1, 179,
1, 179, 1, 179, 1, 180, 1, 180, 1, 180, 1, 180, 1, 180, 1, 180, 1, 180, 1, 180, 1, 180,
1, 180, 1, 181, 1, 181, 1, 181, 1, 181, 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, 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, 187, 1, 187, 1, 187, 1, 187, 1, 187, 1, 187, 1, 187, 1, 188, 1, 188, 1, 188, 1, 188,
1, 188, 1, 189, 1, 189, 1, 189, 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, 192, 1, 192, 1, 192, 1, 192, 1, 193, 1, 193,
1, 193, 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, 195, 1, 195, 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, 198, 1, 198,
1, 198, 1, 198, 1, 198, 1, 199, 1, 199, 1, 199, 1, 199, 1, 199, 1, 199, 1, 199, 1, 199,
1, 199, 1, 200, 1, 200, 1, 200, 1, 200, 1, 200, 1, 200, 1, 200, 1, 200, 1, 200, 1, 200,
1, 201, 1, 201, 1, 201, 1, 201, 1, 201, 1, 201, 1, 201, 1, 201, 1, 201, 1, 201, 1, 201,
1, 202, 1, 202, 1, 202, 1, 202, 1, 202, 1, 202, 1, 202, 1, 202, 1, 203, 1, 203, 1, 203,
1, 203, 1, 203, 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, 206, 1, 206, 1, 206, 1, 206, 1, 207, 1, 207, 1, 207,
1, 207, 1, 207, 1, 207, 1, 207, 1, 208, 1, 208, 1, 208, 1, 208, 1, 208, 1, 208, 1, 208,
1, 208, 1, 209, 1, 209, 1, 209, 1, 209, 1, 209, 1, 210, 1, 210, 1, 210, 1, 210, 1, 210,
1, 210, 1, 210, 1, 210, 1, 210, 1, 211, 1, 211, 1, 211, 1, 211, 1, 211, 1, 211, 1, 211,
1, 211, 1, 211, 1, 211, 1, 212, 1, 212, 1, 212, 1, 212, 1, 212, 1, 212, 1, 212, 1, 212,
1, 212, 1, 212, 1, 213, 1, 213, 1, 213, 1, 213, 1, 213, 1, 213, 1, 213, 1, 213, 1, 214,
1, 214, 1, 214, 1, 214, 1, 214, 1, 214, 1, 214, 1, 214, 1, 214, 1, 214, 1, 214, 1, 215,
1, 215, 1, 215, 1, 215, 1, 215, 1, 215, 1, 215, 1, 215, 1, 215, 1, 215, 1, 215, 1, 216,
1, 216, 1, 216, 1, 216, 1, 216, 1, 216, 1, 217, 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, 219, 1, 219, 1, 219, 1, 219,
1, 219, 1, 220, 1, 220, 1, 220, 1, 220, 1, 220, 1, 220, 1, 220, 1, 220, 1, 220, 1, 220,
1, 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, 224, 1, 224, 1, 224, 1, 224, 1, 224, 1, 224, 1, 224, 1, 224, 1, 224, 1, 224, 1, 224,
1, 225, 1, 225, 1, 225, 1, 225, 1, 225, 1, 225, 1, 225, 1, 225, 1, 226, 1, 226, 1, 226,
1, 226, 1, 226, 1, 226, 1, 227, 1, 227, 1, 227, 1, 227, 1, 227, 1, 227, 1, 227, 1, 227,
1, 228, 1, 228, 1, 228, 1, 228, 1, 228, 1, 228, 1, 228, 1, 228, 1, 228, 1, 229, 1, 229,
1, 229, 1, 229, 1, 229, 1, 229, 1, 229, 1, 230, 1, 230, 1, 230, 1, 230, 1, 230, 1, 230,
1, 230, 1, 230, 1, 230, 1, 230, 1, 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, 233, 1, 233, 1, 234, 1, 234, 1, 234, 1, 234, 1, 234, 1, 235, 1, 235, 1, 235,
1, 235, 1, 235, 1, 235, 1, 236, 1, 236, 1, 236, 1, 236, 1, 236, 1, 236, 1, 236, 1, 236,
1, 236, 1, 237, 1, 237, 1, 237, 1, 237, 1, 237, 1, 237, 1, 237, 1, 238, 1, 238, 1, 238,
1, 238, 1, 239, 1, 239, 1, 239, 1, 239, 1, 239, 1, 240, 1, 240, 1, 240, 1, 240, 1, 240,
1, 240, 1, 240, 1, 240, 1, 241, 1, 241, 1, 241, 1, 241, 1, 241, 1, 241, 1, 241, 1, 242,
1, 242, 1, 242, 1, 242, 1, 242, 1, 242, 1, 242, 1, 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, 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, 247, 1, 247, 1, 247, 1, 247, 1, 247, 1, 247, 1, 247, 1, 248, 1, 248,
1, 248, 1, 248, 1, 248, 1, 248, 1, 248, 1, 248, 1, 248, 1, 248, 1, 248, 1, 248, 1, 248,
1, 249, 1, 249, 1, 249, 1, 249, 1, 249, 1, 249, 1, 249, 1, 249, 1, 250, 1, 250, 1, 250,
1, 250, 1, 251, 1, 251, 1, 251, 1, 251, 1, 251, 1, 252, 1, 252, 1, 252, 1, 252, 1, 252,
1, 253, 1, 253, 1, 253, 1, 253, 1, 253, 1, 254, 1, 254, 1, 254, 1, 254, 1, 254, 1, 254,
1, 255, 1, 255, 1, 255, 1, 255, 1, 255, 1, 255, 1, 256, 1, 256, 1, 256, 1, 256, 1, 256,
1, 256, 1, 256, 1, 257, 1, 257, 1, 257, 1, 257, 1, 257, 1, 257, 1, 257, 1, 257, 1, 257,
1, 257, 1, 258, 1, 258, 1, 258, 1, 258, 1, 258, 1, 258, 1, 258, 1, 259, 1, 259, 1, 259,
1, 259, 1, 259, 1, 259, 1, 260, 1, 260, 1, 260, 1, 260, 1, 260, 1, 260, 1, 260, 1, 261,
1, 261, 1, 261, 1, 261, 1, 261, 1, 261, 1, 261, 1, 261, 1, 261, 1, 261, 1, 261, 1, 261,
1, 262, 1, 262, 1, 262, 1, 262, 1, 262, 1, 263, 1, 263, 1, 263, 1, 263, 1, 263, 1, 263,
1, 263, 1, 264, 1, 264, 1, 264, 1, 264, 1, 264, 1, 265, 1, 265, 1, 265, 1, 265, 1, 265,
1, 266, 1, 266, 1, 266, 1, 266, 1, 266, 1, 267, 1, 267, 1, 267, 1, 267, 1, 267, 1, 267,
1, 267, 1, 267, 1, 267, 1, 267, 1, 268, 1, 268, 1, 268, 1, 269, 1, 269, 1, 269, 1, 269,
1, 269, 1, 269, 1, 269, 1, 269, 1, 269, 1, 270, 1, 270, 1, 270, 1, 270, 1, 270, 1, 270,
1, 270, 1, 270, 1, 270, 1, 270, 1, 270, 1, 270, 1, 271, 1, 271, 1, 271, 1, 271, 1, 271,
1, 272, 1, 272, 1, 272, 1, 272, 1, 272, 1, 273, 1, 273, 1, 273, 1, 273, 1, 273, 1, 273,
1, 273, 1, 273, 1, 273, 1, 274, 1, 274, 1, 274, 1, 274, 1, 274, 1, 274, 1, 274, 1, 274,
1, 274, 1, 275, 1, 275, 1, 275, 1, 275, 1, 275, 1, 276, 1, 276, 1, 276, 1, 276, 1, 276,
1, 276, 1, 276, 1, 276, 1, 277, 1, 277, 1, 277, 1, 277, 1, 277, 1, 277, 1, 277, 1, 277,
1, 277, 1, 277, 1, 278, 1, 278, 1, 278, 1, 278, 1, 278, 1, 278, 1, 278, 1, 278, 1, 278,
1, 278, 1, 278, 1, 278, 1, 279, 1, 279, 1, 279, 1, 279, 1, 279, 1, 279, 1, 279, 1, 279,
1, 279, 1, 279, 1, 279, 1, 279, 1, 279, 1, 279, 1, 280, 1, 280, 1, 280, 1, 280, 1, 280,
1, 280, 1, 281, 1, 281, 1, 281, 1, 281, 1, 281, 1, 281, 1, 281, 1, 282, 1, 282, 1, 282,
1, 282, 1, 282, 1, 282, 1, 282, 1, 282, 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, 285, 1, 285, 1, 285, 1, 285, 1, 285, 1, 285, 1, 286, 1, 286, 1, 286, 1, 286, 1, 286,
1, 286, 1, 286, 1, 287, 1, 287, 1, 287, 1, 287, 1, 288, 1, 288, 1, 288, 1, 288, 1, 288,
1, 289, 1, 289, 1, 289, 1, 289, 1, 289, 1, 289, 1, 290, 1, 290, 1, 290, 1, 290, 1, 290,
1, 290, 1, 291, 1, 291, 1, 291, 1, 291, 1, 291, 1, 291, 1, 292, 1, 292, 1, 292, 1, 292,
1, 292, 1, 293, 1, 293, 1, 293, 1, 293, 1, 293, 1, 293, 1, 293, 1, 293, 1, 293, 1, 294,
1, 294, 1, 294, 1, 294, 1, 294, 1, 294, 1, 295, 1, 295, 1, 295, 1, 295, 1, 295, 1, 295,
1, 295, 1, 296, 1, 296, 1, 296, 1, 296, 1, 296, 1, 296, 1, 296, 1, 296, 1, 297, 1, 297,
1, 297, 1, 297, 1, 297, 1, 297, 1, 297, 1, 297, 1, 298, 1, 298, 1, 298, 1, 298, 1, 298,
1, 299, 1, 299, 1, 299, 1, 299, 1, 299, 1, 300, 1, 300, 1, 300, 1, 300, 1, 300, 1, 300,
1, 301, 1, 301, 1, 301, 1, 301, 1, 301, 1, 301, 1, 302, 1, 302, 1, 302, 1, 302, 1, 302,
1, 302, 1, 302, 1, 303, 1, 303, 1, 303, 1, 303, 1, 303, 1, 304, 1, 304, 1, 304, 1, 304,
1, 304, 1, 304, 1, 304, 1, 305, 1, 305, 1, 305, 1, 305, 1, 305, 1, 305, 1, 305, 1, 305,
1, 306, 1, 306, 1, 306, 1, 306, 1, 306, 1, 307, 1, 307, 1, 307, 1, 307, 1, 307, 1, 307,
1, 307, 1, 307, 1, 308, 1, 308, 1, 308, 1, 308, 1, 308, 1, 308, 1, 309, 1, 309, 1, 309,
1, 309, 1, 309, 1, 310, 1, 310, 1, 310, 1, 310, 1, 310, 1, 311, 1, 311, 1, 312, 1, 312,
1, 312, 1, 312, 3, 312, 2871, 8, 312, 1, 313, 1, 313, 1, 314, 1, 314, 1, 314, 1, 315,
1, 315, 1, 316, 1, 316, 1, 316, 1, 317, 1, 317, 1, 318, 1, 318, 1, 319, 1, 319, 1, 320,
1, 320, 1, 321, 1, 321, 1, 322, 1, 322, 1, 322, 1, 323, 1, 323, 1, 324, 1, 324, 1, 325,
1, 325, 1, 325, 1, 325, 5, 325, 2904, 8, 325, 10, 325, 12, 325, 2907, 9, 325, 1, 325,
1, 325, 1, 326, 1, 326, 1, 326, 1, 326, 1, 326, 1, 326, 1, 326, 5, 326, 2918, 8, 326,
10, 326, 12, 326, 2921, 9, 326, 1, 326, 1, 326, 1, 327, 1, 327, 1, 327, 1, 327, 5, 327,
2929, 8, 327, 10, 327, 12, 327, 2932, 9, 327, 1, 327, 1, 327, 1, 328, 1, 328, 1, 328,
1, 328, 3, 328, 2940, 8, 328, 1, 329, 1, 329, 1, 329, 3, 329, 2945, 8, 329, 1, 329,
1, 329, 3, 329, 2949, 8, 329, 1, 330, 4, 330, 2952, 8, 330, 11, 330, 12, 330, 2953,
1, 330, 1, 330, 5, 330, 2958, 8, 330, 10, 330, 12, 330, 2961, 9, 330, 3, 330, 2963,
8, 330, 1, 330, 1, 330, 1, 330, 1, 330, 4, 330, 2969, 8, 330, 11, 330, 12, 330, 2970,
1, 330, 1, 330, 3, 330, 2975, 8, 330, 1, 331, 1, 331, 3, 331, 2979, 8, 331, 1, 331,
1, 331, 1, 331, 5, 331, 2984, 8, 331, 10, 331, 12, 331, 2987, 9, 331, 1, 332, 1, 332,
1, 332, 1, 332, 4, 332, 2993, 8, 332, 11, 332, 12, 332, 2994, 1, 333, 1, 333, 1, 333,
1, 333, 5, 333, 3001, 8, 333, 10, 333, 12, 333, 3004, 9, 333, 1, 333, 1, 333, 1, 334,
1, 334, 1, 334, 1, 334, 5, 334, 3012, 8, 334, 10, 334, 12, 334, 3015, 9, 334, 1, 334,
1, 334, 1, 335, 1, 335, 3, 335, 3021, 8, 335, 1, 335, 5, 335, 3024, 8, 335, 10, 335,
12, 335, 3027, 9, 335, 1, 336, 1, 336, 1, 336, 1, 336, 3, 336, 3033, 8, 336, 1, 336,
1, 336, 3, 336, 3037, 8, 336, 4, 336, 3039, 8, 336, 11, 336, 12, 336, 3040, 1, 337,
1, 337, 1, 337, 1, 337, 3, 337, 3047, 8, 337, 1, 337,