/* * CDDL HEADER START * * The contents of this file are subject to the terms of the * Common Development and Distribution License (the "License"). * You may not use this file except in compliance with the License. * * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE * or http://www.opensolaris.org/os/licensing. * See the License for the specific language governing permissions * and limitations under the License. * * When distributing Covered Code, include this CDDL HEADER in each * file and include the License file at usr/src/OPENSOLARIS.LICENSE. * If applicable, add the following below this CDDL HEADER, with the * fields enclosed by brackets "[]" replaced with your own identifying * information: Portions Copyright [yyyy] [name of copyright owner] * * CDDL HEADER END */ /* * Copyright 2008 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ #include "lint.h" #include /* table of 16 multiples of 2**176 */ const unsigned short __tbl_2_big_digits [] = { 1, /* 2**176 = */ 5136 /* e 0 */, 3647 /* e 4 */, 1951 /* e 8 */, 6171 /* e 12 */, 2397 /* e 16 */, 8943 /* e 20 */, 9196 /* e 24 */, 9668 /* e 28 */, 6473 /* e 32 */, 8053 /* e 36 */, 411 /* e 40 */, 9713 /* e 44 */, 5780 /* e 48 */, 9 /* e 52 */, /* 2**352 = */ 8496 /* e 0 */, 4621 /* e 4 */, 5027 /* e 8 */, 2440 /* e 12 */, 7421 /* e 16 */, 2800 /* e 20 */, 9232 /* e 24 */, 5393 /* e 28 */, 5043 /* e 32 */, 7691 /* e 36 */, 5754 /* e 40 */, 3553 /* e 44 */, 4950 /* e 48 */, 2449 /* e 52 */, 6731 /* e 56 */, 9956 /* e 60 */, 8625 /* e 64 */, 7631 /* e 68 */, 8347 /* e 72 */, 8120 /* e 76 */, 2835 /* e 80 */, 6443 /* e 84 */, 8604 /* e 88 */, 9602 /* e 92 */, 4463 /* e 96 */, 7399 /* e 100 */, 91 /* e 104 */, /* 2**528 = */ 5456 /* e 0 */, 2731 /* e 4 */, 2627 /* e 8 */, 5621 /* e 12 */, 947 /* e 16 */, 4080 /* e 20 */, 3730 /* e 24 */, 6396 /* e 28 */, 6144 /* e 32 */, 8751 /* e 36 */, 4982 /* e 40 */, 1095 /* e 44 */, 7858 /* e 48 */, 9392 /* e 52 */, 370 /* e 56 */, 6183 /* e 60 */, 466 /* e 64 */, 6340 /* e 68 */, 1687 /* e 72 */, 7467 /* e 76 */, 8999 /* e 80 */, 7474 /* e 84 */, 4952 /* e 88 */, 7757 /* e 92 */, 1322 /* e 96 */, 249 /* e 100 */, 924 /* e 104 */, 8343 /* e 108 */, 1841 /* e 112 */, 4877 /* e 116 */, 1810 /* e 120 */, 1833 /* e 124 */, 2824 /* e 128 */, 3302 /* e 132 */, 1768 /* e 136 */, 435 /* e 140 */, 6718 /* e 144 */, 49 /* e 148 */, 6941 /* e 152 */, 878 /* e 156 */, /* 2**704 = */ 2016 /* e 0 */, 7250 /* e 4 */, 277 /* e 8 */, 692 /* e 12 */, 7634 /* e 16 */, 1634 /* e 20 */, 6149 /* e 24 */, 2012 /* e 28 */, 666 /* e 32 */, 3571 /* e 36 */, 5511 /* e 40 */, 7380 /* e 44 */, 3578 /* e 48 */, 9928 /* e 52 */, 935 /* e 56 */, 430 /* e 60 */, 3633 /* e 64 */, 450 /* e 68 */, 1810 /* e 72 */, 4086 /* e 76 */, 29 /* e 80 */, 916 /* e 84 */, 831 /* e 88 */, 4834 /* e 92 */, 8851 /* e 96 */, 169 /* e 100 */, 7275 /* e 104 */, 9631 /* e 108 */, 1521 /* e 112 */, 4414 /* e 116 */, 4580 /* e 120 */, 1866 /* e 124 */, 1538 /* e 128 */, 3293 /* e 132 */, 6875 /* e 136 */, 7144 /* e 140 */, 9099 /* e 144 */, 9444 /* e 148 */, 9724 /* e 152 */, 1751 /* e 156 */, 7078 /* e 160 */, 8451 /* e 164 */, 5436 /* e 168 */, 4880 /* e 172 */, 586 /* e 176 */, 6082 /* e 180 */, 3812 /* e 184 */, 8558 /* e 188 */, 6115 /* e 192 */, 7397 /* e 196 */, 4247 /* e 200 */, 2174 /* e 204 */, 8416 /* e 208 */, /* 2**880 = */ 4176 /* e 0 */, 9387 /* e 4 */, 1096 /* e 8 */, 2997 /* e 12 */, 7592 /* e 16 */, 9403 /* e 20 */, 2053 /* e 24 */, 8081 /* e 28 */, 2903 /* e 32 */, 8078 /* e 36 */, 4437 /* e 40 */, 7637 /* e 44 */, 1340 /* e 48 */, 4806 /* e 52 */, 2654 /* e 56 */, 7647 /* e 60 */, 8714 /* e 64 */, 8256 /* e 68 */, 1192 /* e 72 */, 2008 /* e 76 */, 3864 /* e 80 */, 5732 /* e 84 */, 3919 /* e 88 */, 6625 /* e 92 */, 8324 /* e 96 */, 6829 /* e 100 */, 7280 /* e 104 */, 5477 /* e 108 */, 22 /* e 112 */, 4868 /* e 116 */, 5460 /* e 120 */, 1517 /* e 124 */, 1460 /* e 128 */, 5263 /* e 132 */, 3966 /* e 136 */, 4850 /* e 140 */, 6335 /* e 144 */, 1663 /* e 148 */, 3219 /* e 152 */, 5060 /* e 156 */, 9676 /* e 160 */, 2273 /* e 164 */, 9847 /* e 168 */, 2269 /* e 172 */, 875 /* e 176 */, 1570 /* e 180 */, 4407 /* e 184 */, 867 /* e 188 */, 6765 /* e 192 */, 2595 /* e 196 */, 5923 /* e 200 */, 6978 /* e 204 */, 6176 /* e 208 */, 3425 /* e 212 */, 8627 /* e 216 */, 377 /* e 220 */, 1494 /* e 224 */, 6071 /* e 228 */, 6774 /* e 232 */, 3313 /* e 236 */, 2450 /* e 240 */, 6470 /* e 244 */, 4545 /* e 248 */, 3471 /* e 252 */, 3481 /* e 256 */, 611 /* e 260 */, 8 /* e 264 */, /* 2**1056 = */ 7936 /* e 0 */, 3648 /* e 4 */, 7165 /* e 8 */, 8638 /* e 12 */, 4263 /* e 16 */, 1002 /* e 20 */, 5822 /* e 24 */, 8862 /* e 28 */, 2094 /* e 32 */, 1039 /* e 36 */, 8207 /* e 40 */, 2757 /* e 44 */, 2230 /* e 48 */, 9672 /* e 52 */, 1751 /* e 56 */, 6253 /* e 60 */, 262 /* e 64 */, 8564 /* e 68 */, 8485 /* e 72 */, 8691 /* e 76 */, 3810 /* e 80 */, 8024 /* e 84 */, 6274 /* e 88 */, 7809 /* e 92 */, 3097 /* e 96 */, 3119 /* e 100 */, 7891 /* e 104 */, 234 /* e 108 */, 8558 /* e 112 */, 9086 /* e 116 */, 788 /* e 120 */, 3509 /* e 124 */, 5621 /* e 128 */, 6999 /* e 132 */, 8755 /* e 136 */, 4608 /* e 140 */, 692 /* e 144 */, 3861 /* e 148 */, 4517 /* e 152 */, 749 /* e 156 */, 3084 /* e 160 */, 1697 /* e 164 */, 8514 /* e 168 */, 5770 /* e 172 */, 9255 /* e 176 */, 86 /* e 180 */, 9732 /* e 184 */, 1839 /* e 188 */, 6133 /* e 192 */, 5709 /* e 196 */, 3071 /* e 200 */, 1843 /* e 204 */, 5440 /* e 208 */, 6528 /* e 212 */, 5194 /* e 216 */, 9801 /* e 220 */, 16 /* e 224 */, 4618 /* e 228 */, 5148 /* e 232 */, 935 /* e 236 */, 5197 /* e 240 */, 6009 /* e 244 */, 876 /* e 248 */, 8315 /* e 252 */, 6672 /* e 256 */, 699 /* e 260 */, 8740 /* e 264 */, 2380 /* e 268 */, 2882 /* e 272 */, 2432 /* e 276 */, 6666 /* e 280 */, 1901 /* e 284 */, 1524 /* e 288 */, 9194 /* e 292 */, 6517 /* e 296 */, 6428 /* e 300 */, 4773 /* e 304 */, 3222 /* e 308 */, 2103 /* e 312 */, 77 /* e 316 */, /* 2**1232 = */ 9296 /* e 0 */, 2795 /* e 4 */, 1600 /* e 8 */, 2386 /* e 12 */, 3528 /* e 16 */, 8182 /* e 20 */, 2470 /* e 24 */, 5875 /* e 28 */, 1547 /* e 32 */, 4693 /* e 36 */, 6515 /* e 40 */, 5634 /* e 44 */, 1849 /* e 48 */, 5578 /* e 52 */, 4522 /* e 56 */, 1873 /* e 60 */, 1222 /* e 64 */, 2745 /* e 68 */, 4829 /* e 72 */, 9152 /* e 76 */, 581 /* e 80 */, 7585 /* e 84 */, 4856 /* e 88 */, 1529 /* e 92 */, 275 /* e 96 */, 5613 /* e 100 */, 6671 /* e 104 */, 7350 /* e 108 */, 2713 /* e 112 */, 7784 /* e 116 */, 1975 /* e 120 */, 62 /* e 124 */, 9984 /* e 128 */, 3163 /* e 132 */, 1691 /* e 136 */, 2322 /* e 140 */, 7802 /* e 144 */, 4829 /* e 148 */, 9958 /* e 152 */, 9338 /* e 156 */, 7301 /* e 160 */, 5809 /* e 164 */, 3804 /* e 168 */, 9550 /* e 172 */, 9652 /* e 176 */, 2300 /* e 180 */, 298 /* e 184 */, 9317 /* e 188 */, 5873 /* e 192 */, 4379 /* e 196 */, 3609 /* e 200 */, 7666 /* e 204 */, 4052 /* e 208 */, 2353 /* e 212 */, 236 /* e 216 */, 2071 /* e 220 */, 8031 /* e 224 */, 4256 /* e 228 */, 4023 /* e 232 */, 5954 /* e 236 */, 4832 /* e 240 */, 522 /* e 244 */, 2802 /* e 248 */, 8998 /* e 252 */, 6773 /* e 256 */, 9397 /* e 260 */, 911 /* e 264 */, 4661 /* e 268 */, 5125 /* e 272 */, 2094 /* e 276 */, 5931 /* e 280 */, 2634 /* e 284 */, 1065 /* e 288 */, 5973 /* e 292 */, 6990 /* e 296 */, 4337 /* e 300 */, 6266 /* e 304 */, 517 /* e 308 */, 9889 /* e 312 */, 4805 /* e 316 */, 8432 /* e 320 */, 1783 /* e 324 */, 8492 /* e 328 */, 6965 /* e 332 */, 5897 /* e 336 */, 2902 /* e 340 */, 1739 /* e 344 */, 5011 /* e 348 */, 5726 /* e 352 */, 246 /* e 356 */, 6152 /* e 360 */, 5280 /* e 364 */, 739 /* e 368 */, /* 2**1408 = */ 4256 /* e 0 */, 2406 /* e 4 */, 2287 /* e 8 */, 2012 /* e 12 */, 1698 /* e 16 */, 8745 /* e 20 */, 5634 /* e 24 */, 8896 /* e 28 */, 6144 /* e 32 */, 7629 /* e 36 */, 2175 /* e 40 */, 7257 /* e 44 */, 2098 /* e 48 */, 6932 /* e 52 */, 1148 /* e 56 */, 4053 /* e 60 */, 6185 /* e 64 */, 493 /* e 68 */, 6764 /* e 72 */, 5779 /* e 76 */, 1562 /* e 80 */, 2570 /* e 84 */, 6310 /* e 88 */, 5822 /* e 92 */, 8505 /* e 96 */, 5785 /* e 100 */, 9564 /* e 104 */, 4293 /* e 108 */, 3651 /* e 112 */, 4242 /* e 116 */, 4129 /* e 120 */, 5838 /* e 124 */, 93 /* e 128 */, 9185 /* e 132 */, 6796 /* e 136 */, 8783 /* e 140 */, 7924 /* e 144 */, 2095 /* e 148 */, 7676 /* e 152 */, 5622 /* e 156 */, 7182 /* e 160 */, 7341 /* e 164 */, 3876 /* e 168 */, 5916 /* e 172 */, 5737 /* e 176 */, 4561 /* e 180 */, 7348 /* e 184 */, 7948 /* e 188 */, 6153 /* e 192 */, 3750 /* e 196 */, 6974 /* e 200 */, 3504 /* e 204 */, 8556 /* e 208 */, 4032 /* e 212 */, 7520 /* e 216 */, 9842 /* e 220 */, 7934 /* e 224 */, 6339 /* e 228 */, 6110 /* e 232 */, 1588 /* e 236 */, 9814 /* e 240 */, 5994 /* e 244 */, 2368 /* e 248 */, 4995 /* e 252 */, 335 /* e 256 */, 7949 /* e 260 */, 5083 /* e 264 */, 8529 /* e 268 */, 4518 /* e 272 */, 7326 /* e 276 */, 2521 /* e 280 */, 4445 /* e 284 */, 2523 /* e 288 */, 1548 /* e 292 */, 6996 /* e 296 */, 178 /* e 300 */, 1923 /* e 304 */, 4958 /* e 308 */, 8234 /* e 312 */, 2576 /* e 316 */, 1387 /* e 320 */, 494 /* e 324 */, 7654 /* e 328 */, 2799 /* e 332 */, 3077 /* e 336 */, 3775 /* e 340 */, 6720 /* e 344 */, 9487 /* e 348 */, 2144 /* e 352 */, 1330 /* e 356 */, 5252 /* e 360 */, 7293 /* e 364 */, 442 /* e 368 */, 2024 /* e 372 */, 7275 /* e 376 */, 420 /* e 380 */, 7237 /* e 384 */, 7033 /* e 388 */, 8399 /* e 392 */, 7199 /* e 396 */, 193 /* e 400 */, 7575 /* e 404 */, 6078 /* e 408 */, 390 /* e 412 */, 2716 /* e 416 */, 7083 /* e 420 */, /* 2**1584 = */ 8816 /* e 0 */, 1033 /* e 4 */, 6958 /* e 8 */, 5085 /* e 12 */, 4650 /* e 16 */, 8562 /* e 20 */, 6359 /* e 24 */, 9166 /* e 28 */, 9828 /* e 32 */, 3162 /* e 36 */, 8499 /* e 40 */, 1979 /* e 44 */, 1550 /* e 48 */, 9583 /* e 52 */, 1730 /* e 56 */, 1447 /* e 60 */, 4468 /* e 64 */, 9351 /* e 68 */, 1864 /* e 72 */, 4578 /* e 76 */, 9711 /* e 80 */, 7045 /* e 84 */, 9255 /* e 88 */, 6775 /* e 92 */, 7678 /* e 96 */, 2479 /* e 100 */, 9236 /* e 104 */, 5352 /* e 108 */, 6804 /* e 112 */, 6163 /* e 116 */, 6886 /* e 120 */, 665 /* e 124 */, 3720 /* e 128 */, 1639 /* e 132 */, 746 /* e 136 */, 362 /* e 140 */, 2966 /* e 144 */, 3596 /* e 148 */, 821 /* e 152 */, 7819 /* e 156 */, 8508 /* e 160 */, 5521 /* e 164 */, 4329 /* e 168 */, 8602 /* e 172 */, 1845 /* e 176 */, 5625 /* e 180 */, 459 /* e 184 */, 6744 /* e 188 */, 3755 /* e 192 */, 3198 /* e 196 */, 7799 /* e 200 */, 4293 /* e 204 */, 6343 /* e 208 */, 7363 /* e 212 */, 72 /* e 216 */, 1693 /* e 220 */, 7023 /* e 224 */, 9600 /* e 228 */, 5305 /* e 232 */, 978 /* e 236 */, 316 /* e 240 */, 6262 /* e 244 */, 2958 /* e 248 */, 3869 /* e 252 */, 1019 /* e 256 */, 2480 /* e 260 */, 7657 /* e 264 */, 5154 /* e 268 */, 8446 /* e 272 */, 1970 /* e 276 */, 6185 /* e 280 */, 4384 /* e 284 */, 7814 /* e 288 */, 4661 /* e 292 */, 9387 /* e 296 */, 5894 /* e 300 */, 7890 /* e 304 */, 4818 /* e 308 */, 890 /* e 312 */, 6227 /* e 316 */, 3731 /* e 320 */, 5449 /* e 324 */, 1988 /* e 328 */, 3319 /* e 332 */, 3924 /* e 336 */, 5720 /* e 340 */, 9314 /* e 344 */, 4840 /* e 348 */, 6220 /* e 352 */, 8564 /* e 356 */, 406 /* e 360 */, 3577 /* e 364 */, 1638 /* e 368 */, 4744 /* e 372 */, 3764 /* e 376 */, 2639 /* e 380 */, 6477 /* e 384 */, 1838 /* e 388 */, 5841 /* e 392 */, 4964 /* e 396 */, 9408 /* e 400 */, 6112 /* e 404 */, 6153 /* e 408 */, 2640 /* e 412 */, 5212 /* e 416 */, 6099 /* e 420 */, 3138 /* e 424 */, 3009 /* e 428 */, 331 /* e 432 */, 2605 /* e 436 */, 5170 /* e 440 */, 9012 /* e 444 */, 3102 /* e 448 */, 7995 /* e 452 */, 9831 /* e 456 */, 238 /* e 460 */, 2330 /* e 464 */, 2634 /* e 468 */, 7844 /* e 472 */, 6 /* e 476 */, /* 2**1760 = */ 8976 /* e 0 */, 1967 /* e 4 */, 7401 /* e 8 */, 6975 /* e 12 */, 9839 /* e 16 */, 7575 /* e 20 */, 5015 /* e 24 */, 5290 /* e 28 */, 5989 /* e 32 */, 2211 /* e 36 */, 3726 /* e 40 */, 8955 /* e 44 */, 3754 /* e 48 */, 4611 /* e 52 */, 7975 /* e 56 */, 5400 /* e 60 */, 366 /* e 64 */, 1794 /* e 68 */, 8788 /* e 72 */, 4630 /* e 76 */, 8080 /* e 80 */, 7081 /* e 84 */, 3134 /* e 88 */, 1495 /* e 92 */, 5831 /* e 96 */, 3023 /* e 100 */, 5850 /* e 104 */, 6840 /* e 108 */, 7968 /* e 112 */, 5490 /* e 116 */, 1966 /* e 120 */, 1460 /* e 124 */, 4139 /* e 128 */, 8406 /* e 132 */, 179 /* e 136 */, 5250 /* e 140 */, 5092 /* e 144 */, 6629 /* e 148 */, 993 /* e 152 */, 1867 /* e 156 */, 8709 /* e 160 */, 4496 /* e 164 */, 324 /* e 168 */, 6753 /* e 172 */, 2338 /* e 176 */, 8582 /* e 180 */, 4832 /* e 184 */, 4066 /* e 188 */, 9970 /* e 192 */, 3533 /* e 196 */, 3396 /* e 200 */, 9989 /* e 204 */, 5653 /* e 208 */, 3629 /* e 212 */, 1303 /* e 216 */, 2824 /* e 220 */, 280 /* e 224 */, 7208 /* e 228 */, 5609 /* e 232 */, 73 /* e 236 */, 4308 /* e 240 */, 8383 /* e 244 */, 536 /* e 248 */, 8482 /* e 252 */, 5357 /* e 256 */, 9868 /* e 260 */, 6577 /* e 264 */, 6642 /* e 268 */, 7900 /* e 272 */, 7650 /* e 276 */, 9230 /* e 280 */, 1954 /* e 284 */, 6999 /* e 288 */, 7837 /* e 292 */, 6889 /* e 296 */, 1878 /* e 300 */, 2622 /* e 304 */, 299 /* e 308 */, 2946 /* e 312 */, 1724 /* e 316 */, 3683 /* e 320 */, 7264 /* e 324 */, 1942 /* e 328 */, 513 /* e 332 */, 1476 /* e 336 */, 225 /* e 340 */, 2727 /* e 344 */, 8296 /* e 348 */, 1062 /* e 352 */, 1322 /* e 356 */, 434 /* e 360 */, 5231 /* e 364 */, 4226 /* e 368 */, 944 /* e 372 */, 5665 /* e 376 */, 214 /* e 380 */, 6781 /* e 384 */, 1024 /* e 388 */, 1051 /* e 392 */, 3188 /* e 396 */, 9305 /* e 400 */, 4881 /* e 404 */, 6090 /* e 408 */, 980 /* e 412 */, 2572 /* e 416 */, 9937 /* e 420 */, 1979 /* e 424 */, 8274 /* e 428 */, 289 /* e 432 */, 4511 /* e 436 */, 900 /* e 440 */, 9132 /* e 444 */, 1018 /* e 448 */, 3470 /* e 452 */, 4731 /* e 456 */, 6667 /* e 460 */, 1030 /* e 464 */, 9134 /* e 468 */, 9123 /* e 472 */, 7994 /* e 476 */, 1484 /* e 480 */, 7641 /* e 484 */, 8795 /* e 488 */, 4444 /* e 492 */, 6262 /* e 496 */, 1117 /* e 500 */, 3636 /* e 504 */, 7776 /* e 508 */, 4625 /* e 512 */, 961 /* e 516 */, 9448 /* e 520 */, 9818 /* e 524 */, 64 /* e 528 */, /* 2**1936 = */ 736 /* e 0 */, 2594 /* e 4 */, 1645 /* e 8 */, 9830 /* e 12 */, 6313 /* e 16 */, 7503 /* e 20 */, 7959 /* e 24 */, 2508 /* e 28 */, 2307 /* e 32 */, 8248 /* e 36 */, 3501 /* e 40 */, 5230 /* e 44 */, 7757 /* e 48 */, 2443 /* e 52 */, 9926 /* e 56 */, 7924 /* e 60 */, 504 /* e 64 */, 6233 /* e 68 */, 7092 /* e 72 */, 457 /* e 76 */, 2744 /* e 80 */, 7080 /* e 84 */, 9126 /* e 88 */, 5847 /* e 92 */, 844 /* e 96 */, 2794 /* e 100 */, 5617 /* e 104 */, 9346 /* e 108 */, 2729 /* e 112 */, 1702 /* e 116 */, 1691 /* e 120 */, 132 /* e 124 */, 9617 /* e 128 */, 4819 /* e 132 */, 1863 /* e 136 */, 8464 /* e 140 */, 6916 /* e 144 */, 9300 /* e 148 */, 1606 /* e 152 */, 4962 /* e 156 */, 6326 /* e 160 */, 1203 /* e 164 */, 8610 /* e 168 */, 3712 /* e 172 */, 3275 /* e 176 */, 474 /* e 180 */, 1713 /* e 184 */, 1858 /* e 188 */, 9086 /* e 192 */, 560 /* e 196 */, 9858 /* e 200 */, 597 /* e 204 */, 4042 /* e 208 */, 8796 /* e 212 */, 9489 /* e 216 */, 423 /* e 220 */, 6587 /* e 224 */, 3729 /* e 228 */, 8841 /* e 232 */, 9337 /* e 236 */, 3557 /* e 240 */, 1998 /* e 244 */, 8042 /* e 248 */, 5889 /* e 252 */, 8496 /* e 256 */, 3764 /* e 260 */, 8502 /* e 264 */, 1003 /* e 268 */, 2253 /* e 272 */, 2705 /* e 276 */, 5565 /* e 280 */, 9322 /* e 284 */, 250 /* e 288 */, 5262 /* e 292 */, 9432 /* e 296 */, 4647 /* e 300 */, 7117 /* e 304 */, 1678 /* e 308 */, 3101 /* e 312 */, 4753 /* e 316 */, 9941 /* e 320 */, 3305 /* e 324 */, 4310 /* e 328 */, 6531 /* e 332 */, 9913 /* e 336 */, 568 /* e 340 */, 5219 /* e 344 */, 7930 /* e 348 */, 7448 /* e 352 */, 2233 /* e 356 */, 4632 /* e 360 */, 2848 /* e 364 */, 5102 /* e 368 */, 6675 /* e 372 */, 4088 /* e 376 */, 7492 /* e 380 */, 522 /* e 384 */, 3428 /* e 388 */, 5159 /* e 392 */, 6760 /* e 396 */, 4734 /* e 400 */, 6017 /* e 404 */, 2513 /* e 408 */, 9549 /* e 412 */, 3481 /* e 416 */, 5450 /* e 420 */, 1592 /* e 424 */, 652 /* e 428 */, 9951 /* e 432 */, 9352 /* e 436 */, 3508 /* e 440 */, 6226 /* e 444 */, 5357 /* e 448 */, 6998 /* e 452 */, 8378 /* e 456 */, 8583 /* e 460 */, 6506 /* e 464 */, 7954 /* e 468 */, 7572 /* e 472 */, 9103 /* e 476 */, 8339 /* e 480 */, 3193 /* e 484 */, 5917 /* e 488 */, 2883 /* e 492 */, 3893 /* e 496 */, 2760 /* e 500 */, 4911 /* e 504 */, 5776 /* e 508 */, 2294 /* e 512 */, 4081 /* e 516 */, 347 /* e 520 */, 8562 /* e 524 */, 3810 /* e 528 */, 1472 /* e 532 */, 7555 /* e 536 */, 21 /* e 540 */, 9331 /* e 544 */, 5173 /* e 548 */, 7173 /* e 552 */, 7298 /* e 556 */, 1488 /* e 560 */, 7171 /* e 564 */, 6819 /* e 568 */, 9705 /* e 572 */, 4028 /* e 576 */, 622 /* e 580 */, /* 2**2112 = */ 96 /* e 0 */, 7354 /* e 4 */, 6574 /* e 8 */, 879 /* e 12 */, 1348 /* e 16 */, 7336 /* e 20 */, 8290 /* e 24 */, 4767 /* e 28 */, 3217 /* e 32 */, 6899 /* e 36 */, 8146 /* e 40 */, 4051 /* e 44 */, 8478 /* e 48 */, 6083 /* e 52 */, 3968 /* e 56 */, 8630 /* e 60 */, 3876 /* e 64 */, 716 /* e 68 */, 4149 /* e 72 */, 1734 /* e 76 */, 3172 /* e 80 */, 1868 /* e 84 */, 6600 /* e 88 */, 3707 /* e 92 */, 8497 /* e 96 */, 61 /* e 100 */, 4534 /* e 104 */, 859 /* e 108 */, 6969 /* e 112 */, 2039 /* e 116 */, 3936 /* e 120 */, 6185 /* e 124 */, 5589 /* e 128 */, 3076 /* e 132 */, 7259 /* e 136 */, 7710 /* e 140 */, 7697 /* e 144 */, 3782 /* e 148 */, 1153 /* e 152 */, 4762 /* e 156 */, 8117 /* e 160 */, 5831 /* e 164 */, 6790 /* e 168 */, 1275 /* e 172 */, 1248 /* e 176 */, 8517 /* e 180 */, 5472 /* e 184 */, 8342 /* e 188 */, 8506 /* e 192 */, 5573 /* e 196 */, 455 /* e 200 */, 1147 /* e 204 */, 4103 /* e 208 */, 9109 /* e 212 */, 8908 /* e 216 */, 9227 /* e 220 */, 3711 /* e 224 */, 2973 /* e 228 */, 1176 /* e 232 */, 1621 /* e 236 */, 1616 /* e 240 */, 3098 /* e 244 */, 8212 /* e 248 */, 4664 /* e 252 */, 1742 /* e 256 */, 7560 /* e 260 */, 8222 /* e 264 */, 8218 /* e 268 */, 4391 /* e 272 */, 9973 /* e 276 */, 4051 /* e 280 */, 9146 /* e 284 */, 7760 /* e 288 */, 8804 /* e 292 */, 8527 /* e 296 */, 1312 /* e 300 */, 696 /* e 304 */, 6547 /* e 308 */, 7813 /* e 312 */, 8818 /* e 316 */, 303 /* e 320 */, 4040 /* e 324 */, 4619 /* e 328 */, 1287 /* e 332 */, 6436 /* e 336 */, 2357 /* e 340 */, 1999 /* e 344 */, 5321 /* e 348 */, 7267 /* e 352 */, 5164 /* e 356 */, 8458 /* e 360 */, 495 /* e 364 */, 4323 /* e 368 */, 8528 /* e 372 */, 1421 /* e 376 */, 1658 /* e 380 */, 848 /* e 384 */, 5833 /* e 388 */, 9820 /* e 392 */, 8269 /* e 396 */, 518 /* e 400 */, 3462 /* e 404 */, 2254 /* e 408 */, 5442 /* e 412 */, 9984 /* e 416 */, 2485 /* e 420 */, 2299 /* e 424 */, 6826 /* e 428 */, 1542 /* e 432 */, 8068 /* e 436 */, 5236 /* e 440 */, 9285 /* e 444 */, 8388 /* e 448 */, 3718 /* e 452 */, 7955 /* e 456 */, 5563 /* e 460 */, 7186 /* e 464 */, 6884 /* e 468 */, 8221 /* e 472 */, 3647 /* e 476 */, 3960 /* e 480 */, 358 /* e 484 */, 4647 /* e 488 */, 3566 /* e 492 */, 4944 /* e 496 */, 9433 /* e 500 */, 5631 /* e 504 */, 4602 /* e 508 */, 1539 /* e 512 */, 5057 /* e 516 */, 9315 /* e 520 */, 317 /* e 524 */, 5323 /* e 528 */, 821 /* e 532 */, 2955 /* e 536 */, 1977 /* e 540 */, 6755 /* e 544 */, 7225 /* e 548 */, 8197 /* e 552 */, 1858 /* e 556 */, 7650 /* e 560 */, 3365 /* e 564 */, 3385 /* e 568 */, 1270 /* e 572 */, 2993 /* e 576 */, 6279 /* e 580 */, 5530 /* e 584 */, 4674 /* e 588 */, 347 /* e 592 */, 2892 /* e 596 */, 8341 /* e 600 */, 8845 /* e 604 */, 4166 /* e 608 */, 6302 /* e 612 */, 2314 /* e 616 */, 9919 /* e 620 */, 225 /* e 624 */, 4354 /* e 628 */, 5961 /* e 632 */, /* 2**2288 = */ 3056 /* e 0 */, 305 /* e 4 */, 5210 /* e 8 */, 6069 /* e 12 */, 904 /* e 16 */, 9858 /* e 20 */, 3941 /* e 24 */, 7723 /* e 28 */, 9125 /* e 32 */, 3335 /* e 36 */, 3841 /* e 40 */, 964 /* e 44 */, 6935 /* e 48 */, 8974 /* e 52 */, 7366 /* e 56 */, 9992 /* e 60 */, 5813 /* e 64 */, 6635 /* e 68 */, 7734 /* e 72 */, 8357 /* e 76 */, 3112 /* e 80 */, 2437 /* e 84 */, 8477 /* e 88 */, 3727 /* e 92 */, 6834 /* e 96 */, 3664 /* e 100 */, 8958 /* e 104 */, 9125 /* e 108 */, 9388 /* e 112 */, 2293 /* e 116 */, 890 /* e 120 */, 720 /* e 124 */, 8271 /* e 128 */, 5123 /* e 132 */, 9938 /* e 136 */, 574 /* e 140 */, 1003 /* e 144 */, 2473 /* e 148 */, 1503 /* e 152 */, 6588 /* e 156 */, 2833 /* e 160 */, 8773 /* e 164 */, 9926 /* e 168 */, 9973 /* e 172 */, 4799 /* e 176 */, 3729 /* e 180 */, 210 /* e 184 */, 834 /* e 188 */, 3733 /* e 192 */, 4090 /* e 196 */, 4693 /* e 200 */, 3441 /* e 204 */, 1448 /* e 208 */, 543 /* e 212 */, 5177 /* e 216 */, 5073 /* e 220 */, 3603 /* e 224 */, 2974 /* e 228 */, 6869 /* e 232 */, 4376 /* e 236 */, 2335 /* e 240 */, 9243 /* e 244 */, 1383 /* e 248 */, 9244 /* e 252 */, 5333 /* e 256 */, 5912 /* e 260 */, 7477 /* e 264 */, 2503 /* e 268 */, 2545 /* e 272 */, 7532 /* e 276 */, 8479 /* e 280 */, 728 /* e 284 */, 3392 /* e 288 */, 9606 /* e 292 */, 4674 /* e 296 */, 8217 /* e 300 */, 9467 /* e 304 */, 1894 /* e 308 */, 1834 /* e 312 */, 2868 /* e 316 */, 4160 /* e 320 */, 4918 /* e 324 */, 1788 /* e 328 */, 6242 /* e 332 */, 5634 /* e 336 */, 8561 /* e 340 */, 4974 /* e 344 */, 176 /* e 348 */, 5442 /* e 352 */, 4292 /* e 356 */, 4509 /* e 360 */, 7399 /* e 364 */, 6251 /* e 368 */, 1546 /* e 372 */, 4804 /* e 376 */, 8796 /* e 380 */, 8457 /* e 384 */, 9101 /* e 388 */, 7589 /* e 392 */, 392 /* e 396 */, 3120 /* e 400 */, 9567 /* e 404 */, 9333 /* e 408 */, 9170 /* e 412 */, 3322 /* e 416 */, 8672 /* e 420 */, 977 /* e 424 */, 7605 /* e 428 */, 7135 /* e 432 */, 410 /* e 436 */, 9454 /* e 440 */, 9342 /* e 444 */, 1631 /* e 448 */, 1444 /* e 452 */, 5836 /* e 456 */, 2004 /* e 460 */, 9046 /* e 464 */, 7719 /* e 468 */, 3888 /* e 472 */, 7540 /* e 476 */, 8995 /* e 480 */, 3712 /* e 484 */, 9832 /* e 488 */, 2255 /* e 492 */, 8858 /* e 496 */, 2559 /* e 500 */, 7417 /* e 504 */, 1296 /* e 508 */, 9972 /* e 512 */, 4079 /* e 516 */, 4930 /* e 520 */, 5367 /* e 524 */, 6352 /* e 528 */, 2509 /* e 532 */, 268 /* e 536 */, 7675 /* e 540 */, 3564 /* e 544 */, 6932 /* e 548 */, 958 /* e 552 */, 2879 /* e 556 */, 1143 /* e 560 */, 6657 /* e 564 */, 3790 /* e 568 */, 9125 /* e 572 */, 9183 /* e 576 */, 1547 /* e 580 */, 3476 /* e 584 */, 595 /* e 588 */, 3251 /* e 592 */, 7944 /* e 596 */, 6405 /* e 600 */, 9124 /* e 604 */, 205 /* e 608 */, 1481 /* e 612 */, 9978 /* e 616 */, 3157 /* e 620 */, 6155 /* e 624 */, 3487 /* e 628 */, 3423 /* e 632 */, 6067 /* e 636 */, 4884 /* e 640 */, 7049 /* e 644 */, 5434 /* e 648 */, 3166 /* e 652 */, 4690 /* e 656 */, 8419 /* e 660 */, 741 /* e 664 */, 9851 /* e 668 */, 1078 /* e 672 */, 1952 /* e 676 */, 2073 /* e 680 */, 7099 /* e 684 */, 5 /* e 688 */, /* 2**2464 = */ 5616 /* e 0 */, 3281 /* e 4 */, 4422 /* e 8 */, 8268 /* e 12 */, 5646 /* e 16 */, 4613 /* e 20 */, 164 /* e 24 */, 4182 /* e 28 */, 4968 /* e 32 */, 1119 /* e 36 */, 8517 /* e 40 */, 5615 /* e 44 */, 3242 /* e 48 */, 4111 /* e 52 */, 5252 /* e 56 */, 758 /* e 60 */, 6942 /* e 64 */, 4286 /* e 68 */, 1915 /* e 72 */, 5700 /* e 76 */, 5398 /* e 80 */, 6087 /* e 84 */, 3722 /* e 88 */, 8981 /* e 92 */, 407 /* e 96 */, 100 /* e 100 */, 2359 /* e 104 */, 2560 /* e 108 */, 6659 /* e 112 */, 5259 /* e 116 */, 3448 /* e 120 */, 5940 /* e 124 */, 2947 /* e 128 */, 9905 /* e 132 */, 6622 /* e 136 */, 6090 /* e 140 */, 6201 /* e 144 */, 5369 /* e 148 */, 9480 /* e 152 */, 1557 /* e 156 */, 7699 /* e 160 */, 5200 /* e 164 */, 1904 /* e 168 */, 8177 /* e 172 */, 8066 /* e 176 */, 2469 /* e 180 */, 7239 /* e 184 */, 9213 /* e 188 */, 9080 /* e 192 */, 9161 /* e 196 */, 3563 /* e 200 */, 7595 /* e 204 */, 9957 /* e 208 */, 1623 /* e 212 */, 8034 /* e 216 */, 1555 /* e 220 */, 3246 /* e 224 */, 7668 /* e 228 */, 43 /* e 232 */, 3954 /* e 236 */, 5553 /* e 240 */, 250 /* e 244 */, 8912 /* e 248 */, 1204 /* e 252 */, 1648 /* e 256 */, 1771 /* e 260 */, 5848 /* e 264 */, 9047 /* e 268 */, 4419 /* e 272 */, 2989 /* e 276 */, 7062 /* e 280 */, 9011 /* e 284 */, 9698 /* e 288 */, 8620 /* e 292 */, 8758 /* e 296 */, 354 /* e 300 */, 1031 /* e 304 */, 4014 /* e 308 */, 3735 /* e 312 */, 5166 /* e 316 */, 4272 /* e 320 */, 7362 /* e 324 */, 138 /* e 328 */, 4037 /* e 332 */, 6471 /* e 336 */, 1385 /* e 340 */, 6506 /* e 344 */, 8351 /* e 348 */, 5912 /* e 352 */, 6462 /* e 356 */, 186 /* e 360 */, 1092 /* e 364 */, 7932 /* e 368 */, 2424 /* e 372 */, 8710 /* e 376 */, 7183 /* e 380 */, 256 /* e 384 */, 496 /* e 388 */, 6640 /* e 392 */, 756 /* e 396 */, 3158 /* e 400 */, 2760 /* e 404 */, 1688 /* e 408 */, 7506 /* e 412 */, 2406 /* e 416 */, 9956 /* e 420 */, 5192 /* e 424 */, 6362 /* e 428 */, 2663 /* e 432 */, 8431 /* e 436 */, 2566 /* e 440 */, 6920 /* e 444 */, 1755 /* e 448 */, 524 /* e 452 */, 8805 /* e 456 */, 558 /* e 460 */, 4995 /* e 464 */, 4690 /* e 468 */, 621 /* e 472 */, 6107 /* e 476 */, 867 /* e 480 */, 3888 /* e 484 */, 6143 /* e 488 */, 542 /* e 492 */, 3829 /* e 496 */, 9721 /* e 500 */, 7923 /* e 504 */, 5370 /* e 508 */, 6487 /* e 512 */, 5210 /* e 516 */, 2006 /* e 520 */, 2847 /* e 524 */, 1330 /* e 528 */, 6076 /* e 532 */, 7458 /* e 536 */, 8879 /* e 540 */, 9518 /* e 544 */, 5640 /* e 548 */, 445 /* e 552 */, 3992 /* e 556 */, 4856 /* e 560 */, 2366 /* e 564 */, 8935 /* e 568 */, 7479 /* e 572 */, 5893 /* e 576 */, 9027 /* e 580 */, 6510 /* e 584 */, 9341 /* e 588 */, 2197 /* e 592 */, 3372 /* e 596 */, 9531 /* e 600 */, 2218 /* e 604 */, 3018 /* e 608 */, 4270 /* e 612 */, 8189 /* e 616 */, 1483 /* e 620 */, 3535 /* e 624 */, 2734 /* e 628 */, 6923 /* e 632 */, 4855 /* e 636 */, 5885 /* e 640 */, 1717 /* e 644 */, 9352 /* e 648 */, 2877 /* e 652 */, 4563 /* e 656 */, 8281 /* e 660 */, 1520 /* e 664 */, 345 /* e 668 */, 2221 /* e 672 */, 3224 /* e 676 */, 9537 /* e 680 */, 2475 /* e 684 */, 858 /* e 688 */, 5327 /* e 692 */, 4356 /* e 696 */, 4871 /* e 700 */, 6683 /* e 704 */, 5134 /* e 708 */, 8335 /* e 712 */, 2202 /* e 716 */, 4983 /* e 720 */, 3599 /* e 724 */, 7589 /* e 728 */, 7537 /* e 732 */, 6901 /* e 736 */, 54 /* e 740 */, /* 2**2640 = */ 3776 /* e 0 */, 5652 /* e 4 */, 7748 /* e 8 */, 3612 /* e 12 */, 7142 /* e 16 */, 954 /* e 20 */, 3922 /* e 24 */, 7325 /* e 28 */, 7139 /* e 32 */, 708 /* e 36 */, 8463 /* e 40 */, 5667 /* e 44 */, 5049 /* e 48 */, 8715 /* e 52 */, 938 /* e 56 */, 1460 /* e 60 */, 1490 /* e 64 */, 7229 /* e 68 */, 6945 /* e 72 */, 3568 /* e 76 */, 1804 /* e 80 */, 4454 /* e 84 */, 4803 /* e 88 */, 4147 /* e 92 */, 3317 /* e 96 */, 8229 /* e 100 */, 5250 /* e 104 */, 3079 /* e 108 */, 9002 /* e 112 */, 9171 /* e 116 */, 1140 /* e 120 */, 6535 /* e 124 */, 8448 /* e 128 */, 1897 /* e 132 */, 3783 /* e 136 */, 7651 /* e 140 */, 6796 /* e 144 */, 113 /* e 148 */, 4449 /* e 152 */, 3852 /* e 156 */, 6009 /* e 160 */, 8462 /* e 164 */, 1657 /* e 168 */, 4141 /* e 172 */, 1023 /* e 176 */, 6231 /* e 180 */, 3823 /* e 184 */, 4851 /* e 188 */, 1326 /* e 192 */, 7946 /* e 196 */, 4300 /* e 200 */, 6554 /* e 204 */, 564 /* e 208 */, 6790 /* e 212 */, 3235 /* e 216 */, 1856 /* e 220 */, 1008 /* e 224 */, 8655 /* e 228 */, 332 /* e 232 */, 8941 /* e 236 */, 3660 /* e 240 */, 4755 /* e 244 */, 8061 /* e 248 */, 454 /* e 252 */, 5885 /* e 256 */, 2931 /* e 260 */, 9805 /* e 264 */, 8655 /* e 268 */, 5994 /* e 272 */, 6039 /* e 276 */, 7891 /* e 280 */, 2375 /* e 284 */, 8132 /* e 288 */, 110 /* e 292 */, 3079 /* e 296 */, 400 /* e 300 */, 9106 /* e 304 */, 9833 /* e 308 */, 6955 /* e 312 */, 2432 /* e 316 */, 3078 /* e 320 */, 9988 /* e 324 */, 9644 /* e 328 */, 3201 /* e 332 */, 5368 /* e 336 */, 4330 /* e 340 */, 9706 /* e 344 */, 6786 /* e 348 */, 9449 /* e 352 */, 9967 /* e 356 */, 1001 /* e 360 */, 6177 /* e 364 */, 4855 /* e 368 */, 453 /* e 372 */, 6225 /* e 376 */, 61 /* e 380 */, 4570 /* e 384 */, 8610 /* e 388 */, 8633 /* e 392 */, 6197 /* e 396 */, 5926 /* e 400 */, 6459 /* e 404 */, 7352 /* e 408 */, 1273 /* e 412 */, 827 /* e 416 */, 8965 /* e 420 */, 2177 /* e 424 */, 8861 /* e 428 */, 5891 /* e 432 */, 8814 /* e 436 */, 8816 /* e 440 */, 3662 /* e 444 */, 525 /* e 448 */, 7455 /* e 452 */, 7387 /* e 456 */, 1987 /* e 460 */, 7557 /* e 464 */, 5394 /* e 468 */, 7309 /* e 472 */, 449 /* e 476 */, 636 /* e 480 */, 8219 /* e 484 */, 2842 /* e 488 */, 9327 /* e 492 */, 6007 /* e 496 */, 6267 /* e 500 */, 3506 /* e 504 */, 2558 /* e 508 */, 9977 /* e 512 */, 5567 /* e 516 */, 4846 /* e 520 */, 1149 /* e 524 */, 7334 /* e 528 */, 9021 /* e 532 */, 1303 /* e 536 */, 4912 /* e 540 */, 2910 /* e 544 */, 1552 /* e 548 */, 6906 /* e 552 */, 7022 /* e 556 */, 4266 /* e 560 */, 9419 /* e 564 */, 8677 /* e 568 */, 1793 /* e 572 */, 3458 /* e 576 */, 1154 /* e 580 */, 3911 /* e 584 */, 4204 /* e 588 */, 3427 /* e 592 */, 3528 /* e 596 */, 3748 /* e 600 */, 1061 /* e 604 */, 3333 /* e 608 */, 1475 /* e 612 */, 3814 /* e 616 */, 4003 /* e 620 */, 8871 /* e 624 */, 1213 /* e 628 */, 7520 /* e 632 */, 9763 /* e 636 */, 2422 /* e 640 */, 1018 /* e 644 */, 617 /* e 648 */, 2281 /* e 652 */, 3118 /* e 656 */, 2368 /* e 660 */, 4164 /* e 664 */, 1944 /* e 668 */, 2190 /* e 672 */, 2152 /* e 676 */, 1711 /* e 680 */, 9584 /* e 684 */, 5585 /* e 688 */, 9031 /* e 692 */, 8124 /* e 696 */, 4328 /* e 700 */, 3044 /* e 704 */, 2634 /* e 708 */, 1124 /* e 712 */, 5266 /* e 716 */, 8373 /* e 720 */, 5232 /* e 724 */, 5502 /* e 728 */, 3852 /* e 732 */, 4392 /* e 736 */, 3903 /* e 740 */, 2146 /* e 744 */, 3855 /* e 748 */, 2021 /* e 752 */, 840 /* e 756 */, 5081 /* e 760 */, 6974 /* e 764 */, 9412 /* e 768 */, 7306 /* e 772 */, 224 /* e 776 */, 5807 /* e 780 */, 1184 /* e 784 */, 8278 /* e 788 */, 523 /* e 792 */, 0}; /* table of starting indexes into previous table */ const unsigned short __tbl_2_big_start [] = { 0, 1, 15, 42, 82, 135, 202, 282, 375, 481, 601, 734, 880, 1039, 1212, 1398, 1597, 0};