From: Todd C. Miller Date: Fri, 24 Sep 2004 18:11:19 +0000 (+0000) Subject: regen X-Git-Tag: SUDO_1_7_0~953 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=2bb8472982c815e7b7f0ffad5a1316cdfc5e516c;p=sudo regen --- diff --git a/lex.yy.c b/lex.yy.c index 6ebb3ec25..a93ae2195 100644 --- a/lex.yy.c +++ b/lex.yy.c @@ -285,47 +285,49 @@ static void yy_fatal_error YY_PROTO(( yyconst char msg[] )); *yy_cp = '\0'; \ yy_c_buf_p = yy_cp; -#define YY_NUM_RULES 39 -#define YY_END_OF_BUFFER 40 -static yyconst short int yy_accept[336] = +#define YY_NUM_RULES 41 +#define YY_END_OF_BUFFER 42 +static yyconst short int yy_accept[360] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 40, 29, 35, 34, 33, 38, 29, 23, - 38, 29, 30, 29, 29, 29, 29, 32, 31, 24, - 24, 24, 24, 38, 29, 24, 24, 24, 24, 24, - 25, 38, 25, 26, 25, 25, 25, 25, 25, 24, - 24, 24, 24, 38, 25, 1, 12, 11, 12, 11, - 11, 38, 38, 2, 8, 8, 8, 3, 8, 4, - 38, 29, 0, 35, 33, 0, 37, 20, 0, 19, - 0, 28, 28, 0, 29, 29, 29, 29, 29, 24, - 24, 24, 24, 29, 36, 29, 29, 29, 29, 29, - - 29, 25, 0, 25, 20, 0, 19, 0, 25, 0, - 25, 25, 25, 25, 25, 24, 24, 24, 24, 25, - 25, 1, 12, 12, 10, 9, 10, 0, 2, 8, - 0, 8, 0, 0, 5, 6, 8, 8, 0, 29, - 29, 29, 24, 24, 24, 24, 29, 29, 29, 29, - 29, 29, 25, 25, 25, 24, 24, 24, 24, 25, - 7, 7, 0, 7, 8, 29, 29, 29, 29, 29, - 24, 24, 24, 24, 29, 29, 29, 29, 25, 25, - 25, 25, 25, 24, 24, 24, 24, 25, 7, 29, - 29, 29, 0, 18, 24, 24, 24, 29, 29, 29, - - 25, 25, 25, 24, 24, 24, 25, 29, 29, 29, - 29, 29, 24, 24, 24, 29, 29, 29, 25, 25, - 25, 25, 25, 24, 24, 24, 25, 21, 21, 21, - 0, 17, 24, 0, 16, 29, 29, 29, 21, 21, - 21, 24, 25, 29, 21, 21, 21, 21, 24, 27, - 29, 13, 25, 21, 21, 21, 21, 24, 25, 29, - 22, 22, 22, 0, 15, 29, 13, 25, 22, 22, - 22, 29, 29, 22, 22, 22, 22, 22, 14, 25, - 25, 22, 22, 22, 22, 22, 29, 29, 29, 22, - 22, 25, 25, 25, 22, 22, 29, 29, 29, 29, - - 29, 25, 25, 25, 25, 25, 29, 29, 29, 25, - 25, 25, 29, 29, 29, 29, 29, 25, 25, 25, - 25, 25, 21, 21, 21, 21, 21, 21, 21, 21, - 21, 21, 21, 21, 0 + 0, 0, 42, 31, 37, 36, 35, 40, 31, 25, + 40, 31, 32, 31, 31, 31, 31, 34, 33, 26, + 26, 26, 26, 26, 40, 31, 26, 26, 26, 26, + 26, 27, 40, 27, 28, 27, 27, 27, 27, 27, + 26, 26, 26, 26, 26, 40, 27, 1, 12, 11, + 12, 11, 11, 40, 40, 2, 8, 8, 8, 3, + 8, 4, 40, 31, 0, 37, 35, 0, 39, 22, + 0, 21, 0, 30, 30, 0, 31, 31, 31, 31, + 31, 26, 26, 26, 26, 26, 31, 38, 31, 31, + + 31, 31, 31, 31, 27, 0, 27, 22, 0, 21, + 0, 27, 0, 27, 27, 27, 27, 27, 26, 26, + 26, 26, 26, 27, 27, 1, 12, 12, 10, 9, + 10, 0, 2, 8, 0, 8, 0, 0, 5, 6, + 8, 8, 0, 31, 31, 31, 26, 26, 26, 26, + 26, 26, 31, 31, 31, 31, 31, 31, 27, 27, + 27, 26, 26, 26, 26, 26, 26, 27, 7, 7, + 0, 7, 8, 31, 31, 31, 31, 31, 26, 26, + 26, 26, 26, 26, 31, 31, 31, 31, 27, 27, + 27, 27, 27, 26, 26, 26, 26, 26, 26, 27, + + 7, 31, 31, 31, 0, 18, 26, 26, 26, 26, + 26, 31, 31, 31, 27, 27, 27, 26, 26, 26, + 26, 26, 27, 31, 31, 31, 31, 31, 26, 26, + 26, 26, 0, 20, 31, 31, 31, 27, 27, 27, + 27, 27, 26, 26, 26, 26, 27, 23, 23, 23, + 0, 17, 26, 26, 0, 16, 31, 31, 31, 23, + 23, 23, 26, 26, 27, 31, 23, 23, 23, 23, + 26, 0, 19, 29, 31, 13, 27, 23, 23, 23, + 23, 26, 27, 31, 24, 24, 24, 0, 15, 31, + 13, 27, 24, 24, 24, 31, 31, 24, 24, 24, + + 24, 24, 14, 27, 27, 24, 24, 24, 24, 24, + 31, 31, 31, 24, 24, 27, 27, 27, 24, 24, + 31, 31, 31, 31, 31, 27, 27, 27, 27, 27, + 31, 31, 31, 27, 27, 27, 31, 31, 31, 31, + 31, 27, 27, 27, 27, 27, 23, 23, 23, 23, + 23, 23, 23, 23, 23, 23, 23, 23, 0 } ; static yyconst int yy_ec[256] = @@ -338,12 +340,12 @@ static yyconst int yy_ec[256] = 19, 20, 21, 22, 22, 22, 22, 23, 1, 1, 24, 25, 10, 25, 26, 27, 28, 29, 30, 27, 27, 31, 27, 27, 27, 27, 27, 32, 33, 34, - 27, 35, 36, 27, 37, 27, 38, 39, 27, 27, - 10, 40, 10, 1, 41, 1, 42, 43, 43, 44, + 27, 35, 36, 37, 38, 27, 39, 40, 27, 27, + 10, 41, 10, 1, 42, 1, 43, 44, 44, 45, - 45, 46, 43, 43, 47, 43, 43, 48, 49, 50, - 51, 43, 43, 52, 53, 54, 55, 43, 43, 43, - 43, 43, 1, 1, 1, 1, 1, 1, 1, 1, + 46, 47, 44, 44, 48, 44, 44, 49, 50, 51, + 52, 44, 44, 53, 54, 55, 56, 44, 44, 44, + 44, 44, 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, @@ -360,496 +362,784 @@ static yyconst int yy_ec[256] = 1, 1, 1, 1, 1 } ; -static yyconst int yy_meta[56] = +static yyconst int yy_meta[57] = { 0, 1, 2, 2, 3, 1, 4, 1, 3, 3, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 4, 3, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 6, - 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7 + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7 } ; -static yyconst short int yy_base[355] = +static yyconst short int yy_base[379] = { 0, - 0, 28, 65, 0, 56, 119, 120, 127, 166, 220, - 274, 313, 1244, 1195, 1224, 1708, 1211, 1211, 1166, 1708, - 1708, 1157, 1708, 133, 340, 158, 136, 1708, 1708, 380, - 1153, 1150, 1148, 434, 94, 1116, 1111, 1096, 1074, 1065, - 1077, 168, 1073, 1708, 1064, 157, 446, 182, 175, 486, - 1049, 1046, 1044, 540, 107, 1059, 0, 1708, 1048, 0, - 1708, 564, 58, 0, 992, 287, 124, 1708, 201, 1708, - 133, 982, 603, 1016, 1003, 989, 1708, 951, 627, 935, - 651, 296, 924, 675, 211, 131, 0, 0, 928, 0, - 904, 129, 873, 241, 1708, 194, 88, 100, 195, 196, - - 197, 853, 699, 236, 844, 723, 835, 747, 298, 771, - 312, 268, 0, 0, 844, 0, 827, 254, 812, 307, - 251, 837, 0, 810, 237, 1708, 1708, 294, 0, 758, - 339, 364, 254, 337, 1708, 1708, 753, 310, 449, 460, - 537, 561, 764, 742, 752, 738, 295, 299, 205, 324, - 261, 331, 575, 600, 624, 729, 699, 711, 700, 304, - 694, 1708, 344, 666, 690, 699, 308, 744, 768, 783, - 363, 703, 677, 671, 328, 334, 399, 339, 790, 430, - 799, 815, 824, 380, 674, 652, 647, 405, 443, 833, - 842, 851, 467, 1708, 652, 594, 571, 409, 445, 444, - - 860, 869, 878, 544, 514, 466, 412, 885, 531, 894, - 910, 919, 486, 456, 487, 522, 550, 507, 926, 546, - 935, 951, 960, 583, 437, 600, 561, 968, 806, 724, - 601, 1708, 418, 611, 1708, 607, 585, 458, 994, 901, - 942, 412, 608, 977, 649, 0, 0, 383, 635, 349, - 614, 642, 984, 651, 0, 0, 350, 647, 280, 1009, - 1019, 1028, 1037, 671, 1708, 657, 1708, 1046, 1055, 1064, - 1073, 1080, 559, 1089, 1105, 1114, 1123, 1098, 243, 1132, - 570, 1141, 1150, 1159, 1168, 1177, 1182, 1191, 1202, 1211, - 751, 1220, 1229, 1238, 1247, 1003, 1254, 672, 1263, 1279, - - 1288, 1295, 712, 1304, 1320, 1329, 1338, 1347, 1356, 1365, - 1374, 1383, 1392, 714, 1401, 1410, 1419, 1428, 736, 1437, - 1446, 1455, 1464, 1473, 1482, 1491, 1500, 1509, 210, 1516, - 1523, 165, 1529, 1541, 1708, 1581, 1588, 1595, 1602, 1609, - 1616, 1623, 1630, 1637, 1644, 1651, 1658, 1665, 176, 1672, - 1679, 1686, 1693, 1700 + 0, 29, 67, 0, 57, 122, 123, 130, 170, 225, + 280, 320, 965, 922, 960, 2998, 955, 954, 914, 2998, + 2998, 909, 2998, 136, 348, 376, 404, 2998, 2998, 445, + 901, 906, 912, 900, 500, 96, 883, 885, 874, 869, + 861, 873, 162, 870, 2998, 868, 161, 512, 540, 568, + 609, 867, 869, 872, 861, 664, 100, 893, 0, 2998, + 890, 0, 2998, 688, 59, 0, 852, 293, 107, 2998, + 114, 2998, 147, 849, 728, 885, 881, 880, 2998, 839, + 752, 838, 776, 302, 829, 800, 216, 125, 812, 840, + 189, 0, 839, 155, 829, 829, 155, 2998, 118, 146, + + 121, 147, 149, 152, 811, 880, 226, 796, 904, 795, + 928, 304, 952, 319, 153, 964, 992, 332, 0, 805, + 219, 791, 796, 248, 150, 819, 0, 816, 238, 2998, + 2998, 252, 0, 778, 295, 375, 247, 259, 2998, 2998, + 777, 313, 407, 1020, 1048, 1076, 788, 775, 788, 778, + 775, 779, 262, 218, 217, 287, 277, 249, 1104, 1132, + 1160, 777, 763, 772, 754, 751, 753, 306, 738, 2998, + 289, 539, 567, 386, 341, 1188, 1216, 497, 361, 744, + 727, 731, 716, 714, 158, 315, 318, 331, 416, 369, + 1244, 1272, 580, 377, 713, 706, 715, 700, 703, 330, + + 370, 1300, 1328, 1356, 389, 2998, 693, 663, 669, 664, + 426, 220, 360, 102, 1384, 1412, 1440, 643, 633, 590, + 588, 445, 398, 661, 374, 1468, 1496, 687, 446, 576, + 573, 517, 520, 2998, 403, 486, 399, 697, 400, 1524, + 1552, 706, 544, 525, 519, 545, 507, 1579, 1606, 1633, + 548, 2998, 491, 572, 581, 2998, 466, 564, 388, 1660, + 1687, 1714, 476, 590, 511, 749, 495, 1741, 1768, 776, + 609, 672, 2998, 429, 496, 552, 822, 561, 1795, 1822, + 830, 673, 412, 1850, 1878, 1906, 1934, 708, 2998, 524, + 2998, 1962, 1990, 2018, 2046, 856, 592, 2074, 2102, 2130, + + 2158, 732, 268, 901, 593, 2186, 2214, 2242, 2270, 850, + 2298, 2326, 2354, 927, 668, 2382, 2410, 2438, 974, 883, + 981, 721, 2466, 2494, 1007, 1033, 731, 2522, 2550, 1059, + 2578, 2606, 2634, 2662, 2690, 2718, 1065, 745, 2746, 2774, + 1091, 1117, 769, 2802, 2830, 1143, 1149, 1175, 1201, 1227, + 1234, 1260, 246, 1286, 1312, 119, 1318, 1344, 2998, 2871, + 2878, 2885, 2892, 2899, 2906, 2913, 2920, 2927, 2934, 2941, + 2948, 2955, 59, 2962, 2969, 2976, 2983, 2990 } ; -static yyconst short int yy_def[355] = +static yyconst short int yy_def[379] = { 0, - 335, 1, 335, 3, 1, 1, 336, 336, 337, 337, - 338, 338, 335, 339, 335, 335, 335, 340, 341, 335, - 335, 342, 335, 343, 339, 25, 25, 335, 335, 335, - 30, 30, 30, 339, 339, 30, 30, 30, 30, 30, - 344, 335, 345, 335, 346, 347, 344, 47, 47, 335, - 50, 50, 50, 344, 344, 335, 348, 335, 348, 348, - 335, 335, 335, 349, 350, 351, 350, 335, 350, 335, - 352, 339, 339, 335, 335, 340, 335, 341, 341, 342, - 342, 343, 353, 339, 339, 339, 25, 25, 25, 30, - 30, 30, 30, 339, 335, 339, 339, 339, 339, 339, - - 339, 344, 344, 335, 345, 345, 346, 346, 347, 344, - 344, 344, 47, 47, 47, 50, 50, 50, 50, 344, - 344, 335, 348, 348, 335, 335, 335, 335, 349, 350, - 350, 351, 354, 351, 335, 335, 350, 350, 335, 25, - 25, 25, 30, 30, 30, 30, 339, 339, 339, 339, - 339, 339, 47, 47, 47, 50, 50, 50, 50, 344, - 350, 335, 354, 351, 351, 339, 339, 25, 25, 25, - 30, 30, 30, 30, 339, 339, 339, 339, 344, 344, - 47, 47, 47, 50, 50, 50, 50, 344, 354, 25, - 25, 25, 335, 335, 30, 30, 30, 339, 339, 339, - - 47, 47, 47, 50, 50, 50, 344, 339, 339, 25, - 25, 25, 30, 30, 30, 339, 339, 339, 344, 344, - 47, 47, 47, 50, 50, 50, 344, 339, 228, 228, - 335, 335, 30, 335, 335, 339, 339, 339, 344, 239, - 239, 50, 344, 339, 339, 228, 228, 228, 30, 339, - 339, 339, 344, 344, 239, 239, 239, 50, 344, 25, - 25, 25, 25, 335, 335, 339, 335, 47, 47, 47, - 47, 339, 339, 25, 25, 25, 25, 339, 339, 47, - 344, 47, 47, 47, 47, 344, 25, 25, 25, 25, - 339, 47, 47, 47, 47, 344, 339, 339, 25, 25, - - 25, 344, 344, 47, 47, 47, 25, 25, 25, 47, - 47, 47, 25, 339, 25, 25, 25, 47, 344, 47, - 47, 47, 25, 25, 25, 47, 47, 47, 339, 339, - 339, 344, 344, 344, 0, 335, 335, 335, 335, 335, - 335, 335, 335, 335, 335, 335, 335, 335, 335, 335, - 335, 335, 335, 335 + 359, 1, 359, 3, 1, 1, 360, 360, 361, 361, + 362, 362, 359, 363, 359, 359, 359, 364, 365, 359, + 359, 366, 359, 367, 363, 363, 363, 359, 359, 359, + 30, 30, 30, 30, 363, 363, 30, 30, 30, 30, + 30, 368, 359, 369, 359, 370, 371, 368, 368, 368, + 359, 51, 51, 51, 51, 368, 368, 359, 372, 359, + 372, 372, 359, 359, 359, 373, 374, 375, 374, 359, + 374, 359, 376, 363, 363, 359, 359, 364, 359, 365, + 365, 366, 366, 367, 377, 363, 363, 363, 363, 363, + 363, 30, 30, 30, 30, 30, 363, 359, 363, 363, + + 363, 363, 363, 363, 368, 368, 359, 369, 369, 370, + 370, 371, 368, 368, 368, 368, 368, 368, 51, 51, + 51, 51, 51, 368, 368, 359, 372, 372, 359, 359, + 359, 359, 373, 374, 374, 375, 378, 375, 359, 359, + 374, 374, 359, 363, 363, 363, 30, 30, 30, 30, + 30, 30, 363, 363, 363, 363, 363, 363, 368, 368, + 368, 51, 51, 51, 51, 51, 51, 368, 374, 359, + 378, 375, 375, 363, 363, 363, 363, 363, 30, 30, + 30, 30, 30, 30, 363, 363, 363, 363, 368, 368, + 368, 368, 368, 51, 51, 51, 51, 51, 51, 368, + + 378, 363, 363, 363, 359, 359, 30, 30, 30, 30, + 30, 363, 363, 363, 368, 368, 368, 51, 51, 51, + 51, 51, 368, 363, 363, 363, 363, 363, 30, 30, + 30, 30, 359, 359, 363, 363, 363, 368, 368, 368, + 368, 368, 51, 51, 51, 51, 368, 363, 363, 363, + 359, 359, 30, 30, 359, 359, 363, 363, 363, 368, + 368, 368, 51, 51, 368, 363, 363, 363, 363, 363, + 30, 359, 359, 363, 363, 363, 368, 368, 368, 368, + 368, 51, 368, 363, 363, 363, 363, 359, 359, 363, + 359, 368, 368, 368, 368, 363, 363, 363, 363, 363, + + 363, 363, 363, 368, 368, 368, 368, 368, 368, 368, + 363, 363, 363, 363, 363, 368, 368, 368, 368, 368, + 363, 363, 363, 363, 363, 368, 368, 368, 368, 368, + 363, 363, 363, 368, 368, 368, 363, 363, 363, 363, + 363, 368, 368, 368, 368, 368, 363, 363, 363, 368, + 368, 368, 363, 363, 363, 368, 368, 368, 0, 359, + 359, 359, 359, 359, 359, 359, 359, 359, 359, 359, + 359, 359, 359, 359, 359, 359, 359, 359 } ; -static yyconst short int yy_nxt[1764] = +static yyconst short int yy_nxt[3055] = { 0, 14, 15, 16, 17, 14, 18, 19, 20, 21, 14, 22, 23, 14, 14, 24, 25, 26, 27, 25, 25, 25, 25, 28, 29, 21, 30, 30, 30, 30, 31, - 30, 32, 30, 33, 30, 30, 30, 30, 30, 34, - 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, - 14, 14, 35, 14, 14, 36, 37, 56, 38, 128, - 95, 21, 39, 21, 40, 41, 15, 16, 17, 41, - 42, 43, 21, 44, 41, 45, 23, 41, 41, 46, - 47, 48, 49, 47, 47, 47, 47, 28, 29, 21, - 50, 50, 50, 50, 51, 50, 52, 50, 53, 50, - - 50, 50, 50, 50, 54, 41, 41, 41, 41, 41, - 41, 41, 41, 41, 41, 41, 41, 55, 41, 41, - 56, 15, 58, 59, 21, 60, 21, 73, 15, 58, - 59, 61, 60, 73, 138, 95, 83, 148, 61, 73, - 83, 83, 61, 60, 85, 149, 103, 135, 96, 61, - 60, 88, 88, 88, 88, 88, 89, 83, 144, 62, - 83, 121, 145, 131, 83, 83, 62, 15, 16, 17, - 73, 18, 84, 87, 87, 87, 87, 87, 87, 87, - 104, 83, 129, 104, 104, 104, 104, 104, 104, 104, - 114, 114, 114, 114, 114, 115, 110, 113, 113, 113, - - 113, 113, 113, 113, 103, 63, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 15, 16, 17, 136, 18, 140, 141, 142, 140, - 140, 140, 140, 73, 73, 73, 73, 147, 128, 95, - 131, 152, 128, 95, 73, 151, 177, 150, 104, 73, - 73, 104, 104, 104, 104, 104, 104, 104, 162, 63, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 15, 16, 17, 66, 18, - 73, 111, 73, 157, 67, 68, 69, 158, 133, 133, - 103, 130, 133, 163, 160, 128, 95, 70, 133, 83, - - 73, 83, 178, 83, 83, 83, 83, 103, 128, 95, - 133, 128, 95, 71, 15, 16, 17, 66, 18, 103, - 83, 166, 83, 67, 68, 69, 134, 153, 154, 155, - 153, 153, 153, 153, 73, 84, 70, 110, 73, 133, - 130, 164, 176, 103, 130, 175, 103, 73, 189, 131, - 130, 103, 71, 85, 188, 86, 86, 86, 86, 86, - 86, 86, 130, 73, 193, 133, 133, 73, 161, 133, - 73, 102, 198, 73, 199, 133, 165, 176, 73, 73, - 72, 193, 176, 163, 72, 194, 72, 133, 73, 72, - 72, 176, 72, 72, 72, 90, 90, 90, 90, 90, - - 90, 90, 194, 134, 72, 90, 90, 90, 90, 90, - 90, 90, 90, 90, 90, 90, 90, 90, 90, 73, - 90, 72, 72, 72, 72, 72, 72, 72, 72, 72, - 72, 72, 72, 72, 72, 94, 95, 72, 73, 72, - 258, 72, 72, 179, 103, 72, 249, 162, 73, 207, - 83, 103, 216, 200, 83, 227, 72, 72, 72, 111, - 83, 112, 112, 112, 112, 112, 112, 112, 193, 103, - 217, 83, 83, 166, 242, 167, 167, 167, 167, 167, - 167, 167, 163, 73, 73, 103, 102, 231, 234, 194, - 102, 218, 102, 233, 226, 102, 102, 73, 102, 102, - - 102, 116, 116, 116, 116, 116, 116, 116, 232, 235, - 252, 116, 116, 116, 116, 116, 116, 116, 116, 116, - 116, 116, 116, 116, 116, 103, 116, 102, 102, 102, - 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, - 102, 120, 95, 102, 208, 102, 73, 102, 102, 225, - 166, 102, 168, 168, 168, 168, 168, 168, 168, 219, - 238, 73, 102, 102, 102, 125, 95, 126, 236, 127, - 73, 224, 272, 126, 166, 127, 169, 169, 169, 169, - 169, 170, 167, 280, 231, 103, 127, 127, 179, 73, - 180, 180, 180, 180, 180, 180, 180, 237, 73, 215, - - 103, 234, 231, 127, 72, 232, 72, 243, 72, 103, - 72, 72, 234, 179, 72, 181, 181, 181, 181, 181, - 181, 181, 235, 232, 73, 72, 72, 72, 78, 214, - 78, 251, 78, 235, 78, 78, 264, 179, 78, 182, - 182, 182, 182, 182, 183, 180, 73, 103, 264, 78, - 78, 78, 80, 73, 80, 266, 80, 265, 80, 80, - 250, 259, 80, 244, 267, 253, 267, 133, 133, 265, - 161, 133, 264, 80, 80, 80, 82, 133, 72, 213, - 82, 73, 72, 72, 206, 297, 82, 205, 73, 133, - 103, 133, 133, 265, 164, 133, 73, 82, 82, 72, - - 102, 133, 102, 204, 102, 134, 102, 102, 197, 279, - 102, 73, 196, 133, 190, 191, 192, 190, 190, 190, - 190, 102, 102, 102, 105, 302, 105, 313, 105, 134, - 105, 105, 195, 131, 105, 187, 186, 185, 73, 247, - 247, 247, 247, 247, 248, 105, 105, 105, 107, 318, - 107, 103, 107, 73, 107, 107, 184, 166, 107, 167, - 167, 167, 167, 167, 167, 167, 291, 291, 291, 107, - 107, 107, 109, 174, 102, 103, 109, 173, 102, 102, - 172, 166, 109, 167, 167, 167, 167, 167, 167, 167, - 73, 171, 131, 109, 109, 102, 166, 131, 167, 167, - - 167, 167, 167, 167, 72, 201, 202, 203, 201, 201, - 201, 201, 179, 124, 180, 180, 180, 180, 180, 180, - 180, 246, 246, 246, 246, 246, 246, 246, 179, 103, - 180, 180, 180, 180, 180, 180, 180, 179, 122, 180, - 180, 180, 180, 180, 180, 102, 208, 159, 209, 209, - 209, 209, 209, 209, 209, 208, 156, 210, 210, 210, - 210, 210, 210, 210, 208, 102, 211, 211, 211, 211, - 211, 212, 209, 219, 108, 220, 220, 220, 220, 220, - 220, 220, 219, 106, 221, 221, 221, 221, 221, 221, - 221, 219, 103, 222, 222, 222, 222, 222, 223, 220, - - 228, 229, 230, 228, 228, 228, 228, 208, 146, 209, - 209, 209, 209, 209, 209, 209, 255, 255, 255, 255, - 255, 255, 255, 208, 73, 209, 209, 209, 209, 209, - 209, 209, 208, 143, 209, 209, 209, 209, 209, 209, - 72, 239, 240, 241, 239, 239, 239, 239, 219, 72, - 220, 220, 220, 220, 220, 220, 220, 256, 256, 256, - 256, 256, 257, 139, 219, 103, 220, 220, 220, 220, - 220, 220, 220, 219, 81, 220, 220, 220, 220, 220, - 220, 102, 244, 245, 245, 245, 245, 245, 245, 245, - 79, 77, 260, 261, 262, 263, 260, 260, 260, 268, - - 269, 270, 271, 268, 268, 268, 75, 73, 253, 254, - 254, 254, 254, 254, 254, 254, 73, 74, 296, 296, - 296, 73, 272, 103, 273, 273, 273, 273, 273, 273, - 273, 131, 272, 103, 274, 274, 274, 274, 274, 274, - 274, 272, 103, 275, 275, 275, 275, 275, 276, 277, - 272, 124, 278, 278, 278, 273, 273, 273, 273, 280, - 122, 281, 281, 281, 281, 281, 281, 281, 280, 119, - 282, 282, 282, 282, 282, 282, 282, 280, 118, 283, - 283, 283, 283, 283, 284, 285, 280, 117, 286, 286, - 286, 281, 281, 281, 281, 287, 288, 289, 287, 287, - - 287, 287, 272, 108, 277, 277, 277, 277, 277, 277, - 277, 272, 106, 291, 291, 291, 103, 101, 272, 73, - 277, 277, 277, 277, 277, 277, 277, 272, 100, 277, - 277, 277, 277, 277, 277, 290, 272, 73, 290, 290, - 290, 290, 290, 290, 290, 102, 99, 292, 293, 294, - 292, 292, 292, 292, 280, 98, 285, 285, 285, 285, - 285, 285, 285, 280, 97, 285, 285, 285, 285, 285, - 285, 285, 280, 93, 285, 285, 285, 285, 285, 285, - 295, 280, 92, 295, 295, 295, 295, 295, 295, 295, - 280, 91, 296, 296, 296, 297, 81, 298, 298, 298, - - 298, 298, 298, 298, 297, 79, 299, 299, 299, 299, - 299, 299, 299, 77, 75, 297, 103, 300, 300, 300, - 300, 300, 301, 298, 72, 74, 290, 290, 290, 290, - 290, 290, 290, 302, 73, 303, 303, 303, 303, 303, - 303, 303, 302, 335, 304, 304, 304, 304, 304, 304, - 304, 302, 335, 305, 305, 305, 305, 305, 306, 303, - 102, 335, 295, 295, 295, 295, 295, 295, 295, 307, - 308, 309, 307, 307, 307, 307, 297, 335, 298, 298, - 298, 298, 298, 298, 298, 335, 335, 335, 335, 335, - 335, 335, 297, 73, 298, 298, 298, 298, 298, 298, - - 298, 297, 335, 298, 298, 298, 298, 298, 298, 72, - 310, 311, 312, 310, 310, 310, 310, 302, 335, 303, - 303, 303, 303, 303, 303, 303, 335, 335, 335, 335, - 335, 335, 335, 302, 103, 303, 303, 303, 303, 303, - 303, 303, 302, 335, 303, 303, 303, 303, 303, 303, - 102, 313, 335, 314, 314, 314, 314, 314, 314, 314, - 313, 335, 315, 315, 315, 315, 315, 315, 315, 313, - 335, 316, 316, 316, 316, 316, 317, 314, 318, 335, - 319, 319, 319, 319, 319, 319, 319, 318, 335, 320, - 320, 320, 320, 320, 320, 320, 318, 335, 321, 321, - - 321, 321, 321, 322, 319, 72, 335, 323, 324, 325, - 323, 323, 323, 323, 313, 335, 314, 314, 314, 314, - 314, 314, 314, 313, 335, 314, 314, 314, 314, 314, - 314, 314, 313, 335, 314, 314, 314, 314, 314, 314, - 72, 102, 335, 326, 327, 328, 326, 326, 326, 326, - 318, 335, 319, 319, 319, 319, 319, 319, 319, 318, - 335, 319, 319, 319, 319, 319, 319, 319, 318, 335, - 319, 319, 319, 319, 319, 319, 102, 72, 335, 329, - 329, 329, 329, 329, 329, 329, 72, 335, 323, 323, - 323, 323, 323, 323, 323, 72, 335, 330, 330, 330, - - 330, 330, 331, 329, 102, 335, 332, 332, 332, 332, - 332, 332, 332, 102, 335, 326, 326, 326, 326, 326, - 326, 326, 102, 335, 333, 333, 333, 333, 333, 334, - 332, 329, 329, 329, 329, 329, 329, 329, 329, 329, - 329, 329, 329, 329, 332, 332, 332, 332, 332, 332, - 332, 335, 335, 335, 335, 73, 332, 332, 332, 332, - 332, 332, 73, 335, 335, 335, 335, 335, 103, 335, - 335, 335, 335, 335, 335, 335, 335, 335, 335, 335, - 103, 57, 57, 57, 57, 57, 57, 57, 21, 21, - 21, 21, 21, 21, 21, 65, 65, 65, 65, 65, - - 65, 65, 72, 335, 335, 335, 335, 72, 72, 76, - 76, 76, 76, 76, 76, 76, 78, 335, 335, 335, - 335, 78, 78, 80, 335, 335, 335, 335, 80, 80, - 82, 335, 82, 335, 335, 82, 82, 102, 335, 335, - 335, 335, 102, 102, 105, 335, 335, 335, 335, 105, - 105, 107, 335, 335, 335, 335, 107, 107, 109, 335, - 109, 335, 335, 109, 109, 123, 335, 123, 123, 335, - 335, 123, 130, 335, 130, 335, 130, 130, 130, 132, - 132, 132, 132, 132, 132, 132, 137, 137, 137, 137, - 137, 137, 137, 83, 335, 83, 335, 335, 83, 83, - - 133, 133, 133, 133, 133, 133, 133, 13, 335, 335, - 335, 335, 335, 335, 335, 335, 335, 335, 335, 335, - 335, 335, 335, 335, 335, 335, 335, 335, 335, 335, - 335, 335, 335, 335, 335, 335, 335, 335, 335, 335, - 335, 335, 335, 335, 335, 335, 335, 335, 335, 335, - 335, 335, 335, 335, 335, 335, 335, 335, 335, 335, - 335, 335, 335 + 30, 32, 30, 33, 30, 30, 34, 30, 30, 30, + 35, 14, 14, 14, 14, 14, 14, 14, 14, 14, + 14, 14, 14, 36, 14, 14, 37, 38, 58, 39, + 132, 98, 21, 40, 21, 133, 41, 42, 15, 16, + 17, 42, 43, 44, 21, 45, 42, 46, 23, 42, + 42, 47, 48, 49, 50, 48, 48, 48, 48, 28, + 29, 21, 51, 51, 51, 51, 52, 51, 53, 51, + + 54, 51, 51, 55, 51, 51, 51, 56, 42, 42, + 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, + 57, 42, 42, 58, 15, 60, 61, 21, 62, 21, + 139, 15, 60, 61, 63, 62, 75, 140, 87, 85, + 106, 63, 75, 85, 85, 63, 62, 135, 142, 98, + 237, 99, 63, 62, 135, 125, 132, 98, 75, 106, + 85, 75, 153, 64, 85, 75, 114, 155, 85, 85, + 64, 15, 16, 17, 107, 18, 86, 107, 107, 107, + 107, 107, 107, 107, 148, 85, 75, 75, 149, 75, + 106, 150, 75, 106, 168, 75, 154, 158, 75, 157, + + 156, 113, 87, 212, 88, 88, 88, 88, 88, 88, + 65, 66, 66, 66, 66, 66, 66, 66, 66, 66, + 66, 66, 66, 66, 66, 66, 15, 16, 17, 75, + 18, 144, 145, 146, 144, 144, 144, 144, 107, 132, + 98, 107, 107, 107, 107, 107, 107, 107, 163, 132, + 98, 170, 164, 132, 98, 165, 75, 75, 75, 187, + 75, 137, 186, 172, 235, 65, 66, 66, 66, 66, + 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, + 66, 15, 16, 17, 68, 18, 75, 171, 106, 75, + 69, 70, 71, 201, 137, 137, 134, 134, 137, 173, + + 134, 186, 75, 72, 137, 85, 134, 85, 75, 85, + 85, 85, 85, 185, 132, 98, 137, 75, 134, 188, + 73, 15, 16, 17, 68, 18, 85, 75, 85, 171, + 69, 70, 71, 138, 159, 160, 161, 159, 159, 159, + 159, 186, 86, 72, 113, 114, 106, 115, 115, 115, + 115, 115, 115, 135, 174, 75, 213, 200, 75, 106, + 73, 87, 205, 88, 88, 88, 88, 88, 88, 88, + 106, 75, 106, 214, 170, 223, 137, 137, 205, 169, + 137, 75, 189, 206, 186, 236, 137, 224, 75, 87, + 205, 89, 89, 89, 89, 89, 89, 89, 137, 206, + + 75, 202, 203, 204, 202, 202, 202, 202, 85, 106, + 171, 206, 85, 238, 75, 138, 75, 87, 85, 90, + 90, 90, 90, 90, 91, 88, 75, 233, 75, 85, + 85, 215, 216, 217, 215, 215, 215, 215, 106, 75, + 106, 276, 247, 75, 75, 74, 233, 251, 234, 74, + 257, 74, 106, 259, 74, 74, 106, 74, 74, 74, + 92, 92, 92, 92, 92, 92, 92, 234, 252, 75, + 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, + 92, 92, 92, 92, 92, 75, 92, 74, 74, 74, + 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, + + 74, 97, 98, 74, 282, 74, 75, 74, 74, 266, + 174, 74, 175, 175, 175, 175, 175, 175, 255, 271, + 274, 233, 74, 74, 74, 114, 75, 115, 115, 115, + 115, 115, 115, 115, 258, 75, 75, 75, 290, 256, + 137, 137, 234, 169, 137, 251, 255, 106, 264, 251, + 137, 106, 106, 114, 265, 116, 116, 116, 116, 116, + 116, 116, 137, 263, 75, 283, 252, 256, 137, 137, + 252, 172, 137, 272, 291, 277, 291, 303, 137, 138, + 106, 114, 255, 117, 117, 117, 117, 117, 118, 115, + 137, 272, 75, 189, 273, 190, 190, 190, 190, 190, + + 190, 106, 254, 256, 75, 296, 304, 138, 106, 105, + 288, 275, 273, 105, 253, 105, 246, 245, 105, 105, + 106, 105, 105, 105, 119, 119, 119, 119, 119, 119, + 119, 289, 75, 106, 119, 119, 119, 119, 119, 119, + 119, 119, 119, 119, 119, 119, 119, 119, 119, 106, + 119, 105, 105, 105, 105, 105, 105, 105, 105, 105, + 105, 105, 105, 105, 105, 124, 98, 105, 244, 105, + 243, 105, 105, 272, 288, 105, 248, 249, 250, 248, + 248, 248, 248, 315, 315, 315, 105, 105, 105, 129, + 98, 130, 232, 131, 273, 289, 231, 130, 230, 131, + + 224, 75, 225, 225, 225, 225, 225, 225, 75, 288, + 131, 131, 260, 261, 262, 260, 260, 260, 260, 238, + 229, 239, 239, 239, 239, 239, 239, 75, 131, 74, + 289, 74, 222, 74, 321, 74, 74, 106, 221, 74, + 220, 219, 218, 211, 326, 296, 106, 315, 315, 315, + 74, 74, 74, 80, 210, 80, 209, 80, 337, 80, + 80, 75, 208, 80, 284, 285, 286, 287, 284, 284, + 284, 106, 75, 207, 80, 80, 80, 82, 135, 82, + 199, 82, 342, 82, 82, 75, 198, 82, 197, 75, + 266, 267, 267, 267, 267, 267, 267, 196, 82, 82, + + 82, 84, 195, 74, 194, 84, 184, 74, 74, 106, + 183, 84, 182, 181, 180, 179, 75, 135, 135, 128, + 126, 167, 84, 84, 74, 87, 166, 88, 88, 88, + 88, 88, 88, 88, 162, 111, 109, 292, 293, 294, + 295, 292, 292, 292, 277, 278, 278, 278, 278, 278, + 278, 106, 75, 87, 152, 88, 88, 88, 88, 88, + 88, 88, 106, 304, 151, 320, 320, 320, 147, 143, + 106, 311, 312, 313, 311, 311, 311, 311, 83, 81, + 75, 105, 79, 105, 77, 105, 76, 105, 105, 75, + 106, 105, 135, 128, 126, 123, 75, 122, 320, 320, + + 320, 121, 105, 105, 105, 108, 120, 108, 111, 108, + 109, 108, 108, 106, 104, 108, 316, 317, 318, 316, + 316, 316, 316, 106, 103, 102, 108, 108, 108, 110, + 101, 110, 100, 110, 96, 110, 110, 95, 94, 110, + 93, 106, 314, 314, 314, 314, 314, 314, 314, 83, + 110, 110, 110, 112, 81, 105, 79, 112, 77, 105, + 105, 76, 75, 112, 359, 359, 359, 75, 359, 359, + 359, 359, 359, 359, 112, 112, 105, 114, 359, 115, + 115, 115, 115, 115, 115, 115, 359, 359, 359, 319, + 319, 319, 319, 319, 319, 319, 331, 332, 333, 331, + + 331, 331, 331, 359, 106, 114, 359, 115, 115, 115, + 115, 115, 115, 115, 106, 359, 359, 359, 359, 359, + 321, 75, 322, 322, 322, 322, 322, 322, 359, 359, + 359, 359, 106, 174, 359, 175, 175, 175, 175, 175, + 175, 175, 359, 359, 359, 359, 359, 75, 334, 335, + 336, 334, 334, 334, 334, 359, 359, 359, 359, 359, + 75, 174, 359, 176, 176, 176, 176, 176, 176, 176, + 359, 359, 326, 106, 327, 327, 327, 327, 327, 327, + 347, 348, 349, 347, 347, 347, 347, 359, 75, 174, + 359, 177, 177, 177, 177, 177, 178, 175, 359, 106, + + 359, 359, 359, 359, 337, 75, 338, 338, 338, 338, + 338, 338, 359, 359, 359, 359, 75, 189, 359, 190, + 190, 190, 190, 190, 190, 190, 359, 359, 359, 359, + 359, 75, 350, 351, 352, 350, 350, 350, 350, 359, + 359, 359, 359, 359, 106, 189, 359, 191, 191, 191, + 191, 191, 191, 191, 359, 359, 342, 106, 343, 343, + 343, 343, 343, 343, 353, 353, 353, 353, 353, 353, + 353, 359, 106, 189, 359, 192, 192, 192, 192, 192, + 193, 190, 359, 106, 359, 359, 359, 359, 359, 75, + 347, 347, 347, 347, 347, 347, 347, 359, 359, 359, + + 106, 174, 359, 175, 175, 175, 175, 175, 175, 175, + 359, 359, 359, 359, 359, 75, 354, 354, 354, 354, + 354, 355, 353, 359, 359, 359, 359, 359, 75, 174, + 359, 175, 175, 175, 175, 175, 175, 175, 359, 359, + 359, 75, 356, 356, 356, 356, 356, 356, 356, 350, + 350, 350, 350, 350, 350, 350, 75, 189, 359, 190, + 190, 190, 190, 190, 190, 190, 359, 106, 359, 359, + 359, 359, 359, 359, 106, 357, 357, 357, 357, 357, + 358, 356, 359, 359, 106, 189, 359, 190, 190, 190, + 190, 190, 190, 190, 359, 359, 359, 359, 359, 359, + + 106, 353, 353, 353, 353, 353, 353, 353, 359, 359, + 359, 359, 106, 224, 359, 225, 225, 225, 225, 225, + 225, 225, 359, 359, 359, 359, 75, 353, 353, 353, + 353, 353, 353, 356, 356, 356, 356, 356, 356, 356, + 75, 224, 359, 226, 226, 226, 226, 226, 226, 226, + 359, 359, 75, 359, 359, 359, 359, 359, 106, 356, + 356, 356, 356, 356, 356, 359, 359, 359, 75, 224, + 359, 227, 227, 227, 227, 227, 228, 225, 359, 359, + 359, 359, 359, 359, 106, 359, 359, 359, 359, 359, + 359, 359, 359, 359, 359, 359, 75, 238, 359, 239, + + 239, 239, 239, 239, 239, 239, 359, 359, 359, 359, + 359, 359, 359, 359, 359, 359, 359, 359, 359, 359, + 359, 359, 359, 359, 106, 238, 359, 240, 240, 240, + 240, 240, 240, 240, 359, 359, 359, 359, 359, 359, + 359, 359, 359, 359, 359, 359, 359, 359, 359, 359, + 359, 359, 106, 238, 359, 241, 241, 241, 241, 241, + 242, 239, 359, 359, 359, 359, 359, 359, 359, 359, + 359, 359, 359, 359, 359, 359, 359, 359, 359, 359, + 106, 224, 359, 225, 225, 225, 225, 225, 225, 225, + 359, 359, 359, 359, 359, 359, 359, 359, 359, 359, + + 359, 359, 359, 359, 359, 359, 359, 359, 75, 224, + 359, 225, 225, 225, 225, 225, 225, 225, 359, 359, + 359, 359, 359, 359, 359, 359, 359, 359, 359, 359, + 359, 359, 359, 359, 359, 359, 75, 238, 359, 239, + 239, 239, 239, 239, 239, 239, 359, 359, 359, 359, + 359, 359, 359, 359, 359, 359, 359, 359, 359, 359, + 359, 359, 359, 359, 106, 238, 359, 239, 239, 239, + 239, 239, 239, 239, 359, 359, 359, 359, 359, 359, + 359, 359, 359, 359, 359, 359, 359, 359, 359, 359, + 359, 359, 106, 266, 267, 267, 267, 267, 267, 267, + + 267, 359, 359, 359, 359, 359, 359, 359, 359, 359, + 359, 359, 359, 359, 359, 359, 359, 359, 359, 75, + 266, 268, 268, 268, 268, 268, 268, 268, 359, 359, + 359, 359, 359, 359, 359, 359, 359, 359, 359, 359, + 359, 359, 359, 359, 359, 359, 75, 266, 269, 269, + 269, 269, 269, 270, 267, 359, 359, 359, 359, 359, + 359, 359, 359, 359, 359, 359, 359, 359, 359, 359, + 359, 359, 359, 75, 277, 278, 278, 278, 278, 278, + 278, 278, 359, 359, 359, 359, 359, 359, 359, 359, + 359, 359, 359, 359, 359, 359, 359, 359, 359, 359, + + 106, 277, 279, 279, 279, 279, 279, 279, 279, 359, + 359, 359, 359, 359, 359, 359, 359, 359, 359, 359, + 359, 359, 359, 359, 359, 359, 359, 106, 277, 280, + 280, 280, 280, 280, 281, 278, 359, 359, 359, 359, + 359, 359, 359, 359, 359, 359, 359, 359, 359, 359, + 359, 359, 359, 359, 106, 266, 267, 267, 267, 267, + 267, 267, 267, 359, 359, 359, 359, 359, 359, 359, + 359, 359, 359, 359, 359, 359, 359, 359, 359, 359, + 359, 75, 266, 267, 267, 267, 267, 267, 267, 267, + 359, 359, 359, 359, 359, 359, 359, 359, 359, 359, + + 359, 359, 359, 359, 359, 359, 359, 359, 75, 277, + 278, 278, 278, 278, 278, 278, 278, 359, 359, 359, + 359, 359, 359, 359, 359, 359, 359, 359, 359, 359, + 359, 359, 359, 359, 359, 106, 277, 278, 278, 278, + 278, 278, 278, 278, 359, 359, 359, 359, 359, 359, + 359, 359, 359, 359, 359, 359, 359, 359, 359, 359, + 359, 359, 106, 296, 359, 297, 297, 297, 297, 297, + 297, 297, 359, 359, 359, 359, 359, 359, 359, 359, + 359, 359, 359, 359, 359, 359, 359, 359, 359, 359, + 75, 296, 359, 298, 298, 298, 298, 298, 298, 298, + + 359, 359, 359, 359, 359, 359, 359, 359, 359, 359, + 359, 359, 359, 359, 359, 359, 359, 359, 75, 296, + 359, 299, 299, 299, 299, 299, 300, 301, 359, 359, + 359, 359, 359, 359, 359, 359, 359, 359, 359, 359, + 359, 359, 359, 359, 359, 359, 75, 296, 359, 302, + 302, 302, 297, 297, 297, 297, 359, 359, 359, 359, + 359, 359, 359, 359, 359, 359, 359, 359, 359, 359, + 359, 359, 359, 359, 75, 304, 359, 305, 305, 305, + 305, 305, 305, 305, 359, 359, 359, 359, 359, 359, + 359, 359, 359, 359, 359, 359, 359, 359, 359, 359, + + 359, 359, 106, 304, 359, 306, 306, 306, 306, 306, + 306, 306, 359, 359, 359, 359, 359, 359, 359, 359, + 359, 359, 359, 359, 359, 359, 359, 359, 359, 359, + 106, 304, 359, 307, 307, 307, 307, 307, 308, 309, + 359, 359, 359, 359, 359, 359, 359, 359, 359, 359, + 359, 359, 359, 359, 359, 359, 359, 359, 106, 304, + 359, 310, 310, 310, 305, 305, 305, 305, 359, 359, + 359, 359, 359, 359, 359, 359, 359, 359, 359, 359, + 359, 359, 359, 359, 359, 359, 106, 296, 359, 301, + 301, 301, 301, 301, 301, 301, 359, 359, 359, 359, + + 359, 359, 359, 359, 359, 359, 359, 359, 359, 359, + 359, 359, 359, 359, 75, 296, 359, 301, 301, 301, + 301, 301, 301, 301, 359, 359, 359, 359, 359, 359, + 359, 359, 359, 359, 359, 359, 359, 359, 359, 359, + 359, 359, 75, 296, 359, 301, 301, 301, 301, 301, + 301, 314, 359, 359, 359, 359, 359, 359, 359, 359, + 359, 359, 359, 359, 359, 359, 359, 359, 359, 359, + 75, 296, 359, 314, 314, 314, 314, 314, 314, 314, + 359, 359, 359, 359, 359, 359, 359, 359, 359, 359, + 359, 359, 359, 359, 359, 359, 359, 359, 75, 304, + + 359, 309, 309, 309, 309, 309, 309, 309, 359, 359, + 359, 359, 359, 359, 359, 359, 359, 359, 359, 359, + 359, 359, 359, 359, 359, 359, 106, 304, 359, 309, + 309, 309, 309, 309, 309, 309, 359, 359, 359, 359, + 359, 359, 359, 359, 359, 359, 359, 359, 359, 359, + 359, 359, 359, 359, 106, 304, 359, 309, 309, 309, + 309, 309, 309, 319, 359, 359, 359, 359, 359, 359, + 359, 359, 359, 359, 359, 359, 359, 359, 359, 359, + 359, 359, 106, 304, 359, 319, 319, 319, 319, 319, + 319, 319, 359, 359, 359, 359, 359, 359, 359, 359, + + 359, 359, 359, 359, 359, 359, 359, 359, 359, 359, + 106, 321, 359, 322, 322, 322, 322, 322, 322, 322, + 359, 359, 359, 359, 359, 359, 359, 359, 359, 359, + 359, 359, 359, 359, 359, 359, 359, 359, 75, 321, + 359, 323, 323, 323, 323, 323, 323, 323, 359, 359, + 359, 359, 359, 359, 359, 359, 359, 359, 359, 359, + 359, 359, 359, 359, 359, 359, 75, 321, 359, 324, + 324, 324, 324, 324, 325, 322, 359, 359, 359, 359, + 359, 359, 359, 359, 359, 359, 359, 359, 359, 359, + 359, 359, 359, 359, 75, 326, 359, 327, 327, 327, + + 327, 327, 327, 327, 359, 359, 359, 359, 359, 359, + 359, 359, 359, 359, 359, 359, 359, 359, 359, 359, + 359, 359, 106, 326, 359, 328, 328, 328, 328, 328, + 328, 328, 359, 359, 359, 359, 359, 359, 359, 359, + 359, 359, 359, 359, 359, 359, 359, 359, 359, 359, + 106, 326, 359, 329, 329, 329, 329, 329, 330, 327, + 359, 359, 359, 359, 359, 359, 359, 359, 359, 359, + 359, 359, 359, 359, 359, 359, 359, 359, 106, 321, + 359, 322, 322, 322, 322, 322, 322, 322, 359, 359, + 359, 359, 359, 359, 359, 359, 359, 359, 359, 359, + + 359, 359, 359, 359, 359, 359, 75, 321, 359, 322, + 322, 322, 322, 322, 322, 322, 359, 359, 359, 359, + 359, 359, 359, 359, 359, 359, 359, 359, 359, 359, + 359, 359, 359, 359, 75, 326, 359, 327, 327, 327, + 327, 327, 327, 327, 359, 359, 359, 359, 359, 359, + 359, 359, 359, 359, 359, 359, 359, 359, 359, 359, + 359, 359, 106, 326, 359, 327, 327, 327, 327, 327, + 327, 327, 359, 359, 359, 359, 359, 359, 359, 359, + 359, 359, 359, 359, 359, 359, 359, 359, 359, 359, + 106, 337, 359, 338, 338, 338, 338, 338, 338, 338, + + 359, 359, 359, 359, 359, 359, 359, 359, 359, 359, + 359, 359, 359, 359, 359, 359, 359, 359, 75, 337, + 359, 339, 339, 339, 339, 339, 339, 339, 359, 359, + 359, 359, 359, 359, 359, 359, 359, 359, 359, 359, + 359, 359, 359, 359, 359, 359, 75, 337, 359, 340, + 340, 340, 340, 340, 341, 338, 359, 359, 359, 359, + 359, 359, 359, 359, 359, 359, 359, 359, 359, 359, + 359, 359, 359, 359, 75, 342, 359, 343, 343, 343, + 343, 343, 343, 343, 359, 359, 359, 359, 359, 359, + 359, 359, 359, 359, 359, 359, 359, 359, 359, 359, + + 359, 359, 106, 342, 359, 344, 344, 344, 344, 344, + 344, 344, 359, 359, 359, 359, 359, 359, 359, 359, + 359, 359, 359, 359, 359, 359, 359, 359, 359, 359, + 106, 342, 359, 345, 345, 345, 345, 345, 346, 343, + 359, 359, 359, 359, 359, 359, 359, 359, 359, 359, + 359, 359, 359, 359, 359, 359, 359, 359, 106, 337, + 359, 338, 338, 338, 338, 338, 338, 338, 359, 359, + 359, 359, 359, 359, 359, 359, 359, 359, 359, 359, + 359, 359, 359, 359, 359, 359, 75, 337, 359, 338, + 338, 338, 338, 338, 338, 338, 359, 359, 359, 359, + + 359, 359, 359, 359, 359, 359, 359, 359, 359, 359, + 359, 359, 359, 359, 75, 342, 359, 343, 343, 343, + 343, 343, 343, 343, 359, 359, 359, 359, 359, 359, + 359, 359, 359, 359, 359, 359, 359, 359, 359, 359, + 359, 359, 106, 342, 359, 343, 343, 343, 343, 343, + 343, 343, 359, 359, 359, 359, 359, 359, 359, 359, + 359, 359, 359, 359, 359, 359, 359, 359, 359, 359, + 106, 59, 59, 59, 59, 59, 59, 59, 21, 21, + 21, 21, 21, 21, 21, 67, 67, 67, 67, 67, + 67, 67, 74, 359, 359, 359, 359, 74, 74, 78, + + 78, 78, 78, 78, 78, 78, 80, 359, 359, 359, + 359, 80, 80, 82, 359, 359, 359, 359, 82, 82, + 84, 359, 84, 359, 359, 84, 84, 105, 359, 359, + 359, 359, 105, 105, 108, 359, 359, 359, 359, 108, + 108, 110, 359, 359, 359, 359, 110, 110, 112, 359, + 112, 359, 359, 112, 112, 127, 359, 127, 127, 359, + 359, 127, 134, 359, 134, 359, 134, 134, 134, 136, + 136, 136, 136, 136, 136, 136, 141, 141, 141, 141, + 141, 141, 141, 85, 359, 85, 359, 359, 85, 85, + 137, 137, 137, 137, 137, 137, 137, 13, 359, 359, + + 359, 359, 359, 359, 359, 359, 359, 359, 359, 359, + 359, 359, 359, 359, 359, 359, 359, 359, 359, 359, + 359, 359, 359, 359, 359, 359, 359, 359, 359, 359, + 359, 359, 359, 359, 359, 359, 359, 359, 359, 359, + 359, 359, 359, 359, 359, 359, 359, 359, 359, 359, + 359, 359, 359, 359 } ; -static yyconst short int yy_chk[1764] = +static yyconst short int yy_chk[3055] = { 0, 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, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 2, 2, 5, 2, 63, - 63, 5, 2, 5, 2, 3, 3, 3, 3, 3, + 1, 1, 1, 1, 1, 1, 2, 2, 5, 2, + 65, 65, 5, 2, 5, 373, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 6, 7, 7, 7, 6, 7, 6, 97, 8, 8, - 8, 7, 8, 35, 71, 71, 24, 97, 8, 98, - 24, 24, 7, 7, 86, 98, 55, 67, 35, 8, - 8, 27, 27, 27, 27, 27, 27, 24, 92, 7, - 46, 55, 92, 67, 46, 46, 8, 9, 9, 9, - 86, 9, 24, 26, 26, 26, 26, 26, 26, 26, - 42, 46, 349, 42, 42, 42, 42, 42, 42, 42, - 49, 49, 49, 49, 49, 49, 46, 48, 48, 48, - - 48, 48, 48, 48, 332, 9, 9, 9, 9, 9, + 3, 3, 3, 6, 7, 7, 7, 6, 7, 6, + 69, 8, 8, 8, 7, 8, 36, 71, 88, 24, + 57, 8, 214, 24, 24, 7, 7, 69, 73, 73, + 214, 36, 8, 8, 71, 57, 97, 97, 99, 356, + 24, 101, 99, 7, 47, 88, 115, 101, 47, 47, + 8, 9, 9, 9, 43, 9, 24, 43, 43, 43, + 43, 43, 43, 43, 94, 47, 100, 102, 94, 103, + 125, 94, 104, 115, 125, 97, 100, 104, 185, 103, + + 102, 47, 91, 185, 91, 91, 91, 91, 91, 91, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 10, 10, 10, 69, 10, 85, 85, 85, 85, - 85, 85, 85, 96, 99, 100, 101, 96, 125, 125, - 69, 101, 94, 94, 149, 100, 149, 99, 104, 329, - 85, 104, 104, 104, 104, 104, 104, 104, 133, 10, + 9, 9, 9, 9, 9, 9, 10, 10, 10, 91, + 10, 87, 87, 87, 87, 87, 87, 87, 107, 129, + 129, 107, 107, 107, 107, 107, 107, 107, 121, 124, + 124, 137, 121, 132, 132, 121, 87, 155, 154, 155, + 212, 138, 154, 138, 212, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 11, 11, 11, 11, 11, - 94, 112, 279, 118, 11, 11, 11, 118, 66, 66, - 121, 66, 66, 133, 121, 128, 128, 11, 66, 82, - - 151, 109, 151, 82, 82, 109, 109, 112, 120, 120, - 66, 138, 138, 11, 12, 12, 12, 12, 12, 259, - 82, 167, 109, 12, 12, 12, 66, 111, 111, 111, - 111, 111, 111, 111, 147, 82, 12, 109, 148, 134, - 131, 134, 148, 160, 131, 147, 120, 167, 163, 138, - 131, 111, 12, 25, 160, 25, 25, 25, 25, 25, - 25, 25, 131, 150, 171, 132, 132, 175, 132, 132, - 152, 257, 175, 176, 176, 132, 134, 150, 178, 25, - 30, 184, 152, 163, 30, 171, 30, 132, 250, 30, - 30, 178, 30, 30, 30, 30, 30, 30, 30, 30, - - 30, 30, 184, 132, 248, 30, 30, 30, 30, 30, + 10, 11, 11, 11, 11, 11, 353, 137, 124, 158, + 11, 11, 11, 171, 68, 68, 135, 68, 68, 138, + + 135, 158, 153, 11, 68, 84, 135, 112, 303, 84, + 84, 112, 112, 153, 142, 142, 68, 157, 135, 157, + 11, 12, 12, 12, 12, 12, 84, 156, 112, 171, + 12, 12, 12, 68, 114, 114, 114, 114, 114, 114, + 114, 156, 84, 12, 112, 118, 168, 118, 118, 118, + 118, 118, 118, 142, 175, 186, 186, 168, 187, 114, + 12, 25, 179, 25, 25, 25, 25, 25, 25, 25, + 200, 188, 118, 187, 201, 200, 136, 136, 194, 136, + 136, 175, 190, 179, 188, 213, 136, 225, 25, 26, + 205, 26, 26, 26, 26, 26, 26, 26, 136, 194, + + 213, 174, 174, 174, 174, 174, 174, 174, 143, 190, + 201, 205, 143, 239, 225, 136, 26, 27, 143, 27, + 27, 27, 27, 27, 27, 27, 174, 211, 259, 143, + 143, 189, 189, 189, 189, 189, 189, 189, 223, 237, + 239, 259, 223, 235, 27, 30, 222, 229, 211, 30, + 235, 30, 283, 237, 30, 30, 189, 30, 30, 30, + 30, 30, 30, 30, 30, 30, 30, 222, 229, 274, + 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, - 30, 30, 30, 30, 30, 34, 34, 34, 177, 34, - 242, 34, 34, 180, 188, 34, 233, 189, 198, 188, - 139, 207, 198, 177, 139, 207, 34, 34, 34, 47, - 139, 47, 47, 47, 47, 47, 47, 47, 193, 180, - 199, 139, 139, 140, 225, 140, 140, 140, 140, 140, - 140, 140, 189, 200, 199, 47, 50, 213, 215, 193, - 50, 200, 50, 214, 206, 50, 50, 238, 50, 50, - - 50, 50, 50, 50, 50, 50, 50, 50, 213, 215, - 238, 50, 50, 50, 50, 50, 50, 50, 50, 50, - 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, - 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, - 50, 54, 54, 54, 209, 54, 218, 54, 54, 205, - 141, 54, 141, 141, 141, 141, 141, 141, 141, 220, - 218, 216, 54, 54, 54, 62, 62, 62, 216, 62, - 209, 204, 273, 62, 142, 62, 142, 142, 142, 142, - 142, 142, 142, 281, 224, 220, 62, 62, 153, 217, - 153, 153, 153, 153, 153, 153, 153, 217, 273, 197, - - 227, 226, 231, 62, 73, 224, 73, 227, 73, 281, - 73, 73, 234, 154, 73, 154, 154, 154, 154, 154, - 154, 154, 226, 231, 237, 73, 73, 73, 79, 196, - 79, 237, 79, 234, 79, 79, 249, 155, 79, 155, - 155, 155, 155, 155, 155, 155, 236, 243, 258, 79, - 79, 79, 81, 251, 81, 251, 81, 249, 81, 81, - 236, 243, 81, 245, 252, 254, 252, 164, 164, 258, - 164, 164, 264, 81, 81, 81, 84, 164, 84, 195, - 84, 252, 84, 84, 187, 298, 84, 186, 245, 164, - 254, 165, 165, 264, 165, 165, 266, 84, 84, 84, - - 103, 165, 103, 185, 103, 164, 103, 103, 174, 266, - 103, 298, 173, 165, 166, 166, 166, 166, 166, 166, - 166, 103, 103, 103, 106, 303, 106, 314, 106, 165, - 106, 106, 172, 161, 106, 159, 158, 157, 166, 230, - 230, 230, 230, 230, 230, 106, 106, 106, 108, 319, - 108, 303, 108, 314, 108, 108, 156, 168, 108, 168, - 168, 168, 168, 168, 168, 168, 291, 291, 291, 108, - 108, 108, 110, 146, 110, 319, 110, 145, 110, 110, - 144, 169, 110, 169, 169, 169, 169, 169, 169, 169, - 291, 143, 137, 110, 110, 110, 170, 130, 170, 170, - - 170, 170, 170, 170, 170, 179, 179, 179, 179, 179, - 179, 179, 181, 124, 181, 181, 181, 181, 181, 181, - 181, 229, 229, 229, 229, 229, 229, 229, 182, 179, - 182, 182, 182, 182, 182, 182, 182, 183, 122, 183, - 183, 183, 183, 183, 183, 183, 190, 119, 190, 190, - 190, 190, 190, 190, 190, 191, 117, 191, 191, 191, - 191, 191, 191, 191, 192, 115, 192, 192, 192, 192, - 192, 192, 192, 201, 107, 201, 201, 201, 201, 201, - 201, 201, 202, 105, 202, 202, 202, 202, 202, 202, - 202, 203, 102, 203, 203, 203, 203, 203, 203, 203, - - 208, 208, 208, 208, 208, 208, 208, 210, 93, 210, - 210, 210, 210, 210, 210, 210, 240, 240, 240, 240, - 240, 240, 240, 211, 208, 211, 211, 211, 211, 211, - 211, 211, 212, 91, 212, 212, 212, 212, 212, 212, - 212, 219, 219, 219, 219, 219, 219, 219, 221, 89, - 221, 221, 221, 221, 221, 221, 221, 241, 241, 241, - 241, 241, 241, 83, 222, 219, 222, 222, 222, 222, - 222, 222, 222, 223, 80, 223, 223, 223, 223, 223, - 223, 223, 228, 228, 228, 228, 228, 228, 228, 228, - 78, 76, 244, 244, 244, 244, 244, 244, 244, 253, - - 253, 253, 253, 253, 253, 253, 75, 228, 239, 239, - 239, 239, 239, 239, 239, 239, 244, 74, 296, 296, - 296, 72, 260, 253, 260, 260, 260, 260, 260, 260, - 260, 65, 261, 239, 261, 261, 261, 261, 261, 261, - 261, 262, 296, 262, 262, 262, 262, 262, 262, 262, - 263, 59, 263, 263, 263, 263, 263, 263, 263, 268, - 56, 268, 268, 268, 268, 268, 268, 268, 269, 53, - 269, 269, 269, 269, 269, 269, 269, 270, 52, 270, - 270, 270, 270, 270, 270, 270, 271, 51, 271, 271, - 271, 271, 271, 271, 271, 272, 272, 272, 272, 272, - - 272, 272, 274, 45, 274, 274, 274, 274, 274, 274, - 274, 278, 43, 278, 278, 278, 41, 40, 275, 272, - 275, 275, 275, 275, 275, 275, 275, 276, 39, 276, - 276, 276, 276, 276, 276, 276, 277, 278, 277, 277, - 277, 277, 277, 277, 277, 280, 38, 280, 280, 280, - 280, 280, 280, 280, 282, 37, 282, 282, 282, 282, - 282, 282, 282, 283, 36, 283, 283, 283, 283, 283, - 283, 283, 284, 33, 284, 284, 284, 284, 284, 284, - 284, 285, 32, 285, 285, 285, 285, 285, 285, 285, - 286, 31, 286, 286, 286, 287, 22, 287, 287, 287, - - 287, 287, 287, 287, 288, 19, 288, 288, 288, 288, - 288, 288, 288, 18, 17, 289, 286, 289, 289, 289, - 289, 289, 289, 289, 290, 15, 290, 290, 290, 290, - 290, 290, 290, 292, 14, 292, 292, 292, 292, 292, - 292, 292, 293, 13, 293, 293, 293, 293, 293, 293, + + 30, 35, 35, 35, 263, 35, 257, 35, 35, 267, + 178, 35, 178, 178, 178, 178, 178, 178, 232, 253, + 257, 233, 35, 35, 35, 48, 236, 48, 48, 48, + 48, 48, 48, 48, 236, 267, 275, 178, 275, 232, + 172, 172, 233, 172, 172, 243, 246, 247, 245, 251, + 172, 265, 48, 49, 247, 49, 49, 49, 49, 49, + 49, 49, 172, 244, 290, 265, 243, 246, 173, 173, + 251, 173, 173, 254, 276, 278, 276, 290, 173, 172, + 49, 50, 255, 50, 50, 50, 50, 50, 50, 50, + 173, 264, 276, 193, 254, 193, 193, 193, 193, 193, + + 193, 278, 231, 255, 258, 297, 305, 173, 50, 51, + 271, 258, 264, 51, 230, 51, 221, 220, 51, 51, + 193, 51, 51, 51, 51, 51, 51, 51, 51, 51, + 51, 271, 297, 305, 51, 51, 51, 51, 51, 51, + 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, + 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, + 51, 51, 51, 51, 51, 56, 56, 56, 219, 56, + 218, 56, 56, 272, 282, 56, 224, 224, 224, 224, + 224, 224, 224, 315, 315, 315, 56, 56, 56, 64, + 64, 64, 210, 64, 272, 282, 209, 64, 208, 64, + + 228, 224, 228, 228, 228, 228, 228, 228, 315, 288, + 64, 64, 238, 238, 238, 238, 238, 238, 238, 242, + 207, 242, 242, 242, 242, 242, 242, 228, 64, 75, + 288, 75, 199, 75, 322, 75, 75, 238, 198, 75, + 197, 196, 195, 184, 327, 302, 242, 302, 302, 302, + 75, 75, 75, 81, 183, 81, 182, 81, 338, 81, + 81, 322, 181, 81, 266, 266, 266, 266, 266, 266, + 266, 327, 302, 180, 81, 81, 81, 83, 169, 83, + 167, 83, 343, 83, 83, 338, 166, 83, 165, 266, + 270, 270, 270, 270, 270, 270, 270, 164, 83, 83, + + 83, 86, 163, 86, 162, 86, 152, 86, 86, 343, + 151, 86, 150, 149, 148, 147, 270, 141, 134, 128, + 126, 123, 86, 86, 86, 89, 122, 89, 89, 89, + 89, 89, 89, 89, 120, 110, 108, 277, 277, 277, + 277, 277, 277, 277, 281, 281, 281, 281, 281, 281, + 281, 105, 89, 90, 96, 90, 90, 90, 90, 90, + 90, 90, 277, 310, 95, 310, 310, 310, 93, 85, + 281, 296, 296, 296, 296, 296, 296, 296, 82, 80, + 90, 106, 78, 106, 77, 106, 76, 106, 106, 74, + 310, 106, 67, 61, 58, 55, 296, 54, 320, 320, + + 320, 53, 106, 106, 106, 109, 52, 109, 46, 109, + 44, 109, 109, 42, 41, 109, 304, 304, 304, 304, + 304, 304, 304, 320, 40, 39, 109, 109, 109, 111, + 38, 111, 37, 111, 34, 111, 111, 33, 32, 111, + 31, 304, 314, 314, 314, 314, 314, 314, 314, 22, + 111, 111, 111, 113, 19, 113, 18, 113, 17, 113, + 113, 15, 14, 113, 13, 0, 0, 314, 0, 0, + 0, 0, 0, 0, 113, 113, 113, 116, 0, 116, + 116, 116, 116, 116, 116, 116, 0, 0, 0, 319, + 319, 319, 319, 319, 319, 319, 321, 321, 321, 321, + + 321, 321, 321, 0, 116, 117, 0, 117, 117, 117, + 117, 117, 117, 117, 319, 0, 0, 0, 0, 0, + 325, 321, 325, 325, 325, 325, 325, 325, 0, 0, + 0, 0, 117, 144, 0, 144, 144, 144, 144, 144, + 144, 144, 0, 0, 0, 0, 0, 325, 326, 326, + 326, 326, 326, 326, 326, 0, 0, 0, 0, 0, + 144, 145, 0, 145, 145, 145, 145, 145, 145, 145, + 0, 0, 330, 326, 330, 330, 330, 330, 330, 330, + 337, 337, 337, 337, 337, 337, 337, 0, 145, 146, + 0, 146, 146, 146, 146, 146, 146, 146, 0, 330, + + 0, 0, 0, 0, 341, 337, 341, 341, 341, 341, + 341, 341, 0, 0, 0, 0, 146, 159, 0, 159, + 159, 159, 159, 159, 159, 159, 0, 0, 0, 0, + 0, 341, 342, 342, 342, 342, 342, 342, 342, 0, + 0, 0, 0, 0, 159, 160, 0, 160, 160, 160, + 160, 160, 160, 160, 0, 0, 346, 342, 346, 346, + 346, 346, 346, 346, 347, 347, 347, 347, 347, 347, + 347, 0, 160, 161, 0, 161, 161, 161, 161, 161, + 161, 161, 0, 346, 0, 0, 0, 0, 0, 347, + 348, 348, 348, 348, 348, 348, 348, 0, 0, 0, + + 161, 176, 0, 176, 176, 176, 176, 176, 176, 176, + 0, 0, 0, 0, 0, 348, 349, 349, 349, 349, + 349, 349, 349, 0, 0, 0, 0, 0, 176, 177, + 0, 177, 177, 177, 177, 177, 177, 177, 0, 0, + 0, 349, 350, 350, 350, 350, 350, 350, 350, 351, + 351, 351, 351, 351, 351, 351, 177, 191, 0, 191, + 191, 191, 191, 191, 191, 191, 0, 350, 0, 0, + 0, 0, 0, 0, 351, 352, 352, 352, 352, 352, + 352, 352, 0, 0, 191, 192, 0, 192, 192, 192, + 192, 192, 192, 192, 0, 0, 0, 0, 0, 0, + + 352, 354, 354, 354, 354, 354, 354, 354, 0, 0, + 0, 0, 192, 202, 0, 202, 202, 202, 202, 202, + 202, 202, 0, 0, 0, 0, 354, 355, 355, 355, + 355, 355, 355, 357, 357, 357, 357, 357, 357, 357, + 202, 203, 0, 203, 203, 203, 203, 203, 203, 203, + 0, 0, 355, 0, 0, 0, 0, 0, 357, 358, + 358, 358, 358, 358, 358, 0, 0, 0, 203, 204, + 0, 204, 204, 204, 204, 204, 204, 204, 0, 0, + 0, 0, 0, 0, 358, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 204, 215, 0, 215, + + 215, 215, 215, 215, 215, 215, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 215, 216, 0, 216, 216, 216, + 216, 216, 216, 216, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 216, 217, 0, 217, 217, 217, 217, 217, + 217, 217, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 217, 226, 0, 226, 226, 226, 226, 226, 226, 226, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + + 0, 0, 0, 0, 0, 0, 0, 0, 226, 227, + 0, 227, 227, 227, 227, 227, 227, 227, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 227, 240, 0, 240, + 240, 240, 240, 240, 240, 240, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 240, 241, 0, 241, 241, 241, + 241, 241, 241, 241, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 241, 248, 248, 248, 248, 248, 248, 248, + + 248, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 248, + 249, 249, 249, 249, 249, 249, 249, 249, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 249, 250, 250, 250, + 250, 250, 250, 250, 250, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 250, 260, 260, 260, 260, 260, 260, + 260, 260, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + + 260, 261, 261, 261, 261, 261, 261, 261, 261, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 261, 262, 262, + 262, 262, 262, 262, 262, 262, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 262, 268, 268, 268, 268, 268, + 268, 268, 268, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 268, 269, 269, 269, 269, 269, 269, 269, 269, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + + 0, 0, 0, 0, 0, 0, 0, 0, 269, 279, + 279, 279, 279, 279, 279, 279, 279, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 279, 280, 280, 280, 280, + 280, 280, 280, 280, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 280, 284, 0, 284, 284, 284, 284, 284, + 284, 284, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 284, 285, 0, 285, 285, 285, 285, 285, 285, 285, + + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 285, 286, + 0, 286, 286, 286, 286, 286, 286, 286, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 286, 287, 0, 287, + 287, 287, 287, 287, 287, 287, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 287, 292, 0, 292, 292, 292, + 292, 292, 292, 292, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + + 0, 0, 292, 293, 0, 293, 293, 293, 293, 293, + 293, 293, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 293, 294, 0, 294, 294, 294, 294, 294, 294, 294, - 295, 0, 295, 295, 295, 295, 295, 295, 295, 297, - 297, 297, 297, 297, 297, 297, 299, 0, 299, 299, - 299, 299, 299, 299, 299, 0, 0, 0, 0, 0, - 0, 0, 300, 297, 300, 300, 300, 300, 300, 300, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 294, 295, + 0, 295, 295, 295, 295, 295, 295, 295, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 295, 298, 0, 298, + 298, 298, 298, 298, 298, 298, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 298, 299, 0, 299, 299, 299, + 299, 299, 299, 299, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 299, 300, 0, 300, 300, 300, 300, 300, + 300, 300, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 300, 301, 0, 301, 301, 301, 301, 301, 301, 301, - 302, 302, 302, 302, 302, 302, 302, 304, 0, 304, - 304, 304, 304, 304, 304, 304, 0, 0, 0, 0, - 0, 0, 0, 305, 302, 305, 305, 305, 305, 305, - 305, 305, 306, 0, 306, 306, 306, 306, 306, 306, - 306, 307, 0, 307, 307, 307, 307, 307, 307, 307, - 308, 0, 308, 308, 308, 308, 308, 308, 308, 309, - 0, 309, 309, 309, 309, 309, 309, 309, 310, 0, - 310, 310, 310, 310, 310, 310, 310, 311, 0, 311, - 311, 311, 311, 311, 311, 311, 312, 0, 312, 312, - - 312, 312, 312, 312, 312, 313, 0, 313, 313, 313, - 313, 313, 313, 313, 315, 0, 315, 315, 315, 315, - 315, 315, 315, 316, 0, 316, 316, 316, 316, 316, - 316, 316, 317, 0, 317, 317, 317, 317, 317, 317, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 301, 306, + + 0, 306, 306, 306, 306, 306, 306, 306, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 306, 307, 0, 307, + 307, 307, 307, 307, 307, 307, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 307, 308, 0, 308, 308, 308, + 308, 308, 308, 308, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 308, 309, 0, 309, 309, 309, 309, 309, + 309, 309, 0, 0, 0, 0, 0, 0, 0, 0, + + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 309, 311, 0, 311, 311, 311, 311, 311, 311, 311, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 311, 312, + 0, 312, 312, 312, 312, 312, 312, 312, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 312, 313, 0, 313, + 313, 313, 313, 313, 313, 313, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 313, 316, 0, 316, 316, 316, + + 316, 316, 316, 316, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 316, 317, 0, 317, 317, 317, 317, 317, + 317, 317, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 317, 318, 0, 318, 318, 318, 318, 318, 318, 318, - 320, 0, 320, 320, 320, 320, 320, 320, 320, 321, - 0, 321, 321, 321, 321, 321, 321, 321, 322, 0, - 322, 322, 322, 322, 322, 322, 322, 323, 0, 323, - 323, 323, 323, 323, 323, 323, 324, 0, 324, 324, - 324, 324, 324, 324, 324, 325, 0, 325, 325, 325, - - 325, 325, 325, 325, 326, 0, 326, 326, 326, 326, - 326, 326, 326, 327, 0, 327, 327, 327, 327, 327, - 327, 327, 328, 0, 328, 328, 328, 328, 328, 328, - 328, 330, 330, 330, 330, 330, 330, 330, 331, 331, - 331, 331, 331, 331, 333, 333, 333, 333, 333, 333, - 333, 0, 0, 0, 0, 330, 334, 334, 334, 334, - 334, 334, 331, 0, 0, 0, 0, 0, 333, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 334, 336, 336, 336, 336, 336, 336, 336, 337, 337, - 337, 337, 337, 337, 337, 338, 338, 338, 338, 338, - - 338, 338, 339, 0, 0, 0, 0, 339, 339, 340, - 340, 340, 340, 340, 340, 340, 341, 0, 0, 0, - 0, 341, 341, 342, 0, 0, 0, 0, 342, 342, - 343, 0, 343, 0, 0, 343, 343, 344, 0, 0, - 0, 0, 344, 344, 345, 0, 0, 0, 0, 345, - 345, 346, 0, 0, 0, 0, 346, 346, 347, 0, - 347, 0, 0, 347, 347, 348, 0, 348, 348, 0, - 0, 348, 350, 0, 350, 0, 350, 350, 350, 351, - 351, 351, 351, 351, 351, 351, 352, 352, 352, 352, - 352, 352, 352, 353, 0, 353, 0, 0, 353, 353, - - 354, 354, 354, 354, 354, 354, 354, 335, 335, 335, - 335, 335, 335, 335, 335, 335, 335, 335, 335, 335, - 335, 335, 335, 335, 335, 335, 335, 335, 335, 335, - 335, 335, 335, 335, 335, 335, 335, 335, 335, 335, - 335, 335, 335, 335, 335, 335, 335, 335, 335, 335, - 335, 335, 335, 335, 335, 335, 335, 335, 335, 335, - 335, 335, 335 + 0, 0, 0, 0, 0, 0, 0, 0, 318, 323, + 0, 323, 323, 323, 323, 323, 323, 323, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + + 0, 0, 0, 0, 0, 0, 323, 324, 0, 324, + 324, 324, 324, 324, 324, 324, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 324, 328, 0, 328, 328, 328, + 328, 328, 328, 328, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 328, 329, 0, 329, 329, 329, 329, 329, + 329, 329, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 329, 331, 0, 331, 331, 331, 331, 331, 331, 331, + + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 331, 332, + 0, 332, 332, 332, 332, 332, 332, 332, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 332, 333, 0, 333, + 333, 333, 333, 333, 333, 333, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 333, 334, 0, 334, 334, 334, + 334, 334, 334, 334, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + + 0, 0, 334, 335, 0, 335, 335, 335, 335, 335, + 335, 335, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 335, 336, 0, 336, 336, 336, 336, 336, 336, 336, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 336, 339, + 0, 339, 339, 339, 339, 339, 339, 339, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 339, 340, 0, 340, + 340, 340, 340, 340, 340, 340, 0, 0, 0, 0, + + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 340, 344, 0, 344, 344, 344, + 344, 344, 344, 344, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 344, 345, 0, 345, 345, 345, 345, 345, + 345, 345, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 345, 360, 360, 360, 360, 360, 360, 360, 361, 361, + 361, 361, 361, 361, 361, 362, 362, 362, 362, 362, + 362, 362, 363, 0, 0, 0, 0, 363, 363, 364, + + 364, 364, 364, 364, 364, 364, 365, 0, 0, 0, + 0, 365, 365, 366, 0, 0, 0, 0, 366, 366, + 367, 0, 367, 0, 0, 367, 367, 368, 0, 0, + 0, 0, 368, 368, 369, 0, 0, 0, 0, 369, + 369, 370, 0, 0, 0, 0, 370, 370, 371, 0, + 371, 0, 0, 371, 371, 372, 0, 372, 372, 0, + 0, 372, 374, 0, 374, 0, 374, 374, 374, 375, + 375, 375, 375, 375, 375, 375, 376, 376, 376, 376, + 376, 376, 376, 377, 0, 377, 0, 0, 377, 377, + 378, 378, 378, 378, 378, 378, 378, 359, 359, 359, + + 359, 359, 359, 359, 359, 359, 359, 359, 359, 359, + 359, 359, 359, 359, 359, 359, 359, 359, 359, 359, + 359, 359, 359, 359, 359, 359, 359, 359, 359, 359, + 359, 359, 359, 359, 359, 359, 359, 359, 359, 359, + 359, 359, 359, 359, 359, 359, 359, 359, 359, 359, + 359, 359, 359, 359 } ; static yy_state_type yy_last_accepting_state; @@ -958,7 +1248,7 @@ extern void yyerror __P((char *)); #define INDEFS 5 -#line 962 "lex.yy.c" +#line 1252 "lex.yy.c" /* Macros after this point can all be overridden by user definitions in * section 1. @@ -1114,7 +1404,7 @@ YY_DECL #line 99 "parse.lex" -#line 1118 "lex.yy.c" +#line 1408 "lex.yy.c" if ( yy_init ) { @@ -1166,13 +1456,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 >= 336 ) + if ( yy_current_state >= 360 ) 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] != 1708 ); + while ( yy_base[yy_current_state] != 2998 ); yy_find_action: yy_act = yy_accept[yy_current_state]; @@ -1386,6 +1676,22 @@ YY_RULE_SETUP case 19: YY_RULE_SETUP #line 231 "parse.lex" +{ + LEXTRACE("NOTRACE "); + return(NOTRACE); + } + YY_BREAK +case 20: +YY_RULE_SETUP +#line 236 "parse.lex" +{ + LEXTRACE("TRACE "); + return(TRACE); + } + YY_BREAK +case 21: +YY_RULE_SETUP +#line 241 "parse.lex" { /* netgroup */ fill(yytext, yyleng); @@ -1393,9 +1699,9 @@ YY_RULE_SETUP return(NETGROUP); } YY_BREAK -case 20: +case 22: YY_RULE_SETUP -#line 238 "parse.lex" +#line 248 "parse.lex" { /* UN*X group */ fill(yytext, yyleng); @@ -1403,36 +1709,36 @@ YY_RULE_SETUP return(USERGROUP); } YY_BREAK -case 21: +case 23: YY_RULE_SETUP -#line 245 "parse.lex" +#line 255 "parse.lex" { fill(yytext, yyleng); LEXTRACE("NTWKADDR "); return(NTWKADDR); } YY_BREAK -case 22: +case 24: YY_RULE_SETUP -#line 251 "parse.lex" +#line 261 "parse.lex" { fill(yytext, yyleng); LEXTRACE("NTWKADDR "); return(NTWKADDR); } YY_BREAK -case 23: +case 25: YY_RULE_SETUP -#line 257 "parse.lex" +#line 267 "parse.lex" { BEGIN GOTRUNAS; LEXTRACE("RUNAS "); return (RUNAS); } YY_BREAK -case 24: +case 26: YY_RULE_SETUP -#line 263 "parse.lex" +#line 273 "parse.lex" { if (strcmp(yytext, "ALL") == 0) { LEXTRACE("ALL "); @@ -1444,9 +1750,9 @@ YY_RULE_SETUP } } YY_BREAK -case 25: +case 27: YY_RULE_SETUP -#line 274 "parse.lex" +#line 284 "parse.lex" { /* username/uid that user can run command as */ fill(yytext, yyleng); @@ -1454,25 +1760,25 @@ YY_RULE_SETUP return(WORD); } YY_BREAK -case 26: +case 28: YY_RULE_SETUP -#line 281 "parse.lex" +#line 291 "parse.lex" { BEGIN INITIAL; } YY_BREAK -case 27: +case 29: YY_RULE_SETUP -#line 285 "parse.lex" +#line 295 "parse.lex" { BEGIN GOTCMND; LEXTRACE("COMMAND "); fill_cmnd(yytext, yyleng); } /* sudo -e */ YY_BREAK -case 28: +case 30: YY_RULE_SETUP -#line 291 "parse.lex" +#line 301 "parse.lex" { /* directories can't have args... */ if (yytext[yyleng - 1] == '/') { @@ -1486,9 +1792,9 @@ YY_RULE_SETUP } } /* a pathname */ YY_BREAK -case 29: +case 31: YY_RULE_SETUP -#line 304 "parse.lex" +#line 314 "parse.lex" { /* a word */ fill(yytext, yyleng); @@ -1496,41 +1802,41 @@ YY_RULE_SETUP return(WORD); } YY_BREAK -case 30: +case 32: YY_RULE_SETUP -#line 311 "parse.lex" +#line 321 "parse.lex" { LEXTRACE(", "); return(','); } /* return ',' */ YY_BREAK -case 31: +case 33: YY_RULE_SETUP -#line 316 "parse.lex" +#line 326 "parse.lex" { LEXTRACE("= "); return('='); } /* return '=' */ YY_BREAK -case 32: +case 34: YY_RULE_SETUP -#line 321 "parse.lex" +#line 331 "parse.lex" { LEXTRACE(": "); return(':'); } /* return ':' */ YY_BREAK -case 33: +case 35: YY_RULE_SETUP -#line 326 "parse.lex" +#line 336 "parse.lex" { if (yyleng % 2 == 1) return('!'); /* return '!' */ } YY_BREAK -case 34: +case 36: YY_RULE_SETUP -#line 331 "parse.lex" +#line 341 "parse.lex" { BEGIN INITIAL; ++sudolineno; @@ -1538,25 +1844,25 @@ YY_RULE_SETUP return(COMMENT); } /* return newline */ YY_BREAK -case 35: +case 37: YY_RULE_SETUP -#line 338 "parse.lex" +#line 348 "parse.lex" { /* throw away space/tabs */ sawspace = TRUE; /* but remember for fill_args */ } YY_BREAK -case 36: +case 38: YY_RULE_SETUP -#line 342 "parse.lex" +#line 352 "parse.lex" { sawspace = TRUE; /* remember for fill_args */ ++sudolineno; LEXTRACE("\n\t"); } /* throw away EOL after \ */ YY_BREAK -case 37: +case 39: YY_RULE_SETUP -#line 348 "parse.lex" +#line 358 "parse.lex" { BEGIN INITIAL; ++sudolineno; @@ -1564,9 +1870,9 @@ YY_RULE_SETUP return(COMMENT); } /* return comments */ YY_BREAK -case 38: +case 40: YY_RULE_SETUP -#line 355 "parse.lex" +#line 365 "parse.lex" { LEXTRACE("ERROR "); return(ERROR); @@ -1578,7 +1884,7 @@ case YY_STATE_EOF(GOTDEFS): case YY_STATE_EOF(GOTCMND): case YY_STATE_EOF(STARTDEFS): case YY_STATE_EOF(INDEFS): -#line 360 "parse.lex" +#line 370 "parse.lex" { if (YY_START != INITIAL) { BEGIN INITIAL; @@ -1588,12 +1894,12 @@ case YY_STATE_EOF(INDEFS): yyterminate(); } YY_BREAK -case 39: +case 41: YY_RULE_SETUP -#line 369 "parse.lex" +#line 379 "parse.lex" ECHO; YY_BREAK -#line 1597 "lex.yy.c" +#line 1903 "lex.yy.c" case YY_END_OF_BUFFER: { @@ -1884,7 +2190,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 >= 336 ) + if ( yy_current_state >= 360 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; @@ -1919,11 +2225,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 >= 336 ) + if ( yy_current_state >= 360 ) 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 == 335); + yy_is_jam = (yy_current_state == 359); return yy_is_jam ? 0 : yy_current_state; } @@ -2482,7 +2788,7 @@ int main() return 0; } #endif -#line 369 "parse.lex" +#line 379 "parse.lex" static void fill(s, len) diff --git a/sudo.tab.c b/sudo.tab.c index 3334fc86c..ef863f37c 100644 --- a/sudo.tab.c +++ b/sudo.tab.c @@ -142,6 +142,7 @@ int top = 0, stacksize = 0; match[top].runas = UNSPEC; \ match[top].nopass = def_authenticate ? UNSPEC : TRUE; \ match[top].noexec = def_noexec ? TRUE : UNSPEC; \ + match[top].trace = def_trace ? TRUE : UNSPEC; \ top++; \ } while (0) @@ -157,6 +158,7 @@ int top = 0, stacksize = 0; match[top].runas = match[top-1].runas; \ match[top].nopass = match[top-1].nopass; \ match[top].noexec = match[top-1].noexec; \ + match[top].trace = match[top-1].trace; \ top++; \ } while (0) @@ -234,7 +236,7 @@ yyerror(s) } parse_error = TRUE; } -#line 221 "parse.yacc" +#line 223 "parse.yacc" #ifndef YYSTYPE_DEFINED #define YYSTYPE_DEFINED typedef union { @@ -244,7 +246,7 @@ typedef union { int tok; } YYSTYPE; #endif /* YYSTYPE_DEFINED */ -#line 248 "sudo.tab.c" +#line 250 "sudo.tab.c" #define COMMAND 257 #define ALIAS 258 #define DEFVAR 259 @@ -261,13 +263,15 @@ typedef union { #define PASSWD 270 #define NOEXEC 271 #define EXEC 272 -#define ALL 273 -#define COMMENT 274 -#define HOSTALIAS 275 -#define CMNDALIAS 276 -#define USERALIAS 277 -#define RUNASALIAS 278 -#define ERROR 279 +#define TRACE 273 +#define NOTRACE 274 +#define ALL 275 +#define COMMENT 276 +#define HOSTALIAS 277 +#define CMNDALIAS 278 +#define USERALIAS 279 +#define RUNASALIAS 280 +#define ERROR 281 #define YYERRCODE 256 #if defined(__cplusplus) || defined(__STDC__) const short yylhs[] = @@ -280,11 +284,11 @@ short yylhs[] = 17, 22, 22, 22, 22, 22, 10, 10, 23, 25, 25, 2, 2, 2, 2, 2, 24, 24, 26, 29, 30, 29, 27, 27, 5, 5, 4, 31, 4, 3, - 3, 3, 3, 3, 28, 28, 28, 28, 28, 1, - 1, 1, 12, 12, 33, 32, 20, 20, 13, 13, - 35, 34, 36, 36, 14, 14, 38, 37, 11, 11, - 40, 39, 8, 8, 41, 41, 6, 6, 6, 6, - 6, + 3, 3, 3, 3, 28, 28, 28, 28, 28, 28, + 28, 1, 1, 1, 12, 12, 33, 32, 20, 20, + 13, 13, 35, 34, 36, 36, 14, 14, 38, 37, + 11, 11, 40, 39, 8, 8, 41, 41, 6, 6, + 6, 6, 6, }; #if defined(__cplusplus) || defined(__STDC__) const short yylen[] = @@ -297,11 +301,11 @@ short yylen[] = 3, 1, 2, 3, 3, 3, 1, 3, 3, 1, 2, 1, 1, 1, 1, 1, 1, 3, 3, 1, 0, 3, 0, 2, 1, 3, 1, 0, 3, 1, - 1, 1, 1, 1, 0, 2, 2, 2, 2, 1, - 1, 1, 1, 3, 0, 4, 1, 3, 1, 3, - 0, 4, 1, 3, 1, 3, 0, 4, 1, 3, - 0, 4, 1, 3, 1, 2, 1, 1, 1, 1, - 1, + 1, 1, 1, 1, 0, 2, 2, 2, 2, 2, + 2, 1, 1, 1, 1, 3, 0, 4, 1, 3, + 1, 3, 0, 4, 1, 3, 1, 3, 0, 4, + 1, 3, 0, 4, 1, 3, 1, 2, 1, 1, + 1, 1, 1, }; #if defined(__cplusplus) || defined(__STDC__) const short yydefred[] = @@ -310,19 +314,19 @@ short yydefred[] = #endif { 0, 0, 13, 18, 14, 16, 3, 0, 0, 0, 0, - 0, 1, 0, 11, 0, 4, 0, 0, 0, 65, - 0, 63, 71, 0, 69, 81, 0, 79, 77, 0, - 75, 2, 90, 89, 88, 87, 91, 0, 85, 0, - 83, 0, 0, 12, 0, 36, 33, 34, 35, 32, - 0, 30, 0, 67, 0, 53, 52, 51, 50, 54, + 0, 1, 0, 11, 0, 4, 0, 0, 0, 67, + 0, 65, 73, 0, 71, 83, 0, 81, 79, 0, + 77, 2, 92, 91, 90, 89, 93, 0, 87, 0, + 85, 0, 0, 12, 0, 36, 33, 34, 35, 32, + 0, 30, 0, 69, 0, 53, 52, 51, 50, 54, 48, 47, 45, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 86, 0, 0, 0, 27, 0, 0, 0, - 23, 0, 31, 0, 0, 0, 0, 64, 0, 70, - 0, 80, 0, 76, 84, 0, 0, 24, 25, 26, - 21, 68, 49, 46, 0, 62, 61, 60, 41, 40, - 73, 0, 0, 0, 28, 0, 0, 37, 55, 0, - 0, 0, 0, 0, 42, 74, 38, 56, 57, 58, - 59, 39, + 0, 0, 88, 0, 0, 0, 27, 0, 0, 0, + 23, 0, 31, 0, 0, 0, 0, 66, 0, 72, + 0, 82, 0, 78, 86, 0, 0, 24, 25, 26, + 21, 70, 49, 46, 0, 64, 63, 62, 41, 40, + 75, 0, 0, 0, 28, 0, 0, 37, 55, 0, + 0, 0, 0, 0, 42, 76, 38, 56, 57, 58, + 59, 60, 61, 39, }; #if defined(__cplusplus) || defined(__STDC__) const short yydgoto[] = @@ -341,122 +345,118 @@ const short yysindex[] = #else short yysindex[] = #endif - { -239, - -264, 0, 0, 0, 0, 0, -247, -240, -236, -235, - -239, 0, 307, 0, -31, 0, 328, 307, 320, 0, - -9, 0, 0, -8, 0, 0, -4, 0, 0, 2, - 0, 0, 0, 0, 0, 0, 0, -242, 0, 294, - 0, -3, -226, 0, 11, 0, 0, 0, 0, 0, - -217, 0, 17, 0, 20, 0, 0, 0, 0, 0, - 0, 0, 0, 21, 5, -247, 6, -240, 7, -236, - 8, -235, 0, 307, 13, -32, 0, -191, -190, -189, - 0, -31, 0, 328, -210, 320, 328, 0, -33, 0, - 307, 0, 320, 0, 0, 328, -192, 0, 0, 0, - 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, - 0, 34, 20, 21, 0, 320, 35, 0, 0, -243, - -33, 21, -192, -27, 0, 0, 0, 0, 0, 0, - 0, 0,}; + { -229, + -256, 0, 0, 0, 0, 0, -237, -234, -226, -225, + -229, 0, 62, 0, -33, 0, 88, 62, 114, 0, + -15, 0, 0, -12, 0, 0, -5, 0, 0, -4, + 0, 0, 0, 0, 0, 0, 0, -244, 0, -28, + 0, -36, -204, 0, 14, 0, 0, 0, 0, 0, + -219, 0, 19, 0, 20, 0, 0, 0, 0, 0, + 0, 0, 0, 21, 5, -237, 6, -234, 7, -226, + 8, -225, 0, 62, 12, -21, 0, -192, -191, -187, + 0, -33, 0, 88, -201, 114, 88, 0, 276, 0, + 62, 0, 114, 0, 0, 88, -189, 0, 0, 0, + 0, 0, 0, 0, 19, 0, 0, 0, 0, 0, + 0, 33, 20, 21, 0, 114, 36, 0, 0, -247, + 276, 21, -189, -29, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,}; #if defined(__cplusplus) || defined(__STDC__) const short yyrindex[] = #else short yyrindex[] = #endif - { 342, + { 140, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 342, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 139, 0, 0, 162, 0, 0, 185, 0, 0, 208, + 140, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 156, 0, 0, 181, 0, 0, 206, 0, 0, 236, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1, 0, 0, 236, 0, 0, 0, 0, 0, - 0, 0, -30, 0, -26, 0, 0, 0, 0, 0, - 0, 0, 0, -25, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 260, 0, 0, 0, 0, 0, + 0, 1, 0, 0, 261, 0, 0, 0, 0, 0, + 0, 0, -25, 0, -11, 0, 0, 0, 0, 0, + 0, 0, 0, -3, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 300, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -20, 0, 0, 0, - 0, 0, 0, 0, 24, 0, 0, 0, 0, 0, - 0, 47, 70, 93, 0, 0, 116, 0, 0, 0, - 0, 271, -20, 0, 0, 0, 0, 0, 0, 0, - 0, 0,}; + 0, 0, 0, 0, 26, 0, 0, 0, 0, 0, + 0, 52, 78, 104, 0, 0, 130, 0, 0, 0, + 0, 274, -20, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,}; #if defined(__cplusplus) || defined(__STDC__) const short yygindex[] = #else short yygindex[] = #endif { 0, - -39, 32, -1, 3, -84, 48, 74, -14, 0, 0, - 0, 0, 0, 0, 0, 0, 9, 0, 0, -12, - 0, 0, -6, 0, 4, -36, 0, 0, -62, 0, - 0, 26, 0, 27, 0, 0, 22, 0, 28, 0, - 23, + -39, 31, -2, 2, -87, 48, 76, -16, 0, 0, + 0, 0, 0, 0, 0, 0, 9, 0, 0, -14, + 0, 0, -7, 0, 10, -31, 0, 0, -109, 0, + 0, 24, 0, 25, 0, 0, 27, 0, 28, 0, + 22, }; -#define YYTABLESIZE 615 +#define YYTABLESIZE 580 #if defined(__cplusplus) || defined(__STDC__) const short yytable[] = #else short yytable[] = #endif - { 109, - 22, 43, 19, 55, 53, 109, 15, 17, 114, 16, - 20, 84, 43, 106, 107, 33, 1, 23, 34, 35, - 36, 26, 29, 66, 2, 3, 4, 5, 97, 108, - 37, 122, 81, 22, 6, 7, 8, 9, 10, 79, - 46, 80, 47, 48, 22, 49, 72, 56, 66, 68, - 57, 58, 59, 70, 82, 50, 66, 78, 126, 72, - 84, 132, 60, 74, 86, 87, 89, 91, 93, 82, - 96, 98, 99, 100, 105, 116, 113, 121, 123, 72, - 125, 66, 83, 103, 32, 73, 127, 102, 104, 115, - 101, 88, 78, 94, 90, 0, 95, 92, 0, 0, - 0, 0, 82, 0, 72, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 29, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 78, 0, 82, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 29, 0, - 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 8, 0, 29, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, - 0, 0, 0, 106, 107, 0, 0, 42, 19, 106, - 107, 0, 15, 17, 0, 20, 43, 43, 0, 108, - 10, 128, 129, 130, 131, 108, 0, 0, 43, 43, - 43, 43, 43, 0, 0, 0, 22, 0, 22, 6, - 0, 22, 22, 22, 22, 22, 22, 22, 20, 0, - 0, 0, 0, 22, 22, 22, 22, 22, 22, 66, - 0, 66, 0, 0, 66, 66, 66, 66, 66, 66, - 66, 0, 6, 0, 0, 0, 66, 66, 66, 66, - 66, 66, 72, 44, 72, 0, 0, 72, 72, 72, - 72, 72, 72, 72, 0, 0, 0, 0, 0, 72, - 72, 72, 72, 72, 72, 82, 51, 82, 0, 0, - 82, 82, 82, 82, 82, 82, 82, 74, 0, 38, - 0, 0, 82, 82, 82, 82, 82, 82, 78, 0, - 78, 0, 61, 78, 78, 78, 78, 78, 78, 78, - 51, 0, 0, 0, 0, 78, 78, 78, 78, 78, - 78, 29, 0, 29, 5, 0, 29, 29, 29, 29, - 29, 29, 29, 0, 0, 0, 0, 0, 29, 29, - 29, 29, 29, 29, 8, 0, 8, 0, 0, 8, - 8, 8, 8, 8, 8, 8, 0, 0, 0, 0, - 0, 8, 8, 8, 8, 8, 8, 9, 0, 9, - 0, 0, 9, 9, 9, 9, 9, 9, 9, 0, - 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, - 7, 0, 7, 0, 0, 7, 7, 7, 7, 7, - 7, 7, 0, 0, 0, 0, 0, 7, 7, 7, - 7, 7, 7, 10, 0, 10, 0, 0, 10, 10, - 10, 10, 10, 10, 10, 0, 0, 0, 0, 0, - 10, 10, 10, 10, 10, 10, 0, 0, 0, 0, - 0, 20, 0, 20, 0, 0, 20, 20, 20, 20, - 20, 20, 20, 0, 0, 0, 0, 0, 20, 20, - 20, 20, 20, 20, 0, 6, 0, 6, 0, 0, - 6, 6, 6, 6, 6, 6, 6, 44, 44, 0, - 0, 0, 6, 6, 6, 6, 6, 6, 0, 44, - 44, 44, 44, 44, 0, 0, 0, 0, 0, 0, - 0, 46, 0, 47, 48, 0, 49, 0, 0, 0, - 0, 0, 0, 0, 33, 0, 50, 34, 35, 36, - 0, 0, 0, 0, 0, 0, 0, 56, 0, 37, - 57, 58, 59, 0, 0, 46, 0, 47, 48, 0, - 49, 0, 60, 0, 0, 0, 0, 0, 0, 5, - 50, 0, 5, 5, 5, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 5, + { 43, + 22, 55, 53, 109, 51, 114, 79, 19, 80, 106, + 107, 126, 43, 33, 134, 74, 34, 35, 36, 16, + 20, 15, 84, 23, 78, 68, 1, 108, 122, 17, + 37, 26, 29, 22, 2, 3, 4, 5, 46, 97, + 47, 48, 66, 49, 22, 68, 6, 7, 8, 9, + 10, 74, 70, 72, 81, 50, 56, 82, 68, 57, + 58, 59, 84, 74, 86, 87, 89, 91, 93, 96, + 98, 99, 105, 60, 113, 100, 121, 84, 116, 123, + 125, 83, 103, 68, 74, 73, 32, 104, 115, 88, + 101, 127, 90, 102, 38, 95, 0, 92, 94, 0, + 0, 0, 0, 80, 0, 0, 0, 0, 0, 74, + 84, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 51, 0, 0, 0, 0, 0, 0, 0, 0, 29, + 0, 0, 0, 0, 0, 84, 80, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 61, 0, 0, 0, + 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, + 0, 80, 29, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, + 9, 0, 0, 0, 0, 0, 0, 29, 8, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, + 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 42, 0, 106, 107, 46, + 0, 47, 48, 19, 49, 10, 43, 43, 7, 128, + 129, 130, 131, 132, 133, 108, 50, 15, 43, 43, + 43, 43, 43, 43, 43, 17, 22, 0, 22, 0, + 20, 22, 22, 22, 22, 22, 22, 22, 10, 0, + 0, 0, 0, 0, 0, 22, 22, 22, 22, 22, + 22, 68, 0, 68, 0, 0, 68, 68, 68, 68, + 68, 68, 68, 20, 0, 0, 0, 0, 0, 6, + 68, 68, 68, 68, 68, 68, 44, 74, 109, 74, + 0, 0, 74, 74, 74, 74, 74, 74, 74, 33, + 0, 0, 34, 35, 36, 0, 74, 74, 74, 74, + 74, 74, 6, 84, 0, 84, 37, 0, 84, 84, + 84, 84, 84, 84, 84, 46, 0, 47, 48, 0, + 49, 0, 84, 84, 84, 84, 84, 84, 0, 80, + 0, 80, 50, 0, 80, 80, 80, 80, 80, 80, + 80, 56, 0, 0, 57, 58, 59, 0, 80, 80, + 80, 80, 80, 80, 0, 29, 0, 29, 60, 0, + 29, 29, 29, 29, 29, 29, 29, 5, 0, 0, + 5, 5, 5, 0, 29, 29, 29, 29, 29, 29, + 0, 8, 0, 8, 5, 0, 8, 8, 8, 8, + 8, 8, 8, 0, 0, 0, 0, 0, 0, 0, + 8, 8, 8, 8, 8, 8, 9, 0, 9, 0, + 0, 9, 9, 9, 9, 9, 9, 9, 0, 0, + 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, + 9, 7, 0, 7, 0, 0, 7, 7, 7, 7, + 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, + 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, + 0, 10, 0, 10, 0, 0, 10, 10, 10, 10, + 10, 10, 10, 0, 0, 0, 0, 0, 0, 0, + 10, 10, 10, 10, 10, 10, 20, 0, 20, 0, + 0, 20, 20, 20, 20, 20, 20, 20, 0, 0, + 44, 44, 106, 107, 0, 20, 20, 20, 20, 20, + 20, 0, 44, 44, 44, 44, 44, 44, 44, 0, + 108, 0, 0, 0, 0, 6, 0, 6, 0, 0, + 6, 6, 6, 6, 6, 6, 6, 0, 0, 0, + 0, 0, 0, 0, 6, 6, 6, 6, 6, 6, }; #if defined(__cplusplus) || defined(__STDC__) const short yycheck[] = @@ -464,74 +464,70 @@ const short yycheck[] = short yycheck[] = #endif { 33, - 0, 33, 33, 18, 17, 33, 33, 33, 93, 274, - 258, 44, 33, 257, 258, 258, 256, 258, 261, 262, - 263, 258, 258, 0, 264, 265, 266, 267, 61, 273, - 273, 116, 259, 33, 274, 275, 276, 277, 278, 43, - 258, 45, 260, 261, 44, 263, 0, 258, 58, 58, - 261, 262, 263, 58, 44, 273, 33, 61, 121, 58, - 44, 124, 273, 44, 44, 61, 61, 61, 61, 0, - 58, 263, 263, 263, 87, 268, 91, 44, 44, 33, - 120, 58, 51, 85, 11, 38, 123, 84, 86, 96, - 82, 66, 0, 72, 68, -1, 74, 70, -1, -1, - -1, -1, 33, -1, 58, -1, -1, -1, -1, -1, + 0, 18, 17, 33, 33, 93, 43, 33, 45, 257, + 258, 121, 33, 258, 124, 44, 261, 262, 263, 276, + 258, 33, 44, 258, 61, 0, 256, 275, 116, 33, + 275, 258, 258, 33, 264, 265, 266, 267, 258, 61, + 260, 261, 58, 263, 44, 58, 276, 277, 278, 279, + 280, 0, 58, 58, 259, 275, 258, 44, 33, 261, + 262, 263, 44, 44, 44, 61, 61, 61, 61, 58, + 263, 263, 87, 275, 91, 263, 44, 0, 268, 44, + 120, 51, 85, 58, 33, 38, 11, 86, 96, 66, + 82, 123, 68, 84, 33, 74, -1, 70, 72, -1, + -1, -1, -1, 0, -1, -1, -1, -1, -1, 58, + 33, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 33, -1, -1, -1, -1, -1, -1, -1, -1, 0, + -1, -1, -1, -1, -1, 58, 33, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 33, -1, -1, -1, + -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, + -1, 58, 33, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 33, -1, -1, -1, -1, -1, -1, -1, + 0, -1, -1, -1, -1, -1, -1, 58, 33, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 33, -1, 58, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 33, -1, - 58, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 33, -1, 58, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 33, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 33, -1, -1, - -1, -1, -1, 257, 258, -1, -1, 259, 259, 257, - 258, -1, 259, 259, -1, 0, 257, 258, -1, 273, - 33, 269, 270, 271, 272, 273, -1, -1, 269, 270, - 271, 272, 273, -1, -1, -1, 256, -1, 258, 0, - -1, 261, 262, 263, 264, 265, 266, 267, 33, -1, - -1, -1, -1, 273, 274, 275, 276, 277, 278, 256, - -1, 258, -1, -1, 261, 262, 263, 264, 265, 266, - 267, -1, 33, -1, -1, -1, 273, 274, 275, 276, - 277, 278, 256, 33, 258, -1, -1, 261, 262, 263, - 264, 265, 266, 267, -1, -1, -1, -1, -1, 273, - 274, 275, 276, 277, 278, 256, 33, 258, -1, -1, - 261, 262, 263, 264, 265, 266, 267, 44, -1, 33, - -1, -1, 273, 274, 275, 276, 277, 278, 256, -1, - 258, -1, 33, 261, 262, 263, 264, 265, 266, 267, - 33, -1, -1, -1, -1, 273, 274, 275, 276, 277, - 278, 256, -1, 258, 33, -1, 261, 262, 263, 264, - 265, 266, 267, -1, -1, -1, -1, -1, 273, 274, - 275, 276, 277, 278, 256, -1, 258, -1, -1, 261, - 262, 263, 264, 265, 266, 267, -1, -1, -1, -1, - -1, 273, 274, 275, 276, 277, 278, 256, -1, 258, - -1, -1, 261, 262, 263, 264, 265, 266, 267, -1, - -1, -1, -1, -1, 273, 274, 275, 276, 277, 278, - 256, -1, 258, -1, -1, 261, 262, 263, 264, 265, - 266, 267, -1, -1, -1, -1, -1, 273, 274, 275, - 276, 277, 278, 256, -1, 258, -1, -1, 261, 262, - 263, 264, 265, 266, 267, -1, -1, -1, -1, -1, - 273, 274, 275, 276, 277, 278, -1, -1, -1, -1, + -1, -1, -1, 33, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 259, -1, 257, 258, 258, + -1, 260, 261, 259, 263, 0, 257, 258, 33, 269, + 270, 271, 272, 273, 274, 275, 275, 259, 269, 270, + 271, 272, 273, 274, 275, 259, 256, -1, 258, -1, + 0, 261, 262, 263, 264, 265, 266, 267, 33, -1, + -1, -1, -1, -1, -1, 275, 276, 277, 278, 279, + 280, 256, -1, 258, -1, -1, 261, 262, 263, 264, + 265, 266, 267, 33, -1, -1, -1, -1, -1, 0, + 275, 276, 277, 278, 279, 280, 33, 256, 33, 258, + -1, -1, 261, 262, 263, 264, 265, 266, 267, 258, + -1, -1, 261, 262, 263, -1, 275, 276, 277, 278, + 279, 280, 33, 256, -1, 258, 275, -1, 261, 262, + 263, 264, 265, 266, 267, 258, -1, 260, 261, -1, + 263, -1, 275, 276, 277, 278, 279, 280, -1, 256, + -1, 258, 275, -1, 261, 262, 263, 264, 265, 266, + 267, 258, -1, -1, 261, 262, 263, -1, 275, 276, + 277, 278, 279, 280, -1, 256, -1, 258, 275, -1, + 261, 262, 263, 264, 265, 266, 267, 258, -1, -1, + 261, 262, 263, -1, 275, 276, 277, 278, 279, 280, + -1, 256, -1, 258, 275, -1, 261, 262, 263, 264, + 265, 266, 267, -1, -1, -1, -1, -1, -1, -1, + 275, 276, 277, 278, 279, 280, 256, -1, 258, -1, + -1, 261, 262, 263, 264, 265, 266, 267, -1, -1, + -1, -1, -1, -1, -1, 275, 276, 277, 278, 279, + 280, 256, -1, 258, -1, -1, 261, 262, 263, 264, + 265, 266, 267, -1, -1, -1, -1, -1, -1, -1, + 275, 276, 277, 278, 279, 280, -1, -1, -1, -1, -1, 256, -1, 258, -1, -1, 261, 262, 263, 264, - 265, 266, 267, -1, -1, -1, -1, -1, 273, 274, - 275, 276, 277, 278, -1, 256, -1, 258, -1, -1, - 261, 262, 263, 264, 265, 266, 267, 257, 258, -1, - -1, -1, 273, 274, 275, 276, 277, 278, -1, 269, - 270, 271, 272, 273, -1, -1, -1, -1, -1, -1, - -1, 258, -1, 260, 261, -1, 263, -1, -1, -1, - -1, -1, -1, -1, 258, -1, 273, 261, 262, 263, - -1, -1, -1, -1, -1, -1, -1, 258, -1, 273, - 261, 262, 263, -1, -1, 258, -1, 260, 261, -1, - 263, -1, 273, -1, -1, -1, -1, -1, -1, 258, - 273, -1, 261, 262, 263, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 273, + 265, 266, 267, -1, -1, -1, -1, -1, -1, -1, + 275, 276, 277, 278, 279, 280, 256, -1, 258, -1, + -1, 261, 262, 263, 264, 265, 266, 267, -1, -1, + 257, 258, 257, 258, -1, 275, 276, 277, 278, 279, + 280, -1, 269, 270, 271, 272, 273, 274, 275, -1, + 275, -1, -1, -1, -1, 256, -1, 258, -1, -1, + 261, 262, 263, 264, 265, 266, 267, -1, -1, -1, + -1, -1, -1, -1, 275, 276, 277, 278, 279, 280, }; #define YYFINAL 11 #ifndef YYDEBUG #define YYDEBUG 0 #endif -#define YYMAXTOKEN 279 +#define YYMAXTOKEN 281 #if YYDEBUG #if defined(__cplusplus) || defined(__STDC__) const char * const yyname[] = @@ -548,8 +544,8 @@ char *yyname[] = 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,0,0,0,0,0,0,0,0,0,0,0,0,0, "COMMAND","ALIAS","DEFVAR","NTWKADDR","NETGROUP","USERGROUP","WORD","DEFAULTS", "DEFAULTS_HOST","DEFAULTS_USER","DEFAULTS_RUNAS","RUNAS","NOPASSWD","PASSWD", -"NOEXEC","EXEC","ALL","COMMENT","HOSTALIAS","CMNDALIAS","USERALIAS", -"RUNASALIAS","ERROR", +"NOEXEC","EXEC","TRACE","NOTRACE","ALL","COMMENT","HOSTALIAS","CMNDALIAS", +"USERALIAS","RUNASALIAS","ERROR", }; #if defined(__cplusplus) || defined(__STDC__) const char * const yyrule[] = @@ -616,6 +612,8 @@ char *yyrule[] = "cmndtag : cmndtag PASSWD", "cmndtag : cmndtag NOEXEC", "cmndtag : cmndtag EXEC", +"cmndtag : cmndtag TRACE", +"cmndtag : cmndtag NOTRACE", "cmnd : ALL", "cmnd : ALIAS", "cmnd : COMMAND", @@ -674,7 +672,7 @@ short *yyss; short *yysslim; YYSTYPE *yyvs; int yystacksize; -#line 890 "parse.yacc" +#line 911 "parse.yacc" #define MOREALIASES (32) aliasinfo *aliases = NULL; @@ -870,6 +868,12 @@ list_matches() else if (cm_list[count].noexecve == FALSE && def_noexec) (void) fputs("EXEC: ", stdout); + /* Is tracing enabled? */ + if (cm_list[count].trace == TRUE && !def_trace) + (void) fputs("TRACE: ", stdout); + else if (cm_list[count].trace == FALSE && def_trace) + (void) fputs("NOTRACE: ", stdout); + /* Is a password required? */ if (cm_list[count].nopasswd == TRUE && def_authenticate) (void) fputs("NOPASSWD: ", stdout); @@ -1003,6 +1007,7 @@ expand_match_list() cm_list[cm_list_len].runas = cm_list[cm_list_len].cmnd = NULL; cm_list[cm_list_len].nopasswd = FALSE; cm_list[cm_list_len].noexecve = FALSE; + cm_list[cm_list_len].trace = FALSE; } /* @@ -1032,7 +1037,7 @@ init_parser() if (printmatches == TRUE) expand_match_list(); } -#line 984 "sudo.tab.c" +#line 989 "sudo.tab.c" /* allocate initial stack or double stack size, up to YYMAXDEPTH */ #if defined(__cplusplus) || defined(__STDC__) static int yygrowstack(void) @@ -1226,85 +1231,85 @@ yyreduce: switch (yyn) { case 3: -#line 275 "parse.yacc" +#line 279 "parse.yacc" { ; } break; case 4: -#line 277 "parse.yacc" +#line 281 "parse.yacc" { yyerrok; } break; case 5: -#line 278 "parse.yacc" +#line 282 "parse.yacc" { push; } break; case 6: -#line 278 "parse.yacc" +#line 282 "parse.yacc" { while (top && user_matches != TRUE) pop; } break; case 7: -#line 283 "parse.yacc" +#line 287 "parse.yacc" { ; } break; case 8: -#line 285 "parse.yacc" +#line 289 "parse.yacc" { ; } break; case 9: -#line 287 "parse.yacc" +#line 291 "parse.yacc" { ; } break; case 10: -#line 289 "parse.yacc" +#line 293 "parse.yacc" { ; } break; case 11: -#line 291 "parse.yacc" +#line 295 "parse.yacc" { ; } break; case 13: -#line 297 "parse.yacc" +#line 301 "parse.yacc" { defaults_matches = TRUE; } break; case 14: -#line 300 "parse.yacc" +#line 304 "parse.yacc" { push; } break; case 15: -#line 300 "parse.yacc" +#line 304 "parse.yacc" { defaults_matches = user_matches; pop; } break; case 16: -#line 304 "parse.yacc" +#line 308 "parse.yacc" { push; } break; case 17: -#line 304 "parse.yacc" +#line 308 "parse.yacc" { defaults_matches = yyvsp[0].BOOLEAN == TRUE; pop; } break; case 18: -#line 308 "parse.yacc" +#line 312 "parse.yacc" { push; } break; case 19: -#line 308 "parse.yacc" +#line 312 "parse.yacc" { defaults_matches = host_matches; pop; } break; case 22: -#line 318 "parse.yacc" +#line 322 "parse.yacc" { if (defaults_matches == TRUE && !set_default(yyvsp[0].string, NULL, TRUE)) { @@ -1315,7 +1320,7 @@ case 22: } break; case 23: -#line 326 "parse.yacc" +#line 330 "parse.yacc" { if (defaults_matches == TRUE && !set_default(yyvsp[0].string, NULL, FALSE)) { @@ -1326,7 +1331,7 @@ case 23: } break; case 24: -#line 334 "parse.yacc" +#line 338 "parse.yacc" { if (defaults_matches == TRUE && !set_default(yyvsp[-2].string, yyvsp[0].string, TRUE)) { @@ -1338,7 +1343,7 @@ case 24: } break; case 25: -#line 343 "parse.yacc" +#line 347 "parse.yacc" { if (defaults_matches == TRUE && !set_default(yyvsp[-2].string, yyvsp[0].string, '+')) { @@ -1350,7 +1355,7 @@ case 25: } break; case 26: -#line 352 "parse.yacc" +#line 356 "parse.yacc" { if (defaults_matches == TRUE && !set_default(yyvsp[-2].string, yyvsp[0].string, '-')) { @@ -1362,7 +1367,7 @@ case 26: } break; case 29: -#line 367 "parse.yacc" +#line 371 "parse.yacc" { /* * We already did a push if necessary in @@ -1373,28 +1378,29 @@ case 29: runas_matches = UNSPEC; no_passwd = def_authenticate ? UNSPEC : TRUE; no_execve = def_noexec ? TRUE : UNSPEC; + trace_cmnd = def_trace ? TRUE : UNSPEC; } break; case 30: -#line 380 "parse.yacc" +#line 385 "parse.yacc" { SETMATCH(host_matches, yyvsp[0].BOOLEAN); } break; case 31: -#line 383 "parse.yacc" +#line 388 "parse.yacc" { SETNMATCH(host_matches, yyvsp[0].BOOLEAN); } break; case 32: -#line 388 "parse.yacc" +#line 393 "parse.yacc" { yyval.BOOLEAN = TRUE; } break; case 33: -#line 391 "parse.yacc" +#line 396 "parse.yacc" { if (addr_matches(yyvsp[0].string)) yyval.BOOLEAN = TRUE; @@ -1404,7 +1410,7 @@ case 33: } break; case 34: -#line 398 "parse.yacc" +#line 403 "parse.yacc" { if (netgr_matches(yyvsp[0].string, user_host, user_shost, NULL)) yyval.BOOLEAN = TRUE; @@ -1414,7 +1420,7 @@ case 34: } break; case 35: -#line 405 "parse.yacc" +#line 410 "parse.yacc" { if (hostname_matches(user_shost, user_host, yyvsp[0].string) == 0) yyval.BOOLEAN = TRUE; @@ -1424,7 +1430,7 @@ case 35: } break; case 36: -#line 412 "parse.yacc" +#line 417 "parse.yacc" { aliasinfo *aip = find_alias(yyvsp[0].string, HOST_ALIAS); @@ -1449,7 +1455,7 @@ case 36: } break; case 39: -#line 440 "parse.yacc" +#line 445 "parse.yacc" { /* * Push the entry onto the stack if it is worth @@ -1479,13 +1485,13 @@ case 39: } break; case 40: -#line 469 "parse.yacc" +#line 474 "parse.yacc" { SETMATCH(cmnd_matches, yyvsp[0].BOOLEAN); } break; case 41: -#line 472 "parse.yacc" +#line 477 "parse.yacc" { if (printmatches == TRUE) { if (in_alias == TRUE) @@ -1497,13 +1503,13 @@ case 41: } break; case 42: -#line 480 "parse.yacc" +#line 485 "parse.yacc" { SETNMATCH(cmnd_matches, yyvsp[0].BOOLEAN); } break; case 43: -#line 485 "parse.yacc" +#line 490 "parse.yacc" { if (printmatches == TRUE && host_matches == TRUE && user_matches == TRUE) { @@ -1531,17 +1537,17 @@ case 43: } break; case 44: -#line 510 "parse.yacc" +#line 515 "parse.yacc" { runas_matches = yyvsp[0].BOOLEAN; } break; case 45: -#line 515 "parse.yacc" +#line 520 "parse.yacc" { ; } break; case 46: -#line 516 "parse.yacc" +#line 521 "parse.yacc" { /* Later entries override earlier ones. */ if (yyvsp[0].BOOLEAN != NOMATCH) @@ -1551,11 +1557,11 @@ case 46: } break; case 47: -#line 525 "parse.yacc" +#line 530 "parse.yacc" { ; } break; case 48: -#line 526 "parse.yacc" +#line 531 "parse.yacc" { if (printmatches == TRUE) { if (in_alias == TRUE) @@ -1567,14 +1573,14 @@ case 48: } break; case 49: -#line 534 "parse.yacc" +#line 539 "parse.yacc" { /* Set $$ to the negation of runasuser */ yyval.BOOLEAN = (yyvsp[0].BOOLEAN == NOMATCH ? NOMATCH : ! yyvsp[0].BOOLEAN); } break; case 50: -#line 540 "parse.yacc" +#line 545 "parse.yacc" { if (printmatches == TRUE) { if (in_alias == TRUE) @@ -1592,7 +1598,7 @@ case 50: } break; case 51: -#line 555 "parse.yacc" +#line 560 "parse.yacc" { if (printmatches == TRUE) { if (in_alias == TRUE) @@ -1610,7 +1616,7 @@ case 51: } break; case 52: -#line 570 "parse.yacc" +#line 575 "parse.yacc" { if (printmatches == TRUE) { if (in_alias == TRUE) @@ -1628,7 +1634,7 @@ case 52: } break; case 53: -#line 585 "parse.yacc" +#line 590 "parse.yacc" { aliasinfo *aip = find_alias(yyvsp[0].string, RUNAS_ALIAS); @@ -1661,7 +1667,7 @@ case 53: } break; case 54: -#line 615 "parse.yacc" +#line 620 "parse.yacc" { if (printmatches == TRUE) { if (in_alias == TRUE) @@ -1674,9 +1680,9 @@ case 54: } break; case 55: -#line 627 "parse.yacc" +#line 632 "parse.yacc" { - /* Inherit {NOPASSWD,PASSWD,NOEXEC,EXEC} status. */ + /* Inherit tags. */ if (printmatches == TRUE && host_matches == TRUE && user_matches == TRUE) { if (no_passwd == TRUE) @@ -1687,11 +1693,15 @@ case 55: cm_list[cm_list_len].noexecve = TRUE; else cm_list[cm_list_len].noexecve = FALSE; + if (trace_cmnd == TRUE) + cm_list[cm_list_len].trace = TRUE; + else + cm_list[cm_list_len].trace = FALSE; } } break; case 56: -#line 641 "parse.yacc" +#line 650 "parse.yacc" { no_passwd = TRUE; if (printmatches == TRUE && host_matches == TRUE && @@ -1700,7 +1710,7 @@ case 56: } break; case 57: -#line 647 "parse.yacc" +#line 656 "parse.yacc" { no_passwd = FALSE; if (printmatches == TRUE && host_matches == TRUE && @@ -1709,7 +1719,7 @@ case 57: } break; case 58: -#line 653 "parse.yacc" +#line 662 "parse.yacc" { no_execve = TRUE; if (printmatches == TRUE && host_matches == TRUE && @@ -1718,7 +1728,7 @@ case 58: } break; case 59: -#line 659 "parse.yacc" +#line 668 "parse.yacc" { no_execve = FALSE; if (printmatches == TRUE && host_matches == TRUE && @@ -1727,7 +1737,25 @@ case 59: } break; case 60: -#line 667 "parse.yacc" +#line 674 "parse.yacc" +{ + trace_cmnd = TRUE; + if (printmatches == TRUE && host_matches == TRUE && + user_matches == TRUE) + cm_list[cm_list_len].trace = TRUE; + } +break; +case 61: +#line 680 "parse.yacc" +{ + trace_cmnd = FALSE; + if (printmatches == TRUE && host_matches == TRUE && + user_matches == TRUE) + cm_list[cm_list_len].trace = FALSE; + } +break; +case 62: +#line 688 "parse.yacc" { if (printmatches == TRUE) { if (in_alias == TRUE) @@ -1746,8 +1774,8 @@ case 60: safe_cmnd = estrdup(user_cmnd); } break; -case 61: -#line 684 "parse.yacc" +case 63: +#line 705 "parse.yacc" { aliasinfo *aip; @@ -1778,8 +1806,8 @@ case 61: free(yyvsp[0].string); } break; -case 62: -#line 713 "parse.yacc" +case 64: +#line 734 "parse.yacc" { if (printmatches == TRUE) { if (in_alias == TRUE) { @@ -1806,12 +1834,12 @@ case 62: free(yyvsp[0].command.args); } break; -case 65: -#line 744 "parse.yacc" +case 67: +#line 765 "parse.yacc" { push; } break; -case 66: -#line 744 "parse.yacc" +case 68: +#line 765 "parse.yacc" { if ((MATCHED(host_matches) || pedantic) && !add_alias(yyvsp[-3].string, HOST_ALIAS, host_matches)) { @@ -1821,8 +1849,8 @@ case 66: pop; } break; -case 71: -#line 762 "parse.yacc" +case 73: +#line 783 "parse.yacc" { push; if (printmatches == TRUE) { @@ -1834,8 +1862,8 @@ case 71: } } break; -case 72: -#line 771 "parse.yacc" +case 74: +#line 792 "parse.yacc" { if ((MATCHED(cmnd_matches) || pedantic) && !add_alias(yyvsp[-3].string, CMND_ALIAS, cmnd_matches)) { @@ -1849,12 +1877,12 @@ case 72: in_alias = FALSE; } break; -case 73: -#line 785 "parse.yacc" +case 75: +#line 806 "parse.yacc" { ; } break; -case 77: -#line 793 "parse.yacc" +case 79: +#line 814 "parse.yacc" { if (printmatches == TRUE) { in_alias = TRUE; @@ -1865,8 +1893,8 @@ case 77: } } break; -case 78: -#line 801 "parse.yacc" +case 80: +#line 822 "parse.yacc" { if ((yyvsp[0].BOOLEAN != NOMATCH || pedantic) && !add_alias(yyvsp[-3].string, RUNAS_ALIAS, yyvsp[0].BOOLEAN)) { @@ -1879,12 +1907,12 @@ case 78: in_alias = FALSE; } break; -case 81: -#line 818 "parse.yacc" +case 83: +#line 839 "parse.yacc" { push; } break; -case 82: -#line 818 "parse.yacc" +case 84: +#line 839 "parse.yacc" { if ((MATCHED(user_matches) || pedantic) && !add_alias(yyvsp[-3].string, USER_ALIAS, user_matches)) { @@ -1895,20 +1923,20 @@ case 82: free(yyvsp[-3].string); } break; -case 85: -#line 833 "parse.yacc" +case 87: +#line 854 "parse.yacc" { SETMATCH(user_matches, yyvsp[0].BOOLEAN); } break; -case 86: -#line 836 "parse.yacc" +case 88: +#line 857 "parse.yacc" { SETNMATCH(user_matches, yyvsp[0].BOOLEAN); } break; -case 87: -#line 841 "parse.yacc" +case 89: +#line 862 "parse.yacc" { if (userpw_matches(yyvsp[0].string, user_name, sudo_user.pw)) yyval.BOOLEAN = TRUE; @@ -1917,8 +1945,8 @@ case 87: free(yyvsp[0].string); } break; -case 88: -#line 848 "parse.yacc" +case 90: +#line 869 "parse.yacc" { if (usergr_matches(yyvsp[0].string, user_name, sudo_user.pw)) yyval.BOOLEAN = TRUE; @@ -1927,8 +1955,8 @@ case 88: free(yyvsp[0].string); } break; -case 89: -#line 855 "parse.yacc" +case 91: +#line 876 "parse.yacc" { if (netgr_matches(yyvsp[0].string, NULL, NULL, user_name)) yyval.BOOLEAN = TRUE; @@ -1937,8 +1965,8 @@ case 89: free(yyvsp[0].string); } break; -case 90: -#line 862 "parse.yacc" +case 92: +#line 883 "parse.yacc" { aliasinfo *aip = find_alias(yyvsp[0].string, USER_ALIAS); @@ -1962,13 +1990,13 @@ case 90: free(yyvsp[0].string); } break; -case 91: -#line 884 "parse.yacc" +case 93: +#line 905 "parse.yacc" { yyval.BOOLEAN = TRUE; } break; -#line 1920 "sudo.tab.c" +#line 1948 "sudo.tab.c" } yyssp -= yym; yystate = *yyssp; diff --git a/sudo.tab.h b/sudo.tab.h index 9a0cce10e..d94a9234e 100644 --- a/sudo.tab.h +++ b/sudo.tab.h @@ -14,13 +14,15 @@ #define PASSWD 270 #define NOEXEC 271 #define EXEC 272 -#define ALL 273 -#define COMMENT 274 -#define HOSTALIAS 275 -#define CMNDALIAS 276 -#define USERALIAS 277 -#define RUNASALIAS 278 -#define ERROR 279 +#define TRACE 273 +#define NOTRACE 274 +#define ALL 275 +#define COMMENT 276 +#define HOSTALIAS 277 +#define CMNDALIAS 278 +#define USERALIAS 279 +#define RUNASALIAS 280 +#define ERROR 281 #ifndef YYSTYPE_DEFINED #define YYSTYPE_DEFINED typedef union {