]> git.sesse.net Git - ffmpeg/blob - libavcodec/dvdata.h
gcc->C99 and warning fixes patch by (Dan Christiansen <danchr at daimi dot au dot...
[ffmpeg] / 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 __attribute__((unused)) 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 }