From ad3212931059fbf2c069c11851c587a4e86380b3 Mon Sep 17 00:00:00 2001 From: Mark Mitchell Date: Wed, 18 Mar 1998 10:52:04 +0000 Subject: [PATCH] semantics.c: New file, containing routines to perform the semantic phase of parsing. * semantics.c: New file, containing routines to perform the semantic phase of parsing. * parse.y: Use it. * pt.c (tsubst_expr): Likewise. * cp-tree.h: Declare the various functions in semantics.c. Provide macros to access _STMT tree nodes. * cp-tree.def: Add ASM_STMT tree node. * Makefile.in, Make-lang.in: Add dependencies on and for semantics.c. From-SVN: r18658 --- gcc/cp/ChangeLog | 12 + gcc/cp/Make-lang.in | 2 +- gcc/cp/Makefile.in | 4 +- gcc/cp/cp-tree.def | 1 + gcc/cp/cp-tree.h | 67 + gcc/cp/parse.c | 6703 ++++++++++++++++++++----------------------- gcc/cp/parse.y | 539 +--- gcc/cp/pt.c | 231 +- gcc/cp/semantics.c | 748 +++++ 9 files changed, 4140 insertions(+), 4167 deletions(-) create mode 100644 gcc/cp/semantics.c diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 216ced7007b..723c5a2f365 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,15 @@ +Wed Mar 18 10:09:51 1998 Mark Mitchell + + * semantics.c: New file, containing routines to perform the + semantic phase of parsing. + * parse.y: Use it. + * pt.c (tsubst_expr): Likewise. + * cp-tree.h: Declare the various functions in semantics.c. + Provide macros to access _STMT tree nodes. + * cp-tree.def: Add ASM_STMT tree node. + * Makefile.in, Make-lang.in: Add dependencies on and for + semantics.c. + Wed Mar 18 00:24:10 1998 Jason Merrill * pt.c (push_template_decl): Only check primary templates. diff --git a/gcc/cp/Make-lang.in b/gcc/cp/Make-lang.in index 6ed167830c8..67fca2e315c 100644 --- a/gcc/cp/Make-lang.in +++ b/gcc/cp/Make-lang.in @@ -122,7 +122,7 @@ CXX_SRCS = $(srcdir)/cp/call.c $(srcdir)/cp/decl2.c \ $(srcdir)/cp/search.c $(srcdir)/cp/typeck.c $(srcdir)/cp/decl.c \ $(srcdir)/cp/error.c $(srcdir)/cp/friend.c $(srcdir)/cp/init.c \ $(srcdir)/cp/parse.y $(srcdir)/cp/sig.c $(srcdir)/cp/typeck2.c \ - $(srcdir)/cp/repo.c + $(srcdir)/cp/repo.c $(srcdir)/cp/semantics.c cc1plus: $(P) $(CXX_SRCS) $(LIBDEPS) stamp-objlist c-common.o c-pragma.o \ $(srcdir)/cp/cp-tree.h $(srcdir)/cp/cp-tree.def diff --git a/gcc/cp/Makefile.in b/gcc/cp/Makefile.in index 2ad0858d7b8..f677dfe7b1e 100644 --- a/gcc/cp/Makefile.in +++ b/gcc/cp/Makefile.in @@ -166,7 +166,7 @@ INCLUDES = -I. -I.. -I$(srcdir) -I$(srcdir)/.. -I$(srcdir)/../config CXX_OBJS = call.o decl.o errfn.o expr.o pt.o sig.o typeck2.o \ class.o decl2.o error.o lex.o parse.o ptree.o rtti.o spew.o typeck.o cvt.o \ - except.o friend.o init.o method.o search.o tree.o xref.o repo.o + except.o friend.o init.o method.o search.o semantics.o tree.o xref.o repo.o # Language-independent object files. OBJS = `cat ../stamp-objlist` ../c-common.o ../c-pragma.o @@ -259,6 +259,8 @@ error.o : error.c $(CONFIG_H) $(CXX_TREE_H) errfn.o : errfn.c $(CONFIG_H) $(CXX_TREE_H) sig.o : sig.c $(CONFIG_H) $(CXX_TREE_H) $(srcdir)/../flags.h repo.o : repo.c $(CONFIG_H) $(CXX_TREE_H) +semantics.o: semantics.c $(CONFIG_H) $(CXX_TREE_H) lex.h $(srcdir)/../except.h + # # These exist for maintenance purposes. diff --git a/gcc/cp/cp-tree.def b/gcc/cp/cp-tree.def index 1f39768a91d..98217c3892f 100644 --- a/gcc/cp/cp-tree.def +++ b/gcc/cp/cp-tree.def @@ -200,6 +200,7 @@ DEFTREECODE (BREAK_STMT, "break_stmt", 'e', 0) DEFTREECODE (CONTINUE_STMT, "continue_stmt", 'e', 0) DEFTREECODE (SWITCH_STMT, "switch_stmt", 'e', 2) DEFTREECODE (GOTO_STMT, "goto_stmt", 'e', 1) +DEFTREECODE (ASM_STMT, "asm_stmt", 'e', 5) DEFTREECODE (CTOR_INITIALIZER, "ctor_initializer", 'e', 2) DEFTREECODE (CASE_LABEL, "case_label", 'e', 2) diff --git a/gcc/cp/cp-tree.h b/gcc/cp/cp-tree.h index 0e9f9d844ef..0c4cfcd78f8 100644 --- a/gcc/cp/cp-tree.h +++ b/gcc/cp/cp-tree.h @@ -1524,6 +1524,37 @@ extern int flag_new_for_scope; #define builtin_function(NAME, TYPE, CODE, LIBNAME) \ define_function (NAME, TYPE, CODE, (void (*) PROTO((tree)))pushdecl, LIBNAME) +/* These macros provide convenient access to the various _STMT nodes + created when parsing template declarations. */ +#define IF_COND(NODE) TREE_OPERAND (NODE, 0) +#define THEN_CLAUSE(NODE) TREE_OPERAND (NODE, 1) +#define ELSE_CLAUSE(NODE) TREE_OPERAND (NODE, 2) +#define WHILE_COND(NODE) TREE_OPERAND (NODE, 0) +#define WHILE_BODY(NODE) TREE_OPERAND (NODE, 1) +#define DO_COND(NODE) TREE_OPERAND (NODE, 0) +#define DO_BODY(NODE) TREE_OPERAND (NODE, 1) +#define RETURN_EXPR(NODE) TREE_OPERAND (NODE, 0) +#define EXPR_STMT_EXPR(NODE) TREE_OPERAND (NODE, 0) +#define FOR_INIT_STMT(NODE) TREE_OPERAND (NODE, 0) +#define FOR_COND(NODE) TREE_OPERAND (NODE, 1) +#define FOR_EXPR(NODE) TREE_OPERAND (NODE, 2) +#define FOR_BODY(NODE) TREE_OPERAND (NODE, 3) +#define SWITCH_COND(NODE) TREE_OPERAND (NODE, 0) +#define SWITCH_BODY(NODE) TREE_OPERAND (NODE, 1) +#define CASE_LOW(NODE) TREE_OPERAND (NODE, 0) +#define CASE_HIGH(NODE) TREE_OPERAND (NODE, 1) +#define GOTO_DESTINATION(NODE) TREE_OPERAND (NODE, 0) +#define TRY_STMTS(NODE) TREE_OPERAND (NODE, 0) +#define TRY_HANDLERS(NODE) TREE_OPERAND (NODE, 1) +#define HANDLER_PARMS(NODE) TREE_OPERAND (NODE, 0) +#define HANDLER_BODY(NODE) TREE_OPERAND (NODE, 1) +#define COMPOUND_BODY(NODE) TREE_OPERAND (NODE, 0) +#define ASM_CV_QUAL(NODE) TREE_OPERAND (NODE, 0) +#define ASM_STRING(NODE) TREE_OPERAND (NODE, 1) +#define ASM_OUTPUTS(NODE) TREE_OPERAND (NODE, 2) +#define ASM_INPUTS(NODE) TREE_OPERAND (NODE, 3) +#define ASM_CLOBBERS(NODE) TREE_OPERAND (NODE, 4) + /* An enumeration of the kind of tags that C++ accepts. */ enum tag_types { record_type, class_type, union_type, enum_type, signature_type }; @@ -2511,6 +2542,42 @@ extern tree current_scope PROTO((void)); extern tree lookup_conversions PROTO((tree)); extern tree get_template_base PROTO((tree, tree)); +/* in semantics.c */ +extern void finish_expr_stmt PROTO((tree)); +extern tree begin_if_stmt PROTO((void)); +extern void finish_if_stmt_cond PROTO((tree, tree)); +extern tree finish_then_clause PROTO((tree)); +extern void begin_else_clause PROTO((void)); +extern void finish_else_clause PROTO((tree)); +extern void finish_if_stmt PROTO((void)); +extern tree begin_while_stmt PROTO((void)); +extern void finish_while_stmt_cond PROTO((tree, tree)); +extern void finish_while_stmt PROTO((tree)); +extern tree begin_do_stmt PROTO((void)); +extern void finish_do_body PROTO((tree)); +extern void finish_do_stmt PROTO((tree, tree)); +extern void finish_return_stmt PROTO((tree)); +extern tree begin_for_stmt PROTO((void)); +extern void finish_for_init_stmt PROTO((tree)); +extern void finish_for_cond PROTO((tree, tree)); +extern void finish_for_expression PROTO((tree, tree)); +extern void finish_for_stmt PROTO((tree, tree)); +extern void finish_break_stmt PROTO((void)); +extern void finish_continue_stmt PROTO((void)); +extern void begin_switch_stmt PROTO((void)); +extern tree finish_switch_cond PROTO((tree)); +extern void finish_switch_stmt PROTO((tree, tree)); +extern void finish_case_label PROTO((tree, tree)); +extern void finish_goto_stmt PROTO((tree)); +extern tree begin_try_block PROTO((void)); +extern void finish_try_block PROTO((tree)); +extern void finish_handler_sequence PROTO((tree)); +extern tree begin_handler PROTO((void)); +extern void finish_handler_parms PROTO((tree)); +extern void finish_handler PROTO((tree)); +extern tree begin_compound_stmt PROTO((int)); +extern tree finish_compound_stmt PROTO((int, tree)); +extern void finish_asm_stmt PROTO((tree, tree, tree, tree, tree)); /* in sig.c */ extern tree build_signature_pointer_type PROTO((tree, int, int)); extern tree build_signature_reference_type PROTO((tree, int, int)); diff --git a/gcc/cp/parse.c b/gcc/cp/parse.c index 231e427d7cb..d42efe2a991 100644 --- a/gcc/cp/parse.c +++ b/gcc/cp/parse.c @@ -217,11 +217,11 @@ parse_decl(declarator, specs_attrs, attributes, initialized, decl) -#define YYFINAL 1565 +#define YYFINAL 1549 #define YYFLAG -32768 #define YYNTBASE 114 -#define YYTRANSLATE(x) ((unsigned)(x) <= 344 ? yytranslate[x] : 390) +#define YYTRANSLATE(x) ((unsigned)(x) <= 344 ? yytranslate[x] : 386) static const char yytranslate[] = { 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, @@ -330,24 +330,24 @@ static const short yyprhs[] = { 0, 2112, 2117, 2121, 2124, 2127, 2129, 2133, 2136, 2139, 2141, 2144, 2148, 2150, 2154, 2156, 2163, 2168, 2173, 2177, 2183, 2187, 2191, 2195, 2198, 2200, 2202, 2205, 2208, 2211, 2212, - 2213, 2214, 2216, 2218, 2221, 2225, 2227, 2230, 2231, 2237, - 2238, 2239, 2246, 2248, 2249, 2254, 2256, 2258, 2260, 2263, - 2264, 2265, 2272, 2274, 2275, 2276, 2284, 2285, 2286, 2294, - 2295, 2296, 2297, 2298, 2313, 2314, 2315, 2325, 2326, 2332, - 2333, 2341, 2342, 2347, 2350, 2353, 2356, 2360, 2367, 2376, - 2387, 2400, 2405, 2409, 2412, 2415, 2417, 2419, 2420, 2421, - 2428, 2429, 2430, 2436, 2438, 2441, 2442, 2443, 2444, 2453, - 2455, 2457, 2461, 2465, 2468, 2471, 2474, 2477, 2480, 2482, - 2485, 2486, 2488, 2489, 2491, 2493, 2494, 2496, 2498, 2502, - 2507, 2509, 2513, 2514, 2516, 2518, 2520, 2523, 2526, 2529, - 2531, 2533, 2536, 2539, 2542, 2545, 2546, 2550, 2552, 2554, - 2556, 2559, 2562, 2565, 2570, 2573, 2576, 2579, 2582, 2585, - 2588, 2590, 2593, 2595, 2598, 2600, 2602, 2603, 2604, 2606, - 2607, 2612, 2615, 2617, 2619, 2623, 2624, 2628, 2632, 2636, - 2638, 2641, 2644, 2647, 2650, 2653, 2656, 2659, 2662, 2665, - 2668, 2671, 2674, 2677, 2680, 2683, 2686, 2689, 2692, 2695, - 2698, 2701, 2704, 2707, 2711, 2714, 2717, 2720, 2723, 2727, - 2730, 2733, 2738, 2743, 2747 + 2214, 2216, 2219, 2223, 2225, 2228, 2229, 2233, 2234, 2235, + 2241, 2243, 2244, 2247, 2249, 2251, 2253, 2256, 2257, 2262, + 2264, 2265, 2266, 2272, 2273, 2274, 2282, 2283, 2284, 2285, + 2286, 2299, 2300, 2301, 2309, 2310, 2316, 2317, 2325, 2326, + 2331, 2334, 2337, 2340, 2344, 2351, 2360, 2371, 2384, 2389, + 2393, 2396, 2399, 2401, 2403, 2404, 2405, 2412, 2413, 2414, + 2420, 2422, 2425, 2426, 2427, 2433, 2435, 2437, 2441, 2445, + 2448, 2451, 2454, 2457, 2460, 2462, 2465, 2466, 2468, 2469, + 2471, 2473, 2474, 2476, 2478, 2482, 2487, 2489, 2493, 2494, + 2496, 2498, 2500, 2503, 2506, 2509, 2511, 2513, 2516, 2519, + 2522, 2525, 2526, 2530, 2532, 2534, 2536, 2539, 2542, 2545, + 2550, 2553, 2556, 2559, 2562, 2565, 2568, 2570, 2573, 2575, + 2578, 2580, 2582, 2583, 2584, 2586, 2587, 2592, 2595, 2597, + 2599, 2603, 2604, 2608, 2612, 2616, 2618, 2621, 2624, 2627, + 2630, 2633, 2636, 2639, 2642, 2645, 2648, 2651, 2654, 2657, + 2660, 2663, 2666, 2669, 2672, 2675, 2678, 2681, 2684, 2687, + 2691, 2694, 2697, 2700, 2703, 2707, 2710, 2713, 2718, 2723, + 2727 }; static const short yyrhs[] = { -1, @@ -365,25 +365,25 @@ static const short yyrhs[] = { -1, 0, 0, 49, 75, 131, 132, 76, 0, 49, 75, 76, 0, 136, 0, 132, 60, 136, 0, 157, 0, 0, 257, 133, 0, 46, 133, 0, 130, 257, 133, - 0, 134, 0, 134, 65, 214, 0, 381, 0, 381, + 0, 134, 0, 134, 65, 214, 0, 377, 0, 377, 65, 194, 0, 135, 0, 135, 65, 176, 0, 130, 124, 0, 130, 1, 0, 225, 61, 0, 218, 224, 61, 0, 215, 223, 61, 0, 218, 61, 0, 160, 61, 0, 215, 61, 0, 1, 61, 0, 1, 111, 0, 61, 0, 209, 0, 153, 0, 0, 152, 0, - 152, 61, 0, 0, 109, 0, 148, 140, 139, 326, - 0, 148, 140, 351, 0, 148, 140, 1, 0, 0, - 305, 5, 94, 144, 372, 110, 287, 384, 0, 305, - 5, 48, 287, 384, 0, 0, 314, 305, 5, 94, - 145, 372, 110, 287, 384, 0, 314, 305, 5, 48, - 287, 384, 0, 0, 305, 172, 94, 146, 372, 110, - 287, 384, 0, 305, 172, 48, 287, 384, 0, 0, - 314, 305, 172, 94, 147, 372, 110, 287, 384, 0, - 314, 305, 172, 48, 287, 384, 0, 215, 212, 0, + 152, 61, 0, 0, 109, 0, 148, 140, 139, 324, + 0, 148, 140, 348, 0, 148, 140, 1, 0, 0, + 305, 5, 94, 144, 368, 110, 287, 380, 0, 305, + 5, 48, 287, 380, 0, 0, 314, 305, 5, 94, + 145, 368, 110, 287, 380, 0, 314, 305, 5, 48, + 287, 380, 0, 0, 305, 172, 94, 146, 368, 110, + 287, 380, 0, 305, 172, 48, 287, 380, 0, 0, + 314, 305, 172, 94, 147, 368, 110, 287, 380, 0, + 314, 305, 172, 48, 287, 380, 0, 215, 212, 0, 218, 297, 0, 297, 0, 218, 143, 0, 143, 0, - 5, 94, 372, 110, 287, 384, 0, 5, 48, 287, - 384, 0, 172, 94, 372, 110, 287, 384, 0, 172, - 48, 287, 384, 0, 218, 149, 0, 149, 0, 215, + 5, 94, 368, 110, 287, 380, 0, 5, 48, 287, + 380, 0, 172, 94, 368, 110, 287, 380, 0, 172, + 48, 287, 380, 0, 218, 149, 0, 149, 0, 215, 212, 0, 218, 297, 0, 297, 0, 218, 143, 0, 143, 0, 25, 3, 0, 151, 242, 0, 151, 94, 188, 110, 0, 151, 48, 0, 63, 154, 155, 0, @@ -406,10 +406,10 @@ static const short yyrhs[] = { -1, 0, 194, 0, 80, 0, 79, 0, 87, 0, 88, 0, 112, 0, 187, 0, 194, 0, 48, 0, 94, 178, 110, 0, 48, 0, 94, 182, 110, 0, 0, - 182, 0, 1, 0, 0, 362, 212, 226, 235, 65, - 183, 243, 0, 178, 0, 111, 0, 323, 319, 111, - 0, 323, 319, 1, 111, 0, 323, 1, 111, 0, - 0, 59, 186, 184, 0, 335, 0, 194, 60, 194, + 182, 0, 1, 0, 0, 358, 212, 226, 235, 65, + 183, 243, 0, 178, 0, 111, 0, 321, 319, 111, + 0, 321, 319, 1, 111, 0, 321, 1, 111, 0, + 0, 59, 186, 184, 0, 333, 0, 194, 60, 194, 0, 194, 60, 1, 0, 187, 60, 194, 0, 187, 60, 1, 0, 194, 0, 187, 0, 203, 0, 120, 193, 0, 81, 193, 0, 71, 193, 0, 89, 193, @@ -433,19 +433,19 @@ static const short yyrhs[] = { -1, 194, 76, 194, 0, 194, 73, 194, 0, 194, 72, 194, 0, 194, 71, 194, 0, 194, 69, 194, 0, 194, 70, 194, 0, 194, 68, 194, 0, 194, 67, - 194, 0, 194, 66, 367, 63, 194, 0, 194, 65, + 194, 0, 194, 66, 363, 63, 194, 0, 194, 65, 194, 0, 194, 64, 194, 0, 62, 0, 62, 194, - 0, 89, 382, 157, 0, 197, 0, 389, 0, 3, + 0, 89, 378, 157, 0, 197, 0, 385, 0, 3, 0, 57, 0, 58, 0, 0, 6, 75, 196, 174, - 173, 0, 389, 75, 196, 174, 173, 0, 49, 157, + 173, 0, 385, 75, 196, 174, 173, 0, 49, 157, 75, 174, 173, 0, 49, 6, 75, 174, 173, 0, - 49, 389, 75, 174, 173, 0, 195, 0, 4, 0, + 49, 385, 75, 174, 173, 0, 195, 0, 4, 0, 5, 0, 195, 0, 81, 200, 0, 71, 200, 0, 94, 200, 110, 0, 3, 75, 174, 173, 0, 58, 75, 175, 173, 0, 299, 0, 195, 0, 201, 0, 94, 200, 110, 0, 195, 0, 10, 0, 207, 0, 208, 0, 94, 178, 110, 0, 94, 200, 110, 0, - 94, 1, 110, 0, 0, 94, 204, 327, 110, 0, + 94, 1, 110, 0, 0, 94, 204, 325, 110, 0, 203, 94, 188, 110, 0, 203, 48, 0, 203, 95, 178, 113, 0, 203, 87, 0, 203, 88, 0, 41, 0, 9, 94, 188, 110, 0, 303, 0, 51, 75, @@ -453,7 +453,7 @@ static const short yyrhs[] = { -1, 94, 178, 110, 0, 53, 75, 214, 76, 94, 178, 110, 0, 54, 75, 214, 76, 94, 178, 110, 0, 50, 94, 178, 110, 0, 50, 94, 214, 110, 0, - 314, 3, 0, 314, 389, 0, 302, 0, 302, 94, + 314, 3, 0, 314, 385, 0, 302, 0, 302, 94, 188, 110, 0, 302, 48, 0, 210, 198, 0, 210, 198, 94, 188, 110, 0, 210, 198, 48, 0, 210, 199, 0, 210, 302, 0, 210, 199, 94, 188, 110, @@ -493,8 +493,8 @@ static const short yyrhs[] = { -1, 244, 111, 0, 59, 244, 60, 111, 0, 1, 0, 243, 0, 244, 60, 243, 0, 95, 194, 113, 243, 0, 157, 63, 243, 0, 244, 60, 157, 63, 243, - 0, 99, 0, 245, 140, 139, 326, 0, 245, 140, - 351, 0, 245, 140, 1, 0, 0, 247, 246, 141, + 0, 99, 0, 245, 140, 139, 324, 0, 245, 140, + 348, 0, 245, 140, 1, 0, 0, 247, 246, 141, 0, 104, 194, 109, 0, 104, 1, 109, 0, 0, 249, 248, 0, 249, 1, 0, 0, 14, 157, 59, 251, 284, 256, 111, 0, 14, 157, 59, 111, 0, @@ -508,11 +508,11 @@ static const short yyrhs[] = { -1, 257, 314, 157, 0, 257, 171, 0, 257, 305, 171, 0, 0, 258, 0, 259, 261, 265, 0, 260, 265, 0, 257, 59, 0, 263, 0, 262, 0, 0, 63, - 382, 0, 63, 382, 266, 0, 267, 0, 266, 60, - 382, 267, 0, 268, 0, 269, 382, 268, 0, 307, + 378, 0, 63, 378, 266, 0, 267, 0, 266, 60, + 378, 267, 0, 268, 0, 269, 378, 268, 0, 307, 0, 293, 0, 31, 94, 178, 110, 0, 31, 94, - 214, 110, 0, 38, 382, 0, 7, 382, 0, 269, - 38, 382, 0, 269, 7, 382, 0, 59, 0, 0, + 214, 110, 0, 38, 378, 0, 7, 378, 0, 269, + 38, 378, 0, 269, 7, 378, 0, 59, 0, 0, 271, 0, 271, 273, 0, 272, 38, 63, 273, 0, 272, 38, 63, 0, 274, 0, 273, 274, 0, 275, 61, 0, 275, 111, 0, 150, 63, 0, 150, 96, @@ -530,21 +530,21 @@ static const short yyrhs[] = { -1, 63, 194, 235, 0, 297, 226, 235, 242, 0, 3, 63, 194, 235, 0, 63, 194, 235, 0, 285, 0, 284, 60, 285, 0, 157, 0, 157, 65, 194, 0, - 362, 315, 0, 362, 0, 94, 214, 110, 95, 178, + 358, 315, 0, 358, 0, 94, 214, 110, 95, 178, 113, 0, 0, 287, 9, 0, 9, 0, 288, 9, 0, 0, 289, 178, 0, 289, 94, 188, 110, 0, - 289, 94, 372, 110, 0, 289, 48, 0, 289, 94, + 289, 94, 368, 110, 0, 289, 48, 0, 289, 94, 1, 110, 0, 81, 288, 292, 0, 71, 288, 292, 0, 81, 292, 0, 71, 292, 0, 313, 287, 292, 0, 296, 0, 304, 0, 314, 304, 0, 293, 0, 295, 0, 314, 295, 0, 305, 304, 0, 296, 291, - 287, 384, 0, 296, 95, 290, 113, 0, 296, 95, + 287, 380, 0, 296, 95, 290, 113, 0, 296, 95, 113, 0, 94, 292, 110, 0, 305, 304, 0, 304, 0, 81, 288, 297, 0, 71, 288, 297, 0, 81, 297, 0, 71, 297, 0, 313, 287, 297, 0, 202, 0, 81, 288, 297, 0, 71, 288, 297, 0, 81, 298, 0, 71, 298, 0, 313, 287, 297, 0, 299, - 0, 202, 291, 287, 384, 0, 94, 298, 110, 0, + 0, 202, 291, 287, 380, 0, 94, 298, 110, 0, 202, 95, 290, 113, 0, 202, 95, 113, 0, 301, 0, 305, 201, 0, 305, 199, 0, 305, 198, 0, 305, 195, 0, 305, 198, 0, 301, 0, 314, 301, @@ -566,66 +566,64 @@ static const short yyrhs[] = { -1, 81, 317, 0, 81, 288, 0, 81, 0, 71, 288, 317, 0, 71, 317, 0, 71, 288, 0, 71, 0, 313, 287, 0, 313, 287, 317, 0, 318, 0, 94, - 317, 110, 0, 91, 0, 318, 94, 372, 110, 287, - 384, 0, 318, 48, 287, 384, 0, 318, 95, 290, - 113, 0, 318, 95, 113, 0, 94, 373, 110, 287, - 384, 0, 192, 287, 384, 0, 213, 287, 384, 0, - 95, 290, 113, 0, 95, 113, 0, 334, 0, 320, - 0, 319, 334, 0, 319, 320, 0, 1, 61, 0, - 0, 0, 0, 324, 0, 325, 0, 324, 325, 0, - 34, 241, 61, 0, 327, 0, 1, 327, 0, 0, - 59, 328, 321, 184, 322, 0, 0, 0, 15, 330, - 321, 180, 331, 332, 0, 327, 0, 0, 321, 333, - 335, 322, 0, 327, 0, 335, 0, 211, 0, 178, - 61, 0, 0, 0, 329, 16, 336, 332, 337, 322, - 0, 329, 0, 0, 0, 17, 338, 321, 180, 339, - 185, 322, 0, 0, 0, 18, 340, 332, 17, 341, - 179, 61, 0, 0, 0, 0, 0, 19, 342, 94, - 365, 343, 321, 181, 61, 344, 367, 110, 345, 185, - 322, 0, 0, 0, 20, 321, 94, 182, 110, 346, - 332, 347, 322, 0, 0, 21, 194, 63, 348, 334, - 0, 0, 21, 194, 12, 194, 63, 349, 334, 0, - 0, 22, 63, 350, 334, 0, 23, 61, 0, 24, - 61, 0, 25, 61, 0, 25, 178, 61, 0, 121, - 366, 94, 208, 110, 61, 0, 121, 366, 94, 208, - 63, 368, 110, 61, 0, 121, 366, 94, 208, 63, - 368, 63, 368, 110, 61, 0, 121, 366, 94, 208, - 63, 368, 63, 368, 63, 371, 110, 61, 0, 26, - 81, 178, 61, 0, 26, 157, 61, 0, 364, 334, - 0, 364, 111, 0, 61, 0, 354, 0, 0, 0, - 96, 352, 139, 327, 353, 357, 0, 0, 0, 96, - 355, 327, 356, 357, 0, 358, 0, 357, 358, 0, - 0, 0, 0, 97, 359, 321, 363, 360, 327, 361, - 322, 0, 219, 0, 288, 0, 94, 12, 110, 0, - 94, 381, 110, 0, 3, 63, 0, 57, 63, 0, - 4, 63, 0, 5, 63, 0, 367, 61, 0, 211, + 317, 110, 0, 91, 0, 318, 94, 368, 110, 287, + 380, 0, 318, 48, 287, 380, 0, 318, 95, 290, + 113, 0, 318, 95, 113, 0, 94, 369, 110, 287, + 380, 0, 192, 287, 380, 0, 213, 287, 380, 0, + 95, 290, 113, 0, 95, 113, 0, 332, 0, 320, + 0, 319, 332, 0, 319, 320, 0, 1, 61, 0, + 0, 322, 0, 323, 0, 322, 323, 0, 34, 241, + 61, 0, 325, 0, 1, 325, 0, 0, 59, 326, + 184, 0, 0, 0, 15, 328, 180, 329, 330, 0, + 325, 0, 0, 331, 333, 0, 325, 0, 333, 0, + 211, 0, 178, 61, 0, 0, 327, 16, 334, 330, + 0, 327, 0, 0, 0, 17, 335, 180, 336, 185, + 0, 0, 0, 18, 337, 330, 17, 338, 179, 61, + 0, 0, 0, 0, 0, 19, 339, 94, 361, 340, + 181, 61, 341, 363, 110, 342, 185, 0, 0, 0, + 20, 343, 94, 182, 110, 344, 330, 0, 0, 21, + 194, 63, 345, 332, 0, 0, 21, 194, 12, 194, + 63, 346, 332, 0, 0, 22, 63, 347, 332, 0, + 23, 61, 0, 24, 61, 0, 25, 61, 0, 25, + 178, 61, 0, 121, 362, 94, 208, 110, 61, 0, + 121, 362, 94, 208, 63, 364, 110, 61, 0, 121, + 362, 94, 208, 63, 364, 63, 364, 110, 61, 0, + 121, 362, 94, 208, 63, 364, 63, 364, 63, 367, + 110, 61, 0, 26, 81, 178, 61, 0, 26, 157, + 61, 0, 360, 332, 0, 360, 111, 0, 61, 0, + 351, 0, 0, 0, 96, 349, 139, 325, 350, 354, + 0, 0, 0, 96, 352, 325, 353, 354, 0, 355, + 0, 354, 355, 0, 0, 0, 97, 356, 359, 357, + 325, 0, 219, 0, 288, 0, 94, 12, 110, 0, + 94, 377, 110, 0, 3, 63, 0, 57, 63, 0, + 4, 63, 0, 5, 63, 0, 363, 61, 0, 211, 0, 59, 184, 0, 0, 9, 0, 0, 178, 0, - 1, 0, 0, 369, 0, 370, 0, 369, 60, 370, - 0, 11, 94, 178, 110, 0, 11, 0, 371, 60, - 11, 0, 0, 373, 0, 214, 0, 377, 0, 378, - 12, 0, 377, 12, 0, 214, 12, 0, 12, 0, - 98, 0, 377, 98, 0, 214, 98, 0, 377, 63, - 0, 214, 63, 0, 0, 65, 375, 376, 0, 103, - 0, 243, 0, 379, 0, 381, 374, 0, 378, 380, - 0, 378, 383, 0, 378, 383, 65, 243, 0, 377, + 1, 0, 0, 365, 0, 366, 0, 365, 60, 366, + 0, 11, 94, 178, 110, 0, 11, 0, 367, 60, + 11, 0, 0, 369, 0, 214, 0, 373, 0, 374, + 12, 0, 373, 12, 0, 214, 12, 0, 12, 0, + 98, 0, 373, 98, 0, 214, 98, 0, 373, 63, + 0, 214, 63, 0, 0, 65, 371, 372, 0, 103, + 0, 243, 0, 375, 0, 377, 370, 0, 374, 376, + 0, 374, 379, 0, 374, 379, 65, 243, 0, 373, 60, 0, 214, 60, 0, 216, 212, 0, 219, 212, 0, 221, 212, 0, 216, 317, 0, 216, 0, 218, - 297, 0, 381, 0, 381, 374, 0, 379, 0, 214, - 0, 0, 0, 297, 0, 0, 62, 94, 386, 110, - 0, 62, 48, 0, 214, 0, 385, 0, 386, 60, - 385, 0, 0, 81, 287, 387, 0, 71, 287, 387, - 0, 313, 287, 387, 0, 42, 0, 388, 81, 0, - 388, 82, 0, 388, 83, 0, 388, 79, 0, 388, - 80, 0, 388, 71, 0, 388, 69, 0, 388, 70, - 0, 388, 89, 0, 388, 60, 0, 388, 74, 0, - 388, 75, 0, 388, 76, 0, 388, 73, 0, 388, - 64, 0, 388, 65, 0, 388, 77, 0, 388, 78, - 0, 388, 87, 0, 388, 88, 0, 388, 68, 0, - 388, 67, 0, 388, 112, 0, 388, 66, 63, 0, - 388, 72, 0, 388, 92, 0, 388, 84, 0, 388, - 48, 0, 388, 95, 113, 0, 388, 40, 0, 388, - 39, 0, 388, 40, 95, 113, 0, 388, 39, 95, - 113, 0, 388, 362, 387, 0, 388, 1, 0 + 297, 0, 377, 0, 377, 370, 0, 375, 0, 214, + 0, 0, 0, 297, 0, 0, 62, 94, 382, 110, + 0, 62, 48, 0, 214, 0, 381, 0, 382, 60, + 381, 0, 0, 81, 287, 383, 0, 71, 287, 383, + 0, 313, 287, 383, 0, 42, 0, 384, 81, 0, + 384, 82, 0, 384, 83, 0, 384, 79, 0, 384, + 80, 0, 384, 71, 0, 384, 69, 0, 384, 70, + 0, 384, 89, 0, 384, 60, 0, 384, 74, 0, + 384, 75, 0, 384, 76, 0, 384, 73, 0, 384, + 64, 0, 384, 65, 0, 384, 77, 0, 384, 78, + 0, 384, 87, 0, 384, 88, 0, 384, 68, 0, + 384, 67, 0, 384, 112, 0, 384, 66, 63, 0, + 384, 72, 0, 384, 92, 0, 384, 84, 0, 384, + 48, 0, 384, 95, 113, 0, 384, 40, 0, 384, + 39, 0, 384, 40, 95, 113, 0, 384, 39, 95, + 113, 0, 384, 358, 383, 0, 384, 1, 0 }; #endif @@ -650,73 +648,73 @@ static const short yyrline[] = { 0, 926, 933, 939, 942, 951, 953, 961, 964, 967, 970, 974, 977, 980, 983, 985, 987, 989, 993, 996, 999, 1004, 1008, 1013, 1017, 1020, 1022, 1026, 1046, 1053, 1056, - 1058, 1059, 1060, 1063, 1074, 1083, 1087, 1091, 1094, 1096, - 1100, 1103, 1106, 1110, 1113, 1115, 1117, 1119, 1126, 1139, - 1141, 1143, 1145, 1151, 1154, 1157, 1160, 1163, 1167, 1170, - 1173, 1177, 1179, 1183, 1187, 1189, 1193, 1196, 1203, 1206, - 1208, 1216, 1229, 1235, 1242, 1244, 1246, 1259, 1262, 1264, - 1266, 1268, 1270, 1272, 1274, 1276, 1278, 1280, 1282, 1284, - 1286, 1288, 1290, 1292, 1294, 1296, 1298, 1300, 1302, 1306, - 1308, 1310, 1327, 1330, 1331, 1332, 1333, 1334, 1337, 1340, - 1343, 1347, 1350, 1352, 1357, 1359, 1360, 1363, 1365, 1367, - 1369, 1373, 1376, 1380, 1382, 1383, 1384, 1388, 1396, 1397, - 1398, 1406, 1414, 1422, 1424, 1436, 1466, 1473, 1480, 1482, - 1491, 1496, 1519, 1563, 1564, 1568, 1572, 1576, 1580, 1582, - 1586, 1588, 1596, 1598, 1603, 1609, 1613, 1618, 1623, 1625, - 1630, 1645, 1660, 1671, 1683, 1691, 1700, 1744, 1747, 1751, - 1754, 1758, 1761, 1766, 1768, 1772, 1785, 1788, 1795, 1802, - 1807, 1809, 1814, 1816, 1823, 1825, 1829, 1833, 1839, 1843, - 1846, 1849, 1852, 1862, 1864, 1867, 1871, 1874, 1877, 1880, - 1883, 1889, 1895, 1897, 1902, 1904, 1913, 1916, 1918, 1921, - 1927, 1929, 1939, 1943, 1946, 1949, 1954, 1957, 1965, 1967, - 1969, 1971, 1974, 1977, 1992, 2011, 2014, 2016, 2019, 2021, - 2024, 2026, 2029, 2031, 2034, 2037, 2041, 2047, 2048, 2060, - 2067, 2070, 2076, 2080, 2085, 2091, 2092, 2100, 2103, 2107, - 2110, 2114, 2119, 2122, 2126, 2129, 2131, 2133, 2135, 2142, - 2144, 2145, 2146, 2150, 2153, 2157, 2160, 2166, 2168, 2171, - 2174, 2177, 2183, 2186, 2189, 2191, 2193, 2197, 2203, 2211, - 2213, 2217, 2219, 2224, 2227, 2230, 2232, 2234, 2238, 2242, - 2247, 2251, 2254, 2259, 2263, 2266, 2269, 2273, 2308, 2314, - 2323, 2343, 2345, 2348, 2350, 2355, 2357, 2359, 2361, 2363, - 2367, 2372, 2377, 2383, 2388, 2393, 2395, 2399, 2404, 2407, - 2414, 2442, 2448, 2450, 2453, 2456, 2458, 2462, 2464, 2468, - 2494, 2523, 2526, 2527, 2548, 2571, 2573, 2577, 2588, 2602, - 2691, 2698, 2701, 2709, 2720, 2729, 2733, 2748, 2751, 2756, - 2758, 2760, 2762, 2764, 2766, 2769, 2771, 2779, 2785, 2787, - 2790, 2793, 2795, 2806, 2811, 2814, 2819, 2822, 2823, 2834, - 2837, 2838, 2849, 2851, 2854, 2856, 2859, 2866, 2874, 2881, - 2887, 2893, 2901, 2905, 2910, 2914, 2917, 2926, 2928, 2932, - 2935, 2940, 2944, 2949, 2959, 2962, 2966, 2970, 2978, 2983, - 2989, 2992, 2994, 2996, 3002, 3005, 3007, 3009, 3011, 3015, - 3018, 3036, 3046, 3048, 3049, 3053, 3058, 3061, 3063, 3065, - 3067, 3071, 3077, 3080, 3082, 3084, 3086, 3090, 3093, 3096, - 3098, 3100, 3102, 3106, 3109, 3112, 3114, 3116, 3118, 3125, - 3136, 3140, 3145, 3149, 3154, 3156, 3160, 3163, 3165, 3169, - 3171, 3172, 3175, 3177, 3179, 3185, 3200, 3206, 3212, 3226, - 3228, 3232, 3246, 3248, 3250, 3254, 3260, 3273, 3275, 3279, - 3290, 3296, 3298, 3299, 3300, 3308, 3313, 3322, 3323, 3327, - 3330, 3336, 3342, 3345, 3347, 3349, 3351, 3355, 3359, 3363, - 3366, 3371, 3374, 3376, 3378, 3380, 3382, 3384, 3386, 3388, - 3392, 3396, 3400, 3404, 3405, 3407, 3409, 3411, 3413, 3415, - 3417, 3419, 3421, 3429, 3431, 3432, 3433, 3436, 3444, 3449, - 3456, 3458, 3463, 3465, 3468, 3482, 3485, 3488, 3497, 3509, - 3520, 3540, 3550, 3553, 3561, 3573, 3576, 3579, 3582, 3598, - 3601, 3612, 3613, 3617, 3632, 3660, 3672, 3686, 3700, 3713, - 3732, 3750, 3778, 3786, 3807, 3825, 3838, 3839, 3842, 3842, - 3845, 3845, 3848, 3848, 3854, 3860, 3863, 3868, 3875, 3884, - 3893, 3902, 3910, 3923, 3925, 3929, 3931, 3934, 3941, 3944, - 3952, 3968, 3979, 3991, 3993, 3996, 4006, 4016, 4027, 4029, - 4031, 4034, 4051, 4057, 4065, 4067, 4069, 4073, 4076, 4077, - 4085, 4089, 4093, 4096, 4097, 4103, 4106, 4109, 4111, 4115, - 4120, 4123, 4133, 4138, 4139, 4147, 4153, 4158, 4162, 4167, - 4171, 4175, 4179, 4184, 4195, 4209, 4213, 4216, 4218, 4222, - 4226, 4229, 4232, 4234, 4238, 4240, 4247, 4254, 4257, 4260, - 4264, 4268, 4274, 4278, 4283, 4285, 4288, 4293, 4299, 4310, - 4313, 4315, 4319, 4324, 4326, 4333, 4336, 4338, 4340, 4346, - 4351, 4354, 4356, 4358, 4360, 4362, 4364, 4366, 4368, 4370, - 4372, 4374, 4376, 4378, 4380, 4382, 4384, 4386, 4388, 4390, - 4392, 4394, 4396, 4398, 4400, 4402, 4404, 4406, 4408, 4410, - 4412, 4414, 4416, 4419, 4421 + 1058, 1059, 1060, 1063, 1067, 1068, 1072, 1076, 1079, 1081, + 1085, 1088, 1091, 1095, 1098, 1100, 1102, 1104, 1111, 1124, + 1126, 1128, 1130, 1136, 1139, 1142, 1145, 1148, 1152, 1155, + 1158, 1162, 1164, 1168, 1172, 1174, 1178, 1181, 1188, 1191, + 1193, 1201, 1214, 1220, 1227, 1229, 1231, 1244, 1247, 1249, + 1251, 1253, 1255, 1257, 1259, 1261, 1263, 1265, 1267, 1269, + 1271, 1273, 1275, 1277, 1279, 1281, 1283, 1285, 1287, 1291, + 1293, 1295, 1312, 1315, 1316, 1317, 1318, 1319, 1322, 1325, + 1328, 1332, 1335, 1337, 1342, 1344, 1345, 1348, 1350, 1352, + 1354, 1358, 1361, 1365, 1367, 1368, 1369, 1373, 1381, 1382, + 1383, 1391, 1399, 1407, 1409, 1421, 1451, 1458, 1465, 1467, + 1476, 1481, 1504, 1548, 1549, 1553, 1557, 1561, 1565, 1567, + 1571, 1573, 1581, 1583, 1588, 1594, 1598, 1603, 1608, 1610, + 1615, 1630, 1645, 1656, 1668, 1676, 1685, 1729, 1732, 1736, + 1739, 1743, 1746, 1751, 1753, 1757, 1770, 1773, 1780, 1787, + 1792, 1794, 1799, 1801, 1808, 1810, 1814, 1818, 1824, 1828, + 1831, 1834, 1837, 1847, 1849, 1852, 1856, 1859, 1862, 1865, + 1868, 1874, 1880, 1882, 1887, 1889, 1898, 1901, 1903, 1906, + 1912, 1914, 1924, 1928, 1931, 1934, 1939, 1942, 1950, 1952, + 1954, 1956, 1959, 1962, 1977, 1996, 1999, 2001, 2004, 2006, + 2009, 2011, 2014, 2016, 2019, 2022, 2026, 2032, 2033, 2045, + 2052, 2055, 2061, 2065, 2070, 2076, 2077, 2085, 2088, 2092, + 2095, 2099, 2104, 2107, 2111, 2114, 2116, 2118, 2120, 2127, + 2129, 2130, 2131, 2135, 2138, 2142, 2145, 2151, 2153, 2156, + 2159, 2162, 2168, 2171, 2174, 2176, 2178, 2182, 2188, 2196, + 2198, 2202, 2204, 2209, 2212, 2215, 2217, 2219, 2223, 2227, + 2232, 2236, 2239, 2244, 2248, 2251, 2254, 2258, 2293, 2299, + 2308, 2328, 2330, 2333, 2335, 2340, 2342, 2344, 2346, 2348, + 2352, 2357, 2362, 2368, 2373, 2378, 2380, 2384, 2389, 2392, + 2399, 2427, 2433, 2435, 2438, 2441, 2443, 2447, 2449, 2453, + 2479, 2508, 2511, 2512, 2533, 2556, 2558, 2562, 2573, 2587, + 2676, 2683, 2686, 2694, 2705, 2714, 2718, 2733, 2736, 2741, + 2743, 2745, 2747, 2749, 2751, 2754, 2756, 2764, 2770, 2772, + 2775, 2778, 2780, 2791, 2796, 2799, 2804, 2807, 2808, 2819, + 2822, 2823, 2834, 2836, 2839, 2841, 2844, 2851, 2859, 2866, + 2872, 2878, 2886, 2890, 2895, 2899, 2902, 2911, 2913, 2917, + 2920, 2925, 2929, 2934, 2944, 2947, 2951, 2955, 2963, 2968, + 2974, 2977, 2979, 2981, 2987, 2990, 2992, 2994, 2996, 3000, + 3003, 3021, 3031, 3033, 3034, 3038, 3043, 3046, 3048, 3050, + 3052, 3056, 3062, 3065, 3067, 3069, 3071, 3075, 3078, 3081, + 3083, 3085, 3087, 3091, 3094, 3097, 3099, 3101, 3103, 3110, + 3121, 3125, 3130, 3134, 3139, 3141, 3145, 3148, 3150, 3154, + 3156, 3157, 3160, 3162, 3164, 3170, 3185, 3191, 3197, 3211, + 3213, 3217, 3231, 3233, 3235, 3239, 3245, 3258, 3260, 3264, + 3275, 3281, 3283, 3284, 3285, 3293, 3298, 3307, 3308, 3312, + 3315, 3321, 3327, 3330, 3332, 3334, 3336, 3340, 3344, 3348, + 3351, 3356, 3359, 3361, 3363, 3365, 3367, 3369, 3371, 3373, + 3377, 3381, 3385, 3389, 3390, 3392, 3394, 3396, 3398, 3400, + 3402, 3404, 3406, 3414, 3416, 3417, 3418, 3421, 3427, 3429, + 3434, 3436, 3439, 3453, 3456, 3459, 3463, 3466, 3473, 3475, + 3478, 3480, 3482, 3485, 3488, 3491, 3494, 3496, 3499, 3503, + 3505, 3511, 3513, 3514, 3516, 3521, 3523, 3525, 3527, 3529, + 3532, 3533, 3535, 3538, 3539, 3542, 3542, 3545, 3545, 3548, + 3548, 3550, 3552, 3554, 3556, 3562, 3568, 3571, 3574, 3580, + 3582, 3584, 3588, 3590, 3593, 3600, 3603, 3611, 3615, 3617, + 3620, 3622, 3625, 3629, 3631, 3634, 3636, 3639, 3656, 3662, + 3670, 3672, 3674, 3678, 3681, 3682, 3690, 3694, 3698, 3701, + 3702, 3708, 3711, 3714, 3716, 3720, 3725, 3728, 3738, 3743, + 3744, 3752, 3758, 3763, 3767, 3772, 3776, 3780, 3784, 3789, + 3800, 3814, 3818, 3821, 3823, 3827, 3831, 3834, 3837, 3839, + 3843, 3845, 3852, 3859, 3862, 3865, 3869, 3873, 3879, 3883, + 3888, 3890, 3893, 3898, 3904, 3915, 3918, 3920, 3924, 3929, + 3931, 3938, 3941, 3943, 3945, 3951, 3956, 3959, 3961, 3963, + 3965, 3967, 3969, 3971, 3973, 3975, 3977, 3979, 3981, 3983, + 3985, 3987, 3989, 3991, 3993, 3995, 3997, 3999, 4001, 4003, + 4005, 4007, 4009, 4011, 4013, 4015, 4017, 4019, 4021, 4024, + 4026 }; #endif @@ -776,17 +774,16 @@ static const char * const yytname[] = { "$","error","$undefined.","IDENTIFIER" "functional_cast","type_name","nested_name_specifier","nested_name_specifier_1", "typename_sub","typename_sub0","typename_sub1","typename_sub2","explicit_template_type", "complex_type_name","ptr_to_mem","global_scope","new_declarator","direct_new_declarator", -"absdcl","direct_abstract_declarator","stmts","errstmt",".pushlevel",".poplevel", -"maybe_label_decls","label_decls","label_decl","compstmt_or_error","compstmt", -"@28","simple_if","@29","@30","implicitly_scoped_stmt","@31","stmt","simple_stmt", -"@32","@33","@34","@35","@36","@37","@38","@39","@40","@41","@42","@43","@44", -"@45","@46","function_try_block","@47","@48","try_block","@49","@50","handler_seq", -"handler","@51","@52","@53","type_specifier_seq","handler_args","label_colon", -"for.init.statement","maybe_cv_qualifier","xexpr","asm_operands","nonnull_asm_operands", -"asm_operand","asm_clobbers","parmlist","complex_parmlist","defarg","@54","defarg1", -"parms","parms_comma","named_parm","full_parm","parm","see_typename","bad_parm", -"exception_specification_opt","ansi_raise_identifier","ansi_raise_identifiers", -"conversion_declarator","operator","operator_name", NULL +"absdcl","direct_abstract_declarator","stmts","errstmt","maybe_label_decls", +"label_decls","label_decl","compstmt_or_error","compstmt","@28","simple_if", +"@29","@30","implicitly_scoped_stmt","@31","stmt","simple_stmt","@32","@33", +"@34","@35","@36","@37","@38","@39","@40","@41","@42","@43","@44","@45","function_try_block", +"@46","@47","try_block","@48","@49","handler_seq","handler","@50","@51","type_specifier_seq", +"handler_args","label_colon","for.init.statement","maybe_cv_qualifier","xexpr", +"asm_operands","nonnull_asm_operands","asm_operand","asm_clobbers","parmlist", +"complex_parmlist","defarg","@52","defarg1","parms","parms_comma","named_parm", +"full_parm","parm","see_typename","bad_parm","exception_specification_opt","ansi_raise_identifier", +"ansi_raise_identifiers","conversion_declarator","operator","operator_name", NULL }; #endif @@ -857,25 +854,25 @@ static const short yyr1[] = { 0, 313, 314, 315, 315, 315, 315, 315, 315, 315, 316, 316, 317, 317, 317, 317, 317, 317, 317, 317, 317, 317, 317, 318, 318, 318, 318, 318, 318, 318, 318, - 318, 318, 318, 319, 319, 319, 319, 320, 321, 322, - 323, 323, 324, 324, 325, 326, 326, 328, 327, 330, - 331, 329, 332, 333, 332, 334, 334, 335, 335, 336, - 337, 335, 335, 338, 339, 335, 340, 341, 335, 342, - 343, 344, 345, 335, 346, 347, 335, 348, 335, 349, - 335, 350, 335, 335, 335, 335, 335, 335, 335, 335, - 335, 335, 335, 335, 335, 335, 335, 352, 353, 351, - 355, 356, 354, 357, 357, 359, 360, 361, 358, 362, - 362, 363, 363, 364, 364, 364, 364, 365, 365, 365, - 366, 366, 367, 367, 367, 368, 368, 369, 369, 370, - 371, 371, 372, 372, 372, 373, 373, 373, 373, 373, - 373, 373, 373, 373, 373, 375, 374, 376, 376, 377, - 377, 377, 377, 377, 378, 378, 379, 379, 379, 379, - 379, 379, 380, 380, 381, 381, 382, 383, 383, 384, - 384, 384, 385, 386, 386, 387, 387, 387, 387, 388, - 389, 389, 389, 389, 389, 389, 389, 389, 389, 389, - 389, 389, 389, 389, 389, 389, 389, 389, 389, 389, - 389, 389, 389, 389, 389, 389, 389, 389, 389, 389, - 389, 389, 389, 389, 389 + 318, 318, 318, 319, 319, 319, 319, 320, 321, 321, + 322, 322, 323, 324, 324, 326, 325, 328, 329, 327, + 330, 331, 330, 332, 332, 333, 333, 334, 333, 333, + 335, 336, 333, 337, 338, 333, 339, 340, 341, 342, + 333, 343, 344, 333, 345, 333, 346, 333, 347, 333, + 333, 333, 333, 333, 333, 333, 333, 333, 333, 333, + 333, 333, 333, 333, 349, 350, 348, 352, 353, 351, + 354, 354, 356, 357, 355, 358, 358, 359, 359, 360, + 360, 360, 360, 361, 361, 361, 362, 362, 363, 363, + 363, 364, 364, 365, 365, 366, 367, 367, 368, 368, + 368, 369, 369, 369, 369, 369, 369, 369, 369, 369, + 369, 371, 370, 372, 372, 373, 373, 373, 373, 373, + 374, 374, 375, 375, 375, 375, 375, 375, 376, 376, + 377, 377, 378, 379, 379, 380, 380, 380, 381, 382, + 382, 383, 383, 383, 383, 384, 385, 385, 385, 385, + 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, + 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, + 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, + 385 }; static const short yyr2[] = { 0, @@ -945,32 +942,32 @@ static const short yyr2[] = { 0, 3, 1, 3, 2, 3, 2, 2, 3, 1, 3, 4, 3, 2, 2, 1, 3, 2, 2, 1, 2, 3, 1, 3, 1, 6, 4, 4, 3, 5, 3, - 3, 3, 2, 1, 1, 2, 2, 2, 0, 0, - 0, 1, 1, 2, 3, 1, 2, 0, 5, 0, - 0, 6, 1, 0, 4, 1, 1, 1, 2, 0, - 0, 6, 1, 0, 0, 7, 0, 0, 7, 0, - 0, 0, 0, 14, 0, 0, 9, 0, 5, 0, - 7, 0, 4, 2, 2, 2, 3, 6, 8, 10, - 12, 4, 3, 2, 2, 1, 1, 0, 0, 6, - 0, 0, 5, 1, 2, 0, 0, 0, 8, 1, - 1, 3, 3, 2, 2, 2, 2, 2, 1, 2, - 0, 1, 0, 1, 1, 0, 1, 1, 3, 4, - 1, 3, 0, 1, 1, 1, 2, 2, 2, 1, - 1, 2, 2, 2, 2, 0, 3, 1, 1, 1, - 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, - 1, 2, 1, 2, 1, 1, 0, 0, 1, 0, - 4, 2, 1, 1, 3, 0, 3, 3, 3, 1, + 3, 3, 2, 1, 1, 2, 2, 2, 0, 1, + 1, 2, 3, 1, 2, 0, 3, 0, 0, 5, + 1, 0, 2, 1, 1, 1, 2, 0, 4, 1, + 0, 0, 5, 0, 0, 7, 0, 0, 0, 0, + 12, 0, 0, 7, 0, 5, 0, 7, 0, 4, + 2, 2, 2, 3, 6, 8, 10, 12, 4, 3, + 2, 2, 1, 1, 0, 0, 6, 0, 0, 5, + 1, 2, 0, 0, 5, 1, 1, 3, 3, 2, + 2, 2, 2, 2, 1, 2, 0, 1, 0, 1, + 1, 0, 1, 1, 3, 4, 1, 3, 0, 1, + 1, 1, 2, 2, 2, 1, 1, 2, 2, 2, + 2, 0, 3, 1, 1, 1, 2, 2, 2, 4, + 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, + 1, 1, 0, 0, 1, 0, 4, 2, 1, 1, + 3, 0, 3, 3, 3, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 3, 2, 2, 2, 2, 3, 2, - 2, 4, 4, 3, 2 + 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, + 2, 2, 2, 2, 3, 2, 2, 4, 4, 3, + 2 }; static const short yydefact[] = { 3, 13, 13, 5, 0, 4, 0, 256, 600, 601, 0, 358, 370, 547, 0, 11, 12, 0, 0, 0, 10, - 456, 810, 0, 0, 0, 149, 632, 257, 258, 65, - 0, 0, 797, 0, 37, 0, 0, 14, 0, 8, + 456, 806, 0, 0, 0, 149, 632, 257, 258, 65, + 0, 0, 793, 0, 37, 0, 0, 14, 0, 8, 0, 17, 16, 71, 92, 68, 0, 602, 153, 275, 254, 276, 578, 0, 345, 0, 344, 363, 0, 383, 362, 400, 369, 0, 469, 468, 475, 474, 473, 451, @@ -989,12 +986,12 @@ static const short yydefact[] = { 3, 60, 91, 346, 0, 381, 361, 89, 352, 376, 377, 347, 365, 367, 356, 378, 0, 57, 401, 457, 458, 459, 460, 472, 131, 130, 132, 461, 462, 466, 0, - 0, 475, 797, 471, 490, 491, 548, 364, 0, 395, + 0, 475, 793, 471, 490, 491, 548, 364, 0, 395, 601, 0, 630, 153, 593, 594, 590, 566, 604, 0, - 565, 562, 0, 845, 841, 840, 838, 820, 825, 826, - 0, 832, 831, 817, 818, 816, 835, 824, 821, 822, - 823, 827, 828, 814, 815, 811, 812, 813, 837, 829, - 830, 819, 836, 0, 833, 740, 363, 741, 806, 259, + 565, 562, 0, 841, 837, 836, 834, 816, 821, 822, + 0, 828, 827, 813, 814, 812, 831, 820, 817, 818, + 819, 823, 824, 810, 811, 807, 808, 809, 833, 825, + 826, 815, 832, 0, 829, 736, 363, 737, 802, 259, 256, 547, 279, 324, 0, 0, 0, 0, 320, 318, 292, 322, 323, 0, 0, 0, 0, 0, 258, 251, 0, 0, 164, 163, 0, 165, 166, 0, 0, 167, @@ -1008,15 +1005,15 @@ static const short yydefact[] = { 3, 591, 32, 31, 41, 0, 358, 139, 0, 0, 363, 137, 0, 0, 574, 0, 573, 253, 270, 0, 582, 269, 0, 581, 0, 277, 586, 0, 0, 13, 0, - 149, 9, 9, 0, 397, 399, 104, 75, 109, 728, + 149, 9, 9, 0, 397, 399, 104, 75, 109, 725, 0, 67, 66, 74, 107, 0, 0, 105, 70, 588, - 0, 0, 553, 0, 800, 0, 558, 0, 557, 0, + 0, 0, 553, 0, 796, 0, 558, 0, 557, 0, 0, 0, 0, 545, 398, 0, 59, 549, 545, 571, 0, 349, 350, 0, 58, 398, 354, 353, 355, 348, 368, 385, 384, 463, 467, 465, 0, 470, 476, 0, 0, 366, 398, 545, 76, 0, 0, 0, 0, 545, - 82, 546, 577, 601, 631, 153, 0, 0, 834, 839, - 365, 545, 545, 0, 545, 844, 157, 0, 0, 0, + 82, 546, 577, 601, 631, 153, 0, 0, 830, 835, + 365, 545, 545, 0, 545, 840, 157, 0, 0, 0, 200, 0, 0, 202, 215, 216, 0, 0, 0, 0, 0, 252, 199, 196, 195, 197, 0, 0, 0, 0, 0, 278, 0, 0, 0, 194, 155, 156, 272, 0, @@ -1024,1241 +1021,1246 @@ static const short yydefact[] = { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 288, 290, 291, 328, 327, 0, 0, 0, 0, 0, 204, 543, 0, 212, - 325, 317, 0, 0, 797, 306, 309, 310, 0, 0, + 325, 317, 0, 0, 793, 306, 309, 310, 0, 0, 337, 649, 645, 654, 0, 549, 545, 545, 545, 339, 652, 0, 599, 341, 0, 0, 340, 305, 0, 301, 319, 321, 596, 0, 302, 152, 154, 0, 147, 0, 363, 145, 540, 454, 538, 441, 0, 0, 372, 0, 0, 373, 374, 375, 411, 412, 413, 410, 0, 403, 406, 0, 3, 0, 615, 157, 618, 28, 36, 35, - 45, 0, 0, 0, 49, 53, 42, 796, 791, 0, - 342, 363, 45, 343, 795, 51, 150, 135, 133, 150, + 45, 0, 0, 0, 49, 53, 42, 792, 787, 0, + 342, 363, 45, 343, 791, 51, 150, 135, 133, 150, 151, 273, 580, 579, 277, 583, 0, 19, 21, 71, - 0, 110, 326, 0, 678, 73, 676, 422, 0, 418, - 417, 192, 0, 191, 550, 587, 0, 770, 771, 0, - 765, 363, 0, 764, 766, 798, 780, 0, 0, 585, + 0, 110, 326, 0, 676, 73, 674, 422, 0, 418, + 417, 192, 0, 191, 550, 587, 0, 766, 767, 0, + 761, 363, 0, 760, 762, 794, 776, 0, 0, 585, 556, 555, 0, 0, 570, 0, 393, 392, 380, 569, - 0, 800, 559, 351, 382, 394, 398, 464, 600, 601, - 797, 0, 797, 602, 477, 478, 480, 797, 483, 482, + 0, 796, 559, 351, 382, 394, 398, 464, 600, 601, + 793, 0, 793, 602, 477, 478, 480, 793, 483, 482, 0, 513, 601, 0, 504, 0, 0, 516, 0, 103, 98, 0, 153, 517, 520, 0, 496, 0, 101, 0, - 398, 396, 800, 763, 157, 157, 605, 157, 800, 763, - 545, 79, 545, 85, 843, 842, 806, 806, 806, 0, + 398, 396, 796, 759, 157, 157, 605, 157, 796, 759, + 545, 79, 545, 85, 839, 838, 802, 802, 802, 0, 0, 0, 0, 599, 0, 0, 0, 0, 363, 0, 0, 0, 284, 0, 282, 283, 0, 223, 160, 256, 600, 601, 257, 258, 0, 0, 423, 452, 0, 250, - 249, 755, 754, 0, 247, 246, 244, 245, 243, 242, + 249, 751, 750, 0, 247, 246, 244, 245, 243, 242, 241, 238, 239, 240, 236, 237, 231, 232, 233, 234, 235, 229, 230, 0, 0, 0, 0, 0, 0, 206, 220, 0, 0, 205, 545, 545, 0, 545, 542, 639, 0, 0, 0, 0, 0, 308, 0, 312, 0, 314, - 0, 648, 647, 644, 643, 796, 0, 0, 663, 0, - 0, 800, 338, 800, 650, 545, 763, 549, 649, 645, + 0, 648, 647, 644, 643, 792, 0, 0, 663, 0, + 0, 796, 338, 796, 650, 545, 759, 549, 649, 645, 0, 0, 545, 0, 0, 0, 0, 0, 260, 150, 143, 141, 150, 0, 455, 0, 454, 190, 189, 188, 187, 405, 0, 0, 25, 0, 26, 619, 0, 47, - 44, 45, 0, 40, 0, 0, 649, 645, 0, 787, - 545, 790, 792, 0, 788, 789, 46, 461, 0, 140, + 44, 45, 0, 40, 0, 0, 649, 645, 0, 783, + 545, 786, 788, 0, 784, 785, 46, 461, 0, 140, 150, 150, 138, 18, 20, 386, 127, 115, 128, 129, - 0, 108, 111, 0, 0, 0, 0, 677, 669, 419, - 0, 106, 554, 551, 769, 786, 775, 773, 0, 552, - 768, 785, 774, 772, 767, 799, 782, 793, 783, 776, - 781, 802, 0, 390, 568, 567, 389, 487, 0, 486, - 797, 797, 797, 0, 545, 763, 512, 505, 517, 506, - 398, 398, 502, 503, 500, 501, 545, 763, 256, 600, + 0, 108, 111, 0, 0, 0, 0, 675, 669, 419, + 0, 106, 554, 551, 765, 782, 771, 769, 0, 552, + 764, 781, 770, 768, 763, 795, 778, 789, 779, 772, + 777, 798, 0, 390, 568, 567, 389, 487, 0, 486, + 793, 793, 793, 0, 545, 759, 512, 505, 517, 506, + 398, 398, 502, 503, 500, 501, 545, 759, 256, 600, 0, 385, 99, 508, 518, 523, 524, 385, 385, 0, 0, 385, 97, 509, 521, 385, 497, 498, 499, 398, - 0, 448, 78, 0, 0, 0, 0, 84, 0, 800, - 763, 800, 763, 808, 807, 809, 261, 293, 201, 203, + 0, 448, 78, 0, 0, 0, 0, 84, 0, 796, + 759, 796, 759, 804, 803, 805, 261, 293, 201, 203, 299, 300, 0, 0, 0, 0, 283, 286, 0, 0, 0, 0, 224, 0, 287, 289, 218, 217, 208, 0, 207, 222, 0, 0, 636, 634, 0, 637, 549, 213, 0, 0, 157, 315, 0, 0, 0, 646, 642, 653, - 545, 662, 660, 661, 651, 800, 0, 658, 0, 597, + 545, 662, 660, 661, 651, 796, 0, 658, 0, 597, 598, 0, 304, 148, 150, 150, 146, 541, 539, 443, 0, 404, 402, 256, 0, 23, 626, 48, 43, 50, 54, 648, 644, 649, 645, 0, 561, 0, 545, 650, 52, 136, 134, 0, 113, 0, 117, 0, 119, 0, - 121, 0, 729, 671, 0, 420, 649, 645, 0, 278, - 0, 595, 794, 0, 0, 803, 804, 0, 0, 387, - 0, 0, 0, 489, 488, 481, 800, 0, 507, 416, - 416, 800, 0, 0, 0, 398, 398, 0, 398, 398, - 0, 398, 0, 416, 0, 436, 545, 263, 262, 264, - 545, 81, 0, 87, 0, 0, 0, 0, 0, 0, - 426, 0, 424, 227, 248, 0, 209, 210, 219, 221, - 635, 633, 640, 638, 0, 214, 0, 0, 307, 311, - 313, 800, 656, 545, 657, 144, 142, 440, 0, 407, - 409, 648, 644, 566, 650, 114, 112, 0, 0, 0, - 0, 0, 180, 670, 0, 672, 673, 421, 0, 598, - 784, 778, 779, 777, 0, 801, 391, 0, 484, 485, - 479, 94, 545, 511, 515, 96, 545, 398, 398, 532, - 416, 256, 600, 0, 519, 525, 526, 385, 385, 416, - 416, 0, 416, 522, 510, 0, 800, 800, 545, 545, - 0, 0, 0, 0, 425, 0, 0, 211, 641, 316, - 262, 659, 800, 0, 116, 118, 120, 736, 730, 734, - 414, 0, 679, 0, 256, 600, 601, 680, 694, 697, - 700, 669, 0, 0, 0, 0, 0, 0, 257, 726, - 731, 0, 751, 0, 688, 0, 0, 363, 0, 665, - 686, 693, 664, 687, 727, 0, 674, 283, 805, 388, - 800, 800, 531, 528, 530, 0, 0, 398, 398, 398, - 527, 529, 514, 438, 0, 437, 432, 77, 83, 800, - 800, 295, 296, 297, 298, 427, 544, 655, 408, 669, - 735, 0, 675, 668, 183, 744, 746, 747, 669, 669, - 669, 0, 0, 0, 712, 714, 715, 716, 0, 0, - 0, 745, 0, 334, 752, 0, 689, 332, 385, 0, - 333, 0, 385, 0, 0, 0, 181, 667, 666, 690, - 725, 724, 93, 95, 398, 398, 537, 416, 416, 0, - 0, 450, 80, 86, 0, 415, 0, 0, 684, 683, - 0, 0, 0, 0, 708, 0, 717, 0, 723, 732, - 0, 330, 331, 0, 0, 0, 329, 182, 669, 536, - 534, 533, 535, 435, 434, 428, 68, 71, 0, 737, - 172, 0, 681, 695, 0, 698, 671, 749, 701, 0, - 179, 0, 363, 0, 0, 0, 713, 722, 0, 0, - 691, 0, 433, 0, 0, 0, 0, 669, 0, 670, - 0, 750, 669, 748, 705, 385, 710, 709, 733, 756, - 0, 670, 431, 0, 430, 742, 743, 738, 173, 682, - 184, 670, 186, 685, 170, 0, 0, 0, 669, 398, - 0, 0, 0, 757, 758, 718, 692, 429, 670, 671, - 696, 0, 699, 176, 0, 175, 706, 0, 711, 0, - 756, 0, 0, 739, 185, 171, 702, 670, 177, 0, - 0, 719, 759, 0, 707, 0, 760, 0, 0, 0, - 178, 761, 0, 720, 703, 0, 0, 0, 762, 721, - 670, 704, 0, 0, 0 + 121, 0, 726, 0, 180, 677, 0, 670, 671, 0, + 420, 649, 645, 0, 278, 0, 595, 790, 0, 0, + 799, 800, 0, 0, 387, 0, 0, 0, 489, 488, + 481, 796, 0, 507, 416, 416, 796, 0, 0, 0, + 398, 398, 0, 398, 398, 0, 398, 0, 416, 0, + 436, 545, 263, 262, 264, 545, 81, 0, 87, 0, + 0, 0, 0, 0, 0, 426, 0, 424, 227, 248, + 0, 209, 210, 219, 221, 635, 633, 640, 638, 0, + 214, 0, 0, 307, 311, 313, 796, 656, 545, 657, + 144, 142, 440, 0, 407, 409, 648, 644, 566, 650, + 114, 112, 0, 0, 0, 0, 414, 0, 0, 256, + 600, 601, 678, 691, 694, 697, 702, 0, 0, 0, + 0, 0, 0, 257, 723, 728, 0, 747, 0, 686, + 0, 0, 363, 0, 665, 684, 690, 664, 685, 724, + 0, 672, 421, 0, 598, 780, 774, 775, 773, 0, + 797, 391, 0, 484, 485, 479, 94, 545, 511, 515, + 96, 545, 398, 398, 532, 416, 256, 600, 0, 519, + 525, 526, 385, 385, 416, 416, 0, 416, 522, 510, + 0, 796, 796, 545, 545, 0, 0, 0, 0, 425, + 0, 0, 211, 641, 316, 262, 659, 796, 0, 116, + 118, 120, 733, 727, 731, 0, 673, 668, 183, 740, + 742, 743, 0, 0, 682, 0, 0, 0, 709, 711, + 712, 713, 0, 0, 0, 741, 0, 334, 748, 0, + 687, 332, 385, 0, 333, 0, 385, 0, 0, 0, + 181, 667, 666, 688, 722, 721, 283, 801, 388, 796, + 796, 531, 528, 530, 0, 0, 398, 398, 398, 527, + 529, 514, 438, 0, 437, 432, 77, 83, 796, 796, + 295, 296, 297, 298, 427, 544, 655, 408, 0, 732, + 415, 172, 0, 679, 692, 681, 0, 0, 0, 0, + 0, 705, 0, 714, 0, 720, 729, 0, 330, 331, + 0, 0, 0, 329, 182, 682, 93, 95, 398, 398, + 537, 416, 416, 0, 0, 450, 80, 86, 0, 734, + 179, 0, 363, 0, 682, 0, 695, 683, 669, 745, + 698, 0, 0, 0, 0, 710, 719, 0, 0, 689, + 536, 534, 533, 535, 435, 434, 428, 68, 71, 0, + 0, 0, 173, 385, 680, 184, 693, 186, 0, 746, + 0, 744, 703, 707, 706, 730, 752, 0, 0, 433, + 738, 739, 735, 398, 669, 170, 0, 0, 176, 0, + 175, 682, 0, 0, 0, 753, 754, 715, 431, 0, + 430, 0, 185, 0, 696, 699, 704, 708, 0, 752, + 0, 0, 429, 177, 171, 0, 0, 0, 716, 755, + 0, 0, 756, 0, 0, 178, 700, 757, 0, 717, + 0, 0, 0, 701, 758, 718, 0, 0, 0 }; -static const short yydefgoto[] = { 1563, +static const short yydefgoto[] = { 1547, 409, 2, 410, 160, 669, 311, 165, 3, 4, 38, 633, 353, 738, 375, 40, 739, 385, 644, 900, 645, 646, 647, 42, 43, 421, 168, 164, 44, 740, 754, 1021, 760, 1023, 46, 741, 742, 169, 170, 422, 672, 932, 933, 613, 934, 218, 47, 922, 921, 660, 657, 1086, 1085, 883, 880, 135, 920, 48, 49, 529, 312, - 313, 314, 315, 1314, 1507, 1453, 1525, 1462, 1546, 1224, - 1502, 1520, 347, 872, 316, 566, 834, 317, 318, 348, + 313, 314, 315, 1249, 1498, 1404, 1500, 1442, 1531, 1126, + 1477, 1495, 347, 872, 316, 566, 834, 317, 318, 348, 320, 338, 51, 236, 377, 398, 52, 53, 321, 524, - 322, 323, 324, 325, 423, 326, 1315, 462, 588, 327, - 1316, 55, 201, 650, 328, 202, 502, 203, 181, 194, - 59, 445, 463, 1238, 707, 1139, 182, 195, 60, 473, - 708, 61, 62, 629, 630, 631, 1292, 428, 797, 798, - 1447, 1448, 1412, 1346, 1266, 63, 617, 341, 1166, 1347, + 322, 323, 324, 325, 423, 326, 1250, 462, 588, 327, + 1251, 55, 201, 650, 328, 202, 502, 203, 181, 194, + 59, 445, 463, 1273, 707, 1144, 182, 195, 60, 473, + 708, 61, 62, 629, 630, 631, 1228, 428, 797, 798, + 1468, 1469, 1436, 1385, 1301, 63, 617, 341, 1171, 1386, 1042, 886, 64, 65, 66, 67, 222, 68, 69, 70, 224, 725, 726, 727, 728, 226, 470, 471, 746, 747, - 748, 994, 1004, 995, 1255, 996, 997, 1256, 1257, 614, + 748, 994, 1004, 995, 1290, 996, 997, 1291, 1292, 614, 615, 567, 862, 330, 431, 432, 175, 183, 72, 73, 74, 184, 185, 152, 76, 131, 331, 332, 333, 78, 334, 80, 730, 122, 123, 124, 478, 104, 81, 335, - 839, 840, 857, 591, 1319, 1320, 1419, 1293, 1225, 1226, - 1227, 676, 1321, 939, 1322, 1369, 1478, 1421, 1455, 1323, - 1324, 1439, 1492, 1370, 1479, 1371, 1481, 1372, 1483, 1544, - 1558, 1509, 1538, 1466, 1511, 1426, 424, 673, 1221, 1325, - 1383, 1469, 1289, 1290, 1360, 1476, 1519, 1464, 1450, 1326, - 1459, 1386, 804, 1513, 1514, 1515, 1553, 693, 694, 961, - 1135, 1234, 695, 696, 697, 957, 698, 145, 959, 700, - 1137, 1138, 496, 83, 84 + 839, 840, 857, 591, 1254, 1255, 1127, 1128, 1129, 676, + 1256, 939, 1257, 1333, 1445, 1407, 1408, 1258, 1259, 1426, + 1334, 1446, 1335, 1479, 1336, 1481, 1526, 1541, 1337, 1502, + 1455, 1503, 1413, 424, 673, 1226, 1260, 1347, 1458, 1324, + 1325, 1399, 1472, 1444, 1440, 1261, 1451, 1350, 804, 1505, + 1506, 1507, 1539, 693, 694, 961, 1140, 1269, 695, 696, + 697, 957, 698, 145, 959, 700, 1142, 1143, 496, 83, + 84 }; -static const short yypact[] = { 109, - 204,-32768,-32768, 4917,-32768, 8, 136, 270, 313, 171, - 90,-32768,-32768, 946,-32768,-32768, 178, 244, 307,-32768, --32768,-32768, 1197, 1670, 886, 186,-32768, 287, 340,-32768, - 2156, 2156,-32768, 4499,-32768, 4917, 361,-32768, 401, 273, - 5377,-32768,-32768, 372, 1033, 473, 474, 430,-32768,-32768, --32768,-32768, 383, 2257,-32768, 5640,-32768, 2061, 756,-32768, - 506,-32768,-32768, 1650,-32768,-32768, 493,-32768,-32768, 511, - 10422,-32768,-32768,-32768, 2002,-32768,-32768,-32768, 1085,-32768, --32768, 528, 6174, 514,-32768,-32768, 9049,-32768, 9049,-32768, - 9049,-32768,-32768,-32768, 270, 313, 287, 539, 486, 559, - 430,-32768, 564,-32768, 528, 9049, 9049, 526,-32768,-32768, --32768,-32768,-32768, 569, 572, 362, 381, 520, 587, 589, --32768,-32768, 1434,-32768, 1263, 270, 313, 1284, 287, 539, --32768, 386, 509, 573, 10185, 9049,-32768, 9049, 2580,-32768, - 1951, 804, 2580,-32768, 1825, 2806, 2806, 4499, 542, 555, - 574, 585, 596,-32768,-32768, 673,-32768, 607,-32768, 4996, - 8,-32768,-32768,-32768, 628, 506, 724, 98, 452, 668, --32768,-32768, 621, 64,-32768,-32768, 2952, 2952, 4817, 2002, - 811,-32768,-32768, 454,-32768,-32768, 2007,-32768,-32768,-32768, --32768,-32768, 2061, 837,-32768, 506, 2002,-32768,-32768,-32768, - 2271, 2061,-32768, 506,-32768, 5425,-32768,-32768,-32768,-32768, --32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 430, 1715, - 1841, 493,-32768,-32768,-32768,-32768,-32768, 701, 528,-32768, - 583, 1193,-32768, 124,-32768,-32768,-32768,-32768,-32768, 3051, --32768,-32768, 295,-32768, 648, 670,-32768,-32768,-32768,-32768, - 708,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, +static const short yypact[] = { 125, + 130,-32768,-32768, 3240,-32768, 195, 72, 188, 284, 151, + 102,-32768,-32768, 1117,-32768,-32768, 136, 176, 198,-32768, +-32768,-32768, 1085, 1187, 1489, 256,-32768, 304, 367,-32768, + 2407, 2407,-32768, 4859,-32768, 3240, 294,-32768, 352, 91, + 5970,-32768,-32768, 208, 1265, 379, 356, 372,-32768,-32768, +-32768,-32768, 330, 2553,-32768, 10199,-32768, 1350, 498,-32768, + 423,-32768,-32768, 1046,-32768,-32768, 399,-32768,-32768, 417, + 4154,-32768,-32768,-32768, 784,-32768,-32768,-32768, 849,-32768, +-32768, 508, 5609, 408,-32768,-32768, 9052,-32768, 9052,-32768, + 9052,-32768,-32768,-32768, 188, 284, 304, 445, 453, 492, + 372,-32768, 1409,-32768, 508, 9052, 9052, 480,-32768,-32768, +-32768,-32768,-32768, 64, 528, 368, 383, 478, 538, 553, +-32768,-32768, 564,-32768, 572, 188, 284, 1112, 304, 445, +-32768, 855, 467, 509, 10350, 9052,-32768, 9052, 2926,-32768, + 1285, 543, 2926,-32768, 1090, 3033, 3033, 4859, 524, 547, + 517, 552, 555,-32768,-32768, 627,-32768, 556,-32768, 10084, + 195,-32768,-32768,-32768, 582, 423, 691, 145, 179, 624, +-32768,-32768, 592, 250,-32768,-32768, 3416, 3416, 4989, 784, + 591,-32768,-32768, 387,-32768,-32768, 2806,-32768,-32768,-32768, +-32768,-32768, 1350, 641,-32768, 423, 784,-32768,-32768,-32768, + 1578, 1350,-32768, 423,-32768, 5186,-32768,-32768,-32768,-32768, +-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 372, 988, + 1434, 399,-32768,-32768,-32768,-32768,-32768, 682, 508,-32768, + 497, 963,-32768, 271,-32768,-32768,-32768,-32768,-32768, 3988, +-32768,-32768, 590,-32768, 617, 620,-32768,-32768,-32768,-32768, + 658,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, --32768,-32768,-32768, 660,-32768,-32768, 701, 10422, 1378,-32768, --32768, 688,-32768,-32768, 9664, 9751, 9838, 9838,-32768,-32768, --32768,-32768,-32768, 705, 753, 760, 765, 767, 539, 9136, - 1825, 9838,-32768,-32768, 9838,-32768,-32768, 9838, 7162,-32768, - 9838, 283, 771,-32768, 9838,-32768, 9223,-32768, 10565,-32768, - 1130, 3264, 9310,-32768, 835, 1022,-32768, 3394, 2475, 4721, --32768, 222,-32768, 1366, 1927, 283, 283, 9049, 10185,-32768, - 1825, 757, 1825,-32768,-32768, 754, 813, 10498, 774, 783, - 785, 2546, 607,-32768, 1284,-32768,-32768,-32768,-32768,-32768, --32768, 572, 362, 381, 1825, 520, 587, 802, 589,-32768, - 853,-32768, 270, 313, 861,-32768,-32768,-32768, 509,-32768, --32768,-32768,-32768,-32768, 5555,-32768,-32768, 5425, 10377, 2261, --32768, 283, 351,-32768, 636,-32768,-32768,-32768, 2580,-32768, --32768, 2580,-32768, 814,-32768,-32768, 3051, 57, 819, 841, --32768,-32768,-32768, 673,-32768, 506,-32768,-32768,-32768,-32768, - 110,-32768,-32768,-32768,-32768, 7254, 9136,-32768,-32768,-32768, - 9136, 816,-32768, 6490, 81, 4046,-32768, 4046,-32768, 4273, - 4273, 4817, 832,-32768, 506, 5425,-32768, 840,-32768,-32768, - 4492, 2271, 2061, 5425,-32768, 506,-32768,-32768, 506, 2271, --32768, 831,-32768,-32768, 430,-32768, 1715,-32768, 2813, 1848, - 40, 701, 506,-32768,-32768, 880, 887, 913, 900,-32768, --32768,-32768,-32768, 891,-32768, 225, 866, 868,-32768,-32768, - 701,-32768,-32768, 899,-32768,-32768, 9049, 9136, 688, 7162, --32768, 255, 7162,-32768,-32768,-32768, 9049, 10435, 10435, 10435, - 10435, 10543,-32768,-32768,-32768,-32768, 876, 9925, 9925, 7162, - 883, 542, 885, 924, 889,-32768,-32768,-32768,-32768, 9049, --32768, 6787, 7162,-32768, 9136, 9136, 7346, 9136, 9136, 9136, - 9136, 9136, 9136, 9136, 9136, 9136, 9136, 9136, 9136, 9136, - 9136, 9136, 9136, 9136, 9136, 9136,-32768,-32768,-32768,-32768, --32768, 9136, 9136, 9136, 9049, 5432, 517, 479, 7985,-32768, --32768,-32768, 945, 1193, 994, 299, 324, 377, 2676, 804, --32768, 535, 535,-32768, 2137, 895, 915, 964,-32768,-32768, - 460, 8492, 818,-32768, 993, 528,-32768,-32768, 9136,-32768, --32768,-32768,-32768, 365,-32768,-32768,-32768, 283,-32768, 5425, - 2340,-32768, 948, 954,-32768,-32768, 1825, 802,-32768, 7714, - 7806,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 165,-32768, - 921, 907, 607, 959, 966, 9049,-32768,-32768,-32768,-32768, - 1695, 186, 985, 393, 968, 969,-32768,-32768, 1732, 10230, - 1732, 1944, 1650, 2700,-32768, 975,-32768,-32768,-32768,-32768, --32768,-32768,-32768,-32768, 914,-32768, 970,-32768,-32768, 372, - 63, 366, 982, 924,-32768,-32768,-32768,-32768, 6692, 10543, --32768, 813, 942, 10498,-32768,-32768, 944,-32768,-32768, 947, - 150, 3044, 952,-32768, 231, 5742, 990, 1002, 398,-32768, --32768,-32768, 4046, 4046,-32768, 4492,-32768, 1007,-32768,-32768, - 965, 81,-32768, 2271,-32768,-32768, 506,-32768, 362, 381, --32768, 988,-32768, 589, 1024,-32768,-32768, 329,-32768,-32768, - 1870,-32768, 916, 798,-32768, 9136, 3324,-32768, 3324, 237, - 237, 349, 417, 2870, 10081, 3662,-32768, 173, 237, 1023, - 506,-32768, 81, 1270, 9049, 9049,-32768, 9049, 81, 1270, --32768,-32768,-32768,-32768,-32768,-32768, 1155, 1155, 1155, 283, - 986, 999, 9403, 964, 1003, 1005, 1016, 1009, 10249, 1019, - 1028, 1054,-32768, 1030,-32768,-32768, 1034,-32768,-32768, 1029, - 588, 605, 67, 424, 9136, 1049,-32768, 1089, 1041, 10543, - 10543,-32768,-32768, 1090, 3900, 5768, 8010, 10580, 6337, 4076, - 4577, 2749, 2749, 2749, 2029, 2029, 1036, 1036, 826, 826, - 826,-32768,-32768, 1044, 1050, 1046, 1052, 1057, 10435, 517, --32768, 7254, 9136,-32768,-32768,-32768, 9136,-32768,-32768, 1073, - 9838, 1056, 1083, 1101, 1129,-32768, 9136,-32768, 9136,-32768, - 9136, 1777,-32768, 1777,-32768, 143, 1069, 1070,-32768, 1071, - 10435, 81,-32768, 81, 5209,-32768, 1270, 1074, 8684, 8684, - 5976, 1078, 9223, 1080, 2074, 1927, 1124, 1082,-32768,-32768, --32768,-32768,-32768, 9136, 1825, 1098, 954,-32768, 10543,-32768, - 10543, 2546, 1084, 9490,-32768, 1100,-32768,-32768, 283,-32768, --32768, 2457, 5555,-32768, 10435, 9049, 3567, 3567, 3831,-32768, --32768,-32768,-32768, 2007,-32768,-32768,-32768, 758, 9136,-32768, --32768,-32768,-32768,-32768,-32768,-32768, 572,-32768, 520, 587, - 9136, 1159,-32768, 447, 449, 482, 924,-32768,-32768,-32768, - 117,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 8588,-32768, --32768,-32768,-32768,-32768,-32768,-32768,-32768, 1002, 1150,-32768, --32768,-32768, 10435,-32768,-32768,-32768, 1167,-32768, 9049,-32768, --32768,-32768,-32768, 1631,-32768, 1270, 10543,-32768, 1552,-32768, - 506, 506,-32768,-32768,-32768,-32768,-32768, 1270, 599, 669, - 9136, 831,-32768, 1160,-32768,-32768,-32768, 258, 423, 1085, - 804, 773, 237, 1174,-32768, 823,-32768,-32768,-32768, 506, - 4400,-32768,-32768, 1132, 283, 283, 283,-32768, 1134, 81, - 1270, 81, 1270,-32768,-32768,-32768,-32768,-32768,-32768,-32768, --32768,-32768, 1145, 1146, 1151, 1153, 914,-32768, 10430, 7254, - 6882, 1137,-32768, 9136,-32768,-32768,-32768,-32768, 285, 1147, --32768,-32768, 1149, 89, 650, 650, 1148, 650,-32768,-32768, - 9838, 1252, 9049,-32768, 1152, 1173, 1182,-32768,-32768,-32768, --32768,-32768,-32768,-32768,-32768, 81, 1187,-32768, 1157,-32768, --32768, 2718,-32768,-32768,-32768,-32768,-32768, 10543,-32768,-32768, - 1189,-32768,-32768, 196, 1188,-32768,-32768,-32768,-32768,-32768, --32768, 4037, 4037, 4192, 4192, 3831,-32768, 2007,-32768, 5450, - 10565,-32768,-32768, 1194,-32768, 366,-32768, 9136,-32768, 9136, --32768, 9136,-32768, 76, 6974,-32768, 8777, 8777, 6394, 144, - 1195, 157,-32768, 7254, 7066,-32768,-32768, 217, 7254,-32768, - 1196, 1199, 2813,-32768,-32768,-32768, 81, 1201,-32768, 1198, - 1198, 81, 1204, 9136, 9136, 5261, 506, 3167, 506, 506, - 1347, 506, 3827, 1198, 5118,-32768,-32768,-32768, 1268,-32768, --32768,-32768, 1214,-32768, 1219, 9136, 9136, 9136, 9136, 7254, --32768, 1269,-32768,-32768, 10543, 9136,-32768, 285,-32768,-32768, --32768,-32768,-32768,-32768, 1218,-32768, 1286, 283,-32768,-32768, --32768, 81,-32768,-32768,-32768,-32768,-32768,-32768, 9136,-32768, --32768, 4037, 4037,-32768, 5450,-32768,-32768, 1225, 1228, 1236, - 1251, 1825,-32768,-32768, 6284, 1315,-32768,-32768, 1243, 1143, --32768,-32768,-32768,-32768, 10435,-32768,-32768, 7254,-32768,-32768, --32768,-32768,-32768,-32768,-32768,-32768,-32768, 5261, 5261,-32768, - 1198, 603, 711, 9136,-32768,-32768,-32768, 831, 831, 1198, - 1198, 891, 1198,-32768,-32768, 5855, 81, 81,-32768,-32768, - 1244, 1247, 1249, 1250,-32768, 7254, 1248,-32768,-32768,-32768, --32768,-32768, 81, 1256,-32768,-32768,-32768,-32768, 1251,-32768, --32768, 854,-32768, 220, 1299, 713, 714,-32768,-32768,-32768, --32768,-32768, 9136, 1304, 1313, 1314, 8870, 632, 608,-32768, --32768, 8962, 1369, 1318,-32768, 4638, 10126, 3733, 6106,-32768, --32768, 1364,-32768,-32768,-32768, 8096,-32768, 202,-32768,-32768, - 81, 81,-32768,-32768,-32768, 9136, 9136, 5261, 506, 506, --32768,-32768,-32768,-32768, 7898,-32768,-32768,-32768,-32768, 81, - 81,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, --32768, 1825,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, - 924, 1287, 1292, 10282,-32768,-32768,-32768,-32768, 1326, 9136, - 1329,-32768, 924,-32768,-32768, 1297,-32768,-32768, 831, 857, --32768, 873, 831, 9577, 877, 247,-32768,-32768,-32768,-32768, --32768,-32768,-32768,-32768, 5261, 5261,-32768, 1198, 1198, 1288, - 10452, 1301,-32768,-32768, 1307,-32768, 523, 523,-32768,-32768, - 1381, 6600, 9049, 9136,-32768, 8206,-32768, 1342,-32768,-32768, - 673,-32768,-32768, 10012, 10012, 7438,-32768,-32768, 924,-32768, --32768,-32768,-32768,-32768,-32768,-32768, 473, 372, 10364,-32768, --32768, 9049,-32768,-32768, 8398,-32768, 76,-32768,-32768, 1346, --32768, 1302, 806, 5425, 10521, 8206,-32768,-32768, 1251, 61, --32768, 199,-32768, 1306, 1310, 924, 1311, 924, 8302,-32768, - 525,-32768,-32768,-32768,-32768, 831,-32768,-32768, 1251, 1398, - 1350,-32768,-32768, 110,-32768,-32768,-32768,-32768,-32768,-32768, --32768,-32768,-32768,-32768,-32768, 9136, 1365, 7530, 924, 506, - 8206, 1331, 139, 1367,-32768,-32768,-32768,-32768,-32768, 76, --32768, 1319,-32768,-32768, 1370,-32768,-32768, 1389,-32768, 9136, - 1398, 1373, 1398,-32768,-32768,-32768,-32768,-32768,-32768, 1320, - 197,-32768,-32768, 7622,-32768, 7254,-32768, 1445, 1397, 1351, --32768,-32768, 268,-32768,-32768, 1449, 1402, 8302,-32768,-32768, --32768,-32768, 1464, 1466,-32768 +-32768,-32768,-32768, 616,-32768,-32768, 682, 4154, 1158,-32768, +-32768, 646,-32768,-32768, 9667, 9754, 9841, 9841,-32768,-32768, +-32768,-32768,-32768, 668, 701, 711, 721, 732, 445, 9139, + 1090, 9841,-32768,-32768, 9841,-32768,-32768, 9841, 7165,-32768, + 9841, 223, 683,-32768, 9841,-32768, 9226,-32768, 10446,-32768, + 1514, 1785, 9313,-32768, 799, 2426,-32768, 953, 3686, 4007, +-32768, 307,-32768, 1524, 1858, 223, 223, 9052, 10350,-32768, + 1090, 703, 1090,-32768,-32768, 708, 768, 10596, 724, 733, + 738, 945, 556,-32768, 1112,-32768,-32768,-32768,-32768,-32768, +-32768, 528, 368, 383, 1090, 478, 538, 793, 553,-32768, + 776,-32768, 188, 284, 814,-32768,-32768,-32768, 467,-32768, +-32768,-32768,-32768,-32768, 4967,-32768,-32768, 5186, 5373, 1679, +-32768, 223, 809,-32768, 775,-32768,-32768,-32768, 2926,-32768, +-32768, 2926,-32768, 760,-32768,-32768, 3988, 87, 761, 777, +-32768,-32768,-32768, 627,-32768, 423,-32768,-32768,-32768,-32768, + 148,-32768,-32768,-32768,-32768, 7257, 9139,-32768,-32768,-32768, + 9139, 779,-32768, 6493, 100, 4306,-32768, 4306,-32768, 4584, + 4584, 4989, 790,-32768, 423, 5186,-32768, 783,-32768,-32768, + 4619, 1578, 1350, 5186,-32768, 423,-32768,-32768, 423, 1578, +-32768, 811,-32768,-32768, 372,-32768, 988,-32768, 1220, 1675, + 57, 682, 423,-32768,-32768, 836, 852, 876, 858,-32768, +-32768,-32768,-32768, 532,-32768, 338, 821, 826,-32768,-32768, + 682,-32768,-32768, 822,-32768,-32768, 9052, 9139, 646, 7165, +-32768, 437, 7165,-32768,-32768,-32768, 9052, 5977, 5977, 5977, + 5977, 10641,-32768,-32768,-32768,-32768, 832, 9928, 9928, 7165, + 851, 524, 863, 887, 867,-32768,-32768,-32768,-32768, 9052, +-32768, 6790, 7165,-32768, 9139, 9139, 7349, 9139, 9139, 9139, + 9139, 9139, 9139, 9139, 9139, 9139, 9139, 9139, 9139, 9139, + 9139, 9139, 9139, 9139, 9139, 9139,-32768,-32768,-32768,-32768, +-32768, 9139, 9139, 9139, 9052, 2857, 366, 440, 7988,-32768, +-32768,-32768, 880, 963, 972, 444, 523, 530, 2780, 543, +-32768, 1687, 1687,-32768, 4837, 868, 877, 948,-32768,-32768, + 502, 8495, 725,-32768, 860, 508,-32768,-32768, 9139,-32768, +-32768,-32768,-32768, 249,-32768,-32768,-32768, 223,-32768, 5186, + 1998,-32768, 933, 939,-32768,-32768, 1090, 793,-32768, 7717, + 7809,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 79,-32768, + 906, 895, 556, 951, 961, 9052,-32768,-32768,-32768,-32768, + 1386, 256, 990, 206, 970, 971,-32768,-32768, 2152, 10406, + 2152, 4432, 1046, 10143,-32768, 973,-32768,-32768,-32768,-32768, +-32768,-32768,-32768,-32768, 929,-32768, 979,-32768,-32768, 208, + 89, 460, 993, 887,-32768,-32768,-32768,-32768, 6695, 10641, +-32768, 768, 947, 10596,-32768,-32768, 952,-32768,-32768, 967, + 160, 5318, 969,-32768, 169, 5796, 996, 1015, 561,-32768, +-32768,-32768, 4306, 4306,-32768, 4619,-32768, 1016,-32768,-32768, + 995, 100,-32768, 1578,-32768,-32768, 423,-32768, 368, 383, +-32768, 964,-32768, 553, 1022,-32768,-32768, 120,-32768,-32768, + 1492,-32768, 589, 669,-32768, 9139, 5517,-32768, 5517, 335, + 335, 217, 585, 2595, 10244, 2284,-32768, 225, 335, 1043, + 423,-32768, 100, 2575, 9052, 9052,-32768, 9052, 100, 2575, +-32768,-32768,-32768,-32768,-32768,-32768, 649, 649, 649, 223, + 975, 1000, 9406, 948, 1004, 1014, 1019, 1059, 4066, 1060, + 1074, 1079,-32768, 1058,-32768,-32768, 1068,-32768,-32768, 1118, + 787, 900, 65, 431, 9139, 1120,-32768, 1124, 1070, 10641, + 10641,-32768,-32768, 1123, 5412, 5667, 3513, 5693, 4244, 3542, + 3712, 1983, 1983, 1983, 1691, 1691, 1237, 1237, 756, 756, + 756,-32768,-32768, 1084, 1082, 1086, 1095, 1097, 5977, 366, +-32768, 7257, 9139,-32768,-32768,-32768, 9139,-32768,-32768, 1105, + 9841, 1099, 1119, 1136, 1166,-32768, 9139,-32768, 9139,-32768, + 9139, 2683,-32768, 2683,-32768, 140, 1109, 1110,-32768, 1113, + 5977, 100,-32768, 100, 4679,-32768, 2575, 1125, 8687, 8687, + 6301, 1121, 9226, 1122, 3050, 1858, 984, 1130,-32768,-32768, +-32768,-32768,-32768, 9139, 1090, 1138, 939,-32768, 10641,-32768, + 10641, 945, 1137, 9493,-32768, 1141,-32768,-32768, 223,-32768, +-32768, 1364, 4967,-32768, 5977, 9052, 2037, 2037, 3864,-32768, +-32768,-32768,-32768, 2806,-32768,-32768,-32768, 61, 9139,-32768, +-32768,-32768,-32768,-32768,-32768,-32768, 528,-32768, 478, 538, + 9139, 1170,-32768, 587, 601, 622, 887,-32768, 71,-32768, + 55,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 8591,-32768, +-32768,-32768,-32768,-32768,-32768,-32768,-32768, 1015, 1168,-32768, +-32768,-32768, 5977,-32768,-32768,-32768, 1190,-32768, 9052,-32768, +-32768,-32768,-32768, 1345,-32768, 2575, 10641,-32768, 1904,-32768, + 423, 423,-32768,-32768,-32768,-32768,-32768, 2575, 232, 915, + 9139, 811,-32768, 1196,-32768,-32768,-32768, 343, 391, 849, + 543, 686, 335, 1199,-32768, 901,-32768,-32768,-32768, 423, + 4219,-32768,-32768, 1154, 223, 223, 223,-32768, 1157, 100, + 2575, 100, 2575,-32768,-32768,-32768,-32768,-32768,-32768,-32768, +-32768,-32768, 1175, 1176, 1177, 1179, 929,-32768, 10528, 7257, + 6885, 1163,-32768, 9139,-32768,-32768,-32768,-32768, 825, 1172, +-32768,-32768, 1173, 66, 285, 285, 1167, 285,-32768,-32768, + 9841, 1268, 9052,-32768, 1185, 1186, 1188,-32768,-32768,-32768, +-32768,-32768,-32768,-32768,-32768, 100, 1191,-32768, 1192,-32768, +-32768, 3120,-32768,-32768,-32768,-32768,-32768, 10641,-32768,-32768, + 1189,-32768,-32768, 227, 1197,-32768,-32768,-32768,-32768,-32768, +-32768, 2938, 2938, 3140, 3140, 3864,-32768, 2806,-32768, 3487, + 10446,-32768,-32768, 1200,-32768, 460,-32768, 9139,-32768, 9139, +-32768, 9139,-32768, 1090,-32768,-32768, 6207, 1275,-32768, 6977, +-32768, 8780, 8780, 6397, 183, 1205, 254,-32768, 7257, 7069, +-32768,-32768, 240, 7257,-32768, 1214, 1218, 1220,-32768,-32768, +-32768, 100, 1219,-32768, 1266, 1266, 100, 1222, 9139, 9139, + 10506, 423, 3309, 423, 423, 1160, 423, 4478, 1266, 5125, +-32768,-32768,-32768, 1278,-32768,-32768,-32768, 1225,-32768, 1226, + 9139, 9139, 9139, 9139, 7257,-32768, 1276,-32768,-32768, 10641, + 9139,-32768, 825,-32768,-32768,-32768,-32768,-32768,-32768, 1228, +-32768, 1290, 223,-32768,-32768,-32768, 100,-32768,-32768,-32768, +-32768,-32768,-32768, 9139,-32768,-32768, 2938, 2938,-32768, 3487, +-32768,-32768, 1234, 1236, 1244, 1250,-32768, 786, 242, 1297, + 1021, 1023,-32768,-32768,-32768,-32768,-32768, 9139, 1300, 1304, + 1309, 8873, 257, 415,-32768,-32768, 8965, 1366, 1316,-32768, + 4706, 10305, 10451, 6095,-32768,-32768, 1362,-32768,-32768,-32768, + 8099,-32768,-32768, 1273, 1916,-32768,-32768,-32768,-32768, 5977, +-32768,-32768, 7257,-32768,-32768,-32768,-32768,-32768,-32768,-32768, +-32768,-32768, 10506, 10506,-32768, 1266, 695, 1083, 9139,-32768, +-32768,-32768, 811, 811, 1266, 1266, 532, 1266,-32768,-32768, + 5854, 100, 100,-32768,-32768, 1282, 1284, 1298, 1308,-32768, + 7257, 1310,-32768,-32768,-32768,-32768,-32768, 100, 1314,-32768, +-32768,-32768,-32768, 1250,-32768, 1090,-32768,-32768,-32768,-32768, +-32768,-32768, 629, 629, 887, 1292, 1294, 10484,-32768,-32768, +-32768,-32768, 1334, 9139, 1369,-32768, 887,-32768,-32768, 1338, +-32768,-32768, 811, 823,-32768, 861, 811, 9580, 864, 266, +-32768,-32768,-32768,-32768,-32768,-32768, 339,-32768,-32768, 100, + 100,-32768,-32768,-32768, 9139, 9139, 10506, 423, 423,-32768, +-32768,-32768,-32768, 7901,-32768,-32768,-32768,-32768, 100, 100, +-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 1339,-32768, +-32768,-32768, 9052,-32768,-32768,-32768, 1435, 8401, 6603, 9052, + 9139,-32768, 8209,-32768, 1394,-32768,-32768, 627,-32768,-32768, + 10015, 10015, 7441,-32768,-32768, 887,-32768,-32768, 10506, 10506, +-32768, 1266, 1266, 1347, 10550, 1358,-32768,-32768, 5257,-32768, +-32768, 1349, 443, 5186, 887, 8305,-32768,-32768, 71,-32768, +-32768, 1402, 1359, 10619, 8209,-32768,-32768, 1250, 78,-32768, +-32768,-32768,-32768,-32768,-32768,-32768,-32768, 379, 208, 1360, + 1361, 887,-32768, 811,-32768,-32768,-32768,-32768, 638,-32768, + 7533,-32768,-32768,-32768,-32768, 1250, 1457, 1411, 156,-32768, +-32768,-32768,-32768, 423, 71,-32768, 9139, 1413,-32768, 1414, +-32768, 887, 8209, 1382, 53, 1418,-32768,-32768,-32768, 148, +-32768, 1415,-32768, 1371,-32768,-32768,-32768,-32768, 9139, 1457, + 1421, 1457,-32768,-32768,-32768, 7625, 1373, 158,-32768,-32768, + 7257, 1377,-32768, 1479, 1439,-32768,-32768,-32768, 301,-32768, + 8305, 1490, 1442,-32768,-32768,-32768, 1508, 1509,-32768 }; static const short yypgoto[] = {-32768, - 1468,-32768, -332,-32768, 1058, 21, 39, 1467,-32768, 487, --32768,-32768, 100, 1122,-32768, 20,-32768,-32768, -614,-32768, --32768, 577,-32768, 1325, -662, 41, -664, 1333, 77,-32768, --32768,-32768,-32768,-32768, 741,-32768,-32768,-32768,-32768,-32768, --32768, 379, 166,-32768,-32768,-32768,-32768,-32768,-32768,-32768, --32768,-32768,-32768,-32768, 1403, -612, 5224, -64, -211, 151, - 1360, -496,-32768, 216,-32768, 83,-32768, -1370,-32768, -1373, - -59,-32768, 1406, 1203, -266,-32768, -786, 2298, -79, 3469, - 3080, 1222,-32768, -69, -36, 167, -65, 665,-32768,-32768, --32768, -312,-32768, -155,-32768,-32768, -1270, -47, -326, 1916, - 0, 718, -129, 24, 87, -183, -4, -11, -738, 189, --32768, -29, 133,-32768, -259,-32768,-32768,-32768,-32768,-32768, - -21, 1092, 31,-32768, 616,-32768,-32768, -1044, -260, 833, --32768,-32768,-32768,-32768,-32768, -53,-32768,-32768,-32768,-32768, --32768, 624, -350,-32768,-32768,-32768,-32768,-32768,-32768,-32768, - 1293,-32768, 371, 543,-32768,-32768,-32768,-32768, 505, -708, --32768,-32768,-32768,-32768,-32768,-32768, 775,-32768, 356, 904, - 637, 958, 3095, 18, 47, -436, 1341, 1472, -452,-32768, - 16,-32768, 4578, -58, 691, -75, 3473, 1205,-32768, 4658, - 1537, 281, -16, -107,-32768, 1404, -83,-32768, 4082, 2328, - -354,-32768, 3978,-32768,-32768, 211, -906, -1375,-32768,-32768, - 308, 44, -395,-32768,-32768,-32768,-32768, -1324,-32768, -1233, - -1384,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, --32768,-32768,-32768,-32768,-32768,-32768, 68,-32768,-32768,-32768, --32768,-32768, 74, -1234,-32768,-32768,-32768, -56,-32768,-32768, --32768,-32768, -1356, 2,-32768, 13,-32768, -646, -515, 591, --32768,-32768,-32768,-32768, -383,-32768, -376, -176,-32768, 869, - 312,-32768, 25,-32768, -219 + 1511,-32768, -303,-32768, 1101, 18, -1, 1515,-32768, 192, +-32768,-32768, 519, 1161,-32768, 5,-32768,-32768, -623,-32768, +-32768, 615,-32768, 1363, -668, 83, -664, 1392, 30,-32768, +-32768,-32768,-32768,-32768, 774,-32768,-32768,-32768,-32768,-32768, +-32768, 404, 661,-32768,-32768,-32768,-32768,-32768,-32768,-32768, +-32768,-32768,-32768,-32768, 1440, -611, 5315, 32, -317, 44, + 1416, -503,-32768, 103,-32768, 222,-32768, -1302,-32768, -756, + 17,-32768, 1320, 1586, -262,-32768, -794, 1774, -110, 1098, + 3500, 1281,-32768, -87, -55, 1580, -77, 27,-32768,-32768, +-32768, -319,-32768, -155,-32768,-32768, -1156, -47, -316, 2413, + 58, -240, -120, 52, 76, -181, -4, -144, -610, 312, +-32768, 68, 73,-32768, -337,-32768,-32768,-32768,-32768,-32768, + 374, 1115, 20,-32768, 673,-32768,-32768, -1049, -422, 890, +-32768,-32768,-32768,-32768,-32768, -32,-32768,-32768,-32768,-32768, +-32768, 685, -360,-32768,-32768,-32768,-32768,-32768,-32768,-32768, + 1348,-32768, 426, 602,-32768,-32768,-32768,-32768, 566, -686, +-32768,-32768,-32768,-32768,-32768,-32768, 833,-32768, 412, 966, + 704, 1024, 3968, 7, 51, -431, 1407, 3322, -438,-32768, + 19,-32768, 3079, -118, 247, -59, 3948, 1271,-32768, 4653, + 1794, 1660, -16, -115,-32768, 1471, -81,-32768, 4369, 2696, + -290,-32768, 2504,-32768,-32768, 344,-32768,-32768, 471, 93, + -353,-32768,-32768,-32768,-32768, -1262,-32768, -1191, -1324,-32768, +-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, +-32768,-32768,-32768, 115,-32768,-32768,-32768,-32768,-32768, 153, + -1232,-32768,-32768, -65,-32768,-32768,-32768,-32768, -1312, 92, +-32768, 94,-32768, -616, -520, 660,-32768,-32768,-32768,-32768, + -371,-32768, -364, -179,-32768, 681, 349,-32768, -394,-32768, + -217 }; -#define YYLAST 10665 +#define YYLAST 10726 static const short yytable[] = { 58, - 408, 655, 593, 54, 205, 925, 180, 121, 656, 453, - 937, 711, 479, 237, 234, 166, 729, 372, 501, 504, - 632, 71, 602, 41, 36, 677, 279, 56, 978, 102, - 980, 58, 1124, 789, 653, 54, 58, 1007, 917, 371, - 54, 1384, 37, 1051, 472, 230, 469, 923, 139, 143, - 534, 193, 378, 71, 1361, 41, 36, 383, 71, 56, - 41, 36, 380, 452, 56, 1460, 228, 571, 85, 858, - 1480, 571, 460, 571, 37, 237, 858, 750, 277, 37, - 45, 1477, 329, 1482, 329, 1399, 329, 400, 403, 482, - 57, 208, 1402, 491, 1503, 381, 382, 241, 418, 174, - 278, 329, 329, 39, 1504, 1244, 1245, 1014, -1, 1222, - 674, 433, 45, 1019, 1471, 605, 1517, 45, 86, 1265, - 344, 237, 57, 1490, 606, 607, 1521, 57, 787, -125, - 390, 329, 192, 329, 388, 39, 581, 1526, 93, 205, - 39, 136, 699, 1534, 415, 491, 1535, 205, 205, 860, - 751, 1458, 71, 1500, 945, 58, -326, 434, 389, 54, - 419, 945, 1545, 399, 402, 681, 667, 456, 675, 276, - 1491, 480, 926, 1503, 205, 774, 1125, 71, 486, 100, - 661, 662, 773, 56, 1527, 1562, 1223, 1550, 114, 458, - 461, -275, 1467, 420, 436, 438, 716, 174, 1190, 1493, - 150, 1531, 946, -2, -589, 947, 1335, 505, 506, 946, - 87, 387, 947, 752, -796, 1341, 1342, 481, 1343, 935, - 1077, 57, 514, 205, 892, 515, 208, 1126, 516, 217, - 174, 526, 1488, 1008, 208, 531, 45, -275, -275, 336, - 948, 337, 951, 570, 241, 92, 57, 948, 1532, -277, - -589, -589, 788, -268, 1361, 1209, 576, -326, 671, 1548, - 134, 419, 1187, 15, 16, 568, -589, 1084, -385, 598, - 1087, 106, 763, 228, 893, 205, 1235, 1529, 938, 378, - 1364, 635, -335, 1009, 15, 16, 392, 1098, 368, 577, - 952, 602, 902, 953, 420, -277, -277, -385, 8, 484, - 896, -385, 581, 640, 329, 1210, 1549, 1364, 1112, 1113, - 397, -271, 655, 401, 404, 599, -335, 277, 764, 958, - -335, 346, 350, 714, 88, 228, 1236, 1556, 954, 1148, - 1365, 158, 831, 329, 611, 972, 205, 107, 610, 278, - 658, 1153, 639, 343, 89, 150, 846, -385, 773, 832, - 241, 129, 130, -335, 479, 858, 71, 1438, 527, 239, - 528, 136, 389, 1442, 1443, 593, 973, 90, 927, 719, - 720, 848, 159, 983, 1173, 485, 1175, 1557, 833, 1186, - 652, 400, 403, 239, 193, 464, 466, 91, 281, 373, - 374, 10, 847, 858, 137, 1373, 879, 477, 205, 205, - 108, 1278, 654, 289, 643, 743, 205, 984, 276, 1101, - 530, 985, 239, 928, 138, 609, 357, 849, 205, 27, - 27, 239, 929, 930, 850, 57, 527, 22, 528, 692, - -549, 1079, 717, 858, 232, 358, 89, 205, 514, 515, - 458, 461, 28, 299, 986, 962, 208, -336, 458, 15, - 16, 654, 903, 1415, 156, 91, 1007, 703, 704, 931, - 461, 157, 1417, 1418, 987, 58, 513, 239, 904, 744, - 851, 651, 1206, 1207, 33, 523, -549, 173, 137, 461, - 163, -336, 126, 127, 172, -336, -126, 71, 608, 208, - 737, 963, 329, 745, 1117, 329, 1119, 167, 329, 425, - 239, -549, 329, 779, 779, 779, 779, 866, 618, 568, - 988, 281, 373, 374, 10, 329, 426, 628, -336, 655, - 651, 729, 155, 239, 521, 329, 656, 162, 329, 1121, - 618, 8, 9, 27, 171, 129, 130, 19, 126, 127, - 1118, 1123, 1120, 13, 968, 427, 970, -549, 448, 835, - 22, 974, 653, 867, 868, 223, 57, 205, 1027, 836, - 329, 277, 881, 602, 831, 28, 299, 8, 9, 225, - 1451, 1052, 1505, 837, 359, 1122, 1508, 1390, 709, 1395, - 652, 832, 581, 278, 129, 130, 715, 692, 280, 27, - 858, 129, 130, 137, 136, 491, 340, 33, 205, 852, - 854, 910, 654, 915, 916, 582, 534, 401, 404, 654, - 833, 241, 343, 858, 239, 583, 1452, 342, 1506, 352, - 129, 130, 1195, 372, 121, 584, 356, 354, 585, 586, - 474, 329, 718, 355, 94, 109, 110, 90, 205, 126, - 127, 360, 88, 361, 916, 193, 685, 770, 384, 228, - -123, -268, 276, 126, 127, 936, 605, 91, 482, 90, - 205, 1154, 89, 935, 405, 1336, 523, -124, 173, 523, - 1382, 651, 743, 87, 743, 239, 475, 87, 651, 91, - 743, 743, 136, 284, 343, 401, 784, 1097, 111, 112, - 729, 652, 129, 130, 406, 967, 993, 796, 151, 523, - 1191, 1192, 458, 1194, 27, -584, 129, 130, 199, 200, - 981, 982, 1380, 654, 14, 521, 485, -7, 521, 1010, - 835, 414, 776, 88, 153, 205, 417, 774, 429, 1012, - 836, 1155, 58, 430, 58, 521, 744, 21, 979, 844, - 193, 58, 487, 89, 837, 744, 24, 239, 521, 652, - 329, 329, 803, 329, 71, 652, 71, 737, 874, 737, - 745, 1060, 745, 71, 488, 88, 737, 88, 90, 745, - 489, 654, 490, 1337, 239, 1367, 1368, 654, 825, 1181, - 1183, 498, 651, 1473, 842, 89, 899, 89, 91, 514, - 515, 1024, 1025, 1026, 1143, 1144, 1145, -102, 507, 15, - 16, 126, 127, 1168, 1169, 1170, 901, 126, 127, 1494, - 151, 151, 151, 199, 200, 206, 207, -44, 918, 14, - 992, 1002, -44, 57, 779, 57, -545, 508, 1054, -545, - 530, -102, 57, -44, 509, -102, 153, 153, 153, 510, - 651, 511, 21, 151, 796, 571, 651, -100, 237, 15, - 16, 24, 27, 581, 129, 130, 779, 15, 16, 239, - 129, 130, 652, 619, 1183, 863, 692, 616, -102, 153, - 446, 447, 620, 1231, 1233, 239, 636, -545, 1237, -545, - -545, -100, -545, 622, 654, -100, 852, 854, 654, 126, - 127, 241, 623, -545, 624, -545, 454, 455, 652, 773, - 779, 329, 126, 127, 652, 1015, 1016, 637, 1017, 555, - 556, -545, -545, 1362, 1363, -545, 446, 1432, -100, 1275, - 654, 638, 643, 665, 1102, 1103, 654, -545, 686, -6, - 128, 993, 454, 1433, 237, 234, 446, 1437, 761, 874, - 27, 705, 129, 130, 692, 90, 743, 343, 94, 95, - 96, 668, 710, 651, 755, 129, 130, 651, 779, 1150, - 1151, 756, 1157, 975, 329, 91, 654, 757, 1159, 1160, - 90, 652, 1157, 1162, 758, 1420, 1160, 1330, 765, 233, - 766, 1196, 675, 652, 762, 783, 1281, 1430, 1164, 651, - 91, 774, 785, 654, 786, 651, 8, 9, 788, 843, - 27, 845, 97, 98, 99, 654, 58, 859, 861, 976, - 744, 863, 884, 885, 894, 1356, 652, 895, 652, 897, - 898, 21, 572, -271, 281, 373, 374, 10, 71, 573, - 924, 737, 905, 906, 745, 651, 401, 784, 654, 919, - 654, 343, 237, 1420, 419, 400, 403, 514, 515, 129, - 130, 942, 1057, 943, -795, 992, 944, 628, 329, 15, - 16, 950, 651, 22, -385, 655, 960, 901, 400, 403, - 574, 964, 1475, 233, 651, 150, 27, 965, 28, 299, - 1498, 969, 1420, 971, 1033, 1011, 521, 7, 8, 231, - 10, -122, -385, -385, 1034, 1028, 486, 57, 677, 936, - 743, 652, 649, 1035, 151, 151, 151, 651, 1029, 651, - 575, 1040, 1030, 1420, 1031, 1131, 552, 553, 554, 555, - 556, 1212, 1213, 654, 692, 1032, 22, 8, 9, 1036, - 153, 153, 153, 232, 1250, 1251, 774, 1260, 1261, 1037, - 1263, 28, 29, 1038, 1212, 1213, 654, 196, 1041, 204, - 1043, 649, 1044, 1045, -277, 239, 1047, 239, 126, 127, - 58, 1048, 1046, 482, 744, 233, 1049, 1059, 1061, -277, - -277, 1062, 343, 33, -277, 1063, 1064, 557, 1070, 1071, - 129, 130, 71, 1072, 1141, 737, 1078, 1080, 745, 1081, - -277, 1083, 651, 1093, 239, 94, 109, 110, 476, 94, - 109, 110, -277, -277, 485, -277, 1182, -277, 1090, 27, - 1096, 129, 130, 1198, 1134, 651, 558, 559, 1116, 1158, - 1318, 560, 561, 562, 563, 492, 1333, 1334, 1339, 1340, - 779, 1140, 526, 1163, 22, 493, -277, -277, 1176, 1177, - -277, 1167, 71, 1171, 1178, 1312, 1179, 1184, 1317, 111, - 112, 57, -277, 111, 112, 113, 1188, 416, 1189, 1197, - 1193, 1199, 426, 1313, 205, 115, 116, 117, 1389, 1205, - 1389, 401, 404, 8, 9, 1470, 386, 12, 13, 491, - 239, 688, 1200, 14, 204, 1551, 281, 373, 374, 10, - 1182, 1201, 459, 204, 401, 1229, 1204, 1211, 17, 1208, - 18, 19, 649, 1216, 1230, 1239, 21, 1318, 1240, 649, - 1243, 57, 193, 1247, 1318, 24, 1407, 1408, 1409, 118, - 119, 1318, -626, 1269, 27, 22, 129, 130, 1270, 71, - 1279, 1276, 1312, 1280, 1285, 1317, 71, 1286, 27, 1312, - 28, 299, 1317, 71, 521, 1287, 1312, 1288, 1222, 1317, - 126, 1262, 1328, 1352, 514, 515, 1353, 1313, 1354, 1355, - 1357, 1366, 239, 456, 1313, 1359, 1375, 689, 281, 8, - 9, 10, 33, 1376, 1377, 400, 403, 1385, 1387, 1400, - 1422, 126, 127, 1440, 1441, 1423, 1427, 1291, 239, 1429, - 1431, 1271, 1272, 1273, 1274, 343, 1444, 1456, 57, 1446, - 1449, 1277, 1468, 129, 130, 57, 1484, 22, 1512, 205, - 1516, 1485, 57, 649, 232, 1496, 1486, 1318, 1463, 1497, - 1499, 1318, 28, 299, 1530, 1523, 1533, 485, 1536, 1547, - 1537, 329, 27, 1542, 129, 130, 362, 363, 364, 71, - 278, 239, 1312, 71, 652, 1317, 1312, 1463, 492, 1317, - 1318, 703, 704, 1539, 33, 1552, 1510, 1554, 493, 1559, - 1555, 1318, 1560, 1564, 1313, 1565, 654, 1, 5, 278, - 670, 649, 71, 1381, 1318, 1312, 634, 649, 1317, 1099, - 196, 204, 365, 71, 412, 1003, 1312, 1472, 1528, 1317, - 366, 367, 413, 1313, 1217, 339, 71, 393, 1561, 1312, - 1454, 497, 1317, 1463, 1313, 1392, 1318, 1092, 57, 276, - 1091, 941, 57, 1241, 468, 1165, 1146, 1313, 1264, 1005, - 887, 1089, 1379, 830, 449, 278, 370, 1416, 71, 1398, - 578, 1312, 1541, 1327, 1317, 651, 416, 1518, 276, 1495, - 79, 57, 1489, 459, 204, 1543, 1329, 416, 1133, 1313, - 103, 459, 57, 1318, 989, 990, 9, 10, 0, 0, - 1131, 132, 0, 0, 416, 57, 0, 141, 141, 0, - 141, 0, 79, 151, 0, 71, 0, 79, 1312, 0, - 966, 1317, 0, 0, 649, 0, 0, 0, 649, 0, - 187, 0, 79, 22, 276, 1428, 1313, 57, 0, 153, - 220, 401, 1229, 0, 0, 0, 27, 103, 28, 29, - 0, 0, 1149, 151, 991, 0, 0, 0, 243, 103, - 649, 1013, 177, 0, 0, 0, 649, 1018, 0, 683, - 0, 0, 178, 115, 719, 720, 690, 803, 1461, 153, - 33, 103, 0, 0, 57, 179, 0, 0, 437, 439, - 443, 521, 94, 95, 96, 0, 209, 210, 211, 0, - 0, 722, 0, 0, 132, 0, 649, 1461, 0, 132, - 0, 79, 115, 116, 117, 141, 0, 0, 395, 141, - 0, 0, 141, 141, 141, 27, 212, 118, 119, 0, - 0, 0, 0, 649, 0, 0, 79, 362, 363, 364, - 771, 0, 204, 0, 27, 649, 97, 98, 213, 0, - 0, 0, 0, 187, 187, 187, 0, 94, 95, 96, - 0, 1522, 0, 1461, 27, 0, 118, 119, 0, 0, - 1073, 0, 1074, 0, 7, 8, 9, 10, 649, 0, - 649, 196, 187, 204, 0, 1540, 0, 0, 0, 27, - 0, 366, 367, 0, 214, 215, 216, 467, 0, 803, - 0, 0, 0, 343, 824, 103, 826, 827, 151, 151, - 151, 97, 98, 22, 0, 0, 141, 0, 0, 581, - 126, 127, 0, 204, 0, 227, 27, 0, 28, 29, - 0, 151, 151, 151, 153, 153, 153, 0, 0, 0, - 0, 878, 907, 0, 0, 459, 0, 0, 416, 0, - 0, 0, 908, 0, 103, 494, 0, 153, 153, 153, - 33, 0, 584, 649, 581, 909, 586, 94, 109, 110, - 0, 27, 682, 129, 130, 0, 196, 0, 0, 682, - 0, 0, 416, 94, 95, 96, 649, 582, 732, 0, - 7, 8, 733, 10, 386, 12, 13, 583, 103, 0, - 0, 14, 579, 0, 494, 494, 595, 584, 0, 0, - 585, 586, 115, 719, 720, 79, 17, 0, 18, 19, - 20, 111, 112, 0, 21, -492, 0, 0, 1172, 22, - 1174, 132, 0, 24, 734, 0, 642, 97, 98, 0, - 0, 0, 27, 682, 28, 29, 0, 701, 735, 702, - 736, 437, 439, 443, 0, 132, 0, 0, 31, 0, - 0, 103, 713, 0, 187, 103, 118, 119, 32, 600, - 8, 9, 0, 0, 0, 141, 33, 0, 141, 0, - 0, 34, 0, 141, 1203, 0, 7, 8, 9, 10, - 198, 199, 200, 7, 126, 127, 10, 14, -492, 0, - 0, 0, 0, 0, 0, 289, 601, 682, 22, 682, - 682, 0, 187, 0, 187, 19, 187, 187, 187, 0, - 21, 27, 187, 129, 130, 22, 0, 187, 0, 24, - 187, 581, 22, 0, 0, 0, 0, 682, 27, 232, - 28, 29, 0, 0, 682, 0, 79, 28, 29, 7, - 8, 9, 10, 0, 907, 1242, 0, 0, 0, 0, - 1246, 349, 351, 0, 908, 0, 0, 0, 15, 16, - 0, 233, 33, -385, 584, 1053, 0, 909, 586, 33, - 0, 0, 0, 0, 103, 103, 103, 103, 22, 1065, - 0, 1066, 0, 1067, 0, 232, 0, 0, 151, 0, - 0, -385, -385, 28, 29, 0, -385, 198, 199, 200, - 1282, 0, 416, 416, 14, 0, 281, 8, 9, 10, - 0, 0, 0, 0, 153, 0, 0, 233, 0, 0, - 0, 0, 19, 0, 0, 33, 1095, 21, 151, 151, - 151, 416, 103, 0, 494, 0, 24, 550, 551, 552, - 553, 554, 555, 556, 0, 22, 579, 0, 494, 494, - 0, 595, 232, 0, 153, 153, 153, 0, 875, 0, - 28, 299, 877, 1114, 0, 1348, 1349, 0, 0, 0, - 8, 9, 0, 386, 12, 13, 187, 0, 688, 0, - 14, 1358, 0, 0, 233, 0, 0, 0, 7, 126, - 127, 10, 33, 0, 13, 17, 649, 18, 19, 0, - 0, 0, 0, 21, 701, 702, 0, 713, 682, 0, - 0, 0, 24, 0, 581, 187, 914, 187, 187, 220, - 595, 27, 0, 129, 130, 0, 0, 22, 0, 1403, - 1404, 0, 0, 0, 0, 0, 0, 582, 0, 0, - 27, 0, 28, 29, 0, 998, 0, 583, 1413, 1414, - 0, 0, 0, 0, 525, 0, 31, 584, 187, 0, - 585, 586, 914, 0, 689, 0, 32, 0, 682, 187, - 187, 0, 187, 0, 33, 0, 0, 416, 416, 34, - 416, 416, 682, 416, 682, 0, 682, 0, 0, 7, - 8, 9, 10, 0, 0, 0, 0, 198, 199, 200, - 132, 0, 0, 79, 14, 79, 0, 457, 199, 200, - 1000, 79, 79, 0, 14, 0, 0, 0, 0, 0, - 103, 0, 19, 0, 0, 0, 103, 21, 22, 682, - 648, 0, 19, 494, 494, 494, 24, 21, 0, 0, - 0, 27, 0, 28, 29, 494, 24, 176, 0, 0, - 1218, 659, 1219, 0, 1220, 0, 0, 177, 0, 0, - 0, 82, 0, 0, 0, 0, 682, 178, 0, 416, - 416, 105, 0, 0, 0, 33, 198, 199, 200, 691, - 179, 125, 133, 14, 682, 0, 0, 0, 142, 142, - 0, 142, 0, 82, 0, 103, 0, 0, 82, 0, - 0, 19, 0, 0, 0, 0, 21, 0, 437, 439, - 443, 142, 0, 82, 0, 24, 0, 0, 494, 0, - 494, 221, 0, 0, 0, 0, 0, 103, 229, 0, - 882, 494, 0, 103, 0, 875, 875, 875, 196, 204, - 229, 1284, 1082, 0, 0, 772, 0, 0, 775, 0, - 443, 0, 777, 778, 780, 781, 782, 0, 0, 416, - 416, 416, 0, 0, 0, 525, 0, 0, 0, 103, - 0, 103, 0, 187, 187, 1108, 0, 0, 799, 0, - 998, 0, 0, 0, 0, 379, 0, 0, 0, 94, - 109, 110, 82, 209, 210, 211, 142, 0, 0, 0, - 142, 0, 0, 142, 142, 142, 0, 0, 126, 127, - 828, 0, 199, 200, 0, 1108, 0, 82, 14, 0, - 0, 0, 0, 212, 0, 0, 416, 416, 0, 103, - 856, 0, 0, 0, 142, 142, 142, 856, 0, 0, - 0, 21, 103, 111, 112, 1000, 0, 0, 0, 0, - 24, 0, 581, 682, 103, 682, 0, 682, 0, 27, - 0, 129, 130, 142, 0, 0, 0, 1161, 0, 0, - 0, 0, 0, 0, 0, 582, 0, 79, 94, 109, - 110, 0, 625, 626, 627, 583, 0, 103, 0, 103, - 0, 0, 0, 0, 0, 584, 0, 142, 592, 586, - 0, 0, 0, 701, 702, 437, 439, 443, 0, 0, - 0, 713, 7, 126, 127, 10, 0, 0, 227, 0, - 0, 494, 494, 0, 494, 0, 0, 0, 437, 439, - 443, 416, 111, 112, 0, 229, 142, 0, 0, 0, - 0, 648, 0, 0, 682, 0, 0, 0, 0, 0, - 0, 22, 0, 0, 0, 587, 587, 587, 0, 1258, - 0, 0, 0, 0, 27, 0, 28, 29, 187, 187, - 187, 187, 1108, 0, 0, 0, 187, 0, 0, 229, - 31, 0, 0, 580, 0, 142, 142, 596, 0, 0, - 32, 0, 604, 1108, 1108, 1108, 82, 0, 33, 691, - 0, 0, 0, 34, 0, 691, 0, 0, 281, 126, - 127, 10, 379, 701, 702, 0, 713, 0, 0, 0, - 0, 0, 0, 0, 187, 0, 0, 0, 0, 141, - 0, 79, -357, 8, 9, -357, -357, 12, 227, 0, - 0, 0, 229, 14, 0, 142, 229, 22, 0, 0, - 281, 8, 9, 10, 232, 0, 142, 0, 17, 142, - 18, -357, 28, 299, 142, 0, 21, 0, 0, 0, - 0, -357, 0, 0, 1050, 24, 0, 581, 187, 187, - 0, 187, 0, 0, 27, 0, 129, 130, 0, 22, - 0, 0, 0, 142, 33, 142, 232, 142, 142, 142, - 582, 103, 0, 142, 28, 299, 799, 0, 142, 0, - 583, 142, 691, 0, 0, 0, 856, 0, -357, 0, - 584, 0, 0, 585, 586, 0, 731, 82, 485, 682, - 0, 0, 0, 0, 0, 0, 33, 0, 7, 126, - 127, 10, 0, 0, 13, 115, 719, 720, 648, 721, - 1100, 0, 0, 0, 856, 548, 549, 550, 551, 552, - 553, 554, 555, 556, 0, 229, 229, 229, 229, 0, - 0, 0, 0, 722, 0, 0, 0, 22, 0, 0, - 723, 0, 187, 914, 187, 0, 0, 0, 0, 0, - 27, 0, 28, 29, 856, 443, 0, 27, 0, 118, - 119, 0, 989, 990, 9, 10, 146, 0, 1136, 587, - 587, 0, 587, 0, 1142, 0, 147, 0, 0, 873, - 0, 691, 0, 229, 33, 142, 0, 0, 0, 148, - 0, 0, 0, 691, 0, 437, 439, 443, 0, 142, - 142, 22, 596, 0, 0, 0, 0, 0, 0, 876, - 0, 0, 0, 0, 27, 0, 28, 29, 0, 0, - 1108, 604, 991, 0, 0, 0, 691, 142, 691, 0, - 177, 0, 0, 0, 0, 0, 587, 0, 587, 587, - 178, 587, 0, 0, 7, 8, 9, 10, 33, 0, - 13, 0, 0, 179, 0, 0, 0, 0, 125, 0, - 1108, 1108, 1108, 0, 0, 0, 142, 596, 142, 142, - 221, 596, 0, 0, 0, 103, 0, 0, 0, 587, - 0, 0, 0, 22, 0, 0, 0, 0, 0, 731, - 187, 0, 0, 0, 0, 0, 27, 0, 28, 29, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 142, - 0, 856, 177, 596, 0, 0, 0, 0, 0, 0, - 142, 142, 178, 142, 0, 0, 0, 0, 0, 0, - 33, 0, 0, 0, 856, 179, 7, 8, 9, 10, - 198, 199, 200, 7, 126, 127, 10, 14, 0, 482, - 0, 133, 0, 0, 82, 0, 82, 0, 0, 0, - 0, 1001, 82, 82, 0, 19, 587, 0, 0, 0, - 21, 229, 0, 50, 0, 22, 0, 229, 0, 24, - 0, 581, 22, 0, 142, 142, 142, 0, 27, 0, - 28, 29, 0, 0, 0, 27, 142, 28, 29, 0, - 50, 50, 0, 149, 907, 50, 0, 0, 0, 0, - 50, 31, 0, 0, 908, 0, 0, 0, 0, 0, - 0, 32, 33, 50, 584, 50, 0, 949, 586, 33, - 0, 0, 0, 0, 34, 0, 0, 0, 0, 587, - 1136, 587, 0, 0, 0, 0, 229, 0, 235, 0, - 0, 0, 587, 0, 0, 0, 873, 873, 873, 1252, - 1253, 9, 10, 0, 0, 240, 0, 0, 0, 142, - 0, 142, 0, 0, 0, 0, 0, 0, 229, 0, - 0, 0, 142, 0, 229, 0, 876, 876, 876, 0, - 0, 0, 0, 604, 587, 587, 587, 376, 22, 0, - 0, 376, 376, 0, 50, 0, 0, 0, 50, 0, - 235, 27, 50, 28, 29, 149, 149, 149, 0, 1254, - 229, 0, 229, 0, 142, 142, 596, 177, 0, 50, - 0, 0, 0, 0, 0, 0, 873, 178, 407, 0, - 0, 0, 0, 0, 0, 33, 50, 50, 149, 0, - 179, 0, 0, 0, 0, 0, 235, 8, 9, 435, - 0, 12, 13, 0, 0, 0, 876, 14, 0, 0, - 0, 0, 451, 0, 0, 50, 0, 0, 0, 0, - 229, 0, 17, 0, 18, 0, 0, 0, 0, 0, - 21, 731, 0, 229, 0, 0, 1001, 0, 0, 24, - 0, 0, 0, 0, 0, 229, 0, 0, 27, 50, - 129, 130, 564, 0, 732, 0, 7, 8, 733, 10, - 386, 12, 13, 0, 0, 0, 0, 14, 82, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 229, 0, - 229, 525, 17, 0, 18, 19, 20, 565, 0, 0, - 21, 0, 0, 0, 648, 22, 0, 0, 0, 24, - 734, 0, 642, 0, 0, 0, 0, 0, 27, 0, - 28, 29, 142, 142, 735, 142, 736, 0, 522, 0, - 0, 0, 0, 0, 31, 0, 0, 126, 127, 587, - 587, 587, 587, 587, 32, 376, 0, 587, 0, 0, - 0, 0, 33, 235, 0, 0, 0, 34, 50, 0, - 0, 0, 0, 0, 873, 873, 873, 0, 0, 142, - 142, 142, 142, 596, 376, 0, 0, 142, 0, 0, - 0, 581, 0, 731, 0, 0, 0, 0, 27, 0, - 129, 130, 0, 0, 876, 876, 876, 0, 376, 0, - 0, 0, 0, 0, 582, 0, 0, 50, 0, 0, - 731, 0, 0, 0, 583, 0, 77, 0, 50, 0, - 0, 50, 0, 0, 584, 142, 50, 585, 586, 0, - 142, 0, 82, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 77, 77, 0, 77, 0, 77, 587, - 587, 0, 587, 77, 0, 50, 0, 50, 0, 149, - 149, 149, 0, 0, 0, 50, 77, 0, 77, 0, - 50, 0, 0, 50, 0, 0, 0, 0, 706, 142, - 142, 0, 142, 712, 0, 0, 0, 0, 0, 50, - 0, 0, 0, 0, 0, 319, 0, 319, 0, 319, - 0, 0, 229, 0, 0, 0, 0, 0, 753, 7, - 8, 9, 10, 0, 759, 13, 0, 0, 0, 522, - 0, 0, 522, 0, 0, 0, 767, 768, 0, 769, - 0, 0, 0, 0, 0, 0, 0, 522, 522, 522, - 0, 0, 0, 0, 319, 0, 319, 77, 22, 0, - 0, 77, 522, 0, 581, 77, 0, 0, 77, 77, - 77, 27, 0, 28, 29, 0, 0, 0, 0, 0, - 0, 0, 77, 0, 0, 0, 0, 907, 0, 0, - 0, 0, 0, 142, 596, 142, 0, 908, 0, 77, - 77, 77, 0, 0, 0, 33, 0, 584, 235, 0, - 909, 586, 732, 0, 7, 8, 733, 10, 386, 12, - 13, 522, 0, 0, 0, 14, 0, 0, 77, 0, - 0, 0, 864, 865, 0, 0, 0, 864, 0, 50, - 17, 0, 18, 19, 20, 0, 0, 0, 21, -493, - 0, 0, 0, 22, 0, 0, 0, 24, 734, 0, - 642, 0, 77, 0, 0, 0, 27, 0, 28, 29, - 0, 876, 735, 0, 736, 0, 0, 0, 50, 50, - 50, 50, 31, 0, 0, 7, 8, 9, 10, 198, - 199, 200, 32, 0, 0, 0, 14, 0, 0, 0, - 33, 0, 0, 0, 0, 34, 0, 0, 0, 0, - 0, 876, 876, 876, 19, 0, 0, 0, 512, 21, - 0, 50, -493, 0, 22, 50, 229, 0, 24, 0, - 581, 0, 50, 50, 0, 50, 0, 27, 0, 28, - 29, 142, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 177, 0, 0, 319, 603, 0, 0, - 0, 77, 0, 178, 0, 0, 50, 0, 50, 0, - 0, 33, 0, 50, 50, 50, 1394, 0, 0, 1252, - 126, 127, 10, 7, 8, 9, 10, 386, 12, 13, - 0, 0, 688, 0, 14, 0, 0, 0, 0, 0, - 0, 0, 522, 0, 0, 1020, 0, 1022, 0, 17, - 77, 18, 19, 0, 0, 0, 0, 21, 22, 0, - 0, 77, 22, 0, 77, 0, 24, 0, 581, 77, - 0, 27, 0, 28, 29, 27, 0, 28, 29, 1254, - 0, 0, 0, 0, 680, 684, 0, 31, 0, 0, - 0, 1104, 684, 0, 0, 0, 0, 32, 77, 0, - 77, 1105, 77, 77, 77, 33, 0, 0, 77, 33, - 34, 584, 0, 77, 1106, 586, 77, 0, 689, 1055, - 1056, 0, 1058, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 77, 0, 0, 0, 0, 0, 522, 522, - 522, 0, 0, 0, 235, 0, 0, 0, 0, 0, - 1076, 0, 0, 0, 0, 319, 684, 539, 540, 541, - 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, - 552, 553, 554, 555, 556, 0, 50, 50, 149, 0, - 0, 0, 0, 235, 0, 0, 0, 0, 319, 0, - 680, 0, 0, 800, 801, 1110, 805, 806, 807, 808, - 809, 810, 811, 812, 813, 814, 815, 816, 817, 818, - 819, 820, 821, 822, 823, 0, 0, 0, 1130, 0, - 684, 0, 684, 684, 0, 0, 0, 0, 0, 7, - 8, 9, 10, 0, 0, 227, 0, 0, 7, 8, - 9, 10, 603, 0, 227, 0, 0, 0, 50, 0, - 684, 0, 0, 0, 0, 0, 0, 684, 0, 1147, - 0, 0, 0, 0, 0, 0, 0, 0, 22, 235, - 0, 1152, 77, 0, 581, 0, 0, 22, 889, 891, - 50, 27, 0, 28, 29, 0, 0, 0, 0, 0, - 27, 0, 28, 29, 319, 0, 0, 907, 0, 0, - 0, 0, 0, 0, 0, 154, 177, 908, 0, 0, - 0, 77, 77, 77, 77, 33, 178, 584, 0, 0, - 909, 586, 0, 0, 33, 188, 0, 0, 0, 179, - 0, 0, 0, 0, 0, 0, 0, 680, 544, 545, - 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, - 556, 235, 0, 0, 77, 1202, 0, 0, 77, 0, - 0, 0, 0, 0, 0, 77, 77, 0, 77, 0, + 408, 237, 37, 681, 937, 925, 180, 121, 41, 372, + 71, 453, 593, 655, 479, 602, 711, 279, 606, 607, + 656, 36, 501, 504, 653, 205, 789, 400, 403, 917, + 729, 58, 102, 45, 37, 1051, 58, 139, 143, 37, + 41, 371, 71, 469, 380, 41, 472, 71, 923, 632, + 978, 193, 980, 36, 534, 56, 458, 461, 36, 1007, + 151, 54, 1363, 237, 858, 45, 228, 677, 378, 1366, + 45, 858, 452, 383, 661, 662, 381, 382, 277, 57, + 208, 460, 329, 1448, 329, 192, 329, 56, 571, 278, + 1348, 1400, 56, 54, 750, 491, 1452, 571, 54, 571, + 241, 329, 329, 174, 1124, 1279, 1280, 1453, 482, 237, + 234, 57, 166, 581, 1130, 1520, 57, 605, 716, 1300, + -44, 1478, 354, 344, -1, -44, 972, -125, 355, -2, + 390, 329, 336, 329, 337, 752, -44, 1014, 892, 136, + 1487, 71, 230, 1019, 649, 418, 87, 491, 674, 158, + 93, 945, 399, 402, 860, 58, 1509, 973, 276, 773, + 205, 699, 1521, 1460, 387, 1131, 71, 751, 205, 205, + 787, 945, 151, 151, 151, 1195, 505, 506, 1501, 392, + 951, 1125, 1475, 436, 438, 774, 389, 1488, 893, 45, + 159, 514, 388, 649, 515, 205, 667, 516, 926, 946, + 526, 174, 947, -326, 531, 151, 675, 419, 346, 350, + 57, 56, 570, 1532, -326, 208, 1478, 54, 419, 946, + 1534, 1456, 947, 208, -792, 92, 425, 155, 952, 106, + -275, 953, 162, 935, 174, 57, 1374, 948, 576, 1517, + 420, 983, 88, 426, 205, 1380, 1381, 241, 1382, 788, + 1077, 420, 1450, 1400, 1192, 85, 568, 948, 671, 94, + 109, 110, 89, 1485, 456, 903, 954, 1535, 1084, 107, + 577, 1087, 427, 228, 486, 984, -275, -275, 1098, 985, + 153, 904, 902, 635, 602, 1008, 1214, 289, 126, 127, + 879, 108, -268, 482, 1159, 378, 205, 433, 527, 1270, + 528, -589, 1328, 27, 329, 86, 87, 458, 461, 1112, + 1113, 1518, 986, 111, 112, 458, 163, 277, 480, 640, + 938, 400, 403, 639, 655, 228, 1328, 461, 278, 896, + 134, 958, 714, 329, 611, 1009, 1215, 1344, 90, 27, + 658, 129, 130, 434, 649, 71, 461, -589, -589, 1271, + 858, 649, 1329, 241, 598, 835, 479, 205, 91, 1153, + 1542, 15, 16, -589, 481, 836, -385, -335, 609, 15, + 16, 1158, 1024, 1025, 1026, 593, 1425, -549, 136, 837, + 652, 608, 1463, 1464, 193, 763, -277, 156, 858, 643, + 389, 654, 153, 153, 153, -385, 610, 276, 1313, -385, + 599, -335, 1101, 167, 1178, -335, 1180, 514, 515, 1052, + 1543, 521, 157, 831, 57, -336, 171, 15, 16, 205, + 205, 137, 357, -549, 173, 153, 172, 205, 858, 692, + 832, 764, -277, -277, -549, 208, 1079, 358, -335, 205, + 654, 138, 89, 126, 127, -385, 703, 704, -271, -336, + 199, 200, 1027, -336, 19, 649, 14, 91, 205, 833, + 651, 223, 927, 719, 720, 58, 151, 151, 151, 281, + 373, 374, 10, 1211, 1212, 225, 71, 1346, 208, 21, + -549, 448, 280, 1007, 581, 137, -336, 737, 24, 136, + 581, 846, 329, -126, 27, 329, 129, 130, 329, 137, + 568, 743, 329, 779, 779, 779, 779, 928, 22, 651, + 835, 8, 9, 649, 27, 329, 929, 930, 709, 649, + 836, 745, 39, 28, 299, 329, 715, 744, 329, 717, + 773, 655, 359, 685, 837, 729, 773, 847, 656, 415, + 770, 968, 653, 970, 474, 57, 126, 127, 974, 866, + 342, 90, 136, 931, 39, 33, 602, 206, 207, 39, + 329, 277, 881, 340, 129, 130, 362, 363, 364, 458, + 848, 91, 278, 352, 115, 116, 117, 850, 205, 761, + 652, 1097, 356, 1123, 384, 858, 90, 692, 852, 854, + 475, 654, 360, 8, 484, 867, 868, 491, 654, 129, + 130, 910, 521, 915, 916, 521, 91, 361, 962, 776, + 534, 173, 365, 858, 241, 372, 849, 1186, 1188, 205, + 366, 367, 521, 851, 121, 762, 649, 1200, 118, 119, + 649, 329, 987, -268, 1117, 521, 975, 284, 343, 803, + 1354, 276, 1359, 90, 916, 193, 129, 130, 1119, 228, + 446, 447, 126, 127, 963, 936, 405, 482, 605, 205, + 651, 406, 649, 91, -584, 825, -7, 651, 649, 1121, + 485, 842, 126, 127, 100, 414, 1402, 935, 988, 899, + 1118, 205, 976, 114, 429, 1496, 153, 153, 153, 199, + 200, 652, 1480, 417, 1120, 14, 993, 1173, 1174, 1175, + 454, 455, 654, 27, 430, 129, 130, 1188, 649, 729, + -102, 487, 15, 16, 488, 1122, 1266, 1268, 21, 492, + 489, 1272, 1403, 27, 217, 129, 130, 24, 490, 493, + 1060, 1497, 58, -545, 58, 649, -545, 774, 1513, 498, + 193, 58, 530, 71, -102, 71, 205, 649, -102, 652, + 329, 329, 71, 329, 737, 652, 737, 1375, 514, 515, + 654, 507, 1310, 737, 1196, 1197, 654, 1199, 743, 87, + 743, 651, 863, 992, 1002, 508, 743, 743, 126, 127, + 649, -102, 649, 368, -545, 509, -545, -545, 745, -545, + 745, 1148, 1149, 1150, 744, 510, 979, 745, 1015, 1016, + -545, 1017, -545, 744, 1490, 397, 511, 981, 982, 571, + 15, 16, 57, 616, 57, -385, 1010, 619, -545, -545, + 1510, 57, -545, 343, 779, 126, 127, 620, 1054, 651, + 637, 129, 130, 622, -545, 651, 237, 15, 16, 555, + 556, 88, 623, -385, -385, 1326, 1327, 624, -385, -123, + 1369, 7, 8, 231, 10, 485, 779, 281, 373, 374, + 10, 89, 652, 8, 9, 649, 692, 636, 530, 665, + 343, -6, 831, 654, 638, 852, 854, 654, 129, 130, + 464, 466, 446, 1419, 527, 1316, 528, 668, 1395, 832, + 22, 686, 477, 649, 241, 710, 22, 232, 652, 705, + 779, 329, 233, 232, 652, 28, 29, 643, 343, 654, + 755, 28, 299, 1102, 1103, 654, 129, 130, 833, 1191, + 454, 1420, 237, 446, 1424, -100, 756, 15, 16, 233, + 757, 993, 758, 765, 843, 151, 774, 33, 766, 1057, + 233, 783, 651, 33, 692, 675, 651, 94, 109, 110, + 1201, 625, 626, 627, 90, 654, 126, 127, 779, -100, + 785, 513, -124, -100, 329, 94, 109, 110, 476, 88, + 861, 652, 786, 521, 91, 151, 788, 1160, 651, 845, + 859, 1406, 654, 652, 651, 400, 403, 8, 9, 89, + 94, 95, 96, 1417, 654, 863, -100, 884, 885, 894, + 581, 111, 112, 618, 22, 895, 58, 27, 992, 129, + 130, 897, 628, 400, 403, 898, 652, 71, 652, 111, + 112, 514, 515, 582, 651, 618, 21, 654, 737, 654, + 237, 234, 343, 583, 905, 906, 343, 919, -271, 924, + 129, 130, 743, 584, 97, 98, 585, 586, 94, 95, + 96, 651, 209, 210, 211, 419, 942, 969, 329, 1162, + -791, 943, 745, 651, 485, 1164, 1165, 655, 744, 1162, + 1167, 1146, 1406, 1165, 1471, 88, 944, 90, 950, 960, + 964, 971, 212, 1331, 1028, 1332, 57, 94, 109, 110, + 967, 1406, 94, 109, 110, 89, 651, 91, 651, 936, + 27, 652, 97, 98, 213, 1011, 1203, 965, 1536, 1029, + 1217, 1218, 654, 1030, 281, 373, 374, 10, 1493, 94, + 95, 96, 1253, 1031, 1012, 1248, 774, 718, 1032, 692, + 151, 151, 151, 71, 1033, 1034, 526, 88, 1217, 1218, + 654, 111, 112, 113, 1247, 1376, 111, 112, 1406, 1035, + 214, 215, 216, 22, 1036, 153, 677, 89, 151, 151, + 151, 126, 127, 126, 1297, 58, 27, 1037, 28, 299, + 196, 27, 204, 97, 98, 99, 71, 1038, 1252, 1043, + -122, 651, 1040, 1041, 319, 1044, 319, 737, 319, 115, + 116, 117, 796, 1045, 1046, 153, 1047, 486, 649, 1059, + 33, 743, 57, 1353, 1048, 1353, 1049, 1062, 343, 651, + 1063, 1061, 27, 1064, 129, 130, 129, 130, 1070, 1071, + 205, 745, 115, 719, 720, 1072, 721, 744, 492, 1116, + 1080, 1081, 1139, 319, 844, 319, 521, 1078, 493, 1083, + 485, 27, 1253, 118, 119, 57, 1093, 193, 1090, 1253, + 722, 1096, 1248, 71, 1145, 1163, 1253, 723, 1168, 1248, + 71, 491, 1459, 1172, 1247, 779, 1176, 71, 1181, 1182, + 1183, 1247, 1184, 1189, 27, 1202, 118, 119, 1247, 1198, + 416, 1193, 1194, 1306, 1307, 1308, 1309, 7, 126, 127, + 10, 15, 16, 1312, 1204, 1205, -385, 1206, 1252, 1213, + 1209, 901, 400, 403, 1210, 1252, 1216, 204, 1124, 1221, + 514, 515, 1252, 918, 1265, 459, 204, 552, 553, 554, + 555, 556, 57, 1274, -385, -385, 22, 1275, 1278, 57, + 426, 1282, -626, 232, 1304, 1305, 57, 1315, 1311, 796, + 1314, 28, 29, 1320, 1343, 1321, 1323, 115, 719, 720, + 153, 153, 153, 1322, 1155, 1156, 198, 199, 200, 1330, + 1378, 1379, 1339, 14, 1340, 233, 94, 109, 110, 1341, + 209, 210, 211, 33, 1349, 722, 1351, 1364, 153, 153, + 153, 19, 1367, 1169, 151, 1409, 21, 1410, 362, 363, + 364, 1391, 966, 1392, 1414, 24, 1474, 512, 1443, 27, + 212, 118, 119, 1253, 1253, 1443, 1248, 1393, 1253, 278, + 205, 1248, 8, 9, 71, 71, 278, 1394, 329, 71, + 111, 112, 1396, 1398, 456, 1247, 1247, 703, 704, 1416, + 1247, 1418, 1439, 1013, 652, 319, 94, 95, 96, 1018, + 27, 1253, 366, 367, 1248, 654, 1415, 151, 151, 151, + 1253, 1447, 71, 1248, 1457, 1465, 1467, 343, 1473, 1252, + 1252, 71, 1482, 1247, 1252, 129, 130, 1504, 1483, 1491, + 1492, 1508, 1247, 1515, 1516, 1519, 1443, 1522, 276, 1524, + 1525, 1529, 1533, 57, 57, 276, 1537, 278, 57, 1538, + 97, 98, 126, 127, 115, 719, 720, 1252, 1253, 1540, + 1545, 1248, 1546, 196, 204, 1441, 1252, 1548, 1549, 71, + 1, 803, 1441, 670, 651, 634, 5, 1099, 1003, 1222, + 1247, 57, 412, 680, 684, 521, 281, 8, 9, 10, + 57, 684, 339, 128, 1285, 1286, 1253, 1295, 1296, 1248, + 1298, 1494, 1073, 27, 1074, 129, 130, 71, 118, 119, + 1489, 413, 628, 393, 1252, 1405, 276, 1544, 1247, 416, + 497, 557, 901, 1356, 1092, 22, 459, 204, 941, 468, + 416, 1091, 232, 1276, 459, 1151, 1170, 1005, 57, 1299, + 28, 299, 887, 1441, 457, 199, 200, 416, 1089, 830, + 449, 14, 1252, 370, 319, 684, 578, 1362, 1262, 1514, + 558, 559, 1523, 1511, 153, 560, 561, 562, 563, 19, + 1486, 1528, 33, 150, 21, 1530, 57, 1138, 1368, 0, + 0, 1527, 0, 24, 0, 0, 0, 319, 803, 680, + 0, 0, 800, 801, 0, 805, 806, 807, 808, 809, + 810, 811, 812, 813, 814, 815, 816, 817, 818, 819, + 820, 821, 822, 823, 0, 0, 1372, 1373, 0, 684, + 0, 684, 684, 0, 0, 0, 0, 153, 153, 153, + 0, 0, 0, 0, 0, 732, 0, 7, 8, 733, + 10, 386, 12, 13, 0, 198, 199, 200, 14, 684, + 126, 127, 14, 0, 0, 13, 684, 0, 0, 0, + 1177, 1187, 1179, 17, 0, 18, 19, 20, 0, 0, + 19, 21, -492, 0, 0, 21, 22, 889, 891, 0, + 24, 734, 0, 642, 24, 204, 401, 404, 0, 27, + 0, 28, 29, 319, 581, 735, 0, 736, 239, 659, + 0, 27, 0, 129, 130, 31, 682, 0, 0, 0, + 1431, 1432, 1433, 682, 0, 32, 1208, 582, 150, 0, + 0, 0, 239, 33, 196, 0, 204, 583, 34, 550, + 551, 552, 553, 554, 555, 556, 680, 584, 0, 0, + 585, 586, 0, 0, 1227, -492, 0, 0, 8, 9, + 1187, 239, 12, 13, 0, 0, 0, 79, 14, 0, + 239, 0, 1461, 1462, 0, 0, 204, 103, 0, 0, + 0, 0, 0, 17, 0, 18, 0, 682, 132, 0, + 0, 21, 0, 0, 141, 141, 0, 141, 459, 79, + 24, 416, 1277, 977, 79, 0, 0, 1281, 0, 27, + 0, 129, 130, 564, 0, 0, 239, 187, 0, 79, + 0, 0, 319, 319, 0, 319, 0, 220, 0, 196, + 600, 8, 9, 0, 103, 416, 0, 1512, 0, 0, + 684, 0, 0, 0, 0, 243, 103, 0, 565, 239, + 0, 682, 0, 682, 682, 0, 0, 1317, 523, 0, + 0, 0, 1039, 0, 0, 0, 289, 601, 103, 22, + 0, 0, 239, 1345, 0, 0, 989, 990, 9, 10, + 0, 682, 27, 0, 129, 130, 0, 0, 682, 0, + 0, 132, 0, 0, 0, 0, 132, -277, 79, 680, + 684, 0, 141, 0, 0, 395, 141, 0, 0, 141, + 141, 141, -277, -277, 684, 22, 684, -277, 684, 0, + 0, 0, 0, 79, 0, 0, 0, 0, 27, 0, + 28, 29, 0, -277, 1154, 0, 991, 0, 0, 0, + 187, 187, 187, 0, 177, -277, -277, 0, -277, 0, + -277, 1088, 1387, 1388, 178, 0, 1401, 0, 0, 0, + 0, 684, 33, 239, 0, 0, 0, 179, 1397, 187, + 0, 0, 0, 319, 198, 199, 200, 0, 0, -277, + -277, 14, 683, -277, 467, 0, 1111, 0, 0, 690, + 401, 404, 103, 0, 0, -277, 0, 0, 684, 19, + 0, 0, 0, 141, 21, 0, 0, 0, 0, 7, + 8, 9, 10, 24, 0, 13, 684, 0, 0, 0, + 1427, 1428, 0, 0, 239, 0, 0, 0, 882, 548, + 549, 550, 551, 552, 553, 554, 555, 556, 0, 1437, + 1438, 103, 494, 0, 0, 0, 0, 0, 22, 523, + 0, 0, 523, 771, 581, 0, 0, 0, 1161, 0, + 0, 27, 682, 28, 29, 416, 416, 0, 401, 784, + 0, 587, 587, 587, 0, 0, 0, 907, 0, 0, + 0, 0, 523, 0, 0, 103, 0, 908, 0, 579, + 0, 494, 494, 595, 416, 33, 239, 584, 0, 0, + 909, 586, 79, 0, 0, 0, 0, 680, 680, 0, + 0, 1190, 0, 0, 0, 0, 0, 824, 132, 826, + 827, 0, 682, 239, 7, 8, 9, 10, 0, 0, + 319, 0, 0, 0, 0, 0, 682, 0, 682, 0, + 682, 874, 132, 0, 0, 0, 0, 0, 103, 0, + 0, 187, 103, 0, 878, 0, 0, 0, 0, 0, + 0, 0, 141, 22, 0, 141, 0, 0, 0, 581, + 141, 0, 0, 0, 0, 0, 27, 0, 28, 29, + 0, 0, 0, 682, 0, 684, 0, 684, 0, 684, + 0, 0, 907, 0, 0, 0, 0, 680, 0, 187, + 0, 187, 908, 187, 187, 187, 680, 680, 239, 187, + 33, 680, 584, 0, 187, 909, 586, 187, 0, 0, + 682, 0, 0, 0, 239, 0, 1283, 1284, 0, 0, + 0, 0, 0, 79, 0, 0, 0, 0, 682, 0, + 0, 0, 0, 0, 0, 416, 416, 0, 416, 416, + 0, 416, 680, 0, 732, 0, 7, 8, 733, 10, + 386, 12, 13, 0, 0, 0, 0, 14, 0, 0, + 0, 103, 103, 103, 103, 0, 0, 0, 0, 0, + 0, 684, 17, 0, 18, 19, 20, 0, 0, 0, + 21, -493, 0, 0, 0, 22, 0, 0, 0, 24, + 734, 0, 642, 0, 0, 1338, 0, 0, 27, 0, + 28, 29, 0, 0, 735, 0, 736, 0, 0, 0, + 0, 0, 874, 0, 31, 587, 587, 0, 587, 103, + 0, 494, 0, 0, 32, 873, 196, 204, 0, 0, + 680, 0, 33, 579, 0, 494, 494, 34, 595, 0, + 0, 0, 0, 0, 0, 875, 1377, 0, 0, 877, + 0, 0, 0, 0, -493, 0, 0, 416, 416, 0, + 0, 0, 0, 187, 0, 0, 0, 0, 680, 7, + 126, 127, 10, 0, 0, 13, 0, 0, 1053, 0, + 0, 0, 587, 0, 587, 587, 572, 587, 281, 373, + 374, 10, 1065, 573, 1066, 0, 1067, 682, 0, 682, + 0, 682, 187, 914, 187, 187, 220, 595, 22, 401, + 784, 0, 0, 0, 0, 684, 0, 0, 0, 0, + 0, 27, 0, 28, 29, 587, 0, 22, 0, 0, + 0, 0, 1429, 1430, 574, 0, 0, 31, 0, 1095, + 27, 1435, 28, 299, 0, 187, 0, 32, 150, 914, + 0, 416, 416, 416, 0, 33, 187, 187, 0, 187, + 34, 0, 0, 0, 0, 0, 0, 0, 1454, 0, + 0, 0, 0, 0, 575, 0, 1114, 0, 349, 351, + 0, 0, 0, 0, 0, 0, 0, 132, 1136, 0, + 79, 0, 79, 682, 239, 0, 239, 1000, 79, 79, + 0, 0, 0, 416, 416, 0, 0, 103, 0, 0, + 0, 0, 587, 103, 0, 7, 8, 9, 10, 0, + 494, 494, 494, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 494, 239, 0, 0, 0, 0, 8, 9, + 0, 386, 12, 13, 0, 0, 688, 0, 14, 0, + 0, 0, 0, 0, 22, 0, 0, 989, 990, 9, + 10, 0, 0, 17, 0, 18, 19, 27, 416, 28, + 29, 21, 0, 176, 0, 0, 0, 0, 0, 0, + 24, 0, 103, 177, 0, 587, 0, 587, 680, 27, + 0, 129, 130, 178, 0, 0, 22, 0, 587, 0, + 0, 33, 873, 873, 873, 494, 179, 494, 0, 27, + 0, 28, 29, 0, 103, 0, 0, 991, 494, 239, + 103, 0, 875, 875, 875, 177, 0, 0, 0, 1082, + 0, 0, 689, 0, 0, 178, 0, 682, 0, 0, + 587, 587, 587, 33, 401, 404, 126, 127, 179, 0, + 0, 227, 0, 0, 0, 0, 103, 0, 103, 82, + 187, 187, 1108, 1223, 0, 1224, 0, 1225, 0, 105, + 0, 0, 401, 1264, 0, 0, 0, 0, 0, 125, + 133, 525, 873, 0, 0, 0, 142, 142, 0, 142, + 581, 82, 0, 0, 0, 0, 82, 27, 0, 129, + 130, 239, 1108, 0, 0, 0, 0, 0, 0, 142, + 0, 82, 0, 582, 0, 0, 103, 0, 0, 221, + 0, 0, 0, 583, 0, 0, 229, 239, 0, 103, + 0, 0, 1000, 584, 0, 0, 585, 586, 229, 0, + 0, 103, 281, 126, 127, 10, 0, 0, 0, 0, + 0, 0, 0, 0, 1166, 0, 0, 648, 0, 1319, + 0, 0, 0, 0, 79, 0, 0, 0, 7, 8, + 9, 10, 0, 0, 103, 0, 103, 0, 0, 0, + 0, 22, 0, 379, 0, 239, 0, 0, 232, 0, + 82, 590, 594, 597, 142, 0, 28, 299, 142, 0, + 0, 142, 142, 142, 0, 0, 691, 22, 494, 494, + 0, 494, 0, 0, 232, 82, 0, 0, 0, 0, + 8, 9, 28, 29, 12, 13, 0, 0, 33, 0, + 14, 0, 142, 142, 142, 587, 587, 587, 587, 587, + 0, 0, 0, 587, 0, 17, 233, 18, 0, 0, + 0, 0, 0, 21, 33, 187, 187, 187, 187, 1108, + 0, 142, 24, 187, 0, 873, 873, 873, 0, 0, + 0, 27, 772, 129, 130, 775, 0, 0, 0, 777, + 778, 780, 781, 782, 0, 1108, 1108, 1108, 7, 126, + 127, 10, 525, 0, 227, 142, 0, 1136, 0, 0, + 7, 8, 9, 10, 0, 799, 227, 0, 0, 0, + 829, 0, 0, 0, 0, 0, 187, 0, 0, 0, + 0, 141, 0, 79, 0, 0, 0, 22, 0, 0, + 0, 0, 0, 229, 142, 0, 0, 828, 0, 22, + 27, 0, 28, 29, 0, 581, 0, 0, 0, 0, + 587, 587, 27, 587, 28, 29, 31, 856, 0, 0, + 0, 401, 1264, 0, 856, 0, 32, 0, 907, 0, + 187, 187, 0, 187, 33, 0, 0, 229, 908, 34, + 0, 580, 0, 142, 142, 596, 33, 0, 584, 0, + 604, 909, 586, 0, 82, 7, 126, 127, 10, 0, + 0, 13, 0, 0, 187, 914, 187, 0, 0, 0, + 379, 0, 281, 8, 9, 10, 0, 0, 0, 0, + 0, 0, 0, 103, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 22, 0, 0, 0, 0, 0, + 229, 0, 75, 142, 229, 853, 855, 27, 0, 28, + 29, 22, 0, 0, 142, 0, 0, 142, 232, 0, + 0, 0, 142, 146, 0, 0, 28, 299, 648, 140, + 144, 0, 0, 147, 75, 0, 0, 0, 0, 75, + 0, 33, 281, 8, 9, 10, 148, 0, 0, 0, + 233, 142, 0, 142, 197, 142, 142, 142, 33, 0, + 0, 142, 7, 8, 9, 10, 142, 0, 13, 142, + 0, 1108, 912, 0, 590, 594, 0, 597, 0, 0, + 0, 22, 0, 0, 731, 82, 691, 0, 232, 0, + 0, 0, 691, 0, 0, 0, 28, 299, 0, 0, + 0, 22, 0, 0, 0, 0, 0, 581, 0, 0, + 0, 0, 0, 0, 27, 594, 28, 29, 0, 0, + 485, 0, 0, 229, 229, 229, 229, 0, 33, 0, + 1104, 0, 0, 391, 1108, 1108, 1108, 394, 0, 0, + 1105, 396, 0, 0, 0, 0, 0, 0, 33, 0, + 584, 0, 103, 1106, 586, 0, 0, 187, 75, 0, + 6, 1050, 7, 8, 9, 10, 11, 12, 13, 0, + 0, 0, 0, 14, 0, 140, 144, 0, 0, 0, + 0, 229, 0, 142, 0, 0, 15, 16, 17, 0, + 18, 19, 20, 799, 0, 0, 21, 142, 142, 691, + 596, 22, 594, 856, 23, 24, 25, 876, 26, 0, + 0, 0, 0, 0, 27, 0, 28, 29, 0, 604, + 30, 0, 0, 0, 0, 142, 0, 0, 0, 0, + 31, 1287, 1288, 9, 10, 648, 0, 1100, 483, 0, + 32, 856, 0, 0, 0, 0, 0, 0, 33, 0, + 0, 0, 0, 34, 0, 0, 125, 0, 0, 35, + 0, 0, 0, 0, 142, 596, 142, 142, 221, 596, + 22, 0, 0, 0, 0, 1068, 0, 1069, 0, 0, + 0, 856, 0, 27, 0, 28, 29, 731, 1075, 0, + 0, 1289, 853, 855, 0, 1141, 0, 0, 0, 177, + 0, 1147, 0, 0, 0, 0, 0, 142, 691, 178, + 0, 596, 0, 0, 0, 0, 0, 33, 142, 142, + 691, 142, 179, 0, 0, 0, 0, 0, 0, 0, + 853, 855, 0, 0, 0, 0, 0, 612, 7, 8, + 9, 10, 0, 0, 13, 0, 0, 0, 0, 133, + 0, 0, 82, 691, 82, 691, 0, 0, 0, 1001, + 82, 82, 0, 0, 0, 0, 0, 0, 0, 229, + 0, 0, 0, 0, 0, 229, 0, 22, 0, 0, + 0, 0, 142, 142, 142, 0, 0, 0, 0, 0, + 27, 0, 28, 29, 142, 0, 0, 663, 0, 0, + 664, 0, 0, 0, 0, 666, 177, 0, 0, 7, + 8, 9, 10, 0, 0, 482, 178, 0, 437, 439, + 443, 0, 0, 50, 33, 0, 0, 0, 0, 179, + 0, 0, 0, 0, 394, 0, 396, 0, 856, 0, + 0, 0, 0, 0, 229, 0, 0, 0, 22, 483, + 50, 50, 0, 149, 581, 50, 0, 0, 0, 0, + 50, 27, 0, 28, 29, 0, 856, 142, 749, 142, + 0, 0, 0, 50, 0, 50, 229, 907, 0, 0, + 142, 0, 229, 0, 876, 876, 876, 908, 0, 0, + 0, 604, 0, 0, 0, 33, 0, 584, 235, 0, + 909, 586, 541, 542, 543, 544, 545, 546, 547, 548, + 549, 550, 551, 552, 553, 554, 555, 556, 229, 0, + 229, 0, 142, 142, 596, 1068, 1069, 853, 855, 0, + 0, 0, 0, 1075, 544, 545, 546, 547, 548, 549, + 550, 551, 552, 553, 554, 555, 556, 376, 0, 0, + 0, 376, 376, 0, 50, 853, 855, 0, 50, 0, + 235, 0, 50, 0, 876, 149, 149, 149, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 229, 50, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 731, + 0, 229, 0, 0, 1001, 0, 50, 50, 149, 0, + 0, 0, 1141, 229, 0, 0, 235, 0, 0, 126, + 127, 0, 0, 199, 200, 0, 0, 0, 0, 14, + 0, 0, 0, 0, 0, 50, 82, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 229, 0, 229, 0, + 1068, 1069, 21, 1075, 0, 0, 0, 0, 913, 0, + 0, 24, 0, 581, 0, 0, 0, 0, 0, 50, + 27, 0, 129, 130, 0, 0, 0, 0, 0, 0, + 142, 142, 0, 142, 0, 0, 582, 701, 0, 702, + 0, 437, 439, 443, 0, 0, 583, 0, 0, 0, + 0, 0, 713, 0, 956, 0, 584, 0, 0, 592, + 586, 663, 664, 0, 666, 545, 546, 547, 548, 549, + 550, 551, 552, 553, 554, 555, 556, 142, 142, 142, + 142, 596, 0, 0, 0, 142, 0, 0, 522, 0, + 0, 731, 0, 0, 0, 749, 0, 749, 0, 0, + 0, 0, 999, 1006, 749, 376, 0, 876, 876, 876, + 0, 0, 0, 235, 0, 525, 0, 0, 50, 0, + 0, 0, 0, 731, 0, 0, 0, 0, 0, 0, + 0, 648, 0, 0, 376, 0, 0, 0, 142, 0, + 0, 0, 0, 142, 0, 82, 7, 8, 9, 10, + 386, 12, 13, 0, 0, 688, 0, 14, 376, 0, + 0, 0, 0, 0, 0, 0, 0, 50, 0, 0, + 0, 0, 17, 0, 18, 19, 0, 0, 50, 0, + 21, 50, 0, 0, 0, 22, 50, 0, 0, 24, + 0, 581, 142, 142, 0, 142, 0, 0, 27, 0, + 28, 29, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1104, 50, 0, 50, 0, 149, + 149, 149, 0, 0, 1105, 50, 142, 596, 142, 0, + 50, 77, 33, 50, 584, 0, 0, 1106, 586, 0, + 0, 689, 0, 0, 0, 229, 0, 0, 0, 50, + 0, 0, 0, 0, 0, 0, 0, 0, 77, 77, + 0, 77, 0, 77, 0, 140, 144, 0, 77, 0, + 7, 126, 127, 10, 0, 0, 482, 0, 0, 522, + 0, 77, 522, 77, 0, 0, 0, 0, 0, 0, + 8, 9, 0, 0, 12, 227, 0, 522, 522, 522, + 14, 0, 0, 0, 701, 702, 0, 713, 0, 22, + 0, 0, 522, 0, 0, 17, 0, 18, 0, 0, + 0, 0, 27, 21, 28, 29, 0, 0, 240, 0, + 0, 0, 24, 876, 581, 0, 0, 999, 31, 0, + 0, 27, 0, 129, 130, 998, 0, 0, 32, 126, + 127, 0, 0, 199, 200, 0, 33, 582, 235, 14, + 0, 34, 77, 0, 0, 0, 77, 583, 0, 749, + 77, 522, 0, 77, 77, 77, 0, 584, 0, 0, + 585, 586, 21, 0, 0, 0, 0, 77, 0, 50, + 0, 24, 0, 581, 0, 0, 876, 876, 876, 0, + 27, 407, 129, 130, 77, 77, 77, 0, 0, 0, + 0, 0, 0, 0, 229, 0, 582, 0, 0, 142, + 0, 0, 435, 0, 0, 0, 583, 0, 50, 50, + 50, 50, 0, 77, 0, 451, 584, 8, 9, 585, + 586, 12, 227, 0, 0, 0, 0, 14, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 394, 396, 17, 0, 18, 0, 0, 77, 483, 0, + 21, 50, 0, 0, 0, 50, 0, 0, 0, 24, + 0, 0, 50, 50, 0, 50, 0, 0, 27, 0, + 129, 130, 0, 0, 0, 0, 0, 0, 0, 732, + 0, 7, 8, 733, 10, 386, 12, 13, 437, 439, + 443, 0, 14, 0, 0, 0, 50, 0, 50, 0, + 0, 1294, 0, 50, 50, 50, 1294, 17, 749, 18, + 19, 20, 0, 0, 0, 21, -495, 0, 0, 0, + 22, 0, 0, 0, 24, 734, 0, 642, 0, 0, + 443, 0, 522, 27, 0, 28, 29, 0, 0, 735, + 0, 736, 603, 0, 0, 0, 77, 0, 0, 31, + 0, 0, 0, 0, 0, 663, 664, 0, 666, 32, + 998, 0, 0, 0, 0, 0, 0, 33, 7, 8, + 9, 10, 34, 0, 227, 543, 544, 545, 546, 547, + 548, 549, 550, 551, 552, 553, 554, 555, 556, -495, + 1357, 0, 0, 0, 0, 77, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 77, 22, 0, 77, + 0, 0, 0, 0, 77, 0, 0, 0, 0, 0, + 27, 0, 28, 29, 0, 0, 0, 0, 522, 522, + 522, 0, 0, 0, 235, 0, 177, 0, 0, 0, + 0, 0, 0, 77, 0, 77, 178, 77, 77, 77, + 0, 0, 0, 77, 33, 0, 0, 0, 77, 179, + 0, 77, 154, 0, 0, 0, 50, 50, 149, 0, + 0, 706, 0, 235, 0, 0, 712, 77, 0, 0, + 0, 0, 188, 701, 702, 437, 439, 443, 0, 0, + 0, 713, 0, 0, 7, 8, 9, 10, 198, 199, + 200, 753, 0, 0, 0, 14, 0, 759, 1135, 0, + 0, 0, 0, 437, 439, 443, 0, 0, 0, 767, + 768, 0, 769, 19, 0, 0, 0, 0, 21, 0, + 0, 0, 0, 22, 0, 0, 0, 24, 50, 581, + 1287, 126, 127, 10, 1293, 0, 27, 0, 28, 29, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 235, + 0, 0, 907, 0, 0, 0, 0, 0, 0, 0, + 50, 0, 908, 0, 154, 154, 154, 0, 0, 22, + 33, 0, 584, 0, 0, 909, 586, 603, 0, 0, + 0, 0, 27, 0, 28, 29, 0, 0, 701, 702, + 1289, 713, 0, 0, 0, 188, 188, 444, 31, 0, + 0, 0, 0, 0, 0, 864, 865, 77, 32, 0, + 864, 0, 0, 0, 0, 0, 33, 0, 0, 0, + 0, 34, 0, 0, 188, 0, 0, 0, 0, 0, + 0, 235, 0, 0, 0, 0, 7, 8, 9, 10, + 0, 0, 13, 0, 0, 0, 77, 77, 77, 77, 0, 50, 50, 149, 149, 149, 0, 235, 0, 50, - 0, 0, 0, 0, 7, 8, 9, 10, 0, 0, - 13, 0, 0, 1215, 977, 0, 1130, 1130, 1130, 77, - 0, 77, 0, 0, 0, 0, 77, 77, 77, 0, - 0, 0, 0, 319, 319, 0, 319, 154, 154, 154, - 0, 0, 0, 22, 0, 0, 0, 50, 0, 581, - 0, 684, 50, 0, 50, 0, 27, 0, 28, 29, - 0, 0, 0, 0, 0, 0, 0, 0, 188, 188, - 444, 1267, 1104, 1039, 0, 1268, 0, 0, 0, 0, - 0, 0, 1105, 0, 0, 7, 8, 9, 10, 0, - 33, 13, 584, 0, 0, 1106, 586, 188, 0, 0, - 0, 50, 50, 0, 50, 0, 0, 0, 1283, 0, - 680, 684, 0, 0, 0, 590, 594, 597, 0, 0, - 0, 0, 0, 0, 22, 684, 0, 684, 0, 684, - 0, 0, 0, 0, 0, 0, 0, 27, 0, 28, - 29, 0, 0, 0, 0, 0, 0, 1331, 0, 0, - 0, 1332, 0, 440, 0, 0, 0, 0, 603, 0, - 0, 0, 1088, 441, 0, 0, 0, 0, 0, 0, - 495, 33, 684, 1350, 1351, 0, 442, 0, 0, 0, - 0, 0, 0, 0, 319, 0, 0, 0, 0, 77, - 77, 77, 0, 0, 0, 0, 0, 1111, 0, 0, - 0, 0, 0, 0, 0, 50, 50, 50, 0, 684, - 732, 0, 7, 8, 733, 10, 386, 12, 13, 589, - 589, 589, 0, 14, 0, 0, 0, 684, 0, 0, - 0, 1132, 0, 0, 0, 0, 0, 0, 17, 0, - 18, 19, 20, 0, 0, 0, 21, -495, 0, 0, - 0, 22, 0, 0, 0, 24, 734, 0, 642, 0, - 0, 77, 0, 0, 27, 0, 28, 29, 0, 1156, - 735, 0, 736, 0, 0, 0, 0, 0, 0, 188, - 31, 0, 0, 1130, 0, 0, 0, 0, 0, 0, - 32, 0, 0, 77, 0, 0, 0, 0, 33, 0, - 0, 0, 0, 34, 7, 8, 9, 10, 0, 0, - 482, 7, 126, 127, 10, 0, 0, 0, 680, 680, - -495, 0, 1185, 1130, 1130, 1130, 0, 188, 0, 188, - 0, 444, 444, 444, 0, 0, 0, 188, 0, 0, - 0, 319, 188, 22, 0, 188, 0, 0, 0, 0, - 22, 0, 0, 50, 0, 0, 27, 0, 28, 29, - 0, 0, 0, 27, 0, 28, 29, 0, 0, 853, - 855, 0, 177, 0, 0, 0, 0, 0, 0, 146, - 0, 0, 178, 0, 77, 77, 77, 77, 77, 147, - 33, 75, 77, 0, 0, 179, 684, 33, 684, 0, - 684, 0, 148, 680, 0, 0, 0, 0, 0, 1132, - 1132, 1132, 680, 680, 0, 0, 0, 680, 140, 144, - 0, 0, 0, 75, 0, 0, 0, 0, 75, 0, - 0, 0, 1248, 1249, 0, 0, 912, 0, 590, 594, - 77, 597, 0, 197, 0, 77, 0, 77, 0, 0, - 7, 8, 9, 10, 0, 0, 0, 0, 680, 838, - 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, - 555, 556, 0, 589, 589, 0, 589, 0, 0, 594, - 0, 0, 0, 589, 0, 0, 0, 684, 0, 22, - 0, 0, 0, 0, 77, 77, 0, 77, 0, 0, - 0, 188, 27, 0, 28, 29, 0, 0, 1388, 0, - 0, 0, 0, 0, 0, 0, 680, 0, 177, 0, - 0, 186, 391, 0, 0, 0, 394, 0, 178, 0, - 396, 0, 1338, 0, 8, 9, 33, 0, 12, 227, - 911, 179, 911, 911, 14, 589, 238, 75, 0, 242, - 0, 0, 0, 0, 680, 0, 0, 0, 0, 17, - 0, 18, 0, 0, 140, 144, 594, 21, 0, 0, - 238, 0, 345, 0, 0, 0, 24, 0, 581, 0, - 0, 1374, 0, 911, 0, 27, 0, 129, 130, 0, - 0, 0, 0, 0, 188, 188, 0, 188, 77, 77, - 77, 582, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 583, 0, 0, 1405, 1406, 0, 0, 0, 0, - 0, 584, 0, 1411, 585, 586, 0, 483, 0, 7, - 8, 9, 10, 0, 0, 188, 0, 0, 0, 1068, - 0, 1069, 0, 0, 186, 186, 186, 0, 0, 0, - 0, 0, 1075, 0, 450, 0, 853, 855, 495, 495, - 495, 0, 0, 0, 0, 0, 0, 0, 22, 0, - 589, 0, 684, 186, 0, 0, 1132, 0, 0, 0, - 0, 27, 0, 28, 29, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 853, 855, 242, 440, 0, 0, - 0, 0, 1465, 0, 0, 0, 0, 441, 0, 0, - 238, 0, 0, 0, 0, 33, 1132, 1132, 1132, 0, - 442, 0, 0, 0, 0, 0, 612, 6, 0, 7, - 8, 9, 10, 11, 12, 13, 0, 0, 0, 0, - 14, 0, 0, 589, 0, 589, 77, 0, 0, 0, - 0, 0, 0, 15, 16, 17, 589, 18, 19, 20, - 589, 589, 589, 21, 0, 0, 0, 0, 22, 0, - 0, 23, 24, 25, 0, 26, 0, 0, 0, 0, - 0, 27, 0, 28, 29, 0, 663, 30, 0, 664, - 0, 0, 0, 0, 666, 0, 0, 31, 911, 911, - 1109, 238, 242, 0, 0, 0, 6, 32, 7, 8, - 9, 10, 11, 12, 13, 33, 0, 0, 0, 14, - 34, 0, 0, 394, 680, 396, 35, 0, 0, 0, - 0, 0, 0, 0, 17, 0, 18, 19, 483, 0, - 1109, 0, 21, 0, 0, 0, 0, 22, 0, 0, - 0, 24, 0, 0, 411, 186, 0, 749, 0, 0, - 27, 0, 28, 29, 0, 0, 30, 0, 0, 0, - 188, 0, 0, 0, 0, 0, 31, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 32, 0, 0, 1068, - 1069, 853, 855, 0, 33, 0, 0, 1075, 0, 34, - 0, 0, 0, 186, 0, 186, 0, 186, 186, 186, - 0, 0, 0, 186, 853, 855, 0, 0, 186, 0, - 0, 186, 0, 0, 0, 0, 0, 0, 732, 0, - 7, 8, 733, 10, 386, 12, 13, 0, 0, 0, - 0, 14, 0, 0, 0, 0, 838, 838, 0, 838, - 0, 0, 0, 0, 0, 0, 17, 0, 18, 19, - 20, 0, 0, 0, 21, -494, 0, 0, 0, 22, - 0, 0, 0, 24, 734, 0, 642, 0, 0, 0, - 0, 0, 27, 0, 28, 29, 0, 0, 735, 0, - 736, 0, 0, 911, 911, 1109, 1109, 1109, 31, 1068, - 1069, 911, 1075, 0, 0, 0, 0, 0, 32, 0, - 0, 0, 0, 0, 0, 0, 33, 0, 1109, 1109, - 1109, 34, 126, 127, 0, 0, 0, 482, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 913, -494, 0, - 0, 0, 0, 0, 0, 0, 0, 101, 0, 188, - 0, 0, 0, 0, 0, 0, 0, 120, 101, 0, - 0, 0, 238, 242, 101, 101, 581, 101, 0, 0, - 0, 0, 0, 27, 0, 129, 130, 186, 0, 0, - 0, 0, 0, 956, 0, 0, 0, 0, 0, 582, - 663, 664, 0, 666, 0, 0, 0, 219, 0, 583, - 0, 0, 19, 911, 911, 0, 911, 0, 0, 584, - 0, 0, 585, 586, 0, 0, 186, 0, 186, 186, - 0, 0, 0, 0, 749, 0, 749, 0, 0, 0, - 0, 999, 1006, 749, 535, 536, 537, 538, 539, 540, - 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, - 551, 552, 553, 554, 555, 556, 369, 0, 120, 186, - 0, 101, 0, 0, 0, 101, 101, 0, 0, 0, - 186, 186, 101, 186, 101, 101, 101, 0, 0, 101, - 101, 101, 0, 0, 0, 0, 0, 161, 0, 7, - 8, 9, 10, 11, 12, 13, 0, 0, 242, 0, - 14, 0, 0, 0, 0, 0, 0, 188, 0, 188, - 0, 186, 0, 15, 16, 17, 0, 18, 19, 20, - 0, 0, 0, 21, 0, 0, 0, 0, 22, 0, - 0, 23, 24, 25, 0, 26, 0, 7, 8, 9, - 10, 27, 0, 28, 29, 8, 9, 30, 0, 12, - 13, 0, 0, 465, 101, 14, 0, 31, 0, 0, - 0, 0, 7, 8, 9, 10, 0, 32, 482, 0, - 17, 0, 18, 101, 0, 33, 22, 0, 21, 0, - 34, 0, 0, 0, 0, 444, 35, 24, 0, 27, - 0, 28, 29, 0, 140, 144, 27, 0, 129, 130, - 0, 22, 0, 0, 0, 177, 0, 581, 0, 0, - 0, 0, 101, 0, 27, 178, 28, 29, 0, 0, - 0, 0, 0, 33, 0, 444, 444, 444, 179, 0, - 907, 0, 0, 0, 0, 829, 0, 0, 0, 0, - 908, 0, 238, 242, 238, 0, 0, 0, 33, 0, - 584, 0, 0, 909, 586, 188, 0, 0, 0, 101, - 0, 101, 101, 0, 0, 0, 999, 0, 8, 9, - 0, 386, 12, 13, 186, 186, 1107, 0, 14, 0, - 0, 238, 0, 0, 0, 0, 0, 0, 101, 0, - 0, 0, 0, 17, 0, 18, 19, 0, 749, 0, - 0, 21, 0, 0, 0, 0, 0, 0, 0, 0, - 641, 0, 101, 642, 0, 0, 1107, 0, 0, 27, - 0, 129, 130, 0, 0, 0, 0, 0, 101, 0, - 0, 0, 101, 0, 0, 101, 0, 0, 0, 0, - 101, 0, 0, 0, 0, 0, 186, 0, 0, 0, - 0, 0, 7, 8, 9, 10, 189, 12, 190, 0, - 0, 0, 0, 14, 0, 0, 0, 450, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 17, 0, - 18, 19, 0, 0, 0, 0, 21, 0, 0, 394, - 396, 22, 0, 0, 0, 24, 0, 483, 0, 0, - 101, 0, 724, 0, 27, 0, 28, 29, 0, 0, - 191, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 31, 0, 0, 0, 0, 0, 0, 101, 0, 0, - 32, 0, 0, 0, 0, 0, 0, 0, 33, 0, - 0, 0, 0, 34, 0, 1259, 0, 0, 0, 238, - 1259, 0, 749, 0, 7, 8, 9, 10, 386, 12, - 13, 0, 0, 955, 0, 14, 0, 0, 0, 186, - 186, 186, 186, 1107, 0, 1214, 0, 186, 0, 0, - 17, 0, 18, 19, 0, 0, 0, 0, 21, 0, - 0, 0, 0, 22, 1107, 1107, 1107, 24, 0, 663, - 664, 101, 666, 0, 0, 0, 27, 0, 28, 29, - 0, 0, 101, 101, 0, 101, 101, 0, 0, 0, - 0, 0, 31, 0, 0, 186, 0, 0, 0, 0, - 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, - 33, 0, 0, 0, 0, 34, 540, 541, 542, 543, - 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, - 554, 555, 556, 0, 0, 1344, 0, -449, -449, -449, - -449, -449, -449, -449, 120, 0, -449, 0, -449, 186, - 186, 0, 186, 0, 0, 0, 219, 0, 0, -449, - 0, -449, -449, 0, 0, 0, -449, 0, 0, 0, - 0, -449, 0, 0, 1393, 724, -449, 0, 0, 0, - -449, 0, -449, 0, 0, 0, 0, 0, 0, -449, - 0, -449, -449, -449, -449, -449, 0, -449, -449, -449, - -449, -449, -449, -449, -449, -449, -449, -449, -449, -449, - -449, -449, -449, -449, -449, -449, -449, -449, -449, -449, - 0, -449, -449, -449, 0, -449, -449, -449, -449, -449, - -449, 0, -449, -449, 724, 0, 0, 101, 1345, 0, - 0, 0, 0, -449, -449, -449, 0, -449, 0, 0, - 0, 0, 0, 186, 0, 186, 517, 0, 281, 8, - 9, 10, 386, 12, 282, 283, 284, 688, 285, 14, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 7, 8, 9, 10, 22, 0, 482, 0, 0, + 0, 1135, 1135, 1135, 0, 0, 0, 0, 27, 77, + 28, 29, 0, 77, 0, 0, 0, 495, 0, 0, + 77, 77, 0, 77, 440, 0, 0, 0, 0, 0, + 22, 0, 50, 0, 441, 0, 0, 50, 0, 50, + 0, 0, 33, 27, 0, 28, 29, 442, 0, 443, + 0, 0, 126, 127, 77, 0, 77, 482, 0, 177, + 0, 77, 77, 77, 0, 0, 589, 589, 589, 178, + 0, 0, 0, 0, 0, 0, 186, 33, 7, 8, + 9, 10, 179, 0, 0, 0, 50, 50, 0, 50, + 0, 0, 0, 0, 0, 0, 581, 0, 1020, 0, + 1022, 238, 0, 27, 242, 129, 130, 0, 0, 0, + 0, 0, 437, 439, 443, 0, 0, 22, 0, 582, + 50, 50, 50, 0, 0, 238, 188, 345, 0, 583, + 27, 0, 28, 29, 0, 0, 1352, 0, 0, 584, + 0, 0, 585, 586, 0, 0, 177, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 178, 0, 0, 0, + 0, 0, 0, 0, 33, 0, 0, 0, 0, 179, + 0, 0, 1055, 1056, 188, 1058, 188, 0, 444, 444, + 444, 0, 0, 0, 188, 0, 0, 0, 0, 188, + 0, 0, 188, 603, 0, 0, 0, 0, 0, 186, + 186, 186, 0, 1076, 0, 0, 0, 0, 0, 450, + 8, 9, 0, 386, 12, 13, 0, 0, 688, 0, + 14, 0, 0, 0, 77, 77, 77, 1135, 186, 0, + 0, 7, 126, 127, 10, 17, 0, 18, 19, 0, + 0, 0, 0, 21, 0, 0, 0, 0, 1110, 0, + 0, 242, 24, 0, 581, 0, 0, 0, 0, 0, + 0, 27, 0, 129, 130, 238, 1137, 0, 0, 0, + 22, 0, 0, 0, 0, 0, 0, 582, 0, 0, + 0, 0, 0, 27, 0, 28, 29, 583, 0, 0, + 1135, 1135, 1135, 0, 0, 0, 77, 584, 0, 146, + 585, 586, 0, 0, 689, 0, 838, 0, 0, 147, + 0, 0, 1152, 50, 0, 0, 0, 33, 0, 0, + 589, 589, 148, 589, 1157, 0, 0, 0, 77, 0, + 589, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 8, 9, 0, 386, 12, 13, 0, 0, 188, 0, + 14, 0, 0, 0, 0, 0, 238, 242, 0, 0, + 0, 7, 8, 9, 10, 17, 0, 18, 19, 0, + 0, 0, 0, 21, 0, 0, 0, 0, 0, 0, + 0, 0, 641, 0, 0, 642, 0, 911, 0, 911, + 911, 27, 589, 129, 130, 0, 0, 0, 0, 0, + 22, 0, 0, 0, 0, 0, 0, 0, 1207, 0, + 186, 0, 0, 27, 0, 28, 29, 0, 0, 77, + 77, 77, 77, 77, 0, 0, 0, 77, 0, 440, + 911, 0, 0, 0, 0, 0, 0, 0, 0, 441, + 0, 188, 188, 0, 188, 0, 1220, 33, 0, 1137, + 1137, 1137, 442, 0, 0, 0, 0, 0, 186, 0, + 186, 0, 186, 186, 186, 0, 0, 0, 186, 0, + 0, 0, 0, 186, 0, 0, 186, 0, 0, 0, + 77, 0, 188, 0, 0, 77, 0, 77, 0, 0, + 0, 0, 0, 0, 0, 732, 0, 7, 8, 733, + 10, 386, 12, 13, 0, 495, 495, 495, 14, 1302, + 0, 0, 0, 1303, 0, 0, 0, 589, 0, 0, + 0, 0, 0, 17, 0, 18, 19, 20, 0, 0, + 0, 21, -494, 0, 77, 77, 22, 77, 0, 0, + 24, 734, 0, 642, 0, 0, 1318, 0, 0, 27, + 0, 28, 29, 0, 0, 735, 0, 736, 7, 8, + 9, 10, 0, 0, 0, 31, 0, 0, 77, 77, + 77, 0, 0, 0, 0, 32, 0, 0, 0, 0, + 0, 0, 0, 33, 0, 0, 0, 0, 34, 0, + 589, 0, 589, 0, 0, 0, 0, 22, 0, 0, + 0, 0, 0, 589, 0, -494, 0, 589, 589, 589, + 27, 0, 28, 29, 0, 1370, 0, 238, 242, 1371, + 0, 0, 0, 0, 0, 0, 177, 0, 0, 0, + 8, 9, 186, 386, 12, 13, 178, 0, 1470, 0, + 14, 1389, 1390, 0, 33, 911, 911, 1109, 0, 179, + 0, 0, 0, 0, 0, 17, 0, 18, 19, 0, + 0, 0, 0, 21, 0, 0, 0, 0, 0, 0, + 0, 186, 24, 186, 186, 1137, 0, 0, 0, 0, + 0, 27, 0, 129, 130, 0, 0, 1109, 0, 0, + 7, 8, 9, 10, 198, 199, 200, 0, 101, 0, + 0, 14, 0, 0, 0, 0, 0, 0, 120, 101, + 0, 0, 0, 0, 186, 101, 101, 188, 101, 19, + 0, 0, 0, 0, 21, 186, 186, 0, 186, 22, + 0, 0, 0, 24, 0, 581, 0, 0, 1137, 1137, + 1137, 0, 27, 0, 28, 29, 8, 9, 219, 189, + 12, 190, 0, 242, 0, 0, 14, 0, 907, 0, + 0, 77, 0, 0, 0, 0, 186, 0, 908, 0, + 0, 17, 0, 18, 19, 0, 33, 0, 584, 21, + 0, 949, 586, 0, 0, 0, 0, 0, 24, 0, + 0, 0, 0, 838, 838, 0, 838, 27, 0, 129, + 130, 0, 0, 0, 0, 0, 0, 369, 0, 120, + 0, 0, 101, 0, 0, 0, 101, 101, 0, 0, + 0, 0, 0, 101, 0, 101, 101, 101, 0, 0, 101, 101, 101, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 101, 0, 17, 286, 18, 19, 20, 0, - 287, 288, 21, 0, 289, 290, 291, 22, 292, 293, - 0, 24, 0, 581, 0, 294, 295, 296, 297, 298, - 27, 0, 28, 299, -285, 0, 0, 300, 0, 0, - 0, 0, 0, 301, 0, 0, 869, 0, 0, 0, - 0, 1107, 0, 0, 303, 304, 870, 0, 0, 0, - 0, 0, 306, 307, 308, 0, 584, 0, 0, 871, - 586, 0, 0, 689, 0, 101, 0, 101, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 310, 101, 0, - 0, 1107, 1107, 1107, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1396, 0, 1295, 1296, - 1297, 10, 386, 12, 282, 283, 284, 0, 285, 14, - 1298, 186, 1299, 1300, 1301, 1302, 1303, 1304, 1305, 1306, - 1307, 1308, 15, 16, 17, 286, 18, 19, 20, 0, - 287, 288, 21, 0, 289, 290, 291, 22, 292, 293, - 0, 24, 0, 0, 0, 294, 295, 296, 297, 298, - 27, 0, 1309, 299, 675, 0, 1310, 300, 0, 0, - 0, 0, 0, 301, 244, 0, 302, 8, 9, 0, - 0, 12, 13, 0, 303, 304, 305, 14, 0, 0, - 0, 0, 306, 307, 308, 0, 0, 724, 0, 309, - 0, 1311, 17, 0, 18, 0, 0, 0, 0, 0, - 21, 0, 245, 246, 0, 0, 1397, 310, 0, 24, - 0, 247, 0, 0, 101, 0, 0, 0, 27, 0, - 129, 130, 0, 248, 0, 0, 0, 249, 250, 251, - 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, - 262, 263, 264, 265, 266, 267, 268, 269, 0, 0, - 270, 271, 272, 0, 0, 273, 0, 0, 274, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 101, 101, - 0, 101, 0, 0, 1294, 275, 1295, 1296, 1297, 10, - 386, 12, 282, 283, 284, 0, 285, 14, 1298, 0, - 1299, 1300, 1301, 1302, 1303, 1304, 1305, 1306, 1307, 1308, - 15, 16, 17, 286, 18, 19, 20, 0, 287, 288, - 21, 0, 289, 290, 291, 22, 292, 293, 0, 24, - 0, 0, 0, 294, 295, 296, 297, 298, 27, 724, - 1309, 299, 675, 0, 1310, 300, 0, 0, 0, 0, - 0, 301, 0, 0, 302, 0, 0, 0, 0, 0, - 0, 0, 303, 304, 305, 0, 724, 0, 0, 0, - 306, 307, 308, 0, 0, 0, 0, 309, 0, 1311, - 0, 0, 0, 0, 101, 0, 101, 0, 0, 0, - 0, 0, 0, 0, 517, 310, 7, 8, 9, 10, - 386, 12, 282, 283, 284, 688, 285, 14, 543, 544, + 911, 911, 1109, 1109, 1109, 0, 0, 0, 911, 539, + 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, + 550, 551, 552, 553, 554, 555, 556, 0, 0, 0, + 1109, 1109, 1109, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 732, 0, 7, + 8, 733, 10, 386, 12, 13, 0, 238, 242, 238, + 14, 188, 0, 0, 465, 101, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 17, 0, 18, 19, 20, + 0, 0, 0, 21, 101, 0, 0, 0, 22, 186, + 186, 1107, 24, 734, 0, 642, 238, 0, 0, 0, + 0, 27, 0, 28, 29, 0, 0, 735, 0, 736, + 0, 0, 0, 0, 0, 911, 911, 31, 911, 0, + 0, 0, 0, 101, 0, 0, 0, 32, 0, 0, + 0, 1107, 0, 0, 0, 33, 0, 0, 0, 244, + 34, 0, 8, 9, 0, 0, 12, 13, 0, 188, + 0, 188, 14, 0, 0, 0, 0, 0, 0, 0, + 0, 186, 0, 0, 0, 0, 0, 17, 0, 18, + 101, 0, 101, 101, 0, 21, 0, 245, 246, 0, + 0, 0, 450, 0, 24, 0, 247, 0, 0, 0, + 0, 0, 0, 27, 0, 129, 130, 0, 248, 101, + 0, 0, 249, 250, 251, 252, 253, 254, 255, 256, + 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, + 267, 268, 269, 101, 0, 270, 271, 272, 0, 0, + 273, 0, 0, 274, 0, 0, 0, 0, 0, 101, + 0, 0, 0, 101, 0, 0, 101, 0, 0, 0, + 275, 101, 0, 0, 0, 0, 444, 0, 0, 0, + 0, 0, 0, 0, 238, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, - 555, 556, 17, 286, 18, 19, 20, 0, 287, 288, - 21, 0, 289, 290, 291, 22, 292, 293, 0, 24, - 0, 581, 0, 294, 295, 296, 297, 298, 27, 0, - 28, 29, -285, 0, 0, 300, 0, 0, 0, 0, - 0, 301, 0, 0, 1127, 0, 0, 0, 0, 0, - 0, 0, 303, 304, 1128, 0, 0, 0, 0, 0, - 306, 307, 308, 0, 584, 0, 0, 1129, 586, 0, - 687, 689, 281, 8, 9, 10, 386, 12, 282, 283, - 284, 688, 285, 14, 0, 310, 0, 0, 0, 0, + 555, 556, 0, 0, 186, 186, 186, 186, 1107, 0, + 1219, 0, 186, 542, 543, 544, 545, 546, 547, 548, + 549, 550, 551, 552, 553, 554, 555, 556, 0, 0, + 0, 101, 0, 724, 1107, 1107, 1107, 0, 0, 444, + 444, 444, 0, 0, 0, 0, 0, 0, 7, 8, + 9, 10, 386, 12, 13, 0, 0, 955, 101, 14, + 0, 0, 188, 0, 0, 186, 0, 0, 0, 0, + 0, 0, 0, 0, 17, 0, 18, 19, 0, 0, + 0, 0, 21, 0, 0, 0, 0, 22, 0, 0, + 0, 24, 0, 0, 0, 0, 0, 0, 0, 0, + 27, 0, 28, 29, 1383, 0, -449, -449, -449, -449, + -449, -449, -449, 0, 0, -449, 31, -449, 0, 186, + 186, 0, 186, 0, 0, 0, 32, 0, -449, 0, + -449, -449, 101, 0, 33, -449, 0, 0, 0, 34, + -449, 0, 0, 101, 101, -449, 101, 101, 0, -449, + 0, -449, 0, 186, 0, 186, 0, 0, -449, 0, + -449, -449, -449, -449, -449, 0, -449, -449, -449, -449, + -449, -449, -449, -449, -449, -449, -449, -449, -449, -449, + -449, -449, -449, -449, -449, -449, -449, -449, -449, 0, + -449, -449, -449, 0, -449, -449, -449, -449, -449, -449, + 0, -449, -449, 0, 0, 120, 0, 1384, 0, 0, + 0, 0, -449, -449, -449, 0, -449, 219, 0, 0, + 161, 0, 7, 8, 9, 10, 11, 12, 13, 0, + 8, 9, 0, 14, 12, 13, 724, 0, 0, 0, + 14, 0, 0, 0, 0, 0, 15, 16, 17, 0, + 18, 19, 20, 0, 0, 17, 21, 18, 0, 0, + 1107, 22, 0, 21, 23, 24, 25, 0, 26, 0, + 0, 0, 24, 0, 27, 0, 28, 29, 0, 0, + 30, 27, 0, 129, 130, 0, 0, 0, 0, 0, + 31, 0, 0, 0, 0, 724, 0, 0, 101, 0, + 32, 0, 0, 0, 0, 0, 0, 0, 33, 0, + 0, 0, 0, 34, 0, 0, 0, 0, 0, 35, + 0, 0, 0, 1107, 1107, 1107, 0, 0, 0, 0, + 0, 101, 101, 101, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 101, 0, 1360, 186, 1230, 1231, 1232, + 10, 386, 12, 282, 283, 284, 0, 285, 14, 1233, + 0, 1234, 1235, 1236, 1237, 1238, 1239, 1240, 1241, 1242, + 1243, 15, 16, 17, 286, 18, 19, 20, 0, 287, + 288, 21, 0, 289, 290, 291, 22, 292, 293, 0, + 24, 0, 0, 0, 294, 295, 296, 297, 298, 27, + 0, 1244, 299, 675, 0, 1245, 300, 0, 0, 0, + 0, 0, 301, 0, 0, 302, 101, 0, 101, 0, + 0, 0, 0, 303, 304, 305, 0, 0, 0, 101, + 0, 306, 307, 308, 0, 0, 0, 0, 309, 0, + 1246, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1361, 310, 1229, 0, 1230, + 1231, 1232, 10, 386, 12, 282, 283, 284, 0, 285, + 14, 1233, 0, 1234, 1235, 1236, 1237, 1238, 1239, 1240, + 1241, 1242, 1243, 15, 16, 17, 286, 18, 19, 20, + 0, 287, 288, 21, 0, 289, 290, 291, 22, 292, + 293, 0, 24, 0, 0, 0, 294, 295, 296, 297, + 298, 27, 0, 1244, 299, 675, 0, 1245, 300, 0, + 0, 0, 0, 0, 301, 0, 0, 302, 0, 0, + 0, 0, 0, 0, 0, 303, 304, 305, 724, 0, + 0, 0, 0, 306, 307, 308, 0, 0, 0, 0, + 309, 517, 1246, 281, 8, 9, 10, 386, 12, 282, + 283, 284, 688, 285, 14, 101, 0, 0, 310, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, + 286, 18, 19, 20, 0, 287, 288, 21, 0, 289, + 290, 291, 22, 292, 293, 0, 24, 0, 581, 0, + 294, 295, 296, 297, 298, 27, 0, 28, 299, -285, + 0, 0, 300, 0, 0, 0, 0, 0, 301, 101, + 101, 869, 101, 0, 0, 0, 0, 0, 0, 303, + 304, 870, 0, 0, 0, 0, 0, 306, 307, 308, + 0, 584, 0, 0, 871, 586, 0, 517, 689, 7, + 8, 9, 10, 386, 12, 282, 283, 284, 688, 285, + 14, 0, 310, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 17, 286, 18, 19, 20, + 724, 287, 288, 21, 0, 289, 290, 291, 22, 292, + 293, 0, 24, 0, 581, 0, 294, 295, 296, 297, + 298, 27, 0, 28, 29, -285, 0, 0, 300, 0, + 0, 0, 724, 0, 301, 0, 0, 1132, 0, 0, + 0, 0, 0, 0, 0, 303, 304, 1133, 0, 0, + 101, 0, 101, 306, 307, 308, 0, 584, 0, 0, + 1134, 586, 0, 687, 689, 281, 8, 9, 10, 386, + 12, 282, 283, 284, 688, 285, 14, 0, 310, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 17, 286, 18, 19, 20, 0, 287, 288, 21, + 0, 289, 290, 291, 22, 292, 293, 0, 24, 0, + 0, 0, 294, 295, 296, 297, 298, 27, 0, 28, + 299, 0, 0, 0, 300, 0, 0, 0, 0, 0, + 301, 0, 0, 302, 0, 0, 0, 0, 0, 0, + 0, 303, 304, 305, 0, 0, 0, 0, 0, 306, + 307, 308, 0, 0, 0, 0, 309, 0, 0, 0, + 689, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, -759, 802, 310, 281, 8, 9, 10, 386, + 12, 282, 283, 284, 0, 285, 14, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 17, 286, 18, 19, 20, 0, 287, 288, 21, + 0, 289, 290, 291, 22, 292, 293, 0, 24, 0, + 0, 0, 294, 295, 296, 297, 298, 27, 0, 28, + 299, 1449, 0, -749, 300, 0, 0, 0, 0, 0, + 301, 0, 0, 302, 0, 0, 0, 0, 0, 0, + 0, 303, 304, 305, 0, 0, 0, 0, 0, 306, + 307, 308, 0, 0, 0, 678, 309, 790, 791, 792, + 10, 0, 12, 499, 283, 284, 0, 285, 14, 0, + 0, 0, 0, 0, 310, 0, 0, 0, 0, 0, + 0, 0, 0, 17, 286, 18, 0, 20, 0, 287, + 288, 21, 0, 289, 290, 291, 22, 292, 293, 0, + 24, 0, 0, 0, 294, 295, 296, 297, 298, 27, + 0, 793, 794, 679, 0, 0, 300, 0, 0, 0, + 0, 0, 301, 0, 0, 302, 0, 0, 0, 0, + 0, 0, 0, 303, 304, 305, 0, 0, 0, 0, + 0, 306, 307, 308, 0, 0, 0, 0, 309, 795, + 678, 0, 790, 791, 792, 10, 0, 12, 499, 283, + 284, 0, 285, 14, 0, 940, 310, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 286, - 18, 19, 20, 0, 287, 288, 21, 0, 289, 290, + 18, 0, 20, 0, 287, 288, 21, 0, 289, 290, 291, 22, 292, 293, 0, 24, 0, 0, 0, 294, - 295, 296, 297, 298, 27, 0, 28, 299, 0, 0, + 295, 296, 297, 298, 27, 0, 793, 794, 679, 0, 0, 300, 0, 0, 0, 0, 0, 301, 0, 0, 302, 0, 0, 0, 0, 0, 0, 0, 303, 304, 305, 0, 0, 0, 0, 0, 306, 307, 308, 0, - 0, 0, 0, 309, 0, 0, 0, 689, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, -763, - 802, 310, 281, 8, 9, 10, 386, 12, 282, 283, - 284, 0, 285, 14, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 17, 286, - 18, 19, 20, 0, 287, 288, 21, 0, 289, 290, - 291, 22, 292, 293, 0, 24, 0, 0, 0, 294, - 295, 296, 297, 298, 27, 0, 28, 299, 1457, 0, - -753, 300, 0, 0, 0, 0, 0, 301, 0, 0, - 302, 0, 0, 0, 0, 0, 0, 0, 303, 304, - 305, 0, 0, 0, 0, 0, 306, 307, 308, 0, - 0, 0, 678, 309, 790, 791, 792, 10, 0, 12, - 499, 283, 284, 0, 285, 14, 0, 0, 0, 0, + 0, 0, 0, 309, 795, 678, 0, 790, 791, 792, + 10, 0, 12, 499, 283, 284, 0, 285, 14, 0, 0, 310, 0, 0, 0, 0, 0, 0, 0, 0, - 17, 286, 18, 0, 20, 0, 287, 288, 21, 0, - 289, 290, 291, 22, 292, 293, 0, 24, 0, 0, - 0, 294, 295, 296, 297, 298, 27, 0, 793, 794, - 679, 0, 0, 300, 0, 0, 0, 0, 0, 301, - 0, 0, 302, 0, 0, 0, 0, 0, 0, 0, - 303, 304, 305, 0, 0, 0, 0, 0, 306, 307, - 308, 0, 0, 0, 0, 309, 795, 678, 0, 790, + 0, 0, 0, 17, 286, 18, 0, 20, 0, 287, + 288, 21, 0, 289, 290, 291, 22, 292, 293, 0, + 24, 0, 0, 0, 294, 295, 296, 297, 298, 27, + 0, 793, 794, 679, 0, 0, 300, 0, 0, 0, + 0, 0, 301, 0, 0, 302, 0, 0, 0, 0, + 0, 0, 0, 303, 304, 305, 0, 0, 0, 0, + 0, 306, 307, 308, 0, 0, 0, 678, 309, 790, 791, 792, 10, 0, 12, 499, 283, 284, 0, 285, - 14, 0, 940, 310, 0, 0, 0, 0, 0, 0, + 14, 0, 0, 0, 0, -453, 310, 0, 0, 0, 0, 0, 0, 0, 0, 17, 286, 18, 0, 20, 0, 287, 288, 21, 0, 289, 290, 291, 22, 292, 293, 0, 24, 0, 0, 0, 294, 295, 296, 297, 298, 27, 0, 793, 794, 679, 0, 0, 300, 0, 0, 0, 0, 0, 301, 0, 0, 302, 0, 0, 0, 0, 0, 0, 0, 303, 304, 305, 0, 0, - 0, 0, 0, 306, 307, 308, 0, 0, 0, 0, - 309, 795, 678, 0, 790, 791, 792, 10, 0, 12, - 499, 283, 284, 0, 285, 14, 0, 0, 310, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 17, 286, 18, 0, 20, 0, 287, 288, 21, 0, - 289, 290, 291, 22, 292, 293, 0, 24, 0, 0, - 0, 294, 295, 296, 297, 298, 27, 0, 793, 794, - 679, 0, 0, 300, 0, 0, 0, 0, 0, 301, - 0, 0, 302, 0, 0, 0, 0, 0, 0, 0, - 303, 304, 305, 0, 0, 0, 0, 0, 306, 307, - 308, 0, 0, 0, 678, 309, 790, 791, 792, 10, - 0, 12, 499, 283, 284, 0, 285, 14, 0, 0, - 0, 0, -453, 310, 0, 0, 0, 0, 0, 0, - 0, 0, 17, 286, 18, 0, 20, 0, 287, 288, - 21, 0, 289, 290, 291, 22, 292, 293, 0, 24, - 0, 0, 0, 294, 295, 296, 297, 298, 27, 0, - 793, 794, 679, 0, 0, 300, 0, 0, 0, 0, - 0, 301, 0, 0, 302, 0, 0, 0, 0, 0, - 0, 0, 303, 304, 305, 0, 0, 0, 0, 0, - 306, 307, 308, 0, 0, 0, 678, 309, 281, 8, - 9, 10, 0, 12, 499, 283, 284, 0, 285, 14, - 0, 0, 0, 0, 1228, 310, 0, 0, 0, 0, - 0, 0, 0, 0, 17, 286, 18, 0, 20, 0, - 287, 288, 21, 0, 289, 290, 291, 22, 292, 293, - 0, 24, 0, 0, 0, 294, 295, 296, 297, 298, - 27, 0, 28, 299, 679, 0, 0, 300, 0, 0, - 0, 0, 0, 301, 0, 0, 302, 0, 0, 0, - 0, 0, 0, 0, 303, 304, 305, 0, 0, 0, - 0, 0, 306, 307, 308, 0, 0, 0, 0, 309, - 0, 0, 517, 0, 281, 8, 9, 10, 1232, 12, - 282, 283, 284, 0, 285, 14, 0, 310, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 17, 286, 18, 0, 20, 0, 287, 288, 21, 0, - 289, 290, 291, 22, 292, 293, 0, 24, 0, 0, - 0, 294, 295, 296, 297, 298, 27, 0, 28, 299, - -285, 0, 0, 300, 0, 0, 0, 0, 0, 301, - 0, 0, 518, 0, 0, 0, 0, 0, 0, 0, - 303, 304, 519, 0, 0, 0, 0, 0, 306, 307, - 308, 0, 0, 0, 678, 520, 281, 8, 9, 10, - 0, 12, 499, 283, 284, 0, 285, 14, 0, 0, - 0, 0, 0, 310, 0, 0, 0, 0, 0, 0, - 0, 0, 17, 286, 18, 0, 20, 0, 287, 288, - 21, 0, 289, 290, 291, 22, 292, 293, 0, 24, - 0, 0, 0, 294, 295, 296, 297, 298, 27, 0, - 28, 299, 679, 0, 0, 300, 0, 0, 0, 0, - 0, 301, 0, 0, 302, 0, 0, 0, 0, 0, - 0, 0, 303, 304, 305, 0, 0, 0, 0, 0, - 306, 307, 308, 0, 0, 0, 802, 309, 281, 8, - 9, 10, 0, 12, 499, 283, 284, 0, 285, 14, - 0, 0, 0, 0, 0, 310, 0, 0, 0, 0, - 0, 0, 0, 0, 17, 286, 18, 0, 20, 0, - 287, 288, 21, 0, 289, 290, 291, 22, 292, 293, - 0, 24, 0, 0, 0, 294, 295, 296, 297, 298, - 27, 0, 28, 299, 0, 0, 0, 300, -753, 0, - 0, 0, 0, 301, 0, 0, 302, 0, 0, 0, - 0, 0, 0, 0, 303, 304, 305, 0, 0, 0, - 0, 0, 306, 307, 308, 0, 0, 0, 517, 309, - 7, 8, 9, 10, 0, 12, 282, 283, 284, 0, - 285, 14, 0, 0, 0, 0, 0, 310, 0, 0, - 0, 0, 0, 0, 0, 0, 17, 286, 18, 0, - 20, 0, 287, 288, 21, 0, 289, 290, 291, 22, - 292, 293, 0, 24, 0, 0, 0, 294, 295, 296, - 297, 298, 27, 0, 28, 29, -285, 0, 0, 300, - 0, 0, 0, 0, 0, 301, 0, 0, 1434, 0, - 0, 0, 0, 0, 0, 0, 303, 304, 1435, 0, - 0, 0, 0, 0, 306, 307, 308, 0, 0, 0, - 1524, 1436, 281, 8, 9, 10, 0, 12, 282, 283, - 284, 0, 285, 14, 0, 0, 0, 0, 0, 310, - 0, 0, 0, 0, 0, 0, 0, 0, 17, 286, - 18, 0, 20, 0, 287, 288, 21, 0, 289, 290, - 291, 22, 292, 293, 0, 24, 0, 0, 0, 294, - 295, 296, 297, 298, 27, 0, 28, 299, 0, 0, - -174, 300, 0, 0, 0, 0, 0, 301, 0, 0, - 302, 0, 0, 0, 0, 0, 0, 0, 303, 304, - 305, 0, 0, 0, 0, 0, 306, 307, 308, 0, - 0, 0, 802, 309, 281, 8, 9, 10, 0, 12, - 499, 283, 284, 0, 285, 14, 0, 0, 0, 0, - 0, 310, 0, 0, 0, 0, 0, 0, 0, 0, - 17, 286, 18, 0, 20, 0, 287, 288, 21, 0, - 289, 290, 291, 22, 292, 293, 0, 24, 0, 0, - 0, 294, 295, 296, 297, 298, 27, 0, 28, 299, - 0, 0, 0, 300, 0, 0, 0, 0, 0, 301, - 0, 0, 302, 0, 0, 0, 0, 0, 0, 0, - 303, 304, 305, 0, 0, 0, 0, 0, 306, 307, - 308, 0, 0, 0, 888, 309, 281, 8, 9, 10, - 0, 12, 499, 283, 284, 0, 285, 14, 0, 0, - 0, -753, 0, 310, 0, 0, 0, 0, 0, 0, - 0, 0, 17, 286, 18, 0, 20, 0, 287, 288, - 21, 0, 289, 290, 291, 22, 292, 293, 0, 24, - 0, 0, 0, 294, 295, 296, 297, 298, 27, 0, - 28, 299, 0, 0, 0, 300, 0, 0, 0, 0, - 0, 301, 0, 0, 302, 0, 0, 0, 0, 0, - 0, 0, 303, 304, 305, 0, 0, 0, 0, 0, - 306, 307, 308, 0, 0, 0, 890, 309, 281, 8, - 9, 10, 0, 12, 499, 283, 284, 0, 285, 14, - 0, 0, 0, 0, 0, 310, 0, 0, 0, 0, - 0, 0, 0, 0, 17, 286, 18, 0, 20, 0, - 287, 288, 21, 0, 289, 290, 291, 22, 292, 293, - 0, 24, 0, 0, 0, 294, 295, 296, 297, 298, - 27, 0, 28, 299, 0, 0, 0, 300, 0, 0, - 0, 0, 0, 301, 0, 0, 302, 0, 0, 0, - 0, 0, 0, 0, 303, 304, 305, 0, 0, 0, - 0, 0, 306, 307, 308, 0, 0, 0, 1410, 309, - 281, 8, 9, 10, 0, 12, 499, 283, 284, 0, - 285, 14, 0, 0, 0, 0, 0, 310, 0, 0, - 0, 0, 0, 0, 0, 0, 17, 286, 18, 0, - 20, 0, 287, 288, 21, 0, 289, 290, 291, 22, - 292, 293, 0, 24, 0, 0, 0, 294, 295, 296, - 297, 298, 27, 0, 28, 299, 0, 0, 0, 300, - 0, 0, 0, 0, 0, 301, 0, 0, 302, 0, - 0, 0, 0, 0, 0, 0, 303, 304, 305, 0, - 0, 0, 0, 0, 306, 307, 308, 281, 8, 9, - 10, 309, 12, 499, 283, 284, 0, 285, 14, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 310, + 0, 0, 0, 306, 307, 308, 0, 0, 0, 678, + 309, 281, 8, 9, 10, 0, 12, 499, 283, 284, + 0, 285, 14, 0, 0, 0, 0, 1263, 310, 0, + 0, 0, 0, 0, 0, 0, 0, 17, 286, 18, + 0, 20, 0, 287, 288, 21, 0, 289, 290, 291, + 22, 292, 293, 0, 24, 0, 0, 0, 294, 295, + 296, 297, 298, 27, 0, 28, 299, 679, 0, 0, + 300, 0, 0, 0, 0, 0, 301, 0, 0, 302, + 0, 0, 0, 0, 0, 0, 0, 303, 304, 305, + 0, 0, 0, 0, 0, 306, 307, 308, 0, 0, + 0, 0, 309, 0, 0, 517, 0, 281, 8, 9, + 10, 1267, 12, 282, 283, 284, 0, 285, 14, 0, + 310, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 17, 286, 18, 0, 20, 0, 287, + 288, 21, 0, 289, 290, 291, 22, 292, 293, 0, + 24, 0, 0, 0, 294, 295, 296, 297, 298, 27, + 0, 28, 299, -285, 0, 0, 300, 0, 0, 0, + 0, 0, 301, 0, 0, 518, 0, 0, 0, 0, + 0, 0, 0, 303, 304, 519, 0, 0, 0, 0, + 0, 306, 307, 308, 0, 0, 0, 678, 520, 281, + 8, 9, 10, 0, 12, 499, 283, 284, 0, 285, + 14, 0, 0, 0, 0, 0, 310, 0, 0, 0, + 0, 0, 0, 0, 0, 17, 286, 18, 0, 20, + 0, 287, 288, 21, 0, 289, 290, 291, 22, 292, + 293, 0, 24, 0, 0, 0, 294, 295, 296, 297, + 298, 27, 0, 28, 299, 679, 0, 0, 300, 0, + 0, 0, 0, 0, 301, 0, 0, 302, 0, 0, + 0, 0, 0, 0, 0, 303, 304, 305, 0, 0, + 0, 0, 0, 306, 307, 308, 0, 0, 0, 802, + 309, 281, 8, 9, 10, 0, 12, 499, 283, 284, + 0, 285, 14, 0, 0, 0, 0, 0, 310, 0, + 0, 0, 0, 0, 0, 0, 0, 17, 286, 18, + 0, 20, 0, 287, 288, 21, 0, 289, 290, 291, + 22, 292, 293, 0, 24, 0, 0, 0, 294, 295, + 296, 297, 298, 27, 0, 28, 299, 0, 0, 0, + 300, -749, 0, 0, 0, 0, 301, 0, 0, 302, + 0, 0, 0, 0, 0, 0, 0, 303, 304, 305, + 0, 0, 0, 0, 0, 306, 307, 308, 0, 0, + 0, 517, 309, 7, 8, 9, 10, 0, 12, 282, + 283, 284, 0, 285, 14, 0, 0, 0, 0, 0, + 310, 0, 0, 0, 0, 0, 0, 0, 0, 17, + 286, 18, 0, 20, 0, 287, 288, 21, 0, 289, + 290, 291, 22, 292, 293, 0, 24, 0, 0, 0, + 294, 295, 296, 297, 298, 27, 0, 28, 29, -285, + 0, 0, 300, 0, 0, 0, 0, 0, 301, 0, + 0, 1421, 0, 0, 0, 0, 0, 0, 0, 303, + 304, 1422, 0, 0, 0, 0, 0, 306, 307, 308, + 0, 0, 0, 1499, 1423, 281, 8, 9, 10, 0, + 12, 282, 283, 284, 0, 285, 14, 0, 0, 0, + 0, 0, 310, 0, 0, 0, 0, 0, 0, 0, + 0, 17, 286, 18, 0, 20, 0, 287, 288, 21, + 0, 289, 290, 291, 22, 292, 293, 0, 24, 0, + 0, 0, 294, 295, 296, 297, 298, 27, 0, 28, + 299, 0, 0, -174, 300, 0, 0, 0, 0, 0, + 301, 0, 0, 302, 0, 0, 0, 0, 0, 0, + 0, 303, 304, 305, 0, 0, 0, 0, 0, 306, + 307, 308, 0, 0, 0, 802, 309, 281, 8, 9, + 10, 0, 12, 499, 283, 284, 0, 285, 14, 0, + 0, 0, 0, 0, 310, 0, 0, 0, 0, 0, 0, 0, 0, 17, 286, 18, 0, 20, 0, 287, 288, 21, 0, 289, 290, 291, 22, 292, 293, 0, 24, 0, 0, 0, 294, 295, 296, 297, 298, 27, 0, 28, 299, 0, 0, 0, 300, 0, 0, 0, 0, 0, 301, 0, 0, 302, 0, 0, 0, 0, 0, 0, 0, 303, 304, 305, 0, 0, 0, 0, - 0, 306, 307, 308, 0, 0, 0, 0, 309, 541, - 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, - 552, 553, 554, 555, 556, 0, 310, 841, 1295, 1296, - 1297, 10, 386, 12, 282, 283, 284, 0, 285, 14, - 1298, 0, 1299, 1300, 1301, 1302, 1303, 1304, 1305, 1306, - 1307, 1308, 15, 16, 17, 286, 18, 19, 20, 0, - 287, 288, 21, 0, 289, 290, 291, 22, 292, 293, - 0, 24, 0, 0, 0, 294, 295, 296, 297, 298, - 27, 0, 1309, 299, 675, 0, 1310, 300, 0, 0, - 0, 0, 0, 301, 0, 0, 302, 0, 0, 0, - 0, 0, 0, 0, 303, 304, 305, 0, 0, 0, - 0, 0, 306, 307, 308, 0, 0, 0, 0, 309, - 0, 1311, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1401, 310, 1295, 1296, - 1297, 10, 386, 12, 282, 283, 284, 0, 285, 14, - 1298, 0, 1299, 1300, 1301, 1302, 1303, 1304, 1305, 1306, - 1307, 1308, 15, 16, 17, 286, 18, 19, 20, 0, - 287, 288, 21, 0, 289, 290, 291, 22, 292, 293, - 0, 24, 0, 0, 0, 294, 295, 296, 297, 298, - 27, 0, 1309, 299, 675, 0, 1310, 300, 0, 0, - 0, 0, 0, 301, 0, 0, 302, 0, 0, 0, - 0, 0, 0, 0, 303, 304, 305, 0, 0, 0, - 0, 0, 306, 307, 308, 0, 0, 0, 0, 309, - 0, 1311, 0, 0, 1295, 1296, 1297, 10, 386, 12, - 282, 283, 284, 0, 285, 14, 1298, 310, 1299, 1300, - 1301, 1302, 1303, 1304, 1305, 1306, 1307, 1308, 15, 16, - 17, 286, 18, 19, 20, 0, 287, 288, 21, 0, - 289, 290, 291, 22, 292, 293, 0, 24, 0, 0, - 0, 294, 295, 296, 297, 298, 27, 0, 1309, 299, - 1501, 0, 1310, 300, 0, 0, 0, 0, 0, 301, - 0, 0, 302, 0, 0, 0, 0, 0, 0, 0, - 303, 304, 305, 0, 0, 0, 0, 0, 306, 307, - 308, 0, 0, 0, 0, 309, 0, 1311, 0, 0, - 1295, 1296, 1297, 10, 386, 12, 282, 283, 284, 0, - 285, 14, 1298, 310, 1299, 1300, 1301, 1302, 1303, 1304, - 1305, 1306, 1307, 1308, 15, 16, 17, 286, 18, 19, + 0, 306, 307, 308, 0, 0, 0, 888, 309, 281, + 8, 9, 10, 0, 12, 499, 283, 284, 0, 285, + 14, 0, 0, 0, -749, 0, 310, 0, 0, 0, + 0, 0, 0, 0, 0, 17, 286, 18, 0, 20, + 0, 287, 288, 21, 0, 289, 290, 291, 22, 292, + 293, 0, 24, 0, 0, 0, 294, 295, 296, 297, + 298, 27, 0, 28, 299, 0, 0, 0, 300, 0, + 0, 0, 0, 0, 301, 0, 0, 302, 0, 0, + 0, 0, 0, 0, 0, 303, 304, 305, 0, 0, + 0, 0, 0, 306, 307, 308, 0, 0, 0, 890, + 309, 281, 8, 9, 10, 0, 12, 499, 283, 284, + 0, 285, 14, 0, 0, 0, 0, 0, 310, 0, + 0, 0, 0, 0, 0, 0, 0, 17, 286, 18, + 0, 20, 0, 287, 288, 21, 0, 289, 290, 291, + 22, 292, 293, 0, 24, 0, 0, 0, 294, 295, + 296, 297, 298, 27, 0, 28, 299, 0, 0, 0, + 300, 0, 0, 0, 0, 0, 301, 0, 0, 302, + 0, 0, 0, 0, 0, 0, 0, 303, 304, 305, + 0, 0, 0, 0, 0, 306, 307, 308, 0, 0, + 0, 1434, 309, 281, 8, 9, 10, 0, 12, 499, + 283, 284, 0, 285, 14, 0, 0, 0, 0, 0, + 310, 0, 0, 0, 0, 0, 0, 0, 0, 17, + 286, 18, 0, 20, 0, 287, 288, 21, 0, 289, + 290, 291, 22, 292, 293, 0, 24, 0, 0, 0, + 294, 295, 296, 297, 298, 27, 0, 28, 299, 0, + 0, 0, 300, 0, 0, 0, 0, 0, 301, 0, + 0, 302, 0, 0, 0, 0, 0, 0, 0, 303, + 304, 305, 0, 0, 0, 0, 0, 306, 307, 308, + 281, 8, 9, 10, 309, 12, 499, 283, 284, 0, + 285, 14, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 310, 0, 0, 0, 17, 286, 18, 0, 20, 0, 287, 288, 21, 0, 289, 290, 291, 22, 292, 293, 0, 24, 0, 0, 0, 294, 295, 296, - 297, 298, 27, 0, 1309, 299, 0, 0, 1310, 300, + 297, 298, 27, 0, 28, 299, 0, 0, 0, 300, 0, 0, 0, 0, 0, 301, 0, 0, 302, 0, 0, 0, 0, 0, 0, 0, 303, 304, 305, 0, 0, 0, 0, 0, 306, 307, 308, 0, 0, 0, - 0, 309, 0, 1311, 281, 8, 9, 10, 386, 12, - 282, 283, 284, 688, 285, 14, 0, 0, 0, 310, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 17, 286, 18, 19, 20, 0, 287, 288, 21, 0, - 289, 290, 291, 22, 292, 293, 0, 24, 0, 581, - 0, 294, 295, 296, 297, 298, 27, 0, 28, 299, - 0, 0, 0, 300, 0, 0, 0, 0, 0, 301, - 0, 0, 869, 0, 0, 0, 0, 0, 0, 0, - 303, 304, 870, 0, 0, 0, 0, 0, 306, 307, - 308, 0, 584, 0, 0, 871, 586, 0, 0, 689, - 7, 8, 9, 10, 386, 12, 282, 283, 284, 688, - 285, 14, 0, 310, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 17, 286, 18, 19, - 20, 0, 287, 288, 21, 0, 289, 290, 291, 22, - 292, 293, 0, 24, 0, 581, 0, 294, 295, 296, - 297, 298, 27, 0, 28, 29, 0, 0, 0, 300, - 0, 0, 0, 0, 0, 301, 0, 0, 1127, 0, - 0, 0, 0, 0, 0, 0, 303, 304, 1128, 0, - 0, 0, 0, 0, 306, 307, 308, 0, 584, 0, - 0, 1129, 586, 0, 0, 689, 281, 8, 9, 10, - 0, 12, 282, 283, 284, 0, 285, 14, 0, 310, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 17, 286, 18, 0, 20, 0, 287, 288, - 21, 0, 289, 290, 291, 22, 292, 293, 0, 24, - 0, 581, 0, 294, 295, 296, 297, 298, 27, 0, - 28, 299, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 301, 0, 0, 869, 0, 0, 0, 0, 0, - 0, 0, 303, 304, 870, 0, 0, 0, 0, 0, - 306, 307, 308, 0, 584, 0, 0, 871, 586, 7, + 0, 309, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 310, + 841, 1230, 1231, 1232, 10, 386, 12, 282, 283, 284, + 0, 285, 14, 1233, 0, 1234, 1235, 1236, 1237, 1238, + 1239, 1240, 1241, 1242, 1243, 15, 16, 17, 286, 18, + 19, 20, 0, 287, 288, 21, 0, 289, 290, 291, + 22, 292, 293, 0, 24, 0, 0, 0, 294, 295, + 296, 297, 298, 27, 0, 1244, 299, 675, 0, 1245, + 300, 0, 0, 0, 0, 0, 301, 0, 0, 302, + 0, 0, 0, 0, 0, 0, 0, 303, 304, 305, + 0, 0, 0, 0, 0, 306, 307, 308, 0, 0, + 0, 0, 309, 0, 1246, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1365, + 310, 1230, 1231, 1232, 10, 386, 12, 282, 283, 284, + 0, 285, 14, 1233, 0, 1234, 1235, 1236, 1237, 1238, + 1239, 1240, 1241, 1242, 1243, 15, 16, 17, 286, 18, + 19, 20, 0, 287, 288, 21, 0, 289, 290, 291, + 22, 292, 293, 0, 24, 0, 0, 0, 294, 295, + 296, 297, 298, 27, 0, 1244, 299, 675, 0, 1245, + 300, 0, 0, 0, 0, 0, 301, 0, 0, 302, + 0, 0, 0, 0, 0, 0, 0, 303, 304, 305, + 0, 0, 0, 0, 0, 306, 307, 308, 0, 0, + 0, 0, 309, 0, 1246, 0, 0, 1230, 1231, 1232, + 10, 386, 12, 282, 283, 284, 0, 285, 14, 1233, + 310, 1234, 1235, 1236, 1237, 1238, 1239, 1240, 1241, 1242, + 1243, 15, 16, 17, 286, 18, 19, 20, 0, 287, + 288, 21, 0, 289, 290, 291, 22, 292, 293, 0, + 24, 0, 0, 0, 294, 295, 296, 297, 298, 27, + 0, 1244, 299, 1476, 0, 1245, 300, 0, 0, 0, + 0, 0, 301, 0, 0, 302, 0, 0, 0, 0, + 0, 0, 0, 303, 304, 305, 0, 0, 0, 0, + 0, 306, 307, 308, 0, 0, 0, 0, 309, 0, + 1246, 0, 0, 1230, 1231, 1232, 10, 386, 12, 282, + 283, 284, 0, 285, 14, 1233, 310, 1234, 1235, 1236, + 1237, 1238, 1239, 1240, 1241, 1242, 1243, 15, 16, 17, + 286, 18, 19, 20, 0, 287, 288, 21, 0, 289, + 290, 291, 22, 292, 293, 0, 24, 0, 0, 0, + 294, 295, 296, 297, 298, 27, 0, 1244, 299, 0, + 0, 1245, 300, 0, 0, 0, 0, 0, 301, 0, + 0, 302, 0, 0, 0, 0, 0, 0, 0, 303, + 304, 305, 0, 0, 0, 0, 0, 306, 307, 308, + 0, 0, 0, 0, 309, 0, 1246, 281, 8, 9, + 10, 386, 12, 282, 283, 284, 688, 285, 14, 0, + 0, 0, 310, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 17, 286, 18, 19, 20, 0, 287, + 288, 21, 0, 289, 290, 291, 22, 292, 293, 0, + 24, 0, 581, 0, 294, 295, 296, 297, 298, 27, + 0, 28, 299, 0, 0, 0, 300, 0, 0, 0, + 0, 0, 301, 0, 0, 869, 0, 0, 0, 0, + 0, 0, 0, 303, 304, 870, 0, 0, 0, 0, + 0, 306, 307, 308, 0, 584, 0, 0, 871, 586, + 0, 0, 689, 7, 8, 9, 10, 386, 12, 282, + 283, 284, 688, 285, 14, 0, 310, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, + 286, 18, 19, 20, 0, 287, 288, 21, 0, 289, + 290, 291, 22, 292, 293, 0, 24, 0, 581, 0, + 294, 295, 296, 297, 298, 27, 0, 28, 29, 0, + 0, 0, 300, 0, 0, 0, 0, 0, 301, 0, + 0, 1132, 0, 0, 0, 0, 0, 0, 0, 303, + 304, 1133, 0, 0, 0, 0, 0, 306, 307, 308, + 0, 584, 0, 0, 1134, 586, 0, 0, 689, 281, 8, 9, 10, 0, 12, 282, 283, 284, 0, 285, - 14, 0, 0, 0, 0, 310, 0, 0, 0, 0, + 14, 0, 310, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 286, 18, 0, 20, 0, 287, 288, 21, 0, 289, 290, 291, 22, 292, 293, 0, 24, 0, 581, 0, 294, 295, 296, 297, - 298, 27, 0, 28, 29, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 301, 0, 0, 1127, 0, 0, - 0, 0, 0, 0, 0, 303, 304, 1128, 0, 0, + 298, 27, 0, 28, 299, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 301, 0, 0, 869, 0, 0, + 0, 0, 0, 0, 0, 303, 304, 870, 0, 0, 0, 0, 0, 306, 307, 308, 0, 584, 0, 0, - 1129, 586, 281, 8, 9, 10, 0, 12, 499, 283, + 871, 586, 7, 8, 9, 10, 0, 12, 282, 283, 284, 0, 285, 14, 0, 0, 0, 0, 310, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 286, 18, 0, 20, 0, 287, 288, 21, 0, 289, 290, - 291, 22, 292, 293, 0, 24, 0, 0, 0, 294, - 295, 296, 297, 298, 27, 0, 28, 299, 0, 0, - 1378, 300, 0, 0, 0, 0, 0, 301, 0, 0, - 302, 0, 0, 0, 0, 0, 0, 0, 303, 304, - 305, 0, 0, 0, 0, 0, 306, 307, 308, 0, - 0, 0, 0, 309, 281, 8, 9, 10, 386, 12, - 282, 283, 284, 0, 285, 14, 0, 0, 0, 0, + 291, 22, 292, 293, 0, 24, 0, 581, 0, 294, + 295, 296, 297, 298, 27, 0, 28, 29, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 301, 0, 0, + 1132, 0, 0, 0, 0, 0, 0, 0, 303, 304, + 1133, 0, 0, 0, 0, 0, 306, 307, 308, 0, + 584, 0, 0, 1134, 586, 281, 8, 9, 10, 0, + 12, 499, 283, 284, 0, 285, 14, 0, 0, 0, 0, 310, 0, 0, 0, 0, 0, 0, 0, 0, - 17, 286, 18, 19, 20, 0, 287, 288, 21, 0, + 0, 17, 286, 18, 0, 20, 0, 287, 288, 21, + 0, 289, 290, 291, 22, 292, 293, 0, 24, 0, + 0, 0, 294, 295, 296, 297, 298, 27, 0, 28, + 299, 0, 0, 1342, 300, 0, 0, 0, 0, 0, + 301, 0, 0, 302, 0, 0, 0, 0, 0, 0, + 0, 303, 304, 305, 0, 0, 0, 0, 0, 306, + 307, 308, 0, 0, 0, 0, 309, 281, 8, 9, + 10, 386, 12, 282, 283, 284, 0, 285, 14, 0, + 0, 0, 0, 0, 310, 0, 0, 0, 0, 0, + 0, 0, 0, 17, 286, 18, 19, 20, 0, 287, + 288, 21, 0, 289, 290, 291, 22, 292, 293, 0, + 24, 0, 0, 0, 294, 295, 296, 297, 298, 27, + 0, 28, 299, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 301, 0, 0, 302, 0, 0, 0, 0, + 0, 0, 0, 303, 304, 305, 0, 0, 0, 0, + 0, 306, 307, 308, 281, 8, 9, 10, 309, 12, + 282, 283, 284, 0, 285, 14, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 310, 0, 0, 0, + 17, 286, 18, 0, 20, 0, 287, 288, 21, 0, 289, 290, 291, 22, 292, 293, 0, 24, 0, 0, 0, 294, 295, 296, 297, 298, 27, 0, 28, 299, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 301, + 0, 0, 0, 300, 0, 0, 0, 0, 0, 301, 0, 0, 302, 0, 0, 0, 0, 0, 0, 0, 303, 304, 305, 0, 0, 0, 0, 0, 306, 307, - 308, 281, 8, 9, 10, 309, 12, 282, 283, 284, + 308, 281, 8, 9, 10, 309, 12, 499, 283, 284, 0, 285, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 310, 0, 0, 0, 17, 286, 18, 0, 20, 0, 287, 288, 21, 0, 289, 290, 291, @@ -2272,55 +2274,55 @@ static const short yytable[] = { 58, 310, 0, 0, 0, 17, 286, 18, 0, 20, 0, 287, 288, 21, 0, 289, 290, 291, 22, 292, 293, 0, 24, 0, 0, 0, 294, 295, 296, 297, 298, - 27, 0, 28, 299, 0, 0, 0, 300, 0, 0, + 27, 0, 28, 299, 532, 0, 0, 0, 0, 0, 0, 0, 0, 301, 0, 0, 302, 0, 0, 0, 0, 0, 0, 0, 303, 304, 305, 0, 0, 0, - 0, 0, 306, 307, 308, 281, 8, 9, 10, 309, + 0, 0, 306, 307, 308, 281, 8, 9, 10, 533, 12, 499, 283, 284, 0, 285, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 310, 0, 0, 0, 17, 286, 18, 0, 20, 0, 287, 288, 21, 0, 289, 290, 291, 22, 292, 293, 0, 24, 0, 0, 0, 294, 295, 296, 297, 298, 27, 0, 28, - 299, 532, 0, 0, 0, 0, 0, 0, 0, 0, + 299, 0, 0, 0, 0, 0, 0, 0, 0, 0, 301, 0, 0, 302, 0, 0, 0, 0, 0, 0, 0, 303, 304, 305, 0, 0, 0, 0, 0, 306, - 307, 308, 281, 8, 9, 10, 533, 12, 499, 283, - 284, 0, 285, 14, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 310, 0, 0, 0, 17, 286, - 18, 0, 20, 0, 287, 288, 21, 0, 289, 290, - 291, 22, 292, 293, 0, 24, 0, 0, 0, 294, - 295, 296, 297, 298, 27, 0, 28, 299, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 301, 0, 0, - 302, 0, 0, 0, 0, 0, 0, 0, 303, 304, - 305, 0, 0, 0, 0, 0, 306, 307, 308, 0, - 0, 0, 0, 309, 569, 281, 8, 9, 10, 0, + 307, 308, 0, 0, 0, 0, 309, 569, 281, 8, + 9, 10, 0, 12, 499, 283, 284, 0, 285, 14, + 0, 0, 0, 0, 310, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 17, 286, 18, 0, 20, 0, + 287, 288, 21, 0, 289, 290, 291, 22, 292, 293, + 0, 24, 0, 0, 0, 294, 295, 296, 297, 298, + 27, 0, 28, 299, 0, 0, 0, 300, 0, 0, + 0, 0, 0, 301, 0, 0, 518, 0, 0, 0, + 0, 0, 0, 0, 303, 304, 519, 0, 0, 0, + 0, 0, 306, 307, 308, 1094, 8, 9, 10, 520, 12, 499, 283, 284, 0, 285, 14, 0, 0, 0, - 0, 310, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 310, 0, 0, 0, 17, 286, 18, 0, 20, 0, 287, 288, 21, 0, 289, 290, 291, 22, 292, 293, 0, 24, 0, 0, 0, 294, 295, 296, 297, 298, 27, 0, 28, 299, 0, 0, 0, 300, 0, 0, 0, 0, 0, - 301, 0, 0, 518, 0, 0, 0, 0, 0, 0, - 0, 303, 304, 519, 0, 0, 0, 0, 0, 306, - 307, 308, 1094, 8, 9, 10, 520, 12, 499, 283, + 301, 0, 0, 302, 0, 0, 0, 0, 0, 0, + 0, 303, 304, 305, 0, 0, 0, 0, 0, 306, + 307, 308, 7, 8, 9, 10, 309, 12, 499, 283, 284, 0, 285, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 310, 0, 0, 0, 17, 286, 18, 0, 20, 0, 287, 288, 21, 0, 289, 290, 291, 22, 292, 293, 0, 24, 0, 0, 0, 294, - 295, 296, 297, 298, 27, 0, 28, 299, 0, 0, + 295, 296, 297, 298, 27, 0, 28, 29, 0, 0, 0, 300, 0, 0, 0, 0, 0, 301, 0, 0, - 302, 0, 0, 0, 0, 0, 0, 0, 303, 304, - 305, 0, 0, 0, 0, 0, 306, 307, 308, 7, - 8, 9, 10, 309, 12, 499, 283, 284, 0, 285, + 1421, 0, 0, 0, 0, 0, 0, 0, 303, 304, + 1422, 0, 0, 0, 0, 0, 306, 307, 308, 281, + 8, 9, 10, 1423, 12, 499, 283, 284, 0, 285, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 310, 0, 0, 0, 17, 286, 18, 0, 20, 0, 287, 288, 21, 0, 289, 290, 291, 22, 292, 293, 0, 24, 0, 0, 0, 294, 295, 296, 297, - 298, 27, 0, 28, 29, 0, 0, 0, 300, 0, - 0, 0, 0, 0, 301, 0, 0, 1434, 0, 0, - 0, 0, 0, 0, 0, 303, 304, 1435, 0, 0, + 298, 27, 0, 28, 299, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 301, 0, 0, 302, 0, 0, + 0, 0, 0, 0, 0, 303, 304, 305, 0, 0, 0, 0, 0, 306, 307, 308, 281, 8, 9, 10, - 1436, 12, 499, 283, 284, 0, 285, 14, 0, 0, + 500, 12, 499, 283, 284, 0, 285, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 310, 0, 0, 0, 17, 286, 18, 0, 20, 0, 287, 288, 21, 0, 289, 290, 291, 22, 292, 293, 0, 24, @@ -2328,7 +2330,7 @@ static const short yytable[] = { 58, 28, 299, 0, 0, 0, 0, 0, 0, 0, 0, 0, 301, 0, 0, 302, 0, 0, 0, 0, 0, 0, 0, 303, 304, 305, 0, 0, 0, 0, 0, - 306, 307, 308, 281, 8, 9, 10, 500, 12, 499, + 306, 307, 308, 281, 8, 9, 10, 503, 12, 499, 283, 284, 0, 285, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 310, 0, 0, 0, 17, 286, 18, 0, 20, 0, 287, 288, 21, 0, 289, @@ -2337,972 +2339,960 @@ static const short yytable[] = { 58, 0, 0, 0, 0, 0, 0, 0, 0, 301, 0, 0, 302, 0, 0, 0, 0, 0, 0, 0, 303, 304, 305, 0, 0, 0, 0, 0, 306, 307, 308, - 281, 8, 9, 10, 503, 12, 499, 283, 284, 0, + 281, 8, 9, 10, 309, 12, 499, 283, 284, 0, 285, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 310, 0, 0, 0, 17, 286, 18, 0, 20, 0, 287, 288, 21, 0, 289, 290, 291, 22, 292, 293, 0, 24, 0, 0, 0, 294, 295, 296, 297, 298, 27, 0, 28, 299, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 301, 0, 0, 302, 0, - 0, 0, 0, 0, 0, 0, 303, 304, 305, 0, - 0, 0, 0, 0, 306, 307, 308, 281, 8, 9, - 10, 309, 12, 499, 283, 284, 0, 285, 14, 0, + 0, 0, 0, 0, 0, 301, 0, 0, 518, 0, + 0, 0, 0, 0, 0, 0, 303, 304, 519, 0, + 0, 0, 0, 0, 306, 307, 308, 7, 8, 9, + 10, 520, 12, 282, 283, 284, 0, 285, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 310, 0, 0, 0, 17, 286, 18, 0, 20, 0, 287, 288, 21, 0, 289, 290, 291, 22, 292, 293, 0, 24, 0, 0, 0, 294, 295, 296, 297, 298, 27, - 0, 28, 299, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 301, 0, 0, 518, 0, 0, 0, 0, - 0, 0, 0, 303, 304, 519, 0, 0, 0, 0, - 0, 306, 307, 308, 7, 8, 9, 10, 520, 12, - 282, 283, 284, 0, 285, 14, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 310, 0, 0, 0, - 17, 286, 18, 0, 20, 0, 287, 288, 21, 0, - 289, 290, 291, 22, 292, 293, 0, 24, 0, 0, - 0, 294, 295, 296, 297, 298, 27, 0, 28, 29, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 301, - 0, 0, 1434, 989, 8, 733, 10, 189, 12, 190, - 303, 304, 1435, 0, 14, 0, 0, 0, 306, 307, - 308, 0, 0, 0, 0, 1436, 0, 0, 0, 17, - 0, 18, 19, 0, 0, 0, 0, 21, 0, 0, - 0, 0, 22, 310, 0, 0, 24, 0, 7, 8, - 9, 10, 189, 12, 190, 27, 0, 28, 29, 14, - 0, 0, 0, 991, 0, 0, 0, 0, 0, 0, - 0, 31, 0, 0, 17, 0, 18, 19, 0, 0, - 0, 32, 21, 0, 0, 0, 0, 22, 0, 33, - 0, 24, 0, 0, 34, 0, 0, 0, 0, 0, - 27, 0, 28, 29, 0, 0, 1391, 7, 8, 9, - 10, 386, 12, 13, 0, 0, 31, 0, 14, 0, - 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, - 0, 0, 0, 17, 33, 18, 19, 0, 0, 34, + 0, 28, 29, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 301, 0, 6, 1421, 7, 8, 9, 10, + 11, 12, 13, 303, 304, 1422, 0, 14, 0, 0, + 0, 306, 307, 308, 0, 0, 0, 0, 1423, 0, + 0, 0, 17, 0, 18, 19, 0, 0, 0, 0, + 21, 0, 0, 0, 0, 22, 310, 0, 0, 24, + 0, 0, 411, 0, 0, 0, 0, 0, 27, 0, + 28, 29, 0, 0, 30, -357, 8, 9, -357, -357, + 12, 227, 0, 0, 31, 0, 14, 0, 0, 0, + 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, + 0, 17, 33, 18, -357, 0, 0, 34, 0, 21, + 0, 0, 0, 0, -357, 0, 0, 0, 24, 0, + 581, 0, 0, 0, 0, 0, 0, 27, 0, 129, + 130, 7, 8, 9, 10, 189, 12, 190, 0, 0, + 0, 0, 14, 582, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 583, 0, 0, 0, 17, 0, 18, + 19, -357, 0, 584, 0, 21, 585, 586, 0, 0, + 22, 0, 0, 0, 24, 0, 989, 8, 733, 10, + 189, 12, 190, 27, 0, 28, 29, 14, 0, 191, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, + 0, 0, 17, 0, 18, 19, 0, 0, 0, 32, + 21, 0, 0, 0, 0, 22, 0, 33, 0, 24, + 0, 0, 34, 0, 0, 0, 0, 0, 27, 0, + 28, 29, 0, 0, 0, 0, 991, 7, 8, 9, + 10, 189, 12, 190, 31, 0, 0, 0, 14, 0, + 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, + 0, 0, 33, 17, 0, 18, 19, 34, 0, 0, 0, 21, 0, 0, 0, 0, 22, 0, 0, 0, - 24, 0, 7, 8, 9, 10, 189, 12, 190, 27, - 0, 28, 29, 14, 0, 0, 0, 0, 0, 0, - 0, 0, 126, 127, 0, 31, 199, 200, 17, 0, - 18, 19, 14, 0, 0, 32, 21, 0, 0, 0, + 24, 0, 7, 8, 9, 10, 386, 12, 13, 27, + 0, 28, 29, 14, 0, 1355, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 31, 0, 0, 17, 0, + 18, 19, 0, 0, 0, 32, 21, 0, 0, 0, 0, 22, 0, 33, 0, 24, 0, 0, 34, 0, - 0, 0, 0, 0, 27, 21, 28, 29, 0, 0, - 0, 0, 0, 1424, 24, 0, 581, 0, 0, 0, - 31, 0, 0, 27, 0, 129, 130, 0, 0, 0, - 32, 0, 0, 0, 0, 0, 0, 0, 33, 582, - 0, 0, 0, 34, 0, 0, 0, 0, 0, 583, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 584, - 0, 0, 585, 586, 1425, 535, 536, 537, 538, 539, - 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, - 550, 551, 552, 553, 554, 555, 556, 8, 9, 0, - 386, 12, 13, 0, 0, 1474, 0, 14, 0, 0, - 8, 9, 0, 189, 12, 190, 0, 0, 0, 0, - 14, 0, 17, 0, 18, 19, 0, 0, 0, 0, - 21, 0, 0, 0, 0, 17, 0, 18, 19, 24, - 0, 0, 0, 21, 0, 0, 0, 0, 27, 0, - 129, 130, 24, 0, 0, 8, 9, 0, 0, 12, - 227, 27, 0, 129, 130, 14, 0, 0, 8, 9, - 0, 0, 12, 13, 0, 0, 0, 0, 14, 0, - 17, 0, 18, 0, 0, 0, 0, 0, 21, 0, - 0, 0, 0, 17, 0, 18, 0, 24, 0, 0, - 0, 21, 0, 0, 0, 0, 27, 0, 129, 130, - 24, 0, 0, 0, 0, 0, 0, 0, 0, 27, - 0, 129, 130, 535, 536, 537, 538, 539, 540, 541, - 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, - 552, 553, 554, 555, 556, 535, 536, 537, 538, 539, - 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, - 550, 551, 552, 553, 554, 555, 556, 0, 0, 0, - 0, 0, 1180, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 621, 0, 0, - 1445, 535, 536, 537, 538, 539, 540, 541, 542, 543, + 0, 0, 0, 0, 27, 0, 28, 29, 7, 8, + 9, 10, 189, 12, 190, 0, 0, 0, 0, 14, + 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 32, 0, 0, 0, 17, 0, 18, 19, 33, 0, + 0, 0, 21, 34, 0, 0, 0, 22, 0, 0, + 0, 24, 0, 7, 8, 9, 10, 198, 199, 200, + 27, 0, 28, 29, 14, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 31, 0, 0, 0, + 0, 0, 19, 0, 0, 0, 32, 21, 0, 0, + 0, 0, 22, 0, 33, 1411, 24, 0, 581, 34, + 0, 0, 0, 0, 0, 27, 0, 28, 29, 535, + 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, + 546, 177, 548, 549, 550, 551, 552, 553, 554, 555, + 556, 178, 0, 0, 0, 0, 0, 19, 0, 33, + 0, 0, 0, 0, 1358, 0, 1412, 535, 536, 537, + 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, + 548, 549, 550, 551, 552, 553, 554, 555, 556, 535, + 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, + 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, + 556, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, - 554, 555, 556, 1487, 535, 536, 537, 538, 539, 540, - 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, - 551, 552, 553, 554, 555, 556, 535, 536, 537, 538, - 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, - 549, 550, 551, 552, 553, 554, 555, 556, 535, 536, - 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, - 0, 548, 549, 550, 551, 552, 553, 554, 555, 556, + 554, 555, 556, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, - 552, 553, 554, 555, 556 + 552, 553, 554, 555, 556, 0, 0, 0, 0, 0, + 1185, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 621, 0, 0, 1466, 535, + 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, + 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, + 556, 1484, 535, 536, 537, 538, 539, 540, 541, 542, + 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, + 553, 554, 555, 556, 535, 536, 537, 538, 539, 540, + 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, + 551, 552, 553, 554, 555, 556 }; static const short yycheck[] = { 4, - 156, 385, 329, 4, 58, 670, 54, 24, 385, 193, - 673, 448, 232, 79, 79, 45, 469, 125, 285, 286, - 353, 4, 335, 4, 4, 421, 83, 4, 737, 14, - 739, 36, 939, 530, 385, 36, 41, 746, 653, 123, - 41, 1312, 4, 830, 228, 75, 223, 660, 31, 32, - 317, 56, 128, 36, 1289, 36, 36, 133, 41, 36, - 41, 41, 132, 193, 41, 1422, 71, 11, 61, 585, - 1455, 11, 202, 11, 36, 141, 592, 38, 83, 41, - 4, 1452, 87, 1457, 89, 1319, 91, 146, 147, 9, - 4, 61, 1326, 277, 1479, 132, 133, 82, 1, 53, - 83, 106, 107, 4, 1480, 1150, 1151, 754, 0, 34, - 1, 48, 36, 760, 1439, 335, 1492, 41, 111, 1164, - 105, 187, 36, 63, 336, 337, 1502, 41, 524, 63, - 135, 136, 56, 138, 135, 36, 48, 1508, 49, 193, - 41, 75, 62, 1519, 166, 329, 1520, 201, 202, 586, - 111, 1422, 135, 1478, 12, 160, 59, 94, 135, 160, - 63, 12, 1538, 146, 147, 426, 110, 197, 59, 83, - 110, 48, 110, 1558, 228, 502, 60, 160, 243, 14, - 392, 393, 94, 160, 1509, 1561, 111, 1544, 23, 201, - 202, 48, 1426, 96, 177, 178, 456, 151, 110, 1, - 34, 63, 60, 0, 48, 63, 1251, 287, 288, 60, - 75, 135, 63, 473, 65, 1260, 1261, 94, 1263, 672, - 867, 135, 302, 277, 60, 305, 196, 111, 308, 64, - 184, 311, 1466, 61, 204, 315, 160, 94, 95, 89, - 98, 91, 12, 323, 229, 75, 160, 98, 110, 48, - 94, 95, 110, 110, 1489, 60, 326, 59, 414, 63, - 75, 63, 1049, 27, 28, 322, 110, 880, 32, 48, - 883, 94, 48, 278, 110, 329, 60, 1511, 674, 355, - 61, 365, 25, 111, 27, 28, 136, 902, 123, 326, - 60, 604, 643, 63, 96, 94, 95, 61, 4, 5, - 633, 65, 48, 379, 309, 110, 110, 61, 921, 922, - 145, 110, 696, 147, 148, 94, 59, 322, 94, 696, - 63, 106, 107, 453, 55, 330, 110, 60, 98, 976, - 111, 59, 48, 338, 339, 7, 390, 94, 339, 322, - 388, 988, 379, 49, 75, 179, 48, 111, 94, 65, - 335, 57, 58, 96, 574, 871, 339, 111, 76, 79, - 78, 75, 339, 1408, 1409, 692, 38, 55, 3, 4, - 5, 48, 100, 25, 1021, 81, 1023, 110, 94, 95, - 385, 440, 441, 103, 389, 220, 221, 75, 3, 4, - 5, 6, 94, 909, 55, 1302, 608, 232, 452, 453, - 94, 1188, 385, 39, 385, 470, 460, 59, 322, 906, - 60, 63, 132, 48, 75, 339, 55, 94, 472, 55, - 55, 141, 57, 58, 48, 339, 76, 42, 78, 434, - 48, 868, 462, 949, 49, 55, 75, 491, 518, 519, - 452, 453, 57, 58, 96, 48, 416, 25, 460, 27, - 28, 434, 60, 1360, 94, 75, 1165, 440, 441, 94, - 472, 61, 1369, 1370, 48, 470, 301, 187, 76, 470, - 94, 385, 1085, 1086, 89, 309, 94, 95, 55, 491, - 109, 59, 4, 5, 55, 63, 63, 470, 338, 459, - 470, 94, 497, 470, 48, 500, 48, 25, 503, 48, - 220, 48, 507, 508, 509, 510, 511, 48, 343, 566, - 94, 3, 4, 5, 6, 520, 65, 352, 96, 903, - 434, 974, 36, 243, 309, 530, 903, 41, 533, 48, - 365, 4, 5, 55, 61, 57, 58, 32, 4, 5, - 94, 937, 94, 9, 721, 94, 723, 94, 95, 71, - 42, 728, 903, 94, 95, 63, 470, 611, 770, 81, - 565, 566, 610, 876, 48, 57, 58, 4, 5, 59, - 48, 832, 48, 95, 55, 94, 1483, 1316, 446, 1318, - 585, 65, 48, 566, 57, 58, 454, 592, 75, 55, - 1106, 57, 58, 55, 75, 779, 111, 89, 652, 582, - 583, 649, 585, 651, 652, 71, 873, 441, 442, 592, - 94, 596, 49, 1129, 334, 81, 94, 59, 94, 94, - 57, 58, 1059, 731, 641, 91, 55, 59, 94, 95, - 48, 636, 467, 65, 3, 4, 5, 55, 692, 4, - 5, 55, 55, 55, 692, 650, 431, 497, 76, 654, - 63, 110, 566, 4, 5, 672, 876, 75, 9, 55, - 714, 63, 75, 1116, 110, 63, 500, 63, 95, 503, - 63, 585, 737, 75, 739, 395, 94, 75, 592, 75, - 745, 746, 75, 11, 49, 519, 520, 899, 57, 58, - 1143, 696, 57, 58, 110, 717, 744, 532, 34, 533, - 1055, 1056, 714, 1058, 55, 110, 57, 58, 8, 9, - 740, 741, 81, 696, 14, 500, 81, 111, 503, 749, - 71, 94, 507, 55, 34, 779, 3, 1054, 61, 751, - 81, 63, 737, 113, 739, 520, 737, 37, 739, 574, - 745, 746, 95, 75, 95, 746, 46, 467, 533, 754, - 755, 756, 537, 758, 737, 760, 739, 737, 592, 739, - 737, 841, 739, 746, 95, 55, 746, 55, 55, 746, - 63, 754, 113, 63, 494, 63, 63, 760, 563, 1040, - 1041, 94, 696, 1448, 569, 75, 636, 75, 75, 869, - 870, 767, 768, 769, 971, 972, 973, 25, 94, 27, - 28, 4, 5, 1015, 1016, 1017, 641, 4, 5, 1472, - 146, 147, 148, 8, 9, 60, 61, 60, 653, 14, - 744, 745, 65, 737, 829, 739, 9, 75, 833, 12, - 60, 59, 746, 76, 75, 63, 146, 147, 148, 75, - 754, 75, 37, 179, 679, 11, 760, 25, 914, 27, - 28, 46, 55, 48, 57, 58, 861, 27, 28, 579, - 57, 58, 867, 110, 1125, 48, 871, 111, 96, 179, - 60, 61, 60, 1134, 1135, 595, 75, 60, 1139, 62, - 63, 59, 65, 110, 867, 63, 869, 870, 871, 4, - 5, 876, 110, 76, 110, 78, 60, 61, 903, 94, - 905, 906, 4, 5, 909, 755, 756, 55, 758, 84, - 85, 94, 95, 60, 61, 98, 60, 61, 96, 1180, - 903, 61, 903, 110, 907, 908, 909, 110, 113, 111, - 45, 979, 60, 61, 1000, 1000, 60, 61, 48, 773, - 55, 110, 57, 58, 949, 55, 1011, 49, 3, 4, - 5, 111, 113, 867, 75, 57, 58, 871, 963, 981, - 982, 75, 992, 48, 969, 75, 949, 55, 998, 999, - 55, 976, 1002, 1003, 75, 1371, 1006, 1238, 113, 81, - 113, 1061, 59, 988, 94, 110, 1198, 1383, 1010, 903, - 75, 1318, 110, 976, 110, 909, 4, 5, 110, 55, - 55, 8, 57, 58, 59, 988, 1011, 113, 94, 94, - 1011, 48, 65, 60, 94, 1276, 1021, 111, 1023, 61, - 55, 37, 1, 110, 3, 4, 5, 6, 1011, 8, - 61, 1011, 65, 65, 1011, 949, 870, 871, 1021, 65, - 1023, 49, 1108, 1439, 63, 1104, 1105, 1127, 1128, 57, - 58, 110, 837, 110, 65, 979, 110, 892, 1063, 27, - 28, 110, 976, 42, 32, 1449, 65, 902, 1127, 1128, - 49, 65, 1449, 81, 988, 909, 55, 113, 57, 58, - 1476, 94, 1478, 60, 76, 63, 871, 3, 4, 5, - 6, 63, 60, 61, 76, 110, 1161, 1011, 1494, 1116, - 1165, 1106, 385, 76, 440, 441, 442, 1021, 110, 1023, - 89, 63, 110, 1509, 110, 949, 81, 82, 83, 84, - 85, 1104, 1105, 1106, 1129, 110, 42, 4, 5, 76, - 440, 441, 442, 49, 1156, 1157, 1463, 1159, 1160, 110, - 1162, 57, 58, 110, 1127, 1128, 1129, 56, 60, 58, - 110, 434, 63, 110, 12, 875, 111, 877, 4, 5, - 1165, 110, 113, 9, 1165, 81, 110, 95, 113, 27, - 28, 89, 49, 89, 32, 75, 48, 48, 110, 110, - 57, 58, 1165, 113, 969, 1165, 113, 110, 1165, 110, - 48, 110, 1106, 110, 914, 3, 4, 5, 6, 3, - 4, 5, 60, 61, 81, 63, 1041, 65, 111, 55, - 111, 57, 58, 1063, 65, 1129, 87, 88, 60, 60, - 1225, 92, 93, 94, 95, 71, 1248, 1249, 1258, 1259, - 1235, 65, 1312, 60, 42, 81, 94, 95, 94, 94, - 98, 110, 1225, 110, 94, 1225, 94, 111, 1225, 57, - 58, 1165, 110, 57, 58, 59, 110, 166, 110, 8, - 113, 110, 65, 1225, 1318, 3, 4, 5, 1316, 113, - 1318, 1105, 1106, 4, 5, 1431, 7, 8, 9, 1463, - 1000, 12, 110, 14, 193, 1546, 3, 4, 5, 6, - 1125, 110, 201, 202, 1128, 1129, 110, 110, 29, 111, - 31, 32, 585, 110, 110, 110, 37, 1312, 110, 592, - 110, 1225, 1317, 110, 1319, 46, 1338, 1339, 1340, 57, - 58, 1326, 55, 110, 55, 42, 57, 58, 110, 1312, - 113, 63, 1312, 48, 110, 1312, 1319, 110, 55, 1319, - 57, 58, 1319, 1326, 1129, 110, 1326, 97, 34, 1326, - 4, 5, 110, 110, 1434, 1435, 110, 1319, 110, 110, - 113, 63, 1082, 1393, 1326, 110, 63, 98, 3, 4, - 5, 6, 89, 61, 61, 1434, 1435, 9, 61, 16, - 94, 4, 5, 1405, 1406, 94, 61, 1222, 1108, 61, - 94, 1176, 1177, 1178, 1179, 49, 109, 17, 1312, 99, - 94, 1186, 61, 57, 58, 1319, 61, 42, 11, 1463, - 61, 110, 1326, 696, 49, 110, 1464, 1422, 1423, 110, - 110, 1426, 57, 58, 94, 61, 60, 81, 110, 110, - 61, 1436, 55, 61, 57, 58, 3, 4, 5, 1422, - 1423, 1161, 1422, 1426, 1449, 1422, 1426, 1452, 71, 1426, - 1455, 1434, 1435, 65, 89, 11, 1486, 61, 81, 11, - 110, 1466, 61, 0, 1426, 0, 1449, 0, 2, 1452, - 413, 754, 1455, 1308, 1479, 1455, 355, 760, 1455, 903, - 389, 390, 49, 1466, 160, 745, 1466, 1447, 1510, 1466, - 57, 58, 160, 1455, 1116, 93, 1479, 138, 1558, 1479, - 1418, 280, 1479, 1508, 1466, 1317, 1511, 892, 1422, 1423, - 887, 679, 1426, 1143, 222, 1011, 974, 1479, 1163, 745, - 617, 885, 1307, 566, 184, 1508, 123, 1362, 1511, 1319, - 326, 1511, 1531, 1226, 1511, 1449, 445, 1494, 1452, 1472, - 4, 1455, 1469, 452, 453, 1533, 1235, 456, 958, 1511, - 14, 460, 1466, 1558, 3, 4, 5, 6, -1, -1, - 1394, 25, -1, -1, 473, 1479, -1, 31, 32, -1, - 34, -1, 36, 909, -1, 1558, -1, 41, 1558, -1, - 712, 1558, -1, -1, 867, -1, -1, -1, 871, -1, - 54, -1, 56, 42, 1508, 1380, 1558, 1511, -1, 909, - 64, 1435, 1436, -1, -1, -1, 55, 71, 57, 58, - -1, -1, 61, 949, 63, -1, -1, -1, 82, 83, - 903, 753, 71, -1, -1, -1, 909, 759, -1, 427, - -1, -1, 81, 3, 4, 5, 434, 1422, 1423, 949, - 89, 105, -1, -1, 1558, 94, -1, -1, 177, 178, - 179, 1436, 3, 4, 5, -1, 7, 8, 9, -1, - -1, 31, -1, -1, 128, -1, 949, 1452, -1, 133, - -1, 135, 3, 4, 5, 139, -1, -1, 142, 143, - -1, -1, 146, 147, 148, 55, 37, 57, 58, -1, - -1, -1, -1, 976, -1, -1, 160, 3, 4, 5, - 498, -1, 611, -1, 55, 988, 57, 58, 59, -1, - -1, -1, -1, 177, 178, 179, -1, 3, 4, 5, - -1, 1506, -1, 1508, 55, -1, 57, 58, -1, -1, - 862, -1, 864, -1, 3, 4, 5, 6, 1021, -1, - 1023, 650, 206, 652, -1, 1530, -1, -1, -1, 55, - -1, 57, 58, -1, 105, 106, 107, 221, -1, 1544, - -1, -1, -1, 49, 562, 229, 564, 565, 1104, 1105, - 1106, 57, 58, 42, -1, -1, 240, -1, -1, 48, - 4, 5, -1, 692, -1, 9, 55, -1, 57, 58, - -1, 1127, 1128, 1129, 1104, 1105, 1106, -1, -1, -1, - -1, 599, 71, -1, -1, 714, -1, -1, 717, -1, - -1, -1, 81, -1, 278, 279, -1, 1127, 1128, 1129, - 89, -1, 91, 1106, 48, 94, 95, 3, 4, 5, - -1, 55, 427, 57, 58, -1, 745, -1, -1, 434, - -1, -1, 751, 3, 4, 5, 1129, 71, 1, -1, - 3, 4, 5, 6, 7, 8, 9, 81, 322, -1, - -1, 14, 326, -1, 328, 329, 330, 91, -1, -1, - 94, 95, 3, 4, 5, 339, 29, -1, 31, 32, - 33, 57, 58, -1, 37, 38, -1, -1, 1020, 42, - 1022, 355, -1, 46, 47, -1, 49, 57, 58, -1, - -1, -1, 55, 498, 57, 58, -1, 436, 61, 438, - 63, 440, 441, 442, -1, 379, -1, -1, 71, -1, - -1, 385, 451, -1, 388, 389, 57, 58, 81, 3, - 4, 5, -1, -1, -1, 399, 89, -1, 402, -1, - -1, 94, -1, 407, 1076, -1, 3, 4, 5, 6, - 7, 8, 9, 3, 4, 5, 6, 14, 111, -1, - -1, -1, -1, -1, -1, 39, 40, 562, 42, 564, - 565, -1, 436, -1, 438, 32, 440, 441, 442, -1, - 37, 55, 446, 57, 58, 42, -1, 451, -1, 46, - 454, 48, 42, -1, -1, -1, -1, 592, 55, 49, - 57, 58, -1, -1, 599, -1, 470, 57, 58, 3, - 4, 5, 6, -1, 71, 1147, -1, -1, -1, -1, - 1152, 106, 107, -1, 81, -1, -1, -1, 27, 28, - -1, 81, 89, 32, 91, 833, -1, 94, 95, 89, - -1, -1, -1, -1, 508, 509, 510, 511, 42, 847, - -1, 849, -1, 851, -1, 49, -1, -1, 1394, -1, - -1, 60, 61, 57, 58, -1, 65, 7, 8, 9, - 1202, -1, 981, 982, 14, -1, 3, 4, 5, 6, - -1, -1, -1, -1, 1394, -1, -1, 81, -1, -1, - -1, -1, 32, -1, -1, 89, 894, 37, 1434, 1435, - 1436, 1010, 566, -1, 568, -1, 46, 79, 80, 81, - 82, 83, 84, 85, -1, 42, 580, -1, 582, 583, - -1, 585, 49, -1, 1434, 1435, 1436, -1, 592, -1, - 57, 58, 596, 931, -1, 1267, 1268, -1, -1, -1, - 4, 5, -1, 7, 8, 9, 610, -1, 12, -1, - 14, 1283, -1, -1, 81, -1, -1, -1, 3, 4, - 5, 6, 89, -1, 9, 29, 1449, 31, 32, -1, - -1, -1, -1, 37, 703, 704, -1, 706, 773, -1, - -1, -1, 46, -1, 48, 649, 650, 651, 652, 653, - 654, 55, -1, 57, 58, -1, -1, 42, -1, 1331, - 1332, -1, -1, -1, -1, -1, -1, 71, -1, -1, - 55, -1, 57, 58, -1, 744, -1, 81, 1350, 1351, - -1, -1, -1, -1, 309, -1, 71, 91, 692, -1, - 94, 95, 696, -1, 98, -1, 81, -1, 833, 703, - 704, -1, 706, -1, 89, -1, -1, 1156, 1157, 94, - 1159, 1160, 847, 1162, 849, -1, 851, -1, -1, 3, - 4, 5, 6, -1, -1, -1, -1, 7, 8, 9, - 734, -1, -1, 737, 14, 739, -1, 7, 8, 9, - 744, 745, 746, -1, 14, -1, -1, -1, -1, -1, - 754, -1, 32, -1, -1, -1, 760, 37, 42, 894, - 385, -1, 32, 767, 768, 769, 46, 37, -1, -1, - -1, 55, -1, 57, 58, 779, 46, 61, -1, -1, - 1118, 61, 1120, -1, 1122, -1, -1, 71, -1, -1, - -1, 4, -1, -1, -1, -1, 931, 81, -1, 1248, - 1249, 14, -1, -1, -1, 89, 7, 8, 9, 434, - 94, 24, 25, 14, 949, -1, -1, -1, 31, 32, - -1, 34, -1, 36, -1, 829, -1, -1, 41, -1, - -1, 32, -1, -1, -1, -1, 37, -1, 907, 908, - 909, 54, -1, 56, -1, 46, -1, -1, 852, -1, - 854, 64, -1, -1, -1, -1, -1, 861, 71, -1, - 61, 865, -1, 867, -1, 869, 870, 871, 1317, 1318, - 83, 1209, 876, -1, -1, 500, -1, -1, 503, -1, - 949, -1, 507, 508, 509, 510, 511, -1, -1, 1338, - 1339, 1340, -1, -1, -1, 520, -1, -1, -1, 903, - -1, 905, -1, 907, 908, 909, -1, -1, 533, -1, - 979, -1, -1, -1, -1, 128, -1, -1, -1, 3, - 4, 5, 135, 7, 8, 9, 139, -1, -1, -1, - 143, -1, -1, 146, 147, 148, -1, -1, 4, 5, - 565, -1, 8, 9, -1, 949, -1, 160, 14, -1, - -1, -1, -1, 37, -1, -1, 1405, 1406, -1, 963, - 585, -1, -1, -1, 177, 178, 179, 592, -1, -1, - -1, 37, 976, 57, 58, 979, -1, -1, -1, -1, - 46, -1, 48, 1118, 988, 1120, -1, 1122, -1, 55, - -1, 57, 58, 206, -1, -1, -1, 1001, -1, -1, - -1, -1, -1, -1, -1, 71, -1, 1011, 3, 4, - 5, -1, 7, 8, 9, 81, -1, 1021, -1, 1023, - -1, -1, -1, -1, -1, 91, -1, 240, 94, 95, - -1, -1, -1, 1102, 1103, 1104, 1105, 1106, -1, -1, - -1, 1110, 3, 4, 5, 6, -1, -1, 9, -1, - -1, 1055, 1056, -1, 1058, -1, -1, -1, 1127, 1128, - 1129, 1510, 57, 58, -1, 278, 279, -1, -1, -1, - -1, 696, -1, -1, 1209, -1, -1, -1, -1, -1, - -1, 42, -1, -1, -1, 328, 329, 330, -1, 1158, - -1, -1, -1, -1, 55, -1, 57, 58, 1102, 1103, - 1104, 1105, 1106, -1, -1, -1, 1110, -1, -1, 322, - 71, -1, -1, 326, -1, 328, 329, 330, -1, -1, - 81, -1, 335, 1127, 1128, 1129, 339, -1, 89, 754, - -1, -1, -1, 94, -1, 760, -1, -1, 3, 4, - 5, 6, 355, 1212, 1213, -1, 1215, -1, -1, -1, - -1, -1, -1, -1, 1158, -1, -1, -1, -1, 1163, - -1, 1165, 3, 4, 5, 6, 7, 8, 9, -1, - -1, -1, 385, 14, -1, 388, 389, 42, -1, -1, - 3, 4, 5, 6, 49, -1, 399, -1, 29, 402, - 31, 32, 57, 58, 407, -1, 37, -1, -1, -1, - -1, 42, -1, -1, 829, 46, -1, 48, 1212, 1213, - -1, 1215, -1, -1, 55, -1, 57, 58, -1, 42, - -1, -1, -1, 436, 89, 438, 49, 440, 441, 442, - 71, 1235, -1, 446, 57, 58, 861, -1, 451, -1, - 81, 454, 867, -1, -1, -1, 871, -1, 89, -1, - 91, -1, -1, 94, 95, -1, 469, 470, 81, 1394, - -1, -1, -1, -1, -1, -1, 89, -1, 3, 4, - 5, 6, -1, -1, 9, 3, 4, 5, 903, 7, - 905, -1, -1, -1, 909, 77, 78, 79, 80, 81, - 82, 83, 84, 85, -1, 508, 509, 510, 511, -1, - -1, -1, -1, 31, -1, -1, -1, 42, -1, -1, - 38, -1, 1316, 1317, 1318, -1, -1, -1, -1, -1, - 55, -1, 57, 58, 949, 1394, -1, 55, -1, 57, - 58, -1, 3, 4, 5, 6, 71, -1, 963, 582, - 583, -1, 585, -1, 969, -1, 81, -1, -1, 592, - -1, 976, -1, 566, 89, 568, -1, -1, -1, 94, - -1, -1, -1, 988, -1, 1434, 1435, 1436, -1, 582, - 583, 42, 585, -1, -1, -1, -1, -1, -1, 592, - -1, -1, -1, -1, 55, -1, 57, 58, -1, -1, - 1394, 604, 63, -1, -1, -1, 1021, 610, 1023, -1, - 71, -1, -1, -1, -1, -1, 649, -1, 651, 652, - 81, 654, -1, -1, 3, 4, 5, 6, 89, -1, - 9, -1, -1, 94, -1, -1, -1, -1, 641, -1, - 1434, 1435, 1436, -1, -1, -1, 649, 650, 651, 652, - 653, 654, -1, -1, -1, 1449, -1, -1, -1, 692, - -1, -1, -1, 42, -1, -1, -1, -1, -1, 672, - 1464, -1, -1, -1, -1, -1, 55, -1, 57, 58, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 692, - -1, 1106, 71, 696, -1, -1, -1, -1, -1, -1, - 703, 704, 81, 706, -1, -1, -1, -1, -1, -1, - 89, -1, -1, -1, 1129, 94, 3, 4, 5, 6, - 7, 8, 9, 3, 4, 5, 6, 14, -1, 9, - -1, 734, -1, -1, 737, -1, 739, -1, -1, -1, - -1, 744, 745, 746, -1, 32, 779, -1, -1, -1, - 37, 754, -1, 4, -1, 42, -1, 760, -1, 46, - -1, 48, 42, -1, 767, 768, 769, -1, 55, -1, - 57, 58, -1, -1, -1, 55, 779, 57, 58, -1, - 31, 32, -1, 34, 71, 36, -1, -1, -1, -1, - 41, 71, -1, -1, 81, -1, -1, -1, -1, -1, - -1, 81, 89, 54, 91, 56, -1, 94, 95, 89, - -1, -1, -1, -1, 94, -1, -1, -1, -1, 852, - 1235, 854, -1, -1, -1, -1, 829, -1, 79, -1, - -1, -1, 865, -1, -1, -1, 869, 870, 871, 3, - 4, 5, 6, -1, -1, 81, -1, -1, -1, 852, - -1, 854, -1, -1, -1, -1, -1, -1, 861, -1, - -1, -1, 865, -1, 867, -1, 869, 870, 871, -1, - -1, -1, -1, 876, 907, 908, 909, 128, 42, -1, - -1, 132, 133, -1, 135, -1, -1, -1, 139, -1, - 141, 55, 143, 57, 58, 146, 147, 148, -1, 63, - 903, -1, 905, -1, 907, 908, 909, 71, -1, 160, - -1, -1, -1, -1, -1, -1, 949, 81, 154, -1, - -1, -1, -1, -1, -1, 89, 177, 178, 179, -1, - 94, -1, -1, -1, -1, -1, 187, 4, 5, 175, - -1, 8, 9, -1, -1, -1, 949, 14, -1, -1, - -1, -1, 188, -1, -1, 206, -1, -1, -1, -1, - 963, -1, 29, -1, 31, -1, -1, -1, -1, -1, - 37, 974, -1, 976, -1, -1, 979, -1, -1, 46, - -1, -1, -1, -1, -1, 988, -1, -1, 55, 240, - 57, 58, 59, -1, 1, -1, 3, 4, 5, 6, - 7, 8, 9, -1, -1, -1, -1, 14, 1011, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 1021, -1, - 1023, 1436, 29, -1, 31, 32, 33, 94, -1, -1, - 37, -1, -1, -1, 1449, 42, -1, -1, -1, 46, - 47, -1, 49, -1, -1, -1, -1, -1, 55, -1, - 57, 58, 1055, 1056, 61, 1058, 63, -1, 309, -1, - -1, -1, -1, -1, 71, -1, -1, 4, 5, 1102, - 1103, 1104, 1105, 1106, 81, 326, -1, 1110, -1, -1, - -1, -1, 89, 334, -1, -1, -1, 94, 339, -1, - -1, -1, -1, -1, 1127, 1128, 1129, -1, -1, 1102, - 1103, 1104, 1105, 1106, 355, -1, -1, 1110, -1, -1, - -1, 48, -1, 1116, -1, -1, -1, -1, 55, -1, - 57, 58, -1, -1, 1127, 1128, 1129, -1, 379, -1, - -1, -1, -1, -1, 71, -1, -1, 388, -1, -1, - 1143, -1, -1, -1, 81, -1, 4, -1, 399, -1, - -1, 402, -1, -1, 91, 1158, 407, 94, 95, -1, - 1163, -1, 1165, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 31, 32, -1, 34, -1, 36, 1212, - 1213, -1, 1215, 41, -1, 436, -1, 438, -1, 440, - 441, 442, -1, -1, -1, 446, 54, -1, 56, -1, - 451, -1, -1, 454, -1, -1, -1, -1, 444, 1212, - 1213, -1, 1215, 449, -1, -1, -1, -1, -1, 470, - -1, -1, -1, -1, -1, 87, -1, 89, -1, 91, - -1, -1, 1235, -1, -1, -1, -1, -1, 474, 3, - 4, 5, 6, -1, 480, 9, -1, -1, -1, 500, - -1, -1, 503, -1, -1, -1, 492, 493, -1, 495, - -1, -1, -1, -1, -1, -1, -1, 518, 519, 520, - -1, -1, -1, -1, 136, -1, 138, 135, 42, -1, - -1, 139, 533, -1, 48, 143, -1, -1, 146, 147, - 148, 55, -1, 57, 58, -1, -1, -1, -1, -1, - -1, -1, 160, -1, -1, -1, -1, 71, -1, -1, - -1, -1, -1, 1316, 1317, 1318, -1, 81, -1, 177, - 178, 179, -1, -1, -1, 89, -1, 91, 579, -1, - 94, 95, 1, -1, 3, 4, 5, 6, 7, 8, - 9, 592, -1, -1, -1, 14, -1, -1, 206, -1, - -1, -1, 588, 589, -1, -1, -1, 593, -1, 610, - 29, -1, 31, 32, 33, -1, -1, -1, 37, 38, - -1, -1, -1, 42, -1, -1, -1, 46, 47, -1, - 49, -1, 240, -1, -1, -1, 55, -1, 57, 58, - -1, 1394, 61, -1, 63, -1, -1, -1, 649, 650, - 651, 652, 71, -1, -1, 3, 4, 5, 6, 7, - 8, 9, 81, -1, -1, -1, 14, -1, -1, -1, - 89, -1, -1, -1, -1, 94, -1, -1, -1, -1, - -1, 1434, 1435, 1436, 32, -1, -1, -1, 300, 37, - -1, 692, 111, -1, 42, 696, 1449, -1, 46, -1, - 48, -1, 703, 704, -1, 706, -1, 55, -1, 57, - 58, 1464, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 71, -1, -1, 338, 335, -1, -1, - -1, 339, -1, 81, -1, -1, 737, -1, 739, -1, - -1, 89, -1, 744, 745, 746, 94, -1, -1, 3, - 4, 5, 6, 3, 4, 5, 6, 7, 8, 9, - -1, -1, 12, -1, 14, -1, -1, -1, -1, -1, - -1, -1, 773, -1, -1, 761, -1, 763, -1, 29, - 388, 31, 32, -1, -1, -1, -1, 37, 42, -1, - -1, 399, 42, -1, 402, -1, 46, -1, 48, 407, - -1, 55, -1, 57, 58, 55, -1, 57, 58, 63, - -1, -1, -1, -1, 426, 427, -1, 71, -1, -1, - -1, 71, 434, -1, -1, -1, -1, 81, 436, -1, - 438, 81, 440, 441, 442, 89, -1, -1, 446, 89, - 94, 91, -1, 451, 94, 95, 454, -1, 98, 835, - 836, -1, 838, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 470, -1, -1, -1, -1, -1, 869, 870, - 871, -1, -1, -1, 875, -1, -1, -1, -1, -1, - 866, -1, -1, -1, -1, 497, 498, 68, 69, 70, - 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, - 81, 82, 83, 84, 85, -1, 907, 908, 909, -1, - -1, -1, -1, 914, -1, -1, -1, -1, 530, -1, - 532, -1, -1, 535, 536, 911, 538, 539, 540, 541, - 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, - 552, 553, 554, 555, 556, -1, -1, -1, 949, -1, - 562, -1, 564, 565, -1, -1, -1, -1, -1, 3, - 4, 5, 6, -1, -1, 9, -1, -1, 3, 4, - 5, 6, 580, -1, 9, -1, -1, -1, 979, -1, - 592, -1, -1, -1, -1, -1, -1, 599, -1, 975, - -1, -1, -1, -1, -1, -1, -1, -1, 42, 1000, - -1, 987, 610, -1, 48, -1, -1, 42, 620, 621, - 1011, 55, -1, 57, 58, -1, -1, -1, -1, -1, - 55, -1, 57, 58, 636, -1, -1, 71, -1, -1, - -1, -1, -1, -1, -1, 34, 71, 81, -1, -1, - -1, 649, 650, 651, 652, 89, 81, 91, -1, -1, - 94, 95, -1, -1, 89, 54, -1, -1, -1, 94, - -1, -1, -1, -1, -1, -1, -1, 679, 73, 74, - 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, - 85, 1082, -1, -1, 692, 1071, -1, -1, 696, -1, - -1, -1, -1, -1, -1, 703, 704, -1, 706, -1, - -1, 1102, 1103, 1104, 1105, 1106, -1, 1108, -1, 1110, - -1, -1, -1, -1, 3, 4, 5, 6, -1, -1, - 9, -1, -1, 1109, 736, -1, 1127, 1128, 1129, 737, - -1, 739, -1, -1, -1, -1, 744, 745, 746, -1, - -1, -1, -1, 755, 756, -1, 758, 146, 147, 148, - -1, -1, -1, 42, -1, -1, -1, 1158, -1, 48, - -1, 773, 1163, -1, 1165, -1, 55, -1, 57, 58, - -1, -1, -1, -1, -1, -1, -1, -1, 177, 178, - 179, 1167, 71, 795, -1, 1171, -1, -1, -1, -1, - -1, -1, 81, -1, -1, 3, 4, 5, 6, -1, - 89, 9, 91, -1, -1, 94, 95, 206, -1, -1, - -1, 1212, 1213, -1, 1215, -1, -1, -1, 1204, -1, - 832, 833, -1, -1, -1, 328, 329, 330, -1, -1, - -1, -1, -1, -1, 42, 847, -1, 849, -1, 851, - -1, -1, -1, -1, -1, -1, -1, 55, -1, 57, - 58, -1, -1, -1, -1, -1, -1, 1243, -1, -1, - -1, 1247, -1, 71, -1, -1, -1, -1, 876, -1, - -1, -1, 884, 81, -1, -1, -1, -1, -1, -1, - 279, 89, 894, 1269, 1270, -1, 94, -1, -1, -1, - -1, -1, -1, -1, 906, -1, -1, -1, -1, 907, - 908, 909, -1, -1, -1, -1, -1, 919, -1, -1, - -1, -1, -1, -1, -1, 1316, 1317, 1318, -1, 931, - 1, -1, 3, 4, 5, 6, 7, 8, 9, 328, - 329, 330, -1, 14, -1, -1, -1, 949, -1, -1, - -1, 949, -1, -1, -1, -1, -1, -1, 29, -1, - 31, 32, 33, -1, -1, -1, 37, 38, -1, -1, - -1, 42, -1, -1, -1, 46, 47, -1, 49, -1, - -1, 979, -1, -1, 55, -1, 57, 58, -1, 991, - 61, -1, 63, -1, -1, -1, -1, -1, -1, 388, - 71, -1, -1, 1394, -1, -1, -1, -1, -1, -1, - 81, -1, -1, 1011, -1, -1, -1, -1, 89, -1, - -1, -1, -1, 94, 3, 4, 5, 6, -1, -1, - 9, 3, 4, 5, 6, -1, -1, -1, 1040, 1041, - 111, -1, 1044, 1434, 1435, 1436, -1, 436, -1, 438, - -1, 440, 441, 442, -1, -1, -1, 446, -1, -1, - -1, 1063, 451, 42, -1, 454, -1, -1, -1, -1, - 42, -1, -1, 1464, -1, -1, 55, -1, 57, 58, - -1, -1, -1, 55, -1, 57, 58, -1, -1, 582, - 583, -1, 71, -1, -1, -1, -1, -1, -1, 71, - -1, -1, 81, -1, 1102, 1103, 1104, 1105, 1106, 81, - 89, 4, 1110, -1, -1, 94, 1118, 89, 1120, -1, - 1122, -1, 94, 1125, -1, -1, -1, -1, -1, 1127, - 1128, 1129, 1134, 1135, -1, -1, -1, 1139, 31, 32, - -1, -1, -1, 36, -1, -1, -1, -1, 41, -1, - -1, -1, 1154, 1155, -1, -1, 649, -1, 651, 652, - 1158, 654, -1, 56, -1, 1163, -1, 1165, -1, -1, - 3, 4, 5, 6, -1, -1, -1, -1, 1180, 568, - 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, - 84, 85, -1, 582, 583, -1, 585, -1, -1, 692, - -1, -1, -1, 592, -1, -1, -1, 1209, -1, 42, - -1, -1, -1, -1, 1212, 1213, -1, 1215, -1, -1, - -1, 610, 55, -1, 57, 58, -1, -1, 61, -1, - -1, -1, -1, -1, -1, -1, 1238, -1, 71, -1, - -1, 54, 135, -1, -1, -1, 139, -1, 81, -1, - 143, -1, 1254, -1, 4, 5, 89, -1, 8, 9, - 649, 94, 651, 652, 14, 654, 79, 160, -1, 82, - -1, -1, -1, -1, 1276, -1, -1, -1, -1, 29, - -1, 31, -1, -1, 177, 178, 779, 37, -1, -1, - 103, -1, 105, -1, -1, -1, 46, -1, 48, -1, - -1, 1303, -1, 692, -1, 55, -1, 57, 58, -1, - -1, -1, -1, -1, 703, 704, -1, 706, 1316, 1317, - 1318, 71, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 81, -1, -1, 1336, 1337, -1, -1, -1, -1, - -1, 91, -1, 1345, 94, 95, -1, 240, -1, 3, - 4, 5, 6, -1, -1, 744, -1, -1, -1, 852, - -1, 854, -1, -1, 177, 178, 179, -1, -1, -1, - -1, -1, 865, -1, 187, -1, 869, 870, 767, 768, - 769, -1, -1, -1, -1, -1, -1, -1, 42, -1, - 779, -1, 1394, 206, -1, -1, 1394, -1, -1, -1, - -1, 55, -1, 57, 58, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 907, 908, 229, 71, -1, -1, - -1, -1, 1424, -1, -1, -1, -1, 81, -1, -1, - 243, -1, -1, -1, -1, 89, 1434, 1435, 1436, -1, - 94, -1, -1, -1, -1, -1, 339, 1, -1, 3, - 4, 5, 6, 7, 8, 9, -1, -1, -1, -1, - 14, -1, -1, 852, -1, 854, 1464, -1, -1, -1, - -1, -1, -1, 27, 28, 29, 865, 31, 32, 33, - 869, 870, 871, 37, -1, -1, -1, -1, 42, -1, - -1, 45, 46, 47, -1, 49, -1, -1, -1, -1, - -1, 55, -1, 57, 58, -1, 399, 61, -1, 402, - -1, -1, -1, -1, 407, -1, -1, 71, 907, 908, - 909, 334, 335, -1, -1, -1, 1, 81, 3, 4, - 5, 6, 7, 8, 9, 89, -1, -1, -1, 14, - 94, -1, -1, 436, 1546, 438, 100, -1, -1, -1, - -1, -1, -1, -1, 29, -1, 31, 32, 451, -1, - 949, -1, 37, -1, -1, -1, -1, 42, -1, -1, - -1, 46, -1, -1, 49, 388, -1, 470, -1, -1, - 55, -1, 57, 58, -1, -1, 61, -1, -1, -1, - 979, -1, -1, -1, -1, -1, 71, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 81, -1, -1, 1102, - 1103, 1104, 1105, -1, 89, -1, -1, 1110, -1, 94, - -1, -1, -1, 436, -1, 438, -1, 440, 441, 442, - -1, -1, -1, 446, 1127, 1128, -1, -1, 451, -1, - -1, 454, -1, -1, -1, -1, -1, -1, 1, -1, - 3, 4, 5, 6, 7, 8, 9, -1, -1, -1, - -1, 14, -1, -1, -1, -1, 1055, 1056, -1, 1058, - -1, -1, -1, -1, -1, -1, 29, -1, 31, 32, - 33, -1, -1, -1, 37, 38, -1, -1, -1, 42, - -1, -1, -1, 46, 47, -1, 49, -1, -1, -1, - -1, -1, 55, -1, 57, 58, -1, -1, 61, -1, - 63, -1, -1, 1102, 1103, 1104, 1105, 1106, 71, 1212, - 1213, 1110, 1215, -1, -1, -1, -1, -1, 81, -1, - -1, -1, -1, -1, -1, -1, 89, -1, 1127, 1128, - 1129, 94, 4, 5, -1, -1, -1, 9, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 650, 111, -1, - -1, -1, -1, -1, -1, -1, -1, 14, -1, 1158, - -1, -1, -1, -1, -1, -1, -1, 24, 25, -1, - -1, -1, 595, 596, 31, 32, 48, 34, -1, -1, - -1, -1, -1, 55, -1, 57, 58, 610, -1, -1, - -1, -1, -1, 696, -1, -1, -1, -1, -1, 71, - 703, 704, -1, 706, -1, -1, -1, 64, -1, 81, - -1, -1, 32, 1212, 1213, -1, 1215, -1, -1, 91, - -1, -1, 94, 95, -1, -1, 649, -1, 651, 652, - -1, -1, -1, -1, 737, -1, 739, -1, -1, -1, - -1, 744, 745, 746, 64, 65, 66, 67, 68, 69, - 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, - 80, 81, 82, 83, 84, 85, 123, -1, 125, 692, - -1, 128, -1, -1, -1, 132, 133, -1, -1, -1, - 703, 704, 139, 706, 141, 142, 143, -1, -1, 146, - 147, 148, -1, -1, -1, -1, -1, 1, -1, 3, - 4, 5, 6, 7, 8, 9, -1, -1, 731, -1, - 14, -1, -1, -1, -1, -1, -1, 1316, -1, 1318, - -1, 744, -1, 27, 28, 29, -1, 31, 32, 33, - -1, -1, -1, 37, -1, -1, -1, -1, 42, -1, - -1, 45, 46, 47, -1, 49, -1, 3, 4, 5, - 6, 55, -1, 57, 58, 4, 5, 61, -1, 8, - 9, -1, -1, 220, 221, 14, -1, 71, -1, -1, - -1, -1, 3, 4, 5, 6, -1, 81, 9, -1, - 29, -1, 31, 240, -1, 89, 42, -1, 37, -1, - 94, -1, -1, -1, -1, 1394, 100, 46, -1, 55, - -1, 57, 58, -1, 907, 908, 55, -1, 57, 58, - -1, 42, -1, -1, -1, 71, -1, 48, -1, -1, - -1, -1, 279, -1, 55, 81, 57, 58, -1, -1, - -1, -1, -1, 89, -1, 1434, 1435, 1436, 94, -1, - 71, -1, -1, -1, -1, 94, -1, -1, -1, -1, - 81, -1, 875, 876, 877, -1, -1, -1, 89, -1, - 91, -1, -1, 94, 95, 1464, -1, -1, -1, 326, - -1, 328, 329, -1, -1, -1, 979, -1, 4, 5, - -1, 7, 8, 9, 907, 908, 909, -1, 14, -1, - -1, 914, -1, -1, -1, -1, -1, -1, 355, -1, - -1, -1, -1, 29, -1, 31, 32, -1, 1011, -1, - -1, 37, -1, -1, -1, -1, -1, -1, -1, -1, - 46, -1, 379, 49, -1, -1, 949, -1, -1, 55, - -1, 57, 58, -1, -1, -1, -1, -1, 395, -1, - -1, -1, 399, -1, -1, 402, -1, -1, -1, -1, - 407, -1, -1, -1, -1, -1, 979, -1, -1, -1, - -1, -1, 3, 4, 5, 6, 7, 8, 9, -1, - -1, -1, -1, 14, -1, -1, -1, 1000, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 29, -1, - 31, 32, -1, -1, -1, -1, 37, -1, -1, 1102, - 1103, 42, -1, -1, -1, 46, -1, 1110, -1, -1, - 467, -1, 469, -1, 55, -1, 57, 58, -1, -1, - 61, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 71, -1, -1, -1, -1, -1, -1, 494, -1, -1, - 81, -1, -1, -1, -1, -1, -1, -1, 89, -1, - -1, -1, -1, 94, -1, 1158, -1, -1, -1, 1082, - 1163, -1, 1165, -1, 3, 4, 5, 6, 7, 8, - 9, -1, -1, 12, -1, 14, -1, -1, -1, 1102, - 1103, 1104, 1105, 1106, -1, 1108, -1, 1110, -1, -1, - 29, -1, 31, 32, -1, -1, -1, -1, 37, -1, - -1, -1, -1, 42, 1127, 1128, 1129, 46, -1, 1212, - 1213, 568, 1215, -1, -1, -1, 55, -1, 57, 58, - -1, -1, 579, 580, -1, 582, 583, -1, -1, -1, - -1, -1, 71, -1, -1, 1158, -1, -1, -1, -1, - -1, -1, 81, -1, -1, -1, -1, -1, -1, -1, - 89, -1, -1, -1, -1, 94, 69, 70, 71, 72, - 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, - 83, 84, 85, -1, -1, 1, -1, 3, 4, 5, - 6, 7, 8, 9, 641, -1, 12, -1, 14, 1212, - 1213, -1, 1215, -1, -1, -1, 653, -1, -1, 25, - -1, 27, 28, -1, -1, -1, 32, -1, -1, -1, - -1, 37, -1, -1, 1317, 672, 42, -1, -1, -1, - 46, -1, 48, -1, -1, -1, -1, -1, -1, 55, - -1, 57, 58, 59, 60, 61, -1, 63, 64, 65, - 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, - 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, - -1, 87, 88, 89, -1, 91, 92, 93, 94, 95, - 96, -1, 98, 99, 731, -1, -1, 734, 104, -1, - -1, -1, -1, 109, 110, 111, -1, 113, -1, -1, - -1, -1, -1, 1316, -1, 1318, 1, -1, 3, 4, - 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, + 156, 79, 4, 426, 673, 670, 54, 24, 4, 125, + 4, 193, 329, 385, 232, 335, 448, 83, 336, 337, + 385, 4, 285, 286, 385, 58, 530, 146, 147, 653, + 469, 36, 14, 4, 36, 830, 41, 31, 32, 41, + 36, 123, 36, 223, 132, 41, 228, 41, 660, 353, + 737, 56, 739, 36, 317, 4, 201, 202, 41, 746, + 34, 4, 1254, 141, 585, 36, 71, 421, 128, 1261, + 41, 592, 193, 133, 392, 393, 132, 133, 83, 4, + 61, 202, 87, 1408, 89, 56, 91, 36, 11, 83, + 1247, 1324, 41, 36, 38, 277, 1409, 11, 41, 11, + 82, 106, 107, 53, 34, 1155, 1156, 1410, 9, 187, + 79, 36, 45, 48, 60, 63, 41, 335, 456, 1169, + 60, 1446, 59, 105, 0, 65, 7, 63, 65, 0, + 135, 136, 89, 138, 91, 473, 76, 754, 60, 75, + 63, 135, 75, 760, 385, 1, 75, 329, 1, 59, + 49, 12, 146, 147, 586, 160, 1, 38, 83, 94, + 193, 62, 110, 1426, 135, 111, 160, 111, 201, 202, + 524, 12, 146, 147, 148, 110, 287, 288, 1481, 136, + 12, 111, 1445, 177, 178, 502, 135, 110, 110, 160, + 100, 302, 135, 434, 305, 228, 110, 308, 110, 60, + 311, 151, 63, 59, 315, 179, 59, 63, 106, 107, + 135, 160, 323, 1526, 59, 196, 1541, 160, 63, 60, + 63, 1413, 63, 204, 65, 75, 48, 36, 60, 94, + 48, 63, 41, 672, 184, 160, 1286, 98, 326, 1502, + 96, 25, 55, 65, 277, 1295, 1296, 229, 1298, 110, + 867, 96, 1409, 1486, 1049, 61, 322, 98, 414, 3, + 4, 5, 75, 1455, 197, 60, 98, 110, 880, 94, + 326, 883, 94, 278, 243, 59, 94, 95, 902, 63, + 34, 76, 643, 365, 604, 61, 60, 39, 4, 5, + 608, 94, 110, 9, 63, 355, 329, 48, 76, 60, + 78, 48, 61, 55, 309, 111, 75, 452, 453, 921, + 922, 1503, 96, 57, 58, 460, 109, 322, 48, 379, + 674, 440, 441, 379, 696, 330, 61, 472, 322, 633, + 75, 696, 453, 338, 339, 111, 110, 81, 55, 55, + 388, 57, 58, 94, 585, 339, 491, 94, 95, 110, + 871, 592, 111, 335, 48, 71, 574, 390, 75, 976, + 60, 27, 28, 110, 94, 81, 32, 25, 339, 27, + 28, 988, 767, 768, 769, 692, 111, 48, 75, 95, + 385, 338, 1432, 1433, 389, 48, 48, 94, 909, 385, + 339, 385, 146, 147, 148, 61, 339, 322, 1193, 65, + 94, 59, 906, 25, 1021, 63, 1023, 518, 519, 832, + 110, 309, 61, 48, 339, 25, 61, 27, 28, 452, + 453, 55, 55, 94, 95, 179, 55, 460, 949, 434, + 65, 94, 94, 95, 48, 416, 868, 55, 96, 472, + 434, 75, 75, 4, 5, 111, 440, 441, 110, 59, + 8, 9, 770, 63, 32, 696, 14, 75, 491, 94, + 385, 63, 3, 4, 5, 470, 440, 441, 442, 3, + 4, 5, 6, 1085, 1086, 59, 470, 63, 459, 37, + 94, 95, 75, 1170, 48, 55, 96, 470, 46, 75, + 48, 48, 497, 63, 55, 500, 57, 58, 503, 55, + 566, 470, 507, 508, 509, 510, 511, 48, 42, 434, + 71, 4, 5, 754, 55, 520, 57, 58, 446, 760, + 81, 470, 4, 57, 58, 530, 454, 470, 533, 462, + 94, 903, 55, 431, 95, 974, 94, 94, 903, 166, + 497, 721, 903, 723, 48, 470, 4, 5, 728, 48, + 59, 55, 75, 94, 36, 89, 876, 60, 61, 41, + 565, 566, 610, 111, 57, 58, 3, 4, 5, 714, + 48, 75, 566, 94, 3, 4, 5, 48, 611, 48, + 585, 899, 55, 937, 76, 1106, 55, 592, 582, 583, + 94, 585, 55, 4, 5, 94, 95, 779, 592, 57, + 58, 649, 500, 651, 652, 503, 75, 55, 48, 507, + 873, 95, 49, 1134, 596, 731, 94, 1040, 1041, 652, + 57, 58, 520, 94, 641, 94, 867, 1059, 57, 58, + 871, 636, 48, 110, 48, 533, 48, 11, 49, 537, + 1251, 566, 1253, 55, 692, 650, 57, 58, 48, 654, + 60, 61, 4, 5, 94, 672, 110, 9, 876, 692, + 585, 110, 903, 75, 110, 563, 111, 592, 909, 48, + 81, 569, 4, 5, 14, 94, 48, 1116, 94, 636, + 94, 714, 94, 23, 61, 48, 440, 441, 442, 8, + 9, 696, 1449, 3, 94, 14, 744, 1015, 1016, 1017, + 60, 61, 696, 55, 113, 57, 58, 1130, 949, 1148, + 25, 95, 27, 28, 95, 94, 1139, 1140, 37, 71, + 63, 1144, 94, 55, 64, 57, 58, 46, 113, 81, + 841, 94, 737, 9, 739, 976, 12, 1054, 1495, 94, + 745, 746, 60, 737, 59, 739, 779, 988, 63, 754, + 755, 756, 746, 758, 737, 760, 739, 63, 869, 870, + 754, 94, 1185, 746, 1055, 1056, 760, 1058, 737, 75, + 739, 696, 48, 744, 745, 75, 745, 746, 4, 5, + 1021, 96, 1023, 123, 60, 75, 62, 63, 737, 65, + 739, 971, 972, 973, 737, 75, 739, 746, 755, 756, + 76, 758, 78, 746, 1469, 145, 75, 740, 741, 11, + 27, 28, 737, 111, 739, 32, 749, 110, 94, 95, + 1489, 746, 98, 49, 829, 4, 5, 60, 833, 754, + 55, 57, 58, 110, 110, 760, 914, 27, 28, 84, + 85, 55, 110, 60, 61, 60, 61, 110, 65, 63, + 1273, 3, 4, 5, 6, 81, 861, 3, 4, 5, + 6, 75, 867, 4, 5, 1106, 871, 75, 60, 110, + 49, 111, 48, 867, 61, 869, 870, 871, 57, 58, + 220, 221, 60, 61, 76, 1203, 78, 111, 1311, 65, + 42, 113, 232, 1134, 876, 113, 42, 49, 903, 110, + 905, 906, 81, 49, 909, 57, 58, 903, 49, 903, + 75, 57, 58, 907, 908, 909, 57, 58, 94, 95, + 60, 61, 1000, 60, 61, 25, 75, 27, 28, 81, + 55, 979, 75, 113, 55, 909, 1253, 89, 113, 837, + 81, 110, 867, 89, 949, 59, 871, 3, 4, 5, + 1061, 7, 8, 9, 55, 949, 4, 5, 963, 59, + 110, 301, 63, 63, 969, 3, 4, 5, 6, 55, + 94, 976, 110, 871, 75, 949, 110, 63, 903, 8, + 113, 1335, 976, 988, 909, 1104, 1105, 4, 5, 75, + 3, 4, 5, 1347, 988, 48, 96, 65, 60, 94, + 48, 57, 58, 343, 42, 111, 1011, 55, 979, 57, + 58, 61, 352, 1132, 1133, 55, 1021, 1011, 1023, 57, + 58, 1132, 1133, 71, 949, 365, 37, 1021, 1011, 1023, + 1108, 1000, 49, 81, 65, 65, 49, 65, 110, 61, + 57, 58, 1011, 91, 57, 58, 94, 95, 3, 4, + 5, 976, 7, 8, 9, 63, 110, 94, 1063, 992, + 65, 110, 1011, 988, 81, 998, 999, 1439, 1011, 1002, + 1003, 969, 1426, 1006, 1439, 55, 110, 55, 110, 65, + 65, 60, 37, 63, 110, 63, 1011, 3, 4, 5, + 717, 1445, 3, 4, 5, 75, 1021, 75, 1023, 1116, + 55, 1106, 57, 58, 59, 63, 1063, 113, 1531, 110, + 1104, 1105, 1106, 110, 3, 4, 5, 6, 1472, 3, + 4, 5, 1127, 110, 751, 1127, 1443, 467, 110, 1134, + 1104, 1105, 1106, 1127, 76, 76, 1247, 55, 1132, 1133, + 1134, 57, 58, 59, 1127, 63, 57, 58, 1502, 76, + 105, 106, 107, 42, 76, 909, 1510, 75, 1132, 1133, + 1134, 4, 5, 4, 5, 1170, 55, 110, 57, 58, + 56, 55, 58, 57, 58, 59, 1170, 110, 1127, 110, + 63, 1106, 63, 60, 87, 63, 89, 1170, 91, 3, + 4, 5, 532, 110, 113, 949, 111, 1166, 1439, 95, + 89, 1170, 1127, 1251, 110, 1253, 110, 89, 49, 1134, + 75, 113, 55, 48, 57, 58, 57, 58, 110, 110, + 1253, 1170, 3, 4, 5, 113, 7, 1170, 71, 60, + 110, 110, 65, 136, 574, 138, 1134, 113, 81, 110, + 81, 55, 1247, 57, 58, 1170, 110, 1252, 111, 1254, + 31, 111, 1254, 1247, 65, 60, 1261, 38, 60, 1261, + 1254, 1443, 1418, 110, 1247, 1270, 110, 1261, 94, 94, + 94, 1254, 94, 111, 55, 8, 57, 58, 1261, 113, + 166, 110, 110, 1181, 1182, 1183, 1184, 3, 4, 5, + 6, 27, 28, 1191, 110, 110, 32, 110, 1247, 111, + 110, 641, 1421, 1422, 113, 1254, 110, 193, 34, 110, + 1421, 1422, 1261, 653, 110, 201, 202, 81, 82, 83, + 84, 85, 1247, 110, 60, 61, 42, 110, 110, 1254, + 65, 110, 55, 49, 110, 110, 1261, 48, 63, 679, + 113, 57, 58, 110, 1242, 110, 97, 3, 4, 5, + 1104, 1105, 1106, 110, 981, 982, 7, 8, 9, 63, + 1293, 1294, 63, 14, 61, 81, 3, 4, 5, 61, + 7, 8, 9, 89, 9, 31, 61, 16, 1132, 1133, + 1134, 32, 110, 1010, 1358, 94, 37, 94, 3, 4, + 5, 110, 712, 110, 61, 46, 1444, 300, 1403, 55, + 37, 57, 58, 1408, 1409, 1410, 1408, 110, 1413, 1403, + 1443, 1413, 4, 5, 1408, 1409, 1410, 110, 1423, 1413, + 57, 58, 113, 110, 1357, 1408, 1409, 1421, 1422, 61, + 1413, 94, 94, 753, 1439, 338, 3, 4, 5, 759, + 55, 1446, 57, 58, 1446, 1439, 1344, 1421, 1422, 1423, + 1455, 17, 1446, 1455, 61, 109, 99, 49, 110, 1408, + 1409, 1455, 61, 1446, 1413, 57, 58, 11, 110, 110, + 110, 61, 1455, 61, 61, 94, 1481, 60, 1403, 65, + 110, 61, 110, 1408, 1409, 1410, 110, 1481, 1413, 11, + 57, 58, 4, 5, 3, 4, 5, 1446, 1503, 61, + 11, 1503, 61, 389, 390, 1403, 1455, 0, 0, 1503, + 0, 1409, 1410, 413, 1439, 355, 2, 903, 745, 1116, + 1503, 1446, 160, 426, 427, 1423, 3, 4, 5, 6, + 1455, 434, 93, 45, 1161, 1162, 1541, 1164, 1165, 1541, + 1167, 1474, 862, 55, 864, 57, 58, 1541, 57, 58, + 1468, 160, 892, 138, 1503, 1334, 1481, 1541, 1541, 445, + 280, 48, 902, 1252, 892, 42, 452, 453, 679, 222, + 456, 887, 49, 1148, 460, 974, 1011, 745, 1503, 1168, + 57, 58, 617, 1481, 7, 8, 9, 473, 885, 566, + 184, 14, 1541, 123, 497, 498, 326, 1254, 1128, 1497, + 87, 88, 1510, 1489, 1358, 92, 93, 94, 95, 32, + 1458, 1520, 89, 34, 37, 1522, 1541, 958, 1270, -1, + -1, 1519, -1, 46, -1, -1, -1, 530, 1526, 532, + -1, -1, 535, 536, -1, 538, 539, 540, 541, 542, + 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, + 553, 554, 555, 556, -1, -1, 1283, 1284, -1, 562, + -1, 564, 565, -1, -1, -1, -1, 1421, 1422, 1423, + -1, -1, -1, -1, -1, 1, -1, 3, 4, 5, + 6, 7, 8, 9, -1, 7, 8, 9, 14, 592, + 4, 5, 14, -1, -1, 9, 599, -1, -1, -1, + 1020, 1041, 1022, 29, -1, 31, 32, 33, -1, -1, + 32, 37, 38, -1, -1, 37, 42, 620, 621, -1, + 46, 47, -1, 49, 46, 611, 147, 148, -1, 55, + -1, 57, 58, 636, 48, 61, -1, 63, 79, 61, + -1, 55, -1, 57, 58, 71, 427, -1, -1, -1, + 1377, 1378, 1379, 434, -1, 81, 1076, 71, 179, -1, + -1, -1, 103, 89, 650, -1, 652, 81, 94, 79, + 80, 81, 82, 83, 84, 85, 679, 91, -1, -1, + 94, 95, -1, -1, 1124, 111, -1, -1, 4, 5, + 1130, 132, 8, 9, -1, -1, -1, 4, 14, -1, + 141, -1, 1429, 1430, -1, -1, 692, 14, -1, -1, + -1, -1, -1, 29, -1, 31, -1, 498, 25, -1, + -1, 37, -1, -1, 31, 32, -1, 34, 714, 36, + 46, 717, 1152, 736, 41, -1, -1, 1157, -1, 55, + -1, 57, 58, 59, -1, -1, 187, 54, -1, 56, + -1, -1, 755, 756, -1, 758, -1, 64, -1, 745, + 3, 4, 5, -1, 71, 751, -1, 1494, -1, -1, + 773, -1, -1, -1, -1, 82, 83, -1, 94, 220, + -1, 562, -1, 564, 565, -1, -1, 1207, 309, -1, + -1, -1, 795, -1, -1, -1, 39, 40, 105, 42, + -1, -1, 243, 1243, -1, -1, 3, 4, 5, 6, + -1, 592, 55, -1, 57, 58, -1, -1, 599, -1, + -1, 128, -1, -1, -1, -1, 133, 12, 135, 832, + 833, -1, 139, -1, -1, 142, 143, -1, -1, 146, + 147, 148, 27, 28, 847, 42, 849, 32, 851, -1, + -1, -1, -1, 160, -1, -1, -1, -1, 55, -1, + 57, 58, -1, 48, 61, -1, 63, -1, -1, -1, + 177, 178, 179, -1, 71, 60, 61, -1, 63, -1, + 65, 884, 1302, 1303, 81, -1, 1326, -1, -1, -1, + -1, 894, 89, 334, -1, -1, -1, 94, 1318, 206, + -1, -1, -1, 906, 7, 8, 9, -1, -1, 94, + 95, 14, 427, 98, 221, -1, 919, -1, -1, 434, + 441, 442, 229, -1, -1, 110, -1, -1, 931, 32, + -1, -1, -1, 240, 37, -1, -1, -1, -1, 3, + 4, 5, 6, 46, -1, 9, 949, -1, -1, -1, + 1370, 1371, -1, -1, 395, -1, -1, -1, 61, 77, + 78, 79, 80, 81, 82, 83, 84, 85, -1, 1389, + 1390, 278, 279, -1, -1, -1, -1, -1, 42, 500, + -1, -1, 503, 498, 48, -1, -1, -1, 991, -1, + -1, 55, 773, 57, 58, 981, 982, -1, 519, 520, + -1, 328, 329, 330, -1, -1, -1, 71, -1, -1, + -1, -1, 533, -1, -1, 322, -1, 81, -1, 326, + -1, 328, 329, 330, 1010, 89, 467, 91, -1, -1, + 94, 95, 339, -1, -1, -1, -1, 1040, 1041, -1, + -1, 1044, -1, -1, -1, -1, -1, 562, 355, 564, + 565, -1, 833, 494, 3, 4, 5, 6, -1, -1, + 1063, -1, -1, -1, -1, -1, 847, -1, 849, -1, + 851, 592, 379, -1, -1, -1, -1, -1, 385, -1, + -1, 388, 389, -1, 599, -1, -1, -1, -1, -1, + -1, -1, 399, 42, -1, 402, -1, -1, -1, 48, + 407, -1, -1, -1, -1, -1, 55, -1, 57, 58, + -1, -1, -1, 894, -1, 1118, -1, 1120, -1, 1122, + -1, -1, 71, -1, -1, -1, -1, 1130, -1, 436, + -1, 438, 81, 440, 441, 442, 1139, 1140, 579, 446, + 89, 1144, 91, -1, 451, 94, 95, 454, -1, -1, + 931, -1, -1, -1, 595, -1, 1159, 1160, -1, -1, + -1, -1, -1, 470, -1, -1, -1, -1, 949, -1, + -1, -1, -1, -1, -1, 1161, 1162, -1, 1164, 1165, + -1, 1167, 1185, -1, 1, -1, 3, 4, 5, 6, + 7, 8, 9, -1, -1, -1, -1, 14, -1, -1, + -1, 508, 509, 510, 511, -1, -1, -1, -1, -1, + -1, 1214, 29, -1, 31, 32, 33, -1, -1, -1, + 37, 38, -1, -1, -1, 42, -1, -1, -1, 46, + 47, -1, 49, -1, -1, 1238, -1, -1, 55, -1, + 57, 58, -1, -1, 61, -1, 63, -1, -1, -1, + -1, -1, 773, -1, 71, 582, 583, -1, 585, 566, + -1, 568, -1, -1, 81, 592, 1252, 1253, -1, -1, + 1273, -1, 89, 580, -1, 582, 583, 94, 585, -1, + -1, -1, -1, -1, -1, 592, 1289, -1, -1, 596, + -1, -1, -1, -1, 111, -1, -1, 1283, 1284, -1, + -1, -1, -1, 610, -1, -1, -1, -1, 1311, 3, + 4, 5, 6, -1, -1, 9, -1, -1, 833, -1, + -1, -1, 649, -1, 651, 652, 1, 654, 3, 4, + 5, 6, 847, 8, 849, -1, 851, 1118, -1, 1120, + -1, 1122, 649, 650, 651, 652, 653, 654, 42, 870, + 871, -1, -1, -1, -1, 1358, -1, -1, -1, -1, + -1, 55, -1, 57, 58, 692, -1, 42, -1, -1, + -1, -1, 1375, 1376, 49, -1, -1, 71, -1, 894, + 55, 1384, 57, 58, -1, 692, -1, 81, 909, 696, + -1, 1377, 1378, 1379, -1, 89, 703, 704, -1, 706, + 94, -1, -1, -1, -1, -1, -1, -1, 1411, -1, + -1, -1, -1, -1, 89, -1, 931, -1, 106, 107, + -1, -1, -1, -1, -1, -1, -1, 734, 949, -1, + 737, -1, 739, 1214, 875, -1, 877, 744, 745, 746, + -1, -1, -1, 1429, 1430, -1, -1, 754, -1, -1, + -1, -1, 779, 760, -1, 3, 4, 5, 6, -1, 767, 768, 769, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 779, -1, 29, 30, 31, 32, 33, -1, - 35, 36, 37, -1, 39, 40, 41, 42, 43, 44, - -1, 46, -1, 48, -1, 50, 51, 52, 53, 54, - 55, -1, 57, 58, 59, -1, -1, 62, -1, -1, - -1, -1, -1, 68, -1, -1, 71, -1, -1, -1, - -1, 1394, -1, -1, 79, 80, 81, -1, -1, -1, - -1, -1, 87, 88, 89, -1, 91, -1, -1, 94, - 95, -1, -1, 98, -1, 852, -1, 854, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 112, 865, -1, - -1, 1434, 1435, 1436, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 1, -1, 3, 4, - 5, 6, 7, 8, 9, 10, 11, -1, 13, 14, - 15, 1464, 17, 18, 19, 20, 21, 22, 23, 24, - 25, 26, 27, 28, 29, 30, 31, 32, 33, -1, - 35, 36, 37, -1, 39, 40, 41, 42, 43, 44, - -1, 46, -1, -1, -1, 50, 51, 52, 53, 54, - 55, -1, 57, 58, 59, -1, 61, 62, -1, -1, - -1, -1, -1, 68, 1, -1, 71, 4, 5, -1, - -1, 8, 9, -1, 79, 80, 81, 14, -1, -1, - -1, -1, 87, 88, 89, -1, -1, 974, -1, 94, - -1, 96, 29, -1, 31, -1, -1, -1, -1, -1, - 37, -1, 39, 40, -1, -1, 111, 112, -1, 46, - -1, 48, -1, -1, 1001, -1, -1, -1, 55, -1, - 57, 58, -1, 60, -1, -1, -1, 64, 65, 66, - 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, - 77, 78, 79, 80, 81, 82, 83, 84, -1, -1, - 87, 88, 89, -1, -1, 92, -1, -1, 95, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 1055, 1056, - -1, 1058, -1, -1, 1, 112, 3, 4, 5, 6, - 7, 8, 9, 10, 11, -1, 13, 14, 15, -1, - 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, - 27, 28, 29, 30, 31, 32, 33, -1, 35, 36, - 37, -1, 39, 40, 41, 42, 43, 44, -1, 46, - -1, -1, -1, 50, 51, 52, 53, 54, 55, 1116, - 57, 58, 59, -1, 61, 62, -1, -1, -1, -1, - -1, 68, -1, -1, 71, -1, -1, -1, -1, -1, - -1, -1, 79, 80, 81, -1, 1143, -1, -1, -1, - 87, 88, 89, -1, -1, -1, -1, 94, -1, 96, - -1, -1, -1, -1, 1161, -1, 1163, -1, -1, -1, - -1, -1, -1, -1, 1, 112, 3, 4, 5, 6, - 7, 8, 9, 10, 11, 12, 13, 14, 72, 73, + -1, -1, 779, 914, -1, -1, -1, -1, 4, 5, + -1, 7, 8, 9, -1, -1, 12, -1, 14, -1, + -1, -1, -1, -1, 42, -1, -1, 3, 4, 5, + 6, -1, -1, 29, -1, 31, 32, 55, 1494, 57, + 58, 37, -1, 61, -1, -1, -1, -1, -1, -1, + 46, -1, 829, 71, -1, 852, -1, 854, 1531, 55, + -1, 57, 58, 81, -1, -1, 42, -1, 865, -1, + -1, 89, 869, 870, 871, 852, 94, 854, -1, 55, + -1, 57, 58, -1, 861, -1, -1, 63, 865, 1000, + 867, -1, 869, 870, 871, 71, -1, -1, -1, 876, + -1, -1, 98, -1, -1, 81, -1, 1358, -1, -1, + 907, 908, 909, 89, 1105, 1106, 4, 5, 94, -1, + -1, 9, -1, -1, -1, -1, 903, -1, 905, 4, + 907, 908, 909, 1118, -1, 1120, -1, 1122, -1, 14, + -1, -1, 1133, 1134, -1, -1, -1, -1, -1, 24, + 25, 309, 949, -1, -1, -1, 31, 32, -1, 34, + 48, 36, -1, -1, -1, -1, 41, 55, -1, 57, + 58, 1082, 949, -1, -1, -1, -1, -1, -1, 54, + -1, 56, -1, 71, -1, -1, 963, -1, -1, 64, + -1, -1, -1, 81, -1, -1, 71, 1108, -1, 976, + -1, -1, 979, 91, -1, -1, 94, 95, 83, -1, + -1, 988, 3, 4, 5, 6, -1, -1, -1, -1, + -1, -1, -1, -1, 1001, -1, -1, 385, -1, 1214, + -1, -1, -1, -1, 1011, -1, -1, -1, 3, 4, + 5, 6, -1, -1, 1021, -1, 1023, -1, -1, -1, + -1, 42, -1, 128, -1, 1166, -1, -1, 49, -1, + 135, 328, 329, 330, 139, -1, 57, 58, 143, -1, + -1, 146, 147, 148, -1, -1, 434, 42, 1055, 1056, + -1, 1058, -1, -1, 49, 160, -1, -1, -1, -1, + 4, 5, 57, 58, 8, 9, -1, -1, 89, -1, + 14, -1, 177, 178, 179, 1102, 1103, 1104, 1105, 1106, + -1, -1, -1, 1110, -1, 29, 81, 31, -1, -1, + -1, -1, -1, 37, 89, 1102, 1103, 1104, 1105, 1106, + -1, 206, 46, 1110, -1, 1132, 1133, 1134, -1, -1, + -1, 55, 500, 57, 58, 503, -1, -1, -1, 507, + 508, 509, 510, 511, -1, 1132, 1133, 1134, 3, 4, + 5, 6, 520, -1, 9, 240, -1, 1358, -1, -1, + 3, 4, 5, 6, -1, 533, 9, -1, -1, -1, + 94, -1, -1, -1, -1, -1, 1163, -1, -1, -1, + -1, 1168, -1, 1170, -1, -1, -1, 42, -1, -1, + -1, -1, -1, 278, 279, -1, -1, 565, -1, 42, + 55, -1, 57, 58, -1, 48, -1, -1, -1, -1, + 1217, 1218, 55, 1220, 57, 58, 71, 585, -1, -1, + -1, 1422, 1423, -1, 592, -1, 81, -1, 71, -1, + 1217, 1218, -1, 1220, 89, -1, -1, 322, 81, 94, + -1, 326, -1, 328, 329, 330, 89, -1, 91, -1, + 335, 94, 95, -1, 339, 3, 4, 5, 6, -1, + -1, 9, -1, -1, 1251, 1252, 1253, -1, -1, -1, + 355, -1, 3, 4, 5, 6, -1, -1, -1, -1, + -1, -1, -1, 1270, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 42, -1, -1, -1, -1, -1, + 385, -1, 4, 388, 389, 582, 583, 55, -1, 57, + 58, 42, -1, -1, 399, -1, -1, 402, 49, -1, + -1, -1, 407, 71, -1, -1, 57, 58, 696, 31, + 32, -1, -1, 81, 36, -1, -1, -1, -1, 41, + -1, 89, 3, 4, 5, 6, 94, -1, -1, -1, + 81, 436, -1, 438, 56, 440, 441, 442, 89, -1, + -1, 446, 3, 4, 5, 6, 451, -1, 9, 454, + -1, 1358, 649, -1, 651, 652, -1, 654, -1, -1, + -1, 42, -1, -1, 469, 470, 754, -1, 49, -1, + -1, -1, 760, -1, -1, -1, 57, 58, -1, -1, + -1, 42, -1, -1, -1, -1, -1, 48, -1, -1, + -1, -1, -1, -1, 55, 692, 57, 58, -1, -1, + 81, -1, -1, 508, 509, 510, 511, -1, 89, -1, + 71, -1, -1, 135, 1421, 1422, 1423, 139, -1, -1, + 81, 143, -1, -1, -1, -1, -1, -1, 89, -1, + 91, -1, 1439, 94, 95, -1, -1, 1444, 160, -1, + 1, 829, 3, 4, 5, 6, 7, 8, 9, -1, + -1, -1, -1, 14, -1, 177, 178, -1, -1, -1, + -1, 566, -1, 568, -1, -1, 27, 28, 29, -1, + 31, 32, 33, 861, -1, -1, 37, 582, 583, 867, + 585, 42, 779, 871, 45, 46, 47, 592, 49, -1, + -1, -1, -1, -1, 55, -1, 57, 58, -1, 604, + 61, -1, -1, -1, -1, 610, -1, -1, -1, -1, + 71, 3, 4, 5, 6, 903, -1, 905, 240, -1, + 81, 909, -1, -1, -1, -1, -1, -1, 89, -1, + -1, -1, -1, 94, -1, -1, 641, -1, -1, 100, + -1, -1, -1, -1, 649, 650, 651, 652, 653, 654, + 42, -1, -1, -1, -1, 852, -1, 854, -1, -1, + -1, 949, -1, 55, -1, 57, 58, 672, 865, -1, + -1, 63, 869, 870, -1, 963, -1, -1, -1, 71, + -1, 969, -1, -1, -1, -1, -1, 692, 976, 81, + -1, 696, -1, -1, -1, -1, -1, 89, 703, 704, + 988, 706, 94, -1, -1, -1, -1, -1, -1, -1, + 907, 908, -1, -1, -1, -1, -1, 339, 3, 4, + 5, 6, -1, -1, 9, -1, -1, -1, -1, 734, + -1, -1, 737, 1021, 739, 1023, -1, -1, -1, 744, + 745, 746, -1, -1, -1, -1, -1, -1, -1, 754, + -1, -1, -1, -1, -1, 760, -1, 42, -1, -1, + -1, -1, 767, 768, 769, -1, -1, -1, -1, -1, + 55, -1, 57, 58, 779, -1, -1, 399, -1, -1, + 402, -1, -1, -1, -1, 407, 71, -1, -1, 3, + 4, 5, 6, -1, -1, 9, 81, -1, 177, 178, + 179, -1, -1, 4, 89, -1, -1, -1, -1, 94, + -1, -1, -1, -1, 436, -1, 438, -1, 1106, -1, + -1, -1, -1, -1, 829, -1, -1, -1, 42, 451, + 31, 32, -1, 34, 48, 36, -1, -1, -1, -1, + 41, 55, -1, 57, 58, -1, 1134, 852, 470, 854, + -1, -1, -1, 54, -1, 56, 861, 71, -1, -1, + 865, -1, 867, -1, 869, 870, 871, 81, -1, -1, + -1, 876, -1, -1, -1, 89, -1, 91, 79, -1, + 94, 95, 70, 71, 72, 73, 74, 75, 76, 77, + 78, 79, 80, 81, 82, 83, 84, 85, 903, -1, + 905, -1, 907, 908, 909, 1102, 1103, 1104, 1105, -1, + -1, -1, -1, 1110, 73, 74, 75, 76, 77, 78, + 79, 80, 81, 82, 83, 84, 85, 128, -1, -1, + -1, 132, 133, -1, 135, 1132, 1133, -1, 139, -1, + 141, -1, 143, -1, 949, 146, 147, 148, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 963, 160, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 974, + -1, 976, -1, -1, 979, -1, 177, 178, 179, -1, + -1, -1, 1270, 988, -1, -1, 187, -1, -1, 4, + 5, -1, -1, 8, 9, -1, -1, -1, -1, 14, + -1, -1, -1, -1, -1, 206, 1011, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 1021, -1, 1023, -1, + 1217, 1218, 37, 1220, -1, -1, -1, -1, 650, -1, + -1, 46, -1, 48, -1, -1, -1, -1, -1, 240, + 55, -1, 57, 58, -1, -1, -1, -1, -1, -1, + 1055, 1056, -1, 1058, -1, -1, 71, 436, -1, 438, + -1, 440, 441, 442, -1, -1, 81, -1, -1, -1, + -1, -1, 451, -1, 696, -1, 91, -1, -1, 94, + 95, 703, 704, -1, 706, 74, 75, 76, 77, 78, + 79, 80, 81, 82, 83, 84, 85, 1102, 1103, 1104, + 1105, 1106, -1, -1, -1, 1110, -1, -1, 309, -1, + -1, 1116, -1, -1, -1, 737, -1, 739, -1, -1, + -1, -1, 744, 745, 746, 326, -1, 1132, 1133, 1134, + -1, -1, -1, 334, -1, 1423, -1, -1, 339, -1, + -1, -1, -1, 1148, -1, -1, -1, -1, -1, -1, + -1, 1439, -1, -1, 355, -1, -1, -1, 1163, -1, + -1, -1, -1, 1168, -1, 1170, 3, 4, 5, 6, + 7, 8, 9, -1, -1, 12, -1, 14, 379, -1, + -1, -1, -1, -1, -1, -1, -1, 388, -1, -1, + -1, -1, 29, -1, 31, 32, -1, -1, 399, -1, + 37, 402, -1, -1, -1, 42, 407, -1, -1, 46, + -1, 48, 1217, 1218, -1, 1220, -1, -1, 55, -1, + 57, 58, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 71, 436, -1, 438, -1, 440, + 441, 442, -1, -1, 81, 446, 1251, 1252, 1253, -1, + 451, 4, 89, 454, 91, -1, -1, 94, 95, -1, + -1, 98, -1, -1, -1, 1270, -1, -1, -1, 470, + -1, -1, -1, -1, -1, -1, -1, -1, 31, 32, + -1, 34, -1, 36, -1, 907, 908, -1, 41, -1, + 3, 4, 5, 6, -1, -1, 9, -1, -1, 500, + -1, 54, 503, 56, -1, -1, -1, -1, -1, -1, + 4, 5, -1, -1, 8, 9, -1, 518, 519, 520, + 14, -1, -1, -1, 703, 704, -1, 706, -1, 42, + -1, -1, 533, -1, -1, 29, -1, 31, -1, -1, + -1, -1, 55, 37, 57, 58, -1, -1, 81, -1, + -1, -1, 46, 1358, 48, -1, -1, 979, 71, -1, + -1, 55, -1, 57, 58, 744, -1, -1, 81, 4, + 5, -1, -1, 8, 9, -1, 89, 71, 579, 14, + -1, 94, 135, -1, -1, -1, 139, 81, -1, 1011, + 143, 592, -1, 146, 147, 148, -1, 91, -1, -1, + 94, 95, 37, -1, -1, -1, -1, 160, -1, 610, + -1, 46, -1, 48, -1, -1, 1421, 1422, 1423, -1, + 55, 154, 57, 58, 177, 178, 179, -1, -1, -1, + -1, -1, -1, -1, 1439, -1, 71, -1, -1, 1444, + -1, -1, 175, -1, -1, -1, 81, -1, 649, 650, + 651, 652, -1, 206, -1, 188, 91, 4, 5, 94, + 95, 8, 9, -1, -1, -1, -1, 14, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 1102, 1103, 29, -1, 31, -1, -1, 240, 1110, -1, + 37, 692, -1, -1, -1, 696, -1, -1, -1, 46, + -1, -1, 703, 704, -1, 706, -1, -1, 55, -1, + 57, 58, -1, -1, -1, -1, -1, -1, -1, 1, + -1, 3, 4, 5, 6, 7, 8, 9, 907, 908, + 909, -1, 14, -1, -1, -1, 737, -1, 739, -1, + -1, 1163, -1, 744, 745, 746, 1168, 29, 1170, 31, + 32, 33, -1, -1, -1, 37, 38, -1, -1, -1, + 42, -1, -1, -1, 46, 47, -1, 49, -1, -1, + 949, -1, 773, 55, -1, 57, 58, -1, -1, 61, + -1, 63, 335, -1, -1, -1, 339, -1, -1, 71, + -1, -1, -1, -1, -1, 1217, 1218, -1, 1220, 81, + 979, -1, -1, -1, -1, -1, -1, 89, 3, 4, + 5, 6, 94, -1, 9, 72, 73, 74, 75, 76, + 77, 78, 79, 80, 81, 82, 83, 84, 85, 111, + 1252, -1, -1, -1, -1, 388, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 399, 42, -1, 402, + -1, -1, -1, -1, 407, -1, -1, -1, -1, -1, + 55, -1, 57, 58, -1, -1, -1, -1, 869, 870, + 871, -1, -1, -1, 875, -1, 71, -1, -1, -1, + -1, -1, -1, 436, -1, 438, 81, 440, 441, 442, + -1, -1, -1, 446, 89, -1, -1, -1, 451, 94, + -1, 454, 34, -1, -1, -1, 907, 908, 909, -1, + -1, 444, -1, 914, -1, -1, 449, 470, -1, -1, + -1, -1, 54, 1102, 1103, 1104, 1105, 1106, -1, -1, + -1, 1110, -1, -1, 3, 4, 5, 6, 7, 8, + 9, 474, -1, -1, -1, 14, -1, 480, 949, -1, + -1, -1, -1, 1132, 1133, 1134, -1, -1, -1, 492, + 493, -1, 495, 32, -1, -1, -1, -1, 37, -1, + -1, -1, -1, 42, -1, -1, -1, 46, 979, 48, + 3, 4, 5, 6, 1163, -1, 55, -1, 57, 58, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 1000, + -1, -1, 71, -1, -1, -1, -1, -1, -1, -1, + 1011, -1, 81, -1, 146, 147, 148, -1, -1, 42, + 89, -1, 91, -1, -1, 94, 95, 580, -1, -1, + -1, -1, 55, -1, 57, 58, -1, -1, 1217, 1218, + 63, 1220, -1, -1, -1, 177, 178, 179, 71, -1, + -1, -1, -1, -1, -1, 588, 589, 610, 81, -1, + 593, -1, -1, -1, -1, -1, 89, -1, -1, -1, + -1, 94, -1, -1, 206, -1, -1, -1, -1, -1, + -1, 1082, -1, -1, -1, -1, 3, 4, 5, 6, + -1, -1, 9, -1, -1, -1, 649, 650, 651, 652, + -1, 1102, 1103, 1104, 1105, 1106, -1, 1108, -1, 1110, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 3, 4, 5, 6, 42, -1, 9, -1, -1, + -1, 1132, 1133, 1134, -1, -1, -1, -1, 55, 692, + 57, 58, -1, 696, -1, -1, -1, 279, -1, -1, + 703, 704, -1, 706, 71, -1, -1, -1, -1, -1, + 42, -1, 1163, -1, 81, -1, -1, 1168, -1, 1170, + -1, -1, 89, 55, -1, 57, 58, 94, -1, 1358, + -1, -1, 4, 5, 737, -1, 739, 9, -1, 71, + -1, 744, 745, 746, -1, -1, 328, 329, 330, 81, + -1, -1, -1, -1, -1, -1, 54, 89, 3, 4, + 5, 6, 94, -1, -1, -1, 1217, 1218, -1, 1220, + -1, -1, -1, -1, -1, -1, 48, -1, 761, -1, + 763, 79, -1, 55, 82, 57, 58, -1, -1, -1, + -1, -1, 1421, 1422, 1423, -1, -1, 42, -1, 71, + 1251, 1252, 1253, -1, -1, 103, 388, 105, -1, 81, + 55, -1, 57, 58, -1, -1, 61, -1, -1, 91, + -1, -1, 94, 95, -1, -1, 71, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 81, -1, -1, -1, + -1, -1, -1, -1, 89, -1, -1, -1, -1, 94, + -1, -1, 835, 836, 436, 838, 438, -1, 440, 441, + 442, -1, -1, -1, 446, -1, -1, -1, -1, 451, + -1, -1, 454, 876, -1, -1, -1, -1, -1, 177, + 178, 179, -1, 866, -1, -1, -1, -1, -1, 187, + 4, 5, -1, 7, 8, 9, -1, -1, 12, -1, + 14, -1, -1, -1, 907, 908, 909, 1358, 206, -1, + -1, 3, 4, 5, 6, 29, -1, 31, 32, -1, + -1, -1, -1, 37, -1, -1, -1, -1, 911, -1, + -1, 229, 46, -1, 48, -1, -1, -1, -1, -1, + -1, 55, -1, 57, 58, 243, 949, -1, -1, -1, + 42, -1, -1, -1, -1, -1, -1, 71, -1, -1, + -1, -1, -1, 55, -1, 57, 58, 81, -1, -1, + 1421, 1422, 1423, -1, -1, -1, 979, 91, -1, 71, + 94, 95, -1, -1, 98, -1, 568, -1, -1, 81, + -1, -1, 975, 1444, -1, -1, -1, 89, -1, -1, + 582, 583, 94, 585, 987, -1, -1, -1, 1011, -1, + 592, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 4, 5, -1, 7, 8, 9, -1, -1, 610, -1, + 14, -1, -1, -1, -1, -1, 334, 335, -1, -1, + -1, 3, 4, 5, 6, 29, -1, 31, 32, -1, + -1, -1, -1, 37, -1, -1, -1, -1, -1, -1, + -1, -1, 46, -1, -1, 49, -1, 649, -1, 651, + 652, 55, 654, 57, 58, -1, -1, -1, -1, -1, + 42, -1, -1, -1, -1, -1, -1, -1, 1071, -1, + 388, -1, -1, 55, -1, 57, 58, -1, -1, 1102, + 1103, 1104, 1105, 1106, -1, -1, -1, 1110, -1, 71, + 692, -1, -1, -1, -1, -1, -1, -1, -1, 81, + -1, 703, 704, -1, 706, -1, 1109, 89, -1, 1132, + 1133, 1134, 94, -1, -1, -1, -1, -1, 436, -1, + 438, -1, 440, 441, 442, -1, -1, -1, 446, -1, + -1, -1, -1, 451, -1, -1, 454, -1, -1, -1, + 1163, -1, 744, -1, -1, 1168, -1, 1170, -1, -1, + -1, -1, -1, -1, -1, 1, -1, 3, 4, 5, + 6, 7, 8, 9, -1, 767, 768, 769, 14, 1172, + -1, -1, -1, 1176, -1, -1, -1, 779, -1, -1, + -1, -1, -1, 29, -1, 31, 32, 33, -1, -1, + -1, 37, 38, -1, 1217, 1218, 42, 1220, -1, -1, + 46, 47, -1, 49, -1, -1, 1209, -1, -1, 55, + -1, 57, 58, -1, -1, 61, -1, 63, 3, 4, + 5, 6, -1, -1, -1, 71, -1, -1, 1251, 1252, + 1253, -1, -1, -1, -1, 81, -1, -1, -1, -1, + -1, -1, -1, 89, -1, -1, -1, -1, 94, -1, + 852, -1, 854, -1, -1, -1, -1, 42, -1, -1, + -1, -1, -1, 865, -1, 111, -1, 869, 870, 871, + 55, -1, 57, 58, -1, 1278, -1, 595, 596, 1282, + -1, -1, -1, -1, -1, -1, 71, -1, -1, -1, + 4, 5, 610, 7, 8, 9, 81, -1, 12, -1, + 14, 1304, 1305, -1, 89, 907, 908, 909, -1, 94, + -1, -1, -1, -1, -1, 29, -1, 31, 32, -1, + -1, -1, -1, 37, -1, -1, -1, -1, -1, -1, + -1, 649, 46, 651, 652, 1358, -1, -1, -1, -1, + -1, 55, -1, 57, 58, -1, -1, 949, -1, -1, + 3, 4, 5, 6, 7, 8, 9, -1, 14, -1, + -1, 14, -1, -1, -1, -1, -1, -1, 24, 25, + -1, -1, -1, -1, 692, 31, 32, 979, 34, 32, + -1, -1, -1, -1, 37, 703, 704, -1, 706, 42, + -1, -1, -1, 46, -1, 48, -1, -1, 1421, 1422, + 1423, -1, 55, -1, 57, 58, 4, 5, 64, 7, + 8, 9, -1, 731, -1, -1, 14, -1, 71, -1, + -1, 1444, -1, -1, -1, -1, 744, -1, 81, -1, + -1, 29, -1, 31, 32, -1, 89, -1, 91, 37, + -1, 94, 95, -1, -1, -1, -1, -1, 46, -1, + -1, -1, -1, 1055, 1056, -1, 1058, 55, -1, 57, + 58, -1, -1, -1, -1, -1, -1, 123, -1, 125, + -1, -1, 128, -1, -1, -1, 132, 133, -1, -1, + -1, -1, -1, 139, -1, 141, 142, 143, -1, -1, + 146, 147, 148, -1, -1, -1, -1, -1, -1, -1, + 1102, 1103, 1104, 1105, 1106, -1, -1, -1, 1110, 68, + 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, + 79, 80, 81, 82, 83, 84, 85, -1, -1, -1, + 1132, 1133, 1134, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 1, -1, 3, + 4, 5, 6, 7, 8, 9, -1, 875, 876, 877, + 14, 1163, -1, -1, 220, 221, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 29, -1, 31, 32, 33, + -1, -1, -1, 37, 240, -1, -1, -1, 42, 907, + 908, 909, 46, 47, -1, 49, 914, -1, -1, -1, + -1, 55, -1, 57, 58, -1, -1, 61, -1, 63, + -1, -1, -1, -1, -1, 1217, 1218, 71, 1220, -1, + -1, -1, -1, 279, -1, -1, -1, 81, -1, -1, + -1, 949, -1, -1, -1, 89, -1, -1, -1, 1, + 94, -1, 4, 5, -1, -1, 8, 9, -1, 1251, + -1, 1253, 14, -1, -1, -1, -1, -1, -1, -1, + -1, 979, -1, -1, -1, -1, -1, 29, -1, 31, + 326, -1, 328, 329, -1, 37, -1, 39, 40, -1, + -1, -1, 1000, -1, 46, -1, 48, -1, -1, -1, + -1, -1, -1, 55, -1, 57, 58, -1, 60, 355, + -1, -1, 64, 65, 66, 67, 68, 69, 70, 71, + 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, + 82, 83, 84, 379, -1, 87, 88, 89, -1, -1, + 92, -1, -1, 95, -1, -1, -1, -1, -1, 395, + -1, -1, -1, 399, -1, -1, 402, -1, -1, -1, + 112, 407, -1, -1, -1, -1, 1358, -1, -1, -1, + -1, -1, -1, -1, 1082, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, - 84, 85, 29, 30, 31, 32, 33, -1, 35, 36, - 37, -1, 39, 40, 41, 42, 43, 44, -1, 46, - -1, 48, -1, 50, 51, 52, 53, 54, 55, -1, - 57, 58, 59, -1, -1, 62, -1, -1, -1, -1, - -1, 68, -1, -1, 71, -1, -1, -1, -1, -1, - -1, -1, 79, 80, 81, -1, -1, -1, -1, -1, - 87, 88, 89, -1, 91, -1, -1, 94, 95, -1, - 1, 98, 3, 4, 5, 6, 7, 8, 9, 10, - 11, 12, 13, 14, -1, 112, -1, -1, -1, -1, + 84, 85, -1, -1, 1102, 1103, 1104, 1105, 1106, -1, + 1108, -1, 1110, 71, 72, 73, 74, 75, 76, 77, + 78, 79, 80, 81, 82, 83, 84, 85, -1, -1, + -1, 467, -1, 469, 1132, 1133, 1134, -1, -1, 1421, + 1422, 1423, -1, -1, -1, -1, -1, -1, 3, 4, + 5, 6, 7, 8, 9, -1, -1, 12, 494, 14, + -1, -1, 1444, -1, -1, 1163, -1, -1, -1, -1, + -1, -1, -1, -1, 29, -1, 31, 32, -1, -1, + -1, -1, 37, -1, -1, -1, -1, 42, -1, -1, + -1, 46, -1, -1, -1, -1, -1, -1, -1, -1, + 55, -1, 57, 58, 1, -1, 3, 4, 5, 6, + 7, 8, 9, -1, -1, 12, 71, 14, -1, 1217, + 1218, -1, 1220, -1, -1, -1, 81, -1, 25, -1, + 27, 28, 568, -1, 89, 32, -1, -1, -1, 94, + 37, -1, -1, 579, 580, 42, 582, 583, -1, 46, + -1, 48, -1, 1251, -1, 1253, -1, -1, 55, -1, + 57, 58, 59, 60, 61, -1, 63, 64, 65, 66, + 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, + 77, 78, 79, 80, 81, 82, 83, 84, 85, -1, + 87, 88, 89, -1, 91, 92, 93, 94, 95, 96, + -1, 98, 99, -1, -1, 641, -1, 104, -1, -1, + -1, -1, 109, 110, 111, -1, 113, 653, -1, -1, + 1, -1, 3, 4, 5, 6, 7, 8, 9, -1, + 4, 5, -1, 14, 8, 9, 672, -1, -1, -1, + 14, -1, -1, -1, -1, -1, 27, 28, 29, -1, + 31, 32, 33, -1, -1, 29, 37, 31, -1, -1, + 1358, 42, -1, 37, 45, 46, 47, -1, 49, -1, + -1, -1, 46, -1, 55, -1, 57, 58, -1, -1, + 61, 55, -1, 57, 58, -1, -1, -1, -1, -1, + 71, -1, -1, -1, -1, 731, -1, -1, 734, -1, + 81, -1, -1, -1, -1, -1, -1, -1, 89, -1, + -1, -1, -1, 94, -1, -1, -1, -1, -1, 100, + -1, -1, -1, 1421, 1422, 1423, -1, -1, -1, -1, + -1, 767, 768, 769, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 779, -1, 1, 1444, 3, 4, 5, + 6, 7, 8, 9, 10, 11, -1, 13, 14, 15, + -1, 17, 18, 19, 20, 21, 22, 23, 24, 25, + 26, 27, 28, 29, 30, 31, 32, 33, -1, 35, + 36, 37, -1, 39, 40, 41, 42, 43, 44, -1, + 46, -1, -1, -1, 50, 51, 52, 53, 54, 55, + -1, 57, 58, 59, -1, 61, 62, -1, -1, -1, + -1, -1, 68, -1, -1, 71, 852, -1, 854, -1, + -1, -1, -1, 79, 80, 81, -1, -1, -1, 865, + -1, 87, 88, 89, -1, -1, -1, -1, 94, -1, + 96, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 111, 112, 1, -1, 3, + 4, 5, 6, 7, 8, 9, 10, 11, -1, 13, + 14, 15, -1, 17, 18, 19, 20, 21, 22, 23, + 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, + -1, 35, 36, 37, -1, 39, 40, 41, 42, 43, + 44, -1, 46, -1, -1, -1, 50, 51, 52, 53, + 54, 55, -1, 57, 58, 59, -1, 61, 62, -1, + -1, -1, -1, -1, 68, -1, -1, 71, -1, -1, + -1, -1, -1, -1, -1, 79, 80, 81, 974, -1, + -1, -1, -1, 87, 88, 89, -1, -1, -1, -1, + 94, 1, 96, 3, 4, 5, 6, 7, 8, 9, + 10, 11, 12, 13, 14, 1001, -1, -1, 112, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 29, + 30, 31, 32, 33, -1, 35, 36, 37, -1, 39, + 40, 41, 42, 43, 44, -1, 46, -1, 48, -1, + 50, 51, 52, 53, 54, 55, -1, 57, 58, 59, + -1, -1, 62, -1, -1, -1, -1, -1, 68, 1055, + 1056, 71, 1058, -1, -1, -1, -1, -1, -1, 79, + 80, 81, -1, -1, -1, -1, -1, 87, 88, 89, + -1, 91, -1, -1, 94, 95, -1, 1, 98, 3, + 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, + 14, -1, 112, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 29, 30, 31, 32, 33, + 1116, 35, 36, 37, -1, 39, 40, 41, 42, 43, + 44, -1, 46, -1, 48, -1, 50, 51, 52, 53, + 54, 55, -1, 57, 58, 59, -1, -1, 62, -1, + -1, -1, 1148, -1, 68, -1, -1, 71, -1, -1, + -1, -1, -1, -1, -1, 79, 80, 81, -1, -1, + 1166, -1, 1168, 87, 88, 89, -1, 91, -1, -1, + 94, 95, -1, 1, 98, 3, 4, 5, 6, 7, + 8, 9, 10, 11, 12, 13, 14, -1, 112, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 29, 30, 31, 32, 33, -1, 35, 36, 37, + -1, 39, 40, 41, 42, 43, 44, -1, 46, -1, + -1, -1, 50, 51, 52, 53, 54, 55, -1, 57, + 58, -1, -1, -1, 62, -1, -1, -1, -1, -1, + 68, -1, -1, 71, -1, -1, -1, -1, -1, -1, + -1, 79, 80, 81, -1, -1, -1, -1, -1, 87, + 88, 89, -1, -1, -1, -1, 94, -1, -1, -1, + 98, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 110, 1, 112, 3, 4, 5, 6, 7, + 8, 9, 10, 11, -1, 13, 14, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 29, 30, 31, 32, 33, -1, 35, 36, 37, + -1, 39, 40, 41, 42, 43, 44, -1, 46, -1, + -1, -1, 50, 51, 52, 53, 54, 55, -1, 57, + 58, 59, -1, 61, 62, -1, -1, -1, -1, -1, + 68, -1, -1, 71, -1, -1, -1, -1, -1, -1, + -1, 79, 80, 81, -1, -1, -1, -1, -1, 87, + 88, 89, -1, -1, -1, 1, 94, 3, 4, 5, + 6, -1, 8, 9, 10, 11, -1, 13, 14, -1, + -1, -1, -1, -1, 112, -1, -1, -1, -1, -1, + -1, -1, -1, 29, 30, 31, -1, 33, -1, 35, + 36, 37, -1, 39, 40, 41, 42, 43, 44, -1, + 46, -1, -1, -1, 50, 51, 52, 53, 54, 55, + -1, 57, 58, 59, -1, -1, 62, -1, -1, -1, + -1, -1, 68, -1, -1, 71, -1, -1, -1, -1, + -1, -1, -1, 79, 80, 81, -1, -1, -1, -1, + -1, 87, 88, 89, -1, -1, -1, -1, 94, 95, + 1, -1, 3, 4, 5, 6, -1, 8, 9, 10, + 11, -1, 13, 14, -1, 111, 112, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 29, 30, - 31, 32, 33, -1, 35, 36, 37, -1, 39, 40, + 31, -1, 33, -1, 35, 36, 37, -1, 39, 40, 41, 42, 43, 44, -1, 46, -1, -1, -1, 50, - 51, 52, 53, 54, 55, -1, 57, 58, -1, -1, + 51, 52, 53, 54, 55, -1, 57, 58, 59, -1, -1, 62, -1, -1, -1, -1, -1, 68, -1, -1, 71, -1, -1, -1, -1, -1, -1, -1, 79, 80, 81, -1, -1, -1, -1, -1, 87, 88, 89, -1, - -1, -1, -1, 94, -1, -1, -1, 98, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 110, - 1, 112, 3, 4, 5, 6, 7, 8, 9, 10, - 11, -1, 13, 14, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 29, 30, - 31, 32, 33, -1, 35, 36, 37, -1, 39, 40, - 41, 42, 43, 44, -1, 46, -1, -1, -1, 50, - 51, 52, 53, 54, 55, -1, 57, 58, 59, -1, - 61, 62, -1, -1, -1, -1, -1, 68, -1, -1, - 71, -1, -1, -1, -1, -1, -1, -1, 79, 80, - 81, -1, -1, -1, -1, -1, 87, 88, 89, -1, - -1, -1, 1, 94, 3, 4, 5, 6, -1, 8, - 9, 10, 11, -1, 13, 14, -1, -1, -1, -1, + -1, -1, -1, 94, 95, 1, -1, 3, 4, 5, + 6, -1, 8, 9, 10, 11, -1, 13, 14, -1, -1, 112, -1, -1, -1, -1, -1, -1, -1, -1, - 29, 30, 31, -1, 33, -1, 35, 36, 37, -1, - 39, 40, 41, 42, 43, 44, -1, 46, -1, -1, - -1, 50, 51, 52, 53, 54, 55, -1, 57, 58, - 59, -1, -1, 62, -1, -1, -1, -1, -1, 68, - -1, -1, 71, -1, -1, -1, -1, -1, -1, -1, - 79, 80, 81, -1, -1, -1, -1, -1, 87, 88, - 89, -1, -1, -1, -1, 94, 95, 1, -1, 3, + -1, -1, -1, 29, 30, 31, -1, 33, -1, 35, + 36, 37, -1, 39, 40, 41, 42, 43, 44, -1, + 46, -1, -1, -1, 50, 51, 52, 53, 54, 55, + -1, 57, 58, 59, -1, -1, 62, -1, -1, -1, + -1, -1, 68, -1, -1, 71, -1, -1, -1, -1, + -1, -1, -1, 79, 80, 81, -1, -1, -1, -1, + -1, 87, 88, 89, -1, -1, -1, 1, 94, 3, 4, 5, 6, -1, 8, 9, 10, 11, -1, 13, - 14, -1, 111, 112, -1, -1, -1, -1, -1, -1, + 14, -1, -1, -1, -1, 111, 112, -1, -1, -1, -1, -1, -1, -1, -1, 29, 30, 31, -1, 33, -1, 35, 36, 37, -1, 39, 40, 41, 42, 43, 44, -1, 46, -1, -1, -1, 50, 51, 52, 53, 54, 55, -1, 57, 58, 59, -1, -1, 62, -1, -1, -1, -1, -1, 68, -1, -1, 71, -1, -1, -1, -1, -1, -1, -1, 79, 80, 81, -1, -1, - -1, -1, -1, 87, 88, 89, -1, -1, -1, -1, - 94, 95, 1, -1, 3, 4, 5, 6, -1, 8, - 9, 10, 11, -1, 13, 14, -1, -1, 112, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 29, 30, 31, -1, 33, -1, 35, 36, 37, -1, - 39, 40, 41, 42, 43, 44, -1, 46, -1, -1, - -1, 50, 51, 52, 53, 54, 55, -1, 57, 58, - 59, -1, -1, 62, -1, -1, -1, -1, -1, 68, - -1, -1, 71, -1, -1, -1, -1, -1, -1, -1, - 79, 80, 81, -1, -1, -1, -1, -1, 87, 88, - 89, -1, -1, -1, 1, 94, 3, 4, 5, 6, - -1, 8, 9, 10, 11, -1, 13, 14, -1, -1, - -1, -1, 111, 112, -1, -1, -1, -1, -1, -1, - -1, -1, 29, 30, 31, -1, 33, -1, 35, 36, - 37, -1, 39, 40, 41, 42, 43, 44, -1, 46, - -1, -1, -1, 50, 51, 52, 53, 54, 55, -1, - 57, 58, 59, -1, -1, 62, -1, -1, -1, -1, - -1, 68, -1, -1, 71, -1, -1, -1, -1, -1, - -1, -1, 79, 80, 81, -1, -1, -1, -1, -1, - 87, 88, 89, -1, -1, -1, 1, 94, 3, 4, - 5, 6, -1, 8, 9, 10, 11, -1, 13, 14, - -1, -1, -1, -1, 111, 112, -1, -1, -1, -1, - -1, -1, -1, -1, 29, 30, 31, -1, 33, -1, - 35, 36, 37, -1, 39, 40, 41, 42, 43, 44, - -1, 46, -1, -1, -1, 50, 51, 52, 53, 54, - 55, -1, 57, 58, 59, -1, -1, 62, -1, -1, - -1, -1, -1, 68, -1, -1, 71, -1, -1, -1, - -1, -1, -1, -1, 79, 80, 81, -1, -1, -1, - -1, -1, 87, 88, 89, -1, -1, -1, -1, 94, - -1, -1, 1, -1, 3, 4, 5, 6, 103, 8, - 9, 10, 11, -1, 13, 14, -1, 112, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 29, 30, 31, -1, 33, -1, 35, 36, 37, -1, - 39, 40, 41, 42, 43, 44, -1, 46, -1, -1, - -1, 50, 51, 52, 53, 54, 55, -1, 57, 58, - 59, -1, -1, 62, -1, -1, -1, -1, -1, 68, - -1, -1, 71, -1, -1, -1, -1, -1, -1, -1, - 79, 80, 81, -1, -1, -1, -1, -1, 87, 88, - 89, -1, -1, -1, 1, 94, 3, 4, 5, 6, - -1, 8, 9, 10, 11, -1, 13, 14, -1, -1, - -1, -1, -1, 112, -1, -1, -1, -1, -1, -1, - -1, -1, 29, 30, 31, -1, 33, -1, 35, 36, - 37, -1, 39, 40, 41, 42, 43, 44, -1, 46, - -1, -1, -1, 50, 51, 52, 53, 54, 55, -1, - 57, 58, 59, -1, -1, 62, -1, -1, -1, -1, - -1, 68, -1, -1, 71, -1, -1, -1, -1, -1, - -1, -1, 79, 80, 81, -1, -1, -1, -1, -1, - 87, 88, 89, -1, -1, -1, 1, 94, 3, 4, - 5, 6, -1, 8, 9, 10, 11, -1, 13, 14, - -1, -1, -1, -1, -1, 112, -1, -1, -1, -1, - -1, -1, -1, -1, 29, 30, 31, -1, 33, -1, - 35, 36, 37, -1, 39, 40, 41, 42, 43, 44, - -1, 46, -1, -1, -1, 50, 51, 52, 53, 54, - 55, -1, 57, 58, -1, -1, -1, 62, 63, -1, - -1, -1, -1, 68, -1, -1, 71, -1, -1, -1, - -1, -1, -1, -1, 79, 80, 81, -1, -1, -1, - -1, -1, 87, 88, 89, -1, -1, -1, 1, 94, - 3, 4, 5, 6, -1, 8, 9, 10, 11, -1, - 13, 14, -1, -1, -1, -1, -1, 112, -1, -1, - -1, -1, -1, -1, -1, -1, 29, 30, 31, -1, - 33, -1, 35, 36, 37, -1, 39, 40, 41, 42, - 43, 44, -1, 46, -1, -1, -1, 50, 51, 52, - 53, 54, 55, -1, 57, 58, 59, -1, -1, 62, - -1, -1, -1, -1, -1, 68, -1, -1, 71, -1, - -1, -1, -1, -1, -1, -1, 79, 80, 81, -1, - -1, -1, -1, -1, 87, 88, 89, -1, -1, -1, - 1, 94, 3, 4, 5, 6, -1, 8, 9, 10, - 11, -1, 13, 14, -1, -1, -1, -1, -1, 112, - -1, -1, -1, -1, -1, -1, -1, -1, 29, 30, - 31, -1, 33, -1, 35, 36, 37, -1, 39, 40, - 41, 42, 43, 44, -1, 46, -1, -1, -1, 50, - 51, 52, 53, 54, 55, -1, 57, 58, -1, -1, - 61, 62, -1, -1, -1, -1, -1, 68, -1, -1, - 71, -1, -1, -1, -1, -1, -1, -1, 79, 80, - 81, -1, -1, -1, -1, -1, 87, 88, 89, -1, - -1, -1, 1, 94, 3, 4, 5, 6, -1, 8, - 9, 10, 11, -1, 13, 14, -1, -1, -1, -1, - -1, 112, -1, -1, -1, -1, -1, -1, -1, -1, - 29, 30, 31, -1, 33, -1, 35, 36, 37, -1, - 39, 40, 41, 42, 43, 44, -1, 46, -1, -1, - -1, 50, 51, 52, 53, 54, 55, -1, 57, 58, - -1, -1, -1, 62, -1, -1, -1, -1, -1, 68, - -1, -1, 71, -1, -1, -1, -1, -1, -1, -1, - 79, 80, 81, -1, -1, -1, -1, -1, 87, 88, - 89, -1, -1, -1, 1, 94, 3, 4, 5, 6, - -1, 8, 9, 10, 11, -1, 13, 14, -1, -1, - -1, 110, -1, 112, -1, -1, -1, -1, -1, -1, - -1, -1, 29, 30, 31, -1, 33, -1, 35, 36, - 37, -1, 39, 40, 41, 42, 43, 44, -1, 46, - -1, -1, -1, 50, 51, 52, 53, 54, 55, -1, - 57, 58, -1, -1, -1, 62, -1, -1, -1, -1, - -1, 68, -1, -1, 71, -1, -1, -1, -1, -1, - -1, -1, 79, 80, 81, -1, -1, -1, -1, -1, - 87, 88, 89, -1, -1, -1, 1, 94, 3, 4, - 5, 6, -1, 8, 9, 10, 11, -1, 13, 14, - -1, -1, -1, -1, -1, 112, -1, -1, -1, -1, - -1, -1, -1, -1, 29, 30, 31, -1, 33, -1, - 35, 36, 37, -1, 39, 40, 41, 42, 43, 44, - -1, 46, -1, -1, -1, 50, 51, 52, 53, 54, - 55, -1, 57, 58, -1, -1, -1, 62, -1, -1, - -1, -1, -1, 68, -1, -1, 71, -1, -1, -1, - -1, -1, -1, -1, 79, 80, 81, -1, -1, -1, - -1, -1, 87, 88, 89, -1, -1, -1, 1, 94, - 3, 4, 5, 6, -1, 8, 9, 10, 11, -1, - 13, 14, -1, -1, -1, -1, -1, 112, -1, -1, - -1, -1, -1, -1, -1, -1, 29, 30, 31, -1, - 33, -1, 35, 36, 37, -1, 39, 40, 41, 42, - 43, 44, -1, 46, -1, -1, -1, 50, 51, 52, - 53, 54, 55, -1, 57, 58, -1, -1, -1, 62, - -1, -1, -1, -1, -1, 68, -1, -1, 71, -1, - -1, -1, -1, -1, -1, -1, 79, 80, 81, -1, - -1, -1, -1, -1, 87, 88, 89, 3, 4, 5, - 6, 94, 8, 9, 10, 11, -1, 13, 14, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 112, + -1, -1, -1, 87, 88, 89, -1, -1, -1, 1, + 94, 3, 4, 5, 6, -1, 8, 9, 10, 11, + -1, 13, 14, -1, -1, -1, -1, 111, 112, -1, + -1, -1, -1, -1, -1, -1, -1, 29, 30, 31, + -1, 33, -1, 35, 36, 37, -1, 39, 40, 41, + 42, 43, 44, -1, 46, -1, -1, -1, 50, 51, + 52, 53, 54, 55, -1, 57, 58, 59, -1, -1, + 62, -1, -1, -1, -1, -1, 68, -1, -1, 71, + -1, -1, -1, -1, -1, -1, -1, 79, 80, 81, + -1, -1, -1, -1, -1, 87, 88, 89, -1, -1, + -1, -1, 94, -1, -1, 1, -1, 3, 4, 5, + 6, 103, 8, 9, 10, 11, -1, 13, 14, -1, + 112, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 29, 30, 31, -1, 33, -1, 35, + 36, 37, -1, 39, 40, 41, 42, 43, 44, -1, + 46, -1, -1, -1, 50, 51, 52, 53, 54, 55, + -1, 57, 58, 59, -1, -1, 62, -1, -1, -1, + -1, -1, 68, -1, -1, 71, -1, -1, -1, -1, + -1, -1, -1, 79, 80, 81, -1, -1, -1, -1, + -1, 87, 88, 89, -1, -1, -1, 1, 94, 3, + 4, 5, 6, -1, 8, 9, 10, 11, -1, 13, + 14, -1, -1, -1, -1, -1, 112, -1, -1, -1, + -1, -1, -1, -1, -1, 29, 30, 31, -1, 33, + -1, 35, 36, 37, -1, 39, 40, 41, 42, 43, + 44, -1, 46, -1, -1, -1, 50, 51, 52, 53, + 54, 55, -1, 57, 58, 59, -1, -1, 62, -1, + -1, -1, -1, -1, 68, -1, -1, 71, -1, -1, + -1, -1, -1, -1, -1, 79, 80, 81, -1, -1, + -1, -1, -1, 87, 88, 89, -1, -1, -1, 1, + 94, 3, 4, 5, 6, -1, 8, 9, 10, 11, + -1, 13, 14, -1, -1, -1, -1, -1, 112, -1, + -1, -1, -1, -1, -1, -1, -1, 29, 30, 31, + -1, 33, -1, 35, 36, 37, -1, 39, 40, 41, + 42, 43, 44, -1, 46, -1, -1, -1, 50, 51, + 52, 53, 54, 55, -1, 57, 58, -1, -1, -1, + 62, 63, -1, -1, -1, -1, 68, -1, -1, 71, + -1, -1, -1, -1, -1, -1, -1, 79, 80, 81, + -1, -1, -1, -1, -1, 87, 88, 89, -1, -1, + -1, 1, 94, 3, 4, 5, 6, -1, 8, 9, + 10, 11, -1, 13, 14, -1, -1, -1, -1, -1, + 112, -1, -1, -1, -1, -1, -1, -1, -1, 29, + 30, 31, -1, 33, -1, 35, 36, 37, -1, 39, + 40, 41, 42, 43, 44, -1, 46, -1, -1, -1, + 50, 51, 52, 53, 54, 55, -1, 57, 58, 59, + -1, -1, 62, -1, -1, -1, -1, -1, 68, -1, + -1, 71, -1, -1, -1, -1, -1, -1, -1, 79, + 80, 81, -1, -1, -1, -1, -1, 87, 88, 89, + -1, -1, -1, 1, 94, 3, 4, 5, 6, -1, + 8, 9, 10, 11, -1, 13, 14, -1, -1, -1, + -1, -1, 112, -1, -1, -1, -1, -1, -1, -1, + -1, 29, 30, 31, -1, 33, -1, 35, 36, 37, + -1, 39, 40, 41, 42, 43, 44, -1, 46, -1, + -1, -1, 50, 51, 52, 53, 54, 55, -1, 57, + 58, -1, -1, 61, 62, -1, -1, -1, -1, -1, + 68, -1, -1, 71, -1, -1, -1, -1, -1, -1, + -1, 79, 80, 81, -1, -1, -1, -1, -1, 87, + 88, 89, -1, -1, -1, 1, 94, 3, 4, 5, + 6, -1, 8, 9, 10, 11, -1, 13, 14, -1, + -1, -1, -1, -1, 112, -1, -1, -1, -1, -1, -1, -1, -1, 29, 30, 31, -1, 33, -1, 35, 36, 37, -1, 39, 40, 41, 42, 43, 44, -1, 46, -1, -1, -1, 50, 51, 52, 53, 54, 55, -1, 57, 58, -1, -1, -1, 62, -1, -1, -1, -1, -1, 68, -1, -1, 71, -1, -1, -1, -1, -1, -1, -1, 79, 80, 81, -1, -1, -1, -1, - -1, 87, 88, 89, -1, -1, -1, -1, 94, 70, - 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, - 81, 82, 83, 84, 85, -1, 112, 113, 3, 4, - 5, 6, 7, 8, 9, 10, 11, -1, 13, 14, - 15, -1, 17, 18, 19, 20, 21, 22, 23, 24, - 25, 26, 27, 28, 29, 30, 31, 32, 33, -1, - 35, 36, 37, -1, 39, 40, 41, 42, 43, 44, - -1, 46, -1, -1, -1, 50, 51, 52, 53, 54, - 55, -1, 57, 58, 59, -1, 61, 62, -1, -1, - -1, -1, -1, 68, -1, -1, 71, -1, -1, -1, - -1, -1, -1, -1, 79, 80, 81, -1, -1, -1, - -1, -1, 87, 88, 89, -1, -1, -1, -1, 94, - -1, 96, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 111, 112, 3, 4, - 5, 6, 7, 8, 9, 10, 11, -1, 13, 14, - 15, -1, 17, 18, 19, 20, 21, 22, 23, 24, - 25, 26, 27, 28, 29, 30, 31, 32, 33, -1, - 35, 36, 37, -1, 39, 40, 41, 42, 43, 44, - -1, 46, -1, -1, -1, 50, 51, 52, 53, 54, - 55, -1, 57, 58, 59, -1, 61, 62, -1, -1, - -1, -1, -1, 68, -1, -1, 71, -1, -1, -1, - -1, -1, -1, -1, 79, 80, 81, -1, -1, -1, - -1, -1, 87, 88, 89, -1, -1, -1, -1, 94, - -1, 96, -1, -1, 3, 4, 5, 6, 7, 8, - 9, 10, 11, -1, 13, 14, 15, 112, 17, 18, - 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, - 29, 30, 31, 32, 33, -1, 35, 36, 37, -1, - 39, 40, 41, 42, 43, 44, -1, 46, -1, -1, - -1, 50, 51, 52, 53, 54, 55, -1, 57, 58, - 59, -1, 61, 62, -1, -1, -1, -1, -1, 68, - -1, -1, 71, -1, -1, -1, -1, -1, -1, -1, - 79, 80, 81, -1, -1, -1, -1, -1, 87, 88, - 89, -1, -1, -1, -1, 94, -1, 96, -1, -1, - 3, 4, 5, 6, 7, 8, 9, 10, 11, -1, - 13, 14, 15, 112, 17, 18, 19, 20, 21, 22, - 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, + -1, 87, 88, 89, -1, -1, -1, 1, 94, 3, + 4, 5, 6, -1, 8, 9, 10, 11, -1, 13, + 14, -1, -1, -1, 110, -1, 112, -1, -1, -1, + -1, -1, -1, -1, -1, 29, 30, 31, -1, 33, + -1, 35, 36, 37, -1, 39, 40, 41, 42, 43, + 44, -1, 46, -1, -1, -1, 50, 51, 52, 53, + 54, 55, -1, 57, 58, -1, -1, -1, 62, -1, + -1, -1, -1, -1, 68, -1, -1, 71, -1, -1, + -1, -1, -1, -1, -1, 79, 80, 81, -1, -1, + -1, -1, -1, 87, 88, 89, -1, -1, -1, 1, + 94, 3, 4, 5, 6, -1, 8, 9, 10, 11, + -1, 13, 14, -1, -1, -1, -1, -1, 112, -1, + -1, -1, -1, -1, -1, -1, -1, 29, 30, 31, + -1, 33, -1, 35, 36, 37, -1, 39, 40, 41, + 42, 43, 44, -1, 46, -1, -1, -1, 50, 51, + 52, 53, 54, 55, -1, 57, 58, -1, -1, -1, + 62, -1, -1, -1, -1, -1, 68, -1, -1, 71, + -1, -1, -1, -1, -1, -1, -1, 79, 80, 81, + -1, -1, -1, -1, -1, 87, 88, 89, -1, -1, + -1, 1, 94, 3, 4, 5, 6, -1, 8, 9, + 10, 11, -1, 13, 14, -1, -1, -1, -1, -1, + 112, -1, -1, -1, -1, -1, -1, -1, -1, 29, + 30, 31, -1, 33, -1, 35, 36, 37, -1, 39, + 40, 41, 42, 43, 44, -1, 46, -1, -1, -1, + 50, 51, 52, 53, 54, 55, -1, 57, 58, -1, + -1, -1, 62, -1, -1, -1, -1, -1, 68, -1, + -1, 71, -1, -1, -1, -1, -1, -1, -1, 79, + 80, 81, -1, -1, -1, -1, -1, 87, 88, 89, + 3, 4, 5, 6, 94, 8, 9, 10, 11, -1, + 13, 14, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 112, -1, -1, -1, 29, 30, 31, -1, 33, -1, 35, 36, 37, -1, 39, 40, 41, 42, 43, 44, -1, 46, -1, -1, -1, 50, 51, 52, - 53, 54, 55, -1, 57, 58, -1, -1, 61, 62, - -1, -1, -1, -1, -1, 68, -1, -1, 71, -1, - -1, -1, -1, -1, -1, -1, 79, 80, 81, -1, - -1, -1, -1, -1, 87, 88, 89, -1, -1, -1, - -1, 94, -1, 96, 3, 4, 5, 6, 7, 8, - 9, 10, 11, 12, 13, 14, -1, -1, -1, 112, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 29, 30, 31, 32, 33, -1, 35, 36, 37, -1, - 39, 40, 41, 42, 43, 44, -1, 46, -1, 48, - -1, 50, 51, 52, 53, 54, 55, -1, 57, 58, - -1, -1, -1, 62, -1, -1, -1, -1, -1, 68, - -1, -1, 71, -1, -1, -1, -1, -1, -1, -1, - 79, 80, 81, -1, -1, -1, -1, -1, 87, 88, - 89, -1, 91, -1, -1, 94, 95, -1, -1, 98, - 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, - 13, 14, -1, 112, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 29, 30, 31, 32, - 33, -1, 35, 36, 37, -1, 39, 40, 41, 42, - 43, 44, -1, 46, -1, 48, -1, 50, 51, 52, 53, 54, 55, -1, 57, 58, -1, -1, -1, 62, -1, -1, -1, -1, -1, 68, -1, -1, 71, -1, -1, -1, -1, -1, -1, -1, 79, 80, 81, -1, - -1, -1, -1, -1, 87, 88, 89, -1, 91, -1, - -1, 94, 95, -1, -1, 98, 3, 4, 5, 6, - -1, 8, 9, 10, 11, -1, 13, 14, -1, 112, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 29, 30, 31, -1, 33, -1, 35, 36, - 37, -1, 39, 40, 41, 42, 43, 44, -1, 46, - -1, 48, -1, 50, 51, 52, 53, 54, 55, -1, - 57, 58, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 68, -1, -1, 71, -1, -1, -1, -1, -1, - -1, -1, 79, 80, 81, -1, -1, -1, -1, -1, - 87, 88, 89, -1, 91, -1, -1, 94, 95, 3, + -1, -1, -1, -1, 87, 88, 89, -1, -1, -1, + -1, 94, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 112, + 113, 3, 4, 5, 6, 7, 8, 9, 10, 11, + -1, 13, 14, 15, -1, 17, 18, 19, 20, 21, + 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, + 32, 33, -1, 35, 36, 37, -1, 39, 40, 41, + 42, 43, 44, -1, 46, -1, -1, -1, 50, 51, + 52, 53, 54, 55, -1, 57, 58, 59, -1, 61, + 62, -1, -1, -1, -1, -1, 68, -1, -1, 71, + -1, -1, -1, -1, -1, -1, -1, 79, 80, 81, + -1, -1, -1, -1, -1, 87, 88, 89, -1, -1, + -1, -1, 94, -1, 96, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 111, + 112, 3, 4, 5, 6, 7, 8, 9, 10, 11, + -1, 13, 14, 15, -1, 17, 18, 19, 20, 21, + 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, + 32, 33, -1, 35, 36, 37, -1, 39, 40, 41, + 42, 43, 44, -1, 46, -1, -1, -1, 50, 51, + 52, 53, 54, 55, -1, 57, 58, 59, -1, 61, + 62, -1, -1, -1, -1, -1, 68, -1, -1, 71, + -1, -1, -1, -1, -1, -1, -1, 79, 80, 81, + -1, -1, -1, -1, -1, 87, 88, 89, -1, -1, + -1, -1, 94, -1, 96, -1, -1, 3, 4, 5, + 6, 7, 8, 9, 10, 11, -1, 13, 14, 15, + 112, 17, 18, 19, 20, 21, 22, 23, 24, 25, + 26, 27, 28, 29, 30, 31, 32, 33, -1, 35, + 36, 37, -1, 39, 40, 41, 42, 43, 44, -1, + 46, -1, -1, -1, 50, 51, 52, 53, 54, 55, + -1, 57, 58, 59, -1, 61, 62, -1, -1, -1, + -1, -1, 68, -1, -1, 71, -1, -1, -1, -1, + -1, -1, -1, 79, 80, 81, -1, -1, -1, -1, + -1, 87, 88, 89, -1, -1, -1, -1, 94, -1, + 96, -1, -1, 3, 4, 5, 6, 7, 8, 9, + 10, 11, -1, 13, 14, 15, 112, 17, 18, 19, + 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, + 30, 31, 32, 33, -1, 35, 36, 37, -1, 39, + 40, 41, 42, 43, 44, -1, 46, -1, -1, -1, + 50, 51, 52, 53, 54, 55, -1, 57, 58, -1, + -1, 61, 62, -1, -1, -1, -1, -1, 68, -1, + -1, 71, -1, -1, -1, -1, -1, -1, -1, 79, + 80, 81, -1, -1, -1, -1, -1, 87, 88, 89, + -1, -1, -1, -1, 94, -1, 96, 3, 4, 5, + 6, 7, 8, 9, 10, 11, 12, 13, 14, -1, + -1, -1, 112, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 29, 30, 31, 32, 33, -1, 35, + 36, 37, -1, 39, 40, 41, 42, 43, 44, -1, + 46, -1, 48, -1, 50, 51, 52, 53, 54, 55, + -1, 57, 58, -1, -1, -1, 62, -1, -1, -1, + -1, -1, 68, -1, -1, 71, -1, -1, -1, -1, + -1, -1, -1, 79, 80, 81, -1, -1, -1, -1, + -1, 87, 88, 89, -1, 91, -1, -1, 94, 95, + -1, -1, 98, 3, 4, 5, 6, 7, 8, 9, + 10, 11, 12, 13, 14, -1, 112, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 29, + 30, 31, 32, 33, -1, 35, 36, 37, -1, 39, + 40, 41, 42, 43, 44, -1, 46, -1, 48, -1, + 50, 51, 52, 53, 54, 55, -1, 57, 58, -1, + -1, -1, 62, -1, -1, -1, -1, -1, 68, -1, + -1, 71, -1, -1, -1, -1, -1, -1, -1, 79, + 80, 81, -1, -1, -1, -1, -1, 87, 88, 89, + -1, 91, -1, -1, 94, 95, -1, -1, 98, 3, 4, 5, 6, -1, 8, 9, 10, 11, -1, 13, - 14, -1, -1, -1, -1, 112, -1, -1, -1, -1, + 14, -1, 112, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 29, 30, 31, -1, 33, -1, 35, 36, 37, -1, 39, 40, 41, 42, 43, 44, -1, 46, -1, 48, -1, 50, 51, 52, 53, @@ -3314,18 +3304,36 @@ static const short yycheck[] = { 4, 11, -1, 13, 14, -1, -1, -1, -1, 112, -1, -1, -1, -1, -1, -1, -1, -1, -1, 29, 30, 31, -1, 33, -1, 35, 36, 37, -1, 39, 40, - 41, 42, 43, 44, -1, 46, -1, -1, -1, 50, + 41, 42, 43, 44, -1, 46, -1, 48, -1, 50, 51, 52, 53, 54, 55, -1, 57, 58, -1, -1, - 61, 62, -1, -1, -1, -1, -1, 68, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 68, -1, -1, 71, -1, -1, -1, -1, -1, -1, -1, 79, 80, 81, -1, -1, -1, -1, -1, 87, 88, 89, -1, - -1, -1, -1, 94, 3, 4, 5, 6, 7, 8, - 9, 10, 11, -1, 13, 14, -1, -1, -1, -1, + 91, -1, -1, 94, 95, 3, 4, 5, 6, -1, + 8, 9, 10, 11, -1, 13, 14, -1, -1, -1, -1, 112, -1, -1, -1, -1, -1, -1, -1, -1, - 29, 30, 31, 32, 33, -1, 35, 36, 37, -1, + -1, 29, 30, 31, -1, 33, -1, 35, 36, 37, + -1, 39, 40, 41, 42, 43, 44, -1, 46, -1, + -1, -1, 50, 51, 52, 53, 54, 55, -1, 57, + 58, -1, -1, 61, 62, -1, -1, -1, -1, -1, + 68, -1, -1, 71, -1, -1, -1, -1, -1, -1, + -1, 79, 80, 81, -1, -1, -1, -1, -1, 87, + 88, 89, -1, -1, -1, -1, 94, 3, 4, 5, + 6, 7, 8, 9, 10, 11, -1, 13, 14, -1, + -1, -1, -1, -1, 112, -1, -1, -1, -1, -1, + -1, -1, -1, 29, 30, 31, 32, 33, -1, 35, + 36, 37, -1, 39, 40, 41, 42, 43, 44, -1, + 46, -1, -1, -1, 50, 51, 52, 53, 54, 55, + -1, 57, 58, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 68, -1, -1, 71, -1, -1, -1, -1, + -1, -1, -1, 79, 80, 81, -1, -1, -1, -1, + -1, 87, 88, 89, 3, 4, 5, 6, 94, 8, + 9, 10, 11, -1, 13, 14, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 112, -1, -1, -1, + 29, 30, 31, -1, 33, -1, 35, 36, 37, -1, 39, 40, 41, 42, 43, 44, -1, 46, -1, -1, -1, 50, 51, 52, 53, 54, 55, -1, 57, 58, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, + -1, -1, -1, 62, -1, -1, -1, -1, -1, 68, -1, -1, 71, -1, -1, -1, -1, -1, -1, -1, 79, 80, 81, -1, -1, -1, -1, -1, 87, 88, 89, 3, 4, 5, 6, 94, 8, 9, 10, 11, @@ -3342,7 +3350,7 @@ static const short yycheck[] = { 4, 112, -1, -1, -1, 29, 30, 31, -1, 33, -1, 35, 36, 37, -1, 39, 40, 41, 42, 43, 44, -1, 46, -1, -1, -1, 50, 51, 52, 53, 54, - 55, -1, 57, 58, -1, -1, -1, 62, -1, -1, + 55, -1, 57, 58, 59, -1, -1, -1, -1, -1, -1, -1, -1, 68, -1, -1, 71, -1, -1, -1, -1, -1, -1, -1, 79, 80, 81, -1, -1, -1, -1, -1, 87, 88, 89, 3, 4, 5, 6, 94, @@ -3351,21 +3359,21 @@ static const short yycheck[] = { 4, -1, 29, 30, 31, -1, 33, -1, 35, 36, 37, -1, 39, 40, 41, 42, 43, 44, -1, 46, -1, -1, -1, 50, 51, 52, 53, 54, 55, -1, 57, - 58, 59, -1, -1, -1, -1, -1, -1, -1, -1, + 58, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, -1, -1, 71, -1, -1, -1, -1, -1, -1, -1, 79, 80, 81, -1, -1, -1, -1, -1, 87, - 88, 89, 3, 4, 5, 6, 94, 8, 9, 10, - 11, -1, 13, 14, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 112, -1, -1, -1, 29, 30, - 31, -1, 33, -1, 35, 36, 37, -1, 39, 40, - 41, 42, 43, 44, -1, 46, -1, -1, -1, 50, - 51, 52, 53, 54, 55, -1, 57, 58, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 68, -1, -1, - 71, -1, -1, -1, -1, -1, -1, -1, 79, 80, - 81, -1, -1, -1, -1, -1, 87, 88, 89, -1, - -1, -1, -1, 94, 95, 3, 4, 5, 6, -1, + 88, 89, -1, -1, -1, -1, 94, 95, 3, 4, + 5, 6, -1, 8, 9, 10, 11, -1, 13, 14, + -1, -1, -1, -1, 112, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 29, 30, 31, -1, 33, -1, + 35, 36, 37, -1, 39, 40, 41, 42, 43, 44, + -1, 46, -1, -1, -1, 50, 51, 52, 53, 54, + 55, -1, 57, 58, -1, -1, -1, 62, -1, -1, + -1, -1, -1, 68, -1, -1, 71, -1, -1, -1, + -1, -1, -1, -1, 79, 80, 81, -1, -1, -1, + -1, -1, 87, 88, 89, 3, 4, 5, 6, 94, 8, 9, 10, 11, -1, 13, 14, -1, -1, -1, - -1, 112, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 112, -1, -1, -1, 29, 30, 31, -1, 33, -1, 35, 36, 37, -1, 39, 40, 41, 42, 43, 44, -1, 46, -1, -1, -1, 50, 51, 52, 53, 54, 55, -1, 57, @@ -3386,7 +3394,7 @@ static const short yycheck[] = { 4, -1, 112, -1, -1, -1, 29, 30, 31, -1, 33, -1, 35, 36, 37, -1, 39, 40, 41, 42, 43, 44, -1, 46, -1, -1, -1, 50, 51, 52, 53, - 54, 55, -1, 57, 58, -1, -1, -1, 62, -1, + 54, 55, -1, 57, 58, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, -1, -1, 71, -1, -1, -1, -1, -1, -1, -1, 79, 80, 81, -1, -1, -1, -1, -1, 87, 88, 89, 3, 4, 5, 6, @@ -3422,74 +3430,71 @@ static const short yycheck[] = { 4, 36, 37, -1, 39, 40, 41, 42, 43, 44, -1, 46, -1, -1, -1, 50, 51, 52, 53, 54, 55, -1, 57, 58, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 68, -1, -1, 71, -1, -1, -1, -1, - -1, -1, -1, 79, 80, 81, -1, -1, -1, -1, - -1, 87, 88, 89, 3, 4, 5, 6, 94, 8, - 9, 10, 11, -1, 13, 14, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 112, -1, -1, -1, - 29, 30, 31, -1, 33, -1, 35, 36, 37, -1, - 39, 40, 41, 42, 43, 44, -1, 46, -1, -1, - -1, 50, 51, 52, 53, 54, 55, -1, 57, 58, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, - -1, -1, 71, 3, 4, 5, 6, 7, 8, 9, - 79, 80, 81, -1, 14, -1, -1, -1, 87, 88, - 89, -1, -1, -1, -1, 94, -1, -1, -1, 29, - -1, 31, 32, -1, -1, -1, -1, 37, -1, -1, - -1, -1, 42, 112, -1, -1, 46, -1, 3, 4, - 5, 6, 7, 8, 9, 55, -1, 57, 58, 14, - -1, -1, -1, 63, -1, -1, -1, -1, -1, -1, - -1, 71, -1, -1, 29, -1, 31, 32, -1, -1, - -1, 81, 37, -1, -1, -1, -1, 42, -1, 89, - -1, 46, -1, -1, 94, -1, -1, -1, -1, -1, - 55, -1, 57, 58, -1, -1, 61, 3, 4, 5, - 6, 7, 8, 9, -1, -1, 71, -1, 14, -1, - -1, -1, -1, -1, -1, -1, 81, -1, -1, -1, - -1, -1, -1, 29, 89, 31, 32, -1, -1, 94, + -1, -1, 68, -1, 1, 71, 3, 4, 5, 6, + 7, 8, 9, 79, 80, 81, -1, 14, -1, -1, + -1, 87, 88, 89, -1, -1, -1, -1, 94, -1, + -1, -1, 29, -1, 31, 32, -1, -1, -1, -1, + 37, -1, -1, -1, -1, 42, 112, -1, -1, 46, + -1, -1, 49, -1, -1, -1, -1, -1, 55, -1, + 57, 58, -1, -1, 61, 3, 4, 5, 6, 7, + 8, 9, -1, -1, 71, -1, 14, -1, -1, -1, + -1, -1, -1, -1, 81, -1, -1, -1, -1, -1, + -1, 29, 89, 31, 32, -1, -1, 94, -1, 37, + -1, -1, -1, -1, 42, -1, -1, -1, 46, -1, + 48, -1, -1, -1, -1, -1, -1, 55, -1, 57, + 58, 3, 4, 5, 6, 7, 8, 9, -1, -1, + -1, -1, 14, 71, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 81, -1, -1, -1, 29, -1, 31, + 32, 89, -1, 91, -1, 37, 94, 95, -1, -1, + 42, -1, -1, -1, 46, -1, 3, 4, 5, 6, + 7, 8, 9, 55, -1, 57, 58, 14, -1, 61, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 71, + -1, -1, 29, -1, 31, 32, -1, -1, -1, 81, + 37, -1, -1, -1, -1, 42, -1, 89, -1, 46, + -1, -1, 94, -1, -1, -1, -1, -1, 55, -1, + 57, 58, -1, -1, -1, -1, 63, 3, 4, 5, + 6, 7, 8, 9, 71, -1, -1, -1, 14, -1, + -1, -1, -1, -1, 81, -1, -1, -1, -1, -1, + -1, -1, 89, 29, -1, 31, 32, 94, -1, -1, -1, 37, -1, -1, -1, -1, 42, -1, -1, -1, 46, -1, 3, 4, 5, 6, 7, 8, 9, 55, - -1, 57, 58, 14, -1, -1, -1, -1, -1, -1, - -1, -1, 4, 5, -1, 71, 8, 9, 29, -1, - 31, 32, 14, -1, -1, 81, 37, -1, -1, -1, + -1, 57, 58, 14, -1, 61, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 71, -1, -1, 29, -1, + 31, 32, -1, -1, -1, 81, 37, -1, -1, -1, -1, 42, -1, 89, -1, 46, -1, -1, 94, -1, - -1, -1, -1, -1, 55, 37, 57, 58, -1, -1, - -1, -1, -1, 12, 46, -1, 48, -1, -1, -1, - 71, -1, -1, 55, -1, 57, 58, -1, -1, -1, - 81, -1, -1, -1, -1, -1, -1, -1, 89, 71, - -1, -1, -1, 94, -1, -1, -1, -1, -1, 81, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 91, - -1, -1, 94, 95, 63, 64, 65, 66, 67, 68, - 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, - 79, 80, 81, 82, 83, 84, 85, 4, 5, -1, - 7, 8, 9, -1, -1, 12, -1, 14, -1, -1, - 4, 5, -1, 7, 8, 9, -1, -1, -1, -1, - 14, -1, 29, -1, 31, 32, -1, -1, -1, -1, - 37, -1, -1, -1, -1, 29, -1, 31, 32, 46, - -1, -1, -1, 37, -1, -1, -1, -1, 55, -1, - 57, 58, 46, -1, -1, 4, 5, -1, -1, 8, - 9, 55, -1, 57, 58, 14, -1, -1, 4, 5, - -1, -1, 8, 9, -1, -1, -1, -1, 14, -1, - 29, -1, 31, -1, -1, -1, -1, -1, 37, -1, - -1, -1, -1, 29, -1, 31, -1, 46, -1, -1, - -1, 37, -1, -1, -1, -1, 55, -1, 57, 58, - 46, -1, -1, -1, -1, -1, -1, -1, -1, 55, - -1, 57, 58, 64, 65, 66, 67, 68, 69, 70, - 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, - 81, 82, 83, 84, 85, 64, 65, 66, 67, 68, - 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, - 79, 80, 81, 82, 83, 84, 85, -1, -1, -1, - -1, -1, 113, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 60, -1, -1, - 109, 64, 65, 66, 67, 68, 69, 70, 71, 72, + -1, -1, -1, -1, 55, -1, 57, 58, 3, 4, + 5, 6, 7, 8, 9, -1, -1, -1, -1, 14, + 71, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 81, -1, -1, -1, 29, -1, 31, 32, 89, -1, + -1, -1, 37, 94, -1, -1, -1, 42, -1, -1, + -1, 46, -1, 3, 4, 5, 6, 7, 8, 9, + 55, -1, 57, 58, 14, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 71, -1, -1, -1, + -1, -1, 32, -1, -1, -1, 81, 37, -1, -1, + -1, -1, 42, -1, 89, 12, 46, -1, 48, 94, + -1, -1, -1, -1, -1, 55, -1, 57, 58, 64, + 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, + 75, 71, 77, 78, 79, 80, 81, 82, 83, 84, + 85, 81, -1, -1, -1, -1, -1, 32, -1, 89, + -1, -1, -1, -1, 94, -1, 63, 64, 65, 66, + 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, + 77, 78, 79, 80, 81, 82, 83, 84, 85, 64, + 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, + 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, + 85, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, - 83, 84, 85, 63, 64, 65, 66, 67, 68, 69, - 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, - 80, 81, 82, 83, 84, 85, 64, 65, 66, 67, - 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, - 78, 79, 80, 81, 82, 83, 84, 85, 64, 65, - 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, - -1, 77, 78, 79, 80, 81, 82, 83, 84, 85, + 83, 84, 85, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, - 81, 82, 83, 84, 85 + 81, 82, 83, 84, 85, -1, -1, -1, -1, -1, + 113, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 60, -1, -1, 109, 64, + 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, + 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, + 85, 63, 64, 65, 66, 67, 68, 69, 70, 71, + 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, + 82, 83, 84, 85, 64, 65, 66, 67, 68, 69, + 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, + 80, 81, 82, 83, 84, 85 }; /* -*-C-*- Note some compilers choke on comments on `#line' lines. */ #line 3 "/usr/lib/bison.simple" @@ -4717,7 +4722,7 @@ case 170: break;} case 171: #line 1005 "parse.y" -{ yyval.ttype = condition_conversion (yyvsp[-1].ttype); ; +{ yyval.ttype = yyvsp[-1].ttype; ; break;} case 172: #line 1010 "parse.y" @@ -4727,7 +4732,7 @@ case 172: break;} case 173: #line 1014 "parse.y" -{ yyval.ttype = condition_conversion (yyvsp[-1].ttype); ; +{ yyval.ttype = yyvsp[-1].ttype; ; break;} case 174: #line 1019 "parse.y" @@ -4773,72 +4778,57 @@ case 178: break;} case 184: #line 1065 "parse.y" -{ - if (processing_template_decl) - { - yyval.ttype = build_min_nt (COMPOUND_STMT, NULL_TREE); - COMPOUND_STMT_NO_SCOPE (yyval.ttype) = 1; - add_tree (yyval.ttype); - } - ; +{ yyval.ttype = begin_compound_stmt (1); ; break;} case 185: -#line 1074 "parse.y" -{ - if (processing_template_decl) - { - TREE_OPERAND (yyvsp[-1].ttype, 0) = TREE_CHAIN (yyvsp[-1].ttype); - TREE_CHAIN (yyvsp[-1].ttype) = NULL_TREE; - last_tree = yyvsp[-1].ttype; - } - finish_stmt (); - ; +#line 1067 "parse.y" +{ finish_compound_stmt (1, yyvsp[-1].ttype); ; break;} case 187: -#line 1089 "parse.y" +#line 1074 "parse.y" { yyval.ttype = expr_tree_cons (NULL_TREE, yyval.ttype, build_expr_list (NULL_TREE, yyvsp[0].ttype)); ; break;} case 188: -#line 1092 "parse.y" +#line 1077 "parse.y" { yyval.ttype = expr_tree_cons (NULL_TREE, yyval.ttype, build_expr_list (NULL_TREE, error_mark_node)); ; break;} case 189: -#line 1095 "parse.y" +#line 1080 "parse.y" { chainon (yyval.ttype, build_expr_list (NULL_TREE, yyvsp[0].ttype)); ; break;} case 190: -#line 1097 "parse.y" +#line 1082 "parse.y" { chainon (yyval.ttype, build_expr_list (NULL_TREE, error_mark_node)); ; break;} case 191: -#line 1102 "parse.y" +#line 1087 "parse.y" { yyval.ttype = build_expr_list (NULL_TREE, yyval.ttype); ; break;} case 193: -#line 1108 "parse.y" +#line 1093 "parse.y" { yyval.ttype = yyvsp[0].ttype; ; break;} case 194: -#line 1111 "parse.y" +#line 1096 "parse.y" { yyval.ttype = yyvsp[0].ttype; pedantic = yyvsp[-1].itype; ; break;} case 195: -#line 1114 "parse.y" +#line 1099 "parse.y" { yyval.ttype = build_x_indirect_ref (yyvsp[0].ttype, "unary *"); ; break;} case 196: -#line 1116 "parse.y" +#line 1101 "parse.y" { yyval.ttype = build_x_unary_op (ADDR_EXPR, yyvsp[0].ttype); ; break;} case 197: -#line 1118 "parse.y" +#line 1103 "parse.y" { yyval.ttype = build_x_unary_op (BIT_NOT_EXPR, yyvsp[0].ttype); ; break;} case 198: -#line 1120 "parse.y" +#line 1105 "parse.y" { yyval.ttype = build_x_unary_op (yyvsp[-1].code, yyvsp[0].ttype); if (yyvsp[-1].code == NEGATE_EXPR && TREE_CODE (yyvsp[0].ttype) == INTEGER_CST) TREE_NEGATED_INT (yyval.ttype) = 1; @@ -4846,7 +4836,7 @@ case 198: ; break;} case 199: -#line 1127 "parse.y" +#line 1112 "parse.y" { tree label = lookup_label (yyvsp[0].ttype); if (pedantic) pedwarn ("ANSI C++ forbids `&&'"); @@ -4861,115 +4851,115 @@ case 199: ; break;} case 200: -#line 1140 "parse.y" +#line 1125 "parse.y" { yyval.ttype = expr_sizeof (yyvsp[0].ttype); ; break;} case 201: -#line 1142 "parse.y" +#line 1127 "parse.y" { yyval.ttype = c_sizeof (groktypename (yyvsp[-1].ftype.t)); ; break;} case 202: -#line 1144 "parse.y" +#line 1129 "parse.y" { yyval.ttype = grok_alignof (yyvsp[0].ttype); ; break;} case 203: -#line 1146 "parse.y" +#line 1131 "parse.y" { yyval.ttype = c_alignof (groktypename (yyvsp[-1].ftype.t)); check_for_new_type ("alignof", yyvsp[-1].ftype); ; break;} case 204: -#line 1152 "parse.y" +#line 1137 "parse.y" { yyval.ttype = build_new (NULL_TREE, yyvsp[0].ftype.t, NULL_TREE, yyvsp[-1].itype); check_for_new_type ("new", yyvsp[0].ftype); ; break;} case 205: -#line 1155 "parse.y" +#line 1140 "parse.y" { yyval.ttype = build_new (NULL_TREE, yyvsp[-1].ftype.t, yyvsp[0].ttype, yyvsp[-2].itype); check_for_new_type ("new", yyvsp[-1].ftype); ; break;} case 206: -#line 1158 "parse.y" +#line 1143 "parse.y" { yyval.ttype = build_new (yyvsp[-1].ttype, yyvsp[0].ftype.t, NULL_TREE, yyvsp[-2].itype); check_for_new_type ("new", yyvsp[0].ftype); ; break;} case 207: -#line 1161 "parse.y" +#line 1146 "parse.y" { yyval.ttype = build_new (yyvsp[-2].ttype, yyvsp[-1].ftype.t, yyvsp[0].ttype, yyvsp[-3].itype); check_for_new_type ("new", yyvsp[-1].ftype); ; break;} case 208: -#line 1164 "parse.y" +#line 1149 "parse.y" { yyval.ttype = build_new (NULL_TREE, groktypename(yyvsp[-1].ftype.t), NULL_TREE, yyvsp[-3].itype); check_for_new_type ("new", yyvsp[-1].ftype); ; break;} case 209: -#line 1168 "parse.y" +#line 1153 "parse.y" { yyval.ttype = build_new (NULL_TREE, groktypename(yyvsp[-2].ftype.t), yyvsp[0].ttype, yyvsp[-4].itype); check_for_new_type ("new", yyvsp[-2].ftype); ; break;} case 210: -#line 1171 "parse.y" +#line 1156 "parse.y" { yyval.ttype = build_new (yyvsp[-3].ttype, groktypename(yyvsp[-1].ftype.t), NULL_TREE, yyvsp[-4].itype); check_for_new_type ("new", yyvsp[-1].ftype); ; break;} case 211: -#line 1174 "parse.y" +#line 1159 "parse.y" { yyval.ttype = build_new (yyvsp[-4].ttype, groktypename(yyvsp[-2].ftype.t), yyvsp[0].ttype, yyvsp[-5].itype); check_for_new_type ("new", yyvsp[-2].ftype); ; break;} case 212: -#line 1178 "parse.y" +#line 1163 "parse.y" { yyval.ttype = delete_sanity (yyvsp[0].ttype, NULL_TREE, 0, yyvsp[-1].itype); ; break;} case 213: -#line 1180 "parse.y" +#line 1165 "parse.y" { yyval.ttype = delete_sanity (yyvsp[0].ttype, NULL_TREE, 1, yyvsp[-3].itype); if (yychar == YYEMPTY) yychar = YYLEX; ; break;} case 214: -#line 1184 "parse.y" +#line 1169 "parse.y" { yyval.ttype = delete_sanity (yyvsp[0].ttype, yyvsp[-2].ttype, 2, yyvsp[-4].itype); if (yychar == YYEMPTY) yychar = YYLEX; ; break;} case 215: -#line 1188 "parse.y" +#line 1173 "parse.y" { yyval.ttype = build_x_unary_op (REALPART_EXPR, yyvsp[0].ttype); ; break;} case 216: -#line 1190 "parse.y" +#line 1175 "parse.y" { yyval.ttype = build_x_unary_op (IMAGPART_EXPR, yyvsp[0].ttype); ; break;} case 217: -#line 1195 "parse.y" +#line 1180 "parse.y" { yyval.ttype = yyvsp[-1].ttype; ; break;} case 218: -#line 1197 "parse.y" +#line 1182 "parse.y" { yyval.ttype = yyvsp[-1].ttype; pedwarn ("old style placement syntax, use () instead"); ; break;} case 219: -#line 1205 "parse.y" +#line 1190 "parse.y" { yyval.ttype = yyvsp[-1].ttype; ; break;} case 220: -#line 1207 "parse.y" +#line 1192 "parse.y" { yyval.ttype = NULL_TREE; ; break;} case 221: -#line 1209 "parse.y" +#line 1194 "parse.y" { cp_error ("`%T' is not a valid expression", yyvsp[-1].ftype.t); yyval.ttype = error_mark_node; ; break;} case 222: -#line 1217 "parse.y" +#line 1202 "parse.y" { if (pedantic) pedwarn ("ANSI C++ forbids initialization of new expression with `='"); @@ -4981,25 +4971,25 @@ case 222: ; break;} case 223: -#line 1231 "parse.y" +#line 1216 "parse.y" { yyvsp[-1].ftype.t = tree_cons (NULL_TREE, yyvsp[-1].ftype.t, void_list_node); TREE_PARMLIST (yyvsp[-1].ftype.t) = 1; yyval.ttype = make_call_declarator (NULL_TREE, yyvsp[-1].ftype.t, NULL_TREE, NULL_TREE); check_for_new_type ("cast", yyvsp[-1].ftype); ; break;} case 224: -#line 1236 "parse.y" +#line 1221 "parse.y" { yyvsp[-1].ftype.t = tree_cons (NULL_TREE, yyvsp[-1].ftype.t, void_list_node); TREE_PARMLIST (yyvsp[-1].ftype.t) = 1; yyval.ttype = make_call_declarator (yyval.ttype, yyvsp[-1].ftype.t, NULL_TREE, NULL_TREE); check_for_new_type ("cast", yyvsp[-1].ftype); ; break;} case 226: -#line 1245 "parse.y" +#line 1230 "parse.y" { yyval.ttype = reparse_absdcl_as_casts (yyval.ttype, yyvsp[0].ttype); ; break;} case 227: -#line 1247 "parse.y" +#line 1232 "parse.y" { tree init = build_nt (CONSTRUCTOR, NULL_TREE, nreverse (yyvsp[-2].ttype)); @@ -5012,157 +5002,157 @@ case 227: ; break;} case 229: -#line 1263 "parse.y" +#line 1248 "parse.y" { yyval.ttype = build_x_binary_op (MEMBER_REF, yyval.ttype, yyvsp[0].ttype); ; break;} case 230: -#line 1265 "parse.y" +#line 1250 "parse.y" { yyval.ttype = build_m_component_ref (yyval.ttype, yyvsp[0].ttype); ; break;} case 231: -#line 1267 "parse.y" +#line 1252 "parse.y" { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ; break;} case 232: -#line 1269 "parse.y" +#line 1254 "parse.y" { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ; break;} case 233: -#line 1271 "parse.y" +#line 1256 "parse.y" { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ; break;} case 234: -#line 1273 "parse.y" +#line 1258 "parse.y" { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ; break;} case 235: -#line 1275 "parse.y" +#line 1260 "parse.y" { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ; break;} case 236: -#line 1277 "parse.y" +#line 1262 "parse.y" { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ; break;} case 237: -#line 1279 "parse.y" +#line 1264 "parse.y" { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ; break;} case 238: -#line 1281 "parse.y" +#line 1266 "parse.y" { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ; break;} case 239: -#line 1283 "parse.y" +#line 1268 "parse.y" { yyval.ttype = build_x_binary_op (LT_EXPR, yyval.ttype, yyvsp[0].ttype); ; break;} case 240: -#line 1285 "parse.y" +#line 1270 "parse.y" { yyval.ttype = build_x_binary_op (GT_EXPR, yyval.ttype, yyvsp[0].ttype); ; break;} case 241: -#line 1287 "parse.y" +#line 1272 "parse.y" { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ; break;} case 242: -#line 1289 "parse.y" +#line 1274 "parse.y" { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ; break;} case 243: -#line 1291 "parse.y" +#line 1276 "parse.y" { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ; break;} case 244: -#line 1293 "parse.y" +#line 1278 "parse.y" { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ; break;} case 245: -#line 1295 "parse.y" +#line 1280 "parse.y" { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ; break;} case 246: -#line 1297 "parse.y" +#line 1282 "parse.y" { yyval.ttype = build_x_binary_op (TRUTH_ANDIF_EXPR, yyval.ttype, yyvsp[0].ttype); ; break;} case 247: -#line 1299 "parse.y" +#line 1284 "parse.y" { yyval.ttype = build_x_binary_op (TRUTH_ORIF_EXPR, yyval.ttype, yyvsp[0].ttype); ; break;} case 248: -#line 1301 "parse.y" +#line 1286 "parse.y" { yyval.ttype = build_x_conditional_expr (yyval.ttype, yyvsp[-2].ttype, yyvsp[0].ttype); ; break;} case 249: -#line 1303 "parse.y" +#line 1288 "parse.y" { yyval.ttype = build_x_modify_expr (yyval.ttype, NOP_EXPR, yyvsp[0].ttype); if (yyval.ttype != error_mark_node) C_SET_EXP_ORIGINAL_CODE (yyval.ttype, MODIFY_EXPR); ; break;} case 250: -#line 1307 "parse.y" +#line 1292 "parse.y" { yyval.ttype = build_x_modify_expr (yyval.ttype, yyvsp[-1].code, yyvsp[0].ttype); ; break;} case 251: -#line 1309 "parse.y" +#line 1294 "parse.y" { yyval.ttype = build_throw (NULL_TREE); ; break;} case 252: -#line 1311 "parse.y" +#line 1296 "parse.y" { yyval.ttype = build_throw (yyvsp[0].ttype); ; break;} case 253: -#line 1329 "parse.y" +#line 1314 "parse.y" { yyval.ttype = build_parse_node (BIT_NOT_EXPR, yyvsp[0].ttype); ; break;} case 259: -#line 1338 "parse.y" +#line 1323 "parse.y" { yyval.ttype = do_identifier (yyvsp[-1].ttype, 1); ; break;} case 260: -#line 1342 "parse.y" +#line 1327 "parse.y" { yyval.ttype = lookup_template_function (yyvsp[-2].ttype, yyvsp[-1].ttype); ; break;} case 261: -#line 1344 "parse.y" +#line 1329 "parse.y" { yyval.ttype = lookup_template_function (yyvsp[-2].ttype, yyvsp[-1].ttype); ; break;} case 262: -#line 1349 "parse.y" +#line 1334 "parse.y" { yyval.ttype = lookup_template_function (yyvsp[-3].ttype, yyvsp[-1].ttype); ; break;} case 263: -#line 1351 "parse.y" +#line 1336 "parse.y" { yyval.ttype = lookup_template_function (yyvsp[-3].ttype, yyvsp[-1].ttype); ; break;} case 264: -#line 1354 "parse.y" +#line 1339 "parse.y" { yyval.ttype = lookup_template_function (yyvsp[-3].ttype, yyvsp[-1].ttype); ; break;} case 269: -#line 1366 "parse.y" +#line 1351 "parse.y" { yyval.ttype = build_parse_node (INDIRECT_REF, yyvsp[0].ttype); ; break;} case 270: -#line 1368 "parse.y" +#line 1353 "parse.y" { yyval.ttype = build_parse_node (ADDR_EXPR, yyvsp[0].ttype); ; break;} case 271: -#line 1370 "parse.y" +#line 1355 "parse.y" { yyval.ttype = yyvsp[-1].ttype; ; break;} case 272: -#line 1375 "parse.y" +#line 1360 "parse.y" { yyval.ttype = lookup_template_function (yyvsp[-3].ttype, yyvsp[-1].ttype); ; break;} case 273: -#line 1377 "parse.y" +#line 1362 "parse.y" { yyval.ttype = lookup_template_function (yyvsp[-3].ttype, yyvsp[-1].ttype); ; break;} case 277: -#line 1385 "parse.y" +#line 1370 "parse.y" { yyval.ttype = finish_decl_parsing (yyvsp[-1].ttype); ; break;} case 278: -#line 1390 "parse.y" +#line 1375 "parse.y" { if (TREE_CODE (yyval.ttype) == BIT_NOT_EXPR) yyval.ttype = build_x_unary_op (BIT_NOT_EXPR, TREE_OPERAND (yyval.ttype, 0)); @@ -5171,7 +5161,7 @@ case 278: ; break;} case 281: -#line 1399 "parse.y" +#line 1384 "parse.y" { if (processing_template_decl) push_obstacks (&permanent_obstack, &permanent_obstack); @@ -5181,7 +5171,7 @@ case 281: ; break;} case 282: -#line 1407 "parse.y" +#line 1392 "parse.y" { char class; yyval.ttype = yyvsp[-1].ttype; class = TREE_CODE_CLASS (TREE_CODE (yyval.ttype)); @@ -5191,7 +5181,7 @@ case 282: C_SET_EXP_ORIGINAL_CODE (yyval.ttype, ERROR_MARK); ; break;} case 283: -#line 1415 "parse.y" +#line 1400 "parse.y" { char class; yyval.ttype = reparse_decl_as_expr (NULL_TREE, yyvsp[-1].ttype); class = TREE_CODE_CLASS (TREE_CODE (yyval.ttype)); @@ -5201,11 +5191,11 @@ case 283: C_SET_EXP_ORIGINAL_CODE (yyval.ttype, ERROR_MARK); ; break;} case 284: -#line 1423 "parse.y" +#line 1408 "parse.y" { yyval.ttype = error_mark_node; ; break;} case 285: -#line 1425 "parse.y" +#line 1410 "parse.y" { if (current_function_decl == 0) { error ("braced-group within expression allowed only inside a function"); @@ -5219,7 +5209,7 @@ case 285: ; break;} case 286: -#line 1437 "parse.y" +#line 1422 "parse.y" { tree rtl_exp; if (pedantic) pedwarn ("ANSI C++ forbids braced-groups within expressions"); @@ -5251,7 +5241,7 @@ case 286: ; break;} case 287: -#line 1467 "parse.y" +#line 1452 "parse.y" { yyval.ttype = build_x_function_call (yyvsp[-3].ttype, yyvsp[-1].ttype, current_class_ref); if (TREE_CODE (yyval.ttype) == CALL_EXPR @@ -5260,7 +5250,7 @@ case 287: ; break;} case 288: -#line 1474 "parse.y" +#line 1459 "parse.y" { yyval.ttype = build_x_function_call (yyval.ttype, NULL_TREE, current_class_ref); if (TREE_CODE (yyval.ttype) == CALL_EXPR @@ -5269,11 +5259,11 @@ case 288: ; break;} case 289: -#line 1481 "parse.y" +#line 1466 "parse.y" { yyval.ttype = grok_array_decl (yyval.ttype, yyvsp[-1].ttype); ; break;} case 290: -#line 1483 "parse.y" +#line 1468 "parse.y" { /* If we get an OFFSET_REF, turn it into what it really means (e.g., a COMPONENT_REF). This way if we've got, say, a reference to a static member that's being operated @@ -5284,13 +5274,13 @@ case 290: yyval.ttype = build_x_unary_op (POSTINCREMENT_EXPR, yyval.ttype); ; break;} case 291: -#line 1492 "parse.y" +#line 1477 "parse.y" { if (TREE_CODE (yyval.ttype) == OFFSET_REF) yyval.ttype = resolve_offset_ref (yyval.ttype); yyval.ttype = build_x_unary_op (POSTDECREMENT_EXPR, yyval.ttype); ; break;} case 292: -#line 1497 "parse.y" +#line 1482 "parse.y" { if (current_class_ptr) { #ifdef WARNING_ABOUT_CCD @@ -5315,7 +5305,7 @@ case 292: ; break;} case 293: -#line 1520 "parse.y" +#line 1505 "parse.y" { tree type = NULL_TREE; tree id = yyval.ttype; @@ -5361,45 +5351,45 @@ case 293: ; break;} case 295: -#line 1565 "parse.y" +#line 1550 "parse.y" { tree type = groktypename (yyvsp[-4].ftype.t); check_for_new_type ("dynamic_cast", yyvsp[-4].ftype); yyval.ttype = build_dynamic_cast (type, yyvsp[-1].ttype); ; break;} case 296: -#line 1569 "parse.y" +#line 1554 "parse.y" { tree type = groktypename (yyvsp[-4].ftype.t); check_for_new_type ("static_cast", yyvsp[-4].ftype); yyval.ttype = build_static_cast (type, yyvsp[-1].ttype); ; break;} case 297: -#line 1573 "parse.y" +#line 1558 "parse.y" { tree type = groktypename (yyvsp[-4].ftype.t); check_for_new_type ("reinterpret_cast", yyvsp[-4].ftype); yyval.ttype = build_reinterpret_cast (type, yyvsp[-1].ttype); ; break;} case 298: -#line 1577 "parse.y" +#line 1562 "parse.y" { tree type = groktypename (yyvsp[-4].ftype.t); check_for_new_type ("const_cast", yyvsp[-4].ftype); yyval.ttype = build_const_cast (type, yyvsp[-1].ttype); ; break;} case 299: -#line 1581 "parse.y" +#line 1566 "parse.y" { yyval.ttype = build_x_typeid (yyvsp[-1].ttype); ; break;} case 300: -#line 1583 "parse.y" +#line 1568 "parse.y" { tree type = groktypename (yyvsp[-1].ftype.t); check_for_new_type ("typeid", yyvsp[-1].ftype); yyval.ttype = get_typeid (TYPE_MAIN_VARIANT (type)); ; break;} case 301: -#line 1587 "parse.y" +#line 1572 "parse.y" { yyval.ttype = do_scoped_id (yyvsp[0].ttype, 1); ; break;} case 302: -#line 1589 "parse.y" +#line 1574 "parse.y" { got_scope = NULL_TREE; if (TREE_CODE (yyvsp[0].ttype) == IDENTIFIER_NODE) @@ -5409,18 +5399,18 @@ case 302: ; break;} case 303: -#line 1597 "parse.y" +#line 1582 "parse.y" { yyval.ttype = build_offset_ref (OP0 (yyval.ttype), OP1 (yyval.ttype)); ; break;} case 304: -#line 1599 "parse.y" +#line 1584 "parse.y" { if (processing_template_decl) yyval.ttype = build_min_nt (CALL_EXPR, copy_to_permanent (yyvsp[-3].ttype), yyvsp[-1].ttype, NULL_TREE); else yyval.ttype = build_member_call (OP0 (yyval.ttype), OP1 (yyval.ttype), yyvsp[-1].ttype); ; break;} case 305: -#line 1604 "parse.y" +#line 1589 "parse.y" { if (processing_template_decl) yyval.ttype = build_min_nt (CALL_EXPR, copy_to_permanent (yyvsp[-1].ttype), NULL_TREE, NULL_TREE); @@ -5428,38 +5418,38 @@ case 305: yyval.ttype = build_member_call (OP0 (yyval.ttype), OP1 (yyval.ttype), NULL_TREE); ; break;} case 306: -#line 1610 "parse.y" +#line 1595 "parse.y" { yyval.ttype = build_x_component_ref (yyval.ttype, yyvsp[0].ttype, NULL_TREE, 1); ; break;} case 307: -#line 1614 "parse.y" +#line 1599 "parse.y" { yyval.ttype = build_method_call (yyvsp[-4].ttype, yyvsp[-3].ttype, yyvsp[-1].ttype, NULL_TREE, LOOKUP_NORMAL); ; break;} case 308: -#line 1619 "parse.y" +#line 1604 "parse.y" { yyval.ttype = build_method_call (yyvsp[-2].ttype, yyvsp[-1].ttype, NULL_TREE, NULL_TREE, LOOKUP_NORMAL); ; break;} case 309: -#line 1624 "parse.y" +#line 1609 "parse.y" { yyval.ttype = build_x_component_ref (yyval.ttype, yyvsp[0].ttype, NULL_TREE, 1); ; break;} case 310: -#line 1626 "parse.y" +#line 1611 "parse.y" { if (processing_template_decl) yyval.ttype = build_min_nt (COMPONENT_REF, yyvsp[-1].ttype, copy_to_permanent (yyvsp[0].ttype)); else yyval.ttype = build_object_ref (yyval.ttype, OP0 (yyvsp[0].ttype), OP1 (yyvsp[0].ttype)); ; break;} case 311: -#line 1631 "parse.y" +#line 1616 "parse.y" { #if 0 /* This is a future direction of this code, but because @@ -5476,7 +5466,7 @@ case 311: ; break;} case 312: -#line 1646 "parse.y" +#line 1631 "parse.y" { #if 0 /* This is a future direction of this code, but because @@ -5493,7 +5483,7 @@ case 312: ; break;} case 313: -#line 1661 "parse.y" +#line 1646 "parse.y" { if (IS_SIGNATURE (OP0 (yyvsp[-3].ttype))) { @@ -5506,7 +5496,7 @@ case 313: ; break;} case 314: -#line 1672 "parse.y" +#line 1657 "parse.y" { if (IS_SIGNATURE (OP0 (yyvsp[-1].ttype))) { @@ -5519,7 +5509,7 @@ case 314: ; break;} case 315: -#line 1684 "parse.y" +#line 1669 "parse.y" { if (IDENTIFIER_GLOBAL_VALUE (yyvsp[-1].ttype) && (TREE_CODE (TREE_TYPE (yyvsp[-3].ttype)) @@ -5529,7 +5519,7 @@ case 315: ; break;} case 316: -#line 1692 "parse.y" +#line 1677 "parse.y" { if (yyvsp[-4].ttype != yyvsp[-1].ttype) cp_error ("destructor specifier `%T::~%T()' must have matching names", yyvsp[-4].ttype, yyvsp[-1].ttype); @@ -5540,41 +5530,41 @@ case 316: ; break;} case 317: -#line 1701 "parse.y" +#line 1686 "parse.y" { yyval.ttype = error_mark_node; ; break;} case 318: -#line 1746 "parse.y" +#line 1731 "parse.y" { yyval.itype = 0; ; break;} case 319: -#line 1748 "parse.y" +#line 1733 "parse.y" { got_scope = NULL_TREE; yyval.itype = 1; ; break;} case 320: -#line 1753 "parse.y" +#line 1738 "parse.y" { yyval.itype = 0; ; break;} case 321: -#line 1755 "parse.y" +#line 1740 "parse.y" { got_scope = NULL_TREE; yyval.itype = 1; ; break;} case 322: -#line 1760 "parse.y" +#line 1745 "parse.y" { yyval.ttype = boolean_true_node; ; break;} case 323: -#line 1762 "parse.y" +#line 1747 "parse.y" { yyval.ttype = boolean_false_node; ; break;} case 325: -#line 1769 "parse.y" +#line 1754 "parse.y" { yyval.ttype = chainon (yyval.ttype, yyvsp[0].ttype); ; break;} case 326: -#line 1774 "parse.y" +#line 1759 "parse.y" { if (! current_function_parms_stored) store_parm_decls (); @@ -5586,18 +5576,18 @@ case 326: ; break;} case 327: -#line 1787 "parse.y" +#line 1772 "parse.y" { got_object = TREE_TYPE (yyval.ttype); ; break;} case 328: -#line 1789 "parse.y" +#line 1774 "parse.y" { yyval.ttype = build_x_arrow (yyval.ttype); got_object = TREE_TYPE (yyval.ttype); ; break;} case 329: -#line 1797 "parse.y" +#line 1782 "parse.y" { resume_momentary (yyvsp[-1].itype); if (yyvsp[-2].ftype.t && IS_AGGR_TYPE_CODE (TREE_CODE (yyvsp[-2].ftype.t))) @@ -5605,138 +5595,138 @@ case 329: ; break;} case 330: -#line 1803 "parse.y" +#line 1788 "parse.y" { resume_momentary (yyvsp[-1].itype); note_list_got_semicolon (yyvsp[-2].ftype.t); ; break;} case 331: -#line 1808 "parse.y" +#line 1793 "parse.y" { resume_momentary (yyvsp[-1].itype); ; break;} case 332: -#line 1810 "parse.y" +#line 1795 "parse.y" { shadow_tag (yyvsp[-1].ftype.t); note_list_got_semicolon (yyvsp[-1].ftype.t); ; break;} case 333: -#line 1815 "parse.y" +#line 1800 "parse.y" { warning ("empty declaration"); ; break;} case 334: -#line 1817 "parse.y" +#line 1802 "parse.y" { pedantic = yyvsp[-1].itype; ; break;} case 337: -#line 1831 "parse.y" +#line 1816 "parse.y" { yyval.ttype = make_call_declarator (NULL_TREE, empty_parms (), NULL_TREE, NULL_TREE); ; break;} case 338: -#line 1834 "parse.y" +#line 1819 "parse.y" { yyval.ttype = make_call_declarator (yyval.ttype, empty_parms (), NULL_TREE, NULL_TREE); ; break;} case 339: -#line 1841 "parse.y" +#line 1826 "parse.y" { yyval.ftype.t = build_decl_list (yyvsp[-1].ftype.t, yyvsp[0].ttype); yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ; break;} case 340: -#line 1844 "parse.y" +#line 1829 "parse.y" { yyval.ftype.t = build_decl_list (yyvsp[-1].ftype.t, yyvsp[0].ttype); yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ; break;} case 341: -#line 1847 "parse.y" +#line 1832 "parse.y" { yyval.ftype.t = build_decl_list (get_decl_list (yyvsp[-1].ftype.t), yyvsp[0].ttype); yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ; break;} case 342: -#line 1850 "parse.y" +#line 1835 "parse.y" { yyval.ftype.t = build_decl_list (yyvsp[0].ftype.t, NULL_TREE); yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag; ; break;} case 343: -#line 1853 "parse.y" +#line 1838 "parse.y" { yyval.ftype.t = build_decl_list (yyvsp[0].ftype.t, NULL_TREE); yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag; ; break;} case 346: -#line 1869 "parse.y" +#line 1854 "parse.y" { yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[0].ftype.t, yyvsp[-1].ttype); yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag; ; break;} case 347: -#line 1872 "parse.y" +#line 1857 "parse.y" { yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[-1].ftype.t, yyvsp[0].ttype); yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ; break;} case 348: -#line 1875 "parse.y" +#line 1860 "parse.y" { yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[-2].ftype.t, chainon (yyvsp[-1].ttype, yyvsp[0].ttype)); yyval.ftype.new_type_flag = yyvsp[-2].ftype.new_type_flag; ; break;} case 349: -#line 1878 "parse.y" +#line 1863 "parse.y" { yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[-1].ftype.t, chainon (yyvsp[0].ttype, yyvsp[-2].ttype)); yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ; break;} case 350: -#line 1881 "parse.y" +#line 1866 "parse.y" { yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[-1].ftype.t, chainon (yyvsp[0].ttype, yyvsp[-2].ttype)); yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ; break;} case 351: -#line 1884 "parse.y" +#line 1869 "parse.y" { yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[-2].ftype.t, chainon (yyvsp[-1].ttype, chainon (yyvsp[0].ttype, yyvsp[-3].ttype))); yyval.ftype.new_type_flag = yyvsp[-2].ftype.new_type_flag; ; break;} case 352: -#line 1891 "parse.y" +#line 1876 "parse.y" { if (extra_warnings) warning ("`%s' is not at beginning of declaration", IDENTIFIER_POINTER (yyval.ttype)); yyval.ttype = build_decl_list (NULL_TREE, yyval.ttype); ; break;} case 353: -#line 1896 "parse.y" +#line 1881 "parse.y" { yyval.ttype = decl_tree_cons (NULL_TREE, yyvsp[0].ftype.t, yyval.ttype); ; break;} case 354: -#line 1898 "parse.y" +#line 1883 "parse.y" { if (extra_warnings) warning ("`%s' is not at beginning of declaration", IDENTIFIER_POINTER (yyvsp[0].ttype)); yyval.ttype = decl_tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype); ; break;} case 355: -#line 1903 "parse.y" +#line 1888 "parse.y" { yyval.ttype = decl_tree_cons (yyvsp[0].ttype, NULL_TREE, yyvsp[-1].ttype); ; break;} case 356: -#line 1905 "parse.y" +#line 1890 "parse.y" { yyval.ttype = decl_tree_cons (yyvsp[0].ttype, NULL_TREE, NULL_TREE); ; break;} case 357: -#line 1915 "parse.y" +#line 1900 "parse.y" { yyval.ttype = yyvsp[0].ftype.t; TREE_STATIC (yyval.ttype) = 1; ; break;} case 358: -#line 1917 "parse.y" +#line 1902 "parse.y" { yyval.ttype = IDENTIFIER_AS_LIST (yyval.ttype); ; break;} case 359: -#line 1919 "parse.y" +#line 1904 "parse.y" { yyval.ttype = decl_tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype); TREE_STATIC (yyval.ttype) = 1; ; break;} case 360: -#line 1922 "parse.y" +#line 1907 "parse.y" { if (extra_warnings && TREE_STATIC (yyval.ttype)) warning ("`%s' is not at beginning of declaration", IDENTIFIER_POINTER (yyvsp[0].ttype)); @@ -5744,61 +5734,61 @@ case 360: TREE_STATIC (yyval.ttype) = TREE_STATIC (yyvsp[-1].ttype); ; break;} case 361: -#line 1928 "parse.y" +#line 1913 "parse.y" { yyval.ttype = decl_tree_cons (yyvsp[0].ttype, NULL_TREE, yyvsp[-1].ttype); ; break;} case 362: -#line 1930 "parse.y" +#line 1915 "parse.y" { yyval.ttype = decl_tree_cons (yyvsp[0].ttype, NULL_TREE, NULL_TREE); ; break;} case 363: -#line 1941 "parse.y" +#line 1926 "parse.y" { yyval.ftype.t = get_decl_list (yyvsp[0].ftype.t); yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag; ; break;} case 364: -#line 1944 "parse.y" +#line 1929 "parse.y" { yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[0].ftype.t, yyvsp[-1].ftype.t); yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag; ; break;} case 365: -#line 1947 "parse.y" +#line 1932 "parse.y" { yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[-1].ftype.t, yyvsp[0].ttype); yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ; break;} case 366: -#line 1950 "parse.y" +#line 1935 "parse.y" { yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[-1].ftype.t, chainon (yyvsp[0].ttype, yyvsp[-2].ftype.t)); yyval.ftype.new_type_flag = yyvsp[-2].ftype.new_type_flag; ; break;} case 367: -#line 1956 "parse.y" +#line 1941 "parse.y" { yyval.ttype = build_decl_list (NULL_TREE, yyvsp[0].ftype.t); ; break;} case 368: -#line 1958 "parse.y" +#line 1943 "parse.y" { yyval.ttype = decl_tree_cons (NULL_TREE, yyvsp[0].ftype.t, yyvsp[-1].ttype); ; break;} case 370: -#line 1968 "parse.y" +#line 1953 "parse.y" { yyval.ftype.t = yyvsp[0].ttype; yyval.ftype.new_type_flag = 0; ; break;} case 371: -#line 1970 "parse.y" +#line 1955 "parse.y" { yyval.ftype.t = yyvsp[0].ttype; yyval.ftype.new_type_flag = 0; ; break;} case 372: -#line 1972 "parse.y" +#line 1957 "parse.y" { yyval.ftype.t = TREE_TYPE (yyvsp[-1].ttype); yyval.ftype.new_type_flag = 0; ; break;} case 373: -#line 1975 "parse.y" +#line 1960 "parse.y" { yyval.ftype.t = groktypename (yyvsp[-1].ftype.t); yyval.ftype.new_type_flag = 0; ; break;} case 374: -#line 1978 "parse.y" +#line 1963 "parse.y" { tree type = TREE_TYPE (yyvsp[-1].ttype); yyval.ftype.new_type_flag = 0; @@ -5815,7 +5805,7 @@ case 374: ; break;} case 375: -#line 1993 "parse.y" +#line 1978 "parse.y" { tree type = groktypename (yyvsp[-1].ftype.t); yyval.ftype.new_type_flag = 0; @@ -5832,188 +5822,188 @@ case 375: ; break;} case 376: -#line 2013 "parse.y" +#line 1998 "parse.y" { yyval.ftype.t = yyvsp[0].ttype; yyval.ftype.new_type_flag = 0; ; break;} case 377: -#line 2015 "parse.y" +#line 2000 "parse.y" { yyval.ftype.t = yyvsp[0].ttype; yyval.ftype.new_type_flag = 0; ; break;} case 385: -#line 2036 "parse.y" +#line 2021 "parse.y" { yyval.ttype = NULL_TREE; ; break;} case 386: -#line 2038 "parse.y" +#line 2023 "parse.y" { if (TREE_CHAIN (yyvsp[-1].ttype)) yyvsp[-1].ttype = combine_strings (yyvsp[-1].ttype); yyval.ttype = yyvsp[-1].ttype; ; break;} case 387: -#line 2043 "parse.y" +#line 2028 "parse.y" { yyval.ttype = start_decl (yyvsp[-3].ttype, current_declspecs, 1); cplus_decl_attributes (yyval.ttype, yyvsp[-1].ttype, prefix_attributes); ; break;} case 388: -#line 2047 "parse.y" +#line 2032 "parse.y" { cp_finish_decl (yyvsp[-1].ttype, yyvsp[0].ttype, yyvsp[-4].ttype, 1, LOOKUP_ONLYCONVERTING); ; break;} case 389: -#line 2049 "parse.y" +#line 2034 "parse.y" { yyval.ttype = start_decl (yyvsp[-2].ttype, current_declspecs, 0); cplus_decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes); cp_finish_decl (yyval.ttype, NULL_TREE, yyvsp[-1].ttype, 1, 0); ; break;} case 390: -#line 2062 "parse.y" +#line 2047 "parse.y" { yyvsp[0].itype = parse_decl (yyvsp[-3].ttype, yyvsp[-4].ttype, yyvsp[-1].ttype, 1, &yyval.ttype); ; break;} case 391: -#line 2067 "parse.y" +#line 2052 "parse.y" { cp_finish_decl (yyvsp[-1].ttype, yyvsp[0].ttype, yyvsp[-4].ttype, 1, LOOKUP_ONLYCONVERTING); yyval.itype = yyvsp[-2].itype; ; break;} case 392: -#line 2071 "parse.y" +#line 2056 "parse.y" { tree d; yyval.itype = parse_decl (yyvsp[-2].ttype, yyvsp[-3].ttype, yyvsp[0].ttype, 0, &d); cp_finish_decl (d, NULL_TREE, yyvsp[-1].ttype, 1, 0); ; break;} case 393: -#line 2078 "parse.y" +#line 2063 "parse.y" { yyval.itype = yyvsp[0].itype; ; break;} case 394: -#line 2082 "parse.y" +#line 2067 "parse.y" { yyval.itype = yyvsp[0].itype; ; break;} case 395: -#line 2087 "parse.y" +#line 2072 "parse.y" { /* Set things up as initdcl0_innards expects. */ yyval.ttype = yyvsp[-1].ttype; yyvsp[-1].ttype = NULL_TREE; ; break;} case 396: -#line 2091 "parse.y" +#line 2076 "parse.y" {; break;} case 397: -#line 2093 "parse.y" +#line 2078 "parse.y" { tree d; parse_decl(yyvsp[-2].ttype, NULL_TREE, yyvsp[0].ttype, 0, &d); cp_finish_decl (d, NULL_TREE, yyvsp[-1].ttype, 1, 0); ; break;} case 398: -#line 2102 "parse.y" +#line 2087 "parse.y" { yyval.ttype = NULL_TREE; ; break;} case 399: -#line 2104 "parse.y" +#line 2089 "parse.y" { yyval.ttype = yyvsp[0].ttype; ; break;} case 400: -#line 2109 "parse.y" +#line 2094 "parse.y" { yyval.ttype = yyvsp[0].ttype; ; break;} case 401: -#line 2111 "parse.y" +#line 2096 "parse.y" { yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype); ; break;} case 402: -#line 2116 "parse.y" +#line 2101 "parse.y" { yyval.ttype = yyvsp[-2].ttype; ; break;} case 403: -#line 2121 "parse.y" +#line 2106 "parse.y" { yyval.ttype = yyvsp[0].ttype; ; break;} case 404: -#line 2123 "parse.y" +#line 2108 "parse.y" { yyval.ttype = chainon (yyvsp[-2].ttype, yyvsp[0].ttype); ; break;} case 405: -#line 2128 "parse.y" +#line 2113 "parse.y" { yyval.ttype = NULL_TREE; ; break;} case 406: -#line 2130 "parse.y" +#line 2115 "parse.y" { yyval.ttype = build_tree_list (yyvsp[0].ttype, NULL_TREE); ; break;} case 407: -#line 2132 "parse.y" +#line 2117 "parse.y" { yyval.ttype = build_tree_list (yyvsp[-3].ttype, build_tree_list (NULL_TREE, yyvsp[-1].ttype)); ; break;} case 408: -#line 2134 "parse.y" +#line 2119 "parse.y" { yyval.ttype = build_tree_list (yyvsp[-5].ttype, tree_cons (NULL_TREE, yyvsp[-3].ttype, yyvsp[-1].ttype)); ; break;} case 409: -#line 2136 "parse.y" +#line 2121 "parse.y" { yyval.ttype = build_tree_list (yyvsp[-3].ttype, yyvsp[-1].ttype); ; break;} case 414: -#line 2152 "parse.y" +#line 2137 "parse.y" { yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ; break;} case 415: -#line 2154 "parse.y" +#line 2139 "parse.y" { yyval.ttype = chainon (yyvsp[-2].ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ; break;} case 416: -#line 2159 "parse.y" +#line 2144 "parse.y" { yyval.ttype = NULL_TREE; ; break;} case 417: -#line 2161 "parse.y" +#line 2146 "parse.y" { yyval.ttype = yyvsp[0].ttype; ; break;} case 419: -#line 2169 "parse.y" +#line 2154 "parse.y" { yyval.ttype = build_nt (CONSTRUCTOR, NULL_TREE, NULL_TREE); TREE_HAS_CONSTRUCTOR (yyval.ttype) = 1; ; break;} case 420: -#line 2172 "parse.y" +#line 2157 "parse.y" { yyval.ttype = build_nt (CONSTRUCTOR, NULL_TREE, nreverse (yyvsp[-1].ttype)); TREE_HAS_CONSTRUCTOR (yyval.ttype) = 1; ; break;} case 421: -#line 2175 "parse.y" +#line 2160 "parse.y" { yyval.ttype = build_nt (CONSTRUCTOR, NULL_TREE, nreverse (yyvsp[-2].ttype)); TREE_HAS_CONSTRUCTOR (yyval.ttype) = 1; ; break;} case 422: -#line 2178 "parse.y" +#line 2163 "parse.y" { yyval.ttype = NULL_TREE; ; break;} case 423: -#line 2185 "parse.y" +#line 2170 "parse.y" { yyval.ttype = build_tree_list (NULL_TREE, yyval.ttype); ; break;} case 424: -#line 2187 "parse.y" +#line 2172 "parse.y" { yyval.ttype = expr_tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype); ; break;} case 425: -#line 2190 "parse.y" +#line 2175 "parse.y" { yyval.ttype = build_expr_list (yyvsp[-2].ttype, yyvsp[0].ttype); ; break;} case 426: -#line 2192 "parse.y" +#line 2177 "parse.y" { yyval.ttype = build_expr_list (yyval.ttype, yyvsp[0].ttype); ; break;} case 427: -#line 2194 "parse.y" +#line 2179 "parse.y" { yyval.ttype = expr_tree_cons (yyvsp[-2].ttype, yyvsp[0].ttype, yyval.ttype); ; break;} case 428: -#line 2199 "parse.y" +#line 2184 "parse.y" { start_function (NULL_TREE, TREE_VALUE (yyvsp[0].ttype), NULL_TREE, 1); reinit_parse_for_function (); ; break;} case 429: -#line 2205 "parse.y" +#line 2190 "parse.y" { int nested = (hack_decl_function_context (current_function_decl) != NULL_TREE); @@ -6022,82 +6012,82 @@ case 429: ; break;} case 430: -#line 2212 "parse.y" +#line 2197 "parse.y" { process_next_inline (yyvsp[-2].ttype); ; break;} case 431: -#line 2214 "parse.y" +#line 2199 "parse.y" { process_next_inline (yyvsp[-2].ttype); ; break;} case 434: -#line 2226 "parse.y" +#line 2211 "parse.y" { replace_defarg (yyvsp[-2].ttype, yyvsp[-1].ttype); ; break;} case 435: -#line 2228 "parse.y" +#line 2213 "parse.y" { replace_defarg (yyvsp[-2].ttype, error_mark_node); ; break;} case 437: -#line 2233 "parse.y" +#line 2218 "parse.y" { do_pending_defargs (); ; break;} case 438: -#line 2235 "parse.y" +#line 2220 "parse.y" { do_pending_defargs (); ; break;} case 439: -#line 2240 "parse.y" +#line 2225 "parse.y" { yyvsp[0].itype = suspend_momentary (); yyval.ttype = start_enum (yyvsp[-1].ttype); ; break;} case 440: -#line 2243 "parse.y" +#line 2228 "parse.y" { yyval.ftype.t = finish_enum (yyvsp[-3].ttype, yyvsp[-2].ttype); yyval.ftype.new_type_flag = 1; resume_momentary ((int) yyvsp[-4].itype); check_for_missing_semicolon (yyvsp[-3].ttype); ; break;} case 441: -#line 2248 "parse.y" +#line 2233 "parse.y" { yyval.ftype.t = finish_enum (start_enum (yyvsp[-2].ttype), NULL_TREE); yyval.ftype.new_type_flag = 1; check_for_missing_semicolon (yyval.ftype.t); ; break;} case 442: -#line 2252 "parse.y" +#line 2237 "parse.y" { yyvsp[0].itype = suspend_momentary (); yyval.ttype = start_enum (make_anon_name ()); ; break;} case 443: -#line 2255 "parse.y" +#line 2240 "parse.y" { yyval.ftype.t = finish_enum (yyvsp[-3].ttype, yyvsp[-2].ttype); resume_momentary ((int) yyvsp[-5].itype); check_for_missing_semicolon (yyvsp[-3].ttype); yyval.ftype.new_type_flag = 1; ; break;} case 444: -#line 2260 "parse.y" +#line 2245 "parse.y" { yyval.ftype.t = finish_enum (start_enum (make_anon_name()), NULL_TREE); yyval.ftype.new_type_flag = 1; check_for_missing_semicolon (yyval.ftype.t); ; break;} case 445: -#line 2264 "parse.y" +#line 2249 "parse.y" { yyval.ftype.t = xref_tag (enum_type_node, yyvsp[0].ttype, NULL_TREE, 1); yyval.ftype.new_type_flag = 0; ; break;} case 446: -#line 2267 "parse.y" +#line 2252 "parse.y" { yyval.ftype.t = xref_tag (enum_type_node, yyvsp[0].ttype, NULL_TREE, 1); yyval.ftype.new_type_flag = 0; ; break;} case 447: -#line 2270 "parse.y" +#line 2255 "parse.y" { yyval.ftype.t = yyvsp[0].ttype; yyval.ftype.new_type_flag = 0; ; break;} case 448: -#line 2275 "parse.y" +#line 2260 "parse.y" { int semi; @@ -6132,7 +6122,7 @@ case 448: ; break;} case 449: -#line 2308 "parse.y" +#line 2293 "parse.y" { if (pending_inlines && current_scope () == current_function_decl) @@ -6140,7 +6130,7 @@ case 449: ; break;} case 450: -#line 2314 "parse.y" +#line 2299 "parse.y" { yyval.ftype.t = yyvsp[-3].ttype; yyval.ftype.new_type_flag = 1; @@ -6152,7 +6142,7 @@ case 450: ; break;} case 451: -#line 2324 "parse.y" +#line 2309 "parse.y" { yyval.ftype.new_type_flag = 0; if (TYPE_BINFO (yyvsp[0].ttype) == NULL_TREE) @@ -6172,73 +6162,73 @@ case 451: ; break;} case 455: -#line 2351 "parse.y" +#line 2336 "parse.y" { if (pedantic && !in_system_header) pedwarn ("comma at end of enumerator list"); ; break;} case 457: -#line 2358 "parse.y" +#line 2343 "parse.y" { error ("storage class specifier `%s' not allowed after struct or class", IDENTIFIER_POINTER (yyvsp[0].ttype)); ; break;} case 458: -#line 2360 "parse.y" +#line 2345 "parse.y" { error ("type specifier `%s' not allowed after struct or class", IDENTIFIER_POINTER (yyvsp[0].ttype)); ; break;} case 459: -#line 2362 "parse.y" +#line 2347 "parse.y" { error ("type qualifier `%s' not allowed after struct or class", IDENTIFIER_POINTER (yyvsp[0].ttype)); ; break;} case 460: -#line 2364 "parse.y" +#line 2349 "parse.y" { error ("no body nor ';' separates two class, struct or union declarations"); ; break;} case 461: -#line 2369 "parse.y" +#line 2354 "parse.y" { current_aggr = yyval.ttype; yyval.ttype = yyvsp[0].ttype; ; break;} case 462: -#line 2374 "parse.y" +#line 2359 "parse.y" { current_aggr = yyval.ttype; yyval.ttype = yyvsp[0].ttype; ; break;} case 463: -#line 2379 "parse.y" +#line 2364 "parse.y" { current_aggr = yyvsp[-2].ttype; yyval.ttype = handle_class_head (yyvsp[-2].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ; break;} case 464: -#line 2384 "parse.y" +#line 2369 "parse.y" { current_aggr = yyvsp[-3].ttype; yyval.ttype = handle_class_head (yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ; break;} case 465: -#line 2389 "parse.y" +#line 2374 "parse.y" { current_aggr = yyvsp[-2].ttype; yyval.ttype = handle_class_head (yyvsp[-2].ttype, NULL_TREE, yyvsp[0].ttype); ; break;} case 466: -#line 2394 "parse.y" +#line 2379 "parse.y" { current_aggr = yyval.ttype; yyval.ttype = yyvsp[0].ttype; ; break;} case 467: -#line 2396 "parse.y" +#line 2381 "parse.y" { current_aggr = yyval.ttype; yyval.ttype = yyvsp[0].ttype; ; break;} case 468: -#line 2401 "parse.y" +#line 2386 "parse.y" { yyval.ttype = xref_tag (current_aggr, yyvsp[0].ttype, NULL_TREE, 0); ; break;} case 469: -#line 2406 "parse.y" +#line 2391 "parse.y" { yyval.ttype = xref_tag (current_aggr, yyvsp[0].ttype, NULL_TREE, 1); ; break;} case 470: -#line 2409 "parse.y" +#line 2394 "parse.y" { yyval.ttype = yyvsp[-1].ttype; if (yyvsp[0].ttype) @@ -6246,7 +6236,7 @@ case 470: ; break;} case 471: -#line 2415 "parse.y" +#line 2400 "parse.y" { yyval.ttype = TREE_TYPE (yyvsp[-1].ttype); if (TREE_INT_CST_LOW (current_aggr) == union_type @@ -6274,28 +6264,28 @@ case 471: ; break;} case 472: -#line 2444 "parse.y" +#line 2429 "parse.y" { yyval.ttype = xref_tag (yyval.ttype, make_anon_name (), NULL_TREE, 0); yyungetc ('{', 1); ; break;} case 475: -#line 2455 "parse.y" +#line 2440 "parse.y" { yyval.ttype = NULL_TREE; ; break;} case 476: -#line 2457 "parse.y" +#line 2442 "parse.y" { yyungetc(':', 1); yyval.ttype = NULL_TREE; ; break;} case 477: -#line 2459 "parse.y" +#line 2444 "parse.y" { yyval.ttype = yyvsp[0].ttype; ; break;} case 479: -#line 2465 "parse.y" +#line 2450 "parse.y" { yyval.ttype = chainon (yyval.ttype, yyvsp[0].ttype); ; break;} case 480: -#line 2470 "parse.y" +#line 2455 "parse.y" { tree type = TREE_TYPE (yyvsp[0].ttype); if (! is_aggr_type (type, 1)) @@ -6322,7 +6312,7 @@ case 480: ; break;} case 481: -#line 2495 "parse.y" +#line 2480 "parse.y" { tree type = TREE_TYPE (yyvsp[0].ttype); if (current_aggr == signature_type_node) @@ -6351,11 +6341,11 @@ case 481: ; break;} case 482: -#line 2525 "parse.y" +#line 2510 "parse.y" { yyval.ttype = TYPE_MAIN_DECL (yyvsp[0].ttype); ; break;} case 484: -#line 2528 "parse.y" +#line 2513 "parse.y" { if (current_aggr == signature_type_node) { @@ -6378,7 +6368,7 @@ case 484: ; break;} case 485: -#line 2549 "parse.y" +#line 2534 "parse.y" { if (current_aggr == signature_type_node) { @@ -6401,13 +6391,13 @@ case 485: ; break;} case 487: -#line 2574 "parse.y" +#line 2559 "parse.y" { if (yyvsp[-1].ttype != ridpointers[(int)RID_VIRTUAL]) cp_error ("`%D' access", yyvsp[-1].ttype); yyval.ttype = access_default_virtual_node; ; break;} case 488: -#line 2578 "parse.y" +#line 2563 "parse.y" { if (yyvsp[-2].ttype != access_default_virtual_node) error ("multiple access specifiers"); @@ -6420,7 +6410,7 @@ case 488: ; break;} case 489: -#line 2589 "parse.y" +#line 2574 "parse.y" { if (yyvsp[-1].ttype != ridpointers[(int)RID_VIRTUAL]) cp_error ("`%D' access", yyvsp[-1].ttype); else if (yyval.ttype == access_public_node) @@ -6434,7 +6424,7 @@ case 489: ; break;} case 490: -#line 2604 "parse.y" +#line 2589 "parse.y" { tree t = yyvsp[-1].ttype; push_obstacks_nochange (); end_temporary_allocation (); @@ -6522,17 +6512,17 @@ case 490: ; break;} case 491: -#line 2693 "parse.y" +#line 2678 "parse.y" { yyval.ttype = build_self_reference (); ; break;} case 492: -#line 2700 "parse.y" +#line 2685 "parse.y" { if (yyval.ttype) yyval.ttype = build_tree_list (access_public_node, yyval.ttype); ; break;} case 493: -#line 2702 "parse.y" +#line 2687 "parse.y" { if (current_aggr == signature_type_node) yyval.ttype = build_tree_list (access_public_node, yyvsp[0].ttype); @@ -6542,7 +6532,7 @@ case 493: ; break;} case 494: -#line 2710 "parse.y" +#line 2695 "parse.y" { tree visspec = yyvsp[-2].ttype; @@ -6555,19 +6545,19 @@ case 494: ; break;} case 495: -#line 2721 "parse.y" +#line 2706 "parse.y" { if (current_aggr == signature_type_node) error ("access specifier not allowed in signature"); ; break;} case 496: -#line 2731 "parse.y" +#line 2716 "parse.y" { if (yyval.ttype == void_type_node) yyval.ttype = NULL_TREE; ; break;} case 497: -#line 2734 "parse.y" +#line 2719 "parse.y" { /* In pushdecl, we created a reverse list of names in this binding level. Make sure that the chain of what we're trying to add isn't the item itself @@ -6582,45 +6572,45 @@ case 497: ; break;} case 498: -#line 2750 "parse.y" +#line 2735 "parse.y" { ; break;} case 499: -#line 2752 "parse.y" +#line 2737 "parse.y" { error ("missing ';' before right brace"); yyungetc ('}', 0); ; break;} case 500: -#line 2757 "parse.y" +#line 2742 "parse.y" { yyval.ttype = finish_method (yyval.ttype); ; break;} case 501: -#line 2759 "parse.y" +#line 2744 "parse.y" { yyval.ttype = finish_method (yyval.ttype); ; break;} case 502: -#line 2761 "parse.y" +#line 2746 "parse.y" { yyval.ttype = finish_method (yyval.ttype); ; break;} case 503: -#line 2763 "parse.y" +#line 2748 "parse.y" { yyval.ttype = finish_method (yyval.ttype); ; break;} case 504: -#line 2765 "parse.y" +#line 2750 "parse.y" { yyval.ttype = NULL_TREE; ; break;} case 505: -#line 2767 "parse.y" +#line 2752 "parse.y" { yyval.ttype = yyvsp[0].ttype; pedantic = yyvsp[-1].itype; ; break;} case 506: -#line 2770 "parse.y" +#line 2755 "parse.y" { yyval.ttype = finish_member_template_decl (yyvsp[-1].ttype, yyvsp[0].ttype); ; break;} case 507: -#line 2772 "parse.y" +#line 2757 "parse.y" { shadow_tag (yyvsp[-1].ftype.t); note_list_got_semicolon (yyvsp[-1].ftype.t); @@ -6628,53 +6618,53 @@ case 507: ; break;} case 508: -#line 2784 "parse.y" +#line 2769 "parse.y" { yyval.ttype = grok_x_components (yyvsp[-1].ftype.t, yyvsp[0].ttype); ; break;} case 509: -#line 2786 "parse.y" +#line 2771 "parse.y" { yyval.ttype = grok_x_components (yyvsp[-1].ttype, yyvsp[0].ttype); ; break;} case 510: -#line 2788 "parse.y" +#line 2773 "parse.y" { yyval.ttype = grokfield (yyval.ttype, NULL_TREE, yyvsp[0].ttype, yyvsp[-2].ttype, build_tree_list (yyvsp[-1].ttype, NULL_TREE)); ; break;} case 511: -#line 2791 "parse.y" +#line 2776 "parse.y" { yyval.ttype = grokfield (yyval.ttype, NULL_TREE, yyvsp[0].ttype, yyvsp[-2].ttype, build_tree_list (yyvsp[-1].ttype, NULL_TREE)); ; break;} case 512: -#line 2794 "parse.y" +#line 2779 "parse.y" { yyval.ttype = grokbitfield (NULL_TREE, NULL_TREE, yyvsp[0].ttype); ; break;} case 513: -#line 2796 "parse.y" +#line 2781 "parse.y" { yyval.ttype = NULL_TREE; ; break;} case 514: -#line 2807 "parse.y" +#line 2792 "parse.y" { tree specs, attrs; split_specs_attrs (yyvsp[-4].ttype, &specs, &attrs); yyval.ttype = grokfield (yyvsp[-3].ttype, specs, yyvsp[0].ttype, yyvsp[-2].ttype, build_tree_list (yyvsp[-1].ttype, attrs)); ; break;} case 515: -#line 2812 "parse.y" +#line 2797 "parse.y" { yyval.ttype = grokfield (yyval.ttype, NULL_TREE, yyvsp[0].ttype, yyvsp[-2].ttype, build_tree_list (yyvsp[-1].ttype, NULL_TREE)); ; break;} case 516: -#line 2815 "parse.y" +#line 2800 "parse.y" { yyval.ttype = do_class_using_decl (yyvsp[0].ttype); ; break;} case 517: -#line 2821 "parse.y" +#line 2806 "parse.y" { yyval.ttype = NULL_TREE; ; break;} case 519: -#line 2824 "parse.y" +#line 2809 "parse.y" { /* In this context, void_type_node encodes friends. They have been recorded elsewhere. */ @@ -6685,11 +6675,11 @@ case 519: ; break;} case 520: -#line 2836 "parse.y" +#line 2821 "parse.y" { yyval.ttype = NULL_TREE; ; break;} case 522: -#line 2839 "parse.y" +#line 2824 "parse.y" { /* In this context, void_type_node encodes friends. They have been recorded elsewhere. */ @@ -6700,7 +6690,7 @@ case 522: ; break;} case 527: -#line 2861 "parse.y" +#line 2846 "parse.y" { split_specs_attrs (yyvsp[-4].ttype, ¤t_declspecs, &prefix_attributes); yyvsp[-4].ttype = current_declspecs; @@ -6708,7 +6698,7 @@ case 527: build_tree_list (yyvsp[-1].ttype, prefix_attributes)); ; break;} case 528: -#line 2867 "parse.y" +#line 2852 "parse.y" { split_specs_attrs (yyvsp[-4].ttype, ¤t_declspecs, &prefix_attributes); yyvsp[-4].ttype = current_declspecs; @@ -6716,7 +6706,7 @@ case 528: cplus_decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes); ; break;} case 529: -#line 2876 "parse.y" +#line 2861 "parse.y" { split_specs_attrs (yyvsp[-4].ttype, ¤t_declspecs, &prefix_attributes); yyvsp[-4].ttype = current_declspecs; @@ -6724,7 +6714,7 @@ case 529: build_tree_list (yyvsp[-1].ttype, prefix_attributes)); ; break;} case 530: -#line 2882 "parse.y" +#line 2867 "parse.y" { split_specs_attrs (yyvsp[-4].ttype, ¤t_declspecs, &prefix_attributes); yyvsp[-4].ttype = current_declspecs; @@ -6732,7 +6722,7 @@ case 530: build_tree_list (yyvsp[-1].ttype, prefix_attributes)); ; break;} case 531: -#line 2888 "parse.y" +#line 2873 "parse.y" { split_specs_attrs (yyvsp[-4].ttype, ¤t_declspecs, &prefix_attributes); yyvsp[-4].ttype = current_declspecs; @@ -6740,7 +6730,7 @@ case 531: cplus_decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes); ; break;} case 532: -#line 2894 "parse.y" +#line 2879 "parse.y" { split_specs_attrs (yyvsp[-3].ttype, ¤t_declspecs, &prefix_attributes); yyvsp[-3].ttype = current_declspecs; @@ -6748,54 +6738,54 @@ case 532: cplus_decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes); ; break;} case 533: -#line 2903 "parse.y" +#line 2888 "parse.y" { yyval.ttype = grokfield (yyval.ttype, current_declspecs, yyvsp[0].ttype, yyvsp[-2].ttype, build_tree_list (yyvsp[-1].ttype, prefix_attributes)); ; break;} case 534: -#line 2906 "parse.y" +#line 2891 "parse.y" { yyval.ttype = grokbitfield (yyval.ttype, current_declspecs, yyvsp[-1].ttype); cplus_decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes); ; break;} case 535: -#line 2912 "parse.y" +#line 2897 "parse.y" { yyval.ttype = grokfield (yyval.ttype, current_declspecs, yyvsp[0].ttype, yyvsp[-2].ttype, build_tree_list (yyvsp[-1].ttype, prefix_attributes)); ; break;} case 536: -#line 2915 "parse.y" +#line 2900 "parse.y" { yyval.ttype = grokbitfield (yyval.ttype, current_declspecs, yyvsp[-1].ttype); cplus_decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes); ; break;} case 537: -#line 2918 "parse.y" +#line 2903 "parse.y" { yyval.ttype = grokbitfield (NULL_TREE, current_declspecs, yyvsp[-1].ttype); cplus_decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes); ; break;} case 539: -#line 2929 "parse.y" +#line 2914 "parse.y" { TREE_CHAIN (yyvsp[0].ttype) = yyval.ttype; yyval.ttype = yyvsp[0].ttype; ; break;} case 540: -#line 2934 "parse.y" +#line 2919 "parse.y" { yyval.ttype = build_enumerator (yyval.ttype, NULL_TREE); ; break;} case 541: -#line 2936 "parse.y" +#line 2921 "parse.y" { yyval.ttype = build_enumerator (yyval.ttype, yyvsp[0].ttype); ; break;} case 542: -#line 2942 "parse.y" +#line 2927 "parse.y" { yyval.ftype.t = build_decl_list (yyvsp[-1].ftype.t, yyvsp[0].ttype); yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ; break;} case 543: -#line 2945 "parse.y" +#line 2930 "parse.y" { yyval.ftype.t = build_decl_list (yyvsp[0].ftype.t, NULL_TREE); yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag; ; break;} case 544: -#line 2950 "parse.y" +#line 2935 "parse.y" { if (pedantic) pedwarn ("ANSI C++ forbids array dimensions with parenthesized type in new"); @@ -6805,71 +6795,71 @@ case 544: ; break;} case 545: -#line 2961 "parse.y" +#line 2946 "parse.y" { yyval.ttype = NULL_TREE; ; break;} case 546: -#line 2963 "parse.y" +#line 2948 "parse.y" { yyval.ttype = decl_tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype); ; break;} case 547: -#line 2968 "parse.y" +#line 2953 "parse.y" { yyval.ftype.t = IDENTIFIER_AS_LIST (yyvsp[0].ttype); yyval.ftype.new_type_flag = 0; ; break;} case 548: -#line 2971 "parse.y" +#line 2956 "parse.y" { yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ftype.t); yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ; break;} case 549: -#line 2980 "parse.y" +#line 2965 "parse.y" { yyval.itype = suspend_momentary (); ; break;} case 550: -#line 2985 "parse.y" +#line 2970 "parse.y" { resume_momentary ((int) yyvsp[-1].itype); yyval.ttype = yyvsp[0].ttype; ; break;} case 551: -#line 2991 "parse.y" +#line 2976 "parse.y" { resume_momentary ((int) yyvsp[-3].itype); yyval.ttype = yyvsp[-1].ttype; ; break;} case 552: -#line 2993 "parse.y" +#line 2978 "parse.y" { resume_momentary ((int) yyvsp[-3].itype); yyval.ttype = yyvsp[-1].ttype; ; break;} case 553: -#line 2995 "parse.y" +#line 2980 "parse.y" { resume_momentary ((int) yyvsp[-1].itype); yyval.ttype = empty_parms (); ; break;} case 554: -#line 2997 "parse.y" +#line 2982 "parse.y" { resume_momentary ((int) yyvsp[-3].itype); yyval.ttype = NULL_TREE; ; break;} case 555: -#line 3004 "parse.y" +#line 2989 "parse.y" { yyval.ttype = make_pointer_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ; break;} case 556: -#line 3006 "parse.y" +#line 2991 "parse.y" { yyval.ttype = make_reference_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ; break;} case 557: -#line 3008 "parse.y" +#line 2993 "parse.y" { yyval.ttype = make_pointer_declarator (NULL_TREE, yyvsp[0].ttype); ; break;} case 558: -#line 3010 "parse.y" +#line 2995 "parse.y" { yyval.ttype = make_reference_declarator (NULL_TREE, yyvsp[0].ttype); ; break;} case 559: -#line 3012 "parse.y" +#line 2997 "parse.y" { tree arg = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-2].ttype, arg); ; break;} case 561: -#line 3020 "parse.y" +#line 3005 "parse.y" { if (TREE_CODE (yyvsp[0].ttype) == IDENTIFIER_NODE) { @@ -6888,7 +6878,7 @@ case 561: ; break;} case 562: -#line 3037 "parse.y" +#line 3022 "parse.y" { if (TREE_CODE (yyvsp[0].ttype) == IDENTIFIER_NODE) yyval.ttype = IDENTIFIER_GLOBAL_VALUE (yyvsp[0].ttype); @@ -6898,97 +6888,97 @@ case 562: ; break;} case 565: -#line 3050 "parse.y" +#line 3035 "parse.y" { yyval.ttype = yyvsp[0].ttype; ; break;} case 566: -#line 3055 "parse.y" +#line 3040 "parse.y" { yyval.ttype = get_type_decl (yyvsp[0].ttype); ; break;} case 567: -#line 3060 "parse.y" +#line 3045 "parse.y" { yyval.ttype = make_call_declarator (yyval.ttype, yyvsp[-2].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ; break;} case 568: -#line 3062 "parse.y" +#line 3047 "parse.y" { yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, yyvsp[-1].ttype); ; break;} case 569: -#line 3064 "parse.y" +#line 3049 "parse.y" { yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, NULL_TREE); ; break;} case 570: -#line 3066 "parse.y" +#line 3051 "parse.y" { yyval.ttype = yyvsp[-1].ttype; ; break;} case 571: -#line 3068 "parse.y" +#line 3053 "parse.y" { push_nested_class (yyvsp[-1].ttype, 3); yyval.ttype = build_parse_node (SCOPE_REF, yyval.ttype, yyvsp[0].ttype); TREE_COMPLEXITY (yyval.ttype) = current_class_depth; ; break;} case 573: -#line 3079 "parse.y" +#line 3064 "parse.y" { yyval.ttype = make_pointer_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ; break;} case 574: -#line 3081 "parse.y" +#line 3066 "parse.y" { yyval.ttype = make_reference_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ; break;} case 575: -#line 3083 "parse.y" +#line 3068 "parse.y" { yyval.ttype = make_pointer_declarator (NULL_TREE, yyvsp[0].ttype); ; break;} case 576: -#line 3085 "parse.y" +#line 3070 "parse.y" { yyval.ttype = make_reference_declarator (NULL_TREE, yyvsp[0].ttype); ; break;} case 577: -#line 3087 "parse.y" +#line 3072 "parse.y" { tree arg = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-2].ttype, arg); ; break;} case 579: -#line 3095 "parse.y" +#line 3080 "parse.y" { yyval.ttype = make_pointer_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ; break;} case 580: -#line 3097 "parse.y" +#line 3082 "parse.y" { yyval.ttype = make_reference_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ; break;} case 581: -#line 3099 "parse.y" +#line 3084 "parse.y" { yyval.ttype = make_pointer_declarator (NULL_TREE, yyvsp[0].ttype); ; break;} case 582: -#line 3101 "parse.y" +#line 3086 "parse.y" { yyval.ttype = make_reference_declarator (NULL_TREE, yyvsp[0].ttype); ; break;} case 583: -#line 3103 "parse.y" +#line 3088 "parse.y" { tree arg = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-2].ttype, arg); ; break;} case 585: -#line 3111 "parse.y" +#line 3096 "parse.y" { yyval.ttype = make_call_declarator (yyval.ttype, yyvsp[-2].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ; break;} case 586: -#line 3113 "parse.y" +#line 3098 "parse.y" { yyval.ttype = yyvsp[-1].ttype; ; break;} case 587: -#line 3115 "parse.y" +#line 3100 "parse.y" { yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, yyvsp[-1].ttype); ; break;} case 588: -#line 3117 "parse.y" +#line 3102 "parse.y" { yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, NULL_TREE); ; break;} case 589: -#line 3119 "parse.y" +#line 3104 "parse.y" { if (OP0 (yyval.ttype) != current_class_type) { push_nested_class (OP0 (yyval.ttype), 3); @@ -6997,7 +6987,7 @@ case 589: ; break;} case 590: -#line 3126 "parse.y" +#line 3111 "parse.y" { got_scope = NULL_TREE; yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-1].ttype, yyvsp[0].ttype); if (yyvsp[-1].ttype != current_class_type) @@ -7008,51 +6998,51 @@ case 590: ; break;} case 591: -#line 3138 "parse.y" +#line 3123 "parse.y" { got_scope = NULL_TREE; yyval.ttype = build_parse_node (SCOPE_REF, yyval.ttype, yyvsp[0].ttype); ; break;} case 592: -#line 3141 "parse.y" +#line 3126 "parse.y" { got_scope = NULL_TREE; yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-1].ttype, yyvsp[0].ttype); ; break;} case 593: -#line 3147 "parse.y" +#line 3132 "parse.y" { got_scope = NULL_TREE; yyval.ttype = build_parse_node (SCOPE_REF, yyval.ttype, yyvsp[0].ttype); ; break;} case 594: -#line 3150 "parse.y" +#line 3135 "parse.y" { got_scope = NULL_TREE; yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-1].ttype, yyvsp[0].ttype); ; break;} case 596: -#line 3157 "parse.y" +#line 3142 "parse.y" { yyval.ttype = yyvsp[0].ttype; ; break;} case 597: -#line 3162 "parse.y" +#line 3147 "parse.y" { yyval.ttype = build_functional_cast (yyvsp[-3].ftype.t, yyvsp[-1].ttype); ; break;} case 598: -#line 3164 "parse.y" +#line 3149 "parse.y" { yyval.ttype = reparse_decl_as_expr (yyvsp[-3].ftype.t, yyvsp[-1].ttype); ; break;} case 599: -#line 3166 "parse.y" +#line 3151 "parse.y" { yyval.ttype = reparse_absdcl_as_expr (yyvsp[-1].ftype.t, yyvsp[0].ttype); ; break;} case 604: -#line 3178 "parse.y" +#line 3163 "parse.y" { yyval.ttype = yyvsp[0].ttype; ; break;} case 605: -#line 3180 "parse.y" +#line 3165 "parse.y" { got_scope = yyval.ttype = make_typename_type (yyvsp[-3].ttype, yyvsp[-1].ttype); ; break;} case 606: -#line 3187 "parse.y" +#line 3172 "parse.y" { if (TREE_CODE (yyvsp[-1].ttype) == IDENTIFIER_NODE) { @@ -7068,7 +7058,7 @@ case 606: ; break;} case 607: -#line 3201 "parse.y" +#line 3186 "parse.y" { if (TREE_CODE (yyvsp[-1].ttype) == IDENTIFIER_NODE) yyval.ttype = lastiddecl; @@ -7076,7 +7066,7 @@ case 607: ; break;} case 608: -#line 3207 "parse.y" +#line 3192 "parse.y" { if (TREE_CODE (yyval.ttype) == IDENTIFIER_NODE) yyval.ttype = lastiddecl; @@ -7084,15 +7074,15 @@ case 608: ; break;} case 609: -#line 3213 "parse.y" +#line 3198 "parse.y" { got_scope = yyval.ttype = complete_type (TREE_TYPE (yyvsp[-1].ttype)); ; break;} case 611: -#line 3229 "parse.y" +#line 3214 "parse.y" { yyval.ttype = yyvsp[0].ttype; ; break;} case 612: -#line 3234 "parse.y" +#line 3219 "parse.y" { if (TREE_CODE_CLASS (TREE_CODE (yyvsp[-1].ttype)) == 't') yyval.ttype = make_typename_type (yyvsp[-1].ttype, yyvsp[0].ttype); @@ -7107,26 +7097,26 @@ case 612: ; break;} case 613: -#line 3247 "parse.y" +#line 3232 "parse.y" { yyval.ttype = TREE_TYPE (yyvsp[0].ttype); ; break;} case 614: -#line 3249 "parse.y" +#line 3234 "parse.y" { yyval.ttype = make_typename_type (yyvsp[-1].ttype, yyvsp[0].ttype); ; break;} case 615: -#line 3251 "parse.y" +#line 3236 "parse.y" { yyval.ttype = make_typename_type (yyvsp[-2].ttype, yyvsp[0].ttype); ; break;} case 616: -#line 3256 "parse.y" +#line 3241 "parse.y" { if (TREE_CODE (yyvsp[0].ttype) == IDENTIFIER_NODE) cp_error ("`%T' is not a class or namespace", yyvsp[0].ttype); ; break;} case 617: -#line 3261 "parse.y" +#line 3246 "parse.y" { if (TREE_CODE_CLASS (TREE_CODE (yyvsp[-1].ttype)) == 't') yyval.ttype = make_typename_type (yyvsp[-1].ttype, yyvsp[0].ttype); @@ -7141,15 +7131,15 @@ case 617: ; break;} case 618: -#line 3274 "parse.y" +#line 3259 "parse.y" { got_scope = yyval.ttype = make_typename_type (yyvsp[-2].ttype, yyvsp[-1].ttype); ; break;} case 619: -#line 3276 "parse.y" +#line 3261 "parse.y" { got_scope = yyval.ttype = make_typename_type (yyvsp[-3].ttype, yyvsp[-1].ttype); ; break;} case 620: -#line 3281 "parse.y" +#line 3266 "parse.y" { if (TREE_CODE (yyvsp[-1].ttype) != IDENTIFIER_NODE) yyvsp[-1].ttype = lastiddecl; @@ -7161,7 +7151,7 @@ case 620: ; break;} case 621: -#line 3291 "parse.y" +#line 3276 "parse.y" { if (TREE_CODE (yyvsp[-1].ttype) != IDENTIFIER_NODE) yyval.ttype = lastiddecl; @@ -7169,11 +7159,11 @@ case 621: ; break;} case 622: -#line 3297 "parse.y" +#line 3282 "parse.y" { got_scope = yyval.ttype = complete_type (TREE_TYPE (yyval.ttype)); ; break;} case 625: -#line 3301 "parse.y" +#line 3286 "parse.y" { if (TREE_CODE (yyval.ttype) == IDENTIFIER_NODE) yyval.ttype = lastiddecl; @@ -7181,11 +7171,11 @@ case 625: ; break;} case 626: -#line 3310 "parse.y" +#line 3295 "parse.y" { yyval.ttype = build_min_nt (TEMPLATE_ID_EXPR, yyvsp[-3].ttype, yyvsp[-1].ttype); ; break;} case 627: -#line 3315 "parse.y" +#line 3300 "parse.y" { if (TREE_CODE (yyvsp[0].ttype) == IDENTIFIER_NODE) yyval.ttype = IDENTIFIER_GLOBAL_VALUE (yyvsp[0].ttype); @@ -7195,156 +7185,148 @@ case 627: ; break;} case 629: -#line 3324 "parse.y" +#line 3309 "parse.y" { yyval.ttype = yyvsp[0].ttype; ; break;} case 630: -#line 3329 "parse.y" +#line 3314 "parse.y" { got_scope = NULL_TREE; ; break;} case 631: -#line 3331 "parse.y" +#line 3316 "parse.y" { yyval.ttype = yyvsp[-1].ttype; got_scope = NULL_TREE; ; break;} case 632: -#line 3338 "parse.y" +#line 3323 "parse.y" { got_scope = void_type_node; ; break;} case 633: -#line 3344 "parse.y" +#line 3329 "parse.y" { yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ; break;} case 634: -#line 3346 "parse.y" +#line 3331 "parse.y" { yyval.ttype = make_pointer_declarator (yyvsp[0].ttype, NULL_TREE); ; break;} case 635: -#line 3348 "parse.y" +#line 3333 "parse.y" { yyval.ttype = make_reference_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ; break;} case 636: -#line 3350 "parse.y" +#line 3335 "parse.y" { yyval.ttype = make_reference_declarator (yyvsp[0].ttype, NULL_TREE); ; break;} case 637: -#line 3352 "parse.y" +#line 3337 "parse.y" { tree arg = make_pointer_declarator (yyvsp[0].ttype, NULL_TREE); yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-1].ttype, arg); ; break;} case 638: -#line 3356 "parse.y" +#line 3341 "parse.y" { tree arg = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-2].ttype, arg); ; break;} case 640: -#line 3365 "parse.y" +#line 3350 "parse.y" { yyval.ttype = build_parse_node (ARRAY_REF, NULL_TREE, yyvsp[-1].ttype); ; break;} case 641: -#line 3367 "parse.y" +#line 3352 "parse.y" { yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, yyvsp[-1].ttype); ; break;} case 642: -#line 3373 "parse.y" +#line 3358 "parse.y" { yyval.ttype = make_pointer_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ; break;} case 643: -#line 3375 "parse.y" +#line 3360 "parse.y" { yyval.ttype = make_pointer_declarator (NULL_TREE, yyvsp[0].ttype); ; break;} case 644: -#line 3377 "parse.y" +#line 3362 "parse.y" { yyval.ttype = make_pointer_declarator (yyvsp[0].ftype.t, NULL_TREE); ; break;} case 645: -#line 3379 "parse.y" +#line 3364 "parse.y" { yyval.ttype = make_pointer_declarator (NULL_TREE, NULL_TREE); ; break;} case 646: -#line 3381 "parse.y" +#line 3366 "parse.y" { yyval.ttype = make_reference_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ; break;} case 647: -#line 3383 "parse.y" +#line 3368 "parse.y" { yyval.ttype = make_reference_declarator (NULL_TREE, yyvsp[0].ttype); ; break;} case 648: -#line 3385 "parse.y" +#line 3370 "parse.y" { yyval.ttype = make_reference_declarator (yyvsp[0].ftype.t, NULL_TREE); ; break;} case 649: -#line 3387 "parse.y" +#line 3372 "parse.y" { yyval.ttype = make_reference_declarator (NULL_TREE, NULL_TREE); ; break;} case 650: -#line 3389 "parse.y" +#line 3374 "parse.y" { tree arg = make_pointer_declarator (yyvsp[0].ttype, NULL_TREE); yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-1].ttype, arg); ; break;} case 651: -#line 3393 "parse.y" +#line 3378 "parse.y" { tree arg = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-2].ttype, arg); ; break;} case 653: -#line 3402 "parse.y" +#line 3387 "parse.y" { yyval.ttype = yyvsp[-1].ttype; ; break;} case 655: -#line 3406 "parse.y" +#line 3391 "parse.y" { yyval.ttype = make_call_declarator (yyval.ttype, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ; break;} case 656: -#line 3408 "parse.y" +#line 3393 "parse.y" { yyval.ttype = make_call_declarator (yyval.ttype, empty_parms (), yyvsp[-1].ttype, yyvsp[0].ttype); ; break;} case 657: -#line 3410 "parse.y" +#line 3395 "parse.y" { yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, yyvsp[-1].ttype); ; break;} case 658: -#line 3412 "parse.y" +#line 3397 "parse.y" { yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, NULL_TREE); ; break;} case 659: -#line 3414 "parse.y" +#line 3399 "parse.y" { yyval.ttype = make_call_declarator (NULL_TREE, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ; break;} case 660: -#line 3416 "parse.y" +#line 3401 "parse.y" { set_quals_and_spec (yyval.ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ; break;} case 661: -#line 3418 "parse.y" +#line 3403 "parse.y" { set_quals_and_spec (yyval.ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ; break;} case 662: -#line 3420 "parse.y" +#line 3405 "parse.y" { yyval.ttype = build_parse_node (ARRAY_REF, NULL_TREE, yyvsp[-1].ttype); ; break;} case 663: -#line 3422 "parse.y" +#line 3407 "parse.y" { yyval.ttype = build_parse_node (ARRAY_REF, NULL_TREE, NULL_TREE); ; break;} -case 669: -#line 3446 "parse.y" -{ do_pushlevel (); ; - break;} case 670: -#line 3451 "parse.y" -{ yyval.ttype = do_poplevel (); ; - break;} -case 672: -#line 3459 "parse.y" +#line 3430 "parse.y" { if (pedantic) pedwarn ("ANSI C++ forbids label declarations"); ; break;} -case 675: -#line 3470 "parse.y" +case 673: +#line 3441 "parse.y" { tree link; for (link = yyvsp[-1].ttype; link; link = TREE_CHAIN (link)) { @@ -7354,534 +7336,220 @@ case 675: } ; break;} -case 676: -#line 3484 "parse.y" +case 674: +#line 3455 "parse.y" {; break;} +case 676: +#line 3461 "parse.y" +{ yyval.ttype = begin_compound_stmt (0); ; + break;} +case 677: +#line 3463 "parse.y" +{ yyval.ttype = finish_compound_stmt (0, yyvsp[-1].ttype); ; + break;} case 678: -#line 3490 "parse.y" +#line 3468 "parse.y" { - if (processing_template_decl) - { - yyval.ttype = build_min_nt (COMPOUND_STMT, NULL_TREE); - add_tree (yyval.ttype); - } + yyval.ttype = begin_if_stmt (); + cond_stmt_keyword = "if"; ; break;} case 679: -#line 3498 "parse.y" -{ - if (processing_template_decl) - { - TREE_OPERAND (yyvsp[-3].ttype, 0) = TREE_CHAIN (yyvsp[-3].ttype); - TREE_CHAIN (yyvsp[-3].ttype) = NULL_TREE; - last_tree = yyvsp[-3].ttype; - } - yyval.ttype = yyvsp[0].ttype; - ; +#line 3473 "parse.y" +{ finish_if_stmt_cond (yyvsp[0].ttype, yyvsp[-1].ttype); ; break;} case 680: -#line 3511 "parse.y" -{ - if (processing_template_decl) - { - yyval.ttype = build_min_nt (IF_STMT, NULL_TREE, NULL_TREE, - NULL_TREE); - add_tree (yyval.ttype); - } - cond_stmt_keyword = "if"; - ; - break;} -case 681: -#line 3521 "parse.y" -{ - if (processing_template_decl) - { - if (last_tree != yyvsp[-2].ttype) - { - TREE_OPERAND (yyvsp[-2].ttype, 0) = last_tree; - TREE_CHAIN (yyvsp[-2].ttype) = NULL_TREE; - last_tree = yyvsp[-2].ttype; - } - else - TREE_OPERAND (yyvsp[-2].ttype, 0) = yyvsp[0].ttype; - } - else - { - emit_line_note (input_filename, lineno); - expand_start_cond (yyvsp[0].ttype, 0); - } - ; +#line 3475 "parse.y" +{ yyval.ttype = finish_then_clause (yyvsp[-3].ttype); ; break;} case 682: -#line 3540 "parse.y" -{ - if (processing_template_decl) - { - TREE_OPERAND (yyvsp[-4].ttype, 1) = TREE_CHAIN (yyvsp[-4].ttype); - TREE_CHAIN (yyvsp[-4].ttype) = NULL_TREE; - yyval.ttype = last_tree = yyvsp[-4].ttype; - } - ; +#line 3480 "parse.y" +{ yyval.ttype = begin_compound_stmt (0); ; break;} case 683: -#line 3552 "parse.y" -{ finish_stmt (); ; +#line 3482 "parse.y" +{ yyval.ttype = finish_compound_stmt (0, yyvsp[-1].ttype); ; break;} case 684: -#line 3554 "parse.y" -{ - if (processing_template_decl) - { - yyval.ttype = build_min_nt (COMPOUND_STMT, NULL_TREE); - add_tree (yyval.ttype); - } - ; - break;} -case 685: -#line 3562 "parse.y" -{ - if (processing_template_decl) - { - TREE_OPERAND (yyvsp[-2].ttype, 0) = TREE_CHAIN (yyvsp[-2].ttype); - TREE_CHAIN (yyvsp[-2].ttype) = NULL_TREE; - last_tree = yyvsp[-2].ttype; - } - yyval.ttype = yyvsp[0].ttype; - ; +#line 3487 "parse.y" +{; break;} case 686: -#line 3575 "parse.y" +#line 3493 "parse.y" { finish_stmt (); ; break;} +case 687: +#line 3495 "parse.y" +{ finish_expr_stmt (yyvsp[-1].ttype); ; + break;} case 688: -#line 3581 "parse.y" -{ finish_stmt (); ; +#line 3497 "parse.y" +{ begin_else_clause (); ; break;} case 689: -#line 3583 "parse.y" -{ - tree expr = yyvsp[-1].ttype; - if (! processing_template_decl) - { - emit_line_note (input_filename, lineno); - /* Do default conversion if safe and possibly important, - in case within ({...}). */ - if ((TREE_CODE (TREE_TYPE (expr)) == ARRAY_TYPE - && lvalue_p (expr)) - || TREE_CODE (TREE_TYPE (expr)) == FUNCTION_TYPE) - expr = default_conversion (expr); - } - cplus_expand_expr_stmt (expr); - clear_momentary (); - finish_stmt (); ; - break;} -case 690: -#line 3599 "parse.y" -{ if (! processing_template_decl) expand_start_else (); ; - break;} -case 691: -#line 3601 "parse.y" -{ - if (processing_template_decl) - { - TREE_OPERAND (yyvsp[-3].ttype, 2) = TREE_CHAIN (yyvsp[-3].ttype); - TREE_CHAIN (yyvsp[-3].ttype) = NULL_TREE; - last_tree = yyvsp[-3].ttype; - } - else - expand_end_cond (); +#line 3499 "parse.y" +{ + finish_else_clause (yyvsp[-3].ttype); + finish_if_stmt (); ; break;} -case 692: -#line 3612 "parse.y" -{ finish_stmt (); ; +case 690: +#line 3504 "parse.y" +{ finish_if_stmt (); ; break;} -case 693: -#line 3614 "parse.y" -{ if (! processing_template_decl) expand_end_cond (); - do_poplevel (); - finish_stmt (); ; - break;} -case 694: -#line 3618 "parse.y" +case 691: +#line 3506 "parse.y" { - if (processing_template_decl) - { - yyval.ttype = build_min_nt (WHILE_STMT, NULL_TREE, NULL_TREE); - add_tree (yyval.ttype); - } - else - { - emit_nop (); - emit_line_note (input_filename, lineno); - expand_start_loop (1); - } + yyval.ttype = begin_while_stmt (); cond_stmt_keyword = "while"; ; break;} +case 692: +#line 3511 "parse.y" +{ finish_while_stmt_cond (yyvsp[0].ttype, yyvsp[-1].ttype); ; + break;} +case 693: +#line 3513 "parse.y" +{ finish_while_stmt (yyvsp[-3].ttype); ; + break;} +case 694: +#line 3515 "parse.y" +{ yyval.ttype = begin_do_stmt (); ; + break;} case 695: -#line 3633 "parse.y" +#line 3517 "parse.y" { - if (processing_template_decl) - { - if (last_tree != yyvsp[-2].ttype) - { - TREE_OPERAND (yyvsp[-2].ttype, 0) = last_tree; - TREE_CHAIN (yyvsp[-2].ttype) = NULL_TREE; - last_tree = yyvsp[-2].ttype; - } - else - TREE_OPERAND (yyvsp[-2].ttype, 0) = yyvsp[0].ttype; - } - else - { - emit_line_note (input_filename, lineno); - expand_exit_loop_if_false (0, yyvsp[0].ttype); - } - - /* If the condition wasn't a declaration, clear out the - block we made for it and start a new one here so the - optimization in expand_end_loop will work. */ - if (getdecls () == NULL_TREE) - { - do_poplevel (); - do_pushlevel (); - } + finish_do_body (yyvsp[-2].ttype); + cond_stmt_keyword = "do"; ; break;} case 696: -#line 3661 "parse.y" -{ - if (processing_template_decl) - { - TREE_OPERAND (yyvsp[-5].ttype, 1) = TREE_CHAIN (yyvsp[-5].ttype); - TREE_CHAIN (yyvsp[-5].ttype) = NULL_TREE; - last_tree = yyvsp[-5].ttype; - } - else - expand_end_loop (); - finish_stmt (); - ; +#line 3522 "parse.y" +{ finish_do_stmt (yyvsp[-1].ttype, yyvsp[-5].ttype); ; break;} case 697: -#line 3673 "parse.y" -{ - if (processing_template_decl) - { - yyval.ttype = build_min_nt (DO_STMT, NULL_TREE, NULL_TREE); - add_tree (yyval.ttype); - } - else - { - emit_nop (); - emit_line_note (input_filename, lineno); - expand_start_loop_continue_elsewhere (1); - } - ; +#line 3524 "parse.y" +{ yyval.ttype = begin_for_stmt (); ; break;} case 698: -#line 3687 "parse.y" -{ - if (processing_template_decl) - { - TREE_OPERAND (yyvsp[-2].ttype, 0) = TREE_CHAIN (yyvsp[-2].ttype); - TREE_CHAIN (yyvsp[-2].ttype) = NULL_TREE; - last_tree = yyvsp[-2].ttype; - } - else - { - expand_loop_continue_here (); - cond_stmt_keyword = "do"; - } - ; +#line 3526 "parse.y" +{ finish_for_init_stmt (yyvsp[-2].ttype); ; break;} case 699: -#line 3701 "parse.y" -{ - if (processing_template_decl) - TREE_OPERAND (yyvsp[-5].ttype, 1) = yyvsp[-1].ttype; - else - { - emit_line_note (input_filename, lineno); - expand_exit_loop_if_false (0, yyvsp[-1].ttype); - expand_end_loop (); - } - clear_momentary (); - finish_stmt (); - ; +#line 3528 "parse.y" +{ finish_for_cond (yyvsp[-1].ttype, yyvsp[-5].ttype); ; break;} case 700: -#line 3714 "parse.y" -{ if (processing_template_decl) - { - yyval.ttype = build_min_nt (FOR_STMT, NULL_TREE, NULL_TREE, - NULL_TREE, NULL_TREE); - add_tree (yyval.ttype); - } - else - emit_line_note (input_filename, lineno); - if (flag_new_for_scope > 0) - { - /* Conditionalize .pushlevel */ - pushlevel (0); - note_level_for_for (); - clear_last_expr (); - push_momentary (); - expand_start_bindings (0); - } - ; +#line 3530 "parse.y" +{ finish_for_expr (yyvsp[-1].ttype, yyvsp[-8].ttype); ; break;} case 701: -#line 3733 "parse.y" -{ - if (processing_template_decl) - { - if (last_tree != yyvsp[-2].ttype) - { - TREE_OPERAND (yyvsp[-2].ttype, 0) = TREE_CHAIN (yyvsp[-2].ttype); - TREE_CHAIN (yyvsp[-2].ttype) = NULL_TREE; - last_tree = yyvsp[-2].ttype; - } - } - else - { - emit_nop (); - emit_line_note (input_filename, lineno); - expand_start_loop_continue_elsewhere (1); - } - ; +#line 3532 "parse.y" +{ finish_for_stmt (yyvsp[-3].ttype, yyvsp[-10].ttype); ; break;} case 702: -#line 3751 "parse.y" -{ - if (processing_template_decl) - { - if (last_tree != yyvsp[-6].ttype) - { - TREE_OPERAND (yyvsp[-6].ttype, 1) = last_tree; - TREE_CHAIN (yyvsp[-6].ttype) = NULL_TREE; - last_tree = yyvsp[-6].ttype; - } - else - TREE_OPERAND (yyvsp[-6].ttype, 1) = yyvsp[-1].ttype; - } - else - { - emit_line_note (input_filename, lineno); - if (yyvsp[-1].ttype) expand_exit_loop_if_false (0, yyvsp[-1].ttype); - } - - /* If the condition wasn't a declaration, clear out the - block we made for it and start a new one here so the - optimization in expand_end_loop will work. */ - if (getdecls () == NULL_TREE) - { - do_poplevel (); - do_pushlevel (); - } - ; +#line 3534 "parse.y" +{ begin_switch_stmt (); ; break;} case 703: -#line 3781 "parse.y" -{ - if (processing_template_decl) - TREE_OPERAND (yyvsp[-9].ttype, 2) = yyvsp[-1].ttype; - push_momentary (); - ; +#line 3536 "parse.y" +{ yyval.ttype = finish_switch_cond (yyvsp[-1].ttype); ; break;} case 704: -#line 3787 "parse.y" -{ - if (processing_template_decl) - { - TREE_OPERAND (yyvsp[-12].ttype, 3) = TREE_CHAIN (yyvsp[-12].ttype); - TREE_CHAIN (yyvsp[-12].ttype) = NULL_TREE; - last_tree = yyvsp[-12].ttype; - } - else - { - emit_line_note (input_filename, lineno); - expand_loop_continue_here (); - if (yyvsp[-4].ttype) cplus_expand_expr_stmt (yyvsp[-4].ttype); - expand_end_loop (); - } - pop_momentary (); - if (flag_new_for_scope > 0) - { - do_poplevel (); - } - finish_stmt (); ; +#line 3538 "parse.y" +{ finish_switch_stmt (yyvsp[-3].ttype, yyvsp[-1].ttype); ; break;} case 705: -#line 3808 "parse.y" -{ - if (processing_template_decl) - { - yyval.ttype = build_min_nt (SWITCH_STMT, yyvsp[-1].ttype, NULL_TREE); - add_tree (yyval.ttype); - } - else - { - emit_line_note (input_filename, lineno); - c_expand_start_case (yyvsp[-1].ttype); - } - push_switch (); - /* Don't let the tree nodes for $4 be discarded by - clear_momentary during the parsing of the next stmt. */ - push_momentary (); - ; - break;} -case 706: -#line 3825 "parse.y" -{ - if (processing_template_decl) - { - TREE_OPERAND (yyvsp[-1].ttype, 1) = TREE_CHAIN (yyvsp[-1].ttype); - TREE_CHAIN (yyvsp[-1].ttype) = NULL_TREE; - last_tree = yyvsp[-1].ttype; - } - else - expand_end_case (yyvsp[-3].ttype); - pop_momentary (); - pop_switch (); - ; +#line 3540 "parse.y" +{ finish_case_label (yyvsp[-1].ttype, NULL_TREE); ; break;} case 707: -#line 3838 "parse.y" -{ finish_stmt (); ; +#line 3543 "parse.y" +{ finish_case_label (yyvsp[-3].ttype, yyvsp[-1].ttype); ; break;} -case 708: -#line 3840 "parse.y" -{ do_case (yyvsp[-1].ttype, NULL_TREE); ; +case 709: +#line 3546 "parse.y" +{ finish_case_label (NULL_TREE, NULL_TREE); ; break;} -case 710: -#line 3843 "parse.y" -{ do_case (yyvsp[-3].ttype, yyvsp[-1].ttype); ; +case 711: +#line 3549 "parse.y" +{ finish_break_stmt (); ; break;} case 712: -#line 3846 "parse.y" -{ do_case (NULL_TREE, NULL_TREE); ; +#line 3551 "parse.y" +{ finish_continue_stmt (); ; + break;} +case 713: +#line 3553 "parse.y" +{ finish_return_stmt (NULL_TREE); ; break;} case 714: -#line 3849 "parse.y" -{ emit_line_note (input_filename, lineno); - if (processing_template_decl) - add_tree (build_min_nt (BREAK_STMT)); - else if ( ! expand_exit_something ()) - error ("break statement not within loop or switch"); ; +#line 3555 "parse.y" +{ finish_return_stmt (yyvsp[-1].ttype); ; break;} case 715: -#line 3855 "parse.y" -{ emit_line_note (input_filename, lineno); - if (processing_template_decl) - add_tree (build_min_nt (CONTINUE_STMT)); - else if (! expand_continue_loop (0)) - error ("continue statement not within a loop"); ; +#line 3557 "parse.y" +{ + finish_asm_stmt (yyvsp[-4].ttype, yyvsp[-2].ttype, NULL_TREE, NULL_TREE, + NULL_TREE); + ; break;} case 716: -#line 3861 "parse.y" -{ emit_line_note (input_filename, lineno); - c_expand_return (NULL_TREE); ; +#line 3563 "parse.y" +{ + finish_asm_stmt (yyvsp[-6].ttype, yyvsp[-4].ttype, yyvsp[-2].ttype, NULL_TREE, + NULL_TREE); + ; break;} case 717: -#line 3864 "parse.y" -{ emit_line_note (input_filename, lineno); - c_expand_return (yyvsp[-1].ttype); - finish_stmt (); - ; +#line 3569 "parse.y" +{ finish_asm_stmt (yyvsp[-8].ttype, yyvsp[-6].ttype, yyvsp[-4].ttype, yyvsp[-2].ttype, NULL_TREE); ; break;} case 718: -#line 3869 "parse.y" -{ if (TREE_CHAIN (yyvsp[-2].ttype)) yyvsp[-2].ttype = combine_strings (yyvsp[-2].ttype); - emit_line_note (input_filename, lineno); - expand_asm (yyvsp[-2].ttype); - finish_stmt (); - ; +#line 3573 "parse.y" +{ finish_asm_stmt (yyvsp[-10].ttype, yyvsp[-8].ttype, yyvsp[-6].ttype, yyvsp[-4].ttype, yyvsp[-2].ttype); ; break;} case 719: -#line 3876 "parse.y" -{ if (TREE_CHAIN (yyvsp[-4].ttype)) yyvsp[-4].ttype = combine_strings (yyvsp[-4].ttype); - emit_line_note (input_filename, lineno); - c_expand_asm_operands (yyvsp[-4].ttype, yyvsp[-2].ttype, NULL_TREE, NULL_TREE, - yyvsp[-6].ttype == ridpointers[(int)RID_VOLATILE], - input_filename, lineno); - finish_stmt (); +#line 3575 "parse.y" +{ + if (pedantic) + pedwarn ("ANSI C++ forbids computed gotos"); + finish_goto_stmt (yyvsp[-1].ttype); ; break;} case 720: -#line 3885 "parse.y" -{ if (TREE_CHAIN (yyvsp[-6].ttype)) yyvsp[-6].ttype = combine_strings (yyvsp[-6].ttype); - emit_line_note (input_filename, lineno); - c_expand_asm_operands (yyvsp[-6].ttype, yyvsp[-4].ttype, yyvsp[-2].ttype, NULL_TREE, - yyvsp[-8].ttype == ridpointers[(int)RID_VOLATILE], - input_filename, lineno); - finish_stmt (); - ; +#line 3581 "parse.y" +{ finish_goto_stmt (yyvsp[-1].ttype); ; break;} case 721: -#line 3895 "parse.y" -{ if (TREE_CHAIN (yyvsp[-8].ttype)) yyvsp[-8].ttype = combine_strings (yyvsp[-8].ttype); - emit_line_note (input_filename, lineno); - c_expand_asm_operands (yyvsp[-8].ttype, yyvsp[-6].ttype, yyvsp[-4].ttype, yyvsp[-2].ttype, - yyvsp[-10].ttype == ridpointers[(int)RID_VOLATILE], - input_filename, lineno); - finish_stmt (); - ; - break;} -case 722: -#line 3903 "parse.y" -{ - if (processing_template_decl) - add_tree (build_min_nt (GOTO_STMT, yyvsp[-1].ttype)); - else - { emit_line_note (input_filename, lineno); - expand_computed_goto (yyvsp[-1].ttype); } - ; - break;} -case 723: -#line 3911 "parse.y" -{ - if (processing_template_decl) - add_tree (build_min_nt (GOTO_STMT, yyvsp[-1].ttype)); - else - { - tree decl; - emit_line_note (input_filename, lineno); - decl = lookup_label (yyvsp[-1].ttype); - TREE_USED (decl) = 1; - expand_goto (decl); - } - ; - break;} -case 724: -#line 3924 "parse.y" +#line 3583 "parse.y" { finish_stmt (); ; break;} -case 725: -#line 3926 "parse.y" +case 722: +#line 3585 "parse.y" { error ("label must be followed by statement"); yyungetc ('}', 0); finish_stmt (); ; break;} -case 726: -#line 3930 "parse.y" +case 723: +#line 3589 "parse.y" { finish_stmt (); ; break;} -case 728: -#line 3936 "parse.y" +case 725: +#line 3595 "parse.y" { if (! current_function_parms_stored) store_parm_decls (); expand_start_early_try_stmts (); ; break;} -case 729: -#line 3942 "parse.y" +case 726: +#line 3601 "parse.y" { expand_start_all_catch (); ; break;} -case 730: -#line 3944 "parse.y" +case 727: +#line 3603 "parse.y" { int nested = (hack_decl_function_context (current_function_decl) != NULL_TREE); @@ -7889,95 +7557,42 @@ case 730: finish_function (lineno, (int)yyvsp[-3].itype, nested); ; break;} -case 731: -#line 3954 "parse.y" -{ - if (processing_template_decl) - { - yyval.ttype = build_min_nt (TRY_BLOCK, NULL_TREE, - NULL_TREE); - add_tree (yyval.ttype); - } - else - { - emit_line_note (input_filename, lineno); - expand_start_try_stmts (); - } - ; +case 728: +#line 3613 "parse.y" +{ yyval.ttype = begin_try_block (); ; break;} -case 732: -#line 3968 "parse.y" -{ - if (processing_template_decl) - { - TREE_OPERAND (yyvsp[-1].ttype, 0) = TREE_CHAIN (yyvsp[-1].ttype); - TREE_CHAIN (yyvsp[-1].ttype) = NULL_TREE; - last_tree = yyvsp[-1].ttype; - } - else - expand_start_all_catch (); - ; +case 729: +#line 3615 "parse.y" +{ finish_try_block (yyvsp[-1].ttype); ; + break;} +case 730: +#line 3617 "parse.y" +{ finish_handler_sequence (yyvsp[-3].ttype); ; break;} case 733: -#line 3979 "parse.y" -{ - if (processing_template_decl) - { - TREE_OPERAND (yyvsp[-3].ttype, 1) = TREE_CHAIN (yyvsp[-3].ttype); - TREE_CHAIN (yyvsp[-3].ttype) = NULL_TREE; - last_tree = yyvsp[-3].ttype; - } - else - expand_end_all_catch (); - ; +#line 3627 "parse.y" +{ yyval.ttype = begin_handler(); ; break;} -case 736: -#line 3998 "parse.y" -{ - if (processing_template_decl) - { - yyval.ttype = build_min_nt (HANDLER, NULL_TREE, - NULL_TREE); - add_tree (yyval.ttype); - } - ; +case 734: +#line 3629 "parse.y" +{ finish_handler_parms (yyvsp[-1].ttype); ; break;} -case 737: -#line 4007 "parse.y" -{ - if (processing_template_decl) - { - TREE_OPERAND (yyvsp[-2].ttype, 0) = TREE_CHAIN (yyvsp[-2].ttype); - TREE_CHAIN (yyvsp[-2].ttype) = NULL_TREE; - last_tree = yyvsp[-2].ttype; - } - ; +case 735: +#line 3631 "parse.y" +{ finish_handler (yyvsp[-3].ttype); ; break;} case 738: -#line 4016 "parse.y" -{ - if (processing_template_decl) - { - TREE_OPERAND (yyvsp[-4].ttype, 1) = TREE_CHAIN (yyvsp[-4].ttype); - TREE_CHAIN (yyvsp[-4].ttype) = NULL_TREE; - last_tree = yyvsp[-4].ttype; - } - else - expand_end_catch_block (); - ; - break;} -case 742: -#line 4036 "parse.y" +#line 3641 "parse.y" { expand_start_catch_block (NULL_TREE, NULL_TREE); ; break;} -case 743: -#line 4052 "parse.y" +case 739: +#line 3657 "parse.y" { check_for_new_type ("inside exception declarations", yyvsp[-1].ftype); expand_start_catch_block (TREE_PURPOSE (yyvsp[-1].ftype.t), TREE_VALUE (yyvsp[-1].ftype.t)); ; break;} -case 744: -#line 4059 "parse.y" +case 740: +#line 3664 "parse.y" { tree label; do_label: label = define_label (input_filename, lineno, yyvsp[-1].ttype); @@ -7985,130 +7600,130 @@ case 744: expand_label (label); ; break;} -case 745: -#line 4066 "parse.y" +case 741: +#line 3671 "parse.y" { goto do_label; ; break;} -case 746: -#line 4068 "parse.y" +case 742: +#line 3673 "parse.y" { goto do_label; ; break;} -case 747: -#line 4070 "parse.y" +case 743: +#line 3675 "parse.y" { goto do_label; ; break;} -case 748: -#line 4075 "parse.y" +case 744: +#line 3680 "parse.y" { if (yyvsp[-1].ttype) cplus_expand_expr_stmt (yyvsp[-1].ttype); ; break;} -case 750: -#line 4078 "parse.y" +case 746: +#line 3683 "parse.y" { if (pedantic) pedwarn ("ANSI C++ forbids compound statements inside for initializations"); ; break;} -case 751: -#line 4087 "parse.y" +case 747: +#line 3692 "parse.y" { emit_line_note (input_filename, lineno); yyval.ttype = NULL_TREE; ; break;} -case 752: -#line 4090 "parse.y" +case 748: +#line 3695 "parse.y" { emit_line_note (input_filename, lineno); ; break;} -case 753: -#line 4095 "parse.y" +case 749: +#line 3700 "parse.y" +{ yyval.ttype = NULL_TREE; ; + break;} +case 751: +#line 3703 "parse.y" +{ yyval.ttype = NULL_TREE; ; + break;} +case 752: +#line 3710 "parse.y" { yyval.ttype = NULL_TREE; ; break;} case 755: -#line 4098 "parse.y" -{ yyval.ttype = NULL_TREE; ; - break;} -case 756: -#line 4105 "parse.y" -{ yyval.ttype = NULL_TREE; ; - break;} -case 759: -#line 4112 "parse.y" +#line 3717 "parse.y" { yyval.ttype = chainon (yyval.ttype, yyvsp[0].ttype); ; break;} -case 760: -#line 4117 "parse.y" +case 756: +#line 3722 "parse.y" { yyval.ttype = build_tree_list (yyval.ttype, yyvsp[-1].ttype); ; break;} -case 761: -#line 4122 "parse.y" +case 757: +#line 3727 "parse.y" { yyval.ttype = tree_cons (NULL_TREE, yyval.ttype, NULL_TREE); ; break;} -case 762: -#line 4124 "parse.y" +case 758: +#line 3729 "parse.y" { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype); ; break;} -case 763: -#line 4135 "parse.y" +case 759: +#line 3740 "parse.y" { yyval.ttype = empty_parms(); ; break;} -case 765: -#line 4140 "parse.y" +case 761: +#line 3745 "parse.y" { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ftype.t, void_list_node); TREE_PARMLIST (yyval.ttype) = 1; check_for_new_type ("inside parameter list", yyvsp[0].ftype); ; break;} -case 766: -#line 4149 "parse.y" +case 762: +#line 3754 "parse.y" { yyval.ttype = chainon (yyval.ttype, void_list_node); TREE_PARMLIST (yyval.ttype) = 1; ; break;} -case 767: -#line 4154 "parse.y" +case 763: +#line 3759 "parse.y" { TREE_PARMLIST (yyval.ttype) = 1; ; break;} -case 768: -#line 4159 "parse.y" +case 764: +#line 3764 "parse.y" { TREE_PARMLIST (yyval.ttype) = 1; ; break;} -case 769: -#line 4163 "parse.y" +case 765: +#line 3768 "parse.y" { yyval.ttype = build_tree_list (NULL_TREE, yyvsp[-1].ftype.t); TREE_PARMLIST (yyval.ttype) = 1; ; break;} -case 770: -#line 4168 "parse.y" +case 766: +#line 3773 "parse.y" { yyval.ttype = NULL_TREE; ; break;} -case 771: -#line 4172 "parse.y" +case 767: +#line 3777 "parse.y" { TREE_PARMLIST (yyval.ttype) = 1; ; break;} -case 772: -#line 4176 "parse.y" +case 768: +#line 3781 "parse.y" { TREE_PARMLIST (yyval.ttype) = 1; ; break;} -case 773: -#line 4180 "parse.y" +case 769: +#line 3785 "parse.y" { yyval.ttype = build_tree_list (NULL_TREE, yyvsp[-1].ftype.t); TREE_PARMLIST (yyval.ttype) = 1; ; break;} -case 774: -#line 4185 "parse.y" +case 770: +#line 3790 "parse.y" { /* This helps us recover from really nasty parse errors, for example, a missing right @@ -8120,8 +7735,8 @@ case 774: yychar = ')'; ; break;} -case 775: -#line 4196 "parse.y" +case 771: +#line 3801 "parse.y" { /* This helps us recover from really nasty parse errors, for example, a missing right @@ -8133,99 +7748,99 @@ case 775: yychar = ')'; ; break;} -case 776: -#line 4211 "parse.y" +case 772: +#line 3816 "parse.y" { maybe_snarf_defarg (); ; break;} -case 777: -#line 4213 "parse.y" +case 773: +#line 3818 "parse.y" { yyval.ttype = yyvsp[0].ttype; ; break;} -case 780: -#line 4224 "parse.y" +case 776: +#line 3829 "parse.y" { check_for_new_type ("in a parameter list", yyvsp[0].ftype); yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ftype.t); ; break;} -case 781: -#line 4227 "parse.y" +case 777: +#line 3832 "parse.y" { check_for_new_type ("in a parameter list", yyvsp[-1].ftype); yyval.ttype = build_tree_list (yyvsp[0].ttype, yyvsp[-1].ftype.t); ; break;} -case 782: -#line 4230 "parse.y" +case 778: +#line 3835 "parse.y" { check_for_new_type ("in a parameter list", yyvsp[0].ftype); yyval.ttype = chainon (yyval.ttype, yyvsp[0].ftype.t); ; break;} -case 783: -#line 4233 "parse.y" +case 779: +#line 3838 "parse.y" { yyval.ttype = chainon (yyval.ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ; break;} -case 784: -#line 4235 "parse.y" +case 780: +#line 3840 "parse.y" { yyval.ttype = chainon (yyval.ttype, build_tree_list (yyvsp[0].ttype, yyvsp[-2].ttype)); ; break;} -case 786: -#line 4241 "parse.y" +case 782: +#line 3846 "parse.y" { check_for_new_type ("in a parameter list", yyvsp[-1].ftype); yyval.ttype = build_tree_list (NULL_TREE, yyvsp[-1].ftype.t); ; break;} -case 787: -#line 4251 "parse.y" +case 783: +#line 3856 "parse.y" { tree specs = strip_attrs (yyvsp[-1].ftype.t); yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; yyval.ftype.t = build_tree_list (specs, yyvsp[0].ttype); ; break;} -case 788: -#line 4255 "parse.y" +case 784: +#line 3860 "parse.y" { yyval.ftype.t = build_tree_list (yyvsp[-1].ftype.t, yyvsp[0].ttype); yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ; break;} -case 789: -#line 4258 "parse.y" +case 785: +#line 3863 "parse.y" { yyval.ftype.t = build_tree_list (get_decl_list (yyvsp[-1].ftype.t), yyvsp[0].ttype); yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ; break;} -case 790: -#line 4261 "parse.y" +case 786: +#line 3866 "parse.y" { tree specs = strip_attrs (yyvsp[-1].ftype.t); yyval.ftype.t = build_tree_list (specs, yyvsp[0].ttype); yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ; break;} -case 791: -#line 4265 "parse.y" +case 787: +#line 3870 "parse.y" { tree specs = strip_attrs (yyvsp[0].ftype.t); yyval.ftype.t = build_tree_list (specs, NULL_TREE); yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag; ; break;} -case 792: -#line 4269 "parse.y" +case 788: +#line 3874 "parse.y" { tree specs = strip_attrs (yyvsp[-1].ttype); yyval.ftype.t = build_tree_list (specs, yyvsp[0].ttype); yyval.ftype.new_type_flag = 0; ; break;} -case 793: -#line 4276 "parse.y" +case 789: +#line 3881 "parse.y" { yyval.ftype.t = build_tree_list (NULL_TREE, yyvsp[0].ftype.t); yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag; ; break;} -case 794: -#line 4279 "parse.y" +case 790: +#line 3884 "parse.y" { yyval.ftype.t = build_tree_list (yyvsp[0].ttype, yyvsp[-1].ftype.t); yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ; break;} -case 797: -#line 4290 "parse.y" +case 793: +#line 3895 "parse.y" { see_typename (); ; break;} -case 798: -#line 4295 "parse.y" +case 794: +#line 3900 "parse.y" { error ("type specifier omitted for parameter"); yyval.ttype = build_tree_list (integer_type_node, NULL_TREE); ; break;} -case 799: -#line 4300 "parse.y" +case 795: +#line 3905 "parse.y" { error ("type specifier omitted for parameter"); if (TREE_CODE (yyval.ttype) == SCOPE_REF @@ -8235,189 +7850,189 @@ case 799: yyval.ttype = build_tree_list (integer_type_node, yyval.ttype); ; break;} -case 800: -#line 4312 "parse.y" +case 796: +#line 3917 "parse.y" { yyval.ttype = NULL_TREE; ; break;} -case 801: -#line 4314 "parse.y" +case 797: +#line 3919 "parse.y" { yyval.ttype = yyvsp[-1].ttype; ; break;} -case 802: -#line 4316 "parse.y" +case 798: +#line 3921 "parse.y" { yyval.ttype = build_decl_list (NULL_TREE, NULL_TREE); ; break;} -case 803: -#line 4321 "parse.y" +case 799: +#line 3926 "parse.y" { yyval.ttype = build_decl_list (NULL_TREE, groktypename(yyvsp[0].ftype.t)); ; break;} -case 805: -#line 4327 "parse.y" +case 801: +#line 3932 "parse.y" { TREE_CHAIN (yyvsp[0].ttype) = yyval.ttype; yyval.ttype = yyvsp[0].ttype; ; break;} -case 806: -#line 4335 "parse.y" +case 802: +#line 3940 "parse.y" { yyval.ttype = NULL_TREE; ; break;} -case 807: -#line 4337 "parse.y" +case 803: +#line 3942 "parse.y" { yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ; break;} -case 808: -#line 4339 "parse.y" +case 804: +#line 3944 "parse.y" { yyval.ttype = make_reference_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ; break;} -case 809: -#line 4341 "parse.y" +case 805: +#line 3946 "parse.y" { tree arg = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-2].ttype, arg); ; break;} -case 810: -#line 4348 "parse.y" +case 806: +#line 3953 "parse.y" { got_scope = NULL_TREE; ; break;} -case 811: -#line 4353 "parse.y" +case 807: +#line 3958 "parse.y" { yyval.ttype = ansi_opname[MULT_EXPR]; ; break;} -case 812: -#line 4355 "parse.y" +case 808: +#line 3960 "parse.y" { yyval.ttype = ansi_opname[TRUNC_DIV_EXPR]; ; break;} -case 813: -#line 4357 "parse.y" +case 809: +#line 3962 "parse.y" { yyval.ttype = ansi_opname[TRUNC_MOD_EXPR]; ; break;} -case 814: -#line 4359 "parse.y" +case 810: +#line 3964 "parse.y" { yyval.ttype = ansi_opname[PLUS_EXPR]; ; break;} -case 815: -#line 4361 "parse.y" +case 811: +#line 3966 "parse.y" { yyval.ttype = ansi_opname[MINUS_EXPR]; ; break;} -case 816: -#line 4363 "parse.y" +case 812: +#line 3968 "parse.y" { yyval.ttype = ansi_opname[BIT_AND_EXPR]; ; break;} -case 817: -#line 4365 "parse.y" +case 813: +#line 3970 "parse.y" { yyval.ttype = ansi_opname[BIT_IOR_EXPR]; ; break;} -case 818: -#line 4367 "parse.y" +case 814: +#line 3972 "parse.y" { yyval.ttype = ansi_opname[BIT_XOR_EXPR]; ; break;} -case 819: -#line 4369 "parse.y" +case 815: +#line 3974 "parse.y" { yyval.ttype = ansi_opname[BIT_NOT_EXPR]; ; break;} -case 820: -#line 4371 "parse.y" +case 816: +#line 3976 "parse.y" { yyval.ttype = ansi_opname[COMPOUND_EXPR]; ; break;} -case 821: -#line 4373 "parse.y" +case 817: +#line 3978 "parse.y" { yyval.ttype = ansi_opname[yyvsp[0].code]; ; break;} -case 822: -#line 4375 "parse.y" +case 818: +#line 3980 "parse.y" { yyval.ttype = ansi_opname[LT_EXPR]; ; break;} -case 823: -#line 4377 "parse.y" +case 819: +#line 3982 "parse.y" { yyval.ttype = ansi_opname[GT_EXPR]; ; break;} +case 820: +#line 3984 "parse.y" +{ yyval.ttype = ansi_opname[yyvsp[0].code]; ; + break;} +case 821: +#line 3986 "parse.y" +{ yyval.ttype = ansi_assopname[yyvsp[0].code]; ; + break;} +case 822: +#line 3988 "parse.y" +{ yyval.ttype = ansi_opname [MODIFY_EXPR]; ; + break;} +case 823: +#line 3990 "parse.y" +{ yyval.ttype = ansi_opname[yyvsp[0].code]; ; + break;} case 824: -#line 4379 "parse.y" +#line 3992 "parse.y" { yyval.ttype = ansi_opname[yyvsp[0].code]; ; break;} case 825: -#line 4381 "parse.y" -{ yyval.ttype = ansi_assopname[yyvsp[0].code]; ; - break;} -case 826: -#line 4383 "parse.y" -{ yyval.ttype = ansi_opname [MODIFY_EXPR]; ; - break;} -case 827: -#line 4385 "parse.y" -{ yyval.ttype = ansi_opname[yyvsp[0].code]; ; - break;} -case 828: -#line 4387 "parse.y" -{ yyval.ttype = ansi_opname[yyvsp[0].code]; ; - break;} -case 829: -#line 4389 "parse.y" +#line 3994 "parse.y" { yyval.ttype = ansi_opname[POSTINCREMENT_EXPR]; ; break;} -case 830: -#line 4391 "parse.y" +case 826: +#line 3996 "parse.y" { yyval.ttype = ansi_opname[PREDECREMENT_EXPR]; ; break;} -case 831: -#line 4393 "parse.y" +case 827: +#line 3998 "parse.y" { yyval.ttype = ansi_opname[TRUTH_ANDIF_EXPR]; ; break;} -case 832: -#line 4395 "parse.y" +case 828: +#line 4000 "parse.y" { yyval.ttype = ansi_opname[TRUTH_ORIF_EXPR]; ; break;} -case 833: -#line 4397 "parse.y" +case 829: +#line 4002 "parse.y" { yyval.ttype = ansi_opname[TRUTH_NOT_EXPR]; ; break;} -case 834: -#line 4399 "parse.y" +case 830: +#line 4004 "parse.y" { yyval.ttype = ansi_opname[COND_EXPR]; ; break;} -case 835: -#line 4401 "parse.y" +case 831: +#line 4006 "parse.y" { yyval.ttype = ansi_opname[yyvsp[0].code]; ; break;} -case 836: -#line 4403 "parse.y" +case 832: +#line 4008 "parse.y" { yyval.ttype = ansi_opname[COMPONENT_REF]; ; break;} -case 837: -#line 4405 "parse.y" +case 833: +#line 4010 "parse.y" { yyval.ttype = ansi_opname[MEMBER_REF]; ; break;} -case 838: -#line 4407 "parse.y" +case 834: +#line 4012 "parse.y" { yyval.ttype = ansi_opname[CALL_EXPR]; ; break;} -case 839: -#line 4409 "parse.y" +case 835: +#line 4014 "parse.y" { yyval.ttype = ansi_opname[ARRAY_REF]; ; break;} -case 840: -#line 4411 "parse.y" +case 836: +#line 4016 "parse.y" { yyval.ttype = ansi_opname[NEW_EXPR]; ; break;} -case 841: -#line 4413 "parse.y" +case 837: +#line 4018 "parse.y" { yyval.ttype = ansi_opname[DELETE_EXPR]; ; break;} -case 842: -#line 4415 "parse.y" +case 838: +#line 4020 "parse.y" { yyval.ttype = ansi_opname[VEC_NEW_EXPR]; ; break;} -case 843: -#line 4417 "parse.y" +case 839: +#line 4022 "parse.y" { yyval.ttype = ansi_opname[VEC_DELETE_EXPR]; ; break;} -case 844: -#line 4420 "parse.y" +case 840: +#line 4025 "parse.y" { yyval.ttype = grokoptypename (yyvsp[-1].ftype.t, yyvsp[0].ttype); ; break;} -case 845: -#line 4422 "parse.y" +case 841: +#line 4027 "parse.y" { yyval.ttype = ansi_opname[ERROR_MARK]; ; break;} } @@ -8618,7 +8233,7 @@ yyerrhandle: yystate = yyn; goto yynewstate; } -#line 4425 "parse.y" +#line 4030 "parse.y" #ifdef SPEW_DEBUG diff --git a/gcc/cp/parse.y b/gcc/cp/parse.y index d159fcd9513..a9821fafc8e 100644 --- a/gcc/cp/parse.y +++ b/gcc/cp/parse.y @@ -263,7 +263,7 @@ empty_parms () %type complete_type_name notype_identifier nonnested_type %type complex_type_name nested_name_specifier_1 %type new_initializer new_placement -%type using_decl .poplevel +%type using_decl %type typename_sub typename_sub0 typename_sub1 typename_sub2 %type explicit_template_type /* in order to recognize aggr tags as defining and thus shadowing. */ @@ -1002,7 +1002,7 @@ paren_expr_or_null: cond_stmt_keyword); $$ = integer_zero_node; } | '(' expr ')' - { $$ = condition_conversion ($2); } + { $$ = $2; } ; paren_cond_or_null: @@ -1011,7 +1011,7 @@ paren_cond_or_null: cond_stmt_keyword); $$ = integer_zero_node; } | '(' condition ')' - { $$ = condition_conversion ($2); } + { $$ = $2; } ; xcond: @@ -1062,24 +1062,9 @@ compstmtend: already_scoped_stmt: '{' - { - if (processing_template_decl) - { - $$ = build_min_nt (COMPOUND_STMT, NULL_TREE); - COMPOUND_STMT_NO_SCOPE ($$) = 1; - add_tree ($$); - } - } + { $$ = begin_compound_stmt (1); } compstmtend - { - if (processing_template_decl) - { - TREE_OPERAND ($2, 0) = TREE_CHAIN ($2); - TREE_CHAIN ($2) = NULL_TREE; - last_tree = $2; - } - finish_stmt (); - } + { finish_compound_stmt (1, $2); } | simple_stmt ; @@ -3437,20 +3422,6 @@ errstmt: error ';' ; -/* build the LET_STMT node before parsing its contents, - so that any LET_STMTs within the context can have their display pointers - set up to point at this one. */ - -.pushlevel: - /* empty */ - { do_pushlevel (); } - ; - -.poplevel: - /* empty */ - { $$ = do_poplevel (); } - ; - /* Read zero or more forward-declarations for labels that nested functions can jump to. */ maybe_label_decls: @@ -3487,92 +3458,33 @@ compstmt_or_error: compstmt: '{' - { - if (processing_template_decl) - { - $$ = build_min_nt (COMPOUND_STMT, NULL_TREE); - add_tree ($$); - } - } - .pushlevel compstmtend .poplevel - { - if (processing_template_decl) - { - TREE_OPERAND ($2, 0) = TREE_CHAIN ($2); - TREE_CHAIN ($2) = NULL_TREE; - last_tree = $2; - } - $$ = $5; - } + { $$ = begin_compound_stmt (0); } + compstmtend + { $$ = finish_compound_stmt (0, $2); } ; simple_if: IF { - if (processing_template_decl) - { - $$ = build_min_nt (IF_STMT, NULL_TREE, NULL_TREE, - NULL_TREE); - add_tree ($$); - } - cond_stmt_keyword = "if"; - } - .pushlevel paren_cond_or_null - { - if (processing_template_decl) - { - if (last_tree != $2) - { - TREE_OPERAND ($2, 0) = last_tree; - TREE_CHAIN ($2) = NULL_TREE; - last_tree = $2; - } - else - TREE_OPERAND ($2, 0) = $4; - } - else - { - emit_line_note (input_filename, lineno); - expand_start_cond ($4, 0); - } - } - implicitly_scoped_stmt - { - if (processing_template_decl) - { - TREE_OPERAND ($2, 1) = TREE_CHAIN ($2); - TREE_CHAIN ($2) = NULL_TREE; - $$ = last_tree = $2; - } + $$ = begin_if_stmt (); + cond_stmt_keyword = "if"; } + paren_cond_or_null + { finish_if_stmt_cond ($3, $2); } + implicitly_scoped_stmt + { $$ = finish_then_clause ($2); } ; implicitly_scoped_stmt: compstmt - { finish_stmt (); } - | .pushlevel - { - if (processing_template_decl) - { - $$ = build_min_nt (COMPOUND_STMT, NULL_TREE); - add_tree ($$); - } - } - simple_stmt .poplevel - { - if (processing_template_decl) - { - TREE_OPERAND ($2, 0) = TREE_CHAIN ($2); - TREE_CHAIN ($2) = NULL_TREE; - last_tree = $2; - } - $$ = $4; - } + | { $$ = begin_compound_stmt (0); } + simple_stmt + { $$ = finish_compound_stmt (0, $1); } ; stmt: compstmt - { finish_stmt (); } + {} | simple_stmt ; @@ -3580,346 +3492,93 @@ simple_stmt: decl { finish_stmt (); } | expr ';' - { - tree expr = $1; - if (! processing_template_decl) - { - emit_line_note (input_filename, lineno); - /* Do default conversion if safe and possibly important, - in case within ({...}). */ - if ((TREE_CODE (TREE_TYPE (expr)) == ARRAY_TYPE - && lvalue_p (expr)) - || TREE_CODE (TREE_TYPE (expr)) == FUNCTION_TYPE) - expr = default_conversion (expr); - } - cplus_expand_expr_stmt (expr); - clear_momentary (); - finish_stmt (); } + { finish_expr_stmt ($1); } | simple_if ELSE - { if (! processing_template_decl) expand_start_else (); } + { begin_else_clause (); } implicitly_scoped_stmt - { - if (processing_template_decl) - { - TREE_OPERAND ($1, 2) = TREE_CHAIN ($1); - TREE_CHAIN ($1) = NULL_TREE; - last_tree = $1; - } - else - expand_end_cond (); + { + finish_else_clause ($1); + finish_if_stmt (); } - .poplevel - { finish_stmt (); } | simple_if %prec IF - { if (! processing_template_decl) expand_end_cond (); - do_poplevel (); - finish_stmt (); } + { finish_if_stmt (); } | WHILE { - if (processing_template_decl) - { - $$ = build_min_nt (WHILE_STMT, NULL_TREE, NULL_TREE); - add_tree ($$); - } - else - { - emit_nop (); - emit_line_note (input_filename, lineno); - expand_start_loop (1); - } + $$ = begin_while_stmt (); cond_stmt_keyword = "while"; } - .pushlevel paren_cond_or_null - { - if (processing_template_decl) - { - if (last_tree != $2) - { - TREE_OPERAND ($2, 0) = last_tree; - TREE_CHAIN ($2) = NULL_TREE; - last_tree = $2; - } - else - TREE_OPERAND ($2, 0) = $4; - } - else - { - emit_line_note (input_filename, lineno); - expand_exit_loop_if_false (0, $4); - } - - /* If the condition wasn't a declaration, clear out the - block we made for it and start a new one here so the - optimization in expand_end_loop will work. */ - if (getdecls () == NULL_TREE) - { - do_poplevel (); - do_pushlevel (); - } - } - already_scoped_stmt .poplevel - { - if (processing_template_decl) - { - TREE_OPERAND ($2, 1) = TREE_CHAIN ($2); - TREE_CHAIN ($2) = NULL_TREE; - last_tree = $2; - } - else - expand_end_loop (); - finish_stmt (); - } + paren_cond_or_null + { finish_while_stmt_cond ($3, $2); } + already_scoped_stmt + { finish_while_stmt ($2); } | DO - { - if (processing_template_decl) - { - $$ = build_min_nt (DO_STMT, NULL_TREE, NULL_TREE); - add_tree ($$); - } - else - { - emit_nop (); - emit_line_note (input_filename, lineno); - expand_start_loop_continue_elsewhere (1); - } - } + { $$ = begin_do_stmt (); } implicitly_scoped_stmt WHILE { - if (processing_template_decl) - { - TREE_OPERAND ($2, 0) = TREE_CHAIN ($2); - TREE_CHAIN ($2) = NULL_TREE; - last_tree = $2; - } - else - { - expand_loop_continue_here (); - cond_stmt_keyword = "do"; - } + finish_do_body ($2); + cond_stmt_keyword = "do"; } paren_expr_or_null ';' - { - if (processing_template_decl) - TREE_OPERAND ($2, 1) = $6; - else - { - emit_line_note (input_filename, lineno); - expand_exit_loop_if_false (0, $6); - expand_end_loop (); - } - clear_momentary (); - finish_stmt (); - } + { finish_do_stmt ($6, $2); } | FOR - { if (processing_template_decl) - { - $$ = build_min_nt (FOR_STMT, NULL_TREE, NULL_TREE, - NULL_TREE, NULL_TREE); - add_tree ($$); - } - else - emit_line_note (input_filename, lineno); - if (flag_new_for_scope > 0) - { - /* Conditionalize .pushlevel */ - pushlevel (0); - note_level_for_for (); - clear_last_expr (); - push_momentary (); - expand_start_bindings (0); - } - } + { $$ = begin_for_stmt (); } '(' for.init.statement - { - if (processing_template_decl) - { - if (last_tree != $2) - { - TREE_OPERAND ($2, 0) = TREE_CHAIN ($2); - TREE_CHAIN ($2) = NULL_TREE; - last_tree = $2; - } - } - else - { - emit_nop (); - emit_line_note (input_filename, lineno); - expand_start_loop_continue_elsewhere (1); - } - } - .pushlevel xcond ';' - { - if (processing_template_decl) - { - if (last_tree != $2) - { - TREE_OPERAND ($2, 1) = last_tree; - TREE_CHAIN ($2) = NULL_TREE; - last_tree = $2; - } - else - TREE_OPERAND ($2, 1) = $7; - } - else - { - emit_line_note (input_filename, lineno); - if ($7) expand_exit_loop_if_false (0, $7); - } - - /* If the condition wasn't a declaration, clear out the - block we made for it and start a new one here so the - optimization in expand_end_loop will work. */ - if (getdecls () == NULL_TREE) - { - do_poplevel (); - do_pushlevel (); - } - } + { finish_for_init_stmt ($2); } + xcond ';' + { finish_for_cond ($6, $2); } xexpr ')' - /* Don't let the tree nodes for $10 be discarded - by clear_momentary during the parsing of the next stmt. */ - { - if (processing_template_decl) - TREE_OPERAND ($2, 2) = $10; - push_momentary (); - } - already_scoped_stmt .poplevel - { - if (processing_template_decl) - { - TREE_OPERAND ($2, 3) = TREE_CHAIN ($2); - TREE_CHAIN ($2) = NULL_TREE; - last_tree = $2; - } - else - { - emit_line_note (input_filename, lineno); - expand_loop_continue_here (); - if ($10) cplus_expand_expr_stmt ($10); - expand_end_loop (); - } - pop_momentary (); - if (flag_new_for_scope > 0) - { - do_poplevel (); - } - finish_stmt (); } - | SWITCH .pushlevel '(' condition ')' - { - if (processing_template_decl) - { - $$ = build_min_nt (SWITCH_STMT, $4, NULL_TREE); - add_tree ($$); - } - else - { - emit_line_note (input_filename, lineno); - c_expand_start_case ($4); - } - push_switch (); - /* Don't let the tree nodes for $4 be discarded by - clear_momentary during the parsing of the next stmt. */ - push_momentary (); - } + { finish_for_expr ($9, $2); } + already_scoped_stmt + { finish_for_stmt ($9, $2); } + | SWITCH + { begin_switch_stmt (); } + '(' condition ')' + { $$ = finish_switch_cond ($4); } implicitly_scoped_stmt - { - if (processing_template_decl) - { - TREE_OPERAND ($6, 1) = TREE_CHAIN ($6); - TREE_CHAIN ($6) = NULL_TREE; - last_tree = $6; - } - else - expand_end_case ($4); - pop_momentary (); - pop_switch (); - } - .poplevel - { finish_stmt (); } + { finish_switch_stmt ($4, $6); } | CASE expr_no_commas ':' - { do_case ($2, NULL_TREE); } + { finish_case_label ($2, NULL_TREE); } stmt | CASE expr_no_commas ELLIPSIS expr_no_commas ':' - { do_case ($2, $4); } + { finish_case_label ($2, $4); } stmt | DEFAULT ':' - { do_case (NULL_TREE, NULL_TREE); } + { finish_case_label (NULL_TREE, NULL_TREE); } stmt | BREAK ';' - { emit_line_note (input_filename, lineno); - if (processing_template_decl) - add_tree (build_min_nt (BREAK_STMT)); - else if ( ! expand_exit_something ()) - error ("break statement not within loop or switch"); } + { finish_break_stmt (); } | CONTINUE ';' - { emit_line_note (input_filename, lineno); - if (processing_template_decl) - add_tree (build_min_nt (CONTINUE_STMT)); - else if (! expand_continue_loop (0)) - error ("continue statement not within a loop"); } + { finish_continue_stmt (); } | RETURN ';' - { emit_line_note (input_filename, lineno); - c_expand_return (NULL_TREE); } + { finish_return_stmt (NULL_TREE); } | RETURN expr ';' - { emit_line_note (input_filename, lineno); - c_expand_return ($2); - finish_stmt (); - } + { finish_return_stmt ($2); } | asm_keyword maybe_cv_qualifier '(' string ')' ';' - { if (TREE_CHAIN ($4)) $4 = combine_strings ($4); - emit_line_note (input_filename, lineno); - expand_asm ($4); - finish_stmt (); + { + finish_asm_stmt ($2, $4, NULL_TREE, NULL_TREE, + NULL_TREE); } /* This is the case with just output operands. */ | asm_keyword maybe_cv_qualifier '(' string ':' asm_operands ')' ';' - { if (TREE_CHAIN ($4)) $4 = combine_strings ($4); - emit_line_note (input_filename, lineno); - c_expand_asm_operands ($4, $6, NULL_TREE, NULL_TREE, - $2 == ridpointers[(int)RID_VOLATILE], - input_filename, lineno); - finish_stmt (); + { + finish_asm_stmt ($2, $4, $6, NULL_TREE, + NULL_TREE); } /* This is the case with input operands as well. */ | asm_keyword maybe_cv_qualifier '(' string ':' asm_operands ':' asm_operands ')' ';' - { if (TREE_CHAIN ($4)) $4 = combine_strings ($4); - emit_line_note (input_filename, lineno); - c_expand_asm_operands ($4, $6, $8, NULL_TREE, - $2 == ridpointers[(int)RID_VOLATILE], - input_filename, lineno); - finish_stmt (); - } + { finish_asm_stmt ($2, $4, $6, $8, NULL_TREE); } /* This is the case with clobbered registers as well. */ | asm_keyword maybe_cv_qualifier '(' string ':' asm_operands ':' asm_operands ':' asm_clobbers ')' ';' - { if (TREE_CHAIN ($4)) $4 = combine_strings ($4); - emit_line_note (input_filename, lineno); - c_expand_asm_operands ($4, $6, $8, $10, - $2 == ridpointers[(int)RID_VOLATILE], - input_filename, lineno); - finish_stmt (); - } + { finish_asm_stmt ($2, $4, $6, $8, $10); } | GOTO '*' expr ';' - { - if (processing_template_decl) - add_tree (build_min_nt (GOTO_STMT, $3)); - else - { emit_line_note (input_filename, lineno); - expand_computed_goto ($3); } + { + if (pedantic) + pedwarn ("ANSI C++ forbids computed gotos"); + finish_goto_stmt ($3); } | GOTO identifier ';' - { - if (processing_template_decl) - add_tree (build_min_nt (GOTO_STMT, $2)); - else - { - tree decl; - emit_line_note (input_filename, lineno); - decl = lookup_label ($2); - TREE_USED (decl) = 1; - expand_goto (decl); - } - } + { finish_goto_stmt ($2); } | label_colon stmt { finish_stmt (); } | label_colon '}' @@ -3951,41 +3610,11 @@ function_try_block: try_block: TRY - { - if (processing_template_decl) - { - $$ = build_min_nt (TRY_BLOCK, NULL_TREE, - NULL_TREE); - add_tree ($$); - } - else - { - emit_line_note (input_filename, lineno); - expand_start_try_stmts (); - } - } + { $$ = begin_try_block (); } compstmt - { - if (processing_template_decl) - { - TREE_OPERAND ($2, 0) = TREE_CHAIN ($2); - TREE_CHAIN ($2) = NULL_TREE; - last_tree = $2; - } - else - expand_start_all_catch (); - } + { finish_try_block ($2); } handler_seq - { - if (processing_template_decl) - { - TREE_OPERAND ($2, 1) = TREE_CHAIN ($2); - TREE_CHAIN ($2) = NULL_TREE; - last_tree = $2; - } - else - expand_end_all_catch (); - } + { finish_handler_sequence ($2); } ; handler_seq: @@ -3995,35 +3624,11 @@ handler_seq: handler: CATCH - { - if (processing_template_decl) - { - $$ = build_min_nt (HANDLER, NULL_TREE, - NULL_TREE); - add_tree ($$); - } - } - .pushlevel handler_args - { - if (processing_template_decl) - { - TREE_OPERAND ($2, 0) = TREE_CHAIN ($2); - TREE_CHAIN ($2) = NULL_TREE; - last_tree = $2; - } - } + { $$ = begin_handler(); } + handler_args + { finish_handler_parms ($2); } compstmt - { - if (processing_template_decl) - { - TREE_OPERAND ($2, 1) = TREE_CHAIN ($2); - TREE_CHAIN ($2) = NULL_TREE; - last_tree = $2; - } - else - expand_end_catch_block (); - } - .poplevel + { finish_handler ($2); } ; type_specifier_seq: diff --git a/gcc/cp/pt.c b/gcc/cp/pt.c index 13fd811c785..865893e720e 100644 --- a/gcc/cp/pt.c +++ b/gcc/cp/pt.c @@ -4690,24 +4690,14 @@ tsubst_expr (t, args, in_decl) { case RETURN_STMT: lineno = TREE_COMPLEXITY (t); - emit_line_note (input_filename, lineno); - c_expand_return - (tsubst_expr (TREE_OPERAND (t, 0), args, in_decl)); - finish_stmt (); + finish_return_stmt (tsubst_expr (RETURN_EXPR (t), + args, in_decl)); break; case EXPR_STMT: lineno = TREE_COMPLEXITY (t); - emit_line_note (input_filename, lineno); - t = tsubst_expr (TREE_OPERAND (t, 0), args, in_decl); - /* Do default conversion if safe and possibly important, - in case within ({...}). */ - if ((TREE_CODE (TREE_TYPE (t)) == ARRAY_TYPE && lvalue_p (t)) - || TREE_CODE (TREE_TYPE (t)) == FUNCTION_TYPE) - t = default_conversion (t); - cplus_expand_expr_stmt (t); - clear_momentary (); - finish_stmt (); + finish_expr_stmt (tsubst_expr (EXPR_STMT_EXPR (t), + args, in_decl)); break; case DECL_STMT: @@ -4731,184 +4721,117 @@ tsubst_expr (t, args, in_decl) case FOR_STMT: { tree tmp; - int init_scope = (flag_new_for_scope > 0 && TREE_OPERAND (t, 0) - && TREE_CODE (TREE_OPERAND (t, 0)) == DECL_STMT); - int cond_scope = (TREE_OPERAND (t, 1) - && TREE_CODE (TREE_OPERAND (t, 1)) == DECL_STMT); - lineno = TREE_COMPLEXITY (t); - emit_line_note (input_filename, lineno); - if (init_scope) - do_pushlevel (); - for (tmp = TREE_OPERAND (t, 0); tmp; tmp = TREE_CHAIN (tmp)) + + begin_for_stmt (); + for (tmp = FOR_INIT_STMT (t); tmp; tmp = TREE_CHAIN (tmp)) tsubst_expr (tmp, args, in_decl); - emit_nop (); - emit_line_note (input_filename, lineno); - expand_start_loop_continue_elsewhere (1); - - if (cond_scope) - do_pushlevel (); - tmp = tsubst_expr (TREE_OPERAND (t, 1), args, in_decl); - emit_line_note (input_filename, lineno); - if (tmp) - expand_exit_loop_if_false (0, condition_conversion (tmp)); - - if (! cond_scope) - do_pushlevel (); - tsubst_expr (TREE_OPERAND (t, 3), args, in_decl); - do_poplevel (); - - emit_line_note (input_filename, lineno); - expand_loop_continue_here (); - tmp = tsubst_expr (TREE_OPERAND (t, 2), args, in_decl); - if (tmp) - cplus_expand_expr_stmt (tmp); - - expand_end_loop (); - if (init_scope) - do_poplevel (); - finish_stmt (); + finish_for_init_stmt (NULL_TREE); + finish_for_cond (tsubst_expr (FOR_COND (t), args, + in_decl), + NULL_TREE); + tmp = tsubst_expr (FOR_EXPR (t), args, in_decl); + finish_for_expr (tmp, NULL_TREE); + tsubst_expr (FOR_BODY (t), args, in_decl); + finish_for_stmt (tmp, NULL_TREE); } break; case WHILE_STMT: { - tree cond; - lineno = TREE_COMPLEXITY (t); - emit_nop (); - emit_line_note (input_filename, lineno); - expand_start_loop (1); - - cond = TREE_OPERAND (t, 0); - if (TREE_CODE (cond) == DECL_STMT) - do_pushlevel (); - cond = tsubst_expr (cond, args, in_decl); - emit_line_note (input_filename, lineno); - expand_exit_loop_if_false (0, condition_conversion (cond)); - - if (TREE_CODE (TREE_OPERAND (t, 0)) != DECL_STMT) - do_pushlevel (); - tsubst_expr (TREE_OPERAND (t, 1), args, in_decl); - do_poplevel (); - - expand_end_loop (); - finish_stmt (); + begin_while_stmt (); + finish_while_stmt_cond (tsubst_expr (WHILE_COND (t), + args, in_decl), + NULL_TREE); + tsubst_expr (WHILE_BODY (t), args, in_decl); + finish_while_stmt (NULL_TREE); } break; case DO_STMT: { - tree cond; - lineno = TREE_COMPLEXITY (t); - emit_nop (); - emit_line_note (input_filename, lineno); - expand_start_loop_continue_elsewhere (1); - - tsubst_expr (TREE_OPERAND (t, 0), args, in_decl); - expand_loop_continue_here (); - - cond = tsubst_expr (TREE_OPERAND (t, 1), args, in_decl); - emit_line_note (input_filename, lineno); - expand_exit_loop_if_false (0, condition_conversion (cond)); - expand_end_loop (); - - clear_momentary (); - finish_stmt (); + begin_do_stmt (); + tsubst_expr (DO_BODY (t), args, in_decl); + finish_do_body (NULL_TREE); + finish_do_stmt (tsubst_expr (DO_COND (t), args, + in_decl), + NULL_TREE); } break; case IF_STMT: { tree tmp; - int cond_scope = (TREE_CODE (TREE_OPERAND (t, 0)) == DECL_STMT); lineno = TREE_COMPLEXITY (t); - if (cond_scope) - do_pushlevel (); - tmp = tsubst_expr (TREE_OPERAND (t, 0), args, in_decl); - emit_line_note (input_filename, lineno); - expand_start_cond (condition_conversion (tmp), 0); - - if (tmp = TREE_OPERAND (t, 1), tmp) - tsubst_expr (tmp, args, in_decl); + begin_if_stmt (); + finish_if_stmt_cond (tsubst_expr (IF_COND (t), + args, in_decl), + NULL_TREE); - if (tmp = TREE_OPERAND (t, 2), tmp) + if (tmp = THEN_CLAUSE (t), tmp) { - expand_start_else (); tsubst_expr (tmp, args, in_decl); + finish_then_clause (NULL_TREE); } - expand_end_cond (); + if (tmp = ELSE_CLAUSE (t), tmp) + { + begin_else_clause (); + tsubst_expr (tmp, args, in_decl); + finish_else_clause (NULL_TREE); + } - if (cond_scope) - do_poplevel (); - - finish_stmt (); + finish_if_stmt (); } break; case COMPOUND_STMT: { - tree substmt = TREE_OPERAND (t, 0); + tree substmt; lineno = TREE_COMPLEXITY (t); - - if (COMPOUND_STMT_NO_SCOPE (t) == 0) - do_pushlevel (); - - for (; substmt; substmt = TREE_CHAIN (substmt)) + begin_compound_stmt (COMPOUND_STMT_NO_SCOPE (t)); + for (substmt = COMPOUND_BODY (t); + substmt != NULL_TREE; + substmt = TREE_CHAIN (substmt)) tsubst_expr (substmt, args, in_decl); - - if (COMPOUND_STMT_NO_SCOPE (t) == 0) - return do_poplevel (); + return finish_compound_stmt (COMPOUND_STMT_NO_SCOPE (t), + NULL_TREE); } break; case BREAK_STMT: lineno = TREE_COMPLEXITY (t); - emit_line_note (input_filename, lineno); - if (! expand_exit_something ()) - error ("break statement not within loop or switch"); + finish_break_stmt (); break; case CONTINUE_STMT: lineno = TREE_COMPLEXITY (t); - emit_line_note (input_filename, lineno); - if (! expand_continue_loop (0)) - error ("continue statement not within a loop"); + finish_continue_stmt (); break; case SWITCH_STMT: { tree val, tmp; - int cond_scope = (TREE_CODE (TREE_OPERAND (t, 0)) == DECL_STMT); lineno = TREE_COMPLEXITY (t); - if (cond_scope) - do_pushlevel (); - val = tsubst_expr (TREE_OPERAND (t, 0), args, in_decl); - emit_line_note (input_filename, lineno); - c_expand_start_case (val); - push_switch (); + begin_switch_stmt (); + val = tsubst_expr (SWITCH_COND (t), args, in_decl); + finish_switch_cond (val); if (tmp = TREE_OPERAND (t, 1), tmp) tsubst_expr (tmp, args, in_decl); - expand_end_case (val); - pop_switch (); - - if (cond_scope) - do_poplevel (); - - finish_stmt (); + finish_switch_stmt (val, NULL_TREE); } break; case CASE_LABEL: - do_case (tsubst_expr (TREE_OPERAND (t, 0), args, in_decl), - tsubst_expr (TREE_OPERAND (t, 1), args, in_decl)); + finish_case_label (tsubst_expr (CASE_LOW (t), args, in_decl), + tsubst_expr (CASE_HIGH (t), args, in_decl)); break; case LABEL_DECL: @@ -4920,47 +4843,47 @@ tsubst_expr (t, args, in_decl) case GOTO_STMT: lineno = TREE_COMPLEXITY (t); - emit_line_note (input_filename, lineno); - if (TREE_CODE (TREE_OPERAND (t, 0)) == IDENTIFIER_NODE) - { - tree decl = lookup_label (TREE_OPERAND (t, 0)); - TREE_USED (decl) = 1; - expand_goto (decl); - } - else - expand_computed_goto - (tsubst_expr (TREE_OPERAND (t, 0), args, in_decl)); + finish_goto_stmt (tsubst_expr (GOTO_DESTINATION (t), + args, in_decl)); + break; + + case ASM_STMT: + lineno = TREE_COMPLEXITY (t); + finish_asm_stmt (tsubst_expr (ASM_CV_QUAL (t), args, in_decl), + tsubst_expr (ASM_STRING (t), args, in_decl), + tsubst_expr (ASM_OUTPUTS (t), args, in_decl), + tsubst_expr (ASM_INPUTS (t), args, in_decl), + tsubst_expr (ASM_CLOBBERS (t), args, in_decl)); break; case TRY_BLOCK: lineno = TREE_COMPLEXITY (t); - emit_line_note (input_filename, lineno); - expand_start_try_stmts (); - tsubst_expr (TREE_OPERAND (t, 0), args, in_decl); - expand_start_all_catch (); + begin_try_block (); + tsubst_expr (TRY_STMTS (t), args, in_decl); + finish_try_block (NULL_TREE); { - tree handler = TREE_OPERAND (t, 1); + tree handler = TRY_HANDLERS (t); for (; handler; handler = TREE_CHAIN (handler)) tsubst_expr (handler, args, in_decl); } - expand_end_all_catch (); + finish_handler_sequence (NULL_TREE); break; case HANDLER: lineno = TREE_COMPLEXITY (t); - do_pushlevel (); - if (TREE_OPERAND (t, 0)) + begin_handler (); + if (HANDLER_PARMS (t)) { - tree d = TREE_OPERAND (t, 0); + tree d = HANDLER_PARMS (t); expand_start_catch_block (tsubst (TREE_OPERAND (d, 1), args, in_decl), tsubst (TREE_OPERAND (d, 0), args, in_decl)); } else expand_start_catch_block (NULL_TREE, NULL_TREE); - tsubst_expr (TREE_OPERAND (t, 1), args, in_decl); - expand_end_catch_block (); - do_poplevel (); + finish_handler_parms (NULL_TREE); + tsubst_expr (HANDLER_BODY (t), args, in_decl); + finish_handler (NULL_TREE); break; case TAG_DEFN: diff --git a/gcc/cp/semantics.c b/gcc/cp/semantics.c new file mode 100644 index 00000000000..f3022466955 --- /dev/null +++ b/gcc/cp/semantics.c @@ -0,0 +1,748 @@ +/* Perform the semantic phase of parsing, i.e., the process of + building tree structure, checking semantic consistency, and + building RTL. These routines are used both during actual parsing + and during the instantiation of template functions. + + Copyright (C) 1998 Free Software Foundation, Inc. + Written by Mark Mitchell (mmitchell@usa.net) based on code found + formerly in parse.y and pt.c. + + This file is part of GNU CC. + + GNU CC is free software; you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2, or (at your option) + any later version. + + GNU CC is distributed in the hope that it will be useful, but + WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + General Public License for more details. + + You should have received a copy of the GNU General Public License + along with GNU CC; see the file COPYING. If not, write to the Free + Software Foundation, 59 Temple Place - Suite 330, Boston, MA + 02111-1307, USA. */ + +#include "config.h" +#include +#include "tree.h" +#include "cp-tree.h" +#include "except.h" +#include "lex.h" + +/* There routines provide a modular interface to perform many parsing + operations. They may therefore be used during actual parsing, or + during template instantiation, which may be regarded as a + degenerate form of parsing. Since the current g++ parser is + lacking in several respects, and will be reimplemented, we are + attempting to move most code that is not directly related to + parsing into this file; that will make implementing the new parser + much easier since it will be able to make use of these routines. */ + +/* When parsing a template, LAST_TREE contains the last statement + parsed. These are chained together through the TREE_CHAIN field, + but often need to be re-organized since the parse is performed + bottom-up. This macro makes LAST_TREE the indicated SUBSTMT of + STMT. */ + +#define RECHAIN_STMTS(stmt, substmt, last) \ + do { \ + substmt = last; \ + TREE_CHAIN (stmt) = NULL_TREE; \ + last_tree = stmt; \ + } while (0) + +#define RECHAIN_STMTS_FROM_LAST(stmt, substmt) \ + RECHAIN_STMTS (stmt, substmt, last_tree) + +#define RECHAIN_STMTS_FROM_CHAIN(stmt, substmt) \ + RECHAIN_STMTS (stmt, substmt, TREE_CHAIN (stmt)) + +/* Finish an expression-statement, whose EXPRESSION is as indicated. */ + +void +finish_expr_stmt (expr) + tree expr; +{ + if (!processing_template_decl) + { + emit_line_note (input_filename, lineno); + /* Do default conversion if safe and possibly important, + in case within ({...}). */ + if ((TREE_CODE (TREE_TYPE (expr)) == ARRAY_TYPE + && lvalue_p (expr)) + || TREE_CODE (TREE_TYPE (expr)) == FUNCTION_TYPE) + expr = default_conversion (expr); + } + + cplus_expand_expr_stmt (expr); + clear_momentary (); + finish_stmt (); +} + +/* Begin an if-statement. Returns a newly created IF_STMT if + appropriate. */ + +tree +begin_if_stmt () +{ + tree r; + + if (processing_template_decl) + { + r = build_min_nt (IF_STMT, NULL_TREE, NULL_TREE, NULL_TREE); + add_tree (r); + } + else + r = NULL_TREE; + + do_pushlevel (); + + return r; +} + +/* Process the COND of an if-statement, which may be given by + IF_STMT. */ + +void +finish_if_stmt_cond (cond, if_stmt) + tree cond; + tree if_stmt; +{ + if (processing_template_decl) + { + if (last_tree != if_stmt) + RECHAIN_STMTS_FROM_LAST (if_stmt, IF_COND (if_stmt)); + else + IF_COND (if_stmt) = cond; + } + else + { + emit_line_note (input_filename, lineno); + expand_start_cond (condition_conversion (cond), 0); + } +} + +/* Finish the then-clause of an if-statement, which may be given by + IF_STMT. */ + +tree +finish_then_clause (if_stmt) + tree if_stmt; +{ + if (processing_template_decl) + { + RECHAIN_STMTS_FROM_CHAIN (if_stmt, + THEN_CLAUSE (if_stmt)); + last_tree = if_stmt; + return if_stmt; + } + else + return NULL_TREE; +} + +/* Begin the else-clause of an if-statement. */ + +void +begin_else_clause () +{ + if (!processing_template_decl) + expand_start_else (); +} + +/* Finish the else-clause of an if-statement, which may be given by + IF_STMT. */ + +void +finish_else_clause (if_stmt) + tree if_stmt; +{ + if (processing_template_decl) + RECHAIN_STMTS_FROM_CHAIN (if_stmt, ELSE_CLAUSE (if_stmt)); +} + +/* Finsh an if-statement. */ + +void +finish_if_stmt () +{ + if (!processing_template_decl) + expand_end_cond (); + + do_poplevel (); + finish_stmt (); +} + +/* Begin a while-statement. Returns a newly created WHILE_STMT if + appropriate. */ + +tree +begin_while_stmt () +{ + tree r; + + if (processing_template_decl) + { + r = build_min_nt (WHILE_STMT, NULL_TREE, NULL_TREE); + add_tree (r); + } + else + { + emit_nop (); + emit_line_note (input_filename, lineno); + expand_start_loop (1); + r = NULL_TREE; + } + + do_pushlevel (); + + return r; +} + +/* Process the COND of an if-statement, which may be given by + WHILE_STMT. */ + +void +finish_while_stmt_cond (cond, while_stmt) + tree cond; + tree while_stmt; +{ + if (processing_template_decl) + { + if (last_tree != while_stmt) + RECHAIN_STMTS_FROM_LAST (while_stmt, + WHILE_COND (while_stmt)); + else + TREE_OPERAND (while_stmt, 0) = cond; + } + else + { + emit_line_note (input_filename, lineno); + expand_exit_loop_if_false (0, condition_conversion (cond)); + } + + /* If COND wasn't a declaration, clear out the + block we made for it and start a new one here so the + optimization in expand_end_loop will work. */ + if (getdecls () == NULL_TREE) + { + do_poplevel (); + do_pushlevel (); + } +} + +/* Finish a while-statement, which may be given by WHILE_STMT. */ + +void +finish_while_stmt (while_stmt) + tree while_stmt; +{ + do_poplevel (); + + if (processing_template_decl) + RECHAIN_STMTS_FROM_CHAIN (while_stmt, WHILE_BODY (while_stmt)); + else + expand_end_loop (); + finish_stmt (); +} + +/* Begin a do-statement. Returns a newly created DO_STMT if + appropriate. */ + +tree +begin_do_stmt () +{ + if (processing_template_decl) + { + tree r = build_min_nt (DO_STMT, NULL_TREE, NULL_TREE); + add_tree (r); + return r; + } + else + { + emit_nop (); + emit_line_note (input_filename, lineno); + expand_start_loop_continue_elsewhere (1); + return NULL_TREE; + } +} + +/* Finish the body of a do-statement, which may be given by DO_STMT. */ + +void +finish_do_body (do_stmt) + tree do_stmt; +{ + if (processing_template_decl) + RECHAIN_STMTS_FROM_CHAIN (do_stmt, DO_BODY (do_stmt)); + else + expand_loop_continue_here (); +} + +/* Finish a do-statement, which may be given by DO_STMT, and whose + COND is as indicated. */ + +void +finish_do_stmt (cond, do_stmt) + tree cond; + tree do_stmt; +{ + if (processing_template_decl) + DO_COND (do_stmt) = cond; + else + { + emit_line_note (input_filename, lineno); + expand_exit_loop_if_false (0, condition_conversion (cond)); + expand_end_loop (); + } + + clear_momentary (); + finish_stmt (); +} + +/* Finish a return-statement. The EXPRESSION returned, if any, is as + indicated. */ + +void +finish_return_stmt (expr) + tree expr; +{ + emit_line_note (input_filename, lineno); + c_expand_return (expr); + finish_stmt (); +} + +/* Begin a for-statement. Returns a new FOR_STMT if appropriate. */ + +tree +begin_for_stmt () +{ + tree r; + + if (processing_template_decl) + { + r = build_min_nt (FOR_STMT, NULL_TREE, NULL_TREE, + NULL_TREE, NULL_TREE); + add_tree (r); + } + else + r = NULL_TREE; + + if (flag_new_for_scope > 0) + { + do_pushlevel (); + note_level_for_for (); + } + + return r; +} + +/* Finish the for-init-statement of a for-statement, which may be + given by FOR_STMT. */ + +void +finish_for_init_stmt (for_stmt) + tree for_stmt; +{ + if (processing_template_decl) + { + if (last_tree != for_stmt) + RECHAIN_STMTS_FROM_CHAIN (for_stmt, FOR_INIT_STMT (for_stmt)); + } + else + { + emit_nop (); + emit_line_note (input_filename, lineno); + expand_start_loop_continue_elsewhere (1); + } + + do_pushlevel (); +} + +/* Finish the COND of a for-statement, which may be given by + FOR_STMT. */ + +void +finish_for_cond (cond, for_stmt) + tree cond; + tree for_stmt; +{ + if (processing_template_decl) + { + if (last_tree != for_stmt) + RECHAIN_STMTS_FROM_LAST (for_stmt, FOR_COND (for_stmt)); + else + FOR_COND (for_stmt) = cond; + } + else + { + emit_line_note (input_filename, lineno); + if (cond) + expand_exit_loop_if_false (0, cond); + } + + /* If the cond wasn't a declaration, clear out the + block we made for it and start a new one here so the + optimization in expand_end_loop will work. */ + if (getdecls () == NULL_TREE) + { + do_poplevel (); + do_pushlevel (); + } +} + +/* Finish the increment-EXPRESSION in a for-statement, which may be + given by FOR_STMT. */ + +void +finish_for_expr (expr, for_stmt) + tree expr; + tree for_stmt; +{ + if (processing_template_decl) + FOR_EXPR (for_stmt) = expr; + + /* Don't let the tree nodes for EXPR be discarded + by clear_momentary during the parsing of the next stmt. */ + push_momentary (); +} + +/* Finish the body of a for-statement, which may be given by + FOR_STMT. The increment-EXPR for the loop must be + provided. */ + +void +finish_for_stmt (expr, for_stmt) + tree expr; + tree for_stmt; +{ + /* Pop the scope for the body of the loop. */ + do_poplevel (); + + if (processing_template_decl) + RECHAIN_STMTS_FROM_CHAIN (for_stmt, FOR_BODY (for_stmt)); + else + { + emit_line_note (input_filename, lineno); + expand_loop_continue_here (); + if (expr) + cplus_expand_expr_stmt (expr); + expand_end_loop (); + } + + pop_momentary (); + + if (flag_new_for_scope > 0) + do_poplevel (); + + finish_stmt (); +} + +/* Finish a break-statement. */ + +void +finish_break_stmt () +{ + emit_line_note (input_filename, lineno); + if (processing_template_decl) + add_tree (build_min_nt (BREAK_STMT)); + else if ( ! expand_exit_something ()) + cp_error ("break statement not within loop or switch"); +} + +/* Finish a continue-statement. */ + +void +finish_continue_stmt () +{ + emit_line_note (input_filename, lineno); + if (processing_template_decl) + add_tree (build_min_nt (CONTINUE_STMT)); + else if (! expand_continue_loop (0)) + cp_error ("continue statement not within a loop"); +} + +/* Begin a switch-statement. */ + +void +begin_switch_stmt () +{ + do_pushlevel (); +} + +/* Finish the cond of a switch-statement. Returns a new + SWITCH_STMT if appropriate. */ + +tree +finish_switch_cond (cond) + tree cond; +{ + tree r; + + if (processing_template_decl) + { + r = build_min_nt (SWITCH_STMT, cond, NULL_TREE); + add_tree (r); + } + else + { + emit_line_note (input_filename, lineno); + c_expand_start_case (cond); + r = NULL_TREE; + } + push_switch (); + + /* Don't let the tree nodes for COND be discarded by + clear_momentary during the parsing of the next stmt. */ + push_momentary (); + + return r; +} + +/* Finish the body of a switch-statement, which may be given by + SWITCH_STMT. The COND to switch on is indicated. */ + +void +finish_switch_stmt (cond, switch_stmt) + tree cond; + tree switch_stmt; +{ + if (processing_template_decl) + RECHAIN_STMTS_FROM_CHAIN (switch_stmt, SWITCH_BODY (switch_stmt)); + else + expand_end_case (cond); + pop_momentary (); + pop_switch (); + do_poplevel (); + finish_stmt (); +} + +/* Finish a case-label. */ + +void +finish_case_label (low_value, high_value) + tree low_value; + tree high_value; +{ + do_case (low_value, high_value); +} + + +/* Finish a goto-statement. */ + +void +finish_goto_stmt (destination) + tree destination; +{ + if (processing_template_decl) + add_tree (build_min_nt (GOTO_STMT, destination)); + else + { + emit_line_note (input_filename, lineno); + + if (TREE_CODE (destination) == IDENTIFIER_NODE) + { + tree decl = lookup_label (destination); + TREE_USED (decl) = 1; + expand_goto (decl); + } + else + expand_computed_goto (destination); + } +} + +/* Begin a try-block. Returns a newly-created TRY_BLOCK if + appropriate. */ + +tree +begin_try_block () +{ + if (processing_template_decl) + { + tree r = build_min_nt (TRY_BLOCK, NULL_TREE, + NULL_TREE); + add_tree (r); + return r; + } + else + { + emit_line_note (input_filename, lineno); + expand_start_try_stmts (); + return NULL_TREE; + } +} + +/* Finish a try-block, which may be given by TRY_BLOCK. */ + +void +finish_try_block (try_block) + tree try_block; +{ + if (processing_template_decl) + RECHAIN_STMTS_FROM_LAST (try_block, TRY_STMTS (try_block)); + else + expand_start_all_catch (); +} + +/* Finish a handler-sequence for a try-block, which may be given by + TRY_BLOCK. */ + +void +finish_handler_sequence (try_block) + tree try_block; +{ + if (processing_template_decl) + RECHAIN_STMTS_FROM_CHAIN (try_block, TRY_HANDLERS (try_block)); + else + expand_end_all_catch (); +} + +/* Begin a handler. Returns a HANDLER if appropriate. */ + +tree +begin_handler () +{ + tree r; + + if (processing_template_decl) + { + r = build_min_nt (HANDLER, NULL_TREE, NULL_TREE); + add_tree (r); + } + else + r = NULL_TREE; + + do_pushlevel (); + + return r; +} + +/* Finish the handler-parameters for a handler, which may be given by + HANDLER. */ + +void +finish_handler_parms (handler) + tree handler; +{ + if (processing_template_decl) + RECHAIN_STMTS_FROM_CHAIN (handler, HANDLER_PARMS (handler)); +} + +/* Finish a handler, which may be given by HANDLER. */ + +void +finish_handler (handler) + tree handler; +{ + if (processing_template_decl) + RECHAIN_STMTS_FROM_CHAIN (handler, HANDLER_BODY (handler)); + else + expand_end_catch_block (); + + do_poplevel (); +} + +/* Begin a compound-statement. If HAS_NO_SCOPE is non-zero, the + compound-statement does not define a scope. Returns a new + COMPOUND_STMT if appropriate. */ + +tree +begin_compound_stmt (has_no_scope) + int has_no_scope; +{ + tree r; + + if (processing_template_decl) + { + r = build_min_nt (COMPOUND_STMT, NULL_TREE); + add_tree (r); + if (has_no_scope) + COMPOUND_STMT_NO_SCOPE (r) = 1; + } + else + r = NULL_TREE; + + if (!has_no_scope) + do_pushlevel (); + + return r; +} + + +/* Finish a compound-statement, which may be given by COMPOUND_STMT. + If HAS_NO_SCOPE is non-zero, the compound statement does not define + a scope. */ + +tree +finish_compound_stmt (has_no_scope, compound_stmt) + int has_no_scope; + tree compound_stmt; +{ + tree r; + + if (!has_no_scope) + r = do_poplevel (); + else + r = NULL_TREE; + + if (processing_template_decl) + RECHAIN_STMTS_FROM_CHAIN (compound_stmt, + COMPOUND_BODY (compound_stmt)); + + finish_stmt (); + + return r; +} + +/* Finish an asm-statement, whose components are a CV_QUALIFIER, a + STRING, some OUTPUT_OPERANDS, some INPUT_OPERANDS, and some + CLOBBERS. */ + +void +finish_asm_stmt (cv_qualifier, string, output_operands, + input_operands, clobbers) + tree cv_qualifier; + tree string; + tree output_operands; + tree input_operands; + tree clobbers; +{ + if (TREE_CHAIN (string)) + combine_strings (string); + + if (processing_template_decl) + { + tree r = build_min_nt (ASM_STMT, cv_qualifier, string, + output_operands, input_operands, + clobbers); + add_tree (r); + } + else + { + emit_line_note (input_filename, lineno); + if (output_operands != NULL_TREE) + { + if (cv_qualifier != NULL_TREE + && cv_qualifier != ridpointers[(int) RID_VOLATILE]) + cp_warning ("%s qualifier ignored on asm", + IDENTIFIER_POINTER (cv_qualifier)); + + c_expand_asm_operands (string, output_operands, + input_operands, + clobbers, + cv_qualifier + == ridpointers[(int) RID_VOLATILE], + input_filename, lineno); + } + else + { + if (cv_qualifier != NULL_TREE) + cp_warning ("%s qualifier ignored on asm", + IDENTIFIER_POINTER (cv_qualifier)); + expand_asm (string); + } + + finish_stmt (); + } +}