1 /* Copyright (C) 2000 MySQL AB
3 This library is free software; you can redistribute it and/or
4 modify it under the terms of the GNU Library General Public
5 License as published by the Free Software Foundation; either
6 version 2 of the License, or (at your option) any later version.
8 This library is distributed in the hope that it will be useful,
9 but WITHOUT ANY WARRANTY; without even the implied warranty of
10 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
11 Library General Public License for more details.
13 You should have received a copy of the GNU Library General Public
14 License along with this library; if not, write to the Free
15 Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
18 /* UTF8 according RFC 2279 */
19 /* Written by Alexander Barkov <bar@udm.net> */
21 /* Modified by Hu Zheng <huzheng_001@163.com> for StarDict. 2006.6.13 */
27 #include "my_global.h"
32 using namespace stardict_collation;
35 //#define EILSEQ ENOENT
38 #ifndef HAVE_CHARSET_utf8
39 #define HAVE_CHARSET_utf8
42 #ifdef HAVE_CHARSET_utf8
46 #ifdef HAVE_CHARSET_ucs2
52 //#include "my_uctype.h"
54 static MY_UNICASE_INFO plane00[]={
55 {0x0000,0x0000,0x0000}, {0x0001,0x0001,0x0001},
56 {0x0002,0x0002,0x0002}, {0x0003,0x0003,0x0003},
57 {0x0004,0x0004,0x0004}, {0x0005,0x0005,0x0005},
58 {0x0006,0x0006,0x0006}, {0x0007,0x0007,0x0007},
59 {0x0008,0x0008,0x0008}, {0x0009,0x0009,0x0009},
60 {0x000A,0x000A,0x000A}, {0x000B,0x000B,0x000B},
61 {0x000C,0x000C,0x000C}, {0x000D,0x000D,0x000D},
62 {0x000E,0x000E,0x000E}, {0x000F,0x000F,0x000F},
63 {0x0010,0x0010,0x0010}, {0x0011,0x0011,0x0011},
64 {0x0012,0x0012,0x0012}, {0x0013,0x0013,0x0013},
65 {0x0014,0x0014,0x0014}, {0x0015,0x0015,0x0015},
66 {0x0016,0x0016,0x0016}, {0x0017,0x0017,0x0017},
67 {0x0018,0x0018,0x0018}, {0x0019,0x0019,0x0019},
68 {0x001A,0x001A,0x001A}, {0x001B,0x001B,0x001B},
69 {0x001C,0x001C,0x001C}, {0x001D,0x001D,0x001D},
70 {0x001E,0x001E,0x001E}, {0x001F,0x001F,0x001F},
71 {0x0020,0x0020,0x0020}, {0x0021,0x0021,0x0021},
72 {0x0022,0x0022,0x0022}, {0x0023,0x0023,0x0023},
73 {0x0024,0x0024,0x0024}, {0x0025,0x0025,0x0025},
74 {0x0026,0x0026,0x0026}, {0x0027,0x0027,0x0027},
75 {0x0028,0x0028,0x0028}, {0x0029,0x0029,0x0029},
76 {0x002A,0x002A,0x002A}, {0x002B,0x002B,0x002B},
77 {0x002C,0x002C,0x002C}, {0x002D,0x002D,0x002D},
78 {0x002E,0x002E,0x002E}, {0x002F,0x002F,0x002F},
79 {0x0030,0x0030,0x0030}, {0x0031,0x0031,0x0031},
80 {0x0032,0x0032,0x0032}, {0x0033,0x0033,0x0033},
81 {0x0034,0x0034,0x0034}, {0x0035,0x0035,0x0035},
82 {0x0036,0x0036,0x0036}, {0x0037,0x0037,0x0037},
83 {0x0038,0x0038,0x0038}, {0x0039,0x0039,0x0039},
84 {0x003A,0x003A,0x003A}, {0x003B,0x003B,0x003B},
85 {0x003C,0x003C,0x003C}, {0x003D,0x003D,0x003D},
86 {0x003E,0x003E,0x003E}, {0x003F,0x003F,0x003F},
87 {0x0040,0x0040,0x0040}, {0x0041,0x0061,0x0041},
88 {0x0042,0x0062,0x0042}, {0x0043,0x0063,0x0043},
89 {0x0044,0x0064,0x0044}, {0x0045,0x0065,0x0045},
90 {0x0046,0x0066,0x0046}, {0x0047,0x0067,0x0047},
91 {0x0048,0x0068,0x0048}, {0x0049,0x0069,0x0049},
92 {0x004A,0x006A,0x004A}, {0x004B,0x006B,0x004B},
93 {0x004C,0x006C,0x004C}, {0x004D,0x006D,0x004D},
94 {0x004E,0x006E,0x004E}, {0x004F,0x006F,0x004F},
95 {0x0050,0x0070,0x0050}, {0x0051,0x0071,0x0051},
96 {0x0052,0x0072,0x0052}, {0x0053,0x0073,0x0053},
97 {0x0054,0x0074,0x0054}, {0x0055,0x0075,0x0055},
98 {0x0056,0x0076,0x0056}, {0x0057,0x0077,0x0057},
99 {0x0058,0x0078,0x0058}, {0x0059,0x0079,0x0059},
100 {0x005A,0x007A,0x005A}, {0x005B,0x005B,0x005B},
101 {0x005C,0x005C,0x005C}, {0x005D,0x005D,0x005D},
102 {0x005E,0x005E,0x005E}, {0x005F,0x005F,0x005F},
103 {0x0060,0x0060,0x0060}, {0x0041,0x0061,0x0041},
104 {0x0042,0x0062,0x0042}, {0x0043,0x0063,0x0043},
105 {0x0044,0x0064,0x0044}, {0x0045,0x0065,0x0045},
106 {0x0046,0x0066,0x0046}, {0x0047,0x0067,0x0047},
107 {0x0048,0x0068,0x0048}, {0x0049,0x0069,0x0049},
108 {0x004A,0x006A,0x004A}, {0x004B,0x006B,0x004B},
109 {0x004C,0x006C,0x004C}, {0x004D,0x006D,0x004D},
110 {0x004E,0x006E,0x004E}, {0x004F,0x006F,0x004F},
111 {0x0050,0x0070,0x0050}, {0x0051,0x0071,0x0051},
112 {0x0052,0x0072,0x0052}, {0x0053,0x0073,0x0053},
113 {0x0054,0x0074,0x0054}, {0x0055,0x0075,0x0055},
114 {0x0056,0x0076,0x0056}, {0x0057,0x0077,0x0057},
115 {0x0058,0x0078,0x0058}, {0x0059,0x0079,0x0059},
116 {0x005A,0x007A,0x005A}, {0x007B,0x007B,0x007B},
117 {0x007C,0x007C,0x007C}, {0x007D,0x007D,0x007D},
118 {0x007E,0x007E,0x007E}, {0x007F,0x007F,0x007F},
119 {0x0080,0x0080,0x0080}, {0x0081,0x0081,0x0081},
120 {0x0082,0x0082,0x0082}, {0x0083,0x0083,0x0083},
121 {0x0084,0x0084,0x0084}, {0x0085,0x0085,0x0085},
122 {0x0086,0x0086,0x0086}, {0x0087,0x0087,0x0087},
123 {0x0088,0x0088,0x0088}, {0x0089,0x0089,0x0089},
124 {0x008A,0x008A,0x008A}, {0x008B,0x008B,0x008B},
125 {0x008C,0x008C,0x008C}, {0x008D,0x008D,0x008D},
126 {0x008E,0x008E,0x008E}, {0x008F,0x008F,0x008F},
127 {0x0090,0x0090,0x0090}, {0x0091,0x0091,0x0091},
128 {0x0092,0x0092,0x0092}, {0x0093,0x0093,0x0093},
129 {0x0094,0x0094,0x0094}, {0x0095,0x0095,0x0095},
130 {0x0096,0x0096,0x0096}, {0x0097,0x0097,0x0097},
131 {0x0098,0x0098,0x0098}, {0x0099,0x0099,0x0099},
132 {0x009A,0x009A,0x009A}, {0x009B,0x009B,0x009B},
133 {0x009C,0x009C,0x009C}, {0x009D,0x009D,0x009D},
134 {0x009E,0x009E,0x009E}, {0x009F,0x009F,0x009F},
135 {0x00A0,0x00A0,0x00A0}, {0x00A1,0x00A1,0x00A1},
136 {0x00A2,0x00A2,0x00A2}, {0x00A3,0x00A3,0x00A3},
137 {0x00A4,0x00A4,0x00A4}, {0x00A5,0x00A5,0x00A5},
138 {0x00A6,0x00A6,0x00A6}, {0x00A7,0x00A7,0x00A7},
139 {0x00A8,0x00A8,0x00A8}, {0x00A9,0x00A9,0x00A9},
140 {0x00AA,0x00AA,0x00AA}, {0x00AB,0x00AB,0x00AB},
141 {0x00AC,0x00AC,0x00AC}, {0x00AD,0x00AD,0x00AD},
142 {0x00AE,0x00AE,0x00AE}, {0x00AF,0x00AF,0x00AF},
143 {0x00B0,0x00B0,0x00B0}, {0x00B1,0x00B1,0x00B1},
144 {0x00B2,0x00B2,0x00B2}, {0x00B3,0x00B3,0x00B3},
145 {0x00B4,0x00B4,0x00B4}, {0x039C,0x00B5,0x039C},
146 {0x00B6,0x00B6,0x00B6}, {0x00B7,0x00B7,0x00B7},
147 {0x00B8,0x00B8,0x00B8}, {0x00B9,0x00B9,0x00B9},
148 {0x00BA,0x00BA,0x00BA}, {0x00BB,0x00BB,0x00BB},
149 {0x00BC,0x00BC,0x00BC}, {0x00BD,0x00BD,0x00BD},
150 {0x00BE,0x00BE,0x00BE}, {0x00BF,0x00BF,0x00BF},
151 {0x00C0,0x00E0,0x0041}, {0x00C1,0x00E1,0x0041},
152 {0x00C2,0x00E2,0x0041}, {0x00C3,0x00E3,0x0041},
153 {0x00C4,0x00E4,0x0041}, {0x00C5,0x00E5,0x0041},
154 {0x00C6,0x00E6,0x00C6}, {0x00C7,0x00E7,0x0043},
155 {0x00C8,0x00E8,0x0045}, {0x00C9,0x00E9,0x0045},
156 {0x00CA,0x00EA,0x0045}, {0x00CB,0x00EB,0x0045},
157 {0x00CC,0x00EC,0x0049}, {0x00CD,0x00ED,0x0049},
158 {0x00CE,0x00EE,0x0049}, {0x00CF,0x00EF,0x0049},
159 {0x00D0,0x00F0,0x00D0}, {0x00D1,0x00F1,0x004E},
160 {0x00D2,0x00F2,0x004F}, {0x00D3,0x00F3,0x004F},
161 {0x00D4,0x00F4,0x004F}, {0x00D5,0x00F5,0x004F},
162 {0x00D6,0x00F6,0x004F}, {0x00D7,0x00D7,0x00D7},
163 {0x00D8,0x00F8,0x00D8}, {0x00D9,0x00F9,0x0055},
164 {0x00DA,0x00FA,0x0055}, {0x00DB,0x00FB,0x0055},
165 {0x00DC,0x00FC,0x0055}, {0x00DD,0x00FD,0x0059},
166 {0x00DE,0x00FE,0x00DE}, {0x00DF,0x00DF,0x00DF},
167 {0x00C0,0x00E0,0x0041}, {0x00C1,0x00E1,0x0041},
168 {0x00C2,0x00E2,0x0041}, {0x00C3,0x00E3,0x0041},
169 {0x00C4,0x00E4,0x0041}, {0x00C5,0x00E5,0x0041},
170 {0x00C6,0x00E6,0x00C6}, {0x00C7,0x00E7,0x0043},
171 {0x00C8,0x00E8,0x0045}, {0x00C9,0x00E9,0x0045},
172 {0x00CA,0x00EA,0x0045}, {0x00CB,0x00EB,0x0045},
173 {0x00CC,0x00EC,0x0049}, {0x00CD,0x00ED,0x0049},
174 {0x00CE,0x00EE,0x0049}, {0x00CF,0x00EF,0x0049},
175 {0x00D0,0x00F0,0x00D0}, {0x00D1,0x00F1,0x004E},
176 {0x00D2,0x00F2,0x004F}, {0x00D3,0x00F3,0x004F},
177 {0x00D4,0x00F4,0x004F}, {0x00D5,0x00F5,0x004F},
178 {0x00D6,0x00F6,0x004F}, {0x00F7,0x00F7,0x00F7},
179 {0x00D8,0x00F8,0x00D8}, {0x00D9,0x00F9,0x0055},
180 {0x00DA,0x00FA,0x0055}, {0x00DB,0x00FB,0x0055},
181 {0x00DC,0x00FC,0x0055}, {0x00DD,0x00FD,0x0059},
182 {0x00DE,0x00FE,0x00DE}, {0x0178,0x00FF,0x0059}
187 static MY_UNICASE_INFO plane01[]={
188 {0x0100,0x0101,0x0041}, {0x0100,0x0101,0x0041},
189 {0x0102,0x0103,0x0041}, {0x0102,0x0103,0x0041},
190 {0x0104,0x0105,0x0041}, {0x0104,0x0105,0x0041},
191 {0x0106,0x0107,0x0043}, {0x0106,0x0107,0x0043},
192 {0x0108,0x0109,0x0043}, {0x0108,0x0109,0x0043},
193 {0x010A,0x010B,0x0043}, {0x010A,0x010B,0x0043},
194 {0x010C,0x010D,0x0043}, {0x010C,0x010D,0x0043},
195 {0x010E,0x010F,0x0044}, {0x010E,0x010F,0x0044},
196 {0x0110,0x0111,0x0110}, {0x0110,0x0111,0x0110},
197 {0x0112,0x0113,0x0045}, {0x0112,0x0113,0x0045},
198 {0x0114,0x0115,0x0045}, {0x0114,0x0115,0x0045},
199 {0x0116,0x0117,0x0045}, {0x0116,0x0117,0x0045},
200 {0x0118,0x0119,0x0045}, {0x0118,0x0119,0x0045},
201 {0x011A,0x011B,0x0045}, {0x011A,0x011B,0x0045},
202 {0x011C,0x011D,0x0047}, {0x011C,0x011D,0x0047},
203 {0x011E,0x011F,0x0047}, {0x011E,0x011F,0x0047},
204 {0x0120,0x0121,0x0047}, {0x0120,0x0121,0x0047},
205 {0x0122,0x0123,0x0047}, {0x0122,0x0123,0x0047},
206 {0x0124,0x0125,0x0048}, {0x0124,0x0125,0x0048},
207 {0x0126,0x0127,0x0126}, {0x0126,0x0127,0x0126},
208 {0x0128,0x0129,0x0049}, {0x0128,0x0129,0x0049},
209 {0x012A,0x012B,0x0049}, {0x012A,0x012B,0x0049},
210 {0x012C,0x012D,0x0049}, {0x012C,0x012D,0x0049},
211 {0x012E,0x012F,0x0049}, {0x012E,0x012F,0x0049},
212 {0x0130,0x0069,0x0049}, {0x0049,0x0131,0x0049},
213 {0x0132,0x0133,0x0132}, {0x0132,0x0133,0x0132},
214 {0x0134,0x0135,0x004A}, {0x0134,0x0135,0x004A},
215 {0x0136,0x0137,0x004B}, {0x0136,0x0137,0x004B},
216 {0x0138,0x0138,0x0138}, {0x0139,0x013A,0x004C},
217 {0x0139,0x013A,0x004C}, {0x013B,0x013C,0x004C},
218 {0x013B,0x013C,0x004C}, {0x013D,0x013E,0x004C},
219 {0x013D,0x013E,0x004C}, {0x013F,0x0140,0x013F},
220 {0x013F,0x0140,0x013F}, {0x0141,0x0142,0x0141},
221 {0x0141,0x0142,0x0141}, {0x0143,0x0144,0x004E},
222 {0x0143,0x0144,0x004E}, {0x0145,0x0146,0x004E},
223 {0x0145,0x0146,0x004E}, {0x0147,0x0148,0x004E},
224 {0x0147,0x0148,0x004E}, {0x0149,0x0149,0x0149},
225 {0x014A,0x014B,0x014A}, {0x014A,0x014B,0x014A},
226 {0x014C,0x014D,0x004F}, {0x014C,0x014D,0x004F},
227 {0x014E,0x014F,0x004F}, {0x014E,0x014F,0x004F},
228 {0x0150,0x0151,0x004F}, {0x0150,0x0151,0x004F},
229 {0x0152,0x0153,0x0152}, {0x0152,0x0153,0x0152},
230 {0x0154,0x0155,0x0052}, {0x0154,0x0155,0x0052},
231 {0x0156,0x0157,0x0052}, {0x0156,0x0157,0x0052},
232 {0x0158,0x0159,0x0052}, {0x0158,0x0159,0x0052},
233 {0x015A,0x015B,0x0053}, {0x015A,0x015B,0x0053},
234 {0x015C,0x015D,0x0053}, {0x015C,0x015D,0x0053},
235 {0x015E,0x015F,0x0053}, {0x015E,0x015F,0x0053},
236 {0x0160,0x0161,0x0053}, {0x0160,0x0161,0x0053},
237 {0x0162,0x0163,0x0054}, {0x0162,0x0163,0x0054},
238 {0x0164,0x0165,0x0054}, {0x0164,0x0165,0x0054},
239 {0x0166,0x0167,0x0166}, {0x0166,0x0167,0x0166},
240 {0x0168,0x0169,0x0055}, {0x0168,0x0169,0x0055},
241 {0x016A,0x016B,0x0055}, {0x016A,0x016B,0x0055},
242 {0x016C,0x016D,0x0055}, {0x016C,0x016D,0x0055},
243 {0x016E,0x016F,0x0055}, {0x016E,0x016F,0x0055},
244 {0x0170,0x0171,0x0055}, {0x0170,0x0171,0x0055},
245 {0x0172,0x0173,0x0055}, {0x0172,0x0173,0x0055},
246 {0x0174,0x0175,0x0057}, {0x0174,0x0175,0x0057},
247 {0x0176,0x0177,0x0059}, {0x0176,0x0177,0x0059},
248 {0x0178,0x00FF,0x0059}, {0x0179,0x017A,0x005A},
249 {0x0179,0x017A,0x005A}, {0x017B,0x017C,0x005A},
250 {0x017B,0x017C,0x005A}, {0x017D,0x017E,0x005A},
251 {0x017D,0x017E,0x005A}, {0x0053,0x017F,0x0053},
252 {0x0180,0x0180,0x0180}, {0x0181,0x0253,0x0181},
253 {0x0182,0x0183,0x0182}, {0x0182,0x0183,0x0182},
254 {0x0184,0x0185,0x0184}, {0x0184,0x0185,0x0184},
255 {0x0186,0x0254,0x0186}, {0x0187,0x0188,0x0187},
256 {0x0187,0x0188,0x0187}, {0x0189,0x0256,0x0189},
257 {0x018A,0x0257,0x018A}, {0x018B,0x018C,0x018B},
258 {0x018B,0x018C,0x018B}, {0x018D,0x018D,0x018D},
259 {0x018E,0x01DD,0x018E}, {0x018F,0x0259,0x018F},
260 {0x0190,0x025B,0x0190}, {0x0191,0x0192,0x0191},
261 {0x0191,0x0192,0x0191}, {0x0193,0x0260,0x0193},
262 {0x0194,0x0263,0x0194}, {0x01F6,0x0195,0x01F6},
263 {0x0196,0x0269,0x0196}, {0x0197,0x0268,0x0197},
264 {0x0198,0x0199,0x0198}, {0x0198,0x0199,0x0198},
265 {0x019A,0x019A,0x019A}, {0x019B,0x019B,0x019B},
266 {0x019C,0x026F,0x019C}, {0x019D,0x0272,0x019D},
267 {0x019E,0x019E,0x019E}, {0x019F,0x0275,0x019F},
268 {0x01A0,0x01A1,0x004F}, {0x01A0,0x01A1,0x004F},
269 {0x01A2,0x01A3,0x01A2}, {0x01A2,0x01A3,0x01A2},
270 {0x01A4,0x01A5,0x01A4}, {0x01A4,0x01A5,0x01A4},
271 {0x01A6,0x0280,0x01A6}, {0x01A7,0x01A8,0x01A7},
272 {0x01A7,0x01A8,0x01A7}, {0x01A9,0x0283,0x01A9},
273 {0x01AA,0x01AA,0x01AA}, {0x01AB,0x01AB,0x01AB},
274 {0x01AC,0x01AD,0x01AC}, {0x01AC,0x01AD,0x01AC},
275 {0x01AE,0x0288,0x01AE}, {0x01AF,0x01B0,0x0055},
276 {0x01AF,0x01B0,0x0055}, {0x01B1,0x028A,0x01B1},
277 {0x01B2,0x028B,0x01B2}, {0x01B3,0x01B4,0x01B3},
278 {0x01B3,0x01B4,0x01B3}, {0x01B5,0x01B6,0x01B5},
279 {0x01B5,0x01B6,0x01B5}, {0x01B7,0x0292,0x01B7},
280 {0x01B8,0x01B9,0x01B8}, {0x01B8,0x01B9,0x01B8},
281 {0x01BA,0x01BA,0x01BA}, {0x01BB,0x01BB,0x01BB},
282 {0x01BC,0x01BD,0x01BC}, {0x01BC,0x01BD,0x01BC},
283 {0x01BE,0x01BE,0x01BE}, {0x01F7,0x01BF,0x01F7},
284 {0x01C0,0x01C0,0x01C0}, {0x01C1,0x01C1,0x01C1},
285 {0x01C2,0x01C2,0x01C2}, {0x01C3,0x01C3,0x01C3},
286 {0x01C4,0x01C6,0x01C4}, {0x01C4,0x01C6,0x01C4},
287 {0x01C4,0x01C6,0x01C4}, {0x01C7,0x01C9,0x01C7},
288 {0x01C7,0x01C9,0x01C7}, {0x01C7,0x01C9,0x01C7},
289 {0x01CA,0x01CC,0x01CA}, {0x01CA,0x01CC,0x01CA},
290 {0x01CA,0x01CC,0x01CA}, {0x01CD,0x01CE,0x0041},
291 {0x01CD,0x01CE,0x0041}, {0x01CF,0x01D0,0x0049},
292 {0x01CF,0x01D0,0x0049}, {0x01D1,0x01D2,0x004F},
293 {0x01D1,0x01D2,0x004F}, {0x01D3,0x01D4,0x0055},
294 {0x01D3,0x01D4,0x0055}, {0x01D5,0x01D6,0x0055},
295 {0x01D5,0x01D6,0x0055}, {0x01D7,0x01D8,0x0055},
296 {0x01D7,0x01D8,0x0055}, {0x01D9,0x01DA,0x0055},
297 {0x01D9,0x01DA,0x0055}, {0x01DB,0x01DC,0x0055},
298 {0x01DB,0x01DC,0x0055}, {0x018E,0x01DD,0x018E},
299 {0x01DE,0x01DF,0x0041}, {0x01DE,0x01DF,0x0041},
300 {0x01E0,0x01E1,0x0041}, {0x01E0,0x01E1,0x0041},
301 {0x01E2,0x01E3,0x00C6}, {0x01E2,0x01E3,0x00C6},
302 {0x01E4,0x01E5,0x01E4}, {0x01E4,0x01E5,0x01E4},
303 {0x01E6,0x01E7,0x0047}, {0x01E6,0x01E7,0x0047},
304 {0x01E8,0x01E9,0x004B}, {0x01E8,0x01E9,0x004B},
305 {0x01EA,0x01EB,0x004F}, {0x01EA,0x01EB,0x004F},
306 {0x01EC,0x01ED,0x004F}, {0x01EC,0x01ED,0x004F},
307 {0x01EE,0x01EF,0x01B7}, {0x01EE,0x01EF,0x01B7},
308 {0x01F0,0x01F0,0x004A}, {0x01F1,0x01F3,0x01F1},
309 {0x01F1,0x01F3,0x01F1}, {0x01F1,0x01F3,0x01F1},
310 {0x01F4,0x01F5,0x0047}, {0x01F4,0x01F5,0x0047},
311 {0x01F6,0x0195,0x01F6}, {0x01F7,0x01BF,0x01F7},
312 {0x01F8,0x01F9,0x004E}, {0x01F8,0x01F9,0x004E},
313 {0x01FA,0x01FB,0x0041}, {0x01FA,0x01FB,0x0041},
314 {0x01FC,0x01FD,0x00C6}, {0x01FC,0x01FD,0x00C6},
315 {0x01FE,0x01FF,0x00D8}, {0x01FE,0x01FF,0x00D8}
318 static MY_UNICASE_INFO plane02[]={
319 {0x0200,0x0201,0x0041}, {0x0200,0x0201,0x0041},
320 {0x0202,0x0203,0x0041}, {0x0202,0x0203,0x0041},
321 {0x0204,0x0205,0x0045}, {0x0204,0x0205,0x0045},
322 {0x0206,0x0207,0x0045}, {0x0206,0x0207,0x0045},
323 {0x0208,0x0209,0x0049}, {0x0208,0x0209,0x0049},
324 {0x020A,0x020B,0x0049}, {0x020A,0x020B,0x0049},
325 {0x020C,0x020D,0x004F}, {0x020C,0x020D,0x004F},
326 {0x020E,0x020F,0x004F}, {0x020E,0x020F,0x004F},
327 {0x0210,0x0211,0x0052}, {0x0210,0x0211,0x0052},
328 {0x0212,0x0213,0x0052}, {0x0212,0x0213,0x0052},
329 {0x0214,0x0215,0x0055}, {0x0214,0x0215,0x0055},
330 {0x0216,0x0217,0x0055}, {0x0216,0x0217,0x0055},
331 {0x0218,0x0219,0x0053}, {0x0218,0x0219,0x0053},
332 {0x021A,0x021B,0x0054}, {0x021A,0x021B,0x0054},
333 {0x021C,0x021D,0x021C}, {0x021C,0x021D,0x021C},
334 {0x021E,0x021F,0x0048}, {0x021E,0x021F,0x0048},
335 {0x0220,0x0220,0x0220}, {0x0221,0x0221,0x0221},
336 {0x0222,0x0223,0x0222}, {0x0222,0x0223,0x0222},
337 {0x0224,0x0225,0x0224}, {0x0224,0x0225,0x0224},
338 {0x0226,0x0227,0x0041}, {0x0226,0x0227,0x0041},
339 {0x0228,0x0229,0x0045}, {0x0228,0x0229,0x0045},
340 {0x022A,0x022B,0x004F}, {0x022A,0x022B,0x004F},
341 {0x022C,0x022D,0x004F}, {0x022C,0x022D,0x004F},
342 {0x022E,0x022F,0x004F}, {0x022E,0x022F,0x004F},
343 {0x0230,0x0231,0x004F}, {0x0230,0x0231,0x004F},
344 {0x0232,0x0233,0x0059}, {0x0232,0x0233,0x0059},
345 {0x0234,0x0234,0x0234}, {0x0235,0x0235,0x0235},
346 {0x0236,0x0236,0x0236}, {0x0237,0x0237,0x0237},
347 {0x0238,0x0238,0x0238}, {0x0239,0x0239,0x0239},
348 {0x023A,0x023A,0x023A}, {0x023B,0x023B,0x023B},
349 {0x023C,0x023C,0x023C}, {0x023D,0x023D,0x023D},
350 {0x023E,0x023E,0x023E}, {0x023F,0x023F,0x023F},
351 {0x0240,0x0240,0x0240}, {0x0241,0x0241,0x0241},
352 {0x0242,0x0242,0x0242}, {0x0243,0x0243,0x0243},
353 {0x0244,0x0244,0x0244}, {0x0245,0x0245,0x0245},
354 {0x0246,0x0246,0x0246}, {0x0247,0x0247,0x0247},
355 {0x0248,0x0248,0x0248}, {0x0249,0x0249,0x0249},
356 {0x024A,0x024A,0x024A}, {0x024B,0x024B,0x024B},
357 {0x024C,0x024C,0x024C}, {0x024D,0x024D,0x024D},
358 {0x024E,0x024E,0x024E}, {0x024F,0x024F,0x024F},
359 {0x0250,0x0250,0x0250}, {0x0251,0x0251,0x0251},
360 {0x0252,0x0252,0x0252}, {0x0181,0x0253,0x0181},
361 {0x0186,0x0254,0x0186}, {0x0255,0x0255,0x0255},
362 {0x0189,0x0256,0x0189}, {0x018A,0x0257,0x018A},
363 {0x0258,0x0258,0x0258}, {0x018F,0x0259,0x018F},
364 {0x025A,0x025A,0x025A}, {0x0190,0x025B,0x0190},
365 {0x025C,0x025C,0x025C}, {0x025D,0x025D,0x025D},
366 {0x025E,0x025E,0x025E}, {0x025F,0x025F,0x025F},
367 {0x0193,0x0260,0x0193}, {0x0261,0x0261,0x0261},
368 {0x0262,0x0262,0x0262}, {0x0194,0x0263,0x0194},
369 {0x0264,0x0264,0x0264}, {0x0265,0x0265,0x0265},
370 {0x0266,0x0266,0x0266}, {0x0267,0x0267,0x0267},
371 {0x0197,0x0268,0x0197}, {0x0196,0x0269,0x0196},
372 {0x026A,0x026A,0x026A}, {0x026B,0x026B,0x026B},
373 {0x026C,0x026C,0x026C}, {0x026D,0x026D,0x026D},
374 {0x026E,0x026E,0x026E}, {0x019C,0x026F,0x019C},
375 {0x0270,0x0270,0x0270}, {0x0271,0x0271,0x0271},
376 {0x019D,0x0272,0x019D}, {0x0273,0x0273,0x0273},
377 {0x0274,0x0274,0x0274}, {0x019F,0x0275,0x019F},
378 {0x0276,0x0276,0x0276}, {0x0277,0x0277,0x0277},
379 {0x0278,0x0278,0x0278}, {0x0279,0x0279,0x0279},
380 {0x027A,0x027A,0x027A}, {0x027B,0x027B,0x027B},
381 {0x027C,0x027C,0x027C}, {0x027D,0x027D,0x027D},
382 {0x027E,0x027E,0x027E}, {0x027F,0x027F,0x027F},
383 {0x01A6,0x0280,0x01A6}, {0x0281,0x0281,0x0281},
384 {0x0282,0x0282,0x0282}, {0x01A9,0x0283,0x01A9},
385 {0x0284,0x0284,0x0284}, {0x0285,0x0285,0x0285},
386 {0x0286,0x0286,0x0286}, {0x0287,0x0287,0x0287},
387 {0x01AE,0x0288,0x01AE}, {0x0289,0x0289,0x0289},
388 {0x01B1,0x028A,0x01B1}, {0x01B2,0x028B,0x01B2},
389 {0x028C,0x028C,0x028C}, {0x028D,0x028D,0x028D},
390 {0x028E,0x028E,0x028E}, {0x028F,0x028F,0x028F},
391 {0x0290,0x0290,0x0290}, {0x0291,0x0291,0x0291},
392 {0x01B7,0x0292,0x01B7}, {0x0293,0x0293,0x0293},
393 {0x0294,0x0294,0x0294}, {0x0295,0x0295,0x0295},
394 {0x0296,0x0296,0x0296}, {0x0297,0x0297,0x0297},
395 {0x0298,0x0298,0x0298}, {0x0299,0x0299,0x0299},
396 {0x029A,0x029A,0x029A}, {0x029B,0x029B,0x029B},
397 {0x029C,0x029C,0x029C}, {0x029D,0x029D,0x029D},
398 {0x029E,0x029E,0x029E}, {0x029F,0x029F,0x029F},
399 {0x02A0,0x02A0,0x02A0}, {0x02A1,0x02A1,0x02A1},
400 {0x02A2,0x02A2,0x02A2}, {0x02A3,0x02A3,0x02A3},
401 {0x02A4,0x02A4,0x02A4}, {0x02A5,0x02A5,0x02A5},
402 {0x02A6,0x02A6,0x02A6}, {0x02A7,0x02A7,0x02A7},
403 {0x02A8,0x02A8,0x02A8}, {0x02A9,0x02A9,0x02A9},
404 {0x02AA,0x02AA,0x02AA}, {0x02AB,0x02AB,0x02AB},
405 {0x02AC,0x02AC,0x02AC}, {0x02AD,0x02AD,0x02AD},
406 {0x02AE,0x02AE,0x02AE}, {0x02AF,0x02AF,0x02AF},
407 {0x02B0,0x02B0,0x02B0}, {0x02B1,0x02B1,0x02B1},
408 {0x02B2,0x02B2,0x02B2}, {0x02B3,0x02B3,0x02B3},
409 {0x02B4,0x02B4,0x02B4}, {0x02B5,0x02B5,0x02B5},
410 {0x02B6,0x02B6,0x02B6}, {0x02B7,0x02B7,0x02B7},
411 {0x02B8,0x02B8,0x02B8}, {0x02B9,0x02B9,0x02B9},
412 {0x02BA,0x02BA,0x02BA}, {0x02BB,0x02BB,0x02BB},
413 {0x02BC,0x02BC,0x02BC}, {0x02BD,0x02BD,0x02BD},
414 {0x02BE,0x02BE,0x02BE}, {0x02BF,0x02BF,0x02BF},
415 {0x02C0,0x02C0,0x02C0}, {0x02C1,0x02C1,0x02C1},
416 {0x02C2,0x02C2,0x02C2}, {0x02C3,0x02C3,0x02C3},
417 {0x02C4,0x02C4,0x02C4}, {0x02C5,0x02C5,0x02C5},
418 {0x02C6,0x02C6,0x02C6}, {0x02C7,0x02C7,0x02C7},
419 {0x02C8,0x02C8,0x02C8}, {0x02C9,0x02C9,0x02C9},
420 {0x02CA,0x02CA,0x02CA}, {0x02CB,0x02CB,0x02CB},
421 {0x02CC,0x02CC,0x02CC}, {0x02CD,0x02CD,0x02CD},
422 {0x02CE,0x02CE,0x02CE}, {0x02CF,0x02CF,0x02CF},
423 {0x02D0,0x02D0,0x02D0}, {0x02D1,0x02D1,0x02D1},
424 {0x02D2,0x02D2,0x02D2}, {0x02D3,0x02D3,0x02D3},
425 {0x02D4,0x02D4,0x02D4}, {0x02D5,0x02D5,0x02D5},
426 {0x02D6,0x02D6,0x02D6}, {0x02D7,0x02D7,0x02D7},
427 {0x02D8,0x02D8,0x02D8}, {0x02D9,0x02D9,0x02D9},
428 {0x02DA,0x02DA,0x02DA}, {0x02DB,0x02DB,0x02DB},
429 {0x02DC,0x02DC,0x02DC}, {0x02DD,0x02DD,0x02DD},
430 {0x02DE,0x02DE,0x02DE}, {0x02DF,0x02DF,0x02DF},
431 {0x02E0,0x02E0,0x02E0}, {0x02E1,0x02E1,0x02E1},
432 {0x02E2,0x02E2,0x02E2}, {0x02E3,0x02E3,0x02E3},
433 {0x02E4,0x02E4,0x02E4}, {0x02E5,0x02E5,0x02E5},
434 {0x02E6,0x02E6,0x02E6}, {0x02E7,0x02E7,0x02E7},
435 {0x02E8,0x02E8,0x02E8}, {0x02E9,0x02E9,0x02E9},
436 {0x02EA,0x02EA,0x02EA}, {0x02EB,0x02EB,0x02EB},
437 {0x02EC,0x02EC,0x02EC}, {0x02ED,0x02ED,0x02ED},
438 {0x02EE,0x02EE,0x02EE}, {0x02EF,0x02EF,0x02EF},
439 {0x02F0,0x02F0,0x02F0}, {0x02F1,0x02F1,0x02F1},
440 {0x02F2,0x02F2,0x02F2}, {0x02F3,0x02F3,0x02F3},
441 {0x02F4,0x02F4,0x02F4}, {0x02F5,0x02F5,0x02F5},
442 {0x02F6,0x02F6,0x02F6}, {0x02F7,0x02F7,0x02F7},
443 {0x02F8,0x02F8,0x02F8}, {0x02F9,0x02F9,0x02F9},
444 {0x02FA,0x02FA,0x02FA}, {0x02FB,0x02FB,0x02FB},
445 {0x02FC,0x02FC,0x02FC}, {0x02FD,0x02FD,0x02FD},
446 {0x02FE,0x02FE,0x02FE}, {0x02FF,0x02FF,0x02FF}
449 static MY_UNICASE_INFO plane03[]={
450 {0x0300,0x0300,0x0300}, {0x0301,0x0301,0x0301},
451 {0x0302,0x0302,0x0302}, {0x0303,0x0303,0x0303},
452 {0x0304,0x0304,0x0304}, {0x0305,0x0305,0x0305},
453 {0x0306,0x0306,0x0306}, {0x0307,0x0307,0x0307},
454 {0x0308,0x0308,0x0308}, {0x0309,0x0309,0x0309},
455 {0x030A,0x030A,0x030A}, {0x030B,0x030B,0x030B},
456 {0x030C,0x030C,0x030C}, {0x030D,0x030D,0x030D},
457 {0x030E,0x030E,0x030E}, {0x030F,0x030F,0x030F},
458 {0x0310,0x0310,0x0310}, {0x0311,0x0311,0x0311},
459 {0x0312,0x0312,0x0312}, {0x0313,0x0313,0x0313},
460 {0x0314,0x0314,0x0314}, {0x0315,0x0315,0x0315},
461 {0x0316,0x0316,0x0316}, {0x0317,0x0317,0x0317},
462 {0x0318,0x0318,0x0318}, {0x0319,0x0319,0x0319},
463 {0x031A,0x031A,0x031A}, {0x031B,0x031B,0x031B},
464 {0x031C,0x031C,0x031C}, {0x031D,0x031D,0x031D},
465 {0x031E,0x031E,0x031E}, {0x031F,0x031F,0x031F},
466 {0x0320,0x0320,0x0320}, {0x0321,0x0321,0x0321},
467 {0x0322,0x0322,0x0322}, {0x0323,0x0323,0x0323},
468 {0x0324,0x0324,0x0324}, {0x0325,0x0325,0x0325},
469 {0x0326,0x0326,0x0326}, {0x0327,0x0327,0x0327},
470 {0x0328,0x0328,0x0328}, {0x0329,0x0329,0x0329},
471 {0x032A,0x032A,0x032A}, {0x032B,0x032B,0x032B},
472 {0x032C,0x032C,0x032C}, {0x032D,0x032D,0x032D},
473 {0x032E,0x032E,0x032E}, {0x032F,0x032F,0x032F},
474 {0x0330,0x0330,0x0330}, {0x0331,0x0331,0x0331},
475 {0x0332,0x0332,0x0332}, {0x0333,0x0333,0x0333},
476 {0x0334,0x0334,0x0334}, {0x0335,0x0335,0x0335},
477 {0x0336,0x0336,0x0336}, {0x0337,0x0337,0x0337},
478 {0x0338,0x0338,0x0338}, {0x0339,0x0339,0x0339},
479 {0x033A,0x033A,0x033A}, {0x033B,0x033B,0x033B},
480 {0x033C,0x033C,0x033C}, {0x033D,0x033D,0x033D},
481 {0x033E,0x033E,0x033E}, {0x033F,0x033F,0x033F},
482 {0x0340,0x0340,0x0340}, {0x0341,0x0341,0x0341},
483 {0x0342,0x0342,0x0342}, {0x0343,0x0343,0x0343},
484 {0x0344,0x0344,0x0344}, {0x0399,0x0345,0x0399},
485 {0x0346,0x0346,0x0346}, {0x0347,0x0347,0x0347},
486 {0x0348,0x0348,0x0348}, {0x0349,0x0349,0x0349},
487 {0x034A,0x034A,0x034A}, {0x034B,0x034B,0x034B},
488 {0x034C,0x034C,0x034C}, {0x034D,0x034D,0x034D},
489 {0x034E,0x034E,0x034E}, {0x034F,0x034F,0x034F},
490 {0x0350,0x0350,0x0350}, {0x0351,0x0351,0x0351},
491 {0x0352,0x0352,0x0352}, {0x0353,0x0353,0x0353},
492 {0x0354,0x0354,0x0354}, {0x0355,0x0355,0x0355},
493 {0x0356,0x0356,0x0356}, {0x0357,0x0357,0x0357},
494 {0x0358,0x0358,0x0358}, {0x0359,0x0359,0x0359},
495 {0x035A,0x035A,0x035A}, {0x035B,0x035B,0x035B},
496 {0x035C,0x035C,0x035C}, {0x035D,0x035D,0x035D},
497 {0x035E,0x035E,0x035E}, {0x035F,0x035F,0x035F},
498 {0x0360,0x0360,0x0360}, {0x0361,0x0361,0x0361},
499 {0x0362,0x0362,0x0362}, {0x0363,0x0363,0x0363},
500 {0x0364,0x0364,0x0364}, {0x0365,0x0365,0x0365},
501 {0x0366,0x0366,0x0366}, {0x0367,0x0367,0x0367},
502 {0x0368,0x0368,0x0368}, {0x0369,0x0369,0x0369},
503 {0x036A,0x036A,0x036A}, {0x036B,0x036B,0x036B},
504 {0x036C,0x036C,0x036C}, {0x036D,0x036D,0x036D},
505 {0x036E,0x036E,0x036E}, {0x036F,0x036F,0x036F},
506 {0x0370,0x0370,0x0370}, {0x0371,0x0371,0x0371},
507 {0x0372,0x0372,0x0372}, {0x0373,0x0373,0x0373},
508 {0x0374,0x0374,0x0374}, {0x0375,0x0375,0x0375},
509 {0x0376,0x0376,0x0376}, {0x0377,0x0377,0x0377},
510 {0x0378,0x0378,0x0378}, {0x0379,0x0379,0x0379},
511 {0x037A,0x037A,0x037A}, {0x037B,0x037B,0x037B},
512 {0x037C,0x037C,0x037C}, {0x037D,0x037D,0x037D},
513 {0x037E,0x037E,0x037E}, {0x037F,0x037F,0x037F},
514 {0x0380,0x0380,0x0380}, {0x0381,0x0381,0x0381},
515 {0x0382,0x0382,0x0382}, {0x0383,0x0383,0x0383},
516 {0x0384,0x0384,0x0384}, {0x0385,0x0385,0x0385},
517 {0x0386,0x03AC,0x0391}, {0x0387,0x0387,0x0387},
518 {0x0388,0x03AD,0x0395}, {0x0389,0x03AE,0x0397},
519 {0x038A,0x03AF,0x0399}, {0x038B,0x038B,0x038B},
520 {0x038C,0x03CC,0x039F}, {0x038D,0x038D,0x038D},
521 {0x038E,0x03CD,0x03A5}, {0x038F,0x03CE,0x03A9},
522 {0x0390,0x0390,0x0399}, {0x0391,0x03B1,0x0391},
523 {0x0392,0x03B2,0x0392}, {0x0393,0x03B3,0x0393},
524 {0x0394,0x03B4,0x0394}, {0x0395,0x03B5,0x0395},
525 {0x0396,0x03B6,0x0396}, {0x0397,0x03B7,0x0397},
526 {0x0398,0x03B8,0x0398}, {0x0399,0x03B9,0x0399},
527 {0x039A,0x03BA,0x039A}, {0x039B,0x03BB,0x039B},
528 {0x039C,0x03BC,0x039C}, {0x039D,0x03BD,0x039D},
529 {0x039E,0x03BE,0x039E}, {0x039F,0x03BF,0x039F},
530 {0x03A0,0x03C0,0x03A0}, {0x03A1,0x03C1,0x03A1},
531 {0x03A2,0x03A2,0x03A2}, {0x03A3,0x03C3,0x03A3},
532 {0x03A4,0x03C4,0x03A4}, {0x03A5,0x03C5,0x03A5},
533 {0x03A6,0x03C6,0x03A6}, {0x03A7,0x03C7,0x03A7},
534 {0x03A8,0x03C8,0x03A8}, {0x03A9,0x03C9,0x03A9},
535 {0x03AA,0x03CA,0x0399}, {0x03AB,0x03CB,0x03A5},
536 {0x0386,0x03AC,0x0391}, {0x0388,0x03AD,0x0395},
537 {0x0389,0x03AE,0x0397}, {0x038A,0x03AF,0x0399},
538 {0x03B0,0x03B0,0x03A5}, {0x0391,0x03B1,0x0391},
539 {0x0392,0x03B2,0x0392}, {0x0393,0x03B3,0x0393},
540 {0x0394,0x03B4,0x0394}, {0x0395,0x03B5,0x0395},
541 {0x0396,0x03B6,0x0396}, {0x0397,0x03B7,0x0397},
542 {0x0398,0x03B8,0x0398}, {0x0399,0x03B9,0x0399},
543 {0x039A,0x03BA,0x039A}, {0x039B,0x03BB,0x039B},
544 {0x039C,0x03BC,0x039C}, {0x039D,0x03BD,0x039D},
545 {0x039E,0x03BE,0x039E}, {0x039F,0x03BF,0x039F},
546 {0x03A0,0x03C0,0x03A0}, {0x03A1,0x03C1,0x03A1},
547 {0x03A3,0x03C2,0x03A3}, {0x03A3,0x03C3,0x03A3},
548 {0x03A4,0x03C4,0x03A4}, {0x03A5,0x03C5,0x03A5},
549 {0x03A6,0x03C6,0x03A6}, {0x03A7,0x03C7,0x03A7},
550 {0x03A8,0x03C8,0x03A8}, {0x03A9,0x03C9,0x03A9},
551 {0x03AA,0x03CA,0x0399}, {0x03AB,0x03CB,0x03A5},
552 {0x038C,0x03CC,0x039F}, {0x038E,0x03CD,0x03A5},
553 {0x038F,0x03CE,0x03A9}, {0x03CF,0x03CF,0x03CF},
554 {0x0392,0x03D0,0x0392}, {0x0398,0x03D1,0x0398},
555 {0x03D2,0x03D2,0x03D2}, {0x03D3,0x03D3,0x03D2},
556 {0x03D4,0x03D4,0x03D2}, {0x03A6,0x03D5,0x03A6},
557 {0x03A0,0x03D6,0x03A0}, {0x03D7,0x03D7,0x03D7},
558 {0x03D8,0x03D8,0x03D8}, {0x03D9,0x03D9,0x03D9},
559 {0x03DA,0x03DB,0x03DA}, {0x03DA,0x03DB,0x03DA},
560 {0x03DC,0x03DD,0x03DC}, {0x03DC,0x03DD,0x03DC},
561 {0x03DE,0x03DF,0x03DE}, {0x03DE,0x03DF,0x03DE},
562 {0x03E0,0x03E1,0x03E0}, {0x03E0,0x03E1,0x03E0},
563 {0x03E2,0x03E3,0x03E2}, {0x03E2,0x03E3,0x03E2},
564 {0x03E4,0x03E5,0x03E4}, {0x03E4,0x03E5,0x03E4},
565 {0x03E6,0x03E7,0x03E6}, {0x03E6,0x03E7,0x03E6},
566 {0x03E8,0x03E9,0x03E8}, {0x03E8,0x03E9,0x03E8},
567 {0x03EA,0x03EB,0x03EA}, {0x03EA,0x03EB,0x03EA},
568 {0x03EC,0x03ED,0x03EC}, {0x03EC,0x03ED,0x03EC},
569 {0x03EE,0x03EF,0x03EE}, {0x03EE,0x03EF,0x03EE},
570 {0x039A,0x03F0,0x039A}, {0x03A1,0x03F1,0x03A1},
571 {0x03A3,0x03F2,0x03A3}, {0x03F3,0x03F3,0x03F3},
572 {0x03F4,0x03F4,0x03F4}, {0x03F5,0x03F5,0x03F5},
573 {0x03F6,0x03F6,0x03F6}, {0x03F7,0x03F7,0x03F7},
574 {0x03F8,0x03F8,0x03F8}, {0x03F9,0x03F9,0x03F9},
575 {0x03FA,0x03FA,0x03FA}, {0x03FB,0x03FB,0x03FB},
576 {0x03FC,0x03FC,0x03FC}, {0x03FD,0x03FD,0x03FD},
577 {0x03FE,0x03FE,0x03FE}, {0x03FF,0x03FF,0x03FF}
580 static MY_UNICASE_INFO plane04[]={
581 {0x0400,0x0450,0x0415}, {0x0401,0x0451,0x0415},
582 {0x0402,0x0452,0x0402}, {0x0403,0x0453,0x0413},
583 {0x0404,0x0454,0x0404}, {0x0405,0x0455,0x0405},
584 {0x0406,0x0456,0x0406}, {0x0407,0x0457,0x0406},
585 {0x0408,0x0458,0x0408}, {0x0409,0x0459,0x0409},
586 {0x040A,0x045A,0x040A}, {0x040B,0x045B,0x040B},
587 {0x040C,0x045C,0x041A}, {0x040D,0x045D,0x0418},
588 {0x040E,0x045E,0x0423}, {0x040F,0x045F,0x040F},
589 {0x0410,0x0430,0x0410}, {0x0411,0x0431,0x0411},
590 {0x0412,0x0432,0x0412}, {0x0413,0x0433,0x0413},
591 {0x0414,0x0434,0x0414}, {0x0415,0x0435,0x0415},
592 {0x0416,0x0436,0x0416}, {0x0417,0x0437,0x0417},
593 {0x0418,0x0438,0x0418}, {0x0419,0x0439,0x0419},
594 {0x041A,0x043A,0x041A}, {0x041B,0x043B,0x041B},
595 {0x041C,0x043C,0x041C}, {0x041D,0x043D,0x041D},
596 {0x041E,0x043E,0x041E}, {0x041F,0x043F,0x041F},
597 {0x0420,0x0440,0x0420}, {0x0421,0x0441,0x0421},
598 {0x0422,0x0442,0x0422}, {0x0423,0x0443,0x0423},
599 {0x0424,0x0444,0x0424}, {0x0425,0x0445,0x0425},
600 {0x0426,0x0446,0x0426}, {0x0427,0x0447,0x0427},
601 {0x0428,0x0448,0x0428}, {0x0429,0x0449,0x0429},
602 {0x042A,0x044A,0x042A}, {0x042B,0x044B,0x042B},
603 {0x042C,0x044C,0x042C}, {0x042D,0x044D,0x042D},
604 {0x042E,0x044E,0x042E}, {0x042F,0x044F,0x042F},
605 {0x0410,0x0430,0x0410}, {0x0411,0x0431,0x0411},
606 {0x0412,0x0432,0x0412}, {0x0413,0x0433,0x0413},
607 {0x0414,0x0434,0x0414}, {0x0415,0x0435,0x0415},
608 {0x0416,0x0436,0x0416}, {0x0417,0x0437,0x0417},
609 {0x0418,0x0438,0x0418}, {0x0419,0x0439,0x0419},
610 {0x041A,0x043A,0x041A}, {0x041B,0x043B,0x041B},
611 {0x041C,0x043C,0x041C}, {0x041D,0x043D,0x041D},
612 {0x041E,0x043E,0x041E}, {0x041F,0x043F,0x041F},
613 {0x0420,0x0440,0x0420}, {0x0421,0x0441,0x0421},
614 {0x0422,0x0442,0x0422}, {0x0423,0x0443,0x0423},
615 {0x0424,0x0444,0x0424}, {0x0425,0x0445,0x0425},
616 {0x0426,0x0446,0x0426}, {0x0427,0x0447,0x0427},
617 {0x0428,0x0448,0x0428}, {0x0429,0x0449,0x0429},
618 {0x042A,0x044A,0x042A}, {0x042B,0x044B,0x042B},
619 {0x042C,0x044C,0x042C}, {0x042D,0x044D,0x042D},
620 {0x042E,0x044E,0x042E}, {0x042F,0x044F,0x042F},
621 {0x0400,0x0450,0x0415}, {0x0401,0x0451,0x0415},
622 {0x0402,0x0452,0x0402}, {0x0403,0x0453,0x0413},
623 {0x0404,0x0454,0x0404}, {0x0405,0x0455,0x0405},
624 {0x0406,0x0456,0x0406}, {0x0407,0x0457,0x0406},
625 {0x0408,0x0458,0x0408}, {0x0409,0x0459,0x0409},
626 {0x040A,0x045A,0x040A}, {0x040B,0x045B,0x040B},
627 {0x040C,0x045C,0x041A}, {0x040D,0x045D,0x0418},
628 {0x040E,0x045E,0x0423}, {0x040F,0x045F,0x040F},
629 {0x0460,0x0461,0x0460}, {0x0460,0x0461,0x0460},
630 {0x0462,0x0463,0x0462}, {0x0462,0x0463,0x0462},
631 {0x0464,0x0465,0x0464}, {0x0464,0x0465,0x0464},
632 {0x0466,0x0467,0x0466}, {0x0466,0x0467,0x0466},
633 {0x0468,0x0469,0x0468}, {0x0468,0x0469,0x0468},
634 {0x046A,0x046B,0x046A}, {0x046A,0x046B,0x046A},
635 {0x046C,0x046D,0x046C}, {0x046C,0x046D,0x046C},
636 {0x046E,0x046F,0x046E}, {0x046E,0x046F,0x046E},
637 {0x0470,0x0471,0x0470}, {0x0470,0x0471,0x0470},
638 {0x0472,0x0473,0x0472}, {0x0472,0x0473,0x0472},
639 {0x0474,0x0475,0x0474}, {0x0474,0x0475,0x0474},
640 {0x0476,0x0477,0x0474}, {0x0476,0x0477,0x0474},
641 {0x0478,0x0479,0x0478}, {0x0478,0x0479,0x0478},
642 {0x047A,0x047B,0x047A}, {0x047A,0x047B,0x047A},
643 {0x047C,0x047D,0x047C}, {0x047C,0x047D,0x047C},
644 {0x047E,0x047F,0x047E}, {0x047E,0x047F,0x047E},
645 {0x0480,0x0481,0x0480}, {0x0480,0x0481,0x0480},
646 {0x0482,0x0482,0x0482}, {0x0483,0x0483,0x0483},
647 {0x0484,0x0484,0x0484}, {0x0485,0x0485,0x0485},
648 {0x0486,0x0486,0x0486}, {0x0487,0x0487,0x0487},
649 {0x0488,0x0488,0x0488}, {0x0489,0x0489,0x0489},
650 {0x048A,0x048A,0x048A}, {0x048B,0x048B,0x048B},
651 {0x048C,0x048D,0x048C}, {0x048C,0x048D,0x048C},
652 {0x048E,0x048F,0x048E}, {0x048E,0x048F,0x048E},
653 {0x0490,0x0491,0x0490}, {0x0490,0x0491,0x0490},
654 {0x0492,0x0493,0x0492}, {0x0492,0x0493,0x0492},
655 {0x0494,0x0495,0x0494}, {0x0494,0x0495,0x0494},
656 {0x0496,0x0497,0x0496}, {0x0496,0x0497,0x0496},
657 {0x0498,0x0499,0x0498}, {0x0498,0x0499,0x0498},
658 {0x049A,0x049B,0x049A}, {0x049A,0x049B,0x049A},
659 {0x049C,0x049D,0x049C}, {0x049C,0x049D,0x049C},
660 {0x049E,0x049F,0x049E}, {0x049E,0x049F,0x049E},
661 {0x04A0,0x04A1,0x04A0}, {0x04A0,0x04A1,0x04A0},
662 {0x04A2,0x04A3,0x04A2}, {0x04A2,0x04A3,0x04A2},
663 {0x04A4,0x04A5,0x04A4}, {0x04A4,0x04A5,0x04A4},
664 {0x04A6,0x04A7,0x04A6}, {0x04A6,0x04A7,0x04A6},
665 {0x04A8,0x04A9,0x04A8}, {0x04A8,0x04A9,0x04A8},
666 {0x04AA,0x04AB,0x04AA}, {0x04AA,0x04AB,0x04AA},
667 {0x04AC,0x04AD,0x04AC}, {0x04AC,0x04AD,0x04AC},
668 {0x04AE,0x04AF,0x04AE}, {0x04AE,0x04AF,0x04AE},
669 {0x04B0,0x04B1,0x04B0}, {0x04B0,0x04B1,0x04B0},
670 {0x04B2,0x04B3,0x04B2}, {0x04B2,0x04B3,0x04B2},
671 {0x04B4,0x04B5,0x04B4}, {0x04B4,0x04B5,0x04B4},
672 {0x04B6,0x04B7,0x04B6}, {0x04B6,0x04B7,0x04B6},
673 {0x04B8,0x04B9,0x04B8}, {0x04B8,0x04B9,0x04B8},
674 {0x04BA,0x04BB,0x04BA}, {0x04BA,0x04BB,0x04BA},
675 {0x04BC,0x04BD,0x04BC}, {0x04BC,0x04BD,0x04BC},
676 {0x04BE,0x04BF,0x04BE}, {0x04BE,0x04BF,0x04BE},
677 {0x04C0,0x04C0,0x04C0}, {0x04C1,0x04C2,0x0416},
678 {0x04C1,0x04C2,0x0416}, {0x04C3,0x04C4,0x04C3},
679 {0x04C3,0x04C4,0x04C3}, {0x04C5,0x04C5,0x04C5},
680 {0x04C6,0x04C6,0x04C6}, {0x04C7,0x04C8,0x04C7},
681 {0x04C7,0x04C8,0x04C7}, {0x04C9,0x04C9,0x04C9},
682 {0x04CA,0x04CA,0x04CA}, {0x04CB,0x04CC,0x04CB},
683 {0x04CB,0x04CC,0x04CB}, {0x04CD,0x04CD,0x04CD},
684 {0x04CE,0x04CE,0x04CE}, {0x04CF,0x04CF,0x04CF},
685 {0x04D0,0x04D1,0x0410}, {0x04D0,0x04D1,0x0410},
686 {0x04D2,0x04D3,0x0410}, {0x04D2,0x04D3,0x0410},
687 {0x04D4,0x04D5,0x04D4}, {0x04D4,0x04D5,0x04D4},
688 {0x04D6,0x04D7,0x0415}, {0x04D6,0x04D7,0x0415},
689 {0x04D8,0x04D9,0x04D8}, {0x04D8,0x04D9,0x04D8},
690 {0x04DA,0x04DB,0x04D8}, {0x04DA,0x04DB,0x04D8},
691 {0x04DC,0x04DD,0x0416}, {0x04DC,0x04DD,0x0416},
692 {0x04DE,0x04DF,0x0417}, {0x04DE,0x04DF,0x0417},
693 {0x04E0,0x04E1,0x04E0}, {0x04E0,0x04E1,0x04E0},
694 {0x04E2,0x04E3,0x0418}, {0x04E2,0x04E3,0x0418},
695 {0x04E4,0x04E5,0x0418}, {0x04E4,0x04E5,0x0418},
696 {0x04E6,0x04E7,0x041E}, {0x04E6,0x04E7,0x041E},
697 {0x04E8,0x04E9,0x04E8}, {0x04E8,0x04E9,0x04E8},
698 {0x04EA,0x04EB,0x04E8}, {0x04EA,0x04EB,0x04E8},
699 {0x04EC,0x04ED,0x042D}, {0x04EC,0x04ED,0x042D},
700 {0x04EE,0x04EF,0x0423}, {0x04EE,0x04EF,0x0423},
701 {0x04F0,0x04F1,0x0423}, {0x04F0,0x04F1,0x0423},
702 {0x04F2,0x04F3,0x0423}, {0x04F2,0x04F3,0x0423},
703 {0x04F4,0x04F5,0x0427}, {0x04F4,0x04F5,0x0427},
704 {0x04F6,0x04F6,0x04F6}, {0x04F7,0x04F7,0x04F7},
705 {0x04F8,0x04F9,0x042B}, {0x04F8,0x04F9,0x042B},
706 {0x04FA,0x04FA,0x04FA}, {0x04FB,0x04FB,0x04FB},
707 {0x04FC,0x04FC,0x04FC}, {0x04FD,0x04FD,0x04FD},
708 {0x04FE,0x04FE,0x04FE}, {0x04FF,0x04FF,0x04FF}
711 static MY_UNICASE_INFO plane05[]={
712 {0x0500,0x0500,0x0500}, {0x0501,0x0501,0x0501},
713 {0x0502,0x0502,0x0502}, {0x0503,0x0503,0x0503},
714 {0x0504,0x0504,0x0504}, {0x0505,0x0505,0x0505},
715 {0x0506,0x0506,0x0506}, {0x0507,0x0507,0x0507},
716 {0x0508,0x0508,0x0508}, {0x0509,0x0509,0x0509},
717 {0x050A,0x050A,0x050A}, {0x050B,0x050B,0x050B},
718 {0x050C,0x050C,0x050C}, {0x050D,0x050D,0x050D},
719 {0x050E,0x050E,0x050E}, {0x050F,0x050F,0x050F},
720 {0x0510,0x0510,0x0510}, {0x0511,0x0511,0x0511},
721 {0x0512,0x0512,0x0512}, {0x0513,0x0513,0x0513},
722 {0x0514,0x0514,0x0514}, {0x0515,0x0515,0x0515},
723 {0x0516,0x0516,0x0516}, {0x0517,0x0517,0x0517},
724 {0x0518,0x0518,0x0518}, {0x0519,0x0519,0x0519},
725 {0x051A,0x051A,0x051A}, {0x051B,0x051B,0x051B},
726 {0x051C,0x051C,0x051C}, {0x051D,0x051D,0x051D},
727 {0x051E,0x051E,0x051E}, {0x051F,0x051F,0x051F},
728 {0x0520,0x0520,0x0520}, {0x0521,0x0521,0x0521},
729 {0x0522,0x0522,0x0522}, {0x0523,0x0523,0x0523},
730 {0x0524,0x0524,0x0524}, {0x0525,0x0525,0x0525},
731 {0x0526,0x0526,0x0526}, {0x0527,0x0527,0x0527},
732 {0x0528,0x0528,0x0528}, {0x0529,0x0529,0x0529},
733 {0x052A,0x052A,0x052A}, {0x052B,0x052B,0x052B},
734 {0x052C,0x052C,0x052C}, {0x052D,0x052D,0x052D},
735 {0x052E,0x052E,0x052E}, {0x052F,0x052F,0x052F},
736 {0x0530,0x0530,0x0530}, {0x0531,0x0561,0x0531},
737 {0x0532,0x0562,0x0532}, {0x0533,0x0563,0x0533},
738 {0x0534,0x0564,0x0534}, {0x0535,0x0565,0x0535},
739 {0x0536,0x0566,0x0536}, {0x0537,0x0567,0x0537},
740 {0x0538,0x0568,0x0538}, {0x0539,0x0569,0x0539},
741 {0x053A,0x056A,0x053A}, {0x053B,0x056B,0x053B},
742 {0x053C,0x056C,0x053C}, {0x053D,0x056D,0x053D},
743 {0x053E,0x056E,0x053E}, {0x053F,0x056F,0x053F},
744 {0x0540,0x0570,0x0540}, {0x0541,0x0571,0x0541},
745 {0x0542,0x0572,0x0542}, {0x0543,0x0573,0x0543},
746 {0x0544,0x0574,0x0544}, {0x0545,0x0575,0x0545},
747 {0x0546,0x0576,0x0546}, {0x0547,0x0577,0x0547},
748 {0x0548,0x0578,0x0548}, {0x0549,0x0579,0x0549},
749 {0x054A,0x057A,0x054A}, {0x054B,0x057B,0x054B},
750 {0x054C,0x057C,0x054C}, {0x054D,0x057D,0x054D},
751 {0x054E,0x057E,0x054E}, {0x054F,0x057F,0x054F},
752 {0x0550,0x0580,0x0550}, {0x0551,0x0581,0x0551},
753 {0x0552,0x0582,0x0552}, {0x0553,0x0583,0x0553},
754 {0x0554,0x0584,0x0554}, {0x0555,0x0585,0x0555},
755 {0x0556,0x0586,0x0556}, {0x0557,0x0557,0x0557},
756 {0x0558,0x0558,0x0558}, {0x0559,0x0559,0x0559},
757 {0x055A,0x055A,0x055A}, {0x055B,0x055B,0x055B},
758 {0x055C,0x055C,0x055C}, {0x055D,0x055D,0x055D},
759 {0x055E,0x055E,0x055E}, {0x055F,0x055F,0x055F},
760 {0x0560,0x0560,0x0560}, {0x0531,0x0561,0x0531},
761 {0x0532,0x0562,0x0532}, {0x0533,0x0563,0x0533},
762 {0x0534,0x0564,0x0534}, {0x0535,0x0565,0x0535},
763 {0x0536,0x0566,0x0536}, {0x0537,0x0567,0x0537},
764 {0x0538,0x0568,0x0538}, {0x0539,0x0569,0x0539},
765 {0x053A,0x056A,0x053A}, {0x053B,0x056B,0x053B},
766 {0x053C,0x056C,0x053C}, {0x053D,0x056D,0x053D},
767 {0x053E,0x056E,0x053E}, {0x053F,0x056F,0x053F},
768 {0x0540,0x0570,0x0540}, {0x0541,0x0571,0x0541},
769 {0x0542,0x0572,0x0542}, {0x0543,0x0573,0x0543},
770 {0x0544,0x0574,0x0544}, {0x0545,0x0575,0x0545},
771 {0x0546,0x0576,0x0546}, {0x0547,0x0577,0x0547},
772 {0x0548,0x0578,0x0548}, {0x0549,0x0579,0x0549},
773 {0x054A,0x057A,0x054A}, {0x054B,0x057B,0x054B},
774 {0x054C,0x057C,0x054C}, {0x054D,0x057D,0x054D},
775 {0x054E,0x057E,0x054E}, {0x054F,0x057F,0x054F},
776 {0x0550,0x0580,0x0550}, {0x0551,0x0581,0x0551},
777 {0x0552,0x0582,0x0552}, {0x0553,0x0583,0x0553},
778 {0x0554,0x0584,0x0554}, {0x0555,0x0585,0x0555},
779 {0x0556,0x0586,0x0556}, {0x0587,0x0587,0x0587},
780 {0x0588,0x0588,0x0588}, {0x0589,0x0589,0x0589},
781 {0x058A,0x058A,0x058A}, {0x058B,0x058B,0x058B},
782 {0x058C,0x058C,0x058C}, {0x058D,0x058D,0x058D},
783 {0x058E,0x058E,0x058E}, {0x058F,0x058F,0x058F},
784 {0x0590,0x0590,0x0590}, {0x0591,0x0591,0x0591},
785 {0x0592,0x0592,0x0592}, {0x0593,0x0593,0x0593},
786 {0x0594,0x0594,0x0594}, {0x0595,0x0595,0x0595},
787 {0x0596,0x0596,0x0596}, {0x0597,0x0597,0x0597},
788 {0x0598,0x0598,0x0598}, {0x0599,0x0599,0x0599},
789 {0x059A,0x059A,0x059A}, {0x059B,0x059B,0x059B},
790 {0x059C,0x059C,0x059C}, {0x059D,0x059D,0x059D},
791 {0x059E,0x059E,0x059E}, {0x059F,0x059F,0x059F},
792 {0x05A0,0x05A0,0x05A0}, {0x05A1,0x05A1,0x05A1},
793 {0x05A2,0x05A2,0x05A2}, {0x05A3,0x05A3,0x05A3},
794 {0x05A4,0x05A4,0x05A4}, {0x05A5,0x05A5,0x05A5},
795 {0x05A6,0x05A6,0x05A6}, {0x05A7,0x05A7,0x05A7},
796 {0x05A8,0x05A8,0x05A8}, {0x05A9,0x05A9,0x05A9},
797 {0x05AA,0x05AA,0x05AA}, {0x05AB,0x05AB,0x05AB},
798 {0x05AC,0x05AC,0x05AC}, {0x05AD,0x05AD,0x05AD},
799 {0x05AE,0x05AE,0x05AE}, {0x05AF,0x05AF,0x05AF},
800 {0x05B0,0x05B0,0x05B0}, {0x05B1,0x05B1,0x05B1},
801 {0x05B2,0x05B2,0x05B2}, {0x05B3,0x05B3,0x05B3},
802 {0x05B4,0x05B4,0x05B4}, {0x05B5,0x05B5,0x05B5},
803 {0x05B6,0x05B6,0x05B6}, {0x05B7,0x05B7,0x05B7},
804 {0x05B8,0x05B8,0x05B8}, {0x05B9,0x05B9,0x05B9},
805 {0x05BA,0x05BA,0x05BA}, {0x05BB,0x05BB,0x05BB},
806 {0x05BC,0x05BC,0x05BC}, {0x05BD,0x05BD,0x05BD},
807 {0x05BE,0x05BE,0x05BE}, {0x05BF,0x05BF,0x05BF},
808 {0x05C0,0x05C0,0x05C0}, {0x05C1,0x05C1,0x05C1},
809 {0x05C2,0x05C2,0x05C2}, {0x05C3,0x05C3,0x05C3},
810 {0x05C4,0x05C4,0x05C4}, {0x05C5,0x05C5,0x05C5},
811 {0x05C6,0x05C6,0x05C6}, {0x05C7,0x05C7,0x05C7},
812 {0x05C8,0x05C8,0x05C8}, {0x05C9,0x05C9,0x05C9},
813 {0x05CA,0x05CA,0x05CA}, {0x05CB,0x05CB,0x05CB},
814 {0x05CC,0x05CC,0x05CC}, {0x05CD,0x05CD,0x05CD},
815 {0x05CE,0x05CE,0x05CE}, {0x05CF,0x05CF,0x05CF},
816 {0x05D0,0x05D0,0x05D0}, {0x05D1,0x05D1,0x05D1},
817 {0x05D2,0x05D2,0x05D2}, {0x05D3,0x05D3,0x05D3},
818 {0x05D4,0x05D4,0x05D4}, {0x05D5,0x05D5,0x05D5},
819 {0x05D6,0x05D6,0x05D6}, {0x05D7,0x05D7,0x05D7},
820 {0x05D8,0x05D8,0x05D8}, {0x05D9,0x05D9,0x05D9},
821 {0x05DA,0x05DA,0x05DA}, {0x05DB,0x05DB,0x05DB},
822 {0x05DC,0x05DC,0x05DC}, {0x05DD,0x05DD,0x05DD},
823 {0x05DE,0x05DE,0x05DE}, {0x05DF,0x05DF,0x05DF},
824 {0x05E0,0x05E0,0x05E0}, {0x05E1,0x05E1,0x05E1},
825 {0x05E2,0x05E2,0x05E2}, {0x05E3,0x05E3,0x05E3},
826 {0x05E4,0x05E4,0x05E4}, {0x05E5,0x05E5,0x05E5},
827 {0x05E6,0x05E6,0x05E6}, {0x05E7,0x05E7,0x05E7},
828 {0x05E8,0x05E8,0x05E8}, {0x05E9,0x05E9,0x05E9},
829 {0x05EA,0x05EA,0x05EA}, {0x05EB,0x05EB,0x05EB},
830 {0x05EC,0x05EC,0x05EC}, {0x05ED,0x05ED,0x05ED},
831 {0x05EE,0x05EE,0x05EE}, {0x05EF,0x05EF,0x05EF},
832 {0x05F0,0x05F0,0x05F0}, {0x05F1,0x05F1,0x05F1},
833 {0x05F2,0x05F2,0x05F2}, {0x05F3,0x05F3,0x05F3},
834 {0x05F4,0x05F4,0x05F4}, {0x05F5,0x05F5,0x05F5},
835 {0x05F6,0x05F6,0x05F6}, {0x05F7,0x05F7,0x05F7},
836 {0x05F8,0x05F8,0x05F8}, {0x05F9,0x05F9,0x05F9},
837 {0x05FA,0x05FA,0x05FA}, {0x05FB,0x05FB,0x05FB},
838 {0x05FC,0x05FC,0x05FC}, {0x05FD,0x05FD,0x05FD},
839 {0x05FE,0x05FE,0x05FE}, {0x05FF,0x05FF,0x05FF}
842 static MY_UNICASE_INFO plane1E[]={
843 {0x1E00,0x1E01,0x0041}, {0x1E00,0x1E01,0x0041},
844 {0x1E02,0x1E03,0x0042}, {0x1E02,0x1E03,0x0042},
845 {0x1E04,0x1E05,0x0042}, {0x1E04,0x1E05,0x0042},
846 {0x1E06,0x1E07,0x0042}, {0x1E06,0x1E07,0x0042},
847 {0x1E08,0x1E09,0x0043}, {0x1E08,0x1E09,0x0043},
848 {0x1E0A,0x1E0B,0x0044}, {0x1E0A,0x1E0B,0x0044},
849 {0x1E0C,0x1E0D,0x0044}, {0x1E0C,0x1E0D,0x0044},
850 {0x1E0E,0x1E0F,0x0044}, {0x1E0E,0x1E0F,0x0044},
851 {0x1E10,0x1E11,0x0044}, {0x1E10,0x1E11,0x0044},
852 {0x1E12,0x1E13,0x0044}, {0x1E12,0x1E13,0x0044},
853 {0x1E14,0x1E15,0x0045}, {0x1E14,0x1E15,0x0045},
854 {0x1E16,0x1E17,0x0045}, {0x1E16,0x1E17,0x0045},
855 {0x1E18,0x1E19,0x0045}, {0x1E18,0x1E19,0x0045},
856 {0x1E1A,0x1E1B,0x0045}, {0x1E1A,0x1E1B,0x0045},
857 {0x1E1C,0x1E1D,0x0045}, {0x1E1C,0x1E1D,0x0045},
858 {0x1E1E,0x1E1F,0x0046}, {0x1E1E,0x1E1F,0x0046},
859 {0x1E20,0x1E21,0x0047}, {0x1E20,0x1E21,0x0047},
860 {0x1E22,0x1E23,0x0048}, {0x1E22,0x1E23,0x0048},
861 {0x1E24,0x1E25,0x0048}, {0x1E24,0x1E25,0x0048},
862 {0x1E26,0x1E27,0x0048}, {0x1E26,0x1E27,0x0048},
863 {0x1E28,0x1E29,0x0048}, {0x1E28,0x1E29,0x0048},
864 {0x1E2A,0x1E2B,0x0048}, {0x1E2A,0x1E2B,0x0048},
865 {0x1E2C,0x1E2D,0x0049}, {0x1E2C,0x1E2D,0x0049},
866 {0x1E2E,0x1E2F,0x0049}, {0x1E2E,0x1E2F,0x0049},
867 {0x1E30,0x1E31,0x004B}, {0x1E30,0x1E31,0x004B},
868 {0x1E32,0x1E33,0x004B}, {0x1E32,0x1E33,0x004B},
869 {0x1E34,0x1E35,0x004B}, {0x1E34,0x1E35,0x004B},
870 {0x1E36,0x1E37,0x004C}, {0x1E36,0x1E37,0x004C},
871 {0x1E38,0x1E39,0x004C}, {0x1E38,0x1E39,0x004C},
872 {0x1E3A,0x1E3B,0x004C}, {0x1E3A,0x1E3B,0x004C},
873 {0x1E3C,0x1E3D,0x004C}, {0x1E3C,0x1E3D,0x004C},
874 {0x1E3E,0x1E3F,0x004D}, {0x1E3E,0x1E3F,0x004D},
875 {0x1E40,0x1E41,0x004D}, {0x1E40,0x1E41,0x004D},
876 {0x1E42,0x1E43,0x004D}, {0x1E42,0x1E43,0x004D},
877 {0x1E44,0x1E45,0x004E}, {0x1E44,0x1E45,0x004E},
878 {0x1E46,0x1E47,0x004E}, {0x1E46,0x1E47,0x004E},
879 {0x1E48,0x1E49,0x004E}, {0x1E48,0x1E49,0x004E},
880 {0x1E4A,0x1E4B,0x004E}, {0x1E4A,0x1E4B,0x004E},
881 {0x1E4C,0x1E4D,0x004F}, {0x1E4C,0x1E4D,0x004F},
882 {0x1E4E,0x1E4F,0x004F}, {0x1E4E,0x1E4F,0x004F},
883 {0x1E50,0x1E51,0x004F}, {0x1E50,0x1E51,0x004F},
884 {0x1E52,0x1E53,0x004F}, {0x1E52,0x1E53,0x004F},
885 {0x1E54,0x1E55,0x0050}, {0x1E54,0x1E55,0x0050},
886 {0x1E56,0x1E57,0x0050}, {0x1E56,0x1E57,0x0050},
887 {0x1E58,0x1E59,0x0052}, {0x1E58,0x1E59,0x0052},
888 {0x1E5A,0x1E5B,0x0052}, {0x1E5A,0x1E5B,0x0052},
889 {0x1E5C,0x1E5D,0x0052}, {0x1E5C,0x1E5D,0x0052},
890 {0x1E5E,0x1E5F,0x0052}, {0x1E5E,0x1E5F,0x0052},
891 {0x1E60,0x1E61,0x0053}, {0x1E60,0x1E61,0x0053},
892 {0x1E62,0x1E63,0x0053}, {0x1E62,0x1E63,0x0053},
893 {0x1E64,0x1E65,0x0053}, {0x1E64,0x1E65,0x0053},
894 {0x1E66,0x1E67,0x0053}, {0x1E66,0x1E67,0x0053},
895 {0x1E68,0x1E69,0x0053}, {0x1E68,0x1E69,0x0053},
896 {0x1E6A,0x1E6B,0x0054}, {0x1E6A,0x1E6B,0x0054},
897 {0x1E6C,0x1E6D,0x0054}, {0x1E6C,0x1E6D,0x0054},
898 {0x1E6E,0x1E6F,0x0054}, {0x1E6E,0x1E6F,0x0054},
899 {0x1E70,0x1E71,0x0054}, {0x1E70,0x1E71,0x0054},
900 {0x1E72,0x1E73,0x0055}, {0x1E72,0x1E73,0x0055},
901 {0x1E74,0x1E75,0x0055}, {0x1E74,0x1E75,0x0055},
902 {0x1E76,0x1E77,0x0055}, {0x1E76,0x1E77,0x0055},
903 {0x1E78,0x1E79,0x0055}, {0x1E78,0x1E79,0x0055},
904 {0x1E7A,0x1E7B,0x0055}, {0x1E7A,0x1E7B,0x0055},
905 {0x1E7C,0x1E7D,0x0056}, {0x1E7C,0x1E7D,0x0056},
906 {0x1E7E,0x1E7F,0x0056}, {0x1E7E,0x1E7F,0x0056},
907 {0x1E80,0x1E81,0x0057}, {0x1E80,0x1E81,0x0057},
908 {0x1E82,0x1E83,0x0057}, {0x1E82,0x1E83,0x0057},
909 {0x1E84,0x1E85,0x0057}, {0x1E84,0x1E85,0x0057},
910 {0x1E86,0x1E87,0x0057}, {0x1E86,0x1E87,0x0057},
911 {0x1E88,0x1E89,0x0057}, {0x1E88,0x1E89,0x0057},
912 {0x1E8A,0x1E8B,0x0058}, {0x1E8A,0x1E8B,0x0058},
913 {0x1E8C,0x1E8D,0x0058}, {0x1E8C,0x1E8D,0x0058},
914 {0x1E8E,0x1E8F,0x0059}, {0x1E8E,0x1E8F,0x0059},
915 {0x1E90,0x1E91,0x005A}, {0x1E90,0x1E91,0x005A},
916 {0x1E92,0x1E93,0x005A}, {0x1E92,0x1E93,0x005A},
917 {0x1E94,0x1E95,0x005A}, {0x1E94,0x1E95,0x005A},
918 {0x1E96,0x1E96,0x0048}, {0x1E97,0x1E97,0x0054},
919 {0x1E98,0x1E98,0x0057}, {0x1E99,0x1E99,0x0059},
920 {0x1E9A,0x1E9A,0x1E9A}, {0x1E60,0x1E9B,0x0053},
921 {0x1E9C,0x1E9C,0x1E9C}, {0x1E9D,0x1E9D,0x1E9D},
922 {0x1E9E,0x1E9E,0x1E9E}, {0x1E9F,0x1E9F,0x1E9F},
923 {0x1EA0,0x1EA1,0x0041}, {0x1EA0,0x1EA1,0x0041},
924 {0x1EA2,0x1EA3,0x0041}, {0x1EA2,0x1EA3,0x0041},
925 {0x1EA4,0x1EA5,0x0041}, {0x1EA4,0x1EA5,0x0041},
926 {0x1EA6,0x1EA7,0x0041}, {0x1EA6,0x1EA7,0x0041},
927 {0x1EA8,0x1EA9,0x0041}, {0x1EA8,0x1EA9,0x0041},
928 {0x1EAA,0x1EAB,0x0041}, {0x1EAA,0x1EAB,0x0041},
929 {0x1EAC,0x1EAD,0x0041}, {0x1EAC,0x1EAD,0x0041},
930 {0x1EAE,0x1EAF,0x0041}, {0x1EAE,0x1EAF,0x0041},
931 {0x1EB0,0x1EB1,0x0041}, {0x1EB0,0x1EB1,0x0041},
932 {0x1EB2,0x1EB3,0x0041}, {0x1EB2,0x1EB3,0x0041},
933 {0x1EB4,0x1EB5,0x0041}, {0x1EB4,0x1EB5,0x0041},
934 {0x1EB6,0x1EB7,0x0041}, {0x1EB6,0x1EB7,0x0041},
935 {0x1EB8,0x1EB9,0x0045}, {0x1EB8,0x1EB9,0x0045},
936 {0x1EBA,0x1EBB,0x0045}, {0x1EBA,0x1EBB,0x0045},
937 {0x1EBC,0x1EBD,0x0045}, {0x1EBC,0x1EBD,0x0045},
938 {0x1EBE,0x1EBF,0x0045}, {0x1EBE,0x1EBF,0x0045},
939 {0x1EC0,0x1EC1,0x0045}, {0x1EC0,0x1EC1,0x0045},
940 {0x1EC2,0x1EC3,0x0045}, {0x1EC2,0x1EC3,0x0045},
941 {0x1EC4,0x1EC5,0x0045}, {0x1EC4,0x1EC5,0x0045},
942 {0x1EC6,0x1EC7,0x0045}, {0x1EC6,0x1EC7,0x0045},
943 {0x1EC8,0x1EC9,0x0049}, {0x1EC8,0x1EC9,0x0049},
944 {0x1ECA,0x1ECB,0x0049}, {0x1ECA,0x1ECB,0x0049},
945 {0x1ECC,0x1ECD,0x004F}, {0x1ECC,0x1ECD,0x004F},
946 {0x1ECE,0x1ECF,0x004F}, {0x1ECE,0x1ECF,0x004F},
947 {0x1ED0,0x1ED1,0x004F}, {0x1ED0,0x1ED1,0x004F},
948 {0x1ED2,0x1ED3,0x004F}, {0x1ED2,0x1ED3,0x004F},
949 {0x1ED4,0x1ED5,0x004F}, {0x1ED4,0x1ED5,0x004F},
950 {0x1ED6,0x1ED7,0x004F}, {0x1ED6,0x1ED7,0x004F},
951 {0x1ED8,0x1ED9,0x004F}, {0x1ED8,0x1ED9,0x004F},
952 {0x1EDA,0x1EDB,0x004F}, {0x1EDA,0x1EDB,0x004F},
953 {0x1EDC,0x1EDD,0x004F}, {0x1EDC,0x1EDD,0x004F},
954 {0x1EDE,0x1EDF,0x004F}, {0x1EDE,0x1EDF,0x004F},
955 {0x1EE0,0x1EE1,0x004F}, {0x1EE0,0x1EE1,0x004F},
956 {0x1EE2,0x1EE3,0x004F}, {0x1EE2,0x1EE3,0x004F},
957 {0x1EE4,0x1EE5,0x0055}, {0x1EE4,0x1EE5,0x0055},
958 {0x1EE6,0x1EE7,0x0055}, {0x1EE6,0x1EE7,0x0055},
959 {0x1EE8,0x1EE9,0x0055}, {0x1EE8,0x1EE9,0x0055},
960 {0x1EEA,0x1EEB,0x0055}, {0x1EEA,0x1EEB,0x0055},
961 {0x1EEC,0x1EED,0x0055}, {0x1EEC,0x1EED,0x0055},
962 {0x1EEE,0x1EEF,0x0055}, {0x1EEE,0x1EEF,0x0055},
963 {0x1EF0,0x1EF1,0x0055}, {0x1EF0,0x1EF1,0x0055},
964 {0x1EF2,0x1EF3,0x0059}, {0x1EF2,0x1EF3,0x0059},
965 {0x1EF4,0x1EF5,0x0059}, {0x1EF4,0x1EF5,0x0059},
966 {0x1EF6,0x1EF7,0x0059}, {0x1EF6,0x1EF7,0x0059},
967 {0x1EF8,0x1EF9,0x0059}, {0x1EF8,0x1EF9,0x0059},
968 {0x1EFA,0x1EFA,0x1EFA}, {0x1EFB,0x1EFB,0x1EFB},
969 {0x1EFC,0x1EFC,0x1EFC}, {0x1EFD,0x1EFD,0x1EFD},
970 {0x1EFE,0x1EFE,0x1EFE}, {0x1EFF,0x1EFF,0x1EFF}
973 static MY_UNICASE_INFO plane1F[]={
974 {0x1F08,0x1F00,0x0391}, {0x1F09,0x1F01,0x0391},
975 {0x1F0A,0x1F02,0x0391}, {0x1F0B,0x1F03,0x0391},
976 {0x1F0C,0x1F04,0x0391}, {0x1F0D,0x1F05,0x0391},
977 {0x1F0E,0x1F06,0x0391}, {0x1F0F,0x1F07,0x0391},
978 {0x1F08,0x1F00,0x0391}, {0x1F09,0x1F01,0x0391},
979 {0x1F0A,0x1F02,0x0391}, {0x1F0B,0x1F03,0x0391},
980 {0x1F0C,0x1F04,0x0391}, {0x1F0D,0x1F05,0x0391},
981 {0x1F0E,0x1F06,0x0391}, {0x1F0F,0x1F07,0x0391},
982 {0x1F18,0x1F10,0x0395}, {0x1F19,0x1F11,0x0395},
983 {0x1F1A,0x1F12,0x0395}, {0x1F1B,0x1F13,0x0395},
984 {0x1F1C,0x1F14,0x0395}, {0x1F1D,0x1F15,0x0395},
985 {0x1F16,0x1F16,0x1F16}, {0x1F17,0x1F17,0x1F17},
986 {0x1F18,0x1F10,0x0395}, {0x1F19,0x1F11,0x0395},
987 {0x1F1A,0x1F12,0x0395}, {0x1F1B,0x1F13,0x0395},
988 {0x1F1C,0x1F14,0x0395}, {0x1F1D,0x1F15,0x0395},
989 {0x1F1E,0x1F1E,0x1F1E}, {0x1F1F,0x1F1F,0x1F1F},
990 {0x1F28,0x1F20,0x0397}, {0x1F29,0x1F21,0x0397},
991 {0x1F2A,0x1F22,0x0397}, {0x1F2B,0x1F23,0x0397},
992 {0x1F2C,0x1F24,0x0397}, {0x1F2D,0x1F25,0x0397},
993 {0x1F2E,0x1F26,0x0397}, {0x1F2F,0x1F27,0x0397},
994 {0x1F28,0x1F20,0x0397}, {0x1F29,0x1F21,0x0397},
995 {0x1F2A,0x1F22,0x0397}, {0x1F2B,0x1F23,0x0397},
996 {0x1F2C,0x1F24,0x0397}, {0x1F2D,0x1F25,0x0397},
997 {0x1F2E,0x1F26,0x0397}, {0x1F2F,0x1F27,0x0397},
998 {0x1F38,0x1F30,0x0399}, {0x1F39,0x1F31,0x0399},
999 {0x1F3A,0x1F32,0x0399}, {0x1F3B,0x1F33,0x0399},
1000 {0x1F3C,0x1F34,0x0399}, {0x1F3D,0x1F35,0x0399},
1001 {0x1F3E,0x1F36,0x0399}, {0x1F3F,0x1F37,0x0399},
1002 {0x1F38,0x1F30,0x0399}, {0x1F39,0x1F31,0x0399},
1003 {0x1F3A,0x1F32,0x0399}, {0x1F3B,0x1F33,0x0399},
1004 {0x1F3C,0x1F34,0x0399}, {0x1F3D,0x1F35,0x0399},
1005 {0x1F3E,0x1F36,0x0399}, {0x1F3F,0x1F37,0x0399},
1006 {0x1F48,0x1F40,0x039F}, {0x1F49,0x1F41,0x039F},
1007 {0x1F4A,0x1F42,0x039F}, {0x1F4B,0x1F43,0x039F},
1008 {0x1F4C,0x1F44,0x039F}, {0x1F4D,0x1F45,0x039F},
1009 {0x1F46,0x1F46,0x1F46}, {0x1F47,0x1F47,0x1F47},
1010 {0x1F48,0x1F40,0x039F}, {0x1F49,0x1F41,0x039F},
1011 {0x1F4A,0x1F42,0x039F}, {0x1F4B,0x1F43,0x039F},
1012 {0x1F4C,0x1F44,0x039F}, {0x1F4D,0x1F45,0x039F},
1013 {0x1F4E,0x1F4E,0x1F4E}, {0x1F4F,0x1F4F,0x1F4F},
1014 {0x1F50,0x1F50,0x03A5}, {0x1F59,0x1F51,0x03A5},
1015 {0x1F52,0x1F52,0x03A5}, {0x1F5B,0x1F53,0x03A5},
1016 {0x1F54,0x1F54,0x03A5}, {0x1F5D,0x1F55,0x03A5},
1017 {0x1F56,0x1F56,0x03A5}, {0x1F5F,0x1F57,0x03A5},
1018 {0x1F58,0x1F58,0x1F58}, {0x1F59,0x1F51,0x03A5},
1019 {0x1F5A,0x1F5A,0x1F5A}, {0x1F5B,0x1F53,0x03A5},
1020 {0x1F5C,0x1F5C,0x1F5C}, {0x1F5D,0x1F55,0x03A5},
1021 {0x1F5E,0x1F5E,0x1F5E}, {0x1F5F,0x1F57,0x03A5},
1022 {0x1F68,0x1F60,0x03A9}, {0x1F69,0x1F61,0x03A9},
1023 {0x1F6A,0x1F62,0x03A9}, {0x1F6B,0x1F63,0x03A9},
1024 {0x1F6C,0x1F64,0x03A9}, {0x1F6D,0x1F65,0x03A9},
1025 {0x1F6E,0x1F66,0x03A9}, {0x1F6F,0x1F67,0x03A9},
1026 {0x1F68,0x1F60,0x03A9}, {0x1F69,0x1F61,0x03A9},
1027 {0x1F6A,0x1F62,0x03A9}, {0x1F6B,0x1F63,0x03A9},
1028 {0x1F6C,0x1F64,0x03A9}, {0x1F6D,0x1F65,0x03A9},
1029 {0x1F6E,0x1F66,0x03A9}, {0x1F6F,0x1F67,0x03A9},
1030 {0x1FBA,0x1F70,0x0391}, {0x1FBB,0x1F71,0x1FBB},
1031 {0x1FC8,0x1F72,0x0395}, {0x1FC9,0x1F73,0x1FC9},
1032 {0x1FCA,0x1F74,0x0397}, {0x1FCB,0x1F75,0x1FCB},
1033 {0x1FDA,0x1F76,0x0399}, {0x1FDB,0x1F77,0x1FDB},
1034 {0x1FF8,0x1F78,0x039F}, {0x1FF9,0x1F79,0x1FF9},
1035 {0x1FEA,0x1F7A,0x03A5}, {0x1FEB,0x1F7B,0x1FEB},
1036 {0x1FFA,0x1F7C,0x03A9}, {0x1FFB,0x1F7D,0x1FFB},
1037 {0x1F7E,0x1F7E,0x1F7E}, {0x1F7F,0x1F7F,0x1F7F},
1038 {0x1F88,0x1F80,0x0391}, {0x1F89,0x1F81,0x0391},
1039 {0x1F8A,0x1F82,0x0391}, {0x1F8B,0x1F83,0x0391},
1040 {0x1F8C,0x1F84,0x0391}, {0x1F8D,0x1F85,0x0391},
1041 {0x1F8E,0x1F86,0x0391}, {0x1F8F,0x1F87,0x0391},
1042 {0x1F88,0x1F80,0x0391}, {0x1F89,0x1F81,0x0391},
1043 {0x1F8A,0x1F82,0x0391}, {0x1F8B,0x1F83,0x0391},
1044 {0x1F8C,0x1F84,0x0391}, {0x1F8D,0x1F85,0x0391},
1045 {0x1F8E,0x1F86,0x0391}, {0x1F8F,0x1F87,0x0391},
1046 {0x1F98,0x1F90,0x0397}, {0x1F99,0x1F91,0x0397},
1047 {0x1F9A,0x1F92,0x0397}, {0x1F9B,0x1F93,0x0397},
1048 {0x1F9C,0x1F94,0x0397}, {0x1F9D,0x1F95,0x0397},
1049 {0x1F9E,0x1F96,0x0397}, {0x1F9F,0x1F97,0x0397},
1050 {0x1F98,0x1F90,0x0397}, {0x1F99,0x1F91,0x0397},
1051 {0x1F9A,0x1F92,0x0397}, {0x1F9B,0x1F93,0x0397},
1052 {0x1F9C,0x1F94,0x0397}, {0x1F9D,0x1F95,0x0397},
1053 {0x1F9E,0x1F96,0x0397}, {0x1F9F,0x1F97,0x0397},
1054 {0x1FA8,0x1FA0,0x03A9}, {0x1FA9,0x1FA1,0x03A9},
1055 {0x1FAA,0x1FA2,0x03A9}, {0x1FAB,0x1FA3,0x03A9},
1056 {0x1FAC,0x1FA4,0x03A9}, {0x1FAD,0x1FA5,0x03A9},
1057 {0x1FAE,0x1FA6,0x03A9}, {0x1FAF,0x1FA7,0x03A9},
1058 {0x1FA8,0x1FA0,0x03A9}, {0x1FA9,0x1FA1,0x03A9},
1059 {0x1FAA,0x1FA2,0x03A9}, {0x1FAB,0x1FA3,0x03A9},
1060 {0x1FAC,0x1FA4,0x03A9}, {0x1FAD,0x1FA5,0x03A9},
1061 {0x1FAE,0x1FA6,0x03A9}, {0x1FAF,0x1FA7,0x03A9},
1062 {0x1FB8,0x1FB0,0x0391}, {0x1FB9,0x1FB1,0x0391},
1063 {0x1FB2,0x1FB2,0x0391}, {0x1FBC,0x1FB3,0x0391},
1064 {0x1FB4,0x1FB4,0x0391}, {0x1FB5,0x1FB5,0x1FB5},
1065 {0x1FB6,0x1FB6,0x0391}, {0x1FB7,0x1FB7,0x0391},
1066 {0x1FB8,0x1FB0,0x0391}, {0x1FB9,0x1FB1,0x0391},
1067 {0x1FBA,0x1F70,0x0391}, {0x1FBB,0x1F71,0x1FBB},
1068 {0x1FBC,0x1FB3,0x0391}, {0x1FBD,0x1FBD,0x1FBD},
1069 {0x0399,0x1FBE,0x0399}, {0x1FBF,0x1FBF,0x1FBF},
1070 {0x1FC0,0x1FC0,0x1FC0}, {0x1FC1,0x1FC1,0x1FC1},
1071 {0x1FC2,0x1FC2,0x0397}, {0x1FCC,0x1FC3,0x0397},
1072 {0x1FC4,0x1FC4,0x0397}, {0x1FC5,0x1FC5,0x1FC5},
1073 {0x1FC6,0x1FC6,0x0397}, {0x1FC7,0x1FC7,0x0397},
1074 {0x1FC8,0x1F72,0x0395}, {0x1FC9,0x1F73,0x1FC9},
1075 {0x1FCA,0x1F74,0x0397}, {0x1FCB,0x1F75,0x1FCB},
1076 {0x1FCC,0x1FC3,0x0397}, {0x1FCD,0x1FCD,0x1FCD},
1077 {0x1FCE,0x1FCE,0x1FCE}, {0x1FCF,0x1FCF,0x1FCF},
1078 {0x1FD8,0x1FD0,0x0399}, {0x1FD9,0x1FD1,0x0399},
1079 {0x1FD2,0x1FD2,0x0399}, {0x1FD3,0x1FD3,0x1FD3},
1080 {0x1FD4,0x1FD4,0x1FD4}, {0x1FD5,0x1FD5,0x1FD5},
1081 {0x1FD6,0x1FD6,0x0399}, {0x1FD7,0x1FD7,0x0399},
1082 {0x1FD8,0x1FD0,0x0399}, {0x1FD9,0x1FD1,0x0399},
1083 {0x1FDA,0x1F76,0x0399}, {0x1FDB,0x1F77,0x1FDB},
1084 {0x1FDC,0x1FDC,0x1FDC}, {0x1FDD,0x1FDD,0x1FDD},
1085 {0x1FDE,0x1FDE,0x1FDE}, {0x1FDF,0x1FDF,0x1FDF},
1086 {0x1FE8,0x1FE0,0x03A5}, {0x1FE9,0x1FE1,0x03A5},
1087 {0x1FE2,0x1FE2,0x03A5}, {0x1FE3,0x1FE3,0x1FE3},
1088 {0x1FE4,0x1FE4,0x03A1}, {0x1FEC,0x1FE5,0x03A1},
1089 {0x1FE6,0x1FE6,0x03A5}, {0x1FE7,0x1FE7,0x03A5},
1090 {0x1FE8,0x1FE0,0x03A5}, {0x1FE9,0x1FE1,0x03A5},
1091 {0x1FEA,0x1F7A,0x03A5}, {0x1FEB,0x1F7B,0x1FEB},
1092 {0x1FEC,0x1FE5,0x03A1}, {0x1FED,0x1FED,0x1FED},
1093 {0x1FEE,0x1FEE,0x1FEE}, {0x1FEF,0x1FEF,0x1FEF},
1094 {0x1FF0,0x1FF0,0x1FF0}, {0x1FF1,0x1FF1,0x1FF1},
1095 {0x1FF2,0x1FF2,0x03A9}, {0x1FFC,0x1FF3,0x03A9},
1096 {0x1FF4,0x1FF4,0x03A9}, {0x1FF5,0x1FF5,0x1FF5},
1097 {0x1FF6,0x1FF6,0x03A9}, {0x1FF7,0x1FF7,0x03A9},
1098 {0x1FF8,0x1F78,0x039F}, {0x1FF9,0x1F79,0x1FF9},
1099 {0x1FFA,0x1F7C,0x03A9}, {0x1FFB,0x1F7D,0x1FFB},
1100 {0x1FFC,0x1FF3,0x03A9}, {0x1FFD,0x1FFD,0x1FFD},
1101 {0x1FFE,0x1FFE,0x1FFE}, {0x1FFF,0x1FFF,0x1FFF}
1104 static MY_UNICASE_INFO plane21[]={
1105 {0x2100,0x2100,0x2100}, {0x2101,0x2101,0x2101},
1106 {0x2102,0x2102,0x2102}, {0x2103,0x2103,0x2103},
1107 {0x2104,0x2104,0x2104}, {0x2105,0x2105,0x2105},
1108 {0x2106,0x2106,0x2106}, {0x2107,0x2107,0x2107},
1109 {0x2108,0x2108,0x2108}, {0x2109,0x2109,0x2109},
1110 {0x210A,0x210A,0x210A}, {0x210B,0x210B,0x210B},
1111 {0x210C,0x210C,0x210C}, {0x210D,0x210D,0x210D},
1112 {0x210E,0x210E,0x210E}, {0x210F,0x210F,0x210F},
1113 {0x2110,0x2110,0x2110}, {0x2111,0x2111,0x2111},
1114 {0x2112,0x2112,0x2112}, {0x2113,0x2113,0x2113},
1115 {0x2114,0x2114,0x2114}, {0x2115,0x2115,0x2115},
1116 {0x2116,0x2116,0x2116}, {0x2117,0x2117,0x2117},
1117 {0x2118,0x2118,0x2118}, {0x2119,0x2119,0x2119},
1118 {0x211A,0x211A,0x211A}, {0x211B,0x211B,0x211B},
1119 {0x211C,0x211C,0x211C}, {0x211D,0x211D,0x211D},
1120 {0x211E,0x211E,0x211E}, {0x211F,0x211F,0x211F},
1121 {0x2120,0x2120,0x2120}, {0x2121,0x2121,0x2121},
1122 {0x2122,0x2122,0x2122}, {0x2123,0x2123,0x2123},
1123 {0x2124,0x2124,0x2124}, {0x2125,0x2125,0x2125},
1124 {0x2126,0x03C9,0x2126}, {0x2127,0x2127,0x2127},
1125 {0x2128,0x2128,0x2128}, {0x2129,0x2129,0x2129},
1126 {0x212A,0x006B,0x212A}, {0x212B,0x00E5,0x212B},
1127 {0x212C,0x212C,0x212C}, {0x212D,0x212D,0x212D},
1128 {0x212E,0x212E,0x212E}, {0x212F,0x212F,0x212F},
1129 {0x2130,0x2130,0x2130}, {0x2131,0x2131,0x2131},
1130 {0x2132,0x2132,0x2132}, {0x2133,0x2133,0x2133},
1131 {0x2134,0x2134,0x2134}, {0x2135,0x2135,0x2135},
1132 {0x2136,0x2136,0x2136}, {0x2137,0x2137,0x2137},
1133 {0x2138,0x2138,0x2138}, {0x2139,0x2139,0x2139},
1134 {0x213A,0x213A,0x213A}, {0x213B,0x213B,0x213B},
1135 {0x213C,0x213C,0x213C}, {0x213D,0x213D,0x213D},
1136 {0x213E,0x213E,0x213E}, {0x213F,0x213F,0x213F},
1137 {0x2140,0x2140,0x2140}, {0x2141,0x2141,0x2141},
1138 {0x2142,0x2142,0x2142}, {0x2143,0x2143,0x2143},
1139 {0x2144,0x2144,0x2144}, {0x2145,0x2145,0x2145},
1140 {0x2146,0x2146,0x2146}, {0x2147,0x2147,0x2147},
1141 {0x2148,0x2148,0x2148}, {0x2149,0x2149,0x2149},
1142 {0x214A,0x214A,0x214A}, {0x214B,0x214B,0x214B},
1143 {0x214C,0x214C,0x214C}, {0x214D,0x214D,0x214D},
1144 {0x214E,0x214E,0x214E}, {0x214F,0x214F,0x214F},
1145 {0x2150,0x2150,0x2150}, {0x2151,0x2151,0x2151},
1146 {0x2152,0x2152,0x2152}, {0x2153,0x2153,0x2153},
1147 {0x2154,0x2154,0x2154}, {0x2155,0x2155,0x2155},
1148 {0x2156,0x2156,0x2156}, {0x2157,0x2157,0x2157},
1149 {0x2158,0x2158,0x2158}, {0x2159,0x2159,0x2159},
1150 {0x215A,0x215A,0x215A}, {0x215B,0x215B,0x215B},
1151 {0x215C,0x215C,0x215C}, {0x215D,0x215D,0x215D},
1152 {0x215E,0x215E,0x215E}, {0x215F,0x215F,0x215F},
1153 {0x2160,0x2170,0x2160}, {0x2161,0x2171,0x2161},
1154 {0x2162,0x2172,0x2162}, {0x2163,0x2173,0x2163},
1155 {0x2164,0x2174,0x2164}, {0x2165,0x2175,0x2165},
1156 {0x2166,0x2176,0x2166}, {0x2167,0x2177,0x2167},
1157 {0x2168,0x2178,0x2168}, {0x2169,0x2179,0x2169},
1158 {0x216A,0x217A,0x216A}, {0x216B,0x217B,0x216B},
1159 {0x216C,0x217C,0x216C}, {0x216D,0x217D,0x216D},
1160 {0x216E,0x217E,0x216E}, {0x216F,0x217F,0x216F},
1161 {0x2160,0x2170,0x2160}, {0x2161,0x2171,0x2161},
1162 {0x2162,0x2172,0x2162}, {0x2163,0x2173,0x2163},
1163 {0x2164,0x2174,0x2164}, {0x2165,0x2175,0x2165},
1164 {0x2166,0x2176,0x2166}, {0x2167,0x2177,0x2167},
1165 {0x2168,0x2178,0x2168}, {0x2169,0x2179,0x2169},
1166 {0x216A,0x217A,0x216A}, {0x216B,0x217B,0x216B},
1167 {0x216C,0x217C,0x216C}, {0x216D,0x217D,0x216D},
1168 {0x216E,0x217E,0x216E}, {0x216F,0x217F,0x216F},
1169 {0x2180,0x2180,0x2180}, {0x2181,0x2181,0x2181},
1170 {0x2182,0x2182,0x2182}, {0x2183,0x2183,0x2183},
1171 {0x2184,0x2184,0x2184}, {0x2185,0x2185,0x2185},
1172 {0x2186,0x2186,0x2186}, {0x2187,0x2187,0x2187},
1173 {0x2188,0x2188,0x2188}, {0x2189,0x2189,0x2189},
1174 {0x218A,0x218A,0x218A}, {0x218B,0x218B,0x218B},
1175 {0x218C,0x218C,0x218C}, {0x218D,0x218D,0x218D},
1176 {0x218E,0x218E,0x218E}, {0x218F,0x218F,0x218F},
1177 {0x2190,0x2190,0x2190}, {0x2191,0x2191,0x2191},
1178 {0x2192,0x2192,0x2192}, {0x2193,0x2193,0x2193},
1179 {0x2194,0x2194,0x2194}, {0x2195,0x2195,0x2195},
1180 {0x2196,0x2196,0x2196}, {0x2197,0x2197,0x2197},
1181 {0x2198,0x2198,0x2198}, {0x2199,0x2199,0x2199},
1182 {0x219A,0x219A,0x219A}, {0x219B,0x219B,0x219B},
1183 {0x219C,0x219C,0x219C}, {0x219D,0x219D,0x219D},
1184 {0x219E,0x219E,0x219E}, {0x219F,0x219F,0x219F},
1185 {0x21A0,0x21A0,0x21A0}, {0x21A1,0x21A1,0x21A1},
1186 {0x21A2,0x21A2,0x21A2}, {0x21A3,0x21A3,0x21A3},
1187 {0x21A4,0x21A4,0x21A4}, {0x21A5,0x21A5,0x21A5},
1188 {0x21A6,0x21A6,0x21A6}, {0x21A7,0x21A7,0x21A7},
1189 {0x21A8,0x21A8,0x21A8}, {0x21A9,0x21A9,0x21A9},
1190 {0x21AA,0x21AA,0x21AA}, {0x21AB,0x21AB,0x21AB},
1191 {0x21AC,0x21AC,0x21AC}, {0x21AD,0x21AD,0x21AD},
1192 {0x21AE,0x21AE,0x21AE}, {0x21AF,0x21AF,0x21AF},
1193 {0x21B0,0x21B0,0x21B0}, {0x21B1,0x21B1,0x21B1},
1194 {0x21B2,0x21B2,0x21B2}, {0x21B3,0x21B3,0x21B3},
1195 {0x21B4,0x21B4,0x21B4}, {0x21B5,0x21B5,0x21B5},
1196 {0x21B6,0x21B6,0x21B6}, {0x21B7,0x21B7,0x21B7},
1197 {0x21B8,0x21B8,0x21B8}, {0x21B9,0x21B9,0x21B9},
1198 {0x21BA,0x21BA,0x21BA}, {0x21BB,0x21BB,0x21BB},
1199 {0x21BC,0x21BC,0x21BC}, {0x21BD,0x21BD,0x21BD},
1200 {0x21BE,0x21BE,0x21BE}, {0x21BF,0x21BF,0x21BF},
1201 {0x21C0,0x21C0,0x21C0}, {0x21C1,0x21C1,0x21C1},
1202 {0x21C2,0x21C2,0x21C2}, {0x21C3,0x21C3,0x21C3},
1203 {0x21C4,0x21C4,0x21C4}, {0x21C5,0x21C5,0x21C5},
1204 {0x21C6,0x21C6,0x21C6}, {0x21C7,0x21C7,0x21C7},
1205 {0x21C8,0x21C8,0x21C8}, {0x21C9,0x21C9,0x21C9},
1206 {0x21CA,0x21CA,0x21CA}, {0x21CB,0x21CB,0x21CB},
1207 {0x21CC,0x21CC,0x21CC}, {0x21CD,0x21CD,0x21CD},
1208 {0x21CE,0x21CE,0x21CE}, {0x21CF,0x21CF,0x21CF},
1209 {0x21D0,0x21D0,0x21D0}, {0x21D1,0x21D1,0x21D1},
1210 {0x21D2,0x21D2,0x21D2}, {0x21D3,0x21D3,0x21D3},
1211 {0x21D4,0x21D4,0x21D4}, {0x21D5,0x21D5,0x21D5},
1212 {0x21D6,0x21D6,0x21D6}, {0x21D7,0x21D7,0x21D7},
1213 {0x21D8,0x21D8,0x21D8}, {0x21D9,0x21D9,0x21D9},
1214 {0x21DA,0x21DA,0x21DA}, {0x21DB,0x21DB,0x21DB},
1215 {0x21DC,0x21DC,0x21DC}, {0x21DD,0x21DD,0x21DD},
1216 {0x21DE,0x21DE,0x21DE}, {0x21DF,0x21DF,0x21DF},
1217 {0x21E0,0x21E0,0x21E0}, {0x21E1,0x21E1,0x21E1},
1218 {0x21E2,0x21E2,0x21E2}, {0x21E3,0x21E3,0x21E3},
1219 {0x21E4,0x21E4,0x21E4}, {0x21E5,0x21E5,0x21E5},
1220 {0x21E6,0x21E6,0x21E6}, {0x21E7,0x21E7,0x21E7},
1221 {0x21E8,0x21E8,0x21E8}, {0x21E9,0x21E9,0x21E9},
1222 {0x21EA,0x21EA,0x21EA}, {0x21EB,0x21EB,0x21EB},
1223 {0x21EC,0x21EC,0x21EC}, {0x21ED,0x21ED,0x21ED},
1224 {0x21EE,0x21EE,0x21EE}, {0x21EF,0x21EF,0x21EF},
1225 {0x21F0,0x21F0,0x21F0}, {0x21F1,0x21F1,0x21F1},
1226 {0x21F2,0x21F2,0x21F2}, {0x21F3,0x21F3,0x21F3},
1227 {0x21F4,0x21F4,0x21F4}, {0x21F5,0x21F5,0x21F5},
1228 {0x21F6,0x21F6,0x21F6}, {0x21F7,0x21F7,0x21F7},
1229 {0x21F8,0x21F8,0x21F8}, {0x21F9,0x21F9,0x21F9},
1230 {0x21FA,0x21FA,0x21FA}, {0x21FB,0x21FB,0x21FB},
1231 {0x21FC,0x21FC,0x21FC}, {0x21FD,0x21FD,0x21FD},
1232 {0x21FE,0x21FE,0x21FE}, {0x21FF,0x21FF,0x21FF}
1235 static MY_UNICASE_INFO plane24[]={
1236 {0x2400,0x2400,0x2400}, {0x2401,0x2401,0x2401},
1237 {0x2402,0x2402,0x2402}, {0x2403,0x2403,0x2403},
1238 {0x2404,0x2404,0x2404}, {0x2405,0x2405,0x2405},
1239 {0x2406,0x2406,0x2406}, {0x2407,0x2407,0x2407},
1240 {0x2408,0x2408,0x2408}, {0x2409,0x2409,0x2409},
1241 {0x240A,0x240A,0x240A}, {0x240B,0x240B,0x240B},
1242 {0x240C,0x240C,0x240C}, {0x240D,0x240D,0x240D},
1243 {0x240E,0x240E,0x240E}, {0x240F,0x240F,0x240F},
1244 {0x2410,0x2410,0x2410}, {0x2411,0x2411,0x2411},
1245 {0x2412,0x2412,0x2412}, {0x2413,0x2413,0x2413},
1246 {0x2414,0x2414,0x2414}, {0x2415,0x2415,0x2415},
1247 {0x2416,0x2416,0x2416}, {0x2417,0x2417,0x2417},
1248 {0x2418,0x2418,0x2418}, {0x2419,0x2419,0x2419},
1249 {0x241A,0x241A,0x241A}, {0x241B,0x241B,0x241B},
1250 {0x241C,0x241C,0x241C}, {0x241D,0x241D,0x241D},
1251 {0x241E,0x241E,0x241E}, {0x241F,0x241F,0x241F},
1252 {0x2420,0x2420,0x2420}, {0x2421,0x2421,0x2421},
1253 {0x2422,0x2422,0x2422}, {0x2423,0x2423,0x2423},
1254 {0x2424,0x2424,0x2424}, {0x2425,0x2425,0x2425},
1255 {0x2426,0x2426,0x2426}, {0x2427,0x2427,0x2427},
1256 {0x2428,0x2428,0x2428}, {0x2429,0x2429,0x2429},
1257 {0x242A,0x242A,0x242A}, {0x242B,0x242B,0x242B},
1258 {0x242C,0x242C,0x242C}, {0x242D,0x242D,0x242D},
1259 {0x242E,0x242E,0x242E}, {0x242F,0x242F,0x242F},
1260 {0x2430,0x2430,0x2430}, {0x2431,0x2431,0x2431},
1261 {0x2432,0x2432,0x2432}, {0x2433,0x2433,0x2433},
1262 {0x2434,0x2434,0x2434}, {0x2435,0x2435,0x2435},
1263 {0x2436,0x2436,0x2436}, {0x2437,0x2437,0x2437},
1264 {0x2438,0x2438,0x2438}, {0x2439,0x2439,0x2439},
1265 {0x243A,0x243A,0x243A}, {0x243B,0x243B,0x243B},
1266 {0x243C,0x243C,0x243C}, {0x243D,0x243D,0x243D},
1267 {0x243E,0x243E,0x243E}, {0x243F,0x243F,0x243F},
1268 {0x2440,0x2440,0x2440}, {0x2441,0x2441,0x2441},
1269 {0x2442,0x2442,0x2442}, {0x2443,0x2443,0x2443},
1270 {0x2444,0x2444,0x2444}, {0x2445,0x2445,0x2445},
1271 {0x2446,0x2446,0x2446}, {0x2447,0x2447,0x2447},
1272 {0x2448,0x2448,0x2448}, {0x2449,0x2449,0x2449},
1273 {0x244A,0x244A,0x244A}, {0x244B,0x244B,0x244B},
1274 {0x244C,0x244C,0x244C}, {0x244D,0x244D,0x244D},
1275 {0x244E,0x244E,0x244E}, {0x244F,0x244F,0x244F},
1276 {0x2450,0x2450,0x2450}, {0x2451,0x2451,0x2451},
1277 {0x2452,0x2452,0x2452}, {0x2453,0x2453,0x2453},
1278 {0x2454,0x2454,0x2454}, {0x2455,0x2455,0x2455},
1279 {0x2456,0x2456,0x2456}, {0x2457,0x2457,0x2457},
1280 {0x2458,0x2458,0x2458}, {0x2459,0x2459,0x2459},
1281 {0x245A,0x245A,0x245A}, {0x245B,0x245B,0x245B},
1282 {0x245C,0x245C,0x245C}, {0x245D,0x245D,0x245D},
1283 {0x245E,0x245E,0x245E}, {0x245F,0x245F,0x245F},
1284 {0x2460,0x2460,0x2460}, {0x2461,0x2461,0x2461},
1285 {0x2462,0x2462,0x2462}, {0x2463,0x2463,0x2463},
1286 {0x2464,0x2464,0x2464}, {0x2465,0x2465,0x2465},
1287 {0x2466,0x2466,0x2466}, {0x2467,0x2467,0x2467},
1288 {0x2468,0x2468,0x2468}, {0x2469,0x2469,0x2469},
1289 {0x246A,0x246A,0x246A}, {0x246B,0x246B,0x246B},
1290 {0x246C,0x246C,0x246C}, {0x246D,0x246D,0x246D},
1291 {0x246E,0x246E,0x246E}, {0x246F,0x246F,0x246F},
1292 {0x2470,0x2470,0x2470}, {0x2471,0x2471,0x2471},
1293 {0x2472,0x2472,0x2472}, {0x2473,0x2473,0x2473},
1294 {0x2474,0x2474,0x2474}, {0x2475,0x2475,0x2475},
1295 {0x2476,0x2476,0x2476}, {0x2477,0x2477,0x2477},
1296 {0x2478,0x2478,0x2478}, {0x2479,0x2479,0x2479},
1297 {0x247A,0x247A,0x247A}, {0x247B,0x247B,0x247B},
1298 {0x247C,0x247C,0x247C}, {0x247D,0x247D,0x247D},
1299 {0x247E,0x247E,0x247E}, {0x247F,0x247F,0x247F},
1300 {0x2480,0x2480,0x2480}, {0x2481,0x2481,0x2481},
1301 {0x2482,0x2482,0x2482}, {0x2483,0x2483,0x2483},
1302 {0x2484,0x2484,0x2484}, {0x2485,0x2485,0x2485},
1303 {0x2486,0x2486,0x2486}, {0x2487,0x2487,0x2487},
1304 {0x2488,0x2488,0x2488}, {0x2489,0x2489,0x2489},
1305 {0x248A,0x248A,0x248A}, {0x248B,0x248B,0x248B},
1306 {0x248C,0x248C,0x248C}, {0x248D,0x248D,0x248D},
1307 {0x248E,0x248E,0x248E}, {0x248F,0x248F,0x248F},
1308 {0x2490,0x2490,0x2490}, {0x2491,0x2491,0x2491},
1309 {0x2492,0x2492,0x2492}, {0x2493,0x2493,0x2493},
1310 {0x2494,0x2494,0x2494}, {0x2495,0x2495,0x2495},
1311 {0x2496,0x2496,0x2496}, {0x2497,0x2497,0x2497},
1312 {0x2498,0x2498,0x2498}, {0x2499,0x2499,0x2499},
1313 {0x249A,0x249A,0x249A}, {0x249B,0x249B,0x249B},
1314 {0x249C,0x249C,0x249C}, {0x249D,0x249D,0x249D},
1315 {0x249E,0x249E,0x249E}, {0x249F,0x249F,0x249F},
1316 {0x24A0,0x24A0,0x24A0}, {0x24A1,0x24A1,0x24A1},
1317 {0x24A2,0x24A2,0x24A2}, {0x24A3,0x24A3,0x24A3},
1318 {0x24A4,0x24A4,0x24A4}, {0x24A5,0x24A5,0x24A5},
1319 {0x24A6,0x24A6,0x24A6}, {0x24A7,0x24A7,0x24A7},
1320 {0x24A8,0x24A8,0x24A8}, {0x24A9,0x24A9,0x24A9},
1321 {0x24AA,0x24AA,0x24AA}, {0x24AB,0x24AB,0x24AB},
1322 {0x24AC,0x24AC,0x24AC}, {0x24AD,0x24AD,0x24AD},
1323 {0x24AE,0x24AE,0x24AE}, {0x24AF,0x24AF,0x24AF},
1324 {0x24B0,0x24B0,0x24B0}, {0x24B1,0x24B1,0x24B1},
1325 {0x24B2,0x24B2,0x24B2}, {0x24B3,0x24B3,0x24B3},
1326 {0x24B4,0x24B4,0x24B4}, {0x24B5,0x24B5,0x24B5},
1327 {0x24B6,0x24D0,0x24B6}, {0x24B7,0x24D1,0x24B7},
1328 {0x24B8,0x24D2,0x24B8}, {0x24B9,0x24D3,0x24B9},
1329 {0x24BA,0x24D4,0x24BA}, {0x24BB,0x24D5,0x24BB},
1330 {0x24BC,0x24D6,0x24BC}, {0x24BD,0x24D7,0x24BD},
1331 {0x24BE,0x24D8,0x24BE}, {0x24BF,0x24D9,0x24BF},
1332 {0x24C0,0x24DA,0x24C0}, {0x24C1,0x24DB,0x24C1},
1333 {0x24C2,0x24DC,0x24C2}, {0x24C3,0x24DD,0x24C3},
1334 {0x24C4,0x24DE,0x24C4}, {0x24C5,0x24DF,0x24C5},
1335 {0x24C6,0x24E0,0x24C6}, {0x24C7,0x24E1,0x24C7},
1336 {0x24C8,0x24E2,0x24C8}, {0x24C9,0x24E3,0x24C9},
1337 {0x24CA,0x24E4,0x24CA}, {0x24CB,0x24E5,0x24CB},
1338 {0x24CC,0x24E6,0x24CC}, {0x24CD,0x24E7,0x24CD},
1339 {0x24CE,0x24E8,0x24CE}, {0x24CF,0x24E9,0x24CF},
1340 {0x24B6,0x24D0,0x24B6}, {0x24B7,0x24D1,0x24B7},
1341 {0x24B8,0x24D2,0x24B8}, {0x24B9,0x24D3,0x24B9},
1342 {0x24BA,0x24D4,0x24BA}, {0x24BB,0x24D5,0x24BB},
1343 {0x24BC,0x24D6,0x24BC}, {0x24BD,0x24D7,0x24BD},
1344 {0x24BE,0x24D8,0x24BE}, {0x24BF,0x24D9,0x24BF},
1345 {0x24C0,0x24DA,0x24C0}, {0x24C1,0x24DB,0x24C1},
1346 {0x24C2,0x24DC,0x24C2}, {0x24C3,0x24DD,0x24C3},
1347 {0x24C4,0x24DE,0x24C4}, {0x24C5,0x24DF,0x24C5},
1348 {0x24C6,0x24E0,0x24C6}, {0x24C7,0x24E1,0x24C7},
1349 {0x24C8,0x24E2,0x24C8}, {0x24C9,0x24E3,0x24C9},
1350 {0x24CA,0x24E4,0x24CA}, {0x24CB,0x24E5,0x24CB},
1351 {0x24CC,0x24E6,0x24CC}, {0x24CD,0x24E7,0x24CD},
1352 {0x24CE,0x24E8,0x24CE}, {0x24CF,0x24E9,0x24CF},
1353 {0x24EA,0x24EA,0x24EA}, {0x24EB,0x24EB,0x24EB},
1354 {0x24EC,0x24EC,0x24EC}, {0x24ED,0x24ED,0x24ED},
1355 {0x24EE,0x24EE,0x24EE}, {0x24EF,0x24EF,0x24EF},
1356 {0x24F0,0x24F0,0x24F0}, {0x24F1,0x24F1,0x24F1},
1357 {0x24F2,0x24F2,0x24F2}, {0x24F3,0x24F3,0x24F3},
1358 {0x24F4,0x24F4,0x24F4}, {0x24F5,0x24F5,0x24F5},
1359 {0x24F6,0x24F6,0x24F6}, {0x24F7,0x24F7,0x24F7},
1360 {0x24F8,0x24F8,0x24F8}, {0x24F9,0x24F9,0x24F9},
1361 {0x24FA,0x24FA,0x24FA}, {0x24FB,0x24FB,0x24FB},
1362 {0x24FC,0x24FC,0x24FC}, {0x24FD,0x24FD,0x24FD},
1363 {0x24FE,0x24FE,0x24FE}, {0x24FF,0x24FF,0x24FF}
1366 static MY_UNICASE_INFO planeFF[]={
1367 {0xFF00,0xFF00,0xFF00}, {0xFF01,0xFF01,0xFF01},
1368 {0xFF02,0xFF02,0xFF02}, {0xFF03,0xFF03,0xFF03},
1369 {0xFF04,0xFF04,0xFF04}, {0xFF05,0xFF05,0xFF05},
1370 {0xFF06,0xFF06,0xFF06}, {0xFF07,0xFF07,0xFF07},
1371 {0xFF08,0xFF08,0xFF08}, {0xFF09,0xFF09,0xFF09},
1372 {0xFF0A,0xFF0A,0xFF0A}, {0xFF0B,0xFF0B,0xFF0B},
1373 {0xFF0C,0xFF0C,0xFF0C}, {0xFF0D,0xFF0D,0xFF0D},
1374 {0xFF0E,0xFF0E,0xFF0E}, {0xFF0F,0xFF0F,0xFF0F},
1375 {0xFF10,0xFF10,0xFF10}, {0xFF11,0xFF11,0xFF11},
1376 {0xFF12,0xFF12,0xFF12}, {0xFF13,0xFF13,0xFF13},
1377 {0xFF14,0xFF14,0xFF14}, {0xFF15,0xFF15,0xFF15},
1378 {0xFF16,0xFF16,0xFF16}, {0xFF17,0xFF17,0xFF17},
1379 {0xFF18,0xFF18,0xFF18}, {0xFF19,0xFF19,0xFF19},
1380 {0xFF1A,0xFF1A,0xFF1A}, {0xFF1B,0xFF1B,0xFF1B},
1381 {0xFF1C,0xFF1C,0xFF1C}, {0xFF1D,0xFF1D,0xFF1D},
1382 {0xFF1E,0xFF1E,0xFF1E}, {0xFF1F,0xFF1F,0xFF1F},
1383 {0xFF20,0xFF20,0xFF20}, {0xFF21,0xFF41,0xFF21},
1384 {0xFF22,0xFF42,0xFF22}, {0xFF23,0xFF43,0xFF23},
1385 {0xFF24,0xFF44,0xFF24}, {0xFF25,0xFF45,0xFF25},
1386 {0xFF26,0xFF46,0xFF26}, {0xFF27,0xFF47,0xFF27},
1387 {0xFF28,0xFF48,0xFF28}, {0xFF29,0xFF49,0xFF29},
1388 {0xFF2A,0xFF4A,0xFF2A}, {0xFF2B,0xFF4B,0xFF2B},
1389 {0xFF2C,0xFF4C,0xFF2C}, {0xFF2D,0xFF4D,0xFF2D},
1390 {0xFF2E,0xFF4E,0xFF2E}, {0xFF2F,0xFF4F,0xFF2F},
1391 {0xFF30,0xFF50,0xFF30}, {0xFF31,0xFF51,0xFF31},
1392 {0xFF32,0xFF52,0xFF32}, {0xFF33,0xFF53,0xFF33},
1393 {0xFF34,0xFF54,0xFF34}, {0xFF35,0xFF55,0xFF35},
1394 {0xFF36,0xFF56,0xFF36}, {0xFF37,0xFF57,0xFF37},
1395 {0xFF38,0xFF58,0xFF38}, {0xFF39,0xFF59,0xFF39},
1396 {0xFF3A,0xFF5A,0xFF3A}, {0xFF3B,0xFF3B,0xFF3B},
1397 {0xFF3C,0xFF3C,0xFF3C}, {0xFF3D,0xFF3D,0xFF3D},
1398 {0xFF3E,0xFF3E,0xFF3E}, {0xFF3F,0xFF3F,0xFF3F},
1399 {0xFF40,0xFF40,0xFF40}, {0xFF21,0xFF41,0xFF21},
1400 {0xFF22,0xFF42,0xFF22}, {0xFF23,0xFF43,0xFF23},
1401 {0xFF24,0xFF44,0xFF24}, {0xFF25,0xFF45,0xFF25},
1402 {0xFF26,0xFF46,0xFF26}, {0xFF27,0xFF47,0xFF27},
1403 {0xFF28,0xFF48,0xFF28}, {0xFF29,0xFF49,0xFF29},
1404 {0xFF2A,0xFF4A,0xFF2A}, {0xFF2B,0xFF4B,0xFF2B},
1405 {0xFF2C,0xFF4C,0xFF2C}, {0xFF2D,0xFF4D,0xFF2D},
1406 {0xFF2E,0xFF4E,0xFF2E}, {0xFF2F,0xFF4F,0xFF2F},
1407 {0xFF30,0xFF50,0xFF30}, {0xFF31,0xFF51,0xFF31},
1408 {0xFF32,0xFF52,0xFF32}, {0xFF33,0xFF53,0xFF33},
1409 {0xFF34,0xFF54,0xFF34}, {0xFF35,0xFF55,0xFF35},
1410 {0xFF36,0xFF56,0xFF36}, {0xFF37,0xFF57,0xFF37},
1411 {0xFF38,0xFF58,0xFF38}, {0xFF39,0xFF59,0xFF39},
1412 {0xFF3A,0xFF5A,0xFF3A}, {0xFF5B,0xFF5B,0xFF5B},
1413 {0xFF5C,0xFF5C,0xFF5C}, {0xFF5D,0xFF5D,0xFF5D},
1414 {0xFF5E,0xFF5E,0xFF5E}, {0xFF5F,0xFF5F,0xFF5F},
1415 {0xFF60,0xFF60,0xFF60}, {0xFF61,0xFF61,0xFF61},
1416 {0xFF62,0xFF62,0xFF62}, {0xFF63,0xFF63,0xFF63},
1417 {0xFF64,0xFF64,0xFF64}, {0xFF65,0xFF65,0xFF65},
1418 {0xFF66,0xFF66,0xFF66}, {0xFF67,0xFF67,0xFF67},
1419 {0xFF68,0xFF68,0xFF68}, {0xFF69,0xFF69,0xFF69},
1420 {0xFF6A,0xFF6A,0xFF6A}, {0xFF6B,0xFF6B,0xFF6B},
1421 {0xFF6C,0xFF6C,0xFF6C}, {0xFF6D,0xFF6D,0xFF6D},
1422 {0xFF6E,0xFF6E,0xFF6E}, {0xFF6F,0xFF6F,0xFF6F},
1423 {0xFF70,0xFF70,0xFF70}, {0xFF71,0xFF71,0xFF71},
1424 {0xFF72,0xFF72,0xFF72}, {0xFF73,0xFF73,0xFF73},
1425 {0xFF74,0xFF74,0xFF74}, {0xFF75,0xFF75,0xFF75},
1426 {0xFF76,0xFF76,0xFF76}, {0xFF77,0xFF77,0xFF77},
1427 {0xFF78,0xFF78,0xFF78}, {0xFF79,0xFF79,0xFF79},
1428 {0xFF7A,0xFF7A,0xFF7A}, {0xFF7B,0xFF7B,0xFF7B},
1429 {0xFF7C,0xFF7C,0xFF7C}, {0xFF7D,0xFF7D,0xFF7D},
1430 {0xFF7E,0xFF7E,0xFF7E}, {0xFF7F,0xFF7F,0xFF7F},
1431 {0xFF80,0xFF80,0xFF80}, {0xFF81,0xFF81,0xFF81},
1432 {0xFF82,0xFF82,0xFF82}, {0xFF83,0xFF83,0xFF83},
1433 {0xFF84,0xFF84,0xFF84}, {0xFF85,0xFF85,0xFF85},
1434 {0xFF86,0xFF86,0xFF86}, {0xFF87,0xFF87,0xFF87},
1435 {0xFF88,0xFF88,0xFF88}, {0xFF89,0xFF89,0xFF89},
1436 {0xFF8A,0xFF8A,0xFF8A}, {0xFF8B,0xFF8B,0xFF8B},
1437 {0xFF8C,0xFF8C,0xFF8C}, {0xFF8D,0xFF8D,0xFF8D},
1438 {0xFF8E,0xFF8E,0xFF8E}, {0xFF8F,0xFF8F,0xFF8F},
1439 {0xFF90,0xFF90,0xFF90}, {0xFF91,0xFF91,0xFF91},
1440 {0xFF92,0xFF92,0xFF92}, {0xFF93,0xFF93,0xFF93},
1441 {0xFF94,0xFF94,0xFF94}, {0xFF95,0xFF95,0xFF95},
1442 {0xFF96,0xFF96,0xFF96}, {0xFF97,0xFF97,0xFF97},
1443 {0xFF98,0xFF98,0xFF98}, {0xFF99,0xFF99,0xFF99},
1444 {0xFF9A,0xFF9A,0xFF9A}, {0xFF9B,0xFF9B,0xFF9B},
1445 {0xFF9C,0xFF9C,0xFF9C}, {0xFF9D,0xFF9D,0xFF9D},
1446 {0xFF9E,0xFF9E,0xFF9E}, {0xFF9F,0xFF9F,0xFF9F},
1447 {0xFFA0,0xFFA0,0xFFA0}, {0xFFA1,0xFFA1,0xFFA1},
1448 {0xFFA2,0xFFA2,0xFFA2}, {0xFFA3,0xFFA3,0xFFA3},
1449 {0xFFA4,0xFFA4,0xFFA4}, {0xFFA5,0xFFA5,0xFFA5},
1450 {0xFFA6,0xFFA6,0xFFA6}, {0xFFA7,0xFFA7,0xFFA7},
1451 {0xFFA8,0xFFA8,0xFFA8}, {0xFFA9,0xFFA9,0xFFA9},
1452 {0xFFAA,0xFFAA,0xFFAA}, {0xFFAB,0xFFAB,0xFFAB},
1453 {0xFFAC,0xFFAC,0xFFAC}, {0xFFAD,0xFFAD,0xFFAD},
1454 {0xFFAE,0xFFAE,0xFFAE}, {0xFFAF,0xFFAF,0xFFAF},
1455 {0xFFB0,0xFFB0,0xFFB0}, {0xFFB1,0xFFB1,0xFFB1},
1456 {0xFFB2,0xFFB2,0xFFB2}, {0xFFB3,0xFFB3,0xFFB3},
1457 {0xFFB4,0xFFB4,0xFFB4}, {0xFFB5,0xFFB5,0xFFB5},
1458 {0xFFB6,0xFFB6,0xFFB6}, {0xFFB7,0xFFB7,0xFFB7},
1459 {0xFFB8,0xFFB8,0xFFB8}, {0xFFB9,0xFFB9,0xFFB9},
1460 {0xFFBA,0xFFBA,0xFFBA}, {0xFFBB,0xFFBB,0xFFBB},
1461 {0xFFBC,0xFFBC,0xFFBC}, {0xFFBD,0xFFBD,0xFFBD},
1462 {0xFFBE,0xFFBE,0xFFBE}, {0xFFBF,0xFFBF,0xFFBF},
1463 {0xFFC0,0xFFC0,0xFFC0}, {0xFFC1,0xFFC1,0xFFC1},
1464 {0xFFC2,0xFFC2,0xFFC2}, {0xFFC3,0xFFC3,0xFFC3},
1465 {0xFFC4,0xFFC4,0xFFC4}, {0xFFC5,0xFFC5,0xFFC5},
1466 {0xFFC6,0xFFC6,0xFFC6}, {0xFFC7,0xFFC7,0xFFC7},
1467 {0xFFC8,0xFFC8,0xFFC8}, {0xFFC9,0xFFC9,0xFFC9},
1468 {0xFFCA,0xFFCA,0xFFCA}, {0xFFCB,0xFFCB,0xFFCB},
1469 {0xFFCC,0xFFCC,0xFFCC}, {0xFFCD,0xFFCD,0xFFCD},
1470 {0xFFCE,0xFFCE,0xFFCE}, {0xFFCF,0xFFCF,0xFFCF},
1471 {0xFFD0,0xFFD0,0xFFD0}, {0xFFD1,0xFFD1,0xFFD1},
1472 {0xFFD2,0xFFD2,0xFFD2}, {0xFFD3,0xFFD3,0xFFD3},
1473 {0xFFD4,0xFFD4,0xFFD4}, {0xFFD5,0xFFD5,0xFFD5},
1474 {0xFFD6,0xFFD6,0xFFD6}, {0xFFD7,0xFFD7,0xFFD7},
1475 {0xFFD8,0xFFD8,0xFFD8}, {0xFFD9,0xFFD9,0xFFD9},
1476 {0xFFDA,0xFFDA,0xFFDA}, {0xFFDB,0xFFDB,0xFFDB},
1477 {0xFFDC,0xFFDC,0xFFDC}, {0xFFDD,0xFFDD,0xFFDD},
1478 {0xFFDE,0xFFDE,0xFFDE}, {0xFFDF,0xFFDF,0xFFDF},
1479 {0xFFE0,0xFFE0,0xFFE0}, {0xFFE1,0xFFE1,0xFFE1},
1480 {0xFFE2,0xFFE2,0xFFE2}, {0xFFE3,0xFFE3,0xFFE3},
1481 {0xFFE4,0xFFE4,0xFFE4}, {0xFFE5,0xFFE5,0xFFE5},
1482 {0xFFE6,0xFFE6,0xFFE6}, {0xFFE7,0xFFE7,0xFFE7},
1483 {0xFFE8,0xFFE8,0xFFE8}, {0xFFE9,0xFFE9,0xFFE9},
1484 {0xFFEA,0xFFEA,0xFFEA}, {0xFFEB,0xFFEB,0xFFEB},
1485 {0xFFEC,0xFFEC,0xFFEC}, {0xFFED,0xFFED,0xFFED},
1486 {0xFFEE,0xFFEE,0xFFEE}, {0xFFEF,0xFFEF,0xFFEF},
1487 {0xFFF0,0xFFF0,0xFFF0}, {0xFFF1,0xFFF1,0xFFF1},
1488 {0xFFF2,0xFFF2,0xFFF2}, {0xFFF3,0xFFF3,0xFFF3},
1489 {0xFFF4,0xFFF4,0xFFF4}, {0xFFF5,0xFFF5,0xFFF5},
1490 {0xFFF6,0xFFF6,0xFFF6}, {0xFFF7,0xFFF7,0xFFF7},
1491 {0xFFF8,0xFFF8,0xFFF8}, {0xFFF9,0xFFF9,0xFFF9},
1492 {0xFFFA,0xFFFA,0xFFFA}, {0xFFFB,0xFFFB,0xFFFB},
1493 {0xFFFC,0xFFFC,0xFFFC}, {0xFFFD,0xFFFD,0xFFFD},
1494 {0xFFFE,0xFFFE,0xFFFE}, {0xFFFF,0xFFFF,0xFFFF}
1497 namespace stardict_collation {
1498 MY_UNICASE_INFO *my_unicase_default[256]={
1499 plane00, plane01, plane02, plane03, plane04, plane05, NULL, NULL,
1500 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
1501 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
1502 NULL, NULL, NULL, NULL, NULL, NULL, plane1E, plane1F,
1503 NULL, plane21, NULL, NULL, plane24, NULL, NULL, NULL,
1504 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
1505 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
1506 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
1507 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
1508 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
1509 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
1510 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
1511 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
1512 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
1513 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
1514 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
1515 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
1516 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
1517 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
1518 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
1519 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
1520 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
1521 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
1522 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
1523 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
1524 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
1525 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
1526 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
1527 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
1528 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
1529 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
1530 NULL, NULL, NULL, NULL, NULL, NULL, NULL, planeFF
1538 Turkish lower/upper mapping:
1539 1. LOWER(0x0049 LATIN CAPITAL LETTER I) ->
1540 0x0131 LATIN SMALL LETTER DOTLESS I
1541 2. UPPER(0x0069 LATIN SMALL LETTER I) ->
1542 0x0130 LATIN CAPITAL LETTER I WITH DOT ABOVE
1545 static MY_UNICASE_INFO turk00[]=
1547 {0x0000,0x0000,0x0000}, {0x0001,0x0001,0x0001},
1548 {0x0002,0x0002,0x0002}, {0x0003,0x0003,0x0003},
1549 {0x0004,0x0004,0x0004}, {0x0005,0x0005,0x0005},
1550 {0x0006,0x0006,0x0006}, {0x0007,0x0007,0x0007},
1551 {0x0008,0x0008,0x0008}, {0x0009,0x0009,0x0009},
1552 {0x000A,0x000A,0x000A}, {0x000B,0x000B,0x000B},
1553 {0x000C,0x000C,0x000C}, {0x000D,0x000D,0x000D},
1554 {0x000E,0x000E,0x000E}, {0x000F,0x000F,0x000F},
1555 {0x0010,0x0010,0x0010}, {0x0011,0x0011,0x0011},
1556 {0x0012,0x0012,0x0012}, {0x0013,0x0013,0x0013},
1557 {0x0014,0x0014,0x0014}, {0x0015,0x0015,0x0015},
1558 {0x0016,0x0016,0x0016}, {0x0017,0x0017,0x0017},
1559 {0x0018,0x0018,0x0018}, {0x0019,0x0019,0x0019},
1560 {0x001A,0x001A,0x001A}, {0x001B,0x001B,0x001B},
1561 {0x001C,0x001C,0x001C}, {0x001D,0x001D,0x001D},
1562 {0x001E,0x001E,0x001E}, {0x001F,0x001F,0x001F},
1563 {0x0020,0x0020,0x0020}, {0x0021,0x0021,0x0021},
1564 {0x0022,0x0022,0x0022}, {0x0023,0x0023,0x0023},
1565 {0x0024,0x0024,0x0024}, {0x0025,0x0025,0x0025},
1566 {0x0026,0x0026,0x0026}, {0x0027,0x0027,0x0027},
1567 {0x0028,0x0028,0x0028}, {0x0029,0x0029,0x0029},
1568 {0x002A,0x002A,0x002A}, {0x002B,0x002B,0x002B},
1569 {0x002C,0x002C,0x002C}, {0x002D,0x002D,0x002D},
1570 {0x002E,0x002E,0x002E}, {0x002F,0x002F,0x002F},
1571 {0x0030,0x0030,0x0030}, {0x0031,0x0031,0x0031},
1572 {0x0032,0x0032,0x0032}, {0x0033,0x0033,0x0033},
1573 {0x0034,0x0034,0x0034}, {0x0035,0x0035,0x0035},
1574 {0x0036,0x0036,0x0036}, {0x0037,0x0037,0x0037},
1575 {0x0038,0x0038,0x0038}, {0x0039,0x0039,0x0039},
1576 {0x003A,0x003A,0x003A}, {0x003B,0x003B,0x003B},
1577 {0x003C,0x003C,0x003C}, {0x003D,0x003D,0x003D},
1578 {0x003E,0x003E,0x003E}, {0x003F,0x003F,0x003F},
1579 {0x0040,0x0040,0x0040}, {0x0041,0x0061,0x0041},
1580 {0x0042,0x0062,0x0042}, {0x0043,0x0063,0x0043},
1581 {0x0044,0x0064,0x0044}, {0x0045,0x0065,0x0045},
1582 {0x0046,0x0066,0x0046}, {0x0047,0x0067,0x0047},
1583 {0x0048,0x0068,0x0048}, {0x0049,0x0131,0x0049},
1584 {0x004A,0x006A,0x004A}, {0x004B,0x006B,0x004B},
1585 {0x004C,0x006C,0x004C}, {0x004D,0x006D,0x004D},
1586 {0x004E,0x006E,0x004E}, {0x004F,0x006F,0x004F},
1587 {0x0050,0x0070,0x0050}, {0x0051,0x0071,0x0051},
1588 {0x0052,0x0072,0x0052}, {0x0053,0x0073,0x0053},
1589 {0x0054,0x0074,0x0054}, {0x0055,0x0075,0x0055},
1590 {0x0056,0x0076,0x0056}, {0x0057,0x0077,0x0057},
1591 {0x0058,0x0078,0x0058}, {0x0059,0x0079,0x0059},
1592 {0x005A,0x007A,0x005A}, {0x005B,0x005B,0x005B},
1593 {0x005C,0x005C,0x005C}, {0x005D,0x005D,0x005D},
1594 {0x005E,0x005E,0x005E}, {0x005F,0x005F,0x005F},
1595 {0x0060,0x0060,0x0060}, {0x0041,0x0061,0x0041},
1596 {0x0042,0x0062,0x0042}, {0x0043,0x0063,0x0043},
1597 {0x0044,0x0064,0x0044}, {0x0045,0x0065,0x0045},
1598 {0x0046,0x0066,0x0046}, {0x0047,0x0067,0x0047},
1599 {0x0048,0x0068,0x0048}, {0x0130,0x0069,0x0049},
1600 {0x004A,0x006A,0x004A}, {0x004B,0x006B,0x004B},
1601 {0x004C,0x006C,0x004C}, {0x004D,0x006D,0x004D},
1602 {0x004E,0x006E,0x004E}, {0x004F,0x006F,0x004F},
1603 {0x0050,0x0070,0x0050}, {0x0051,0x0071,0x0051},
1604 {0x0052,0x0072,0x0052}, {0x0053,0x0073,0x0053},
1605 {0x0054,0x0074,0x0054}, {0x0055,0x0075,0x0055},
1606 {0x0056,0x0076,0x0056}, {0x0057,0x0077,0x0057},
1607 {0x0058,0x0078,0x0058}, {0x0059,0x0079,0x0059},
1608 {0x005A,0x007A,0x005A}, {0x007B,0x007B,0x007B},
1609 {0x007C,0x007C,0x007C}, {0x007D,0x007D,0x007D},
1610 {0x007E,0x007E,0x007E}, {0x007F,0x007F,0x007F},
1611 {0x0080,0x0080,0x0080}, {0x0081,0x0081,0x0081},
1612 {0x0082,0x0082,0x0082}, {0x0083,0x0083,0x0083},
1613 {0x0084,0x0084,0x0084}, {0x0085,0x0085,0x0085},
1614 {0x0086,0x0086,0x0086}, {0x0087,0x0087,0x0087},
1615 {0x0088,0x0088,0x0088}, {0x0089,0x0089,0x0089},
1616 {0x008A,0x008A,0x008A}, {0x008B,0x008B,0x008B},
1617 {0x008C,0x008C,0x008C}, {0x008D,0x008D,0x008D},
1618 {0x008E,0x008E,0x008E}, {0x008F,0x008F,0x008F},
1619 {0x0090,0x0090,0x0090}, {0x0091,0x0091,0x0091},
1620 {0x0092,0x0092,0x0092}, {0x0093,0x0093,0x0093},
1621 {0x0094,0x0094,0x0094}, {0x0095,0x0095,0x0095},
1622 {0x0096,0x0096,0x0096}, {0x0097,0x0097,0x0097},
1623 {0x0098,0x0098,0x0098}, {0x0099,0x0099,0x0099},
1624 {0x009A,0x009A,0x009A}, {0x009B,0x009B,0x009B},
1625 {0x009C,0x009C,0x009C}, {0x009D,0x009D,0x009D},
1626 {0x009E,0x009E,0x009E}, {0x009F,0x009F,0x009F},
1627 {0x00A0,0x00A0,0x00A0}, {0x00A1,0x00A1,0x00A1},
1628 {0x00A2,0x00A2,0x00A2}, {0x00A3,0x00A3,0x00A3},
1629 {0x00A4,0x00A4,0x00A4}, {0x00A5,0x00A5,0x00A5},
1630 {0x00A6,0x00A6,0x00A6}, {0x00A7,0x00A7,0x00A7},
1631 {0x00A8,0x00A8,0x00A8}, {0x00A9,0x00A9,0x00A9},
1632 {0x00AA,0x00AA,0x00AA}, {0x00AB,0x00AB,0x00AB},
1633 {0x00AC,0x00AC,0x00AC}, {0x00AD,0x00AD,0x00AD},
1634 {0x00AE,0x00AE,0x00AE}, {0x00AF,0x00AF,0x00AF},
1635 {0x00B0,0x00B0,0x00B0}, {0x00B1,0x00B1,0x00B1},
1636 {0x00B2,0x00B2,0x00B2}, {0x00B3,0x00B3,0x00B3},
1637 {0x00B4,0x00B4,0x00B4}, {0x039C,0x00B5,0x039C},
1638 {0x00B6,0x00B6,0x00B6}, {0x00B7,0x00B7,0x00B7},
1639 {0x00B8,0x00B8,0x00B8}, {0x00B9,0x00B9,0x00B9},
1640 {0x00BA,0x00BA,0x00BA}, {0x00BB,0x00BB,0x00BB},
1641 {0x00BC,0x00BC,0x00BC}, {0x00BD,0x00BD,0x00BD},
1642 {0x00BE,0x00BE,0x00BE}, {0x00BF,0x00BF,0x00BF},
1643 {0x00C0,0x00E0,0x0041}, {0x00C1,0x00E1,0x0041},
1644 {0x00C2,0x00E2,0x0041}, {0x00C3,0x00E3,0x0041},
1645 {0x00C4,0x00E4,0x0041}, {0x00C5,0x00E5,0x0041},
1646 {0x00C6,0x00E6,0x00C6}, {0x00C7,0x00E7,0x0043},
1647 {0x00C8,0x00E8,0x0045}, {0x00C9,0x00E9,0x0045},
1648 {0x00CA,0x00EA,0x0045}, {0x00CB,0x00EB,0x0045},
1649 {0x00CC,0x00EC,0x0049}, {0x00CD,0x00ED,0x0049},
1650 {0x00CE,0x00EE,0x0049}, {0x00CF,0x00EF,0x0049},
1651 {0x00D0,0x00F0,0x00D0}, {0x00D1,0x00F1,0x004E},
1652 {0x00D2,0x00F2,0x004F}, {0x00D3,0x00F3,0x004F},
1653 {0x00D4,0x00F4,0x004F}, {0x00D5,0x00F5,0x004F},
1654 {0x00D6,0x00F6,0x004F}, {0x00D7,0x00D7,0x00D7},
1655 {0x00D8,0x00F8,0x00D8}, {0x00D9,0x00F9,0x0055},
1656 {0x00DA,0x00FA,0x0055}, {0x00DB,0x00FB,0x0055},
1657 {0x00DC,0x00FC,0x0055}, {0x00DD,0x00FD,0x0059},
1658 {0x00DE,0x00FE,0x00DE}, {0x00DF,0x00DF,0x00DF},
1659 {0x00C0,0x00E0,0x0041}, {0x00C1,0x00E1,0x0041},
1660 {0x00C2,0x00E2,0x0041}, {0x00C3,0x00E3,0x0041},
1661 {0x00C4,0x00E4,0x0041}, {0x00C5,0x00E5,0x0041},
1662 {0x00C6,0x00E6,0x00C6}, {0x00C7,0x00E7,0x0043},
1663 {0x00C8,0x00E8,0x0045}, {0x00C9,0x00E9,0x0045},
1664 {0x00CA,0x00EA,0x0045}, {0x00CB,0x00EB,0x0045},
1665 {0x00CC,0x00EC,0x0049}, {0x00CD,0x00ED,0x0049},
1666 {0x00CE,0x00EE,0x0049}, {0x00CF,0x00EF,0x0049},
1667 {0x00D0,0x00F0,0x00D0}, {0x00D1,0x00F1,0x004E},
1668 {0x00D2,0x00F2,0x004F}, {0x00D3,0x00F3,0x004F},
1669 {0x00D4,0x00F4,0x004F}, {0x00D5,0x00F5,0x004F},
1670 {0x00D6,0x00F6,0x004F}, {0x00F7,0x00F7,0x00F7},
1671 {0x00D8,0x00F8,0x00D8}, {0x00D9,0x00F9,0x0055},
1672 {0x00DA,0x00FA,0x0055}, {0x00DB,0x00FB,0x0055},
1673 {0x00DC,0x00FC,0x0055}, {0x00DD,0x00FD,0x0059},
1674 {0x00DE,0x00FE,0x00DE}, {0x0178,0x00FF,0x0059}
1679 MY_UNICASE_INFO *my_unicase_turkish[256]=
1681 turk00, plane01, plane02, plane03, plane04, plane05, NULL, NULL,
1682 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
1683 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
1684 NULL, NULL, NULL, NULL, NULL, NULL, plane1E, plane1F,
1685 NULL, plane21, NULL, NULL, plane24, NULL, NULL, NULL,
1686 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
1687 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
1688 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
1689 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
1690 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
1691 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
1692 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
1693 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
1694 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
1695 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
1696 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
1697 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
1698 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
1699 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
1700 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
1701 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
1702 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
1703 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
1704 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
1705 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
1706 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
1707 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
1708 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
1709 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
1710 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
1711 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
1712 NULL, NULL, NULL, NULL, NULL, NULL, NULL, planeFF
1719 ** Compare string against string with wildcard
1720 ** This function is used in UTF8 and UCS2
1723 ** -1 if not matched with wildcard
1724 ** 1 if matched with wildcard
1727 int my_wildcmp_unicode(CHARSET_INFO *cs,
1728 const char *str,const char *str_end,
1729 const char *wildstr,const char *wildend,
1730 int escape, int w_one, int w_many,
1731 MY_UNICASE_INFO **weights)
1733 int result= -1; /* Not found, using wildcards */
1736 int (*mb_wc)(struct charset_info_st *cs, my_wc_t *wc,
1737 const unsigned char *s,const unsigned char *e);
1738 mb_wc= cs->cset->mb_wc;
1740 while (wildstr != wildend)
1745 if ((scan= mb_wc(cs, &w_wc, (const uchar*)wildstr,
1746 (const uchar*)wildend)) <= 0)
1749 if (w_wc == (my_wc_t)w_many)
1751 result= 1; /* Found an anchor char */
1756 if (w_wc == (my_wc_t)escape && wildstr < wildend)
1758 if ((scan= mb_wc(cs, &w_wc, (const uchar*)wildstr,
1759 (const uchar*)wildend)) <= 0)
1765 if ((scan= mb_wc(cs, &s_wc, (const uchar*)str,
1766 (const uchar*)str_end)) <= 0)
1770 if (!escaped && w_wc == (my_wc_t)w_one)
1772 result= 1; /* Found an anchor char */
1778 plane=(s_wc>>8) & 0xFF;
1779 s_wc = weights[plane] ? weights[plane][s_wc & 0xFF].sort : s_wc;
1780 plane=(w_wc>>8) & 0xFF;
1781 w_wc = weights[plane] ? weights[plane][w_wc & 0xFF].sort : w_wc;
1784 return 1; /* No match */
1786 if (wildstr == wildend)
1787 return (str != str_end); /* Match if both are at end */
1791 if (w_wc == (my_wc_t)w_many)
1792 { /* Found w_many */
1794 /* Remove any '%' and '_' from the wild search string */
1795 for ( ; wildstr != wildend ; )
1797 if ((scan= mb_wc(cs, &w_wc, (const uchar*)wildstr,
1798 (const uchar*)wildend)) <= 0)
1801 if (w_wc == (my_wc_t)w_many)
1807 if (w_wc == (my_wc_t)w_one)
1810 if ((scan= mb_wc(cs, &s_wc, (const uchar*)str,
1811 (const uchar*)str_end)) <=0)
1816 break; /* Not a wild character */
1819 if (wildstr == wildend)
1820 return 0; /* Ok if w_many is last */
1825 if ((scan= mb_wc(cs, &w_wc, (const uchar*)wildstr,
1826 (const uchar*)wildend)) <=0)
1830 if (w_wc == (my_wc_t)escape)
1832 if (wildstr < wildend)
1834 if ((scan= mb_wc(cs, &w_wc, (const uchar*)wildstr,
1835 (const uchar*)wildend)) <=0)
1843 /* Skip until the first character from wildstr is found */
1844 while (str != str_end)
1846 if ((scan= mb_wc(cs, &s_wc, (const uchar*)str,
1847 (const uchar*)str_end)) <=0)
1851 plane=(s_wc>>8) & 0xFF;
1852 s_wc = weights[plane] ? weights[plane][s_wc & 0xFF].sort : s_wc;
1853 plane=(w_wc>>8) & 0xFF;
1854 w_wc = weights[plane] ? weights[plane][w_wc & 0xFF].sort : w_wc;
1865 result= my_wildcmp_unicode(cs, str, str_end, wildstr, wildend,
1866 escape, w_one, w_many,
1873 return (str != str_end ? 1 : 0);
1881 #ifdef HAVE_CHARSET_utf8
1885 We consider bytes with code more than 127 as a letter.
1886 This garantees that word boundaries work fine with regular
1887 expressions. Note, there is no need to mark byte 255 as a
1888 letter, it is illegal byte in UTF8.
1890 static uchar ctype_utf8[] = {
1892 32, 32, 32, 32, 32, 32, 32, 32, 32, 40, 40, 40, 40, 40, 32, 32,
1893 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
1894 72, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
1895 132,132,132,132,132,132,132,132,132,132, 16, 16, 16, 16, 16, 16,
1896 16,129,129,129,129,129,129, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1897 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 16, 16, 16, 16, 16,
1898 16,130,130,130,130,130,130, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1899 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 16, 16, 16, 16, 32,
1900 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
1901 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
1902 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
1903 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
1904 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
1905 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
1906 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
1907 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0
1910 /* The below are taken from usa7 implementation */
1912 static uchar to_lower_utf8[] = {
1913 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
1914 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
1915 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
1916 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
1917 64, 97, 98, 99,100,101,102,103,104,105,106,107,108,109,110,111,
1918 112,113,114,115,116,117,118,119,120,121,122, 91, 92, 93, 94, 95,
1919 96, 97, 98, 99,100,101,102,103,104,105,106,107,108,109,110,111,
1920 112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,
1921 128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,
1922 144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,
1923 160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,
1924 176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,
1925 192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,
1926 208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,
1927 224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,
1928 240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255
1931 static uchar to_upper_utf8[] = {
1932 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
1933 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
1934 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
1935 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
1936 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
1937 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
1938 96, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
1939 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90,123,124,125,126,127,
1940 128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,
1941 144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,
1942 160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,
1943 176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,
1944 192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,
1945 208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,
1946 224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,
1947 240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255
1951 static inline int bincmp(const uchar *s, const uchar *se,
1952 const uchar *t, const uchar *te)
1954 int slen= (int) (se-s), tlen= (int) (te-t);
1955 int len=min(slen,tlen);
1956 int cmp= memcmp(s,t,len);
1957 return cmp ? cmp : slen-tlen;
1960 static int my_utf8_uni(CHARSET_INFO *cs __attribute__((unused)),
1961 my_wc_t * pwc, const uchar *s, const uchar *e)
1966 return MY_CS_TOOSMALL;
1978 if (s+2 > e) /* We need 2 characters */
1979 return MY_CS_TOOSMALL2;
1981 if (!((s[1] ^ 0x80) < 0x40))
1984 *pwc = ((my_wc_t) (c & 0x1f) << 6) | (my_wc_t) (s[1] ^ 0x80);
1989 if (s+3 > e) /* We need 3 characters */
1990 return MY_CS_TOOSMALL3;
1992 if (!((s[1] ^ 0x80) < 0x40 && (s[2] ^ 0x80) < 0x40 && (c >= 0xe1 || s[1] >= 0xa0)))
1995 *pwc = ((my_wc_t) (c & 0x0f) << 12) |
1996 ((my_wc_t) (s[1] ^ 0x80) << 6) |
1997 (my_wc_t) (s[2] ^ 0x80);
2001 #ifdef UNICODE_32BIT
2002 else if (c < 0xf8 && sizeof(my_wc_t)*8 >= 32)
2004 if (s+4 > e) /* We need 4 characters */
2005 return MY_CS_TOOSMALL4;
2007 if (!((s[1] ^ 0x80) < 0x40 &&
2008 (s[2] ^ 0x80) < 0x40 &&
2009 (s[3] ^ 0x80) < 0x40 &&
2010 (c >= 0xf1 || s[1] >= 0x90)))
2013 *pwc = ((my_wc_t) (c & 0x07) << 18) |
2014 ((my_wc_t) (s[1] ^ 0x80) << 12) |
2015 ((my_wc_t) (s[2] ^ 0x80) << 6) |
2016 (my_wc_t) (s[3] ^ 0x80);
2020 else if (c < 0xfc && sizeof(my_wc_t)*8 >= 32)
2022 if (s+5 >e) /* We need 5 characters */
2023 return MY_CS_TOOSMALL5;
2025 if (!((s[1] ^ 0x80) < 0x40 &&
2026 (s[2] ^ 0x80) < 0x40 &&
2027 (s[3] ^ 0x80) < 0x40 &&
2028 (s[4] ^ 0x80) < 0x40 &&
2029 (c >= 0xf9 || s[1] >= 0x88)))
2032 *pwc = ((my_wc_t) (c & 0x03) << 24) |
2033 ((my_wc_t) (s[1] ^ 0x80) << 18) |
2034 ((my_wc_t) (s[2] ^ 0x80) << 12) |
2035 ((my_wc_t) (s[3] ^ 0x80) << 6) |
2036 (my_wc_t) (s[4] ^ 0x80);
2039 else if (c < 0xfe && sizeof(my_wc_t)*8 >= 32)
2041 if ( s+6 >e ) /* We need 6 characters */
2042 return MY_CS_TOOSMALL6;
2044 if (!((s[1] ^ 0x80) < 0x40 &&
2045 (s[2] ^ 0x80) < 0x40 &&
2046 (s[3] ^ 0x80) < 0x40 &&
2047 (s[4] ^ 0x80) < 0x40 &&
2048 (s[5] ^ 0x80) < 0x40 &&
2049 (c >= 0xfd || s[1] >= 0x84)))
2052 *pwc = ((my_wc_t) (c & 0x01) << 30)
2053 | ((my_wc_t) (s[1] ^ 0x80) << 24)
2054 | ((my_wc_t) (s[2] ^ 0x80) << 18)
2055 | ((my_wc_t) (s[3] ^ 0x80) << 12)
2056 | ((my_wc_t) (s[4] ^ 0x80) << 6)
2057 | (my_wc_t) (s[5] ^ 0x80);
2065 static int my_uni_utf8 (CHARSET_INFO *cs __attribute__((unused)) ,
2066 my_wc_t wc, uchar *r, uchar *e)
2071 return MY_CS_TOOSMALL;
2075 else if (wc < 0x800)
2077 else if (wc < 0x10000)
2079 #ifdef UNICODE_32BIT
2080 else if (wc < 0x200000)
2082 else if (wc < 0x4000000)
2084 else if (wc <= 0x7fffffff)
2087 else return MY_CS_ILUNI;
2090 e is a character after the string r, not the last character of it.
2091 Because of it (r+count > e), not (r+count-1 >e )
2094 return MY_CS_TOOSMALLN(count);
2097 /* Fall through all cases!!! */
2098 #ifdef UNICODE_32BIT
2099 case 6: r[5] = (uchar) (0x80 | (wc & 0x3f)); wc = wc >> 6; wc |= 0x4000000;
2100 case 5: r[4] = (uchar) (0x80 | (wc & 0x3f)); wc = wc >> 6; wc |= 0x200000;
2101 case 4: r[3] = (uchar) (0x80 | (wc & 0x3f)); wc = wc >> 6; wc |= 0x10000;
2103 case 3: r[2] = (uchar) (0x80 | (wc & 0x3f)); wc = wc >> 6; wc |= 0x800;
2104 case 2: r[1] = (uchar) (0x80 | (wc & 0x3f)); wc = wc >> 6; wc |= 0xc0;
2105 case 1: r[0] = (uchar) wc;
2111 static uint my_caseup_utf8(CHARSET_INFO *cs, char *src, uint srclen,
2112 char *dst, uint dstlen)
2116 char *srcend= src + srclen, *dstend= dst + dstlen, *dst0= dst;
2117 MY_UNICASE_INFO **uni_plane= cs->caseinfo;
2118 //DBUG_ASSERT(src != dst || cs->caseup_multiply == 1);
2120 while ((src < srcend) &&
2121 (srcres= my_utf8_uni(cs, &wc, (uchar *) src, (uchar*) srcend)) > 0)
2123 int plane= (wc>>8) & 0xFF;
2124 wc= uni_plane[plane] ? uni_plane[plane][wc & 0xFF].toupper : wc;
2125 if ((dstres= my_uni_utf8(cs, wc, (uchar*) dst, (uchar*) dstend)) <= 0)
2130 return (uint) (dst - dst0);
2133 static void my_hash_sort_utf8(CHARSET_INFO *cs, const uchar *s, uint slen,
2134 ulong *n1, ulong *n2)
2138 const uchar *e=s+slen;
2139 MY_UNICASE_INFO **uni_plane= cs->caseinfo;
2142 Remove end space. We have to do this to be able to compare
2143 'A ' and 'A' as identical
2145 while (e > s && e[-1] == ' ')
2148 while ((s < e) && (res=my_utf8_uni(cs,&wc, (uchar *)s, (uchar*)e))>0 )
2150 int plane = (wc>>8) & 0xFF;
2151 wc = uni_plane[plane] ? uni_plane[plane][wc & 0xFF].sort : wc;
2152 n1[0]^= (((n1[0] & 63)+n2[0])*(wc & 0xFF))+ (n1[0] << 8);
2154 n1[0]^= (((n1[0] & 63)+n2[0])*(wc >> 8))+ (n1[0] << 8);
2161 static void my_caseup_str_utf8(CHARSET_INFO * cs, char * s)
2163 uint len= (uint) strlen(s);
2164 my_caseup_utf8(cs, s, len, s, len);
2168 static uint my_casedn_utf8(CHARSET_INFO *cs, char *src, uint srclen,
2169 char *dst, uint dstlen)
2173 char *srcend= src + srclen, *dstend= dst + dstlen, *dst0= dst;
2174 MY_UNICASE_INFO **uni_plane= cs->caseinfo;
2175 //DBUG_ASSERT(src != dst || cs->casedn_multiply == 1);
2177 while ((src < srcend) &&
2178 (srcres= my_utf8_uni(cs, &wc, (uchar*) src, (uchar*)srcend)) > 0)
2180 int plane= (wc>>8) & 0xFF;
2181 wc= uni_plane[plane] ? uni_plane[plane][wc & 0xFF].tolower : wc;
2182 if ((dstres= my_uni_utf8(cs, wc, (uchar*) dst, (uchar*) dstend)) <= 0)
2187 return (uint) (dst - dst0);
2190 static void my_casedn_str_utf8(CHARSET_INFO *cs, char * s)
2192 uint len= (uint) strlen(s);
2193 my_casedn_utf8(cs, s, len, s, len);
2198 static int my_strnncoll_utf8(CHARSET_INFO *cs,
2199 const uchar *s, uint slen,
2200 const uchar *t, uint tlen,
2201 my_bool t_is_prefix)
2205 const uchar *se=s+slen;
2206 const uchar *te=t+tlen;
2207 MY_UNICASE_INFO **uni_plane= cs->caseinfo;
2209 while ( s < se && t < te )
2212 s_res=my_utf8_uni(cs,&s_wc, s, se);
2213 t_res=my_utf8_uni(cs,&t_wc, t, te);
2215 if ( s_res <= 0 || t_res <= 0 )
2217 /* Incorrect string, compare byte by byte value */
2218 return bincmp(s, se, t, te);
2221 plane=(s_wc>>8) & 0xFF;
2222 s_wc = uni_plane[plane] ? uni_plane[plane][s_wc & 0xFF].sort : s_wc;
2223 plane=(t_wc>>8) & 0xFF;
2224 t_wc = uni_plane[plane] ? uni_plane[plane][t_wc & 0xFF].sort : t_wc;
2227 return s_wc > t_wc ? 1 : -1;
2233 return (int) (t_is_prefix ? t-te : ((se-s) - (te-t)));
2238 Compare strings, discarding end space
2241 my_strnncollsp_utf8()
2242 cs character set handler
2243 a First string to compare
2244 a_length Length of 'a'
2245 b Second string to compare
2246 b_length Length of 'b'
2247 diff_if_only_endspace_difference
2248 Set to 1 if the strings should be regarded as different
2249 if they only difference in end space
2252 If one string is shorter as the other, then we space extend the other
2253 so that the strings have equal length.
2255 This will ensure that the following things hold:
2267 /*static int my_strnncollsp_utf8(CHARSET_INFO *cs,
2268 const uchar *s, uint slen,
2269 const uchar *t, uint tlen,
2270 my_bool diff_if_only_endspace_difference)*/
2271 int my_strnncollsp_utf8(const uchar *s, uint slen,
2272 const uchar *t, uint tlen,
2273 my_bool diff_if_only_endspace_difference)
2275 int s_res, t_res, res;
2277 const uchar *se= s+slen, *te= t+tlen;
2278 //MY_UNICASE_INFO **uni_plane= cs->caseinfo;
2279 MY_UNICASE_INFO **uni_plane= my_unicase_default;
2281 #ifndef VARCHAR_WITH_DIFF_ENDSPACE_ARE_DIFFERENT_FOR_UNIQUE
2282 diff_if_only_endspace_difference= 0;
2285 while ( s < se && t < te )
2288 s_res=my_utf8_uni(&s_wc, s, se);
2289 t_res=my_utf8_uni(&t_wc, t, te);
2291 if ( s_res <= 0 || t_res <= 0 )
2293 /* Incorrect string, compare byte by byte value */
2294 return bincmp(s, se, t, te);
2297 plane=(s_wc>>8) & 0xFF;
2298 s_wc = uni_plane[plane] ? uni_plane[plane][s_wc & 0xFF].sort : s_wc;
2299 plane=(t_wc>>8) & 0xFF;
2300 t_wc = uni_plane[plane] ? uni_plane[plane][t_wc & 0xFF].sort : t_wc;
2303 return s_wc > t_wc ? 1 : -1;
2310 slen= (uint) (se-s);
2311 tlen= (uint) (te-t);
2317 if (diff_if_only_endspace_difference)
2318 res= 1; /* Assume 'a' is bigger */
2328 This following loop uses the fact that in UTF-8
2329 all multibyte characters are greater than space,
2330 and all multibyte head characters are greater than
2331 space. It means if we meet a character greater
2332 than space, it always means that the longer string
2333 is greater. So we can reuse the same loop from the
2334 8bit version, without having to process full multibute
2337 for ( ; s < se; s++)
2340 return (*s < ' ') ? -swap : swap;
2348 Compare 0-terminated UTF8 strings.
2351 my_strcasecmp_utf8()
2352 cs character set handler
2353 s First 0-terminated string to compare
2354 t Second 0-terminated string to compare
2359 - negative number if s < t
2360 - positive number if s > t
2361 - 0 is the strings are equal
2365 int my_strcasecmp_utf8(CHARSET_INFO *cs, const char *s, const char *t)
2367 MY_UNICASE_INFO **uni_plane= cs->caseinfo;
2368 while (s[0] && t[0])
2372 if ((uchar) s[0] < 128)
2375 s[0] is between 0 and 127.
2376 It represents a single byte character.
2377 Convert it into weight according to collation.
2379 s_wc= plane00[(uchar) s[0]].tolower;
2387 Scan a multibyte character.
2389 In the future it is worth to write a special version of my_utf8_uni()
2390 for 0-terminated strings which will not take in account length. Now
2391 we call the regular version of my_utf8_uni() with s+3 in the
2392 last argument. s+3 is enough to scan any multibyte sequence.
2394 Calling the regular version of my_utf8_uni is safe for 0-terminated
2395 strings: we will never lose the end of the string:
2396 If we have 0 character in the middle of a multibyte sequence,
2397 then my_utf8_uni will always return a negative number, so the
2401 res= my_utf8_uni(cs,&s_wc, (const uchar*)s, (const uchar*) s + 3);
2404 In the case of wrong multibyte sequence we will
2405 call strcmp() for byte-to-byte comparison.
2408 return strcmp(s, t);
2411 /* Convert Unicode code into weight according to collation */
2412 plane=(s_wc>>8) & 0xFF;
2413 s_wc = uni_plane[plane] ? uni_plane[plane][s_wc & 0xFF].tolower : s_wc;
2417 /* Do the same for the second string */
2419 if ((uchar) t[0] < 128)
2421 /* Convert single byte character into weight */
2422 t_wc= plane00[(uchar) t[0]].tolower;
2428 int res=my_utf8_uni(cs,&t_wc, (const uchar*)t, (const uchar*) t + 3);
2430 return strcmp(s, t);
2433 /* Convert code into weight */
2434 plane=(t_wc>>8) & 0xFF;
2435 t_wc = uni_plane[plane] ? uni_plane[plane][t_wc & 0xFF].tolower : t_wc;
2438 /* Now we have two weights, let's compare them */
2440 return ((int) s_wc) - ((int) t_wc);
2442 return ((int)(uchar)s[0]) - ((int) (uchar) t[0]);
2447 int my_wildcmp_utf8(CHARSET_INFO *cs,
2448 const char *str,const char *str_end,
2449 const char *wildstr,const char *wildend,
2450 int escape, int w_one, int w_many)
2452 MY_UNICASE_INFO **uni_plane= cs->caseinfo;
2453 return my_wildcmp_unicode(cs,str,str_end,wildstr,wildend,
2454 escape,w_one,w_many,uni_plane);
2459 uint my_strnxfrmlen_utf8(CHARSET_INFO *cs __attribute__((unused)), uint len)
2461 return (len * 2 + 2) / 3;
2464 static int my_strnxfrm_utf8(CHARSET_INFO *cs,
2465 uchar *dst, uint dstlen,
2466 const uchar *src, uint srclen)
2471 uchar *de= dst + dstlen;
2472 uchar *de_beg= de - 1;
2473 const uchar *se = src + srclen;
2474 MY_UNICASE_INFO **uni_plane= cs->caseinfo;
2476 while (dst < de_beg)
2478 if ((res=my_utf8_uni(cs,&wc, src, se)) <= 0)
2482 plane=(wc>>8) & 0xFF;
2483 wc = uni_plane[plane] ? uni_plane[plane][wc & 0xFF].sort : wc;
2485 *dst++= (uchar)(wc >> 8);
2486 *dst++= (uchar)(wc & 0xFF);
2490 while (dst < de_beg) /* Fill the tail with keys for space character */
2496 if (dst < de) /* Clear the last byte, if "dstlen" was an odd number */
2502 static int my_ismbchar_utf8(CHARSET_INFO *cs,const char *b, const char *e)
2505 int res=my_utf8_uni(cs,&wc, (const uchar*)b, (const uchar*)e);
2506 return (res>1) ? res : 0;
2509 static int my_mbcharlen_utf8(CHARSET_INFO *cs __attribute__((unused)) , uint c)
2514 return 0; /* Illegal mb head */
2519 #ifdef UNICODE_32BIT
2527 return 0; /* Illegal mb head */;
2531 static MY_COLLATION_HANDLER my_collation_ci_handler =
2535 //my_strnncollsp_utf8,
2537 //my_strnxfrmlen_utf8,
2540 //my_strcasecmp_utf8,
2542 //my_hash_sort_utf8,
2543 //my_propagate_complex
2546 namespace stardict_collation {
2548 MY_CHARSET_HANDLER my_charset_utf8_handler=
2552 //my_mbcharlen_utf8,
2555 //my_well_formed_len_mb,
2561 //my_caseup_str_utf8,
2562 //my_casedn_str_utf8,
2566 //my_long10_to_str_8bit,
2567 //my_longlong10_to_str_8bit,
2572 //my_strntoull_8bit,
2574 //my_strtoll10_8bit,
2578 CHARSET_INFO my_charset_utf8_general_ci=
2580 //33,0,0, /* number */
2581 //MY_CS_COMPILED|MY_CS_PRIMARY|MY_CS_STRNXFRM|MY_CS_UNICODE, /* state */
2582 //"utf8", /* cs name */
2583 //"utf8_general_ci", /* name */
2585 NULL, /* tailoring */
2586 //ctype_utf8, /* ctype */
2587 //to_lower_utf8, /* to_lower */
2588 //to_upper_utf8, /* to_upper */
2589 //to_upper_utf8, /* sort_order */
2591 NULL, /* contractions */
2592 NULL, /* sort_order_big*/
2593 //NULL, /* tab_to_uni */
2594 //NULL, /* tab_from_uni */
2595 my_unicase_default, /* caseinfo */
2596 //NULL, /* state_map */
2597 //NULL, /* ident_map */
2598 //1, /* strxfrm_multiply */
2599 //1, /* caseup_multiply */
2600 //1, /* casedn_multiply */
2603 //0, /* min_sort_char */
2604 //0xFFFF, /* max_sort_char */
2605 //' ', /* pad char */
2606 //0, /* escape_with_backslash_is_dangerous */
2607 &my_charset_utf8_handler,
2608 &my_collation_ci_handler
2612 CHARSET_INFO my_charset_utf8_bin=
2614 //83,0,0, /* number */
2615 //MY_CS_COMPILED|MY_CS_BINSORT|MY_CS_UNICODE, /* state */
2616 //"utf8", /* cs name */
2617 //"utf8_bin", /* name */
2619 NULL, /* tailoring */
2620 //ctype_utf8, /* ctype */
2621 //to_lower_utf8, /* to_lower */
2622 //to_upper_utf8, /* to_upper */
2623 NULL, /* sort_order */
2624 NULL, /* contractions */
2625 NULL, /* sort_order_big*/
2626 //NULL, /* tab_to_uni */
2627 //NULL, /* tab_from_uni */
2628 my_unicase_default, /* caseinfo */
2629 //NULL, /* state_map */
2630 //NULL, /* ident_map */
2631 //1, /* strxfrm_multiply */
2632 //1, /* caseup_multiply */
2633 //1, /* casedn_multiply */
2636 //0, /* min_sort_char */
2637 //255, /* max_sort_char */
2638 //' ', /* pad char */
2639 //0, /* escape_with_backslash_is_dangerous */
2640 &my_charset_utf8_handler,
2641 &my_collation_mb_bin_handler
2646 //#ifdef HAVE_UTF8_GENERAL_CS
2650 * These functions bacically do the same as their original, except
2651 * that they return 0 only when two comparing unicode strings are
2652 * strictly the same in case-sensitive way. See "save_diff" local
2653 * variable to what they actually do.
2656 static int my_strnncoll_utf8_cs(CHARSET_INFO *cs,
2657 const uchar *s, uint slen,
2658 const uchar *t, uint tlen,
2659 my_bool t_is_prefix)
2663 const uchar *se=s+slen;
2664 const uchar *te=t+tlen;
2668 while ( s < se && t < te )
2671 s_res=my_utf8_uni(cs,&s_wc, s, se);
2672 t_res=my_utf8_uni(cs,&t_wc, t, te);
2674 if ( s_res <= 0 || t_res <= 0 )
2677 /* Incorrect string, compare by char value */
2678 return ((int)s[0]-(int)t[0]);
2681 if ( save_diff == 0 )
2683 save_diff = ((int)s_wc) - ((int)t_wc);
2685 plane=(s_wc>>8) & 0xFF;
2686 s_wc = uni_plane[plane] ? uni_plane[plane][s_wc & 0xFF].sort : s_wc;
2687 plane=(t_wc>>8) & 0xFF;
2688 t_wc = uni_plane[plane] ? uni_plane[plane][t_wc & 0xFF].sort : t_wc;
2691 return ((int) s_wc) - ((int) t_wc);
2697 diff = ( (se-s) - (te-t) );
2698 return t_is_prefix ? t-te : ((diff == 0) ? save_diff : diff);
2701 static int my_strnncollsp_utf8_cs(CHARSET_INFO *cs,
2702 const uchar *s, uint slen,
2703 const uchar *t, uint tlen)
2707 const uchar *se= s+slen;
2708 const uchar *te= t+tlen;
2711 while ( s < se && t < te )
2714 s_res=my_utf8_uni(cs,&s_wc, s, se);
2715 t_res=my_utf8_uni(cs,&t_wc, t, te);
2717 if ( s_res <= 0 || t_res <= 0 )
2719 /* Incorrect string, compare by char value */
2720 return ((int)s[0]-(int)t[0]);
2723 if ( save_diff == 0 )
2725 save_diff = ((int)s_wc) - ((int)t_wc);
2727 plane=(s_wc>>8) & 0xFF;
2728 s_wc = uni_plane[plane] ? uni_plane[plane][s_wc & 0xFF].sort : s_wc;
2729 plane=(t_wc>>8) & 0xFF;
2730 t_wc = uni_plane[plane] ? uni_plane[plane][t_wc & 0xFF].sort : t_wc;
2733 return ((int) s_wc) - ((int) t_wc);
2754 This following loop uses the fact that in UTF-8
2755 all multibyte characters are greater than space,
2756 and all multibyte head characters are greater than
2757 space. It means if we meet a character greater
2758 than space, it always means that the longer string
2759 is greater. So we can reuse the same loop from the
2760 8bit version, without having to process full multibute
2763 for ( ; s < se; s++)
2766 return ((int)*s - (int) ' ') ^ swap;
2772 static MY_COLLATION_HANDLER my_collation_cs_handler =
2775 my_strnncoll_utf8_cs,
2776 my_strnncollsp_utf8_cs,
2778 my_like_range_simple,
2786 CHARSET_INFO my_charset_utf8_general_cs=
2788 254,0,0, /* number */
2789 MY_CS_COMPILED|MY_CS_UNICODE, /* state */
2790 "utf8", /* cs name */
2791 "utf8_general_cs", /* name */
2793 NULL, /* tailoring */
2794 ctype_utf8, /* ctype */
2795 to_lower_utf8, /* to_lower */
2796 to_upper_utf8, /* to_upper */
2797 to_upper_utf8, /* sort_order */
2798 NULL, /* contractions */
2799 NULL, /* sort_order_big*/
2800 NULL, /* tab_to_uni */
2801 NULL, /* tab_from_uni */
2802 my_unicase_default, /* caseinfo */
2803 NULL, /* state_map */
2804 NULL, /* ident_map */
2805 1, /* strxfrm_multiply */
2806 1, /* caseup_multiply */
2807 1, /* casedn_multiply */
2810 0, /* min_sort_char */
2811 255, /* max_sort_char */
2813 0, /* escape_with_backslash_is_dangerous */
2814 &my_charset_utf8_handler,
2815 &my_collation_cs_handler
2817 #endif /* Cybozu Hack */
2823 File system encoding components:
2825 Code range Pattern Number Used Unused Blocks
2826 -----------------------------------------------------------------------------
2827 00C0..017F [.][0..4][g..z] 5*20= 100 97 3 Latin1 Supplement + Ext A
2828 0370..03FF [.][5..9][g..z] 5*20= 100 88 12 Greek + Coptic
2829 0400..052F [.][g..z][0..6] 20*7= 140 140 137 Cyrillic
2830 0530..058F [.][g..z][7..8] 20*2= 40 38 2 Armenian
2831 2160..217F [.][g..z][9] 20*1= 20 16 4 Number Forms
2832 0180..02AF [.][g..z][a..k] 28*11=220 203 17 Latin Ext B + IPA
2833 1E00..0EFF [.][g..z][l..r] 20*7= 140 136 4 Latin Additional Extended
2834 1F00..1FFF [.][g..z][s..z] 20*8= 160 144 16 Greek Extended
2835 .... .... [.][a..f][g..z] 6*20= 120 0 120 RESERVED
2836 24B6..24E9 [.][@][a..z] 26 26 0 Enclosed Alphanumerics
2837 FF21..FF5A [.][a..z][@] 26 26 0 Full Width forms
2839 All other characters are encoded using five bytes:
2841 [.][0..9a..z][0..9a..z][0..9a..z][0..9a..z]
2846 static uint16 touni[5994]=
2848 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
2849 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
2850 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x00C0,
2851 0x00C1,0x00C2,0x00C3,0x00C4,0x00C5,0x00C6,0x00C7,0x00C8,
2852 0x00C9,0x00CA,0x00CB,0x00CC,0x00CD,0x00CE,0x00CF,0x00D0,
2853 0x00D1,0x00D2,0x00D3,0x0000,0x0000,0x0000,0x0000,0x0000,
2854 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x00E0,
2855 0x00E1,0x00E2,0x00E3,0x00E4,0x00E5,0x00E6,0x00E7,0x00E8,
2856 0x00E9,0x00EA,0x00EB,0x00EC,0x00ED,0x00EE,0x00EF,0x00F0,
2857 0x00F1,0x00F2,0x00F3,0x0000,0x0000,0x0000,0x0000,0x0000,
2858 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
2859 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
2860 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x00D4,
2861 0x00D5,0x00D6,0x0000,0x00D8,0x00D9,0x00DA,0x00DB,0x00DC,
2862 0x00DD,0x00DE,0x0178,0x0100,0x0102,0x0104,0x0106,0x0108,
2863 0x010A,0x010C,0x010E,0x0000,0x0000,0x0000,0x0000,0x0000,
2864 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x00F4,
2865 0x00F5,0x00F6,0x00DF,0x00F8,0x00F9,0x00FA,0x00FB,0x00FC,
2866 0x00FD,0x00FE,0x00FF,0x0101,0x0103,0x0105,0x0107,0x0109,
2867 0x010B,0x010D,0x010F,0x0000,0x0000,0x0000,0x0000,0x0000,
2868 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
2869 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
2870 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0110,
2871 0x0112,0x0114,0x0116,0x0118,0x011A,0x011C,0x011E,0x0120,
2872 0x0122,0x0124,0x0126,0x0128,0x012A,0x012C,0x012E,0x0000,
2873 0x0132,0x0134,0x0136,0x0000,0x0000,0x0000,0x0000,0x0000,
2874 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0111,
2875 0x0113,0x0115,0x0117,0x0119,0x011B,0x011D,0x011F,0x0121,
2876 0x0123,0x0125,0x0127,0x0129,0x012B,0x012D,0x012F,0x0131,
2877 0x0133,0x0135,0x0137,0x0000,0x0000,0x0000,0x0000,0x0000,
2878 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
2879 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
2880 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
2881 0x0139,0x013B,0x013D,0x013F,0x0141,0x0143,0x0145,0x0147,
2882 0x0000,0x014A,0x014C,0x014E,0x0150,0x0152,0x0154,0x0156,
2883 0x0158,0x015A,0x015C,0x0000,0x0000,0x0000,0x0000,0x0000,
2884 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0138,
2885 0x013A,0x013C,0x013E,0x0140,0x0142,0x0144,0x0146,0x0148,
2886 0x0149,0x014B,0x014D,0x014F,0x0151,0x0153,0x0155,0x0157,
2887 0x0159,0x015B,0x015D,0x0000,0x0000,0x0000,0x0000,0x0000,
2888 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
2889 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
2890 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x015E,
2891 0x0160,0x0162,0x0164,0x0166,0x0168,0x016A,0x016C,0x016E,
2892 0x0170,0x0172,0x0174,0x0176,0x0179,0x017B,0x017D,0x0000,
2893 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
2894 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x015F,
2895 0x0161,0x0163,0x0165,0x0167,0x0169,0x016B,0x016D,0x016F,
2896 0x0171,0x0173,0x0175,0x0177,0x017A,0x017C,0x017E,0x017F,
2897 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
2898 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
2899 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
2900 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
2901 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
2902 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
2903 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
2904 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
2905 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
2906 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
2907 0x0000,0x0390,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
2908 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
2909 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
2910 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0386,
2911 0x0388,0x0389,0x038A,0x0000,0x0391,0x0000,0x0393,0x0394,
2912 0x0395,0x0396,0x0397,0x0000,0x0399,0x0000,0x039B,0x039C,
2913 0x039D,0x039E,0x039F,0x0000,0x0000,0x0000,0x0000,0x0000,
2914 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x03AC,
2915 0x03AD,0x03AE,0x03AF,0x03B0,0x03B1,0x03B2,0x03B3,0x03B4,
2916 0x03B5,0x03B6,0x03B7,0x03B8,0x03B9,0x03BA,0x03BB,0x03BC,
2917 0x03BD,0x03BE,0x03BF,0x0000,0x0000,0x0000,0x0000,0x0000,
2918 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
2919 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
2920 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
2921 0x03A1,0x0000,0x0000,0x03A4,0x03A5,0x0000,0x03A7,0x03A8,
2922 0x03A9,0x03AA,0x03AB,0x038C,0x038E,0x038F,0x0000,0x0392,
2923 0x0398,0x03D2,0x03D3,0x0000,0x0000,0x0000,0x0000,0x0000,
2924 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x03C0,
2925 0x03C1,0x03C2,0x03C3,0x03C4,0x03C5,0x03C6,0x03C7,0x03C8,
2926 0x03C9,0x03CA,0x03CB,0x03CC,0x03CD,0x03CE,0x0000,0x03D0,
2927 0x03D1,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
2928 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
2929 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
2930 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x03D4,
2931 0x03A6,0x03A0,0x0000,0x0000,0x03DA,0x03DC,0x03DE,0x03E0,
2932 0x03E2,0x03E4,0x03E6,0x03E8,0x03EA,0x03EC,0x03EE,0x039A,
2933 0x0000,0x03A3,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
2934 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
2935 0x03D5,0x03D6,0x03D7,0x03D9,0x03DB,0x03DD,0x03DF,0x03E1,
2936 0x03E3,0x03E5,0x03E7,0x03E9,0x03EB,0x03ED,0x03EF,0x03F0,
2937 0x03F1,0x03F2,0x03F3,0x0000,0x0000,0x0000,0x0000,0x0000,
2938 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
2939 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
2940 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
2941 0x0000,0x0000,0x0000,0x0000,0x03FD,0x03FE,0x03FF,0x0000,
2942 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
2943 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
2944 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x03F5,
2945 0x03F6,0x03F8,0x03FB,0x03FC,0x0000,0x0000,0x0000,0x0000,
2946 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
2947 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
2948 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
2949 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
2950 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
2951 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
2952 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
2953 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
2954 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
2955 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
2956 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
2957 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
2958 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
2959 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
2960 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
2961 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
2962 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
2963 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
2964 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
2965 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
2966 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
2967 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
2968 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
2969 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
2970 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
2971 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
2972 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
2973 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
2974 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
2975 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
2976 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
2977 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
2978 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
2979 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
2980 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
2981 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
2982 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
2983 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
2984 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
2985 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
2986 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
2987 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
2988 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
2989 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
2990 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
2991 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
2992 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
2993 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
2994 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
2995 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
2996 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
2997 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
2998 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
2999 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3000 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3001 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3002 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3003 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3004 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3005 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3006 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3007 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3008 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3009 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3010 0x0000,0x24B6,0x24B7,0x24B8,0x24B9,0x24BA,0x24BB,0x24BC,
3011 0x24BD,0x24BE,0x24BF,0x24C0,0x24C1,0x24C2,0x24C3,0x24C4,
3012 0x24C5,0x24C6,0x24C7,0x24C8,0x24C9,0x24CA,0x24CB,0x24CC,
3013 0x24CD,0x24CE,0x24CF,0x0000,0x0000,0x0000,0x0000,0x0000,
3014 0x0000,0x24D0,0x24D1,0x24D2,0x24D3,0x24D4,0x24D5,0x24D6,
3015 0x24D7,0x24D8,0x24D9,0x24DA,0x24DB,0x24DC,0x24DD,0x24DE,
3016 0x24DF,0x24E0,0x24E1,0x24E2,0x24E3,0x24E4,0x24E5,0x24E6,
3017 0x24E7,0x24E8,0x24E9,0x0000,0x0000,0x0000,0x0000,0x0000,
3018 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3019 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3020 0xFF21,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3021 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3022 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3023 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3024 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3025 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3026 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3027 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3028 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3029 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3030 0xFF22,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3031 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3032 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3033 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3034 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3035 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3036 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3037 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3038 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3039 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3040 0xFF23,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3041 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3042 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3043 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3044 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3045 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3046 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3047 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3048 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3049 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3050 0xFF24,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3051 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3052 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3053 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3054 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3055 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3056 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3057 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3058 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3059 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3060 0xFF25,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3061 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3062 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3063 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3064 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3065 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3066 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3067 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3068 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3069 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3070 0xFF26,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3071 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3072 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3073 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3074 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3075 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3076 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3077 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3078 0x0410,0x0424,0x0408,0x0478,0x04A6,0x04CD,0x04F4,0x0000,
3079 0x0544,0x2160,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3080 0xFF27,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3081 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3082 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3083 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3084 0x0000,0x0000,0x01B3,0x01DE,0x0208,0x0230,0x0000,0x0000,
3085 0x0000,0x0000,0x0000,0x0000,0x1E00,0x1E28,0x1E50,0x1E78,
3086 0x1E60,0x1EBE,0x1EE6,0x1F08,0x1F2A,0x0000,0x1F6C,0x1F88,
3087 0x1FAC,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3088 0x0411,0x0425,0x0409,0x047A,0x04A8,0x0000,0x04F6,0x0531,
3089 0x0545,0x2161,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3090 0xFF28,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3091 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3092 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3093 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3094 0x0000,0x0182,0x01B5,0x01E0,0x020A,0x0232,0x0000,0x0000,
3095 0x019D,0x0000,0x0000,0x0000,0x1E02,0x1E2A,0x1E52,0x1E7A,
3096 0x0000,0x1EC0,0x1EE8,0x1F09,0x1F2B,0x0000,0x1F6D,0x1F89,
3097 0x1FAD,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3098 0x0412,0x0426,0x040A,0x047C,0x04AA,0x04D0,0x04F8,0x0532,
3099 0x0546,0x2162,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3100 0xFF29,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3101 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3102 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3103 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3104 0x0000,0x0184,0x01B8,0x01E2,0x020C,0x0000,0x0000,0x0000,
3105 0x0000,0x0000,0x0000,0x0000,0x1E04,0x1E2C,0x1E54,0x1E7C,
3106 0x0000,0x1EC2,0x1EEA,0x1F0A,0x1F2C,0x0000,0x1F6E,0x1F8A,
3107 0x1FAE,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3108 0x0413,0x0427,0x040B,0x047E,0x04AC,0x04D2,0x0000,0x0533,
3109 0x0547,0x2163,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3110 0xFF2A,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3111 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3112 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3113 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3114 0x0000,0x0187,0x0000,0x01E4,0x020E,0x0000,0x0000,0x0193,
3115 0x0000,0x01AE,0x0000,0x0000,0x1E06,0x1E2E,0x1E56,0x1E7E,
3116 0x0000,0x1EC4,0x1EEC,0x1F0B,0x1F2D,0x0000,0x1F6F,0x1F8B,
3117 0x1FAF,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3118 0x0414,0x0428,0x040C,0x0480,0x04AE,0x04D4,0x0000,0x0534,
3119 0x0548,0x2164,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3120 0xFF2B,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3121 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3122 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3123 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3124 0x0000,0x018B,0x0000,0x01E6,0x0210,0x0000,0x0000,0x0000,
3125 0x019F,0x0000,0x0000,0x0000,0x1E08,0x1E30,0x1E58,0x1E80,
3126 0x0000,0x1EC6,0x1EEE,0x1F0C,0x1F2E,0x0000,0x1FBA,0x1F8C,
3127 0x1FB8,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3128 0x0415,0x0429,0x040D,0x0000,0x04B0,0x04D6,0x0000,0x0535,
3129 0x0549,0x2165,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3130 0xFF2C,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3131 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3132 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3133 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3134 0x0000,0x0000,0x0000,0x01E8,0x0212,0x0000,0x0000,0x0000,
3135 0x0000,0x01B1,0x0000,0x0000,0x1E0A,0x1E32,0x1E5A,0x1E82,
3136 0x1EA0,0x1EC8,0x1EF0,0x1F0D,0x1F2F,0x1F59,0x1FBB,0x1F8D,
3137 0x1FB9,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3138 0x0416,0x042A,0x040E,0x048A,0x04B2,0x04D8,0x0000,0x0536,
3139 0x054A,0x2166,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3140 0xFF2D,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3141 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3142 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3143 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3144 0x0000,0x0191,0x0000,0x01EA,0x0214,0x0000,0x0000,0x0194,
3145 0x0000,0x01B2,0x0000,0x0000,0x1E0C,0x1E34,0x1E5C,0x1E84,
3146 0x1EA2,0x1ECA,0x1EF2,0x1F0E,0x1F38,0x0000,0x1FC8,0x1F8E,
3147 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3148 0x0417,0x042B,0x040F,0x048C,0x04B4,0x04DA,0x0000,0x0537,
3149 0x054B,0x2167,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3150 0xFF2E,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3151 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3152 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3153 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3154 0x0000,0x01F6,0x01BC,0x01EC,0x0216,0x0000,0x0000,0x0000,
3155 0x0000,0x0000,0x0000,0x0000,0x1E0E,0x1E36,0x1E5E,0x1E86,
3156 0x1EA4,0x1ECC,0x1EF4,0x1F0F,0x1F39,0x1F5B,0x1FC9,0x1F8F,
3157 0x1FBC,0x1FE8,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3158 0x0418,0x042C,0x0460,0x048E,0x04B6,0x04DC,0x0000,0x0538,
3159 0x054C,0x2168,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3160 0xFF2F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3161 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3162 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3163 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3164 0x0000,0x0198,0x01C4,0x01EE,0x0218,0x023A,0x0000,0x0000,
3165 0x0000,0x0000,0x0000,0x0000,0x1E10,0x1E38,0x0000,0x1E88,
3166 0x1EA6,0x1ECE,0x1EF6,0x1F18,0x1F3A,0x0000,0x1FCA,0x1F98,
3167 0x0000,0x1FE9,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3168 0x0419,0x042D,0x0462,0x0490,0x04B8,0x04DE,0x0500,0x0539,
3169 0x054D,0x2169,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3170 0xFF30,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3171 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3172 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3173 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3174 0x0000,0x023D,0x01C7,0x0000,0x021A,0x023B,0x0000,0x0000,
3175 0x0000,0x0000,0x0000,0x0000,0x1E12,0x1E3A,0x1E62,0x1E8A,
3176 0x1EA8,0x1ED0,0x1EF8,0x1F19,0x1F3B,0x1F5D,0x1FCB,0x1F99,
3177 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3178 0x041A,0x042E,0x0464,0x0492,0x04BA,0x04E0,0x0502,0x053A,
3179 0x054E,0x216A,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3180 0xFF31,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3181 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3182 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3183 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3184 0x0000,0x0000,0x01CA,0x01F1,0x021C,0x023E,0x0181,0x0000,
3185 0x0000,0x0000,0x0000,0x0000,0x1E14,0x1E3C,0x1E64,0x1E8C,
3186 0x1EAA,0x1ED2,0x0000,0x1F1A,0x1F3C,0x0000,0x1FDA,0x1F9A,
3187 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3188 0x041B,0x042F,0x0466,0x0494,0x04BC,0x04E2,0x0504,0x053B,
3189 0x054F,0x216B,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3190 0xFF32,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3191 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3192 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3193 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3194 0x0000,0x0220,0x01CD,0x01F4,0x021E,0x0000,0x0186,0x0197,
3195 0x0000,0x0000,0x0000,0x0000,0x1E16,0x1E3E,0x1E66,0x1E8E,
3196 0x1EAC,0x1ED4,0x0000,0x1F1B,0x1F3D,0x1F5F,0x1FDB,0x1F9B,
3197 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3198 0x041C,0x0400,0x0468,0x0496,0x04BE,0x04E4,0x0506,0x053C,
3199 0x0550,0x216C,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3200 0xFF33,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3201 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3202 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3203 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3204 0x0000,0x01A0,0x01CF,0x01F8,0x0000,0x0000,0x0000,0x0196,
3205 0x0000,0x0000,0x0000,0x0000,0x1E18,0x1E40,0x1E68,0x1E90,
3206 0x1EAE,0x1ED6,0x0000,0x1F1C,0x1F3E,0x0000,0x1FF8,0x1F9C,
3207 0x0000,0x1FEC,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3208 0x041D,0x0401,0x046A,0x0498,0x04C0,0x04E6,0x0508,0x053D,
3209 0x0551,0x216D,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3210 0xFF34,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3211 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3212 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3213 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3214 0x0000,0x01A2,0x01D1,0x01FA,0x0222,0x0000,0x0189,0x0000,
3215 0x0000,0x01B7,0x0000,0x0000,0x1E1A,0x1E42,0x1E6A,0x1E92,
3216 0x1EB0,0x1ED8,0x0000,0x1F1D,0x1F3F,0x0000,0x1FF9,0x1F9D,
3217 0x1FCC,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3218 0x041E,0x0402,0x046C,0x049A,0x04C1,0x04E8,0x050A,0x053E,
3219 0x0552,0x216E,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3220 0xFF35,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3221 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3222 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3223 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3224 0x0000,0x01A4,0x01D3,0x01FC,0x0224,0x0000,0x018A,0x0000,
3225 0x0000,0x0000,0x0000,0x0000,0x1E1C,0x1E44,0x1E6C,0x1E94,
3226 0x1EB2,0x1EDA,0x0000,0x0000,0x1F48,0x0000,0x1FEA,0x1F9E,
3227 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3228 0x041F,0x0403,0x046E,0x049C,0x04C3,0x04EA,0x050C,0x053F,
3229 0x0553,0x216F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3230 0xFF36,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3231 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3232 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3233 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3234 0x0000,0x01A7,0x01D5,0x01FE,0x0226,0x0000,0x0000,0x0000,
3235 0x01A6,0x0241,0x0000,0x0000,0x1E1E,0x1E46,0x1E6E,0x0000,
3236 0x1EB4,0x1EDC,0x0000,0x0000,0x1F49,0x0000,0x1FEB,0x1F9F,
3237 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3238 0x0420,0x0404,0x0470,0x049E,0x04C5,0x04EC,0x050E,0x0540,
3239 0x0554,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3240 0xFF37,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3241 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3242 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3243 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3244 0x0000,0x0000,0x01D7,0x0200,0x0228,0x0000,0x018F,0x0000,
3245 0x0000,0x0000,0x0000,0x0000,0x1E20,0x1E48,0x1E70,0x0000,
3246 0x1EB6,0x1EDE,0x0000,0x0000,0x1F4A,0x1F68,0x1FFA,0x1FA8,
3247 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3248 0x0421,0x0405,0x0472,0x04A0,0x04C7,0x04EE,0x0000,0x0541,
3249 0x0555,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3250 0xFF38,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3251 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3252 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3253 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3254 0x0000,0x0000,0x01D9,0x0202,0x022A,0x0000,0x0000,0x0000,
3255 0x0000,0x0000,0x0000,0x0000,0x1E22,0x1E4A,0x1E72,0x0000,
3256 0x1EB8,0x1EE0,0x0000,0x0000,0x1F4B,0x1F69,0x1FFB,0x1FA9,
3257 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3258 0x0422,0x0406,0x0474,0x04A2,0x04C9,0x04F0,0x0000,0x0542,
3259 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3260 0xFF39,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3261 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3262 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3263 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3264 0x0000,0x01AC,0x01DB,0x0204,0x022C,0x0000,0x0190,0x019C,
3265 0x01A9,0x0000,0x0000,0x0000,0x1E24,0x1E4C,0x1E74,0x0000,
3266 0x1EBA,0x1EE2,0x0000,0x1F28,0x1F4C,0x1F6A,0x0000,0x1FAA,
3267 0x1FD8,0x1FFC,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3268 0x0423,0x0407,0x0476,0x04A4,0x04CB,0x04F2,0x0000,0x0543,
3269 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3270 0xFF3A,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3271 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3272 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3273 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3274 0x0000,0x01AF,0x018E,0x0206,0x022E,0x0000,0x0000,0x0000,
3275 0x0000,0x0000,0x0000,0x0000,0x1E26,0x1E4E,0x1E76,0x0000,
3276 0x1EBC,0x1EE4,0x0000,0x1F29,0x1F4D,0x1F6B,0x0000,0x1FAB,
3277 0x1FD9,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3278 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3279 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3280 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3281 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3282 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3283 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3284 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3285 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3286 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3287 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3288 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3289 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3290 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3291 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3292 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3293 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3294 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3295 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3296 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3297 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3298 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3299 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3300 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3301 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3302 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3303 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3304 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3305 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3306 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3307 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3308 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3309 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3310 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3311 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3312 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3313 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3314 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3315 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3316 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3317 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3318 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3319 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3320 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3321 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3322 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3323 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3324 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3325 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3326 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3327 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3328 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3329 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3330 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3331 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3332 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3333 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3334 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3335 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3336 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3337 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3338 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3339 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3340 0xFF41,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3341 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3342 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3343 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3344 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3345 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3346 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3347 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3348 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3349 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3350 0xFF42,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3351 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3352 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3353 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3354 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3355 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3356 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3357 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3358 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3359 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3360 0xFF43,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3361 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3362 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3363 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3364 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3365 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3366 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3367 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3368 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3369 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3370 0xFF44,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3371 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3372 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3373 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3374 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3375 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3376 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3377 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3378 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3379 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3380 0xFF45,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3381 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3382 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3383 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3384 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3385 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3386 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3387 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3388 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3389 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3390 0xFF46,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3391 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3392 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3393 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3394 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3395 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3396 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3397 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3398 0x0430,0x0444,0x0458,0x0479,0x04A7,0x04CE,0x04F5,0x0000,
3399 0x0574,0x2170,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3400 0xFF47,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3401 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3402 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3403 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3404 0x0000,0x0180,0x01B4,0x01DF,0x0209,0x0231,0x0000,0x025D,
3405 0x0271,0x0285,0x0299,0x02AD,0x1E01,0x1E29,0x1E51,0x1E79,
3406 0x1E9B,0x1EBF,0x1EE7,0x1F00,0x1F22,0x0000,0x1F64,0x1F80,
3407 0x1FA4,0x1FD2,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3408 0x0431,0x0445,0x0459,0x047B,0x04A9,0x0000,0x04F7,0x0561,
3409 0x0575,0x2171,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3410 0xFF48,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3411 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3412 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3413 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3414 0x0000,0x0183,0x01B6,0x01E1,0x020B,0x0233,0x0000,0x025E,
3415 0x0272,0x0286,0x029A,0x02AE,0x1E03,0x1E2B,0x1E53,0x1E7B,
3416 0x0000,0x1EC1,0x1EE9,0x1F01,0x1F23,0x0000,0x1F65,0x1F81,
3417 0x1FA5,0x1FD3,0x1FF6,0x0000,0x0000,0x0000,0x0000,0x0000,
3418 0x0432,0x0446,0x045A,0x047D,0x04AB,0x04D1,0x04F9,0x0562,
3419 0x0576,0x2172,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3420 0xFF49,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3421 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3422 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3423 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3424 0x0000,0x0185,0x01B9,0x01E3,0x020D,0x0234,0x0000,0x025F,
3425 0x0273,0x0287,0x029B,0x02AF,0x1E05,0x1E2D,0x1E55,0x1E7D,
3426 0x0000,0x1EC3,0x1EEB,0x1F02,0x1F24,0x0000,0x1F66,0x1F82,
3427 0x1FA6,0x0000,0x1FF7,0x0000,0x0000,0x0000,0x0000,0x0000,
3428 0x0433,0x0447,0x045B,0x047F,0x04AD,0x04D3,0x0000,0x0563,
3429 0x0577,0x2173,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3430 0xFF4A,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3431 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3432 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3433 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3434 0x0000,0x0188,0x01BA,0x01E5,0x020F,0x0235,0x0000,0x0260,
3435 0x0274,0x0288,0x029C,0x0000,0x1E07,0x1E2F,0x1E57,0x1E7F,
3436 0x0000,0x1EC5,0x1EED,0x1F03,0x1F25,0x0000,0x1F67,0x1F83,
3437 0x1FA7,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3438 0x0434,0x0448,0x045C,0x0481,0x04AF,0x04D5,0x0000,0x0564,
3439 0x0578,0x2174,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3440 0xFF4B,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3441 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3442 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3443 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3444 0x0000,0x018C,0x01BB,0x01E7,0x0211,0x0236,0x0000,0x0261,
3445 0x0275,0x0289,0x029D,0x0000,0x1E09,0x1E31,0x1E59,0x1E81,
3446 0x0000,0x1EC7,0x1EEF,0x1F04,0x1F26,0x1F50,0x1F70,0x1F84,
3447 0x1FB0,0x1FD6,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3448 0x0435,0x0449,0x045D,0x0000,0x04B1,0x04D7,0x0000,0x0565,
3449 0x0579,0x2175,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3450 0xFF4C,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3451 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3452 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3453 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3454 0x0000,0x018D,0x0000,0x01E9,0x0213,0x0237,0x0000,0x0262,
3455 0x0276,0x028A,0x029E,0x0000,0x1E0B,0x1E33,0x1E5B,0x1E83,
3456 0x1EA1,0x1EC9,0x1EF1,0x1F05,0x1F27,0x1F51,0x1F71,0x1F85,
3457 0x1FB1,0x1FD7,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3458 0x0436,0x044A,0x045E,0x048B,0x04B3,0x04D9,0x0000,0x0566,
3459 0x057A,0x2176,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3460 0xFF4D,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3461 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3462 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3463 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3464 0x0000,0x0192,0x01BE,0x01EB,0x0215,0x0238,0x0000,0x0263,
3465 0x0277,0x028B,0x029F,0x0000,0x1E0D,0x1E35,0x1E5D,0x1E85,
3466 0x1EA3,0x1ECB,0x1EF3,0x1F06,0x1F30,0x1F52,0x1F72,0x1F86,
3467 0x1FB2,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3468 0x0437,0x044B,0x045F,0x048D,0x04B5,0x04DB,0x0000,0x0567,
3469 0x057B,0x2177,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3470 0xFF4E,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3471 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3472 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3473 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3474 0x0000,0x0195,0x01BD,0x01ED,0x0217,0x0239,0x0250,0x0264,
3475 0x0278,0x028C,0x02A0,0x0000,0x1E0F,0x1E37,0x1E5F,0x1E87,
3476 0x1EA5,0x1ECD,0x1EF5,0x1F07,0x1F31,0x1F53,0x1F73,0x1F87,
3477 0x1FB3,0x1FE0,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3478 0x0438,0x044C,0x0461,0x048F,0x04B7,0x04DD,0x0000,0x0568,
3479 0x057C,0x2178,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3480 0xFF4F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3481 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3482 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3483 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3484 0x0000,0x0199,0x01C6,0x01EF,0x0219,0x0000,0x0251,0x0265,
3485 0x0279,0x028D,0x02A1,0x0000,0x1E11,0x1E39,0x1E61,0x1E89,
3486 0x1EA7,0x1ECF,0x1EF7,0x1F10,0x1F32,0x1F54,0x1F74,0x1F90,
3487 0x1FB4,0x1FE1,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3488 0x0439,0x044D,0x0463,0x0491,0x04B9,0x04DF,0x0501,0x0569,
3489 0x057D,0x2179,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3490 0xFF50,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3491 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3492 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3493 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3494 0x0000,0x019A,0x01C9,0x01F0,0x021B,0x023C,0x0252,0x0266,
3495 0x027A,0x028E,0x02A2,0x0000,0x1E13,0x1E3B,0x1E63,0x1E8B,
3496 0x1EA9,0x1ED1,0x1EF9,0x1F11,0x1F33,0x1F55,0x1F75,0x1F91,
3497 0x0000,0x1FE2,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3498 0x043A,0x044E,0x0465,0x0493,0x04BB,0x04E1,0x0503,0x056A,
3499 0x057E,0x217A,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3500 0xFF51,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3501 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3502 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3503 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3504 0x0000,0x019B,0x01CC,0x01F3,0x021D,0x0000,0x0253,0x0267,
3505 0x027B,0x028F,0x02A3,0x0000,0x1E15,0x1E3D,0x1E65,0x1E8D,
3506 0x1EAB,0x1ED3,0x0000,0x1F12,0x1F34,0x1F56,0x1F76,0x1F92,
3507 0x1FB6,0x1FE3,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3508 0x043B,0x044F,0x0467,0x0495,0x04BD,0x04E3,0x0505,0x056B,
3509 0x057F,0x217B,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3510 0xFF52,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3511 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3512 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3513 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3514 0x0000,0x019E,0x01CE,0x01F5,0x021F,0x023F,0x0254,0x0268,
3515 0x027C,0x0290,0x02A4,0x0000,0x1E17,0x1E3F,0x1E67,0x1E8F,
3516 0x1EAD,0x1ED5,0x0000,0x1F13,0x1F35,0x1F57,0x1F77,0x1F93,
3517 0x1FB7,0x1FE4,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3518 0x043C,0x0450,0x0469,0x0497,0x04BF,0x04E5,0x0507,0x056C,
3519 0x0580,0x217C,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3520 0xFF53,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3521 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3522 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3523 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3524 0x0000,0x01A1,0x01D0,0x01F9,0x0221,0x0240,0x0255,0x0269,
3525 0x027D,0x0291,0x02A5,0x0000,0x1E19,0x1E41,0x1E69,0x1E91,
3526 0x1EAF,0x1ED7,0x0000,0x1F14,0x1F36,0x0000,0x1F78,0x1F94,
3527 0x1FC2,0x1FE5,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3528 0x043D,0x0451,0x046B,0x0499,0x0000,0x04E7,0x0509,0x056D,
3529 0x0581,0x217D,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3530 0xFF54,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3531 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3532 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3533 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3534 0x0000,0x01A3,0x01D2,0x01FB,0x0223,0x0000,0x0256,0x026A,
3535 0x027E,0x0292,0x02A6,0x0000,0x1E1B,0x1E43,0x1E6B,0x1E93,
3536 0x1EB1,0x1ED9,0x0000,0x1F15,0x1F37,0x0000,0x1F79,0x1F95,
3537 0x1FC3,0x1FE6,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3538 0x043E,0x0452,0x046D,0x049B,0x04C2,0x04E9,0x050B,0x056E,
3539 0x0582,0x217E,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3540 0xFF55,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3541 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3542 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3543 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3544 0x0000,0x01A5,0x01D4,0x01FD,0x0225,0x0000,0x0257,0x026B,
3545 0x027F,0x0293,0x02A7,0x0000,0x1E1D,0x1E45,0x1E6D,0x1E95,
3546 0x1EB3,0x1EDB,0x0000,0x0000,0x1F40,0x0000,0x1F7A,0x1F96,
3547 0x1FC4,0x1FE7,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3548 0x043F,0x0453,0x046F,0x049D,0x04C4,0x04EB,0x050D,0x056F,
3549 0x0583,0x217F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3550 0xFF56,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3551 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3552 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3553 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3554 0x0000,0x01A8,0x01D6,0x01FF,0x0227,0x0000,0x0258,0x026C,
3555 0x0280,0x0294,0x02A8,0x0000,0x1E1F,0x1E47,0x1E6F,0x1E96,
3556 0x1EB5,0x1EDD,0x0000,0x0000,0x1F41,0x0000,0x1F7B,0x1F97,
3557 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3558 0x0440,0x0454,0x0471,0x049F,0x04C6,0x04ED,0x050F,0x0570,
3559 0x0584,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3560 0xFF57,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3561 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3562 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3563 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3564 0x0000,0x01AA,0x01D8,0x0201,0x0229,0x0000,0x0259,0x026D,
3565 0x0281,0x0295,0x02A9,0x0000,0x1E21,0x1E49,0x1E71,0x1E97,
3566 0x1EB7,0x1EDF,0x0000,0x0000,0x1F42,0x1F60,0x1F7C,0x1FA0,
3567 0x1FC6,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3568 0x0441,0x0455,0x0473,0x04A1,0x04C8,0x04EF,0x0000,0x0571,
3569 0x0585,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3570 0xFF58,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3571 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3572 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3573 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3574 0x0000,0x01AB,0x01DA,0x0203,0x022B,0x0000,0x025A,0x026E,
3575 0x0282,0x0296,0x02AA,0x0000,0x1E23,0x1E4B,0x1E73,0x1E98,
3576 0x1EB9,0x1EE1,0x0000,0x0000,0x1F43,0x1F61,0x1F7D,0x1FA1,
3577 0x1FC7,0x1FF2,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3578 0x0442,0x0456,0x0475,0x04A3,0x04CA,0x04F1,0x0000,0x0572,
3579 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3580 0xFF59,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3581 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3582 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3583 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3584 0x0000,0x01AD,0x01DC,0x0205,0x022D,0x0000,0x025B,0x026F,
3585 0x0283,0x0297,0x02AB,0x0000,0x1E25,0x1E4D,0x1E75,0x1E99,
3586 0x1EBB,0x1EE3,0x0000,0x1F20,0x1F44,0x1F62,0x0000,0x1FA2,
3587 0x1FD0,0x1FF3,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3588 0x0443,0x0457,0x0477,0x04A5,0x04CC,0x04F3,0x0000,0x0573,
3589 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3590 0xFF5A,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3591 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3592 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3593 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3594 0x0000,0x01B0,0x01DD,0x0207,0x022F,0x0000,0x025C,0x0270,
3595 0x0284,0x0298,0x02AC,0x0000,0x1E27,0x1E4F,0x1E77,0x1E9A,
3596 0x1EBD,0x1EE5,0x0000,0x1F21,0x1F45,0x1F63,0x0000,0x1FA3,
3602 static uint16 uni_0C00_05FF[1344]=
3604 0x0017,0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,
3605 0x001F,0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,
3606 0x0027,0x0028,0x0029,0x002A,0x0067,0x0068,0x0069,0x0000,
3607 0x006B,0x006C,0x006D,0x006E,0x006F,0x0070,0x0071,0x008A,
3608 0x0037,0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,
3609 0x003F,0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,
3610 0x0047,0x0048,0x0049,0x004A,0x0087,0x0088,0x0089,0x0000,
3611 0x008B,0x008C,0x008D,0x008E,0x008F,0x0090,0x0091,0x0092,
3612 0x0073,0x0093,0x0074,0x0094,0x0075,0x0095,0x0076,0x0096,
3613 0x0077,0x0097,0x0078,0x0098,0x0079,0x0099,0x007A,0x009A,
3614 0x00B7,0x00D7,0x00B8,0x00D8,0x00B9,0x00D9,0x00BA,0x00DA,
3615 0x00BB,0x00DB,0x00BC,0x00DC,0x00BD,0x00DD,0x00BE,0x00DE,
3616 0x00BF,0x00DF,0x00C0,0x00E0,0x00C1,0x00E1,0x00C2,0x00E2,
3617 0x00C3,0x00E3,0x00C4,0x00E4,0x00C5,0x00E5,0x00C6,0x00E6,
3618 0x0000,0x00E7,0x00C8,0x00E8,0x00C9,0x00E9,0x00CA,0x00EA,
3619 0x0127,0x0108,0x0128,0x0109,0x0129,0x010A,0x012A,0x010B,
3620 0x012B,0x010C,0x012C,0x010D,0x012D,0x010E,0x012E,0x010F,
3621 0x012F,0x0130,0x0111,0x0131,0x0112,0x0132,0x0113,0x0133,
3622 0x0114,0x0134,0x0115,0x0135,0x0116,0x0136,0x0117,0x0137,
3623 0x0118,0x0138,0x0119,0x0139,0x011A,0x013A,0x0157,0x0177,
3624 0x0158,0x0178,0x0159,0x0179,0x015A,0x017A,0x015B,0x017B,
3625 0x015C,0x017C,0x015D,0x017D,0x015E,0x017E,0x015F,0x017F,
3626 0x0160,0x0180,0x0161,0x0181,0x0162,0x0182,0x0163,0x0183,
3627 0x0072,0x0164,0x0184,0x0165,0x0185,0x0166,0x0186,0x0187,
3628 0x1161,0x0A86,0x07B1,0x11B1,0x0801,0x1201,0x0AD6,0x0851,
3629 0x1251,0x0B76,0x0BC6,0x08A1,0x12A1,0x12F1,0x0D52,0x0C66,
3630 0x0D06,0x0941,0x1341,0x0857,0x0947,0x1391,0x0B27,0x0AD7,
3631 0x09E1,0x13E1,0x1431,0x1481,0x0D07,0x07B8,0x14D1,0x08A8,
3632 0x0B21,0x1521,0x0B71,0x1571,0x0BC1,0x15C1,0x0C18,0x0C11,
3633 0x1611,0x0D08,0x1661,0x16B1,0x0D01,0x1701,0x0859,0x0D51,
3634 0x1751,0x08F9,0x0949,0x0762,0x1162,0x07B2,0x11B2,0x0B79,
3635 0x0802,0x1202,0x1252,0x12A2,0x0992,0x1392,0x1342,0x0000,
3636 0x0000,0x0000,0x0000,0x0000,0x09E2,0x0000,0x13E2,0x0A32,
3637 0x0000,0x1432,0x0A82,0x0000,0x1482,0x0AD2,0x14D2,0x0B22,
3638 0x1522,0x0B72,0x1572,0x0BC2,0x15C2,0x0C12,0x1612,0x0C62,
3639 0x1662,0x0CB2,0x16B2,0x0D02,0x1702,0x1752,0x0763,0x1163,
3640 0x07B3,0x11B3,0x0803,0x1203,0x0853,0x1253,0x08A3,0x12A3,
3641 0x08F3,0x12F3,0x0943,0x1343,0x0993,0x1393,0x09E3,0x13E3,
3642 0x1433,0x0A83,0x0000,0x1483,0x0AD3,0x14D3,0x0991,0x0000,
3643 0x0B23,0x1523,0x0B73,0x1573,0x0BC3,0x15C3,0x0C13,0x1613,
3644 0x0C63,0x1663,0x0CB3,0x16B3,0x0D03,0x1703,0x0D53,0x1753,
3645 0x0764,0x1164,0x07B4,0x11B4,0x0804,0x1204,0x0854,0x1254,
3646 0x08A4,0x12A4,0x08F4,0x12F4,0x0944,0x1344,0x0994,0x1394,
3647 0x09E4,0x13E4,0x0A34,0x1434,0x0A84,0x1484,0x0AD4,0x14D4,
3648 0x0AD1,0x1524,0x0B74,0x1574,0x0BC4,0x15C4,0x0C14,0x1614,
3649 0x0C64,0x1664,0x0CB4,0x16B4,0x0D04,0x1704,0x0D54,0x1754,
3650 0x0765,0x1165,0x07B5,0x11B5,0x1205,0x1255,0x12A5,0x12F5,
3651 0x1345,0x1395,0x09E5,0x0A35,0x1435,0x0A31,0x0A85,0x14D5,
3652 0x1525,0x0C19,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3653 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3654 0x1396,0x13E6,0x1436,0x1486,0x14D6,0x1526,0x1576,0x15C6,
3655 0x1616,0x1666,0x16B6,0x1706,0x1756,0x1167,0x11B7,0x1207,
3656 0x1257,0x12A7,0x12F7,0x1347,0x1397,0x13E7,0x1437,0x1487,
3657 0x14D7,0x1527,0x1577,0x15C7,0x1617,0x1667,0x16B7,0x1707,
3658 0x1757,0x1168,0x11B8,0x1208,0x1258,0x12A8,0x12F8,0x1348,
3659 0x1398,0x13E8,0x1438,0x1488,0x14D8,0x1528,0x1578,0x15C8,
3660 0x1618,0x1668,0x16B8,0x1708,0x1758,0x1169,0x11B9,0x1209,
3661 0x1259,0x12A9,0x12F9,0x1349,0x1399,0x13E9,0x1439,0x1489,
3662 0x14D9,0x1529,0x1579,0x15C9,0x1619,0x1669,0x16B9,0x1709,
3663 0x1759,0x116A,0x11BA,0x120A,0x125A,0x12AA,0x12FA,0x134A,
3664 0x139A,0x13EA,0x143A,0x148A,0x14DA,0x152A,0x157A,0x15CA,
3665 0x161A,0x166A,0x16BA,0x170A,0x175A,0x116B,0x11BB,0x120B,
3666 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3667 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3668 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3669 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3670 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3671 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3672 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3673 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3674 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3675 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3676 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3677 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3678 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3679 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3680 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3681 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3682 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3683 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3684 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3685 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3686 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3687 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3688 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3689 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3690 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3691 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3692 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x01F7,0x0000,
3693 0x01F8,0x01F9,0x01FA,0x0000,0x0253,0x0000,0x0254,0x0255,
3694 0x01D9,0x01FC,0x0257,0x01FE,0x01FF,0x0200,0x0201,0x0202,
3695 0x0258,0x0204,0x02A7,0x0206,0x0207,0x0208,0x0209,0x020A,
3696 0x0299,0x0248,0x0000,0x02A9,0x024B,0x024C,0x0298,0x024E,
3697 0x024F,0x0250,0x0251,0x0252,0x0217,0x0218,0x0219,0x021A,
3698 0x021B,0x021C,0x021D,0x021E,0x021F,0x0220,0x0221,0x0222,
3699 0x0223,0x0224,0x0225,0x0226,0x0227,0x0228,0x0229,0x022A,
3700 0x0267,0x0268,0x0269,0x026A,0x026B,0x026C,0x026D,0x026E,
3701 0x026F,0x0270,0x0271,0x0272,0x0273,0x0274,0x0275,0x0000,
3702 0x0277,0x0278,0x0259,0x025A,0x0297,0x02B8,0x02B9,0x02BA,
3703 0x0000,0x02BB,0x029C,0x02BC,0x029D,0x02BD,0x029E,0x02BE,
3704 0x029F,0x02BF,0x02A0,0x02C0,0x02A1,0x02C1,0x02A2,0x02C2,
3705 0x02A3,0x02C3,0x02A4,0x02C4,0x02A5,0x02C5,0x02A6,0x02C6,
3706 0x02C7,0x02C8,0x02C9,0x02CA,0x0000,0x0307,0x0308,0x0000,
3707 0x0309,0x0000,0x0000,0x030A,0x030B,0x02EC,0x02ED,0x02EE,
3708 0x0AF1,0x0B41,0x0B91,0x0BE1,0x0C31,0x0C81,0x0CD1,0x0D21,
3709 0x0732,0x0782,0x07D2,0x0822,0x0872,0x08C2,0x0912,0x0962,
3710 0x0730,0x0780,0x07D0,0x0820,0x0870,0x08C0,0x0910,0x0960,
3711 0x09B0,0x0A00,0x0A50,0x0AA0,0x0AF0,0x0B40,0x0B90,0x0BE0,
3712 0x0C30,0x0C80,0x0CD0,0x0D20,0x0731,0x0781,0x07D1,0x0821,
3713 0x0871,0x08C1,0x0911,0x0961,0x09B1,0x0A01,0x0A51,0x0AA1,
3714 0x1130,0x1180,0x11D0,0x1220,0x1270,0x12C0,0x1310,0x1360,
3715 0x13B0,0x1400,0x1450,0x14A0,0x14F0,0x1540,0x1590,0x15E0,
3716 0x1630,0x1680,0x16D0,0x1720,0x1131,0x1181,0x11D1,0x1221,
3717 0x1271,0x12C1,0x1311,0x1361,0x13B1,0x1401,0x1451,0x14A1,
3718 0x14F1,0x1541,0x1591,0x15E1,0x1631,0x1681,0x16D1,0x1721,
3719 0x1132,0x1182,0x11D2,0x1222,0x1272,0x12C2,0x1312,0x1362,
3720 0x09B2,0x13B2,0x0A02,0x1402,0x0A52,0x1452,0x0AA2,0x14A2,
3721 0x0AF2,0x14F2,0x0B42,0x1542,0x0B92,0x1592,0x0BE2,0x15E2,
3722 0x0C32,0x1632,0x0C82,0x1682,0x0CD2,0x16D2,0x0D22,0x1722,
3723 0x0733,0x1133,0x0783,0x1183,0x07D3,0x11D3,0x0823,0x1223,
3724 0x0873,0x1273,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3725 0x0000,0x0000,0x0913,0x1313,0x0963,0x1363,0x09B3,0x13B3,
3726 0x0A03,0x1403,0x0A53,0x1453,0x0AA3,0x14A3,0x0AF3,0x14F3,
3727 0x0B43,0x1543,0x0B93,0x1593,0x0BE3,0x15E3,0x0C33,0x1633,
3728 0x0C83,0x1683,0x0CD3,0x16D3,0x0D23,0x1723,0x0734,0x1134,
3729 0x0784,0x1184,0x07D4,0x11D4,0x0824,0x1224,0x0874,0x1274,
3730 0x08C4,0x12C4,0x0914,0x1314,0x0964,0x1364,0x09B4,0x13B4,
3731 0x0A04,0x1404,0x0A54,0x1454,0x0AA4,0x14A4,0x0AF4,0x14F4,
3732 0x0B44,0x0B94,0x1594,0x0BE4,0x15E4,0x0C34,0x1634,0x0C84,
3733 0x1684,0x0CD4,0x16D4,0x0D24,0x1724,0x0735,0x1135,0x0000,
3734 0x07D5,0x11D5,0x0825,0x1225,0x0875,0x1275,0x08C5,0x12C5,
3735 0x0915,0x1315,0x0965,0x1365,0x09B5,0x13B5,0x0A05,0x1405,
3736 0x0A55,0x1455,0x0AA5,0x14A5,0x0AF5,0x14F5,0x0B45,0x1545,
3737 0x0B95,0x1595,0x0BE5,0x15E5,0x0C35,0x1635,0x0C85,0x1685,
3738 0x0CD5,0x16D5,0x0D25,0x1725,0x0736,0x1136,0x0786,0x1186,
3739 0x07D6,0x11D6,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3740 0x0A06,0x1406,0x0A56,0x1456,0x0AA6,0x14A6,0x0AF6,0x14F6,
3741 0x0B46,0x1546,0x0B96,0x1596,0x0BE6,0x15E6,0x0C36,0x1636,
3742 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3743 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3744 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3745 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3746 0x0000,0x0787,0x07D7,0x0827,0x0877,0x08C7,0x0917,0x0967,
3747 0x09B7,0x0A07,0x0A57,0x0AA7,0x0AF7,0x0B47,0x0B97,0x0BE7,
3748 0x0C37,0x0C87,0x0CD7,0x0D27,0x0738,0x0788,0x07D8,0x0828,
3749 0x0878,0x08C8,0x0918,0x0968,0x09B8,0x0A08,0x0A58,0x0AA8,
3750 0x0AF8,0x0B48,0x0B98,0x0BE8,0x0C38,0x0C88,0x0000,0x0000,
3751 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3752 0x0000,0x1187,0x11D7,0x1227,0x1277,0x12C7,0x1317,0x1367,
3753 0x13B7,0x1407,0x1457,0x14A7,0x14F7,0x1547,0x1597,0x15E7,
3754 0x1637,0x1687,0x16D7,0x1727,0x1138,0x1188,0x11D8,0x1228,
3755 0x1278,0x12C8,0x1318,0x1368,0x13B8,0x1408,0x1458,0x14A8,
3756 0x14F8,0x1548,0x1598,0x15E8,0x1638,0x1688,0x0000,0x0000,
3757 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3758 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3759 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3760 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3761 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3762 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3763 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3764 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3765 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3766 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3767 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3768 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3769 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3770 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3771 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000
3776 static uint16 uni_1E00_1FFF[512]=
3778 0x076C,0x116C,0x07BC,0x11BC,0x080C,0x120C,0x085C,0x125C,
3779 0x08AC,0x12AC,0x08FC,0x12FC,0x094C,0x134C,0x099C,0x139C,
3780 0x09EC,0x13EC,0x0A3C,0x143C,0x0A8C,0x148C,0x0ADC,0x14DC,
3781 0x0B2C,0x152C,0x0B7C,0x157C,0x0BCC,0x15CC,0x0C1C,0x161C,
3782 0x0C6C,0x166C,0x0CBC,0x16BC,0x0D0C,0x170C,0x0D5C,0x175C,
3783 0x076D,0x116D,0x07BD,0x11BD,0x080D,0x120D,0x085D,0x125D,
3784 0x08AD,0x12AD,0x08FD,0x12FD,0x094D,0x134D,0x099D,0x139D,
3785 0x09ED,0x13ED,0x0A3D,0x143D,0x0A8D,0x148D,0x0ADD,0x14DD,
3786 0x0B2D,0x152D,0x0B7D,0x157D,0x0BCD,0x15CD,0x0C1D,0x161D,
3787 0x0C6D,0x166D,0x0CBD,0x16BD,0x0D0D,0x170D,0x0D5D,0x175D,
3788 0x076E,0x116E,0x07BE,0x11BE,0x080E,0x120E,0x085E,0x125E,
3789 0x08AE,0x12AE,0x08FE,0x12FE,0x094E,0x134E,0x099E,0x139E,
3790 0x0770,0x13EE,0x0A3E,0x143E,0x0A8E,0x148E,0x0ADE,0x14DE,
3791 0x0B2E,0x152E,0x0B7E,0x157E,0x0BCE,0x15CE,0x0C1E,0x161E,
3792 0x0C6E,0x166E,0x0CBE,0x16BE,0x0D0E,0x170E,0x0D5E,0x175E,
3793 0x076F,0x116F,0x07BF,0x11BF,0x080F,0x120F,0x085F,0x125F,
3794 0x08AF,0x12AF,0x08FF,0x12FF,0x094F,0x134F,0x099F,0x139F,
3795 0x09EF,0x13EF,0x0A3F,0x143F,0x0A8F,0x148F,0x0ADF,0x14DF,
3796 0x0B2F,0x152F,0x0B7F,0x157F,0x0BCF,0x15CF,0x161F,0x166F,
3797 0x16BF,0x170F,0x175F,0x1170,0x0000,0x0000,0x0000,0x0000,
3798 0x0900,0x1300,0x0950,0x1350,0x09A0,0x13A0,0x09F0,0x13F0,
3799 0x0A40,0x1440,0x0A90,0x1490,0x0AE0,0x14E0,0x0B30,0x1530,
3800 0x0B80,0x1580,0x0BD0,0x15D0,0x0C20,0x1620,0x0C70,0x1670,
3801 0x0CC0,0x16C0,0x0D10,0x1710,0x0D60,0x1760,0x0771,0x1171,
3802 0x07C1,0x11C1,0x0811,0x1211,0x0861,0x1261,0x08B1,0x12B1,
3803 0x0901,0x1301,0x0951,0x1351,0x09A1,0x13A1,0x09F1,0x13F1,
3804 0x0A41,0x1441,0x0A91,0x1491,0x0AE1,0x14E1,0x0B31,0x1531,
3805 0x0B81,0x1581,0x0BD1,0x15D1,0x0C21,0x1621,0x0C71,0x1671,
3806 0x0CC1,0x16C1,0x0D11,0x1711,0x0D61,0x1761,0x0772,0x1172,
3807 0x07C2,0x11C2,0x0812,0x1212,0x0862,0x1262,0x08B2,0x12B2,
3808 0x0902,0x1302,0x0952,0x1352,0x09A2,0x13A2,0x09F2,0x13F2,
3809 0x0A42,0x1442,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
3810 0x1173,0x11C3,0x1213,0x1263,0x12B3,0x1303,0x1353,0x13A3,
3811 0x0773,0x07C3,0x0813,0x0863,0x08B3,0x0903,0x0953,0x09A3,
3812 0x13F3,0x1443,0x1493,0x14E3,0x1533,0x1583,0x0000,0x0000,
3813 0x09F3,0x0A43,0x0A93,0x0AE3,0x0B33,0x0B83,0x0000,0x0000,
3814 0x1713,0x1763,0x1174,0x11C4,0x1214,0x1264,0x12B4,0x1304,
3815 0x0D13,0x0D63,0x0774,0x07C4,0x0814,0x0864,0x08B4,0x0904,
3816 0x1354,0x13A4,0x13F4,0x1444,0x1494,0x14E4,0x1534,0x1584,
3817 0x0954,0x09A4,0x09F4,0x0A44,0x0A94,0x0AE4,0x0B34,0x0B84,
3818 0x15D4,0x1624,0x1674,0x16C4,0x1714,0x1764,0x0000,0x0000,
3819 0x0BD4,0x0C24,0x0C74,0x0CC4,0x0D14,0x0D64,0x0000,0x0000,
3820 0x12B5,0x1305,0x1355,0x13A5,0x13F5,0x1445,0x1495,0x14E5,
3821 0x0000,0x0905,0x0000,0x09A5,0x0000,0x0A45,0x0000,0x0AE5,
3822 0x1675,0x16C5,0x1715,0x1765,0x1176,0x11C6,0x1216,0x1266,
3823 0x0C75,0x0CC5,0x0D15,0x0D65,0x0776,0x07C6,0x0816,0x0866,
3824 0x12B6,0x1306,0x1356,0x13A6,0x13F6,0x1446,0x1496,0x14E6,
3825 0x1536,0x1586,0x15D6,0x1626,0x1676,0x16C6,0x0000,0x0000,
3826 0x1177,0x11C7,0x1217,0x1267,0x12B7,0x1307,0x1357,0x13A7,
3827 0x0777,0x07C7,0x0817,0x0867,0x08B7,0x0907,0x0957,0x09A7,
3828 0x13F7,0x1447,0x1497,0x14E7,0x1537,0x1587,0x15D7,0x1627,
3829 0x09F7,0x0A47,0x0A97,0x0AE7,0x0B37,0x0B87,0x0BD7,0x0C27,
3830 0x1677,0x16C7,0x1717,0x1767,0x1178,0x11C8,0x1218,0x1268,
3831 0x0C77,0x0CC7,0x0D17,0x0D67,0x0778,0x07C8,0x0818,0x0868,
3832 0x12B8,0x1308,0x1358,0x13A8,0x13F8,0x0000,0x1498,0x14E8,
3833 0x08B8,0x0908,0x08B6,0x0906,0x09A8,0x0000,0x0000,0x0000,
3834 0x0000,0x0000,0x1538,0x1588,0x15D8,0x0000,0x1678,0x16C8,
3835 0x0956,0x09A6,0x09F6,0x0A46,0x0B88,0x0000,0x0000,0x0000,
3836 0x1718,0x1768,0x1179,0x11C9,0x0000,0x0000,0x12B9,0x1309,
3837 0x0D18,0x0D68,0x0A96,0x0AE6,0x0000,0x0000,0x0000,0x0000,
3838 0x13A9,0x13F9,0x1449,0x1499,0x14E9,0x1539,0x1589,0x15D9,
3839 0x09A9,0x09F9,0x0BD6,0x0C26,0x0B39,0x0000,0x0000,0x0000,
3840 0x0000,0x0000,0x16C9,0x1719,0x0000,0x0000,0x11CA,0x121A,
3841 0x0B36,0x0B86,0x0C76,0x0CC6,0x0D19,0x0000,0x0000,0x0000
3846 static uint16 uni_2160_217F[32]=
3848 0x0739,0x0789,0x07D9,0x0829,0x0879,0x08C9,0x0919,0x0969,
3849 0x09B9,0x0A09,0x0A59,0x0AA9,0x0AF9,0x0B49,0x0B99,0x0BE9,
3850 0x1139,0x1189,0x11D9,0x1229,0x1279,0x12C9,0x1319,0x1369,
3851 0x13B9,0x1409,0x1459,0x14A9,0x14F9,0x1549,0x1599,0x15E9
3856 static uint16 uni_24B0_24EF[64]=
3858 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0511,0x0512,
3859 0x0513,0x0514,0x0515,0x0516,0x0517,0x0518,0x0519,0x051A,
3860 0x051B,0x051C,0x051D,0x051E,0x051F,0x0520,0x0521,0x0522,
3861 0x0523,0x0524,0x0525,0x0526,0x0527,0x0528,0x0529,0x052A,
3862 0x0531,0x0532,0x0533,0x0534,0x0535,0x0536,0x0537,0x0538,
3863 0x0539,0x053A,0x053B,0x053C,0x053D,0x053E,0x053F,0x0540,
3864 0x0541,0x0542,0x0543,0x0544,0x0545,0x0546,0x0547,0x0548,
3865 0x0549,0x054A,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000
3870 static uint16 uni_FF20_FF5F[64]=
3872 0x0000,0x0560,0x05B0,0x0600,0x0650,0x06A0,0x06F0,0x0740,
3873 0x0790,0x07E0,0x0830,0x0880,0x08D0,0x0920,0x0970,0x09C0,
3874 0x0A10,0x0A60,0x0AB0,0x0B00,0x0B50,0x0BA0,0x0BF0,0x0C40,
3875 0x0C90,0x0CE0,0x0D30,0x0000,0x0000,0x0000,0x0000,0x0000,
3876 0x0000,0x0F60,0x0FB0,0x1000,0x1050,0x10A0,0x10F0,0x1140,
3877 0x1190,0x11E0,0x1230,0x1280,0x12D0,0x1320,0x1370,0x13C0,
3878 0x1410,0x1460,0x14B0,0x1500,0x1550,0x15A0,0x15F0,0x1640,
3879 0x1690,0x16E0,0x1730,0x0000,0x0000,0x0000,0x0000,0x0000
3888 a number 0..15, if a valid HEX digit in lower case,
3892 static int hexlo(int x)
3894 static char hex_lo_digit[256]=
3896 -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, /* ................ */
3897 -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, /* ................ */
3898 -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, /* !"#$%&'()*+,-./ */
3899 0, 1, 2, 3, 4, 5, 6, 7, 8, 9,-1,-1,-1,-1,-1,-1, /* 0123456789:;<=>? */
3900 -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, /* @ABCDEFGHIJKLMNO */
3901 -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, /* PQRSTUVWXYZ[\]^_ */
3902 -1,10,11,12,13,14,15,-1,-1,-1,-1,-1,-1,-1,-1,-1, /* `abcdefghijklmno */
3903 -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, /* pqrstuvwxyz{|}~. */
3904 -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, /* ................ */
3905 -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, /* ................ */
3906 -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, /* ................ */
3907 -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, /* ................ */
3908 -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, /* ................ */
3909 -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, /* ................ */
3910 -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, /* ................ */
3911 -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, /* ................ */
3913 return hex_lo_digit[(unsigned int) x];
3920 A..Z capital letters,
3925 static char filename_safe_char[128]=
3927 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* ................ */
3928 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* ................ */
3929 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* !"#$%&'()*+,-./ */
3930 1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0, /* 0123456789:;<=>? */
3931 0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, /* @ABCDEFGHIJKLMNO */
3932 1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,1, /* PQRSTUVWXYZ[\]^_ */
3933 0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, /* `abcdefghijklmno */
3934 1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0, /* pqrstuvwxyz{|}~. */
3937 #define MY_FILENAME_ESCAPE '@'
3940 my_mb_wc_filename(CHARSET_INFO *cs __attribute__((unused)),
3941 my_wc_t *pwc, const uchar *s, const uchar *e)
3945 return MY_CS_TOOSMALL;
3947 if (*s < 128 && filename_safe_char[*s])
3953 if (*s != MY_FILENAME_ESCAPE)
3957 return MY_CS_TOOSMALL3;
3962 if (byte1 >= 0x30 && byte1 <= 0x7F &&
3963 byte2 >= 0x30 && byte2 <= 0x7F)
3965 int code= (byte1 - 0x30) * 80 + byte2 - 0x30;
3966 if (code < 5994 && touni[code])
3974 return MY_CS_TOOSMALL4;
3976 if ((byte1= hexlo(byte1)) >= 0 &&
3977 (byte2= hexlo(byte2)) >= 0)
3979 int byte3= hexlo(s[3]);
3980 int byte4= hexlo(s[4]);
3981 if (byte3 >=0 && byte4 >=0)
3983 *pwc= (byte1 << 12) + (byte2 << 8) + (byte3 << 4) + byte4;
3993 my_wc_mb_filename(CHARSET_INFO *cs __attribute__((unused)),
3994 my_wc_t wc, unsigned char *s, unsigned char *e)
3997 char hex[]= "0123456789abcdef";
3998 if (wc < 128 && filename_safe_char[wc])
4005 return MY_CS_TOOSMALL3;
4007 *s++= MY_FILENAME_ESCAPE;
4008 if ((wc >= 0x00C0 && wc <= 0x05FF && (code= uni_0C00_05FF[wc - 0x00C0])) ||
4009 (wc >= 0x1E00 && wc <= 0x1FFF && (code= uni_1E00_1FFF[wc - 0x1E00])) ||
4010 (wc >= 0x2160 && wc <= 0x217F && (code= uni_2160_217F[wc - 0x2160])) ||
4011 (wc >= 0x24B0 && wc <= 0x24EF && (code= uni_24B0_24EF[wc - 0x24B0])) ||
4012 (wc >= 0xFF20 && wc <= 0xFF5F && (code= uni_FF20_FF5F[wc - 0xFF20])))
4014 *s++= (code / 80) + 0x30;
4015 *s++= (code % 80) + 0x30;
4021 return MY_CS_TOOSMALL5;
4023 *s++= hex[(wc >> 12) & 15];
4024 *s++= hex[(wc >> 8) & 15];
4025 *s++= hex[(wc >> 4) & 15];
4026 *s++= hex[(wc) & 15];
4031 static MY_COLLATION_HANDLER my_collation_filename_handler =
4035 my_strnncollsp_utf8,
4037 my_strnxfrmlen_utf8,
4043 my_propagate_complex
4046 static MY_CHARSET_HANDLER my_charset_filename_handler=
4053 my_well_formed_len_mb,
4064 my_long10_to_str_8bit,
4065 my_longlong10_to_str_8bit,
4078 CHARSET_INFO my_charset_filename=
4080 17,0,0, /* number */
4081 MY_CS_COMPILED|MY_CS_PRIMARY|MY_CS_STRNXFRM|MY_CS_UNICODE|MY_CS_HIDDEN,
4082 "filename", /* cs name */
4083 "filename", /* name */
4085 NULL, /* tailoring */
4086 ctype_utf8, /* ctype */
4087 to_lower_utf8, /* to_lower */
4088 to_upper_utf8, /* to_upper */
4089 to_upper_utf8, /* sort_order */
4090 NULL, /* contractions */
4091 NULL, /* sort_order_big*/
4092 NULL, /* tab_to_uni */
4093 NULL, /* tab_from_uni */
4094 my_unicase_default, /* caseinfo */
4095 NULL, /* state_map */
4096 NULL, /* ident_map */
4097 1, /* strxfrm_multiply */
4098 1, /* caseup_multiply */
4099 1, /* casedn_multiply */
4102 0, /* min_sort_char */
4103 0xFFFF, /* max_sort_char */
4105 0, /* escape_with_backslash_is_dangerous */
4106 &my_charset_filename_handler,
4107 &my_collation_filename_handler
4113 static void test_mb(CHARSET_INFO *cs, uchar *s)
4117 if (my_ismbhead_utf8(cs,*s))
4119 int len=my_mbcharlen_utf8(cs,*s);
4137 char str[1024]=" utf8 test проба ПЕРА по-РУССКИ";
4140 test_mb(cs,(uchar*)str);
4142 printf("orig :'%s'\n",str);
4144 my_caseup_utf8(cs,str,15);
4145 printf("caseup :'%s'\n",str);
4147 my_caseup_str_utf8(cs,str);
4148 printf("caseup_str:'%s'\n",str);
4150 my_casedn_utf8(cs,str,15);
4151 printf("casedn :'%s'\n",str);
4153 my_casedn_str_utf8(cs,str);
4154 printf("casedn_str:'%s'\n",str);
4163 #endif /* HAVE_CHARSET_UTF8 */