* DV handling was streamlined for both muxing/demuxing and
[libav.git] / libavcodec / dvdata.h
1 /*
2 * Constants for DV codec
3 * Copyright (c) 2002 Fabrice Bellard.
4 *
5 * This library is free software; you can redistribute it and/or
6 * modify it under the terms of the GNU Lesser General Public
7 * License as published by the Free Software Foundation; either
8 * version 2 of the License, or (at your option) any later version.
9 *
10 * This library is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 * Lesser General Public License for more details.
14 *
15 * You should have received a copy of the GNU Lesser General Public
16 * License along with this library; if not, write to the Free Software
17 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18 */
19
20 /**
21 * @file dvdata.h
22 * Constants for DV codec.
23 */
24
25 /*
26 * DVprofile is used to express the differences between various
27 * DV flavors. For now it's primarily used for differentiating
28 * 525/60 and 625/50, but the plans are to use it for various
29 * DV specs as well (e.g. SMPTE314M vs. IEC 61834).
30 */
31 typedef struct DVprofile {
32 int dsf; /* value of the dsf in the DV header */
33 int frame_size; /* total size of one frame in bytes */
34 int difseg_size; /* number of DIF segments */
35 int frame_rate;
36 int frame_rate_base;
37 int ltc_divisor; /* FPS from the LTS standpoint */
38 int height; /* picture height in pixels */
39 int width; /* picture width in pixels */
40 const uint16_t *video_place; /* positions of all DV macro blocks */
41 enum PixelFormat pix_fmt; /* picture pixel format */
42
43 int audio_stride; /* size of audio_shuffle table */
44 int audio_min_samples[3];/* min ammount of audio samples */
45 /* for 48Khz, 44.1Khz and 32Khz */
46 int audio_samples_dist[5];/* how many samples are supposed to be */
47 /* in each frame in a 5 frames window */
48 const uint16_t (*audio_shuffle)[9]; /* PCM shuffling table */
49 } DVprofile;
50
51 #define NB_DV_VLC 409
52
53 static const uint16_t dv_vlc_bits[409] = {
54 0x0000, 0x0002, 0x0007, 0x0008, 0x0009, 0x0014, 0x0015, 0x0016,
55 0x0017, 0x0030, 0x0031, 0x0032, 0x0033, 0x0068, 0x0069, 0x006a,
56 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x00e0, 0x00e1, 0x00e2,
57 0x00e3, 0x00e4, 0x00e5, 0x00e6, 0x00e7, 0x00e8, 0x00e9, 0x00ea,
58 0x00eb, 0x00ec, 0x00ed, 0x00ee, 0x00ef, 0x01e0, 0x01e1, 0x01e2,
59 0x01e3, 0x01e4, 0x01e5, 0x01e6, 0x01e7, 0x01e8, 0x01e9, 0x01ea,
60 0x01eb, 0x01ec, 0x01ed, 0x01ee, 0x01ef, 0x03e0, 0x03e1, 0x03e2,
61 0x03e3, 0x03e4, 0x03e5, 0x03e6, 0x07ce, 0x07cf, 0x07d0, 0x07d1,
62 0x07d2, 0x07d3, 0x07d4, 0x07d5, 0x0fac, 0x0fad, 0x0fae, 0x0faf,
63 0x0fb0, 0x0fb1, 0x0fb2, 0x0fb3, 0x0fb4, 0x0fb5, 0x0fb6, 0x0fb7,
64 0x0fb8, 0x0fb9, 0x0fba, 0x0fbb, 0x0fbc, 0x0fbd, 0x0fbe, 0x0fbf,
65 0x1f80, 0x1f81, 0x1f82, 0x1f83, 0x1f84, 0x1f85, 0x1f86, 0x1f87,
66 0x1f88, 0x1f89, 0x1f8a, 0x1f8b, 0x1f8c, 0x1f8d, 0x1f8e, 0x1f8f,
67 0x1f90, 0x1f91, 0x1f92, 0x1f93, 0x1f94, 0x1f95, 0x1f96, 0x1f97,
68 0x1f98, 0x1f99, 0x1f9a, 0x1f9b, 0x1f9c, 0x1f9d, 0x1f9e, 0x1f9f,
69 0x1fa0, 0x1fa1, 0x1fa2, 0x1fa3, 0x1fa4, 0x1fa5, 0x1fa6, 0x1fa7,
70 0x1fa8, 0x1fa9, 0x1faa, 0x1fab, 0x1fac, 0x1fad, 0x1fae, 0x1faf,
71 0x1fb0, 0x1fb1, 0x1fb2, 0x1fb3, 0x1fb4, 0x1fb5, 0x1fb6, 0x1fb7,
72 0x1fb8, 0x1fb9, 0x1fba, 0x1fbb, 0x1fbc, 0x1fbd, 0x1fbe, 0x1fbf,
73 0x7f00, 0x7f01, 0x7f02, 0x7f03, 0x7f04, 0x7f05, 0x7f06, 0x7f07,
74 0x7f08, 0x7f09, 0x7f0a, 0x7f0b, 0x7f0c, 0x7f0d, 0x7f0e, 0x7f0f,
75 0x7f10, 0x7f11, 0x7f12, 0x7f13, 0x7f14, 0x7f15, 0x7f16, 0x7f17,
76 0x7f18, 0x7f19, 0x7f1a, 0x7f1b, 0x7f1c, 0x7f1d, 0x7f1e, 0x7f1f,
77 0x7f20, 0x7f21, 0x7f22, 0x7f23, 0x7f24, 0x7f25, 0x7f26, 0x7f27,
78 0x7f28, 0x7f29, 0x7f2a, 0x7f2b, 0x7f2c, 0x7f2d, 0x7f2e, 0x7f2f,
79 0x7f30, 0x7f31, 0x7f32, 0x7f33, 0x7f34, 0x7f35, 0x7f36, 0x7f37,
80 0x7f38, 0x7f39, 0x7f3a, 0x7f3b, 0x7f3c, 0x7f3d, 0x7f3e, 0x7f3f,
81 0x7f40, 0x7f41, 0x7f42, 0x7f43, 0x7f44, 0x7f45, 0x7f46, 0x7f47,
82 0x7f48, 0x7f49, 0x7f4a, 0x7f4b, 0x7f4c, 0x7f4d, 0x7f4e, 0x7f4f,
83 0x7f50, 0x7f51, 0x7f52, 0x7f53, 0x7f54, 0x7f55, 0x7f56, 0x7f57,
84 0x7f58, 0x7f59, 0x7f5a, 0x7f5b, 0x7f5c, 0x7f5d, 0x7f5e, 0x7f5f,
85 0x7f60, 0x7f61, 0x7f62, 0x7f63, 0x7f64, 0x7f65, 0x7f66, 0x7f67,
86 0x7f68, 0x7f69, 0x7f6a, 0x7f6b, 0x7f6c, 0x7f6d, 0x7f6e, 0x7f6f,
87 0x7f70, 0x7f71, 0x7f72, 0x7f73, 0x7f74, 0x7f75, 0x7f76, 0x7f77,
88 0x7f78, 0x7f79, 0x7f7a, 0x7f7b, 0x7f7c, 0x7f7d, 0x7f7e, 0x7f7f,
89 0x7f80, 0x7f81, 0x7f82, 0x7f83, 0x7f84, 0x7f85, 0x7f86, 0x7f87,
90 0x7f88, 0x7f89, 0x7f8a, 0x7f8b, 0x7f8c, 0x7f8d, 0x7f8e, 0x7f8f,
91 0x7f90, 0x7f91, 0x7f92, 0x7f93, 0x7f94, 0x7f95, 0x7f96, 0x7f97,
92 0x7f98, 0x7f99, 0x7f9a, 0x7f9b, 0x7f9c, 0x7f9d, 0x7f9e, 0x7f9f,
93 0x7fa0, 0x7fa1, 0x7fa2, 0x7fa3, 0x7fa4, 0x7fa5, 0x7fa6, 0x7fa7,
94 0x7fa8, 0x7fa9, 0x7faa, 0x7fab, 0x7fac, 0x7fad, 0x7fae, 0x7faf,
95 0x7fb0, 0x7fb1, 0x7fb2, 0x7fb3, 0x7fb4, 0x7fb5, 0x7fb6, 0x7fb7,
96 0x7fb8, 0x7fb9, 0x7fba, 0x7fbb, 0x7fbc, 0x7fbd, 0x7fbe, 0x7fbf,
97 0x7fc0, 0x7fc1, 0x7fc2, 0x7fc3, 0x7fc4, 0x7fc5, 0x7fc6, 0x7fc7,
98 0x7fc8, 0x7fc9, 0x7fca, 0x7fcb, 0x7fcc, 0x7fcd, 0x7fce, 0x7fcf,
99 0x7fd0, 0x7fd1, 0x7fd2, 0x7fd3, 0x7fd4, 0x7fd5, 0x7fd6, 0x7fd7,
100 0x7fd8, 0x7fd9, 0x7fda, 0x7fdb, 0x7fdc, 0x7fdd, 0x7fde, 0x7fdf,
101 0x7fe0, 0x7fe1, 0x7fe2, 0x7fe3, 0x7fe4, 0x7fe5, 0x7fe6, 0x7fe7,
102 0x7fe8, 0x7fe9, 0x7fea, 0x7feb, 0x7fec, 0x7fed, 0x7fee, 0x7fef,
103 0x7ff0, 0x7ff1, 0x7ff2, 0x7ff3, 0x7ff4, 0x7ff5, 0x7ff6, 0x7ff7,
104 0x7ff8, 0x7ff9, 0x7ffa, 0x7ffb, 0x7ffc, 0x7ffd, 0x7ffe, 0x7fff,
105 0x0006,
106 };
107
108 static const uint8_t dv_vlc_len[409] = {
109 2, 3, 4, 4, 4, 5, 5, 5,
110 5, 6, 6, 6, 6, 7, 7, 7,
111 7, 7, 7, 7, 7, 8, 8, 8,
112 8, 8, 8, 8, 8, 8, 8, 8,
113 8, 8, 8, 8, 8, 9, 9, 9,
114 9, 9, 9, 9, 9, 9, 9, 9,
115 9, 9, 9, 9, 9, 10, 10, 10,
116 10, 10, 10, 10, 11, 11, 11, 11,
117 11, 11, 11, 11, 12, 12, 12, 12,
118 12, 12, 12, 12, 12, 12, 12, 12,
119 12, 12, 12, 12, 12, 12, 12, 12,
120 13, 13, 13, 13, 13, 13, 13, 13,
121 13, 13, 13, 13, 13, 13, 13, 13,
122 13, 13, 13, 13, 13, 13, 13, 13,
123 13, 13, 13, 13, 13, 13, 13, 13,
124 13, 13, 13, 13, 13, 13, 13, 13,
125 13, 13, 13, 13, 13, 13, 13, 13,
126 13, 13, 13, 13, 13, 13, 13, 13,
127 13, 13, 13, 13, 13, 13, 13, 13,
128 15, 15, 15, 15, 15, 15, 15, 15,
129 15, 15, 15, 15, 15, 15, 15, 15,
130 15, 15, 15, 15, 15, 15, 15, 15,
131 15, 15, 15, 15, 15, 15, 15, 15,
132 15, 15, 15, 15, 15, 15, 15, 15,
133 15, 15, 15, 15, 15, 15, 15, 15,
134 15, 15, 15, 15, 15, 15, 15, 15,
135 15, 15, 15, 15, 15, 15, 15, 15,
136 15, 15, 15, 15, 15, 15, 15, 15,
137 15, 15, 15, 15, 15, 15, 15, 15,
138 15, 15, 15, 15, 15, 15, 15, 15,
139 15, 15, 15, 15, 15, 15, 15, 15,
140 15, 15, 15, 15, 15, 15, 15, 15,
141 15, 15, 15, 15, 15, 15, 15, 15,
142 15, 15, 15, 15, 15, 15, 15, 15,
143 15, 15, 15, 15, 15, 15, 15, 15,
144 15, 15, 15, 15, 15, 15, 15, 15,
145 15, 15, 15, 15, 15, 15, 15, 15,
146 15, 15, 15, 15, 15, 15, 15, 15,
147 15, 15, 15, 15, 15, 15, 15, 15,
148 15, 15, 15, 15, 15, 15, 15, 15,
149 15, 15, 15, 15, 15, 15, 15, 15,
150 15, 15, 15, 15, 15, 15, 15, 15,
151 15, 15, 15, 15, 15, 15, 15, 15,
152 15, 15, 15, 15, 15, 15, 15, 15,
153 15, 15, 15, 15, 15, 15, 15, 15,
154 15, 15, 15, 15, 15, 15, 15, 15,
155 15, 15, 15, 15, 15, 15, 15, 15,
156 15, 15, 15, 15, 15, 15, 15, 15,
157 15, 15, 15, 15, 15, 15, 15, 15,
158 15, 15, 15, 15, 15, 15, 15, 15,
159 15, 15, 15, 15, 15, 15, 15, 15,
160 4,
161 };
162
163 static const uint8_t dv_vlc_run[409] = {
164 0, 0, 1, 0, 0, 2, 1, 0,
165 0, 3, 4, 0, 0, 5, 6, 2,
166 1, 1, 0, 0, 0, 7, 8, 9,
167 10, 3, 4, 2, 1, 1, 1, 0,
168 0, 0, 0, 0, 0, 11, 12, 13,
169 14, 5, 6, 3, 4, 2, 2, 1,
170 0, 0, 0, 0, 0, 5, 3, 3,
171 2, 1, 1, 1, 0, 1, 6, 4,
172 3, 1, 1, 1, 2, 3, 4, 5,
173 7, 8, 9, 10, 7, 8, 4, 3,
174 2, 2, 2, 2, 2, 1, 1, 1,
175 0, 1, 2, 3, 4, 5, 6, 7,
176 8, 9, 10, 11, 12, 13, 14, 15,
177 16, 17, 18, 19, 20, 21, 22, 23,
178 24, 25, 26, 27, 28, 29, 30, 31,
179 32, 33, 34, 35, 36, 37, 38, 39,
180 40, 41, 42, 43, 44, 45, 46, 47,
181 48, 49, 50, 51, 52, 53, 54, 55,
182 56, 57, 58, 59, 60, 61, 62, 63,
183 0, 0, 0, 0, 0, 0, 0, 0,
184 0, 0, 0, 0, 0, 0, 0, 0,
185 0, 0, 0, 0, 0, 0, 0, 0,
186 0, 0, 0, 0, 0, 0, 0, 0,
187 0, 0, 0, 0, 0, 0, 0, 0,
188 0, 0, 0, 0, 0, 0, 0, 0,
189 0, 0, 0, 0, 0, 0, 0, 0,
190 0, 0, 0, 0, 0, 0, 0, 0,
191 0, 0, 0, 0, 0, 0, 0, 0,
192 0, 0, 0, 0, 0, 0, 0, 0,
193 0, 0, 0, 0, 0, 0, 0, 0,
194 0, 0, 0, 0, 0, 0, 0, 0,
195 0, 0, 0, 0, 0, 0, 0, 0,
196 0, 0, 0, 0, 0, 0, 0, 0,
197 0, 0, 0, 0, 0, 0, 0, 0,
198 0, 0, 0, 0, 0, 0, 0, 0,
199 0, 0, 0, 0, 0, 0, 0, 0,
200 0, 0, 0, 0, 0, 0, 0, 0,
201 0, 0, 0, 0, 0, 0, 0, 0,
202 0, 0, 0, 0, 0, 0, 0, 0,
203 0, 0, 0, 0, 0, 0, 0, 0,
204 0, 0, 0, 0, 0, 0, 0, 0,
205 0, 0, 0, 0, 0, 0, 0, 0,
206 0, 0, 0, 0, 0, 0, 0, 0,
207 0, 0, 0, 0, 0, 0, 0, 0,
208 0, 0, 0, 0, 0, 0, 0, 0,
209 0, 0, 0, 0, 0, 0, 0, 0,
210 0, 0, 0, 0, 0, 0, 0, 0,
211 0, 0, 0, 0, 0, 0, 0, 0,
212 0, 0, 0, 0, 0, 0, 0, 0,
213 0, 0, 0, 0, 0, 0, 0, 0,
214 0, 0, 0, 0, 0, 0, 0, 0,
215 0,
216 };
217
218 static const uint8_t dv_vlc_level[409] = {
219 1, 2, 1, 3, 4, 1, 2, 5,
220 6, 1, 1, 7, 8, 1, 1, 2,
221 3, 4, 9, 10, 11, 1, 1, 1,
222 1, 2, 2, 3, 5, 6, 7, 12,
223 13, 14, 15, 16, 17, 1, 1, 1,
224 1, 2, 2, 3, 3, 4, 5, 8,
225 18, 19, 20, 21, 22, 3, 4, 5,
226 6, 9, 10, 11, 0, 0, 3, 4,
227 6, 12, 13, 14, 0, 0, 0, 0,
228 2, 2, 2, 2, 3, 3, 5, 7,
229 7, 8, 9, 10, 11, 15, 16, 17,
230 0, 0, 0, 0, 0, 0, 0, 0,
231 0, 0, 0, 0, 0, 0, 0, 0,
232 0, 0, 0, 0, 0, 0, 0, 0,
233 0, 0, 0, 0, 0, 0, 0, 0,
234 0, 0, 0, 0, 0, 0, 0, 0,
235 0, 0, 0, 0, 0, 0, 0, 0,
236 0, 0, 0, 0, 0, 0, 0, 0,
237 0, 0, 0, 0, 0, 0, 0, 0,
238 0, 1, 2, 3, 4, 5, 6, 7,
239 8, 9, 10, 11, 12, 13, 14, 15,
240 16, 17, 18, 19, 20, 21, 22, 23,
241 24, 25, 26, 27, 28, 29, 30, 31,
242 32, 33, 34, 35, 36, 37, 38, 39,
243 40, 41, 42, 43, 44, 45, 46, 47,
244 48, 49, 50, 51, 52, 53, 54, 55,
245 56, 57, 58, 59, 60, 61, 62, 63,
246 64, 65, 66, 67, 68, 69, 70, 71,
247 72, 73, 74, 75, 76, 77, 78, 79,
248 80, 81, 82, 83, 84, 85, 86, 87,
249 88, 89, 90, 91, 92, 93, 94, 95,
250 96, 97, 98, 99, 100, 101, 102, 103,
251 104, 105, 106, 107, 108, 109, 110, 111,
252 112, 113, 114, 115, 116, 117, 118, 119,
253 120, 121, 122, 123, 124, 125, 126, 127,
254 128, 129, 130, 131, 132, 133, 134, 135,
255 136, 137, 138, 139, 140, 141, 142, 143,
256 144, 145, 146, 147, 148, 149, 150, 151,
257 152, 153, 154, 155, 156, 157, 158, 159,
258 160, 161, 162, 163, 164, 165, 166, 167,
259 168, 169, 170, 171, 172, 173, 174, 175,
260 176, 177, 178, 179, 180, 181, 182, 183,
261 184, 185, 186, 187, 188, 189, 190, 191,
262 192, 193, 194, 195, 196, 197, 198, 199,
263 200, 201, 202, 203, 204, 205, 206, 207,
264 208, 209, 210, 211, 212, 213, 214, 215,
265 216, 217, 218, 219, 220, 221, 222, 223,
266 224, 225, 226, 227, 228, 229, 230, 231,
267 232, 233, 234, 235, 236, 237, 238, 239,
268 240, 241, 242, 243, 244, 245, 246, 247,
269 248, 249, 250, 251, 252, 253, 254, 255,
270 0,
271 };
272
273 /* Specific zigzag scan for 248 idct. NOTE that unlike the
274 specification, we interleave the fields */
275 static const uint8_t dv_248_zigzag[64] = {
276 0, 8, 1, 9, 16, 24, 2, 10,
277 17, 25, 32, 40, 48, 56, 33, 41,
278 18, 26, 3, 11, 4, 12, 19, 27,
279 34, 42, 49, 57, 50, 58, 35, 43,
280 20, 28, 5, 13, 6, 14, 21, 29,
281 36, 44, 51, 59, 52, 60, 37, 45,
282 22, 30, 7, 15, 23, 31, 38, 46,
283 53, 61, 54, 62, 39, 47, 55, 63,
284 };
285
286 /* unquant tables (not used directly) */
287 static const uint8_t dv_88_areas[64] = {
288 0,0,0,1,1,1,2,2,
289 0,0,1,1,1,2,2,2,
290 0,1,1,1,2,2,2,3,
291 1,1,1,2,2,2,3,3,
292 1,1,2,2,2,3,3,3,
293 1,2,2,2,3,3,3,3,
294 2,2,2,3,3,3,3,3,
295 2,2,3,3,3,3,3,3,
296 };
297
298 static const uint8_t dv_248_areas[64] = {
299 0,0,1,1,1,2,2,3,
300 0,0,1,1,2,2,2,3,
301 0,1,1,2,2,2,3,3,
302 0,1,1,2,2,2,3,3,
303 1,1,2,2,2,3,3,3,
304 1,1,2,2,2,3,3,3,
305 1,2,2,2,3,3,3,3,
306 1,2,2,3,3,3,3,3,
307 };
308
309 static const uint8_t dv_quant_shifts[22][4] = {
310 { 3,3,4,4 },
311 { 3,3,4,4 },
312 { 2,3,3,4 },
313 { 2,3,3,4 },
314 { 2,2,3,3 },
315 { 2,2,3,3 },
316 { 1,2,2,3 },
317 { 1,2,2,3 },
318 { 1,1,2,2 },
319 { 1,1,2,2 },
320 { 0,1,1,2 },
321 { 0,1,1,2 },
322 { 0,0,1,1 },
323 { 0,0,1,1 },
324 { 0,0,0,1 },
325 { 0,0,0,0 },
326 { 0,0,0,0 },
327 { 0,0,0,0 },
328 { 0,0,0,0 },
329 { 0,0,0,0 },
330 { 0,0,0,0 },
331 { 0,0,0,0 },
332 };
333
334 static const uint8_t dv_quant_offset[4] = { 6, 3, 0, 1 };
335
336 /* NOTE: I prefer hardcoding the positionning of dv blocks, it is
337 simpler :-) */
338
339 static const uint16_t dv_place_420[1620] = {
340 0x0c24, 0x2412, 0x3036, 0x0000, 0x1848,
341 0x0e24, 0x2612, 0x3236, 0x0200, 0x1a48,
342 0x1024, 0x2812, 0x3436, 0x0400, 0x1c48,
343 0x1026, 0x2814, 0x3438, 0x0402, 0x1c4a,
344 0x0e26, 0x2614, 0x3238, 0x0202, 0x1a4a,
345 0x0c26, 0x2414, 0x3038, 0x0002, 0x184a,
346 0x0c28, 0x2416, 0x303a, 0x0004, 0x184c,
347 0x0e28, 0x2616, 0x323a, 0x0204, 0x1a4c,
348 0x1028, 0x2816, 0x343a, 0x0404, 0x1c4c,
349 0x102a, 0x2818, 0x343c, 0x0406, 0x1c4e,
350 0x0e2a, 0x2618, 0x323c, 0x0206, 0x1a4e,
351 0x0c2a, 0x2418, 0x303c, 0x0006, 0x184e,
352 0x0c2c, 0x241a, 0x303e, 0x0008, 0x1850,
353 0x0e2c, 0x261a, 0x323e, 0x0208, 0x1a50,
354 0x102c, 0x281a, 0x343e, 0x0408, 0x1c50,
355 0x102e, 0x281c, 0x3440, 0x040a, 0x1c52,
356 0x0e2e, 0x261c, 0x3240, 0x020a, 0x1a52,
357 0x0c2e, 0x241c, 0x3040, 0x000a, 0x1852,
358 0x0c30, 0x241e, 0x3042, 0x000c, 0x1854,
359 0x0e30, 0x261e, 0x3242, 0x020c, 0x1a54,
360 0x1030, 0x281e, 0x3442, 0x040c, 0x1c54,
361 0x1032, 0x2820, 0x3444, 0x040e, 0x1c56,
362 0x0e32, 0x2620, 0x3244, 0x020e, 0x1a56,
363 0x0c32, 0x2420, 0x3044, 0x000e, 0x1856,
364 0x0c34, 0x2422, 0x3046, 0x0010, 0x1858,
365 0x0e34, 0x2622, 0x3246, 0x0210, 0x1a58,
366 0x1034, 0x2822, 0x3446, 0x0410, 0x1c58,
367 0x1224, 0x2a12, 0x3636, 0x0600, 0x1e48,
368 0x1424, 0x2c12, 0x3836, 0x0800, 0x2048,
369 0x1624, 0x2e12, 0x3a36, 0x0a00, 0x2248,
370 0x1626, 0x2e14, 0x3a38, 0x0a02, 0x224a,
371 0x1426, 0x2c14, 0x3838, 0x0802, 0x204a,
372 0x1226, 0x2a14, 0x3638, 0x0602, 0x1e4a,
373 0x1228, 0x2a16, 0x363a, 0x0604, 0x1e4c,
374 0x1428, 0x2c16, 0x383a, 0x0804, 0x204c,
375 0x1628, 0x2e16, 0x3a3a, 0x0a04, 0x224c,
376 0x162a, 0x2e18, 0x3a3c, 0x0a06, 0x224e,
377 0x142a, 0x2c18, 0x383c, 0x0806, 0x204e,
378 0x122a, 0x2a18, 0x363c, 0x0606, 0x1e4e,
379 0x122c, 0x2a1a, 0x363e, 0x0608, 0x1e50,
380 0x142c, 0x2c1a, 0x383e, 0x0808, 0x2050,
381 0x162c, 0x2e1a, 0x3a3e, 0x0a08, 0x2250,
382 0x162e, 0x2e1c, 0x3a40, 0x0a0a, 0x2252,
383 0x142e, 0x2c1c, 0x3840, 0x080a, 0x2052,
384 0x122e, 0x2a1c, 0x3640, 0x060a, 0x1e52,
385 0x1230, 0x2a1e, 0x3642, 0x060c, 0x1e54,
386 0x1430, 0x2c1e, 0x3842, 0x080c, 0x2054,
387 0x1630, 0x2e1e, 0x3a42, 0x0a0c, 0x2254,
388 0x1632, 0x2e20, 0x3a44, 0x0a0e, 0x2256,
389 0x1432, 0x2c20, 0x3844, 0x080e, 0x2056,
390 0x1232, 0x2a20, 0x3644, 0x060e, 0x1e56,
391 0x1234, 0x2a22, 0x3646, 0x0610, 0x1e58,
392 0x1434, 0x2c22, 0x3846, 0x0810, 0x2058,
393 0x1634, 0x2e22, 0x3a46, 0x0a10, 0x2258,
394 0x1824, 0x3012, 0x3c36, 0x0c00, 0x2448,
395 0x1a24, 0x3212, 0x3e36, 0x0e00, 0x2648,
396 0x1c24, 0x3412, 0x4036, 0x1000, 0x2848,
397 0x1c26, 0x3414, 0x4038, 0x1002, 0x284a,
398 0x1a26, 0x3214, 0x3e38, 0x0e02, 0x264a,
399 0x1826, 0x3014, 0x3c38, 0x0c02, 0x244a,
400 0x1828, 0x3016, 0x3c3a, 0x0c04, 0x244c,
401 0x1a28, 0x3216, 0x3e3a, 0x0e04, 0x264c,
402 0x1c28, 0x3416, 0x403a, 0x1004, 0x284c,
403 0x1c2a, 0x3418, 0x403c, 0x1006, 0x284e,
404 0x1a2a, 0x3218, 0x3e3c, 0x0e06, 0x264e,
405 0x182a, 0x3018, 0x3c3c, 0x0c06, 0x244e,
406 0x182c, 0x301a, 0x3c3e, 0x0c08, 0x2450,
407 0x1a2c, 0x321a, 0x3e3e, 0x0e08, 0x2650,
408 0x1c2c, 0x341a, 0x403e, 0x1008, 0x2850,
409 0x1c2e, 0x341c, 0x4040, 0x100a, 0x2852,
410 0x1a2e, 0x321c, 0x3e40, 0x0e0a, 0x2652,
411 0x182e, 0x301c, 0x3c40, 0x0c0a, 0x2452,
412 0x1830, 0x301e, 0x3c42, 0x0c0c, 0x2454,
413 0x1a30, 0x321e, 0x3e42, 0x0e0c, 0x2654,
414 0x1c30, 0x341e, 0x4042, 0x100c, 0x2854,
415 0x1c32, 0x3420, 0x4044, 0x100e, 0x2856,
416 0x1a32, 0x3220, 0x3e44, 0x0e0e, 0x2656,
417 0x1832, 0x3020, 0x3c44, 0x0c0e, 0x2456,
418 0x1834, 0x3022, 0x3c46, 0x0c10, 0x2458,
419 0x1a34, 0x3222, 0x3e46, 0x0e10, 0x2658,
420 0x1c34, 0x3422, 0x4046, 0x1010, 0x2858,
421 0x1e24, 0x3612, 0x4236, 0x1200, 0x2a48,
422 0x2024, 0x3812, 0x4436, 0x1400, 0x2c48,
423 0x2224, 0x3a12, 0x4636, 0x1600, 0x2e48,
424 0x2226, 0x3a14, 0x4638, 0x1602, 0x2e4a,
425 0x2026, 0x3814, 0x4438, 0x1402, 0x2c4a,
426 0x1e26, 0x3614, 0x4238, 0x1202, 0x2a4a,
427 0x1e28, 0x3616, 0x423a, 0x1204, 0x2a4c,
428 0x2028, 0x3816, 0x443a, 0x1404, 0x2c4c,
429 0x2228, 0x3a16, 0x463a, 0x1604, 0x2e4c,
430 0x222a, 0x3a18, 0x463c, 0x1606, 0x2e4e,
431 0x202a, 0x3818, 0x443c, 0x1406, 0x2c4e,
432 0x1e2a, 0x3618, 0x423c, 0x1206, 0x2a4e,
433 0x1e2c, 0x361a, 0x423e, 0x1208, 0x2a50,
434 0x202c, 0x381a, 0x443e, 0x1408, 0x2c50,
435 0x222c, 0x3a1a, 0x463e, 0x1608, 0x2e50,
436 0x222e, 0x3a1c, 0x4640, 0x160a, 0x2e52,
437 0x202e, 0x381c, 0x4440, 0x140a, 0x2c52,
438 0x1e2e, 0x361c, 0x4240, 0x120a, 0x2a52,
439 0x1e30, 0x361e, 0x4242, 0x120c, 0x2a54,
440 0x2030, 0x381e, 0x4442, 0x140c, 0x2c54,
441 0x2230, 0x3a1e, 0x4642, 0x160c, 0x2e54,
442 0x2232, 0x3a20, 0x4644, 0x160e, 0x2e56,
443 0x2032, 0x3820, 0x4444, 0x140e, 0x2c56,
444 0x1e32, 0x3620, 0x4244, 0x120e, 0x2a56,
445 0x1e34, 0x3622, 0x4246, 0x1210, 0x2a58,
446 0x2034, 0x3822, 0x4446, 0x1410, 0x2c58,
447 0x2234, 0x3a22, 0x4646, 0x1610, 0x2e58,
448 0x2424, 0x3c12, 0x0036, 0x1800, 0x3048,
449 0x2624, 0x3e12, 0x0236, 0x1a00, 0x3248,
450 0x2824, 0x4012, 0x0436, 0x1c00, 0x3448,
451 0x2826, 0x4014, 0x0438, 0x1c02, 0x344a,
452 0x2626, 0x3e14, 0x0238, 0x1a02, 0x324a,
453 0x2426, 0x3c14, 0x0038, 0x1802, 0x304a,
454 0x2428, 0x3c16, 0x003a, 0x1804, 0x304c,
455 0x2628, 0x3e16, 0x023a, 0x1a04, 0x324c,
456 0x2828, 0x4016, 0x043a, 0x1c04, 0x344c,
457 0x282a, 0x4018, 0x043c, 0x1c06, 0x344e,
458 0x262a, 0x3e18, 0x023c, 0x1a06, 0x324e,
459 0x242a, 0x3c18, 0x003c, 0x1806, 0x304e,
460 0x242c, 0x3c1a, 0x003e, 0x1808, 0x3050,
461 0x262c, 0x3e1a, 0x023e, 0x1a08, 0x3250,
462 0x282c, 0x401a, 0x043e, 0x1c08, 0x3450,
463 0x282e, 0x401c, 0x0440, 0x1c0a, 0x3452,
464 0x262e, 0x3e1c, 0x0240, 0x1a0a, 0x3252,
465 0x242e, 0x3c1c, 0x0040, 0x180a, 0x3052,
466 0x2430, 0x3c1e, 0x0042, 0x180c, 0x3054,
467 0x2630, 0x3e1e, 0x0242, 0x1a0c, 0x3254,
468 0x2830, 0x401e, 0x0442, 0x1c0c, 0x3454,
469 0x2832, 0x4020, 0x0444, 0x1c0e, 0x3456,
470 0x2632, 0x3e20, 0x0244, 0x1a0e, 0x3256,
471 0x2432, 0x3c20, 0x0044, 0x180e, 0x3056,
472 0x2434, 0x3c22, 0x0046, 0x1810, 0x3058,
473 0x2634, 0x3e22, 0x0246, 0x1a10, 0x3258,
474 0x2834, 0x4022, 0x0446, 0x1c10, 0x3458,
475 0x2a24, 0x4212, 0x0636, 0x1e00, 0x3648,
476 0x2c24, 0x4412, 0x0836, 0x2000, 0x3848,
477 0x2e24, 0x4612, 0x0a36, 0x2200, 0x3a48,
478 0x2e26, 0x4614, 0x0a38, 0x2202, 0x3a4a,
479 0x2c26, 0x4414, 0x0838, 0x2002, 0x384a,
480 0x2a26, 0x4214, 0x0638, 0x1e02, 0x364a,
481 0x2a28, 0x4216, 0x063a, 0x1e04, 0x364c,
482 0x2c28, 0x4416, 0x083a, 0x2004, 0x384c,
483 0x2e28, 0x4616, 0x0a3a, 0x2204, 0x3a4c,
484 0x2e2a, 0x4618, 0x0a3c, 0x2206, 0x3a4e,
485 0x2c2a, 0x4418, 0x083c, 0x2006, 0x384e,
486 0x2a2a, 0x4218, 0x063c, 0x1e06, 0x364e,
487 0x2a2c, 0x421a, 0x063e, 0x1e08, 0x3650,
488 0x2c2c, 0x441a, 0x083e, 0x2008, 0x3850,
489 0x2e2c, 0x461a, 0x0a3e, 0x2208, 0x3a50,
490 0x2e2e, 0x461c, 0x0a40, 0x220a, 0x3a52,
491 0x2c2e, 0x441c, 0x0840, 0x200a, 0x3852,
492 0x2a2e, 0x421c, 0x0640, 0x1e0a, 0x3652,
493 0x2a30, 0x421e, 0x0642, 0x1e0c, 0x3654,
494 0x2c30, 0x441e, 0x0842, 0x200c, 0x3854,
495 0x2e30, 0x461e, 0x0a42, 0x220c, 0x3a54,
496 0x2e32, 0x4620, 0x0a44, 0x220e, 0x3a56,
497 0x2c32, 0x4420, 0x0844, 0x200e, 0x3856,
498 0x2a32, 0x4220, 0x0644, 0x1e0e, 0x3656,
499 0x2a34, 0x4222, 0x0646, 0x1e10, 0x3658,
500 0x2c34, 0x4422, 0x0846, 0x2010, 0x3858,
501 0x2e34, 0x4622, 0x0a46, 0x2210, 0x3a58,
502 0x3024, 0x0012, 0x0c36, 0x2400, 0x3c48,
503 0x3224, 0x0212, 0x0e36, 0x2600, 0x3e48,
504 0x3424, 0x0412, 0x1036, 0x2800, 0x4048,
505 0x3426, 0x0414, 0x1038, 0x2802, 0x404a,
506 0x3226, 0x0214, 0x0e38, 0x2602, 0x3e4a,
507 0x3026, 0x0014, 0x0c38, 0x2402, 0x3c4a,
508 0x3028, 0x0016, 0x0c3a, 0x2404, 0x3c4c,
509 0x3228, 0x0216, 0x0e3a, 0x2604, 0x3e4c,
510 0x3428, 0x0416, 0x103a, 0x2804, 0x404c,
511 0x342a, 0x0418, 0x103c, 0x2806, 0x404e,
512 0x322a, 0x0218, 0x0e3c, 0x2606, 0x3e4e,
513 0x302a, 0x0018, 0x0c3c, 0x2406, 0x3c4e,
514 0x302c, 0x001a, 0x0c3e, 0x2408, 0x3c50,
515 0x322c, 0x021a, 0x0e3e, 0x2608, 0x3e50,
516 0x342c, 0x041a, 0x103e, 0x2808, 0x4050,
517 0x342e, 0x041c, 0x1040, 0x280a, 0x4052,
518 0x322e, 0x021c, 0x0e40, 0x260a, 0x3e52,
519 0x302e, 0x001c, 0x0c40, 0x240a, 0x3c52,
520 0x3030, 0x001e, 0x0c42, 0x240c, 0x3c54,
521 0x3230, 0x021e, 0x0e42, 0x260c, 0x3e54,
522 0x3430, 0x041e, 0x1042, 0x280c, 0x4054,
523 0x3432, 0x0420, 0x1044, 0x280e, 0x4056,
524 0x3232, 0x0220, 0x0e44, 0x260e, 0x3e56,
525 0x3032, 0x0020, 0x0c44, 0x240e, 0x3c56,
526 0x3034, 0x0022, 0x0c46, 0x2410, 0x3c58,
527 0x3234, 0x0222, 0x0e46, 0x2610, 0x3e58,
528 0x3434, 0x0422, 0x1046, 0x2810, 0x4058,
529 0x3624, 0x0612, 0x1236, 0x2a00, 0x4248,
530 0x3824, 0x0812, 0x1436, 0x2c00, 0x4448,
531 0x3a24, 0x0a12, 0x1636, 0x2e00, 0x4648,
532 0x3a26, 0x0a14, 0x1638, 0x2e02, 0x464a,
533 0x3826, 0x0814, 0x1438, 0x2c02, 0x444a,
534 0x3626, 0x0614, 0x1238, 0x2a02, 0x424a,
535 0x3628, 0x0616, 0x123a, 0x2a04, 0x424c,
536 0x3828, 0x0816, 0x143a, 0x2c04, 0x444c,
537 0x3a28, 0x0a16, 0x163a, 0x2e04, 0x464c,
538 0x3a2a, 0x0a18, 0x163c, 0x2e06, 0x464e,
539 0x382a, 0x0818, 0x143c, 0x2c06, 0x444e,
540 0x362a, 0x0618, 0x123c, 0x2a06, 0x424e,
541 0x362c, 0x061a, 0x123e, 0x2a08, 0x4250,
542 0x382c, 0x081a, 0x143e, 0x2c08, 0x4450,
543 0x3a2c, 0x0a1a, 0x163e, 0x2e08, 0x4650,
544 0x3a2e, 0x0a1c, 0x1640, 0x2e0a, 0x4652,
545 0x382e, 0x081c, 0x1440, 0x2c0a, 0x4452,
546 0x362e, 0x061c, 0x1240, 0x2a0a, 0x4252,
547 0x3630, 0x061e, 0x1242, 0x2a0c, 0x4254,
548 0x3830, 0x081e, 0x1442, 0x2c0c, 0x4454,
549 0x3a30, 0x0a1e, 0x1642, 0x2e0c, 0x4654,
550 0x3a32, 0x0a20, 0x1644, 0x2e0e, 0x4656,
551 0x3832, 0x0820, 0x1444, 0x2c0e, 0x4456,
552 0x3632, 0x0620, 0x1244, 0x2a0e, 0x4256,
553 0x3634, 0x0622, 0x1246, 0x2a10, 0x4258,
554 0x3834, 0x0822, 0x1446, 0x2c10, 0x4458,
555 0x3a34, 0x0a22, 0x1646, 0x2e10, 0x4658,
556 0x3c24, 0x0c12, 0x1836, 0x3000, 0x0048,
557 0x3e24, 0x0e12, 0x1a36, 0x3200, 0x0248,
558 0x4024, 0x1012, 0x1c36, 0x3400, 0x0448,
559 0x4026, 0x1014, 0x1c38, 0x3402, 0x044a,
560 0x3e26, 0x0e14, 0x1a38, 0x3202, 0x024a,
561 0x3c26, 0x0c14, 0x1838, 0x3002, 0x004a,
562 0x3c28, 0x0c16, 0x183a, 0x3004, 0x004c,
563 0x3e28, 0x0e16, 0x1a3a, 0x3204, 0x024c,
564 0x4028, 0x1016, 0x1c3a, 0x3404, 0x044c,
565 0x402a, 0x1018, 0x1c3c, 0x3406, 0x044e,
566 0x3e2a, 0x0e18, 0x1a3c, 0x3206, 0x024e,
567 0x3c2a, 0x0c18, 0x183c, 0x3006, 0x004e,
568 0x3c2c, 0x0c1a, 0x183e, 0x3008, 0x0050,
569 0x3e2c, 0x0e1a, 0x1a3e, 0x3208, 0x0250,
570 0x402c, 0x101a, 0x1c3e, 0x3408, 0x0450,
571 0x402e, 0x101c, 0x1c40, 0x340a, 0x0452,
572 0x3e2e, 0x0e1c, 0x1a40, 0x320a, 0x0252,
573 0x3c2e, 0x0c1c, 0x1840, 0x300a, 0x0052,
574 0x3c30, 0x0c1e, 0x1842, 0x300c, 0x0054,
575 0x3e30, 0x0e1e, 0x1a42, 0x320c, 0x0254,
576 0x4030, 0x101e, 0x1c42, 0x340c, 0x0454,
577 0x4032, 0x1020, 0x1c44, 0x340e, 0x0456,
578 0x3e32, 0x0e20, 0x1a44, 0x320e, 0x0256,
579 0x3c32, 0x0c20, 0x1844, 0x300e, 0x0056,
580 0x3c34, 0x0c22, 0x1846, 0x3010, 0x0058,
581 0x3e34, 0x0e22, 0x1a46, 0x3210, 0x0258,
582 0x4034, 0x1022, 0x1c46, 0x3410, 0x0458,
583 0x4224, 0x1212, 0x1e36, 0x3600, 0x0648,
584 0x4424, 0x1412, 0x2036, 0x3800, 0x0848,
585 0x4624, 0x1612, 0x2236, 0x3a00, 0x0a48,
586 0x4626, 0x1614, 0x2238, 0x3a02, 0x0a4a,
587 0x4426, 0x1414, 0x2038, 0x3802, 0x084a,
588 0x4226, 0x1214, 0x1e38, 0x3602, 0x064a,
589 0x4228, 0x1216, 0x1e3a, 0x3604, 0x064c,
590 0x4428, 0x1416, 0x203a, 0x3804, 0x084c,
591 0x4628, 0x1616, 0x223a, 0x3a04, 0x0a4c,
592 0x462a, 0x1618, 0x223c, 0x3a06, 0x0a4e,
593 0x442a, 0x1418, 0x203c, 0x3806, 0x084e,
594 0x422a, 0x1218, 0x1e3c, 0x3606, 0x064e,
595 0x422c, 0x121a, 0x1e3e, 0x3608, 0x0650,
596 0x442c, 0x141a, 0x203e, 0x3808, 0x0850,
597 0x462c, 0x161a, 0x223e, 0x3a08, 0x0a50,
598 0x462e, 0x161c, 0x2240, 0x3a0a, 0x0a52,
599 0x442e, 0x141c, 0x2040, 0x380a, 0x0852,
600 0x422e, 0x121c, 0x1e40, 0x360a, 0x0652,
601 0x4230, 0x121e, 0x1e42, 0x360c, 0x0654,
602 0x4430, 0x141e, 0x2042, 0x380c, 0x0854,
603 0x4630, 0x161e, 0x2242, 0x3a0c, 0x0a54,
604 0x4632, 0x1620, 0x2244, 0x3a0e, 0x0a56,
605 0x4432, 0x1420, 0x2044, 0x380e, 0x0856,
606 0x4232, 0x1220, 0x1e44, 0x360e, 0x0656,
607 0x4234, 0x1222, 0x1e46, 0x3610, 0x0658,
608 0x4434, 0x1422, 0x2046, 0x3810, 0x0858,
609 0x4634, 0x1622, 0x2246, 0x3a10, 0x0a58,
610 0x0024, 0x1812, 0x2436, 0x3c00, 0x0c48,
611 0x0224, 0x1a12, 0x2636, 0x3e00, 0x0e48,
612 0x0424, 0x1c12, 0x2836, 0x4000, 0x1048,
613 0x0426, 0x1c14, 0x2838, 0x4002, 0x104a,
614 0x0226, 0x1a14, 0x2638, 0x3e02, 0x0e4a,
615 0x0026, 0x1814, 0x2438, 0x3c02, 0x0c4a,
616 0x0028, 0x1816, 0x243a, 0x3c04, 0x0c4c,
617 0x0228, 0x1a16, 0x263a, 0x3e04, 0x0e4c,
618 0x0428, 0x1c16, 0x283a, 0x4004, 0x104c,
619 0x042a, 0x1c18, 0x283c, 0x4006, 0x104e,
620 0x022a, 0x1a18, 0x263c, 0x3e06, 0x0e4e,
621 0x002a, 0x1818, 0x243c, 0x3c06, 0x0c4e,
622 0x002c, 0x181a, 0x243e, 0x3c08, 0x0c50,
623 0x022c, 0x1a1a, 0x263e, 0x3e08, 0x0e50,
624 0x042c, 0x1c1a, 0x283e, 0x4008, 0x1050,
625 0x042e, 0x1c1c, 0x2840, 0x400a, 0x1052,
626 0x022e, 0x1a1c, 0x2640, 0x3e0a, 0x0e52,
627 0x002e, 0x181c, 0x2440, 0x3c0a, 0x0c52,
628 0x0030, 0x181e, 0x2442, 0x3c0c, 0x0c54,
629 0x0230, 0x1a1e, 0x2642, 0x3e0c, 0x0e54,
630 0x0430, 0x1c1e, 0x2842, 0x400c, 0x1054,
631 0x0432, 0x1c20, 0x2844, 0x400e, 0x1056,
632 0x0232, 0x1a20, 0x2644, 0x3e0e, 0x0e56,
633 0x0032, 0x1820, 0x2444, 0x3c0e, 0x0c56,
634 0x0034, 0x1822, 0x2446, 0x3c10, 0x0c58,
635 0x0234, 0x1a22, 0x2646, 0x3e10, 0x0e58,
636 0x0434, 0x1c22, 0x2846, 0x4010, 0x1058,
637 0x0624, 0x1e12, 0x2a36, 0x4200, 0x1248,
638 0x0824, 0x2012, 0x2c36, 0x4400, 0x1448,
639 0x0a24, 0x2212, 0x2e36, 0x4600, 0x1648,
640 0x0a26, 0x2214, 0x2e38, 0x4602, 0x164a,
641 0x0826, 0x2014, 0x2c38, 0x4402, 0x144a,
642 0x0626, 0x1e14, 0x2a38, 0x4202, 0x124a,
643 0x0628, 0x1e16, 0x2a3a, 0x4204, 0x124c,
644 0x0828, 0x2016, 0x2c3a, 0x4404, 0x144c,
645 0x0a28, 0x2216, 0x2e3a, 0x4604, 0x164c,
646 0x0a2a, 0x2218, 0x2e3c, 0x4606, 0x164e,
647 0x082a, 0x2018, 0x2c3c, 0x4406, 0x144e,
648 0x062a, 0x1e18, 0x2a3c, 0x4206, 0x124e,
649 0x062c, 0x1e1a, 0x2a3e, 0x4208, 0x1250,
650 0x082c, 0x201a, 0x2c3e, 0x4408, 0x1450,
651 0x0a2c, 0x221a, 0x2e3e, 0x4608, 0x1650,
652 0x0a2e, 0x221c, 0x2e40, 0x460a, 0x1652,
653 0x082e, 0x201c, 0x2c40, 0x440a, 0x1452,
654 0x062e, 0x1e1c, 0x2a40, 0x420a, 0x1252,
655 0x0630, 0x1e1e, 0x2a42, 0x420c, 0x1254,
656 0x0830, 0x201e, 0x2c42, 0x440c, 0x1454,
657 0x0a30, 0x221e, 0x2e42, 0x460c, 0x1654,
658 0x0a32, 0x2220, 0x2e44, 0x460e, 0x1656,
659 0x0832, 0x2020, 0x2c44, 0x440e, 0x1456,
660 0x0632, 0x1e20, 0x2a44, 0x420e, 0x1256,
661 0x0634, 0x1e22, 0x2a46, 0x4210, 0x1258,
662 0x0834, 0x2022, 0x2c46, 0x4410, 0x1458,
663 0x0a34, 0x2222, 0x2e46, 0x4610, 0x1658,
664 };
665
666 static const uint16_t dv_place_411P[1620] = {
667 0x0c24, 0x2710, 0x3334, 0x0000, 0x1848,
668 0x0d24, 0x2810, 0x3434, 0x0100, 0x1948,
669 0x0e24, 0x2910, 0x3534, 0x0200, 0x1a48,
670 0x0f24, 0x2914, 0x3538, 0x0300, 0x1b48,
671 0x1024, 0x2814, 0x3438, 0x0400, 0x1c48,
672 0x1124, 0x2714, 0x3338, 0x0500, 0x1d48,
673 0x1128, 0x2614, 0x3238, 0x0504, 0x1d4c,
674 0x1028, 0x2514, 0x3138, 0x0404, 0x1c4c,
675 0x0f28, 0x2414, 0x3038, 0x0304, 0x1b4c,
676 0x0e28, 0x2418, 0x303c, 0x0204, 0x1a4c,
677 0x0d28, 0x2518, 0x313c, 0x0104, 0x194c,
678 0x0c28, 0x2618, 0x323c, 0x0004, 0x184c,
679 0x0c2c, 0x2718, 0x333c, 0x0008, 0x1850,
680 0x0d2c, 0x2818, 0x343c, 0x0108, 0x1950,
681 0x0e2c, 0x2918, 0x353c, 0x0208, 0x1a50,
682 0x0f2c, 0x291c, 0x3540, 0x0308, 0x1b50,
683 0x102c, 0x281c, 0x3440, 0x0408, 0x1c50,
684 0x112c, 0x271c, 0x3340, 0x0508, 0x1d50,
685 0x1130, 0x261c, 0x3240, 0x050c, 0x1d54,
686 0x1030, 0x251c, 0x3140, 0x040c, 0x1c54,
687 0x0f30, 0x241c, 0x3040, 0x030c, 0x1b54,
688 0x0e30, 0x2420, 0x3044, 0x020c, 0x1a54,
689 0x0d30, 0x2520, 0x3144, 0x010c, 0x1954,
690 0x0c30, 0x2620, 0x3244, 0x000c, 0x1854,
691 0x0c34, 0x2720, 0x3344, 0x0010, 0x1858,
692 0x0d34, 0x2820, 0x3444, 0x0110, 0x1a58,
693 0x0e34, 0x2920, 0x3544, 0x0210, 0x1c58,
694 0x1224, 0x2d10, 0x3934, 0x0600, 0x1e48,
695 0x1324, 0x2e10, 0x3a34, 0x0700, 0x1f48,
696 0x1424, 0x2f10, 0x3b34, 0x0800, 0x2048,
697 0x1524, 0x2f14, 0x3b38, 0x0900, 0x2148,
698 0x1624, 0x2e14, 0x3a38, 0x0a00, 0x2248,
699 0x1724, 0x2d14, 0x3938, 0x0b00, 0x2348,
700 0x1728, 0x2c14, 0x3838, 0x0b04, 0x234c,
701 0x1628, 0x2b14, 0x3738, 0x0a04, 0x224c,
702 0x1528, 0x2a14, 0x3638, 0x0904, 0x214c,
703 0x1428, 0x2a18, 0x363c, 0x0804, 0x204c,
704 0x1328, 0x2b18, 0x373c, 0x0704, 0x1f4c,
705 0x1228, 0x2c18, 0x383c, 0x0604, 0x1e4c,
706 0x122c, 0x2d18, 0x393c, 0x0608, 0x1e50,
707 0x132c, 0x2e18, 0x3a3c, 0x0708, 0x1f50,
708 0x142c, 0x2f18, 0x3b3c, 0x0808, 0x2050,
709 0x152c, 0x2f1c, 0x3b40, 0x0908, 0x2150,
710 0x162c, 0x2e1c, 0x3a40, 0x0a08, 0x2250,
711 0x172c, 0x2d1c, 0x3940, 0x0b08, 0x2350,
712 0x1730, 0x2c1c, 0x3840, 0x0b0c, 0x2354,
713 0x1630, 0x2b1c, 0x3740, 0x0a0c, 0x2254,
714 0x1530, 0x2a1c, 0x3640, 0x090c, 0x2154,
715 0x1430, 0x2a20, 0x3644, 0x080c, 0x2054,
716 0x1330, 0x2b20, 0x3744, 0x070c, 0x1f54,
717 0x1230, 0x2c20, 0x3844, 0x060c, 0x1e54,
718 0x1234, 0x2d20, 0x3944, 0x0610, 0x1e58,
719 0x1334, 0x2e20, 0x3a44, 0x0710, 0x2058,
720 0x1434, 0x2f20, 0x3b44, 0x0810, 0x2258,
721 0x1824, 0x3310, 0x3f34, 0x0c00, 0x2448,
722 0x1924, 0x3410, 0x4034, 0x0d00, 0x2548,
723 0x1a24, 0x3510, 0x4134, 0x0e00, 0x2648,
724 0x1b24, 0x3514, 0x4138, 0x0f00, 0x2748,
725 0x1c24, 0x3414, 0x4038, 0x1000, 0x2848,
726 0x1d24, 0x3314, 0x3f38, 0x1100, 0x2948,
727 0x1d28, 0x3214, 0x3e38, 0x1104, 0x294c,
728 0x1c28, 0x3114, 0x3d38, 0x1004, 0x284c,
729 0x1b28, 0x3014, 0x3c38, 0x0f04, 0x274c,
730 0x1a28, 0x3018, 0x3c3c, 0x0e04, 0x264c,
731 0x1928, 0x3118, 0x3d3c, 0x0d04, 0x254c,
732 0x1828, 0x3218, 0x3e3c, 0x0c04, 0x244c,
733 0x182c, 0x3318, 0x3f3c, 0x0c08, 0x2450,
734 0x192c, 0x3418, 0x403c, 0x0d08, 0x2550,
735 0x1a2c, 0x3518, 0x413c, 0x0e08, 0x2650,
736 0x1b2c, 0x351c, 0x4140, 0x0f08, 0x2750,
737 0x1c2c, 0x341c, 0x4040, 0x1008, 0x2850,
738 0x1d2c, 0x331c, 0x3f40, 0x1108, 0x2950,
739 0x1d30, 0x321c, 0x3e40, 0x110c, 0x2954,
740 0x1c30, 0x311c, 0x3d40, 0x100c, 0x2854,
741 0x1b30, 0x301c, 0x3c40, 0x0f0c, 0x2754,
742 0x1a30, 0x3020, 0x3c44, 0x0e0c, 0x2654,
743 0x1930, 0x3120, 0x3d44, 0x0d0c, 0x2554,
744 0x1830, 0x3220, 0x3e44, 0x0c0c, 0x2454,
745 0x1834, 0x3320, 0x3f44, 0x0c10, 0x2458,
746 0x1934, 0x3420, 0x4044, 0x0d10, 0x2658,
747 0x1a34, 0x3520, 0x4144, 0x0e10, 0x2858,
748 0x1e24, 0x3910, 0x4534, 0x1200, 0x2a48,
749 0x1f24, 0x3a10, 0x4634, 0x1300, 0x2b48,
750 0x2024, 0x3b10, 0x4734, 0x1400, 0x2c48,
751 0x2124, 0x3b14, 0x4738, 0x1500, 0x2d48,
752 0x2224, 0x3a14, 0x4638, 0x1600, 0x2e48,
753 0x2324, 0x3914, 0x4538, 0x1700, 0x2f48,
754 0x2328, 0x3814, 0x4438, 0x1704, 0x2f4c,
755 0x2228, 0x3714, 0x4338, 0x1604, 0x2e4c,
756 0x2128, 0x3614, 0x4238, 0x1504, 0x2d4c,
757 0x2028, 0x3618, 0x423c, 0x1404, 0x2c4c,
758 0x1f28, 0x3718, 0x433c, 0x1304, 0x2b4c,
759 0x1e28, 0x3818, 0x443c, 0x1204, 0x2a4c,
760 0x1e2c, 0x3918, 0x453c, 0x1208, 0x2a50,
761 0x1f2c, 0x3a18, 0x463c, 0x1308, 0x2b50,
762 0x202c, 0x3b18, 0x473c, 0x1408, 0x2c50,
763 0x212c, 0x3b1c, 0x4740, 0x1508, 0x2d50,
764 0x222c, 0x3a1c, 0x4640, 0x1608, 0x2e50,
765 0x232c, 0x391c, 0x4540, 0x1708, 0x2f50,
766 0x2330, 0x381c, 0x4440, 0x170c, 0x2f54,
767 0x2230, 0x371c, 0x4340, 0x160c, 0x2e54,
768 0x2130, 0x361c, 0x4240, 0x150c, 0x2d54,
769 0x2030, 0x3620, 0x4244, 0x140c, 0x2c54,
770 0x1f30, 0x3720, 0x4344, 0x130c, 0x2b54,
771 0x1e30, 0x3820, 0x4444, 0x120c, 0x2a54,
772 0x1e34, 0x3920, 0x4544, 0x1210, 0x2a58,
773 0x1f34, 0x3a20, 0x4644, 0x1310, 0x2c58,
774 0x2034, 0x3b20, 0x4744, 0x1410, 0x2e58,
775 0x2424, 0x3f10, 0x0334, 0x1800, 0x3048,
776 0x2524, 0x4010, 0x0434, 0x1900, 0x3148,
777 0x2624, 0x4110, 0x0534, 0x1a00, 0x3248,
778 0x2724, 0x4114, 0x0538, 0x1b00, 0x3348,
779 0x2824, 0x4014, 0x0438, 0x1c00, 0x3448,
780 0x2924, 0x3f14, 0x0338, 0x1d00, 0x3548,
781 0x2928, 0x3e14, 0x0238, 0x1d04, 0x354c,
782 0x2828, 0x3d14, 0x0138, 0x1c04, 0x344c,
783 0x2728, 0x3c14, 0x0038, 0x1b04, 0x334c,
784 0x2628, 0x3c18, 0x003c, 0x1a04, 0x324c,
785 0x2528, 0x3d18, 0x013c, 0x1904, 0x314c,
786 0x2428, 0x3e18, 0x023c, 0x1804, 0x304c,
787 0x242c, 0x3f18, 0x033c, 0x1808, 0x3050,
788 0x252c, 0x4018, 0x043c, 0x1908, 0x3150,
789 0x262c, 0x4118, 0x053c, 0x1a08, 0x3250,
790 0x272c, 0x411c, 0x0540, 0x1b08, 0x3350,
791 0x282c, 0x401c, 0x0440, 0x1c08, 0x3450,
792 0x292c, 0x3f1c, 0x0340, 0x1d08, 0x3550,
793 0x2930, 0x3e1c, 0x0240, 0x1d0c, 0x3554,
794 0x2830, 0x3d1c, 0x0140, 0x1c0c, 0x3454,
795 0x2730, 0x3c1c, 0x0040, 0x1b0c, 0x3354,
796 0x2630, 0x3c20, 0x0044, 0x1a0c, 0x3254,
797 0x2530, 0x3d20, 0x0144, 0x190c, 0x3154,
798 0x2430, 0x3e20, 0x0244, 0x180c, 0x3054,
799 0x2434, 0x3f20, 0x0344, 0x1810, 0x3058,
800 0x2534, 0x4020, 0x0444, 0x1910, 0x3258,
801 0x2634, 0x4120, 0x0544, 0x1a10, 0x3458,
802 0x2a24, 0x4510, 0x0934, 0x1e00, 0x3648,
803 0x2b24, 0x4610, 0x0a34, 0x1f00, 0x3748,
804 0x2c24, 0x4710, 0x0b34, 0x2000, 0x3848,
805 0x2d24, 0x4714, 0x0b38, 0x2100, 0x3948,
806 0x2e24, 0x4614, 0x0a38, 0x2200, 0x3a48,
807 0x2f24, 0x4514, 0x0938, 0x2300, 0x3b48,
808 0x2f28, 0x4414, 0x0838, 0x2304, 0x3b4c,
809 0x2e28, 0x4314, 0x0738, 0x2204, 0x3a4c,
810 0x2d28, 0x4214, 0x0638, 0x2104, 0x394c,
811 0x2c28, 0x4218, 0x063c, 0x2004, 0x384c,
812 0x2b28, 0x4318, 0x073c, 0x1f04, 0x374c,
813 0x2a28, 0x4418, 0x083c, 0x1e04, 0x364c,
814 0x2a2c, 0x4518, 0x093c, 0x1e08, 0x3650,
815 0x2b2c, 0x4618, 0x0a3c, 0x1f08, 0x3750,
816 0x2c2c, 0x4718, 0x0b3c, 0x2008, 0x3850,
817 0x2d2c, 0x471c, 0x0b40, 0x2108, 0x3950,
818 0x2e2c, 0x461c, 0x0a40, 0x2208, 0x3a50,
819 0x2f2c, 0x451c, 0x0940, 0x2308, 0x3b50,
820 0x2f30, 0x441c, 0x0840, 0x230c, 0x3b54,
821 0x2e30, 0x431c, 0x0740, 0x220c, 0x3a54,
822 0x2d30, 0x421c, 0x0640, 0x210c, 0x3954,
823 0x2c30, 0x4220, 0x0644, 0x200c, 0x3854,
824 0x2b30, 0x4320, 0x0744, 0x1f0c, 0x3754,
825 0x2a30, 0x4420, 0x0844, 0x1e0c, 0x3654,
826 0x2a34, 0x4520, 0x0944, 0x1e10, 0x3658,
827 0x2b34, 0x4620, 0x0a44, 0x1f10, 0x3858,
828 0x2c34, 0x4720, 0x0b44, 0x2010, 0x3a58,
829 0x3024, 0x0310, 0x0f34, 0x2400, 0x3c48,
830 0x3124, 0x0410, 0x1034, 0x2500, 0x3d48,
831 0x3224, 0x0510, 0x1134, 0x2600, 0x3e48,
832 0x3324, 0x0514, 0x1138, 0x2700, 0x3f48,
833 0x3424, 0x0414, 0x1038, 0x2800, 0x4048,
834 0x3524, 0x0314, 0x0f38, 0x2900, 0x4148,
835 0x3528, 0x0214, 0x0e38, 0x2904, 0x414c,
836 0x3428, 0x0114, 0x0d38, 0x2804, 0x404c,
837 0x3328, 0x0014, 0x0c38, 0x2704, 0x3f4c,
838 0x3228, 0x0018, 0x0c3c, 0x2604, 0x3e4c,
839 0x3128, 0x0118, 0x0d3c, 0x2504, 0x3d4c,
840 0x3028, 0x0218, 0x0e3c, 0x2404, 0x3c4c,
841 0x302c, 0x0318, 0x0f3c, 0x2408, 0x3c50,
842 0x312c, 0x0418, 0x103c, 0x2508, 0x3d50,
843 0x322c, 0x0518, 0x113c, 0x2608, 0x3e50,
844 0x332c, 0x051c, 0x1140, 0x2708, 0x3f50,
845 0x342c, 0x041c, 0x1040, 0x2808, 0x4050,
846 0x352c, 0x031c, 0x0f40, 0x2908, 0x4150,
847 0x3530, 0x021c, 0x0e40, 0x290c, 0x4154,
848 0x3430, 0x011c, 0x0d40, 0x280c, 0x4054,
849 0x3330, 0x001c, 0x0c40, 0x270c, 0x3f54,
850 0x3230, 0x0020, 0x0c44, 0x260c, 0x3e54,
851 0x3130, 0x0120, 0x0d44, 0x250c, 0x3d54,
852 0x3030, 0x0220, 0x0e44, 0x240c, 0x3c54,
853 0x3034, 0x0320, 0x0f44, 0x2410, 0x3c58,
854 0x3134, 0x0420, 0x1044, 0x2510, 0x3e58,
855 0x3234, 0x0520, 0x1144, 0x2610, 0x4058,
856 0x3624, 0x0910, 0x1534, 0x2a00, 0x4248,
857 0x3724, 0x0a10, 0x1634, 0x2b00, 0x4348,
858 0x3824, 0x0b10, 0x1734, 0x2c00, 0x4448,
859 0x3924, 0x0b14, 0x1738, 0x2d00, 0x4548,
860 0x3a24, 0x0a14, 0x1638, 0x2e00, 0x4648,
861 0x3b24, 0x0914, 0x1538, 0x2f00, 0x4748,
862 0x3b28, 0x0814, 0x1438, 0x2f04, 0x474c,
863 0x3a28, 0x0714, 0x1338, 0x2e04, 0x464c,
864 0x3928, 0x0614, 0x1238, 0x2d04, 0x454c,
865 0x3828, 0x0618, 0x123c, 0x2c04, 0x444c,
866 0x3728, 0x0718, 0x133c, 0x2b04, 0x434c,
867 0x3628, 0x0818, 0x143c, 0x2a04, 0x424c,
868 0x362c, 0x0918, 0x153c, 0x2a08, 0x4250,
869 0x372c, 0x0a18, 0x163c, 0x2b08, 0x4350,
870 0x382c, 0x0b18, 0x173c, 0x2c08, 0x4450,
871 0x392c, 0x0b1c, 0x1740, 0x2d08, 0x4550,
872 0x3a2c, 0x0a1c, 0x1640, 0x2e08, 0x4650,
873 0x3b2c, 0x091c, 0x1540, 0x2f08, 0x4750,
874 0x3b30, 0x081c, 0x1440, 0x2f0c, 0x4754,
875 0x3a30, 0x071c, 0x1340, 0x2e0c, 0x4654,
876 0x3930, 0x061c, 0x1240, 0x2d0c, 0x4554,
877 0x3830, 0x0620, 0x1244, 0x2c0c, 0x4454,
878 0x3730, 0x0720, 0x1344, 0x2b0c, 0x4354,
879 0x3630, 0x0820, 0x1444, 0x2a0c, 0x4254,
880 0x3634, 0x0920, 0x1544, 0x2a10, 0x4258,
881 0x3734, 0x0a20, 0x1644, 0x2b10, 0x4458,
882 0x3834, 0x0b20, 0x1744, 0x2c10, 0x4658,
883 0x3c24, 0x0f10, 0x1b34, 0x3000, 0x0048,
884 0x3d24, 0x1010, 0x1c34, 0x3100, 0x0148,
885 0x3e24, 0x1110, 0x1d34, 0x3200, 0x0248,
886 0x3f24, 0x1114, 0x1d38, 0x3300, 0x0348,
887 0x4024, 0x1014, 0x1c38, 0x3400, 0x0448,
888 0x4124, 0x0f14, 0x1b38, 0x3500, 0x0548,
889 0x4128, 0x0e14, 0x1a38, 0x3504, 0x054c,
890 0x4028, 0x0d14, 0x1938, 0x3404, 0x044c,
891 0x3f28, 0x0c14, 0x1838, 0x3304, 0x034c,
892 0x3e28, 0x0c18, 0x183c, 0x3204, 0x024c,
893 0x3d28, 0x0d18, 0x193c, 0x3104, 0x014c,
894 0x3c28, 0x0e18, 0x1a3c, 0x3004, 0x004c,
895 0x3c2c, 0x0f18, 0x1b3c, 0x3008, 0x0050,
896 0x3d2c, 0x1018, 0x1c3c, 0x3108, 0x0150,
897 0x3e2c, 0x1118, 0x1d3c, 0x3208, 0x0250,
898 0x3f2c, 0x111c, 0x1d40, 0x3308, 0x0350,
899 0x402c, 0x101c, 0x1c40, 0x3408, 0x0450,
900 0x412c, 0x0f1c, 0x1b40, 0x3508, 0x0550,
901 0x4130, 0x0e1c, 0x1a40, 0x350c, 0x0554,
902 0x4030, 0x0d1c, 0x1940, 0x340c, 0x0454,
903 0x3f30, 0x0c1c, 0x1840, 0x330c, 0x0354,
904 0x3e30, 0x0c20, 0x1844, 0x320c, 0x0254,
905 0x3d30, 0x0d20, 0x1944, 0x310c, 0x0154,
906 0x3c30, 0x0e20, 0x1a44, 0x300c, 0x0054,
907 0x3c34, 0x0f20, 0x1b44, 0x3010, 0x0058,
908 0x3d34, 0x1020, 0x1c44, 0x3110, 0x0258,
909 0x3e34, 0x1120, 0x1d44, 0x3210, 0x0458,
910 0x4224, 0x1510, 0x2134, 0x3600, 0x0648,
911 0x4324, 0x1610, 0x2234, 0x3700, 0x0748,
912 0x4424, 0x1710, 0x2334, 0x3800, 0x0848,
913 0x4524, 0x1714, 0x2338, 0x3900, 0x0948,
914 0x4624, 0x1614, 0x2238, 0x3a00, 0x0a48,
915 0x4724, 0x1514, 0x2138, 0x3b00, 0x0b48,
916 0x4728, 0x1414, 0x2038, 0x3b04, 0x0b4c,
917 0x4628, 0x1314, 0x1f38, 0x3a04, 0x0a4c,
918 0x4528, 0x1214, 0x1e38, 0x3904, 0x094c,
919 0x4428, 0x1218, 0x1e3c, 0x3804, 0x084c,
920 0x4328, 0x1318, 0x1f3c, 0x3704, 0x074c,
921 0x4228, 0x1418, 0x203c, 0x3604, 0x064c,
922 0x422c, 0x1518, 0x213c, 0x3608, 0x0650,
923 0x432c, 0x1618, 0x223c, 0x3708, 0x0750,
924 0x442c, 0x1718, 0x233c, 0x3808, 0x0850,
925 0x452c, 0x171c, 0x2340, 0x3908, 0x0950,
926 0x462c, 0x161c, 0x2240, 0x3a08, 0x0a50,
927 0x472c, 0x151c, 0x2140, 0x3b08, 0x0b50,
928 0x4730, 0x141c, 0x2040, 0x3b0c, 0x0b54,
929 0x4630, 0x131c, 0x1f40, 0x3a0c, 0x0a54,
930 0x4530, 0x121c, 0x1e40, 0x390c, 0x0954,
931 0x4430, 0x1220, 0x1e44, 0x380c, 0x0854,
932 0x4330, 0x1320, 0x1f44, 0x370c, 0x0754,
933 0x4230, 0x1420, 0x2044, 0x360c, 0x0654,
934 0x4234, 0x1520, 0x2144, 0x3610, 0x0658,
935 0x4334, 0x1620, 0x2244, 0x3710, 0x0858,
936 0x4434, 0x1720, 0x2344, 0x3810, 0x0a58,
937 0x0024, 0x1b10, 0x2734, 0x3c00, 0x0c48,
938 0x0124, 0x1c10, 0x2834, 0x3d00, 0x0d48,
939 0x0224, 0x1d10, 0x2934, 0x3e00, 0x0e48,
940 0x0324, 0x1d14, 0x2938, 0x3f00, 0x0f48,
941 0x0424, 0x1c14, 0x2838, 0x4000, 0x1048,
942 0x0524, 0x1b14, 0x2738, 0x4100, 0x1148,
943 0x0528, 0x1a14, 0x2638, 0x4104, 0x114c,
944 0x0428, 0x1914, 0x2538, 0x4004, 0x104c,
945 0x0328, 0x1814, 0x2438, 0x3f04, 0x0f4c,
946 0x0228, 0x1818, 0x243c, 0x3e04, 0x0e4c,
947 0x0128, 0x1918, 0x253c, 0x3d04, 0x0d4c,
948 0x0028, 0x1a18, 0x263c, 0x3c04, 0x0c4c,
949 0x002c, 0x1b18, 0x273c, 0x3c08, 0x0c50,
950 0x012c, 0x1c18, 0x283c, 0x3d08, 0x0d50,
951 0x022c, 0x1d18, 0x293c, 0x3e08, 0x0e50,
952 0x032c, 0x1d1c, 0x2940, 0x3f08, 0x0f50,
953 0x042c, 0x1c1c, 0x2840, 0x4008, 0x1050,
954 0x052c, 0x1b1c, 0x2740, 0x4108, 0x1150,
955 0x0530, 0x1a1c, 0x2640, 0x410c, 0x1154,
956 0x0430, 0x191c, 0x2540, 0x400c, 0x1054,
957 0x0330, 0x181c, 0x2440, 0x3f0c, 0x0f54,
958 0x0230, 0x1820, 0x2444, 0x3e0c, 0x0e54,
959 0x0130, 0x1920, 0x2544, 0x3d0c, 0x0d54,
960 0x0030, 0x1a20, 0x2644, 0x3c0c, 0x0c54,
961 0x0034, 0x1b20, 0x2744, 0x3c10, 0x0c58,
962 0x0134, 0x1c20, 0x2844, 0x3d10, 0x0e58,
963 0x0234, 0x1d20, 0x2944, 0x3e10, 0x1058,
964 0x0624, 0x2110, 0x2d34, 0x4200, 0x1248,
965 0x0724, 0x2210, 0x2e34, 0x4300, 0x1348,
966 0x0824, 0x2310, 0x2f34, 0x4400, 0x1448,
967 0x0924, 0x2314, 0x2f38, 0x4500, 0x1548,
968 0x0a24, 0x2214, 0x2e38, 0x4600, 0x1648,
969 0x0b24, 0x2114, 0x2d38, 0x4700, 0x1748,
970 0x0b28, 0x2014, 0x2c38, 0x4704, 0x174c,
971 0x0a28, 0x1f14, 0x2b38, 0x4604, 0x164c,
972 0x0928, 0x1e14, 0x2a38, 0x4504, 0x154c,
973 0x0828, 0x1e18, 0x2a3c, 0x4404, 0x144c,
974 0x0728, 0x1f18, 0x2b3c, 0x4304, 0x134c,
975 0x0628, 0x2018, 0x2c3c, 0x4204, 0x124c,
976 0x062c, 0x2118, 0x2d3c, 0x4208, 0x1250,
977 0x072c, 0x2218, 0x2e3c, 0x4308, 0x1350,
978 0x082c, 0x2318, 0x2f3c, 0x4408, 0x1450,
979 0x092c, 0x231c, 0x2f40, 0x4508, 0x1550,
980 0x0a2c, 0x221c, 0x2e40, 0x4608, 0x1650,
981 0x0b2c, 0x211c, 0x2d40, 0x4708, 0x1750,
982 0x0b30, 0x201c, 0x2c40, 0x470c, 0x1754,
983 0x0a30, 0x1f1c, 0x2b40, 0x460c, 0x1654,
984 0x0930, 0x1e1c, 0x2a40, 0x450c, 0x1554,
985 0x0830, 0x1e20, 0x2a44, 0x440c, 0x1454,
986 0x0730, 0x1f20, 0x2b44, 0x430c, 0x1354,
987 0x0630, 0x2020, 0x2c44, 0x420c, 0x1254,
988 0x0634, 0x2120, 0x2d44, 0x4210, 0x1258,
989 0x0734, 0x2220, 0x2e44, 0x4310, 0x1458,
990 0x0834, 0x2320, 0x2f44, 0x4410, 0x1658,
991 };
992
993 static const uint16_t dv_place_411[1350] = {
994 0x0c24, 0x2710, 0x3334, 0x0000, 0x1848,
995 0x0d24, 0x2810, 0x3434, 0x0100, 0x1948,
996 0x0e24, 0x2910, 0x3534, 0x0200, 0x1a48,
997 0x0f24, 0x2914, 0x3538, 0x0300, 0x1b48,
998 0x1024, 0x2814, 0x3438, 0x0400, 0x1c48,
999 0x1124, 0x2714, 0x3338, 0x0500, 0x1d48,
1000 0x1128, 0x2614, 0x3238, 0x0504, 0x1d4c,
1001 0x1028, 0x2514, 0x3138, 0x0404, 0x1c4c,
1002 0x0f28, 0x2414, 0x3038, 0x0304, 0x1b4c,
1003 0x0e28, 0x2418, 0x303c, 0x0204, 0x1a4c,
1004 0x0d28, 0x2518, 0x313c, 0x0104, 0x194c,
1005 0x0c28, 0x2618, 0x323c, 0x0004, 0x184c,
1006 0x0c2c, 0x2718, 0x333c, 0x0008, 0x1850,
1007 0x0d2c, 0x2818, 0x343c, 0x0108, 0x1950,
1008 0x0e2c, 0x2918, 0x353c, 0x0208, 0x1a50,
1009 0x0f2c, 0x291c, 0x3540, 0x0308, 0x1b50,
1010 0x102c, 0x281c, 0x3440, 0x0408, 0x1c50,
1011 0x112c, 0x271c, 0x3340, 0x0508, 0x1d50,
1012 0x1130, 0x261c, 0x3240, 0x050c, 0x1d54,
1013 0x1030, 0x251c, 0x3140, 0x040c, 0x1c54,
1014 0x0f30, 0x241c, 0x3040, 0x030c, 0x1b54,
1015 0x0e30, 0x2420, 0x3044, 0x020c, 0x1a54,
1016 0x0d30, 0x2520, 0x3144, 0x010c, 0x1954,
1017 0x0c30, 0x2620, 0x3244, 0x000c, 0x1854,
1018 0x0c34, 0x2720, 0x3344, 0x0010, 0x1858,
1019 0x0d34, 0x2820, 0x3444, 0x0110, 0x1a58,
1020 0x0e34, 0x2920, 0x3544, 0x0210, 0x1c58,
1021 0x1224, 0x2d10, 0x3934, 0x0600, 0x1e48,
1022 0x1324, 0x2e10, 0x3a34, 0x0700, 0x1f48,
1023 0x1424, 0x2f10, 0x3b34, 0x0800, 0x2048,
1024 0x1524, 0x2f14, 0x3b38, 0x0900, 0x2148,
1025 0x1624, 0x2e14, 0x3a38, 0x0a00, 0x2248,
1026 0x1724, 0x2d14, 0x3938, 0x0b00, 0x2348,
1027 0x1728, 0x2c14, 0x3838, 0x0b04, 0x234c,
1028 0x1628, 0x2b14, 0x3738, 0x0a04, 0x224c,
1029 0x1528, 0x2a14, 0x3638, 0x0904, 0x214c,
1030 0x1428, 0x2a18, 0x363c, 0x0804, 0x204c,
1031 0x1328, 0x2b18, 0x373c, 0x0704, 0x1f4c,
1032 0x1228, 0x2c18, 0x383c, 0x0604, 0x1e4c,
1033 0x122c, 0x2d18, 0x393c, 0x0608, 0x1e50,
1034 0x132c, 0x2e18, 0x3a3c, 0x0708, 0x1f50,
1035 0x142c, 0x2f18, 0x3b3c, 0x0808, 0x2050,
1036 0x152c, 0x2f1c, 0x3b40, 0x0908, 0x2150,
1037 0x162c, 0x2e1c, 0x3a40, 0x0a08, 0x2250,
1038 0x172c, 0x2d1c, 0x3940, 0x0b08, 0x2350,
1039 0x1730, 0x2c1c, 0x3840, 0x0b0c, 0x2354,
1040 0x1630, 0x2b1c, 0x3740, 0x0a0c, 0x2254,
1041 0x1530, 0x2a1c, 0x3640, 0x090c, 0x2154,
1042 0x1430, 0x2a20, 0x3644, 0x080c, 0x2054,
1043 0x1330, 0x2b20, 0x3744, 0x070c, 0x1f54,
1044 0x1230, 0x2c20, 0x3844, 0x060c, 0x1e54,
1045 0x1234, 0x2d20, 0x3944, 0x0610, 0x1e58,
1046 0x1334, 0x2e20, 0x3a44, 0x0710, 0x2058,
1047 0x1434, 0x2f20, 0x3b44, 0x0810, 0x2258,
1048 0x1824, 0x3310, 0x0334, 0x0c00, 0x2448,
1049 0x1924, 0x3410, 0x0434, 0x0d00, 0x2548,
1050 0x1a24, 0x3510, 0x0534, 0x0e00, 0x2648,
1051 0x1b24, 0x3514, 0x0538, 0x0f00, 0x2748,
1052 0x1c24, 0x3414, 0x0438, 0x1000, 0x2848,
1053 0x1d24, 0x3314, 0x0338, 0x1100, 0x2948,
1054 0x1d28, 0x3214, 0x0238, 0x1104, 0x294c,
1055 0x1c28, 0x3114, 0x0138, 0x1004, 0x284c,
1056 0x1b28, 0x3014, 0x0038, 0x0f04, 0x274c,
1057 0x1a28, 0x3018, 0x003c, 0x0e04, 0x264c,
1058 0x1928, 0x3118, 0x013c, 0x0d04, 0x254c,
1059 0x1828, 0x3218, 0x023c, 0x0c04, 0x244c,
1060 0x182c, 0x3318, 0x033c, 0x0c08, 0x2450,
1061 0x192c, 0x3418, 0x043c, 0x0d08, 0x2550,
1062 0x1a2c, 0x3518, 0x053c, 0x0e08, 0x2650,
1063 0x1b2c, 0x351c, 0x0540, 0x0f08, 0x2750,
1064 0x1c2c, 0x341c, 0x0440, 0x1008, 0x2850,
1065 0x1d2c, 0x331c, 0x0340, 0x1108, 0x2950,
1066 0x1d30, 0x321c, 0x0240, 0x110c, 0x2954,
1067 0x1c30, 0x311c, 0x0140, 0x100c, 0x2854,
1068 0x1b30, 0x301c, 0x0040, 0x0f0c, 0x2754,
1069 0x1a30, 0x3020, 0x0044, 0x0e0c, 0x2654,
1070 0x1930, 0x3120, 0x0144, 0x0d0c, 0x2554,
1071 0x1830, 0x3220, 0x0244, 0x0c0c, 0x2454,
1072 0x1834, 0x3320, 0x0344, 0x0c10, 0x2458,
1073 0x1934, 0x3420, 0x0444, 0x0d10, 0x2658,
1074 0x1a34, 0x3520, 0x0544, 0x0e10, 0x2858,
1075 0x1e24, 0x3910, 0x0934, 0x1200, 0x2a48,
1076 0x1f24, 0x3a10, 0x0a34, 0x1300, 0x2b48,
1077 0x2024, 0x3b10, 0x0b34, 0x1400, 0x2c48,
1078 0x2124, 0x3b14, 0x0b38, 0x1500, 0x2d48,
1079 0x2224, 0x3a14, 0x0a38, 0x1600, 0x2e48,
1080 0x2324, 0x3914, 0x0938, 0x1700, 0x2f48,
1081 0x2328, 0x3814, 0x0838, 0x1704, 0x2f4c,
1082 0x2228, 0x3714, 0x0738, 0x1604, 0x2e4c,
1083 0x2128, 0x3614, 0x0638, 0x1504, 0x2d4c,
1084 0x2028, 0x3618, 0x063c, 0x1404, 0x2c4c,
1085 0x1f28, 0x3718, 0x073c, 0x1304, 0x2b4c,
1086 0x1e28, 0x3818, 0x083c, 0x1204, 0x2a4c,
1087 0x1e2c, 0x3918, 0x093c, 0x1208, 0x2a50,
1088 0x1f2c, 0x3a18, 0x0a3c, 0x1308, 0x2b50,
1089 0x202c, 0x3b18, 0x0b3c, 0x1408, 0x2c50,
1090 0x212c, 0x3b1c, 0x0b40, 0x1508, 0x2d50,
1091 0x222c, 0x3a1c, 0x0a40, 0x1608, 0x2e50,
1092 0x232c, 0x391c, 0x0940, 0x1708, 0x2f50,
1093 0x2330, 0x381c, 0x0840, 0x170c, 0x2f54,
1094 0x2230, 0x371c, 0x0740, 0x160c, 0x2e54,
1095 0x2130, 0x361c, 0x0640, 0x150c, 0x2d54,
1096 0x2030, 0x3620, 0x0644, 0x140c, 0x2c54,
1097 0x1f30, 0x3720, 0x0744, 0x130c, 0x2b54,
1098 0x1e30, 0x3820, 0x0844, 0x120c, 0x2a54,
1099 0x1e34, 0x3920, 0x0944, 0x1210, 0x2a58,
1100 0x1f34, 0x3a20, 0x0a44, 0x1310, 0x2c58,
1101 0x2034, 0x3b20, 0x0b44, 0x1410, 0x2e58,
1102 0x2424, 0x0310, 0x0f34, 0x1800, 0x3048,
1103 0x2524, 0x0410, 0x1034, 0x1900, 0x3148,
1104 0x2624, 0x0510, 0x1134, 0x1a00, 0x3248,
1105 0x2724, 0x0514, 0x1138, 0x1b00, 0x3348,
1106 0x2824, 0x0414, 0x1038, 0x1c00, 0x3448,
1107 0x2924, 0x0314, 0x0f38, 0x1d00, 0x3548,
1108 0x2928, 0x0214, 0x0e38, 0x1d04, 0x354c,
1109 0x2828, 0x0114, 0x0d38, 0x1c04, 0x344c,
1110 0x2728, 0x0014, 0x0c38, 0x1b04, 0x334c,
1111 0x2628, 0x0018, 0x0c3c, 0x1a04, 0x324c,
1112 0x2528, 0x0118, 0x0d3c, 0x1904, 0x314c,
1113 0x2428, 0x0218, 0x0e3c, 0x1804, 0x304c,
1114 0x242c, 0x0318, 0x0f3c, 0x1808, 0x3050,
1115 0x252c, 0x0418, 0x103c, 0x1908, 0x3150,
1116 0x262c, 0x0518, 0x113c, 0x1a08, 0x3250,
1117 0x272c, 0x051c, 0x1140, 0x1b08, 0x3350,
1118 0x282c, 0x041c, 0x1040, 0x1c08, 0x3450,
1119 0x292c, 0x031c, 0x0f40, 0x1d08, 0x3550,
1120 0x2930, 0x021c, 0x0e40, 0x1d0c, 0x3554,
1121 0x2830, 0x011c, 0x0d40, 0x1c0c, 0x3454,
1122 0x2730, 0x001c, 0x0c40, 0x1b0c, 0x3354,
1123 0x2630, 0x0020, 0x0c44, 0x1a0c, 0x3254,
1124 0x2530, 0x0120, 0x0d44, 0x190c, 0x3154,
1125 0x2430, 0x0220, 0x0e44, 0x180c, 0x3054,
1126 0x2434, 0x0320, 0x0f44, 0x1810, 0x3058,
1127 0x2534, 0x0420, 0x1044, 0x1910, 0x3258,
1128 0x2634, 0x0520, 0x1144, 0x1a10, 0x3458,
1129 0x2a24, 0x0910, 0x1534, 0x1e00, 0x3648,
1130 0x2b24, 0x0a10, 0x1634, 0x1f00, 0x3748,
1131 0x2c24, 0x0b10, 0x1734, 0x2000, 0x3848,
1132 0x2d24, 0x0b14, 0x1738, 0x2100, 0x3948,
1133 0x2e24, 0x0a14, 0x1638, 0x2200, 0x3a48,
1134 0x2f24, 0x0914, 0x1538, 0x2300, 0x3b48,
1135 0x2f28, 0x0814, 0x1438, 0x2304, 0x3b4c,
1136 0x2e28, 0x0714, 0x1338, 0x2204, 0x3a4c,
1137 0x2d28, 0x0614, 0x1238, 0x2104, 0x394c,
1138 0x2c28, 0x0618, 0x123c, 0x2004, 0x384c,
1139 0x2b28, 0x0718, 0x133c, 0x1f04, 0x374c,
1140 0x2a28, 0x0818, 0x143c, 0x1e04, 0x364c,
1141 0x2a2c, 0x0918, 0x153c, 0x1e08, 0x3650,
1142 0x2b2c, 0x0a18, 0x163c, 0x1f08, 0x3750,
1143 0x2c2c, 0x0b18, 0x173c, 0x2008, 0x3850,
1144 0x2d2c, 0x0b1c, 0x1740, 0x2108, 0x3950,
1145 0x2e2c, 0x0a1c, 0x1640, 0x2208, 0x3a50,
1146 0x2f2c, 0x091c, 0x1540, 0x2308, 0x3b50,
1147 0x2f30, 0x081c, 0x1440, 0x230c, 0x3b54,
1148 0x2e30, 0x071c, 0x1340, 0x220c, 0x3a54,
1149 0x2d30, 0x061c, 0x1240, 0x210c, 0x3954,
1150 0x2c30, 0x0620, 0x1244, 0x200c, 0x3854,
1151 0x2b30, 0x0720, 0x1344, 0x1f0c, 0x3754,
1152 0x2a30, 0x0820, 0x1444, 0x1e0c, 0x3654,
1153 0x2a34, 0x0920, 0x1544, 0x1e10, 0x3658,
1154 0x2b34, 0x0a20, 0x1644, 0x1f10, 0x3858,
1155 0x2c34, 0x0b20, 0x1744, 0x2010, 0x3a58,
1156 0x3024, 0x0f10, 0x1b34, 0x2400, 0x0048,
1157 0x3124, 0x1010, 0x1c34, 0x2500, 0x0148,
1158 0x3224, 0x1110, 0x1d34, 0x2600, 0x0248,
1159 0x3324, 0x1114, 0x1d38, 0x2700, 0x0348,
1160 0x3424, 0x1014, 0x1c38, 0x2800, 0x0448,
1161 0x3524, 0x0f14, 0x1b38, 0x2900, 0x0548,
1162 0x3528, 0x0e14, 0x1a38, 0x2904, 0x054c,
1163 0x3428, 0x0d14, 0x1938, 0x2804, 0x044c,
1164 0x3328, 0x0c14, 0x1838, 0x2704, 0x034c,
1165 0x3228, 0x0c18, 0x183c, 0x2604, 0x024c,
1166 0x3128, 0x0d18, 0x193c, 0x2504, 0x014c,
1167 0x3028, 0x0e18, 0x1a3c, 0x2404, 0x004c,
1168 0x302c, 0x0f18, 0x1b3c, 0x2408, 0x0050,
1169 0x312c, 0x1018, 0x1c3c, 0x2508, 0x0150,
1170 0x322c, 0x1118, 0x1d3c, 0x2608, 0x0250,
1171 0x332c, 0x111c, 0x1d40, 0x2708, 0x0350,
1172 0x342c, 0x101c, 0x1c40, 0x2808, 0x0450,
1173 0x352c, 0x0f1c, 0x1b40, 0x2908, 0x0550,
1174 0x3530, 0x0e1c, 0x1a40, 0x290c, 0x0554,
1175 0x3430, 0x0d1c, 0x1940, 0x280c, 0x0454,
1176 0x3330, 0x0c1c, 0x1840, 0x270c, 0x0354,
1177 0x3230, 0x0c20, 0x1844, 0x260c, 0x0254,
1178 0x3130, 0x0d20, 0x1944, 0x250c, 0x0154,
1179 0x3030, 0x0e20, 0x1a44, 0x240c, 0x0054,
1180 0x3034, 0x0f20, 0x1b44, 0x2410, 0x0058,
1181 0x3134, 0x1020, 0x1c44, 0x2510, 0x0258,
1182 0x3234, 0x1120, 0x1d44, 0x2610, 0x0458,
1183 0x3624, 0x1510, 0x2134, 0x2a00, 0x0648,
1184 0x3724, 0x1610, 0x2234, 0x2b00, 0x0748,
1185 0x3824, 0x1710, 0x2334, 0x2c00, 0x0848,
1186 0x3924, 0x1714, 0x2338, 0x2d00, 0x0948,
1187 0x3a24, 0x1614, 0x2238, 0x2e00, 0x0a48,
1188 0x3b24, 0x1514, 0x2138, 0x2f00, 0x0b48,
1189 0x3b28, 0x1414, 0x2038, 0x2f04, 0x0b4c,
1190 0x3a28, 0x1314, 0x1f38, 0x2e04, 0x0a4c,
1191 0x3928, 0x1214, 0x1e38, 0x2d04, 0x094c,
1192 0x3828, 0x1218, 0x1e3c, 0x2c04, 0x084c,
1193 0x3728, 0x1318, 0x1f3c, 0x2b04, 0x074c,
1194 0x3628, 0x1418, 0x203c, 0x2a04, 0x064c,
1195 0x362c, 0x1518, 0x213c, 0x2a08, 0x0650,
1196 0x372c, 0x1618, 0x223c, 0x2b08, 0x0750,
1197 0x382c, 0x1718, 0x233c, 0x2c08, 0x0850,
1198 0x392c, 0x171c, 0x2340, 0x2d08, 0x0950,
1199 0x3a2c, 0x161c, 0x2240, 0x2e08, 0x0a50,
1200 0x3b2c, 0x151c, 0x2140, 0x2f08, 0x0b50,
1201 0x3b30, 0x141c, 0x2040, 0x2f0c, 0x0b54,
1202 0x3a30, 0x131c, 0x1f40, 0x2e0c, 0x0a54,
1203 0x3930, 0x121c, 0x1e40, 0x2d0c, 0x0954,
1204 0x3830, 0x1220, 0x1e44, 0x2c0c, 0x0854,
1205 0x3730, 0x1320, 0x1f44, 0x2b0c, 0x0754,
1206 0x3630, 0x1420, 0x2044, 0x2a0c, 0x0654,
1207 0x3634, 0x1520, 0x2144, 0x2a10, 0x0658,
1208 0x3734, 0x1620, 0x2244, 0x2b10, 0x0858,
1209 0x3834, 0x1720, 0x2344, 0x2c10, 0x0a58,
1210 0x0024, 0x1b10, 0x2734, 0x3000, 0x0c48,
1211 0x0124, 0x1c10, 0x2834, 0x3100, 0x0d48,
1212 0x0224, 0x1d10, 0x2934, 0x3200, 0x0e48,
1213 0x0324, 0x1d14, 0x2938, 0x3300, 0x0f48,
1214 0x0424, 0x1c14, 0x2838, 0x3400, 0x1048,
1215 0x0524, 0x1b14, 0x2738, 0x3500, 0x1148,
1216 0x0528, 0x1a14, 0x2638, 0x3504, 0x114c,
1217 0x0428, 0x1914, 0x2538, 0x3404, 0x104c,
1218 0x0328, 0x1814, 0x2438, 0x3304, 0x0f4c,
1219 0x0228, 0x1818, 0x243c, 0x3204, 0x0e4c,
1220 0x0128, 0x1918, 0x253c, 0x3104, 0x0d4c,
1221 0x0028, 0x1a18, 0x263c, 0x3004, 0x0c4c,
1222 0x002c, 0x1b18, 0x273c, 0x3008, 0x0c50,
1223 0x012c, 0x1c18, 0x283c, 0x3108, 0x0d50,
1224 0x022c, 0x1d18, 0x293c, 0x3208, 0x0e50,
1225 0x032c, 0x1d1c, 0x2940, 0x3308, 0x0f50,
1226 0x042c, 0x1c1c, 0x2840, 0x3408, 0x1050,
1227 0x052c, 0x1b1c, 0x2740, 0x3508, 0x1150,
1228 0x0530, 0x1a1c, 0x2640, 0x350c, 0x1154,
1229 0x0430, 0x191c, 0x2540, 0x340c, 0x1054,
1230 0x0330, 0x181c, 0x2440, 0x330c, 0x0f54,
1231 0x0230, 0x1820, 0x2444, 0x320c, 0x0e54,
1232 0x0130, 0x1920, 0x2544, 0x310c, 0x0d54,
1233 0x0030, 0x1a20, 0x2644, 0x300c, 0x0c54,
1234 0x0034, 0x1b20, 0x2744, 0x3010, 0x0c58,
1235 0x0134, 0x1c20, 0x2844, 0x3110, 0x0e58,
1236 0x0234, 0x1d20, 0x2944, 0x3210, 0x1058,
1237 0x0624, 0x2110, 0x2d34, 0x3600, 0x1248,
1238 0x0724, 0x2210, 0x2e34, 0x3700, 0x1348,
1239 0x0824, 0x2310, 0x2f34, 0x3800, 0x1448,
1240 0x0924, 0x2314, 0x2f38, 0x3900, 0x1548,
1241 0x0a24, 0x2214, 0x2e38, 0x3a00, 0x1648,
1242 0x0b24, 0x2114, 0x2d38, 0x3b00, 0x1748,
1243 0x0b28, 0x2014, 0x2c38, 0x3b04, 0x174c,
1244 0x0a28, 0x1f14, 0x2b38, 0x3a04, 0x164c,
1245 0x0928, 0x1e14, 0x2a38, 0x3904, 0x154c,
1246 0x0828, 0x1e18, 0x2a3c, 0x3804, 0x144c,
1247 0x0728, 0x1f18, 0x2b3c, 0x3704, 0x134c,
1248 0x0628, 0x2018, 0x2c3c, 0x3604, 0x124c,
1249 0x062c, 0x2118, 0x2d3c, 0x3608, 0x1250,
1250 0x072c, 0x2218, 0x2e3c, 0x3708, 0x1350,
1251 0x082c, 0x2318, 0x2f3c, 0x3808, 0x1450,
1252 0x092c, 0x231c, 0x2f40, 0x3908, 0x1550,
1253 0x0a2c, 0x221c, 0x2e40, 0x3a08, 0x1650,
1254 0x0b2c, 0x211c, 0x2d40, 0x3b08, 0x1750,
1255 0x0b30, 0x201c, 0x2c40, 0x3b0c, 0x1754,
1256 0x0a30, 0x1f1c, 0x2b40, 0x3a0c, 0x1654,
1257 0x0930, 0x1e1c, 0x2a40, 0x390c, 0x1554,
1258 0x0830, 0x1e20, 0x2a44, 0x380c, 0x1454,
1259 0x0730, 0x1f20, 0x2b44, 0x370c, 0x1354,
1260 0x0630, 0x2020, 0x2c44, 0x360c, 0x1254,
1261 0x0634, 0x2120, 0x2d44, 0x3610, 0x1258,
1262 0x0734, 0x2220, 0x2e44, 0x3710, 0x1458,
1263 0x0834, 0x2320, 0x2f44, 0x3810, 0x1658,
1264 };
1265
1266 static const uint16_t dv_audio_shuffle525[10][9] = {
1267 { 0, 30, 60, 20, 50, 80, 10, 40, 70 }, /* 1st channel */
1268 { 6, 36, 66, 26, 56, 86, 16, 46, 76 },
1269 { 12, 42, 72, 2, 32, 62, 22, 52, 82 },
1270 { 18, 48, 78, 8, 38, 68, 28, 58, 88 },
1271 { 24, 54, 84, 14, 44, 74, 4, 34, 64 },
1272
1273 { 1, 31, 61, 21, 51, 81, 11, 41, 71 }, /* 2nd channel */
1274 { 7, 37, 67, 27, 57, 87, 17, 47, 77 },
1275 { 13, 43, 73, 3, 33, 63, 23, 53, 83 },
1276 { 19, 49, 79, 9, 39, 69, 29, 59, 89 },
1277 { 25, 55, 85, 15, 45, 75, 5, 35, 65 },
1278 };
1279
1280 static const uint16_t dv_audio_shuffle625[12][9] = {
1281 { 0, 36, 72, 26, 62, 98, 16, 52, 88}, /* 1st channel */
1282 { 6, 42, 78, 32, 68, 104, 22, 58, 94},
1283 { 12, 48, 84, 2, 38, 74, 28, 64, 100},
1284 { 18, 54, 90, 8, 44, 80, 34, 70, 106},
1285 { 24, 60, 96, 14, 50, 86, 4, 40, 76},
1286 { 30, 66, 102, 20, 56, 92, 10, 46, 82},
1287
1288 { 1, 37, 73, 27, 63, 99, 17, 53, 89}, /* 2nd channel */
1289 { 7, 43, 79, 33, 69, 105, 23, 59, 95},
1290 { 13, 49, 85, 3, 39, 75, 29, 65, 101},
1291 { 19, 55, 91, 9, 45, 81, 35, 71, 107},
1292 { 25, 61, 97, 15, 51, 87, 5, 41, 77},
1293 { 31, 67, 103, 21, 57, 93, 11, 47, 83},
1294 };
1295
1296 static const int dv_audio_frequency[3] = {
1297 48000, 44100, 32000,
1298 };
1299
1300 static const DVprofile dv_profiles[] = {
1301 { .dsf = 0,
1302 .frame_size = 120000, /* IEC 61834, SMPTE-314M - 525/60 (NTSC) */
1303 .difseg_size = 10,
1304 .frame_rate = 30000,
1305 .ltc_divisor = 30,
1306 .frame_rate_base = 1001,
1307 .height = 480,
1308 .width = 720,
1309 .video_place = dv_place_411,
1310 .pix_fmt = PIX_FMT_YUV411P,
1311 .audio_stride = 90,
1312 .audio_min_samples = { 1580, 1452, 1053 }, /* for 48, 44.1 and 32Khz */
1313 .audio_samples_dist = { 1602, 1601, 1602, 1601, 1602 },
1314 .audio_shuffle = dv_audio_shuffle525,
1315 },
1316 { .dsf = 1,
1317 .frame_size = 144000, /* IEC 61834 - 625/50 (PAL) */
1318 .difseg_size = 12,
1319 .frame_rate = 25,
1320 .frame_rate_base = 1,
1321 .ltc_divisor = 25,
1322 .height = 576,
1323 .width = 720,
1324 .video_place = dv_place_420,
1325 .pix_fmt = PIX_FMT_YUV420P,
1326 .audio_stride = 108,
1327 .audio_min_samples = { 1896, 1742, 1264 }, /* for 48, 44.1 and 32Khz */
1328 .audio_samples_dist = { 1920, 1920, 1920, 1920, 1920 },
1329 .audio_shuffle = dv_audio_shuffle625,
1330 },
1331 { .dsf = 1,
1332 .frame_size = 144000, /* SMPTE-314M - 625/50 (PAL) */
1333 .difseg_size = 12,
1334 .frame_rate = 25,
1335 .frame_rate_base = 1,
1336 .ltc_divisor = 25,
1337 .height = 576,
1338 .width = 720,
1339 .video_place = dv_place_411P,
1340 .pix_fmt = PIX_FMT_YUV411P,
1341 .audio_stride = 108,
1342 .audio_min_samples = { 1896, 1742, 1264 }, /* for 48, 44.1 and 32Khz */
1343 .audio_samples_dist = { 1920, 1920, 1920, 1920, 1920 },
1344 .audio_shuffle = dv_audio_shuffle625,
1345 }
1346 };
1347
1348 static inline const DVprofile* dv_frame_profile(uint8_t* frame)
1349 {
1350 if ((frame[3] & 0x80) == 0) { /* DSF flag */
1351 return &dv_profiles[0];
1352 }
1353 else if ((frame[5] & 0x07) == 0) { /* APT flag */
1354 return &dv_profiles[1];
1355 }
1356 else
1357 return &dv_profiles[2];
1358 }
1359
1360 static inline const DVprofile* dv_codec_profile(AVCodecContext* codec)
1361 {
1362 if (codec->width != 720) {
1363 return NULL;
1364 }
1365 else if (codec->height == 480) {
1366 return &dv_profiles[0];
1367 }
1368 else
1369 return &dv_profiles[1];
1370 }