nx_inflate_kat_test.nx source
↩ module page · 572 lines · 17618 B
1// nx_inflate_kat_test.nx -- R4-CMP-001: consolidated DEFLATE inflate KAT
2// (RFC1951). Proves nx_deflate_inflate decodes all THREE block types
3// head-on against python-zlib gold-standard raw-DEFLATE vectors:
4// stored (BTYPE=00) / fixed-huffman (01) / dynamic-huffman (10).
5// Composes the proven inflate engine (nx_deflate.nx) -- not reinvented;
6// this is the named 'inflate-KATs-green' gate the row asks for. The
7// browser keystone (Content-Encoding: gzip/deflate) + e-reader (EPUB=zip)
8// both ride this. Discrimination: three DISTINCT originals via three
9// DISTINCT decode paths, each matched exact length + exact bytes -- a
10// broken/no-op inflate cannot reproduce all three.
11// expect_exit: 0
12// license_tier: ORIGINAL
13
14import "nx_syscalls.nx"
15import "nx_runtime.nx"
16import "nx_deflate.nx"
17
18func main() -> nx_int {
19 // ---- BTYPE=00 stored: 24B -> 19B ----
20 let in_stored: *u8 = (sys_mmap(32)) as *u8
21 in_stored[0] = 0x01 as u8
22 in_stored[1] = 0x13 as u8
23 in_stored[2] = 0x00 as u8
24 in_stored[3] = 0xec as u8
25 in_stored[4] = 0xff as u8
26 in_stored[5] = 0x4e as u8
27 in_stored[6] = 0x49 as u8
28 in_stored[7] = 0x53 as u8
29 in_stored[8] = 0x48 as u8
30 in_stored[9] = 0x49 as u8
31 in_stored[10] = 0x2d as u8
32 in_stored[11] = 0x73 as u8
33 in_stored[12] = 0x74 as u8
34 in_stored[13] = 0x6f as u8
35 in_stored[14] = 0x72 as u8
36 in_stored[15] = 0x65 as u8
37 in_stored[16] = 0x64 as u8
38 in_stored[17] = 0x2d as u8
39 in_stored[18] = 0x62 as u8
40 in_stored[19] = 0x6c as u8
41 in_stored[20] = 0x6f as u8
42 in_stored[21] = 0x63 as u8
43 in_stored[22] = 0x6b as u8
44 in_stored[23] = 0x21 as u8
45 let exp_stored: *u8 = (sys_mmap(27)) as *u8
46 exp_stored[0] = 0x4e as u8
47 exp_stored[1] = 0x49 as u8
48 exp_stored[2] = 0x53 as u8
49 exp_stored[3] = 0x48 as u8
50 exp_stored[4] = 0x49 as u8
51 exp_stored[5] = 0x2d as u8
52 exp_stored[6] = 0x73 as u8
53 exp_stored[7] = 0x74 as u8
54 exp_stored[8] = 0x6f as u8
55 exp_stored[9] = 0x72 as u8
56 exp_stored[10] = 0x65 as u8
57 exp_stored[11] = 0x64 as u8
58 exp_stored[12] = 0x2d as u8
59 exp_stored[13] = 0x62 as u8
60 exp_stored[14] = 0x6c as u8
61 exp_stored[15] = 0x6f as u8
62 exp_stored[16] = 0x63 as u8
63 exp_stored[17] = 0x6b as u8
64 exp_stored[18] = 0x21 as u8
65 let r_stored: *NxDeflateResult = nx_deflate_inflate(in_stored, 24, 83)
66 if r_stored == (0 as *NxDeflateResult) { return 10 }
67 if r_stored.error_code != NX_DEF_OK { return 11 }
68 if r_stored.output_size != 19 { return 12 }
69 var i_stored: nx_int = 0
70 while i_stored < 19 {
71 let got: nx_int = (r_stored.output_data[i_stored] as nx_int) & 255
72 let want: nx_int = (exp_stored[i_stored] as nx_int) & 255
73 if got != want { return 13 }
74 i_stored = i_stored + 1
75 }
76
77 // ---- BTYPE=01 fixed-huffman: 23B -> 21B ----
78 let in_fixed: *u8 = (sys_mmap(31)) as *u8
79 in_fixed[0] = 0x4b as u8
80 in_fixed[1] = 0x49 as u8
81 in_fixed[2] = 0x4d as u8
82 in_fixed[3] = 0xcb as u8
83 in_fixed[4] = 0x49 as u8
84 in_fixed[5] = 0x2c as u8
85 in_fixed[6] = 0x49 as u8
86 in_fixed[7] = 0x55 as u8
87 in_fixed[8] = 0x48 as u8
88 in_fixed[9] = 0xcb as u8
89 in_fixed[10] = 0xac as u8
90 in_fixed[11] = 0x48 as u8
91 in_fixed[12] = 0x4d as u8
92 in_fixed[13] = 0x51 as u8
93 in_fixed[14] = 0xc8 as u8
94 in_fixed[15] = 0x28 as u8
95 in_fixed[16] = 0x4d as u8
96 in_fixed[17] = 0x4b as u8
97 in_fixed[18] = 0xcb as u8
98 in_fixed[19] = 0x4d as u8
99 in_fixed[20] = 0xcc as u8
100 in_fixed[21] = 0x03 as u8
101 in_fixed[22] = 0x00 as u8
102 let exp_fixed: *u8 = (sys_mmap(29)) as *u8
103 exp_fixed[0] = 0x64 as u8
104 exp_fixed[1] = 0x65 as u8
105 exp_fixed[2] = 0x66 as u8
106 exp_fixed[3] = 0x6c as u8
107 exp_fixed[4] = 0x61 as u8
108 exp_fixed[5] = 0x74 as u8
109 exp_fixed[6] = 0x65 as u8
110 exp_fixed[7] = 0x20 as u8
111 exp_fixed[8] = 0x66 as u8
112 exp_fixed[9] = 0x69 as u8
113 exp_fixed[10] = 0x78 as u8
114 exp_fixed[11] = 0x65 as u8
115 exp_fixed[12] = 0x64 as u8
116 exp_fixed[13] = 0x20 as u8
117 exp_fixed[14] = 0x68 as u8
118 exp_fixed[15] = 0x75 as u8
119 exp_fixed[16] = 0x66 as u8
120 exp_fixed[17] = 0x66 as u8
121 exp_fixed[18] = 0x6d as u8
122 exp_fixed[19] = 0x61 as u8
123 exp_fixed[20] = 0x6e as u8
124 let r_fixed: *NxDeflateResult = nx_deflate_inflate(in_fixed, 23, 85)
125 if r_fixed == (0 as *NxDeflateResult) { return 30 }
126 if r_fixed.error_code != NX_DEF_OK { return 31 }
127 if r_fixed.output_size != 21 { return 32 }
128 var i_fixed: nx_int = 0
129 while i_fixed < 21 {
130 let got: nx_int = (r_fixed.output_data[i_fixed] as nx_int) & 255
131 let want: nx_int = (exp_fixed[i_fixed] as nx_int) & 255
132 if got != want { return 33 }
133 i_fixed = i_fixed + 1
134 }
135
136 // ---- BTYPE=10 dynamic-huffman: 175B -> 245B ----
137 let in_dyn: *u8 = (sys_mmap(183)) as *u8
138 in_dyn[0] = 0x3d as u8
139 in_dyn[1] = 0x8e as u8
140 in_dyn[2] = 0x3d as u8
141 in_dyn[3] = 0x8f as u8
142 in_dyn[4] = 0xc2 as u8
143 in_dyn[5] = 0x30 as u8
144 in_dyn[6] = 0x0c as u8
145 in_dyn[7] = 0x86 as u8
146 in_dyn[8] = 0xff as u8
147 in_dyn[9] = 0xca as u8
148 in_dyn[10] = 0xcb as u8
149 in_dyn[11] = 0xce as u8
150 in_dyn[12] = 0xb1 as u8
151 in_dyn[13] = 0x32 as u8
152 in_dyn[14] = 0x30 as u8
153 in_dyn[15] = 0x21 as u8
154 in_dyn[16] = 0x1d as u8
155 in_dyn[17] = 0x27 as u8
156 in_dyn[18] = 0x90 as u8
157 in_dyn[19] = 0x10 as u8
158 in_dyn[20] = 0x53 as u8
159 in_dyn[21] = 0x27 as u8
160 in_dyn[22] = 0x36 as u8
161 in_dyn[23] = 0x37 as u8
162 in_dyn[24] = 0x71 as u8
163 in_dyn[25] = 0x53 as u8
164 in_dyn[26] = 0x8b as u8
165 in_dyn[27] = 0x34 as u8
166 in_dyn[28] = 0xa9 as u8
167 in_dyn[29] = 0xec as u8
168 in_dyn[30] = 0xe4 as u8
169 in_dyn[31] = 0x7a as u8
170 in_dyn[32] = 0xf0 as u8
171 in_dyn[33] = 0xeb as u8
172 in_dyn[34] = 0xaf as u8
173 in_dyn[35] = 0xf4 as u8
174 in_dyn[36] = 0x0e as u8
175 in_dyn[37] = 0x26 as u8
176 in_dyn[38] = 0x7f as u8
177 in_dyn[39] = 0xc8 as u8
178 in_dyn[40] = 0xef as u8
179 in_dyn[41] = 0xe3 as u8
180 in_dyn[42] = 0xa7 as u8
181 in_dyn[43] = 0xe9 as u8
182 in_dyn[44] = 0x19 as u8
183 in_dyn[45] = 0x96 as u8
184 in_dyn[46] = 0xbf as u8
185 in_dyn[47] = 0x59 as u8
186 in_dyn[48] = 0x59 as u8
187 in_dyn[49] = 0x42 as u8
188 in_dyn[50] = 0xc2 as u8
189 in_dyn[51] = 0x45 as u8
190 in_dyn[52] = 0xac as u8
191 in_dyn[53] = 0x17 as u8
192 in_dyn[54] = 0xb4 as u8
193 in_dyn[55] = 0x9a as u8
194 in_dyn[56] = 0x27 as u8
195 in_dyn[57] = 0x63 as u8
196 in_dyn[58] = 0x85 as u8
197 in_dyn[59] = 0xa4 as u8
198 in_dyn[60] = 0x2e as u8
199 in_dyn[61] = 0x52 as u8
200 in_dyn[62] = 0x61 as u8
201 in_dyn[63] = 0x43 as u8
202 in_dyn[64] = 0x78 as u8
203 in_dyn[65] = 0xc8 as u8
204 in_dyn[66] = 0x08 as u8
205 in_dyn[67] = 0x4a as u8
206 in_dyn[68] = 0x1e as u8
207 in_dyn[69] = 0x9e as u8
208 in_dyn[70] = 0x97 as u8
209 in_dyn[71] = 0x0d as u8
210 in_dyn[72] = 0xac as u8
211 in_dyn[73] = 0x28 as u8
212 in_dyn[74] = 0xd3 as u8
213 in_dyn[75] = 0x60 as u8
214 in_dyn[76] = 0xe8 as u8
215 in_dyn[77] = 0x34 as u8
216 in_dyn[78] = 0x0f as u8
217 in_dyn[79] = 0x28 as u8
218 in_dyn[80] = 0x33 as u8
219 in_dyn[81] = 0xa2 as u8
220 in_dyn[82] = 0x27 as u8
221 in_dyn[83] = 0xf5 as u8
222 in_dyn[84] = 0x13 as u8
223 in_dyn[85] = 0x29 as u8
224 in_dyn[86] = 0x43 as u8
225 in_dyn[87] = 0x6b as u8
226 in_dyn[88] = 0x0a as u8
227 in_dyn[89] = 0xa8 as u8
228 in_dyn[90] = 0xe3 as u8
229 in_dyn[91] = 0x1a as u8
230 in_dyn[92] = 0xfc as u8
231 in_dyn[93] = 0xe3 as u8
232 in_dyn[94] = 0x98 as u8
233 in_dyn[95] = 0xbd as u8
234 in_dyn[96] = 0xcc as u8
235 in_dyn[97] = 0xd3 as u8
236 in_dyn[98] = 0x23 as u8
237 in_dyn[99] = 0x4a as u8
238 in_dyn[100] = 0xbb as u8
239 in_dyn[101] = 0xa4 as u8
240 in_dyn[102] = 0xe7 as u8
241 in_dyn[103] = 0xfa as u8
242 in_dyn[104] = 0x0f as u8
243 in_dyn[105] = 0xd8 as u8
244 in_dyn[106] = 0xe0 as u8
245 in_dyn[107] = 0xf3 as u8
246 in_dyn[108] = 0xf0 as u8
247 in_dyn[109] = 0x75 as u8
248 in_dyn[110] = 0xde as u8
249 in_dyn[111] = 0x37 as u8
250 in_dyn[112] = 0x07 as u8
251 in_dyn[113] = 0x54 as u8
252 in_dyn[114] = 0x9b as u8
253 in_dyn[115] = 0xf9 as u8
254 in_dyn[116] = 0xe7 as u8
255 in_dyn[117] = 0xeb as u8
256 in_dyn[118] = 0x76 as u8
257 in_dyn[119] = 0x8b as u8
258 in_dyn[120] = 0x31 as u8
259 in_dyn[121] = 0x56 as u8
260 in_dyn[122] = 0xc3 as u8
261 in_dyn[123] = 0xb1 as u8
262 in_dyn[124] = 0x76 as u8
263 in_dyn[125] = 0xdd as u8
264 in_dyn[126] = 0x40 as u8
265 in_dyn[127] = 0x09 as u8
266 in_dyn[128] = 0x2e as u8
267 in_dyn[129] = 0x3f as u8
268 in_dyn[130] = 0xa3 as u8
269 in_dyn[131] = 0x3b as u8
270 in_dyn[132] = 0xf8 as u8
271 in_dyn[133] = 0x7b as u8
272 in_dyn[134] = 0xa2 as u8
273 in_dyn[135] = 0x41 as u8
274 in_dyn[136] = 0x1c as u8
275 in_dyn[137] = 0xda as u8
276 in_dyn[138] = 0x98 as u8
277 in_dyn[139] = 0xdd as u8
278 in_dyn[140] = 0xcd as u8
279 in_dyn[141] = 0xe0 as u8
280 in_dyn[142] = 0x48 as u8
281 in_dyn[143] = 0xf5 as u8
282 in_dyn[144] = 0xfe as u8
283 in_dyn[145] = 0x7c as u8
284 in_dyn[146] = 0x28 as u8
285 in_dyn[147] = 0x8a as u8
286 in_dyn[148] = 0x3c as u8
287 in_dyn[149] = 0x2d as u8
288 in_dyn[150] = 0x67 as u8
289 in_dyn[151] = 0xfc as u8
290 in_dyn[152] = 0x11 as u8
291 in_dyn[153] = 0x39 as u8
292 in_dyn[154] = 0x85 as u8
293 in_dyn[155] = 0xd2 as u8
294 in_dyn[156] = 0xa3 as u8
295 in_dyn[157] = 0x50 as u8
296 in_dyn[158] = 0x1b as u8
297 in_dyn[159] = 0xd9 as u8
298 in_dyn[160] = 0x36 as u8
299 in_dyn[161] = 0x38 as u8
300 in_dyn[162] = 0xfd as u8
301 in_dyn[163] = 0x59 as u8
302 in_dyn[164] = 0xaf as u8
303 in_dyn[165] = 0x5f as u8
304 in_dyn[166] = 0xfa as u8
305 in_dyn[167] = 0xef as u8
306 in_dyn[168] = 0x66 as u8
307 in_dyn[169] = 0x11 as u8
308 in_dyn[170] = 0x1d as u8
309 in_dyn[171] = 0x29 as u8
310 in_dyn[172] = 0xf0 as u8
311 in_dyn[173] = 0xea as u8
312 in_dyn[174] = 0x17 as u8
313 let exp_dyn: *u8 = (sys_mmap(253)) as *u8
314 exp_dyn[0] = 0x54 as u8
315 exp_dyn[1] = 0x68 as u8
316 exp_dyn[2] = 0x65 as u8
317 exp_dyn[3] = 0x20 as u8
318 exp_dyn[4] = 0x73 as u8
319 exp_dyn[5] = 0x6f as u8
320 exp_dyn[6] = 0x76 as u8
321 exp_dyn[7] = 0x65 as u8
322 exp_dyn[8] = 0x72 as u8
323 exp_dyn[9] = 0x65 as u8
324 exp_dyn[10] = 0x69 as u8
325 exp_dyn[11] = 0x67 as u8
326 exp_dyn[12] = 0x6e as u8
327 exp_dyn[13] = 0x20 as u8
328 exp_dyn[14] = 0x4e as u8
329 exp_dyn[15] = 0x69 as u8
330 exp_dyn[16] = 0x73 as u8
331 exp_dyn[17] = 0x68 as u8
332 exp_dyn[18] = 0x69 as u8
333 exp_dyn[19] = 0x20 as u8
334 exp_dyn[20] = 0x62 as u8
335 exp_dyn[21] = 0x72 as u8
336 exp_dyn[22] = 0x6f as u8
337 exp_dyn[23] = 0x77 as u8
338 exp_dyn[24] = 0x73 as u8
339 exp_dyn[25] = 0x65 as u8
340 exp_dyn[26] = 0x72 as u8
341 exp_dyn[27] = 0x20 as u8
342 exp_dyn[28] = 0x69 as u8
343 exp_dyn[29] = 0x6e as u8
344 exp_dyn[30] = 0x66 as u8
345 exp_dyn[31] = 0x6c as u8
346 exp_dyn[32] = 0x61 as u8
347 exp_dyn[33] = 0x74 as u8
348 exp_dyn[34] = 0x65 as u8
349 exp_dyn[35] = 0x73 as u8
350 exp_dyn[36] = 0x20 as u8
351 exp_dyn[37] = 0x67 as u8
352 exp_dyn[38] = 0x7a as u8
353 exp_dyn[39] = 0x69 as u8
354 exp_dyn[40] = 0x70 as u8
355 exp_dyn[41] = 0x20 as u8
356 exp_dyn[42] = 0x61 as u8
357 exp_dyn[43] = 0x6e as u8
358 exp_dyn[44] = 0x64 as u8
359 exp_dyn[45] = 0x20 as u8
360 exp_dyn[46] = 0x64 as u8
361 exp_dyn[47] = 0x65 as u8
362 exp_dyn[48] = 0x66 as u8
363 exp_dyn[49] = 0x6c as u8
364 exp_dyn[50] = 0x61 as u8
365 exp_dyn[51] = 0x74 as u8
366 exp_dyn[52] = 0x65 as u8
367 exp_dyn[53] = 0x20 as u8
368 exp_dyn[54] = 0x73 as u8
369 exp_dyn[55] = 0x74 as u8
370 exp_dyn[56] = 0x72 as u8
371 exp_dyn[57] = 0x65 as u8
372 exp_dyn[58] = 0x61 as u8
373 exp_dyn[59] = 0x6d as u8
374 exp_dyn[60] = 0x73 as u8
375 exp_dyn[61] = 0x20 as u8
376 exp_dyn[62] = 0x66 as u8
377 exp_dyn[63] = 0x72 as u8
378 exp_dyn[64] = 0x6f as u8
379 exp_dyn[65] = 0x6d as u8
380 exp_dyn[66] = 0x20 as u8
381 exp_dyn[67] = 0x74 as u8
382 exp_dyn[68] = 0x68 as u8
383 exp_dyn[69] = 0x65 as u8
384 exp_dyn[70] = 0x20 as u8
385 exp_dyn[71] = 0x68 as u8
386 exp_dyn[72] = 0x61 as u8
387 exp_dyn[73] = 0x72 as u8
388 exp_dyn[74] = 0x64 as u8
389 exp_dyn[75] = 0x77 as u8
390 exp_dyn[76] = 0x61 as u8
391 exp_dyn[77] = 0x72 as u8
392 exp_dyn[78] = 0x65 as u8
393 exp_dyn[79] = 0x20 as u8
394 exp_dyn[80] = 0x72 as u8
395 exp_dyn[81] = 0x75 as u8
396 exp_dyn[82] = 0x6e as u8
397 exp_dyn[83] = 0x67 as u8
398 exp_dyn[84] = 0x20 as u8
399 exp_dyn[85] = 0x75 as u8
400 exp_dyn[86] = 0x70 as u8
401 exp_dyn[87] = 0x2c as u8
402 exp_dyn[88] = 0x20 as u8
403 exp_dyn[89] = 0x65 as u8
404 exp_dyn[90] = 0x78 as u8
405 exp_dyn[91] = 0x63 as u8
406 exp_dyn[92] = 0x65 as u8
407 exp_dyn[93] = 0x65 as u8
408 exp_dyn[94] = 0x64 as u8
409 exp_dyn[95] = 0x69 as u8
410 exp_dyn[96] = 0x6e as u8
411 exp_dyn[97] = 0x67 as u8
412 exp_dyn[98] = 0x20 as u8
413 exp_dyn[99] = 0x7a as u8
414 exp_dyn[100] = 0x6c as u8
415 exp_dyn[101] = 0x69 as u8
416 exp_dyn[102] = 0x62 as u8
417 exp_dyn[103] = 0x20 as u8
418 exp_dyn[104] = 0x61 as u8
419 exp_dyn[105] = 0x6e as u8
420 exp_dyn[106] = 0x64 as u8
421 exp_dyn[107] = 0x20 as u8
422 exp_dyn[108] = 0x6c as u8
423 exp_dyn[109] = 0x69 as u8
424 exp_dyn[110] = 0x62 as u8
425 exp_dyn[111] = 0x64 as u8
426 exp_dyn[112] = 0x65 as u8
427 exp_dyn[113] = 0x66 as u8
428 exp_dyn[114] = 0x6c as u8
429 exp_dyn[115] = 0x61 as u8
430 exp_dyn[116] = 0x74 as u8
431 exp_dyn[117] = 0x65 as u8
432 exp_dyn[118] = 0x2e as u8
433 exp_dyn[119] = 0x20 as u8
434 exp_dyn[120] = 0x44 as u8
435 exp_dyn[121] = 0x45 as u8
436 exp_dyn[122] = 0x46 as u8
437 exp_dyn[123] = 0x4c as u8
438 exp_dyn[124] = 0x41 as u8
439 exp_dyn[125] = 0x54 as u8
440 exp_dyn[126] = 0x45 as u8
441 exp_dyn[127] = 0x20 as u8
442 exp_dyn[128] = 0x75 as u8
443 exp_dyn[129] = 0x73 as u8
444 exp_dyn[130] = 0x65 as u8
445 exp_dyn[131] = 0x73 as u8
446 exp_dyn[132] = 0x20 as u8
447 exp_dyn[133] = 0x4c as u8
448 exp_dyn[134] = 0x5a as u8
449 exp_dyn[135] = 0x37 as u8
450 exp_dyn[136] = 0x37 as u8
451 exp_dyn[137] = 0x20 as u8
452 exp_dyn[138] = 0x70 as u8
453 exp_dyn[139] = 0x6c as u8
454 exp_dyn[140] = 0x75 as u8
455 exp_dyn[141] = 0x73 as u8
456 exp_dyn[142] = 0x20 as u8
457 exp_dyn[143] = 0x48 as u8
458 exp_dyn[144] = 0x75 as u8
459 exp_dyn[145] = 0x66 as u8
460 exp_dyn[146] = 0x66 as u8
461 exp_dyn[147] = 0x6d as u8
462 exp_dyn[148] = 0x61 as u8
463 exp_dyn[149] = 0x6e as u8
464 exp_dyn[150] = 0x20 as u8
465 exp_dyn[151] = 0x63 as u8
466 exp_dyn[152] = 0x6f as u8
467 exp_dyn[153] = 0x64 as u8
468 exp_dyn[154] = 0x69 as u8
469 exp_dyn[155] = 0x6e as u8
470 exp_dyn[156] = 0x67 as u8
471 exp_dyn[157] = 0x3b as u8
472 exp_dyn[158] = 0x20 as u8
473 exp_dyn[159] = 0x64 as u8
474 exp_dyn[160] = 0x79 as u8
475 exp_dyn[161] = 0x6e as u8
476 exp_dyn[162] = 0x61 as u8
477 exp_dyn[163] = 0x6d as u8
478 exp_dyn[164] = 0x69 as u8
479 exp_dyn[165] = 0x63 as u8
480 exp_dyn[166] = 0x20 as u8
481 exp_dyn[167] = 0x62 as u8
482 exp_dyn[168] = 0x6c as u8
483 exp_dyn[169] = 0x6f as u8
484 exp_dyn[170] = 0x63 as u8
485 exp_dyn[171] = 0x6b as u8
486 exp_dyn[172] = 0x73 as u8
487 exp_dyn[173] = 0x20 as u8
488 exp_dyn[174] = 0x63 as u8
489 exp_dyn[175] = 0x61 as u8
490 exp_dyn[176] = 0x72 as u8
491 exp_dyn[177] = 0x72 as u8
492 exp_dyn[178] = 0x79 as u8
493 exp_dyn[179] = 0x20 as u8
494 exp_dyn[180] = 0x74 as u8
495 exp_dyn[181] = 0x68 as u8
496 exp_dyn[182] = 0x65 as u8
497 exp_dyn[183] = 0x69 as u8
498 exp_dyn[184] = 0x72 as u8
499 exp_dyn[185] = 0x20 as u8
500 exp_dyn[186] = 0x6f as u8
501 exp_dyn[187] = 0x77 as u8
502 exp_dyn[188] = 0x6e as u8
503 exp_dyn[189] = 0x20 as u8
504 exp_dyn[190] = 0x63 as u8
505 exp_dyn[191] = 0x6f as u8
506 exp_dyn[192] = 0x64 as u8
507 exp_dyn[193] = 0x65 as u8
508 exp_dyn[194] = 0x2d as u8
509 exp_dyn[195] = 0x6c as u8
510 exp_dyn[196] = 0x65 as u8
511 exp_dyn[197] = 0x6e as u8
512 exp_dyn[198] = 0x67 as u8
513 exp_dyn[199] = 0x74 as u8
514 exp_dyn[200] = 0x68 as u8
515 exp_dyn[201] = 0x20 as u8
516 exp_dyn[202] = 0x74 as u8
517 exp_dyn[203] = 0x61 as u8
518 exp_dyn[204] = 0x62 as u8
519 exp_dyn[205] = 0x6c as u8
520 exp_dyn[206] = 0x65 as u8
521 exp_dyn[207] = 0x73 as u8
522 exp_dyn[208] = 0x2e as u8
523 exp_dyn[209] = 0x20 as u8
524 exp_dyn[210] = 0x49 as u8
525 exp_dyn[211] = 0x6e as u8
526 exp_dyn[212] = 0x66 as u8
527 exp_dyn[213] = 0x6c as u8
528 exp_dyn[214] = 0x61 as u8
529 exp_dyn[215] = 0x74 as u8
530 exp_dyn[216] = 0x65 as u8
531 exp_dyn[217] = 0x2c as u8
532 exp_dyn[218] = 0x20 as u8
533 exp_dyn[219] = 0x69 as u8
534 exp_dyn[220] = 0x6e as u8
535 exp_dyn[221] = 0x66 as u8
536 exp_dyn[222] = 0x6c as u8
537 exp_dyn[223] = 0x61 as u8
538 exp_dyn[224] = 0x74 as u8
539 exp_dyn[225] = 0x65 as u8
540 exp_dyn[226] = 0x2c as u8
541 exp_dyn[227] = 0x20 as u8
542 exp_dyn[228] = 0x69 as u8
543 exp_dyn[229] = 0x6e as u8
544 exp_dyn[230] = 0x66 as u8
545 exp_dyn[231] = 0x6c as u8
546 exp_dyn[232] = 0x61 as u8
547 exp_dyn[233] = 0x74 as u8
548 exp_dyn[234] = 0x65 as u8
549 exp_dyn[235] = 0x20 as u8
550 exp_dyn[236] = 0x74 as u8
551 exp_dyn[237] = 0x68 as u8
552 exp_dyn[238] = 0x65 as u8
553 exp_dyn[239] = 0x20 as u8
554 exp_dyn[240] = 0x70 as u8
555 exp_dyn[241] = 0x61 as u8
556 exp_dyn[242] = 0x67 as u8
557 exp_dyn[243] = 0x65 as u8
558 exp_dyn[244] = 0x21 as u8
559 let r_dyn: *NxDeflateResult = nx_deflate_inflate(in_dyn, 175, 309)
560 if r_dyn == (0 as *NxDeflateResult) { return 50 }
561 if r_dyn.error_code != NX_DEF_OK { return 51 }
562 if r_dyn.output_size != 245 { return 52 }
563 var i_dyn: nx_int = 0
564 while i_dyn < 245 {
565 let got: nx_int = (r_dyn.output_data[i_dyn] as nx_int) & 255
566 let want: nx_int = (exp_dyn[i_dyn] as nx_int) & 255
567 if got != want { return 53 }
568 i_dyn = i_dyn + 1
569 }
570
571 return 0
572}