Bumping manifests a=b2g-bump
[gecko.git] / netwerk / dns / nameprepdata.c
blobcd7e2db0e0cc5063ffd2ae970dedae4fa274e426
1 /*
2 * Copyright (c) 2001,2002 Japan Network Information Center.
3 * All rights reserved.
4 *
5 * By using this file, you agree to the terms and conditions set forth bellow.
6 *
7 * LICENSE TERMS AND CONDITIONS
8 *
9 * The following License Terms and Conditions apply, unless a different
10 * license is obtained from Japan Network Information Center ("JPNIC"),
11 * a Japanese association, Kokusai-Kougyou-Kanda Bldg 6F, 2-3-4 Uchi-Kanda,
12 * Chiyoda-ku, Tokyo 101-0047, Japan.
14 * 1. Use, Modification and Redistribution (including distribution of any
15 * modified or derived work) in source and/or binary forms is permitted
16 * under this License Terms and Conditions.
18 * 2. Redistribution of source code must retain the copyright notices as they
19 * appear in each source code file, this License Terms and Conditions.
21 * 3. Redistribution in binary form must reproduce the Copyright Notice,
22 * this License Terms and Conditions, in the documentation and/or other
23 * materials provided with the distribution. For the purposes of binary
24 * distribution the "Copyright Notice" refers to the following language:
25 * "Copyright (c) 2000-2002 Japan Network Information Center. All rights reserved."
27 * 4. The name of JPNIC may not be used to endorse or promote products
28 * derived from this Software without specific prior written approval of
29 * JPNIC.
31 * 5. Disclaimer/Limitation of Liability: THIS SOFTWARE IS PROVIDED BY JPNIC
32 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
33 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
34 * PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL JPNIC BE LIABLE
35 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
36 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
37 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
38 * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
39 * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
40 * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
41 * ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
45 * Do not edit this file!
46 * This file is generated from NAMEPREP specification.
49 #define MAP_BITS_0 9
50 #define MAP_BITS_1 7
51 #define MAP_BITS_2 5
53 #define PROH_BITS_0 7
54 #define PROH_BITS_1 7
55 #define PROH_BITS_2 7
57 #define UNAS_BITS_0 7
58 #define UNAS_BITS_1 7
59 #define UNAS_BITS_2 7
61 #define BIDI_BITS_0 9
62 #define BIDI_BITS_1 7
63 #define BIDI_BITS_2 5
66 static const unsigned short nameprep_id11_map_imap[] = {
67 272, 400, 528, 656, 784, 784, 784, 784,
68 784, 784, 784, 784, 784, 784, 784, 912,
69 1040, 784, 784, 784, 784, 784, 784, 784,
70 784, 784, 784, 784, 784, 1168, 784, 784,
71 784, 784, 784, 784, 784, 784, 784, 784,
72 784, 784, 784, 784, 784, 784, 784, 784,
73 784, 784, 784, 784, 784, 784, 784, 784,
74 784, 784, 784, 784, 784, 784, 784, 784,
75 784, 784, 784, 784, 784, 784, 784, 784,
76 784, 784, 784, 784, 784, 784, 784, 784,
77 784, 784, 784, 784, 784, 784, 784, 784,
78 784, 784, 784, 784, 784, 784, 784, 784,
79 784, 784, 784, 784, 784, 784, 784, 784,
80 784, 784, 784, 784, 784, 784, 784, 784,
81 784, 784, 784, 784, 784, 784, 784, 784,
82 784, 784, 784, 784, 784, 784, 784, 784,
83 784, 784, 784, 784, 784, 784, 784, 784,
84 784, 784, 784, 784, 784, 784, 784, 784,
85 784, 784, 784, 784, 784, 784, 784, 784,
86 784, 784, 784, 784, 784, 784, 784, 784,
87 784, 784, 784, 784, 784, 784, 784, 784,
88 784, 784, 784, 784, 784, 784, 784, 784,
89 784, 784, 784, 784, 784, 784, 784, 784,
90 784, 784, 784, 784, 784, 784, 784, 784,
91 784, 784, 784, 784, 784, 784, 784, 784,
92 784, 784, 784, 784, 784, 784, 784, 784,
93 784, 784, 784, 784, 784, 784, 784, 784,
94 784, 784, 784, 784, 784, 784, 784, 784,
95 784, 784, 784, 784, 784, 784, 784, 784,
96 784, 784, 784, 784, 784, 784, 784, 784,
97 784, 784, 784, 784, 784, 784, 784, 784,
98 784, 784, 784, 784, 784, 784, 784, 784,
99 784, 784, 784, 784, 784, 784, 784, 784,
100 784, 784, 784, 784, 784, 784, 784, 784,
101 0, 0, 1, 0, 0, 2, 3, 0,
102 4, 5, 6, 7, 8, 9, 10, 11,
103 12, 13, 0, 0, 0, 0, 0, 0,
104 0, 0, 14, 15, 16, 17, 18, 19,
105 20, 21, 0, 22, 23, 24, 25, 26,
106 27, 28, 29, 0, 30, 0, 0, 0,
107 0, 0, 0, 0, 0, 0, 0, 0,
108 0, 0, 0, 0, 0, 0, 0, 0,
109 0, 0, 0, 0, 0, 0, 0, 0,
110 0, 0, 0, 0, 0, 0, 0, 0,
111 0, 0, 0, 0, 0, 0, 0, 0,
112 0, 0, 0, 0, 0, 0, 0, 0,
113 0, 0, 0, 0, 0, 0, 0, 0,
114 0, 0, 0, 0, 0, 0, 0, 0,
115 0, 0, 0, 0, 0, 0, 0, 0,
116 0, 0, 0, 0, 0, 0, 0, 0,
117 0, 0, 0, 0, 0, 0, 0, 0,
118 0, 0, 0, 0, 0, 0, 0, 0,
119 0, 0, 0, 0, 0, 0, 0, 0,
120 0, 0, 0, 0, 0, 0, 0, 0,
121 0, 0, 0, 0, 0, 0, 0, 0,
122 0, 0, 0, 0, 0, 0, 0, 0,
123 0, 0, 0, 0, 0, 0, 0, 0,
124 0, 0, 0, 0, 0, 0, 0, 0,
125 31, 0, 0, 0, 0, 0, 0, 0,
126 0, 0, 0, 0, 0, 0, 0, 0,
127 0, 0, 0, 0, 0, 0, 0, 0,
128 0, 0, 0, 0, 0, 0, 0, 0,
129 0, 0, 0, 0, 0, 0, 0, 0,
130 0, 0, 0, 0, 0, 0, 0, 0,
131 32, 33, 34, 35, 36, 37, 38, 39,
132 40, 41, 42, 43, 44, 45, 46, 47,
133 48, 0, 0, 49, 0, 50, 0, 0,
134 51, 52, 53, 54, 0, 0, 0, 0,
135 0, 0, 0, 0, 0, 0, 0, 0,
136 0, 0, 0, 0, 0, 0, 0, 0,
137 0, 0, 0, 0, 0, 55, 56, 0,
138 0, 0, 0, 0, 0, 0, 0, 0,
139 0, 0, 0, 0, 0, 0, 0, 0,
140 0, 0, 0, 0, 0, 0, 0, 0,
141 0, 0, 0, 0, 0, 0, 0, 0,
142 0, 0, 0, 0, 0, 0, 0, 0,
143 0, 0, 0, 0, 0, 0, 0, 0,
144 0, 0, 0, 0, 0, 0, 0, 0,
145 0, 0, 0, 0, 0, 0, 0, 0,
146 0, 0, 0, 0, 0, 0, 0, 0,
147 0, 0, 0, 0, 0, 0, 0, 0,
148 0, 0, 0, 0, 0, 0, 0, 0,
149 0, 0, 0, 0, 0, 0, 0, 0,
150 0, 0, 0, 0, 0, 0, 0, 0,
151 0, 0, 0, 0, 0, 0, 0, 0,
152 0, 0, 0, 57, 58, 59, 60, 0,
153 0, 0, 0, 0, 0, 0, 0, 0,
154 0, 0, 0, 0, 0, 0, 0, 0,
155 0, 0, 0, 0, 0, 0, 0, 0,
156 0, 0, 0, 0, 0, 0, 0, 0,
157 0, 0, 0, 0, 0, 0, 0, 0,
158 0, 0, 0, 0, 0, 0, 0, 0,
159 0, 0, 0, 0, 0, 0, 0, 0,
160 0, 0, 0, 0, 0, 0, 0, 0,
161 0, 0, 0, 0, 0, 0, 0, 0,
162 0, 0, 0, 0, 0, 0, 0, 0,
163 0, 0, 0, 0, 0, 0, 0, 0,
164 0, 0, 0, 0, 0, 0, 0, 0,
165 0, 0, 0, 0, 0, 0, 0, 0,
166 0, 0, 0, 0, 0, 0, 0, 0,
167 0, 0, 0, 0, 0, 0, 0, 0,
168 0, 0, 0, 0, 0, 0, 0, 0,
169 0, 0, 0, 0, 0, 0, 0, 0,
170 0, 0, 0, 0, 0, 0, 0, 0,
171 0, 0, 0, 0, 0, 0, 0, 0,
172 0, 0, 0, 0, 0, 0, 0, 0,
173 0, 0, 0, 0, 0, 0, 0, 0,
174 0, 0, 0, 0, 0, 0, 0, 0,
175 0, 0, 0, 0, 0, 0, 0, 0,
176 0, 0, 0, 0, 0, 0, 0, 0,
177 0, 0, 0, 0, 0, 0, 0, 0,
178 0, 0, 0, 0, 0, 0, 0, 0,
179 0, 0, 0, 0, 0, 0, 0, 0,
180 0, 0, 0, 0, 0, 0, 0, 0,
181 0, 0, 0, 0, 0, 0, 0, 0,
182 0, 0, 0, 0, 0, 0, 0, 0,
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 61, 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 62, 0, 0, 0, 0, 0, 0, 63,
196 0, 64, 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 65, 66, 0, 0, 0, 0, 0, 0,
202 0, 0, 0, 0, 0, 0, 0, 0,
203 0, 0, 0, 0, 0, 0, 0, 0,
204 0, 0, 0, 0, 0, 0, 0, 0,
205 0, 0, 0, 0, 0, 0, 0, 0,
206 0, 0, 0, 0, 0, 0, 0, 0,
207 0, 0, 0, 0, 0, 0, 0, 0,
208 0, 0, 0, 0, 0, 0, 0, 0,
209 0, 0, 0, 0, 0, 0, 0, 0,
210 0, 0, 0, 0, 0, 0, 0, 0,
211 0, 0, 0, 0, 0, 0, 0, 0,
212 0, 0, 0, 0, 0, 0, 0, 0,
213 0, 0, 0, 0, 0, 0, 0, 0,
214 0, 0, 0, 0, 0, 0, 0, 0,
215 0, 0, 0, 0, 0, 0, 0, 0,
216 0, 0, 0, 0, 0, 0, 0, 0,
217 67, 68, 69, 70, 71, 72, 73, 74,
218 75, 76, 77, 78, 79, 67, 68, 69,
219 70, 80, 81, 73, 74, 82, 83, 84,
220 85, 86, 87, 88, 89, 90, 0, 0,
221 0, 0, 0, 0, 0, 0, 0, 0,
222 0, 0, 0, 0, 0, 0, 0, 0,
223 0, 0, 0, 0, 0, 0, 0, 0,
224 0, 0, 0, 0, 0, 0, 0, 0,
225 0, 0, 0, 0, 0, 0, 0, 0,
226 0, 0, 0, 0, 0, 0, 0, 0,
227 0, 0, 0, 0, 0, 0, 0, 0,
228 0, 0, 0, 0, 0, 0, 0, 0,
231 static const struct {
232 unsigned short tbl[32];
233 } nameprep_id11_map_table[] = {
235 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
236 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
237 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
240 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20,
241 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42,
242 44, 46, 48, 50, 52, 0, 0, 0, 0, 0,
245 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
246 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 54,
247 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
250 57, 59, 61, 63, 65, 67, 69, 71, 73, 75, 77,
251 79, 81, 83, 85, 87, 89, 91, 93, 95, 97, 99,
252 101, 0, 103, 105, 107, 109, 111, 113, 115, 117,
255 123, 0, 126, 0, 129, 0, 132, 0, 135, 0, 138,
256 0, 141, 0, 144, 0, 147, 0, 150, 0, 153, 0,
257 156, 0, 159, 0, 162, 0, 165, 0, 168, 0,
260 171, 0, 174, 0, 177, 0, 180, 0, 183, 0, 186,
261 0, 189, 0, 192, 0, 195, 0, 202, 0, 205, 0,
262 208, 0, 0, 211, 0, 214, 0, 217, 0, 220,
265 0, 223, 0, 226, 0, 229, 0, 232, 0, 235, 241,
266 0, 244, 0, 247, 0, 250, 0, 253, 0, 256, 0,
267 259, 0, 262, 0, 265, 0, 268, 0, 271, 0,
270 274, 0, 277, 0, 280, 0, 283, 0, 286, 0, 289,
271 0, 292, 0, 295, 0, 298, 0, 301, 0, 304, 0,
272 307, 0, 310, 312, 0, 315, 0, 318, 0, 38,
275 0, 321, 324, 0, 327, 0, 330, 333, 0, 336, 339,
276 342, 0, 0, 345, 348, 351, 354, 0, 357, 360, 0,
277 363, 366, 369, 0, 0, 0, 372, 375, 0, 378,
280 381, 0, 384, 0, 387, 0, 390, 393, 0, 396, 0,
281 0, 399, 0, 402, 405, 0, 408, 411, 414, 0, 417,
282 0, 420, 423, 0, 0, 0, 426, 0, 0, 0,
285 0, 0, 0, 0, 429, 429, 0, 432, 432, 0, 435,
286 435, 0, 438, 0, 441, 0, 444, 0, 447, 0, 450,
287 0, 453, 0, 456, 0, 459, 0, 0, 462, 0,
290 465, 0, 468, 0, 471, 0, 474, 0, 477, 0, 480,
291 0, 483, 0, 486, 0, 489, 496, 496, 0, 499, 0,
292 502, 505, 508, 0, 511, 0, 514, 0, 517, 0,
295 520, 0, 523, 0, 526, 0, 529, 0, 532, 0, 535,
296 0, 538, 0, 541, 0, 544, 0, 547, 0, 550, 0,
297 553, 0, 556, 0, 559, 0, 562, 0, 565, 0,
300 568, 0, 571, 0, 574, 0, 577, 0, 580, 0, 583,
301 0, 586, 0, 589, 0, 592, 0, 595, 0, 0, 0,
302 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
305 0, 0, 0, 0, 0, 598, 0, 0, 0, 0, 0,
306 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
307 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
310 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
311 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
312 0, 0, 0, 0, 601, 0, 0, 0, 0, 0,
315 0, 0, 0, 0, 0, 0, 608, 0, 611, 614, 617,
316 0, 620, 0, 623, 626, 629, 640, 643, 646, 649, 652,
317 655, 658, 661, 598, 664, 667, 54, 670, 673, 676,
320 679, 682, 0, 685, 688, 691, 694, 697, 700, 703, 706,
321 709, 0, 0, 0, 0, 712, 0, 0, 0, 0, 0,
322 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
325 0, 0, 685, 0, 0, 0, 0, 0, 0, 0, 0,
326 0, 0, 0, 0, 0, 643, 661, 691, 623, 709, 694,
327 679, 0, 723, 0, 726, 0, 729, 0, 732, 0,
330 735, 0, 738, 0, 741, 0, 744, 0, 747, 0, 750,
331 0, 753, 0, 756, 0, 664, 682, 685, 0, 661, 652,
332 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
335 759, 762, 765, 768, 771, 774, 777, 780, 783, 786, 789,
336 792, 795, 798, 801, 804, 807, 810, 813, 816, 819, 822,
337 825, 828, 831, 834, 837, 840, 843, 846, 849, 852,
340 855, 858, 861, 864, 867, 870, 873, 876, 879, 882, 885,
341 888, 891, 894, 897, 900, 0, 0, 0, 0, 0, 0,
342 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
345 903, 0, 906, 0, 909, 0, 912, 0, 915, 0, 918,
346 0, 921, 0, 924, 0, 927, 0, 930, 0, 933, 0,
347 936, 0, 939, 0, 942, 0, 945, 0, 948, 0,
350 951, 0, 0, 0, 0, 0, 0, 0, 0, 0, 954,
351 0, 957, 0, 960, 0, 963, 0, 966, 0, 969, 0,
352 972, 0, 975, 0, 978, 0, 981, 0, 984, 0,
355 987, 0, 990, 0, 993, 0, 996, 0, 999, 0, 1002,
356 0, 1005, 0, 1008, 0, 1011, 0, 1014, 0, 1017, 0,
357 1020, 0, 1023, 0, 1026, 0, 1029, 0, 1032, 0,
360 0, 1035, 0, 1038, 0, 1041, 0, 1044, 0, 1047, 0,
361 1050, 0, 1053, 0, 0, 1056, 0, 1059, 0, 1062, 0,
362 1065, 0, 1068, 0, 1071, 0, 1074, 0, 1077, 0,
365 1080, 0, 1083, 0, 1086, 0, 1089, 0, 1092, 0, 1095,
366 0, 1098, 0, 1101, 0, 1104, 0, 1107, 0, 1110, 0,
367 0, 0, 1113, 0, 0, 0, 0, 0, 0, 0,
370 1116, 0, 1119, 0, 1122, 0, 1125, 0, 1128, 0, 1131,
371 0, 1134, 0, 1137, 0, 0, 0, 0, 0, 0, 0,
372 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
375 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
376 0, 0, 0, 0, 0, 0, 1140, 1143, 1146, 1149, 1152,
377 1155, 1158, 1161, 1164, 1167, 1170, 1173, 1176, 1179, 1182,
380 1185, 1188, 1191, 1194, 1197, 1200, 1203, 1206, 1209, 1212, 1215,
381 1218, 1221, 1224, 1227, 1230, 1233, 1236, 1239, 1242, 1245, 1248,
382 1251, 0, 0, 0, 0, 0, 0, 0, 0, 0,
385 0, 0, 0, 0, 0, 0, 0, 1254, 0, 0, 0,
386 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
387 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
390 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
391 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
392 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
395 1261, 0, 1264, 0, 1267, 0, 1270, 0, 1273, 0, 1276,
396 0, 1279, 0, 1282, 0, 1285, 0, 1288, 0, 1291, 0,
397 1294, 0, 1297, 0, 1300, 0, 1303, 0, 1306, 0,
400 1309, 0, 1312, 0, 1315, 0, 1318, 0, 1321, 0, 1324,
401 0, 1327, 0, 1330, 0, 1333, 0, 1336, 0, 1339, 0,
402 1342, 0, 1345, 0, 1348, 0, 1351, 0, 1354, 0,
405 1357, 0, 1360, 0, 1363, 0, 1366, 0, 1369, 0, 1372,
406 0, 1375, 0, 1378, 0, 1381, 0, 1384, 0, 1387, 0,
407 1390, 0, 1393, 0, 1396, 0, 1399, 0, 1402, 0,
410 1405, 0, 1408, 0, 1411, 0, 1414, 0, 1417, 0, 1420,
411 0, 1423, 0, 1426, 0, 1429, 0, 1432, 0, 1435, 0,
412 1438, 0, 1441, 0, 1444, 0, 1447, 0, 1450, 0,
415 1453, 0, 1456, 0, 1459, 0, 1462, 0, 1465, 0, 1468,
416 0, 1471, 0, 1474, 0, 1477, 0, 1480, 0, 1483, 0,
417 1486, 1493, 1500, 1507, 1514, 1405, 0, 0, 0, 0,
420 1521, 0, 1524, 0, 1527, 0, 1530, 0, 1533, 0, 1536,
421 0, 1539, 0, 1542, 0, 1545, 0, 1548, 0, 1551, 0,
422 1554, 0, 1557, 0, 1560, 0, 1563, 0, 1566, 0,
425 1569, 0, 1572, 0, 1575, 0, 1578, 0, 1581, 0, 1584,
426 0, 1587, 0, 1590, 0, 1593, 0, 1596, 0, 1599, 0,
427 1602, 0, 1605, 0, 1608, 0, 1611, 0, 1614, 0,
430 1617, 0, 1620, 0, 1623, 0, 1626, 0, 1629, 0, 1632,
431 0, 1635, 0, 1638, 0, 1641, 0, 1644, 0, 1647, 0,
432 1650, 0, 1653, 0, 0, 0, 0, 0, 0, 0,
435 0, 0, 0, 0, 0, 0, 0, 0, 1656, 1659, 1662,
436 1665, 1668, 1671, 1674, 1677, 0, 0, 0, 0, 0, 0,
437 0, 0, 1680, 1683, 1686, 1689, 1692, 1695, 0, 0,
440 0, 0, 0, 0, 0, 0, 0, 0, 1698, 1701, 1704,
441 1707, 1710, 1713, 1716, 1719, 0, 0, 0, 0, 0, 0,
442 0, 0, 1722, 1725, 1728, 1731, 1734, 1737, 1740, 1743,
445 0, 0, 0, 0, 0, 0, 0, 0, 1746, 1749, 1752,
446 1755, 1758, 1761, 0, 0, 1764, 0, 1771, 0, 1782, 0,
447 1793, 0, 0, 1804, 0, 1807, 0, 1810, 0, 1813,
450 0, 0, 0, 0, 0, 0, 0, 0, 1816, 1819, 1822,
451 1825, 1828, 1831, 1834, 1837, 0, 0, 0, 0, 0, 0,
452 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
455 1840, 1847, 1854, 1861, 1868, 1875, 1882, 1889, 1840, 1847, 1854,
456 1861, 1868, 1875, 1882, 1889, 1896, 1903, 1910, 1917, 1924, 1931,
457 1938, 1945, 1896, 1903, 1910, 1917, 1924, 1931, 1938, 1945,
460 1952, 1959, 1966, 1973, 1980, 1987, 1994, 2001, 1952, 1959, 1966,
461 1973, 1980, 1987, 1994, 2001, 0, 0, 2008, 2015, 2022, 0,
462 2029, 2036, 2047, 2050, 2053, 2056, 2015, 0, 598, 0,
465 0, 0, 2059, 2066, 2073, 0, 2080, 2087, 2098, 2101, 2104,
466 2107, 2066, 0, 0, 0, 0, 0, 2110, 629, 0, 0,
467 2121, 2128, 2139, 2142, 2145, 2148, 0, 0, 0, 0,
470 0, 0, 2151, 712, 2162, 0, 2169, 2176, 2187, 2190, 2193,
471 2196, 2199, 0, 0, 0, 0, 0, 2202, 2209, 2216, 0,
472 2223, 2230, 2241, 2244, 2247, 2250, 2209, 0, 0, 0,
475 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
476 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
477 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
480 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
481 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
482 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
485 0, 0, 0, 0, 0, 0, 0, 0, 2253, 0, 0,
486 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
487 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
490 0, 0, 6, 2259, 0, 0, 0, 351, 0, 2265, 0,
491 16, 16, 16, 0, 0, 18, 18, 24, 0, 0, 28,
492 2271, 0, 0, 32, 34, 36, 36, 36, 0, 0,
495 2277, 2283, 2293, 0, 52, 0, 703, 0, 52, 0, 22,
496 67, 4, 6, 0, 0, 10, 12, 0, 26, 0, 0,
497 0, 0, 0, 0, 0, 0, 0, 0, 646, 679,
500 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0,
501 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
502 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
505 2299, 2302, 2305, 2308, 2311, 2314, 2317, 2320, 2323, 2326, 2329,
506 2332, 2335, 2338, 2341, 2344, 0, 0, 0, 0, 0, 0,
507 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
510 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
511 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
512 2347, 2350, 2353, 2356, 2359, 2362, 2365, 2368, 2371, 2374,
515 2377, 2380, 2383, 2386, 2389, 2392, 2395, 2398, 2401, 2404, 2407,
516 2410, 2413, 2416, 2419, 2422, 0, 0, 0, 0, 0, 0,
517 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
520 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
521 0, 0, 0, 0, 0, 0, 2425, 0, 2435, 0, 2441,
522 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
525 2447, 2453, 2459, 2465, 2471, 2477, 2483, 2489, 0, 0, 2495,
526 2501, 2507, 0, 0, 0, 2513, 2519, 2529, 2539, 2549, 0,
527 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
530 0, 0, 0, 0, 0, 0, 0, 0, 0, 2447, 2559,
531 2569, 2579, 0, 0, 0, 0, 0, 0, 0, 2589, 2595,
532 2601, 2607, 2613, 2607, 2619, 2625, 2631, 2637, 2643, 2637,
535 2649, 2656, 0, 2663, 0, 0, 2669, 2683, 2693, 2699, 0,
536 2705, 0, 2711, 2717, 0, 0, 0, 0, 0, 0, 0,
537 0, 2723, 0, 2729, 2739, 0, 2745, 2751, 0, 0,
540 2757, 2763, 2769, 2775, 2785, 2795, 2795, 0, 0, 0, 0,
541 0, 0, 0, 0, 0, 0, 0, 0, 2801, 2808, 2815,
542 2822, 2829, 0, 0, 0, 0, 0, 0, 0, 0,
545 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
546 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0,
547 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
550 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
551 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
552 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
555 0, 2836, 2839, 2842, 2845, 2848, 2851, 2854, 2857, 2860, 2863,
556 2866, 2869, 2872, 2875, 2878, 2881, 2884, 2887, 2890, 2893, 2896,
557 2899, 2902, 2905, 2908, 2911, 0, 0, 0, 0, 0,
560 2914, 2918, 2922, 2926, 2930, 2934, 2938, 2942, 2946, 2950, 2954,
561 2958, 2962, 2966, 2970, 2974, 2978, 2982, 2986, 2990, 2994, 2998,
562 3002, 3006, 3010, 3014, 3018, 3022, 3026, 3030, 3034, 3038,
565 3042, 3046, 3050, 3054, 3058, 3062, 0, 0, 0, 0, 0,
566 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
567 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
570 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22,
571 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44,
572 46, 48, 50, 52, 0, 0, 0, 0, 0, 0,
575 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
576 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 4,
577 6, 8, 10, 12, 14, 16, 18, 20, 22, 24,
580 26, 28, 30, 32, 34, 36, 38, 40, 42, 44, 46,
581 48, 50, 52, 0, 0, 0, 0, 0, 0, 0, 0,
582 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
585 0, 0, 0, 0, 0, 0, 0, 0, 2, 4, 6,
586 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28,
587 30, 32, 34, 36, 38, 40, 42, 44, 46, 48,
590 50, 52, 0, 0, 0, 0, 0, 0, 0, 0, 0,
591 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
592 0, 0, 0, 0, 0, 0, 2, 0, 6, 8,
595 0, 0, 14, 0, 0, 20, 22, 0, 0, 28, 30,
596 32, 34, 0, 38, 40, 42, 44, 46, 48, 50, 52,
597 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
600 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
601 0, 0, 0, 0, 0, 2, 4, 6, 8, 10, 12,
602 14, 16, 18, 20, 22, 24, 26, 28, 30, 32,
605 34, 36, 38, 40, 42, 44, 46, 48, 50, 52, 0,
606 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
607 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
610 0, 0, 0, 0, 2, 4, 0, 8, 10, 12, 14,
611 0, 0, 20, 22, 24, 26, 28, 30, 32, 34, 0,
612 38, 40, 42, 44, 46, 48, 50, 0, 0, 0,
615 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
616 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
617 0, 0, 2, 4, 0, 8, 10, 12, 14, 0,
620 18, 20, 22, 24, 26, 0, 30, 0, 0, 0, 38,
621 40, 42, 44, 46, 48, 50, 0, 0, 0, 0, 0,
622 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
625 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
626 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20,
627 22, 24, 26, 28, 30, 32, 34, 36, 38, 40,
630 42, 44, 46, 48, 50, 52, 0, 0, 0, 0, 0,
631 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
632 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
635 50, 52, 0, 0, 0, 0, 0, 0, 0, 0, 0,
636 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
637 0, 0, 0, 0, 0, 0, 2, 4, 6, 8,
640 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30,
641 32, 34, 36, 38, 40, 42, 44, 46, 48, 50, 52,
642 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
645 0, 0, 0, 0, 0, 0, 0, 0, 640, 643, 646,
646 649, 652, 655, 658, 661, 598, 664, 667, 54, 670, 673,
647 676, 679, 682, 661, 685, 688, 691, 694, 697, 700,
650 703, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
651 0, 0, 0, 0, 0, 0, 0, 0, 685, 0, 0,
652 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
655 0, 0, 640, 643, 646, 649, 652, 655, 658, 661, 598,
656 664, 667, 54, 670, 673, 676, 679, 682, 661, 685, 688,
657 691, 694, 697, 700, 703, 0, 0, 0, 0, 0,
660 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
661 0, 0, 685, 0, 0, 0, 0, 0, 0, 0, 0,
662 0, 0, 0, 0, 0, 0, 640, 643, 646, 649,
665 652, 655, 658, 661, 598, 664, 667, 54, 670, 673, 676,
666 679, 682, 661, 685, 688, 691, 694, 697, 700, 703, 0,
667 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
670 0, 0, 0, 0, 0, 0, 0, 685, 0, 0, 0,
671 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
672 640, 643, 646, 649, 652, 655, 658, 661, 598, 664,
675 667, 54, 670, 673, 676, 679, 682, 661, 685, 688, 691,
676 694, 697, 700, 703, 0, 0, 0, 0, 0, 0, 0,
677 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
680 0, 685, 0, 0, 0, 0, 0, 0, 0, 0, 0,
681 0, 0, 0, 0, 0, 640, 643, 646, 649, 652, 655,
682 658, 661, 598, 664, 667, 54, 670, 673, 676, 679,
685 682, 661, 685, 688, 691, 694, 697, 700, 703, 0, 0,
686 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
687 0, 0, 0, 0, 0, 685, 0, 0, 0, 0,
691 static const unsigned char nameprep_id11_map_data[] = {
692 0, 0, 1, 97, 1, 98, 1, 99, 1, 100, 1, 101,
693 1, 102, 1, 103, 1, 104, 1, 105, 1, 106, 1, 107,
694 1, 108, 1, 109, 1, 110, 1, 111, 1, 112, 1, 113,
695 1, 114, 1, 115, 1, 116, 1, 117, 1, 118, 1, 119,
696 1, 120, 1, 121, 1, 122, 2, 188, 3, 1, 224, 1,
697 225, 1, 226, 1, 227, 1, 228, 1, 229, 1, 230, 1,
698 231, 1, 232, 1, 233, 1, 234, 1, 235, 1, 236, 1,
699 237, 1, 238, 1, 239, 1, 240, 1, 241, 1, 242, 1,
700 243, 1, 244, 1, 245, 1, 246, 1, 248, 1, 249, 1,
701 250, 1, 251, 1, 252, 1, 253, 1, 254, 5, 115, 0,
702 0, 0, 115, 2, 1, 1, 2, 3, 1, 2, 5, 1,
703 2, 7, 1, 2, 9, 1, 2, 11, 1, 2, 13, 1,
704 2, 15, 1, 2, 17, 1, 2, 19, 1, 2, 21, 1,
705 2, 23, 1, 2, 25, 1, 2, 27, 1, 2, 29, 1,
706 2, 31, 1, 2, 33, 1, 2, 35, 1, 2, 37, 1,
707 2, 39, 1, 2, 41, 1, 2, 43, 1, 2, 45, 1,
708 2, 47, 1, 6, 105, 0, 0, 0, 7, 3, 2, 51,
709 1, 2, 53, 1, 2, 55, 1, 2, 58, 1, 2, 60,
710 1, 2, 62, 1, 2, 64, 1, 2, 66, 1, 2, 68,
711 1, 2, 70, 1, 2, 72, 1, 5, 188, 2, 0, 0,
712 110, 2, 75, 1, 2, 77, 1, 2, 79, 1, 2, 81,
713 1, 2, 83, 1, 2, 85, 1, 2, 87, 1, 2, 89,
714 1, 2, 91, 1, 2, 93, 1, 2, 95, 1, 2, 97,
715 1, 2, 99, 1, 2, 101, 1, 2, 103, 1, 2, 105,
716 1, 2, 107, 1, 2, 109, 1, 2, 111, 1, 2, 113,
717 1, 2, 115, 1, 2, 117, 1, 2, 119, 1, 1, 255,
718 2, 122, 1, 2, 124, 1, 2, 126, 1, 2, 83, 2,
719 2, 131, 1, 2, 133, 1, 2, 84, 2, 2, 136, 1,
720 2, 86, 2, 2, 87, 2, 2, 140, 1, 2, 221, 1,
721 2, 89, 2, 2, 91, 2, 2, 146, 1, 2, 96, 2,
722 2, 99, 2, 2, 105, 2, 2, 104, 2, 2, 153, 1,
723 2, 111, 2, 2, 114, 2, 2, 117, 2, 2, 161, 1,
724 2, 163, 1, 2, 165, 1, 2, 128, 2, 2, 168, 1,
725 2, 131, 2, 2, 173, 1, 2, 136, 2, 2, 176, 1,
726 2, 138, 2, 2, 139, 2, 2, 180, 1, 2, 182, 1,
727 2, 146, 2, 2, 185, 1, 2, 189, 1, 2, 198, 1,
728 2, 201, 1, 2, 204, 1, 2, 206, 1, 2, 208, 1,
729 2, 210, 1, 2, 212, 1, 2, 214, 1, 2, 216, 1,
730 2, 218, 1, 2, 220, 1, 2, 223, 1, 2, 225, 1,
731 2, 227, 1, 2, 229, 1, 2, 231, 1, 2, 233, 1,
732 2, 235, 1, 2, 237, 1, 2, 239, 1, 6, 106, 0,
733 0, 0, 12, 3, 2, 243, 1, 2, 245, 1, 2, 149,
734 1, 2, 191, 1, 2, 249, 1, 2, 251, 1, 2, 253,
735 1, 2, 255, 1, 2, 1, 2, 2, 3, 2, 2, 5,
736 2, 2, 7, 2, 2, 9, 2, 2, 11, 2, 2, 13,
737 2, 2, 15, 2, 2, 17, 2, 2, 19, 2, 2, 21,
738 2, 2, 23, 2, 2, 25, 2, 2, 27, 2, 2, 29,
739 2, 2, 31, 2, 2, 158, 1, 2, 35, 2, 2, 37,
740 2, 2, 39, 2, 2, 41, 2, 2, 43, 2, 2, 45,
741 2, 2, 47, 2, 2, 49, 2, 2, 51, 2, 2, 185,
742 3, 6, 32, 0, 0, 0, 185, 3, 2, 172, 3, 2,
743 173, 3, 2, 174, 3, 2, 175, 3, 2, 204, 3, 2,
744 205, 3, 2, 206, 3, 10, 185, 3, 0, 0, 8, 3,
745 0, 0, 1, 3, 2, 177, 3, 2, 178, 3, 2, 179,
746 3, 2, 180, 3, 2, 181, 3, 2, 182, 3, 2, 183,
747 3, 2, 184, 3, 2, 186, 3, 2, 187, 3, 2, 189,
748 3, 2, 190, 3, 2, 191, 3, 2, 192, 3, 2, 193,
749 3, 2, 195, 3, 2, 196, 3, 2, 197, 3, 2, 198,
750 3, 2, 199, 3, 2, 200, 3, 2, 201, 3, 2, 202,
751 3, 2, 203, 3, 10, 197, 3, 0, 0, 8, 3, 0,
752 0, 1, 3, 2, 217, 3, 2, 219, 3, 2, 221, 3,
753 2, 223, 3, 2, 225, 3, 2, 227, 3, 2, 229, 3,
754 2, 231, 3, 2, 233, 3, 2, 235, 3, 2, 237, 3,
755 2, 239, 3, 2, 80, 4, 2, 81, 4, 2, 82, 4,
756 2, 83, 4, 2, 84, 4, 2, 85, 4, 2, 86, 4,
757 2, 87, 4, 2, 88, 4, 2, 89, 4, 2, 90, 4,
758 2, 91, 4, 2, 92, 4, 2, 93, 4, 2, 94, 4,
759 2, 95, 4, 2, 48, 4, 2, 49, 4, 2, 50, 4,
760 2, 51, 4, 2, 52, 4, 2, 53, 4, 2, 54, 4,
761 2, 55, 4, 2, 56, 4, 2, 57, 4, 2, 58, 4,
762 2, 59, 4, 2, 60, 4, 2, 61, 4, 2, 62, 4,
763 2, 63, 4, 2, 64, 4, 2, 65, 4, 2, 66, 4,
764 2, 67, 4, 2, 68, 4, 2, 69, 4, 2, 70, 4,
765 2, 71, 4, 2, 72, 4, 2, 73, 4, 2, 74, 4,
766 2, 75, 4, 2, 76, 4, 2, 77, 4, 2, 78, 4,
767 2, 79, 4, 2, 97, 4, 2, 99, 4, 2, 101, 4,
768 2, 103, 4, 2, 105, 4, 2, 107, 4, 2, 109, 4,
769 2, 111, 4, 2, 113, 4, 2, 115, 4, 2, 117, 4,
770 2, 119, 4, 2, 121, 4, 2, 123, 4, 2, 125, 4,
771 2, 127, 4, 2, 129, 4, 2, 139, 4, 2, 141, 4,
772 2, 143, 4, 2, 145, 4, 2, 147, 4, 2, 149, 4,
773 2, 151, 4, 2, 153, 4, 2, 155, 4, 2, 157, 4,
774 2, 159, 4, 2, 161, 4, 2, 163, 4, 2, 165, 4,
775 2, 167, 4, 2, 169, 4, 2, 171, 4, 2, 173, 4,
776 2, 175, 4, 2, 177, 4, 2, 179, 4, 2, 181, 4,
777 2, 183, 4, 2, 185, 4, 2, 187, 4, 2, 189, 4,
778 2, 191, 4, 2, 194, 4, 2, 196, 4, 2, 198, 4,
779 2, 200, 4, 2, 202, 4, 2, 204, 4, 2, 206, 4,
780 2, 209, 4, 2, 211, 4, 2, 213, 4, 2, 215, 4,
781 2, 217, 4, 2, 219, 4, 2, 221, 4, 2, 223, 4,
782 2, 225, 4, 2, 227, 4, 2, 229, 4, 2, 231, 4,
783 2, 233, 4, 2, 235, 4, 2, 237, 4, 2, 239, 4,
784 2, 241, 4, 2, 243, 4, 2, 245, 4, 2, 249, 4,
785 2, 1, 5, 2, 3, 5, 2, 5, 5, 2, 7, 5,
786 2, 9, 5, 2, 11, 5, 2, 13, 5, 2, 15, 5,
787 2, 97, 5, 2, 98, 5, 2, 99, 5, 2, 100, 5,
788 2, 101, 5, 2, 102, 5, 2, 103, 5, 2, 104, 5,
789 2, 105, 5, 2, 106, 5, 2, 107, 5, 2, 108, 5,
790 2, 109, 5, 2, 110, 5, 2, 111, 5, 2, 112, 5,
791 2, 113, 5, 2, 114, 5, 2, 115, 5, 2, 116, 5,
792 2, 117, 5, 2, 118, 5, 2, 119, 5, 2, 120, 5,
793 2, 121, 5, 2, 122, 5, 2, 123, 5, 2, 124, 5,
794 2, 125, 5, 2, 126, 5, 2, 127, 5, 2, 128, 5,
795 2, 129, 5, 2, 130, 5, 2, 131, 5, 2, 132, 5,
796 2, 133, 5, 2, 134, 5, 6, 101, 5, 0, 0, 130,
797 5, 2, 1, 30, 2, 3, 30, 2, 5, 30, 2, 7,
798 30, 2, 9, 30, 2, 11, 30, 2, 13, 30, 2, 15,
799 30, 2, 17, 30, 2, 19, 30, 2, 21, 30, 2, 23,
800 30, 2, 25, 30, 2, 27, 30, 2, 29, 30, 2, 31,
801 30, 2, 33, 30, 2, 35, 30, 2, 37, 30, 2, 39,
802 30, 2, 41, 30, 2, 43, 30, 2, 45, 30, 2, 47,
803 30, 2, 49, 30, 2, 51, 30, 2, 53, 30, 2, 55,
804 30, 2, 57, 30, 2, 59, 30, 2, 61, 30, 2, 63,
805 30, 2, 65, 30, 2, 67, 30, 2, 69, 30, 2, 71,
806 30, 2, 73, 30, 2, 75, 30, 2, 77, 30, 2, 79,
807 30, 2, 81, 30, 2, 83, 30, 2, 85, 30, 2, 87,
808 30, 2, 89, 30, 2, 91, 30, 2, 93, 30, 2, 95,
809 30, 2, 97, 30, 2, 99, 30, 2, 101, 30, 2, 103,
810 30, 2, 105, 30, 2, 107, 30, 2, 109, 30, 2, 111,
811 30, 2, 113, 30, 2, 115, 30, 2, 117, 30, 2, 119,
812 30, 2, 121, 30, 2, 123, 30, 2, 125, 30, 2, 127,
813 30, 2, 129, 30, 2, 131, 30, 2, 133, 30, 2, 135,
814 30, 2, 137, 30, 2, 139, 30, 2, 141, 30, 2, 143,
815 30, 2, 145, 30, 2, 147, 30, 2, 149, 30, 6, 104,
816 0, 0, 0, 49, 3, 6, 116, 0, 0, 0, 8, 3,
817 6, 119, 0, 0, 0, 10, 3, 6, 121, 0, 0, 0,
818 10, 3, 6, 97, 0, 0, 0, 190, 2, 2, 161, 30,
819 2, 163, 30, 2, 165, 30, 2, 167, 30, 2, 169, 30,
820 2, 171, 30, 2, 173, 30, 2, 175, 30, 2, 177, 30,
821 2, 179, 30, 2, 181, 30, 2, 183, 30, 2, 185, 30,
822 2, 187, 30, 2, 189, 30, 2, 191, 30, 2, 193, 30,
823 2, 195, 30, 2, 197, 30, 2, 199, 30, 2, 201, 30,
824 2, 203, 30, 2, 205, 30, 2, 207, 30, 2, 209, 30,
825 2, 211, 30, 2, 213, 30, 2, 215, 30, 2, 217, 30,
826 2, 219, 30, 2, 221, 30, 2, 223, 30, 2, 225, 30,
827 2, 227, 30, 2, 229, 30, 2, 231, 30, 2, 233, 30,
828 2, 235, 30, 2, 237, 30, 2, 239, 30, 2, 241, 30,
829 2, 243, 30, 2, 245, 30, 2, 247, 30, 2, 249, 30,
830 2, 0, 31, 2, 1, 31, 2, 2, 31, 2, 3, 31,
831 2, 4, 31, 2, 5, 31, 2, 6, 31, 2, 7, 31,
832 2, 16, 31, 2, 17, 31, 2, 18, 31, 2, 19, 31,
833 2, 20, 31, 2, 21, 31, 2, 32, 31, 2, 33, 31,
834 2, 34, 31, 2, 35, 31, 2, 36, 31, 2, 37, 31,
835 2, 38, 31, 2, 39, 31, 2, 48, 31, 2, 49, 31,
836 2, 50, 31, 2, 51, 31, 2, 52, 31, 2, 53, 31,
837 2, 54, 31, 2, 55, 31, 2, 64, 31, 2, 65, 31,
838 2, 66, 31, 2, 67, 31, 2, 68, 31, 2, 69, 31,
839 6, 197, 3, 0, 0, 19, 3, 10, 197, 3, 0, 0,
840 19, 3, 0, 0, 0, 3, 10, 197, 3, 0, 0, 19,
841 3, 0, 0, 1, 3, 10, 197, 3, 0, 0, 19, 3,
842 0, 0, 66, 3, 2, 81, 31, 2, 83, 31, 2, 85,
843 31, 2, 87, 31, 2, 96, 31, 2, 97, 31, 2, 98,
844 31, 2, 99, 31, 2, 100, 31, 2, 101, 31, 2, 102,
845 31, 2, 103, 31, 6, 0, 31, 0, 0, 185, 3, 6,
846 1, 31, 0, 0, 185, 3, 6, 2, 31, 0, 0, 185,
847 3, 6, 3, 31, 0, 0, 185, 3, 6, 4, 31, 0,
848 0, 185, 3, 6, 5, 31, 0, 0, 185, 3, 6, 6,
849 31, 0, 0, 185, 3, 6, 7, 31, 0, 0, 185, 3,
850 6, 32, 31, 0, 0, 185, 3, 6, 33, 31, 0, 0,
851 185, 3, 6, 34, 31, 0, 0, 185, 3, 6, 35, 31,
852 0, 0, 185, 3, 6, 36, 31, 0, 0, 185, 3, 6,
853 37, 31, 0, 0, 185, 3, 6, 38, 31, 0, 0, 185,
854 3, 6, 39, 31, 0, 0, 185, 3, 6, 96, 31, 0,
855 0, 185, 3, 6, 97, 31, 0, 0, 185, 3, 6, 98,
856 31, 0, 0, 185, 3, 6, 99, 31, 0, 0, 185, 3,
857 6, 100, 31, 0, 0, 185, 3, 6, 101, 31, 0, 0,
858 185, 3, 6, 102, 31, 0, 0, 185, 3, 6, 103, 31,
859 0, 0, 185, 3, 6, 112, 31, 0, 0, 185, 3, 6,
860 177, 3, 0, 0, 185, 3, 6, 172, 3, 0, 0, 185,
861 3, 6, 177, 3, 0, 0, 66, 3, 10, 177, 3, 0,
862 0, 66, 3, 0, 0, 185, 3, 2, 176, 31, 2, 177,
863 31, 2, 112, 31, 2, 113, 31, 6, 116, 31, 0, 0,
864 185, 3, 6, 183, 3, 0, 0, 185, 3, 6, 174, 3,
865 0, 0, 185, 3, 6, 183, 3, 0, 0, 66, 3, 10,
866 183, 3, 0, 0, 66, 3, 0, 0, 185, 3, 2, 114,
867 31, 2, 115, 31, 2, 116, 31, 2, 117, 31, 10, 185,
868 3, 0, 0, 8, 3, 0, 0, 0, 3, 6, 185, 3,
869 0, 0, 66, 3, 10, 185, 3, 0, 0, 8, 3, 0,
870 0, 66, 3, 2, 208, 31, 2, 209, 31, 2, 118, 31,
871 2, 119, 31, 10, 197, 3, 0, 0, 8, 3, 0, 0,
872 0, 3, 6, 193, 3, 0, 0, 19, 3, 6, 197, 3,
873 0, 0, 66, 3, 10, 197, 3, 0, 0, 8, 3, 0,
874 0, 66, 3, 2, 224, 31, 2, 225, 31, 2, 122, 31,
875 2, 123, 31, 2, 229, 31, 6, 124, 31, 0, 0, 185,
876 3, 6, 201, 3, 0, 0, 185, 3, 6, 206, 3, 0,
877 0, 185, 3, 6, 201, 3, 0, 0, 66, 3, 10, 201,
878 3, 0, 0, 66, 3, 0, 0, 185, 3, 2, 120, 31,
879 2, 121, 31, 2, 124, 31, 2, 125, 31, 5, 114, 0,
880 0, 0, 115, 5, 176, 0, 0, 0, 99, 5, 176, 0,
881 0, 0, 102, 5, 110, 0, 0, 0, 111, 5, 115, 0,
882 0, 0, 109, 9, 116, 0, 0, 0, 101, 0, 0, 0,
883 108, 5, 116, 0, 0, 0, 109, 2, 112, 33, 2, 113,
884 33, 2, 114, 33, 2, 115, 33, 2, 116, 33, 2, 117,
885 33, 2, 118, 33, 2, 119, 33, 2, 120, 33, 2, 121,
886 33, 2, 122, 33, 2, 123, 33, 2, 124, 33, 2, 125,
887 33, 2, 126, 33, 2, 127, 33, 2, 208, 36, 2, 209,
888 36, 2, 210, 36, 2, 211, 36, 2, 212, 36, 2, 213,
889 36, 2, 214, 36, 2, 215, 36, 2, 216, 36, 2, 217,
890 36, 2, 218, 36, 2, 219, 36, 2, 220, 36, 2, 221,
891 36, 2, 222, 36, 2, 223, 36, 2, 224, 36, 2, 225,
892 36, 2, 226, 36, 2, 227, 36, 2, 228, 36, 2, 229,
893 36, 2, 230, 36, 2, 231, 36, 2, 232, 36, 2, 233,
894 36, 9, 104, 0, 0, 0, 112, 0, 0, 0, 97, 5,
895 97, 0, 0, 0, 117, 5, 111, 0, 0, 0, 118, 5,
896 112, 0, 0, 0, 97, 5, 110, 0, 0, 0, 97, 5,
897 188, 3, 0, 0, 97, 5, 109, 0, 0, 0, 97, 5,
898 107, 0, 0, 0, 97, 5, 107, 0, 0, 0, 98, 5,
899 109, 0, 0, 0, 98, 5, 103, 0, 0, 0, 98, 5,
900 112, 0, 0, 0, 102, 5, 110, 0, 0, 0, 102, 5,
901 188, 3, 0, 0, 102, 5, 104, 0, 0, 0, 122, 9,
902 107, 0, 0, 0, 104, 0, 0, 0, 122, 9, 109, 0,
903 0, 0, 104, 0, 0, 0, 122, 9, 103, 0, 0, 0,
904 104, 0, 0, 0, 122, 9, 116, 0, 0, 0, 104, 0,
905 0, 0, 122, 9, 107, 0, 0, 0, 112, 0, 0, 0,
906 97, 9, 109, 0, 0, 0, 112, 0, 0, 0, 97, 9,
907 103, 0, 0, 0, 112, 0, 0, 0, 97, 5, 112, 0,
908 0, 0, 118, 5, 110, 0, 0, 0, 118, 5, 188, 3,
909 0, 0, 118, 5, 109, 0, 0, 0, 118, 5, 107, 0,
910 0, 0, 118, 5, 112, 0, 0, 0, 119, 5, 110, 0,
911 0, 0, 119, 5, 188, 3, 0, 0, 119, 5, 109, 0,
912 0, 0, 119, 5, 107, 0, 0, 0, 119, 6, 107, 0,
913 0, 0, 201, 3, 6, 109, 0, 0, 0, 201, 3, 5,
914 98, 0, 0, 0, 113, 13, 99, 0, 0, 0, 21, 34,
915 0, 0, 107, 0, 0, 0, 103, 9, 99, 0, 0, 0,
916 111, 0, 0, 0, 46, 5, 100, 0, 0, 0, 98, 5,
917 103, 0, 0, 0, 121, 5, 104, 0, 0, 0, 112, 5,
918 107, 0, 0, 0, 107, 5, 107, 0, 0, 0, 109, 5,
919 112, 0, 0, 0, 104, 9, 112, 0, 0, 0, 112, 0,
920 0, 0, 109, 5, 112, 0, 0, 0, 114, 5, 115, 0,
921 0, 0, 118, 5, 119, 0, 0, 0, 98, 5, 102, 0,
922 0, 0, 102, 5, 102, 0, 0, 0, 105, 5, 102, 0,
923 0, 0, 108, 9, 102, 0, 0, 0, 102, 0, 0, 0,
924 105, 9, 102, 0, 0, 0, 102, 0, 0, 0, 108, 5,
925 115, 0, 0, 0, 116, 6, 116, 5, 0, 0, 118, 5,
926 6, 116, 5, 0, 0, 101, 5, 6, 116, 5, 0, 0,
927 107, 5, 6, 126, 5, 0, 0, 118, 5, 6, 116, 5,
928 0, 0, 109, 5, 2, 65, 255, 2, 66, 255, 2, 67,
929 255, 2, 68, 255, 2, 69, 255, 2, 70, 255, 2, 71,
930 255, 2, 72, 255, 2, 73, 255, 2, 74, 255, 2, 75,
931 255, 2, 76, 255, 2, 77, 255, 2, 78, 255, 2, 79,
932 255, 2, 80, 255, 2, 81, 255, 2, 82, 255, 2, 83,
933 255, 2, 84, 255, 2, 85, 255, 2, 86, 255, 2, 87,
934 255, 2, 88, 255, 2, 89, 255, 2, 90, 255, 3, 40,
935 4, 1, 3, 41, 4, 1, 3, 42, 4, 1, 3, 43,
936 4, 1, 3, 44, 4, 1, 3, 45, 4, 1, 3, 46,
937 4, 1, 3, 47, 4, 1, 3, 48, 4, 1, 3, 49,
938 4, 1, 3, 50, 4, 1, 3, 51, 4, 1, 3, 52,
939 4, 1, 3, 53, 4, 1, 3, 54, 4, 1, 3, 55,
940 4, 1, 3, 56, 4, 1, 3, 57, 4, 1, 3, 58,
941 4, 1, 3, 59, 4, 1, 3, 60, 4, 1, 3, 61,
942 4, 1, 3, 62, 4, 1, 3, 63, 4, 1, 3, 64,
943 4, 1, 3, 65, 4, 1, 3, 66, 4, 1, 3, 67,
944 4, 1, 3, 68, 4, 1, 3, 69, 4, 1, 3, 70,
945 4, 1, 3, 71, 4, 1, 3, 72, 4, 1, 3, 73,
946 4, 1, 3, 74, 4, 1, 3, 75, 4, 1, 3, 76,
947 4, 1, 3, 77, 4, 1,
950 static const unsigned short nameprep_id11_prohibited_imap[] = {
951 68, 196, 196, 324, 196, 196, 196, 452,
952 196, 196, 196, 580, 196, 196, 196, 580,
953 196, 196, 196, 580, 196, 196, 196, 580,
954 196, 196, 196, 580, 196, 196, 196, 580,
955 196, 196, 196, 580, 196, 196, 196, 580,
956 196, 196, 196, 580, 196, 196, 196, 580,
957 196, 196, 196, 580, 196, 196, 196, 580,
958 708, 196, 196, 580, 836, 836, 836, 836,
959 836, 836, 836, 836, 0, 1, 0, 0,
960 0, 0, 2, 0, 0, 0, 0, 0,
961 0, 3, 4, 0, 0, 0, 0, 0,
962 0, 0, 0, 0, 0, 0, 0, 0,
963 0, 0, 0, 0, 0, 0, 0, 0,
964 0, 0, 0, 0, 0, 0, 0, 0,
965 0, 5, 0, 0, 6, 0, 0, 0,
966 0, 0, 0, 0, 0, 0, 0, 0,
967 0, 0, 0, 0, 7, 0, 0, 0,
968 0, 0, 0, 0, 0, 0, 0, 0,
969 0, 0, 0, 0, 0, 0, 0, 0,
970 0, 0, 0, 0, 0, 0, 0, 0,
971 0, 0, 0, 8, 5, 0, 0, 0,
972 0, 0, 0, 0, 0, 0, 0, 0,
973 0, 0, 0, 0, 0, 0, 0, 0,
974 0, 0, 0, 0, 0, 0, 0, 0,
975 0, 0, 0, 0, 0, 0, 0, 0,
976 0, 0, 0, 0, 0, 0, 0, 0,
977 0, 0, 0, 0, 0, 0, 0, 0,
978 0, 0, 0, 0, 0, 0, 0, 0,
979 0, 0, 0, 0, 0, 0, 0, 0,
980 0, 0, 0, 0, 0, 0, 0, 0,
981 0, 0, 0, 0, 0, 0, 0, 0,
982 0, 0, 0, 0, 0, 0, 0, 0,
983 0, 0, 0, 0, 0, 0, 0, 0,
984 0, 0, 0, 0, 0, 0, 0, 0,
985 0, 0, 0, 0, 0, 0, 0, 0,
986 0, 0, 0, 0, 0, 0, 0, 0,
987 0, 0, 0, 0, 0, 0, 0, 0,
988 0, 0, 0, 0, 0, 0, 0, 0,
989 0, 0, 0, 0, 0, 0, 0, 0,
990 0, 0, 0, 0, 0, 0, 0, 0,
991 0, 0, 0, 0, 0, 0, 0, 0,
992 0, 0, 0, 0, 0, 0, 0, 0,
993 0, 0, 0, 0, 0, 0, 0, 0,
994 0, 0, 0, 0, 0, 0, 0, 0,
995 0, 0, 0, 0, 0, 0, 0, 0,
996 0, 0, 0, 0, 0, 0, 0, 0,
997 0, 0, 0, 0, 9, 9, 9, 9,
998 9, 9, 9, 9, 9, 9, 9, 9,
999 9, 9, 9, 9, 9, 9, 9, 9,
1000 9, 9, 9, 9, 9, 9, 9, 9,
1001 9, 9, 9, 9, 9, 9, 9, 9,
1002 9, 9, 9, 9, 9, 9, 9, 9,
1003 9, 9, 9, 9, 9, 9, 9, 9,
1004 9, 9, 9, 9, 9, 9, 9, 9,
1005 9, 9, 9, 9, 9, 9, 0, 0,
1006 0, 0, 0, 0, 0, 0, 0, 10,
1007 0, 0, 0, 11, 0, 0, 0, 0,
1008 0, 0, 0, 0, 0, 0, 0, 0,
1009 0, 0, 0, 0, 0, 0, 0, 0,
1010 0, 0, 0, 0, 0, 0, 0, 0,
1011 0, 0, 0, 0, 0, 0, 12, 0,
1012 0, 0, 0, 0, 0, 0, 0, 0,
1013 0, 0, 0, 0, 0, 0, 0, 0,
1014 0, 0, 0, 0, 0, 0, 0, 0,
1015 0, 0, 0, 0, 0, 0, 0, 0,
1016 0, 0, 0, 0, 0, 0, 0, 0,
1017 0, 0, 0, 0, 0, 0, 0, 0,
1018 0, 0, 0, 0, 0, 0, 0, 0,
1019 0, 0, 0, 0, 0, 0, 0, 0,
1020 0, 0, 0, 0, 0, 0, 0, 0,
1021 0, 0, 0, 0, 0, 0, 0, 0,
1022 0, 0, 0, 0, 0, 0, 0, 0,
1023 0, 0, 0, 13, 0, 0, 0, 0,
1024 0, 0, 0, 0, 0, 0, 0, 0,
1025 0, 0, 0, 0, 0, 0, 0, 0,
1026 0, 0, 0, 0, 0, 0, 0, 0,
1027 0, 0, 0, 0, 0, 0, 0, 0,
1028 0, 0, 0, 0, 0, 0, 0, 0,
1029 0, 0, 0, 0, 0, 0, 0, 0,
1030 0, 0, 0, 0, 0, 0, 0, 0,
1031 0, 0, 0, 0, 0, 0, 0, 0,
1032 0, 0, 0, 0, 0, 0, 0, 0,
1033 0, 0, 0, 0, 0, 0, 0, 0,
1034 0, 0, 0, 0, 0, 0, 0, 0,
1035 0, 0, 0, 0, 0, 0, 0, 0,
1036 0, 0, 0, 0, 0, 0, 0, 0,
1037 0, 0, 0, 0, 0, 0, 0, 0,
1038 0, 0, 0, 0, 0, 0, 0, 0,
1039 0, 0, 0, 13, 14, 0, 0, 0,
1040 0, 0, 0, 0, 0, 0, 0, 0,
1041 0, 0, 0, 0, 0, 0, 0, 0,
1042 0, 0, 0, 0, 0, 0, 0, 0,
1043 0, 0, 0, 0, 0, 0, 0, 0,
1044 0, 0, 0, 0, 0, 0, 0, 0,
1045 0, 0, 0, 0, 0, 0, 0, 0,
1046 0, 0, 0, 0, 0, 0, 0, 0,
1047 0, 0, 0, 0, 0, 0, 0, 0,
1048 0, 0, 0, 0, 0, 0, 0, 0,
1049 0, 0, 0, 0, 0, 0, 0, 0,
1050 0, 0, 0, 0, 0, 0, 0, 0,
1051 0, 0, 0, 0, 0, 0, 0, 0,
1052 0, 0, 0, 0, 0, 0, 0, 0,
1053 0, 0, 0, 0, 0, 0, 0, 0,
1054 0, 0, 0, 0, 0, 0, 0, 0,
1055 0, 0, 0, 0, 9, 9, 9, 9,
1056 9, 9, 9, 9, 9, 9, 9, 9,
1057 9, 9, 9, 9, 9, 9, 9, 9,
1058 9, 9, 9, 9, 9, 9, 9, 9,
1059 9, 9, 9, 9, 9, 9, 9, 9,
1060 9, 9, 9, 9, 9, 9, 9, 9,
1061 9, 9, 9, 9, 9, 9, 9, 9,
1062 9, 9, 9, 9, 9, 9, 9, 9,
1063 9, 9, 9, 9, 9, 9, 9, 9,
1064 9, 9, 9, 9, 9, 9, 9, 9,
1065 9, 9, 9, 9, 9, 9, 9, 9,
1066 9, 9, 9, 9, 9, 9, 9, 9,
1067 9, 9, 9, 9, 9, 9, 9, 9,
1068 9, 9, 9, 9, 9, 9, 9, 9,
1069 9, 9, 9, 9, 9, 9, 9, 9,
1070 9, 9, 9, 9, 9, 9, 9, 9,
1071 9, 9, 9, 9,
1074 static const struct {
1075 unsigned char bm[16];
1076 } nameprep_id11_prohibited_bitmap[] = {
1078 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1081 255,255,255,255, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1084 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0,
1087 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0,
1090 0,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1093 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1096 0, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1099 255,199, 0, 0, 0,255, 0, 0, 0, 0, 0,128, 14,252, 0, 0,
1102 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255, 15,
1105 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
1108 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,255, 0, 0,
1111 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,254,
1114 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,248, 7,
1117 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192,
1120 2, 0, 0, 0,255,255,255,255,255,255,255,255,255,255,255,255,
1124 static const unsigned short nameprep_id11_unassigned_imap[] = {
1125 68, 196, 324, 452, 580, 708, 708, 836,
1126 964, 964, 1092, 1220, 708, 708, 708, 1348,
1127 708, 708, 708, 1348, 708, 708, 708, 1348,
1128 708, 708, 708, 1348, 708, 708, 708, 1348,
1129 708, 708, 708, 1348, 708, 708, 708, 1348,
1130 708, 708, 708, 1348, 708, 708, 708, 1348,
1131 708, 708, 708, 1348, 708, 708, 708, 1348,
1132 1476, 708, 708, 1348, 964, 964, 964, 964,
1133 964, 964, 964, 964, 0, 0, 0, 0,
1134 1, 2, 3, 4, 0, 5, 6, 7,
1135 8, 9, 10, 11, 12, 12, 13, 14,
1136 15, 16, 17, 18, 19, 20, 21, 22,
1137 23, 24, 25, 26, 27, 28, 29, 30,
1138 31, 32, 33, 34, 35, 0, 0, 0,
1139 36, 37, 38, 39, 40, 41, 12, 12,
1140 12, 12, 12, 12, 12, 12, 12, 12,
1141 0, 42, 43, 44, 45, 46, 47, 48,
1142 0, 0, 0, 49, 50, 51, 0, 0,
1143 52, 53, 54, 55, 0, 0, 0, 0,
1144 0, 0, 12, 12, 12, 12, 12, 12,
1145 12, 56, 0, 57, 58, 59, 60, 61,
1146 62, 63, 64, 65, 0, 0, 0, 0,
1147 0, 0, 0, 0, 0, 0, 0, 0,
1148 0, 0, 0, 0, 0, 0, 0, 0,
1149 0, 0, 0, 0, 0, 0, 0, 0,
1150 0, 0, 0, 0, 0, 0, 0, 0,
1151 0, 0, 0, 0, 0, 0, 0, 0,
1152 0, 0, 0, 0, 0, 0, 0, 66,
1153 0, 0, 0, 0, 0, 0, 0, 0,
1154 0, 0, 0, 0, 0, 0, 0, 0,
1155 0, 0, 0, 0, 0, 0, 0, 0,
1156 0, 0, 0, 0, 0, 0, 0, 0,
1157 0, 0, 0, 0, 0, 0, 0, 0,
1158 0, 0, 0, 0, 0, 0, 0, 0,
1159 0, 0, 0, 0, 0, 0, 0, 0,
1160 0, 0, 0, 0, 0, 0, 0, 0,
1161 0, 0, 0, 0, 0, 0, 0, 0,
1162 0, 0, 0, 0, 0, 0, 0, 0,
1163 0, 0, 0, 0, 0, 0, 0, 0,
1164 0, 0, 0, 0, 0, 0, 0, 0,
1165 0, 0, 0, 0, 0, 0, 0, 0,
1166 0, 0, 0, 0, 0, 0, 0, 0,
1167 0, 0, 0, 0, 0, 0, 0, 0,
1168 0, 0, 0, 0, 0, 0, 0, 0,
1169 0, 0, 0, 0, 0, 0, 0, 0,
1170 0, 0, 0, 0, 0, 0, 0, 0,
1171 0, 0, 0, 0, 0, 0, 0, 0,
1172 0, 0, 0, 0, 0, 0, 0, 0,
1173 0, 0, 0, 67, 0, 0, 0, 0,
1174 0, 0, 0, 0, 0, 68, 12, 12,
1175 12, 12, 12, 12, 12, 12, 12, 12,
1176 12, 12, 12, 12, 0, 0, 0, 0,
1177 0, 0, 0, 0, 0, 0, 0, 0,
1178 0, 0, 0, 0, 0, 0, 0, 0,
1179 0, 0, 0, 0, 0, 0, 0, 0,
1180 0, 0, 0, 0, 0, 0, 0, 0,
1181 0, 0, 0, 0, 0, 0, 0, 0,
1182 0, 0, 0, 0, 0, 0, 0, 0,
1183 0, 0, 0, 0, 0, 0, 0, 0,
1184 0, 0, 0, 0, 0, 0, 0, 0,
1185 0, 0, 0, 0, 0, 0, 0, 0,
1186 0, 0, 0, 0, 0, 0, 0, 0,
1187 0, 0, 0, 69, 0, 0, 0, 0,
1188 0, 0, 0, 0, 0, 0, 0, 0,
1189 0, 0, 0, 0, 0, 0, 0, 0,
1190 0, 0, 0, 0, 0, 0, 0, 0,
1191 0, 0, 0, 0, 0, 0, 0, 0,
1192 0, 0, 0, 0, 0, 0, 0, 0,
1193 0, 0, 0, 0, 0, 0, 0, 0,
1194 0, 0, 0, 0, 0, 0, 0, 0,
1195 0, 0, 0, 0, 0, 0, 0, 0,
1196 70, 12, 71, 72, 0, 0, 73, 74,
1197 75, 76, 35, 77, 12, 12, 12, 12,
1198 12, 12, 78, 12, 79, 12, 12, 12,
1199 12, 12, 12, 12, 12, 12, 12, 12,
1200 12, 12, 12, 12, 12, 12, 12, 12,
1201 12, 12, 12, 12, 12, 12, 12, 12,
1202 12, 12, 12, 12, 12, 12, 12, 12,
1203 12, 12, 12, 12, 12, 12, 12, 12,
1204 12, 12, 12, 12, 12, 12, 12, 12,
1205 12, 12, 12, 12, 12, 12, 12, 12,
1206 12, 12, 12, 12, 12, 12, 12, 12,
1207 12, 12, 12, 12, 12, 12, 12, 12,
1208 12, 12, 12, 12, 12, 12, 12, 12,
1209 12, 12, 12, 12, 12, 12, 12, 12,
1210 12, 12, 12, 12, 12, 12, 12, 12,
1211 12, 12, 12, 12, 12, 12, 12, 12,
1212 12, 12, 12, 12, 12, 12, 12, 12,
1213 12, 12, 12, 12, 12, 12, 12, 12,
1214 12, 12, 12, 12, 12, 12, 12, 12,
1215 12, 12, 12, 12, 12, 12, 12, 12,
1216 12, 12, 12, 12, 12, 12, 12, 12,
1217 12, 12, 12, 12, 12, 12, 12, 12,
1218 12, 12, 12, 12, 12, 12, 12, 12,
1219 12, 12, 12, 12, 12, 12, 12, 12,
1220 12, 12, 12, 12, 12, 12, 12, 12,
1221 12, 12, 12, 12, 12, 12, 12, 12,
1222 12, 12, 12, 12, 12, 12, 12, 12,
1223 12, 12, 12, 12, 12, 12, 12, 12,
1224 12, 12, 12, 12, 12, 12, 12, 12,
1225 12, 12, 12, 12, 12, 12, 12, 12,
1226 12, 12, 12, 12, 12, 12, 12, 12,
1227 12, 12, 12, 12, 12, 12, 12, 12,
1228 12, 12, 12, 12, 12, 12, 12, 12,
1229 12, 12, 12, 12, 12, 12, 12, 12,
1230 12, 12, 12, 12, 12, 12, 12, 12,
1231 12, 12, 12, 12, 12, 12, 12, 12,
1232 12, 12, 12, 12, 12, 12, 12, 12,
1233 12, 12, 12, 12, 0, 80, 81, 82,
1234 12, 12, 12, 12, 83, 84, 85, 0,
1235 0, 86, 0, 87, 12, 12, 12, 12,
1236 12, 12, 12, 12, 12, 12, 12, 12,
1237 12, 12, 12, 12, 12, 12, 12, 12,
1238 12, 12, 12, 12, 12, 12, 12, 12,
1239 12, 12, 12, 12, 12, 12, 12, 12,
1240 12, 12, 12, 12, 12, 12, 12, 12,
1241 12, 12, 12, 12, 12, 12, 12, 12,
1242 12, 12, 12, 12, 12, 12, 12, 12,
1243 12, 12, 12, 12, 12, 12, 12, 12,
1244 12, 12, 12, 12, 12, 12, 12, 12,
1245 12, 12, 12, 88, 0, 0, 0, 0,
1246 0, 0, 0, 0, 0, 0, 0, 0,
1247 0, 0, 0, 0, 0, 0, 0, 0,
1248 0, 0, 0, 0, 0, 0, 0, 0,
1249 0, 0, 0, 0, 0, 0, 0, 0,
1250 0, 0, 0, 0, 0, 0, 0, 0,
1251 0, 0, 0, 0, 0, 0, 0, 0,
1252 0, 0, 0, 0, 0, 0, 0, 0,
1253 0, 0, 0, 0, 0, 0, 0, 0,
1254 0, 0, 0, 0, 0, 0, 0, 0,
1255 0, 0, 0, 0, 0, 0, 0, 0,
1256 0, 0, 0, 0, 0, 0, 0, 0,
1257 0, 0, 0, 0, 0, 0, 0, 0,
1258 0, 0, 0, 0, 0, 0, 0, 0,
1259 0, 0, 0, 0, 0, 0, 0, 0,
1260 0, 0, 0, 0, 0, 0, 0, 0,
1261 0, 0, 0, 0, 0, 0, 0, 0,
1262 0, 0, 0, 0, 0, 0, 0, 0,
1263 0, 0, 0, 0, 0, 0, 0, 0,
1264 0, 0, 0, 0, 0, 0, 0, 0,
1265 0, 0, 0, 0, 0, 0, 0, 0,
1266 0, 0, 0, 0, 0, 0, 0, 0,
1267 0, 0, 0, 0, 0, 0, 0, 0,
1268 0, 0, 0, 0, 0, 0, 0, 0,
1269 0, 0, 0, 0, 0, 0, 0, 0,
1270 0, 0, 0, 0, 0, 0, 0, 0,
1271 0, 89, 12, 12, 12, 12, 12, 12,
1272 12, 12, 12, 12, 12, 12, 12, 12,
1273 12, 12, 12, 12, 12, 12, 12, 12,
1274 12, 12, 12, 12, 12, 12, 12, 12,
1275 12, 12, 12, 12, 12, 12, 12, 12,
1276 12, 12, 12, 12, 12, 12, 12, 12,
1277 12, 12, 12, 12, 12, 12, 12, 12,
1278 12, 12, 12, 12, 12, 12, 12, 12,
1279 12, 12, 12, 12, 12, 12, 12, 12,
1280 12, 12, 12, 12, 12, 12, 12, 12,
1281 12, 12, 12, 12, 12, 12, 12, 12,
1282 12, 12, 12, 12, 12, 12, 12, 12,
1283 12, 12, 12, 12, 12, 12, 12, 12,
1284 12, 12, 12, 12, 12, 12, 12, 12,
1285 12, 12, 12, 12, 12, 12, 12, 12,
1286 12, 12, 12, 12, 12, 12, 12, 12,
1287 12, 12, 12, 12, 12, 12, 12, 12,
1288 12, 12, 12, 12, 12, 12, 12, 12,
1289 12, 12, 12, 12, 12, 12, 12, 12,
1290 12, 12, 12, 12, 12, 12, 12, 12,
1291 12, 12, 12, 12, 0, 0, 0, 0,
1292 90, 12, 12, 12, 12, 12, 12, 12,
1293 12, 12, 12, 88, 12, 12, 12, 12,
1294 12, 12, 12, 12, 12, 12, 12, 12,
1295 12, 12, 12, 12, 12, 12, 12, 12,
1296 12, 12, 12, 12, 12, 12, 12, 12,
1297 12, 12, 12, 12, 12, 12, 12, 12,
1298 12, 12, 12, 12, 12, 12, 12, 12,
1299 12, 12, 12, 12, 12, 12, 12, 12,
1300 12, 12, 12, 12, 12, 12, 12, 12,
1301 12, 12, 12, 12, 12, 12, 12, 12,
1302 12, 12, 12, 12, 12, 12, 12, 12,
1303 12, 12, 12, 12, 12, 12, 12, 12,
1304 12, 12, 12, 12, 12, 12, 12, 12,
1305 12, 12, 12, 12, 12, 12, 12, 12,
1306 12, 12, 12, 12, 12, 12, 12, 12,
1307 12, 12, 12, 12, 12, 12, 12, 12,
1308 12, 12, 12, 12, 12, 12, 12, 12,
1309 12, 12, 12, 88, 91, 12, 12, 12,
1310 12, 12, 12, 12, 12, 12, 12, 12,
1311 12, 12, 12, 12, 12, 12, 12, 12,
1312 12, 12, 12, 12, 12, 12, 12, 12,
1313 12, 12, 12, 12, 12, 12, 12, 12,
1314 12, 12, 12, 12, 12, 12, 12, 12,
1315 12, 12, 12, 12, 12, 12, 12, 12,
1316 12, 12, 12, 12, 12, 12, 12, 12,
1317 12, 12, 12, 12, 12, 12, 12, 12,
1318 12, 12, 12, 12, 12, 12, 12, 12,
1319 12, 12, 12, 12, 12, 12, 12, 12,
1320 12, 12, 12, 12, 12, 12, 12, 12,
1321 12, 12, 12, 12, 12, 12, 12, 12,
1322 12, 12, 12, 12, 12, 12, 12, 12,
1323 12, 12, 12, 12, 12, 12, 12, 12,
1324 12, 12, 12, 12, 12, 12, 12, 12,
1325 12, 12, 12, 12,
1328 static const struct {
1329 unsigned char bm[16];
1330 } nameprep_id11_unassigned_bitmap[] = {
1332 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1335 0, 0, 0, 0, 2, 0,240,255,255,255, 0, 0, 0, 0, 0, 0,
1338 0, 0, 0, 0, 0,192, 0, 0, 0, 0, 0, 0, 0,128,255,255,
1341 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255, 0, 0,207,187,
1344 15, 40, 0, 0, 4, 0, 0, 0, 0,128, 0, 0, 0, 0,128,255,
1347 128, 0, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0,192,252,
1350 0, 0,255,255,255,255, 1, 0, 0, 0,128, 1, 1, 0, 0, 0,
1353 0,249, 1, 0, 4, 0, 0, 4,224,255, 0, 0, 0,248,224,255,
1356 255,239,255,119, 1, 0, 0,248, 0, 0,192,255, 0, 0, 0, 0,
1359 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192, 0,128,
1362 0, 64, 0, 0, 0,224, 0, 0, 0,248,255,255,255,255,255,255,
1365 0, 0, 0, 0, 0, 0,252,255,255,255,255,255,255,255,255,255,
1368 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
1371 17, 0, 0, 0, 0, 0, 0, 12, 0,192,224, 0, 0, 0,254,255,
1374 17, 96, 6, 0, 0, 2, 58, 44, 96,198,127, 79, 48, 0, 0,248,
1377 27,120, 6, 0, 0, 2,146, 44,120,198,255,161, 63, 0,224,255,
1380 17, 80, 4, 0, 0, 2, 18, 12, 64,196,254,255, 62, 0,255,255,
1383 17, 96, 6, 0, 0, 2, 50, 12,112,198, 63, 79, 60, 0,254,255,
1386 19, 56,194, 41,231, 56, 64, 60, 56,194,127,255,127, 0,248,255,
1389 17, 32, 2, 0, 0, 2, 16, 60, 32,194,159,255, 60, 0,255,255,
1392 19, 32, 2, 0, 0, 2, 16, 60, 32,194,159,191, 60, 0,255,255,
1395 19, 32, 2, 0, 0, 2, 0, 60, 48,194,127,255, 60, 0,255,255,
1398 19, 0,128, 3, 0, 0, 4,208,128,123,160, 0,255,255,227,255,
1401 1, 0, 0, 0, 0, 0, 0,120, 0, 0, 0,240,255,255,255,255,
1404 105,218, 15, 1, 81, 19, 0,196,160,192, 0,204,255,255,255,255,
1407 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,248, 1, 0,
1410 0,240, 0, 1, 0, 0, 0, 32, 0, 96,255,255,255,255,255,255,
1413 0, 0, 0, 0, 4, 9, 56,252, 0, 0, 0,252,255,255,255,255,
1416 255,255,255,255, 0, 0, 0, 0,192,255, 0, 0, 0, 0, 0,246,
1419 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,124, 0, 0, 0, 0,
1422 0, 0, 0, 0,248, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,252,
1425 128, 0, 0, 0, 0, 0, 0, 0,128,194,128,194, 0, 0, 0, 0,
1428 128,194, 0, 0, 0,128,194,128,194,128,128, 0, 0,128, 0, 0,
1431 0,128,194,128, 0, 0, 0, 0,128, 0, 0,248, 1, 0, 0,224,
1434 255,255,255,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,224,255,
1437 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1440 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,255,
1443 0, 0, 0,224, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,254,255,
1446 0, 32,224,255, 0, 0,128,255, 0, 0,240,255, 0, 32,242,255,
1449 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,224, 0,252,255,255,
1452 0,128, 0,252, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,
1455 0, 0, 0, 0, 0,252,255,255,255,255,255,255,255,255,255,255,
1458 0, 0, 0,240, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,252,
1461 0, 0,192,192, 0, 0, 0, 0,192,192, 0, 85, 0, 0, 0,192,
1464 0, 0, 0, 0, 0, 0, 32, 0, 32, 0, 48, 16, 0, 0, 35,128,
1467 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,120,127,240, 3, 12, 0,
1470 0,128,255,255, 0, 0,252,255,255,255, 0, 0, 0,248,255,255,
1473 0, 0, 0, 0, 0, 0, 0, 24, 0,240, 7, 0, 0, 0, 0, 0,
1476 240,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1479 0, 0, 0, 0, 0, 0, 0, 0, 0,128,255,255,255,255,255,255,
1482 0, 0, 0, 0,128,255,255,255, 0,248,255,255, 0, 0, 0, 0,
1485 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,
1488 0, 0, 48, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192,
1491 0,252,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
1494 33, 12, 0, 0, 0, 1, 0, 0, 0, 80,184,128, 1, 0, 0, 0,
1497 0, 0,224, 0, 0, 0, 1,128,255,255, 0, 0, 0,240, 0, 0,
1500 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240,255,
1503 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192,255,255,255, 0,240,
1506 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
1509 0, 0,128, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1512 31, 0, 0, 0, 0,224, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1515 0,128, 0, 0, 0, 0, 0,255,255,255,255,255,255,255, 0, 0,
1518 0, 0, 0,224, 0, 0, 0, 0,240,255, 1, 0, 0, 0, 0,112,
1521 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 0, 0, 0, 0, 0,128,
1524 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7,
1527 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192, 0, 0, 0,128,
1530 0, 0, 0, 0, 0, 0,192,255,255,255,255,255,255,255,255,255,
1533 0, 0, 0, 0,192,255,255,255,255,255,255,255,255,255,255,255,
1536 0,224, 0, 0, 0, 0, 0, 0,128,255,255,255,255,255,255,255,
1539 0, 0, 0, 0,240,255,255,255,255,255,255,255,255,255,255,255,
1542 0, 0, 0, 0, 0,192, 0, 0, 0, 0, 0, 0, 0,248,255,255,
1545 128,255, 7, 31, 0, 0,128,160, 36, 0, 0, 0, 0, 0, 0, 0,
1548 0, 0, 0, 0, 0, 0,252,255,255,255, 7, 0, 0, 0, 0, 0,
1551 0, 0, 0, 0, 0, 0, 0, 0,255,255, 0, 0, 0, 0, 0, 0,
1554 0, 0, 3, 0, 0, 0, 0, 0, 0,255, 0, 0, 0, 0, 0,224,
1557 0, 0,255,255,240,255, 0, 0,128, 1, 8, 0,128,240, 32, 0,
1560 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96,
1563 0, 0, 0, 0, 0, 0, 0,128, 3, 3, 3,227,128,128,255, 1,
1566 0, 0, 0,128,240,255, 0, 0, 0,248,255,255,255,255,255,255,
1569 0, 0, 0, 0,192, 0, 0, 0, 0,192,255,255,255,255,255,255,
1572 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192,255,
1575 0, 0, 0, 0,128, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1578 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192,255,255,255,255,
1581 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0,
1584 0, 0, 0, 32,155, 33, 0, 20, 18, 0, 0, 0, 0, 0, 0, 0,
1587 64, 24, 32, 32, 0, 0, 0,132,160, 3, 2, 0, 0, 0, 0, 0,
1590 0, 0, 0, 0,240, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1593 0, 0, 0, 0, 0, 0, 0, 0, 0, 60, 0, 0, 0, 0, 0, 0,
1596 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, 63,
1599 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,255,255,255,255,255,
1602 0, 0, 0,192,255,255,255,255,255,255,255,255,255,255,255,255,
1605 253,255,255,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1609 static const unsigned short nameprep_id11_bidi_imap[] = {
1610 272, 400, 528, 656, 784, 912, 912, 912,
1611 912, 1040, 1168, 912, 912, 1296, 912, 1424,
1612 1552, 1680, 1680, 1680, 1680, 1680, 1680, 1680,
1613 1680, 1680, 1680, 1680, 1680, 1808, 1680, 1680,
1614 912, 912, 912, 912, 912, 912, 912, 912,
1615 912, 912, 1936, 1680, 1680, 1680, 1680, 2064,
1616 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680,
1617 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680,
1618 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680,
1619 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680,
1620 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680,
1621 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680,
1622 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680,
1623 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680,
1624 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680,
1625 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680,
1626 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680,
1627 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680,
1628 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680,
1629 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680,
1630 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680,
1631 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680,
1632 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680,
1633 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680,
1634 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680,
1635 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680,
1636 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680,
1637 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680,
1638 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680,
1639 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680,
1640 912, 912, 912, 912, 912, 912, 912, 912,
1641 912, 912, 912, 912, 912, 912, 912, 2192,
1642 912, 912, 912, 912, 912, 912, 912, 912,
1643 912, 912, 912, 912, 912, 912, 912, 2192,
1644 0, 0, 1, 1, 0, 2, 3, 3,
1645 4, 4, 4, 4, 4, 4, 4, 4,
1646 4, 5, 6, 4, 4, 7, 8, 9,
1647 0, 0, 0, 10, 11, 12, 13, 14,
1648 4, 4, 4, 4, 15, 4, 13, 16,
1649 17, 18, 19, 20, 21, 22, 23, 24,
1650 25, 26, 27, 28, 29, 29, 30, 31,
1651 32, 33, 0, 0, 29, 34, 0, 0,
1652 0, 0, 0, 0, 0, 0, 0, 0,
1653 35, 36, 37, 38, 39, 40, 41, 42,
1654 43, 44, 45, 46, 47, 48, 49, 50,
1655 39, 51, 41, 52, 53, 54, 55, 56,
1656 57, 58, 59, 60, 61, 62, 63, 60,
1657 61, 64, 65, 60, 66, 67, 68, 69,
1658 20, 70, 71, 0, 72, 73, 74, 0,
1659 75, 76, 77, 78, 79, 80, 81, 0,
1660 4, 82, 83, 0, 0, 4, 84, 85,
1661 4, 4, 86, 4, 4, 87, 4, 88,
1662 89, 4, 90, 4, 91, 92, 93, 13,
1663 92, 4, 94, 95, 0, 4, 4, 96,
1664 20, 4, 4, 4, 4, 4, 4, 4,
1665 4, 4, 4, 4, 4, 4, 4, 4,
1666 4, 4, 4, 97, 1, 4, 4, 98,
1667 99, 100, 101, 102, 4, 103, 104, 105,
1668 106, 4, 4, 83, 4, 107, 0, 0,
1669 0, 0, 0, 0, 0, 0, 0, 0,
1670 0, 0, 0, 0, 0, 0, 0, 0,
1671 0, 0, 0, 0, 0, 0, 0, 0,
1672 0, 0, 0, 0, 0, 0, 0, 0,
1673 0, 0, 0, 0, 0, 0, 0, 0,
1674 4, 4, 4, 4, 108, 4, 4, 88,
1675 109, 4, 110, 111, 4, 112, 113, 114,
1676 115, 0, 0, 116, 0, 0, 0, 0,
1677 117, 118, 119, 4, 120, 0, 0, 0,
1678 0, 0, 0, 0, 0, 0, 0, 0,
1679 0, 121, 4, 122, 123, 0, 0, 0,
1680 0, 0, 0, 0, 124, 4, 4, 105,
1681 0, 0, 0, 0, 0, 0, 0, 0,
1682 0, 0, 0, 0, 0, 0, 0, 0,
1683 0, 0, 0, 0, 0, 0, 0, 0,
1684 0, 0, 0, 0, 0, 0, 0, 0,
1685 0, 0, 0, 0, 0, 0, 0, 0,
1686 0, 0, 0, 0, 0, 0, 0, 0,
1687 0, 0, 0, 0, 0, 0, 0, 0,
1688 0, 0, 0, 0, 0, 0, 0, 0,
1689 0, 0, 0, 0, 0, 0, 0, 0,
1690 0, 0, 0, 0, 0, 0, 0, 0,
1691 0, 0, 0, 0, 0, 0, 0, 0,
1692 125, 126, 20, 4, 127, 20, 4, 128,
1693 129, 130, 4, 4, 13, 83, 0, 6,
1694 131, 4, 120, 132, 4, 98, 133, 134,
1695 4, 4, 4, 135, 4, 4, 111, 134,
1696 4, 4, 4, 4, 4, 4, 4, 4,
1697 4, 4, 4, 4, 4, 4, 4, 4,
1698 4, 4, 4, 4, 4, 4, 4, 4,
1699 4, 4, 4, 4, 4, 4, 4, 4,
1700 4, 4, 4, 4, 4, 4, 4, 4,
1701 4, 4, 4, 4, 4, 4, 4, 4,
1702 4, 4, 4, 4, 4, 4, 4, 4,
1703 4, 4, 4, 4, 4, 4, 4, 4,
1704 4, 4, 4, 4, 4, 4, 4, 4,
1705 4, 4, 4, 4, 4, 4, 4, 4,
1706 4, 4, 4, 4, 4, 4, 4, 4,
1707 4, 4, 4, 4, 4, 4, 4, 4,
1708 4, 4, 4, 4, 4, 4, 4, 4,
1709 4, 4, 4, 4, 4, 4, 4, 4,
1710 4, 4, 4, 4, 4, 4, 4, 4,
1711 4, 4, 4, 4, 4, 4, 4, 4,
1712 4, 4, 4, 4, 4, 4, 4, 4,
1713 4, 4, 4, 4, 4, 4, 4, 4,
1714 4, 4, 4, 4, 4, 4, 4, 4,
1715 4, 4, 4, 4, 4, 4, 4, 4,
1716 4, 4, 4, 4, 4, 4, 4, 4,
1717 4, 4, 4, 4, 4, 4, 4, 4,
1718 4, 4, 4, 4, 4, 4, 4, 4,
1719 4, 4, 4, 4, 4, 4, 4, 4,
1720 4, 4, 4, 4, 4, 4, 4, 4,
1721 4, 4, 4, 4, 4, 14, 0, 0,
1722 4, 4, 4, 4, 4, 4, 4, 4,
1723 4, 4, 4, 4, 4, 4, 4, 4,
1724 4, 4, 4, 4, 4, 4, 4, 4,
1725 4, 4, 4, 4, 4, 4, 4, 4,
1726 4, 4, 4, 4, 4, 4, 4, 4,
1727 4, 4, 4, 4, 4, 4, 4, 4,
1728 4, 4, 4, 4, 4, 4, 4, 4,
1729 4, 4, 4, 4, 4, 4, 4, 4,
1730 4, 4, 4, 4, 4, 4, 4, 4,
1731 4, 4, 4, 4, 4, 4, 4, 4,
1732 4, 4, 4, 4, 4, 4, 4, 4,
1733 4, 4, 4, 4, 4, 4, 4, 4,
1734 4, 4, 4, 4, 4, 4, 4, 4,
1735 4, 4, 4, 4, 4, 4, 4, 4,
1736 4, 4, 4, 4, 4, 4, 4, 4,
1737 4, 4, 4, 4, 4, 4, 4, 4,
1738 4, 4, 4, 4, 4, 4, 4, 4,
1739 4, 4, 4, 4, 4, 4, 4, 4,
1740 4, 4, 4, 4, 4, 4, 4, 4,
1741 4, 4, 4, 4, 4, 4, 4, 4,
1742 4, 4, 4, 4, 4, 4, 4, 4,
1743 4, 4, 4, 4, 4, 4, 4, 4,
1744 4, 4, 4, 4, 4, 4, 4, 4,
1745 4, 4, 4, 4, 4, 4, 4, 4,
1746 4, 4, 4, 4, 4, 4, 4, 4,
1747 4, 4, 4, 4, 4, 4, 4, 4,
1748 4, 4, 4, 4, 4, 4, 4, 4,
1749 4, 4, 4, 4, 4, 4, 4, 4,
1750 4, 4, 4, 4, 4, 4, 4, 4,
1751 4, 4, 4, 4, 4, 4, 4, 4,
1752 4, 4, 4, 4, 4, 4, 4, 4,
1753 4, 4, 4, 4, 4, 4, 4, 4,
1754 4, 4, 4, 4, 4, 4, 4, 4,
1755 4, 4, 4, 4, 4, 136, 0, 0,
1756 4, 4, 4, 4, 4, 4, 4, 4,
1757 4, 4, 4, 4, 4, 4, 4, 4,
1758 4, 4, 4, 4, 4, 4, 4, 4,
1759 4, 4, 4, 4, 4, 4, 4, 4,
1760 4, 4, 4, 4, 137, 0, 0, 0,
1761 0, 0, 0, 0, 0, 0, 0, 0,
1762 0, 0, 0, 0, 0, 0, 0, 0,
1763 0, 0, 0, 0, 0, 0, 0, 0,
1764 0, 0, 0, 0, 0, 0, 0, 0,
1765 0, 0, 0, 0, 0, 0, 0, 0,
1766 0, 0, 0, 0, 0, 0, 0, 0,
1767 0, 0, 0, 0, 0, 0, 0, 0,
1768 4, 4, 4, 4, 4, 4, 4, 4,
1769 4, 4, 4, 4, 4, 4, 4, 4,
1770 4, 4, 4, 4, 4, 4, 4, 4,
1771 4, 4, 4, 4, 4, 4, 4, 4,
1772 4, 4, 4, 4, 4, 4, 4, 4,
1773 4, 4, 4, 4, 4, 4, 4, 4,
1774 4, 4, 4, 4, 4, 4, 4, 4,
1775 4, 4, 4, 4, 4, 4, 4, 4,
1776 4, 4, 4, 4, 4, 4, 4, 4,
1777 4, 4, 4, 4, 4, 4, 4, 4,
1778 4, 4, 4, 4, 4, 4, 4, 4,
1779 4, 4, 4, 4, 4, 120, 0, 0,
1780 4, 4, 4, 4, 4, 4, 4, 4,
1781 4, 4, 4, 4, 4, 4, 4, 4,
1782 4, 4, 4, 4, 4, 4, 4, 4,
1783 4, 4, 4, 4, 4, 4, 4, 4,
1784 4, 4, 4, 4, 4, 4, 4, 4,
1785 4, 4, 4, 4, 4, 4, 4, 4,
1786 4, 4, 4, 4, 4, 4, 4, 4,
1787 4, 4, 4, 4, 4, 4, 4, 4,
1788 4, 4, 4, 4, 4, 4, 4, 4,
1789 4, 4, 4, 4, 4, 4, 4, 4,
1790 4, 4, 4, 4, 4, 4, 4, 4,
1791 4, 4, 4, 4, 4, 4, 4, 4,
1792 4, 4, 4, 4, 4, 4, 4, 4,
1793 4, 4, 4, 4, 4, 4, 4, 4,
1794 4, 4, 4, 4, 4, 4, 4, 4,
1795 4, 4, 4, 4, 4, 4, 4, 4,
1796 4, 4, 4, 4, 4, 4, 4, 4,
1797 4, 4, 4, 4, 4, 4, 4, 4,
1798 4, 138, 4, 139, 0, 0, 0, 0,
1799 140, 141, 142, 29, 29, 143, 144, 29,
1800 29, 29, 29, 29, 29, 29, 29, 29,
1801 29, 145, 146, 29, 147, 29, 148, 149,
1802 0, 0, 0, 150, 29, 29, 29, 151,
1803 0, 1, 1, 152, 4, 134, 153, 0,
1804 0, 0, 0, 0, 0, 0, 0, 0,
1805 0, 0, 0, 0, 0, 0, 0, 0,
1806 0, 0, 0, 0, 0, 0, 0, 0,
1807 134, 154, 139, 0, 0, 0, 0, 0,
1808 4, 155, 156, 0, 0, 0, 0, 0,
1809 0, 0, 0, 0, 0, 0, 0, 0,
1810 0, 0, 0, 0, 0, 0, 0, 0,
1811 0, 0, 0, 0, 0, 0, 0, 0,
1812 0, 0, 0, 0, 0, 0, 0, 0,
1813 0, 0, 0, 0, 0, 0, 0, 0,
1814 0, 0, 0, 0, 0, 0, 0, 0,
1815 0, 0, 0, 0, 0, 0, 0, 0,
1816 0, 0, 0, 0, 0, 0, 0, 0,
1817 0, 0, 0, 0, 0, 0, 0, 0,
1818 0, 0, 0, 0, 0, 0, 0, 0,
1819 0, 0, 0, 0, 0, 0, 0, 0,
1820 0, 0, 0, 0, 0, 0, 0, 0,
1821 0, 0, 0, 0, 0, 0, 0, 0,
1822 0, 0, 0, 0, 0, 0, 0, 0,
1823 0, 0, 0, 0, 0, 0, 0, 0,
1824 0, 0, 0, 0, 0, 0, 0, 0,
1825 0, 0, 0, 0, 0, 0, 0, 0,
1826 0, 0, 0, 0, 0, 0, 0, 0,
1827 0, 0, 0, 0, 0, 0, 0, 0,
1828 0, 0, 0, 0, 0, 0, 0, 0,
1829 0, 0, 0, 0, 0, 0, 0, 0,
1830 0, 0, 0, 0, 0, 0, 0, 0,
1831 0, 0, 0, 0, 0, 0, 0, 0,
1832 0, 0, 0, 0, 0, 0, 0, 0,
1833 0, 0, 0, 0, 0, 0, 0, 0,
1834 0, 0, 0, 0, 0, 0, 0, 0,
1835 0, 0, 0, 0, 0, 0, 0, 0,
1836 4, 4, 4, 4, 4, 4, 4, 14,
1837 4, 157, 4, 158, 159, 160, 111, 0,
1838 0, 0, 0, 0, 0, 0, 0, 0,
1839 0, 0, 0, 0, 0, 0, 0, 0,
1840 4, 4, 161, 4, 162, 163, 164, 4,
1841 165, 166, 167, 4, 4, 4, 4, 4,
1842 4, 4, 4, 4, 4, 168, 4, 4,
1843 4, 4, 4, 4, 4, 4, 105, 0,
1844 0, 0, 0, 0, 0, 0, 0, 0,
1845 0, 0, 0, 0, 0, 0, 0, 0,
1846 0, 0, 0, 0, 0, 0, 0, 0,
1847 0, 0, 0, 0, 0, 0, 0, 0,
1848 0, 0, 0, 0, 0, 0, 0, 0,
1849 0, 0, 0, 0, 0, 0, 0, 0,
1850 0, 0, 0, 0, 0, 0, 0, 0,
1851 0, 0, 0, 0, 0, 0, 0, 0,
1852 4, 4, 4, 4, 4, 4, 4, 4,
1853 4, 4, 4, 4, 4, 4, 4, 4,
1854 4, 4, 4, 4, 4, 4, 4, 4,
1855 4, 4, 4, 4, 4, 4, 4, 4,
1856 4, 4, 4, 4, 4, 4, 4, 4,
1857 4, 4, 4, 4, 4, 4, 4, 4,
1858 4, 4, 4, 4, 4, 4, 97, 0,
1859 0, 0, 0, 0, 0, 0, 0, 0,
1860 0, 0, 0, 0, 0, 0, 0, 0,
1861 0, 0, 0, 0, 0, 0, 0, 0,
1862 0, 0, 0, 0, 0, 0, 0, 0,
1863 0, 0, 0, 0, 0, 0, 0, 0,
1864 0, 0, 0, 0, 0, 0, 0, 0,
1865 0, 0, 0, 0, 0, 0, 0, 0,
1866 0, 0, 0, 0, 0, 0, 0, 0,
1867 0, 0, 0, 0, 0, 0, 0, 0,
1868 0, 0, 0, 0, 0, 0, 0, 0,
1869 0, 0, 0, 0, 0, 0, 0, 0,
1870 0, 0, 0, 0, 0, 0, 0, 0,
1871 0, 0, 0, 0, 0, 0, 0, 0,
1872 0, 0, 0, 0, 0, 0, 0, 0,
1873 0, 0, 0, 0, 0, 0, 0, 0,
1874 0, 0, 0, 0, 0, 0, 0, 0,
1875 0, 0, 0, 0, 0, 0, 0, 0,
1876 4, 4, 4, 4, 4, 4, 4, 4,
1877 4, 4, 4, 4, 4, 4, 4, 4,
1878 111, 0, 0, 0, 0, 0, 0, 0,
1879 0, 0, 0, 0, 0, 0, 0, 0,
1880 0, 0, 0, 0, 0, 0, 0, 0,
1881 0, 0, 0, 0, 0, 0, 0, 0,
1882 0, 0, 0, 0, 0, 0, 0, 0,
1883 0, 0, 0, 0, 0, 0, 0, 0,
1884 4, 4, 4, 4, 4, 4, 4, 4,
1885 4, 4, 4, 4, 4, 4, 4, 4,
1886 4, 4, 4, 4, 4, 4, 4, 4,
1887 4, 4, 4, 4, 4, 4, 4, 4,
1888 4, 4, 4, 4, 4, 4, 4, 4,
1889 4, 4, 4, 4, 4, 4, 4, 4,
1890 4, 4, 4, 4, 4, 4, 4, 4,
1891 4, 4, 4, 4, 4, 4, 4, 4,
1892 4, 4, 4, 4, 4, 4, 4, 4,
1893 4, 4, 4, 4, 4, 4, 4, 4,
1894 4, 4, 4, 4, 4, 4, 4, 4,
1895 4, 4, 4, 4, 4, 4, 4, 4,
1896 4, 4, 4, 4, 4, 4, 4, 4,
1897 4, 4, 4, 4, 4, 4, 4, 4,
1898 4, 4, 4, 4, 4, 4, 4, 4,
1899 4, 4, 4, 4, 4, 4, 4, 111,
1902 static const struct {
1903 unsigned char tbl[32];
1904 } nameprep_id11_bidi_table[] = {
1906 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1907 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1910 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1911 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0,
1914 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0,
1915 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0,
1918 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1919 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 2, 2, 2, 2, 2,
1922 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1923 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1926 2, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1927 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1930 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2,
1931 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1934 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 2,
1935 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 2, 2, 2, 2, 2,
1938 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2,
1939 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1942 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0,
1943 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1946 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1947 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0,
1950 0, 0, 0, 0, 0, 0, 2, 0, 2, 2, 2, 0, 2, 0, 2, 2, 2,
1951 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1954 2, 2, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1955 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1958 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2,
1959 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1962 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1963 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1966 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2,
1967 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1970 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1971 2, 2, 2, 2, 2, 0, 0, 2, 2, 0, 0, 0, 0, 0, 0,
1974 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0,
1975 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1978 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1979 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1982 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1983 2, 2, 2, 2, 2, 2, 0, 0, 2, 2, 2, 2, 2, 2, 2,
1986 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1987 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1990 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0,
1991 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1994 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1995 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
1998 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
1999 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2002 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1,
2003 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2006 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2007 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1,
2010 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2011 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
2014 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0,
2015 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2018 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0,
2019 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2022 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2023 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2026 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2027 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
2030 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2031 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0,
2034 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1,
2035 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2038 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0,
2039 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2042 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2043 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2046 0, 0, 0, 2, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2047 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2050 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2051 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 2, 2, 2,
2054 2, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 0, 0, 0, 2,
2055 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2,
2058 2, 2, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2059 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2062 0, 0, 2, 2, 0, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 2, 2,
2063 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2066 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 2, 2, 2, 2,
2067 0, 2, 0, 0, 0, 2, 2, 2, 2, 0, 0, 0, 0, 2, 2,
2070 2, 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, 2, 2, 0, 0, 0, 0,
2071 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 2, 0, 2,
2074 2, 2, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2075 2, 0, 0, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0,
2078 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 2, 2,
2079 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2082 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 2, 2, 2, 2,
2083 0, 2, 2, 0, 2, 2, 0, 2, 2, 0, 0, 0, 0, 2, 2,
2086 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2087 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 0, 2, 0,
2090 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0,
2091 0, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2094 0, 0, 0, 2, 0, 2, 2, 2, 2, 2, 2, 2, 0, 2, 0, 2, 2,
2095 2, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2098 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 2, 2, 2, 2,
2099 0, 2, 2, 0, 2, 2, 2, 2, 2, 0, 0, 0, 2, 2, 2,
2102 2, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 2, 2, 0, 0, 0, 2,
2103 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2106 2, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0,
2107 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2110 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 2, 2, 2, 2,
2111 0, 2, 2, 0, 0, 2, 2, 2, 2, 0, 0, 0, 2, 2, 0,
2114 2, 2, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2115 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2118 0, 0, 0, 2, 0, 2, 2, 2, 2, 2, 2, 0, 0, 0, 2, 2, 2,
2119 0, 2, 2, 2, 2, 0, 0, 0, 2, 2, 0, 2, 0, 2, 2,
2122 0, 0, 0, 2, 2, 0, 0, 0, 2, 2, 2, 0, 0, 0, 2, 2, 2,
2123 2, 2, 2, 2, 2, 0, 2, 2, 2, 0, 0, 0, 0, 2, 2,
2126 0, 2, 2, 0, 0, 0, 2, 2, 2, 0, 2, 2, 2, 0, 0, 0, 0,
2127 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0,
2130 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2131 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2134 0, 2, 2, 2, 0, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2,
2135 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2138 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 2, 2, 2, 2,
2139 2, 2, 2, 0, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
2142 0, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2143 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2146 2, 2, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0,
2147 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2150 0, 0, 2, 2, 0, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2,
2151 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2154 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 2, 2, 2, 2,
2155 2, 2, 2, 0, 2, 2, 2, 2, 2, 0, 0, 0, 0, 2, 0,
2158 2, 2, 2, 2, 2, 0, 0, 2, 2, 0, 2, 2, 0, 0, 0, 0, 0,
2159 0, 0, 0, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 2, 0,
2162 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 2, 2, 2, 2,
2163 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 2, 2,
2166 2, 0, 0, 0, 0, 0, 2, 2, 2, 0, 2, 2, 2, 0, 0, 0, 0,
2167 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0,
2170 0, 0, 2, 2, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2171 2, 2, 2, 2, 2, 2, 0, 0, 0, 2, 2, 2, 2, 2, 2,
2174 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2175 2, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 0, 0,
2178 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2,
2179 2, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2,
2182 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2183 0, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2186 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2187 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2190 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2,
2191 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0,
2194 0, 2, 2, 0, 2, 0, 0, 2, 2, 0, 2, 0, 0, 2, 0, 0, 0,
2195 0, 0, 0, 2, 2, 2, 2, 0, 2, 2, 2, 2, 2, 2, 2,
2198 0, 2, 2, 2, 0, 2, 0, 2, 0, 0, 2, 2, 0, 2, 2, 2, 2,
2199 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0,
2202 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2,
2203 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 2, 2, 0, 0,
2206 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2207 2, 2, 2, 2, 2, 2, 2, 0, 0, 2, 2, 2, 2, 2, 2,
2210 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2211 2, 2, 2, 2, 0, 2, 0, 2, 0, 0, 0, 0, 0, 2, 2,
2214 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 2, 2, 2, 2, 2,
2215 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2218 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
2219 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2,
2222 0, 0, 0, 0, 0, 2, 0, 0, 2, 2, 2, 2, 0, 0, 0, 0, 0,
2223 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2226 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2227 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2,
2230 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 2, 2, 2, 0, 0, 2, 0,
2231 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2234 2, 2, 0, 2, 2, 2, 2, 2, 0, 2, 2, 0, 2, 0, 0, 0, 0,
2235 2, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0,
2238 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2239 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0,
2242 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2,
2243 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2246 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2247 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 2, 0, 0, 0, 0,
2250 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2251 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 2,
2254 2, 2, 2, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2255 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2258 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2259 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
2262 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2263 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2266 2, 2, 2, 2, 2, 2, 2, 0, 2, 0, 2, 2, 2, 2, 0, 0, 2,
2267 2, 2, 2, 2, 2, 2, 0, 2, 0, 2, 2, 2, 2, 0, 0,
2270 2, 2, 2, 2, 2, 2, 2, 0, 2, 0, 2, 2, 2, 2, 0, 0, 2,
2271 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2274 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2,
2275 0, 2, 2, 2, 2, 0, 0, 2, 2, 2, 2, 2, 2, 2, 0,
2278 2, 0, 2, 2, 2, 2, 0, 0, 2, 2, 2, 2, 2, 2, 2, 0, 2,
2279 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 2, 2, 2, 2, 2,
2282 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2283 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0,
2286 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2287 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0,
2290 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2291 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2294 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2295 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2298 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2299 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2302 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2,
2303 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2306 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2307 2, 0, 0, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2310 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2311 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2314 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2,
2315 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2318 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2319 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 2, 2,
2322 2, 2, 2, 2, 2, 2, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0,
2323 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0,
2326 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
2327 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2330 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2,
2331 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
2334 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0,
2335 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2338 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2339 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0,
2342 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2343 2, 2, 2, 2, 2, 0, 0, 2, 2, 2, 2, 2, 2, 0, 0,
2346 2, 2, 2, 2, 2, 2, 0, 0, 2, 2, 2, 2, 2, 2, 0, 0, 2,
2347 2, 2, 2, 2, 2, 2, 2, 0, 2, 0, 2, 0, 2, 0, 2,
2350 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2351 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0,
2354 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2355 2, 2, 2, 2, 0, 2, 2, 2, 2, 2, 2, 2, 0, 2, 0,
2358 0, 0, 2, 2, 2, 0, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 2,
2359 2, 2, 2, 0, 0, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0,
2362 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0,
2363 0, 2, 2, 2, 0, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0,
2366 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 1, 0,
2367 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2370 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2371 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2,
2374 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 2, 2, 2, 2, 2, 2, 2,
2375 2, 2, 2, 0, 2, 0, 0, 0, 2, 2, 2, 2, 2, 0, 0,
2378 0, 0, 0, 0, 2, 0, 2, 0, 2, 0, 2, 2, 2, 2, 0, 2, 2,
2379 2, 0, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 2, 2, 2,
2382 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
2383 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2386 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2387 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2390 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2391 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2394 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2395 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0,
2398 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2399 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2402 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2403 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2,
2406 0, 0, 0, 0, 0, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2407 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2410 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
2411 2, 2, 2, 2, 2, 0, 0, 2, 2, 2, 2, 2, 0, 0, 0,
2414 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2415 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 2, 2, 2,
2418 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2419 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 2,
2422 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2423 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2426 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0,
2427 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2430 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2431 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0,
2434 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2435 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 2,
2438 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 2,
2439 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2442 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2443 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0,
2446 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2447 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 2, 2, 2, 2, 2,
2450 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2451 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2454 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0,
2455 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2458 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 2,
2459 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2462 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
2463 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2466 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2467 0, 0, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 1, 0, 1,
2470 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1,
2471 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 0,
2474 1, 1, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2475 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2478 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2479 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2482 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2483 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2486 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2487 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0,
2490 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
2491 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2494 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0,
2495 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2498 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2499 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2502 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
2503 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0,
2506 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
2507 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2510 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2511 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0,
2514 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2515 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2518 0, 0, 2, 2, 2, 2, 2, 2, 0, 0, 2, 2, 2, 2, 2, 2, 0,
2519 0, 2, 2, 2, 2, 2, 2, 0, 0, 2, 2, 2, 0, 0, 0,
2522 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2,
2523 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2526 2, 2, 2, 2, 2, 2, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2527 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2530 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0,
2531 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2534 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2,
2535 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2538 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2,
2539 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2542 0, 0, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2,
2543 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2546 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 2, 2, 2,
2547 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2550 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2551 2, 2, 2, 2, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2554 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2555 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2,
2558 0, 0, 2, 0, 0, 2, 2, 0, 0, 2, 2, 2, 2, 0, 2, 2, 2,
2559 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 0, 2, 2, 2,
2562 2, 0, 2, 2, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2563 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2566 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 2, 0, 0, 2, 2, 2, 2,
2567 2, 2, 2, 2, 0, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2,
2570 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2571 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 2, 0,
2574 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2,
2575 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2578 2, 2, 2, 2, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2579 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2583 static const unsigned char nameprep_id11_bidi_data[] = {
2584 idn_biditype_others,
2585 idn_biditype_r_al,
2586 idn_biditype_l,