|
Ruby 1.9.2p290(2011-07-09revision32553)
|
00001 /********************************************************************** 00002 unicode.c - Oniguruma (regular expression library) 00003 **********************************************************************/ 00004 /*- 00005 * Copyright (c) 2002-2008 K.Kosako <sndgk393 AT ybb DOT ne DOT jp> 00006 * All rights reserved. 00007 * 00008 * Redistribution and use in source and binary forms, with or without 00009 * modification, are permitted provided that the following conditions 00010 * are met: 00011 * 1. Redistributions of source code must retain the above copyright 00012 * notice, this list of conditions and the following disclaimer. 00013 * 2. Redistributions in binary form must reproduce the above copyright 00014 * notice, this list of conditions and the following disclaimer in the 00015 * documentation and/or other materials provided with the distribution. 00016 * 00017 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND 00018 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 00019 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 00020 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 00021 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 00022 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 00023 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 00024 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 00025 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 00026 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 00027 * SUCH DAMAGE. 00028 */ 00029 00030 #include "regint.h" 00031 00032 #define ONIGENC_IS_UNICODE_ISO_8859_1_CTYPE(code,ctype) \ 00033 ((EncUNICODE_ISO_8859_1_CtypeTable[code] & CTYPE_TO_BIT(ctype)) != 0) 00034 #if 0 00035 #define ONIGENC_IS_UNICODE_ISO_8859_1_BIT_CTYPE(code,cbit) \ 00036 ((EncUNICODE_ISO_8859_1_CtypeTable[code] & (cbit)) != 0) 00037 #endif 00038 00039 static const unsigned short EncUNICODE_ISO_8859_1_CtypeTable[256] = { 00040 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 00041 0x4008, 0x428c, 0x4289, 0x4288, 0x4288, 0x4288, 0x4008, 0x4008, 00042 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 00043 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 00044 0x4284, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 00045 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 00046 0x78b0, 0x78b0, 0x78b0, 0x78b0, 0x78b0, 0x78b0, 0x78b0, 0x78b0, 00047 0x78b0, 0x78b0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 00048 0x41a0, 0x7ca2, 0x7ca2, 0x7ca2, 0x7ca2, 0x7ca2, 0x7ca2, 0x74a2, 00049 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 00050 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 00051 0x74a2, 0x74a2, 0x74a2, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x51a0, 00052 0x41a0, 0x78e2, 0x78e2, 0x78e2, 0x78e2, 0x78e2, 0x78e2, 0x70e2, 00053 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 00054 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 00055 0x70e2, 0x70e2, 0x70e2, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x4008, 00056 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0288, 0x0008, 0x0008, 00057 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 00058 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 00059 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 00060 0x0284, 0x01a0, 0x00a0, 0x00a0, 0x00a0, 0x00a0, 0x00a0, 0x00a0, 00061 0x00a0, 0x00a0, 0x30e2, 0x01a0, 0x00a0, 0x00a8, 0x00a0, 0x00a0, 00062 0x00a0, 0x00a0, 0x10a0, 0x10a0, 0x00a0, 0x30e2, 0x00a0, 0x01a0, 00063 0x00a0, 0x10a0, 0x30e2, 0x01a0, 0x10a0, 0x10a0, 0x10a0, 0x01a0, 00064 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 00065 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 00066 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x00a0, 00067 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x30e2, 00068 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 00069 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 00070 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x00a0, 00071 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2 00072 }; 00073 00074 #include "enc/unicode/name2ctype.h" 00075 00076 typedef struct { 00077 int n; 00078 OnigCodePoint code[3]; 00079 } CodePointList3; 00080 00081 typedef struct { 00082 OnigCodePoint from; 00083 CodePointList3 to; 00084 } CaseFold_11_Type; 00085 00086 typedef struct { 00087 OnigCodePoint from; 00088 CodePointList3 to; 00089 } CaseUnfold_11_Type; 00090 00091 typedef struct { 00092 int n; 00093 OnigCodePoint code[2]; 00094 } CodePointList2; 00095 00096 typedef struct { 00097 OnigCodePoint from[2]; 00098 CodePointList2 to; 00099 } CaseUnfold_12_Type; 00100 00101 typedef struct { 00102 OnigCodePoint from[3]; 00103 CodePointList2 to; 00104 } CaseUnfold_13_Type; 00105 00106 static const CaseFold_11_Type CaseFold[] = { 00107 { 0x0041, {1, {0x0061}}}, 00108 { 0x0042, {1, {0x0062}}}, 00109 { 0x0043, {1, {0x0063}}}, 00110 { 0x0044, {1, {0x0064}}}, 00111 { 0x0045, {1, {0x0065}}}, 00112 { 0x0046, {1, {0x0066}}}, 00113 { 0x0047, {1, {0x0067}}}, 00114 { 0x0048, {1, {0x0068}}}, 00115 { 0x004a, {1, {0x006a}}}, 00116 { 0x004b, {1, {0x006b}}}, 00117 { 0x004c, {1, {0x006c}}}, 00118 { 0x004d, {1, {0x006d}}}, 00119 { 0x004e, {1, {0x006e}}}, 00120 { 0x004f, {1, {0x006f}}}, 00121 { 0x0050, {1, {0x0070}}}, 00122 { 0x0051, {1, {0x0071}}}, 00123 { 0x0052, {1, {0x0072}}}, 00124 { 0x0053, {1, {0x0073}}}, 00125 { 0x0054, {1, {0x0074}}}, 00126 { 0x0055, {1, {0x0075}}}, 00127 { 0x0056, {1, {0x0076}}}, 00128 { 0x0057, {1, {0x0077}}}, 00129 { 0x0058, {1, {0x0078}}}, 00130 { 0x0059, {1, {0x0079}}}, 00131 { 0x005a, {1, {0x007a}}}, 00132 { 0x00b5, {1, {0x03bc}}}, 00133 { 0x00c0, {1, {0x00e0}}}, 00134 { 0x00c1, {1, {0x00e1}}}, 00135 { 0x00c2, {1, {0x00e2}}}, 00136 { 0x00c3, {1, {0x00e3}}}, 00137 { 0x00c4, {1, {0x00e4}}}, 00138 { 0x00c5, {1, {0x00e5}}}, 00139 { 0x00c6, {1, {0x00e6}}}, 00140 { 0x00c7, {1, {0x00e7}}}, 00141 { 0x00c8, {1, {0x00e8}}}, 00142 { 0x00c9, {1, {0x00e9}}}, 00143 { 0x00ca, {1, {0x00ea}}}, 00144 { 0x00cb, {1, {0x00eb}}}, 00145 { 0x00cc, {1, {0x00ec}}}, 00146 { 0x00cd, {1, {0x00ed}}}, 00147 { 0x00ce, {1, {0x00ee}}}, 00148 { 0x00cf, {1, {0x00ef}}}, 00149 { 0x00d0, {1, {0x00f0}}}, 00150 { 0x00d1, {1, {0x00f1}}}, 00151 { 0x00d2, {1, {0x00f2}}}, 00152 { 0x00d3, {1, {0x00f3}}}, 00153 { 0x00d4, {1, {0x00f4}}}, 00154 { 0x00d5, {1, {0x00f5}}}, 00155 { 0x00d6, {1, {0x00f6}}}, 00156 { 0x00d8, {1, {0x00f8}}}, 00157 { 0x00d9, {1, {0x00f9}}}, 00158 { 0x00da, {1, {0x00fa}}}, 00159 { 0x00db, {1, {0x00fb}}}, 00160 { 0x00dc, {1, {0x00fc}}}, 00161 { 0x00dd, {1, {0x00fd}}}, 00162 { 0x00de, {1, {0x00fe}}}, 00163 { 0x00df, {2, {0x0073, 0x0073}}}, 00164 { 0x0100, {1, {0x0101}}}, 00165 { 0x0102, {1, {0x0103}}}, 00166 { 0x0104, {1, {0x0105}}}, 00167 { 0x0106, {1, {0x0107}}}, 00168 { 0x0108, {1, {0x0109}}}, 00169 { 0x010a, {1, {0x010b}}}, 00170 { 0x010c, {1, {0x010d}}}, 00171 { 0x010e, {1, {0x010f}}}, 00172 { 0x0110, {1, {0x0111}}}, 00173 { 0x0112, {1, {0x0113}}}, 00174 { 0x0114, {1, {0x0115}}}, 00175 { 0x0116, {1, {0x0117}}}, 00176 { 0x0118, {1, {0x0119}}}, 00177 { 0x011a, {1, {0x011b}}}, 00178 { 0x011c, {1, {0x011d}}}, 00179 { 0x011e, {1, {0x011f}}}, 00180 { 0x0120, {1, {0x0121}}}, 00181 { 0x0122, {1, {0x0123}}}, 00182 { 0x0124, {1, {0x0125}}}, 00183 { 0x0126, {1, {0x0127}}}, 00184 { 0x0128, {1, {0x0129}}}, 00185 { 0x012a, {1, {0x012b}}}, 00186 { 0x012c, {1, {0x012d}}}, 00187 { 0x012e, {1, {0x012f}}}, 00188 { 0x0132, {1, {0x0133}}}, 00189 { 0x0134, {1, {0x0135}}}, 00190 { 0x0136, {1, {0x0137}}}, 00191 { 0x0139, {1, {0x013a}}}, 00192 { 0x013b, {1, {0x013c}}}, 00193 { 0x013d, {1, {0x013e}}}, 00194 { 0x013f, {1, {0x0140}}}, 00195 { 0x0141, {1, {0x0142}}}, 00196 { 0x0143, {1, {0x0144}}}, 00197 { 0x0145, {1, {0x0146}}}, 00198 { 0x0147, {1, {0x0148}}}, 00199 { 0x0149, {2, {0x02bc, 0x006e}}}, 00200 { 0x014a, {1, {0x014b}}}, 00201 { 0x014c, {1, {0x014d}}}, 00202 { 0x014e, {1, {0x014f}}}, 00203 { 0x0150, {1, {0x0151}}}, 00204 { 0x0152, {1, {0x0153}}}, 00205 { 0x0154, {1, {0x0155}}}, 00206 { 0x0156, {1, {0x0157}}}, 00207 { 0x0158, {1, {0x0159}}}, 00208 { 0x015a, {1, {0x015b}}}, 00209 { 0x015c, {1, {0x015d}}}, 00210 { 0x015e, {1, {0x015f}}}, 00211 { 0x0160, {1, {0x0161}}}, 00212 { 0x0162, {1, {0x0163}}}, 00213 { 0x0164, {1, {0x0165}}}, 00214 { 0x0166, {1, {0x0167}}}, 00215 { 0x0168, {1, {0x0169}}}, 00216 { 0x016a, {1, {0x016b}}}, 00217 { 0x016c, {1, {0x016d}}}, 00218 { 0x016e, {1, {0x016f}}}, 00219 { 0x0170, {1, {0x0171}}}, 00220 { 0x0172, {1, {0x0173}}}, 00221 { 0x0174, {1, {0x0175}}}, 00222 { 0x0176, {1, {0x0177}}}, 00223 { 0x0178, {1, {0x00ff}}}, 00224 { 0x0179, {1, {0x017a}}}, 00225 { 0x017b, {1, {0x017c}}}, 00226 { 0x017d, {1, {0x017e}}}, 00227 { 0x017f, {1, {0x0073}}}, 00228 { 0x0181, {1, {0x0253}}}, 00229 { 0x0182, {1, {0x0183}}}, 00230 { 0x0184, {1, {0x0185}}}, 00231 { 0x0186, {1, {0x0254}}}, 00232 { 0x0187, {1, {0x0188}}}, 00233 { 0x0189, {1, {0x0256}}}, 00234 { 0x018a, {1, {0x0257}}}, 00235 { 0x018b, {1, {0x018c}}}, 00236 { 0x018e, {1, {0x01dd}}}, 00237 { 0x018f, {1, {0x0259}}}, 00238 { 0x0190, {1, {0x025b}}}, 00239 { 0x0191, {1, {0x0192}}}, 00240 { 0x0193, {1, {0x0260}}}, 00241 { 0x0194, {1, {0x0263}}}, 00242 { 0x0196, {1, {0x0269}}}, 00243 { 0x0197, {1, {0x0268}}}, 00244 { 0x0198, {1, {0x0199}}}, 00245 { 0x019c, {1, {0x026f}}}, 00246 { 0x019d, {1, {0x0272}}}, 00247 { 0x019f, {1, {0x0275}}}, 00248 { 0x01a0, {1, {0x01a1}}}, 00249 { 0x01a2, {1, {0x01a3}}}, 00250 { 0x01a4, {1, {0x01a5}}}, 00251 { 0x01a6, {1, {0x0280}}}, 00252 { 0x01a7, {1, {0x01a8}}}, 00253 { 0x01a9, {1, {0x0283}}}, 00254 { 0x01ac, {1, {0x01ad}}}, 00255 { 0x01ae, {1, {0x0288}}}, 00256 { 0x01af, {1, {0x01b0}}}, 00257 { 0x01b1, {1, {0x028a}}}, 00258 { 0x01b2, {1, {0x028b}}}, 00259 { 0x01b3, {1, {0x01b4}}}, 00260 { 0x01b5, {1, {0x01b6}}}, 00261 { 0x01b7, {1, {0x0292}}}, 00262 { 0x01b8, {1, {0x01b9}}}, 00263 { 0x01bc, {1, {0x01bd}}}, 00264 { 0x01c4, {1, {0x01c6}}}, 00265 { 0x01c5, {1, {0x01c6}}}, 00266 { 0x01c7, {1, {0x01c9}}}, 00267 { 0x01c8, {1, {0x01c9}}}, 00268 { 0x01ca, {1, {0x01cc}}}, 00269 { 0x01cb, {1, {0x01cc}}}, 00270 { 0x01cd, {1, {0x01ce}}}, 00271 { 0x01cf, {1, {0x01d0}}}, 00272 { 0x01d1, {1, {0x01d2}}}, 00273 { 0x01d3, {1, {0x01d4}}}, 00274 { 0x01d5, {1, {0x01d6}}}, 00275 { 0x01d7, {1, {0x01d8}}}, 00276 { 0x01d9, {1, {0x01da}}}, 00277 { 0x01db, {1, {0x01dc}}}, 00278 { 0x01de, {1, {0x01df}}}, 00279 { 0x01e0, {1, {0x01e1}}}, 00280 { 0x01e2, {1, {0x01e3}}}, 00281 { 0x01e4, {1, {0x01e5}}}, 00282 { 0x01e6, {1, {0x01e7}}}, 00283 { 0x01e8, {1, {0x01e9}}}, 00284 { 0x01ea, {1, {0x01eb}}}, 00285 { 0x01ec, {1, {0x01ed}}}, 00286 { 0x01ee, {1, {0x01ef}}}, 00287 { 0x01f0, {2, {0x006a, 0x030c}}}, 00288 { 0x01f1, {1, {0x01f3}}}, 00289 { 0x01f2, {1, {0x01f3}}}, 00290 { 0x01f4, {1, {0x01f5}}}, 00291 { 0x01f6, {1, {0x0195}}}, 00292 { 0x01f7, {1, {0x01bf}}}, 00293 { 0x01f8, {1, {0x01f9}}}, 00294 { 0x01fa, {1, {0x01fb}}}, 00295 { 0x01fc, {1, {0x01fd}}}, 00296 { 0x01fe, {1, {0x01ff}}}, 00297 { 0x0200, {1, {0x0201}}}, 00298 { 0x0202, {1, {0x0203}}}, 00299 { 0x0204, {1, {0x0205}}}, 00300 { 0x0206, {1, {0x0207}}}, 00301 { 0x0208, {1, {0x0209}}}, 00302 { 0x020a, {1, {0x020b}}}, 00303 { 0x020c, {1, {0x020d}}}, 00304 { 0x020e, {1, {0x020f}}}, 00305 { 0x0210, {1, {0x0211}}}, 00306 { 0x0212, {1, {0x0213}}}, 00307 { 0x0214, {1, {0x0215}}}, 00308 { 0x0216, {1, {0x0217}}}, 00309 { 0x0218, {1, {0x0219}}}, 00310 { 0x021a, {1, {0x021b}}}, 00311 { 0x021c, {1, {0x021d}}}, 00312 { 0x021e, {1, {0x021f}}}, 00313 { 0x0220, {1, {0x019e}}}, 00314 { 0x0222, {1, {0x0223}}}, 00315 { 0x0224, {1, {0x0225}}}, 00316 { 0x0226, {1, {0x0227}}}, 00317 { 0x0228, {1, {0x0229}}}, 00318 { 0x022a, {1, {0x022b}}}, 00319 { 0x022c, {1, {0x022d}}}, 00320 { 0x022e, {1, {0x022f}}}, 00321 { 0x0230, {1, {0x0231}}}, 00322 { 0x0232, {1, {0x0233}}}, 00323 { 0x023b, {1, {0x023c}}}, 00324 { 0x023d, {1, {0x019a}}}, 00325 { 0x0241, {1, {0x0294}}}, 00326 { 0x0345, {1, {0x03b9}}}, 00327 { 0x0386, {1, {0x03ac}}}, 00328 { 0x0388, {1, {0x03ad}}}, 00329 { 0x0389, {1, {0x03ae}}}, 00330 { 0x038a, {1, {0x03af}}}, 00331 { 0x038c, {1, {0x03cc}}}, 00332 { 0x038e, {1, {0x03cd}}}, 00333 { 0x038f, {1, {0x03ce}}}, 00334 { 0x0390, {3, {0x03b9, 0x0308, 0x0301}}}, 00335 { 0x0391, {1, {0x03b1}}}, 00336 { 0x0392, {1, {0x03b2}}}, 00337 { 0x0393, {1, {0x03b3}}}, 00338 { 0x0394, {1, {0x03b4}}}, 00339 { 0x0395, {1, {0x03b5}}}, 00340 { 0x0396, {1, {0x03b6}}}, 00341 { 0x0397, {1, {0x03b7}}}, 00342 { 0x0398, {1, {0x03b8}}}, 00343 { 0x0399, {1, {0x03b9}}}, 00344 { 0x039a, {1, {0x03ba}}}, 00345 { 0x039b, {1, {0x03bb}}}, 00346 { 0x039c, {1, {0x03bc}}}, 00347 { 0x039d, {1, {0x03bd}}}, 00348 { 0x039e, {1, {0x03be}}}, 00349 { 0x039f, {1, {0x03bf}}}, 00350 { 0x03a0, {1, {0x03c0}}}, 00351 { 0x03a1, {1, {0x03c1}}}, 00352 { 0x03a3, {1, {0x03c3}}}, 00353 { 0x03a4, {1, {0x03c4}}}, 00354 { 0x03a5, {1, {0x03c5}}}, 00355 { 0x03a6, {1, {0x03c6}}}, 00356 { 0x03a7, {1, {0x03c7}}}, 00357 { 0x03a8, {1, {0x03c8}}}, 00358 { 0x03a9, {1, {0x03c9}}}, 00359 { 0x03aa, {1, {0x03ca}}}, 00360 { 0x03ab, {1, {0x03cb}}}, 00361 { 0x03b0, {3, {0x03c5, 0x0308, 0x0301}}}, 00362 { 0x03c2, {1, {0x03c3}}}, 00363 { 0x03d0, {1, {0x03b2}}}, 00364 { 0x03d1, {1, {0x03b8}}}, 00365 { 0x03d5, {1, {0x03c6}}}, 00366 { 0x03d6, {1, {0x03c0}}}, 00367 { 0x03d8, {1, {0x03d9}}}, 00368 { 0x03da, {1, {0x03db}}}, 00369 { 0x03dc, {1, {0x03dd}}}, 00370 { 0x03de, {1, {0x03df}}}, 00371 { 0x03e0, {1, {0x03e1}}}, 00372 { 0x03e2, {1, {0x03e3}}}, 00373 { 0x03e4, {1, {0x03e5}}}, 00374 { 0x03e6, {1, {0x03e7}}}, 00375 { 0x03e8, {1, {0x03e9}}}, 00376 { 0x03ea, {1, {0x03eb}}}, 00377 { 0x03ec, {1, {0x03ed}}}, 00378 { 0x03ee, {1, {0x03ef}}}, 00379 { 0x03f0, {1, {0x03ba}}}, 00380 { 0x03f1, {1, {0x03c1}}}, 00381 { 0x03f4, {1, {0x03b8}}}, 00382 { 0x03f5, {1, {0x03b5}}}, 00383 { 0x03f7, {1, {0x03f8}}}, 00384 { 0x03f9, {1, {0x03f2}}}, 00385 { 0x03fa, {1, {0x03fb}}}, 00386 { 0x0400, {1, {0x0450}}}, 00387 { 0x0401, {1, {0x0451}}}, 00388 { 0x0402, {1, {0x0452}}}, 00389 { 0x0403, {1, {0x0453}}}, 00390 { 0x0404, {1, {0x0454}}}, 00391 { 0x0405, {1, {0x0455}}}, 00392 { 0x0406, {1, {0x0456}}}, 00393 { 0x0407, {1, {0x0457}}}, 00394 { 0x0408, {1, {0x0458}}}, 00395 { 0x0409, {1, {0x0459}}}, 00396 { 0x040a, {1, {0x045a}}}, 00397 { 0x040b, {1, {0x045b}}}, 00398 { 0x040c, {1, {0x045c}}}, 00399 { 0x040d, {1, {0x045d}}}, 00400 { 0x040e, {1, {0x045e}}}, 00401 { 0x040f, {1, {0x045f}}}, 00402 { 0x0410, {1, {0x0430}}}, 00403 { 0x0411, {1, {0x0431}}}, 00404 { 0x0412, {1, {0x0432}}}, 00405 { 0x0413, {1, {0x0433}}}, 00406 { 0x0414, {1, {0x0434}}}, 00407 { 0x0415, {1, {0x0435}}}, 00408 { 0x0416, {1, {0x0436}}}, 00409 { 0x0417, {1, {0x0437}}}, 00410 { 0x0418, {1, {0x0438}}}, 00411 { 0x0419, {1, {0x0439}}}, 00412 { 0x041a, {1, {0x043a}}}, 00413 { 0x041b, {1, {0x043b}}}, 00414 { 0x041c, {1, {0x043c}}}, 00415 { 0x041d, {1, {0x043d}}}, 00416 { 0x041e, {1, {0x043e}}}, 00417 { 0x041f, {1, {0x043f}}}, 00418 { 0x0420, {1, {0x0440}}}, 00419 { 0x0421, {1, {0x0441}}}, 00420 { 0x0422, {1, {0x0442}}}, 00421 { 0x0423, {1, {0x0443}}}, 00422 { 0x0424, {1, {0x0444}}}, 00423 { 0x0425, {1, {0x0445}}}, 00424 { 0x0426, {1, {0x0446}}}, 00425 { 0x0427, {1, {0x0447}}}, 00426 { 0x0428, {1, {0x0448}}}, 00427 { 0x0429, {1, {0x0449}}}, 00428 { 0x042a, {1, {0x044a}}}, 00429 { 0x042b, {1, {0x044b}}}, 00430 { 0x042c, {1, {0x044c}}}, 00431 { 0x042d, {1, {0x044d}}}, 00432 { 0x042e, {1, {0x044e}}}, 00433 { 0x042f, {1, {0x044f}}}, 00434 { 0x0460, {1, {0x0461}}}, 00435 { 0x0462, {1, {0x0463}}}, 00436 { 0x0464, {1, {0x0465}}}, 00437 { 0x0466, {1, {0x0467}}}, 00438 { 0x0468, {1, {0x0469}}}, 00439 { 0x046a, {1, {0x046b}}}, 00440 { 0x046c, {1, {0x046d}}}, 00441 { 0x046e, {1, {0x046f}}}, 00442 { 0x0470, {1, {0x0471}}}, 00443 { 0x0472, {1, {0x0473}}}, 00444 { 0x0474, {1, {0x0475}}}, 00445 { 0x0476, {1, {0x0477}}}, 00446 { 0x0478, {1, {0x0479}}}, 00447 { 0x047a, {1, {0x047b}}}, 00448 { 0x047c, {1, {0x047d}}}, 00449 { 0x047e, {1, {0x047f}}}, 00450 { 0x0480, {1, {0x0481}}}, 00451 { 0x048a, {1, {0x048b}}}, 00452 { 0x048c, {1, {0x048d}}}, 00453 { 0x048e, {1, {0x048f}}}, 00454 { 0x0490, {1, {0x0491}}}, 00455 { 0x0492, {1, {0x0493}}}, 00456 { 0x0494, {1, {0x0495}}}, 00457 { 0x0496, {1, {0x0497}}}, 00458 { 0x0498, {1, {0x0499}}}, 00459 { 0x049a, {1, {0x049b}}}, 00460 { 0x049c, {1, {0x049d}}}, 00461 { 0x049e, {1, {0x049f}}}, 00462 { 0x04a0, {1, {0x04a1}}}, 00463 { 0x04a2, {1, {0x04a3}}}, 00464 { 0x04a4, {1, {0x04a5}}}, 00465 { 0x04a6, {1, {0x04a7}}}, 00466 { 0x04a8, {1, {0x04a9}}}, 00467 { 0x04aa, {1, {0x04ab}}}, 00468 { 0x04ac, {1, {0x04ad}}}, 00469 { 0x04ae, {1, {0x04af}}}, 00470 { 0x04b0, {1, {0x04b1}}}, 00471 { 0x04b2, {1, {0x04b3}}}, 00472 { 0x04b4, {1, {0x04b5}}}, 00473 { 0x04b6, {1, {0x04b7}}}, 00474 { 0x04b8, {1, {0x04b9}}}, 00475 { 0x04ba, {1, {0x04bb}}}, 00476 { 0x04bc, {1, {0x04bd}}}, 00477 { 0x04be, {1, {0x04bf}}}, 00478 { 0x04c1, {1, {0x04c2}}}, 00479 { 0x04c3, {1, {0x04c4}}}, 00480 { 0x04c5, {1, {0x04c6}}}, 00481 { 0x04c7, {1, {0x04c8}}}, 00482 { 0x04c9, {1, {0x04ca}}}, 00483 { 0x04cb, {1, {0x04cc}}}, 00484 { 0x04cd, {1, {0x04ce}}}, 00485 { 0x04d0, {1, {0x04d1}}}, 00486 { 0x04d2, {1, {0x04d3}}}, 00487 { 0x04d4, {1, {0x04d5}}}, 00488 { 0x04d6, {1, {0x04d7}}}, 00489 { 0x04d8, {1, {0x04d9}}}, 00490 { 0x04da, {1, {0x04db}}}, 00491 { 0x04dc, {1, {0x04dd}}}, 00492 { 0x04de, {1, {0x04df}}}, 00493 { 0x04e0, {1, {0x04e1}}}, 00494 { 0x04e2, {1, {0x04e3}}}, 00495 { 0x04e4, {1, {0x04e5}}}, 00496 { 0x04e6, {1, {0x04e7}}}, 00497 { 0x04e8, {1, {0x04e9}}}, 00498 { 0x04ea, {1, {0x04eb}}}, 00499 { 0x04ec, {1, {0x04ed}}}, 00500 { 0x04ee, {1, {0x04ef}}}, 00501 { 0x04f0, {1, {0x04f1}}}, 00502 { 0x04f2, {1, {0x04f3}}}, 00503 { 0x04f4, {1, {0x04f5}}}, 00504 { 0x04f6, {1, {0x04f7}}}, 00505 { 0x04f8, {1, {0x04f9}}}, 00506 { 0x0500, {1, {0x0501}}}, 00507 { 0x0502, {1, {0x0503}}}, 00508 { 0x0504, {1, {0x0505}}}, 00509 { 0x0506, {1, {0x0507}}}, 00510 { 0x0508, {1, {0x0509}}}, 00511 { 0x050a, {1, {0x050b}}}, 00512 { 0x050c, {1, {0x050d}}}, 00513 { 0x050e, {1, {0x050f}}}, 00514 { 0x0531, {1, {0x0561}}}, 00515 { 0x0532, {1, {0x0562}}}, 00516 { 0x0533, {1, {0x0563}}}, 00517 { 0x0534, {1, {0x0564}}}, 00518 { 0x0535, {1, {0x0565}}}, 00519 { 0x0536, {1, {0x0566}}}, 00520 { 0x0537, {1, {0x0567}}}, 00521 { 0x0538, {1, {0x0568}}}, 00522 { 0x0539, {1, {0x0569}}}, 00523 { 0x053a, {1, {0x056a}}}, 00524 { 0x053b, {1, {0x056b}}}, 00525 { 0x053c, {1, {0x056c}}}, 00526 { 0x053d, {1, {0x056d}}}, 00527 { 0x053e, {1, {0x056e}}}, 00528 { 0x053f, {1, {0x056f}}}, 00529 { 0x0540, {1, {0x0570}}}, 00530 { 0x0541, {1, {0x0571}}}, 00531 { 0x0542, {1, {0x0572}}}, 00532 { 0x0543, {1, {0x0573}}}, 00533 { 0x0544, {1, {0x0574}}}, 00534 { 0x0545, {1, {0x0575}}}, 00535 { 0x0546, {1, {0x0576}}}, 00536 { 0x0547, {1, {0x0577}}}, 00537 { 0x0548, {1, {0x0578}}}, 00538 { 0x0549, {1, {0x0579}}}, 00539 { 0x054a, {1, {0x057a}}}, 00540 { 0x054b, {1, {0x057b}}}, 00541 { 0x054c, {1, {0x057c}}}, 00542 { 0x054d, {1, {0x057d}}}, 00543 { 0x054e, {1, {0x057e}}}, 00544 { 0x054f, {1, {0x057f}}}, 00545 { 0x0550, {1, {0x0580}}}, 00546 { 0x0551, {1, {0x0581}}}, 00547 { 0x0552, {1, {0x0582}}}, 00548 { 0x0553, {1, {0x0583}}}, 00549 { 0x0554, {1, {0x0584}}}, 00550 { 0x0555, {1, {0x0585}}}, 00551 { 0x0556, {1, {0x0586}}}, 00552 { 0x0587, {2, {0x0565, 0x0582}}}, 00553 { 0x10a0, {1, {0x2d00}}}, 00554 { 0x10a1, {1, {0x2d01}}}, 00555 { 0x10a2, {1, {0x2d02}}}, 00556 { 0x10a3, {1, {0x2d03}}}, 00557 { 0x10a4, {1, {0x2d04}}}, 00558 { 0x10a5, {1, {0x2d05}}}, 00559 { 0x10a6, {1, {0x2d06}}}, 00560 { 0x10a7, {1, {0x2d07}}}, 00561 { 0x10a8, {1, {0x2d08}}}, 00562 { 0x10a9, {1, {0x2d09}}}, 00563 { 0x10aa, {1, {0x2d0a}}}, 00564 { 0x10ab, {1, {0x2d0b}}}, 00565 { 0x10ac, {1, {0x2d0c}}}, 00566 { 0x10ad, {1, {0x2d0d}}}, 00567 { 0x10ae, {1, {0x2d0e}}}, 00568 { 0x10af, {1, {0x2d0f}}}, 00569 { 0x10b0, {1, {0x2d10}}}, 00570 { 0x10b1, {1, {0x2d11}}}, 00571 { 0x10b2, {1, {0x2d12}}}, 00572 { 0x10b3, {1, {0x2d13}}}, 00573 { 0x10b4, {1, {0x2d14}}}, 00574 { 0x10b5, {1, {0x2d15}}}, 00575 { 0x10b6, {1, {0x2d16}}}, 00576 { 0x10b7, {1, {0x2d17}}}, 00577 { 0x10b8, {1, {0x2d18}}}, 00578 { 0x10b9, {1, {0x2d19}}}, 00579 { 0x10ba, {1, {0x2d1a}}}, 00580 { 0x10bb, {1, {0x2d1b}}}, 00581 { 0x10bc, {1, {0x2d1c}}}, 00582 { 0x10bd, {1, {0x2d1d}}}, 00583 { 0x10be, {1, {0x2d1e}}}, 00584 { 0x10bf, {1, {0x2d1f}}}, 00585 { 0x10c0, {1, {0x2d20}}}, 00586 { 0x10c1, {1, {0x2d21}}}, 00587 { 0x10c2, {1, {0x2d22}}}, 00588 { 0x10c3, {1, {0x2d23}}}, 00589 { 0x10c4, {1, {0x2d24}}}, 00590 { 0x10c5, {1, {0x2d25}}}, 00591 { 0x1e00, {1, {0x1e01}}}, 00592 { 0x1e02, {1, {0x1e03}}}, 00593 { 0x1e04, {1, {0x1e05}}}, 00594 { 0x1e06, {1, {0x1e07}}}, 00595 { 0x1e08, {1, {0x1e09}}}, 00596 { 0x1e0a, {1, {0x1e0b}}}, 00597 { 0x1e0c, {1, {0x1e0d}}}, 00598 { 0x1e0e, {1, {0x1e0f}}}, 00599 { 0x1e10, {1, {0x1e11}}}, 00600 { 0x1e12, {1, {0x1e13}}}, 00601 { 0x1e14, {1, {0x1e15}}}, 00602 { 0x1e16, {1, {0x1e17}}}, 00603 { 0x1e18, {1, {0x1e19}}}, 00604 { 0x1e1a, {1, {0x1e1b}}}, 00605 { 0x1e1c, {1, {0x1e1d}}}, 00606 { 0x1e1e, {1, {0x1e1f}}}, 00607 { 0x1e20, {1, {0x1e21}}}, 00608 { 0x1e22, {1, {0x1e23}}}, 00609 { 0x1e24, {1, {0x1e25}}}, 00610 { 0x1e26, {1, {0x1e27}}}, 00611 { 0x1e28, {1, {0x1e29}}}, 00612 { 0x1e2a, {1, {0x1e2b}}}, 00613 { 0x1e2c, {1, {0x1e2d}}}, 00614 { 0x1e2e, {1, {0x1e2f}}}, 00615 { 0x1e30, {1, {0x1e31}}}, 00616 { 0x1e32, {1, {0x1e33}}}, 00617 { 0x1e34, {1, {0x1e35}}}, 00618 { 0x1e36, {1, {0x1e37}}}, 00619 { 0x1e38, {1, {0x1e39}}}, 00620 { 0x1e3a, {1, {0x1e3b}}}, 00621 { 0x1e3c, {1, {0x1e3d}}}, 00622 { 0x1e3e, {1, {0x1e3f}}}, 00623 { 0x1e40, {1, {0x1e41}}}, 00624 { 0x1e42, {1, {0x1e43}}}, 00625 { 0x1e44, {1, {0x1e45}}}, 00626 { 0x1e46, {1, {0x1e47}}}, 00627 { 0x1e48, {1, {0x1e49}}}, 00628 { 0x1e4a, {1, {0x1e4b}}}, 00629 { 0x1e4c, {1, {0x1e4d}}}, 00630 { 0x1e4e, {1, {0x1e4f}}}, 00631 { 0x1e50, {1, {0x1e51}}}, 00632 { 0x1e52, {1, {0x1e53}}}, 00633 { 0x1e54, {1, {0x1e55}}}, 00634 { 0x1e56, {1, {0x1e57}}}, 00635 { 0x1e58, {1, {0x1e59}}}, 00636 { 0x1e5a, {1, {0x1e5b}}}, 00637 { 0x1e5c, {1, {0x1e5d}}}, 00638 { 0x1e5e, {1, {0x1e5f}}}, 00639 { 0x1e60, {1, {0x1e61}}}, 00640 { 0x1e62, {1, {0x1e63}}}, 00641 { 0x1e64, {1, {0x1e65}}}, 00642 { 0x1e66, {1, {0x1e67}}}, 00643 { 0x1e68, {1, {0x1e69}}}, 00644 { 0x1e6a, {1, {0x1e6b}}}, 00645 { 0x1e6c, {1, {0x1e6d}}}, 00646 { 0x1e6e, {1, {0x1e6f}}}, 00647 { 0x1e70, {1, {0x1e71}}}, 00648 { 0x1e72, {1, {0x1e73}}}, 00649 { 0x1e74, {1, {0x1e75}}}, 00650 { 0x1e76, {1, {0x1e77}}}, 00651 { 0x1e78, {1, {0x1e79}}}, 00652 { 0x1e7a, {1, {0x1e7b}}}, 00653 { 0x1e7c, {1, {0x1e7d}}}, 00654 { 0x1e7e, {1, {0x1e7f}}}, 00655 { 0x1e80, {1, {0x1e81}}}, 00656 { 0x1e82, {1, {0x1e83}}}, 00657 { 0x1e84, {1, {0x1e85}}}, 00658 { 0x1e86, {1, {0x1e87}}}, 00659 { 0x1e88, {1, {0x1e89}}}, 00660 { 0x1e8a, {1, {0x1e8b}}}, 00661 { 0x1e8c, {1, {0x1e8d}}}, 00662 { 0x1e8e, {1, {0x1e8f}}}, 00663 { 0x1e90, {1, {0x1e91}}}, 00664 { 0x1e92, {1, {0x1e93}}}, 00665 { 0x1e94, {1, {0x1e95}}}, 00666 { 0x1e96, {2, {0x0068, 0x0331}}}, 00667 { 0x1e97, {2, {0x0074, 0x0308}}}, 00668 { 0x1e98, {2, {0x0077, 0x030a}}}, 00669 { 0x1e99, {2, {0x0079, 0x030a}}}, 00670 { 0x1e9a, {2, {0x0061, 0x02be}}}, 00671 { 0x1e9b, {1, {0x1e61}}}, 00672 { 0x1ea0, {1, {0x1ea1}}}, 00673 { 0x1ea2, {1, {0x1ea3}}}, 00674 { 0x1ea4, {1, {0x1ea5}}}, 00675 { 0x1ea6, {1, {0x1ea7}}}, 00676 { 0x1ea8, {1, {0x1ea9}}}, 00677 { 0x1eaa, {1, {0x1eab}}}, 00678 { 0x1eac, {1, {0x1ead}}}, 00679 { 0x1eae, {1, {0x1eaf}}}, 00680 { 0x1eb0, {1, {0x1eb1}}}, 00681 { 0x1eb2, {1, {0x1eb3}}}, 00682 { 0x1eb4, {1, {0x1eb5}}}, 00683 { 0x1eb6, {1, {0x1eb7}}}, 00684 { 0x1eb8, {1, {0x1eb9}}}, 00685 { 0x1eba, {1, {0x1ebb}}}, 00686 { 0x1ebc, {1, {0x1ebd}}}, 00687 { 0x1ebe, {1, {0x1ebf}}}, 00688 { 0x1ec0, {1, {0x1ec1}}}, 00689 { 0x1ec2, {1, {0x1ec3}}}, 00690 { 0x1ec4, {1, {0x1ec5}}}, 00691 { 0x1ec6, {1, {0x1ec7}}}, 00692 { 0x1ec8, {1, {0x1ec9}}}, 00693 { 0x1eca, {1, {0x1ecb}}}, 00694 { 0x1ecc, {1, {0x1ecd}}}, 00695 { 0x1ece, {1, {0x1ecf}}}, 00696 { 0x1ed0, {1, {0x1ed1}}}, 00697 { 0x1ed2, {1, {0x1ed3}}}, 00698 { 0x1ed4, {1, {0x1ed5}}}, 00699 { 0x1ed6, {1, {0x1ed7}}}, 00700 { 0x1ed8, {1, {0x1ed9}}}, 00701 { 0x1eda, {1, {0x1edb}}}, 00702 { 0x1edc, {1, {0x1edd}}}, 00703 { 0x1ede, {1, {0x1edf}}}, 00704 { 0x1ee0, {1, {0x1ee1}}}, 00705 { 0x1ee2, {1, {0x1ee3}}}, 00706 { 0x1ee4, {1, {0x1ee5}}}, 00707 { 0x1ee6, {1, {0x1ee7}}}, 00708 { 0x1ee8, {1, {0x1ee9}}}, 00709 { 0x1eea, {1, {0x1eeb}}}, 00710 { 0x1eec, {1, {0x1eed}}}, 00711 { 0x1eee, {1, {0x1eef}}}, 00712 { 0x1ef0, {1, {0x1ef1}}}, 00713 { 0x1ef2, {1, {0x1ef3}}}, 00714 { 0x1ef4, {1, {0x1ef5}}}, 00715 { 0x1ef6, {1, {0x1ef7}}}, 00716 { 0x1ef8, {1, {0x1ef9}}}, 00717 { 0x1f08, {1, {0x1f00}}}, 00718 { 0x1f09, {1, {0x1f01}}}, 00719 { 0x1f0a, {1, {0x1f02}}}, 00720 { 0x1f0b, {1, {0x1f03}}}, 00721 { 0x1f0c, {1, {0x1f04}}}, 00722 { 0x1f0d, {1, {0x1f05}}}, 00723 { 0x1f0e, {1, {0x1f06}}}, 00724 { 0x1f0f, {1, {0x1f07}}}, 00725 { 0x1f18, {1, {0x1f10}}}, 00726 { 0x1f19, {1, {0x1f11}}}, 00727 { 0x1f1a, {1, {0x1f12}}}, 00728 { 0x1f1b, {1, {0x1f13}}}, 00729 { 0x1f1c, {1, {0x1f14}}}, 00730 { 0x1f1d, {1, {0x1f15}}}, 00731 { 0x1f28, {1, {0x1f20}}}, 00732 { 0x1f29, {1, {0x1f21}}}, 00733 { 0x1f2a, {1, {0x1f22}}}, 00734 { 0x1f2b, {1, {0x1f23}}}, 00735 { 0x1f2c, {1, {0x1f24}}}, 00736 { 0x1f2d, {1, {0x1f25}}}, 00737 { 0x1f2e, {1, {0x1f26}}}, 00738 { 0x1f2f, {1, {0x1f27}}}, 00739 { 0x1f38, {1, {0x1f30}}}, 00740 { 0x1f39, {1, {0x1f31}}}, 00741 { 0x1f3a, {1, {0x1f32}}}, 00742 { 0x1f3b, {1, {0x1f33}}}, 00743 { 0x1f3c, {1, {0x1f34}}}, 00744 { 0x1f3d, {1, {0x1f35}}}, 00745 { 0x1f3e, {1, {0x1f36}}}, 00746 { 0x1f3f, {1, {0x1f37}}}, 00747 { 0x1f48, {1, {0x1f40}}}, 00748 { 0x1f49, {1, {0x1f41}}}, 00749 { 0x1f4a, {1, {0x1f42}}}, 00750 { 0x1f4b, {1, {0x1f43}}}, 00751 { 0x1f4c, {1, {0x1f44}}}, 00752 { 0x1f4d, {1, {0x1f45}}}, 00753 { 0x1f50, {2, {0x03c5, 0x0313}}}, 00754 { 0x1f52, {3, {0x03c5, 0x0313, 0x0300}}}, 00755 { 0x1f54, {3, {0x03c5, 0x0313, 0x0301}}}, 00756 { 0x1f56, {3, {0x03c5, 0x0313, 0x0342}}}, 00757 { 0x1f59, {1, {0x1f51}}}, 00758 { 0x1f5b, {1, {0x1f53}}}, 00759 { 0x1f5d, {1, {0x1f55}}}, 00760 { 0x1f5f, {1, {0x1f57}}}, 00761 { 0x1f68, {1, {0x1f60}}}, 00762 { 0x1f69, {1, {0x1f61}}}, 00763 { 0x1f6a, {1, {0x1f62}}}, 00764 { 0x1f6b, {1, {0x1f63}}}, 00765 { 0x1f6c, {1, {0x1f64}}}, 00766 { 0x1f6d, {1, {0x1f65}}}, 00767 { 0x1f6e, {1, {0x1f66}}}, 00768 { 0x1f6f, {1, {0x1f67}}}, 00769 { 0x1f80, {2, {0x1f00, 0x03b9}}}, 00770 { 0x1f81, {2, {0x1f01, 0x03b9}}}, 00771 { 0x1f82, {2, {0x1f02, 0x03b9}}}, 00772 { 0x1f83, {2, {0x1f03, 0x03b9}}}, 00773 { 0x1f84, {2, {0x1f04, 0x03b9}}}, 00774 { 0x1f85, {2, {0x1f05, 0x03b9}}}, 00775 { 0x1f86, {2, {0x1f06, 0x03b9}}}, 00776 { 0x1f87, {2, {0x1f07, 0x03b9}}}, 00777 { 0x1f88, {2, {0x1f00, 0x03b9}}}, 00778 { 0x1f89, {2, {0x1f01, 0x03b9}}}, 00779 { 0x1f8a, {2, {0x1f02, 0x03b9}}}, 00780 { 0x1f8b, {2, {0x1f03, 0x03b9}}}, 00781 { 0x1f8c, {2, {0x1f04, 0x03b9}}}, 00782 { 0x1f8d, {2, {0x1f05, 0x03b9}}}, 00783 { 0x1f8e, {2, {0x1f06, 0x03b9}}}, 00784 { 0x1f8f, {2, {0x1f07, 0x03b9}}}, 00785 { 0x1f90, {2, {0x1f20, 0x03b9}}}, 00786 { 0x1f91, {2, {0x1f21, 0x03b9}}}, 00787 { 0x1f92, {2, {0x1f22, 0x03b9}}}, 00788 { 0x1f93, {2, {0x1f23, 0x03b9}}}, 00789 { 0x1f94, {2, {0x1f24, 0x03b9}}}, 00790 { 0x1f95, {2, {0x1f25, 0x03b9}}}, 00791 { 0x1f96, {2, {0x1f26, 0x03b9}}}, 00792 { 0x1f97, {2, {0x1f27, 0x03b9}}}, 00793 { 0x1f98, {2, {0x1f20, 0x03b9}}}, 00794 { 0x1f99, {2, {0x1f21, 0x03b9}}}, 00795 { 0x1f9a, {2, {0x1f22, 0x03b9}}}, 00796 { 0x1f9b, {2, {0x1f23, 0x03b9}}}, 00797 { 0x1f9c, {2, {0x1f24, 0x03b9}}}, 00798 { 0x1f9d, {2, {0x1f25, 0x03b9}}}, 00799 { 0x1f9e, {2, {0x1f26, 0x03b9}}}, 00800 { 0x1f9f, {2, {0x1f27, 0x03b9}}}, 00801 { 0x1fa0, {2, {0x1f60, 0x03b9}}}, 00802 { 0x1fa1, {2, {0x1f61, 0x03b9}}}, 00803 { 0x1fa2, {2, {0x1f62, 0x03b9}}}, 00804 { 0x1fa3, {2, {0x1f63, 0x03b9}}}, 00805 { 0x1fa4, {2, {0x1f64, 0x03b9}}}, 00806 { 0x1fa5, {2, {0x1f65, 0x03b9}}}, 00807 { 0x1fa6, {2, {0x1f66, 0x03b9}}}, 00808 { 0x1fa7, {2, {0x1f67, 0x03b9}}}, 00809 { 0x1fa8, {2, {0x1f60, 0x03b9}}}, 00810 { 0x1fa9, {2, {0x1f61, 0x03b9}}}, 00811 { 0x1faa, {2, {0x1f62, 0x03b9}}}, 00812 { 0x1fab, {2, {0x1f63, 0x03b9}}}, 00813 { 0x1fac, {2, {0x1f64, 0x03b9}}}, 00814 { 0x1fad, {2, {0x1f65, 0x03b9}}}, 00815 { 0x1fae, {2, {0x1f66, 0x03b9}}}, 00816 { 0x1faf, {2, {0x1f67, 0x03b9}}}, 00817 { 0x1fb2, {2, {0x1f70, 0x03b9}}}, 00818 { 0x1fb3, {2, {0x03b1, 0x03b9}}}, 00819 { 0x1fb4, {2, {0x03ac, 0x03b9}}}, 00820 { 0x1fb6, {2, {0x03b1, 0x0342}}}, 00821 { 0x1fb7, {3, {0x03b1, 0x0342, 0x03b9}}}, 00822 { 0x1fb8, {1, {0x1fb0}}}, 00823 { 0x1fb9, {1, {0x1fb1}}}, 00824 { 0x1fba, {1, {0x1f70}}}, 00825 { 0x1fbb, {1, {0x1f71}}}, 00826 { 0x1fbc, {2, {0x03b1, 0x03b9}}}, 00827 { 0x1fbe, {1, {0x03b9}}}, 00828 { 0x1fc2, {2, {0x1f74, 0x03b9}}}, 00829 { 0x1fc3, {2, {0x03b7, 0x03b9}}}, 00830 { 0x1fc4, {2, {0x03ae, 0x03b9}}}, 00831 { 0x1fc6, {2, {0x03b7, 0x0342}}}, 00832 { 0x1fc7, {3, {0x03b7, 0x0342, 0x03b9}}}, 00833 { 0x1fc8, {1, {0x1f72}}}, 00834 { 0x1fc9, {1, {0x1f73}}}, 00835 { 0x1fca, {1, {0x1f74}}}, 00836 { 0x1fcb, {1, {0x1f75}}}, 00837 { 0x1fcc, {2, {0x03b7, 0x03b9}}}, 00838 { 0x1fd2, {3, {0x03b9, 0x0308, 0x0300}}}, 00839 { 0x1fd3, {3, {0x03b9, 0x0308, 0x0301}}}, 00840 { 0x1fd6, {2, {0x03b9, 0x0342}}}, 00841 { 0x1fd7, {3, {0x03b9, 0x0308, 0x0342}}}, 00842 { 0x1fd8, {1, {0x1fd0}}}, 00843 { 0x1fd9, {1, {0x1fd1}}}, 00844 { 0x1fda, {1, {0x1f76}}}, 00845 { 0x1fdb, {1, {0x1f77}}}, 00846 { 0x1fe2, {3, {0x03c5, 0x0308, 0x0300}}}, 00847 { 0x1fe3, {3, {0x03c5, 0x0308, 0x0301}}}, 00848 { 0x1fe4, {2, {0x03c1, 0x0313}}}, 00849 { 0x1fe6, {2, {0x03c5, 0x0342}}}, 00850 { 0x1fe7, {3, {0x03c5, 0x0308, 0x0342}}}, 00851 { 0x1fe8, {1, {0x1fe0}}}, 00852 { 0x1fe9, {1, {0x1fe1}}}, 00853 { 0x1fea, {1, {0x1f7a}}}, 00854 { 0x1feb, {1, {0x1f7b}}}, 00855 { 0x1fec, {1, {0x1fe5}}}, 00856 { 0x1ff2, {2, {0x1f7c, 0x03b9}}}, 00857 { 0x1ff3, {2, {0x03c9, 0x03b9}}}, 00858 { 0x1ff4, {2, {0x03ce, 0x03b9}}}, 00859 { 0x1ff6, {2, {0x03c9, 0x0342}}}, 00860 { 0x1ff7, {3, {0x03c9, 0x0342, 0x03b9}}}, 00861 { 0x1ff8, {1, {0x1f78}}}, 00862 { 0x1ff9, {1, {0x1f79}}}, 00863 { 0x1ffa, {1, {0x1f7c}}}, 00864 { 0x1ffb, {1, {0x1f7d}}}, 00865 { 0x1ffc, {2, {0x03c9, 0x03b9}}}, 00866 { 0x2126, {1, {0x03c9}}}, 00867 { 0x212a, {1, {0x006b}}}, 00868 { 0x212b, {1, {0x00e5}}}, 00869 { 0x2160, {1, {0x2170}}}, 00870 { 0x2161, {1, {0x2171}}}, 00871 { 0x2162, {1, {0x2172}}}, 00872 { 0x2163, {1, {0x2173}}}, 00873 { 0x2164, {1, {0x2174}}}, 00874 { 0x2165, {1, {0x2175}}}, 00875 { 0x2166, {1, {0x2176}}}, 00876 { 0x2167, {1, {0x2177}}}, 00877 { 0x2168, {1, {0x2178}}}, 00878 { 0x2169, {1, {0x2179}}}, 00879 { 0x216a, {1, {0x217a}}}, 00880 { 0x216b, {1, {0x217b}}}, 00881 { 0x216c, {1, {0x217c}}}, 00882 { 0x216d, {1, {0x217d}}}, 00883 { 0x216e, {1, {0x217e}}}, 00884 { 0x216f, {1, {0x217f}}}, 00885 { 0x24b6, {1, {0x24d0}}}, 00886 { 0x24b7, {1, {0x24d1}}}, 00887 { 0x24b8, {1, {0x24d2}}}, 00888 { 0x24b9, {1, {0x24d3}}}, 00889 { 0x24ba, {1, {0x24d4}}}, 00890 { 0x24bb, {1, {0x24d5}}}, 00891 { 0x24bc, {1, {0x24d6}}}, 00892 { 0x24bd, {1, {0x24d7}}}, 00893 { 0x24be, {1, {0x24d8}}}, 00894 { 0x24bf, {1, {0x24d9}}}, 00895 { 0x24c0, {1, {0x24da}}}, 00896 { 0x24c1, {1, {0x24db}}}, 00897 { 0x24c2, {1, {0x24dc}}}, 00898 { 0x24c3, {1, {0x24dd}}}, 00899 { 0x24c4, {1, {0x24de}}}, 00900 { 0x24c5, {1, {0x24df}}}, 00901 { 0x24c6, {1, {0x24e0}}}, 00902 { 0x24c7, {1, {0x24e1}}}, 00903 { 0x24c8, {1, {0x24e2}}}, 00904 { 0x24c9, {1, {0x24e3}}}, 00905 { 0x24ca, {1, {0x24e4}}}, 00906 { 0x24cb, {1, {0x24e5}}}, 00907 { 0x24cc, {1, {0x24e6}}}, 00908 { 0x24cd, {1, {0x24e7}}}, 00909 { 0x24ce, {1, {0x24e8}}}, 00910 { 0x24cf, {1, {0x24e9}}}, 00911 { 0x2c00, {1, {0x2c30}}}, 00912 { 0x2c01, {1, {0x2c31}}}, 00913 { 0x2c02, {1, {0x2c32}}}, 00914 { 0x2c03, {1, {0x2c33}}}, 00915 { 0x2c04, {1, {0x2c34}}}, 00916 { 0x2c05, {1, {0x2c35}}}, 00917 { 0x2c06, {1, {0x2c36}}}, 00918 { 0x2c07, {1, {0x2c37}}}, 00919 { 0x2c08, {1, {0x2c38}}}, 00920 { 0x2c09, {1, {0x2c39}}}, 00921 { 0x2c0a, {1, {0x2c3a}}}, 00922 { 0x2c0b, {1, {0x2c3b}}}, 00923 { 0x2c0c, {1, {0x2c3c}}}, 00924 { 0x2c0d, {1, {0x2c3d}}}, 00925 { 0x2c0e, {1, {0x2c3e}}}, 00926 { 0x2c0f, {1, {0x2c3f}}}, 00927 { 0x2c10, {1, {0x2c40}}}, 00928 { 0x2c11, {1, {0x2c41}}}, 00929 { 0x2c12, {1, {0x2c42}}}, 00930 { 0x2c13, {1, {0x2c43}}}, 00931 { 0x2c14, {1, {0x2c44}}}, 00932 { 0x2c15, {1, {0x2c45}}}, 00933 { 0x2c16, {1, {0x2c46}}}, 00934 { 0x2c17, {1, {0x2c47}}}, 00935 { 0x2c18, {1, {0x2c48}}}, 00936 { 0x2c19, {1, {0x2c49}}}, 00937 { 0x2c1a, {1, {0x2c4a}}}, 00938 { 0x2c1b, {1, {0x2c4b}}}, 00939 { 0x2c1c, {1, {0x2c4c}}}, 00940 { 0x2c1d, {1, {0x2c4d}}}, 00941 { 0x2c1e, {1, {0x2c4e}}}, 00942 { 0x2c1f, {1, {0x2c4f}}}, 00943 { 0x2c20, {1, {0x2c50}}}, 00944 { 0x2c21, {1, {0x2c51}}}, 00945 { 0x2c22, {1, {0x2c52}}}, 00946 { 0x2c23, {1, {0x2c53}}}, 00947 { 0x2c24, {1, {0x2c54}}}, 00948 { 0x2c25, {1, {0x2c55}}}, 00949 { 0x2c26, {1, {0x2c56}}}, 00950 { 0x2c27, {1, {0x2c57}}}, 00951 { 0x2c28, {1, {0x2c58}}}, 00952 { 0x2c29, {1, {0x2c59}}}, 00953 { 0x2c2a, {1, {0x2c5a}}}, 00954 { 0x2c2b, {1, {0x2c5b}}}, 00955 { 0x2c2c, {1, {0x2c5c}}}, 00956 { 0x2c2d, {1, {0x2c5d}}}, 00957 { 0x2c2e, {1, {0x2c5e}}}, 00958 { 0x2c80, {1, {0x2c81}}}, 00959 { 0x2c82, {1, {0x2c83}}}, 00960 { 0x2c84, {1, {0x2c85}}}, 00961 { 0x2c86, {1, {0x2c87}}}, 00962 { 0x2c88, {1, {0x2c89}}}, 00963 { 0x2c8a, {1, {0x2c8b}}}, 00964 { 0x2c8c, {1, {0x2c8d}}}, 00965 { 0x2c8e, {1, {0x2c8f}}}, 00966 { 0x2c90, {1, {0x2c91}}}, 00967 { 0x2c92, {1, {0x2c93}}}, 00968 { 0x2c94, {1, {0x2c95}}}, 00969 { 0x2c96, {1, {0x2c97}}}, 00970 { 0x2c98, {1, {0x2c99}}}, 00971 { 0x2c9a, {1, {0x2c9b}}}, 00972 { 0x2c9c, {1, {0x2c9d}}}, 00973 { 0x2c9e, {1, {0x2c9f}}}, 00974 { 0x2ca0, {1, {0x2ca1}}}, 00975 { 0x2ca2, {1, {0x2ca3}}}, 00976 { 0x2ca4, {1, {0x2ca5}}}, 00977 { 0x2ca6, {1, {0x2ca7}}}, 00978 { 0x2ca8, {1, {0x2ca9}}}, 00979 { 0x2caa, {1, {0x2cab}}}, 00980 { 0x2cac, {1, {0x2cad}}}, 00981 { 0x2cae, {1, {0x2caf}}}, 00982 { 0x2cb0, {1, {0x2cb1}}}, 00983 { 0x2cb2, {1, {0x2cb3}}}, 00984 { 0x2cb4, {1, {0x2cb5}}}, 00985 { 0x2cb6, {1, {0x2cb7}}}, 00986 { 0x2cb8, {1, {0x2cb9}}}, 00987 { 0x2cba, {1, {0x2cbb}}}, 00988 { 0x2cbc, {1, {0x2cbd}}}, 00989 { 0x2cbe, {1, {0x2cbf}}}, 00990 { 0x2cc0, {1, {0x2cc1}}}, 00991 { 0x2cc2, {1, {0x2cc3}}}, 00992 { 0x2cc4, {1, {0x2cc5}}}, 00993 { 0x2cc6, {1, {0x2cc7}}}, 00994 { 0x2cc8, {1, {0x2cc9}}}, 00995 { 0x2cca, {1, {0x2ccb}}}, 00996 { 0x2ccc, {1, {0x2ccd}}}, 00997 { 0x2cce, {1, {0x2ccf}}}, 00998 { 0x2cd0, {1, {0x2cd1}}}, 00999 { 0x2cd2, {1, {0x2cd3}}}, 01000 { 0x2cd4, {1, {0x2cd5}}}, 01001 { 0x2cd6, {1, {0x2cd7}}}, 01002 { 0x2cd8, {1, {0x2cd9}}}, 01003 { 0x2cda, {1, {0x2cdb}}}, 01004 { 0x2cdc, {1, {0x2cdd}}}, 01005 { 0x2cde, {1, {0x2cdf}}}, 01006 { 0x2ce0, {1, {0x2ce1}}}, 01007 { 0x2ce2, {1, {0x2ce3}}}, 01008 { 0xfb00, {2, {0x0066, 0x0066}}}, 01009 { 0xfb01, {2, {0x0066, 0x0069}}}, 01010 { 0xfb02, {2, {0x0066, 0x006c}}}, 01011 { 0xfb03, {3, {0x0066, 0x0066, 0x0069}}}, 01012 { 0xfb04, {3, {0x0066, 0x0066, 0x006c}}}, 01013 { 0xfb05, {2, {0x0073, 0x0074}}}, 01014 { 0xfb06, {2, {0x0073, 0x0074}}}, 01015 { 0xfb13, {2, {0x0574, 0x0576}}}, 01016 { 0xfb14, {2, {0x0574, 0x0565}}}, 01017 { 0xfb15, {2, {0x0574, 0x056b}}}, 01018 { 0xfb16, {2, {0x057e, 0x0576}}}, 01019 { 0xfb17, {2, {0x0574, 0x056d}}}, 01020 { 0xff21, {1, {0xff41}}}, 01021 { 0xff22, {1, {0xff42}}}, 01022 { 0xff23, {1, {0xff43}}}, 01023 { 0xff24, {1, {0xff44}}}, 01024 { 0xff25, {1, {0xff45}}}, 01025 { 0xff26, {1, {0xff46}}}, 01026 { 0xff27, {1, {0xff47}}}, 01027 { 0xff28, {1, {0xff48}}}, 01028 { 0xff29, {1, {0xff49}}}, 01029 { 0xff2a, {1, {0xff4a}}}, 01030 { 0xff2b, {1, {0xff4b}}}, 01031 { 0xff2c, {1, {0xff4c}}}, 01032 { 0xff2d, {1, {0xff4d}}}, 01033 { 0xff2e, {1, {0xff4e}}}, 01034 { 0xff2f, {1, {0xff4f}}}, 01035 { 0xff30, {1, {0xff50}}}, 01036 { 0xff31, {1, {0xff51}}}, 01037 { 0xff32, {1, {0xff52}}}, 01038 { 0xff33, {1, {0xff53}}}, 01039 { 0xff34, {1, {0xff54}}}, 01040 { 0xff35, {1, {0xff55}}}, 01041 { 0xff36, {1, {0xff56}}}, 01042 { 0xff37, {1, {0xff57}}}, 01043 { 0xff38, {1, {0xff58}}}, 01044 { 0xff39, {1, {0xff59}}}, 01045 { 0xff3a, {1, {0xff5a}}}, 01046 { 0x10400, {1, {0x10428}}}, 01047 { 0x10401, {1, {0x10429}}}, 01048 { 0x10402, {1, {0x1042a}}}, 01049 { 0x10403, {1, {0x1042b}}}, 01050 { 0x10404, {1, {0x1042c}}}, 01051 { 0x10405, {1, {0x1042d}}}, 01052 { 0x10406, {1, {0x1042e}}}, 01053 { 0x10407, {1, {0x1042f}}}, 01054 { 0x10408, {1, {0x10430}}}, 01055 { 0x10409, {1, {0x10431}}}, 01056 { 0x1040a, {1, {0x10432}}}, 01057 { 0x1040b, {1, {0x10433}}}, 01058 { 0x1040c, {1, {0x10434}}}, 01059 { 0x1040d, {1, {0x10435}}}, 01060 { 0x1040e, {1, {0x10436}}}, 01061 { 0x1040f, {1, {0x10437}}}, 01062 { 0x10410, {1, {0x10438}}}, 01063 { 0x10411, {1, {0x10439}}}, 01064 { 0x10412, {1, {0x1043a}}}, 01065 { 0x10413, {1, {0x1043b}}}, 01066 { 0x10414, {1, {0x1043c}}}, 01067 { 0x10415, {1, {0x1043d}}}, 01068 { 0x10416, {1, {0x1043e}}}, 01069 { 0x10417, {1, {0x1043f}}}, 01070 { 0x10418, {1, {0x10440}}}, 01071 { 0x10419, {1, {0x10441}}}, 01072 { 0x1041a, {1, {0x10442}}}, 01073 { 0x1041b, {1, {0x10443}}}, 01074 { 0x1041c, {1, {0x10444}}}, 01075 { 0x1041d, {1, {0x10445}}}, 01076 { 0x1041e, {1, {0x10446}}}, 01077 { 0x1041f, {1, {0x10447}}}, 01078 { 0x10420, {1, {0x10448}}}, 01079 { 0x10421, {1, {0x10449}}}, 01080 { 0x10422, {1, {0x1044a}}}, 01081 { 0x10423, {1, {0x1044b}}}, 01082 { 0x10424, {1, {0x1044c}}}, 01083 { 0x10425, {1, {0x1044d}}}, 01084 { 0x10426, {1, {0x1044e}}}, 01085 { 0x10427, {1, {0x1044f}}} 01086 }; 01087 01088 static const CaseFold_11_Type CaseFold_Locale[] = { 01089 { 0x0049, {1, {0x0069}}}, 01090 { 0x0130, {2, {0x0069, 0x0307}}} 01091 }; 01092 01093 static const CaseUnfold_11_Type CaseUnfold_11[] = { 01094 { 0x0061, {1, {0x0041 }}}, 01095 { 0x0062, {1, {0x0042 }}}, 01096 { 0x0063, {1, {0x0043 }}}, 01097 { 0x0064, {1, {0x0044 }}}, 01098 { 0x0065, {1, {0x0045 }}}, 01099 { 0x0066, {1, {0x0046 }}}, 01100 { 0x0067, {1, {0x0047 }}}, 01101 { 0x0068, {1, {0x0048 }}}, 01102 { 0x006a, {1, {0x004a }}}, 01103 { 0x006b, {2, {0x212a, 0x004b }}}, 01104 { 0x006c, {1, {0x004c }}}, 01105 { 0x006d, {1, {0x004d }}}, 01106 { 0x006e, {1, {0x004e }}}, 01107 { 0x006f, {1, {0x004f }}}, 01108 { 0x0070, {1, {0x0050 }}}, 01109 { 0x0071, {1, {0x0051 }}}, 01110 { 0x0072, {1, {0x0052 }}}, 01111 { 0x0073, {2, {0x0053, 0x017f }}}, 01112 { 0x0074, {1, {0x0054 }}}, 01113 { 0x0075, {1, {0x0055 }}}, 01114 { 0x0076, {1, {0x0056 }}}, 01115 { 0x0077, {1, {0x0057 }}}, 01116 { 0x0078, {1, {0x0058 }}}, 01117 { 0x0079, {1, {0x0059 }}}, 01118 { 0x007a, {1, {0x005a }}}, 01119 { 0x00e0, {1, {0x00c0 }}}, 01120 { 0x00e1, {1, {0x00c1 }}}, 01121 { 0x00e2, {1, {0x00c2 }}}, 01122 { 0x00e3, {1, {0x00c3 }}}, 01123 { 0x00e4, {1, {0x00c4 }}}, 01124 { 0x00e5, {2, {0x212b, 0x00c5 }}}, 01125 { 0x00e6, {1, {0x00c6 }}}, 01126 { 0x00e7, {1, {0x00c7 }}}, 01127 { 0x00e8, {1, {0x00c8 }}}, 01128 { 0x00e9, {1, {0x00c9 }}}, 01129 { 0x00ea, {1, {0x00ca }}}, 01130 { 0x00eb, {1, {0x00cb }}}, 01131 { 0x00ec, {1, {0x00cc }}}, 01132 { 0x00ed, {1, {0x00cd }}}, 01133 { 0x00ee, {1, {0x00ce }}}, 01134 { 0x00ef, {1, {0x00cf }}}, 01135 { 0x00f0, {1, {0x00d0 }}}, 01136 { 0x00f1, {1, {0x00d1 }}}, 01137 { 0x00f2, {1, {0x00d2 }}}, 01138 { 0x00f3, {1, {0x00d3 }}}, 01139 { 0x00f4, {1, {0x00d4 }}}, 01140 { 0x00f5, {1, {0x00d5 }}}, 01141 { 0x00f6, {1, {0x00d6 }}}, 01142 { 0x00f8, {1, {0x00d8 }}}, 01143 { 0x00f9, {1, {0x00d9 }}}, 01144 { 0x00fa, {1, {0x00da }}}, 01145 { 0x00fb, {1, {0x00db }}}, 01146 { 0x00fc, {1, {0x00dc }}}, 01147 { 0x00fd, {1, {0x00dd }}}, 01148 { 0x00fe, {1, {0x00de }}}, 01149 { 0x00ff, {1, {0x0178 }}}, 01150 { 0x0101, {1, {0x0100 }}}, 01151 { 0x0103, {1, {0x0102 }}}, 01152 { 0x0105, {1, {0x0104 }}}, 01153 { 0x0107, {1, {0x0106 }}}, 01154 { 0x0109, {1, {0x0108 }}}, 01155 { 0x010b, {1, {0x010a }}}, 01156 { 0x010d, {1, {0x010c }}}, 01157 { 0x010f, {1, {0x010e }}}, 01158 { 0x0111, {1, {0x0110 }}}, 01159 { 0x0113, {1, {0x0112 }}}, 01160 { 0x0115, {1, {0x0114 }}}, 01161 { 0x0117, {1, {0x0116 }}}, 01162 { 0x0119, {1, {0x0118 }}}, 01163 { 0x011b, {1, {0x011a }}}, 01164 { 0x011d, {1, {0x011c }}}, 01165 { 0x011f, {1, {0x011e }}}, 01166 { 0x0121, {1, {0x0120 }}}, 01167 { 0x0123, {1, {0x0122 }}}, 01168 { 0x0125, {1, {0x0124 }}}, 01169 { 0x0127, {1, {0x0126 }}}, 01170 { 0x0129, {1, {0x0128 }}}, 01171 { 0x012b, {1, {0x012a }}}, 01172 { 0x012d, {1, {0x012c }}}, 01173 { 0x012f, {1, {0x012e }}}, 01174 { 0x0133, {1, {0x0132 }}}, 01175 { 0x0135, {1, {0x0134 }}}, 01176 { 0x0137, {1, {0x0136 }}}, 01177 { 0x013a, {1, {0x0139 }}}, 01178 { 0x013c, {1, {0x013b }}}, 01179 { 0x013e, {1, {0x013d }}}, 01180 { 0x0140, {1, {0x013f }}}, 01181 { 0x0142, {1, {0x0141 }}}, 01182 { 0x0144, {1, {0x0143 }}}, 01183 { 0x0146, {1, {0x0145 }}}, 01184 { 0x0148, {1, {0x0147 }}}, 01185 { 0x014b, {1, {0x014a }}}, 01186 { 0x014d, {1, {0x014c }}}, 01187 { 0x014f, {1, {0x014e }}}, 01188 { 0x0151, {1, {0x0150 }}}, 01189 { 0x0153, {1, {0x0152 }}}, 01190 { 0x0155, {1, {0x0154 }}}, 01191 { 0x0157, {1, {0x0156 }}}, 01192 { 0x0159, {1, {0x0158 }}}, 01193 { 0x015b, {1, {0x015a }}}, 01194 { 0x015d, {1, {0x015c }}}, 01195 { 0x015f, {1, {0x015e }}}, 01196 { 0x0161, {1, {0x0160 }}}, 01197 { 0x0163, {1, {0x0162 }}}, 01198 { 0x0165, {1, {0x0164 }}}, 01199 { 0x0167, {1, {0x0166 }}}, 01200 { 0x0169, {1, {0x0168 }}}, 01201 { 0x016b, {1, {0x016a }}}, 01202 { 0x016d, {1, {0x016c }}}, 01203 { 0x016f, {1, {0x016e }}}, 01204 { 0x0171, {1, {0x0170 }}}, 01205 { 0x0173, {1, {0x0172 }}}, 01206 { 0x0175, {1, {0x0174 }}}, 01207 { 0x0177, {1, {0x0176 }}}, 01208 { 0x017a, {1, {0x0179 }}}, 01209 { 0x017c, {1, {0x017b }}}, 01210 { 0x017e, {1, {0x017d }}}, 01211 { 0x0183, {1, {0x0182 }}}, 01212 { 0x0185, {1, {0x0184 }}}, 01213 { 0x0188, {1, {0x0187 }}}, 01214 { 0x018c, {1, {0x018b }}}, 01215 { 0x0192, {1, {0x0191 }}}, 01216 { 0x0195, {1, {0x01f6 }}}, 01217 { 0x0199, {1, {0x0198 }}}, 01218 { 0x019a, {1, {0x023d }}}, 01219 { 0x019e, {1, {0x0220 }}}, 01220 { 0x01a1, {1, {0x01a0 }}}, 01221 { 0x01a3, {1, {0x01a2 }}}, 01222 { 0x01a5, {1, {0x01a4 }}}, 01223 { 0x01a8, {1, {0x01a7 }}}, 01224 { 0x01ad, {1, {0x01ac }}}, 01225 { 0x01b0, {1, {0x01af }}}, 01226 { 0x01b4, {1, {0x01b3 }}}, 01227 { 0x01b6, {1, {0x01b5 }}}, 01228 { 0x01b9, {1, {0x01b8 }}}, 01229 { 0x01bd, {1, {0x01bc }}}, 01230 { 0x01bf, {1, {0x01f7 }}}, 01231 { 0x01c6, {2, {0x01c4, 0x01c5 }}}, 01232 { 0x01c9, {2, {0x01c7, 0x01c8 }}}, 01233 { 0x01cc, {2, {0x01ca, 0x01cb }}}, 01234 { 0x01ce, {1, {0x01cd }}}, 01235 { 0x01d0, {1, {0x01cf }}}, 01236 { 0x01d2, {1, {0x01d1 }}}, 01237 { 0x01d4, {1, {0x01d3 }}}, 01238 { 0x01d6, {1, {0x01d5 }}}, 01239 { 0x01d8, {1, {0x01d7 }}}, 01240 { 0x01da, {1, {0x01d9 }}}, 01241 { 0x01dc, {1, {0x01db }}}, 01242 { 0x01dd, {1, {0x018e }}}, 01243 { 0x01df, {1, {0x01de }}}, 01244 { 0x01e1, {1, {0x01e0 }}}, 01245 { 0x01e3, {1, {0x01e2 }}}, 01246 { 0x01e5, {1, {0x01e4 }}}, 01247 { 0x01e7, {1, {0x01e6 }}}, 01248 { 0x01e9, {1, {0x01e8 }}}, 01249 { 0x01eb, {1, {0x01ea }}}, 01250 { 0x01ed, {1, {0x01ec }}}, 01251 { 0x01ef, {1, {0x01ee }}}, 01252 { 0x01f3, {2, {0x01f1, 0x01f2 }}}, 01253 { 0x01f5, {1, {0x01f4 }}}, 01254 { 0x01f9, {1, {0x01f8 }}}, 01255 { 0x01fb, {1, {0x01fa }}}, 01256 { 0x01fd, {1, {0x01fc }}}, 01257 { 0x01ff, {1, {0x01fe }}}, 01258 { 0x0201, {1, {0x0200 }}}, 01259 { 0x0203, {1, {0x0202 }}}, 01260 { 0x0205, {1, {0x0204 }}}, 01261 { 0x0207, {1, {0x0206 }}}, 01262 { 0x0209, {1, {0x0208 }}}, 01263 { 0x020b, {1, {0x020a }}}, 01264 { 0x020d, {1, {0x020c }}}, 01265 { 0x020f, {1, {0x020e }}}, 01266 { 0x0211, {1, {0x0210 }}}, 01267 { 0x0213, {1, {0x0212 }}}, 01268 { 0x0215, {1, {0x0214 }}}, 01269 { 0x0217, {1, {0x0216 }}}, 01270 { 0x0219, {1, {0x0218 }}}, 01271 { 0x021b, {1, {0x021a }}}, 01272 { 0x021d, {1, {0x021c }}}, 01273 { 0x021f, {1, {0x021e }}}, 01274 { 0x0223, {1, {0x0222 }}}, 01275 { 0x0225, {1, {0x0224 }}}, 01276 { 0x0227, {1, {0x0226 }}}, 01277 { 0x0229, {1, {0x0228 }}}, 01278 { 0x022b, {1, {0x022a }}}, 01279 { 0x022d, {1, {0x022c }}}, 01280 { 0x022f, {1, {0x022e }}}, 01281 { 0x0231, {1, {0x0230 }}}, 01282 { 0x0233, {1, {0x0232 }}}, 01283 { 0x023c, {1, {0x023b }}}, 01284 { 0x0253, {1, {0x0181 }}}, 01285 { 0x0254, {1, {0x0186 }}}, 01286 { 0x0256, {1, {0x0189 }}}, 01287 { 0x0257, {1, {0x018a }}}, 01288 { 0x0259, {1, {0x018f }}}, 01289 { 0x025b, {1, {0x0190 }}}, 01290 { 0x0260, {1, {0x0193 }}}, 01291 { 0x0263, {1, {0x0194 }}}, 01292 { 0x0268, {1, {0x0197 }}}, 01293 { 0x0269, {1, {0x0196 }}}, 01294 { 0x026f, {1, {0x019c }}}, 01295 { 0x0272, {1, {0x019d }}}, 01296 { 0x0275, {1, {0x019f }}}, 01297 { 0x0280, {1, {0x01a6 }}}, 01298 { 0x0283, {1, {0x01a9 }}}, 01299 { 0x0288, {1, {0x01ae }}}, 01300 { 0x028a, {1, {0x01b1 }}}, 01301 { 0x028b, {1, {0x01b2 }}}, 01302 { 0x0292, {1, {0x01b7 }}}, 01303 { 0x0294, {1, {0x0241 }}}, 01304 { 0x03ac, {1, {0x0386 }}}, 01305 { 0x03ad, {1, {0x0388 }}}, 01306 { 0x03ae, {1, {0x0389 }}}, 01307 { 0x03af, {1, {0x038a }}}, 01308 { 0x03b1, {1, {0x0391 }}}, 01309 { 0x03b2, {2, {0x0392, 0x03d0 }}}, 01310 { 0x03b3, {1, {0x0393 }}}, 01311 { 0x03b4, {1, {0x0394 }}}, 01312 { 0x03b5, {2, {0x03f5, 0x0395 }}}, 01313 { 0x03b6, {1, {0x0396 }}}, 01314 { 0x03b7, {1, {0x0397 }}}, 01315 { 0x03b8, {3, {0x03f4, 0x0398, 0x03d1 }}}, 01316 { 0x03b9, {3, {0x1fbe, 0x0399, 0x0345 }}}, 01317 { 0x03ba, {2, {0x03f0, 0x039a }}}, 01318 { 0x03bb, {1, {0x039b }}}, 01319 { 0x03bc, {2, {0x00b5, 0x039c }}}, 01320 { 0x03bd, {1, {0x039d }}}, 01321 { 0x03be, {1, {0x039e }}}, 01322 { 0x03bf, {1, {0x039f }}}, 01323 { 0x03c0, {2, {0x03a0, 0x03d6 }}}, 01324 { 0x03c1, {2, {0x03f1, 0x03a1 }}}, 01325 { 0x03c3, {2, {0x03a3, 0x03c2 }}}, 01326 { 0x03c4, {1, {0x03a4 }}}, 01327 { 0x03c5, {1, {0x03a5 }}}, 01328 { 0x03c6, {2, {0x03a6, 0x03d5 }}}, 01329 { 0x03c7, {1, {0x03a7 }}}, 01330 { 0x03c8, {1, {0x03a8 }}}, 01331 { 0x03c9, {2, {0x03a9, 0x2126 }}}, 01332 { 0x03ca, {1, {0x03aa }}}, 01333 { 0x03cb, {1, {0x03ab }}}, 01334 { 0x03cc, {1, {0x038c }}}, 01335 { 0x03cd, {1, {0x038e }}}, 01336 { 0x03ce, {1, {0x038f }}}, 01337 { 0x03d9, {1, {0x03d8 }}}, 01338 { 0x03db, {1, {0x03da }}}, 01339 { 0x03dd, {1, {0x03dc }}}, 01340 { 0x03df, {1, {0x03de }}}, 01341 { 0x03e1, {1, {0x03e0 }}}, 01342 { 0x03e3, {1, {0x03e2 }}}, 01343 { 0x03e5, {1, {0x03e4 }}}, 01344 { 0x03e7, {1, {0x03e6 }}}, 01345 { 0x03e9, {1, {0x03e8 }}}, 01346 { 0x03eb, {1, {0x03ea }}}, 01347 { 0x03ed, {1, {0x03ec }}}, 01348 { 0x03ef, {1, {0x03ee }}}, 01349 { 0x03f2, {1, {0x03f9 }}}, 01350 { 0x03f8, {1, {0x03f7 }}}, 01351 { 0x03fb, {1, {0x03fa }}}, 01352 { 0x0430, {1, {0x0410 }}}, 01353 { 0x0431, {1, {0x0411 }}}, 01354 { 0x0432, {1, {0x0412 }}}, 01355 { 0x0433, {1, {0x0413 }}}, 01356 { 0x0434, {1, {0x0414 }}}, 01357 { 0x0435, {1, {0x0415 }}}, 01358 { 0x0436, {1, {0x0416 }}}, 01359 { 0x0437, {1, {0x0417 }}}, 01360 { 0x0438, {1, {0x0418 }}}, 01361 { 0x0439, {1, {0x0419 }}}, 01362 { 0x043a, {1, {0x041a }}}, 01363 { 0x043b, {1, {0x041b }}}, 01364 { 0x043c, {1, {0x041c }}}, 01365 { 0x043d, {1, {0x041d }}}, 01366 { 0x043e, {1, {0x041e }}}, 01367 { 0x043f, {1, {0x041f }}}, 01368 { 0x0440, {1, {0x0420 }}}, 01369 { 0x0441, {1, {0x0421 }}}, 01370 { 0x0442, {1, {0x0422 }}}, 01371 { 0x0443, {1, {0x0423 }}}, 01372 { 0x0444, {1, {0x0424 }}}, 01373 { 0x0445, {1, {0x0425 }}}, 01374 { 0x0446, {1, {0x0426 }}}, 01375 { 0x0447, {1, {0x0427 }}}, 01376 { 0x0448, {1, {0x0428 }}}, 01377 { 0x0449, {1, {0x0429 }}}, 01378 { 0x044a, {1, {0x042a }}}, 01379 { 0x044b, {1, {0x042b }}}, 01380 { 0x044c, {1, {0x042c }}}, 01381 { 0x044d, {1, {0x042d }}}, 01382 { 0x044e, {1, {0x042e }}}, 01383 { 0x044f, {1, {0x042f }}}, 01384 { 0x0450, {1, {0x0400 }}}, 01385 { 0x0451, {1, {0x0401 }}}, 01386 { 0x0452, {1, {0x0402 }}}, 01387 { 0x0453, {1, {0x0403 }}}, 01388 { 0x0454, {1, {0x0404 }}}, 01389 { 0x0455, {1, {0x0405 }}}, 01390 { 0x0456, {1, {0x0406 }}}, 01391 { 0x0457, {1, {0x0407 }}}, 01392 { 0x0458, {1, {0x0408 }}}, 01393 { 0x0459, {1, {0x0409 }}}, 01394 { 0x045a, {1, {0x040a }}}, 01395 { 0x045b, {1, {0x040b }}}, 01396 { 0x045c, {1, {0x040c }}}, 01397 { 0x045d, {1, {0x040d }}}, 01398 { 0x045e, {1, {0x040e }}}, 01399 { 0x045f, {1, {0x040f }}}, 01400 { 0x0461, {1, {0x0460 }}}, 01401 { 0x0463, {1, {0x0462 }}}, 01402 { 0x0465, {1, {0x0464 }}}, 01403 { 0x0467, {1, {0x0466 }}}, 01404 { 0x0469, {1, {0x0468 }}}, 01405 { 0x046b, {1, {0x046a }}}, 01406 { 0x046d, {1, {0x046c }}}, 01407 { 0x046f, {1, {0x046e }}}, 01408 { 0x0471, {1, {0x0470 }}}, 01409 { 0x0473, {1, {0x0472 }}}, 01410 { 0x0475, {1, {0x0474 }}}, 01411 { 0x0477, {1, {0x0476 }}}, 01412 { 0x0479, {1, {0x0478 }}}, 01413 { 0x047b, {1, {0x047a }}}, 01414 { 0x047d, {1, {0x047c }}}, 01415 { 0x047f, {1, {0x047e }}}, 01416 { 0x0481, {1, {0x0480 }}}, 01417 { 0x048b, {1, {0x048a }}}, 01418 { 0x048d, {1, {0x048c }}}, 01419 { 0x048f, {1, {0x048e }}}, 01420 { 0x0491, {1, {0x0490 }}}, 01421 { 0x0493, {1, {0x0492 }}}, 01422 { 0x0495, {1, {0x0494 }}}, 01423 { 0x0497, {1, {0x0496 }}}, 01424 { 0x0499, {1, {0x0498 }}}, 01425 { 0x049b, {1, {0x049a }}}, 01426 { 0x049d, {1, {0x049c }}}, 01427 { 0x049f, {1, {0x049e }}}, 01428 { 0x04a1, {1, {0x04a0 }}}, 01429 { 0x04a3, {1, {0x04a2 }}}, 01430 { 0x04a5, {1, {0x04a4 }}}, 01431 { 0x04a7, {1, {0x04a6 }}}, 01432 { 0x04a9, {1, {0x04a8 }}}, 01433 { 0x04ab, {1, {0x04aa }}}, 01434 { 0x04ad, {1, {0x04ac }}}, 01435 { 0x04af, {1, {0x04ae }}}, 01436 { 0x04b1, {1, {0x04b0 }}}, 01437 { 0x04b3, {1, {0x04b2 }}}, 01438 { 0x04b5, {1, {0x04b4 }}}, 01439 { 0x04b7, {1, {0x04b6 }}}, 01440 { 0x04b9, {1, {0x04b8 }}}, 01441 { 0x04bb, {1, {0x04ba }}}, 01442 { 0x04bd, {1, {0x04bc }}}, 01443 { 0x04bf, {1, {0x04be }}}, 01444 { 0x04c2, {1, {0x04c1 }}}, 01445 { 0x04c4, {1, {0x04c3 }}}, 01446 { 0x04c6, {1, {0x04c5 }}}, 01447 { 0x04c8, {1, {0x04c7 }}}, 01448 { 0x04ca, {1, {0x04c9 }}}, 01449 { 0x04cc, {1, {0x04cb }}}, 01450 { 0x04ce, {1, {0x04cd }}}, 01451 { 0x04d1, {1, {0x04d0 }}}, 01452 { 0x04d3, {1, {0x04d2 }}}, 01453 { 0x04d5, {1, {0x04d4 }}}, 01454 { 0x04d7, {1, {0x04d6 }}}, 01455 { 0x04d9, {1, {0x04d8 }}}, 01456 { 0x04db, {1, {0x04da }}}, 01457 { 0x04dd, {1, {0x04dc }}}, 01458 { 0x04df, {1, {0x04de }}}, 01459 { 0x04e1, {1, {0x04e0 }}}, 01460 { 0x04e3, {1, {0x04e2 }}}, 01461 { 0x04e5, {1, {0x04e4 }}}, 01462 { 0x04e7, {1, {0x04e6 }}}, 01463 { 0x04e9, {1, {0x04e8 }}}, 01464 { 0x04eb, {1, {0x04ea }}}, 01465 { 0x04ed, {1, {0x04ec }}}, 01466 { 0x04ef, {1, {0x04ee }}}, 01467 { 0x04f1, {1, {0x04f0 }}}, 01468 { 0x04f3, {1, {0x04f2 }}}, 01469 { 0x04f5, {1, {0x04f4 }}}, 01470 { 0x04f7, {1, {0x04f6 }}}, 01471 { 0x04f9, {1, {0x04f8 }}}, 01472 { 0x0501, {1, {0x0500 }}}, 01473 { 0x0503, {1, {0x0502 }}}, 01474 { 0x0505, {1, {0x0504 }}}, 01475 { 0x0507, {1, {0x0506 }}}, 01476 { 0x0509, {1, {0x0508 }}}, 01477 { 0x050b, {1, {0x050a }}}, 01478 { 0x050d, {1, {0x050c }}}, 01479 { 0x050f, {1, {0x050e }}}, 01480 { 0x0561, {1, {0x0531 }}}, 01481 { 0x0562, {1, {0x0532 }}}, 01482 { 0x0563, {1, {0x0533 }}}, 01483 { 0x0564, {1, {0x0534 }}}, 01484 { 0x0565, {1, {0x0535 }}}, 01485 { 0x0566, {1, {0x0536 }}}, 01486 { 0x0567, {1, {0x0537 }}}, 01487 { 0x0568, {1, {0x0538 }}}, 01488 { 0x0569, {1, {0x0539 }}}, 01489 { 0x056a, {1, {0x053a }}}, 01490 { 0x056b, {1, {0x053b }}}, 01491 { 0x056c, {1, {0x053c }}}, 01492 { 0x056d, {1, {0x053d }}}, 01493 { 0x056e, {1, {0x053e }}}, 01494 { 0x056f, {1, {0x053f }}}, 01495 { 0x0570, {1, {0x0540 }}}, 01496 { 0x0571, {1, {0x0541 }}}, 01497 { 0x0572, {1, {0x0542 }}}, 01498 { 0x0573, {1, {0x0543 }}}, 01499 { 0x0574, {1, {0x0544 }}}, 01500 { 0x0575, {1, {0x0545 }}}, 01501 { 0x0576, {1, {0x0546 }}}, 01502 { 0x0577, {1, {0x0547 }}}, 01503 { 0x0578, {1, {0x0548 }}}, 01504 { 0x0579, {1, {0x0549 }}}, 01505 { 0x057a, {1, {0x054a }}}, 01506 { 0x057b, {1, {0x054b }}}, 01507 { 0x057c, {1, {0x054c }}}, 01508 { 0x057d, {1, {0x054d }}}, 01509 { 0x057e, {1, {0x054e }}}, 01510 { 0x057f, {1, {0x054f }}}, 01511 { 0x0580, {1, {0x0550 }}}, 01512 { 0x0581, {1, {0x0551 }}}, 01513 { 0x0582, {1, {0x0552 }}}, 01514 { 0x0583, {1, {0x0553 }}}, 01515 { 0x0584, {1, {0x0554 }}}, 01516 { 0x0585, {1, {0x0555 }}}, 01517 { 0x0586, {1, {0x0556 }}}, 01518 { 0x1e01, {1, {0x1e00 }}}, 01519 { 0x1e03, {1, {0x1e02 }}}, 01520 { 0x1e05, {1, {0x1e04 }}}, 01521 { 0x1e07, {1, {0x1e06 }}}, 01522 { 0x1e09, {1, {0x1e08 }}}, 01523 { 0x1e0b, {1, {0x1e0a }}}, 01524 { 0x1e0d, {1, {0x1e0c }}}, 01525 { 0x1e0f, {1, {0x1e0e }}}, 01526 { 0x1e11, {1, {0x1e10 }}}, 01527 { 0x1e13, {1, {0x1e12 }}}, 01528 { 0x1e15, {1, {0x1e14 }}}, 01529 { 0x1e17, {1, {0x1e16 }}}, 01530 { 0x1e19, {1, {0x1e18 }}}, 01531 { 0x1e1b, {1, {0x1e1a }}}, 01532 { 0x1e1d, {1, {0x1e1c }}}, 01533 { 0x1e1f, {1, {0x1e1e }}}, 01534 { 0x1e21, {1, {0x1e20 }}}, 01535 { 0x1e23, {1, {0x1e22 }}}, 01536 { 0x1e25, {1, {0x1e24 }}}, 01537 { 0x1e27, {1, {0x1e26 }}}, 01538 { 0x1e29, {1, {0x1e28 }}}, 01539 { 0x1e2b, {1, {0x1e2a }}}, 01540 { 0x1e2d, {1, {0x1e2c }}}, 01541 { 0x1e2f, {1, {0x1e2e }}}, 01542 { 0x1e31, {1, {0x1e30 }}}, 01543 { 0x1e33, {1, {0x1e32 }}}, 01544 { 0x1e35, {1, {0x1e34 }}}, 01545 { 0x1e37, {1, {0x1e36 }}}, 01546 { 0x1e39, {1, {0x1e38 }}}, 01547 { 0x1e3b, {1, {0x1e3a }}}, 01548 { 0x1e3d, {1, {0x1e3c }}}, 01549 { 0x1e3f, {1, {0x1e3e }}}, 01550 { 0x1e41, {1, {0x1e40 }}}, 01551 { 0x1e43, {1, {0x1e42 }}}, 01552 { 0x1e45, {1, {0x1e44 }}}, 01553 { 0x1e47, {1, {0x1e46 }}}, 01554 { 0x1e49, {1, {0x1e48 }}}, 01555 { 0x1e4b, {1, {0x1e4a }}}, 01556 { 0x1e4d, {1, {0x1e4c }}}, 01557 { 0x1e4f, {1, {0x1e4e }}}, 01558 { 0x1e51, {1, {0x1e50 }}}, 01559 { 0x1e53, {1, {0x1e52 }}}, 01560 { 0x1e55, {1, {0x1e54 }}}, 01561 { 0x1e57, {1, {0x1e56 }}}, 01562 { 0x1e59, {1, {0x1e58 }}}, 01563 { 0x1e5b, {1, {0x1e5a }}}, 01564 { 0x1e5d, {1, {0x1e5c }}}, 01565 { 0x1e5f, {1, {0x1e5e }}}, 01566 { 0x1e61, {2, {0x1e9b, 0x1e60 }}}, 01567 { 0x1e63, {1, {0x1e62 }}}, 01568 { 0x1e65, {1, {0x1e64 }}}, 01569 { 0x1e67, {1, {0x1e66 }}}, 01570 { 0x1e69, {1, {0x1e68 }}}, 01571 { 0x1e6b, {1, {0x1e6a }}}, 01572 { 0x1e6d, {1, {0x1e6c }}}, 01573 { 0x1e6f, {1, {0x1e6e }}}, 01574 { 0x1e71, {1, {0x1e70 }}}, 01575 { 0x1e73, {1, {0x1e72 }}}, 01576 { 0x1e75, {1, {0x1e74 }}}, 01577 { 0x1e77, {1, {0x1e76 }}}, 01578 { 0x1e79, {1, {0x1e78 }}}, 01579 { 0x1e7b, {1, {0x1e7a }}}, 01580 { 0x1e7d, {1, {0x1e7c }}}, 01581 { 0x1e7f, {1, {0x1e7e }}}, 01582 { 0x1e81, {1, {0x1e80 }}}, 01583 { 0x1e83, {1, {0x1e82 }}}, 01584 { 0x1e85, {1, {0x1e84 }}}, 01585 { 0x1e87, {1, {0x1e86 }}}, 01586 { 0x1e89, {1, {0x1e88 }}}, 01587 { 0x1e8b, {1, {0x1e8a }}}, 01588 { 0x1e8d, {1, {0x1e8c }}}, 01589 { 0x1e8f, {1, {0x1e8e }}}, 01590 { 0x1e91, {1, {0x1e90 }}}, 01591 { 0x1e93, {1, {0x1e92 }}}, 01592 { 0x1e95, {1, {0x1e94 }}}, 01593 { 0x1ea1, {1, {0x1ea0 }}}, 01594 { 0x1ea3, {1, {0x1ea2 }}}, 01595 { 0x1ea5, {1, {0x1ea4 }}}, 01596 { 0x1ea7, {1, {0x1ea6 }}}, 01597 { 0x1ea9, {1, {0x1ea8 }}}, 01598 { 0x1eab, {1, {0x1eaa }}}, 01599 { 0x1ead, {1, {0x1eac }}}, 01600 { 0x1eaf, {1, {0x1eae }}}, 01601 { 0x1eb1, {1, {0x1eb0 }}}, 01602 { 0x1eb3, {1, {0x1eb2 }}}, 01603 { 0x1eb5, {1, {0x1eb4 }}}, 01604 { 0x1eb7, {1, {0x1eb6 }}}, 01605 { 0x1eb9, {1, {0x1eb8 }}}, 01606 { 0x1ebb, {1, {0x1eba }}}, 01607 { 0x1ebd, {1, {0x1ebc }}}, 01608 { 0x1ebf, {1, {0x1ebe }}}, 01609 { 0x1ec1, {1, {0x1ec0 }}}, 01610 { 0x1ec3, {1, {0x1ec2 }}}, 01611 { 0x1ec5, {1, {0x1ec4 }}}, 01612 { 0x1ec7, {1, {0x1ec6 }}}, 01613 { 0x1ec9, {1, {0x1ec8 }}}, 01614 { 0x1ecb, {1, {0x1eca }}}, 01615 { 0x1ecd, {1, {0x1ecc }}}, 01616 { 0x1ecf, {1, {0x1ece }}}, 01617 { 0x1ed1, {1, {0x1ed0 }}}, 01618 { 0x1ed3, {1, {0x1ed2 }}}, 01619 { 0x1ed5, {1, {0x1ed4 }}}, 01620 { 0x1ed7, {1, {0x1ed6 }}}, 01621 { 0x1ed9, {1, {0x1ed8 }}}, 01622 { 0x1edb, {1, {0x1eda }}}, 01623 { 0x1edd, {1, {0x1edc }}}, 01624 { 0x1edf, {1, {0x1ede }}}, 01625 { 0x1ee1, {1, {0x1ee0 }}}, 01626 { 0x1ee3, {1, {0x1ee2 }}}, 01627 { 0x1ee5, {1, {0x1ee4 }}}, 01628 { 0x1ee7, {1, {0x1ee6 }}}, 01629 { 0x1ee9, {1, {0x1ee8 }}}, 01630 { 0x1eeb, {1, {0x1eea }}}, 01631 { 0x1eed, {1, {0x1eec }}}, 01632 { 0x1eef, {1, {0x1eee }}}, 01633 { 0x1ef1, {1, {0x1ef0 }}}, 01634 { 0x1ef3, {1, {0x1ef2 }}}, 01635 { 0x1ef5, {1, {0x1ef4 }}}, 01636 { 0x1ef7, {1, {0x1ef6 }}}, 01637 { 0x1ef9, {1, {0x1ef8 }}}, 01638 { 0x1f00, {1, {0x1f08 }}}, 01639 { 0x1f01, {1, {0x1f09 }}}, 01640 { 0x1f02, {1, {0x1f0a }}}, 01641 { 0x1f03, {1, {0x1f0b }}}, 01642 { 0x1f04, {1, {0x1f0c }}}, 01643 { 0x1f05, {1, {0x1f0d }}}, 01644 { 0x1f06, {1, {0x1f0e }}}, 01645 { 0x1f07, {1, {0x1f0f }}}, 01646 { 0x1f10, {1, {0x1f18 }}}, 01647 { 0x1f11, {1, {0x1f19 }}}, 01648 { 0x1f12, {1, {0x1f1a }}}, 01649 { 0x1f13, {1, {0x1f1b }}}, 01650 { 0x1f14, {1, {0x1f1c }}}, 01651 { 0x1f15, {1, {0x1f1d }}}, 01652 { 0x1f20, {1, {0x1f28 }}}, 01653 { 0x1f21, {1, {0x1f29 }}}, 01654 { 0x1f22, {1, {0x1f2a }}}, 01655 { 0x1f23, {1, {0x1f2b }}}, 01656 { 0x1f24, {1, {0x1f2c }}}, 01657 { 0x1f25, {1, {0x1f2d }}}, 01658 { 0x1f26, {1, {0x1f2e }}}, 01659 { 0x1f27, {1, {0x1f2f }}}, 01660 { 0x1f30, {1, {0x1f38 }}}, 01661 { 0x1f31, {1, {0x1f39 }}}, 01662 { 0x1f32, {1, {0x1f3a }}}, 01663 { 0x1f33, {1, {0x1f3b }}}, 01664 { 0x1f34, {1, {0x1f3c }}}, 01665 { 0x1f35, {1, {0x1f3d }}}, 01666 { 0x1f36, {1, {0x1f3e }}}, 01667 { 0x1f37, {1, {0x1f3f }}}, 01668 { 0x1f40, {1, {0x1f48 }}}, 01669 { 0x1f41, {1, {0x1f49 }}}, 01670 { 0x1f42, {1, {0x1f4a }}}, 01671 { 0x1f43, {1, {0x1f4b }}}, 01672 { 0x1f44, {1, {0x1f4c }}}, 01673 { 0x1f45, {1, {0x1f4d }}}, 01674 { 0x1f51, {1, {0x1f59 }}}, 01675 { 0x1f53, {1, {0x1f5b }}}, 01676 { 0x1f55, {1, {0x1f5d }}}, 01677 { 0x1f57, {1, {0x1f5f }}}, 01678 { 0x1f60, {1, {0x1f68 }}}, 01679 { 0x1f61, {1, {0x1f69 }}}, 01680 { 0x1f62, {1, {0x1f6a }}}, 01681 { 0x1f63, {1, {0x1f6b }}}, 01682 { 0x1f64, {1, {0x1f6c }}}, 01683 { 0x1f65, {1, {0x1f6d }}}, 01684 { 0x1f66, {1, {0x1f6e }}}, 01685 { 0x1f67, {1, {0x1f6f }}}, 01686 { 0x1f70, {1, {0x1fba }}}, 01687 { 0x1f71, {1, {0x1fbb }}}, 01688 { 0x1f72, {1, {0x1fc8 }}}, 01689 { 0x1f73, {1, {0x1fc9 }}}, 01690 { 0x1f74, {1, {0x1fca }}}, 01691 { 0x1f75, {1, {0x1fcb }}}, 01692 { 0x1f76, {1, {0x1fda }}}, 01693 { 0x1f77, {1, {0x1fdb }}}, 01694 { 0x1f78, {1, {0x1ff8 }}}, 01695 { 0x1f79, {1, {0x1ff9 }}}, 01696 { 0x1f7a, {1, {0x1fea }}}, 01697 { 0x1f7b, {1, {0x1feb }}}, 01698 { 0x1f7c, {1, {0x1ffa }}}, 01699 { 0x1f7d, {1, {0x1ffb }}}, 01700 { 0x1fb0, {1, {0x1fb8 }}}, 01701 { 0x1fb1, {1, {0x1fb9 }}}, 01702 { 0x1fd0, {1, {0x1fd8 }}}, 01703 { 0x1fd1, {1, {0x1fd9 }}}, 01704 { 0x1fe0, {1, {0x1fe8 }}}, 01705 { 0x1fe1, {1, {0x1fe9 }}}, 01706 { 0x1fe5, {1, {0x1fec }}}, 01707 { 0x2170, {1, {0x2160 }}}, 01708 { 0x2171, {1, {0x2161 }}}, 01709 { 0x2172, {1, {0x2162 }}}, 01710 { 0x2173, {1, {0x2163 }}}, 01711 { 0x2174, {1, {0x2164 }}}, 01712 { 0x2175, {1, {0x2165 }}}, 01713 { 0x2176, {1, {0x2166 }}}, 01714 { 0x2177, {1, {0x2167 }}}, 01715 { 0x2178, {1, {0x2168 }}}, 01716 { 0x2179, {1, {0x2169 }}}, 01717 { 0x217a, {1, {0x216a }}}, 01718 { 0x217b, {1, {0x216b }}}, 01719 { 0x217c, {1, {0x216c }}}, 01720 { 0x217d, {1, {0x216d }}}, 01721 { 0x217e, {1, {0x216e }}}, 01722 { 0x217f, {1, {0x216f }}}, 01723 { 0x24d0, {1, {0x24b6 }}}, 01724 { 0x24d1, {1, {0x24b7 }}}, 01725 { 0x24d2, {1, {0x24b8 }}}, 01726 { 0x24d3, {1, {0x24b9 }}}, 01727 { 0x24d4, {1, {0x24ba }}}, 01728 { 0x24d5, {1, {0x24bb }}}, 01729 { 0x24d6, {1, {0x24bc }}}, 01730 { 0x24d7, {1, {0x24bd }}}, 01731 { 0x24d8, {1, {0x24be }}}, 01732 { 0x24d9, {1, {0x24bf }}}, 01733 { 0x24da, {1, {0x24c0 }}}, 01734 { 0x24db, {1, {0x24c1 }}}, 01735 { 0x24dc, {1, {0x24c2 }}}, 01736 { 0x24dd, {1, {0x24c3 }}}, 01737 { 0x24de, {1, {0x24c4 }}}, 01738 { 0x24df, {1, {0x24c5 }}}, 01739 { 0x24e0, {1, {0x24c6 }}}, 01740 { 0x24e1, {1, {0x24c7 }}}, 01741 { 0x24e2, {1, {0x24c8 }}}, 01742 { 0x24e3, {1, {0x24c9 }}}, 01743 { 0x24e4, {1, {0x24ca }}}, 01744 { 0x24e5, {1, {0x24cb }}}, 01745 { 0x24e6, {1, {0x24cc }}}, 01746 { 0x24e7, {1, {0x24cd }}}, 01747 { 0x24e8, {1, {0x24ce }}}, 01748 { 0x24e9, {1, {0x24cf }}}, 01749 { 0x2c30, {1, {0x2c00 }}}, 01750 { 0x2c31, {1, {0x2c01 }}}, 01751 { 0x2c32, {1, {0x2c02 }}}, 01752 { 0x2c33, {1, {0x2c03 }}}, 01753 { 0x2c34, {1, {0x2c04 }}}, 01754 { 0x2c35, {1, {0x2c05 }}}, 01755 { 0x2c36, {1, {0x2c06 }}}, 01756 { 0x2c37, {1, {0x2c07 }}}, 01757 { 0x2c38, {1, {0x2c08 }}}, 01758 { 0x2c39, {1, {0x2c09 }}}, 01759 { 0x2c3a, {1, {0x2c0a }}}, 01760 { 0x2c3b, {1, {0x2c0b }}}, 01761 { 0x2c3c, {1, {0x2c0c }}}, 01762 { 0x2c3d, {1, {0x2c0d }}}, 01763 { 0x2c3e, {1, {0x2c0e }}}, 01764 { 0x2c3f, {1, {0x2c0f }}}, 01765 { 0x2c40, {1, {0x2c10 }}}, 01766 { 0x2c41, {1, {0x2c11 }}}, 01767 { 0x2c42, {1, {0x2c12 }}}, 01768 { 0x2c43, {1, {0x2c13 }}}, 01769 { 0x2c44, {1, {0x2c14 }}}, 01770 { 0x2c45, {1, {0x2c15 }}}, 01771 { 0x2c46, {1, {0x2c16 }}}, 01772 { 0x2c47, {1, {0x2c17 }}}, 01773 { 0x2c48, {1, {0x2c18 }}}, 01774 { 0x2c49, {1, {0x2c19 }}}, 01775 { 0x2c4a, {1, {0x2c1a }}}, 01776 { 0x2c4b, {1, {0x2c1b }}}, 01777 { 0x2c4c, {1, {0x2c1c }}}, 01778 { 0x2c4d, {1, {0x2c1d }}}, 01779 { 0x2c4e, {1, {0x2c1e }}}, 01780 { 0x2c4f, {1, {0x2c1f }}}, 01781 { 0x2c50, {1, {0x2c20 }}}, 01782 { 0x2c51, {1, {0x2c21 }}}, 01783 { 0x2c52, {1, {0x2c22 }}}, 01784 { 0x2c53, {1, {0x2c23 }}}, 01785 { 0x2c54, {1, {0x2c24 }}}, 01786 { 0x2c55, {1, {0x2c25 }}}, 01787 { 0x2c56, {1, {0x2c26 }}}, 01788 { 0x2c57, {1, {0x2c27 }}}, 01789 { 0x2c58, {1, {0x2c28 }}}, 01790 { 0x2c59, {1, {0x2c29 }}}, 01791 { 0x2c5a, {1, {0x2c2a }}}, 01792 { 0x2c5b, {1, {0x2c2b }}}, 01793 { 0x2c5c, {1, {0x2c2c }}}, 01794 { 0x2c5d, {1, {0x2c2d }}}, 01795 { 0x2c5e, {1, {0x2c2e }}}, 01796 { 0x2c81, {1, {0x2c80 }}}, 01797 { 0x2c83, {1, {0x2c82 }}}, 01798 { 0x2c85, {1, {0x2c84 }}}, 01799 { 0x2c87, {1, {0x2c86 }}}, 01800 { 0x2c89, {1, {0x2c88 }}}, 01801 { 0x2c8b, {1, {0x2c8a }}}, 01802 { 0x2c8d, {1, {0x2c8c }}}, 01803 { 0x2c8f, {1, {0x2c8e }}}, 01804 { 0x2c91, {1, {0x2c90 }}}, 01805 { 0x2c93, {1, {0x2c92 }}}, 01806 { 0x2c95, {1, {0x2c94 }}}, 01807 { 0x2c97, {1, {0x2c96 }}}, 01808 { 0x2c99, {1, {0x2c98 }}}, 01809 { 0x2c9b, {1, {0x2c9a }}}, 01810 { 0x2c9d, {1, {0x2c9c }}}, 01811 { 0x2c9f, {1, {0x2c9e }}}, 01812 { 0x2ca1, {1, {0x2ca0 }}}, 01813 { 0x2ca3, {1, {0x2ca2 }}}, 01814 { 0x2ca5, {1, {0x2ca4 }}}, 01815 { 0x2ca7, {1, {0x2ca6 }}}, 01816 { 0x2ca9, {1, {0x2ca8 }}}, 01817 { 0x2cab, {1, {0x2caa }}}, 01818 { 0x2cad, {1, {0x2cac }}}, 01819 { 0x2caf, {1, {0x2cae }}}, 01820 { 0x2cb1, {1, {0x2cb0 }}}, 01821 { 0x2cb3, {1, {0x2cb2 }}}, 01822 { 0x2cb5, {1, {0x2cb4 }}}, 01823 { 0x2cb7, {1, {0x2cb6 }}}, 01824 { 0x2cb9, {1, {0x2cb8 }}}, 01825 { 0x2cbb, {1, {0x2cba }}}, 01826 { 0x2cbd, {1, {0x2cbc }}}, 01827 { 0x2cbf, {1, {0x2cbe }}}, 01828 { 0x2cc1, {1, {0x2cc0 }}}, 01829 { 0x2cc3, {1, {0x2cc2 }}}, 01830 { 0x2cc5, {1, {0x2cc4 }}}, 01831 { 0x2cc7, {1, {0x2cc6 }}}, 01832 { 0x2cc9, {1, {0x2cc8 }}}, 01833 { 0x2ccb, {1, {0x2cca }}}, 01834 { 0x2ccd, {1, {0x2ccc }}}, 01835 { 0x2ccf, {1, {0x2cce }}}, 01836 { 0x2cd1, {1, {0x2cd0 }}}, 01837 { 0x2cd3, {1, {0x2cd2 }}}, 01838 { 0x2cd5, {1, {0x2cd4 }}}, 01839 { 0x2cd7, {1, {0x2cd6 }}}, 01840 { 0x2cd9, {1, {0x2cd8 }}}, 01841 { 0x2cdb, {1, {0x2cda }}}, 01842 { 0x2cdd, {1, {0x2cdc }}}, 01843 { 0x2cdf, {1, {0x2cde }}}, 01844 { 0x2ce1, {1, {0x2ce0 }}}, 01845 { 0x2ce3, {1, {0x2ce2 }}}, 01846 { 0x2d00, {1, {0x10a0 }}}, 01847 { 0x2d01, {1, {0x10a1 }}}, 01848 { 0x2d02, {1, {0x10a2 }}}, 01849 { 0x2d03, {1, {0x10a3 }}}, 01850 { 0x2d04, {1, {0x10a4 }}}, 01851 { 0x2d05, {1, {0x10a5 }}}, 01852 { 0x2d06, {1, {0x10a6 }}}, 01853 { 0x2d07, {1, {0x10a7 }}}, 01854 { 0x2d08, {1, {0x10a8 }}}, 01855 { 0x2d09, {1, {0x10a9 }}}, 01856 { 0x2d0a, {1, {0x10aa }}}, 01857 { 0x2d0b, {1, {0x10ab }}}, 01858 { 0x2d0c, {1, {0x10ac }}}, 01859 { 0x2d0d, {1, {0x10ad }}}, 01860 { 0x2d0e, {1, {0x10ae }}}, 01861 { 0x2d0f, {1, {0x10af }}}, 01862 { 0x2d10, {1, {0x10b0 }}}, 01863 { 0x2d11, {1, {0x10b1 }}}, 01864 { 0x2d12, {1, {0x10b2 }}}, 01865 { 0x2d13, {1, {0x10b3 }}}, 01866 { 0x2d14, {1, {0x10b4 }}}, 01867 { 0x2d15, {1, {0x10b5 }}}, 01868 { 0x2d16, {1, {0x10b6 }}}, 01869 { 0x2d17, {1, {0x10b7 }}}, 01870 { 0x2d18, {1, {0x10b8 }}}, 01871 { 0x2d19, {1, {0x10b9 }}}, 01872 { 0x2d1a, {1, {0x10ba }}}, 01873 { 0x2d1b, {1, {0x10bb }}}, 01874 { 0x2d1c, {1, {0x10bc }}}, 01875 { 0x2d1d, {1, {0x10bd }}}, 01876 { 0x2d1e, {1, {0x10be }}}, 01877 { 0x2d1f, {1, {0x10bf }}}, 01878 { 0x2d20, {1, {0x10c0 }}}, 01879 { 0x2d21, {1, {0x10c1 }}}, 01880 { 0x2d22, {1, {0x10c2 }}}, 01881 { 0x2d23, {1, {0x10c3 }}}, 01882 { 0x2d24, {1, {0x10c4 }}}, 01883 { 0x2d25, {1, {0x10c5 }}}, 01884 { 0xff41, {1, {0xff21 }}}, 01885 { 0xff42, {1, {0xff22 }}}, 01886 { 0xff43, {1, {0xff23 }}}, 01887 { 0xff44, {1, {0xff24 }}}, 01888 { 0xff45, {1, {0xff25 }}}, 01889 { 0xff46, {1, {0xff26 }}}, 01890 { 0xff47, {1, {0xff27 }}}, 01891 { 0xff48, {1, {0xff28 }}}, 01892 { 0xff49, {1, {0xff29 }}}, 01893 { 0xff4a, {1, {0xff2a }}}, 01894 { 0xff4b, {1, {0xff2b }}}, 01895 { 0xff4c, {1, {0xff2c }}}, 01896 { 0xff4d, {1, {0xff2d }}}, 01897 { 0xff4e, {1, {0xff2e }}}, 01898 { 0xff4f, {1, {0xff2f }}}, 01899 { 0xff50, {1, {0xff30 }}}, 01900 { 0xff51, {1, {0xff31 }}}, 01901 { 0xff52, {1, {0xff32 }}}, 01902 { 0xff53, {1, {0xff33 }}}, 01903 { 0xff54, {1, {0xff34 }}}, 01904 { 0xff55, {1, {0xff35 }}}, 01905 { 0xff56, {1, {0xff36 }}}, 01906 { 0xff57, {1, {0xff37 }}}, 01907 { 0xff58, {1, {0xff38 }}}, 01908 { 0xff59, {1, {0xff39 }}}, 01909 { 0xff5a, {1, {0xff3a }}}, 01910 { 0x10428, {1, {0x10400 }}}, 01911 { 0x10429, {1, {0x10401 }}}, 01912 { 0x1042a, {1, {0x10402 }}}, 01913 { 0x1042b, {1, {0x10403 }}}, 01914 { 0x1042c, {1, {0x10404 }}}, 01915 { 0x1042d, {1, {0x10405 }}}, 01916 { 0x1042e, {1, {0x10406 }}}, 01917 { 0x1042f, {1, {0x10407 }}}, 01918 { 0x10430, {1, {0x10408 }}}, 01919 { 0x10431, {1, {0x10409 }}}, 01920 { 0x10432, {1, {0x1040a }}}, 01921 { 0x10433, {1, {0x1040b }}}, 01922 { 0x10434, {1, {0x1040c }}}, 01923 { 0x10435, {1, {0x1040d }}}, 01924 { 0x10436, {1, {0x1040e }}}, 01925 { 0x10437, {1, {0x1040f }}}, 01926 { 0x10438, {1, {0x10410 }}}, 01927 { 0x10439, {1, {0x10411 }}}, 01928 { 0x1043a, {1, {0x10412 }}}, 01929 { 0x1043b, {1, {0x10413 }}}, 01930 { 0x1043c, {1, {0x10414 }}}, 01931 { 0x1043d, {1, {0x10415 }}}, 01932 { 0x1043e, {1, {0x10416 }}}, 01933 { 0x1043f, {1, {0x10417 }}}, 01934 { 0x10440, {1, {0x10418 }}}, 01935 { 0x10441, {1, {0x10419 }}}, 01936 { 0x10442, {1, {0x1041a }}}, 01937 { 0x10443, {1, {0x1041b }}}, 01938 { 0x10444, {1, {0x1041c }}}, 01939 { 0x10445, {1, {0x1041d }}}, 01940 { 0x10446, {1, {0x1041e }}}, 01941 { 0x10447, {1, {0x1041f }}}, 01942 { 0x10448, {1, {0x10420 }}}, 01943 { 0x10449, {1, {0x10421 }}}, 01944 { 0x1044a, {1, {0x10422 }}}, 01945 { 0x1044b, {1, {0x10423 }}}, 01946 { 0x1044c, {1, {0x10424 }}}, 01947 { 0x1044d, {1, {0x10425 }}}, 01948 { 0x1044e, {1, {0x10426 }}}, 01949 { 0x1044f, {1, {0x10427 }}} 01950 }; 01951 01952 static const CaseUnfold_11_Type CaseUnfold_11_Locale[] = { 01953 { 0x0069, {1, {0x0049 }}} 01954 }; 01955 01956 static const CaseUnfold_12_Type CaseUnfold_12[] = { 01957 { {0x0061, 0x02be}, {1, {0x1e9a }}}, 01958 { {0x0066, 0x0066}, {1, {0xfb00 }}}, 01959 { {0x0066, 0x0069}, {1, {0xfb01 }}}, 01960 { {0x0066, 0x006c}, {1, {0xfb02 }}}, 01961 { {0x0068, 0x0331}, {1, {0x1e96 }}}, 01962 { {0x006a, 0x030c}, {1, {0x01f0 }}}, 01963 { {0x0073, 0x0073}, {1, {0x00df }}}, 01964 { {0x0073, 0x0074}, {2, {0xfb05, 0xfb06 }}}, 01965 { {0x0074, 0x0308}, {1, {0x1e97 }}}, 01966 { {0x0077, 0x030a}, {1, {0x1e98 }}}, 01967 { {0x0079, 0x030a}, {1, {0x1e99 }}}, 01968 { {0x02bc, 0x006e}, {1, {0x0149 }}}, 01969 { {0x03ac, 0x03b9}, {1, {0x1fb4 }}}, 01970 { {0x03ae, 0x03b9}, {1, {0x1fc4 }}}, 01971 { {0x03b1, 0x0342}, {1, {0x1fb6 }}}, 01972 { {0x03b1, 0x03b9}, {2, {0x1fb3, 0x1fbc }}}, 01973 { {0x03b7, 0x0342}, {1, {0x1fc6 }}}, 01974 { {0x03b7, 0x03b9}, {2, {0x1fc3, 0x1fcc }}}, 01975 { {0x03b9, 0x0342}, {1, {0x1fd6 }}}, 01976 { {0x03c1, 0x0313}, {1, {0x1fe4 }}}, 01977 { {0x03c5, 0x0313}, {1, {0x1f50 }}}, 01978 { {0x03c5, 0x0342}, {1, {0x1fe6 }}}, 01979 { {0x03c9, 0x0342}, {1, {0x1ff6 }}}, 01980 { {0x03c9, 0x03b9}, {2, {0x1ff3, 0x1ffc }}}, 01981 { {0x03ce, 0x03b9}, {1, {0x1ff4 }}}, 01982 { {0x0565, 0x0582}, {1, {0x0587 }}}, 01983 { {0x0574, 0x0565}, {1, {0xfb14 }}}, 01984 { {0x0574, 0x056b}, {1, {0xfb15 }}}, 01985 { {0x0574, 0x056d}, {1, {0xfb17 }}}, 01986 { {0x0574, 0x0576}, {1, {0xfb13 }}}, 01987 { {0x057e, 0x0576}, {1, {0xfb16 }}}, 01988 { {0x1f00, 0x03b9}, {2, {0x1f88, 0x1f80 }}}, 01989 { {0x1f01, 0x03b9}, {2, {0x1f81, 0x1f89 }}}, 01990 { {0x1f02, 0x03b9}, {2, {0x1f82, 0x1f8a }}}, 01991 { {0x1f03, 0x03b9}, {2, {0x1f83, 0x1f8b }}}, 01992 { {0x1f04, 0x03b9}, {2, {0x1f84, 0x1f8c }}}, 01993 { {0x1f05, 0x03b9}, {2, {0x1f85, 0x1f8d }}}, 01994 { {0x1f06, 0x03b9}, {2, {0x1f86, 0x1f8e }}}, 01995 { {0x1f07, 0x03b9}, {2, {0x1f87, 0x1f8f }}}, 01996 { {0x1f20, 0x03b9}, {2, {0x1f90, 0x1f98 }}}, 01997 { {0x1f21, 0x03b9}, {2, {0x1f91, 0x1f99 }}}, 01998 { {0x1f22, 0x03b9}, {2, {0x1f92, 0x1f9a }}}, 01999 { {0x1f23, 0x03b9}, {2, {0x1f93, 0x1f9b }}}, 02000 { {0x1f24, 0x03b9}, {2, {0x1f94, 0x1f9c }}}, 02001 { {0x1f25, 0x03b9}, {2, {0x1f95, 0x1f9d }}}, 02002 { {0x1f26, 0x03b9}, {2, {0x1f96, 0x1f9e }}}, 02003 { {0x1f27, 0x03b9}, {2, {0x1f97, 0x1f9f }}}, 02004 { {0x1f60, 0x03b9}, {2, {0x1fa0, 0x1fa8 }}}, 02005 { {0x1f61, 0x03b9}, {2, {0x1fa1, 0x1fa9 }}}, 02006 { {0x1f62, 0x03b9}, {2, {0x1fa2, 0x1faa }}}, 02007 { {0x1f63, 0x03b9}, {2, {0x1fa3, 0x1fab }}}, 02008 { {0x1f64, 0x03b9}, {2, {0x1fa4, 0x1fac }}}, 02009 { {0x1f65, 0x03b9}, {2, {0x1fa5, 0x1fad }}}, 02010 { {0x1f66, 0x03b9}, {2, {0x1fa6, 0x1fae }}}, 02011 { {0x1f67, 0x03b9}, {2, {0x1fa7, 0x1faf }}}, 02012 { {0x1f70, 0x03b9}, {1, {0x1fb2 }}}, 02013 { {0x1f74, 0x03b9}, {1, {0x1fc2 }}}, 02014 { {0x1f7c, 0x03b9}, {1, {0x1ff2 }}} 02015 }; 02016 02017 static const CaseUnfold_12_Type CaseUnfold_12_Locale[] = { 02018 { {0x0069, 0x0307}, {1, {0x0130 }}} 02019 }; 02020 02021 static const CaseUnfold_13_Type CaseUnfold_13[] = { 02022 { {0x0066, 0x0066, 0x0069}, {1, {0xfb03 }}}, 02023 { {0x0066, 0x0066, 0x006c}, {1, {0xfb04 }}}, 02024 { {0x03b1, 0x0342, 0x03b9}, {1, {0x1fb7 }}}, 02025 { {0x03b7, 0x0342, 0x03b9}, {1, {0x1fc7 }}}, 02026 { {0x03b9, 0x0308, 0x0300}, {1, {0x1fd2 }}}, 02027 { {0x03b9, 0x0308, 0x0301}, {2, {0x0390, 0x1fd3 }}}, 02028 { {0x03b9, 0x0308, 0x0342}, {1, {0x1fd7 }}}, 02029 { {0x03c5, 0x0308, 0x0300}, {1, {0x1fe2 }}}, 02030 { {0x03c5, 0x0308, 0x0301}, {2, {0x03b0, 0x1fe3 }}}, 02031 { {0x03c5, 0x0308, 0x0342}, {1, {0x1fe7 }}}, 02032 { {0x03c5, 0x0313, 0x0300}, {1, {0x1f52 }}}, 02033 { {0x03c5, 0x0313, 0x0301}, {1, {0x1f54 }}}, 02034 { {0x03c5, 0x0313, 0x0342}, {1, {0x1f56 }}}, 02035 { {0x03c9, 0x0342, 0x03b9}, {1, {0x1ff7 }}} 02036 }; 02037 02038 #define numberof(array) (int)(sizeof(array) / sizeof((array)[0])) 02039 #define CODE_RANGES_NUM numberof(CodeRanges) 02040 02041 extern int 02042 onigenc_unicode_is_code_ctype(OnigCodePoint code, unsigned int ctype, OnigEncoding enc ARG_UNUSED) 02043 { 02044 if ( 02045 #ifdef USE_UNICODE_PROPERTIES 02046 ctype <= ONIGENC_MAX_STD_CTYPE && 02047 #endif 02048 code < 256) { 02049 return ONIGENC_IS_UNICODE_ISO_8859_1_CTYPE(code, ctype); 02050 } 02051 02052 if (ctype >= CODE_RANGES_NUM) { 02053 return ONIGERR_TYPE_BUG; 02054 } 02055 02056 return onig_is_in_code_range((UChar* )CodeRanges[ctype], code); 02057 } 02058 02059 02060 extern int 02061 onigenc_unicode_ctype_code_range(int ctype, const OnigCodePoint* ranges[]) 02062 { 02063 if (ctype >= CODE_RANGES_NUM) { 02064 return ONIGERR_TYPE_BUG; 02065 } 02066 02067 *ranges = CodeRanges[ctype]; 02068 02069 return 0; 02070 } 02071 02072 extern int 02073 onigenc_utf16_32_get_ctype_code_range(OnigCtype ctype, OnigCodePoint* sb_out, 02074 const OnigCodePoint* ranges[], 02075 struct OnigEncodingTypeST* enc ARG_UNUSED) 02076 { 02077 *sb_out = 0x00; 02078 return onigenc_unicode_ctype_code_range(ctype, ranges); 02079 } 02080 02081 #include "ruby/st.h" 02082 02083 #define PROPERTY_NAME_MAX_SIZE MAX_WORD_LENGTH 02084 02085 extern int 02086 onigenc_unicode_property_name_to_ctype(OnigEncoding enc, UChar* name, UChar* end) 02087 { 02088 int len; 02089 int ctype; 02090 UChar buf[PROPERTY_NAME_MAX_SIZE]; 02091 UChar *p; 02092 OnigCodePoint code; 02093 02094 p = name; 02095 len = 0; 02096 for (p = name; p < end; p += enclen(enc, p, end)) { 02097 code = ONIGENC_MBC_TO_CODE(enc, p, end); 02098 if (code == ' ' || code == '-' || code == '_') 02099 continue; 02100 if (code >= 0x80) 02101 return ONIGERR_INVALID_CHAR_PROPERTY_NAME; 02102 02103 buf[len++] = (UChar )TOLOWER((unsigned char)code); 02104 if (len >= PROPERTY_NAME_MAX_SIZE) 02105 return ONIGERR_INVALID_CHAR_PROPERTY_NAME; 02106 } 02107 02108 buf[len] = 0; 02109 02110 if ((ctype = uniname2ctype(buf, len)) < 0) { 02111 return ONIGERR_INVALID_CHAR_PROPERTY_NAME; 02112 } 02113 02114 return ctype; 02115 } 02116 02117 02118 static int 02119 code2_cmp(OnigCodePoint* x, OnigCodePoint* y) 02120 { 02121 if (x[0] == y[0] && x[1] == y[1]) return 0; 02122 return 1; 02123 } 02124 02125 static st_index_t 02126 code2_hash(OnigCodePoint* x) 02127 { 02128 return (st_index_t )(x[0] + x[1]); 02129 } 02130 02131 static const struct st_hash_type type_code2_hash = { 02132 code2_cmp, 02133 code2_hash, 02134 }; 02135 02136 static int 02137 code3_cmp(OnigCodePoint* x, OnigCodePoint* y) 02138 { 02139 if (x[0] == y[0] && x[1] == y[1] && x[2] == y[2]) return 0; 02140 return 1; 02141 } 02142 02143 static st_index_t 02144 code3_hash(OnigCodePoint* x) 02145 { 02146 return (st_index_t )(x[0] + x[1] + x[2]); 02147 } 02148 02149 static const struct st_hash_type type_code3_hash = { 02150 code3_cmp, 02151 code3_hash, 02152 }; 02153 02154 02155 static st_table* FoldTable; /* fold-1, fold-2, fold-3 */ 02156 static st_table* Unfold1Table; 02157 static st_table* Unfold2Table; 02158 static st_table* Unfold3Table; 02159 static int CaseFoldInited = 0; 02160 02161 static int init_case_fold_table(void) 02162 { 02163 const CaseFold_11_Type *p; 02164 const CaseUnfold_11_Type *p1; 02165 const CaseUnfold_12_Type *p2; 02166 const CaseUnfold_13_Type *p3; 02167 int i; 02168 02169 THREAD_ATOMIC_START; 02170 02171 FoldTable = st_init_numtable_with_size(1200); 02172 if (ONIG_IS_NULL(FoldTable)) return ONIGERR_MEMORY; 02173 for (i = 0; i < numberof(CaseFold); i++) { 02174 p = &CaseFold[i]; 02175 st_add_direct(FoldTable, (st_data_t )p->from, (st_data_t )&(p->to)); 02176 } 02177 for (i = 0; i < numberof(CaseFold_Locale); i++) { 02178 p = &CaseFold_Locale[i]; 02179 st_add_direct(FoldTable, (st_data_t )p->from, (st_data_t )&(p->to)); 02180 } 02181 02182 Unfold1Table = st_init_numtable_with_size(1000); 02183 if (ONIG_IS_NULL(Unfold1Table)) return ONIGERR_MEMORY; 02184 02185 for (i = 0; i < numberof(CaseUnfold_11); i++) { 02186 p1 = &CaseUnfold_11[i]; 02187 st_add_direct(Unfold1Table, (st_data_t )p1->from, (st_data_t )&(p1->to)); 02188 } 02189 for (i = 0; i < numberof(CaseUnfold_11_Locale); i++) { 02190 p1 = &CaseUnfold_11_Locale[i]; 02191 st_add_direct(Unfold1Table, (st_data_t )p1->from, (st_data_t )&(p1->to)); 02192 } 02193 02194 Unfold2Table = st_init_table_with_size(&type_code2_hash, 200); 02195 if (ONIG_IS_NULL(Unfold2Table)) return ONIGERR_MEMORY; 02196 02197 for (i = 0; i < numberof(CaseUnfold_12); i++) { 02198 p2 = &CaseUnfold_12[i]; 02199 st_add_direct(Unfold2Table, (st_data_t )p2->from, (st_data_t )(&p2->to)); 02200 } 02201 for (i = 0; i < numberof(CaseUnfold_12_Locale); i++) { 02202 p2 = &CaseUnfold_12_Locale[i]; 02203 st_add_direct(Unfold2Table, (st_data_t )p2->from, (st_data_t )(&p2->to)); 02204 } 02205 02206 Unfold3Table = st_init_table_with_size(&type_code3_hash, 30); 02207 if (ONIG_IS_NULL(Unfold3Table)) return ONIGERR_MEMORY; 02208 02209 for (i = 0; i < numberof(CaseUnfold_13); i++) { 02210 p3 = &CaseUnfold_13[i]; 02211 st_add_direct(Unfold3Table, (st_data_t )p3->from, (st_data_t )(&p3->to)); 02212 } 02213 02214 CaseFoldInited = 1; 02215 THREAD_ATOMIC_END; 02216 return 0; 02217 } 02218 02219 extern int 02220 onigenc_unicode_mbc_case_fold(OnigEncoding enc, 02221 OnigCaseFoldType flag ARG_UNUSED, const UChar** pp, const UChar* end, 02222 UChar* fold) 02223 { 02224 CodePointList3 *to; 02225 OnigCodePoint code; 02226 int i, len, rlen; 02227 const UChar *p = *pp; 02228 02229 if (CaseFoldInited == 0) init_case_fold_table(); 02230 02231 code = ONIGENC_MBC_TO_CODE(enc, p, end); 02232 len = enclen(enc, p, end); 02233 *pp += len; 02234 02235 #ifdef USE_UNICODE_CASE_FOLD_TURKISH_AZERI 02236 if ((flag & ONIGENC_CASE_FOLD_TURKISH_AZERI) != 0) { 02237 if (code == 0x0049) { 02238 return ONIGENC_CODE_TO_MBC(enc, 0x0131, fold); 02239 } 02240 else if (code == 0x0130) { 02241 return ONIGENC_CODE_TO_MBC(enc, 0x0069, fold); 02242 } 02243 } 02244 #endif 02245 02246 if (onig_st_lookup(FoldTable, (st_data_t )code, (void* )&to) != 0) { 02247 if (to->n == 1) { 02248 return ONIGENC_CODE_TO_MBC(enc, to->code[0], fold); 02249 } 02250 #if 0 02251 /* NO NEEDS TO CHECK */ 02252 else if ((flag & INTERNAL_ONIGENC_CASE_FOLD_MULTI_CHAR) != 0) 02253 #else 02254 else 02255 #endif 02256 { 02257 rlen = 0; 02258 for (i = 0; i < to->n; i++) { 02259 len = ONIGENC_CODE_TO_MBC(enc, to->code[i], fold); 02260 fold += len; 02261 rlen += len; 02262 } 02263 return rlen; 02264 } 02265 } 02266 02267 for (i = 0; i < len; i++) { 02268 *fold++ = *p++; 02269 } 02270 return len; 02271 } 02272 02273 extern int 02274 onigenc_unicode_apply_all_case_fold(OnigCaseFoldType flag, 02275 OnigApplyAllCaseFoldFunc f, void* arg, 02276 OnigEncoding enc ARG_UNUSED) 02277 { 02278 const CaseUnfold_11_Type* p11; 02279 OnigCodePoint code; 02280 int i, j, k, r; 02281 02282 /* if (CaseFoldInited == 0) init_case_fold_table(); */ 02283 02284 for (i = 0; i < numberof(CaseUnfold_11); i++) { 02285 p11 = &CaseUnfold_11[i]; 02286 for (j = 0; j < p11->to.n; j++) { 02287 code = p11->from; 02288 r = (*f)(p11->to.code[j], &code, 1, arg); 02289 if (r != 0) return r; 02290 02291 code = p11->to.code[j]; 02292 r = (*f)(p11->from, &code, 1, arg); 02293 if (r != 0) return r; 02294 02295 for (k = 0; k < j; k++) { 02296 r = (*f)(p11->to.code[j], (OnigCodePoint* )(&p11->to.code[k]), 1, arg); 02297 if (r != 0) return r; 02298 02299 r = (*f)(p11->to.code[k], (OnigCodePoint* )(&p11->to.code[j]), 1, arg); 02300 if (r != 0) return r; 02301 } 02302 } 02303 } 02304 02305 #ifdef USE_UNICODE_CASE_FOLD_TURKISH_AZERI 02306 if ((flag & ONIGENC_CASE_FOLD_TURKISH_AZERI) != 0) { 02307 code = 0x0131; 02308 r = (*f)(0x0049, &code, 1, arg); 02309 if (r != 0) return r; 02310 code = 0x0049; 02311 r = (*f)(0x0131, &code, 1, arg); 02312 if (r != 0) return r; 02313 02314 code = 0x0130; 02315 r = (*f)(0x0069, &code, 1, arg); 02316 if (r != 0) return r; 02317 code = 0x0069; 02318 r = (*f)(0x0130, &code, 1, arg); 02319 if (r != 0) return r; 02320 } 02321 else { 02322 #endif 02323 for (i = 0; i < numberof(CaseUnfold_11_Locale); i++) { 02324 p11 = &CaseUnfold_11_Locale[i]; 02325 for (j = 0; j < p11->to.n; j++) { 02326 code = p11->from; 02327 r = (*f)(p11->to.code[j], &code, 1, arg); 02328 if (r != 0) return r; 02329 02330 code = p11->to.code[j]; 02331 r = (*f)(p11->from, &code, 1, arg); 02332 if (r != 0) return r; 02333 02334 for (k = 0; k < j; k++) { 02335 r = (*f)(p11->to.code[j], (OnigCodePoint* )(&p11->to.code[k]), 02336 1, arg); 02337 if (r != 0) return r; 02338 02339 r = (*f)(p11->to.code[k], (OnigCodePoint* )(&p11->to.code[j]), 02340 1, arg); 02341 if (r != 0) return r; 02342 } 02343 } 02344 } 02345 #ifdef USE_UNICODE_CASE_FOLD_TURKISH_AZERI 02346 } 02347 #endif 02348 02349 if ((flag & INTERNAL_ONIGENC_CASE_FOLD_MULTI_CHAR) != 0) { 02350 for (i = 0; i < numberof(CaseUnfold_12); i++) { 02351 for (j = 0; j < CaseUnfold_12[i].to.n; j++) { 02352 r = (*f)(CaseUnfold_12[i].to.code[j], 02353 (OnigCodePoint* )CaseUnfold_12[i].from, 2, arg); 02354 if (r != 0) return r; 02355 02356 for (k = 0; k < CaseUnfold_12[i].to.n; k++) { 02357 if (k == j) continue; 02358 02359 r = (*f)(CaseUnfold_12[i].to.code[j], 02360 (OnigCodePoint* )(&CaseUnfold_12[i].to.code[k]), 1, arg); 02361 if (r != 0) return r; 02362 } 02363 } 02364 } 02365 02366 #ifdef USE_UNICODE_CASE_FOLD_TURKISH_AZERI 02367 if ((flag & ONIGENC_CASE_FOLD_TURKISH_AZERI) == 0) { 02368 #endif 02369 for (i = 0; i < numberof(CaseUnfold_12_Locale); i++) { 02370 for (j = 0; j < CaseUnfold_12_Locale[i].to.n; j++) { 02371 r = (*f)(CaseUnfold_12_Locale[i].to.code[j], 02372 (OnigCodePoint* )CaseUnfold_12_Locale[i].from, 2, arg); 02373 if (r != 0) return r; 02374 02375 for (k = 0; k < CaseUnfold_12_Locale[i].to.n; k++) { 02376 if (k == j) continue; 02377 02378 r = (*f)(CaseUnfold_12_Locale[i].to.code[j], 02379 (OnigCodePoint* )(&CaseUnfold_12_Locale[i].to.code[k]), 02380 1, arg); 02381 if (r != 0) return r; 02382 } 02383 } 02384 } 02385 #ifdef USE_UNICODE_CASE_FOLD_TURKISH_AZERI 02386 } 02387 #endif 02388 02389 for (i = 0; i < numberof(CaseUnfold_13); i++) { 02390 for (j = 0; j < CaseUnfold_13[i].to.n; j++) { 02391 r = (*f)(CaseUnfold_13[i].to.code[j], 02392 (OnigCodePoint* )CaseUnfold_13[i].from, 3, arg); 02393 if (r != 0) return r; 02394 02395 for (k = 0; k < CaseUnfold_13[i].to.n; k++) { 02396 if (k == j) continue; 02397 02398 r = (*f)(CaseUnfold_13[i].to.code[j], 02399 (OnigCodePoint* )(&CaseUnfold_13[i].to.code[k]), 1, arg); 02400 if (r != 0) return r; 02401 } 02402 } 02403 } 02404 } 02405 02406 return 0; 02407 } 02408 02409 extern int 02410 onigenc_unicode_get_case_fold_codes_by_str(OnigEncoding enc, 02411 OnigCaseFoldType flag, const OnigUChar* p, const OnigUChar* end, 02412 OnigCaseFoldCodeItem items[]) 02413 { 02414 int n, i, j, k, len; 02415 OnigCodePoint code, codes[3]; 02416 CodePointList3 *to, *z3; 02417 CodePointList2 *z2; 02418 02419 if (CaseFoldInited == 0) init_case_fold_table(); 02420 02421 n = 0; 02422 02423 code = ONIGENC_MBC_TO_CODE(enc, p, end); 02424 len = enclen(enc, p, end); 02425 02426 #ifdef USE_UNICODE_CASE_FOLD_TURKISH_AZERI 02427 if ((flag & ONIGENC_CASE_FOLD_TURKISH_AZERI) != 0) { 02428 if (code == 0x0049) { 02429 items[0].byte_len = len; 02430 items[0].code_len = 1; 02431 items[0].code[0] = 0x0131; 02432 return 1; 02433 } 02434 else if (code == 0x0130) { 02435 items[0].byte_len = len; 02436 items[0].code_len = 1; 02437 items[0].code[0] = 0x0069; 02438 return 1; 02439 } 02440 else if (code == 0x0131) { 02441 items[0].byte_len = len; 02442 items[0].code_len = 1; 02443 items[0].code[0] = 0x0049; 02444 return 1; 02445 } 02446 else if (code == 0x0069) { 02447 items[0].byte_len = len; 02448 items[0].code_len = 1; 02449 items[0].code[0] = 0x0130; 02450 return 1; 02451 } 02452 } 02453 #endif 02454 02455 if (onig_st_lookup(FoldTable, (st_data_t )code, (void* )&to) != 0) { 02456 if (to->n == 1) { 02457 OnigCodePoint orig_code = code; 02458 02459 items[0].byte_len = len; 02460 items[0].code_len = 1; 02461 items[0].code[0] = to->code[0]; 02462 n++; 02463 02464 code = to->code[0]; 02465 if (onig_st_lookup(Unfold1Table, (st_data_t )code, (void* )&to) != 0) { 02466 for (i = 0; i < to->n; i++) { 02467 if (to->code[i] != orig_code) { 02468 items[n].byte_len = len; 02469 items[n].code_len = 1; 02470 items[n].code[0] = to->code[i]; 02471 n++; 02472 } 02473 } 02474 } 02475 } 02476 else if ((flag & INTERNAL_ONIGENC_CASE_FOLD_MULTI_CHAR) != 0) { 02477 OnigCodePoint cs[3][4]; 02478 int fn, ncs[3]; 02479 02480 for (fn = 0; fn < to->n; fn++) { 02481 cs[fn][0] = to->code[fn]; 02482 if (onig_st_lookup(Unfold1Table, (st_data_t )cs[fn][0], 02483 (void* )&z3) != 0) { 02484 for (i = 0; i < z3->n; i++) { 02485 cs[fn][i+1] = z3->code[i]; 02486 } 02487 ncs[fn] = z3->n + 1; 02488 } 02489 else 02490 ncs[fn] = 1; 02491 } 02492 02493 if (fn == 2) { 02494 for (i = 0; i < ncs[0]; i++) { 02495 for (j = 0; j < ncs[1]; j++) { 02496 items[n].byte_len = len; 02497 items[n].code_len = 2; 02498 items[n].code[0] = cs[0][i]; 02499 items[n].code[1] = cs[1][j]; 02500 n++; 02501 } 02502 } 02503 02504 if (onig_st_lookup(Unfold2Table, (st_data_t )to->code, 02505 (void* )&z2) != 0) { 02506 for (i = 0; i < z2->n; i++) { 02507 if (z2->code[i] == code) continue; 02508 02509 items[n].byte_len = len; 02510 items[n].code_len = 1; 02511 items[n].code[0] = z2->code[i]; 02512 n++; 02513 } 02514 } 02515 } 02516 else { 02517 for (i = 0; i < ncs[0]; i++) { 02518 for (j = 0; j < ncs[1]; j++) { 02519 for (k = 0; k < ncs[2]; k++) { 02520 items[n].byte_len = len; 02521 items[n].code_len = 3; 02522 items[n].code[0] = cs[0][i]; 02523 items[n].code[1] = cs[1][j]; 02524 items[n].code[2] = cs[2][k]; 02525 n++; 02526 } 02527 } 02528 } 02529 02530 if (onig_st_lookup(Unfold3Table, (st_data_t )to->code, 02531 (void* )&z2) != 0) { 02532 for (i = 0; i < z2->n; i++) { 02533 if (z2->code[i] == code) continue; 02534 02535 items[n].byte_len = len; 02536 items[n].code_len = 1; 02537 items[n].code[0] = z2->code[i]; 02538 n++; 02539 } 02540 } 02541 } 02542 02543 /* multi char folded code is not head of another folded multi char */ 02544 flag = 0; /* DISABLE_CASE_FOLD_MULTI_CHAR(flag); */ 02545 } 02546 } 02547 else { 02548 if (onig_st_lookup(Unfold1Table, (st_data_t )code, (void* )&to) != 0) { 02549 for (i = 0; i < to->n; i++) { 02550 items[n].byte_len = len; 02551 items[n].code_len = 1; 02552 items[n].code[0] = to->code[i]; 02553 n++; 02554 } 02555 } 02556 } 02557 02558 02559 if ((flag & INTERNAL_ONIGENC_CASE_FOLD_MULTI_CHAR) != 0) { 02560 p += len; 02561 if (p < end) { 02562 int clen; 02563 02564 codes[0] = code; 02565 code = ONIGENC_MBC_TO_CODE(enc, p, end); 02566 if (onig_st_lookup(FoldTable, (st_data_t )code, (void* )&to) != 0 02567 && to->n == 1) { 02568 codes[1] = to->code[0]; 02569 } 02570 else 02571 codes[1] = code; 02572 02573 clen = enclen(enc, p, end); 02574 len += clen; 02575 if (onig_st_lookup(Unfold2Table, (st_data_t )codes, (void* )&z2) != 0) { 02576 for (i = 0; i < z2->n; i++) { 02577 items[n].byte_len = len; 02578 items[n].code_len = 1; 02579 items[n].code[0] = z2->code[i]; 02580 n++; 02581 } 02582 } 02583 02584 p += clen; 02585 if (p < end) { 02586 code = ONIGENC_MBC_TO_CODE(enc, p, end); 02587 if (onig_st_lookup(FoldTable, (st_data_t )code, (void* )&to) != 0 02588 && to->n == 1) { 02589 codes[2] = to->code[0]; 02590 } 02591 else 02592 codes[2] = code; 02593 02594 clen = enclen(enc, p, end); 02595 len += clen; 02596 if (onig_st_lookup(Unfold3Table, (st_data_t )codes, 02597 (void* )&z2) != 0) { 02598 for (i = 0; i < z2->n; i++) { 02599 items[n].byte_len = len; 02600 items[n].code_len = 1; 02601 items[n].code[0] = z2->code[i]; 02602 n++; 02603 } 02604 } 02605 } 02606 } 02607 } 02608 02609 return n; 02610 } 02611
1.7.3