--- embedaddon/sudo/plugins/sudoers/toke.c 2012/05/29 12:26:49 1.1.1.2 +++ embedaddon/sudo/plugins/sudoers/toke.c 2014/06/15 16:12:54 1.1.1.5 @@ -1,10 +1,27 @@ #include -/* $OpenBSD: flex.skl,v 1.11 2010/08/04 18:24:50 millert Exp $ */ +#define yy_create_buffer sudoers_create_buffer +#define yy_delete_buffer sudoers_delete_buffer +#define yy_scan_buffer sudoers_scan_buffer +#define yy_scan_string sudoers_scan_string +#define yy_scan_bytes sudoers_scan_bytes +#define yy_flex_debug sudoers_flex_debug +#define yy_init_buffer sudoers_init_buffer +#define yy_flush_buffer sudoers_flush_buffer +#define yy_load_buffer_state sudoers_load_buffer_state +#define yy_switch_to_buffer sudoers_switch_to_buffer +#define yyin sudoersin +#define yyleng sudoersleng +#define yylex sudoerslex +#define yyout sudoersout +#define yyrestart sudoersrestart +#define yytext sudoerstext +/* $OpenBSD: flex.skl,v 1.12 2013/11/04 17:03:32 millert Exp $ */ + /* A lexical scanner generated by flex */ /* Scanner skeleton version: - * $Header: /usr/local/www/users/anoncvs/cvs/embedaddon/sudo/plugins/sudoers/toke.c,v 1.1.1.2 2012/05/29 12:26:49 misho Exp $ + * $Header: /usr/local/www/users/anoncvs/cvs/embedaddon/sudo/plugins/sudoers/toke.c,v 1.1.1.5 2014/06/15 16:12:54 misho Exp $ */ #define FLEX_SCANNER @@ -131,7 +148,7 @@ extern FILE *yyin, *yyout; /* Undo effects of setting up yytext. */ \ *yy_cp = yy_hold_char; \ YY_RESTORE_YY_MORE_OFFSET \ - yy_c_buf_p = yy_cp = yy_bp + n - YY_MORE_ADJ; \ + yy_cp = yy_bp + n - YY_MORE_ADJ; \ YY_DO_BEFORE_ACTION; /* set up yytext again */ \ } \ while ( 0 ) @@ -289,77 +306,100 @@ static void yy_fatal_error YY_PROTO(( yyconst char msg *yy_cp = '\0'; \ yy_c_buf_p = yy_cp; -#define YY_NUM_RULES 59 -#define YY_END_OF_BUFFER 60 -static yyconst short int yy_accept[607] = +#define YY_NUM_RULES 67 +#define YY_END_OF_BUFFER 68 +static yyconst short int yy_accept[814] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 60, 47, 55, 54, 53, 46, 58, 32, - 48, 49, 32, 50, 47, 47, 47, 47, 52, 51, - 58, 42, 42, 42, 42, 42, 42, 42, 42, 42, - 42, 58, 47, 47, 55, 58, 42, 42, 42, 42, - 42, 2, 58, 1, 47, 47, 17, 16, 17, 16, - 16, 58, 58, 58, 3, 9, 8, 9, 4, 9, - 5, 58, 13, 13, 13, 11, 12, 47, 0, 55, - 53, 0, 57, 0, 47, 34, 0, 32, 0, 33, - 0, 45, 45, 0, 47, 47, 0, 47, 47, 47, + 0, 0, 0, 0, 68, 55, 63, 62, 61, 54, + 65, 34, 56, 57, 34, 58, 55, 55, 55, 55, + 60, 59, 66, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 66, 55, 55, 63, 65, 46, 46, + 46, 46, 46, 2, 66, 1, 55, 46, 46, 55, + 17, 16, 17, 16, 16, 66, 65, 66, 3, 9, + 8, 9, 4, 9, 5, 66, 13, 13, 13, 11, + 12, 66, 19, 19, 18, 18, 18, 19, 18, 18, + 18, 19, 19, 19, 19, 19, 18, 19, 19, 55, - 47, 0, 37, 42, 42, 42, 42, 42, 42, 42, - 42, 42, 42, 47, 56, 47, 55, 0, 0, 0, - 0, 0, 0, 47, 47, 47, 47, 47, 2, 1, - 0, 1, 43, 43, 0, 47, 17, 17, 15, 14, - 15, 0, 0, 3, 9, 0, 6, 7, 9, 9, - 13, 0, 13, 13, 0, 10, 0, 0, 0, 34, - 34, 0, 0, 47, 47, 47, 47, 47, 0, 0, - 37, 37, 42, 39, 42, 42, 42, 42, 42, 42, - 42, 42, 42, 42, 47, 0, 0, 0, 0, 0, - 0, 47, 47, 47, 47, 47, 0, 47, 10, 0, + 0, 63, 61, 65, 65, 0, 55, 36, 0, 34, + 0, 35, 0, 53, 53, 0, 55, 55, 0, 55, + 55, 55, 55, 0, 39, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 55, 64, 55, + 55, 63, 0, 0, 0, 0, 0, 65, 55, 55, + 55, 55, 55, 2, 1, 0, 1, 47, 47, 0, + 55, 17, 17, 15, 14, 15, 0, 0, 3, 9, + 0, 6, 7, 9, 9, 13, 0, 13, 13, 0, + 10, 36, 0, 0, 35, 19, 19, 0, 19, 0, + 0, 18, 18, 18, 18, 18, 18, 19, 19, 46, - 47, 47, 47, 47, 47, 47, 0, 38, 38, 38, - 0, 0, 37, 37, 37, 37, 37, 37, 37, 42, - 42, 42, 42, 42, 42, 42, 42, 40, 42, 41, - 47, 0, 0, 0, 0, 0, 0, 47, 47, 47, - 47, 47, 47, 47, 0, 0, 38, 38, 38, 0, - 37, 37, 0, 37, 37, 37, 37, 37, 37, 37, - 37, 37, 37, 37, 0, 25, 42, 42, 42, 42, - 42, 42, 42, 42, 47, 0, 0, 0, 0, 47, - 47, 47, 47, 47, 47, 47, 47, 0, 38, 0, - 37, 37, 37, 0, 0, 0, 37, 37, 37, 37, + 19, 19, 19, 19, 19, 19, 19, 65, 65, 0, + 36, 55, 55, 55, 55, 55, 0, 0, 39, 39, + 46, 41, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 55, 55, 0, 0, 0, 0, + 0, 65, 55, 55, 55, 55, 55, 0, 55, 10, + 0, 0, 0, 18, 18, 18, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 65, 55, 55, + 55, 55, 55, 55, 0, 40, 40, 40, 0, 0, + 39, 39, 39, 39, 39, 39, 39, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 42, 46, 43, - 37, 37, 37, 37, 37, 37, 37, 37, 37, 42, - 42, 42, 42, 42, 42, 42, 42, 47, 0, 0, - 0, 47, 47, 47, 35, 35, 35, 0, 0, 37, - 37, 37, 37, 37, 37, 37, 0, 0, 0, 0, - 0, 37, 37, 37, 37, 37, 37, 37, 37, 37, - 37, 37, 37, 37, 37, 42, 42, 0, 24, 42, - 42, 42, 42, 0, 23, 0, 26, 47, 0, 0, - 0, 47, 47, 47, 47, 35, 35, 35, 35, 0, - 37, 0, 37, 37, 37, 37, 37, 37, 37, 37, - 37, 37, 37, 0, 0, 0, 37, 37, 37, 37, + 55, 55, 55, 55, 0, 0, 0, 0, 0, 65, + 55, 55, 55, 55, 0, 0, 0, 0, 0, 18, + 18, 19, 46, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 55, 55, 55, 0, 0, 40, 40, + 40, 0, 39, 39, 0, 39, 39, 39, 39, 39, + 39, 39, 39, 39, 39, 39, 0, 27, 46, 46, + 46, 46, 46, 46, 46, 46, 44, 46, 55, 55, + 55, 55, 55, 0, 0, 0, 65, 55, 55, 55, + 0, 0, 0, 18, 18, 46, 46, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 55, 55, - 37, 37, 37, 37, 37, 37, 37, 37, 37, 42, - 42, 42, 42, 42, 42, 44, 0, 0, 0, 47, - 20, 43, 36, 36, 36, 36, 37, 0, 0, 0, - 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, - 37, 37, 37, 0, 0, 0, 0, 0, 37, 37, - 37, 37, 37, 37, 37, 37, 42, 42, 42, 42, - 0, 22, 0, 27, 0, 20, 0, 0, 47, 0, - 47, 47, 47, 36, 36, 36, 36, 0, 0, 0, - 0, 0, 37, 37, 37, 37, 37, 37, 37, 37, - 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, + 55, 55, 55, 0, 40, 0, 39, 39, 39, 0, + 0, 0, 39, 39, 39, 39, 39, 39, 39, 39, + 39, 39, 39, 39, 39, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 48, 49, 50, 51, 55, 0, + 0, 65, 55, 55, 55, 0, 0, 0, 0, 0, + 46, 46, 19, 46, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 37, 37, 37, 0, 0, 39, 39, + 39, 39, 39, 39, 39, 0, 0, 0, 0, 0, + 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, + 39, 39, 39, 39, 46, 46, 46, 0, 26, 46, - 37, 37, 0, 30, 42, 42, 42, 0, 0, 0, - 18, 0, 21, 20, 0, 0, 0, 0, 0, 20, - 0, 47, 47, 47, 0, 0, 0, 37, 37, 37, - 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, - 37, 37, 37, 37, 37, 0, 28, 42, 42, 21, - 0, 0, 20, 47, 47, 47, 47, 47, 0, 0, - 0, 0, 0, 37, 37, 37, 37, 37, 37, 37, - 37, 0, 31, 42, 0, 47, 47, 47, 37, 37, - 37, 37, 37, 37, 0, 29, 0, 0, 19, 47, - 47, 47, 47, 47, 37, 37, 37, 37, 37, 35, + 46, 46, 46, 0, 25, 0, 28, 55, 0, 0, + 65, 55, 55, 55, 37, 37, 37, 46, 46, 46, + 46, 19, 19, 19, 55, 37, 37, 37, 37, 0, + 39, 0, 39, 39, 39, 39, 39, 39, 39, 39, + 39, 39, 39, 0, 0, 0, 39, 39, 39, 39, + 39, 39, 39, 39, 39, 39, 39, 39, 39, 46, + 46, 46, 46, 46, 46, 46, 52, 0, 0, 65, + 55, 22, 47, 0, 37, 37, 37, 37, 46, 46, + 46, 46, 19, 19, 19, 38, 38, 38, 38, 39, + 0, 0, 0, 39, 39, 39, 39, 39, 39, 39, - 35, 35, 35, 35, 35, 0 + 39, 39, 39, 39, 39, 39, 0, 0, 0, 0, + 0, 39, 39, 39, 39, 39, 39, 39, 39, 46, + 46, 46, 46, 46, 0, 24, 0, 29, 0, 22, + 65, 65, 55, 0, 55, 38, 38, 38, 38, 46, + 46, 46, 46, 55, 55, 38, 38, 38, 38, 0, + 0, 0, 0, 0, 39, 39, 39, 39, 39, 39, + 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, + 39, 39, 39, 39, 45, 0, 32, 46, 46, 46, + 0, 65, 65, 20, 65, 23, 22, 0, 0, 0, + 0, 0, 22, 0, 0, 0, 38, 38, 38, 38, + + 46, 46, 46, 55, 55, 55, 0, 0, 0, 39, + 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, + 39, 39, 39, 39, 39, 39, 39, 0, 30, 46, + 46, 23, 65, 0, 22, 0, 0, 0, 46, 46, + 55, 55, 55, 55, 55, 0, 0, 0, 0, 0, + 39, 39, 39, 39, 39, 39, 39, 39, 0, 33, + 46, 65, 0, 0, 0, 0, 0, 46, 55, 55, + 55, 39, 39, 39, 39, 39, 39, 0, 31, 65, + 65, 21, 0, 0, 0, 55, 55, 55, 55, 55, + 39, 39, 39, 39, 39, 0, 0, 0, 0, 0, + + 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, + 37, 37, 0 } ; static yyconst int yy_ec[256] = @@ -369,15 +409,15 @@ static yyconst int yy_ec[256] = 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 4, 5, 6, 1, 7, 1, 1, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, - 19, 20, 21, 22, 22, 22, 23, 24, 1, 1, - 25, 26, 10, 27, 28, 29, 30, 31, 32, 29, - 33, 34, 35, 36, 36, 37, 36, 38, 39, 40, - 36, 41, 42, 43, 44, 45, 46, 47, 48, 36, - 10, 49, 10, 1, 50, 1, 51, 52, 53, 54, + 19, 20, 21, 22, 23, 24, 25, 26, 1, 1, + 27, 28, 10, 29, 30, 31, 32, 33, 34, 31, + 35, 36, 37, 38, 38, 39, 40, 41, 42, 43, + 38, 44, 45, 46, 47, 48, 49, 50, 51, 38, + 10, 52, 10, 1, 53, 1, 54, 55, 56, 57, - 55, 56, 57, 57, 58, 57, 57, 59, 60, 61, - 62, 57, 57, 63, 64, 65, 66, 57, 57, 57, - 57, 57, 1, 1, 1, 1, 1, 1, 1, 1, + 58, 59, 60, 61, 62, 60, 60, 63, 64, 65, + 66, 60, 60, 67, 68, 69, 70, 60, 60, 60, + 60, 60, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, @@ -394,587 +434,858 @@ static yyconst int yy_ec[256] = 1, 1, 1, 1, 1 } ; -static yyconst int yy_meta[67] = +static yyconst int yy_meta[71] = { 0, 1, 2, 3, 4, 5, 6, 1, 7, 7, 1, - 1, 8, 1, 9, 10, 11, 11, 11, 11, 11, - 11, 11, 11, 12, 13, 7, 1, 11, 11, 11, - 11, 11, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 14, 15, - 16, 16, 16, 16, 16, 16, 15, 15, 15, 15, - 15, 15, 15, 15, 15, 15 + 8, 9, 10, 11, 12, 13, 13, 13, 13, 13, + 13, 13, 13, 13, 13, 14, 15, 7, 1, 16, + 16, 16, 16, 16, 17, 17, 17, 17, 17, 17, + 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, + 17, 18, 19, 20, 20, 20, 20, 20, 20, 21, + 21, 21, 21, 21, 21, 21, 21, 21, 21, 21 } ; -static yyconst short int yy_base[671] = +static yyconst short int yy_base[931] = { 0, - 0, 65, 67, 72, 99, 114, 162, 227, 292, 340, - 86, 125, 2840, 2790, 2836, 3665, 2833, 3665, 387, 70, - 3665, 3665, 2771, 3665, 136, 397, 133, 159, 2795, 3665, - 3665, 453, 2781, 33, 504, 2770, 2767, 2777, 2765, 2771, - 2754, 559, 170, 19, 165, 583, 38, 49, 2739, 68, - 2727, 81, 219, 2771, 305, 48, 0, 3665, 2761, 3665, - 0, 250, 639, 119, 0, 2709, 3665, 108, 3665, 112, - 3665, 140, 2699, 98, 121, 3665, 195, 2693, 661, 2739, - 2736, 2736, 3665, 227, 247, 300, 316, 152, 354, 2681, - 686, 373, 2670, 711, 352, 722, 2692, 2669, 375, 414, + 0, 69, 71, 79, 94, 124, 175, 244, 153, 197, + 85, 130, 314, 0, 4514, 4461, 4510, 5604, 4507, 5604, + 382, 86, 5604, 5604, 4458, 5604, 140, 394, 195, 153, + 4483, 5604, 5604, 453, 4383, 43, 508, 37, 4379, 65, + 4378, 4385, 4367, 566, 581, 91, 151, 604, 39, 41, + 4351, 34, 4348, 117, 4402, 4412, 428, 4371, 4382, 136, + 0, 5604, 4407, 5604, 0, 606, 664, 105, 0, 4358, + 5604, 115, 5604, 133, 5604, 138, 4357, 152, 171, 5604, + 188, 383, 641, 694, 737, 235, 245, 794, 843, 4369, + 157, 898, 4365, 4364, 4375, 4370, 944, 0, 206, 4351, - 302, 2656, 57, 763, 0, 2628, 2625, 2614, 505, 2602, - 2606, 2599, 2601, 202, 3665, 153, 546, 2572, 2565, 2549, - 2537, 2524, 200, 110, 244, 28, 111, 252, 171, 2578, - 422, 2577, 565, 2529, 818, 262, 0, 2573, 179, 3665, - 3665, 599, 269, 0, 2513, 453, 3665, 3665, 2512, 548, - 2490, 2533, 206, 253, 323, 2535, 2524, 2513, 607, 615, - 306, 722, 586, 831, 867, 903, 939, 2499, 2456, 980, - 333, 1022, 1063, 0, 2430, 2394, 2363, 2364, 2374, 2369, - 2327, 2330, 2329, 2328, 266, 2289, 2283, 2272, 2274, 2279, - 409, 334, 2279, 145, 335, 83, 672, 278, 2327, 2325, + 266, 4400, 4397, 4397, 5604, 263, 532, 585, 4386, 608, + 707, 4346, 829, 648, 4345, 968, 981, 1018, 4359, 4370, + 563, 708, 422, 4357, 371, 1062, 1106, 4343, 4347, 4340, + 4344, 596, 4333, 4340, 4337, 4329, 4331, 644, 5604, 237, + 137, 946, 4309, 4314, 4305, 4300, 4301, 121, 225, 530, + 377, 369, 335, 445, 4366, 720, 4365, 931, 4314, 1018, + 169, 0, 4361, 160, 5604, 5604, 991, 388, 0, 4312, + 638, 5604, 5604, 4311, 661, 4310, 4356, 392, 221, 420, + 4358, 653, 665, 1139, 4296, 1145, 0, 1173, 1201, 1210, + 1037, 1239, 4333, 1081, 1170, 826, 1288, 1343, 4307, 0, - 627, 259, 1106, 1142, 741, 210, 2293, 2279, 683, 513, - 2275, 2271, 352, 747, 1178, 780, 788, 1220, 815, 2270, - 400, 325, 2261, 2258, 2248, 2246, 2242, 0, 2240, 0, - 489, 2223, 2213, 2198, 2211, 2198, 420, 407, 529, 490, - 491, 1263, 1299, 1335, 2235, 2234, 839, 2234, 2232, 2228, - 2226, 528, 848, 657, 856, 665, 1371, 0, 877, 1382, - 886, 894, 1424, 913, 570, 3665, 2208, 2197, 2201, 2178, - 2185, 2194, 2194, 2176, 558, 2169, 2152, 2150, 648, 626, - 530, 559, 923, 336, 1467, 1503, 964, 2171, 2140, 2139, - 2138, 1537, 551, 1000, 1041, 1082, 653, 694, 797, 1049, + 4311, 4309, 899, 4298, 4296, 4287, 4283, 4336, 4335, 1222, + 1258, 1389, 1362, 968, 1428, 4323, 4310, 1472, 520, 1517, + 1561, 1605, 4303, 4297, 4280, 4282, 4289, 4300, 4295, 4283, + 4279, 4292, 4291, 4290, 654, 493, 4258, 4252, 4242, 4244, + 4250, 534, 579, 4253, 491, 407, 506, 1413, 626, 4304, + 4251, 4239, 1651, 1661, 4227, 1705, 0, 4197, 4164, 4155, + 4151, 4151, 4135, 4112, 4111, 811, 4067, 4122, 1749, 378, + 0, 0, 1041, 243, 4098, 4097, 1786, 805, 4096, 4095, + 623, 1410, 1799, 1447, 1091, 1844, 1890, 4094, 429, 4073, + 632, 4084, 4082, 4056, 4054, 4050, 4053, 0, 4046, 0, - 923, 1580, 0, 1116, 1591, 1090, 1008, 1633, 1125, 2121, - 2082, 747, 686, 2064, 2071, 786, 926, 905, 2080, 2033, - 679, 634, 544, 915, 1675, 1710, 1745, 2052, 2043, 2033, - 1150, 1781, 1158, 1133, 1822, 1197, 1166, 2028, 1239, 1273, - 1207, 950, 951, 962, 991, 1247, 1073, 1865, 0, 1283, - 1876, 1307, 1315, 1918, 1323, 1987, 1968, 1188, 3665, 1967, - 1951, 1929, 1913, 1286, 3665, 1336, 3665, 707, 1897, 1889, - 786, 930, 764, 1298, 1358, 1041, 1960, 1995, 1400, 1927, - 1879, 1348, 708, 1406, 1348, 2031, 0, 559, 2042, 1441, - 1449, 2083, 1477, 1487, 1513, 1523, 1230, 1290, 1458, 1548, + 929, 638, 544, 561, 4022, 4024, 4008, 4022, 4008, 746, + 524, 1063, 413, 662, 1491, 4060, 4059, 4058, 1270, 1900, + 1944, 763, 904, 4037, 4020, 4009, 4007, 3992, 3988, 818, + 3993, 3988, 3912, 1990, 2002, 2014, 3930, 3929, 2024, 3929, + 3912, 3911, 3910, 919, 1536, 1003, 1580, 1142, 2037, 0, + 1626, 2083, 1680, 1372, 2128, 2174, 764, 5604, 3892, 3877, + 3870, 3884, 3862, 3869, 3879, 3879, 0, 3863, 698, 593, + 820, 973, 1093, 3857, 3824, 3825, 922, 897, 969, 1097, + 3866, 3858, 2186, 2196, 3829, 3807, 3800, 3814, 3778, 3784, + 3794, 3793, 3747, 3726, 3716, 3711, 3696, 3656, 2240, 1017, - 1557, 1602, 2126, 0, 1613, 2137, 1650, 1565, 1660, 1806, - 1779, 1680, 1675, 1359, 1406, 1626, 1601, 1577, 897, 938, - 1695, 1589, 2180, 2216, 2252, 2288, 1611, 1686, 1720, 1731, - 1563, 1478, 1504, 1694, 1524, 2324, 0, 617, 2335, 1753, - 1761, 2376, 1769, 1798, 1550, 1808, 1841, 1851, 1335, 1358, - 1887, 714, 825, 2419, 0, 926, 1407, 1468, 1430, 1431, - 1547, 3665, 1616, 3665, 1381, 1731, 1045, 1512, 1575, 1908, - 1913, 1970, 1498, 2429, 2465, 1947, 1611, 1981, 1264, 2006, - 2016, 2061, 1198, 1181, 1732, 1782, 2067, 1842, 2501, 0, - 1181, 2512, 2100, 1904, 2553, 2110, 2155, 2164, 2189, 1769, + 2279, 2291, 1637, 3686, 3662, 3648, 3646, 2301, 1127, 3642, + 3641, 2347, 1154, 1205, 1209, 1724, 1761, 2359, 0, 1763, + 2405, 1774, 1457, 2450, 2496, 2521, 1024, 1127, 1181, 1190, + 1169, 1207, 1224, 1392, 3602, 3584, 3577, 3560, 1240, 3581, + 3547, 1313, 1391, 874, 1774, 1821, 3584, 3576, 3569, 1503, + 3523, 3519, 869, 1379, 3515, 3511, 949, 1045, 0, 0, + 0, 0, 3478, 2577, 1863, 1546, 3510, 3509, 3506, 1919, + 2616, 1963, 1590, 2660, 2706, 2056, 3517, 3509, 3487, 1692, + 1879, 1979, 2096, 2104, 2147, 2106, 2718, 0, 2217, 2764, + 2250, 1734, 2809, 2855, 2880, 2086, 1133, 1088, 5604, 421, - 1142, 1232, 1634, 3665, 1699, 1095, 1077, 1025, 1046, 1306, - 3665, 384, 981, 2211, 2218, 2238, 2243, 2263, 2288, 2249, - 2307, 2596, 2632, 2668, 2304, 2354, 2395, 983, 894, 1902, - 1928, 2362, 1929, 2704, 0, 1428, 2715, 2403, 2437, 2445, - 867, 2454, 2474, 2483, 831, 1982, 3665, 1983, 782, 3665, - 1511, 2489, 2529, 2537, 1895, 2758, 2794, 2573, 2579, 650, - 2607, 2617, 2642, 629, 525, 1931, 447, 347, 2650, 0, - 1528, 2019, 3665, 2044, 1805, 2830, 2866, 2902, 2676, 2684, - 2692, 323, 0, 316, 2067, 3665, 166, 1845, 3665, 2733, - 1945, 2938, 2974, 2743, 3665, 2767, 2777, 2658, 3665, 2805, + 2087, 1184, 2088, 1369, 5604, 1370, 5604, 1197, 3418, 3389, + 1282, 2127, 1249, 1368, 3442, 3427, 2936, 3386, 3320, 3309, + 3295, 2951, 1219, 3272, 3006, 1181, 3044, 0, 1709, 3290, + 3263, 2260, 58, 2320, 1774, 3083, 0, 2380, 3129, 2424, + 1831, 3173, 3219, 3270, 3265, 3231, 2336, 2462, 2464, 2471, + 3256, 2477, 3243, 0, 2589, 3289, 2600, 1929, 3335, 3360, + 1376, 1087, 1847, 1409, 1542, 1586, 3218, 3184, 3166, 1832, + 1427, 2060, 3174, 2635, 3210, 3186, 3185, 2435, 3129, 3111, + 3114, 3066, 3429, 1454, 0, 3486, 2679, 2737, 1483, 3085, + 2989, 2839, 3525, 2819, 2003, 2280, 2783, 2381, 3537, 0, - 2813, 2847, 63, 2855, 2881, 3665, 3023, 3039, 3055, 3071, - 3087, 3103, 3119, 3135, 3151, 3157, 3173, 3189, 2025, 3205, - 3221, 3237, 3253, 3269, 3285, 3301, 3307, 3314, 3330, 3346, - 3352, 3359, 3365, 3371, 3377, 3384, 3390, 3396, 3402, 3409, - 3417, 3423, 3429, 3435, 3442, 3450, 3456, 3462, 3469, 3477, - 3483, 3491, 3498, 3506, 3512, 3520, 3527, 3535, 3551, 3567, - 3583, 3589, 3597, 3604, 3610, 3618, 3624, 3632, 3648, 1295 + 2830, 3583, 3016, 2157, 3627, 3673, 3026, 2821, 2801, 2750, + 2228, 2472, 2474, 2695, 1189, 1531, 3685, 0, 2647, 1848, + 1925, 1602, 1522, 1849, 1587, 5604, 1664, 5604, 2692, 1967, + 1630, 2177, 2014, 2406, 2761, 2674, 2630, 3731, 2272, 1926, + 2155, 2500, 1927, 3741, 2076, 3780, 0, 1967, 2277, 3054, + 2598, 2535, 2509, 2841, 2470, 2431, 2485, 2600, 3064, 2617, + 3819, 0, 3104, 3865, 3148, 3036, 3909, 3955, 2390, 2373, + 3966, 3118, 2338, 1742, 2298, 2129, 5604, 2743, 1825, 1738, + 2219, 2153, 1825, 5604, 2062, 2083, 3130, 3172, 3276, 3281, + 1984, 2880, 1920, 3360, 3192, 1912, 1877, 1858, 3274, 1744, + + 2326, 2643, 2745, 3978, 3990, 4002, 1700, 1693, 4014, 1662, + 1623, 2856, 2951, 3496, 3084, 4026, 0, 3508, 4072, 3556, + 3074, 0, 1599, 1510, 1503, 3319, 1423, 2328, 5604, 3154, + 2037, 5604, 2124, 3602, 3646, 1409, 1403, 4118, 2407, 2791, + 4130, 2334, 4142, 4154, 3659, 3704, 1390, 1286, 1251, 3418, + 1158, 1087, 3105, 1077, 1056, 4166, 0, 3568, 2499, 5604, + 3270, 2220, 3751, 1014, 1005, 957, 3614, 2522, 4178, 4190, + 4202, 3761, 3790, 3800, 684, 0, 683, 2685, 5604, 658, + 2222, 5604, 522, 382, 4214, 4226, 2335, 4238, 4250, 3840, + 5604, 3846, 3884, 3202, 5604, 3928, 374, 208, 117, 3716, + + 4260, 4297, 4334, 4045, 4091, 4270, 59, 4371, 3941, 5604, + 4280, 3771, 5604, 4423, 4444, 4465, 4486, 4507, 4528, 4549, + 4570, 4591, 4600, 2074, 4620, 4641, 2383, 4662, 4683, 4704, + 4725, 4746, 4767, 4788, 4809, 2337, 4830, 4839, 4847, 4856, + 4876, 4897, 4918, 2474, 4939, 4960, 4981, 5002, 5011, 5030, + 5039, 5048, 2421, 2516, 5056, 5064, 5072, 5081, 5089, 5096, + 5104, 5112, 5121, 5131, 2600, 2694, 5139, 5147, 5155, 2695, + 2757, 5164, 5174, 5194, 2798, 5203, 5211, 2799, 5220, 5230, + 5250, 2228, 2615, 5259, 5271, 5280, 5290, 2803, 2825, 5299, + 5309, 5318, 5338, 2700, 5347, 5359, 2841, 2872, 5368, 5378, + + 2873, 5387, 5397, 5417, 5438, 5459, 3115, 3116, 5479, 3168, + 5486, 5496, 2951, 2967, 5505, 2520, 5525, 3304, 3313, 5534, + 5544, 3517, 3314, 3318, 5552, 5562, 5582, 3814, 3319, 3430 } ; -static yyconst short int yy_def[671] = +static yyconst short int yy_def[931] = { 0, - 606, 1, 1, 1, 607, 607, 608, 608, 609, 609, - 610, 610, 606, 611, 606, 606, 606, 606, 612, 613, - 606, 606, 614, 606, 615, 611, 26, 26, 616, 606, - 606, 606, 32, 32, 32, 35, 35, 35, 35, 35, - 35, 611, 26, 611, 606, 612, 32, 32, 35, 35, - 35, 606, 606, 606, 617, 611, 618, 606, 618, 606, - 618, 606, 612, 606, 619, 620, 606, 620, 606, 620, - 606, 621, 622, 622, 622, 606, 606, 611, 611, 606, - 606, 623, 606, 624, 606, 613, 606, 625, 613, 614, - 614, 615, 626, 611, 611, 26, 616, 96, 96, 96, + 813, 1, 1, 1, 814, 814, 815, 815, 816, 816, + 817, 817, 813, 13, 813, 818, 813, 813, 813, 813, + 819, 820, 813, 813, 821, 813, 822, 818, 28, 28, + 823, 813, 813, 813, 34, 34, 34, 37, 37, 37, + 37, 37, 37, 818, 28, 818, 813, 819, 34, 34, + 37, 37, 37, 813, 824, 813, 825, 37, 37, 818, + 826, 813, 826, 813, 826, 813, 819, 813, 827, 828, + 813, 828, 813, 828, 813, 829, 830, 830, 830, 813, + 813, 831, 832, 833, 813, 85, 85, 85, 813, 89, + 89, 89, 92, 92, 92, 92, 85, 88, 88, 818, - 96, 627, 628, 35, 35, 35, 35, 35, 35, 35, - 35, 35, 35, 611, 606, 611, 606, 606, 606, 606, - 606, 606, 623, 611, 96, 611, 611, 611, 606, 606, - 606, 606, 617, 629, 611, 611, 618, 618, 606, 606, - 606, 624, 606, 619, 620, 620, 606, 606, 620, 620, - 622, 606, 622, 622, 606, 606, 623, 630, 606, 606, - 625, 625, 606, 611, 611, 611, 96, 167, 631, 606, - 632, 606, 104, 35, 35, 35, 35, 35, 35, 35, - 35, 35, 35, 35, 611, 606, 606, 606, 606, 606, - 623, 611, 167, 611, 611, 611, 606, 611, 606, 630, + 818, 813, 813, 834, 813, 835, 813, 820, 836, 831, + 820, 821, 821, 822, 837, 818, 818, 28, 838, 118, + 118, 118, 118, 839, 840, 37, 126, 127, 127, 127, + 127, 127, 127, 127, 127, 127, 127, 818, 813, 818, + 818, 813, 813, 813, 813, 813, 813, 834, 818, 118, + 818, 818, 818, 813, 813, 813, 813, 841, 842, 818, + 818, 843, 843, 813, 813, 813, 835, 813, 844, 845, + 845, 813, 813, 845, 845, 830, 813, 830, 830, 813, + 813, 831, 831, 831, 846, 847, 88, 846, 848, 813, + 813, 85, 192, 192, 192, 192, 813, 197, 198, 849, - 611, 611, 611, 611, 611, 611, 633, 634, 634, 209, - 635, 634, 636, 172, 606, 215, 215, 606, 215, 35, - 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, - 611, 606, 606, 606, 606, 606, 623, 611, 611, 611, - 611, 611, 611, 611, 606, 637, 637, 247, 637, 638, - 639, 640, 606, 641, 218, 641, 641, 257, 641, 606, - 260, 260, 606, 260, 606, 606, 35, 35, 35, 35, - 35, 35, 35, 35, 611, 606, 606, 606, 623, 611, - 611, 611, 611, 611, 611, 611, 611, 642, 642, 643, - 644, 606, 606, 606, 606, 606, 645, 645, 646, 263, + 198, 198, 198, 198, 198, 88, 88, 834, 850, 813, + 813, 818, 212, 212, 118, 215, 851, 813, 852, 813, + 127, 221, 222, 222, 222, 222, 222, 222, 222, 222, + 222, 222, 222, 222, 818, 818, 813, 813, 813, 813, + 813, 834, 818, 215, 818, 818, 818, 813, 818, 813, + 853, 854, 813, 88, 254, 197, 198, 198, 198, 198, + 198, 198, 198, 198, 198, 88, 88, 850, 818, 818, + 212, 212, 212, 818, 855, 856, 856, 277, 857, 856, + 858, 220, 813, 283, 283, 813, 283, 222, 222, 222, + 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, - 646, 646, 302, 646, 606, 305, 305, 606, 305, 35, - 35, 35, 35, 35, 35, 35, 35, 611, 606, 606, - 623, 611, 611, 611, 611, 611, 611, 606, 647, 648, - 292, 606, 332, 332, 606, 332, 606, 606, 606, 606, - 606, 606, 649, 649, 650, 308, 650, 650, 348, 650, - 606, 351, 351, 606, 351, 35, 35, 606, 606, 35, - 35, 35, 35, 606, 606, 606, 606, 611, 606, 606, - 623, 611, 611, 611, 611, 611, 611, 611, 611, 606, - 651, 606, 652, 335, 652, 652, 386, 386, 606, 389, - 389, 606, 389, 606, 606, 606, 606, 653, 653, 654, + 818, 818, 818, 818, 813, 813, 813, 813, 813, 834, + 818, 818, 818, 818, 813, 813, 853, 853, 813, 254, + 197, 198, 859, 198, 198, 198, 198, 198, 198, 88, + 88, 88, 88, 212, 212, 212, 813, 860, 860, 339, + 860, 861, 862, 863, 813, 864, 286, 864, 813, 349, + 864, 813, 352, 352, 813, 352, 813, 813, 222, 222, + 222, 222, 222, 222, 222, 222, 222, 222, 818, 818, + 818, 818, 818, 813, 813, 813, 834, 818, 818, 818, + 865, 866, 813, 88, 321, 859, 859, 198, 198, 198, + 198, 198, 198, 88, 88, 88, 88, 88, 818, 818, - 354, 654, 654, 403, 654, 606, 406, 406, 406, 35, - 35, 35, 35, 35, 35, 611, 606, 606, 623, 611, - 611, 611, 611, 611, 611, 611, 606, 606, 606, 606, - 655, 655, 656, 392, 656, 656, 436, 436, 606, 439, - 439, 606, 439, 606, 606, 606, 606, 606, 606, 657, - 657, 658, 658, 658, 454, 454, 35, 35, 35, 35, - 606, 606, 606, 606, 606, 606, 659, 623, 611, 660, - 661, 611, 611, 611, 611, 611, 611, 606, 606, 606, - 606, 606, 606, 662, 662, 663, 442, 663, 663, 489, - 489, 606, 492, 492, 606, 492, 606, 606, 606, 606, + 212, 212, 818, 867, 867, 868, 869, 813, 813, 870, + 871, 813, 872, 872, 873, 355, 873, 813, 418, 873, + 813, 421, 421, 813, 421, 813, 426, 426, 426, 426, + 426, 426, 426, 426, 818, 818, 818, 818, 818, 813, + 813, 874, 818, 818, 818, 813, 813, 875, 875, 813, + 859, 859, 198, 859, 198, 198, 198, 198, 88, 88, + 88, 88, 88, 818, 464, 464, 813, 876, 877, 408, + 813, 471, 471, 813, 471, 813, 813, 878, 878, 813, + 813, 879, 879, 880, 424, 880, 813, 487, 880, 813, + 490, 490, 813, 490, 813, 495, 495, 813, 813, 495, - 664, 664, 606, 606, 35, 35, 35, 606, 659, 659, - 606, 623, 611, 660, 660, 660, 660, 606, 660, 661, - 661, 611, 611, 611, 606, 606, 606, 606, 665, 665, - 666, 495, 666, 666, 534, 534, 606, 537, 537, 537, - 606, 606, 606, 606, 606, 606, 606, 35, 35, 606, - 623, 606, 606, 611, 611, 611, 611, 611, 606, 606, - 606, 606, 606, 606, 667, 667, 668, 668, 668, 569, - 569, 606, 606, 35, 669, 611, 611, 611, 606, 606, - 606, 606, 670, 670, 606, 606, 669, 669, 606, 611, - 611, 611, 611, 611, 606, 606, 606, 606, 606, 611, + 495, 495, 495, 813, 813, 813, 813, 818, 813, 813, + 881, 818, 818, 818, 882, 883, 813, 884, 884, 884, + 884, 813, 522, 885, 818, 818, 818, 527, 527, 813, + 886, 813, 887, 474, 887, 813, 536, 887, 813, 539, + 539, 813, 539, 888, 889, 813, 813, 890, 890, 891, + 892, 891, 813, 553, 891, 813, 556, 556, 556, 813, + 560, 560, 560, 560, 560, 560, 818, 813, 813, 893, + 818, 818, 818, 813, 813, 894, 894, 813, 895, 895, + 895, 895, 813, 583, 896, 818, 586, 586, 586, 813, + 897, 898, 813, 899, 899, 900, 542, 900, 813, 599, - 611, 611, 611, 611, 611, 0, 606, 606, 606, 606, - 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, - 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, - 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, - 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, - 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, - 606, 606, 606, 606, 606, 606, 606, 606, 606, 606 + 900, 813, 602, 602, 813, 602, 813, 813, 901, 901, + 813, 813, 902, 902, 903, 903, 813, 617, 903, 560, + 560, 560, 560, 560, 813, 813, 813, 813, 813, 813, + 904, 893, 818, 905, 906, 907, 908, 813, 907, 909, + 909, 909, 909, 818, 818, 818, 646, 646, 818, 813, + 813, 910, 910, 813, 813, 911, 911, 912, 605, 912, + 813, 661, 912, 813, 664, 664, 813, 664, 913, 914, + 813, 813, 915, 915, 560, 813, 813, 560, 560, 560, + 813, 904, 904, 813, 893, 818, 905, 905, 905, 905, + 916, 905, 917, 917, 813, 813, 907, 907, 813, 813, + + 909, 909, 909, 646, 646, 646, 918, 919, 813, 813, + 920, 920, 921, 667, 921, 813, 716, 921, 813, 719, + 719, 922, 813, 913, 913, 813, 813, 813, 813, 560, + 560, 813, 893, 813, 813, 923, 924, 813, 909, 909, + 646, 818, 646, 646, 818, 813, 813, 918, 918, 813, + 813, 925, 925, 926, 926, 926, 756, 926, 813, 813, + 560, 927, 813, 813, 923, 923, 813, 909, 646, 646, + 646, 813, 813, 813, 813, 928, 928, 813, 813, 927, + 927, 813, 929, 930, 813, 646, 818, 646, 646, 818, + 813, 813, 813, 813, 813, 813, 813, 929, 929, 813, + + 818, 818, 818, 813, 813, 813, 818, 818, 818, 813, + 813, 813, 0, 813, 813, 813, 813, 813, 813, 813, + 813, 813, 813, 813, 813, 813, 813, 813, 813, 813, + 813, 813, 813, 813, 813, 813, 813, 813, 813, 813, + 813, 813, 813, 813, 813, 813, 813, 813, 813, 813, + 813, 813, 813, 813, 813, 813, 813, 813, 813, 813, + 813, 813, 813, 813, 813, 813, 813, 813, 813, 813, + 813, 813, 813, 813, 813, 813, 813, 813, 813, 813, + 813, 813, 813, 813, 813, 813, 813, 813, 813, 813, + 813, 813, 813, 813, 813, 813, 813, 813, 813, 813, + + 813, 813, 813, 813, 813, 813, 813, 813, 813, 813, + 813, 813, 813, 813, 813, 813, 813, 813, 813, 813, + 813, 813, 813, 813, 813, 813, 813, 813, 813, 813 } ; -static yyconst short int yy_nxt[3732] = +static yyconst short int yy_nxt[5675] = { 0, - 14, 15, 16, 17, 18, 19, 20, 21, 22, 14, - 23, 24, 14, 14, 25, 26, 27, 28, 26, 26, - 26, 26, 26, 29, 30, 31, 14, 32, 33, 33, - 33, 34, 35, 35, 35, 35, 36, 37, 35, 38, - 39, 40, 41, 35, 35, 35, 35, 35, 42, 14, - 43, 43, 43, 43, 43, 43, 14, 14, 14, 14, - 14, 14, 14, 44, 14, 14, 45, 79, 52, 105, - 46, 170, 53, 52, 105, 87, 79, 53, 54, 107, - 172, 55, 129, 54, 116, 105, 55, 74, 16, 75, - 76, 194, 130, 88, 47, 48, 79, 124, 49, 153, + 16, 17, 18, 19, 20, 21, 22, 23, 24, 16, + 25, 26, 16, 16, 27, 28, 29, 30, 28, 28, + 28, 28, 28, 28, 28, 31, 32, 33, 16, 34, + 35, 35, 35, 36, 37, 37, 37, 37, 38, 37, + 39, 37, 40, 41, 42, 43, 37, 37, 37, 37, + 37, 44, 16, 45, 45, 45, 45, 45, 45, 16, + 16, 16, 16, 16, 16, 16, 16, 46, 16, 16, + 47, 532, 54, 130, 48, 135, 55, 127, 131, 127, + 54, 127, 56, 534, 55, 57, 78, 18, 79, 80, + 56, 109, 129, 57, 133, 17, 62, 63, 150, 64, - 15, 58, 59, 125, 60, 50, 111, 35, 51, 35, - 60, 79, 35, 136, 35, 15, 58, 59, 89, 60, - 143, 115, 60, 61, 154, 60, 74, 16, 75, 76, - 56, 79, 147, 127, 77, 56, 148, 60, 61, 93, - 93, 150, 115, 93, 93, 238, 152, 62, 99, 99, - 99, 99, 99, 99, 99, 99, 146, 87, 79, 79, - 146, 93, 62, 15, 16, 17, 117, 63, 589, 152, - 192, 195, 129, 77, 100, 100, 100, 100, 100, 101, - 143, 115, 130, 78, 94, 98, 98, 98, 98, 98, - 98, 98, 98, 79, 118, 119, 155, 156, 120, 151, + 49, 50, 149, 152, 51, 64, 168, 139, 134, 58, + 101, 110, 52, 59, 37, 53, 37, 58, 154, 64, + 65, 59, 37, 105, 37, 17, 62, 63, 155, 64, + 796, 78, 18, 79, 80, 64, 81, 111, 60, 175, + 139, 172, 101, 115, 115, 66, 60, 115, 115, 64, + 65, 140, 142, 178, 17, 18, 19, 71, 67, 173, + 141, 168, 139, 72, 73, 74, 171, 115, 122, 122, + 122, 122, 122, 123, 179, 66, 17, 18, 19, 75, + 67, 81, 143, 144, 171, 242, 145, 101, 101, 180, + 181, 116, 176, 236, 146, 198, 140, 147, 17, 18, - 162, 79, 83, 143, 115, 121, 185, 153, 122, 238, - 64, 65, 65, 65, 65, 65, 65, 65, 65, 65, - 65, 65, 65, 65, 65, 65, 65, 65, 15, 16, - 17, 131, 63, 97, 85, 85, 85, 85, 85, 85, - 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, - 79, 139, 115, 140, 152, 141, 154, 78, 79, 140, - 191, 141, 85, 85, 85, 85, 85, 85, 85, 85, - 143, 115, 201, 141, 141, 64, 65, 65, 65, 65, - 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, - 65, 65, 65, 15, 16, 17, 67, 63, 141, 193, + 19, 71, 67, 177, 76, 161, 201, 72, 73, 74, + 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, + 101, 796, 177, 75, 179, 249, 68, 69, 69, 69, + 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, + 69, 69, 69, 69, 69, 17, 18, 19, 76, 67, + 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, + 195, 195, 195, 195, 195, 196, 206, 100, 119, 100, + 100, 100, 177, 100, 100, 207, 101, 100, 107, 107, + 107, 107, 107, 107, 107, 107, 107, 107, 101, 243, + 235, 100, 100, 100, 101, 68, 69, 69, 69, 69, - 79, 152, 68, 69, 70, 606, 196, 79, 134, 134, - 79, 606, 134, 134, 79, 198, 71, 168, 168, 168, - 168, 168, 168, 606, 155, 156, 79, 231, 159, 382, - 134, 160, 160, 160, 160, 160, 160, 160, 160, 241, - 72, 15, 16, 17, 67, 63, 532, 170, 89, 283, - 68, 69, 70, 135, 162, 86, 214, 86, 86, 267, - 606, 86, 86, 268, 71, 86, 170, 164, 165, 166, - 164, 164, 164, 164, 164, 214, 93, 93, 86, 86, - 93, 93, 79, 79, 79, 240, 83, 238, 72, 83, - 168, 168, 168, 168, 168, 168, 168, 168, 93, 84, + 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, + 69, 69, 69, 69, 33, 17, 18, 19, 33, 33, + 82, 23, 24, 33, 83, 26, 33, 33, 84, 85, + 86, 87, 85, 85, 85, 85, 85, 85, 85, 31, + 88, 33, 33, 89, 90, 90, 90, 91, 92, 92, + 92, 92, 93, 92, 94, 92, 95, 92, 96, 92, + 92, 92, 92, 92, 92, 68, 33, 97, 97, 97, + 97, 97, 97, 98, 98, 98, 98, 98, 98, 98, + 98, 99, 98, 98, 105, 218, 101, 796, 109, 168, + 139, 269, 247, 178, 106, 796, 220, 107, 107, 107, - 79, 265, 85, 85, 85, 85, 85, 85, 85, 85, - 95, 83, 96, 96, 96, 96, 96, 96, 96, 96, - 97, 94, 83, 266, 98, 98, 98, 98, 98, 168, - 168, 168, 168, 168, 168, 168, 168, 85, 85, 85, - 85, 85, 85, 85, 85, 79, 551, 98, 98, 98, - 98, 98, 98, 78, 145, 79, 280, 145, 145, 78, - 382, 237, 78, 78, 145, 78, 78, 78, 104, 104, - 104, 104, 104, 104, 104, 104, 97, 145, 279, 78, - 104, 104, 104, 104, 104, 105, 105, 105, 105, 106, - 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, + 107, 107, 107, 107, 107, 107, 107, 117, 183, 118, + 118, 118, 118, 118, 118, 118, 118, 118, 118, 119, + 101, 180, 181, 120, 120, 120, 120, 120, 101, 101, + 357, 159, 159, 246, 184, 159, 159, 216, 216, 216, + 216, 216, 216, 177, 245, 101, 154, 120, 120, 120, + 120, 120, 120, 100, 358, 159, 155, 127, 101, 100, + 313, 563, 100, 100, 101, 100, 100, 100, 126, 126, + 126, 126, 126, 126, 126, 126, 126, 126, 119, 160, + 311, 100, 126, 126, 126, 126, 126, 127, 127, 127, + 127, 128, 127, 127, 127, 127, 127, 127, 127, 127, - 105, 79, 105, 98, 98, 98, 98, 98, 98, 78, - 78, 78, 78, 78, 78, 78, 78, 78, 78, 105, - 105, 105, 105, 105, 105, 105, 105, 606, 249, 249, - 249, 105, 105, 105, 105, 105, 177, 79, 79, 79, - 105, 178, 170, 275, 179, 282, 180, 117, 532, 143, - 115, 214, 97, 238, 78, 78, 78, 78, 78, 78, - 114, 115, 78, 78, 78, 170, 78, 78, 134, 134, - 78, 265, 134, 134, 214, 118, 119, 79, 79, 120, - 431, 431, 78, 78, 78, 83, 121, 93, 323, 122, - 134, 93, 79, 266, 281, 84, 146, 93, 85, 85, + 127, 127, 127, 127, 101, 127, 120, 120, 120, 120, + 120, 120, 100, 100, 100, 100, 100, 100, 100, 100, + 100, 100, 100, 127, 127, 127, 127, 127, 127, 127, + 127, 127, 127, 813, 218, 796, 105, 127, 127, 127, + 127, 127, 101, 100, 101, 282, 127, 107, 107, 107, + 107, 107, 107, 107, 107, 107, 107, 101, 304, 311, + 372, 100, 100, 100, 100, 100, 100, 138, 139, 100, + 100, 100, 311, 100, 100, 101, 378, 100, 216, 216, + 216, 216, 216, 216, 216, 216, 216, 216, 244, 310, + 813, 100, 100, 100, 100, 101, 120, 120, 120, 120, - 85, 85, 85, 85, 85, 85, 79, 79, 373, 93, - 93, 318, 324, 135, 606, 606, 606, 606, 606, 606, - 606, 606, 160, 160, 160, 160, 160, 160, 160, 160, - 160, 160, 160, 160, 160, 160, 160, 160, 484, 484, - 123, 83, 242, 243, 244, 242, 242, 242, 242, 242, - 83, 142, 487, 322, 606, 606, 606, 606, 606, 606, - 606, 606, 78, 559, 78, 78, 78, 170, 78, 78, - 253, 170, 78, 134, 79, 79, 255, 134, 606, 170, - 255, 83, 79, 134, 78, 78, 78, 90, 255, 90, - 90, 90, 372, 90, 90, 134, 134, 90, 247, 247, + 120, 120, 120, 120, 120, 120, 105, 164, 139, 165, + 813, 166, 101, 109, 436, 165, 106, 166, 373, 107, + 107, 107, 107, 107, 107, 107, 107, 107, 107, 226, + 101, 166, 166, 813, 227, 311, 111, 218, 228, 170, + 229, 185, 170, 170, 101, 168, 139, 185, 282, 170, + 185, 115, 115, 185, 185, 115, 115, 166, 813, 184, + 782, 371, 168, 139, 170, 148, 105, 187, 360, 185, + 109, 301, 302, 361, 303, 115, 167, 101, 813, 813, + 813, 813, 813, 813, 813, 813, 813, 813, 813, 101, + 813, 314, 188, 185, 115, 101, 532, 115, 115, 116, - 248, 249, 249, 249, 249, 249, 211, 253, 170, 90, - 90, 90, 92, 321, 78, 78, 92, 255, 78, 78, - 360, 382, 92, 161, 361, 161, 161, 253, 170, 161, - 161, 384, 371, 161, 92, 92, 78, 167, 167, 167, - 167, 167, 167, 167, 167, 161, 161, 161, 358, 167, - 167, 167, 167, 167, 201, 79, 202, 202, 202, 202, - 202, 202, 219, 219, 219, 219, 219, 219, 219, 219, - 359, 416, 167, 167, 167, 167, 167, 167, 173, 173, - 173, 173, 173, 173, 173, 173, 97, 364, 83, 79, - 173, 173, 173, 173, 173, 257, 257, 257, 257, 257, + 115, 115, 115, 115, 184, 101, 115, 115, 108, 714, + 108, 108, 171, 101, 108, 108, 184, 435, 108, 380, + 187, 115, 115, 216, 216, 216, 216, 216, 216, 216, + 216, 216, 216, 108, 108, 107, 107, 107, 107, 107, + 107, 107, 107, 107, 107, 190, 115, 187, 105, 101, + 191, 187, 192, 192, 192, 192, 192, 192, 192, 192, + 192, 192, 119, 187, 357, 357, 193, 193, 193, 193, + 193, 187, 187, 187, 187, 187, 187, 187, 187, 187, + 187, 187, 187, 187, 187, 187, 187, 187, 358, 358, + 193, 193, 193, 193, 193, 193, 187, 187, 187, 187, - 257, 257, 257, 258, 258, 258, 258, 258, 259, 365, - 253, 170, 79, 167, 167, 167, 167, 167, 167, 133, - 300, 78, 78, 133, 574, 78, 78, 421, 606, 133, - 256, 256, 256, 256, 256, 256, 256, 256, 606, 170, - 419, 133, 133, 78, 201, 170, 202, 202, 202, 202, - 202, 202, 202, 202, 289, 289, 289, 289, 289, 289, - 289, 289, 211, 294, 295, 296, 294, 294, 294, 294, - 294, 264, 264, 264, 264, 264, 264, 264, 264, 79, - 201, 170, 203, 203, 203, 203, 203, 203, 203, 203, - 253, 170, 298, 298, 298, 298, 298, 298, 467, 83, + 187, 187, 187, 187, 187, 187, 187, 813, 377, 187, + 187, 187, 187, 187, 187, 187, 187, 187, 187, 813, + 341, 341, 341, 187, 187, 187, 187, 187, 330, 331, + 112, 332, 112, 112, 112, 394, 112, 112, 395, 437, + 112, 255, 255, 255, 255, 255, 255, 187, 187, 187, + 187, 187, 187, 187, 112, 112, 112, 187, 197, 197, + 197, 197, 197, 197, 197, 197, 197, 197, 119, 187, + 498, 101, 197, 197, 197, 197, 197, 198, 198, 198, + 198, 199, 198, 198, 198, 198, 198, 198, 198, 198, + 198, 198, 198, 198, 499, 200, 193, 193, 193, 193, - 255, 302, 302, 302, 302, 302, 302, 302, 302, 303, - 303, 303, 303, 303, 304, 79, 201, 487, 204, 204, - 204, 204, 204, 205, 202, 202, 606, 366, 301, 301, - 301, 301, 301, 301, 301, 301, 606, 170, 325, 326, - 327, 325, 325, 325, 325, 325, 300, 501, 501, 367, - 468, 79, 78, 79, 206, 206, 206, 206, 206, 206, - 206, 206, 368, 79, 170, 170, 206, 206, 206, 206, - 206, 79, 374, 255, 300, 253, 170, 283, 79, 284, - 284, 284, 284, 284, 284, 300, 79, 420, 469, 206, - 206, 206, 206, 206, 206, 208, 209, 210, 210, 210, + 193, 193, 187, 187, 187, 187, 187, 187, 187, 187, + 187, 187, 187, 198, 198, 198, 198, 198, 198, 198, + 198, 198, 198, 813, 105, 101, 443, 198, 198, 198, + 198, 198, 260, 218, 159, 159, 198, 261, 159, 159, + 386, 262, 513, 263, 282, 387, 369, 142, 101, 370, + 504, 187, 187, 187, 187, 187, 187, 813, 159, 193, + 193, 193, 193, 193, 193, 193, 193, 193, 193, 114, + 763, 100, 100, 114, 505, 100, 100, 143, 144, 114, + 101, 145, 160, 272, 272, 272, 272, 272, 273, 146, + 438, 442, 147, 114, 114, 100, 212, 213, 214, 212, - 210, 210, 210, 211, 253, 170, 434, 212, 212, 212, - 212, 212, 79, 337, 346, 338, 338, 338, 338, 338, - 338, 338, 338, 349, 349, 349, 349, 349, 350, 79, - 212, 212, 212, 212, 212, 212, 170, 215, 216, 217, - 215, 215, 215, 215, 215, 218, 510, 511, 511, 219, - 219, 219, 219, 219, 337, 375, 339, 339, 339, 339, - 339, 339, 339, 339, 309, 309, 309, 309, 309, 309, - 309, 309, 219, 219, 219, 219, 219, 219, 220, 220, - 220, 220, 220, 220, 220, 220, 606, 170, 550, 79, - 220, 220, 220, 220, 220, 337, 346, 340, 340, 340, + 212, 212, 212, 212, 212, 212, 813, 813, 813, 813, + 813, 813, 813, 813, 813, 813, 345, 218, 763, 158, + 101, 100, 100, 158, 101, 100, 100, 763, 347, 158, + 399, 444, 101, 215, 215, 215, 215, 215, 215, 215, + 215, 215, 215, 158, 158, 100, 506, 215, 215, 215, + 215, 215, 251, 252, 253, 251, 251, 251, 251, 251, + 251, 251, 100, 100, 100, 100, 496, 127, 101, 813, + 507, 215, 215, 215, 215, 215, 215, 221, 221, 221, + 221, 221, 221, 221, 221, 221, 221, 119, 119, 498, + 532, 221, 221, 221, 221, 221, 255, 255, 255, 255, - 340, 340, 341, 338, 338, 348, 348, 348, 348, 348, - 348, 348, 348, 206, 206, 206, 206, 206, 206, 201, - 549, 202, 202, 202, 202, 202, 202, 202, 202, 253, - 170, 344, 344, 344, 344, 344, 344, 548, 606, 300, - 347, 347, 347, 347, 347, 347, 347, 347, 387, 387, - 387, 387, 387, 388, 79, 201, 170, 202, 202, 202, - 202, 202, 202, 202, 202, 336, 336, 336, 336, 336, - 336, 336, 336, 386, 386, 386, 386, 386, 386, 386, - 386, 394, 395, 396, 394, 394, 394, 394, 394, 358, - 79, 253, 170, 254, 254, 254, 254, 254, 254, 254, + 255, 255, 255, 255, 255, 255, 350, 350, 350, 350, + 350, 351, 714, 499, 101, 215, 215, 215, 215, 215, + 215, 127, 127, 127, 127, 127, 127, 127, 127, 127, + 127, 813, 379, 622, 127, 127, 127, 127, 127, 127, + 182, 218, 182, 182, 101, 185, 182, 182, 101, 439, + 182, 185, 282, 445, 185, 813, 218, 185, 185, 100, + 100, 100, 100, 100, 100, 182, 182, 347, 218, 127, + 127, 187, 497, 185, 185, 562, 185, 185, 185, 347, + 185, 185, 498, 659, 185, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 525, 188, 185, 185, 185, - 254, 255, 529, 529, 434, 256, 256, 256, 256, 256, - 606, 359, 385, 385, 385, 385, 385, 385, 385, 385, - 337, 384, 338, 338, 338, 338, 338, 338, 256, 256, - 256, 256, 256, 256, 170, 260, 261, 262, 260, 260, - 260, 260, 260, 263, 170, 253, 170, 264, 264, 264, - 264, 264, 337, 300, 338, 338, 338, 338, 338, 338, - 338, 338, 355, 355, 355, 355, 355, 355, 355, 355, - 264, 264, 264, 264, 264, 264, 283, 478, 284, 284, - 284, 284, 284, 284, 284, 284, 337, 364, 338, 338, - 338, 338, 338, 338, 338, 338, 253, 170, 399, 399, + 185, 115, 345, 218, 115, 115, 499, 115, 115, 115, + 115, 115, 127, 115, 115, 115, 565, 502, 345, 218, + 127, 115, 345, 218, 127, 504, 500, 187, 115, 115, + 347, 501, 101, 127, 416, 115, 115, 211, 211, 211, + 211, 211, 211, 211, 211, 211, 211, 503, 101, 505, + 127, 198, 190, 115, 254, 254, 254, 254, 254, 254, + 254, 254, 254, 254, 746, 567, 584, 127, 254, 254, + 254, 254, 254, 211, 211, 211, 211, 211, 211, 211, + 211, 211, 211, 315, 105, 316, 316, 316, 316, 316, + 316, 101, 254, 254, 254, 254, 254, 254, 187, 746, - 399, 399, 399, 399, 170, 599, 346, 510, 511, 365, - 599, 79, 283, 346, 285, 285, 285, 285, 285, 285, - 285, 285, 403, 403, 403, 403, 403, 403, 403, 403, - 404, 404, 404, 404, 404, 405, 606, 366, 402, 402, - 402, 402, 402, 402, 402, 402, 79, 79, 283, 170, - 286, 286, 286, 286, 286, 287, 284, 284, 346, 367, - 461, 606, 422, 428, 429, 430, 428, 428, 428, 428, - 428, 384, 170, 423, 424, 425, 426, 423, 423, 423, - 423, 401, 462, 79, 253, 170, 298, 298, 298, 298, - 298, 298, 298, 298, 255, 253, 170, 299, 299, 299, + 101, 508, 187, 256, 256, 256, 256, 256, 256, 256, + 256, 256, 256, 119, 187, 105, 572, 256, 256, 256, + 256, 256, 198, 198, 198, 198, 198, 198, 198, 198, + 198, 198, 198, 198, 198, 198, 198, 198, 198, 570, + 200, 254, 254, 254, 254, 254, 254, 187, 187, 187, + 187, 187, 187, 187, 187, 187, 187, 187, 198, 198, + 198, 198, 198, 198, 198, 198, 198, 198, 813, 511, + 504, 506, 198, 198, 198, 198, 198, 271, 271, 271, + 271, 271, 271, 271, 271, 271, 271, 419, 419, 419, + 419, 419, 420, 506, 505, 507, 187, 187, 187, 187, - 299, 299, 299, 299, 299, 300, 79, 463, 503, 301, - 301, 301, 301, 301, 375, 376, 376, 376, 376, 376, - 376, 393, 393, 393, 393, 393, 393, 393, 393, 464, - 504, 508, 301, 301, 301, 301, 301, 301, 170, 305, - 306, 307, 305, 305, 305, 305, 305, 308, 79, 565, - 565, 309, 309, 309, 309, 309, 436, 436, 436, 436, - 436, 436, 436, 436, 437, 437, 437, 437, 437, 438, - 507, 253, 170, 506, 309, 309, 309, 309, 309, 309, - 283, 346, 284, 284, 284, 284, 284, 284, 284, 284, - 606, 382, 435, 435, 435, 435, 435, 435, 435, 435, + 187, 187, 269, 746, 270, 270, 270, 270, 270, 270, + 270, 270, 270, 270, 159, 520, 763, 507, 159, 101, + 521, 621, 763, 127, 159, 287, 287, 287, 287, 287, + 287, 287, 287, 287, 287, 127, 573, 218, 159, 159, + 101, 100, 101, 274, 274, 274, 274, 274, 274, 274, + 274, 274, 274, 512, 624, 627, 127, 274, 274, 274, + 274, 274, 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 488, 488, 488, 488, 488, 489, 101, 628, + 633, 274, 274, 274, 274, 274, 274, 276, 277, 278, + 278, 278, 278, 278, 278, 278, 278, 279, 649, 649, - 444, 384, 445, 445, 445, 445, 445, 445, 445, 445, - 505, 472, 575, 83, 83, 79, 283, 382, 284, 284, - 284, 284, 284, 284, 284, 284, 444, 434, 446, 446, - 446, 446, 446, 446, 446, 446, 444, 606, 447, 447, - 447, 447, 447, 448, 445, 445, 79, 434, 461, 583, - 583, 79, 332, 333, 334, 332, 332, 332, 332, 332, - 335, 253, 170, 444, 336, 336, 336, 336, 336, 512, - 462, 401, 409, 409, 409, 409, 409, 409, 409, 409, - 455, 455, 455, 455, 455, 456, 384, 336, 336, 336, - 336, 336, 336, 253, 170, 344, 344, 344, 344, 344, + 649, 280, 280, 280, 280, 280, 381, 382, 383, 381, + 381, 381, 381, 381, 381, 381, 446, 218, 447, 447, + 447, 447, 447, 447, 218, 280, 280, 280, 280, 280, + 280, 218, 283, 284, 285, 283, 283, 283, 283, 283, + 283, 283, 286, 625, 813, 218, 287, 287, 287, 287, + 287, 410, 411, 412, 410, 410, 410, 410, 410, 410, + 410, 528, 528, 528, 528, 528, 529, 626, 679, 127, + 287, 287, 287, 287, 287, 287, 288, 288, 288, 288, + 288, 288, 288, 288, 288, 288, 119, 627, 625, 127, + 288, 288, 288, 288, 288, 356, 356, 356, 356, 356, - 344, 344, 344, 300, 253, 170, 345, 345, 345, 345, - 345, 345, 345, 345, 346, 606, 170, 463, 347, 347, - 347, 347, 347, 79, 472, 401, 253, 170, 451, 451, - 451, 451, 451, 451, 331, 503, 401, 79, 513, 464, - 466, 347, 347, 347, 347, 347, 347, 170, 351, 352, - 353, 351, 351, 351, 351, 351, 354, 504, 465, 79, - 355, 355, 355, 355, 355, 454, 454, 454, 454, 454, - 454, 454, 454, 606, 79, 453, 453, 453, 453, 453, - 453, 453, 453, 355, 355, 355, 355, 355, 355, 375, - 376, 376, 376, 376, 376, 376, 376, 376, 470, 478, + 356, 356, 356, 356, 356, 537, 537, 537, 537, 537, + 538, 628, 626, 218, 274, 274, 274, 274, 274, 274, + 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, + 813, 683, 684, 127, 127, 127, 127, 127, 127, 345, + 218, 414, 414, 414, 414, 414, 414, 678, 659, 127, + 399, 347, 400, 400, 400, 400, 400, 400, 100, 100, + 100, 100, 100, 100, 315, 627, 318, 318, 318, 318, + 318, 319, 316, 316, 316, 316, 320, 320, 320, 320, + 320, 320, 320, 320, 320, 320, 119, 597, 101, 628, + 320, 320, 320, 320, 320, 418, 418, 418, 418, 418, - 546, 479, 479, 479, 479, 479, 479, 479, 479, 443, - 443, 443, 443, 443, 443, 443, 443, 460, 470, 459, - 470, 471, 547, 79, 375, 377, 377, 377, 377, 377, - 377, 377, 377, 478, 470, 480, 480, 480, 480, 480, - 480, 480, 480, 79, 478, 382, 481, 481, 481, 481, - 481, 482, 479, 479, 470, 434, 470, 470, 79, 375, - 378, 378, 378, 378, 378, 379, 376, 376, 489, 489, - 489, 489, 489, 489, 489, 489, 490, 490, 490, 490, - 490, 491, 606, 170, 488, 488, 488, 488, 488, 488, - 488, 488, 401, 79, 382, 382, 383, 383, 383, 383, + 418, 418, 418, 418, 418, 476, 746, 477, 477, 477, + 477, 477, 477, 746, 320, 320, 320, 320, 320, 320, + 321, 321, 321, 321, 321, 321, 321, 321, 321, 321, + 100, 100, 100, 100, 321, 321, 321, 321, 321, 425, + 425, 425, 425, 425, 425, 425, 425, 425, 425, 554, + 554, 554, 554, 554, 555, 345, 218, 695, 320, 320, + 320, 320, 320, 320, 334, 335, 336, 334, 334, 334, + 334, 334, 334, 334, 813, 218, 345, 218, 483, 483, + 483, 483, 483, 483, 731, 127, 416, 813, 416, 487, + 487, 487, 487, 487, 487, 487, 487, 487, 487, 534, - 383, 383, 383, 383, 384, 487, 588, 589, 385, 385, - 385, 385, 385, 497, 498, 499, 497, 497, 497, 497, - 497, 444, 458, 445, 445, 445, 445, 445, 445, 445, - 445, 385, 385, 385, 385, 385, 385, 389, 390, 391, - 389, 389, 389, 389, 389, 392, 588, 589, 457, 393, - 393, 393, 393, 393, 444, 606, 445, 445, 445, 445, - 445, 445, 445, 445, 444, 487, 445, 445, 445, 445, - 445, 445, 393, 393, 393, 393, 393, 393, 253, 170, - 399, 399, 399, 399, 399, 399, 399, 399, 346, 253, - 170, 400, 400, 400, 400, 400, 400, 400, 400, 401, + 101, 339, 339, 340, 341, 341, 341, 341, 341, 341, + 341, 279, 345, 218, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 347, 101, 683, 684, 348, 348, + 348, 348, 348, 631, 105, 514, 515, 516, 517, 515, + 515, 515, 515, 515, 515, 515, 600, 600, 600, 600, + 600, 601, 348, 348, 348, 348, 348, 348, 218, 352, + 353, 354, 352, 352, 352, 352, 352, 352, 352, 355, + 730, 695, 127, 356, 356, 356, 356, 356, 527, 527, + 527, 527, 527, 527, 527, 527, 527, 527, 632, 623, + 695, 680, 675, 218, 127, 127, 127, 356, 356, 356, - 253, 170, 331, 402, 402, 402, 402, 402, 554, 515, - 401, 516, 517, 518, 515, 382, 516, 517, 518, 535, - 535, 535, 535, 535, 536, 487, 402, 402, 402, 402, - 402, 402, 170, 406, 407, 408, 406, 406, 406, 406, - 406, 382, 606, 79, 382, 409, 409, 409, 409, 409, - 251, 532, 532, 418, 532, 417, 519, 415, 590, 414, - 472, 521, 473, 473, 473, 473, 473, 473, 409, 409, - 409, 409, 409, 409, 375, 376, 376, 376, 376, 376, - 376, 376, 376, 546, 572, 522, 523, 524, 522, 522, - 522, 522, 522, 79, 413, 79, 525, 526, 527, 525, + 356, 356, 356, 813, 347, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 384, 384, 384, 384, 384, + 384, 384, 384, 384, 384, 695, 676, 676, 813, 384, + 384, 384, 384, 384, 475, 475, 475, 475, 475, 475, + 475, 475, 475, 475, 618, 618, 618, 618, 618, 619, + 677, 677, 813, 384, 384, 384, 384, 384, 384, 385, + 385, 385, 385, 385, 385, 385, 385, 385, 385, 703, + 634, 694, 127, 385, 385, 385, 385, 385, 536, 536, + 536, 536, 536, 536, 536, 536, 536, 536, 100, 100, + 100, 100, 634, 218, 634, 634, 734, 384, 384, 384, - 525, 525, 525, 525, 412, 547, 573, 411, 79, 375, - 376, 376, 376, 376, 376, 376, 376, 376, 79, 478, - 572, 479, 479, 479, 479, 479, 479, 479, 479, 478, - 410, 479, 479, 479, 479, 479, 479, 479, 479, 144, - 144, 337, 573, 79, 382, 585, 432, 432, 432, 432, - 432, 432, 432, 432, 384, 382, 331, 433, 433, 433, - 433, 433, 433, 433, 433, 434, 251, 586, 585, 435, - 435, 435, 435, 435, 478, 211, 479, 479, 479, 479, - 479, 479, 496, 496, 496, 496, 496, 496, 496, 496, - 586, 370, 435, 435, 435, 435, 435, 435, 439, 440, + 384, 384, 384, 399, 416, 400, 400, 400, 400, 400, + 400, 400, 400, 400, 400, 399, 532, 401, 401, 401, + 401, 401, 401, 401, 401, 401, 401, 399, 534, 402, + 402, 402, 402, 402, 403, 400, 400, 400, 400, 405, + 405, 405, 405, 405, 405, 405, 405, 405, 405, 279, + 345, 218, 414, 414, 414, 414, 414, 414, 414, 414, + 414, 414, 347, 634, 105, 101, 413, 413, 413, 413, + 413, 544, 545, 546, 544, 544, 544, 544, 544, 544, + 544, 686, 761, 107, 127, 634, 107, 634, 635, 644, + 413, 413, 413, 413, 413, 413, 345, 218, 415, 415, - 441, 439, 439, 439, 439, 439, 442, 369, 363, 362, - 443, 443, 443, 443, 443, 534, 534, 534, 534, 534, - 534, 534, 534, 606, 357, 533, 533, 533, 533, 533, - 533, 533, 533, 443, 443, 443, 443, 443, 443, 253, - 170, 451, 451, 451, 451, 451, 451, 451, 451, 401, - 253, 170, 452, 452, 452, 452, 452, 452, 452, 452, - 356, 331, 251, 211, 453, 453, 453, 453, 453, 170, - 541, 541, 541, 541, 541, 541, 541, 541, 170, 542, - 542, 542, 542, 542, 542, 542, 542, 453, 453, 453, - 453, 453, 453, 472, 211, 473, 473, 473, 473, 473, + 415, 415, 415, 415, 415, 415, 415, 415, 416, 345, + 218, 101, 417, 417, 417, 417, 417, 345, 218, 813, + 218, 416, 127, 127, 127, 762, 105, 101, 733, 485, + 676, 485, 561, 564, 101, 566, 417, 417, 417, 417, + 417, 417, 218, 421, 422, 423, 421, 421, 421, 421, + 421, 421, 421, 424, 677, 684, 813, 425, 425, 425, + 425, 425, 494, 494, 494, 494, 494, 494, 494, 494, + 494, 494, 662, 662, 662, 662, 662, 663, 101, 105, + 813, 425, 425, 425, 425, 425, 425, 813, 571, 417, + 417, 417, 417, 417, 417, 417, 417, 417, 417, 446, - 473, 473, 473, 170, 543, 543, 543, 543, 543, 544, - 541, 541, 606, 276, 606, 606, 606, 320, 319, 515, - 317, 516, 517, 518, 316, 315, 314, 313, 79, 472, - 312, 474, 474, 474, 474, 474, 474, 474, 474, 606, - 311, 516, 517, 518, 606, 310, 606, 606, 518, 292, - 606, 251, 606, 606, 606, 211, 288, 211, 103, 519, - 276, 278, 276, 277, 79, 472, 519, 475, 475, 475, - 475, 475, 476, 477, 477, 552, 276, 274, 553, 553, - 553, 553, 553, 553, 553, 553, 519, 273, 272, 271, - 270, 519, 269, 97, 211, 514, 514, 521, 251, 514, + 701, 449, 449, 449, 449, 449, 450, 447, 447, 447, + 447, 384, 384, 384, 384, 384, 384, 384, 384, 384, + 384, 781, 782, 781, 782, 384, 384, 384, 384, 384, + 345, 218, 549, 549, 549, 549, 549, 549, 685, 575, + 575, 607, 485, 608, 608, 608, 608, 608, 608, 384, + 384, 384, 384, 384, 384, 464, 465, 466, 464, 464, + 464, 464, 464, 464, 464, 553, 553, 553, 553, 553, + 553, 553, 553, 553, 553, 591, 592, 593, 591, 591, + 591, 591, 591, 591, 591, 695, 732, 700, 700, 700, + 644, 101, 399, 532, 400, 400, 400, 400, 400, 400, - 79, 472, 211, 477, 477, 477, 473, 473, 473, 473, - 473, 514, 514, 514, 520, 520, 103, 559, 520, 560, - 560, 560, 560, 560, 560, 560, 560, 83, 199, 239, - 520, 520, 520, 236, 235, 234, 79, 382, 233, 485, - 485, 485, 485, 485, 485, 485, 485, 434, 382, 232, - 486, 486, 486, 486, 486, 486, 486, 486, 487, 230, - 229, 228, 488, 488, 488, 488, 488, 559, 227, 561, - 561, 561, 561, 561, 561, 561, 561, 540, 540, 540, - 540, 540, 540, 540, 540, 488, 488, 488, 488, 488, - 488, 492, 493, 494, 492, 492, 492, 492, 492, 495, + 400, 400, 400, 400, 399, 597, 400, 400, 400, 400, + 400, 400, 400, 400, 400, 400, 471, 472, 473, 471, + 471, 471, 471, 471, 471, 471, 474, 728, 101, 728, + 475, 475, 475, 475, 475, 543, 543, 543, 543, 543, + 543, 543, 543, 543, 543, 127, 211, 741, 786, 211, + 218, 729, 218, 729, 475, 475, 475, 475, 475, 475, + 476, 416, 479, 479, 479, 479, 479, 480, 477, 477, + 477, 477, 345, 218, 483, 483, 483, 483, 483, 483, + 483, 483, 483, 483, 416, 101, 101, 218, 482, 482, + 482, 482, 482, 532, 813, 595, 595, 595, 595, 595, - 226, 225, 224, 496, 496, 496, 496, 496, 559, 223, - 562, 562, 562, 562, 562, 563, 560, 560, 569, 569, - 569, 569, 569, 569, 569, 569, 496, 496, 496, 496, - 496, 496, 253, 170, 502, 502, 502, 502, 502, 502, - 502, 502, 472, 222, 473, 473, 473, 473, 473, 473, - 473, 473, 570, 570, 570, 570, 570, 571, 606, 221, - 568, 568, 568, 568, 568, 568, 568, 568, 170, 541, - 541, 541, 541, 541, 541, 541, 541, 79, 472, 103, - 473, 473, 473, 473, 473, 473, 473, 473, 170, 541, - 541, 541, 541, 541, 541, 541, 541, 170, 541, 541, + 595, 169, 169, 169, 218, 534, 597, 688, 759, 689, + 690, 691, 482, 482, 482, 482, 482, 482, 345, 218, + 484, 484, 484, 484, 484, 484, 484, 484, 484, 484, + 485, 316, 760, 316, 486, 486, 486, 486, 486, 599, + 599, 599, 599, 599, 599, 599, 599, 599, 599, 574, + 575, 575, 575, 575, 575, 575, 597, 692, 486, 486, + 486, 486, 486, 486, 218, 490, 491, 492, 490, 490, + 490, 490, 490, 490, 490, 493, 218, 345, 218, 494, + 494, 494, 494, 494, 345, 218, 218, 485, 218, 485, + 813, 218, 169, 169, 169, 534, 551, 485, 532, 551, - 541, 541, 541, 541, 553, 553, 553, 553, 553, 553, - 553, 553, 95, 79, 382, 83, 530, 530, 530, 530, - 530, 530, 530, 530, 487, 382, 83, 531, 531, 531, - 531, 531, 531, 531, 531, 532, 199, 151, 152, 533, - 533, 533, 533, 533, 553, 553, 553, 553, 553, 553, - 553, 553, 576, 577, 578, 576, 576, 576, 576, 576, - 146, 146, 533, 533, 533, 533, 533, 533, 537, 538, - 539, 537, 537, 537, 537, 537, 138, 197, 132, 132, - 540, 540, 540, 540, 540, 79, 554, 190, 555, 555, - 555, 555, 555, 555, 579, 580, 581, 579, 579, 579, + 759, 813, 551, 494, 494, 494, 494, 494, 494, 813, + 597, 486, 486, 486, 486, 486, 486, 486, 486, 486, + 486, 100, 650, 778, 760, 813, 317, 100, 317, 735, + 100, 100, 735, 100, 100, 100, 127, 127, 127, 127, + 127, 127, 127, 127, 127, 127, 702, 779, 650, 100, + 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, + 127, 127, 127, 127, 495, 127, 127, 127, 127, 127, + 127, 127, 101, 127, 100, 100, 100, 100, 100, 100, + 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, + 100, 525, 526, 526, 526, 526, 526, 526, 526, 526, - 579, 579, 189, 540, 540, 540, 540, 540, 540, 554, - 188, 555, 555, 555, 555, 555, 555, 555, 555, 187, - 559, 79, 560, 560, 560, 560, 560, 560, 560, 560, - 559, 186, 560, 560, 560, 560, 560, 560, 560, 560, - 184, 183, 182, 181, 79, 554, 176, 556, 556, 556, - 556, 556, 556, 556, 556, 559, 175, 560, 560, 560, - 560, 560, 560, 382, 174, 584, 584, 584, 584, 584, - 584, 584, 584, 595, 595, 595, 595, 595, 595, 103, - 79, 554, 78, 557, 557, 557, 557, 557, 558, 555, - 555, 595, 595, 595, 595, 595, 595, 595, 595, 596, + 526, 526, 345, 218, 614, 614, 614, 614, 614, 614, + 447, 650, 447, 532, 551, 617, 617, 617, 617, 617, + 617, 617, 617, 617, 617, 659, 576, 576, 101, 532, + 813, 533, 533, 533, 533, 533, 533, 533, 533, 533, + 533, 534, 659, 695, 813, 535, 535, 535, 535, 535, + 636, 637, 638, 639, 636, 636, 636, 636, 636, 636, + 345, 218, 674, 674, 674, 674, 674, 674, 813, 535, + 535, 535, 535, 535, 535, 539, 540, 541, 539, 539, + 539, 539, 539, 539, 539, 542, 778, 695, 739, 543, + 543, 543, 543, 543, 646, 646, 646, 646, 646, 646, - 596, 596, 596, 596, 596, 596, 596, 597, 597, 597, - 597, 597, 598, 595, 595, 103, 79, 382, 163, 566, - 566, 566, 566, 566, 566, 566, 566, 532, 382, 91, - 567, 567, 567, 567, 567, 567, 567, 567, 83, 81, - 80, 79, 568, 568, 568, 568, 568, 152, 600, 601, - 602, 600, 600, 600, 600, 600, 590, 146, 591, 591, - 591, 591, 591, 591, 138, 568, 568, 568, 568, 568, - 568, 554, 132, 555, 555, 555, 555, 555, 555, 555, - 555, 79, 595, 595, 595, 595, 595, 595, 595, 595, - 128, 79, 595, 595, 595, 595, 595, 595, 595, 595, + 646, 646, 646, 646, 448, 477, 448, 477, 345, 218, + 779, 575, 575, 543, 543, 543, 543, 543, 543, 813, + 551, 535, 535, 535, 535, 535, 535, 535, 535, 535, + 535, 345, 218, 549, 549, 549, 549, 549, 549, 549, + 549, 549, 549, 485, 728, 681, 813, 548, 548, 548, + 548, 548, 647, 647, 647, 647, 647, 648, 649, 649, + 649, 649, 688, 607, 689, 690, 691, 478, 729, 478, + 813, 548, 548, 548, 548, 548, 548, 345, 218, 550, + 550, 550, 550, 550, 550, 550, 550, 550, 550, 551, + 127, 740, 813, 552, 552, 552, 552, 552, 606, 606, - 126, 113, 112, 111, 110, 109, 79, 554, 108, 555, - 555, 555, 555, 555, 555, 555, 555, 105, 103, 91, - 603, 603, 603, 603, 603, 603, 603, 603, 600, 600, - 600, 600, 600, 600, 600, 600, 81, 80, 79, 606, - 606, 606, 79, 590, 606, 591, 591, 591, 591, 591, - 591, 591, 591, 79, 606, 606, 606, 606, 606, 606, - 606, 79, 604, 604, 604, 604, 604, 605, 603, 603, - 603, 603, 603, 603, 603, 603, 603, 603, 79, 590, - 606, 592, 592, 592, 592, 592, 592, 592, 592, 606, - 606, 606, 606, 606, 606, 79, 603, 603, 603, 603, + 606, 606, 606, 606, 606, 606, 606, 606, 447, 477, + 447, 477, 694, 608, 607, 608, 813, 552, 552, 552, + 552, 552, 552, 218, 556, 557, 558, 556, 556, 556, + 556, 556, 556, 556, 607, 609, 768, 609, 559, 559, + 559, 559, 559, 532, 534, 657, 657, 657, 657, 657, + 657, 651, 650, 651, 650, 597, 651, 651, 651, 651, + 651, 651, 559, 559, 559, 559, 559, 559, 813, 532, + 552, 552, 552, 552, 552, 552, 552, 552, 552, 552, + 100, 659, 652, 608, 652, 608, 100, 687, 687, 100, + 100, 687, 100, 100, 100, 127, 127, 127, 127, 127, - 603, 603, 606, 79, 606, 606, 606, 606, 606, 606, - 606, 606, 606, 606, 79, 590, 606, 593, 593, 593, - 593, 593, 594, 591, 591, 606, 606, 606, 606, 79, - 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, - 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, - 79, 590, 606, 591, 591, 591, 591, 591, 591, 591, - 591, 606, 606, 606, 606, 606, 606, 606, 606, 606, - 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, - 606, 606, 606, 606, 606, 606, 79, 590, 606, 591, - 591, 591, 591, 591, 591, 591, 591, 606, 606, 606, + 127, 127, 127, 127, 127, 687, 687, 687, 100, 127, + 127, 127, 127, 127, 127, 127, 560, 127, 127, 127, + 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, + 127, 101, 127, 100, 100, 100, 100, 100, 100, 100, + 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, + 574, 577, 577, 577, 577, 577, 578, 575, 575, 575, + 575, 187, 723, 723, 532, 187, 198, 198, 198, 198, + 198, 198, 198, 198, 198, 198, 714, 187, 724, 724, + 198, 198, 198, 583, 198, 198, 198, 198, 198, 198, + 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, - 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, - 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, - 606, 606, 79, 57, 57, 57, 57, 57, 57, 57, - 57, 57, 57, 57, 57, 57, 57, 57, 57, 31, - 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, - 31, 31, 31, 31, 31, 66, 66, 66, 66, 66, - 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, - 66, 73, 73, 73, 73, 73, 73, 73, 73, 73, - 73, 73, 73, 73, 73, 73, 73, 78, 606, 606, - 606, 606, 606, 606, 606, 78, 78, 78, 606, 606, + 198, 198, 650, 200, 187, 187, 187, 187, 187, 187, + 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, + 187, 586, 587, 588, 589, 586, 586, 586, 586, 586, + 586, 661, 661, 661, 661, 661, 661, 661, 661, 661, + 661, 669, 670, 671, 669, 669, 669, 669, 669, 669, + 669, 717, 717, 717, 717, 717, 718, 101, 525, 526, + 526, 526, 526, 526, 526, 526, 526, 526, 526, 707, + 708, 709, 707, 707, 707, 707, 707, 707, 707, 668, + 668, 668, 668, 668, 668, 668, 668, 668, 668, 757, + 757, 757, 757, 757, 758, 101, 532, 813, 595, 595, - 78, 78, 78, 82, 82, 82, 82, 82, 82, 82, - 82, 82, 82, 82, 82, 82, 82, 82, 82, 86, - 606, 606, 606, 606, 86, 606, 606, 86, 86, 86, - 86, 606, 86, 86, 86, 90, 606, 606, 606, 606, - 606, 606, 606, 90, 90, 90, 606, 606, 90, 90, - 90, 92, 606, 606, 92, 92, 606, 92, 606, 92, - 92, 92, 606, 606, 92, 92, 92, 102, 102, 606, - 606, 606, 102, 133, 606, 606, 133, 133, 606, 133, - 606, 133, 133, 133, 606, 606, 133, 133, 133, 137, - 606, 606, 137, 137, 606, 137, 606, 137, 137, 137, + 595, 595, 595, 595, 595, 595, 595, 595, 534, 714, + 470, 643, 594, 594, 594, 594, 594, 532, 532, 712, + 712, 712, 712, 712, 712, 696, 697, 696, 697, 659, + 714, 813, 218, 813, 813, 813, 594, 594, 594, 594, + 594, 594, 532, 551, 596, 596, 596, 596, 596, 596, + 596, 596, 596, 596, 597, 759, 642, 641, 598, 598, + 598, 598, 598, 716, 716, 716, 716, 716, 716, 716, + 716, 716, 716, 688, 640, 689, 690, 691, 651, 760, + 651, 692, 598, 598, 598, 598, 598, 598, 602, 603, + 604, 602, 602, 602, 602, 602, 602, 602, 605, 574, - 606, 137, 606, 137, 137, 145, 606, 606, 145, 606, - 606, 145, 606, 145, 145, 145, 145, 606, 145, 145, - 145, 149, 149, 149, 149, 149, 149, 149, 149, 149, - 149, 149, 149, 149, 149, 149, 149, 151, 151, 606, - 151, 606, 151, 151, 151, 151, 151, 151, 151, 151, - 151, 151, 151, 157, 157, 157, 157, 157, 157, 157, - 157, 157, 157, 157, 157, 157, 157, 157, 157, 158, - 158, 606, 158, 158, 158, 158, 158, 158, 158, 158, - 158, 158, 158, 158, 158, 161, 606, 606, 606, 606, - 161, 606, 606, 161, 161, 161, 606, 606, 161, 161, + 574, 127, 606, 606, 606, 606, 606, 736, 737, 738, + 736, 736, 736, 736, 736, 736, 736, 791, 791, 791, + 791, 791, 791, 692, 574, 101, 606, 606, 606, 606, + 606, 606, 813, 630, 598, 598, 598, 598, 598, 598, + 598, 598, 598, 598, 607, 629, 610, 610, 610, 610, + 610, 611, 608, 608, 608, 608, 345, 218, 614, 614, + 614, 614, 614, 614, 614, 614, 614, 614, 551, 101, + 218, 778, 613, 613, 613, 613, 613, 813, 607, 689, + 690, 691, 813, 607, 813, 813, 691, 695, 470, 696, + 696, 696, 696, 696, 696, 779, 613, 613, 613, 613, - 161, 93, 606, 606, 93, 93, 606, 93, 606, 93, - 93, 93, 606, 606, 93, 93, 93, 169, 169, 606, - 606, 606, 169, 171, 171, 171, 606, 606, 606, 171, - 134, 606, 606, 134, 134, 606, 134, 606, 134, 134, - 134, 606, 606, 134, 134, 134, 200, 200, 200, 200, - 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, - 200, 200, 207, 207, 606, 606, 606, 207, 213, 213, - 213, 606, 606, 606, 213, 245, 245, 606, 606, 606, - 245, 246, 246, 606, 606, 606, 246, 250, 250, 606, - 606, 606, 250, 252, 252, 252, 606, 606, 606, 252, + 613, 613, 345, 218, 615, 615, 615, 615, 615, 615, + 615, 615, 615, 615, 747, 343, 747, 127, 616, 616, + 616, 616, 616, 748, 764, 748, 764, 692, 765, 797, + 765, 797, 692, 218, 723, 723, 723, 723, 723, 723, + 585, 582, 616, 616, 616, 616, 616, 616, 813, 581, + 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, + 100, 693, 580, 693, 693, 693, 100, 693, 693, 100, + 100, 693, 100, 100, 100, 127, 127, 127, 127, 127, + 127, 127, 127, 127, 127, 693, 693, 693, 100, 127, + 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 288, 288, 606, 606, 606, 288, 290, 290, 606, 606, - 606, 290, 291, 291, 606, 606, 606, 291, 293, 293, - 293, 606, 606, 606, 293, 297, 297, 297, 297, 606, - 606, 606, 297, 328, 328, 606, 606, 606, 328, 329, - 329, 606, 606, 606, 329, 330, 330, 606, 606, 606, - 330, 342, 342, 342, 606, 606, 606, 342, 343, 343, - 343, 343, 606, 606, 606, 343, 380, 380, 606, 606, - 606, 380, 381, 381, 606, 606, 606, 381, 397, 397, - 397, 606, 606, 606, 397, 398, 398, 398, 398, 606, - 606, 606, 398, 427, 427, 606, 606, 606, 427, 431, + 127, 127, 127, 127, 127, 127, 127, 620, 127, 127, + 127, 101, 127, 100, 100, 100, 100, 100, 100, 100, + 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, + 625, 746, 579, 747, 747, 747, 747, 747, 747, 187, + 798, 574, 798, 187, 198, 198, 198, 198, 198, 198, + 198, 198, 198, 198, 626, 187, 574, 569, 198, 198, + 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, + 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, + 568, 200, 187, 187, 187, 187, 187, 187, 187, 187, + 187, 187, 187, 187, 187, 187, 187, 187, 187, 644, - 606, 431, 431, 606, 606, 606, 431, 449, 449, 449, - 606, 606, 606, 449, 450, 450, 450, 450, 606, 606, - 606, 450, 483, 483, 606, 606, 606, 483, 484, 606, - 484, 484, 606, 606, 606, 484, 500, 500, 500, 606, - 606, 606, 500, 501, 501, 501, 606, 606, 606, 606, - 501, 509, 509, 509, 509, 509, 509, 509, 509, 509, - 509, 509, 509, 509, 509, 509, 509, 514, 514, 606, - 514, 514, 514, 606, 606, 514, 514, 514, 606, 606, - 514, 514, 514, 520, 520, 606, 520, 520, 520, 606, - 606, 520, 520, 520, 606, 606, 520, 520, 520, 528, + 476, 645, 645, 645, 645, 645, 645, 645, 645, 645, + 645, 722, 722, 722, 722, 722, 722, 722, 722, 722, + 722, 532, 476, 753, 753, 753, 753, 753, 753, 755, + 476, 470, 755, 714, 343, 279, 755, 101, 650, 524, + 653, 653, 653, 653, 653, 654, 651, 651, 651, 651, + 532, 523, 657, 657, 657, 657, 657, 657, 657, 657, + 657, 657, 597, 522, 519, 518, 656, 656, 656, 656, + 656, 756, 756, 756, 756, 756, 756, 756, 756, 756, + 756, 532, 446, 777, 777, 777, 777, 777, 777, 446, + 656, 656, 656, 656, 656, 656, 532, 446, 658, 658, - 528, 606, 606, 606, 528, 529, 606, 529, 529, 606, - 606, 606, 529, 545, 545, 606, 606, 606, 606, 545, - 564, 564, 606, 606, 606, 564, 565, 606, 565, 565, - 606, 606, 606, 565, 582, 582, 606, 606, 606, 582, - 583, 606, 583, 606, 606, 606, 606, 583, 587, 587, - 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, - 587, 587, 587, 587, 13, 606, 606, 606, 606, 606, - 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, - 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, - 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, + 658, 658, 658, 658, 658, 658, 658, 658, 659, 510, + 509, 101, 660, 660, 660, 660, 660, 735, 735, 735, + 735, 735, 735, 735, 735, 735, 735, 763, 101, 764, + 764, 764, 764, 764, 764, 101, 660, 660, 660, 660, + 660, 660, 664, 665, 666, 664, 664, 664, 664, 664, + 664, 664, 667, 101, 476, 476, 668, 668, 668, 668, + 668, 735, 735, 735, 735, 735, 735, 735, 735, 735, + 735, 470, 741, 343, 742, 742, 742, 742, 742, 742, + 668, 668, 668, 668, 668, 668, 813, 279, 660, 660, + 660, 660, 660, 660, 660, 660, 660, 660, 345, 218, - 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, - 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, - 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, - 606 + 674, 674, 674, 674, 674, 674, 674, 674, 674, 674, + 101, 279, 463, 462, 673, 673, 673, 673, 673, 772, + 773, 774, 772, 772, 772, 772, 772, 772, 772, 796, + 461, 797, 797, 797, 797, 797, 797, 460, 673, 673, + 673, 673, 673, 673, 695, 459, 698, 698, 698, 698, + 698, 699, 700, 700, 700, 700, 704, 705, 706, 704, + 704, 704, 704, 704, 704, 704, 783, 784, 785, 783, + 783, 783, 783, 783, 783, 783, 791, 791, 791, 791, + 791, 791, 791, 791, 791, 791, 810, 810, 810, 810, + 810, 810, 101, 644, 458, 645, 645, 645, 645, 645, + + 645, 645, 645, 645, 645, 792, 792, 792, 792, 792, + 792, 792, 792, 792, 792, 793, 793, 793, 793, 793, + 794, 791, 791, 791, 791, 457, 795, 456, 455, 795, + 454, 101, 532, 795, 712, 712, 712, 712, 712, 712, + 712, 712, 712, 712, 659, 453, 452, 451, 711, 711, + 711, 711, 711, 786, 813, 787, 787, 787, 787, 787, + 787, 791, 791, 791, 791, 791, 791, 791, 791, 791, + 791, 446, 711, 711, 711, 711, 711, 711, 532, 446, + 713, 713, 713, 713, 713, 713, 713, 713, 713, 713, + 714, 101, 374, 441, 715, 715, 715, 715, 715, 791, + + 791, 791, 791, 791, 791, 791, 791, 791, 791, 440, + 434, 433, 432, 431, 430, 429, 428, 427, 715, 715, + 715, 715, 715, 715, 719, 720, 721, 719, 719, 719, + 719, 719, 719, 719, 426, 408, 343, 279, 722, 722, + 722, 722, 722, 804, 805, 806, 804, 804, 804, 804, + 804, 804, 804, 404, 279, 125, 807, 807, 807, 807, + 807, 807, 722, 722, 722, 722, 722, 722, 813, 398, + 715, 715, 715, 715, 715, 715, 715, 715, 715, 715, + 218, 725, 725, 725, 725, 725, 726, 723, 723, 723, + 723, 741, 101, 742, 742, 742, 742, 742, 742, 742, + + 742, 742, 742, 741, 397, 743, 743, 743, 743, 743, + 743, 743, 743, 743, 743, 741, 396, 744, 744, 744, + 744, 744, 745, 742, 742, 742, 742, 746, 393, 749, + 749, 749, 749, 749, 750, 747, 747, 747, 747, 532, + 392, 753, 753, 753, 753, 753, 753, 753, 753, 753, + 753, 714, 391, 390, 389, 752, 752, 752, 752, 752, + 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, + 388, 315, 315, 315, 374, 376, 374, 375, 374, 752, + 752, 752, 752, 752, 752, 532, 368, 754, 754, 754, + 754, 754, 754, 754, 754, 754, 754, 367, 366, 365, + + 364, 755, 755, 755, 755, 755, 804, 804, 804, 804, + 804, 804, 804, 804, 804, 804, 363, 362, 359, 119, + 279, 343, 279, 125, 105, 755, 755, 755, 755, 755, + 755, 763, 333, 766, 766, 766, 766, 766, 767, 764, + 764, 764, 764, 100, 329, 769, 770, 771, 769, 769, + 769, 769, 769, 769, 769, 741, 328, 742, 742, 742, + 742, 742, 742, 742, 742, 742, 742, 741, 327, 742, + 742, 742, 742, 742, 742, 742, 742, 742, 742, 532, + 326, 777, 777, 777, 777, 777, 777, 777, 777, 777, + 777, 786, 325, 787, 787, 787, 787, 787, 787, 787, + + 787, 787, 787, 786, 324, 788, 788, 788, 788, 788, + 788, 788, 788, 788, 788, 786, 323, 789, 789, 789, + 789, 789, 790, 787, 787, 787, 787, 796, 322, 799, + 799, 799, 799, 799, 800, 797, 797, 797, 797, 100, + 191, 801, 802, 803, 801, 801, 801, 801, 801, 801, + 801, 786, 315, 787, 787, 787, 787, 787, 787, 787, + 787, 787, 787, 786, 315, 787, 787, 787, 787, 787, + 787, 787, 787, 787, 787, 807, 807, 807, 807, 807, + 807, 807, 807, 807, 807, 811, 811, 811, 811, 811, + 812, 810, 810, 810, 810, 810, 810, 810, 810, 810, + + 810, 810, 810, 810, 810, 250, 312, 309, 308, 307, + 306, 101, 801, 801, 801, 801, 801, 801, 801, 801, + 801, 801, 305, 300, 299, 298, 297, 296, 295, 294, + 293, 292, 291, 290, 289, 125, 117, 105, 105, 267, + 266, 265, 264, 259, 258, 257, 813, 188, 101, 808, + 808, 808, 808, 808, 809, 807, 807, 807, 807, 250, + 176, 177, 171, 171, 163, 248, 157, 157, 241, 240, + 239, 238, 237, 234, 233, 232, 231, 230, 225, 224, + 223, 222, 125, 100, 125, 101, 807, 807, 807, 807, + 807, 807, 807, 807, 807, 807, 190, 113, 210, 105, + + 103, 102, 101, 205, 204, 203, 202, 198, 177, 171, + 163, 133, 131, 157, 156, 153, 151, 137, 136, 135, + 132, 127, 101, 61, 61, 61, 61, 61, 61, 61, + 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, + 61, 61, 61, 61, 33, 33, 33, 33, 33, 33, + 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, + 33, 33, 33, 33, 33, 70, 70, 70, 70, 70, + 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, + 70, 70, 70, 70, 70, 70, 77, 77, 77, 77, + 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, + + 77, 77, 77, 77, 77, 77, 77, 100, 125, 113, + 103, 102, 101, 813, 100, 813, 100, 100, 100, 100, + 813, 813, 100, 100, 100, 100, 100, 100, 104, 104, + 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, + 104, 104, 104, 104, 104, 104, 104, 104, 104, 108, + 813, 813, 813, 813, 108, 813, 108, 813, 108, 108, + 108, 108, 108, 813, 108, 108, 108, 108, 108, 108, + 112, 813, 813, 813, 813, 813, 813, 112, 813, 112, + 112, 112, 112, 813, 813, 112, 112, 112, 112, 112, + 112, 114, 813, 813, 114, 114, 813, 114, 114, 813, + + 114, 114, 114, 114, 813, 813, 114, 114, 114, 114, + 114, 114, 124, 124, 813, 124, 813, 813, 813, 124, + 158, 813, 813, 158, 158, 813, 158, 158, 813, 158, + 158, 158, 158, 813, 813, 158, 158, 158, 158, 158, + 158, 162, 813, 813, 162, 162, 813, 162, 162, 813, + 162, 162, 162, 162, 813, 162, 162, 162, 813, 162, + 162, 162, 170, 813, 813, 170, 813, 813, 170, 170, + 813, 170, 170, 170, 170, 170, 813, 170, 170, 170, + 170, 170, 170, 174, 174, 174, 174, 174, 174, 174, + 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, + + 174, 174, 174, 174, 176, 176, 813, 176, 813, 176, + 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, + 176, 176, 176, 176, 176, 182, 813, 813, 813, 813, + 182, 813, 182, 813, 182, 182, 182, 182, 182, 813, + 182, 182, 182, 182, 182, 182, 186, 813, 813, 813, + 813, 813, 813, 186, 813, 186, 186, 186, 186, 813, + 186, 186, 186, 186, 186, 186, 186, 189, 813, 813, + 189, 189, 813, 189, 189, 813, 189, 189, 189, 189, + 813, 189, 189, 189, 189, 189, 189, 189, 208, 208, + 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, + + 208, 208, 208, 208, 208, 208, 208, 208, 208, 209, + 209, 813, 209, 209, 209, 209, 209, 209, 209, 209, + 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, + 115, 813, 813, 115, 115, 813, 115, 115, 813, 115, + 115, 115, 115, 813, 813, 115, 115, 115, 115, 115, + 115, 124, 124, 813, 124, 813, 813, 813, 124, 217, + 217, 813, 217, 813, 813, 813, 217, 219, 219, 219, + 813, 219, 813, 813, 813, 219, 158, 813, 813, 158, + 158, 813, 158, 158, 813, 158, 158, 158, 158, 813, + 813, 158, 158, 158, 158, 158, 158, 159, 813, 813, + + 159, 159, 813, 159, 159, 813, 159, 159, 159, 159, + 813, 813, 159, 159, 159, 159, 159, 159, 162, 813, + 813, 162, 162, 813, 162, 162, 813, 162, 162, 162, + 162, 813, 162, 162, 162, 813, 162, 162, 162, 170, + 813, 813, 170, 813, 813, 170, 170, 813, 170, 170, + 170, 170, 170, 813, 170, 170, 170, 170, 170, 170, + 185, 813, 813, 813, 813, 813, 813, 185, 813, 185, + 185, 185, 185, 813, 813, 185, 185, 185, 185, 185, + 185, 186, 813, 813, 813, 813, 813, 813, 186, 813, + 186, 186, 186, 186, 813, 186, 186, 186, 186, 186, + + 186, 186, 189, 813, 813, 189, 189, 813, 189, 189, + 813, 189, 189, 189, 189, 813, 189, 189, 189, 189, + 189, 189, 189, 200, 813, 813, 200, 200, 813, 200, + 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, + 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, + 268, 275, 275, 813, 275, 813, 813, 813, 275, 281, + 281, 281, 813, 281, 813, 813, 813, 281, 337, 337, + 813, 337, 813, 813, 813, 337, 338, 338, 813, 338, + 813, 813, 813, 338, 342, 342, 813, 342, 813, 813, + 813, 342, 344, 344, 344, 813, 344, 813, 813, 813, + + 344, 200, 813, 813, 200, 200, 813, 200, 404, 404, + 813, 404, 813, 813, 813, 404, 406, 406, 813, 406, + 813, 813, 813, 406, 407, 407, 813, 407, 813, 813, + 813, 407, 409, 409, 409, 813, 409, 813, 813, 813, + 409, 413, 413, 413, 413, 813, 413, 813, 813, 813, + 413, 467, 467, 813, 467, 813, 813, 813, 467, 468, + 468, 813, 468, 813, 813, 813, 468, 469, 469, 813, + 469, 813, 813, 813, 469, 481, 481, 481, 813, 481, + 813, 813, 813, 481, 482, 482, 482, 482, 813, 482, + 813, 813, 813, 482, 208, 208, 208, 208, 208, 208, + + 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, + 208, 208, 208, 208, 208, 530, 530, 813, 530, 813, + 813, 813, 530, 531, 531, 813, 531, 813, 813, 813, + 531, 547, 547, 547, 813, 547, 813, 813, 813, 547, + 548, 548, 548, 548, 813, 548, 813, 813, 813, 548, + 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, + 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, + 208, 200, 813, 813, 200, 200, 813, 200, 187, 813, + 813, 813, 187, 187, 813, 187, 187, 187, 813, 813, + 187, 187, 590, 590, 813, 590, 813, 813, 813, 590, + + 594, 813, 594, 594, 813, 594, 813, 813, 813, 594, + 612, 612, 612, 813, 612, 813, 813, 813, 612, 613, + 613, 613, 613, 813, 613, 813, 813, 813, 613, 559, + 559, 813, 813, 559, 813, 813, 813, 559, 208, 208, + 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, + 208, 208, 208, 208, 208, 208, 208, 208, 208, 200, + 813, 813, 200, 200, 813, 200, 187, 813, 813, 813, + 187, 187, 813, 187, 187, 187, 813, 813, 187, 187, + 655, 655, 813, 655, 813, 813, 813, 655, 656, 813, + 656, 656, 813, 656, 813, 813, 813, 656, 672, 672, + + 672, 813, 672, 813, 813, 813, 672, 673, 673, 673, + 813, 813, 673, 813, 813, 813, 673, 682, 682, 682, + 682, 682, 682, 682, 682, 682, 682, 682, 682, 682, + 682, 682, 682, 682, 682, 682, 682, 682, 687, 687, + 813, 687, 687, 687, 813, 687, 813, 687, 687, 687, + 687, 813, 813, 687, 687, 687, 687, 687, 687, 693, + 693, 813, 693, 693, 693, 813, 693, 813, 693, 693, + 693, 693, 813, 813, 693, 693, 693, 693, 693, 693, + 200, 813, 813, 813, 813, 813, 813, 813, 813, 813, + 813, 200, 200, 813, 200, 200, 813, 200, 710, 710, + + 813, 710, 813, 813, 813, 710, 711, 813, 711, 711, + 813, 711, 813, 813, 813, 711, 727, 727, 813, 813, + 727, 813, 813, 813, 727, 693, 813, 813, 813, 813, + 813, 813, 693, 813, 693, 693, 693, 693, 813, 813, + 693, 693, 693, 693, 693, 693, 751, 751, 813, 751, + 813, 813, 813, 751, 752, 813, 752, 752, 813, 752, + 813, 813, 813, 752, 775, 775, 813, 775, 813, 813, + 813, 775, 776, 813, 776, 813, 813, 776, 813, 813, + 813, 776, 780, 780, 780, 780, 780, 780, 780, 780, + 780, 780, 780, 780, 780, 780, 780, 780, 780, 780, + + 780, 780, 780, 15, 813, 813, 813, 813, 813, 813, + 813, 813, 813, 813, 813, 813, 813, 813, 813, 813, + 813, 813, 813, 813, 813, 813, 813, 813, 813, 813, + 813, 813, 813, 813, 813, 813, 813, 813, 813, 813, + 813, 813, 813, 813, 813, 813, 813, 813, 813, 813, + 813, 813, 813, 813, 813, 813, 813, 813, 813, 813, + 813, 813, 813, 813, 813, 813, 813, 813, 813, 813, + 813, 813, 813, 813 } ; -static yyconst short int yy_chk[3732] = +static yyconst short int yy_chk[5675] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, @@ -982,411 +1293,624 @@ static yyconst short int yy_chk[3732] = 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 2, 44, 3, 34, - 2, 103, 3, 4, 47, 20, 126, 4, 3, 34, - 103, 3, 52, 4, 44, 48, 4, 11, 11, 11, - 11, 126, 52, 20, 2, 2, 56, 47, 2, 74, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 2, 533, 3, 38, 2, 52, 3, 49, 38, 50, + 4, 36, 3, 533, 4, 3, 11, 11, 11, 11, + 4, 22, 36, 4, 40, 5, 5, 5, 50, 5, - 5, 5, 5, 48, 5, 2, 50, 3, 2, 3, - 5, 603, 4, 56, 4, 6, 6, 6, 20, 6, - 64, 64, 5, 5, 75, 6, 12, 12, 12, 12, - 3, 196, 68, 50, 11, 4, 70, 6, 6, 25, - 25, 72, 72, 25, 25, 196, 74, 5, 27, 27, - 27, 27, 27, 27, 27, 27, 68, 88, 124, 127, - 70, 25, 6, 7, 7, 7, 45, 7, 587, 75, - 124, 127, 129, 12, 28, 28, 28, 28, 28, 28, - 139, 139, 129, 43, 25, 43, 43, 43, 43, 43, - 43, 43, 43, 194, 45, 45, 77, 77, 45, 77, + 2, 2, 49, 52, 2, 5, 68, 68, 40, 3, + 807, 22, 2, 3, 3, 2, 3, 4, 54, 5, + 5, 4, 4, 148, 4, 6, 6, 6, 54, 6, + 799, 12, 12, 12, 12, 6, 11, 22, 3, 76, + 76, 72, 46, 27, 27, 5, 4, 27, 27, 6, + 6, 46, 47, 78, 9, 9, 9, 9, 9, 74, + 46, 164, 164, 9, 9, 9, 72, 27, 30, 30, + 30, 30, 30, 30, 79, 6, 7, 7, 7, 9, + 7, 12, 47, 47, 74, 148, 47, 60, 141, 81, + 81, 27, 81, 141, 47, 91, 60, 47, 10, 10, - 88, 116, 123, 114, 114, 45, 116, 153, 45, 194, + 10, 10, 10, 78, 9, 60, 91, 10, 10, 10, + 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, + 161, 798, 79, 10, 179, 161, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, - 8, 53, 8, 206, 53, 53, 53, 53, 53, 53, - 53, 53, 84, 84, 84, 84, 84, 84, 84, 84, - 114, 62, 62, 62, 153, 62, 154, 125, 206, 62, - 123, 62, 85, 85, 85, 85, 85, 85, 85, 85, - 143, 143, 202, 62, 62, 8, 8, 8, 8, 8, + 7, 7, 7, 7, 7, 8, 8, 8, 10, 8, + 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, + 87, 87, 87, 87, 87, 87, 99, 101, 274, 101, + 101, 101, 179, 101, 101, 99, 149, 101, 106, 106, + 106, 106, 106, 106, 106, 106, 106, 106, 140, 149, + 140, 101, 101, 101, 274, 8, 8, 8, 8, 8, + 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 9, 9, 9, 9, 9, 62, 125, + 8, 8, 8, 8, 13, 13, 13, 13, 13, 13, + 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, + 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, + 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, + 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, + 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, + 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, + 13, 13, 13, 13, 21, 125, 153, 797, 82, 168, + 168, 270, 153, 178, 21, 784, 125, 21, 21, 21, - 128, 154, 9, 9, 9, 86, 128, 202, 55, 55, - 136, 161, 55, 55, 185, 136, 9, 101, 101, 101, - 101, 101, 101, 86, 155, 155, 198, 185, 87, 584, - 55, 87, 87, 87, 87, 87, 87, 87, 87, 198, - 9, 10, 10, 10, 10, 10, 582, 171, 86, 284, - 10, 10, 10, 55, 161, 89, 171, 89, 89, 222, - 568, 89, 89, 222, 10, 89, 213, 95, 95, 95, - 95, 95, 95, 95, 95, 213, 92, 92, 89, 89, - 92, 92, 192, 195, 284, 195, 512, 192, 10, 19, - 99, 99, 99, 99, 99, 99, 99, 99, 92, 19, + 21, 21, 21, 21, 21, 21, 21, 28, 82, 28, + 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, + 152, 180, 180, 28, 28, 28, 28, 28, 151, 270, + 289, 57, 57, 152, 82, 57, 57, 123, 123, 123, + 123, 123, 123, 178, 151, 28, 154, 28, 28, 28, + 28, 28, 28, 34, 289, 57, 154, 500, 246, 34, + 246, 500, 34, 34, 313, 34, 34, 34, 34, 34, + 34, 34, 34, 34, 34, 34, 34, 34, 34, 57, + 313, 34, 34, 34, 34, 34, 34, 34, 34, 34, + 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, - 95, 221, 19, 19, 19, 19, 19, 19, 19, 19, - 26, 191, 26, 26, 26, 26, 26, 26, 26, 26, - 26, 92, 237, 221, 26, 26, 26, 26, 26, 100, - 100, 100, 100, 100, 100, 100, 100, 131, 131, 131, - 131, 131, 131, 131, 131, 26, 512, 26, 26, 26, - 26, 26, 26, 32, 146, 238, 238, 146, 146, 32, - 567, 191, 32, 32, 146, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 146, 237, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, + 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, + 34, 34, 34, 37, 37, 37, 37, 37, 37, 37, + 37, 37, 37, 37, 219, 783, 242, 37, 37, 37, + 37, 37, 245, 150, 236, 219, 37, 107, 107, 107, + 107, 107, 107, 107, 107, 107, 107, 247, 236, 245, + 303, 37, 37, 37, 37, 37, 37, 44, 44, 44, + 44, 44, 247, 44, 44, 311, 311, 44, 121, 121, + 121, 121, 121, 121, 121, 121, 121, 121, 150, 242, + 108, 44, 44, 44, 45, 303, 45, 45, 45, 45, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 35, - 35, 35, 35, 35, 35, 35, 35, 35, 210, 210, - 210, 35, 35, 35, 35, 35, 109, 231, 240, 241, - 35, 109, 252, 231, 109, 241, 109, 117, 565, 150, - 150, 252, 239, 240, 35, 35, 35, 35, 35, 35, - 42, 42, 42, 42, 42, 293, 42, 42, 133, 133, - 42, 265, 133, 133, 293, 117, 117, 239, 281, 117, - 388, 388, 42, 42, 42, 46, 117, 163, 281, 117, - 133, 163, 323, 265, 239, 46, 150, 163, 46, 46, + 45, 45, 45, 45, 45, 45, 48, 66, 66, 66, + 108, 66, 304, 110, 370, 66, 48, 66, 304, 48, + 48, 48, 48, 48, 48, 48, 48, 48, 48, 132, + 243, 66, 66, 110, 132, 243, 108, 281, 132, 171, + 132, 83, 171, 171, 370, 138, 138, 83, 281, 171, + 83, 114, 114, 83, 83, 114, 114, 66, 182, 110, + 780, 302, 175, 175, 171, 48, 67, 83, 291, 83, + 183, 235, 235, 291, 235, 114, 67, 249, 182, 67, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 302, + 183, 249, 83, 83, 84, 138, 777, 84, 84, 114, - 46, 46, 46, 46, 46, 46, 275, 282, 323, 163, - 163, 275, 282, 133, 142, 142, 142, 142, 142, 142, - 142, 142, 159, 159, 159, 159, 159, 159, 159, 159, - 160, 160, 160, 160, 160, 160, 160, 160, 438, 438, - 46, 63, 201, 201, 201, 201, 201, 201, 201, 201, - 279, 63, 564, 280, 63, 63, 63, 63, 63, 63, - 63, 63, 79, 560, 79, 79, 79, 297, 79, 79, - 254, 254, 79, 197, 280, 201, 297, 197, 256, 256, - 254, 321, 322, 197, 79, 79, 79, 91, 256, 91, - 91, 91, 322, 91, 91, 197, 197, 91, 209, 209, + 84, 84, 84, 84, 182, 235, 84, 84, 111, 775, + 111, 111, 175, 314, 111, 111, 183, 369, 111, 314, + 84, 84, 84, 122, 122, 122, 122, 122, 122, 122, + 122, 122, 122, 111, 111, 156, 156, 156, 156, 156, + 156, 156, 156, 156, 156, 84, 84, 85, 310, 369, + 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, + 85, 85, 85, 85, 322, 357, 85, 85, 85, 85, + 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, + 85, 85, 85, 85, 85, 85, 85, 85, 322, 357, + 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, - 209, 209, 209, 209, 209, 209, 209, 298, 298, 91, - 91, 91, 94, 279, 94, 94, 94, 298, 94, 94, - 313, 383, 94, 162, 313, 162, 162, 452, 452, 162, - 162, 383, 321, 162, 94, 94, 94, 96, 96, 96, - 96, 96, 96, 96, 96, 162, 162, 162, 312, 96, - 96, 96, 96, 96, 205, 368, 205, 205, 205, 205, - 205, 205, 214, 214, 214, 214, 214, 214, 214, 214, - 312, 368, 96, 96, 96, 96, 96, 96, 104, 104, - 104, 104, 104, 104, 104, 104, 104, 316, 371, 205, - 104, 104, 104, 104, 104, 216, 216, 216, 216, 216, + 85, 85, 85, 85, 85, 85, 85, 88, 310, 88, + 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, + 278, 278, 278, 88, 88, 88, 88, 88, 266, 266, + 113, 266, 113, 113, 113, 330, 113, 113, 330, 371, + 113, 196, 196, 196, 196, 196, 196, 88, 88, 88, + 88, 88, 88, 89, 113, 113, 113, 89, 89, 89, + 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, + 453, 371, 89, 89, 89, 89, 89, 89, 89, 89, + 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, + 89, 89, 89, 89, 453, 89, 89, 89, 89, 89, - 216, 216, 216, 217, 217, 217, 217, 217, 217, 316, - 299, 299, 373, 104, 104, 104, 104, 104, 104, 135, - 299, 135, 135, 135, 549, 135, 135, 373, 219, 135, - 219, 219, 219, 219, 219, 219, 219, 219, 453, 453, - 371, 135, 135, 135, 164, 545, 164, 164, 164, 164, - 164, 164, 164, 164, 247, 247, 247, 247, 247, 247, - 247, 247, 247, 253, 253, 253, 253, 253, 253, 253, - 253, 255, 255, 255, 255, 255, 255, 255, 255, 164, - 165, 541, 165, 165, 165, 165, 165, 165, 165, 165, - 259, 259, 259, 259, 259, 259, 259, 259, 419, 419, + 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, + 89, 89, 89, 92, 92, 92, 92, 92, 92, 92, + 92, 92, 92, 92, 377, 444, 378, 92, 92, 92, + 92, 92, 203, 344, 158, 158, 92, 203, 158, 158, + 323, 203, 444, 203, 344, 323, 301, 142, 378, 301, + 457, 92, 92, 92, 92, 92, 92, 97, 158, 97, + 97, 97, 97, 97, 97, 97, 97, 97, 97, 116, + 766, 116, 116, 116, 457, 116, 116, 142, 142, 116, + 301, 142, 158, 214, 214, 214, 214, 214, 214, 142, + 372, 377, 142, 116, 116, 116, 117, 117, 117, 117, - 259, 261, 261, 261, 261, 261, 261, 261, 261, 262, - 262, 262, 262, 262, 262, 165, 166, 529, 166, 166, - 166, 166, 166, 166, 166, 166, 264, 317, 264, 264, - 264, 264, 264, 264, 264, 264, 301, 301, 283, 283, - 283, 283, 283, 283, 283, 283, 301, 456, 456, 317, - 419, 166, 167, 318, 167, 167, 167, 167, 167, 167, - 167, 167, 318, 324, 342, 343, 167, 167, 167, 167, - 167, 283, 324, 342, 343, 344, 344, 287, 372, 287, - 287, 287, 287, 287, 287, 344, 420, 372, 420, 167, - 167, 167, 167, 167, 167, 170, 170, 170, 170, 170, + 117, 117, 117, 117, 117, 117, 167, 167, 167, 167, + 167, 167, 167, 167, 167, 167, 346, 346, 765, 160, + 379, 160, 160, 160, 372, 160, 160, 764, 346, 160, + 400, 379, 117, 118, 118, 118, 118, 118, 118, 118, + 118, 118, 118, 160, 160, 160, 458, 118, 118, 118, + 118, 118, 191, 191, 191, 191, 191, 191, 191, 191, + 191, 191, 273, 273, 273, 273, 427, 427, 400, 755, + 458, 118, 118, 118, 118, 118, 118, 126, 126, 126, + 126, 126, 126, 126, 126, 126, 126, 126, 312, 498, + 754, 126, 126, 126, 126, 126, 194, 194, 194, 194, - 170, 170, 170, 170, 345, 345, 528, 170, 170, 170, - 170, 170, 287, 294, 345, 294, 294, 294, 294, 294, - 294, 294, 294, 307, 307, 307, 307, 307, 307, 513, - 170, 170, 170, 170, 170, 170, 172, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 467, 467, 509, 172, - 172, 172, 172, 172, 295, 376, 295, 295, 295, 295, - 295, 295, 295, 295, 300, 300, 300, 300, 300, 300, - 300, 300, 172, 172, 172, 172, 172, 172, 173, 173, - 173, 173, 173, 173, 173, 173, 347, 347, 508, 376, - 173, 173, 173, 173, 173, 296, 347, 296, 296, 296, + 194, 194, 194, 194, 194, 194, 285, 285, 285, 285, + 285, 285, 752, 498, 312, 126, 126, 126, 126, 126, + 126, 127, 127, 127, 127, 127, 127, 127, 127, 127, + 127, 127, 312, 562, 562, 127, 127, 127, 127, 127, + 184, 409, 184, 184, 373, 186, 184, 184, 380, 373, + 184, 186, 409, 380, 186, 348, 348, 186, 186, 127, + 127, 127, 127, 127, 127, 184, 184, 348, 413, 497, + 428, 186, 428, 186, 188, 497, 188, 188, 188, 413, + 188, 188, 429, 751, 188, 195, 195, 195, 195, 195, + 195, 195, 195, 195, 195, 526, 186, 186, 188, 188, - 296, 296, 296, 296, 296, 306, 306, 306, 306, 306, - 306, 306, 306, 173, 173, 173, 173, 173, 173, 203, - 507, 203, 203, 203, 203, 203, 203, 203, 203, 304, - 304, 304, 304, 304, 304, 304, 304, 506, 309, 304, - 309, 309, 309, 309, 309, 309, 309, 309, 334, 334, - 334, 334, 334, 334, 203, 204, 501, 204, 204, 204, - 204, 204, 204, 204, 204, 331, 331, 331, 331, 331, - 331, 331, 331, 333, 333, 333, 333, 333, 333, 333, - 333, 337, 337, 337, 337, 337, 337, 337, 337, 358, - 204, 215, 215, 215, 215, 215, 215, 215, 215, 215, + 188, 189, 615, 615, 189, 189, 429, 189, 189, 189, + 189, 190, 431, 189, 189, 190, 502, 431, 414, 414, + 502, 190, 415, 415, 429, 433, 430, 189, 189, 189, + 414, 430, 526, 430, 415, 190, 190, 210, 210, 210, + 210, 210, 210, 210, 210, 210, 210, 432, 508, 433, + 432, 523, 189, 189, 192, 192, 192, 192, 192, 192, + 192, 192, 192, 192, 749, 508, 523, 433, 192, 192, + 192, 192, 192, 211, 211, 211, 211, 211, 211, 211, + 211, 211, 211, 319, 511, 319, 319, 319, 319, 319, + 319, 439, 192, 192, 192, 192, 192, 192, 197, 748, - 215, 215, 491, 491, 484, 215, 215, 215, 215, 215, - 336, 358, 336, 336, 336, 336, 336, 336, 336, 336, - 341, 483, 341, 341, 341, 341, 341, 341, 215, 215, - 215, 215, 215, 215, 218, 218, 218, 218, 218, 218, - 218, 218, 218, 218, 397, 502, 502, 218, 218, 218, - 218, 218, 339, 397, 339, 339, 339, 339, 339, 339, - 339, 339, 346, 346, 346, 346, 346, 346, 346, 346, - 218, 218, 218, 218, 218, 218, 242, 479, 242, 242, - 242, 242, 242, 242, 242, 242, 340, 364, 340, 340, - 340, 340, 340, 340, 340, 340, 350, 350, 350, 350, + 513, 439, 197, 197, 197, 197, 197, 197, 197, 197, + 197, 197, 197, 197, 197, 442, 513, 197, 197, 197, + 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, + 197, 197, 197, 197, 197, 197, 197, 197, 197, 511, + 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, + 197, 197, 197, 197, 197, 197, 197, 197, 198, 198, + 198, 198, 198, 198, 198, 198, 198, 198, 198, 442, + 504, 506, 198, 198, 198, 198, 198, 213, 213, 213, + 213, 213, 213, 213, 213, 213, 213, 354, 354, 354, + 354, 354, 354, 434, 504, 506, 198, 198, 198, 198, - 350, 350, 350, 350, 398, 670, 350, 510, 510, 364, - 670, 242, 243, 398, 243, 243, 243, 243, 243, 243, - 243, 243, 352, 352, 352, 352, 352, 352, 352, 352, - 353, 353, 353, 353, 353, 353, 355, 366, 355, 355, - 355, 355, 355, 355, 355, 355, 374, 243, 244, 449, - 244, 244, 244, 244, 244, 244, 244, 244, 449, 366, - 414, 385, 374, 382, 382, 382, 382, 382, 382, 382, - 382, 385, 450, 375, 375, 375, 375, 375, 375, 375, - 375, 450, 414, 244, 257, 257, 257, 257, 257, 257, - 257, 257, 257, 257, 257, 260, 260, 260, 260, 260, + 198, 198, 212, 747, 212, 212, 212, 212, 212, 212, + 212, 212, 212, 212, 248, 454, 737, 434, 248, 514, + 454, 561, 736, 561, 248, 282, 282, 282, 282, 282, + 282, 282, 282, 282, 282, 434, 514, 727, 248, 248, + 212, 215, 443, 215, 215, 215, 215, 215, 215, 215, + 215, 215, 215, 443, 564, 584, 564, 215, 215, 215, + 215, 215, 284, 284, 284, 284, 284, 284, 284, 284, + 284, 284, 423, 423, 423, 423, 423, 423, 571, 584, + 571, 215, 215, 215, 215, 215, 215, 218, 218, 218, + 218, 218, 218, 218, 218, 218, 218, 218, 589, 589, - 260, 260, 260, 260, 260, 260, 375, 415, 457, 260, - 260, 260, 260, 260, 379, 379, 379, 379, 379, 379, - 379, 384, 384, 384, 384, 384, 384, 384, 384, 415, - 457, 465, 260, 260, 260, 260, 260, 260, 263, 263, - 263, 263, 263, 263, 263, 263, 263, 263, 379, 536, - 536, 263, 263, 263, 263, 263, 390, 390, 390, 390, - 390, 390, 390, 390, 391, 391, 391, 391, 391, 391, - 460, 399, 399, 459, 263, 263, 263, 263, 263, 263, - 285, 399, 285, 285, 285, 285, 285, 285, 285, 285, - 393, 432, 393, 393, 393, 393, 393, 393, 393, 393, + 589, 218, 218, 218, 218, 218, 315, 315, 315, 315, + 315, 315, 315, 315, 315, 315, 450, 725, 450, 450, + 450, 450, 450, 450, 724, 218, 218, 218, 218, 218, + 218, 220, 220, 220, 220, 220, 220, 220, 220, 220, + 220, 220, 220, 565, 616, 616, 220, 220, 220, 220, + 220, 345, 345, 345, 345, 345, 345, 345, 345, 345, + 345, 466, 466, 466, 466, 466, 466, 565, 623, 623, + 220, 220, 220, 220, 220, 220, 221, 221, 221, 221, + 221, 221, 221, 221, 221, 221, 221, 566, 625, 565, + 221, 221, 221, 221, 221, 347, 347, 347, 347, 347, - 394, 432, 394, 394, 394, 394, 394, 394, 394, 394, - 458, 473, 551, 551, 468, 285, 286, 433, 286, 286, - 286, 286, 286, 286, 286, 286, 395, 433, 395, 395, - 395, 395, 395, 395, 395, 395, 396, 435, 396, 396, - 396, 396, 396, 396, 396, 396, 473, 435, 461, 571, - 571, 286, 292, 292, 292, 292, 292, 292, 292, 292, - 292, 400, 400, 445, 292, 292, 292, 292, 292, 468, - 461, 400, 401, 401, 401, 401, 401, 401, 401, 401, - 408, 408, 408, 408, 408, 408, 431, 292, 292, 292, - 292, 292, 292, 302, 302, 302, 302, 302, 302, 302, + 347, 347, 347, 347, 347, 473, 473, 473, 473, 473, + 473, 566, 625, 723, 221, 221, 221, 221, 221, 221, + 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, + 222, 631, 631, 566, 222, 222, 222, 222, 222, 351, + 351, 351, 351, 351, 351, 351, 351, 622, 711, 622, + 403, 351, 403, 403, 403, 403, 403, 403, 222, 222, + 222, 222, 222, 222, 253, 627, 253, 253, 253, 253, + 253, 253, 253, 253, 253, 253, 254, 254, 254, 254, + 254, 254, 254, 254, 254, 254, 254, 710, 403, 627, + 254, 254, 254, 254, 254, 353, 353, 353, 353, 353, - 302, 302, 302, 302, 305, 305, 305, 305, 305, 305, - 305, 305, 305, 305, 305, 402, 402, 463, 305, 305, - 305, 305, 305, 469, 477, 402, 405, 405, 405, 405, - 405, 405, 405, 405, 427, 503, 405, 422, 469, 463, - 418, 305, 305, 305, 305, 305, 305, 308, 308, 308, - 308, 308, 308, 308, 308, 308, 308, 503, 417, 477, - 308, 308, 308, 308, 308, 407, 407, 407, 407, 407, - 407, 407, 407, 409, 416, 409, 409, 409, 409, 409, - 409, 409, 409, 308, 308, 308, 308, 308, 308, 325, - 325, 325, 325, 325, 325, 325, 325, 325, 421, 428, + 353, 353, 353, 353, 353, 480, 708, 480, 480, 480, + 480, 480, 480, 707, 254, 254, 254, 254, 254, 254, + 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, + 529, 529, 529, 529, 256, 256, 256, 256, 256, 416, + 416, 416, 416, 416, 416, 416, 416, 416, 416, 492, + 492, 492, 492, 492, 492, 674, 674, 700, 256, 256, + 256, 256, 256, 256, 269, 269, 269, 269, 269, 269, + 269, 269, 269, 269, 417, 417, 420, 420, 420, 420, + 420, 420, 420, 420, 680, 680, 417, 535, 420, 422, + 422, 422, 422, 422, 422, 422, 422, 422, 422, 535, - 505, 428, 428, 428, 428, 428, 428, 428, 428, 434, - 434, 434, 434, 434, 434, 434, 434, 413, 421, 412, - 421, 421, 505, 325, 326, 326, 326, 326, 326, 326, - 326, 326, 326, 429, 466, 429, 429, 429, 429, 429, - 429, 429, 429, 421, 430, 485, 430, 430, 430, 430, - 430, 430, 430, 430, 466, 485, 466, 466, 326, 327, - 327, 327, 327, 327, 327, 327, 327, 327, 440, 440, - 440, 440, 440, 440, 440, 440, 441, 441, 441, 441, - 441, 441, 443, 500, 443, 443, 443, 443, 443, 443, - 443, 443, 500, 327, 332, 486, 332, 332, 332, 332, + 269, 277, 277, 277, 277, 277, 277, 277, 277, 277, + 277, 277, 283, 283, 283, 283, 283, 283, 283, 283, + 283, 283, 283, 283, 283, 445, 683, 683, 283, 283, + 283, 283, 283, 570, 570, 445, 446, 446, 446, 446, + 446, 446, 446, 446, 446, 446, 541, 541, 541, 541, + 541, 541, 283, 283, 283, 283, 283, 283, 286, 286, + 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, + 679, 698, 679, 286, 286, 286, 286, 286, 465, 465, + 465, 465, 465, 465, 465, 465, 465, 465, 570, 563, + 697, 624, 620, 481, 563, 620, 624, 286, 286, 286, - 332, 332, 332, 332, 332, 486, 575, 575, 332, 332, - 332, 332, 332, 444, 444, 444, 444, 444, 444, 444, - 444, 446, 411, 446, 446, 446, 446, 446, 446, 446, - 446, 332, 332, 332, 332, 332, 332, 335, 335, 335, - 335, 335, 335, 335, 335, 335, 588, 588, 410, 335, - 335, 335, 335, 335, 447, 488, 447, 447, 447, 447, - 447, 447, 447, 447, 448, 488, 448, 448, 448, 448, - 448, 448, 335, 335, 335, 335, 335, 335, 348, 348, - 348, 348, 348, 348, 348, 348, 348, 348, 348, 351, - 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, + 286, 286, 286, 287, 481, 287, 287, 287, 287, 287, + 287, 287, 287, 287, 287, 320, 320, 320, 320, 320, + 320, 320, 320, 320, 320, 696, 621, 640, 643, 320, + 320, 320, 320, 320, 470, 470, 470, 470, 470, 470, + 470, 470, 470, 470, 558, 558, 558, 558, 558, 558, + 621, 640, 643, 320, 320, 320, 320, 320, 320, 321, + 321, 321, 321, 321, 321, 321, 321, 321, 321, 643, + 630, 693, 621, 321, 321, 321, 321, 321, 472, 472, + 472, 472, 472, 472, 472, 472, 472, 472, 648, 648, + 648, 648, 630, 482, 630, 630, 691, 321, 321, 321, - 451, 451, 381, 351, 351, 351, 351, 351, 555, 470, - 451, 470, 470, 470, 471, 530, 471, 471, 471, 494, - 494, 494, 494, 494, 494, 530, 351, 351, 351, 351, - 351, 351, 354, 354, 354, 354, 354, 354, 354, 354, - 354, 531, 533, 555, 566, 354, 354, 354, 354, 354, - 380, 531, 533, 370, 566, 369, 470, 363, 591, 362, - 476, 471, 476, 476, 476, 476, 476, 476, 354, 354, - 354, 354, 354, 354, 377, 377, 377, 377, 377, 377, - 377, 377, 377, 546, 548, 472, 472, 472, 472, 472, - 472, 472, 472, 591, 361, 476, 478, 478, 478, 478, + 321, 321, 321, 334, 482, 334, 334, 334, 334, 334, + 334, 334, 334, 334, 334, 335, 595, 335, 335, 335, + 335, 335, 335, 335, 335, 335, 335, 336, 595, 336, + 336, 336, 336, 336, 336, 336, 336, 336, 336, 339, + 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, + 349, 349, 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 572, 685, 633, 349, 349, 349, 349, + 349, 476, 476, 476, 476, 476, 476, 476, 476, 476, + 476, 633, 731, 824, 731, 572, 824, 572, 572, 645, + 349, 349, 349, 349, 349, 349, 352, 352, 352, 352, - 478, 478, 478, 478, 360, 546, 548, 357, 377, 378, - 378, 378, 378, 378, 378, 378, 378, 378, 472, 480, - 572, 480, 480, 480, 480, 480, 480, 480, 480, 481, - 356, 481, 481, 481, 481, 481, 481, 481, 481, 619, - 619, 338, 572, 378, 386, 574, 386, 386, 386, 386, - 386, 386, 386, 386, 386, 389, 330, 389, 389, 389, - 389, 389, 389, 389, 389, 389, 329, 574, 585, 389, - 389, 389, 389, 389, 482, 328, 482, 482, 482, 482, - 482, 482, 487, 487, 487, 487, 487, 487, 487, 487, - 585, 320, 389, 389, 389, 389, 389, 389, 392, 392, + 352, 352, 352, 352, 352, 352, 352, 352, 352, 483, + 483, 572, 352, 352, 352, 352, 352, 484, 484, 486, + 486, 483, 496, 501, 503, 733, 733, 645, 685, 484, + 676, 486, 496, 501, 686, 503, 352, 352, 352, 352, + 352, 352, 355, 355, 355, 355, 355, 355, 355, 355, + 355, 355, 355, 355, 676, 682, 641, 355, 355, 355, + 355, 355, 485, 485, 485, 485, 485, 485, 485, 485, + 485, 485, 604, 604, 604, 604, 604, 604, 512, 632, + 641, 355, 355, 355, 355, 355, 355, 356, 512, 356, + 356, 356, 356, 356, 356, 356, 356, 356, 356, 383, - 392, 392, 392, 392, 392, 392, 392, 319, 315, 314, - 392, 392, 392, 392, 392, 493, 493, 493, 493, 493, - 493, 493, 493, 496, 311, 496, 496, 496, 496, 496, - 496, 496, 496, 392, 392, 392, 392, 392, 392, 403, - 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, - 406, 406, 406, 406, 406, 406, 406, 406, 406, 406, - 310, 291, 290, 289, 406, 406, 406, 406, 406, 497, - 497, 497, 497, 497, 497, 497, 497, 497, 498, 498, - 498, 498, 498, 498, 498, 498, 498, 406, 406, 406, - 406, 406, 406, 423, 288, 423, 423, 423, 423, 423, + 641, 383, 383, 383, 383, 383, 383, 383, 383, 383, + 383, 384, 384, 384, 384, 384, 384, 384, 384, 384, + 384, 762, 762, 781, 781, 384, 384, 384, 384, 384, + 489, 489, 489, 489, 489, 489, 489, 489, 632, 882, + 882, 611, 489, 611, 611, 611, 611, 611, 611, 384, + 384, 384, 384, 384, 384, 399, 399, 399, 399, 399, + 399, 399, 399, 399, 399, 491, 491, 491, 491, 491, + 491, 491, 491, 491, 491, 532, 532, 532, 532, 532, + 532, 532, 532, 532, 532, 639, 681, 639, 639, 639, + 649, 399, 401, 596, 401, 401, 401, 401, 401, 401, - 423, 423, 423, 499, 499, 499, 499, 499, 499, 499, - 499, 499, 514, 278, 514, 514, 514, 277, 276, 515, - 274, 515, 515, 515, 273, 272, 271, 270, 423, 424, - 269, 424, 424, 424, 424, 424, 424, 424, 424, 516, - 268, 516, 516, 516, 517, 267, 517, 517, 517, 251, - 520, 250, 520, 520, 520, 249, 248, 246, 245, 514, - 236, 235, 234, 233, 424, 425, 515, 425, 425, 425, - 425, 425, 425, 425, 425, 518, 232, 229, 518, 518, - 518, 518, 518, 518, 518, 518, 516, 227, 226, 225, - 224, 517, 223, 220, 212, 519, 519, 520, 211, 519, + 401, 401, 401, 401, 402, 596, 402, 402, 402, 402, + 402, 402, 402, 402, 402, 402, 408, 408, 408, 408, + 408, 408, 408, 408, 408, 408, 408, 701, 649, 728, + 408, 408, 408, 408, 408, 534, 534, 534, 534, 534, + 534, 534, 534, 534, 534, 675, 836, 742, 787, 836, + 547, 701, 673, 728, 408, 408, 408, 408, 408, 408, + 412, 547, 412, 412, 412, 412, 412, 412, 412, 412, + 412, 412, 418, 418, 418, 418, 418, 418, 418, 418, + 418, 418, 418, 418, 418, 742, 787, 670, 418, 418, + 418, 418, 418, 538, 598, 538, 538, 538, 538, 538, - 425, 426, 208, 426, 426, 426, 426, 426, 426, 426, - 426, 519, 519, 519, 521, 521, 207, 525, 521, 525, - 525, 525, 525, 525, 525, 525, 525, 200, 199, 193, - 521, 521, 521, 190, 189, 188, 426, 436, 187, 436, - 436, 436, 436, 436, 436, 436, 436, 436, 439, 186, - 439, 439, 439, 439, 439, 439, 439, 439, 439, 184, - 183, 182, 439, 439, 439, 439, 439, 526, 181, 526, - 526, 526, 526, 526, 526, 526, 526, 532, 532, 532, - 532, 532, 532, 532, 532, 439, 439, 439, 439, 439, - 439, 442, 442, 442, 442, 442, 442, 442, 442, 442, + 538, 827, 827, 827, 669, 538, 598, 634, 739, 634, + 634, 634, 418, 418, 418, 418, 418, 418, 421, 421, + 421, 421, 421, 421, 421, 421, 421, 421, 421, 421, + 421, 853, 739, 853, 421, 421, 421, 421, 421, 540, + 540, 540, 540, 540, 540, 540, 540, 540, 540, 578, + 578, 578, 578, 578, 578, 578, 656, 634, 421, 421, + 421, 421, 421, 421, 424, 424, 424, 424, 424, 424, + 424, 424, 424, 424, 424, 424, 548, 549, 549, 424, + 424, 424, 424, 424, 550, 550, 612, 548, 613, 549, + 552, 552, 844, 844, 844, 655, 550, 612, 657, 613, - 180, 179, 178, 442, 442, 442, 442, 442, 527, 177, - 527, 527, 527, 527, 527, 527, 527, 527, 538, 538, - 538, 538, 538, 538, 538, 538, 442, 442, 442, 442, - 442, 442, 454, 454, 454, 454, 454, 454, 454, 454, - 454, 454, 474, 176, 474, 474, 474, 474, 474, 474, - 474, 474, 539, 539, 539, 539, 539, 539, 540, 175, - 540, 540, 540, 540, 540, 540, 540, 540, 542, 542, - 542, 542, 542, 542, 542, 542, 542, 474, 475, 169, - 475, 475, 475, 475, 475, 475, 475, 475, 543, 543, - 543, 543, 543, 543, 543, 543, 543, 544, 544, 544, + 759, 642, 552, 424, 424, 424, 424, 424, 424, 425, + 657, 425, 425, 425, 425, 425, 425, 425, 425, 425, + 425, 426, 653, 768, 759, 642, 854, 426, 854, 916, + 426, 426, 916, 426, 426, 426, 426, 426, 426, 426, + 426, 426, 426, 426, 426, 426, 642, 768, 652, 426, + 426, 426, 426, 426, 426, 426, 426, 426, 426, 426, + 426, 426, 426, 426, 426, 426, 426, 426, 426, 426, + 426, 426, 426, 426, 426, 426, 426, 426, 426, 426, + 426, 426, 426, 426, 426, 426, 426, 426, 426, 426, + 426, 464, 464, 464, 464, 464, 464, 464, 464, 464, - 544, 544, 544, 544, 552, 552, 552, 552, 552, 552, - 552, 552, 168, 475, 489, 158, 489, 489, 489, 489, - 489, 489, 489, 489, 489, 492, 157, 492, 492, 492, - 492, 492, 492, 492, 492, 492, 156, 152, 151, 492, - 492, 492, 492, 492, 553, 553, 553, 553, 553, 553, - 553, 553, 554, 554, 554, 554, 554, 554, 554, 554, - 149, 145, 492, 492, 492, 492, 492, 492, 495, 495, - 495, 495, 495, 495, 495, 495, 138, 134, 132, 130, - 495, 495, 495, 495, 495, 554, 558, 122, 558, 558, - 558, 558, 558, 558, 559, 559, 559, 559, 559, 559, + 464, 464, 555, 555, 555, 555, 555, 555, 555, 555, + 865, 651, 865, 658, 555, 557, 557, 557, 557, 557, + 557, 557, 557, 557, 557, 658, 883, 883, 464, 471, + 660, 471, 471, 471, 471, 471, 471, 471, 471, 471, + 471, 471, 660, 637, 702, 471, 471, 471, 471, 471, + 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, + 619, 619, 619, 619, 619, 619, 619, 619, 702, 471, + 471, 471, 471, 471, 471, 474, 474, 474, 474, 474, + 474, 474, 474, 474, 474, 474, 778, 636, 702, 474, + 474, 474, 474, 474, 587, 587, 587, 587, 587, 587, - 559, 559, 121, 495, 495, 495, 495, 495, 495, 522, - 120, 522, 522, 522, 522, 522, 522, 522, 522, 119, - 561, 558, 561, 561, 561, 561, 561, 561, 561, 561, - 562, 118, 562, 562, 562, 562, 562, 562, 562, 562, - 113, 112, 111, 110, 522, 523, 108, 523, 523, 523, - 523, 523, 523, 523, 523, 563, 107, 563, 563, 563, - 563, 563, 563, 569, 106, 569, 569, 569, 569, 569, - 569, 569, 569, 598, 598, 598, 598, 598, 598, 102, - 523, 524, 98, 524, 524, 524, 524, 524, 524, 524, - 524, 579, 579, 579, 579, 579, 579, 579, 579, 580, + 587, 587, 587, 587, 866, 870, 866, 870, 614, 614, + 778, 894, 894, 474, 474, 474, 474, 474, 474, 475, + 614, 475, 475, 475, 475, 475, 475, 475, 475, 475, + 475, 487, 487, 487, 487, 487, 487, 487, 487, 487, + 487, 487, 487, 487, 678, 629, 703, 487, 487, 487, + 487, 487, 588, 588, 588, 588, 588, 588, 588, 588, + 588, 588, 635, 610, 635, 635, 635, 871, 678, 871, + 703, 487, 487, 487, 487, 487, 487, 490, 490, 490, + 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, + 678, 703, 740, 490, 490, 490, 490, 490, 597, 597, - 580, 580, 580, 580, 580, 580, 580, 581, 581, 581, - 581, 581, 581, 581, 581, 97, 524, 534, 93, 534, - 534, 534, 534, 534, 534, 534, 534, 534, 537, 90, - 537, 537, 537, 537, 537, 537, 537, 537, 82, 81, - 80, 78, 537, 537, 537, 537, 537, 73, 590, 590, - 590, 590, 590, 590, 590, 590, 594, 66, 594, 594, - 594, 594, 594, 594, 59, 537, 537, 537, 537, 537, - 537, 556, 54, 556, 556, 556, 556, 556, 556, 556, - 556, 590, 596, 596, 596, 596, 596, 596, 596, 596, - 51, 594, 597, 597, 597, 597, 597, 597, 597, 597, + 597, 597, 597, 597, 597, 597, 597, 597, 875, 878, + 875, 878, 635, 888, 609, 888, 740, 490, 490, 490, + 490, 490, 490, 493, 493, 493, 493, 493, 493, 493, + 493, 493, 493, 493, 608, 889, 740, 889, 493, 493, + 493, 493, 493, 601, 594, 601, 601, 601, 601, 601, + 601, 897, 592, 897, 654, 601, 654, 654, 654, 654, + 654, 654, 493, 493, 493, 493, 493, 493, 494, 712, + 494, 494, 494, 494, 494, 494, 494, 494, 494, 494, + 495, 712, 898, 901, 898, 901, 495, 692, 692, 495, + 495, 692, 495, 495, 495, 495, 495, 495, 495, 495, - 49, 41, 40, 39, 38, 37, 556, 557, 36, 557, - 557, 557, 557, 557, 557, 557, 557, 33, 29, 23, - 600, 600, 600, 600, 600, 600, 600, 600, 601, 601, - 601, 601, 601, 601, 601, 601, 17, 15, 14, 13, - 0, 0, 557, 576, 0, 576, 576, 576, 576, 576, - 576, 576, 576, 600, 0, 0, 0, 0, 0, 0, - 0, 601, 602, 602, 602, 602, 602, 602, 602, 602, - 604, 604, 604, 604, 604, 604, 604, 604, 576, 577, - 0, 577, 577, 577, 577, 577, 577, 577, 577, 0, - 0, 0, 0, 0, 0, 602, 605, 605, 605, 605, + 495, 495, 495, 495, 495, 692, 692, 692, 495, 495, + 495, 495, 495, 495, 495, 495, 495, 495, 495, 495, + 495, 495, 495, 495, 495, 495, 495, 495, 495, 495, + 495, 495, 495, 495, 495, 495, 495, 495, 495, 495, + 495, 495, 495, 495, 495, 495, 495, 495, 495, 495, + 517, 517, 517, 517, 517, 517, 517, 517, 517, 517, + 517, 522, 913, 913, 713, 522, 522, 522, 522, 522, + 522, 522, 522, 522, 522, 522, 713, 522, 914, 914, + 522, 522, 522, 522, 522, 522, 522, 522, 522, 522, + 522, 522, 522, 522, 522, 522, 522, 522, 522, 522, - 605, 605, 0, 604, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 577, 578, 0, 578, 578, 578, - 578, 578, 578, 578, 578, 0, 0, 0, 0, 605, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 578, 592, 0, 592, 592, 592, 592, 592, 592, 592, - 592, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 592, 593, 0, 593, - 593, 593, 593, 593, 593, 593, 593, 0, 0, 0, + 522, 522, 591, 522, 522, 522, 522, 522, 522, 522, + 522, 522, 522, 522, 522, 522, 522, 522, 522, 522, + 522, 525, 525, 525, 525, 525, 525, 525, 525, 525, + 525, 603, 603, 603, 603, 603, 603, 603, 603, 603, + 603, 607, 607, 607, 607, 607, 607, 607, 607, 607, + 607, 666, 666, 666, 666, 666, 666, 525, 527, 527, + 527, 527, 527, 527, 527, 527, 527, 527, 527, 650, + 650, 650, 650, 650, 650, 650, 650, 650, 650, 659, + 659, 659, 659, 659, 659, 659, 659, 659, 659, 721, + 721, 721, 721, 721, 721, 527, 536, 715, 536, 536, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 593, 607, 607, 607, 607, 607, 607, 607, - 607, 607, 607, 607, 607, 607, 607, 607, 607, 608, - 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, - 608, 608, 608, 608, 608, 609, 609, 609, 609, 609, - 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, - 609, 610, 610, 610, 610, 610, 610, 610, 610, 610, - 610, 610, 610, 610, 610, 610, 610, 611, 0, 0, - 0, 0, 0, 0, 0, 611, 611, 611, 0, 0, + 536, 536, 536, 536, 536, 536, 536, 536, 536, 715, + 590, 582, 536, 536, 536, 536, 536, 663, 753, 663, + 663, 663, 663, 663, 663, 907, 908, 907, 908, 663, + 753, 687, 672, 687, 687, 687, 536, 536, 536, 536, + 536, 536, 539, 672, 539, 539, 539, 539, 539, 539, + 539, 539, 539, 539, 539, 730, 581, 580, 539, 539, + 539, 539, 539, 665, 665, 665, 665, 665, 665, 665, + 665, 665, 665, 688, 579, 688, 688, 688, 910, 730, + 910, 687, 539, 539, 539, 539, 539, 539, 542, 542, + 542, 542, 542, 542, 542, 542, 542, 542, 542, 577, - 611, 611, 611, 612, 612, 612, 612, 612, 612, 612, - 612, 612, 612, 612, 612, 612, 612, 612, 612, 613, - 0, 0, 0, 0, 613, 0, 0, 613, 613, 613, - 613, 0, 613, 613, 613, 614, 0, 0, 0, 0, - 0, 0, 0, 614, 614, 614, 0, 0, 614, 614, - 614, 615, 0, 0, 615, 615, 0, 615, 0, 615, - 615, 615, 0, 0, 615, 615, 615, 616, 616, 0, - 0, 0, 616, 617, 0, 0, 617, 617, 0, 617, - 0, 617, 617, 617, 0, 0, 617, 617, 617, 618, - 0, 0, 618, 618, 0, 618, 0, 618, 618, 618, + 576, 730, 542, 542, 542, 542, 542, 695, 695, 695, + 695, 695, 695, 695, 695, 695, 695, 794, 794, 794, + 794, 794, 794, 688, 575, 573, 542, 542, 542, 542, + 542, 542, 543, 569, 543, 543, 543, 543, 543, 543, + 543, 543, 543, 543, 546, 568, 546, 546, 546, 546, + 546, 546, 546, 546, 546, 546, 553, 553, 553, 553, + 553, 553, 553, 553, 553, 553, 553, 553, 553, 567, + 551, 761, 553, 553, 553, 553, 553, 689, 545, 689, + 689, 689, 690, 544, 690, 690, 690, 699, 531, 699, + 699, 699, 699, 699, 699, 761, 553, 553, 553, 553, - 0, 618, 0, 618, 618, 620, 0, 0, 620, 0, - 0, 620, 0, 620, 620, 620, 620, 0, 620, 620, - 620, 621, 621, 621, 621, 621, 621, 621, 621, 621, - 621, 621, 621, 621, 621, 621, 621, 622, 622, 0, - 622, 0, 622, 622, 622, 622, 622, 622, 622, 622, - 622, 622, 622, 623, 623, 623, 623, 623, 623, 623, - 623, 623, 623, 623, 623, 623, 623, 623, 623, 624, - 624, 0, 624, 624, 624, 624, 624, 624, 624, 624, - 624, 624, 624, 624, 624, 625, 0, 0, 0, 0, - 625, 0, 0, 625, 625, 625, 0, 0, 625, 625, + 553, 553, 556, 556, 556, 556, 556, 556, 556, 556, + 556, 556, 556, 556, 918, 530, 918, 761, 556, 556, + 556, 556, 556, 919, 923, 919, 923, 689, 924, 929, + 924, 929, 690, 726, 726, 726, 726, 726, 726, 726, + 524, 521, 556, 556, 556, 556, 556, 556, 559, 520, + 559, 559, 559, 559, 559, 559, 559, 559, 559, 559, + 560, 694, 519, 694, 694, 694, 560, 694, 694, 560, + 560, 694, 560, 560, 560, 560, 560, 560, 560, 560, + 560, 560, 560, 560, 560, 694, 694, 694, 560, 560, + 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, - 625, 626, 0, 0, 626, 626, 0, 626, 0, 626, - 626, 626, 0, 0, 626, 626, 626, 627, 627, 0, - 0, 0, 627, 628, 628, 628, 0, 0, 0, 628, - 629, 0, 0, 629, 629, 0, 629, 0, 629, 629, - 629, 0, 0, 629, 629, 629, 630, 630, 630, 630, - 630, 630, 630, 630, 630, 630, 630, 630, 630, 630, - 630, 630, 631, 631, 0, 0, 0, 631, 632, 632, - 632, 0, 0, 0, 632, 633, 633, 0, 0, 0, - 633, 634, 634, 0, 0, 0, 634, 635, 635, 0, - 0, 0, 635, 636, 636, 636, 0, 0, 0, 636, + 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, + 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, + 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, + 583, 750, 518, 750, 750, 750, 750, 750, 750, 583, + 930, 516, 930, 583, 583, 583, 583, 583, 583, 583, + 583, 583, 583, 583, 583, 583, 515, 510, 583, 583, + 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, + 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, + 509, 583, 583, 583, 583, 583, 583, 583, 583, 583, + 583, 583, 583, 583, 583, 583, 583, 583, 583, 586, - 637, 637, 0, 0, 0, 637, 638, 638, 0, 0, - 0, 638, 639, 639, 0, 0, 0, 639, 640, 640, - 640, 0, 0, 0, 640, 641, 641, 641, 641, 0, - 0, 0, 641, 642, 642, 0, 0, 0, 642, 643, - 643, 0, 0, 0, 643, 644, 644, 0, 0, 0, - 644, 645, 645, 645, 0, 0, 0, 645, 646, 646, - 646, 646, 0, 0, 0, 646, 647, 647, 0, 0, - 0, 647, 648, 648, 0, 0, 0, 648, 649, 649, - 649, 0, 0, 0, 649, 650, 650, 650, 650, 0, - 0, 0, 650, 651, 651, 0, 0, 0, 651, 652, + 479, 586, 586, 586, 586, 586, 586, 586, 586, 586, + 586, 714, 714, 714, 714, 714, 714, 714, 714, 714, + 714, 718, 478, 718, 718, 718, 718, 718, 718, 922, + 477, 469, 922, 718, 468, 467, 922, 586, 593, 463, + 593, 593, 593, 593, 593, 593, 593, 593, 593, 593, + 599, 456, 599, 599, 599, 599, 599, 599, 599, 599, + 599, 599, 599, 455, 452, 451, 599, 599, 599, 599, + 599, 720, 720, 720, 720, 720, 720, 720, 720, 720, + 720, 758, 449, 758, 758, 758, 758, 758, 758, 448, + 599, 599, 599, 599, 599, 599, 602, 447, 602, 602, - 0, 652, 652, 0, 0, 0, 652, 653, 653, 653, - 0, 0, 0, 653, 654, 654, 654, 654, 0, 0, - 0, 654, 655, 655, 0, 0, 0, 655, 656, 0, - 656, 656, 0, 0, 0, 656, 657, 657, 657, 0, - 0, 0, 657, 658, 658, 658, 0, 0, 0, 0, - 658, 659, 659, 659, 659, 659, 659, 659, 659, 659, - 659, 659, 659, 659, 659, 659, 659, 660, 660, 0, - 660, 660, 660, 0, 0, 660, 660, 660, 0, 0, - 660, 660, 660, 661, 661, 0, 661, 661, 661, 0, - 0, 661, 661, 661, 0, 0, 661, 661, 661, 662, + 602, 602, 602, 602, 602, 602, 602, 602, 602, 441, + 440, 438, 602, 602, 602, 602, 602, 734, 734, 734, + 734, 734, 734, 734, 734, 734, 734, 767, 437, 767, + 767, 767, 767, 767, 767, 436, 602, 602, 602, 602, + 602, 602, 605, 605, 605, 605, 605, 605, 605, 605, + 605, 605, 605, 435, 411, 410, 605, 605, 605, 605, + 605, 735, 735, 735, 735, 735, 735, 735, 735, 735, + 735, 407, 745, 406, 745, 745, 745, 745, 745, 745, + 605, 605, 605, 605, 605, 605, 606, 405, 606, 606, + 606, 606, 606, 606, 606, 606, 606, 606, 617, 617, - 662, 0, 0, 0, 662, 663, 0, 663, 663, 0, - 0, 0, 663, 664, 664, 0, 0, 0, 0, 664, - 665, 665, 0, 0, 0, 665, 666, 0, 666, 666, - 0, 0, 0, 666, 667, 667, 0, 0, 0, 667, - 668, 0, 668, 0, 0, 0, 0, 668, 669, 669, - 669, 669, 669, 669, 669, 669, 669, 669, 669, 669, - 669, 669, 669, 669, 606, 606, 606, 606, 606, 606, - 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, - 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, - 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, + 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, + 745, 404, 398, 397, 617, 617, 617, 617, 617, 746, + 746, 746, 746, 746, 746, 746, 746, 746, 746, 800, + 396, 800, 800, 800, 800, 800, 800, 395, 617, 617, + 617, 617, 617, 617, 638, 394, 638, 638, 638, 638, + 638, 638, 638, 638, 638, 638, 644, 644, 644, 644, + 644, 644, 644, 644, 644, 644, 763, 763, 763, 763, + 763, 763, 763, 763, 763, 763, 772, 772, 772, 772, + 772, 772, 772, 772, 772, 772, 812, 812, 812, 812, + 812, 812, 644, 646, 393, 646, 646, 646, 646, 646, - 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, - 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, - 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, - 606 + 646, 646, 646, 646, 646, 773, 773, 773, 773, 773, + 773, 773, 773, 773, 773, 774, 774, 774, 774, 774, + 774, 774, 774, 774, 774, 392, 928, 391, 390, 928, + 389, 646, 661, 928, 661, 661, 661, 661, 661, 661, + 661, 661, 661, 661, 661, 388, 387, 386, 661, 661, + 661, 661, 661, 790, 385, 790, 790, 790, 790, 790, + 790, 792, 792, 792, 792, 792, 792, 792, 792, 792, + 792, 382, 661, 661, 661, 661, 661, 661, 664, 381, + 664, 664, 664, 664, 664, 664, 664, 664, 664, 664, + 664, 790, 376, 375, 664, 664, 664, 664, 664, 793, + + 793, 793, 793, 793, 793, 793, 793, 793, 793, 374, + 368, 366, 365, 364, 363, 362, 361, 360, 664, 664, + 664, 664, 664, 664, 667, 667, 667, 667, 667, 667, + 667, 667, 667, 667, 359, 343, 342, 341, 667, 667, + 667, 667, 667, 796, 796, 796, 796, 796, 796, 796, + 796, 796, 796, 340, 338, 337, 809, 809, 809, 809, + 809, 809, 667, 667, 667, 667, 667, 667, 668, 333, + 668, 668, 668, 668, 668, 668, 668, 668, 668, 668, + 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, + 671, 704, 809, 704, 704, 704, 704, 704, 704, 704, + + 704, 704, 704, 705, 332, 705, 705, 705, 705, 705, + 705, 705, 705, 705, 705, 706, 331, 706, 706, 706, + 706, 706, 706, 706, 706, 706, 706, 709, 329, 709, + 709, 709, 709, 709, 709, 709, 709, 709, 709, 716, + 328, 716, 716, 716, 716, 716, 716, 716, 716, 716, + 716, 716, 327, 326, 325, 716, 716, 716, 716, 716, + 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, + 324, 318, 317, 316, 309, 308, 307, 306, 305, 716, + 716, 716, 716, 716, 716, 719, 299, 719, 719, 719, + 719, 719, 719, 719, 719, 719, 719, 297, 296, 295, + + 294, 719, 719, 719, 719, 719, 805, 805, 805, 805, + 805, 805, 805, 805, 805, 805, 293, 292, 290, 288, + 280, 279, 276, 275, 268, 719, 719, 719, 719, 719, + 719, 738, 267, 738, 738, 738, 738, 738, 738, 738, + 738, 738, 738, 741, 265, 741, 741, 741, 741, 741, + 741, 741, 741, 741, 741, 743, 264, 743, 743, 743, + 743, 743, 743, 743, 743, 743, 743, 744, 263, 744, + 744, 744, 744, 744, 744, 744, 744, 744, 744, 756, + 262, 756, 756, 756, 756, 756, 756, 756, 756, 756, + 756, 769, 261, 769, 769, 769, 769, 769, 769, 769, + + 769, 769, 769, 770, 260, 770, 770, 770, 770, 770, + 770, 770, 770, 770, 770, 771, 259, 771, 771, 771, + 771, 771, 771, 771, 771, 771, 771, 785, 258, 785, + 785, 785, 785, 785, 785, 785, 785, 785, 785, 786, + 255, 786, 786, 786, 786, 786, 786, 786, 786, 786, + 786, 788, 252, 788, 788, 788, 788, 788, 788, 788, + 788, 788, 788, 789, 251, 789, 789, 789, 789, 789, + 789, 789, 789, 789, 789, 801, 801, 801, 801, 801, + 801, 801, 801, 801, 801, 806, 806, 806, 806, 806, + 806, 806, 806, 806, 806, 811, 811, 811, 811, 811, + + 811, 811, 811, 811, 811, 250, 244, 241, 240, 239, + 238, 801, 802, 802, 802, 802, 802, 802, 802, 802, + 802, 802, 237, 234, 233, 232, 231, 230, 229, 228, + 227, 226, 225, 224, 223, 217, 216, 209, 208, 207, + 206, 205, 204, 202, 201, 199, 193, 185, 802, 803, + 803, 803, 803, 803, 803, 803, 803, 803, 803, 181, + 177, 176, 174, 170, 163, 159, 157, 155, 147, 146, + 145, 144, 143, 137, 136, 135, 134, 133, 131, 130, + 129, 128, 124, 120, 119, 803, 808, 808, 808, 808, + 808, 808, 808, 808, 808, 808, 115, 112, 109, 104, + + 103, 102, 100, 96, 95, 94, 93, 90, 77, 70, + 63, 59, 58, 56, 55, 53, 51, 43, 42, 41, + 39, 35, 808, 814, 814, 814, 814, 814, 814, 814, + 814, 814, 814, 814, 814, 814, 814, 814, 814, 814, + 814, 814, 814, 814, 815, 815, 815, 815, 815, 815, + 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, + 815, 815, 815, 815, 815, 816, 816, 816, 816, 816, + 816, 816, 816, 816, 816, 816, 816, 816, 816, 816, + 816, 816, 816, 816, 816, 816, 817, 817, 817, 817, + 817, 817, 817, 817, 817, 817, 817, 817, 817, 817, + + 817, 817, 817, 817, 817, 817, 817, 818, 31, 25, + 19, 17, 16, 15, 818, 0, 818, 818, 818, 818, + 0, 0, 818, 818, 818, 818, 818, 818, 819, 819, + 819, 819, 819, 819, 819, 819, 819, 819, 819, 819, + 819, 819, 819, 819, 819, 819, 819, 819, 819, 820, + 0, 0, 0, 0, 820, 0, 820, 0, 820, 820, + 820, 820, 820, 0, 820, 820, 820, 820, 820, 820, + 821, 0, 0, 0, 0, 0, 0, 821, 0, 821, + 821, 821, 821, 0, 0, 821, 821, 821, 821, 821, + 821, 822, 0, 0, 822, 822, 0, 822, 822, 0, + + 822, 822, 822, 822, 0, 0, 822, 822, 822, 822, + 822, 822, 823, 823, 0, 823, 0, 0, 0, 823, + 825, 0, 0, 825, 825, 0, 825, 825, 0, 825, + 825, 825, 825, 0, 0, 825, 825, 825, 825, 825, + 825, 826, 0, 0, 826, 826, 0, 826, 826, 0, + 826, 826, 826, 826, 0, 826, 826, 826, 0, 826, + 826, 826, 828, 0, 0, 828, 0, 0, 828, 828, + 0, 828, 828, 828, 828, 828, 0, 828, 828, 828, + 828, 828, 828, 829, 829, 829, 829, 829, 829, 829, + 829, 829, 829, 829, 829, 829, 829, 829, 829, 829, + + 829, 829, 829, 829, 830, 830, 0, 830, 0, 830, + 830, 830, 830, 830, 830, 830, 830, 830, 830, 830, + 830, 830, 830, 830, 830, 831, 0, 0, 0, 0, + 831, 0, 831, 0, 831, 831, 831, 831, 831, 0, + 831, 831, 831, 831, 831, 831, 832, 0, 0, 0, + 0, 0, 0, 832, 0, 832, 832, 832, 832, 0, + 832, 832, 832, 832, 832, 832, 832, 833, 0, 0, + 833, 833, 0, 833, 833, 0, 833, 833, 833, 833, + 0, 833, 833, 833, 833, 833, 833, 833, 834, 834, + 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, + + 834, 834, 834, 834, 834, 834, 834, 834, 834, 835, + 835, 0, 835, 835, 835, 835, 835, 835, 835, 835, + 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, + 837, 0, 0, 837, 837, 0, 837, 837, 0, 837, + 837, 837, 837, 0, 0, 837, 837, 837, 837, 837, + 837, 838, 838, 0, 838, 0, 0, 0, 838, 839, + 839, 0, 839, 0, 0, 0, 839, 840, 840, 840, + 0, 840, 0, 0, 0, 840, 841, 0, 0, 841, + 841, 0, 841, 841, 0, 841, 841, 841, 841, 0, + 0, 841, 841, 841, 841, 841, 841, 842, 0, 0, + + 842, 842, 0, 842, 842, 0, 842, 842, 842, 842, + 0, 0, 842, 842, 842, 842, 842, 842, 843, 0, + 0, 843, 843, 0, 843, 843, 0, 843, 843, 843, + 843, 0, 843, 843, 843, 0, 843, 843, 843, 845, + 0, 0, 845, 0, 0, 845, 845, 0, 845, 845, + 845, 845, 845, 0, 845, 845, 845, 845, 845, 845, + 846, 0, 0, 0, 0, 0, 0, 846, 0, 846, + 846, 846, 846, 0, 0, 846, 846, 846, 846, 846, + 846, 847, 0, 0, 0, 0, 0, 0, 847, 0, + 847, 847, 847, 847, 0, 847, 847, 847, 847, 847, + + 847, 847, 848, 0, 0, 848, 848, 0, 848, 848, + 0, 848, 848, 848, 848, 0, 848, 848, 848, 848, + 848, 848, 848, 849, 0, 0, 849, 849, 0, 849, + 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, + 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, + 850, 851, 851, 0, 851, 0, 0, 0, 851, 852, + 852, 852, 0, 852, 0, 0, 0, 852, 855, 855, + 0, 855, 0, 0, 0, 855, 856, 856, 0, 856, + 0, 0, 0, 856, 857, 857, 0, 857, 0, 0, + 0, 857, 858, 858, 858, 0, 858, 0, 0, 0, + + 858, 859, 0, 0, 859, 859, 0, 859, 860, 860, + 0, 860, 0, 0, 0, 860, 861, 861, 0, 861, + 0, 0, 0, 861, 862, 862, 0, 862, 0, 0, + 0, 862, 863, 863, 863, 0, 863, 0, 0, 0, + 863, 864, 864, 864, 864, 0, 864, 0, 0, 0, + 864, 867, 867, 0, 867, 0, 0, 0, 867, 868, + 868, 0, 868, 0, 0, 0, 868, 869, 869, 0, + 869, 0, 0, 0, 869, 872, 872, 872, 0, 872, + 0, 0, 0, 872, 873, 873, 873, 873, 0, 873, + 0, 0, 0, 873, 874, 874, 874, 874, 874, 874, + + 874, 874, 874, 874, 874, 874, 874, 874, 874, 874, + 874, 874, 874, 874, 874, 876, 876, 0, 876, 0, + 0, 0, 876, 877, 877, 0, 877, 0, 0, 0, + 877, 879, 879, 879, 0, 879, 0, 0, 0, 879, + 880, 880, 880, 880, 0, 880, 0, 0, 0, 880, + 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, + 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, + 881, 884, 0, 0, 884, 884, 0, 884, 885, 0, + 0, 0, 885, 885, 0, 885, 885, 885, 0, 0, + 885, 885, 886, 886, 0, 886, 0, 0, 0, 886, + + 887, 0, 887, 887, 0, 887, 0, 0, 0, 887, + 890, 890, 890, 0, 890, 0, 0, 0, 890, 891, + 891, 891, 891, 0, 891, 0, 0, 0, 891, 892, + 892, 0, 0, 892, 0, 0, 0, 892, 893, 893, + 893, 893, 893, 893, 893, 893, 893, 893, 893, 893, + 893, 893, 893, 893, 893, 893, 893, 893, 893, 895, + 0, 0, 895, 895, 0, 895, 896, 0, 0, 0, + 896, 896, 0, 896, 896, 896, 0, 0, 896, 896, + 899, 899, 0, 899, 0, 0, 0, 899, 900, 0, + 900, 900, 0, 900, 0, 0, 0, 900, 902, 902, + + 902, 0, 902, 0, 0, 0, 902, 903, 903, 903, + 0, 0, 903, 0, 0, 0, 903, 904, 904, 904, + 904, 904, 904, 904, 904, 904, 904, 904, 904, 904, + 904, 904, 904, 904, 904, 904, 904, 904, 905, 905, + 0, 905, 905, 905, 0, 905, 0, 905, 905, 905, + 905, 0, 0, 905, 905, 905, 905, 905, 905, 906, + 906, 0, 906, 906, 906, 0, 906, 0, 906, 906, + 906, 906, 0, 0, 906, 906, 906, 906, 906, 906, + 909, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 909, 909, 0, 909, 909, 0, 909, 911, 911, + + 0, 911, 0, 0, 0, 911, 912, 0, 912, 912, + 0, 912, 0, 0, 0, 912, 915, 915, 0, 0, + 915, 0, 0, 0, 915, 917, 0, 0, 0, 0, + 0, 0, 917, 0, 917, 917, 917, 917, 0, 0, + 917, 917, 917, 917, 917, 917, 920, 920, 0, 920, + 0, 0, 0, 920, 921, 0, 921, 921, 0, 921, + 0, 0, 0, 921, 925, 925, 0, 925, 0, 0, + 0, 925, 926, 0, 926, 0, 0, 926, 0, 0, + 0, 926, 927, 927, 927, 927, 927, 927, 927, 927, + 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, + + 927, 927, 927, 813, 813, 813, 813, 813, 813, 813, + 813, 813, 813, 813, 813, 813, 813, 813, 813, 813, + 813, 813, 813, 813, 813, 813, 813, 813, 813, 813, + 813, 813, 813, 813, 813, 813, 813, 813, 813, 813, + 813, 813, 813, 813, 813, 813, 813, 813, 813, 813, + 813, 813, 813, 813, 813, 813, 813, 813, 813, 813, + 813, 813, 813, 813, 813, 813, 813, 813, 813, 813, + 813, 813, 813, 813 } ; static yy_state_type yy_last_accepting_state; @@ -1404,7 +1928,7 @@ char *yytext; #define INITIAL 0 #line 2 "toke.l" /* - * Copyright (c) 1996, 1998-2005, 2007-2012 + * Copyright (c) 1996, 1998-2005, 2007-2013 * Todd C. Miller * * Permission to use, copy, modify, and distribute this software for any @@ -1430,7 +1954,6 @@ char *yytext; #include #include -#include #include #include #ifdef STDC_HEADERS @@ -1447,6 +1970,11 @@ char *yytext; #ifdef HAVE_STRINGS_H # include #endif /* HAVE_STRINGS_H */ +#if defined(HAVE_STDINT_H) +# include +#elif defined(HAVE_INTTYPES_H) +# include +#endif #ifdef HAVE_UNISTD_H # include #endif /* HAVE_UNISTD_H */ @@ -1476,14 +2004,12 @@ char *yytext; #include "toke.h" #include #include "lbuf.h" +#include "sha2.h" #include "secure_path.h" -extern YYSTYPE yylval; -extern bool parse_error; -extern bool sudoers_warnings; -int sudolineno; -int last_token; -char *sudoers; +int sudolineno; /* current sudoers line number. */ +int last_token; /* last token that was parsed. */ +char *sudoers; /* sudoers file being parsed. */ /* Default sudoers path, mode and owner (may be set via sudo.conf) */ const char *sudoers_file = _PATH_SUDOERS; @@ -1493,12 +2019,12 @@ gid_t sudoers_gid = SUDOERS_GID; static bool continued, sawspace; static int prev_state; +static int digest_len; static bool _push_include(char *, bool); static bool pop_include(void); static char *parse_include(char *); -static int sudoers_trace_print(const char *msg); int (*trace_print)(const char *msg) = sudoers_trace_print; #define LEXRETURN(n) do { \ @@ -1506,7 +2032,7 @@ int (*trace_print)(const char *msg) = sudoers_trace_pr return (n); \ } while (0) -#define ECHO ignore_result(fwrite(yytext, yyleng, 1, yyout)) +#define ECHO ignore_result(fwrite(sudoerstext, sudoersleng, 1, sudoersout)) #define push_include(_p) (_push_include((_p), false)) #define push_includedir(_p) (_push_include((_p), true)) @@ -1522,8 +2048,10 @@ int (*trace_print)(const char *msg) = sudoers_trace_pr #define INSTR 5 -#line 1525 "lex.yy.c" +#define WANTDIGEST 6 +#line 2053 "lex.sudoers.c" + /* Macros after this point can all be overridden by user definitions in * section 1. */ @@ -1676,9 +2204,9 @@ YY_DECL register char *yy_cp, *yy_bp; register int yy_act; -#line 133 "toke.l" +#line 137 "toke.l" -#line 1681 "lex.yy.c" +#line 2209 "lex.sudoers.c" if ( yy_init ) { @@ -1730,13 +2258,13 @@ yy_match: while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 607 ) + if ( yy_current_state >= 814 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; ++yy_cp; } - while ( yy_base[yy_current_state] != 3665 ); + while ( yy_base[yy_current_state] != 5604 ); yy_find_action: yy_act = yy_accept[yy_current_state]; @@ -1764,7 +2292,7 @@ do_action: /* This label is used only to access EOF ac case 1: YY_RULE_SETUP -#line 134 "toke.l" +#line 138 "toke.l" { LEXTRACE(", "); LEXRETURN(','); @@ -1772,16 +2300,16 @@ YY_RULE_SETUP YY_BREAK case 2: YY_RULE_SETUP -#line 139 "toke.l" +#line 143 "toke.l" BEGIN STARTDEFS; YY_BREAK case 3: YY_RULE_SETUP -#line 141 "toke.l" +#line 145 "toke.l" { BEGIN INDEFS; LEXTRACE("DEFVAR "); - if (!fill(yytext, yyleng)) + if (!fill(sudoerstext, sudoersleng)) yyterminate(); LEXRETURN(DEFVAR); } @@ -1789,7 +2317,7 @@ YY_RULE_SETUP case 4: YY_RULE_SETUP -#line 150 "toke.l" +#line 154 "toke.l" { BEGIN STARTDEFS; LEXTRACE(", "); @@ -1798,7 +2326,7 @@ YY_RULE_SETUP YY_BREAK case 5: YY_RULE_SETUP -#line 156 "toke.l" +#line 160 "toke.l" { LEXTRACE("= "); LEXRETURN('='); @@ -1806,7 +2334,7 @@ YY_RULE_SETUP YY_BREAK case 6: YY_RULE_SETUP -#line 161 "toke.l" +#line 165 "toke.l" { LEXTRACE("+= "); LEXRETURN('+'); @@ -1814,7 +2342,7 @@ YY_RULE_SETUP YY_BREAK case 7: YY_RULE_SETUP -#line 166 "toke.l" +#line 170 "toke.l" { LEXTRACE("-= "); LEXRETURN('-'); @@ -1822,20 +2350,20 @@ YY_RULE_SETUP YY_BREAK case 8: YY_RULE_SETUP -#line 171 "toke.l" +#line 175 "toke.l" { LEXTRACE("BEGINSTR "); - yylval.string = NULL; + sudoerslval.string = NULL; prev_state = YY_START; BEGIN INSTR; } YY_BREAK case 9: YY_RULE_SETUP -#line 178 "toke.l" +#line 182 "toke.l" { LEXTRACE("WORD(2) "); - if (!fill(yytext, yyleng)) + if (!fill(sudoerstext, sudoersleng)) yyterminate(); LEXRETURN(WORD); } @@ -1844,7 +2372,7 @@ YY_RULE_SETUP case 10: YY_RULE_SETUP -#line 187 "toke.l" +#line 191 "toke.l" { /* Line continuation char followed by newline. */ sudolineno++; @@ -1853,28 +2381,28 @@ YY_RULE_SETUP YY_BREAK case 11: YY_RULE_SETUP -#line 193 "toke.l" +#line 197 "toke.l" { LEXTRACE("ENDSTR "); BEGIN prev_state; - if (yylval.string == NULL) { + if (sudoerslval.string == NULL) { LEXTRACE("ERROR "); /* empty string */ LEXRETURN(ERROR); } if (prev_state == INITIAL) { - switch (yylval.string[0]) { + switch (sudoerslval.string[0]) { case '%': - if (yylval.string[1] == '\0' || - (yylval.string[1] == ':' && - yylval.string[2] == '\0')) { + if (sudoerslval.string[1] == '\0' || + (sudoerslval.string[1] == ':' && + sudoerslval.string[2] == '\0')) { LEXTRACE("ERROR "); /* empty group */ LEXRETURN(ERROR); } LEXTRACE("USERGROUP "); LEXRETURN(USERGROUP); case '+': - if (yylval.string[1] == '\0') { + if (sudoerslval.string[1] == '\0') { LEXTRACE("ERROR "); /* empty netgroup */ LEXRETURN(ERROR); } @@ -1888,19 +2416,19 @@ YY_RULE_SETUP YY_BREAK case 12: YY_RULE_SETUP -#line 225 "toke.l" +#line 229 "toke.l" { LEXTRACE("BACKSLASH "); - if (!append(yytext, yyleng)) + if (!append(sudoerstext, sudoersleng)) yyterminate(); } YY_BREAK case 13: YY_RULE_SETUP -#line 231 "toke.l" +#line 235 "toke.l" { LEXTRACE("STRBODY "); - if (!append(yytext, yyleng)) + if (!append(sudoerstext, sudoersleng)) yyterminate(); } YY_BREAK @@ -1908,29 +2436,29 @@ YY_RULE_SETUP case 14: YY_RULE_SETUP -#line 239 "toke.l" +#line 243 "toke.l" { /* quoted fnmatch glob char, pass verbatim */ LEXTRACE("QUOTEDCHAR "); - if (!fill_args(yytext, 2, sawspace)) + if (!fill_args(sudoerstext, 2, sawspace)) yyterminate(); sawspace = false; } YY_BREAK case 15: YY_RULE_SETUP -#line 247 "toke.l" +#line 251 "toke.l" { /* quoted sudoers special char, strip backslash */ LEXTRACE("QUOTEDCHAR "); - if (!fill_args(yytext + 1, 1, sawspace)) + if (!fill_args(sudoerstext + 1, 1, sawspace)) yyterminate(); sawspace = false; } YY_BREAK case 16: YY_RULE_SETUP -#line 255 "toke.l" +#line 259 "toke.l" { BEGIN INITIAL; yyless(0); @@ -1939,10 +2467,10 @@ YY_RULE_SETUP YY_BREAK case 17: YY_RULE_SETUP -#line 261 "toke.l" +#line 265 "toke.l" { LEXTRACE("ARG "); - if (!fill_args(yytext, yyleng, sawspace)) + if (!fill_args(sudoerstext, sudoersleng, sawspace)) yyterminate(); sawspace = false; } /* a command line arg */ @@ -1950,8 +2478,48 @@ YY_RULE_SETUP case 18: YY_RULE_SETUP -#line 269 "toke.l" +#line 273 "toke.l" { + /* Only return DIGEST if the length is correct. */ + if (sudoersleng == digest_len * 2) { + if (!fill(sudoerstext, sudoersleng)) + yyterminate(); + BEGIN INITIAL; + LEXTRACE("DIGEST "); + LEXRETURN(DIGEST); + } + BEGIN INITIAL; + yyless(sudoersleng); + } /* hex digest */ + YY_BREAK +case 19: +YY_RULE_SETUP +#line 286 "toke.l" +{ + /* Only return DIGEST if the length is correct. */ + int len; + if (sudoerstext[sudoersleng - 1] == '=') { + /* use padding */ + len = 4 * ((digest_len + 2) / 3); + } else { + /* no padding */ + len = (4 * digest_len + 2) / 3; + } + if (sudoersleng == len) { + if (!fill(sudoerstext, sudoersleng)) + yyterminate(); + BEGIN INITIAL; + LEXTRACE("DIGEST "); + LEXRETURN(DIGEST); + } + BEGIN INITIAL; + yyless(sudoersleng); + } /* base64 digest */ + YY_BREAK +case 20: +YY_RULE_SETUP +#line 307 "toke.l" +{ char *path; if (continued) { @@ -1959,7 +2527,7 @@ YY_RULE_SETUP LEXRETURN(ERROR); } - if ((path = parse_include(yytext)) == NULL) + if ((path = parse_include(sudoerstext)) == NULL) yyterminate(); LEXTRACE("INCLUDE\n"); @@ -1969,9 +2537,9 @@ YY_RULE_SETUP yyterminate(); } YY_BREAK -case 19: +case 21: YY_RULE_SETUP -#line 287 "toke.l" +#line 325 "toke.l" { char *path; @@ -1980,7 +2548,7 @@ YY_RULE_SETUP LEXRETURN(ERROR); } - if ((path = parse_include(yytext)) == NULL) + if ((path = parse_include(sudoerstext)) == NULL) yyterminate(); LEXTRACE("INCLUDEDIR\n"); @@ -1993,9 +2561,9 @@ YY_RULE_SETUP yyterminate(); } YY_BREAK -case 20: +case 22: YY_RULE_SETUP -#line 308 "toke.l" +#line 346 "toke.l" { char deftype; int n; @@ -2005,11 +2573,11 @@ YY_RULE_SETUP LEXRETURN(ERROR); } - for (n = 0; isblank((unsigned char)yytext[n]); n++) + for (n = 0; isblank((unsigned char)sudoerstext[n]); n++) continue; n += sizeof("Defaults") - 1; - if ((deftype = yytext[n++]) != '\0') { - while (isblank((unsigned char)yytext[n])) + if ((deftype = sudoerstext[n++]) != '\0') { + while (isblank((unsigned char)sudoerstext[n])) n++; } BEGIN GOTDEFS; @@ -2036,9 +2604,9 @@ YY_RULE_SETUP } } YY_BREAK -case 21: +case 23: YY_RULE_SETUP -#line 348 "toke.l" +#line 386 "toke.l" { int n; @@ -2047,9 +2615,9 @@ YY_RULE_SETUP LEXRETURN(ERROR); } - for (n = 0; isblank((unsigned char)yytext[n]); n++) + for (n = 0; isblank((unsigned char)sudoerstext[n]); n++) continue; - switch (yytext[n]) { + switch (sudoerstext[n]) { case 'H': LEXTRACE("HOSTALIAS "); LEXRETURN(HOSTALIAS); @@ -2065,179 +2633,179 @@ YY_RULE_SETUP } } YY_BREAK -case 22: +case 24: YY_RULE_SETUP -#line 374 "toke.l" +#line 412 "toke.l" { /* cmnd does not require passwd for this user */ LEXTRACE("NOPASSWD "); LEXRETURN(NOPASSWD); } YY_BREAK -case 23: +case 25: YY_RULE_SETUP -#line 380 "toke.l" +#line 418 "toke.l" { /* cmnd requires passwd for this user */ LEXTRACE("PASSWD "); LEXRETURN(PASSWD); } YY_BREAK -case 24: +case 26: YY_RULE_SETUP -#line 386 "toke.l" +#line 424 "toke.l" { LEXTRACE("NOEXEC "); LEXRETURN(NOEXEC); } YY_BREAK -case 25: +case 27: YY_RULE_SETUP -#line 391 "toke.l" +#line 429 "toke.l" { LEXTRACE("EXEC "); LEXRETURN(EXEC); } YY_BREAK -case 26: +case 28: YY_RULE_SETUP -#line 396 "toke.l" +#line 434 "toke.l" { LEXTRACE("SETENV "); LEXRETURN(SETENV); } YY_BREAK -case 27: +case 29: YY_RULE_SETUP -#line 401 "toke.l" +#line 439 "toke.l" { LEXTRACE("NOSETENV "); LEXRETURN(NOSETENV); } YY_BREAK -case 28: +case 30: YY_RULE_SETUP -#line 406 "toke.l" +#line 444 "toke.l" { LEXTRACE("LOG_OUTPUT "); LEXRETURN(LOG_OUTPUT); } YY_BREAK -case 29: +case 31: YY_RULE_SETUP -#line 411 "toke.l" +#line 449 "toke.l" { LEXTRACE("NOLOG_OUTPUT "); LEXRETURN(NOLOG_OUTPUT); } YY_BREAK -case 30: +case 32: YY_RULE_SETUP -#line 416 "toke.l" +#line 454 "toke.l" { LEXTRACE("LOG_INPUT "); LEXRETURN(LOG_INPUT); } YY_BREAK -case 31: +case 33: YY_RULE_SETUP -#line 421 "toke.l" +#line 459 "toke.l" { LEXTRACE("NOLOG_INPUT "); LEXRETURN(NOLOG_INPUT); } YY_BREAK -case 32: +case 34: YY_RULE_SETUP -#line 426 "toke.l" +#line 464 "toke.l" { /* empty group or netgroup */ LEXTRACE("ERROR "); LEXRETURN(ERROR); } YY_BREAK -case 33: +case 35: YY_RULE_SETUP -#line 432 "toke.l" +#line 470 "toke.l" { /* netgroup */ - if (!fill(yytext, yyleng)) + if (!fill(sudoerstext, sudoersleng)) yyterminate(); LEXTRACE("NETGROUP "); LEXRETURN(NETGROUP); } YY_BREAK -case 34: +case 36: YY_RULE_SETUP -#line 440 "toke.l" +#line 478 "toke.l" { /* group */ - if (!fill(yytext, yyleng)) + if (!fill(sudoerstext, sudoersleng)) yyterminate(); LEXTRACE("USERGROUP "); LEXRETURN(USERGROUP); } YY_BREAK -case 35: +case 37: YY_RULE_SETUP -#line 448 "toke.l" +#line 486 "toke.l" { - if (!fill(yytext, yyleng)) + if (!fill(sudoerstext, sudoersleng)) yyterminate(); LEXTRACE("NTWKADDR "); LEXRETURN(NTWKADDR); } YY_BREAK -case 36: +case 38: YY_RULE_SETUP -#line 455 "toke.l" +#line 493 "toke.l" { - if (!fill(yytext, yyleng)) + if (!fill(sudoerstext, sudoersleng)) yyterminate(); LEXTRACE("NTWKADDR "); LEXRETURN(NTWKADDR); } YY_BREAK -case 37: +case 39: YY_RULE_SETUP -#line 462 "toke.l" +#line 500 "toke.l" { - if (!ipv6_valid(yytext)) { + if (!ipv6_valid(sudoerstext)) { LEXTRACE("ERROR "); LEXRETURN(ERROR); } - if (!fill(yytext, yyleng)) + if (!fill(sudoerstext, sudoersleng)) yyterminate(); LEXTRACE("NTWKADDR "); LEXRETURN(NTWKADDR); } YY_BREAK -case 38: +case 40: YY_RULE_SETUP -#line 473 "toke.l" +#line 511 "toke.l" { - if (!ipv6_valid(yytext)) { + if (!ipv6_valid(sudoerstext)) { LEXTRACE("ERROR "); LEXRETURN(ERROR); } - if (!fill(yytext, yyleng)) + if (!fill(sudoerstext, sudoersleng)) yyterminate(); LEXTRACE("NTWKADDR "); LEXRETURN(NTWKADDR); } YY_BREAK -case 39: +case 41: YY_RULE_SETUP -#line 484 "toke.l" +#line 522 "toke.l" { LEXTRACE("ALL "); LEXRETURN(ALL); } YY_BREAK -case 40: +case 42: YY_RULE_SETUP -#line 490 "toke.l" +#line 528 "toke.l" { #ifdef HAVE_SELINUX LEXTRACE("ROLE "); @@ -2247,9 +2815,9 @@ YY_RULE_SETUP #endif } YY_BREAK -case 41: +case 43: YY_RULE_SETUP -#line 499 "toke.l" +#line 537 "toke.l" { #ifdef HAVE_SELINUX LEXTRACE("TYPE "); @@ -2259,132 +2827,195 @@ YY_RULE_SETUP #endif } YY_BREAK -case 42: +case 44: YY_RULE_SETUP -#line 508 "toke.l" +#line 545 "toke.l" { -#ifndef HAVE_SELINUX - got_alias: +#ifdef HAVE_PRIV_SET + LEXTRACE("PRIVS "); + LEXRETURN(PRIVS); +#else + goto got_alias; #endif - if (!fill(yytext, yyleng)) + } + YY_BREAK +case 45: +YY_RULE_SETUP +#line 554 "toke.l" +{ +#ifdef HAVE_PRIV_SET + LEXTRACE("LIMITPRIVS "); + LEXRETURN(LIMITPRIVS); +#else + goto got_alias; +#endif + } + YY_BREAK +case 46: +YY_RULE_SETUP +#line 563 "toke.l" +{ + got_alias: + if (!fill(sudoerstext, sudoersleng)) yyterminate(); LEXTRACE("ALIAS "); LEXRETURN(ALIAS); } YY_BREAK -case 43: +case 47: YY_RULE_SETUP -#line 518 "toke.l" +#line 571 "toke.l" { + /* XXX - no way to specify digest for command */ /* no command args allowed for Defaults!/path */ - if (!fill_cmnd(yytext, yyleng)) + if (!fill_cmnd(sudoerstext, sudoersleng)) yyterminate(); LEXTRACE("COMMAND "); LEXRETURN(COMMAND); } YY_BREAK -case 44: +case 48: YY_RULE_SETUP -#line 526 "toke.l" +#line 580 "toke.l" { + digest_len = SHA224_DIGEST_LENGTH; + BEGIN WANTDIGEST; + LEXTRACE("SHA224 "); + LEXRETURN(SHA224); + } + YY_BREAK +case 49: +YY_RULE_SETUP +#line 587 "toke.l" +{ + digest_len = SHA256_DIGEST_LENGTH; + BEGIN WANTDIGEST; + LEXTRACE("SHA256 "); + LEXRETURN(SHA256); + } + YY_BREAK +case 50: +YY_RULE_SETUP +#line 594 "toke.l" +{ + digest_len = SHA384_DIGEST_LENGTH; + BEGIN WANTDIGEST; + LEXTRACE("SHA384 "); + LEXRETURN(SHA384); + } + YY_BREAK +case 51: +YY_RULE_SETUP +#line 601 "toke.l" +{ + digest_len = SHA512_DIGEST_LENGTH; + BEGIN WANTDIGEST; + LEXTRACE("SHA512 "); + LEXRETURN(SHA512); + } + YY_BREAK +case 52: +YY_RULE_SETUP +#line 608 "toke.l" +{ BEGIN GOTCMND; LEXTRACE("COMMAND "); - if (!fill_cmnd(yytext, yyleng)) + if (!fill_cmnd(sudoerstext, sudoersleng)) yyterminate(); } /* sudo -e */ YY_BREAK -case 45: +case 53: YY_RULE_SETUP -#line 533 "toke.l" +#line 615 "toke.l" { /* directories can't have args... */ - if (yytext[yyleng - 1] == '/') { + if (sudoerstext[sudoersleng - 1] == '/') { LEXTRACE("COMMAND "); - if (!fill_cmnd(yytext, yyleng)) + if (!fill_cmnd(sudoerstext, sudoersleng)) yyterminate(); LEXRETURN(COMMAND); } else { BEGIN GOTCMND; LEXTRACE("COMMAND "); - if (!fill_cmnd(yytext, yyleng)) + if (!fill_cmnd(sudoerstext, sudoersleng)) yyterminate(); } } /* a pathname */ YY_BREAK -case 46: +case 54: YY_RULE_SETUP -#line 548 "toke.l" +#line 630 "toke.l" { LEXTRACE("BEGINSTR "); - yylval.string = NULL; + sudoerslval.string = NULL; prev_state = YY_START; BEGIN INSTR; } YY_BREAK -case 47: +case 55: YY_RULE_SETUP -#line 555 "toke.l" +#line 637 "toke.l" { /* a word */ - if (!fill(yytext, yyleng)) + if (!fill(sudoerstext, sudoersleng)) yyterminate(); LEXTRACE("WORD(5) "); LEXRETURN(WORD); } YY_BREAK -case 48: +case 56: YY_RULE_SETUP -#line 563 "toke.l" +#line 645 "toke.l" { LEXTRACE("( "); LEXRETURN('('); } YY_BREAK -case 49: +case 57: YY_RULE_SETUP -#line 568 "toke.l" +#line 650 "toke.l" { LEXTRACE(") "); LEXRETURN(')'); } YY_BREAK -case 50: +case 58: YY_RULE_SETUP -#line 573 "toke.l" +#line 655 "toke.l" { LEXTRACE(", "); LEXRETURN(','); } /* return ',' */ YY_BREAK -case 51: +case 59: YY_RULE_SETUP -#line 578 "toke.l" +#line 660 "toke.l" { LEXTRACE("= "); LEXRETURN('='); } /* return '=' */ YY_BREAK -case 52: +case 60: YY_RULE_SETUP -#line 583 "toke.l" +#line 665 "toke.l" { LEXTRACE(": "); LEXRETURN(':'); } /* return ':' */ YY_BREAK -case 53: +case 61: YY_RULE_SETUP -#line 588 "toke.l" +#line 670 "toke.l" { - if (yyleng & 1) { + if (sudoersleng & 1) { LEXTRACE("!"); LEXRETURN('!'); /* return '!' */ } } YY_BREAK -case 54: +case 62: YY_RULE_SETUP -#line 595 "toke.l" +#line 677 "toke.l" { if (YY_START == INSTR) { LEXTRACE("ERROR "); @@ -2397,36 +3028,42 @@ YY_RULE_SETUP LEXRETURN(COMMENT); } /* return newline */ YY_BREAK -case 55: +case 63: YY_RULE_SETUP -#line 607 "toke.l" +#line 689 "toke.l" { /* throw away space/tabs */ sawspace = true; /* but remember for fill_args */ } YY_BREAK -case 56: +case 64: YY_RULE_SETUP -#line 611 "toke.l" +#line 693 "toke.l" { sawspace = true; /* remember for fill_args */ sudolineno++; continued = true; } /* throw away EOL after \ */ YY_BREAK -case 57: +case 65: YY_RULE_SETUP -#line 617 "toke.l" +#line 699 "toke.l" { - BEGIN INITIAL; - sudolineno++; - continued = false; + if (sudoerstext[sudoersleng - 1] == '\n') { + /* comment ending in a newline */ + BEGIN INITIAL; + sudolineno++; + continued = false; + } else if (!feof(yyin)) { + LEXTRACE("ERROR "); + LEXRETURN(ERROR); + } LEXTRACE("#\n"); LEXRETURN(COMMENT); } /* comment, not uid/gid */ YY_BREAK -case 58: +case 66: YY_RULE_SETUP -#line 625 "toke.l" +#line 713 "toke.l" { LEXTRACE("ERROR "); LEXRETURN(ERROR); @@ -2438,7 +3075,8 @@ case YY_STATE_EOF(GOTCMND): case YY_STATE_EOF(STARTDEFS): case YY_STATE_EOF(INDEFS): case YY_STATE_EOF(INSTR): -#line 630 "toke.l" +case YY_STATE_EOF(WANTDIGEST): +#line 718 "toke.l" { if (YY_START != INITIAL) { BEGIN INITIAL; @@ -2449,12 +3087,12 @@ case YY_STATE_EOF(INSTR): yyterminate(); } YY_BREAK -case 59: +case 67: YY_RULE_SETUP -#line 640 "toke.l" +#line 728 "toke.l" ECHO; YY_BREAK -#line 2457 "lex.yy.c" +#line 3095 "lex.sudoers.c" case YY_END_OF_BUFFER: { @@ -2594,7 +3232,7 @@ ECHO; * EOB_ACT_END_OF_FILE - end of file */ -static int yy_get_next_buffer() +static int yy_get_next_buffer YY_PROTO(( void )) { register char *dest = yy_current_buffer->yy_ch_buf; register char *source = yytext_ptr; @@ -2726,7 +3364,7 @@ static int yy_get_next_buffer() /* yy_get_previous_state - get the state just before the EOB char was reached */ -static yy_state_type yy_get_previous_state() +static yy_state_type yy_get_previous_state YY_PROTO(( void )) { register yy_state_type yy_current_state; register char *yy_cp; @@ -2745,7 +3383,7 @@ static yy_state_type yy_get_previous_state() while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 607 ) + if ( yy_current_state >= 814 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; @@ -2780,11 +3418,11 @@ yy_state_type yy_current_state; while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 607 ) + if ( yy_current_state >= 814 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; - yy_is_jam = (yy_current_state == 606); + yy_is_jam = (yy_current_state == 813); return yy_is_jam ? 0 : yy_current_state; } @@ -2837,9 +3475,9 @@ register char *yy_bp; #ifndef YY_NO_INPUT #ifdef __cplusplus -static int yyinput() +static int yyinput YY_PROTO(( void )) #else -static int input() +static int input YY_PROTO(( void )) #endif { int c; @@ -3215,7 +3853,7 @@ int new_state; #ifndef YY_NO_POP_STATE -static void yy_pop_state() +static void yy_pop_state YY_PROTO(( void )) { if ( --yy_start_stack_ptr < 0 ) YY_FATAL_ERROR( "start-condition stack underflow" ); @@ -3226,7 +3864,7 @@ static void yy_pop_state() #ifndef YY_NO_TOP_STATE -static int yy_top_state() +static int yy_top_state YY_PROTO(( void )) { return yy_start_stack[yy_start_stack_ptr - 1]; } @@ -3345,54 +3983,59 @@ int main() return 0; } #endif -#line 640 "toke.l" +#line 728 "toke.l" struct path_list { + SLIST_ENTRY(path_list) entries; char *path; - struct path_list *next; }; +SLIST_HEAD(path_list_head, path_list); + struct include_stack { YY_BUFFER_STATE bs; char *path; - struct path_list *more; /* more files in case of includedir */ + struct path_list_head more; /* more files in case of includedir */ int lineno; bool keepopen; }; +/* + * Compare two struct path_list structs in reverse order. + */ static int pl_compare(const void *v1, const void *v2) { const struct path_list * const *p1 = v1; const struct path_list * const *p2 = v2; - return strcmp((*p1)->path, (*p2)->path); + return strcmp((*p2)->path, (*p1)->path); } static char * switch_dir(struct include_stack *stack, char *dirpath) { DIR *dir; - int i, count = 0; + unsigned int i, count = 0; + unsigned int max_paths = 32; char *path = NULL; struct dirent *dent; struct stat sb; - struct path_list *pl, *first = NULL; - struct path_list **sorted = NULL; + struct path_list *pl, **paths = NULL; debug_decl(switch_dir, SUDO_DEBUG_PARSER) if (!(dir = opendir(dirpath))) { if (errno != ENOENT) { - char *errbuf; - if (asprintf(&errbuf, _("%s: %s"), dirpath, strerror(errno)) != -1) { - yyerror(errbuf); - free(errbuf); - } else { - yyerror(_("unable to allocate memory")); - } + warning("%s", dirpath); + sudoerserror(NULL); } goto done; } + paths = malloc(sizeof(*paths) * max_paths); + if (paths == NULL) { + closedir(dir); + goto bad; + } while ((dent = readdir(dir))) { /* Ignore files that end in '~' or have a '.' in them. */ if (dent->d_name[0] == '\0' || dent->d_name[NAMLEN(dent) - 1] == '~' @@ -3412,53 +4055,47 @@ switch_dir(struct include_stack *stack, char *dirpath) if (pl == NULL) goto bad; pl->path = path; - pl->next = first; - first = pl; - count++; + if (count >= max_paths) { + struct path_list **tmp; + max_paths <<= 1; + tmp = realloc(paths, sizeof(*paths) * max_paths); + if (tmp == NULL) { + closedir(dir); + goto bad; + } + paths = tmp; + } + paths[count++] = pl; + path = NULL; } closedir(dir); if (count == 0) goto done; - /* Sort the list as an array. */ - sorted = malloc(sizeof(*sorted) * count); - if (sorted == NULL) - goto bad; - pl = first; + /* Sort the list as an array in reverse order. */ + qsort(paths, count, sizeof(*paths), pl_compare); + + /* Build up the list in sorted order. */ for (i = 0; i < count; i++) { - sorted[i] = pl; - pl = pl->next; + SLIST_INSERT_HEAD(&stack->more, paths[i], entries); } - qsort(sorted, count, sizeof(*sorted), pl_compare); - /* Apply sorting to the list. */ - first = sorted[0]; - sorted[count - 1]->next = NULL; - for (i = 1; i < count; i++) - sorted[i - 1]->next = sorted[i]; - efree(sorted); - /* Pull out the first element for parsing, leave the rest for later. */ - if (count) { - path = first->path; - pl = first->next; - efree(first); - stack->more = pl; - } else { - path = NULL; - } + pl = SLIST_FIRST(&stack->more); + SLIST_REMOVE_HEAD(&stack->more, entries); + path = pl->path; + efree(pl); done: + efree(paths); efree(dirpath); debug_return_str(path); bad: - while (first != NULL) { - pl = first; - first = pl->next; - free(pl->path); - free(pl); + for (i = 0; i < count; i++) { + efree(paths[i]->path); + efree(paths[i]); } - efree(sorted); + efree(paths); efree(dirpath); efree(path); debug_return_str(NULL); @@ -3479,15 +4116,15 @@ init_lexer(void) while (idepth) { idepth--; - while ((pl = istack[idepth].more) != NULL) { - istack[idepth].more = pl->next; + while ((pl = SLIST_FIRST(&istack[idepth].more)) != NULL) { + SLIST_REMOVE_HEAD(&istack[idepth].more, entries); efree(pl->path); efree(pl); } efree(istack[idepth].path); if (idepth && !istack[idepth].keepopen) fclose(istack[idepth].bs->yy_input_file); - yy_delete_buffer(istack[idepth].bs); + sudoers_delete_buffer(istack[idepth].bs); } efree(istack); istack = NULL; @@ -3510,18 +4147,23 @@ _push_include(char *path, bool isdir) /* push current state onto stack */ if (idepth >= istacksize) { + struct include_stack *new_istack; + if (idepth > MAX_SUDOERS_DEPTH) { - yyerror(_("too many levels of includes")); + sudoerserror(N_("too many levels of includes")); debug_return_bool(false); } istacksize += SUDOERS_STACK_INCREMENT; - istack = (struct include_stack *) realloc(istack, + new_istack = (struct include_stack *) realloc(istack, sizeof(*istack) * istacksize); - if (istack == NULL) { - yyerror(_("unable to allocate memory")); + if (new_istack == NULL) { + warning(NULL); + sudoerserror(NULL); debug_return_bool(false); } + istack = new_istack; } + SLIST_INIT(&istack[idepth].more); if (isdir) { struct stat sb; switch (sudo_secure_dir(path, sudoers_uid, sudoers_gid, &sb)) { @@ -3537,19 +4179,19 @@ _push_include(char *path, bool isdir) debug_return_bool(false); case SUDO_PATH_WRONG_OWNER: if (sudoers_warnings) { - warningx(_("%s is owned by uid %u, should be %u"), + warningx(U_("%s is owned by uid %u, should be %u"), path, (unsigned int) sb.st_uid, (unsigned int) sudoers_uid); } debug_return_bool(false); case SUDO_PATH_WORLD_WRITABLE: if (sudoers_warnings) { - warningx(_("%s is world writable"), path); + warningx(U_("%s is world writable"), path); } debug_return_bool(false); case SUDO_PATH_GROUP_WRITABLE: if (sudoers_warnings) { - warningx(_("%s is owned by gid %u, should be %u"), + warningx(U_("%s is owned by gid %u, should be %u"), path, (unsigned int) sb.st_gid, (unsigned int) sudoers_gid); } @@ -3559,30 +4201,24 @@ _push_include(char *path, bool isdir) debug_return_bool(false); } if (!(path = switch_dir(&istack[idepth], path))) { - /* switch_dir() called yyerror() for us */ + /* switch_dir() called sudoerserror() for us */ debug_return_bool(false); } while ((fp = open_sudoers(path, false, &keepopen)) == NULL) { /* Unable to open path in includedir, go to next one, if any. */ efree(path); - if ((pl = istack[idepth].more) == NULL) + if ((pl = SLIST_FIRST(&istack[idepth].more)) == NULL) debug_return_bool(false); + SLIST_REMOVE_HEAD(&istack[idepth].more, entries); path = pl->path; - istack[idepth].more = pl->next; efree(pl); } } else { if ((fp = open_sudoers(path, true, &keepopen)) == NULL) { - char *errbuf; - if (asprintf(&errbuf, _("%s: %s"), path, strerror(errno)) != -1) { - yyerror(errbuf); - free(errbuf); - } else { - yyerror(_("unable to allocate memory")); - } + /* The error was already printed by open_sudoers() */ + sudoerserror(NULL); debug_return_bool(false); } - istack[idepth].more = NULL; } /* Push the old (current) file and open the new one. */ istack[idepth].path = sudoers; /* push old path */ @@ -3592,7 +4228,7 @@ _push_include(char *path, bool isdir) idepth++; sudolineno = 1; sudoers = path; - yy_switch_to_buffer(yy_create_buffer(fp, YY_BUF_SIZE)); + sudoers_switch_to_buffer(sudoers_create_buffer(fp, YY_BUF_SIZE)); debug_return_bool(true); } @@ -3609,28 +4245,27 @@ pop_include(void) if (!keepopen) fclose(YY_CURRENT_BUFFER->yy_input_file); - yy_delete_buffer(YY_CURRENT_BUFFER); + sudoers_delete_buffer(YY_CURRENT_BUFFER); /* If we are in an include dir, move to the next file. */ - while ((pl = istack[idepth - 1].more) != NULL) { + while ((pl = SLIST_FIRST(&istack[idepth - 1].more)) != NULL) { + SLIST_REMOVE_HEAD(&istack[idepth - 1].more, entries); fp = open_sudoers(pl->path, false, &keepopen); if (fp != NULL) { - istack[idepth - 1].more = pl->next; efree(sudoers); sudoers = pl->path; sudolineno = 1; - yy_switch_to_buffer(yy_create_buffer(fp, YY_BUF_SIZE)); + sudoers_switch_to_buffer(sudoers_create_buffer(fp, YY_BUF_SIZE)); efree(pl); break; } /* Unable to open path in include dir, go to next one. */ - istack[idepth - 1].more = pl->next; efree(pl->path); efree(pl); } /* If no path list, just pop the last dir on the stack. */ if (pl == NULL) { idepth--; - yy_switch_to_buffer(istack[idepth].bs); + sudoers_switch_to_buffer(istack[idepth].bs); efree(sudoers); sudoers = istack[idepth].path; sudolineno = istack[idepth].lineno; @@ -3674,7 +4309,8 @@ parse_include(char *base) len += (int)(ep - cp); path = pp = malloc(len + dirlen + 1); if (path == NULL) { - yyerror(_("unable to allocate memory")); + warning(NULL); + sudoerserror(NULL); debug_return_str(NULL); } if (dirlen) { @@ -3706,13 +4342,13 @@ parse_include(char *base) } #ifdef TRACELEXER -static int +int sudoers_trace_print(const char *msg) { return fputs(msg, stderr); } #else -static int +int sudoers_trace_print(const char *msg) { static bool initialized;