1use keramics_core::ErrorTrace;
19use keramics_core::mediator::{Mediator, MediatorReference};
20use keramics_layout_map::LayoutMap;
21use keramics_types::bytes_to_u16_le;
22
23#[derive(LayoutMap)]
24#[layout_map(
25 structure(
26 byte_order = "little",
27 field(name = "block_size", data_type = "BitField16<12>", modifier = "+ 1"),
28 field(name = "signature", data_type = "BitField16<3>"),
29 field(name = "is_compressed_flag", data_type = "BitField16<1>"),
30 ),
31 method(name = "debug_read_data")
32)]
33struct Lznt1BlockHeader {
35 block_size: u16,
37
38 is_compressed: bool,
40}
41
42impl Lznt1BlockHeader {
43 pub fn new() -> Self {
45 Self {
46 block_size: 0,
47 is_compressed: false,
48 }
49 }
50
51 pub fn read_data(&mut self, data: &[u8]) -> Result<(), ErrorTrace> {
53 if data.len() < 2 {
54 return Err(keramics_core::error_trace_new!(
55 "Unsupported LZNT1 block header data size"
56 ));
57 }
58 let bit_fields1: u16 = bytes_to_u16_le!(data, 0);
59
60 self.block_size = (bit_fields1 & 0x0fff) + 1;
61 self.is_compressed = bit_fields1 & 0x8000 != 0;
62
63 Ok(())
64 }
65}
66
67pub struct Lznt1Context {
69 mediator: MediatorReference,
71
72 pub uncompressed_data_size: usize,
74}
75
76impl Lznt1Context {
77 pub fn new() -> Self {
79 Self {
80 mediator: Mediator::current(),
81 uncompressed_data_size: 0,
82 }
83 }
84
85 pub fn decompress(
87 &mut self,
88 compressed_data: &[u8],
89 uncompressed_data: &mut [u8],
90 ) -> Result<(), ErrorTrace> {
91 let mut compressed_data_offset: usize = 0;
92 let compressed_data_size: usize = compressed_data.len();
93
94 let mut uncompressed_data_offset: usize = 0;
95 let uncompressed_data_size: usize = uncompressed_data.len();
96
97 while compressed_data_offset < compressed_data_size {
98 if uncompressed_data_offset >= uncompressed_data_size {
99 break;
100 }
101 if 2 > compressed_data_size - compressed_data_offset {
102 return Err(keramics_core::error_trace_new!(
103 "Invalid compressed data value too small"
104 ));
105 }
106 let compressed_data_end_offset: usize = compressed_data_offset + 2;
107
108 if compressed_data[compressed_data_offset..compressed_data_end_offset] == [0; 2] {
109 break;
110 }
111 let mut block_header: Lznt1BlockHeader = Lznt1BlockHeader::new();
112
113 if self.mediator.debug_output {
114 self.mediator.debug_print(format!(
115 "Lznt1BlockHeader data of size: 2 at offset: {} (0x{:08x})\n",
116 compressed_data_offset, compressed_data_offset
117 ));
118 self.mediator.debug_print_data(
119 &compressed_data[compressed_data_offset..compressed_data_end_offset],
120 true,
121 );
122 self.mediator.debug_print(Lznt1BlockHeader::debug_read_data(
123 &compressed_data[compressed_data_offset..compressed_data_end_offset],
124 ));
125 }
126 block_header
127 .read_data(&compressed_data[compressed_data_offset..compressed_data_end_offset])?;
128 compressed_data_offset = compressed_data_end_offset;
129
130 if block_header.is_compressed {
131 let write_count: usize = self.decompress_block(
132 block_header.block_size as usize,
133 compressed_data,
134 &mut compressed_data_offset,
135 compressed_data_size,
136 &mut uncompressed_data[uncompressed_data_offset..],
137 uncompressed_data_size - uncompressed_data_offset,
138 )?;
139 uncompressed_data_offset += write_count;
140 } else {
141 let compressed_data_end_offset: usize =
142 compressed_data_offset + block_header.block_size as usize;
143 let uncompressed_data_end_offset: usize =
144 uncompressed_data_offset + block_header.block_size as usize;
145
146 if self.mediator.debug_output {
147 self.mediator
148 .debug_print(format!("Lznt1Context::decompress {{\n",));
149 self.mediator.debug_print(format!(" literal data:\n"));
150 self.mediator.debug_print_data(
151 &compressed_data[compressed_data_offset..compressed_data_end_offset],
152 true,
153 );
154 self.mediator.debug_print(format!("}}\n\n"));
155 }
156 if compressed_data_end_offset > compressed_data_size {
157 return Err(keramics_core::error_trace_new!(
158 "Invalid compressed data value too small"
159 ));
160 }
161 if uncompressed_data_end_offset > uncompressed_data_size {
162 return Err(keramics_core::error_trace_new!(
163 "Invalid uncompressed data value too small"
164 ));
165 }
166 uncompressed_data[uncompressed_data_offset..uncompressed_data_end_offset]
167 .copy_from_slice(
168 &compressed_data[compressed_data_offset..compressed_data_end_offset],
169 );
170
171 compressed_data_offset = compressed_data_end_offset;
172 uncompressed_data_offset = uncompressed_data_end_offset;
173 }
174 }
175 self.uncompressed_data_size = uncompressed_data_offset;
176
177 Ok(())
178 }
179
180 fn decompress_block(
182 &self,
183 block_size: usize,
184 compressed_data: &[u8],
185 compressed_data_offset: &mut usize,
186 compressed_data_size: usize,
187 uncompressed_data: &mut [u8],
188 uncompressed_data_size: usize,
189 ) -> Result<usize, ErrorTrace> {
190 let mut safe_compressed_data_offset: usize = *compressed_data_offset;
191 let mut uncompressed_data_offset: usize = 0;
192
193 if self.mediator.debug_output {
194 self.mediator
195 .debug_print(format!("Lznt1Context::decompress_block {{\n",));
196 }
197 let compressed_data_end_offset: usize = safe_compressed_data_offset + block_size;
198 let mut compression_tuple_threshold: usize = 16;
199 let mut compression_tuple_distance_shift: u16 = 12;
200 let mut compression_tuple_match_size_mask: u16 = 0x0fff;
201
202 while safe_compressed_data_offset < compressed_data_end_offset {
203 if safe_compressed_data_offset >= compressed_data_size {
204 break;
205 }
206 let mut compression_flags: u8 = compressed_data[safe_compressed_data_offset];
207
208 if self.mediator.debug_output {
209 self.mediator.debug_print(format!(
210 " compressed_data_offset: {} (0x{:08x}),\n",
211 safe_compressed_data_offset, safe_compressed_data_offset
212 ));
213 self.mediator.debug_print(format!(
214 " compression_flags: 0x{:02x},\n",
215 compression_flags
216 ));
217 }
218 safe_compressed_data_offset += 1;
219
220 for _ in 0..8 {
221 if compression_flags & 0x01 != 0 {
222 if 2 > compressed_data_size - safe_compressed_data_offset {
223 return Err(keramics_core::error_trace_new!(
224 "Invalid compressed data value too small"
225 ));
226 }
227 let compression_tuple: u16 =
228 bytes_to_u16_le!(compressed_data, safe_compressed_data_offset);
229 safe_compressed_data_offset += 2;
230
231 let distance: u16 = (compression_tuple >> compression_tuple_distance_shift) + 1;
232 let match_size: u16 =
233 (compression_tuple & compression_tuple_match_size_mask) + 3;
234
235 if self.mediator.debug_output {
236 self.mediator.debug_print(format!(
237 " compressed_data_offset: {} (0x{:08x}),\n",
238 safe_compressed_data_offset, safe_compressed_data_offset
239 ));
240 self.mediator.debug_print(format!(
241 " compression_tuple: 0x{:04x} (shift: {}, mask: 0x{:04x}),\n",
242 compression_tuple,
243 compression_tuple_distance_shift,
244 compression_tuple_match_size_mask
245 ));
246 self.mediator
247 .debug_print(format!(" distance: {},\n", distance));
248 self.mediator
249 .debug_print(format!(" match_size: {},\n", match_size));
250 self.mediator.debug_print(format!(
251 " uncompressed_data_offset: {},\n",
252 uncompressed_data_offset
253 ));
254 }
255 if distance as usize > uncompressed_data_offset {
256 return Err(keramics_core::error_trace_new!(
257 "Invalid distance value exceeds uncompressed data offset"
258 ));
259 }
260 if match_size as usize > uncompressed_data_size - uncompressed_data_offset {
261 return Err(keramics_core::error_trace_new!(
262 "Invalid match size value exceeds uncompressed data size"
263 ));
264 }
265 let match_offset: usize = uncompressed_data_offset - distance as usize;
266 let mut match_end_offset: usize = match_offset;
267
268 for _ in 0..match_size {
269 uncompressed_data[uncompressed_data_offset] =
270 uncompressed_data[match_end_offset];
271
272 match_end_offset += 1;
273 uncompressed_data_offset += 1;
274 }
275 if self.mediator.debug_output {
276 self.mediator
277 .debug_print(format!(" match offset: {}\n", match_offset));
278 self.mediator.debug_print(format!(" match data:\n"));
279 self.mediator.debug_print_data(
280 &uncompressed_data[match_offset..match_end_offset],
281 true,
282 );
283 }
284 } else {
285 if safe_compressed_data_offset >= compressed_data_size {
286 return Err(keramics_core::error_trace_new!(
287 "Invalid compressed data value too small"
288 ));
289 }
290 if uncompressed_data_offset >= uncompressed_data_size {
291 return Err(keramics_core::error_trace_new!(
292 "Invalid uncompressed data value too small"
293 ));
294 }
295 uncompressed_data[uncompressed_data_offset] =
296 compressed_data[safe_compressed_data_offset];
297
298 safe_compressed_data_offset += 1;
299 uncompressed_data_offset += 1;
300 }
301 compression_flags >>= 1;
302
303 if safe_compressed_data_offset >= compressed_data_end_offset {
304 break;
305 }
306 while uncompressed_data_offset > compression_tuple_threshold {
308 if compression_tuple_distance_shift == 0 {
309 return Err(keramics_core::error_trace_new!(
310 "Invalid compression tuple offset shift value out of bounds"
311 ));
312 }
313 compression_tuple_distance_shift -= 1;
314 compression_tuple_match_size_mask >>= 1;
315 compression_tuple_threshold <<= 1;
316 }
317 }
318 }
319 if self.mediator.debug_output {
320 self.mediator.debug_print(format!("}}\n\n"));
321 }
322 *compressed_data_offset = compressed_data_end_offset;
323
324 Ok(uncompressed_data_offset)
325 }
326}
327
328#[cfg(test)]
329mod tests {
330 use super::*;
331
332 use std::fs;
333
334 fn get_test_data() -> Vec<u8> {
335 return vec![
336 0x47, 0xb8, 0x04, 0x0a, 0x20, 0x1d, 0x00, 0x41, 0x70, 0x61, 0x63, 0x68, 0x00, 0x65,
337 0x20, 0x4c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x02, 0x65, 0x19, 0xbc, 0x56, 0x65, 0x72,
338 0x73, 0x69, 0x6f, 0x00, 0x6e, 0x20, 0x32, 0x2e, 0x30, 0x2c, 0x20, 0x4a, 0x00, 0x61,
339 0x6e, 0x75, 0x61, 0x72, 0x79, 0x20, 0x32, 0x08, 0x30, 0x30, 0x34, 0x16, 0x68, 0x68,
340 0x74, 0x74, 0x70, 0x00, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x61, 0x81, 0x02,
341 0x66, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x6c, 0x03, 0x6a, 0x08, 0x73, 0x2f, 0x0a, 0x01,
342 0x38, 0x54, 0x45, 0x52, 0x4d, 0x00, 0x53, 0x20, 0x41, 0x4e, 0x44, 0x20, 0x43, 0x4f,
343 0x00, 0x4e, 0x44, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x53, 0x00, 0x20, 0x46, 0x4f, 0x52,
344 0x20, 0x55, 0x53, 0x45, 0x00, 0x2c, 0x20, 0x52, 0x45, 0x50, 0x52, 0x4f, 0x44, 0x14,
345 0x55, 0x43, 0x01, 0x16, 0x2c, 0x02, 0x25, 0x44, 0x49, 0x53, 0x60, 0x54, 0x52, 0x49,
346 0x42, 0x55, 0x01, 0x11, 0x02, 0x40, 0x31, 0x00, 0x2e, 0x20, 0x44, 0x65, 0x66, 0x69,
347 0x6e, 0x69, 0xb2, 0x74, 0x00, 0x9c, 0x73, 0x2e, 0x02, 0x13, 0x00, 0xf4, 0x22, 0x04,
348 0xd1, 0x00, 0x22, 0x20, 0x73, 0x68, 0x61, 0x6c, 0x6c, 0x20, 0x40, 0x6d, 0x65, 0x61,
349 0x6e, 0x20, 0x74, 0x80, 0x74, 0x74, 0x00, 0x65, 0x72, 0x6d, 0x73, 0x20, 0x61, 0x6e,
350 0x64, 0x20, 0x20, 0x63, 0x6f, 0x6e, 0x64, 0x83, 0x1a, 0x20, 0x66, 0x00, 0x6f, 0x72,
351 0x20, 0x75, 0x73, 0x65, 0x2c, 0x20, 0x00, 0x72, 0x65, 0x70, 0x72, 0x6f, 0x64, 0x75,
352 0x63, 0x0d, 0x01, 0x26, 0x2c, 0x04, 0x6c, 0x81, 0x15, 0x64, 0x69, 0x73, 0x74, 0x10,
353 0x72, 0x69, 0x62, 0x75, 0x81, 0x0b, 0x20, 0x61, 0x73, 0x04, 0x20, 0x64, 0x01, 0x39,
354 0x65, 0x64, 0x20, 0x62, 0x79, 0x88, 0x20, 0x53, 0x65, 0x82, 0x16, 0x73, 0x20, 0x31,
355 0x80, 0x2f, 0x00, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x20, 0x39, 0x20, 0x14, 0x6f, 0x66,
356 0x00, 0x06, 0x69, 0x80, 0x13, 0x6f, 0x63, 0x75, 0x90, 0x6d, 0x65, 0x6e, 0x74, 0x8d,
357 0x4b, 0x6f, 0x72, 0x0e, 0x4c, 0x00, 0x63, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68,
358 0x00, 0x74, 0x20, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x20, 0x03, 0x00, 0x49, 0x00, 0x1c,
359 0x69, 0x74, 0x79, 0x20, 0x61, 0x75, 0xc0, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x82,
360 0x37, 0x04, 0x4a, 0x83, 0x01, 0x65, 0x8d, 0x18, 0x74, 0x68, 0x61, 0x74, 0x20, 0x00,
361 0x3a, 0x00, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x69, 0x6e, 0x67, 0x07, 0x00, 0x41, 0x46,
362 0x76, 0x08, 0x20, 0x65, 0x67, 0x61, 0x6c, 0x20, 0x92, 0x45, 0x40, 0x08, 0x74, 0x79,
363 0x0e, 0x21, 0x75, 0x6e, 0x81, 0x78, 0xf1, 0x42, 0x2f, 0x65, 0x20, 0x61, 0x00, 0x36,
364 0x40, 0x11, 0x45, 0x21, 0x80, 0x4c, 0x4b, 0x40, 0x52, 0xc4, 0x1f, 0x6f, 0x00, 0x20,
365 0x72, 0x20, 0x82, 0x06, 0x69, 0x1c, 0x65, 0x73, 0x40, 0x1a, 0x80, 0x1e, 0x00, 0x54,
366 0x74, 0x72, 0x6f, 0xc0, 0x6c, 0x2c, 0x20, 0x61, 0x72, 0x65, 0x41, 0x57, 0x01, 0x03,
367 0x1a, 0x6c, 0x02, 0x2d, 0x2c, 0x41, 0x33, 0x41, 0x05, 0x75, 0x6e, 0x64, 0x81, 0x80,
368 0x36, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x44, 0x12, 0xc1, 0x44, 0x0d, 0x20, 0x77,
369 0x69, 0x74, 0x68, 0xc3, 0x11, 0x03, 0x1c, 0x18, 0x2e, 0x20, 0x46, 0x80, 0x40, 0xc1,
370 0x39, 0x70, 0x75, 0x72, 0x78, 0x70, 0x6f, 0x73, 0x40, 0x19, 0x46, 0x55, 0x06, 0x7c,
371 0xc5, 0x68, 0x22, 0x05, 0x44, 0x11, 0x22, 0x02, 0x7a, 0x73, 0x20, 0x28, 0x69, 0x29,
372 0x01, 0xc0, 0x12, 0x65, 0x20, 0x70, 0x6f, 0x77, 0x65, 0x72, 0x60, 0x2c, 0x20, 0x64,
373 0x69, 0x72, 0x40, 0x69, 0x01, 0x21, 0x69, 0x03, 0xc0, 0x7c, 0xc1, 0x02, 0x2c, 0x20,
374 0x74, 0x6f, 0x20, 0x63, 0x3e, 0x61, 0x00, 0x7d, 0xc1, 0x09, 0x84, 0x22, 0x83, 0x09,
375 0x42, 0x40, 0x72, 0x20, 0xc0, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x01, 0x6f, 0x41,
376 0x73, 0x10, 0x73, 0x75, 0x63, 0x68, 0x83, 0x3b, 0x79, 0x2c, 0x20, 0xf8, 0x77, 0x68,
377 0x65, 0x82, 0x3f, 0x40, 0x7f, 0xc2, 0x1d, 0x00, 0x4a, 0xc0, 0x16, 0x33, 0x04, 0x11,
378 0x42, 0x46, 0x77, 0x69, 0x41, 0x93, 0xc0, 0x2f, 0x28, 0x69, 0x43, 0x40, 0x22, 0x02,
379 0x74, 0x73, 0x68, 0x69, 0x70, 0x41, 0x12, 0x66, 0x44, 0x69, 0x66, 0xc0, 0x74, 0x70,
380 0x65, 0x72, 0x40, 0xdc, 0x74, 0x40, 0x20, 0x28, 0x35, 0x30, 0x25, 0x29, 0x01, 0x26,
381 0x6d, 0x0e, 0x6f, 0x00, 0x4d, 0x03, 0x5e, 0x05, 0x12, 0x75, 0x74, 0x73, 0x74, 0xc7,
382 0x00, 0x9f, 0x41, 0x72, 0x00, 0xb1, 0x72, 0x65, 0x73, 0x82, 0x51, 0x40, 0x14, 0x91,
383 0x80, 0x14, 0x62, 0x65, 0x6e, 0x00, 0x41, 0x63, 0x69, 0x80, 0x72, 0x07, 0x4a, 0x17,
384 0xc8, 0x29, 0x87, 0x7c, 0x59, 0x6f, 0x75, 0x22, 0x20, 0x8a, 0x28, 0xa0, 0x11, 0x22,
385 0x20, 0x01, 0x72, 0x22, 0x29, 0x69, 0x62, 0x43, 0xc0, 0x62, 0x61, 0x22, 0x76, 0x69,
386 0x64, 0x75, 0x61, 0x09, 0x72, 0x4c, 0x20, 0x4c, 0xe8, 0x43, 0x24, 0x11, 0x65, 0x78,
387 0xa0, 0x15, 0x69, 0x46, 0x73, 0x01, 0x11, 0xe0, 0x16, 0x6d, 0x69, 0x73, 0x01, 0x81,
388 0x73, 0x7e, 0x20, 0xe2, 0x4c, 0xe2, 0x3b, 0x60, 0x28, 0xe0, 0x4e, 0x44, 0x6e, 0xe7,
389 0x0e, 0x53, 0x54, 0x6f, 0x75, 0xa0, 0x1c, 0x22, 0xc1, 0x6b, 0x6d, 0xed, 0x70, 0x70,
390 0xc0, 0x72, 0x65, 0x66, 0x65, 0x72, 0x72, 0xc0, 0x07, 0x80, 0x6f, 0x22, 0x6d, 0x22,
391 0x70, 0x6d, 0x61, 0x6b, 0x41, 0x0c, 0x6d, 0x6f, 0x40, 0x64, 0x69, 0x66, 0x69, 0x63,
392 0x61, 0x61, 0x6d, 0x73, 0x81, 0x05, 0x3c, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0xc1,
393 0x03, 0x01, 0x80, 0x70, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x6c, 0x69, 0x18, 0x6d, 0x69,
394 0x74, 0xc0, 0x07, 0xe0, 0x38, 0x73, 0x6f, 0x66, 0x34, 0x74, 0x77, 0xc1, 0x4b, 0x73,
395 0x02, 0x0e, 0x60, 0x4f, 0x64, 0x65, 0xff, 0x80, 0x3e, 0x64, 0x6f, 0x02, 0x09, 0x24,
396 0x19, 0x03, 0x04, 0x20, 0x54, 0x80, 0x59, 0x40, 0x37, 0x20, 0x66, 0x69, 0x67, 0x75,
397 0x72, 0xe2, 0x03, 0x20, 0x66, 0x88, 0x69, 0x6c, 0x65, 0xc8, 0x87, 0x4f, 0x62, 0x6a,
398 0x20, 0x46, 0x31, 0x4f, 0x17, 0x61, 0x6e, 0x79, 0xc3, 0x19, 0xc0, 0x31, 0x75, 0x6c,
399 0x21, 0xa2, 0x6c, 0x66, 0x72, 0x6f, 0x6d, 0xc0, 0x4e, 0x63, 0x68, 0x54, 0x61, 0x6e,
400 0xa0, 0x16, 0x6c, 0x24, 0x0d, 0x74, 0x80, 0x70, 0x73, 0x2f, 0x41, 0x1b, 0xc3, 0x0b,
401 0x80, 0x2f, 0x22, 0x02, 0x6c, 0xc4, 0x01, 0x66, 0x20, 0xcc, 0x61, 0x20, 0xc3, 0x23,
402 0xc2, 0x09, 0x2c, 0x20, 0x0a, 0x1c, 0x64, 0x08, 0x8b, 0xcc, 0x1c, 0xc0, 0x66, 0x70,
403 0xa0, 0x14, 0x64, 0x20, 0x6f, 0x82, 0x13, 0xdd, 0xc4, 0x1c, 0x67, 0x20, 0x41, 0x60,
404 0x18, 0x20, 0x21, 0x64, 0x09, 0x1e, 0x05, 0x27, 0x9b, 0xa1, 0x97, 0x20, 0x1d, 0x76,
405 0xa3, 0xb7, 0x20, 0x75, 0x6f, 0x20, 0x63, 0x77, 0x00, 0x6d, 0x65, 0x64, 0x69, 0x61,
406 0x20, 0x74, 0x79, 0x42, 0x70, 0xc9, 0x1e, 0x57, 0x6f, 0x72, 0x6b, 0x8e, 0x82, 0x77,
407 0x9f, 0x80, 0x02, 0x21, 0x57, 0xe3, 0x90, 0xe1, 0x58, 0x47, 0x60, 0x69, 0x6e, 0xc5,
408 0x18, 0x1c, 0x6f, 0x72, 0xa4, 0x16, 0x43, 0x27, 0xc4, 0x1a, 0x6d, 0x61, 0x64, 0x01,
409 0x00, 0x89, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0xbc, 0x65, 0x20, 0xe3, 0x7f,
410 0x81, 0x7a, 0x84, 0x45, 0x40, 0x31, 0x73, 0x60, 0x1f, 0xee, 0x64, 0xe1, 0x3d, 0x40,
411 0x18, 0x20, 0x6a, 0x61, 0xc4, 0x08, 0xa7, 0x9b, 0xc0, 0x20, 0x7f, 0x60, 0xc6, 0x60,
412 0x4c, 0xc3, 0x9b, 0x23, 0x25, 0x80, 0x05, 0x60, 0x0f, 0xc0, 0x2a, 0x61, 0xf4, 0x74,
413 0x74, 0x41, 0xd8, 0x64, 0x01, 0x7a, 0x01, 0x0b, 0xa1, 0x15, 0x44, 0x08, 0x82, 0x28,
414 0x80, 0x5b, 0x65, 0x78, 0x61, 0x6d, 0x70, 0x20, 0x0f, 0x1f, 0xe0, 0x53, 0x40, 0xbb,
415 0xc0, 0x5c, 0x03, 0x07, 0x21, 0x05, 0x41, 0x70, 0x70, 0x02, 0x65, 0xc0, 0x81, 0x78,
416 0x20, 0x62, 0x65, 0x6c, 0x6f, 0x04, 0x77, 0x29, 0xe7, 0x56, 0x44, 0x65, 0x72, 0x69,
417 0x76, 0xd1, 0x00, 0x35, 0x76, 0x65, 0x20, 0x01, 0x22, 0x73, 0x2a, 0x22, 0x21, 0x40,
418 0xfb, 0x61, 0x0c, 0x73, 0x20, 0x20, 0xa3, 0x1f, 0x04, 0x10, 0xe1, 0x3f, 0x20, 0x8d,
419 0xe4, 0xb2, 0x78, 0x62, 0x61, 0x73, 0x80, 0x0f, 0x40, 0xe8, 0x41, 0x71, 0xe0, 0xa0,
420 0x69, 0xfe, 0x76, 0xc0, 0x01, 0xa1, 0x47, 0x63, 0x95, 0x41, 0x0d, 0x02, 0xd3, 0xa0,
421 0x06, 0x40, 0x8c, 0xde, 0x69, 0x00, 0x8e, 0xa0, 0x14, 0x24, 0x09, 0x80, 0x35, 0x74,
422 0x60, 0xc0, 0x40, 0x74, 0x48, 0x72, 0x65, 0x76, 0x40, 0x71, 0x6f, 0x6e, 0xa0, 0x81,
423 0x61, 0xae, 0x6e, 0x40, 0x23, 0x02, 0x4a, 0x80, 0x01, 0x65, 0x20, 0x2c, 0x6f, 0x83,
424 0x59, 0x3f, 0xa0, 0x01, 0x00, 0x23, 0xc4, 0x3c, 0xd9, 0x34, 0xc4, 0x04, 0x51, 0x6e,
425 0x65, 0x73, 0xcb, 0x60, 0x56, 0xd2, 0x17, 0x61, 0xc0, 0x06, 0x6f, 0x6c, 0x00, 0x33,
426 0xd0, 0x12, 0xf1, 0x20, 0x06, 0x67, 0x69, 0x6e, 0x50, 0x06, 0x11, 0x0e, 0x3b, 0x1f,
427 0xff, 0x58, 0x7f, 0xd4, 0x04, 0x55, 0x59, 0x16, 0x1d, 0xed, 0x13, 0xa4, 0x3f, 0xb0,
428 0x0a, 0x54, 0x2e, 0x65, 0x06, 0x20, 0xe1, 0x05, 0x54, 0x63, 0x72, 0x65, 0x6d, 0x61,
429 0x69, 0xc1, 0xc5, 0x60, 0x73, 0x65, 0x70, 0x61, 0x72, 0x92, 0x22, 0x71, 0x11, 0x81,
430 0xf2, 0x4e, 0x6d, 0x65, 0x72, 0x65, 0x6c, 0x79, 0xe0, 0x3e, 0x34, 0x6e, 0x6b, 0x32,
431 0x4c, 0x62, 0xe0, 0x4a, 0x71, 0x77, 0x6e, 0x61, 0xd4, 0x6d, 0x65, 0x80, 0x13, 0x6f,
432 0x70, 0x21, 0x65, 0x70, 0x05, 0x70, 0x7d, 0xf8, 0x66, 0x61, 0x63, 0x42, 0x62, 0xa5,
433 0x2f, 0x31, 0x1e, 0x46, 0x15, 0x4e, 0x09, 0x21, 0xd0, 0x01, 0x72, 0x65, 0x6f, 0x66,
434 0x57, 0x1f, 0x43, 0x6f, 0xfc, 0x6e, 0x74, 0x35, 0x7e, 0x1f, 0x1f, 0x3f, 0x30, 0xc4,
435 0x0c, 0x30, 0x49, 0x84, 0x10, 0xff, 0xf1, 0x06, 0x06, 0x14, 0x04, 0x37, 0x31, 0x14,
436 0x71, 0x01, 0x76, 0x08, 0xe1, 0x23, 0x1a, 0x4e, 0xf9, 0xc1, 0x5f, 0x61, 0x64, 0x94,
437 0x88, 0x95, 0x04, 0x51, 0x0d, 0xd0, 0x2e, 0x52, 0x03, 0x4b, 0xa0, 0x1c, 0xcf, 0x0b,
438 0x68, 0x50, 0x11, 0x6f, 0x66, 0xb7, 0x25, 0x69, 0x94, 0x6e, 0x74, 0x61, 0x73, 0x6f,
439 0xb0, 0x1b, 0x6c, 0x79, 0x54, 0x04, 0xf8, 0x73, 0x75, 0x62, 0x20, 0x52, 0x34, 0x52,
440 0xd3, 0x19, 0xb0, 0x04, 0xd1, 0x25, 0xff, 0x22, 0x34, 0xd2, 0x9c, 0x30, 0x34, 0xe6,
441 0x09, 0xc0, 0x37, 0xb1, 0x00, 0x6c, 0x85, 0xc4, 0x04, 0x4b, 0x90, 0x03, 0xc1, 0x39,
442 0x6e, 0x50, 0x0f, 0x64, 0x69, 0xdf, 0x62, 0x74, 0x97, 0x8c, 0x8a, 0x51, 0x59, 0xe2,
443 0x07, 0x20, 0xf0, 0x2e, 0x62, 0x65, 0x30, 0x98, 0xee, 0x66, 0xa0, 0x10, 0xb4, 0x04,
444 0x5f, 0x06, 0x72, 0xdf, 0x25, 0x93, 0x13, 0x60, 0x3b, 0xa3, 0xb2, 0x96, 0x82, 0x9a,
445 0x2c, 0x20, 0x22, 0x36, 0x0d, 0x22, 0xb4, 0x04, 0x4f, 0x81, 0x9d, 0xf1, 0x9c, 0x64,
446 0x59, 0xc0, 0x28, 0x65, 0x6c, 0x90, 0x5b, 0x72, 0x92, 0x6f, 0xc0, 0x58, 0x2c, 0x20,
447 0x50, 0x18, 0x62, 0x61, 0x10, 0x89, 0x61, 0xd0, 0x0b, 0x77, 0x72, 0x69, 0x74, 0x30,
448 0x12, 0x50, 0x53, 0x6d, 0xf6, 0x6d, 0x60, 0x8e, 0xf3, 0x65, 0x20, 0x51, 0x30, 0x55,
449 0x09, 0xa3, 0x24, 0x86, 0x12, 0xf1, 0x30, 0x03, 0x69, 0x74, 0x73, 0x22, 0xa1, 0xc2,
450 0x32, 0x02, 0x41, 0xa0, 0x35, 0xff, 0xf3, 0x47, 0xaf, 0x68, 0x11, 0x48, 0xa4, 0x04,
451 0x01, 0x8e, 0x37, 0x06, 0x10, 0x10, 0x37, 0x09, 0xe9, 0x70, 0x85, 0x69, 0x6c, 0xc1,
452 0x03, 0x6c, 0x20, 0xa5, 0xd0, 0x04, 0x28, 0x6b, 0x03, 0xa0, 0x09, 0x10, 0x28, 0x6f,
453 0x6c, 0x20, 0x73, 0x79, 0x73, 0x38, 0x74, 0x65, 0x6d, 0xb6, 0x6f, 0x21, 0x5c, 0x30,
454 0x77, 0x75, 0x65, 0xfa, 0x20, 0x20, 0x64, 0x63, 0x32, 0x72, 0x14, 0x02, 0x33, 0x51,
455 0x91, 0x6f, 0xd3, 0x8a, 0xef, 0x01, 0xa9, 0x42, 0x33, 0x49, 0x17, 0x41, 0x22, 0x65,
456 0x84, 0x09, 0x5a, 0x20, 0x61, 0x18, 0xe7, 0xb4, 0x95, 0xc1, 0x16, 0x30, 0xae, 0x63,
457 0x75, 0xa0, 0x7d, 0x20, 0x9f, 0x12, 0x07, 0x9e, 0x6d, 0xf2, 0x52, 0xd0, 0x00, 0x71,
458 0x02, 0x91, 0x28, 0x2c, 0x20, 0xb0, 0x77, 0x79, 0x84, 0x04, 0x65, 0x78, 0xf5, 0x78,
459 0xbb, 0x0e, 0x35, 0xa8, 0x20, 0x67, 0x73, 0x80, 0x70, 0x69, 0x63, 0x75, 0x6f, 0x75,
460 0x73, 0xc0, 0x3b, 0x70, 0x6d, 0x61, 0x72, 0x6b, 0xa1, 0x4f, 0x50, 0xad, 0xc0, 0x04,
461 0x72, 0x03, 0xd1, 0x91, 0x74, 0x04, 0x64, 0x65, 0x73, 0x69, 0x67, 0x6e, 0xde, 0x61,
462 0x41, 0x2a, 0xa0, 0x28, 0x31, 0x1a, 0x82, 0x15, 0x79, 0x52, 0x3d, 0x9c, 0x28, 0x49,
463 0x81, 0xb7, 0x22, 0x4e, 0xa0, 0x7f, 0x61, 0x20, 0xb9, 0x3a, 0x2e, 0xf4, 0x22, 0x0a,
464 0xc4, 0x04, 0x22, 0x66, 0x01, 0xfc, 0xb5, 0x66, 0x0f, 0x81, 0x0d, 0xbf, 0x11, 0x38,
465 0x2f, 0x8f, 0x25, 0xb1, 0xa4, 0x04, 0x09, 0x14, 0xf1, 0x51, 0x6d, 0xf0, 0x7a, 0x09,
466 0x49, 0x07, 0x20, 0x68, 0x50, 0xc0, 0x62, 0x65, 0x65, 0x6e, 0xf9, 0xf0, 0x21, 0x63,
467 0x65, 0x92, 0x5c, 0xe0, 0x31, 0x79, 0x06, 0x84, 0x04, 0x00, 0x2b, 0x70, 0x73, 0x65,
468 0x71, 0x75, 0xc0, 0x39, 0x70, 0x10, 0xa0, 0x23, 0x6f, 0x1f, 0xb0, 0xac, 0xe3, 0x7a,
469 0x01, 0xaf, 0xe8, 0x37, 0x83, 0x48, 0x32, 0x2e, 0x20, 0x36, 0x47, 0xe1, 0xbb, 0x01,
470 0x19, 0x43, 0x16, 0xc1, 0x73, 0x05, 0x65, 0x2e, 0x78, 0x20, 0x53, 0x75, 0xa3, 0x7f,
471 0xe0, 0x35, 0x51, 0x19, 0xcf, 0xcc, 0x6e, 0x66, 0x73, 0x90, 0x03, 0xa4, 0x07, 0x74,
472 0x68, 0xd0, 0x33, 0xa4, 0x03, 0x2c, 0xfc, 0x20, 0x65, 0x50, 0x72, 0x77, 0x13, 0xc0,
473 0x2d, 0x21, 0x44, 0x30, 0x0b, 0x52, 0x9c, 0x8f, 0x72, 0x81, 0xc0, 0xa1, 0x50, 0x0e,
474 0x10, 0x9e, 0x70, 0x65, 0x74, 0xc0, 0xa0, 0x43, 0x65, 0x54, 0xb0, 0x5a, 0x6c, 0x64,
475 0x77, 0x69, 0x21, 0x95, 0x6e, 0xa8, 0x6f, 0x6e, 0x2d, 0x92, 0x1f, 0x73, 0x10, 0x0f,
476 0x2c, 0x60, 0x98, 0x12, 0x2d, 0x50, 0x8f, 0x72, 0x67, 0xb0, 0x63, 0x72, 0x6f, 0x79,
477 0x00, 0x61, 0x6c, 0x74, 0x79, 0x2d, 0x66, 0x72, 0x65, 0xc5, 0xd0, 0x00, 0x69, 0x80,
478 0x9d, 0x76, 0x6f, 0x63, 0x81, 0x5c, 0xb4, 0x08, 0x7f, 0xa7, 0x1c, 0xf4, 0xdf, 0xe1,
479 0x7a, 0xd5, 0xd6, 0x10, 0x03, 0xe0, 0xa0, 0x90, 0x5f, 0x65, 0x8f, 0xb0, 0xdc, 0xab,
480 0x77, 0xd0, 0x0c, 0x75, 0x08, 0x70, 0x75, 0x62, 0xb0, 0x03, 0x81, 0x50, 0x14, 0x64,
481 0x69, 0x73, 0x70, 0x6c, 0x61, 0x70, 0xb8, 0xc7, 0x16, 0x01, 0x30, 0x0b, 0x60, 0x4d,
482 0x6d, 0x2c, 0x20, 0xd0, 0x16, 0xf4, 0x05, 0x9f, 0xa0, 0x6d, 0x30, 0x9e, 0xa0, 0x02,
483 0x33, 0x5d, 0xb0, 0x33, 0x68, 0x65, 0xb4, 0x08, 0xff, 0x52, 0x55, 0x91, 0x20, 0xc2,
484 0xb2, 0xbe, 0x55, 0x30, 0x19, 0x94, 0x99, 0x40, 0x12, 0xc8, 0x8c, 0x95, 0x03, 0x1a,
485 0x33, 0x08, 0x1a, 0x50, 0x70, 0x2b, 0x6e, 0x74, 0xc5, 0xf3, 0x5f, 0xdf, 0x19, 0xaf,
486 0xe6, 0xdf, 0x19, 0x72, 0xf7, 0xdf, 0x19, 0x20, 0xdf, 0x19, 0x6f, 0x3a, 0x75, 0xdf,
487 0x19, 0x20, 0x91, 0x74, 0xdf, 0x19, 0xd5, 0x19, 0x0e, 0xb8, 0x00, 0x63, 0x68, 0x61,
488 0x72, 0x67, 0x65, 0x2c, 0x20, 0x00, 0x72, 0x6f, 0x79, 0x61, 0x6c, 0x74, 0x79, 0x2d,
489 0x08, 0x66, 0x72, 0x65, 0x00, 0x68, 0x69, 0x72, 0x72, 0x65, 0x00, 0x76, 0x6f, 0x63,
490 0x61, 0x62, 0x6c, 0x65, 0x0a, 0x02, 0x20, 0x02, 0x00, 0x28, 0x65, 0x78, 0x63, 0x65,
491 0x70, 0x00, 0x74, 0x20, 0x61, 0x73, 0x20, 0x73, 0x74, 0x61, 0x00, 0x74, 0x65, 0x64,
492 0x20, 0x69, 0x6e, 0x20, 0x74, 0x04, 0x68, 0x69, 0x00, 0x38, 0x65, 0x63, 0x74, 0x69,
493 0x6f, 0x10, 0x6e, 0x29, 0x20, 0x70, 0x00, 0x2c, 0x6e, 0x74, 0x20, 0x00, 0x6c, 0x69,
494 0x63, 0x65, 0x6e, 0x73, 0x65, 0x20, 0x40, 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x6b, 0x00,
495 0x98, 0x68, 0x88, 0x61, 0x76, 0x65, 0x00, 0x14, 0x64, 0x65, 0x2c, 0x04, 0x96, 0x04,
496 0x75, 0x73, 0x00, 0x2a, 0x6f, 0x66, 0x66, 0x65, 0x72, 0x81, 0x01, 0x48, 0x73, 0x65,
497 0x6c, 0x6c, 0x2c, 0x20, 0x03, 0x05, 0x00, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x2c,
498 0x20, 0x00, 0x61, 0x6e, 0x64, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x08, 0x72, 0x77, 0x69,
499 0x01, 0x49, 0x72, 0x61, 0x6e, 0x73, 0x01, 0x02, 0x2d, 0x68, 0x65, 0x20, 0x57, 0x6f,
500 0x72, 0x6b, 0x05, 0x05, 0x48, 0x77, 0x00, 0x21, 0x65, 0x20, 0x73, 0x75, 0x63, 0x02,
501 0x68, 0x06, 0x75, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x65, 0x40, 0x73, 0x20, 0x6f, 0x6e,
502 0x6c, 0x79, 0x01, 0x5d, 0x74, 0x0c, 0x68, 0x6f, 0x00, 0x41, 0x04, 0x9a, 0x63, 0x6c,
503 0x61, 0x69, 0x4c, 0x6d, 0x73, 0x04, 0x2b, 0x08, 0xdc, 0x62, 0x79, 0x03, 0x22, 0x43,
504 0x00, 0x6f, 0x6e, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x12, 0x6f, 0x80, 0x4c, 0x68,
505 0x61, 0x80, 0x76, 0x72, 0x65, 0x20, 0x00, 0x6e, 0x65, 0x63, 0x65, 0x73, 0x73, 0x61,
506 0x72, 0x02, 0x69, 0x00, 0x28, 0x69, 0x6e, 0x66, 0x72, 0x69, 0x6e, 0xce, 0x67, 0x80,
507 0x7e, 0x00, 0x19, 0x80, 0x4f, 0x69, 0x72, 0x04, 0x69, 0x86, 0x1c, 0x01, 0x80, 0x84,
508 0x28, 0x73, 0x29, 0x20, 0x61, 0x6c, 0x6f, 0x18, 0x6e, 0x65, 0x20, 0x00, 0x23, 0x80,
509 0x13, 0x63, 0x6f, 0x6d, 0x10, 0x62, 0x69, 0x6e, 0x61, 0x01, 0x92, 0x20, 0x6f, 0x66,
510 0x61, 0x00, 0x9a, 0x65, 0x69, 0x72, 0x20, 0x0c, 0x18, 0x04, 0x23, 0x77, 0x38, 0x69,
511 0x74, 0x68, 0x01, 0x10, 0x82, 0x72, 0x01, 0x5f, 0x77, 0x68, 0x2e, 0x69, 0x00, 0x6e,
512 0x82, 0x70, 0x0d, 0x31, 0x77, 0x01, 0xc5, 0x75, 0x62, 0x08, 0x6d, 0x69, 0x74, 0x80,
513 0xc6, 0x2e, 0x20, 0x49, 0x66, 0x10, 0x20, 0x59, 0x6f, 0x75, 0x84, 0x23, 0x69, 0x6e,
514 0x73, 0x40, 0x74, 0x69, 0x74, 0x75, 0x74, 0x65, 0x07, 0xca, 0x74, 0xc4, 0x69, 0x67,
515 0x03, 0x41, 0x61, 0x67, 0x61, 0x01, 0x0f, 0x80, 0xb1, 0x10, 0x79, 0x20, 0x65, 0x6e,
516 0x00, 0x13, 0x79, 0x20, 0x28, 0x40, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x40, 0x36,
517 0x20, 0x02, 0x61, 0x44, 0x10, 0x63, 0x72, 0x6f, 0x73, 0x73, 0x2d, 0x03, 0x02, 0x4c,
518 0x81, 0x31, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x06, 0x72, 0xc3, 0x03, 0x40, 0x7e,
519 0x61, 0x20, 0x6c, 0x61, 0x77, 0x10, 0x73, 0x75, 0x69, 0x74, 0x81, 0x3a, 0x6c, 0x65,
520 0x67, 0x7d, 0x81, 0x0e, 0x74, 0x41, 0x4c, 0x00, 0x45, 0x02, 0x2f, 0x84, 0x11, 0x40,
521 0x40, 0x61, 0xe3, 0xca, 0x3a, 0x80, 0x8d, 0x63, 0x6f, 0x72, 0x40, 0x79, 0xc2, 0x90,
522 0xc1, 0x3b, 0x23, 0xc2, 0x91, 0xc3, 0x75, 0x20, 0x63, 0x6f, 0x05, 0x2e, 0x73, 0x20,
523 0x78, 0x64, 0x69, 0x72, 0x40, 0x96, 0xc7, 0x11, 0xc0, 0x06, 0x05, 0x67, 0x79, 0xab,
524 0x85, 0x35, 0xc5, 0x63, 0x6d, 0x00, 0x32, 0x2c, 0x01, 0x4e, 0x6e, 0x82, 0x35, 0xf5,
525 0x4b, 0xa2, 0x73, 0xc4, 0x10, 0x67, 0x80, 0x91, 0x01, 0xae, 0x00, 0xa6, 0x40, 0x4a,
526 0xb0, 0x20, 0x75, 0x6e, 0x64, 0x01, 0xa0, 0x81, 0xb0, 0x4c, 0x84, 0xac, 0x0e, 0x66,
527 0x80, 0x2b, 0x42, 0x31, 0x01, 0x99, 0x20, 0x73, 0x68, 0x61, 0xe8, 0x6c, 0x6c, 0x20,
528 0x40, 0x3d, 0x6d, 0x41, 0x6f, 0x05, 0xc2, 0x40, 0x5d, 0x79, 0x03, 0x71, 0x20, 0x64,
529 0x80, 0x30, 0x05, 0x9f, 0x46, 0x57, 0x00, 0xc4, 0x66, 0x40, 0x69, 0x6c, 0x65, 0x64,
530 0x2e, 0x0a, 0x41, 0x1d, 0x34, 0x80, 0x2e, 0x20, 0x52, 0x65, 0x64, 0x69, 0x73, 0x03,
531 0x2e, 0x0d, 0xc0, 0x86, 0x2e, 0x01, 0x69, 0x00, 0xc3, 0x79, 0x20, 0x72, 0x65, 0x80,
532 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x65, 0x40, 0x2c, 0xd6, 0x64, 0x00, 0x3b, 0xc4,
533 0x08, 0x65, 0xc0, 0x40, 0x70, 0x02, 0xb0, 0x42, 0x8a, 0x07, 0x84, 0x2e, 0xc2, 0x23,
534 0x00, 0x27, 0x44, 0x65, 0x72, 0x69, 0x76, 0x97, 0x80, 0x71, 0x00, 0xd4, 0x81, 0x04,
535 0x73, 0x81, 0x3c, 0x72, 0x65, 0xc0, 0x23, 0x21, 0x81, 0x64, 0x6e, 0x79, 0x20, 0x6d,
536 0x00, 0x1b, 0x75, 0x6d, 0x1c, 0x2c, 0x20, 0xc2, 0x91, 0xc0, 0x0b, 0xc1, 0x01, 0x6f,
537 0x75, 0x74, 0x01, 0x44, 0x11, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x63, 0x0d, 0x82,
538 0x81, 0x73, 0x03, 0xd9, 0xc0, 0x0d, 0x53, 0x6f, 0x75, 0x72, 0xa3, 0xa0, 0x10, 0xa0,
539 0x05, 0x4f, 0x62, 0x6a, 0x20, 0x2e, 0x20, 0xa0, 0x20, 0xe3, 0x40, 0x08, 0xa0, 0x13,
540 0x76, 0x69, 0x64, 0x20, 0x5d, 0x02, 0x22, 0x47, 0x4b, 0x30, 0x6d, 0x65, 0x65, 0x74,
541 0xc1, 0x0e, 0xc0, 0x04, 0x6c, 0x6c, 0x4c, 0x6f, 0x77, 0x01, 0x3f, 0x20, 0x33, 0x64,
542 0x69, 0xc1, 0x5b, 0x73, 0x46, 0x3a, 0xa2, 0x1e, 0x00, 0x86, 0x28, 0x61, 0x29, 0x23,
543 0x1d, 0x75, 0xa0, 0x73, 0x74, 0x20, 0x67, 0x69, 0xe0, 0x15, 0x61, 0xc0, 0x13, 0x93,
544 0x42, 0x7a, 0x20, 0x1f, 0x63, 0x69, 0x40, 0x1c, 0x6e, 0x74, 0xa0, 0x74, 0xbb, 0x82,
545 0x1c, 0xa3, 0x5d, 0x6f, 0x65, 0x69, 0xe1, 0x8d, 0x0e, 0x1d, 0x61, 0xe1, 0x22, 0x6e,
546 0x79, 0xe3, 0x67, 0x60, 0x2c, 0x24, 0x36, 0x3b, 0x81, 0x27, 0x66, 0x0e, 0x62, 0xf9,
547 0x68, 0x0e, 0x63, 0x61, 0xa0, 0x8c, 0xa0, 0x03, 0x60, 0x22, 0xa2, 0x1e, 0x00, 0x19,
548 0x03, 0xe1, 0x32, 0x20, 0x26, 0x6f, 0x20, 0x63, 0x61, 0x72, 0x72, 0x19, 0x40, 0x48,
549 0x72, 0x6f, 0x00, 0x3b, 0x00, 0x47, 0x20, 0x6e, 0x6f, 0xfe, 0x74, 0x00, 0x40, 0xc5,
550 0x44, 0xc1, 0x0f, 0x41, 0x9c, 0x46, 0x5a, 0x81, 0x45, 0xc0, 0xa4, 0x2f, 0xc2, 0x7e,
551 0xc1, 0x5b, 0xe2, 0x08, 0x2b, 0x0f, 0x63, 0x28, 0x0f, 0x72, 0x65, 0xca, 0x74, 0x00,
552 0x6c, 0x2c, 0xe3, 0xa3, 0x65, 0x20, 0xc4, 0x2b, 0x81, 0x2a, 0xff, 0xa1, 0x17, 0xc1,
553 0x20, 0x8d, 0x1b, 0xc4, 0x33, 0x01, 0x0f, 0x85, 0x2d, 0x08, 0x42, 0x00, 0x35, 0x01,
554 0xc0, 0x50, 0x63, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x0e, 0x68, 0x80, 0xa3, 0xa3,
555 0x5b, 0xc0, 0x5d, 0x72, 0x61, 0x64, 0x65, 0x3c, 0x6d, 0x61, 0xc0, 0xa1, 0xa2, 0x20,
556 0xc1, 0x07, 0x63, 0x00, 0x61, 0x74, 0xf3, 0xe6, 0x4d, 0x65, 0x1b, 0x20, 0x66, 0xa0,
557 0x1d, 0xc2, 0x36, 0xec, 0x11, 0xe5, 0x75, 0xff, 0x45, 0xaa, 0x21, 0x08, 0x40, 0xbd,
558 0xa4, 0x81, 0xa3, 0xa7, 0xe4, 0x23, 0xc0, 0x07, 0x40, 0xa2, 0x84, 0x64, 0x6f, 0x61,
559 0x0a, 0x20, 0x70, 0x65, 0x72, 0xc1, 0x1c, 0xc3, 0x61, 0x94, 0x41, 0x1a, 0x70, 0x61,
560 0x72, 0x74, 0xc0, 0x1b, 0x2a, 0x19, 0xcc, 0x65, 0x20, 0x0d, 0x1d, 0x8b, 0x26, 0x64,
561 0x29, 0x81, 0x96, 0x05, 0x10, 0x07, 0x01, 0x83, 0xa0, 0x0e, 0x40, 0xb7, 0x61, 0x20,
562 0x22, 0x4e, 0x4f, 0x20, 0x54, 0x49, 0x43, 0x45, 0x22, 0x80, 0x6f, 0x78, 0x74, 0x8e,
563 0x20, 0xe1, 0x2d, 0xe1, 0xce, 0x64, 0x0c, 0x20, 0x69, 0x74, 0x49, 0x35, 0xff, 0xa9,
564 0x6b, 0x48, 0x80, 0x4d, 0x0f, 0x83, 0x17, 0x41, 0x39, 0x06, 0x06, 0x80, 0xd2, 0xa0,
565 0x53, 0xcf, 0x48, 0x16, 0xa3, 0xa0, 0x00, 0x72, 0x40, 0x54, 0x61, 0x64, 0xe1, 0xc3,
566 0x88, 0x4e, 0xcf, 0xc0, 0x02, 0xd0, 0x2a, 0x81, 0x92, 0xa0, 0x3d, 0x65, 0x64, 0xc8,
567 0x08, 0x81, 0x6e, 0x0f, 0xe0, 0x6a, 0x82, 0xb6, 0x03, 0x19, 0x42, 0x18, 0x2c, 0x20,
568 0x65, 0x78, 0xff, 0xa5, 0xac, 0xf6, 0x2a, 0xc8, 0x08, 0x33, 0x2c, 0xe0, 0x18, 0xef,
569 0x2a, 0x82, 0x4d, 0x60, 0x33, 0x78, 0x6c, 0x65, 0x61, 0xc0, 0x6d, 0x20, 0xcf, 0xc8,
570 0x08, 0x84, 0x95, 0x66, 0xa2, 0x6f, 0xa5, 0x75, 0x70, 0x6c, 0x61, 0x00, 0xda, 0x3a,
571 0x62, 0x84, 0xc9, 0xc0, 0x14, 0x61, 0x20, 0x34, 0x0a, 0x74, 0x65, 0xb5, 0x16, 0x17,
572 0x12, 0xff, 0x69, 0x0d, 0x80, 0x4f, 0x15, 0x18, 0x31, 0x1b, 0xbf, 0x1d, 0x74, 0x0f,
573 0xc1, 0x01, 0x4a, 0x26, 0xe1, 0x79, 0x3d, 0x64, 0x6f, 0x63, 0x75, 0xc1, 0x5a, 0x32,
574 0x48, 0x60, 0x0b, 0x6c, 0x66, 0x20, 0x76, 0x46, 0x21, 0x73, 0x67, 0x93, 0x4b, 0xff,
575 0x05, 0x6b, 0xdc, 0x73, 0x3b, 0x60, 0x68, 0x49, 0x2a, 0xd4, 0x06, 0x61, 0x91, 0x32,
576 0x20, 0x0d, 0x80, 0x79, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x52, 0x65, 0xbf, 0xb3,
577 0x79, 0xde, 0x27, 0xe2, 0x06, 0x90, 0x85, 0xc8, 0x11, 0x02, 0x84, 0x76, 0x60, 0x60,
578 0xa3, 0xc2, 0x1a, 0xe0, 0x8c, 0x72, 0x64, 0x2d, 0x41, 0x0e, 0x79, 0x76, 0x33, 0x90,
579 0x6e, 0x6f, 0x72, 0x6d, 0x60, 0x60, 0x79, 0x20, 0x80, 0x85, 0xc0, 0x65, 0x61, 0x72,
580 0x2e, 0x20, 0x54, 0x30, 0x88, 0x51, 0x1f, 0xcf, 0x80, 0x43, 0x69, 0x28, 0x64, 0x16,
581 0xf8, 0x1e, 0x20, 0x61, 0xc0, 0x83, 0x60, 0x3f, 0x07, 0x80, 0x2d, 0xc1, 0x3f, 0x12,
582 0x0f, 0x61, 0x6c, 0x20, 0x70, 0x75, 0xfd, 0xd0, 0x6f, 0x73, 0x15, 0x8a, 0xeb, 0x08,
583 0xb4, 0x35, 0x72, 0x5a, 0xd0, 0x8b, 0x90, 0x06, 0x23, 0x74, 0x4e, 0x67, 0x63, 0x61,
584 0x64, 0x64, 0x81, 0x55, 0x72, 0x20, 0xfc, 0x6f, 0x77, 0xb0, 0x6e, 0x17, 0x29, 0x48,
585 0x0d, 0xe5, 0x3a, 0x14, 0x12, 0x9f, 0x30, 0x87, 0x71, 0x7a, 0x9b, 0x30, 0x31, 0x46,
586 0x6f, 0x6e, 0x67, 0x73, 0x00, 0x5f, 0x17, 0x88, 0x04, 0x20, 0x61, 0x40, 0x1f, 0x61,
587 0x70, 0x06, 0x64, 0x64, 0x65, 0xf0, 0x6e, 0x64, 0x75, 0x6d, 0xd1, 0x3e, 0xb1, 0x19,
588 0x1a, 0x23, 0x85, 0x45, 0xfd, 0x01, 0x69, 0x2c, 0xe6, 0x1c, 0x68, 0x04, 0x32, 0x4d,
589 0x02, 0x16, 0xc0, 0x0b, 0x72, 0x62, 0x2b, 0x60, 0x10, 0x3f, 0x4a, 0x73, 0x70, 0x59,
590 0x6e, 0xb0, 0x0b, 0x20, 0x62, 0xf3, 0x31, 0x70, 0x70, 0x80, 0x72, 0x75, 0x6a, 0x35,
591 0xa0, 0x08, 0x83, 0x11, 0x83, 0x59, 0x9c, 0x65, 0x20, 0xb5, 0x11, 0xf5, 0x5f, 0x21,
592 0x0d, 0x6d, 0x61, 0x90, 0x1a, 0x3f, 0x29, 0x12, 0x76, 0x53, 0x63, 0xab, 0xb1, 0x27,
593 0x51, 0x0c, 0xb0, 0x02, 0x72, 0x20, 0xdf, 0xe2, 0x04, 0xf5, 0x70, 0x38, 0x54, 0x41,
594 0x04, 0x64, 0x29, 0x20, 0x28, 0x0b, 0xe0, 0x10, 0xcf, 0xf0, 0x73, 0x70, 0xa8, 0x31,
595 0x63, 0x56, 0xae, 0x65, 0x72, 0x10, 0xa5, 0x60, 0x1c, 0xfd, 0xa0, 0x42, 0x6e, 0x54,
596 0x70, 0xb4, 0x0f, 0xb1, 0x1f, 0xa2, 0xae, 0xa5, 0x7e, 0x21, 0x72, 0xfe, 0x2c, 0xd1,
597 0x94, 0x06, 0x36, 0x10, 0x81, 0x41, 0x61, 0xdf, 0x08, 0x61, 0x02, 0x68, 0x04, 0x0f,
598 0x21, 0x56, 0x12, 0x14, 0xce, 0x1c, 0x01, 0x1a, 0x20, 0x77, 0x68, 0x6f, 0xfc, 0x6c,
599 0x65, 0xb7, 0x17, 0x03, 0x22, 0xa1, 0x07, 0x24, 0x04, 0x0b, 0x08, 0xc1, 0x0a, 0xff,
600 0x1d, 0x08, 0x51, 0x1d, 0x01, 0x1c, 0x58, 0xb7, 0x60, 0xab, 0xa3, 0xb4, 0x71, 0x24,
601 0x84, 0x04, 0x1f, 0x61, 0x02, 0xc0, 0x2f, 0x74, 0x0e, 0x9d, 0xc0, 0x0a, 0x19, 0x35,
602 0x2e, 0x20, 0x32, 0x53, 0xd1, 0xa9, 0x73, 0x73, 0x44, 0x0e, 0xf9, 0xab, 0x73, 0x2e,
603 0xf0, 0x20, 0x55, 0x6e, 0x6c, 0x60, 0xb5, 0xa1, 0x0a, 0x70, 0x51, 0x80, 0x06, 0xf8,
604 0x63, 0x69, 0x74, 0x00, 0xb6, 0xb2, 0xc5, 0x47, 0x08, 0x05, 0x3f, 0xf1, 0x0f, 0xbb,
605 0xf9, 0x03, 0x30, 0x35, 0x74, 0x50, 0x18, 0x90, 0x05, 0xb2, 0x39, 0x73, 0x65, 0xb0,
606 0xff, 0xb1, 0x8b, 0xb0, 0x01, 0x60, 0x56, 0x52, 0x07, 0xe0, 0x4d, 0x85, 0x0d, 0x04,
607 0x0c, 0xa0, 0x41, 0xff, 0xc0, 0x16, 0x75, 0x2c, 0x03, 0x0b, 0x70, 0x1d, 0xa3, 0x9e,
608 0x80, 0x27, 0x45, 0xa1, 0xe0, 0xcb, 0xff, 0x8f, 0x1d, 0xf1, 0x8a, 0x86, 0x10, 0x47,
609 0x88, 0xe3, 0x96, 0x60, 0x96, 0x20, 0x24, 0xd2, 0x27, 0x57, 0x35, 0x2e, 0xa1, 0xa3,
610 0x30, 0x03, 0x72, 0xa8, 0x21, 0x2e, 0xf4, 0x03, 0x4e, 0x9c, 0x6f, 0x74, 0x61, 0x15,
611 0xe0, 0x0e, 0x40, 0x23, 0x6e, 0x67, 0x52, 0x5d, 0xb0, 0x61, 0x62, 0x6f, 0x76, 0x50,
612 0x1c, 0x20, 0x30, 0x68, 0x21, 0x2e, 0x27, 0xb1, 0xcd, 0x00, 0x0c, 0xa3, 0x09, 0x73,
613 0x75, 0xe0, 0x60, 0x73, 0x65, 0x7e, 0x64, 0x32, 0xc5, 0x63, 0x30, 0x96, 0x08, 0xb5,
614 0x0a, 0x20, 0x48, 0x72, 0x22, 0x65, 0x67, 0x10, 0x4c, 0xa1, 0xa9, 0x25, 0x2a, 0x61,
615 0x67, 0x30, 0xdd, 0x82, 0x2f, 0x79, 0x0c, 0x6f, 0x75, 0xb2, 0xa7, 0x12, 0xd9, 0x65,
616 0x78, 0x65, 0x63, 0x1f, 0x10, 0xc2, 0x25, 0x5e, 0xe1, 0x08, 0x24, 0x35, 0x00, 0x11,
617 0x72, 0x65, 0x67, 0xbc, 0x61, 0x72, 0x02, 0xc1, 0x62, 0x27, 0xbb, 0x1b, 0x02, 0x37,
618 0x36, 0xa0, 0x50, 0xcb, 0x05, 0x88, 0xe0, 0x1c, 0x54, 0x79, 0xb4, 0x64, 0x6f, 0xf0,
619 0x4d, 0xa1, 0x3c, 0xe6, 0x67, 0x21, 0xb7, 0xb1, 0x82, 0x6d, 0x69, 0x73, 0x20, 0xb0,
620 0xb7, 0x70, 0x29, 0x0d, 0xe2, 0x0e, 0x74, 0xd1, 0x03, 0x44, 0x0c, 0x6e, 0x61, 0x6d,
621 0x65, 0x0f, 0x10, 0xa9, 0x22, 0x01, 0x11, 0x8d, 0xb0, 0x00, 0x73, 0x65, 0x72, 0x76,
622 0xf3, 0x50, 0x99, 0xf0, 0x0a, 0x72, 0x6b, 0xe0, 0x00, 0x30, 0x09, 0x20, 0x39, 0xf0,
623 0xb2, 0x7c, 0x74, 0x20, 0xc2, 0x02, 0x61, 0x33, 0xb1, 0x1d, 0x25, 0x1c, 0x95, 0x22,
624 0x65, 0xa1, 0x66, 0xea, 0x72, 0x65, 0x71, 0x75, 0x20, 0xc4, 0x64, 0x32, 0x21, 0x72,
625 0x72, 0x90, 0x71, 0x6f, 0x6e, 0x22, 0x7d, 0xb2, 0x3a, 0x80, 0x7f, 0x6f, 0x19, 0x80,
626 0x06, 0x79, 0x20, 0xd1, 0x08, 0x50, 0x16, 0x64, 0x65, 0x73, 0xee, 0x63, 0x90, 0xdf,
627 0xa4, 0x45, 0x54, 0x09, 0x6f, 0x00, 0x97, 0xb0, 0x01, 0xa4, 0x5d, 0xff, 0xe2, 0x31,
628 0xc1, 0x03, 0xd5, 0x34, 0xc4, 0x02, 0xd1, 0x1d, 0xc1, 0x28, 0x15, 0x09, 0x28, 0x60,
629 0x01, 0x43, 0xc0, 0x37, 0x2e, 0x20, 0x44, 0x69, 0x73, 0x63, 0x17, 0xb1, 0xe7, 0x90,
630 0x66, 0xd0, 0x04, 0x57, 0xf0, 0xa7, 0x61, 0x6e, 0x74, 0xfe, 0x79, 0x46, 0x30, 0xa6,
631 0x0a, 0xe0, 0x29, 0x02, 0xec, 0x92, 0xf7, 0x21, 0xd6, 0xd0, 0x42, 0x9b, 0xc4, 0x08,
632 0x52, 0x1c, 0x64, 0x91, 0x2b, 0x20, 0x09, 0x77, 0x72, 0x30, 0x26, 0x78, 0x6e, 0x67,
633 0x2c, 0x07, 0x1b, 0xf4, 0x4a, 0x12, 0xc1, 0xf3, 0xb4, 0x28, 0xe1, 0xb1, 0x0a, 0x65,
634 0x61, 0x63, 0x68, 0x04, 0x04, 0x36, 0x1c, 0xa3, 0x14, 0x01, 0xc1, 0xbd, 0x73, 0x20,
635 0x69, 0x1f, 0xb8, 0x00, 0x74, 0x73, 0x20, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x00, 0x69,
636 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x00, 0x29, 0x20, 0x6f, 0x6e, 0x20, 0x61,
637 0x6e, 0x20, 0x00, 0x22, 0x41, 0x53, 0x20, 0x49, 0x53, 0x22, 0x20, 0x00, 0x42, 0x41,
638 0x53, 0x49, 0x53, 0x2c, 0x0a, 0x20, 0x01, 0x02, 0x00, 0x57, 0x49, 0x54, 0x48, 0x4f,
639 0x55, 0x54, 0x00, 0x20, 0x57, 0x41, 0x52, 0x52, 0x41, 0x4e, 0x54, 0x00, 0x49, 0x45,
640 0x53, 0x20, 0x4f, 0x52, 0x20, 0x43, 0x00, 0x4f, 0x4e, 0x44, 0x49, 0x54, 0x49, 0x4f,
641 0x4e, 0x01, 0x00, 0x1a, 0x46, 0x20, 0x41, 0x4e, 0x59, 0x20, 0x4b, 0x00, 0x49, 0x4e,
642 0x44, 0x2c, 0x20, 0x65, 0x69, 0x74, 0x00, 0x68, 0x65, 0x72, 0x20, 0x65, 0x78, 0x70,
643 0x72, 0x40, 0x65, 0x73, 0x73, 0x20, 0x6f, 0x72, 0x04, 0x8a, 0x69, 0x00, 0x6d, 0x70,
644 0x6c, 0x69, 0x65, 0x64, 0x2c, 0x20, 0x00, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x69,
645 0x6e, 0x10, 0x67, 0x2c, 0x20, 0x77, 0x00, 0x2b, 0x6f, 0x75, 0x74, 0x80, 0x20, 0x6c,
646 0x69, 0x6d, 0x69, 0x74, 0x61, 0x01, 0x89, 0x02, 0x2c, 0x00, 0x85, 0x79, 0x20, 0x77,
647 0x61, 0x72, 0x72, 0x20, 0x61, 0x6e, 0x74, 0x69, 0x65, 0x01, 0x3f, 0x20, 0x63, 0x30,
648 0x6f, 0x6e, 0x64, 0x69, 0x02, 0xa6, 0x04, 0x4a, 0x6f, 0x66, 0x00, 0x20, 0x54, 0x49,
649 0x54, 0x4c, 0x45, 0x2c, 0x20, 0x00, 0x4e, 0x4f, 0x4e, 0x2d, 0x49, 0x4e, 0x46, 0x52,
650 0x00, 0x49, 0x4e, 0x47, 0x45, 0x4d, 0x45, 0x4e, 0x54, 0x80, 0x2c, 0x20, 0x4d, 0x45,
651 0x52, 0x43, 0x48, 0x00, 0xa5, 0x00, 0x41, 0x42, 0x49, 0x4c, 0x49, 0x54, 0x59, 0x2c,
652 0x01, 0x00, 0x80, 0x20, 0x46, 0x49, 0x54, 0x4e, 0x45, 0x53, 0x28, 0x53, 0x20, 0x46,
653 0x00, 0xb6, 0x41, 0x04, 0x43, 0x50, 0x41, 0x00, 0x52, 0x54, 0x49, 0x43, 0x55, 0x4c,
654 0x41, 0x52, 0x00, 0x20, 0x50, 0x55, 0x52, 0x50, 0x4f, 0x53, 0x45, 0x00, 0x2e, 0x20,
655 0x59, 0x6f, 0x75, 0x20, 0x61, 0x72, 0x00, 0x65, 0x20, 0x73, 0x6f, 0x6c, 0x65, 0x6c,
656 0x79, 0x0a, 0x20, 0x80, 0x5f, 0x70, 0x80, 0x8d, 0x69, 0x62, 0x6c, 0x65, 0x00, 0x20,
657 0x66, 0x6f, 0x72, 0x20, 0x64, 0x65, 0x74, 0xa0, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x00,
658 0x5d, 0x20, 0x80, 0x71, 0x01, 0x04, 0x24, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x70, 0x72,
659 0x20, 0x69, 0x61, 0x74, 0x65, 0x6e, 0x02, 0x78, 0x66, 0x20, 0x0c, 0x75, 0x73, 0x01,
660 0x11, 0x80, 0x18, 0x72, 0x65, 0x64, 0x69, 0x12, 0x73, 0x84, 0xb2, 0x6e, 0x67, 0x01,
661 0x1a, 0x20, 0x57, 0x6f, 0x04, 0x72, 0x6b, 0x80, 0x71, 0x64, 0x20, 0x61, 0x73, 0x73,
662 0x18, 0x75, 0x6d, 0x65, 0x01, 0x77, 0x04, 0x24, 0x72, 0x69, 0x73, 0xa4, 0x6b, 0x73,
663 0x01, 0x0b, 0x6f, 0x63, 0x01, 0x26, 0x64, 0x82, 0x8e, 0x03, 0x81, 0x49, 0x01, 0xa6,
664 0x65, 0x72, 0x63, 0x69, 0x73, 0x65, 0x4a, 0x20, 0x80, 0x7c, 0x70, 0x81, 0x41, 0x73,
665 0x73, 0x81, 0xda, 0x20, 0x08, 0x75, 0x6e, 0x64, 0x00, 0xb5, 0x74, 0x68, 0x69, 0x73,
666 0x00, 0x20, 0x4c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0xe4, 0x2e, 0x0a, 0x81, 0x26,
667 0x38, 0x2e, 0x80, 0x07, 0x05, 0xa9, 0x01, 0x1a, 0x00, 0x4c, 0x69, 0x61, 0x62, 0x69,
668 0x6c, 0x69, 0x74, 0x00, 0x79, 0x2e, 0x20, 0x49, 0x6e, 0x20, 0x6e, 0x6f, 0xc0, 0x20,
669 0x65, 0x76, 0x65, 0x6e, 0x74, 0xc2, 0x21, 0xc3, 0x10, 0x41, 0x80, 0x04, 0x6c, 0x65,
670 0x67, 0x61, 0x6c, 0xc1, 0x28, 0x6f, 0x44, 0x72, 0x79, 0x85, 0x7e, 0x77, 0x68, 0x65,
671 0x40, 0x3a, 0x72, 0x01, 0xc0, 0x6c, 0x20, 0x74, 0x6f, 0x72, 0x74, 0x20, 0x28, 0x01,
672 0x06, 0x6f, 0x20, 0x6e, 0x65, 0x67, 0x6c, 0x69, 0x67, 0x40, 0x65, 0x6e, 0x63, 0x65,
673 0x29, 0x2c, 0x81, 0x68, 0x74, 0x50, 0x72, 0x61, 0x63, 0x74, 0x82, 0x5b, 0x6f, 0x81,
674 0x0c, 0x77, 0x23, 0x80, 0x2b, 0x45, 0x11, 0x75, 0x6e, 0x6c, 0x41, 0x46, 0x72, 0x65,
675 0x08, 0x71, 0x75, 0x69, 0x80, 0x44, 0x20, 0x62, 0x79, 0x20, 0x21, 0x40, 0x4d, 0x6c,
676 0x69, 0x63, 0x61, 0x81, 0x56, 0x6c, 0x61, 0x80, 0x77, 0x20, 0x28, 0x73, 0x75, 0x63,
677 0x68, 0xc0, 0x3e, 0xc1, 0xc0, 0x58, 0x6c, 0x69, 0x62, 0x65, 0x72, 0x00, 0x53, 0x02,
678 0x27, 0x80, 0x67, 0x72, 0x6f, 0x73, 0x73, 0x6c, 0x79, 0x44, 0x48, 0x13, 0x85, 0x1c,
679 0x00, 0x2e, 0x63, 0x74, 0xc1, 0xac, 0x72, 0x20, 0x61, 0x60, 0x67, 0x72, 0x65, 0x65,
680 0x64, 0x00, 0x27, 0x81, 0x28, 0x77, 0x08, 0x72, 0x69, 0x74, 0x40, 0x5e, 0x2c, 0x20,
681 0x73, 0x68, 0x68, 0x61, 0x6c, 0x6c, 0x00, 0x10, 0x79, 0x47, 0xb9, 0x40, 0x63, 0x62,
682 0x9a, 0x65, 0xc4, 0x11, 0x6c, 0x40, 0x43, 0xc0, 0x74, 0x74, 0x6f, 0x42, 0x7c, 0x81,
683 0x82, 0x76, 0x61, 0x6d, 0x61, 0x67, 0x65, 0x73, 0x08, 0xa7, 0x2d, 0x42, 0x0f, 0x64,
684 0x80, 0x2b, 0x01, 0x35, 0x69, 0x00, 0xa0, 0x72, 0x65, 0xd1, 0x41, 0x02, 0x73, 0x70,
685 0x65, 0x40, 0x67, 0x6c, 0x45, 0x36, 0x80, 0x43, 0x64, 0x69, 0x64, 0x40, 0x52, 0x61,
686 0x6c, 0x42, 0x3e, 0x40, 0xaa, 0x73, 0x6b, 0x00, 0x39, 0x00, 0x04, 0x69, 0x80, 0x52,
687 0x64, 0x03, 0x15, 0xc1, 0x5f, 0x61, 0xc0, 0x6e, 0x79, 0x20, 0x63, 0x68, 0x61, 0x81,
688 0x48, 0x00, 0x6c, 0x76, 0x61, 0x80, 0x7a, 0x41, 0x88, 0x61, 0x80, 0x7b, 0x84, 0x24,
689 0xc0, 0x9a, 0x75, 0xfc, 0x6c, 0x74, 0x81, 0x0a, 0x49, 0x73, 0x01, 0xaf, 0xc1, 0xc7,
690 0x80, 0x7d, 0xc0, 0x54, 0xdf, 0xc0, 0x95, 0x40, 0x80, 0x01, 0x63, 0x04, 0x73, 0x81,
691 0x3d, 0x75, 0x40, 0x85, 0xc0, 0x06, 0xff, 0x84, 0x11, 0x42, 0x97, 0x08, 0x69, 0x80,
692 0xf7, 0x40, 0x7b, 0x04, 0xd8, 0xc3, 0x49, 0x45, 0x25, 0x0d, 0xc1, 0x1e, 0x6c, 0xa0,
693 0x2b, 0x61, 0x0e, 0x67, 0x6f, 0x6f, 0x64, 0x28, 0x77, 0x69, 0x6c, 0xc6, 0x1a, 0x77,
694 0x81, 0x54, 0x73, 0x74, 0x18, 0x6f, 0x70, 0x70, 0xa0, 0x22, 0xa1, 0x3b, 0x6d, 0x70,
695 0x75, 0x81, 0x60, 0x5f, 0x20, 0x66, 0x61, 0x69, 0x6c, 0x75, 0x00, 0x64, 0x01, 0x80,
696 0x29, 0x6d, 0x61, 0x6c, 0x66, 0x75, 0x6e, 0x63, 0x27, 0x63, 0x76, 0xe0, 0x01, 0x21,
697 0x1c, 0x61, 0x6e, 0xc0, 0x5a, 0x6c, 0x6c, 0x67, 0x64, 0x11, 0xc2, 0x40, 0x20, 0x43,
698 0x6d, 0x6d, 0x81, 0x57, 0xe9, 0x21, 0x72, 0x32, 0x20, 0x01, 0x0f, 0x65, 0x73, 0x00,
699 0x47, 0xe1, 0x50, 0x20, 0x69, 0x5c, 0x66, 0x20, 0xe2, 0x3f, 0x46, 0x92, 0x86, 0x86,
700 0x68, 0x40, 0x24, 0x62, 0xa4, 0x65, 0x65, 0x60, 0x93, 0x64, 0x76, 0x00, 0x4a, 0x64,
701 0x81, 0x15, 0xf5, 0x21, 0x21, 0x70, 0x00, 0x17, 0x69, 0x23, 0x5a, 0x41, 0x02, 0xa2,
702 0x07, 0x04, 0x1b, 0x01, 0x23, 0x60, 0x39, 0x2e, 0x20, 0x41, 0x63, 0x63, 0x65, 0x52,
703 0x70, 0xe1, 0x41, 0x20, 0x57, 0xc3, 0x89, 0x79, 0xc1, 0x29, 0x41, 0x8e, 0x64, 0x63,
704 0x89, 0xe0, 0x11, 0x88, 0x62, 0x57, 0x68, 0x69, 0x00, 0x42, 0x1f, 0xcb, 0x75, 0xc4,
705 0x18, 0xc1, 0x0d, 0xc2, 0x2a, 0x80, 0x1c, 0x44, 0x65, 0x72, 0xa4, 0x69, 0x76, 0xe0,
706 0x94, 0x76, 0x65, 0xe2, 0x78, 0x73, 0xa1, 0x65, 0x20, 0x72, 0x65, 0x6f, 0x66, 0x2c,
707 0x02, 0x49, 0x6d, 0x61, 0x29, 0x81, 0x3c, 0x6f, 0x6f, 0x21, 0x32, 0x6f, 0xc0, 0x12,
708 0x66, 0x65, 0x2e, 0x72, 0xe5, 0x44, 0x21, 0x23, 0xe1, 0x3f, 0x67, 0x00, 0x7e, 0x20,
709 0x66, 0x6e, 0x65, 0xe2, 0x89, 0x40, 0x9d, 0x22, 0x14, 0x61, 0x40, 0x68, 0x83, 0x18,
710 0x70, 0x1e, 0x70, 0x60, 0x6c, 0xa0, 0xa2, 0xc4, 0x15, 0xa1, 0x51, 0x64, 0x65, 0x6d,
711 0x7e, 0x6e, 0xc0, 0x76, 0xe5, 0x08, 0x60, 0x10, 0xc3, 0x2a, 0x41, 0x58, 0x02, 0x7a,
712 0x20, 0x1c, 0x6f, 0x62, 0xc0, 0x70, 0x62, 0xa7, 0xa0, 0x49, 0x6e, 0x64, 0x2f, 0xe1,
713 0x40, 0x04, 0x72, 0x69, 0x67, 0x68, 0x20, 0xbc, 0xa1, 0x51, 0xc0, 0x8f, 0x1f, 0xa0,
714 0x51, 0x43, 0x89, 0x21, 0x4b, 0x84, 0x1a, 0xa5, 0x85, 0x20, 0x48, 0x6f, 0xca, 0x77,
715 0x40, 0x30, 0x72, 0x41, 0x0d, 0x20, 0x61, 0x06, 0x26, 0xe2, 0x29, 0x7f, 0x08, 0x0b,
716 0xe7, 0x1b, 0x60, 0x7c, 0x40, 0xc5, 0x26, 0x72, 0xa0, 0xc6, 0x80, 0xa6, 0x72, 0x80,
717 0x20, 0x6f, 0x77, 0x6e, 0x20, 0x62, 0x65, 0xa0, 0x6e, 0xd6, 0x66, 0xe0, 0x66, 0xa0,
718 0x34, 0x6e, 0x01, 0x22, 0x72, 0x02, 0xa9, 0xc7, 0xa8, 0xfd, 0xe2, 0x15, 0x2c, 0xe2,
719 0x51, 0xe0, 0x06, 0xc3, 0x05, 0xe4, 0x11, 0x00, 0x5c, 0x01, 0x48, 0xff, 0x63, 0x1b,
720 0xc8, 0x40, 0xc1, 0xc1, 0xc1, 0x09, 0xa0, 0xb1, 0x80, 0x44, 0xe2, 0xb3, 0x01, 0x7e,
721 0x0b, 0xe3, 0x7d, 0x62, 0x23, 0x66, 0x66, 0x95, 0x64, 0x65, 0x66, 0x65, 0x06, 0x6e,
722 0xe0, 0xcb, 0x61, 0x2d, 0x68, 0x6f, 0x6c, 0x64, 0x20, 0xac, 0x65, 0x61, 0x60, 0x8a,
723 0x88, 0x09, 0x20, 0x00, 0x70, 0x6d, 0x22, 0x91, 0x9f, 0x61, 0x5f, 0xe1, 0x0d, 0xa6,
724 0x28, 0xc4, 0x10, 0xc0, 0x79, 0x75, 0x72, 0x23, 0x94, 0x21, 0xe3, 0x79, 0x6c, 0x61,
725 0x69, 0x6d, 0xc0, 0x2a, 0x73, 0x73, 0x08, 0x65, 0x72, 0x74, 0xc0, 0x67, 0x61, 0x67,
726 0x61, 0x69, 0x3c, 0x6e, 0x73, 0xa0, 0x9c, 0x02, 0x24, 0x49, 0x0b, 0x40, 0x9a, 0x72,
727 0x65, 0x10, 0x61, 0x73, 0x6f, 0x6e, 0x07, 0x1a, 0x79, 0x6f, 0x75, 0xbf, 0xe0, 0x93,
728 0x66, 0x2a, 0xe1, 0x0d, 0xc2, 0x06, 0x84, 0xdb, 0xa2, 0x51, 0x61, 0xa7, 0x51, 0x03,
729 0x66, 0x11, 0x03, 0x58, 0x45, 0x4e, 0x44, 0x20, 0x4f, 0x46, 0x40, 0x20, 0x54, 0x45,
730 0x52, 0x4d, 0x53, 0xa0, 0xeb, 0x44, 0x23, 0xe8, 0xed, 0x42, 0xbc, 0x41, 0x50, 0x50,
731 0x40, 0x04, 0x49, 0x58, 0x2e, 0x3a, 0x41, 0x38, 0xe1, 0x21, 0x21, 0xaa, 0x79, 0x01,
732 0x52, 0x20, 0x41, 0xfa, 0x70, 0x00, 0x1f, 0x65, 0x25, 0xc2, 0x61, 0x03, 0x42, 0x11,
733 0x81, 0x7a, 0x63, 0x0b, 0xf9, 0xa0, 0xfa, 0x54, 0x6f, 0x22, 0x58, 0x0f, 0x03, 0xc3,
734 0x2b, 0x06, 0x03, 0x00, 0x18, 0x0c, 0x74, 0x74, 0x71, 0x14, 0x61, 0x30, 0x66, 0x6f,
735 0x6c, 0x6c, 0x4c, 0x6f, 0x77, 0x90, 0x4b, 0x44, 0x0e, 0x62, 0x6f, 0x50, 0x33, 0x72,
736 0xe0, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x51, 0x1d, 0x10, 0x68, 0x23, 0x7d, 0x01, 0x52,
737 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x20, 0x2f, 0x00, 0x62, 0xc0, 0x3e, 0xb0,
738 0x13, 0x10, 0x12, 0x62, 0xf0, 0x4f, 0x6b, 0x65, 0x21, 0x90, 0x29, 0x22, 0x5b, 0x5d,
739 0x22, 0x34, 0x04, 0x72, 0x65, 0xed, 0xf0, 0x03, 0x63, 0xf0, 0x01, 0xb1, 0x80, 0x20,
740 0x72, 0x07, 0xc1, 0x24, 0x52, 0x55, 0x48, 0x69, 0x66, 0x79, 0x61, 0x52, 0x69, 0x6e,
741 0xf0, 0x1a, 0x6d, 0x01, 0x22, 0x2e, 0x2e, 0x20, 0x28, 0x44, 0x6f, 0x6e, 0x27, 0x3e,
742 0x74, 0xd0, 0x5e, 0x41, 0x84, 0x05, 0x5d, 0xc1, 0x09, 0xc5, 0x05, 0x21, 0x29, 0x00,
743 0x20, 0x20, 0x54, 0x68, 0x65, 0x20, 0x74, 0x65, 0x24, 0x78, 0x74, 0x80, 0x60, 0x6f,
744 0x75, 0x90, 0x20, 0x62, 0x65, 0x79, 0x77, 0x08, 0x69, 0x6e, 0xe2, 0x09, 0xe0, 0x12,
745 0x65, 0x7b, 0x94, 0x08, 0x63, 0x06, 0x6f, 0x90, 0x4a, 0x40, 0x71, 0x73, 0x79, 0x6e,
746 0x74, 0x61, 0x1e, 0x78, 0x12, 0x7f, 0x42, 0x0f, 0x91, 0x41, 0x03, 0x08, 0x2e, 0x20,
747 0x57, 0x71, 0xf0, 0x3b, 0x6c, 0x73, 0x6f, 0x30, 0x2d, 0xd3, 0x02, 0x90, 0x67, 0x68,
748 0x36, 0x61, 0xe0, 0x68, 0x24, 0x04, 0x66, 0xb1, 0x02, 0x00, 0x38, 0x63, 0x6c, 0x51,
749 0xd0, 0x7d, 0x20, 0x6e, 0x61, 0xf2, 0x7d, 0x64, 0x40, 0x6d, 0x73, 0x38, 0x63, 0x72,
750 0x69, 0xb0, 0x48, 0x60, 0x2f, 0x90, 0x2e, 0x70, 0x75, 0xfa, 0x72, 0xf0, 0x4b, 0x65,
751 0x00, 0x33, 0x65, 0x0c, 0x12, 0x33, 0xc0, 0x06, 0x64, 0x04, 0x6a, 0x73, 0x81, 0x03,
752 0x22, 0x30, 0x85, 0x6e, 0x41, 0x27, 0x31, 0x58, 0x22, 0xc3, 0xb1, 0x71, 0xd1, 0x08,
753 0x63, 0x6f, 0x70, 0x79, 0xe2, 0x3d, 0x04, 0x17, 0x33, 0x62, 0x0a, 0x80, 0x27, 0x69,
754 0x65, 0x76, 0x96, 0xf1, 0x68, 0x69, 0x66, 0x0f, 0xc0, 0x75, 0xb1, 0x59, 0x92, 0x3f,
755 0x22, 0x0f, 0x69, 0x72, 0x64, 0x2d, 0x10, 0x70, 0x61, 0x72, 0x74, 0xb0, 0x77, 0x72,
756 0x63, 0x68, 0x50, 0x69, 0x76, 0x65, 0x73, 0xc3, 0x20, 0x43, 0x16, 0x05, 0x5b, 0xe2,
757 0x79, 0x00, 0x00, 0x5d, 0x20, 0x5b, 0x72, 0x0b, 0x70, 0x0a, 0xb7, 0x06, 0xb1, 0x10,
758 0x19, 0x65, 0x72, 0x5d, 0x72, 0x27, 0x94, 0x43, 0x64, 0xb6, 0x87, 0x82, 0x65, 0xfc,
759 0x26, 0x2c, 0x20, 0x56, 0x65, 0x72, 0xe1, 0x89, 0x40, 0x20, 0x32, 0x2e, 0x30, 0x20,
760 0x28, 0x41, 0x0b, 0x22, 0xb1, 0x44, 0x03, 0x22, 0x29, 0x3b, 0x11, 0x0e, 0x40, 0x1e,
761 0x20, 0xb1, 0x52, 0x38, 0x6e, 0x6f, 0x74, 0x22, 0x6d, 0x12, 0x6f, 0xa2, 0x13, 0x65,
762 0x78, 0xff, 0x21, 0x5b, 0x50, 0x11, 0x61, 0x63, 0xe0, 0xa2, 0xa2, 0x51, 0x82, 0x21,
763 0x61, 0x04, 0x54, 0x04, 0x8e, 0x2e, 0x31, 0x04, 0xa1, 0x40, 0x31, 0x04, 0x6f, 0x62,
764 0x74, 0x20, 0x39, 0xd4, 0x20, 0x61, 0x00, 0x03, 0x70, 0x10, 0x35, 0x66, 0xb2, 0x1d,
765 0x84, 0x02, 0x18, 0x20, 0x61, 0x74, 0x22, 0x0b, 0x41, 0xac, 0x68, 0x74, 0x74, 0x00,
766 0x70, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x82, 0x61, 0xe2, 0x31, 0x2e, 0x6f,
767 0x72, 0x67, 0x2f, 0x20, 0x88, 0x01, 0x41, 0x93, 0x73, 0x2f, 0x4c, 0x49, 0x43, 0x45,
768 0x4e, 0xd8, 0x53, 0x45, 0x2d, 0x20, 0x0b, 0x22, 0x03, 0x55, 0x1f, 0x8b, 0xf1, 0x35,
769 0x0f, 0x18, 0x8b, 0x50, 0x1e, 0xbf, 0x87, 0x31, 0xad, 0x73, 0x6f, 0x66, 0x74, 0xfd,
770 0x20, 0x3e, 0x65, 0x51, 0x0a, 0xd6, 0x9f, 0xf0, 0x2d, 0xb5, 0x9a, 0x87, 0x39, 0x50,
771 0x9b, 0xff, 0x09, 0x02, 0xc0, 0x21, 0x1f, 0xb8, 0xb0, 0x0b, 0xef, 0xb7, 0xef, 0xb7,
772 0xef, 0xb7, 0xe6, 0xb7, 0xf6, 0x20, 0x84, 0xb7, 0x62, 0x13, 0x53, 0xa0, 0x67, 0xa8,
773 0x14, 0x46, 0x2e, 0x62, 0x8d, 0x81, 0x30, 0x23, 0x20, 0x6c, 0x61, 0x6e, 0x67, 0x75,
774 0x40, 0x7f, 0xc0, 0x20, 0x67, 0x6f, 0x76, 0x65, 0x72, 0xa2, 0xae, 0x09, 0xa7, 0xb7,
775 0xb0, 0x55, 0x71, 0x0d, 0xf7, 0xba, 0x73, 0x78, 0x20, 0xf6, 0x19, 0x00, 0x0f, 0x00,
776 0xff, 0x1f, 0x01, 0x1f, 0x01, 0x1f, 0x01, 0x1f, 0x01, 0x1f, 0x01, 0x1f, 0x01, 0x1f,
777 0x01, 0x1f, 0x01, 0xff, 0x1f, 0x01, 0x1f, 0x01, 0x1f, 0x01, 0x1f, 0x01, 0x1f, 0x01,
778 0x1f, 0x01, 0x1f, 0x01, 0x1f, 0x01, 0xff, 0x1f, 0x01, 0x1f, 0x01, 0x1f, 0x01, 0x1f,
779 0x01, 0x1f, 0x01, 0x1f, 0x01, 0x1f, 0x01, 0x1f, 0x01, 0xff, 0x1f, 0x01, 0x1f, 0x01,
780 0x1f, 0x01, 0x1f, 0x01, 0x1f, 0x01, 0x1f, 0x01, 0x1f, 0x01, 0x1f, 0x01, 0xff, 0x1f,
781 0x01, 0x1f, 0x01, 0x1f, 0x01, 0x1f, 0x01, 0x1f, 0x01, 0x1f, 0x01, 0x1f, 0x01, 0x1f,
782 0x01, 0xff, 0x1f, 0x01, 0x1f, 0x01, 0x1f, 0x01, 0x1f, 0x01, 0x1f, 0x01, 0x1f, 0x01,
783 0x1f, 0x01, 0x1f, 0x01, 0x07, 0x1f, 0x01, 0x1f, 0x01, 0x18, 0x01, 0x03, 0xb0, 0x02,
784 0x00, 0xfc, 0x0f, 0x03, 0xb0, 0x02, 0x00, 0xfc, 0x0f, 0x03, 0xb0, 0x02, 0x00, 0xfc,
785 0x0f, 0x03, 0xb0, 0x02, 0x00, 0xfc, 0x0f, 0x03, 0xb0, 0x02, 0x00, 0xfc, 0x0f, 0x03,
786 0xb0, 0x02, 0x00, 0xfc, 0x0f, 0x03, 0xb0, 0x02, 0x00, 0xfc, 0x0f, 0x03, 0xb0, 0x02,
787 0x00, 0xfc, 0x0f, 0x03, 0xb0, 0x02, 0x00, 0xfc, 0x0f, 0x03, 0xb0, 0x02, 0x00, 0xfc,
788 0x0f, 0x03, 0xb0, 0x02, 0x00, 0xfc, 0x0f, 0x03, 0xb0, 0x02, 0x00, 0xfc, 0x0f, 0x03,
789 0xb0, 0x02, 0x00, 0xfc, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
790 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
791 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
792 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
793 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
794 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
795 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
796 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
797 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
798 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
799 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
800 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
801 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
802 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
803 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
804 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
805 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
806 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
807 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
808 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
809 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
810 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
811 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
812 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
813 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
814 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
815 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
816 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
817 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
818 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
819 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
820 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
821 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
822 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
823 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
824 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
825 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
826 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
827 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
828 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
829 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
830 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
831 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
832 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
833 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
834 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
835 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
836 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
837 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
838 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
839 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
840 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
841 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
842 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
843 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
844 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
845 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
846 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
847 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
848 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
849 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
850 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
851 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
852 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
853 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
854 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
855 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
856 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
857 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
858 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
859 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
860 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
861 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
862 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
863 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
864 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
865 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
866 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
867 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
868 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
869 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
870 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
871 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
872 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
873 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
874 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
875 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
876 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
877 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
878 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
879 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
880 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
881 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
882 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
883 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
884 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
885 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
886 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
887 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
888 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
889 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
890 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
891 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
892 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
893 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
894 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
895 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
896 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
897 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
898 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
899 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
900 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
901 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
902 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
903 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
904 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
905 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
906 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
907 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
908 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
909 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
910 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
911 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
912 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
913 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
914 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
915 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
916 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
917 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
918 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
919 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
920 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
921 0x00, 0x00,
922 ];
923 }
924
925 #[test]
926 fn test_decompress() -> Result<(), ErrorTrace> {
927 let mut test_context: Lznt1Context = Lznt1Context::new();
928
929 let test_data: Vec<u8> = get_test_data();
930 let mut uncompressed_data: Vec<u8> = vec![0; 65536];
931 test_context.decompress(&test_data, &mut uncompressed_data)?;
932 assert_eq!(test_context.uncompressed_data_size, 65536);
933
934 let expected_data: Vec<u8> = match fs::read("../LICENSE") {
935 Ok(data) => data,
936 Err(error) => {
937 return Err(keramics_core::error_trace_new_with_error!(
938 "Unable read test reference file",
939 error
940 ));
941 }
942 };
943 assert_eq!(&uncompressed_data[0..11358], &expected_data);
944
945 Ok(())
946 }
947}