csharp/EPAM.Deltix.DFP.Benchmark/BidDecimalData.cs (862 lines of code) (raw):

using BID_UINT64 = System.UInt64; using BID_SINT64 = System.Int64; using BID_UINT32 = System.UInt32; using BID_UINT8 = System.Byte; using BID_SINT8 = System.SByte; using _IDEC_flags = System.UInt32; namespace EPAM.Deltix.DFP { public struct BID_UINT128 { public BID_UINT64 w0, w1; public BID_UINT128(BID_UINT64 w0, BID_UINT64 w1) { this.w0 = w0; this.w1 = w1; } } public struct BID_UINT192 { public BID_UINT64 w0, w1, w2; public BID_UINT192(BID_UINT64 w0, BID_UINT64 w1, BID_UINT64 w2) { this.w0 = w0; this.w1 = w1; this.w2 = w2; } } public struct BID_UINT256 { public BID_UINT64 w0, w1, w2, w3; public BID_UINT256(BID_UINT64 w0, BID_UINT64 w1, BID_UINT64 w2, BID_UINT64 w3) { this.w0 = w0; this.w1 = w1; this.w2 = w2; this.w3 = w3; } } internal static class BidDecimalData { public static readonly BID_UINT64[,] bid_round_const_table = { { // RN 0UL, // 0 extra digits 5UL, // 1 extra digits 50UL, // 2 extra digits 500UL, // 3 extra digits 5000UL, // 4 extra digits 50000UL, // 5 extra digits 500000UL, // 6 extra digits 5000000UL, // 7 extra digits 50000000UL, // 8 extra digits 500000000UL, // 9 extra digits 5000000000UL, // 10 extra digits 50000000000UL, // 11 extra digits 500000000000UL, // 12 extra digits 5000000000000UL, // 13 extra digits 50000000000000UL, // 14 extra digits 500000000000000UL, // 15 extra digits 5000000000000000UL, // 16 extra digits 50000000000000000UL, // 17 extra digits 500000000000000000UL // 18 extra digits }, { // RD 0UL, // 0 extra digits 0UL, // 1 extra digits 0UL, // 2 extra digits 00UL, // 3 extra digits 000UL, // 4 extra digits 0000UL, // 5 extra digits 00000UL, // 6 extra digits 000000UL, // 7 extra digits 0000000UL, // 8 extra digits 00000000UL, // 9 extra digits 000000000UL, // 10 extra digits 0000000000UL, // 11 extra digits 00000000000UL, // 12 extra digits 000000000000UL, // 13 extra digits 0000000000000UL, // 14 extra digits 00000000000000UL, // 15 extra digits 000000000000000UL, // 16 extra digits 0000000000000000UL, // 17 extra digits 00000000000000000UL // 18 extra digits }, { // round to Inf 0UL, // 0 extra digits 9UL, // 1 extra digits 99UL, // 2 extra digits 999UL, // 3 extra digits 9999UL, // 4 extra digits 99999UL, // 5 extra digits 999999UL, // 6 extra digits 9999999UL, // 7 extra digits 99999999UL, // 8 extra digits 999999999UL, // 9 extra digits 9999999999UL, // 10 extra digits 99999999999UL, // 11 extra digits 999999999999UL, // 12 extra digits 9999999999999UL, // 13 extra digits 99999999999999UL, // 14 extra digits 999999999999999UL, // 15 extra digits 9999999999999999UL, // 16 extra digits 99999999999999999UL, // 17 extra digits 999999999999999999UL // 18 extra digits }, { // RZ 0UL, // 0 extra digits 0UL, // 1 extra digits 0UL, // 2 extra digits 00UL, // 3 extra digits 000UL, // 4 extra digits 0000UL, // 5 extra digits 00000UL, // 6 extra digits 000000UL, // 7 extra digits 0000000UL, // 8 extra digits 00000000UL, // 9 extra digits 000000000UL, // 10 extra digits 0000000000UL, // 11 extra digits 00000000000UL, // 12 extra digits 000000000000UL, // 13 extra digits 0000000000000UL, // 14 extra digits 00000000000000UL, // 15 extra digits 000000000000000UL, // 16 extra digits 0000000000000000UL, // 17 extra digits 00000000000000000UL // 18 extra digits }, { // round ties away from 0 0UL, // 0 extra digits 5UL, // 1 extra digits 50UL, // 2 extra digits 500UL, // 3 extra digits 5000UL, // 4 extra digits 50000UL, // 5 extra digits 500000UL, // 6 extra digits 5000000UL, // 7 extra digits 50000000UL, // 8 extra digits 500000000UL, // 9 extra digits 5000000000UL, // 10 extra digits 50000000000UL, // 11 extra digits 500000000000UL, // 12 extra digits 5000000000000UL, // 13 extra digits 50000000000000UL, // 14 extra digits 500000000000000UL, // 15 extra digits 5000000000000000UL, // 16 extra digits 50000000000000000UL, // 17 extra digits 500000000000000000UL // 18 extra digits }, }; //BID_UINT128 bid_round_const_table_128[][36] = { // { //RN // {{0UL, 0UL}}, // 0 extra digits // {{5UL, 0UL}}, // 1 extra digits // {{50UL, 0UL}}, // 2 extra digits // {{500UL, 0UL}}, // 3 extra digits // {{5000UL, 0UL}}, // 4 extra digits // {{50000UL, 0UL}}, // 5 extra digits // {{500000UL, 0UL}}, // 6 extra digits // {{5000000UL, 0UL}}, // 7 extra digits // {{50000000UL, 0UL}}, // 8 extra digits // {{500000000UL, 0UL}}, // 9 extra digits // {{5000000000UL, 0UL}}, // 10 extra digits // {{50000000000UL, 0UL}}, // 11 extra digits // {{500000000000UL, 0UL}}, // 12 extra digits // {{5000000000000UL, 0UL}}, // 13 extra digits // {{50000000000000UL, 0UL}}, // 14 extra digits // {{500000000000000UL, 0UL}}, // 15 extra digits // {{5000000000000000UL, 0UL}}, // 16 extra digits // {{50000000000000000UL, 0UL}}, // 17 extra digits // {{500000000000000000UL, 0UL}}, // 18 extra digits // {{5000000000000000000UL, 0UL}}, // 19 extra digits // {{0xb5e3af16b1880000UL, 2UL}}, //20 // {{0x1ae4d6e2ef500000UL, 27UL}}, //21 // {{0xcf064dd59200000UL, 271UL}}, //22 // {{0x8163f0a57b400000UL, 2710UL}}, //23 // {{0xde76676d0800000UL, 27105UL}}, //24 // {{0x8b0a00a425000000UL, 0x422caUL}}, //25 // {{0x6e64066972000000UL, 0x295be9UL}}, //26 // {{0x4fe8401e74000000UL, 0x19d971eUL}}, //27 // {{0x1f12813088000000UL, 0x1027e72fUL}}, //28 // {{0x36b90be550000000UL, 0xa18f07d7UL}}, //29 // {{0x233a76f520000000UL, 0x64f964e68UL}}, //30 // {{0x6048a59340000000UL, 0x3f1bdf1011UL}}, //31 // {{0xc2d677c080000000UL, 0x27716b6a0adUL}}, //32 // {{0x9c60ad8500000000UL, 0x18a6e32246c9UL}}, //33 // {{0x1bc6c73200000000UL, 0xf684df56c3e0UL}}, //34 // {{0x15c3c7f400000000UL, 0x9a130b963a6c1UL}}, //35 // } // , // { //RD // {{0UL, 0UL}}, // 0 extra digits // {{0UL, 0UL}}, // 1 extra digits // {{0UL, 0UL}}, // 2 extra digits // {{00UL, 0UL}}, // 3 extra digits // {{000UL, 0UL}}, // 4 extra digits // {{0000UL, 0UL}}, // 5 extra digits // {{00000UL, 0UL}}, // 6 extra digits // {{000000UL, 0UL}}, // 7 extra digits // {{0000000UL, 0UL}}, // 8 extra digits // {{00000000UL, 0UL}}, // 9 extra digits // {{000000000UL, 0UL}}, // 10 extra digits // {{0000000000UL, 0UL}}, // 11 extra digits // {{00000000000UL, 0UL}}, // 12 extra digits // {{000000000000UL, 0UL}}, // 13 extra digits // {{0000000000000UL, 0UL}}, // 14 extra digits // {{00000000000000UL, 0UL}}, // 15 extra digits // {{000000000000000UL, 0UL}}, // 16 extra digits // {{0000000000000000UL, 0UL}}, // 17 extra digits // {{00000000000000000UL, 0UL}}, // 18 extra digits // {{000000000000000000UL, 0UL}}, // 19 extra digits // {{0UL, 0UL}}, //20 // {{0UL, 0UL}}, //21 // {{0UL, 0UL}}, //22 // {{0UL, 0UL}}, //23 // {{0UL, 0UL}}, //24 // {{0UL, 0UL}}, //25 // {{0UL, 0UL}}, //26 // {{0UL, 0UL}}, //27 // {{0UL, 0UL}}, //28 // {{0UL, 0UL}}, //29 // {{0UL, 0UL}}, //30 // {{0UL, 0UL}}, //31 // {{0UL, 0UL}}, //32 // {{0UL, 0UL}}, //33 // {{0UL, 0UL}}, //34 // {{0UL, 0UL}}, //35 // } // , // { //RU // {{0UL, 0UL}}, // 0 extra digits // {{9UL, 0UL}}, // 1 extra digits // {{99UL, 0UL}}, // 2 extra digits // {{999UL, 0UL}}, // 3 extra digits // {{9999UL, 0UL}}, // 4 extra digits // {{99999UL, 0UL}}, // 5 extra digits // {{999999UL, 0UL}}, // 6 extra digits // {{9999999UL, 0UL}}, // 7 extra digits // {{99999999UL, 0UL}}, // 8 extra digits // {{999999999UL, 0UL}}, // 9 extra digits // {{9999999999UL, 0UL}}, // 10 extra digits // {{99999999999UL, 0UL}}, // 11 extra digits // {{999999999999UL, 0UL}}, // 12 extra digits // {{9999999999999UL, 0UL}}, // 13 extra digits // {{99999999999999UL, 0UL}}, // 14 extra digits // {{999999999999999UL, 0UL}}, // 15 extra digits // {{9999999999999999UL, 0UL}}, // 16 extra digits // {{99999999999999999UL, 0UL}}, // 17 extra digits // {{999999999999999999UL, 0UL}}, // 18 extra digits // {{9999999999999999999UL, 0UL}}, // 19 extra digits // {{0x6BC75E2D630FFFFFull, 0x5UL}}, //20 // {{0x35C9ADC5DE9FFFFFull, 0x36UL}}, //21 // {{0x19E0C9BAB23FFFFFull, 0x21eUL}}, //22 // {{0x2C7E14AF67FFFFFull, 0x152dUL}}, //23 // {{0x1BCECCEDA0FFFFFFull, 0xd3c2UL}}, //24 // {{0x1614014849FFFFFFull, 0x84595UL}}, //25 // {{0xDCC80CD2E3FFFFFFull, 0x52b7d2UL}}, //26 // {{0x9FD0803CE7FFFFFFull, 0x33B2E3Cull}}, //27 // {{0x3E2502610FFFFFFFull, 0x204FCE5Eull}}, //28 // {{0x6D7217CA9FFFFFFFull, 0x1431E0FAEull}}, //29 // {{0x4674EDEA3FFFFFFFull, 0xC9F2C9CD0UL}}, //30 // {{0xC0914B267FFFFFFFull, 0x7E37BE2022UL}}, //31 // {{0x85ACEF80FFFFFFFFull, 0x4EE2D6D415Bull}}, //32 // {{0x38c15b09ffffffffUL, 0x314dc6448d93UL}}, //33 // {{0x378d8e63ffffffffUL, 0x1ed09bead87c0UL}}, //34 // {{0x2b878fe7ffffffffUL, 0x13426172c74d82UL}}, //35 // } // , // { //RZ // {{0UL, 0UL}}, // 0 extra digits // {{0UL, 0UL}}, // 1 extra digits // {{0UL, 0UL}}, // 2 extra digits // {{00UL, 0UL}}, // 3 extra digits // {{000UL, 0UL}}, // 4 extra digits // {{0000UL, 0UL}}, // 5 extra digits // {{00000UL, 0UL}}, // 6 extra digits // {{000000UL, 0UL}}, // 7 extra digits // {{0000000UL, 0UL}}, // 8 extra digits // {{00000000UL, 0UL}}, // 9 extra digits // {{000000000UL, 0UL}}, // 10 extra digits // {{0000000000UL, 0UL}}, // 11 extra digits // {{00000000000UL, 0UL}}, // 12 extra digits // {{000000000000UL, 0UL}}, // 13 extra digits // {{0000000000000UL, 0UL}}, // 14 extra digits // {{00000000000000UL, 0UL}}, // 15 extra digits // {{000000000000000UL, 0UL}}, // 16 extra digits // {{0000000000000000UL, 0UL}}, // 17 extra digits // {{00000000000000000UL, 0UL}}, // 18 extra digits // {{000000000000000000UL, 0UL}}, // 19 extra digits // {{0UL, 0UL}}, //20 // {{0UL, 0UL}}, //21 // {{0UL, 0UL}}, //22 // {{0UL, 0UL}}, //23 // {{0UL, 0UL}}, //24 // {{0UL, 0UL}}, //25 // {{0UL, 0UL}}, //26 // {{0UL, 0UL}}, //27 // {{0UL, 0UL}}, //28 // {{0UL, 0UL}}, //29 // {{0UL, 0UL}}, //30 // {{0UL, 0UL}}, //31 // {{0UL, 0UL}}, //32 // {{0UL, 0UL}}, //33 // {{0UL, 0UL}}, //34 // {{0UL, 0UL}}, //35 // } // , // { //RN, ties away // {{0UL, 0UL}}, // 0 extra digits // {{5UL, 0UL}}, // 1 extra digits // {{50UL, 0UL}}, // 2 extra digits // {{500UL, 0UL}}, // 3 extra digits // {{5000UL, 0UL}}, // 4 extra digits // {{50000UL, 0UL}}, // 5 extra digits // {{500000UL, 0UL}}, // 6 extra digits // {{5000000UL, 0UL}}, // 7 extra digits // {{50000000UL, 0UL}}, // 8 extra digits // {{500000000UL, 0UL}}, // 9 extra digits // {{5000000000UL, 0UL}}, // 10 extra digits // {{50000000000UL, 0UL}}, // 11 extra digits // {{500000000000UL, 0UL}}, // 12 extra digits // {{5000000000000UL, 0UL}}, // 13 extra digits // {{50000000000000UL, 0UL}}, // 14 extra digits // {{500000000000000UL, 0UL}}, // 15 extra digits // {{5000000000000000UL, 0UL}}, // 16 extra digits // {{50000000000000000UL, 0UL}}, // 17 extra digits // {{500000000000000000UL, 0UL}}, // 18 extra digits // {{5000000000000000000UL, 0UL}}, // 19 extra digits // {{0xb5e3af16b1880000UL, 2UL}}, //20 // {{0x1ae4d6e2ef500000UL, 27UL}}, //21 // {{0xcf064dd59200000UL, 271UL}}, //22 // {{0x8163f0a57b400000UL, 2710UL}}, //23 // {{0xde76676d0800000UL, 27105UL}}, //24 // {{0x8b0a00a425000000UL, 0x422caUL}}, //25 // {{0x6e64066972000000UL, 0x295be9UL}}, //26 // {{0x4fe8401e74000000UL, 0x19d971eUL}}, //27 // {{0x1f12813088000000UL, 0x1027e72fUL}}, //28 // {{0x36b90be550000000UL, 0xa18f07d7UL}}, //29 // {{0x233a76f520000000UL, 0x64f964e68UL}}, //30 // {{0x6048a59340000000UL, 0x3f1bdf1011UL}}, //31 // {{0xc2d677c080000000UL, 0x27716b6a0adUL}}, //32 // {{0x9c60ad8500000000UL, 0x18a6e32246c9UL}}, //33 // {{0x1bc6c73200000000UL, 0xf684df56c3e0UL}}, //34 // {{0x15c3c7f400000000UL, 0x9a130b963a6c1UL}}, //35 // } //}; public static readonly BID_UINT128[] bid_reciprocals10_128 = { new BID_UINT128(0UL, 0UL), // 0 extra digits new BID_UINT128(0x3333333333333334UL, 0x3333333333333333UL), // 1 extra digit new BID_UINT128(0x51eb851eb851eb86UL, 0x051eb851eb851eb8UL), // 2 extra digits new BID_UINT128(0x3b645a1cac083127UL, 0x0083126e978d4fdfUL), // 3 extra digits new BID_UINT128(0x4af4f0d844d013aaUL, 0x00346dc5d6388659UL), // 10^(-4) * 2^131 new BID_UINT128(0x08c3f3e0370cdc88UL, 0x0029f16b11c6d1e1UL), // 10^(-5) * 2^134 new BID_UINT128(0x6d698fe69270b06dUL, 0x00218def416bdb1aUL), // 10^(-6) * 2^137 new BID_UINT128(0xaf0f4ca41d811a47UL, 0x0035afe535795e90UL), // 10^(-7) * 2^141 new BID_UINT128(0xbf3f70834acdaea0UL, 0x002af31dc4611873UL), // 10^(-8) * 2^144 new BID_UINT128(0x65cc5a02a23e254dUL, 0x00225c17d04dad29UL), // 10^(-9) * 2^147 new BID_UINT128(0x6fad5cd10396a214UL, 0x0036f9bfb3af7b75UL), // 10^(-10) * 2^151 new BID_UINT128(0xbfbde3da69454e76UL, 0x002bfaffc2f2c92aUL), // 10^(-11) * 2^154 new BID_UINT128(0x32fe4fe1edd10b92UL, 0x00232f33025bd422UL), // 10^(-12) * 2^157 new BID_UINT128(0x84ca19697c81ac1cUL, 0x00384b84d092ed03UL), // 10^(-13) * 2^161 new BID_UINT128(0x03d4e1213067bce4UL, 0x002d09370d425736UL), // 10^(-14) * 2^164 new BID_UINT128(0x3643e74dc052fd83UL, 0x0024075f3dceac2bUL), // 10^(-15) * 2^167 new BID_UINT128(0x56d30baf9a1e626bUL, 0x0039a5652fb11378UL), // 10^(-16) * 2^171 new BID_UINT128(0x12426fbfae7eb522UL, 0x002e1dea8c8da92dUL), // 10^(-17) * 2^174 new BID_UINT128(0x41cebfcc8b9890e8UL, 0x0024e4bba3a48757UL), // 10^(-18) * 2^177 new BID_UINT128(0x694acc7a78f41b0dUL, 0x003b07929f6da558UL), // 10^(-19) * 2^181 new BID_UINT128(0xbaa23d2ec729af3eUL, 0x002f394219248446UL), // 10^(-20) * 2^184 new BID_UINT128(0xfbb4fdbf05baf298UL, 0x0025c768141d369eUL), // 10^(-21) * 2^187 new BID_UINT128(0x2c54c931a2c4b759UL, 0x003c7240202ebdcbUL), // 10^(-22) * 2^191 new BID_UINT128(0x89dd6dc14f03c5e1UL, 0x00305b66802564a2UL), // 10^(-23) * 2^194 new BID_UINT128(0xd4b1249aa59c9e4eUL, 0x0026af8533511d4eUL), // 10^(-24) * 2^197 new BID_UINT128(0x544ea0f76f60fd49UL, 0x003de5a1ebb4fbb1UL), // 10^(-25) * 2^201 new BID_UINT128(0x76a54d92bf80caa1UL, 0x00318481895d9627UL), // 10^(-26) * 2^204 new BID_UINT128(0x921dd7a89933d54eUL, 0x00279d346de4781fUL), // 10^(-27) * 2^207 new BID_UINT128(0x8362f2a75b862215UL, 0x003f61ed7ca0c032UL), // 10^(-28) * 2^211 new BID_UINT128(0xcf825bb91604e811UL, 0x0032b4bdfd4d668eUL), // 10^(-29) * 2^214 new BID_UINT128(0x0c684960de6a5341UL, 0x00289097fdd7853fUL), // 10^(-30) * 2^217 new BID_UINT128(0x3d203ab3e521dc34UL, 0x002073accb12d0ffUL), // 10^(-31) * 2^220 new BID_UINT128(0x2e99f7863b696053UL, 0x0033ec47ab514e65UL), // 10^(-32) * 2^224 new BID_UINT128(0x587b2c6b62bab376UL, 0x002989d2ef743eb7UL), // 10^(-33) * 2^227 new BID_UINT128(0xad2f56bc4efbc2c5UL, 0x00213b0f25f69892UL), // 10^(-34) * 2^230 new BID_UINT128(0x0f2abc9d8c9689d1UL, 0x01a95a5b7f87a0efUL), // 35 extra digits }; public static readonly int[] bid_recip_scale = { 129 - 128, // 1 129 - 128, // 1/10 129 - 128, // 1/10^2 129 - 128, // 1/10^3 3, // 131 - 128 6, // 134 - 128 9, // 137 - 128 13, // 141 - 128 16, // 144 - 128 19, // 147 - 128 23, // 151 - 128 26, // 154 - 128 29, // 157 - 128 33, // 161 - 128 36, // 164 - 128 39, // 167 - 128 43, // 171 - 128 46, // 174 - 128 49, // 177 - 128 53, // 181 - 128 56, // 184 - 128 59, // 187 - 128 63, // 191 - 128 66, // 194 - 128 69, // 197 - 128 73, // 201 - 128 76, // 204 - 128 79, // 207 - 128 83, // 211 - 128 86, // 214 - 128 89, // 217 - 128 92, // 220 - 128 96, // 224 - 128 99, // 227 - 128 102, // 230 - 128 109, // 237 - 128, 1/10^35 }; /// <summary> /// tables used in computation /// </summary> public static readonly int[] bid_estimate_decimal_digits = { 1, //2^0 =1 < 10^0 1, //2^1 =2 < 10^1 1, //2^2 =4 < 10^1 1, //2^3 =8 < 10^1 2, //2^4 =16 < 10^2 2, //2^5 =32 < 10^2 2, //2^6 =64 < 10^2 3, //2^7 =128 < 10^3 3, //2^8 =256 < 10^3 3, //2^9 =512 < 10^3 4, //2^10=1024 < 10^4 4, //2^11=2048 < 10^4 4, //2^12=4096 < 10^4 4, //2^13=8192 < 10^4 5, //2^14=16384 < 10^5 5, //2^15=32768 < 10^5 5, //2^16=65536 < 10^5 6, //2^17=131072 < 10^6 6, //2^18=262144 < 10^6 6, //2^19=524288 < 10^6 7, //2^20=1048576 < 10^7 7, //2^21=2097152 < 10^7 7, //2^22=4194304 < 10^7 7, //2^23=8388608 < 10^7 8, //2^24=16777216 < 10^8 8, //2^25=33554432 < 10^8 8, //2^26=67108864 < 10^8 9, //2^27=134217728 < 10^9 9, //2^28=268435456 < 10^9 9, //2^29=536870912 < 10^9 10, //2^30=1073741824< 10^10 10, //2^31=2147483648< 10^10 10, //2^32=4294967296 < 10^10 10, //2^33=8589934592 < 10^10 11, //2^34=17179869184 < 10^11 11, //2^35=34359738368 < 10^11 11, //2^36=68719476736 < 10^11 12, //2^37=137438953472 < 10^12 12, //2^38=274877906944 < 10^12 12, //2^39=549755813888 < 10^12 13, //2^40=1099511627776 < 10^13 13, //2^41=2199023255552 < 10^13 13, //2^42=4398046511104 < 10^13 13, //2^43=8796093022208 < 10^13 14, //2^44=17592186044416 < 10^14 14, //2^45=35184372088832 < 10^14 14, //2^46=70368744177664 < 10^14 15, //2^47=140737488355328< 10^15 15, //2^48=281474976710656 < 10^15 15, //2^49=562949953421312 < 10^15 16, //2^50=1125899906842624 < 10^16 16, //2^51=2251799813685248 < 10^16 16, //2^52=4503599627370496 < 10^16 16, //2^53=9007199254740992 < 10^16 17, //2^54=18014398509481984 < 10^17 17, //2^55=36028797018963968 < 10^17 17, //2^56=72057594037927936 < 10^17 18, //2^57=144115188075855872 < 10^18 18, //2^58=288230376151711744 < 10^18 18, //2^59=576460752303423488 < 10^18 19, //2^60=1152921504606846976< 10^19 19, //2^61=2305843009213693952< 10^19 19, //2^62=4611686018427387904< 10^19 19, //2^63=9223372036854775808< 10^19 20, //2^64=18446744073709551616 20, //2^65=36893488147419103232 20, //2^66=73786976294838206464 21, //2^67=147573952589676412928 21, //2^68=295147905179352825856 21, //2^69=590295810358705651712 22, //2^70=1180591620717411303424 22, //2^71=2361183241434822606848 22, //2^72=4722366482869645213696 22, //2^73=9444732965739290427392 23, //2^74=18889465931478580854784 23, //2^75=37778931862957161709568 23, //2^76=75557863725914323419136 24, //2^77=151115727451828646838272 24, //2^78=302231454903657293676544 24, //2^79=604462909807314587353088 25, //2^80=1208925819614629174706176 25, //2^81=2417851639229258349412352 25, //2^82=4835703278458516698824704 25, //2^83=9671406556917033397649408 26, //2^84=19342813113834066795298816 26, //2^85=38685626227668133590597632 26, //2^86=77371252455336267181195264 27, //2^87=154742504910672534362390528 27, //2^88=309485009821345068724781056 27, //2^89=618970019642690137449562112 28, //2^90=1237940039285380274899124224 28, //2^91=2475880078570760549798248448 28, //2^92=4951760157141521099596496896 28, //2^93=9903520314283042199192993792 29, //2^94=19807040628566084398385987584 29, //2^95=39614081257132168796771975168 29, //2^96=79228162514264337593543950336 30, //2^97=158456325028528675187087900672 30, //2^98=316912650057057350374175801344 30, //2^99=633825300114114700748351602688 31, //2^100=1267650600228229401496703205376 31, //2^101=2535301200456458802993406410752 31, //2^102=5070602400912917605986812821504 32, //2^103=10141204801825835211973625643008 32, //2^104=20282409603651670423947251286016 32, //2^105=40564819207303340847894502572032 32, //2^106=81129638414606681695789005144064 33, //2^107=162259276829213363391578010288128 33, // 2^108 33, // 2^109 34, // 2^110 34, // 2^111 34, // 2^112 35, // 2^113 35, // 2^114 35, // 2^115 35, // 2^116 36, // 2^117 36, // 2^118 36, // 2^119 37, // 2^120 37, // 2^121 37, // 2^122 38, // 2^123 38, // 2^124 38, // 2^125 38, // 2^126 39, // 2^127 39 // 2^128 }; public static readonly BID_UINT128[] bid_power10_table_128 = { new BID_UINT128(0x0000000000000001UL, 0x0000000000000000UL), // 10^0 new BID_UINT128(0x000000000000000aUL, 0x0000000000000000UL), // 10^1 new BID_UINT128(0x0000000000000064UL, 0x0000000000000000UL), // 10^2 new BID_UINT128(0x00000000000003e8UL, 0x0000000000000000UL), // 10^3 new BID_UINT128(0x0000000000002710UL, 0x0000000000000000UL), // 10^4 new BID_UINT128(0x00000000000186a0UL, 0x0000000000000000UL), // 10^5 new BID_UINT128(0x00000000000f4240UL, 0x0000000000000000UL), // 10^6 new BID_UINT128(0x0000000000989680UL, 0x0000000000000000UL), // 10^7 new BID_UINT128(0x0000000005f5e100UL, 0x0000000000000000UL), // 10^8 new BID_UINT128(0x000000003b9aca00UL, 0x0000000000000000UL), // 10^9 new BID_UINT128(0x00000002540be400UL, 0x0000000000000000UL), // 10^10 new BID_UINT128(0x000000174876e800UL, 0x0000000000000000UL), // 10^11 new BID_UINT128(0x000000e8d4a51000UL, 0x0000000000000000UL), // 10^12 new BID_UINT128(0x000009184e72a000UL, 0x0000000000000000UL), // 10^13 new BID_UINT128(0x00005af3107a4000UL, 0x0000000000000000UL), // 10^14 new BID_UINT128(0x00038d7ea4c68000UL, 0x0000000000000000UL), // 10^15 new BID_UINT128(0x002386f26fc10000UL, 0x0000000000000000UL), // 10^16 new BID_UINT128(0x016345785d8a0000UL, 0x0000000000000000UL), // 10^17 new BID_UINT128(0x0de0b6b3a7640000UL, 0x0000000000000000UL), // 10^18 new BID_UINT128(0x8ac7230489e80000UL, 0x0000000000000000UL), // 10^19 new BID_UINT128(0x6bc75e2d63100000UL, 0x0000000000000005UL), // 10^20 new BID_UINT128(0x35c9adc5dea00000UL, 0x0000000000000036UL), // 10^21 new BID_UINT128(0x19e0c9bab2400000UL, 0x000000000000021eUL), // 10^22 new BID_UINT128(0x02c7e14af6800000UL, 0x000000000000152dUL), // 10^23 new BID_UINT128(0x1bcecceda1000000UL, 0x000000000000d3c2UL), // 10^24 new BID_UINT128(0x161401484a000000UL, 0x0000000000084595UL), // 10^25 new BID_UINT128(0xdcc80cd2e4000000UL, 0x000000000052b7d2UL), // 10^26 new BID_UINT128(0x9fd0803ce8000000UL, 0x00000000033b2e3cUL), // 10^27 new BID_UINT128(0x3e25026110000000UL, 0x00000000204fce5eUL), // 10^28 new BID_UINT128(0x6d7217caa0000000UL, 0x00000001431e0faeUL), // 10^29 new BID_UINT128(0x4674edea40000000UL, 0x0000000c9f2c9cd0UL), // 10^30 new BID_UINT128(0xc0914b2680000000UL, 0x0000007e37be2022UL), // 10^31 new BID_UINT128(0x85acef8100000000UL, 0x000004ee2d6d415bUL), // 10^32 new BID_UINT128(0x38c15b0a00000000UL, 0x0000314dc6448d93UL), // 10^33 new BID_UINT128(0x378d8e6400000000UL, 0x0001ed09bead87c0UL), // 10^34 new BID_UINT128(0x2b878fe800000000UL, 0x0013426172c74d82UL), // 10^35 new BID_UINT128(0xb34b9f1000000000UL, 0x00c097ce7bc90715UL), // 10^36 new BID_UINT128(0x00f436a000000000UL, 0x0785ee10d5da46d9UL), // 10^37 new BID_UINT128(0x098a224000000000UL, 0x4b3b4ca85a86c47aUL), // 10^38 }; public static readonly int[] bid_estimate_bin_expon = { 0, // 10^0 3, // 10^1 6, // 10^2 9, // 10^3 13, // 10^4 16, // 10^5 19, // 10^6 23, // 10^7 26, // 10^8 29, // 10^9 33, // 10^10 36, // 10^11 39, // 10^12 43, // 10^13 46, // 10^14 49, // 10^15 53 // 10^16 }; public static readonly BID_UINT64[] bid_power10_index_binexp = { 0x000000000000000aUL, 0x000000000000000aUL, 0x000000000000000aUL, 0x000000000000000aUL, 0x0000000000000064UL, 0x0000000000000064UL, 0x0000000000000064UL, 0x00000000000003e8UL, 0x00000000000003e8UL, 0x00000000000003e8UL, 0x0000000000002710UL, 0x0000000000002710UL, 0x0000000000002710UL, 0x0000000000002710UL, 0x00000000000186a0UL, 0x00000000000186a0UL, 0x00000000000186a0UL, 0x00000000000f4240UL, 0x00000000000f4240UL, 0x00000000000f4240UL, 0x0000000000989680UL, 0x0000000000989680UL, 0x0000000000989680UL, 0x0000000000989680UL, 0x0000000005f5e100UL, 0x0000000005f5e100UL, 0x0000000005f5e100UL, 0x000000003b9aca00UL, 0x000000003b9aca00UL, 0x000000003b9aca00UL, 0x00000002540be400UL, 0x00000002540be400UL, 0x00000002540be400UL, 0x00000002540be400UL, 0x000000174876e800UL, 0x000000174876e800UL, 0x000000174876e800UL, 0x000000e8d4a51000UL, 0x000000e8d4a51000UL, 0x000000e8d4a51000UL, 0x000009184e72a000UL, 0x000009184e72a000UL, 0x000009184e72a000UL, 0x000009184e72a000UL, 0x00005af3107a4000UL, 0x00005af3107a4000UL, 0x00005af3107a4000UL, 0x00038d7ea4c68000UL, 0x00038d7ea4c68000UL, 0x00038d7ea4c68000UL, 0x002386f26fc10000UL, 0x002386f26fc10000UL, 0x002386f26fc10000UL, 0x002386f26fc10000UL, 0x016345785d8a0000UL, 0x016345785d8a0000UL, 0x016345785d8a0000UL, 0x0de0b6b3a7640000UL, 0x0de0b6b3a7640000UL, 0x0de0b6b3a7640000UL, 0x8ac7230489e80000UL, 0x8ac7230489e80000UL, 0x8ac7230489e80000UL, 0x8ac7230489e80000UL }; public static readonly int[] bid_short_recip_scale = { 1, 65 - 64, 69 - 64, 71 - 64, 75 - 64, 78 - 64, 81 - 64, 85 - 64, 88 - 64, 91 - 64, 95 - 64, 98 - 64, 101 - 64, 105 - 64, 108 - 64, 111 - 64, 115 - 64, //114 - 64 118 - 64 }; public static readonly BID_UINT64[] bid_reciprocals10_64 = { 1UL, // dummy value for 0 extra digits 0x3333333333333334UL, // 1 extra digit 0x51eb851eb851eb86UL, 0x20c49ba5e353f7cfUL, 0x346dc5d63886594bUL, 0x29f16b11c6d1e109UL, 0x218def416bdb1a6eUL, 0x35afe535795e90b0UL, 0x2af31dc4611873c0UL, 0x225c17d04dad2966UL, 0x36f9bfb3af7b7570UL, 0x2bfaffc2f2c92ac0UL, 0x232f33025bd42233UL, 0x384b84d092ed0385UL, 0x2d09370d42573604UL, 0x24075f3dceac2b37UL, 0x39a5652fb1137857UL, 0x2e1dea8c8da92d13UL }; //int bid_bid_bid_recip_scale32 [] = //{ // 1, // 33-32, // 35-32, // 39-32, // 43-32, // 46-32, // 50-32, // 53-32, // 57-32 //}; //BID_UINT64 bid_bid_reciprocals10_32[] = { // 1UL, //dummy, // 0x33333334UL, // 0x147AE148UL, // 0x20C49BA6UL, // 0x346DC5D7UL, //4 // 0x29F16B12UL, // 0x431BDE83UL, // 0x35AFE536UL, // 0x55E63B89UL //}; //BID_UINT128 bid_power10_index_binexp_128[] = { // {{0x000000000000000aUL, 0x0000000000000000UL}}, // {{0x000000000000000aUL, 0x0000000000000000UL}}, // {{0x000000000000000aUL, 0x0000000000000000UL}}, // {{0x000000000000000aUL, 0x0000000000000000UL}}, // {{0x0000000000000064UL, 0x0000000000000000UL}}, // {{0x0000000000000064UL, 0x0000000000000000UL}}, // {{0x0000000000000064UL, 0x0000000000000000UL}}, // {{0x00000000000003e8UL, 0x0000000000000000UL}}, // {{0x00000000000003e8UL, 0x0000000000000000UL}}, // {{0x00000000000003e8UL, 0x0000000000000000UL}}, // {{0x0000000000002710UL, 0x0000000000000000UL}}, // {{0x0000000000002710UL, 0x0000000000000000UL}}, // {{0x0000000000002710UL, 0x0000000000000000UL}}, // {{0x0000000000002710UL, 0x0000000000000000UL}}, // {{0x00000000000186a0UL, 0x0000000000000000UL}}, // {{0x00000000000186a0UL, 0x0000000000000000UL}}, // {{0x00000000000186a0UL, 0x0000000000000000UL}}, // {{0x00000000000f4240UL, 0x0000000000000000UL}}, // {{0x00000000000f4240UL, 0x0000000000000000UL}}, // {{0x00000000000f4240UL, 0x0000000000000000UL}}, // {{0x0000000000989680UL, 0x0000000000000000UL}}, // {{0x0000000000989680UL, 0x0000000000000000UL}}, // {{0x0000000000989680UL, 0x0000000000000000UL}}, // {{0x0000000000989680UL, 0x0000000000000000UL}}, // {{0x0000000005f5e100UL, 0x0000000000000000UL}}, // {{0x0000000005f5e100UL, 0x0000000000000000UL}}, // {{0x0000000005f5e100UL, 0x0000000000000000UL}}, // {{0x000000003b9aca00UL, 0x0000000000000000UL}}, // {{0x000000003b9aca00UL, 0x0000000000000000UL}}, // {{0x000000003b9aca00UL, 0x0000000000000000UL}}, // {{0x00000002540be400UL, 0x0000000000000000UL}}, // {{0x00000002540be400UL, 0x0000000000000000UL}}, // {{0x00000002540be400UL, 0x0000000000000000UL}}, // {{0x00000002540be400UL, 0x0000000000000000UL}}, // {{0x000000174876e800UL, 0x0000000000000000UL}}, // {{0x000000174876e800UL, 0x0000000000000000UL}}, // {{0x000000174876e800UL, 0x0000000000000000UL}}, // {{0x000000e8d4a51000UL, 0x0000000000000000UL}}, // {{0x000000e8d4a51000UL, 0x0000000000000000UL}}, // {{0x000000e8d4a51000UL, 0x0000000000000000UL}}, // {{0x000009184e72a000UL, 0x0000000000000000UL}}, // {{0x000009184e72a000UL, 0x0000000000000000UL}}, // {{0x000009184e72a000UL, 0x0000000000000000UL}}, // {{0x000009184e72a000UL, 0x0000000000000000UL}}, // {{0x00005af3107a4000UL, 0x0000000000000000UL}}, // {{0x00005af3107a4000UL, 0x0000000000000000UL}}, // {{0x00005af3107a4000UL, 0x0000000000000000UL}}, // {{0x00038d7ea4c68000UL, 0x0000000000000000UL}}, // {{0x00038d7ea4c68000UL, 0x0000000000000000UL}}, // {{0x00038d7ea4c68000UL, 0x0000000000000000UL}}, // {{0x002386f26fc10000UL, 0x0000000000000000UL}}, // {{0x002386f26fc10000UL, 0x0000000000000000UL}}, // {{0x002386f26fc10000UL, 0x0000000000000000UL}}, // {{0x002386f26fc10000UL, 0x0000000000000000UL}}, // {{0x016345785d8a0000UL, 0x0000000000000000UL}}, // {{0x016345785d8a0000UL, 0x0000000000000000UL}}, // {{0x016345785d8a0000UL, 0x0000000000000000UL}}, // {{0x0de0b6b3a7640000UL, 0x0000000000000000UL}}, // {{0x0de0b6b3a7640000UL, 0x0000000000000000UL}}, // {{0x0de0b6b3a7640000UL, 0x0000000000000000UL}}, // {{0x8ac7230489e80000UL, 0x0000000000000000UL}}, // {{0x8ac7230489e80000UL, 0x0000000000000000UL}}, // {{0x8ac7230489e80000UL, 0x0000000000000000UL}}, // {{0x8ac7230489e80000UL, 0x0000000000000000UL}}, // {{0x6bc75e2d63100000UL, 0x0000000000000005UL}}, // 10^20 // {{0x6bc75e2d63100000UL, 0x0000000000000005UL}}, // 10^20 // {{0x6bc75e2d63100000UL, 0x0000000000000005UL}}, // 10^20 // {{0x35c9adc5dea00000UL, 0x0000000000000036UL}}, // 10^21 // {{0x35c9adc5dea00000UL, 0x0000000000000036UL}}, // 10^21 // {{0x35c9adc5dea00000UL, 0x0000000000000036UL}}, // 10^21 // {{0x19e0c9bab2400000UL, 0x000000000000021eUL}}, // 10^22 // {{0x19e0c9bab2400000UL, 0x000000000000021eUL}}, // 10^22 // {{0x19e0c9bab2400000UL, 0x000000000000021eUL}}, // 10^22 // {{0x19e0c9bab2400000UL, 0x000000000000021eUL}}, // 10^22 // {{0x02c7e14af6800000UL, 0x000000000000152dUL}}, // 10^23 // {{0x02c7e14af6800000UL, 0x000000000000152dUL}}, // 10^23 // {{0x02c7e14af6800000UL, 0x000000000000152dUL}}, // 10^23 // {{0x1bcecceda1000000UL, 0x000000000000d3c2UL}}, // 10^24 // {{0x1bcecceda1000000UL, 0x000000000000d3c2UL}}, // 10^24 // {{0x1bcecceda1000000UL, 0x000000000000d3c2UL}}, // 10^24 // {{0x161401484a000000UL, 0x0000000000084595UL}}, // 10^25 // {{0x161401484a000000UL, 0x0000000000084595UL}}, // 10^25 // {{0x161401484a000000UL, 0x0000000000084595UL}}, // 10^25 // {{0x161401484a000000UL, 0x0000000000084595UL}}, // 10^25 // {{0xdcc80cd2e4000000UL, 0x000000000052b7d2UL}}, // 10^26 // {{0xdcc80cd2e4000000UL, 0x000000000052b7d2UL}}, // 10^26 // {{0xdcc80cd2e4000000UL, 0x000000000052b7d2UL}}, // 10^26 // {{0x9fd0803ce8000000UL, 0x00000000033b2e3cUL}}, // 10^27 // {{0x9fd0803ce8000000UL, 0x00000000033b2e3cUL}}, // 10^27 // {{0x9fd0803ce8000000UL, 0x00000000033b2e3cUL}}, // 10^27 // {{0x3e25026110000000UL, 0x00000000204fce5eUL}}, // 10^28 // {{0x3e25026110000000UL, 0x00000000204fce5eUL}}, // 10^28 // {{0x3e25026110000000UL, 0x00000000204fce5eUL}}, // 10^28 // {{0x3e25026110000000UL, 0x00000000204fce5eUL}}, // 10^28 // {{0x6d7217caa0000000UL, 0x00000001431e0faeUL}}, // 10^29 // {{0x6d7217caa0000000UL, 0x00000001431e0faeUL}}, // 10^29 // {{0x6d7217caa0000000UL, 0x00000001431e0faeUL}}, // 10^29 // {{0x4674edea40000000UL, 0x0000000c9f2c9cd0UL}}, // 10^30 // {{0x4674edea40000000UL, 0x0000000c9f2c9cd0UL}}, // 10^30 // {{0x4674edea40000000UL, 0x0000000c9f2c9cd0UL}}, // 10^30 // {{0xc0914b2680000000UL, 0x0000007e37be2022UL}}, // 10^31 // {{0xc0914b2680000000UL, 0x0000007e37be2022UL}}, // 10^31 // {{0xc0914b2680000000UL, 0x0000007e37be2022UL}}, // 10^31 // {{0x85acef8100000000UL, 0x000004ee2d6d415bUL}}, // 10^32 // {{0x85acef8100000000UL, 0x000004ee2d6d415bUL}}, // 10^32 // {{0x85acef8100000000UL, 0x000004ee2d6d415bUL}}, // 10^32 // {{0x85acef8100000000UL, 0x000004ee2d6d415bUL}}, // 10^32 // {{0x38c15b0a00000000UL, 0x0000314dc6448d93UL}}, // 10^33 // {{0x38c15b0a00000000UL, 0x0000314dc6448d93UL}}, // 10^33 // {{0x38c15b0a00000000UL, 0x0000314dc6448d93UL}}, // 10^33, entry 112 // {{0x378d8e6400000000UL, 0x0001ed09bead87c0UL}}, // 10^34 // {{0x378d8e6400000000UL, 0x0001ed09bead87c0UL}}, // 10^34 // {{0x378d8e6400000000UL, 0x0001ed09bead87c0UL}}, // 10^34 // {{0x2b878fe800000000UL, 0x0013426172c74d82UL}}, // 10^35 // {{0x2b878fe800000000UL, 0x0013426172c74d82UL}}, // 10^35 // {{0x2b878fe800000000UL, 0x0013426172c74d82UL}}, // 10^35 // {{0x2b878fe800000000UL, 0x0013426172c74d82UL}}, // 10^35 // {{0xb34b9f1000000000UL, 0x00c097ce7bc90715UL}}, // 10^36 // {{0x00f436a000000000UL, 0x0785ee10d5da46d9UL}}, // 10^37 // {{0x00f436a000000000UL, 0x0785ee10d5da46d9UL}}, // 10^37 // {{0x00f436a000000000UL, 0x0785ee10d5da46d9UL}}, // 10^37 // {{0x098a224000000000UL, 0x4b3b4ca85a86c47aUL}}, // 10^38 // {{0x098a224000000000UL, 0x4b3b4ca85a86c47aUL}}, // 10^38 // {{0x098a224000000000UL, 0x4b3b4ca85a86c47aUL}}, // 10^38 // {{0x098a224000000000UL, 0x4b3b4ca85a86c47aUL}}, // 10^38 //}; public static readonly BID_SINT8[,] bid_factors /*[1024][2]*/ = { { 0, 0 }, { 1, 0 }, { 0, 0 }, { 2, 0 }, { 0, 1 }, { 1, 0 }, { 0, 0 }, { 3, 0 }, { 0, 0 }, { 1, 1 }, { 0, 0 }, { 2, 0 }, { 0, 0 }, { 1, 0 }, { 0, 1 }, { 4, 0 }, { 0, 0 }, { 1, 0 }, { 0, 0 }, { 2, 1 }, { 0, 0 }, { 1, 0 }, { 0, 0 }, { 3, 0 }, { 0, 2 }, { 1, 0 }, { 0, 0 }, { 2, 0 }, { 0, 0 }, { 1, 1 }, { 0, 0 }, { 5, 0 }, { 0, 0 }, { 1, 0 }, { 0, 1 }, { 2, 0 }, { 0, 0 }, { 1, 0 }, { 0, 0 }, { 3, 1 }, { 0, 0 }, { 1, 0 }, { 0, 0 }, { 2, 0 }, { 0, 1 }, { 1, 0 }, { 0, 0 }, { 4, 0 }, { 0, 0 }, { 1, 2 }, { 0, 0 }, { 2, 0 }, { 0, 0 }, { 1, 0 }, { 0, 1 }, { 3, 0 }, { 0, 0 }, { 1, 0 }, { 0, 0 }, { 2, 1 }, { 0, 0 }, { 1, 0 }, { 0, 0 }, { 6, 0 }, { 0, 1 }, { 1, 0 }, { 0, 0 }, { 2, 0 }, { 0, 0 }, { 1, 1 }, { 0, 0 }, { 3, 0 }, { 0, 0 }, { 1, 0 }, { 0, 2 }, { 2, 0 }, { 0, 0 }, { 1, 0 }, { 0, 0 }, { 4, 1 }, { 0, 0 }, { 1, 0 }, { 0, 0 }, { 2, 0 }, { 0, 1 }, { 1, 0 }, { 0, 0 }, { 3, 0 }, { 0, 0 }, { 1, 1 }, { 0, 0 }, { 2, 0 }, { 0, 0 }, { 1, 0 }, { 0, 1 }, { 5, 0 }, { 0, 0 }, { 1, 0 }, { 0, 0 }, { 2, 2 }, { 0, 0 }, { 1, 0 }, { 0, 0 }, { 3, 0 }, { 0, 1 }, { 1, 0 }, { 0, 0 }, { 2, 0 }, { 0, 0 }, { 1, 1 }, { 0, 0 }, { 4, 0 }, { 0, 0 }, { 1, 0 }, { 0, 1 }, { 2, 0 }, { 0, 0 }, { 1, 0 }, { 0, 0 }, { 3, 1 }, { 0, 0 }, { 1, 0 }, { 0, 0 }, { 2, 0 }, { 0, 3 }, { 1, 0 }, { 0, 0 }, { 7, 0 }, { 0, 0 }, { 1, 1 }, { 0, 0 }, { 2, 0 }, { 0, 0 }, { 1, 0 }, { 0, 1 }, { 3, 0 }, { 0, 0 }, { 1, 0 }, { 0, 0 }, { 2, 1 }, { 0, 0 }, { 1, 0 }, { 0, 0 }, { 4, 0 }, { 0, 1 }, { 1, 0 }, { 0, 0 }, { 2, 0 }, { 0, 0 }, { 1, 2 }, { 0, 0 }, { 3, 0 }, { 0, 0 }, { 1, 0 }, { 0, 1 }, { 2, 0 }, { 0, 0 }, { 1, 0 }, { 0, 0 }, { 5, 1 }, { 0, 0 }, { 1, 0 }, { 0, 0 }, { 2, 0 }, { 0, 1 }, { 1, 0 }, { 0, 0 }, { 3, 0 }, { 0, 0 }, { 1, 1 }, { 0, 0 }, { 2, 0 }, { 0, 0 }, { 1, 0 }, { 0, 2 }, { 4, 0 }, { 0, 0 }, { 1, 0 }, { 0, 0 }, { 2, 1 }, { 0, 0 }, { 1, 0 }, { 0, 0 }, { 3, 0 }, { 0, 1 }, { 1, 0 }, { 0, 0 }, { 2, 0 }, { 0, 0 }, { 1, 1 }, { 0, 0 }, { 6, 0 }, { 0, 0 }, { 1, 0 }, { 0, 1 }, { 2, 0 }, { 0, 0 }, { 1, 0 }, { 0, 0 }, { 3, 2 }, { 0, 0 }, { 1, 0 }, { 0, 0 }, { 2, 0 }, { 0, 1 }, { 1, 0 }, { 0, 0 }, { 4, 0 }, { 0, 0 }, { 1, 1 }, { 0, 0 }, { 2, 0 }, { 0, 0 }, { 1, 0 }, { 0, 1 }, { 3, 0 }, { 0, 0 }, { 1, 0 }, { 0, 0 }, { 2, 1 }, { 0, 0 }, { 1, 0 }, { 0, 0 }, { 5, 0 }, { 0, 2 }, { 1, 0 }, { 0, 0 }, { 2, 0 }, { 0, 0 }, { 1, 1 }, { 0, 0 }, { 3, 0 }, { 0, 0 }, { 1, 0 }, { 0, 1 }, { 2, 0 }, { 0, 0 }, { 1, 0 }, { 0, 0 }, { 4, 1 }, { 0, 0 }, { 1, 0 }, { 0, 0 }, { 2, 0 }, { 0, 1 }, { 1, 0 }, { 0, 0 }, { 3, 0 }, { 0, 0 }, { 1, 3 }, { 0, 0 }, { 2, 0 }, { 0, 0 }, { 1, 0 }, { 0, 1 }, { 8, 0 }, { 0, 0 }, { 1, 0 }, { 0, 0 }, { 2, 1 }, { 0, 0 }, { 1, 0 }, { 0, 0 }, { 3, 0 }, { 0, 1 }, { 1, 0 }, { 0, 0 }, { 2, 0 }, { 0, 0 }, { 1, 1 }, { 0, 0 }, { 4, 0 }, { 0, 0 }, { 1, 0 }, { 0, 2 }, { 2, 0 }, { 0, 0 }, { 1, 0 }, { 0, 0 }, { 3, 1 }, { 0, 0 }, { 1, 0 }, { 0, 0 }, { 2, 0 }, { 0, 1 }, { 1, 0 }, { 0, 0 }, { 5, 0 }, { 0, 0 }, { 1, 1 }, { 0, 0 }, { 2, 0 }, { 0, 0 }, { 1, 0 }, { 0, 1 }, { 3, 0 }, { 0, 0 }, { 1, 0 }, { 0, 0 }, { 2, 2 }, { 0, 0 }, { 1, 0 }, { 0, 0 }, { 4, 0 }, { 0, 1 }, { 1, 0 }, { 0, 0 }, { 2, 0 }, { 0, 0 }, { 1, 1 }, { 0, 0 }, { 3, 0 }, { 0, 0 }, { 1, 0 }, { 0, 1 }, { 2, 0 }, { 0, 0 }, { 1, 0 }, { 0, 0 }, { 6, 1 }, { 0, 0 }, { 1, 0 }, { 0, 0 }, { 2, 0 }, { 0, 2 }, { 1, 0 }, { 0, 0 }, { 3, 0 }, { 0, 0 }, { 1, 1 }, { 0, 0 }, { 2, 0 }, { 0, 0 }, { 1, 0 }, { 0, 1 }, { 4, 0 }, { 0, 0 }, { 1, 0 }, { 0, 0 }, { 2, 1 }, { 0, 0 }, { 1, 0 }, { 0, 0 }, { 3, 0 }, { 0, 1 }, { 1, 0 }, { 0, 0 }, { 2, 0 }, { 0, 0 }, { 1, 2 }, { 0, 0 }, { 5, 0 }, { 0, 0 }, { 1, 0 }, { 0, 1 }, { 2, 0 }, { 0, 0 }, { 1, 0 }, { 0, 0 }, { 3, 1 }, { 0, 0 }, { 1, 0 }, { 0, 0 }, { 2, 0 }, { 0, 1 }, { 1, 0 }, { 0, 0 }, { 4, 0 }, { 0, 0 }, { 1, 1 }, { 0, 0 }, { 2, 0 }, { 0, 0 }, { 1, 0 }, { 0, 3 }, { 3, 0 }, { 0, 0 }, { 1, 0 }, { 0, 0 }, { 2, 1 }, { 0, 0 }, { 1, 0 }, { 0, 0 }, { 7, 0 }, { 0, 1 }, { 1, 0 }, { 0, 0 }, { 2, 0 }, { 0, 0 }, { 1, 1 }, { 0, 0 }, { 3, 0 }, { 0, 0 }, { 1, 0 }, { 0, 1 }, { 2, 0 }, { 0, 0 }, { 1, 0 }, { 0, 0 }, { 4, 2 }, { 0, 0 }, { 1, 0 }, { 0, 0 }, { 2, 0 }, { 0, 1 }, { 1, 0 }, { 0, 0 }, { 3, 0 }, { 0, 0 }, { 1, 1 }, { 0, 0 }, { 2, 0 }, { 0, 0 }, { 1, 0 }, { 0, 1 }, { 5, 0 }, { 0, 0 }, { 1, 0 }, { 0, 0 }, { 2, 1 }, { 0, 0 }, { 1, 0 }, { 0, 0 }, { 3, 0 }, { 0, 2 }, { 1, 0 }, { 0, 0 }, { 2, 0 }, { 0, 0 }, { 1, 1 }, { 0, 0 }, { 4, 0 }, { 0, 0 }, { 1, 0 }, { 0, 1 }, { 2, 0 }, { 0, 0 }, { 1, 0 }, { 0, 0 }, { 3, 1 }, { 0, 0 }, { 1, 0 }, { 0, 0 }, { 2, 0 }, { 0, 1 }, { 1, 0 }, { 0, 0 }, { 6, 0 }, { 0, 0 }, { 1, 2 }, { 0, 0 }, { 2, 0 }, { 0, 0 }, { 1, 0 }, { 0, 1 }, { 3, 0 }, { 0, 0 }, { 1, 0 }, { 0, 0 }, { 2, 1 }, { 0, 0 }, { 1, 0 }, { 0, 0 }, { 4, 0 }, { 0, 1 }, { 1, 0 }, { 0, 0 }, { 2, 0 }, { 0, 0 }, { 1, 1 }, { 0, 0 }, { 3, 0 }, { 0, 0 }, { 1, 0 }, { 0, 2 }, { 2, 0 }, { 0, 0 }, { 1, 0 }, { 0, 0 }, { 5, 1 }, { 0, 0 }, { 1, 0 }, { 0, 0 }, { 2, 0 }, { 0, 1 }, { 1, 0 }, { 0, 0 }, { 3, 0 }, { 0, 0 }, { 1, 1 }, { 0, 0 }, { 2, 0 }, { 0, 0 }, { 1, 0 }, { 0, 1 }, { 4, 0 }, { 0, 0 }, { 1, 0 }, { 0, 0 }, { 2, 3 }, { 0, 0 }, { 1, 0 }, { 0, 0 }, { 3, 0 }, { 0, 1 }, { 1, 0 }, { 0, 0 }, { 2, 0 }, { 0, 0 }, { 1, 1 }, { 0, 0 }, { 9, 0 }, { 0, 0 }, { 1, 0 }, { 0, 1 }, { 2, 0 }, { 0, 0 }, { 1, 0 }, { 0, 0 }, { 3, 1 }, { 0, 0 }, { 1, 0 }, { 0, 0 }, { 2, 0 }, { 0, 2 }, { 1, 0 }, { 0, 0 }, { 4, 0 }, { 0, 0 }, { 1, 1 }, { 0, 0 }, { 2, 0 }, { 0, 0 }, { 1, 0 }, { 0, 1 }, { 3, 0 }, { 0, 0 }, { 1, 0 }, { 0, 0 }, { 2, 1 }, { 0, 0 }, { 1, 0 }, { 0, 0 }, { 5, 0 }, { 0, 1 }, { 1, 0 }, { 0, 0 }, { 2, 0 }, { 0, 0 }, { 1, 2 }, { 0, 0 }, { 3, 0 }, { 0, 0 }, { 1, 0 }, { 0, 1 }, { 2, 0 }, { 0, 0 }, { 1, 0 }, { 0, 0 }, { 4, 1 }, { 0, 0 }, { 1, 0 }, { 0, 0 }, { 2, 0 }, { 0, 1 }, { 1, 0 }, { 0, 0 }, { 3, 0 }, { 0, 0 }, { 1, 1 }, { 0, 0 }, { 2, 0 }, { 0, 0 }, { 1, 0 }, { 0, 2 }, { 6, 0 }, { 0, 0 }, { 1, 0 }, { 0, 0 }, { 2, 1 }, { 0, 0 }, { 1, 0 }, { 0, 0 }, { 3, 0 }, { 0, 1 }, { 1, 0 }, { 0, 0 }, { 2, 0 }, { 0, 0 }, { 1, 1 }, { 0, 0 }, { 4, 0 }, { 0, 0 }, { 1, 0 }, { 0, 1 }, { 2, 0 }, { 0, 0 }, { 1, 0 }, { 0, 0 }, { 3, 2 }, { 0, 0 }, { 1, 0 }, { 0, 0 }, { 2, 0 }, { 0, 1 }, { 1, 0 }, { 0, 0 }, { 5, 0 }, { 0, 0 }, { 1, 1 }, { 0, 0 }, { 2, 0 }, { 0, 0 }, { 1, 0 }, { 0, 1 }, { 3, 0 }, { 0, 0 }, { 1, 0 }, { 0, 0 }, { 2, 1 }, { 0, 0 }, { 1, 0 }, { 0, 0 }, { 4, 0 }, { 0, 4 }, { 1, 0 }, { 0, 0 }, { 2, 0 }, { 0, 0 }, { 1, 1 }, { 0, 0 }, { 3, 0 }, { 0, 0 }, { 1, 0 }, { 0, 1 }, { 2, 0 }, { 0, 0 }, { 1, 0 }, { 0, 0 }, { 7, 1 }, { 0, 0 }, { 1, 0 }, { 0, 0 }, { 2, 0 }, { 0, 1 }, { 1, 0 }, { 0, 0 }, { 3, 0 }, { 0, 0 }, { 1, 2 }, { 0, 0 }, { 2, 0 }, { 0, 0 }, { 1, 0 }, { 0, 1 }, { 4, 0 }, { 0, 0 }, { 1, 0 }, { 0, 0 }, { 2, 1 }, { 0, 0 }, { 1, 0 }, { 0, 0 }, { 3, 0 }, { 0, 1 }, { 1, 0 }, { 0, 0 }, { 2, 0 }, { 0, 0 }, { 1, 1 }, { 0, 0 }, { 5, 0 }, { 0, 0 }, { 1, 0 }, { 0, 2 }, { 2, 0 }, { 0, 0 }, { 1, 0 }, { 0, 0 }, { 3, 1 }, { 0, 0 }, { 1, 0 }, { 0, 0 }, { 2, 0 }, { 0, 1 }, { 1, 0 }, { 0, 0 }, { 4, 0 }, { 0, 0 }, { 1, 1 }, { 0, 0 }, { 2, 0 }, { 0, 0 }, { 1, 0 }, { 0, 1 }, { 3, 0 }, { 0, 0 }, { 1, 0 }, { 0, 0 }, { 2, 2 }, { 0, 0 }, { 1, 0 }, { 0, 0 }, { 6, 0 }, { 0, 1 }, { 1, 0 }, { 0, 0 }, { 2, 0 }, { 0, 0 }, { 1, 1 }, { 0, 0 }, { 3, 0 }, { 0, 0 }, { 1, 0 }, { 0, 1 }, { 2, 0 }, { 0, 0 }, { 1, 0 }, { 0, 0 }, { 4, 1 }, { 0, 0 }, { 1, 0 }, { 0, 0 }, { 2, 0 }, { 0, 2 }, { 1, 0 }, { 0, 0 }, { 3, 0 }, { 0, 0 }, { 1, 1 }, { 0, 0 }, { 2, 0 }, { 0, 0 }, { 1, 0 }, { 0, 1 }, { 5, 0 }, { 0, 0 }, { 1, 0 }, { 0, 0 }, { 2, 1 }, { 0, 0 }, { 1, 0 }, { 0, 0 }, { 3, 0 }, { 0, 1 }, { 1, 0 }, { 0, 0 }, { 2, 0 }, { 0, 0 }, { 1, 3 }, { 0, 0 }, { 4, 0 }, { 0, 0 }, { 1, 0 }, { 0, 1 }, { 2, 0 }, { 0, 0 }, { 1, 0 }, { 0, 0 }, { 3, 1 }, { 0, 0 }, { 1, 0 }, { 0, 0 }, { 2, 0 }, { 0, 1 }, { 1, 0 }, { 0, 0 }, { 8, 0 }, { 0, 0 }, { 1, 1 }, { 0, 0 }, { 2, 0 }, { 0, 0 }, { 1, 0 }, { 0, 2 }, { 3, 0 }, { 0, 0 }, { 1, 0 }, { 0, 0 }, { 2, 1 }, { 0, 0 }, { 1, 0 }, { 0, 0 }, { 4, 0 }, { 0, 1 }, { 1, 0 }, { 0, 0 }, { 2, 0 }, { 0, 0 }, { 1, 1 }, { 0, 0 }, { 3, 0 }, { 0, 0 }, { 1, 0 }, { 0, 1 }, { 2, 0 }, { 0, 0 }, { 1, 0 }, { 0, 0 }, { 5, 2 }, { 0, 0 }, { 1, 0 }, { 0, 0 }, { 2, 0 }, { 0, 1 }, { 1, 0 }, { 0, 0 }, { 3, 0 }, { 0, 0 }, { 1, 1 }, { 0, 0 }, { 2, 0 }, { 0, 0 }, { 1, 0 }, { 0, 1 }, { 4, 0 }, { 0, 0 }, { 1, 0 }, { 0, 0 }, { 2, 1 }, { 0, 0 }, { 1, 0 }, { 0, 0 }, { 3, 0 }, { 0, 2 }, { 1, 0 }, { 0, 0 }, { 2, 0 }, { 0, 0 }, { 1, 1 }, { 0, 0 }, { 6, 0 }, { 0, 0 }, { 1, 0 }, { 0, 1 }, { 2, 0 }, { 0, 0 }, { 1, 0 }, { 0, 0 }, { 3, 1 }, { 0, 0 }, { 1, 0 }, { 0, 0 }, { 2, 0 }, { 0, 1 }, { 1, 0 }, { 0, 0 }, { 4, 0 }, { 0, 0 }, { 1, 2 }, { 0, 0 }, { 2, 0 }, { 0, 0 }, { 1, 0 }, { 0, 1 }, { 3, 0 }, { 0, 0 }, { 1, 0 }, { 0, 0 }, { 2, 1 }, { 0, 0 }, { 1, 0 }, { 0, 0 }, { 5, 0 }, { 0, 1 }, { 1, 0 }, { 0, 0 }, { 2, 0 }, { 0, 0 }, { 1, 1 }, { 0, 0 }, { 3, 0 }, { 0, 0 }, { 1, 0 }, { 0, 3 }, { 2, 0 }, { 0, 0 }, { 1, 0 }, { 0, 0 }, { 4, 1 }, { 0, 0 }, { 1, 0 }, { 0, 0 }, { 2, 0 }, { 0, 1 }, { 1, 0 }, { 0, 0 }, { 3, 0 }, { 0, 0 }, { 1, 1 }, { 0, 0 }, { 2, 0 }, { 0, 0 }, { 1, 0 }, { 0, 1 }, { 7, 0 }, { 0, 0 }, { 1, 0 }, { 0, 0 }, { 2, 2 }, { 0, 0 }, { 1, 0 }, { 0, 0 }, { 3, 0 }, { 0, 1 }, { 1, 0 }, { 0, 0 }, { 2, 0 }, { 0, 0 }, { 1, 1 }, { 0, 0 }, { 4, 0 }, { 0, 0 }, { 1, 0 }, { 0, 1 }, { 2, 0 }, { 0, 0 }, { 1, 0 }, { 0, 0 }, { 3, 1 }, { 0, 0 }, { 1, 0 }, { 0, 0 }, { 2, 0 }, { 0, 2 }, { 1, 0 }, { 0, 0 }, { 5, 0 }, { 0, 0 }, { 1, 1 }, { 0, 0 }, { 2, 0 }, { 0, 0 }, { 1, 0 }, { 0, 1 }, { 3, 0 }, { 0, 0 }, { 1, 0 }, { 0, 0 }, { 2, 1 }, { 0, 0 }, { 1, 0 }, { 0, 0 }, { 4, 0 }, { 0, 1 }, { 1, 0 }, { 0, 0 }, { 2, 0 }, { 0, 0 }, { 1, 2 }, { 0, 0 }, { 3, 0 }, { 0, 0 }, { 1, 0 }, { 0, 1 }, { 2, 0 }, { 0, 0 }, { 1, 0 }, { 0, 0 }, { 6, 1 }, { 0, 0 }, { 1, 0 }, { 0, 0 }, { 2, 0 }, { 0, 1 }, { 1, 0 }, { 0, 0 }, { 3, 0 }, { 0, 0 }, { 1, 1 }, { 0, 0 }, { 2, 0 }, { 0, 0 }, { 1, 0 }, { 0, 2 }, { 4, 0 }, { 0, 0 }, { 1, 0 }, { 0, 0 }, { 2, 1 }, { 0, 0 }, { 1, 0 }, { 0, 0 }, { 3, 0 }, { 0, 1 }, { 1, 0 }, { 0, 0 }, { 2, 0 }, { 0, 0 }, { 1, 1 }, { 0, 0 }, { 5, 0 }, { 0, 0 }, { 1, 0 }, { 0, 1 }, { 2, 0 }, { 0, 0 }, { 1, 0 }, { 0, 0 }, { 3, 3 }, { 0, 0 }, { 1, 0 }, { 0, 0 }, { 2, 0 }, { 0, 1 }, { 1, 0 }, { 0, 0 }, { 4, 0 }, { 0, 0 }, { 1, 1 }, { 0, 0 }, { 2, 0 }, { 0, 0 }, { 1, 0 }, { 0, 1 }, { 3, 0 }, { 0, 0 }, { 1, 0 }, { 0, 0 }, { 2, 1 }, { 0, 0 }, { 1, 0 }, { 0, 0 }, { 10, 0 }, }; // bid_convert_table[j][k][i] = digit i (base 10^8) of k*2^(26+7*j) public static readonly BID_UINT32[,,] bid_convert_table /*[5][128][2]*/ = { { { 0, 0 }, { 67108864, 0 }, { 34217728, 1 }, { 1326592, 2 }, { 68435456, 2 }, { 35544320, 3 }, { 2653184, 4 }, { 69762048, 4 }, { 36870912, 5 }, { 3979776, 6 }, { 71088640, 6 }, { 38197504, 7 }, { 5306368, 8 }, { 72415232, 8 }, { 39524096, 9 }, { 6632960, 10 }, { 73741824, 10 }, { 40850688, 11 }, { 7959552, 12 }, { 75068416, 12 }, { 42177280, 13 }, { 9286144, 14 }, { 76395008, 14 }, { 43503872, 15 }, { 10612736, 16 }, { 77721600, 16 }, { 44830464, 17 }, { 11939328, 18 }, { 79048192, 18 }, { 46157056, 19 }, { 13265920, 20 }, { 80374784, 20 }, { 47483648, 21 }, { 14592512, 22 }, { 81701376, 22 }, { 48810240, 23 }, { 15919104, 24 }, { 83027968, 24 }, { 50136832, 25 }, { 17245696, 26 }, { 84354560, 26 }, { 51463424, 27 }, { 18572288, 28 }, { 85681152, 28 }, { 52790016, 29 }, { 19898880, 30 }, { 87007744, 30 }, { 54116608, 31 }, { 21225472, 32 }, { 88334336, 32 }, { 55443200, 33 }, { 22552064, 34 }, { 89660928, 34 }, { 56769792, 35 }, { 23878656, 36 }, { 90987520, 36 }, { 58096384, 37 }, { 25205248, 38 }, { 92314112, 38 }, { 59422976, 39 }, { 26531840, 40 }, { 93640704, 40 }, { 60749568, 41 }, { 27858432, 42 }, { 94967296, 42 }, { 62076160, 43 }, { 29185024, 44 }, { 96293888, 44 }, { 63402752, 45 }, { 30511616, 46 }, { 97620480, 46 }, { 64729344, 47 }, { 31838208, 48 }, { 98947072, 48 }, { 66055936, 49 }, { 33164800, 50 }, { 273664, 51 }, { 67382528, 51 }, { 34491392, 52 }, { 1600256, 53 }, { 68709120, 53 }, { 35817984, 54 }, { 2926848, 55 }, { 70035712, 55 }, { 37144576, 56 }, { 4253440, 57 }, { 71362304, 57 }, { 38471168, 58 }, { 5580032, 59 }, { 72688896, 59 }, { 39797760, 60 }, { 6906624, 61 }, { 74015488, 61 }, { 41124352, 62 }, { 8233216, 63 }, { 75342080, 63 }, { 42450944, 64 }, { 9559808, 65 }, { 76668672, 65 }, { 43777536, 66 }, { 10886400, 67 }, { 77995264, 67 }, { 45104128, 68 }, { 12212992, 69 }, { 79321856, 69 }, { 46430720, 70 }, { 13539584, 71 }, { 80648448, 71 }, { 47757312, 72 }, { 14866176, 73 }, { 81975040, 73 }, { 49083904, 74 }, { 16192768, 75 }, { 83301632, 75 }, { 50410496, 76 }, { 17519360, 77 }, { 84628224, 77 }, { 51737088, 78 }, { 18845952, 79 }, { 85954816, 79 }, { 53063680, 80 }, { 20172544, 81 }, { 87281408, 81 }, { 54390272, 82 }, { 21499136, 83 }, { 88608000, 83 }, { 55716864, 84 }, { 22825728, 85 }, }, { { 0, 0 }, { 89934592, 85 }, { 79869184, 171 }, { 69803776, 257 }, { 59738368, 343 }, { 49672960, 429 }, { 39607552, 515 }, { 29542144, 601 }, { 19476736, 687 }, { 9411328, 773 }, { 99345920, 858 }, { 89280512, 944 }, { 79215104, 1030 }, { 69149696, 1116 }, { 59084288, 1202 }, { 49018880, 1288 }, { 38953472, 1374 }, { 28888064, 1460 }, { 18822656, 1546 }, { 8757248, 1632 }, { 98691840, 1717 }, { 88626432, 1803 }, { 78561024, 1889 }, { 68495616, 1975 }, { 58430208, 2061 }, { 48364800, 2147 }, { 38299392, 2233 }, { 28233984, 2319 }, { 18168576, 2405 }, { 8103168, 2491 }, { 98037760, 2576 }, { 87972352, 2662 }, { 77906944, 2748 }, { 67841536, 2834 }, { 57776128, 2920 }, { 47710720, 3006 }, { 37645312, 3092 }, { 27579904, 3178 }, { 17514496, 3264 }, { 7449088, 3350 }, { 97383680, 3435 }, { 87318272, 3521 }, { 77252864, 3607 }, { 67187456, 3693 }, { 57122048, 3779 }, { 47056640, 3865 }, { 36991232, 3951 }, { 26925824, 4037 }, { 16860416, 4123 }, { 6795008, 4209 }, { 96729600, 4294 }, { 86664192, 4380 }, { 76598784, 4466 }, { 66533376, 4552 }, { 56467968, 4638 }, { 46402560, 4724 }, { 36337152, 4810 }, { 26271744, 4896 }, { 16206336, 4982 }, { 6140928, 5068 }, { 96075520, 5153 }, { 86010112, 5239 }, { 75944704, 5325 }, { 65879296, 5411 }, { 55813888, 5497 }, { 45748480, 5583 }, { 35683072, 5669 }, { 25617664, 5755 }, { 15552256, 5841 }, { 5486848, 5927 }, { 95421440, 6012 }, { 85356032, 6098 }, { 75290624, 6184 }, { 65225216, 6270 }, { 55159808, 6356 }, { 45094400, 6442 }, { 35028992, 6528 }, { 24963584, 6614 }, { 14898176, 6700 }, { 4832768, 6786 }, { 94767360, 6871 }, { 84701952, 6957 }, { 74636544, 7043 }, { 64571136, 7129 }, { 54505728, 7215 }, { 44440320, 7301 }, { 34374912, 7387 }, { 24309504, 7473 }, { 14244096, 7559 }, { 4178688, 7645 }, { 94113280, 7730 }, { 84047872, 7816 }, { 73982464, 7902 }, { 63917056, 7988 }, { 53851648, 8074 }, { 43786240, 8160 }, { 33720832, 8246 }, { 23655424, 8332 }, { 13590016, 8418 }, { 3524608, 8504 }, { 93459200, 8589 }, { 83393792, 8675 }, { 73328384, 8761 }, { 63262976, 8847 }, { 53197568, 8933 }, { 43132160, 9019 }, { 33066752, 9105 }, { 23001344, 9191 }, { 12935936, 9277 }, { 2870528, 9363 }, { 92805120, 9448 }, { 82739712, 9534 }, { 72674304, 9620 }, { 62608896, 9706 }, { 52543488, 9792 }, { 42478080, 9878 }, { 32412672, 9964 }, { 22347264, 10050 }, { 12281856, 10136 }, { 2216448, 10222 }, { 92151040, 10307 }, { 82085632, 10393 }, { 72020224, 10479 }, { 61954816, 10565 }, { 51889408, 10651 }, { 41824000, 10737 }, { 31758592, 10823 }, { 21693184, 10909 }, }, { { 0, 0 }, { 11627776, 10995 }, { 23255552, 21990 }, { 34883328, 32985 }, { 46511104, 43980 }, { 58138880, 54975 }, { 69766656, 65970 }, { 81394432, 76965 }, { 93022208, 87960 }, { 4649984, 98956 }, { 16277760, 109951 }, { 27905536, 120946 }, { 39533312, 131941 }, { 51161088, 142936 }, { 62788864, 153931 }, { 74416640, 164926 }, { 86044416, 175921 }, { 97672192, 186916 }, { 9299968, 197912 }, { 20927744, 208907 }, { 32555520, 219902 }, { 44183296, 230897 }, { 55811072, 241892 }, { 67438848, 252887 }, { 79066624, 263882 }, { 90694400, 274877 }, { 2322176, 285873 }, { 13949952, 296868 }, { 25577728, 307863 }, { 37205504, 318858 }, { 48833280, 329853 }, { 60461056, 340848 }, { 72088832, 351843 }, { 83716608, 362838 }, { 95344384, 373833 }, { 6972160, 384829 }, { 18599936, 395824 }, { 30227712, 406819 }, { 41855488, 417814 }, { 53483264, 428809 }, { 65111040, 439804 }, { 76738816, 450799 }, { 88366592, 461794 }, { 99994368, 472789 }, { 11622144, 483785 }, { 23249920, 494780 }, { 34877696, 505775 }, { 46505472, 516770 }, { 58133248, 527765 }, { 69761024, 538760 }, { 81388800, 549755 }, { 93016576, 560750 }, { 4644352, 571746 }, { 16272128, 582741 }, { 27899904, 593736 }, { 39527680, 604731 }, { 51155456, 615726 }, { 62783232, 626721 }, { 74411008, 637716 }, { 86038784, 648711 }, { 97666560, 659706 }, { 9294336, 670702 }, { 20922112, 681697 }, { 32549888, 692692 }, { 44177664, 703687 }, { 55805440, 714682 }, { 67433216, 725677 }, { 79060992, 736672 }, { 90688768, 747667 }, { 2316544, 758663 }, { 13944320, 769658 }, { 25572096, 780653 }, { 37199872, 791648 }, { 48827648, 802643 }, { 60455424, 813638 }, { 72083200, 824633 }, { 83710976, 835628 }, { 95338752, 846623 }, { 6966528, 857619 }, { 18594304, 868614 }, { 30222080, 879609 }, { 41849856, 890604 }, { 53477632, 901599 }, { 65105408, 912594 }, { 76733184, 923589 }, { 88360960, 934584 }, { 99988736, 945579 }, { 11616512, 956575 }, { 23244288, 967570 }, { 34872064, 978565 }, { 46499840, 989560 }, { 58127616, 1000555 }, { 69755392, 1011550 }, { 81383168, 1022545 }, { 93010944, 1033540 }, { 4638720, 1044536 }, { 16266496, 1055531 }, { 27894272, 1066526 }, { 39522048, 1077521 }, { 51149824, 1088516 }, { 62777600, 1099511 }, { 74405376, 1110506 }, { 86033152, 1121501 }, { 97660928, 1132496 }, { 9288704, 1143492 }, { 20916480, 1154487 }, { 32544256, 1165482 }, { 44172032, 1176477 }, { 55799808, 1187472 }, { 67427584, 1198467 }, { 79055360, 1209462 }, { 90683136, 1220457 }, { 2310912, 1231453 }, { 13938688, 1242448 }, { 25566464, 1253443 }, { 37194240, 1264438 }, { 48822016, 1275433 }, { 60449792, 1286428 }, { 72077568, 1297423 }, { 83705344, 1308418 }, { 95333120, 1319413 }, { 6960896, 1330409 }, { 18588672, 1341404 }, { 30216448, 1352399 }, { 41844224, 1363394 }, { 53472000, 1374389 }, { 65099776, 1385384 }, { 76727552, 1396379 }, }, { { 0, 0 }, { 88355328, 1407374 }, { 76710656, 2814749 }, { 65065984, 4222124 }, { 53421312, 5629499 }, { 41776640, 7036874 }, { 30131968, 8444249 }, { 18487296, 9851624 }, { 6842624, 11258999 }, { 95197952, 12666373 }, { 83553280, 14073748 }, { 71908608, 15481123 }, { 60263936, 16888498 }, { 48619264, 18295873 }, { 36974592, 19703248 }, { 25329920, 21110623 }, { 13685248, 22517998 }, { 2040576, 23925373 }, { 90395904, 25332747 }, { 78751232, 26740122 }, { 67106560, 28147497 }, { 55461888, 29554872 }, { 43817216, 30962247 }, { 32172544, 32369622 }, { 20527872, 33776997 }, { 8883200, 35184372 }, { 97238528, 36591746 }, { 85593856, 37999121 }, { 73949184, 39406496 }, { 62304512, 40813871 }, { 50659840, 42221246 }, { 39015168, 43628621 }, { 27370496, 45035996 }, { 15725824, 46443371 }, { 4081152, 47850746 }, { 92436480, 49258120 }, { 80791808, 50665495 }, { 69147136, 52072870 }, { 57502464, 53480245 }, { 45857792, 54887620 }, { 34213120, 56294995 }, { 22568448, 57702370 }, { 10923776, 59109745 }, { 99279104, 60517119 }, { 87634432, 61924494 }, { 75989760, 63331869 }, { 64345088, 64739244 }, { 52700416, 66146619 }, { 41055744, 67553994 }, { 29411072, 68961369 }, { 17766400, 70368744 }, { 6121728, 71776119 }, { 94477056, 73183493 }, { 82832384, 74590868 }, { 71187712, 75998243 }, { 59543040, 77405618 }, { 47898368, 78812993 }, { 36253696, 80220368 }, { 24609024, 81627743 }, { 12964352, 83035118 }, { 1319680, 84442493 }, { 89675008, 85849867 }, { 78030336, 87257242 }, { 66385664, 88664617 }, { 54740992, 90071992 }, { 43096320, 91479367 }, { 31451648, 92886742 }, { 19806976, 94294117 }, { 8162304, 95701492 }, { 96517632, 97108866 }, { 84872960, 98516241 }, { 73228288, 99923616 }, { 61583616, 1330991 }, { 49938944, 2738366 }, { 38294272, 4145741 }, { 26649600, 5553116 }, { 15004928, 6960491 }, { 3360256, 8367866 }, { 91715584, 9775240 }, { 80070912, 11182615 }, { 68426240, 12589990 }, { 56781568, 13997365 }, { 45136896, 15404740 }, { 33492224, 16812115 }, { 21847552, 18219490 }, { 10202880, 19626865 }, { 98558208, 21034239 }, { 86913536, 22441614 }, { 75268864, 23848989 }, { 63624192, 25256364 }, { 51979520, 26663739 }, { 40334848, 28071114 }, { 28690176, 29478489 }, { 17045504, 30885864 }, { 5400832, 32293239 }, { 93756160, 33700613 }, { 82111488, 35107988 }, { 70466816, 36515363 }, { 58822144, 37922738 }, { 47177472, 39330113 }, { 35532800, 40737488 }, { 23888128, 42144863 }, { 12243456, 43552238 }, { 598784, 44959613 }, { 88954112, 46366987 }, { 77309440, 47774362 }, { 65664768, 49181737 }, { 54020096, 50589112 }, { 42375424, 51996487 }, { 30730752, 53403862 }, { 19086080, 54811237 }, { 7441408, 56218612 }, { 95796736, 57625986 }, { 84152064, 59033361 }, { 72507392, 60440736 }, { 60862720, 61848111 }, { 49218048, 63255486 }, { 37573376, 64662861 }, { 25928704, 66070236 }, { 14284032, 67477611 }, { 2639360, 68884986 }, { 90994688, 70292360 }, { 79350016, 71699735 }, { 67705344, 73107110 }, { 56060672, 74514485 }, { 44416000, 75921860 }, { 32771328, 77329235 }, { 21126656, 78736610 }, }, { { 0, 0 }, { 9481984, 80143985 }, { 18963968, 60287970 }, { 28445952, 40431955 }, { 37927936, 20575940 }, { 47409920, 719925 }, { 56891904, 80863910 }, { 66373888, 61007895 }, { 75855872, 41151880 }, { 85337856, 21295865 }, { 94819840, 1439850 }, { 4301824, 81583836 }, { 13783808, 61727821 }, { 23265792, 41871806 }, { 32747776, 22015791 }, { 42229760, 2159776 }, { 51711744, 82303761 }, { 61193728, 62447746 }, { 70675712, 42591731 }, { 80157696, 22735716 }, { 89639680, 2879701 }, { 99121664, 83023686 }, { 8603648, 63167672 }, { 18085632, 43311657 }, { 27567616, 23455642 }, { 37049600, 3599627 }, { 46531584, 83743612 }, { 56013568, 63887597 }, { 65495552, 44031582 }, { 74977536, 24175567 }, { 84459520, 4319552 }, { 93941504, 84463537 }, { 3423488, 64607523 }, { 12905472, 44751508 }, { 22387456, 24895493 }, { 31869440, 5039478 }, { 41351424, 85183463 }, { 50833408, 65327448 }, { 60315392, 45471433 }, { 69797376, 25615418 }, { 79279360, 5759403 }, { 88761344, 85903388 }, { 98243328, 66047373 }, { 7725312, 46191359 }, { 17207296, 26335344 }, { 26689280, 6479329 }, { 36171264, 86623314 }, { 45653248, 66767299 }, { 55135232, 46911284 }, { 64617216, 27055269 }, { 74099200, 7199254 }, { 83581184, 87343239 }, { 93063168, 67487224 }, { 2545152, 47631210 }, { 12027136, 27775195 }, { 21509120, 7919180 }, { 30991104, 88063165 }, { 40473088, 68207150 }, { 49955072, 48351135 }, { 59437056, 28495120 }, { 68919040, 8639105 }, { 78401024, 88783090 }, { 87883008, 68927075 }, { 97364992, 49071060 }, { 6846976, 29215046 }, { 16328960, 9359031 }, { 25810944, 89503016 }, { 35292928, 69647001 }, { 44774912, 49790986 }, { 54256896, 29934971 }, { 63738880, 10078956 }, { 73220864, 90222941 }, { 82702848, 70366926 }, { 92184832, 50510911 }, { 1666816, 30654897 }, { 11148800, 10798882 }, { 20630784, 90942867 }, { 30112768, 71086852 }, { 39594752, 51230837 }, { 49076736, 31374822 }, { 58558720, 11518807 }, { 68040704, 91662792 }, { 77522688, 71806777 }, { 87004672, 51950762 }, { 96486656, 32094747 }, { 5968640, 12238733 }, { 15450624, 92382718 }, { 24932608, 72526703 }, { 34414592, 52670688 }, { 43896576, 32814673 }, { 53378560, 12958658 }, { 62860544, 93102643 }, { 72342528, 73246628 }, { 81824512, 53390613 }, { 91306496, 33534598 }, { 788480, 13678584 }, { 10270464, 93822569 }, { 19752448, 73966554 }, { 29234432, 54110539 }, { 38716416, 34254524 }, { 48198400, 14398509 }, { 57680384, 94542494 }, { 67162368, 74686479 }, { 76644352, 54830464 }, { 86126336, 34974449 }, { 95608320, 15118434 }, { 5090304, 95262420 }, { 14572288, 75406405 }, { 24054272, 55550390 }, { 33536256, 35694375 }, { 43018240, 15838360 }, { 52500224, 95982345 }, { 61982208, 76126330 }, { 71464192, 56270315 }, { 80946176, 36414300 }, { 90428160, 16558285 }, { 99910144, 96702270 }, { 9392128, 76846256 }, { 18874112, 56990241 }, { 28356096, 37134226 }, { 37838080, 17278211 }, { 47320064, 97422196 }, { 56802048, 77566181 }, { 66284032, 57710166 }, { 75766016, 37854151 }, { 85248000, 17998136 }, { 94729984, 98142121 }, { 4211968, 78286107 }, }, }; // for even k, ((bid_packed_10000_zeros[k>>3])>>(k&7))&3)=greatest(i) s.t. 10^i divides k public static readonly BID_UINT8[] bid_packed_10000_zeros = { 0x3, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x20, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x2, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x20, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x2, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x20, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x2, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x20, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x2, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x20, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x3, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x20, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x2, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x20, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x2, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x20, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x2, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x20, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x2, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x20, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x3, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x20, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x2, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x20, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x2, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x20, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x2, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x20, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x2, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x20, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x3, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x20, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x2, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x20, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x2, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x20, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x2, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x20, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x2, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x20, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x3, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x20, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x2, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x20, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x2, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x20, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x2, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x20, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x2, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x20, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x3, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x20, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x2, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x20, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x2, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x20, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x2, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x20, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x2, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x20, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x3, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x20, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x2, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x20, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x2, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x20, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x2, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x20, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x2, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x20, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x3, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x20, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x2, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x20, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x2, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x20, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x2, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x20, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x2, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x20, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x3, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x20, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x2, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x20, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x2, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x20, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x2, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x20, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x2, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x20, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x3, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x20, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x2, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x20, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x2, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x20, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x2, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x20, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x2, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x20, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, }; } }