dt-sql-parser 4.0.0-ng.2 → 4.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (142) hide show
  1. package/README.md +119 -112
  2. package/dist/index.d.ts +14 -6
  3. package/dist/index.js +11 -4
  4. package/dist/lib/SQLParserBase.d.ts +8 -0
  5. package/dist/lib/SQLParserBase.js +14 -0
  6. package/dist/lib/{flinksql → flink}/FlinkSqlLexer.d.ts +2 -2
  7. package/dist/lib/{flinksql → flink}/FlinkSqlLexer.js +2 -1
  8. package/dist/lib/{flinksql → flink}/FlinkSqlParser.d.ts +5 -11
  9. package/dist/lib/{flinksql → flink}/FlinkSqlParser.js +2065 -2054
  10. package/dist/lib/{flinksql → flink}/FlinkSqlParserListener.d.ts +0 -13
  11. package/dist/lib/{flinksql → flink}/FlinkSqlParserListener.js +1 -1
  12. package/dist/lib/{flinksql → flink}/FlinkSqlParserVisitor.d.ts +0 -8
  13. package/dist/lib/{flinksql → flink}/FlinkSqlParserVisitor.js +2 -1
  14. package/dist/lib/hive/HiveSqlLexer.d.ts +258 -257
  15. package/dist/lib/hive/HiveSqlLexer.js +1794 -1786
  16. package/dist/lib/hive/HiveSqlParser.d.ts +1266 -3176
  17. package/dist/lib/hive/HiveSqlParser.js +23046 -33454
  18. package/dist/lib/hive/HiveSqlParserListener.d.ts +141 -2036
  19. package/dist/lib/hive/HiveSqlParserVisitor.d.ts +151 -1358
  20. package/dist/lib/hive/HiveSqlParserVisitor.js +1 -0
  21. package/dist/lib/impala/ImpalaSqlLexer.d.ts +170 -154
  22. package/dist/lib/impala/ImpalaSqlLexer.js +1179 -1099
  23. package/dist/lib/impala/ImpalaSqlParser.d.ts +282 -240
  24. package/dist/lib/impala/ImpalaSqlParser.js +3881 -3744
  25. package/dist/lib/impala/ImpalaSqlParserListener.d.ts +22 -11
  26. package/dist/lib/impala/ImpalaSqlParserVisitor.d.ts +14 -7
  27. package/dist/lib/impala/ImpalaSqlParserVisitor.js +1 -0
  28. package/dist/lib/index.d.ts +6 -6
  29. package/dist/lib/index.js +6 -6
  30. package/dist/lib/mysql/MySqlLexer.d.ts +2 -2
  31. package/dist/lib/mysql/MySqlLexer.js +1 -0
  32. package/dist/lib/mysql/MySqlParser.d.ts +347 -418
  33. package/dist/lib/mysql/MySqlParser.js +10484 -11099
  34. package/dist/lib/mysql/MySqlParserListener.d.ts +41 -126
  35. package/dist/lib/mysql/MySqlParserVisitor.d.ts +23 -76
  36. package/dist/lib/mysql/MySqlParserVisitor.js +1 -0
  37. package/dist/lib/plsql/PlSqlBaseLexer.d.ts +1 -2
  38. package/dist/lib/plsql/PlSqlBaseLexer.js +1 -1
  39. package/dist/lib/plsql/PlSqlBaseParser.d.ts +3 -2
  40. package/dist/lib/plsql/PlSqlBaseParser.js +2 -2
  41. package/dist/lib/plsql/PlSqlLexer.d.ts +3 -3
  42. package/dist/lib/plsql/PlSqlLexer.js +2 -1
  43. package/dist/lib/plsql/PlSqlParser.d.ts +3 -3
  44. package/dist/lib/plsql/PlSqlParser.js +2 -1
  45. package/dist/lib/plsql/PlSqlParserVisitor.js +1 -0
  46. package/dist/lib/{pgsql/PostgreSQLLexer.d.ts → postgresql/PostgreSqlLexer.d.ts} +3 -3
  47. package/dist/lib/{pgsql/PostgreSQLLexer.js → postgresql/PostgreSqlLexer.js} +618 -617
  48. package/dist/lib/{pgsql/PostgreSQLParser.d.ts → postgresql/PostgreSqlParser.d.ts} +3598 -3484
  49. package/dist/lib/{pgsql/PostgreSQLParser.js → postgresql/PostgreSqlParser.js} +41502 -42831
  50. package/dist/lib/{pgsql/PostgreSQLParserListener.d.ts → postgresql/PostgreSqlParserListener.d.ts} +2797 -2730
  51. package/dist/lib/{pgsql/PostgreSQLParserListener.js → postgresql/PostgreSqlParserListener.js} +3 -3
  52. package/dist/lib/{pgsql/PostgreSQLParserVisitor.d.ts → postgresql/PostgreSqlParserVisitor.d.ts} +1845 -1810
  53. package/dist/lib/{pgsql/PostgreSQLParserVisitor.js → postgresql/PostgreSqlParserVisitor.js} +4 -3
  54. package/dist/lib/spark/SparkSqlLexer.d.ts +305 -298
  55. package/dist/lib/spark/SparkSqlLexer.js +1777 -1735
  56. package/dist/lib/spark/SparkSqlParser.d.ts +1764 -669
  57. package/dist/lib/spark/SparkSqlParser.js +15460 -10769
  58. package/dist/lib/spark/SparkSqlParserListener.d.ts +1285 -35
  59. package/dist/lib/spark/SparkSqlParserVisitor.d.ts +790 -21
  60. package/dist/lib/spark/SparkSqlParserVisitor.js +1 -0
  61. package/dist/lib/{trinosql → trino}/TrinoSqlLexer.d.ts +2 -2
  62. package/dist/lib/{trinosql → trino}/TrinoSqlLexer.js +2 -1
  63. package/dist/lib/{trinosql → trino}/TrinoSqlListener.d.ts +7 -5
  64. package/dist/lib/{trinosql → trino}/TrinoSqlListener.js +1 -1
  65. package/dist/lib/{trinosql → trino}/TrinoSqlParser.d.ts +11 -5
  66. package/dist/lib/{trinosql → trino}/TrinoSqlParser.js +360 -320
  67. package/dist/lib/{trinosql → trino}/TrinoSqlVisitor.d.ts +4 -3
  68. package/dist/lib/{trinosql → trino}/TrinoSqlVisitor.js +2 -1
  69. package/dist/parser/common/{basicParser.d.ts → basicSQL.d.ts} +22 -19
  70. package/dist/parser/common/{basicParser.js → basicSQL.js} +52 -34
  71. package/dist/parser/common/entityCollector.d.ts +78 -0
  72. package/dist/parser/common/entityCollector.js +191 -0
  73. package/dist/parser/common/{utils/findCaretTokenIndex.d.ts → findCaretTokenIndex.d.ts} +2 -2
  74. package/dist/parser/common/{utils/findCaretTokenIndex.js → findCaretTokenIndex.js} +3 -2
  75. package/dist/parser/common/parseErrorListener.d.ts +6 -6
  76. package/dist/parser/common/parseErrorListener.js +1 -1
  77. package/dist/parser/common/simpleStack.d.ts +10 -0
  78. package/dist/parser/common/simpleStack.js +23 -0
  79. package/dist/parser/common/splitListener.d.ts +8 -0
  80. package/dist/parser/common/splitListener.js +12 -0
  81. package/dist/parser/common/textAndWord.d.ts +52 -0
  82. package/dist/parser/common/textAndWord.js +58 -0
  83. package/dist/parser/common/{basic-parser-types.d.ts → types.d.ts} +4 -31
  84. package/dist/parser/common/types.js +34 -0
  85. package/dist/parser/flink/flinkEntityCollector.d.ts +33 -0
  86. package/dist/parser/flink/flinkEntityCollector.js +84 -0
  87. package/dist/parser/flink/flinkSplitListener.d.ts +6 -0
  88. package/dist/parser/flink/flinkSplitListener.js +6 -0
  89. package/dist/parser/flink/index.d.ts +17 -0
  90. package/dist/parser/{flinksql.js → flink/index.js} +26 -37
  91. package/dist/parser/hive/hiveEntityCollector.d.ts +35 -0
  92. package/dist/parser/hive/hiveEntityCollector.js +90 -0
  93. package/dist/parser/hive/hiveSplitListener.d.ts +6 -0
  94. package/dist/parser/hive/hiveSplitListener.js +6 -0
  95. package/dist/parser/hive/index.d.ts +17 -0
  96. package/dist/parser/{hive.js → hive/index.js} +24 -34
  97. package/dist/parser/impala/impalaEntityCollector.d.ts +35 -0
  98. package/dist/parser/impala/impalaEntityCollector.js +90 -0
  99. package/dist/parser/impala/impalaSplitListener.d.ts +6 -0
  100. package/dist/parser/impala/impalaSplitListener.js +6 -0
  101. package/dist/parser/impala/index.d.ts +17 -0
  102. package/dist/parser/{impala.js → impala/index.js} +24 -34
  103. package/dist/parser/index.d.ts +8 -8
  104. package/dist/parser/index.js +8 -8
  105. package/dist/parser/mysql/index.d.ts +17 -0
  106. package/dist/parser/{mysql.js → mysql/index.js} +24 -34
  107. package/dist/parser/mysql/mysqlEntityCollector.d.ts +37 -0
  108. package/dist/parser/mysql/mysqlEntityCollector.js +96 -0
  109. package/dist/parser/mysql/mysqlSplitListener.d.ts +6 -0
  110. package/dist/parser/mysql/mysqlSplitListener.js +6 -0
  111. package/dist/parser/plsql.d.ts +7 -6
  112. package/dist/parser/plsql.js +6 -4
  113. package/dist/parser/postgresql/index.d.ts +17 -0
  114. package/dist/parser/postgresql/index.js +130 -0
  115. package/dist/parser/postgresql/postgreEntityCollector.d.ts +37 -0
  116. package/dist/parser/postgresql/postgreEntityCollector.js +96 -0
  117. package/dist/parser/postgresql/postgreSplitListener.d.ts +6 -0
  118. package/dist/parser/postgresql/postgreSplitListener.js +6 -0
  119. package/dist/parser/spark/index.d.ts +17 -0
  120. package/dist/parser/{spark.js → spark/index.js} +29 -40
  121. package/dist/parser/spark/sparkEntityCollector.d.ts +37 -0
  122. package/dist/parser/spark/sparkEntityCollector.js +96 -0
  123. package/dist/parser/spark/sparkSplitListener.d.ts +6 -0
  124. package/dist/parser/spark/sparkSplitListener.js +6 -0
  125. package/dist/parser/trino/index.d.ts +17 -0
  126. package/dist/parser/{trinosql.js → trino/index.js} +25 -36
  127. package/dist/parser/trino/trinoEntityCollector.d.ts +30 -0
  128. package/dist/parser/trino/trinoEntityCollector.js +75 -0
  129. package/dist/parser/trino/trinoSplitListener.d.ts +6 -0
  130. package/dist/parser/trino/trinoSplitListener.js +6 -0
  131. package/dist/utils/index.d.ts +1 -1
  132. package/dist/utils/token.d.ts +1 -1
  133. package/package.json +1 -1
  134. package/dist/parser/common/basic-parser-types.js +0 -34
  135. package/dist/parser/flinksql.d.ts +0 -23
  136. package/dist/parser/hive.d.ts +0 -23
  137. package/dist/parser/impala.d.ts +0 -23
  138. package/dist/parser/mysql.d.ts +0 -23
  139. package/dist/parser/pgsql.d.ts +0 -23
  140. package/dist/parser/pgsql.js +0 -140
  141. package/dist/parser/spark.d.ts +0 -23
  142. package/dist/parser/trinosql.d.ts +0 -23
@@ -1,6 +1,8 @@
1
- // Generated from dt-sql-parser/src/grammar/trinosql/TrinoSql.g4 by ANTLR 4.13.1
1
+ // Generated from dt-sql-parser/src/grammar/trino/TrinoSql.g4 by ANTLR 4.13.1
2
+ // @ts-nocheck
2
3
  import * as antlr from "antlr4ng";
3
- class TrinoSqlParser extends antlr.Parser {
4
+ import { SQLParserBase } from '../SQLParserBase';
5
+ class TrinoSqlParser extends SQLParserBase {
4
6
  get grammarFileName() { return "TrinoSql.g4"; }
5
7
  get literalNames() { return TrinoSqlParser.literalNames; }
6
8
  get symbolicNames() { return TrinoSqlParser.symbolicNames; }
@@ -2780,6 +2782,7 @@ class TrinoSqlParser extends antlr.Parser {
2780
2782
  this.enterRule(localContext, 18, TrinoSqlParser.RULE_query);
2781
2783
  let _la;
2782
2784
  try {
2785
+ localContext = new QueryStatementContext(localContext);
2783
2786
  this.enterOuterAlt(localContext, 1);
2784
2787
  {
2785
2788
  this.state = 1039;
@@ -4091,28 +4094,29 @@ class TrinoSqlParser extends antlr.Parser {
4091
4094
  this.match(TrinoSqlParser.T__0);
4092
4095
  this.state = 1258;
4093
4096
  this.errorHandler.sync(this);
4094
- _la = this.tokenStream.LA(1);
4095
- if ((((_la) & ~0x1F) === 0 && ((1 << _la) & 2069757954) !== 0) || ((((_la - 33)) & ~0x1F) === 0 && ((1 << (_la - 33)) & 1476117503) !== 0) || ((((_la - 65)) & ~0x1F) === 0 && ((1 << (_la - 65)) & 2120217677) !== 0) || ((((_la - 97)) & ~0x1F) === 0 && ((1 << (_la - 97)) & 4252345787) !== 0) || ((((_la - 129)) & ~0x1F) === 0 && ((1 << (_la - 129)) & 1325399551) !== 0) || ((((_la - 161)) & ~0x1F) === 0 && ((1 << (_la - 161)) & 3153981439) !== 0) || ((((_la - 193)) & ~0x1F) === 0 && ((1 << (_la - 193)) & 4286054271) !== 0) || ((((_la - 225)) & ~0x1F) === 0 && ((1 << (_la - 225)) & 3237637037) !== 0) || ((((_la - 261)) & ~0x1F) === 0 && ((1 << (_la - 261)) & 2047) !== 0)) {
4096
- {
4097
- this.state = 1250;
4098
- this.groupingTerm();
4099
- this.state = 1255;
4100
- this.errorHandler.sync(this);
4101
- _la = this.tokenStream.LA(1);
4102
- while (_la === 3) {
4103
- {
4097
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 157, this.context)) {
4098
+ case 1:
4099
+ {
4100
+ this.state = 1250;
4101
+ this.groupingTerm();
4102
+ this.state = 1255;
4103
+ this.errorHandler.sync(this);
4104
+ _la = this.tokenStream.LA(1);
4105
+ while (_la === 3) {
4104
4106
  {
4105
- this.state = 1251;
4106
- this.match(TrinoSqlParser.T__2);
4107
- this.state = 1252;
4108
- this.groupingTerm();
4107
+ {
4108
+ this.state = 1251;
4109
+ this.match(TrinoSqlParser.T__2);
4110
+ this.state = 1252;
4111
+ this.groupingTerm();
4112
+ }
4109
4113
  }
4114
+ this.state = 1257;
4115
+ this.errorHandler.sync(this);
4116
+ _la = this.tokenStream.LA(1);
4110
4117
  }
4111
- this.state = 1257;
4112
- this.errorHandler.sync(this);
4113
- _la = this.tokenStream.LA(1);
4114
4118
  }
4115
- }
4119
+ break;
4116
4120
  }
4117
4121
  this.state = 1260;
4118
4122
  this.match(TrinoSqlParser.T__1);
@@ -4128,28 +4132,29 @@ class TrinoSqlParser extends antlr.Parser {
4128
4132
  this.match(TrinoSqlParser.T__0);
4129
4133
  this.state = 1271;
4130
4134
  this.errorHandler.sync(this);
4131
- _la = this.tokenStream.LA(1);
4132
- if ((((_la) & ~0x1F) === 0 && ((1 << _la) & 2069757954) !== 0) || ((((_la - 33)) & ~0x1F) === 0 && ((1 << (_la - 33)) & 1476117503) !== 0) || ((((_la - 65)) & ~0x1F) === 0 && ((1 << (_la - 65)) & 2120217677) !== 0) || ((((_la - 97)) & ~0x1F) === 0 && ((1 << (_la - 97)) & 4252345787) !== 0) || ((((_la - 129)) & ~0x1F) === 0 && ((1 << (_la - 129)) & 1325399551) !== 0) || ((((_la - 161)) & ~0x1F) === 0 && ((1 << (_la - 161)) & 3153981439) !== 0) || ((((_la - 193)) & ~0x1F) === 0 && ((1 << (_la - 193)) & 4286054271) !== 0) || ((((_la - 225)) & ~0x1F) === 0 && ((1 << (_la - 225)) & 3237637037) !== 0) || ((((_la - 261)) & ~0x1F) === 0 && ((1 << (_la - 261)) & 2047) !== 0)) {
4133
- {
4134
- this.state = 1263;
4135
- this.groupingTerm();
4136
- this.state = 1268;
4137
- this.errorHandler.sync(this);
4138
- _la = this.tokenStream.LA(1);
4139
- while (_la === 3) {
4140
- {
4135
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 159, this.context)) {
4136
+ case 1:
4137
+ {
4138
+ this.state = 1263;
4139
+ this.groupingTerm();
4140
+ this.state = 1268;
4141
+ this.errorHandler.sync(this);
4142
+ _la = this.tokenStream.LA(1);
4143
+ while (_la === 3) {
4141
4144
  {
4142
- this.state = 1264;
4143
- this.match(TrinoSqlParser.T__2);
4144
- this.state = 1265;
4145
- this.groupingTerm();
4145
+ {
4146
+ this.state = 1264;
4147
+ this.match(TrinoSqlParser.T__2);
4148
+ this.state = 1265;
4149
+ this.groupingTerm();
4150
+ }
4146
4151
  }
4152
+ this.state = 1270;
4153
+ this.errorHandler.sync(this);
4154
+ _la = this.tokenStream.LA(1);
4147
4155
  }
4148
- this.state = 1270;
4149
- this.errorHandler.sync(this);
4150
- _la = this.tokenStream.LA(1);
4151
4156
  }
4152
- }
4157
+ break;
4153
4158
  }
4154
4159
  this.state = 1273;
4155
4160
  this.match(TrinoSqlParser.T__1);
@@ -4219,28 +4224,29 @@ class TrinoSqlParser extends antlr.Parser {
4219
4224
  this.match(TrinoSqlParser.T__0);
4220
4225
  this.state = 1298;
4221
4226
  this.errorHandler.sync(this);
4222
- _la = this.tokenStream.LA(1);
4223
- if ((((_la) & ~0x1F) === 0 && ((1 << _la) & 2069757954) !== 0) || ((((_la - 33)) & ~0x1F) === 0 && ((1 << (_la - 33)) & 1476117503) !== 0) || ((((_la - 65)) & ~0x1F) === 0 && ((1 << (_la - 65)) & 2120217677) !== 0) || ((((_la - 97)) & ~0x1F) === 0 && ((1 << (_la - 97)) & 4252345787) !== 0) || ((((_la - 129)) & ~0x1F) === 0 && ((1 << (_la - 129)) & 1325399551) !== 0) || ((((_la - 161)) & ~0x1F) === 0 && ((1 << (_la - 161)) & 3153981439) !== 0) || ((((_la - 193)) & ~0x1F) === 0 && ((1 << (_la - 193)) & 4286054271) !== 0) || ((((_la - 225)) & ~0x1F) === 0 && ((1 << (_la - 225)) & 3237637037) !== 0) || ((((_la - 261)) & ~0x1F) === 0 && ((1 << (_la - 261)) & 2047) !== 0)) {
4224
- {
4225
- this.state = 1290;
4226
- this.groupingTerm();
4227
- this.state = 1295;
4228
- this.errorHandler.sync(this);
4229
- _la = this.tokenStream.LA(1);
4230
- while (_la === 3) {
4231
- {
4227
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 163, this.context)) {
4228
+ case 1:
4229
+ {
4230
+ this.state = 1290;
4231
+ this.groupingTerm();
4232
+ this.state = 1295;
4233
+ this.errorHandler.sync(this);
4234
+ _la = this.tokenStream.LA(1);
4235
+ while (_la === 3) {
4232
4236
  {
4233
- this.state = 1291;
4234
- this.match(TrinoSqlParser.T__2);
4235
- this.state = 1292;
4236
- this.groupingTerm();
4237
+ {
4238
+ this.state = 1291;
4239
+ this.match(TrinoSqlParser.T__2);
4240
+ this.state = 1292;
4241
+ this.groupingTerm();
4242
+ }
4237
4243
  }
4244
+ this.state = 1297;
4245
+ this.errorHandler.sync(this);
4246
+ _la = this.tokenStream.LA(1);
4238
4247
  }
4239
- this.state = 1297;
4240
- this.errorHandler.sync(this);
4241
- _la = this.tokenStream.LA(1);
4242
4248
  }
4243
- }
4249
+ break;
4244
4250
  }
4245
4251
  this.state = 1300;
4246
4252
  this.match(TrinoSqlParser.T__1);
@@ -10372,10 +10378,25 @@ class TrinoSqlParser extends antlr.Parser {
10372
10378
  let localContext = new ColumnNameContext(this.context, this.state);
10373
10379
  this.enterRule(localContext, 200, TrinoSqlParser.RULE_columnName);
10374
10380
  try {
10375
- this.enterOuterAlt(localContext, 1);
10376
- {
10377
- this.state = 2549;
10378
- this.qualifiedName();
10381
+ this.state = 2551;
10382
+ this.errorHandler.sync(this);
10383
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 330, this.context)) {
10384
+ case 1:
10385
+ this.enterOuterAlt(localContext, 1);
10386
+ {
10387
+ this.state = 2549;
10388
+ this.qualifiedName();
10389
+ }
10390
+ break;
10391
+ case 2:
10392
+ this.enterOuterAlt(localContext, 2);
10393
+ {
10394
+ this.state = 2550;
10395
+ if (!(this.shouldMatchEmpty())) {
10396
+ throw this.createFailedPredicateException("this.shouldMatchEmpty()");
10397
+ }
10398
+ }
10399
+ break;
10379
10400
  }
10380
10401
  }
10381
10402
  catch (re) {
@@ -10399,7 +10420,7 @@ class TrinoSqlParser extends antlr.Parser {
10399
10420
  try {
10400
10421
  this.enterOuterAlt(localContext, 1);
10401
10422
  {
10402
- this.state = 2551;
10423
+ this.state = 2553;
10403
10424
  this.identifier();
10404
10425
  }
10405
10426
  }
@@ -10425,25 +10446,25 @@ class TrinoSqlParser extends antlr.Parser {
10425
10446
  let alternative;
10426
10447
  this.enterOuterAlt(localContext, 1);
10427
10448
  {
10428
- this.state = 2553;
10449
+ this.state = 2555;
10429
10450
  this.identifier();
10430
- this.state = 2558;
10451
+ this.state = 2560;
10431
10452
  this.errorHandler.sync(this);
10432
- alternative = this.interpreter.adaptivePredict(this.tokenStream, 330, this.context);
10453
+ alternative = this.interpreter.adaptivePredict(this.tokenStream, 331, this.context);
10433
10454
  while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER) {
10434
10455
  if (alternative === 1) {
10435
10456
  {
10436
10457
  {
10437
- this.state = 2554;
10458
+ this.state = 2556;
10438
10459
  this.match(TrinoSqlParser.T__3);
10439
- this.state = 2555;
10460
+ this.state = 2557;
10440
10461
  this.identifier();
10441
10462
  }
10442
10463
  }
10443
10464
  }
10444
- this.state = 2560;
10465
+ this.state = 2562;
10445
10466
  this.errorHandler.sync(this);
10446
- alternative = this.interpreter.adaptivePredict(this.tokenStream, 330, this.context);
10467
+ alternative = this.interpreter.adaptivePredict(this.tokenStream, 331, this.context);
10447
10468
  }
10448
10469
  }
10449
10470
  }
@@ -10466,7 +10487,7 @@ class TrinoSqlParser extends antlr.Parser {
10466
10487
  let localContext = new GrantorContext(this.context, this.state);
10467
10488
  this.enterRule(localContext, 206, TrinoSqlParser.RULE_grantor);
10468
10489
  try {
10469
- this.state = 2564;
10490
+ this.state = 2566;
10470
10491
  this.errorHandler.sync(this);
10471
10492
  switch (this.tokenStream.LA(1)) {
10472
10493
  case TrinoSqlParser.KW_ADD:
@@ -10635,7 +10656,7 @@ class TrinoSqlParser extends antlr.Parser {
10635
10656
  localContext = new SpecifiedPrincipalContext(localContext);
10636
10657
  this.enterOuterAlt(localContext, 1);
10637
10658
  {
10638
- this.state = 2561;
10659
+ this.state = 2563;
10639
10660
  this.principal();
10640
10661
  }
10641
10662
  break;
@@ -10643,7 +10664,7 @@ class TrinoSqlParser extends antlr.Parser {
10643
10664
  localContext = new CurrentUserGrantorContext(localContext);
10644
10665
  this.enterOuterAlt(localContext, 2);
10645
10666
  {
10646
- this.state = 2562;
10667
+ this.state = 2564;
10647
10668
  this.match(TrinoSqlParser.KW_CURRENT_USER);
10648
10669
  }
10649
10670
  break;
@@ -10651,7 +10672,7 @@ class TrinoSqlParser extends antlr.Parser {
10651
10672
  localContext = new CurrentRoleGrantorContext(localContext);
10652
10673
  this.enterOuterAlt(localContext, 3);
10653
10674
  {
10654
- this.state = 2563;
10675
+ this.state = 2565;
10655
10676
  this.match(TrinoSqlParser.KW_CURRENT_ROLE);
10656
10677
  }
10657
10678
  break;
@@ -10678,14 +10699,14 @@ class TrinoSqlParser extends antlr.Parser {
10678
10699
  let localContext = new PrincipalContext(this.context, this.state);
10679
10700
  this.enterRule(localContext, 208, TrinoSqlParser.RULE_principal);
10680
10701
  try {
10681
- this.state = 2571;
10702
+ this.state = 2573;
10682
10703
  this.errorHandler.sync(this);
10683
- switch (this.interpreter.adaptivePredict(this.tokenStream, 332, this.context)) {
10704
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 333, this.context)) {
10684
10705
  case 1:
10685
10706
  localContext = new UnspecifiedPrincipalContext(localContext);
10686
10707
  this.enterOuterAlt(localContext, 1);
10687
10708
  {
10688
- this.state = 2566;
10709
+ this.state = 2568;
10689
10710
  this.identifier();
10690
10711
  }
10691
10712
  break;
@@ -10693,9 +10714,9 @@ class TrinoSqlParser extends antlr.Parser {
10693
10714
  localContext = new UserPrincipalContext(localContext);
10694
10715
  this.enterOuterAlt(localContext, 2);
10695
10716
  {
10696
- this.state = 2567;
10717
+ this.state = 2569;
10697
10718
  this.match(TrinoSqlParser.KW_USER);
10698
- this.state = 2568;
10719
+ this.state = 2570;
10699
10720
  this.identifier();
10700
10721
  }
10701
10722
  break;
@@ -10703,9 +10724,9 @@ class TrinoSqlParser extends antlr.Parser {
10703
10724
  localContext = new RolePrincipalContext(localContext);
10704
10725
  this.enterOuterAlt(localContext, 3);
10705
10726
  {
10706
- this.state = 2569;
10727
+ this.state = 2571;
10707
10728
  this.match(TrinoSqlParser.KW_ROLE);
10708
- this.state = 2570;
10729
+ this.state = 2572;
10709
10730
  this.identifier();
10710
10731
  }
10711
10732
  break;
@@ -10733,21 +10754,21 @@ class TrinoSqlParser extends antlr.Parser {
10733
10754
  try {
10734
10755
  this.enterOuterAlt(localContext, 1);
10735
10756
  {
10736
- this.state = 2573;
10757
+ this.state = 2575;
10737
10758
  this.identifier();
10738
- this.state = 2578;
10759
+ this.state = 2580;
10739
10760
  this.errorHandler.sync(this);
10740
10761
  _la = this.tokenStream.LA(1);
10741
10762
  while (_la === 3) {
10742
10763
  {
10743
10764
  {
10744
- this.state = 2574;
10765
+ this.state = 2576;
10745
10766
  this.match(TrinoSqlParser.T__2);
10746
- this.state = 2575;
10767
+ this.state = 2577;
10747
10768
  this.identifier();
10748
10769
  }
10749
10770
  }
10750
- this.state = 2580;
10771
+ this.state = 2582;
10751
10772
  this.errorHandler.sync(this);
10752
10773
  _la = this.tokenStream.LA(1);
10753
10774
  }
@@ -10772,14 +10793,14 @@ class TrinoSqlParser extends antlr.Parser {
10772
10793
  let localContext = new IdentifierContext(this.context, this.state);
10773
10794
  this.enterRule(localContext, 212, TrinoSqlParser.RULE_identifier);
10774
10795
  try {
10775
- this.state = 2586;
10796
+ this.state = 2588;
10776
10797
  this.errorHandler.sync(this);
10777
10798
  switch (this.tokenStream.LA(1)) {
10778
10799
  case TrinoSqlParser.IDENTIFIER:
10779
10800
  localContext = new UnquotedIdentifierContext(localContext);
10780
10801
  this.enterOuterAlt(localContext, 1);
10781
10802
  {
10782
- this.state = 2581;
10803
+ this.state = 2583;
10783
10804
  this.match(TrinoSqlParser.IDENTIFIER);
10784
10805
  }
10785
10806
  break;
@@ -10787,7 +10808,7 @@ class TrinoSqlParser extends antlr.Parser {
10787
10808
  localContext = new QuotedIdentifierContext(localContext);
10788
10809
  this.enterOuterAlt(localContext, 2);
10789
10810
  {
10790
- this.state = 2582;
10811
+ this.state = 2584;
10791
10812
  this.match(TrinoSqlParser.QUOTED_IDENTIFIER);
10792
10813
  }
10793
10814
  break;
@@ -10953,7 +10974,7 @@ class TrinoSqlParser extends antlr.Parser {
10953
10974
  localContext = new UnquotedIdentifierContext(localContext);
10954
10975
  this.enterOuterAlt(localContext, 3);
10955
10976
  {
10956
- this.state = 2583;
10977
+ this.state = 2585;
10957
10978
  this.nonReserved();
10958
10979
  }
10959
10980
  break;
@@ -10961,7 +10982,7 @@ class TrinoSqlParser extends antlr.Parser {
10961
10982
  localContext = new BackQuotedIdentifierContext(localContext);
10962
10983
  this.enterOuterAlt(localContext, 4);
10963
10984
  {
10964
- this.state = 2584;
10985
+ this.state = 2586;
10965
10986
  this.match(TrinoSqlParser.BACKQUOTED_IDENTIFIER);
10966
10987
  }
10967
10988
  break;
@@ -10969,7 +10990,7 @@ class TrinoSqlParser extends antlr.Parser {
10969
10990
  localContext = new DigitIdentifierContext(localContext);
10970
10991
  this.enterOuterAlt(localContext, 5);
10971
10992
  {
10972
- this.state = 2585;
10993
+ this.state = 2587;
10973
10994
  this.match(TrinoSqlParser.DIGIT_IDENTIFIER);
10974
10995
  }
10975
10996
  break;
@@ -10997,23 +11018,23 @@ class TrinoSqlParser extends antlr.Parser {
10997
11018
  this.enterRule(localContext, 214, TrinoSqlParser.RULE_number);
10998
11019
  let _la;
10999
11020
  try {
11000
- this.state = 2600;
11021
+ this.state = 2602;
11001
11022
  this.errorHandler.sync(this);
11002
- switch (this.interpreter.adaptivePredict(this.tokenStream, 338, this.context)) {
11023
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 339, this.context)) {
11003
11024
  case 1:
11004
11025
  localContext = new DecimalLiteralContext(localContext);
11005
11026
  this.enterOuterAlt(localContext, 1);
11006
11027
  {
11007
- this.state = 2589;
11028
+ this.state = 2591;
11008
11029
  this.errorHandler.sync(this);
11009
11030
  _la = this.tokenStream.LA(1);
11010
11031
  if (_la === 256) {
11011
11032
  {
11012
- this.state = 2588;
11033
+ this.state = 2590;
11013
11034
  this.match(TrinoSqlParser.MINUS);
11014
11035
  }
11015
11036
  }
11016
- this.state = 2591;
11037
+ this.state = 2593;
11017
11038
  this.match(TrinoSqlParser.DECIMAL_VALUE);
11018
11039
  }
11019
11040
  break;
@@ -11021,16 +11042,16 @@ class TrinoSqlParser extends antlr.Parser {
11021
11042
  localContext = new DoubleLiteralContext(localContext);
11022
11043
  this.enterOuterAlt(localContext, 2);
11023
11044
  {
11024
- this.state = 2593;
11045
+ this.state = 2595;
11025
11046
  this.errorHandler.sync(this);
11026
11047
  _la = this.tokenStream.LA(1);
11027
11048
  if (_la === 256) {
11028
11049
  {
11029
- this.state = 2592;
11050
+ this.state = 2594;
11030
11051
  this.match(TrinoSqlParser.MINUS);
11031
11052
  }
11032
11053
  }
11033
- this.state = 2595;
11054
+ this.state = 2597;
11034
11055
  this.match(TrinoSqlParser.DOUBLE_VALUE);
11035
11056
  }
11036
11057
  break;
@@ -11038,16 +11059,16 @@ class TrinoSqlParser extends antlr.Parser {
11038
11059
  localContext = new IntegerLiteralContext(localContext);
11039
11060
  this.enterOuterAlt(localContext, 3);
11040
11061
  {
11041
- this.state = 2597;
11062
+ this.state = 2599;
11042
11063
  this.errorHandler.sync(this);
11043
11064
  _la = this.tokenStream.LA(1);
11044
11065
  if (_la === 256) {
11045
11066
  {
11046
- this.state = 2596;
11067
+ this.state = 2598;
11047
11068
  this.match(TrinoSqlParser.MINUS);
11048
11069
  }
11049
11070
  }
11050
- this.state = 2599;
11071
+ this.state = 2601;
11051
11072
  this.match(TrinoSqlParser.INTEGER_VALUE);
11052
11073
  }
11053
11074
  break;
@@ -11075,7 +11096,7 @@ class TrinoSqlParser extends antlr.Parser {
11075
11096
  try {
11076
11097
  this.enterOuterAlt(localContext, 1);
11077
11098
  {
11078
- this.state = 2602;
11099
+ this.state = 2604;
11079
11100
  _la = this.tokenStream.LA(1);
11080
11101
  if (!(((((_la - 17)) & ~0x1F) === 0 && ((1 << (_la - 17)) & 1140014511) !== 0) || ((((_la - 56)) & ~0x1F) === 0 && ((1 << (_la - 56)) & 3192429231) !== 0) || ((((_la - 90)) & ~0x1F) === 0 && ((1 << (_la - 90)) & 3134381375) !== 0) || ((((_la - 123)) & ~0x1F) === 0 && ((1 << (_la - 123)) & 3162472435) !== 0) || ((((_la - 155)) & ~0x1F) === 0 && ((1 << (_la - 155)) & 4286316499) !== 0) || ((((_la - 188)) & ~0x1F) === 0 && ((1 << (_la - 188)) & 4009750519) !== 0) || ((((_la - 220)) & ~0x1F) === 0 && ((1 << (_la - 220)) & 525170103) !== 0))) {
11081
11102
  this.errorHandler.recoverInline(this);
@@ -11117,6 +11138,8 @@ class TrinoSqlParser extends antlr.Parser {
11117
11138
  return this.type_sempred(localContext, predIndex);
11118
11139
  case 76:
11119
11140
  return this.rowPattern_sempred(localContext, predIndex);
11141
+ case 100:
11142
+ return this.columnName_sempred(localContext, predIndex);
11120
11143
  }
11121
11144
  return true;
11122
11145
  }
@@ -11183,6 +11206,13 @@ class TrinoSqlParser extends antlr.Parser {
11183
11206
  }
11184
11207
  return true;
11185
11208
  }
11209
+ columnName_sempred(localContext, predIndex) {
11210
+ switch (predIndex) {
11211
+ case 14:
11212
+ return this.shouldMatchEmpty();
11213
+ }
11214
+ return true;
11215
+ }
11186
11216
  static get _ATN() {
11187
11217
  if (!TrinoSqlParser.__ATN) {
11188
11218
  TrinoSqlParser.__ATN = new antlr.ATNDeserializer().deserialize(TrinoSqlParser._serializedATN);
@@ -11707,7 +11737,7 @@ TrinoSqlParser.ruleNames = [
11707
11737
  "grantor", "principal", "roles", "identifier", "number", "nonReserved",
11708
11738
  ];
11709
11739
  TrinoSqlParser._serializedATN = [
11710
- 4, 1, 277, 2605, 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,
11740
+ 4, 1, 277, 2607, 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,
11711
11741
  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,
11712
11742
  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,
11713
11743
  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,
@@ -11921,192 +11951,192 @@ TrinoSqlParser._serializedATN = [
11921
11951
  1, 92, 1, 92, 1, 92, 1, 92, 1, 92, 1, 92, 1, 92, 1, 92, 1, 92, 1, 92, 1, 92, 3, 92, 2518,
11922
11952
  8, 92, 1, 93, 1, 93, 1, 93, 1, 93, 1, 93, 1, 93, 1, 93, 1, 93, 1, 93, 1, 93, 1, 93, 3, 93,
11923
11953
  2531, 8, 93, 1, 94, 1, 94, 1, 95, 1, 95, 1, 96, 1, 96, 1, 96, 1, 96, 1, 96, 3, 96, 2542,
11924
- 8, 96, 1, 97, 1, 97, 1, 98, 1, 98, 1, 99, 1, 99, 1, 100, 1, 100, 1, 101, 1, 101, 1, 102,
11925
- 1, 102, 1, 102, 5, 102, 2557, 8, 102, 10, 102, 12, 102, 2560, 9, 102, 1, 103, 1, 103,
11926
- 1, 103, 3, 103, 2565, 8, 103, 1, 104, 1, 104, 1, 104, 1, 104, 1, 104, 3, 104, 2572,
11927
- 8, 104, 1, 105, 1, 105, 1, 105, 5, 105, 2577, 8, 105, 10, 105, 12, 105, 2580, 9, 105,
11928
- 1, 106, 1, 106, 1, 106, 1, 106, 1, 106, 3, 106, 2587, 8, 106, 1, 107, 3, 107, 2590,
11929
- 8, 107, 1, 107, 1, 107, 3, 107, 2594, 8, 107, 1, 107, 1, 107, 3, 107, 2598, 8, 107,
11930
- 1, 107, 3, 107, 2601, 8, 107, 1, 108, 1, 108, 1, 108, 0, 7, 42, 68, 104, 108, 110, 132,
11931
- 152, 109, 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40,
11932
- 42, 44, 46, 48, 50, 52, 54, 56, 58, 60, 62, 64, 66, 68, 70, 72, 74, 76, 78, 80, 82, 84,
11933
- 86, 88, 90, 92, 94, 96, 98, 100, 102, 104, 106, 108, 110, 112, 114, 116, 118, 120,
11934
- 122, 124, 126, 128, 130, 132, 134, 136, 138, 140, 142, 144, 146, 148, 150, 152,
11935
- 154, 156, 158, 160, 162, 164, 166, 168, 170, 172, 174, 176, 178, 180, 182, 184,
11936
- 186, 188, 190, 192, 194, 196, 198, 200, 202, 204, 206, 208, 210, 212, 214, 216,
11937
- 0, 27, 2, 0, 34, 34, 185, 185, 2, 0, 61, 61, 112, 112, 2, 0, 88, 88, 103, 103, 2, 0, 75,
11938
- 75, 104, 104, 1, 0, 192, 193, 2, 0, 84, 84, 139, 139, 2, 0, 261, 261, 265, 265, 2, 0,
11939
- 74, 74, 229, 229, 2, 0, 27, 27, 63, 63, 2, 0, 84, 84, 118, 118, 2, 0, 20, 20, 66, 66,
11940
- 2, 0, 30, 30, 211, 211, 2, 0, 105, 105, 199, 199, 1, 0, 255, 256, 1, 0, 257, 259, 2,
11941
- 0, 83, 83, 194, 194, 1, 0, 249, 254, 3, 0, 20, 20, 24, 24, 206, 206, 2, 0, 80, 80, 223,
11942
- 223, 5, 0, 58, 58, 100, 100, 136, 137, 197, 197, 247, 247, 1, 0, 140, 143, 2, 0, 85,
11943
- 85, 171, 171, 3, 0, 95, 95, 117, 117, 215, 215, 4, 0, 67, 67, 113, 113, 127, 127, 236,
11944
- 236, 2, 0, 155, 155, 246, 246, 4, 0, 62, 62, 108, 108, 200, 200, 232, 232, 49, 0, 17,
11945
- 20, 22, 22, 24, 25, 27, 30, 33, 34, 37, 42, 47, 47, 56, 59, 61, 61, 63, 63, 65, 65, 67,
11946
- 68, 71, 71, 75, 75, 78, 78, 81, 85, 87, 87, 90, 95, 98, 98, 100, 102, 104, 105, 107,
11947
- 107, 110, 110, 112, 113, 115, 115, 117, 119, 121, 121, 123, 124, 127, 137, 139,
11948
- 145, 149, 152, 154, 156, 159, 159, 161, 172, 174, 177, 179, 186, 188, 190, 192,
11949
- 199, 201, 211, 213, 215, 217, 222, 224, 225, 227, 228, 230, 230, 232, 234, 236,
11950
- 236, 238, 239, 242, 242, 244, 248, 3005, 0, 221, 1, 0, 0, 0, 2, 226, 1, 0, 0, 0, 4, 232,
11951
- 1, 0, 0, 0, 6, 234, 1, 0, 0, 0, 8, 238, 1, 0, 0, 0, 10, 242, 1, 0, 0, 0, 12, 246, 1, 0, 0,
11952
- 0, 14, 250, 1, 0, 0, 0, 16, 1036, 1, 0, 0, 0, 18, 1039, 1, 0, 0, 0, 20, 1043, 1, 0, 0, 0,
11953
- 22, 1057, 1, 0, 0, 0, 24, 1059, 1, 0, 0, 0, 26, 1073, 1, 0, 0, 0, 28, 1079, 1, 0, 0, 0,
11954
- 30, 1083, 1, 0, 0, 0, 32, 1091, 1, 0, 0, 0, 34, 1097, 1, 0, 0, 0, 36, 1099, 1, 0, 0, 0,
11955
- 38, 1136, 1, 0, 0, 0, 40, 1138, 1, 0, 0, 0, 42, 1140, 1, 0, 0, 0, 44, 1176, 1, 0, 0, 0,
11956
- 46, 1180, 1, 0, 0, 0, 48, 1189, 1, 0, 0, 0, 50, 1237, 1, 0, 0, 0, 52, 1287, 1, 0, 0, 0,
11957
- 54, 1302, 1, 0, 0, 0, 56, 1306, 1, 0, 0, 0, 58, 1308, 1, 0, 0, 0, 60, 1315, 1, 0, 0, 0,
11958
- 62, 1344, 1, 0, 0, 0, 64, 1353, 1, 0, 0, 0, 66, 1373, 1, 0, 0, 0, 68, 1375, 1, 0, 0, 0,
11959
- 70, 1414, 1, 0, 0, 0, 72, 1430, 1, 0, 0, 0, 74, 1432, 1, 0, 0, 0, 76, 1441, 1, 0, 0, 0,
11960
- 78, 1443, 1, 0, 0, 0, 80, 1528, 1, 0, 0, 0, 82, 1543, 1, 0, 0, 0, 84, 1554, 1, 0, 0, 0,
11961
- 86, 1575, 1, 0, 0, 0, 88, 1577, 1, 0, 0, 0, 90, 1590, 1, 0, 0, 0, 92, 1594, 1, 0, 0, 0,
11962
- 94, 1604, 1, 0, 0, 0, 96, 1615, 1, 0, 0, 0, 98, 1626, 1, 0, 0, 0, 100, 1666, 1, 0, 0, 0,
11963
- 102, 1668, 1, 0, 0, 0, 104, 1677, 1, 0, 0, 0, 106, 1751, 1, 0, 0, 0, 108, 1757, 1, 0,
11964
- 0, 0, 110, 2025, 1, 0, 0, 0, 112, 2040, 1, 0, 0, 0, 114, 2046, 1, 0, 0, 0, 116, 2054,
11965
- 1, 0, 0, 0, 118, 2062, 1, 0, 0, 0, 120, 2064, 1, 0, 0, 0, 122, 2066, 1, 0, 0, 0, 124, 2068,
11966
- 1, 0, 0, 0, 126, 2070, 1, 0, 0, 0, 128, 2080, 1, 0, 0, 0, 130, 2082, 1, 0, 0, 0, 132, 2175,
11967
- 1, 0, 0, 0, 134, 2193, 1, 0, 0, 0, 136, 2197, 1, 0, 0, 0, 138, 2199, 1, 0, 0, 0, 140, 2204,
11968
- 1, 0, 0, 0, 142, 2274, 1, 0, 0, 0, 144, 2276, 1, 0, 0, 0, 146, 2293, 1, 0, 0, 0, 148, 2357,
11969
- 1, 0, 0, 0, 150, 2368, 1, 0, 0, 0, 152, 2370, 1, 0, 0, 0, 154, 2410, 1, 0, 0, 0, 156, 2442,
11970
- 1, 0, 0, 0, 158, 2444, 1, 0, 0, 0, 160, 2452, 1, 0, 0, 0, 162, 2459, 1, 0, 0, 0, 164, 2468,
11971
- 1, 0, 0, 0, 166, 2475, 1, 0, 0, 0, 168, 2482, 1, 0, 0, 0, 170, 2484, 1, 0, 0, 0, 172, 2492,
11972
- 1, 0, 0, 0, 174, 2496, 1, 0, 0, 0, 176, 2498, 1, 0, 0, 0, 178, 2500, 1, 0, 0, 0, 180, 2502,
11973
- 1, 0, 0, 0, 182, 2504, 1, 0, 0, 0, 184, 2517, 1, 0, 0, 0, 186, 2530, 1, 0, 0, 0, 188, 2532,
11974
- 1, 0, 0, 0, 190, 2534, 1, 0, 0, 0, 192, 2541, 1, 0, 0, 0, 194, 2543, 1, 0, 0, 0, 196, 2545,
11975
- 1, 0, 0, 0, 198, 2547, 1, 0, 0, 0, 200, 2549, 1, 0, 0, 0, 202, 2551, 1, 0, 0, 0, 204, 2553,
11976
- 1, 0, 0, 0, 206, 2564, 1, 0, 0, 0, 208, 2571, 1, 0, 0, 0, 210, 2573, 1, 0, 0, 0, 212, 2586,
11977
- 1, 0, 0, 0, 214, 2600, 1, 0, 0, 0, 216, 2602, 1, 0, 0, 0, 218, 220, 3, 2, 1, 0, 219, 218,
11978
- 1, 0, 0, 0, 220, 223, 1, 0, 0, 0, 221, 219, 1, 0, 0, 0, 221, 222, 1, 0, 0, 0, 222, 224,
11979
- 1, 0, 0, 0, 223, 221, 1, 0, 0, 0, 224, 225, 5, 0, 0, 1, 225, 1, 1, 0, 0, 0, 226, 227, 3,
11980
- 6, 3, 0, 227, 3, 1, 0, 0, 0, 228, 233, 3, 8, 4, 0, 229, 233, 3, 10, 5, 0, 230, 233, 3, 12,
11981
- 6, 0, 231, 233, 3, 14, 7, 0, 232, 228, 1, 0, 0, 0, 232, 229, 1, 0, 0, 0, 232, 230, 1, 0,
11982
- 0, 0, 232, 231, 1, 0, 0, 0, 233, 5, 1, 0, 0, 0, 234, 236, 3, 16, 8, 0, 235, 237, 5, 272,
11983
- 0, 0, 236, 235, 1, 0, 0, 0, 236, 237, 1, 0, 0, 0, 237, 7, 1, 0, 0, 0, 238, 240, 3, 102,
11984
- 51, 0, 239, 241, 5, 272, 0, 0, 240, 239, 1, 0, 0, 0, 240, 241, 1, 0, 0, 0, 241, 9, 1, 0,
11985
- 0, 0, 242, 244, 3, 170, 85, 0, 243, 245, 5, 272, 0, 0, 244, 243, 1, 0, 0, 0, 244, 245,
11986
- 1, 0, 0, 0, 245, 11, 1, 0, 0, 0, 246, 248, 3, 132, 66, 0, 247, 249, 5, 272, 0, 0, 248,
11987
- 247, 1, 0, 0, 0, 248, 249, 1, 0, 0, 0, 249, 13, 1, 0, 0, 0, 250, 252, 3, 152, 76, 0, 251,
11988
- 253, 5, 272, 0, 0, 252, 251, 1, 0, 0, 0, 252, 253, 1, 0, 0, 0, 253, 15, 1, 0, 0, 0, 254,
11989
- 1037, 3, 18, 9, 0, 255, 256, 5, 233, 0, 0, 256, 1037, 3, 188, 94, 0, 257, 258, 5, 44,
11990
- 0, 0, 258, 262, 5, 195, 0, 0, 259, 260, 5, 101, 0, 0, 260, 261, 5, 147, 0, 0, 261, 263,
11991
- 5, 77, 0, 0, 262, 259, 1, 0, 0, 0, 262, 263, 1, 0, 0, 0, 263, 264, 1, 0, 0, 0, 264, 267,
11992
- 3, 190, 95, 0, 265, 266, 5, 29, 0, 0, 266, 268, 3, 208, 104, 0, 267, 265, 1, 0, 0, 0,
11993
- 267, 268, 1, 0, 0, 0, 268, 271, 1, 0, 0, 0, 269, 270, 5, 243, 0, 0, 270, 272, 3, 28, 14,
11994
- 0, 271, 269, 1, 0, 0, 0, 271, 272, 1, 0, 0, 0, 272, 1037, 1, 0, 0, 0, 273, 274, 5, 69,
11995
- 0, 0, 274, 277, 5, 195, 0, 0, 275, 276, 5, 101, 0, 0, 276, 278, 5, 77, 0, 0, 277, 275,
11996
- 1, 0, 0, 0, 277, 278, 1, 0, 0, 0, 278, 279, 1, 0, 0, 0, 279, 281, 3, 188, 94, 0, 280, 282,
11997
- 7, 0, 0, 0, 281, 280, 1, 0, 0, 0, 281, 282, 1, 0, 0, 0, 282, 1037, 1, 0, 0, 0, 283, 284,
11998
- 5, 21, 0, 0, 284, 285, 5, 195, 0, 0, 285, 286, 3, 188, 94, 0, 286, 287, 5, 180, 0, 0,
11999
- 287, 288, 5, 220, 0, 0, 288, 289, 3, 190, 95, 0, 289, 1037, 1, 0, 0, 0, 290, 291, 5,
12000
- 21, 0, 0, 291, 292, 5, 195, 0, 0, 292, 293, 3, 188, 94, 0, 293, 294, 5, 203, 0, 0, 294,
12001
- 295, 5, 29, 0, 0, 295, 296, 3, 208, 104, 0, 296, 1037, 1, 0, 0, 0, 297, 298, 5, 44, 0,
12002
- 0, 298, 302, 5, 212, 0, 0, 299, 300, 5, 101, 0, 0, 300, 301, 5, 147, 0, 0, 301, 303,
12003
- 5, 77, 0, 0, 302, 299, 1, 0, 0, 0, 302, 303, 1, 0, 0, 0, 303, 304, 1, 0, 0, 0, 304, 306,
12004
- 3, 178, 89, 0, 305, 307, 3, 94, 47, 0, 306, 305, 1, 0, 0, 0, 306, 307, 1, 0, 0, 0, 307,
12005
- 310, 1, 0, 0, 0, 308, 309, 5, 40, 0, 0, 309, 311, 3, 116, 58, 0, 310, 308, 1, 0, 0, 0,
12006
- 310, 311, 1, 0, 0, 0, 311, 314, 1, 0, 0, 0, 312, 313, 5, 243, 0, 0, 313, 315, 3, 28, 14,
12007
- 0, 314, 312, 1, 0, 0, 0, 314, 315, 1, 0, 0, 0, 315, 316, 1, 0, 0, 0, 316, 322, 5, 26, 0,
12008
- 0, 317, 323, 3, 18, 9, 0, 318, 319, 5, 1, 0, 0, 319, 320, 3, 18, 9, 0, 320, 321, 5, 2,
12009
- 0, 0, 321, 323, 1, 0, 0, 0, 322, 317, 1, 0, 0, 0, 322, 318, 1, 0, 0, 0, 323, 329, 1, 0,
12010
- 0, 0, 324, 326, 5, 243, 0, 0, 325, 327, 5, 144, 0, 0, 326, 325, 1, 0, 0, 0, 326, 327,
12011
- 1, 0, 0, 0, 327, 328, 1, 0, 0, 0, 328, 330, 5, 56, 0, 0, 329, 324, 1, 0, 0, 0, 329, 330,
12012
- 1, 0, 0, 0, 330, 1037, 1, 0, 0, 0, 331, 332, 5, 44, 0, 0, 332, 336, 5, 212, 0, 0, 333,
12013
- 334, 5, 101, 0, 0, 334, 335, 5, 147, 0, 0, 335, 337, 5, 77, 0, 0, 336, 333, 1, 0, 0, 0,
12014
- 336, 337, 1, 0, 0, 0, 337, 338, 1, 0, 0, 0, 338, 339, 3, 178, 89, 0, 339, 340, 5, 1, 0,
12015
- 0, 340, 345, 3, 22, 11, 0, 341, 342, 5, 3, 0, 0, 342, 344, 3, 22, 11, 0, 343, 341, 1,
12016
- 0, 0, 0, 344, 347, 1, 0, 0, 0, 345, 343, 1, 0, 0, 0, 345, 346, 1, 0, 0, 0, 346, 348, 1,
12017
- 0, 0, 0, 347, 345, 1, 0, 0, 0, 348, 351, 5, 2, 0, 0, 349, 350, 5, 40, 0, 0, 350, 352, 3,
12018
- 116, 58, 0, 351, 349, 1, 0, 0, 0, 351, 352, 1, 0, 0, 0, 352, 355, 1, 0, 0, 0, 353, 354,
12019
- 5, 243, 0, 0, 354, 356, 3, 28, 14, 0, 355, 353, 1, 0, 0, 0, 355, 356, 1, 0, 0, 0, 356,
12020
- 1037, 1, 0, 0, 0, 357, 358, 5, 69, 0, 0, 358, 361, 5, 212, 0, 0, 359, 360, 5, 101, 0,
12021
- 0, 360, 362, 5, 77, 0, 0, 361, 359, 1, 0, 0, 0, 361, 362, 1, 0, 0, 0, 362, 363, 1, 0, 0,
12022
- 0, 363, 1037, 3, 176, 88, 0, 364, 365, 5, 108, 0, 0, 365, 366, 5, 111, 0, 0, 366, 368,
12023
- 3, 176, 88, 0, 367, 369, 3, 96, 48, 0, 368, 367, 1, 0, 0, 0, 368, 369, 1, 0, 0, 0, 369,
12024
- 370, 1, 0, 0, 0, 370, 371, 3, 18, 9, 0, 371, 1037, 1, 0, 0, 0, 372, 373, 5, 62, 0, 0, 373,
12025
- 374, 5, 88, 0, 0, 374, 377, 3, 176, 88, 0, 375, 376, 5, 241, 0, 0, 376, 378, 3, 104,
12026
- 52, 0, 377, 375, 1, 0, 0, 0, 377, 378, 1, 0, 0, 0, 378, 1037, 1, 0, 0, 0, 379, 380, 5,
12027
- 222, 0, 0, 380, 381, 5, 212, 0, 0, 381, 1037, 3, 176, 88, 0, 382, 383, 5, 21, 0, 0, 383,
12028
- 386, 5, 212, 0, 0, 384, 385, 5, 101, 0, 0, 385, 387, 5, 77, 0, 0, 386, 384, 1, 0, 0, 0,
12029
- 386, 387, 1, 0, 0, 0, 387, 388, 1, 0, 0, 0, 388, 389, 3, 176, 88, 0, 389, 390, 5, 180,
12030
- 0, 0, 390, 391, 5, 220, 0, 0, 391, 392, 3, 178, 89, 0, 392, 1037, 1, 0, 0, 0, 393, 394,
12031
- 5, 40, 0, 0, 394, 395, 5, 153, 0, 0, 395, 396, 5, 212, 0, 0, 396, 397, 3, 176, 88, 0,
12032
- 397, 400, 5, 114, 0, 0, 398, 401, 3, 116, 58, 0, 399, 401, 5, 148, 0, 0, 400, 398, 1,
12033
- 0, 0, 0, 400, 399, 1, 0, 0, 0, 401, 1037, 1, 0, 0, 0, 402, 403, 5, 40, 0, 0, 403, 404,
12034
- 5, 153, 0, 0, 404, 405, 5, 38, 0, 0, 405, 406, 3, 200, 100, 0, 406, 409, 5, 114, 0, 0,
12035
- 407, 410, 3, 116, 58, 0, 408, 410, 5, 148, 0, 0, 409, 407, 1, 0, 0, 0, 409, 408, 1, 0,
12036
- 0, 0, 410, 1037, 1, 0, 0, 0, 411, 412, 5, 21, 0, 0, 412, 415, 5, 212, 0, 0, 413, 414,
12037
- 5, 101, 0, 0, 414, 416, 5, 77, 0, 0, 415, 413, 1, 0, 0, 0, 415, 416, 1, 0, 0, 0, 416, 417,
12038
- 1, 0, 0, 0, 417, 418, 3, 176, 88, 0, 418, 419, 5, 180, 0, 0, 419, 422, 5, 38, 0, 0, 420,
12039
- 421, 5, 101, 0, 0, 421, 423, 5, 77, 0, 0, 422, 420, 1, 0, 0, 0, 422, 423, 1, 0, 0, 0, 423,
12040
- 424, 1, 0, 0, 0, 424, 425, 3, 200, 100, 0, 425, 426, 5, 220, 0, 0, 426, 427, 3, 202,
12041
- 101, 0, 427, 1037, 1, 0, 0, 0, 428, 429, 5, 21, 0, 0, 429, 432, 5, 212, 0, 0, 430, 431,
12042
- 5, 101, 0, 0, 431, 433, 5, 77, 0, 0, 432, 430, 1, 0, 0, 0, 432, 433, 1, 0, 0, 0, 433, 434,
12043
- 1, 0, 0, 0, 434, 435, 3, 176, 88, 0, 435, 436, 5, 69, 0, 0, 436, 439, 5, 38, 0, 0, 437,
12044
- 438, 5, 101, 0, 0, 438, 440, 5, 77, 0, 0, 439, 437, 1, 0, 0, 0, 439, 440, 1, 0, 0, 0, 440,
12045
- 441, 1, 0, 0, 0, 441, 442, 3, 200, 100, 0, 442, 1037, 1, 0, 0, 0, 443, 444, 5, 21, 0,
12046
- 0, 444, 447, 5, 212, 0, 0, 445, 446, 5, 101, 0, 0, 446, 448, 5, 77, 0, 0, 447, 445, 1,
12047
- 0, 0, 0, 447, 448, 1, 0, 0, 0, 448, 449, 1, 0, 0, 0, 449, 450, 3, 176, 88, 0, 450, 451,
12048
- 5, 17, 0, 0, 451, 455, 5, 38, 0, 0, 452, 453, 5, 101, 0, 0, 453, 454, 5, 147, 0, 0, 454,
12049
- 456, 5, 77, 0, 0, 455, 452, 1, 0, 0, 0, 455, 456, 1, 0, 0, 0, 456, 457, 1, 0, 0, 0, 457,
12050
- 458, 3, 24, 12, 0, 458, 1037, 1, 0, 0, 0, 459, 460, 5, 21, 0, 0, 460, 461, 5, 212, 0,
12051
- 0, 461, 462, 3, 176, 88, 0, 462, 463, 5, 203, 0, 0, 463, 464, 5, 29, 0, 0, 464, 465,
12052
- 3, 208, 104, 0, 465, 1037, 1, 0, 0, 0, 466, 467, 5, 21, 0, 0, 467, 468, 5, 212, 0, 0,
12053
- 468, 469, 3, 176, 88, 0, 469, 470, 5, 203, 0, 0, 470, 471, 5, 175, 0, 0, 471, 472, 3,
12054
- 30, 15, 0, 472, 1037, 1, 0, 0, 0, 473, 474, 5, 21, 0, 0, 474, 475, 5, 212, 0, 0, 475,
12055
- 476, 3, 176, 88, 0, 476, 477, 5, 76, 0, 0, 477, 490, 3, 212, 106, 0, 478, 487, 5, 1,
12056
- 0, 0, 479, 484, 3, 166, 83, 0, 480, 481, 5, 3, 0, 0, 481, 483, 3, 166, 83, 0, 482, 480,
12057
- 1, 0, 0, 0, 483, 486, 1, 0, 0, 0, 484, 482, 1, 0, 0, 0, 484, 485, 1, 0, 0, 0, 485, 488,
12058
- 1, 0, 0, 0, 486, 484, 1, 0, 0, 0, 487, 479, 1, 0, 0, 0, 487, 488, 1, 0, 0, 0, 488, 489,
12059
- 1, 0, 0, 0, 489, 491, 5, 2, 0, 0, 490, 478, 1, 0, 0, 0, 490, 491, 1, 0, 0, 0, 491, 494,
12060
- 1, 0, 0, 0, 492, 493, 5, 241, 0, 0, 493, 495, 3, 104, 52, 0, 494, 492, 1, 0, 0, 0, 494,
12061
- 495, 1, 0, 0, 0, 495, 1037, 1, 0, 0, 0, 496, 497, 5, 22, 0, 0, 497, 500, 3, 176, 88, 0,
12062
- 498, 499, 5, 243, 0, 0, 499, 501, 3, 28, 14, 0, 500, 498, 1, 0, 0, 0, 500, 501, 1, 0,
12063
- 0, 0, 501, 1037, 1, 0, 0, 0, 502, 505, 5, 44, 0, 0, 503, 504, 5, 157, 0, 0, 504, 506,
12064
- 5, 182, 0, 0, 505, 503, 1, 0, 0, 0, 505, 506, 1, 0, 0, 0, 506, 507, 1, 0, 0, 0, 507, 508,
12065
- 5, 133, 0, 0, 508, 512, 5, 239, 0, 0, 509, 510, 5, 101, 0, 0, 510, 511, 5, 147, 0, 0,
12066
- 511, 513, 5, 77, 0, 0, 512, 509, 1, 0, 0, 0, 512, 513, 1, 0, 0, 0, 513, 514, 1, 0, 0, 0,
12067
- 514, 517, 3, 182, 91, 0, 515, 516, 5, 40, 0, 0, 516, 518, 3, 116, 58, 0, 517, 515, 1,
12068
- 0, 0, 0, 517, 518, 1, 0, 0, 0, 518, 521, 1, 0, 0, 0, 519, 520, 5, 243, 0, 0, 520, 522,
12069
- 3, 28, 14, 0, 521, 519, 1, 0, 0, 0, 521, 522, 1, 0, 0, 0, 522, 523, 1, 0, 0, 0, 523, 524,
12070
- 5, 26, 0, 0, 524, 525, 3, 18, 9, 0, 525, 1037, 1, 0, 0, 0, 526, 529, 5, 44, 0, 0, 527,
12071
- 528, 5, 157, 0, 0, 528, 530, 5, 182, 0, 0, 529, 527, 1, 0, 0, 0, 529, 530, 1, 0, 0, 0,
12072
- 530, 531, 1, 0, 0, 0, 531, 532, 5, 239, 0, 0, 532, 535, 3, 182, 91, 0, 533, 534, 5, 40,
12073
- 0, 0, 534, 536, 3, 116, 58, 0, 535, 533, 1, 0, 0, 0, 535, 536, 1, 0, 0, 0, 536, 539, 1,
12074
- 0, 0, 0, 537, 538, 5, 198, 0, 0, 538, 540, 7, 1, 0, 0, 539, 537, 1, 0, 0, 0, 539, 540,
12075
- 1, 0, 0, 0, 540, 541, 1, 0, 0, 0, 541, 542, 5, 26, 0, 0, 542, 543, 3, 18, 9, 0, 543, 1037,
12076
- 1, 0, 0, 0, 544, 545, 5, 179, 0, 0, 545, 546, 5, 133, 0, 0, 546, 547, 5, 239, 0, 0, 547,
12077
- 1037, 3, 180, 90, 0, 548, 549, 5, 69, 0, 0, 549, 550, 5, 133, 0, 0, 550, 553, 5, 239,
12078
- 0, 0, 551, 552, 5, 101, 0, 0, 552, 554, 5, 77, 0, 0, 553, 551, 1, 0, 0, 0, 553, 554, 1,
12079
- 0, 0, 0, 554, 555, 1, 0, 0, 0, 555, 1037, 3, 180, 90, 0, 556, 557, 5, 21, 0, 0, 557, 558,
12080
- 5, 133, 0, 0, 558, 561, 5, 239, 0, 0, 559, 560, 5, 101, 0, 0, 560, 562, 5, 77, 0, 0, 561,
12081
- 559, 1, 0, 0, 0, 561, 562, 1, 0, 0, 0, 562, 563, 1, 0, 0, 0, 563, 564, 3, 180, 90, 0, 564,
12082
- 565, 5, 180, 0, 0, 565, 566, 5, 220, 0, 0, 566, 567, 3, 182, 91, 0, 567, 1037, 1, 0,
12083
- 0, 0, 568, 569, 5, 21, 0, 0, 569, 570, 5, 133, 0, 0, 570, 571, 5, 239, 0, 0, 571, 572,
12084
- 3, 180, 90, 0, 572, 573, 5, 203, 0, 0, 573, 574, 5, 175, 0, 0, 574, 575, 3, 30, 15, 0,
12085
- 575, 1037, 1, 0, 0, 0, 576, 577, 5, 69, 0, 0, 577, 580, 5, 239, 0, 0, 578, 579, 5, 101,
12086
- 0, 0, 579, 581, 5, 77, 0, 0, 580, 578, 1, 0, 0, 0, 580, 581, 1, 0, 0, 0, 581, 582, 1, 0,
12087
- 0, 0, 582, 1037, 3, 180, 90, 0, 583, 584, 5, 21, 0, 0, 584, 585, 5, 239, 0, 0, 585, 586,
12088
- 3, 180, 90, 0, 586, 587, 5, 180, 0, 0, 587, 588, 5, 220, 0, 0, 588, 589, 3, 182, 91,
12089
- 0, 589, 1037, 1, 0, 0, 0, 590, 591, 5, 21, 0, 0, 591, 592, 5, 239, 0, 0, 592, 593, 3,
12090
- 180, 90, 0, 593, 594, 5, 203, 0, 0, 594, 595, 5, 29, 0, 0, 595, 596, 3, 208, 104, 0,
12091
- 596, 1037, 1, 0, 0, 0, 597, 598, 5, 33, 0, 0, 598, 599, 3, 198, 99, 0, 599, 608, 5, 1,
12092
- 0, 0, 600, 605, 3, 166, 83, 0, 601, 602, 5, 3, 0, 0, 602, 604, 3, 166, 83, 0, 603, 601,
12093
- 1, 0, 0, 0, 604, 607, 1, 0, 0, 0, 605, 603, 1, 0, 0, 0, 605, 606, 1, 0, 0, 0, 606, 609,
12094
- 1, 0, 0, 0, 607, 605, 1, 0, 0, 0, 608, 600, 1, 0, 0, 0, 608, 609, 1, 0, 0, 0, 609, 610,
12095
- 1, 0, 0, 0, 610, 611, 5, 2, 0, 0, 611, 1037, 1, 0, 0, 0, 612, 613, 5, 44, 0, 0, 613, 614,
12096
- 5, 188, 0, 0, 614, 618, 3, 212, 106, 0, 615, 616, 5, 243, 0, 0, 616, 617, 5, 18, 0, 0,
12097
- 617, 619, 3, 206, 103, 0, 618, 615, 1, 0, 0, 0, 618, 619, 1, 0, 0, 0, 619, 622, 1, 0,
12098
- 0, 0, 620, 621, 5, 103, 0, 0, 621, 623, 3, 194, 97, 0, 622, 620, 1, 0, 0, 0, 622, 623,
12099
- 1, 0, 0, 0, 623, 1037, 1, 0, 0, 0, 624, 625, 5, 69, 0, 0, 625, 626, 5, 188, 0, 0, 626,
12100
- 1037, 3, 212, 106, 0, 627, 628, 5, 91, 0, 0, 628, 629, 3, 210, 105, 0, 629, 630, 5,
12101
- 220, 0, 0, 630, 635, 3, 208, 104, 0, 631, 632, 5, 3, 0, 0, 632, 634, 3, 208, 104, 0,
12102
- 633, 631, 1, 0, 0, 0, 634, 637, 1, 0, 0, 0, 635, 633, 1, 0, 0, 0, 635, 636, 1, 0, 0, 0,
12103
- 636, 641, 1, 0, 0, 0, 637, 635, 1, 0, 0, 0, 638, 639, 5, 243, 0, 0, 639, 640, 5, 18, 0,
12104
- 0, 640, 642, 5, 156, 0, 0, 641, 638, 1, 0, 0, 0, 641, 642, 1, 0, 0, 0, 642, 646, 1, 0,
12105
- 0, 0, 643, 644, 5, 92, 0, 0, 644, 645, 5, 32, 0, 0, 645, 647, 3, 206, 103, 0, 646, 643,
12106
- 1, 0, 0, 0, 646, 647, 1, 0, 0, 0, 647, 650, 1, 0, 0, 0, 648, 649, 5, 103, 0, 0, 649, 651,
12107
- 3, 194, 97, 0, 650, 648, 1, 0, 0, 0, 650, 651, 1, 0, 0, 0, 651, 1037, 1, 0, 0, 0, 652,
12108
- 656, 5, 186, 0, 0, 653, 654, 5, 18, 0, 0, 654, 655, 5, 156, 0, 0, 655, 657, 5, 86, 0,
12109
- 0, 656, 653, 1, 0, 0, 0, 656, 657, 1, 0, 0, 0, 657, 658, 1, 0, 0, 0, 658, 659, 3, 210,
11954
+ 8, 96, 1, 97, 1, 97, 1, 98, 1, 98, 1, 99, 1, 99, 1, 100, 1, 100, 3, 100, 2552, 8, 100,
11955
+ 1, 101, 1, 101, 1, 102, 1, 102, 1, 102, 5, 102, 2559, 8, 102, 10, 102, 12, 102, 2562,
11956
+ 9, 102, 1, 103, 1, 103, 1, 103, 3, 103, 2567, 8, 103, 1, 104, 1, 104, 1, 104, 1, 104,
11957
+ 1, 104, 3, 104, 2574, 8, 104, 1, 105, 1, 105, 1, 105, 5, 105, 2579, 8, 105, 10, 105,
11958
+ 12, 105, 2582, 9, 105, 1, 106, 1, 106, 1, 106, 1, 106, 1, 106, 3, 106, 2589, 8, 106,
11959
+ 1, 107, 3, 107, 2592, 8, 107, 1, 107, 1, 107, 3, 107, 2596, 8, 107, 1, 107, 1, 107,
11960
+ 3, 107, 2600, 8, 107, 1, 107, 3, 107, 2603, 8, 107, 1, 108, 1, 108, 1, 108, 0, 7, 42,
11961
+ 68, 104, 108, 110, 132, 152, 109, 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26,
11962
+ 28, 30, 32, 34, 36, 38, 40, 42, 44, 46, 48, 50, 52, 54, 56, 58, 60, 62, 64, 66, 68, 70,
11963
+ 72, 74, 76, 78, 80, 82, 84, 86, 88, 90, 92, 94, 96, 98, 100, 102, 104, 106, 108, 110,
11964
+ 112, 114, 116, 118, 120, 122, 124, 126, 128, 130, 132, 134, 136, 138, 140, 142,
11965
+ 144, 146, 148, 150, 152, 154, 156, 158, 160, 162, 164, 166, 168, 170, 172, 174,
11966
+ 176, 178, 180, 182, 184, 186, 188, 190, 192, 194, 196, 198, 200, 202, 204, 206,
11967
+ 208, 210, 212, 214, 216, 0, 27, 2, 0, 34, 34, 185, 185, 2, 0, 61, 61, 112, 112, 2, 0,
11968
+ 88, 88, 103, 103, 2, 0, 75, 75, 104, 104, 1, 0, 192, 193, 2, 0, 84, 84, 139, 139, 2,
11969
+ 0, 261, 261, 265, 265, 2, 0, 74, 74, 229, 229, 2, 0, 27, 27, 63, 63, 2, 0, 84, 84, 118,
11970
+ 118, 2, 0, 20, 20, 66, 66, 2, 0, 30, 30, 211, 211, 2, 0, 105, 105, 199, 199, 1, 0, 255,
11971
+ 256, 1, 0, 257, 259, 2, 0, 83, 83, 194, 194, 1, 0, 249, 254, 3, 0, 20, 20, 24, 24, 206,
11972
+ 206, 2, 0, 80, 80, 223, 223, 5, 0, 58, 58, 100, 100, 136, 137, 197, 197, 247, 247,
11973
+ 1, 0, 140, 143, 2, 0, 85, 85, 171, 171, 3, 0, 95, 95, 117, 117, 215, 215, 4, 0, 67, 67,
11974
+ 113, 113, 127, 127, 236, 236, 2, 0, 155, 155, 246, 246, 4, 0, 62, 62, 108, 108, 200,
11975
+ 200, 232, 232, 49, 0, 17, 20, 22, 22, 24, 25, 27, 30, 33, 34, 37, 42, 47, 47, 56, 59,
11976
+ 61, 61, 63, 63, 65, 65, 67, 68, 71, 71, 75, 75, 78, 78, 81, 85, 87, 87, 90, 95, 98, 98,
11977
+ 100, 102, 104, 105, 107, 107, 110, 110, 112, 113, 115, 115, 117, 119, 121, 121,
11978
+ 123, 124, 127, 137, 139, 145, 149, 152, 154, 156, 159, 159, 161, 172, 174, 177,
11979
+ 179, 186, 188, 190, 192, 199, 201, 211, 213, 215, 217, 222, 224, 225, 227, 228,
11980
+ 230, 230, 232, 234, 236, 236, 238, 239, 242, 242, 244, 248, 3008, 0, 221, 1, 0, 0,
11981
+ 0, 2, 226, 1, 0, 0, 0, 4, 232, 1, 0, 0, 0, 6, 234, 1, 0, 0, 0, 8, 238, 1, 0, 0, 0, 10, 242,
11982
+ 1, 0, 0, 0, 12, 246, 1, 0, 0, 0, 14, 250, 1, 0, 0, 0, 16, 1036, 1, 0, 0, 0, 18, 1039, 1,
11983
+ 0, 0, 0, 20, 1043, 1, 0, 0, 0, 22, 1057, 1, 0, 0, 0, 24, 1059, 1, 0, 0, 0, 26, 1073, 1,
11984
+ 0, 0, 0, 28, 1079, 1, 0, 0, 0, 30, 1083, 1, 0, 0, 0, 32, 1091, 1, 0, 0, 0, 34, 1097, 1,
11985
+ 0, 0, 0, 36, 1099, 1, 0, 0, 0, 38, 1136, 1, 0, 0, 0, 40, 1138, 1, 0, 0, 0, 42, 1140, 1,
11986
+ 0, 0, 0, 44, 1176, 1, 0, 0, 0, 46, 1180, 1, 0, 0, 0, 48, 1189, 1, 0, 0, 0, 50, 1237, 1,
11987
+ 0, 0, 0, 52, 1287, 1, 0, 0, 0, 54, 1302, 1, 0, 0, 0, 56, 1306, 1, 0, 0, 0, 58, 1308, 1,
11988
+ 0, 0, 0, 60, 1315, 1, 0, 0, 0, 62, 1344, 1, 0, 0, 0, 64, 1353, 1, 0, 0, 0, 66, 1373, 1,
11989
+ 0, 0, 0, 68, 1375, 1, 0, 0, 0, 70, 1414, 1, 0, 0, 0, 72, 1430, 1, 0, 0, 0, 74, 1432, 1,
11990
+ 0, 0, 0, 76, 1441, 1, 0, 0, 0, 78, 1443, 1, 0, 0, 0, 80, 1528, 1, 0, 0, 0, 82, 1543, 1,
11991
+ 0, 0, 0, 84, 1554, 1, 0, 0, 0, 86, 1575, 1, 0, 0, 0, 88, 1577, 1, 0, 0, 0, 90, 1590, 1,
11992
+ 0, 0, 0, 92, 1594, 1, 0, 0, 0, 94, 1604, 1, 0, 0, 0, 96, 1615, 1, 0, 0, 0, 98, 1626, 1,
11993
+ 0, 0, 0, 100, 1666, 1, 0, 0, 0, 102, 1668, 1, 0, 0, 0, 104, 1677, 1, 0, 0, 0, 106, 1751,
11994
+ 1, 0, 0, 0, 108, 1757, 1, 0, 0, 0, 110, 2025, 1, 0, 0, 0, 112, 2040, 1, 0, 0, 0, 114, 2046,
11995
+ 1, 0, 0, 0, 116, 2054, 1, 0, 0, 0, 118, 2062, 1, 0, 0, 0, 120, 2064, 1, 0, 0, 0, 122, 2066,
11996
+ 1, 0, 0, 0, 124, 2068, 1, 0, 0, 0, 126, 2070, 1, 0, 0, 0, 128, 2080, 1, 0, 0, 0, 130, 2082,
11997
+ 1, 0, 0, 0, 132, 2175, 1, 0, 0, 0, 134, 2193, 1, 0, 0, 0, 136, 2197, 1, 0, 0, 0, 138, 2199,
11998
+ 1, 0, 0, 0, 140, 2204, 1, 0, 0, 0, 142, 2274, 1, 0, 0, 0, 144, 2276, 1, 0, 0, 0, 146, 2293,
11999
+ 1, 0, 0, 0, 148, 2357, 1, 0, 0, 0, 150, 2368, 1, 0, 0, 0, 152, 2370, 1, 0, 0, 0, 154, 2410,
12000
+ 1, 0, 0, 0, 156, 2442, 1, 0, 0, 0, 158, 2444, 1, 0, 0, 0, 160, 2452, 1, 0, 0, 0, 162, 2459,
12001
+ 1, 0, 0, 0, 164, 2468, 1, 0, 0, 0, 166, 2475, 1, 0, 0, 0, 168, 2482, 1, 0, 0, 0, 170, 2484,
12002
+ 1, 0, 0, 0, 172, 2492, 1, 0, 0, 0, 174, 2496, 1, 0, 0, 0, 176, 2498, 1, 0, 0, 0, 178, 2500,
12003
+ 1, 0, 0, 0, 180, 2502, 1, 0, 0, 0, 182, 2504, 1, 0, 0, 0, 184, 2517, 1, 0, 0, 0, 186, 2530,
12004
+ 1, 0, 0, 0, 188, 2532, 1, 0, 0, 0, 190, 2534, 1, 0, 0, 0, 192, 2541, 1, 0, 0, 0, 194, 2543,
12005
+ 1, 0, 0, 0, 196, 2545, 1, 0, 0, 0, 198, 2547, 1, 0, 0, 0, 200, 2551, 1, 0, 0, 0, 202, 2553,
12006
+ 1, 0, 0, 0, 204, 2555, 1, 0, 0, 0, 206, 2566, 1, 0, 0, 0, 208, 2573, 1, 0, 0, 0, 210, 2575,
12007
+ 1, 0, 0, 0, 212, 2588, 1, 0, 0, 0, 214, 2602, 1, 0, 0, 0, 216, 2604, 1, 0, 0, 0, 218, 220,
12008
+ 3, 2, 1, 0, 219, 218, 1, 0, 0, 0, 220, 223, 1, 0, 0, 0, 221, 219, 1, 0, 0, 0, 221, 222,
12009
+ 1, 0, 0, 0, 222, 224, 1, 0, 0, 0, 223, 221, 1, 0, 0, 0, 224, 225, 5, 0, 0, 1, 225, 1, 1,
12010
+ 0, 0, 0, 226, 227, 3, 6, 3, 0, 227, 3, 1, 0, 0, 0, 228, 233, 3, 8, 4, 0, 229, 233, 3, 10,
12011
+ 5, 0, 230, 233, 3, 12, 6, 0, 231, 233, 3, 14, 7, 0, 232, 228, 1, 0, 0, 0, 232, 229, 1,
12012
+ 0, 0, 0, 232, 230, 1, 0, 0, 0, 232, 231, 1, 0, 0, 0, 233, 5, 1, 0, 0, 0, 234, 236, 3, 16,
12013
+ 8, 0, 235, 237, 5, 272, 0, 0, 236, 235, 1, 0, 0, 0, 236, 237, 1, 0, 0, 0, 237, 7, 1, 0,
12014
+ 0, 0, 238, 240, 3, 102, 51, 0, 239, 241, 5, 272, 0, 0, 240, 239, 1, 0, 0, 0, 240, 241,
12015
+ 1, 0, 0, 0, 241, 9, 1, 0, 0, 0, 242, 244, 3, 170, 85, 0, 243, 245, 5, 272, 0, 0, 244, 243,
12016
+ 1, 0, 0, 0, 244, 245, 1, 0, 0, 0, 245, 11, 1, 0, 0, 0, 246, 248, 3, 132, 66, 0, 247, 249,
12017
+ 5, 272, 0, 0, 248, 247, 1, 0, 0, 0, 248, 249, 1, 0, 0, 0, 249, 13, 1, 0, 0, 0, 250, 252,
12018
+ 3, 152, 76, 0, 251, 253, 5, 272, 0, 0, 252, 251, 1, 0, 0, 0, 252, 253, 1, 0, 0, 0, 253,
12019
+ 15, 1, 0, 0, 0, 254, 1037, 3, 18, 9, 0, 255, 256, 5, 233, 0, 0, 256, 1037, 3, 188, 94,
12020
+ 0, 257, 258, 5, 44, 0, 0, 258, 262, 5, 195, 0, 0, 259, 260, 5, 101, 0, 0, 260, 261, 5,
12021
+ 147, 0, 0, 261, 263, 5, 77, 0, 0, 262, 259, 1, 0, 0, 0, 262, 263, 1, 0, 0, 0, 263, 264,
12022
+ 1, 0, 0, 0, 264, 267, 3, 190, 95, 0, 265, 266, 5, 29, 0, 0, 266, 268, 3, 208, 104, 0,
12023
+ 267, 265, 1, 0, 0, 0, 267, 268, 1, 0, 0, 0, 268, 271, 1, 0, 0, 0, 269, 270, 5, 243, 0,
12024
+ 0, 270, 272, 3, 28, 14, 0, 271, 269, 1, 0, 0, 0, 271, 272, 1, 0, 0, 0, 272, 1037, 1, 0,
12025
+ 0, 0, 273, 274, 5, 69, 0, 0, 274, 277, 5, 195, 0, 0, 275, 276, 5, 101, 0, 0, 276, 278,
12026
+ 5, 77, 0, 0, 277, 275, 1, 0, 0, 0, 277, 278, 1, 0, 0, 0, 278, 279, 1, 0, 0, 0, 279, 281,
12027
+ 3, 188, 94, 0, 280, 282, 7, 0, 0, 0, 281, 280, 1, 0, 0, 0, 281, 282, 1, 0, 0, 0, 282, 1037,
12028
+ 1, 0, 0, 0, 283, 284, 5, 21, 0, 0, 284, 285, 5, 195, 0, 0, 285, 286, 3, 188, 94, 0, 286,
12029
+ 287, 5, 180, 0, 0, 287, 288, 5, 220, 0, 0, 288, 289, 3, 190, 95, 0, 289, 1037, 1, 0,
12030
+ 0, 0, 290, 291, 5, 21, 0, 0, 291, 292, 5, 195, 0, 0, 292, 293, 3, 188, 94, 0, 293, 294,
12031
+ 5, 203, 0, 0, 294, 295, 5, 29, 0, 0, 295, 296, 3, 208, 104, 0, 296, 1037, 1, 0, 0, 0,
12032
+ 297, 298, 5, 44, 0, 0, 298, 302, 5, 212, 0, 0, 299, 300, 5, 101, 0, 0, 300, 301, 5, 147,
12033
+ 0, 0, 301, 303, 5, 77, 0, 0, 302, 299, 1, 0, 0, 0, 302, 303, 1, 0, 0, 0, 303, 304, 1, 0,
12034
+ 0, 0, 304, 306, 3, 178, 89, 0, 305, 307, 3, 94, 47, 0, 306, 305, 1, 0, 0, 0, 306, 307,
12035
+ 1, 0, 0, 0, 307, 310, 1, 0, 0, 0, 308, 309, 5, 40, 0, 0, 309, 311, 3, 116, 58, 0, 310,
12036
+ 308, 1, 0, 0, 0, 310, 311, 1, 0, 0, 0, 311, 314, 1, 0, 0, 0, 312, 313, 5, 243, 0, 0, 313,
12037
+ 315, 3, 28, 14, 0, 314, 312, 1, 0, 0, 0, 314, 315, 1, 0, 0, 0, 315, 316, 1, 0, 0, 0, 316,
12038
+ 322, 5, 26, 0, 0, 317, 323, 3, 18, 9, 0, 318, 319, 5, 1, 0, 0, 319, 320, 3, 18, 9, 0, 320,
12039
+ 321, 5, 2, 0, 0, 321, 323, 1, 0, 0, 0, 322, 317, 1, 0, 0, 0, 322, 318, 1, 0, 0, 0, 323,
12040
+ 329, 1, 0, 0, 0, 324, 326, 5, 243, 0, 0, 325, 327, 5, 144, 0, 0, 326, 325, 1, 0, 0, 0,
12041
+ 326, 327, 1, 0, 0, 0, 327, 328, 1, 0, 0, 0, 328, 330, 5, 56, 0, 0, 329, 324, 1, 0, 0, 0,
12042
+ 329, 330, 1, 0, 0, 0, 330, 1037, 1, 0, 0, 0, 331, 332, 5, 44, 0, 0, 332, 336, 5, 212,
12043
+ 0, 0, 333, 334, 5, 101, 0, 0, 334, 335, 5, 147, 0, 0, 335, 337, 5, 77, 0, 0, 336, 333,
12044
+ 1, 0, 0, 0, 336, 337, 1, 0, 0, 0, 337, 338, 1, 0, 0, 0, 338, 339, 3, 178, 89, 0, 339, 340,
12045
+ 5, 1, 0, 0, 340, 345, 3, 22, 11, 0, 341, 342, 5, 3, 0, 0, 342, 344, 3, 22, 11, 0, 343,
12046
+ 341, 1, 0, 0, 0, 344, 347, 1, 0, 0, 0, 345, 343, 1, 0, 0, 0, 345, 346, 1, 0, 0, 0, 346,
12047
+ 348, 1, 0, 0, 0, 347, 345, 1, 0, 0, 0, 348, 351, 5, 2, 0, 0, 349, 350, 5, 40, 0, 0, 350,
12048
+ 352, 3, 116, 58, 0, 351, 349, 1, 0, 0, 0, 351, 352, 1, 0, 0, 0, 352, 355, 1, 0, 0, 0, 353,
12049
+ 354, 5, 243, 0, 0, 354, 356, 3, 28, 14, 0, 355, 353, 1, 0, 0, 0, 355, 356, 1, 0, 0, 0,
12050
+ 356, 1037, 1, 0, 0, 0, 357, 358, 5, 69, 0, 0, 358, 361, 5, 212, 0, 0, 359, 360, 5, 101,
12051
+ 0, 0, 360, 362, 5, 77, 0, 0, 361, 359, 1, 0, 0, 0, 361, 362, 1, 0, 0, 0, 362, 363, 1, 0,
12052
+ 0, 0, 363, 1037, 3, 176, 88, 0, 364, 365, 5, 108, 0, 0, 365, 366, 5, 111, 0, 0, 366,
12053
+ 368, 3, 176, 88, 0, 367, 369, 3, 96, 48, 0, 368, 367, 1, 0, 0, 0, 368, 369, 1, 0, 0, 0,
12054
+ 369, 370, 1, 0, 0, 0, 370, 371, 3, 18, 9, 0, 371, 1037, 1, 0, 0, 0, 372, 373, 5, 62, 0,
12055
+ 0, 373, 374, 5, 88, 0, 0, 374, 377, 3, 176, 88, 0, 375, 376, 5, 241, 0, 0, 376, 378,
12056
+ 3, 104, 52, 0, 377, 375, 1, 0, 0, 0, 377, 378, 1, 0, 0, 0, 378, 1037, 1, 0, 0, 0, 379,
12057
+ 380, 5, 222, 0, 0, 380, 381, 5, 212, 0, 0, 381, 1037, 3, 176, 88, 0, 382, 383, 5, 21,
12058
+ 0, 0, 383, 386, 5, 212, 0, 0, 384, 385, 5, 101, 0, 0, 385, 387, 5, 77, 0, 0, 386, 384,
12059
+ 1, 0, 0, 0, 386, 387, 1, 0, 0, 0, 387, 388, 1, 0, 0, 0, 388, 389, 3, 176, 88, 0, 389, 390,
12060
+ 5, 180, 0, 0, 390, 391, 5, 220, 0, 0, 391, 392, 3, 178, 89, 0, 392, 1037, 1, 0, 0, 0,
12061
+ 393, 394, 5, 40, 0, 0, 394, 395, 5, 153, 0, 0, 395, 396, 5, 212, 0, 0, 396, 397, 3, 176,
12062
+ 88, 0, 397, 400, 5, 114, 0, 0, 398, 401, 3, 116, 58, 0, 399, 401, 5, 148, 0, 0, 400,
12063
+ 398, 1, 0, 0, 0, 400, 399, 1, 0, 0, 0, 401, 1037, 1, 0, 0, 0, 402, 403, 5, 40, 0, 0, 403,
12064
+ 404, 5, 153, 0, 0, 404, 405, 5, 38, 0, 0, 405, 406, 3, 200, 100, 0, 406, 409, 5, 114,
12065
+ 0, 0, 407, 410, 3, 116, 58, 0, 408, 410, 5, 148, 0, 0, 409, 407, 1, 0, 0, 0, 409, 408,
12066
+ 1, 0, 0, 0, 410, 1037, 1, 0, 0, 0, 411, 412, 5, 21, 0, 0, 412, 415, 5, 212, 0, 0, 413,
12067
+ 414, 5, 101, 0, 0, 414, 416, 5, 77, 0, 0, 415, 413, 1, 0, 0, 0, 415, 416, 1, 0, 0, 0, 416,
12068
+ 417, 1, 0, 0, 0, 417, 418, 3, 176, 88, 0, 418, 419, 5, 180, 0, 0, 419, 422, 5, 38, 0,
12069
+ 0, 420, 421, 5, 101, 0, 0, 421, 423, 5, 77, 0, 0, 422, 420, 1, 0, 0, 0, 422, 423, 1, 0,
12070
+ 0, 0, 423, 424, 1, 0, 0, 0, 424, 425, 3, 200, 100, 0, 425, 426, 5, 220, 0, 0, 426, 427,
12071
+ 3, 202, 101, 0, 427, 1037, 1, 0, 0, 0, 428, 429, 5, 21, 0, 0, 429, 432, 5, 212, 0, 0,
12072
+ 430, 431, 5, 101, 0, 0, 431, 433, 5, 77, 0, 0, 432, 430, 1, 0, 0, 0, 432, 433, 1, 0, 0,
12073
+ 0, 433, 434, 1, 0, 0, 0, 434, 435, 3, 176, 88, 0, 435, 436, 5, 69, 0, 0, 436, 439, 5,
12074
+ 38, 0, 0, 437, 438, 5, 101, 0, 0, 438, 440, 5, 77, 0, 0, 439, 437, 1, 0, 0, 0, 439, 440,
12075
+ 1, 0, 0, 0, 440, 441, 1, 0, 0, 0, 441, 442, 3, 200, 100, 0, 442, 1037, 1, 0, 0, 0, 443,
12076
+ 444, 5, 21, 0, 0, 444, 447, 5, 212, 0, 0, 445, 446, 5, 101, 0, 0, 446, 448, 5, 77, 0,
12077
+ 0, 447, 445, 1, 0, 0, 0, 447, 448, 1, 0, 0, 0, 448, 449, 1, 0, 0, 0, 449, 450, 3, 176,
12078
+ 88, 0, 450, 451, 5, 17, 0, 0, 451, 455, 5, 38, 0, 0, 452, 453, 5, 101, 0, 0, 453, 454,
12079
+ 5, 147, 0, 0, 454, 456, 5, 77, 0, 0, 455, 452, 1, 0, 0, 0, 455, 456, 1, 0, 0, 0, 456, 457,
12080
+ 1, 0, 0, 0, 457, 458, 3, 24, 12, 0, 458, 1037, 1, 0, 0, 0, 459, 460, 5, 21, 0, 0, 460,
12081
+ 461, 5, 212, 0, 0, 461, 462, 3, 176, 88, 0, 462, 463, 5, 203, 0, 0, 463, 464, 5, 29,
12082
+ 0, 0, 464, 465, 3, 208, 104, 0, 465, 1037, 1, 0, 0, 0, 466, 467, 5, 21, 0, 0, 467, 468,
12083
+ 5, 212, 0, 0, 468, 469, 3, 176, 88, 0, 469, 470, 5, 203, 0, 0, 470, 471, 5, 175, 0, 0,
12084
+ 471, 472, 3, 30, 15, 0, 472, 1037, 1, 0, 0, 0, 473, 474, 5, 21, 0, 0, 474, 475, 5, 212,
12085
+ 0, 0, 475, 476, 3, 176, 88, 0, 476, 477, 5, 76, 0, 0, 477, 490, 3, 212, 106, 0, 478,
12086
+ 487, 5, 1, 0, 0, 479, 484, 3, 166, 83, 0, 480, 481, 5, 3, 0, 0, 481, 483, 3, 166, 83,
12087
+ 0, 482, 480, 1, 0, 0, 0, 483, 486, 1, 0, 0, 0, 484, 482, 1, 0, 0, 0, 484, 485, 1, 0, 0,
12088
+ 0, 485, 488, 1, 0, 0, 0, 486, 484, 1, 0, 0, 0, 487, 479, 1, 0, 0, 0, 487, 488, 1, 0, 0,
12089
+ 0, 488, 489, 1, 0, 0, 0, 489, 491, 5, 2, 0, 0, 490, 478, 1, 0, 0, 0, 490, 491, 1, 0, 0,
12090
+ 0, 491, 494, 1, 0, 0, 0, 492, 493, 5, 241, 0, 0, 493, 495, 3, 104, 52, 0, 494, 492, 1,
12091
+ 0, 0, 0, 494, 495, 1, 0, 0, 0, 495, 1037, 1, 0, 0, 0, 496, 497, 5, 22, 0, 0, 497, 500,
12092
+ 3, 176, 88, 0, 498, 499, 5, 243, 0, 0, 499, 501, 3, 28, 14, 0, 500, 498, 1, 0, 0, 0, 500,
12093
+ 501, 1, 0, 0, 0, 501, 1037, 1, 0, 0, 0, 502, 505, 5, 44, 0, 0, 503, 504, 5, 157, 0, 0,
12094
+ 504, 506, 5, 182, 0, 0, 505, 503, 1, 0, 0, 0, 505, 506, 1, 0, 0, 0, 506, 507, 1, 0, 0,
12095
+ 0, 507, 508, 5, 133, 0, 0, 508, 512, 5, 239, 0, 0, 509, 510, 5, 101, 0, 0, 510, 511,
12096
+ 5, 147, 0, 0, 511, 513, 5, 77, 0, 0, 512, 509, 1, 0, 0, 0, 512, 513, 1, 0, 0, 0, 513, 514,
12097
+ 1, 0, 0, 0, 514, 517, 3, 182, 91, 0, 515, 516, 5, 40, 0, 0, 516, 518, 3, 116, 58, 0, 517,
12098
+ 515, 1, 0, 0, 0, 517, 518, 1, 0, 0, 0, 518, 521, 1, 0, 0, 0, 519, 520, 5, 243, 0, 0, 520,
12099
+ 522, 3, 28, 14, 0, 521, 519, 1, 0, 0, 0, 521, 522, 1, 0, 0, 0, 522, 523, 1, 0, 0, 0, 523,
12100
+ 524, 5, 26, 0, 0, 524, 525, 3, 18, 9, 0, 525, 1037, 1, 0, 0, 0, 526, 529, 5, 44, 0, 0,
12101
+ 527, 528, 5, 157, 0, 0, 528, 530, 5, 182, 0, 0, 529, 527, 1, 0, 0, 0, 529, 530, 1, 0,
12102
+ 0, 0, 530, 531, 1, 0, 0, 0, 531, 532, 5, 239, 0, 0, 532, 535, 3, 182, 91, 0, 533, 534,
12103
+ 5, 40, 0, 0, 534, 536, 3, 116, 58, 0, 535, 533, 1, 0, 0, 0, 535, 536, 1, 0, 0, 0, 536,
12104
+ 539, 1, 0, 0, 0, 537, 538, 5, 198, 0, 0, 538, 540, 7, 1, 0, 0, 539, 537, 1, 0, 0, 0, 539,
12105
+ 540, 1, 0, 0, 0, 540, 541, 1, 0, 0, 0, 541, 542, 5, 26, 0, 0, 542, 543, 3, 18, 9, 0, 543,
12106
+ 1037, 1, 0, 0, 0, 544, 545, 5, 179, 0, 0, 545, 546, 5, 133, 0, 0, 546, 547, 5, 239, 0,
12107
+ 0, 547, 1037, 3, 180, 90, 0, 548, 549, 5, 69, 0, 0, 549, 550, 5, 133, 0, 0, 550, 553,
12108
+ 5, 239, 0, 0, 551, 552, 5, 101, 0, 0, 552, 554, 5, 77, 0, 0, 553, 551, 1, 0, 0, 0, 553,
12109
+ 554, 1, 0, 0, 0, 554, 555, 1, 0, 0, 0, 555, 1037, 3, 180, 90, 0, 556, 557, 5, 21, 0, 0,
12110
+ 557, 558, 5, 133, 0, 0, 558, 561, 5, 239, 0, 0, 559, 560, 5, 101, 0, 0, 560, 562, 5,
12111
+ 77, 0, 0, 561, 559, 1, 0, 0, 0, 561, 562, 1, 0, 0, 0, 562, 563, 1, 0, 0, 0, 563, 564, 3,
12112
+ 180, 90, 0, 564, 565, 5, 180, 0, 0, 565, 566, 5, 220, 0, 0, 566, 567, 3, 182, 91, 0,
12113
+ 567, 1037, 1, 0, 0, 0, 568, 569, 5, 21, 0, 0, 569, 570, 5, 133, 0, 0, 570, 571, 5, 239,
12114
+ 0, 0, 571, 572, 3, 180, 90, 0, 572, 573, 5, 203, 0, 0, 573, 574, 5, 175, 0, 0, 574, 575,
12115
+ 3, 30, 15, 0, 575, 1037, 1, 0, 0, 0, 576, 577, 5, 69, 0, 0, 577, 580, 5, 239, 0, 0, 578,
12116
+ 579, 5, 101, 0, 0, 579, 581, 5, 77, 0, 0, 580, 578, 1, 0, 0, 0, 580, 581, 1, 0, 0, 0, 581,
12117
+ 582, 1, 0, 0, 0, 582, 1037, 3, 180, 90, 0, 583, 584, 5, 21, 0, 0, 584, 585, 5, 239, 0,
12118
+ 0, 585, 586, 3, 180, 90, 0, 586, 587, 5, 180, 0, 0, 587, 588, 5, 220, 0, 0, 588, 589,
12119
+ 3, 182, 91, 0, 589, 1037, 1, 0, 0, 0, 590, 591, 5, 21, 0, 0, 591, 592, 5, 239, 0, 0, 592,
12120
+ 593, 3, 180, 90, 0, 593, 594, 5, 203, 0, 0, 594, 595, 5, 29, 0, 0, 595, 596, 3, 208,
12121
+ 104, 0, 596, 1037, 1, 0, 0, 0, 597, 598, 5, 33, 0, 0, 598, 599, 3, 198, 99, 0, 599, 608,
12122
+ 5, 1, 0, 0, 600, 605, 3, 166, 83, 0, 601, 602, 5, 3, 0, 0, 602, 604, 3, 166, 83, 0, 603,
12123
+ 601, 1, 0, 0, 0, 604, 607, 1, 0, 0, 0, 605, 603, 1, 0, 0, 0, 605, 606, 1, 0, 0, 0, 606,
12124
+ 609, 1, 0, 0, 0, 607, 605, 1, 0, 0, 0, 608, 600, 1, 0, 0, 0, 608, 609, 1, 0, 0, 0, 609,
12125
+ 610, 1, 0, 0, 0, 610, 611, 5, 2, 0, 0, 611, 1037, 1, 0, 0, 0, 612, 613, 5, 44, 0, 0, 613,
12126
+ 614, 5, 188, 0, 0, 614, 618, 3, 212, 106, 0, 615, 616, 5, 243, 0, 0, 616, 617, 5, 18,
12127
+ 0, 0, 617, 619, 3, 206, 103, 0, 618, 615, 1, 0, 0, 0, 618, 619, 1, 0, 0, 0, 619, 622,
12128
+ 1, 0, 0, 0, 620, 621, 5, 103, 0, 0, 621, 623, 3, 194, 97, 0, 622, 620, 1, 0, 0, 0, 622,
12129
+ 623, 1, 0, 0, 0, 623, 1037, 1, 0, 0, 0, 624, 625, 5, 69, 0, 0, 625, 626, 5, 188, 0, 0,
12130
+ 626, 1037, 3, 212, 106, 0, 627, 628, 5, 91, 0, 0, 628, 629, 3, 210, 105, 0, 629, 630,
12131
+ 5, 220, 0, 0, 630, 635, 3, 208, 104, 0, 631, 632, 5, 3, 0, 0, 632, 634, 3, 208, 104,
12132
+ 0, 633, 631, 1, 0, 0, 0, 634, 637, 1, 0, 0, 0, 635, 633, 1, 0, 0, 0, 635, 636, 1, 0, 0,
12133
+ 0, 636, 641, 1, 0, 0, 0, 637, 635, 1, 0, 0, 0, 638, 639, 5, 243, 0, 0, 639, 640, 5, 18,
12134
+ 0, 0, 640, 642, 5, 156, 0, 0, 641, 638, 1, 0, 0, 0, 641, 642, 1, 0, 0, 0, 642, 646, 1,
12135
+ 0, 0, 0, 643, 644, 5, 92, 0, 0, 644, 645, 5, 32, 0, 0, 645, 647, 3, 206, 103, 0, 646,
12136
+ 643, 1, 0, 0, 0, 646, 647, 1, 0, 0, 0, 647, 650, 1, 0, 0, 0, 648, 649, 5, 103, 0, 0, 649,
12137
+ 651, 3, 194, 97, 0, 650, 648, 1, 0, 0, 0, 650, 651, 1, 0, 0, 0, 651, 1037, 1, 0, 0, 0,
12138
+ 652, 656, 5, 186, 0, 0, 653, 654, 5, 18, 0, 0, 654, 655, 5, 156, 0, 0, 655, 657, 5, 86,
12139
+ 0, 0, 656, 653, 1, 0, 0, 0, 656, 657, 1, 0, 0, 0, 657, 658, 1, 0, 0, 0, 658, 659, 3, 210,
12110
12140
  105, 0, 659, 660, 5, 88, 0, 0, 660, 665, 3, 208, 104, 0, 661, 662, 5, 3, 0, 0, 662, 664,
12111
12141
  3, 208, 104, 0, 663, 661, 1, 0, 0, 0, 664, 667, 1, 0, 0, 0, 665, 663, 1, 0, 0, 0, 665,
12112
12142
  666, 1, 0, 0, 0, 666, 671, 1, 0, 0, 0, 667, 665, 1, 0, 0, 0, 668, 669, 5, 92, 0, 0, 669,
@@ -12761,27 +12791,28 @@ TrinoSqlParser._serializedATN = [
12761
12791
  212, 106, 0, 2540, 2542, 1, 0, 0, 0, 2541, 2536, 1, 0, 0, 0, 2541, 2537, 1, 0, 0, 0,
12762
12792
  2542, 193, 1, 0, 0, 0, 2543, 2544, 3, 212, 106, 0, 2544, 195, 1, 0, 0, 0, 2545, 2546,
12763
12793
  3, 212, 106, 0, 2546, 197, 1, 0, 0, 0, 2547, 2548, 3, 204, 102, 0, 2548, 199, 1, 0,
12764
- 0, 0, 2549, 2550, 3, 204, 102, 0, 2550, 201, 1, 0, 0, 0, 2551, 2552, 3, 212, 106, 0,
12765
- 2552, 203, 1, 0, 0, 0, 2553, 2558, 3, 212, 106, 0, 2554, 2555, 5, 4, 0, 0, 2555, 2557,
12766
- 3, 212, 106, 0, 2556, 2554, 1, 0, 0, 0, 2557, 2560, 1, 0, 0, 0, 2558, 2556, 1, 0, 0,
12767
- 0, 2558, 2559, 1, 0, 0, 0, 2559, 205, 1, 0, 0, 0, 2560, 2558, 1, 0, 0, 0, 2561, 2565,
12768
- 3, 208, 104, 0, 2562, 2565, 5, 55, 0, 0, 2563, 2565, 5, 51, 0, 0, 2564, 2561, 1, 0,
12769
- 0, 0, 2564, 2562, 1, 0, 0, 0, 2564, 2563, 1, 0, 0, 0, 2565, 207, 1, 0, 0, 0, 2566, 2572,
12770
- 3, 212, 106, 0, 2567, 2568, 5, 234, 0, 0, 2568, 2572, 3, 212, 106, 0, 2569, 2570,
12771
- 5, 188, 0, 0, 2570, 2572, 3, 212, 106, 0, 2571, 2566, 1, 0, 0, 0, 2571, 2567, 1, 0,
12772
- 0, 0, 2571, 2569, 1, 0, 0, 0, 2572, 209, 1, 0, 0, 0, 2573, 2578, 3, 212, 106, 0, 2574,
12773
- 2575, 5, 3, 0, 0, 2575, 2577, 3, 212, 106, 0, 2576, 2574, 1, 0, 0, 0, 2577, 2580, 1,
12774
- 0, 0, 0, 2578, 2576, 1, 0, 0, 0, 2578, 2579, 1, 0, 0, 0, 2579, 211, 1, 0, 0, 0, 2580,
12775
- 2578, 1, 0, 0, 0, 2581, 2587, 5, 268, 0, 0, 2582, 2587, 5, 270, 0, 0, 2583, 2587, 3,
12776
- 216, 108, 0, 2584, 2587, 5, 271, 0, 0, 2585, 2587, 5, 269, 0, 0, 2586, 2581, 1, 0,
12777
- 0, 0, 2586, 2582, 1, 0, 0, 0, 2586, 2583, 1, 0, 0, 0, 2586, 2584, 1, 0, 0, 0, 2586, 2585,
12778
- 1, 0, 0, 0, 2587, 213, 1, 0, 0, 0, 2588, 2590, 5, 256, 0, 0, 2589, 2588, 1, 0, 0, 0, 2589,
12779
- 2590, 1, 0, 0, 0, 2590, 2591, 1, 0, 0, 0, 2591, 2601, 5, 266, 0, 0, 2592, 2594, 5, 256,
12780
- 0, 0, 2593, 2592, 1, 0, 0, 0, 2593, 2594, 1, 0, 0, 0, 2594, 2595, 1, 0, 0, 0, 2595, 2601,
12781
- 5, 267, 0, 0, 2596, 2598, 5, 256, 0, 0, 2597, 2596, 1, 0, 0, 0, 2597, 2598, 1, 0, 0,
12782
- 0, 2598, 2599, 1, 0, 0, 0, 2599, 2601, 5, 265, 0, 0, 2600, 2589, 1, 0, 0, 0, 2600, 2593,
12783
- 1, 0, 0, 0, 2600, 2597, 1, 0, 0, 0, 2601, 215, 1, 0, 0, 0, 2602, 2603, 7, 26, 0, 0, 2603,
12784
- 217, 1, 0, 0, 0, 339, 221, 232, 236, 240, 244, 248, 252, 262, 267, 271, 277, 281,
12794
+ 0, 0, 2549, 2552, 3, 204, 102, 0, 2550, 2552, 4, 100, 14, 0, 2551, 2549, 1, 0, 0, 0,
12795
+ 2551, 2550, 1, 0, 0, 0, 2552, 201, 1, 0, 0, 0, 2553, 2554, 3, 212, 106, 0, 2554, 203,
12796
+ 1, 0, 0, 0, 2555, 2560, 3, 212, 106, 0, 2556, 2557, 5, 4, 0, 0, 2557, 2559, 3, 212,
12797
+ 106, 0, 2558, 2556, 1, 0, 0, 0, 2559, 2562, 1, 0, 0, 0, 2560, 2558, 1, 0, 0, 0, 2560,
12798
+ 2561, 1, 0, 0, 0, 2561, 205, 1, 0, 0, 0, 2562, 2560, 1, 0, 0, 0, 2563, 2567, 3, 208,
12799
+ 104, 0, 2564, 2567, 5, 55, 0, 0, 2565, 2567, 5, 51, 0, 0, 2566, 2563, 1, 0, 0, 0, 2566,
12800
+ 2564, 1, 0, 0, 0, 2566, 2565, 1, 0, 0, 0, 2567, 207, 1, 0, 0, 0, 2568, 2574, 3, 212,
12801
+ 106, 0, 2569, 2570, 5, 234, 0, 0, 2570, 2574, 3, 212, 106, 0, 2571, 2572, 5, 188,
12802
+ 0, 0, 2572, 2574, 3, 212, 106, 0, 2573, 2568, 1, 0, 0, 0, 2573, 2569, 1, 0, 0, 0, 2573,
12803
+ 2571, 1, 0, 0, 0, 2574, 209, 1, 0, 0, 0, 2575, 2580, 3, 212, 106, 0, 2576, 2577, 5,
12804
+ 3, 0, 0, 2577, 2579, 3, 212, 106, 0, 2578, 2576, 1, 0, 0, 0, 2579, 2582, 1, 0, 0, 0,
12805
+ 2580, 2578, 1, 0, 0, 0, 2580, 2581, 1, 0, 0, 0, 2581, 211, 1, 0, 0, 0, 2582, 2580, 1,
12806
+ 0, 0, 0, 2583, 2589, 5, 268, 0, 0, 2584, 2589, 5, 270, 0, 0, 2585, 2589, 3, 216, 108,
12807
+ 0, 2586, 2589, 5, 271, 0, 0, 2587, 2589, 5, 269, 0, 0, 2588, 2583, 1, 0, 0, 0, 2588,
12808
+ 2584, 1, 0, 0, 0, 2588, 2585, 1, 0, 0, 0, 2588, 2586, 1, 0, 0, 0, 2588, 2587, 1, 0, 0,
12809
+ 0, 2589, 213, 1, 0, 0, 0, 2590, 2592, 5, 256, 0, 0, 2591, 2590, 1, 0, 0, 0, 2591, 2592,
12810
+ 1, 0, 0, 0, 2592, 2593, 1, 0, 0, 0, 2593, 2603, 5, 266, 0, 0, 2594, 2596, 5, 256, 0,
12811
+ 0, 2595, 2594, 1, 0, 0, 0, 2595, 2596, 1, 0, 0, 0, 2596, 2597, 1, 0, 0, 0, 2597, 2603,
12812
+ 5, 267, 0, 0, 2598, 2600, 5, 256, 0, 0, 2599, 2598, 1, 0, 0, 0, 2599, 2600, 1, 0, 0,
12813
+ 0, 2600, 2601, 1, 0, 0, 0, 2601, 2603, 5, 265, 0, 0, 2602, 2591, 1, 0, 0, 0, 2602, 2595,
12814
+ 1, 0, 0, 0, 2602, 2599, 1, 0, 0, 0, 2603, 215, 1, 0, 0, 0, 2604, 2605, 7, 26, 0, 0, 2605,
12815
+ 217, 1, 0, 0, 0, 340, 221, 232, 236, 240, 244, 248, 252, 262, 267, 271, 277, 281,
12785
12816
  302, 306, 310, 314, 322, 326, 329, 336, 345, 351, 355, 361, 368, 377, 386, 400,
12786
12817
  409, 415, 422, 432, 439, 447, 455, 484, 487, 490, 494, 500, 505, 512, 517, 521,
12787
12818
  529, 535, 539, 553, 561, 580, 605, 608, 618, 622, 635, 641, 646, 650, 656, 665,
@@ -12805,7 +12836,7 @@ TrinoSqlParser._serializedATN = [
12805
12836
  2255, 2260, 2269, 2274, 2282, 2290, 2293, 2299, 2302, 2309, 2317, 2320, 2328,
12806
12837
  2331, 2357, 2368, 2373, 2380, 2382, 2395, 2410, 2414, 2418, 2422, 2428, 2432,
12807
12838
  2436, 2440, 2442, 2452, 2459, 2468, 2475, 2482, 2489, 2496, 2517, 2530, 2541,
12808
- 2558, 2564, 2571, 2578, 2586, 2589, 2593, 2597, 2600
12839
+ 2551, 2560, 2566, 2573, 2580, 2588, 2591, 2595, 2599, 2602
12809
12840
  ];
12810
12841
  TrinoSqlParser.vocabulary = new antlr.Vocabulary(TrinoSqlParser.literalNames, TrinoSqlParser.symbolicNames, []);
12811
12842
  TrinoSqlParser.decisionsToDFA = TrinoSqlParser._ATN.decisionToState.map((ds, index) => new antlr.DFA(ds, index));
@@ -16280,28 +16311,37 @@ export class QueryContext extends antlr.ParserRuleContext {
16280
16311
  constructor(parent, invokingState) {
16281
16312
  super(parent, invokingState);
16282
16313
  }
16314
+ get ruleIndex() {
16315
+ return TrinoSqlParser.RULE_query;
16316
+ }
16317
+ copyFrom(ctx) {
16318
+ super.copyFrom(ctx);
16319
+ }
16320
+ }
16321
+ export class QueryStatementContext extends QueryContext {
16322
+ constructor(ctx) {
16323
+ super(ctx.parent, ctx.invokingState);
16324
+ super.copyFrom(ctx);
16325
+ }
16283
16326
  queryNoWith() {
16284
16327
  return this.getRuleContext(0, QueryNoWithContext);
16285
16328
  }
16286
16329
  with() {
16287
16330
  return this.getRuleContext(0, WithContext);
16288
16331
  }
16289
- get ruleIndex() {
16290
- return TrinoSqlParser.RULE_query;
16291
- }
16292
16332
  enterRule(listener) {
16293
- if (listener.enterQuery) {
16294
- listener.enterQuery(this);
16333
+ if (listener.enterQueryStatement) {
16334
+ listener.enterQueryStatement(this);
16295
16335
  }
16296
16336
  }
16297
16337
  exitRule(listener) {
16298
- if (listener.exitQuery) {
16299
- listener.exitQuery(this);
16338
+ if (listener.exitQueryStatement) {
16339
+ listener.exitQueryStatement(this);
16300
16340
  }
16301
16341
  }
16302
16342
  accept(visitor) {
16303
- if (visitor.visitQuery) {
16304
- return visitor.visitQuery(this);
16343
+ if (visitor.visitQueryStatement) {
16344
+ return visitor.visitQueryStatement(this);
16305
16345
  }
16306
16346
  else {
16307
16347
  return visitor.visitChildren(this);