#pragma lib
[m6w6/ext-psi] / src / parser_proc.c
1 /* A Bison parser, made by GNU Bison 3.2. */
2
3 /* Skeleton implementation for Bison GLR parsers in C
4
5 Copyright (C) 2002-2015, 2018 Free Software Foundation, Inc.
6
7 This program is free software: you can redistribute it and/or modify
8 it under the terms of the GNU General Public License as published by
9 the Free Software Foundation, either version 3 of the License, or
10 (at your option) any later version.
11
12 This program is distributed in the hope that it will be useful,
13 but WITHOUT ANY WARRANTY; without even the implied warranty of
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 GNU General Public License for more details.
16
17 You should have received a copy of the GNU General Public License
18 along with this program. If not, see <http://www.gnu.org/licenses/>. */
19
20 /* As a special exception, you may create a larger work that contains
21 part or all of the Bison parser skeleton and distribute that work
22 under terms of your choice, so long as that work isn't itself a
23 parser generator using the skeleton or a modified version thereof
24 as a parser skeleton. Alternatively, if you modify or redistribute
25 the parser skeleton itself, you may (at your option) remove this
26 special exception, which will cause the skeleton and the resulting
27 Bison output files to be licensed under the GNU General Public
28 License without this special exception.
29
30 This special exception was added by the Free Software Foundation in
31 version 2.2 of Bison. */
32
33 /* C GLR parser skeleton written by Paul Hilfinger. */
34
35 /* Undocumented macros, especially those whose name start with YY_,
36 are private implementation details. Do not rely on them. */
37
38 /* Identify Bison output. */
39 #define YYBISON 1
40
41 /* Bison version. */
42 #define YYBISON_VERSION "3.2"
43
44 /* Skeleton name. */
45 #define YYSKELETON_NAME "glr.c"
46
47 /* Pure parsers. */
48 #define YYPURE 1
49
50
51 /* "%code top" blocks. */
52 #line 1 "src/parser_proc_grammar.y" /* glr.c:221 */
53
54 #ifdef HAVE_CONFIG_H
55 # include "config.h"
56 #else
57 # include "php_config.h"
58 #endif
59
60 #line 61 "src/parser_proc.c" /* glr.c:221 */
61
62
63 /* Substitute the variable and function names. */
64 #define yyparse psi_parser_proc_parse
65 #define yylex psi_parser_proc_lex
66 #define yyerror psi_parser_proc_error
67 #define yydebug psi_parser_proc_debug
68
69
70
71
72 # ifndef YY_NULLPTR
73 # if defined __cplusplus
74 # if 201103L <= __cplusplus
75 # define YY_NULLPTR nullptr
76 # else
77 # define YY_NULLPTR 0
78 # endif
79 # else
80 # define YY_NULLPTR ((void*)0)
81 # endif
82 # endif
83
84 #include "parser_proc.h"
85
86 /* Enabling verbose error messages. */
87 #ifdef YYERROR_VERBOSE
88 # undef YYERROR_VERBOSE
89 # define YYERROR_VERBOSE 1
90 #else
91 # define YYERROR_VERBOSE 1
92 #endif
93
94 /* Default (constant) value used for initialization for null
95 right-hand sides. Unlike the standard yacc.c template, here we set
96 the default value of $$ to a zeroed-out value. Since the default
97 value is undefined, this behavior is technically correct. */
98 static YYSTYPE yyval_default;
99
100
101 /* Unqualified %code blocks. */
102 #line 9 "src/parser_proc_grammar.y" /* glr.c:261 */
103
104 #include <assert.h>
105 #include <stdarg.h>
106
107 #include "plist.h"
108 #include "parser.h"
109
110 #define YYDEBUG 1
111 #define PSI_PARSER_PROC_DEBUG 1
112
113 static int psi_parser_proc_lex(YYSTYPE *u, struct psi_parser *P, struct psi_plist *tokens, size_t *index);
114 static void psi_parser_proc_error(struct psi_parser *P, struct psi_plist *tokens, size_t *index, const char *msg);
115
116 static inline void psi_parser_proc_add_struct(struct psi_parser *P, struct psi_decl_struct *strct)
117 {
118 assert(strct);
119 if (!P->structs) {
120 P->structs = psi_plist_init((psi_plist_dtor) psi_decl_struct_free);
121 }
122 P->structs = psi_plist_add(P->structs, &strct);
123 }
124 static inline void psi_parser_proc_add_union(struct psi_parser *P, struct psi_decl_union *u)
125 {
126 assert(u);
127 if (!P->unions) {
128 P->unions = psi_plist_init((psi_plist_dtor) psi_decl_union_free);
129 }
130 P->unions = psi_plist_add(P->unions, &u);
131 }
132 static inline void psi_parser_proc_add_enum(struct psi_parser *P, struct psi_decl_enum *e)
133 {
134 assert(e);
135 if (!P->enums) {
136 P->enums = psi_plist_init((psi_plist_dtor) psi_decl_enum_free);
137 }
138 P->enums = psi_plist_add(P->enums, &e);
139 }
140 static inline void psi_parser_proc_add_typedef(struct psi_parser *P, struct psi_decl_arg *def)
141 {
142 assert(def);
143 if (!P->types) {
144 P->types = psi_plist_init((psi_plist_dtor) psi_decl_arg_free);
145 }
146 P->types = psi_plist_add(P->types, &def);
147 }
148 static inline void psi_parser_proc_add_const(struct psi_parser *P, struct psi_const *cnst) {
149 assert(cnst);
150 if (!P->consts) {
151 P->consts = psi_plist_init((psi_plist_dtor) psi_const_free);
152 }
153 P->consts = psi_plist_add(P->consts, &cnst);
154
155 }
156 static inline void psi_parser_proc_add_decl(struct psi_parser *P, struct psi_decl *decl) {
157 assert(decl);
158
159 if (psi_decl_is_blacklisted(decl->func->var->name->val)) {
160 psi_decl_free(&decl);
161 return;
162 }
163
164 if (!P->decls) {
165 P->decls = psi_plist_init((psi_plist_dtor) psi_decl_free);
166 }
167 P->decls = psi_plist_add(P->decls, &decl);
168 }
169 static inline void psi_parser_proc_add_decl_extvars(struct psi_parser *P, struct psi_plist *list) {
170 assert(list);
171 if (!P->vars) {
172 P->vars = psi_plist_init((psi_plist_dtor) psi_decl_extvar_free);
173 }
174 P->vars = psi_plist_add_r(P->vars, psi_plist_count(list), psi_plist_eles(list));
175 free(list);
176 }
177 static inline void psi_parser_proc_add_impl(struct psi_parser *P, struct psi_impl *impl) {
178 assert(impl);
179 if (!P->impls) {
180 P->impls = psi_plist_init((psi_plist_dtor) psi_impl_free);
181 }
182 P->impls = psi_plist_add(P->impls, &impl);
183 }
184 static inline void psi_parser_proc_add_lib(struct psi_parser *P, zend_string *lib) {
185 char *libname = strdup(lib->val);
186 P->file.libnames = psi_plist_add(P->file.libnames, &libname);
187 }
188
189 /* end code */
190
191 #line 192 "src/parser_proc.c" /* glr.c:261 */
192
193 #include <stdio.h>
194 #include <stdlib.h>
195 #include <string.h>
196
197 #ifndef YY_
198 # if defined YYENABLE_NLS && YYENABLE_NLS
199 # if ENABLE_NLS
200 # include <libintl.h> /* INFRINGES ON USER NAME SPACE */
201 # define YY_(Msgid) dgettext ("bison-runtime", Msgid)
202 # endif
203 # endif
204 # ifndef YY_
205 # define YY_(Msgid) Msgid
206 # endif
207 #endif
208
209 #ifndef YYFREE
210 # define YYFREE free
211 #endif
212 #ifndef YYMALLOC
213 # define YYMALLOC malloc
214 #endif
215 #ifndef YYREALLOC
216 # define YYREALLOC realloc
217 #endif
218
219 #define YYSIZEMAX ((size_t) -1)
220
221 #ifdef __cplusplus
222 typedef bool yybool;
223 # define yytrue true
224 # define yyfalse false
225 #else
226 /* When we move to stdbool, get rid of the various casts to yybool. */
227 typedef unsigned char yybool;
228 # define yytrue 1
229 # define yyfalse 0
230 #endif
231
232 #ifndef YYSETJMP
233 # include <setjmp.h>
234 # define YYJMP_BUF jmp_buf
235 # define YYSETJMP(Env) setjmp (Env)
236 /* Pacify Clang and ICC. */
237 # define YYLONGJMP(Env, Val) \
238 do { \
239 longjmp (Env, Val); \
240 YYASSERT (0); \
241 } while (yyfalse)
242 #endif
243
244 #ifndef YY_ATTRIBUTE
245 # if (defined __GNUC__ \
246 && (2 < __GNUC__ || (__GNUC__ == 2 && 96 <= __GNUC_MINOR__))) \
247 || defined __SUNPRO_C && 0x5110 <= __SUNPRO_C
248 # define YY_ATTRIBUTE(Spec) __attribute__(Spec)
249 # else
250 # define YY_ATTRIBUTE(Spec) /* empty */
251 # endif
252 #endif
253
254 #ifndef YY_ATTRIBUTE_PURE
255 # define YY_ATTRIBUTE_PURE YY_ATTRIBUTE ((__pure__))
256 #endif
257
258 #ifndef YY_ATTRIBUTE_UNUSED
259 # define YY_ATTRIBUTE_UNUSED YY_ATTRIBUTE ((__unused__))
260 #endif
261
262 #if !defined _Noreturn \
263 && (!defined __STDC_VERSION__ || __STDC_VERSION__ < 201112)
264 # if defined _MSC_VER && 1200 <= _MSC_VER
265 # define _Noreturn __declspec (noreturn)
266 # else
267 # define _Noreturn YY_ATTRIBUTE ((__noreturn__))
268 # endif
269 #endif
270
271 /* Suppress unused-variable warnings by "using" E. */
272 #if ! defined lint || defined __GNUC__
273 # define YYUSE(E) ((void) (E))
274 #else
275 # define YYUSE(E) /* empty */
276 #endif
277
278 #if defined __GNUC__ && ! defined __ICC && 407 <= __GNUC__ * 100 + __GNUC_MINOR__
279 /* Suppress an incorrect diagnostic about yylval being uninitialized. */
280 # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \
281 _Pragma ("GCC diagnostic push") \
282 _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")\
283 _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"")
284 # define YY_IGNORE_MAYBE_UNINITIALIZED_END \
285 _Pragma ("GCC diagnostic pop")
286 #else
287 # define YY_INITIAL_VALUE(Value) Value
288 #endif
289 #ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
290 # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
291 # define YY_IGNORE_MAYBE_UNINITIALIZED_END
292 #endif
293 #ifndef YY_INITIAL_VALUE
294 # define YY_INITIAL_VALUE(Value) /* Nothing. */
295 #endif
296
297
298 #ifndef YYASSERT
299 # define YYASSERT(Condition) ((void) ((Condition) || (abort (), 0)))
300 #endif
301
302 /* YYFINAL -- State number of the termination state. */
303 #define YYFINAL 166
304 /* YYLAST -- Last index in YYTABLE. */
305 #define YYLAST 8244
306
307 /* YYNTOKENS -- Number of terminals. */
308 #define YYNTOKENS 140
309 /* YYNNTS -- Number of nonterminals. */
310 #define YYNNTS 142
311 /* YYNRULES -- Number of rules. */
312 #define YYNRULES 638
313 /* YYNRULES -- Number of states. */
314 #define YYNSTATES 953
315 /* YYMAXRHS -- Maximum number of symbols on right-hand side of rule. */
316 #define YYMAXRHS 16
317 /* YYMAXLEFT -- Maximum number of symbols to the left of a handle
318 accessed by $0, $-1, etc., in any rule. */
319 #define YYMAXLEFT 0
320
321 /* YYTRANSLATE(X) -- Bison symbol number corresponding to X. */
322 #define YYUNDEFTOK 2
323 #define YYMAXUTOK 394
324
325 #define YYTRANSLATE(YYX) \
326 ((unsigned) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
327
328 /* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX. */
329 static const unsigned char yytranslate[] =
330 {
331 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
332 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
333 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
334 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
335 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
336 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
337 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
338 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
339 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
340 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
341 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
342 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
343 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
344 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
345 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
346 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
347 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
348 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
349 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
350 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
351 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
352 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
353 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
354 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
355 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
356 2, 2, 2, 2, 2, 2, 1, 2, 3, 4,
357 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
358 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
359 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
360 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
361 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
362 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
363 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
364 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
365 85, 86, 87, 88, 89, 90, 91, 92, 93, 94,
366 95, 96, 97, 98, 99, 100, 101, 102, 103, 104,
367 105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
368 115, 116, 117, 118, 119, 120, 121, 122, 123, 124,
369 125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
370 135, 136, 137, 138, 139
371 };
372
373 #if YYDEBUG
374 /* YYRLINE[YYN] -- source line where rule number YYN was defined. */
375 static const unsigned short yyrline[] =
376 {
377 0, 416, 416, 416, 416, 416, 416, 416, 416, 416,
378 416, 416, 416, 416, 416, 416, 416, 416, 416, 416,
379 417, 417, 417, 417, 418, 418, 418, 418, 418, 418,
380 418, 418, 418, 418, 418, 418, 418, 418, 418, 418,
381 418, 418, 418, 418, 418, 418, 419, 419, 419, 419,
382 419, 419, 419, 419, 419, 419, 419, 419, 419, 419,
383 419, 419, 419, 419, 419, 419, 419, 419, 419, 419,
384 419, 419, 419, 419, 419, 419, 419, 419, 419, 419,
385 419, 419, 419, 419, 419, 419, 419, 419, 419, 419,
386 419, 419, 419, 419, 419, 419, 419, 419, 419, 419,
387 419, 419, 419, 419, 419, 419, 419, 419, 419, 419,
388 419, 419, 419, 419, 419, 419, 419, 419, 419, 419,
389 419, 419, 419, 419, 419, 419, 419, 419, 419, 419,
390 419, 419, 419, 419, 419, 419, 419, 419, 419, 419,
391 419, 419, 419, 419, 419, 419, 419, 419, 419, 419,
392 419, 419, 419, 419, 419, 419, 419, 419, 419, 419,
393 419, 419, 419, 419, 420, 420, 420, 420, 420, 420,
394 420, 420, 420, 420, 420, 420, 420, 420, 420, 420,
395 420, 420, 420, 420, 420, 420, 420, 420, 420, 420,
396 420, 420, 420, 420, 420, 420, 420, 420, 420, 420,
397 420, 420, 420, 420, 420, 420, 420, 420, 420, 420,
398 420, 420, 420, 420, 420, 420, 420, 420, 420, 420,
399 420, 420, 420, 420, 420, 420, 420, 420, 420, 420,
400 420, 420, 420, 420, 420, 420, 420, 420, 420, 420,
401 420, 420, 420, 420, 420, 420, 420, 420, 420, 420,
402 420, 420, 420, 420, 420, 420, 420, 420, 420, 420,
403 420, 420, 420, 420, 420, 420, 420, 420, 420, 420,
404 420, 420, 420, 420, 420, 420, 420, 420, 420, 420,
405 424, 425, 428, 429, 432, 433, 434, 435, 441, 444,
406 447, 450, 453, 459, 462, 465, 468, 471, 477, 480,
407 486, 489, 495, 518, 522, 526, 531, 535, 539, 543,
408 550, 551, 555, 556, 560, 561, 562, 566, 567, 571,
409 572, 576, 577, 578, 582, 583, 587, 592, 597, 602,
410 611, 614, 617, 618, 624, 629, 637, 640, 644, 648,
411 655, 659, 663, 667, 672, 683, 694, 699, 704, 708,
412 714, 725, 728, 732, 740, 744, 750, 754, 761, 765,
413 769, 776, 777, 778, 782, 796, 802, 805, 811, 814,
414 820, 821, 829, 840, 849, 861, 862, 866, 876, 885,
415 897, 898, 901, 907, 908, 912, 916, 920, 925, 930,
416 938, 939, 940, 943, 949, 952, 955, 961, 962, 966,
417 969, 972, 978, 981, 984, 992, 1004, 1007, 1010, 1013,
418 1020, 1023, 1033, 1036, 1039, 1042, 1043, 1044, 1048, 1051,
419 1054, 1065, 1072, 1082, 1085, 1091, 1094, 1101, 1137, 1140,
420 1146, 1149, 1155, 1161, 1162, 1163, 1164, 1165, 1166, 1170,
421 1174, 1175, 1179, 1180, 1184, 1185, 1192, 1193, 1197, 1204,
422 1215, 1222, 1230, 1254, 1283, 1290, 1301, 1347, 1388, 1403,
423 1406, 1409, 1415, 1418, 1424, 1439, 1442, 1471, 1479, 1507,
424 1512, 1520, 1530, 1540, 1543, 1547, 1553, 1567, 1584, 1587,
425 1593, 1600, 1607, 1615, 1626, 1633, 1636, 1642, 1647, 1655,
426 1659, 1663, 1667, 1671, 1675, 1682, 1686, 1690, 1694, 1698,
427 1702, 1708, 1712, 1719, 1722, 1734, 1738, 1742, 1749, 1762,
428 1775, 1788, 1791, 1798, 1799, 1803, 1806, 1809, 1812, 1818,
429 1822, 1829, 1832, 1835, 1850, 1851, 1852, 1853, 1857, 1860,
430 1866, 1867, 1873, 1876, 1882, 1883, 1887, 1888, 1898, 1901,
431 1908, 1913, 1918, 1928, 1931, 1937, 1940, 1946, 1953, 1960,
432 1967, 1968, 1972, 1973, 1974, 1975, 1976, 1980, 1981, 1982,
433 1983, 1987, 1990, 1996, 1999, 2002, 2005, 2008, 2014, 2018,
434 2026, 2027, 2031, 2038, 2041, 2044, 2047, 2051, 2054, 2060,
435 2064, 2072, 2079, 2084, 2092, 2100, 2101, 2102, 2103, 2104,
436 2105, 2106, 2107, 2108, 2109, 2113, 2116, 2122, 2125, 2131,
437 2132, 2136, 2139, 2145, 2148, 2154, 2161, 2165, 2172, 2175,
438 2178, 2184, 2191, 2194, 2197, 2204, 2209, 2217, 2218, 2219,
439 2220, 2221, 2222, 2223, 2224, 2228, 2231, 2237, 2240, 2246,
440 2253, 2254, 2258, 2265, 2268, 2274, 2282, 2285, 2291
441 };
442 #endif
443
444 #if YYDEBUG || YYERROR_VERBOSE || 1
445 /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
446 First, the terminals, then, starting at YYNTOKENS, nonterminals. */
447 static const char *const yytname[] =
448 {
449 "\"end of file\"", "error", "$undefined", "BOOL", "CHAR", "SHORT",
450 "INT", "SIGNED", "UNSIGNED", "LONG", "FLOAT", "DOUBLE", "STRING",
451 "MIXED", "ARRAY", "OBJECT", "CALLABLE", "VOID", "ZVAL", "NULL", "TRUE",
452 "FALSE", "NAME", "NSNAME", "DOLLAR_NAME", "NUMBER", "QUOTED_STRING",
453 "QUOTED_CHAR", "SIZEOF", "VOLATILE", "\"end of line\"", "\";\"", "\"(\"",
454 "\")\"", "\",\"", "\":\"", "\"{\"", "\"}\"", "\"[\"", "\"]\"", "\"=\"",
455 "\"#\"", "\"|\"", "\"^\"", "\"&\"", "\"<<\"", "\">>\"", "\"+\"", "\"-\"",
456 "\"*\"", "\"/\"", "\"%\"", "\"<\"", "\">\"", "\">=\"", "\"<=\"",
457 "\"||\"", "\"&&\"", "\"==\"", "\"!=\"", "\"~\"", "\"!\"", "\".\"",
458 "\"\\\\\"", "\"...\"", "\"?\"", "PRAGMA", "PRAGMA_ONCE", "LINE", "ERROR",
459 "WARNING", "IF", "IFDEF", "IFNDEF", "ELSE", "ELIF", "ENDIF", "DEFINE",
460 "DEFINED", "UNDEF", "IMPORT", "INCLUDE", "INCLUDE_NEXT", "TYPEDEF",
461 "STRUCT", "UNION", "ENUM", "CONST", "LIB", "STATIC", "CALLBACK",
462 "FUNCTION", "LET", "SET", "TEMP", "FREE", "RETURN", "AS", "PRE_ASSERT",
463 "POST_ASSERT", "BOOLVAL", "INTVAL", "STRVAL", "PATHVAL", "STRLEN",
464 "FLOATVAL", "ARRVAL", "OBJVAL", "COUNT", "CALLOC", "TO_BOOL", "TO_INT",
465 "TO_STRING", "TO_FLOAT", "TO_ARRAY", "TO_OBJECT", "COMMENT",
466 "WHITESPACE", "NO_WHITESPACE", "CPP_HEADER", "CPP_ATTRIBUTE",
467 "CPP_EXTENSION", "CPP_PASTE", "CPP_INLINE", "CPP_RESTRICT", "CPP_ASM",
468 "BSLASH", "LONG_DOUBLE", "INT8", "UINT8", "INT16", "UINT16", "INT32",
469 "UINT32", "INT64", "UINT64", "INT128", "UINT128", "BINARY", "UNARY",
470 "$accept", "binary_op_token", "unary_op_token", "name_token",
471 "any_noeol_token", "any_nobrace_token", "file", "blocks", "block", "lib",
472 "cpp", "cpp_exp", "cpp_ignored_token", "cpp_message_token",
473 "cpp_include_token", "cpp_header_token", "cpp_no_arg_token",
474 "cpp_name_arg_token", "cpp_exp_arg_token", "cpp_macro_decl",
475 "cpp_macro_sig", "cpp_macro_sig_args", "cpp_macro_decl_tokens",
476 "cpp_macro_decl_token_list", "cpp_macro_exp", "cpp_macro_call_args",
477 "cpp_macro_call_arg_list", "constant", "impl_def_val",
478 "impl_def_val_token", "decl_typedef", "typedef", "typedef_anon",
479 "typedef_decl", "typedef_anon_decl", "qualified_decl_type",
480 "decl_type_qualifier_token", "decl_type", "decl_type_complex",
481 "decl_type_simple", "decl_real_type", "int_signed", "int_width",
482 "decl_int_type", "int_signed_types", "signed_short_types",
483 "signed_long_types", "int_width_types", "decl_stmt", "decl_asm",
484 "quoted_strings", "decl_extvar_stmt", "decl_extvar_list", "decl_vars",
485 "ignored_decl", "ignored_decl_qualifiers", "ignored_decl_body",
486 "ignored_decl_body_stmts", "ignored_decl_body_stmt", "decl", "decl_body",
487 "decl_func_body", "decl_functor_body", "decl_anon_functor_body",
488 "decl_functor", "decl_anon_functor", "decl_func", "decl_args",
489 "decl_arg_list", "decl_anon_arg", "decl_arg", "decl_var", "decl_union",
490 "decl_struct", "decl_struct_args", "struct_args_block", "struct_args",
491 "struct_arg_var_list", "decl_vars_with_layout", "decl_enum",
492 "decl_enum_items", "decl_enum_item", "num_exp", "number", "sizeof",
493 "sizeof_body", "sizeof_body_notypes", "enum_name", "union_name",
494 "struct_name", "optional_name", "optional_comma", "decl_layout",
495 "align_and_size", "array_size", "array_qualifier_token", "indirection",
496 "pointers", "asterisks", "asterisk", "pointer_qualifier_token", "impl",
497 "impl_func", "impl_args", "impl_arg", "impl_var", "impl_type",
498 "impl_type_restricted", "impl_type_token", "impl_type_restricted_token",
499 "impl_type_extended_token", "impl_stmts", "impl_stmt", "let_stmt",
500 "let_exp", "let_exp_byref", "let_exp_assign", "let_calloc",
501 "let_callback", "let_func", "let_func_token", "let_func_exps",
502 "let_exps", "callback_rval", "callback_arg_list", "callback_args",
503 "return_stmt", "return_exp", "call_decl_vars", "set_stmt", "set_exp",
504 "set_func", "set_func_token", "set_func_exps", "set_exps", "assert_stmt",
505 "assert_stmt_token", "free_stmt", "free_exps", "free_exp", "reference",
506 "byref", YY_NULLPTR
507 };
508 #endif
509
510 #define YYPACT_NINF -719
511 #define YYTABLE_NINF -637
512
513 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
514 STATE-NUM. */
515 static const short yypact[] =
516 {
517 497, -719, -719, -719, -719, -719, 99, -719, -719, -719,
518 248, -719, -719, -719, 742, 275, 7978, 7978, 7978, 225,
519 59, -20, 31, -719, 107, -719, 97, 497, -719, -719,
520 -719, -719, -719, 7123, 1957, -719, -719, -719, -719, 144,
521 198, -719, -719, -719, -719, 1423, 5, -719, -719, 32,
522 108, 115, -719, -719, -719, -719, 140, -719, 148, -719,
523 -719, -719, 7978, 7978, 7978, -719, -719, -719, 88, -719,
524 98, -719, -719, -719, -719, -719, -719, -719, -719, -719,
525 -719, 864, -719, -719, -719, -719, 168, 990, 990, 20,
526 -719, 990, 6897, 7978, 7978, 1537, 177, -719, -719, -719,
527 179, 7978, 194, 194, -719, -719, -719, -719, -719, -719,
528 1356, -719, -719, -719, -719, -719, -719, -719, -719, -719,
529 -719, -719, -719, -719, -719, -719, -719, -719, -719, -719,
530 -719, -719, -719, -719, -719, -719, -719, -719, -719, -719,
531 -719, 125, -719, -719, 125, 211, -719, -719, -719, -719,
532 -719, -719, 220, 239, -719, 233, -719, 242, -719, 282,
533 -719, 1731, 275, 187, -719, 5, -719, -719, 50, 273,
534 -719, -719, 281, 7978, 1, -719, -719, -719, 308, -719,
535 96, -719, -719, -719, 173, -719, 279, 285, 287, 1844,
536 1844, 7978, 195, -719, -719, -719, 7462, 5, 290, -719,
537 1696, -719, -719, -719, -719, -719, -719, -719, -719, 1809,
538 1922, 2035, 2148, -719, 2261, 2374, -719, -719, -719, 2487,
539 -719, -719, -719, -719, -719, -719, -719, -719, -719, -719,
540 -719, -719, -719, -719, -719, -719, -719, -719, -719, -719,
541 -719, -719, -719, -719, -719, -719, -719, -719, -719, -719,
542 -719, -719, -719, -719, -719, -719, -719, -719, -719, -719,
543 -719, -719, 2600, 2713, 2826, 2939, 3052, -719, -719, -719,
544 -719, -719, -719, -719, -719, -719, -719, -719, -719, -719,
545 -719, -719, 3165, -719, 3278, 3391, 3504, 3617, 3730, 3843,
546 -719, 3956, -719, -719, 4069, 4182, 4295, 4408, 4521, 4634,
547 4747, 4860, 4973, 5086, 5199, 5312, 5425, 5538, 5651, 5764,
548 -719, -719, -719, -719, -719, -719, -719, 5877, 990, -719,
549 -719, -719, -719, -719, -719, -719, -719, -719, -719, -719,
550 -719, -719, -719, -719, -719, -719, -719, -719, -719, -719,
551 -719, -719, -719, -719, -719, -719, -719, -719, -719, -719,
552 -719, -719, -719, -719, -719, -719, -719, -719, -719, -719,
553 990, -719, -719, -719, -719, -719, -719, -719, 207, 6897,
554 -719, -719, -719, -719, 7575, 6897, 291, 8107, -719, 133,
555 -719, 214, -719, -719, -719, -719, 289, 286, 286, 53,
556 53, 6106, 288, -719, 195, 294, 296, -719, 299, -719,
557 -719, -719, 1470, -719, 292, 273, -719, -719, -719, -719,
558 -719, 325, -719, -719, 1242, -719, 310, -719, 209, 7123,
559 -719, 306, 235, 305, -719, -719, 238, 300, 309, -719,
560 7462, 6558, 7462, 7978, 7462, -719, -719, 284, -719, -719,
561 -719, -719, -719, 6784, -719, 311, -719, 7978, 315, 316,
562 -719, 317, 8107, 322, -719, -719, -719, -719, 758, 320,
563 -719, 7228, 7978, -719, -719, 1583, -719, -719, -719, -719,
564 -719, -719, -719, -719, -719, -719, -719, -719, -719, -719,
565 -719, -719, -719, -719, 6897, 6897, 321, 624, 7462, 7462,
566 -719, -719, -719, -719, 166, -719, -719, -719, -719, -719,
567 5993, 6784, 323, -719, 322, -719, 8131, -719, -719, 6106,
568 331, 545, -719, -719, -719, -719, -719, -719, 8083, 318,
569 7688, -719, -719, -719, -719, -719, -719, -719, -719, -719,
570 -719, -719, -719, -719, -719, -719, -719, -719, -719, -719,
571 -719, -719, -719, -719, -719, -719, -719, -719, -719, -719,
572 -719, -719, -719, -719, -719, -719, -719, -719, -719, -719,
573 -719, -719, -719, -719, -719, -719, -719, -719, -719, -719,
574 -719, -719, -719, -719, -719, -719, -719, -719, -719, -719,
575 -719, -719, -719, -719, -719, -719, -719, -719, -719, -719,
576 -719, -719, -719, -719, -719, -719, -719, -719, -719, -719,
577 -719, -719, -719, -719, -719, -719, -719, -719, -719, -719,
578 -719, -719, -719, -719, -719, -719, -719, -719, -719, -719,
579 -719, -719, -719, -719, -719, -719, -719, -719, -719, -719,
580 -719, -719, -719, -719, -719, -719, -719, -719, -719, -719,
581 -719, -719, 1116, -719, 102, 42, 1844, 273, 301, 1423,
582 273, 303, 6784, 7978, 319, 332, 342, 8131, 334, 350,
583 -719, 353, 363, 348, 357, 120, -719, 359, 362, -719,
584 -719, -719, 7111, 7462, -719, -719, 7747, -719, 292, 361,
585 -719, -719, -719, 365, -719, 8107, 370, 374, 7841, -719,
586 384, 1537, 360, -719, -719, 7010, 585, 7978, 194, 194,
587 -719, -719, 36, 39, 71, 7445, -719, -719, 6784, 6784,
588 379, -719, -719, -719, -719, -719, 378, 240, -719, 31,
589 -719, -719, -719, -719, -719, 292, 243, -719, -719, -719,
590 292, -719, 265, -719, 381, -719, -719, 385, 8131, -719,
591 -719, 6219, -719, 6558, -719, 7462, -719, 31, 7462, -719,
592 7978, 7860, -719, -719, -719, -719, -719, 386, 383, -719,
593 -719, -719, -719, 6897, 6897, 387, -719, 84, 394, -719,
594 360, 286, 286, 6784, -719, 8059, -719, -719, 734, 397,
595 734, 380, 7978, 1844, -719, 7236, 273, 369, 273, 273,
596 193, 328, 627, 406, 8131, -719, -719, -719, -719, 408,
597 6671, -719, 407, 7462, 267, -719, 409, 311, 412, 990,
598 7919, 8107, 8155, 421, 413, 415, 7349, 418, 394, 7462,
599 7462, -719, 6784, -719, 734, -719, 31, 6106, 417, 419,
600 -719, -719, 420, -719, -719, 406, -719, -719, -719, 7860,
601 -719, 425, 6784, 31, -719, 6332, 426, 427, -719, 364,
602 -719, -719, -719, 429, 428, 435, 360, 434, -719, -719,
603 441, 8179, -719, 43, -719, 443, 444, 273, 445, 31,
604 7679, 442, 446, -719, 452, -719, -719, 60, -719, 455,
605 457, -719, 7349, -719, 465, 1844, 462, -719, 398, 464,
606 6784, 6219, 466, -719, 6558, -719, -719, 478, 472, 487,
607 360, -719, 480, 482, 1844, 114, 6445, 7566, 332, -719,
608 -719, -719, 483, 6671, -719, -719, 484, 488, -719, 485,
609 490, 491, 493, 496, 498, -719, -719, 6219, -719, 506,
610 -719, 734, 503, 273, 31, 504, 6558, -719, 507, -719,
611 1844, -719, 510, -719, -719, -719, 511, 6445, 273, 512,
612 -719, 513, -719
613 };
614
615 /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
616 Performed when YYTABLE does not specify something else to do. Zero
617 means the default is an error. */
618 static const unsigned short yydefact[] =
619 {
620 280, 402, 399, 403, 397, 398, 400, 394, 395, 393,
621 392, 384, 285, 284, 0, 0, 0, 0, 511, 383,
622 0, 433, 636, 286, 0, 437, 0, 281, 282, 288,
623 287, 289, 293, 528, 0, 380, 386, 385, 391, 406,
624 418, 390, 290, 291, 292, 0, 423, 444, 446, 447,
625 0, 0, 458, 295, 294, 296, 0, 297, 0, 401,
626 396, 392, 0, 0, 0, 383, 438, 445, 428, 300,
627 311, 308, 310, 312, 313, 324, 321, 322, 319, 325,
628 320, 0, 323, 314, 315, 316, 0, 336, 336, 0,
629 304, 0, 0, 511, 511, 0, 0, 366, 371, 467,
630 370, 0, 519, 519, 33, 34, 35, 36, 37, 624,
631 585, 24, 42, 41, 40, 38, 39, 32, 31, 25,
632 29, 28, 26, 27, 43, 593, 592, 590, 588, 589,
633 591, 587, 586, 594, 30, 622, 620, 619, 621, 618,
634 617, 387, 44, 45, 388, 389, 508, 552, 553, 554,
635 555, 556, 0, 0, 549, 0, 434, 0, 638, 0,
636 637, 392, 0, 0, 435, 423, 1, 283, 534, 521,
637 382, 468, 0, 529, 530, 532, 381, 408, 412, 410,
638 414, 407, 404, 419, 406, 405, 0, 0, 0, 459,
639 459, 0, 0, 387, 388, 389, 0, 423, 0, 71,
640 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
641 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
642 66, 67, 68, 69, 70, 161, 162, 72, 73, 74,
643 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
644 85, 86, 87, 88, 89, 90, 91, 92, 93, 94,
645 95, 96, 97, 98, 99, 100, 101, 102, 103, 104,
646 105, 111, 109, 110, 108, 106, 107, 112, 113, 114,
647 115, 116, 117, 118, 119, 120, 121, 122, 123, 124,
648 125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
649 135, 163, 136, 137, 138, 139, 140, 141, 142, 143,
650 144, 145, 146, 147, 148, 149, 150, 151, 152, 153,
651 154, 155, 159, 156, 157, 158, 160, 0, 336, 306,
652 301, 46, 55, 56, 57, 58, 60, 61, 65, 109,
653 110, 108, 106, 107, 127, 129, 130, 131, 132, 133,
654 134, 163, 138, 139, 140, 141, 142, 143, 144, 145,
655 146, 147, 148, 149, 150, 151, 152, 153, 338, 309,
656 337, 302, 317, 318, 303, 305, 346, 347, 0, 0,
657 22, 23, 20, 21, 0, 0, 349, 307, 348, 387,
658 510, 388, 509, 367, 364, 372, 0, 0, 0, 0,
659 0, 0, 0, 298, 0, 0, 0, 436, 0, 537,
660 536, 535, 524, 470, 528, 521, 531, 533, 413, 409,
661 415, 416, 411, 420, 0, 432, 0, 421, 393, 528,
662 464, 0, 0, 461, 462, 465, 0, 487, 513, 485,
663 0, 636, 0, 0, 0, 630, 631, 0, 561, 564,
664 563, 565, 566, 0, 567, 429, 430, 0, 0, 0,
665 425, 0, 328, 329, 326, 339, 507, 506, 0, 0,
666 502, 0, 0, 344, 341, 351, 2, 3, 4, 5,
667 6, 7, 8, 9, 10, 11, 13, 12, 14, 15,
668 16, 17, 18, 19, 0, 0, 0, 0, 0, 0,
669 473, 472, 474, 471, 498, 362, 363, 496, 495, 497,
670 0, 0, 0, 358, 360, 499, 359, 489, 500, 0,
671 0, 0, 365, 422, 498, 526, 527, 525, 0, 0,
672 0, 529, 469, 417, 189, 164, 165, 166, 167, 168,
673 169, 170, 171, 172, 173, 174, 175, 176, 177, 178,
674 179, 180, 181, 182, 183, 184, 185, 186, 187, 188,
675 277, 278, 190, 191, 192, 193, 194, 195, 196, 197,
676 198, 199, 200, 201, 202, 203, 204, 205, 206, 207,
677 208, 209, 210, 211, 212, 213, 214, 215, 216, 217,
678 218, 219, 220, 221, 227, 225, 226, 224, 222, 223,
679 228, 229, 230, 231, 232, 233, 234, 235, 236, 237,
680 238, 239, 240, 241, 242, 243, 244, 245, 246, 247,
681 248, 249, 250, 251, 279, 252, 253, 254, 255, 256,
682 257, 258, 259, 260, 261, 262, 263, 264, 265, 266,
683 267, 268, 269, 270, 271, 275, 272, 273, 274, 276,
684 442, 443, 0, 440, 0, 521, 459, 521, 0, 0,
685 521, 0, 0, 514, 0, 0, 0, 613, 0, 0,
686 612, 45, 0, 0, 0, 0, 633, 0, 0, 607,
687 538, 562, 0, 0, 427, 299, 330, 426, 528, 0,
688 503, 505, 340, 0, 353, 354, 0, 352, 0, 342,
689 0, 0, 515, 375, 368, 376, 0, 377, 519, 519,
690 374, 373, 624, 24, 0, 0, 493, 357, 0, 0,
691 0, 539, 558, 559, 560, 557, 0, 0, 543, 636,
692 548, 550, 551, 523, 522, 528, 0, 439, 441, 424,
693 528, 466, 0, 450, 0, 463, 448, 0, 488, 486,
694 484, 0, 568, 636, 611, 0, 547, 636, 0, 632,
695 0, 608, 605, 629, 431, 331, 334, 0, 332, 504,
696 501, 345, 350, 0, 0, 0, 369, 0, 478, 475,
697 515, 0, 0, 0, 491, 0, 492, 356, 0, 0,
698 0, 545, 0, 459, 456, 0, 521, 0, 521, 521,
699 498, 0, 31, 30, 574, 579, 575, 577, 578, 44,
700 0, 614, 625, 0, 0, 634, 624, 610, 0, 336,
701 0, 355, 343, 0, 516, 0, 515, 0, 478, 379,
702 378, 490, 0, 540, 0, 544, 636, 0, 0, 0,
703 457, 454, 0, 451, 449, 0, 576, 599, 585, 608,
704 600, 0, 0, 636, 580, 636, 0, 0, 635, 0,
705 327, 333, 335, 0, 0, 0, 515, 479, 482, 476,
706 0, 494, 541, 0, 546, 0, 0, 521, 0, 636,
707 0, 595, 0, 627, 626, 615, 569, 0, 520, 0,
708 0, 480, 515, 477, 0, 459, 0, 455, 0, 0,
709 0, 0, 0, 616, 636, 623, 606, 0, 0, 0,
710 515, 483, 0, 0, 459, 0, 601, 0, 499, 597,
711 572, 570, 596, 0, 584, 628, 0, 0, 481, 0,
712 0, 0, 0, 0, 602, 603, 581, 0, 571, 0,
713 517, 0, 0, 521, 636, 0, 636, 598, 0, 542,
714 459, 452, 0, 582, 604, 518, 0, 601, 521, 0,
715 453, 0, 583
716 };
717
718 /* YYPGOTO[NTERM-NUM]. */
719 static const short yypgoto[] =
720 {
721 -719, -319, -73, -11, -48, -719, -719, -719, 509, -719,
722 -719, -719, -719, -719, -719, -719, -719, -719, -719, -719,
723 -719, -719, -86, -719, -282, -719, -719, -719, -483, -719,
724 -719, 377, -153, 26, -144, -180, -19, -14, -719, -719,
725 -719, 514, -719, -719, 366, -719, -719, -719, -719, -70,
726 -270, -719, -719, -181, -719, -719, 367, -719, -90, 539,
727 46, -3, 49, -719, -719, -719, -719, -182, -719, -84,
728 3, -33, -719, -719, 176, -365, -719, -250, -719, 11,
729 -719, -82, -357, -719, -50, -719, 111, -719, -455, -451,
730 215, -719, -715, -87, -384, -719, -375, -29, -719, 399,
731 -719, -719, 551, -719, -206, -688, -718, -719, -719, 556,
732 -719, 182, -376, -719, -350, -701, 149, -204, -719, -719,
733 -704, -719, -719, -308, -349, -719, -719, -719, -240, -719,
734 -414, -410, -406, -719, -719, -719, -719, -719, -719, -150,
735 -21, -702
736 };
737
738 /* YYDEFGOTO[NTERM-NUM]. */
739 static const short yydefgoto[] =
740 {
741 -1, 709, 501, 169, 358, 640, 26, 27, 28, 29,
742 30, 86, 87, 88, 89, 364, 90, 91, 92, 319,
743 757, 758, 359, 360, 377, 686, 687, 31, 502, 503,
744 32, 96, 692, 693, 694, 33, 34, 35, 36, 37,
745 38, 39, 40, 41, 182, 409, 412, 185, 42, 188,
746 504, 43, 197, 807, 44, 45, 641, 642, 643, 46,
747 47, 48, 99, 420, 50, 421, 51, 422, 423, 424,
748 425, 505, 53, 54, 491, 492, 696, 817, 857, 101,
749 428, 429, 657, 507, 508, 679, 460, 56, 102, 103,
750 146, 654, 768, 387, 403, 519, 172, 447, 174, 175,
751 401, 57, 58, 717, 718, 658, 719, 153, 720, 721,
752 722, 437, 438, 439, 909, 910, 911, 796, 797, 798,
753 142, 892, 912, 841, 923, 924, 440, 668, 808, 441,
754 925, 660, 143, 846, 874, 442, 443, 444, 665, 666,
755 662, 160
756 };
757
758 /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If
759 positive, shift that token. If negative, reduce the rule whose
760 number is the opposite. If YYTABLE_NINF, syntax error. */
761 static const short yytable[] =
762 {
763 171, 159, 361, 52, 173, 141, 144, 145, 426, 419,
764 419, 55, 98, 68, 170, 445, 388, 659, 100, 375,
765 176, 522, 488, 489, 669, 661, 710, 52, 661, 520,
766 52, 781, 698, 318, 506, 452, 699, 799, 55, 800,
767 795, 97, 378, 365, 645, 518, 362, 453, 52, 49,
768 168, 193, 194, 195, 389, 818, 67, 390, 485, 49,
769 823, 671, 826, -447, -467, -393, -467, 746, -392, -393,
770 317, 22, -24, 49, 730, 158, 49, 109, 895, 399,
771 402, 376, 379, 381, 490, 155, 672, 461, 840, 487,
772 385, 186, 98, 464, 49, 398, 799, 166, 100, 844,
773 11, 858, 410, 156, 773, 411, 862, 884, 59, 814,
774 60, 1, 2, 3, 4, 5, 6, 7, 8, 815,
775 -458, 383, 196, -393, 9, 406, -392, 448, 677, 161,
776 187, 837, 838, 485, 671, 729, 11, 400, 781, 363,
777 189, 881, 485, 705, 706, 485, 644, 190, 177, 178,
778 179, 749, 506, 180, 750, 871, -519, -447, 65, 98,
779 386, -519, 405, 446, 52, 100, 181, 901, -387, -512,
780 135, 136, 137, 138, 139, 140, 191, 177, 178, 179,
781 427, 889, 180, 685, 192, 918, 198, 799, 97, 913,
782 162, 62, 63, 64, 65, 181, 163, -361, 320, -361,
783 -361, 840, 688, 689, 183, 4, 5, 67, 384, 799,
784 49, -458, 928, 939, 125, 126, 127, 128, 129, 130,
785 131, 132, 133, 799, -498, 913, -498, -498, 147, 386,
786 164, 148, 454, 456, 457, 149, 698, 150, 151, 458,
787 699, 698, -393, -393, 375, 699, 942, -512, 152, -388,
788 -512, 459, 1, 2, 3, 4, 5, 6, 7, 8,
789 391, 731, 392, 733, 393, 9, 736, 378, 647, 648,
790 61, 650, 651, 779, 780, 783, 784, 11, 394, 1,
791 2, 3, 4, 5, 6, 7, 8, 430, 431, 432,
792 433, 434, 9, 435, 436, 738, 375, 61, 786, 787,
793 848, 673, 375, 759, 11, 395, 376, 695, 380, 382,
794 397, 402, 455, 404, 408, 414, 449, 416, 417, 378,
795 704, 670, 487, 465, 486, 378, 511, 512, 509, 801,
796 513, 523, 62, 63, 64, 65, 450, 661, 646, 649,
797 652, 168, 681, 653, 864, 673, 674, 675, 677, 676,
798 782, 775, 776, 690, 707, 785, 740, 724, 376, 93,
799 94, 18, 65, 463, 376, 734, 485, 737, 711, 485,
800 485, 66, 741, 742, 743, 521, 430, 431, 432, 433,
801 434, 744, 435, 436, 794, 745, 171, 746, 747, 748,
802 173, 751, 375, 752, 760, 767, 95, 655, 761, 663,
803 170, 667, 831, 762, 833, 834, 819, 820, 763, 765,
804 777, 375, 375, 778, 788, 378, 821, 810, 789, 809,
805 827, 813, 664, 430, 431, 432, 433, 434, 816, 435,
806 436, 873, 824, 832, 378, 378, 405, 835, 842, 661,
807 843, 845, -609, 794, 678, 849, 853, 855, 854, 859,
808 865, 683, 866, 867, 376, 700, 701, 869, 876, 875,
809 880, 877, 878, 879, 732, 861, 419, 896, 882, 419,
810 506, 897, 883, 376, 376, 885, 891, 886, 888, 893,
811 915, 811, 812, 887, 98, 870, 894, 898, 661, 902,
812 100, 899, 485, 485, 904, 905, 906, 916, 697, 914,
813 661, 1, 2, 3, 4, 5, 6, 7, 8, 726,
814 745, 695, 917, 919, 9, 920, 695, 927, 929, 10,
815 931, 930, 944, 932, 933, 934, 11, 12, 13, 935,
816 661, 938, 936, 907, 794, 940, 167, 943, 14, 396,
817 945, 661, 947, 770, 948, 951, 952, 766, 147, 941,
818 413, 148, 728, 415, 184, 149, 794, 150, 151, 712,
819 713, 714, 715, 165, 950, 735, 493, 804, 860, 680,
820 794, 739, 157, 407, 825, 154, 510, 937, 716, 656,
821 15, 16, 17, 18, 19, 20, 21, 836, 22, 1,
822 2, 3, 4, 5, 6, 7, 8, 922, 949, 868,
823 805, 829, 9, 419, 0, 0, 0, 61, 0, 0,
824 0, 771, 772, 23, 11, 0, 0, 0, 24, 0,
825 25, 0, 769, 0, 0, 0, 0, 0, 1, 2,
826 3, 4, 5, 6, 7, 8, 0, 0, 0, 0,
827 754, 9, 427, 0, 837, 838, 61, 0, 0, 521,
828 0, 0, 0, 11, 0, 0, 0, 0, 0, 839,
829 0, 0, 171, 0, 0, 756, 173, 0, 0, 93,
830 94, 18, 65, 0, 0, 0, 170, 0, 0, 0,
831 0, 0, 0, 0, 0, 170, 385, 0, 98, 0,
832 375, 375, 0, 98, 100, 0, 521, 0, 0, 100,
833 0, 521, 697, 903, 0, 419, 691, 697, 93, 94,
834 18, 65, 802, 378, 378, 446, 0, 0, 446, 0,
835 0, 0, 921, 850, 419, 0, 803, 125, 126, 127,
836 128, 129, 130, 131, 132, 133, 0, 147, 0, 664,
837 148, 0, 0, 0, 149, 691, 150, 151, 712, 713,
838 714, 715, 376, 376, 0, 0, 0, 0, 946, 0,
839 419, 0, 1, 2, 3, 4, 5, 6, 7, 8,
840 847, 828, 69, 0, 726, 9, 0, 0, 0, 0,
841 61, 0, 0, 856, 456, 457, 700, 701, 0, 0,
842 0, 0, 0, 0, 0, 0, 0, 0, 0, 852,
843 0, 0, 459, 0, 0, 863, 446, 0, 70, 71,
844 72, 73, 74, 75, 76, 77, 78, 79, 80, 81,
845 0, 82, 83, 84, 85, 0, 0, 0, 0, 0,
846 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
847 0, 0, 62, 63, 64, 0, 0, 0, 0, 900,
848 0, 0, 0, 0, 0, 0, 0, 0, 908, 0,
849 0, 0, 0, 0, 199, 0, 0, 200, 201, 202,
850 203, 204, 205, 206, 207, 208, 209, 210, 211, 212,
851 213, 214, 215, 216, 217, 218, 219, 220, 221, 222,
852 223, 224, 225, 226, 908, 227, 228, 229, 230, 231,
853 232, 233, 234, 235, 236, 237, 238, 239, 240, 241,
854 242, 243, 244, 245, 246, 247, 248, 249, 250, 251,
855 252, 253, 254, 255, 256, 257, 258, 259, 260, 261,
856 262, 263, 264, 265, 266, 267, 268, 269, 270, 271,
857 272, 273, 274, 275, 0, 276, 0, 277, 278, 279,
858 280, 281, 282, 283, 284, 285, 286, 287, 288, 289,
859 290, 291, 292, 293, 294, 295, 296, 297, 298, 299,
860 300, 301, 302, 303, 304, 305, 306, 307, 308, 309,
861 310, 0, 0, 311, 0, 312, 313, 314, 315, 316,
862 199, 0, 0, 321, 201, 202, 203, 204, 205, 206,
863 207, 208, 322, 323, 324, 325, 213, 326, 327, 216,
864 217, 218, 328, 220, 221, 222, 223, 224, 225, 226,
865 0, 227, 228, 229, 230, 231, 232, 233, 234, 235,
866 236, 237, 238, 239, 240, 241, 242, 243, 244, 245,
867 246, 247, 248, 249, 250, 251, 252, 253, 254, 255,
868 256, 257, 258, 259, 260, 261, 329, 330, 331, 332,
869 333, 267, 268, 269, 270, 271, 272, 273, 274, 275,
870 0, 276, 0, 277, 278, 279, 280, 281, 334, 283,
871 335, 336, 337, 338, 339, 340, 290, 341, 292, 293,
872 342, 343, 344, 345, 346, 347, 348, 349, 350, 351,
873 352, 353, 354, 355, 356, 357, 310, 0, 0, 311,
874 0, 312, 313, 314, 315, 316, 524, 0, 0, 525,
875 526, 527, 528, 529, 530, 531, 532, 533, 534, 535,
876 536, 537, 538, 539, 540, 541, 542, 543, 544, 545,
877 546, 547, 548, 549, 550, 551, 0, 552, 553, 554,
878 555, 556, 414, 727, 557, 558, 559, 560, 561, 562,
879 563, 564, 565, 566, 567, 568, 569, 570, 571, 572,
880 573, 574, 575, 576, 577, 578, 579, 580, 581, 582,
881 583, 584, 585, 586, 587, 588, 589, 590, 591, 592,
882 593, 594, 595, 596, 597, 598, 0, 599, 0, 600,
883 601, 602, 603, 604, 605, 606, 607, 608, 609, 610,
884 611, 612, 613, 614, 615, 616, 617, 618, 619, 620,
885 621, 622, 623, 624, 625, 626, 627, 628, 629, 630,
886 631, 632, 633, 0, 0, 634, 0, 635, 636, 637,
887 638, 639, 524, 0, 0, 525, 526, 527, 528, 529,
888 530, 531, 532, 533, 534, 535, 536, 537, 538, 539,
889 540, 541, 542, 543, 544, 545, 546, 547, 548, 549,
890 550, 551, 0, 552, 553, 554, 555, 556, 414, 0,
891 557, 558, 559, 560, 561, 562, 563, 564, 565, 566,
892 567, 568, 569, 570, 571, 572, 573, 574, 575, 576,
893 577, 578, 579, 580, 581, 582, 583, 584, 585, 586,
894 587, 588, 589, 590, 591, 592, 593, 594, 595, 596,
895 597, 598, 0, 599, 0, 600, 601, 602, 603, 604,
896 605, 606, 607, 608, 609, 610, 611, 612, 613, 614,
897 615, 616, 617, 618, 619, 620, 621, 622, 623, 624,
898 625, 626, 627, 628, 629, 630, 631, 632, 633, -585,
899 0, 634, 0, 635, 636, 637, 638, 639, -585, -585,
900 -585, -585, 0, -585, -585, 0, 0, 0, -585, 0,
901 0, 0, 0, 0, 0, -585, -585, -585, -585, -585,
902 -585, -585, -585, -585, -585, -585, -585, 0, -585, -585,
903 -585, -585, -585, -585, -585, -585, -585, -585, -585, -585,
904 -585, -585, -585, -585, -585, -585, 0, 0, 0, 0,
905 0, -585, -585, -585, -585, -585, -585, 1, 2, 3,
906 4, 5, 6, 7, 8, 0, 0, 0, 0, 0,
907 9, 0, 0, -585, -585, 61, -585, -585, -585, -585,
908 -585, -585, 11, -585, 0, 0, -585, -585, -585, -585,
909 -585, -585, -585, -585, -585, -585, -585, -585, -585, -585,
910 -585, -585, 0, 104, 0, 0, 0, 0, 0, 0,
911 0, -585, 105, 106, 107, 108, 0, 109, 110, 514,
912 0, 0, 111, 497, 0, 498, 0, 499, 368, 515,
913 0, 0, 500, 0, 0, 0, 0, 62, 63, 64,
914 65, 0, 0, 0, 0, 0, 0, 370, 371, 168,
915 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
916 372, 373, 0, 0, 0, 0, 112, 113, 114, 115,
917 116, 1, 2, 3, 4, 5, 6, 7, 8, 0,
918 0, 0, 0, 0, 9, 0, 0, 516, 117, 61,
919 118, 119, 120, 121, 122, 123, 11, 124, 0, 0,
920 125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
921 135, 136, 137, 138, 139, 140, 104, 0, 0, 0,
922 0, 0, 0, 0, 517, 105, 106, 107, 108, 0,
923 109, 110, 0, 0, 0, 111, 0, 0, 366, 0,
924 367, 368, 0, 0, 0, 369, 0, 0, 0, 0,
925 0, 93, 94, 18, 65, 0, 0, 0, 0, 0,
926 370, 371, 0, 0, 0, 0, 0, 0, 0, 0,
927 0, 0, 0, 372, 373, 0, 0, 0, 0, 112,
928 113, 114, 115, 116, 0, 0, 0, 0, 0, 0,
929 0, 374, 0, 0, 0, 0, 0, 0, 0, 0,
930 0, 117, 0, 118, 119, 120, 121, 122, 123, 0,
931 124, 0, 0, 125, 126, 127, 128, 129, 130, 131,
932 132, 133, 134, 135, 136, 137, 138, 139, 140, -33,
933 0, 0, 684, 0, 0, 0, 0, 0, -33, -33,
934 -33, -33, 0, -33, -33, 0, 0, 0, -33, 0,
935 0, -33, -33, -33, -33, 0, 0, 0, -33, 0,
936 0, 0, 0, 0, 0, 1, 2, 3, 4, 5,
937 6, 7, 8, -33, -33, 0, 0, 0, 9, 0,
938 0, 0, 0, 61, 0, 0, -33, -33, 0, 0,
939 11, 0, -33, -33, -33, -33, -33, 0, 0, 0,
940 0, 0, 0, 0, -33, 0, 0, 0, 0, 0,
941 0, 0, 0, 0, -33, 0, -33, -33, -33, -33,
942 -33, -33, 0, -33, 0, 0, -33, -33, -33, -33,
943 -33, -33, -33, -33, -33, -33, -33, -33, -33, -33,
944 -33, -33, -34, 0, -33, 62, 63, 64, 65, 0,
945 0, -34, -34, -34, -34, 0, -34, -34, 0, 0,
946 0, -34, 0, 0, -34, -34, -34, -34, 0, 0,
947 0, -34, 0, 0, 0, 0, 0, 0, 1, 2,
948 3, 4, 5, 6, 7, 8, -34, -34, 0, 0,
949 0, 418, 0, 0, 0, 0, 61, 0, 0, -34,
950 -34, 0, 0, 11, 0, -34, -34, -34, -34, -34,
951 0, 0, 0, 0, 0, 0, 0, -34, 0, 0,
952 0, 0, 0, 0, 0, 0, 0, -34, 0, -34,
953 -34, -34, -34, -34, -34, 0, -34, 0, 0, -34,
954 -34, -34, -34, -34, -34, -34, -34, -34, -34, -34,
955 -34, -34, -34, -34, -34, -35, 0, -34, 62, 63,
956 64, 65, 0, 0, -35, -35, -35, -35, 0, -35,
957 -35, 0, 0, 0, -35, 0, 0, -35, -35, -35,
958 -35, 0, 0, 0, -35, 0, 0, 0, 0, 0,
959 0, 1, 2, 3, 4, 5, 6, 7, 8, -35,
960 -35, 0, 0, 0, 9, 0, 0, 0, 0, 61,
961 0, 0, -35, -35, 0, 0, 0, 0, -35, -35,
962 -35, -35, -35, 0, 0, 0, 0, 0, 0, 0,
963 -35, 0, 0, 0, 0, 0, 0, 0, 0, 0,
964 -35, 0, -35, -35, -35, -35, -35, -35, 0, -35,
965 0, 0, -35, -35, -35, -35, -35, -35, -35, -35,
966 -35, -35, -35, -35, -35, -35, -35, -35, -36, 0,
967 -35, 62, 63, 64, 0, 0, 0, -36, -36, -36,
968 -36, 0, -36, -36, 0, 0, 0, -36, 0, 0,
969 -36, -36, -36, -36, 0, 0, 0, -36, 0, 0,
970 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
971 0, 0, -36, -36, 0, 0, 0, 0, 0, 0,
972 0, 0, 0, 0, 0, -36, -36, 0, 0, 0,
973 0, -36, -36, -36, -36, -36, 0, 0, 0, 0,
974 0, 0, 0, -36, 0, 0, 0, 0, 0, 0,
975 0, 0, 0, -36, 0, -36, -36, -36, -36, -36,
976 -36, 0, -36, 0, 0, -36, -36, -36, -36, -36,
977 -36, -36, -36, -36, -36, -36, -36, -36, -36, -36,
978 -36, -37, 0, -36, 0, 0, 0, 0, 0, 0,
979 -37, -37, -37, -37, 0, -37, -37, 0, 0, 0,
980 -37, 0, 0, -37, -37, -37, -37, 0, 0, 0,
981 -37, 0, 0, 0, 0, 0, 0, 0, 0, 0,
982 0, 0, 0, 0, 0, -37, -37, 0, 0, 0,
983 0, 0, 0, 0, 0, 0, 0, 0, -37, -37,
984 0, 0, 0, 0, -37, -37, -37, -37, -37, 0,
985 0, 0, 0, 0, 0, 0, -37, 0, 0, 0,
986 0, 0, 0, 0, 0, 0, -37, 0, -37, -37,
987 -37, -37, -37, -37, 0, -37, 0, 0, -37, -37,
988 -37, -37, -37, -37, -37, -37, -37, -37, -37, -37,
989 -37, -37, -37, -37, -60, 0, -37, 0, 0, 0,
990 0, 0, 0, -60, -60, -60, -60, 0, -60, -60,
991 0, 0, 0, -60, 0, 0, -60, -60, -60, -60,
992 0, 0, 0, -60, 0, 0, 0, 0, 0, 0,
993 0, 0, 0, 0, 0, 0, 0, 0, -60, -60,
994 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
995 0, -60, -60, 0, 0, 0, 0, -60, -60, -60,
996 -60, -60, 0, 0, 0, 0, 0, 0, 0, -60,
997 0, 0, 0, 0, 0, 0, 0, 0, 0, -60,
998 0, -60, -60, -60, -60, -60, -60, 0, -60, 0,
999 0, -60, -60, -60, -60, -60, -60, -60, -60, -60,
1000 -60, -60, -60, -60, -60, -60, -60, -61, 0, -624,
1001 0, 0, 0, 0, 0, 0, -61, -61, -61, -61,
1002 0, -61, -61, 0, 0, 0, -61, 0, 0, -61,
1003 -61, -61, -61, 0, 0, 0, -61, 0, 0, 0,
1004 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1005 0, -61, -61, 0, 0, 0, 0, 0, 0, 0,
1006 0, 0, 0, 0, -61, -61, 0, 0, 0, 0,
1007 -61, -61, -61, -61, -61, 0, 0, 0, 0, 0,
1008 0, 0, -61, 0, 0, 0, 0, 0, 0, 0,
1009 0, 0, -61, 0, -61, -61, -61, -61, -61, -61,
1010 0, -61, 0, 0, -61, -61, -61, -61, -61, -61,
1011 -61, -61, -61, -61, -61, -61, -61, -61, -61, -61,
1012 -24, 0, -585, 0, 0, 0, 0, 0, 0, -24,
1013 -24, -24, -24, 0, -24, -24, 0, 0, 0, -24,
1014 0, 0, -24, -24, -24, -24, 0, 0, 0, -24,
1015 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1016 0, 0, 0, 0, -24, -24, 0, 0, 0, 0,
1017 0, 0, 0, 0, 0, 0, 0, -24, -24, 0,
1018 0, 0, 0, -24, -24, -24, -24, -24, 0, 0,
1019 0, 0, 0, 0, 0, -24, 0, 0, 0, 0,
1020 0, 0, 0, 0, 0, -24, 0, -24, -24, -24,
1021 -24, -24, -24, 0, -24, 0, 0, -24, -24, -24,
1022 -24, -24, -24, -24, -24, -24, -24, -24, -24, -24,
1023 -24, -24, -24, -42, 0, -24, 0, 0, 0, 0,
1024 0, 0, -42, -42, -42, -42, 0, -42, -42, 0,
1025 0, 0, -42, 0, 0, -42, -42, -42, -42, 0,
1026 0, 0, -42, 0, 0, 0, 0, 0, 0, 0,
1027 0, 0, 0, 0, 0, 0, 0, -42, -42, 0,
1028 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1029 -42, -42, 0, 0, 0, 0, -42, -42, -42, -42,
1030 -42, 0, 0, 0, 0, 0, 0, 0, -42, 0,
1031 0, 0, 0, 0, 0, 0, 0, 0, -42, 0,
1032 -42, -42, -42, -42, -42, -42, 0, -42, 0, 0,
1033 -42, -42, -42, -42, -42, -42, -42, -42, -42, -42,
1034 -42, -42, -42, -42, -42, -42, -41, 0, -42, 0,
1035 0, 0, 0, 0, 0, -41, -41, -41, -41, 0,
1036 -41, -41, 0, 0, 0, -41, 0, 0, -41, -41,
1037 -41, -41, 0, 0, 0, -41, 0, 0, 0, 0,
1038 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1039 -41, -41, 0, 0, 0, 0, 0, 0, 0, 0,
1040 0, 0, 0, -41, -41, 0, 0, 0, 0, -41,
1041 -41, -41, -41, -41, 0, 0, 0, 0, 0, 0,
1042 0, -41, 0, 0, 0, 0, 0, 0, 0, 0,
1043 0, -41, 0, -41, -41, -41, -41, -41, -41, 0,
1044 -41, 0, 0, -41, -41, -41, -41, -41, -41, -41,
1045 -41, -41, -41, -41, -41, -41, -41, -41, -41, -40,
1046 0, -41, 0, 0, 0, 0, 0, 0, -40, -40,
1047 -40, -40, 0, -40, -40, 0, 0, 0, -40, 0,
1048 0, -40, -40, -40, -40, 0, 0, 0, -40, 0,
1049 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1050 0, 0, 0, -40, -40, 0, 0, 0, 0, 0,
1051 0, 0, 0, 0, 0, 0, -40, -40, 0, 0,
1052 0, 0, -40, -40, -40, -40, -40, 0, 0, 0,
1053 0, 0, 0, 0, -40, 0, 0, 0, 0, 0,
1054 0, 0, 0, 0, -40, 0, -40, -40, -40, -40,
1055 -40, -40, 0, -40, 0, 0, -40, -40, -40, -40,
1056 -40, -40, -40, -40, -40, -40, -40, -40, -40, -40,
1057 -40, -40, -38, 0, -40, 0, 0, 0, 0, 0,
1058 0, -38, -38, -38, -38, 0, -38, -38, 0, 0,
1059 0, -38, 0, 0, -38, -38, -38, -38, 0, 0,
1060 0, -38, 0, 0, 0, 0, 0, 0, 0, 0,
1061 0, 0, 0, 0, 0, 0, -38, -38, 0, 0,
1062 0, 0, 0, 0, 0, 0, 0, 0, 0, -38,
1063 -38, 0, 0, 0, 0, -38, -38, -38, -38, -38,
1064 0, 0, 0, 0, 0, 0, 0, -38, 0, 0,
1065 0, 0, 0, 0, 0, 0, 0, -38, 0, -38,
1066 -38, -38, -38, -38, -38, 0, -38, 0, 0, -38,
1067 -38, -38, -38, -38, -38, -38, -38, -38, -38, -38,
1068 -38, -38, -38, -38, -38, -39, 0, -38, 0, 0,
1069 0, 0, 0, 0, -39, -39, -39, -39, 0, -39,
1070 -39, 0, 0, 0, -39, 0, 0, -39, -39, -39,
1071 -39, 0, 0, 0, -39, 0, 0, 0, 0, 0,
1072 0, 0, 0, 0, 0, 0, 0, 0, 0, -39,
1073 -39, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1074 0, 0, -39, -39, 0, 0, 0, 0, -39, -39,
1075 -39, -39, -39, 0, 0, 0, 0, 0, 0, 0,
1076 -39, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1077 -39, 0, -39, -39, -39, -39, -39, -39, 0, -39,
1078 0, 0, -39, -39, -39, -39, -39, -39, -39, -39,
1079 -39, -39, -39, -39, -39, -39, -39, -39, -32, 0,
1080 -39, 0, 0, 0, 0, 0, 0, -32, -32, -32,
1081 -32, 0, -32, -32, 0, 0, 0, -32, 0, 0,
1082 -32, -32, -32, -32, 0, 0, 0, -32, 0, 0,
1083 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1084 0, 0, -32, -32, 0, 0, 0, 0, 0, 0,
1085 0, 0, 0, 0, 0, -32, -32, 0, 0, 0,
1086 0, -32, -32, -32, -32, -32, 0, 0, 0, 0,
1087 0, 0, 0, -32, 0, 0, 0, 0, 0, 0,
1088 0, 0, 0, -32, 0, -32, -32, -32, -32, -32,
1089 -32, 0, -32, 0, 0, -32, -32, -32, -32, -32,
1090 -32, -32, -32, -32, -32, -32, -32, -32, -32, -32,
1091 -32, -31, 0, -32, 0, 0, 0, 0, 0, 0,
1092 -31, -31, -31, -31, 0, -31, -31, 0, 0, 0,
1093 -31, 0, 0, -31, -31, -31, -31, 0, 0, 0,
1094 -31, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1095 0, 0, 0, 0, 0, -31, -31, 0, 0, 0,
1096 0, 0, 0, 0, 0, 0, 0, 0, -31, -31,
1097 0, 0, 0, 0, -31, -31, -31, -31, -31, 0,
1098 0, 0, 0, 0, 0, 0, -31, 0, 0, 0,
1099 0, 0, 0, 0, 0, 0, -31, 0, -31, -31,
1100 -31, -31, -31, -31, 0, -31, 0, 0, -31, -31,
1101 -31, -31, -31, -31, -31, -31, -31, -31, -31, -31,
1102 -31, -31, -31, -31, -25, 0, -31, 0, 0, 0,
1103 0, 0, 0, -25, -25, -25, -25, 0, -25, -25,
1104 0, 0, 0, -25, 0, 0, -25, -25, -25, -25,
1105 0, 0, 0, -25, 0, 0, 0, 0, 0, 0,
1106 0, 0, 0, 0, 0, 0, 0, 0, -25, -25,
1107 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1108 0, -25, -25, 0, 0, 0, 0, -25, -25, -25,
1109 -25, -25, 0, 0, 0, 0, 0, 0, 0, -25,
1110 0, 0, 0, 0, 0, 0, 0, 0, 0, -25,
1111 0, -25, -25, -25, -25, -25, -25, 0, -25, 0,
1112 0, -25, -25, -25, -25, -25, -25, -25, -25, -25,
1113 -25, -25, -25, -25, -25, -25, -25, -29, 0, -25,
1114 0, 0, 0, 0, 0, 0, -29, -29, -29, -29,
1115 0, -29, -29, 0, 0, 0, -29, 0, 0, -29,
1116 -29, -29, -29, 0, 0, 0, -29, 0, 0, 0,
1117 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1118 0, -29, -29, 0, 0, 0, 0, 0, 0, 0,
1119 0, 0, 0, 0, -29, -29, 0, 0, 0, 0,
1120 -29, -29, -29, -29, -29, 0, 0, 0, 0, 0,
1121 0, 0, -29, 0, 0, 0, 0, 0, 0, 0,
1122 0, 0, -29, 0, -29, -29, -29, -29, -29, -29,
1123 0, -29, 0, 0, -29, -29, -29, -29, -29, -29,
1124 -29, -29, -29, -29, -29, -29, -29, -29, -29, -29,
1125 -28, 0, -29, 0, 0, 0, 0, 0, 0, -28,
1126 -28, -28, -28, 0, -28, -28, 0, 0, 0, -28,
1127 0, 0, -28, -28, -28, -28, 0, 0, 0, -28,
1128 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1129 0, 0, 0, 0, -28, -28, 0, 0, 0, 0,
1130 0, 0, 0, 0, 0, 0, 0, -28, -28, 0,
1131 0, 0, 0, -28, -28, -28, -28, -28, 0, 0,
1132 0, 0, 0, 0, 0, -28, 0, 0, 0, 0,
1133 0, 0, 0, 0, 0, -28, 0, -28, -28, -28,
1134 -28, -28, -28, 0, -28, 0, 0, -28, -28, -28,
1135 -28, -28, -28, -28, -28, -28, -28, -28, -28, -28,
1136 -28, -28, -28, -26, 0, -28, 0, 0, 0, 0,
1137 0, 0, -26, -26, -26, -26, 0, -26, -26, 0,
1138 0, 0, -26, 0, 0, -26, -26, -26, -26, 0,
1139 0, 0, -26, 0, 0, 0, 0, 0, 0, 0,
1140 0, 0, 0, 0, 0, 0, 0, -26, -26, 0,
1141 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1142 -26, -26, 0, 0, 0, 0, -26, -26, -26, -26,
1143 -26, 0, 0, 0, 0, 0, 0, 0, -26, 0,
1144 0, 0, 0, 0, 0, 0, 0, 0, -26, 0,
1145 -26, -26, -26, -26, -26, -26, 0, -26, 0, 0,
1146 -26, -26, -26, -26, -26, -26, -26, -26, -26, -26,
1147 -26, -26, -26, -26, -26, -26, -27, 0, -26, 0,
1148 0, 0, 0, 0, 0, -27, -27, -27, -27, 0,
1149 -27, -27, 0, 0, 0, -27, 0, 0, -27, -27,
1150 -27, -27, 0, 0, 0, -27, 0, 0, 0, 0,
1151 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1152 -27, -27, 0, 0, 0, 0, 0, 0, 0, 0,
1153 0, 0, 0, -27, -27, 0, 0, 0, 0, -27,
1154 -27, -27, -27, -27, 0, 0, 0, 0, 0, 0,
1155 0, -27, 0, 0, 0, 0, 0, 0, 0, 0,
1156 0, -27, 0, -27, -27, -27, -27, -27, -27, 0,
1157 -27, 0, 0, -27, -27, -27, -27, -27, -27, -27,
1158 -27, -27, -27, -27, -27, -27, -27, -27, -27, -43,
1159 0, -27, 0, 0, 0, 0, 0, 0, -43, -43,
1160 -43, -43, 0, -43, -43, 0, 0, 0, -43, 0,
1161 0, -43, -43, -43, -43, 0, 0, 0, -43, 0,
1162 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1163 0, 0, 0, -43, -43, 0, 0, 0, 0, 0,
1164 0, 0, 0, 0, 0, 0, -43, -43, 0, 0,
1165 0, 0, -43, -43, -43, -43, -43, 0, 0, 0,
1166 0, 0, 0, 0, -43, 0, 0, 0, 0, 0,
1167 0, 0, 0, 0, -43, 0, -43, -43, -43, -43,
1168 -43, -43, 0, -43, 0, 0, -43, -43, -43, -43,
1169 -43, -43, -43, -43, -43, -43, -43, -43, -43, -43,
1170 -43, -43, -138, 0, -43, 0, 0, 0, 0, 0,
1171 0, -138, -138, -138, -138, 0, -138, -138, 0, 0,
1172 0, -138, 0, 0, -138, -138, -138, -138, 0, 0,
1173 0, -138, 0, 0, 0, 0, 0, 0, 0, 0,
1174 0, 0, 0, 0, 0, 0, -138, -138, 0, 0,
1175 0, 0, 0, 0, 0, 0, 0, 0, 0, -138,
1176 -138, 0, 0, 0, 0, -138, -138, -138, -138, -138,
1177 0, 0, 0, 0, 0, 0, 0, -138, 0, 0,
1178 0, 0, 0, 0, 0, 0, 0, -138, 0, -138,
1179 -138, -138, -138, -138, -138, 0, -138, 0, 0, -138,
1180 -138, -138, -138, -138, -138, -138, -138, -138, -138, -138,
1181 -138, -138, -138, -138, -138, -139, 0, -593, 0, 0,
1182 0, 0, 0, 0, -139, -139, -139, -139, 0, -139,
1183 -139, 0, 0, 0, -139, 0, 0, -139, -139, -139,
1184 -139, 0, 0, 0, -139, 0, 0, 0, 0, 0,
1185 0, 0, 0, 0, 0, 0, 0, 0, 0, -139,
1186 -139, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1187 0, 0, -139, -139, 0, 0, 0, 0, -139, -139,
1188 -139, -139, -139, 0, 0, 0, 0, 0, 0, 0,
1189 -139, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1190 -139, 0, -139, -139, -139, -139, -139, -139, 0, -139,
1191 0, 0, -139, -139, -139, -139, -139, -139, -139, -139,
1192 -139, -139, -139, -139, -139, -139, -139, -139, -140, 0,
1193 -592, 0, 0, 0, 0, 0, 0, -140, -140, -140,
1194 -140, 0, -140, -140, 0, 0, 0, -140, 0, 0,
1195 -140, -140, -140, -140, 0, 0, 0, -140, 0, 0,
1196 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1197 0, 0, -140, -140, 0, 0, 0, 0, 0, 0,
1198 0, 0, 0, 0, 0, -140, -140, 0, 0, 0,
1199 0, -140, -140, -140, -140, -140, 0, 0, 0, 0,
1200 0, 0, 0, -140, 0, 0, 0, 0, 0, 0,
1201 0, 0, 0, -140, 0, -140, -140, -140, -140, -140,
1202 -140, 0, -140, 0, 0, -140, -140, -140, -140, -140,
1203 -140, -140, -140, -140, -140, -140, -140, -140, -140, -140,
1204 -140, -141, 0, -590, 0, 0, 0, 0, 0, 0,
1205 -141, -141, -141, -141, 0, -141, -141, 0, 0, 0,
1206 -141, 0, 0, -141, -141, -141, -141, 0, 0, 0,
1207 -141, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1208 0, 0, 0, 0, 0, -141, -141, 0, 0, 0,
1209 0, 0, 0, 0, 0, 0, 0, 0, -141, -141,
1210 0, 0, 0, 0, -141, -141, -141, -141, -141, 0,
1211 0, 0, 0, 0, 0, 0, -141, 0, 0, 0,
1212 0, 0, 0, 0, 0, 0, -141, 0, -141, -141,
1213 -141, -141, -141, -141, 0, -141, 0, 0, -141, -141,
1214 -141, -141, -141, -141, -141, -141, -141, -141, -141, -141,
1215 -141, -141, -141, -141, -142, 0, -588, 0, 0, 0,
1216 0, 0, 0, -142, -142, -142, -142, 0, -142, -142,
1217 0, 0, 0, -142, 0, 0, -142, -142, -142, -142,
1218 0, 0, 0, -142, 0, 0, 0, 0, 0, 0,
1219 0, 0, 0, 0, 0, 0, 0, 0, -142, -142,
1220 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1221 0, -142, -142, 0, 0, 0, 0, -142, -142, -142,
1222 -142, -142, 0, 0, 0, 0, 0, 0, 0, -142,
1223 0, 0, 0, 0, 0, 0, 0, 0, 0, -142,
1224 0, -142, -142, -142, -142, -142, -142, 0, -142, 0,
1225 0, -142, -142, -142, -142, -142, -142, -142, -142, -142,
1226 -142, -142, -142, -142, -142, -142, -142, -143, 0, -589,
1227 0, 0, 0, 0, 0, 0, -143, -143, -143, -143,
1228 0, -143, -143, 0, 0, 0, -143, 0, 0, -143,
1229 -143, -143, -143, 0, 0, 0, -143, 0, 0, 0,
1230 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1231 0, -143, -143, 0, 0, 0, 0, 0, 0, 0,
1232 0, 0, 0, 0, -143, -143, 0, 0, 0, 0,
1233 -143, -143, -143, -143, -143, 0, 0, 0, 0, 0,
1234 0, 0, -143, 0, 0, 0, 0, 0, 0, 0,
1235 0, 0, -143, 0, -143, -143, -143, -143, -143, -143,
1236 0, -143, 0, 0, -143, -143, -143, -143, -143, -143,
1237 -143, -143, -143, -143, -143, -143, -143, -143, -143, -143,
1238 -144, 0, -591, 0, 0, 0, 0, 0, 0, -144,
1239 -144, -144, -144, 0, -144, -144, 0, 0, 0, -144,
1240 0, 0, -144, -144, -144, -144, 0, 0, 0, -144,
1241 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1242 0, 0, 0, 0, -144, -144, 0, 0, 0, 0,
1243 0, 0, 0, 0, 0, 0, 0, -144, -144, 0,
1244 0, 0, 0, -144, -144, -144, -144, -144, 0, 0,
1245 0, 0, 0, 0, 0, -144, 0, 0, 0, 0,
1246 0, 0, 0, 0, 0, -144, 0, -144, -144, -144,
1247 -144, -144, -144, 0, -144, 0, 0, -144, -144, -144,
1248 -144, -144, -144, -144, -144, -144, -144, -144, -144, -144,
1249 -144, -144, -144, -145, 0, -587, 0, 0, 0, 0,
1250 0, 0, -145, -145, -145, -145, 0, -145, -145, 0,
1251 0, 0, -145, 0, 0, -145, -145, -145, -145, 0,
1252 0, 0, -145, 0, 0, 0, 0, 0, 0, 0,
1253 0, 0, 0, 0, 0, 0, 0, -145, -145, 0,
1254 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1255 -145, -145, 0, 0, 0, 0, -145, -145, -145, -145,
1256 -145, 0, 0, 0, 0, 0, 0, 0, -145, 0,
1257 0, 0, 0, 0, 0, 0, 0, 0, -145, 0,
1258 -145, -145, -145, -145, -145, -145, 0, -145, 0, 0,
1259 -145, -145, -145, -145, -145, -145, -145, -145, -145, -145,
1260 -145, -145, -145, -145, -145, -145, -146, 0, -586, 0,
1261 0, 0, 0, 0, 0, -146, -146, -146, -146, 0,
1262 -146, -146, 0, 0, 0, -146, 0, 0, -146, -146,
1263 -146, -146, 0, 0, 0, -146, 0, 0, 0, 0,
1264 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1265 -146, -146, 0, 0, 0, 0, 0, 0, 0, 0,
1266 0, 0, 0, -146, -146, 0, 0, 0, 0, -146,
1267 -146, -146, -146, -146, 0, 0, 0, 0, 0, 0,
1268 0, -146, 0, 0, 0, 0, 0, 0, 0, 0,
1269 0, -146, 0, -146, -146, -146, -146, -146, -146, 0,
1270 -146, 0, 0, -146, -146, -146, -146, -146, -146, -146,
1271 -146, -146, -146, -146, -146, -146, -146, -146, -146, -30,
1272 0, -594, 0, 0, 0, 0, 0, 0, -30, -30,
1273 -30, -30, 0, -30, -30, 0, 0, 0, -30, 0,
1274 0, -30, -30, -30, -30, 0, 0, 0, -30, 0,
1275 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1276 0, 0, 0, -30, -30, 0, 0, 0, 0, 0,
1277 0, 0, 0, 0, 0, 0, -30, -30, 0, 0,
1278 0, 0, -30, -30, -30, -30, -30, 0, 0, 0,
1279 0, 0, 0, 0, -30, 0, 0, 0, 0, 0,
1280 0, 0, 0, 0, -30, 0, -30, -30, -30, -30,
1281 -30, -30, 0, -30, 0, 0, -30, -30, -30, -30,
1282 -30, -30, -30, -30, -30, -30, -30, -30, -30, -30,
1283 -30, -30, -148, 0, -30, 0, 0, 0, 0, 0,
1284 0, -148, -148, -148, -148, 0, -148, -148, 0, 0,
1285 0, -148, 0, 0, -148, -148, -148, -148, 0, 0,
1286 0, -148, 0, 0, 0, 0, 0, 0, 0, 0,
1287 0, 0, 0, 0, 0, 0, -148, -148, 0, 0,
1288 0, 0, 0, 0, 0, 0, 0, 0, 0, -148,
1289 -148, 0, 0, 0, 0, -148, -148, -148, -148, -148,
1290 0, 0, 0, 0, 0, 0, 0, -148, 0, 0,
1291 0, 0, 0, 0, 0, 0, 0, -148, 0, -148,
1292 -148, -148, -148, -148, -148, 0, -148, 0, 0, -148,
1293 -148, -148, -148, -148, -148, -148, -148, -148, -148, -148,
1294 -148, -148, -148, -148, -148, -149, 0, -622, 0, 0,
1295 0, 0, 0, 0, -149, -149, -149, -149, 0, -149,
1296 -149, 0, 0, 0, -149, 0, 0, -149, -149, -149,
1297 -149, 0, 0, 0, -149, 0, 0, 0, 0, 0,
1298 0, 0, 0, 0, 0, 0, 0, 0, 0, -149,
1299 -149, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1300 0, 0, -149, -149, 0, 0, 0, 0, -149, -149,
1301 -149, -149, -149, 0, 0, 0, 0, 0, 0, 0,
1302 -149, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1303 -149, 0, -149, -149, -149, -149, -149, -149, 0, -149,
1304 0, 0, -149, -149, -149, -149, -149, -149, -149, -149,
1305 -149, -149, -149, -149, -149, -149, -149, -149, -150, 0,
1306 -620, 0, 0, 0, 0, 0, 0, -150, -150, -150,
1307 -150, 0, -150, -150, 0, 0, 0, -150, 0, 0,
1308 -150, -150, -150, -150, 0, 0, 0, -150, 0, 0,
1309 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1310 0, 0, -150, -150, 0, 0, 0, 0, 0, 0,
1311 0, 0, 0, 0, 0, -150, -150, 0, 0, 0,
1312 0, -150, -150, -150, -150, -150, 0, 0, 0, 0,
1313 0, 0, 0, -150, 0, 0, 0, 0, 0, 0,
1314 0, 0, 0, -150, 0, -150, -150, -150, -150, -150,
1315 -150, 0, -150, 0, 0, -150, -150, -150, -150, -150,
1316 -150, -150, -150, -150, -150, -150, -150, -150, -150, -150,
1317 -150, -151, 0, -619, 0, 0, 0, 0, 0, 0,
1318 -151, -151, -151, -151, 0, -151, -151, 0, 0, 0,
1319 -151, 0, 0, -151, -151, -151, -151, 0, 0, 0,
1320 -151, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1321 0, 0, 0, 0, 0, -151, -151, 0, 0, 0,
1322 0, 0, 0, 0, 0, 0, 0, 0, -151, -151,
1323 0, 0, 0, 0, -151, -151, -151, -151, -151, 0,
1324 0, 0, 0, 0, 0, 0, -151, 0, 0, 0,
1325 0, 0, 0, 0, 0, 0, -151, 0, -151, -151,
1326 -151, -151, -151, -151, 0, -151, 0, 0, -151, -151,
1327 -151, -151, -151, -151, -151, -151, -151, -151, -151, -151,
1328 -151, -151, -151, -151, -152, 0, -621, 0, 0, 0,
1329 0, 0, 0, -152, -152, -152, -152, 0, -152, -152,
1330 0, 0, 0, -152, 0, 0, -152, -152, -152, -152,
1331 0, 0, 0, -152, 0, 0, 0, 0, 0, 0,
1332 0, 0, 0, 0, 0, 0, 0, 0, -152, -152,
1333 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1334 0, -152, -152, 0, 0, 0, 0, -152, -152, -152,
1335 -152, -152, 0, 0, 0, 0, 0, 0, 0, -152,
1336 0, 0, 0, 0, 0, 0, 0, 0, 0, -152,
1337 0, -152, -152, -152, -152, -152, -152, 0, -152, 0,
1338 0, -152, -152, -152, -152, -152, -152, -152, -152, -152,
1339 -152, -152, -152, -152, -152, -152, -152, -153, 0, -618,
1340 0, 0, 0, 0, 0, 0, -153, -153, -153, -153,
1341 0, -153, -153, 0, 0, 0, -153, 0, 0, -153,
1342 -153, -153, -153, 0, 0, 0, -153, 0, 0, 0,
1343 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1344 0, -153, -153, 0, 0, 0, 0, 0, 0, 0,
1345 0, 0, 0, 0, -153, -153, 0, 0, 0, 0,
1346 -153, -153, -153, -153, -153, 0, 0, 0, 0, 0,
1347 0, 0, -153, 0, 0, 0, 0, 0, 0, 0,
1348 0, 0, -153, 0, -153, -153, -153, -153, -153, -153,
1349 0, -153, 0, 0, -153, -153, -153, -153, -153, -153,
1350 -153, -153, -153, -153, -153, -153, -153, -153, -153, -153,
1351 104, 0, -617, 0, 0, 0, 0, 0, 0, 105,
1352 106, 107, 108, 0, 109, 110, 0, 0, 0, 111,
1353 0, 0, 366, 450, 367, 368, 0, 0, 0, 369,
1354 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1355 0, 0, 0, 0, 370, 371, 0, 0, 0, 0,
1356 0, 0, 0, 0, 0, 0, 0, 372, 373, 0,
1357 0, 0, 0, 112, 113, 114, 115, 116, 0, 0,
1358 0, 0, 0, 0, 0, 374, 0, 0, 0, 0,
1359 0, 0, 0, 0, 0, 117, 0, 118, 119, 120,
1360 121, 122, 123, 0, 124, 0, 0, 125, 126, 127,
1361 128, 129, 130, 131, 132, 133, 134, 135, 136, 137,
1362 138, 139, 140, 0, 0, 451, 104, 1, 2, 3,
1363 4, 5, 6, 7, 8, 105, 106, 107, 108, 0,
1364 702, 110, 514, 0, 0, 703, 497, 0, 498, 0,
1365 499, 368, 11, 0, 0, 500, 0, 0, 0, 0,
1366 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1367 370, 371, 168, 0, 0, 0, 0, 0, 0, 0,
1368 0, 0, 0, 372, 373, 0, 0, 0, 0, 112,
1369 113, 114, 115, 116, 0, 0, 0, 0, 0, 0,
1370 0, 0, 0, 0, 0, 0, 0, 62, 63, 64,
1371 65, 117, 0, 118, 119, 120, 121, 122, 123, 0,
1372 124, 0, 0, 125, 126, 127, 128, 129, 130, 131,
1373 132, 133, 134, 135, 136, 137, 138, 139, 140, 104,
1374 0, 0, 0, 0, 0, 0, 0, 0, 105, 106,
1375 107, 108, 0, 109, 110, 494, 495, 496, 111, 497,
1376 0, 498, 450, 499, 368, 0, 0, 0, 500, 0,
1377 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1378 0, 0, 0, 370, 371, 168, 0, 0, 0, 0,
1379 0, 0, 0, 0, 0, 0, 372, 373, 0, 0,
1380 0, 0, 112, 113, 114, 115, 116, 0, 0, 0,
1381 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1382 0, 0, 0, 0, 117, 0, 118, 119, 120, 121,
1383 122, 123, 0, 124, 0, 0, 125, 126, 127, 128,
1384 129, 130, 131, 132, 133, 134, 135, 136, 137, 138,
1385 139, 140, 104, 0, 0, 0, 0, 0, 0, 0,
1386 0, 105, 106, 107, 108, 0, 109, 110, 790, 0,
1387 0, 111, 497, 0, 498, 0, 499, 368, 0, 0,
1388 0, 500, 0, 0, 0, 0, 0, 0, 0, 0,
1389 0, 0, 0, 158, 0, 0, 370, 371, 168, 0,
1390 0, 0, 0, 0, 0, 0, 0, 0, 0, 372,
1391 373, 0, 0, 0, 0, 112, 113, 114, 115, 116,
1392 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1393 0, 0, 0, 0, 0, 0, 0, 117, 791, 792,
1394 119, 120, 121, 122, 123, 0, 124, 0, 0, 125,
1395 126, 127, 128, 129, 130, 131, 132, 133, 793, 135,
1396 136, 137, 138, 139, 140, 104, 0, 0, 0, 0,
1397 0, 0, 0, 0, 105, 106, 107, 108, 0, 109,
1398 110, 514, 0, 0, 111, 497, 0, 498, 0, 499,
1399 368, 0, 0, 0, 500, 0, 0, 0, 0, 0,
1400 0, 0, 0, 0, 0, 0, 158, 0, 0, 370,
1401 371, 168, 0, 0, 0, 0, 0, 0, 0, 0,
1402 0, 0, 372, 373, 0, 0, 872, 0, 112, 113,
1403 114, 115, 116, 0, 0, 0, 0, 0, 0, 0,
1404 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1405 117, 0, 118, 119, 120, 121, 122, 123, 0, 124,
1406 0, 0, 125, 126, 127, 128, 129, 130, 131, 132,
1407 133, 134, 135, 136, 137, 138, 139, 140, 104, 0,
1408 0, 0, 0, 0, 0, 0, 0, 105, 106, 107,
1409 108, 0, 109, 110, 514, 0, 0, 111, 497, -636,
1410 498, 0, 499, 368, 0, 0, 0, 500, 0, 0,
1411 0, 0, 0, 0, 0, 0, 0, 0, 0, 158,
1412 0, 0, 370, 371, 168, 0, 0, 0, 0, 0,
1413 0, 0, 0, 0, 0, 372, 373, 0, 0, 0,
1414 0, 112, 113, 114, 115, 116, 0, 0, 0, 0,
1415 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1416 0, 0, 0, 117, 0, 118, 119, 120, 121, 122,
1417 123, 0, 124, 0, 0, 125, 126, 127, 128, 129,
1418 130, 131, 132, 133, 134, 135, 136, 137, 138, 139,
1419 140, 104, 0, 0, 0, 0, 0, 0, 0, 0,
1420 105, 106, 107, 108, 0, 109, 110, 514, 0, 0,
1421 111, 497, 0, 498, 0, 499, 368, 0, 0, 0,
1422 500, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1423 0, 0, 158, 0, 0, 370, 371, 168, 0, 0,
1424 0, 0, 0, 0, 0, 0, 0, 0, 372, 373,
1425 0, 0, 0, 0, 112, 113, 114, 115, 116, 0,
1426 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1427 0, 0, 0, 0, 0, 0, 117, 0, 118, 119,
1428 120, 121, 122, 123, 0, 124, 0, 0, 125, 126,
1429 127, 128, 129, 130, 131, 132, 133, 134, 135, 136,
1430 137, 138, 139, 140, 104, 0, 0, 0, 0, 0,
1431 0, 0, 0, 105, 106, 107, 108, 0, 109, 110,
1432 790, 0, 0, 111, 497, 0, 498, 0, 499, 368,
1433 0, 0, 0, 500, 0, 0, 0, 0, 0, 0,
1434 0, 0, 0, 0, 0, 0, 0, 0, 370, 371,
1435 168, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1436 0, 372, 373, 0, 0, 0, 0, 112, 113, 114,
1437 115, 116, 0, 0, 0, 0, 0, 0, 0, 0,
1438 0, 0, 0, 0, 0, 0, 0, 0, 0, 117,
1439 791, 792, 119, 120, 121, 122, 123, 0, 124, 0,
1440 0, 125, 126, 127, 128, 129, 130, 131, 132, 133,
1441 793, 135, 136, 137, 138, 139, 140, 104, 0, 0,
1442 0, 0, 0, 0, 0, 0, 105, 106, 107, 108,
1443 0, 109, 110, 514, 0, 0, 111, 497, 0, 498,
1444 0, 499, 368, 0, 0, 0, 500, 0, 0, 0,
1445 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1446 0, 370, 371, 168, 0, 0, 0, 0, 0, 0,
1447 0, 0, 0, 0, 372, 373, 0, 0, 0, 0,
1448 112, 113, 114, 115, 116, 0, 0, 0, 0, 0,
1449 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1450 0, 0, 117, 0, 118, 119, 120, 121, 122, 123,
1451 0, 124, 0, 0, 125, 126, 127, 128, 129, 130,
1452 131, 132, 133, 134, 135, 136, 137, 138, 139, 140,
1453 104, 0, 0, 0, 0, 0, 0, 0, 0, 105,
1454 106, 107, 108, 0, 109, 110, 0, 0, 0, 111,
1455 0, 0, 366, 0, 367, 368, 0, 0, 0, 369,
1456 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1457 0, 0, 0, 0, 370, 371, 0, 0, 0, 0,
1458 0, 0, 0, 0, 0, 0, 0, 372, 373, 0,
1459 0, 0, 0, 112, 113, 114, 115, 116, 0, 0,
1460 0, 0, 0, 0, 0, 374, 0, 0, 0, 0,
1461 0, 0, 0, 0, 0, 117, 0, 118, 119, 120,
1462 121, 122, 123, 0, 124, 0, 0, 125, 126, 127,
1463 128, 129, 130, 131, 132, 133, 134, 135, 136, 137,
1464 138, 139, 140, 104, 0, 0, 0, 0, 0, 0,
1465 0, 0, 105, 106, 107, 108, 0, 109, 110, 0,
1466 0, 0, 111, 0, 0, 0, 0, 0, 0, 11,
1467 0, 0, -528, 0, 0, 0, 0, 0, 0, 0,
1468 0, 0, 0, 0, 0, 0, 0, 0, 0, 168,
1469 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1470 0, 0, 0, 0, 0, 0, 112, 113, 114, 115,
1471 116, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1472 0, 0, 0, 0, 0, 0, 0, 65, 117, 0,
1473 118, 119, 120, 121, 122, 123, 0, 124, 0, 0,
1474 125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
1475 135, 136, 137, 138, 139, 140, 104, 0, 0, 0,
1476 0, 0, 0, 0, 0, 105, 106, 107, 108, 0,
1477 109, 110, 753, 0, 0, 111, 0, 0, 0, 0,
1478 0, 0, 11, 466, 467, 468, 469, 470, 471, 472,
1479 473, 474, 475, 476, 477, 478, 479, 480, 481, 482,
1480 483, 0, 168, 0, 0, 0, 708, 0, 0, 0,
1481 0, 0, 0, 0, 0, 0, 0, 0, 0, 112,
1482 113, 114, 115, 116, 0, 0, 0, 0, 0, 0,
1483 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1484 65, 117, 0, 118, 119, 120, 121, 122, 123, 0,
1485 124, 0, 0, 125, 126, 127, 128, 129, 130, 131,
1486 132, 133, 134, 135, 136, 137, 138, 139, 140, 104,
1487 0, 0, 0, 0, 0, 0, 0, 0, 105, 106,
1488 107, 108, 0, 109, 110, 0, 0, 0, 111, 0,
1489 0, 682, 0, 0, 0, 0, 0, 0, 725, 830,
1490 466, 467, 468, 469, 470, 471, 472, 473, 474, 475,
1491 476, 477, 478, 479, 480, 481, 482, 483, 0, 0,
1492 0, 0, 0, 484, 0, 0, 0, 0, 0, 0,
1493 0, 0, 112, 113, 114, 115, 116, 0, 0, 0,
1494 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1495 0, 0, 0, 0, 117, 0, 118, 119, 120, 121,
1496 122, 123, 0, 124, 0, 0, 125, 126, 127, 128,
1497 129, 130, 131, 132, 133, 134, 135, 136, 137, 138,
1498 139, 140, 104, 0, 0, 0, 0, 0, 0, 0,
1499 0, 105, 106, 107, 108, 0, 109, 110, 0, 0,
1500 0, 111, 0, 0, 0, 0, 0, 0, 0, 0,
1501 0, 0, 0, 0, 767, 0, 0, 0, 0, 0,
1502 0, 0, 0, 0, 0, 0, 0, 0, 168, 0,
1503 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1504 0, 0, 0, 0, 0, 112, 113, 114, 115, 116,