OSDN Git Service

2000-07-21 Alexandre Petit-Bianco <apbianco@cygnus.com>
[pf3gnuchains/gcc-fork.git] / gcc / java / parse.c
1
2 /*  A Bison parser, made from ./parse.y
3     by GNU Bison version 1.28  */
4
5 #define YYBISON 1  /* Identify Bison output.  */
6
7 #define yyparse java_parse
8 #define yylex java_lex
9 #define yyerror java_error
10 #define yylval java_lval
11 #define yychar java_char
12 #define yydebug java_debug
13 #define yynerrs java_nerrs
14 #define PLUS_TK 257
15 #define MINUS_TK        258
16 #define MULT_TK 259
17 #define DIV_TK  260
18 #define REM_TK  261
19 #define LS_TK   262
20 #define SRS_TK  263
21 #define ZRS_TK  264
22 #define AND_TK  265
23 #define XOR_TK  266
24 #define OR_TK   267
25 #define BOOL_AND_TK     268
26 #define BOOL_OR_TK      269
27 #define EQ_TK   270
28 #define NEQ_TK  271
29 #define GT_TK   272
30 #define GTE_TK  273
31 #define LT_TK   274
32 #define LTE_TK  275
33 #define PLUS_ASSIGN_TK  276
34 #define MINUS_ASSIGN_TK 277
35 #define MULT_ASSIGN_TK  278
36 #define DIV_ASSIGN_TK   279
37 #define REM_ASSIGN_TK   280
38 #define LS_ASSIGN_TK    281
39 #define SRS_ASSIGN_TK   282
40 #define ZRS_ASSIGN_TK   283
41 #define AND_ASSIGN_TK   284
42 #define XOR_ASSIGN_TK   285
43 #define OR_ASSIGN_TK    286
44 #define PUBLIC_TK       287
45 #define PRIVATE_TK      288
46 #define PROTECTED_TK    289
47 #define STATIC_TK       290
48 #define FINAL_TK        291
49 #define SYNCHRONIZED_TK 292
50 #define VOLATILE_TK     293
51 #define TRANSIENT_TK    294
52 #define NATIVE_TK       295
53 #define PAD_TK  296
54 #define ABSTRACT_TK     297
55 #define MODIFIER_TK     298
56 #define DECR_TK 299
57 #define INCR_TK 300
58 #define DEFAULT_TK      301
59 #define IF_TK   302
60 #define THROW_TK        303
61 #define BOOLEAN_TK      304
62 #define DO_TK   305
63 #define IMPLEMENTS_TK   306
64 #define THROWS_TK       307
65 #define BREAK_TK        308
66 #define IMPORT_TK       309
67 #define ELSE_TK 310
68 #define INSTANCEOF_TK   311
69 #define RETURN_TK       312
70 #define VOID_TK 313
71 #define CATCH_TK        314
72 #define INTERFACE_TK    315
73 #define CASE_TK 316
74 #define EXTENDS_TK      317
75 #define FINALLY_TK      318
76 #define SUPER_TK        319
77 #define WHILE_TK        320
78 #define CLASS_TK        321
79 #define SWITCH_TK       322
80 #define CONST_TK        323
81 #define TRY_TK  324
82 #define FOR_TK  325
83 #define NEW_TK  326
84 #define CONTINUE_TK     327
85 #define GOTO_TK 328
86 #define PACKAGE_TK      329
87 #define THIS_TK 330
88 #define BYTE_TK 331
89 #define SHORT_TK        332
90 #define INT_TK  333
91 #define LONG_TK 334
92 #define CHAR_TK 335
93 #define INTEGRAL_TK     336
94 #define FLOAT_TK        337
95 #define DOUBLE_TK       338
96 #define FP_TK   339
97 #define ID_TK   340
98 #define REL_QM_TK       341
99 #define REL_CL_TK       342
100 #define NOT_TK  343
101 #define NEG_TK  344
102 #define ASSIGN_ANY_TK   345
103 #define ASSIGN_TK       346
104 #define OP_TK   347
105 #define CP_TK   348
106 #define OCB_TK  349
107 #define CCB_TK  350
108 #define OSB_TK  351
109 #define CSB_TK  352
110 #define SC_TK   353
111 #define C_TK    354
112 #define DOT_TK  355
113 #define STRING_LIT_TK   356
114 #define CHAR_LIT_TK     357
115 #define INT_LIT_TK      358
116 #define FP_LIT_TK       359
117 #define TRUE_TK 360
118 #define FALSE_TK        361
119 #define BOOL_LIT_TK     362
120 #define NULL_TK 363
121
122 #line 48 "./parse.y"
123
124 #include "config.h"
125 #include "system.h"
126 #include <dirent.h>
127 #include "tree.h"
128 #include "rtl.h"
129 #include "obstack.h"
130 #include "toplev.h"
131 #include "flags.h"
132 #include "java-tree.h"
133 #include "jcf.h"
134 #include "lex.h"
135 #include "parse.h"
136 #include "zipfile.h"
137 #include "convert.h"
138 #include "buffer.h"
139 #include "xref.h"
140 #include "function.h"
141 #include "except.h"
142 #include "defaults.h"
143
144 #ifndef DIR_SEPARATOR
145 #define DIR_SEPARATOR '/'
146 #endif
147
148 /* Local function prototypes */
149 static char *java_accstring_lookup PARAMS ((int));
150 static void  classitf_redefinition_error PARAMS ((const char *,tree, tree, tree));
151 static void  variable_redefinition_error PARAMS ((tree, tree, tree, int));
152 static tree  create_class PARAMS ((int, tree, tree, tree));
153 static tree  create_interface PARAMS ((int, tree, tree));
154 static void  end_class_declaration PARAMS ((int));
155 static tree  find_field PARAMS ((tree, tree));
156 static tree lookup_field_wrapper PARAMS ((tree, tree));
157 static int   duplicate_declaration_error_p PARAMS ((tree, tree, tree));
158 static void  register_fields PARAMS ((int, tree, tree));
159 static tree parser_qualified_classname PARAMS ((tree));
160 static int  parser_check_super PARAMS ((tree, tree, tree));
161 static int  parser_check_super_interface PARAMS ((tree, tree, tree));
162 static void check_modifiers_consistency PARAMS ((int));
163 static tree lookup_cl PARAMS ((tree));
164 static tree lookup_java_method2 PARAMS ((tree, tree, int));
165 static tree method_header PARAMS ((int, tree, tree, tree));
166 static void fix_method_argument_names PARAMS ((tree ,tree));
167 static tree method_declarator PARAMS ((tree, tree));
168 static void parse_warning_context PARAMS ((tree cl, const char *msg, ...))
169   ATTRIBUTE_PRINTF_2;
170 static void issue_warning_error_from_context PARAMS ((tree, const char *msg, va_list));
171 static void parse_ctor_invocation_error PARAMS ((void));
172 static tree parse_jdk1_1_error PARAMS ((const char *));
173 static void complete_class_report_errors PARAMS ((jdep *));
174 static int process_imports PARAMS ((void));
175 static void read_import_dir PARAMS ((tree));
176 static int find_in_imports_on_demand PARAMS ((tree));
177 static void find_in_imports PARAMS ((tree));
178 static void check_inner_class_access PARAMS ((tree, tree, tree));
179 static int check_pkg_class_access PARAMS ((tree, tree));
180 static void register_package PARAMS ((tree));
181 static tree resolve_package PARAMS ((tree, tree *));
182 static tree lookup_package_type PARAMS ((const char *, int));
183 static tree lookup_package_type_and_set_next PARAMS ((const char *, int, tree *));
184 static tree resolve_class PARAMS ((tree, tree, tree, tree));
185 static void declare_local_variables PARAMS ((int, tree, tree));
186 static void source_start_java_method PARAMS ((tree));
187 static void source_end_java_method PARAMS ((void));
188 static void expand_start_java_method PARAMS ((tree));
189 static tree find_name_in_single_imports PARAMS ((tree));
190 static void check_abstract_method_header PARAMS ((tree));
191 static tree lookup_java_interface_method2 PARAMS ((tree, tree));
192 static tree resolve_expression_name PARAMS ((tree, tree *));
193 static tree maybe_create_class_interface_decl PARAMS ((tree, tree, tree, tree));
194 static int check_class_interface_creation PARAMS ((int, int, tree, 
195                                                   tree, tree, tree));
196 static tree patch_method_invocation PARAMS ((tree, tree, tree, 
197                                             int *, tree *));
198 static int breakdown_qualified PARAMS ((tree *, tree *, tree));
199 static tree resolve_and_layout PARAMS ((tree, tree));
200 static tree qualify_and_find PARAMS ((tree, tree, tree));
201 static tree resolve_no_layout PARAMS ((tree, tree));
202 static int invocation_mode PARAMS ((tree, int));
203 static tree find_applicable_accessible_methods_list PARAMS ((int, tree, 
204                                                             tree, tree));
205 static void search_applicable_methods_list PARAMS ((int, tree, tree, tree, 
206                                                    tree *, tree *));
207 static tree find_most_specific_methods_list PARAMS ((tree));
208 static int argument_types_convertible PARAMS ((tree, tree));
209 static tree patch_invoke PARAMS ((tree, tree, tree));
210 static int maybe_use_access_method PARAMS ((int, tree *, tree *));
211 static tree lookup_method_invoke PARAMS ((int, tree, tree, tree, tree));
212 static tree register_incomplete_type PARAMS ((int, tree, tree, tree));
213 static tree obtain_incomplete_type PARAMS ((tree));
214 static tree java_complete_lhs PARAMS ((tree));
215 static tree java_complete_tree PARAMS ((tree));
216 static tree maybe_generate_pre_expand_clinit PARAMS ((tree));
217 static int maybe_yank_clinit PARAMS ((tree));
218 static void java_complete_expand_method PARAMS ((tree));
219 static int  unresolved_type_p PARAMS ((tree, tree *));
220 static void create_jdep_list PARAMS ((struct parser_ctxt *));
221 static tree build_expr_block PARAMS ((tree, tree));
222 static tree enter_block PARAMS ((void));
223 static tree enter_a_block PARAMS ((tree));
224 static tree exit_block PARAMS ((void));
225 static tree lookup_name_in_blocks PARAMS ((tree));
226 static void maybe_absorb_scoping_blocks PARAMS ((void));
227 static tree build_method_invocation PARAMS ((tree, tree));
228 static tree build_new_invocation PARAMS ((tree, tree));
229 static tree build_assignment PARAMS ((int, int, tree, tree));
230 static tree build_binop PARAMS ((enum tree_code, int, tree, tree));
231 static int check_final_assignment PARAMS ((tree ,tree));
232 static tree patch_assignment PARAMS ((tree, tree, tree ));
233 static tree patch_binop PARAMS ((tree, tree, tree));
234 static tree build_unaryop PARAMS ((int, int, tree));
235 static tree build_incdec PARAMS ((int, int, tree, int));
236 static tree patch_unaryop PARAMS ((tree, tree));
237 static tree build_cast PARAMS ((int, tree, tree));
238 static tree build_null_of_type PARAMS ((tree));
239 static tree patch_cast PARAMS ((tree, tree));
240 static int valid_ref_assignconv_cast_p PARAMS ((tree, tree, int));
241 static int valid_builtin_assignconv_identity_widening_p PARAMS ((tree, tree));
242 static int valid_cast_to_p PARAMS ((tree, tree));
243 static int valid_method_invocation_conversion_p PARAMS ((tree, tree));
244 static tree try_builtin_assignconv PARAMS ((tree, tree, tree));
245 static tree try_reference_assignconv PARAMS ((tree, tree));
246 static tree build_unresolved_array_type PARAMS ((tree));
247 static tree build_array_from_name PARAMS ((tree, tree, tree, tree *));
248 static tree build_array_ref PARAMS ((int, tree, tree));
249 static tree patch_array_ref PARAMS ((tree));
250 static tree make_qualified_name PARAMS ((tree, tree, int));
251 static tree merge_qualified_name PARAMS ((tree, tree));
252 static tree make_qualified_primary PARAMS ((tree, tree, int));
253 static int resolve_qualified_expression_name PARAMS ((tree, tree *, 
254                                                      tree *, tree *));
255 static void qualify_ambiguous_name PARAMS ((tree));
256 static tree resolve_field_access PARAMS ((tree, tree *, tree *));
257 static tree build_newarray_node PARAMS ((tree, tree, int));
258 static tree patch_newarray PARAMS ((tree));
259 static tree resolve_type_during_patch PARAMS ((tree));
260 static tree build_this PARAMS ((int));
261 static tree build_wfl_wrap PARAMS ((tree, int));
262 static tree build_return PARAMS ((int, tree));
263 static tree patch_return PARAMS ((tree));
264 static tree maybe_access_field PARAMS ((tree, tree, tree));
265 static int complete_function_arguments PARAMS ((tree));
266 static int check_for_static_method_reference PARAMS ((tree, tree, tree, 
267                                                       tree, tree));
268 static int not_accessible_p PARAMS ((tree, tree, int));
269 static void check_deprecation PARAMS ((tree, tree));
270 static int class_in_current_package PARAMS ((tree));
271 static tree build_if_else_statement PARAMS ((int, tree, tree, tree));
272 static tree patch_if_else_statement PARAMS ((tree));
273 static tree add_stmt_to_compound PARAMS ((tree, tree, tree));
274 static tree add_stmt_to_block PARAMS ((tree, tree, tree));
275 static tree patch_exit_expr PARAMS ((tree));
276 static tree build_labeled_block PARAMS ((int, tree));
277 static tree finish_labeled_statement PARAMS ((tree, tree));
278 static tree build_bc_statement PARAMS ((int, int, tree));
279 static tree patch_bc_statement PARAMS ((tree));
280 static tree patch_loop_statement PARAMS ((tree));
281 static tree build_new_loop PARAMS ((tree));
282 static tree build_loop_body PARAMS ((int, tree, int));
283 static tree finish_loop_body PARAMS ((int, tree, tree, int));
284 static tree build_debugable_stmt PARAMS ((int, tree));
285 static tree finish_for_loop PARAMS ((int, tree, tree, tree));
286 static tree patch_switch_statement PARAMS ((tree));
287 static tree string_constant_concatenation PARAMS ((tree, tree));
288 static tree build_string_concatenation PARAMS ((tree, tree));
289 static tree patch_string_cst PARAMS ((tree));
290 static tree patch_string PARAMS ((tree));
291 static tree build_try_statement PARAMS ((int, tree, tree));
292 static tree build_try_finally_statement PARAMS ((int, tree, tree));
293 static tree patch_try_statement PARAMS ((tree));
294 static tree patch_synchronized_statement PARAMS ((tree, tree));
295 static tree patch_throw_statement PARAMS ((tree, tree));
296 static void check_thrown_exceptions PARAMS ((int, tree));
297 static int check_thrown_exceptions_do PARAMS ((tree));
298 static void purge_unchecked_exceptions PARAMS ((tree));
299 static void check_throws_clauses PARAMS ((tree, tree, tree));
300 static void finish_method_declaration PARAMS ((tree));
301 static tree build_super_invocation PARAMS ((tree));
302 static int verify_constructor_circularity PARAMS ((tree, tree));
303 static char *constructor_circularity_msg PARAMS ((tree, tree));
304 static tree build_this_super_qualified_invocation PARAMS ((int, tree, tree,
305                                                           int, int));
306 static const char *get_printable_method_name PARAMS ((tree));
307 static tree patch_conditional_expr PARAMS ((tree, tree, tree));
308 static tree generate_finit PARAMS ((tree));
309 static void add_instance_initializer PARAMS ((tree));
310 static void fix_constructors PARAMS ((tree));
311 static tree build_alias_initializer_parameter_list PARAMS ((int, tree,
312                                                             tree, int *));
313 static void craft_constructor PARAMS ((tree, tree));
314 static int verify_constructor_super PARAMS ((tree));
315 static tree create_artificial_method PARAMS ((tree, int, tree, tree, tree));
316 static void start_artificial_method_body PARAMS ((tree));
317 static void end_artificial_method_body PARAMS ((tree));
318 static int check_method_redefinition PARAMS ((tree, tree));
319 static int reset_method_name PARAMS ((tree));
320 static int check_method_types_complete PARAMS ((tree));
321 static void java_check_regular_methods PARAMS ((tree));
322 static void java_check_abstract_methods PARAMS ((tree));
323 static tree maybe_build_primttype_type_ref PARAMS ((tree, tree));
324 static void unreachable_stmt_error PARAMS ((tree));
325 static tree find_expr_with_wfl PARAMS ((tree));
326 static void missing_return_error PARAMS ((tree));
327 static tree build_new_array_init PARAMS ((int, tree));
328 static tree patch_new_array_init PARAMS ((tree, tree));
329 static tree maybe_build_array_element_wfl PARAMS ((tree));
330 static int array_constructor_check_entry PARAMS ((tree, tree));
331 static const char *purify_type_name PARAMS ((const char *));
332 static tree fold_constant_for_init PARAMS ((tree, tree));
333 static tree strip_out_static_field_access_decl PARAMS ((tree));
334 static jdeplist *reverse_jdep_list PARAMS ((struct parser_ctxt *));
335 static void static_ref_err PARAMS ((tree, tree, tree));
336 static void parser_add_interface PARAMS ((tree, tree, tree));
337 static void add_superinterfaces PARAMS ((tree, tree));
338 static tree jdep_resolve_class PARAMS ((jdep *));
339 static int note_possible_classname PARAMS ((const char *, int));
340 static void java_complete_expand_classes PARAMS ((void));
341 static void java_complete_expand_class PARAMS ((tree));
342 static void java_complete_expand_methods PARAMS ((tree));
343 static tree cut_identifier_in_qualified PARAMS ((tree));
344 static tree java_stabilize_reference PARAMS ((tree));
345 static tree do_unary_numeric_promotion PARAMS ((tree));
346 static char * operator_string PARAMS ((tree));
347 static tree do_merge_string_cste PARAMS ((tree, const char *, int, int));
348 static tree merge_string_cste PARAMS ((tree, tree, int));
349 static tree java_refold PARAMS ((tree));
350 static int java_decl_equiv PARAMS ((tree, tree));
351 static int binop_compound_p PARAMS ((enum tree_code));
352 static tree search_loop PARAMS ((tree));
353 static int labeled_block_contains_loop_p PARAMS ((tree, tree));
354 static void check_abstract_method_definitions PARAMS ((int, tree, tree));
355 static void java_check_abstract_method_definitions PARAMS ((tree));
356 static void java_debug_context_do PARAMS ((int));
357 static void java_parser_context_push_initialized_field PARAMS ((void));
358 static void java_parser_context_pop_initialized_field PARAMS ((void));
359 static tree reorder_static_initialized PARAMS ((tree));
360 static void java_parser_context_suspend PARAMS ((void));
361 static void java_parser_context_resume PARAMS ((void));
362
363 /* JDK 1.1 work. FIXME */
364
365 static tree maybe_make_nested_class_name PARAMS ((tree));
366 static void make_nested_class_name PARAMS ((tree));
367 static void set_nested_class_simple_name_value PARAMS ((tree, int));
368 static void link_nested_class_to_enclosing PARAMS ((void));
369 static tree find_as_inner_class PARAMS ((tree, tree, tree));
370 static tree find_as_inner_class_do PARAMS ((tree, tree));
371 static int check_inner_class_redefinition PARAMS ((tree, tree));
372
373 static tree build_thisn_assign PARAMS ((void));
374 static tree build_current_thisn PARAMS ((tree));
375 static tree build_access_to_thisn PARAMS ((tree, tree, int));
376 static tree maybe_build_thisn_access_method PARAMS ((tree));
377
378 static tree build_outer_field_access PARAMS ((tree, tree));
379 static tree build_outer_field_access_methods PARAMS ((tree));
380 static tree build_outer_field_access_expr PARAMS ((int, tree, tree, 
381                                                   tree, tree));
382 static tree build_outer_method_access_method PARAMS ((tree));
383 static tree build_new_access_id PARAMS ((void));
384 static tree build_outer_field_access_method PARAMS ((tree, tree, tree,
385                                                     tree, tree));
386
387 static int outer_field_access_p PARAMS ((tree, tree));
388 static int outer_field_expanded_access_p PARAMS ((tree, tree *, 
389                                                  tree *, tree *));
390 static tree outer_field_access_fix PARAMS ((tree, tree, tree));
391 static tree build_incomplete_class_ref PARAMS ((int, tree));
392 static tree patch_incomplete_class_ref PARAMS ((tree));
393 static tree create_anonymous_class PARAMS ((int, tree));
394 static void patch_anonymous_class PARAMS ((tree, tree, tree));
395 static void add_inner_class_fields PARAMS ((tree, tree));
396
397 static tree build_dot_class_method PARAMS ((tree));
398 static tree build_dot_class_method_invocation PARAMS ((tree));
399 static void create_new_parser_context PARAMS ((int));
400
401 /* Number of error found so far. */
402 int java_error_count; 
403 /* Number of warning found so far. */
404 int java_warning_count;
405 /* Tell when not to fold, when doing xrefs */
406 int do_not_fold;
407 /* Cyclic inheritance report, as it can be set by layout_class */
408 char *cyclic_inheritance_report;
409
410 /* Tell when we're within an instance initializer */
411 static int in_instance_initializer;
412
413 /* The current parser context */
414 struct parser_ctxt *ctxp;
415
416 /* List of things that were analyzed for which code will be generated */
417 static struct parser_ctxt *ctxp_for_generation = NULL;
418
419 /* binop_lookup maps token to tree_code. It is used where binary
420    operations are involved and required by the parser. RDIV_EXPR
421    covers both integral/floating point division. The code is changed
422    once the type of both operator is worked out.  */
423
424 static enum tree_code binop_lookup[19] = 
425   { 
426     PLUS_EXPR, MINUS_EXPR, MULT_EXPR, RDIV_EXPR, TRUNC_MOD_EXPR,
427     LSHIFT_EXPR, RSHIFT_EXPR, URSHIFT_EXPR, 
428     BIT_AND_EXPR, BIT_XOR_EXPR, BIT_IOR_EXPR,
429     TRUTH_ANDIF_EXPR, TRUTH_ORIF_EXPR,
430     EQ_EXPR, NE_EXPR, GT_EXPR, GE_EXPR, LT_EXPR, LE_EXPR,
431    };
432 #define BINOP_LOOKUP(VALUE)                                             \
433   binop_lookup [((VALUE) - PLUS_TK)%                                    \
434                 (sizeof (binop_lookup) / sizeof (binop_lookup[0]))]
435
436 /* This is the end index for binary operators that can also be used
437    in compound assignements. */
438 #define BINOP_COMPOUND_CANDIDATES 11
439
440 /* Fake WFL used to report error message. It is initialized once if
441    needed and reused with it's location information is overriden.  */
442 tree wfl_operator = NULL_TREE;
443
444 /* The "$L" identifier we use to create labels.  */
445 static tree label_id = NULL_TREE;
446
447 /* The "StringBuffer" identifier used for the String `+' operator. */
448 static tree wfl_string_buffer = NULL_TREE; 
449
450 /* The "append" identifier used for String `+' operator.  */
451 static tree wfl_append = NULL_TREE;
452
453 /* The "toString" identifier used for String `+' operator. */
454 static tree wfl_to_string = NULL_TREE;
455
456 /* The "java.lang" import qualified name.  */
457 static tree java_lang_id = NULL_TREE;
458
459 /* The generated `inst$' identifier used for generated enclosing
460    instance/field access functions.  */
461 static tree inst_id = NULL_TREE;
462
463 /* The "java.lang.Cloneable" qualified name.  */
464 static tree java_lang_cloneable = NULL_TREE;
465
466 /* Context and flag for static blocks */
467 static tree current_static_block = NULL_TREE;
468
469 /* The generated `write_parm_value$' identifier.  */
470 static tree wpv_id;
471
472 /* The list of all packages we've seen so far */
473 static tree package_list = NULL_TREE;
474  
475 /* Check modifiers. If one doesn't fit, retrieve it in its declaration
476    line and point it out.  */
477 /* Should point out the one that don't fit. ASCII/unicode, going
478    backward. FIXME */
479
480 #define check_modifiers(__message, __value, __mask) do {        \
481   if ((__value) & ~(__mask))                                    \
482     {                                                           \
483       int i, remainder = (__value) & ~(__mask);                 \
484       for (i = 0; i <= 10; i++)                                 \
485         if ((1 << i) & remainder)                               \
486           parse_error_context (ctxp->modifier_ctx [i], (__message), \
487                                java_accstring_lookup (1 << i)); \
488     }                                                           \
489 } while (0)
490
491
492 #line 418 "./parse.y"
493 typedef union {
494   tree node;
495   int sub_token;
496   struct {
497     int token;
498     int location;
499   } operator;
500   int value;
501 } YYSTYPE;
502 #line 428 "./parse.y"
503
504 #include "lex.c"
505 #ifndef YYDEBUG
506 #define YYDEBUG 1
507 #endif
508
509 #include <stdio.h>
510
511 #ifndef __cplusplus
512 #ifndef __STDC__
513 #define const
514 #endif
515 #endif
516
517
518
519 #define YYFINAL         791
520 #define YYFLAG          -32768
521 #define YYNTBASE        110
522
523 #define YYTRANSLATE(x) ((unsigned)(x) <= 363 ? yytranslate[x] : 272)
524
525 static const char yytranslate[] = {     0,
526      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
527      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
528      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
529      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
530      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
531      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
532      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
533      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
534      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
535      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
536      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
537      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
538      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
539      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
540      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
541      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
542      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
543      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
544      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
545      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
546      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
547      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
548      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
549      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
550      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
551      2,     2,     2,     2,     2,     1,     3,     4,     5,     6,
552      7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
553     17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
554     27,    28,    29,    30,    31,    32,    33,    34,    35,    36,
555     37,    38,    39,    40,    41,    42,    43,    44,    45,    46,
556     47,    48,    49,    50,    51,    52,    53,    54,    55,    56,
557     57,    58,    59,    60,    61,    62,    63,    64,    65,    66,
558     67,    68,    69,    70,    71,    72,    73,    74,    75,    76,
559     77,    78,    79,    80,    81,    82,    83,    84,    85,    86,
560     87,    88,    89,    90,    91,    92,    93,    94,    95,    96,
561     97,    98,    99,   100,   101,   102,   103,   104,   105,   106,
562    107,   108,   109
563 };
564
565 #if YYDEBUG != 0
566 static const short yyprhs[] = {     0,
567      0,     2,     4,     6,     8,    10,    12,    14,    16,    18,
568     20,    22,    24,    26,    28,    30,    32,    34,    38,    42,
569     46,    50,    54,    56,    58,    60,    64,    66,    67,    69,
570     71,    73,    76,    79,    82,    86,    88,    91,    93,    96,
571    100,   103,   107,   109,   111,   115,   118,   122,   128,   133,
572    139,   141,   143,   145,   147,   149,   152,   153,   161,   162,
573    169,   173,   176,   180,   185,   186,   189,   193,   196,   197,
574    200,   203,   205,   209,   213,   216,   220,   222,   225,   227,
575    229,   231,   233,   235,   238,   240,   242,   244,   248,   253,
576    255,   259,   263,   265,   269,   273,   278,   280,   284,   287,
577    291,   295,   297,   299,   300,   304,   307,   311,   315,   320,
578    325,   328,   332,   335,   339,   342,   346,   351,   355,   359,
579    363,   365,   369,   373,   376,   380,   383,   387,   389,   390,
580    393,   396,   398,   402,   406,   408,   411,   413,   416,   420,
581    422,   423,   427,   430,   434,   438,   443,   446,   450,   454,
582    459,   461,   464,   469,   475,   483,   490,   492,   494,   495,
583    500,   501,   507,   508,   514,   515,   522,   526,   531,   534,
584    538,   541,   545,   548,   552,   554,   557,   559,   561,   563,
585    565,   567,   570,   573,   576,   580,   585,   587,   591,   595,
586    598,   602,   604,   606,   608,   611,   613,   615,   617,   620,
587    623,   627,   629,   631,   633,   635,   637,   639,   641,   643,
588    645,   647,   649,   651,   653,   655,   657,   659,   661,   663,
589    665,   667,   669,   671,   673,   676,   679,   682,   685,   688,
590    691,   694,   697,   701,   706,   711,   717,   722,   728,   735,
591    743,   750,   752,   754,   756,   758,   760,   762,   764,   770,
592    773,   777,   782,   790,   798,   799,   803,   808,   811,   815,
593    821,   824,   828,   832,   837,   839,   842,   845,   847,   850,
594    854,   857,   860,   864,   867,   872,   875,   878,   882,   887,
595    890,   892,   900,   908,   915,   919,   925,   930,   938,   945,
596    948,   951,   955,   958,   959,   961,   963,   966,   967,   969,
597    971,   975,   979,   982,   986,   989,   993,   996,  1000,  1003,
598   1007,  1010,  1014,  1017,  1021,  1025,  1028,  1032,  1038,  1044,
599   1047,  1052,  1056,  1058,  1062,  1066,  1071,  1074,  1076,  1079,
600   1082,  1087,  1090,  1094,  1099,  1102,  1105,  1107,  1109,  1111,
601   1113,  1117,  1119,  1121,  1123,  1125,  1127,  1131,  1135,  1139,
602   1143,  1147,  1151,  1155,  1159,  1163,  1167,  1171,  1177,  1182,
603   1184,  1189,  1195,  1201,  1208,  1212,  1216,  1221,  1227,  1230,
604   1234,  1235,  1243,  1244,  1251,  1255,  1259,  1261,  1265,  1269,
605   1273,  1277,  1282,  1287,  1292,  1297,  1301,  1305,  1307,  1310,
606   1314,  1318,  1321,  1324,  1328,  1332,  1336,  1340,  1343,  1347,
607   1352,  1358,  1365,  1371,  1378,  1383,  1388,  1393,  1398,  1402,
608   1407,  1411,  1416,  1418,  1420,  1422,  1424,  1427,  1430,  1432,
609   1434,  1437,  1440,  1442,  1445,  1448,  1451,  1454,  1457,  1460,
610   1462,  1465,  1468,  1470,  1473,  1476,  1482,  1487,  1492,  1498,
611   1503,  1506,  1512,  1517,  1523,  1525,  1529,  1533,  1537,  1541,
612   1545,  1549,  1551,  1555,  1559,  1563,  1567,  1569,  1573,  1577,
613   1581,  1585,  1589,  1593,  1595,  1599,  1603,  1607,  1611,  1615,
614   1619,  1623,  1627,  1631,  1635,  1637,  1641,  1645,  1649,  1653,
615   1655,  1659,  1663,  1665,  1669,  1673,  1675,  1679,  1683,  1685,
616   1689,  1693,  1695,  1699,  1703,  1705,  1711,  1716,  1720,  1726,
617   1728,  1730,  1734,  1738,  1740,  1742,  1744,  1746,  1748,  1750
618 };
619
620 static const short yyrhs[] = {   123,
621      0,   104,     0,   105,     0,   108,     0,   103,     0,   102,
622      0,   109,     0,   113,     0,   114,     0,    82,     0,    85,
623      0,    50,     0,   115,     0,   118,     0,   119,     0,   115,
624      0,   115,     0,   113,    97,    98,     0,   119,    97,    98,
625      0,   118,    97,    98,     0,   113,    97,     1,     0,   118,
626     97,     1,     0,   120,     0,   121,     0,   122,     0,   119,
627    101,   122,     0,    86,     0,     0,   126,     0,   124,     0,
628    125,     0,   126,   124,     0,   126,   125,     0,   124,   125,
629      0,   126,   124,   125,     0,   127,     0,   124,   127,     0,
630    130,     0,   125,   130,     0,    75,   119,    99,     0,    75,
631      1,     0,    75,   119,     1,     0,   128,     0,   129,     0,
632     55,   119,    99,     0,    55,     1,     0,    55,   119,     1,
633      0,    55,   119,   101,     5,    99,     0,    55,   119,   101,
634      1,     0,    55,   119,   101,     5,     1,     0,   132,     0,
635    167,     0,    99,     0,     1,     0,    44,     0,   131,    44,
636      0,     0,   131,    67,   122,   135,   136,   133,   138,     0,
637      0,    67,   122,   135,   136,   134,   138,     0,   131,    67,
638      1,     0,    67,     1,     0,    67,   122,     1,     0,   131,
639     67,   122,     1,     0,     0,    63,   116,     0,    63,   116,
640      1,     0,    63,     1,     0,     0,    52,   137,     0,    52,
641      1,     0,   117,     0,   137,   100,   117,     0,   137,   100,
642      1,     0,    95,    96,     0,    95,   139,    96,     0,   140,
643      0,   139,   140,     0,   141,     0,   157,     0,   159,     0,
644    180,     0,   142,     0,   142,    99,     0,   147,     0,   132,
645      0,   167,     0,   112,   143,    99,     0,   131,   112,   143,
646     99,     0,   144,     0,   143,   100,   144,     0,   143,   100,
647      1,     0,   145,     0,   145,    92,   146,     0,   145,    92,
648      1,     0,   145,    92,   146,     1,     0,   122,     0,   145,
649     97,    98,     0,   122,     1,     0,   145,    97,     1,     0,
650    145,    98,     1,     0,   270,     0,   178,     0,     0,   149,
651    148,   156,     0,   149,     1,     0,   112,   150,   154,     0,
652     59,   150,   154,     0,   131,   112,   150,   154,     0,   131,
653     59,   150,   154,     0,   112,     1,     0,   131,   112,     1,
654      0,    59,     1,     0,   131,    59,     1,     0,   131,     1,
655      0,   122,    93,    94,     0,   122,    93,   151,    94,     0,
656    150,    97,    98,     0,   122,    93,     1,     0,   150,    97,
657      1,     0,   152,     0,   151,   100,   152,     0,   151,   100,
658      1,     0,   112,   145,     0,   153,   112,   145,     0,   112,
659      1,     0,   153,   112,     1,     0,   131,     0,     0,    53,
660    155,     0,    53,     1,     0,   116,     0,   155,   100,   116,
661      0,   155,   100,     1,     0,   180,     0,   180,    99,     0,
662     99,     0,   158,   180,     0,   158,   180,    99,     0,   131,
663      0,     0,   161,   160,   163,     0,   162,   154,     0,   131,
664    162,   154,     0,   120,    93,    94,     0,   120,    93,   151,
665     94,     0,   181,   164,     0,   181,   165,   164,     0,   181,
666    183,   164,     0,   181,   165,   183,   164,     0,   182,     0,
667    182,    99,     0,   166,    93,    94,    99,     0,   166,    93,
668    239,    94,    99,     0,   119,   101,    65,    93,   239,    94,
669     99,     0,   119,   101,    65,    93,    94,    99,     0,    76,
670      0,    65,     0,     0,    61,   122,   168,   173,     0,     0,
671    131,    61,   122,   169,   173,     0,     0,    61,   122,   172,
672    170,   173,     0,     0,   131,    61,   122,   172,   171,   173,
673      0,    61,   122,     1,     0,   131,    61,   122,     1,     0,
674     63,   117,     0,   172,   100,   117,     0,    63,     1,     0,
675    172,   100,     1,     0,    95,    96,     0,    95,   174,    96,
676      0,   175,     0,   174,   175,     0,   176,     0,   177,     0,
677    132,     0,   167,     0,   142,     0,   149,    99,     0,   149,
678      1,     0,    95,    96,     0,    95,   179,    96,     0,    95,
679    179,   100,    96,     0,   146,     0,   179,   100,   146,     0,
680    179,   100,     1,     0,    95,    96,     0,   181,   183,   182,
681      0,    95,     0,    96,     0,   184,     0,   183,   184,     0,
682    185,     0,   187,     0,   132,     0,   186,    99,     0,   112,
683    143,     0,   153,   112,   143,     0,   189,     0,   192,     0,
684    196,     0,   197,     0,   208,     0,   212,     0,   189,     0,
685    193,     0,   198,     0,   209,     0,   213,     0,   180,     0,
686    190,     0,   194,     0,   199,     0,   211,     0,   219,     0,
687    220,     0,   221,     0,   223,     0,   222,     0,   225,     0,
688     99,     0,   122,    88,     0,   191,   187,     0,   122,     1,
689      0,   191,   188,     0,   195,    99,     0,     1,    99,     0,
690      1,    95,     0,     1,    96,     0,   166,    93,     1,     0,
691    166,    93,    94,     1,     0,   166,    93,   239,     1,     0,
692    166,    93,   239,    94,     1,     0,   119,   101,    65,     1,
693      0,   119,   101,    65,    93,     1,     0,   119,   101,    65,
694     93,   239,     1,     0,   119,   101,    65,    93,   239,    94,
695      1,     0,   119,   101,    65,    93,    94,     1,     0,   267,
696      0,   251,     0,   252,     0,   248,     0,   249,     0,   245,
697      0,   234,     0,    48,    93,   270,    94,   187,     0,    48,
698      1,     0,    48,    93,     1,     0,    48,    93,   270,     1,
699      0,    48,    93,   270,    94,   188,    56,   187,     0,    48,
700     93,   270,    94,   188,    56,   188,     0,     0,   201,   200,
701    202,     0,    68,    93,   270,    94,     0,    68,     1,     0,
702     68,    93,     1,     0,    68,    93,   270,    94,     1,     0,
703     95,    96,     0,    95,   205,    96,     0,    95,   203,    96,
704      0,    95,   203,   205,    96,     0,   204,     0,   203,   204,
705      0,   205,   183,     0,   206,     0,   205,   206,     0,    62,
706    271,    88,     0,    47,    88,     0,    62,     1,     0,    62,
707    271,     1,     0,    47,     1,     0,    66,    93,   270,    94,
708      0,   207,   187,     0,    66,     1,     0,    66,    93,     1,
709      0,    66,    93,   270,     1,     0,   207,   188,     0,    51,
710      0,   210,   187,    66,    93,   270,    94,    99,     0,   215,
711     99,   270,    99,   217,    94,   187,     0,   215,    99,    99,
712    217,    94,   187,     0,   215,    99,     1,     0,   215,    99,
713    270,    99,     1,     0,   215,    99,    99,     1,     0,   215,
714     99,   270,    99,   217,    94,   188,     0,   215,    99,    99,
715    217,    94,   188,     0,    71,    93,     0,    71,     1,     0,
716     71,    93,     1,     0,   214,   216,     0,     0,   218,     0,
717    186,     0,   218,     1,     0,     0,   218,     0,   195,     0,
718    218,   100,   195,     0,   218,   100,     1,     0,    54,    99,
719      0,    54,   122,    99,     0,    54,     1,     0,    54,   122,
720      1,     0,    73,    99,     0,    73,   122,    99,     0,    73,
721      1,     0,    73,   122,     1,     0,    58,    99,     0,    58,
722    270,    99,     0,    58,     1,     0,    58,   270,     1,     0,
723     49,   270,    99,     0,    49,     1,     0,    49,   270,     1,
724      0,   224,    93,   270,    94,   180,     0,   224,    93,   270,
725     94,     1,     0,   224,     1,     0,   224,    93,     1,    94,
726      0,   224,    93,     1,     0,   131,     0,    70,   180,   226,
727      0,    70,   180,   229,     0,    70,   180,   226,   229,     0,
728     70,     1,     0,   227,     0,   226,   227,     0,   228,   180,
729      0,    60,    93,   152,    94,     0,    60,     1,     0,    60,
730     93,     1,     0,    60,    93,     1,    94,     0,    64,   180,
731      0,    64,     1,     0,   231,     0,   240,     0,   111,     0,
732     76,     0,    93,   270,    94,     0,   234,     0,   244,     0,
733    245,     0,   246,     0,   233,     0,   119,   101,    76,     0,
734     93,   270,     1,     0,   119,   101,     1,     0,   113,   101,
735      1,     0,    59,   101,     1,     0,   113,    97,    98,     0,
736    119,    97,    98,     0,   119,   101,    67,     0,   232,   101,
737     67,     0,   113,   101,    67,     0,    59,   101,    67,     0,
738     72,   116,    93,   239,    94,     0,    72,   116,    93,    94,
739      0,   235,     0,   238,   122,    93,    94,     0,   238,   122,
740     93,    94,   138,     0,   238,   122,    93,   239,    94,     0,
741    238,   122,    93,   239,    94,   138,     0,    72,     1,    99,
742      0,    72,   116,     1,     0,    72,   116,    93,     1,     0,
743     72,   116,    93,   239,     1,     0,   238,     1,     0,   238,
744    122,     1,     0,     0,    72,   116,    93,   239,    94,   236,
745    138,     0,     0,    72,   116,    93,    94,   237,   138,     0,
746    119,   101,    72,     0,   230,   101,    72,     0,   270,     0,
747    239,   100,   270,     0,   239,   100,     1,     0,    72,   113,
748    241,     0,    72,   115,   241,     0,    72,   113,   241,   243,
749      0,    72,   115,   241,   243,     0,    72,   115,   243,   178,
750      0,    72,   113,   243,   178,     0,    72,     1,    98,     0,
751     72,     1,    97,     0,   242,     0,   241,   242,     0,    97,
752    270,    98,     0,    97,   270,     1,     0,    97,     1,     0,
753     97,    98,     0,   243,    97,    98,     0,   243,    97,     1,
754      0,   230,   101,   122,     0,    65,   101,   122,     0,    65,
755      1,     0,   119,    93,    94,     0,   119,    93,   239,    94,
756      0,   230,   101,   122,    93,    94,     0,   230,   101,   122,
757     93,   239,    94,     0,    65,   101,   122,    93,    94,     0,
758     65,   101,   122,    93,   239,    94,     0,    65,   101,     1,
759     94,     0,    65,   101,     1,   101,     0,   119,    97,   270,
760     98,     0,   231,    97,   270,    98,     0,   119,    97,     1,
761      0,   119,    97,   270,     1,     0,   231,    97,     1,     0,
762    231,    97,   270,     1,     0,   230,     0,   119,     0,   248,
763      0,   249,     0,   247,    46,     0,   247,    45,     0,   251,
764      0,   252,     0,     3,   250,     0,     4,   250,     0,   253,
765      0,     3,     1,     0,     4,     1,     0,    46,   250,     0,
766     46,     1,     0,    45,   250,     0,    45,     1,     0,   247,
767      0,    89,   250,     0,    90,   250,     0,   254,     0,    89,
768      1,     0,    90,     1,     0,    93,   113,   243,    94,   250,
769      0,    93,   113,    94,   250,     0,    93,   270,    94,   253,
770      0,    93,   119,   243,    94,   253,     0,    93,   113,    97,
771      1,     0,    93,     1,     0,    93,   113,   243,    94,     1,
772      0,    93,   113,    94,     1,     0,    93,   119,   243,    94,
773      1,     0,   250,     0,   255,     5,   250,     0,   255,     6,
774    250,     0,   255,     7,   250,     0,   255,     5,     1,     0,
775    255,     6,     1,     0,   255,     7,     1,     0,   255,     0,
776    256,     3,   255,     0,   256,     4,   255,     0,   256,     3,
777      1,     0,   256,     4,     1,     0,   256,     0,   257,     8,
778    256,     0,   257,     9,   256,     0,   257,    10,   256,     0,
779    257,     8,     1,     0,   257,     9,     1,     0,   257,    10,
780      1,     0,   257,     0,   258,    20,   257,     0,   258,    18,
781    257,     0,   258,    21,   257,     0,   258,    19,   257,     0,
782    258,    57,   114,     0,   258,    20,     1,     0,   258,    18,
783      1,     0,   258,    21,     1,     0,   258,    19,     1,     0,
784    258,    57,     1,     0,   258,     0,   259,    16,   258,     0,
785    259,    17,   258,     0,   259,    16,     1,     0,   259,    17,
786      1,     0,   259,     0,   260,    11,   259,     0,   260,    11,
787      1,     0,   260,     0,   261,    12,   260,     0,   261,    12,
788      1,     0,   261,     0,   262,    13,   261,     0,   262,    13,
789      1,     0,   262,     0,   263,    14,   262,     0,   263,    14,
790      1,     0,   263,     0,   264,    15,   263,     0,   264,    15,
791      1,     0,   264,     0,   264,    87,   270,    88,   265,     0,
792    264,    87,    88,     1,     0,   264,    87,     1,     0,   264,
793     87,   270,    88,     1,     0,   265,     0,   267,     0,   268,
794    269,   266,     0,   268,   269,     1,     0,   119,     0,   244,
795      0,   246,     0,    91,     0,    92,     0,   266,     0,   270,
796      0
797 };
798
799 #endif
800
801 #if YYDEBUG != 0
802 static const short yyrline[] = { 0,
803    577,   583,   585,   586,   587,   588,   589,   593,   595,   598,
804    600,   601,   604,   606,   609,   613,   617,   621,   627,   629,
805    631,   633,   638,   640,   643,   652,   657,   662,   664,   665,
806    666,   667,   668,   669,   670,   673,   678,   684,   686,   689,
807    695,   697,   701,   703,   706,   733,   735,   739,   752,   754,
808    758,   761,   763,   765,   775,   780,   795,   799,   799,   802,
809    802,   804,   806,   811,   815,   817,   819,   821,   825,   827,
810    829,   836,   842,   847,   851,   860,   870,   872,   875,   877,
811    878,   879,   886,   888,   890,   891,   893,   898,   901,   911,
812    914,   916,   920,   923,   930,   936,   944,   946,   948,   950,
813    952,   956,   958,   962,   973,   974,   978,   981,   983,   985,
814    987,   992,   994,   996,   998,  1005,  1011,  1013,  1022,  1024,
815   1028,  1033,  1038,  1042,  1047,  1052,  1057,  1064,  1074,  1076,
816   1078,  1082,  1085,  1087,  1091,  1093,  1094,  1099,  1105,  1112,
817   1128,  1135,  1138,  1141,  1145,  1151,  1155,  1164,  1166,  1168,
818   1172,  1174,  1177,  1184,  1192,  1194,  1198,  1205,  1215,  1219,
819   1219,  1222,  1222,  1225,  1225,  1228,  1228,  1230,  1234,  1240,
820   1245,  1247,  1251,  1254,  1258,  1260,  1263,  1265,  1266,  1268,
821   1272,  1276,  1282,  1287,  1290,  1292,  1296,  1302,  1306,  1311,
822   1320,  1324,  1329,  1343,  1345,  1348,  1350,  1352,  1359,  1363,
823   1366,  1370,  1372,  1373,  1374,  1375,  1376,  1380,  1382,  1383,
824   1384,  1385,  1389,  1391,  1392,  1393,  1394,  1395,  1396,  1397,
825   1398,  1399,  1400,  1403,  1408,  1419,  1422,  1426,  1433,  1443,
826   1449,  1455,  1461,  1463,  1468,  1470,  1475,  1477,  1479,  1481,
827   1483,  1487,  1489,  1490,  1491,  1492,  1493,  1494,  1497,  1503,
828   1505,  1507,  1511,  1516,  1521,  1527,  1537,  1543,  1545,  1547,
829   1554,  1557,  1559,  1561,  1565,  1567,  1570,  1574,  1576,  1579,
830   1586,  1592,  1594,  1596,  1600,  1608,  1611,  1613,  1615,  1619,
831   1624,  1633,  1638,  1645,  1652,  1654,  1656,  1660,  1663,  1672,
832   1679,  1681,  1685,  1698,  1700,  1706,  1712,  1716,  1718,  1722,
833   1725,  1727,  1731,  1734,  1736,  1738,  1742,  1745,  1747,  1749,
834   1753,  1756,  1758,  1760,  1764,  1770,  1772,  1776,  1783,  1785,
835   1787,  1789,  1793,  1805,  1808,  1810,  1815,  1819,  1821,  1828,
836   1836,  1853,  1855,  1860,  1864,  1867,  1872,  1874,  1877,  1879,
837   1881,  1883,  1884,  1885,  1886,  1887,  1891,  1896,  1898,  1900,
838   1902,  1909,  1915,  1924,  1927,  1929,  1931,  1935,  1938,  1940,
839   1944,  1950,  1951,  1957,  1958,  1960,  1962,  1964,  1966,  1968,
840   1977,  1981,  2011,  2014,  2028,  2031,  2035,  2041,  2046,  2050,
841   2053,  2055,  2057,  2061,  2070,  2078,  2080,  2084,  2087,  2091,
842   2102,  2104,  2112,  2139,  2141,  2145,  2150,  2157,  2161,  2164,
843   2166,  2177,  2188,  2193,  2202,  2204,  2208,  2211,  2213,  2218,
844   2223,  2228,  2235,  2237,  2238,  2239,  2242,  2247,  2252,  2254,
845   2255,  2257,  2259,  2260,  2262,  2266,  2269,  2273,  2276,  2280,
846   2282,  2284,  2286,  2287,  2289,  2293,  2302,  2304,  2306,  2319,
847   2321,  2327,  2329,  2331,  2335,  2337,  2342,  2347,  2352,  2354,
848   2356,  2360,  2362,  2367,  2372,  2374,  2378,  2380,  2385,  2390,
849   2395,  2397,  2399,  2403,  2405,  2410,  2415,  2420,  2425,  2427,
850   2429,  2431,  2433,  2435,  2439,  2441,  2446,  2451,  2453,  2457,
851   2459,  2464,  2468,  2470,  2475,  2479,  2481,  2486,  2490,  2492,
852   2497,  2501,  2503,  2508,  2512,  2514,  2519,  2525,  2527,  2531,
853   2533,  2536,  2539,  2547,  2549,  2550,  2553,  2555,  2558,  2562
854 };
855 #endif
856
857
858 #if YYDEBUG != 0 || defined (YYERROR_VERBOSE)
859
860 static const char * const yytname[] = {   "$","error","$undefined.","PLUS_TK",
861 "MINUS_TK","MULT_TK","DIV_TK","REM_TK","LS_TK","SRS_TK","ZRS_TK","AND_TK","XOR_TK",
862 "OR_TK","BOOL_AND_TK","BOOL_OR_TK","EQ_TK","NEQ_TK","GT_TK","GTE_TK","LT_TK",
863 "LTE_TK","PLUS_ASSIGN_TK","MINUS_ASSIGN_TK","MULT_ASSIGN_TK","DIV_ASSIGN_TK",
864 "REM_ASSIGN_TK","LS_ASSIGN_TK","SRS_ASSIGN_TK","ZRS_ASSIGN_TK","AND_ASSIGN_TK",
865 "XOR_ASSIGN_TK","OR_ASSIGN_TK","PUBLIC_TK","PRIVATE_TK","PROTECTED_TK","STATIC_TK",
866 "FINAL_TK","SYNCHRONIZED_TK","VOLATILE_TK","TRANSIENT_TK","NATIVE_TK","PAD_TK",
867 "ABSTRACT_TK","MODIFIER_TK","DECR_TK","INCR_TK","DEFAULT_TK","IF_TK","THROW_TK",
868 "BOOLEAN_TK","DO_TK","IMPLEMENTS_TK","THROWS_TK","BREAK_TK","IMPORT_TK","ELSE_TK",
869 "INSTANCEOF_TK","RETURN_TK","VOID_TK","CATCH_TK","INTERFACE_TK","CASE_TK","EXTENDS_TK",
870 "FINALLY_TK","SUPER_TK","WHILE_TK","CLASS_TK","SWITCH_TK","CONST_TK","TRY_TK",
871 "FOR_TK","NEW_TK","CONTINUE_TK","GOTO_TK","PACKAGE_TK","THIS_TK","BYTE_TK","SHORT_TK",
872 "INT_TK","LONG_TK","CHAR_TK","INTEGRAL_TK","FLOAT_TK","DOUBLE_TK","FP_TK","ID_TK",
873 "REL_QM_TK","REL_CL_TK","NOT_TK","NEG_TK","ASSIGN_ANY_TK","ASSIGN_TK","OP_TK",
874 "CP_TK","OCB_TK","CCB_TK","OSB_TK","CSB_TK","SC_TK","C_TK","DOT_TK","STRING_LIT_TK",
875 "CHAR_LIT_TK","INT_LIT_TK","FP_LIT_TK","TRUE_TK","FALSE_TK","BOOL_LIT_TK","NULL_TK",
876 "goal","literal","type","primitive_type","reference_type","class_or_interface_type",
877 "class_type","interface_type","array_type","name","simple_name","qualified_name",
878 "identifier","compilation_unit","import_declarations","type_declarations","package_declaration",
879 "import_declaration","single_type_import_declaration","type_import_on_demand_declaration",
880 "type_declaration","modifiers","class_declaration","@1","@2","super","interfaces",
881 "interface_type_list","class_body","class_body_declarations","class_body_declaration",
882 "class_member_declaration","field_declaration","variable_declarators","variable_declarator",
883 "variable_declarator_id","variable_initializer","method_declaration","@3","method_header",
884 "method_declarator","formal_parameter_list","formal_parameter","final","throws",
885 "class_type_list","method_body","static_initializer","static","constructor_declaration",
886 "@4","constructor_header","constructor_declarator","constructor_body","constructor_block_end",
887 "explicit_constructor_invocation","this_or_super","interface_declaration","@5",
888 "@6","@7","@8","extends_interfaces","interface_body","interface_member_declarations",
889 "interface_member_declaration","constant_declaration","abstract_method_declaration",
890 "array_initializer","variable_initializers","block","block_begin","block_end",
891 "block_statements","block_statement","local_variable_declaration_statement",
892 "local_variable_declaration","statement","statement_nsi","statement_without_trailing_substatement",
893 "empty_statement","label_decl","labeled_statement","labeled_statement_nsi","expression_statement",
894 "statement_expression","if_then_statement","if_then_else_statement","if_then_else_statement_nsi",
895 "switch_statement","@9","switch_expression","switch_block","switch_block_statement_groups",
896 "switch_block_statement_group","switch_labels","switch_label","while_expression",
897 "while_statement","while_statement_nsi","do_statement_begin","do_statement",
898 "for_statement","for_statement_nsi","for_header","for_begin","for_init","for_update",
899 "statement_expression_list","break_statement","continue_statement","return_statement",
900 "throw_statement","synchronized_statement","synchronized","try_statement","catches",
901 "catch_clause","catch_clause_parameter","finally","primary","primary_no_new_array",
902 "array_type_literal","type_literals","class_instance_creation_expression","anonymous_class_creation",
903 "@10","@11","something_dot_new","argument_list","array_creation_expression",
904 "dim_exprs","dim_expr","dims","field_access","method_invocation","array_access",
905 "postfix_expression","post_increment_expression","post_decrement_expression",
906 "unary_expression","pre_increment_expression","pre_decrement_expression","unary_expression_not_plus_minus",
907 "cast_expression","multiplicative_expression","additive_expression","shift_expression",
908 "relational_expression","equality_expression","and_expression","exclusive_or_expression",
909 "inclusive_or_expression","conditional_and_expression","conditional_or_expression",
910 "conditional_expression","assignment_expression","assignment","left_hand_side",
911 "assignment_operator","expression","constant_expression", NULL
912 };
913 #endif
914
915 static const short yyr1[] = {     0,
916    110,   111,   111,   111,   111,   111,   111,   112,   112,   113,
917    113,   113,   114,   114,   115,   116,   117,   118,   118,   118,
918    118,   118,   119,   119,   120,   121,   122,   123,   123,   123,
919    123,   123,   123,   123,   123,   124,   124,   125,   125,   126,
920    126,   126,   127,   127,   128,   128,   128,   129,   129,   129,
921    130,   130,   130,   130,   131,   131,   133,   132,   134,   132,
922    132,   132,   132,   132,   135,   135,   135,   135,   136,   136,
923    136,   137,   137,   137,   138,   138,   139,   139,   140,   140,
924    140,   140,   141,   141,   141,   141,   141,   142,   142,   143,
925    143,   143,   144,   144,   144,   144,   145,   145,   145,   145,
926    145,   146,   146,   148,   147,   147,   149,   149,   149,   149,
927    149,   149,   149,   149,   149,   150,   150,   150,   150,   150,
928    151,   151,   151,   152,   152,   152,   152,   153,   154,   154,
929    154,   155,   155,   155,   156,   156,   156,   157,   157,   158,
930    160,   159,   161,   161,   162,   162,   163,   163,   163,   163,
931    164,   164,   165,   165,   165,   165,   166,   166,   168,   167,
932    169,   167,   170,   167,   171,   167,   167,   167,   172,   172,
933    172,   172,   173,   173,   174,   174,   175,   175,   175,   175,
934    176,   177,   177,   178,   178,   178,   179,   179,   179,   180,
935    180,   181,   182,   183,   183,   184,   184,   184,   185,   186,
936    186,   187,   187,   187,   187,   187,   187,   188,   188,   188,
937    188,   188,   189,   189,   189,   189,   189,   189,   189,   189,
938    189,   189,   189,   190,   191,   192,   192,   193,   194,   194,
939    194,   194,   194,   194,   194,   194,   194,   194,   194,   194,
940    194,   195,   195,   195,   195,   195,   195,   195,   196,   196,
941    196,   196,   197,   198,   200,   199,   201,   201,   201,   201,
942    202,   202,   202,   202,   203,   203,   204,   205,   205,   206,
943    206,   206,   206,   206,   207,   208,   208,   208,   208,   209,
944    210,   211,   212,   212,   212,   212,   212,   213,   213,   214,
945    214,   214,   215,   216,   216,   216,   216,   217,   217,   218,
946    218,   218,   219,   219,   219,   219,   220,   220,   220,   220,
947    221,   221,   221,   221,   222,   222,   222,   223,   223,   223,
948    223,   223,   224,   225,   225,   225,   225,   226,   226,   227,
949    228,   228,   228,   228,   229,   229,   230,   230,   231,   231,
950    231,   231,   231,   231,   231,   231,   231,   231,   231,   231,
951    231,   232,   232,   233,   233,   233,   233,   234,   234,   234,
952    234,   234,   234,   234,   234,   234,   234,   234,   234,   234,
953    236,   235,   237,   235,   238,   238,   239,   239,   239,   240,
954    240,   240,   240,   240,   240,   240,   240,   241,   241,   242,
955    242,   242,   243,   243,   243,   244,   244,   244,   245,   245,
956    245,   245,   245,   245,   245,   245,   246,   246,   246,   246,
957    246,   246,   247,   247,   247,   247,   248,   249,   250,   250,
958    250,   250,   250,   250,   250,   251,   251,   252,   252,   253,
959    253,   253,   253,   253,   253,   254,   254,   254,   254,   254,
960    254,   254,   254,   254,   255,   255,   255,   255,   255,   255,
961    255,   256,   256,   256,   256,   256,   257,   257,   257,   257,
962    257,   257,   257,   258,   258,   258,   258,   258,   258,   258,
963    258,   258,   258,   258,   259,   259,   259,   259,   259,   260,
964    260,   260,   261,   261,   261,   262,   262,   262,   263,   263,
965    263,   264,   264,   264,   265,   265,   265,   265,   265,   266,
966    266,   267,   267,   268,   268,   268,   269,   269,   270,   271
967 };
968
969 static const short yyr2[] = {     0,
970      1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
971      1,     1,     1,     1,     1,     1,     1,     3,     3,     3,
972      3,     3,     1,     1,     1,     3,     1,     0,     1,     1,
973      1,     2,     2,     2,     3,     1,     2,     1,     2,     3,
974      2,     3,     1,     1,     3,     2,     3,     5,     4,     5,
975      1,     1,     1,     1,     1,     2,     0,     7,     0,     6,
976      3,     2,     3,     4,     0,     2,     3,     2,     0,     2,
977      2,     1,     3,     3,     2,     3,     1,     2,     1,     1,
978      1,     1,     1,     2,     1,     1,     1,     3,     4,     1,
979      3,     3,     1,     3,     3,     4,     1,     3,     2,     3,
980      3,     1,     1,     0,     3,     2,     3,     3,     4,     4,
981      2,     3,     2,     3,     2,     3,     4,     3,     3,     3,
982      1,     3,     3,     2,     3,     2,     3,     1,     0,     2,
983      2,     1,     3,     3,     1,     2,     1,     2,     3,     1,
984      0,     3,     2,     3,     3,     4,     2,     3,     3,     4,
985      1,     2,     4,     5,     7,     6,     1,     1,     0,     4,
986      0,     5,     0,     5,     0,     6,     3,     4,     2,     3,
987      2,     3,     2,     3,     1,     2,     1,     1,     1,     1,
988      1,     2,     2,     2,     3,     4,     1,     3,     3,     2,
989      3,     1,     1,     1,     2,     1,     1,     1,     2,     2,
990      3,     1,     1,     1,     1,     1,     1,     1,     1,     1,
991      1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
992      1,     1,     1,     1,     2,     2,     2,     2,     2,     2,
993      2,     2,     3,     4,     4,     5,     4,     5,     6,     7,
994      6,     1,     1,     1,     1,     1,     1,     1,     5,     2,
995      3,     4,     7,     7,     0,     3,     4,     2,     3,     5,
996      2,     3,     3,     4,     1,     2,     2,     1,     2,     3,
997      2,     2,     3,     2,     4,     2,     2,     3,     4,     2,
998      1,     7,     7,     6,     3,     5,     4,     7,     6,     2,
999      2,     3,     2,     0,     1,     1,     2,     0,     1,     1,
1000      3,     3,     2,     3,     2,     3,     2,     3,     2,     3,
1001      2,     3,     2,     3,     3,     2,     3,     5,     5,     2,
1002      4,     3,     1,     3,     3,     4,     2,     1,     2,     2,
1003      4,     2,     3,     4,     2,     2,     1,     1,     1,     1,
1004      3,     1,     1,     1,     1,     1,     3,     3,     3,     3,
1005      3,     3,     3,     3,     3,     3,     3,     5,     4,     1,
1006      4,     5,     5,     6,     3,     3,     4,     5,     2,     3,
1007      0,     7,     0,     6,     3,     3,     1,     3,     3,     3,
1008      3,     4,     4,     4,     4,     3,     3,     1,     2,     3,
1009      3,     2,     2,     3,     3,     3,     3,     2,     3,     4,
1010      5,     6,     5,     6,     4,     4,     4,     4,     3,     4,
1011      3,     4,     1,     1,     1,     1,     2,     2,     1,     1,
1012      2,     2,     1,     2,     2,     2,     2,     2,     2,     1,
1013      2,     2,     1,     2,     2,     5,     4,     4,     5,     4,
1014      2,     5,     4,     5,     1,     3,     3,     3,     3,     3,
1015      3,     1,     3,     3,     3,     3,     1,     3,     3,     3,
1016      3,     3,     3,     1,     3,     3,     3,     3,     3,     3,
1017      3,     3,     3,     3,     1,     3,     3,     3,     3,     1,
1018      3,     3,     1,     3,     3,     1,     3,     3,     1,     3,
1019      3,     1,     3,     3,     1,     5,     4,     3,     5,     1,
1020      1,     3,     3,     1,     1,     1,     1,     1,     1,     1
1021 };
1022
1023 static const short yydefact[] = {     0,
1024     54,    55,     0,     0,     0,     0,    53,     1,     0,     0,
1025      0,    36,    43,    44,    38,     0,    51,    52,    46,    27,
1026      0,    23,    24,    25,     0,    62,     0,    41,     0,     0,
1027     37,    39,     0,     0,    56,     0,     0,    47,    45,     0,
1028    167,     0,     0,   163,    63,     0,    69,    42,    40,     0,
1029      0,     0,    61,     0,    49,     0,    26,   171,    17,   169,
1030     15,     0,   160,     0,     0,    68,    16,     0,     0,    59,
1031    168,     0,   165,    64,    69,    50,    48,    12,     0,    10,
1032     11,   173,     0,     8,     9,    13,    14,    15,     0,   179,
1033    181,     0,   180,     0,   175,   177,   178,   172,   170,   164,
1034     67,    71,    72,    70,     0,   162,     0,    57,   113,     0,
1035    129,   111,     0,     0,    90,    93,   129,     0,     0,     0,
1036    115,     0,     0,   183,   182,   174,   176,     0,     0,    60,
1037    166,     0,     0,     0,     0,   108,    99,    88,     0,     0,
1038      0,     0,   107,    21,    18,    22,    20,    19,   114,   129,
1039    112,     0,   129,    74,    73,   192,    75,    23,     0,    86,
1040      0,    77,    79,    83,    85,     0,    80,     0,    81,   141,
1041    129,    87,    82,     0,    58,   119,   116,     0,   128,     0,
1042    121,     0,   131,   132,   130,   120,   118,    92,     0,    91,
1043     95,     0,     0,     0,     0,     0,     0,     0,   340,     0,
1044      0,     0,     0,     6,     5,     2,     3,     4,     7,   339,
1045      0,   414,     0,   103,   413,   337,     0,   346,   342,   360,
1046      0,   338,   343,   344,   345,   430,   415,   416,   445,   419,
1047    420,   423,   433,   452,   457,   464,   475,   480,   483,   486,
1048    489,   492,   495,   500,   509,   501,     0,   102,   100,    98,
1049    101,   110,    89,   109,   190,     0,   129,    76,    78,    84,
1050    106,     0,   138,     0,   143,     0,     0,     0,   281,     0,
1051      0,     0,     0,     0,     0,     0,     0,   340,     0,   224,
1052      0,     8,   414,     0,   128,   198,     0,     0,   213,     0,
1053    194,   196,     0,   197,   202,   214,     0,   203,   215,     0,
1054    204,   205,   216,   255,     0,   206,     0,   217,   207,   294,
1055      0,   218,   219,   220,   222,   221,     0,   223,   248,   247,
1056      0,   245,   246,   243,   244,   242,   126,   124,   117,     0,
1057      0,     0,   424,   414,   343,   345,   421,   425,   422,   429,
1058    428,   427,   426,     0,   398,     0,     0,     0,    16,     0,
1059    434,   431,   435,   432,   441,     0,   414,     0,   184,   187,
1060      0,     0,     0,     0,     0,     0,    96,     0,     0,     0,
1061    369,     0,   418,   417,     0,     0,     0,     0,     0,     0,
1062      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1063      0,     0,     0,     0,     0,   507,   508,     0,   145,     0,
1064    144,   137,   105,   135,   139,   192,   142,     0,   231,   232,
1065    230,   250,     0,   316,     0,   305,   303,     0,   313,   311,
1066      0,   277,     0,   258,     0,   327,     0,   291,     0,   309,
1067    307,     0,     0,   200,     0,     0,     0,   227,   225,     0,
1068      0,   193,   191,   195,   199,   414,   323,   226,   229,     0,
1069    276,     0,   414,   296,   300,   293,     0,     0,   320,     0,
1070    123,   122,   127,   125,   134,   133,   351,   357,     0,   397,
1071    387,   386,   365,     0,   380,   388,     0,   381,     0,   366,
1072      0,     0,     0,     0,     0,     0,   348,   341,   185,     0,
1073    352,   350,   356,   399,     0,   377,   409,   353,     0,   349,
1074    354,   375,   347,   376,   396,   411,     0,   355,   370,     0,
1075    449,   446,   450,   447,   451,   448,   455,   453,   456,   454,
1076    461,   458,   462,   459,   463,   460,   471,   466,   473,   468,
1077    470,   465,   472,   467,   474,     0,   469,   478,   476,   479,
1078    477,   482,   481,   485,   484,   488,   487,   491,   490,   494,
1079    493,   498,     0,     0,   503,   502,   146,   136,   414,   147,
1080      0,     0,   151,     0,   251,     0,   317,   315,   306,   304,
1081    314,   312,   278,     0,   259,     0,     0,     0,   324,   328,
1082      0,   325,   292,   310,   308,   341,    18,    19,     0,   201,
1083    233,     0,     0,     0,   256,     0,   297,     0,   285,     0,
1084      0,   322,     0,   405,   406,     0,   392,   393,     0,   389,
1085    382,     0,   385,   383,   384,   367,   359,     0,   443,   437,
1086    440,   393,     0,   393,     0,   438,   189,   186,   188,   400,
1087      0,   410,   407,     0,   412,   408,   361,     0,   497,     0,
1088      0,   148,     0,     0,   152,   149,   252,     0,   279,   275,
1089      0,   332,     0,   336,   335,   329,   326,   330,   237,     0,
1090    234,   235,     0,     0,     0,   261,     0,   265,     0,   268,
1091      0,   302,   301,   287,     0,   299,     0,   321,     0,   403,
1092      0,   391,   390,   395,   394,     0,   368,   358,   442,   436,
1093    444,   439,   379,   378,   401,     0,   362,   363,   499,   496,
1094      0,   150,     0,     0,     0,   249,     0,   202,     0,   209,
1095    210,     0,   211,   212,     0,   260,   333,     0,   238,     0,
1096      0,   236,   274,   271,   272,   510,     0,   263,   266,     0,
1097    262,     0,   269,     0,     0,   286,     0,   319,   318,   404,
1098    374,     0,   402,   364,     0,   153,     0,     0,     0,   228,
1099    280,     0,   334,   331,   241,   239,     0,   273,   270,   264,
1100      0,   284,     0,   372,     0,     0,   154,     0,   253,     0,
1101      0,   240,   282,   283,   156,     0,     0,     0,     0,   155,
1102      0,     0,     0,     0,   289,     0,   254,   288,     0,     0,
1103      0
1104 };
1105
1106 static const short yydefgoto[] = {   789,
1107    210,   281,   211,    85,    86,    68,    60,    87,   212,    22,
1108     23,    24,     8,     9,    10,    11,    12,    13,    14,    15,
1109    447,   286,   132,   105,    47,    70,   104,   130,   161,   162,
1110    163,    91,   114,   115,   116,   213,   165,   262,    92,   111,
1111    180,   181,   287,   136,   185,   403,   167,   168,   169,   264,
1112    170,   171,   407,   560,   561,   288,    18,    43,    72,    65,
1113    107,    44,    63,    94,    95,    96,    97,   214,   361,   289,
1114    174,   563,   732,   291,   292,   293,   294,   707,   295,   296,
1115    297,   298,   710,   299,   300,   301,   302,   711,   303,   450,
1116    304,   595,   667,   668,   669,   670,   305,   306,   713,   307,
1117    308,   309,   714,   310,   311,   456,   675,   676,   312,   313,
1118    314,   315,   316,   317,   318,   579,   580,   581,   582,   215,
1119    216,   217,   218,   219,   220,   742,   686,   221,   495,   222,
1120    475,   476,   477,   223,   224,   225,   226,   227,   228,   229,
1121    230,   231,   232,   233,   234,   235,   236,   237,   238,   239,
1122    240,   241,   242,   243,   244,   245,   246,   247,   398,   496,
1123    727
1124 };
1125
1126 static const short yypact[] = {   356,
1127 -32768,-32768,   158,   -35,   339,   439,-32768,-32768,   433,   247,
1128    473,-32768,-32768,-32768,-32768,    29,-32768,-32768,-32768,-32768,
1129     12,-32768,-32768,-32768,   331,-32768,   491,-32768,    71,   469,
1130 -32768,-32768,   520,   562,-32768,   -35,   510,-32768,-32768,   278,
1131 -32768,   521,   -25,    -8,-32768,   526,   349,-32768,-32768,   -35,
1132    591,   343,-32768,   508,-32768,    25,-32768,-32768,-32768,-32768,
1133      7,  1014,-32768,   568,   -25,-32768,-32768,   346,   594,-32768,
1134 -32768,   -25,    -8,-32768,   349,-32768,-32768,-32768,   597,-32768,
1135 -32768,-32768,   607,   165,-32768,-32768,   315,   181,   676,-32768,
1136 -32768,    30,-32768,  1034,-32768,-32768,-32768,-32768,-32768,-32768,
1137 -32768,-32768,-32768,   328,   354,-32768,   -25,-32768,-32768,   370,
1138     -4,-32768,   449,   733,-32768,   201,    -4,   122,   208,   377,
1139 -32768,   608,   616,-32768,-32768,-32768,-32768,   617,   938,-32768,
1140 -32768,   354,   629,   630,   215,-32768,-32768,-32768,   648,  2189,
1141    227,   489,-32768,-32768,-32768,-32768,-32768,-32768,-32768,    -4,
1142 -32768,   743,    -4,-32768,-32768,   412,-32768,   425,   577,-32768,
1143    943,-32768,-32768,   438,-32768,    47,-32768,   455,-32768,-32768,
1144    506,-32768,-32768,  1916,-32768,-32768,-32768,   655,   569,   321,
1145 -32768,   589,-32768,-32768,   532,-32768,-32768,-32768,   485,-32768,
1146 -32768,  3001,  3052,  3117,  3168,   533,    18,   615,-32768,  3233,
1147   3284,  3349,  5298,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1148    302,   915,    63,-32768,   542,   581,   587,-32768,-32768,-32768,
1149    656,-32768,   766,-32768,   780,   846,-32768,-32768,-32768,-32768,
1150 -32768,-32768,-32768,   879,   896,   937,   893,   880,   697,   701,
1151    717,   741,    74,-32768,-32768,-32768,   841,-32768,-32768,-32768,
1152 -32768,-32768,-32768,-32768,-32768,   774,   506,-32768,-32768,-32768,
1153 -32768,   565,   690,   685,-32768,   600,   172,  3400,-32768,   206,
1154   2240,    17,   311,   342,    82,   426,   211,   700,  5597,-32768,
1155    -35,   651,   837,   229,   522,-32768,   589,   705,-32768,  1848,
1156 -32768,-32768,   702,-32768,-32768,-32768,  1984,-32768,-32768,   709,
1157 -32768,-32768,-32768,-32768,  1984,-32768,  1984,-32768,-32768,  5648,
1158    738,-32768,-32768,-32768,-32768,-32768,   436,-32768,   806,   808,
1159    846,   891,   908,-32768,-32768,-32768,-32768,   869,-32768,   654,
1160    684,   686,-32768,   722,-32768,-32768,-32768,-32768,-32768,-32768,
1161 -32768,-32768,-32768,    27,-32768,   691,   860,   724,   724,   452,
1162 -32768,-32768,-32768,-32768,-32768,   694,  1044,    43,-32768,-32768,
1163    669,   747,   222,  5365,  2305,   538,-32768,   279,  3465,   772,
1164 -32768,   458,-32768,-32768,  3516,  3581,  3632,  3697,  3748,  3813,
1165   3864,  3929,  3980,  4045,  4096,  4161,   721,  4212,  4277,  4328,
1166   4393,  4444,  4509,  4560,  2356,-32768,-32768,  4625,-32768,   368,
1167 -32768,-32768,-32768,   750,-32768,-32768,-32768,  1848,-32768,-32768,
1168 -32768,-32768,  4676,-32768,    35,-32768,-32768,    56,-32768,-32768,
1169     70,-32768,  4741,-32768,  4792,-32768,   718,-32768,  5206,-32768,
1170 -32768,   144,   259,   762,   235,  2421,   652,-32768,-32768,   -35,
1171   2472,-32768,-32768,-32768,-32768,  1096,   569,-32768,-32768,   779,
1172 -32768,   810,  1032,-32768,-32768,-32768,    76,  2537,-32768,  4857,
1173 -32768,-32768,-32768,   869,-32768,-32768,-32768,-32768,   -49,   789,
1174 -32768,-32768,-32768,  2588,   724,-32768,   479,   724,   479,-32768,
1175   2653,  4908,   240,   135,  2704,   657,-32768,  1671,-32768,  2124,
1176 -32768,-32768,-32768,-32768,   547,-32768,-32768,-32768,   244,-32768,
1177 -32768,-32768,-32768,-32768,   801,-32768,   251,-32768,-32768,  5416,
1178 -32768,-32768,-32768,-32768,-32768,-32768,-32768,   879,-32768,   879,
1179 -32768,   896,-32768,   896,-32768,   896,-32768,   937,-32768,   937,
1180 -32768,   937,-32768,   937,-32768,   165,-32768,-32768,   893,-32768,
1181    893,-32768,   880,-32768,   697,-32768,   701,-32768,   717,-32768,
1182    741,-32768,   901,   818,-32768,-32768,-32768,-32768,  1076,-32768,
1183   1848,   815,   811,  1848,-32768,   335,-32768,-32768,-32768,-32768,
1184 -32768,-32768,-32768,   351,-32768,   823,   463,   132,   718,-32768,
1185    455,-32768,-32768,-32768,-32768,-32768,   819,   824,   464,   762,
1186 -32768,   941,    66,    -9,-32768,   851,-32768,  5340,-32768,  5231,
1187    840,   854,   857,-32768,-32768,  5481,-32768,-32768,   272,-32768,
1188    864,   294,-32768,   864,-32768,-32768,   878,    94,-32768,-32768,
1189 -32768,   819,  4973,   824,  1120,-32768,-32768,-32768,-32768,-32768,
1190   5024,-32768,-32768,  5532,-32768,-32768,   354,   548,-32768,  5089,
1191    744,-32768,  1848,  2769,-32768,-32768,-32768,  2050,-32768,-32768,
1192    263,-32768,   681,-32768,-32768,-32768,-32768,-32768,-32768,  2820,
1193 -32768,-32768,   963,   212,  5140,-32768,   419,-32768,  1564,-32768,
1194   5597,-32768,-32768,-32768,   881,   886,  5273,-32768,   268,-32768,
1195    728,-32768,-32768,-32768,-32768,   354,-32768,   903,-32768,-32768,
1196 -32768,-32768,-32768,-32768,-32768,   731,-32768,   354,-32768,-32768,
1197    504,-32768,   173,   121,   509,-32768,   940,   944,  2050,-32768,
1198 -32768,  2050,-32768,-32768,   904,-32768,   923,   925,-32768,  1020,
1199    137,-32768,-32768,-32768,-32768,-32768,   262,-32768,-32768,  1646,
1200 -32768,  1780,-32768,   932,  1984,-32768,   942,-32768,-32768,-32768,
1201 -32768,   354,-32768,-32768,  2885,-32768,   182,  4676,  1984,-32768,
1202 -32768,  2936,-32768,-32768,-32768,-32768,  1029,-32768,-32768,-32768,
1203    945,-32768,  1984,-32768,   210,   177,-32768,   401,-32768,  5231,
1204    946,-32768,-32768,-32768,-32768,   224,  2050,   947,  5273,-32768,
1205    975,  2050,   949,  2050,-32768,  2050,-32768,-32768,  1037,  1040,
1206 -32768
1207 };
1208
1209 static const short yypgoto[] = {-32768,
1210 -32768,   -54,   157,   660,    16,  -122,   582,-32768,    -3,   319,
1211 -32768,    64,-32768,  1038,   413,-32768,    69,-32768,-32768,   734,
1212    106,   409,-32768,-32768,   997,   979,-32768,  -131,-32768,   898,
1213 -32768,   -79,  -116,   918,  -167,  -194,-32768,-32768,   -64,   285,
1214    805,  -325,  -129,   -90,-32768,-32768,-32768,-32768,-32768,-32768,
1215 -32768,   907,-32768,  -544,-32768,   662,   -20,-32768,-32768,-32768,
1216 -32768,  1011,   561,-32768,   978,-32768,-32768,  -176,-32768,  -127,
1217    813,   784,  -168,  -276,-32768,   769,  -251,    93,  -560,-32768,
1218   -528,-32768,-32768,-32768,  -263,-32768,-32768,-32768,-32768,-32768,
1219 -32768,-32768,-32768,   415,   416,  -632,  -527,-32768,-32768,-32768,
1220 -32768,-32768,-32768,-32768,  -516,-32768,  -667,   770,-32768,-32768,
1221 -32768,-32768,-32768,-32768,-32768,-32768,   511,-32768,   513,-32768,
1222 -32768,-32768,-32768,   186,-32768,-32768,-32768,-32768,  -426,-32768,
1223    736,   126,  -324,  1163,   192,  1197,   283,   379,   507,  -171,
1224    583,   704,  -472,-32768,   602,   603,   481,   601,   696,   698,
1225    695,   710,   703,-32768,   454,   706,   745,-32768,-32768,   936,
1226 -32768
1227 };
1228
1229
1230 #define YYLAST          5757
1231
1232
1233 static const short yytable[] = {    21,
1234    175,   173,    29,   182,   462,   290,   152,    83,   360,   737,
1235    328,   184,    38,   444,   593,   626,   642,   345,   345,   646,
1236    337,   339,   341,   343,   479,    76,   143,   467,   352,   354,
1237    124,   484,   486,   173,   123,   567,   733,   664,    61,    83,
1238    263,    93,    61,   487,   604,   448,   455,   261,   134,   164,
1239     20,   605,   665,   451,   618,   452,   569,    59,    88,   252,
1240     61,    67,   254,   367,   166,    61,   662,    25,    27,    62,
1241    571,    48,    35,    93,    83,   350,   597,    31,   178,    59,
1242    265,   164,   426,   638,    59,    88,   666,   708,   394,    36,
1243     88,    64,   135,   468,   687,    37,   166,   733,   702,    52,
1244     54,    31,   778,    57,   123,    16,    83,    50,   172,  -158,
1245     39,   783,    40,    57,    16,    16,    16,   346,   346,   709,
1246    712,   662,   144,    77,    61,    88,   182,   331,   125,    88,
1247     61,   715,   654,   568,   404,    16,   488,   756,    16,    16,
1248    172,  -104,   110,    59,   584,  -104,   113,   427,   708,    67,
1249    611,   708,   692,   614,   570,    88,    16,    88,    19,   663,
1250    395,   -94,   -94,   464,   434,   631,   401,    89,   572,    49,
1251    283,    50,   412,   661,  -295,   598,   156,   756,    88,   681,
1252    709,   712,   722,   709,   712,   110,   113,   688,   334,   334,
1253    334,   334,   715,   631,    61,   715,   334,   334,   357,    89,
1254    182,   178,   189,   512,   514,   516,   416,   696,   146,   466,
1255    755,   430,   723,   349,   747,   186,   708,   704,    84,   145,
1256    631,   708,   492,   708,   772,   708,   156,   249,   623,   438,
1257    757,   612,   440,   721,   159,   144,   631,   284,   179,   564,
1258    621,   189,   585,    20,   632,    84,   -31,     1,   709,   712,
1259     84,   635,    88,   709,   712,   709,   712,   709,   712,   487,
1260    715,   118,   758,   716,   413,   715,   159,   715,   738,   715,
1261    776,   746,   682,   -25,   -25,   178,   631,   120,    55,   285,
1262    767,    50,    56,    88,   372,    84,   283,   444,   493,    84,
1263      2,    20,   140,   446,   684,   629,    20,   141,   142,   724,
1264    613,   446,   615,   446,   417,   147,   453,     4,   775,   431,
1265    620,   422,   187,     5,   -25,    84,   439,    84,   766,   -25,
1266    -25,   -25,   780,   590,   250,   -25,    88,   718,    61,   -25,
1267    282,    41,   587,   418,   673,   647,   455,   622,    84,    26,
1268    432,   633,   424,    71,   189,     7,   101,    67,   636,   759,
1269    504,   649,   586,   284,   348,   -28,     1,  -257,   356,   319,
1270    284,   179,   156,    20,    20,   320,   444,   117,   284,   683,
1271    284,   334,   334,   334,   334,   334,   334,   334,   334,   334,
1272    334,   334,   334,    88,   334,   334,   334,   334,   334,   334,
1273    334,   685,   643,    42,   189,   285,   706,   -66,   362,     2,
1274     69,   647,   363,   423,   559,    42,   150,   153,    17,   470,
1275      3,   119,    84,   455,   329,   179,     4,    17,    17,    17,
1276    330,    30,     5,    34,    20,  -159,   428,   128,   648,    57,
1277      6,   505,   -30,     1,   425,   179,   459,  -161,    17,    28,
1278    -66,    17,    17,    84,   650,    51,   282,   158,   129,   137,
1279    655,   690,   480,   658,     7,   444,   321,   448,   509,    17,
1280    451,   557,   133,   652,   659,   664,   282,   330,   -34,     1,
1281     90,   284,   -29,     1,   148,   319,     2,   158,   334,   158,
1282    665,   320,   319,   762,   334,   137,    84,     3,   320,   251,
1283    319,    45,   319,     4,   777,   319,   320,   769,   320,     5,
1284     57,   320,    90,   189,   659,   697,   455,   255,    74,   412,
1285     53,   774,     2,   285,   728,   455,     2,   256,   429,   -32,
1286      1,    58,  -323,   182,    20,   706,    66,     3,   460,     4,
1287    762,     7,   769,     4,   774,     5,   260,   160,   500,     5,
1288    -97,   133,   -65,   536,   481,   -97,   -97,   -97,   -97,   156,
1289    510,   739,   322,    46,   741,   653,   660,   283,   134,   -65,
1290    283,   -33,     1,     2,   282,    35,   744,     7,    98,   160,
1291     46,     7,   321,   203,     3,   612,   -97,   121,   -97,   321,
1292      4,   -97,   -97,   -97,   -97,   -65,     5,   321,    37,   321,
1293    -35,     1,   321,   319,   102,    20,   745,   109,   178,   320,
1294    610,   748,   -65,   610,   501,     2,    20,   112,   149,   502,
1295    764,    20,    35,   503,  -323,   347,   151,   154,     7,   334,
1296     35,   334,     4,    20,   284,   100,    78,   284,     5,   176,
1297    183,   332,   106,   344,     2,   122,   334,    36,    78,   283,
1298    630,   698,   368,    37,   446,    99,   631,   631,   188,    88,
1299    103,     4,   500,    20,   461,   327,   371,     5,    80,   156,
1300      7,    81,    20,   402,    78,   283,   285,   131,   322,   285,
1301     80,  -140,     2,    81,    20,   322,   121,   369,    78,    20,
1302    323,   717,    20,   322,   463,   322,   465,   370,   322,     7,
1303    321,   469,    20,    20,   409,   410,    80,     2,   411,    81,
1304     20,    20,    20,    78,    57,   446,   284,   390,   446,   155,
1305     80,   284,   391,    81,    20,    20,   589,   282,   501,    35,
1306    282,   535,   177,   502,     2,    78,   283,   503,   283,   392,
1307     78,   446,   284,    20,   122,    80,    36,    20,    81,    20,
1308     20,    20,    37,    32,   500,   446,   319,   435,   285,   319,
1309    625,   363,   320,   612,   393,   320,   324,    80,   179,   446,
1310     81,    20,    80,    32,   489,    81,    20,    32,   490,    20,
1311     78,    20,   284,   446,   285,   284,    20,   577,   446,   406,
1312    446,   578,   446,   319,    32,   319,   322,   482,   405,   320,
1313    483,   320,  -157,   284,   363,   284,   323,   441,   284,   282,
1314    445,   750,    80,   323,   751,    81,    20,   449,   701,    84,
1315    501,   323,   284,   323,   364,   502,   323,     2,   365,   503,
1316    474,   740,   366,    78,   743,   282,   284,   631,   319,    20,
1317    631,   138,   139,   319,   320,   285,   458,   285,   508,   320,
1318    284,   253,   139,   321,   491,   284,   321,   284,   558,   284,
1319   -342,  -342,  -344,  -344,   319,    80,  -505,  -505,    81,    20,
1320    320,   139,   319,   528,   530,   532,   534,   399,   320,   781,
1321   -506,  -506,   324,   594,   785,   596,   787,   325,   788,   324,
1322    321,   606,   321,   375,   376,   377,   282,   324,   282,   324,
1323    373,   374,   324,   634,   319,   388,   389,   319,   378,   379,
1324    320,   639,  -342,   320,  -344,   640,  -342,   644,  -344,   645,
1325    383,   384,   385,   386,   323,   319,   651,   319,   326,  -352,
1326    319,   320,   -15,   320,  -353,   321,   320,  -504,  -504,   364,
1327    321,   396,   397,   436,   319,  -415,  -415,   437,   677,   322,
1328    320,   661,   322,   671,   380,   381,   382,   678,   319,   387,
1329    679,   321,  -416,  -416,   320,   319,   471,   472,   473,   321,
1330    612,   320,   319,   722,   319,   141,   142,   319,   320,   319,
1331    320,   319,  -373,   320,   735,   320,   322,   320,   322,   518,
1332    520,     2,   522,   524,   526,   598,     2,    78,   539,   541,
1333    324,   321,    78,   325,   321,   749,    79,  -371,     4,  -208,
1334    325,    79,   752,     4,     5,  -504,  -504,   364,   325,     5,
1335    325,   365,   321,   325,   321,   366,   753,   321,   754,    80,
1336    755,   322,    81,    20,    80,   761,   322,    81,    20,   772,
1337    784,   321,   156,   157,   326,   763,   790,   156,   258,   791,
1338    782,   326,   786,   773,   779,   321,   537,   322,    33,   326,
1339     75,   326,   321,   108,   326,   322,   190,     2,   259,   321,
1340    400,   321,    73,    78,   321,   257,   321,   323,   321,   562,
1341    323,   127,    79,   443,     4,   248,   408,     2,   454,   457,
1342      5,   729,   730,    78,   478,   543,   547,   322,   545,   656,
1343    322,   657,    79,   700,     4,    80,   551,     0,    81,    20,
1344      5,     0,   549,   556,   323,     0,   323,     0,   322,    82,
1345    322,   325,     0,   322,     0,    80,     0,   -15,    81,    20,
1346    691,     0,  -504,  -504,   364,     0,     0,   322,   436,   126,
1347      0,     0,   366,     0,  -504,  -504,   364,   358,   248,     0,
1348    485,   322,     0,   324,   366,     0,   324,     0,   322,   323,
1349      0,     0,   326,     0,   323,   322,     0,   322,     0,     0,
1350    322,   -15,   322,     0,   322,     0,  -504,  -504,   364,    78,
1351      0,     0,   436,     0,     0,   323,   641,     0,   196,     0,
1352    324,     0,   324,   323,   197,     0,  -504,  -504,   364,     0,
1353      0,   198,   365,     0,     0,   199,   437,     0,     0,     0,
1354      0,    80,     0,   415,    81,    20,   421,     0,   200,   201,
1355      0,     0,   202,     0,   433,   323,     0,     0,   323,     0,
1356      0,   204,   205,   206,   207,   324,     0,   208,   209,     0,
1357    324,     0,     0,     0,     0,     0,   323,     0,   323,     0,
1358      0,   323,     0,     0,     0,     0,     0,     0,     0,     0,
1359      0,   324,     0,     0,     0,   323,     0,     0,     0,   324,
1360      0,     0,     0,     0,   325,     0,     0,   325,     0,   323,
1361      0,     0,     0,     0,     0,     0,   323,     0,     0,     0,
1362      0,     0,     0,   323,     0,   323,     0,     0,   323,     0,
1363    323,   324,   323,     0,   324,     0,     0,     0,     0,     0,
1364    499,   325,     0,   325,   507,   326,     0,     0,   326,     0,
1365      0,     0,   324,     0,   324,     0,     0,   324,     0,     0,
1366      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1367    554,   324,     0,     0,     0,     0,     0,     0,     0,     0,
1368      0,     0,   326,     0,   326,   324,   325,     0,   566,     0,
1369      0,   325,   324,     0,   335,   335,   335,   335,   574,   324,
1370    576,   324,   335,   335,   324,     0,   324,     0,   324,     0,
1371      0,   499,   325,     0,     0,     0,     0,     0,     0,     0,
1372    325,     0,     0,     0,     0,     0,     0,   326,   336,   336,
1373    336,   336,   326,   601,     0,   603,   336,   336,     0,     0,
1374      0,     0,     0,     0,     0,     0,     0,     0,     0,   609,
1375      0,     0,   325,   326,     0,   325,     0,     0,     0,     0,
1376    499,   326,     0,     0,     0,   248,     0,     0,     0,     0,
1377      0,     0,     0,   325,     0,   325,     0,     0,   325,     0,
1378      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1379      0,     0,   325,   326,     0,     0,   326,     0,     0,     0,
1380      0,     0,     0,     0,     0,     0,   325,     0,     0,     0,
1381      0,     0,     0,   325,   326,     0,   326,     0,     0,   326,
1382    325,     0,   325,     0,     0,   325,     0,   325,     0,   325,
1383      0,     0,     0,   326,     0,     0,     0,     0,     0,     0,
1384      0,     0,     0,     0,     0,     0,     0,   326,     0,     0,
1385      0,     0,     0,     0,   326,     0,     0,     0,     0,     0,
1386      0,   326,     0,   326,     0,     0,   326,     0,   326,     0,
1387    326,     0,     0,     0,     0,     0,     0,   335,   335,   335,
1388    335,   335,   335,   335,   335,   335,   335,   335,   335,     0,
1389    335,   335,   335,   335,   335,   335,   335,     0,     0,     0,
1390      0,     0,     0,     0,   266,     0,   694,     0,     0,     0,
1391      0,   336,   336,   336,   336,   336,   336,   336,   336,   336,
1392    336,   336,   336,     0,   336,   336,   336,   336,   336,   336,
1393    336,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1394    726,     0,     0,     0,     0,     0,   734,     2,   194,   195,
1395    664,   267,   268,    78,   269,     0,     0,   270,     0,     0,
1396      0,   271,   196,     0,     0,   665,     0,     0,   272,   273,
1397      5,   274,     0,   275,   276,   198,   277,     0,     0,   278,
1398      0,     0,     0,     0,   335,    80,   266,     0,    81,    20,
1399    335,     0,     0,     0,     0,     0,   279,     0,   156,   731,
1400      0,     0,   280,     0,     0,   204,   205,   206,   207,     0,
1401      0,   208,   209,     0,     0,     0,     0,     0,   336,     0,
1402      0,     0,     0,   768,   336,     0,     0,   771,     0,     2,
1403    194,   195,   664,   267,   268,    78,   269,     0,     0,   270,
1404      0,     0,     0,   271,   196,     0,     0,   665,     0,     0,
1405    272,   273,     5,   274,     0,   275,   276,   198,   277,     0,
1406     78,   278,     0,     0,     0,     0,     0,    80,     0,   196,
1407     81,    20,     0,     0,     0,   197,     0,     0,   279,     0,
1408    156,   760,   198,     0,   280,     0,   199,   204,   205,   206,
1409    207,     0,    80,   208,   209,    81,    20,     0,     0,   200,
1410    201,     0,     0,   202,     0,     0,     0,     0,     0,     0,
1411      0,     0,   204,   205,   206,   207,     0,     0,   208,   209,
1412    266,     0,     0,     0,     0,   335,     0,   335,     0,     0,
1413      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1414      0,     0,   335,     0,     0,     0,     0,     0,     0,     0,
1415      0,     0,     0,     0,     0,     0,     0,     0,     0,   336,
1416      0,   336,     0,     2,   194,   195,  -267,   267,   268,    78,
1417    269,     0,     0,   270,     0,     0,   336,   271,   196,     0,
1418      0,  -267,     0,     0,   272,   273,     5,   274,   266,   275,
1419    276,   198,   277,     0,     0,   278,     0,     0,     0,     0,
1420      0,    80,     0,     0,    81,    20,     0,     0,     0,     0,
1421      0,     0,   279,     0,   156,  -267,     0,     0,   280,     0,
1422      0,   204,   205,   206,   207,     0,     0,   208,   209,     0,
1423      0,     2,   194,   195,     0,   267,   268,    78,   269,     0,
1424      0,   270,     0,     0,     0,   271,   196,     0,     0,     0,
1425      0,     0,   272,   273,     5,   274,   266,   275,   276,   198,
1426    277,     0,     0,   278,     0,     0,     0,     0,     0,    80,
1427      0,     0,    81,    20,     0,     0,     0,     0,     0,     0,
1428    279,     0,   156,   442,     0,     0,   280,     0,     0,   204,
1429    205,   206,   207,     0,     0,   208,   209,     0,     0,     2,
1430    194,   195,     0,   267,   268,    78,   269,     0,     0,   270,
1431      0,     0,     0,   271,   196,     0,     0,     0,     0,     0,
1432    272,   273,     5,   274,   266,   275,   276,   198,   277,     0,
1433      0,   278,     0,     0,     0,     0,     0,    80,     0,     0,
1434     81,    20,     0,     0,     0,     0,     0,     0,   279,     0,
1435    156,     0,     0,     0,   280,     0,     0,   204,   205,   206,
1436    207,     0,     0,   208,   209,     0,     0,     2,   194,   195,
1437      0,   267,   268,    78,   269,     0,     0,   270,     0,     0,
1438      0,   271,   196,     0,     0,     0,     0,     0,   272,   273,
1439    266,   274,     0,   275,   276,   198,   277,     0,     0,   278,
1440      0,     0,     0,     0,     0,    80,     0,     0,    81,    20,
1441      0,     0,     0,     0,     0,     0,   279,     0,   156,     0,
1442      0,     0,   280,     0,     0,   204,   205,   206,   207,     0,
1443      0,   208,   209,     2,   194,   195,     0,   705,   268,    78,
1444    269,     0,     0,   270,     0,     0,     0,   271,   196,     0,
1445      0,     0,     0,     0,   272,   273,     0,   274,     0,   275,
1446    276,   198,   277,     0,   627,   278,   192,   193,     0,     0,
1447      0,    80,     0,     0,    81,    20,     0,     0,     0,     0,
1448      0,     0,   279,     0,   156,     0,     0,     0,   280,     0,
1449      0,   204,   205,   206,   207,     0,     0,   208,   209,     0,
1450      0,     0,     0,     0,     0,     0,     0,     0,   194,   195,
1451      0,     0,     0,    78,     0,     0,     0,     0,     0,     0,
1452      0,     0,   196,     0,     0,     0,     0,     0,   197,   191,
1453      0,   192,   193,     0,     0,   198,     0,     0,     0,   199,
1454      0,     0,     0,     0,     0,    80,     0,     0,    81,    20,
1455      0,     0,   200,   201,     0,     0,   202,     0,   203,   628,
1456      0,     0,     0,     0,     0,   204,   205,   206,   207,     0,
1457      0,   208,   209,   194,   195,     0,     0,     0,    78,     0,
1458    419,     0,   192,   193,     0,     0,     0,   196,     0,     0,
1459      0,     0,     0,   197,     0,     0,     0,     0,     0,     0,
1460    198,     0,     0,     0,   199,     0,     0,     0,     0,     0,
1461     80,     0,     0,    81,    20,     0,     0,   200,   201,     0,
1462      0,   202,     0,   203,   194,   195,     0,     0,     0,    78,
1463    204,   205,   206,   207,     0,     0,   208,   209,   196,     0,
1464      0,     0,     0,     0,   197,   497,     0,   192,   193,     0,
1465      0,   198,     0,     0,     0,   199,     0,     0,     0,     0,
1466      0,    80,     0,     0,    81,    20,     0,     0,   200,   201,
1467      0,     0,   202,     0,     0,     0,     0,     0,   420,     0,
1468      0,   204,   205,   206,   207,     0,     0,   208,   209,   194,
1469    195,     0,     0,     0,    78,     0,   552,     0,   192,   193,
1470      0,     0,     0,   196,     0,     0,     0,     0,     0,   197,
1471      0,     0,     0,     0,     0,     0,   198,     0,     0,     0,
1472    199,     0,     0,     0,     0,     0,    80,     0,     0,    81,
1473     20,     0,     0,   200,   201,     0,     0,   202,     0,     0,
1474    194,   195,   498,     0,     0,    78,   204,   205,   206,   207,
1475      0,     0,   208,   209,   196,     0,     0,     0,     0,     0,
1476    197,   497,     0,   192,   193,     0,     0,   198,     0,     0,
1477      0,   199,     0,     0,     0,     0,     0,    80,     0,     0,
1478     81,    20,     0,   553,   200,   201,     0,     0,   202,     0,
1479      0,     0,     0,     0,     0,     0,     0,   204,   205,   206,
1480    207,     0,     0,   208,   209,   194,   195,     0,     0,     0,
1481     78,     0,   591,     0,   192,   193,     0,     0,     0,   196,
1482      0,     0,     0,     0,     0,   197,     0,     0,     0,     0,
1483      0,     0,   198,     0,     0,     0,   199,     0,     0,     0,
1484      0,     0,    80,     0,     0,    81,    20,     0,     0,   200,
1485    201,     0,     0,   202,     0,     0,   194,   195,   588,     0,
1486      0,    78,   204,   205,   206,   207,     0,     0,   208,   209,
1487    196,     0,     0,     0,     0,     0,   197,   599,     0,   192,
1488    193,     0,     0,   198,     0,     0,     0,   199,     0,     0,
1489      0,     0,     0,    80,     0,     0,    81,    20,     0,     0,
1490    200,   201,     0,     0,   202,   592,     0,     0,     0,     0,
1491      0,     0,     0,   204,   205,   206,   207,     0,     0,   208,
1492    209,   194,   195,     0,     0,     0,    78,     0,   607,     0,
1493    192,   193,     0,     0,     0,   196,     0,     0,     0,     0,
1494      0,   197,     0,     0,     0,     0,     0,     0,   198,     0,
1495      0,     0,   199,     0,     0,     0,     0,     0,    80,     0,
1496      0,    81,    20,     0,     0,   200,   201,     0,     0,   202,
1497      0,     0,   194,   195,     0,   600,     0,    78,   204,   205,
1498    206,   207,     0,     0,   208,   209,   196,     0,     0,     0,
1499      0,     0,   197,   616,     0,   192,   193,     0,     0,   198,
1500      0,     0,     0,   199,     0,     0,     0,     0,     0,    80,
1501      0,     0,    81,    20,     0,     0,   200,   201,     0,     0,
1502    202,     0,     0,     0,     0,   608,     0,     0,     0,   204,
1503    205,   206,   207,     0,     0,   208,   209,   194,   195,     0,
1504      0,     0,    78,     0,   497,     0,   192,   193,     0,     0,
1505      0,   196,     0,     0,     0,     0,     0,   197,     0,     0,
1506      0,     0,     0,     0,   198,     0,     0,     0,   199,     0,
1507      0,     0,     0,     0,    80,     0,     0,    81,    20,     0,
1508      0,   200,   201,     0,     0,   202,   617,     0,   194,   195,
1509      0,     0,     0,    78,   204,   205,   206,   207,     0,     0,
1510    208,   209,   196,     0,     0,     0,     0,     0,   197,   591,
1511      0,   192,   193,     0,     0,   198,     0,     0,     0,   199,
1512      0,     0,     0,     0,     0,    80,     0,     0,    81,    20,
1513      0,     0,   200,   201,     0,     0,   202,     0,     0,     0,
1514      0,   624,     0,     0,     0,   204,   205,   206,   207,     0,
1515      0,   208,   209,   194,   195,     0,     0,     0,    78,     0,
1516    719,     0,   192,   193,     0,     0,     0,   196,     0,     0,
1517      0,     0,     0,   197,     0,     0,     0,     0,     0,     0,
1518    198,     0,     0,     0,   199,     0,     0,     0,     0,     0,
1519     80,     0,     0,    81,    20,     0,     0,   200,   201,     0,
1520      0,   202,   703,     0,   194,   195,     0,     0,     0,    78,
1521    204,   205,   206,   207,     0,     0,   208,   209,   196,     0,
1522      0,     0,     0,     0,   197,   719,     0,   192,   193,     0,
1523      0,   198,     0,     0,     0,   199,     0,     0,     0,     0,
1524      0,    80,     0,     0,    81,    20,     0,     0,   200,   201,
1525      0,     0,   202,   720,     0,     0,     0,     0,     0,     0,
1526      0,   204,   205,   206,   207,     0,     0,   208,   209,   194,
1527    195,     0,     0,     0,    78,     0,   599,     0,   192,   193,
1528      0,     0,     0,   196,     0,     0,     0,     0,     0,   197,
1529      0,     0,     0,     0,     0,     0,   198,     0,     0,     0,
1530    199,     0,     0,     0,     0,     0,    80,     0,     0,    81,
1531     20,     0,     0,   200,   201,     0,     0,   202,   765,     0,
1532    194,   195,     0,     0,     0,    78,   204,   205,   206,   207,
1533      0,     0,   208,   209,   196,     0,     0,     0,     0,     0,
1534    197,   333,     0,   192,   193,     0,     0,   198,     0,     0,
1535      0,   199,     0,     0,     0,     0,     0,    80,     0,     0,
1536     81,    20,     0,     0,   200,   201,     0,     0,   202,     0,
1537      0,     0,     0,     0,   770,     0,     0,   204,   205,   206,
1538    207,     0,     0,   208,   209,   194,   195,     0,     0,     0,
1539     78,     0,   338,     0,   192,   193,     0,     0,     0,   196,
1540      0,     0,     0,     0,     0,   197,     0,     0,     0,     0,
1541      0,     0,   198,     0,     0,     0,   199,     0,     0,     0,
1542      0,     0,    80,     0,     0,    81,    20,     0,     0,   200,
1543    201,     0,     0,   202,     0,     0,   194,   195,     0,     0,
1544      0,    78,   204,   205,   206,   207,     0,     0,   208,   209,
1545    196,     0,     0,     0,     0,     0,   197,   340,     0,   192,
1546    193,     0,     0,   198,     0,     0,     0,   199,     0,     0,
1547      0,     0,     0,    80,     0,     0,    81,    20,     0,     0,
1548    200,   201,     0,     0,   202,     0,     0,     0,     0,     0,
1549      0,     0,     0,   204,   205,   206,   207,     0,     0,   208,
1550    209,   194,   195,     0,     0,     0,    78,     0,   342,     0,
1551    192,   193,     0,     0,     0,   196,     0,     0,     0,     0,
1552      0,   197,     0,     0,     0,     0,     0,     0,   198,     0,
1553      0,     0,   199,     0,     0,     0,     0,     0,    80,     0,
1554      0,    81,    20,     0,     0,   200,   201,     0,     0,   202,
1555      0,     0,   194,   195,     0,     0,     0,    78,   204,   205,
1556    206,   207,     0,     0,   208,   209,   196,     0,     0,     0,
1557      0,     0,   197,   351,     0,   192,   193,     0,     0,   198,
1558      0,     0,     0,   199,     0,     0,     0,     0,     0,    80,
1559      0,     0,    81,    20,     0,     0,   200,   201,     0,     0,
1560    202,     0,     0,     0,     0,     0,     0,     0,     0,   204,
1561    205,   206,   207,     0,     0,   208,   209,   194,   195,     0,
1562      0,     0,    78,     0,   353,     0,   192,   193,     0,     0,
1563      0,   196,     0,     0,     0,     0,     0,   197,     0,     0,
1564      0,     0,     0,     0,   198,     0,     0,     0,   199,     0,
1565      0,     0,     0,     0,    80,     0,     0,    81,    20,     0,
1566      0,   200,   201,     0,     0,   202,     0,     0,   194,   195,
1567      0,     0,     0,    78,   204,   205,   206,   207,     0,     0,
1568    208,   209,   196,     0,     0,     0,     0,     0,   197,   355,
1569      0,   192,   193,     0,     0,   198,     0,     0,     0,   199,
1570      0,     0,     0,     0,     0,    80,     0,     0,    81,    20,
1571      0,     0,   200,   201,     0,     0,   202,     0,     0,     0,
1572      0,     0,     0,     0,     0,   204,   205,   206,   207,     0,
1573      0,   208,   209,   194,   195,     0,     0,     0,    78,     0,
1574    414,     0,   192,   193,     0,     0,     0,   196,     0,     0,
1575      0,     0,     0,   197,     0,     0,     0,     0,     0,     0,
1576    198,     0,     0,     0,   199,     0,     0,     0,     0,     0,
1577     80,     0,     0,    81,    20,     0,     0,   200,   201,     0,
1578      0,   202,     0,     0,   194,   195,     0,     0,     0,    78,
1579    204,   205,   206,   207,     0,     0,   208,   209,   196,     0,
1580      0,     0,     0,     0,   197,   506,     0,   192,   193,     0,
1581      0,   198,     0,     0,     0,   199,     0,     0,     0,     0,
1582      0,    80,     0,     0,    81,    20,     0,     0,   200,   201,
1583      0,     0,   202,     0,     0,     0,     0,     0,     0,     0,
1584      0,   204,   205,   206,   207,     0,     0,   208,   209,   194,
1585    195,     0,     0,     0,    78,     0,   511,     0,   192,   193,
1586      0,     0,     0,   196,     0,     0,     0,     0,     0,   197,
1587      0,     0,     0,     0,     0,     0,   198,     0,     0,     0,
1588    199,     0,     0,     0,     0,     0,    80,     0,     0,    81,
1589     20,     0,     0,   200,   201,     0,     0,   202,     0,     0,
1590    194,   195,     0,     0,     0,    78,   204,   205,   206,   207,
1591      0,     0,   208,   209,   196,     0,     0,     0,     0,     0,
1592    197,   513,     0,   192,   193,     0,     0,   198,     0,     0,
1593      0,   199,     0,     0,     0,     0,     0,    80,     0,     0,
1594     81,    20,     0,     0,   200,   201,     0,     0,   202,     0,
1595      0,     0,     0,     0,     0,     0,     0,   204,   205,   206,
1596    207,     0,     0,   208,   209,   194,   195,     0,     0,     0,
1597     78,     0,   515,     0,   192,   193,     0,     0,     0,   196,
1598      0,     0,     0,     0,     0,   197,     0,     0,     0,     0,
1599      0,     0,   198,     0,     0,     0,   199,     0,     0,     0,
1600      0,     0,    80,     0,     0,    81,    20,     0,     0,   200,
1601    201,     0,     0,   202,     0,     0,   194,   195,     0,     0,
1602      0,    78,   204,   205,   206,   207,     0,     0,   208,   209,
1603    196,     0,     0,     0,     0,     0,   197,   517,     0,   192,
1604    193,     0,     0,   198,     0,     0,     0,   199,     0,     0,
1605      0,     0,     0,    80,     0,     0,    81,    20,     0,     0,
1606    200,   201,     0,     0,   202,     0,     0,     0,     0,     0,
1607      0,     0,     0,   204,   205,   206,   207,     0,     0,   208,
1608    209,   194,   195,     0,     0,     0,    78,     0,   519,     0,
1609    192,   193,     0,     0,     0,   196,     0,     0,     0,     0,
1610      0,   197,     0,     0,     0,     0,     0,     0,   198,     0,
1611      0,     0,   199,     0,     0,     0,     0,     0,    80,     0,
1612      0,    81,    20,     0,     0,   200,   201,     0,     0,   202,
1613      0,     0,   194,   195,     0,     0,     0,    78,   204,   205,
1614    206,   207,     0,     0,   208,   209,   196,     0,     0,     0,
1615      0,     0,   197,   521,     0,   192,   193,     0,     0,   198,
1616      0,     0,     0,   199,     0,     0,     0,     0,     0,    80,
1617      0,     0,    81,    20,     0,     0,   200,   201,     0,     0,
1618    202,     0,     0,     0,     0,     0,     0,     0,     0,   204,
1619    205,   206,   207,     0,     0,   208,   209,   194,   195,     0,
1620      0,     0,    78,     0,   523,     0,   192,   193,     0,     0,
1621      0,   196,     0,     0,     0,     0,     0,   197,     0,     0,
1622      0,     0,     0,     0,   198,     0,     0,     0,   199,     0,
1623      0,     0,     0,     0,    80,     0,     0,    81,    20,     0,
1624      0,   200,   201,     0,     0,   202,     0,     0,   194,   195,
1625      0,     0,     0,    78,   204,   205,   206,   207,     0,     0,
1626    208,   209,   196,     0,     0,     0,     0,     0,   197,   525,
1627      0,   192,   193,     0,     0,   198,     0,     0,     0,   199,
1628      0,     0,     0,     0,     0,    80,     0,     0,    81,    20,
1629      0,     0,   200,   201,     0,     0,   202,     0,     0,     0,
1630      0,     0,     0,     0,     0,   204,   205,   206,   207,     0,
1631      0,   208,   209,   194,   195,     0,     0,     0,    78,     0,
1632    527,     0,   192,   193,     0,     0,     0,   196,     0,     0,
1633      0,     0,     0,   197,     0,     0,     0,     0,     0,     0,
1634    198,     0,     0,     0,   199,     0,     0,     0,     0,     0,
1635     80,     0,     0,    81,    20,     0,     0,   200,   201,     0,
1636      0,   202,     0,     0,   194,   195,     0,     0,     0,    78,
1637    204,   205,   206,   207,     0,     0,   208,   209,   196,     0,
1638      0,     0,     0,     0,   197,   529,     0,   192,   193,     0,
1639      0,   198,     0,     0,     0,   199,     0,     0,     0,     0,
1640      0,    80,     0,     0,    81,    20,     0,     0,   200,   201,
1641      0,     0,   202,     0,     0,     0,     0,     0,     0,     0,
1642      0,   204,   205,   206,   207,     0,     0,   208,   209,   194,
1643    195,     0,     0,     0,    78,     0,   531,     0,   192,   193,
1644      0,     0,     0,   196,     0,     0,     0,     0,     0,   197,
1645      0,     0,     0,     0,     0,     0,   198,     0,     0,     0,
1646    199,     0,     0,     0,     0,     0,    80,     0,     0,    81,
1647     20,     0,     0,   200,   201,     0,     0,   202,     0,     0,
1648    194,   195,     0,     0,     0,    78,   204,   205,   206,   207,
1649      0,     0,   208,   209,   196,     0,     0,     0,     0,     0,
1650    197,   533,     0,   192,   193,     0,     0,   198,     0,     0,
1651      0,   199,     0,     0,     0,     0,     0,    80,     0,     0,
1652     81,    20,     0,     0,   200,   201,     0,     0,   202,     0,
1653      0,     0,     0,     0,     0,     0,     0,   204,   205,   206,
1654    207,     0,     0,   208,   209,   194,   195,     0,     0,     0,
1655     78,     0,   538,     0,   192,   193,     0,     0,     0,   196,
1656      0,     0,     0,     0,     0,   197,     0,     0,     0,     0,
1657      0,     0,   198,     0,     0,     0,   199,     0,     0,     0,
1658      0,     0,    80,     0,     0,    81,    20,     0,     0,   200,
1659    201,     0,     0,   202,     0,     0,   194,   195,     0,     0,
1660      0,    78,   204,   205,   206,   207,     0,     0,   208,   209,
1661    196,     0,     0,     0,     0,     0,   197,   540,     0,   192,
1662    193,     0,     0,   198,     0,     0,     0,   199,     0,     0,
1663      0,     0,     0,    80,     0,     0,    81,    20,     0,     0,
1664    200,   201,     0,     0,   202,     0,     0,     0,     0,     0,
1665      0,     0,     0,   204,   205,   206,   207,     0,     0,   208,
1666    209,   194,   195,     0,     0,     0,    78,     0,   542,     0,
1667    192,   193,     0,     0,     0,   196,     0,     0,     0,     0,
1668      0,   197,     0,     0,     0,     0,     0,     0,   198,     0,
1669      0,     0,   199,     0,     0,     0,     0,     0,    80,     0,
1670      0,    81,    20,     0,     0,   200,   201,     0,     0,   202,
1671      0,     0,   194,   195,     0,     0,     0,    78,   204,   205,
1672    206,   207,     0,     0,   208,   209,   196,     0,     0,     0,
1673      0,     0,   197,   544,     0,   192,   193,     0,     0,   198,
1674      0,     0,     0,   199,     0,     0,     0,     0,     0,    80,
1675      0,     0,    81,    20,     0,     0,   200,   201,     0,     0,
1676    202,     0,     0,     0,     0,     0,     0,     0,     0,   204,
1677    205,   206,   207,     0,     0,   208,   209,   194,   195,     0,
1678      0,     0,    78,     0,   546,     0,   192,   193,     0,     0,
1679      0,   196,     0,     0,     0,     0,     0,   197,     0,     0,
1680      0,     0,     0,     0,   198,     0,     0,     0,   199,     0,
1681      0,     0,     0,     0,    80,     0,     0,    81,    20,     0,
1682      0,   200,   201,     0,     0,   202,     0,     0,   194,   195,
1683      0,     0,     0,    78,   204,   205,   206,   207,     0,     0,
1684    208,   209,   196,     0,     0,     0,     0,     0,   197,   548,
1685      0,   192,   193,     0,     0,   198,     0,     0,     0,   199,
1686      0,     0,     0,     0,     0,    80,     0,     0,    81,    20,
1687      0,     0,   200,   201,     0,     0,   202,     0,     0,     0,
1688      0,     0,     0,     0,     0,   204,   205,   206,   207,     0,
1689      0,   208,   209,   194,   195,     0,     0,     0,    78,     0,
1690    550,     0,   192,   193,     0,     0,     0,   196,     0,     0,
1691      0,     0,     0,   197,     0,     0,     0,     0,     0,     0,
1692    198,     0,     0,     0,   199,     0,     0,     0,     0,     0,
1693     80,     0,     0,    81,    20,     0,     0,   200,   201,     0,
1694      0,   202,     0,     0,   194,   195,     0,     0,     0,    78,
1695    204,   205,   206,   207,     0,     0,   208,   209,   196,     0,
1696      0,     0,     0,     0,   197,   555,     0,   192,   193,     0,
1697      0,   198,     0,     0,     0,   199,     0,     0,     0,     0,
1698      0,    80,     0,     0,    81,    20,     0,     0,   200,   201,
1699      0,     0,   202,     0,     0,     0,     0,     0,     0,     0,
1700      0,   204,   205,   206,   207,     0,     0,   208,   209,   194,
1701    195,     0,     0,     0,    78,     0,   565,     0,   192,   193,
1702      0,     0,     0,   196,     0,     0,     0,     0,     0,   197,
1703      0,     0,     0,     0,     0,     0,   198,     0,     0,     0,
1704    199,     0,     0,     0,     0,     0,    80,     0,     0,    81,
1705     20,     0,     0,   200,   201,     0,     0,   202,     0,     0,
1706    194,   195,     0,     0,     0,    78,   204,   205,   206,   207,
1707      0,     0,   208,   209,   196,     0,     0,     0,     0,     0,
1708    197,   573,     0,   192,   193,     0,     0,   198,     0,     0,
1709      0,   199,     0,     0,     0,     0,     0,    80,     0,     0,
1710     81,    20,     0,     0,   200,   201,     0,     0,   202,     0,
1711      0,     0,     0,     0,     0,     0,     0,   204,   205,   206,
1712    207,     0,     0,   208,   209,   194,   195,     0,     0,     0,
1713     78,     0,   575,     0,   192,   193,     0,     0,     0,   196,
1714      0,     0,     0,     0,     0,   197,     0,     0,     0,     0,
1715      0,     0,   198,     0,     0,     0,   199,     0,     0,     0,
1716      0,     0,    80,     0,     0,    81,    20,     0,     0,   200,
1717    201,     0,     0,   202,     0,     0,   194,   195,     0,     0,
1718      0,    78,   204,   205,   206,   207,     0,     0,   208,   209,
1719    196,     0,     0,     0,     0,     0,   197,   602,     0,   192,
1720    193,     0,     0,   198,     0,     0,     0,   199,     0,     0,
1721      0,     0,     0,    80,     0,     0,    81,    20,     0,     0,
1722    200,   201,     0,     0,   202,     0,     0,     0,     0,     0,
1723      0,     0,     0,   204,   205,   206,   207,     0,     0,   208,
1724    209,   194,   195,     0,     0,     0,    78,     0,   619,     0,
1725    192,   193,     0,     0,     0,   196,     0,     0,     0,     0,
1726      0,   197,     0,     0,     0,     0,     0,     0,   198,     0,
1727      0,     0,   199,     0,     0,     0,     0,     0,    80,     0,
1728      0,    81,    20,     0,     0,   200,   201,     0,     0,   202,
1729      0,     0,   194,   195,     0,     0,     0,    78,   204,   205,
1730    206,   207,     0,     0,   208,   209,   196,     0,     0,     0,
1731      0,     0,   197,   689,     0,   192,   193,     0,     0,   198,
1732      0,     0,     0,   199,     0,     0,     0,     0,     0,    80,
1733      0,     0,    81,    20,     0,     0,   200,   201,     0,     0,
1734    202,     0,     0,     0,     0,     0,     0,     0,     0,   204,
1735    205,   206,   207,     0,     0,   208,   209,   194,   195,     0,
1736      0,     0,    78,     0,   693,     0,   192,   193,     0,     0,
1737      0,   196,     0,     0,     0,     0,     0,   197,     0,     0,
1738      0,     0,     0,     0,   198,     0,     0,     0,   199,     0,
1739      0,     0,     0,     0,    80,     0,     0,    81,    20,     0,
1740      0,   200,   201,     0,     0,   202,     0,     0,   194,   195,
1741      0,     0,     0,    78,   204,   205,   206,   207,     0,     0,
1742    208,   209,   196,     0,     0,     0,     0,     0,   197,   699,
1743      0,   192,   193,     0,     0,   198,     0,     0,     0,   199,
1744      0,     0,     0,     0,     0,    80,     0,     0,    81,    20,
1745      0,     0,   200,   201,     0,     0,   202,     0,     0,     0,
1746      0,     0,     0,     0,     0,   204,   205,   206,   207,     0,
1747      0,   208,   209,   194,   195,     0,     0,     0,    78,     0,
1748    725,     0,   192,   193,     0,     0,     0,   196,     0,     0,
1749      0,     0,     0,   197,     0,     0,     0,     0,     0,     0,
1750    198,     0,     0,     0,   199,     0,     0,     0,     0,     0,
1751     80,     0,     0,    81,    20,     0,     0,   200,   201,     0,
1752      0,   202,     0,     0,   194,   195,     0,     0,     0,    78,
1753    204,   205,   206,   207,     0,     0,   208,   209,   196,     0,
1754      0,     0,     0,     0,   197,     0,   583,     0,     0,     0,
1755      0,   198,     0,     0,     0,   199,     0,     0,     0,     0,
1756      0,    80,     0,     0,    81,    20,     0,     0,   200,   201,
1757      0,   674,   202,     0,     0,     0,     0,     0,     0,     0,
1758      0,   204,   205,   206,   207,     0,     0,   208,   209,  -290,
1759   -290,  -290,     0,     0,     0,  -290,     0,     0,     0,     0,
1760      0,     0,     0,     0,  -290,     0,     0,     0,     0,     0,
1761   -290,     0,     0,   736,     0,   194,   195,  -290,     0,     0,
1762     78,  -290,     0,     0,     0,     0,     0,  -290,     0,   196,
1763   -290,  -290,     0,     0,     0,   197,     0,     0,  -290,     0,
1764    192,   193,   198,     0,  -290,     0,   199,  -290,  -290,  -290,
1765   -290,     0,    80,  -290,  -290,    81,    20,   194,   195,     0,
1766      0,     0,    78,   279,  -298,     0,     0,     0,     0,     0,
1767      0,   196,   204,   205,   206,   207,     0,   197,   208,   209,
1768    672,     0,   194,   195,   198,     0,     0,    78,   199,     0,
1769      0,     0,     0,     0,    80,     0,   196,    81,    20,     0,
1770      0,     0,   197,     0,     0,   279,  -298,   192,   193,   198,
1771      0,     0,     0,   199,   204,   205,   206,   207,     0,    80,
1772    208,   209,    81,    20,   194,   195,   200,   201,     0,    78,
1773    202,     0,   203,   359,     0,     0,     0,     0,   196,   204,
1774    205,   206,   207,     0,   197,   208,   209,     0,     0,   194,
1775    195,   198,     0,     0,    78,   199,     0,     0,   192,   193,
1776      0,    80,     0,   196,    81,    20,     0,     0,     0,   197,
1777      0,     0,   279,     0,     0,     0,   198,     0,     0,     0,
1778    199,   204,   205,   206,   207,     0,    80,   208,   209,    81,
1779     20,     0,     0,   200,   201,     0,     0,   202,   494,     0,
1780    194,   195,     0,     0,     0,    78,   204,   205,   206,   207,
1781      0,     0,   208,   209,   196,     0,     0,     0,     0,     0,
1782    197,     0,     0,   192,   193,     0,     0,   198,     0,     0,
1783      0,   199,     0,     0,     0,     0,     0,    80,     0,     0,
1784     81,    20,     0,     0,   200,   201,     0,     0,   202,   637,
1785      0,     0,     0,     0,     0,     0,     0,   204,   205,   206,
1786    207,     0,     0,   208,   209,   194,   195,     0,     0,     0,
1787     78,     0,     0,     0,   192,   193,     0,     0,     0,   196,
1788      0,     0,     0,     0,     0,   197,     0,     0,     0,     0,
1789      0,     0,   198,     0,     0,     0,   199,     0,     0,     0,
1790      0,     0,    80,     0,     0,    81,    20,     0,     0,   200,
1791    201,     0,     0,   202,   680,     0,   194,   195,     0,     0,
1792      0,    78,   204,   205,   206,   207,     0,     0,   208,   209,
1793    196,     0,     0,     0,     0,     0,   197,     0,     0,   192,
1794    193,     0,     0,   198,     0,     0,     0,   199,     0,     0,
1795      0,     0,     0,    80,     0,     0,    81,    20,     0,     0,
1796    200,   201,     0,     0,   202,   695,     0,     0,     0,     0,
1797      0,     0,     0,   204,   205,   206,   207,     0,     0,   208,
1798    209,   194,   195,     0,     0,     0,    78,     0,     0,     0,
1799      0,     0,     0,     0,     0,   196,     0,     0,     0,     0,
1800      0,   197,     0,     0,     0,     0,     0,     0,   198,     0,
1801      0,     0,   199,     0,     0,     0,     0,     0,    80,     0,
1802      0,    81,    20,     0,     0,   200,   201,     0,     0,   202,
1803      0,     2,   194,   195,     0,     0,     0,    78,   204,   205,
1804    206,   207,     0,     0,   208,   209,   196,     0,     0,     0,
1805      0,     0,   197,     0,     0,     0,     0,     0,     0,   198,
1806      0,     0,     0,   199,     0,     0,     0,     0,     0,    80,
1807      0,     0,    81,    20,     0,     0,     0,     0,     0,     0,
1808    279,     0,     0,     0,     0,     0,     0,     0,     0,   204,
1809    205,   206,   207,     0,     0,   208,   209
1810 };
1811
1812 static const short yycheck[] = {     3,
1813    132,   129,     6,   133,   330,   174,   123,    62,   203,   677,
1814    178,   134,     1,   290,   441,   488,   561,     1,     1,   564,
1815    192,   193,   194,   195,   349,     1,   117,     1,   200,   201,
1816      1,   356,   357,   161,    89,     1,   669,    47,    42,    94,
1817    168,    62,    46,     1,    94,   297,   310,     1,    53,   129,
1818     86,   101,    62,   305,   481,   307,     1,    42,    62,   150,
1819     64,    46,   153,     1,   129,    69,     1,     4,     5,    95,
1820      1,     1,    44,    94,   129,   198,     1,     9,   133,    64,
1821    171,   161,     1,   510,    69,    89,    96,   648,    15,    61,
1822     94,   100,    97,    67,     1,    67,   161,   730,   643,    36,
1823     37,    33,   770,    40,   159,     0,   161,   101,   129,    93,
1824     99,   779,   101,    50,     9,    10,    11,   101,   101,   648,
1825    648,     1,     1,    99,   128,   129,   256,   182,    99,   133,
1826    134,   648,     1,    99,   262,    30,    94,     1,    33,    34,
1827    161,    95,    79,   128,     1,    99,    83,   275,   709,   134,
1828    475,   712,   625,   478,    99,   159,    51,   161,     1,    94,
1829     87,    99,   100,   331,   281,   100,   257,    62,    99,    99,
1830    174,   101,     1,     1,    99,   100,    95,     1,   182,   606,
1831    709,   709,     1,   712,   712,   122,   123,    94,   192,   193,
1832    194,   195,   709,   100,   198,   712,   200,   201,   202,    94,
1833    330,   256,   139,   375,   376,   377,     1,   634,     1,   332,
1834      1,     1,     1,   198,    94,     1,   777,   644,    62,    98,
1835    100,   782,     1,   784,     1,   786,    95,     1,    94,     1,
1836     94,    97,   287,   660,   129,     1,   100,   174,   133,   408,
1837      1,   178,    99,    86,     1,    89,     0,     1,   777,   777,
1838     94,     1,   256,   782,   782,   784,   784,   786,   786,     1,
1839    777,    97,     1,     1,    93,   782,   161,   784,     1,   786,
1840     94,    99,     1,    45,    46,   330,   100,    97,     1,   174,
1841     99,   101,     5,   287,   221,   129,   290,   564,    67,   133,
1842     44,    86,    92,   297,     1,   490,    86,    97,    98,    88,
1843    477,   305,   479,   307,    99,    98,   310,    61,    99,    99,
1844    482,     1,    98,    67,    86,   159,    88,   161,   745,    91,
1845     92,    93,    99,   440,    98,    97,   330,   653,   332,   101,
1846    174,     1,    98,   270,   598,     1,   600,    98,   182,     1,
1847    277,    98,     1,     1,   281,    99,     1,   332,    98,    88,
1848     72,     1,    94,   290,   198,     0,     1,    95,   202,   174,
1849    297,   256,    95,    86,    86,   174,   643,    83,   305,    98,
1850    307,   375,   376,   377,   378,   379,   380,   381,   382,   383,
1851    384,   385,   386,   387,   388,   389,   390,   391,   392,   393,
1852    394,    98,   561,    63,   331,   290,   648,    52,    97,    44,
1853     52,     1,   101,    93,   408,    63,   122,   123,     0,   346,
1854     55,    97,   256,   677,    94,   310,    61,     9,    10,    11,
1855    100,     9,    67,    11,    86,    95,     1,   100,    94,   366,
1856     75,   368,     0,     1,    93,   330,     1,    95,    30,     1,
1857     95,    33,    34,   287,    94,    33,   290,   129,    95,     1,
1858    578,   623,     1,   581,    99,   732,   174,   709,     1,    51,
1859    712,    94,    93,     1,     1,    47,   310,   100,     0,     1,
1860     62,   408,     0,     1,    98,   290,    44,   159,   482,   161,
1861     62,   290,   297,   735,   488,     1,   330,    55,   297,     1,
1862    305,     1,   307,    61,    94,   310,   305,   749,   307,    67,
1863    437,   310,    94,   440,     1,   637,   770,    96,     1,     1,
1864      1,   763,    44,   408,    96,   779,    44,    93,    93,     0,
1865      1,     1,     1,   653,    86,   777,     1,    55,    93,    61,
1866    782,    99,   784,    61,   786,    67,    99,   129,     1,    67,
1867     92,    93,    52,   387,    93,    97,    98,    99,   100,    95,
1868     93,   679,   174,    63,   686,    93,    93,   561,    53,    52,
1869    564,     0,     1,    44,   408,    44,   698,    99,     1,   161,
1870     63,    99,   290,    95,    55,    97,    92,     1,    94,   297,
1871     61,    97,    98,    99,   100,    95,    67,   305,    67,   307,
1872      0,     1,   310,   408,     1,    86,    93,     1,   653,   408,
1873    475,    93,    95,   478,    67,    44,    86,     1,     1,    72,
1874    742,    86,    44,    76,    93,     1,     1,     1,    99,   623,
1875     44,   625,    61,    86,   561,    65,    50,   564,    67,     1,
1876      1,   100,    72,   101,    44,    59,   640,    61,    50,   643,
1877     94,    94,   101,    67,   648,    64,   100,   100,     1,   653,
1878     69,    61,     1,    86,     1,     1,     1,    67,    82,    95,
1879     99,    85,    86,    99,    50,   669,   561,   107,   290,   564,
1880     82,    95,    44,    85,    86,   297,     1,    97,    50,    86,
1881    174,     1,    86,   305,     1,   307,     1,   101,   310,    99,
1882    408,     1,    86,    86,    95,    96,    82,    44,    99,    85,
1883     86,    86,    86,    50,   641,   709,   643,    11,   712,   128,
1884     82,   648,    12,    85,    86,    86,    65,   561,    67,    44,
1885    564,     1,    94,    72,    44,    50,   730,    76,   732,    13,
1886     50,   735,   669,    86,    59,    82,    61,    86,    85,    86,
1887     86,    86,    67,    10,     1,   749,   561,    97,   643,   564,
1888     94,   101,   561,    97,    14,   564,   174,    82,   653,   763,
1889     85,    86,    82,    30,    96,    85,    86,    34,   100,    86,
1890     50,    86,   709,   777,   669,   712,    86,    60,   782,    95,
1891    784,    64,   786,   598,    51,   600,   408,    94,    99,   598,
1892     97,   600,    93,   730,   101,   732,   290,    93,   735,   643,
1893     99,   709,    82,   297,   712,    85,    86,    99,    65,   653,
1894     67,   305,   749,   307,    93,    72,   310,    44,    97,    76,
1895     97,    94,   101,    50,    94,   669,   763,   100,   643,    86,
1896    100,    99,   100,   648,   643,   730,    99,   732,    67,   648,
1897    777,    99,   100,   561,    98,   782,   564,   784,    99,   786,
1898     45,    46,    45,    46,   669,    82,    91,    92,    85,    86,
1899    669,   100,   677,   383,   384,   385,   386,    94,   677,   777,
1900     91,    92,   290,    95,   782,    66,   784,   174,   786,   297,
1901    598,    93,   600,     5,     6,     7,   730,   305,   732,   307,
1902     45,    46,   310,    93,   709,    16,    17,   712,     3,     4,
1903    709,     1,    97,   712,    97,    88,   101,    93,   101,    99,
1904     18,    19,    20,    21,   408,   730,    94,   732,   174,   101,
1905    735,   730,    86,   732,   101,   643,   735,    91,    92,    93,
1906    648,    91,    92,    97,   749,    45,    46,   101,    99,   561,
1907    749,     1,   564,    93,     8,     9,    10,    94,   763,    57,
1908     94,   669,    45,    46,   763,   770,    97,    98,    99,   677,
1909     97,   770,   777,     1,   779,    97,    98,   782,   777,   784,
1910    779,   786,    95,   782,    94,   784,   598,   786,   600,   378,
1911    379,    44,   380,   381,   382,   100,    44,    50,   388,   389,
1912    408,   709,    50,   290,   712,    56,    59,    95,    61,    56,
1913    297,    59,    99,    61,    67,    91,    92,    93,   305,    67,
1914    307,    97,   730,   310,   732,   101,    94,   735,    94,    82,
1915      1,   643,    85,    86,    82,    94,   648,    85,    86,     1,
1916     56,   749,    95,    96,   290,    94,     0,    95,    96,     0,
1917     94,   297,    94,    99,    99,   763,   387,   669,    11,   305,
1918     54,   307,   770,    75,   310,   677,   139,    44,   161,   777,
1919    256,   779,    52,    50,   782,   159,   784,   561,   786,   408,
1920    564,    94,    59,   290,    61,   140,   264,    44,   310,   310,
1921     67,   667,   667,    50,   349,   390,   392,   709,   391,   579,
1922    712,   579,    59,   640,    61,    82,   394,    -1,    85,    86,
1923     67,    -1,   393,   398,   598,    -1,   600,    -1,   730,    96,
1924    732,   408,    -1,   735,    -1,    82,    -1,    86,    85,    86,
1925      1,    -1,    91,    92,    93,    -1,    -1,   749,    97,    96,
1926     -1,    -1,   101,    -1,    91,    92,    93,   202,   203,    -1,
1927     97,   763,    -1,   561,   101,    -1,   564,    -1,   770,   643,
1928     -1,    -1,   408,    -1,   648,   777,    -1,   779,    -1,    -1,
1929    782,    86,   784,    -1,   786,    -1,    91,    92,    93,    50,
1930     -1,    -1,    97,    -1,    -1,   669,   101,    -1,    59,    -1,
1931    598,    -1,   600,   677,    65,    -1,    91,    92,    93,    -1,
1932     -1,    72,    97,    -1,    -1,    76,   101,    -1,    -1,    -1,
1933     -1,    82,    -1,   268,    85,    86,   271,    -1,    89,    90,
1934     -1,    -1,    93,    -1,   279,   709,    -1,    -1,   712,    -1,
1935     -1,   102,   103,   104,   105,   643,    -1,   108,   109,    -1,
1936    648,    -1,    -1,    -1,    -1,    -1,   730,    -1,   732,    -1,
1937     -1,   735,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1938     -1,   669,    -1,    -1,    -1,   749,    -1,    -1,    -1,   677,
1939     -1,    -1,    -1,    -1,   561,    -1,    -1,   564,    -1,   763,
1940     -1,    -1,    -1,    -1,    -1,    -1,   770,    -1,    -1,    -1,
1941     -1,    -1,    -1,   777,    -1,   779,    -1,    -1,   782,    -1,
1942    784,   709,   786,    -1,   712,    -1,    -1,    -1,    -1,    -1,
1943    365,   598,    -1,   600,   369,   561,    -1,    -1,   564,    -1,
1944     -1,    -1,   730,    -1,   732,    -1,    -1,   735,    -1,    -1,
1945     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1946    395,   749,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1947     -1,    -1,   598,    -1,   600,   763,   643,    -1,   413,    -1,
1948     -1,   648,   770,    -1,   192,   193,   194,   195,   423,   777,
1949    425,   779,   200,   201,   782,    -1,   784,    -1,   786,    -1,
1950     -1,   436,   669,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1951    677,    -1,    -1,    -1,    -1,    -1,    -1,   643,   192,   193,
1952    194,   195,   648,   458,    -1,   460,   200,   201,    -1,    -1,
1953     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   474,
1954     -1,    -1,   709,   669,    -1,   712,    -1,    -1,    -1,    -1,
1955    485,   677,    -1,    -1,    -1,   490,    -1,    -1,    -1,    -1,
1956     -1,    -1,    -1,   730,    -1,   732,    -1,    -1,   735,    -1,
1957     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1958     -1,    -1,   749,   709,    -1,    -1,   712,    -1,    -1,    -1,
1959     -1,    -1,    -1,    -1,    -1,    -1,   763,    -1,    -1,    -1,
1960     -1,    -1,    -1,   770,   730,    -1,   732,    -1,    -1,   735,
1961    777,    -1,   779,    -1,    -1,   782,    -1,   784,    -1,   786,
1962     -1,    -1,    -1,   749,    -1,    -1,    -1,    -1,    -1,    -1,
1963     -1,    -1,    -1,    -1,    -1,    -1,    -1,   763,    -1,    -1,
1964     -1,    -1,    -1,    -1,   770,    -1,    -1,    -1,    -1,    -1,
1965     -1,   777,    -1,   779,    -1,    -1,   782,    -1,   784,    -1,
1966    786,    -1,    -1,    -1,    -1,    -1,    -1,   375,   376,   377,
1967    378,   379,   380,   381,   382,   383,   384,   385,   386,    -1,
1968    388,   389,   390,   391,   392,   393,   394,    -1,    -1,    -1,
1969     -1,    -1,    -1,    -1,     1,    -1,   631,    -1,    -1,    -1,
1970     -1,   375,   376,   377,   378,   379,   380,   381,   382,   383,
1971    384,   385,   386,    -1,   388,   389,   390,   391,   392,   393,
1972    394,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1973    665,    -1,    -1,    -1,    -1,    -1,   671,    44,    45,    46,
1974     47,    48,    49,    50,    51,    -1,    -1,    54,    -1,    -1,
1975     -1,    58,    59,    -1,    -1,    62,    -1,    -1,    65,    66,
1976     67,    68,    -1,    70,    71,    72,    73,    -1,    -1,    76,
1977     -1,    -1,    -1,    -1,   482,    82,     1,    -1,    85,    86,
1978    488,    -1,    -1,    -1,    -1,    -1,    93,    -1,    95,    96,
1979     -1,    -1,    99,    -1,    -1,   102,   103,   104,   105,    -1,
1980     -1,   108,   109,    -1,    -1,    -1,    -1,    -1,   482,    -1,
1981     -1,    -1,    -1,   748,   488,    -1,    -1,   752,    -1,    44,
1982     45,    46,    47,    48,    49,    50,    51,    -1,    -1,    54,
1983     -1,    -1,    -1,    58,    59,    -1,    -1,    62,    -1,    -1,
1984     65,    66,    67,    68,    -1,    70,    71,    72,    73,    -1,
1985     50,    76,    -1,    -1,    -1,    -1,    -1,    82,    -1,    59,
1986     85,    86,    -1,    -1,    -1,    65,    -1,    -1,    93,    -1,
1987     95,    96,    72,    -1,    99,    -1,    76,   102,   103,   104,
1988    105,    -1,    82,   108,   109,    85,    86,    -1,    -1,    89,
1989     90,    -1,    -1,    93,    -1,    -1,    -1,    -1,    -1,    -1,
1990     -1,    -1,   102,   103,   104,   105,    -1,    -1,   108,   109,
1991      1,    -1,    -1,    -1,    -1,   623,    -1,   625,    -1,    -1,
1992     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1993     -1,    -1,   640,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1994     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   623,
1995     -1,   625,    -1,    44,    45,    46,    47,    48,    49,    50,
1996     51,    -1,    -1,    54,    -1,    -1,   640,    58,    59,    -1,
1997     -1,    62,    -1,    -1,    65,    66,    67,    68,     1,    70,
1998     71,    72,    73,    -1,    -1,    76,    -1,    -1,    -1,    -1,
1999     -1,    82,    -1,    -1,    85,    86,    -1,    -1,    -1,    -1,
2000     -1,    -1,    93,    -1,    95,    96,    -1,    -1,    99,    -1,
2001     -1,   102,   103,   104,   105,    -1,    -1,   108,   109,    -1,
2002     -1,    44,    45,    46,    -1,    48,    49,    50,    51,    -1,
2003     -1,    54,    -1,    -1,    -1,    58,    59,    -1,    -1,    -1,
2004     -1,    -1,    65,    66,    67,    68,     1,    70,    71,    72,
2005     73,    -1,    -1,    76,    -1,    -1,    -1,    -1,    -1,    82,
2006     -1,    -1,    85,    86,    -1,    -1,    -1,    -1,    -1,    -1,
2007     93,    -1,    95,    96,    -1,    -1,    99,    -1,    -1,   102,
2008    103,   104,   105,    -1,    -1,   108,   109,    -1,    -1,    44,
2009     45,    46,    -1,    48,    49,    50,    51,    -1,    -1,    54,
2010     -1,    -1,    -1,    58,    59,    -1,    -1,    -1,    -1,    -1,
2011     65,    66,    67,    68,     1,    70,    71,    72,    73,    -1,
2012     -1,    76,    -1,    -1,    -1,    -1,    -1,    82,    -1,    -1,
2013     85,    86,    -1,    -1,    -1,    -1,    -1,    -1,    93,    -1,
2014     95,    -1,    -1,    -1,    99,    -1,    -1,   102,   103,   104,
2015    105,    -1,    -1,   108,   109,    -1,    -1,    44,    45,    46,
2016     -1,    48,    49,    50,    51,    -1,    -1,    54,    -1,    -1,
2017     -1,    58,    59,    -1,    -1,    -1,    -1,    -1,    65,    66,
2018      1,    68,    -1,    70,    71,    72,    73,    -1,    -1,    76,
2019     -1,    -1,    -1,    -1,    -1,    82,    -1,    -1,    85,    86,
2020     -1,    -1,    -1,    -1,    -1,    -1,    93,    -1,    95,    -1,
2021     -1,    -1,    99,    -1,    -1,   102,   103,   104,   105,    -1,
2022     -1,   108,   109,    44,    45,    46,    -1,    48,    49,    50,
2023     51,    -1,    -1,    54,    -1,    -1,    -1,    58,    59,    -1,
2024     -1,    -1,    -1,    -1,    65,    66,    -1,    68,    -1,    70,
2025     71,    72,    73,    -1,     1,    76,     3,     4,    -1,    -1,
2026     -1,    82,    -1,    -1,    85,    86,    -1,    -1,    -1,    -1,
2027     -1,    -1,    93,    -1,    95,    -1,    -1,    -1,    99,    -1,
2028     -1,   102,   103,   104,   105,    -1,    -1,   108,   109,    -1,
2029     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    45,    46,
2030     -1,    -1,    -1,    50,    -1,    -1,    -1,    -1,    -1,    -1,
2031     -1,    -1,    59,    -1,    -1,    -1,    -1,    -1,    65,     1,
2032     -1,     3,     4,    -1,    -1,    72,    -1,    -1,    -1,    76,
2033     -1,    -1,    -1,    -1,    -1,    82,    -1,    -1,    85,    86,
2034     -1,    -1,    89,    90,    -1,    -1,    93,    -1,    95,    96,
2035     -1,    -1,    -1,    -1,    -1,   102,   103,   104,   105,    -1,
2036     -1,   108,   109,    45,    46,    -1,    -1,    -1,    50,    -1,
2037      1,    -1,     3,     4,    -1,    -1,    -1,    59,    -1,    -1,
2038     -1,    -1,    -1,    65,    -1,    -1,    -1,    -1,    -1,    -1,
2039     72,    -1,    -1,    -1,    76,    -1,    -1,    -1,    -1,    -1,
2040     82,    -1,    -1,    85,    86,    -1,    -1,    89,    90,    -1,
2041     -1,    93,    -1,    95,    45,    46,    -1,    -1,    -1,    50,
2042    102,   103,   104,   105,    -1,    -1,   108,   109,    59,    -1,
2043     -1,    -1,    -1,    -1,    65,     1,    -1,     3,     4,    -1,
2044     -1,    72,    -1,    -1,    -1,    76,    -1,    -1,    -1,    -1,
2045     -1,    82,    -1,    -1,    85,    86,    -1,    -1,    89,    90,
2046     -1,    -1,    93,    -1,    -1,    -1,    -1,    -1,    99,    -1,
2047     -1,   102,   103,   104,   105,    -1,    -1,   108,   109,    45,
2048     46,    -1,    -1,    -1,    50,    -1,     1,    -1,     3,     4,
2049     -1,    -1,    -1,    59,    -1,    -1,    -1,    -1,    -1,    65,
2050     -1,    -1,    -1,    -1,    -1,    -1,    72,    -1,    -1,    -1,
2051     76,    -1,    -1,    -1,    -1,    -1,    82,    -1,    -1,    85,
2052     86,    -1,    -1,    89,    90,    -1,    -1,    93,    -1,    -1,
2053     45,    46,    98,    -1,    -1,    50,   102,   103,   104,   105,
2054     -1,    -1,   108,   109,    59,    -1,    -1,    -1,    -1,    -1,
2055     65,     1,    -1,     3,     4,    -1,    -1,    72,    -1,    -1,
2056     -1,    76,    -1,    -1,    -1,    -1,    -1,    82,    -1,    -1,
2057     85,    86,    -1,    88,    89,    90,    -1,    -1,    93,    -1,
2058     -1,    -1,    -1,    -1,    -1,    -1,    -1,   102,   103,   104,
2059    105,    -1,    -1,   108,   109,    45,    46,    -1,    -1,    -1,
2060     50,    -1,     1,    -1,     3,     4,    -1,    -1,    -1,    59,
2061     -1,    -1,    -1,    -1,    -1,    65,    -1,    -1,    -1,    -1,
2062     -1,    -1,    72,    -1,    -1,    -1,    76,    -1,    -1,    -1,
2063     -1,    -1,    82,    -1,    -1,    85,    86,    -1,    -1,    89,
2064     90,    -1,    -1,    93,    -1,    -1,    45,    46,    98,    -1,
2065     -1,    50,   102,   103,   104,   105,    -1,    -1,   108,   109,
2066     59,    -1,    -1,    -1,    -1,    -1,    65,     1,    -1,     3,
2067      4,    -1,    -1,    72,    -1,    -1,    -1,    76,    -1,    -1,
2068     -1,    -1,    -1,    82,    -1,    -1,    85,    86,    -1,    -1,
2069     89,    90,    -1,    -1,    93,    94,    -1,    -1,    -1,    -1,
2070     -1,    -1,    -1,   102,   103,   104,   105,    -1,    -1,   108,
2071    109,    45,    46,    -1,    -1,    -1,    50,    -1,     1,    -1,
2072      3,     4,    -1,    -1,    -1,    59,    -1,    -1,    -1,    -1,
2073     -1,    65,    -1,    -1,    -1,    -1,    -1,    -1,    72,    -1,
2074     -1,    -1,    76,    -1,    -1,    -1,    -1,    -1,    82,    -1,
2075     -1,    85,    86,    -1,    -1,    89,    90,    -1,    -1,    93,
2076     -1,    -1,    45,    46,    -1,    99,    -1,    50,   102,   103,
2077    104,   105,    -1,    -1,   108,   109,    59,    -1,    -1,    -1,
2078     -1,    -1,    65,     1,    -1,     3,     4,    -1,    -1,    72,
2079     -1,    -1,    -1,    76,    -1,    -1,    -1,    -1,    -1,    82,
2080     -1,    -1,    85,    86,    -1,    -1,    89,    90,    -1,    -1,
2081     93,    -1,    -1,    -1,    -1,    98,    -1,    -1,    -1,   102,
2082    103,   104,   105,    -1,    -1,   108,   109,    45,    46,    -1,
2083     -1,    -1,    50,    -1,     1,    -1,     3,     4,    -1,    -1,
2084     -1,    59,    -1,    -1,    -1,    -1,    -1,    65,    -1,    -1,
2085     -1,    -1,    -1,    -1,    72,    -1,    -1,    -1,    76,    -1,
2086     -1,    -1,    -1,    -1,    82,    -1,    -1,    85,    86,    -1,
2087     -1,    89,    90,    -1,    -1,    93,    94,    -1,    45,    46,
2088     -1,    -1,    -1,    50,   102,   103,   104,   105,    -1,    -1,
2089    108,   109,    59,    -1,    -1,    -1,    -1,    -1,    65,     1,
2090     -1,     3,     4,    -1,    -1,    72,    -1,    -1,    -1,    76,
2091     -1,    -1,    -1,    -1,    -1,    82,    -1,    -1,    85,    86,
2092     -1,    -1,    89,    90,    -1,    -1,    93,    -1,    -1,    -1,
2093     -1,    98,    -1,    -1,    -1,   102,   103,   104,   105,    -1,
2094     -1,   108,   109,    45,    46,    -1,    -1,    -1,    50,    -1,
2095      1,    -1,     3,     4,    -1,    -1,    -1,    59,    -1,    -1,
2096     -1,    -1,    -1,    65,    -1,    -1,    -1,    -1,    -1,    -1,
2097     72,    -1,    -1,    -1,    76,    -1,    -1,    -1,    -1,    -1,
2098     82,    -1,    -1,    85,    86,    -1,    -1,    89,    90,    -1,
2099     -1,    93,    94,    -1,    45,    46,    -1,    -1,    -1,    50,
2100    102,   103,   104,   105,    -1,    -1,   108,   109,    59,    -1,
2101     -1,    -1,    -1,    -1,    65,     1,    -1,     3,     4,    -1,
2102     -1,    72,    -1,    -1,    -1,    76,    -1,    -1,    -1,    -1,
2103     -1,    82,    -1,    -1,    85,    86,    -1,    -1,    89,    90,
2104     -1,    -1,    93,    94,    -1,    -1,    -1,    -1,    -1,    -1,
2105     -1,   102,   103,   104,   105,    -1,    -1,   108,   109,    45,
2106     46,    -1,    -1,    -1,    50,    -1,     1,    -1,     3,     4,
2107     -1,    -1,    -1,    59,    -1,    -1,    -1,    -1,    -1,    65,
2108     -1,    -1,    -1,    -1,    -1,    -1,    72,    -1,    -1,    -1,
2109     76,    -1,    -1,    -1,    -1,    -1,    82,    -1,    -1,    85,
2110     86,    -1,    -1,    89,    90,    -1,    -1,    93,    94,    -1,
2111     45,    46,    -1,    -1,    -1,    50,   102,   103,   104,   105,
2112     -1,    -1,   108,   109,    59,    -1,    -1,    -1,    -1,    -1,
2113     65,     1,    -1,     3,     4,    -1,    -1,    72,    -1,    -1,
2114     -1,    76,    -1,    -1,    -1,    -1,    -1,    82,    -1,    -1,
2115     85,    86,    -1,    -1,    89,    90,    -1,    -1,    93,    -1,
2116     -1,    -1,    -1,    -1,    99,    -1,    -1,   102,   103,   104,
2117    105,    -1,    -1,   108,   109,    45,    46,    -1,    -1,    -1,
2118     50,    -1,     1,    -1,     3,     4,    -1,    -1,    -1,    59,
2119     -1,    -1,    -1,    -1,    -1,    65,    -1,    -1,    -1,    -1,
2120     -1,    -1,    72,    -1,    -1,    -1,    76,    -1,    -1,    -1,
2121     -1,    -1,    82,    -1,    -1,    85,    86,    -1,    -1,    89,
2122     90,    -1,    -1,    93,    -1,    -1,    45,    46,    -1,    -1,
2123     -1,    50,   102,   103,   104,   105,    -1,    -1,   108,   109,
2124     59,    -1,    -1,    -1,    -1,    -1,    65,     1,    -1,     3,
2125      4,    -1,    -1,    72,    -1,    -1,    -1,    76,    -1,    -1,
2126     -1,    -1,    -1,    82,    -1,    -1,    85,    86,    -1,    -1,
2127     89,    90,    -1,    -1,    93,    -1,    -1,    -1,    -1,    -1,
2128     -1,    -1,    -1,   102,   103,   104,   105,    -1,    -1,   108,
2129    109,    45,    46,    -1,    -1,    -1,    50,    -1,     1,    -1,
2130      3,     4,    -1,    -1,    -1,    59,    -1,    -1,    -1,    -1,
2131     -1,    65,    -1,    -1,    -1,    -1,    -1,    -1,    72,    -1,
2132     -1,    -1,    76,    -1,    -1,    -1,    -1,    -1,    82,    -1,
2133     -1,    85,    86,    -1,    -1,    89,    90,    -1,    -1,    93,
2134     -1,    -1,    45,    46,    -1,    -1,    -1,    50,   102,   103,
2135    104,   105,    -1,    -1,   108,   109,    59,    -1,    -1,    -1,
2136     -1,    -1,    65,     1,    -1,     3,     4,    -1,    -1,    72,
2137     -1,    -1,    -1,    76,    -1,    -1,    -1,    -1,    -1,    82,
2138     -1,    -1,    85,    86,    -1,    -1,    89,    90,    -1,    -1,
2139     93,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   102,
2140    103,   104,   105,    -1,    -1,   108,   109,    45,    46,    -1,
2141     -1,    -1,    50,    -1,     1,    -1,     3,     4,    -1,    -1,
2142     -1,    59,    -1,    -1,    -1,    -1,    -1,    65,    -1,    -1,
2143     -1,    -1,    -1,    -1,    72,    -1,    -1,    -1,    76,    -1,
2144     -1,    -1,    -1,    -1,    82,    -1,    -1,    85,    86,    -1,
2145     -1,    89,    90,    -1,    -1,    93,    -1,    -1,    45,    46,
2146     -1,    -1,    -1,    50,   102,   103,   104,   105,    -1,    -1,
2147    108,   109,    59,    -1,    -1,    -1,    -1,    -1,    65,     1,
2148     -1,     3,     4,    -1,    -1,    72,    -1,    -1,    -1,    76,
2149     -1,    -1,    -1,    -1,    -1,    82,    -1,    -1,    85,    86,
2150     -1,    -1,    89,    90,    -1,    -1,    93,    -1,    -1,    -1,
2151     -1,    -1,    -1,    -1,    -1,   102,   103,   104,   105,    -1,
2152     -1,   108,   109,    45,    46,    -1,    -1,    -1,    50,    -1,
2153      1,    -1,     3,     4,    -1,    -1,    -1,    59,    -1,    -1,
2154     -1,    -1,    -1,    65,    -1,    -1,    -1,    -1,    -1,    -1,
2155     72,    -1,    -1,    -1,    76,    -1,    -1,    -1,    -1,    -1,
2156     82,    -1,    -1,    85,    86,    -1,    -1,    89,    90,    -1,
2157     -1,    93,    -1,    -1,    45,    46,    -1,    -1,    -1,    50,
2158    102,   103,   104,   105,    -1,    -1,   108,   109,    59,    -1,
2159     -1,    -1,    -1,    -1,    65,     1,    -1,     3,     4,    -1,
2160     -1,    72,    -1,    -1,    -1,    76,    -1,    -1,    -1,    -1,
2161     -1,    82,    -1,    -1,    85,    86,    -1,    -1,    89,    90,
2162     -1,    -1,    93,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2163     -1,   102,   103,   104,   105,    -1,    -1,   108,   109,    45,
2164     46,    -1,    -1,    -1,    50,    -1,     1,    -1,     3,     4,
2165     -1,    -1,    -1,    59,    -1,    -1,    -1,    -1,    -1,    65,
2166     -1,    -1,    -1,    -1,    -1,    -1,    72,    -1,    -1,    -1,
2167     76,    -1,    -1,    -1,    -1,    -1,    82,    -1,    -1,    85,
2168     86,    -1,    -1,    89,    90,    -1,    -1,    93,    -1,    -1,
2169     45,    46,    -1,    -1,    -1,    50,   102,   103,   104,   105,
2170     -1,    -1,   108,   109,    59,    -1,    -1,    -1,    -1,    -1,
2171     65,     1,    -1,     3,     4,    -1,    -1,    72,    -1,    -1,
2172     -1,    76,    -1,    -1,    -1,    -1,    -1,    82,    -1,    -1,
2173     85,    86,    -1,    -1,    89,    90,    -1,    -1,    93,    -1,
2174     -1,    -1,    -1,    -1,    -1,    -1,    -1,   102,   103,   104,
2175    105,    -1,    -1,   108,   109,    45,    46,    -1,    -1,    -1,
2176     50,    -1,     1,    -1,     3,     4,    -1,    -1,    -1,    59,
2177     -1,    -1,    -1,    -1,    -1,    65,    -1,    -1,    -1,    -1,
2178     -1,    -1,    72,    -1,    -1,    -1,    76,    -1,    -1,    -1,
2179     -1,    -1,    82,    -1,    -1,    85,    86,    -1,    -1,    89,
2180     90,    -1,    -1,    93,    -1,    -1,    45,    46,    -1,    -1,
2181     -1,    50,   102,   103,   104,   105,    -1,    -1,   108,   109,
2182     59,    -1,    -1,    -1,    -1,    -1,    65,     1,    -1,     3,
2183      4,    -1,    -1,    72,    -1,    -1,    -1,    76,    -1,    -1,
2184     -1,    -1,    -1,    82,    -1,    -1,    85,    86,    -1,    -1,
2185     89,    90,    -1,    -1,    93,    -1,    -1,    -1,    -1,    -1,
2186     -1,    -1,    -1,   102,   103,   104,   105,    -1,    -1,   108,
2187    109,    45,    46,    -1,    -1,    -1,    50,    -1,     1,    -1,
2188      3,     4,    -1,    -1,    -1,    59,    -1,    -1,    -1,    -1,
2189     -1,    65,    -1,    -1,    -1,    -1,    -1,    -1,    72,    -1,
2190     -1,    -1,    76,    -1,    -1,    -1,    -1,    -1,    82,    -1,
2191     -1,    85,    86,    -1,    -1,    89,    90,    -1,    -1,    93,
2192     -1,    -1,    45,    46,    -1,    -1,    -1,    50,   102,   103,
2193    104,   105,    -1,    -1,   108,   109,    59,    -1,    -1,    -1,
2194     -1,    -1,    65,     1,    -1,     3,     4,    -1,    -1,    72,
2195     -1,    -1,    -1,    76,    -1,    -1,    -1,    -1,    -1,    82,
2196     -1,    -1,    85,    86,    -1,    -1,    89,    90,    -1,    -1,
2197     93,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   102,
2198    103,   104,   105,    -1,    -1,   108,   109,    45,    46,    -1,
2199     -1,    -1,    50,    -1,     1,    -1,     3,     4,    -1,    -1,
2200     -1,    59,    -1,    -1,    -1,    -1,    -1,    65,    -1,    -1,
2201     -1,    -1,    -1,    -1,    72,    -1,    -1,    -1,    76,    -1,
2202     -1,    -1,    -1,    -1,    82,    -1,    -1,    85,    86,    -1,
2203     -1,    89,    90,    -1,    -1,    93,    -1,    -1,    45,    46,
2204     -1,    -1,    -1,    50,   102,   103,   104,   105,    -1,    -1,
2205    108,   109,    59,    -1,    -1,    -1,    -1,    -1,    65,     1,
2206     -1,     3,     4,    -1,    -1,    72,    -1,    -1,    -1,    76,
2207     -1,    -1,    -1,    -1,    -1,    82,    -1,    -1,    85,    86,
2208     -1,    -1,    89,    90,    -1,    -1,    93,    -1,    -1,    -1,
2209     -1,    -1,    -1,    -1,    -1,   102,   103,   104,   105,    -1,
2210     -1,   108,   109,    45,    46,    -1,    -1,    -1,    50,    -1,
2211      1,    -1,     3,     4,    -1,    -1,    -1,    59,    -1,    -1,
2212     -1,    -1,    -1,    65,    -1,    -1,    -1,    -1,    -1,    -1,
2213     72,    -1,    -1,    -1,    76,    -1,    -1,    -1,    -1,    -1,
2214     82,    -1,    -1,    85,    86,    -1,    -1,    89,    90,    -1,
2215     -1,    93,    -1,    -1,    45,    46,    -1,    -1,    -1,    50,
2216    102,   103,   104,   105,    -1,    -1,   108,   109,    59,    -1,
2217     -1,    -1,    -1,    -1,    65,     1,    -1,     3,     4,    -1,
2218     -1,    72,    -1,    -1,    -1,    76,    -1,    -1,    -1,    -1,
2219     -1,    82,    -1,    -1,    85,    86,    -1,    -1,    89,    90,
2220     -1,    -1,    93,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2221     -1,   102,   103,   104,   105,    -1,    -1,   108,   109,    45,
2222     46,    -1,    -1,    -1,    50,    -1,     1,    -1,     3,     4,
2223     -1,    -1,    -1,    59,    -1,    -1,    -1,    -1,    -1,    65,
2224     -1,    -1,    -1,    -1,    -1,    -1,    72,    -1,    -1,    -1,
2225     76,    -1,    -1,    -1,    -1,    -1,    82,    -1,    -1,    85,
2226     86,    -1,    -1,    89,    90,    -1,    -1,    93,    -1,    -1,
2227     45,    46,    -1,    -1,    -1,    50,   102,   103,   104,   105,
2228     -1,    -1,   108,   109,    59,    -1,    -1,    -1,    -1,    -1,
2229     65,     1,    -1,     3,     4,    -1,    -1,    72,    -1,    -1,
2230     -1,    76,    -1,    -1,    -1,    -1,    -1,    82,    -1,    -1,
2231     85,    86,    -1,    -1,    89,    90,    -1,    -1,    93,    -1,
2232     -1,    -1,    -1,    -1,    -1,    -1,    -1,   102,   103,   104,
2233    105,    -1,    -1,   108,   109,    45,    46,    -1,    -1,    -1,
2234     50,    -1,     1,    -1,     3,     4,    -1,    -1,    -1,    59,
2235     -1,    -1,    -1,    -1,    -1,    65,    -1,    -1,    -1,    -1,
2236     -1,    -1,    72,    -1,    -1,    -1,    76,    -1,    -1,    -1,
2237     -1,    -1,    82,    -1,    -1,    85,    86,    -1,    -1,    89,
2238     90,    -1,    -1,    93,    -1,    -1,    45,    46,    -1,    -1,
2239     -1,    50,   102,   103,   104,   105,    -1,    -1,   108,   109,
2240     59,    -1,    -1,    -1,    -1,    -1,    65,     1,    -1,     3,
2241      4,    -1,    -1,    72,    -1,    -1,    -1,    76,    -1,    -1,
2242     -1,    -1,    -1,    82,    -1,    -1,    85,    86,    -1,    -1,
2243     89,    90,    -1,    -1,    93,    -1,    -1,    -1,    -1,    -1,
2244     -1,    -1,    -1,   102,   103,   104,   105,    -1,    -1,   108,
2245    109,    45,    46,    -1,    -1,    -1,    50,    -1,     1,    -1,
2246      3,     4,    -1,    -1,    -1,    59,    -1,    -1,    -1,    -1,
2247     -1,    65,    -1,    -1,    -1,    -1,    -1,    -1,    72,    -1,
2248     -1,    -1,    76,    -1,    -1,    -1,    -1,    -1,    82,    -1,
2249     -1,    85,    86,    -1,    -1,    89,    90,    -1,    -1,    93,
2250     -1,    -1,    45,    46,    -1,    -1,    -1,    50,   102,   103,
2251    104,   105,    -1,    -1,   108,   109,    59,    -1,    -1,    -1,
2252     -1,    -1,    65,     1,    -1,     3,     4,    -1,    -1,    72,
2253     -1,    -1,    -1,    76,    -1,    -1,    -1,    -1,    -1,    82,
2254     -1,    -1,    85,    86,    -1,    -1,    89,    90,    -1,    -1,
2255     93,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   102,
2256    103,   104,   105,    -1,    -1,   108,   109,    45,    46,    -1,
2257     -1,    -1,    50,    -1,     1,    -1,     3,     4,    -1,    -1,
2258     -1,    59,    -1,    -1,    -1,    -1,    -1,    65,    -1,    -1,
2259     -1,    -1,    -1,    -1,    72,    -1,    -1,    -1,    76,    -1,
2260     -1,    -1,    -1,    -1,    82,    -1,    -1,    85,    86,    -1,
2261     -1,    89,    90,    -1,    -1,    93,    -1,    -1,    45,    46,
2262     -1,    -1,    -1,    50,   102,   103,   104,   105,    -1,    -1,
2263    108,   109,    59,    -1,    -1,    -1,    -1,    -1,    65,     1,
2264     -1,     3,     4,    -1,    -1,    72,    -1,    -1,    -1,    76,
2265     -1,    -1,    -1,    -1,    -1,    82,    -1,    -1,    85,    86,
2266     -1,    -1,    89,    90,    -1,    -1,    93,    -1,    -1,    -1,
2267     -1,    -1,    -1,    -1,    -1,   102,   103,   104,   105,    -1,
2268     -1,   108,   109,    45,    46,    -1,    -1,    -1,    50,    -1,
2269      1,    -1,     3,     4,    -1,    -1,    -1,    59,    -1,    -1,
2270     -1,    -1,    -1,    65,    -1,    -1,    -1,    -1,    -1,    -1,
2271     72,    -1,    -1,    -1,    76,    -1,    -1,    -1,    -1,    -1,
2272     82,    -1,    -1,    85,    86,    -1,    -1,    89,    90,    -1,
2273     -1,    93,    -1,    -1,    45,    46,    -1,    -1,    -1,    50,
2274    102,   103,   104,   105,    -1,    -1,   108,   109,    59,    -1,
2275     -1,    -1,    -1,    -1,    65,     1,    -1,     3,     4,    -1,
2276     -1,    72,    -1,    -1,    -1,    76,    -1,    -1,    -1,    -1,
2277     -1,    82,    -1,    -1,    85,    86,    -1,    -1,    89,    90,
2278     -1,    -1,    93,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2279     -1,   102,   103,   104,   105,    -1,    -1,   108,   109,    45,
2280     46,    -1,    -1,    -1,    50,    -1,     1,    -1,     3,     4,
2281     -1,    -1,    -1,    59,    -1,    -1,    -1,    -1,    -1,    65,
2282     -1,    -1,    -1,    -1,    -1,    -1,    72,    -1,    -1,    -1,
2283     76,    -1,    -1,    -1,    -1,    -1,    82,    -1,    -1,    85,
2284     86,    -1,    -1,    89,    90,    -1,    -1,    93,    -1,    -1,
2285     45,    46,    -1,    -1,    -1,    50,   102,   103,   104,   105,
2286     -1,    -1,   108,   109,    59,    -1,    -1,    -1,    -1,    -1,
2287     65,     1,    -1,     3,     4,    -1,    -1,    72,    -1,    -1,
2288     -1,    76,    -1,    -1,    -1,    -1,    -1,    82,    -1,    -1,
2289     85,    86,    -1,    -1,    89,    90,    -1,    -1,    93,    -1,
2290     -1,    -1,    -1,    -1,    -1,    -1,    -1,   102,   103,   104,
2291    105,    -1,    -1,   108,   109,    45,    46,    -1,    -1,    -1,
2292     50,    -1,     1,    -1,     3,     4,    -1,    -1,    -1,    59,
2293     -1,    -1,    -1,    -1,    -1,    65,    -1,    -1,    -1,    -1,
2294     -1,    -1,    72,    -1,    -1,    -1,    76,    -1,    -1,    -1,
2295     -1,    -1,    82,    -1,    -1,    85,    86,    -1,    -1,    89,
2296     90,    -1,    -1,    93,    -1,    -1,    45,    46,    -1,    -1,
2297     -1,    50,   102,   103,   104,   105,    -1,    -1,   108,   109,
2298     59,    -1,    -1,    -1,    -1,    -1,    65,     1,    -1,     3,
2299      4,    -1,    -1,    72,    -1,    -1,    -1,    76,    -1,    -1,
2300     -1,    -1,    -1,    82,    -1,    -1,    85,    86,    -1,    -1,
2301     89,    90,    -1,    -1,    93,    -1,    -1,    -1,    -1,    -1,
2302     -1,    -1,    -1,   102,   103,   104,   105,    -1,    -1,   108,
2303    109,    45,    46,    -1,    -1,    -1,    50,    -1,     1,    -1,
2304      3,     4,    -1,    -1,    -1,    59,    -1,    -1,    -1,    -1,
2305     -1,    65,    -1,    -1,    -1,    -1,    -1,    -1,    72,    -1,
2306     -1,    -1,    76,    -1,    -1,    -1,    -1,    -1,    82,    -1,
2307     -1,    85,    86,    -1,    -1,    89,    90,    -1,    -1,    93,
2308     -1,    -1,    45,    46,    -1,    -1,    -1,    50,   102,   103,
2309    104,   105,    -1,    -1,   108,   109,    59,    -1,    -1,    -1,
2310     -1,    -1,    65,     1,    -1,     3,     4,    -1,    -1,    72,
2311     -1,    -1,    -1,    76,    -1,    -1,    -1,    -1,    -1,    82,
2312     -1,    -1,    85,    86,    -1,    -1,    89,    90,    -1,    -1,
2313     93,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   102,
2314    103,   104,   105,    -1,    -1,   108,   109,    45,    46,    -1,
2315     -1,    -1,    50,    -1,     1,    -1,     3,     4,    -1,    -1,
2316     -1,    59,    -1,    -1,    -1,    -1,    -1,    65,    -1,    -1,
2317     -1,    -1,    -1,    -1,    72,    -1,    -1,    -1,    76,    -1,
2318     -1,    -1,    -1,    -1,    82,    -1,    -1,    85,    86,    -1,
2319     -1,    89,    90,    -1,    -1,    93,    -1,    -1,    45,    46,
2320     -1,    -1,    -1,    50,   102,   103,   104,   105,    -1,    -1,
2321    108,   109,    59,    -1,    -1,    -1,    -1,    -1,    65,     1,
2322     -1,     3,     4,    -1,    -1,    72,    -1,    -1,    -1,    76,
2323     -1,    -1,    -1,    -1,    -1,    82,    -1,    -1,    85,    86,
2324     -1,    -1,    89,    90,    -1,    -1,    93,    -1,    -1,    -1,
2325     -1,    -1,    -1,    -1,    -1,   102,   103,   104,   105,    -1,
2326     -1,   108,   109,    45,    46,    -1,    -1,    -1,    50,    -1,
2327      1,    -1,     3,     4,    -1,    -1,    -1,    59,    -1,    -1,
2328     -1,    -1,    -1,    65,    -1,    -1,    -1,    -1,    -1,    -1,
2329     72,    -1,    -1,    -1,    76,    -1,    -1,    -1,    -1,    -1,
2330     82,    -1,    -1,    85,    86,    -1,    -1,    89,    90,    -1,
2331     -1,    93,    -1,    -1,    45,    46,    -1,    -1,    -1,    50,
2332    102,   103,   104,   105,    -1,    -1,   108,   109,    59,    -1,
2333     -1,    -1,    -1,    -1,    65,    -1,     1,    -1,    -1,    -1,
2334     -1,    72,    -1,    -1,    -1,    76,    -1,    -1,    -1,    -1,
2335     -1,    82,    -1,    -1,    85,    86,    -1,    -1,    89,    90,
2336     -1,     1,    93,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2337     -1,   102,   103,   104,   105,    -1,    -1,   108,   109,    44,
2338     45,    46,    -1,    -1,    -1,    50,    -1,    -1,    -1,    -1,
2339     -1,    -1,    -1,    -1,    59,    -1,    -1,    -1,    -1,    -1,
2340     65,    -1,    -1,     1,    -1,    45,    46,    72,    -1,    -1,
2341     50,    76,    -1,    -1,    -1,    -1,    -1,    82,    -1,    59,
2342     85,    86,    -1,    -1,    -1,    65,    -1,    -1,    93,    -1,
2343      3,     4,    72,    -1,    99,    -1,    76,   102,   103,   104,
2344    105,    -1,    82,   108,   109,    85,    86,    45,    46,    -1,
2345     -1,    -1,    50,    93,    94,    -1,    -1,    -1,    -1,    -1,
2346     -1,    59,   102,   103,   104,   105,    -1,    65,   108,   109,
2347      1,    -1,    45,    46,    72,    -1,    -1,    50,    76,    -1,
2348     -1,    -1,    -1,    -1,    82,    -1,    59,    85,    86,    -1,
2349     -1,    -1,    65,    -1,    -1,    93,    94,     3,     4,    72,
2350     -1,    -1,    -1,    76,   102,   103,   104,   105,    -1,    82,
2351    108,   109,    85,    86,    45,    46,    89,    90,    -1,    50,
2352     93,    -1,    95,    96,    -1,    -1,    -1,    -1,    59,   102,
2353    103,   104,   105,    -1,    65,   108,   109,    -1,    -1,    45,
2354     46,    72,    -1,    -1,    50,    76,    -1,    -1,     3,     4,
2355     -1,    82,    -1,    59,    85,    86,    -1,    -1,    -1,    65,
2356     -1,    -1,    93,    -1,    -1,    -1,    72,    -1,    -1,    -1,
2357     76,   102,   103,   104,   105,    -1,    82,   108,   109,    85,
2358     86,    -1,    -1,    89,    90,    -1,    -1,    93,    94,    -1,
2359     45,    46,    -1,    -1,    -1,    50,   102,   103,   104,   105,
2360     -1,    -1,   108,   109,    59,    -1,    -1,    -1,    -1,    -1,
2361     65,    -1,    -1,     3,     4,    -1,    -1,    72,    -1,    -1,
2362     -1,    76,    -1,    -1,    -1,    -1,    -1,    82,    -1,    -1,
2363     85,    86,    -1,    -1,    89,    90,    -1,    -1,    93,    94,
2364     -1,    -1,    -1,    -1,    -1,    -1,    -1,   102,   103,   104,
2365    105,    -1,    -1,   108,   109,    45,    46,    -1,    -1,    -1,
2366     50,    -1,    -1,    -1,     3,     4,    -1,    -1,    -1,    59,
2367     -1,    -1,    -1,    -1,    -1,    65,    -1,    -1,    -1,    -1,
2368     -1,    -1,    72,    -1,    -1,    -1,    76,    -1,    -1,    -1,
2369     -1,    -1,    82,    -1,    -1,    85,    86,    -1,    -1,    89,
2370     90,    -1,    -1,    93,    94,    -1,    45,    46,    -1,    -1,
2371     -1,    50,   102,   103,   104,   105,    -1,    -1,   108,   109,
2372     59,    -1,    -1,    -1,    -1,    -1,    65,    -1,    -1,     3,
2373      4,    -1,    -1,    72,    -1,    -1,    -1,    76,    -1,    -1,
2374     -1,    -1,    -1,    82,    -1,    -1,    85,    86,    -1,    -1,
2375     89,    90,    -1,    -1,    93,    94,    -1,    -1,    -1,    -1,
2376     -1,    -1,    -1,   102,   103,   104,   105,    -1,    -1,   108,
2377    109,    45,    46,    -1,    -1,    -1,    50,    -1,    -1,    -1,
2378     -1,    -1,    -1,    -1,    -1,    59,    -1,    -1,    -1,    -1,
2379     -1,    65,    -1,    -1,    -1,    -1,    -1,    -1,    72,    -1,
2380     -1,    -1,    76,    -1,    -1,    -1,    -1,    -1,    82,    -1,
2381     -1,    85,    86,    -1,    -1,    89,    90,    -1,    -1,    93,
2382     -1,    44,    45,    46,    -1,    -1,    -1,    50,   102,   103,
2383    104,   105,    -1,    -1,   108,   109,    59,    -1,    -1,    -1,
2384     -1,    -1,    65,    -1,    -1,    -1,    -1,    -1,    -1,    72,
2385     -1,    -1,    -1,    76,    -1,    -1,    -1,    -1,    -1,    82,
2386     -1,    -1,    85,    86,    -1,    -1,    -1,    -1,    -1,    -1,
2387     93,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   102,
2388    103,   104,   105,    -1,    -1,   108,   109
2389 };
2390 #define YYPURE 1
2391
2392 /* -*-C-*-  Note some compilers choke on comments on `#line' lines.  */
2393 #line 3 "/usr/lib/bison.simple"
2394 /* This file comes from bison-1.28.  */
2395
2396 /* Skeleton output parser for bison,
2397    Copyright (C) 1984, 1989, 1990 Free Software Foundation, Inc.
2398
2399    This program is free software; you can redistribute it and/or modify
2400    it under the terms of the GNU General Public License as published by
2401    the Free Software Foundation; either version 2, or (at your option)
2402    any later version.
2403
2404    This program is distributed in the hope that it will be useful,
2405    but WITHOUT ANY WARRANTY; without even the implied warranty of
2406    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
2407    GNU General Public License for more details.
2408
2409    You should have received a copy of the GNU General Public License
2410    along with this program; if not, write to the Free Software
2411    Foundation, Inc., 59 Temple Place - Suite 330,
2412    Boston, MA 02111-1307, USA.  */
2413
2414 /* As a special exception, when this file is copied by Bison into a
2415    Bison output file, you may use that output file without restriction.
2416    This special exception was added by the Free Software Foundation
2417    in version 1.24 of Bison.  */
2418
2419 /* This is the parser code that is written into each bison parser
2420   when the %semantic_parser declaration is not specified in the grammar.
2421   It was written by Richard Stallman by simplifying the hairy parser
2422   used when %semantic_parser is specified.  */
2423
2424 #ifndef YYSTACK_USE_ALLOCA
2425 #ifdef alloca
2426 #define YYSTACK_USE_ALLOCA
2427 #else /* alloca not defined */
2428 #ifdef __GNUC__
2429 #define YYSTACK_USE_ALLOCA
2430 #define alloca __builtin_alloca
2431 #else /* not GNU C.  */
2432 #if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__) || defined (__sparc) || defined (__sgi) || (defined (__sun) && defined (__i386))
2433 #define YYSTACK_USE_ALLOCA
2434 #include <alloca.h>
2435 #else /* not sparc */
2436 /* We think this test detects Watcom and Microsoft C.  */
2437 /* This used to test MSDOS, but that is a bad idea
2438    since that symbol is in the user namespace.  */
2439 #if (defined (_MSDOS) || defined (_MSDOS_)) && !defined (__TURBOC__)
2440 #if 0 /* No need for malloc.h, which pollutes the namespace;
2441          instead, just don't use alloca.  */
2442 #include <malloc.h>
2443 #endif
2444 #else /* not MSDOS, or __TURBOC__ */
2445 #if defined(_AIX)
2446 /* I don't know what this was