-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathSquare.inc
330 lines (326 loc) · 26.8 KB
/
Square.inc
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
const
Square_SE: array[0..255] of Byte = (
177, 206, 195, 149, 90, 173, 231, 2, 77, 68, 251, 145, 12, 135, 161, 80,
203, 103, 84, 221, 70, 143, 225, 78, 240, 253, 252, 235, 249, 196, 26, 110,
94, 245, 204, 141, 28, 86, 67, 254, 7, 97, 248, 117, 89, 255, 3, 34,
138, 209, 19, 238, 136, 0, 14, 52, 21, 128, 148, 227, 237, 181, 83, 35,
75, 71, 23, 167, 144, 53, 171, 216, 184, 223, 79, 87, 154, 146, 219, 27,
60, 200, 153, 4, 142, 224, 215, 125, 133, 187, 64, 44, 58, 69, 241, 66,
101, 32, 65, 24, 114, 37, 147, 112, 54, 5, 242, 11, 163, 121, 236, 8,
39, 49, 50, 182, 124, 176, 10, 115, 91, 123, 183, 129, 210, 13, 106, 38,
158, 88, 156, 131, 116, 179, 172, 48, 122, 105, 119, 15, 174, 33, 222, 208,
46, 151, 16, 164, 152, 168, 212, 104, 45, 98, 41, 109, 22, 73, 118, 199,
232, 193, 150, 55, 229, 202, 244, 233, 99, 18, 194, 166, 20, 188, 211, 40,
175, 47, 230, 36, 82, 198, 160, 9, 189, 140, 207, 93, 17, 95, 1, 197,
159, 61, 162, 155, 201, 59, 190, 81, 25, 31, 63, 92, 178, 239, 74, 205,
191, 186, 111, 100, 217, 243, 62, 180, 170, 220, 213, 6, 192, 126, 246, 102,
108, 132, 113, 56, 185, 29, 127, 157, 72, 139, 42, 218, 165, 51, 130, 57,
214, 120, 134, 250, 228, 43, 169, 30, 137, 96, 107, 234, 85, 76, 247, 226);
Square_SD: array[0..255] of Byte = (
53, 190, 7, 46, 83, 105, 219, 40, 111, 183, 118, 107, 12, 125, 54, 139,
146, 188, 169, 50, 172, 56, 156, 66, 99, 200, 30, 79, 36, 229, 247, 201,
97, 141, 47, 63, 179, 101, 127, 112, 175, 154, 234, 245, 91, 152, 144, 177,
135, 113, 114, 237, 55, 69, 104, 163, 227, 239, 92, 197, 80, 193, 214, 202,
90, 98, 95, 38, 9, 93, 20, 65, 232, 157, 206, 64, 253, 8, 23, 74,
15, 199, 180, 62, 18, 252, 37, 75, 129, 44, 4, 120, 203, 187, 32, 189,
249, 41, 153, 168, 211, 96, 223, 17, 151, 137, 126, 250, 224, 155, 31, 210,
103, 226, 100, 119, 132, 43, 158, 138, 241, 109, 136, 121, 116, 87, 221, 230,
57, 123, 238, 131, 225, 88, 242, 13, 52, 248, 48, 233, 185, 35, 84, 21,
68, 11, 77, 102, 58, 3, 162, 145, 148, 82, 76, 195, 130, 231, 128, 192,
182, 14, 194, 108, 147, 236, 171, 67, 149, 246, 216, 70, 134, 5, 140, 176,
117, 0, 204, 133, 215, 61, 115, 122, 72, 228, 209, 89, 173, 184, 198, 208,
220, 161, 170, 2, 29, 191, 181, 159, 81, 196, 165, 16, 34, 207, 1, 186,
143, 49, 124, 174, 150, 218, 240, 86, 71, 212, 235, 78, 217, 19, 142, 73,
85, 22, 255, 59, 244, 164, 178, 6, 160, 167, 251, 27, 110, 60, 51, 205,
24, 94, 106, 213, 166, 33, 222, 254, 42, 28, 243, 10, 26, 25, 39, 45);
Square_PHI: array[0..255] of LongWord = (
$00000000,$03010102,$06020204,$05030306,$0C040408,$0F05050A,$0A06060C,$0907070E,
$18080810,$1B090912,$1E0A0A14,$1D0B0B16,$140C0C18,$170D0D1A,$120E0E1C,$110F0F1E,
$30101020,$33111122,$36121224,$35131326,$3C141428,$3F15152A,$3A16162C,$3917172E,
$28181830,$2B191932,$2E1A1A34,$2D1B1B36,$241C1C38,$271D1D3A,$221E1E3C,$211F1F3E,
$60202040,$63212142,$66222244,$65232346,$6C242448,$6F25254A,$6A26264C,$6927274E,
$78282850,$7B292952,$7E2A2A54,$7D2B2B56,$742C2C58,$772D2D5A,$722E2E5C,$712F2F5E,
$50303060,$53313162,$56323264,$55333366,$5C343468,$5F35356A,$5A36366C,$5937376E,
$48383870,$4B393972,$4E3A3A74,$4D3B3B76,$443C3C78,$473D3D7A,$423E3E7C,$413F3F7E,
$C0404080,$C3414182,$C6424284,$C5434386,$CC444488,$CF45458A,$CA46468C,$C947478E,
$D8484890,$DB494992,$DE4A4A94,$DD4B4B96,$D44C4C98,$D74D4D9A,$D24E4E9C,$D14F4F9E,
$F05050A0,$F35151A2,$F65252A4,$F55353A6,$FC5454A8,$FF5555AA,$FA5656AC,$F95757AE,
$E85858B0,$EB5959B2,$EE5A5AB4,$ED5B5BB6,$E45C5CB8,$E75D5DBA,$E25E5EBC,$E15F5FBE,
$A06060C0,$A36161C2,$A66262C4,$A56363C6,$AC6464C8,$AF6565CA,$AA6666CC,$A96767CE,
$B86868D0,$BB6969D2,$BE6A6AD4,$BD6B6BD6,$B46C6CD8,$B76D6DDA,$B26E6EDC,$B16F6FDE,
$907070E0,$937171E2,$967272E4,$957373E6,$9C7474E8,$9F7575EA,$9A7676EC,$997777EE,
$887878F0,$8B7979F2,$8E7A7AF4,$8D7B7BF6,$847C7CF8,$877D7DFA,$827E7EFC,$817F7FFE,
$758080F5,$768181F7,$738282F1,$708383F3,$798484FD,$7A8585FF,$7F8686F9,$7C8787FB,
$6D8888E5,$6E8989E7,$6B8A8AE1,$688B8BE3,$618C8CED,$628D8DEF,$678E8EE9,$648F8FEB,
$459090D5,$469191D7,$439292D1,$409393D3,$499494DD,$4A9595DF,$4F9696D9,$4C9797DB,
$5D9898C5,$5E9999C7,$5B9A9AC1,$589B9BC3,$519C9CCD,$529D9DCF,$579E9EC9,$549F9FCB,
$15A0A0B5,$16A1A1B7,$13A2A2B1,$10A3A3B3,$19A4A4BD,$1AA5A5BF,$1FA6A6B9,$1CA7A7BB,
$0DA8A8A5,$0EA9A9A7,$0BAAAAA1,$08ABABA3,$01ACACAD,$02ADADAF,$07AEAEA9,$04AFAFAB,
$25B0B095,$26B1B197,$23B2B291,$20B3B393,$29B4B49D,$2AB5B59F,$2FB6B699,$2CB7B79B,
$3DB8B885,$3EB9B987,$3BBABA81,$38BBBB83,$31BCBC8D,$32BDBD8F,$37BEBE89,$34BFBF8B,
$B5C0C075,$B6C1C177,$B3C2C271,$B0C3C373,$B9C4C47D,$BAC5C57F,$BFC6C679,$BCC7C77B,
$ADC8C865,$AEC9C967,$ABCACA61,$A8CBCB63,$A1CCCC6D,$A2CDCD6F,$A7CECE69,$A4CFCF6B,
$85D0D055,$86D1D157,$83D2D251,$80D3D353,$89D4D45D,$8AD5D55F,$8FD6D659,$8CD7D75B,
$9DD8D845,$9ED9D947,$9BDADA41,$98DBDB43,$91DCDC4D,$92DDDD4F,$97DEDE49,$94DFDF4B,
$D5E0E035,$D6E1E137,$D3E2E231,$D0E3E333,$D9E4E43D,$DAE5E53F,$DFE6E639,$DCE7E73B,
$CDE8E825,$CEE9E927,$CBEAEA21,$C8EBEB23,$C1ECEC2D,$C2EDED2F,$C7EEEE29,$C4EFEF2B,
$E5F0F015,$E6F1F117,$E3F2F211,$E0F3F313,$E9F4F41D,$EAF5F51F,$EFF6F619,$ECF7F71B,
$FDF8F805,$FEF9F907,$FBFAFA01,$F8FBFB03,$F1FCFC0D,$F2FDFD0F,$F7FEFE09,$F4FFFF0B);
Square_TE: array[0..3, 0..255] of LongWord = (
($26B1B197,$A7CECE69,$B0C3C373,$4A9595DF,$EE5A5AB4,$02ADADAF,$DCE7E73B,$06020204,
$D74D4D9A,$CC444488,$F8FBFB03,$469191D7,$140C0C18,$7C8787FB,$16A1A1B7,$F05050A0,
$A8CBCB63,$A96767CE,$FC5454A8,$92DDDD4F,$CA46468C,$648F8FEB,$D6E1E137,$D24E4E9C,
$E5F0F015,$F2FDFD0F,$F1FCFC0D,$C8EBEB23,$FEF9F907,$B9C4C47D,$2E1A1A34,$B26E6EDC,
$E25E5EBC,$EAF5F51F,$A1CCCC6D,$628D8DEF,$241C1C38,$FA5656AC,$C5434386,$F7FEFE09,
$0907070E,$A36161C2,$FDF8F805,$9F7575EA,$EB5959B2,$F4FFFF0B,$05030306,$66222244,
$6B8A8AE1,$86D1D157,$35131326,$C7EEEE29,$6D8888E5,$00000000,$120E0E1C,$5C343468,
$3F15152A,$758080F5,$499494DD,$D0E3E333,$C2EDED2F,$2AB5B59F,$F55353A6,$65232346,
$DD4B4B96,$C947478E,$3917172E,$1CA7A7BB,$459090D5,$5F35356A,$08ABABA3,$9DD8D845,
$3DB8B885,$94DFDF4B,$D14F4F9E,$F95757AE,$5B9A9AC1,$439292D1,$98DBDB43,$2D1B1B36,
$443C3C78,$ADC8C865,$5E9999C7,$0C040408,$678E8EE9,$D5E0E035,$8CD7D75B,$877D7DFA,
$7A8585FF,$38BBBB83,$C0404080,$742C2C58,$4E3A3A74,$CF45458A,$E6F1F117,$C6424284,
$AF6565CA,$60202040,$C3414182,$28181830,$967272E4,$6F25254A,$409393D3,$907070E0,
$5A36366C,$0F05050A,$E3F2F211,$1D0B0B16,$10A3A3B3,$8B7979F2,$C1ECEC2D,$18080810,
$6927274E,$53313162,$56323264,$2FB6B699,$847C7CF8,$25B0B095,$1E0A0A14,$957373E6,
$ED5B5BB6,$8D7B7BF6,$2CB7B79B,$768181F7,$83D2D251,$170D0D1A,$BE6A6AD4,$6A26264C,
$579E9EC9,$E85858B0,$519C9CCD,$708383F3,$9C7474E8,$20B3B393,$01ACACAD,$50303060,
$8E7A7AF4,$BB6969D2,$997777EE,$110F0F1E,$07AEAEA9,$63212142,$97DEDE49,$85D0D055,
$722E2E5C,$4C9797DB,$30101020,$19A4A4BD,$5D9898C5,$0DA8A8A5,$89D4D45D,$B86868D0,
$772D2D5A,$A66262C4,$7B292952,$B76D6DDA,$3A16162C,$DB494992,$9A7676EC,$BCC7C77B,
$CDE8E825,$B6C1C177,$4F9696D9,$5937376E,$DAE5E53F,$ABCACA61,$E9F4F41D,$CEE9E927,
$A56363C6,$36121224,$B3C2C271,$1FA6A6B9,$3C141428,$31BCBC8D,$80D3D353,$78282850,
$04AFAFAB,$712F2F5E,$DFE6E639,$6C242448,$F65252A4,$BFC6C679,$15A0A0B5,$1B090912,
$32BDBD8F,$618C8CED,$A4CFCF6B,$E75D5DBA,$33111122,$E15F5FBE,$03010102,$BAC5C57F,
$549F9FCB,$473D3D7A,$13A2A2B1,$589B9BC3,$AEC9C967,$4D3B3B76,$37BEBE89,$F35151A2,
$2B191932,$211F1F3E,$413F3F7E,$E45C5CB8,$23B2B291,$C4EFEF2B,$DE4A4A94,$A2CDCD6F,
$34BFBF8B,$3BBABA81,$B16F6FDE,$AC6464C8,$9ED9D947,$E0F3F313,$423E3E7C,$29B4B49D,
$0BAAAAA1,$91DCDC4D,$8AD5D55F,$0A06060C,$B5C0C075,$827E7EFC,$EFF6F619,$AA6666CC,
$B46C6CD8,$798484FD,$937171E2,$48383870,$3EB9B987,$271D1D3A,$817F7FFE,$529D9DCF,
$D8484890,$688B8BE3,$7E2A2A54,$9BDADA41,$1AA5A5BF,$55333366,$738282F1,$4B393972,
$8FD6D659,$887878F0,$7F8686F9,$FBFAFA01,$D9E4E43D,$7D2B2B56,$0EA9A9A7,$221E1E3C,
$6E8989E7,$A06060C0,$BD6B6BD6,$CBEAEA21,$FF5555AA,$D44C4C98,$ECF7F71B,$D3E2E231),
($B1B19726,$CECE69A7,$C3C373B0,$9595DF4A,$5A5AB4EE,$ADADAF02,$E7E73BDC,$02020406,
$4D4D9AD7,$444488CC,$FBFB03F8,$9191D746,$0C0C1814,$8787FB7C,$A1A1B716,$5050A0F0,
$CBCB63A8,$6767CEA9,$5454A8FC,$DDDD4F92,$46468CCA,$8F8FEB64,$E1E137D6,$4E4E9CD2,
$F0F015E5,$FDFD0FF2,$FCFC0DF1,$EBEB23C8,$F9F907FE,$C4C47DB9,$1A1A342E,$6E6EDCB2,
$5E5EBCE2,$F5F51FEA,$CCCC6DA1,$8D8DEF62,$1C1C3824,$5656ACFA,$434386C5,$FEFE09F7,
$07070E09,$6161C2A3,$F8F805FD,$7575EA9F,$5959B2EB,$FFFF0BF4,$03030605,$22224466,
$8A8AE16B,$D1D15786,$13132635,$EEEE29C7,$8888E56D,$00000000,$0E0E1C12,$3434685C,
$15152A3F,$8080F575,$9494DD49,$E3E333D0,$EDED2FC2,$B5B59F2A,$5353A6F5,$23234665,
$4B4B96DD,$47478EC9,$17172E39,$A7A7BB1C,$9090D545,$35356A5F,$ABABA308,$D8D8459D,
$B8B8853D,$DFDF4B94,$4F4F9ED1,$5757AEF9,$9A9AC15B,$9292D143,$DBDB4398,$1B1B362D,
$3C3C7844,$C8C865AD,$9999C75E,$0404080C,$8E8EE967,$E0E035D5,$D7D75B8C,$7D7DFA87,
$8585FF7A,$BBBB8338,$404080C0,$2C2C5874,$3A3A744E,$45458ACF,$F1F117E6,$424284C6,
$6565CAAF,$20204060,$414182C3,$18183028,$7272E496,$25254A6F,$9393D340,$7070E090,
$36366C5A,$05050A0F,$F2F211E3,$0B0B161D,$A3A3B310,$7979F28B,$ECEC2DC1,$08081018,
$27274E69,$31316253,$32326456,$B6B6992F,$7C7CF884,$B0B09525,$0A0A141E,$7373E695,
$5B5BB6ED,$7B7BF68D,$B7B79B2C,$8181F776,$D2D25183,$0D0D1A17,$6A6AD4BE,$26264C6A,
$9E9EC957,$5858B0E8,$9C9CCD51,$8383F370,$7474E89C,$B3B39320,$ACACAD01,$30306050,
$7A7AF48E,$6969D2BB,$7777EE99,$0F0F1E11,$AEAEA907,$21214263,$DEDE4997,$D0D05585,
$2E2E5C72,$9797DB4C,$10102030,$A4A4BD19,$9898C55D,$A8A8A50D,$D4D45D89,$6868D0B8,
$2D2D5A77,$6262C4A6,$2929527B,$6D6DDAB7,$16162C3A,$494992DB,$7676EC9A,$C7C77BBC,
$E8E825CD,$C1C177B6,$9696D94F,$37376E59,$E5E53FDA,$CACA61AB,$F4F41DE9,$E9E927CE,
$6363C6A5,$12122436,$C2C271B3,$A6A6B91F,$1414283C,$BCBC8D31,$D3D35380,$28285078,
$AFAFAB04,$2F2F5E71,$E6E639DF,$2424486C,$5252A4F6,$C6C679BF,$A0A0B515,$0909121B,
$BDBD8F32,$8C8CED61,$CFCF6BA4,$5D5DBAE7,$11112233,$5F5FBEE1,$01010203,$C5C57FBA,
$9F9FCB54,$3D3D7A47,$A2A2B113,$9B9BC358,$C9C967AE,$3B3B764D,$BEBE8937,$5151A2F3,
$1919322B,$1F1F3E21,$3F3F7E41,$5C5CB8E4,$B2B29123,$EFEF2BC4,$4A4A94DE,$CDCD6FA2,
$BFBF8B34,$BABA813B,$6F6FDEB1,$6464C8AC,$D9D9479E,$F3F313E0,$3E3E7C42,$B4B49D29,
$AAAAA10B,$DCDC4D91,$D5D55F8A,$06060C0A,$C0C075B5,$7E7EFC82,$F6F619EF,$6666CCAA,
$6C6CD8B4,$8484FD79,$7171E293,$38387048,$B9B9873E,$1D1D3A27,$7F7FFE81,$9D9DCF52,
$484890D8,$8B8BE368,$2A2A547E,$DADA419B,$A5A5BF1A,$33336655,$8282F173,$3939724B,
$D6D6598F,$7878F088,$8686F97F,$FAFA01FB,$E4E43DD9,$2B2B567D,$A9A9A70E,$1E1E3C22,
$8989E76E,$6060C0A0,$6B6BD6BD,$EAEA21CB,$5555AAFF,$4C4C98D4,$F7F71BEC,$E2E231D3),
($B19726B1,$CE69A7CE,$C373B0C3,$95DF4A95,$5AB4EE5A,$ADAF02AD,$E73BDCE7,$02040602,
$4D9AD74D,$4488CC44,$FB03F8FB,$91D74691,$0C18140C,$87FB7C87,$A1B716A1,$50A0F050,
$CB63A8CB,$67CEA967,$54A8FC54,$DD4F92DD,$468CCA46,$8FEB648F,$E137D6E1,$4E9CD24E,
$F015E5F0,$FD0FF2FD,$FC0DF1FC,$EB23C8EB,$F907FEF9,$C47DB9C4,$1A342E1A,$6EDCB26E,
$5EBCE25E,$F51FEAF5,$CC6DA1CC,$8DEF628D,$1C38241C,$56ACFA56,$4386C543,$FE09F7FE,
$070E0907,$61C2A361,$F805FDF8,$75EA9F75,$59B2EB59,$FF0BF4FF,$03060503,$22446622,
$8AE16B8A,$D15786D1,$13263513,$EE29C7EE,$88E56D88,$00000000,$0E1C120E,$34685C34,
$152A3F15,$80F57580,$94DD4994,$E333D0E3,$ED2FC2ED,$B59F2AB5,$53A6F553,$23466523,
$4B96DD4B,$478EC947,$172E3917,$A7BB1CA7,$90D54590,$356A5F35,$ABA308AB,$D8459DD8,
$B8853DB8,$DF4B94DF,$4F9ED14F,$57AEF957,$9AC15B9A,$92D14392,$DB4398DB,$1B362D1B,
$3C78443C,$C865ADC8,$99C75E99,$04080C04,$8EE9678E,$E035D5E0,$D75B8CD7,$7DFA877D,
$85FF7A85,$BB8338BB,$4080C040,$2C58742C,$3A744E3A,$458ACF45,$F117E6F1,$4284C642,
$65CAAF65,$20406020,$4182C341,$18302818,$72E49672,$254A6F25,$93D34093,$70E09070,
$366C5A36,$050A0F05,$F211E3F2,$0B161D0B,$A3B310A3,$79F28B79,$EC2DC1EC,$08101808,
$274E6927,$31625331,$32645632,$B6992FB6,$7CF8847C,$B09525B0,$0A141E0A,$73E69573,
$5BB6ED5B,$7BF68D7B,$B79B2CB7,$81F77681,$D25183D2,$0D1A170D,$6AD4BE6A,$264C6A26,
$9EC9579E,$58B0E858,$9CCD519C,$83F37083,$74E89C74,$B39320B3,$ACAD01AC,$30605030,
$7AF48E7A,$69D2BB69,$77EE9977,$0F1E110F,$AEA907AE,$21426321,$DE4997DE,$D05585D0,
$2E5C722E,$97DB4C97,$10203010,$A4BD19A4,$98C55D98,$A8A50DA8,$D45D89D4,$68D0B868,
$2D5A772D,$62C4A662,$29527B29,$6DDAB76D,$162C3A16,$4992DB49,$76EC9A76,$C77BBCC7,
$E825CDE8,$C177B6C1,$96D94F96,$376E5937,$E53FDAE5,$CA61ABCA,$F41DE9F4,$E927CEE9,
$63C6A563,$12243612,$C271B3C2,$A6B91FA6,$14283C14,$BC8D31BC,$D35380D3,$28507828,
$AFAB04AF,$2F5E712F,$E639DFE6,$24486C24,$52A4F652,$C679BFC6,$A0B515A0,$09121B09,
$BD8F32BD,$8CED618C,$CF6BA4CF,$5DBAE75D,$11223311,$5FBEE15F,$01020301,$C57FBAC5,
$9FCB549F,$3D7A473D,$A2B113A2,$9BC3589B,$C967AEC9,$3B764D3B,$BE8937BE,$51A2F351,
$19322B19,$1F3E211F,$3F7E413F,$5CB8E45C,$B29123B2,$EF2BC4EF,$4A94DE4A,$CD6FA2CD,
$BF8B34BF,$BA813BBA,$6FDEB16F,$64C8AC64,$D9479ED9,$F313E0F3,$3E7C423E,$B49D29B4,
$AAA10BAA,$DC4D91DC,$D55F8AD5,$060C0A06,$C075B5C0,$7EFC827E,$F619EFF6,$66CCAA66,
$6CD8B46C,$84FD7984,$71E29371,$38704838,$B9873EB9,$1D3A271D,$7FFE817F,$9DCF529D,
$4890D848,$8BE3688B,$2A547E2A,$DA419BDA,$A5BF1AA5,$33665533,$82F17382,$39724B39,
$D6598FD6,$78F08878,$86F97F86,$FA01FBFA,$E43DD9E4,$2B567D2B,$A9A70EA9,$1E3C221E,
$89E76E89,$60C0A060,$6BD6BD6B,$EA21CBEA,$55AAFF55,$4C98D44C,$F71BECF7,$E231D3E2),
($9726B1B1,$69A7CECE,$73B0C3C3,$DF4A9595,$B4EE5A5A,$AF02ADAD,$3BDCE7E7,$04060202,
$9AD74D4D,$88CC4444,$03F8FBFB,$D7469191,$18140C0C,$FB7C8787,$B716A1A1,$A0F05050,
$63A8CBCB,$CEA96767,$A8FC5454,$4F92DDDD,$8CCA4646,$EB648F8F,$37D6E1E1,$9CD24E4E,
$15E5F0F0,$0FF2FDFD,$0DF1FCFC,$23C8EBEB,$07FEF9F9,$7DB9C4C4,$342E1A1A,$DCB26E6E,
$BCE25E5E,$1FEAF5F5,$6DA1CCCC,$EF628D8D,$38241C1C,$ACFA5656,$86C54343,$09F7FEFE,
$0E090707,$C2A36161,$05FDF8F8,$EA9F7575,$B2EB5959,$0BF4FFFF,$06050303,$44662222,
$E16B8A8A,$5786D1D1,$26351313,$29C7EEEE,$E56D8888,$00000000,$1C120E0E,$685C3434,
$2A3F1515,$F5758080,$DD499494,$33D0E3E3,$2FC2EDED,$9F2AB5B5,$A6F55353,$46652323,
$96DD4B4B,$8EC94747,$2E391717,$BB1CA7A7,$D5459090,$6A5F3535,$A308ABAB,$459DD8D8,
$853DB8B8,$4B94DFDF,$9ED14F4F,$AEF95757,$C15B9A9A,$D1439292,$4398DBDB,$362D1B1B,
$78443C3C,$65ADC8C8,$C75E9999,$080C0404,$E9678E8E,$35D5E0E0,$5B8CD7D7,$FA877D7D,
$FF7A8585,$8338BBBB,$80C04040,$58742C2C,$744E3A3A,$8ACF4545,$17E6F1F1,$84C64242,
$CAAF6565,$40602020,$82C34141,$30281818,$E4967272,$4A6F2525,$D3409393,$E0907070,
$6C5A3636,$0A0F0505,$11E3F2F2,$161D0B0B,$B310A3A3,$F28B7979,$2DC1ECEC,$10180808,
$4E692727,$62533131,$64563232,$992FB6B6,$F8847C7C,$9525B0B0,$141E0A0A,$E6957373,
$B6ED5B5B,$F68D7B7B,$9B2CB7B7,$F7768181,$5183D2D2,$1A170D0D,$D4BE6A6A,$4C6A2626,
$C9579E9E,$B0E85858,$CD519C9C,$F3708383,$E89C7474,$9320B3B3,$AD01ACAC,$60503030,
$F48E7A7A,$D2BB6969,$EE997777,$1E110F0F,$A907AEAE,$42632121,$4997DEDE,$5585D0D0,
$5C722E2E,$DB4C9797,$20301010,$BD19A4A4,$C55D9898,$A50DA8A8,$5D89D4D4,$D0B86868,
$5A772D2D,$C4A66262,$527B2929,$DAB76D6D,$2C3A1616,$92DB4949,$EC9A7676,$7BBCC7C7,
$25CDE8E8,$77B6C1C1,$D94F9696,$6E593737,$3FDAE5E5,$61ABCACA,$1DE9F4F4,$27CEE9E9,
$C6A56363,$24361212,$71B3C2C2,$B91FA6A6,$283C1414,$8D31BCBC,$5380D3D3,$50782828,
$AB04AFAF,$5E712F2F,$39DFE6E6,$486C2424,$A4F65252,$79BFC6C6,$B515A0A0,$121B0909,
$8F32BDBD,$ED618C8C,$6BA4CFCF,$BAE75D5D,$22331111,$BEE15F5F,$02030101,$7FBAC5C5,
$CB549F9F,$7A473D3D,$B113A2A2,$C3589B9B,$67AEC9C9,$764D3B3B,$8937BEBE,$A2F35151,
$322B1919,$3E211F1F,$7E413F3F,$B8E45C5C,$9123B2B2,$2BC4EFEF,$94DE4A4A,$6FA2CDCD,
$8B34BFBF,$813BBABA,$DEB16F6F,$C8AC6464,$479ED9D9,$13E0F3F3,$7C423E3E,$9D29B4B4,
$A10BAAAA,$4D91DCDC,$5F8AD5D5,$0C0A0606,$75B5C0C0,$FC827E7E,$19EFF6F6,$CCAA6666,
$D8B46C6C,$FD798484,$E2937171,$70483838,$873EB9B9,$3A271D1D,$FE817F7F,$CF529D9D,
$90D84848,$E3688B8B,$547E2A2A,$419BDADA,$BF1AA5A5,$66553333,$F1738282,$724B3939,
$598FD6D6,$F0887878,$F97F8686,$01FBFAFA,$3DD9E4E4,$567D2B2B,$A70EA9A9,$3C221E1E,
$E76E8989,$C0A06060,$D6BD6B6B,$21CBEAEA,$AAFF5555,$98D44C4C,$1BECF7F7,$31D3E2E2));
Square_TD: array[0..3, 0..255] of LongWord = (
($02BC68E3,$0C628555,$31233F2A,$F713AB61,$726DD498,$199ACB21,$61A4223C,$CD3D9D45,
$23B4FD05,$5F07C42B,$C0012C9B,$0F80D93D,$745C6C48,$857E7FF9,$1FAB73F1,$0EDEEDB6,
$ED6B3C28,$1A789749,$8D912A9F,$339F57C9,$AAA807A9,$7DED0DA5,$8F2D427C,$C9B04D76,
$57E8914D,$CC63A9CE,$D296EEB4,$B6E12830,$B961F10D,$266719BD,$80AD9B41,$C76EA0C0,
$41F28351,$34F0DB92,$FC1EA26F,$4CCE328F,$7333E013,$6DC6A769,$93646DE5,$FA2F1ABF,
$B7BF1CBB,$B5037458,$4F2C6EE7,$96B7895D,$2A059CE8,$A3196644,$FB712E34,$6529F20F,
$7A8281FE,$F12213B1,$EC3508A3,$7E0F51CD,$14A67AFF,$F893725C,$1297C22F,$C3E370F3,
$1C492F99,$681543D1,$1B26A3C2,$B332CC88,$6F7ACF8A,$9F06E8B0,$1EF5477A,$DA79BBD2,
$210895E6,$5CE59843,$0631B8D0,$AF7BE311,$5365417E,$102BAACC,$9CE4B4D8,$D4A75664,
$59367CFB,$84204B72,$F64D9FEA,$DFAA5F6A,$CEDFC12D,$58684870,$81F3AFCA,$91D80506,
$694B775A,$A528DE94,$4210DF39,$47C33B81,$A6CA82FC,$C5D2C823,$B26CF803,$9AD50C08,
$40ACB7DA,$E109B97D,$2C342438,$A24752CF,$D174B2DC,$2B5BA863,$9555D535,$11759E47,
$E2EBE515,$C630944B,$A8146F4A,$869C2391,$39CC6A4C,$4AFF8A5F,$4D900604,$BBDD99EE,
$CA52111E,$18C4FFAA,$986964EB,$FFFCFE07,$015E348B,$BE0E7D56,$D99BE7BA,$32C16342,
$7BDCB575,$17442697,$66CBAE67,$CB0C2595,$67959AEC,$D02A8657,$99375060,$05D3E4B8,
$BA83AD65,$35AEEF19,$13C9F6A4,$A94A5BC1,$D61B3E87,$5E59F0A0,$5B8A1418,$3B7002AF,
$76E004AB,$BF5049DD,$63184ADF,$56B6A5C6,$0A533D85,$371287FA,$A794B677,$7F516546,
$09B161ED,$E9E6EC1B,$258545D5,$523B75F5,$3D41BA7F,$8842CE27,$434EEBB2,$97E9BDD6,
$F39E7B52,$457F5362,$A0FB3A2C,$70D1BC7B,$6BF71FB9,$1D171B12,$C8EE79FD,$F07C273A,
$D7450A0C,$7960DD96,$ABF63322,$891CFAAC,$5DBBACC8,$307D0BA1,$4BA1BED4,$940BE1BE,
$540ACD25,$62467E54,$8211F3A2,$3EA3E617,$E6663526,$750258C3,$9B8B3883,$C2BD4478,
$DC480302,$8BA0924F,$7CB3392E,$E584694E,$718F88F0,$27392D36,$3FFDD29C,$6E24FB01,
$DD163789,$00000000,$E0578DF6,$6C9893E2,$15F84E74,$5AD42093,$E73801AD,$B45D40D3,
$87C2171A,$2D6A10B3,$2FD67850,$3C1F8EF4,$A1A50EA7,$364CB371,$AE25D79A,$24DB715E,
$50871D16,$D5F962EF,$9086318D,$161A121C,$CF81F5A6,$076F8C5B,$491DD637,$923A596E,
$6477C684,$B83FC586,$F9CD46D7,$B0D090E0,$834FC729,$FD4096E4,$0B0D090E,$2056A16D,
$22EAC98E,$2E884CDB,$8E7376F7,$BCB215B5,$C15F1810,$6AA92B32,$B18EA46B,$5554F9AE,
$EE896040,$08EF5566,$442167E9,$BDEC213E,$77BE3020,$ADC78BF2,$29E7C080,$8CCF1E14,
$4843E2BC,$8AFEA6C4,$D8C5D331,$60FA16B7,$9DBA8053,$F2C04FD9,$783EE91D,$3A2E3624,
$DEF46BE1,$EFD754CB,$F4F1F709,$F5AFC382,$28B9F40B,$51D9299D,$38925EC7,$EB5A84F8,
$E8B8D890,$0D3CB1DE,$048DD033,$03E25C68,$E4DA5DC5,$9E58DC3B,$469D0F0A,$D3C8DA3F,
$DB278F59,$C48CFCA8,$AC99BF79,$4E725A6C,$FEA2CA8C,$E3B5D19E,$A476EA1F,$EA04B073),
($BC68E302,$6285550C,$233F2A31,$13AB61F7,$6DD49872,$9ACB2119,$A4223C61,$3D9D45CD,
$B4FD0523,$07C42B5F,$012C9BC0,$80D93D0F,$5C6C4874,$7E7FF985,$AB73F11F,$DEEDB60E,
$6B3C28ED,$7897491A,$912A9F8D,$9F57C933,$A807A9AA,$ED0DA57D,$2D427C8F,$B04D76C9,
$E8914D57,$63A9CECC,$96EEB4D2,$E12830B6,$61F10DB9,$6719BD26,$AD9B4180,$6EA0C0C7,
$F2835141,$F0DB9234,$1EA26FFC,$CE328F4C,$33E01373,$C6A7696D,$646DE593,$2F1ABFFA,
$BF1CBBB7,$037458B5,$2C6EE74F,$B7895D96,$059CE82A,$196644A3,$712E34FB,$29F20F65,
$8281FE7A,$2213B1F1,$3508A3EC,$0F51CD7E,$A67AFF14,$93725CF8,$97C22F12,$E370F3C3,
$492F991C,$1543D168,$26A3C21B,$32CC88B3,$7ACF8A6F,$06E8B09F,$F5477A1E,$79BBD2DA,
$0895E621,$E598435C,$31B8D006,$7BE311AF,$65417E53,$2BAACC10,$E4B4D89C,$A75664D4,
$367CFB59,$204B7284,$4D9FEAF6,$AA5F6ADF,$DFC12DCE,$68487058,$F3AFCA81,$D8050691,
$4B775A69,$28DE94A5,$10DF3942,$C33B8147,$CA82FCA6,$D2C823C5,$6CF803B2,$D50C089A,
$ACB7DA40,$09B97DE1,$3424382C,$4752CFA2,$74B2DCD1,$5BA8632B,$55D53595,$759E4711,
$EBE515E2,$30944BC6,$146F4AA8,$9C239186,$CC6A4C39,$FF8A5F4A,$9006044D,$DD99EEBB,
$52111ECA,$C4FFAA18,$6964EB98,$FCFE07FF,$5E348B01,$0E7D56BE,$9BE7BAD9,$C1634232,
$DCB5757B,$44269717,$CBAE6766,$0C2595CB,$959AEC67,$2A8657D0,$37506099,$D3E4B805,
$83AD65BA,$AEEF1935,$C9F6A413,$4A5BC1A9,$1B3E87D6,$59F0A05E,$8A14185B,$7002AF3B,
$E004AB76,$5049DDBF,$184ADF63,$B6A5C656,$533D850A,$1287FA37,$94B677A7,$5165467F,
$B161ED09,$E6EC1BE9,$8545D525,$3B75F552,$41BA7F3D,$42CE2788,$4EEBB243,$E9BDD697,
$9E7B52F3,$7F536245,$FB3A2CA0,$D1BC7B70,$F71FB96B,$171B121D,$EE79FDC8,$7C273AF0,
$450A0CD7,$60DD9679,$F63322AB,$1CFAAC89,$BBACC85D,$7D0BA130,$A1BED44B,$0BE1BE94,
$0ACD2554,$467E5462,$11F3A282,$A3E6173E,$663526E6,$0258C375,$8B38839B,$BD4478C2,
$480302DC,$A0924F8B,$B3392E7C,$84694EE5,$8F88F071,$392D3627,$FDD29C3F,$24FB016E,
$163789DD,$00000000,$578DF6E0,$9893E26C,$F84E7415,$D420935A,$3801ADE7,$5D40D3B4,
$C2171A87,$6A10B32D,$D678502F,$1F8EF43C,$A50EA7A1,$4CB37136,$25D79AAE,$DB715E24,
$871D1650,$F962EFD5,$86318D90,$1A121C16,$81F5A6CF,$6F8C5B07,$1DD63749,$3A596E92,
$77C68464,$3FC586B8,$CD46D7F9,$D090E0B0,$4FC72983,$4096E4FD,$0D090E0B,$56A16D20,
$EAC98E22,$884CDB2E,$7376F78E,$B215B5BC,$5F1810C1,$A92B326A,$8EA46BB1,$54F9AE55,
$896040EE,$EF556608,$2167E944,$EC213EBD,$BE302077,$C78BF2AD,$E7C08029,$CF1E148C,
$43E2BC48,$FEA6C48A,$C5D331D8,$FA16B760,$BA80539D,$C04FD9F2,$3EE91D78,$2E36243A,
$F46BE1DE,$D754CBEF,$F1F709F4,$AFC382F5,$B9F40B28,$D9299D51,$925EC738,$5A84F8EB,
$B8D890E8,$3CB1DE0D,$8DD03304,$E25C6803,$DA5DC5E4,$58DC3B9E,$9D0F0A46,$C8DA3FD3,
$278F59DB,$8CFCA8C4,$99BF79AC,$725A6C4E,$A2CA8CFE,$B5D19EE3,$76EA1FA4,$04B073EA),
($68E302BC,$85550C62,$3F2A3123,$AB61F713,$D498726D,$CB21199A,$223C61A4,$9D45CD3D,
$FD0523B4,$C42B5F07,$2C9BC001,$D93D0F80,$6C48745C,$7FF9857E,$73F11FAB,$EDB60EDE,
$3C28ED6B,$97491A78,$2A9F8D91,$57C9339F,$07A9AAA8,$0DA57DED,$427C8F2D,$4D76C9B0,
$914D57E8,$A9CECC63,$EEB4D296,$2830B6E1,$F10DB961,$19BD2667,$9B4180AD,$A0C0C76E,
$835141F2,$DB9234F0,$A26FFC1E,$328F4CCE,$E0137333,$A7696DC6,$6DE59364,$1ABFFA2F,
$1CBBB7BF,$7458B503,$6EE74F2C,$895D96B7,$9CE82A05,$6644A319,$2E34FB71,$F20F6529,
$81FE7A82,$13B1F122,$08A3EC35,$51CD7E0F,$7AFF14A6,$725CF893,$C22F1297,$70F3C3E3,
$2F991C49,$43D16815,$A3C21B26,$CC88B332,$CF8A6F7A,$E8B09F06,$477A1EF5,$BBD2DA79,
$95E62108,$98435CE5,$B8D00631,$E311AF7B,$417E5365,$AACC102B,$B4D89CE4,$5664D4A7,
$7CFB5936,$4B728420,$9FEAF64D,$5F6ADFAA,$C12DCEDF,$48705868,$AFCA81F3,$050691D8,
$775A694B,$DE94A528,$DF394210,$3B8147C3,$82FCA6CA,$C823C5D2,$F803B26C,$0C089AD5,
$B7DA40AC,$B97DE109,$24382C34,$52CFA247,$B2DCD174,$A8632B5B,$D5359555,$9E471175,
$E515E2EB,$944BC630,$6F4AA814,$2391869C,$6A4C39CC,$8A5F4AFF,$06044D90,$99EEBBDD,
$111ECA52,$FFAA18C4,$64EB9869,$FE07FFFC,$348B015E,$7D56BE0E,$E7BAD99B,$634232C1,
$B5757BDC,$26971744,$AE6766CB,$2595CB0C,$9AEC6795,$8657D02A,$50609937,$E4B805D3,
$AD65BA83,$EF1935AE,$F6A413C9,$5BC1A94A,$3E87D61B,$F0A05E59,$14185B8A,$02AF3B70,
$04AB76E0,$49DDBF50,$4ADF6318,$A5C656B6,$3D850A53,$87FA3712,$B677A794,$65467F51,
$61ED09B1,$EC1BE9E6,$45D52585,$75F5523B,$BA7F3D41,$CE278842,$EBB2434E,$BDD697E9,
$7B52F39E,$5362457F,$3A2CA0FB,$BC7B70D1,$1FB96BF7,$1B121D17,$79FDC8EE,$273AF07C,
$0A0CD745,$DD967960,$3322ABF6,$FAAC891C,$ACC85DBB,$0BA1307D,$BED44BA1,$E1BE940B,
$CD25540A,$7E546246,$F3A28211,$E6173EA3,$3526E666,$58C37502,$38839B8B,$4478C2BD,
$0302DC48,$924F8BA0,$392E7CB3,$694EE584,$88F0718F,$2D362739,$D29C3FFD,$FB016E24,
$3789DD16,$00000000,$8DF6E057,$93E26C98,$4E7415F8,$20935AD4,$01ADE738,$40D3B45D,
$171A87C2,$10B32D6A,$78502FD6,$8EF43C1F,$0EA7A1A5,$B371364C,$D79AAE25,$715E24DB,
$1D165087,$62EFD5F9,$318D9086,$121C161A,$F5A6CF81,$8C5B076F,$D637491D,$596E923A,
$C6846477,$C586B83F,$46D7F9CD,$90E0B0D0,$C729834F,$96E4FD40,$090E0B0D,$A16D2056,
$C98E22EA,$4CDB2E88,$76F78E73,$15B5BCB2,$1810C15F,$2B326AA9,$A46BB18E,$F9AE5554,
$6040EE89,$556608EF,$67E94421,$213EBDEC,$302077BE,$8BF2ADC7,$C08029E7,$1E148CCF,
$E2BC4843,$A6C48AFE,$D331D8C5,$16B760FA,$80539DBA,$4FD9F2C0,$E91D783E,$36243A2E,
$6BE1DEF4,$54CBEFD7,$F709F4F1,$C382F5AF,$F40B28B9,$299D51D9,$5EC73892,$84F8EB5A,
$D890E8B8,$B1DE0D3C,$D033048D,$5C6803E2,$5DC5E4DA,$DC3B9E58,$0F0A469D,$DA3FD3C8,
$8F59DB27,$FCA8C48C,$BF79AC99,$5A6C4E72,$CA8CFEA2,$D19EE3B5,$EA1FA476,$B073EA04),
($E302BC68,$550C6285,$2A31233F,$61F713AB,$98726DD4,$21199ACB,$3C61A422,$45CD3D9D,
$0523B4FD,$2B5F07C4,$9BC0012C,$3D0F80D9,$48745C6C,$F9857E7F,$F11FAB73,$B60EDEED,
$28ED6B3C,$491A7897,$9F8D912A,$C9339F57,$A9AAA807,$A57DED0D,$7C8F2D42,$76C9B04D,
$4D57E891,$CECC63A9,$B4D296EE,$30B6E128,$0DB961F1,$BD266719,$4180AD9B,$C0C76EA0,
$5141F283,$9234F0DB,$6FFC1EA2,$8F4CCE32,$137333E0,$696DC6A7,$E593646D,$BFFA2F1A,
$BBB7BF1C,$58B50374,$E74F2C6E,$5D96B789,$E82A059C,$44A31966,$34FB712E,$0F6529F2,
$FE7A8281,$B1F12213,$A3EC3508,$CD7E0F51,$FF14A67A,$5CF89372,$2F1297C2,$F3C3E370,
$991C492F,$D1681543,$C21B26A3,$88B332CC,$8A6F7ACF,$B09F06E8,$7A1EF547,$D2DA79BB,
$E6210895,$435CE598,$D00631B8,$11AF7BE3,$7E536541,$CC102BAA,$D89CE4B4,$64D4A756,
$FB59367C,$7284204B,$EAF64D9F,$6ADFAA5F,$2DCEDFC1,$70586848,$CA81F3AF,$0691D805,
$5A694B77,$94A528DE,$394210DF,$8147C33B,$FCA6CA82,$23C5D2C8,$03B26CF8,$089AD50C,
$DA40ACB7,$7DE109B9,$382C3424,$CFA24752,$DCD174B2,$632B5BA8,$359555D5,$4711759E,
$15E2EBE5,$4BC63094,$4AA8146F,$91869C23,$4C39CC6A,$5F4AFF8A,$044D9006,$EEBBDD99,
$1ECA5211,$AA18C4FF,$EB986964,$07FFFCFE,$8B015E34,$56BE0E7D,$BAD99BE7,$4232C163,
$757BDCB5,$97174426,$6766CBAE,$95CB0C25,$EC67959A,$57D02A86,$60993750,$B805D3E4,
$65BA83AD,$1935AEEF,$A413C9F6,$C1A94A5B,$87D61B3E,$A05E59F0,$185B8A14,$AF3B7002,
$AB76E004,$DDBF5049,$DF63184A,$C656B6A5,$850A533D,$FA371287,$77A794B6,$467F5165,
$ED09B161,$1BE9E6EC,$D5258545,$F5523B75,$7F3D41BA,$278842CE,$B2434EEB,$D697E9BD,
$52F39E7B,$62457F53,$2CA0FB3A,$7B70D1BC,$B96BF71F,$121D171B,$FDC8EE79,$3AF07C27,
$0CD7450A,$967960DD,$22ABF633,$AC891CFA,$C85DBBAC,$A1307D0B,$D44BA1BE,$BE940BE1,
$25540ACD,$5462467E,$A28211F3,$173EA3E6,$26E66635,$C3750258,$839B8B38,$78C2BD44,
$02DC4803,$4F8BA092,$2E7CB339,$4EE58469,$F0718F88,$3627392D,$9C3FFDD2,$016E24FB,
$89DD1637,$00000000,$F6E0578D,$E26C9893,$7415F84E,$935AD420,$ADE73801,$D3B45D40,
$1A87C217,$B32D6A10,$502FD678,$F43C1F8E,$A7A1A50E,$71364CB3,$9AAE25D7,$5E24DB71,
$1650871D,$EFD5F962,$8D908631,$1C161A12,$A6CF81F5,$5B076F8C,$37491DD6,$6E923A59,
$846477C6,$86B83FC5,$D7F9CD46,$E0B0D090,$29834FC7,$E4FD4096,$0E0B0D09,$6D2056A1,
$8E22EAC9,$DB2E884C,$F78E7376,$B5BCB215,$10C15F18,$326AA92B,$6BB18EA4,$AE5554F9,
$40EE8960,$6608EF55,$E9442167,$3EBDEC21,$2077BE30,$F2ADC78B,$8029E7C0,$148CCF1E,
$BC4843E2,$C48AFEA6,$31D8C5D3,$B760FA16,$539DBA80,$D9F2C04F,$1D783EE9,$243A2E36,
$E1DEF46B,$CBEFD754,$09F4F1F7,$82F5AFC3,$0B28B9F4,$9D51D929,$C738925E,$F8EB5A84,
$90E8B8D8,$DE0D3CB1,$33048DD0,$6803E25C,$C5E4DA5D,$3B9E58DC,$0A469D0F,$3FD3C8DA,
$59DB278F,$A8C48CFC,$79AC99BF,$6C4E725A,$8CFEA2CA,$9EE3B5D1,$1FA476EA,$73EA04B0));