REM Copyright (C) 2000 John J. G. Savard REM Redistribution is only permitted if no charge is made REM and all copyright notices, and the licensing REM conditions which follow, including this licensing condition, REM are retained. REM Use, including commercial use, is permitted. REM It is specifically permitted to modify this program REM for purposes of use, but not of redistribution REM by changing the statement "FOR bx% = 1 to 11" REM to "FOR bx% = 1 to" a higher number, and by replacing REM the DATA statements with either more digits of Euler's constant REM or the digits of another quantity; REM excepting that redistribution after such a modification is REM permitted providing that the constant whose value is in the REM DATA statements is accurately identified, and its value is REM correct. REM No copyright is claimed to program output, and users of this REM program agree that, if it is applied to a string of digits as REM input that are themselves not subject to copyright, that the REM output is a trivial transformation of the input, and is also REM not subject to copyright, and therefore they also agree not to REM apply for or enforce any such rights relative to program output REM in such a case. REM The above condition in no way prejudices the ability of someone REM who owns a copyrighted work to express that work as a string of REM digits, and apply this program to those digits, and retain and REM enforce copyright on the output from this program when applied REM to those digits. DIM a%(3000), s%(255) LINE INPUT "Output file? "; fi$ OPEN fi$ FOR OUTPUT AS #2 REM Fill working array with Euler's constant FOR i% = 1 TO 3000 READ a%(i%) NEXT i% REM Generate S-boxes FOR bx% = 1 TO 11 REM Initialize array for S-box FOR i% = 0 TO 255 s%(i%) = i% NEXT i% REM Shuffle S-box contents FOR ch% = 256 TO 2 STEP -1 REM Multiply Euler's constant by number of choices, REM take integer part ca% = 0 FOR i% = 3000 TO 1 STEP -1 REM force long integer arithmetic w& = a%(i%) w& = w& * ch% w& = w& + ca% ca% = w& \ 10000 cy& = ca% a%(i%) = w& - 10000 * cy& NEXT i% REM Use result, from 0 to ch%-1, to pick an element REM from the array IF ca% = 0 THEN 90 pt% = 256 - ch% ta% = pt% + ca% t% = s%(pt%) s%(pt%) = s%(ta%) s%(ta%) = t% 90 REM NEXT ch% REM Print out the S-box that has been calculated PRINT #2, FOR i% = 0 TO 248 STEP 8 FOR j% = 0 TO 7 PRINT #2, USING " ###"; s%(i% + j%); NEXT j% PRINT #2, NEXT i% PRINT #2, NEXT bx% DATA 5772, 1566, 4901, 5328, 6060, 6512, 900, 8240, 2431, 421 DATA 5933, 5939, 9235, 9880, 5767, 2348, 8486, 7726, 7776, 6467 DATA 936, 9470, 6329, 1746, 7495, 1463, 1447, 2498, 708, 2480 DATA 9605, 401, 4486, 5428, 3622, 4173, 9976, 4492, 3536, 2535 DATA 33, 3742, 9373, 3773, 7673, 9427, 9259, 5258, 2470, 9491 DATA 6008, 7352, 394, 8165, 6708, 5323, 3151, 7766, 1152, 8621 DATA 1995, 150, 7984, 7937, 4508, 5705, 7400, 2992, 1354, 7861 DATA 4669, 4029, 6043, 2542, 1519, 587, 7553, 5267, 3313, 9925 DATA 4012, 9674, 2051, 3754, 1395, 4911, 1685, 1028, 798, 4234 DATA 8775, 8720, 5038, 4310, 9399, 7361, 3725, 5306, 889, 3312 DATA 6760, 172, 4795, 3783, 6759, 2713, 5157, 7226, 1027, 3492 DATA 9139, 4079, 8430, 1034, 1777, 1778, 881, 5495, 7066, 1075 DATA 101, 6191, 6633, 4015, 2278, 9358, 6796, 5497, 2520, 3621 DATA 2879, 2265, 5595, 3669, 6281, 7638, 8792, 7268, 132, 4310 DATA 1047, 6505, 9637, 394, 7394, 9576, 3890, 6572, 9679, 2960 DATA 1009, 151, 2519, 5950, 9222, 4350, 1409, 3498, 7122, 8247 DATA 9497, 4719, 5646, 9763, 1850, 6676, 1290, 6381, 1051, 8241 DATA 9744, 4867, 8363, 8086, 1749, 4551, 6989, 2792, 3018, 7739 DATA 1072, 9457, 8155, 4316, 50, 218, 2844, 960, 5377, 2434 DATA 2032, 8547, 8367, 151, 7739, 4398, 7003, 237, 339, 5183 DATA 2869, 1, 5581, 9398, 8042, 7074, 1154, 2227, 8197, 1652 DATA 3011, 735, 6583, 3967, 3487, 1765, 491, 9418, 1230, 40 DATA 6546, 9314, 2999, 2977, 7956, 9303, 1005, 308, 6303, 4185 DATA 6980, 3231, 836, 9164, 25, 8929, 7089, 985, 4868, 2577 DATA 7364, 2882, 5395, 4925, 8736, 2959, 6133, 2985, 7473, 9302 DATA 3734, 3884, 7070, 3702, 8441, 2920, 1664, 1785, 248, 7333 DATA 7908, 562, 7549, 9843, 4590, 7616, 4316, 7103, 1467, 1072 DATA 2370, 218, 1074, 5044, 4186, 6475, 9134, 8036, 6902, 5532 DATA 4586, 2544, 2225, 3451, 8138, 7912, 4345, 7350, 1361, 2977 DATA 8227, 8288, 1489, 4590, 9863, 8460, 629, 3169, 4718, 8714 DATA 9587, 5254, 9236, 6493, 5204, 7324, 3641, 972, 6827, 6160 DATA 8775, 9508, 8095, 1262, 840, 4544, 4779, 9229, 9157, 2482 DATA 9251, 6251, 2784, 2765, 9657, 832, 1461, 298, 2146, 1795 DATA 1957, 9590, 9592, 2704, 2089, 8962, 7971, 2553, 6321, 7948 DATA 8737, 6421, 660, 6070, 6598, 2561, 9901, 288, 756, 1251 DATA 9913, 7511, 6782, 1764, 3619, 570, 5844, 783, 5735, 158 DATA 56, 774, 5793, 4213, 1449, 8850, 786, 4151, 7161, 5194 DATA 5657, 617, 432, 4507, 5008, 1687, 523, 789, 937, 461 DATA 4306, 6848, 1791, 6496, 8425, 4915, 496, 7243, 1218, 3783 DATA 8753, 5648, 9495, 868, 4541, 234, 601, 6225, 851, 5583 DATA 8672, 3494, 4187, 8804, 4094, 770, 1068, 8379, 5111, 3078 DATA 7202, 3426, 3952, 2692, 971, 6088, 5690, 8382, 5113, 7871 DATA 2836, 8204, 9117, 8925, 9447, 8486, 1991, 1852, 9391, 293 DATA 990, 5925, 5266, 9172, 7446, 8920, 4438, 6971, 1147, 1745 DATA 7157, 4573, 2039, 3520, 9122, 3160, 8508, 6827, 5588, 9010 DATA 9451, 6811, 8101, 6874, 9754, 7096, 9366, 6712, 1020, 6304 DATA 8271, 6589, 5049, 3273, 1486, 874, 9402, 700, 6742, 5909 DATA 1824, 8759, 6213, 7384, 2311, 4426, 5313, 5029, 2303, 1751 DATA 7225, 7221, 6283, 2488, 3811, 2458, 9574, 3862, 3987, 375 DATA 7662, 8551, 3033, 1439, 2999, 5401, 8531, 3414, 1586, 2127 DATA 8864, 8076, 1100, 3015, 2119, 6578, 68, 1177, 7376, 3501 DATA 6818, 3897, 3389, 6639, 8689, 5793, 2991, 4563, 8864, 4310 DATA 3706, 807, 8174, 4899, 5795, 8324, 5794, 1896, 2026, 498 DATA 4104, 3922, 5078, 6046, 362, 5277, 2602, 2919, 6829, 9586 DATA 988, 3390, 1378, 7171, 4226, 9178, 8381, 9529, 8445, 6079 DATA 1605, 1972, 7973, 6047, 5910, 2510, 9957, 7913, 3515, 7917 DATA 7225, 1502, 5492, 9324, 6325, 287, 4767, 7948, 4215, 8405 DATA 759, 9290, 4018, 5576, 4599, 186, 2692, 6776, 4372, 6605 DATA 7117, 6813, 3655, 9088, 1554, 8107, 4700, 62, 3363, 7252 DATA 8894, 9554, 6369, 7143, 3012, 79, 1308, 5552, 6395, 9549 DATA 7823, 231, 4403, 9149, 7404, 9474, 6825, 9473, 2084, 6185 DATA 2460, 5877, 6694, 8828, 7953, 104, 634, 9172, 2921, 8580 DATA 870, 6770, 6904, 2792, 6743, 2844, 4696, 8514, 9718, 2567 DATA 8095, 8416, 5449, 1851, 4575, 3319, 6406, 3311, 9937, 3821 DATA 5734, 5087, 4988, 3255, 6088, 8873, 5280, 1901, 9155, 896 DATA 8855, 4682, 5924, 5444, 5277, 2817, 3057, 3010, 8060, 6177 DATA 113, 6377, 3182, 4629, 2466, 81, 2771, 6210, 1867, 7446 DATA 8495, 9514, 2817, 9014, 5111, 9489, 3422, 8834, 4825, 3075 DATA 3118, 7018, 6097, 6122, 4623, 1767, 4977, 5564, 1246, 1983 DATA 8564, 148, 4123, 5871, 7724, 9554, 2248, 2016, 1517, 6579 DATA 9408, 629, 6834, 2428, 9057, 2594, 7392, 6963, 8633, 8387 DATA 4380, 5471, 3196, 7642, 9268, 3724, 9076, 875, 737, 8528 DATA 3702, 3046, 8650, 3490, 5120, 3422, 7217, 4366, 8979, 2848 DATA 6297, 2908, 8926, 7897, 7703, 2624, 6239, 1226, 1888, 7653 DATA 57, 7862, 7436, 609, 4443, 6039, 2809, 7708, 1338, 3693 DATA 4235, 5085, 8394, 1126, 7092, 1873, 4414, 5121, 8780, 3276 DATA 1505, 947, 8055, 4663, 58, 6845, 5631, 5245, 4605, 3151 DATA 1325, 2818, 8910, 7923, 1491, 3110, 3234, 4302, 4509, 3345 DATA 3, 765, 5864, 8742, 2297, 1770, 331, 7845, 3915, 566 DATA 9401, 5998, 8492, 9160, 9114, 29, 4869, 208, 8485, 3816 DATA 9700, 9551, 5663, 4705, 5445, 2217, 6403, 5862, 9398, 2865 DATA 8131, 2387, 132, 5358, 8006, 2568, 6626, 9269, 9776, 7737 DATA 7306, 8322, 6900, 9160, 8510, 4515, 22, 6107, 1802, 5546 DATA 5928, 4938, 9492, 7759, 5897, 5407, 6155, 9933, 7826, 4824 DATA 1979, 5064, 1868, 1437, 8817, 1850, 8854, 803, 6799, 6314 DATA 2395, 4009, 1964, 3887, 5007, 8900, 6, 2799, 7942, 8098 DATA 8637, 2992, 5919, 7776, 5040, 4099, 2203, 7940, 4276, 1681 DATA 7837, 1566, 8653, 669, 3983, 916, 5243, 2270, 5955, 3041 DATA 7667, 3664, 116, 7929, 5901, 2930, 5374, 4971, 8308, 42 DATA 7584, 8635, 838, 804, 2466, 7350, 9355, 9832, 3241, 1696 DATA 9214, 8606, 4989, 2763, 6244, 3295, 8854, 8737, 8970, 1489 DATA 7133, 4353, 8448, 28, 9046, 6650, 9028, 4537, 6896, 2239 DATA 8304, 8814, 627, 3054, 879, 5911, 8967, 574, 9385, 4432 DATA 4786, 9148, 853, 3770, 2640, 6775, 8081, 2754, 5873, 1117 DATA 6364, 7878, 7430, 7392, 664, 2011, 2513, 5272, 7499, 6175 DATA 4505, 3085, 5823, 5668, 3068, 3229, 1767, 6677, 410, 3523 DATA 1535, 325, 1012, 4656, 3861, 5670, 6449, 8471, 3269, 5969 DATA 3301, 6786, 6138, 3333, 3344, 1657, 9006, 586, 7497, 1036 DATA 4689, 5174, 5695, 9718, 1553, 7640, 7837, 7650, 1842, 7834 DATA 5991, 8420, 1599, 5431, 4490, 4772, 5552, 3061, 4767, 165 DATA 9934, 1639, 660, 9120, 5400, 5322, 1589, 209, 1340, 8027 DATA 8225, 1533, 8528, 9951, 1665, 4522, 4586, 9185, 9936, 7122 DATA 132, 1501, 4480, 1424, 2309, 8625, 4604, 4886, 7256, 9343 DATA 1488, 7049, 1593, 446, 4018, 9164, 5020, 2240, 5495, 3862 DATA 9184, 7586, 2930, 7788, 9350, 6437, 7159, 6606, 9096, 468 DATA 1243, 7023, 546, 5703, 1606, 7999, 2587, 1666, 7524, 7219 DATA 4097, 7798, 186, 3626, 2563, 3582, 5262, 7942, 2393, 2548 DATA 6013, 2693, 5307, 138, 8937, 4369, 2384, 2878, 9385, 1276 DATA 4740, 8565, 4865, 281, 5630, 6774, 442, 2030, 6440, 3756 DATA 8263, 910, 2917, 5145, 7223, 4441, 503, 6931, 7711, 4521 DATA 7088, 8907, 4464, 1604, 8688, 7010, 8386, 2311, 4261, 2844 DATA 1425, 9609, 5637, 400, 6192, 57, 9335, 341, 5524, 2624 DATA 262, 646, 5693, 5430, 6125, 8526, 5834, 5219, 2121, 4977 DATA 7187, 8069, 5866, 851, 6334, 9221, 483, 6737, 9945, 9259 DATA 4340, 3795, 6000, 2192, 7854, 1837, 9417, 7602, 336, 5594 DATA 6730, 7887, 9838, 848, 1631, 4678, 2414, 9235, 4649, 1488 DATA 7668, 3368, 4074, 9289, 3865, 2818, 6304, 8589, 8203, 5481 DATA 8624, 3838, 4817, 5997, 6358, 4907, 5180, 7914, 8063, 4943 DATA 9162, 8470, 5482, 2007, 5494, 5348, 9861, 3382, 7235, 7309 DATA 2219, 30, 7400, 9680, 337, 6668, 4493, 2505, 5676, 5493 DATA 7530, 3181, 1251, 6410, 5524, 9238, 4077, 6451, 4984, 2395 DATA 7620, 1278, 1552, 3229, 4492, 8854, 5578, 5382, 248, 9189 DATA 4244, 1857, 959, 1955, 8208, 1000, 7157, 8384, 396, 2747 DATA 9985, 8178, 8088, 8865, 7168, 3069, 9436, 607, 3599, 421 DATA 685, 1142, 7913, 1696, 9959, 6792, 3008, 2898, 8156, 975 DATA 3833, 8059, 1093, 6034, 1252, 9986, 5679, 389, 5687, 9567 DATA 3455, 833, 6290, 7823, 8626, 3856, 3490, 7473, 1927, 5278 DATA 7401, 6655, 7531, 1901, 1154, 3470, 181, 8625, 6971, 2611 DATA 2012, 6852, 9231, 2993, 7161, 4039, 696, 5112, 2248, 1661 DATA 5082, 3536, 4398, 2396, 6205, 3263, 3322, 2485, 519, 1593 DATA 6826, 9071, 5004, 3155, 8987, 1802, 7833, 5384, 5448, 3091 DATA 724, 9498, 578, 8096, 1717, 9963, 3716, 7036, 5541, 8004 DATA 1464, 6675, 3871, 9586, 9484, 8333, 1543, 5833, 3064, 1935 DATA 9294, 8742, 951, 4788, 3234, 7748, 4814, 1814, 9776, 8716 DATA 9441, 3640, 566, 4515, 6936, 1165, 2416, 1555, 7341, 4193 DATA 5424, 7213, 7306, 7468, 3338, 4905, 4426, 6260, 3837, 2788 DATA 2175, 5270, 9930, 9581, 4102, 6136, 9795, 78, 6465, 8767 DATA 7160, 8630, 8044, 6074, 9802, 8015, 7696, 2675, 9138, 9779 DATA 4772, 2143, 3751, 5470, 8293, 4587, 9123, 8984, 3305, 5067 DATA 2234, 7496, 9984, 9424, 8670, 6721, 5025, 6927, 3529, 5850 DATA 6586, 9588, 9974, 8653, 5562, 1869, 5804, 3997, 1251, 6897 DATA 6654, 1698, 6265, 3862, 8919, 7754, 2187, 7219, 3960, 5817 DATA 11, 423, 6414, 1587, 8081, 386, 1721, 155, 7551, 9237 DATA 1116, 49, 8806, 8229, 1618, 977, 3242, 1958, 3289, 7486 DATA 9227, 1839, 7919, 467, 7165, 4266, 8138, 8933, 7929, 6036 DATA 8154, 5793, 9611, 3396, 2192, 2245, 4301, 5158, 631, 7437 DATA 840, 5608, 5364, 1603, 1384, 9829, 6951, 8566, 9526, 1282 DATA 2123, 7169, 3936, 8130, 3212, 9656, 1939, 7187, 1020, 7098 DATA 79, 4883, 3910, 1975, 3510, 4307, 4418, 2344, 8833, 3317 DATA 9697, 8277, 3320, 9114, 3324, 5143, 508, 6573, 4575, 68 DATA 7391, 4754, 7077, 7577, 5599, 1846, 7118, 3085, 8366, 159 DATA 4371, 9371, 8449, 390, 6177, 232, 5365, 6797, 7596, 7444 DATA 7574, 7511, 5841, 9574, 6700, 9973, 4500, 2454, 4284, 658 DATA 5024, 5085, 8564, 6392, 7912, 4611, 9879, 936, 9307, 2019 DATA 8040, 2930, 3603, 7388, 3843, 742, 1628, 2120, 1635, 3864 DATA 6622, 6097, 1989, 5843, 6799, 4305, 7203, 149, 6380, 5083 DATA 2232, 3658, 2555, 7724, 5342, 3718, 7737, 4398, 1833, 3306 DATA 4546, 6290, 6993, 3111, 2597, 3721, 9502, 7464, 6899, 654 DATA 5715, 5440, 3039, 1783, 5419, 7564, 3431, 5739, 348, 8386 DATA 6750, 5427, 4216, 1831, 500, 6055, 464, 2235, 4570, 8427 DATA 3935, 4935, 9051, 7627, 1747, 9299, 4723, 9890, 8632, 9701 DATA 190, 5610, 1077, 4269, 926, 4752, 3574, 304, 6301, 5924 DATA 3442, 4649, 83, 4188, 6308, 5932, 685, 5225, 779, 910 DATA 1958, 5889, 5314, 3287, 9981, 7570, 9819, 1682, 9315, 9404 DATA 5300, 5632, 5433, 1448, 8517, 3573, 269, 8256, 9372, 5346 DATA 9964, 134, 4087, 1580, 1081, 4528, 7865, 7904, 866, 3637 DATA 9450, 7110, 8505, 1042, 4179, 7691, 9112, 9261, 5132, 103 DATA 1636, 3498, 866, 694, 8624, 4078, 66, 8400, 6716, 9622 DATA 1463, 7181, 1477, 7268, 3418, 4664, 6364, 2427, 3405, 3003 DATA 1380, 7734, 9611, 9981, 4686, 1768, 5854, 6312, 816, 3164 DATA 7989, 3796, 4263, 7383, 5661, 8938, 3137, 1098, 3289, 5649 DATA 521, 1488, 1340, 2974, 2388, 8686, 3154, 3132, 9787, 6579 DATA 9125, 4542, 4333, 8563, 4720, 268, 1290, 4899, 4955, 426 DATA 9808, 8213, 267, 2635, 8153, 2480, 6753, 8790, 3230, 5742 DATA 1040, 3301, 4978, 8786, 7523, 7786, 705, 4688, 6147, 2100 DATA 9926, 3294, 2510, 8878, 197, 284, 1179, 2240, 2591, 914 DATA 6658, 4809, 2578, 5719, 2786, 2821, 4766, 7074, 878, 6351 DATA 9714, 2562, 9242, 7867, 284, 770, 3241, 4375, 6993, 1883 DATA 2433, 3155, 9002, 4333, 476, 9111, 92, 4797, 9118, 62 DATA 8620, 2213, 7078, 62, 1725, 7329, 473, 5994, 3988, 8313 DATA 9279, 9279, 6939, 7063, 5676, 2811, 6694, 541, 2885, 9081 DATA 9820, 2383, 8277, 354, 8349, 6879, 7340, 4888, 8293, 167 DATA 3677, 941, 5846, 5440, 954, 8624, 6514, 6101, 3539, 1349 DATA 6855, 9120, 4023, 6361, 8721, 5099, 2980, 6519, 586, 1682 DATA 8153, 287, 5042, 7545, 2586, 533, 1963, 4325, 9577, 7478 DATA 8134, 3723, 9394, 9912, 4380, 6143, 7544, 9859, 686, 751 DATA 8563, 1427, 2552, 5564, 2593, 9670, 1498, 414, 2598, 1823 DATA 7852, 5768, 2943, 6395, 9656, 2438, 8520, 6565, 4807, 1038 DATA 8454, 6394, 4537, 7019, 1784, 5718, 7410, 1186, 2232, 2780 DATA 2525, 1943, 6265, 7438, 2422, 5609, 3567, 6925, 8238, 7749 DATA 1160, 7377, 5945, 1401, 4470, 3190, 2241, 5355, 9112, 5061 DATA 3817, 8297, 4212, 6498, 2641, 6187, 2460, 6313, 3408, 9192 DATA 6702, 3597, 9580, 2365, 8416, 3175, 5679, 2335, 6621, 123 DATA 1335, 8454, 9459, 590, 699, 8420, 672, 2602, 5116, 7743 DATA 8473, 6482, 4385, 7154, 714, 6265, 9456, 4239, 1127, 1707 DATA 8030, 6371, 4169, 2638, 6440, 1005, 7131, 958, 9606, 3264 DATA 9637, 5529, 5676, 9364, 6894, 1051, 7952, 6, 1645, 2021 DATA 8843, 5340, 4730, 1824, 3930, 5148, 8198, 4593, 762, 9640 DATA 4445, 6877, 6241, 6528, 7162, 727, 6731, 8606, 3254, 801 DATA 4288, 7457, 1198, 6573, 747, 1701, 8866, 368, 7970, 3647 DATA 7085, 4852, 8716, 7000, 3622, 9285, 2883, 7468, 2466, 588 DATA 1411, 7540, 4744, 6061, 6763, 5430, 3739, 9237, 5659, 6593 DATA 6967, 879, 2316, 7744, 6856, 9310, 8382, 1078, 3048, 3159 DATA 1964, 3002, 1441, 2597, 228, 9063, 2031, 7410, 1149, 3664 DATA 8095, 2903, 117, 1633, 4531, 9179, 2293, 9242, 4287, 7283 DATA 7872, 3495, 6992, 9232, 1360, 9223, 4947, 2264, 5824, 3755 DATA 945, 1533, 5520, 1176, 1289, 7517, 3395, 1371, 7829, 3328 DATA 7158, 6094, 3866, 2701, 1791, 8415, 5458, 7264, 8982, 5139 DATA 2555, 9437, 9519, 7317, 8674, 4876, 9925, 3261, 7942, 3381 DATA 2999, 4127, 9398, 6026, 4424, 5196, 60, 5436, 8186, 6467 DATA 986, 5944, 3659, 3015, 4376, 2914, 8697, 9597, 6949, 9653 DATA 3527, 2100, 2002, 967, 9104, 3948, 2547, 2441, 1334, 2244 DATA 8700, 5463, 7656, 8408, 6676, 2153, 3736, 2746, 1591, 2054 DATA 7008, 6290, 5716, 9825, 7353, 7052, 3976, 1231, 2384, 1256 DATA 4349, 4117, 8949, 8615, 8285, 9702, 971, 970, 3919, 6352 DATA 1681, 2258, 2247, 5627, 1951, 9382, 7282, 8520, 9147, 1823 DATA 7534, 3655, 2540, 2074, 6203, 667, 3047, 6952, 4700, 9441 DATA 3814, 5617, 8282, 6663, 1961, 3967, 3593, 6725, 7264, 6033 DATA 8849, 4642, 4894, 7244, 8978, 4815, 9671, 5306, 1538, 4671 DATA 2236, 9871, 2823, 1978, 4769, 3110, 5716, 6236, 3732, 6207 DATA 5959, 7118, 401, 5143, 8962, 3170, 6019, 5857, 982, 3813 DATA 9246, 6613, 5279, 1369, 5637, 6559, 486, 1676, 2051, 2974 DATA 998, 3149, 6559, 7860, 2534, 1012, 9454, 3998, 6728, 8300 DATA 6244, 844, 186, 1815, 1175, 687, 887, 6467, 1609, 7992 DATA 9201, 7769, 6249, 6330, 1575, 8292, 5961, 8849, 4858, 7200 DATA 2292, 2480, 6062, 8812, 1778, 7338, 3145, 8825, 5129, 3953 DATA 6510, 8819, 1865, 1200, 4492, 3154, 9839, 4773, 1473, 5786 DATA 8897, 3142, 473, 1094, 5381, 4648, 2263, 2102, 3310, 7943 DATA 9597, 4628, 5235, 4129, 5751, 9106, 3558, 7923, 19, 5618 DATA 1312, 9461, 2030, 1575, 7634, 159, 7856, 8175, 1749, 8423 DATA 7788, 2447, 3753, 9824, 7457, 5996, 8677, 740, 8545, 5743 DATA 2942, 4026, 7819, 3848, 2203, 5409, 6210, 6060, 7219, 2499 DATA 825, 1048, 5400, 3184, 9631, 9986, 3221, 5690, 8909, 7614 DATA 531, 716, 5113, 1293, 2685, 3498, 5244, 286, 4482, 9347 DATA 591, 6085, 8699, 5981, 9889, 395, 9955, 9181, 1076, 4134 DATA 4665, 8814, 5254, 2565, 8815, 3545, 288, 8473, 9975, 3243 DATA 2780, 9021, 5225, 6952, 1844, 1452, 9865, 835, 5129, 8398 DATA 226, 2382, 6497, 4881, 8115, 8152, 5034, 5997, 4991, 5966 DATA 4009, 8320, 1452, 70, 4803, 5556, 8589, 9730, 9981, 5031 DATA 419, 2238, 5089, 7453, 7327, 6129, 4717, 1268, 1653, 886 DATA 7005, 4728, 8657, 7922, 4670, 1782, 6594, 8272, 6097, 2290 DATA 3471, 5741, 4031, 6697, 3107, 505, 782, 9610, 8260, 7287 DATA 429, 1260, 8231, 1974, 1510, 1473, 5784, 7810, 1072, 7971 DATA 1242, 7976, 284, 8141, 1516, 3388, 6896, 9078, 6717, 5772 DATA 5938, 1524, 7961, 2378, 9999, 366, 6175, 6035, 8821, 8132 DATA 5467, 5634, 4830, 9148, 7296, 2669, 3721, 9885, 270, 188 DATA 2981, 7301, 7024, 9442, 1406, 3172, 6519, 7139, 5062, 2108 DATA 2764, 5071, 8166, 3910, 4366, 8329, 5663, 8073, 719, 4543 DATA 2112, 5505, 3620, 8967, 8323, 310, 8517, 1481, 1492, 8588 DATA 9936, 2870, 6488, 7558, 4389, 1300, 4718, 6846, 7985, 8165 DATA 5521, 5901, 3925, 6032, 613, 7642, 7156, 2801, 1897, 1096 DATA 1140, 239, 1303, 9340, 6061, 7784, 8211, 221, 7165, 9926 DATA 5959, 6829, 5889, 544, 9896, 4857, 4041, 2204, 7497, 3542 DATA 5646, 7184, 236, 5046, 7905, 8274, 8590, 6950, 4735, 5535 DATA 3118, 3835, 8089, 6528, 8615, 8894, 1744, 1621, 9886, 8042 DATA 3034, 9243, 8958, 1497, 3672, 2274, 9518, 1127, 1453, 4386 DATA 9749, 9243, 2421, 3868, 4148, 4837, 5770, 3310, 8761, 7671 DATA 3319, 9442, 6349, 8806, 7216, 6702, 9837, 1723, 571, 3049 DATA 7256, 3819, 8844, 3653, 9981, 9479, 7022, 3275, 4329, 1144 DATA 4433, 4632, 5211, 4793, 1884, 6497, 3594, 6944, 8480, 9517 DATA 3477, 940, 7261, 914, 9351, 518, 5504, 3188, 8516, 3801 DATA 8002, 4268, 1763, 1726, 4589, 5778, 8146, 5894, 7316, 2199 DATA 1354, 2179, 7069, 6392, 9591, 2560, 3838, 485, 8583, 1567 DATA 2725, 4184, 6146, 9966, 351, 9007, 6701, 1178, 2305, 2799 DATA 9831, 3186, 9807, 2478, 2168, 1733, 8984, 6912, 4905, 5791 DATA 867, 654, 3025, 6293, 8081, 948, 2360, 9111, 8296, 668 DATA 9497, 3819, 7631, 5105, 1538, 4935, 1755, 2397, 1928, 5356 DATA 7163, 9294, 2133, 6526, 9580, 4910, 3950, 3518, 4024, 2187 DATA 1935, 4618, 1447, 7959, 7003, 349, 8159, 5797, 2043, 677 DATA 7594, 9449, 172, 3142, 3798, 5974, 7626, 7707, 8008, 9801 DATA 1891, 8522, 2292, 9262, 3297, 2928, 631, 4764, 8100, 1191 DATA 7099, 9353, 1769, 7308, 9422, 6374, 201, 70, 9335, 666 DATA 2278, 5533, 7722, 1764, 9569, 4295, 1334, 2217, 561, 681 DATA 8127, 5696, 1404, 4749, 5829, 392, 8608, 5745, 7388, 2919 DATA 3650, 8052, 2428, 6122, 2127, 5463, 6351, 513, 6722, 1258 DATA 2245, 5750, 7710, 9355, 4824, 1864, 4081, 8218, 6806, 5780 DATA 8079, 9719, 5177, 947, 4197, 6777, 3212, 4823, 7146, 2384 DATA 3954, 8793, 7267, 5599, 9117, 281, 9706, 756, 3576, 6641 DATA 128, 1350, 990, 870, 5335, 6200, 5233, 6929, 6054, 2950 DATA 9254, 5419, 7352, 3808, 7726, 1644, 7265, 3722, 3075, 6826 DATA 5054, 8450, 9679, 7718, 9920, 854, 8913, 4740, 7396, 4160 DATA 4941, 2403, 5553, 2681, 5724, 6269, 238, 3938, 5187, 1880 DATA 2550, 6849, 2576, 6238, 7484, 587, 6020, 8515, 6822, 6963 DATA 7595, 9505, 1924, 7241, 5113, 3516, 3399, 7915, 7222, 4009 DATA 6108, 7839, 2752, 2588, 2213, 913, 7090, 3982, 5360, 2681 DATA 267, 1419, 2457, 6566, 1757, 7459, 7781, 4068, 7748, 392 DATA 7288, 1158, 3817, 5631, 1947, 7376, 5607, 6600, 5726, 4678 DATA 9529, 7998, 4580, 9862, 3666, 3728, 8604, 2022, 1081, 5746 DATA 2248, 753, 4447, 1068, 2668, 2453, 1314, 6783, 139, 7955 DATA 6546, 9446, 5699, 2479, 8847, 7387, 2509, 6467, 6238, 9036 DATA 7941, 5569, 2945, 8900, 7614, 5200, 7886, 8536, 3678, 5881 DATA 2639, 9189, 5915, 7620, 432, 1719, 9636, 7902, 6988, 2911 DATA 2413, 5380, 382, 6280, 3150, 4030, 397, 4901, 4353, 6007 DATA 2497, 1492, 2144, 7964, 3758, 8216, 4985, 2142, 9139, 1538 DATA 4273, 4092, 6605, 6541, 1078, 5900, 9804, 7548, 5015, 6339 DATA 6294, 1100, 6873, 2270, 8858, 389, 2093, 8666, 266, 9800 DATA 647, 3728, 2478, 2041, 2411, 9241, 7329, 6188, 7633, 8055 DATA 6482, 7656, 3436, 2806, 224, 3482, 6427, 5294, 4486, 6804 DATA 7095, 5821, 4825, 8986, 4430, 1688, 1299, 3853, 8646, 3056 DATA 323, 6099, 7731, 2396, 870, 2975, 4227, 948, 3861, 8748