1 /*
2 * Do not edit this file!
3 * This file is generated from:
4 * UnicodeData.txt (version 6.3.0)
5 */
6
7 #include <stddef.h>
8 #include <idn/utf32.h>
9 #include <idn/auto/bidiclass.h>
10
11 /*
12 * Bidi class tables.
13 */
14 #define BIDICLASS_BITS_0 9
15 #define BIDICLASS_BITS_1 7
16 #define BIDICLASS_BITS_2 5
17
18 static const unsigned short bidiclass_imap[] = {
19 272, 400, 528, 656, 784, 912, 912, 912,
20 912, 912, 1040, 912, 912, 912, 912, 1168,
21 1296, 1424, 912, 912, 912, 912, 1552, 912,
22 912, 912, 912, 912, 912, 1680, 1808, 1936,
23 912, 912, 912, 912, 912, 912, 912, 912,
24 912, 912, 912, 912, 912, 912, 912, 912,
25 912, 912, 912, 912, 912, 912, 912, 912,
26 912, 912, 912, 912, 912, 912, 912, 912,
27 912, 912, 912, 912, 912, 912, 912, 912,
28 912, 912, 912, 912, 912, 912, 912, 912,
29 912, 912, 912, 912, 912, 912, 912, 912,
30 912, 912, 912, 912, 912, 912, 912, 912,
31 912, 912, 912, 912, 912, 912, 912, 912,
32 912, 912, 912, 912, 912, 912, 912, 912,
33 912, 912, 912, 912, 912, 912, 912, 912,
34 912, 912, 912, 912, 912, 912, 912, 912,
35 912, 912, 912, 912, 912, 912, 912, 912,
36 912, 912, 912, 912, 912, 912, 912, 912,
37 912, 912, 912, 912, 912, 912, 912, 912,
38 912, 912, 912, 912, 912, 912, 912, 912,
39 912, 912, 912, 912, 912, 912, 912, 912,
40 912, 912, 912, 912, 912, 912, 912, 912,
41 912, 912, 912, 912, 912, 912, 912, 912,
42 912, 912, 912, 912, 912, 912, 912, 912,
43 912, 912, 912, 912, 912, 912, 912, 912,
44 912, 912, 912, 912, 912, 912, 912, 912,
45 912, 912, 912, 912, 912, 912, 912, 912,
46 912, 912, 912, 912, 912, 912, 912, 912,
47 2064, 912, 912, 912, 912, 912, 912, 912,
48 912, 912, 912, 912, 912, 912, 912, 912,
49 912, 912, 912, 912, 912, 912, 912, 912,
50 912, 912, 912, 912, 912, 912, 912, 912,
51 912, 912, 912, 912, 912, 912, 912, 912,
52 912, 912, 912, 912, 912, 912, 912, 912,
53 0, 1, 2, 3, 4, 5, 6, 6,
54 7, 7, 7, 7, 7, 7, 7, 7,
55 7, 7, 7, 7, 7, 8, 9, 10,
56 11, 11, 11, 12, 13, 7, 7, 14,
57 7, 7, 7, 7, 15, 7, 7, 7,
58 7, 7, 7, 7, 16, 17, 18, 19,
59 20, 21, 22, 23, 21, 21, 24, 25,
60 26, 27, 28, 21, 21, 29, 30, 31,
61 32, 33, 34, 7, 7, 35, 7, 36,
62 37, 38, 39, 40, 41, 42, 43, 44,
63 45, 42, 46, 47, 45, 42, 48, 49,
64 41, 50, 51, 40, 52, 7, 53, 54,
65 7, 55, 56, 57, 7, 42, 58, 40,
66 7, 7, 43, 40, 7, 7, 59, 7,
67 7, 60, 61, 7, 7, 62, 63, 7,
68 64, 65, 7, 66, 67, 68, 69, 7,
69 7, 70, 71, 72, 73, 7, 7, 7,
70 7, 7, 7, 7, 7, 7, 7, 7,
71 7, 7, 7, 7, 7, 7, 7, 7,
72 7, 7, 74, 7, 75, 7, 7, 7,
73 76, 7, 7, 7, 7, 7, 7, 7,
74 7, 7, 7, 7, 7, 7, 7, 7,
75 7, 7, 7, 7, 77, 7, 7, 7,
76 78, 78, 79, 79, 7, 80, 81, 75,
77 82, 7, 7, 7, 7, 83, 7, 7,
78 7, 84, 85, 7, 7, 7, 86, 87,
79 88, 7, 89, 90, 7, 7, 7, 7,
80 91, 92, 52, 93, 94, 95, 7, 96,
81 7, 97, 7, 7, 7, 7, 98, 99,
82 7, 7, 7, 7, 7, 7, 11, 100,
83 7, 7, 7, 7, 7, 7, 7, 7,
84 7, 7, 7, 7, 7, 101, 102, 103,
85 104, 105, 106, 107, 108, 109, 110, 111,
86 112, 113, 114, 7, 115, 87, 87, 87,
87 116, 87, 87, 87, 87, 87, 87, 87,
88 87, 117, 7, 118, 119, 87, 87, 120,
89 87, 121, 122, 87, 123, 7, 7, 124,
90 87, 87, 87, 87, 87, 87, 87, 87,
91 87, 87, 87, 87, 87, 125, 87, 87,
92 126, 87, 87, 87, 87, 87, 87, 87,
93 7, 7, 7, 7, 7, 7, 7, 7,
94 87, 87, 87, 87, 87, 87, 87, 87,
95 87, 87, 87, 87, 87, 87, 87, 87,
96 87, 87, 127, 7, 7, 7, 7, 7,
97 7, 7, 7, 7, 7, 7, 7, 128,
98 7, 7, 7, 129, 7, 7, 7, 11,
99 87, 130, 7, 7, 131, 87, 87, 120,
100 87, 87, 87, 87, 87, 87, 117, 132,
101 133, 134, 7, 7, 135, 76, 7, 136,
102 7, 7, 7, 7, 7, 7, 87, 137,
103 138, 7, 139, 140, 7, 141, 142, 7,
104 7, 7, 7, 143, 7, 7, 86, 144,
105 7, 7, 7, 7, 7, 7, 7, 7,
106 7, 7, 7, 7, 7, 7, 7, 7,
107 7, 7, 7, 7, 7, 7, 7, 7,
108 7, 7, 7, 7, 7, 7, 7, 7,
109 7, 7, 7, 7, 7, 7, 7, 7,
110 7, 7, 7, 7, 7, 7, 7, 7,
111 7, 7, 7, 7, 7, 7, 7, 7,
112 7, 7, 7, 7, 7, 7, 7, 7,
113 7, 7, 7, 7, 7, 7, 7, 7,
114 7, 7, 7, 7, 7, 7, 7, 7,
115 7, 7, 7, 7, 7, 7, 7, 7,
116 7, 7, 7, 7, 7, 7, 7, 7,
117 7, 7, 7, 7, 7, 7, 7, 7,
118 7, 7, 7, 7, 7, 7, 7, 7,
119 7, 7, 7, 7, 7, 7, 7, 7,
120 7, 7, 7, 7, 7, 7, 7, 7,
121 7, 7, 7, 7, 7, 7, 7, 7,
122 7, 7, 7, 7, 7, 7, 7, 7,
123 7, 7, 7, 7, 7, 7, 7, 7,
124 7, 7, 7, 7, 7, 7, 7, 7,
125 7, 7, 7, 7, 7, 7, 7, 7,
126 7, 7, 7, 7, 7, 7, 7, 7,
127 7, 7, 7, 7, 7, 7, 7, 7,
128 7, 7, 7, 7, 7, 7, 7, 7,
129 7, 7, 7, 7, 7, 7, 7, 7,
130 7, 7, 7, 7, 7, 7, 87, 87,
131 7, 7, 7, 7, 7, 7, 7, 7,
132 7, 7, 7, 7, 7, 7, 7, 7,
133 7, 7, 7, 7, 7, 7, 7, 7,
134 7, 7, 7, 7, 7, 7, 7, 7,
135 7, 7, 7, 7, 7, 7, 7, 7,
136 7, 7, 7, 7, 7, 7, 7, 7,
137 7, 7, 7, 7, 7, 7, 7, 7,
138 7, 7, 7, 7, 7, 7, 7, 7,
139 7, 7, 7, 7, 7, 7, 7, 7,
140 7, 7, 7, 7, 7, 7, 7, 7,
141 7, 7, 7, 7, 7, 7, 7, 7,
142 7, 7, 7, 7, 7, 7, 7, 7,
143 7, 7, 7, 7, 7, 7, 7, 7,
144 7, 7, 7, 7, 7, 7, 7, 7,
145 7, 7, 7, 7, 7, 7, 7, 7,
146 7, 7, 7, 7, 7, 7, 7, 7,
147 7, 7, 7, 7, 7, 7, 7, 7,
148 7, 7, 7, 7, 7, 7, 7, 7,
149 7, 7, 7, 7, 7, 7, 7, 7,
150 7, 7, 7, 7, 7, 7, 7, 7,
151 7, 7, 7, 7, 7, 7, 7, 7,
152 7, 7, 7, 7, 7, 7, 7, 7,
153 7, 7, 7, 7, 139, 87, 121, 7,
154 7, 7, 7, 7, 7, 7, 7, 7,
155 145, 7, 7, 146, 129, 7, 7, 147,
156 87, 148, 7, 7, 149, 7, 7, 7,
157 150, 151, 7, 152, 7, 7, 153, 154,
158 7, 155, 156, 7, 37, 157, 7, 7,
159 7, 158, 159, 7, 7, 160, 41, 161,
160 7, 7, 7, 7, 7, 7, 7, 162,
161 7, 7, 7, 7, 7, 7, 7, 7,
162 7, 7, 7, 7, 7, 7, 7, 7,
163 7, 7, 7, 7, 7, 7, 7, 7,
164 7, 7, 7, 7, 7, 7, 7, 7,
165 7, 7, 7, 7, 7, 7, 7, 7,
166 7, 7, 7, 7, 7, 7, 7, 7,
167 7, 7, 7, 7, 7, 7, 7, 7,
168 7, 7, 7, 7, 7, 7, 7, 7,
169 7, 7, 7, 7, 7, 7, 7, 7,
170 7, 7, 7, 7, 7, 7, 7, 7,
171 7, 7, 7, 7, 7, 7, 7, 7,
172 7, 7, 7, 7, 7, 7, 7, 7,
173 7, 7, 7, 7, 7, 7, 7, 7,
174 7, 7, 7, 7, 7, 7, 7, 7,
175 7, 7, 7, 7, 7, 7, 7, 7,
176 163, 164, 165, 21, 21, 21, 166, 21,
177 21, 21, 21, 21, 21, 21, 21, 21,
178 21, 167, 168, 21, 169, 21, 170, 171,
179 172, 173, 174, 175, 21, 21, 21, 176,
180 177, 2, 2, 178, 7, 7, 7, 179,
181 7, 7, 7, 7, 7, 7, 7, 7,
182 180, 7, 87, 87, 181, 7, 7, 182,
183 7, 7, 7, 7, 7, 7, 7, 7,
184 7, 7, 7, 7, 7, 7, 7, 7,
185 7, 7, 7, 7, 7, 7, 7, 7,
186 7, 7, 7, 7, 7, 7, 7, 7,
187 7, 7, 7, 7, 7, 7, 7, 7,
188 7, 7, 7, 7, 7, 7, 7, 7,
189 183, 184, 185, 7, 7, 7, 7, 7,
190 186, 187, 7, 7, 30, 188, 7, 7,
191 189, 190, 191, 30, 7, 7, 7, 7,
192 30, 192, 193, 194, 7, 7, 7, 7,
193 30, 30, 195, 7, 7, 7, 7, 7,
194 7, 7, 7, 7, 7, 7, 7, 7,
195 7, 7, 7, 196, 7, 7, 7, 7,
196 7, 7, 7, 7, 7, 7, 7, 7,
197 41, 197, 198, 178, 94, 199, 7, 7,
198 37, 200, 7, 7, 94, 201, 7, 7,
199 7, 7, 7, 7, 7, 7, 7, 7,
200 7, 7, 7, 7, 7, 7, 7, 7,
201 7, 7, 7, 7, 7, 7, 7, 7,
202 7, 7, 7, 7, 7, 7, 7, 7,
203 7, 7, 7, 7, 7, 202, 7, 7,
204 7, 7, 7, 7, 7, 7, 7, 7,
205 7, 7, 7, 7, 7, 7, 7, 7,
206 7, 7, 7, 7, 7, 7, 7, 7,
207 7, 7, 7, 7, 7, 7, 7, 7,
208 7, 7, 7, 7, 7, 7, 7, 7,
209 7, 7, 7, 7, 7, 7, 7, 7,
210 7, 7, 7, 7, 7, 7, 7, 7,
211 7, 7, 7, 7, 7, 7, 7, 7,
212 7, 7, 7, 7, 7, 7, 7, 7,
213 7, 7, 7, 7, 7, 7, 7, 7,
214 7, 7, 7, 7, 7, 7, 7, 7,
215 7, 7, 7, 7, 7, 7, 7, 7,
216 7, 7, 7, 7, 7, 7, 7, 7,
217 7, 7, 7, 7, 7, 7, 7, 7,
218 7, 7, 7, 7, 7, 7, 7, 7,
219 7, 7, 7, 7, 7, 7, 7, 7,
220 7, 7, 7, 7, 7, 7, 7, 7,
221 7, 7, 7, 7, 7, 7, 7, 7,
222 7, 7, 7, 7, 7, 7, 7, 7,
223 7, 7, 7, 7, 7, 7, 7, 7,
224 7, 7, 7, 7, 7, 7, 7, 7,
225 7, 7, 7, 7, 7, 7, 7, 7,
226 7, 7, 7, 7, 7, 7, 7, 7,
227 7, 7, 7, 7, 7, 7, 7, 7,
228 7, 7, 7, 7, 203, 7, 7, 7,
229 7, 7, 7, 7, 7, 7, 7, 7,
230 7, 7, 7, 204, 205, 206, 7, 7,
231 87, 87, 207, 7, 7, 7, 7, 7,
232 87, 87, 208, 7, 7, 7, 7, 7,
233 7, 7, 7, 7, 7, 7, 7, 7,
234 7, 7, 7, 7, 7, 7, 7, 7,
235 7, 7, 7, 7, 7, 7, 136, 7,
236 209, 7, 210, 7, 211, 7, 212, 213,
237 7, 7, 7, 7, 7, 7, 7, 7,
238 7, 7, 7, 7, 7, 7, 7, 7,
239 7, 7, 7, 7, 7, 7, 7, 7,
240 7, 7, 7, 7, 7, 7, 7, 7,
241 7, 7, 7, 7, 7, 7, 7, 7,
242 7, 7, 7, 7, 7, 7, 7, 7,
243 7, 7, 7, 7, 7, 7, 7, 7,
244 7, 7, 7, 7, 7, 7, 7, 7,
245 7, 7, 7, 7, 7, 7, 7, 7,
246 7, 7, 7, 7, 7, 7, 7, 7,
247 7, 7, 7, 7, 7, 7, 7, 7,
248 7, 7, 7, 7, 7, 7, 7, 7,
249 7, 7, 7, 7, 7, 7, 7, 7,
250 7, 7, 7, 7, 7, 7, 7, 7,
251 7, 7, 7, 7, 7, 7, 7, 7,
252 7, 7, 7, 7, 7, 7, 7, 7,
253 7, 7, 7, 7, 7, 7, 7, 7,
254 7, 7, 7, 7, 7, 7, 7, 7,
255 7, 7, 7, 7, 7, 7, 7, 7,
256 7, 7, 7, 7, 7, 7, 7, 7,
257 7, 7, 7, 7, 7, 7, 7, 7,
258 7, 7, 7, 7, 7, 7, 7, 7,
259 214, 215, 216, 217, 218, 219, 7, 220,
260 7, 7, 7, 7, 7, 7, 7, 7,
261 87, 221, 87, 87, 120, 222, 223, 7,
262 224, 7, 7, 225, 7, 7, 7, 7,
263 7, 7, 7, 7, 7, 7, 7, 7,
264 87, 226, 87, 227, 120, 87, 228, 229,
265 87, 230, 231, 87, 87, 87, 87, 232,
266 87, 233, 234, 235, 7, 7, 7, 118,
267 87, 87, 236, 7, 87, 87, 178, 7,
268 87, 87, 87, 120, 7, 7, 7, 7,
269 7, 7, 7, 7, 7, 7, 7, 7,
270 7, 7, 7, 7, 7, 7, 7, 7,
271 7, 7, 7, 7, 7, 7, 7, 7,
272 7, 7, 7, 7, 7, 7, 7, 7,
273 7, 7, 7, 7, 7, 7, 7, 7,
274 7, 7, 7, 7, 7, 7, 7, 7,
275 7, 7, 7, 7, 7, 7, 7, 7,
276 7, 7, 7, 7, 7, 7, 7, 7,
277 237, 238, 238, 238, 7, 7, 7, 7,
278 11, 11, 11, 11, 11, 11, 11, 239,
279 7, 7, 7, 7, 7, 7, 7, 7,
280 7, 7, 7, 7, 7, 7, 7, 7,
281 7, 7, 7, 7, 7, 7, 7, 7,
282 7, 7, 7, 7, 7, 7, 7, 7,
283 7, 7, 7, 7, 7, 7, 7, 7,
284 7, 7, 7, 7, 7, 7, 7, 7,
285 7, 7, 7, 7, 7, 7, 7, 7,
286 7, 7, 7, 7, 7, 7, 7, 7,
287 7, 7, 7, 7, 7, 7, 7, 7,
288 7, 7, 7, 7, 7, 7, 7, 7,
289 7, 7, 7, 7, 7, 7, 7, 7,
290 7, 7, 7, 7, 7, 7, 7, 7,
291 7, 7, 7, 7, 7, 7, 7, 7,
292 7, 7, 7, 7, 7, 7, 7, 7,
293 };
294
295 static const struct {
296 unsigned char tbl[32];
297 } bidiclass_table[] = {
298 {{
299 14, 14, 14, 14, 14, 14, 14, 14, 14, 16, 15, 16, 17, 15, 14, 14, 14,
300 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 15, 15, 15, 16,
301 }},
302 {{
303 17, 18, 18, 10, 10, 10, 18, 18, 18, 18, 18, 9, 12, 9, 12, 12, 8,
304 8, 8, 8, 8, 8, 8, 8, 8, 8, 12, 18, 18, 18, 18, 18,
305 }},
306 {{
307 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
308 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 18, 18, 18, 18,
309 }},
310 {{
311 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
312 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 18, 18, 18, 14,
313 }},
314 {{
315 14, 14, 14, 14, 14, 15, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
316 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
317 }},
318 {{
319 12, 18, 10, 10, 10, 10, 18, 18, 18, 18, 0, 18, 18, 14, 18, 18, 10,
320 10, 8, 8, 18, 0, 18, 18, 18, 8, 0, 18, 18, 18, 18, 18,
321 }},
322 {{
323 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
324 0, 0, 0, 0, 0, 0, 18, 0, 0, 0, 0, 0, 0, 0, 0,
325 }},
326 {{
327 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
328 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
329 }},
330 {{
331 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
332 0, 0, 0, 0, 0, 0, 0, 0, 18, 18, 0, 0, 0, 0, 0,
333 }},
334 {{
335 0, 0, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 0,
336 0, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
337 }},
338 {{
339 0, 0, 0, 0, 0, 18, 18, 18, 18, 18, 18, 18, 18, 18, 0, 18, 18,
340 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
341 }},
342 {{
343 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
344 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
345 }},
346 {{
347 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 0,
348 0, 0, 0, 18, 18, 0, 0, 0, 0, 0, 0, 0, 0, 18, 0,
349 }},
350 {{
351 0, 0, 0, 0, 18, 18, 0, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0,
352 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
353 }},
354 {{
355 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
356 0, 0, 0, 0, 0, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0,
357 }},
358 {{
359 0, 0, 0, 13, 13, 13, 13, 13, 13, 13, 0, 0, 0, 0, 0, 0, 0,
360 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
361 }},
362 {{
363 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 0, 0, 0, 0, 10, 0,
364 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
365 }},
366 {{
367 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
368 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 3, 13,
369 }},
370 {{
371 3, 13, 13, 3, 13, 13, 3, 13, 0, 0, 0, 0, 0, 0, 0, 0, 3,
372 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
373 }},
374 {{
375 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0, 3,
376 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
377 }},
378 {{
379 11, 11, 11, 11, 11, 0, 18, 18, 4, 10, 10, 4, 12, 4, 18, 18, 13,
380 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 4, 4, 0, 4, 4,
381 }},
382 {{
383 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
384 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
385 }},
386 {{
387 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 13, 13, 13, 13, 13, 13,
388 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
389 }},
390 {{
391 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 10, 11, 11, 4, 4, 4, 13,
392 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
393 }},
394 {{
395 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
396 4, 4, 4, 4, 4, 13, 13, 13, 13, 13, 13, 13, 11, 18, 13,
397 }},
398 {{
399 13, 13, 13, 13, 13, 4, 4, 13, 13, 18, 13, 13, 13, 13, 4, 4, 8,
400 8, 8, 8, 8, 8, 8, 8, 8, 8, 4, 4, 4, 4, 4, 4,
401 }},
402 {{
403 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 0, 4, 4,
404 13, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
405 }},
406 {{
407 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 13,
408 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
409 }},
410 {{
411 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 0, 0, 4, 4, 4, 4,
412 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
413 }},
414 {{
415 4, 4, 4, 4, 4, 4, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
416 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
417 }},
418 {{
419 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
420 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
421 }},
422 {{
423 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 13, 13, 13, 13, 13, 13,
424 13, 13, 13, 3, 3, 18, 18, 18, 18, 3, 0, 0, 0, 0, 0,
425 }},
426 {{
427 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
428 3, 3, 3, 3, 3, 13, 13, 13, 13, 3, 13, 13, 13, 13, 13,
429 }},
430 {{
431 13, 13, 13, 13, 3, 13, 13, 13, 3, 13, 13, 13, 13, 13, 0, 0, 3,
432 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0,
433 }},
434 {{
435 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
436 3, 3, 3, 3, 3, 3, 3, 3, 13, 13, 13, 0, 0, 3, 0,
437 }},
438 {{
439 4, 0, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 0, 0, 0, 0,
440 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
441 }},
442 {{
443 0, 0, 0, 0, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
444 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 0,
445 }},
446 {{
447 13, 13, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
448 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
449 }},
450 {{
451 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
452 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 13, 0, 0, 0,
453 }},
454 {{
455 0, 13, 13, 13, 13, 13, 13, 13, 13, 0, 0, 0, 0, 13, 0, 0, 0,
456 13, 13, 13, 13, 13, 13, 13, 0, 0, 0, 0, 0, 0, 0, 0,
457 }},
458 {{
459 0, 0, 13, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
460 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
461 }},
462 {{
463 0, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
464 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
465 }},
466 {{
467 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
468 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0,
469 }},
470 {{
471 0, 13, 13, 13, 13, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0,
472 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
473 }},
474 {{
475 0, 0, 13, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
476 0, 10, 10, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0,
477 }},
478 {{
479 0, 13, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
480 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
481 }},
482 {{
483 0, 13, 13, 0, 0, 0, 0, 13, 13, 0, 0, 13, 13, 13, 0, 0, 0,
484 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
485 }},
486 {{
487 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13,
488 13, 0, 0, 0, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
489 }},
490 {{
491 0, 13, 13, 13, 13, 13, 0, 13, 13, 0, 0, 0, 0, 13, 0, 0, 0,
492 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
493 }},
494 {{
495 0, 0, 13, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
496 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
497 }},
498 {{
499 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
500 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 13,
501 }},
502 {{
503 0, 13, 13, 13, 13, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0,
504 0, 0, 0, 0, 0, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0,
505 }},
506 {{
507 0, 0, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
508 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
509 }},
510 {{
511 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0,
512 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
513 }},
514 {{
515 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
516 0, 0, 18, 18, 18, 18, 18, 18, 10, 18, 0, 0, 0, 0, 0,
517 }},
518 {{
519 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
520 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 13,
521 }},
522 {{
523 13, 0, 0, 0, 0, 0, 13, 13, 13, 0, 13, 13, 13, 13, 0, 0, 0,
524 0, 0, 0, 0, 13, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0,
525 }},
526 {{
527 0, 0, 13, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
528 0, 0, 0, 0, 0, 0, 0, 18, 18, 18, 18, 18, 18, 18, 0,
529 }},
530 {{
531 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 13, 0, 0, 0,
532 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
533 }},
534 {{
535 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 0, 0, 0,
536 0, 13, 13, 13, 0, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0,
537 }},
538 {{
539 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
540 13, 0, 0, 13, 13, 13, 13, 13, 13, 13, 0, 0, 0, 0, 10,
541 }},
542 {{
543 0, 0, 0, 0, 0, 0, 0, 13, 13, 13, 13, 13, 13, 13, 13, 0, 0,
544 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
545 }},
546 {{
547 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
548 13, 0, 0, 13, 13, 13, 13, 13, 13, 0, 13, 13, 0, 0, 0,
549 }},
550 {{
551 0, 0, 0, 0, 0, 0, 0, 0, 13, 13, 13, 13, 13, 13, 0, 0, 0,
552 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
553 }},
554 {{
555 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
556 0, 0, 0, 0, 0, 0, 0, 13, 13, 0, 0, 0, 0, 0, 0,
557 }},
558 {{
559 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
560 0, 0, 0, 0, 13, 0, 13, 0, 13, 18, 18, 18, 18, 0, 0,
561 }},
562 {{
563 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
564 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 0,
565 }},
566 {{
567 13, 13, 13, 13, 13, 0, 13, 13, 0, 0, 0, 0, 0, 13, 13, 13, 13,
568 13, 13, 13, 13, 13, 13, 13, 0, 13, 13, 13, 13, 13, 13, 13,
569 }},
570 {{
571 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
572 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 0, 0, 0,
573 }},
574 {{
575 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
576 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
577 }},
578 {{
579 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 13, 13, 13,
580 0, 13, 13, 13, 13, 13, 13, 0, 13, 13, 0, 0, 13, 13, 0,
581 }},
582 {{
583 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
584 0, 0, 0, 0, 0, 0, 0, 13, 13, 0, 0, 0, 0, 13, 13,
585 }},
586 {{
587 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
588 13, 13, 13, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
589 }},
590 {{
591 0, 0, 13, 0, 0, 13, 13, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0,
592 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0,
593 }},
594 {{
595 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
596 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 13, 13,
597 }},
598 {{
599 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18,
600 18, 18, 18, 18, 18, 18, 18, 18, 18, 0, 0, 0, 0, 0, 0,
601 }},
602 {{
603 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
604 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
605 }},
606 {{
607 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
608 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 18, 0, 0, 0,
609 }},
610 {{
611 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
612 0, 13, 13, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
613 }},
614 {{
615 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
616 0, 13, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
617 }},
618 {{
619 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
620 0, 0, 0, 13, 13, 0, 13, 13, 13, 13, 13, 13, 13, 0, 0,
621 }},
622 {{
623 0, 0, 0, 0, 0, 0, 13, 0, 0, 13, 13, 13, 13, 13, 13, 13, 13,
624 13, 13, 13, 0, 0, 0, 0, 0, 0, 0, 10, 0, 13, 0, 0,
625 }},
626 {{
627 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 13, 13, 13, 14, 0, 0,
628 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
629 }},
630 {{
631 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 0, 0, 0, 0,
632 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
633 }},
634 {{
635 13, 13, 13, 0, 0, 0, 0, 13, 13, 0, 0, 0, 0, 0, 0, 0, 0,
636 0, 13, 0, 0, 0, 0, 0, 0, 13, 13, 13, 0, 0, 0, 0,
637 }},
638 {{
639 18, 0, 0, 0, 18, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
640 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
641 }},
642 {{
643 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
644 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 18,
645 }},
646 {{
647 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
648 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
649 }},
650 {{
651 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
652 0, 0, 0, 0, 0, 0, 13, 13, 0, 0, 13, 0, 0, 0, 0,
653 }},
654 {{
655 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
656 0, 0, 0, 0, 0, 13, 0, 13, 13, 13, 13, 13, 13, 13, 0,
657 }},
658 {{
659 13, 0, 13, 0, 0, 13, 13, 13, 13, 13, 13, 13, 13, 0, 0, 0, 0,
660 0, 0, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 0, 0, 13,
661 }},
662 {{
663 13, 13, 13, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
664 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
665 }},
666 {{
667 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
668 0, 0, 0, 13, 0, 13, 13, 13, 13, 13, 0, 13, 0, 0, 0,
669 }},
670 {{
671 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 13, 13, 13, 13, 13,
672 13, 13, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
673 }},
674 {{
675 13, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
676 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
677 }},
678 {{
679 0, 0, 13, 13, 13, 13, 0, 0, 13, 13, 0, 13, 0, 0, 0, 0, 0,
680 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
681 }},
682 {{
683 0, 0, 0, 0, 0, 0, 13, 0, 13, 13, 0, 0, 0, 13, 0, 13, 13,
684 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
685 }},
686 {{
687 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 13, 13, 13, 13,
688 13, 13, 13, 0, 0, 13, 13, 0, 0, 0, 0, 0, 0, 0, 0,
689 }},
690 {{
691 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13,
692 13, 13, 0, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
693 }},
694 {{
695 13, 0, 13, 13, 13, 13, 13, 13, 13, 0, 0, 0, 0, 13, 0, 0, 0,
696 0, 0, 0, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
697 }},
698 {{
699 13, 13, 13, 13, 13, 13, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
700 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 13, 13, 13,
701 }},
702 {{
703 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
704 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 0, 18,
705 }},
706 {{
707 18, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 18, 18, 0,
708 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 18, 18,
709 }},
710 {{
711 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 18, 18, 0,
712 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 18, 0,
713 }},
714 {{
715 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 14, 14, 14, 0, 3, 18,
716 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
717 }},
718 {{
719 18, 18, 18, 18, 18, 18, 18, 18, 17, 15, 1, 5, 7, 2, 6, 12, 10,
720 10, 10, 10, 10, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
721 }},
722 {{
723 18, 18, 18, 18, 12, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
724 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 17,
725 }},
726 {{
727 14, 14, 14, 14, 14, 0, 19, 20, 21, 22, 14, 14, 14, 14, 14, 14, 8,
728 0, 0, 0, 8, 8, 8, 8, 8, 8, 9, 9, 18, 18, 18, 0,
729 }},
730 {{
731 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 9, 9, 18, 18, 18, 0, 0,
732 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
733 }},
734 {{
735 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
736 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 0, 0, 0, 0, 0,
737 }},
738 {{
739 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13,
740 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
741 }},
742 {{
743 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
744 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
745 }},
746 {{
747 18, 18, 0, 18, 18, 18, 18, 0, 18, 18, 0, 0, 0, 0, 0, 0, 0,
748 0, 0, 0, 18, 0, 18, 18, 18, 0, 0, 0, 0, 0, 18, 18,
749 }},
750 {{
751 18, 18, 18, 18, 0, 18, 0, 18, 0, 18, 0, 0, 0, 0, 10, 0, 0,
752 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 18, 0, 0, 0, 0,
753 }},
754 {{
755 18, 18, 18, 18, 18, 0, 0, 0, 0, 0, 18, 18, 18, 18, 0, 0, 18,
756 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
757 }},
758 {{
759 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 0, 0, 0, 0, 0, 0, 18,
760 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
761 }},
762 {{
763 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
764 18, 9, 10, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
765 }},
766 {{
767 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
768 18, 18, 18, 18, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
769 }},
770 {{
771 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
772 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 18, 18, 18, 18,
773 }},
774 {{
775 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
776 18, 18, 18, 18, 0, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
777 }},
778 {{
779 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
780 18, 18, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
781 }},
782 {{
783 18, 18, 18, 18, 18, 18, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
784 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
785 }},
786 {{
787 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 0, 0, 0, 0, 0, 0,
788 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
789 }},
790 {{
791 18, 18, 18, 18, 18, 18, 18, 18, 8, 8, 8, 8, 8, 8, 8, 8, 8,
792 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 0, 0, 0, 0,
793 }},
794 {{
795 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 18, 18, 18, 18, 18, 18,
796 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
797 }},
798 {{
799 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 0, 18, 18, 18, 18,
800 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
801 }},
802 {{
803 0, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
804 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
805 }},
806 {{
807 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 0, 0, 0, 18,
808 18, 18, 18, 18, 18, 18, 18, 18, 18, 0, 0, 0, 0, 0, 0,
809 }},
810 {{
811 0, 0, 0, 0, 0, 18, 18, 18, 18, 18, 18, 0, 0, 0, 0, 13, 13,
812 13, 0, 0, 0, 0, 0, 0, 0, 18, 18, 18, 18, 18, 18, 18,
813 }},
814 {{
815 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
816 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13,
817 }},
818 {{
819 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
820 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 0, 0, 0, 0,
821 }},
822 {{
823 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
824 18, 18, 18, 18, 18, 18, 18, 18, 18, 0, 18, 18, 18, 18, 18,
825 }},
826 {{
827 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18,
828 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 0, 0, 0, 0,
829 }},
830 {{
831 17, 18, 18, 18, 18, 0, 0, 0, 18, 18, 18, 18, 18, 18, 18, 18, 18,
832 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
833 }},
834 {{
835 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 13, 13, 13, 0, 0, 18,
836 0, 0, 0, 0, 0, 18, 18, 0, 0, 0, 0, 0, 18, 18, 18,
837 }},
838 {{
839 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
840 0, 0, 0, 0, 0, 0, 0, 0, 13, 13, 18, 18, 0, 0, 0,
841 }},
842 {{
843 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
844 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 0, 0, 0, 0,
845 }},
846 {{
847 18, 18, 18, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
848 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
849 }},
850 {{
851 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
852 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 18, 0,
853 }},
854 {{
855 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18,
856 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
857 }},
858 {{
859 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
860 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 18, 18, 0,
861 }},
862 {{
863 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
864 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
865 }},
866 {{
867 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 18, 18, 18, 0,
868 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
869 }},
870 {{
871 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
872 0, 0, 0, 0, 0, 0, 18, 18, 18, 18, 0, 0, 0, 0, 0,
873 }},
874 {{
875 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
876 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18,
877 }},
878 {{
879 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 18, 18, 0,
880 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
881 }},
882 {{
883 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 13,
884 13, 13, 18, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 18, 18,
885 }},
886 {{
887 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13,
888 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
889 }},
890 {{
891 18, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
892 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
893 }},
894 {{
895 0, 0, 0, 0, 0, 0, 0, 0, 18, 0, 0, 0, 0, 0, 0, 0, 0,
896 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
897 }},
898 {{
899 0, 0, 13, 0, 0, 0, 13, 0, 0, 0, 0, 13, 0, 0, 0, 0, 0,
900 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
901 }},
902 {{
903 0, 0, 0, 0, 0, 13, 13, 0, 18, 18, 18, 18, 0, 0, 0, 0, 0,
904 0, 0, 0, 0, 0, 0, 0, 10, 10, 0, 0, 0, 0, 0, 0,
905 }},
906 {{
907 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
908 0, 0, 0, 18, 18, 18, 18, 0, 0, 0, 0, 0, 0, 0, 0,
909 }},
910 {{
911 0, 0, 0, 0, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
912 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
913 }},
914 {{
915 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
916 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
917 }},
918 {{
919 0, 0, 0, 0, 0, 0, 13, 13, 13, 13, 13, 13, 13, 13, 0, 0, 0,
920 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
921 }},
922 {{
923 0, 0, 0, 0, 0, 0, 0, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
924 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
925 }},
926 {{
927 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
928 0, 0, 13, 0, 0, 13, 13, 13, 13, 0, 0, 13, 0, 0, 0,
929 }},
930 {{
931 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 13, 13, 13, 13, 13, 0, 0,
932 13, 13, 0, 0, 13, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0,
933 }},
934 {{
935 0, 0, 0, 13, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 0,
936 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
937 }},
938 {{
939 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13,
940 0, 13, 13, 13, 0, 0, 13, 13, 0, 0, 0, 0, 0, 13, 13,
941 }},
942 {{
943 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 13, 0, 0, 0,
944 0, 0, 0, 0, 0, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0,
945 }},
946 {{
947 0, 0, 0, 0, 0, 13, 0, 0, 13, 0, 0, 0, 0, 13, 0, 0, 0,
948 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
949 }},
950 {{
951 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
952 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 13, 3,
953 }},
954 {{
955 3, 3, 3, 3, 3, 3, 3, 3, 3, 9, 3, 3, 3, 3, 3, 3, 3,
956 3, 3, 3, 3, 3, 3, 0, 3, 3, 3, 3, 3, 0, 3, 0,
957 }},
958 {{
959 3, 3, 0, 3, 3, 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4,
960 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
961 }},
962 {{
963 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
964 0, 0, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
965 }},
966 {{
967 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
968 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 18, 18,
969 }},
970 {{
971 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4,
972 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
973 }},
974 {{
975 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 0,
976 0, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
977 }},
978 {{
979 4, 4, 4, 4, 4, 4, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,
980 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
981 }},
982 {{
983 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4,
984 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 18, 0, 0,
985 }},
986 {{
987 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 18,
988 18, 18, 18, 18, 18, 18, 18, 18, 18, 0, 0, 0, 0, 0, 0,
989 }},
990 {{
991 13, 13, 13, 13, 13, 13, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18,
992 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
993 }},
994 {{
995 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 12,
996 18, 12, 0, 18, 12, 18, 18, 18, 18, 18, 18, 18, 18, 18, 10,
997 }},
998 {{
999 18, 18, 9, 9, 18, 18, 18, 0, 18, 10, 10, 18, 0, 0, 0, 0, 4,
1000 4, 4, 4, 4, 0, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
1001 }},
1002 {{
1003 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
1004 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 0, 0, 14,
1005 }},
1006 {{
1007 0, 18, 18, 10, 10, 10, 18, 18, 18, 18, 18, 9, 12, 9, 12, 12, 8,
1008 8, 8, 8, 8, 8, 8, 8, 8, 8, 12, 18, 18, 18, 18, 18,
1009 }},
1010 {{
1011 18, 18, 18, 18, 18, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1012 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1013 }},
1014 {{
1015 10, 10, 18, 18, 18, 10, 10, 0, 18, 18, 18, 18, 18, 18, 18, 0, 0,
1016 0, 0, 0, 0, 0, 0, 0, 0, 18, 18, 18, 18, 18, 0, 0,
1017 }},
1018 {{
1019 0, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1020 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1021 }},
1022 {{
1023 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 0, 0, 0, 0, 0, 18,
1024 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 0, 0, 0, 0,
1025 }},
1026 {{
1027 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1028 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0,
1029 }},
1030 {{
1031 3, 3, 3, 3, 3, 3, 0, 0, 3, 0, 3, 3, 3, 3, 3, 3, 3,
1032 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
1033 }},
1034 {{
1035 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
1036 3, 3, 3, 3, 3, 0, 3, 3, 0, 0, 0, 3, 0, 0, 3,
1037 }},
1038 {{
1039 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
1040 3, 3, 3, 3, 3, 0, 3, 3, 3, 3, 3, 3, 3, 3, 3,
1041 }},
1042 {{
1043 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
1044 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 18,
1045 }},
1046 {{
1047 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
1048 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0, 3,
1049 }},
1050 {{
1051 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
1052 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 3, 3,
1053 }},
1054 {{
1055 3, 13, 13, 13, 0, 13, 13, 0, 0, 0, 0, 0, 13, 13, 13, 13, 3,
1056 3, 3, 3, 0, 3, 3, 3, 0, 3, 3, 3, 3, 3, 3, 3,
1057 }},
1058 {{
1059 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
1060 3, 3, 3, 0, 0, 0, 0, 13, 13, 13, 0, 0, 0, 0, 13,
1061 }},
1062 {{
1063 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 3,
1064 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0,
1065 }},
1066 {{
1067 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
1068 3, 3, 3, 3, 3, 0, 0, 0, 18, 18, 18, 18, 18, 18, 18,
1069 }},
1070 {{
1071 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
1072 3, 3, 3, 3, 3, 0, 0, 3, 3, 3, 3, 3, 3, 3, 3,
1073 }},
1074 {{
1075 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
1076 3, 3, 0, 0, 0, 0, 0, 3, 3, 3, 3, 3, 3, 3, 3,
1077 }},
1078 {{
1079 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0,
1080 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1081 }},
1082 {{
1083 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
1084 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 0,
1085 }},
1086 {{
1087 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1088 0, 0, 0, 0, 0, 0, 0, 13, 13, 13, 13, 13, 13, 13, 13,
1089 }},
1090 {{
1091 13, 13, 13, 13, 13, 13, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1092 0, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
1093 }},
1094 {{
1095 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1096 0, 0, 13, 13, 13, 13, 0, 0, 13, 13, 0, 0, 0, 0, 0,
1097 }},
1098 {{
1099 0, 0, 0, 0, 0, 0, 0, 13, 13, 13, 13, 13, 0, 13, 13, 13, 13,
1100 13, 13, 13, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1101 }},
1102 {{
1103 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1104 0, 0, 0, 0, 0, 13, 13, 13, 13, 13, 13, 13, 13, 13, 0,
1105 }},
1106 {{
1107 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 13, 0, 0, 13,
1108 13, 13, 13, 13, 13, 0, 13, 0, 0, 0, 0, 0, 0, 0, 0,
1109 }},
1110 {{
1111 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 13,
1112 13, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1113 }},
1114 {{
1115 0, 0, 0, 0, 0, 0, 0, 13, 13, 13, 0, 0, 0, 0, 0, 0, 0,
1116 0, 0, 14, 14, 14, 14, 14, 14, 14, 14, 13, 13, 13, 13, 13,
1117 }},
1118 {{
1119 13, 13, 13, 0, 0, 13, 13, 13, 13, 13, 13, 13, 0, 0, 0, 0, 0,
1120 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1121 }},
1122 {{
1123 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 13, 13, 13, 0, 0, 0,
1124 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1125 }},
1126 {{
1127 18, 18, 13, 13, 13, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1128 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1129 }},
1130 {{
1131 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
1132 18, 18, 18, 18, 18, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1133 }},
1134 {{
1135 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1136 0, 0, 0, 0, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1137 }},
1138 {{
1139 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 0,
1140 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1141 }},
1142 {{
1143 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 0, 0, 0, 0, 0, 0, 0,
1144 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1145 }},
1146 {{
1147 0, 0, 0, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 8, 8,
1148 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
1149 }},
1150 {{
1151 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
1152 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
1153 }},
1154 {{
1155 4, 4, 4, 4, 0, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
1156 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
1157 }},
1158 {{
1159 0, 4, 4, 0, 4, 0, 0, 4, 0, 4, 4, 4, 4, 4, 4, 4, 4,
1160 4, 4, 0, 4, 4, 4, 4, 0, 4, 0, 4, 0, 0, 0, 0,
1161 }},
1162 {{
1163 0, 0, 4, 0, 0, 0, 0, 4, 0, 4, 0, 4, 0, 4, 4, 4, 0,
1164 4, 4, 0, 4, 0, 0, 4, 0, 4, 0, 4, 0, 4, 0, 4,
1165 }},
1166 {{
1167 0, 4, 4, 0, 4, 0, 0, 4, 4, 4, 4, 0, 4, 4, 4, 4, 4,
1168 4, 4, 0, 4, 4, 4, 4, 0, 4, 4, 4, 4, 0, 4, 0,
1169 }},
1170 {{
1171 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 0, 4, 4, 4, 4, 4, 4,
1172 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 0, 0, 0, 0,
1173 }},
1174 {{
1175 0, 4, 4, 4, 0, 4, 4, 4, 4, 4, 0, 4, 4, 4, 4, 4, 4,
1176 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 0, 0, 0, 0,
1177 }},
1178 {{
1179 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18,
1180 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1181 }},
1182 {{
1183 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 0, 0, 0, 0, 18,
1184 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
1185 }},
1186 {{
1187 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 0, 0,
1188 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 0,
1189 }},
1190 {{
1191 0, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 0,
1192 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
1193 }},
1194 {{
1195 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 0, 0, 0, 0, 0, 0,
1196 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1197 }},
1198 {{
1199 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 18, 0, 0, 0, 0, 0,
1200 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1201 }},
1202 {{
1203 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18,
1204 18, 18, 18, 18, 18, 0, 18, 18, 18, 18, 18, 18, 18, 18, 18,
1205 }},
1206 {{
1207 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
1208 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 0, 0, 0,
1209 }},
1210 {{
1211 18, 18, 18, 18, 18, 0, 18, 18, 18, 18, 18, 0, 0, 0, 0, 0, 0,
1212 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1213 }},
1214 {{
1215 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
1216 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1217 }},
1218 {{
1219 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
1220 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 0,
1221 }},
1222 {{
1223 18, 0, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
1224 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
1225 }},
1226 {{
1227 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
1228 18, 18, 18, 18, 18, 18, 18, 0, 18, 18, 18, 18, 0, 0, 0,
1229 }},
1230 {{
1231 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
1232 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 0, 0,
1233 }},
1234 {{
1235 18, 18, 18, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18,
1236 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
1237 }},
1238 {{
1239 18, 18, 18, 18, 18, 18, 18, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1240 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1241 }},
1242 {{
1243 18, 0, 0, 0, 0, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 0,
1244 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1245 }},
1246 {{
1247 0, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1248 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1249 }},
1250 {{
1251 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
1252 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
1253 }},
1254 {{
1255 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 0,
1256 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1257 }},
1258 };
1259
1260 /*
1261 * Table accessor.
1262 */
1263 idn__bidiclass_t
idn__sparsemap_getbidiclass(unsigned long v)1264 idn__sparsemap_getbidiclass(unsigned long v) {
1265 int idx0, idx1, idx2;
1266
1267 if (v > UTF32_MAX)
1268 return (idn__bidiclass_unknown);
1269 idx0 = v >> (BIDICLASS_BITS_1 + BIDICLASS_BITS_2);
1270 idx1 = (v >> BIDICLASS_BITS_2) & ((1 << BIDICLASS_BITS_1) - 1);
1271 idx2 = v & ((1 << BIDICLASS_BITS_2) - 1);
1272 return (idn__bidiclass_t) bidiclass_table[bidiclass_imap[bidiclass_imap[idx0] + idx1]].tbl[idx2];
1273 }
1274