1#![doc(hidden)]
2use crate::traits::{BE, BitRead, BitWrite, LE};
6use num_primitive::PrimitiveNumber;
7pub const READ_BITS: usize = 12;
9pub const WRITE_MAX: u64 = 1023;
11
12#[inline(always)]
17pub fn read_table_le<B: BitRead<LE>>(backend: &mut B) -> Option<(u64, usize)> {
18 if let Ok(idx) = backend.peek_bits(READ_BITS) {
19 let idx: usize = idx.as_to();
20 let len = READ_LEN_LE[idx];
21 if len != MISSING_VALUE_LEN_LE {
22 backend.skip_bits_after_peek(len as usize);
23 return Some((READ_LE[idx] as u64, len as usize));
24 }
25 }
26 None
27}
28
29#[inline(always)]
34pub fn write_table_le<B: BitWrite<LE>>(backend: &mut B, n: u64) -> Result<Option<usize>, B::Error> {
35 if n >= WRITE_LE.len() as u64 {
37 return Ok(None);
38 }
39 let n = n as usize;
40 let len = WRITE_LEN_LE[n] as usize;
41 backend.write_bits(WRITE_LE[n] as u64, len)?;
42 Ok(Some(len))
43}
44
45#[inline(always)]
50pub fn read_table_be<B: BitRead<BE>>(backend: &mut B) -> Option<(u64, usize)> {
51 if let Ok(idx) = backend.peek_bits(READ_BITS) {
52 let idx: usize = idx.as_to();
53 let len = READ_LEN_BE[idx];
54 if len != MISSING_VALUE_LEN_BE {
55 backend.skip_bits_after_peek(len as usize);
56 return Some((READ_BE[idx] as u64, len as usize));
57 }
58 }
59 None
60}
61
62#[inline(always)]
67pub fn write_table_be<B: BitWrite<BE>>(backend: &mut B, n: u64) -> Result<Option<usize>, B::Error> {
68 if n >= WRITE_BE.len() as u64 {
70 return Ok(None);
71 }
72 let n = n as usize;
73 let len = WRITE_LEN_BE[n] as usize;
74 backend.write_bits(WRITE_BE[n] as u64, len)?;
75 Ok(Some(len))
76}
77pub const MISSING_VALUE_LEN_BE: u8 = 13;
79pub const READ_BE: &[u16] = &[
81 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
82 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
83 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
84 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
85 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
86 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
87 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
88 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
89 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
90 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
91 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
92 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
93 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
94 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
95 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
96 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
97 63, 63, 64, 64, 65, 65, 66, 66, 67, 67, 68, 68, 69, 69, 70, 70, 71, 71, 72, 72, 73, 73, 74, 74,
98 75, 75, 76, 76, 77, 77, 78, 78, 79, 79, 80, 80, 81, 81, 82, 82, 83, 83, 84, 84, 85, 85, 86, 86,
99 87, 87, 88, 88, 89, 89, 90, 90, 91, 91, 92, 92, 93, 93, 94, 94, 95, 95, 96, 96, 97, 97, 98, 98,
100 99, 99, 100, 100, 101, 101, 102, 102, 103, 103, 104, 104, 105, 105, 106, 106, 107, 107, 108,
101 108, 109, 109, 110, 110, 111, 111, 112, 112, 113, 113, 114, 114, 115, 115, 116, 116, 117, 117,
102 118, 118, 119, 119, 120, 120, 121, 121, 122, 122, 123, 123, 124, 124, 125, 125, 126, 126, 127,
103 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146,
104 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165,
105 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184,
106 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203,
107 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222,
108 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241,
109 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260,
110 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279,
111 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298,
112 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317,
113 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336,
114 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355,
115 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374,
116 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393,
117 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412,
118 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431,
119 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450,
120 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469,
121 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488,
122 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507,
123 508, 509, 510, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
124 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
125 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
126 9, 9, 9, 9, 9, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
127 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
128 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 12, 12, 12, 12,
129 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
130 12, 12, 12, 12, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
131 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
132 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 15, 15, 15, 15,
133 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
134 16, 16, 16, 16, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 18, 18, 18, 18,
135 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
136 19, 19, 19, 19, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 21, 21, 21, 21,
137 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22,
138 22, 22, 22, 22, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 24, 24, 24, 24,
139 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25,
140 25, 25, 25, 25, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 27, 27, 27, 27,
141 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28,
142 28, 28, 28, 28, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 30, 30, 30, 30,
143 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31,
144 31, 31, 31, 31, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 33, 33, 33, 33,
145 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34,
146 34, 34, 34, 34, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 36, 36, 36, 36,
147 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37,
148 37, 37, 37, 37, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 39, 39, 39, 39,
149 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
150 40, 40, 40, 40, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 42, 42, 42, 42,
151 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43,
152 43, 43, 43, 43, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 45, 45, 45, 45,
153 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
154 46, 46, 46, 46, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 48, 48, 48, 48,
155 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
156 49, 49, 49, 49, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 51, 51, 51, 51,
157 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
158 52, 52, 52, 52, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 54, 54, 54, 54,
159 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
160 55, 55, 55, 55, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 57, 57, 57, 57,
161 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
162 58, 58, 58, 58, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 60, 60, 60, 60,
163 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61,
164 61, 61, 61, 61, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 0, 0, 0, 0, 0,
165 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
166 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
167 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
168 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
169 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
170 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
171 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
172 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
173 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
174 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
175 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
176 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
177 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
178 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
179 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
180 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1,
181 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
182 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
183 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
184 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
185 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
186 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
187 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
188 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2,
189 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
190 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
191 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
192 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
193 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
194 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
195 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
196 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3,
197 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
198 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
199 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
200 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
201 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
202 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
203 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
204 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4,
205 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
206 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
207 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
208 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
209 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
210 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
211 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
212 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5,
213 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
214 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
215 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
216 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
217 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
218 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
219 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
220 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6,
221 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
222 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
223 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
224 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
225 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
226 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
227 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
228 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
229];
230pub const READ_LEN_BE: &[u8] = &[
232 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
233 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
234 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
235 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
236 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
237 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
238 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
239 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
240 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
241 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
242 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
243 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
244 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
245 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
246 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
247 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
248 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
249 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
250 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
251 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
252 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
253 13, 13, 13, 13, 13, 13, 13, 13, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
254 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
255 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
256 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
257 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
258 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 12, 12, 12, 12, 12, 12, 12, 12,
259 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
260 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
261 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
262 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
263 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
264 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
265 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
266 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
267 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
268 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
269 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
270 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
271 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
272 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
273 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
274 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
275 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
276 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
277 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
278 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
279 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
280 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
281 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
282 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
283 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
284 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
285 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
286 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
287 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
288 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
289 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
290 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
291 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
292 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
293 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
294 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
295 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
296 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
297 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
298 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
299 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
300 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
301 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
302 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
303 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
304 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
305 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
306 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
307 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
308 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
309 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
310 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
311 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
312 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
313 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
314 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
315 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
316 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
317 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
318 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
319 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
320 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
321 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
322 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
323 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
324 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
325 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
326 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
327 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
328 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
329 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
330 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
331 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
332 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
333 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
334 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
335 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
336 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
337 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
338 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
339 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
340 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
341 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
342 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
343 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
344 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
345 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
346 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
347 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
348 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
349 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
350 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
351 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
352 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
353 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
354 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
355 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
356 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
357 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
358 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
359 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
360 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
361 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
362 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
363 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
364 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
365 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
366 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
367 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
368 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
369 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
370 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
371];
372pub const MISSING_VALUE_LEN_LE: u8 = 13;
374pub const READ_LE: &[u16] = &[
376 0, 0, 7, 1, 63, 3, 8, 5, 0, 0, 9, 2, 64, 4, 10, 6, 0, 0, 11, 1, 65, 3, 12, 5, 0, 0, 13, 2, 66,
377 4, 14, 6, 0, 0, 15, 1, 67, 3, 17, 5, 0, 0, 19, 2, 68, 4, 21, 6, 0, 0, 23, 1, 69, 3, 25, 5, 0,
378 0, 27, 2, 70, 4, 29, 6, 0, 0, 31, 1, 71, 3, 33, 5, 0, 0, 35, 2, 72, 4, 37, 6, 0, 0, 39, 1, 73,
379 3, 41, 5, 0, 0, 43, 2, 74, 4, 45, 6, 0, 0, 47, 1, 75, 3, 49, 5, 0, 0, 51, 2, 76, 4, 53, 6, 0,
380 0, 55, 1, 77, 3, 57, 5, 0, 0, 59, 2, 78, 4, 61, 6, 0, 0, 7, 1, 79, 3, 8, 5, 0, 0, 9, 2, 80, 4,
381 10, 6, 0, 0, 11, 1, 81, 3, 12, 5, 0, 0, 13, 2, 82, 4, 14, 6, 0, 0, 16, 1, 83, 3, 18, 5, 0, 0,
382 20, 2, 84, 4, 22, 6, 0, 0, 24, 1, 85, 3, 26, 5, 0, 0, 28, 2, 86, 4, 30, 6, 0, 0, 32, 1, 87, 3,
383 34, 5, 0, 0, 36, 2, 88, 4, 38, 6, 0, 0, 40, 1, 89, 3, 42, 5, 0, 0, 44, 2, 90, 4, 46, 6, 0, 0,
384 48, 1, 91, 3, 50, 5, 0, 0, 52, 2, 92, 4, 54, 6, 0, 0, 56, 1, 93, 3, 58, 5, 0, 0, 60, 2, 94, 4,
385 62, 6, 0, 0, 7, 1, 95, 3, 8, 5, 0, 0, 9, 2, 96, 4, 10, 6, 0, 0, 11, 1, 97, 3, 12, 5, 0, 0, 13,
386 2, 98, 4, 14, 6, 0, 0, 15, 1, 99, 3, 17, 5, 0, 0, 19, 2, 100, 4, 21, 6, 0, 0, 23, 1, 101, 3,
387 25, 5, 0, 0, 27, 2, 102, 4, 29, 6, 0, 0, 31, 1, 103, 3, 33, 5, 0, 0, 35, 2, 104, 4, 37, 6, 0,
388 0, 39, 1, 105, 3, 41, 5, 0, 0, 43, 2, 106, 4, 45, 6, 0, 0, 47, 1, 107, 3, 49, 5, 0, 0, 51, 2,
389 108, 4, 53, 6, 0, 0, 55, 1, 109, 3, 57, 5, 0, 0, 59, 2, 110, 4, 61, 6, 0, 0, 7, 1, 111, 3, 8,
390 5, 0, 0, 9, 2, 112, 4, 10, 6, 0, 0, 11, 1, 113, 3, 12, 5, 0, 0, 13, 2, 114, 4, 14, 6, 0, 0, 16,
391 1, 115, 3, 18, 5, 0, 0, 20, 2, 116, 4, 22, 6, 0, 0, 24, 1, 117, 3, 26, 5, 0, 0, 28, 2, 118, 4,
392 30, 6, 0, 0, 32, 1, 119, 3, 34, 5, 0, 0, 36, 2, 120, 4, 38, 6, 0, 0, 40, 1, 121, 3, 42, 5, 0,
393 0, 44, 2, 122, 4, 46, 6, 0, 0, 48, 1, 123, 3, 50, 5, 0, 0, 52, 2, 124, 4, 54, 6, 0, 0, 56, 1,
394 125, 3, 58, 5, 0, 0, 60, 2, 126, 4, 62, 6, 0, 0, 7, 1, 127, 3, 8, 5, 0, 0, 9, 2, 129, 4, 10, 6,
395 0, 0, 11, 1, 131, 3, 12, 5, 0, 0, 13, 2, 133, 4, 14, 6, 0, 0, 15, 1, 135, 3, 17, 5, 0, 0, 19,
396 2, 137, 4, 21, 6, 0, 0, 23, 1, 139, 3, 25, 5, 0, 0, 27, 2, 141, 4, 29, 6, 0, 0, 31, 1, 143, 3,
397 33, 5, 0, 0, 35, 2, 145, 4, 37, 6, 0, 0, 39, 1, 147, 3, 41, 5, 0, 0, 43, 2, 149, 4, 45, 6, 0,
398 0, 47, 1, 151, 3, 49, 5, 0, 0, 51, 2, 153, 4, 53, 6, 0, 0, 55, 1, 155, 3, 57, 5, 0, 0, 59, 2,
399 157, 4, 61, 6, 0, 0, 7, 1, 159, 3, 8, 5, 0, 0, 9, 2, 161, 4, 10, 6, 0, 0, 11, 1, 163, 3, 12, 5,
400 0, 0, 13, 2, 165, 4, 14, 6, 0, 0, 16, 1, 167, 3, 18, 5, 0, 0, 20, 2, 169, 4, 22, 6, 0, 0, 24,
401 1, 171, 3, 26, 5, 0, 0, 28, 2, 173, 4, 30, 6, 0, 0, 32, 1, 175, 3, 34, 5, 0, 0, 36, 2, 177, 4,
402 38, 6, 0, 0, 40, 1, 179, 3, 42, 5, 0, 0, 44, 2, 181, 4, 46, 6, 0, 0, 48, 1, 183, 3, 50, 5, 0,
403 0, 52, 2, 185, 4, 54, 6, 0, 0, 56, 1, 187, 3, 58, 5, 0, 0, 60, 2, 189, 4, 62, 6, 0, 0, 7, 1,
404 191, 3, 8, 5, 0, 0, 9, 2, 193, 4, 10, 6, 0, 0, 11, 1, 195, 3, 12, 5, 0, 0, 13, 2, 197, 4, 14,
405 6, 0, 0, 15, 1, 199, 3, 17, 5, 0, 0, 19, 2, 201, 4, 21, 6, 0, 0, 23, 1, 203, 3, 25, 5, 0, 0,
406 27, 2, 205, 4, 29, 6, 0, 0, 31, 1, 207, 3, 33, 5, 0, 0, 35, 2, 209, 4, 37, 6, 0, 0, 39, 1, 211,
407 3, 41, 5, 0, 0, 43, 2, 213, 4, 45, 6, 0, 0, 47, 1, 215, 3, 49, 5, 0, 0, 51, 2, 217, 4, 53, 6,
408 0, 0, 55, 1, 219, 3, 57, 5, 0, 0, 59, 2, 221, 4, 61, 6, 0, 0, 7, 1, 223, 3, 8, 5, 0, 0, 9, 2,
409 225, 4, 10, 6, 0, 0, 11, 1, 227, 3, 12, 5, 0, 0, 13, 2, 229, 4, 14, 6, 0, 0, 16, 1, 231, 3, 18,
410 5, 0, 0, 20, 2, 233, 4, 22, 6, 0, 0, 24, 1, 235, 3, 26, 5, 0, 0, 28, 2, 237, 4, 30, 6, 0, 0,
411 32, 1, 239, 3, 34, 5, 0, 0, 36, 2, 241, 4, 38, 6, 0, 0, 40, 1, 243, 3, 42, 5, 0, 0, 44, 2, 245,
412 4, 46, 6, 0, 0, 48, 1, 247, 3, 50, 5, 0, 0, 52, 2, 249, 4, 54, 6, 0, 0, 56, 1, 251, 3, 58, 5,
413 0, 0, 60, 2, 253, 4, 62, 6, 0, 0, 7, 1, 255, 3, 8, 5, 0, 0, 9, 2, 257, 4, 10, 6, 0, 0, 11, 1,
414 259, 3, 12, 5, 0, 0, 13, 2, 261, 4, 14, 6, 0, 0, 15, 1, 263, 3, 17, 5, 0, 0, 19, 2, 265, 4, 21,
415 6, 0, 0, 23, 1, 267, 3, 25, 5, 0, 0, 27, 2, 269, 4, 29, 6, 0, 0, 31, 1, 271, 3, 33, 5, 0, 0,
416 35, 2, 273, 4, 37, 6, 0, 0, 39, 1, 275, 3, 41, 5, 0, 0, 43, 2, 277, 4, 45, 6, 0, 0, 47, 1, 279,
417 3, 49, 5, 0, 0, 51, 2, 281, 4, 53, 6, 0, 0, 55, 1, 283, 3, 57, 5, 0, 0, 59, 2, 285, 4, 61, 6,
418 0, 0, 7, 1, 287, 3, 8, 5, 0, 0, 9, 2, 289, 4, 10, 6, 0, 0, 11, 1, 291, 3, 12, 5, 0, 0, 13, 2,
419 293, 4, 14, 6, 0, 0, 16, 1, 295, 3, 18, 5, 0, 0, 20, 2, 297, 4, 22, 6, 0, 0, 24, 1, 299, 3, 26,
420 5, 0, 0, 28, 2, 301, 4, 30, 6, 0, 0, 32, 1, 303, 3, 34, 5, 0, 0, 36, 2, 305, 4, 38, 6, 0, 0,
421 40, 1, 307, 3, 42, 5, 0, 0, 44, 2, 309, 4, 46, 6, 0, 0, 48, 1, 311, 3, 50, 5, 0, 0, 52, 2, 313,
422 4, 54, 6, 0, 0, 56, 1, 315, 3, 58, 5, 0, 0, 60, 2, 317, 4, 62, 6, 0, 0, 7, 1, 319, 3, 8, 5, 0,
423 0, 9, 2, 321, 4, 10, 6, 0, 0, 11, 1, 323, 3, 12, 5, 0, 0, 13, 2, 325, 4, 14, 6, 0, 0, 15, 1,
424 327, 3, 17, 5, 0, 0, 19, 2, 329, 4, 21, 6, 0, 0, 23, 1, 331, 3, 25, 5, 0, 0, 27, 2, 333, 4, 29,
425 6, 0, 0, 31, 1, 335, 3, 33, 5, 0, 0, 35, 2, 337, 4, 37, 6, 0, 0, 39, 1, 339, 3, 41, 5, 0, 0,
426 43, 2, 341, 4, 45, 6, 0, 0, 47, 1, 343, 3, 49, 5, 0, 0, 51, 2, 345, 4, 53, 6, 0, 0, 55, 1, 347,
427 3, 57, 5, 0, 0, 59, 2, 349, 4, 61, 6, 0, 0, 7, 1, 351, 3, 8, 5, 0, 0, 9, 2, 353, 4, 10, 6, 0,
428 0, 11, 1, 355, 3, 12, 5, 0, 0, 13, 2, 357, 4, 14, 6, 0, 0, 16, 1, 359, 3, 18, 5, 0, 0, 20, 2,
429 361, 4, 22, 6, 0, 0, 24, 1, 363, 3, 26, 5, 0, 0, 28, 2, 365, 4, 30, 6, 0, 0, 32, 1, 367, 3, 34,
430 5, 0, 0, 36, 2, 369, 4, 38, 6, 0, 0, 40, 1, 371, 3, 42, 5, 0, 0, 44, 2, 373, 4, 46, 6, 0, 0,
431 48, 1, 375, 3, 50, 5, 0, 0, 52, 2, 377, 4, 54, 6, 0, 0, 56, 1, 379, 3, 58, 5, 0, 0, 60, 2, 381,
432 4, 62, 6, 0, 0, 7, 1, 383, 3, 8, 5, 0, 0, 9, 2, 385, 4, 10, 6, 0, 0, 11, 1, 387, 3, 12, 5, 0,
433 0, 13, 2, 389, 4, 14, 6, 0, 0, 15, 1, 391, 3, 17, 5, 0, 0, 19, 2, 393, 4, 21, 6, 0, 0, 23, 1,
434 395, 3, 25, 5, 0, 0, 27, 2, 397, 4, 29, 6, 0, 0, 31, 1, 399, 3, 33, 5, 0, 0, 35, 2, 401, 4, 37,
435 6, 0, 0, 39, 1, 403, 3, 41, 5, 0, 0, 43, 2, 405, 4, 45, 6, 0, 0, 47, 1, 407, 3, 49, 5, 0, 0,
436 51, 2, 409, 4, 53, 6, 0, 0, 55, 1, 411, 3, 57, 5, 0, 0, 59, 2, 413, 4, 61, 6, 0, 0, 7, 1, 415,
437 3, 8, 5, 0, 0, 9, 2, 417, 4, 10, 6, 0, 0, 11, 1, 419, 3, 12, 5, 0, 0, 13, 2, 421, 4, 14, 6, 0,
438 0, 16, 1, 423, 3, 18, 5, 0, 0, 20, 2, 425, 4, 22, 6, 0, 0, 24, 1, 427, 3, 26, 5, 0, 0, 28, 2,
439 429, 4, 30, 6, 0, 0, 32, 1, 431, 3, 34, 5, 0, 0, 36, 2, 433, 4, 38, 6, 0, 0, 40, 1, 435, 3, 42,
440 5, 0, 0, 44, 2, 437, 4, 46, 6, 0, 0, 48, 1, 439, 3, 50, 5, 0, 0, 52, 2, 441, 4, 54, 6, 0, 0,
441 56, 1, 443, 3, 58, 5, 0, 0, 60, 2, 445, 4, 62, 6, 0, 0, 7, 1, 447, 3, 8, 5, 0, 0, 9, 2, 449, 4,
442 10, 6, 0, 0, 11, 1, 451, 3, 12, 5, 0, 0, 13, 2, 453, 4, 14, 6, 0, 0, 15, 1, 455, 3, 17, 5, 0,
443 0, 19, 2, 457, 4, 21, 6, 0, 0, 23, 1, 459, 3, 25, 5, 0, 0, 27, 2, 461, 4, 29, 6, 0, 0, 31, 1,
444 463, 3, 33, 5, 0, 0, 35, 2, 465, 4, 37, 6, 0, 0, 39, 1, 467, 3, 41, 5, 0, 0, 43, 2, 469, 4, 45,
445 6, 0, 0, 47, 1, 471, 3, 49, 5, 0, 0, 51, 2, 473, 4, 53, 6, 0, 0, 55, 1, 475, 3, 57, 5, 0, 0,
446 59, 2, 477, 4, 61, 6, 0, 0, 7, 1, 479, 3, 8, 5, 0, 0, 9, 2, 481, 4, 10, 6, 0, 0, 11, 1, 483, 3,
447 12, 5, 0, 0, 13, 2, 485, 4, 14, 6, 0, 0, 16, 1, 487, 3, 18, 5, 0, 0, 20, 2, 489, 4, 22, 6, 0,
448 0, 24, 1, 491, 3, 26, 5, 0, 0, 28, 2, 493, 4, 30, 6, 0, 0, 32, 1, 495, 3, 34, 5, 0, 0, 36, 2,
449 497, 4, 38, 6, 0, 0, 40, 1, 499, 3, 42, 5, 0, 0, 44, 2, 501, 4, 46, 6, 0, 0, 48, 1, 503, 3, 50,
450 5, 0, 0, 52, 2, 505, 4, 54, 6, 0, 0, 56, 1, 507, 3, 58, 5, 0, 0, 60, 2, 509, 4, 62, 6, 0, 0, 7,
451 1, 63, 3, 8, 5, 0, 0, 9, 2, 64, 4, 10, 6, 0, 0, 11, 1, 65, 3, 12, 5, 0, 0, 13, 2, 66, 4, 14, 6,
452 0, 0, 15, 1, 67, 3, 17, 5, 0, 0, 19, 2, 68, 4, 21, 6, 0, 0, 23, 1, 69, 3, 25, 5, 0, 0, 27, 2,
453 70, 4, 29, 6, 0, 0, 31, 1, 71, 3, 33, 5, 0, 0, 35, 2, 72, 4, 37, 6, 0, 0, 39, 1, 73, 3, 41, 5,
454 0, 0, 43, 2, 74, 4, 45, 6, 0, 0, 47, 1, 75, 3, 49, 5, 0, 0, 51, 2, 76, 4, 53, 6, 0, 0, 55, 1,
455 77, 3, 57, 5, 0, 0, 59, 2, 78, 4, 61, 6, 0, 0, 7, 1, 79, 3, 8, 5, 0, 0, 9, 2, 80, 4, 10, 6, 0,
456 0, 11, 1, 81, 3, 12, 5, 0, 0, 13, 2, 82, 4, 14, 6, 0, 0, 16, 1, 83, 3, 18, 5, 0, 0, 20, 2, 84,
457 4, 22, 6, 0, 0, 24, 1, 85, 3, 26, 5, 0, 0, 28, 2, 86, 4, 30, 6, 0, 0, 32, 1, 87, 3, 34, 5, 0,
458 0, 36, 2, 88, 4, 38, 6, 0, 0, 40, 1, 89, 3, 42, 5, 0, 0, 44, 2, 90, 4, 46, 6, 0, 0, 48, 1, 91,
459 3, 50, 5, 0, 0, 52, 2, 92, 4, 54, 6, 0, 0, 56, 1, 93, 3, 58, 5, 0, 0, 60, 2, 94, 4, 62, 6, 0,
460 0, 7, 1, 95, 3, 8, 5, 0, 0, 9, 2, 96, 4, 10, 6, 0, 0, 11, 1, 97, 3, 12, 5, 0, 0, 13, 2, 98, 4,
461 14, 6, 0, 0, 15, 1, 99, 3, 17, 5, 0, 0, 19, 2, 100, 4, 21, 6, 0, 0, 23, 1, 101, 3, 25, 5, 0, 0,
462 27, 2, 102, 4, 29, 6, 0, 0, 31, 1, 103, 3, 33, 5, 0, 0, 35, 2, 104, 4, 37, 6, 0, 0, 39, 1, 105,
463 3, 41, 5, 0, 0, 43, 2, 106, 4, 45, 6, 0, 0, 47, 1, 107, 3, 49, 5, 0, 0, 51, 2, 108, 4, 53, 6,
464 0, 0, 55, 1, 109, 3, 57, 5, 0, 0, 59, 2, 110, 4, 61, 6, 0, 0, 7, 1, 111, 3, 8, 5, 0, 0, 9, 2,
465 112, 4, 10, 6, 0, 0, 11, 1, 113, 3, 12, 5, 0, 0, 13, 2, 114, 4, 14, 6, 0, 0, 16, 1, 115, 3, 18,
466 5, 0, 0, 20, 2, 116, 4, 22, 6, 0, 0, 24, 1, 117, 3, 26, 5, 0, 0, 28, 2, 118, 4, 30, 6, 0, 0,
467 32, 1, 119, 3, 34, 5, 0, 0, 36, 2, 120, 4, 38, 6, 0, 0, 40, 1, 121, 3, 42, 5, 0, 0, 44, 2, 122,
468 4, 46, 6, 0, 0, 48, 1, 123, 3, 50, 5, 0, 0, 52, 2, 124, 4, 54, 6, 0, 0, 56, 1, 125, 3, 58, 5,
469 0, 0, 60, 2, 126, 4, 62, 6, 0, 0, 7, 1, 128, 3, 8, 5, 0, 0, 9, 2, 130, 4, 10, 6, 0, 0, 11, 1,
470 132, 3, 12, 5, 0, 0, 13, 2, 134, 4, 14, 6, 0, 0, 15, 1, 136, 3, 17, 5, 0, 0, 19, 2, 138, 4, 21,
471 6, 0, 0, 23, 1, 140, 3, 25, 5, 0, 0, 27, 2, 142, 4, 29, 6, 0, 0, 31, 1, 144, 3, 33, 5, 0, 0,
472 35, 2, 146, 4, 37, 6, 0, 0, 39, 1, 148, 3, 41, 5, 0, 0, 43, 2, 150, 4, 45, 6, 0, 0, 47, 1, 152,
473 3, 49, 5, 0, 0, 51, 2, 154, 4, 53, 6, 0, 0, 55, 1, 156, 3, 57, 5, 0, 0, 59, 2, 158, 4, 61, 6,
474 0, 0, 7, 1, 160, 3, 8, 5, 0, 0, 9, 2, 162, 4, 10, 6, 0, 0, 11, 1, 164, 3, 12, 5, 0, 0, 13, 2,
475 166, 4, 14, 6, 0, 0, 16, 1, 168, 3, 18, 5, 0, 0, 20, 2, 170, 4, 22, 6, 0, 0, 24, 1, 172, 3, 26,
476 5, 0, 0, 28, 2, 174, 4, 30, 6, 0, 0, 32, 1, 176, 3, 34, 5, 0, 0, 36, 2, 178, 4, 38, 6, 0, 0,
477 40, 1, 180, 3, 42, 5, 0, 0, 44, 2, 182, 4, 46, 6, 0, 0, 48, 1, 184, 3, 50, 5, 0, 0, 52, 2, 186,
478 4, 54, 6, 0, 0, 56, 1, 188, 3, 58, 5, 0, 0, 60, 2, 190, 4, 62, 6, 0, 0, 7, 1, 192, 3, 8, 5, 0,
479 0, 9, 2, 194, 4, 10, 6, 0, 0, 11, 1, 196, 3, 12, 5, 0, 0, 13, 2, 198, 4, 14, 6, 0, 0, 15, 1,
480 200, 3, 17, 5, 0, 0, 19, 2, 202, 4, 21, 6, 0, 0, 23, 1, 204, 3, 25, 5, 0, 0, 27, 2, 206, 4, 29,
481 6, 0, 0, 31, 1, 208, 3, 33, 5, 0, 0, 35, 2, 210, 4, 37, 6, 0, 0, 39, 1, 212, 3, 41, 5, 0, 0,
482 43, 2, 214, 4, 45, 6, 0, 0, 47, 1, 216, 3, 49, 5, 0, 0, 51, 2, 218, 4, 53, 6, 0, 0, 55, 1, 220,
483 3, 57, 5, 0, 0, 59, 2, 222, 4, 61, 6, 0, 0, 7, 1, 224, 3, 8, 5, 0, 0, 9, 2, 226, 4, 10, 6, 0,
484 0, 11, 1, 228, 3, 12, 5, 0, 0, 13, 2, 230, 4, 14, 6, 0, 0, 16, 1, 232, 3, 18, 5, 0, 0, 20, 2,
485 234, 4, 22, 6, 0, 0, 24, 1, 236, 3, 26, 5, 0, 0, 28, 2, 238, 4, 30, 6, 0, 0, 32, 1, 240, 3, 34,
486 5, 0, 0, 36, 2, 242, 4, 38, 6, 0, 0, 40, 1, 244, 3, 42, 5, 0, 0, 44, 2, 246, 4, 46, 6, 0, 0,
487 48, 1, 248, 3, 50, 5, 0, 0, 52, 2, 250, 4, 54, 6, 0, 0, 56, 1, 252, 3, 58, 5, 0, 0, 60, 2, 254,
488 4, 62, 6, 0, 0, 7, 1, 256, 3, 8, 5, 0, 0, 9, 2, 258, 4, 10, 6, 0, 0, 11, 1, 260, 3, 12, 5, 0,
489 0, 13, 2, 262, 4, 14, 6, 0, 0, 15, 1, 264, 3, 17, 5, 0, 0, 19, 2, 266, 4, 21, 6, 0, 0, 23, 1,
490 268, 3, 25, 5, 0, 0, 27, 2, 270, 4, 29, 6, 0, 0, 31, 1, 272, 3, 33, 5, 0, 0, 35, 2, 274, 4, 37,
491 6, 0, 0, 39, 1, 276, 3, 41, 5, 0, 0, 43, 2, 278, 4, 45, 6, 0, 0, 47, 1, 280, 3, 49, 5, 0, 0,
492 51, 2, 282, 4, 53, 6, 0, 0, 55, 1, 284, 3, 57, 5, 0, 0, 59, 2, 286, 4, 61, 6, 0, 0, 7, 1, 288,
493 3, 8, 5, 0, 0, 9, 2, 290, 4, 10, 6, 0, 0, 11, 1, 292, 3, 12, 5, 0, 0, 13, 2, 294, 4, 14, 6, 0,
494 0, 16, 1, 296, 3, 18, 5, 0, 0, 20, 2, 298, 4, 22, 6, 0, 0, 24, 1, 300, 3, 26, 5, 0, 0, 28, 2,
495 302, 4, 30, 6, 0, 0, 32, 1, 304, 3, 34, 5, 0, 0, 36, 2, 306, 4, 38, 6, 0, 0, 40, 1, 308, 3, 42,
496 5, 0, 0, 44, 2, 310, 4, 46, 6, 0, 0, 48, 1, 312, 3, 50, 5, 0, 0, 52, 2, 314, 4, 54, 6, 0, 0,
497 56, 1, 316, 3, 58, 5, 0, 0, 60, 2, 318, 4, 62, 6, 0, 0, 7, 1, 320, 3, 8, 5, 0, 0, 9, 2, 322, 4,
498 10, 6, 0, 0, 11, 1, 324, 3, 12, 5, 0, 0, 13, 2, 326, 4, 14, 6, 0, 0, 15, 1, 328, 3, 17, 5, 0,
499 0, 19, 2, 330, 4, 21, 6, 0, 0, 23, 1, 332, 3, 25, 5, 0, 0, 27, 2, 334, 4, 29, 6, 0, 0, 31, 1,
500 336, 3, 33, 5, 0, 0, 35, 2, 338, 4, 37, 6, 0, 0, 39, 1, 340, 3, 41, 5, 0, 0, 43, 2, 342, 4, 45,
501 6, 0, 0, 47, 1, 344, 3, 49, 5, 0, 0, 51, 2, 346, 4, 53, 6, 0, 0, 55, 1, 348, 3, 57, 5, 0, 0,
502 59, 2, 350, 4, 61, 6, 0, 0, 7, 1, 352, 3, 8, 5, 0, 0, 9, 2, 354, 4, 10, 6, 0, 0, 11, 1, 356, 3,
503 12, 5, 0, 0, 13, 2, 358, 4, 14, 6, 0, 0, 16, 1, 360, 3, 18, 5, 0, 0, 20, 2, 362, 4, 22, 6, 0,
504 0, 24, 1, 364, 3, 26, 5, 0, 0, 28, 2, 366, 4, 30, 6, 0, 0, 32, 1, 368, 3, 34, 5, 0, 0, 36, 2,
505 370, 4, 38, 6, 0, 0, 40, 1, 372, 3, 42, 5, 0, 0, 44, 2, 374, 4, 46, 6, 0, 0, 48, 1, 376, 3, 50,
506 5, 0, 0, 52, 2, 378, 4, 54, 6, 0, 0, 56, 1, 380, 3, 58, 5, 0, 0, 60, 2, 382, 4, 62, 6, 0, 0, 7,
507 1, 384, 3, 8, 5, 0, 0, 9, 2, 386, 4, 10, 6, 0, 0, 11, 1, 388, 3, 12, 5, 0, 0, 13, 2, 390, 4,
508 14, 6, 0, 0, 15, 1, 392, 3, 17, 5, 0, 0, 19, 2, 394, 4, 21, 6, 0, 0, 23, 1, 396, 3, 25, 5, 0,
509 0, 27, 2, 398, 4, 29, 6, 0, 0, 31, 1, 400, 3, 33, 5, 0, 0, 35, 2, 402, 4, 37, 6, 0, 0, 39, 1,
510 404, 3, 41, 5, 0, 0, 43, 2, 406, 4, 45, 6, 0, 0, 47, 1, 408, 3, 49, 5, 0, 0, 51, 2, 410, 4, 53,
511 6, 0, 0, 55, 1, 412, 3, 57, 5, 0, 0, 59, 2, 414, 4, 61, 6, 0, 0, 7, 1, 416, 3, 8, 5, 0, 0, 9,
512 2, 418, 4, 10, 6, 0, 0, 11, 1, 420, 3, 12, 5, 0, 0, 13, 2, 422, 4, 14, 6, 0, 0, 16, 1, 424, 3,
513 18, 5, 0, 0, 20, 2, 426, 4, 22, 6, 0, 0, 24, 1, 428, 3, 26, 5, 0, 0, 28, 2, 430, 4, 30, 6, 0,
514 0, 32, 1, 432, 3, 34, 5, 0, 0, 36, 2, 434, 4, 38, 6, 0, 0, 40, 1, 436, 3, 42, 5, 0, 0, 44, 2,
515 438, 4, 46, 6, 0, 0, 48, 1, 440, 3, 50, 5, 0, 0, 52, 2, 442, 4, 54, 6, 0, 0, 56, 1, 444, 3, 58,
516 5, 0, 0, 60, 2, 446, 4, 62, 6, 0, 0, 7, 1, 448, 3, 8, 5, 0, 0, 9, 2, 450, 4, 10, 6, 0, 0, 11,
517 1, 452, 3, 12, 5, 0, 0, 13, 2, 454, 4, 14, 6, 0, 0, 15, 1, 456, 3, 17, 5, 0, 0, 19, 2, 458, 4,
518 21, 6, 0, 0, 23, 1, 460, 3, 25, 5, 0, 0, 27, 2, 462, 4, 29, 6, 0, 0, 31, 1, 464, 3, 33, 5, 0,
519 0, 35, 2, 466, 4, 37, 6, 0, 0, 39, 1, 468, 3, 41, 5, 0, 0, 43, 2, 470, 4, 45, 6, 0, 0, 47, 1,
520 472, 3, 49, 5, 0, 0, 51, 2, 474, 4, 53, 6, 0, 0, 55, 1, 476, 3, 57, 5, 0, 0, 59, 2, 478, 4, 61,
521 6, 0, 0, 7, 1, 480, 3, 8, 5, 0, 0, 9, 2, 482, 4, 10, 6, 0, 0, 11, 1, 484, 3, 12, 5, 0, 0, 13,
522 2, 486, 4, 14, 6, 0, 0, 16, 1, 488, 3, 18, 5, 0, 0, 20, 2, 490, 4, 22, 6, 0, 0, 24, 1, 492, 3,
523 26, 5, 0, 0, 28, 2, 494, 4, 30, 6, 0, 0, 32, 1, 496, 3, 34, 5, 0, 0, 36, 2, 498, 4, 38, 6, 0,
524 0, 40, 1, 500, 3, 42, 5, 0, 0, 44, 2, 502, 4, 46, 6, 0, 0, 48, 1, 504, 3, 50, 5, 0, 0, 52, 2,
525 506, 4, 54, 6, 0, 0, 56, 1, 508, 3, 58, 5, 0, 0, 60, 2, 510, 4, 62, 6,
526];
527pub const READ_LEN_LE: &[u8] = &[
529 13, 3, 7, 4, 11, 4, 7, 4, 13, 3, 7, 4, 11, 4, 7, 4, 13, 3, 7, 4, 11, 4, 7, 4, 13, 3, 7, 4, 11,
530 4, 7, 4, 13, 3, 8, 4, 11, 4, 8, 4, 13, 3, 8, 4, 11, 4, 8, 4, 13, 3, 8, 4, 11, 4, 8, 4, 13, 3,
531 8, 4, 11, 4, 8, 4, 13, 3, 8, 4, 11, 4, 8, 4, 13, 3, 8, 4, 11, 4, 8, 4, 13, 3, 8, 4, 11, 4, 8,
532 4, 13, 3, 8, 4, 11, 4, 8, 4, 13, 3, 8, 4, 11, 4, 8, 4, 13, 3, 8, 4, 11, 4, 8, 4, 13, 3, 8, 4,
533 11, 4, 8, 4, 13, 3, 8, 4, 11, 4, 8, 4, 13, 3, 7, 4, 11, 4, 7, 4, 13, 3, 7, 4, 11, 4, 7, 4, 13,
534 3, 7, 4, 11, 4, 7, 4, 13, 3, 7, 4, 11, 4, 7, 4, 13, 3, 8, 4, 11, 4, 8, 4, 13, 3, 8, 4, 11, 4,
535 8, 4, 13, 3, 8, 4, 11, 4, 8, 4, 13, 3, 8, 4, 11, 4, 8, 4, 13, 3, 8, 4, 11, 4, 8, 4, 13, 3, 8,
536 4, 11, 4, 8, 4, 13, 3, 8, 4, 11, 4, 8, 4, 13, 3, 8, 4, 11, 4, 8, 4, 13, 3, 8, 4, 11, 4, 8, 4,
537 13, 3, 8, 4, 11, 4, 8, 4, 13, 3, 8, 4, 11, 4, 8, 4, 13, 3, 8, 4, 11, 4, 8, 4, 13, 3, 7, 4, 11,
538 4, 7, 4, 13, 3, 7, 4, 11, 4, 7, 4, 13, 3, 7, 4, 11, 4, 7, 4, 13, 3, 7, 4, 11, 4, 7, 4, 13, 3,
539 8, 4, 11, 4, 8, 4, 13, 3, 8, 4, 11, 4, 8, 4, 13, 3, 8, 4, 11, 4, 8, 4, 13, 3, 8, 4, 11, 4, 8,
540 4, 13, 3, 8, 4, 11, 4, 8, 4, 13, 3, 8, 4, 11, 4, 8, 4, 13, 3, 8, 4, 11, 4, 8, 4, 13, 3, 8, 4,
541 11, 4, 8, 4, 13, 3, 8, 4, 11, 4, 8, 4, 13, 3, 8, 4, 11, 4, 8, 4, 13, 3, 8, 4, 11, 4, 8, 4, 13,
542 3, 8, 4, 11, 4, 8, 4, 13, 3, 7, 4, 11, 4, 7, 4, 13, 3, 7, 4, 11, 4, 7, 4, 13, 3, 7, 4, 11, 4,
543 7, 4, 13, 3, 7, 4, 11, 4, 7, 4, 13, 3, 8, 4, 11, 4, 8, 4, 13, 3, 8, 4, 11, 4, 8, 4, 13, 3, 8,
544 4, 11, 4, 8, 4, 13, 3, 8, 4, 11, 4, 8, 4, 13, 3, 8, 4, 11, 4, 8, 4, 13, 3, 8, 4, 11, 4, 8, 4,
545 13, 3, 8, 4, 11, 4, 8, 4, 13, 3, 8, 4, 11, 4, 8, 4, 13, 3, 8, 4, 11, 4, 8, 4, 13, 3, 8, 4, 11,
546 4, 8, 4, 13, 3, 8, 4, 11, 4, 8, 4, 13, 3, 8, 4, 11, 4, 8, 4, 13, 3, 7, 4, 12, 4, 7, 4, 13, 3,
547 7, 4, 12, 4, 7, 4, 13, 3, 7, 4, 12, 4, 7, 4, 13, 3, 7, 4, 12, 4, 7, 4, 13, 3, 8, 4, 12, 4, 8,
548 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4,
549 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13,
550 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4,
551 8, 4, 13, 3, 7, 4, 12, 4, 7, 4, 13, 3, 7, 4, 12, 4, 7, 4, 13, 3, 7, 4, 12, 4, 7, 4, 13, 3, 7,
552 4, 12, 4, 7, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4,
553 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12,
554 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3,
555 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 7, 4, 12, 4, 7, 4, 13, 3, 7, 4, 12, 4, 7,
556 4, 13, 3, 7, 4, 12, 4, 7, 4, 13, 3, 7, 4, 12, 4, 7, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4,
557 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13,
558 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4,
559 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 7,
560 4, 12, 4, 7, 4, 13, 3, 7, 4, 12, 4, 7, 4, 13, 3, 7, 4, 12, 4, 7, 4, 13, 3, 7, 4, 12, 4, 7, 4,
561 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12,
562 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3,
563 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8,
564 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 7, 4, 12, 4, 7, 4, 13, 3, 7, 4, 12, 4, 7, 4, 13, 3, 7, 4,
565 12, 4, 7, 4, 13, 3, 7, 4, 12, 4, 7, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13,
566 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4,
567 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8,
568 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 7, 4, 12, 4, 7, 4,
569 13, 3, 7, 4, 12, 4, 7, 4, 13, 3, 7, 4, 12, 4, 7, 4, 13, 3, 7, 4, 12, 4, 7, 4, 13, 3, 8, 4, 12,
570 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3,
571 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8,
572 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4,
573 12, 4, 8, 4, 13, 3, 7, 4, 12, 4, 7, 4, 13, 3, 7, 4, 12, 4, 7, 4, 13, 3, 7, 4, 12, 4, 7, 4, 13,
574 3, 7, 4, 12, 4, 7, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4,
575 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8,
576 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4,
577 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 7, 4, 12, 4, 7, 4, 13, 3, 7, 4, 12,
578 4, 7, 4, 13, 3, 7, 4, 12, 4, 7, 4, 13, 3, 7, 4, 12, 4, 7, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3,
579 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8,
580 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4,
581 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13,
582 3, 7, 4, 12, 4, 7, 4, 13, 3, 7, 4, 12, 4, 7, 4, 13, 3, 7, 4, 12, 4, 7, 4, 13, 3, 7, 4, 12, 4,
583 7, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8,
584 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4,
585 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12,
586 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 7, 4, 12, 4, 7, 4, 13, 3, 7, 4, 12, 4, 7, 4, 13, 3,
587 7, 4, 12, 4, 7, 4, 13, 3, 7, 4, 12, 4, 7, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8,
588 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4,
589 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13,
590 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 7, 4, 12, 4,
591 7, 4, 13, 3, 7, 4, 12, 4, 7, 4, 13, 3, 7, 4, 12, 4, 7, 4, 13, 3, 7, 4, 12, 4, 7, 4, 13, 3, 8,
592 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4,
593 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12,
594 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3,
595 8, 4, 12, 4, 8, 4, 13, 3, 7, 4, 12, 4, 7, 4, 13, 3, 7, 4, 12, 4, 7, 4, 13, 3, 7, 4, 12, 4, 7,
596 4, 13, 3, 7, 4, 12, 4, 7, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4,
597 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13,
598 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4,
599 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 7, 4, 11, 4, 7, 4, 13, 3, 7,
600 4, 11, 4, 7, 4, 13, 3, 7, 4, 11, 4, 7, 4, 13, 3, 7, 4, 11, 4, 7, 4, 13, 3, 8, 4, 11, 4, 8, 4,
601 13, 3, 8, 4, 11, 4, 8, 4, 13, 3, 8, 4, 11, 4, 8, 4, 13, 3, 8, 4, 11, 4, 8, 4, 13, 3, 8, 4, 11,
602 4, 8, 4, 13, 3, 8, 4, 11, 4, 8, 4, 13, 3, 8, 4, 11, 4, 8, 4, 13, 3, 8, 4, 11, 4, 8, 4, 13, 3,
603 8, 4, 11, 4, 8, 4, 13, 3, 8, 4, 11, 4, 8, 4, 13, 3, 8, 4, 11, 4, 8, 4, 13, 3, 8, 4, 11, 4, 8,
604 4, 13, 3, 7, 4, 11, 4, 7, 4, 13, 3, 7, 4, 11, 4, 7, 4, 13, 3, 7, 4, 11, 4, 7, 4, 13, 3, 7, 4,
605 11, 4, 7, 4, 13, 3, 8, 4, 11, 4, 8, 4, 13, 3, 8, 4, 11, 4, 8, 4, 13, 3, 8, 4, 11, 4, 8, 4, 13,
606 3, 8, 4, 11, 4, 8, 4, 13, 3, 8, 4, 11, 4, 8, 4, 13, 3, 8, 4, 11, 4, 8, 4, 13, 3, 8, 4, 11, 4,
607 8, 4, 13, 3, 8, 4, 11, 4, 8, 4, 13, 3, 8, 4, 11, 4, 8, 4, 13, 3, 8, 4, 11, 4, 8, 4, 13, 3, 8,
608 4, 11, 4, 8, 4, 13, 3, 8, 4, 11, 4, 8, 4, 13, 3, 7, 4, 11, 4, 7, 4, 13, 3, 7, 4, 11, 4, 7, 4,
609 13, 3, 7, 4, 11, 4, 7, 4, 13, 3, 7, 4, 11, 4, 7, 4, 13, 3, 8, 4, 11, 4, 8, 4, 13, 3, 8, 4, 11,
610 4, 8, 4, 13, 3, 8, 4, 11, 4, 8, 4, 13, 3, 8, 4, 11, 4, 8, 4, 13, 3, 8, 4, 11, 4, 8, 4, 13, 3,
611 8, 4, 11, 4, 8, 4, 13, 3, 8, 4, 11, 4, 8, 4, 13, 3, 8, 4, 11, 4, 8, 4, 13, 3, 8, 4, 11, 4, 8,
612 4, 13, 3, 8, 4, 11, 4, 8, 4, 13, 3, 8, 4, 11, 4, 8, 4, 13, 3, 8, 4, 11, 4, 8, 4, 13, 3, 7, 4,
613 11, 4, 7, 4, 13, 3, 7, 4, 11, 4, 7, 4, 13, 3, 7, 4, 11, 4, 7, 4, 13, 3, 7, 4, 11, 4, 7, 4, 13,
614 3, 8, 4, 11, 4, 8, 4, 13, 3, 8, 4, 11, 4, 8, 4, 13, 3, 8, 4, 11, 4, 8, 4, 13, 3, 8, 4, 11, 4,
615 8, 4, 13, 3, 8, 4, 11, 4, 8, 4, 13, 3, 8, 4, 11, 4, 8, 4, 13, 3, 8, 4, 11, 4, 8, 4, 13, 3, 8,
616 4, 11, 4, 8, 4, 13, 3, 8, 4, 11, 4, 8, 4, 13, 3, 8, 4, 11, 4, 8, 4, 13, 3, 8, 4, 11, 4, 8, 4,
617 13, 3, 8, 4, 11, 4, 8, 4, 13, 3, 7, 4, 12, 4, 7, 4, 13, 3, 7, 4, 12, 4, 7, 4, 13, 3, 7, 4, 12,
618 4, 7, 4, 13, 3, 7, 4, 12, 4, 7, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3,
619 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8,
620 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4,
621 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 7, 4, 12, 4, 7, 4, 13,
622 3, 7, 4, 12, 4, 7, 4, 13, 3, 7, 4, 12, 4, 7, 4, 13, 3, 7, 4, 12, 4, 7, 4, 13, 3, 8, 4, 12, 4,
623 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8,
624 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4,
625 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12,
626 4, 8, 4, 13, 3, 7, 4, 12, 4, 7, 4, 13, 3, 7, 4, 12, 4, 7, 4, 13, 3, 7, 4, 12, 4, 7, 4, 13, 3,
627 7, 4, 12, 4, 7, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8,
628 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4,
629 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13,
630 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 7, 4, 12, 4, 7, 4, 13, 3, 7, 4, 12, 4,
631 7, 4, 13, 3, 7, 4, 12, 4, 7, 4, 13, 3, 7, 4, 12, 4, 7, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8,
632 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4,
633 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12,
634 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3,
635 7, 4, 12, 4, 7, 4, 13, 3, 7, 4, 12, 4, 7, 4, 13, 3, 7, 4, 12, 4, 7, 4, 13, 3, 7, 4, 12, 4, 7,
636 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4,
637 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13,
638 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4,
639 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 7, 4, 12, 4, 7, 4, 13, 3, 7, 4, 12, 4, 7, 4, 13, 3, 7,
640 4, 12, 4, 7, 4, 13, 3, 7, 4, 12, 4, 7, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4,
641 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12,
642 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3,
643 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 7, 4, 12, 4, 7,
644 4, 13, 3, 7, 4, 12, 4, 7, 4, 13, 3, 7, 4, 12, 4, 7, 4, 13, 3, 7, 4, 12, 4, 7, 4, 13, 3, 8, 4,
645 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13,
646 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4,
647 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8,
648 4, 12, 4, 8, 4, 13, 3, 7, 4, 12, 4, 7, 4, 13, 3, 7, 4, 12, 4, 7, 4, 13, 3, 7, 4, 12, 4, 7, 4,
649 13, 3, 7, 4, 12, 4, 7, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12,
650 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3,
651 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8,
652 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 7, 4, 12, 4, 7, 4, 13, 3, 7, 4,
653 12, 4, 7, 4, 13, 3, 7, 4, 12, 4, 7, 4, 13, 3, 7, 4, 12, 4, 7, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13,
654 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4,
655 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8,
656 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4,
657 13, 3, 7, 4, 12, 4, 7, 4, 13, 3, 7, 4, 12, 4, 7, 4, 13, 3, 7, 4, 12, 4, 7, 4, 13, 3, 7, 4, 12,
658 4, 7, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3,
659 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8,
660 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4,
661 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 7, 4, 12, 4, 7, 4, 13, 3, 7, 4, 12, 4, 7, 4, 13,
662 3, 7, 4, 12, 4, 7, 4, 13, 3, 7, 4, 12, 4, 7, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4,
663 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8,
664 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4,
665 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 7, 4, 12,
666 4, 7, 4, 13, 3, 7, 4, 12, 4, 7, 4, 13, 3, 7, 4, 12, 4, 7, 4, 13, 3, 7, 4, 12, 4, 7, 4, 13, 3,
667 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8,
668 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4,
669 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13,
670 3, 8, 4, 12, 4, 8, 4,
671];
672pub const WRITE_BE: &[u16] = &[
674 4, 10, 11, 12, 13, 14, 15, 32, 33, 34, 35, 36, 37, 38, 39, 80, 81, 82, 83, 84, 85, 86, 87, 88,
675 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109,
676 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 256,
677 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275,
678 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
679 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313,
680 314, 315, 316, 317, 318, 319, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652,
681 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671,
682 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690,
683 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709,
684 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728,
685 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747,
686 748, 749, 750, 751, 752, 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, 765, 766,
687 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, 777, 778, 779, 780, 781, 782, 783, 784, 785,
688 786, 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, 797, 798, 799, 800, 801, 802, 803, 804,
689 805, 806, 807, 808, 809, 810, 811, 812, 813, 814, 815, 816, 817, 818, 819, 820, 821, 822, 823,
690 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, 834, 835, 836, 837, 838, 839, 840, 841, 842,
691 843, 844, 845, 846, 847, 848, 849, 850, 851, 852, 853, 854, 855, 856, 857, 858, 859, 860, 861,
692 862, 863, 864, 865, 866, 867, 868, 869, 870, 871, 872, 873, 874, 875, 876, 877, 878, 879, 880,
693 881, 882, 883, 884, 885, 886, 887, 888, 889, 890, 891, 892, 893, 894, 895, 896, 897, 898, 899,
694 900, 901, 902, 903, 904, 905, 906, 907, 908, 909, 910, 911, 912, 913, 914, 915, 916, 917, 918,
695 919, 920, 921, 922, 923, 924, 925, 926, 927, 928, 929, 930, 931, 932, 933, 934, 935, 936, 937,
696 938, 939, 940, 941, 942, 943, 944, 945, 946, 947, 948, 949, 950, 951, 952, 953, 954, 955, 956,
697 957, 958, 959, 960, 961, 962, 963, 964, 965, 966, 967, 968, 969, 970, 971, 972, 973, 974, 975,
698 976, 977, 978, 979, 980, 981, 982, 983, 984, 985, 986, 987, 988, 989, 990, 991, 992, 993, 994,
699 995, 996, 997, 998, 999, 1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010,
700 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022, 1023, 2048, 2049, 2050,
701 2051, 2052, 2053, 2054, 2055, 2056, 2057, 2058, 2059, 2060, 2061, 2062, 2063, 2064, 2065, 2066,
702 2067, 2068, 2069, 2070, 2071, 2072, 2073, 2074, 2075, 2076, 2077, 2078, 2079, 2080, 2081, 2082,
703 2083, 2084, 2085, 2086, 2087, 2088, 2089, 2090, 2091, 2092, 2093, 2094, 2095, 2096, 2097, 2098,
704 2099, 2100, 2101, 2102, 2103, 2104, 2105, 2106, 2107, 2108, 2109, 2110, 2111, 2112, 2113, 2114,
705 2115, 2116, 2117, 2118, 2119, 2120, 2121, 2122, 2123, 2124, 2125, 2126, 2127, 2128, 2129, 2130,
706 2131, 2132, 2133, 2134, 2135, 2136, 2137, 2138, 2139, 2140, 2141, 2142, 2143, 2144, 2145, 2146,
707 2147, 2148, 2149, 2150, 2151, 2152, 2153, 2154, 2155, 2156, 2157, 2158, 2159, 2160, 2161, 2162,
708 2163, 2164, 2165, 2166, 2167, 2168, 2169, 2170, 2171, 2172, 2173, 2174, 2175, 2176, 2177, 2178,
709 2179, 2180, 2181, 2182, 2183, 2184, 2185, 2186, 2187, 2188, 2189, 2190, 2191, 2192, 2193, 2194,
710 2195, 2196, 2197, 2198, 2199, 2200, 2201, 2202, 2203, 2204, 2205, 2206, 2207, 2208, 2209, 2210,
711 2211, 2212, 2213, 2214, 2215, 2216, 2217, 2218, 2219, 2220, 2221, 2222, 2223, 2224, 2225, 2226,
712 2227, 2228, 2229, 2230, 2231, 2232, 2233, 2234, 2235, 2236, 2237, 2238, 2239, 2240, 2241, 2242,
713 2243, 2244, 2245, 2246, 2247, 2248, 2249, 2250, 2251, 2252, 2253, 2254, 2255, 2256, 2257, 2258,
714 2259, 2260, 2261, 2262, 2263, 2264, 2265, 2266, 2267, 2268, 2269, 2270, 2271, 2272, 2273, 2274,
715 2275, 2276, 2277, 2278, 2279, 2280, 2281, 2282, 2283, 2284, 2285, 2286, 2287, 2288, 2289, 2290,
716 2291, 2292, 2293, 2294, 2295, 2296, 2297, 2298, 2299, 2300, 2301, 2302, 2303, 2304, 2305, 2306,
717 2307, 2308, 2309, 2310, 2311, 2312, 2313, 2314, 2315, 2316, 2317, 2318, 2319, 2320, 2321, 2322,
718 2323, 2324, 2325, 2326, 2327, 2328, 2329, 2330, 2331, 2332, 2333, 2334, 2335, 2336, 2337, 2338,
719 2339, 2340, 2341, 2342, 2343, 2344, 2345, 2346, 2347, 2348, 2349, 2350, 2351, 2352, 2353, 2354,
720 2355, 2356, 2357, 2358, 2359, 2360, 2361, 2362, 2363, 2364, 2365, 2366, 2367, 2368, 2369, 2370,
721 2371, 2372, 2373, 2374, 2375, 2376, 2377, 2378, 2379, 2380, 2381, 2382, 2383, 2384, 2385, 2386,
722 2387, 2388, 2389, 2390, 2391, 2392, 2393, 2394, 2395, 2396, 2397, 2398, 2399, 2400, 2401, 2402,
723 2403, 2404, 2405, 2406, 2407, 2408, 2409, 2410, 2411, 2412, 2413, 2414, 2415, 2416, 2417, 2418,
724 2419, 2420, 2421, 2422, 2423, 2424, 2425, 2426, 2427, 2428, 2429, 2430, 2431, 2432, 2433, 2434,
725 2435, 2436, 2437, 2438, 2439, 2440, 2441, 2442, 2443, 2444, 2445, 2446, 2447, 2448, 2449, 2450,
726 2451, 2452, 2453, 2454, 2455, 2456, 2457, 2458, 2459, 2460, 2461, 2462, 2463, 2464, 2465, 2466,
727 2467, 2468, 2469, 2470, 2471, 2472, 2473, 2474, 2475, 2476, 2477, 2478, 2479, 2480, 2481, 2482,
728 2483, 2484, 2485, 2486, 2487, 2488, 2489, 2490, 2491, 2492, 2493, 2494, 2495, 2496, 2497, 2498,
729 2499, 2500, 2501, 2502, 2503, 2504, 2505, 2506, 2507, 2508, 2509, 2510, 2511, 2512, 2513, 2514,
730 2515, 2516, 2517, 2518, 2519, 2520, 2521, 2522, 2523, 2524, 2525, 2526, 2527, 2528, 2529, 2530,
731 2531, 2532, 2533, 2534, 2535, 2536, 2537, 2538, 2539, 2540, 2541, 2542, 2543, 2544, 2545, 2546,
732 2547, 2548, 2549, 2550, 2551, 2552, 2553, 2554, 2555, 2556, 2557, 2558, 2559, 5120,
733];
734pub const WRITE_LEN_BE: &[u16] = &[
736 3, 4, 4, 4, 4, 4, 4, 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
737 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
738 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
739 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
740 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 12, 12, 12, 12, 12, 12, 12, 12,
741 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
742 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
743 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
744 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
745 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
746 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
747 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
748 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
749 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
750 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
751 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
752 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
753 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
754 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
755 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
756 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 15, 15, 15, 15, 15, 15, 15, 15,
757 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
758 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
759 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
760 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
761 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
762 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
763 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
764 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
765 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
766 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
767 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
768 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
769 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
770 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
771 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
772 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
773 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
774 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
775 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
776 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
777 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
778 16,
779];
780pub const WRITE_LE: &[u16] = &[
782 1, 3, 11, 5, 13, 7, 15, 2, 6, 10, 14, 18, 22, 26, 30, 34, 162, 38, 166, 42, 170, 46, 174, 50,
783 178, 54, 182, 58, 186, 62, 190, 66, 194, 70, 198, 74, 202, 78, 206, 82, 210, 86, 214, 90, 218,
784 94, 222, 98, 226, 102, 230, 106, 234, 110, 238, 114, 242, 118, 246, 122, 250, 126, 254, 4, 12,
785 20, 28, 36, 44, 52, 60, 68, 76, 84, 92, 100, 108, 116, 124, 132, 140, 148, 156, 164, 172, 180,
786 188, 196, 204, 212, 220, 228, 236, 244, 252, 260, 268, 276, 284, 292, 300, 308, 316, 324, 332,
787 340, 348, 356, 364, 372, 380, 388, 396, 404, 412, 420, 428, 436, 444, 452, 460, 468, 476, 484,
788 492, 500, 508, 516, 2564, 524, 2572, 532, 2580, 540, 2588, 548, 2596, 556, 2604, 564, 2612,
789 572, 2620, 580, 2628, 588, 2636, 596, 2644, 604, 2652, 612, 2660, 620, 2668, 628, 2676, 636,
790 2684, 644, 2692, 652, 2700, 660, 2708, 668, 2716, 676, 2724, 684, 2732, 692, 2740, 700, 2748,
791 708, 2756, 716, 2764, 724, 2772, 732, 2780, 740, 2788, 748, 2796, 756, 2804, 764, 2812, 772,
792 2820, 780, 2828, 788, 2836, 796, 2844, 804, 2852, 812, 2860, 820, 2868, 828, 2876, 836, 2884,
793 844, 2892, 852, 2900, 860, 2908, 868, 2916, 876, 2924, 884, 2932, 892, 2940, 900, 2948, 908,
794 2956, 916, 2964, 924, 2972, 932, 2980, 940, 2988, 948, 2996, 956, 3004, 964, 3012, 972, 3020,
795 980, 3028, 988, 3036, 996, 3044, 1004, 3052, 1012, 3060, 1020, 3068, 1028, 3076, 1036, 3084,
796 1044, 3092, 1052, 3100, 1060, 3108, 1068, 3116, 1076, 3124, 1084, 3132, 1092, 3140, 1100, 3148,
797 1108, 3156, 1116, 3164, 1124, 3172, 1132, 3180, 1140, 3188, 1148, 3196, 1156, 3204, 1164, 3212,
798 1172, 3220, 1180, 3228, 1188, 3236, 1196, 3244, 1204, 3252, 1212, 3260, 1220, 3268, 1228, 3276,
799 1236, 3284, 1244, 3292, 1252, 3300, 1260, 3308, 1268, 3316, 1276, 3324, 1284, 3332, 1292, 3340,
800 1300, 3348, 1308, 3356, 1316, 3364, 1324, 3372, 1332, 3380, 1340, 3388, 1348, 3396, 1356, 3404,
801 1364, 3412, 1372, 3420, 1380, 3428, 1388, 3436, 1396, 3444, 1404, 3452, 1412, 3460, 1420, 3468,
802 1428, 3476, 1436, 3484, 1444, 3492, 1452, 3500, 1460, 3508, 1468, 3516, 1476, 3524, 1484, 3532,
803 1492, 3540, 1500, 3548, 1508, 3556, 1516, 3564, 1524, 3572, 1532, 3580, 1540, 3588, 1548, 3596,
804 1556, 3604, 1564, 3612, 1572, 3620, 1580, 3628, 1588, 3636, 1596, 3644, 1604, 3652, 1612, 3660,
805 1620, 3668, 1628, 3676, 1636, 3684, 1644, 3692, 1652, 3700, 1660, 3708, 1668, 3716, 1676, 3724,
806 1684, 3732, 1692, 3740, 1700, 3748, 1708, 3756, 1716, 3764, 1724, 3772, 1732, 3780, 1740, 3788,
807 1748, 3796, 1756, 3804, 1764, 3812, 1772, 3820, 1780, 3828, 1788, 3836, 1796, 3844, 1804, 3852,
808 1812, 3860, 1820, 3868, 1828, 3876, 1836, 3884, 1844, 3892, 1852, 3900, 1860, 3908, 1868, 3916,
809 1876, 3924, 1884, 3932, 1892, 3940, 1900, 3948, 1908, 3956, 1916, 3964, 1924, 3972, 1932, 3980,
810 1940, 3988, 1948, 3996, 1956, 4004, 1964, 4012, 1972, 4020, 1980, 4028, 1988, 4036, 1996, 4044,
811 2004, 4052, 2012, 4060, 2020, 4068, 2028, 4076, 2036, 4084, 2044, 4092, 8, 24, 40, 56, 72, 88,
812 104, 120, 136, 152, 168, 184, 200, 216, 232, 248, 264, 280, 296, 312, 328, 344, 360, 376, 392,
813 408, 424, 440, 456, 472, 488, 504, 520, 536, 552, 568, 584, 600, 616, 632, 648, 664, 680, 696,
814 712, 728, 744, 760, 776, 792, 808, 824, 840, 856, 872, 888, 904, 920, 936, 952, 968, 984, 1000,
815 1016, 1032, 1048, 1064, 1080, 1096, 1112, 1128, 1144, 1160, 1176, 1192, 1208, 1224, 1240, 1256,
816 1272, 1288, 1304, 1320, 1336, 1352, 1368, 1384, 1400, 1416, 1432, 1448, 1464, 1480, 1496, 1512,
817 1528, 1544, 1560, 1576, 1592, 1608, 1624, 1640, 1656, 1672, 1688, 1704, 1720, 1736, 1752, 1768,
818 1784, 1800, 1816, 1832, 1848, 1864, 1880, 1896, 1912, 1928, 1944, 1960, 1976, 1992, 2008, 2024,
819 2040, 2056, 2072, 2088, 2104, 2120, 2136, 2152, 2168, 2184, 2200, 2216, 2232, 2248, 2264, 2280,
820 2296, 2312, 2328, 2344, 2360, 2376, 2392, 2408, 2424, 2440, 2456, 2472, 2488, 2504, 2520, 2536,
821 2552, 2568, 2584, 2600, 2616, 2632, 2648, 2664, 2680, 2696, 2712, 2728, 2744, 2760, 2776, 2792,
822 2808, 2824, 2840, 2856, 2872, 2888, 2904, 2920, 2936, 2952, 2968, 2984, 3000, 3016, 3032, 3048,
823 3064, 3080, 3096, 3112, 3128, 3144, 3160, 3176, 3192, 3208, 3224, 3240, 3256, 3272, 3288, 3304,
824 3320, 3336, 3352, 3368, 3384, 3400, 3416, 3432, 3448, 3464, 3480, 3496, 3512, 3528, 3544, 3560,
825 3576, 3592, 3608, 3624, 3640, 3656, 3672, 3688, 3704, 3720, 3736, 3752, 3768, 3784, 3800, 3816,
826 3832, 3848, 3864, 3880, 3896, 3912, 3928, 3944, 3960, 3976, 3992, 4008, 4024, 4040, 4056, 4072,
827 4088, 4104, 4120, 4136, 4152, 4168, 4184, 4200, 4216, 4232, 4248, 4264, 4280, 4296, 4312, 4328,
828 4344, 4360, 4376, 4392, 4408, 4424, 4440, 4456, 4472, 4488, 4504, 4520, 4536, 4552, 4568, 4584,
829 4600, 4616, 4632, 4648, 4664, 4680, 4696, 4712, 4728, 4744, 4760, 4776, 4792, 4808, 4824, 4840,
830 4856, 4872, 4888, 4904, 4920, 4936, 4952, 4968, 4984, 5000, 5016, 5032, 5048, 5064, 5080, 5096,
831 5112, 5128, 5144, 5160, 5176, 5192, 5208, 5224, 5240, 5256, 5272, 5288, 5304, 5320, 5336, 5352,
832 5368, 5384, 5400, 5416, 5432, 5448, 5464, 5480, 5496, 5512, 5528, 5544, 5560, 5576, 5592, 5608,
833 5624, 5640, 5656, 5672, 5688, 5704, 5720, 5736, 5752, 5768, 5784, 5800, 5816, 5832, 5848, 5864,
834 5880, 5896, 5912, 5928, 5944, 5960, 5976, 5992, 6008, 6024, 6040, 6056, 6072, 6088, 6104, 6120,
835 6136, 6152, 6168, 6184, 6200, 6216, 6232, 6248, 6264, 6280, 6296, 6312, 6328, 6344, 6360, 6376,
836 6392, 6408, 6424, 6440, 6456, 6472, 6488, 6504, 6520, 6536, 6552, 6568, 6584, 6600, 6616, 6632,
837 6648, 6664, 6680, 6696, 6712, 6728, 6744, 6760, 6776, 6792, 6808, 6824, 6840, 6856, 6872, 6888,
838 6904, 6920, 6936, 6952, 6968, 6984, 7000, 7016, 7032, 7048, 7064, 7080, 7096, 7112, 7128, 7144,
839 7160, 7176, 7192, 7208, 7224, 7240, 7256, 7272, 7288, 7304, 7320, 7336, 7352, 7368, 7384, 7400,
840 7416, 7432, 7448, 7464, 7480, 7496, 7512, 7528, 7544, 7560, 7576, 7592, 7608, 7624, 7640, 7656,
841 7672, 7688, 7704, 7720, 7736, 7752, 7768, 7784, 7800, 7816, 7832, 7848, 7864, 7880, 7896, 7912,
842 7928, 7944, 7960, 7976, 7992, 8008, 8024, 8040, 8056, 8072, 8088, 8104, 8120, 8136, 8152, 8168,
843 8184, 8200,
844];
845pub const WRITE_LEN_LE: &[u16] = &[
847 3, 4, 4, 4, 4, 4, 4, 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
848 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
849 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
850 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
851 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 12, 12, 12, 12, 12, 12, 12, 12,
852 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
853 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
854 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
855 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
856 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
857 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
858 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
859 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
860 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
861 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
862 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
863 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
864 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
865 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
866 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
867 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 15, 15, 15, 15, 15, 15, 15, 15,
868 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
869 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
870 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
871 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
872 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
873 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
874 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
875 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
876 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
877 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
878 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
879 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
880 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
881 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
882 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
883 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
884 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
885 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
886 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
887 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
888 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
889 16,
890];
891pub const LEN: &[u8] = &[
893 3, 4, 4, 4, 4, 4, 4, 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
894 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
895 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
896 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
897 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 12, 12, 12, 12, 12, 12, 12, 12,
898 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
899 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
900 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
901 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
902 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
903 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
904 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
905 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
906 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
907 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
908 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
909 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
910 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
911 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
912 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
913 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 15, 15, 15, 15, 15, 15, 15, 15,
914 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
915 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
916 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
917 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
918 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
919 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
920 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
921 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
922 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
923 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
924 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
925 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
926 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
927 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
928 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
929 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
930 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
931 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
932 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
933 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
934 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
935 16,
936];
937pub const fn check_read_table(peek_bits: usize) {
939 assert!(
940 peek_bits >= READ_BITS,
941 "BitRead peek word too small for zeta code read tables (12 bits required)"
942 );
943}
944pub const K: usize = 3;