<?php

$xorTableDec = [
    1 => 0x0,
    2 => 0x77073096,
    3 => 0xEE0E612C,
    4 => 0x990951BA,
    5 => 0x076DC419,
    6 => 0x706AF48F,
    7 => 0xE963A535,
    8 => 0x9E6495A3,
    9 => 0x0EDB8832,
    10 => 0x79DCB8A4,
    11 => 0xE0D5E91E,
    12 => 0x97D2D988,
    13 => 0x09B64C2B,
    14 => 0x7EB17CBD,
    15 => 0xE7B82D07,
    16 => 0x90BF1D91,
    17 => 0x1DB71064,
    18 => 0x6AB020F2,
    19 => 0xF3B97148,
    20 => 0x84BE41DE,
    21 => 0x1ADAD47D,
    22 => 0x6DDDE4EB,
    23 => 0xF4D4B551,
    24 => 0x83D385C7,
    25 => 0x136C9856,
    26 => 0x646BA8C0,
    27 => 0xFD62F97A,
    28 => 0x8A65C9EC,
    29 => 0x14015C4F,
    30 => 0x63066CD9,
    31 => 0xFA0F3D63,
    32 => 0x8D080DF5,
    33 => 0x3B6E20C8,
    34 => 0x4C69105E,
    35 => 0xD56041E4,
    36 => 0xA2677172,
    37 => 0x3C03E4D1,
    38 => 0x4B04D447,
    39 => 0xD20D85FD,
    40 => 0xA50AB56B,
    41 => 0x35B5A8FA,
    42 => 0x42B2986C,
    43 => 0xDBBBC9D6,
    44 => 0xACBCF940,
    45 => 0x32D86CE3,
    46 => 0x45DF5C75,
    47 => 0xDCD60DCF,
    48 => 0xABD13D59,
    49 => 0x26D930AC,
    50 => 0x51DE003A,
    51 => 0xC8D75180,
    52 => 0xBFD06116,
    53 => 0x21B4F4B5,
    54 => 0x56B3C423,
    55 => 0xCFBA9599,
    56 => 0xB8BDA50F,
    57 => 0x2802B89E,
    58 => 0x5F058808,
    59 => 0xC60CD9B2,
    60 => 0xB10BE924,
    61 => 0x2F6F7C87,
    62 => 0x58684C11,
    63 => 0xC1611DAB,
    64 => 0xB6662D3D,
    65 => 0x76DC4190,
    66 => 0x01DB7106,
    67 => 0x98D220BC,
    68 => 0xEFD5102A,
    69 => 0x71B18589,
    70 => 0x06B6B51F,
    71 => 0x9FBFE4A5,
    72 => 0xE8B8D433,
    73 => 0x7807C9A2,
    74 => 0x0F00F934,
    75 => 0x9609A88E,
    76 => 0xE10E9818,
    77 => 0x7F6A0DBB,
    78 => 0x086D3D2D,
    79 => 0x91646C97,
    80 => 0xE6635C01,
    81 => 0x6B6B51F4,
    82 => 0x1C6C6162,
    83 => 0x856530D8,
    84 => 0xF262004E,
    85 => 0x6C0695ED,
    86 => 0x1B01A57B,
    87 => 0x8208F4C1,
    88 => 0xF50FC457,
    89 => 0x65B0D9C6,
    90 => 0x12B7E950,
    91 => 0x8BBEB8EA,
    92 => 0xFCB9887C,
    93 => 0x62DD1DDF,
    94 => 0x15DA2D49,
    95 => 0x8CD37CF3,
    96 => 0xFBD44C65,
    97 => 0x4DB26158,
    98 => 0x3AB551CE,
    99 => 0xA3BC0074,
    100 => 0xD4BB30E2,
    101 => 0x4ADFA541,
    102 => 0x3DD895D7,
    103 => 0xA4D1C46D,
    104 => 0xD3D6F4FB,
    105 => 0x4369E96A,
    106 => 0x346ED9FC,
    107 => 0xAD678846,
    108 => 0xDA60B8D0,
    109 => 0x44042D73,
    110 => 0x33031DE5,
    111 => 0xAA0A4C5F,
    112 => 0xDD0D7CC9,
    113 => 0x5005713C,
    114 => 0x270241AA,
    115 => 0xBE0B1010,
    116 => 0xC90C2086,
    117 => 0x5768B525,
    118 => 0x206F85B3,
    119 => 0xB966D409,
    120 => 0xCE61E49F,
    121 => 0x5EDEF90E,
    122 => 0x29D9C998,
    123 => 0xB0D09822,
    124 => 0xC7D7A8B4,
    125 => 0x59B33D17,
    126 => 0x2EB40D81,
    127 => 0xB7BD5C3B,
    128 => 0xC0BA6CAD,
    129 => 0xEDB88320,
    130 => 0x9ABFB3B6,
    131 => 0x03B6E20C,
    132 => 0x74B1D29A,
    133 => 0xEAD54739,
    134 => 0x9DD277AF,
    135 => 0x04DB2615,
    136 => 0x73DC1683,
    137 => 0xE3630B12,
    138 => 0x94643B84,
    139 => 0x0D6D6A3E,
    140 => 0x7A6A5AA8,
    141 => 0xE40ECF0B,
    142 => 0x9309FF9D,
    143 => 0x0A00AE27,
    144 => 0x7D079EB1,
    145 => 0xF00F9344,
    146 => 0x8708A3D2,
    147 => 0x1E01F268,
    148 => 0x6906C2FE,
    149 => 0xF762575D,
    150 => 0x806567CB,
    151 => 0x196C3671,
    152 => 0x6E6B06E7,
    153 => 0xFED41B76,
    154 => 0x89D32BE0,
    155 => 0x10DA7A5A,
    156 => 0x67DD4ACC,
    157 => 0xF9B9DF6F,
    158 => 0x8EBEEFF9,
    159 => 0x17B7BE43,
    160 => 0x60B08ED5,
    161 => 0xD6D6A3E8,
    162 => 0xA1D1937E,
    163 => 0x38D8C2C4,
    164 => 0x4FDFF252,
    165 => 0xD1BB67F1,
    166 => 0xA6BC5767,
    167 => 0x3FB506DD,
    168 => 0x48B2364B,
    169 => 0xD80D2BDA,
    170 => 0xAF0A1B4C,
    171 => 0x36034AF6,
    172 => 0x41047A60,
    173 => 0xDF60EFC3,
    174 => 0xA867DF55,
    175 => 0x316E8EEF,
    176 => 0x4669BE79,
    177 => 0xCB61B38C,
    178 => 0xBC66831A,
    179 => 0x256FD2A0,
    180 => 0x5268E236,
    181 => 0xCC0C7795,
    182 => 0xBB0B4703,
    183 => 0x220216B9,
    184 => 0x5505262F,
    185 => 0xC5BA3BBE,
    186 => 0xB2BD0B28,
    187 => 0x2BB45A92,
    188 => 0x5CB36A04,
    189 => 0xC2D7FFA7,
    190 => 0xB5D0CF31,
    191 => 0x2CD99E8B,
    192 => 0x5BDEAE1D,
    193 => 0x9B64C2B0,
    194 => 0xEC63F226,
    195 => 0x756AA39C,
    196 => 0x026D930A,
    197 => 0x9C0906A9,
    198 => 0xEB0E363F,
    199 => 0x72076785,
    200 => 0x05005713,
    201 => 0x95BF4A82,
    202 => 0xE2B87A14,
    203 => 0x7BB12BAE,
    204 => 0x0CB61B38,
    205 => 0x92D28E9B,
    206 => 0xE5D5BE0D,
    207 => 0x7CDCEFB7,
    208 => 0x0BDBDF21,
    209 => 0x86D3D2D4,
    210 => 0xF1D4E242,
    211 => 0x68DDB3F8,
    212 => 0x1FDA836E,
    213 => 0x81BE16CD,
    214 => 0xF6B9265B,
    215 => 0x6FB077E1,
    216 => 0x18B74777,
    217 => 0x88085AE6,
    218 => 0xFF0F6A70,
    219 => 0x66063BCA,
    220 => 0x11010B5C,
    221 => 0x8F659EFF,
    222 => 0xF862AE69,
    223 => 0x616BFFD3,
    224 => 0x166CCF45,
    225 => 0xA00AE278,
    226 => 0xD70DD2EE,
    227 => 0x4E048354,
    228 => 0x3903B3C2,
    229 => 0xA7672661,
    230 => 0xD06016F7,
    231 => 0x4969474D,
    232 => 0x3E6E77DB,
    233 => 0xAED16A4A,
    234 => 0xD9D65ADC,
    235 => 0x40DF0B66,
    236 => 0x37D83BF0,
    237 => 0xA9BCAE53,
    238 => 0xDEBB9EC5,
    239 => 0x47B2CF7F,
    240 => 0x30B5FFE9,
    241 => 0xBDBDF21C,
    242 => 0xCABAC28A,
    243 => 0x53B39330,
    244 => 0x24B4A3A6,
    245 => 0xBAD03605,
    246 => 0xCDD70693,
    247 => 0x54DE5729,
    248 => 0x23D967BF,
    249 => 0xB3667A2E,
    250 => 0xC4614AB8,
    251 => 0x5D681B02,
    252 => 0x2A6F2B94,
    253 => 0xB40BBE37,
    254 => 0xC30C8EA1,
    255 => 0x5A05DF1B,
    256 => 0x2D02EF8D,
];

$xorTableHex = [
    "00" => 0x0,
    "01" => 0x77073096,
    "02" => 0xEE0E612C,
    "03" => 0x990951BA,
    "04" => 0x076DC419,
    "05" => 0x706AF48F,
    "06" => 0xE963A535,
    "07" => 0x9E6495A3,
    "08" => 0x0EDB8832,
    "09" => 0x79DCB8A4,
    "0A" => 0xE0D5E91E,
    "0B" => 0x97D2D988,
    "0C" => 0x09B64C2B,
    "0D" => 0x7EB17CBD,
    "0E" => 0xE7B82D07,
    "0F" => 0x90BF1D91,
    "10" => 0x1DB71064,
    "11" => 0x6AB020F2,
    "12" => 0xF3B97148,
    "13" => 0x84BE41DE,
    "14" => 0x1ADAD47D,
    "15" => 0x6DDDE4EB,
    "16" => 0xF4D4B551,
    "17" => 0x83D385C7,
    "18" => 0x136C9856,
    "19" => 0x646BA8C0,
    "1A" => 0xFD62F97A,
    "1B" => 0x8A65C9EC,
    "1C" => 0x14015C4F,
    "1D" => 0x63066CD9,
    "1E" => 0xFA0F3D63,
    "1F" => 0x8D080DF5,
    "20" => 0x3B6E20C8,
    "21" => 0x4C69105E,
    "22" => 0xD56041E4,
    "23" => 0xA2677172,
    "24" => 0x3C03E4D1,
    "25" => 0x4B04D447,
    "26" => 0xD20D85FD,
    "27" => 0xA50AB56B,
    "28" => 0x35B5A8FA,
    "29" => 0x42B2986C,
    "2A" => 0xDBBBC9D6,
    "2B" => 0xACBCF940,
    "2C" => 0x32D86CE3,
    "2D" => 0x45DF5C75,
    "2E" => 0xDCD60DCF,
    "2F" => 0xABD13D59,
    "30" => 0x26D930AC,
    "31" => 0x51DE003A,
    "32" => 0xC8D75180,
    "33" => 0xBFD06116,
    "34" => 0x21B4F4B5,
    "35" => 0x56B3C423,
    "36" => 0xCFBA9599,
    "37" => 0xB8BDA50F,
    "38" => 0x2802B89E,
    "39" => 0x5F058808,
    "3A" => 0xC60CD9B2,
    "3B" => 0xB10BE924,
    "3C" => 0x2F6F7C87,
    "3D" => 0x58684C11,
    "3E" => 0xC1611DAB,
    "3F" => 0xB6662D3D,
    "40" => 0x76DC4190,
    "41" => 0x01DB7106,
    "42" => 0x98D220BC,
    "43" => 0xEFD5102A,
    "44" => 0x71B18589,
    "45" => 0x06B6B51F,
    "46" => 0x9FBFE4A5,
    "47" => 0xE8B8D433,
    "48" => 0x7807C9A2,
    "49" => 0x0F00F934,
    "4A" => 0x9609A88E,
    "4B" => 0xE10E9818,
    "4C" => 0x7F6A0DBB,
    "4D" => 0x086D3D2D,
    "4E" => 0x91646C97,
    "4F" => 0xE6635C01,
    "50" => 0x6B6B51F4,
    "51" => 0x1C6C6162,
    "52" => 0x856530D8,
    "53" => 0xF262004E,
    "54" => 0x6C0695ED,
    "55" => 0x1B01A57B,
    "56" => 0x8208F4C1,
    "57" => 0xF50FC457,
    "58" => 0x65B0D9C6,
    "59" => 0x12B7E950,
    "5A" => 0x8BBEB8EA,
    "5B" => 0xFCB9887C,
    "5C" => 0x62DD1DDF,
    "5D" => 0x15DA2D49,
    "5E" => 0x8CD37CF3,
    "5F" => 0xFBD44C65,
    "60" => 0x4DB26158,
    "61" => 0x3AB551CE,
    "62" => 0xA3BC0074,
    "63" => 0xD4BB30E2,
    "64" => 0x4ADFA541,
    "65" => 0x3DD895D7,
    "66" => 0xA4D1C46D,
    "67" => 0xD3D6F4FB,
    "68" => 0x4369E96A,
    "69" => 0x346ED9FC,
    "6A" => 0xAD678846,
    "6B" => 0xDA60B8D0,
    "6C" => 0x44042D73,
    "6D" => 0x33031DE5,
    "6E" => 0xAA0A4C5F,
    "6F" => 0xDD0D7CC9,
    "70" => 0x5005713C,
    "71" => 0x270241AA,
    "72" => 0xBE0B1010,
    "73" => 0xC90C2086,
    "74" => 0x5768B525,
    "75" => 0x206F85B3,
    "76" => 0xB966D409,
    "77" => 0xCE61E49F,
    "78" => 0x5EDEF90E,
    "79" => 0x29D9C998,
    "7A" => 0xB0D09822,
    "7B" => 0xC7D7A8B4,
    "7C" => 0x59B33D17,
    "7D" => 0x2EB40D81,
    "7E" => 0xB7BD5C3B,
    "7F" => 0xC0BA6CAD,
    "80" => 0xEDB88320,
    "81" => 0x9ABFB3B6,
    "82" => 0x03B6E20C,
    "83" => 0x74B1D29A,
    "84" => 0xEAD54739,
    "85" => 0x9DD277AF,
    "86" => 0x04DB2615,
    "87" => 0x73DC1683,
    "88" => 0xE3630B12,
    "89" => 0x94643B84,
    "8A" => 0x0D6D6A3E,
    "8B" => 0x7A6A5AA8,
    "8C" => 0xE40ECF0B,
    "8D" => 0x9309FF9D,
    "8E" => 0x0A00AE27,
    "8F" => 0x7D079EB1,
    "90" => 0xF00F9344,
    "91" => 0x8708A3D2,
    "92" => 0x1E01F268,
    "93" => 0x6906C2FE,
    "94" => 0xF762575D,
    "95" => 0x806567CB,
    "96" => 0x196C3671,
    "97" => 0x6E6B06E7,
    "98" => 0xFED41B76,
    "99" => 0x89D32BE0,
    "9A" => 0x10DA7A5A,
    "9B" => 0x67DD4ACC,
    "9C" => 0xF9B9DF6F,
    "9D" => 0x8EBEEFF9,
    "9E" => 0x17B7BE43,
    "9F" => 0x60B08ED5,
    "A0" => 0xD6D6A3E8,
    "A1" => 0xA1D1937E,
    "A2" => 0x38D8C2C4,
    "A3" => 0x4FDFF252,
    "A4" => 0xD1BB67F1,
    "A5" => 0xA6BC5767,
    "A6" => 0x3FB506DD,
    "A7" => 0x48B2364B,
    "A8" => 0xD80D2BDA,
    "A9" => 0xAF0A1B4C,
    "AA" => 0x36034AF6,
    "AB" => 0x41047A60,
    "AC" => 0xDF60EFC3,
    "AD" => 0xA867DF55,
    "AE" => 0x316E8EEF,
    "AF" => 0x4669BE79,
    "B0" => 0xCB61B38C,
    "B1" => 0xBC66831A,
    "B2" => 0x256FD2A0,
    "B3" => 0x5268E236,
    "B4" => 0xCC0C7795,
    "B5" => 0xBB0B4703,
    "B6" => 0x220216B9,
    "B7" => 0x5505262F,
    "B8" => 0xC5BA3BBE,
    "B9" => 0xB2BD0B28,
    "BA" => 0x2BB45A92,
    "BB" => 0x5CB36A04,
    "BC" => 0xC2D7FFA7,
    "BD" => 0xB5D0CF31,
    "BE" => 0x2CD99E8B,
    "BF" => 0x5BDEAE1D,
    "C0" => 0x9B64C2B0,
    "C1" => 0xEC63F226,
    "C2" => 0x756AA39C,
    "C3" => 0x026D930A,
    "C4" => 0x9C0906A9,
    "C5" => 0xEB0E363F,
    "C6" => 0x72076785,
    "C7" => 0x05005713,
    "C8" => 0x95BF4A82,
    "C9" => 0xE2B87A14,
    "CA" => 0x7BB12BAE,
    "CB" => 0x0CB61B38,
    "CC" => 0x92D28E9B,
    "CD" => 0xE5D5BE0D,
    "CE" => 0x7CDCEFB7,
    "CF" => 0x0BDBDF21,
    "D0" => 0x86D3D2D4,
    "D1" => 0xF1D4E242,
    "D2" => 0x68DDB3F8,
    "D3" => 0x1FDA836E,
    "D4" => 0x81BE16CD,
    "D5" => 0xF6B9265B,
    "D6" => 0x6FB077E1,
    "D7" => 0x18B74777,
    "D8" => 0x88085AE6,
    "D9" => 0xFF0F6A70,
    "DA" => 0x66063BCA,
    "DB" => 0x11010B5C,
    "DC" => 0x8F659EFF,
    "DD" => 0xF862AE69,
    "DE" => 0x616BFFD3,
    "DF" => 0x166CCF45,
    "E0" => 0xA00AE278,
    "E1" => 0xD70DD2EE,
    "E2" => 0x4E048354,
    "E3" => 0x3903B3C2,
    "E4" => 0xA7672661,
    "E5" => 0xD06016F7,
    "E6" => 0x4969474D,
    "E7" => 0x3E6E77DB,
    "E8" => 0xAED16A4A,
    "E9" => 0xD9D65ADC,
    "EA" => 0x40DF0B66,
    "EB" => 0x37D83BF0,
    "EC" => 0xA9BCAE53,
    "ED" => 0xDEBB9EC5,
    "EE" => 0x47B2CF7F,
    "EF" => 0x30B5FFE9,
    "F0" => 0xBDBDF21C,
    "F1" => 0xCABAC28A,
    "F2" => 0x53B39330,
    "F3" => 0x24B4A3A6,
    "F4" => 0xBAD03605,
    "F5" => 0xCDD70693,
    "F6" => 0x54DE5729,
    "F7" => 0x23D967BF,
    "F8" => 0xB3667A2E,
    "F9" => 0xC4614AB8,
    "FA" => 0x5D681B02,
    "FB" => 0x2A6F2B94,
    "FC" => 0xB40BBE37,
    "FD" => 0xC30C8EA1,
    "FE" => 0x5A05DF1B,
    "FF" => 0x2D02EF8D
];