I was working on making the CRC32 faster, I found a blog on using a Slicing-by-8 algorithm to process it faster. Right now it doesn't seem any faster to me. Anyway I can use the getSignedLong(n%) to grab 4 bytes at once instead of making 4 seperate calls to GetSignedByte(n%) ?
Also how to I expand the rdXOR(i7%,rdXOR(i6%,rdXOR(i5%,i4%))) call so I can get rid of the function calls overhead?
Thanks,
Troy
' ****************************************************************
' * Calculate the standard 32-bit CRC used by numerous standards *
' * Using the Slicing-by-8 Algorithm on Roku by Troy Davis(GPF) *
' * based off blog on http://create.stephan-brumme.com/crc32/ *
' ****************************************************************
function slice8CRC() as object
this = {
updateSlice8CRC: function(num as integer, buf as object) as integer
crc% = num
lastn% = buf.count() - 1
n%=0
k%=0
while (lastn% >=8)
current0% = rdXOR(buf.GetSignedByte(n%),crc%):n%=n%+1
current1% = rdXOR(buf.GetSignedByte(n%),rdRightShift(crc%,8)):n%=n%+1
current2% = rdXOR(buf.GetSignedByte(n%),rdRightShift(crc%,16)):n%=n%+1
current3% = rdXOR(buf.GetSignedByte(n%),rdRightShift(crc%,24)):n%=n%+1
i7% = m.crc32Lookup[7][current0% and &HFF]
i6% = m.crc32Lookup[6][current1% and &HFF]
i5% = m.crc32Lookup[5][current2% and &HFF]
i4% = m.crc32Lookup[4][current3% and &HFF]
crc%= rdXOR(i7%,rdXOR(i6%,rdXOR(i5%,i4%)))
i3% = m.crc32Lookup[3][buf.GetSignedByte(n%) and &HFF]:n%=n%+1
i2% = m.crc32Lookup[2][buf.GetSignedByte(n%) and &HFF]:n%=n%+1
i1% = m.crc32Lookup[1][buf.GetSignedByte(n%) and &HFF]:n%=n%+1
i0% = m.crc32Lookup[0][buf.GetSignedByte(n%) and &HFF]:n%=n%+1
crc%= rdXOR(crc%,rdXOR(i3%,rdXOR(i2%,rdXOR(i1%,i0%))))
lastn%=lastn%-8
k%=n%
end while
for n% = k% to buf.count() - 1
current% = buf.GetSignedByte(n%)':?n%
index% = ( (crc% and not current%) or (not crc% and current% ) ) and &hFF
shiftedc% = ((crc% and &hFFFFFF00)/256) and &hFFFFFF
crc% = ( (shiftedc% and not m.crc32Lookup[0][index%] ) or (not shiftedc% and m.crc32Lookup[0][index%]))
end for
return crc%
end function
' Member vars
crc32Lookup:[
[
&H00000000,&H77073096,&HEE0E612C,&H990951BA,&H076DC419,&H706AF48F,&HE963A535,&H9E6495A3,
&H0EDB8832,&H79DCB8A4,&HE0D5E91E,&H97D2D988,&H09B64C2B,&H7EB17CBD,&HE7B82D07,&H90BF1D91,
&H1DB71064,&H6AB020F2,&HF3B97148,&H84BE41DE,&H1ADAD47D,&H6DDDE4EB,&HF4D4B551,&H83D385C7,
&H136C9856,&H646BA8C0,&HFD62F97A,&H8A65C9EC,&H14015C4F,&H63066CD9,&HFA0F3D63,&H8D080DF5,
&H3B6E20C8,&H4C69105E,&HD56041E4,&HA2677172,&H3C03E4D1,&H4B04D447,&HD20D85FD,&HA50AB56B,
&H35B5A8FA,&H42B2986C,&HDBBBC9D6,&HACBCF940,&H32D86CE3,&H45DF5C75,&HDCD60DCF,&HABD13D59,
&H26D930AC,&H51DE003A,&HC8D75180,&HBFD06116,&H21B4F4B5,&H56B3C423,&HCFBA9599,&HB8BDA50F,
&H2802B89E,&H5F058808,&HC60CD9B2,&HB10BE924,&H2F6F7C87,&H58684C11,&HC1611DAB,&HB6662D3D,
&H76DC4190,&H01DB7106,&H98D220BC,&HEFD5102A,&H71B18589,&H06B6B51F,&H9FBFE4A5,&HE8B8D433,
&H7807C9A2,&H0F00F934,&H9609A88E,&HE10E9818,&H7F6A0DBB,&H086D3D2D,&H91646C97,&HE6635C01,
&H6B6B51F4,&H1C6C6162,&H856530D8,&HF262004E,&H6C0695ED,&H1B01A57B,&H8208F4C1,&HF50FC457,
&H65B0D9C6,&H12B7E950,&H8BBEB8EA,&HFCB9887C,&H62DD1DDF,&H15DA2D49,&H8CD37CF3,&HFBD44C65,
&H4DB26158,&H3AB551CE,&HA3BC0074,&HD4BB30E2,&H4ADFA541,&H3DD895D7,&HA4D1C46D,&HD3D6F4FB,
&H4369E96A,&H346ED9FC,&HAD678846,&HDA60B8D0,&H44042D73,&H33031DE5,&HAA0A4C5F,&HDD0D7CC9,
&H5005713C,&H270241AA,&HBE0B1010,&HC90C2086,&H5768B525,&H206F85B3,&HB966D409,&HCE61E49F,
&H5EDEF90E,&H29D9C998,&HB0D09822,&HC7D7A8B4,&H59B33D17,&H2EB40D81,&HB7BD5C3B,&HC0BA6CAD,
&HEDB88320,&H9ABFB3B6,&H03B6E20C,&H74B1D29A,&HEAD54739,&H9DD277AF,&H04DB2615,&H73DC1683,
&HE3630B12,&H94643B84,&H0D6D6A3E,&H7A6A5AA8,&HE40ECF0B,&H9309FF9D,&H0A00AE27,&H7D079EB1,
&HF00F9344,&H8708A3D2,&H1E01F268,&H6906C2FE,&HF762575D,&H806567CB,&H196C3671,&H6E6B06E7,
&HFED41B76,&H89D32BE0,&H10DA7A5A,&H67DD4ACC,&HF9B9DF6F,&H8EBEEFF9,&H17B7BE43,&H60B08ED5,
&HD6D6A3E8,&HA1D1937E,&H38D8C2C4,&H4FDFF252,&HD1BB67F1,&HA6BC5767,&H3FB506DD,&H48B2364B,
&HD80D2BDA,&HAF0A1B4C,&H36034AF6,&H41047A60,&HDF60EFC3,&HA867DF55,&H316E8EEF,&H4669BE79,
&HCB61B38C,&HBC66831A,&H256FD2A0,&H5268E236,&HCC0C7795,&HBB0B4703,&H220216B9,&H5505262F,
&HC5BA3BBE,&HB2BD0B28,&H2BB45A92,&H5CB36A04,&HC2D7FFA7,&HB5D0CF31,&H2CD99E8B,&H5BDEAE1D,
&H9B64C2B0,&HEC63F226,&H756AA39C,&H026D930A,&H9C0906A9,&HEB0E363F,&H72076785,&H05005713,
&H95BF4A82,&HE2B87A14,&H7BB12BAE,&H0CB61B38,&H92D28E9B,&HE5D5BE0D,&H7CDCEFB7,&H0BDBDF21,
&H86D3D2D4,&HF1D4E242,&H68DDB3F8,&H1FDA836E,&H81BE16CD,&HF6B9265B,&H6FB077E1,&H18B74777,
&H88085AE6,&HFF0F6A70,&H66063BCA,&H11010B5C,&H8F659EFF,&HF862AE69,&H616BFFD3,&H166CCF45,
&HA00AE278,&HD70DD2EE,&H4E048354,&H3903B3C2,&HA7672661,&HD06016F7,&H4969474D,&H3E6E77DB,
&HAED16A4A,&HD9D65ADC,&H40DF0B66,&H37D83BF0,&HA9BCAE53,&HDEBB9EC5,&H47B2CF7F,&H30B5FFE9,
&HBDBDF21C,&HCABAC28A,&H53B39330,&H24B4A3A6,&HBAD03605,&HCDD70693,&H54DE5729,&H23D967BF,
&HB3667A2E,&HC4614AB8,&H5D681B02,&H2A6F2B94,&HB40BBE37,&HC30C8EA1,&H5A05DF1B,&H2D02EF8D ],
' beyond this point only relevant for Slicing-by-4 and Slicing-By-8
[ &H00000000,&H191B3141,&H32366282,&H2B2D53C3,&H646CC504,&H7D77F445,&H565AA786,&H4F4196C7,
&HC8D98A08,&HD1C2BB49,&HFAEFE88A,&HE3F4D9CB,&HACB54F0C,&HB5AE7E4D,&H9E832D8E,&H87981CCF,
&H4AC21251,&H53D92310,&H78F470D3,&H61EF4192,&H2EAED755,&H37B5E614,&H1C98B5D7,&H05838496,
&H821B9859,&H9B00A918,&HB02DFADB,&HA936CB9A,&HE6775D5D,&HFF6C6C1C,&HD4413FDF,&HCD5A0E9E,
&H958424A2,&H8C9F15E3,&HA7B24620,&HBEA97761,&HF1E8E1A6,&HE8F3D0E7,&HC3DE8324,&HDAC5B265,
&H5D5DAEAA,&H44469FEB,&H6F6BCC28,&H7670FD69,&H39316BAE,&H202A5AEF,&H0B07092C,&H121C386D,
&HDF4636F3,&HC65D07B2,&HED705471,&HF46B6530,&HBB2AF3F7,&HA231C2B6,&H891C9175,&H9007A034,
&H179FBCFB,&H0E848DBA,&H25A9DE79,&H3CB2EF38,&H73F379FF,&H6AE848BE,&H41C51B7D,&H58DE2A3C,
&HF0794F05,&HE9627E44,&HC24F2D87,&HDB541CC6,&H94158A01,&H8D0EBB40,&HA623E883,&HBF38D9C2,
&H38A0C50D,&H21BBF44C,&H0A96A78F,&H138D96CE,&H5CCC0009,&H45D73148,&H6EFA628B,&H77E153CA,
&HBABB5D54,&HA3A06C15,&H888D3FD6,&H91960E97,&HDED79850,&HC7CCA911,&HECE1FAD2,&HF5FACB93,
&H7262D75C,&H6B79E61D,&H4054B5DE,&H594F849F,&H160E1258,&H0F152319,&H243870DA,&H3D23419B,
&H65FD6BA7,&H7CE65AE6,&H57CB0925,&H4ED03864,&H0191AEA3,&H188A9FE2,&H33A7CC21,&H2ABCFD60,
&HAD24E1AF,&HB43FD0EE,&H9F12832D,&H8609B26C,&HC94824AB,&HD05315EA,&HFB7E4629,&HE2657768,
&H2F3F79F6,&H362448B7,&H1D091B74,&H04122A35,&H4B53BCF2,&H52488DB3,&H7965DE70,&H607EEF31,
&HE7E6F3FE,&HFEFDC2BF,&HD5D0917C,&HCCCBA03D,&H838A36FA,&H9A9107BB,&HB1BC5478,&HA8A76539,
&H3B83984B,&H2298A90A,&H09B5FAC9,&H10AECB88,&H5FEF5D4F,&H46F46C0E,&H6DD93FCD,&H74C20E8C,
&HF35A1243,&HEA412302,&HC16C70C1,&HD8774180,&H9736D747,&H8E2DE606,&HA500B5C5,&HBC1B8484,
&H71418A1A,&H685ABB5B,&H4377E898,&H5A6CD9D9,&H152D4F1E,&H0C367E5F,&H271B2D9C,&H3E001CDD,
&HB9980012,&HA0833153,&H8BAE6290,&H92B553D1,&HDDF4C516,&HC4EFF457,&HEFC2A794,&HF6D996D5,
&HAE07BCE9,&HB71C8DA8,&H9C31DE6B,&H852AEF2A,&HCA6B79ED,&HD37048AC,&HF85D1B6F,&HE1462A2E,
&H66DE36E1,&H7FC507A0,&H54E85463,&H4DF36522,&H02B2F3E5,&H1BA9C2A4,&H30849167,&H299FA026,
&HE4C5AEB8,&HFDDE9FF9,&HD6F3CC3A,&HCFE8FD7B,&H80A96BBC,&H99B25AFD,&HB29F093E,&HAB84387F,
&H2C1C24B0,&H350715F1,&H1E2A4632,&H07317773,&H4870E1B4,&H516BD0F5,&H7A468336,&H635DB277,
&HCBFAD74E,&HD2E1E60F,&HF9CCB5CC,&HE0D7848D,&HAF96124A,&HB68D230B,&H9DA070C8,&H84BB4189,
&H03235D46,&H1A386C07,&H31153FC4,&H280E0E85,&H674F9842,&H7E54A903,&H5579FAC0,&H4C62CB81,
&H8138C51F,&H9823F45E,&HB30EA79D,&HAA1596DC,&HE554001B,&HFC4F315A,&HD7626299,&HCE7953D8,
&H49E14F17,&H50FA7E56,&H7BD72D95,&H62CC1CD4,&H2D8D8A13,&H3496BB52,&H1FBBE891,&H06A0D9D0,
&H5E7EF3EC,&H4765C2AD,&H6C48916E,&H7553A02F,&H3A1236E8,&H230907A9,&H0824546A,&H113F652B,
&H96A779E4,&H8FBC48A5,&HA4911B66,&HBD8A2A27,&HF2CBBCE0,&HEBD08DA1,&HC0FDDE62,&HD9E6EF23,
&H14BCE1BD,&H0DA7D0FC,&H268A833F,&H3F91B27E,&H70D024B9,&H69CB15F8,&H42E6463B,&H5BFD777A,
&HDC656BB5,&HC57E5AF4,&HEE530937,&HF7483876,&HB809AEB1,&HA1129FF0,&H8A3FCC33,&H9324FD72 ],
[ &H00000000,&H01C26A37,&H0384D46E,&H0246BE59,&H0709A8DC,&H06CBC2EB,&H048D7CB2,&H054F1685,
&H0E1351B8,&H0FD13B8F,&H0D9785D6,&H0C55EFE1,&H091AF964,&H08D89353,&H0A9E2D0A,&H0B5C473D,
&H1C26A370,&H1DE4C947,&H1FA2771E,&H1E601D29,&H1B2F0BAC,&H1AED619B,&H18ABDFC2,&H1969B5F5,
&H1235F2C8,&H13F798FF,&H11B126A6,&H10734C91,&H153C5A14,&H14FE3023,&H16B88E7A,&H177AE44D,
&H384D46E0,&H398F2CD7,&H3BC9928E,&H3A0BF8B9,&H3F44EE3C,&H3E86840B,&H3CC03A52,&H3D025065,
&H365E1758,&H379C7D6F,&H35DAC336,&H3418A901,&H3157BF84,&H3095D5B3,&H32D36BEA,&H331101DD,
&H246BE590,&H25A98FA7,&H27EF31FE,&H262D5BC9,&H23624D4C,&H22A0277B,&H20E69922,&H2124F315,
&H2A78B428,&H2BBADE1F,&H29FC6046,&H283E0A71,&H2D711CF4,&H2CB376C3,&H2EF5C89A,&H2F37A2AD,
&H709A8DC0,&H7158E7F7,&H731E59AE,&H72DC3399,&H7793251C,&H76514F2B,&H7417F172,&H75D59B45,
&H7E89DC78,&H7F4BB64F,&H7D0D0816,&H7CCF6221,&H798074A4,&H78421E93,&H7A04A0CA,&H7BC6CAFD,
&H6CBC2EB0,&H6D7E4487,&H6F38FADE,&H6EFA90E9,&H6BB5866C,&H6A77EC5B,&H68315202,&H69F33835,
&H62AF7F08,&H636D153F,&H612BAB66,&H60E9C151,&H65A6D7D4,&H6464BDE3,&H662203BA,&H67E0698D,
&H48D7CB20,&H4915A117,&H4B531F4E,&H4A917579,&H4FDE63FC,&H4E1C09CB,&H4C5AB792,&H4D98DDA5,
&H46C49A98,&H4706F0AF,&H45404EF6,&H448224C1,&H41CD3244,&H400F5873,&H4249E62A,&H438B8C1D,
&H54F16850,&H55330267,&H5775BC3E,&H56B7D609,&H53F8C08C,&H523AAABB,&H507C14E2,&H51BE7ED5,
&H5AE239E8,&H5B2053DF,&H5966ED86,&H58A487B1,&H5DEB9134,&H5C29FB03,&H5E6F455A,&H5FAD2F6D,
&HE1351B80,&HE0F771B7,&HE2B1CFEE,&HE373A5D9,&HE63CB35C,&HE7FED96B,&HE5B86732,&HE47A0D05,
&HEF264A38,&HEEE4200F,&HECA29E56,&HED60F461,&HE82FE2E4,&HE9ED88D3,&HEBAB368A,&HEA695CBD,
&HFD13B8F0,&HFCD1D2C7,&HFE976C9E,&HFF5506A9,&HFA1A102C,&HFBD87A1B,&HF99EC442,&HF85CAE75,
&HF300E948,&HF2C2837F,&HF0843D26,&HF1465711,&HF4094194,&HF5CB2BA3,&HF78D95FA,&HF64FFFCD,
&HD9785D60,&HD8BA3757,&HDAFC890E,&HDB3EE339,&HDE71F5BC,&HDFB39F8B,&HDDF521D2,&HDC374BE5,
&HD76B0CD8,&HD6A966EF,&HD4EFD8B6,&HD52DB281,&HD062A404,&HD1A0CE33,&HD3E6706A,&HD2241A5D,
&HC55EFE10,&HC49C9427,&HC6DA2A7E,&HC7184049,&HC25756CC,&HC3953CFB,&HC1D382A2,&HC011E895,
&HCB4DAFA8,&HCA8FC59F,&HC8C97BC6,&HC90B11F1,&HCC440774,&HCD866D43,&HCFC0D31A,&HCE02B92D,
&H91AF9640,&H906DFC77,&H922B422E,&H93E92819,&H96A63E9C,&H976454AB,&H9522EAF2,&H94E080C5,
&H9FBCC7F8,&H9E7EADCF,&H9C381396,&H9DFA79A1,&H98B56F24,&H99770513,&H9B31BB4A,&H9AF3D17D,
&H8D893530,&H8C4B5F07,&H8E0DE15E,&H8FCF8B69,&H8A809DEC,&H8B42F7DB,&H89044982,&H88C623B5,
&H839A6488,&H82580EBF,&H801EB0E6,&H81DCDAD1,&H8493CC54,&H8551A663,&H8717183A,&H86D5720D,
&HA9E2D0A0,&HA820BA97,&HAA6604CE,&HABA46EF9,&HAEEB787C,&HAF29124B,&HAD6FAC12,&HACADC625,
&HA7F18118,&HA633EB2F,&HA4755576,&HA5B73F41,&HA0F829C4,&HA13A43F3,&HA37CFDAA,&HA2BE979D,
&HB5C473D0,&HB40619E7,&HB640A7BE,&HB782CD89,&HB2CDDB0C,&HB30FB13B,&HB1490F62,&HB08B6555,
&HBBD72268,&HBA15485F,&HB853F606,&HB9919C31,&HBCDE8AB4,&HBD1CE083,&HBF5A5EDA,&HBE9834ED ],
[ &H00000000,&HB8BC6765,&HAA09C88B,&H12B5AFEE,&H8F629757,&H37DEF032,&H256B5FDC,&H9DD738B9,
&HC5B428EF,&H7D084F8A,&H6FBDE064,&HD7018701,&H4AD6BFB8,&HF26AD8DD,&HE0DF7733,&H58631056,
&H5019579F,&HE8A530FA,&HFA109F14,&H42ACF871,&HDF7BC0C8,&H67C7A7AD,&H75720843,&HCDCE6F26,
&H95AD7F70,&H2D111815,&H3FA4B7FB,&H8718D09E,&H1ACFE827,&HA2738F42,&HB0C620AC,&H087A47C9,
&HA032AF3E,&H188EC85B,&H0A3B67B5,&HB28700D0,&H2F503869,&H97EC5F0C,&H8559F0E2,&H3DE59787,
&H658687D1,&HDD3AE0B4,&HCF8F4F5A,&H7733283F,&HEAE41086,&H525877E3,&H40EDD80D,&HF851BF68,
&HF02BF8A1,&H48979FC4,&H5A22302A,&HE29E574F,&H7F496FF6,&HC7F50893,&HD540A77D,&H6DFCC018,
&H359FD04E,&H8D23B72B,&H9F9618C5,&H272A7FA0,&HBAFD4719,&H0241207C,&H10F48F92,&HA848E8F7,
&H9B14583D,&H23A83F58,&H311D90B6,&H89A1F7D3,&H1476CF6A,&HACCAA80F,&HBE7F07E1,&H06C36084,
&H5EA070D2,&HE61C17B7,&HF4A9B859,&H4C15DF3C,&HD1C2E785,&H697E80E0,&H7BCB2F0E,&HC377486B,
&HCB0D0FA2,&H73B168C7,&H6104C729,&HD9B8A04C,&H446F98F5,&HFCD3FF90,&HEE66507E,&H56DA371B,
&H0EB9274D,&HB6054028,&HA4B0EFC6,&H1C0C88A3,&H81DBB01A,&H3967D77F,&H2BD27891,&H936E1FF4,
&H3B26F703,&H839A9066,&H912F3F88,&H299358ED,&HB4446054,&H0CF80731,&H1E4DA8DF,&HA6F1CFBA,
&HFE92DFEC,&H462EB889,&H549B1767,&HEC277002,&H71F048BB,&HC94C2FDE,&HDBF98030,&H6345E755,
&H6B3FA09C,&HD383C7F9,&HC1366817,&H798A0F72,&HE45D37CB,&H5CE150AE,&H4E54FF40,&HF6E89825,
&HAE8B8873,&H1637EF16,&H048240F8,&HBC3E279D,&H21E91F24,&H99557841,&H8BE0D7AF,&H335CB0CA,
&HED59B63B,&H55E5D15E,&H47507EB0,&HFFEC19D5,&H623B216C,&HDA874609,&HC832E9E7,&H708E8E82,
&H28ED9ED4,&H9051F9B1,&H82E4565F,&H3A58313A,&HA78F0983,&H1F336EE6,&H0D86C108,&HB53AA66D,
&HBD40E1A4,&H05FC86C1,&H1749292F,&HAFF54E4A,&H322276F3,&H8A9E1196,&H982BBE78,&H2097D91D,
&H78F4C94B,&HC048AE2E,&HD2FD01C0,&H6A4166A5,&HF7965E1C,&H4F2A3979,&H5D9F9697,&HE523F1F2,
&H4D6B1905,&HF5D77E60,&HE762D18E,&H5FDEB6EB,&HC2098E52,&H7AB5E937,&H680046D9,&HD0BC21BC,
&H88DF31EA,&H3063568F,&H22D6F961,&H9A6A9E04,&H07BDA6BD,&HBF01C1D8,&HADB46E36,&H15080953,
&H1D724E9A,&HA5CE29FF,&HB77B8611,&H0FC7E174,&H9210D9CD,&H2AACBEA8,&H38191146,&H80A57623,
&HD8C66675,&H607A0110,&H72CFAEFE,&HCA73C99B,&H57A4F122,&HEF189647,&HFDAD39A9,&H45115ECC,
&H764DEE06,&HCEF18963,&HDC44268D,&H64F841E8,&HF92F7951,&H41931E34,&H5326B1DA,&HEB9AD6BF,
&HB3F9C6E9,&H0B45A18C,&H19F00E62,&HA14C6907,&H3C9B51BE,&H842736DB,&H96929935,&H2E2EFE50,
&H2654B999,&H9EE8DEFC,&H8C5D7112,&H34E11677,&HA9362ECE,&H118A49AB,&H033FE645,&HBB838120,
&HE3E09176,&H5B5CF613,&H49E959FD,&HF1553E98,&H6C820621,&HD43E6144,&HC68BCEAA,&H7E37A9CF,
&HD67F4138,&H6EC3265D,&H7C7689B3,&HC4CAEED6,&H591DD66F,&HE1A1B10A,&HF3141EE4,&H4BA87981,
&H13CB69D7,&HAB770EB2,&HB9C2A15C,&H017EC639,&H9CA9FE80,&H241599E5,&H36A0360B,&H8E1C516E,
&H866616A7,&H3EDA71C2,&H2C6FDE2C,&H94D3B949,&H090481F0,&HB1B8E695,&HA30D497B,&H1BB12E1E,
&H43D23E48,&HFB6E592D,&HE9DBF6C3,&H516791A6,&HCCB0A91F,&H740CCE7A,&H66B96194,&HDE0506F1 ],
' beyond this point only relevant for Slicing-By-8
[ &H00000000,&H3D6029B0,&H7AC05360,&H47A07AD0,&HF580A6C0,&HC8E08F70,&H8F40F5A0,&HB220DC10,
&H30704BC1,&H0D106271,&H4AB018A1,&H77D03111,&HC5F0ED01,&HF890C4B1,&HBF30BE61,&H825097D1,
&H60E09782,&H5D80BE32,&H1A20C4E2,&H2740ED52,&H95603142,&HA80018F2,&HEFA06222,&HD2C04B92,
&H5090DC43,&H6DF0F5F3,&H2A508F23,&H1730A693,&HA5107A83,&H98705333,&HDFD029E3,&HE2B00053,
&HC1C12F04,&HFCA106B4,&HBB017C64,&H866155D4,&H344189C4,&H0921A074,&H4E81DAA4,&H73E1F314,
&HF1B164C5,&HCCD14D75,&H8B7137A5,&HB6111E15,&H0431C205,&H3951EBB5,&H7EF19165,&H4391B8D5,
&HA121B886,&H9C419136,&HDBE1EBE6,&HE681C256,&H54A11E46,&H69C137F6,&H2E614D26,&H13016496,
&H9151F347,&HAC31DAF7,&HEB91A027,&HD6F18997,&H64D15587,&H59B17C37,&H1E1106E7,&H23712F57,
&H58F35849,&H659371F9,&H22330B29,&H1F532299,&HAD73FE89,&H9013D739,&HD7B3ADE9,&HEAD38459,
&H68831388,&H55E33A38,&H124340E8,&H2F236958,&H9D03B548,&HA0639CF8,&HE7C3E628,&HDAA3CF98,
&H3813CFCB,&H0573E67B,&H42D39CAB,&H7FB3B51B,&HCD93690B,&HF0F340BB,&HB7533A6B,&H8A3313DB,
&H0863840A,&H3503ADBA,&H72A3D76A,&H4FC3FEDA,&HFDE322CA,&HC0830B7A,&H872371AA,&HBA43581A,
&H9932774D,&HA4525EFD,&HE3F2242D,&HDE920D9D,&H6CB2D18D,&H51D2F83D,&H167282ED,&H2B12AB5D,
&HA9423C8C,&H9422153C,&HD3826FEC,&HEEE2465C,&H5CC29A4C,&H61A2B3FC,&H2602C92C,&H1B62E09C,
&HF9D2E0CF,&HC4B2C97F,&H8312B3AF,&HBE729A1F,&H0C52460F,&H31326FBF,&H7692156F,&H4BF23CDF,
&HC9A2AB0E,&HF4C282BE,&HB362F86E,&H8E02D1DE,&H3C220DCE,&H0142247E,&H46E25EAE,&H7B82771E,
&HB1E6B092,&H8C869922,&HCB26E3F2,&HF646CA42,&H44661652,&H79063FE2,&H3EA64532,&H03C66C82,
&H8196FB53,&HBCF6D2E3,&HFB56A833,&HC6368183,&H74165D93,&H49767423,&H0ED60EF3,&H33B62743,
&HD1062710,&HEC660EA0,&HABC67470,&H96A65DC0,&H248681D0,&H19E6A860,&H5E46D2B0,&H6326FB00,
&HE1766CD1,&HDC164561,&H9BB63FB1,&HA6D61601,&H14F6CA11,&H2996E3A1,&H6E369971,&H5356B0C1,
&H70279F96,&H4D47B626,&H0AE7CCF6,&H3787E546,&H85A73956,&HB8C710E6,&HFF676A36,&HC2074386,
&H4057D457,&H7D37FDE7,&H3A978737,&H07F7AE87,&HB5D77297,&H88B75B27,&HCF1721F7,&HF2770847,
&H10C70814,&H2DA721A4,&H6A075B74,&H576772C4,&HE547AED4,&HD8278764,&H9F87FDB4,&HA2E7D404,
&H20B743D5,&H1DD76A65,&H5A7710B5,&H67173905,&HD537E515,&HE857CCA5,&HAFF7B675,&H92979FC5,
&HE915E8DB,&HD475C16B,&H93D5BBBB,&HAEB5920B,&H1C954E1B,&H21F567AB,&H66551D7B,&H5B3534CB,
&HD965A31A,&HE4058AAA,&HA3A5F07A,&H9EC5D9CA,&H2CE505DA,&H11852C6A,&H562556BA,&H6B457F0A,
&H89F57F59,&HB49556E9,&HF3352C39,&HCE550589,&H7C75D999,&H4115F029,&H06B58AF9,&H3BD5A349,
&HB9853498,&H84E51D28,&HC34567F8,&HFE254E48,&H4C059258,&H7165BBE8,&H36C5C138,&H0BA5E888,
&H28D4C7DF,&H15B4EE6F,&H521494BF,&H6F74BD0F,&HDD54611F,&HE03448AF,&HA794327F,&H9AF41BCF,
&H18A48C1E,&H25C4A5AE,&H6264DF7E,&H5F04F6CE,&HED242ADE,&HD044036E,&H97E479BE,&HAA84500E,
&H4834505D,&H755479ED,&H32F4033D,&H0F942A8D,&HBDB4F69D,&H80D4DF2D,&HC774A5FD,&HFA148C4D,
&H78441B9C,&H4524322C,&H028448FC,&H3FE4614C,&H8DC4BD5C,&HB0A494EC,&HF704EE3C,&HCA64C78C ],
[ &H00000000,&HCB5CD3A5,&H4DC8A10B,&H869472AE,&H9B914216,&H50CD91B3,&HD659E31D,&H1D0530B8,
&HEC53826D,&H270F51C8,&HA19B2366,&H6AC7F0C3,&H77C2C07B,&HBC9E13DE,&H3A0A6170,&HF156B2D5,
&H03D6029B,&HC88AD13E,&H4E1EA390,&H85427035,&H9847408D,&H531B9328,&HD58FE186,&H1ED33223,
&HEF8580F6,&H24D95353,&HA24D21FD,&H6911F258,&H7414C2E0,&HBF481145,&H39DC63EB,&HF280B04E,
&H07AC0536,&HCCF0D693,&H4A64A43D,&H81387798,&H9C3D4720,&H57619485,&HD1F5E62B,&H1AA9358E,
&HEBFF875B,&H20A354FE,&HA6372650,&H6D6BF5F5,&H706EC54D,&HBB3216E8,&H3DA66446,&HF6FAB7E3,
&H047A07AD,&HCF26D408,&H49B2A6A6,&H82EE7503,&H9FEB45BB,&H54B7961E,&HD223E4B0,&H197F3715,
&HE82985C0,&H23755665,&HA5E124CB,&H6EBDF76E,&H73B8C7D6,&HB8E41473,&H3E7066DD,&HF52CB578,
&H0F580A6C,&HC404D9C9,&H4290AB67,&H89CC78C2,&H94C9487A,&H5F959BDF,&HD901E971,&H125D3AD4,
&HE30B8801,&H28575BA4,&HAEC3290A,&H659FFAAF,&H789ACA17,&HB3C619B2,&H35526B1C,&HFE0EB8B9,
&H0C8E08F7,&HC7D2DB52,&H4146A9FC,&H8A1A7A59,&H971F4AE1,&H5C439944,&HDAD7EBEA,&H118B384F,
&HE0DD8A9A,&H2B81593F,&HAD152B91,&H6649F834,&H7B4CC88C,&HB0101B29,&H36846987,&HFDD8BA22,
&H08F40F5A,&HC3A8DCFF,&H453CAE51,&H8E607DF4,&H93654D4C,&H58399EE9,&HDEADEC47,&H15F13FE2,
&HE4A78D37,&H2FFB5E92,&HA96F2C3C,&H6233FF99,&H7F36CF21,&HB46A1C84,&H32FE6E2A,&HF9A2BD8F,
&H0B220DC1,&HC07EDE64,&H46EAACCA,&H8DB67F6F,&H90B34FD7,&H5BEF9C72,&HDD7BEEDC,&H16273D79,
&HE7718FAC,&H2C2D5C09,&HAAB92EA7,&H61E5FD02,&H7CE0CDBA,&HB7BC1E1F,&H31286CB1,&HFA74BF14,
&H1EB014D8,&HD5ECC77D,&H5378B5D3,&H98246676,&H852156CE,&H4E7D856B,&HC8E9F7C5,&H03B52460,
&HF2E396B5,&H39BF4510,&HBF2B37BE,&H7477E41B,&H6972D4A3,&HA22E0706,&H24BA75A8,&HEFE6A60D,
&H1D661643,&HD63AC5E6,&H50AEB748,&H9BF264ED,&H86F75455,&H4DAB87F0,&HCB3FF55E,&H006326FB,
&HF135942E,&H3A69478B,&HBCFD3525,&H77A1E680,&H6AA4D638,&HA1F8059D,&H276C7733,&HEC30A496,
&H191C11EE,&HD240C24B,&H54D4B0E5,&H9F886340,&H828D53F8,&H49D1805D,&HCF45F2F3,&H04192156,
&HF54F9383,&H3E134026,&HB8873288,&H73DBE12D,&H6EDED195,&HA5820230,&H2316709E,&HE84AA33B,
&H1ACA1375,&HD196C0D0,&H5702B27E,&H9C5E61DB,&H815B5163,&H4A0782C6,&HCC93F068,&H07CF23CD,
&HF6999118,&H3DC542BD,&HBB513013,&H700DE3B6,&H6D08D30E,&HA65400AB,&H20C07205,&HEB9CA1A0,
&H11E81EB4,&HDAB4CD11,&H5C20BFBF,&H977C6C1A,&H8A795CA2,&H41258F07,&HC7B1FDA9,&H0CED2E0C,
&HFDBB9CD9,&H36E74F7C,&HB0733DD2,&H7B2FEE77,&H662ADECF,&HAD760D6A,&H2BE27FC4,&HE0BEAC61,
&H123E1C2F,&HD962CF8A,&H5FF6BD24,&H94AA6E81,&H89AF5E39,&H42F38D9C,&HC467FF32,&H0F3B2C97,
&HFE6D9E42,&H35314DE7,&HB3A53F49,&H78F9ECEC,&H65FCDC54,&HAEA00FF1,&H28347D5F,&HE368AEFA,
&H16441B82,&HDD18C827,&H5B8CBA89,&H90D0692C,&H8DD55994,&H46898A31,&HC01DF89F,&H0B412B3A,
&HFA1799EF,&H314B4A4A,&HB7DF38E4,&H7C83EB41,&H6186DBF9,&HAADA085C,&H2C4E7AF2,&HE712A957,
&H15921919,&HDECECABC,&H585AB812,&H93066BB7,&H8E035B0F,&H455F88AA,&HC3CBFA04,&H089729A1,
&HF9C19B74,&H329D48D1,&HB4093A7F,&H7F55E9DA,&H6250D962,&HA90C0AC7,&H2F987869,&HE4C4ABCC ],
[ &H00000000,&HA6770BB4,&H979F1129,&H31E81A9D,&HF44F2413,&H52382FA7,&H63D0353A,&HC5A73E8E,
&H33EF4E67,&H959845D3,&HA4705F4E,&H020754FA,&HC7A06A74,&H61D761C0,&H503F7B5D,&HF64870E9,
&H67DE9CCE,&HC1A9977A,&HF0418DE7,&H56368653,&H9391B8DD,&H35E6B369,&H040EA9F4,&HA279A240,
&H5431D2A9,&HF246D91D,&HC3AEC380,&H65D9C834,&HA07EF6BA,&H0609FD0E,&H37E1E793,&H9196EC27,
&HCFBD399C,&H69CA3228,&H582228B5,&HFE552301,&H3BF21D8F,&H9D85163B,&HAC6D0CA6,&H0A1A0712,
&HFC5277FB,&H5A257C4F,&H6BCD66D2,&HCDBA6D66,&H081D53E8,&HAE6A585C,&H9F8242C1,&H39F54975,
&HA863A552,&H0E14AEE6,&H3FFCB47B,&H998BBFCF,&H5C2C8141,&HFA5B8AF5,&HCBB39068,&H6DC49BDC,
&H9B8CEB35,&H3DFBE081,&H0C13FA1C,&HAA64F1A8,&H6FC3CF26,&HC9B4C492,&HF85CDE0F,&H5E2BD5BB,
&H440B7579,&HE27C7ECD,&HD3946450,&H75E36FE4,&HB044516A,&H16335ADE,&H27DB4043,&H81AC4BF7,
&H77E43B1E,&HD19330AA,&HE07B2A37,&H460C2183,&H83AB1F0D,&H25DC14B9,&H14340E24,&HB2430590,
&H23D5E9B7,&H85A2E203,&HB44AF89E,&H123DF32A,&HD79ACDA4,&H71EDC610,&H4005DC8D,&HE672D739,
&H103AA7D0,&HB64DAC64,&H87A5B6F9,&H21D2BD4D,&HE47583C3,&H42028877,&H73EA92EA,&HD59D995E,
&H8BB64CE5,&H2DC14751,&H1C295DCC,&HBA5E5678,&H7FF968F6,&HD98E6342,&HE86679DF,&H4E11726B,
&HB8590282,&H1E2E0936,&H2FC613AB,&H89B1181F,&H4C162691,&HEA612D25,&HDB8937B8,&H7DFE3C0C,
&HEC68D02B,&H4A1FDB9F,&H7BF7C102,&HDD80CAB6,&H1827F438,&HBE50FF8C,&H8FB8E511,&H29CFEEA5,
&HDF879E4C,&H79F095F8,&H48188F65,&HEE6F84D1,&H2BC8BA5F,&H8DBFB1EB,&HBC57AB76,&H1A20A0C2,
&H8816EAF2,&H2E61E146,&H1F89FBDB,&HB9FEF06F,&H7C59CEE1,&HDA2EC555,&HEBC6DFC8,&H4DB1D47C,
&HBBF9A495,&H1D8EAF21,&H2C66B5BC,&H8A11BE08,&H4FB68086,&HE9C18B32,&HD82991AF,&H7E5E9A1B,
&HEFC8763C,&H49BF7D88,&H78576715,&HDE206CA1,&H1B87522F,&HBDF0599B,&H8C184306,&H2A6F48B2,
&HDC27385B,&H7A5033EF,&H4BB82972,&HEDCF22C6,&H28681C48,&H8E1F17FC,&HBFF70D61,&H198006D5,
&H47ABD36E,&HE1DCD8DA,&HD034C247,&H7643C9F3,&HB3E4F77D,&H1593FCC9,&H247BE654,&H820CEDE0,
&H74449D09,&HD23396BD,&HE3DB8C20,&H45AC8794,&H800BB91A,&H267CB2AE,&H1794A833,&HB1E3A387,
&H20754FA0,&H86024414,&HB7EA5E89,&H119D553D,&HD43A6BB3,&H724D6007,&H43A57A9A,&HE5D2712E,
&H139A01C7,&HB5ED0A73,&H840510EE,&H22721B5A,&HE7D525D4,&H41A22E60,&H704A34FD,&HD63D3F49,
&HCC1D9F8B,&H6A6A943F,&H5B828EA2,&HFDF58516,&H3852BB98,&H9E25B02C,&HAFCDAAB1,&H09BAA105,
&HFFF2D1EC,&H5985DA58,&H686DC0C5,&HCE1ACB71,&H0BBDF5FF,&HADCAFE4B,&H9C22E4D6,&H3A55EF62,
&HABC30345,&H0DB408F1,&H3C5C126C,&H9A2B19D8,&H5F8C2756,&HF9FB2CE2,&HC813367F,&H6E643DCB,
&H982C4D22,&H3E5B4696,&H0FB35C0B,&HA9C457BF,&H6C636931,&HCA146285,&HFBFC7818,&H5D8B73AC,
&H03A0A617,&HA5D7ADA3,&H943FB73E,&H3248BC8A,&HF7EF8204,&H519889B0,&H6070932D,&HC6079899,
&H304FE870,&H9638E3C4,&HA7D0F959,&H01A7F2ED,&HC400CC63,&H6277C7D7,&H539FDD4A,&HF5E8D6FE,
&H647E3AD9,&HC209316D,&HF3E12BF0,&H55962044,&H90311ECA,&H3646157E,&H07AE0FE3,&HA1D90457,
&H579174BE,&HF1E67F0A,&HC00E6597,&H66796E23,&HA3DE50AD,&H05A95B19,&H34414184,&H92364A30 ],
[ &H00000000,&HCCAA009E,&H4225077D,&H8E8F07E3,&H844A0EFA,&H48E00E64,&HC66F0987,&H0AC50919,
&HD3E51BB5,&H1F4F1B2B,&H91C01CC8,&H5D6A1C56,&H57AF154F,&H9B0515D1,&H158A1232,&HD92012AC,
&H7CBB312B,&HB01131B5,&H3E9E3656,&HF23436C8,&HF8F13FD1,&H345B3F4F,&HBAD438AC,&H767E3832,
&HAF5E2A9E,&H63F42A00,&HED7B2DE3,&H21D12D7D,&H2B142464,&HE7BE24FA,&H69312319,&HA59B2387,
&HF9766256,&H35DC62C8,&HBB53652B,&H77F965B5,&H7D3C6CAC,&HB1966C32,&H3F196BD1,&HF3B36B4F,
&H2A9379E3,&HE639797D,&H68B67E9E,&HA41C7E00,&HAED97719,&H62737787,&HECFC7064,&H205670FA,
&H85CD537D,&H496753E3,&HC7E85400,&H0B42549E,&H01875D87,&HCD2D5D19,&H43A25AFA,&H8F085A64,
&H562848C8,&H9A824856,&H140D4FB5,&HD8A74F2B,&HD2624632,&H1EC846AC,&H9047414F,&H5CED41D1,
&H299DC2ED,&HE537C273,&H6BB8C590,&HA712C50E,&HADD7CC17,&H617DCC89,&HEFF2CB6A,&H2358CBF4,
&HFA78D958,&H36D2D9C6,&HB85DDE25,&H74F7DEBB,&H7E32D7A2,&HB298D73C,&H3C17D0DF,&HF0BDD041,
&H5526F3C6,&H998CF358,&H1703F4BB,&HDBA9F425,&HD16CFD3C,&H1DC6FDA2,&H9349FA41,&H5FE3FADF,
&H86C3E873,&H4A69E8ED,&HC4E6EF0E,&H084CEF90,&H0289E689,&HCE23E617,&H40ACE1F4,&H8C06E16A,
&HD0EBA0BB,&H1C41A025,&H92CEA7C6,&H5E64A758,&H54A1AE41,&H980BAEDF,&H1684A93C,&HDA2EA9A2,
&H030EBB0E,&HCFA4BB90,&H412BBC73,&H8D81BCED,&H8744B5F4,&H4BEEB56A,&HC561B289,&H09CBB217,
&HAC509190,&H60FA910E,&HEE7596ED,&H22DF9673,&H281A9F6A,&HE4B09FF4,&H6A3F9817,&HA6959889,
&H7FB58A25,&HB31F8ABB,&H3D908D58,&HF13A8DC6,&HFBFF84DF,&H37558441,&HB9DA83A2,&H7570833C,
&H533B85DA,&H9F918544,&H111E82A7,&HDDB48239,&HD7718B20,&H1BDB8BBE,&H95548C5D,&H59FE8CC3,
&H80DE9E6F,&H4C749EF1,&HC2FB9912,&H0E51998C,&H04949095,&HC83E900B,&H46B197E8,&H8A1B9776,
&H2F80B4F1,&HE32AB46F,&H6DA5B38C,&HA10FB312,&HABCABA0B,&H6760BA95,&HE9EFBD76,&H2545BDE8,
&HFC65AF44,&H30CFAFDA,&HBE40A839,&H72EAA8A7,&H782FA1BE,&HB485A120,&H3A0AA6C3,&HF6A0A65D,
&HAA4DE78C,&H66E7E712,&HE868E0F1,&H24C2E06F,&H2E07E976,&HE2ADE9E8,&H6C22EE0B,&HA088EE95,
&H79A8FC39,&HB502FCA7,&H3B8DFB44,&HF727FBDA,&HFDE2F2C3,&H3148F25D,&HBFC7F5BE,&H736DF520,
&HD6F6D6A7,&H1A5CD639,&H94D3D1DA,&H5879D144,&H52BCD85D,&H9E16D8C3,&H1099DF20,&HDC33DFBE,
&H0513CD12,&HC9B9CD8C,&H4736CA6F,&H8B9CCAF1,&H8159C3E8,&H4DF3C376,&HC37CC495,&H0FD6C40B,
&H7AA64737,&HB60C47A9,&H3883404A,&HF42940D4,&HFEEC49CD,&H32464953,&HBCC94EB0,&H70634E2E,
&HA9435C82,&H65E95C1C,&HEB665BFF,&H27CC5B61,&H2D095278,&HE1A352E6,&H6F2C5505,&HA386559B,
&H061D761C,&HCAB77682,&H44387161,&H889271FF,&H825778E6,&H4EFD7878,&HC0727F9B,&H0CD87F05,
&HD5F86DA9,&H19526D37,&H97DD6AD4,&H5B776A4A,&H51B26353,&H9D1863CD,&H1397642E,&HDF3D64B0,
&H83D02561,&H4F7A25FF,&HC1F5221C,&H0D5F2282,&H079A2B9B,&HCB302B05,&H45BF2CE6,&H89152C78,
&H50353ED4,&H9C9F3E4A,&H121039A9,&HDEBA3937,&HD47F302E,&H18D530B0,&H965A3753,&H5AF037CD,
&HFF6B144A,&H33C114D4,&HBD4E1337,&H71E413A9,&H7B211AB0,&HB78B1A2E,&H39041DCD,&HF5AE1D53,
&H2C8E0FFF,&HE0240F61,&H6EAB0882,&HA201081C,&HA8C40105,&H646E019B,&HEAE10678,&H264B06E6 ]
]
precomputed: true
previousCrc32: 0
populateTable: function() as boolean
precomputed=true
return precomputed
end function
}
return this
end function