1 /* 2 +----------------------------------------------------------------------+ 3 | Copyright (c) The PHP Group | 4 +----------------------------------------------------------------------+ 5 | This source file is subject to version 3.01 of the PHP license, | 6 | that is bundled with this package in the file LICENSE, and is | 7 | available through the world-wide-web at the following url: | 8 | https://www.php.net/license/3_01.txt | 9 | If you did not receive a copy of the PHP license and are unable to | 10 | obtain it through the world-wide-web, please send a note to | 11 | license@php.net so we can mail you a copy immediately. | 12 +----------------------------------------------------------------------+ 13 | Author: Michael Wallner <mike@php.net> | 14 +----------------------------------------------------------------------+ 15 */ 16 17 static const uint32_t crc32_table[] = { 0x0, 18 0x04c11db7, 0x09823b6e, 0x0d4326d9, 0x130476dc, 0x17c56b6b, 19 0x1a864db2, 0x1e475005, 0x2608edb8, 0x22c9f00f, 0x2f8ad6d6, 20 0x2b4bcb61, 0x350c9b64, 0x31cd86d3, 0x3c8ea00a, 0x384fbdbd, 21 0x4c11db70, 0x48d0c6c7, 0x4593e01e, 0x4152fda9, 0x5f15adac, 22 0x5bd4b01b, 0x569796c2, 0x52568b75, 0x6a1936c8, 0x6ed82b7f, 23 0x639b0da6, 0x675a1011, 0x791d4014, 0x7ddc5da3, 0x709f7b7a, 24 0x745e66cd, 0x9823b6e0, 0x9ce2ab57, 0x91a18d8e, 0x95609039, 25 0x8b27c03c, 0x8fe6dd8b, 0x82a5fb52, 0x8664e6e5, 0xbe2b5b58, 26 0xbaea46ef, 0xb7a96036, 0xb3687d81, 0xad2f2d84, 0xa9ee3033, 27 0xa4ad16ea, 0xa06c0b5d, 0xd4326d90, 0xd0f37027, 0xddb056fe, 28 0xd9714b49, 0xc7361b4c, 0xc3f706fb, 0xceb42022, 0xca753d95, 29 0xf23a8028, 0xf6fb9d9f, 0xfbb8bb46, 0xff79a6f1, 0xe13ef6f4, 30 0xe5ffeb43, 0xe8bccd9a, 0xec7dd02d, 0x34867077, 0x30476dc0, 31 0x3d044b19, 0x39c556ae, 0x278206ab, 0x23431b1c, 0x2e003dc5, 32 0x2ac12072, 0x128e9dcf, 0x164f8078, 0x1b0ca6a1, 0x1fcdbb16, 33 0x018aeb13, 0x054bf6a4, 0x0808d07d, 0x0cc9cdca, 0x7897ab07, 34 0x7c56b6b0, 0x71159069, 0x75d48dde, 0x6b93dddb, 0x6f52c06c, 35 0x6211e6b5, 0x66d0fb02, 0x5e9f46bf, 0x5a5e5b08, 0x571d7dd1, 36 0x53dc6066, 0x4d9b3063, 0x495a2dd4, 0x44190b0d, 0x40d816ba, 37 0xaca5c697, 0xa864db20, 0xa527fdf9, 0xa1e6e04e, 0xbfa1b04b, 38 0xbb60adfc, 0xb6238b25, 0xb2e29692, 0x8aad2b2f, 0x8e6c3698, 39 0x832f1041, 0x87ee0df6, 0x99a95df3, 0x9d684044, 0x902b669d, 40 0x94ea7b2a, 0xe0b41de7, 0xe4750050, 0xe9362689, 0xedf73b3e, 41 0xf3b06b3b, 0xf771768c, 0xfa325055, 0xfef34de2, 0xc6bcf05f, 42 0xc27dede8, 0xcf3ecb31, 0xcbffd686, 0xd5b88683, 0xd1799b34, 43 0xdc3abded, 0xd8fba05a, 0x690ce0ee, 0x6dcdfd59, 0x608edb80, 44 0x644fc637, 0x7a089632, 0x7ec98b85, 0x738aad5c, 0x774bb0eb, 45 0x4f040d56, 0x4bc510e1, 0x46863638, 0x42472b8f, 0x5c007b8a, 46 0x58c1663d, 0x558240e4, 0x51435d53, 0x251d3b9e, 0x21dc2629, 47 0x2c9f00f0, 0x285e1d47, 0x36194d42, 0x32d850f5, 0x3f9b762c, 48 0x3b5a6b9b, 0x0315d626, 0x07d4cb91, 0x0a97ed48, 0x0e56f0ff, 49 0x1011a0fa, 0x14d0bd4d, 0x19939b94, 0x1d528623, 0xf12f560e, 50 0xf5ee4bb9, 0xf8ad6d60, 0xfc6c70d7, 0xe22b20d2, 0xe6ea3d65, 51 0xeba91bbc, 0xef68060b, 0xd727bbb6, 0xd3e6a601, 0xdea580d8, 52 0xda649d6f, 0xc423cd6a, 0xc0e2d0dd, 0xcda1f604, 0xc960ebb3, 53 0xbd3e8d7e, 0xb9ff90c9, 0xb4bcb610, 0xb07daba7, 0xae3afba2, 54 0xaafbe615, 0xa7b8c0cc, 0xa379dd7b, 0x9b3660c6, 0x9ff77d71, 55 0x92b45ba8, 0x9675461f, 0x8832161a, 0x8cf30bad, 0x81b02d74, 56 0x857130c3, 0x5d8a9099, 0x594b8d2e, 0x5408abf7, 0x50c9b640, 57 0x4e8ee645, 0x4a4ffbf2, 0x470cdd2b, 0x43cdc09c, 0x7b827d21, 58 0x7f436096, 0x7200464f, 0x76c15bf8, 0x68860bfd, 0x6c47164a, 59 0x61043093, 0x65c52d24, 0x119b4be9, 0x155a565e, 0x18197087, 60 0x1cd86d30, 0x029f3d35, 0x065e2082, 0x0b1d065b, 0x0fdc1bec, 61 0x3793a651, 0x3352bbe6, 0x3e119d3f, 0x3ad08088, 0x2497d08d, 62 0x2056cd3a, 0x2d15ebe3, 0x29d4f654, 0xc5a92679, 0xc1683bce, 63 0xcc2b1d17, 0xc8ea00a0, 0xd6ad50a5, 0xd26c4d12, 0xdf2f6bcb, 64 0xdbee767c, 0xe3a1cbc1, 0xe760d676, 0xea23f0af, 0xeee2ed18, 65 0xf0a5bd1d, 0xf464a0aa, 0xf9278673, 0xfde69bc4, 0x89b8fd09, 66 0x8d79e0be, 0x803ac667, 0x84fbdbd0, 0x9abc8bd5, 0x9e7d9662, 67 0x933eb0bb, 0x97ffad0c, 0xafb010b1, 0xab710d06, 0xa6322bdf, 68 0xa2f33668, 0xbcb4666d, 0xb8757bda, 0xb5365d03, 0xb1f740b4 69 }; 70 71 static const uint32_t crc32b_table[] = { 72 0x00000000, 0x77073096, 0xee0e612c, 0x990951ba, 73 0x076dc419, 0x706af48f, 0xe963a535, 0x9e6495a3, 74 0x0edb8832, 0x79dcb8a4, 0xe0d5e91e, 0x97d2d988, 75 0x09b64c2b, 0x7eb17cbd, 0xe7b82d07, 0x90bf1d91, 76 0x1db71064, 0x6ab020f2, 0xf3b97148, 0x84be41de, 77 0x1adad47d, 0x6ddde4eb, 0xf4d4b551, 0x83d385c7, 78 0x136c9856, 0x646ba8c0, 0xfd62f97a, 0x8a65c9ec, 79 0x14015c4f, 0x63066cd9, 0xfa0f3d63, 0x8d080df5, 80 0x3b6e20c8, 0x4c69105e, 0xd56041e4, 0xa2677172, 81 0x3c03e4d1, 0x4b04d447, 0xd20d85fd, 0xa50ab56b, 82 0x35b5a8fa, 0x42b2986c, 0xdbbbc9d6, 0xacbcf940, 83 0x32d86ce3, 0x45df5c75, 0xdcd60dcf, 0xabd13d59, 84 0x26d930ac, 0x51de003a, 0xc8d75180, 0xbfd06116, 85 0x21b4f4b5, 0x56b3c423, 0xcfba9599, 0xb8bda50f, 86 0x2802b89e, 0x5f058808, 0xc60cd9b2, 0xb10be924, 87 0x2f6f7c87, 0x58684c11, 0xc1611dab, 0xb6662d3d, 88 0x76dc4190, 0x01db7106, 0x98d220bc, 0xefd5102a, 89 0x71b18589, 0x06b6b51f, 0x9fbfe4a5, 0xe8b8d433, 90 0x7807c9a2, 0x0f00f934, 0x9609a88e, 0xe10e9818, 91 0x7f6a0dbb, 0x086d3d2d, 0x91646c97, 0xe6635c01, 92 0x6b6b51f4, 0x1c6c6162, 0x856530d8, 0xf262004e, 93 0x6c0695ed, 0x1b01a57b, 0x8208f4c1, 0xf50fc457, 94 0x65b0d9c6, 0x12b7e950, 0x8bbeb8ea, 0xfcb9887c, 95 0x62dd1ddf, 0x15da2d49, 0x8cd37cf3, 0xfbd44c65, 96 0x4db26158, 0x3ab551ce, 0xa3bc0074, 0xd4bb30e2, 97 0x4adfa541, 0x3dd895d7, 0xa4d1c46d, 0xd3d6f4fb, 98 0x4369e96a, 0x346ed9fc, 0xad678846, 0xda60b8d0, 99 0x44042d73, 0x33031de5, 0xaa0a4c5f, 0xdd0d7cc9, 100 0x5005713c, 0x270241aa, 0xbe0b1010, 0xc90c2086, 101 0x5768b525, 0x206f85b3, 0xb966d409, 0xce61e49f, 102 0x5edef90e, 0x29d9c998, 0xb0d09822, 0xc7d7a8b4, 103 0x59b33d17, 0x2eb40d81, 0xb7bd5c3b, 0xc0ba6cad, 104 0xedb88320, 0x9abfb3b6, 0x03b6e20c, 0x74b1d29a, 105 0xead54739, 0x9dd277af, 0x04db2615, 0x73dc1683, 106 0xe3630b12, 0x94643b84, 0x0d6d6a3e, 0x7a6a5aa8, 107 0xe40ecf0b, 0x9309ff9d, 0x0a00ae27, 0x7d079eb1, 108 0xf00f9344, 0x8708a3d2, 0x1e01f268, 0x6906c2fe, 109 0xf762575d, 0x806567cb, 0x196c3671, 0x6e6b06e7, 110 0xfed41b76, 0x89d32be0, 0x10da7a5a, 0x67dd4acc, 111 0xf9b9df6f, 0x8ebeeff9, 0x17b7be43, 0x60b08ed5, 112 0xd6d6a3e8, 0xa1d1937e, 0x38d8c2c4, 0x4fdff252, 113 0xd1bb67f1, 0xa6bc5767, 0x3fb506dd, 0x48b2364b, 114 0xd80d2bda, 0xaf0a1b4c, 0x36034af6, 0x41047a60, 115 0xdf60efc3, 0xa867df55, 0x316e8eef, 0x4669be79, 116 0xcb61b38c, 0xbc66831a, 0x256fd2a0, 0x5268e236, 117 0xcc0c7795, 0xbb0b4703, 0x220216b9, 0x5505262f, 118 0xc5ba3bbe, 0xb2bd0b28, 0x2bb45a92, 0x5cb36a04, 119 0xc2d7ffa7, 0xb5d0cf31, 0x2cd99e8b, 0x5bdeae1d, 120 0x9b64c2b0, 0xec63f226, 0x756aa39c, 0x026d930a, 121 0x9c0906a9, 0xeb0e363f, 0x72076785, 0x05005713, 122 0x95bf4a82, 0xe2b87a14, 0x7bb12bae, 0x0cb61b38, 123 0x92d28e9b, 0xe5d5be0d, 0x7cdcefb7, 0x0bdbdf21, 124 0x86d3d2d4, 0xf1d4e242, 0x68ddb3f8, 0x1fda836e, 125 0x81be16cd, 0xf6b9265b, 0x6fb077e1, 0x18b74777, 126 0x88085ae6, 0xff0f6a70, 0x66063bca, 0x11010b5c, 127 0x8f659eff, 0xf862ae69, 0x616bffd3, 0x166ccf45, 128 0xa00ae278, 0xd70dd2ee, 0x4e048354, 0x3903b3c2, 129 0xa7672661, 0xd06016f7, 0x4969474d, 0x3e6e77db, 130 0xaed16a4a, 0xd9d65adc, 0x40df0b66, 0x37d83bf0, 131 0xa9bcae53, 0xdebb9ec5, 0x47b2cf7f, 0x30b5ffe9, 132 0xbdbdf21c, 0xcabac28a, 0x53b39330, 0x24b4a3a6, 133 0xbad03605, 0xcdd70693, 0x54de5729, 0x23d967bf, 134 0xb3667a2e, 0xc4614ab8, 0x5d681b02, 0x2a6f2b94, 135 0xb40bbe37, 0xc30c8ea1, 0x5a05df1b, 0x2d02ef8d, 136 }; 137 138 static const uint32_t crc32c_table[] = { 139 0x00000000, 0xf26b8303, 0xe13b70f7, 0x1350f3f4, 140 0xc79a971f, 0x35f1141c, 0x26a1e7e8, 0xd4ca64eb, 141 0x8ad958cf, 0x78b2dbcc, 0x6be22838, 0x9989ab3b, 142 0x4d43cfd0, 0xbf284cd3, 0xac78bf27, 0x5e133c24, 143 0x105ec76f, 0xe235446c, 0xf165b798, 0x030e349b, 144 0xd7c45070, 0x25afd373, 0x36ff2087, 0xc494a384, 145 0x9a879fa0, 0x68ec1ca3, 0x7bbcef57, 0x89d76c54, 146 0x5d1d08bf, 0xaf768bbc, 0xbc267848, 0x4e4dfb4b, 147 0x20bd8ede, 0xd2d60ddd, 0xc186fe29, 0x33ed7d2a, 148 0xe72719c1, 0x154c9ac2, 0x061c6936, 0xf477ea35, 149 0xaa64d611, 0x580f5512, 0x4b5fa6e6, 0xb93425e5, 150 0x6dfe410e, 0x9f95c20d, 0x8cc531f9, 0x7eaeb2fa, 151 0x30e349b1, 0xc288cab2, 0xd1d83946, 0x23b3ba45, 152 0xf779deae, 0x05125dad, 0x1642ae59, 0xe4292d5a, 153 0xba3a117e, 0x4851927d, 0x5b016189, 0xa96ae28a, 154 0x7da08661, 0x8fcb0562, 0x9c9bf696, 0x6ef07595, 155 0x417b1dbc, 0xb3109ebf, 0xa0406d4b, 0x522bee48, 156 0x86e18aa3, 0x748a09a0, 0x67dafa54, 0x95b17957, 157 0xcba24573, 0x39c9c670, 0x2a993584, 0xd8f2b687, 158 0x0c38d26c, 0xfe53516f, 0xed03a29b, 0x1f682198, 159 0x5125dad3, 0xa34e59d0, 0xb01eaa24, 0x42752927, 160 0x96bf4dcc, 0x64d4cecf, 0x77843d3b, 0x85efbe38, 161 0xdbfc821c, 0x2997011f, 0x3ac7f2eb, 0xc8ac71e8, 162 0x1c661503, 0xee0d9600, 0xfd5d65f4, 0x0f36e6f7, 163 0x61c69362, 0x93ad1061, 0x80fde395, 0x72966096, 164 0xa65c047d, 0x5437877e, 0x4767748a, 0xb50cf789, 165 0xeb1fcbad, 0x197448ae, 0x0a24bb5a, 0xf84f3859, 166 0x2c855cb2, 0xdeeedfb1, 0xcdbe2c45, 0x3fd5af46, 167 0x7198540d, 0x83f3d70e, 0x90a324fa, 0x62c8a7f9, 168 0xb602c312, 0x44694011, 0x5739b3e5, 0xa55230e6, 169 0xfb410cc2, 0x092a8fc1, 0x1a7a7c35, 0xe811ff36, 170 0x3cdb9bdd, 0xceb018de, 0xdde0eb2a, 0x2f8b6829, 171 0x82f63b78, 0x709db87b, 0x63cd4b8f, 0x91a6c88c, 172 0x456cac67, 0xb7072f64, 0xa457dc90, 0x563c5f93, 173 0x082f63b7, 0xfa44e0b4, 0xe9141340, 0x1b7f9043, 174 0xcfb5f4a8, 0x3dde77ab, 0x2e8e845f, 0xdce5075c, 175 0x92a8fc17, 0x60c37f14, 0x73938ce0, 0x81f80fe3, 176 0x55326b08, 0xa759e80b, 0xb4091bff, 0x466298fc, 177 0x1871a4d8, 0xea1a27db, 0xf94ad42f, 0x0b21572c, 178 0xdfeb33c7, 0x2d80b0c4, 0x3ed04330, 0xccbbc033, 179 0xa24bb5a6, 0x502036a5, 0x4370c551, 0xb11b4652, 180 0x65d122b9, 0x97baa1ba, 0x84ea524e, 0x7681d14d, 181 0x2892ed69, 0xdaf96e6a, 0xc9a99d9e, 0x3bc21e9d, 182 0xef087a76, 0x1d63f975, 0x0e330a81, 0xfc588982, 183 0xb21572c9, 0x407ef1ca, 0x532e023e, 0xa145813d, 184 0x758fe5d6, 0x87e466d5, 0x94b49521, 0x66df1622, 185 0x38cc2a06, 0xcaa7a905, 0xd9f75af1, 0x2b9cd9f2, 186 0xff56bd19, 0x0d3d3e1a, 0x1e6dcdee, 0xec064eed, 187 0xc38d26c4, 0x31e6a5c7, 0x22b65633, 0xd0ddd530, 188 0x0417b1db, 0xf67c32d8, 0xe52cc12c, 0x1747422f, 189 0x49547e0b, 0xbb3ffd08, 0xa86f0efc, 0x5a048dff, 190 0x8ecee914, 0x7ca56a17, 0x6ff599e3, 0x9d9e1ae0, 191 0xd3d3e1ab, 0x21b862a8, 0x32e8915c, 0xc083125f, 192 0x144976b4, 0xe622f5b7, 0xf5720643, 0x07198540, 193 0x590ab964, 0xab613a67, 0xb831c993, 0x4a5a4a90, 194 0x9e902e7b, 0x6cfbad78, 0x7fab5e8c, 0x8dc0dd8f, 195 0xe330a81a, 0x115b2b19, 0x020bd8ed, 0xf0605bee, 196 0x24aa3f05, 0xd6c1bc06, 0xc5914ff2, 0x37faccf1, 197 0x69e9f0d5, 0x9b8273d6, 0x88d28022, 0x7ab90321, 198 0xae7367ca, 0x5c18e4c9, 0x4f48173d, 0xbd23943e, 199 0xf36e6f75, 0x0105ec76, 0x12551f82, 0xe03e9c81, 200 0x34f4f86a, 0xc69f7b69, 0xd5cf889d, 0x27a40b9e, 201 0x79b737ba, 0x8bdcb4b9, 0x988c474d, 0x6ae7c44e, 202 0xbe2da0a5, 0x4c4623a6, 0x5f16d052, 0xad7d5351, 203 }; 204 205