diff --git a/tdutils/td/utils/unicode.cpp b/tdutils/td/utils/unicode.cpp index 20e3b2ff..bc875393 100644 --- a/tdutils/td/utils/unicode.cpp +++ b/tdutils/td/utils/unicode.cpp @@ -15,128 +15,130 @@ namespace td { // list of [(range_begin << 5) + range_type] static const uint32 unicode_simple_category_ranges[] = { - 0, 1028, 1056, 1538, 1856, 2081, 2912, 3105, 3936, 5124, 5152, 5441, - 5472, 5699, 5760, 5793, 5824, 5923, 5953, 5984, 6019, 6112, 6145, 6880, - 6913, 7904, 7937, 22592, 22721, 23104, 23553, 23712, 23937, 23968, 24001, 24032, - 28161, 28320, 28353, 28416, 28481, 28608, 28641, 28672, 28865, 28896, 28929, 29024, - 29057, 29088, 29121, 29760, 29793, 32448, 32481, 36928, 37185, 42496, 42529, 43744, - 43809, 43840, 44033, 45344, 47617, 48480, 48609, 48736, 50177, 51552, 52226, 52544, - 52673, 52736, 52769, 55936, 55969, 56000, 56481, 56544, 56769, 56834, 57153, 57248, - 57313, 57344, 57857, 57888, 57921, 58880, 59809, 62656, 63009, 63040, 63490, 63809, - 64864, 65153, 65216, 65345, 65376, 65537, 66240, 66369, 66400, 66689, 66720, 66817, - 66848, 67585, 68384, 68609, 68960, 70657, 71328, 71361, 71616, 73857, 75584, 75681, - 75712, 76289, 76320, 76545, 76864, 76994, 77312, 77345, 77856, 77985, 78240, 78305, - 78368, 78433, 79136, 79169, 79392, 79425, 79456, 79553, 79680, 79777, 79808, 80321, - 80352, 80769, 80832, 80865, 80960, 81090, 81409, 81472, 81539, 81728, 81793, 81824, - 82081, 82272, 82401, 82464, 82529, 83232, 83265, 83488, 83521, 83584, 83617, 83680, - 83713, 83776, 84769, 84896, 84929, 84960, 85186, 85504, 85569, 85664, 86177, 86464, - 86497, 86592, 86625, 87328, 87361, 87584, 87617, 87680, 87713, 87872, 87969, 88000, - 88577, 88608, 89089, 89152, 89282, 89600, 89889, 89920, 90273, 90528, 90593, 90656, - 90721, 91424, 91457, 91680, 91713, 91776, 91809, 91968, 92065, 92096, 93057, 93120, - 93153, 93248, 93378, 93696, 93729, 93763, 93952, 94305, 94336, 94369, 94560, 94657, - 94752, 94785, 94912, 95009, 95072, 95105, 95136, 95169, 95232, 95329, 95392, 95489, - 95584, 95681, 96064, 96769, 96800, 97474, 97795, 97888, 98465, 98720, 98753, 98848, - 98881, 99616, 99649, 100160, 100257, 100288, 101121, 101216, 101377, 101440, 101570, 101888, - 102147, 102368, 102401, 102432, 102561, 102816, 102849, 102944, 102977, 103712, 103745, 104064, - 104097, 104256, 104353, 104384, 105409, 105440, 105473, 105536, 105666, 105984, 106017, 106080, - 106657, 106912, 106945, 107040, 107073, 108384, 108449, 108480, 108993, 109024, 109185, 109280, - 109315, 109537, 109632, 109762, 110083, 110368, 110401, 110592, 110753, 111328, 111425, 112192, - 112225, 112512, 112545, 112576, 112641, 112864, 113858, 114176, 114721, 116256, 116289, 116352, - 116737, 116960, 117250, 117568, 118817, 118880, 118913, 118944, 118977, 119136, 119169, 119936, - 119969, 120000, 120033, 120352, 120385, 120448, 120737, 120768, 120833, 120992, 121025, 121056, - 121346, 121664, 121729, 121856, 122881, 122912, 123906, 124227, 124544, 124929, 125184, 125217, - 126368, 127233, 127392, 131073, 132448, 133089, 133122, 133440, 133633, 133824, 133953, 134080, - 134177, 134208, 134305, 134368, 134593, 134688, 134817, 135232, 135617, 135648, 135682, 136000, - 136193, 137408, 137441, 137472, 137633, 137664, 137729, 139104, 139137, 149792, 149825, 149952, - 150017, 150240, 150273, 150304, 150337, 150464, 150529, 151840, 151873, 152000, 152065, 153120, - 153153, 153280, 153345, 153568, 153601, 153632, 153665, 153792, 153857, 154336, 154369, 156192, - 156225, 156352, 156417, 158560, 159011, 159648, 159745, 160256, 160769, 163520, 163585, 163776, - 163873, 183712, 183777, 184324, 184353, 185184, 185345, 187744, 187843, 187937, 188192, 188417, - 188832, 188865, 188992, 189441, 190016, 190465, 191040, 191489, 191904, 191937, 192032, 192513, - 194176, 195297, 195328, 195457, 195488, 195586, 195904, 196099, 196416, 197122, 197440, 197633, - 200480, 200705, 200864, 200929, 202016, 202049, 202080, 202241, 204480, 204801, 205792, 207042, - 207361, 208320, 208385, 208544, 208897, 210304, 210433, 211264, 211458, 211779, 211808, 212993, - 213728, 214017, 215712, 217090, 217408, 217602, 217920, 218337, 218368, 221345, 222848, 223393, - 223616, 223746, 224064, 225377, 226336, 226753, 226818, 227137, 228544, 229377, 230528, 231426, - 231744, 231841, 231938, 232257, 233408, 233473, 233760, 233985, 235360, 235425, 235520, 236833, - 236960, 236993, 237184, 237217, 237280, 237377, 237408, 237569, 243712, 245761, 254656, 254721, - 254912, 254977, 256192, 256257, 256448, 256513, 256768, 256801, 256832, 256865, 256896, 256929, - 256960, 256993, 257984, 258049, 259744, 259777, 260000, 260033, 260064, 260161, 260256, 260289, - 260512, 260609, 260736, 260801, 260992, 261121, 261536, 261697, 261792, 261825, 262048, 262148, - 262496, 263428, 263488, 263652, 263680, 265188, 265216, 265731, 265761, 265792, 265859, 266048, - 266209, 266243, 266560, 266753, 267168, 270401, 270432, 270561, 270592, 270657, 270976, 271009, - 271040, 271137, 271296, 271489, 271520, 271553, 271584, 271617, 271648, 271681, 271808, 271841, - 272192, 272257, 272384, 272545, 272704, 272833, 272864, 272899, 274529, 274595, 274752, 297987, - 299904, 302403, 303104, 323267, 324224, 360449, 361952, 361985, 363488, 363521, 367776, 367969, - 368096, 368193, 368256, 368547, 368576, 368641, 369856, 369889, 369920, 370081, 370112, 370177, - 371968, 372193, 372224, 372737, 373472, 373761, 373984, 374017, 374240, 374273, 374496, 374529, - 374752, 374785, 375008, 375041, 375264, 375297, 375520, 375553, 375776, 378337, 378368, 393220, - 393248, 393377, 393443, 393472, 394275, 394560, 394785, 394944, 395011, 395105, 395168, 395297, - 398048, 398241, 398336, 398369, 401248, 401281, 401408, 401569, 402944, 402977, 405984, 406083, - 406208, 406529, 407392, 409089, 409600, 410627, 410944, 411907, 412160, 412195, 412672, 413699, - 414016, 415267, 415744, 425985, 636608, 638977, 1310208, 1310721, 1348000, 1350145, 1351616, 1351681, - 1360288, 1360385, 1360898, 1361217, 1361280, 1361921, 1363424, 1363937, 1364928, 1364993, 1367235, 1367552, - 1368801, 1369088, 1369153, 1372448, 1372513, 1374208, 1374273, 1374432, 1375969, 1376320, 1376353, 1376448, - 1376481, 1376608, 1376641, 1377376, 1377795, 1377984, 1378305, 1379968, 1380417, 1382016, 1382914, 1383232, - 1384001, 1384192, 1384289, 1384320, 1384353, 1384416, 1384450, 1384769, 1385664, 1385985, 1386720, 1387521, - 1388448, 1388673, 1390176, 1391073, 1391106, 1391424, 1391617, 1391776, 1391809, 1392130, 1392449, 1392608, - 1392641, 1393952, 1394689, 1394784, 1394817, 1395072, 1395202, 1395520, 1395713, 1396448, 1396545, 1396576, - 1396673, 1398272, 1398305, 1398336, 1398433, 1398496, 1398561, 1398720, 1398785, 1398816, 1398849, 1398880, - 1399649, 1399744, 1399809, 1400160, 1400385, 1400480, 1400865, 1401056, 1401121, 1401312, 1401377, 1401568, - 1401857, 1402080, 1402113, 1402336, 1402369, 1403744, 1403777, 1404160, 1404417, 1408096, 1408514, 1408832, - 1409025, 1766528, 1766913, 1767648, 1767777, 1769344, 2039809, 2051520, 2051585, 2054976, 2056193, 2056416, - 2056801, 2056960, 2057121, 2057152, 2057185, 2057504, 2057537, 2057952, 2057985, 2058144, 2058177, 2058208, - 2058241, 2058304, 2058337, 2058400, 2058433, 2061888, 2062945, 2074560, 2075137, 2077184, 2077249, 2078976, - 2080257, 2080640, 2084353, 2084512, 2084545, 2088864, 2089474, 2089792, 2090017, 2090848, 2091041, 2091872, - 2092225, 2095072, 2095169, 2095360, 2095425, 2095616, 2095681, 2095872, 2095937, 2096032, 2097153, 2097536, - 2097569, 2098400, 2098433, 2099040, 2099073, 2099136, 2099169, 2099648, 2099713, 2100160, 2101249, 2105184, - 2105571, 2107008, 2107395, 2109216, 2109763, 2109824, 2117633, 2118560, 2118657, 2120224, 2120739, 2121600, - 2121729, 2122755, 2122880, 2123169, 2123811, 2123841, 2124099, 2124128, 2124289, 2125504, 2125825, 2126784, - 2126849, 2128000, 2128129, 2128384, 2128419, 2128576, 2129921, 2134976, 2135042, 2135360, 2135553, 2136704, - 2136833, 2137984, 2138113, 2139392, 2139649, 2141312, 2146305, 2156256, 2156545, 2157248, 2157569, 2157824, - 2162689, 2162880, 2162945, 2162976, 2163009, 2164416, 2164449, 2164512, 2164609, 2164640, 2164705, 2165440, - 2165507, 2165761, 2166496, 2166563, 2166785, 2167776, 2168035, 2168320, 2169857, 2170464, 2170497, 2170560, - 2170723, 2170881, 2171587, 2171776, 2171905, 2172736, 2174977, 2176768, 2176899, 2176961, 2177027, 2177536, - 2177603, 2179073, 2179104, 2179585, 2179712, 2179745, 2179840, 2179873, 2180800, 2181123, 2181408, 2182145, - 2183075, 2183136, 2183169, 2184099, 2184192, 2185217, 2185472, 2185505, 2186400, 2186595, 2186752, 2187265, - 2188992, 2189313, 2190016, 2190083, 2190337, 2190944, 2191107, 2191361, 2191936, 2192675, 2192896, 2195457, - 2197792, 2199553, 2201184, 2201601, 2203232, 2203459, 2203649, 2204800, 2205186, 2205504, 2214915, 2215904, - 2220033, 2220963, 2221281, 2221312, 2221569, 2222272, 2222627, 2222752, 2227201, 2227936, 2228321, 2230016, - 2230851, 2231490, 2231808, 2232417, 2233856, 2234881, 2235680, 2235906, 2236224, 2236513, 2237664, 2238146, - 2238464, 2238593, 2238624, 2238977, 2240096, 2240193, 2240224, 2240609, 2242144, 2242593, 2242720, 2243074, - 2243393, 2243424, 2243457, 2243488, 2243619, 2244256, 2244609, 2245184, 2245217, 2246016, 2248705, 2248928, - 2248961, 2248992, 2249025, 2249152, 2249185, 2249664, 2249697, 2250016, 2250241, 2251744, 2252290, 2252608, - 2252961, 2253216, 2253281, 2253344, 2253409, 2254112, 2254145, 2254368, 2254401, 2254464, 2254497, 2254656, - 2254753, 2254784, 2255361, 2255392, 2255777, 2255936, 2260993, 2262688, 2263265, 2263392, 2263554, 2263872, - 2264033, 2264064, 2265089, 2266624, 2267265, 2267328, 2267361, 2267392, 2267650, 2267968, 2273281, 2274784, - 2276097, 2276224, 2277377, 2278912, 2279553, 2279584, 2279938, 2280256, 2281473, 2282848, 2283265, 2283296, - 2283522, 2283840, 2285569, 2286432, 2287106, 2287427, 2287488, 2293761, 2295168, 2298881, 2300930, 2301251, - 2301536, 2301921, 2301952, 2307073, 2307328, 2307393, 2308640, 2309153, 2309184, 2309217, 2309248, 2310145, - 2310176, 2310497, 2311776, 2312001, 2312032, 2312705, 2312736, 2313089, 2314560, 2315169, 2315200, 2316289, - 2318112, 2326529, 2326816, 2326849, 2328032, 2328577, 2328608, 2329090, 2329411, 2330016, 2330177, 2331136, - 2334721, 2334944, 2334977, 2335040, 2335073, 2336288, 2336961, 2336992, 2337282, 2337600, 2337793, 2337984, - 2338017, 2338080, 2338113, 2339136, 2339585, 2339616, 2339842, 2340160, 2350081, 2350688, 2357251, 2357920, - 2359297, 2388800, 2392067, 2395616, 2396161, 2402432, 2490369, 2524640, 2654209, 2672864, 2949121, 2967328, - 2967553, 2968544, 2968578, 2968896, 2972161, 2973120, 2973697, 2975232, 2975745, 2975872, 2976258, 2976576, - 2976611, 2976832, 2976865, 2977536, 2977697, 2978304, 3000321, 3002371, 3003104, 3006465, 3008864, 3009025, - 3009056, 3011169, 3011584, 3013633, 3013696, 3013729, 3013760, 3014657, 3211008, 3211265, 3235424, 3538945, - 3548128, 3549697, 3549792, 3550337, 3550464, 3550721, 3563392, 3637249, 3640672, 3640833, 3641248, 3641345, - 3641632, 3641857, 3642176, 3824643, 3825280, 3828739, 3829536, 3833857, 3836576, 3836609, 3838880, 3838913, - 3838976, 3839041, 3839072, 3839137, 3839200, 3839265, 3839392, 3839425, 3839808, 3839841, 3839872, 3839905, - 3840128, 3840161, 3842240, 3842273, 3842400, 3842465, 3842720, 3842753, 3842976, 3843009, 3843904, 3843937, - 3844064, 3844097, 3844256, 3844289, 3844320, 3844417, 3844640, 3844673, 3855552, 3855617, 3856416, 3856449, - 3857248, 3857281, 3858272, 3858305, 3859104, 3859137, 3860128, 3860161, 3860960, 3860993, 3861984, 3862017, - 3862816, 3862849, 3863840, 3863873, 3864672, 3864705, 3864960, 3865026, 3866624, 3940353, 3941792, 3942113, - 3942336, 3942402, 3942720, 3942849, 3942880, 3954689, 3956096, 3956226, 3956544, 3997697, 4004000, 4004067, - 4004352, 4005889, 4008064, 4008289, 4008320, 4008450, 4008768, 4034083, 4035968, 4036003, 4036096, 4036131, - 4036256, 4038691, 4040128, 4040163, 4040640, 4046849, 4046976, 4047009, 4047872, 4047905, 4047968, 4048001, - 4048032, 4048097, 4048128, 4048161, 4048480, 4048513, 4048640, 4048673, 4048704, 4048737, 4048768, 4048961, - 4048992, 4049121, 4049152, 4049185, 4049216, 4049249, 4049280, 4049313, 4049408, 4049441, 4049504, 4049537, - 4049568, 4049633, 4049664, 4049697, 4049728, 4049761, 4049792, 4049825, 4049856, 4049889, 4049920, 4049953, - 4050016, 4050049, 4050080, 4050145, 4050272, 4050305, 4050528, 4050561, 4050688, 4050721, 4050848, 4050881, - 4050912, 4050945, 4051264, 4051297, 4051840, 4052001, 4052096, 4052129, 4052288, 4052321, 4052864, 4071427, - 4071840, 4194305, 5561056, 5562369, 5695136, 5695489, 5702592, 5702657, 5887040, 5887489, 6126624, 6225921, - 6243264, 4294967295}; + 0, 1028, 1056, 1538, 1856, 2081, 2912, 3105, 3936, 5124, 5152, 5441, + 5472, 5699, 5760, 5793, 5824, 5923, 5953, 5984, 6019, 6112, 6145, 6880, + 6913, 7904, 7937, 22592, 22721, 23104, 23553, 23712, 23937, 23968, 24001, 24032, + 28161, 28320, 28353, 28416, 28481, 28608, 28641, 28672, 28865, 28896, 28929, 29024, + 29057, 29088, 29121, 29760, 29793, 32448, 32481, 36928, 37185, 42496, 42529, 43744, + 43809, 43840, 44033, 45344, 47617, 48480, 48609, 48736, 50177, 51552, 52226, 52544, + 52673, 52736, 52769, 55936, 55969, 56000, 56481, 56544, 56769, 56834, 57153, 57248, + 57313, 57344, 57857, 57888, 57921, 58880, 59809, 62656, 63009, 63040, 63490, 63809, + 64864, 65153, 65216, 65345, 65376, 65537, 66240, 66369, 66400, 66689, 66720, 66817, + 66848, 67585, 68384, 68609, 68960, 70657, 71328, 71361, 71936, 73857, 75584, 75681, + 75712, 76289, 76320, 76545, 76864, 76994, 77312, 77345, 77856, 77985, 78240, 78305, + 78368, 78433, 79136, 79169, 79392, 79425, 79456, 79553, 79680, 79777, 79808, 80321, + 80352, 80769, 80832, 80865, 80960, 81090, 81409, 81472, 81539, 81728, 81793, 81824, + 82081, 82272, 82401, 82464, 82529, 83232, 83265, 83488, 83521, 83584, 83617, 83680, + 83713, 83776, 84769, 84896, 84929, 84960, 85186, 85504, 85569, 85664, 86177, 86464, + 86497, 86592, 86625, 87328, 87361, 87584, 87617, 87680, 87713, 87872, 87969, 88000, + 88577, 88608, 89089, 89152, 89282, 89600, 89889, 89920, 90273, 90528, 90593, 90656, + 90721, 91424, 91457, 91680, 91713, 91776, 91809, 91968, 92065, 92096, 93057, 93120, + 93153, 93248, 93378, 93696, 93729, 93763, 93952, 94305, 94336, 94369, 94560, 94657, + 94752, 94785, 94912, 95009, 95072, 95105, 95136, 95169, 95232, 95329, 95392, 95489, + 95584, 95681, 96064, 96769, 96800, 97474, 97795, 97888, 98465, 98720, 98753, 98848, + 98881, 99616, 99649, 100160, 100257, 100288, 101121, 101216, 101377, 101440, 101570, 101888, + 102147, 102368, 102401, 102432, 102561, 102816, 102849, 102944, 102977, 103712, 103745, 104064, + 104097, 104256, 104353, 104384, 105409, 105440, 105473, 105536, 105666, 105984, 106017, 106080, + 106625, 106912, 106945, 107040, 107073, 108384, 108449, 108480, 108993, 109024, 109185, 109280, + 109315, 109537, 109632, 109762, 110083, 110368, 110401, 110592, 110753, 111328, 111425, 112192, + 112225, 112512, 112545, 112576, 112641, 112864, 113858, 114176, 114721, 116256, 116289, 116352, + 116737, 116960, 117250, 117568, 118817, 118880, 118913, 118944, 118977, 119136, 119169, 119936, + 119969, 120000, 120033, 120352, 120385, 120448, 120737, 120768, 120833, 120992, 121025, 121056, + 121346, 121664, 121729, 121856, 122881, 122912, 123906, 124227, 124544, 124929, 125184, 125217, + 126368, 127233, 127392, 131073, 132448, 133089, 133122, 133440, 133633, 133824, 133953, 134080, + 134177, 134208, 134305, 134368, 134593, 134688, 134817, 135232, 135617, 135648, 135682, 136000, + 136193, 137408, 137441, 137472, 137633, 137664, 137729, 139104, 139137, 149792, 149825, 149952, + 150017, 150240, 150273, 150304, 150337, 150464, 150529, 151840, 151873, 152000, 152065, 153120, + 153153, 153280, 153345, 153568, 153601, 153632, 153665, 153792, 153857, 154336, 154369, 156192, + 156225, 156352, 156417, 158560, 159011, 159648, 159745, 160256, 160769, 163520, 163585, 163776, + 163873, 183712, 183777, 184324, 184353, 185184, 185345, 187744, 187843, 187937, 188192, 188417, + 188832, 188865, 188992, 189441, 190016, 190465, 191040, 191489, 191904, 191937, 192032, 192513, + 194176, 195297, 195328, 195457, 195488, 195586, 195904, 196099, 196416, 197122, 197440, 197633, + 200480, 200705, 200864, 200929, 202016, 202049, 202080, 202241, 204480, 204801, 205792, 207042, + 207361, 208320, 208385, 208544, 208897, 210304, 210433, 211264, 211458, 211779, 211808, 212993, + 213728, 214017, 215712, 217090, 217408, 217602, 217920, 218337, 218368, 221345, 222848, 223393, + 223616, 223746, 224064, 225377, 226336, 226753, 226818, 227137, 228544, 229377, 230528, 231426, + 231744, 231841, 231938, 232257, 233408, 233473, 233760, 233985, 235360, 235425, 235520, 236833, + 236960, 236993, 237184, 237217, 237280, 237377, 237408, 237569, 243712, 245761, 254656, 254721, + 254912, 254977, 256192, 256257, 256448, 256513, 256768, 256801, 256832, 256865, 256896, 256929, + 256960, 256993, 257984, 258049, 259744, 259777, 260000, 260033, 260064, 260161, 260256, 260289, + 260512, 260609, 260736, 260801, 260992, 261121, 261536, 261697, 261792, 261825, 262048, 262148, + 262496, 263428, 263488, 263652, 263680, 265188, 265216, 265731, 265761, 265792, 265859, 266048, + 266209, 266243, 266560, 266753, 267168, 270401, 270432, 270561, 270592, 270657, 270976, 271009, + 271040, 271137, 271296, 271489, 271520, 271553, 271584, 271617, 271648, 271681, 271808, 271841, + 272192, 272257, 272384, 272545, 272704, 272833, 272864, 272899, 274529, 274595, 274752, 297987, + 299904, 302403, 303104, 323267, 324224, 360449, 361952, 361985, 363488, 363521, 367776, 367969, + 368096, 368193, 368256, 368547, 368576, 368641, 369856, 369889, 369920, 370081, 370112, 370177, + 371968, 372193, 372224, 372737, 373472, 373761, 373984, 374017, 374240, 374273, 374496, 374529, + 374752, 374785, 375008, 375041, 375264, 375297, 375520, 375553, 375776, 378337, 378368, 393220, + 393248, 393377, 393443, 393472, 394275, 394560, 394785, 394944, 395011, 395105, 395168, 395297, + 398048, 398241, 398336, 398369, 401248, 401281, 401408, 401569, 402944, 402977, 405984, 406083, + 406208, 406529, 407552, 409089, 409600, 410627, 410944, 411907, 412160, 412195, 412672, 413699, + 414016, 415267, 415744, 425985, 636928, 638977, 1310624, 1310721, 1348000, 1350145, 1351616, 1351681, + 1360288, 1360385, 1360898, 1361217, 1361280, 1361921, 1363424, 1363937, 1364928, 1364993, 1367235, 1367552, + 1368801, 1369088, 1369153, 1372448, 1372513, 1374208, 1374273, 1374560, 1375905, 1376320, 1376353, 1376448, + 1376481, 1376608, 1376641, 1377376, 1377795, 1377984, 1378305, 1379968, 1380417, 1382016, 1382914, 1383232, + 1384001, 1384192, 1384289, 1384320, 1384353, 1384416, 1384450, 1384769, 1385664, 1385985, 1386720, 1387521, + 1388448, 1388673, 1390176, 1391073, 1391106, 1391424, 1391617, 1391776, 1391809, 1392130, 1392449, 1392608, + 1392641, 1393952, 1394689, 1394784, 1394817, 1395072, 1395202, 1395520, 1395713, 1396448, 1396545, 1396576, + 1396673, 1398272, 1398305, 1398336, 1398433, 1398496, 1398561, 1398720, 1398785, 1398816, 1398849, 1398880, + 1399649, 1399744, 1399809, 1400160, 1400385, 1400480, 1400865, 1401056, 1401121, 1401312, 1401377, 1401568, + 1401857, 1402080, 1402113, 1402336, 1402369, 1403744, 1403777, 1404224, 1404417, 1408096, 1408514, 1408832, + 1409025, 1766528, 1766913, 1767648, 1767777, 1769344, 2039809, 2051520, 2051585, 2054976, 2056193, 2056416, + 2056801, 2056960, 2057121, 2057152, 2057185, 2057504, 2057537, 2057952, 2057985, 2058144, 2058177, 2058208, + 2058241, 2058304, 2058337, 2058400, 2058433, 2061888, 2062945, 2074560, 2075137, 2077184, 2077249, 2078976, + 2080257, 2080640, 2084353, 2084512, 2084545, 2088864, 2089474, 2089792, 2090017, 2090848, 2091041, 2091872, + 2092225, 2095072, 2095169, 2095360, 2095425, 2095616, 2095681, 2095872, 2095937, 2096032, 2097153, 2097536, + 2097569, 2098400, 2098433, 2099040, 2099073, 2099136, 2099169, 2099648, 2099713, 2100160, 2101249, 2105184, + 2105571, 2107008, 2107395, 2109216, 2109763, 2109824, 2117633, 2118560, 2118657, 2120224, 2120739, 2121600, + 2121729, 2122755, 2122880, 2123169, 2123811, 2123841, 2124099, 2124128, 2124289, 2125504, 2125825, 2126784, + 2126849, 2128000, 2128129, 2128384, 2128419, 2128576, 2129921, 2134976, 2135042, 2135360, 2135553, 2136704, + 2136833, 2137984, 2138113, 2139392, 2139649, 2141312, 2146305, 2156256, 2156545, 2157248, 2157569, 2157824, + 2162689, 2162880, 2162945, 2162976, 2163009, 2164416, 2164449, 2164512, 2164609, 2164640, 2164705, 2165440, + 2165507, 2165761, 2166496, 2166563, 2166785, 2167776, 2168035, 2168320, 2169857, 2170464, 2170497, 2170560, + 2170723, 2170881, 2171587, 2171776, 2171905, 2172736, 2174977, 2176768, 2176899, 2176961, 2177027, 2177536, + 2177603, 2179073, 2179104, 2179585, 2179712, 2179745, 2179840, 2179873, 2180800, 2181123, 2181408, 2182145, + 2183075, 2183136, 2183169, 2184099, 2184192, 2185217, 2185472, 2185505, 2186400, 2186595, 2186752, 2187265, + 2188992, 2189313, 2190016, 2190083, 2190337, 2190944, 2191107, 2191361, 2191936, 2192675, 2192896, 2195457, + 2197792, 2199553, 2201184, 2201601, 2203232, 2203459, 2203649, 2204800, 2205186, 2205504, 2214915, 2215904, + 2215937, 2217280, 2217473, 2217536, 2220033, 2220963, 2221281, 2221312, 2221569, 2222272, 2222627, 2222752, + 2225665, 2226339, 2226560, 2227201, 2227936, 2228321, 2230016, 2230851, 2231490, 2231808, 2232417, 2233856, + 2234881, 2235680, 2235906, 2236224, 2236513, 2237664, 2238146, 2238464, 2238593, 2238624, 2238689, 2238720, + 2238977, 2240096, 2240193, 2240224, 2240609, 2242144, 2242593, 2242720, 2243074, 2243393, 2243424, 2243457, + 2243488, 2243619, 2244256, 2244609, 2245184, 2245217, 2246016, 2248705, 2248928, 2248961, 2248992, 2249025, + 2249152, 2249185, 2249664, 2249697, 2250016, 2250241, 2251744, 2252290, 2252608, 2252961, 2253216, 2253281, + 2253344, 2253409, 2254112, 2254145, 2254368, 2254401, 2254464, 2254497, 2254656, 2254753, 2254784, 2255361, + 2255392, 2255777, 2255936, 2260993, 2262688, 2263265, 2263392, 2263554, 2263872, 2264033, 2264128, 2265089, + 2266624, 2267265, 2267328, 2267361, 2267392, 2267650, 2267968, 2273281, 2274784, 2276097, 2276224, 2277377, + 2278912, 2279553, 2279584, 2279938, 2280256, 2281473, 2282848, 2283265, 2283296, 2283522, 2283840, 2285569, + 2286432, 2287106, 2287427, 2287488, 2293761, 2295168, 2298881, 2300930, 2301251, 2301536, 2301921, 2302176, + 2302241, 2302272, 2302337, 2302592, 2302625, 2302688, 2302721, 2303488, 2303969, 2304000, 2304033, 2304064, + 2304514, 2304832, 2307073, 2307328, 2307393, 2308640, 2309153, 2309184, 2309217, 2309248, 2310145, 2310176, + 2310497, 2311776, 2312001, 2312032, 2312705, 2312736, 2313089, 2314560, 2315169, 2315200, 2316289, 2318112, + 2326529, 2326816, 2326849, 2328032, 2328577, 2328608, 2329090, 2329411, 2330016, 2330177, 2331136, 2334721, + 2334944, 2334977, 2335040, 2335073, 2336288, 2336961, 2336992, 2337282, 2337600, 2337793, 2337984, 2338017, + 2338080, 2338113, 2339136, 2339585, 2339616, 2339842, 2340160, 2350081, 2350688, 2356737, 2356768, 2357251, + 2357920, 2359297, 2388800, 2392067, 2395616, 2396161, 2402432, 2490369, 2524640, 2654209, 2672864, 2949121, + 2967328, 2967553, 2968544, 2968578, 2968896, 2972161, 2973120, 2973697, 2975232, 2975745, 2975872, 2976258, + 2976576, 2976611, 2976832, 2976865, 2977536, 2977697, 2978304, 3000321, 3002371, 3003104, 3006465, 3008864, + 3009025, 3009056, 3011169, 3011584, 3013633, 3013696, 3013729, 3013760, 3014657, 3211008, 3211265, 3250880, + 3252225, 3252512, 3538945, 3548128, 3549697, 3549792, 3550337, 3550464, 3550721, 3563392, 3637249, 3640672, + 3640833, 3641248, 3641345, 3641632, 3641857, 3642176, 3824643, 3825280, 3828739, 3829536, 3833857, 3836576, + 3836609, 3838880, 3838913, 3838976, 3839041, 3839072, 3839137, 3839200, 3839265, 3839392, 3839425, 3839808, + 3839841, 3839872, 3839905, 3840128, 3840161, 3842240, 3842273, 3842400, 3842465, 3842720, 3842753, 3842976, + 3843009, 3843904, 3843937, 3844064, 3844097, 3844256, 3844289, 3844320, 3844417, 3844640, 3844673, 3855552, + 3855617, 3856416, 3856449, 3857248, 3857281, 3858272, 3858305, 3859104, 3859137, 3860128, 3860161, 3860960, + 3860993, 3861984, 3862017, 3862816, 3862849, 3863840, 3863873, 3864672, 3864705, 3864960, 3865026, 3866624, + 3940353, 3941792, 3942113, 3942336, 3942402, 3942720, 3942849, 3942880, 3954689, 3956096, 3956226, 3956544, + 3997697, 4004000, 4004067, 4004352, 4005889, 4008064, 4008289, 4008320, 4008450, 4008768, 4034083, 4035968, + 4036003, 4036096, 4036131, 4036256, 4038691, 4040128, 4040163, 4040640, 4046849, 4046976, 4047009, 4047872, + 4047905, 4047968, 4048001, 4048032, 4048097, 4048128, 4048161, 4048480, 4048513, 4048640, 4048673, 4048704, + 4048737, 4048768, 4048961, 4048992, 4049121, 4049152, 4049185, 4049216, 4049249, 4049280, 4049313, 4049408, + 4049441, 4049504, 4049537, 4049568, 4049633, 4049664, 4049697, 4049728, 4049761, 4049792, 4049825, 4049856, + 4049889, 4049920, 4049953, 4050016, 4050049, 4050080, 4050145, 4050272, 4050305, 4050528, 4050561, 4050688, + 4050721, 4050848, 4050881, 4050912, 4050945, 4051264, 4051297, 4051840, 4052001, 4052096, 4052129, 4052288, + 4052321, 4052864, 4071427, 4071840, 4161026, 4161344, 4194305, 5561280, 5562369, 5695136, 5695489, 5702592, + 5702657, 5887040, 5887489, 6126624, 6225921, 6243264, 6291457, 6449504, 4294967295}; static constexpr uint32 TABLE_SIZE = 1280; @@ -211,235 +213,240 @@ static const int16 prepare_search_character_table[TABLE_SIZE] = { 1273, 1275, 1275, 1277, 1277, 1279, 1279}; static const int32 prepare_search_character_ranges[] = { - 1280, 2097153, 1328, 1328, 1329, -1378, 1367, -1368, 1370, 32, 1376, -1377, - 1417, 32, 1419, -1420, 1421, 32, 1424, 1424, 1425, 0, 1470, 32, - 1471, 0, 1472, 32, 1473, 0, 1475, 32, 1476, 0, 1478, 32, - 1479, 0, 1480, -1481, 1523, 32, 1525, -1526, 1536, 0, 1542, 32, - 1552, 0, 1563, 32, 1564, 0, 1565, 1565, 1566, 32, 1568, -1569, - 1611, 0, 1632, -1633, 1642, 32, 1646, -1647, 1648, 0, 1649, -1650, - 1748, 32, 1749, 1749, 1750, 0, 1758, 32, 1759, 0, 1765, -1766, - 1767, 0, 1769, 32, 1770, 0, 1774, -1775, 1789, 32, 1791, 1791, - 1792, 32, 1806, 1806, 1807, 0, 1808, 1808, 1809, 0, 1810, -1811, - 1840, 0, 1867, -1868, 1958, 0, 1969, -1970, 2027, 0, 2036, -2037, - 2038, 32, 2042, -2043, 2045, 0, 2046, 32, 2048, -2049, 2070, 0, - 2074, 2074, 2075, 0, 2084, 2084, 2085, 0, 2088, 2088, 2089, 0, - 2094, -2095, 2096, 32, 2111, -2112, 2137, 0, 2140, -2141, 2142, 32, - 2143, -2144, 2259, 0, 2308, -2309, 2362, 0, 2365, 2365, 2366, 0, - 2384, 2384, 2385, 0, 2392, -2393, 2402, 0, 2404, 32, 2406, -2407, - 2416, 32, 2417, -2418, 2433, 0, 2436, -2437, 2492, 0, 2493, 2493, - 2494, 0, 2501, -2502, 2503, 0, 2505, -2506, 2507, 0, 2510, -2511, - 2519, 0, 2520, -2521, 2530, 0, 2532, -2533, 2546, 32, 2548, -2549, - 2554, 32, 2556, 2556, 2557, 32, 2558, 0, 2559, -2560, 2561, 0, - 2564, -2565, 2620, 0, 2621, 2621, 2622, 0, 2627, -2628, 2631, 0, - 2633, -2634, 2635, 0, 2638, -2639, 2641, 0, 2642, -2643, 2672, 0, - 2674, -2675, 2677, 0, 2678, 32, 2679, -2680, 2689, 0, 2692, -2693, - 2748, 0, 2749, 2749, 2750, 0, 2758, 2758, 2759, 0, 2762, 2762, - 2763, 0, 2766, -2767, 2786, 0, 2788, -2789, 2800, 32, 2802, -2803, - 2810, 0, 2816, 2816, 2817, 0, 2820, -2821, 2876, 0, 2877, 2877, - 2878, 0, 2885, -2886, 2887, 0, 2889, -2890, 2891, 0, 2894, -2895, - 2902, 0, 2904, -2905, 2914, 0, 2916, -2917, 2928, 32, 2929, -2930, - 2946, 0, 2947, -2948, 3006, 0, 3011, -3012, 3014, 0, 3017, 3017, - 3018, 0, 3022, -3023, 3031, 0, 3032, -3033, 3059, 32, 3067, -3068, - 3072, 0, 3077, -3078, 3134, 0, 3141, 3141, 3142, 0, 3145, 3145, - 3146, 0, 3150, -3151, 3157, 0, 3159, -3160, 3170, 0, 3172, -3173, - 3191, 32, 3192, -3193, 3199, 32, 3200, 3200, 3201, 0, 3204, 32, - 3205, -3206, 3260, 0, 3261, 3261, 3262, 0, 3269, 3269, 3270, 0, - 3273, 3273, 3274, 0, 3278, -3279, 3285, 0, 3287, -3288, 3298, 0, - 3300, -3301, 3328, 0, 3332, -3333, 3387, 0, 3389, 3389, 3390, 0, - 3397, 3397, 3398, 0, 3401, 3401, 3402, 0, 3406, 3406, 3407, 32, - 3408, -3409, 3415, 0, 3416, -3417, 3426, 0, 3428, -3429, 3449, 32, - 3450, -3451, 3458, 0, 3460, -3461, 3530, 0, 3531, -3532, 3535, 0, - 3541, 3541, 3542, 0, 3543, 3543, 3544, 0, 3552, -3553, 3570, 0, - 3572, 32, 3573, -3574, 3633, 0, 3634, -3635, 3636, 0, 3643, -3644, - 3647, 32, 3648, -3649, 3655, 0, 3663, 32, 3664, -3665, 3674, 32, - 3676, -3677, 3761, 0, 3762, -3763, 3764, 0, 3773, -3774, 3784, 0, - 3790, -3791, 3841, 32, 3864, 0, 3866, 32, 3872, -3873, 3892, 32, - 3893, 0, 3894, 32, 3895, 0, 3896, 32, 3897, 0, 3898, 32, - 3902, 0, 3904, -3905, 3953, 0, 3973, 32, 3974, 0, 3976, -3977, - 3981, 0, 3992, 3992, 3993, 0, 4029, 4029, 4030, 32, 4038, 0, - 4039, 32, 4045, 4045, 4046, 32, 4059, -4060, 4139, 0, 4159, -4160, - 4170, 32, 4176, -4177, 4182, 0, 4186, -4187, 4190, 0, 4193, 4193, - 4194, 0, 4197, -4198, 4199, 0, 4206, -4207, 4209, 0, 4213, -4214, - 4226, 0, 4238, 4238, 4239, 0, 4240, -4241, 4250, 0, 4254, 32, - 4256, -11521, 4294, 4294, 4295, 11559, 4296, -4297, 4301, 11565, 4302, -4303, - 4347, 32, 4348, -4349, 4957, 0, 4960, 32, 4969, -4970, 5008, 32, - 5018, -5019, 5112, -5105, 5118, -5119, 5120, 32, 5121, -5122, 5741, 32, - 5743, -5744, 5760, 32, 5761, -5762, 5787, 32, 5789, -5790, 5867, 32, - 5870, -5871, 5906, 0, 5909, -5910, 5938, 0, 5941, 32, 5943, -5944, - 5970, 0, 5972, -5973, 6002, 0, 6004, -6005, 6068, 0, 6100, 32, - 6103, 6103, 6104, 32, 6108, 6108, 6109, 0, 6110, -6111, 6144, 32, - 6155, 0, 6159, -6160, 6277, 0, 6279, -6280, 6313, 0, 6314, -6315, - 6432, 0, 6444, -6445, 6448, 0, 6460, -6461, 6464, 32, 6465, -6466, - 6468, 32, 6470, -6471, 6622, 32, 6656, -6657, 6679, 0, 6684, -6685, - 6686, 32, 6688, -6689, 6741, 0, 6751, 6751, 6752, 0, 6781, -6782, - 6783, 0, 6784, -6785, 6816, 32, 6823, 6823, 6824, 32, 6830, -6831, - 6832, 0, 6847, -6848, 6912, 0, 6917, -6918, 6964, 0, 6981, -6982, - 7002, 32, 7019, 0, 7028, 32, 7037, -7038, 7040, 0, 7043, -7044, - 7073, 0, 7086, -7087, 7142, 0, 7156, -7157, 7164, 32, 7168, -7169, - 7204, 0, 7224, -7225, 7227, 32, 7232, -7233, 7294, 32, 7296, 1074, - 7297, 1076, 7298, 1086, 7299, -1090, 7301, 1090, 7302, 1098, 7303, 1123, - 7304, 42571, 7305, -7306, 7312, -4305, 7355, -7356, 7357, -4350, 7360, 32, - 7368, -7369, 7376, 0, 7379, 32, 7380, 0, 7401, -7402, 7405, 0, - 7406, -7407, 7412, 0, 7413, -7414, 7415, 0, 7418, -7419, 7468, 97, - 7469, 230, 7470, 98, 7471, 7471, 7472, -101, 7474, 477, 7475, -104, - 7483, 7483, 7484, 111, 7485, 547, 7486, 112, 7487, 114, 7488, -117, - 7490, 119, 7491, -7492, 7616, 0, 7674, 7674, 7675, 0, 7680, 2097153, - 7830, -7831, 7835, 7777, 7836, -7837, 7838, 223, 7839, 2097153, 7936, -7937, - 7944, -7937, 7952, -7953, 7960, -7953, 7966, -7967, 7976, -7969, 7984, -7985, - 7992, -7985, 8000, -8001, 8008, -8001, 8014, -8015, 8025, 8017, 8026, 8026, - 8027, 8019, 8028, 8028, 8029, 8021, 8030, 8030, 8031, 8023, 8032, -8033, - 8040, -8033, 8048, -8049, 8072, -8065, 8080, -8081, 8088, -8081, 8096, -8097, - 8104, -8097, 8112, -8113, 8120, -8113, 8122, -8049, 8124, 8115, 8125, 32, - 8126, 953, 8127, 32, 8130, -8131, 8136, -8051, 8140, 8131, 8141, 32, - 8144, -8145, 8152, -8145, 8154, -8055, 8156, 8156, 8157, 32, 8160, -8161, - 8168, -8161, 8170, -8059, 8172, 8165, 8173, 32, 8176, -8177, 8184, -8057, - 8186, -8061, 8188, 8179, 8189, 32, 8191, 8191, 8192, 32, 8203, 0, - 8208, 32, 8234, 0, 8239, 32, 8288, 0, 8293, 8293, 8294, 0, - 8304, -8305, 8314, 32, 8319, -8320, 8330, 32, 8335, -8336, 8352, 32, - 8384, -8385, 8400, 0, 8433, -8434, 8448, 32, 8450, 99, 8452, 32, - 8455, 603, 8456, 32, 8457, 102, 8458, 8458, 8459, 104, 8462, -8463, - 8464, 105, 8466, 108, 8467, 8467, 8468, 32, 8469, 110, 8470, 32, - 8473, -113, 8476, 114, 8478, 32, 8484, 122, 8485, 32, 8486, 969, - 8487, 32, 8488, 122, 8489, 32, 8490, 107, 8491, 229, 8492, -99, - 8494, 32, 8495, 8495, 8496, -102, 8498, 8526, 8499, 109, 8500, -8501, - 8506, 32, 8508, -8509, 8510, 947, 8511, 960, 8512, 32, 8517, 100, - 8518, -8519, 8522, 32, 8526, 8526, 8527, 32, 8528, -8529, 8544, -8561, - 8560, -8561, 8579, 8580, 8581, -8582, 8586, 32, 8588, -8589, 8592, 32, - 9255, -9256, 9280, 32, 9291, -9292, 9372, 32, 9398, -9425, 9424, -9425, - 9472, 32, 10102, -10103, 10132, 32, 11124, -11125, 11126, 32, 11158, -11159, - 11160, 32, 11264, -11313, 11311, -11312, 11360, 11361, 11362, 619, 11363, 7549, - 11364, 637, 11365, -11366, 11367, 11368, 11369, 11370, 11371, 11372, 11373, 593, - 11374, 625, 11375, 592, 11376, 594, 11377, 2097153, 11380, 11380, 11381, 11382, - 11383, -11384, 11389, 118, 11390, -576, 11392, 2097153, 11492, 11492, 11493, 32, - 11499, 11500, 11501, 11502, 11503, 0, 11506, 11507, 11508, -11509, 11513, 32, - 11517, 11517, 11518, 32, 11520, -11521, 11632, 32, 11633, -11634, 11647, 0, - 11648, -11649, 11744, 0, 11776, 32, 11823, 11823, 11824, 32, 11856, -11857, - 11904, 32, 11930, 11930, 11931, 32, 11935, 11935, 11936, 32, 12019, -12020, - 12272, 32, 12284, -12285, 12288, 32, 12293, -12294, 12296, 32, 12321, -12322, - 12330, 0, 12336, 32, 12337, -12338, 12342, 32, 12344, -12345, 12349, 32, - 12352, -12353, 12441, 0, 12443, 32, 12445, -12446, 12448, 32, 12449, -12450, - 12539, 32, 12540, 0, 12541, -12542, 12688, 32, 12690, -12691, 12736, 32, - 12772, -12773, 12800, 32, 12831, -12832, 12842, 32, 12868, -12869, 12880, 32, - 12881, -12882, 12910, 32, 12928, -12929, 12992, 32, 13008, -13009, 13055, 32, - 13312, -13313, 19904, 32, 19968, -19969, 42128, 32, 42183, -42184, 42238, 32, - 42240, -42241, 42509, 32, 42512, -42513, 42560, 2097153, 42606, 42606, 42607, 0, - 42611, 32, 42612, 0, 42622, 32, 42623, 2097153, 42652, -42653, 42654, 0, - 42656, -42657, 42736, 0, 42738, 32, 42744, -42745, 42752, 32, 42775, -42776, - 42784, 32, 42786, 2097153, 42800, -42801, 42802, 2097153, 42864, -42865, 42873, 42874, - 42875, 42876, 42877, 7545, 42878, 2097153, 42888, 42888, 42889, 32, 42891, 42892, - 42893, 613, 42894, -42895, 42896, 2097153, 42900, -42901, 42902, 2097153, 42922, 614, - 42923, 604, 42924, 609, 42925, 620, 42926, 618, 42927, 42927, 42928, 670, - 42929, 647, 42930, 669, 42931, 43859, 42932, 2097153, 42944, -42945, 42946, 42947, - 42948, 42900, 42949, 642, 42950, 7566, 42951, -42952, 43000, 295, 43001, -43002, - 43010, 0, 43011, -43012, 43014, 0, 43015, -43016, 43019, 0, 43020, -43021, - 43043, 0, 43048, 32, 43052, -43053, 43062, 32, 43066, -43067, 43124, 32, - 43128, -43129, 43136, 0, 43138, -43139, 43188, 0, 43206, -43207, 43214, 32, - 43216, -43217, 43232, 0, 43250, -43251, 43256, 32, 43259, 43259, 43260, 32, - 43261, -43262, 43263, 0, 43264, -43265, 43302, 0, 43310, 32, 43312, -43313, - 43335, 0, 43348, -43349, 43359, 32, 43360, -43361, 43392, 0, 43396, -43397, - 43443, 0, 43457, 32, 43470, -43471, 43486, 32, 43488, -43489, 43493, 0, - 43494, -43495, 43561, 0, 43575, -43576, 43587, 0, 43588, -43589, 43596, 0, - 43598, -43599, 43612, 32, 43616, -43617, 43639, 32, 43642, 43642, 43643, 0, - 43646, -43647, 43696, 0, 43697, 43697, 43698, 0, 43701, -43702, 43703, 0, - 43705, -43706, 43710, 0, 43712, 43712, 43713, 0, 43714, -43715, 43742, 32, - 43744, -43745, 43755, 0, 43760, 32, 43762, -43763, 43765, 0, 43767, -43768, - 43867, 32, 43868, -43869, 43888, -5025, 43968, -43969, 44003, 0, 44011, 32, - 44012, 0, 44014, -44015, 55296, 0, 57344, -57345, 64286, 0, 64287, -64288, - 64297, 32, 64298, -64299, 64434, 32, 64450, -64451, 64830, 32, 64832, -64833, - 64976, 32, 65008, -65009, 65020, 32, 65022, -65023, 65024, 0, 65040, 32, - 65050, -65051, 65056, 0, 65072, 32, 65107, 65107, 65108, 32, 65127, 65127, - 65128, 32, 65132, -65133, 65279, 0, 65280, 65280, 65281, 32, 65296, -65297, - 65306, 32, 65313, -65346, 65339, 32, 65345, -65346, 65371, 32, 65382, -65383, - 65504, 32, 65511, 65511, 65512, 32, 65519, -65520, 65529, 0, 65532, 32, - 65536, -65537, 65792, 32, 65795, -65796, 65847, 32, 65856, -65857, 65913, 32, - 65930, -65931, 65932, 32, 65935, 65935, 65936, 32, 65948, -65949, 65952, 32, - 65953, -65954, 66000, 32, 66045, 0, 66046, -66047, 66272, 0, 66273, -66274, - 66422, 0, 66427, -66428, 66463, 32, 66464, -66465, 66512, 32, 66513, -66514, - 66560, -66601, 66600, -66601, 66736, -66777, 66772, -66773, 66927, 32, 66928, -66929, - 67671, 32, 67672, -67673, 67703, 32, 67705, -67706, 67871, 32, 67872, -67873, - 67903, 32, 67904, -67905, 68097, 0, 68100, 68100, 68101, 0, 68103, -68104, - 68108, 0, 68112, -68113, 68152, 0, 68155, -68156, 68159, 0, 68160, -68161, - 68176, 32, 68185, -68186, 68223, 32, 68224, -68225, 68296, 32, 68297, -68298, - 68325, 0, 68327, -68328, 68336, 32, 68343, -68344, 68409, 32, 68416, -68417, - 68505, 32, 68509, -68510, 68736, -68801, 68787, -68788, 68900, 0, 68904, -68905, - 69446, 0, 69457, -69458, 69461, 32, 69466, -69467, 69632, 0, 69635, -69636, - 69688, 0, 69703, 32, 69710, -69711, 69759, 0, 69763, -69764, 69808, 0, - 69819, 32, 69821, 0, 69822, 32, 69826, -69827, 69837, 0, 69838, -69839, - 69888, 0, 69891, -69892, 69927, 0, 69941, -69942, 69952, 32, 69956, 69956, - 69957, 0, 69959, -69960, 70003, 0, 70004, 32, 70006, -70007, 70016, 0, - 70019, -70020, 70067, 0, 70081, -70082, 70085, 32, 70089, 0, 70093, 32, - 70094, -70095, 70107, 32, 70108, 70108, 70109, 32, 70112, -70113, 70188, 0, - 70200, 32, 70206, 0, 70207, -70208, 70313, 32, 70314, -70315, 70367, 0, - 70379, -70380, 70400, 0, 70404, -70405, 70459, 0, 70461, 70461, 70462, 0, - 70469, -70470, 70471, 0, 70473, -70474, 70475, 0, 70478, -70479, 70487, 0, - 70488, -70489, 70498, 0, 70500, -70501, 70502, 0, 70509, -70510, 70512, 0, - 70517, -70518, 70709, 0, 70727, -70728, 70731, 32, 70736, -70737, 70747, 32, - 70748, 70748, 70749, 32, 70750, 0, 70751, -70752, 70832, 0, 70852, -70853, - 70854, 32, 70855, -70856, 71087, 0, 71094, -71095, 71096, 0, 71105, 32, - 71128, -71129, 71132, 0, 71134, -71135, 71216, 0, 71233, 32, 71236, -71237, - 71264, 32, 71277, -71278, 71339, 0, 71352, -71353, 71453, 0, 71468, -71469, - 71484, 32, 71488, -71489, 71724, 0, 71739, 32, 71740, -71741, 71840, -71873, - 71872, -71873, 72145, 0, 72152, -72153, 72154, 0, 72161, 72161, 72162, 32, - 72163, 72163, 72164, 0, 72165, -72166, 72193, 0, 72203, -72204, 72243, 0, - 72250, 72250, 72251, 0, 72255, 32, 72263, 0, 72264, -72265, 72273, 0, - 72284, -72285, 72330, 0, 72346, 32, 72349, 72349, 72350, 32, 72355, -72356, - 72751, 0, 72759, 72759, 72760, 0, 72768, 72768, 72769, 32, 72774, -72775, - 72816, 32, 72818, -72819, 72850, 0, 72872, 72872, 72873, 0, 72887, -72888, - 73009, 0, 73015, -73016, 73018, 0, 73019, 73019, 73020, 0, 73022, 73022, - 73023, 0, 73030, 73030, 73031, 0, 73032, -73033, 73098, 0, 73103, 73103, - 73104, 0, 73106, 73106, 73107, 0, 73112, -73113, 73459, 0, 73463, 32, - 73465, -73466, 73685, 32, 73714, -73715, 73727, 32, 73728, -73729, 74864, 32, - 74869, -74870, 78896, 0, 78905, -78906, 92782, 32, 92784, -92785, 92912, 0, - 92917, 32, 92918, -92919, 92976, 0, 92983, 32, 92992, -92993, 92996, 32, - 92998, -92999, 93760, -93793, 93792, -93793, 93847, 32, 93851, -93852, 94031, 0, - 94032, 94032, 94033, 0, 94088, -94089, 94095, 0, 94099, -94100, 94178, 32, - 94179, -94180, 113820, 32, 113821, 0, 113823, 32, 113824, 0, 113828, -113829, - 118784, 32, 119030, -119031, 119040, 32, 119079, -119080, 119081, 32, 119141, 0, - 119146, 32, 119149, 0, 119171, 32, 119173, 0, 119180, 32, 119210, 0, - 119214, 32, 119273, -119274, 119296, 32, 119362, 0, 119365, 32, 119366, -119367, - 119552, 32, 119639, -119640, 119808, -98, 119834, -119835, 119860, -98, 119886, -119887, - 119912, -98, 119938, -119939, 119964, 97, 119965, 119965, 119966, -100, 119968, -119969, - 119970, 103, 119971, -119972, 119973, -107, 119975, -119976, 119977, -111, 119981, 119981, - 119982, -116, 119990, -119991, 120016, -98, 120042, -120043, 120068, -98, 120070, 120070, - 120071, -101, 120075, -120076, 120077, -107, 120085, 120085, 120086, -116, 120093, -120094, - 120120, -98, 120122, 120122, 120123, -101, 120127, 120127, 120128, -106, 120133, 120133, - 120134, 111, 120135, -120136, 120138, -116, 120145, -120146, 120172, -98, 120198, -120199, - 120224, -98, 120250, -120251, 120276, -98, 120302, -120303, 120328, -98, 120354, -120355, - 120380, -98, 120406, -120407, 120432, -98, 120458, -120459, 120488, -946, 120505, 952, - 120506, -964, 120513, 32, 120514, -120515, 120531, 963, 120532, -120533, 120539, 32, - 120540, -120541, 120546, -946, 120563, 952, 120564, -964, 120571, 32, 120572, -120573, - 120589, 963, 120590, -120591, 120597, 32, 120598, -120599, 120604, -946, 120621, 952, - 120622, -964, 120629, 32, 120630, -120631, 120647, 963, 120648, -120649, 120655, 32, - 120656, -120657, 120662, -946, 120679, 952, 120680, -964, 120687, 32, 120688, -120689, - 120705, 963, 120706, -120707, 120713, 32, 120714, -120715, 120720, -946, 120737, 952, - 120738, -964, 120745, 32, 120746, -120747, 120763, 963, 120764, -120765, 120771, 32, - 120772, -120773, 120778, 989, 120779, -120780, 120832, 32, 121344, 0, 121399, 32, - 121403, 0, 121453, 32, 121461, 0, 121462, 32, 121476, 0, 121477, 32, - 121484, -121485, 121499, 0, 121504, 121504, 121505, 0, 121520, -121521, 122880, 0, - 122887, 122887, 122888, 0, 122905, -122906, 122907, 0, 122914, 122914, 122915, 0, - 122917, 122917, 122918, 0, 122923, -122924, 123184, 0, 123191, -123192, 123215, 32, - 123216, -123217, 123628, 0, 123632, -123633, 123647, 32, 123648, -123649, 125136, 0, - 125143, -125144, 125184, -125219, 125218, -125219, 125252, 0, 125259, -125260, 125278, 32, - 125280, -125281, 126124, 32, 126125, -126126, 126128, 32, 126129, -126130, 126254, 32, - 126255, -126256, 126704, 32, 126706, -126707, 126976, 32, 127020, -127021, 127024, 32, - 127124, -127125, 127136, 32, 127151, -127152, 127153, 32, 127168, 127168, 127169, 32, - 127184, 127184, 127185, 32, 127222, -127223, 127248, 32, 127275, 99, 127276, 114, - 127277, 32, 127280, -98, 127306, 32, 127341, -127342, 127344, 32, 127405, -127406, - 127462, 32, 127490, -127491, 127552, 32, 127561, -127562, 127584, 32, 127590, -127591, - 127744, 32, 128726, -128727, 128736, 32, 128749, -128750, 128752, 32, 128763, -128764, - 128768, 32, 128884, -128885, 128896, 32, 128985, -128986, 128992, 32, 129004, -129005, - 129024, 32, 129036, -129037, 129040, 32, 129096, -129097, 129104, 32, 129114, -129115, - 129120, 32, 129160, -129161, 129168, 32, 129198, -129199, 129280, 32, 129292, 129292, - 129293, 32, 129394, 129394, 129395, 32, 129399, -129400, 129402, 32, 129443, -129444, - 129445, 32, 129451, -129452, 129454, 32, 129483, -129484, 129485, 32, 129620, -129621, - 129632, 32, 129646, -129647, 129648, 32, 129652, -129653, 129656, 32, 129659, -129660, - 129664, 32, 129667, -129668, 129680, 32, 129686, -129687, 131070, 32, 131072, -131073, - 196606, 32, 196608, -196609, 262142, 32, 262144, -262145, 327678, 32, 327680, -327681, - 393214, 32, 393216, -393217, 458750, 32, 458752, -458753, 524286, 32, 524288, -524289, - 589822, 32, 589824, -589825, 655358, 32, 655360, -655361, 720894, 32, 720896, -720897, - 786430, 32, 786432, -786433, 851966, 32, 851968, -851969, 917502, 32, 917504, 917504, - 917505, 0, 917506, -917507, 917536, 0, 917632, -917633, 917760, 0, 918000, -918001, - 983038, 32, 983040, -983041, 1048574, 32, 1048576, -1048577, 1114110, 32, 2147483647, 0}; + 1280, 2097153, 1328, 1328, 1329, -1378, 1367, -1368, 1370, 32, 1376, -1377, + 1417, 32, 1419, -1420, 1421, 32, 1424, 1424, 1425, 0, 1470, 32, + 1471, 0, 1472, 32, 1473, 0, 1475, 32, 1476, 0, 1478, 32, + 1479, 0, 1480, -1481, 1523, 32, 1525, -1526, 1536, 0, 1542, 32, + 1552, 0, 1563, 32, 1564, 0, 1565, 1565, 1566, 32, 1568, -1569, + 1611, 0, 1632, -1633, 1642, 32, 1646, -1647, 1648, 0, 1649, -1650, + 1748, 32, 1749, 1749, 1750, 0, 1758, 32, 1759, 0, 1765, -1766, + 1767, 0, 1769, 32, 1770, 0, 1774, -1775, 1789, 32, 1791, 1791, + 1792, 32, 1806, 1806, 1807, 0, 1808, 1808, 1809, 0, 1810, -1811, + 1840, 0, 1867, -1868, 1958, 0, 1969, -1970, 2027, 0, 2036, -2037, + 2038, 32, 2042, -2043, 2045, 0, 2046, 32, 2048, -2049, 2070, 0, + 2074, 2074, 2075, 0, 2084, 2084, 2085, 0, 2088, 2088, 2089, 0, + 2094, -2095, 2096, 32, 2111, -2112, 2137, 0, 2140, -2141, 2142, 32, + 2143, -2144, 2259, 0, 2308, -2309, 2362, 0, 2365, 2365, 2366, 0, + 2384, 2384, 2385, 0, 2392, -2393, 2402, 0, 2404, 32, 2406, -2407, + 2416, 32, 2417, -2418, 2433, 0, 2436, -2437, 2492, 0, 2493, 2493, + 2494, 0, 2501, -2502, 2503, 0, 2505, -2506, 2507, 0, 2510, -2511, + 2519, 0, 2520, -2521, 2530, 0, 2532, -2533, 2546, 32, 2548, -2549, + 2554, 32, 2556, 2556, 2557, 32, 2558, 0, 2559, -2560, 2561, 0, + 2564, -2565, 2620, 0, 2621, 2621, 2622, 0, 2627, -2628, 2631, 0, + 2633, -2634, 2635, 0, 2638, -2639, 2641, 0, 2642, -2643, 2672, 0, + 2674, -2675, 2677, 0, 2678, 32, 2679, -2680, 2689, 0, 2692, -2693, + 2748, 0, 2749, 2749, 2750, 0, 2758, 2758, 2759, 0, 2762, 2762, + 2763, 0, 2766, -2767, 2786, 0, 2788, -2789, 2800, 32, 2802, -2803, + 2810, 0, 2816, 2816, 2817, 0, 2820, -2821, 2876, 0, 2877, 2877, + 2878, 0, 2885, -2886, 2887, 0, 2889, -2890, 2891, 0, 2894, -2895, + 2901, 0, 2904, -2905, 2914, 0, 2916, -2917, 2928, 32, 2929, -2930, + 2946, 0, 2947, -2948, 3006, 0, 3011, -3012, 3014, 0, 3017, 3017, + 3018, 0, 3022, -3023, 3031, 0, 3032, -3033, 3059, 32, 3067, -3068, + 3072, 0, 3077, -3078, 3134, 0, 3141, 3141, 3142, 0, 3145, 3145, + 3146, 0, 3150, -3151, 3157, 0, 3159, -3160, 3170, 0, 3172, -3173, + 3191, 32, 3192, -3193, 3199, 32, 3200, 3200, 3201, 0, 3204, 32, + 3205, -3206, 3260, 0, 3261, 3261, 3262, 0, 3269, 3269, 3270, 0, + 3273, 3273, 3274, 0, 3278, -3279, 3285, 0, 3287, -3288, 3298, 0, + 3300, -3301, 3328, 0, 3332, -3333, 3387, 0, 3389, 3389, 3390, 0, + 3397, 3397, 3398, 0, 3401, 3401, 3402, 0, 3406, 3406, 3407, 32, + 3408, -3409, 3415, 0, 3416, -3417, 3426, 0, 3428, -3429, 3449, 32, + 3450, -3451, 3457, 0, 3460, -3461, 3530, 0, 3531, -3532, 3535, 0, + 3541, 3541, 3542, 0, 3543, 3543, 3544, 0, 3552, -3553, 3570, 0, + 3572, 32, 3573, -3574, 3633, 0, 3634, -3635, 3636, 0, 3643, -3644, + 3647, 32, 3648, -3649, 3655, 0, 3663, 32, 3664, -3665, 3674, 32, + 3676, -3677, 3761, 0, 3762, -3763, 3764, 0, 3773, -3774, 3784, 0, + 3790, -3791, 3841, 32, 3864, 0, 3866, 32, 3872, -3873, 3892, 32, + 3893, 0, 3894, 32, 3895, 0, 3896, 32, 3897, 0, 3898, 32, + 3902, 0, 3904, -3905, 3953, 0, 3973, 32, 3974, 0, 3976, -3977, + 3981, 0, 3992, 3992, 3993, 0, 4029, 4029, 4030, 32, 4038, 0, + 4039, 32, 4045, 4045, 4046, 32, 4059, -4060, 4139, 0, 4159, -4160, + 4170, 32, 4176, -4177, 4182, 0, 4186, -4187, 4190, 0, 4193, 4193, + 4194, 0, 4197, -4198, 4199, 0, 4206, -4207, 4209, 0, 4213, -4214, + 4226, 0, 4238, 4238, 4239, 0, 4240, -4241, 4250, 0, 4254, 32, + 4256, -11521, 4294, 4294, 4295, 11559, 4296, -4297, 4301, 11565, 4302, -4303, + 4347, 32, 4348, -4349, 4957, 0, 4960, 32, 4969, -4970, 5008, 32, + 5018, -5019, 5112, -5105, 5118, -5119, 5120, 32, 5121, -5122, 5741, 32, + 5743, -5744, 5760, 32, 5761, -5762, 5787, 32, 5789, -5790, 5867, 32, + 5870, -5871, 5906, 0, 5909, -5910, 5938, 0, 5941, 32, 5943, -5944, + 5970, 0, 5972, -5973, 6002, 0, 6004, -6005, 6068, 0, 6100, 32, + 6103, 6103, 6104, 32, 6108, 6108, 6109, 0, 6110, -6111, 6144, 32, + 6155, 0, 6159, -6160, 6277, 0, 6279, -6280, 6313, 0, 6314, -6315, + 6432, 0, 6444, -6445, 6448, 0, 6460, -6461, 6464, 32, 6465, -6466, + 6468, 32, 6470, -6471, 6622, 32, 6656, -6657, 6679, 0, 6684, -6685, + 6686, 32, 6688, -6689, 6741, 0, 6751, 6751, 6752, 0, 6781, -6782, + 6783, 0, 6784, -6785, 6816, 32, 6823, 6823, 6824, 32, 6830, -6831, + 6832, 0, 6849, -6850, 6912, 0, 6917, -6918, 6964, 0, 6981, -6982, + 7002, 32, 7019, 0, 7028, 32, 7037, -7038, 7040, 0, 7043, -7044, + 7073, 0, 7086, -7087, 7142, 0, 7156, -7157, 7164, 32, 7168, -7169, + 7204, 0, 7224, -7225, 7227, 32, 7232, -7233, 7294, 32, 7296, 1074, + 7297, 1076, 7298, 1086, 7299, -1090, 7301, 1090, 7302, 1098, 7303, 1123, + 7304, 42571, 7305, -7306, 7312, -4305, 7355, -7356, 7357, -4350, 7360, 32, + 7368, -7369, 7376, 0, 7379, 32, 7380, 0, 7401, -7402, 7405, 0, + 7406, -7407, 7412, 0, 7413, -7414, 7415, 0, 7418, -7419, 7468, 97, + 7469, 230, 7470, 98, 7471, 7471, 7472, -101, 7474, 477, 7475, -104, + 7483, 7483, 7484, 111, 7485, 547, 7486, 112, 7487, 114, 7488, -117, + 7490, 119, 7491, -7492, 7616, 0, 7674, 7674, 7675, 0, 7680, 2097153, + 7830, -7831, 7835, 7777, 7836, -7837, 7838, 223, 7839, 2097153, 7936, -7937, + 7944, -7937, 7952, -7953, 7960, -7953, 7966, -7967, 7976, -7969, 7984, -7985, + 7992, -7985, 8000, -8001, 8008, -8001, 8014, -8015, 8025, 8017, 8026, 8026, + 8027, 8019, 8028, 8028, 8029, 8021, 8030, 8030, 8031, 8023, 8032, -8033, + 8040, -8033, 8048, -8049, 8072, -8065, 8080, -8081, 8088, -8081, 8096, -8097, + 8104, -8097, 8112, -8113, 8120, -8113, 8122, -8049, 8124, 8115, 8125, 32, + 8126, 953, 8127, 32, 8130, -8131, 8136, -8051, 8140, 8131, 8141, 32, + 8144, -8145, 8152, -8145, 8154, -8055, 8156, 8156, 8157, 32, 8160, -8161, + 8168, -8161, 8170, -8059, 8172, 8165, 8173, 32, 8176, -8177, 8184, -8057, + 8186, -8061, 8188, 8179, 8189, 32, 8191, 8191, 8192, 32, 8203, 0, + 8208, 32, 8234, 0, 8239, 32, 8288, 0, 8293, 8293, 8294, 0, + 8304, -8305, 8314, 32, 8319, -8320, 8330, 32, 8335, -8336, 8352, 32, + 8384, -8385, 8400, 0, 8433, -8434, 8448, 32, 8450, 99, 8452, 32, + 8455, 603, 8456, 32, 8457, 102, 8458, 8458, 8459, 104, 8462, -8463, + 8464, 105, 8466, 108, 8467, 8467, 8468, 32, 8469, 110, 8470, 32, + 8473, -113, 8476, 114, 8478, 32, 8484, 122, 8485, 32, 8486, 969, + 8487, 32, 8488, 122, 8489, 32, 8490, 107, 8491, 229, 8492, -99, + 8494, 32, 8495, 8495, 8496, -102, 8498, 8526, 8499, 109, 8500, -8501, + 8506, 32, 8508, -8509, 8510, 947, 8511, 960, 8512, 32, 8517, 100, + 8518, -8519, 8522, 32, 8526, 8526, 8527, 32, 8528, -8529, 8544, -8561, + 8560, -8561, 8579, 8580, 8581, -8582, 8586, 32, 8588, -8589, 8592, 32, + 9255, -9256, 9280, 32, 9291, -9292, 9372, 32, 9398, -9425, 9424, -9425, + 9472, 32, 10102, -10103, 10132, 32, 11124, -11125, 11126, 32, 11158, 11158, + 11159, 32, 11264, -11313, 11311, -11312, 11360, 11361, 11362, 619, 11363, 7549, + 11364, 637, 11365, -11366, 11367, 11368, 11369, 11370, 11371, 11372, 11373, 593, + 11374, 625, 11375, 592, 11376, 594, 11377, 2097153, 11380, 11380, 11381, 11382, + 11383, -11384, 11389, 118, 11390, -576, 11392, 2097153, 11492, 11492, 11493, 32, + 11499, 11500, 11501, 11502, 11503, 0, 11506, 11507, 11508, -11509, 11513, 32, + 11517, 11517, 11518, 32, 11520, -11521, 11632, 32, 11633, -11634, 11647, 0, + 11648, -11649, 11744, 0, 11776, 32, 11823, 11823, 11824, 32, 11859, -11860, + 11904, 32, 11930, 11930, 11931, 32, 11935, 11935, 11936, 32, 12019, -12020, + 12272, 32, 12284, -12285, 12288, 32, 12293, -12294, 12296, 32, 12321, -12322, + 12330, 0, 12336, 32, 12337, -12338, 12342, 32, 12344, -12345, 12349, 32, + 12352, -12353, 12441, 0, 12443, 32, 12445, -12446, 12448, 32, 12449, -12450, + 12539, 32, 12540, 0, 12541, -12542, 12688, 32, 12690, -12691, 12736, 32, + 12772, -12773, 12800, 32, 12831, -12832, 12842, 32, 12868, -12869, 12880, 32, + 12881, -12882, 12910, 32, 12928, -12929, 12992, 32, 13008, -13009, 13055, 32, + 13312, -13313, 19904, 32, 19968, -19969, 42128, 32, 42183, -42184, 42238, 32, + 42240, -42241, 42509, 32, 42512, -42513, 42560, 2097153, 42606, 42606, 42607, 0, + 42611, 32, 42612, 0, 42622, 32, 42623, 2097153, 42652, -42653, 42654, 0, + 42656, -42657, 42736, 0, 42738, 32, 42744, -42745, 42752, 32, 42775, -42776, + 42784, 32, 42786, 2097153, 42800, -42801, 42802, 2097153, 42864, -42865, 42873, 42874, + 42875, 42876, 42877, 7545, 42878, 2097153, 42888, 42888, 42889, 32, 42891, 42892, + 42893, 613, 42894, -42895, 42896, 2097153, 42900, -42901, 42902, 2097153, 42922, 614, + 42923, 604, 42924, 609, 42925, 620, 42926, 618, 42927, 42927, 42928, 670, + 42929, 647, 42930, 669, 42931, 43859, 42932, 2097153, 42944, -42945, 42946, 42947, + 42948, 42900, 42949, 642, 42950, 7566, 42951, 42952, 42953, 42954, 42955, -42956, + 42997, 42998, 42999, 42999, 43000, 295, 43001, -43002, 43010, 0, 43011, -43012, + 43014, 0, 43015, -43016, 43019, 0, 43020, -43021, 43043, 0, 43048, 32, + 43052, 0, 43053, -43054, 43062, 32, 43066, -43067, 43124, 32, 43128, -43129, + 43136, 0, 43138, -43139, 43188, 0, 43206, -43207, 43214, 32, 43216, -43217, + 43232, 0, 43250, -43251, 43256, 32, 43259, 43259, 43260, 32, 43261, -43262, + 43263, 0, 43264, -43265, 43302, 0, 43310, 32, 43312, -43313, 43335, 0, + 43348, -43349, 43359, 32, 43360, -43361, 43392, 0, 43396, -43397, 43443, 0, + 43457, 32, 43470, -43471, 43486, 32, 43488, -43489, 43493, 0, 43494, -43495, + 43561, 0, 43575, -43576, 43587, 0, 43588, -43589, 43596, 0, 43598, -43599, + 43612, 32, 43616, -43617, 43639, 32, 43642, 43642, 43643, 0, 43646, -43647, + 43696, 0, 43697, 43697, 43698, 0, 43701, -43702, 43703, 0, 43705, -43706, + 43710, 0, 43712, 43712, 43713, 0, 43714, -43715, 43742, 32, 43744, -43745, + 43755, 0, 43760, 32, 43762, -43763, 43765, 0, 43767, -43768, 43867, 32, + 43868, -43869, 43882, 32, 43884, -43885, 43888, -5025, 43968, -43969, 44003, 0, + 44011, 32, 44012, 0, 44014, -44015, 55296, 0, 57344, -57345, 64286, 0, + 64287, -64288, 64297, 32, 64298, -64299, 64434, 32, 64450, -64451, 64830, 32, + 64832, -64833, 64976, 32, 65008, -65009, 65020, 32, 65022, -65023, 65024, 0, + 65040, 32, 65050, -65051, 65056, 0, 65072, 32, 65107, 65107, 65108, 32, + 65127, 65127, 65128, 32, 65132, -65133, 65279, 0, 65280, 65280, 65281, 32, + 65296, -65297, 65306, 32, 65313, -65346, 65339, 32, 65345, -65346, 65371, 32, + 65382, -65383, 65504, 32, 65511, 65511, 65512, 32, 65519, -65520, 65529, 0, + 65532, 32, 65536, -65537, 65792, 32, 65795, -65796, 65847, 32, 65856, -65857, + 65913, 32, 65930, -65931, 65932, 32, 65935, 65935, 65936, 32, 65949, -65950, + 65952, 32, 65953, -65954, 66000, 32, 66045, 0, 66046, -66047, 66272, 0, + 66273, -66274, 66422, 0, 66427, -66428, 66463, 32, 66464, -66465, 66512, 32, + 66513, -66514, 66560, -66601, 66600, -66601, 66736, -66777, 66772, -66773, 66927, 32, + 66928, -66929, 67671, 32, 67672, -67673, 67703, 32, 67705, -67706, 67871, 32, + 67872, -67873, 67903, 32, 67904, -67905, 68097, 0, 68100, 68100, 68101, 0, + 68103, -68104, 68108, 0, 68112, -68113, 68152, 0, 68155, -68156, 68159, 0, + 68160, -68161, 68176, 32, 68185, -68186, 68223, 32, 68224, -68225, 68296, 32, + 68297, -68298, 68325, 0, 68327, -68328, 68336, 32, 68343, -68344, 68409, 32, + 68416, -68417, 68505, 32, 68509, -68510, 68736, -68801, 68787, -68788, 68900, 0, + 68904, -68905, 69291, 0, 69293, 32, 69294, -69295, 69446, 0, 69457, -69458, + 69461, 32, 69466, -69467, 69632, 0, 69635, -69636, 69688, 0, 69703, 32, + 69710, -69711, 69759, 0, 69763, -69764, 69808, 0, 69819, 32, 69821, 0, + 69822, 32, 69826, -69827, 69837, 0, 69838, -69839, 69888, 0, 69891, -69892, + 69927, 0, 69941, -69942, 69952, 32, 69956, 69956, 69957, 0, 69959, -69960, + 70003, 0, 70004, 32, 70006, -70007, 70016, 0, 70019, -70020, 70067, 0, + 70081, -70082, 70085, 32, 70089, 0, 70093, 32, 70094, 0, 70096, -70097, + 70107, 32, 70108, 70108, 70109, 32, 70112, -70113, 70188, 0, 70200, 32, + 70206, 0, 70207, -70208, 70313, 32, 70314, -70315, 70367, 0, 70379, -70380, + 70400, 0, 70404, -70405, 70459, 0, 70461, 70461, 70462, 0, 70469, -70470, + 70471, 0, 70473, -70474, 70475, 0, 70478, -70479, 70487, 0, 70488, -70489, + 70498, 0, 70500, -70501, 70502, 0, 70509, -70510, 70512, 0, 70517, -70518, + 70709, 0, 70727, -70728, 70731, 32, 70736, -70737, 70746, 32, 70748, 70748, + 70749, 32, 70750, 0, 70751, -70752, 70832, 0, 70852, -70853, 70854, 32, + 70855, -70856, 71087, 0, 71094, -71095, 71096, 0, 71105, 32, 71128, -71129, + 71132, 0, 71134, -71135, 71216, 0, 71233, 32, 71236, -71237, 71264, 32, + 71277, -71278, 71339, 0, 71352, -71353, 71453, 0, 71468, -71469, 71484, 32, + 71488, -71489, 71724, 0, 71739, 32, 71740, -71741, 71840, -71873, 71872, -71873, + 71984, 0, 71990, 71990, 71991, 0, 71993, -71994, 71995, 0, 71999, 71999, + 72000, 0, 72001, 72001, 72002, 0, 72004, 32, 72007, -72008, 72145, 0, + 72152, -72153, 72154, 0, 72161, 72161, 72162, 32, 72163, 72163, 72164, 0, + 72165, -72166, 72193, 0, 72203, -72204, 72243, 0, 72250, 72250, 72251, 0, + 72255, 32, 72263, 0, 72264, -72265, 72273, 0, 72284, -72285, 72330, 0, + 72346, 32, 72349, 72349, 72350, 32, 72355, -72356, 72751, 0, 72759, 72759, + 72760, 0, 72768, 72768, 72769, 32, 72774, -72775, 72816, 32, 72818, -72819, + 72850, 0, 72872, 72872, 72873, 0, 72887, -72888, 73009, 0, 73015, -73016, + 73018, 0, 73019, 73019, 73020, 0, 73022, 73022, 73023, 0, 73030, 73030, + 73031, 0, 73032, -73033, 73098, 0, 73103, 73103, 73104, 0, 73106, 73106, + 73107, 0, 73112, -73113, 73459, 0, 73463, 32, 73465, -73466, 73685, 32, + 73714, -73715, 73727, 32, 73728, -73729, 74864, 32, 74869, -74870, 78896, 0, + 78905, -78906, 92782, 32, 92784, -92785, 92912, 0, 92917, 32, 92918, -92919, + 92976, 0, 92983, 32, 92992, -92993, 92996, 32, 92998, -92999, 93760, -93793, + 93792, -93793, 93847, 32, 93851, -93852, 94031, 0, 94032, 94032, 94033, 0, + 94088, -94089, 94095, 0, 94099, -94100, 94178, 32, 94179, 94179, 94180, 0, + 94181, -94182, 94192, 0, 94194, -94195, 113820, 32, 113821, 0, 113823, 32, + 113824, 0, 113828, -113829, 118784, 32, 119030, -119031, 119040, 32, 119079, -119080, + 119081, 32, 119141, 0, 119146, 32, 119149, 0, 119171, 32, 119173, 0, + 119180, 32, 119210, 0, 119214, 32, 119273, -119274, 119296, 32, 119362, 0, + 119365, 32, 119366, -119367, 119552, 32, 119639, -119640, 119808, -98, 119834, -119835, + 119860, -98, 119886, -119887, 119912, -98, 119938, -119939, 119964, 97, 119965, 119965, + 119966, -100, 119968, -119969, 119970, 103, 119971, -119972, 119973, -107, 119975, -119976, + 119977, -111, 119981, 119981, 119982, -116, 119990, -119991, 120016, -98, 120042, -120043, + 120068, -98, 120070, 120070, 120071, -101, 120075, -120076, 120077, -107, 120085, 120085, + 120086, -116, 120093, -120094, 120120, -98, 120122, 120122, 120123, -101, 120127, 120127, + 120128, -106, 120133, 120133, 120134, 111, 120135, -120136, 120138, -116, 120145, -120146, + 120172, -98, 120198, -120199, 120224, -98, 120250, -120251, 120276, -98, 120302, -120303, + 120328, -98, 120354, -120355, 120380, -98, 120406, -120407, 120432, -98, 120458, -120459, + 120488, -946, 120505, 952, 120506, -964, 120513, 32, 120514, -120515, 120531, 963, + 120532, -120533, 120539, 32, 120540, -120541, 120546, -946, 120563, 952, 120564, -964, + 120571, 32, 120572, -120573, 120589, 963, 120590, -120591, 120597, 32, 120598, -120599, + 120604, -946, 120621, 952, 120622, -964, 120629, 32, 120630, -120631, 120647, 963, + 120648, -120649, 120655, 32, 120656, -120657, 120662, -946, 120679, 952, 120680, -964, + 120687, 32, 120688, -120689, 120705, 963, 120706, -120707, 120713, 32, 120714, -120715, + 120720, -946, 120737, 952, 120738, -964, 120745, 32, 120746, -120747, 120763, 963, + 120764, -120765, 120771, 32, 120772, -120773, 120778, 989, 120779, -120780, 120832, 32, + 121344, 0, 121399, 32, 121403, 0, 121453, 32, 121461, 0, 121462, 32, + 121476, 0, 121477, 32, 121484, -121485, 121499, 0, 121504, 121504, 121505, 0, + 121520, -121521, 122880, 0, 122887, 122887, 122888, 0, 122905, -122906, 122907, 0, + 122914, 122914, 122915, 0, 122917, 122917, 122918, 0, 122923, -122924, 123184, 0, + 123191, -123192, 123215, 32, 123216, -123217, 123628, 0, 123632, -123633, 123647, 32, + 123648, -123649, 125136, 0, 125143, -125144, 125184, -125219, 125218, -125219, 125252, 0, + 125259, -125260, 125278, 32, 125280, -125281, 126124, 32, 126125, -126126, 126128, 32, + 126129, -126130, 126254, 32, 126255, -126256, 126704, 32, 126706, -126707, 126976, 32, + 127020, -127021, 127024, 32, 127124, -127125, 127136, 32, 127151, -127152, 127153, 32, + 127168, 127168, 127169, 32, 127184, 127184, 127185, 32, 127222, -127223, 127245, 32, + 127275, 99, 127276, 114, 127277, 32, 127280, -98, 127306, 32, 127406, -127407, + 127462, 32, 127490, -127491, 127552, 32, 127561, -127562, 127584, 32, 127590, -127591, + 127744, 32, 128728, -128729, 128736, 32, 128749, -128750, 128752, 32, 128765, -128766, + 128768, 32, 128884, -128885, 128896, 32, 128985, -128986, 128992, 32, 129004, -129005, + 129024, 32, 129036, -129037, 129040, 32, 129096, -129097, 129104, 32, 129114, -129115, + 129120, 32, 129160, -129161, 129168, 32, 129198, -129199, 129200, 32, 129202, -129203, + 129280, 32, 129401, 129401, 129402, 32, 129484, 129484, 129485, 32, 129620, -129621, + 129632, 32, 129646, -129647, 129648, 32, 129653, -129654, 129656, 32, 129659, -129660, + 129664, 32, 129671, -129672, 129680, 32, 129705, -129706, 129712, 32, 129719, -129720, + 129728, 32, 129731, -129732, 129744, 32, 129751, -129752, 129792, 32, 129939, 129939, + 129940, 32, 129995, -129996, 131070, 32, 131072, -131073, 196606, 32, 196608, -196609, + 262142, 32, 262144, -262145, 327678, 32, 327680, -327681, 393214, 32, 393216, -393217, + 458750, 32, 458752, -458753, 524286, 32, 524288, -524289, 589822, 32, 589824, -589825, + 655358, 32, 655360, -655361, 720894, 32, 720896, -720897, 786430, 32, 786432, -786433, + 851966, 32, 851968, -851969, 917502, 32, 917504, 917504, 917505, 0, 917506, -917507, + 917536, 0, 917632, -917633, 917760, 0, 918000, -918001, 983038, 32, 983040, -983041, + 1048574, 32, 1048576, -1048577, 1114110, 32, 2147483647, 0}; static const int16 to_lower_table[TABLE_SIZE] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, @@ -512,32 +519,31 @@ static const int16 to_lower_table[TABLE_SIZE] = { 1273, 1275, 1275, 1277, 1277, 1279, 1279}; static const int32 to_lower_ranges[] = { - 1280, 2097153, 1328, 1328, 1329, -1378, 1367, -1368, 4256, -11521, 4294, 4294, - 4295, 11559, 4296, -4297, 4301, 11565, 4302, -4303, 5024, -43889, 5104, -5113, - 5110, -5111, 7312, -4305, 7355, -7356, 7357, -4350, 7360, -7361, 7680, 2097153, - 7830, -7831, 7838, 223, 7839, 2097153, 7936, -7937, 7944, -7937, 7952, -7953, - 7960, -7953, 7966, -7967, 7976, -7969, 7984, -7985, 7992, -7985, 8000, -8001, - 8008, -8001, 8014, -8015, 8025, 8017, 8026, 8026, 8027, 8019, 8028, 8028, - 8029, 8021, 8030, 8030, 8031, 8023, 8032, -8033, 8040, -8033, 8048, -8049, - 8072, -8065, 8080, -8081, 8088, -8081, 8096, -8097, 8104, -8097, 8112, -8113, - 8120, -8113, 8122, -8049, 8124, 8115, 8125, -8126, 8136, -8051, 8140, 8131, - 8141, -8142, 8152, -8145, 8154, -8055, 8156, -8157, 8168, -8161, 8170, -8059, - 8172, 8165, 8173, -8174, 8184, -8057, 8186, -8061, 8188, 8179, 8189, -8190, - 8486, 969, 8487, -8488, 8490, 107, 8491, 229, 8492, -8493, 8498, 8526, - 8499, -8500, 8544, -8561, 8560, -8561, 8579, 8580, 8581, -8582, 9398, -9425, - 9424, -9425, 11264, -11313, 11311, -11312, 11360, 11361, 11362, 619, 11363, 7549, - 11364, 637, 11365, -11366, 11367, 11368, 11369, 11370, 11371, 11372, 11373, 593, - 11374, 625, 11375, 592, 11376, 594, 11377, 2097153, 11380, 11380, 11381, 11382, - 11383, -11384, 11390, -576, 11392, 2097153, 11492, -11493, 11499, 11500, 11501, 11502, - 11503, -11504, 11506, 11507, 11508, -11509, 42560, 2097153, 42606, -42607, 42624, 2097153, - 42652, -42653, 42786, 2097153, 42800, -42801, 42802, 2097153, 42864, -42865, 42873, 42874, - 42875, 42876, 42877, 7545, 42878, 2097153, 42888, -42889, 42891, 42892, 42893, 613, - 42894, -42895, 42896, 2097153, 42900, -42901, 42902, 2097153, 42922, 614, 42923, 604, - 42924, 609, 42925, 620, 42926, 618, 42927, 42927, 42928, 670, 42929, 647, - 42930, 669, 42931, 43859, 42932, 2097153, 42944, -42945, 42946, 42947, 42948, 42900, - 42949, 642, 42950, 7566, 42951, -42952, 65313, -65346, 65339, -65340, 66560, -66601, - 66600, -66601, 66736, -66777, 66772, -66773, 68736, -68801, 68787, -68788, 71840, -71873, - 71872, -71873, 93760, -93793, 93792, -93793, 125184, -125219, 125218, -125219, 2147483647, 0}; + 1280, 2097153, 1328, 1328, 1329, -1378, 1367, -1368, 4256, -11521, 4294, 4294, 4295, + 11559, 4296, -4297, 4301, 11565, 4302, -4303, 5024, -43889, 5104, -5113, 5110, -5111, + 7312, -4305, 7355, -7356, 7357, -4350, 7360, -7361, 7680, 2097153, 7830, -7831, 7838, + 223, 7839, 2097153, 7936, -7937, 7944, -7937, 7952, -7953, 7960, -7953, 7966, -7967, + 7976, -7969, 7984, -7985, 7992, -7985, 8000, -8001, 8008, -8001, 8014, -8015, 8025, + 8017, 8026, 8026, 8027, 8019, 8028, 8028, 8029, 8021, 8030, 8030, 8031, 8023, + 8032, -8033, 8040, -8033, 8048, -8049, 8072, -8065, 8080, -8081, 8088, -8081, 8096, + -8097, 8104, -8097, 8112, -8113, 8120, -8113, 8122, -8049, 8124, 8115, 8125, -8126, + 8136, -8051, 8140, 8131, 8141, -8142, 8152, -8145, 8154, -8055, 8156, -8157, 8168, + -8161, 8170, -8059, 8172, 8165, 8173, -8174, 8184, -8057, 8186, -8061, 8188, 8179, + 8189, -8190, 8486, 969, 8487, -8488, 8490, 107, 8491, 229, 8492, -8493, 8498, + 8526, 8499, -8500, 8544, -8561, 8560, -8561, 8579, 8580, 8581, -8582, 9398, -9425, + 9424, -9425, 11264, -11313, 11311, -11312, 11360, 11361, 11362, 619, 11363, 7549, 11364, + 637, 11365, -11366, 11367, 11368, 11369, 11370, 11371, 11372, 11373, 593, 11374, 625, + 11375, 592, 11376, 594, 11377, 2097153, 11380, 11380, 11381, 11382, 11383, -11384, 11390, + -576, 11392, 2097153, 11492, -11493, 11499, 11500, 11501, 11502, 11503, -11504, 11506, 11507, + 11508, -11509, 42560, 2097153, 42606, -42607, 42624, 2097153, 42652, -42653, 42786, 2097153, 42800, + -42801, 42802, 2097153, 42864, -42865, 42873, 42874, 42875, 42876, 42877, 7545, 42878, 2097153, + 42888, -42889, 42891, 42892, 42893, 613, 42894, -42895, 42896, 2097153, 42900, -42901, 42902, + 2097153, 42922, 614, 42923, 604, 42924, 609, 42925, 620, 42926, 618, 42927, 42927, + 42928, 670, 42929, 647, 42930, 669, 42931, 43859, 42932, 2097153, 42944, -42945, 42946, + 42947, 42948, 42900, 42949, 642, 42950, 7566, 42951, 42952, 42953, 42954, 42955, -42956, + 42997, 42998, 42999, -43000, 65313, -65346, 65339, -65340, 66560, -66601, 66600, -66601, 66736, + -66777, 66772, -66773, 68736, -68801, 68787, -68788, 71840, -71873, 71872, -71873, 93760, -93793, + 93792, -93793, 125184, -125219, 125218, -125219, 2147483647, 0}; static const int16 without_diacritics_table[TABLE_SIZE] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, @@ -635,7 +641,7 @@ static const int32 without_diacritics_ranges[] = { 2759, 0, 2762, 2762, 2763, 0, 2766, -2767, 2786, 0, 2788, -2789, 2810, 0, 2816, 2816, 2817, 0, 2820, -2821, 2876, 0, 2877, 2877, 2878, 0, 2885, -2886, 2887, 0, 2889, -2890, 2891, 0, 2894, -2895, - 2902, 0, 2904, -2905, 2908, -2850, 2910, -2911, 2914, 0, 2916, -2917, + 2901, 0, 2904, -2905, 2908, -2850, 2910, -2911, 2914, 0, 2916, -2917, 2946, 0, 2947, -2948, 2964, 2962, 2965, -2966, 3006, 0, 3011, -3012, 3014, 0, 3017, 3017, 3018, 0, 3022, -3023, 3031, 0, 3032, -3033, 3072, 0, 3077, -3078, 3134, 0, 3141, 3141, 3142, 0, 3145, 3145, @@ -644,7 +650,7 @@ static const int32 without_diacritics_ranges[] = { 3270, 0, 3273, 3273, 3274, 0, 3278, -3279, 3285, 0, 3287, -3288, 3298, 0, 3300, -3301, 3328, 0, 3332, -3333, 3387, 0, 3389, 3389, 3390, 0, 3397, 3397, 3398, 0, 3401, 3401, 3402, 0, 3406, -3407, - 3415, 0, 3416, -3417, 3426, 0, 3428, -3429, 3458, 0, 3460, -3461, + 3415, 0, 3416, -3417, 3426, 0, 3428, -3429, 3457, 0, 3460, -3461, 3530, 0, 3531, -3532, 3535, 0, 3541, 3541, 3542, 0, 3543, 3543, 3544, 0, 3552, -3553, 3570, 0, 3572, -3573, 3633, 0, 3634, 3634, 3636, 0, 3643, -3644, 3655, 0, 3663, -3664, 3761, 0, 3762, 3762, @@ -663,7 +669,7 @@ static const int32 without_diacritics_ranges[] = { 6109, 0, 6110, -6111, 6155, 0, 6159, -6160, 6277, 0, 6279, -6280, 6313, 0, 6314, -6315, 6432, 0, 6444, -6445, 6448, 0, 6460, -6461, 6679, 0, 6684, -6685, 6741, 0, 6751, 6751, 6752, 0, 6781, -6782, - 6783, 0, 6784, -6785, 6832, 0, 6847, -6848, 6912, 0, 6917, 2097154, + 6783, 0, 6784, -6785, 6832, 0, 6849, -6850, 6912, 0, 6917, 2097154, 6928, -6929, 6930, 2097154, 6932, -6933, 6964, 0, 6981, -6982, 7019, 0, 7028, -7029, 7040, 0, 7043, -7044, 7073, 0, 7086, -7087, 7142, 0, 7156, -7157, 7204, 0, 7224, -7225, 7376, 0, 7379, 7379, 7380, 0, @@ -836,154 +842,157 @@ static const int32 without_diacritics_ranges[] = { 42612, 0, 42622, -42623, 42652, 1098, 42653, 1100, 42654, 0, 42656, -42657, 42736, 0, 42738, -42739, 42864, 2097154, 42866, -42867, 43000, 294, 43001, 339, 43002, -43003, 43010, 0, 43011, -43012, 43014, 0, 43015, -43016, 43019, 0, - 43020, -43021, 43043, 0, 43048, -43049, 43136, 0, 43138, -43139, 43188, 0, - 43206, -43207, 43232, 0, 43250, -43251, 43263, 0, 43264, -43265, 43302, 0, - 43310, -43311, 43335, 0, 43348, -43349, 43392, 0, 43396, -43397, 43443, 0, - 43457, -43458, 43493, 0, 43494, -43495, 43561, 0, 43575, -43576, 43587, 0, - 43588, -43589, 43596, 0, 43598, -43599, 43643, 0, 43646, -43647, 43696, 0, - 43697, 43697, 43698, 0, 43701, -43702, 43703, 0, 43705, -43706, 43710, 0, - 43712, 43712, 43713, 0, 43714, -43715, 43755, 0, 43760, -43761, 43765, 0, - 43767, -43768, 43868, 42791, 43869, 43831, 43870, 619, 43871, 43858, 43872, -43873, - 44003, 0, 44011, 44011, 44012, 0, 44014, -44015, 55296, 0, 57344, -57345, - 63744, 35912, 63745, 26356, 63746, 36554, 63747, 36040, 63748, 28369, 63749, 20018, - 63750, 21477, 63751, 40860, 63753, 22865, 63754, 37329, 63755, 21895, 63756, 22856, - 63757, 25078, 63758, 30313, 63759, 32645, 63760, 34367, 63761, 34746, 63762, 35064, - 63763, 37007, 63764, 27138, 63765, 27931, 63766, 28889, 63767, 29662, 63768, 33853, - 63769, 37226, 63770, 39409, 63771, 20098, 63772, 21365, 63773, 27396, 63774, 29211, - 63775, 34349, 63776, 40478, 63777, 23888, 63778, 28651, 63779, 34253, 63780, 35172, - 63781, 25289, 63782, 33240, 63783, 34847, 63784, 24266, 63785, 26391, 63786, 28010, - 63787, 29436, 63788, 37070, 63789, 20358, 63790, 20919, 63791, 21214, 63792, 25796, - 63793, 27347, 63794, 29200, 63795, 30439, 63796, 32769, 63797, 34310, 63798, 34396, - 63799, 36335, 63800, 38706, 63801, 39791, 63802, 40442, 63803, 30860, 63804, 31103, - 63805, 32160, 63806, 33737, 63807, 37636, 63808, 40575, 63809, 35542, 63810, 22751, - 63811, 24324, 63812, 31840, 63813, 32894, 63814, 29282, 63815, 30922, 63816, 36034, - 63817, 38647, 63818, 22744, 63819, 23650, 63820, 27155, 63821, 28122, 63822, 28431, - 63823, 32047, 63824, 32311, 63825, 38475, 63826, 21202, 63827, 32907, 63828, 20956, - 63829, 20940, 63830, 31260, 63831, 32190, 63832, 33777, 63833, 38517, 63834, 35712, - 63835, 25295, 63836, 27138, 63837, 35582, 63838, 20025, 63839, 23527, 63840, 24594, - 63841, 29575, 63842, 30064, 63843, 21271, 63844, 30971, 63845, 20415, 63846, 24489, - 63847, 19981, 63848, 27852, 63849, 25976, 63850, 32034, 63851, 21443, 63852, 22622, - 63853, 30465, 63854, 33865, 63855, 35498, 63856, 27578, 63857, 36784, 63858, 27784, - 63859, 25342, 63860, 33509, 63861, 25504, 63862, 30053, 63863, 20142, 63864, 20841, - 63865, 20937, 63866, 26753, 63867, 31975, 63868, 33391, 63869, 35538, 63870, 37327, - 63871, 21237, 63872, 21570, 63873, 22899, 63874, 24300, 63875, 26053, 63876, 28670, - 63877, 31018, 63878, 38317, 63879, 39530, 63880, 40599, 63881, 40654, 63882, 21147, - 63883, 26310, 63884, 27511, 63885, 36706, 63886, 24180, 63887, 24976, 63888, 25088, - 63889, 25754, 63890, 28451, 63891, 29001, 63892, 29833, 63893, 31178, 63894, 32244, - 63895, 32879, 63896, 36646, 63897, 34030, 63898, 36899, 63899, 37706, 63900, 21015, - 63901, 21155, 63902, 21693, 63903, 28872, 63904, 35010, 63905, 35498, 63906, 24265, - 63907, 24565, 63908, 25467, 63909, 27566, 63910, 31806, 63911, 29557, 63912, 20196, - 63913, 22265, 63914, 23527, 63915, 23994, 63916, 24604, 63917, 29618, 63918, 29801, - 63919, 32666, 63920, 32838, 63921, 37428, 63922, 38646, 63923, 38728, 63924, 38936, - 63925, 20363, 63926, 31150, 63927, 37300, 63928, 38584, 63929, 24801, 63930, 20102, - 63931, 20698, 63932, 23534, 63933, 23615, 63934, 26009, 63935, 27138, 63936, 29134, - 63937, 30274, 63938, 34044, 63939, 36988, 63940, 40845, 63941, 26248, 63942, 38446, - 63943, 21129, 63944, 26491, 63945, 26611, 63946, 27969, 63947, 28316, 63948, 29705, - 63949, 30041, 63950, 30827, 63951, 32016, 63952, 39006, 63953, 20845, 63954, 25134, - 63955, 38520, 63956, 20523, 63957, 23833, 63958, 28138, 63959, 36650, 63960, 24459, - 63961, 24900, 63962, 26647, 63963, 29575, 63964, 38534, 63965, 21033, 63966, 21519, - 63967, 23653, 63968, 26131, 63969, 26446, 63970, 26792, 63971, 27877, 63972, 29702, - 63973, 30178, 63974, 32633, 63975, 35023, 63976, 35041, 63977, 37324, 63978, 38626, - 63979, 21311, 63980, 28346, 63981, 21533, 63982, 29136, 63983, 29848, 63984, 34298, - 63985, 38563, 63986, 40023, 63987, 40607, 63988, 26519, 63989, 28107, 63990, 33256, - 63991, 31435, 63992, 31520, 63993, 31890, 63994, 29376, 63995, 28825, 63996, 35672, - 63997, 20160, 63998, 33590, 63999, 21050, 64000, 20999, 64001, 24230, 64002, 25299, - 64003, 31958, 64004, 23429, 64005, 27934, 64006, 26292, 64007, 36667, 64008, 34892, - 64009, 38477, 64010, 35211, 64011, 24275, 64012, 20800, 64013, 21952, 64014, -64015, - 64016, 22618, 64017, 64017, 64018, 26228, 64019, -64020, 64021, 20958, 64022, 29482, - 64023, 30410, 64024, 31036, 64025, 31070, 64026, 31077, 64027, 31119, 64028, 38742, - 64029, 31934, 64030, 32701, 64031, 64031, 64032, 34322, 64033, 64033, 64034, 35576, - 64035, -64036, 64037, 36920, 64038, 37117, 64039, -64040, 64042, 39151, 64043, 39164, - 64044, 39208, 64045, 40372, 64046, 37086, 64047, 38583, 64048, 20398, 64049, 20711, - 64050, 20813, 64051, 21193, 64052, 21220, 64053, 21329, 64054, 21917, 64055, 22022, - 64056, 22120, 64057, 22592, 64058, 22696, 64059, 23652, 64060, 23662, 64061, 24724, - 64062, 24936, 64063, 24974, 64064, 25074, 64065, 25935, 64066, 26082, 64067, 26257, - 64068, 26757, 64069, 28023, 64070, 28186, 64071, 28450, 64072, 29038, 64073, 29227, - 64074, 29730, 64075, 30865, 64076, 31038, 64077, 31049, 64078, 31048, 64079, 31056, - 64080, 31062, 64081, 31069, 64082, -31118, 64084, 31296, 64085, 31361, 64086, 31680, - 64087, 32244, 64088, 32265, 64089, 32321, 64090, 32626, 64091, 32773, 64092, 33261, - 64093, 33401, 64095, 33879, 64096, 35088, 64097, 35222, 64098, 35585, 64099, 35641, - 64100, 36051, 64101, 36104, 64102, 36790, 64103, 36920, 64104, 38627, 64105, 38911, - 64106, 38971, 64107, 24693, 64108, 148206, 64109, 33304, 64110, -64111, 64112, 20006, - 64113, 20917, 64114, 20840, 64115, 20352, 64116, 20805, 64117, 20864, 64118, 21191, - 64119, 21242, 64120, 21917, 64121, 21845, 64122, 21913, 64123, 21986, 64124, 22618, - 64125, 22707, 64126, 22852, 64127, 22868, 64128, 23138, 64129, 23336, 64130, 24274, - 64131, 24281, 64132, 24425, 64133, 24493, 64134, 24792, 64135, 24910, 64136, 24840, - 64137, 24974, 64138, 24928, 64139, 25074, 64140, 25140, 64141, 25540, 64142, 25628, - 64143, 25682, 64144, 25942, 64145, 26228, 64146, 26391, 64147, 26395, 64148, 26454, - 64149, 27513, 64150, 27578, 64151, 27969, 64152, 28379, 64153, 28363, 64154, 28450, - 64155, 28702, 64156, 29038, 64157, 30631, 64158, 29237, 64159, 29359, 64160, 29482, - 64161, 29809, 64162, 29958, 64163, 30011, 64164, 30237, 64165, 30239, 64166, 30410, - 64167, 30427, 64168, 30452, 64169, 30538, 64170, 30528, 64171, 30924, 64172, 31409, - 64173, 31680, 64174, 31867, 64175, 32091, 64176, 32244, 64177, 32574, 64178, 32773, - 64179, 33618, 64180, 33775, 64181, 34681, 64182, 35137, 64183, 35206, 64184, 35222, - 64185, 35519, 64186, 35576, 64187, 35531, 64188, 35585, 64189, 35582, 64190, 35565, - 64191, 35641, 64192, 35722, 64193, 36104, 64194, 36664, 64195, 36978, 64196, 37273, - 64197, 37494, 64198, 38524, 64199, 38627, 64200, 38742, 64201, 38875, 64202, 38911, - 64203, 38923, 64204, 38971, 64205, 39698, 64206, 40860, 64207, 141386, 64208, 141380, - 64209, 144341, 64210, 15261, 64211, 16408, 64212, 16441, 64213, 152137, 64214, 154832, - 64215, 163539, 64216, 40771, 64217, 40846, 64218, -64219, 64285, 1497, 64286, 0, - 64287, 1522, 64288, 1506, 64289, 1488, 64290, -1492, 64292, -1500, 64295, 1512, - 64296, 1514, 64297, 43, 64298, 1513, 64302, 1488, 64305, -1490, 64311, 64311, - 64312, -1497, 64317, 64317, 64318, 1502, 64319, 64319, 64320, -1505, 64322, 64322, - 64323, -1508, 64325, 64325, 64326, -1511, 64331, 1493, 64332, 1489, 64333, 1499, - 64334, 1508, 64335, 64335, 64336, 1649, 64338, 1659, 64342, 1662, 64346, 1664, - 64350, 1658, 64354, 1663, 64358, 1657, 64362, 1700, 64366, 1702, 64370, 1668, - 64374, 1667, 64378, 1670, 64382, 1671, 64386, 1677, 64388, 1676, 64390, 1678, - 64392, 1672, 64394, 1688, 64396, 1681, 64398, 1705, 64402, 1711, 64406, 1715, - 64410, 1713, 64414, 1722, 64416, 1723, 64420, 1749, 64422, 1729, 64426, 1726, - 64430, 1746, 64434, -64435, 64467, 1709, 64471, 1735, 64473, 1734, 64475, 1736, - 64477, 1655, 64478, 1739, 64480, 1733, 64482, 1737, 64484, 1744, 64488, 1609, - 64490, -64491, 64508, 1740, 64512, -64513, 64603, -1585, 64605, 1609, 64606, 32, - 64612, -64613, 64656, 1609, 64657, -64658, 64729, 1607, 64730, -64731, 64754, 1600, - 64757, -64758, 64828, 1575, 64830, -64831, 65024, 0, 65040, 44, 65041, -12290, - 65043, -59, 65045, 33, 65046, 63, 65047, -12311, 65049, 8230, 65050, -65051, - 65056, 0, 65072, 8229, 65073, 8212, 65074, 8211, 65075, 95, 65077, -41, - 65079, 123, 65080, 125, 65081, -12309, 65083, -12305, 65085, -12299, 65087, -12297, - 65089, -12301, 65093, -65094, 65095, 91, 65096, 93, 65097, 32, 65101, 95, - 65104, 44, 65105, 12289, 65106, 46, 65107, 65107, 65108, 59, 65109, 58, - 65110, 63, 65111, 33, 65112, 8212, 65113, -41, 65115, 123, 65116, 125, - 65117, -12309, 65119, 35, 65120, 38, 65121, -43, 65123, 45, 65124, 60, - 65125, 62, 65126, 61, 65127, 65127, 65128, 92, 65129, -37, 65131, 64, - 65132, -65133, 65136, 32, 65137, 1600, 65138, 32, 65139, 65139, 65140, 32, - 65141, 65141, 65142, 32, 65143, 1600, 65144, 32, 65145, 1600, 65146, 32, - 65147, 1600, 65148, 32, 65149, 1600, 65150, 32, 65151, 1600, 65152, 1569, - 65153, 1575, 65157, 1608, 65159, 1575, 65161, 1610, 65165, 1575, 65167, 1576, - 65171, 1577, 65173, 1578, 65177, 1579, 65181, 1580, 65185, 1581, 65189, 1582, - 65193, 1583, 65195, 1584, 65197, 1585, 65199, 1586, 65201, 1587, 65205, 1588, - 65209, 1589, 65213, 1590, 65217, 1591, 65221, 1592, 65225, 1593, 65229, 1594, - 65233, 1601, 65237, 1602, 65241, 1603, 65245, 1604, 65249, 1605, 65253, 1606, - 65257, 1607, 65261, 1608, 65263, 1609, 65265, 1610, 65269, -65270, 65279, 0, - 65280, 65280, 65281, -34, 65375, -10630, 65377, 12290, 65378, -12301, 65380, 12289, - 65381, 12539, 65382, 12530, 65383, 12449, 65384, 12451, 65385, 12453, 65386, 12455, - 65387, 12457, 65388, 12515, 65389, 12517, 65390, 12519, 65391, 12483, 65392, 65392, - 65393, 12450, 65394, 12452, 65395, 12454, 65396, 12456, 65397, -12459, 65399, 12461, - 65400, 12463, 65401, 12465, 65402, 12467, 65403, 12469, 65404, 12471, 65405, 12473, - 65406, 12475, 65407, 12477, 65408, 12479, 65409, 12481, 65410, 12484, 65411, 12486, - 65412, 12488, 65413, -12491, 65419, 12498, 65420, 12501, 65421, 12504, 65422, 12507, - 65423, -12511, 65428, 12516, 65429, 12518, 65430, -12521, 65436, 12527, 65437, 12531, - 65438, -65439, 65440, 4448, 65441, -4353, 65443, 4522, 65444, 4354, 65445, -4525, - 65447, -4356, 65450, -4529, 65456, 4378, 65457, -4359, 65460, 4385, 65461, -4362, - 65471, -65472, 65474, -4450, 65480, -65481, 65482, -4456, 65488, -65489, 65490, -4462, - 65496, -65497, 65498, -4468, 65501, -65502, 65504, -163, 65506, 172, 65507, 32, - 65508, 166, 65509, 165, 65510, 8361, 65511, 65511, 65512, 9474, 65513, -8593, - 65517, 9632, 65518, 9675, 65519, -65520, 65529, 0, 65532, -65533, 66045, 0, - 66046, -66047, 66272, 0, 66273, -66274, 66422, 0, 66427, -66428, 68097, 0, - 68100, 68100, 68101, 0, 68103, -68104, 68108, 0, 68112, -68113, 68152, 0, - 68155, -68156, 68159, 0, 68160, -68161, 68325, 0, 68327, -68328, 68900, 0, - 68904, -68905, 69446, 0, 69457, -69458, 69632, 0, 69635, -69636, 69688, 0, + 43020, -43021, 43043, 0, 43048, -43049, 43052, 0, 43053, -43054, 43136, 0, + 43138, -43139, 43188, 0, 43206, -43207, 43232, 0, 43250, -43251, 43263, 0, + 43264, -43265, 43302, 0, 43310, -43311, 43335, 0, 43348, -43349, 43392, 0, + 43396, -43397, 43443, 0, 43457, -43458, 43493, 0, 43494, -43495, 43561, 0, + 43575, -43576, 43587, 0, 43588, -43589, 43596, 0, 43598, -43599, 43643, 0, + 43646, -43647, 43696, 0, 43697, 43697, 43698, 0, 43701, -43702, 43703, 0, + 43705, -43706, 43710, 0, 43712, 43712, 43713, 0, 43714, -43715, 43755, 0, + 43760, -43761, 43765, 0, 43767, -43768, 43868, 42791, 43869, 43831, 43870, 619, + 43871, 43858, 43872, -43873, 43881, 653, 43882, -43883, 44003, 0, 44011, 44011, + 44012, 0, 44014, -44015, 55296, 0, 57344, -57345, 63744, 35912, 63745, 26356, + 63746, 36554, 63747, 36040, 63748, 28369, 63749, 20018, 63750, 21477, 63751, 40860, + 63753, 22865, 63754, 37329, 63755, 21895, 63756, 22856, 63757, 25078, 63758, 30313, + 63759, 32645, 63760, 34367, 63761, 34746, 63762, 35064, 63763, 37007, 63764, 27138, + 63765, 27931, 63766, 28889, 63767, 29662, 63768, 33853, 63769, 37226, 63770, 39409, + 63771, 20098, 63772, 21365, 63773, 27396, 63774, 29211, 63775, 34349, 63776, 40478, + 63777, 23888, 63778, 28651, 63779, 34253, 63780, 35172, 63781, 25289, 63782, 33240, + 63783, 34847, 63784, 24266, 63785, 26391, 63786, 28010, 63787, 29436, 63788, 37070, + 63789, 20358, 63790, 20919, 63791, 21214, 63792, 25796, 63793, 27347, 63794, 29200, + 63795, 30439, 63796, 32769, 63797, 34310, 63798, 34396, 63799, 36335, 63800, 38706, + 63801, 39791, 63802, 40442, 63803, 30860, 63804, 31103, 63805, 32160, 63806, 33737, + 63807, 37636, 63808, 40575, 63809, 35542, 63810, 22751, 63811, 24324, 63812, 31840, + 63813, 32894, 63814, 29282, 63815, 30922, 63816, 36034, 63817, 38647, 63818, 22744, + 63819, 23650, 63820, 27155, 63821, 28122, 63822, 28431, 63823, 32047, 63824, 32311, + 63825, 38475, 63826, 21202, 63827, 32907, 63828, 20956, 63829, 20940, 63830, 31260, + 63831, 32190, 63832, 33777, 63833, 38517, 63834, 35712, 63835, 25295, 63836, 27138, + 63837, 35582, 63838, 20025, 63839, 23527, 63840, 24594, 63841, 29575, 63842, 30064, + 63843, 21271, 63844, 30971, 63845, 20415, 63846, 24489, 63847, 19981, 63848, 27852, + 63849, 25976, 63850, 32034, 63851, 21443, 63852, 22622, 63853, 30465, 63854, 33865, + 63855, 35498, 63856, 27578, 63857, 36784, 63858, 27784, 63859, 25342, 63860, 33509, + 63861, 25504, 63862, 30053, 63863, 20142, 63864, 20841, 63865, 20937, 63866, 26753, + 63867, 31975, 63868, 33391, 63869, 35538, 63870, 37327, 63871, 21237, 63872, 21570, + 63873, 22899, 63874, 24300, 63875, 26053, 63876, 28670, 63877, 31018, 63878, 38317, + 63879, 39530, 63880, 40599, 63881, 40654, 63882, 21147, 63883, 26310, 63884, 27511, + 63885, 36706, 63886, 24180, 63887, 24976, 63888, 25088, 63889, 25754, 63890, 28451, + 63891, 29001, 63892, 29833, 63893, 31178, 63894, 32244, 63895, 32879, 63896, 36646, + 63897, 34030, 63898, 36899, 63899, 37706, 63900, 21015, 63901, 21155, 63902, 21693, + 63903, 28872, 63904, 35010, 63905, 35498, 63906, 24265, 63907, 24565, 63908, 25467, + 63909, 27566, 63910, 31806, 63911, 29557, 63912, 20196, 63913, 22265, 63914, 23527, + 63915, 23994, 63916, 24604, 63917, 29618, 63918, 29801, 63919, 32666, 63920, 32838, + 63921, 37428, 63922, 38646, 63923, 38728, 63924, 38936, 63925, 20363, 63926, 31150, + 63927, 37300, 63928, 38584, 63929, 24801, 63930, 20102, 63931, 20698, 63932, 23534, + 63933, 23615, 63934, 26009, 63935, 27138, 63936, 29134, 63937, 30274, 63938, 34044, + 63939, 36988, 63940, 40845, 63941, 26248, 63942, 38446, 63943, 21129, 63944, 26491, + 63945, 26611, 63946, 27969, 63947, 28316, 63948, 29705, 63949, 30041, 63950, 30827, + 63951, 32016, 63952, 39006, 63953, 20845, 63954, 25134, 63955, 38520, 63956, 20523, + 63957, 23833, 63958, 28138, 63959, 36650, 63960, 24459, 63961, 24900, 63962, 26647, + 63963, 29575, 63964, 38534, 63965, 21033, 63966, 21519, 63967, 23653, 63968, 26131, + 63969, 26446, 63970, 26792, 63971, 27877, 63972, 29702, 63973, 30178, 63974, 32633, + 63975, 35023, 63976, 35041, 63977, 37324, 63978, 38626, 63979, 21311, 63980, 28346, + 63981, 21533, 63982, 29136, 63983, 29848, 63984, 34298, 63985, 38563, 63986, 40023, + 63987, 40607, 63988, 26519, 63989, 28107, 63990, 33256, 63991, 31435, 63992, 31520, + 63993, 31890, 63994, 29376, 63995, 28825, 63996, 35672, 63997, 20160, 63998, 33590, + 63999, 21050, 64000, 20999, 64001, 24230, 64002, 25299, 64003, 31958, 64004, 23429, + 64005, 27934, 64006, 26292, 64007, 36667, 64008, 34892, 64009, 38477, 64010, 35211, + 64011, 24275, 64012, 20800, 64013, 21952, 64014, -64015, 64016, 22618, 64017, 64017, + 64018, 26228, 64019, -64020, 64021, 20958, 64022, 29482, 64023, 30410, 64024, 31036, + 64025, 31070, 64026, 31077, 64027, 31119, 64028, 38742, 64029, 31934, 64030, 32701, + 64031, 64031, 64032, 34322, 64033, 64033, 64034, 35576, 64035, -64036, 64037, 36920, + 64038, 37117, 64039, -64040, 64042, 39151, 64043, 39164, 64044, 39208, 64045, 40372, + 64046, 37086, 64047, 38583, 64048, 20398, 64049, 20711, 64050, 20813, 64051, 21193, + 64052, 21220, 64053, 21329, 64054, 21917, 64055, 22022, 64056, 22120, 64057, 22592, + 64058, 22696, 64059, 23652, 64060, 23662, 64061, 24724, 64062, 24936, 64063, 24974, + 64064, 25074, 64065, 25935, 64066, 26082, 64067, 26257, 64068, 26757, 64069, 28023, + 64070, 28186, 64071, 28450, 64072, 29038, 64073, 29227, 64074, 29730, 64075, 30865, + 64076, 31038, 64077, 31049, 64078, 31048, 64079, 31056, 64080, 31062, 64081, 31069, + 64082, -31118, 64084, 31296, 64085, 31361, 64086, 31680, 64087, 32244, 64088, 32265, + 64089, 32321, 64090, 32626, 64091, 32773, 64092, 33261, 64093, 33401, 64095, 33879, + 64096, 35088, 64097, 35222, 64098, 35585, 64099, 35641, 64100, 36051, 64101, 36104, + 64102, 36790, 64103, 36920, 64104, 38627, 64105, 38911, 64106, 38971, 64107, 24693, + 64108, 148206, 64109, 33304, 64110, -64111, 64112, 20006, 64113, 20917, 64114, 20840, + 64115, 20352, 64116, 20805, 64117, 20864, 64118, 21191, 64119, 21242, 64120, 21917, + 64121, 21845, 64122, 21913, 64123, 21986, 64124, 22618, 64125, 22707, 64126, 22852, + 64127, 22868, 64128, 23138, 64129, 23336, 64130, 24274, 64131, 24281, 64132, 24425, + 64133, 24493, 64134, 24792, 64135, 24910, 64136, 24840, 64137, 24974, 64138, 24928, + 64139, 25074, 64140, 25140, 64141, 25540, 64142, 25628, 64143, 25682, 64144, 25942, + 64145, 26228, 64146, 26391, 64147, 26395, 64148, 26454, 64149, 27513, 64150, 27578, + 64151, 27969, 64152, 28379, 64153, 28363, 64154, 28450, 64155, 28702, 64156, 29038, + 64157, 30631, 64158, 29237, 64159, 29359, 64160, 29482, 64161, 29809, 64162, 29958, + 64163, 30011, 64164, 30237, 64165, 30239, 64166, 30410, 64167, 30427, 64168, 30452, + 64169, 30538, 64170, 30528, 64171, 30924, 64172, 31409, 64173, 31680, 64174, 31867, + 64175, 32091, 64176, 32244, 64177, 32574, 64178, 32773, 64179, 33618, 64180, 33775, + 64181, 34681, 64182, 35137, 64183, 35206, 64184, 35222, 64185, 35519, 64186, 35576, + 64187, 35531, 64188, 35585, 64189, 35582, 64190, 35565, 64191, 35641, 64192, 35722, + 64193, 36104, 64194, 36664, 64195, 36978, 64196, 37273, 64197, 37494, 64198, 38524, + 64199, 38627, 64200, 38742, 64201, 38875, 64202, 38911, 64203, 38923, 64204, 38971, + 64205, 39698, 64206, 40860, 64207, 141386, 64208, 141380, 64209, 144341, 64210, 15261, + 64211, 16408, 64212, 16441, 64213, 152137, 64214, 154832, 64215, 163539, 64216, 40771, + 64217, 40846, 64218, -64219, 64285, 1497, 64286, 0, 64287, 1522, 64288, 1506, + 64289, 1488, 64290, -1492, 64292, -1500, 64295, 1512, 64296, 1514, 64297, 43, + 64298, 1513, 64302, 1488, 64305, -1490, 64311, 64311, 64312, -1497, 64317, 64317, + 64318, 1502, 64319, 64319, 64320, -1505, 64322, 64322, 64323, -1508, 64325, 64325, + 64326, -1511, 64331, 1493, 64332, 1489, 64333, 1499, 64334, 1508, 64335, 64335, + 64336, 1649, 64338, 1659, 64342, 1662, 64346, 1664, 64350, 1658, 64354, 1663, + 64358, 1657, 64362, 1700, 64366, 1702, 64370, 1668, 64374, 1667, 64378, 1670, + 64382, 1671, 64386, 1677, 64388, 1676, 64390, 1678, 64392, 1672, 64394, 1688, + 64396, 1681, 64398, 1705, 64402, 1711, 64406, 1715, 64410, 1713, 64414, 1722, + 64416, 1723, 64420, 1749, 64422, 1729, 64426, 1726, 64430, 1746, 64434, -64435, + 64467, 1709, 64471, 1735, 64473, 1734, 64475, 1736, 64477, 1655, 64478, 1739, + 64480, 1733, 64482, 1737, 64484, 1744, 64488, 1609, 64490, -64491, 64508, 1740, + 64512, -64513, 64603, -1585, 64605, 1609, 64606, 32, 64612, -64613, 64656, 1609, + 64657, -64658, 64729, 1607, 64730, -64731, 64754, 1600, 64757, -64758, 64828, 1575, + 64830, -64831, 65024, 0, 65040, 44, 65041, -12290, 65043, -59, 65045, 33, + 65046, 63, 65047, -12311, 65049, 8230, 65050, -65051, 65056, 0, 65072, 8229, + 65073, 8212, 65074, 8211, 65075, 95, 65077, -41, 65079, 123, 65080, 125, + 65081, -12309, 65083, -12305, 65085, -12299, 65087, -12297, 65089, -12301, 65093, -65094, + 65095, 91, 65096, 93, 65097, 32, 65101, 95, 65104, 44, 65105, 12289, + 65106, 46, 65107, 65107, 65108, 59, 65109, 58, 65110, 63, 65111, 33, + 65112, 8212, 65113, -41, 65115, 123, 65116, 125, 65117, -12309, 65119, 35, + 65120, 38, 65121, -43, 65123, 45, 65124, 60, 65125, 62, 65126, 61, + 65127, 65127, 65128, 92, 65129, -37, 65131, 64, 65132, -65133, 65136, 32, + 65137, 1600, 65138, 32, 65139, 65139, 65140, 32, 65141, 65141, 65142, 32, + 65143, 1600, 65144, 32, 65145, 1600, 65146, 32, 65147, 1600, 65148, 32, + 65149, 1600, 65150, 32, 65151, 1600, 65152, 1569, 65153, 1575, 65157, 1608, + 65159, 1575, 65161, 1610, 65165, 1575, 65167, 1576, 65171, 1577, 65173, 1578, + 65177, 1579, 65181, 1580, 65185, 1581, 65189, 1582, 65193, 1583, 65195, 1584, + 65197, 1585, 65199, 1586, 65201, 1587, 65205, 1588, 65209, 1589, 65213, 1590, + 65217, 1591, 65221, 1592, 65225, 1593, 65229, 1594, 65233, 1601, 65237, 1602, + 65241, 1603, 65245, 1604, 65249, 1605, 65253, 1606, 65257, 1607, 65261, 1608, + 65263, 1609, 65265, 1610, 65269, -65270, 65279, 0, 65280, 65280, 65281, -34, + 65375, -10630, 65377, 12290, 65378, -12301, 65380, 12289, 65381, 12539, 65382, 12530, + 65383, 12449, 65384, 12451, 65385, 12453, 65386, 12455, 65387, 12457, 65388, 12515, + 65389, 12517, 65390, 12519, 65391, 12483, 65392, 65392, 65393, 12450, 65394, 12452, + 65395, 12454, 65396, 12456, 65397, -12459, 65399, 12461, 65400, 12463, 65401, 12465, + 65402, 12467, 65403, 12469, 65404, 12471, 65405, 12473, 65406, 12475, 65407, 12477, + 65408, 12479, 65409, 12481, 65410, 12484, 65411, 12486, 65412, 12488, 65413, -12491, + 65419, 12498, 65420, 12501, 65421, 12504, 65422, 12507, 65423, -12511, 65428, 12516, + 65429, 12518, 65430, -12521, 65436, 12527, 65437, 12531, 65438, -65439, 65440, 4448, + 65441, -4353, 65443, 4522, 65444, 4354, 65445, -4525, 65447, -4356, 65450, -4529, + 65456, 4378, 65457, -4359, 65460, 4385, 65461, -4362, 65471, -65472, 65474, -4450, + 65480, -65481, 65482, -4456, 65488, -65489, 65490, -4462, 65496, -65497, 65498, -4468, + 65501, -65502, 65504, -163, 65506, 172, 65507, 32, 65508, 166, 65509, 165, + 65510, 8361, 65511, 65511, 65512, 9474, 65513, -8593, 65517, 9632, 65518, 9675, + 65519, -65520, 65529, 0, 65532, -65533, 66045, 0, 66046, -66047, 66272, 0, + 66273, -66274, 66422, 0, 66427, -66428, 68097, 0, 68100, 68100, 68101, 0, + 68103, -68104, 68108, 0, 68112, -68113, 68152, 0, 68155, -68156, 68159, 0, + 68160, -68161, 68325, 0, 68327, -68328, 68900, 0, 68904, -68905, 69291, 0, + 69293, -69294, 69446, 0, 69457, -69458, 69632, 0, 69635, -69636, 69688, 0, 69703, -69704, 69759, 0, 69763, -69764, 69786, 2097154, 69790, -69791, 69803, 69797, 69804, -69805, 69808, 0, 69819, -69820, 69821, 0, 69822, -69823, 69837, 0, 69838, -69839, 69888, 0, 69891, -69892, 69927, 0, 69941, -69942, 69957, 0, 69959, -69960, 70003, 0, 70004, -70005, 70016, 0, 70019, -70020, 70067, 0, - 70081, -70082, 70089, 0, 70093, -70094, 70188, 0, 70200, -70201, 70206, 0, - 70207, -70208, 70367, 0, 70379, -70380, 70400, 0, 70404, -70405, 70459, 0, - 70461, 70461, 70462, 0, 70469, -70470, 70471, 0, 70473, -70474, 70475, 0, - 70478, -70479, 70487, 0, 70488, -70489, 70498, 0, 70500, -70501, 70502, 0, - 70509, -70510, 70512, 0, 70517, -70518, 70709, 0, 70727, -70728, 70750, 0, - 70751, -70752, 70832, 0, 70852, -70853, 71087, 0, 71094, -71095, 71096, 0, - 71105, -71106, 71132, 0, 71134, -71135, 71216, 0, 71233, -71234, 71339, 0, - 71352, -71353, 71453, 0, 71468, -71469, 71724, 0, 71739, -71740, 72145, 0, + 70081, -70082, 70089, 0, 70093, 70093, 70094, 0, 70096, -70097, 70188, 0, + 70200, -70201, 70206, 0, 70207, -70208, 70367, 0, 70379, -70380, 70400, 0, + 70404, -70405, 70459, 0, 70461, 70461, 70462, 0, 70469, -70470, 70471, 0, + 70473, -70474, 70475, 0, 70478, -70479, 70487, 0, 70488, -70489, 70498, 0, + 70500, -70501, 70502, 0, 70509, -70510, 70512, 0, 70517, -70518, 70709, 0, + 70727, -70728, 70750, 0, 70751, -70752, 70832, 0, 70852, -70853, 71087, 0, + 71094, -71095, 71096, 0, 71105, -71106, 71132, 0, 71134, -71135, 71216, 0, + 71233, -71234, 71339, 0, 71352, -71353, 71453, 0, 71468, -71469, 71724, 0, + 71739, -71740, 71984, 0, 71990, 71990, 71991, 0, 71993, -71994, 71995, 0, + 71999, 71999, 72000, 0, 72001, 72001, 72002, 0, 72004, -72005, 72145, 0, 72152, -72153, 72154, 0, 72161, -72162, 72164, 0, 72165, -72166, 72193, 0, 72203, -72204, 72243, 0, 72250, 72250, 72251, 0, 72255, -72256, 72263, 0, 72264, -72265, 72273, 0, 72284, -72285, 72330, 0, 72346, -72347, 72751, 0, @@ -993,72 +1002,73 @@ static const int32 without_diacritics_ranges[] = { 73103, 73103, 73104, 0, 73106, 73106, 73107, 0, 73112, -73113, 73459, 0, 73463, -73464, 78896, 0, 78905, -78906, 92912, 0, 92917, -92918, 92976, 0, 92983, -92984, 94031, 0, 94032, 94032, 94033, 0, 94088, -94089, 94095, 0, - 94099, -94100, 113821, 0, 113823, 113823, 113824, 0, 113828, -113829, 119134, -119128, - 119136, 119128, 119141, 0, 119146, -119147, 119149, 0, 119171, -119172, 119173, 0, - 119180, -119181, 119210, 0, 119214, -119215, 119227, -119226, 119229, -119226, 119231, -119226, - 119233, -119234, 119362, 0, 119365, -119366, 119808, -66, 119834, -98, 119860, -66, - 119886, -98, 119893, 119893, 119894, -106, 119912, -66, 119938, -98, 119964, 65, - 119965, 119965, 119966, -68, 119968, -119969, 119970, 71, 119971, -119972, 119973, -75, - 119975, -119976, 119977, -79, 119981, 119981, 119982, -84, 119990, -98, 119994, 119994, - 119995, 102, 119996, 119996, 119997, -105, 120004, 120004, 120005, -113, 120016, -66, - 120042, -98, 120068, -66, 120070, 120070, 120071, -69, 120075, -120076, 120077, -75, - 120085, 120085, 120086, -84, 120093, 120093, 120094, -98, 120120, -66, 120122, 120122, - 120123, -69, 120127, 120127, 120128, -74, 120133, 120133, 120134, 79, 120135, -120136, - 120138, -84, 120145, 120145, 120146, -98, 120172, -66, 120198, -98, 120224, -66, - 120250, -98, 120276, -66, 120302, -98, 120328, -66, 120354, -98, 120380, -66, - 120406, -98, 120432, -66, 120458, -98, 120484, 305, 120485, 567, 120486, -120487, - 120488, -914, 120505, 920, 120506, -932, 120513, 8711, 120514, -946, 120539, 8706, - 120540, 949, 120541, 952, 120542, 954, 120543, 966, 120544, 961, 120545, 960, - 120546, -914, 120563, 920, 120564, -932, 120571, 8711, 120572, -946, 120597, 8706, - 120598, 949, 120599, 952, 120600, 954, 120601, 966, 120602, 961, 120603, 960, - 120604, -914, 120621, 920, 120622, -932, 120629, 8711, 120630, -946, 120655, 8706, - 120656, 949, 120657, 952, 120658, 954, 120659, 966, 120660, 961, 120661, 960, - 120662, -914, 120679, 920, 120680, -932, 120687, 8711, 120688, -946, 120713, 8706, - 120714, 949, 120715, 952, 120716, 954, 120717, 966, 120718, 961, 120719, 960, - 120720, -914, 120737, 920, 120738, -932, 120745, 8711, 120746, -946, 120771, 8706, - 120772, 949, 120773, 952, 120774, 954, 120775, 966, 120776, 961, 120777, 960, - 120778, -989, 120780, -120781, 120782, -49, 120792, -49, 120802, -49, 120812, -49, - 120822, -49, 120832, -120833, 121344, 0, 121399, -121400, 121403, 0, 121453, -121454, - 121461, 0, 121462, -121463, 121476, 0, 121477, -121478, 121499, 0, 121504, 121504, - 121505, 0, 121520, -121521, 122880, 0, 122887, 122887, 122888, 0, 122905, -122906, - 122907, 0, 122914, 122914, 122915, 0, 122917, 122917, 122918, 0, 122923, -122924, - 123184, 0, 123191, -123192, 123628, 0, 123632, -123633, 125136, 0, 125143, -125144, - 125252, 0, 125259, -125260, 126464, -1576, 126466, 1580, 126467, 1583, 126468, 126468, - 126469, 1608, 126470, 1586, 126471, 1581, 126472, 1591, 126473, 1610, 126474, -1604, - 126478, 1587, 126479, 1593, 126480, 1601, 126481, 1589, 126482, 1602, 126483, 1585, - 126484, 1588, 126485, -1579, 126487, 1582, 126488, 1584, 126489, 1590, 126490, 1592, - 126491, 1594, 126492, 1646, 126493, 1722, 126494, 1697, 126495, 1647, 126496, 126496, - 126497, 1576, 126498, 1580, 126499, 126499, 126500, 1607, 126501, -126502, 126503, 1581, - 126504, 126504, 126505, 1610, 126506, -1604, 126510, 1587, 126511, 1593, 126512, 1601, - 126513, 1589, 126514, 1602, 126515, 126515, 126516, 1588, 126517, -1579, 126519, 1582, - 126520, 126520, 126521, 1590, 126522, 126522, 126523, 1594, 126524, -126525, 126530, 1580, - 126531, -126532, 126535, 1581, 126536, 126536, 126537, 1610, 126538, 126538, 126539, 1604, - 126540, 126540, 126541, 1606, 126542, 1587, 126543, 1593, 126544, 126544, 126545, 1589, - 126546, 1602, 126547, 126547, 126548, 1588, 126549, -126550, 126551, 1582, 126552, 126552, - 126553, 1590, 126554, 126554, 126555, 1594, 126556, 126556, 126557, 1722, 126558, 126558, - 126559, 1647, 126560, 126560, 126561, 1576, 126562, 1580, 126563, 126563, 126564, 1607, - 126565, -126566, 126567, 1581, 126568, 1591, 126569, 1610, 126570, 1603, 126571, 126571, - 126572, -1606, 126574, 1587, 126575, 1593, 126576, 1601, 126577, 1589, 126578, 1602, - 126579, 126579, 126580, 1588, 126581, -1579, 126583, 1582, 126584, 126584, 126585, 1590, - 126586, 1592, 126587, 1594, 126588, 1646, 126589, 126589, 126590, 1697, 126591, 126591, - 126592, -1576, 126594, 1580, 126595, 1583, 126596, -1608, 126598, 1586, 126599, 1581, - 126600, 1591, 126601, 1610, 126602, 126602, 126603, -1605, 126606, 1587, 126607, 1593, - 126608, 1601, 126609, 1589, 126610, 1602, 126611, 1585, 126612, 1588, 126613, -1579, - 126615, 1582, 126616, 1584, 126617, 1590, 126618, 1592, 126619, 1594, 126620, -126621, - 126625, 1576, 126626, 1580, 126627, 1583, 126628, 126628, 126629, 1608, 126630, 1586, - 126631, 1581, 126632, 1591, 126633, 1610, 126634, 126634, 126635, -1605, 126638, 1587, - 126639, 1593, 126640, 1601, 126641, 1589, 126642, 1602, 126643, 1585, 126644, 1588, - 126645, -1579, 126647, 1582, 126648, 1584, 126649, 1590, 126650, 1592, 126651, 1594, - 126652, -126653, 127232, 48, 127234, -50, 127243, -127244, 127275, 67, 127276, 82, - 127277, -127278, 127280, -66, 127306, -127307, 127490, 12469, 127491, -127492, 127504, 25163, - 127505, 23383, 127506, 21452, 127507, 12486, 127508, 20108, 127509, 22810, 127510, 35299, - 127511, 22825, 127512, 20132, 127513, 26144, 127514, 28961, 127515, 26009, 127516, 21069, - 127517, 24460, 127518, 20877, 127519, 26032, 127520, 21021, 127521, 32066, 127522, 29983, - 127523, 36009, 127524, 22768, 127525, 21561, 127526, 28436, 127527, 25237, 127528, 25429, - 127529, 19968, 127530, 19977, 127531, 36938, 127532, 24038, 127533, 20013, 127534, 21491, - 127535, 25351, 127536, 36208, 127537, 25171, 127538, 31105, 127539, 31354, 127540, 21512, - 127541, 28288, 127542, 26377, 127543, 26376, 127544, 30003, 127545, 21106, 127546, 21942, - 127547, 37197, 127548, -127549, 127568, 24471, 127569, 21487, 127570, -127571, 194560, 20029, + 94099, -94100, 94180, 0, 94181, -94182, 94192, 0, 94194, -94195, 113821, 0, + 113823, 113823, 113824, 0, 113828, -113829, 119134, -119128, 119136, 119128, 119141, 0, + 119146, -119147, 119149, 0, 119171, -119172, 119173, 0, 119180, -119181, 119210, 0, + 119214, -119215, 119227, -119226, 119229, -119226, 119231, -119226, 119233, -119234, 119362, 0, + 119365, -119366, 119808, -66, 119834, -98, 119860, -66, 119886, -98, 119893, 119893, + 119894, -106, 119912, -66, 119938, -98, 119964, 65, 119965, 119965, 119966, -68, + 119968, -119969, 119970, 71, 119971, -119972, 119973, -75, 119975, -119976, 119977, -79, + 119981, 119981, 119982, -84, 119990, -98, 119994, 119994, 119995, 102, 119996, 119996, + 119997, -105, 120004, 120004, 120005, -113, 120016, -66, 120042, -98, 120068, -66, + 120070, 120070, 120071, -69, 120075, -120076, 120077, -75, 120085, 120085, 120086, -84, + 120093, 120093, 120094, -98, 120120, -66, 120122, 120122, 120123, -69, 120127, 120127, + 120128, -74, 120133, 120133, 120134, 79, 120135, -120136, 120138, -84, 120145, 120145, + 120146, -98, 120172, -66, 120198, -98, 120224, -66, 120250, -98, 120276, -66, + 120302, -98, 120328, -66, 120354, -98, 120380, -66, 120406, -98, 120432, -66, + 120458, -98, 120484, 305, 120485, 567, 120486, -120487, 120488, -914, 120505, 920, + 120506, -932, 120513, 8711, 120514, -946, 120539, 8706, 120540, 949, 120541, 952, + 120542, 954, 120543, 966, 120544, 961, 120545, 960, 120546, -914, 120563, 920, + 120564, -932, 120571, 8711, 120572, -946, 120597, 8706, 120598, 949, 120599, 952, + 120600, 954, 120601, 966, 120602, 961, 120603, 960, 120604, -914, 120621, 920, + 120622, -932, 120629, 8711, 120630, -946, 120655, 8706, 120656, 949, 120657, 952, + 120658, 954, 120659, 966, 120660, 961, 120661, 960, 120662, -914, 120679, 920, + 120680, -932, 120687, 8711, 120688, -946, 120713, 8706, 120714, 949, 120715, 952, + 120716, 954, 120717, 966, 120718, 961, 120719, 960, 120720, -914, 120737, 920, + 120738, -932, 120745, 8711, 120746, -946, 120771, 8706, 120772, 949, 120773, 952, + 120774, 954, 120775, 966, 120776, 961, 120777, 960, 120778, -989, 120780, -120781, + 120782, -49, 120792, -49, 120802, -49, 120812, -49, 120822, -49, 120832, -120833, + 121344, 0, 121399, -121400, 121403, 0, 121453, -121454, 121461, 0, 121462, -121463, + 121476, 0, 121477, -121478, 121499, 0, 121504, 121504, 121505, 0, 121520, -121521, + 122880, 0, 122887, 122887, 122888, 0, 122905, -122906, 122907, 0, 122914, 122914, + 122915, 0, 122917, 122917, 122918, 0, 122923, -122924, 123184, 0, 123191, -123192, + 123628, 0, 123632, -123633, 125136, 0, 125143, -125144, 125252, 0, 125259, -125260, + 126464, -1576, 126466, 1580, 126467, 1583, 126468, 126468, 126469, 1608, 126470, 1586, + 126471, 1581, 126472, 1591, 126473, 1610, 126474, -1604, 126478, 1587, 126479, 1593, + 126480, 1601, 126481, 1589, 126482, 1602, 126483, 1585, 126484, 1588, 126485, -1579, + 126487, 1582, 126488, 1584, 126489, 1590, 126490, 1592, 126491, 1594, 126492, 1646, + 126493, 1722, 126494, 1697, 126495, 1647, 126496, 126496, 126497, 1576, 126498, 1580, + 126499, 126499, 126500, 1607, 126501, -126502, 126503, 1581, 126504, 126504, 126505, 1610, + 126506, -1604, 126510, 1587, 126511, 1593, 126512, 1601, 126513, 1589, 126514, 1602, + 126515, 126515, 126516, 1588, 126517, -1579, 126519, 1582, 126520, 126520, 126521, 1590, + 126522, 126522, 126523, 1594, 126524, -126525, 126530, 1580, 126531, -126532, 126535, 1581, + 126536, 126536, 126537, 1610, 126538, 126538, 126539, 1604, 126540, 126540, 126541, 1606, + 126542, 1587, 126543, 1593, 126544, 126544, 126545, 1589, 126546, 1602, 126547, 126547, + 126548, 1588, 126549, -126550, 126551, 1582, 126552, 126552, 126553, 1590, 126554, 126554, + 126555, 1594, 126556, 126556, 126557, 1722, 126558, 126558, 126559, 1647, 126560, 126560, + 126561, 1576, 126562, 1580, 126563, 126563, 126564, 1607, 126565, -126566, 126567, 1581, + 126568, 1591, 126569, 1610, 126570, 1603, 126571, 126571, 126572, -1606, 126574, 1587, + 126575, 1593, 126576, 1601, 126577, 1589, 126578, 1602, 126579, 126579, 126580, 1588, + 126581, -1579, 126583, 1582, 126584, 126584, 126585, 1590, 126586, 1592, 126587, 1594, + 126588, 1646, 126589, 126589, 126590, 1697, 126591, 126591, 126592, -1576, 126594, 1580, + 126595, 1583, 126596, -1608, 126598, 1586, 126599, 1581, 126600, 1591, 126601, 1610, + 126602, 126602, 126603, -1605, 126606, 1587, 126607, 1593, 126608, 1601, 126609, 1589, + 126610, 1602, 126611, 1585, 126612, 1588, 126613, -1579, 126615, 1582, 126616, 1584, + 126617, 1590, 126618, 1592, 126619, 1594, 126620, -126621, 126625, 1576, 126626, 1580, + 126627, 1583, 126628, 126628, 126629, 1608, 126630, 1586, 126631, 1581, 126632, 1591, + 126633, 1610, 126634, 126634, 126635, -1605, 126638, 1587, 126639, 1593, 126640, 1601, + 126641, 1589, 126642, 1602, 126643, 1585, 126644, 1588, 126645, -1579, 126647, 1582, + 126648, 1584, 126649, 1590, 126650, 1592, 126651, 1594, 126652, -126653, 127232, 48, + 127234, -50, 127243, -127244, 127275, 67, 127276, 82, 127277, -127278, 127280, -66, + 127306, -127307, 127490, 12469, 127491, -127492, 127504, 25163, 127505, 23383, 127506, 21452, + 127507, 12486, 127508, 20108, 127509, 22810, 127510, 35299, 127511, 22825, 127512, 20132, + 127513, 26144, 127514, 28961, 127515, 26009, 127516, 21069, 127517, 24460, 127518, 20877, + 127519, 26032, 127520, 21021, 127521, 32066, 127522, 29983, 127523, 36009, 127524, 22768, + 127525, 21561, 127526, 28436, 127527, 25237, 127528, 25429, 127529, 19968, 127530, 19977, + 127531, 36938, 127532, 24038, 127533, 20013, 127534, 21491, 127535, 25351, 127536, 36208, + 127537, 25171, 127538, 31105, 127539, 31354, 127540, 21512, 127541, 28288, 127542, 26377, + 127543, 26376, 127544, 30003, 127545, 21106, 127546, 21942, 127547, 37197, 127548, -127549, + 127568, 24471, 127569, 21487, 127570, -127571, 130032, -49, 130042, -130043, 194560, 20029, 194561, 20024, 194562, 20033, 194563, 131362, 194564, 20320, 194565, 20398, 194566, 20411, 194567, 20482, 194568, 20602, 194569, 20633, 194570, 20711, 194571, 20687, 194572, 13470, 194573, 132666, 194574, 20813, 194575, 20820, 194576, 20836, 194577, 20855, 194578, 132380,