diff options
| -rw-r--r-- | doc/ScintillaHistory.html | 11 | ||||
| -rw-r--r-- | lexlib/CharacterCategory.cxx | 625 | ||||
| -rw-r--r-- | src/CaseConvert.cxx | 202 | 
3 files changed, 725 insertions, 113 deletions
| diff --git a/doc/ScintillaHistory.html b/doc/ScintillaHistory.html index a21cbf63d..6dc53e548 100644 --- a/doc/ScintillaHistory.html +++ b/doc/ScintillaHistory.html @@ -527,6 +527,17 @@  	Released 21 March 2017.  	</li>  	<li> +	Updated case conversion and character categories to Unicode 9. +	</li> +    </ul> +    <h3> +       <a href="http://www.scintilla.org/scite374.zip">Release 3.7.4</a> +    </h3> +    <ul> +	<li> +	Released 21 March 2017. +	</li> +	<li>  	Requires a C++11 compiler. GCC 4.8 and MSVC 2015 are supported.  	</li>  	<li> diff --git a/lexlib/CharacterCategory.cxx b/lexlib/CharacterCategory.cxx index 2be46c013..7ca3a0f27 100644 --- a/lexlib/CharacterCategory.cxx +++ b/lexlib/CharacterCategory.cxx @@ -21,7 +21,7 @@ namespace {  const int catRanges[] = {  //++Autogenerated -- start of section automatically generated -// Created with Python 3.3.0,  Unicode 6.1.0 +// Created with Python 3.6.1,  Unicode 9.0.0  25,  1046,  1073, @@ -395,7 +395,8 @@ const int catRanges[] = {  28483,  28513,  28625, -28669, +28640, +28701,  28820,  28864,  28913, @@ -639,7 +640,15 @@ const int catRanges[] = {  42145,  42176,  42209, -42269, +42240, +42273, +42304, +42337, +42368, +42401, +42432, +42465, +42525,  42528,  43773,  43811, @@ -650,6 +659,7 @@ const int catRanges[] = {  45361,  45388,  45437, +45493,  45555,  45597,  45605, @@ -668,7 +678,6 @@ const int catRanges[] = {  48753,  48829,  49178, -49341,  49362,  49457,  49523, @@ -676,7 +685,8 @@ const int catRanges[] = {  49621,  49669,  50033, -50077, +50074, +50109,  50129,  50180,  51203, @@ -739,12 +749,12 @@ const int catRanges[] = {  68561,  68605,  70660, -70717, -70724, -71101, -72837, -73725, -73733, +71357, +71364, +71645, +72325, +72794, +72805,  73830,  73860,  75589, @@ -765,9 +775,6 @@ const int catRanges[] = {  77329,  77347,  77380, -77597, -77604, -77853,  77861,  77894,  77981, @@ -880,6 +887,8 @@ const int catRanges[] = {  89617,  89651,  89693, +89892, +89949,  90149,  90182,  90269, @@ -960,6 +969,7 @@ const int catRanges[] = {  98099,  98133,  98173, +98309,  98342,  98461,  98468, @@ -969,8 +979,6 @@ const int catRanges[] = {  98884,  99645,  99652, -99997, -100004,  100189,  100260,  100293, @@ -983,7 +991,7 @@ const int catRanges[] = {  101029,  101117,  101124, -101213, +101245,  101380,  101445,  101533, @@ -991,7 +999,8 @@ const int catRanges[] = {  101917,  102154,  102389, -102429, +102404, +102437,  102470,  102557,  102564, @@ -1027,6 +1036,7 @@ const int catRanges[] = {  106013,  106020,  106109, +106533,  106566,  106653,  106660, @@ -1044,15 +1054,16 @@ const int catRanges[] = {  108870,  108965,  108996, -109053, +109045, +109085, +109188,  109286, -109341, -109572, +109322, +109540,  109637,  109725,  109768,  110090, -110301,  110389,  110404,  110621, @@ -1077,6 +1088,8 @@ const int catRanges[] = {  113405,  113414,  113693, +113864, +114205,  114246,  114321,  114365, @@ -1260,8 +1273,10 @@ const int catRanges[] = {  159748,  160277,  160605, -160772, -163517, +160768, +163549, +163585, +163805,  163852,  163876,  183729, @@ -1274,7 +1289,8 @@ const int catRanges[] = {  185348,  187761,  187849, -187965, +187940, +188221,  188420,  188861,  188868, @@ -1316,7 +1332,7 @@ const int catRanges[] = {  196812,  196849,  196965, -197078, +197082,  197117,  197128,  197469, @@ -1325,13 +1341,15 @@ const int catRanges[] = {  198788,  200477,  200708, +200869, +200932,  202021,  202052,  202109,  202244,  204509,  204804, -205757, +205821,  205829,  205926,  206053, @@ -1352,9 +1370,7 @@ const int catRanges[] = {  208573,  208900,  210333, -210438, -210980, -211206, +210436,  211293,  211464,  211786, @@ -1363,6 +1379,7 @@ const int catRanges[] = {  212996,  213733,  213798, +213861,  213917,  213969,  214020, @@ -1388,6 +1405,9 @@ const int catRanges[] = {  218339,  218385,  218589, +218629, +219079, +219133,  221189,  221318,  221348, @@ -1416,7 +1436,6 @@ const int catRanges[] = {  226565,  226630,  226661, -226694,  226756,  226824,  227140, @@ -1444,7 +1463,8 @@ const int catRanges[] = {  232260,  233219,  233425, -233501, +233473, +233789,  235537,  235805,  236037, @@ -1459,6 +1479,8 @@ const int catRanges[] = {  237189,  237220,  237309, +237317, +237405,  237569,  238979,  240993, @@ -1466,8 +1488,8 @@ const int catRanges[] = {  241441,  242531,  243717, -244989, -245637, +245469, +245605,  245760,  245793,  245824, @@ -1812,7 +1834,7 @@ const int catRanges[] = {  265206,  265242,  265405, -265562, +265434,  265738,  265763,  265821, @@ -1829,7 +1851,7 @@ const int catRanges[] = {  266755,  267197,  267283, -268125, +268285,  268805,  269223,  269349, @@ -1882,7 +1904,8 @@ const int catRanges[] = {  274561,  274601,  274730, -274781, +274773, +274845,  274962,  275125,  275282, @@ -1903,7 +1926,10 @@ const int catRanges[] = {  277173,  278162,  286741, -286994, +286989, +287022, +287053, +287086,  287125,  287762,  287829, @@ -1916,7 +1942,7 @@ const int catRanges[] = {  292501,  293778,  293973, -294557, +294909,  294933,  296189,  296981, @@ -1933,8 +1959,6 @@ const int catRanges[] = {  311317,  314866,  314901, -319517, -319541,  322829,  322862,  322893, @@ -2003,9 +2027,18 @@ const int catRanges[] = {  353810,  354485,  354546, -354749, -354837, -355165, +354741, +355997, +356053, +357085, +357141, +358237, +358325, +358717, +358741, +359005, +359829, +359965,  360448,  361981,  361985, @@ -2203,7 +2236,12 @@ const int catRanges[] = {  378339,  378385,  378700, -378781, +378769, +378892, +378929, +378957, +378993, +379069,  380949,  381789,  381813, @@ -2295,7 +2333,7 @@ const int catRanges[] = {  636637,  636949,  638980, -1309117, +1309405,  1310724,  1311395,  1311428, @@ -2389,8 +2427,12 @@ const int catRanges[] = {  1364641,  1364672,  1364705, -1364765, -1364965, +1364736, +1364769, +1364800, +1364833, +1364867, +1364933,  1364996,  1367241,  1367557, @@ -2497,12 +2539,21 @@ const int catRanges[] = {  1372545,  1372576,  1372609, -1372669, +1372644,  1372672,  1372705,  1372736,  1372769, -1372829, +1372864, +1372897, +1372928, +1372961, +1372992, +1373025, +1373056, +1373089, +1373120, +1373153,  1373184,  1373217,  1373248, @@ -2514,7 +2565,13 @@ const int catRanges[] = {  1373440,  1373473,  1373504, -1373565, +1373693, +1373696, +1373857, +1373888, +1373921, +1373981, +1375972,  1376003,  1376065,  1376100, @@ -2541,7 +2598,7 @@ const int catRanges[] = {  1380420,  1382022,  1382533, -1382589, +1382621,  1382865,  1382920,  1383261, @@ -2549,7 +2606,9 @@ const int catRanges[] = {  1384004,  1384209,  1384292, -1384349, +1384337, +1384356, +1384413,  1384456,  1384772,  1385669, @@ -2576,7 +2635,13 @@ const int catRanges[] = {  1391112,  1391453,  1391569, -1391645, +1391620, +1391781, +1391811, +1391844, +1392136, +1392452, +1392637,  1392644,  1393957,  1394150, @@ -2599,8 +2664,9 @@ const int catRanges[] = {  1396469,  1396548,  1396582, -1396637, -1396740, +1396613, +1396646, +1396676,  1398277,  1398308,  1398341, @@ -2635,6 +2701,12 @@ const int catRanges[] = {  1402109,  1402116,  1402365, +1402369, +1403764, +1403779, +1403905, +1404125, +1404417,  1406980,  1408102,  1408165, @@ -2681,8 +2753,8 @@ const int catRanges[] = {  2061908,  2062429,  2062948, -2074573, -2074606, +2074574, +2074605,  2074653,  2075140,  2077213, @@ -2699,7 +2771,6 @@ const int catRanges[] = {  2081585,  2081629,  2081797, -2082045,  2082321,  2082348,  2082411, @@ -2831,9 +2902,12 @@ const int catRanges[] = {  2109098,  2109237,  2109770, -2109821, +2109845, +2109949,  2109973,  2110365, +2110485, +2110525,  2112021,  2113445,  2113501, @@ -2841,8 +2915,10 @@ const int catRanges[] = {  2118589,  2118660,  2120253, +2120709, +2120746, +2121629,  2121732, -2122749,  2122762,  2122909,  2123268, @@ -2850,6 +2926,9 @@ const int catRanges[] = {  2123844,  2124105,  2124157, +2124292, +2125509, +2125693,  2125828,  2126813,  2126833, @@ -2865,6 +2944,22 @@ const int catRanges[] = {  2135005,  2135048,  2135389, +2135552, +2136733, +2136833, +2138013, +2138116, +2139421, +2139652, +2141341, +2141681, +2141725, +2146308, +2156285, +2156548, +2157277, +2157572, +2157853,  2162692,  2162909,  2162948, @@ -2879,7 +2974,18 @@ const int catRanges[] = {  2165469,  2165489,  2165514, -2165789, +2165764, +2166517, +2166570, +2166788, +2167805, +2168042, +2168349, +2169860, +2170493, +2170500, +2170589, +2170730,  2170884,  2171594,  2171805, @@ -2890,8 +2996,11 @@ const int catRanges[] = {  2172957,  2174980,  2176797, +2176906,  2176964, -2177053, +2177034, +2177565, +2177610,  2179076,  2179109,  2179229, @@ -2914,7 +3023,17 @@ const int catRanges[] = {  2182148,  2183082,  2183153, -2183197, +2183172, +2184106, +2184221, +2185220, +2185493, +2185508, +2186405, +2186493, +2186602, +2186769, +2187005,  2187268,  2189021,  2189105, @@ -2924,9 +3043,20 @@ const int catRanges[] = {  2190340,  2190973,  2191114, -2191389, +2191364, +2191965, +2192177, +2192317, +2192682, +2192925,  2195460,  2197821, +2199552, +2201213, +2201601, +2203261, +2203466, +2203677,  2214922,  2215933,  2228230, @@ -2939,7 +3069,7 @@ const int catRanges[] = {  2230858,  2231496,  2231837, -2232325, +2232293,  2232390,  2232420,  2233862, @@ -2963,6 +3093,11 @@ const int catRanges[] = {  2238152,  2238481,  2238621, +2238980, +2240101, +2240145, +2240196, +2240253,  2240517,  2240582,  2240612, @@ -2971,9 +3106,139 @@ const int catRanges[] = {  2242534,  2242596,  2242737, -2242877, +2242885, +2242993, +2243037,  2243080, -2243421, +2243396, +2243441, +2243460, +2243505, +2243613, +2243626, +2244285, +2244612, +2245213, +2245220, +2246022, +2246117, +2246214, +2246277, +2246310, +2246341, +2246417, +2246597, +2246653, +2248708, +2248957, +2248964, +2249021, +2249028, +2249181, +2249188, +2249693, +2249700, +2250033, +2250077, +2250244, +2251749, +2251782, +2251877, +2252157, +2252296, +2252637, +2252805, +2252870, +2252957, +2252964, +2253245, +2253284, +2253373, +2253412, +2254141, +2254148, +2254397, +2254404, +2254493, +2254500, +2254685, +2254725, +2254756, +2254790, +2254853, +2254886, +2255037, +2255078, +2255165, +2255206, +2255325, +2255364, +2255421, +2255590, +2255645, +2255780, +2255942, +2256029, +2256069, +2256317, +2256389, +2256573, +2260996, +2262694, +2262789, +2263046, +2263109, +2263206, +2263237, +2263268, +2263409, +2263560, +2263901, +2263921, +2263965, +2263985, +2264029, +2265092, +2266630, +2266725, +2266918, +2266949, +2266982, +2267109, +2267174, +2267205, +2267268, +2267345, +2267364, +2267421, +2267656, +2267997, +2273284, +2274790, +2274885, +2275037, +2275078, +2275205, +2275270, +2275301, +2275377, +2276100, +2276229, +2276317, +2277380, +2278918, +2279013, +2279270, +2279333, +2279366, +2279397, +2279473, +2279556, +2279613, +2279944, +2280285, +2280465, +2280893,  2281476,  2282853,  2282886, @@ -2985,16 +3250,96 @@ const int catRanges[] = {  2283293,  2283528,  2283869, +2285572, +2286429, +2286501, +2286598, +2286661, +2286790, +2286821, +2287005, +2287112, +2287434, +2287505, +2287605, +2287645, +2298880, +2299905, +2300936, +2301258, +2301565, +2301924, +2301981, +2316292, +2318141, +2326532, +2326845, +2326852, +2328038, +2328069, +2328317, +2328325, +2328518, +2328549, +2328580, +2328625, +2328797, +2329096, +2329418, +2330045, +2330129, +2330180, +2331165, +2331205, +2331933, +2331942, +2331973, +2332198, +2332229, +2332294, +2332325, +2332413,  2359300, -2387453, +2388829,  2392073, -2395261, +2395645,  2395665, -2395805, +2395837, +2396164, +2402461,  2490372,  2524669, +2654212, +2672893,  2949124,  2967357, +2967556, +2968573, +2968584, +2968925, +2969041, +2969117, +2972164, +2973149, +2973189, +2973361, +2973405, +2973700, +2975237, +2975473, +2975637, +2975747, +2975889, +2975925, +2975965, +2976264, +2976605, +2976618, +2976861, +2976868, +2977565, +2977700, +2978333,  3006468,  3008701,  3009028, @@ -3003,8 +3348,27 @@ const int catRanges[] = {  3011045,  3011171,  3011613, +3013635, +3013693, +3014660, +3210685, +3211268, +3235453,  3538948,  3539037, +3637252, +3640701, +3640836, +3641277, +3641348, +3641661, +3641860, +3642205, +3642261, +3642277, +3642353, +3642394, +3642525,  3801109,  3808989,  3809301, @@ -3021,7 +3385,7 @@ const int catRanges[] = {  3813781,  3814725,  3814869, -3816413, +3816765,  3817493,  3819589,  3819701, @@ -3120,7 +3484,44 @@ const int catRanges[] = {  3864929,  3864989,  3865032, -3866653, +3866645, +3883013, +3884789, +3884901, +3886517, +3886757, +3886805, +3887237, +3887285, +3887345, +3887517, +3887973, +3888157, +3888165, +3888669, +3932165, +3932413, +3932421, +3932989, +3933029, +3933277, +3933285, +3933373, +3933381, +3933565, +3997700, +4004029, +4004074, +4004357, +4004605, +4005888, +4006977, +4008069, +4008317, +4008456, +4008797, +4008913, +4008989,  4046852,  4047005,  4047012, @@ -3196,69 +3597,73 @@ const int catRanges[] = {  4068373,  4068861,  4068917, -4069373, +4069405,  4069429,  4069917,  4069941, -4070429, +4071133,  4071434, -4071805, +4071869,  4071957,  4072957,  4072981,  4074909,  4075029, -4076413, +4076989,  4078805,  4079741,  4080149, -4081533, +4081565,  4081685,  4081981,  4082197,  4082269,  4087829, -4088893, -4089365, -4089565, -4089589, -4091837, -4091925, -4092573, -4092949, -4094141, -4094165, -4094333, -4094997, -4095549, +4095860,  4096021, -4098045, -4098069, -4098109, -4098133, -4103965, -4103989, -4104125, -4104213, -4106205, -4106261, -4106397, -4106773, -4107549, -4112245, -4114493, -4114613, -4114973, -4116501, -4118749, +4119165, +4119573, +4119997, +4120085, +4120317,  4120597,  4124317, +4124693, +4127421, +4128789, +4129181, +4129301, +4131101, +4131349, +4131677, +4131861, +4133149, +4133397, +4134365, +4137493, +4137981, +4138005, +4138269, +4138517, +4138557, +4138613, +4139005, +4139029, +4139421, +4139541, +4140029, +4141077, +4141661, +4143125, +4143165,  4194308,  5561085,  5562372,  5695165,  5695492,  5702621, +5702660, +5887069,  6225924,  6243293,  29360186, diff --git a/src/CaseConvert.cxx b/src/CaseConvert.cxx index d4b351783..c39d42840 100644 --- a/src/CaseConvert.cxx +++ b/src/CaseConvert.cxx @@ -56,7 +56,7 @@ int symmetricCaseConversionRanges[] = {  1121,1120,17,2,   1163,1162,27,2,   1218,1217,7,2,  -1233,1232,44,2,  +1233,1232,48,2,   1377,1329,38,1,   7681,7680,75,2,   7841,7840,48,2,  @@ -72,13 +72,17 @@ int symmetricCaseConversionRanges[] = {  11393,11392,50,2,   11520,4256,38,1,   42561,42560,23,2,  -42625,42624,12,2,  +42625,42624,14,2,   42787,42786,7,2,   42803,42802,31,2,   42879,42878,5,2,  -42913,42912,5,2,  +42903,42902,10,2,   65345,65313,26,1,   66600,66560,40,1,  +66776,66736,36,1,  +68800,68736,51,1,  +71872,71840,32,1,  +125218,125184,34,1,   //--Autogenerated -- end of section automatically generated  }; @@ -137,13 +141,17 @@ int symmetricCaseConversions[] = {  599,394,   601,399,   603,400,  +604,42923,   608,403,  +609,42924,   611,404,   613,42893,   614,42922,   616,407,   617,406,  +618,42926,   619,11362,  +620,42925,   623,412,   625,11374,   626,413,  @@ -151,12 +159,15 @@ int symmetricCaseConversions[] = {  637,11364,   640,422,   643,425,  +647,42929,   648,430,   649,580,   650,433,   651,434,   652,581,   658,439,  +669,42930,  +670,42928,   881,880,   883,882,   887,886,  @@ -172,6 +183,7 @@ int symmetricCaseConversions[] = {  974,911,   983,975,   1010,1017,  +1011,895,   1016,1015,   1019,1018,   1231,1216,  @@ -222,6 +234,9 @@ int symmetricCaseConversions[] = {  42892,42891,   42897,42896,   42899,42898,  +42933,42932,  +42935,42934,  +43859,42931,   //--Autogenerated -- end of section automatically generated  }; @@ -259,6 +274,107 @@ const char *complexCaseConversions =  "\xcf\xb4|\xce\xb8||\xce\xb8|"  "\xcf\xb5|\xce\xb5|\xce\x95||"  "\xd6\x87|\xd5\xa5\xd6\x82|\xd4\xb5\xd5\x92||" +"\xe1\x8e\xa0|||\xea\xad\xb0|" +"\xe1\x8e\xa1|||\xea\xad\xb1|" +"\xe1\x8e\xa2|||\xea\xad\xb2|" +"\xe1\x8e\xa3|||\xea\xad\xb3|" +"\xe1\x8e\xa4|||\xea\xad\xb4|" +"\xe1\x8e\xa5|||\xea\xad\xb5|" +"\xe1\x8e\xa6|||\xea\xad\xb6|" +"\xe1\x8e\xa7|||\xea\xad\xb7|" +"\xe1\x8e\xa8|||\xea\xad\xb8|" +"\xe1\x8e\xa9|||\xea\xad\xb9|" +"\xe1\x8e\xaa|||\xea\xad\xba|" +"\xe1\x8e\xab|||\xea\xad\xbb|" +"\xe1\x8e\xac|||\xea\xad\xbc|" +"\xe1\x8e\xad|||\xea\xad\xbd|" +"\xe1\x8e\xae|||\xea\xad\xbe|" +"\xe1\x8e\xaf|||\xea\xad\xbf|" +"\xe1\x8e\xb0|||\xea\xae\x80|" +"\xe1\x8e\xb1|||\xea\xae\x81|" +"\xe1\x8e\xb2|||\xea\xae\x82|" +"\xe1\x8e\xb3|||\xea\xae\x83|" +"\xe1\x8e\xb4|||\xea\xae\x84|" +"\xe1\x8e\xb5|||\xea\xae\x85|" +"\xe1\x8e\xb6|||\xea\xae\x86|" +"\xe1\x8e\xb7|||\xea\xae\x87|" +"\xe1\x8e\xb8|||\xea\xae\x88|" +"\xe1\x8e\xb9|||\xea\xae\x89|" +"\xe1\x8e\xba|||\xea\xae\x8a|" +"\xe1\x8e\xbb|||\xea\xae\x8b|" +"\xe1\x8e\xbc|||\xea\xae\x8c|" +"\xe1\x8e\xbd|||\xea\xae\x8d|" +"\xe1\x8e\xbe|||\xea\xae\x8e|" +"\xe1\x8e\xbf|||\xea\xae\x8f|" +"\xe1\x8f\x80|||\xea\xae\x90|" +"\xe1\x8f\x81|||\xea\xae\x91|" +"\xe1\x8f\x82|||\xea\xae\x92|" +"\xe1\x8f\x83|||\xea\xae\x93|" +"\xe1\x8f\x84|||\xea\xae\x94|" +"\xe1\x8f\x85|||\xea\xae\x95|" +"\xe1\x8f\x86|||\xea\xae\x96|" +"\xe1\x8f\x87|||\xea\xae\x97|" +"\xe1\x8f\x88|||\xea\xae\x98|" +"\xe1\x8f\x89|||\xea\xae\x99|" +"\xe1\x8f\x8a|||\xea\xae\x9a|" +"\xe1\x8f\x8b|||\xea\xae\x9b|" +"\xe1\x8f\x8c|||\xea\xae\x9c|" +"\xe1\x8f\x8d|||\xea\xae\x9d|" +"\xe1\x8f\x8e|||\xea\xae\x9e|" +"\xe1\x8f\x8f|||\xea\xae\x9f|" +"\xe1\x8f\x90|||\xea\xae\xa0|" +"\xe1\x8f\x91|||\xea\xae\xa1|" +"\xe1\x8f\x92|||\xea\xae\xa2|" +"\xe1\x8f\x93|||\xea\xae\xa3|" +"\xe1\x8f\x94|||\xea\xae\xa4|" +"\xe1\x8f\x95|||\xea\xae\xa5|" +"\xe1\x8f\x96|||\xea\xae\xa6|" +"\xe1\x8f\x97|||\xea\xae\xa7|" +"\xe1\x8f\x98|||\xea\xae\xa8|" +"\xe1\x8f\x99|||\xea\xae\xa9|" +"\xe1\x8f\x9a|||\xea\xae\xaa|" +"\xe1\x8f\x9b|||\xea\xae\xab|" +"\xe1\x8f\x9c|||\xea\xae\xac|" +"\xe1\x8f\x9d|||\xea\xae\xad|" +"\xe1\x8f\x9e|||\xea\xae\xae|" +"\xe1\x8f\x9f|||\xea\xae\xaf|" +"\xe1\x8f\xa0|||\xea\xae\xb0|" +"\xe1\x8f\xa1|||\xea\xae\xb1|" +"\xe1\x8f\xa2|||\xea\xae\xb2|" +"\xe1\x8f\xa3|||\xea\xae\xb3|" +"\xe1\x8f\xa4|||\xea\xae\xb4|" +"\xe1\x8f\xa5|||\xea\xae\xb5|" +"\xe1\x8f\xa6|||\xea\xae\xb6|" +"\xe1\x8f\xa7|||\xea\xae\xb7|" +"\xe1\x8f\xa8|||\xea\xae\xb8|" +"\xe1\x8f\xa9|||\xea\xae\xb9|" +"\xe1\x8f\xaa|||\xea\xae\xba|" +"\xe1\x8f\xab|||\xea\xae\xbb|" +"\xe1\x8f\xac|||\xea\xae\xbc|" +"\xe1\x8f\xad|||\xea\xae\xbd|" +"\xe1\x8f\xae|||\xea\xae\xbe|" +"\xe1\x8f\xaf|||\xea\xae\xbf|" +"\xe1\x8f\xb0|||\xe1\x8f\xb8|" +"\xe1\x8f\xb1|||\xe1\x8f\xb9|" +"\xe1\x8f\xb2|||\xe1\x8f\xba|" +"\xe1\x8f\xb3|||\xe1\x8f\xbb|" +"\xe1\x8f\xb4|||\xe1\x8f\xbc|" +"\xe1\x8f\xb5|||\xe1\x8f\xbd|" +"\xe1\x8f\xb8|\xe1\x8f\xb0|\xe1\x8f\xb0||" +"\xe1\x8f\xb9|\xe1\x8f\xb1|\xe1\x8f\xb1||" +"\xe1\x8f\xba|\xe1\x8f\xb2|\xe1\x8f\xb2||" +"\xe1\x8f\xbb|\xe1\x8f\xb3|\xe1\x8f\xb3||" +"\xe1\x8f\xbc|\xe1\x8f\xb4|\xe1\x8f\xb4||" +"\xe1\x8f\xbd|\xe1\x8f\xb5|\xe1\x8f\xb5||" +"\xe1\xb2\x80|\xd0\xb2|\xd0\x92||" +"\xe1\xb2\x81|\xd0\xb4|\xd0\x94||" +"\xe1\xb2\x82|\xd0\xbe|\xd0\x9e||" +"\xe1\xb2\x83|\xd1\x81|\xd0\xa1||" +"\xe1\xb2\x84|\xd1\x82|\xd0\xa2||" +"\xe1\xb2\x85|\xd1\x82|\xd0\xa2||" +"\xe1\xb2\x86|\xd1\x8a|\xd0\xaa||" +"\xe1\xb2\x87|\xd1\xa3|\xd1\xa2||" +"\xe1\xb2\x88|\xea\x99\x8b|\xea\x99\x8a||"  "\xe1\xba\x96|h\xcc\xb1|H\xcc\xb1||"  "\xe1\xba\x97|t\xcc\x88|T\xcc\x88||"  "\xe1\xba\x98|w\xcc\x8a|W\xcc\x8a||" @@ -349,6 +465,86 @@ const char *complexCaseConversions =  "\xe2\x84\xa6|\xcf\x89||\xcf\x89|"  "\xe2\x84\xaa|k||k|"  "\xe2\x84\xab|\xc3\xa5||\xc3\xa5|" +"\xea\xad\xb0|\xe1\x8e\xa0|\xe1\x8e\xa0||" +"\xea\xad\xb1|\xe1\x8e\xa1|\xe1\x8e\xa1||" +"\xea\xad\xb2|\xe1\x8e\xa2|\xe1\x8e\xa2||" +"\xea\xad\xb3|\xe1\x8e\xa3|\xe1\x8e\xa3||" +"\xea\xad\xb4|\xe1\x8e\xa4|\xe1\x8e\xa4||" +"\xea\xad\xb5|\xe1\x8e\xa5|\xe1\x8e\xa5||" +"\xea\xad\xb6|\xe1\x8e\xa6|\xe1\x8e\xa6||" +"\xea\xad\xb7|\xe1\x8e\xa7|\xe1\x8e\xa7||" +"\xea\xad\xb8|\xe1\x8e\xa8|\xe1\x8e\xa8||" +"\xea\xad\xb9|\xe1\x8e\xa9|\xe1\x8e\xa9||" +"\xea\xad\xba|\xe1\x8e\xaa|\xe1\x8e\xaa||" +"\xea\xad\xbb|\xe1\x8e\xab|\xe1\x8e\xab||" +"\xea\xad\xbc|\xe1\x8e\xac|\xe1\x8e\xac||" +"\xea\xad\xbd|\xe1\x8e\xad|\xe1\x8e\xad||" +"\xea\xad\xbe|\xe1\x8e\xae|\xe1\x8e\xae||" +"\xea\xad\xbf|\xe1\x8e\xaf|\xe1\x8e\xaf||" +"\xea\xae\x80|\xe1\x8e\xb0|\xe1\x8e\xb0||" +"\xea\xae\x81|\xe1\x8e\xb1|\xe1\x8e\xb1||" +"\xea\xae\x82|\xe1\x8e\xb2|\xe1\x8e\xb2||" +"\xea\xae\x83|\xe1\x8e\xb3|\xe1\x8e\xb3||" +"\xea\xae\x84|\xe1\x8e\xb4|\xe1\x8e\xb4||" +"\xea\xae\x85|\xe1\x8e\xb5|\xe1\x8e\xb5||" +"\xea\xae\x86|\xe1\x8e\xb6|\xe1\x8e\xb6||" +"\xea\xae\x87|\xe1\x8e\xb7|\xe1\x8e\xb7||" +"\xea\xae\x88|\xe1\x8e\xb8|\xe1\x8e\xb8||" +"\xea\xae\x89|\xe1\x8e\xb9|\xe1\x8e\xb9||" +"\xea\xae\x8a|\xe1\x8e\xba|\xe1\x8e\xba||" +"\xea\xae\x8b|\xe1\x8e\xbb|\xe1\x8e\xbb||" +"\xea\xae\x8c|\xe1\x8e\xbc|\xe1\x8e\xbc||" +"\xea\xae\x8d|\xe1\x8e\xbd|\xe1\x8e\xbd||" +"\xea\xae\x8e|\xe1\x8e\xbe|\xe1\x8e\xbe||" +"\xea\xae\x8f|\xe1\x8e\xbf|\xe1\x8e\xbf||" +"\xea\xae\x90|\xe1\x8f\x80|\xe1\x8f\x80||" +"\xea\xae\x91|\xe1\x8f\x81|\xe1\x8f\x81||" +"\xea\xae\x92|\xe1\x8f\x82|\xe1\x8f\x82||" +"\xea\xae\x93|\xe1\x8f\x83|\xe1\x8f\x83||" +"\xea\xae\x94|\xe1\x8f\x84|\xe1\x8f\x84||" +"\xea\xae\x95|\xe1\x8f\x85|\xe1\x8f\x85||" +"\xea\xae\x96|\xe1\x8f\x86|\xe1\x8f\x86||" +"\xea\xae\x97|\xe1\x8f\x87|\xe1\x8f\x87||" +"\xea\xae\x98|\xe1\x8f\x88|\xe1\x8f\x88||" +"\xea\xae\x99|\xe1\x8f\x89|\xe1\x8f\x89||" +"\xea\xae\x9a|\xe1\x8f\x8a|\xe1\x8f\x8a||" +"\xea\xae\x9b|\xe1\x8f\x8b|\xe1\x8f\x8b||" +"\xea\xae\x9c|\xe1\x8f\x8c|\xe1\x8f\x8c||" +"\xea\xae\x9d|\xe1\x8f\x8d|\xe1\x8f\x8d||" +"\xea\xae\x9e|\xe1\x8f\x8e|\xe1\x8f\x8e||" +"\xea\xae\x9f|\xe1\x8f\x8f|\xe1\x8f\x8f||" +"\xea\xae\xa0|\xe1\x8f\x90|\xe1\x8f\x90||" +"\xea\xae\xa1|\xe1\x8f\x91|\xe1\x8f\x91||" +"\xea\xae\xa2|\xe1\x8f\x92|\xe1\x8f\x92||" +"\xea\xae\xa3|\xe1\x8f\x93|\xe1\x8f\x93||" +"\xea\xae\xa4|\xe1\x8f\x94|\xe1\x8f\x94||" +"\xea\xae\xa5|\xe1\x8f\x95|\xe1\x8f\x95||" +"\xea\xae\xa6|\xe1\x8f\x96|\xe1\x8f\x96||" +"\xea\xae\xa7|\xe1\x8f\x97|\xe1\x8f\x97||" +"\xea\xae\xa8|\xe1\x8f\x98|\xe1\x8f\x98||" +"\xea\xae\xa9|\xe1\x8f\x99|\xe1\x8f\x99||" +"\xea\xae\xaa|\xe1\x8f\x9a|\xe1\x8f\x9a||" +"\xea\xae\xab|\xe1\x8f\x9b|\xe1\x8f\x9b||" +"\xea\xae\xac|\xe1\x8f\x9c|\xe1\x8f\x9c||" +"\xea\xae\xad|\xe1\x8f\x9d|\xe1\x8f\x9d||" +"\xea\xae\xae|\xe1\x8f\x9e|\xe1\x8f\x9e||" +"\xea\xae\xaf|\xe1\x8f\x9f|\xe1\x8f\x9f||" +"\xea\xae\xb0|\xe1\x8f\xa0|\xe1\x8f\xa0||" +"\xea\xae\xb1|\xe1\x8f\xa1|\xe1\x8f\xa1||" +"\xea\xae\xb2|\xe1\x8f\xa2|\xe1\x8f\xa2||" +"\xea\xae\xb3|\xe1\x8f\xa3|\xe1\x8f\xa3||" +"\xea\xae\xb4|\xe1\x8f\xa4|\xe1\x8f\xa4||" +"\xea\xae\xb5|\xe1\x8f\xa5|\xe1\x8f\xa5||" +"\xea\xae\xb6|\xe1\x8f\xa6|\xe1\x8f\xa6||" +"\xea\xae\xb7|\xe1\x8f\xa7|\xe1\x8f\xa7||" +"\xea\xae\xb8|\xe1\x8f\xa8|\xe1\x8f\xa8||" +"\xea\xae\xb9|\xe1\x8f\xa9|\xe1\x8f\xa9||" +"\xea\xae\xba|\xe1\x8f\xaa|\xe1\x8f\xaa||" +"\xea\xae\xbb|\xe1\x8f\xab|\xe1\x8f\xab||" +"\xea\xae\xbc|\xe1\x8f\xac|\xe1\x8f\xac||" +"\xea\xae\xbd|\xe1\x8f\xad|\xe1\x8f\xad||" +"\xea\xae\xbe|\xe1\x8f\xae|\xe1\x8f\xae||" +"\xea\xae\xbf|\xe1\x8f\xaf|\xe1\x8f\xaf||"  "\xef\xac\x80|ff|FF||"  "\xef\xac\x81|fi|FI||"  "\xef\xac\x82|fl|FL||" | 
