-
-
Notifications
You must be signed in to change notification settings - Fork 7
Expand file tree
/
Copy pathExplorerScript.interp
More file actions
258 lines (254 loc) · 22.6 KB
/
ExplorerScript.interp
File metadata and controls
258 lines (254 loc) · 22.6 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
token literal names:
null
';'
'FALSE'
'TRUE'
'='
'<'
'>'
'=='
'<='
'>='
'!='
'&'
'^'
'&<<'
'-='
'+='
'*='
'/='
'||'
'not'
'jump'
'call'
'import'
'const'
'macro'
'if'
'elseif'
'else'
'forever'
'with'
'switch'
'return'
'end'
'hold'
'continue'
'break'
'break_loop'
'value'
'debug'
'edit'
'variation'
'random'
'sector'
'dungeon_mode'
'menu2'
'menu'
'case'
'default'
'clear'
'reset'
'init'
'scn'
'dungeon_result'
'adventure_log'
'message_SwitchTalk'
'message_SwitchMonologue'
'while'
'['
']'
null
null
null
'coro'
'def'
'for_actor'
'for_object'
'for_performer'
'alias'
'for'
'previous'
'Position'
null
null
null
null
null
null
null
null
'('
')'
','
':'
'+'
'@'
'§'
'{'
'}'
null
null
null
token symbolic names:
null
null
OP_FALSE
OP_TRUE
ASSIGN
OPEN_SHARP
CLOSE_SHARP
OP_EQ
OP_LE
OP_GE
OP_NEQ
OP_AND
OP_XOR
OP_BICH
OP_MINUS
OP_PLUS
OP_MULTIPLY
OP_DIVIDE
OR
NOT
JUMP
CALL
IMPORT
CONST
MACRO
IF
ELSEIF
ELSE
FOREVER
WITH
SWITCH
RETURN
END
HOLD
CONTINUE
BREAK
BREAK_LOOP
VALUE
DEBUG
EDIT
VARIATION
RANDOM
SECTOR
DUNGEON_MODE
MENU2
MENU
CASE
DEFAULT
CLEAR
RESET
INIT
SCN
DUNGEON_RESULT
ADVENTURE_LOG
MESSAGE_SWITCH_TALK
MESSAGE_SWITCH_MONOLOGUE
WHILE
OPEN_BRACKET
CLOSE_BRACKET
STRING_LITERAL
MULTILINE_STRING_LITERAL
FOR_TARGET
CORO
DEF
FOR_ACTOR
FOR_OBJECT
FOR_PERFORMER
ALIAS
FOR
PREVIOUS
POSITION
IDENTIFIER
VARIABLE
MACRO_CALL
INTEGER
DECIMAL_INTEGER
OCT_INTEGER
HEX_INTEGER
BIN_INTEGER
OPEN_PAREN
CLOSE_PAREN
COMMA
COLON
PLUS
AT
PARAGRAPH
OPEN_BRACE
CLOSE_BRACE
DECIMAL
SKIP_
UNKNOWN_CHAR
rule names:
start
import_stmt
constant_assign
macrodef
stmt
simple_stmt
cntrl_stmt
jump
call
macro_call
ctx_block
if_block
elseif_block
else_block
if_header
if_h_negatable
if_h_op
if_h_bit
if_h_scn
switch_block
message_switch_block
single_case_block
default
switch_header
switch_h_scn
switch_h_random
switch_h_dungeon_mode
switch_h_sector
case_header
case_h_menu
case_h_menu2
case_h_op
forever_block
for_block
while_block
assignment
assignment_regular
assignment_clear
assignment_initial
assignment_reset
assignment_adv_log
assignment_dungeon_mode
assignment_scn
value_of
scn_var
conditional_operator
assign_operator
funcdef
simple_def
coro_def
for_target_def
primitive
operation
inline_ctx
func_suite
func_alias
arglist
pos_argument
position_marker
position_marker_arg
label
string
lang_string
lang_string_argument
string_value
ctx_header
for_target_def_target
atn:
[4, 1, 90, 656, 2, 0, 7, 0, 2, 1, 7, 1, 2, 2, 7, 2, 2, 3, 7, 3, 2, 4, 7, 4, 2, 5, 7, 5, 2, 6, 7, 6, 2, 7, 7, 7, 2, 8, 7, 8, 2, 9, 7, 9, 2, 10, 7, 10, 2, 11, 7, 11, 2, 12, 7, 12, 2, 13, 7, 13, 2, 14, 7, 14, 2, 15, 7, 15, 2, 16, 7, 16, 2, 17, 7, 17, 2, 18, 7, 18, 2, 19, 7, 19, 2, 20, 7, 20, 2, 21, 7, 21, 2, 22, 7, 22, 2, 23, 7, 23, 2, 24, 7, 24, 2, 25, 7, 25, 2, 26, 7, 26, 2, 27, 7, 27, 2, 28, 7, 28, 2, 29, 7, 29, 2, 30, 7, 30, 2, 31, 7, 31, 2, 32, 7, 32, 2, 33, 7, 33, 2, 34, 7, 34, 2, 35, 7, 35, 2, 36, 7, 36, 2, 37, 7, 37, 2, 38, 7, 38, 2, 39, 7, 39, 2, 40, 7, 40, 2, 41, 7, 41, 2, 42, 7, 42, 2, 43, 7, 43, 2, 44, 7, 44, 2, 45, 7, 45, 2, 46, 7, 46, 2, 47, 7, 47, 2, 48, 7, 48, 2, 49, 7, 49, 2, 50, 7, 50, 2, 51, 7, 51, 2, 52, 7, 52, 2, 53, 7, 53, 2, 54, 7, 54, 2, 55, 7, 55, 2, 56, 7, 56, 2, 57, 7, 57, 2, 58, 7, 58, 2, 59, 7, 59, 2, 60, 7, 60, 2, 61, 7, 61, 2, 62, 7, 62, 2, 63, 7, 63, 2, 64, 7, 64, 2, 65, 7, 65, 2, 66, 7, 66, 1, 0, 5, 0, 136, 8, 0, 10, 0, 12, 0, 139, 9, 0, 1, 0, 1, 0, 1, 0, 5, 0, 144, 8, 0, 10, 0, 12, 0, 147, 9, 0, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 3, 1, 3, 1, 3, 1, 3, 3, 3, 165, 8, 3, 1, 3, 1, 3, 5, 3, 169, 8, 3, 10, 3, 12, 3, 172, 9, 3, 1, 3, 1, 3, 1, 3, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 3, 4, 187, 8, 4, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 3, 5, 195, 8, 5, 1, 5, 1, 5, 1, 6, 1, 6, 1, 7, 1, 7, 1, 7, 1, 7, 1, 8, 1, 8, 1, 8, 1, 8, 1, 9, 1, 9, 1, 9, 3, 9, 212, 8, 9, 1, 9, 1, 9, 1, 9, 1, 10, 1, 10, 1, 10, 1, 10, 1, 10, 1, 10, 5, 10, 223, 8, 10, 10, 10, 12, 10, 226, 9, 10, 1, 10, 1, 10, 1, 11, 1, 11, 3, 11, 232, 8, 11, 1, 11, 1, 11, 1, 11, 1, 11, 5, 11, 238, 8, 11, 10, 11, 12, 11, 241, 9, 11, 1, 11, 1, 11, 1, 11, 5, 11, 246, 8, 11, 10, 11, 12, 11, 249, 9, 11, 1, 11, 1, 11, 5, 11, 253, 8, 11, 10, 11, 12, 11, 256, 9, 11, 1, 11, 3, 11, 259, 8, 11, 1, 12, 1, 12, 3, 12, 263, 8, 12, 1, 12, 1, 12, 1, 12, 1, 12, 5, 12, 269, 8, 12, 10, 12, 12, 12, 272, 9, 12, 1, 12, 1, 12, 1, 12, 5, 12, 277, 8, 12, 10, 12, 12, 12, 280, 9, 12, 1, 12, 1, 12, 1, 13, 1, 13, 1, 13, 5, 13, 287, 8, 13, 10, 13, 12, 13, 290, 9, 13, 1, 13, 1, 13, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 3, 14, 299, 8, 14, 1, 15, 3, 15, 302, 8, 15, 1, 15, 1, 15, 1, 16, 1, 16, 1, 16, 1, 16, 3, 16, 310, 8, 16, 1, 17, 3, 17, 313, 8, 17, 1, 17, 1, 17, 1, 17, 1, 17, 1, 17, 1, 18, 1, 18, 1, 18, 1, 18, 1, 18, 1, 18, 1, 18, 1, 18, 1, 19, 1, 19, 1, 19, 1, 19, 1, 19, 1, 19, 1, 19, 5, 19, 335, 8, 19, 10, 19, 12, 19, 338, 9, 19, 1, 19, 1, 19, 1, 20, 1, 20, 1, 20, 1, 20, 1, 20, 1, 20, 1, 20, 5, 20, 349, 8, 20, 10, 20, 12, 20, 352, 9, 20, 1, 20, 1, 20, 1, 21, 1, 21, 1, 21, 1, 21, 5, 21, 360, 8, 21, 10, 21, 12, 21, 363, 9, 21, 1, 21, 3, 21, 366, 8, 21, 1, 22, 1, 22, 1, 22, 5, 22, 371, 8, 22, 10, 22, 12, 22, 374, 9, 22, 1, 22, 3, 22, 377, 8, 22, 1, 23, 1, 23, 1, 23, 1, 23, 1, 23, 1, 23, 3, 23, 385, 8, 23, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 27, 1, 27, 1, 27, 1, 27, 1, 28, 1, 28, 1, 28, 1, 28, 3, 28, 410, 8, 28, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 31, 1, 31, 1, 31, 3, 31, 425, 8, 31, 1, 32, 1, 32, 1, 32, 5, 32, 430, 8, 32, 10, 32, 12, 32, 433, 9, 32, 1, 32, 1, 32, 1, 33, 1, 33, 1, 33, 1, 33, 1, 33, 1, 33, 1, 33, 1, 33, 1, 33, 5, 33, 446, 8, 33, 10, 33, 12, 33, 449, 9, 33, 1, 33, 1, 33, 1, 34, 1, 34, 3, 34, 455, 8, 34, 1, 34, 1, 34, 1, 34, 1, 34, 1, 34, 5, 34, 462, 8, 34, 10, 34, 12, 34, 465, 9, 34, 1, 34, 1, 34, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 3, 35, 476, 8, 35, 1, 36, 1, 36, 1, 36, 1, 36, 3, 36, 482, 8, 36, 1, 36, 1, 36, 1, 36, 3, 36, 487, 8, 36, 1, 37, 1, 37, 1, 37, 1, 38, 1, 38, 1, 38, 1, 39, 1, 39, 1, 39, 3, 39, 498, 8, 39, 1, 40, 1, 40, 1, 40, 1, 40, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 43, 1, 43, 1, 43, 1, 43, 1, 43, 1, 44, 1, 44, 1, 44, 1, 44, 1, 44, 1, 45, 1, 45, 1, 46, 1, 46, 1, 47, 1, 47, 1, 47, 3, 47, 537, 8, 47, 1, 48, 1, 48, 1, 48, 1, 48, 1, 49, 1, 49, 1, 49, 1, 49, 1, 50, 1, 50, 1, 50, 1, 50, 3, 50, 551, 8, 50, 1, 50, 1, 50, 3, 50, 555, 8, 50, 1, 50, 1, 50, 1, 51, 1, 51, 1, 51, 1, 51, 1, 51, 3, 51, 564, 8, 51, 1, 52, 1, 52, 3, 52, 568, 8, 52, 1, 52, 1, 52, 3, 52, 572, 8, 52, 1, 52, 1, 52, 1, 53, 1, 53, 1, 53, 1, 53, 1, 54, 1, 54, 4, 54, 582, 8, 54, 11, 54, 12, 54, 583, 1, 54, 3, 54, 587, 8, 54, 1, 54, 1, 54, 1, 55, 1, 55, 1, 55, 1, 55, 1, 56, 1, 56, 1, 56, 5, 56, 598, 8, 56, 10, 56, 12, 56, 601, 9, 56, 1, 56, 3, 56, 604, 8, 56, 1, 57, 1, 57, 3, 57, 608, 8, 57, 1, 58, 1, 58, 1, 58, 1, 58, 1, 58, 1, 58, 1, 58, 1, 58, 1, 58, 1, 59, 1, 59, 1, 60, 1, 60, 1, 60, 1, 61, 1, 61, 3, 61, 626, 8, 61, 1, 62, 1, 62, 1, 62, 1, 62, 5, 62, 632, 8, 62, 10, 62, 12, 62, 635, 9, 62, 1, 62, 3, 62, 638, 8, 62, 1, 62, 1, 62, 1, 63, 1, 63, 1, 63, 1, 63, 1, 64, 1, 64, 1, 65, 1, 65, 1, 65, 1, 66, 1, 66, 1, 66, 3, 66, 654, 8, 66, 1, 66, 0, 0, 67, 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44, 46, 48, 50, 52, 54, 56, 58, 60, 62, 64, 66, 68, 70, 72, 74, 76, 78, 80, 82, 84, 86, 88, 90, 92, 94, 96, 98, 100, 102, 104, 106, 108, 110, 112, 114, 116, 118, 120, 122, 124, 126, 128, 130, 132, 0, 8, 1, 0, 31, 36, 1, 0, 38, 40, 1, 0, 54, 55, 2, 0, 2, 3, 5, 13, 2, 0, 4, 4, 14, 17, 2, 0, 74, 74, 88, 88, 1, 0, 84, 85, 1, 0, 59, 60, 675, 0, 137, 1, 0, 0, 0, 2, 150, 1, 0, 0, 0, 4, 154, 1, 0, 0, 0, 6, 160, 1, 0, 0, 0, 8, 186, 1, 0, 0, 0, 10, 194, 1, 0, 0, 0, 12, 198, 1, 0, 0, 0, 14, 200, 1, 0, 0, 0, 16, 204, 1, 0, 0, 0, 18, 208, 1, 0, 0, 0, 20, 216, 1, 0, 0, 0, 22, 229, 1, 0, 0, 0, 24, 260, 1, 0, 0, 0, 26, 283, 1, 0, 0, 0, 28, 298, 1, 0, 0, 0, 30, 301, 1, 0, 0, 0, 32, 305, 1, 0, 0, 0, 34, 312, 1, 0, 0, 0, 36, 319, 1, 0, 0, 0, 38, 327, 1, 0, 0, 0, 40, 341, 1, 0, 0, 0, 42, 355, 1, 0, 0, 0, 44, 367, 1, 0, 0, 0, 46, 384, 1, 0, 0, 0, 48, 386, 1, 0, 0, 0, 50, 391, 1, 0, 0, 0, 52, 396, 1, 0, 0, 0, 54, 401, 1, 0, 0, 0, 56, 409, 1, 0, 0, 0, 58, 411, 1, 0, 0, 0, 60, 416, 1, 0, 0, 0, 62, 421, 1, 0, 0, 0, 64, 426, 1, 0, 0, 0, 66, 436, 1, 0, 0, 0, 68, 452, 1, 0, 0, 0, 70, 475, 1, 0, 0, 0, 72, 477, 1, 0, 0, 0, 74, 488, 1, 0, 0, 0, 76, 491, 1, 0, 0, 0, 78, 494, 1, 0, 0, 0, 80, 499, 1, 0, 0, 0, 82, 503, 1, 0, 0, 0, 84, 510, 1, 0, 0, 0, 86, 519, 1, 0, 0, 0, 88, 524, 1, 0, 0, 0, 90, 529, 1, 0, 0, 0, 92, 531, 1, 0, 0, 0, 94, 536, 1, 0, 0, 0, 96, 538, 1, 0, 0, 0, 98, 542, 1, 0, 0, 0, 100, 546, 1, 0, 0, 0, 102, 563, 1, 0, 0, 0, 104, 565, 1, 0, 0, 0, 106, 575, 1, 0, 0, 0, 108, 579, 1, 0, 0, 0, 110, 590, 1, 0, 0, 0, 112, 594, 1, 0, 0, 0, 114, 607, 1, 0, 0, 0, 116, 609, 1, 0, 0, 0, 118, 618, 1, 0, 0, 0, 120, 620, 1, 0, 0, 0, 122, 625, 1, 0, 0, 0, 124, 627, 1, 0, 0, 0, 126, 641, 1, 0, 0, 0, 128, 645, 1, 0, 0, 0, 130, 647, 1, 0, 0, 0, 132, 653, 1, 0, 0, 0, 134, 136, 3, 2, 1, 0, 135, 134, 1, 0, 0, 0, 136, 139, 1, 0, 0, 0, 137, 135, 1, 0, 0, 0, 137, 138, 1, 0, 0, 0, 138, 145, 1, 0, 0, 0, 139, 137, 1, 0, 0, 0, 140, 144, 3, 6, 3, 0, 141, 144, 3, 94, 47, 0, 142, 144, 3, 4, 2, 0, 143, 140, 1, 0, 0, 0, 143, 141, 1, 0, 0, 0, 143, 142, 1, 0, 0, 0, 144, 147, 1, 0, 0, 0, 145, 143, 1, 0, 0, 0, 145, 146, 1, 0, 0, 0, 146, 148, 1, 0, 0, 0, 147, 145, 1, 0, 0, 0, 148, 149, 5, 0, 0, 1, 149, 1, 1, 0, 0, 0, 150, 151, 5, 22, 0, 0, 151, 152, 5, 59, 0, 0, 152, 153, 5, 1, 0, 0, 153, 3, 1, 0, 0, 0, 154, 155, 5, 23, 0, 0, 155, 156, 5, 71, 0, 0, 156, 157, 5, 4, 0, 0, 157, 158, 3, 102, 51, 0, 158, 159, 5, 1, 0, 0, 159, 5, 1, 0, 0, 0, 160, 161, 5, 24, 0, 0, 161, 162, 5, 71, 0, 0, 162, 164, 5, 79, 0, 0, 163, 165, 5, 72, 0, 0, 164, 163, 1, 0, 0, 0, 164, 165, 1, 0, 0, 0, 165, 170, 1, 0, 0, 0, 166, 167, 5, 81, 0, 0, 167, 169, 5, 72, 0, 0, 168, 166, 1, 0, 0, 0, 169, 172, 1, 0, 0, 0, 170, 168, 1, 0, 0, 0, 170, 171, 1, 0, 0, 0, 171, 173, 1, 0, 0, 0, 172, 170, 1, 0, 0, 0, 173, 174, 5, 80, 0, 0, 174, 175, 3, 108, 54, 0, 175, 7, 1, 0, 0, 0, 176, 187, 3, 4, 2, 0, 177, 187, 3, 10, 5, 0, 178, 187, 3, 20, 10, 0, 179, 187, 3, 22, 11, 0, 180, 187, 3, 38, 19, 0, 181, 187, 3, 40, 20, 0, 182, 187, 3, 64, 32, 0, 183, 187, 3, 66, 33, 0, 184, 187, 3, 68, 34, 0, 185, 187, 3, 18, 9, 0, 186, 176, 1, 0, 0, 0, 186, 177, 1, 0, 0, 0, 186, 178, 1, 0, 0, 0, 186, 179, 1, 0, 0, 0, 186, 180, 1, 0, 0, 0, 186, 181, 1, 0, 0, 0, 186, 182, 1, 0, 0, 0, 186, 183, 1, 0, 0, 0, 186, 184, 1, 0, 0, 0, 186, 185, 1, 0, 0, 0, 187, 9, 1, 0, 0, 0, 188, 195, 3, 104, 52, 0, 189, 195, 3, 120, 60, 0, 190, 195, 3, 12, 6, 0, 191, 195, 3, 14, 7, 0, 192, 195, 3, 16, 8, 0, 193, 195, 3, 70, 35, 0, 194, 188, 1, 0, 0, 0, 194, 189, 1, 0, 0, 0, 194, 190, 1, 0, 0, 0, 194, 191, 1, 0, 0, 0, 194, 192, 1, 0, 0, 0, 194, 193, 1, 0, 0, 0, 195, 196, 1, 0, 0, 0, 196, 197, 5, 1, 0, 0, 197, 11, 1, 0, 0, 0, 198, 199, 7, 0, 0, 0, 199, 13, 1, 0, 0, 0, 200, 201, 5, 20, 0, 0, 201, 202, 5, 84, 0, 0, 202, 203, 5, 71, 0, 0, 203, 15, 1, 0, 0, 0, 204, 205, 5, 21, 0, 0, 205, 206, 5, 84, 0, 0, 206, 207, 5, 71, 0, 0, 207, 17, 1, 0, 0, 0, 208, 209, 5, 73, 0, 0, 209, 211, 5, 79, 0, 0, 210, 212, 3, 112, 56, 0, 211, 210, 1, 0, 0, 0, 211, 212, 1, 0, 0, 0, 212, 213, 1, 0, 0, 0, 213, 214, 5, 80, 0, 0, 214, 215, 5, 1, 0, 0, 215, 19, 1, 0, 0, 0, 216, 217, 5, 29, 0, 0, 217, 218, 5, 79, 0, 0, 218, 219, 3, 130, 65, 0, 219, 220, 5, 80, 0, 0, 220, 224, 5, 86, 0, 0, 221, 223, 3, 10, 5, 0, 222, 221, 1, 0, 0, 0, 223, 226, 1, 0, 0, 0, 224, 222, 1, 0, 0, 0, 224, 225, 1, 0, 0, 0, 225, 227, 1, 0, 0, 0, 226, 224, 1, 0, 0, 0, 227, 228, 5, 87, 0, 0, 228, 21, 1, 0, 0, 0, 229, 231, 5, 25, 0, 0, 230, 232, 5, 19, 0, 0, 231, 230, 1, 0, 0, 0, 231, 232, 1, 0, 0, 0, 232, 233, 1, 0, 0, 0, 233, 234, 5, 79, 0, 0, 234, 239, 3, 28, 14, 0, 235, 236, 5, 18, 0, 0, 236, 238, 3, 28, 14, 0, 237, 235, 1, 0, 0, 0, 238, 241, 1, 0, 0, 0, 239, 237, 1, 0, 0, 0, 239, 240, 1, 0, 0, 0, 240, 242, 1, 0, 0, 0, 241, 239, 1, 0, 0, 0, 242, 243, 5, 80, 0, 0, 243, 247, 5, 86, 0, 0, 244, 246, 3, 8, 4, 0, 245, 244, 1, 0, 0, 0, 246, 249, 1, 0, 0, 0, 247, 245, 1, 0, 0, 0, 247, 248, 1, 0, 0, 0, 248, 250, 1, 0, 0, 0, 249, 247, 1, 0, 0, 0, 250, 254, 5, 87, 0, 0, 251, 253, 3, 24, 12, 0, 252, 251, 1, 0, 0, 0, 253, 256, 1, 0, 0, 0, 254, 252, 1, 0, 0, 0, 254, 255, 1, 0, 0, 0, 255, 258, 1, 0, 0, 0, 256, 254, 1, 0, 0, 0, 257, 259, 3, 26, 13, 0, 258, 257, 1, 0, 0, 0, 258, 259, 1, 0, 0, 0, 259, 23, 1, 0, 0, 0, 260, 262, 5, 26, 0, 0, 261, 263, 5, 19, 0, 0, 262, 261, 1, 0, 0, 0, 262, 263, 1, 0, 0, 0, 263, 264, 1, 0, 0, 0, 264, 265, 5, 79, 0, 0, 265, 270, 3, 28, 14, 0, 266, 267, 5, 18, 0, 0, 267, 269, 3, 28, 14, 0, 268, 266, 1, 0, 0, 0, 269, 272, 1, 0, 0, 0, 270, 268, 1, 0, 0, 0, 270, 271, 1, 0, 0, 0, 271, 273, 1, 0, 0, 0, 272, 270, 1, 0, 0, 0, 273, 274, 5, 80, 0, 0, 274, 278, 5, 86, 0, 0, 275, 277, 3, 8, 4, 0, 276, 275, 1, 0, 0, 0, 277, 280, 1, 0, 0, 0, 278, 276, 1, 0, 0, 0, 278, 279, 1, 0, 0, 0, 279, 281, 1, 0, 0, 0, 280, 278, 1, 0, 0, 0, 281, 282, 5, 87, 0, 0, 282, 25, 1, 0, 0, 0, 283, 284, 5, 27, 0, 0, 284, 288, 5, 86, 0, 0, 285, 287, 3, 8, 4, 0, 286, 285, 1, 0, 0, 0, 287, 290, 1, 0, 0, 0, 288, 286, 1, 0, 0, 0, 288, 289, 1, 0, 0, 0, 289, 291, 1, 0, 0, 0, 290, 288, 1, 0, 0, 0, 291, 292, 5, 87, 0, 0, 292, 27, 1, 0, 0, 0, 293, 299, 3, 32, 16, 0, 294, 299, 3, 34, 17, 0, 295, 299, 3, 30, 15, 0, 296, 299, 3, 36, 18, 0, 297, 299, 3, 104, 52, 0, 298, 293, 1, 0, 0, 0, 298, 294, 1, 0, 0, 0, 298, 295, 1, 0, 0, 0, 298, 296, 1, 0, 0, 0, 298, 297, 1, 0, 0, 0, 299, 29, 1, 0, 0, 0, 300, 302, 5, 19, 0, 0, 301, 300, 1, 0, 0, 0, 301, 302, 1, 0, 0, 0, 302, 303, 1, 0, 0, 0, 303, 304, 7, 1, 0, 0, 304, 31, 1, 0, 0, 0, 305, 306, 3, 102, 51, 0, 306, 309, 3, 90, 45, 0, 307, 310, 3, 86, 43, 0, 308, 310, 3, 102, 51, 0, 309, 307, 1, 0, 0, 0, 309, 308, 1, 0, 0, 0, 310, 33, 1, 0, 0, 0, 311, 313, 5, 19, 0, 0, 312, 311, 1, 0, 0, 0, 312, 313, 1, 0, 0, 0, 313, 314, 1, 0, 0, 0, 314, 315, 3, 102, 51, 0, 315, 316, 5, 57, 0, 0, 316, 317, 5, 74, 0, 0, 317, 318, 5, 58, 0, 0, 318, 35, 1, 0, 0, 0, 319, 320, 3, 88, 44, 0, 320, 321, 3, 90, 45, 0, 321, 322, 5, 57, 0, 0, 322, 323, 5, 74, 0, 0, 323, 324, 5, 81, 0, 0, 324, 325, 5, 74, 0, 0, 325, 326, 5, 58, 0, 0, 326, 37, 1, 0, 0, 0, 327, 328, 5, 30, 0, 0, 328, 329, 5, 79, 0, 0, 329, 330, 3, 46, 23, 0, 330, 331, 5, 80, 0, 0, 331, 336, 5, 86, 0, 0, 332, 335, 3, 44, 22, 0, 333, 335, 3, 42, 21, 0, 334, 332, 1, 0, 0, 0, 334, 333, 1, 0, 0, 0, 335, 338, 1, 0, 0, 0, 336, 334, 1, 0, 0, 0, 336, 337, 1, 0, 0, 0, 337, 339, 1, 0, 0, 0, 338, 336, 1, 0, 0, 0, 339, 340, 5, 87, 0, 0, 340, 39, 1, 0, 0, 0, 341, 342, 7, 2, 0, 0, 342, 343, 5, 79, 0, 0, 343, 344, 3, 102, 51, 0, 344, 345, 5, 80, 0, 0, 345, 350, 5, 86, 0, 0, 346, 349, 3, 44, 22, 0, 347, 349, 3, 42, 21, 0, 348, 346, 1, 0, 0, 0, 348, 347, 1, 0, 0, 0, 349, 352, 1, 0, 0, 0, 350, 348, 1, 0, 0, 0, 350, 351, 1, 0, 0, 0, 351, 353, 1, 0, 0, 0, 352, 350, 1, 0, 0, 0, 353, 354, 5, 87, 0, 0, 354, 41, 1, 0, 0, 0, 355, 356, 5, 46, 0, 0, 356, 357, 3, 56, 28, 0, 357, 365, 5, 82, 0, 0, 358, 360, 3, 8, 4, 0, 359, 358, 1, 0, 0, 0, 360, 363, 1, 0, 0, 0, 361, 359, 1, 0, 0, 0, 361, 362, 1, 0, 0, 0, 362, 366, 1, 0, 0, 0, 363, 361, 1, 0, 0, 0, 364, 366, 3, 102, 51, 0, 365, 361, 1, 0, 0, 0, 365, 364, 1, 0, 0, 0, 366, 43, 1, 0, 0, 0, 367, 368, 5, 47, 0, 0, 368, 376, 5, 82, 0, 0, 369, 371, 3, 8, 4, 0, 370, 369, 1, 0, 0, 0, 371, 374, 1, 0, 0, 0, 372, 370, 1, 0, 0, 0, 372, 373, 1, 0, 0, 0, 373, 377, 1, 0, 0, 0, 374, 372, 1, 0, 0, 0, 375, 377, 3, 102, 51, 0, 376, 372, 1, 0, 0, 0, 376, 375, 1, 0, 0, 0, 377, 45, 1, 0, 0, 0, 378, 385, 3, 102, 51, 0, 379, 385, 3, 104, 52, 0, 380, 385, 3, 48, 24, 0, 381, 385, 3, 50, 25, 0, 382, 385, 3, 52, 26, 0, 383, 385, 3, 54, 27, 0, 384, 378, 1, 0, 0, 0, 384, 379, 1, 0, 0, 0, 384, 380, 1, 0, 0, 0, 384, 381, 1, 0, 0, 0, 384, 382, 1, 0, 0, 0, 384, 383, 1, 0, 0, 0, 385, 47, 1, 0, 0, 0, 386, 387, 3, 88, 44, 0, 387, 388, 5, 57, 0, 0, 388, 389, 5, 74, 0, 0, 389, 390, 5, 58, 0, 0, 390, 49, 1, 0, 0, 0, 391, 392, 5, 41, 0, 0, 392, 393, 5, 79, 0, 0, 393, 394, 3, 102, 51, 0, 394, 395, 5, 80, 0, 0, 395, 51, 1, 0, 0, 0, 396, 397, 5, 43, 0, 0, 397, 398, 5, 79, 0, 0, 398, 399, 3, 102, 51, 0, 399, 400, 5, 80, 0, 0, 400, 53, 1, 0, 0, 0, 401, 402, 5, 42, 0, 0, 402, 403, 5, 79, 0, 0, 403, 404, 5, 80, 0, 0, 404, 55, 1, 0, 0, 0, 405, 410, 3, 102, 51, 0, 406, 410, 3, 58, 29, 0, 407, 410, 3, 60, 30, 0, 408, 410, 3, 62, 31, 0, 409, 405, 1, 0, 0, 0, 409, 406, 1, 0, 0, 0, 409, 407, 1, 0, 0, 0, 409, 408, 1, 0, 0, 0, 410, 57, 1, 0, 0, 0, 411, 412, 5, 45, 0, 0, 412, 413, 5, 79, 0, 0, 413, 414, 3, 102, 51, 0, 414, 415, 5, 80, 0, 0, 415, 59, 1, 0, 0, 0, 416, 417, 5, 44, 0, 0, 417, 418, 5, 79, 0, 0, 418, 419, 3, 102, 51, 0, 419, 420, 5, 80, 0, 0, 420, 61, 1, 0, 0, 0, 421, 424, 3, 90, 45, 0, 422, 425, 3, 86, 43, 0, 423, 425, 3, 102, 51, 0, 424, 422, 1, 0, 0, 0, 424, 423, 1, 0, 0, 0, 425, 63, 1, 0, 0, 0, 426, 427, 5, 28, 0, 0, 427, 431, 5, 86, 0, 0, 428, 430, 3, 8, 4, 0, 429, 428, 1, 0, 0, 0, 430, 433, 1, 0, 0, 0, 431, 429, 1, 0, 0, 0, 431, 432, 1, 0, 0, 0, 432, 434, 1, 0, 0, 0, 433, 431, 1, 0, 0, 0, 434, 435, 5, 87, 0, 0, 435, 65, 1, 0, 0, 0, 436, 437, 5, 68, 0, 0, 437, 438, 5, 79, 0, 0, 438, 439, 3, 10, 5, 0, 439, 440, 3, 28, 14, 0, 440, 441, 5, 1, 0, 0, 441, 442, 3, 10, 5, 0, 442, 443, 5, 80, 0, 0, 443, 447, 5, 86, 0, 0, 444, 446, 3, 8, 4, 0, 445, 444, 1, 0, 0, 0, 446, 449, 1, 0, 0, 0, 447, 445, 1, 0, 0, 0, 447, 448, 1, 0, 0, 0, 448, 450, 1, 0, 0, 0, 449, 447, 1, 0, 0, 0, 450, 451, 5, 87, 0, 0, 451, 67, 1, 0, 0, 0, 452, 454, 5, 56, 0, 0, 453, 455, 5, 19, 0, 0, 454, 453, 1, 0, 0, 0, 454, 455, 1, 0, 0, 0, 455, 456, 1, 0, 0, 0, 456, 457, 5, 79, 0, 0, 457, 458, 3, 28, 14, 0, 458, 459, 5, 80, 0, 0, 459, 463, 5, 86, 0, 0, 460, 462, 3, 8, 4, 0, 461, 460, 1, 0, 0, 0, 462, 465, 1, 0, 0, 0, 463, 461, 1, 0, 0, 0, 463, 464, 1, 0, 0, 0, 464, 466, 1, 0, 0, 0, 465, 463, 1, 0, 0, 0, 466, 467, 5, 87, 0, 0, 467, 69, 1, 0, 0, 0, 468, 476, 3, 72, 36, 0, 469, 476, 3, 74, 37, 0, 470, 476, 3, 76, 38, 0, 471, 476, 3, 78, 39, 0, 472, 476, 3, 80, 40, 0, 473, 476, 3, 82, 41, 0, 474, 476, 3, 84, 42, 0, 475, 468, 1, 0, 0, 0, 475, 469, 1, 0, 0, 0, 475, 470, 1, 0, 0, 0, 475, 471, 1, 0, 0, 0, 475, 472, 1, 0, 0, 0, 475, 473, 1, 0, 0, 0, 475, 474, 1, 0, 0, 0, 476, 71, 1, 0, 0, 0, 477, 481, 3, 102, 51, 0, 478, 479, 5, 57, 0, 0, 479, 480, 5, 74, 0, 0, 480, 482, 5, 58, 0, 0, 481, 478, 1, 0, 0, 0, 481, 482, 1, 0, 0, 0, 482, 483, 1, 0, 0, 0, 483, 486, 3, 92, 46, 0, 484, 487, 3, 102, 51, 0, 485, 487, 3, 86, 43, 0, 486, 484, 1, 0, 0, 0, 486, 485, 1, 0, 0, 0, 487, 73, 1, 0, 0, 0, 488, 489, 5, 48, 0, 0, 489, 490, 3, 102, 51, 0, 490, 75, 1, 0, 0, 0, 491, 492, 5, 50, 0, 0, 492, 493, 3, 102, 51, 0, 493, 77, 1, 0, 0, 0, 494, 497, 5, 49, 0, 0, 495, 498, 5, 52, 0, 0, 496, 498, 3, 88, 44, 0, 497, 495, 1, 0, 0, 0, 497, 496, 1, 0, 0, 0, 498, 79, 1, 0, 0, 0, 499, 500, 5, 53, 0, 0, 500, 501, 5, 4, 0, 0, 501, 502, 3, 102, 51, 0, 502, 81, 1, 0, 0, 0, 503, 504, 5, 43, 0, 0, 504, 505, 5, 79, 0, 0, 505, 506, 3, 102, 51, 0, 506, 507, 5, 80, 0, 0, 507, 508, 5, 4, 0, 0, 508, 509, 3, 102, 51, 0, 509, 83, 1, 0, 0, 0, 510, 511, 3, 102, 51, 0, 511, 512, 5, 4, 0, 0, 512, 513, 5, 51, 0, 0, 513, 514, 5, 57, 0, 0, 514, 515, 5, 74, 0, 0, 515, 516, 5, 81, 0, 0, 516, 517, 5, 74, 0, 0, 517, 518, 5, 58, 0, 0, 518, 85, 1, 0, 0, 0, 519, 520, 5, 37, 0, 0, 520, 521, 5, 79, 0, 0, 521, 522, 3, 102, 51, 0, 522, 523, 5, 80, 0, 0, 523, 87, 1, 0, 0, 0, 524, 525, 5, 51, 0, 0, 525, 526, 5, 79, 0, 0, 526, 527, 3, 102, 51, 0, 527, 528, 5, 80, 0, 0, 528, 89, 1, 0, 0, 0, 529, 530, 7, 3, 0, 0, 530, 91, 1, 0, 0, 0, 531, 532, 7, 4, 0, 0, 532, 93, 1, 0, 0, 0, 533, 537, 3, 98, 49, 0, 534, 537, 3, 96, 48, 0, 535, 537, 3, 100, 50, 0, 536, 533, 1, 0, 0, 0, 536, 534, 1, 0, 0, 0, 536, 535, 1, 0, 0, 0, 537, 95, 1, 0, 0, 0, 538, 539, 5, 63, 0, 0, 539, 540, 5, 74, 0, 0, 540, 541, 3, 108, 54, 0, 541, 97, 1, 0, 0, 0, 542, 543, 5, 62, 0, 0, 543, 544, 5, 71, 0, 0, 544, 545, 3, 108, 54, 0, 545, 99, 1, 0, 0, 0, 546, 547, 5, 63, 0, 0, 547, 548, 5, 74, 0, 0, 548, 550, 3, 132, 66, 0, 549, 551, 5, 79, 0, 0, 550, 549, 1, 0, 0, 0, 550, 551, 1, 0, 0, 0, 551, 552, 1, 0, 0, 0, 552, 554, 3, 102, 51, 0, 553, 555, 5, 80, 0, 0, 554, 553, 1, 0, 0, 0, 554, 555, 1, 0, 0, 0, 555, 556, 1, 0, 0, 0, 556, 557, 3, 108, 54, 0, 557, 101, 1, 0, 0, 0, 558, 564, 5, 88, 0, 0, 559, 564, 5, 74, 0, 0, 560, 564, 5, 71, 0, 0, 561, 564, 5, 72, 0, 0, 562, 564, 3, 122, 61, 0, 563, 558, 1, 0, 0, 0, 563, 559, 1, 0, 0, 0, 563, 560, 1, 0, 0, 0, 563, 561, 1, 0, 0, 0, 563, 562, 1, 0, 0, 0, 564, 103, 1, 0, 0, 0, 565, 567, 5, 71, 0, 0, 566, 568, 3, 106, 53, 0, 567, 566, 1, 0, 0, 0, 567, 568, 1, 0, 0, 0, 568, 569, 1, 0, 0, 0, 569, 571, 5, 79, 0, 0, 570, 572, 3, 112, 56, 0, 571, 570, 1, 0, 0, 0, 571, 572, 1, 0, 0, 0, 572, 573, 1, 0, 0, 0, 573, 574, 5, 80, 0, 0, 574, 105, 1, 0, 0, 0, 575, 576, 5, 5, 0, 0, 576, 577, 3, 130, 65, 0, 577, 578, 5, 6, 0, 0, 578, 107, 1, 0, 0, 0, 579, 586, 5, 86, 0, 0, 580, 582, 3, 8, 4, 0, 581, 580, 1, 0, 0, 0, 582, 583, 1, 0, 0, 0, 583, 581, 1, 0, 0, 0, 583, 584, 1, 0, 0, 0, 584, 587, 1, 0, 0, 0, 585, 587, 3, 110, 55, 0, 586, 581, 1, 0, 0, 0, 586, 585, 1, 0, 0, 0, 587, 588, 1, 0, 0, 0, 588, 589, 5, 87, 0, 0, 589, 109, 1, 0, 0, 0, 590, 591, 5, 67, 0, 0, 591, 592, 5, 69, 0, 0, 592, 593, 5, 1, 0, 0, 593, 111, 1, 0, 0, 0, 594, 599, 3, 114, 57, 0, 595, 596, 5, 81, 0, 0, 596, 598, 3, 114, 57, 0, 597, 595, 1, 0, 0, 0, 598, 601, 1, 0, 0, 0, 599, 597, 1, 0, 0, 0, 599, 600, 1, 0, 0, 0, 600, 603, 1, 0, 0, 0, 601, 599, 1, 0, 0, 0, 602, 604, 5, 81, 0, 0, 603, 602, 1, 0, 0, 0, 603, 604, 1, 0, 0, 0, 604, 113, 1, 0, 0, 0, 605, 608, 3, 102, 51, 0, 606, 608, 3, 116, 58, 0, 607, 605, 1, 0, 0, 0, 607, 606, 1, 0, 0, 0, 608, 115, 1, 0, 0, 0, 609, 610, 5, 70, 0, 0, 610, 611, 5, 5, 0, 0, 611, 612, 5, 59, 0, 0, 612, 613, 5, 81, 0, 0, 613, 614, 3, 118, 59, 0, 614, 615, 5, 81, 0, 0, 615, 616, 3, 118, 59, 0, 616, 617, 5, 6, 0, 0, 617, 117, 1, 0, 0, 0, 618, 619, 7, 5, 0, 0, 619, 119, 1, 0, 0, 0, 620, 621, 7, 6, 0, 0, 621, 622, 5, 71, 0, 0, 622, 121, 1, 0, 0, 0, 623, 626, 3, 128, 64, 0, 624, 626, 3, 124, 62, 0, 625, 623, 1, 0, 0, 0, 625, 624, 1, 0, 0, 0, 626, 123, 1, 0, 0, 0, 627, 628, 5, 86, 0, 0, 628, 633, 3, 126, 63, 0, 629, 630, 5, 81, 0, 0, 630, 632, 3, 126, 63, 0, 631, 629, 1, 0, 0, 0, 632, 635, 1, 0, 0, 0, 633, 631, 1, 0, 0, 0, 633, 634, 1, 0, 0, 0, 634, 637, 1, 0, 0, 0, 635, 633, 1, 0, 0, 0, 636, 638, 5, 81, 0, 0, 637, 636, 1, 0, 0, 0, 637, 638, 1, 0, 0, 0, 638, 639, 1, 0, 0, 0, 639, 640, 5, 87, 0, 0, 640, 125, 1, 0, 0, 0, 641, 642, 5, 71, 0, 0, 642, 643, 5, 4, 0, 0, 643, 644, 3, 128, 64, 0, 644, 127, 1, 0, 0, 0, 645, 646, 7, 7, 0, 0, 646, 129, 1, 0, 0, 0, 647, 648, 5, 71, 0, 0, 648, 649, 3, 102, 51, 0, 649, 131, 1, 0, 0, 0, 650, 651, 5, 68, 0, 0, 651, 654, 5, 71, 0, 0, 652, 654, 5, 61, 0, 0, 653, 650, 1, 0, 0, 0, 653, 652, 1, 0, 0, 0, 654, 133, 1, 0, 0, 0, 56, 137, 143, 145, 164, 170, 186, 194, 211, 224, 231, 239, 247, 254, 258, 262, 270, 278, 288, 298, 301, 309, 312, 334, 336, 348, 350, 361, 365, 372, 376, 384, 409, 424, 431, 447, 454, 463, 475, 481, 486, 497, 536, 550, 554, 563, 567, 571, 583, 586, 599, 603, 607, 625, 633, 637, 653]