]> git.sesse.net Git - vlc/blob - extras/contrib/src/Patches/libiconv.patch
c8b161bacd7b5aa274bed02fa326bf564191666a
[vlc] / extras / contrib / src / Patches / libiconv.patch
1 diff -Naur libiconv.old/lib/aliases.gperf libiconv/lib/aliases.gperf
2 --- libiconv.old/lib/aliases.gperf      2003-05-22 22:17:15.000000000 +0200
3 +++ libiconv/lib/aliases.gperf  2005-08-04 18:54:43.000000000 +0200
4 @@ -21,6 +21,7 @@
5  US, ei_ascii
6  CSASCII, ei_ascii
7  UTF-8, ei_utf8
8 +UTF-8-MAC, ei_utf8mac
9  UCS-2, ei_ucs2
10  ISO-10646-UCS-2, ei_ucs2
11  CSUNICODE, ei_ucs2
12 diff -Naur libiconv.old/lib/aliases.h libiconv/lib/aliases.h
13 --- libiconv.old/lib/aliases.h  2003-05-22 22:17:17.000000000 +0200
14 +++ libiconv/lib/aliases.h      2005-08-04 18:54:43.000000000 +0200
15 @@ -1,4 +1,4 @@
16 -/* ANSI-C code produced by gperf version 3.0 */
17 +/* ANSI-C code produced by gperf version 3.0.1 */
18  /* Command-line: gperf -m 10 lib/aliases.gperf  */
19  /* Computed positions: -k'1,3-11,$' */
20  
21 @@ -32,7 +32,7 @@
22  #line 1 "lib/aliases.gperf"
23  struct alias { int name; unsigned int encoding_index; };
24  
25 -#define TOTAL_KEYWORDS 324
26 +#define TOTAL_KEYWORDS 325
27  #define MIN_WORD_LENGTH 2
28  #define MAX_WORD_LENGTH 45
29  #define MIN_HASH_VALUE 15
30 @@ -55,11 +55,11 @@
31        880, 880, 880, 880, 880, 880, 880, 880, 880, 880,
32        880, 880, 880, 880, 880, 880, 880, 880, 880, 880,
33        880, 880, 880, 880, 880, 880, 880, 880, 880, 880,
34 -      880, 880, 880, 880, 880,   6,  69, 880,  44,   5,
35 -        6,  18,  60,   9,   8,  50,  14,  13, 271, 880,
36 +      880, 880, 880, 880, 880,   6, 142, 880,  44,   5,
37 +        6,  18,  60,   9,   8,  50,  14,  13, 291, 880,
38        880, 880, 880, 880, 880, 107, 152,   5,  29,   7,
39 -       43, 112,  42,   5, 341, 106,  10, 158,   8,   5,
40 -        6, 880,  61,  38,  98, 152, 194, 112,  30,  10,
41 +      205, 112,  42,   5, 341, 106,  10, 158,   8,   5,
42 +        6, 880,  61,  38,  98, 152, 110, 112,  30,  10,
43          6, 880, 880, 880, 880,  60, 880, 880, 880, 880,
44        880, 880, 880, 880, 880, 880, 880, 880, 880, 880,
45        880, 880, 880, 880, 880, 880, 880, 880, 880, 880,
46 @@ -205,6 +205,7 @@
47      char stringpool_str171[sizeof("MAC")];
48      char stringpool_str172[sizeof("ISO_8859-3")];
49      char stringpool_str173[sizeof("ISO-IR-109")];
50 +    char stringpool_str174[sizeof("VISCII")];
51      char stringpool_str175[sizeof("ISO8859-7")];
52      char stringpool_str176[sizeof("ISO-8859-10")];
53      char stringpool_str177[sizeof("CSASCII")];
54 @@ -212,6 +213,7 @@
55      char stringpool_str179[sizeof("ISO-IR-179")];
56      char stringpool_str182[sizeof("ISO-8859-7")];
57      char stringpool_str184[sizeof("ISO-IR-203")];
58 +    char stringpool_str186[sizeof("CSVISCII")];
59      char stringpool_str189[sizeof("ISO-IR-149")];
60      char stringpool_str190[sizeof("MS-EE")];
61      char stringpool_str191[sizeof("ISO-IR-148")];
62 @@ -237,34 +239,28 @@
63      char stringpool_str222[sizeof("ISO-IR-14")];
64      char stringpool_str225[sizeof("ELOT_928")];
65      char stringpool_str227[sizeof("LATIN7")];
66 -    char stringpool_str228[sizeof("UTF-16")];
67 +    char stringpool_str228[sizeof("TCVN")];
68      char stringpool_str230[sizeof("ISO_8859-10")];
69      char stringpool_str232[sizeof("CSUNICODE")];
70      char stringpool_str233[sizeof("UCS-2LE")];
71 -    char stringpool_str234[sizeof("UTF-8")];
72      char stringpool_str235[sizeof("ISO-IR-100")];
73      char stringpool_str236[sizeof("ISO_8859-7")];
74 -    char stringpool_str237[sizeof("UTF-32")];
75      char stringpool_str238[sizeof("CHAR")];
76      char stringpool_str241[sizeof("UNICODE-1-1")];
77      char stringpool_str242[sizeof("CSUNICODE11")];
78      char stringpool_str244[sizeof("TIS620")];
79      char stringpool_str245[sizeof("EUCKR")];
80 -    char stringpool_str246[sizeof("UTF-16LE")];
81      char stringpool_str247[sizeof("LATIN4")];
82      char stringpool_str250[sizeof("KSC_5601")];
83      char stringpool_str251[sizeof("TIS-620")];
84      char stringpool_str252[sizeof("EUC-KR")];
85      char stringpool_str254[sizeof("IBM-CP1133")];
86      char stringpool_str256[sizeof("ISO_8859-4")];
87 -    char stringpool_str257[sizeof("UTF-32LE")];
88 -    char stringpool_str258[sizeof("VISCII")];
89      char stringpool_str259[sizeof("KOI8-R")];
90      char stringpool_str262[sizeof("ISO_8859-14")];
91      char stringpool_str264[sizeof("CSKOI8R")];
92      char stringpool_str266[sizeof("GREEK8")];
93      char stringpool_str267[sizeof("MS-CYRL")];
94 -    char stringpool_str270[sizeof("CSVISCII")];
95      char stringpool_str280[sizeof("IBM850")];
96      char stringpool_str283[sizeof("ISO-IR-144")];
97      char stringpool_str286[sizeof("BIG5")];
98 @@ -283,12 +279,11 @@
99      char stringpool_str303[sizeof("KOREAN")];
100      char stringpool_str304[sizeof("CSISOLATIN2")];
101      char stringpool_str305[sizeof("CN-BIG5")];
102 -    char stringpool_str306[sizeof("UTF-7")];
103 +    char stringpool_str307[sizeof("TCVN-5712")];
104      char stringpool_str308[sizeof("CSISOLATIN6")];
105      char stringpool_str309[sizeof("CSISOLATINCYRILLIC")];
106      char stringpool_str310[sizeof("CSISOLATIN5")];
107 -    char stringpool_str312[sizeof("TCVN")];
108 -    char stringpool_str315[sizeof("TIS620.2529-1")];
109 +    char stringpool_str312[sizeof("TCVN5712-1")];
110      char stringpool_str318[sizeof("CSGB2312")];
111      char stringpool_str320[sizeof("ISO-10646-UCS-2")];
112      char stringpool_str321[sizeof("UCS-4")];
113 @@ -301,12 +296,12 @@
114      char stringpool_str328[sizeof("CSISOLATIN3")];
115      char stringpool_str329[sizeof("ISO646-US")];
116      char stringpool_str331[sizeof("US-ASCII")];
117 -    char stringpool_str332[sizeof("TIS620.2533-1")];
118      char stringpool_str333[sizeof("KOI8-T")];
119      char stringpool_str334[sizeof("MS-ANSI")];
120      char stringpool_str335[sizeof("KS_C_5601-1989")];
121      char stringpool_str336[sizeof("GB_1988-80")];
122      char stringpool_str339[sizeof("EUCTW")];
123 +    char stringpool_str342[sizeof("VISCII1.1-1")];
124      char stringpool_str343[sizeof("GREEK")];
125      char stringpool_str346[sizeof("EUC-TW")];
126      char stringpool_str347[sizeof("WINDOWS-1251")];
127 @@ -314,7 +309,6 @@
128      char stringpool_str349[sizeof("JP")];
129      char stringpool_str350[sizeof("WINDOWS-1256")];
130      char stringpool_str351[sizeof("WINDOWS-1255")];
131 -    char stringpool_str353[sizeof("VISCII1.1-1")];
132      char stringpool_str354[sizeof("CSISO2022KR")];
133      char stringpool_str356[sizeof("WINDOWS-1258")];
134      char stringpool_str360[sizeof("WINDOWS-1253")];
135 @@ -323,7 +317,6 @@
136      char stringpool_str368[sizeof("ROMAN8")];
137      char stringpool_str369[sizeof("HZ-GB-2312")];
138      char stringpool_str370[sizeof("EUCJP")];
139 -    char stringpool_str371[sizeof("TIS620.2533-0")];
140      char stringpool_str372[sizeof("KS_C_5601-1987")];
141      char stringpool_str373[sizeof("MACICELAND")];
142      char stringpool_str374[sizeof("ISO-10646-UCS-4")];
143 @@ -331,76 +324,81 @@
144      char stringpool_str377[sizeof("EUC-JP")];
145      char stringpool_str386[sizeof("WINDOWS-1250")];
146      char stringpool_str387[sizeof("ARABIC")];
147 -    char stringpool_str388[sizeof("UTF-16BE")];
148 -    char stringpool_str391[sizeof("TCVN-5712")];
149 +    char stringpool_str388[sizeof("TIS620.2529-1")];
150 +    char stringpool_str390[sizeof("UTF-16")];
151      char stringpool_str392[sizeof("WINDOWS-1257")];
152      char stringpool_str394[sizeof("CSPC862LATINHEBREW")];
153 -    char stringpool_str396[sizeof("TCVN5712-1")];
154 -    char stringpool_str399[sizeof("UTF-32BE")];
155 +    char stringpool_str396[sizeof("UTF-8")];
156 +    char stringpool_str399[sizeof("UTF-32")];
157      char stringpool_str402[sizeof("WINDOWS-1254")];
158      char stringpool_str404[sizeof("CSEUCKR")];
159 +    char stringpool_str405[sizeof("TIS620.2533-1")];
160      char stringpool_str406[sizeof("ASMO-708")];
161 +    char stringpool_str408[sizeof("UTF-16LE")];
162      char stringpool_str409[sizeof("CSISOLATINARABIC")];
163      char stringpool_str410[sizeof("MACINTOSH")];
164      char stringpool_str411[sizeof("UCS-2-INTERNAL")];
165      char stringpool_str412[sizeof("CSISOLATIN4")];
166      char stringpool_str416[sizeof("ECMA-114")];
167      char stringpool_str418[sizeof("CN-GB-ISOIR165")];
168 -    char stringpool_str420[sizeof("ANSI_X3.4-1986")];
169 +    char stringpool_str419[sizeof("UTF-32LE")];
170      char stringpool_str421[sizeof("CSISO57GB1988")];
171      char stringpool_str423[sizeof("CSISO58GB231280")];
172      char stringpool_str424[sizeof("HP-ROMAN8")];
173 -    char stringpool_str426[sizeof("ANSI_X3.4-1968")];
174      char stringpool_str427[sizeof("MACTHAI")];
175      char stringpool_str429[sizeof("UCS-4BE")];
176      char stringpool_str430[sizeof("CSHPROMAN8")];
177      char stringpool_str432[sizeof("CN-GB")];
178      char stringpool_str434[sizeof("UNICODELITTLE")];
179 -    char stringpool_str435[sizeof("ISO_8859-5:1988")];
180 -    char stringpool_str438[sizeof("ISO_8859-9:1989")];
181 -    char stringpool_str440[sizeof("ISO_8859-8:1988")];
182      char stringpool_str441[sizeof("KOI8-U")];
183 -    char stringpool_str444[sizeof("ISO_8859-3:1988")];
184 +    char stringpool_str444[sizeof("TIS620.2533-0")];
185      char stringpool_str448[sizeof("ISO-2022-JP")];
186      char stringpool_str449[sizeof("ISO-2022-JP-1")];
187      char stringpool_str450[sizeof("ISO-2022-JP-2")];
188      char stringpool_str451[sizeof("CSISOLATINHEBREW")];
189      char stringpool_str454[sizeof("ISO646-JP")];
190 +    char stringpool_str455[sizeof("ISO_8859-5:1988")];
191      char stringpool_str457[sizeof("EXTENDED_UNIX_CODE_PACKED_FORMAT_FOR_JAPANESE")];
192 +    char stringpool_str458[sizeof("ISO_8859-9:1989")];
193 +    char stringpool_str460[sizeof("ISO_8859-8:1988")];
194 +    char stringpool_str464[sizeof("ISO_8859-3:1988")];
195      char stringpool_str465[sizeof("UCS-4-INTERNAL")];
196 -    char stringpool_str467[sizeof("ISO_8859-1:1987")];
197 -    char stringpool_str468[sizeof("ISO_8859-2:1987")];
198 -    char stringpool_str470[sizeof("ISO_8859-6:1987")];
199 +    char stringpool_str468[sizeof("UTF-7")];
200      char stringpool_str479[sizeof("CSISO2022JP")];
201      char stringpool_str480[sizeof("CSISO2022JP2")];
202 -    char stringpool_str486[sizeof("ISO_8859-4:1988")];
203 +    char stringpool_str485[sizeof("ISO_646.IRV:1991")];
204 +    char stringpool_str487[sizeof("ISO_8859-1:1987")];
205 +    char stringpool_str488[sizeof("ISO_8859-2:1987")];
206      char stringpool_str489[sizeof("MACCENTRALEUROPE")];
207 +    char stringpool_str490[sizeof("ISO_8859-6:1987")];
208      char stringpool_str492[sizeof("HEBREW")];
209 +    char stringpool_str493[sizeof("ANSI_X3.4-1986")];
210      char stringpool_str494[sizeof("MS-HEBR")];
211 -    char stringpool_str496[sizeof("ISO_646.IRV:1991")];
212      char stringpool_str498[sizeof("CSEUCTW")];
213 +    char stringpool_str499[sizeof("ANSI_X3.4-1968")];
214      char stringpool_str503[sizeof("KOI8-RU")];
215      char stringpool_str505[sizeof("WINDOWS-874")];
216 +    char stringpool_str506[sizeof("ISO_8859-4:1988")];
217      char stringpool_str508[sizeof("JIS0208")];
218      char stringpool_str509[sizeof("GEORGIAN-PS")];
219 -    char stringpool_str512[sizeof("ISO_8859-7:1987")];
220      char stringpool_str514[sizeof("CSISOLATINGREEK")];
221      char stringpool_str515[sizeof("JIS_C6226-1983")];
222      char stringpool_str518[sizeof("MACROMAN")];
223      char stringpool_str519[sizeof("UCS-2-SWAPPED")];
224      char stringpool_str524[sizeof("CSMACINTOSH")];
225 -    char stringpool_str527[sizeof("BIGFIVE")];
226      char stringpool_str528[sizeof("CSISO159JISX02121990")];
227      char stringpool_str529[sizeof("CSISO14JISC6220RO")];
228      char stringpool_str530[sizeof("CSPC850MULTILINGUAL")];
229 -    char stringpool_str534[sizeof("BIG-FIVE")];
230 +    char stringpool_str532[sizeof("ISO_8859-7:1987")];
231      char stringpool_str541[sizeof("JIS_C6220-1969-RO")];
232      char stringpool_str545[sizeof("JIS_X0212")];
233      char stringpool_str549[sizeof("BIG5HKSCS")];
234 +    char stringpool_str550[sizeof("UTF-16BE")];
235      char stringpool_str553[sizeof("JISX0201-1976")];
236      char stringpool_str554[sizeof("GEORGIAN-ACADEMY")];
237      char stringpool_str556[sizeof("BIG5-HKSCS")];
238      char stringpool_str560[sizeof("CSISO87JISX0208")];
239 +    char stringpool_str561[sizeof("UTF-32BE")];
240      char stringpool_str570[sizeof("MACGREEK")];
241      char stringpool_str571[sizeof("MS-GREEK")];
242      char stringpool_str573[sizeof("UCS-4-SWAPPED")];
243 @@ -410,25 +408,28 @@
244      char stringpool_str594[sizeof("UNICODEBIG")];
245      char stringpool_str599[sizeof("JIS_X0212-1990")];
246      char stringpool_str600[sizeof("JIS_X0208")];
247 +    char stringpool_str605[sizeof("BIGFIVE")];
248 +    char stringpool_str612[sizeof("BIG-FIVE")];
249      char stringpool_str614[sizeof("MACARABIC")];
250 -    char stringpool_str619[sizeof("CSHALFWIDTHKATAKANA")];
251      char stringpool_str620[sizeof("JIS_X0208-1983")];
252 -    char stringpool_str621[sizeof("SHIFT-JIS")];
253 +    char stringpool_str621[sizeof("TCVN5712-1:1993")];
254      char stringpool_str626[sizeof("MACUKRAINE")];
255 -    char stringpool_str635[sizeof("CSEUCPKDFMTJAPANESE")];
256      char stringpool_str646[sizeof("JIS_X0208-1990")];
257 -    char stringpool_str663[sizeof("CSSHIFTJIS")];
258 -    char stringpool_str664[sizeof("JIS_X0212.1990-0")];
259      char stringpool_str665[sizeof("MACHEBREW")];
260 -    char stringpool_str675[sizeof("SHIFT_JIS")];
261 -    char stringpool_str685[sizeof("TCVN5712-1:1993")];
262 +    char stringpool_str667[sizeof("UTF-8-MAC")];
263 +    char stringpool_str669[sizeof("JAVA")];
264      char stringpool_str694[sizeof("MS-TURK")];
265      char stringpool_str717[sizeof("MACTURKISH")];
266      char stringpool_str731[sizeof("MACROMANIA")];
267 +    char stringpool_str737[sizeof("JIS_X0212.1990-0")];
268      char stringpool_str750[sizeof("MS-ARAB")];
269 -    char stringpool_str753[sizeof("JAVA")];
270 +    char stringpool_str781[sizeof("CSHALFWIDTHKATAKANA")];
271 +    char stringpool_str783[sizeof("SHIFT-JIS")];
272 +    char stringpool_str797[sizeof("CSEUCPKDFMTJAPANESE")];
273      char stringpool_str798[sizeof("MS_KANJI")];
274      char stringpool_str799[sizeof("JOHAB")];
275 +    char stringpool_str825[sizeof("CSSHIFTJIS")];
276 +    char stringpool_str837[sizeof("SHIFT_JIS")];
277      char stringpool_str879[sizeof("WINBALTRIM")];
278    };
279  static const struct stringpool_t stringpool_contents =
280 @@ -532,6 +533,7 @@
281      "MAC",
282      "ISO_8859-3",
283      "ISO-IR-109",
284 +    "VISCII",
285      "ISO8859-7",
286      "ISO-8859-10",
287      "CSASCII",
288 @@ -539,6 +541,7 @@
289      "ISO-IR-179",
290      "ISO-8859-7",
291      "ISO-IR-203",
292 +    "CSVISCII",
293      "ISO-IR-149",
294      "MS-EE",
295      "ISO-IR-148",
296 @@ -564,34 +567,28 @@
297      "ISO-IR-14",
298      "ELOT_928",
299      "LATIN7",
300 -    "UTF-16",
301 +    "TCVN",
302      "ISO_8859-10",
303      "CSUNICODE",
304      "UCS-2LE",
305 -    "UTF-8",
306      "ISO-IR-100",
307      "ISO_8859-7",
308 -    "UTF-32",
309      "CHAR",
310      "UNICODE-1-1",
311      "CSUNICODE11",
312      "TIS620",
313      "EUCKR",
314 -    "UTF-16LE",
315      "LATIN4",
316      "KSC_5601",
317      "TIS-620",
318      "EUC-KR",
319      "IBM-CP1133",
320      "ISO_8859-4",
321 -    "UTF-32LE",
322 -    "VISCII",
323      "KOI8-R",
324      "ISO_8859-14",
325      "CSKOI8R",
326      "GREEK8",
327      "MS-CYRL",
328 -    "CSVISCII",
329      "IBM850",
330      "ISO-IR-144",
331      "BIG5",
332 @@ -610,12 +607,11 @@
333      "KOREAN",
334      "CSISOLATIN2",
335      "CN-BIG5",
336 -    "UTF-7",
337 +    "TCVN-5712",
338      "CSISOLATIN6",
339      "CSISOLATINCYRILLIC",
340      "CSISOLATIN5",
341 -    "TCVN",
342 -    "TIS620.2529-1",
343 +    "TCVN5712-1",
344      "CSGB2312",
345      "ISO-10646-UCS-2",
346      "UCS-4",
347 @@ -628,12 +624,12 @@
348      "CSISOLATIN3",
349      "ISO646-US",
350      "US-ASCII",
351 -    "TIS620.2533-1",
352      "KOI8-T",
353      "MS-ANSI",
354      "KS_C_5601-1989",
355      "GB_1988-80",
356      "EUCTW",
357 +    "VISCII1.1-1",
358      "GREEK",
359      "EUC-TW",
360      "WINDOWS-1251",
361 @@ -641,7 +637,6 @@
362      "JP",
363      "WINDOWS-1256",
364      "WINDOWS-1255",
365 -    "VISCII1.1-1",
366      "CSISO2022KR",
367      "WINDOWS-1258",
368      "WINDOWS-1253",
369 @@ -650,7 +645,6 @@
370      "ROMAN8",
371      "HZ-GB-2312",
372      "EUCJP",
373 -    "TIS620.2533-0",
374      "KS_C_5601-1987",
375      "MACICELAND",
376      "ISO-10646-UCS-4",
377 @@ -658,76 +652,81 @@
378      "EUC-JP",
379      "WINDOWS-1250",
380      "ARABIC",
381 -    "UTF-16BE",
382 -    "TCVN-5712",
383 +    "TIS620.2529-1",
384 +    "UTF-16",
385      "WINDOWS-1257",
386      "CSPC862LATINHEBREW",
387 -    "TCVN5712-1",
388 -    "UTF-32BE",
389 +    "UTF-8",
390 +    "UTF-32",
391      "WINDOWS-1254",
392      "CSEUCKR",
393 +    "TIS620.2533-1",
394      "ASMO-708",
395 +    "UTF-16LE",
396      "CSISOLATINARABIC",
397      "MACINTOSH",
398      "UCS-2-INTERNAL",
399      "CSISOLATIN4",
400      "ECMA-114",
401      "CN-GB-ISOIR165",
402 -    "ANSI_X3.4-1986",
403 +    "UTF-32LE",
404      "CSISO57GB1988",
405      "CSISO58GB231280",
406      "HP-ROMAN8",
407 -    "ANSI_X3.4-1968",
408      "MACTHAI",
409      "UCS-4BE",
410      "CSHPROMAN8",
411      "CN-GB",
412      "UNICODELITTLE",
413 -    "ISO_8859-5:1988",
414 -    "ISO_8859-9:1989",
415 -    "ISO_8859-8:1988",
416      "KOI8-U",
417 -    "ISO_8859-3:1988",
418 +    "TIS620.2533-0",
419      "ISO-2022-JP",
420      "ISO-2022-JP-1",
421      "ISO-2022-JP-2",
422      "CSISOLATINHEBREW",
423      "ISO646-JP",
424 +    "ISO_8859-5:1988",
425      "EXTENDED_UNIX_CODE_PACKED_FORMAT_FOR_JAPANESE",
426 +    "ISO_8859-9:1989",
427 +    "ISO_8859-8:1988",
428 +    "ISO_8859-3:1988",
429      "UCS-4-INTERNAL",
430 -    "ISO_8859-1:1987",
431 -    "ISO_8859-2:1987",
432 -    "ISO_8859-6:1987",
433 +    "UTF-7",
434      "CSISO2022JP",
435      "CSISO2022JP2",
436 -    "ISO_8859-4:1988",
437 +    "ISO_646.IRV:1991",
438 +    "ISO_8859-1:1987",
439 +    "ISO_8859-2:1987",
440      "MACCENTRALEUROPE",
441 +    "ISO_8859-6:1987",
442      "HEBREW",
443 +    "ANSI_X3.4-1986",
444      "MS-HEBR",
445 -    "ISO_646.IRV:1991",
446      "CSEUCTW",
447 +    "ANSI_X3.4-1968",
448      "KOI8-RU",
449      "WINDOWS-874",
450 +    "ISO_8859-4:1988",
451      "JIS0208",
452      "GEORGIAN-PS",
453 -    "ISO_8859-7:1987",
454      "CSISOLATINGREEK",
455      "JIS_C6226-1983",
456      "MACROMAN",
457      "UCS-2-SWAPPED",
458      "CSMACINTOSH",
459 -    "BIGFIVE",
460      "CSISO159JISX02121990",
461      "CSISO14JISC6220RO",
462      "CSPC850MULTILINGUAL",
463 -    "BIG-FIVE",
464 +    "ISO_8859-7:1987",
465      "JIS_C6220-1969-RO",
466      "JIS_X0212",
467      "BIG5HKSCS",
468 +    "UTF-16BE",
469      "JISX0201-1976",
470      "GEORGIAN-ACADEMY",
471      "BIG5-HKSCS",
472      "CSISO87JISX0208",
473 +    "UTF-32BE",
474      "MACGREEK",
475      "MS-GREEK",
476      "UCS-4-SWAPPED",
477 @@ -737,25 +736,28 @@
478      "UNICODEBIG",
479      "JIS_X0212-1990",
480      "JIS_X0208",
481 +    "BIGFIVE",
482 +    "BIG-FIVE",
483      "MACARABIC",
484 -    "CSHALFWIDTHKATAKANA",
485      "JIS_X0208-1983",
486 -    "SHIFT-JIS",
487 +    "TCVN5712-1:1993",
488      "MACUKRAINE",
489 -    "CSEUCPKDFMTJAPANESE",
490      "JIS_X0208-1990",
491 -    "CSSHIFTJIS",
492 -    "JIS_X0212.1990-0",
493      "MACHEBREW",
494 -    "SHIFT_JIS",
495 -    "TCVN5712-1:1993",
496 +    "UTF-8-MAC",
497 +    "JAVA",
498      "MS-TURK",
499      "MACTURKISH",
500      "MACROMANIA",
501 +    "JIS_X0212.1990-0",
502      "MS-ARAB",
503 -    "JAVA",
504 +    "CSHALFWIDTHKATAKANA",
505 +    "SHIFT-JIS",
506 +    "CSEUCPKDFMTJAPANESE",
507      "MS_KANJI",
508      "JOHAB",
509 +    "CSSHIFTJIS",
510 +    "SHIFT_JIS",
511      "WINBALTRIM"
512    };
513  #define stringpool ((const char *) &stringpool_contents)
514 @@ -764,820 +766,830 @@
515    {
516      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},
517      {-1}, {-1}, {-1}, {-1}, {-1}, {-1},
518 -#line 271 "lib/aliases.gperf"
519 +#line 272 "lib/aliases.gperf"
520      {(int)(long)&((struct stringpool_t *)0)->stringpool_str15, ei_iso646_cn},
521      {-1},
522 -#line 60 "lib/aliases.gperf"
523 +#line 61 "lib/aliases.gperf"
524      {(int)(long)&((struct stringpool_t *)0)->stringpool_str17, ei_iso8859_1},
525 -#line 68 "lib/aliases.gperf"
526 +#line 69 "lib/aliases.gperf"
527      {(int)(long)&((struct stringpool_t *)0)->stringpool_str18, ei_iso8859_2},
528      {-1},
529 -#line 133 "lib/aliases.gperf"
530 +#line 134 "lib/aliases.gperf"
531      {(int)(long)&((struct stringpool_t *)0)->stringpool_str20, ei_iso8859_10},
532 -#line 125 "lib/aliases.gperf"
533 +#line 126 "lib/aliases.gperf"
534      {(int)(long)&((struct stringpool_t *)0)->stringpool_str21, ei_iso8859_9},
535      {-1}, {-1}, {-1}, {-1},
536 -#line 147 "lib/aliases.gperf"
537 +#line 148 "lib/aliases.gperf"
538      {(int)(long)&((struct stringpool_t *)0)->stringpool_str26, ei_iso8859_14},
539      {-1}, {-1},
540 -#line 196 "lib/aliases.gperf"
541 +#line 197 "lib/aliases.gperf"
542      {(int)(long)&((struct stringpool_t *)0)->stringpool_str29, ei_cp862},
543 -#line 76 "lib/aliases.gperf"
544 +#line 77 "lib/aliases.gperf"
545      {(int)(long)&((struct stringpool_t *)0)->stringpool_str30, ei_iso8859_3},
546      {-1}, {-1},
547 -#line 200 "lib/aliases.gperf"
548 +#line 201 "lib/aliases.gperf"
549      {(int)(long)&((struct stringpool_t *)0)->stringpool_str33, ei_cp866},
550 -#line 51 "lib/aliases.gperf"
551 +#line 52 "lib/aliases.gperf"
552      {(int)(long)&((struct stringpool_t *)0)->stringpool_str34, ei_c99},
553      {-1}, {-1}, {-1},
554 -#line 301 "lib/aliases.gperf"
555 +#line 302 "lib/aliases.gperf"
556      {(int)(long)&((struct stringpool_t *)0)->stringpool_str38, ei_euc_cn},
557      {-1}, {-1},
558 -#line 167 "lib/aliases.gperf"
559 +#line 168 "lib/aliases.gperf"
560      {(int)(long)&((struct stringpool_t *)0)->stringpool_str41, ei_cp1251},
561      {-1},
562 -#line 170 "lib/aliases.gperf"
563 +#line 171 "lib/aliases.gperf"
564      {(int)(long)&((struct stringpool_t *)0)->stringpool_str43, ei_cp1252},
565 -#line 194 "lib/aliases.gperf"
566 +#line 195 "lib/aliases.gperf"
567      {(int)(long)&((struct stringpool_t *)0)->stringpool_str44, ei_cp862},
568 -#line 300 "lib/aliases.gperf"
569 +#line 301 "lib/aliases.gperf"
570      {(int)(long)&((struct stringpool_t *)0)->stringpool_str45, ei_euc_cn},
571      {-1},
572 -#line 182 "lib/aliases.gperf"
573 +#line 183 "lib/aliases.gperf"
574      {(int)(long)&((struct stringpool_t *)0)->stringpool_str47, ei_cp1256},
575 -#line 198 "lib/aliases.gperf"
576 +#line 199 "lib/aliases.gperf"
577      {(int)(long)&((struct stringpool_t *)0)->stringpool_str48, ei_cp866},
578 -#line 179 "lib/aliases.gperf"
579 +#line 180 "lib/aliases.gperf"
580      {(int)(long)&((struct stringpool_t *)0)->stringpool_str49, ei_cp1255},
581 -#line 311 "lib/aliases.gperf"
582 +#line 312 "lib/aliases.gperf"
583      {(int)(long)&((struct stringpool_t *)0)->stringpool_str50, ei_hz},
584      {-1},
585 -#line 331 "lib/aliases.gperf"
586 +#line 332 "lib/aliases.gperf"
587      {(int)(long)&((struct stringpool_t *)0)->stringpool_str52, ei_johab},
588 -#line 294 "lib/aliases.gperf"
589 +#line 295 "lib/aliases.gperf"
590      {(int)(long)&((struct stringpool_t *)0)->stringpool_str53, ei_cp932},
591      {-1},
592 -#line 57 "lib/aliases.gperf"
593 +#line 58 "lib/aliases.gperf"
594      {(int)(long)&((struct stringpool_t *)0)->stringpool_str55, ei_iso8859_1},
595      {-1},
596 -#line 306 "lib/aliases.gperf"
597 +#line 307 "lib/aliases.gperf"
598      {(int)(long)&((struct stringpool_t *)0)->stringpool_str57, ei_ces_gbk},
599 -#line 265 "lib/aliases.gperf"
600 +#line 266 "lib/aliases.gperf"
601      {(int)(long)&((struct stringpool_t *)0)->stringpool_str58, ei_jisx0212},
602 -#line 188 "lib/aliases.gperf"
603 +#line 189 "lib/aliases.gperf"
604      {(int)(long)&((struct stringpool_t *)0)->stringpool_str59, ei_cp1258},
605      {-1}, {-1},
606 -#line 140 "lib/aliases.gperf"
607 +#line 141 "lib/aliases.gperf"
608      {(int)(long)&((struct stringpool_t *)0)->stringpool_str62, ei_iso8859_13},
609      {-1}, {-1}, {-1}, {-1},
610 -#line 173 "lib/aliases.gperf"
611 +#line 174 "lib/aliases.gperf"
612      {(int)(long)&((struct stringpool_t *)0)->stringpool_str67, ei_cp1253},
613      {-1}, {-1}, {-1}, {-1},
614 -#line 84 "lib/aliases.gperf"
615 +#line 85 "lib/aliases.gperf"
616      {(int)(long)&((struct stringpool_t *)0)->stringpool_str72, ei_iso8859_4},
617      {-1}, {-1},
618 -#line 227 "lib/aliases.gperf"
619 +#line 228 "lib/aliases.gperf"
620      {(int)(long)&((struct stringpool_t *)0)->stringpool_str75, ei_cp1133},
621      {-1},
622 -#line 219 "lib/aliases.gperf"
623 +#line 220 "lib/aliases.gperf"
624      {(int)(long)&((struct stringpool_t *)0)->stringpool_str77, ei_hp_roman8},
625      {-1}, {-1}, {-1}, {-1}, {-1}, {-1},
626 -#line 276 "lib/aliases.gperf"
627 +#line 277 "lib/aliases.gperf"
628      {(int)(long)&((struct stringpool_t *)0)->stringpool_str84, ei_gb2312},
629 -#line 62 "lib/aliases.gperf"
630 +#line 63 "lib/aliases.gperf"
631      {(int)(long)&((struct stringpool_t *)0)->stringpool_str85, ei_iso8859_1},
632      {-1},
633 -#line 70 "lib/aliases.gperf"
634 +#line 71 "lib/aliases.gperf"
635      {(int)(long)&((struct stringpool_t *)0)->stringpool_str87, ei_iso8859_2},
636      {-1}, {-1}, {-1},
637 -#line 102 "lib/aliases.gperf"
638 +#line 103 "lib/aliases.gperf"
639      {(int)(long)&((struct stringpool_t *)0)->stringpool_str91, ei_iso8859_6},
640 -#line 53 "lib/aliases.gperf"
641 +#line 54 "lib/aliases.gperf"
642      {(int)(long)&((struct stringpool_t *)0)->stringpool_str92, ei_iso8859_1},
643 -#line 93 "lib/aliases.gperf"
644 +#line 94 "lib/aliases.gperf"
645      {(int)(long)&((struct stringpool_t *)0)->stringpool_str93, ei_iso8859_5},
646 -#line 63 "lib/aliases.gperf"
647 +#line 64 "lib/aliases.gperf"
648      {(int)(long)&((struct stringpool_t *)0)->stringpool_str94, ei_iso8859_2},
649 -#line 252 "lib/aliases.gperf"
650 +#line 253 "lib/aliases.gperf"
651      {(int)(long)&((struct stringpool_t *)0)->stringpool_str95, ei_jisx0201},
652      {-1},
653 -#line 159 "lib/aliases.gperf"
654 +#line 160 "lib/aliases.gperf"
655      {(int)(long)&((struct stringpool_t *)0)->stringpool_str97, ei_iso8859_16},
656 -#line 94 "lib/aliases.gperf"
657 +#line 95 "lib/aliases.gperf"
658      {(int)(long)&((struct stringpool_t *)0)->stringpool_str98, ei_iso8859_6},
659 -#line 154 "lib/aliases.gperf"
660 +#line 155 "lib/aliases.gperf"
661      {(int)(long)&((struct stringpool_t *)0)->stringpool_str99, ei_iso8859_15},
662 -#line 87 "lib/aliases.gperf"
663 +#line 88 "lib/aliases.gperf"
664      {(int)(long)&((struct stringpool_t *)0)->stringpool_str100, ei_iso8859_5},
665 -#line 127 "lib/aliases.gperf"
666 +#line 128 "lib/aliases.gperf"
667      {(int)(long)&((struct stringpool_t *)0)->stringpool_str101, ei_iso8859_9},
668      {-1},
669 -#line 119 "lib/aliases.gperf"
670 +#line 120 "lib/aliases.gperf"
671      {(int)(long)&((struct stringpool_t *)0)->stringpool_str103, ei_iso8859_8},
672 -#line 155 "lib/aliases.gperf"
673 +#line 156 "lib/aliases.gperf"
674      {(int)(long)&((struct stringpool_t *)0)->stringpool_str104, ei_iso8859_16},
675 -#line 192 "lib/aliases.gperf"
676 +#line 193 "lib/aliases.gperf"
677      {(int)(long)&((struct stringpool_t *)0)->stringpool_str105, ei_cp850},
678 -#line 150 "lib/aliases.gperf"
679 +#line 151 "lib/aliases.gperf"
680      {(int)(long)&((struct stringpool_t *)0)->stringpool_str106, ei_iso8859_15},
681      {-1},
682 -#line 120 "lib/aliases.gperf"
683 +#line 121 "lib/aliases.gperf"
684      {(int)(long)&((struct stringpool_t *)0)->stringpool_str108, ei_iso8859_9},
685 -#line 328 "lib/aliases.gperf"
686 +#line 329 "lib/aliases.gperf"
687      {(int)(long)&((struct stringpool_t *)0)->stringpool_str109, ei_cp949},
688 -#line 113 "lib/aliases.gperf"
689 +#line 114 "lib/aliases.gperf"
690      {(int)(long)&((struct stringpool_t *)0)->stringpool_str110, ei_iso8859_8},
691 -#line 78 "lib/aliases.gperf"
692 +#line 79 "lib/aliases.gperf"
693      {(int)(long)&((struct stringpool_t *)0)->stringpool_str111, ei_iso8859_3},
694  #line 16 "lib/aliases.gperf"
695      {(int)(long)&((struct stringpool_t *)0)->stringpool_str112, ei_ascii},
696 -#line 258 "lib/aliases.gperf"
697 +#line 259 "lib/aliases.gperf"
698      {(int)(long)&((struct stringpool_t *)0)->stringpool_str113, ei_jisx0208},
699 -#line 91 "lib/aliases.gperf"
700 +#line 92 "lib/aliases.gperf"
701      {(int)(long)&((struct stringpool_t *)0)->stringpool_str114, ei_iso8859_5},
702      {-1},
703 -#line 308 "lib/aliases.gperf"
704 +#line 309 "lib/aliases.gperf"
705      {(int)(long)&((struct stringpool_t *)0)->stringpool_str116, ei_iso2022_cn},
706 -#line 141 "lib/aliases.gperf"
707 +#line 142 "lib/aliases.gperf"
708      {(int)(long)&((struct stringpool_t *)0)->stringpool_str117, ei_iso8859_13},
709 -#line 71 "lib/aliases.gperf"
710 +#line 72 "lib/aliases.gperf"
711      {(int)(long)&((struct stringpool_t *)0)->stringpool_str118, ei_iso8859_3},
712 -#line 164 "lib/aliases.gperf"
713 +#line 165 "lib/aliases.gperf"
714      {(int)(long)&((struct stringpool_t *)0)->stringpool_str119, ei_cp1250},
715 -#line 322 "lib/aliases.gperf"
716 +#line 323 "lib/aliases.gperf"
717      {(int)(long)&((struct stringpool_t *)0)->stringpool_str120, ei_cp950},
718 -#line 190 "lib/aliases.gperf"
719 +#line 191 "lib/aliases.gperf"
720      {(int)(long)&((struct stringpool_t *)0)->stringpool_str121, ei_cp850},
721 -#line 269 "lib/aliases.gperf"
722 +#line 270 "lib/aliases.gperf"
723      {(int)(long)&((struct stringpool_t *)0)->stringpool_str122, ei_iso646_cn},
724 -#line 291 "lib/aliases.gperf"
725 +#line 292 "lib/aliases.gperf"
726      {(int)(long)&((struct stringpool_t *)0)->stringpool_str123, ei_sjis},
727 -#line 136 "lib/aliases.gperf"
728 +#line 137 "lib/aliases.gperf"
729      {(int)(long)&((struct stringpool_t *)0)->stringpool_str124, ei_iso8859_13},
730 -#line 106 "lib/aliases.gperf"
731 +#line 107 "lib/aliases.gperf"
732      {(int)(long)&((struct stringpool_t *)0)->stringpool_str125, ei_iso8859_7},
733 -#line 158 "lib/aliases.gperf"
734 +#line 159 "lib/aliases.gperf"
735      {(int)(long)&((struct stringpool_t *)0)->stringpool_str126, ei_iso8859_16},
736 -#line 235 "lib/aliases.gperf"
737 +#line 236 "lib/aliases.gperf"
738      {(int)(long)&((struct stringpool_t *)0)->stringpool_str127, ei_tis620},
739      {-1},
740 -#line 277 "lib/aliases.gperf"
741 +#line 278 "lib/aliases.gperf"
742      {(int)(long)&((struct stringpool_t *)0)->stringpool_str129, ei_isoir165},
743      {-1},
744 -#line 185 "lib/aliases.gperf"
745 +#line 186 "lib/aliases.gperf"
746      {(int)(long)&((struct stringpool_t *)0)->stringpool_str131, ei_cp1257},
747  #line 13 "lib/aliases.gperf"
748      {(int)(long)&((struct stringpool_t *)0)->stringpool_str132, ei_ascii},
749      {-1},
750 -#line 274 "lib/aliases.gperf"
751 +#line 275 "lib/aliases.gperf"
752      {(int)(long)&((struct stringpool_t *)0)->stringpool_str134, ei_gb2312},
753      {-1},
754  #line 19 "lib/aliases.gperf"
755      {(int)(long)&((struct stringpool_t *)0)->stringpool_str136, ei_ascii},
756 -#line 59 "lib/aliases.gperf"
757 +#line 60 "lib/aliases.gperf"
758      {(int)(long)&((struct stringpool_t *)0)->stringpool_str137, ei_iso8859_1},
759 -#line 266 "lib/aliases.gperf"
760 +#line 267 "lib/aliases.gperf"
761      {(int)(long)&((struct stringpool_t *)0)->stringpool_str138, ei_jisx0212},
762 -#line 67 "lib/aliases.gperf"
763 +#line 68 "lib/aliases.gperf"
764      {(int)(long)&((struct stringpool_t *)0)->stringpool_str139, ei_iso8859_2},
765      {-1}, {-1},
766 -#line 145 "lib/aliases.gperf"
767 +#line 146 "lib/aliases.gperf"
768      {(int)(long)&((struct stringpool_t *)0)->stringpool_str142, ei_iso8859_14},
769 -#line 132 "lib/aliases.gperf"
770 +#line 133 "lib/aliases.gperf"
771      {(int)(long)&((struct stringpool_t *)0)->stringpool_str143, ei_iso8859_10},
772      {-1},
773 -#line 124 "lib/aliases.gperf"
774 +#line 125 "lib/aliases.gperf"
775      {(int)(long)&((struct stringpool_t *)0)->stringpool_str145, ei_iso8859_9},
776 -#line 54 "lib/aliases.gperf"
777 +#line 55 "lib/aliases.gperf"
778      {(int)(long)&((struct stringpool_t *)0)->stringpool_str146, ei_iso8859_1},
779 -#line 309 "lib/aliases.gperf"
780 +#line 310 "lib/aliases.gperf"
781      {(int)(long)&((struct stringpool_t *)0)->stringpool_str147, ei_iso2022_cn},
782 -#line 64 "lib/aliases.gperf"
783 +#line 65 "lib/aliases.gperf"
784      {(int)(long)&((struct stringpool_t *)0)->stringpool_str148, ei_iso8859_2},
785 -#line 116 "lib/aliases.gperf"
786 +#line 117 "lib/aliases.gperf"
787      {(int)(long)&((struct stringpool_t *)0)->stringpool_str149, ei_iso8859_8},
788      {-1},
789 -#line 176 "lib/aliases.gperf"
790 +#line 177 "lib/aliases.gperf"
791      {(int)(long)&((struct stringpool_t *)0)->stringpool_str151, ei_cp1254},
792 -#line 95 "lib/aliases.gperf"
793 +#line 96 "lib/aliases.gperf"
794      {(int)(long)&((struct stringpool_t *)0)->stringpool_str152, ei_iso8859_6},
795      {-1},
796 -#line 88 "lib/aliases.gperf"
797 +#line 89 "lib/aliases.gperf"
798      {(int)(long)&((struct stringpool_t *)0)->stringpool_str154, ei_iso8859_5},
799 -#line 146 "lib/aliases.gperf"
800 +#line 147 "lib/aliases.gperf"
801      {(int)(long)&((struct stringpool_t *)0)->stringpool_str155, ei_iso8859_14},
802      {-1},
803 -#line 66 "lib/aliases.gperf"
804 +#line 67 "lib/aliases.gperf"
805      {(int)(long)&((struct stringpool_t *)0)->stringpool_str157, ei_iso8859_2},
806 -#line 156 "lib/aliases.gperf"
807 +#line 157 "lib/aliases.gperf"
808      {(int)(long)&((struct stringpool_t *)0)->stringpool_str158, ei_iso8859_16},
809 -#line 302 "lib/aliases.gperf"
810 +#line 303 "lib/aliases.gperf"
811      {(int)(long)&((struct stringpool_t *)0)->stringpool_str159, ei_euc_cn},
812 -#line 151 "lib/aliases.gperf"
813 +#line 152 "lib/aliases.gperf"
814      {(int)(long)&((struct stringpool_t *)0)->stringpool_str160, ei_iso8859_15},
815 -#line 148 "lib/aliases.gperf"
816 +#line 149 "lib/aliases.gperf"
817      {(int)(long)&((struct stringpool_t *)0)->stringpool_str161, ei_iso8859_14},
818 -#line 121 "lib/aliases.gperf"
819 +#line 122 "lib/aliases.gperf"
820      {(int)(long)&((struct stringpool_t *)0)->stringpool_str162, ei_iso8859_9},
821 -#line 75 "lib/aliases.gperf"
822 +#line 76 "lib/aliases.gperf"
823      {(int)(long)&((struct stringpool_t *)0)->stringpool_str163, ei_iso8859_3},
824 -#line 114 "lib/aliases.gperf"
825 +#line 115 "lib/aliases.gperf"
826      {(int)(long)&((struct stringpool_t *)0)->stringpool_str164, ei_iso8859_8},
827 -#line 329 "lib/aliases.gperf"
828 +#line 330 "lib/aliases.gperf"
829      {(int)(long)&((struct stringpool_t *)0)->stringpool_str165, ei_cp949},
830      {-1}, {-1}, {-1},
831 -#line 135 "lib/aliases.gperf"
832 +#line 136 "lib/aliases.gperf"
833      {(int)(long)&((struct stringpool_t *)0)->stringpool_str169, ei_iso8859_10},
834 -#line 152 "lib/aliases.gperf"
835 +#line 153 "lib/aliases.gperf"
836      {(int)(long)&((struct stringpool_t *)0)->stringpool_str170, ei_iso8859_15},
837 -#line 204 "lib/aliases.gperf"
838 +#line 205 "lib/aliases.gperf"
839      {(int)(long)&((struct stringpool_t *)0)->stringpool_str171, ei_mac_roman},
840 -#line 72 "lib/aliases.gperf"
841 +#line 73 "lib/aliases.gperf"
842      {(int)(long)&((struct stringpool_t *)0)->stringpool_str172, ei_iso8859_3},
843 -#line 74 "lib/aliases.gperf"
844 +#line 75 "lib/aliases.gperf"
845      {(int)(long)&((struct stringpool_t *)0)->stringpool_str173, ei_iso8859_3},
846 -    {-1},
847 -#line 112 "lib/aliases.gperf"
848 +#line 239 "lib/aliases.gperf"
849 +    {(int)(long)&((struct stringpool_t *)0)->stringpool_str174, ei_viscii},
850 +#line 113 "lib/aliases.gperf"
851      {(int)(long)&((struct stringpool_t *)0)->stringpool_str175, ei_iso8859_7},
852 -#line 128 "lib/aliases.gperf"
853 +#line 129 "lib/aliases.gperf"
854      {(int)(long)&((struct stringpool_t *)0)->stringpool_str176, ei_iso8859_10},
855  #line 22 "lib/aliases.gperf"
856      {(int)(long)&((struct stringpool_t *)0)->stringpool_str177, ei_ascii},
857 -#line 137 "lib/aliases.gperf"
858 -    {(int)(long)&((struct stringpool_t *)0)->stringpool_str178, ei_iso8859_13},
859  #line 138 "lib/aliases.gperf"
860 +    {(int)(long)&((struct stringpool_t *)0)->stringpool_str178, ei_iso8859_13},
861 +#line 139 "lib/aliases.gperf"
862      {(int)(long)&((struct stringpool_t *)0)->stringpool_str179, ei_iso8859_13},
863      {-1}, {-1},
864 -#line 103 "lib/aliases.gperf"
865 +#line 104 "lib/aliases.gperf"
866      {(int)(long)&((struct stringpool_t *)0)->stringpool_str182, ei_iso8859_7},
867      {-1},
868 -#line 153 "lib/aliases.gperf"
869 +#line 154 "lib/aliases.gperf"
870      {(int)(long)&((struct stringpool_t *)0)->stringpool_str184, ei_iso8859_15},
871 -    {-1}, {-1}, {-1}, {-1},
872 -#line 282 "lib/aliases.gperf"
873 +    {-1},
874 +#line 241 "lib/aliases.gperf"
875 +    {(int)(long)&((struct stringpool_t *)0)->stringpool_str186, ei_viscii},
876 +    {-1}, {-1},
877 +#line 283 "lib/aliases.gperf"
878      {(int)(long)&((struct stringpool_t *)0)->stringpool_str189, ei_ksc5601},
879 -#line 166 "lib/aliases.gperf"
880 +#line 167 "lib/aliases.gperf"
881      {(int)(long)&((struct stringpool_t *)0)->stringpool_str190, ei_cp1250},
882 -#line 123 "lib/aliases.gperf"
883 +#line 124 "lib/aliases.gperf"
884      {(int)(long)&((struct stringpool_t *)0)->stringpool_str191, ei_iso8859_9},
885  #line 21 "lib/aliases.gperf"
886      {(int)(long)&((struct stringpool_t *)0)->stringpool_str192, ei_ascii},
887      {-1},
888 -#line 236 "lib/aliases.gperf"
889 +#line 237 "lib/aliases.gperf"
890      {(int)(long)&((struct stringpool_t *)0)->stringpool_str194, ei_cp874},
891 -#line 86 "lib/aliases.gperf"
892 +#line 87 "lib/aliases.gperf"
893      {(int)(long)&((struct stringpool_t *)0)->stringpool_str195, ei_iso8859_4},
894 -#line 82 "lib/aliases.gperf"
895 +#line 83 "lib/aliases.gperf"
896      {(int)(long)&((struct stringpool_t *)0)->stringpool_str196, ei_iso8859_4},
897 -#line 130 "lib/aliases.gperf"
898 +#line 131 "lib/aliases.gperf"
899      {(int)(long)&((struct stringpool_t *)0)->stringpool_str197, ei_iso8859_10},
900      {-1},
901 -#line 157 "lib/aliases.gperf"
902 +#line 158 "lib/aliases.gperf"
903      {(int)(long)&((struct stringpool_t *)0)->stringpool_str199, ei_iso8859_16},
904      {-1},
905 -#line 149 "lib/aliases.gperf"
906 +#line 150 "lib/aliases.gperf"
907      {(int)(long)&((struct stringpool_t *)0)->stringpool_str201, ei_iso8859_14},
908 -#line 79 "lib/aliases.gperf"
909 +#line 80 "lib/aliases.gperf"
910      {(int)(long)&((struct stringpool_t *)0)->stringpool_str202, ei_iso8859_4},
911 -#line 195 "lib/aliases.gperf"
912 +#line 196 "lib/aliases.gperf"
913      {(int)(long)&((struct stringpool_t *)0)->stringpool_str203, ei_cp862},
914      {-1}, {-1},
915 -#line 270 "lib/aliases.gperf"
916 +#line 271 "lib/aliases.gperf"
917      {(int)(long)&((struct stringpool_t *)0)->stringpool_str206, ei_iso646_cn},
918 -#line 199 "lib/aliases.gperf"
919 +#line 200 "lib/aliases.gperf"
920      {(int)(long)&((struct stringpool_t *)0)->stringpool_str207, ei_cp866},
921 -#line 142 "lib/aliases.gperf"
922 +#line 143 "lib/aliases.gperf"
923      {(int)(long)&((struct stringpool_t *)0)->stringpool_str208, ei_iso8859_14},
924 -#line 97 "lib/aliases.gperf"
925 +#line 98 "lib/aliases.gperf"
926      {(int)(long)&((struct stringpool_t *)0)->stringpool_str209, ei_iso8859_6},
927 -#line 310 "lib/aliases.gperf"
928 +#line 311 "lib/aliases.gperf"
929      {(int)(long)&((struct stringpool_t *)0)->stringpool_str210, ei_iso2022_cn_ext},
930 -#line 259 "lib/aliases.gperf"
931 +#line 260 "lib/aliases.gperf"
932      {(int)(long)&((struct stringpool_t *)0)->stringpool_str211, ei_jisx0208},
933 -#line 131 "lib/aliases.gperf"
934 +#line 132 "lib/aliases.gperf"
935      {(int)(long)&((struct stringpool_t *)0)->stringpool_str212, ei_iso8859_10},
936 -#line 24 "lib/aliases.gperf"
937 +#line 25 "lib/aliases.gperf"
938      {(int)(long)&((struct stringpool_t *)0)->stringpool_str213, ei_ucs2},
939 -#line 58 "lib/aliases.gperf"
940 +#line 59 "lib/aliases.gperf"
941      {(int)(long)&((struct stringpool_t *)0)->stringpool_str214, ei_iso8859_1},
942      {-1}, {-1}, {-1}, {-1}, {-1}, {-1},
943 -#line 144 "lib/aliases.gperf"
944 +#line 145 "lib/aliases.gperf"
945      {(int)(long)&((struct stringpool_t *)0)->stringpool_str221, ei_iso8859_14},
946 -#line 247 "lib/aliases.gperf"
947 +#line 248 "lib/aliases.gperf"
948      {(int)(long)&((struct stringpool_t *)0)->stringpool_str222, ei_iso646_jp},
949      {-1}, {-1},
950 -#line 108 "lib/aliases.gperf"
951 +#line 109 "lib/aliases.gperf"
952      {(int)(long)&((struct stringpool_t *)0)->stringpool_str225, ei_iso8859_7},
953      {-1},
954 -#line 139 "lib/aliases.gperf"
955 +#line 140 "lib/aliases.gperf"
956      {(int)(long)&((struct stringpool_t *)0)->stringpool_str227, ei_iso8859_13},
957 -#line 38 "lib/aliases.gperf"
958 -    {(int)(long)&((struct stringpool_t *)0)->stringpool_str228, ei_utf16},
959 +#line 242 "lib/aliases.gperf"
960 +    {(int)(long)&((struct stringpool_t *)0)->stringpool_str228, ei_tcvn},
961      {-1},
962 -#line 129 "lib/aliases.gperf"
963 +#line 130 "lib/aliases.gperf"
964      {(int)(long)&((struct stringpool_t *)0)->stringpool_str230, ei_iso8859_10},
965      {-1},
966 -#line 26 "lib/aliases.gperf"
967 +#line 27 "lib/aliases.gperf"
968      {(int)(long)&((struct stringpool_t *)0)->stringpool_str232, ei_ucs2},
969 -#line 31 "lib/aliases.gperf"
970 +#line 32 "lib/aliases.gperf"
971      {(int)(long)&((struct stringpool_t *)0)->stringpool_str233, ei_ucs2le},
972 -#line 23 "lib/aliases.gperf"
973 -    {(int)(long)&((struct stringpool_t *)0)->stringpool_str234, ei_utf8},
974 -#line 56 "lib/aliases.gperf"
975 +    {-1},
976 +#line 57 "lib/aliases.gperf"
977      {(int)(long)&((struct stringpool_t *)0)->stringpool_str235, ei_iso8859_1},
978 -#line 104 "lib/aliases.gperf"
979 +#line 105 "lib/aliases.gperf"
980      {(int)(long)&((struct stringpool_t *)0)->stringpool_str236, ei_iso8859_7},
981 -#line 41 "lib/aliases.gperf"
982 -    {(int)(long)&((struct stringpool_t *)0)->stringpool_str237, ei_utf32},
983 -#line 334 "lib/aliases.gperf"
984 +    {-1},
985 +#line 335 "lib/aliases.gperf"
986      {(int)(long)&((struct stringpool_t *)0)->stringpool_str238, ei_local_char},
987      {-1}, {-1},
988 -#line 29 "lib/aliases.gperf"
989 -    {(int)(long)&((struct stringpool_t *)0)->stringpool_str241, ei_ucs2be},
990  #line 30 "lib/aliases.gperf"
991 +    {(int)(long)&((struct stringpool_t *)0)->stringpool_str241, ei_ucs2be},
992 +#line 31 "lib/aliases.gperf"
993      {(int)(long)&((struct stringpool_t *)0)->stringpool_str242, ei_ucs2be},
994      {-1},
995 -#line 230 "lib/aliases.gperf"
996 +#line 231 "lib/aliases.gperf"
997      {(int)(long)&((struct stringpool_t *)0)->stringpool_str244, ei_tis620},
998 -#line 326 "lib/aliases.gperf"
999 +#line 327 "lib/aliases.gperf"
1000      {(int)(long)&((struct stringpool_t *)0)->stringpool_str245, ei_euc_kr},
1001 -#line 40 "lib/aliases.gperf"
1002 -    {(int)(long)&((struct stringpool_t *)0)->stringpool_str246, ei_utf16le},
1003 -#line 83 "lib/aliases.gperf"
1004 +    {-1},
1005 +#line 84 "lib/aliases.gperf"
1006      {(int)(long)&((struct stringpool_t *)0)->stringpool_str247, ei_iso8859_4},
1007      {-1}, {-1},
1008 -#line 279 "lib/aliases.gperf"
1009 +#line 280 "lib/aliases.gperf"
1010      {(int)(long)&((struct stringpool_t *)0)->stringpool_str250, ei_ksc5601},
1011 -#line 229 "lib/aliases.gperf"
1012 +#line 230 "lib/aliases.gperf"
1013      {(int)(long)&((struct stringpool_t *)0)->stringpool_str251, ei_tis620},
1014 -#line 325 "lib/aliases.gperf"
1015 +#line 326 "lib/aliases.gperf"
1016      {(int)(long)&((struct stringpool_t *)0)->stringpool_str252, ei_euc_kr},
1017      {-1},
1018 -#line 228 "lib/aliases.gperf"
1019 +#line 229 "lib/aliases.gperf"
1020      {(int)(long)&((struct stringpool_t *)0)->stringpool_str254, ei_cp1133},
1021      {-1},
1022 -#line 80 "lib/aliases.gperf"
1023 +#line 81 "lib/aliases.gperf"
1024      {(int)(long)&((struct stringpool_t *)0)->stringpool_str256, ei_iso8859_4},
1025 -#line 43 "lib/aliases.gperf"
1026 -    {(int)(long)&((struct stringpool_t *)0)->stringpool_str257, ei_utf32le},
1027 -#line 238 "lib/aliases.gperf"
1028 -    {(int)(long)&((struct stringpool_t *)0)->stringpool_str258, ei_viscii},
1029 -#line 160 "lib/aliases.gperf"
1030 +    {-1}, {-1},
1031 +#line 161 "lib/aliases.gperf"
1032      {(int)(long)&((struct stringpool_t *)0)->stringpool_str259, ei_koi8_r},
1033      {-1}, {-1},
1034 -#line 143 "lib/aliases.gperf"
1035 +#line 144 "lib/aliases.gperf"
1036      {(int)(long)&((struct stringpool_t *)0)->stringpool_str262, ei_iso8859_14},
1037      {-1},
1038 -#line 161 "lib/aliases.gperf"
1039 +#line 162 "lib/aliases.gperf"
1040      {(int)(long)&((struct stringpool_t *)0)->stringpool_str264, ei_koi8_r},
1041      {-1},
1042 -#line 109 "lib/aliases.gperf"
1043 +#line 110 "lib/aliases.gperf"
1044      {(int)(long)&((struct stringpool_t *)0)->stringpool_str266, ei_iso8859_7},
1045 -#line 169 "lib/aliases.gperf"
1046 +#line 170 "lib/aliases.gperf"
1047      {(int)(long)&((struct stringpool_t *)0)->stringpool_str267, ei_cp1251},
1048 -    {-1}, {-1},
1049 -#line 240 "lib/aliases.gperf"
1050 -    {(int)(long)&((struct stringpool_t *)0)->stringpool_str270, ei_viscii},
1051      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},
1052 -#line 191 "lib/aliases.gperf"
1053 +    {-1}, {-1}, {-1},
1054 +#line 192 "lib/aliases.gperf"
1055      {(int)(long)&((struct stringpool_t *)0)->stringpool_str280, ei_cp850},
1056      {-1}, {-1},
1057 -#line 90 "lib/aliases.gperf"
1058 +#line 91 "lib/aliases.gperf"
1059      {(int)(long)&((struct stringpool_t *)0)->stringpool_str283, ei_iso8859_5},
1060      {-1}, {-1},
1061 -#line 316 "lib/aliases.gperf"
1062 +#line 317 "lib/aliases.gperf"
1063      {(int)(long)&((struct stringpool_t *)0)->stringpool_str286, ei_ces_big5},
1064 -#line 37 "lib/aliases.gperf"
1065 +#line 38 "lib/aliases.gperf"
1066      {(int)(long)&((struct stringpool_t *)0)->stringpool_str287, ei_ucs4le},
1067 -#line 307 "lib/aliases.gperf"
1068 +#line 308 "lib/aliases.gperf"
1069      {(int)(long)&((struct stringpool_t *)0)->stringpool_str288, ei_gb18030},
1070      {-1},
1071 -#line 210 "lib/aliases.gperf"
1072 +#line 211 "lib/aliases.gperf"
1073      {(int)(long)&((struct stringpool_t *)0)->stringpool_str290, ei_mac_cyrillic},
1074 -#line 46 "lib/aliases.gperf"
1075 +#line 47 "lib/aliases.gperf"
1076      {(int)(long)&((struct stringpool_t *)0)->stringpool_str291, ei_utf7},
1077 -#line 45 "lib/aliases.gperf"
1078 +#line 46 "lib/aliases.gperf"
1079      {(int)(long)&((struct stringpool_t *)0)->stringpool_str292, ei_utf7},
1080 -#line 317 "lib/aliases.gperf"
1081 +#line 318 "lib/aliases.gperf"
1082      {(int)(long)&((struct stringpool_t *)0)->stringpool_str293, ei_ces_big5},
1083      {-1},
1084  #line 20 "lib/aliases.gperf"
1085      {(int)(long)&((struct stringpool_t *)0)->stringpool_str295, ei_ascii},
1086 -#line 231 "lib/aliases.gperf"
1087 +#line 232 "lib/aliases.gperf"
1088      {(int)(long)&((struct stringpool_t *)0)->stringpool_str296, ei_tis620},
1089      {-1},
1090 -#line 321 "lib/aliases.gperf"
1091 +#line 322 "lib/aliases.gperf"
1092      {(int)(long)&((struct stringpool_t *)0)->stringpool_str298, ei_ces_big5},
1093 -#line 221 "lib/aliases.gperf"
1094 +#line 222 "lib/aliases.gperf"
1095      {(int)(long)&((struct stringpool_t *)0)->stringpool_str299, ei_nextstep},
1096      {-1},
1097 -#line 283 "lib/aliases.gperf"
1098 +#line 284 "lib/aliases.gperf"
1099      {(int)(long)&((struct stringpool_t *)0)->stringpool_str301, ei_ksc5601},
1100 -#line 61 "lib/aliases.gperf"
1101 +#line 62 "lib/aliases.gperf"
1102      {(int)(long)&((struct stringpool_t *)0)->stringpool_str302, ei_iso8859_1},
1103 -#line 284 "lib/aliases.gperf"
1104 +#line 285 "lib/aliases.gperf"
1105      {(int)(long)&((struct stringpool_t *)0)->stringpool_str303, ei_ksc5601},
1106 -#line 69 "lib/aliases.gperf"
1107 +#line 70 "lib/aliases.gperf"
1108      {(int)(long)&((struct stringpool_t *)0)->stringpool_str304, ei_iso8859_2},
1109 -#line 320 "lib/aliases.gperf"
1110 +#line 321 "lib/aliases.gperf"
1111      {(int)(long)&((struct stringpool_t *)0)->stringpool_str305, ei_ces_big5},
1112 -#line 44 "lib/aliases.gperf"
1113 -    {(int)(long)&((struct stringpool_t *)0)->stringpool_str306, ei_utf7},
1114      {-1},
1115 -#line 134 "lib/aliases.gperf"
1116 +#line 243 "lib/aliases.gperf"
1117 +    {(int)(long)&((struct stringpool_t *)0)->stringpool_str307, ei_tcvn},
1118 +#line 135 "lib/aliases.gperf"
1119      {(int)(long)&((struct stringpool_t *)0)->stringpool_str308, ei_iso8859_10},
1120 -#line 92 "lib/aliases.gperf"
1121 +#line 93 "lib/aliases.gperf"
1122      {(int)(long)&((struct stringpool_t *)0)->stringpool_str309, ei_iso8859_5},
1123 -#line 126 "lib/aliases.gperf"
1124 +#line 127 "lib/aliases.gperf"
1125      {(int)(long)&((struct stringpool_t *)0)->stringpool_str310, ei_iso8859_9},
1126      {-1},
1127 -#line 241 "lib/aliases.gperf"
1128 +#line 244 "lib/aliases.gperf"
1129      {(int)(long)&((struct stringpool_t *)0)->stringpool_str312, ei_tcvn},
1130 -    {-1}, {-1},
1131 -#line 232 "lib/aliases.gperf"
1132 -    {(int)(long)&((struct stringpool_t *)0)->stringpool_str315, ei_tis620},
1133 -    {-1}, {-1},
1134 -#line 304 "lib/aliases.gperf"
1135 +    {-1}, {-1}, {-1}, {-1}, {-1},
1136 +#line 305 "lib/aliases.gperf"
1137      {(int)(long)&((struct stringpool_t *)0)->stringpool_str318, ei_euc_cn},
1138      {-1},
1139 -#line 25 "lib/aliases.gperf"
1140 +#line 26 "lib/aliases.gperf"
1141      {(int)(long)&((struct stringpool_t *)0)->stringpool_str320, ei_ucs2},
1142 -#line 33 "lib/aliases.gperf"
1143 +#line 34 "lib/aliases.gperf"
1144      {(int)(long)&((struct stringpool_t *)0)->stringpool_str321, ei_ucs4},
1145 -#line 226 "lib/aliases.gperf"
1146 +#line 227 "lib/aliases.gperf"
1147      {(int)(long)&((struct stringpool_t *)0)->stringpool_str322, ei_mulelao},
1148 -#line 332 "lib/aliases.gperf"
1149 +#line 333 "lib/aliases.gperf"
1150      {(int)(long)&((struct stringpool_t *)0)->stringpool_str323, ei_iso2022_kr},
1151 -#line 107 "lib/aliases.gperf"
1152 +#line 108 "lib/aliases.gperf"
1153      {(int)(long)&((struct stringpool_t *)0)->stringpool_str324, ei_iso8859_7},
1154 -#line 273 "lib/aliases.gperf"
1155 +#line 274 "lib/aliases.gperf"
1156      {(int)(long)&((struct stringpool_t *)0)->stringpool_str325, ei_gb2312},
1157 -#line 35 "lib/aliases.gperf"
1158 +#line 36 "lib/aliases.gperf"
1159      {(int)(long)&((struct stringpool_t *)0)->stringpool_str326, ei_ucs4},
1160 -#line 305 "lib/aliases.gperf"
1161 +#line 306 "lib/aliases.gperf"
1162      {(int)(long)&((struct stringpool_t *)0)->stringpool_str327, ei_ces_gbk},
1163 -#line 77 "lib/aliases.gperf"
1164 +#line 78 "lib/aliases.gperf"
1165      {(int)(long)&((struct stringpool_t *)0)->stringpool_str328, ei_iso8859_3},
1166  #line 14 "lib/aliases.gperf"
1167      {(int)(long)&((struct stringpool_t *)0)->stringpool_str329, ei_ascii},
1168      {-1},
1169  #line 12 "lib/aliases.gperf"
1170      {(int)(long)&((struct stringpool_t *)0)->stringpool_str331, ei_ascii},
1171 -#line 234 "lib/aliases.gperf"
1172 -    {(int)(long)&((struct stringpool_t *)0)->stringpool_str332, ei_tis620},
1173 -#line 225 "lib/aliases.gperf"
1174 +    {-1},
1175 +#line 226 "lib/aliases.gperf"
1176      {(int)(long)&((struct stringpool_t *)0)->stringpool_str333, ei_koi8_t},
1177 -#line 172 "lib/aliases.gperf"
1178 +#line 173 "lib/aliases.gperf"
1179      {(int)(long)&((struct stringpool_t *)0)->stringpool_str334, ei_cp1252},
1180 -#line 281 "lib/aliases.gperf"
1181 +#line 282 "lib/aliases.gperf"
1182      {(int)(long)&((struct stringpool_t *)0)->stringpool_str335, ei_ksc5601},
1183 -#line 268 "lib/aliases.gperf"
1184 +#line 269 "lib/aliases.gperf"
1185      {(int)(long)&((struct stringpool_t *)0)->stringpool_str336, ei_iso646_cn},
1186      {-1}, {-1},
1187 -#line 314 "lib/aliases.gperf"
1188 +#line 315 "lib/aliases.gperf"
1189      {(int)(long)&((struct stringpool_t *)0)->stringpool_str339, ei_euc_tw},
1190 -    {-1}, {-1}, {-1},
1191 -#line 110 "lib/aliases.gperf"
1192 +    {-1}, {-1},
1193 +#line 240 "lib/aliases.gperf"
1194 +    {(int)(long)&((struct stringpool_t *)0)->stringpool_str342, ei_viscii},
1195 +#line 111 "lib/aliases.gperf"
1196      {(int)(long)&((struct stringpool_t *)0)->stringpool_str343, ei_iso8859_7},
1197      {-1}, {-1},
1198 -#line 313 "lib/aliases.gperf"
1199 +#line 314 "lib/aliases.gperf"
1200      {(int)(long)&((struct stringpool_t *)0)->stringpool_str346, ei_euc_tw},
1201 -#line 168 "lib/aliases.gperf"
1202 +#line 169 "lib/aliases.gperf"
1203      {(int)(long)&((struct stringpool_t *)0)->stringpool_str347, ei_cp1251},
1204 -#line 171 "lib/aliases.gperf"
1205 +#line 172 "lib/aliases.gperf"
1206      {(int)(long)&((struct stringpool_t *)0)->stringpool_str348, ei_cp1252},
1207 -#line 248 "lib/aliases.gperf"
1208 +#line 249 "lib/aliases.gperf"
1209      {(int)(long)&((struct stringpool_t *)0)->stringpool_str349, ei_iso646_jp},
1210 -#line 183 "lib/aliases.gperf"
1211 +#line 184 "lib/aliases.gperf"
1212      {(int)(long)&((struct stringpool_t *)0)->stringpool_str350, ei_cp1256},
1213 -#line 180 "lib/aliases.gperf"
1214 +#line 181 "lib/aliases.gperf"
1215      {(int)(long)&((struct stringpool_t *)0)->stringpool_str351, ei_cp1255},
1216 -    {-1},
1217 -#line 239 "lib/aliases.gperf"
1218 -    {(int)(long)&((struct stringpool_t *)0)->stringpool_str353, ei_viscii},
1219 -#line 333 "lib/aliases.gperf"
1220 +    {-1}, {-1},
1221 +#line 334 "lib/aliases.gperf"
1222      {(int)(long)&((struct stringpool_t *)0)->stringpool_str354, ei_iso2022_kr},
1223      {-1},
1224 -#line 189 "lib/aliases.gperf"
1225 +#line 190 "lib/aliases.gperf"
1226      {(int)(long)&((struct stringpool_t *)0)->stringpool_str356, ei_cp1258},
1227      {-1}, {-1}, {-1},
1228 -#line 174 "lib/aliases.gperf"
1229 +#line 175 "lib/aliases.gperf"
1230      {(int)(long)&((struct stringpool_t *)0)->stringpool_str360, ei_cp1253},
1231 -#line 222 "lib/aliases.gperf"
1232 +#line 223 "lib/aliases.gperf"
1233      {(int)(long)&((struct stringpool_t *)0)->stringpool_str361, ei_armscii_8},
1234      {-1}, {-1}, {-1}, {-1},
1235 -#line 201 "lib/aliases.gperf"
1236 +#line 202 "lib/aliases.gperf"
1237      {(int)(long)&((struct stringpool_t *)0)->stringpool_str366, ei_cp866},
1238      {-1},
1239 -#line 218 "lib/aliases.gperf"
1240 +#line 219 "lib/aliases.gperf"
1241      {(int)(long)&((struct stringpool_t *)0)->stringpool_str368, ei_hp_roman8},
1242 -#line 312 "lib/aliases.gperf"
1243 +#line 313 "lib/aliases.gperf"
1244      {(int)(long)&((struct stringpool_t *)0)->stringpool_str369, ei_hz},
1245 -#line 286 "lib/aliases.gperf"
1246 +#line 287 "lib/aliases.gperf"
1247      {(int)(long)&((struct stringpool_t *)0)->stringpool_str370, ei_euc_jp},
1248 -#line 233 "lib/aliases.gperf"
1249 -    {(int)(long)&((struct stringpool_t *)0)->stringpool_str371, ei_tis620},
1250 -#line 280 "lib/aliases.gperf"
1251 +    {-1},
1252 +#line 281 "lib/aliases.gperf"
1253      {(int)(long)&((struct stringpool_t *)0)->stringpool_str372, ei_ksc5601},
1254 -#line 207 "lib/aliases.gperf"
1255 +#line 208 "lib/aliases.gperf"
1256      {(int)(long)&((struct stringpool_t *)0)->stringpool_str373, ei_mac_iceland},
1257 -#line 34 "lib/aliases.gperf"
1258 +#line 35 "lib/aliases.gperf"
1259      {(int)(long)&((struct stringpool_t *)0)->stringpool_str374, ei_ucs4},
1260 -#line 27 "lib/aliases.gperf"
1261 +#line 28 "lib/aliases.gperf"
1262      {(int)(long)&((struct stringpool_t *)0)->stringpool_str375, ei_ucs2be},
1263      {-1},
1264 -#line 285 "lib/aliases.gperf"
1265 +#line 286 "lib/aliases.gperf"
1266      {(int)(long)&((struct stringpool_t *)0)->stringpool_str377, ei_euc_jp},
1267      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},
1268 -#line 165 "lib/aliases.gperf"
1269 +#line 166 "lib/aliases.gperf"
1270      {(int)(long)&((struct stringpool_t *)0)->stringpool_str386, ei_cp1250},
1271 -#line 100 "lib/aliases.gperf"
1272 +#line 101 "lib/aliases.gperf"
1273      {(int)(long)&((struct stringpool_t *)0)->stringpool_str387, ei_iso8859_6},
1274 +#line 233 "lib/aliases.gperf"
1275 +    {(int)(long)&((struct stringpool_t *)0)->stringpool_str388, ei_tis620},
1276 +    {-1},
1277  #line 39 "lib/aliases.gperf"
1278 -    {(int)(long)&((struct stringpool_t *)0)->stringpool_str388, ei_utf16be},
1279 -    {-1}, {-1},
1280 -#line 242 "lib/aliases.gperf"
1281 -    {(int)(long)&((struct stringpool_t *)0)->stringpool_str391, ei_tcvn},
1282 -#line 186 "lib/aliases.gperf"
1283 +    {(int)(long)&((struct stringpool_t *)0)->stringpool_str390, ei_utf16},
1284 +    {-1},
1285 +#line 187 "lib/aliases.gperf"
1286      {(int)(long)&((struct stringpool_t *)0)->stringpool_str392, ei_cp1257},
1287      {-1},
1288 -#line 197 "lib/aliases.gperf"
1289 +#line 198 "lib/aliases.gperf"
1290      {(int)(long)&((struct stringpool_t *)0)->stringpool_str394, ei_cp862},
1291      {-1},
1292 -#line 243 "lib/aliases.gperf"
1293 -    {(int)(long)&((struct stringpool_t *)0)->stringpool_str396, ei_tcvn},
1294 +#line 23 "lib/aliases.gperf"
1295 +    {(int)(long)&((struct stringpool_t *)0)->stringpool_str396, ei_utf8},
1296      {-1}, {-1},
1297  #line 42 "lib/aliases.gperf"
1298 -    {(int)(long)&((struct stringpool_t *)0)->stringpool_str399, ei_utf32be},
1299 +    {(int)(long)&((struct stringpool_t *)0)->stringpool_str399, ei_utf32},
1300      {-1}, {-1},
1301 -#line 177 "lib/aliases.gperf"
1302 +#line 178 "lib/aliases.gperf"
1303      {(int)(long)&((struct stringpool_t *)0)->stringpool_str402, ei_cp1254},
1304      {-1},
1305 -#line 327 "lib/aliases.gperf"
1306 +#line 328 "lib/aliases.gperf"
1307      {(int)(long)&((struct stringpool_t *)0)->stringpool_str404, ei_euc_kr},
1308 -    {-1},
1309 -#line 99 "lib/aliases.gperf"
1310 +#line 235 "lib/aliases.gperf"
1311 +    {(int)(long)&((struct stringpool_t *)0)->stringpool_str405, ei_tis620},
1312 +#line 100 "lib/aliases.gperf"
1313      {(int)(long)&((struct stringpool_t *)0)->stringpool_str406, ei_iso8859_6},
1314 -    {-1}, {-1},
1315 -#line 101 "lib/aliases.gperf"
1316 +    {-1},
1317 +#line 41 "lib/aliases.gperf"
1318 +    {(int)(long)&((struct stringpool_t *)0)->stringpool_str408, ei_utf16le},
1319 +#line 102 "lib/aliases.gperf"
1320      {(int)(long)&((struct stringpool_t *)0)->stringpool_str409, ei_iso8859_6},
1321 -#line 203 "lib/aliases.gperf"
1322 +#line 204 "lib/aliases.gperf"
1323      {(int)(long)&((struct stringpool_t *)0)->stringpool_str410, ei_mac_roman},
1324 -#line 47 "lib/aliases.gperf"
1325 +#line 48 "lib/aliases.gperf"
1326      {(int)(long)&((struct stringpool_t *)0)->stringpool_str411, ei_ucs2internal},
1327 -#line 85 "lib/aliases.gperf"
1328 +#line 86 "lib/aliases.gperf"
1329      {(int)(long)&((struct stringpool_t *)0)->stringpool_str412, ei_iso8859_4},
1330      {-1}, {-1}, {-1},
1331 -#line 98 "lib/aliases.gperf"
1332 +#line 99 "lib/aliases.gperf"
1333      {(int)(long)&((struct stringpool_t *)0)->stringpool_str416, ei_iso8859_6},
1334      {-1},
1335 -#line 278 "lib/aliases.gperf"
1336 +#line 279 "lib/aliases.gperf"
1337      {(int)(long)&((struct stringpool_t *)0)->stringpool_str418, ei_isoir165},
1338 +#line 44 "lib/aliases.gperf"
1339 +    {(int)(long)&((struct stringpool_t *)0)->stringpool_str419, ei_utf32le},
1340      {-1},
1341 -#line 18 "lib/aliases.gperf"
1342 -    {(int)(long)&((struct stringpool_t *)0)->stringpool_str420, ei_ascii},
1343 -#line 272 "lib/aliases.gperf"
1344 +#line 273 "lib/aliases.gperf"
1345      {(int)(long)&((struct stringpool_t *)0)->stringpool_str421, ei_iso646_cn},
1346      {-1},
1347 -#line 275 "lib/aliases.gperf"
1348 +#line 276 "lib/aliases.gperf"
1349      {(int)(long)&((struct stringpool_t *)0)->stringpool_str423, ei_gb2312},
1350 -#line 217 "lib/aliases.gperf"
1351 +#line 218 "lib/aliases.gperf"
1352      {(int)(long)&((struct stringpool_t *)0)->stringpool_str424, ei_hp_roman8},
1353 -    {-1},
1354 -#line 17 "lib/aliases.gperf"
1355 -    {(int)(long)&((struct stringpool_t *)0)->stringpool_str426, ei_ascii},
1356 -#line 216 "lib/aliases.gperf"
1357 +    {-1}, {-1},
1358 +#line 217 "lib/aliases.gperf"
1359      {(int)(long)&((struct stringpool_t *)0)->stringpool_str427, ei_mac_thai},
1360      {-1},
1361 -#line 36 "lib/aliases.gperf"
1362 +#line 37 "lib/aliases.gperf"
1363      {(int)(long)&((struct stringpool_t *)0)->stringpool_str429, ei_ucs4be},
1364 -#line 220 "lib/aliases.gperf"
1365 +#line 221 "lib/aliases.gperf"
1366      {(int)(long)&((struct stringpool_t *)0)->stringpool_str430, ei_hp_roman8},
1367      {-1},
1368 -#line 303 "lib/aliases.gperf"
1369 +#line 304 "lib/aliases.gperf"
1370      {(int)(long)&((struct stringpool_t *)0)->stringpool_str432, ei_euc_cn},
1371      {-1},
1372 -#line 32 "lib/aliases.gperf"
1373 +#line 33 "lib/aliases.gperf"
1374      {(int)(long)&((struct stringpool_t *)0)->stringpool_str434, ei_ucs2le},
1375 -#line 89 "lib/aliases.gperf"
1376 -    {(int)(long)&((struct stringpool_t *)0)->stringpool_str435, ei_iso8859_5},
1377 -    {-1}, {-1},
1378 -#line 122 "lib/aliases.gperf"
1379 -    {(int)(long)&((struct stringpool_t *)0)->stringpool_str438, ei_iso8859_9},
1380 -    {-1},
1381 -#line 115 "lib/aliases.gperf"
1382 -    {(int)(long)&((struct stringpool_t *)0)->stringpool_str440, ei_iso8859_8},
1383 -#line 162 "lib/aliases.gperf"
1384 +    {-1}, {-1}, {-1}, {-1}, {-1}, {-1},
1385 +#line 163 "lib/aliases.gperf"
1386      {(int)(long)&((struct stringpool_t *)0)->stringpool_str441, ei_koi8_u},
1387      {-1}, {-1},
1388 -#line 73 "lib/aliases.gperf"
1389 -    {(int)(long)&((struct stringpool_t *)0)->stringpool_str444, ei_iso8859_3},
1390 +#line 234 "lib/aliases.gperf"
1391 +    {(int)(long)&((struct stringpool_t *)0)->stringpool_str444, ei_tis620},
1392      {-1}, {-1}, {-1},
1393 -#line 295 "lib/aliases.gperf"
1394 +#line 296 "lib/aliases.gperf"
1395      {(int)(long)&((struct stringpool_t *)0)->stringpool_str448, ei_iso2022_jp},
1396 -#line 297 "lib/aliases.gperf"
1397 -    {(int)(long)&((struct stringpool_t *)0)->stringpool_str449, ei_iso2022_jp1},
1398  #line 298 "lib/aliases.gperf"
1399 +    {(int)(long)&((struct stringpool_t *)0)->stringpool_str449, ei_iso2022_jp1},
1400 +#line 299 "lib/aliases.gperf"
1401      {(int)(long)&((struct stringpool_t *)0)->stringpool_str450, ei_iso2022_jp2},
1402 -#line 118 "lib/aliases.gperf"
1403 +#line 119 "lib/aliases.gperf"
1404      {(int)(long)&((struct stringpool_t *)0)->stringpool_str451, ei_iso8859_8},
1405      {-1}, {-1},
1406 -#line 246 "lib/aliases.gperf"
1407 +#line 247 "lib/aliases.gperf"
1408      {(int)(long)&((struct stringpool_t *)0)->stringpool_str454, ei_iso646_jp},
1409 -    {-1}, {-1},
1410 -#line 287 "lib/aliases.gperf"
1411 +#line 90 "lib/aliases.gperf"
1412 +    {(int)(long)&((struct stringpool_t *)0)->stringpool_str455, ei_iso8859_5},
1413 +    {-1},
1414 +#line 288 "lib/aliases.gperf"
1415      {(int)(long)&((struct stringpool_t *)0)->stringpool_str457, ei_euc_jp},
1416 -    {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},
1417 -#line 49 "lib/aliases.gperf"
1418 -    {(int)(long)&((struct stringpool_t *)0)->stringpool_str465, ei_ucs4internal},
1419 +#line 123 "lib/aliases.gperf"
1420 +    {(int)(long)&((struct stringpool_t *)0)->stringpool_str458, ei_iso8859_9},
1421      {-1},
1422 -#line 55 "lib/aliases.gperf"
1423 -    {(int)(long)&((struct stringpool_t *)0)->stringpool_str467, ei_iso8859_1},
1424 -#line 65 "lib/aliases.gperf"
1425 -    {(int)(long)&((struct stringpool_t *)0)->stringpool_str468, ei_iso8859_2},
1426 +#line 116 "lib/aliases.gperf"
1427 +    {(int)(long)&((struct stringpool_t *)0)->stringpool_str460, ei_iso8859_8},
1428 +    {-1}, {-1}, {-1},
1429 +#line 74 "lib/aliases.gperf"
1430 +    {(int)(long)&((struct stringpool_t *)0)->stringpool_str464, ei_iso8859_3},
1431 +#line 50 "lib/aliases.gperf"
1432 +    {(int)(long)&((struct stringpool_t *)0)->stringpool_str465, ei_ucs4internal},
1433 +    {-1}, {-1},
1434 +#line 45 "lib/aliases.gperf"
1435 +    {(int)(long)&((struct stringpool_t *)0)->stringpool_str468, ei_utf7},
1436 +    {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},
1437      {-1},
1438 -#line 96 "lib/aliases.gperf"
1439 -    {(int)(long)&((struct stringpool_t *)0)->stringpool_str470, ei_iso8859_6},
1440 -    {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},
1441 -#line 296 "lib/aliases.gperf"
1442 +#line 297 "lib/aliases.gperf"
1443      {(int)(long)&((struct stringpool_t *)0)->stringpool_str479, ei_iso2022_jp},
1444 -#line 299 "lib/aliases.gperf"
1445 +#line 300 "lib/aliases.gperf"
1446      {(int)(long)&((struct stringpool_t *)0)->stringpool_str480, ei_iso2022_jp2},
1447 -    {-1}, {-1}, {-1}, {-1}, {-1},
1448 -#line 81 "lib/aliases.gperf"
1449 -    {(int)(long)&((struct stringpool_t *)0)->stringpool_str486, ei_iso8859_4},
1450 -    {-1}, {-1},
1451 -#line 206 "lib/aliases.gperf"
1452 +    {-1}, {-1}, {-1}, {-1},
1453 +#line 15 "lib/aliases.gperf"
1454 +    {(int)(long)&((struct stringpool_t *)0)->stringpool_str485, ei_ascii},
1455 +    {-1},
1456 +#line 56 "lib/aliases.gperf"
1457 +    {(int)(long)&((struct stringpool_t *)0)->stringpool_str487, ei_iso8859_1},
1458 +#line 66 "lib/aliases.gperf"
1459 +    {(int)(long)&((struct stringpool_t *)0)->stringpool_str488, ei_iso8859_2},
1460 +#line 207 "lib/aliases.gperf"
1461      {(int)(long)&((struct stringpool_t *)0)->stringpool_str489, ei_mac_centraleurope},
1462 -    {-1}, {-1},
1463 -#line 117 "lib/aliases.gperf"
1464 -    {(int)(long)&((struct stringpool_t *)0)->stringpool_str492, ei_iso8859_8},
1465 +#line 97 "lib/aliases.gperf"
1466 +    {(int)(long)&((struct stringpool_t *)0)->stringpool_str490, ei_iso8859_6},
1467      {-1},
1468 -#line 181 "lib/aliases.gperf"
1469 +#line 118 "lib/aliases.gperf"
1470 +    {(int)(long)&((struct stringpool_t *)0)->stringpool_str492, ei_iso8859_8},
1471 +#line 18 "lib/aliases.gperf"
1472 +    {(int)(long)&((struct stringpool_t *)0)->stringpool_str493, ei_ascii},
1473 +#line 182 "lib/aliases.gperf"
1474      {(int)(long)&((struct stringpool_t *)0)->stringpool_str494, ei_cp1255},
1475 -    {-1},
1476 -#line 15 "lib/aliases.gperf"
1477 -    {(int)(long)&((struct stringpool_t *)0)->stringpool_str496, ei_ascii},
1478 -    {-1},
1479 -#line 315 "lib/aliases.gperf"
1480 +    {-1}, {-1}, {-1},
1481 +#line 316 "lib/aliases.gperf"
1482      {(int)(long)&((struct stringpool_t *)0)->stringpool_str498, ei_euc_tw},
1483 -    {-1}, {-1}, {-1}, {-1},
1484 -#line 163 "lib/aliases.gperf"
1485 +#line 17 "lib/aliases.gperf"
1486 +    {(int)(long)&((struct stringpool_t *)0)->stringpool_str499, ei_ascii},
1487 +    {-1}, {-1}, {-1},
1488 +#line 164 "lib/aliases.gperf"
1489      {(int)(long)&((struct stringpool_t *)0)->stringpool_str503, ei_koi8_ru},
1490      {-1},
1491 -#line 237 "lib/aliases.gperf"
1492 +#line 238 "lib/aliases.gperf"
1493      {(int)(long)&((struct stringpool_t *)0)->stringpool_str505, ei_cp874},
1494 -    {-1}, {-1},
1495 -#line 257 "lib/aliases.gperf"
1496 +#line 82 "lib/aliases.gperf"
1497 +    {(int)(long)&((struct stringpool_t *)0)->stringpool_str506, ei_iso8859_4},
1498 +    {-1},
1499 +#line 258 "lib/aliases.gperf"
1500      {(int)(long)&((struct stringpool_t *)0)->stringpool_str508, ei_jisx0208},
1501 -#line 224 "lib/aliases.gperf"
1502 +#line 225 "lib/aliases.gperf"
1503      {(int)(long)&((struct stringpool_t *)0)->stringpool_str509, ei_georgian_ps},
1504 -    {-1}, {-1},
1505 -#line 105 "lib/aliases.gperf"
1506 -    {(int)(long)&((struct stringpool_t *)0)->stringpool_str512, ei_iso8859_7},
1507 -    {-1},
1508 -#line 111 "lib/aliases.gperf"
1509 +    {-1}, {-1}, {-1}, {-1},
1510 +#line 112 "lib/aliases.gperf"
1511      {(int)(long)&((struct stringpool_t *)0)->stringpool_str514, ei_iso8859_7},
1512 -#line 260 "lib/aliases.gperf"
1513 +#line 261 "lib/aliases.gperf"
1514      {(int)(long)&((struct stringpool_t *)0)->stringpool_str515, ei_jisx0208},
1515      {-1}, {-1},
1516 -#line 202 "lib/aliases.gperf"
1517 +#line 203 "lib/aliases.gperf"
1518      {(int)(long)&((struct stringpool_t *)0)->stringpool_str518, ei_mac_roman},
1519 -#line 48 "lib/aliases.gperf"
1520 +#line 49 "lib/aliases.gperf"
1521      {(int)(long)&((struct stringpool_t *)0)->stringpool_str519, ei_ucs2swapped},
1522      {-1}, {-1}, {-1}, {-1},
1523 -#line 205 "lib/aliases.gperf"
1524 +#line 206 "lib/aliases.gperf"
1525      {(int)(long)&((struct stringpool_t *)0)->stringpool_str524, ei_mac_roman},
1526 -    {-1}, {-1},
1527 -#line 319 "lib/aliases.gperf"
1528 -    {(int)(long)&((struct stringpool_t *)0)->stringpool_str527, ei_ces_big5},
1529 -#line 267 "lib/aliases.gperf"
1530 +    {-1}, {-1}, {-1},
1531 +#line 268 "lib/aliases.gperf"
1532      {(int)(long)&((struct stringpool_t *)0)->stringpool_str528, ei_jisx0212},
1533 -#line 249 "lib/aliases.gperf"
1534 +#line 250 "lib/aliases.gperf"
1535      {(int)(long)&((struct stringpool_t *)0)->stringpool_str529, ei_iso646_jp},
1536 -#line 193 "lib/aliases.gperf"
1537 +#line 194 "lib/aliases.gperf"
1538      {(int)(long)&((struct stringpool_t *)0)->stringpool_str530, ei_cp850},
1539 -    {-1}, {-1}, {-1},
1540 -#line 318 "lib/aliases.gperf"
1541 -    {(int)(long)&((struct stringpool_t *)0)->stringpool_str534, ei_ces_big5},
1542 -    {-1}, {-1}, {-1}, {-1}, {-1}, {-1},
1543 -#line 245 "lib/aliases.gperf"
1544 +    {-1},
1545 +#line 106 "lib/aliases.gperf"
1546 +    {(int)(long)&((struct stringpool_t *)0)->stringpool_str532, ei_iso8859_7},
1547 +    {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},
1548 +#line 246 "lib/aliases.gperf"
1549      {(int)(long)&((struct stringpool_t *)0)->stringpool_str541, ei_iso646_jp},
1550      {-1}, {-1}, {-1},
1551 -#line 262 "lib/aliases.gperf"
1552 +#line 263 "lib/aliases.gperf"
1553      {(int)(long)&((struct stringpool_t *)0)->stringpool_str545, ei_jisx0212},
1554      {-1}, {-1}, {-1},
1555 -#line 324 "lib/aliases.gperf"
1556 +#line 325 "lib/aliases.gperf"
1557      {(int)(long)&((struct stringpool_t *)0)->stringpool_str549, ei_big5hkscs},
1558 -    {-1}, {-1}, {-1},
1559 -#line 251 "lib/aliases.gperf"
1560 +#line 40 "lib/aliases.gperf"
1561 +    {(int)(long)&((struct stringpool_t *)0)->stringpool_str550, ei_utf16be},
1562 +    {-1}, {-1},
1563 +#line 252 "lib/aliases.gperf"
1564      {(int)(long)&((struct stringpool_t *)0)->stringpool_str553, ei_jisx0201},
1565 -#line 223 "lib/aliases.gperf"
1566 +#line 224 "lib/aliases.gperf"
1567      {(int)(long)&((struct stringpool_t *)0)->stringpool_str554, ei_georgian_academy},
1568      {-1},
1569 -#line 323 "lib/aliases.gperf"
1570 +#line 324 "lib/aliases.gperf"
1571      {(int)(long)&((struct stringpool_t *)0)->stringpool_str556, ei_big5hkscs},
1572      {-1}, {-1}, {-1},
1573 -#line 261 "lib/aliases.gperf"
1574 +#line 262 "lib/aliases.gperf"
1575      {(int)(long)&((struct stringpool_t *)0)->stringpool_str560, ei_jisx0208},
1576 -    {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},
1577 -#line 212 "lib/aliases.gperf"
1578 +#line 43 "lib/aliases.gperf"
1579 +    {(int)(long)&((struct stringpool_t *)0)->stringpool_str561, ei_utf32be},
1580 +    {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},
1581 +#line 213 "lib/aliases.gperf"
1582      {(int)(long)&((struct stringpool_t *)0)->stringpool_str570, ei_mac_greek},
1583 -#line 175 "lib/aliases.gperf"
1584 +#line 176 "lib/aliases.gperf"
1585      {(int)(long)&((struct stringpool_t *)0)->stringpool_str571, ei_cp1253},
1586      {-1},
1587 -#line 50 "lib/aliases.gperf"
1588 +#line 51 "lib/aliases.gperf"
1589      {(int)(long)&((struct stringpool_t *)0)->stringpool_str573, ei_ucs4swapped},
1590      {-1}, {-1}, {-1}, {-1},
1591 -#line 208 "lib/aliases.gperf"
1592 +#line 209 "lib/aliases.gperf"
1593      {(int)(long)&((struct stringpool_t *)0)->stringpool_str578, ei_mac_croatian},
1594      {-1}, {-1}, {-1},
1595 -#line 250 "lib/aliases.gperf"
1596 +#line 251 "lib/aliases.gperf"
1597      {(int)(long)&((struct stringpool_t *)0)->stringpool_str582, ei_jisx0201},
1598      {-1}, {-1},
1599 -#line 335 "lib/aliases.gperf"
1600 +#line 336 "lib/aliases.gperf"
1601      {(int)(long)&((struct stringpool_t *)0)->stringpool_str585, ei_local_wchar_t},
1602      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},
1603 -#line 28 "lib/aliases.gperf"
1604 +#line 29 "lib/aliases.gperf"
1605      {(int)(long)&((struct stringpool_t *)0)->stringpool_str594, ei_ucs2be},
1606      {-1}, {-1}, {-1}, {-1},
1607 -#line 264 "lib/aliases.gperf"
1608 +#line 265 "lib/aliases.gperf"
1609      {(int)(long)&((struct stringpool_t *)0)->stringpool_str599, ei_jisx0212},
1610 -#line 254 "lib/aliases.gperf"
1611 +#line 255 "lib/aliases.gperf"
1612      {(int)(long)&((struct stringpool_t *)0)->stringpool_str600, ei_jisx0208},
1613 -    {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},
1614      {-1}, {-1}, {-1}, {-1},
1615 -#line 215 "lib/aliases.gperf"
1616 +#line 320 "lib/aliases.gperf"
1617 +    {(int)(long)&((struct stringpool_t *)0)->stringpool_str605, ei_ces_big5},
1618 +    {-1}, {-1}, {-1}, {-1}, {-1}, {-1},
1619 +#line 319 "lib/aliases.gperf"
1620 +    {(int)(long)&((struct stringpool_t *)0)->stringpool_str612, ei_ces_big5},
1621 +    {-1},
1622 +#line 216 "lib/aliases.gperf"
1623      {(int)(long)&((struct stringpool_t *)0)->stringpool_str614, ei_mac_arabic},
1624 -    {-1}, {-1}, {-1}, {-1},
1625 -#line 253 "lib/aliases.gperf"
1626 -    {(int)(long)&((struct stringpool_t *)0)->stringpool_str619, ei_jisx0201},
1627 -#line 255 "lib/aliases.gperf"
1628 +    {-1}, {-1}, {-1}, {-1}, {-1},
1629 +#line 256 "lib/aliases.gperf"
1630      {(int)(long)&((struct stringpool_t *)0)->stringpool_str620, ei_jisx0208},
1631 -#line 290 "lib/aliases.gperf"
1632 -    {(int)(long)&((struct stringpool_t *)0)->stringpool_str621, ei_sjis},
1633 +#line 245 "lib/aliases.gperf"
1634 +    {(int)(long)&((struct stringpool_t *)0)->stringpool_str621, ei_tcvn},
1635      {-1}, {-1}, {-1}, {-1},
1636 -#line 211 "lib/aliases.gperf"
1637 +#line 212 "lib/aliases.gperf"
1638      {(int)(long)&((struct stringpool_t *)0)->stringpool_str626, ei_mac_ukraine},
1639 -    {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},
1640 -#line 288 "lib/aliases.gperf"
1641 -    {(int)(long)&((struct stringpool_t *)0)->stringpool_str635, ei_euc_jp},
1642 +    {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},
1643      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},
1644      {-1},
1645 -#line 256 "lib/aliases.gperf"
1646 +#line 257 "lib/aliases.gperf"
1647      {(int)(long)&((struct stringpool_t *)0)->stringpool_str646, ei_jisx0208},
1648      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},
1649 -    {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},
1650 -#line 293 "lib/aliases.gperf"
1651 -    {(int)(long)&((struct stringpool_t *)0)->stringpool_str663, ei_sjis},
1652 -#line 263 "lib/aliases.gperf"
1653 -    {(int)(long)&((struct stringpool_t *)0)->stringpool_str664, ei_jisx0212},
1654 -#line 214 "lib/aliases.gperf"
1655 +    {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},
1656 +#line 215 "lib/aliases.gperf"
1657      {(int)(long)&((struct stringpool_t *)0)->stringpool_str665, ei_mac_hebrew},
1658 +    {-1},
1659 +#line 24 "lib/aliases.gperf"
1660 +    {(int)(long)&((struct stringpool_t *)0)->stringpool_str667, ei_utf8mac},
1661 +    {-1},
1662 +#line 53 "lib/aliases.gperf"
1663 +    {(int)(long)&((struct stringpool_t *)0)->stringpool_str669, ei_java},
1664      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},
1665 -#line 289 "lib/aliases.gperf"
1666 -    {(int)(long)&((struct stringpool_t *)0)->stringpool_str675, ei_sjis},
1667      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},
1668 -#line 244 "lib/aliases.gperf"
1669 -    {(int)(long)&((struct stringpool_t *)0)->stringpool_str685, ei_tcvn},
1670 -    {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},
1671 -#line 178 "lib/aliases.gperf"
1672 +    {-1}, {-1}, {-1}, {-1}, {-1}, {-1},
1673 +#line 179 "lib/aliases.gperf"
1674      {(int)(long)&((struct stringpool_t *)0)->stringpool_str694, ei_cp1254},
1675      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},
1676      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},
1677      {-1}, {-1}, {-1}, {-1},
1678 -#line 213 "lib/aliases.gperf"
1679 +#line 214 "lib/aliases.gperf"
1680      {(int)(long)&((struct stringpool_t *)0)->stringpool_str717, ei_mac_turkish},
1681      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},
1682      {-1}, {-1}, {-1}, {-1},
1683 -#line 209 "lib/aliases.gperf"
1684 +#line 210 "lib/aliases.gperf"
1685      {(int)(long)&((struct stringpool_t *)0)->stringpool_str731, ei_mac_romania},
1686 +    {-1}, {-1}, {-1}, {-1}, {-1},
1687 +#line 264 "lib/aliases.gperf"
1688 +    {(int)(long)&((struct stringpool_t *)0)->stringpool_str737, ei_jisx0212},
1689      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},
1690 -    {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},
1691 -#line 184 "lib/aliases.gperf"
1692 +    {-1}, {-1}, {-1},
1693 +#line 185 "lib/aliases.gperf"
1694      {(int)(long)&((struct stringpool_t *)0)->stringpool_str750, ei_cp1256},
1695 -    {-1}, {-1},
1696 -#line 52 "lib/aliases.gperf"
1697 -    {(int)(long)&((struct stringpool_t *)0)->stringpool_str753, ei_java},
1698      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},
1699      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},
1700      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},
1701 +    {-1}, {-1}, {-1},
1702 +#line 254 "lib/aliases.gperf"
1703 +    {(int)(long)&((struct stringpool_t *)0)->stringpool_str781, ei_jisx0201},
1704 +    {-1},
1705 +#line 291 "lib/aliases.gperf"
1706 +    {(int)(long)&((struct stringpool_t *)0)->stringpool_str783, ei_sjis},
1707      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},
1708 -    {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},
1709 -#line 292 "lib/aliases.gperf"
1710 +    {-1}, {-1}, {-1}, {-1},
1711 +#line 289 "lib/aliases.gperf"
1712 +    {(int)(long)&((struct stringpool_t *)0)->stringpool_str797, ei_euc_jp},
1713 +#line 293 "lib/aliases.gperf"
1714      {(int)(long)&((struct stringpool_t *)0)->stringpool_str798, ei_sjis},
1715 -#line 330 "lib/aliases.gperf"
1716 +#line 331 "lib/aliases.gperf"
1717      {(int)(long)&((struct stringpool_t *)0)->stringpool_str799, ei_johab},
1718      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},
1719      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},
1720 +    {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},
1721 +#line 294 "lib/aliases.gperf"
1722 +    {(int)(long)&((struct stringpool_t *)0)->stringpool_str825, ei_sjis},
1723      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},
1724 +    {-1}, {-1},
1725 +#line 290 "lib/aliases.gperf"
1726 +    {(int)(long)&((struct stringpool_t *)0)->stringpool_str837, ei_sjis},
1727      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},
1728      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},
1729      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},
1730      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},
1731 -    {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},
1732 -    {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},
1733 -#line 187 "lib/aliases.gperf"
1734 +    {-1}, {-1}, {-1}, {-1}, {-1},
1735 +#line 188 "lib/aliases.gperf"
1736      {(int)(long)&((struct stringpool_t *)0)->stringpool_str879, ei_cp1257}
1737    };
1738  
1739 diff -Naur libiconv.old/lib/converters.h libiconv/lib/converters.h
1740 --- libiconv.old/lib/converters.h       2002-05-29 16:06:52.000000000 +0200
1741 +++ libiconv/lib/converters.h   2005-08-04 18:54:52.000000000 +0200
1742 @@ -109,6 +109,7 @@
1743  /* General multi-byte encodings */
1744  #include "utf8.h"
1745  #include "ucs2.h"
1746 +#include "utf8mac.h"
1747  #include "ucs2be.h"
1748  #include "ucs2le.h"
1749  #include "ucs4.h"
1750 diff -Naur libiconv.old/lib/encodings.def libiconv/lib/encodings.def
1751 --- libiconv.old/lib/encodings.def      2003-04-24 12:48:06.000000000 +0200
1752 +++ libiconv/lib/encodings.def  2005-08-04 18:54:43.000000000 +0200
1753 @@ -60,6 +60,13 @@
1754              utf8,
1755              { utf8_mbtowc, NULL },        { utf8_wctomb, NULL })
1756  
1757 +DEFENCODING(( "UTF-8-MAC",               /* utf8-nfd */
1758 +             "UTF8-MAC",                /* label from samba 2.2jp */
1759 +            ),
1760 +            utf8mac,
1761 +            { utf8mac_mbtowc, NULL },     { utf8mac_wctomb, NULL })
1762 +
1763 +
1764  DEFENCODING(( "UCS-2",                  /* glibc */
1765                "ISO-10646-UCS-2",        /* IANA */
1766                "csUnicode",              /* IANA */
1767 diff -Naur libiconv.old/lib/flags.h libiconv/lib/flags.h
1768 --- libiconv.old/lib/flags.h    2003-05-06 11:18:02.000000000 +0200
1769 +++ libiconv/lib/flags.h        2005-08-04 18:54:43.000000000 +0200
1770 @@ -14,6 +14,7 @@
1771  
1772  #define ei_ascii_oflags (0)
1773  #define ei_utf8_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS | HAVE_HANGUL_JAMO)
1774 +#define ei_utf8mac_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS | HAVE_HANGUL_JAMO)
1775  #define ei_ucs2_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS | HAVE_HANGUL_JAMO)
1776  #define ei_ucs2be_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS | HAVE_HANGUL_JAMO)
1777  #define ei_ucs2le_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS | HAVE_HANGUL_JAMO)
1778 diff -Naur libiconv.old/lib/utf8mac.h libiconv/lib/utf8mac.h
1779 --- libiconv.old/lib/utf8mac.h  1970-01-01 01:00:00.000000000 +0100
1780 +++ libiconv/lib/utf8mac.h      2005-08-04 18:54:43.000000000 +0200
1781 @@ -0,0 +1,1595 @@
1782 +/*
1783 + * Copyright (C) 2003 Apple Computer, Inc. All rights reserved.
1784 + *
1785 + * This file is part of the GNU LIBICONV Library.
1786 + *
1787 + * The GNU LIBICONV Library is free software; you can redistribute it
1788 + * and/or modify it under the terms of the GNU Library General Public
1789 + * License as published by the Free Software Foundation; either version 2
1790 + * of the License, or (at your option) any later version.
1791 + *
1792 + * The GNU LIBICONV Library is distributed in the hope that it will be
1793 + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
1794 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
1795 + * Library General Public License for more details.
1796 + *
1797 + * You should have received a copy of the GNU Library General Public
1798 + * License along with the GNU LIBICONV Library; see the file COPYING.LIB.
1799 + * If not, write to the Free Software Foundation, Inc., 59 Temple Place -
1800 + * Suite 330, Boston, MA 02111-1307, USA.
1801 + */
1802 +
1803 +/*
1804 + * UTF-8-MAC
1805 + */
1806 +
1807 + /*
1808 +       Includes Unicode 3.2 decomposition code derived from Core Foundation
1809 + */
1810 +
1811 +#include <inttypes.h>
1812 +
1813 +#define        UTF_REVERSE_ENDIAN      0x01    /* reverse UCS-2 byte order */
1814 +#define        UTF_NO_NULL_TERM        0x02    /* do not add null termination */
1815 +#define        UTF_DECOMPOSED          0x04    /* generate fully decomposed UCS-2 */
1816 +#define        UTF_PRECOMPOSED         0x08    /* generate precomposed UCS-2 */
1817 +
1818 +int    utf8_encodestr (const u_int16_t *, size_t, u_int8_t *, size_t *,
1819 +               size_t, u_int16_t, int);
1820 +
1821 +int    utf8_decodestr (const u_int8_t *, size_t, u_int16_t *,size_t *,
1822 +               size_t, u_int16_t, int, size_t *);
1823 +
1824 +/*
1825 +       Derived from Core Foundation headers:
1826 +
1827 +               CFUniCharDecompData.h
1828 +               CFUniCharPrecompData.h
1829 +               CFUniCharNonBaseData.h
1830 +*/
1831 +
1832 +static const u_int16_t
1833 +__CFUniCharDecompositionTable[] = {
1834 +       0x00C0, 0x2000,   0x00C1, 0x2002,   0x00C2, 0x2004,   0x00C3, 0x2006,
1835 +       0x00C4, 0x2008,   0x00C5, 0x200A,   0x00C7, 0x200C,   0x00C8, 0x200E,
1836 +       0x00C9, 0x2010,   0x00CA, 0x2012,   0x00CB, 0x2014,   0x00CC, 0x2016,
1837 +       0x00CD, 0x2018,   0x00CE, 0x201A,   0x00CF, 0x201C,   0x00D1, 0x201E,
1838 +       0x00D2, 0x2020,   0x00D3, 0x2022,   0x00D4, 0x2024,   0x00D5, 0x2026,
1839 +       0x00D6, 0x2028,   0x00D9, 0x202A,   0x00DA, 0x202C,   0x00DB, 0x202E,
1840 +       0x00DC, 0x2030,   0x00DD, 0x2032,   0x00E0, 0x2034,   0x00E1, 0x2036,
1841 +       0x00E2, 0x2038,   0x00E3, 0x203A,   0x00E4, 0x203C,   0x00E5, 0x203E,
1842 +       0x00E7, 0x2040,   0x00E8, 0x2042,   0x00E9, 0x2044,   0x00EA, 0x2046,
1843 +       0x00EB, 0x2048,   0x00EC, 0x204A,   0x00ED, 0x204C,   0x00EE, 0x204E,
1844 +       0x00EF, 0x2050,   0x00F1, 0x2052,   0x00F2, 0x2054,   0x00F3, 0x2056,
1845 +       0x00F4, 0x2058,   0x00F5, 0x205A,   0x00F6, 0x205C,   0x00F9, 0x205E,
1846 +       0x00FA, 0x2060,   0x00FB, 0x2062,   0x00FC, 0x2064,   0x00FD, 0x2066,
1847 +       0x00FF, 0x2068,   0x0100, 0x206A,   0x0101, 0x206C,   0x0102, 0x206E,
1848 +       0x0103, 0x2070,   0x0104, 0x2072,   0x0105, 0x2074,   0x0106, 0x2076,
1849 +       0x0107, 0x2078,   0x0108, 0x207A,   0x0109, 0x207C,   0x010A, 0x207E,
1850 +       0x010B, 0x2080,   0x010C, 0x2082,   0x010D, 0x2084,   0x010E, 0x2086,
1851 +       0x010F, 0x2088,   0x0112, 0x208A,   0x0113, 0x208C,   0x0114, 0x208E,
1852 +       0x0115, 0x2090,   0x0116, 0x2092,   0x0117, 0x2094,   0x0118, 0x2096,
1853 +       0x0119, 0x2098,   0x011A, 0x209A,   0x011B, 0x209C,   0x011C, 0x209E,
1854 +       0x011D, 0x20A0,   0x011E, 0x20A2,   0x011F, 0x20A4,   0x0120, 0x20A6,
1855 +       0x0121, 0x20A8,   0x0122, 0x20AA,   0x0123, 0x20AC,   0x0124, 0x20AE,
1856 +       0x0125, 0x20B0,   0x0128, 0x20B2,   0x0129, 0x20B4,   0x012A, 0x20B6,
1857 +       0x012B, 0x20B8,   0x012C, 0x20BA,   0x012D, 0x20BC,   0x012E, 0x20BE,
1858 +       0x012F, 0x20C0,   0x0130, 0x20C2,   0x0134, 0x20C4,   0x0135, 0x20C6,
1859 +       0x0136, 0x20C8,   0x0137, 0x20CA,   0x0139, 0x20CC,   0x013A, 0x20CE,
1860 +       0x013B, 0x20D0,   0x013C, 0x20D2,   0x013D, 0x20D4,   0x013E, 0x20D6,
1861 +       0x0143, 0x20D8,   0x0144, 0x20DA,   0x0145, 0x20DC,   0x0146, 0x20DE,
1862 +       0x0147, 0x20E0,   0x0148, 0x20E2,   0x014C, 0x20E4,   0x014D, 0x20E6,
1863 +       0x014E, 0x20E8,   0x014F, 0x20EA,   0x0150, 0x20EC,   0x0151, 0x20EE,
1864 +       0x0154, 0x20F0,   0x0155, 0x20F2,   0x0156, 0x20F4,   0x0157, 0x20F6,
1865 +       0x0158, 0x20F8,   0x0159, 0x20FA,   0x015A, 0x20FC,   0x015B, 0x20FE,
1866 +       0x015C, 0x2100,   0x015D, 0x2102,   0x015E, 0x2104,   0x015F, 0x2106,
1867 +       0x0160, 0x2108,   0x0161, 0x210A,   0x0162, 0x210C,   0x0163, 0x210E,
1868 +       0x0164, 0x2110,   0x0165, 0x2112,   0x0168, 0x2114,   0x0169, 0x2116,
1869 +       0x016A, 0x2118,   0x016B, 0x211A,   0x016C, 0x211C,   0x016D, 0x211E,
1870 +       0x016E, 0x2120,   0x016F, 0x2122,   0x0170, 0x2124,   0x0171, 0x2126,
1871 +       0x0172, 0x2128,   0x0173, 0x212A,   0x0174, 0x212C,   0x0175, 0x212E,
1872 +       0x0176, 0x2130,   0x0177, 0x2132,   0x0178, 0x2134,   0x0179, 0x2136,
1873 +       0x017A, 0x2138,   0x017B, 0x213A,   0x017C, 0x213C,   0x017D, 0x213E,
1874 +       0x017E, 0x2140,   0x01A0, 0x2142,   0x01A1, 0x2144,   0x01AF, 0x2146,
1875 +       0x01B0, 0x2148,   0x01CD, 0x214A,   0x01CE, 0x214C,   0x01CF, 0x214E,
1876 +       0x01D0, 0x2150,   0x01D1, 0x2152,   0x01D2, 0x2154,   0x01D3, 0x2156,
1877 +       0x01D4, 0x2158,   0x01D5, 0xA15A,   0x01D6, 0xA15C,   0x01D7, 0xA15E,
1878 +       0x01D8, 0xA160,   0x01D9, 0xA162,   0x01DA, 0xA164,   0x01DB, 0xA166,
1879 +       0x01DC, 0xA168,   0x01DE, 0xA16A,   0x01DF, 0xA16C,   0x01E0, 0xA16E,
1880 +       0x01E1, 0xA170,   0x01E2, 0x2172,   0x01E3, 0x2174,   0x01E6, 0x2176,
1881 +       0x01E7, 0x2178,   0x01E8, 0x217A,   0x01E9, 0x217C,   0x01EA, 0x217E,
1882 +       0x01EB, 0x2180,   0x01EC, 0xA182,   0x01ED, 0xA184,   0x01EE, 0x2186,
1883 +       0x01EF, 0x2188,   0x01F0, 0x218A,   0x01F4, 0x218C,   0x01F5, 0x218E,
1884 +       0x01F8, 0x2190,   0x01F9, 0x2192,   0x01FA, 0xA194,   0x01FB, 0xA196,
1885 +       0x01FC, 0x2198,   0x01FD, 0x219A,   0x01FE, 0x219C,   0x01FF, 0x219E,
1886 +       0x0200, 0x21A0,   0x0201, 0x21A2,   0x0202, 0x21A4,   0x0203, 0x21A6,
1887 +       0x0204, 0x21A8,   0x0205, 0x21AA,   0x0206, 0x21AC,   0x0207, 0x21AE,
1888 +       0x0208, 0x21B0,   0x0209, 0x21B2,   0x020A, 0x21B4,   0x020B, 0x21B6,
1889 +       0x020C, 0x21B8,   0x020D, 0x21BA,   0x020E, 0x21BC,   0x020F, 0x21BE,
1890 +       0x0210, 0x21C0,   0x0211, 0x21C2,   0x0212, 0x21C4,   0x0213, 0x21C6,
1891 +       0x0214, 0x21C8,   0x0215, 0x21CA,   0x0216, 0x21CC,   0x0217, 0x21CE,
1892 +       0x0218, 0x21D0,   0x0219, 0x21D2,   0x021A, 0x21D4,   0x021B, 0x21D6,
1893 +       0x021E, 0x21D8,   0x021F, 0x21DA,   0x0226, 0x21DC,   0x0227, 0x21DE,
1894 +       0x0228, 0x21E0,   0x0229, 0x21E2,   0x022A, 0xA1E4,   0x022B, 0xA1E6,
1895 +       0x022C, 0xA1E8,   0x022D, 0xA1EA,   0x022E, 0x21EC,   0x022F, 0x21EE,
1896 +       0x0230, 0xA1F0,   0x0231, 0xA1F2,   0x0232, 0x21F4,   0x0233, 0x21F6,
1897 +       0x0340, 0x1300,   0x0341, 0x1301,   0x0343, 0x1313,   0x0344, 0x21F8,
1898 +       0x0374, 0x12B9,   0x037E, 0x103B,   0x0385, 0x21FA,   0x0386, 0x21FC,
1899 +       0x0387, 0x10B7,   0x0388, 0x21FE,   0x0389, 0x2200,   0x038A, 0x2202,
1900 +       0x038C, 0x2204,   0x038E, 0x2206,   0x038F, 0x2208,   0x0390, 0xA20A,
1901 +       0x03AA, 0x220C,   0x03AB, 0x220E,   0x03AC, 0x2210,   0x03AD, 0x2212,
1902 +       0x03AE, 0x2214,   0x03AF, 0x2216,   0x03B0, 0xA218,   0x03CA, 0x221A,
1903 +       0x03CB, 0x221C,   0x03CC, 0x221E,   0x03CD, 0x2220,   0x03CE, 0x2222,
1904 +       0x03D3, 0x2224,   0x03D4, 0x2226,   0x0400, 0x2228,   0x0401, 0x222A,
1905 +       0x0403, 0x222C,   0x0407, 0x222E,   0x040C, 0x2230,   0x040D, 0x2232,
1906 +       0x040E, 0x2234,   0x0419, 0x2236,   0x0439, 0x2238,   0x0450, 0x223A,
1907 +       0x0451, 0x223C,   0x0453, 0x223E,   0x0457, 0x2240,   0x045C, 0x2242,
1908 +       0x045D, 0x2244,   0x045E, 0x2246,   0x0476, 0x2248,   0x0477, 0x224A,
1909 +       0x04C1, 0x224C,   0x04C2, 0x224E,   0x04D0, 0x2250,   0x04D1, 0x2252,
1910 +       0x04D2, 0x2254,   0x04D3, 0x2256,   0x04D6, 0x2258,   0x04D7, 0x225A,
1911 +       0x04DA, 0x225C,   0x04DB, 0x225E,   0x04DC, 0x2260,   0x04DD, 0x2262,
1912 +       0x04DE, 0x2264,   0x04DF, 0x2266,   0x04E2, 0x2268,   0x04E3, 0x226A,
1913 +       0x04E4, 0x226C,   0x04E5, 0x226E,   0x04E6, 0x2270,   0x04E7, 0x2272,
1914 +       0x04EA, 0x2274,   0x04EB, 0x2276,   0x04EC, 0x2278,   0x04ED, 0x227A,
1915 +       0x04EE, 0x227C,   0x04EF, 0x227E,   0x04F0, 0x2280,   0x04F1, 0x2282,
1916 +       0x04F2, 0x2284,   0x04F3, 0x2286,   0x04F4, 0x2288,   0x04F5, 0x228A,
1917 +       0x04F8, 0x228C,   0x04F9, 0x228E,   0x0622, 0x2290,   0x0623, 0x2292,
1918 +       0x0624, 0x2294,   0x0625, 0x2296,   0x0626, 0x2298,   0x06C0, 0x229A,
1919 +       0x06C2, 0x229C,   0x06D3, 0x229E,   0x0929, 0x22A0,   0x0931, 0x22A2,
1920 +       0x0934, 0x22A4,   0x0958, 0x22A6,   0x0959, 0x22A8,   0x095A, 0x22AA,
1921 +       0x095B, 0x22AC,   0x095C, 0x22AE,   0x095D, 0x22B0,   0x095E, 0x22B2,
1922 +       0x095F, 0x22B4,   0x09CB, 0x22B6,   0x09CC, 0x22B8,   0x09DC, 0x22BA,
1923 +       0x09DD, 0x22BC,   0x09DF, 0x22BE,   0x0A33, 0x22C0,   0x0A36, 0x22C2,
1924 +       0x0A59, 0x22C4,   0x0A5A, 0x22C6,   0x0A5B, 0x22C8,   0x0A5E, 0x22CA,
1925 +       0x0B48, 0x22CC,   0x0B4B, 0x22CE,   0x0B4C, 0x22D0,   0x0B5C, 0x22D2,
1926 +       0x0B5D, 0x22D4,   0x0B94, 0x22D6,   0x0BCA, 0x22D8,   0x0BCB, 0x22DA,
1927 +       0x0BCC, 0x22DC,   0x0C48, 0x22DE,   0x0CC0, 0x22E0,   0x0CC7, 0x22E2,
1928 +       0x0CC8, 0x22E4,   0x0CCA, 0x22E6,   0x0CCB, 0xA2E8,   0x0D4A, 0x22EA,
1929 +       0x0D4B, 0x22EC,   0x0D4C, 0x22EE,   0x0DDA, 0x22F0,   0x0DDC, 0x22F2,
1930 +       0x0DDD, 0xA2F4,   0x0DDE, 0x22F6,   0x0F43, 0x22F8,   0x0F4D, 0x22FA,
1931 +       0x0F52, 0x22FC,   0x0F57, 0x22FE,   0x0F5C, 0x2300,   0x0F69, 0x2302,
1932 +       0x0F73, 0x2304,   0x0F75, 0x2306,   0x0F76, 0x2308,   0x0F78, 0x230A,
1933 +       0x0F81, 0x230C,   0x0F93, 0x230E,   0x0F9D, 0x2310,   0x0FA2, 0x2312,
1934 +       0x0FA7, 0x2314,   0x0FAC, 0x2316,   0x0FB9, 0x2318,   0x1026, 0x231A,
1935 +       0x1E00, 0x231C,   0x1E01, 0x231E,   0x1E02, 0x2320,   0x1E03, 0x2322,
1936 +       0x1E04, 0x2324,   0x1E05, 0x2326,   0x1E06, 0x2328,   0x1E07, 0x232A,
1937 +       0x1E08, 0xA32C,   0x1E09, 0xA32E,   0x1E0A, 0x2330,   0x1E0B, 0x2332,
1938 +       0x1E0C, 0x2334,   0x1E0D, 0x2336,   0x1E0E, 0x2338,   0x1E0F, 0x233A,
1939 +       0x1E10, 0x233C,   0x1E11, 0x233E,   0x1E12, 0x2340,   0x1E13, 0x2342,
1940 +       0x1E14, 0xA344,   0x1E15, 0xA346,   0x1E16, 0xA348,   0x1E17, 0xA34A,
1941 +       0x1E18, 0x234C,   0x1E19, 0x234E,   0x1E1A, 0x2350,   0x1E1B, 0x2352,
1942 +       0x1E1C, 0xA354,   0x1E1D, 0xA356,   0x1E1E, 0x2358,   0x1E1F, 0x235A,
1943 +       0x1E20, 0x235C,   0x1E21, 0x235E,   0x1E22, 0x2360,   0x1E23, 0x2362,
1944 +       0x1E24, 0x2364,   0x1E25, 0x2366,   0x1E26, 0x2368,   0x1E27, 0x236A,
1945 +       0x1E28, 0x236C,   0x1E29, 0x236E,   0x1E2A, 0x2370,   0x1E2B, 0x2372,
1946 +       0x1E2C, 0x2374,   0x1E2D, 0x2376,   0x1E2E, 0xA378,   0x1E2F, 0xA37A,
1947 +       0x1E30, 0x237C,   0x1E31, 0x237E,   0x1E32, 0x2380,   0x1E33, 0x2382,
1948 +       0x1E34, 0x2384,   0x1E35, 0x2386,   0x1E36, 0x2388,   0x1E37, 0x238A,
1949 +       0x1E38, 0xA38C,   0x1E39, 0xA38E,   0x1E3A, 0x2390,   0x1E3B, 0x2392,
1950 +       0x1E3C, 0x2394,   0x1E3D, 0x2396,   0x1E3E, 0x2398,   0x1E3F, 0x239A,
1951 +       0x1E40, 0x239C,   0x1E41, 0x239E,   0x1E42, 0x23A0,   0x1E43, 0x23A2,
1952 +       0x1E44, 0x23A4,   0x1E45, 0x23A6,   0x1E46, 0x23A8,   0x1E47, 0x23AA,
1953 +       0x1E48, 0x23AC,   0x1E49, 0x23AE,   0x1E4A, 0x23B0,   0x1E4B, 0x23B2,
1954 +       0x1E4C, 0xA3B4,   0x1E4D, 0xA3B6,   0x1E4E, 0xA3B8,   0x1E4F, 0xA3BA,
1955 +       0x1E50, 0xA3BC,   0x1E51, 0xA3BE,   0x1E52, 0xA3C0,   0x1E53, 0xA3C2,
1956 +       0x1E54, 0x23C4,   0x1E55, 0x23C6,   0x1E56, 0x23C8,   0x1E57, 0x23CA,
1957 +       0x1E58, 0x23CC,   0x1E59, 0x23CE,   0x1E5A, 0x23D0,   0x1E5B, 0x23D2,
1958 +       0x1E5C, 0xA3D4,   0x1E5D, 0xA3D6,   0x1E5E, 0x23D8,   0x1E5F, 0x23DA,
1959 +       0x1E60, 0x23DC,   0x1E61, 0x23DE,   0x1E62, 0x23E0,   0x1E63, 0x23E2,
1960 +       0x1E64, 0xA3E4,   0x1E65, 0xA3E6,   0x1E66, 0xA3E8,   0x1E67, 0xA3EA,
1961 +       0x1E68, 0xA3EC,   0x1E69, 0xA3EE,   0x1E6A, 0x23F0,   0x1E6B, 0x23F2,
1962 +       0x1E6C, 0x23F4,   0x1E6D, 0x23F6,   0x1E6E, 0x23F8,   0x1E6F, 0x23FA,
1963 +       0x1E70, 0x23FC,   0x1E71, 0x23FE,   0x1E72, 0x2400,   0x1E73, 0x2402,
1964 +       0x1E74, 0x2404,   0x1E75, 0x2406,   0x1E76, 0x2408,   0x1E77, 0x240A,
1965 +       0x1E78, 0xA40C,   0x1E79, 0xA40E,   0x1E7A, 0xA410,   0x1E7B, 0xA412,
1966 +       0x1E7C, 0x2414,   0x1E7D, 0x2416,   0x1E7E, 0x2418,   0x1E7F, 0x241A,
1967 +       0x1E80, 0x241C,   0x1E81, 0x241E,   0x1E82, 0x2420,   0x1E83, 0x2422,
1968 +       0x1E84, 0x2424,   0x1E85, 0x2426,   0x1E86, 0x2428,   0x1E87, 0x242A,
1969 +       0x1E88, 0x242C,   0x1E89, 0x242E,   0x1E8A, 0x2430,   0x1E8B, 0x2432,
1970 +       0x1E8C, 0x2434,   0x1E8D, 0x2436,   0x1E8E, 0x2438,   0x1E8F, 0x243A,
1971 +       0x1E90, 0x243C,   0x1E91, 0x243E,   0x1E92, 0x2440,   0x1E93, 0x2442,
1972 +       0x1E94, 0x2444,   0x1E95, 0x2446,   0x1E96, 0x2448,   0x1E97, 0x244A,
1973 +       0x1E98, 0x244C,   0x1E99, 0x244E,   0x1E9B, 0x2450,   0x1EA0, 0x2452,
1974 +       0x1EA1, 0x2454,   0x1EA2, 0x2456,   0x1EA3, 0x2458,   0x1EA4, 0xA45A,
1975 +       0x1EA5, 0xA45C,   0x1EA6, 0xA45E,   0x1EA7, 0xA460,   0x1EA8, 0xA462,
1976 +       0x1EA9, 0xA464,   0x1EAA, 0xA466,   0x1EAB, 0xA468,   0x1EAC, 0xA46A,
1977 +       0x1EAD, 0xA46C,   0x1EAE, 0xA46E,   0x1EAF, 0xA470,   0x1EB0, 0xA472,
1978 +       0x1EB1, 0xA474,   0x1EB2, 0xA476,   0x1EB3, 0xA478,   0x1EB4, 0xA47A,
1979 +       0x1EB5, 0xA47C,   0x1EB6, 0xA47E,   0x1EB7, 0xA480,   0x1EB8, 0x2482,
1980 +       0x1EB9, 0x2484,   0x1EBA, 0x2486,   0x1EBB, 0x2488,   0x1EBC, 0x248A,
1981 +       0x1EBD, 0x248C,   0x1EBE, 0xA48E,   0x1EBF, 0xA490,   0x1EC0, 0xA492,
1982 +       0x1EC1, 0xA494,   0x1EC2, 0xA496,   0x1EC3, 0xA498,   0x1EC4, 0xA49A,
1983 +       0x1EC5, 0xA49C,   0x1EC6, 0xA49E,   0x1EC7, 0xA4A0,   0x1EC8, 0x24A2,
1984 +       0x1EC9, 0x24A4,   0x1ECA, 0x24A6,   0x1ECB, 0x24A8,   0x1ECC, 0x24AA,
1985 +       0x1ECD, 0x24AC,   0x1ECE, 0x24AE,   0x1ECF, 0x24B0,   0x1ED0, 0xA4B2,
1986 +       0x1ED1, 0xA4B4,   0x1ED2, 0xA4B6,   0x1ED3, 0xA4B8,   0x1ED4, 0xA4BA,
1987 +       0x1ED5, 0xA4BC,   0x1ED6, 0xA4BE,   0x1ED7, 0xA4C0,   0x1ED8, 0xA4C2,
1988 +       0x1ED9, 0xA4C4,   0x1EDA, 0xA4C6,   0x1EDB, 0xA4C8,   0x1EDC, 0xA4CA,
1989 +       0x1EDD, 0xA4CC,   0x1EDE, 0xA4CE,   0x1EDF, 0xA4D0,   0x1EE0, 0xA4D2,
1990 +       0x1EE1, 0xA4D4,   0x1EE2, 0xA4D6,   0x1EE3, 0xA4D8,   0x1EE4, 0x24DA,
1991 +       0x1EE5, 0x24DC,   0x1EE6, 0x24DE,   0x1EE7, 0x24E0,   0x1EE8, 0xA4E2,
1992 +       0x1EE9, 0xA4E4,   0x1EEA, 0xA4E6,   0x1EEB, 0xA4E8,   0x1EEC, 0xA4EA,
1993 +       0x1EED, 0xA4EC,   0x1EEE, 0xA4EE,   0x1EEF, 0xA4F0,   0x1EF0, 0xA4F2,
1994 +       0x1EF1, 0xA4F4,   0x1EF2, 0x24F6,   0x1EF3, 0x24F8,   0x1EF4, 0x24FA,
1995 +       0x1EF5, 0x24FC,   0x1EF6, 0x24FE,   0x1EF7, 0x2500,   0x1EF8, 0x2502,
1996 +       0x1EF9, 0x2504,   0x1F00, 0x2506,   0x1F01, 0x2508,   0x1F02, 0xA50A,
1997 +       0x1F03, 0xA50C,   0x1F04, 0xA50E,   0x1F05, 0xA510,   0x1F06, 0xA512,
1998 +       0x1F07, 0xA514,   0x1F08, 0x2516,   0x1F09, 0x2518,   0x1F0A, 0xA51A,
1999 +       0x1F0B, 0xA51C,   0x1F0C, 0xA51E,   0x1F0D, 0xA520,   0x1F0E, 0xA522,
2000 +       0x1F0F, 0xA524,   0x1F10, 0x2526,   0x1F11, 0x2528,   0x1F12, 0xA52A,
2001 +       0x1F13, 0xA52C,   0x1F14, 0xA52E,   0x1F15, 0xA530,   0x1F18, 0x2532,
2002 +       0x1F19, 0x2534,   0x1F1A, 0xA536,   0x1F1B, 0xA538,   0x1F1C, 0xA53A,
2003 +       0x1F1D, 0xA53C,   0x1F20, 0x253E,   0x1F21, 0x2540,   0x1F22, 0xA542,
2004 +       0x1F23, 0xA544,   0x1F24, 0xA546,   0x1F25, 0xA548,   0x1F26, 0xA54A,
2005 +       0x1F27, 0xA54C,   0x1F28, 0x254E,   0x1F29, 0x2550,   0x1F2A, 0xA552,
2006 +       0x1F2B, 0xA554,   0x1F2C, 0xA556,   0x1F2D, 0xA558,   0x1F2E, 0xA55A,
2007 +       0x1F2F, 0xA55C,   0x1F30, 0x255E,   0x1F31, 0x2560,   0x1F32, 0xA562,
2008 +       0x1F33, 0xA564,   0x1F34, 0xA566,   0x1F35, 0xA568,   0x1F36, 0xA56A,
2009 +       0x1F37, 0xA56C,   0x1F38, 0x256E,   0x1F39, 0x2570,   0x1F3A, 0xA572,
2010 +       0x1F3B, 0xA574,   0x1F3C, 0xA576,   0x1F3D, 0xA578,   0x1F3E, 0xA57A,
2011 +       0x1F3F, 0xA57C,   0x1F40, 0x257E,   0x1F41, 0x2580,   0x1F42, 0xA582,
2012 +       0x1F43, 0xA584,   0x1F44, 0xA586,   0x1F45, 0xA588,   0x1F48, 0x258A,
2013 +       0x1F49, 0x258C,   0x1F4A, 0xA58E,   0x1F4B, 0xA590,   0x1F4C, 0xA592,
2014 +       0x1F4D, 0xA594,   0x1F50, 0x2596,   0x1F51, 0x2598,   0x1F52, 0xA59A,
2015 +       0x1F53, 0xA59C,   0x1F54, 0xA59E,   0x1F55, 0xA5A0,   0x1F56, 0xA5A2,
2016 +       0x1F57, 0xA5A4,   0x1F59, 0x25A6,   0x1F5B, 0xA5A8,   0x1F5D, 0xA5AA,
2017 +       0x1F5F, 0xA5AC,   0x1F60, 0x25AE,   0x1F61, 0x25B0,   0x1F62, 0xA5B2,
2018 +       0x1F63, 0xA5B4,   0x1F64, 0xA5B6,   0x1F65, 0xA5B8,   0x1F66, 0xA5BA,
2019 +       0x1F67, 0xA5BC,   0x1F68, 0x25BE,   0x1F69, 0x25C0,   0x1F6A, 0xA5C2,
2020 +       0x1F6B, 0xA5C4,   0x1F6C, 0xA5C6,   0x1F6D, 0xA5C8,   0x1F6E, 0xA5CA,
2021 +       0x1F6F, 0xA5CC,   0x1F70, 0x25CE,   0x1F71, 0x93AC,   0x1F72, 0x25D0,
2022 +       0x1F73, 0x93AD,   0x1F74, 0x25D2,   0x1F75, 0x93AE,   0x1F76, 0x25D4,
2023 +       0x1F77, 0x93AF,   0x1F78, 0x25D6,   0x1F79, 0x93CC,   0x1F7A, 0x25D8,
2024 +       0x1F7B, 0x93CD,   0x1F7C, 0x25DA,   0x1F7D, 0x93CE,   0x1F80, 0xA5DC,
2025 +       0x1F81, 0xA5DE,   0x1F82, 0xA5E0,   0x1F83, 0xA5E2,   0x1F84, 0xA5E4,
2026 +       0x1F85, 0xA5E6,   0x1F86, 0xA5E8,   0x1F87, 0xA5EA,   0x1F88, 0xA5EC,
2027 +       0x1F89, 0xA5EE,   0x1F8A, 0xA5F0,   0x1F8B, 0xA5F2,   0x1F8C, 0xA5F4,
2028 +       0x1F8D, 0xA5F6,   0x1F8E, 0xA5F8,   0x1F8F, 0xA5FA,   0x1F90, 0xA5FC,
2029 +       0x1F91, 0xA5FE,   0x1F92, 0xA600,   0x1F93, 0xA602,   0x1F94, 0xA604,
2030 +       0x1F95, 0xA606,   0x1F96, 0xA608,   0x1F97, 0xA60A,   0x1F98, 0xA60C,
2031 +       0x1F99, 0xA60E,   0x1F9A, 0xA610,   0x1F9B, 0xA612,   0x1F9C, 0xA614,
2032 +       0x1F9D, 0xA616,   0x1F9E, 0xA618,   0x1F9F, 0xA61A,   0x1FA0, 0xA61C,
2033 +       0x1FA1, 0xA61E,   0x1FA2, 0xA620,   0x1FA3, 0xA622,   0x1FA4, 0xA624,
2034 +       0x1FA5, 0xA626,   0x1FA6, 0xA628,   0x1FA7, 0xA62A,   0x1FA8, 0xA62C,
2035 +       0x1FA9, 0xA62E,   0x1FAA, 0xA630,   0x1FAB, 0xA632,   0x1FAC, 0xA634,
2036 +       0x1FAD, 0xA636,   0x1FAE, 0xA638,   0x1FAF, 0xA63A,   0x1FB0, 0x263C,
2037 +       0x1FB1, 0x263E,   0x1FB2, 0xA640,   0x1FB3, 0x2642,   0x1FB4, 0xA644,
2038 +       0x1FB6, 0x2646,   0x1FB7, 0xA648,   0x1FB8, 0x264A,   0x1FB9, 0x264C,
2039 +       0x1FBA, 0x264E,   0x1FBB, 0x9386,   0x1FBC, 0x2650,   0x1FBE, 0x13B9,
2040 +       0x1FC1, 0x2652,   0x1FC2, 0xA654,   0x1FC3, 0x2656,   0x1FC4, 0xA658,
2041 +       0x1FC6, 0x265A,   0x1FC7, 0xA65C,   0x1FC8, 0x265E,   0x1FC9, 0x9388,
2042 +       0x1FCA, 0x2660,   0x1FCB, 0x9389,   0x1FCC, 0x2662,   0x1FCD, 0x2664,
2043 +       0x1FCE, 0x2666,   0x1FCF, 0x2668,   0x1FD0, 0x266A,   0x1FD1, 0x266C,
2044 +       0x1FD2, 0xA66E,   0x1FD3, 0x9390,   0x1FD6, 0x2670,   0x1FD7, 0xA672,
2045 +       0x1FD8, 0x2674,   0x1FD9, 0x2676,   0x1FDA, 0x2678,   0x1FDB, 0x938A,
2046 +       0x1FDD, 0x267A,   0x1FDE, 0x267C,   0x1FDF, 0x267E,   0x1FE0, 0x2680,
2047 +       0x1FE1, 0x2682,   0x1FE2, 0xA684,   0x1FE3, 0x93B0,   0x1FE4, 0x2686,
2048 +       0x1FE5, 0x2688,   0x1FE6, 0x268A,   0x1FE7, 0xA68C,   0x1FE8, 0x268E,
2049 +       0x1FE9, 0x2690,   0x1FEA, 0x2692,   0x1FEB, 0x938E,   0x1FEC, 0x2694,
2050 +       0x1FED, 0x2696,   0x1FEE, 0x9385,   0x1FEF, 0x1060,   0x1FF2, 0xA698,
2051 +       0x1FF3, 0x269A,   0x1FF4, 0xA69C,   0x1FF6, 0x269E,   0x1FF7, 0xA6A0,
2052 +       0x1FF8, 0x26A2,   0x1FF9, 0x938C,   0x1FFA, 0x26A4,   0x1FFB, 0x938F,
2053 +       0x1FFC, 0x26A6,   0x1FFD, 0x10B4,   0x304C, 0x26A8,   0x304E, 0x26AA,
2054 +       0x3050, 0x26AC,   0x3052, 0x26AE,   0x3054, 0x26B0,   0x3056, 0x26B2,
2055 +       0x3058, 0x26B4,   0x305A, 0x26B6,   0x305C, 0x26B8,   0x305E, 0x26BA,
2056 +       0x3060, 0x26BC,   0x3062, 0x26BE,   0x3065, 0x26C0,   0x3067, 0x26C2,
2057 +       0x3069, 0x26C4,   0x3070, 0x26C6,   0x3071, 0x26C8,   0x3073, 0x26CA,
2058 +       0x3074, 0x26CC,   0x3076, 0x26CE,   0x3077, 0x26D0,   0x3079, 0x26D2,
2059 +       0x307A, 0x26D4,   0x307C, 0x26D6,   0x307D, 0x26D8,   0x3094, 0x26DA,
2060 +       0x309E, 0x26DC,   0x30AC, 0x26DE,   0x30AE, 0x26E0,   0x30B0, 0x26E2,
2061 +       0x30B2, 0x26E4,   0x30B4, 0x26E6,   0x30B6, 0x26E8,   0x30B8, 0x26EA,
2062 +       0x30BA, 0x26EC,   0x30BC, 0x26EE,   0x30BE, 0x26F0,   0x30C0, 0x26F2,
2063 +       0x30C2, 0x26F4,   0x30C5, 0x26F6,   0x30C7, 0x26F8,   0x30C9, 0x26FA,
2064 +       0x30D0, 0x26FC,   0x30D1, 0x26FE,   0x30D3, 0x2700,   0x30D4, 0x2702,
2065 +       0x30D6, 0x2704,   0x30D7, 0x2706,   0x30D9, 0x2708,   0x30DA, 0x270A,
2066 +       0x30DC, 0x270C,   0x30DD, 0x270E,   0x30F4, 0x2710,   0x30F7, 0x2712,
2067 +       0x30F8, 0x2714,   0x30F9, 0x2716,   0x30FA, 0x2718,   0x30FE, 0x271A,
2068 +       0xFB1D, 0x271C,   0xFB1F, 0x271E,   0xFB2A, 0x2720,   0xFB2B, 0x2722,
2069 +       0xFB2C, 0xA724,   0xFB2D, 0xA726,   0xFB2E, 0x2728,   0xFB2F, 0x272A,
2070 +       0xFB30, 0x272C,   0xFB31, 0x272E,   0xFB32, 0x2730,   0xFB33, 0x2732,
2071 +       0xFB34, 0x2734,   0xFB35, 0x2736,   0xFB36, 0x2738,   0xFB38, 0x273A,
2072 +       0xFB39, 0x273C,   0xFB3A, 0x273E,   0xFB3B, 0x2740,   0xFB3C, 0x2742,
2073 +       0xFB3E, 0x2744,   0xFB40, 0x2746,   0xFB41, 0x2748,   0xFB43, 0x274A,
2074 +       0xFB44, 0x274C,   0xFB46, 0x274E,   0xFB47, 0x2750,   0xFB48, 0x2752,
2075 +       0xFB49, 0x2754,   0xFB4A, 0x2756,   0xFB4B, 0x2758,   0xFB4C, 0x275A,
2076 +       0xFB4D, 0x275C,   0xFB4E, 0x275E
2077 +};
2078 +
2079 +static const u_int32_t __UniCharDecompositionTableLength =
2080 +       (sizeof(__CFUniCharDecompositionTable) / (sizeof(u_int16_t) * 2));
2081 +
2082 +
2083 +static const u_int16_t
2084 +__CFUniCharMultipleDecompositionTable[] = {
2085 +       0x0041, 0x0300, 0x0041, 0x0301, 0x0041, 0x0302, 0x0041, 0x0303,
2086 +       0x0041, 0x0308, 0x0041, 0x030A, 0x0043, 0x0327, 0x0045, 0x0300,
2087 +       0x0045, 0x0301, 0x0045, 0x0302, 0x0045, 0x0308, 0x0049, 0x0300,
2088 +       0x0049, 0x0301, 0x0049, 0x0302, 0x0049, 0x0308, 0x004E, 0x0303,
2089 +       0x004F, 0x0300, 0x004F, 0x0301, 0x004F, 0x0302, 0x004F, 0x0303,
2090 +       0x004F, 0x0308, 0x0055, 0x0300, 0x0055, 0x0301, 0x0055, 0x0302,
2091 +       0x0055, 0x0308, 0x0059, 0x0301, 0x0061, 0x0300, 0x0061, 0x0301,
2092 +       0x0061, 0x0302, 0x0061, 0x0303, 0x0061, 0x0308, 0x0061, 0x030A,
2093 +       0x0063, 0x0327, 0x0065, 0x0300, 0x0065, 0x0301, 0x0065, 0x0302,
2094 +       0x0065, 0x0308, 0x0069, 0x0300, 0x0069, 0x0301, 0x0069, 0x0302,
2095 +       0x0069, 0x0308, 0x006E, 0x0303, 0x006F, 0x0300, 0x006F, 0x0301,
2096 +       0x006F, 0x0302, 0x006F, 0x0303, 0x006F, 0x0308, 0x0075, 0x0300,
2097 +       0x0075, 0x0301, 0x0075, 0x0302, 0x0075, 0x0308, 0x0079, 0x0301,
2098 +       0x0079, 0x0308, 0x0041, 0x0304, 0x0061, 0x0304, 0x0041, 0x0306,
2099 +       0x0061, 0x0306, 0x0041, 0x0328, 0x0061, 0x0328, 0x0043, 0x0301,
2100 +       0x0063, 0x0301, 0x0043, 0x0302, 0x0063, 0x0302, 0x0043, 0x0307,
2101 +       0x0063, 0x0307, 0x0043, 0x030C, 0x0063, 0x030C, 0x0044, 0x030C,
2102 +       0x0064, 0x030C, 0x0045, 0x0304, 0x0065, 0x0304, 0x0045, 0x0306,
2103 +       0x0065, 0x0306, 0x0045, 0x0307, 0x0065, 0x0307, 0x0045, 0x0328,
2104 +       0x0065, 0x0328, 0x0045, 0x030C, 0x0065, 0x030C, 0x0047, 0x0302,
2105 +       0x0067, 0x0302, 0x0047, 0x0306, 0x0067, 0x0306, 0x0047, 0x0307,
2106 +       0x0067, 0x0307, 0x0047, 0x0327, 0x0067, 0x0327, 0x0048, 0x0302,
2107 +       0x0068, 0x0302, 0x0049, 0x0303, 0x0069, 0x0303, 0x0049, 0x0304,
2108 +       0x0069, 0x0304, 0x0049, 0x0306, 0x0069, 0x0306, 0x0049, 0x0328,
2109 +       0x0069, 0x0328, 0x0049, 0x0307, 0x004A, 0x0302, 0x006A, 0x0302,
2110 +       0x004B, 0x0327, 0x006B, 0x0327, 0x004C, 0x0301, 0x006C, 0x0301,
2111 +       0x004C, 0x0327, 0x006C, 0x0327, 0x004C, 0x030C, 0x006C, 0x030C,
2112 +       0x004E, 0x0301, 0x006E, 0x0301, 0x004E, 0x0327, 0x006E, 0x0327,
2113 +       0x004E, 0x030C, 0x006E, 0x030C, 0x004F, 0x0304, 0x006F, 0x0304,
2114 +       0x004F, 0x0306, 0x006F, 0x0306, 0x004F, 0x030B, 0x006F, 0x030B,
2115 +       0x0052, 0x0301, 0x0072, 0x0301, 0x0052, 0x0327, 0x0072, 0x0327,
2116 +       0x0052, 0x030C, 0x0072, 0x030C, 0x0053, 0x0301, 0x0073, 0x0301,
2117 +       0x0053, 0x0302, 0x0073, 0x0302, 0x0053, 0x0327, 0x0073, 0x0327,
2118 +       0x0053, 0x030C, 0x0073, 0x030C, 0x0054, 0x0327, 0x0074, 0x0327,
2119 +       0x0054, 0x030C, 0x0074, 0x030C, 0x0055, 0x0303, 0x0075, 0x0303,
2120 +       0x0055, 0x0304, 0x0075, 0x0304, 0x0055, 0x0306, 0x0075, 0x0306,
2121 +       0x0055, 0x030A, 0x0075, 0x030A, 0x0055, 0x030B, 0x0075, 0x030B,
2122 +       0x0055, 0x0328, 0x0075, 0x0328, 0x0057, 0x0302, 0x0077, 0x0302,
2123 +       0x0059, 0x0302, 0x0079, 0x0302, 0x0059, 0x0308, 0x005A, 0x0301,
2124 +       0x007A, 0x0301, 0x005A, 0x0307, 0x007A, 0x0307, 0x005A, 0x030C,
2125 +       0x007A, 0x030C, 0x004F, 0x031B, 0x006F, 0x031B, 0x0055, 0x031B,
2126 +       0x0075, 0x031B, 0x0041, 0x030C, 0x0061, 0x030C, 0x0049, 0x030C,
2127 +       0x0069, 0x030C, 0x004F, 0x030C, 0x006F, 0x030C, 0x0055, 0x030C,
2128 +       0x0075, 0x030C, 0x00DC, 0x0304, 0x00FC, 0x0304, 0x00DC, 0x0301,
2129 +       0x00FC, 0x0301, 0x00DC, 0x030C, 0x00FC, 0x030C, 0x00DC, 0x0300,
2130 +       0x00FC, 0x0300, 0x00C4, 0x0304, 0x00E4, 0x0304, 0x0226, 0x0304,
2131 +       0x0227, 0x0304, 0x00C6, 0x0304, 0x00E6, 0x0304, 0x0047, 0x030C,
2132 +       0x0067, 0x030C, 0x004B, 0x030C, 0x006B, 0x030C, 0x004F, 0x0328,
2133 +       0x006F, 0x0328, 0x01EA, 0x0304, 0x01EB, 0x0304, 0x01B7, 0x030C,
2134 +       0x0292, 0x030C, 0x006A, 0x030C, 0x0047, 0x0301, 0x0067, 0x0301,
2135 +       0x004E, 0x0300, 0x006E, 0x0300, 0x00C5, 0x0301, 0x00E5, 0x0301,
2136 +       0x00C6, 0x0301, 0x00E6, 0x0301, 0x00D8, 0x0301, 0x00F8, 0x0301,
2137 +       0x0041, 0x030F, 0x0061, 0x030F, 0x0041, 0x0311, 0x0061, 0x0311,
2138 +       0x0045, 0x030F, 0x0065, 0x030F, 0x0045, 0x0311, 0x0065, 0x0311,
2139 +       0x0049, 0x030F, 0x0069, 0x030F, 0x0049, 0x0311, 0x0069, 0x0311,
2140 +       0x004F, 0x030F, 0x006F, 0x030F, 0x004F, 0x0311, 0x006F, 0x0311,
2141 +       0x0052, 0x030F, 0x0072, 0x030F, 0x0052, 0x0311, 0x0072, 0x0311,
2142 +       0x0055, 0x030F, 0x0075, 0x030F, 0x0055, 0x0311, 0x0075, 0x0311,
2143 +       0x0053, 0x0326, 0x0073, 0x0326, 0x0054, 0x0326, 0x0074, 0x0326,
2144 +       0x0048, 0x030C, 0x0068, 0x030C, 0x0041, 0x0307, 0x0061, 0x0307,
2145 +       0x0045, 0x0327, 0x0065, 0x0327, 0x00D6, 0x0304, 0x00F6, 0x0304,
2146 +       0x00D5, 0x0304, 0x00F5, 0x0304, 0x004F, 0x0307, 0x006F, 0x0307,
2147 +       0x022E, 0x0304, 0x022F, 0x0304, 0x0059, 0x0304, 0x0079, 0x0304,
2148 +       0x0308, 0x0301, 0x00A8, 0x0301, 0x0391, 0x0301, 0x0395, 0x0301,
2149 +       0x0397, 0x0301, 0x0399, 0x0301, 0x039F, 0x0301, 0x03A5, 0x0301,
2150 +       0x03A9, 0x0301, 0x03CA, 0x0301, 0x0399, 0x0308, 0x03A5, 0x0308,
2151 +       0x03B1, 0x0301, 0x03B5, 0x0301, 0x03B7, 0x0301, 0x03B9, 0x0301,
2152 +       0x03CB, 0x0301, 0x03B9, 0x0308, 0x03C5, 0x0308, 0x03BF, 0x0301,
2153 +       0x03C5, 0x0301, 0x03C9, 0x0301, 0x03D2, 0x0301, 0x03D2, 0x0308,
2154 +       0x0415, 0x0300, 0x0415, 0x0308, 0x0413, 0x0301, 0x0406, 0x0308,
2155 +       0x041A, 0x0301, 0x0418, 0x0300, 0x0423, 0x0306, 0x0418, 0x0306,
2156 +       0x0438, 0x0306, 0x0435, 0x0300, 0x0435, 0x0308, 0x0433, 0x0301,
2157 +       0x0456, 0x0308, 0x043A, 0x0301, 0x0438, 0x0300, 0x0443, 0x0306,
2158 +       0x0474, 0x030F, 0x0475, 0x030F, 0x0416, 0x0306, 0x0436, 0x0306,
2159 +       0x0410, 0x0306, 0x0430, 0x0306, 0x0410, 0x0308, 0x0430, 0x0308,
2160 +       0x0415, 0x0306, 0x0435, 0x0306, 0x04D8, 0x0308, 0x04D9, 0x0308,
2161 +       0x0416, 0x0308, 0x0436, 0x0308, 0x0417, 0x0308, 0x0437, 0x0308,
2162 +       0x0418, 0x0304, 0x0438, 0x0304, 0x0418, 0x0308, 0x0438, 0x0308,
2163 +       0x041E, 0x0308, 0x043E, 0x0308, 0x04E8, 0x0308, 0x04E9, 0x0308,
2164 +       0x042D, 0x0308, 0x044D, 0x0308, 0x0423, 0x0304, 0x0443, 0x0304,
2165 +       0x0423, 0x0308, 0x0443, 0x0308, 0x0423, 0x030B, 0x0443, 0x030B,
2166 +       0x0427, 0x0308, 0x0447, 0x0308, 0x042B, 0x0308, 0x044B, 0x0308,
2167 +       0x0627, 0x0653, 0x0627, 0x0654, 0x0648, 0x0654, 0x0627, 0x0655,
2168 +       0x064A, 0x0654, 0x06D5, 0x0654, 0x06C1, 0x0654, 0x06D2, 0x0654,
2169 +       0x0928, 0x093C, 0x0930, 0x093C, 0x0933, 0x093C, 0x0915, 0x093C,
2170 +       0x0916, 0x093C, 0x0917, 0x093C, 0x091C, 0x093C, 0x0921, 0x093C,
2171 +       0x0922, 0x093C, 0x092B, 0x093C, 0x092F, 0x093C, 0x09C7, 0x09BE,
2172 +       0x09C7, 0x09D7, 0x09A1, 0x09BC, 0x09A2, 0x09BC, 0x09AF, 0x09BC,
2173 +       0x0A32, 0x0A3C, 0x0A38, 0x0A3C, 0x0A16, 0x0A3C, 0x0A17, 0x0A3C,
2174 +       0x0A1C, 0x0A3C, 0x0A2B, 0x0A3C, 0x0B47, 0x0B56, 0x0B47, 0x0B3E,
2175 +       0x0B47, 0x0B57, 0x0B21, 0x0B3C, 0x0B22, 0x0B3C, 0x0B92, 0x0BD7,
2176 +       0x0BC6, 0x0BBE, 0x0BC7, 0x0BBE, 0x0BC6, 0x0BD7, 0x0C46, 0x0C56,
2177 +       0x0CBF, 0x0CD5, 0x0CC6, 0x0CD5, 0x0CC6, 0x0CD6, 0x0CC6, 0x0CC2,
2178 +       0x0CCA, 0x0CD5, 0x0D46, 0x0D3E, 0x0D47, 0x0D3E, 0x0D46, 0x0D57,
2179 +       0x0DD9, 0x0DCA, 0x0DD9, 0x0DCF, 0x0DDC, 0x0DCA, 0x0DD9, 0x0DDF,
2180 +       0x0F42, 0x0FB7, 0x0F4C, 0x0FB7, 0x0F51, 0x0FB7, 0x0F56, 0x0FB7,
2181 +       0x0F5B, 0x0FB7, 0x0F40, 0x0FB5, 0x0F71, 0x0F72, 0x0F71, 0x0F74,
2182 +       0x0FB2, 0x0F80, 0x0FB3, 0x0F80, 0x0F71, 0x0F80, 0x0F92, 0x0FB7,
2183 +       0x0F9C, 0x0FB7, 0x0FA1, 0x0FB7, 0x0FA6, 0x0FB7, 0x0FAB, 0x0FB7,
2184 +       0x0F90, 0x0FB5, 0x1025, 0x102E, 0x0041, 0x0325, 0x0061, 0x0325,
2185 +       0x0042, 0x0307, 0x0062, 0x0307, 0x0042, 0x0323, 0x0062, 0x0323,
2186 +       0x0042, 0x0331, 0x0062, 0x0331, 0x00C7, 0x0301, 0x00E7, 0x0301,
2187 +       0x0044, 0x0307, 0x0064, 0x0307, 0x0044, 0x0323, 0x0064, 0x0323,
2188 +       0x0044, 0x0331, 0x0064, 0x0331, 0x0044, 0x0327, 0x0064, 0x0327,
2189 +       0x0044, 0x032D, 0x0064, 0x032D, 0x0112, 0x0300, 0x0113, 0x0300,
2190 +       0x0112, 0x0301, 0x0113, 0x0301, 0x0045, 0x032D, 0x0065, 0x032D,
2191 +       0x0045, 0x0330, 0x0065, 0x0330, 0x0228, 0x0306, 0x0229, 0x0306,
2192 +       0x0046, 0x0307, 0x0066, 0x0307, 0x0047, 0x0304, 0x0067, 0x0304,
2193 +       0x0048, 0x0307, 0x0068, 0x0307, 0x0048, 0x0323, 0x0068, 0x0323,
2194 +       0x0048, 0x0308, 0x0068, 0x0308, 0x0048, 0x0327, 0x0068, 0x0327,
2195 +       0x0048, 0x032E, 0x0068, 0x032E, 0x0049, 0x0330, 0x0069, 0x0330,
2196 +       0x00CF, 0x0301, 0x00EF, 0x0301, 0x004B, 0x0301, 0x006B, 0x0301,
2197 +       0x004B, 0x0323, 0x006B, 0x0323, 0x004B, 0x0331, 0x006B, 0x0331,
2198 +       0x004C, 0x0323, 0x006C, 0x0323, 0x1E36, 0x0304, 0x1E37, 0x0304,
2199 +       0x004C, 0x0331, 0x006C, 0x0331, 0x004C, 0x032D, 0x006C, 0x032D,
2200 +       0x004D, 0x0301, 0x006D, 0x0301, 0x004D, 0x0307, 0x006D, 0x0307,
2201 +       0x004D, 0x0323, 0x006D, 0x0323, 0x004E, 0x0307, 0x006E, 0x0307,
2202 +       0x004E, 0x0323, 0x006E, 0x0323, 0x004E, 0x0331, 0x006E, 0x0331,
2203 +       0x004E, 0x032D, 0x006E, 0x032D, 0x00D5, 0x0301, 0x00F5, 0x0301,
2204 +       0x00D5, 0x0308, 0x00F5, 0x0308, 0x014C, 0x0300, 0x014D, 0x0300,
2205 +       0x014C, 0x0301, 0x014D, 0x0301, 0x0050, 0x0301, 0x0070, 0x0301,
2206 +       0x0050, 0x0307, 0x0070, 0x0307, 0x0052, 0x0307, 0x0072, 0x0307,
2207 +       0x0052, 0x0323, 0x0072, 0x0323, 0x1E5A, 0x0304, 0x1E5B, 0x0304,
2208 +       0x0052, 0x0331, 0x0072, 0x0331, 0x0053, 0x0307, 0x0073, 0x0307,
2209 +       0x0053, 0x0323, 0x0073, 0x0323, 0x015A, 0x0307, 0x015B, 0x0307,
2210 +       0x0160, 0x0307, 0x0161, 0x0307, 0x1E62, 0x0307, 0x1E63, 0x0307,
2211 +       0x0054, 0x0307, 0x0074, 0x0307, 0x0054, 0x0323, 0x0074, 0x0323,
2212 +       0x0054, 0x0331, 0x0074, 0x0331, 0x0054, 0x032D, 0x0074, 0x032D,
2213 +       0x0055, 0x0324, 0x0075, 0x0324, 0x0055, 0x0330, 0x0075, 0x0330,
2214 +       0x0055, 0x032D, 0x0075, 0x032D, 0x0168, 0x0301, 0x0169, 0x0301,
2215 +       0x016A, 0x0308, 0x016B, 0x0308, 0x0056, 0x0303, 0x0076, 0x0303,
2216 +       0x0056, 0x0323, 0x0076, 0x0323, 0x0057, 0x0300, 0x0077, 0x0300,
2217 +       0x0057, 0x0301, 0x0077, 0x0301, 0x0057, 0x0308, 0x0077, 0x0308,
2218 +       0x0057, 0x0307, 0x0077, 0x0307, 0x0057, 0x0323, 0x0077, 0x0323,
2219 +       0x0058, 0x0307, 0x0078, 0x0307, 0x0058, 0x0308, 0x0078, 0x0308,
2220 +       0x0059, 0x0307, 0x0079, 0x0307, 0x005A, 0x0302, 0x007A, 0x0302,
2221 +       0x005A, 0x0323, 0x007A, 0x0323, 0x005A, 0x0331, 0x007A, 0x0331,
2222 +       0x0068, 0x0331, 0x0074, 0x0308, 0x0077, 0x030A, 0x0079, 0x030A,
2223 +       0x017F, 0x0307, 0x0041, 0x0323, 0x0061, 0x0323, 0x0041, 0x0309,
2224 +       0x0061, 0x0309, 0x00C2, 0x0301, 0x00E2, 0x0301, 0x00C2, 0x0300,
2225 +       0x00E2, 0x0300, 0x00C2, 0x0309, 0x00E2, 0x0309, 0x00C2, 0x0303,
2226 +       0x00E2, 0x0303, 0x1EA0, 0x0302, 0x1EA1, 0x0302, 0x0102, 0x0301,
2227 +       0x0103, 0x0301, 0x0102, 0x0300, 0x0103, 0x0300, 0x0102, 0x0309,
2228 +       0x0103, 0x0309, 0x0102, 0x0303, 0x0103, 0x0303, 0x1EA0, 0x0306,
2229 +       0x1EA1, 0x0306, 0x0045, 0x0323, 0x0065, 0x0323, 0x0045, 0x0309,
2230 +       0x0065, 0x0309, 0x0045, 0x0303, 0x0065, 0x0303, 0x00CA, 0x0301,
2231 +       0x00EA, 0x0301, 0x00CA, 0x0300, 0x00EA, 0x0300, 0x00CA, 0x0309,
2232 +       0x00EA, 0x0309, 0x00CA, 0x0303, 0x00EA, 0x0303, 0x1EB8, 0x0302,
2233 +       0x1EB9, 0x0302, 0x0049, 0x0309, 0x0069, 0x0309, 0x0049, 0x0323,
2234 +       0x0069, 0x0323, 0x004F, 0x0323, 0x006F, 0x0323, 0x004F, 0x0309,
2235 +       0x006F, 0x0309, 0x00D4, 0x0301, 0x00F4, 0x0301, 0x00D4, 0x0300,
2236 +       0x00F4, 0x0300, 0x00D4, 0x0309, 0x00F4, 0x0309, 0x00D4, 0x0303,
2237 +       0x00F4, 0x0303, 0x1ECC, 0x0302, 0x1ECD, 0x0302, 0x01A0, 0x0301,
2238 +       0x01A1, 0x0301, 0x01A0, 0x0300, 0x01A1, 0x0300, 0x01A0, 0x0309,
2239 +       0x01A1, 0x0309, 0x01A0, 0x0303, 0x01A1, 0x0303, 0x01A0, 0x0323,
2240 +       0x01A1, 0x0323, 0x0055, 0x0323, 0x0075, 0x0323, 0x0055, 0x0309,
2241 +       0x0075, 0x0309, 0x01AF, 0x0301, 0x01B0, 0x0301, 0x01AF, 0x0300,
2242 +       0x01B0, 0x0300, 0x01AF, 0x0309, 0x01B0, 0x0309, 0x01AF, 0x0303,
2243 +       0x01B0, 0x0303, 0x01AF, 0x0323, 0x01B0, 0x0323, 0x0059, 0x0300,
2244 +       0x0079, 0x0300, 0x0059, 0x0323, 0x0079, 0x0323, 0x0059, 0x0309,
2245 +       0x0079, 0x0309, 0x0059, 0x0303, 0x0079, 0x0303, 0x03B1, 0x0313,
2246 +       0x03B1, 0x0314, 0x1F00, 0x0300, 0x1F01, 0x0300, 0x1F00, 0x0301,
2247 +       0x1F01, 0x0301, 0x1F00, 0x0342, 0x1F01, 0x0342, 0x0391, 0x0313,
2248 +       0x0391, 0x0314, 0x1F08, 0x0300, 0x1F09, 0x0300, 0x1F08, 0x0301,
2249 +       0x1F09, 0x0301, 0x1F08, 0x0342, 0x1F09, 0x0342, 0x03B5, 0x0313,
2250 +       0x03B5, 0x0314, 0x1F10, 0x0300, 0x1F11, 0x0300, 0x1F10, 0x0301,
2251 +       0x1F11, 0x0301, 0x0395, 0x0313, 0x0395, 0x0314, 0x1F18, 0x0300,
2252 +       0x1F19, 0x0300, 0x1F18, 0x0301, 0x1F19, 0x0301, 0x03B7, 0x0313,
2253 +       0x03B7, 0x0314, 0x1F20, 0x0300, 0x1F21, 0x0300, 0x1F20, 0x0301,
2254 +       0x1F21, 0x0301, 0x1F20, 0x0342, 0x1F21, 0x0342, 0x0397, 0x0313,
2255 +       0x0397, 0x0314, 0x1F28, 0x0300, 0x1F29, 0x0300, 0x1F28, 0x0301,
2256 +       0x1F29, 0x0301, 0x1F28, 0x0342, 0x1F29, 0x0342, 0x03B9, 0x0313,
2257 +       0x03B9, 0x0314, 0x1F30, 0x0300, 0x1F31, 0x0300, 0x1F30, 0x0301,
2258 +       0x1F31, 0x0301, 0x1F30, 0x0342, 0x1F31, 0x0342, 0x0399, 0x0313,
2259 +       0x0399, 0x0314, 0x1F38, 0x0300, 0x1F39, 0x0300, 0x1F38, 0x0301,
2260 +       0x1F39, 0x0301, 0x1F38, 0x0342, 0x1F39, 0x0342, 0x03BF, 0x0313,
2261 +       0x03BF, 0x0314, 0x1F40, 0x0300, 0x1F41, 0x0300, 0x1F40, 0x0301,
2262 +       0x1F41, 0x0301, 0x039F, 0x0313, 0x039F, 0x0314, 0x1F48, 0x0300,
2263 +       0x1F49, 0x0300, 0x1F48, 0x0301, 0x1F49, 0x0301, 0x03C5, 0x0313,
2264 +       0x03C5, 0x0314, 0x1F50, 0x0300, 0x1F51, 0x0300, 0x1F50, 0x0301,
2265 +       0x1F51, 0x0301, 0x1F50, 0x0342, 0x1F51, 0x0342, 0x03A5, 0x0314,
2266 +       0x1F59, 0x0300, 0x1F59, 0x0301, 0x1F59, 0x0342, 0x03C9, 0x0313,
2267 +       0x03C9, 0x0314, 0x1F60, 0x0300, 0x1F61, 0x0300, 0x1F60, 0x0301,
2268 +       0x1F61, 0x0301, 0x1F60, 0x0342, 0x1F61, 0x0342, 0x03A9, 0x0313,
2269 +       0x03A9, 0x0314, 0x1F68, 0x0300, 0x1F69, 0x0300, 0x1F68, 0x0301,
2270 +       0x1F69, 0x0301, 0x1F68, 0x0342, 0x1F69, 0x0342, 0x03B1, 0x0300,
2271 +       0x03B5, 0x0300, 0x03B7, 0x0300, 0x03B9, 0x0300, 0x03BF, 0x0300,
2272 +       0x03C5, 0x0300, 0x03C9, 0x0300, 0x1F00, 0x0345, 0x1F01, 0x0345,
2273 +       0x1F02, 0x0345, 0x1F03, 0x0345, 0x1F04, 0x0345, 0x1F05, 0x0345,
2274 +       0x1F06, 0x0345, 0x1F07, 0x0345, 0x1F08, 0x0345, 0x1F09, 0x0345,
2275 +       0x1F0A, 0x0345, 0x1F0B, 0x0345, 0x1F0C, 0x0345, 0x1F0D, 0x0345,
2276 +       0x1F0E, 0x0345, 0x1F0F, 0x0345, 0x1F20, 0x0345, 0x1F21, 0x0345,
2277 +       0x1F22, 0x0345, 0x1F23, 0x0345, 0x1F24, 0x0345, 0x1F25, 0x0345,
2278 +       0x1F26, 0x0345, 0x1F27, 0x0345, 0x1F28, 0x0345, 0x1F29, 0x0345,
2279 +       0x1F2A, 0x0345, 0x1F2B, 0x0345, 0x1F2C, 0x0345, 0x1F2D, 0x0345,
2280 +       0x1F2E, 0x0345, 0x1F2F, 0x0345, 0x1F60, 0x0345, 0x1F61, 0x0345,
2281 +       0x1F62, 0x0345, 0x1F63, 0x0345, 0x1F64, 0x0345, 0x1F65, 0x0345,
2282 +       0x1F66, 0x0345, 0x1F67, 0x0345, 0x1F68, 0x0345, 0x1F69, 0x0345,
2283 +       0x1F6A, 0x0345, 0x1F6B, 0x0345, 0x1F6C, 0x0345, 0x1F6D, 0x0345,
2284 +       0x1F6E, 0x0345, 0x1F6F, 0x0345, 0x03B1, 0x0306, 0x03B1, 0x0304,
2285 +       0x1F70, 0x0345, 0x03B1, 0x0345, 0x03AC, 0x0345, 0x03B1, 0x0342,
2286 +       0x1FB6, 0x0345, 0x0391, 0x0306, 0x0391, 0x0304, 0x0391, 0x0300,
2287 +       0x0391, 0x0345, 0x00A8, 0x0342, 0x1F74, 0x0345, 0x03B7, 0x0345,
2288 +       0x03AE, 0x0345, 0x03B7, 0x0342, 0x1FC6, 0x0345, 0x0395, 0x0300,
2289 +       0x0397, 0x0300, 0x0397, 0x0345, 0x1FBF, 0x0300, 0x1FBF, 0x0301,
2290 +       0x1FBF, 0x0342, 0x03B9, 0x0306, 0x03B9, 0x0304, 0x03CA, 0x0300,
2291 +       0x03B9, 0x0342, 0x03CA, 0x0342, 0x0399, 0x0306, 0x0399, 0x0304,
2292 +       0x0399, 0x0300, 0x1FFE, 0x0300, 0x1FFE, 0x0301, 0x1FFE, 0x0342,
2293 +       0x03C5, 0x0306, 0x03C5, 0x0304, 0x03CB, 0x0300, 0x03C1, 0x0313,
2294 +       0x03C1, 0x0314, 0x03C5, 0x0342, 0x03CB, 0x0342, 0x03A5, 0x0306,
2295 +       0x03A5, 0x0304, 0x03A5, 0x0300, 0x03A1, 0x0314, 0x00A8, 0x0300,
2296 +       0x1F7C, 0x0345, 0x03C9, 0x0345, 0x03CE, 0x0345, 0x03C9, 0x0342,
2297 +       0x1FF6, 0x0345, 0x039F, 0x0300, 0x03A9, 0x0300, 0x03A9, 0x0345,
2298 +       0x304B, 0x3099, 0x304D, 0x3099, 0x304F, 0x3099, 0x3051, 0x3099,
2299 +       0x3053, 0x3099, 0x3055, 0x3099, 0x3057, 0x3099, 0x3059, 0x3099,
2300 +       0x305B, 0x3099, 0x305D, 0x3099, 0x305F, 0x3099, 0x3061, 0x3099,
2301 +       0x3064, 0x3099, 0x3066, 0x3099, 0x3068, 0x3099, 0x306F, 0x3099,
2302 +       0x306F, 0x309A, 0x3072, 0x3099, 0x3072, 0x309A, 0x3075, 0x3099,
2303 +       0x3075, 0x309A, 0x3078, 0x3099, 0x3078, 0x309A, 0x307B, 0x3099,
2304 +       0x307B, 0x309A, 0x3046, 0x3099, 0x309D, 0x3099, 0x30AB, 0x3099,
2305 +       0x30AD, 0x3099, 0x30AF, 0x3099, 0x30B1, 0x3099, 0x30B3, 0x3099,
2306 +       0x30B5, 0x3099, 0x30B7, 0x3099, 0x30B9, 0x3099, 0x30BB, 0x3099,
2307 +       0x30BD, 0x3099, 0x30BF, 0x3099, 0x30C1, 0x3099, 0x30C4, 0x3099,
2308 +       0x30C6, 0x3099, 0x30C8, 0x3099, 0x30CF, 0x3099, 0x30CF, 0x309A,
2309 +       0x30D2, 0x3099, 0x30D2, 0x309A, 0x30D5, 0x3099, 0x30D5, 0x309A,
2310 +       0x30D8, 0x3099, 0x30D8, 0x309A, 0x30DB, 0x3099, 0x30DB, 0x309A,
2311 +       0x30A6, 0x3099, 0x30EF, 0x3099, 0x30F0, 0x3099, 0x30F1, 0x3099,
2312 +       0x30F2, 0x3099, 0x30FD, 0x3099, 0x05D9, 0x05B4, 0x05F2, 0x05B7,
2313 +       0x05E9, 0x05C1, 0x05E9, 0x05C2, 0xFB49, 0x05C1, 0xFB49, 0x05C2,
2314 +       0x05D0, 0x05B7, 0x05D0, 0x05B8, 0x05D0, 0x05BC, 0x05D1, 0x05BC,
2315 +       0x05D2, 0x05BC, 0x05D3, 0x05BC, 0x05D4, 0x05BC, 0x05D5, 0x05BC,
2316 +       0x05D6, 0x05BC, 0x05D8, 0x05BC, 0x05D9, 0x05BC, 0x05DA, 0x05BC,
2317 +       0x05DB, 0x05BC, 0x05DC, 0x05BC, 0x05DE, 0x05BC, 0x05E0, 0x05BC,
2318 +       0x05E1, 0x05BC, 0x05E3, 0x05BC, 0x05E4, 0x05BC, 0x05E6, 0x05BC,
2319 +       0x05E7, 0x05BC, 0x05E8, 0x05BC, 0x05E9, 0x05BC, 0x05EA, 0x05BC,
2320 +       0x05D5, 0x05B9, 0x05D1, 0x05BF, 0x05DB, 0x05BF, 0x05E4, 0x05BF
2321 +};
2322 +
2323 +static const u_int8_t
2324 +__CFUniCharDecomposableBitmap[] = {
2325 +       0x01, 0x02, 0x03, 0x04, 0x05, 0x00, 0x06, 0x00,
2326 +       0x00, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x00, 0x0C,
2327 +       0x0D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2328 +       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0E, 0x0F,
2329 +       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2330 +       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2331 +       0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2332 +       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2333 +       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2334 +       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2335 +       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2336 +       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2337 +       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2338 +       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2339 +       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2340 +       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2341 +       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2342 +       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2343 +       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2344 +       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2345 +       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2346 +       0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
2347 +       0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
2348 +       0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
2349 +       0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
2350 +       0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
2351 +       0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x11,
2352 +       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2353 +       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2354 +       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2355 +       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2356 +       0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, 0x00,
2357 +
2358 +       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2359 +       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2360 +       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2361 +       0xBF, 0xFF, 0x7E, 0x3E, 0xBF, 0xFF, 0x7E, 0xBE,
2362 +       0xFF, 0xFF, 0xFC, 0xFF, 0x3F, 0xFF, 0xF1, 0x7E,
2363 +       0xF8, 0xF1, 0xF3, 0xFF, 0x3F, 0xFF, 0xFF, 0x7F,
2364 +       0x00, 0x00, 0x00, 0x00, 0x03, 0x80, 0x01, 0x00,
2365 +       0x00, 0xE0, 0xFF, 0xDF, 0xCF, 0xFF, 0x31, 0xFF,
2366 +       0xFF, 0xFF, 0xFF, 0xCF, 0xC0, 0xFF, 0x0F, 0x00,
2367 +       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2368 +       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2369 +       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2370 +       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2371 +       0x1B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x40,
2372 +       0xE0, 0xD7, 0x01, 0x00, 0x00, 0xFC, 0x01, 0x00,
2373 +       0x00, 0x7C, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00,
2374 +       0x8B, 0x70, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02,
2375 +       0x00, 0x00, 0x8B, 0x70, 0x00, 0x00, 0xC0, 0x00,
2376 +       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2377 +       0x06, 0x00, 0xCF, 0xFC, 0xFC, 0xFC, 0x3F, 0x03,
2378 +       0x00, 0x00, 0x00, 0x00, 0x7C, 0x00, 0x00, 0x00,
2379 +       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2380 +       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2381 +       0x05, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00,
2382 +       0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x12, 0x00,
2383 +       0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00,
2384 +       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2385 +       0x00, 0x18, 0x00, 0xB0, 0x00, 0x00, 0x00, 0x00,
2386 +       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x48, 0x00,
2387 +       0x00, 0x00, 0x00, 0x4E, 0x00, 0x00, 0x00, 0x00,
2388 +       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2389 +       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2390 +       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2391 +       0x00, 0x19, 0x00, 0x30, 0x00, 0x00, 0x00, 0x00,
2392 +       0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00,
2393 +       0x00, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2394 +       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2395 +       0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2396 +       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2397 +       0x81, 0x0D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2398 +       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2399 +       0x00, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2400 +       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2401 +       0x00, 0x00, 0x00, 0x74, 0x00, 0x00, 0x00, 0x00,
2402 +       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2403 +       0x08, 0x20, 0x84, 0x10, 0x00, 0x02, 0x68, 0x01,
2404 +       0x02, 0x00, 0x08, 0x20, 0x84, 0x10, 0x00, 0x02,
2405 +       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2406 +       0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00,
2407 +       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2408 +       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2409 +       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2410 +       0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
2411 +       0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
2412 +       0xFF, 0xFF, 0xFF, 0x0B, 0xFF, 0xFF, 0xFF, 0xFF,
2413 +       0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x03,
2414 +       0xFF, 0xFF, 0x3F, 0x3F, 0xFF, 0xFF, 0xFF, 0xFF,
2415 +       0x3F, 0x3F, 0xFF, 0xAA, 0xFF, 0xFF, 0xFF, 0x3F,
2416 +       0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xDF, 0x5F,
2417 +       0xDE, 0xFF, 0xCF, 0xEF, 0xFF, 0xFF, 0xDC, 0x3F,
2418 +       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2419 +       0x00, 0x50, 0x55, 0x55, 0xA5, 0x02, 0xDB, 0x36,
2420 +       0x00, 0x00, 0x10, 0x40, 0x00, 0x50, 0x55, 0x55,
2421 +       0xA5, 0x02, 0xDB, 0x36, 0x00, 0x00, 0x90, 0x47,
2422 +       0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
2423 +       0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
2424 +       0xFF, 0xFF, 0xFF, 0xFF, 0x0F, 0x00, 0x00, 0x00,
2425 +       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2426 +       0x00, 0x00, 0x00, 0xA0, 0x00, 0xFC, 0x7F, 0x5F,
2427 +       0xDB, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2428 +       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2429 +       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
2430 +};
2431 +
2432 +static const u_int32_t
2433 +__CFUniCharPrecompSourceTable[] = {
2434 +       0x00000300, 0x00540000, 0x00000301, 0x00750054,
2435 +       0x00000302, 0x002000C9, 0x00000303, 0x001C00E9,
2436 +       0x00000304, 0x002C0105, 0x00000306, 0x00200131,
2437 +       0x00000307, 0x002E0151, 0x00000308, 0x0036017F,
2438 +       0x00000309, 0x001801B5, 0x0000030A, 0x000601CD,
2439 +       0x0000030B, 0x000601D3, 0x0000030C, 0x002501D9,
2440 +       0x0000030F, 0x000E01FE, 0x00000311, 0x000C020C,
2441 +       0x00000313, 0x000E0218, 0x00000314, 0x00100226,
2442 +       0x0000031B, 0x00040236, 0x00000323, 0x002A023A,
2443 +       0x00000324, 0x00020264, 0x00000325, 0x00020266,
2444 +       0x00000326, 0x00040268, 0x00000327, 0x0016026C,
2445 +       0x00000328, 0x000A0282, 0x0000032D, 0x000C028C,
2446 +       0x0000032E, 0x00020298, 0x00000330, 0x0006029A,
2447 +       0x00000331, 0x001102A0, 0x00000338, 0x002C02B1,
2448 +       0x00000342, 0x001D02DD, 0x00000345, 0x003F02FA,
2449 +       0x00000653, 0x00010339, 0x00000654, 0x0006033A,
2450 +       0x00000655, 0x00010340, 0x0000093C, 0x00030341,
2451 +       0x000009BE, 0x00010344, 0x000009D7, 0x00010345,
2452 +       0x00000B3E, 0x00010346, 0x00000B56, 0x00010347,
2453 +       0x00000B57, 0x00010348, 0x00000BBE, 0x00020349,
2454 +       0x00000BD7, 0x0002034B, 0x00000C56, 0x0001034D,
2455 +       0x00000CC2, 0x0001034E, 0x00000CD5, 0x0003034F,
2456 +       0x00000CD6, 0x00010352, 0x00000D3E, 0x00020353,
2457 +       0x00000D57, 0x00010355, 0x00000DCA, 0x00020356,
2458 +       0x00000DCF, 0x00010358, 0x00000DDF, 0x00010359,
2459 +       0x0000102E, 0x0001035A, 0x00003099, 0x0030035B,
2460 +       0x0000309A, 0x000A038B
2461 +};
2462 +
2463 +static const u_int32_t __CFUniCharPrecompositionTableLength =
2464 +               (sizeof(__CFUniCharPrecompSourceTable) / (sizeof(u_int32_t) * 2));
2465 +
2466 +
2467 +static const u_int16_t
2468 +__CFUniCharBMPPrecompDestinationTable[] = {
2469 +       0x0041, 0x00C0, 0x0045, 0x00C8, 0x0049, 0x00CC, 0x004E, 0x01F8,
2470 +       0x004F, 0x00D2, 0x0055, 0x00D9, 0x0057, 0x1E80, 0x0059, 0x1EF2,
2471 +       0x0061, 0x00E0, 0x0065, 0x00E8, 0x0069, 0x00EC, 0x006E, 0x01F9,
2472 +       0x006F, 0x00F2, 0x0075, 0x00F9, 0x0077, 0x1E81, 0x0079, 0x1EF3,
2473 +       0x00A8, 0x1FED, 0x00C2, 0x1EA6, 0x00CA, 0x1EC0, 0x00D4, 0x1ED2,
2474 +       0x00DC, 0x01DB, 0x00E2, 0x1EA7, 0x00EA, 0x1EC1, 0x00F4, 0x1ED3,
2475 +       0x00FC, 0x01DC, 0x0102, 0x1EB0, 0x0103, 0x1EB1, 0x0112, 0x1E14,
2476 +       0x0113, 0x1E15, 0x014C, 0x1E50, 0x014D, 0x1E51, 0x01A0, 0x1EDC,
2477 +       0x01A1, 0x1EDD, 0x01AF, 0x1EEA, 0x01B0, 0x1EEB, 0x0391, 0x1FBA,
2478 +       0x0395, 0x1FC8, 0x0397, 0x1FCA, 0x0399, 0x1FDA, 0x039F, 0x1FF8,
2479 +       0x03A5, 0x1FEA, 0x03A9, 0x1FFA, 0x03B1, 0x1F70, 0x03B5, 0x1F72,
2480 +       0x03B7, 0x1F74, 0x03B9, 0x1F76, 0x03BF, 0x1F78, 0x03C5, 0x1F7A,
2481 +       0x03C9, 0x1F7C, 0x03CA, 0x1FD2, 0x03CB, 0x1FE2, 0x0415, 0x0400,
2482 +       0x0418, 0x040D, 0x0435, 0x0450, 0x0438, 0x045D, 0x1F00, 0x1F02,
2483 +       0x1F01, 0x1F03, 0x1F08, 0x1F0A, 0x1F09, 0x1F0B, 0x1F10, 0x1F12,
2484 +       0x1F11, 0x1F13, 0x1F18, 0x1F1A, 0x1F19, 0x1F1B, 0x1F20, 0x1F22,
2485 +       0x1F21, 0x1F23, 0x1F28, 0x1F2A, 0x1F29, 0x1F2B, 0x1F30, 0x1F32,
2486 +       0x1F31, 0x1F33, 0x1F38, 0x1F3A, 0x1F39, 0x1F3B, 0x1F40, 0x1F42,
2487 +       0x1F41, 0x1F43, 0x1F48, 0x1F4A, 0x1F49, 0x1F4B, 0x1F50, 0x1F52,
2488 +       0x1F51, 0x1F53, 0x1F59, 0x1F5B, 0x1F60, 0x1F62, 0x1F61, 0x1F63,
2489 +       0x1F68, 0x1F6A, 0x1F69, 0x1F6B, 0x1FBF, 0x1FCD, 0x1FFE, 0x1FDD,
2490 +       0x0041, 0x00C1, 0x0043, 0x0106, 0x0045, 0x00C9, 0x0047, 0x01F4,
2491 +       0x0049, 0x00CD, 0x004B, 0x1E30, 0x004C, 0x0139, 0x004D, 0x1E3E,
2492 +       0x004E, 0x0143, 0x004F, 0x00D3, 0x0050, 0x1E54, 0x0052, 0x0154,
2493 +       0x0053, 0x015A, 0x0055, 0x00DA, 0x0057, 0x1E82, 0x0059, 0x00DD,
2494 +       0x005A, 0x0179, 0x0061, 0x00E1, 0x0063, 0x0107, 0x0065, 0x00E9,
2495 +       0x0067, 0x01F5, 0x0069, 0x00ED, 0x006B, 0x1E31, 0x006C, 0x013A,
2496 +       0x006D, 0x1E3F, 0x006E, 0x0144, 0x006F, 0x00F3, 0x0070, 0x1E55,
2497 +       0x0072, 0x0155, 0x0073, 0x015B, 0x0075, 0x00FA, 0x0077, 0x1E83,
2498 +       0x0079, 0x00FD, 0x007A, 0x017A, 0x00A8, 0x0385, 0x00C2, 0x1EA4,
2499 +       0x00C5, 0x01FA, 0x00C6, 0x01FC, 0x00C7, 0x1E08, 0x00CA, 0x1EBE,
2500 +       0x00CF, 0x1E2E, 0x00D4, 0x1ED0, 0x00D5, 0x1E4C, 0x00D8, 0x01FE,
2501 +       0x00DC, 0x01D7, 0x00E2, 0x1EA5, 0x00E5, 0x01FB, 0x00E6, 0x01FD,
2502 +       0x00E7, 0x1E09, 0x00EA, 0x1EBF, 0x00EF, 0x1E2F, 0x00F4, 0x1ED1,
2503 +       0x00F5, 0x1E4D, 0x00F8, 0x01FF, 0x00FC, 0x01D8, 0x0102, 0x1EAE,
2504 +       0x0103, 0x1EAF, 0x0112, 0x1E16, 0x0113, 0x1E17, 0x014C, 0x1E52,
2505 +       0x014D, 0x1E53, 0x0168, 0x1E78, 0x0169, 0x1E79, 0x01A0, 0x1EDA,
2506 +       0x01A1, 0x1EDB, 0x01AF, 0x1EE8, 0x01B0, 0x1EE9, 0x0391, 0x0386,
2507 +       0x0395, 0x0388, 0x0397, 0x0389, 0x0399, 0x038A, 0x039F, 0x038C,
2508 +       0x03A5, 0x038E, 0x03A9, 0x038F, 0x03B1, 0x03AC, 0x03B5, 0x03AD,
2509 +       0x03B7, 0x03AE, 0x03B9, 0x03AF, 0x03BF, 0x03CC, 0x03C5, 0x03CD,
2510 +       0x03C9, 0x03CE, 0x03CA, 0x0390, 0x03CB, 0x03B0, 0x03D2, 0x03D3,
2511 +       0x0413, 0x0403, 0x041A, 0x040C, 0x0433, 0x0453, 0x043A, 0x045C,
2512 +       0x1F00, 0x1F04, 0x1F01, 0x1F05, 0x1F08, 0x1F0C, 0x1F09, 0x1F0D,
2513 +       0x1F10, 0x1F14, 0x1F11, 0x1F15, 0x1F18, 0x1F1C, 0x1F19, 0x1F1D,
2514 +       0x1F20, 0x1F24, 0x1F21, 0x1F25, 0x1F28, 0x1F2C, 0x1F29, 0x1F2D,
2515 +       0x1F30, 0x1F34, 0x1F31, 0x1F35, 0x1F38, 0x1F3C, 0x1F39, 0x1F3D,
2516 +       0x1F40, 0x1F44, 0x1F41, 0x1F45, 0x1F48, 0x1F4C, 0x1F49, 0x1F4D,
2517 +       0x1F50, 0x1F54, 0x1F51, 0x1F55, 0x1F59, 0x1F5D, 0x1F60, 0x1F64,
2518 +       0x1F61, 0x1F65, 0x1F68, 0x1F6C, 0x1F69, 0x1F6D, 0x1FBF, 0x1FCE,
2519 +       0x1FFE, 0x1FDE, 0x0041, 0x00C2, 0x0043, 0x0108, 0x0045, 0x00CA,
2520 +       0x0047, 0x011C, 0x0048, 0x0124, 0x0049, 0x00CE, 0x004A, 0x0134,
2521 +       0x004F, 0x00D4, 0x0053, 0x015C, 0x0055, 0x00DB, 0x0057, 0x0174,
2522 +       0x0059, 0x0176, 0x005A, 0x1E90, 0x0061, 0x00E2, 0x0063, 0x0109,
2523 +       0x0065, 0x00EA, 0x0067, 0x011D, 0x0068, 0x0125, 0x0069, 0x00EE,
2524 +       0x006A, 0x0135, 0x006F, 0x00F4, 0x0073, 0x015D, 0x0075, 0x00FB,
2525 +       0x0077, 0x0175, 0x0079, 0x0177, 0x007A, 0x1E91, 0x1EA0, 0x1EAC,
2526 +       0x1EA1, 0x1EAD, 0x1EB8, 0x1EC6, 0x1EB9, 0x1EC7, 0x1ECC, 0x1ED8,
2527 +       0x1ECD, 0x1ED9, 0x0041, 0x00C3, 0x0045, 0x1EBC, 0x0049, 0x0128,
2528 +       0x004E, 0x00D1, 0x004F, 0x00D5, 0x0055, 0x0168, 0x0056, 0x1E7C,
2529 +       0x0059, 0x1EF8, 0x0061, 0x00E3, 0x0065, 0x1EBD, 0x0069, 0x0129,
2530 +       0x006E, 0x00F1, 0x006F, 0x00F5, 0x0075, 0x0169, 0x0076, 0x1E7D,
2531 +       0x0079, 0x1EF9, 0x00C2, 0x1EAA, 0x00CA, 0x1EC4, 0x00D4, 0x1ED6,
2532 +       0x00E2, 0x1EAB, 0x00EA, 0x1EC5, 0x00F4, 0x1ED7, 0x0102, 0x1EB4,
2533 +       0x0103, 0x1EB5, 0x01A0, 0x1EE0, 0x01A1, 0x1EE1, 0x01AF, 0x1EEE,
2534 +       0x01B0, 0x1EEF, 0x0041, 0x0100, 0x0045, 0x0112, 0x0047, 0x1E20,
2535 +       0x0049, 0x012A, 0x004F, 0x014C, 0x0055, 0x016A, 0x0059, 0x0232,
2536 +       0x0061, 0x0101, 0x0065, 0x0113, 0x0067, 0x1E21, 0x0069, 0x012B,
2537 +       0x006F, 0x014D, 0x0075, 0x016B, 0x0079, 0x0233, 0x00C4, 0x01DE,
2538 +       0x00C6, 0x01E2, 0x00D5, 0x022C, 0x00D6, 0x022A, 0x00DC, 0x01D5,
2539 +       0x00E4, 0x01DF, 0x00E6, 0x01E3, 0x00F5, 0x022D, 0x00F6, 0x022B,
2540 +       0x00FC, 0x01D6, 0x01EA, 0x01EC, 0x01EB, 0x01ED, 0x0226, 0x01E0,
2541 +       0x0227, 0x01E1, 0x022E, 0x0230, 0x022F, 0x0231, 0x0391, 0x1FB9,
2542 +       0x0399, 0x1FD9, 0x03A5, 0x1FE9, 0x03B1, 0x1FB1, 0x03B9, 0x1FD1,
2543 +       0x03C5, 0x1FE1, 0x0418, 0x04E2, 0x0423, 0x04EE, 0x0438, 0x04E3,
2544 +       0x0443, 0x04EF, 0x1E36, 0x1E38, 0x1E37, 0x1E39, 0x1E5A, 0x1E5C,
2545 +       0x1E5B, 0x1E5D, 0x0041, 0x0102, 0x0045, 0x0114, 0x0047, 0x011E,
2546 +       0x0049, 0x012C, 0x004F, 0x014E, 0x0055, 0x016C, 0x0061, 0x0103,
2547 +       0x0065, 0x0115, 0x0067, 0x011F, 0x0069, 0x012D, 0x006F, 0x014F,
2548 +       0x0075, 0x016D, 0x0228, 0x1E1C, 0x0229, 0x1E1D, 0x0391, 0x1FB8,
2549 +       0x0399, 0x1FD8, 0x03A5, 0x1FE8, 0x03B1, 0x1FB0, 0x03B9, 0x1FD0,
2550 +       0x03C5, 0x1FE0, 0x0410, 0x04D0, 0x0415, 0x04D6, 0x0416, 0x04C1,
2551 +       0x0418, 0x0419, 0x0423, 0x040E, 0x0430, 0x04D1, 0x0435, 0x04D7,
2552 +       0x0436, 0x04C2, 0x0438, 0x0439, 0x0443, 0x045E, 0x1EA0, 0x1EB6,
2553 +       0x1EA1, 0x1EB7, 0x0041, 0x0226, 0x0042, 0x1E02, 0x0043, 0x010A,
2554 +       0x0044, 0x1E0A, 0x0045, 0x0116, 0x0046, 0x1E1E, 0x0047, 0x0120,
2555 +       0x0048, 0x1E22, 0x0049, 0x0130, 0x004D, 0x1E40, 0x004E, 0x1E44,
2556 +       0x004F, 0x022E, 0x0050, 0x1E56, 0x0052, 0x1E58, 0x0053, 0x1E60,
2557 +       0x0054, 0x1E6A, 0x0057, 0x1E86, 0x0058, 0x1E8A, 0x0059, 0x1E8E,
2558 +       0x005A, 0x017B, 0x0061, 0x0227, 0x0062, 0x1E03, 0x0063, 0x010B,
2559 +       0x0064, 0x1E0B, 0x0065, 0x0117, 0x0066, 0x1E1F, 0x0067, 0x0121,
2560 +       0x0068, 0x1E23, 0x006D, 0x1E41, 0x006E, 0x1E45, 0x006F, 0x022F,
2561 +       0x0070, 0x1E57, 0x0072, 0x1E59, 0x0073, 0x1E61, 0x0074, 0x1E6B,
2562 +       0x0077, 0x1E87, 0x0078, 0x1E8B, 0x0079, 0x1E8F, 0x007A, 0x017C,
2563 +       0x015A, 0x1E64, 0x015B, 0x1E65, 0x0160, 0x1E66, 0x0161, 0x1E67,
2564 +       0x017F, 0x1E9B, 0x1E62, 0x1E68, 0x1E63, 0x1E69, 0x0041, 0x00C4,
2565 +       0x0045, 0x00CB, 0x0048, 0x1E26, 0x0049, 0x00CF, 0x004F, 0x00D6,
2566 +       0x0055, 0x00DC, 0x0057, 0x1E84, 0x0058, 0x1E8C, 0x0059, 0x0178,
2567 +       0x0061, 0x00E4, 0x0065, 0x00EB, 0x0068, 0x1E27, 0x0069, 0x00EF,
2568 +       0x006F, 0x00F6, 0x0074, 0x1E97, 0x0075, 0x00FC, 0x0077, 0x1E85,
2569 +       0x0078, 0x1E8D, 0x0079, 0x00FF, 0x00D5, 0x1E4E, 0x00F5, 0x1E4F,
2570 +       0x016A, 0x1E7A, 0x016B, 0x1E7B, 0x0399, 0x03AA, 0x03A5, 0x03AB,
2571 +       0x03B9, 0x03CA, 0x03C5, 0x03CB, 0x03D2, 0x03D4, 0x0406, 0x0407,
2572 +       0x0410, 0x04D2, 0x0415, 0x0401, 0x0416, 0x04DC, 0x0417, 0x04DE,
2573 +       0x0418, 0x04E4, 0x041E, 0x04E6, 0x0423, 0x04F0, 0x0427, 0x04F4,
2574 +       0x042B, 0x04F8, 0x042D, 0x04EC, 0x0430, 0x04D3, 0x0435, 0x0451,
2575 +       0x0436, 0x04DD, 0x0437, 0x04DF, 0x0438, 0x04E5, 0x043E, 0x04E7,
2576 +       0x0443, 0x04F1, 0x0447, 0x04F5, 0x044B, 0x04F9, 0x044D, 0x04ED,
2577 +       0x0456, 0x0457, 0x04D8, 0x04DA, 0x04D9, 0x04DB, 0x04E8, 0x04EA,
2578 +       0x04E9, 0x04EB, 0x0041, 0x1EA2, 0x0045, 0x1EBA, 0x0049, 0x1EC8,
2579 +       0x004F, 0x1ECE, 0x0055, 0x1EE6, 0x0059, 0x1EF6, 0x0061, 0x1EA3,
2580 +       0x0065, 0x1EBB, 0x0069, 0x1EC9, 0x006F, 0x1ECF, 0x0075, 0x1EE7,
2581 +       0x0079, 0x1EF7, 0x00C2, 0x1EA8, 0x00CA, 0x1EC2, 0x00D4, 0x1ED4,
2582 +       0x00E2, 0x1EA9, 0x00EA, 0x1EC3, 0x00F4, 0x1ED5, 0x0102, 0x1EB2,
2583 +       0x0103, 0x1EB3, 0x01A0, 0x1EDE, 0x01A1, 0x1EDF, 0x01AF, 0x1EEC,
2584 +       0x01B0, 0x1EED, 0x0041, 0x00C5, 0x0055, 0x016E, 0x0061, 0x00E5,
2585 +       0x0075, 0x016F, 0x0077, 0x1E98, 0x0079, 0x1E99, 0x004F, 0x0150,
2586 +       0x0055, 0x0170, 0x006F, 0x0151, 0x0075, 0x0171, 0x0423, 0x04F2,
2587 +       0x0443, 0x04F3, 0x0041, 0x01CD, 0x0043, 0x010C, 0x0044, 0x010E,
2588 +       0x0045, 0x011A, 0x0047, 0x01E6, 0x0048, 0x021E, 0x0049, 0x01CF,
2589 +       0x004B, 0x01E8, 0x004C, 0x013D, 0x004E, 0x0147, 0x004F, 0x01D1,
2590 +       0x0052, 0x0158, 0x0053, 0x0160, 0x0054, 0x0164, 0x0055, 0x01D3,
2591 +       0x005A, 0x017D, 0x0061, 0x01CE, 0x0063, 0x010D, 0x0064, 0x010F,
2592 +       0x0065, 0x011B, 0x0067, 0x01E7, 0x0068, 0x021F, 0x0069, 0x01D0,
2593 +       0x006A, 0x01F0, 0x006B, 0x01E9, 0x006C, 0x013E, 0x006E, 0x0148,
2594 +       0x006F, 0x01D2, 0x0072, 0x0159, 0x0073, 0x0161, 0x0074, 0x0165,
2595 +       0x0075, 0x01D4, 0x007A, 0x017E, 0x00DC, 0x01D9, 0x00FC, 0x01DA,
2596 +       0x01B7, 0x01EE, 0x0292, 0x01EF, 0x0041, 0x0200, 0x0045, 0x0204,
2597 +       0x0049, 0x0208, 0x004F, 0x020C, 0x0052, 0x0210, 0x0055, 0x0214,
2598 +       0x0061, 0x0201, 0x0065, 0x0205, 0x0069, 0x0209, 0x006F, 0x020D,
2599 +       0x0072, 0x0211, 0x0075, 0x0215, 0x0474, 0x0476, 0x0475, 0x0477,
2600 +       0x0041, 0x0202, 0x0045, 0x0206, 0x0049, 0x020A, 0x004F, 0x020E,
2601 +       0x0052, 0x0212, 0x0055, 0x0216, 0x0061, 0x0203, 0x0065, 0x0207,
2602 +       0x0069, 0x020B, 0x006F, 0x020F, 0x0072, 0x0213, 0x0075, 0x0217,
2603 +       0x0391, 0x1F08, 0x0395, 0x1F18, 0x0397, 0x1F28, 0x0399, 0x1F38,
2604 +       0x039F, 0x1F48, 0x03A9, 0x1F68, 0x03B1, 0x1F00, 0x03B5, 0x1F10,
2605 +       0x03B7, 0x1F20, 0x03B9, 0x1F30, 0x03BF, 0x1F40, 0x03C1, 0x1FE4,
2606 +       0x03C5, 0x1F50, 0x03C9, 0x1F60, 0x0391, 0x1F09, 0x0395, 0x1F19,
2607 +       0x0397, 0x1F29, 0x0399, 0x1F39, 0x039F, 0x1F49, 0x03A1, 0x1FEC,
2608 +       0x03A5, 0x1F59, 0x03A9, 0x1F69, 0x03B1, 0x1F01, 0x03B5, 0x1F11,
2609 +       0x03B7, 0x1F21, 0x03B9, 0x1F31, 0x03BF, 0x1F41, 0x03C1, 0x1FE5,
2610 +       0x03C5, 0x1F51, 0x03C9, 0x1F61, 0x004F, 0x01A0, 0x0055, 0x01AF,
2611 +       0x006F, 0x01A1, 0x0075, 0x01B0, 0x0041, 0x1EA0, 0x0042, 0x1E04,
2612 +       0x0044, 0x1E0C, 0x0045, 0x1EB8, 0x0048, 0x1E24, 0x0049, 0x1ECA,
2613 +       0x004B, 0x1E32, 0x004C, 0x1E36, 0x004D, 0x1E42, 0x004E, 0x1E46,
2614 +       0x004F, 0x1ECC, 0x0052, 0x1E5A, 0x0053, 0x1E62, 0x0054, 0x1E6C,
2615 +       0x0055, 0x1EE4, 0x0056, 0x1E7E, 0x0057, 0x1E88, 0x0059, 0x1EF4,
2616 +       0x005A, 0x1E92, 0x0061, 0x1EA1, 0x0062, 0x1E05, 0x0064, 0x1E0D,
2617 +       0x0065, 0x1EB9, 0x0068, 0x1E25, 0x0069, 0x1ECB, 0x006B, 0x1E33,
2618 +       0x006C, 0x1E37, 0x006D, 0x1E43, 0x006E, 0x1E47, 0x006F, 0x1ECD,
2619 +       0x0072, 0x1E5B, 0x0073, 0x1E63, 0x0074, 0x1E6D, 0x0075, 0x1EE5,
2620 +       0x0076, 0x1E7F, 0x0077, 0x1E89, 0x0079, 0x1EF5, 0x007A, 0x1E93,
2621 +       0x01A0, 0x1EE2, 0x01A1, 0x1EE3, 0x01AF, 0x1EF0, 0x01B0, 0x1EF1,
2622 +       0x0055, 0x1E72, 0x0075, 0x1E73, 0x0041, 0x1E00, 0x0061, 0x1E01,
2623 +       0x0053, 0x0218, 0x0054, 0x021A, 0x0073, 0x0219, 0x0074, 0x021B,
2624 +       0x0043, 0x00C7, 0x0044, 0x1E10, 0x0045, 0x0228, 0x0047, 0x0122,
2625 +       0x0048, 0x1E28, 0x004B, 0x0136, 0x004C, 0x013B, 0x004E, 0x0145,
2626 +       0x0052, 0x0156, 0x0053, 0x015E, 0x0054, 0x0162, 0x0063, 0x00E7,
2627 +       0x0064, 0x1E11, 0x0065, 0x0229, 0x0067, 0x0123, 0x0068, 0x1E29,
2628 +       0x006B, 0x0137, 0x006C, 0x013C, 0x006E, 0x0146, 0x0072, 0x0157,
2629 +       0x0073, 0x015F, 0x0074, 0x0163, 0x0041, 0x0104, 0x0045, 0x0118,
2630 +       0x0049, 0x012E, 0x004F, 0x01EA, 0x0055, 0x0172, 0x0061, 0x0105,
2631 +       0x0065, 0x0119, 0x0069, 0x012F, 0x006F, 0x01EB, 0x0075, 0x0173,
2632 +       0x0044, 0x1E12, 0x0045, 0x1E18, 0x004C, 0x1E3C, 0x004E, 0x1E4A,
2633 +       0x0054, 0x1E70, 0x0055, 0x1E76, 0x0064, 0x1E13, 0x0065, 0x1E19,
2634 +       0x006C, 0x1E3D, 0x006E, 0x1E4B, 0x0074, 0x1E71, 0x0075, 0x1E77,
2635 +       0x0048, 0x1E2A, 0x0068, 0x1E2B, 0x0045, 0x1E1A, 0x0049, 0x1E2C,
2636 +       0x0055, 0x1E74, 0x0065, 0x1E1B, 0x0069, 0x1E2D, 0x0075, 0x1E75,
2637 +       0x0042, 0x1E06, 0x0044, 0x1E0E, 0x004B, 0x1E34, 0x004C, 0x1E3A,
2638 +       0x004E, 0x1E48, 0x0052, 0x1E5E, 0x0054, 0x1E6E, 0x005A, 0x1E94,
2639 +       0x0062, 0x1E07, 0x0064, 0x1E0F, 0x0068, 0x1E96, 0x006B, 0x1E35,
2640 +       0x006C, 0x1E3B, 0x006E, 0x1E49, 0x0072, 0x1E5F, 0x0074, 0x1E6F,
2641 +       0x007A, 0x1E95, 0x003C, 0x226E, 0x003D, 0x2260, 0x003E, 0x226F,
2642 +       0x2190, 0x219A, 0x2192, 0x219B, 0x2194, 0x21AE, 0x21D0, 0x21CD,
2643 +       0x21D2, 0x21CF, 0x21D4, 0x21CE, 0x2203, 0x2204, 0x2208, 0x2209,
2644 +       0x220B, 0x220C, 0x2223, 0x2224, 0x2225, 0x2226, 0x223C, 0x2241,
2645 +       0x2243, 0x2244, 0x2245, 0x2247, 0x2248, 0x2249, 0x224D, 0x226D,
2646 +       0x2261, 0x2262, 0x2264, 0x2270, 0x2265, 0x2271, 0x2272, 0x2274,
2647 +       0x2273, 0x2275, 0x2276, 0x2278, 0x2277, 0x2279, 0x227A, 0x2280,
2648 +       0x227B, 0x2281, 0x227C, 0x22E0, 0x227D, 0x22E1, 0x2282, 0x2284,
2649 +       0x2283, 0x2285, 0x2286, 0x2288, 0x2287, 0x2289, 0x2291, 0x22E2,
2650 +       0x2292, 0x22E3, 0x22A2, 0x22AC, 0x22A8, 0x22AD, 0x22A9, 0x22AE,
2651 +       0x22AB, 0x22AF, 0x22B2, 0x22EA, 0x22B3, 0x22EB, 0x22B4, 0x22EC,
2652 +       0x22B5, 0x22ED, 0x00A8, 0x1FC1, 0x03B1, 0x1FB6, 0x03B7, 0x1FC6,
2653 +       0x03B9, 0x1FD6, 0x03C5, 0x1FE6, 0x03C9, 0x1FF6, 0x03CA, 0x1FD7,
2654 +       0x03CB, 0x1FE7, 0x1F00, 0x1F06, 0x1F01, 0x1F07, 0x1F08, 0x1F0E,
2655 +       0x1F09, 0x1F0F, 0x1F20, 0x1F26, 0x1F21, 0x1F27, 0x1F28, 0x1F2E,
2656 +       0x1F29, 0x1F2F, 0x1F30, 0x1F36, 0x1F31, 0x1F37, 0x1F38, 0x1F3E,
2657 +       0x1F39, 0x1F3F, 0x1F50, 0x1F56, 0x1F51, 0x1F57, 0x1F59, 0x1F5F,
2658 +       0x1F60, 0x1F66, 0x1F61, 0x1F67, 0x1F68, 0x1F6E, 0x1F69, 0x1F6F,
2659 +       0x1FBF, 0x1FCF, 0x1FFE, 0x1FDF, 0x0391, 0x1FBC, 0x0397, 0x1FCC,
2660 +       0x03A9, 0x1FFC, 0x03AC, 0x1FB4, 0x03AE, 0x1FC4, 0x03B1, 0x1FB3,
2661 +       0x03B7, 0x1FC3, 0x03C9, 0x1FF3, 0x03CE, 0x1FF4, 0x1F00, 0x1F80,
2662 +       0x1F01, 0x1F81, 0x1F02, 0x1F82, 0x1F03, 0x1F83, 0x1F04, 0x1F84,
2663 +       0x1F05, 0x1F85, 0x1F06, 0x1F86, 0x1F07, 0x1F87, 0x1F08, 0x1F88,
2664 +       0x1F09, 0x1F89, 0x1F0A, 0x1F8A, 0x1F0B, 0x1F8B, 0x1F0C, 0x1F8C,
2665 +       0x1F0D, 0x1F8D, 0x1F0E, 0x1F8E, 0x1F0F, 0x1F8F, 0x1F20, 0x1F90,
2666 +       0x1F21, 0x1F91, 0x1F22, 0x1F92, 0x1F23, 0x1F93, 0x1F24, 0x1F94,
2667 +       0x1F25, 0x1F95, 0x1F26, 0x1F96, 0x1F27, 0x1F97, 0x1F28, 0x1F98,
2668 +       0x1F29, 0x1F99, 0x1F2A, 0x1F9A, 0x1F2B, 0x1F9B, 0x1F2C, 0x1F9C,
2669 +       0x1F2D, 0x1F9D, 0x1F2E, 0x1F9E, 0x1F2F, 0x1F9F, 0x1F60, 0x1FA0,
2670 +       0x1F61, 0x1FA1, 0x1F62, 0x1FA2, 0x1F63, 0x1FA3, 0x1F64, 0x1FA4,
2671 +       0x1F65, 0x1FA5, 0x1F66, 0x1FA6, 0x1F67, 0x1FA7, 0x1F68, 0x1FA8,
2672 +       0x1F69, 0x1FA9, 0x1F6A, 0x1FAA, 0x1F6B, 0x1FAB, 0x1F6C, 0x1FAC,
2673 +       0x1F6D, 0x1FAD, 0x1F6E, 0x1FAE, 0x1F6F, 0x1FAF, 0x1F70, 0x1FB2,
2674 +       0x1F74, 0x1FC2, 0x1F7C, 0x1FF2, 0x1FB6, 0x1FB7, 0x1FC6, 0x1FC7,
2675 +       0x1FF6, 0x1FF7, 0x0627, 0x0622, 0x0627, 0x0623, 0x0648, 0x0624,
2676 +       0x064A, 0x0626, 0x06C1, 0x06C2, 0x06D2, 0x06D3, 0x06D5, 0x06C0,
2677 +       0x0627, 0x0625, 0x0928, 0x0929, 0x0930, 0x0931, 0x0933, 0x0934,
2678 +       0x09C7, 0x09CB, 0x09C7, 0x09CC, 0x0B47, 0x0B4B, 0x0B47, 0x0B48,
2679 +       0x0B47, 0x0B4C, 0x0BC6, 0x0BCA, 0x0BC7, 0x0BCB, 0x0B92, 0x0B94,
2680 +       0x0BC6, 0x0BCC, 0x0C46, 0x0C48, 0x0CC6, 0x0CCA, 0x0CBF, 0x0CC0,
2681 +       0x0CC6, 0x0CC7, 0x0CCA, 0x0CCB, 0x0CC6, 0x0CC8, 0x0D46, 0x0D4A,
2682 +       0x0D47, 0x0D4B, 0x0D46, 0x0D4C, 0x0DD9, 0x0DDA, 0x0DDC, 0x0DDD,
2683 +       0x0DD9, 0x0DDC, 0x0DD9, 0x0DDE, 0x1025, 0x1026, 0x3046, 0x3094,
2684 +       0x304B, 0x304C, 0x304D, 0x304E, 0x304F, 0x3050, 0x3051, 0x3052,
2685 +       0x3053, 0x3054, 0x3055, 0x3056, 0x3057, 0x3058, 0x3059, 0x305A,
2686 +       0x305B, 0x305C, 0x305D, 0x305E, 0x305F, 0x3060, 0x3061, 0x3062,
2687 +       0x3064, 0x3065, 0x3066, 0x3067, 0x3068, 0x3069, 0x306F, 0x3070,
2688 +       0x3072, 0x3073, 0x3075, 0x3076, 0x3078, 0x3079, 0x307B, 0x307C,
2689 +       0x309D, 0x309E, 0x30A6, 0x30F4, 0x30AB, 0x30AC, 0x30AD, 0x30AE,
2690 +       0x30AF, 0x30B0, 0x30B1, 0x30B2, 0x30B3, 0x30B4, 0x30B5, 0x30B6,
2691 +       0x30B7, 0x30B8, 0x30B9, 0x30BA, 0x30BB, 0x30BC, 0x30BD, 0x30BE,
2692 +       0x30BF, 0x30C0, 0x30C1, 0x30C2, 0x30C4, 0x30C5, 0x30C6, 0x30C7,
2693 +       0x30C8, 0x30C9, 0x30CF, 0x30D0, 0x30D2, 0x30D3, 0x30D5, 0x30D6,
2694 +       0x30D8, 0x30D9, 0x30DB, 0x30DC, 0x30EF, 0x30F7, 0x30F0, 0x30F8,
2695 +       0x30F1, 0x30F9, 0x30F2, 0x30FA, 0x30FD, 0x30FE, 0x306F, 0x3071,
2696 +       0x3072, 0x3074, 0x3075, 0x3077, 0x3078, 0x307A, 0x307B, 0x307D,
2697 +       0x30CF, 0x30D1, 0x30D2, 0x30D4, 0x30D5, 0x30D7, 0x30D8, 0x30DA,
2698 +       0x30DB, 0x30DD
2699 +};
2700 +
2701 +static const u_int8_t
2702 +__CFUniCharCombiningBitmap[] = {
2703 +       0x00, 0x00, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05,
2704 +       0x00, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C,
2705 +       0x0D, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0E,
2706 +       0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2707 +       0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2708 +       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2709 +       0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2710 +       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2711 +       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2712 +       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2713 +       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2714 +       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2715 +       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2716 +       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2717 +       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2718 +       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2719 +       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2720 +       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2721 +       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2722 +       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2723 +       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2724 +       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2725 +       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2726 +       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2727 +       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2728 +       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2729 +       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2730 +       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2731 +       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2732 +       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2733 +       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2734 +       0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x13, 0x00,
2735 +
2736 +       0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
2737 +       0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00,
2738 +       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2739 +       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2740 +       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2741 +       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2742 +       0x78, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2743 +       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2744 +       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2745 +       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2746 +       0x00, 0x00, 0xFE, 0xFF, 0xFB, 0xFF, 0xFF, 0xBB,
2747 +       0x16, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2748 +       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2749 +       0x00, 0xF8, 0x3F, 0x00, 0x00, 0x00, 0x01, 0x00,
2750 +       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2751 +       0x00, 0x00, 0xC0, 0xFF, 0x9F, 0x3D, 0x00, 0x00,
2752 +       0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xFF, 0xFF,
2753 +       0xFF, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2754 +       0x00, 0x00, 0x00, 0x00, 0xC0, 0xFF, 0x01, 0x00,
2755 +       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2756 +       0x0E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xD0,
2757 +       0xFF, 0x3F, 0x1E, 0x00, 0x0C, 0x00, 0x00, 0x00,
2758 +       0x0E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xD0,
2759 +       0x9F, 0x39, 0x80, 0x00, 0x0C, 0x00, 0x00, 0x00,
2760 +       0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xD0,
2761 +       0x87, 0x39, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00,
2762 +       0x0E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xD0,
2763 +       0xBF, 0x3B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2764 +       0x0E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xD0,
2765 +       0x8F, 0x39, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00,
2766 +       0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0,
2767 +       0xC7, 0x3D, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00,
2768 +       0x0E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0,
2769 +       0xDF, 0x3D, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00,
2770 +       0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0,
2771 +       0xDF, 0x3D, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00,
2772 +       0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0,
2773 +       0xCF, 0x3D, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00,
2774 +       0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2775 +       0x00, 0x84, 0x5F, 0xFF, 0x00, 0x00, 0x0C, 0x00,
2776 +       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF2, 0x07,
2777 +       0x80, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2778 +       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF2, 0x1B,
2779 +       0x00, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2780 +       0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0xA0, 0xC2,
2781 +       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0xFF,
2782 +       0xDF, 0x00, 0xFF, 0xFE, 0xFF, 0xFF, 0xFF, 0x1F,
2783 +       0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2784 +       0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0xC7, 0x03,
2785 +       0x00, 0x00, 0xC0, 0x03, 0x00, 0x00, 0x00, 0x00,
2786 +       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2787 +       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2788 +       0x00, 0x00, 0x1C, 0x00, 0x00, 0x00, 0x1C, 0x00,
2789 +       0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x0C, 0x00,
2790 +       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0xFF,
2791 +       0xFF, 0xFF, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00,
2792 +       0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2793 +       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2794 +       0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00,
2795 +       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2796 +       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2797 +       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2798 +       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2799 +       0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x07, 0x00, 0x00,
2800 +       0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0x00, 0x00,
2801 +       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2802 +       0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00,
2803 +       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2804 +       0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00,
2805 +       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2806 +       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2807 +       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2808 +       0xFF, 0xFF, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00,
2809 +       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2810 +       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2811 +       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2812 +       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2813 +       0x00, 0x00, 0x00, 0x00, 0xFE, 0xFF, 0x3F, 0x00,
2814 +       0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF,
2815 +       0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
2816 +};
2817 +
2818 +/* Surrogate Pair Constants */
2819 +#define SP_HALF_SHIFT  10
2820 +#define SP_HALF_BASE   0x0010000UL
2821 +#define SP_HALF_MASK   0x3FFUL
2822 +
2823 +#define SP_HIGH_FIRST  0xD800UL
2824 +#define SP_HIGH_LAST   0xDBFFUL
2825 +#define SP_LOW_FIRST   0xDC00UL
2826 +#define SP_LOW_LAST    0xDFFFUL
2827 +
2828 +/*
2829 + * Test for a combining character.
2830 + *
2831 + * Similar to __CFUniCharIsNonBaseCharacter except that
2832 + * unicode_combinable also includes Hangul Jamo characters.
2833 + */
2834 +static inline int
2835 +unicode_combinable(u_int16_t character)
2836 +{
2837 +       const u_int8_t *bitmap = __CFUniCharCombiningBitmap;
2838 +       u_int8_t value;
2839 +
2840 +       if (character < 0x0300)
2841 +               return (0);
2842 +
2843 +       value = bitmap[(character >> 8) & 0xFF];
2844 +
2845 +       if (value == 0xFF) {
2846 +               return (1);
2847 +       } else if (value) {
2848 +               bitmap = bitmap + ((value - 1) * 32) + 256;
2849 +               return (bitmap[(character & 0xFF) / 8] & (1 << (character % 8)) ? 1 : 0);
2850 +       }
2851 +       return (0);
2852 +}
2853 +
2854 +/*
2855 + * Test for a precomposed character.
2856 + *
2857 + * Similar to __CFUniCharIsDecomposableCharacter.
2858 + */
2859 +static inline int
2860 +unicode_decomposeable(u_int16_t character) {
2861 +       const u_int8_t *bitmap = __CFUniCharDecomposableBitmap;
2862 +       u_int8_t value;
2863 +       
2864 +       if (character < 0x00C0)
2865 +               return (0);
2866 +
2867 +       value = bitmap[(character >> 8) & 0xFF];
2868 +
2869 +       if (value == 0xFF) {
2870 +               return (1);
2871 +       } else if (value) {
2872 +               bitmap = bitmap + ((value - 1) * 32) + 256;
2873 +               return (bitmap[(character & 0xFF) / 8] & (1 << (character % 8)) ? 1 : 0);
2874 +       }
2875 +       return (0);
2876 +}
2877 +
2878 +static int unicode_decompose(u_int16_t character, u_int16_t *convertedChars);
2879 +static u_int16_t unicode_combine(u_int16_t base, u_int16_t combining);
2880 +
2881 +char utf_extrabytes[32] = {
2882 +        0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
2883 +       -1, -1, -1, -1, -1, -1, -1, -1,  1,  1,  1,  1,  2,  2,  3, -1
2884 +};
2885 +
2886 +/*
2887 + * utf8_encodestr - Encodes a Unicode string to UTF-8
2888 + *
2889 + * NOTES:
2890 + *    The resulting UTF-8 string is NULL terminated.
2891 + *
2892 + *    If '/' chars are allowed on disk then an alternate
2893 + *    (replacement) char must be provided in altslash.
2894 + *
2895 + * input flags:
2896 + *    UTF_REVERSE_ENDIAN: Unicode byteorder is opposite current runtime
2897 + *    UTF_NO_NULL_TERM:  don't add NULL termination to UTF-8 output
2898 + *
2899 + * result:
2900 + *    ENAMETOOLONG: Name didn't fit; only buflen bytes were encoded
2901 + *    EINVAL: Illegal char found; char was replaced by an '_'.
2902 + */
2903 +int
2904 +utf8_encodestr(const u_int16_t * ucsp, size_t ucslen, u_int8_t * utf8p,
2905 +               size_t * utf8len, size_t buflen, u_int16_t altslash, int flags)
2906 +{
2907 +       u_int8_t * bufstart;
2908 +       u_int8_t * bufend;
2909 +       u_int16_t ucs_ch;
2910 +       u_int16_t * chp = NULL;
2911 +       u_int16_t sequence[8];
2912 +       int extra = 0;
2913 +       int charcnt;
2914 +       int swapbytes = (flags & UTF_REVERSE_ENDIAN);
2915 +       int nullterm  = ((flags & UTF_NO_NULL_TERM) == 0);
2916 +       int decompose = (flags & UTF_DECOMPOSED);
2917 +       int result = 0;
2918 +       
2919 +       bufstart = utf8p;
2920 +       bufend = bufstart + buflen;
2921 +       if (nullterm)
2922 +               --bufend;
2923 +       charcnt = ucslen / 2;
2924 +
2925 +       while (charcnt-- > 0) {
2926 +               if (extra > 0) {
2927 +                       --extra;
2928 +                       ucs_ch = *chp++;
2929 +               } else {
2930 +                       ucs_ch = swapbytes ? (*ucsp++) : *ucsp++;
2931 +
2932 +                       if (decompose && unicode_decomposeable(ucs_ch)) {
2933 +                               extra = unicode_decompose(ucs_ch, sequence) - 1;
2934 +                               charcnt += extra;
2935 +                               ucs_ch = sequence[0];
2936 +                               chp = &sequence[1];
2937 +                       }
2938 +               }
2939 +
2940 +               if (ucs_ch < 0x0080) {
2941 +                       if (utf8p >= bufend) {
2942 +                               result = ENAMETOOLONG;
2943 +                               break;
2944 +                       }                       
2945 +                       *utf8p++ = ucs_ch;
2946 +
2947 +               } else if (ucs_ch < 0x800) {
2948 +                       if ((utf8p + 1) >= bufend) {
2949 +                               result = ENAMETOOLONG;
2950 +                               break;
2951 +                       }
2952 +                       *utf8p++ = 0xc0 | (ucs_ch >> 6);
2953 +                       *utf8p++ = 0x80 | (0x3f & ucs_ch);
2954 +
2955 +               } else {
2956 +                       /* Combine valid surrogate pairs */
2957 +                       if (ucs_ch >= SP_HIGH_FIRST && ucs_ch <= SP_HIGH_LAST
2958 +                               && charcnt > 0) {
2959 +                               u_int16_t ch2;
2960 +                               u_int32_t pair;
2961 +
2962 +                               ch2 = swapbytes ? (*ucsp) : *ucsp;
2963 +                               if (ch2 >= SP_LOW_FIRST && ch2 <= SP_LOW_LAST) {
2964 +                                       pair = ((ucs_ch - SP_HIGH_FIRST) << SP_HALF_SHIFT)
2965 +                                               + (ch2 - SP_LOW_FIRST) + SP_HALF_BASE;
2966 +                                       if ((utf8p + 3) >= bufend) {
2967 +                                               result = ENAMETOOLONG;
2968 +                                               break;
2969 +                                       }
2970 +                                       --charcnt;
2971 +                                       ++ucsp;                         
2972 +                                       *utf8p++ = 0xf0 | (pair >> 18);
2973 +                                       *utf8p++ = 0x80 | (0x3f & (pair >> 12));
2974 +                                       *utf8p++ = 0x80 | (0x3f & (pair >> 6));
2975 +                                       *utf8p++ = 0x80 | (0x3f & pair);
2976 +                                       continue;
2977 +                               }
2978 +                       }
2979 +                       if ((utf8p + 2) >= bufend) {
2980 +                               result = ENAMETOOLONG;
2981 +                               break;
2982 +                       }
2983 +                       *utf8p++ = 0xe0 | (ucs_ch >> 12);
2984 +                       *utf8p++ = 0x80 | (0x3f & (ucs_ch >> 6));
2985 +                       *utf8p++ = 0x80 | (0x3f & ucs_ch);
2986 +               }       
2987 +       }
2988 +       
2989 +       *utf8len = utf8p - bufstart;
2990 +       if (nullterm)
2991 +               *utf8p++ = '\0';
2992 +
2993 +       return (result);
2994 +}
2995 +
2996 +
2997 +/*
2998 + * utf8_decodestr - Decodes a UTF-8 string back to Unicode
2999 + *
3000 + * NOTES:
3001 + *    The input UTF-8 string does not need to be null terminated
3002 + *    if utf8len is set.
3003 + *
3004 + *    If '/' chars are allowed on disk then an alternate
3005 + *    (replacement) char must be provided in altslash.
3006 + *
3007 + * input flags:
3008 + *    UTF_REV_ENDIAN:   Unicode byteorder is oposite current runtime
3009 + *    UTF_DECOMPOSED:   Unicode output string must be fully decompsed
3010 + *
3011 + * result:
3012 + *    ENAMETOOLONG: Name didn't fit; only ucslen chars were decoded.
3013 + *    EINVAL: Illegal UTF-8 sequence found.
3014 + */
3015 +int
3016 +utf8_decodestr(const u_int8_t* utf8p, size_t utf8len, u_int16_t* ucsp,
3017 +               size_t *ucslen, size_t buflen, u_int16_t altslash, int flags, size_t *consumed)
3018 +{
3019 +       u_int16_t* bufstart;
3020 +       u_int16_t* bufend;
3021 +       unsigned int ucs_ch;
3022 +       unsigned int byte;
3023 +       int result = 0;
3024 +       int decompose, precompose, swapbytes;
3025 +       const u_int8_t *utf8start, *utf8lastpass;
3026 +
3027 +       decompose =  (flags & UTF_DECOMPOSED);
3028 +       precompose = (flags & UTF_PRECOMPOSED);
3029 +       swapbytes =  (flags & UTF_REVERSE_ENDIAN);
3030 +
3031 +       bufstart = ucsp;
3032 +       bufend = (u_int16_t *)((u_int8_t *)ucsp + buflen);
3033 +       utf8start = utf8p;
3034 +
3035 +       while (utf8len-- > 0) {
3036 +               byte = *utf8p++;
3037 +
3038 +               if (ucsp >= bufend)
3039 +                       goto toolong;
3040 +
3041 +               /* check for ascii */
3042 +               if (byte < 0x80) {
3043 +                       ucs_ch = byte;                 /* 1st byte */
3044 +               } else {
3045 +                       u_int32_t ch;
3046 +                       int extrabytes = utf_extrabytes[byte >> 3];
3047 +
3048 +                       if (utf8len < extrabytes)
3049 +                               goto invalid;
3050 +                       utf8len -= extrabytes;
3051 +
3052 +                       switch (extrabytes) {
3053 +                       case 1:
3054 +                               ch = byte; ch <<= 6;   /* 1st byte */
3055 +                               byte = *utf8p++;       /* 2nd byte */
3056 +                               if ((byte >> 6) != 2)
3057 +                                       goto invalid;
3058 +                               ch += byte;
3059 +                               ch -= 0x00003080UL;
3060 +                               if (ch < 0x0080)
3061 +                                       goto invalid;
3062 +                               ucs_ch = ch;
3063 +                               break;
3064 +                       case 2:
3065 +                               ch = byte; ch <<= 6;   /* 1st byte */
3066 +                               byte = *utf8p++;       /* 2nd byte */
3067 +                               if ((byte >> 6) != 2)
3068 +                                       goto invalid;
3069 +                               ch += byte; ch <<= 6;
3070 +                               byte = *utf8p++;       /* 3rd byte */
3071 +                               if ((byte >> 6) != 2)
3072 +                                       goto invalid;
3073 +                               ch += byte;
3074 +                               ch -= 0x000E2080UL;
3075 +                               if (ch < 0x0800)
3076 +                                       goto invalid;
3077 +                               if (ch >= 0xD800) {
3078 +                                       if (ch <= 0xDFFF)
3079 +                                               goto invalid;
3080 +                                       if (ch == 0xFFFE || ch == 0xFFFF)
3081 +                                               goto invalid;
3082 +                               }
3083 +                               ucs_ch = ch;
3084 +                               break;
3085 +                       case 3:
3086 +                               ch = byte; ch <<= 6;   /* 1st byte */
3087 +                               byte = *utf8p++;       /* 2nd byte */
3088 +                               if ((byte >> 6) != 2)
3089 +                                       goto invalid;
3090 +                               ch += byte; ch <<= 6;
3091 +                               byte = *utf8p++;       /* 3rd byte */
3092 +                               if ((byte >> 6) != 2)
3093 +                                       goto invalid;
3094 +                               ch += byte; ch <<= 6;
3095 +                               byte = *utf8p++;       /* 4th byte */
3096 +                               if ((byte >> 6) != 2)
3097 +                                       goto invalid;
3098 +                               ch += byte;
3099 +                               ch -= 0x03C82080UL + SP_HALF_BASE;
3100 +                               ucs_ch = (ch >> SP_HALF_SHIFT) + SP_HIGH_FIRST;
3101 +                               if (ucs_ch < SP_HIGH_FIRST || ucs_ch > SP_HIGH_LAST)
3102 +                                       goto invalid;
3103 +                               *ucsp++ = swapbytes ? (ucs_ch) : ucs_ch;
3104 +                               if (ucsp >= bufend)
3105 +                                       goto toolong;
3106 +                               ucs_ch = (ch & SP_HALF_MASK) + SP_LOW_FIRST;
3107 +                               if (ucs_ch < SP_LOW_FIRST || ucs_ch > SP_LOW_LAST)
3108 +                                       goto invalid;
3109 +                               *ucsp++ = swapbytes ? (ucs_ch) : ucs_ch;
3110 +                               continue;
3111 +                       default:
3112 +                               goto invalid;
3113 +                       }
3114 +               }
3115 +       if (precompose && (ucsp != bufstart)) {
3116 +               u_int16_t composite, base;
3117 +
3118 +               if (unicode_combinable(ucs_ch)) {
3119 +                       base = swapbytes ? (*(ucsp - 1)) : *(ucsp - 1);
3120 +                       composite = unicode_combine(base, ucs_ch);
3121 +                       if (composite) {
3122 +                               --ucsp;
3123 +                               ucs_ch = composite;
3124 +                       } else {
3125 +                               goto exit;
3126 +                       }
3127 +               } else {
3128 +                       goto exit;
3129 +               }
3130 +       }
3131 +       *ucsp++ = swapbytes ? (ucs_ch) : ucs_ch;
3132 +       utf8lastpass = utf8p;
3133 +       }
3134 +
3135 +exit:
3136 +       *ucslen = (u_int8_t*)ucsp - (u_int8_t*)bufstart;
3137 +       *consumed = utf8lastpass - utf8start;
3138 +       return (result);
3139 +
3140 +invalid:
3141 +       result = EINVAL;
3142 +       goto exit;
3143 +
3144 +toolong:
3145 +       result = ENAMETOOLONG;
3146 +       goto exit;
3147 +}
3148 +
3149 + /*
3150 +  * Unicode 3.2 decomposition code (derived from Core Foundation)
3151 +  */
3152 +
3153 +typedef struct {
3154 +       u_int32_t _key;
3155 +       u_int32_t _value;
3156 +} unicode_mappings32;
3157 +
3158 +static inline u_int32_t
3159 +getmappedvalue32(const unicode_mappings32 *theTable, u_int32_t numElem,
3160 +               u_int16_t character)
3161 +{
3162 +       const unicode_mappings32 *p, *q, *divider;
3163 +
3164 +       if ((character < theTable[0]._key) || (character > theTable[numElem-1]._key))
3165 +               return (0);
3166 +
3167 +       p = theTable;
3168 +       q = p + (numElem-1);
3169 +       while (p <= q) {
3170 +               divider = p + ((q - p) >> 1);   /* divide by 2 */
3171 +               if (character < divider->_key) { q = divider - 1; }
3172 +               else if (character > divider->_key) { p = divider + 1; }
3173 +               else { return (divider->_value); }
3174 +       }
3175 +       return (0);
3176 +}
3177 +
3178 +#define RECURSIVE_DECOMPOSITION        (1 << 15)
3179 +#define EXTRACT_COUNT(value)   (((value) >> 12) & 0x0007)
3180 +
3181 +typedef struct {
3182 +       u_int16_t _key;
3183 +       u_int16_t _value;
3184 +} unicode_mappings16;
3185 +
3186 +static inline u_int16_t
3187 +getmappedvalue16(const unicode_mappings16 *theTable, u_int32_t numElem,
3188 +               u_int16_t character)
3189 +{
3190 +       const unicode_mappings16 *p, *q, *divider;
3191 +
3192 +       if ((character < theTable[0]._key) || (character > theTable[numElem-1]._key))
3193 +               return (0);
3194 +
3195 +       p = theTable;
3196 +       q = p + (numElem-1);
3197 +       while (p <= q) {
3198 +               divider = p + ((q - p) >> 1);   /* divide by 2 */
3199 +               if (character < divider->_key)
3200 +                       q = divider - 1;
3201 +               else if (character > divider->_key)
3202 +                       p = divider + 1;
3203 +               else
3204 +                       return (divider->_value);
3205 +       }
3206 +       return (0);
3207 +}
3208 +
3209 +
3210 +static u_int32_t
3211 +unicode_recursive_decompose(u_int16_t character, u_int16_t *convertedChars)
3212 +{
3213 +       u_int16_t value;
3214 +       u_int32_t length;
3215 +       u_int16_t firstChar;
3216 +       u_int16_t theChar;
3217 +       const u_int16_t *bmpMappings;
3218 +       u_int32_t usedLength;
3219 +
3220 +       value = getmappedvalue16(
3221 +               (const unicode_mappings16 *)__CFUniCharDecompositionTable,
3222 +               __UniCharDecompositionTableLength, character);
3223 +       length = EXTRACT_COUNT(value);
3224 +       firstChar = value & 0x0FFF;
3225 +       theChar = firstChar;
3226 +       bmpMappings = (length == 1 ? &theChar : __CFUniCharMultipleDecompositionTable + firstChar);
3227 +       usedLength = 0;
3228 +
3229 +       if (value & RECURSIVE_DECOMPOSITION) {
3230 +           usedLength = unicode_recursive_decompose((u_int16_t)*bmpMappings, convertedChars);
3231 +       
3232 +           --length;   /* Decrement for the first char */
3233 +           if (!usedLength)
3234 +               return 0;
3235 +           ++bmpMappings;
3236 +           convertedChars += usedLength;
3237 +       }
3238 +       
3239 +       usedLength += length;
3240 +       
3241 +       while (length--)
3242 +               *(convertedChars++) = *(bmpMappings++);
3243 +       
3244 +       return (usedLength);
3245 +}
3246 +
3247 +#define HANGUL_SBASE 0xAC00
3248 +#define HANGUL_LBASE 0x1100
3249 +#define HANGUL_VBASE 0x1161
3250 +#define HANGUL_TBASE 0x11A7
3251 +
3252 +#define HANGUL_SCOUNT 11172
3253 +#define HANGUL_LCOUNT 19
3254 +#define HANGUL_VCOUNT 21
3255 +#define HANGUL_TCOUNT 28
3256 +#define HANGUL_NCOUNT (HANGUL_VCOUNT * HANGUL_TCOUNT)
3257 +
3258 +/*
3259 + * unicode_decompose - decompose a composed Unicode char
3260 + *
3261 + * Composed Unicode characters are forbidden on
3262 + * HFS Plus volumes. ucs_decompose will convert a
3263 + * composed character into its correct decomposed
3264 + * sequence.
3265 + *
3266 + * Similar to CFUniCharDecomposeCharacter
3267 + */
3268 +static int
3269 +unicode_decompose(u_int16_t character, u_int16_t *convertedChars)
3270 +{
3271 +       if ((character >= HANGUL_SBASE) &&
3272 +           (character <= (HANGUL_SBASE + HANGUL_SCOUNT))) {
3273 +               u_int32_t length;
3274 +
3275 +               character -= HANGUL_SBASE;
3276 +               length = (character % HANGUL_TCOUNT ? 3 : 2);
3277 +
3278 +               *(convertedChars++) =
3279 +                       character / HANGUL_NCOUNT + HANGUL_LBASE;
3280 +               *(convertedChars++) =
3281 +                       (character % HANGUL_NCOUNT) / HANGUL_TCOUNT + HANGUL_VBASE;
3282 +               if (length > 2)
3283 +                       *convertedChars = (character % HANGUL_TCOUNT) + HANGUL_TBASE;
3284 +               return (length);
3285 +       } else {
3286 +               return (unicode_recursive_decompose(character, convertedChars));
3287 +       }
3288 +}
3289 +
3290 +/*
3291 + * unicode_combine - generate a precomposed Unicode char
3292 + *
3293 + * Precomposed Unicode characters are required for some volume
3294 + * formats and network protocols.  unicode_combine will combine
3295 + * a decomposed character sequence into a single precomposed
3296 + * (composite) character.
3297 + *
3298 + * Similar toCFUniCharPrecomposeCharacter but unicode_combine
3299 + * also handles Hangul Jamo characters.
3300 + */
3301 +static u_int16_t
3302 +unicode_combine(u_int16_t base, u_int16_t combining)
3303 +{
3304 +       u_int32_t value;
3305 +
3306 +       /* Check HANGUL */
3307 +       if ((combining >= HANGUL_VBASE) && (combining < (HANGUL_TBASE + HANGUL_TCOUNT))) {
3308 +               /* 2 char Hangul sequences */
3309 +               if ((combining < (HANGUL_VBASE + HANGUL_VCOUNT)) &&
3310 +                   (base >= HANGUL_LBASE && base < (HANGUL_LBASE + HANGUL_LCOUNT))) {
3311 +                   return (HANGUL_SBASE +
3312 +                           ((base - HANGUL_LBASE)*(HANGUL_VCOUNT*HANGUL_TCOUNT)) +
3313 +                           ((combining  - HANGUL_VBASE)*HANGUL_TCOUNT));
3314 +               }
3315 +       
3316 +               /* 3 char Hangul sequences */
3317 +               if ((combining > HANGUL_TBASE) &&
3318 +                   (base >= HANGUL_SBASE && base < (HANGUL_SBASE + HANGUL_SCOUNT))) {
3319 +                       if ((base - HANGUL_SBASE) % HANGUL_TCOUNT)
3320 +                               return (0);
3321 +                       else
3322 +                               return (base + (combining - HANGUL_TBASE));
3323 +               }
3324 +       }
3325 +
3326 +       value = getmappedvalue32(
3327 +               (const unicode_mappings32 *)__CFUniCharPrecompSourceTable,
3328 +               __CFUniCharPrecompositionTableLength, combining);
3329 +
3330 +       if (value) {
3331 +               value = getmappedvalue16(
3332 +                       (const unicode_mappings16 *)
3333 +                       ((u_int32_t *)__CFUniCharBMPPrecompDestinationTable + (value & 0xFFFF)),
3334 +                       (value >> 16), base);
3335 +       }
3336 +       return (value);
3337 +}
3338 +
3339 +static int
3340 +utf8mac_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n)
3341 +{
3342 +    u_int16_t ucsp[13];
3343 +    size_t ucslen = 0, consumed = 0;
3344 +    int ret;
3345 +
3346 +    bzero(&ucsp, sizeof(ucsp));
3347 +    *pwc = 0;
3348 +
3349 +    ret = utf8_decodestr(s, n, ucsp, &ucslen, sizeof(ucsp), NULL, UTF_PRECOMPOSED, &consumed);
3350 +
3351 +    if (ret == ENAMETOOLONG)   /* Name didn't fit; only ucslen chars were decoded */
3352 +       return RET_TOOFEW(0);
3353 +
3354 +    if ( ret == EINVAL)                /* Illegal UTF-8 sequence found */
3355 +       return RET_ILSEQ;
3356 +
3357 +    if((ret = ucs2_mbtowc(conv, pwc, (const unsigned char *) ucsp, ucslen)) < 0)
3358 +       return ret;
3359 +
3360 +    return consumed;
3361 +}
3362 +
3363 +static int
3364 +utf8mac_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n) /* n == 0 is acceptable */
3365 +{
3366 +    int ret;
3367 +    size_t len;
3368 +    u_int16_t ucs_string[13];
3369 +
3370 +    if((ret = ucs2_wctomb(conv, (unsigned char *) ucs_string, wc, sizeof(ucs_string))) < 0)
3371 +       return ret;
3372 +
3373 +    utf8_encodestr(ucs_string, ret, r, &len, n, 0, UTF_NO_NULL_TERM | UTF_DECOMPOSED);
3374 +
3375 +    return len;
3376 +}