Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
taosdata
TDengine
提交
a5210ee1
TDengine
项目概览
taosdata
/
TDengine
大约 1 年 前同步成功
通知
1184
Star
22015
Fork
4786
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
1
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
TDengine
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
1
Issue
1
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
未验证
提交
a5210ee1
编写于
5月 14, 2022
作者:
X
Xiaoyu Wang
提交者:
GitHub
5月 14, 2022
浏览文件
操作
浏览文件
下载
差异文件
Merge pull request #12466 from taosdata/feature/3.0_wxy
fix: some problems of parser and planner
上级
84144adf
84018cdb
变更
8
显示空白变更内容
内联
并排
Showing
8 changed file
with
727 addition
and
642 deletion
+727
-642
include/libs/nodes/querynodes.h
include/libs/nodes/querynodes.h
+1
-0
source/libs/nodes/src/nodesUtilFuncs.c
source/libs/nodes/src/nodesUtilFuncs.c
+13
-0
source/libs/parser/inc/sql.y
source/libs/parser/inc/sql.y
+3
-3
source/libs/parser/src/parTranslater.c
source/libs/parser/src/parTranslater.c
+53
-14
source/libs/parser/src/sql.c
source/libs/parser/src/sql.c
+638
-621
source/libs/parser/test/parSelectTest.cpp
source/libs/parser/test/parSelectTest.cpp
+8
-0
source/libs/planner/src/planOptimizer.c
source/libs/planner/src/planOptimizer.c
+5
-1
source/libs/planner/test/planSubqueryTest.cpp
source/libs/planner/test/planSubqueryTest.cpp
+6
-3
未找到文件。
include/libs/nodes/querynodes.h
浏览文件 @
a5210ee1
...
...
@@ -345,6 +345,7 @@ bool nodesIsUnaryOp(const SOperatorNode* pOp);
bool
nodesIsArithmeticOp
(
const
SOperatorNode
*
pOp
);
bool
nodesIsComparisonOp
(
const
SOperatorNode
*
pOp
);
bool
nodesIsJsonOp
(
const
SOperatorNode
*
pOp
);
bool
nodesIsRegularOp
(
const
SOperatorNode
*
pOp
);
bool
nodesIsTimeorderQuery
(
const
SNode
*
pQuery
);
bool
nodesIsTimelineQuery
(
const
SNode
*
pQuery
);
...
...
source/libs/nodes/src/nodesUtilFuncs.c
浏览文件 @
a5210ee1
...
...
@@ -1112,6 +1112,19 @@ bool nodesIsJsonOp(const SOperatorNode* pOp) {
return
false
;
}
bool
nodesIsRegularOp
(
const
SOperatorNode
*
pOp
)
{
switch
(
pOp
->
opType
)
{
case
OP_TYPE_LIKE
:
case
OP_TYPE_NOT_LIKE
:
case
OP_TYPE_MATCH
:
case
OP_TYPE_NMATCH
:
return
true
;
default:
break
;
}
return
false
;
}
bool
nodesIsTimeorderQuery
(
const
SNode
*
pQuery
)
{
return
false
;
}
bool
nodesIsTimelineQuery
(
const
SNode
*
pQuery
)
{
return
false
;
}
...
...
source/libs/parser/inc/sql.y
浏览文件 @
a5210ee1
...
...
@@ -868,9 +868,9 @@ query_expression_body(A) ::=
query_expression_body(B) UNION query_expression_body(D). { A = createSetOperator(pCxt, SET_OP_TYPE_UNION, B, D); }
query_primary(A) ::= query_specification(B). { A = B; }
//
query_primary(A) ::=
//
NK_LP query_expression_body(B)
//
order_by_clause_opt slimit_clause_opt limit_clause_opt NK_RP. { A = B; }
query_primary(A) ::=
NK_LP query_expression_body(B)
order_by_clause_opt slimit_clause_opt limit_clause_opt NK_RP. { A = B; }
%type order_by_clause_opt { SNodeList* }
%destructor order_by_clause_opt { nodesDestroyList($$); }
...
...
source/libs/parser/src/parTranslater.c
浏览文件 @
a5210ee1
...
...
@@ -480,8 +480,8 @@ static EDealRes translateColumn(STranslateContext* pCxt, SColumnNode* pCol) {
return
res
;
}
static
EDealRes
translateValue
(
STranslateContext
*
pCxt
,
SValueNode
*
pVal
)
{
uint8_t
precision
=
(
NULL
!=
pCxt
->
pCurrStmt
?
pCxt
->
pCurrStmt
->
precision
:
pVal
->
node
.
resType
.
precision
);
static
EDealRes
translateValue
Impl
(
STranslateContext
*
pCxt
,
SValueNode
*
pVal
,
SDataType
targetDt
)
{
uint8_t
precision
=
(
NULL
!=
pCxt
->
pCurrStmt
?
pCxt
->
pCurrStmt
->
precision
:
targetDt
.
precision
);
pVal
->
node
.
resType
.
precision
=
precision
;
if
(
pVal
->
placeholderNo
>
0
)
{
return
DEAL_RES_CONTINUE
;
...
...
@@ -493,7 +493,7 @@ static EDealRes translateValue(STranslateContext* pCxt, SValueNode* pVal) {
}
*
(
int64_t
*
)
&
pVal
->
typeData
=
pVal
->
datum
.
i
;
}
else
{
switch
(
pVal
->
node
.
resType
.
type
)
{
switch
(
targetDt
.
type
)
{
case
TSDB_DATA_TYPE_NULL
:
break
;
case
TSDB_DATA_TYPE_BOOL
:
...
...
@@ -562,35 +562,54 @@ static EDealRes translateValue(STranslateContext* pCxt, SValueNode* pVal) {
}
case
TSDB_DATA_TYPE_VARCHAR
:
case
TSDB_DATA_TYPE_VARBINARY
:
{
pVal
->
datum
.
p
=
taosMemoryCalloc
(
1
,
pVal
->
node
.
resType
.
bytes
+
VARSTR_HEADER_SIZE
+
1
);
pVal
->
datum
.
p
=
taosMemoryCalloc
(
1
,
targetDt
.
bytes
+
VARSTR_HEADER_SIZE
+
1
);
if
(
NULL
==
pVal
->
datum
.
p
)
{
return
generateDealNodeErrMsg
(
pCxt
,
TSDB_CODE_OUT_OF_MEMORY
);
}
varDataSetLen
(
pVal
->
datum
.
p
,
pVal
->
node
.
resType
.
bytes
);
strncpy
(
varDataVal
(
pVal
->
datum
.
p
),
pVal
->
literal
,
pVal
->
node
.
resType
.
bytes
);
varDataSetLen
(
pVal
->
datum
.
p
,
targetDt
.
bytes
);
strncpy
(
varDataVal
(
pVal
->
datum
.
p
),
pVal
->
literal
,
targetDt
.
bytes
);
break
;
}
case
TSDB_DATA_TYPE_TIMESTAMP
:
{
if
(
taosParseTime
(
pVal
->
literal
,
&
pVal
->
datum
.
i
,
pVal
->
node
.
resType
.
bytes
,
precision
,
tsDaylight
)
!=
TSDB_CODE_SUCCESS
)
{
if
(
taosParseTime
(
pVal
->
literal
,
&
pVal
->
datum
.
i
,
targetDt
.
bytes
,
precision
,
tsDaylight
)
!=
TSDB_CODE_SUCCESS
)
{
return
generateDealNodeErrMsg
(
pCxt
,
TSDB_CODE_PAR_WRONG_VALUE_TYPE
,
pVal
->
literal
);
}
*
(
int64_t
*
)
&
pVal
->
typeData
=
pVal
->
datum
.
i
;
break
;
}
case
TSDB_DATA_TYPE_NCHAR
:
case
TSDB_DATA_TYPE_NCHAR
:
{
int32_t
bytes
=
targetDt
.
bytes
*
TSDB_NCHAR_SIZE
;
pVal
->
datum
.
p
=
taosMemoryCalloc
(
1
,
bytes
+
VARSTR_HEADER_SIZE
+
1
);
if
(
NULL
==
pVal
->
datum
.
p
)
{
return
generateDealNodeErrMsg
(
pCxt
,
TSDB_CODE_OUT_OF_MEMORY
);
;
}
int32_t
output
=
0
;
if
(
!
taosMbsToUcs4
(
pVal
->
literal
,
pVal
->
node
.
resType
.
bytes
,
(
TdUcs4
*
)
varDataVal
(
pVal
->
datum
.
p
),
bytes
,
&
output
))
{
return
generateDealNodeErrMsg
(
pCxt
,
TSDB_CODE_PAR_WRONG_VALUE_TYPE
,
pVal
->
literal
);
}
varDataSetLen
(
pVal
->
datum
.
p
,
output
);
break
;
}
case
TSDB_DATA_TYPE_JSON
:
case
TSDB_DATA_TYPE_DECIMAL
:
case
TSDB_DATA_TYPE_BLOB
:
// todo
return
generateDealNodeErrMsg
(
pCxt
,
TSDB_CODE_PAR_WRONG_VALUE_TYPE
,
pVal
->
literal
);
default:
break
;
}
}
pVal
->
node
.
resType
=
targetDt
;
pVal
->
translate
=
true
;
return
DEAL_RES_CONTINUE
;
}
static
EDealRes
translateValue
(
STranslateContext
*
pCxt
,
SValueNode
*
pVal
)
{
return
translateValueImpl
(
pCxt
,
pVal
,
pVal
->
node
.
resType
);
}
static
EDealRes
translateOperator
(
STranslateContext
*
pCxt
,
SOperatorNode
*
pOp
)
{
if
(
nodesIsUnaryOp
(
pOp
))
{
if
(
OP_TYPE_MINUS
==
pOp
->
opType
)
{
...
...
@@ -635,6 +654,14 @@ static EDealRes translateOperator(STranslateContext* pCxt, SOperatorNode* pOp) {
if
(
OP_TYPE_IN
==
pOp
->
opType
||
OP_TYPE_NOT_IN
==
pOp
->
opType
)
{
((
SExprNode
*
)
pOp
->
pRight
)
->
resType
=
((
SExprNode
*
)
pOp
->
pLeft
)
->
resType
;
}
if
(
nodesIsRegularOp
(
pOp
))
{
if
(
!
IS_STR_DATA_TYPE
(((
SExprNode
*
)(
pOp
->
pLeft
))
->
resType
.
type
))
{
return
generateDealNodeErrMsg
(
pCxt
,
TSDB_CODE_PAR_WRONG_VALUE_TYPE
,
((
SExprNode
*
)(
pOp
->
pLeft
))
->
aliasName
);
}
if
(
QUERY_NODE_VALUE
!=
nodeType
(
pOp
->
pRight
)
||
!
IS_STR_DATA_TYPE
(((
SExprNode
*
)(
pOp
->
pRight
))
->
resType
.
type
))
{
return
generateDealNodeErrMsg
(
pCxt
,
TSDB_CODE_PAR_WRONG_VALUE_TYPE
,
((
SExprNode
*
)(
pOp
->
pRight
))
->
aliasName
);
}
}
pOp
->
node
.
resType
.
type
=
TSDB_DATA_TYPE_BOOL
;
pOp
->
node
.
resType
.
bytes
=
tDataTypes
[
TSDB_DATA_TYPE_BOOL
].
bytes
;
}
else
if
(
nodesIsJsonOp
(
pOp
))
{
...
...
@@ -3858,11 +3885,23 @@ static int32_t createValueFromFunction(STranslateContext* pCxt, SFunctionNode* p
return
scalarCalculateConstants
((
SNode
*
)
pFunc
,
(
SNode
**
)
pVal
);
}
static
int32_t
translateTagVal
(
STranslateContext
*
pCxt
,
SNode
*
pNode
,
SValueNode
**
pVal
)
{
static
SDataType
schemaToDataType
(
SSchema
*
pSchema
)
{
SDataType
dt
=
{.
type
=
pSchema
->
type
,
.
bytes
=
pSchema
->
bytes
,
.
precision
=
0
,
.
scale
=
0
};
if
(
TSDB_DATA_TYPE_VARCHAR
==
dt
.
type
||
TSDB_DATA_TYPE_BINARY
==
dt
.
type
||
TSDB_DATA_TYPE_VARBINARY
==
dt
.
type
)
{
dt
.
bytes
-=
VARSTR_HEADER_SIZE
;
}
else
if
(
TSDB_DATA_TYPE_NCHAR
==
dt
.
type
)
{
dt
.
bytes
=
(
dt
.
bytes
-
VARSTR_HEADER_SIZE
)
/
TSDB_NCHAR_SIZE
;
}
return
dt
;
}
static
int32_t
translateTagVal
(
STranslateContext
*
pCxt
,
SSchema
*
pSchema
,
SNode
*
pNode
,
SValueNode
**
pVal
)
{
if
(
QUERY_NODE_FUNCTION
==
nodeType
(
pNode
))
{
return
createValueFromFunction
(
pCxt
,
(
SFunctionNode
*
)
pNode
,
pVal
);
}
else
if
(
QUERY_NODE_VALUE
==
nodeType
(
pNode
))
{
return
(
DEAL_RES_ERROR
==
translateValue
(
pCxt
,
(
SValueNode
*
)
pNode
)
?
pCxt
->
errCode
:
TSDB_CODE_SUCCESS
);
return
(
DEAL_RES_ERROR
==
translateValueImpl
(
pCxt
,
(
SValueNode
*
)
pNode
,
schemaToDataType
(
pSchema
))
?
pCxt
->
errCode
:
TSDB_CODE_SUCCESS
);
}
else
{
return
TSDB_CODE_FAILED
;
}
...
...
@@ -3891,7 +3930,7 @@ static int32_t buildKVRowForBindTags(STranslateContext* pCxt, SCreateSubTableCla
return
generateSyntaxErrMsg
(
&
pCxt
->
msgBuf
,
TSDB_CODE_PAR_INVALID_TAG_NAME
,
pCol
->
colName
);
}
SValueNode
*
pVal
=
NULL
;
int32_t
code
=
translateTagVal
(
pCxt
,
pNode
,
&
pVal
);
int32_t
code
=
translateTagVal
(
pCxt
,
p
Schema
,
p
Node
,
&
pVal
);
if
(
TSDB_CODE_SUCCESS
==
code
)
{
if
(
NULL
==
pVal
)
{
pVal
=
(
SValueNode
*
)
pNode
;
...
...
@@ -3921,7 +3960,7 @@ static int32_t buildKVRowForAllTags(STranslateContext* pCxt, SCreateSubTableClau
int32_t
index
=
0
;
FOREACH
(
pNode
,
pStmt
->
pValsOfTags
)
{
SValueNode
*
pVal
=
NULL
;
int32_t
code
=
translateTagVal
(
pCxt
,
pNode
,
&
pVal
);
int32_t
code
=
translateTagVal
(
pCxt
,
p
TagSchema
+
index
,
p
Node
,
&
pVal
);
if
(
TSDB_CODE_SUCCESS
==
code
)
{
if
(
NULL
==
pVal
)
{
pVal
=
(
SValueNode
*
)
pNode
;
...
...
source/libs/parser/src/sql.c
浏览文件 @
a5210ee1
...
...
@@ -134,17 +134,17 @@ typedef union {
#define ParseCTX_FETCH
#define ParseCTX_STORE
#define YYFALLBACK 1
#define YYNSTATE
591
#define YYNRULE 45
0
#define YYNSTATE
603
#define YYNRULE 45
1
#define YYNTOKEN 238
#define YY_MAX_SHIFT
590
#define YY_MIN_SHIFTREDUCE 8
77
#define YY_MAX_SHIFTREDUCE 13
26
#define YY_ERROR_ACTION 13
27
#define YY_ACCEPT_ACTION 13
28
#define YY_NO_ACTION 13
29
#define YY_MIN_REDUCE 13
30
#define YY_MAX_REDUCE 17
79
#define YY_MAX_SHIFT
602
#define YY_MIN_SHIFTREDUCE 8
90
#define YY_MAX_SHIFTREDUCE 13
40
#define YY_ERROR_ACTION 13
41
#define YY_ACCEPT_ACTION 13
42
#define YY_NO_ACTION 13
43
#define YY_MIN_REDUCE 13
44
#define YY_MAX_REDUCE 17
94
/************* End control #defines *******************************************/
#define YY_NLOOKAHEAD ((int)(sizeof(yy_lookahead)/sizeof(yy_lookahead[0])))
...
...
@@ -211,219 +211,225 @@ typedef union {
** yy_default[] Default action for each state.
**
*********** Begin parsing tables **********************************************/
#define YY_ACTTAB_COUNT (21
04
)
#define YY_ACTTAB_COUNT (21
67
)
static
const
YYACTIONTYPE
yy_action
[]
=
{
/* 0 */
372
,
72
,
373
,
1362
,
380
,
505
,
373
,
1362
,
1613
,
26
,
/* 10 */
211
,
1449
,
33
,
31
,
109
,
1445
,
332
,
336
,
1628
,
1758
,
/* 20 */
290
,
1452
,
1143
,
1609
,
1617
,
1615
,
34
,
32
,
30
,
29
,
/* 30 */
28
,
1710
,
1757
,
1460
,
90
,
508
,
1755
,
89
,
88
,
87
,
/* 40 */
86
,
85
,
84
,
83
,
82
,
81
,
1644
,
1141
,
1505
,
281
,
/* 50 */
30
,
29
,
28
,
489
,
280
,
1707
,
1758
,
467
,
12
,
1503
,
/* 60 */
33
,
31
,
1268
,
488
,
1149
,
504
,
1613
,
1599
,
290
,
140
,
/* 70 */
1143
,
1451
,
263
,
1755
,
504
,
34
,
32
,
30
,
29
,
28
,
/* 80 */
1
,
1609
,
1616
,
1615
,
1656
,
108
,
22
,
128
,
1629
,
491
,
/* 90 */
1631
,
1632
,
487
,
508
,
508
,
1141
,
34
,
32
,
30
,
29
,
/* 100 */
28
,
56
,
587
,
1230
,
1644
,
471
,
12
,
505
,
33
,
31
,
/* 110 */
1353
,
489
,
1149
,
1142
,
104
,
504
,
290
,
1758
,
1143
,
100
,
/* 120 */
1599
,
263
,
1455
,
106
,
338
,
36
,
408
,
126
,
1
,
1342
,
/* 130 */
1756
,
472
,
1771
,
127
,
1755
,
1460
,
505
,
1417
,
204
,
1703
,
/* 140 */
466
,
1330
,
465
,
1141
,
1180
,
1758
,
371
,
460
,
100
,
375
,
/* 150 */
587
,
1165
,
1230
,
1231
,
12
,
413
,
1144
,
260
,
140
,
1599
,
/* 160 */
1149
,
1142
,
1755
,
556
,
1460
,
99
,
98
,
97
,
96
,
95
,
/* 170 */
94
,
93
,
92
,
91
,
1236
,
36
,
1
,
540
,
1147
,
1148
,
/* 180 */
457
,
1193
,
1194
,
1195
,
1196
,
1197
,
1198
,
1199
,
484
,
506
,
/* 190 */
1207
,
1208
,
1209
,
1210
,
1211
,
1212
,
539
,
538
,
587
,
537
,
/* 200 */
536
,
535
,
1231
,
326
,
1144
,
331
,
1292
,
330
,
141
,
1142
,
/* 210 */
25
,
288
,
1225
,
1226
,
1227
,
1228
,
1229
,
1233
,
1234
,
1235
,
/* 220 */
583
,
582
,
492
,
1236
,
1352
,
293
,
1147
,
1148
,
1550
,
1193
,
/* 230 */
1194
,
1195
,
1196
,
1197
,
1198
,
1199
,
484
,
506
,
1207
,
1208
,
/* 240 */
1209
,
1210
,
1211
,
1212
,
1389
,
454
,
1290
,
1291
,
1293
,
1294
,
/* 250 */
462
,
458
,
1144
,
34
,
32
,
30
,
29
,
28
,
141
,
25
,
/* 260 */
288
,
1225
,
1226
,
1227
,
1228
,
1229
,
1233
,
1234
,
1235
,
9
,
/* 270 */
8
,
467
,
1438
,
1599
,
1147
,
1148
,
1328
,
1193
,
1194
,
1195
,
/* 280 */
1196
,
1197
,
1198
,
1199
,
484
,
506
,
1207
,
1208
,
1209
,
1210
,
/* 290 */
1211
,
1212
,
33
,
31
,
34
,
32
,
30
,
29
,
28
,
108
,
/* 300 */
290
,
1436
,
1143
,
141
,
563
,
562
,
561
,
305
,
907
,
560
,
/* 310 */
559
,
558
,
110
,
553
,
552
,
551
,
550
,
549
,
548
,
547
,
/* 320 */
546
,
117
,
1282
,
1351
,
1505
,
302
,
924
,
1141
,
923
,
387
,
/* 330 */
295
,
1628
,
1541
,
1543
,
306
,
1503
,
1538
,
106
,
141
,
141
,
/* 340 */
33
,
31
,
1213
,
149
,
1149
,
61
,
911
,
912
,
290
,
1244
,
/* 350 */
1143
,
469
,
136
,
1703
,
1704
,
925
,
1708
,
24
,
542
,
1644
,
/* 360 */
7
,
34
,
32
,
30
,
29
,
28
,
489
,
34
,
32
,
30
,
/* 370 */
29
,
28
,
1599
,
1505
,
1758
,
1141
,
488
,
1392
,
294
,
301
,
/* 380 */
1599
,
50
,
587
,
451
,
1503
,
1167
,
124
,
140
,
33
,
31
,
/* 390 */
323
,
1755
,
1149
,
1142
,
1462
,
1350
,
290
,
1656
,
1143
,
461
,
/* 400 */
257
,
1629
,
491
,
1631
,
1632
,
487
,
379
,
508
,
7
,
375
,
/* 410 */
325
,
321
,
1013
,
531
,
530
,
529
,
1017
,
528
,
1019
,
1020
,
/* 420 */
527
,
1022
,
524
,
1141
,
1028
,
521
,
1030
,
1031
,
518
,
515
,
/* 430 */
587
,
34
,
32
,
30
,
29
,
28
,
1144
,
422
,
421
,
300
,
/* 440 */
1149
,
1142
,
420
,
1168
,
1599
,
105
,
417
,
124
,
505
,
416
,
/* 450 */
415
,
414
,
387
,
58
,
278
,
1462
,
7
,
181
,
1147
,
1148
,
/* 460 */
337
,
1193
,
1194
,
1195
,
1196
,
1197
,
1198
,
1199
,
484
,
506
,
/* 470 */
1207
,
1208
,
1209
,
1210
,
1211
,
1212
,
1460
,
1104
,
587
,
419
,
/* 480 */
418
,
1232
,
422
,
421
,
1144
,
1106
,
1349
,
420
,
141
,
1142
,
/* 490 */
105
,
417
,
362
,
436
,
416
,
415
,
414
,
1323
,
377
,
1588
,
/* 500 */
1180
,
1143
,
1237
,
542
,
1165
,
444
,
1147
,
1148
,
298
,
1193
,
/* 510 */
1194
,
1195
,
1196
,
1197
,
1198
,
1199
,
484
,
506
,
1207
,
1208
,
/* 520 */
1209
,
1210
,
1211
,
1212
,
147
,
1613
,
1141
,
34
,
32
,
30
,
/* 530 */
29
,
28
,
1144
,
1758
,
434
,
1599
,
151
,
150
,
23
,
1348
,
/* 540 */
1609
,
1616
,
1615
,
1149
,
313
,
1105
,
140
,
432
,
54
,
141
,
/* 550 */
1755
,
53
,
508
,
445
,
1147
,
1148
,
1628
,
1193
,
1194
,
1195
,
/* 560 */
1196
,
1197
,
1198
,
1199
,
484
,
506
,
1207
,
1208
,
1209
,
1210
,
/* 570 */
1211
,
1212
,
33
,
31
,
259
,
71
,
1165
,
975
,
1322
,
303
,
/* 580 */
290
,
587
,
1143
,
355
,
1644
,
67
,
367
,
124
,
1599
,
134
,
/* 590 */
1169
,
489
,
1142
,
1758
,
977
,
1462
,
167
,
1347
,
1346
,
1345
,
/* 600 */
1499
,
488
,
473
,
1344
,
368
,
1599
,
140
,
1141
,
133
,
505
,
/* 610 */
1755
,
471
,
1341
,
56
,
404
,
400
,
396
,
392
,
166
,
272
,
/* 620 */
1710
,
347
,
1656
,
1267
,
1149
,
248
,
1629
,
491
,
1631
,
1632
,
/* 630 */
487
,
505
,
508
,
124
,
1456
,
1144
,
65
,
1460
,
467
,
1710
,
/* 640 */
1
,
1463
,
57
,
348
,
1706
,
164
,
1599
,
1599
,
1599
,
557
,
/* 650 */
555
,
1758
,
1599
,
1340
,
1542
,
1543
,
1453
,
1147
,
1148
,
1460
,
/* 660 */
123
,
1599
,
587
,
1705
,
140
,
1339
,
108
,
273
,
1755
,
271
,
/* 670 */
270
,
923
,
410
,
1142
,
366
,
1338
,
412
,
361
,
360
,
359
,
/* 680 */
358
,
357
,
354
,
353
,
352
,
351
,
350
,
346
,
345
,
344
,
/* 690 */
343
,
342
,
341
,
340
,
339
,
492
,
406
,
505
,
505
,
411
,
/* 700 */
505
,
1551
,
1599
,
163
,
106
,
158
,
1170
,
160
,
467
,
386
,
/* 710 */
1457
,
1505
,
1579
,
1337
,
1599
,
206
,
1144
,
1336
,
1335
,
137
,
/* 720 */
1703
,
1704
,
1504
,
1708
,
1599
,
1460
,
1460
,
156
,
1460
,
1334
,
/* 730 */
1628
,
1333
,
235
,
911
,
912
,
1490
,
108
,
1437
,
1147
,
1148
,
/* 740 */
412
,
1193
,
1194
,
1195
,
1196
,
1197
,
1198
,
1199
,
484
,
506
,
/* 750 */
1207
,
1208
,
1209
,
1210
,
1211
,
1212
,
505
,
6
,
1644
,
505
,
/* 760 */
505
,
1166
,
1599
,
411
,
505
,
489
,
1599
,
1599
,
502
,
1128
,
/* 770 */
1129
,
503
,
225
,
477
,
106
,
488
,
304
,
474
,
1599
,
1599
,
/* 780 */
1599
,
545
,
544
,
1432
,
1460
,
471
,
1379
,
1460
,
1460
,
138
,
/* 790 */
1703
,
1704
,
1460
,
1708
,
1715
,
1263
,
1656
,
43
,
261
,
75
,
/* 800 */
1629
,
491
,
1631
,
1632
,
487
,
1628
,
508
,
114
,
423
,
1696
,
/* 810 */
1275
,
1218
,
172
,
262
,
1692
,
170
,
1167
,
1167
,
125
,
174
,
/* 820 */
9
,
8
,
173
,
241
,
1374
,
1758
,
481
,
176
,
1266
,
540
,
/* 830 */
175
,
192
,
42
,
1644
,
1331
,
239
,
49
,
1152
,
140
,
48
,
/* 840 */
470
,
178
,
1755
,
195
,
177
,
1372
,
425
,
446
,
539
,
538
,
/* 850 */
488
,
537
,
536
,
535
,
1599
,
90
,
152
,
1619
,
89
,
88
,
/* 860 */
87
,
86
,
85
,
84
,
83
,
82
,
81
,
428
,
534
,
1628
,
/* 870 */
1151
,
1656
,
1289
,
35
,
76
,
1629
,
491
,
1631
,
1632
,
487
,
/* 880 */
35
,
508
,
948
,
197
,
1696
,
1325
,
1326
,
1447
,
283
,
1692
,
/* 890 */
135
,
1443
,
184
,
1621
,
35
,
483
,
590
,
1644
,
443
,
949
,
/* 900 */
533
,
1343
,
207
,
1155
,
489
,
1418
,
208
,
214
,
450
,
1723
,
/* 910 */
229
,
437
,
42
,
1238
,
488
,
112
,
1628
,
74
,
1599
,
455
,
/* 920 */
1200
,
201
,
101
,
113
,
1363
,
405
,
114
,
1263
,
579
,
575
,
/* 930 */
571
,
567
,
228
,
1500
,
1099
,
1656
,
1154
,
468
,
128
,
1629
,
/* 940 */
491
,
1631
,
1632
,
487
,
1644
,
508
,
1222
,
216
,
52
,
51
,
/* 950 */
335
,
470
,
234
,
146
,
513
,
497
,
73
,
113
,
329
,
223
,
/* 960 */
478
,
488
,
475
,
222
,
114
,
1599
,
1006
,
1726
,
1645
,
2
,
/* 970 */
258
,
115
,
113
,
319
,
210
,
315
,
311
,
143
,
1165
,
308
,
/* 980 */
312
,
1628
,
1656
,
1772
,
268
,
76
,
1629
,
491
,
1631
,
1632
,
/* 990 */
487
,
975
,
508
,
501
,
1034
,
1696
,
1112
,
1038
,
230
,
283
,
/* 1000 */
1692
,
135
,
269
,
349
,
1045
,
148
,
1540
,
356
,
141
,
1644
,
/* 1010 */
369
,
1043
,
116
,
1171
,
364
,
363
,
489
,
370
,
449
,
378
,
/* 1020 */
1724
,
188
,
1174
,
381
,
365
,
155
,
488
,
1173
,
157
,
384
,
/* 1030 */
1599
,
382
,
383
,
159
,
1172
,
385
,
162
,
55
,
165
,
1120
,
/* 1040 */
388
,
183
,
1628
,
1435
,
427
,
1149
,
407
,
1656
,
409
,
277
,
/* 1050 */
76
,
1629
,
491
,
1631
,
1632
,
487
,
1450
,
508
,
169
,
435
,
/* 1060 */
1696
,
1583
,
1446
,
171
,
283
,
1692
,
1770
,
118
,
119
,
80
,
/* 1070 */
1644
,
231
,
232
,
180
,
1448
,
1730
,
1444
,
489
,
120
,
121
,
/* 1080 */
182
,
438
,
439
,
1170
,
185
,
430
,
456
,
488
,
187
,
190
,
/* 1090 */
424
,
1599
,
447
,
495
,
442
,
179
,
1628
,
1727
,
448
,
5
,
/* 1100 */
1737
,
464
,
1736
,
193
,
453
,
200
,
196
,
282
,
1656
,
452
,
/* 1110 */
459
,
76
,
1629
,
491
,
1631
,
1632
,
487
,
4
,
508
,
46
,
/* 1120 */
202
,
1696
,
45
,
107
,
1644
,
283
,
1692
,
1770
,
1263
,
1169
,
/* 1130 */
1711
,
489
,
37
,
284
,
16
,
540
,
1753
,
479
,
1717
,
476
,
/* 1140 */
1549
,
488
,
493
,
498
,
131
,
1599
,
494
,
500
,
1548
,
292
,
/* 1150 */
1628
,
1677
,
203
,
499
,
539
,
538
,
218
,
537
,
536
,
535
,
/* 1160 */
233
,
66
,
1656
,
220
,
1461
,
76
,
1629
,
491
,
1631
,
1632
,
/* 1170 */
487
,
64
,
508
,
511
,
1433
,
1696
,
236
,
227
,
1644
,
283
,
/* 1180 */
1692
,
1770
,
1628
,
1773
,
44
,
489
,
586
,
279
,
1754
,
130
,
/* 1190 */
1714
,
209
,
242
,
240
,
238
,
488
,
249
,
243
,
1593
,
1599
,
/* 1200 */
1628
,
1592
,
307
,
1589
,
309
,
310
,
1137
,
1138
,
144
,
314
,
/* 1210 */
1644
,
1587
,
316
,
317
,
1586
,
318
,
1656
,
489
,
320
,
77
,
/* 1220 */
1629
,
491
,
1631
,
1632
,
487
,
1585
,
508
,
488
,
1644
,
1696
,
/* 1230 */
322
,
1599
,
1628
,
1695
,
1692
,
489
,
1584
,
324
,
1569
,
327
,
/* 1240 */
1115
,
328
,
145
,
1114
,
1563
,
488
,
1562
,
333
,
1656
,
1599
,
/* 1250 */
1628
,
244
,
1629
,
491
,
1631
,
1632
,
487
,
334
,
508
,
1561
,
/* 1260 */
1644
,
1560
,
1082
,
1533
,
1532
,
1531
,
1656
,
486
,
1530
,
77
,
/* 1270 */
1629
,
491
,
1631
,
1632
,
487
,
1529
,
508
,
488
,
1644
,
1696
,
/* 1280 */
1528
,
1599
,
1527
,
480
,
1692
,
489
,
1526
,
1525
,
1524
,
1523
,
/* 1290 */
1522
,
1521
,
1520
,
1519
,
1518
,
488
,
1517
,
1628
,
1656
,
1599
,
/* 1300 */
1516
,
256
,
1629
,
491
,
1631
,
1632
,
487
,
485
,
508
,
482
,
/* 1310 */
1668
,
111
,
1628
,
1515
,
1514
,
1513
,
1656
,
1512
,
1511
,
77
,
/* 1320 */
1629
,
491
,
1631
,
1632
,
487
,
1644
,
508
,
1510
,
1084
,
1696
,
/* 1330 */
1509
,
1508
,
489
,
1507
,
1693
,
1506
,
1391
,
1359
,
153
,
102
,
/* 1340 */
1644
,
374
,
488
,
914
,
132
,
376
,
1599
,
489
,
913
,
1358
,
/* 1350 */
154
,
1577
,
1571
,
103
,
1555
,
1546
,
161
,
488
,
1439
,
1390
,
/* 1360 */
1388
,
1599
,
1386
,
1656
,
287
,
391
,
252
,
1629
,
491
,
1631
,
/* 1370 */
1632
,
487
,
389
,
508
,
1384
,
395
,
399
,
390
,
1656
,
942
,
/* 1380 */
1382
,
257
,
1629
,
491
,
1631
,
1632
,
487
,
1628
,
508
,
393
,
/* 1390 */
394
,
397
,
398
,
401
,
403
,
402
,
1371
,
1370
,
1357
,
1441
,
/* 1400 */
79
,
1048
,
1440
,
1049
,
463
,
1380
,
274
,
1375
,
168
,
554
,
/* 1410 */
974
,
973
,
972
,
971
,
556
,
1644
,
968
,
1628
,
426
,
967
,
/* 1420 */
1373
,
1356
,
486
,
966
,
429
,
275
,
276
,
1355
,
431
,
78
,
/* 1430 */
433
,
1576
,
488
,
1122
,
1570
,
122
,
1599
,
440
,
1554
,
1553
,
/* 1440 */
47
,
1545
,
3
,
13
,
441
,
1644
,
186
,
59
,
189
,
14
,
/* 1450 */
191
,
35
,
489
,
1656
,
40
,
129
,
256
,
1629
,
491
,
1631
,
/* 1460 */
1632
,
487
,
488
,
508
,
1628
,
1669
,
1599
,
199
,
194
,
289
,
/* 1470 */
1288
,
198
,
20
,
1628
,
1281
,
60
,
1619
,
21
,
38
,
205
,
/* 1480 */
8
,
1260
,
11
,
1656
,
39
,
15
,
257
,
1629
,
491
,
1631
,
/* 1490 */
1632
,
487
,
1644
,
508
,
139
,
1259
,
1311
,
1316
,
1310
,
489
,
/* 1500 */
285
,
1644
,
1315
,
1314
,
286
,
17
,
1202
,
142
,
489
,
488
,
/* 1510 */
27
,
212
,
1188
,
1599
,
1544
,
1159
,
291
,
10
,
488
,
219
,
/* 1520 */
1628
,
1223
,
1599
,
1201
,
496
,
18
,
19
,
215
,
490
,
213
,
/* 1530 */
1656
,
1618
,
217
,
257
,
1629
,
491
,
1631
,
1632
,
487
,
1656
,
/* 1540 */
508
,
1286
,
251
,
1629
,
491
,
1631
,
1632
,
487
,
1644
,
508
,
/* 1550 */
1628
,
62
,
221
,
63
,
224
,
489
,
67
,
1659
,
512
,
510
,
/* 1560 */
1204
,
507
,
299
,
41
,
514
,
488
,
1035
,
1032
,
516
,
1599
,
/* 1570 */
1029
,
517
,
519
,
1023
,
520
,
522
,
523
,
525
,
1644
,
1021
,
/* 1580 */
526
,
1012
,
1628
,
68
,
1027
,
489
,
1656
,
532
,
69
,
253
,
/* 1590 */
1629
,
491
,
1631
,
1632
,
487
,
488
,
508
,
1044
,
70
,
1599
,
/* 1600 */
1041
,
1026
,
1040
,
1025
,
940
,
1024
,
541
,
981
,
226
,
543
,
/* 1610 */
1644
,
962
,
1628
,
961
,
957
,
1042
,
1656
,
489
,
960
,
245
,
/* 1620 */
1629
,
491
,
1631
,
1632
,
487
,
959
,
508
,
488
,
958
,
956
,
/* 1630 */
955
,
1599
,
978
,
976
,
952
,
951
,
950
,
947
,
946
,
1387
,
/* 1640 */
1644
,
566
,
945
,
564
,
565
,
1385
,
569
,
489
,
1656
,
568
,
/* 1650 */
570
,
254
,
1629
,
491
,
1631
,
1632
,
487
,
488
,
508
,
1628
,
/* 1660 */
1383
,
1599
,
572
,
573
,
574
,
1381
,
576
,
577
,
578
,
1369
,
/* 1670 */
580
,
581
,
1368
,
1354
,
1628
,
584
,
585
,
588
,
1656
,
1145
,
/* 1680 */
237
,
246
,
1629
,
491
,
1631
,
1632
,
487
,
1644
,
508
,
1329
,
/* 1690 */
589
,
1329
,
1329
,
1329
,
489
,
1329
,
1329
,
1329
,
1329
,
1329
,
/* 1700 */
1329
,
1329
,
1644
,
1329
,
488
,
1329
,
1628
,
1329
,
1599
,
489
,
/* 1710 */
1329
,
1329
,
1329
,
1329
,
1329
,
1329
,
1329
,
1329
,
1329
,
488
,
/* 1720 */
1329
,
1329
,
1329
,
1599
,
1329
,
1656
,
1329
,
1329
,
255
,
1629
,
/* 1730 */
491
,
1631
,
1632
,
487
,
1644
,
508
,
1329
,
1329
,
1329
,
1329
,
/* 1740 */
1656
,
489
,
1329
,
247
,
1629
,
491
,
1631
,
1632
,
487
,
1329
,
/* 1750 */
508
,
488
,
1329
,
1329
,
1329
,
1599
,
1329
,
1329
,
1628
,
1329
,
/* 1760 */
1329
,
1329
,
1329
,
1329
,
1329
,
1329
,
1329
,
1329
,
1329
,
1329
,
/* 1770 */
1329
,
1329
,
1656
,
1329
,
1329
,
1640
,
1629
,
491
,
1631
,
1632
,
/* 1780 */
487
,
1329
,
508
,
1329
,
1329
,
1329
,
1644
,
1329
,
1628
,
1329
,
/* 1790 */
1329
,
1329
,
1329
,
489
,
1329
,
1329
,
1329
,
1329
,
1329
,
1329
,
/* 1800 */
1329
,
1329
,
1329
,
488
,
1329
,
1329
,
1329
,
1599
,
1329
,
1329
,
/* 1810 */
1329
,
1329
,
1329
,
1329
,
1329
,
1329
,
1644
,
1329
,
1329
,
1329
,
/* 1820 */
1628
,
1329
,
1329
,
489
,
1656
,
1329
,
1329
,
1639
,
1629
,
491
,
/* 1830 */
1631
,
1632
,
487
,
488
,
508
,
1628
,
1329
,
1599
,
1329
,
1329
,
/* 1840 */
1329
,
1329
,
1329
,
1329
,
1329
,
1329
,
1329
,
1329
,
1644
,
1329
,
/* 1850 */
1329
,
1329
,
1329
,
1329
,
1656
,
489
,
1329
,
1638
,
1629
,
491
,
/* 1860 */
1631
,
1632
,
487
,
1644
,
508
,
488
,
1329
,
1329
,
1329
,
1599
,
/* 1870 */
489
,
1329
,
1329
,
1329
,
1329
,
1329
,
1329
,
1329
,
1329
,
1329
,
/* 1880 */
488
,
1329
,
1628
,
1329
,
1599
,
1329
,
1656
,
1329
,
1329
,
266
,
/* 1890 */
1629
,
491
,
1631
,
1632
,
487
,
1628
,
508
,
1329
,
1329
,
1329
,
/* 1900 */
1329
,
1656
,
1329
,
1329
,
265
,
1629
,
491
,
1631
,
1632
,
487
,
/* 1910 */
1644
,
508
,
1329
,
1329
,
1329
,
1329
,
1329
,
489
,
1329
,
1329
,
/* 1920 */
1329
,
1329
,
1329
,
1644
,
297
,
296
,
1329
,
488
,
1329
,
1329
,
/* 1930 */
489
,
1599
,
1329
,
1329
,
1157
,
1329
,
1329
,
1329
,
1329
,
1329
,
/* 1940 */
488
,
1329
,
1329
,
1329
,
1599
,
1329
,
1628
,
1329
,
1656
,
1329
,
/* 1950 */
1329
,
267
,
1629
,
491
,
1631
,
1632
,
487
,
1329
,
508
,
1150
,
/* 1960 */
1329
,
1656
,
1329
,
1329
,
264
,
1629
,
491
,
1631
,
1632
,
487
,
/* 1970 */
1329
,
508
,
1329
,
1329
,
1644
,
1329
,
1149
,
1329
,
1329
,
1329
,
/* 1980 */
1329
,
489
,
1329
,
1329
,
1329
,
1329
,
1329
,
1329
,
1329
,
1329
,
/* 1990 */
1329
,
488
,
1329
,
1329
,
1329
,
1599
,
1329
,
1329
,
1329
,
1329
,
/* 2000 */
1329
,
1329
,
1329
,
1329
,
1329
,
1329
,
1329
,
1329
,
1329
,
1329
,
/* 2010 */
1329
,
1329
,
1656
,
1329
,
509
,
250
,
1629
,
491
,
1631
,
1632
,
/* 2020 */
487
,
1329
,
508
,
1329
,
1329
,
1153
,
1329
,
1329
,
1329
,
1329
,
/* 2030 */
1329
,
1329
,
1329
,
1329
,
1329
,
1329
,
1329
,
1329
,
1329
,
1329
,
/* 2040 */
1329
,
1329
,
1329
,
1329
,
1329
,
1329
,
1329
,
1329
,
1329
,
1329
,
/* 2050 */
1329
,
1329
,
1329
,
1329
,
1329
,
1329
,
1329
,
1329
,
1329
,
1329
,
/* 2060 */
1329
,
1329
,
1329
,
1329
,
1329
,
1329
,
1329
,
1329
,
1158
,
1329
,
/* 2070 */
1329
,
1329
,
1329
,
1329
,
1329
,
1329
,
1329
,
1329
,
1329
,
1329
,
/* 2080 */
1329
,
1329
,
1329
,
1329
,
1329
,
1329
,
1329
,
1329
,
1329
,
1329
,
/* 2090 */
1161
,
1329
,
1329
,
1329
,
1329
,
1329
,
1329
,
1329
,
1329
,
1329
,
/* 2100 */
1329
,
506
,
1207
,
1208
,
/* 0 */
382
,
76
,
383
,
1376
,
390
,
517
,
383
,
1376
,
1627
,
28
,
/* 10 */
221
,
1463
,
35
,
33
,
113
,
1459
,
342
,
346
,
1642
,
1772
,
/* 20 */
300
,
1466
,
1156
,
1623
,
1631
,
1629
,
36
,
34
,
32
,
31
,
/* 30 */
30
,
1724
,
1771
,
1474
,
94
,
520
,
1769
,
93
,
92
,
91
,
/* 40 */
90
,
89
,
88
,
87
,
86
,
85
,
1658
,
1154
,
1519
,
291
,
/* 50 */
32
,
31
,
30
,
501
,
290
,
1721
,
1772
,
477
,
14
,
1517
,
/* 60 */
35
,
33
,
1281
,
500
,
1162
,
516
,
1627
,
1613
,
300
,
144
,
/* 70 */
1156
,
348
,
273
,
1769
,
397
,
36
,
34
,
32
,
31
,
30
,
/* 80 */
1
,
1623
,
1630
,
1629
,
1670
,
112
,
24
,
132
,
1643
,
503
,
/* 90 */
1645
,
1646
,
499
,
520
,
520
,
1154
,
36
,
34
,
32
,
31
,
/* 100 */
30
,
61
,
599
,
1243
,
270
,
481
,
14
,
517
,
35
,
33
,
/* 110 */
595
,
594
,
1162
,
1155
,
108
,
516
,
300
,
304
,
1156
,
104
,
/* 120 */
1178
,
273
,
1469
,
110
,
936
,
128
,
418
,
130
,
2
,
1356
,
/* 130 */
54
,
482
,
1786
,
1476
,
1772
,
1474
,
517
,
69
,
210
,
1717
,
/* 140 */
476
,
1344
,
475
,
1154
,
1193
,
1772
,
1772
,
145
,
104
,
416
,
/* 150 */
599
,
1769
,
1243
,
1244
,
14
,
423
,
1157
,
1467
,
146
,
1770
,
/* 160 */
1162
,
1155
,
1769
,
1769
,
1474
,
103
,
102
,
101
,
100
,
99
,
/* 170 */
98
,
97
,
96
,
95
,
1249
,
38
,
2
,
552
,
1160
,
1161
,
/* 180 */
54
,
1206
,
1207
,
1208
,
1209
,
1210
,
1211
,
1212
,
496
,
518
,
/* 190 */
1220
,
1221
,
1222
,
1223
,
1224
,
1225
,
551
,
550
,
599
,
549
,
/* 200 */
548
,
547
,
1244
,
493
,
1157
,
341
,
1305
,
340
,
147
,
1155
,
/* 210 */
27
,
298
,
1238
,
1239
,
1240
,
1241
,
1242
,
1246
,
1247
,
1248
,
/* 220 */
131
,
1180
,
504
,
1249
,
1431
,
303
,
1160
,
1161
,
1564
,
1206
,
/* 230 */
1207
,
1208
,
1209
,
1210
,
1211
,
1212
,
496
,
518
,
1220
,
1221
,
/* 240 */
1222
,
1223
,
1224
,
1225
,
1403
,
464
,
1303
,
1304
,
1306
,
1307
,
/* 250 */
55
,
54
,
1157
,
36
,
34
,
32
,
31
,
30
,
147
,
27
,
/* 260 */
298
,
1238
,
1239
,
1240
,
1241
,
1242
,
1246
,
1247
,
1248
,
63
,
/* 270 */
288
,
477
,
554
,
187
,
1160
,
1161
,
1342
,
1206
,
1207
,
1208
,
/* 280 */
1209
,
1210
,
1211
,
1212
,
496
,
518
,
1220
,
1221
,
1222
,
1223
,
/* 290 */
1224
,
1225
,
35
,
33
,
36
,
34
,
32
,
31
,
30
,
112
,
/* 300 */
300
,
1452
,
1156
,
147
,
575
,
574
,
573
,
315
,
147
,
572
,
/* 310 */
571
,
570
,
114
,
565
,
564
,
563
,
562
,
561
,
560
,
559
,
/* 320 */
558
,
121
,
1295
,
1235
,
1519
,
312
,
54
,
1154
,
988
,
1658
,
/* 330 */
305
,
1642
,
1555
,
1557
,
316
,
1517
,
501
,
110
,
138
,
310
,
/* 340 */
35
,
33
,
1226
,
471
,
1162
,
990
,
920
,
128
,
300
,
1513
,
/* 350 */
1156
,
479
,
140
,
1717
,
1718
,
1476
,
1722
,
26
,
397
,
1658
,
/* 360 */
8
,
36
,
34
,
32
,
31
,
30
,
501
,
36
,
34
,
32
,
/* 370 */
31
,
30
,
470
,
467
,
1772
,
1154
,
500
,
1406
,
313
,
147
,
/* 380 */
1613
,
53
,
599
,
461
,
924
,
925
,
128
,
144
,
35
,
33
,
/* 390 */
333
,
1769
,
1162
,
1155
,
1476
,
516
,
300
,
1670
,
1156
,
1182
,
/* 400 */
267
,
1643
,
503
,
1645
,
1646
,
499
,
381
,
520
,
9
,
385
,
/* 410 */
335
,
331
,
1026
,
543
,
542
,
541
,
1030
,
540
,
1032
,
1033
,
/* 420 */
539
,
1035
,
536
,
1154
,
1041
,
533
,
1043
,
1044
,
530
,
527
,
/* 430 */
599
,
36
,
34
,
32
,
31
,
30
,
1157
,
432
,
431
,
128
,
/* 440 */
1162
,
1155
,
430
,
472
,
468
,
109
,
427
,
1477
,
517
,
426
,
/* 450 */
425
,
424
,
1183
,
153
,
147
,
39
,
9
,
1724
,
1160
,
1161
,
/* 460 */
347
,
1206
,
1207
,
1208
,
1209
,
1210
,
1211
,
1212
,
496
,
518
,
/* 470 */
1220
,
1221
,
1222
,
1223
,
1224
,
1225
,
1474
,
59
,
599
,
387
,
/* 480 */
58
,
1720
,
432
,
431
,
1157
,
1178
,
1465
,
430
,
147
,
1155
,
/* 490 */
109
,
427
,
1519
,
446
,
426
,
425
,
424
,
1337
,
311
,
546
,
/* 500 */
1193
,
1156
,
1367
,
1517
,
372
,
454
,
1160
,
1161
,
308
,
1206
,
/* 510 */
1207
,
1208
,
1209
,
1210
,
1211
,
1212
,
496
,
518
,
1220
,
1221
,
/* 520 */
1222
,
1223
,
1224
,
1225
,
212
,
1627
,
1154
,
36
,
34
,
32
,
/* 530 */
31
,
30
,
1157
,
1772
,
389
,
1613
,
1519
,
385
,
504
,
1366
,
/* 540 */
1623
,
1630
,
1629
,
1162
,
1565
,
1365
,
144
,
1518
,
157
,
156
,
/* 550 */
1769
,
1613
,
520
,
455
,
1160
,
1161
,
1642
,
1206
,
1207
,
1208
,
/* 560 */
1209
,
1210
,
1211
,
1212
,
496
,
518
,
1220
,
1221
,
1222
,
1223
,
/* 570 */
1224
,
1225
,
35
,
33
,
269
,
517
,
1178
,
198
,
1336
,
61
,
/* 580 */
300
,
599
,
1156
,
365
,
1658
,
517
,
377
,
357
,
1613
,
429
,
/* 590 */
428
,
501
,
1155
,
1772
,
1613
,
1364
,
173
,
514
,
1363
,
1362
,
/* 600 */
1470
,
500
,
483
,
1474
,
378
,
1613
,
144
,
1154
,
137
,
517
,
/* 610 */
1769
,
481
,
1361
,
1474
,
414
,
410
,
406
,
402
,
172
,
282
,
/* 620 */
1181
,
358
,
1670
,
1280
,
1162
,
258
,
1643
,
503
,
1645
,
1646
,
/* 630 */
499
,
517
,
520
,
1117
,
937
,
1157
,
936
,
1474
,
477
,
1450
,
/* 640 */
2
,
1119
,
62
,
396
,
1613
,
170
,
1360
,
1613
,
1613
,
569
,
/* 650 */
567
,
1772
,
1179
,
11
,
10
,
1556
,
1557
,
1160
,
1161
,
1474
,
/* 660 */
127
,
1613
,
599
,
938
,
146
,
1359
,
112
,
283
,
1769
,
281
,
/* 670 */
280
,
7
,
420
,
1155
,
376
,
1358
,
422
,
371
,
370
,
369
,
/* 680 */
368
,
367
,
364
,
363
,
362
,
361
,
360
,
356
,
355
,
354
,
/* 690 */
353
,
352
,
351
,
350
,
349
,
1613
,
554
,
517
,
517
,
421
,
/* 700 */
517
,
1118
,
485
,
169
,
110
,
164
,
1451
,
166
,
477
,
1471
,
/* 710 */
1593
,
1355
,
515
,
1245
,
1613
,
1354
,
1157
,
1353
,
1352
,
141
,
/* 720 */
1717
,
1718
,
444
,
1722
,
1613
,
1474
,
1474
,
162
,
1474
,
1351
,
/* 730 */
1642
,
1350
,
1349
,
1257
,
1250
,
442
,
112
,
1348
,
1160
,
1161
,
/* 740 */
422
,
1206
,
1207
,
1208
,
1209
,
1210
,
1211
,
1212
,
496
,
518
,
/* 750 */
1220
,
1221
,
1222
,
1223
,
1224
,
1225
,
517
,
568
,
1658
,
517
,
/* 760 */
1613
,
1347
,
1552
,
421
,
1613
,
501
,
1613
,
1613
,
235
,
155
,
/* 770 */
25
,
314
,
924
,
925
,
110
,
500
,
1729
,
1276
,
1613
,
1613
,
/* 780 */
1613
,
1613
,
1288
,
1724
,
1474
,
481
,
1613
,
1474
,
1180
,
142
,
/* 790 */
1717
,
1718
,
245
,
1722
,
1602
,
1504
,
1670
,
336
,
552
,
79
,
/* 800 */
1643
,
503
,
1645
,
1646
,
499
,
1642
,
520
,
1719
,
178
,
1710
,
/* 810 */
1613
,
176
,
180
,
272
,
1706
,
179
,
182
,
551
,
550
,
181
,
/* 820 */
549
,
548
,
547
,
1393
,
557
,
1772
,
1446
,
184
,
1279
,
1231
,
/* 830 */
183
,
1388
,
118
,
1658
,
1386
,
1180
,
1141
,
1142
,
146
,
323
,
/* 840 */
501
,
1276
,
1769
,
45
,
129
,
433
,
201
,
46
,
271
,
251
,
/* 850 */
500
,
11
,
10
,
435
,
1613
,
1633
,
438
,
1339
,
1340
,
37
,
/* 860 */
481
,
249
,
52
,
488
,
556
,
51
,
1642
,
1461
,
37
,
1457
,
/* 870 */
37
,
1670
,
456
,
190
,
79
,
1643
,
503
,
1645
,
1646
,
499
,
/* 880 */
437
,
520
,
158
,
1302
,
1710
,
224
,
203
,
486
,
272
,
1706
,
/* 890 */
116
,
1635
,
75
,
117
,
1658
,
445
,
495
,
545
,
1357
,
1251
,
/* 900 */
1772
,
480
,
71
,
453
,
118
,
1165
,
54
,
1164
,
1213
,
186
,
/* 910 */
1112
,
500
,
45
,
144
,
216
,
1613
,
1449
,
1769
,
1432
,
1642
,
/* 920 */
525
,
440
,
117
,
465
,
447
,
226
,
434
,
118
,
207
,
1377
,
/* 930 */
509
,
185
,
1670
,
232
,
415
,
80
,
1643
,
503
,
1645
,
1646
,
/* 940 */
499
,
119
,
520
,
78
,
1019
,
1710
,
117
,
1658
,
1659
,
293
,
/* 950 */
1706
,
139
,
244
,
1514
,
501
,
50
,
1740
,
478
,
49
,
215
,
/* 960 */
1047
,
961
,
1051
,
213
,
500
,
218
,
220
,
1058
,
1613
,
460
,
/* 970 */
1737
,
1168
,
1642
,
1167
,
57
,
56
,
345
,
3
,
962
,
152
,
/* 980 */
1178
,
1056
,
318
,
322
,
339
,
1670
,
120
,
278
,
262
,
1643
,
/* 990 */
503
,
1645
,
1646
,
499
,
988
,
520
,
268
,
279
,
359
,
329
,
/* 1000 */
1658
,
325
,
321
,
149
,
240
,
1125
,
1554
,
480
,
552
,
154
,
/* 1010 */
366
,
374
,
379
,
1184
,
380
,
373
,
388
,
500
,
375
,
1187
,
/* 1020 */
391
,
1613
,
161
,
392
,
1186
,
163
,
473
,
551
,
550
,
393
,
/* 1030 */
549
,
548
,
547
,
165
,
147
,
394
,
1185
,
168
,
1670
,
1345
,
/* 1040 */
395
,
80
,
1643
,
503
,
1645
,
1646
,
499
,
1642
,
520
,
60
,
/* 1050 */
489
,
1710
,
398
,
417
,
171
,
293
,
1706
,
139
,
419
,
1464
,
/* 1060 */
94
,
175
,
1460
,
93
,
92
,
91
,
90
,
89
,
88
,
87
,
/* 1070 */
86
,
85
,
177
,
84
,
1162
,
1658
,
1738
,
122
,
123
,
287
,
/* 1080 */
1642
,
188
,
501
,
1462
,
241
,
1458
,
124
,
1597
,
125
,
448
,
/* 1090 */
1183
,
191
,
500
,
452
,
193
,
449
,
1613
,
457
,
196
,
466
,
/* 1100 */
1751
,
1750
,
507
,
6
,
1731
,
206
,
474
,
242
,
1658
,
462
,
/* 1110 */
463
,
458
,
5
,
1670
,
135
,
501
,
80
,
1643
,
503
,
1645
,
/* 1120 */
1646
,
499
,
292
,
520
,
199
,
500
,
1710
,
208
,
202
,
1613
,
/* 1130 */
293
,
1706
,
1785
,
111
,
1276
,
469
,
1182
,
1741
,
40
,
490
,
/* 1140 */
487
,
1744
,
1642
,
1725
,
1788
,
18
,
1670
,
294
,
510
,
80
,
/* 1150 */
1643
,
503
,
1645
,
1646
,
499
,
1563
,
520
,
505
,
506
,
1710
,
/* 1160 */
1562
,
511
,
512
,
293
,
1706
,
1785
,
228
,
302
,
209
,
230
,
/* 1170 */
1658
,
243
,
68
,
1475
,
1767
,
70
,
523
,
501
,
1691
,
1447
,
/* 1180 */
246
,
237
,
598
,
47
,
134
,
252
,
289
,
500
,
259
,
248
,
/* 1190 */
1768
,
1613
,
253
,
214
,
1607
,
250
,
1642
,
1606
,
484
,
217
,
/* 1200 */
317
,
1603
,
319
,
320
,
219
,
1642
,
491
,
1150
,
1670
,
1151
,
/* 1210 */
150
,
80
,
1643
,
503
,
1645
,
1646
,
499
,
324
,
520
,
1601
,
/* 1220 */
326
,
1710
,
327
,
328
,
1658
,
293
,
1706
,
1785
,
1600
,
330
,
/* 1230 */
1599
,
501
,
332
,
1658
,
1598
,
334
,
1728
,
1583
,
151
,
337
,
/* 1240 */
501
,
500
,
338
,
1128
,
1127
,
1613
,
343
,
344
,
1575
,
1574
,
/* 1250 */
500
,
1577
,
1576
,
1095
,
1613
,
1547
,
1546
,
1545
,
1544
,
1642
,
/* 1260 */
481
,
1543
,
1670
,
1542
,
1541
,
132
,
1643
,
503
,
1645
,
1646
,
/* 1270 */
499
,
1670
,
520
,
1540
,
258
,
1643
,
503
,
1645
,
1646
,
499
,
/* 1280 */
1539
,
520
,
1538
,
1537
,
1536
,
1535
,
1534
,
1658
,
1533
,
1532
,
/* 1290 */
1531
,
1530
,
1529
,
115
,
501
,
1528
,
1527
,
1526
,
1525
,
1642
,
/* 1300 */
1772
,
1524
,
1523
,
1097
,
500
,
1522
,
1521
,
1520
,
1613
,
159
,
/* 1310 */
1787
,
1405
,
1373
,
144
,
106
,
136
,
384
,
1769
,
1642
,
386
,
/* 1320 */
1372
,
1591
,
927
,
1585
,
926
,
1670
,
1569
,
1658
,
81
,
1643
,
/* 1330 */
503
,
1645
,
1646
,
499
,
501
,
520
,
1560
,
160
,
1710
,
400
,
/* 1340 */
107
,
167
,
1709
,
1706
,
500
,
1453
,
1658
,
1404
,
1613
,
1402
,
/* 1350 */
1400
,
401
,
955
,
498
,
405
,
1398
,
1396
,
1385
,
1384
,
409
,
/* 1360 */
399
,
404
,
403
,
500
,
413
,
1670
,
407
,
1613
,
81
,
1643
,
/* 1370 */
503
,
1645
,
1646
,
499
,
1642
,
520
,
408
,
411
,
1710
,
412
,
/* 1380 */
1371
,
1455
,
492
,
1706
,
1670
,
1062
,
1454
,
266
,
1643
,
503
,
/* 1390 */
1645
,
1646
,
499
,
497
,
520
,
494
,
1682
,
1061
,
987
,
986
,
/* 1400 */
985
,
984
,
1658
,
602
,
566
,
1394
,
568
,
83
,
981
,
501
,
/* 1410 */
284
,
174
,
1389
,
980
,
979
,
285
,
436
,
239
,
1387
,
500
,
/* 1420 */
286
,
439
,
1370
,
1613
,
441
,
1369
,
443
,
82
,
1590
,
105
,
/* 1430 */
1135
,
1584
,
48
,
1642
,
1568
,
591
,
587
,
583
,
579
,
238
,
/* 1440 */
1670
,
450
,
192
,
81
,
1643
,
503
,
1645
,
1646
,
499
,
1567
,
/* 1450 */
520
,
1559
,
64
,
1710
,
195
,
4
,
37
,
15
,
1707
,
200
,
/* 1460 */
1301
,
1658
,
43
,
77
,
205
,
133
,
233
,
204
,
501
,
197
,
/* 1470 */
22
,
1633
,
1294
,
451
,
65
,
10
,
23
,
16
,
500
,
42
,
/* 1480 */
1273
,
1272
,
1613
,
211
,
41
,
297
,
126
,
1642
,
143
,
1330
,
/* 1490 */
1319
,
307
,
306
,
17
,
1325
,
1324
,
19
,
295
,
148
,
1670
,
/* 1500 */
513
,
1170
,
267
,
1643
,
503
,
1645
,
1646
,
499
,
1329
,
520
,
/* 1510 */
1328
,
296
,
29
,
1236
,
1215
,
1658
,
222
,
1642
,
1214
,
1201
,
/* 1520 */
12
,
20
,
498
,
502
,
223
,
459
,
1163
,
1299
,
194
,
1558
,
/* 1530 */
229
,
1632
,
500
,
21
,
234
,
508
,
1613
,
225
,
227
,
66
,
/* 1540 */
67
,
231
,
1673
,
1162
,
13
,
1658
,
1133
,
1217
,
189
,
519
,
/* 1550 */
1642
,
44
,
501
,
1670
,
1172
,
71
,
266
,
1643
,
503
,
1645
,
/* 1560 */
1646
,
499
,
500
,
520
,
524
,
1683
,
1613
,
522
,
309
,
299
,
/* 1570 */
1048
,
526
,
528
,
1045
,
529
,
531
,
1042
,
1036
,
1658
,
532
,
/* 1580 */
1642
,
521
,
534
,
1670
,
535
,
501
,
267
,
1643
,
503
,
1645
,
/* 1590 */
1646
,
499
,
1166
,
520
,
1034
,
500
,
537
,
1025
,
538
,
1613
,
/* 1600 */
544
,
1057
,
301
,
72
,
1040
,
1054
,
1039
,
1038
,
1658
,
1037
,
/* 1610 */
1642
,
73
,
477
,
74
,
1053
,
501
,
1670
,
994
,
953
,
267
,
/* 1620 */
1643
,
503
,
1645
,
1646
,
499
,
500
,
520
,
1055
,
553
,
1613
,
/* 1630 */
555
,
236
,
975
,
974
,
973
,
1171
,
972
,
970
,
1658
,
1401
,
/* 1640 */
112
,
971
,
969
,
968
,
991
,
501
,
1670
,
989
,
965
,
254
,
/* 1650 */
1643
,
503
,
1645
,
1646
,
499
,
500
,
520
,
1174
,
964
,
1613
,
/* 1660 */
481
,
1642
,
578
,
963
,
960
,
959
,
958
,
576
,
518
,
1220
,
/* 1670 */
1221
,
1399
,
577
,
582
,
581
,
580
,
1670
,
1642
,
110
,
261
,
/* 1680 */
1643
,
503
,
1645
,
1646
,
499
,
1397
,
520
,
584
,
585
,
1658
,
/* 1690 */
586
,
1395
,
588
,
210
,
1717
,
476
,
501
,
475
,
590
,
589
,
/* 1700 */
1772
,
1383
,
592
,
593
,
1382
,
1658
,
500
,
1368
,
596
,
597
,
/* 1710 */
1613
,
1158
,
501
,
144
,
247
,
600
,
601
,
1769
,
1343
,
1343
,
/* 1720 */
1343
,
1343
,
500
,
1343
,
1642
,
1343
,
1613
,
1670
,
1343
,
1343
,
/* 1730 */
263
,
1643
,
503
,
1645
,
1646
,
499
,
1343
,
520
,
1343
,
1343
,
/* 1740 */
1343
,
1343
,
1642
,
1670
,
1343
,
1343
,
255
,
1643
,
503
,
1645
,
/* 1750 */
1646
,
499
,
1658
,
520
,
1343
,
1343
,
1343
,
1642
,
1343
,
501
,
/* 1760 */
1343
,
1343
,
1343
,
1343
,
1343
,
1343
,
1343
,
1343
,
1343
,
500
,
/* 1770 */
1658
,
1343
,
1343
,
1613
,
1343
,
1343
,
1343
,
501
,
1343
,
1343
,
/* 1780 */
1343
,
1343
,
1343
,
1343
,
1343
,
1658
,
1343
,
500
,
1343
,
1343
,
/* 1790 */
1670
,
1613
,
501
,
264
,
1643
,
503
,
1645
,
1646
,
499
,
1343
,
/* 1800 */
520
,
1343
,
500
,
1343
,
1642
,
1343
,
1613
,
1343
,
1670
,
1343
,
/* 1810 */
1343
,
256
,
1643
,
503
,
1645
,
1646
,
499
,
1343
,
520
,
1343
,
/* 1820 */
1642
,
1343
,
1343
,
1670
,
1343
,
1343
,
265
,
1643
,
503
,
1645
,
/* 1830 */
1646
,
499
,
1658
,
520
,
1343
,
1343
,
1343
,
1343
,
1343
,
501
,
/* 1840 */
1343
,
1343
,
1343
,
1343
,
1343
,
1343
,
1343
,
1343
,
1658
,
500
,
/* 1850 */
1343
,
1343
,
1343
,
1613
,
1343
,
501
,
1343
,
1343
,
1343
,
1343
,
/* 1860 */
1343
,
1343
,
1343
,
1343
,
1343
,
500
,
1343
,
1642
,
1343
,
1613
,
/* 1870 */
1670
,
1343
,
1343
,
257
,
1643
,
503
,
1645
,
1646
,
499
,
1343
,
/* 1880 */
520
,
1343
,
1343
,
1343
,
1343
,
1343
,
1670
,
1343
,
1343
,
1654
,
/* 1890 */
1643
,
503
,
1645
,
1646
,
499
,
1658
,
520
,
1642
,
1343
,
1343
,
/* 1900 */
1343
,
1343
,
501
,
1343
,
1343
,
1343
,
1343
,
1343
,
1343
,
1343
,
/* 1910 */
1343
,
1343
,
500
,
1343
,
1343
,
1343
,
1613
,
1343
,
1343
,
1343
,
/* 1920 */
1343
,
1343
,
1343
,
1343
,
1343
,
1658
,
1343
,
1343
,
1343
,
1343
,
/* 1930 */
1343
,
1343
,
501
,
1670
,
1343
,
1343
,
1653
,
1643
,
503
,
1645
,
/* 1940 */
1646
,
499
,
500
,
520
,
1343
,
1343
,
1613
,
1642
,
1343
,
1343
,
/* 1950 */
1343
,
1343
,
1343
,
1343
,
1343
,
1343
,
1343
,
1343
,
1343
,
1343
,
/* 1960 */
1343
,
1343
,
1343
,
1670
,
1343
,
1343
,
1652
,
1643
,
503
,
1645
,
/* 1970 */
1646
,
499
,
1343
,
520
,
1343
,
1658
,
1343
,
1642
,
1343
,
1343
,
/* 1980 */
1343
,
1343
,
501
,
1343
,
1343
,
1343
,
1343
,
1343
,
1343
,
1343
,
/* 1990 */
1343
,
1343
,
500
,
1343
,
1343
,
1343
,
1613
,
1343
,
1343
,
1343
,
/* 2000 */
1343
,
1343
,
1343
,
1343
,
1343
,
1658
,
1343
,
1343
,
1343
,
1343
,
/* 2010 */
1343
,
1343
,
501
,
1670
,
1343
,
1343
,
276
,
1643
,
503
,
1645
,
/* 2020 */
1646
,
499
,
500
,
520
,
1343
,
1343
,
1613
,
1642
,
1343
,
1343
,
/* 2030 */
1343
,
1343
,
1343
,
1343
,
1343
,
1343
,
1642
,
1343
,
1343
,
1343
,
/* 2040 */
1343
,
1343
,
1343
,
1670
,
1343
,
1343
,
275
,
1643
,
503
,
1645
,
/* 2050 */
1646
,
499
,
1343
,
520
,
1343
,
1658
,
1343
,
1343
,
1343
,
1343
,
/* 2060 */
1343
,
1343
,
501
,
1343
,
1658
,
1343
,
1343
,
1343
,
1343
,
1343
,
/* 2070 */
1343
,
501
,
500
,
1343
,
1343
,
1343
,
1613
,
1343
,
1343
,
1343
,
/* 2080 */
1343
,
500
,
1343
,
1343
,
1343
,
1613
,
1343
,
1343
,
1343
,
1343
,
/* 2090 */
1642
,
1343
,
1343
,
1670
,
1343
,
1343
,
277
,
1643
,
503
,
1645
,
/* 2100 */
1646
,
499
,
1670
,
520
,
1343
,
274
,
1643
,
503
,
1645
,
1646
,
/* 2110 */
499
,
1343
,
520
,
1343
,
1343
,
1343
,
1343
,
1343
,
1658
,
1343
,
/* 2120 */
1343
,
1343
,
1343
,
1343
,
1343
,
501
,
1343
,
1343
,
1343
,
1343
,
/* 2130 */
1343
,
1343
,
1343
,
1343
,
1343
,
500
,
1343
,
1343
,
1343
,
1613
,
/* 2140 */
1343
,
1343
,
1343
,
1343
,
1343
,
1343
,
1343
,
1343
,
1343
,
1343
,
/* 2150 */
1343
,
1343
,
1343
,
1343
,
1343
,
1343
,
1670
,
1343
,
1343
,
260
,
/* 2160 */
1643
,
503
,
1645
,
1646
,
499
,
1343
,
520
,
};
static
const
YYCODETYPE
yy_lookahead
[]
=
{
/* 0 */
244
,
251
,
246
,
247
,
244
,
248
,
246
,
247
,
290
,
321
,
...
...
@@ -433,372 +439,375 @@ static const YYCODETYPE yy_lookahead[] = {
/* 40 */
27
,
28
,
29
,
30
,
31
,
32
,
269
,
47
,
269
,
273
,
/* 50 */
14
,
15
,
16
,
276
,
275
,
332
,
336
,
248
,
58
,
280
,
/* 60 */
12
,
13
,
14
,
286
,
64
,
20
,
290
,
290
,
20
,
349
,
/* 70 */
22
,
24
1
,
58
,
353
,
20
,
12
,
13
,
14
,
15
,
16
,
/* 70 */
22
,
24
8
,
58
,
353
,
57
,
12
,
13
,
14
,
15
,
16
,
/* 80 */
80
,
305
,
306
,
307
,
307
,
276
,
2
,
310
,
311
,
312
,
/* 90 */
313
,
314
,
315
,
317
,
317
,
47
,
12
,
13
,
14
,
15
,
/* 100 */
16
,
253
,
102
,
89
,
2
69
,
296
,
58
,
248
,
12
,
13
,
/* 110 */
24
1
,
276
,
64
,
113
,
266
,
20
,
20
,
336
,
22
,
260
,
/* 120 */
290
,
58
,
274
,
314
,
248
,
80
,
267
,
240
,
80
,
242
,
/* 130 */
349
,
354
,
355
,
254
,
353
,
276
,
248
,
258
,
329
,
330
,
/* 140 */
331
,
0
,
333
,
47
,
81
,
336
,
245
,
312
,
260
,
248
,
/* 150 */
102
,
20
,
89
,
139
,
58
,
267
,
156
,
281
,
349
,
290
,
/* 160 */
64
,
113
,
353
,
41
,
276
,
24
,
25
,
26
,
27
,
28
,
/* 100 */
16
,
253
,
102
,
89
,
2
81
,
296
,
58
,
248
,
12
,
13
,
/* 110 */
24
9
,
250
,
64
,
113
,
266
,
20
,
20
,
261
,
22
,
260
,
/* 120 */
20
,
58
,
274
,
314
,
22
,
269
,
267
,
240
,
80
,
242
,
/* 130 */
80
,
354
,
355
,
277
,
336
,
276
,
248
,
251
,
329
,
330
,
/* 140 */
331
,
0
,
333
,
47
,
81
,
336
,
336
,
349
,
260
,
47
,
/* 150 */
102
,
353
,
89
,
139
,
58
,
267
,
156
,
271
,
349
,
349
,
/* 160 */
64
,
113
,
353
,
353
,
276
,
24
,
25
,
26
,
27
,
28
,
/* 170 */
29
,
30
,
31
,
32
,
160
,
80
,
80
,
92
,
178
,
179
,
/* 180 */
143
,
181
,
182
,
183
,
184
,
185
,
186
,
187
,
188
,
189
,
/* 180 */
80
,
181
,
182
,
183
,
184
,
185
,
186
,
187
,
188
,
189
,
/* 190 */
190
,
191
,
192
,
193
,
194
,
195
,
111
,
112
,
102
,
114
,
/* 200 */
115
,
116
,
139
,
81
,
156
,
155
,
178
,
157
,
208
,
113
,
/* 200 */
115
,
116
,
139
,
58
,
156
,
155
,
178
,
157
,
208
,
113
,
/* 210 */
196
,
197
,
198
,
199
,
200
,
201
,
202
,
203
,
204
,
205
,
/* 220 */
2
49
,
250
,
286
,
160
,
241
,
289
,
178
,
179
,
292
,
181
,
/* 220 */
2
54
,
20
,
286
,
160
,
258
,
289
,
178
,
179
,
292
,
181
,
/* 230 */
182
,
183
,
184
,
185
,
186
,
187
,
188
,
189
,
190
,
191
,
/* 240 */
192
,
193
,
194
,
195
,
0
,
217
,
218
,
219
,
220
,
221
,
/* 250 */
213
,
214
,
156
,
12
,
13
,
14
,
15
,
16
,
208
,
196
,
/* 260 */
197
,
198
,
199
,
200
,
201
,
202
,
203
,
204
,
205
,
1
,
/* 270 */
2
,
248
,
0
,
290
,
178
,
179
,
238
,
181
,
182
,
183
,
/* 250 */
4
,
80
,
156
,
12
,
13
,
14
,
15
,
16
,
208
,
196
,
/* 260 */
197
,
198
,
199
,
200
,
201
,
202
,
203
,
204
,
205
,
165
,
/* 270 */
166
,
248
,
57
,
169
,
178
,
179
,
238
,
181
,
182
,
183
,
/* 280 */
184
,
185
,
186
,
187
,
188
,
189
,
190
,
191
,
192
,
193
,
/* 290 */
194
,
195
,
12
,
13
,
12
,
13
,
14
,
15
,
16
,
276
,
/* 300 */
20
,
0
,
22
,
208
,
60
,
61
,
62
,
63
,
4
,
65
,
/* 300 */
20
,
0
,
22
,
208
,
60
,
61
,
62
,
63
,
208
,
65
,
/* 310 */
66
,
67
,
68
,
69
,
70
,
71
,
72
,
73
,
74
,
75
,
/* 320 */
76
,
77
,
81
,
241
,
269
,
278
,
20
,
47
,
22
,
57
,
/* 330 */
275
,
241
,
285
,
286
,
296
,
280
,
276
,
314
,
2
08
,
208
,
/* 340 */
12
,
13
,
14
,
283
,
64
,
4
,
42
,
43
,
20
,
81
,
/* 350 */
22
,
328
,
329
,
330
,
331
,
49
,
333
,
2
,
57
,
269
,
/* 320 */
76
,
77
,
81
,
178
,
269
,
278
,
80
,
47
,
47
,
269
,
/* 330 */
275
,
241
,
285
,
286
,
296
,
280
,
276
,
314
,
2
68
,
261
,
/* 340 */
12
,
13
,
14
,
20
,
64
,
64
,
4
,
269
,
20
,
279
,
/* 350 */
22
,
328
,
329
,
330
,
331
,
277
,
333
,
2
,
57
,
269
,
/* 360 */
80
,
12
,
13
,
14
,
15
,
16
,
276
,
12
,
13
,
14
,
/* 370 */
15
,
16
,
290
,
269
,
336
,
47
,
286
,
0
,
261
,
275
,
/* 380 */
290
,
3
,
102
,
293
,
280
,
20
,
269
,
349
,
12
,
13
,
/* 390 */
151
,
353
,
64
,
113
,
277
,
241
,
20
,
307
,
22
,
20
,
/* 370 */
15
,
16
,
312
,
143
,
336
,
47
,
286
,
0
,
261
,
208
,
/* 380 */
290
,
3
,
102
,
293
,
42
,
43
,
269
,
349
,
12
,
13
,
/* 390 */
151
,
353
,
64
,
113
,
277
,
20
,
20
,
307
,
22
,
20
,
/* 400 */
310
,
311
,
312
,
313
,
314
,
315
,
245
,
317
,
80
,
248
,
/* 410 */
171
,
172
,
93
,
94
,
95
,
96
,
97
,
98
,
99
,
100
,
/* 420 */
101
,
102
,
103
,
47
,
105
,
106
,
107
,
108
,
109
,
110
,
/* 430 */
102
,
12
,
13
,
14
,
15
,
16
,
156
,
60
,
61
,
26
1
,
/* 440 */
64
,
113
,
65
,
20
,
290
,
68
,
69
,
269
,
248
,
72
,
/* 450 */
73
,
74
,
57
,
165
,
166
,
277
,
80
,
169
,
178
,
179
,
/* 430 */
102
,
12
,
13
,
14
,
15
,
16
,
156
,
60
,
61
,
26
9
,
/* 440 */
64
,
113
,
65
,
213
,
214
,
68
,
69
,
277
,
248
,
72
,
/* 450 */
73
,
74
,
20
,
55
,
208
,
80
,
80
,
308
,
178
,
179
,
/* 460 */
260
,
181
,
182
,
183
,
184
,
185
,
186
,
187
,
188
,
189
,
/* 470 */
190
,
191
,
192
,
193
,
194
,
195
,
276
,
79
,
102
,
255
,
/* 480 */
256
,
139
,
60
,
61
,
156
,
87
,
241
,
65
,
208
,
113
,
/* 490 */
68
,
69
,
75
,
296
,
72
,
73
,
74
,
148
,
14
,
0
,
/* 500 */
81
,
22
,
160
,
57
,
20
,
248
,
178
,
179
,
273
,
181
,
/* 470 */
190
,
191
,
192
,
193
,
194
,
195
,
276
,
79
,
102
,
14
,
/* 480 */
82
,
332
,
60
,
61
,
156
,
20
,
241
,
65
,
208
,
113
,
/* 490 */
68
,
69
,
269
,
296
,
72
,
73
,
74
,
148
,
275
,
91
,
/* 500 */
81
,
22
,
241
,
280
,
75
,
248
,
178
,
179
,
273
,
181
,
/* 510 */
182
,
183
,
184
,
185
,
186
,
187
,
188
,
189
,
190
,
191
,
/* 520 */
192
,
193
,
194
,
195
,
5
5
,
290
,
47
,
12
,
13
,
14
,
/* 530 */
15
,
16
,
156
,
336
,
21
,
290
,
119
,
120
,
19
6
,
241
,
/* 540 */
305
,
306
,
307
,
64
,
45
,
147
,
349
,
34
,
79
,
208
,
/* 550 */
353
,
82
,
317
,
296
,
178
,
179
,
241
,
181
,
182
,
183
,
/* 520 */
192
,
193
,
194
,
195
,
14
5
,
290
,
47
,
12
,
13
,
14
,
/* 530 */
15
,
16
,
156
,
336
,
245
,
290
,
269
,
248
,
28
6
,
241
,
/* 540 */
305
,
306
,
307
,
64
,
292
,
241
,
349
,
280
,
119
,
120
,
/* 550 */
353
,
290
,
317
,
296
,
178
,
179
,
241
,
181
,
182
,
183
,
/* 560 */
184
,
185
,
186
,
187
,
188
,
189
,
190
,
191
,
192
,
193
,
/* 570 */
194
,
195
,
12
,
13
,
18
,
80
,
20
,
47
,
229
,
261
,
/* 580 */
20
,
102
,
22
,
27
,
269
,
90
,
30
,
269
,
290
,
268
,
/* 590 */
20
,
276
,
113
,
336
,
64
,
277
,
33
,
241
,
241
,
241
,
/* 600 */
27
9
,
286
,
224
,
241
,
48
,
290
,
349
,
47
,
45
,
248
,
/* 610 */
353
,
296
,
241
,
2
53
,
51
,
52
,
53
,
54
,
55
,
35
,
/* 620 */
308
,
260
,
307
,
4
,
64
,
310
,
311
,
312
,
313
,
314
,
/* 630 */
315
,
248
,
317
,
269
,
274
,
156
,
251
,
276
,
248
,
308
,
/* 640 */
80
,
277
,
79
,
260
,
332
,
82
,
290
,
290
,
290
,
255
,
/* 650 */
256
,
336
,
290
,
241
,
285
,
286
,
271
,
178
,
179
,
276
,
/* 660 */
145
,
290
,
102
,
332
,
349
,
241
,
276
,
83
,
353
,
85
,
/* 670 */
86
,
22
,
88
,
113
,
118
,
241
,
92
,
121
,
122
,
123
,
/* 570 */
194
,
195
,
12
,
13
,
18
,
248
,
20
,
145
,
229
,
253
,
/* 580 */
20
,
102
,
22
,
27
,
269
,
248
,
30
,
260
,
290
,
255
,
/* 590 */
256
,
276
,
113
,
336
,
290
,
241
,
33
,
260
,
241
,
241
,
/* 600 */
27
4
,
286
,
224
,
276
,
48
,
290
,
349
,
47
,
45
,
248
,
/* 610 */
353
,
296
,
241
,
2
76
,
51
,
52
,
53
,
54
,
55
,
35
,
/* 620 */
20
,
260
,
307
,
4
,
64
,
310
,
311
,
312
,
313
,
314
,
/* 630 */
315
,
248
,
317
,
79
,
20
,
156
,
22
,
276
,
248
,
0
,
/* 640 */
80
,
87
,
79
,
260
,
290
,
82
,
241
,
290
,
290
,
255
,
/* 650 */
256
,
336
,
20
,
1
,
2
,
285
,
286
,
178
,
179
,
276
,
/* 660 */
145
,
290
,
102
,
49
,
349
,
241
,
276
,
83
,
353
,
85
,
/* 670 */
86
,
37
,
88
,
113
,
118
,
241
,
92
,
121
,
122
,
123
,
/* 680 */
124
,
125
,
126
,
127
,
128
,
129
,
130
,
131
,
132
,
133
,
/* 690 */
134
,
135
,
136
,
137
,
138
,
2
86
,
4
7
,
248
,
248
,
115
,
/* 700 */
248
,
292
,
290
,
140
,
314
,
142
,
2
0
,
144
,
248
,
260
,
/* 710 */
260
,
2
69
,
260
,
241
,
290
,
145
,
156
,
241
,
241
,
329
,
/* 720 */
330
,
331
,
280
,
333
,
290
,
276
,
276
,
164
,
276
,
241
,
/* 730 */
241
,
241
,
2
62
,
42
,
43
,
265
,
276
,
0
,
178
,
179
,
/* 690 */
134
,
135
,
136
,
137
,
138
,
2
90
,
5
7
,
248
,
248
,
115
,
/* 700 */
248
,
147
,
41
,
140
,
314
,
142
,
0
,
144
,
248
,
260
,
/* 710 */
260
,
2
41
,
260
,
139
,
290
,
241
,
156
,
241
,
241
,
329
,
/* 720 */
330
,
331
,
21
,
333
,
290
,
276
,
276
,
164
,
276
,
241
,
/* 730 */
241
,
241
,
2
41
,
81
,
160
,
34
,
276
,
241
,
178
,
179
,
/* 740 */
92
,
181
,
182
,
183
,
184
,
185
,
186
,
187
,
188
,
189
,
/* 750 */
190
,
191
,
192
,
193
,
194
,
195
,
248
,
37
,
269
,
248
,
/* 760 */
2
48
,
20
,
290
,
115
,
248
,
276
,
290
,
290
,
260
,
167
,
/* 770 */
1
68
,
260
,
260
,
41
,
314
,
286
,
260
,
41
,
290
,
290
,
/* 780 */
290
,
2
57
,
64
,
259
,
276
,
296
,
0
,
276
,
276
,
329
,
/* 790 */
330
,
331
,
2
76
,
333
,
206
,
207
,
307
,
145
,
146
,
310
,
/* 800 */
311
,
312
,
313
,
314
,
315
,
241
,
317
,
41
,
22
,
320
,
/* 810 */
14
,
14
,
84
,
324
,
325
,
87
,
20
,
20
,
18
,
84
,
/* 820 */
1
,
2
,
87
,
23
,
0
,
336
,
58
,
84
,
209
,
92
,
/* 830 */
87
,
145
,
41
,
269
,
0
,
35
,
36
,
47
,
349
,
39
,
/* 840 */
276
,
84
,
353
,
41
,
87
,
0
,
22
,
81
,
111
,
112
,
/* 850 */
286
,
114
,
115
,
116
,
290
,
21
,
56
,
44
,
24
,
25
,
/* 860 */
26
,
27
,
28
,
29
,
30
,
31
,
32
,
22
,
91
,
241
,
/* 870 */
4
7
,
307
,
81
,
41
,
310
,
311
,
312
,
313
,
314
,
315
,
/* 880 */
41
,
317
,
47
,
81
,
320
,
193
,
194
,
270
,
324
,
325
,
/* 890 */
326
,
270
,
270
,
80
,
41
,
270
,
19
,
269
,
299
,
64
,
/* 900 */
270
,
242
,
338
,
113
,
276
,
258
,
356
,
41
,
344
,
345
,
/* 910 */
33
,
303
,
41
,
81
,
286
,
41
,
241
,
117
,
290
,
347
,
/* 920 */
81
,
341
,
45
,
41
,
247
,
249
,
41
,
207
,
51
,
52
,
/* 930 */
53
,
54
,
55
,
279
,
81
,
307
,
113
,
334
,
310
,
311
,
/* 940 */
31
2
,
313
,
314
,
315
,
269
,
317
,
178
,
81
,
148
,
149
,
/* 950 */
150
,
276
,
81
,
153
,
41
,
81
,
79
,
41
,
158
,
82
,
/* 960 */
228
,
286
,
226
,
81
,
41
,
290
,
81
,
309
,
269
,
337
,
/* 970 */
170
,
41
,
41
,
173
,
350
,
175
,
176
,
177
,
20
,
248
,
/* 980 */
45
,
241
,
307
,
355
,
304
,
310
,
311
,
312
,
313
,
314
,
/* 990 */
31
5
,
47
,
317
,
116
,
81
,
320
,
154
,
81
,
297
,
324
,
/* 1000 */
325
,
326
,
255
,
248
,
81
,
40
,
248
,
284
,
208
,
269
,
/* 1010 */
2
48
,
81
,
81
,
20
,
139
,
282
,
276
,
243
,
141
,
243
,
/* 1020 */
3
45
,
144
,
20
,
301
,
282
,
253
,
286
,
20
,
253
,
276
,
/* 1030 */
290
,
286
,
294
,
253
,
20
,
287
,
253
,
253
,
253
,
162
,
/* 1040 */
2
48
,
164
,
241
,
0
,
4
,
64
,
243
,
307
,
269
,
24
3
,
/* 1050 */
310
,
311
,
312
,
313
,
314
,
315
,
269
,
317
,
269
,
1
9
,
/* 1060 */
320
,
290
,
269
,
269
,
324
,
325
,
326
,
269
,
269
,
248
,
/* 1070 */
269
,
301
,
294
,
33
,
269
,
335
,
269
,
276
,
269
,
269
,
/* 1080 */
2
51
,
163
,
300
,
20
,
251
,
45
,
216
,
286
,
251
,
251
,
/* 1090 */
50
,
290
,
276
,
215
,
286
,
55
,
241
,
309
,
287
,
223
,
/* 1100 */
346
,
222
,
346
,
291
,
290
,
342
,
291
,
290
,
307
,
211
,
/* 1110 */
290
,
310
,
311
,
312
,
313
,
314
,
315
,
210
,
317
,
79
,
/* 1120 */
3
39
,
320
,
82
,
276
,
269
,
324
,
325
,
326
,
207
,
2
0
,
/* 1130 */
3
08
,
276
,
40
,
230
,
80
,
92
,
335
,
227
,
343
,
225
,
/* 1140 */
2
91
,
286
,
290
,
142
,
340
,
290
,
290
,
287
,
291
,
29
0
,
/* 1150 */
241
,
323
,
327
,
288
,
111
,
112
,
276
,
114
,
115
,
116
,
/* 1160 */
2
65
,
80
,
307
,
251
,
276
,
310
,
311
,
312
,
313
,
314
,
/* 1170 */
315
,
251
,
317
,
272
,
259
,
320
,
248
,
251
,
269
,
324
,
/* 1180 */
325
,
326
,
241
,
357
,
298
,
276
,
243
,
295
,
352
,
30
2
,
/* 1190 */
3
35
,
351
,
263
,
239
,
252
,
286
,
263
,
263
,
0
,
290
,
/* 1200 */
241
,
0
,
72
,
0
,
47
,
174
,
47
,
47
,
47
,
174
,
/* 1210 */
269
,
0
,
47
,
47
,
0
,
174
,
307
,
276
,
47
,
31
0
,
/* 1220 */
311
,
312
,
313
,
314
,
315
,
0
,
317
,
286
,
269
,
320
,
/* 1230 */
47
,
290
,
241
,
324
,
325
,
276
,
0
,
47
,
0
,
160
,
/* 1240 */
113
,
159
,
80
,
156
,
0
,
286
,
0
,
152
,
307
,
29
0
,
/* 1250 */
2
41
,
310
,
311
,
312
,
313
,
314
,
315
,
151
,
317
,
0
,
/* 1260 */
2
69
,
0
,
44
,
0
,
0
,
0
,
307
,
276
,
0
,
310
,
/* 1270 */
31
1
,
312
,
313
,
314
,
315
,
0
,
317
,
286
,
269
,
320
,
/* 1280 */
0
,
290
,
0
,
324
,
325
,
276
,
0
,
0
,
0
,
0
,
/* 1290 */
0
,
0
,
0
,
0
,
0
,
286
,
0
,
241
,
307
,
290
,
/* 1300 */
0
,
310
,
311
,
312
,
313
,
314
,
315
,
316
,
317
,
318
,
/* 1310 */
3
19
,
40
,
241
,
0
,
0
,
0
,
307
,
0
,
0
,
310
,
/* 1320 */
311
,
312
,
313
,
314
,
315
,
269
,
317
,
0
,
22
,
320
,
/* 1330 */
0
,
0
,
276
,
0
,
325
,
0
,
0
,
0
,
40
,
37
,
/* 1340 */
269
,
44
,
286
,
14
,
41
,
44
,
290
,
276
,
14
,
0
,
/* 1350 */
38
,
0
,
0
,
37
,
0
,
0
,
37
,
286
,
0
,
0
,
/* 1360 */
0
,
290
,
0
,
307
,
293
,
37
,
310
,
311
,
312
,
313
,
/* 1370 */
31
4
,
315
,
47
,
317
,
0
,
37
,
37
,
45
,
307
,
59
,
/* 1380 */
0
,
310
,
311
,
312
,
313
,
314
,
315
,
241
,
317
,
47
,
/* 1390 */
45
,
47
,
45
,
47
,
37
,
45
,
0
,
0
,
0
,
0
,
/* 1400 */
89
,
22
,
0
,
47
,
348
,
0
,
22
,
0
,
87
,
41
,
/* 1410 */
47
,
47
,
47
,
47
,
41
,
269
,
47
,
241
,
48
,
47
,
/* 1420 */
0
,
0
,
276
,
47
,
47
,
22
,
22
,
0
,
22
,
20
,
/* 1430 */
22
,
0
,
286
,
47
,
0
,
161
,
290
,
22
,
0
,
0
,
/* 1440 */
145
,
0
,
41
,
212
,
145
,
269
,
142
,
80
,
37
,
212
,
/* 1450 */
140
,
41
,
276
,
307
,
41
,
80
,
310
,
311
,
312
,
313
,
/* 1460 */
314
,
315
,
286
,
317
,
241
,
319
,
290
,
41
,
81
,
293
,
/* 1470 */
8
1
,
80
,
80
,
241
,
81
,
80
,
44
,
41
,
206
,
44
,
/* 1480 */
2
,
81
,
212
,
307
,
41
,
41
,
310
,
311
,
312
,
313
,
/* 1490 */
314
,
315
,
269
,
317
,
44
,
81
,
47
,
81
,
47
,
276
,
/* 1500 */
47
,
269
,
47
,
47
,
47
,
41
,
81
,
44
,
276
,
286
,
/* 1510 */
80
,
44
,
22
,
290
,
0
,
22
,
293
,
80
,
286
,
37
,
/* 1520 */
241
,
178
,
290
,
81
,
143
,
80
,
80
,
80
,
180
,
81
,
/* 1530 */
307
,
44
,
80
,
310
,
311
,
312
,
313
,
314
,
315
,
307
,
/* 1540 */
317
,
81
,
310
,
311
,
312
,
313
,
314
,
315
,
269
,
317
,
/* 1550 */
241
,
80
,
140
,
80
,
44
,
276
,
90
,
80
,
47
,
91
,
/* 1560 */
81
,
80
,
47
,
80
,
80
,
286
,
81
,
81
,
47
,
290
,
/* 1570 */
81
,
80
,
47
,
81
,
80
,
47
,
8
0
,
47
,
269
,
81
,
/* 1580 */
80
,
22
,
241
,
80
,
104
,
276
,
307
,
92
,
80
,
310
,
/* 1590 */
31
1
,
312
,
313
,
314
,
315
,
286
,
317
,
47
,
80
,
290
,
/* 1600 */
47
,
104
,
22
,
104
,
59
,
104
,
58
,
64
,
41
,
78
,
/* 1610 */
2
69
,
47
,
241
,
47
,
22
,
113
,
307
,
276
,
47
,
310
,
/* 1620 */
311
,
312
,
313
,
314
,
315
,
47
,
317
,
286
,
47
,
47
,
/* 1630 */
47
,
290
,
64
,
47
,
47
,
47
,
47
,
47
,
47
,
0
,
/* 1640 */
2
69
,
37
,
47
,
47
,
45
,
0
,
45
,
276
,
307
,
47
,
/* 1650 */
37
,
310
,
311
,
312
,
313
,
314
,
315
,
286
,
317
,
241
,
/* 1660 */
0
,
290
,
47
,
45
,
37
,
0
,
47
,
45
,
37
,
0
,
/* 1670 */
47
,
46
,
0
,
0
,
241
,
22
,
21
,
21
,
307
,
22
,
/* 1680 */
22
,
310
,
311
,
312
,
313
,
314
,
315
,
269
,
317
,
358
,
/* 1690 */
20
,
358
,
358
,
358
,
276
,
358
,
358
,
358
,
358
,
358
,
/* 1700 */
3
58
,
358
,
269
,
358
,
286
,
358
,
241
,
358
,
290
,
276
,
/* 1710 */
358
,
358
,
358
,
358
,
358
,
358
,
358
,
358
,
358
,
286
,
/* 1720 */
358
,
358
,
358
,
290
,
358
,
307
,
358
,
358
,
310
,
311
,
/* 1730 */
31
2
,
313
,
314
,
315
,
269
,
317
,
358
,
358
,
358
,
358
,
/* 1740 */
3
07
,
276
,
358
,
310
,
311
,
312
,
313
,
314
,
315
,
358
,
/* 1750 */
31
7
,
286
,
358
,
358
,
358
,
290
,
358
,
358
,
241
,
358
,
/* 1760 */
358
,
358
,
358
,
358
,
358
,
358
,
358
,
358
,
358
,
358
,
/* 1770 */
358
,
358
,
307
,
358
,
358
,
310
,
311
,
312
,
313
,
314
,
/* 1780 */
3
15
,
358
,
317
,
358
,
358
,
358
,
269
,
358
,
241
,
358
,
/* 1790 */
3
58
,
358
,
358
,
276
,
358
,
358
,
358
,
358
,
358
,
358
,
/* 1800 */
3
58
,
358
,
358
,
286
,
358
,
358
,
358
,
290
,
358
,
358
,
/* 1810 */
358
,
3
58
,
358
,
358
,
358
,
358
,
269
,
358
,
358
,
358
,
/* 1820 */
241
,
358
,
358
,
276
,
307
,
358
,
358
,
310
,
311
,
312
,
/* 1830 */
31
3
,
314
,
315
,
286
,
317
,
241
,
358
,
290
,
358
,
358
,
/* 1840 */
358
,
358
,
358
,
358
,
358
,
358
,
358
,
358
,
269
,
358
,
/* 1850 */
358
,
358
,
358
,
358
,
307
,
276
,
358
,
310
,
311
,
312
,
/* 1860 */
3
13
,
314
,
315
,
269
,
317
,
286
,
358
,
358
,
358
,
290
,
/* 1870 */
276
,
358
,
358
,
358
,
358
,
358
,
358
,
358
,
358
,
358
,
/* 1880 */
286
,
358
,
241
,
358
,
290
,
358
,
307
,
358
,
358
,
310
,
/* 1890 */
311
,
312
,
313
,
314
,
315
,
2
41
,
317
,
358
,
358
,
358
,
/* 1900 */
358
,
3
07
,
358
,
358
,
310
,
311
,
312
,
313
,
314
,
315
,
/* 1910 */
269
,
317
,
358
,
358
,
358
,
358
,
358
,
276
,
358
,
358
,
/* 1920 */
358
,
358
,
358
,
269
,
12
,
13
,
358
,
286
,
358
,
358
,
/* 1930 */
276
,
290
,
358
,
358
,
22
,
358
,
358
,
358
,
358
,
358
,
/* 1940 */
286
,
358
,
358
,
358
,
290
,
358
,
241
,
358
,
307
,
358
,
/* 1950 */
358
,
3
10
,
311
,
312
,
313
,
314
,
315
,
358
,
317
,
47
,
/* 1960 */
358
,
3
07
,
358
,
358
,
310
,
311
,
312
,
313
,
314
,
315
,
/* 1970 */
3
58
,
317
,
358
,
358
,
269
,
358
,
64
,
358
,
358
,
358
,
/* 1980 */
358
,
276
,
358
,
358
,
358
,
358
,
358
,
358
,
358
,
358
,
/* 1990 */
358
,
286
,
358
,
358
,
358
,
290
,
358
,
358
,
358
,
358
,
/* 2000 */
358
,
358
,
358
,
358
,
358
,
358
,
358
,
358
,
358
,
358
,
/* 2010 */
358
,
358
,
307
,
358
,
102
,
310
,
311
,
312
,
313
,
314
,
/* 2020 */
31
5
,
358
,
317
,
358
,
358
,
113
,
358
,
358
,
358
,
358
,
/* 2030 */
358
,
358
,
358
,
358
,
358
,
358
,
358
,
358
,
358
,
358
,
/* 2040 */
358
,
358
,
358
,
3
58
,
358
,
358
,
358
,
358
,
358
,
358
,
/* 2050 */
3
58
,
358
,
358
,
358
,
358
,
358
,
358
,
358
,
358
,
358
,
/* 2060 */
358
,
358
,
358
,
358
,
358
,
358
,
358
,
358
,
156
,
358
,
/* 2070 */
358
,
358
,
358
,
358
,
358
,
358
,
358
,
358
,
358
,
358
,
/* 2080 */
358
,
358
,
358
,
358
,
358
,
358
,
358
,
358
,
358
,
358
,
/* 2090 */
178
,
358
,
358
,
358
,
358
,
358
,
358
,
358
,
358
,
358
,
/* 2100 */
3
58
,
189
,
190
,
191
,
358
,
358
,
358
,
358
,
358
,
358
,
/* 2110 */
3
58
,
358
,
358
,
358
,
358
,
358
,
358
,
358
,
358
,
358
,
/* 2120 */
358
,
358
,
358
,
358
,
358
,
358
,
358
,
358
,
358
,
358
,
/* 2130 */
358
,
358
,
358
,
358
,
358
,
358
,
358
,
358
,
358
,
358
,
/* 750 */
190
,
191
,
192
,
193
,
194
,
195
,
248
,
41
,
269
,
248
,
/* 760 */
2
90
,
241
,
276
,
115
,
290
,
276
,
290
,
290
,
260
,
283
,
/* 770 */
1
96
,
260
,
42
,
43
,
314
,
286
,
206
,
207
,
290
,
290
,
/* 780 */
290
,
2
90
,
14
,
308
,
276
,
296
,
290
,
276
,
20
,
329
,
/* 790 */
330
,
331
,
2
62
,
333
,
0
,
265
,
307
,
81
,
92
,
310
,
/* 800 */
311
,
312
,
313
,
314
,
315
,
241
,
317
,
332
,
84
,
320
,
/* 810 */
290
,
87
,
84
,
324
,
325
,
87
,
84
,
111
,
112
,
87
,
/* 820 */
114
,
115
,
116
,
0
,
257
,
336
,
259
,
84
,
209
,
14
,
/* 830 */
87
,
0
,
41
,
269
,
0
,
20
,
167
,
168
,
349
,
45
,
/* 840 */
276
,
207
,
353
,
41
,
18
,
22
,
41
,
145
,
146
,
23
,
/* 850 */
286
,
1
,
2
,
22
,
290
,
44
,
22
,
193
,
194
,
41
,
/* 860 */
296
,
35
,
36
,
41
,
64
,
39
,
241
,
270
,
41
,
270
,
/* 870 */
4
1
,
307
,
81
,
270
,
310
,
311
,
312
,
313
,
314
,
315
,
/* 880 */
4
,
317
,
56
,
81
,
320
,
41
,
81
,
226
,
324
,
325
,
/* 890 */
41
,
80
,
80
,
41
,
269
,
19
,
270
,
270
,
242
,
81
,
/* 900 */
336
,
276
,
90
,
299
,
41
,
47
,
80
,
47
,
81
,
33
,
/* 910 */
81
,
286
,
41
,
349
,
356
,
290
,
0
,
353
,
258
,
241
,
/* 920 */
41
,
45
,
41
,
347
,
303
,
81
,
50
,
41
,
341
,
247
,
/* 930 */
81
,
55
,
307
,
81
,
249
,
310
,
311
,
312
,
313
,
314
,
/* 940 */
31
5
,
41
,
317
,
117
,
81
,
320
,
41
,
269
,
269
,
324
,
/* 950 */
325
,
326
,
81
,
279
,
276
,
79
,
309
,
334
,
82
,
350
,
/* 960 */
81
,
47
,
81
,
338
,
286
,
350
,
350
,
81
,
290
,
344
,
/* 970 */
345
,
113
,
241
,
113
,
148
,
149
,
150
,
337
,
64
,
153
,
/* 980 */
20
,
81
,
248
,
45
,
158
,
307
,
81
,
304
,
310
,
311
,
/* 990 */
31
2
,
313
,
314
,
315
,
47
,
317
,
170
,
255
,
248
,
173
,
/* 1000 */
269
,
175
,
176
,
177
,
297
,
154
,
248
,
276
,
92
,
40
,
/* 1010 */
2
84
,
139
,
248
,
20
,
243
,
282
,
243
,
286
,
282
,
20
,
/* 1020 */
3
01
,
290
,
253
,
286
,
20
,
253
,
348
,
111
,
112
,
294
,
/* 1030 */
114
,
115
,
116
,
253
,
208
,
276
,
20
,
253
,
307
,
0
,
/* 1040 */
2
87
,
310
,
311
,
312
,
313
,
314
,
315
,
241
,
317
,
25
3
,
/* 1050 */
228
,
320
,
248
,
243
,
253
,
324
,
325
,
326
,
269
,
26
9
,
/* 1060 */
21
,
269
,
269
,
24
,
25
,
26
,
27
,
28
,
29
,
30
,
/* 1070 */
31
,
32
,
269
,
248
,
64
,
269
,
345
,
269
,
269
,
243
,
/* 1080 */
2
41
,
251
,
276
,
269
,
301
,
269
,
269
,
290
,
269
,
163
,
/* 1090 */
20
,
251
,
286
,
286
,
251
,
300
,
290
,
276
,
251
,
216
,
/* 1100 */
346
,
346
,
215
,
223
,
343
,
342
,
222
,
294
,
269
,
211
,
/* 1110 */
290
,
287
,
210
,
307
,
340
,
276
,
310
,
311
,
312
,
313
,
/* 1120 */
3
14
,
315
,
290
,
317
,
291
,
286
,
320
,
339
,
291
,
29
0
,
/* 1130 */
3
24
,
325
,
326
,
276
,
207
,
290
,
20
,
309
,
40
,
227
,
/* 1140 */
2
25
,
335
,
241
,
308
,
357
,
80
,
307
,
230
,
142
,
31
0
,
/* 1150 */
311
,
312
,
313
,
314
,
315
,
291
,
317
,
290
,
290
,
320
,
/* 1160 */
2
91
,
288
,
287
,
324
,
325
,
326
,
276
,
290
,
327
,
251
,
/* 1170 */
269
,
265
,
251
,
276
,
335
,
80
,
272
,
276
,
323
,
259
,
/* 1180 */
248
,
251
,
243
,
298
,
302
,
263
,
295
,
286
,
263
,
25
2
,
/* 1190 */
3
52
,
290
,
263
,
351
,
0
,
239
,
241
,
0
,
352
,
351
,
/* 1200 */
72
,
0
,
47
,
174
,
351
,
241
,
352
,
47
,
307
,
47
,
/* 1210 */
47
,
310
,
311
,
312
,
313
,
314
,
315
,
174
,
317
,
0
,
/* 1220 */
47
,
320
,
47
,
174
,
269
,
324
,
325
,
326
,
0
,
47
,
/* 1230 */
0
,
276
,
47
,
269
,
0
,
47
,
335
,
0
,
8
0
,
160
,
/* 1240 */
276
,
286
,
159
,
113
,
156
,
290
,
152
,
151
,
0
,
0
,
/* 1250 */
2
86
,
0
,
0
,
44
,
290
,
0
,
0
,
0
,
0
,
241
,
/* 1260 */
2
96
,
0
,
307
,
0
,
0
,
310
,
311
,
312
,
313
,
314
,
/* 1270 */
31
5
,
307
,
317
,
0
,
310
,
311
,
312
,
313
,
314
,
315
,
/* 1280 */
0
,
317
,
0
,
0
,
0
,
0
,
0
,
269
,
0
,
0
,
/* 1290 */
0
,
0
,
0
,
40
,
276
,
0
,
0
,
0
,
0
,
241
,
/* 1300 */
336
,
0
,
0
,
22
,
286
,
0
,
0
,
0
,
290
,
40
,
/* 1310 */
3
55
,
0
,
0
,
349
,
37
,
41
,
44
,
353
,
241
,
44
,
/* 1320 */
0
,
0
,
14
,
0
,
14
,
307
,
0
,
269
,
310
,
311
,
/* 1330 */
312
,
313
,
314
,
315
,
276
,
317
,
0
,
38
,
320
,
45
,
/* 1340 */
37
,
37
,
324
,
325
,
286
,
0
,
269
,
0
,
290
,
0
,
/* 1350 */
0
,
37
,
59
,
276
,
37
,
0
,
0
,
0
,
0
,
37
,
/* 1360 */
47
,
45
,
47
,
286
,
37
,
307
,
47
,
290
,
310
,
311
,
/* 1370 */
31
2
,
313
,
314
,
315
,
241
,
317
,
45
,
47
,
320
,
45
,
/* 1380 */
0
,
0
,
324
,
325
,
307
,
47
,
0
,
310
,
311
,
312
,
/* 1390 */
313
,
314
,
315
,
316
,
317
,
318
,
319
,
22
,
47
,
47
,
/* 1400 */
47
,
47
,
269
,
19
,
41
,
0
,
41
,
89
,
47
,
276
,
/* 1410 */
22
,
87
,
0
,
47
,
47
,
22
,
48
,
33
,
0
,
286
,
/* 1420 */
22
,
47
,
0
,
290
,
22
,
0
,
22
,
20
,
0
,
45
,
/* 1430 */
47
,
0
,
145
,
241
,
0
,
51
,
52
,
53
,
54
,
55
,
/* 1440 */
307
,
22
,
142
,
310
,
311
,
312
,
313
,
314
,
315
,
0
,
/* 1450 */
317
,
0
,
80
,
320
,
37
,
41
,
41
,
212
,
325
,
81
,
/* 1460 */
81
,
269
,
41
,
79
,
41
,
80
,
82
,
80
,
276
,
140
,
/* 1470 */
8
0
,
44
,
81
,
145
,
80
,
2
,
41
,
212
,
286
,
41
,
/* 1480 */
81
,
81
,
290
,
44
,
206
,
293
,
161
,
241
,
44
,
81
,
/* 1490 */
81
,
12
,
13
,
41
,
47
,
47
,
41
,
47
,
44
,
307
,
/* 1500 */
116
,
22
,
310
,
311
,
312
,
313
,
314
,
315
,
47
,
317
,
/* 1510 */
47
,
47
,
80
,
178
,
81
,
269
,
44
,
241
,
81
,
22
,
/* 1520 */
80
,
80
,
276
,
180
,
81
,
141
,
47
,
81
,
144
,
0
,
/* 1530 */
37
,
44
,
286
,
80
,
44
,
143
,
290
,
80
,
80
,
80
,
/* 1540 */
80
,
140
,
80
,
64
,
212
,
269
,
162
,
81
,
164
,
80
,
/* 1550 */
241
,
80
,
276
,
307
,
22
,
90
,
310
,
311
,
312
,
313
,
/* 1560 */
314
,
315
,
286
,
317
,
47
,
319
,
290
,
91
,
47
,
293
,
/* 1570 */
81
,
80
,
47
,
81
,
80
,
47
,
8
1
,
81
,
269
,
80
,
/* 1580 */
241
,
102
,
47
,
307
,
80
,
276
,
310
,
311
,
312
,
313
,
/* 1590 */
31
4
,
315
,
113
,
317
,
81
,
286
,
47
,
22
,
80
,
290
,
/* 1600 */
92
,
47
,
293
,
80
,
104
,
47
,
104
,
104
,
269
,
104
,
/* 1610 */
2
41
,
80
,
248
,
80
,
22
,
276
,
307
,
64
,
59
,
310
,
/* 1620 */
311
,
312
,
313
,
314
,
315
,
286
,
317
,
113
,
58
,
290
,
/* 1630 */
78
,
41
,
47
,
47
,
47
,
156
,
47
,
22
,
269
,
0
,
/* 1640 */
2
76
,
47
,
47
,
47
,
64
,
276
,
307
,
47
,
47
,
310
,
/* 1650 */
311
,
312
,
313
,
314
,
315
,
286
,
317
,
178
,
47
,
290
,
/* 1660 */
296
,
241
,
37
,
47
,
47
,
47
,
47
,
47
,
189
,
19
0
,
/* 1670 */
191
,
0
,
45
,
37
,
45
,
47
,
307
,
241
,
314
,
310
,
/* 1680 */
311
,
312
,
313
,
314
,
315
,
0
,
317
,
47
,
45
,
269
,
/* 1690 */
37
,
0
,
47
,
329
,
330
,
331
,
276
,
333
,
37
,
45
,
/* 1700 */
3
36
,
0
,
47
,
46
,
0
,
269
,
286
,
0
,
22
,
21
,
/* 1710 */
290
,
22
,
276
,
349
,
22
,
21
,
20
,
353
,
358
,
358
,
/* 1720 */
358
,
358
,
286
,
358
,
241
,
358
,
290
,
307
,
358
,
358
,
/* 1730 */
31
0
,
311
,
312
,
313
,
314
,
315
,
358
,
317
,
358
,
358
,
/* 1740 */
3
58
,
358
,
241
,
307
,
358
,
358
,
310
,
311
,
312
,
313
,
/* 1750 */
31
4
,
315
,
269
,
317
,
358
,
358
,
358
,
241
,
358
,
276
,
/* 1760 */
358
,
358
,
358
,
358
,
358
,
358
,
358
,
358
,
358
,
286
,
/* 1770 */
269
,
358
,
358
,
290
,
358
,
358
,
358
,
276
,
358
,
358
,
/* 1780 */
3
58
,
358
,
358
,
358
,
358
,
269
,
358
,
286
,
358
,
358
,
/* 1790 */
3
07
,
290
,
276
,
310
,
311
,
312
,
313
,
314
,
315
,
358
,
/* 1800 */
3
17
,
358
,
286
,
358
,
241
,
358
,
290
,
358
,
307
,
358
,
/* 1810 */
358
,
3
10
,
311
,
312
,
313
,
314
,
315
,
358
,
317
,
358
,
/* 1820 */
241
,
358
,
358
,
307
,
358
,
358
,
310
,
311
,
312
,
313
,
/* 1830 */
31
4
,
315
,
269
,
317
,
358
,
358
,
358
,
358
,
358
,
276
,
/* 1840 */
358
,
358
,
358
,
358
,
358
,
358
,
358
,
358
,
269
,
286
,
/* 1850 */
358
,
358
,
358
,
290
,
358
,
276
,
358
,
358
,
358
,
358
,
/* 1860 */
3
58
,
358
,
358
,
358
,
358
,
286
,
358
,
241
,
358
,
290
,
/* 1870 */
307
,
358
,
358
,
310
,
311
,
312
,
313
,
314
,
315
,
358
,
/* 1880 */
317
,
358
,
358
,
358
,
358
,
358
,
307
,
358
,
358
,
310
,
/* 1890 */
311
,
312
,
313
,
314
,
315
,
2
69
,
317
,
241
,
358
,
358
,
/* 1900 */
358
,
3
58
,
276
,
358
,
358
,
358
,
358
,
358
,
358
,
358
,
/* 1910 */
358
,
358
,
286
,
358
,
358
,
358
,
290
,
358
,
358
,
358
,
/* 1920 */
358
,
358
,
358
,
358
,
358
,
269
,
358
,
358
,
358
,
358
,
/* 1930 */
358
,
358
,
276
,
307
,
358
,
358
,
310
,
311
,
312
,
313
,
/* 1940 */
314
,
315
,
286
,
317
,
358
,
358
,
290
,
241
,
358
,
358
,
/* 1950 */
358
,
3
58
,
358
,
358
,
358
,
358
,
358
,
358
,
358
,
358
,
/* 1960 */
358
,
3
58
,
358
,
307
,
358
,
358
,
310
,
311
,
312
,
313
,
/* 1970 */
3
14
,
315
,
358
,
317
,
358
,
269
,
358
,
241
,
358
,
358
,
/* 1980 */
358
,
358
,
276
,
358
,
358
,
358
,
358
,
358
,
358
,
358
,
/* 1990 */
358
,
358
,
286
,
358
,
358
,
358
,
290
,
358
,
358
,
358
,
/* 2000 */
358
,
358
,
358
,
358
,
358
,
269
,
358
,
358
,
358
,
358
,
/* 2010 */
358
,
358
,
276
,
307
,
358
,
358
,
310
,
311
,
312
,
313
,
/* 2020 */
31
4
,
315
,
286
,
317
,
358
,
358
,
290
,
241
,
358
,
358
,
/* 2030 */
358
,
358
,
358
,
358
,
358
,
358
,
241
,
358
,
358
,
358
,
/* 2040 */
358
,
358
,
358
,
3
07
,
358
,
358
,
310
,
311
,
312
,
313
,
/* 2050 */
3
14
,
315
,
358
,
317
,
358
,
269
,
358
,
358
,
358
,
358
,
/* 2060 */
358
,
358
,
276
,
358
,
269
,
358
,
358
,
358
,
358
,
358
,
/* 2070 */
358
,
276
,
286
,
358
,
358
,
358
,
290
,
358
,
358
,
358
,
/* 2080 */
358
,
286
,
358
,
358
,
358
,
290
,
358
,
358
,
358
,
358
,
/* 2090 */
241
,
358
,
358
,
307
,
358
,
358
,
310
,
311
,
312
,
313
,
/* 2100 */
3
14
,
315
,
307
,
317
,
358
,
310
,
311
,
312
,
313
,
314
,
/* 2110 */
3
15
,
358
,
317
,
358
,
358
,
358
,
358
,
358
,
269
,
358
,
/* 2120 */
358
,
358
,
358
,
358
,
358
,
276
,
358
,
358
,
358
,
358
,
/* 2130 */
358
,
358
,
358
,
358
,
358
,
286
,
358
,
358
,
358
,
290
,
/* 2140 */
358
,
358
,
358
,
358
,
358
,
358
,
358
,
358
,
358
,
358
,
/* 2150 */
358
,
358
,
358
,
358
,
358
,
358
,
3
58
,
358
,
358
,
358
,
/* 2160 */
3
58
,
358
,
358
,
/* 2150 */
358
,
358
,
358
,
358
,
358
,
358
,
3
07
,
358
,
358
,
310
,
/* 2160 */
3
11
,
312
,
313
,
314
,
315
,
358
,
317
,
};
#define YY_SHIFT_COUNT (
590
)
#define YY_SHIFT_COUNT (
602
)
#define YY_SHIFT_MIN (0)
#define YY_SHIFT_MAX (1
912
)
#define YY_SHIFT_MAX (1
707
)
static
const
unsigned
short
int
yy_shift_ofst
[]
=
{
/* 0 */
8
00
,
0
,
48
,
96
,
96
,
96
,
96
,
280
,
96
,
96
,
/* 10 */
328
,
376
,
560
,
376
,
376
,
376
,
376
,
376
,
376
,
376
,
/* 0 */
8
26
,
0
,
0
,
48
,
96
,
96
,
96
,
96
,
280
,
280
,
/* 10 */
96
,
96
,
328
,
376
,
560
,
376
,
376
,
376
,
376
,
376
,
/* 20 */
376
,
376
,
376
,
376
,
376
,
376
,
376
,
376
,
376
,
376
,
/* 30 */
376
,
376
,
376
,
376
,
376
,
376
,
95
,
45
,
45
,
4
5
,
/* 40 */
1912
,
1912
,
1912
,
131
,
50
,
54
,
54
,
130
,
304
,
304
,
/* 50 */
341
,
54
,
54
,
54
,
54
,
54
,
54
,
395
,
54
,
36
5
,
/* 60 */
379
,
130
,
423
,
365
,
54
,
54
,
365
,
54
,
365
,
36
5
,
/* 70 */
423
,
365
,
54
,
446
,
556
,
63
,
14
,
14
,
13
,
479
,
/* 80 */
422
,
479
,
479
,
479
,
479
,
479
,
479
,
479
,
479
,
479
,
/* 30 */
376
,
376
,
376
,
376
,
376
,
376
,
376
,
376
,
95
,
9
5
,
/* 40 */
375
,
375
,
375
,
1479
,
1479
,
1479
,
100
,
50
,
171
,
45
,
/* 50 */
45
,
342
,
342
,
246
,
171
,
171
,
45
,
45
,
45
,
4
5
,
/* 60 */
45
,
45
,
17
,
45
,
201
,
323
,
600
,
201
,
45
,
4
5
,
/* 70 */
201
,
45
,
201
,
201
,
600
,
201
,
45
,
215
,
556
,
63
,
/* 80 */
14
,
14
,
13
,
479
,
422
,
479
,
479
,
479
,
479
,
479
,
/* 90 */
479
,
479
,
479
,
479
,
479
,
479
,
479
,
479
,
479
,
479
,
/* 100 */
584
,
306
,
484
,
484
,
272
,
530
,
570
,
570
,
570
,
301
,
/* 110 */
530
,
741
,
423
,
365
,
365
,
423
,
777
,
718
,
319
,
319
,
/* 120 */
319
,
319
,
319
,
319
,
319
,
877
,
834
,
377
,
349
,
28
,
/* 130 */
288
,
37
,
691
,
649
,
648
,
686
,
588
,
720
,
588
,
796
,
/* 140 */
378
,
619
,
797
,
958
,
935
,
944
,
842
,
958
,
958
,
965
,
/* 150 */
875
,
875
,
958
,
993
,
993
,
1002
,
395
,
423
,
395
,
1007
,
/* 160 */
395
,
741
,
1014
,
395
,
395
,
958
,
395
,
993
,
365
,
365
,
/* 170 */
365
,
365
,
365
,
365
,
365
,
365
,
365
,
365
,
365
,
958
,
/* 180 */
993
,
981
,
1002
,
446
,
918
,
423
,
446
,
1007
,
446
,
741
,
/* 190 */
1014
,
446
,
1063
,
870
,
878
,
981
,
870
,
878
,
981
,
981
,
/* 200 */
876
,
879
,
898
,
907
,
921
,
741
,
1109
,
1092
,
903
,
910
,
/* 210 */
914
,
1054
,
365
,
878
,
981
,
981
,
878
,
981
,
1001
,
741
,
/* 220 */
1014
,
446
,
777
,
446
,
741
,
1081
,
718
,
958
,
446
,
993
,
/* 230 */
2104
,
2104
,
2104
,
2104
,
2104
,
2104
,
2104
,
2104
,
244
,
563
,
/* 240 */
141
,
1040
,
737
,
1043
,
241
,
84
,
355
,
515
,
419
,
85
,
/* 250 */
282
,
282
,
282
,
282
,
282
,
282
,
282
,
282
,
239
,
469
,
/* 260 */
417
,
398
,
268
,
342
,
36
,
36
,
36
,
36
,
499
,
122
,
/* 270 */
728
,
735
,
743
,
757
,
786
,
824
,
845
,
513
,
602
,
652
,
/* 280 */
766
,
791
,
802
,
819
,
692
,
736
,
732
,
832
,
768
,
839
,
/* 290 */
813
,
853
,
866
,
874
,
882
,
885
,
790
,
823
,
871
,
913
,
/* 300 */
916
,
923
,
930
,
931
,
495
,
835
,
1198
,
1201
,
1130
,
1203
,
/* 310 */
1157
,
1031
,
1159
,
1160
,
1161
,
1035
,
1211
,
1165
,
1166
,
1041
,
/* 320 */
1214
,
1171
,
1225
,
1183
,
1236
,
1190
,
1238
,
1162
,
1079
,
1082
,
/* 330 */
1127
,
1087
,
1244
,
1246
,
1095
,
1106
,
1259
,
1261
,
1218
,
1263
,
/* 340 */
1264
,
1265
,
1268
,
1275
,
1280
,
1282
,
1286
,
1287
,
1288
,
1289
,
/* 350 */
1290
,
1291
,
1292
,
1293
,
1294
,
1296
,
1300
,
1271
,
1313
,
1314
,
/* 360 */
1315
,
1317
,
1318
,
1327
,
1306
,
1330
,
1331
,
1333
,
1335
,
1336
,
/* 370 */
1337
,
1298
,
1302
,
1303
,
1329
,
1297
,
1334
,
1301
,
1349
,
1312
,
/* 380 */
1316
,
1351
,
1352
,
1354
,
1355
,
1319
,
1358
,
1320
,
1359
,
1360
,
/* 390 */
1325
,
1332
,
1328
,
1362
,
1342
,
1345
,
1338
,
1374
,
1344
,
1347
,
/* 400 */
1339
,
1380
,
1346
,
1350
,
1357
,
1396
,
1397
,
1398
,
1399
,
1311
,
/* 410 */
1321
,
1356
,
1379
,
1402
,
1363
,
1364
,
1365
,
1366
,
1368
,
1373
,
/* 420 */
1369
,
1372
,
1376
,
1405
,
1384
,
1407
,
1403
,
1370
,
1420
,
1404
,
/* 430 */
1377
,
1421
,
1406
,
1427
,
1408
,
1409
,
1431
,
1295
,
1386
,
1434
,
/* 440 */
1274
,
1415
,
1299
,
1304
,
1438
,
1439
,
1441
,
1367
,
1411
,
1310
,
/* 450 */
1401
,
1410
,
1231
,
1387
,
1413
,
1389
,
1375
,
1391
,
1392
,
1393
,
/* 460 */
1426
,
1432
,
1395
,
1436
,
1237
,
1400
,
1414
,
1435
,
1272
,
1443
,
/* 470 */
1450
,
1416
,
1444
,
1270
,
1449
,
1451
,
1453
,
1455
,
1456
,
1457
,
/* 480 */
1478
,
1343
,
1464
,
1425
,
1430
,
1442
,
1463
,
1437
,
1445
,
1467
,
/* 490 */
1490
,
1348
,
1446
,
1448
,
1460
,
1447
,
1452
,
1381
,
1471
,
1514
,
/* 500 */
1482
,
1412
,
1473
,
1466
,
1487
,
1510
,
1477
,
1479
,
1481
,
1493
,
/* 510 */
1483
,
1468
,
1485
,
1511
,
1515
,
1484
,
1486
,
1521
,
1491
,
1489
,
/* 520 */
1525
,
1494
,
1492
,
1528
,
1496
,
1498
,
1530
,
1500
,
1480
,
1497
,
/* 530 */
1499
,
1501
,
1559
,
1495
,
1503
,
1508
,
1550
,
1518
,
1502
,
1553
,
/* 540 */
1580
,
1545
,
1548
,
1543
,
1531
,
1567
,
1564
,
1566
,
1571
,
1578
,
/* 550 */
1581
,
1592
,
1582
,
1583
,
1568
,
1368
,
1586
,
1373
,
1587
,
1588
,
/* 560 */
1589
,
1590
,
1591
,
1595
,
1639
,
1596
,
1599
,
1604
,
1645
,
1602
,
/* 570 */
1601
,
1613
,
1660
,
1615
,
1618
,
1627
,
1665
,
1619
,
1622
,
1631
,
/* 580 */
1669
,
1623
,
1625
,
1672
,
1673
,
1653
,
1655
,
1657
,
1658
,
1656
,
/* 590 */
1670
,
/* 100 */
479
,
479
,
479
,
479
,
584
,
614
,
465
,
465
,
301
,
281
,
/* 110 */
379
,
379
,
379
,
639
,
281
,
632
,
600
,
201
,
201
,
600
,
/* 120 */
408
,
800
,
319
,
319
,
319
,
319
,
319
,
319
,
319
,
1384
,
/* 130 */
1039
,
377
,
349
,
28
,
104
,
230
,
730
,
102
,
648
,
432
,
/* 140 */
570
,
634
,
570
,
768
,
378
,
378
,
378
,
619
,
815
,
960
,
/* 150 */
938
,
947
,
851
,
960
,
960
,
969
,
872
,
872
,
960
,
993
,
/* 160 */
993
,
999
,
17
,
600
,
17
,
1004
,
17
,
632
,
1016
,
17
,
/* 170 */
17
,
960
,
17
,
993
,
201
,
201
,
201
,
201
,
201
,
201
,
/* 180 */
201
,
201
,
201
,
201
,
201
,
960
,
993
,
1010
,
999
,
215
,
/* 190 */
926
,
600
,
215
,
1004
,
215
,
632
,
1016
,
215
,
1070
,
883
,
/* 200 */
887
,
1010
,
883
,
887
,
1010
,
1010
,
880
,
884
,
898
,
902
,
/* 210 */
927
,
632
,
1116
,
1098
,
912
,
915
,
917
,
912
,
915
,
912
,
/* 220 */
915
,
1065
,
201
,
887
,
1010
,
1010
,
887
,
1010
,
1006
,
632
,
/* 230 */
1016
,
215
,
408
,
215
,
632
,
1095
,
800
,
960
,
215
,
993
,
/* 240 */
2167
,
2167
,
2167
,
2167
,
2167
,
2167
,
2167
,
2167
,
244
,
563
,
/* 250 */
141
,
876
,
706
,
916
,
241
,
84
,
355
,
515
,
419
,
85
,
/* 260 */
282
,
282
,
282
,
282
,
282
,
282
,
282
,
282
,
239
,
398
,
/* 270 */
429
,
554
,
652
,
574
,
36
,
36
,
36
,
36
,
794
,
716
,
/* 280 */
724
,
728
,
732
,
743
,
823
,
831
,
834
,
701
,
669
,
702
,
/* 290 */
791
,
802
,
805
,
850
,
664
,
661
,
822
,
818
,
145
,
827
,
/* 300 */
811
,
829
,
844
,
849
,
852
,
863
,
858
,
860
,
871
,
879
,
/* 310 */
881
,
886
,
900
,
905
,
812
,
914
,
1194
,
1197
,
1128
,
1201
,
/* 320 */
1155
,
1029
,
1160
,
1162
,
1163
,
1043
,
1219
,
1173
,
1175
,
1049
,
/* 330 */
1228
,
1182
,
1230
,
1185
,
1234
,
1188
,
1237
,
1158
,
1079
,
1083
,
/* 340 */
1130
,
1088
,
1251
,
1252
,
1094
,
1096
,
1248
,
1249
,
1209
,
1255
,
/* 350 */
1256
,
1257
,
1258
,
1261
,
1263
,
1264
,
1273
,
1280
,
1282
,
1283
,
/* 360 */
1284
,
1285
,
1286
,
1288
,
1289
,
1290
,
1291
,
1253
,
1292
,
1295
,
/* 370 */
1296
,
1297
,
1298
,
1301
,
1281
,
1302
,
1305
,
1306
,
1307
,
1311
,
/* 380 */
1312
,
1269
,
1277
,
1274
,
1308
,
1272
,
1310
,
1275
,
1320
,
1299
,
/* 390 */
1303
,
1321
,
1323
,
1326
,
1336
,
1304
,
1345
,
1293
,
1347
,
1349
,
/* 400 */
1313
,
1294
,
1314
,
1350
,
1315
,
1316
,
1317
,
1355
,
1319
,
1331
,
/* 410 */
1322
,
1356
,
1330
,
1334
,
1327
,
1357
,
1358
,
1380
,
1381
,
1318
,
/* 420 */
1324
,
1338
,
1375
,
1386
,
1351
,
1352
,
1353
,
1354
,
1363
,
1365
,
/* 430 */
1361
,
1366
,
1367
,
1405
,
1388
,
1412
,
1393
,
1368
,
1418
,
1398
,
/* 440 */
1374
,
1422
,
1402
,
1425
,
1404
,
1407
,
1428
,
1287
,
1383
,
1431
,
/* 450 */
1325
,
1419
,
1328
,
1300
,
1434
,
1449
,
1451
,
1372
,
1417
,
1329
,
/* 460 */
1414
,
1415
,
1245
,
1378
,
1421
,
1379
,
1385
,
1387
,
1390
,
1391
,
/* 470 */
1423
,
1427
,
1394
,
1435
,
1265
,
1399
,
1400
,
1439
,
1278
,
1438
,
/* 480 */
1444
,
1408
,
1452
,
1332
,
1409
,
1447
,
1448
,
1450
,
1461
,
1463
,
/* 490 */
1464
,
1409
,
1473
,
1335
,
1455
,
1433
,
1432
,
1437
,
1454
,
1440
,
/* 500 */
1441
,
1472
,
1497
,
1343
,
1453
,
1443
,
1446
,
1457
,
1458
,
1392
,
/* 510 */
1459
,
1529
,
1493
,
1401
,
1460
,
1465
,
1487
,
1490
,
1462
,
1466
,
/* 520 */
1469
,
1532
,
1471
,
1476
,
1489
,
1517
,
1521
,
1491
,
1492
,
1525
,
/* 530 */
1494
,
1495
,
1528
,
1499
,
1496
,
1535
,
1504
,
1513
,
1549
,
1518
,
/* 540 */
1500
,
1502
,
1503
,
1505
,
1575
,
1508
,
1523
,
1531
,
1554
,
1533
,
/* 550 */
1514
,
1558
,
1592
,
1559
,
1570
,
1553
,
1552
,
1590
,
1585
,
1586
,
/* 560 */
1587
,
1589
,
1594
,
1615
,
1595
,
1596
,
1580
,
1363
,
1600
,
1365
,
/* 570 */
1601
,
1611
,
1616
,
1617
,
1618
,
1619
,
1639
,
1620
,
1627
,
1625
,
/* 580 */
1671
,
1628
,
1629
,
1636
,
1685
,
1640
,
1643
,
1653
,
1691
,
1645
,
/* 590 */
1654
,
1661
,
1701
,
1655
,
1657
,
1704
,
1707
,
1686
,
1688
,
1689
,
/* 600 */
1692
,
1694
,
1696
,
};
#define YY_REDUCE_COUNT (2
3
7)
#define YY_REDUCE_COUNT (2
4
7)
#define YY_REDUCE_MIN (-317)
#define YY_REDUCE_MAX (1
705
)
#define YY_REDUCE_MAX (1
849
)
static
const
short
yy_reduce_ofst
[]
=
{
/* 0 */
38
,
489
,
564
,
675
,
740
,
801
,
855
,
315
,
909
,
959
,
/* 10 */
991
,
-
223
,
1009
,
90
,
1056
,
628
,
1071
,
1146
,
1176
,
1223
,
/* 20 */
941
,
1232
,
1279
,
1309
,
1341
,
1371
,
1418
,
1433
,
1465
,
1517
,
/* 30 */
1547
,
1579
,
1594
,
1641
,
1654
,
1705
,
-
191
,
23
,
390
,
460
,
/* 40 */
-
224
,
235
,
-
282
,
257
,
-
280
,
-
141
,
-
112
,
197
,
-
244
,
-
240
,
/* 50 */
-
317
,
-
243
,
200
,
361
,
383
,
449
,
450
,
-
152
,
452
,
-
221
,
/* 60 */
-
165
,
-
219
,
-
64
,
117
,
508
,
511
,
55
,
512
,
178
,
104
,
/* 70 */
47
,
318
,
516
,
-
250
,
-
124
,
-
312
,
-
312
,
-
312
,
-
113
,
-
170
,
/* 80 */
-
121
,
-
131
,
-
17
,
82
,
154
,
245
,
298
,
356
,
357
,
358
,
/* 90 */
362
,
371
,
412
,
424
,
434
,
472
,
476
,
477
,
488
,
490
,
/* 100 */
321
,
-
29
,
-
99
,
161
,
360
,
224
,
-
277
,
312
,
331
,
385
,
/* 110 */
394
,
60
,
409
,
364
,
442
,
369
,
470
,
524
,
-
259
,
-
255
,
/* 120 */
617
,
621
,
622
,
625
,
630
,
599
,
659
,
647
,
550
,
572
,
/* 130 */
608
,
580
,
677
,
676
,
654
,
658
,
603
,
603
,
603
,
699
,
/* 140 */
624
,
632
,
699
,
731
,
680
,
747
,
701
,
755
,
758
,
723
,
/* 150 */
733
,
742
,
762
,
774
,
776
,
722
,
772
,
745
,
775
,
738
,
/* 160 */
780
,
753
,
748
,
783
,
784
,
792
,
785
,
803
,
779
,
787
,
/* 170 */
789
,
793
,
794
,
798
,
799
,
805
,
807
,
809
,
810
,
821
,
/* 180 */
806
,
771
,
770
,
829
,
782
,
808
,
833
,
778
,
837
,
816
,
/* 190 */
811
,
838
,
788
,
754
,
812
,
814
,
756
,
815
,
817
,
820
,
/* 200 */
795
,
763
,
804
,
781
,
603
,
847
,
822
,
825
,
826
,
836
,
/* 210 */
840
,
828
,
699
,
849
,
852
,
856
,
857
,
859
,
865
,
880
,
/* 220 */
860
,
912
,
895
,
920
,
888
,
901
,
915
,
928
,
926
,
943
,
/* 230 */
886
,
887
,
892
,
929
,
933
,
934
,
942
,
954
,
/* 0 */
38
,
489
,
564
,
625
,
731
,
806
,
839
,
901
,
315
,
964
,
/* 10 */
1018
,
1058
,
1077
,
-
223
,
1133
,
90
,
678
,
955
,
1192
,
1246
,
/* 20 */
1276
,
1309
,
1339
,
1369
,
1420
,
1436
,
1483
,
1501
,
1516
,
1563
,
/* 30 */
1579
,
1626
,
1656
,
1706
,
1736
,
1786
,
1795
,
1849
,
-
191
,
1364
,
/* 40 */
23
,
390
,
460
,
-
224
,
235
,
-
282
,
257
,
-
280
,
197
,
-
141
,
/* 50 */
-
112
,
-
244
,
-
240
,
-
317
,
-
202
,
-
190
,
-
243
,
200
,
327
,
361
,
/* 60 */
383
,
449
,
-
152
,
450
,
-
221
,
60
,
-
64
,
-
144
,
337
,
452
,
/* 70 */
55
,
508
,
78
,
223
,
47
,
117
,
511
,
-
250
,
-
177
,
-
312
,
/* 80 */
-
312
,
-
312
,
-
113
,
245
,
-
34
,
261
,
298
,
304
,
354
,
357
,
/* 90 */
358
,
371
,
405
,
424
,
434
,
470
,
474
,
476
,
477
,
488
,
/* 100 */
490
,
491
,
496
,
520
,
70
,
-
139
,
161
,
289
,
326
,
334
,
/* 110 */
-
277
,
149
,
475
,
-
114
,
394
,
486
,
252
,
170
,
267
,
370
,
/* 120 */
530
,
567
,
-
259
,
-
255
,
597
,
599
,
603
,
626
,
627
,
604
,
/* 130 */
656
,
660
,
558
,
576
,
621
,
587
,
682
,
685
,
674
,
647
,
/* 140 */
623
,
623
,
623
,
679
,
609
,
615
,
616
,
640
,
679
,
734
,
/* 150 */
683
,
742
,
707
,
750
,
758
,
726
,
733
,
736
,
764
,
771
,
/* 160 */
773
,
719
,
769
,
737
,
772
,
735
,
780
,
759
,
753
,
784
,
/* 170 */
796
,
804
,
801
,
810
,
789
,
790
,
792
,
793
,
803
,
808
,
/* 180 */
809
,
814
,
816
,
817
,
819
,
825
,
836
,
797
,
783
,
830
,
/* 190 */
795
,
807
,
840
,
813
,
843
,
821
,
824
,
847
,
828
,
754
,
/* 200 */
833
,
820
,
755
,
837
,
832
,
845
,
761
,
763
,
774
,
788
,
/* 210 */
623
,
857
,
835
,
841
,
838
,
842
,
787
,
846
,
848
,
854
,
/* 220 */
853
,
855
,
679
,
864
,
867
,
868
,
869
,
877
,
873
,
890
,
/* 230 */
875
,
918
,
906
,
921
,
897
,
904
,
920
,
932
,
930
,
939
,
/* 240 */
885
,
882
,
891
,
922
,
925
,
929
,
937
,
956
,
};
static
const
YYACTIONTYPE
yy_default
[]
=
{
/* 0 */
1327
,
1327
,
1327
,
1327
,
1327
,
1327
,
1327
,
1327
,
1327
,
1327
,
/* 10 */
1327
,
1327
,
1327
,
1327
,
1327
,
1327
,
1327
,
1327
,
1327
,
1327
,
/* 20 */
1327
,
1327
,
1327
,
1327
,
1327
,
1327
,
1327
,
1327
,
1327
,
1327
,
/* 30 */
1327
,
1327
,
1327
,
1327
,
1327
,
1327
,
1327
,
1327
,
1327
,
1327
,
/* 40 */
1327
,
1327
,
1327
,
1327
,
1327
,
1327
,
1327
,
1327
,
1327
,
1327
,
/* 50 */
1327
,
1327
,
1327
,
1327
,
1327
,
1327
,
1327
,
1396
,
1327
,
1327
,
/* 60 */
1327
,
1327
,
1327
,
1327
,
1327
,
1327
,
1327
,
1327
,
1327
,
1327
,
/* 70 */
1327
,
1327
,
1327
,
1394
,
1534
,
1327
,
1698
,
1327
,
1327
,
1327
,
/* 80 */
1327
,
1327
,
1327
,
1327
,
1327
,
1327
,
1327
,
1327
,
1327
,
1327
,
/* 90 */
1327
,
1327
,
1327
,
1327
,
1327
,
1327
,
1327
,
1327
,
1327
,
1327
,
/* 100 */
1327
,
1327
,
1327
,
1327
,
1396
,
1327
,
1709
,
1709
,
1709
,
1394
,
/* 110 */
1327
,
1327
,
1327
,
1327
,
1327
,
1327
,
1489
,
1327
,
1327
,
1327
,
/* 120 */
1327
,
1327
,
1327
,
1327
,
1327
,
1572
,
1327
,
1327
,
1774
,
1327
,
/* 130 */
1578
,
1733
,
1327
,
1327
,
1442
,
1725
,
1701
,
1715
,
1702
,
1327
,
/* 140 */
1759
,
1718
,
1327
,
1327
,
1327
,
1327
,
1564
,
1327
,
1327
,
1539
,
/* 150 */
1536
,
1536
,
1327
,
1327
,
1327
,
1327
,
1396
,
1327
,
1396
,
1327
,
/* 160 */
1396
,
1327
,
1327
,
1396
,
1396
,
1327
,
1396
,
1327
,
1327
,
1327
,
/* 170 */
1327
,
1327
,
1327
,
1327
,
1327
,
1327
,
1327
,
1327
,
1327
,
1327
,
/* 180 */
1327
,
1327
,
1327
,
1394
,
1574
,
1327
,
1394
,
1327
,
1394
,
1327
,
/* 190 */
1327
,
1394
,
1327
,
1740
,
1738
,
1327
,
1740
,
1738
,
1327
,
1327
,
/* 200 */
1752
,
1748
,
1731
,
1729
,
1715
,
1327
,
1327
,
1327
,
1777
,
1765
,
/* 210 */
1761
,
1327
,
1327
,
1738
,
1327
,
1327
,
1738
,
1327
,
1547
,
1327
,
/* 220 */
1327
,
1394
,
1327
,
1394
,
1327
,
1458
,
1327
,
1327
,
1394
,
1327
,
/* 230 */
1566
,
1580
,
1556
,
1492
,
1492
,
1492
,
1397
,
1332
,
1327
,
1327
,
/* 240 */
1327
,
1327
,
1327
,
1327
,
1327
,
1327
,
1327
,
1327
,
1327
,
1454
,
/* 250 */
1643
,
1751
,
1750
,
1674
,
1673
,
1672
,
1670
,
1642
,
1327
,
1327
,
/* 260 */
1327
,
1327
,
1327
,
1327
,
1636
,
1637
,
1635
,
1634
,
1327
,
1327
,
/* 270 */
1327
,
1327
,
1327
,
1327
,
1327
,
1327
,
1327
,
1327
,
1327
,
1327
,
/* 280 */
1327
,
1327
,
1327
,
1699
,
1327
,
1762
,
1766
,
1327
,
1327
,
1327
,
/* 290 */
1620
,
1327
,
1327
,
1327
,
1327
,
1327
,
1327
,
1327
,
1327
,
1327
,
/* 300 */
1327
,
1327
,
1327
,
1327
,
1327
,
1327
,
1327
,
1327
,
1327
,
1327
,
/* 310 */
1327
,
1327
,
1327
,
1327
,
1327
,
1327
,
1327
,
1327
,
1327
,
1327
,
/* 320 */
1327
,
1327
,
1327
,
1327
,
1327
,
1327
,
1327
,
1327
,
1327
,
1327
,
/* 330 */
1327
,
1327
,
1327
,
1327
,
1327
,
1327
,
1327
,
1327
,
1327
,
1327
,
/* 340 */
1327
,
1327
,
1327
,
1327
,
1327
,
1327
,
1327
,
1327
,
1327
,
1327
,
/* 350 */
1327
,
1327
,
1327
,
1327
,
1327
,
1327
,
1327
,
1327
,
1327
,
1327
,
/* 360 */
1327
,
1327
,
1327
,
1327
,
1327
,
1327
,
1327
,
1327
,
1327
,
1327
,
/* 370 */
1327
,
1327
,
1327
,
1361
,
1327
,
1327
,
1327
,
1327
,
1327
,
1327
,
/* 380 */
1327
,
1327
,
1327
,
1327
,
1327
,
1327
,
1327
,
1327
,
1327
,
1327
,
/* 390 */
1327
,
1327
,
1327
,
1327
,
1327
,
1327
,
1327
,
1327
,
1327
,
1327
,
/* 400 */
1327
,
1327
,
1327
,
1327
,
1327
,
1327
,
1327
,
1327
,
1327
,
1327
,
/* 410 */
1327
,
1327
,
1327
,
1327
,
1327
,
1327
,
1327
,
1327
,
1423
,
1422
,
/* 420 */
1327
,
1327
,
1327
,
1327
,
1327
,
1327
,
1327
,
1327
,
1327
,
1327
,
/* 430 */
1327
,
1327
,
1327
,
1327
,
1327
,
1327
,
1327
,
1327
,
1327
,
1327
,
/* 440 */
1327
,
1327
,
1327
,
1327
,
1327
,
1327
,
1327
,
1327
,
1327
,
1327
,
/* 450 */
1722
,
1732
,
1327
,
1327
,
1327
,
1327
,
1327
,
1327
,
1327
,
1327
,
/* 460 */
1327
,
1620
,
1327
,
1749
,
1327
,
1708
,
1704
,
1327
,
1327
,
1700
,
/* 470 */
1327
,
1327
,
1760
,
1327
,
1327
,
1327
,
1327
,
1327
,
1327
,
1327
,
/* 480 */
1694
,
1327
,
1667
,
1327
,
1327
,
1327
,
1327
,
1327
,
1327
,
1327
,
/* 490 */
1327
,
1630
,
1327
,
1327
,
1327
,
1327
,
1327
,
1327
,
1327
,
1327
,
/* 500 */
1327
,
1327
,
1327
,
1327
,
1619
,
1327
,
1658
,
1327
,
1327
,
1327
,
/* 510 */
1327
,
1327
,
1327
,
1327
,
1327
,
1486
,
1327
,
1327
,
1327
,
1327
,
/* 520 */
1327
,
1327
,
1327
,
1327
,
1327
,
1327
,
1327
,
1327
,
1471
,
1469
,
/* 530 */
1468
,
1467
,
1327
,
1464
,
1327
,
1327
,
1327
,
1327
,
1327
,
1327
,
/* 540 */
1327
,
1327
,
1327
,
1327
,
1327
,
1416
,
1327
,
1327
,
1327
,
1327
,
/* 550 */
1327
,
1327
,
1327
,
1327
,
1327
,
1407
,
1327
,
1406
,
1327
,
1327
,
/* 560 */
1327
,
1327
,
1327
,
1327
,
1327
,
1327
,
1327
,
1327
,
1327
,
1327
,
/* 570 */
1327
,
1327
,
1327
,
1327
,
1327
,
1327
,
1327
,
1327
,
1327
,
1327
,
/* 580 */
1327
,
1327
,
1327
,
1327
,
1327
,
1327
,
1327
,
1327
,
1327
,
1327
,
/* 590 */
1327
,
/* 0 */
1341
,
1341
,
1341
,
1341
,
1341
,
1341
,
1341
,
1341
,
1341
,
1341
,
/* 10 */
1341
,
1341
,
1341
,
1341
,
1341
,
1341
,
1341
,
1341
,
1341
,
1341
,
/* 20 */
1341
,
1341
,
1341
,
1341
,
1341
,
1341
,
1341
,
1341
,
1341
,
1341
,
/* 30 */
1341
,
1341
,
1341
,
1341
,
1341
,
1341
,
1341
,
1341
,
1341
,
1341
,
/* 40 */
1341
,
1341
,
1341
,
1341
,
1341
,
1341
,
1341
,
1341
,
1341
,
1341
,
/* 50 */
1341
,
1341
,
1341
,
1341
,
1341
,
1341
,
1341
,
1341
,
1341
,
1341
,
/* 60 */
1341
,
1341
,
1410
,
1341
,
1341
,
1341
,
1341
,
1341
,
1341
,
1341
,
/* 70 */
1341
,
1341
,
1341
,
1341
,
1341
,
1341
,
1341
,
1408
,
1548
,
1341
,
/* 80 */
1712
,
1341
,
1341
,
1341
,
1341
,
1341
,
1341
,
1341
,
1341
,
1341
,
/* 90 */
1341
,
1341
,
1341
,
1341
,
1341
,
1341
,
1341
,
1341
,
1341
,
1341
,
/* 100 */
1341
,
1341
,
1341
,
1341
,
1341
,
1341
,
1341
,
1341
,
1410
,
1341
,
/* 110 */
1723
,
1723
,
1723
,
1408
,
1341
,
1341
,
1341
,
1341
,
1341
,
1341
,
/* 120 */
1503
,
1341
,
1341
,
1341
,
1341
,
1341
,
1341
,
1341
,
1341
,
1586
,
/* 130 */
1341
,
1341
,
1789
,
1341
,
1592
,
1747
,
1341
,
1341
,
1456
,
1739
,
/* 140 */
1715
,
1729
,
1716
,
1341
,
1774
,
1774
,
1774
,
1732
,
1341
,
1341
,
/* 150 */
1341
,
1341
,
1578
,
1341
,
1341
,
1553
,
1550
,
1550
,
1341
,
1341
,
/* 160 */
1341
,
1341
,
1410
,
1341
,
1410
,
1341
,
1410
,
1341
,
1341
,
1410
,
/* 170 */
1410
,
1341
,
1410
,
1341
,
1341
,
1341
,
1341
,
1341
,
1341
,
1341
,
/* 180 */
1341
,
1341
,
1341
,
1341
,
1341
,
1341
,
1341
,
1341
,
1341
,
1408
,
/* 190 */
1588
,
1341
,
1408
,
1341
,
1408
,
1341
,
1341
,
1408
,
1341
,
1754
,
/* 200 */
1752
,
1341
,
1754
,
1752
,
1341
,
1341
,
1766
,
1762
,
1745
,
1743
,
/* 210 */
1729
,
1341
,
1341
,
1341
,
1780
,
1776
,
1792
,
1780
,
1776
,
1780
,
/* 220 */
1776
,
1341
,
1341
,
1752
,
1341
,
1341
,
1752
,
1341
,
1561
,
1341
,
/* 230 */
1341
,
1408
,
1341
,
1408
,
1341
,
1472
,
1341
,
1341
,
1408
,
1341
,
/* 240 */
1580
,
1594
,
1570
,
1506
,
1506
,
1506
,
1411
,
1346
,
1341
,
1341
,
/* 250 */
1341
,
1341
,
1341
,
1341
,
1341
,
1341
,
1341
,
1341
,
1341
,
1468
,
/* 260 */
1657
,
1765
,
1764
,
1688
,
1687
,
1686
,
1684
,
1656
,
1341
,
1341
,
/* 270 */
1341
,
1341
,
1341
,
1341
,
1650
,
1651
,
1649
,
1648
,
1341
,
1341
,
/* 280 */
1341
,
1341
,
1341
,
1341
,
1341
,
1341
,
1341
,
1341
,
1341
,
1341
,
/* 290 */
1341
,
1341
,
1341
,
1713
,
1341
,
1777
,
1781
,
1341
,
1341
,
1341
,
/* 300 */
1634
,
1341
,
1341
,
1341
,
1341
,
1341
,
1341
,
1341
,
1341
,
1341
,
/* 310 */
1341
,
1341
,
1341
,
1341
,
1341
,
1341
,
1341
,
1341
,
1341
,
1341
,
/* 320 */
1341
,
1341
,
1341
,
1341
,
1341
,
1341
,
1341
,
1341
,
1341
,
1341
,
/* 330 */
1341
,
1341
,
1341
,
1341
,
1341
,
1341
,
1341
,
1341
,
1341
,
1341
,
/* 340 */
1341
,
1341
,
1341
,
1341
,
1341
,
1341
,
1341
,
1341
,
1341
,
1341
,
/* 350 */
1341
,
1341
,
1341
,
1341
,
1341
,
1341
,
1341
,
1341
,
1341
,
1341
,
/* 360 */
1341
,
1341
,
1341
,
1341
,
1341
,
1341
,
1341
,
1341
,
1341
,
1341
,
/* 370 */
1341
,
1341
,
1341
,
1341
,
1341
,
1341
,
1341
,
1341
,
1341
,
1341
,
/* 380 */
1341
,
1341
,
1341
,
1375
,
1341
,
1341
,
1341
,
1341
,
1341
,
1341
,
/* 390 */
1341
,
1341
,
1341
,
1341
,
1341
,
1341
,
1341
,
1341
,
1341
,
1341
,
/* 400 */
1341
,
1341
,
1341
,
1341
,
1341
,
1341
,
1341
,
1341
,
1341
,
1341
,
/* 410 */
1341
,
1341
,
1341
,
1341
,
1341
,
1341
,
1341
,
1341
,
1341
,
1341
,
/* 420 */
1341
,
1341
,
1341
,
1341
,
1341
,
1341
,
1341
,
1341
,
1437
,
1436
,
/* 430 */
1341
,
1341
,
1341
,
1341
,
1341
,
1341
,
1341
,
1341
,
1341
,
1341
,
/* 440 */
1341
,
1341
,
1341
,
1341
,
1341
,
1341
,
1341
,
1341
,
1341
,
1341
,
/* 450 */
1341
,
1341
,
1341
,
1341
,
1341
,
1341
,
1341
,
1341
,
1341
,
1341
,
/* 460 */
1736
,
1746
,
1341
,
1341
,
1341
,
1341
,
1341
,
1341
,
1341
,
1341
,
/* 470 */
1341
,
1634
,
1341
,
1763
,
1341
,
1722
,
1718
,
1341
,
1341
,
1714
,
/* 480 */
1341
,
1341
,
1775
,
1341
,
1341
,
1341
,
1341
,
1341
,
1341
,
1341
,
/* 490 */
1341
,
1341
,
1708
,
1341
,
1681
,
1341
,
1341
,
1341
,
1341
,
1341
,
/* 500 */
1341
,
1341
,
1341
,
1644
,
1341
,
1341
,
1341
,
1341
,
1341
,
1341
,
/* 510 */
1341
,
1341
,
1341
,
1341
,
1341
,
1341
,
1633
,
1341
,
1672
,
1341
,
/* 520 */
1341
,
1341
,
1341
,
1341
,
1341
,
1341
,
1341
,
1500
,
1341
,
1341
,
/* 530 */
1341
,
1341
,
1341
,
1341
,
1341
,
1341
,
1341
,
1341
,
1341
,
1341
,
/* 540 */
1485
,
1483
,
1482
,
1481
,
1341
,
1478
,
1341
,
1341
,
1341
,
1341
,
/* 550 */
1341
,
1341
,
1341
,
1341
,
1341
,
1341
,
1341
,
1430
,
1341
,
1341
,
/* 560 */
1341
,
1341
,
1341
,
1341
,
1341
,
1341
,
1341
,
1421
,
1341
,
1420
,
/* 570 */
1341
,
1341
,
1341
,
1341
,
1341
,
1341
,
1341
,
1341
,
1341
,
1341
,
/* 580 */
1341
,
1341
,
1341
,
1341
,
1341
,
1341
,
1341
,
1341
,
1341
,
1341
,
/* 590 */
1341
,
1341
,
1341
,
1341
,
1341
,
1341
,
1341
,
1341
,
1341
,
1341
,
/* 600 */
1341
,
1341
,
1341
,
};
/********** End of lemon-generated parsing tables *****************************/
...
...
@@ -1937,27 +1946,28 @@ static const char *const yyRuleName[] = {
/* 426 */
"query_expression_body ::= query_expression_body UNION ALL query_expression_body"
,
/* 427 */
"query_expression_body ::= query_expression_body UNION query_expression_body"
,
/* 428 */
"query_primary ::= query_specification"
,
/* 429 */
"order_by_clause_opt ::="
,
/* 430 */
"order_by_clause_opt ::= ORDER BY sort_specification_list"
,
/* 431 */
"slimit_clause_opt ::="
,
/* 432 */
"slimit_clause_opt ::= SLIMIT NK_INTEGER"
,
/* 433 */
"slimit_clause_opt ::= SLIMIT NK_INTEGER SOFFSET NK_INTEGER"
,
/* 434 */
"slimit_clause_opt ::= SLIMIT NK_INTEGER NK_COMMA NK_INTEGER"
,
/* 435 */
"limit_clause_opt ::="
,
/* 436 */
"limit_clause_opt ::= LIMIT NK_INTEGER"
,
/* 437 */
"limit_clause_opt ::= LIMIT NK_INTEGER OFFSET NK_INTEGER"
,
/* 438 */
"limit_clause_opt ::= LIMIT NK_INTEGER NK_COMMA NK_INTEGER"
,
/* 439 */
"subquery ::= NK_LP query_expression NK_RP"
,
/* 440 */
"search_condition ::= common_expression"
,
/* 441 */
"sort_specification_list ::= sort_specification"
,
/* 442 */
"sort_specification_list ::= sort_specification_list NK_COMMA sort_specification"
,
/* 443 */
"sort_specification ::= expression ordering_specification_opt null_ordering_opt"
,
/* 444 */
"ordering_specification_opt ::="
,
/* 445 */
"ordering_specification_opt ::= ASC"
,
/* 446 */
"ordering_specification_opt ::= DESC"
,
/* 447 */
"null_ordering_opt ::="
,
/* 448 */
"null_ordering_opt ::= NULLS FIRST"
,
/* 449 */
"null_ordering_opt ::= NULLS LAST"
,
/* 429 */
"query_primary ::= NK_LP query_expression_body order_by_clause_opt slimit_clause_opt limit_clause_opt NK_RP"
,
/* 430 */
"order_by_clause_opt ::="
,
/* 431 */
"order_by_clause_opt ::= ORDER BY sort_specification_list"
,
/* 432 */
"slimit_clause_opt ::="
,
/* 433 */
"slimit_clause_opt ::= SLIMIT NK_INTEGER"
,
/* 434 */
"slimit_clause_opt ::= SLIMIT NK_INTEGER SOFFSET NK_INTEGER"
,
/* 435 */
"slimit_clause_opt ::= SLIMIT NK_INTEGER NK_COMMA NK_INTEGER"
,
/* 436 */
"limit_clause_opt ::="
,
/* 437 */
"limit_clause_opt ::= LIMIT NK_INTEGER"
,
/* 438 */
"limit_clause_opt ::= LIMIT NK_INTEGER OFFSET NK_INTEGER"
,
/* 439 */
"limit_clause_opt ::= LIMIT NK_INTEGER NK_COMMA NK_INTEGER"
,
/* 440 */
"subquery ::= NK_LP query_expression NK_RP"
,
/* 441 */
"search_condition ::= common_expression"
,
/* 442 */
"sort_specification_list ::= sort_specification"
,
/* 443 */
"sort_specification_list ::= sort_specification_list NK_COMMA sort_specification"
,
/* 444 */
"sort_specification ::= expression ordering_specification_opt null_ordering_opt"
,
/* 445 */
"ordering_specification_opt ::="
,
/* 446 */
"ordering_specification_opt ::= ASC"
,
/* 447 */
"ordering_specification_opt ::= DESC"
,
/* 448 */
"null_ordering_opt ::="
,
/* 449 */
"null_ordering_opt ::= NULLS FIRST"
,
/* 450 */
"null_ordering_opt ::= NULLS LAST"
,
};
#endif
/* NDEBUG */
...
...
@@ -2979,27 +2989,28 @@ static const struct {
{
349
,
-
4
},
/* (426) query_expression_body ::= query_expression_body UNION ALL query_expression_body */
{
349
,
-
3
},
/* (427) query_expression_body ::= query_expression_body UNION query_expression_body */
{
353
,
-
1
},
/* (428) query_primary ::= query_specification */
{
350
,
0
},
/* (429) order_by_clause_opt ::= */
{
350
,
-
3
},
/* (430) order_by_clause_opt ::= ORDER BY sort_specification_list */
{
351
,
0
},
/* (431) slimit_clause_opt ::= */
{
351
,
-
2
},
/* (432) slimit_clause_opt ::= SLIMIT NK_INTEGER */
{
351
,
-
4
},
/* (433) slimit_clause_opt ::= SLIMIT NK_INTEGER SOFFSET NK_INTEGER */
{
351
,
-
4
},
/* (434) slimit_clause_opt ::= SLIMIT NK_INTEGER NK_COMMA NK_INTEGER */
{
352
,
0
},
/* (435) limit_clause_opt ::= */
{
352
,
-
2
},
/* (436) limit_clause_opt ::= LIMIT NK_INTEGER */
{
352
,
-
4
},
/* (437) limit_clause_opt ::= LIMIT NK_INTEGER OFFSET NK_INTEGER */
{
352
,
-
4
},
/* (438) limit_clause_opt ::= LIMIT NK_INTEGER NK_COMMA NK_INTEGER */
{
314
,
-
3
},
/* (439) subquery ::= NK_LP query_expression NK_RP */
{
335
,
-
1
},
/* (440) search_condition ::= common_expression */
{
354
,
-
1
},
/* (441) sort_specification_list ::= sort_specification */
{
354
,
-
3
},
/* (442) sort_specification_list ::= sort_specification_list NK_COMMA sort_specification */
{
355
,
-
3
},
/* (443) sort_specification ::= expression ordering_specification_opt null_ordering_opt */
{
356
,
0
},
/* (444) ordering_specification_opt ::= */
{
356
,
-
1
},
/* (445) ordering_specification_opt ::= ASC */
{
356
,
-
1
},
/* (446) ordering_specification_opt ::= DESC */
{
357
,
0
},
/* (447) null_ordering_opt ::= */
{
357
,
-
2
},
/* (448) null_ordering_opt ::= NULLS FIRST */
{
357
,
-
2
},
/* (449) null_ordering_opt ::= NULLS LAST */
{
353
,
-
6
},
/* (429) query_primary ::= NK_LP query_expression_body order_by_clause_opt slimit_clause_opt limit_clause_opt NK_RP */
{
350
,
0
},
/* (430) order_by_clause_opt ::= */
{
350
,
-
3
},
/* (431) order_by_clause_opt ::= ORDER BY sort_specification_list */
{
351
,
0
},
/* (432) slimit_clause_opt ::= */
{
351
,
-
2
},
/* (433) slimit_clause_opt ::= SLIMIT NK_INTEGER */
{
351
,
-
4
},
/* (434) slimit_clause_opt ::= SLIMIT NK_INTEGER SOFFSET NK_INTEGER */
{
351
,
-
4
},
/* (435) slimit_clause_opt ::= SLIMIT NK_INTEGER NK_COMMA NK_INTEGER */
{
352
,
0
},
/* (436) limit_clause_opt ::= */
{
352
,
-
2
},
/* (437) limit_clause_opt ::= LIMIT NK_INTEGER */
{
352
,
-
4
},
/* (438) limit_clause_opt ::= LIMIT NK_INTEGER OFFSET NK_INTEGER */
{
352
,
-
4
},
/* (439) limit_clause_opt ::= LIMIT NK_INTEGER NK_COMMA NK_INTEGER */
{
314
,
-
3
},
/* (440) subquery ::= NK_LP query_expression NK_RP */
{
335
,
-
1
},
/* (441) search_condition ::= common_expression */
{
354
,
-
1
},
/* (442) sort_specification_list ::= sort_specification */
{
354
,
-
3
},
/* (443) sort_specification_list ::= sort_specification_list NK_COMMA sort_specification */
{
355
,
-
3
},
/* (444) sort_specification ::= expression ordering_specification_opt null_ordering_opt */
{
356
,
0
},
/* (445) ordering_specification_opt ::= */
{
356
,
-
1
},
/* (446) ordering_specification_opt ::= ASC */
{
356
,
-
1
},
/* (447) ordering_specification_opt ::= DESC */
{
357
,
0
},
/* (448) null_ordering_opt ::= */
{
357
,
-
2
},
/* (449) null_ordering_opt ::= NULLS FIRST */
{
357
,
-
2
},
/* (450) null_ordering_opt ::= NULLS LAST */
};
static
void
yy_accept
(
yyParser
*
);
/* Forward Declaration */
...
...
@@ -3414,7 +3425,7 @@ static YYACTIONTYPE yy_reduce(
case
286
:
/* literal_list ::= signed_literal */
yytestcase
(
yyruleno
==
286
);
case
338
:
/* other_para_list ::= star_func_para */
yytestcase
(
yyruleno
==
338
);
case
393
:
/* select_sublist ::= select_item */
yytestcase
(
yyruleno
==
393
);
case
44
1
:
/* sort_specification_list ::= sort_specification */
yytestcase
(
yyruleno
==
441
);
case
44
2
:
/* sort_specification_list ::= sort_specification */
yytestcase
(
yyruleno
==
442
);
{
yylhsminor
.
yy60
=
createNodeList
(
pCxt
,
yymsp
[
0
].
minor
.
yy172
);
}
yymsp
[
0
].
minor
.
yy60
=
yylhsminor
.
yy60
;
break
;
...
...
@@ -3426,7 +3437,7 @@ static YYACTIONTYPE yy_reduce(
case
287
:
/* literal_list ::= literal_list NK_COMMA signed_literal */
yytestcase
(
yyruleno
==
287
);
case
339
:
/* other_para_list ::= other_para_list NK_COMMA star_func_para */
yytestcase
(
yyruleno
==
339
);
case
394
:
/* select_sublist ::= select_sublist NK_COMMA select_item */
yytestcase
(
yyruleno
==
394
);
case
44
2
:
/* sort_specification_list ::= sort_specification_list NK_COMMA sort_specification */
yytestcase
(
yyruleno
==
442
);
case
44
3
:
/* sort_specification_list ::= sort_specification_list NK_COMMA sort_specification */
yytestcase
(
yyruleno
==
443
);
{
yylhsminor
.
yy60
=
addNodeToList
(
pCxt
,
yymsp
[
-
2
].
minor
.
yy60
,
yymsp
[
0
].
minor
.
yy172
);
}
yymsp
[
-
2
].
minor
.
yy60
=
yylhsminor
.
yy60
;
break
;
...
...
@@ -3509,7 +3520,7 @@ static YYACTIONTYPE yy_reduce(
case
159
:
/* tags_def_opt ::= */
yytestcase
(
yyruleno
==
159
);
case
401
:
/* partition_by_clause_opt ::= */
yytestcase
(
yyruleno
==
401
);
case
418
:
/* group_by_clause_opt ::= */
yytestcase
(
yyruleno
==
418
);
case
4
29
:
/* order_by_clause_opt ::= */
yytestcase
(
yyruleno
==
429
);
case
4
30
:
/* order_by_clause_opt ::= */
yytestcase
(
yyruleno
==
430
);
{
yymsp
[
1
].
minor
.
yy60
=
NULL
;
}
break
;
case
129
:
/* specific_tags_opt ::= NK_LP col_name_list NK_RP */
...
...
@@ -3750,8 +3761,8 @@ static YYACTIONTYPE yy_reduce(
case
408
:
/* sliding_opt ::= */
yytestcase
(
yyruleno
==
408
);
case
410
:
/* fill_opt ::= */
yytestcase
(
yyruleno
==
410
);
case
422
:
/* having_clause_opt ::= */
yytestcase
(
yyruleno
==
422
);
case
43
1
:
/* slimit_clause_opt ::= */
yytestcase
(
yyruleno
==
431
);
case
43
5
:
/* limit_clause_opt ::= */
yytestcase
(
yyruleno
==
435
);
case
43
2
:
/* slimit_clause_opt ::= */
yytestcase
(
yyruleno
==
432
);
case
43
6
:
/* limit_clause_opt ::= */
yytestcase
(
yyruleno
==
436
);
{
yymsp
[
1
].
minor
.
yy172
=
NULL
;
}
break
;
case
207
:
/* like_pattern_opt ::= LIKE NK_STRING */
...
...
@@ -4001,7 +4012,7 @@ static YYACTIONTYPE yy_reduce(
case
285
:
/* signed_literal ::= literal_func */
yytestcase
(
yyruleno
==
285
);
case
340
:
/* star_func_para ::= expression */
yytestcase
(
yyruleno
==
340
);
case
395
:
/* select_item ::= common_expression */
yytestcase
(
yyruleno
==
395
);
case
44
0
:
/* search_condition ::= common_expression */
yytestcase
(
yyruleno
==
440
);
case
44
1
:
/* search_condition ::= common_expression */
yytestcase
(
yyruleno
==
441
);
{
yylhsminor
.
yy172
=
releaseRawExprNode
(
pCxt
,
yymsp
[
0
].
minor
.
yy172
);
}
yymsp
[
0
].
minor
.
yy172
=
yylhsminor
.
yy172
;
break
;
...
...
@@ -4295,7 +4306,7 @@ static YYACTIONTYPE yy_reduce(
break
;
case
402
:
/* partition_by_clause_opt ::= PARTITION BY expression_list */
case
419
:
/* group_by_clause_opt ::= GROUP BY group_by_list */
yytestcase
(
yyruleno
==
419
);
case
43
0
:
/* order_by_clause_opt ::= ORDER BY sort_specification_list */
yytestcase
(
yyruleno
==
430
);
case
43
1
:
/* order_by_clause_opt ::= ORDER BY sort_specification_list */
yytestcase
(
yyruleno
==
431
);
{
yymsp
[
-
2
].
minor
.
yy60
=
yymsp
[
0
].
minor
.
yy60
;
}
break
;
case
404
:
/* twindow_clause_opt ::= SESSION NK_LP column_reference NK_COMMA duration_literal NK_RP */
...
...
@@ -4358,42 +4369,48 @@ static YYACTIONTYPE yy_reduce(
{
yylhsminor
.
yy172
=
createSetOperator
(
pCxt
,
SET_OP_TYPE_UNION
,
yymsp
[
-
2
].
minor
.
yy172
,
yymsp
[
0
].
minor
.
yy172
);
}
yymsp
[
-
2
].
minor
.
yy172
=
yylhsminor
.
yy172
;
break
;
case
432
:
/* slimit_clause_opt ::= SLIMIT NK_INTEGER */
case
436
:
/* limit_clause_opt ::= LIMIT NK_INTEGER */
yytestcase
(
yyruleno
==
436
);
case
429
:
/* query_primary ::= NK_LP query_expression_body order_by_clause_opt slimit_clause_opt limit_clause_opt NK_RP */
{
yymsp
[
-
5
].
minor
.
yy172
=
yymsp
[
-
4
].
minor
.
yy172
;
}
yy_destructor
(
yypParser
,
350
,
&
yymsp
[
-
3
].
minor
);
yy_destructor
(
yypParser
,
351
,
&
yymsp
[
-
2
].
minor
);
yy_destructor
(
yypParser
,
352
,
&
yymsp
[
-
1
].
minor
);
break
;
case
433
:
/* slimit_clause_opt ::= SLIMIT NK_INTEGER */
case
437
:
/* limit_clause_opt ::= LIMIT NK_INTEGER */
yytestcase
(
yyruleno
==
437
);
{
yymsp
[
-
1
].
minor
.
yy172
=
createLimitNode
(
pCxt
,
&
yymsp
[
0
].
minor
.
yy0
,
NULL
);
}
break
;
case
43
3
:
/* slimit_clause_opt ::= SLIMIT NK_INTEGER SOFFSET NK_INTEGER */
case
43
7
:
/* limit_clause_opt ::= LIMIT NK_INTEGER OFFSET NK_INTEGER */
yytestcase
(
yyruleno
==
437
);
case
43
4
:
/* slimit_clause_opt ::= SLIMIT NK_INTEGER SOFFSET NK_INTEGER */
case
43
8
:
/* limit_clause_opt ::= LIMIT NK_INTEGER OFFSET NK_INTEGER */
yytestcase
(
yyruleno
==
438
);
{
yymsp
[
-
3
].
minor
.
yy172
=
createLimitNode
(
pCxt
,
&
yymsp
[
-
2
].
minor
.
yy0
,
&
yymsp
[
0
].
minor
.
yy0
);
}
break
;
case
43
4
:
/* slimit_clause_opt ::= SLIMIT NK_INTEGER NK_COMMA NK_INTEGER */
case
43
8
:
/* limit_clause_opt ::= LIMIT NK_INTEGER NK_COMMA NK_INTEGER */
yytestcase
(
yyruleno
==
438
);
case
43
5
:
/* slimit_clause_opt ::= SLIMIT NK_INTEGER NK_COMMA NK_INTEGER */
case
43
9
:
/* limit_clause_opt ::= LIMIT NK_INTEGER NK_COMMA NK_INTEGER */
yytestcase
(
yyruleno
==
439
);
{
yymsp
[
-
3
].
minor
.
yy172
=
createLimitNode
(
pCxt
,
&
yymsp
[
0
].
minor
.
yy0
,
&
yymsp
[
-
2
].
minor
.
yy0
);
}
break
;
case
4
39
:
/* subquery ::= NK_LP query_expression NK_RP */
case
4
40
:
/* subquery ::= NK_LP query_expression NK_RP */
{
yylhsminor
.
yy172
=
createRawExprNodeExt
(
pCxt
,
&
yymsp
[
-
2
].
minor
.
yy0
,
&
yymsp
[
0
].
minor
.
yy0
,
yymsp
[
-
1
].
minor
.
yy172
);
}
yymsp
[
-
2
].
minor
.
yy172
=
yylhsminor
.
yy172
;
break
;
case
44
3
:
/* sort_specification ::= expression ordering_specification_opt null_ordering_opt */
case
44
4
:
/* sort_specification ::= expression ordering_specification_opt null_ordering_opt */
{
yylhsminor
.
yy172
=
createOrderByExprNode
(
pCxt
,
releaseRawExprNode
(
pCxt
,
yymsp
[
-
2
].
minor
.
yy172
),
yymsp
[
-
1
].
minor
.
yy14
,
yymsp
[
0
].
minor
.
yy17
);
}
yymsp
[
-
2
].
minor
.
yy172
=
yylhsminor
.
yy172
;
break
;
case
44
4
:
/* ordering_specification_opt ::= */
case
44
5
:
/* ordering_specification_opt ::= */
{
yymsp
[
1
].
minor
.
yy14
=
ORDER_ASC
;
}
break
;
case
44
5
:
/* ordering_specification_opt ::= ASC */
case
44
6
:
/* ordering_specification_opt ::= ASC */
{
yymsp
[
0
].
minor
.
yy14
=
ORDER_ASC
;
}
break
;
case
44
6
:
/* ordering_specification_opt ::= DESC */
case
44
7
:
/* ordering_specification_opt ::= DESC */
{
yymsp
[
0
].
minor
.
yy14
=
ORDER_DESC
;
}
break
;
case
44
7
:
/* null_ordering_opt ::= */
case
44
8
:
/* null_ordering_opt ::= */
{
yymsp
[
1
].
minor
.
yy17
=
NULL_ORDER_DEFAULT
;
}
break
;
case
44
8
:
/* null_ordering_opt ::= NULLS FIRST */
case
44
9
:
/* null_ordering_opt ::= NULLS FIRST */
{
yymsp
[
-
1
].
minor
.
yy17
=
NULL_ORDER_FIRST
;
}
break
;
case
4
49
:
/* null_ordering_opt ::= NULLS LAST */
case
4
50
:
/* null_ordering_opt ::= NULLS LAST */
{
yymsp
[
-
1
].
minor
.
yy17
=
NULL_ORDER_LAST
;
}
break
;
default:
...
...
source/libs/parser/test/parSelectTest.cpp
浏览文件 @
a5210ee1
...
...
@@ -232,4 +232,12 @@ TEST_F(ParserSelectTest, semanticError) {
PARSER_STAGE_TRANSLATE
);
}
TEST_F
(
ParserSelectTest
,
setOperator
)
{
useDb
(
"root"
,
"test"
);
run
(
"SELECT * FROM t1 UNION ALL SELECT * FROM t1"
);
run
(
"(SELECT * FROM t1) UNION ALL (SELECT * FROM t1)"
);
}
}
// namespace ParserTest
source/libs/planner/src/planOptimizer.c
浏览文件 @
a5210ee1
...
...
@@ -723,7 +723,10 @@ static int32_t opkGetScanNodesImpl(SLogicNode* pNode, bool* pNotOptimize, SNodeL
switch
(
nodeType
(
pNode
))
{
case
QUERY_NODE_LOGIC_PLAN_SCAN
:
if
(
TSDB_SUPER_TABLE
!=
((
SScanLogicNode
*
)
pNode
)
->
pMeta
->
tableType
)
{
return
nodesListMakeAppend
(
pScanNodes
,
pNode
);
}
break
;
case
QUERY_NODE_LOGIC_PLAN_JOIN
:
code
=
opkGetScanNodesImpl
(
nodesListGetNode
(
pNode
->
pChildren
,
0
),
pNotOptimize
,
pScanNodes
);
if
(
TSDB_CODE_SUCCESS
==
code
)
{
...
...
@@ -739,6 +742,7 @@ static int32_t opkGetScanNodesImpl(SLogicNode* pNode, bool* pNotOptimize, SNodeL
if
(
1
!=
LIST_LENGTH
(
pNode
->
pChildren
))
{
*
pNotOptimize
=
true
;
return
TSDB_CODE_SUCCESS
;
}
return
opkGetScanNodesImpl
(
nodesListGetNode
(
pNode
->
pChildren
,
0
),
pNotOptimize
,
pScanNodes
);
...
...
source/libs/planner/test/planSubqueryTest.cpp
浏览文件 @
a5210ee1
...
...
@@ -23,12 +23,15 @@ class PlanSubqeuryTest : public PlannerTestBase {};
TEST_F
(
PlanSubqeuryTest
,
basic
)
{
useDb
(
"root"
,
"test"
);
run
(
"select * from (select * from t1)"
);
run
(
"SELECT * FROM (SELECT * FROM t1)"
);
// run("SELECT LAST(c1) FROM ( SELECT * FROM t1)");
}
TEST_F
(
PlanSubqeuryTest
,
doubleGroupBy
)
{
useDb
(
"root"
,
"test"
);
run
(
"select count(*) from (select c1 + c3 a, c1 + count(*) b from t1 where c2 = 'abc' group by c1, c3) where a > 100 "
"group by b"
);
run
(
"SELECT COUNT(*) FROM ("
"SELECT c1 + c3 a, c1 + COUNT(*) b FROM t1 WHERE c2 = 'abc' GROUP BY c1, c3) "
"WHERE a > 100 GROUP BY b"
);
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录