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