/rust/registry/src/index.crates.io-6f17d22bba15001f/unicase-2.8.1/src/unicode/map.rs
Line | Count | Source (jump to first uncovered line) |
1 | | // Generated by scripts/mapgen.py |
2 | | // 2024-10-18 |
3 | | |
4 | | use super::fold::Fold; |
5 | | |
6 | | use core::char; |
7 | 9.71M | pub fn lookup(orig: char) -> Fold { |
8 | 9.71M | // The code below is is intended to reduce the binary size from that of a simple 1:1 lookup table. |
9 | 9.71M | // It exploits two facts: |
10 | 9.71M | // 1. Many of the mappings form ranges mapped to other ranges. |
11 | 9.71M | // To benefit from this, we match on ranges instead of single numbers. |
12 | 9.71M | // Alone, this decreases the binary size but results in performance regression over the simple 1:1 lookup. |
13 | 9.71M | // 2. Most of the mappings are from relatively small chars (0 - 0x2CFF). |
14 | 9.71M | // To benefit from this, we use a jump table based on the high byte for this range. |
15 | 9.71M | // This more than recovers the performance regression from exploting fact #1, at least in the tested benchmark. |
16 | 9.71M | let from = orig as u32; |
17 | 9.71M | if from <= 0x2CFF { |
18 | 9.61M | let from = from as u16; |
19 | 9.61M | let high_byte = (from >> 8) as u8; |
20 | 9.61M | let low_byte = (from & 0xff) as u8; |
21 | 9.61M | let single_char: u16 = match high_byte { |
22 | 8.07M | 0x00 => match low_byte { |
23 | 8.74M | x @ _ if 0x41 <= x && x <= 0x5a => from.wrapping_add(0x0020), |
24 | 216 | 0xb5 => 0x03bc, |
25 | 8.08M | x @ _ if 0xc0 <= x && x <= 0xd6 => from.wrapping_add(0x0020), |
26 | 8.07M | x @ _ if 0xd8 <= x && x <= 0xde => from.wrapping_add(0x0020), |
27 | 737 | 0xdf => return Fold::Two('\u{0073}', '\u{0073}'), |
28 | 8.07M | _ => from, |
29 | | }, |
30 | 10.9k | 0x01 => match low_byte { |
31 | 200k | x @ _ if x <= 0x2e => from | 1, |
32 | 6.70k | 0x30 => return Fold::Two('\u{0069}', '\u{0307}'), |
33 | 190k | x @ _ if 0x32 <= x && x <= 0x36 => from | 1, |
34 | 189k | x @ _ if 0x39 <= x && x <= 0x47 => (from + 1) & !1, |
35 | 1.18k | 0x49 => return Fold::Two('\u{02bc}', '\u{006e}'), |
36 | 187k | x @ _ if 0x4a <= x && x <= 0x76 => from | 1, |
37 | 4.36k | 0x78 => 0x00ff, |
38 | 182k | x @ _ if 0x79 <= x && x <= 0x7d => (from + 1) & !1, |
39 | 1.18k | 0x7f => 0x0073, |
40 | 964 | 0x81 => 0x0253, |
41 | 179k | x @ _ if 0x82 <= x && x <= 0x84 => from | 1, |
42 | 1.23k | 0x86 => 0x0254, |
43 | 14.6k | 0x87 => 0x0188, |
44 | 163k | x @ _ if 0x89 <= x && x <= 0x8a => from.wrapping_add(0x00cd), |
45 | 1.05k | 0x8b => 0x018c, |
46 | 836 | 0x8e => 0x01dd, |
47 | 1.95k | 0x8f => 0x0259, |
48 | 573 | 0x90 => 0x025b, |
49 | 48.6k | 0x91 => 0x0192, |
50 | 10.7k | 0x93 => 0x0260, |
51 | 636 | 0x94 => 0x0263, |
52 | 317 | 0x96 => 0x0269, |
53 | 2.43k | 0x97 => 0x0268, |
54 | 677 | 0x98 => 0x0199, |
55 | 1.41k | 0x9c => 0x026f, |
56 | 1.19k | 0x9d => 0x0272, |
57 | 854 | 0x9f => 0x0275, |
58 | 90.6k | x @ _ if 0xa0 <= x && x <= 0xa4 => from | 1, |
59 | 2.64k | 0xa6 => 0x0280, |
60 | 427 | 0xa7 => 0x01a8, |
61 | 780 | 0xa9 => 0x0283, |
62 | 661 | 0xac => 0x01ad, |
63 | 220 | 0xae => 0x0288, |
64 | 686 | 0xaf => 0x01b0, |
65 | 81.1k | x @ _ if 0xb1 <= x && x <= 0xb2 => from.wrapping_add(0x00d9), |
66 | 78.5k | x @ _ if 0xb3 <= x && x <= 0xb5 => (from + 1) & !1, |
67 | 1.04k | 0xb7 => 0x0292, |
68 | 733 | 0xb8 => 0x01b9, |
69 | 601 | 0xbc => 0x01bd, |
70 | 412 | 0xc4 => 0x01c6, |
71 | 267 | 0xc5 => 0x01c6, |
72 | 973 | 0xc7 => 0x01c9, |
73 | 4.90k | 0xc8 => 0x01c9, |
74 | 618 | 0xca => 0x01cc, |
75 | 67.1k | x @ _ if 0xcb <= x && x <= 0xdb => (from + 1) & !1, |
76 | 55.0k | x @ _ if 0xde <= x && x <= 0xee => from | 1, |
77 | 461 | 0xf0 => return Fold::Two('\u{006a}', '\u{030c}'), |
78 | 1.42k | 0xf1 => 0x01f3, |
79 | 14.4k | x @ _ if 0xf2 <= x && x <= 0xf4 => from | 1, |
80 | 539 | 0xf6 => 0x0195, |
81 | 1.60k | 0xf7 => 0x01bf, |
82 | 55 | x @ _ if 0xf8 <= x => from | 1, |
83 | 10.8k | _ => from, |
84 | | }, |
85 | 52.9k | 0x02 => match low_byte { |
86 | 89.3k | x @ _ if x <= 0x1e => from | 1, |
87 | 437 | 0x20 => 0x019e, |
88 | 85.5k | x @ _ if 0x22 <= x && x <= 0x32 => from | 1, |
89 | 1.05k | 0x3a => 0x2c65, |
90 | 1.76k | 0x3b => 0x023c, |
91 | 505 | 0x3d => 0x019a, |
92 | 210 | 0x3e => 0x2c66, |
93 | 1.65k | 0x41 => 0x0242, |
94 | 249 | 0x43 => 0x0180, |
95 | 2.24k | 0x44 => 0x0289, |
96 | 24.1k | 0x45 => 0x028c, |
97 | 52.9k | x @ _ if 0x46 <= x && x <= 0x4e => from | 1, |
98 | 52.9k | _ => from, |
99 | | }, |
100 | 10.0k | 0x03 => match low_byte { |
101 | 1.46k | 0x45 => 0x03b9, |
102 | 109k | x @ _ if 0x70 <= x && x <= 0x72 => from | 1, |
103 | 13.3k | 0x76 => 0x0377, |
104 | 203 | 0x7f => 0x03f3, |
105 | 253 | 0x86 => 0x03ac, |
106 | 89.8k | x @ _ if 0x88 <= x && x <= 0x8a => from.wrapping_add(0x0025), |
107 | 629 | 0x8c => 0x03cc, |
108 | 86.6k | x @ _ if 0x8e <= x && x <= 0x8f => from.wrapping_add(0x003f), |
109 | 2.63k | 0x90 => return Fold::Three('\u{03b9}', '\u{0308}', '\u{0301}'), |
110 | 83.2k | x @ _ if 0x91 <= x && x <= 0xa1 => from.wrapping_add(0x0020), |
111 | 80.8k | x @ _ if 0xa3 <= x && x <= 0xab => from.wrapping_add(0x0020), |
112 | 656 | 0xb0 => return Fold::Three('\u{03c5}', '\u{0308}', '\u{0301}'), |
113 | 219 | 0xc2 => 0x03c3, |
114 | 26.7k | 0xcf => 0x03d7, |
115 | 1.39k | 0xd0 => 0x03b2, |
116 | 529 | 0xd1 => 0x03b8, |
117 | 260 | 0xd5 => 0x03c6, |
118 | 13.8k | 0xd6 => 0x03c0, |
119 | 36.0k | x @ _ if 0xd8 <= x && x <= 0xee => from | 1, |
120 | 2.40k | 0xf0 => 0x03ba, |
121 | 966 | 0xf1 => 0x03c1, |
122 | 724 | 0xf4 => 0x03b8, |
123 | 17.9k | 0xf5 => 0x03b5, |
124 | 261 | 0xf7 => 0x03f8, |
125 | 2.82k | 0xf9 => 0x03f2, |
126 | 264 | 0xfa => 0x03fb, |
127 | 1.17k | x @ _ if 0xfd <= x => from.wrapping_sub(0x0082), |
128 | 8.92k | _ => from, |
129 | | }, |
130 | 40.6k | 0x04 => match low_byte { |
131 | 61.1k | x @ _ if x <= 0x0f => from.wrapping_add(0x0050), |
132 | 58.5k | x @ _ if 0x10 <= x && x <= 0x2f => from.wrapping_add(0x0020), |
133 | 57.2k | x @ _ if 0x60 <= x && x <= 0x80 => from | 1, |
134 | 46.3k | x @ _ if 0x8a <= x && x <= 0xbe => from | 1, |
135 | 867 | 0xc0 => 0x04cf, |
136 | 44.3k | x @ _ if 0xc1 <= x && x <= 0xcd => (from + 1) & !1, |
137 | 2.65k | x @ _ if 0xd0 <= x => from | 1, |
138 | 37.9k | _ => from, |
139 | | }, |
140 | 7.95k | 0x05 => match low_byte { |
141 | 13.0k | x @ _ if x <= 0x2e => from | 1, |
142 | 7.95k | x @ _ if 0x31 <= x && x <= 0x56 => from.wrapping_add(0x0030), |
143 | 1.22k | 0x87 => return Fold::Two('\u{0565}', '\u{0582}'), |
144 | 5.93k | _ => from, |
145 | | }, |
146 | 1.57k | 0x06 => from, |
147 | 29.5k | 0x07 => from, |
148 | 419 | 0x08 => from, |
149 | 263 | 0x09 => from, |
150 | 1.34k | 0x0a => from, |
151 | 355 | 0x0b => from, |
152 | 298 | 0x0c => from, |
153 | 216 | 0x0d => from, |
154 | 6.60k | 0x0e => from, |
155 | 27.0k | 0x0f => from, |
156 | 8.50k | 0x10 => match low_byte { |
157 | 8.50k | x @ _ if 0xa0 <= x && x <= 0xc5 => from.wrapping_add(0x1c60), |
158 | 290 | 0xc7 => 0x2d27, |
159 | 208 | 0xcd => 0x2d2d, |
160 | 7.55k | _ => from, |
161 | | }, |
162 | 495 | 0x11 => from, |
163 | 404 | 0x12 => from, |
164 | 30.3k | 0x13 => match low_byte { |
165 | 30.3k | x @ _ if 0xf8 <= x && x <= 0xfd => from.wrapping_sub(0x0008), |
166 | 30.3k | _ => from, |
167 | | }, |
168 | 372 | 0x14 => from, |
169 | 321 | 0x15 => from, |
170 | 5.25k | 0x16 => from, |
171 | 296 | 0x17 => from, |
172 | 13.1k | 0x18 => from, |
173 | 3.01k | 0x19 => from, |
174 | 2.22k | 0x1a => from, |
175 | 1.27k | 0x1b => from, |
176 | 1.06k | 0x1c => match low_byte { |
177 | 209 | 0x80 => 0x0432, |
178 | 414 | 0x81 => 0x0434, |
179 | 11.2k | 0x82 => 0x043e, |
180 | 8.81k | x @ _ if 0x83 <= x && x <= 0x84 => from.wrapping_sub(0x1842), |
181 | 615 | 0x85 => 0x0442, |
182 | 494 | 0x86 => 0x044a, |
183 | 236 | 0x87 => 0x0463, |
184 | 2.53k | 0x88 => 0xa64b, |
185 | 283 | 0x89 => 0x1c8a, |
186 | 1.27k | x @ _ if 0x90 <= x && x <= 0xba => from.wrapping_sub(0x0bc0), |
187 | 1.06k | x @ _ if 0xbd <= x && x <= 0xbf => from.wrapping_sub(0x0bc0), |
188 | 1.06k | _ => from, |
189 | | }, |
190 | 2.54k | 0x1d => from, |
191 | 1.43k | 0x1e => match low_byte { |
192 | 8.07k | x @ _ if x <= 0x94 => from | 1, |
193 | 1.96k | 0x96 => return Fold::Two('\u{0068}', '\u{0331}'), |
194 | 545 | 0x97 => return Fold::Two('\u{0074}', '\u{0308}'), |
195 | 203 | 0x98 => return Fold::Two('\u{0077}', '\u{030a}'), |
196 | 435 | 0x99 => return Fold::Two('\u{0079}', '\u{030a}'), |
197 | 415 | 0x9a => return Fold::Two('\u{0061}', '\u{02be}'), |
198 | 2.19k | 0x9b => 0x1e61, |
199 | 530 | 0x9e => return Fold::Two('\u{0073}', '\u{0073}'), |
200 | 1.43k | x @ _ if 0xa0 <= x && x <= 0xfe => from | 1, |
201 | 975 | _ => from, |
202 | | }, |
203 | 17.3k | 0x1f => match low_byte { |
204 | 111k | x @ _ if 0x08 <= x && x <= 0x0f => from.wrapping_sub(0x0008), |
205 | 111k | x @ _ if 0x18 <= x && x <= 0x1d => from.wrapping_sub(0x0008), |
206 | 109k | x @ _ if 0x28 <= x && x <= 0x2f => from.wrapping_sub(0x0008), |
207 | 107k | x @ _ if 0x38 <= x && x <= 0x3f => from.wrapping_sub(0x0008), |
208 | 107k | x @ _ if 0x48 <= x && x <= 0x4d => from.wrapping_sub(0x0008), |
209 | 232 | 0x50 => return Fold::Two('\u{03c5}', '\u{0313}'), |
210 | 1.02k | 0x52 => return Fold::Three('\u{03c5}', '\u{0313}', '\u{0300}'), |
211 | 421 | 0x54 => return Fold::Three('\u{03c5}', '\u{0313}', '\u{0301}'), |
212 | 424 | 0x56 => return Fold::Three('\u{03c5}', '\u{0313}', '\u{0342}'), |
213 | 104k | x @ _ if 0x59 <= x && x <= 0x5f => { |
214 | 4.69k | if (from & 1) == 1 { |
215 | 4.69k | from.wrapping_sub(0x0008) |
216 | | } else { |
217 | 4 | from |
218 | | } |
219 | | } |
220 | 99.9k | x @ _ if 0x68 <= x && x <= 0x6f => from.wrapping_sub(0x0008), |
221 | 348 | 0x80 => return Fold::Two('\u{1f00}', '\u{03b9}'), |
222 | 511 | 0x81 => return Fold::Two('\u{1f01}', '\u{03b9}'), |
223 | 226 | 0x82 => return Fold::Two('\u{1f02}', '\u{03b9}'), |
224 | 359 | 0x83 => return Fold::Two('\u{1f03}', '\u{03b9}'), |
225 | 887 | 0x84 => return Fold::Two('\u{1f04}', '\u{03b9}'), |
226 | 259 | 0x85 => return Fold::Two('\u{1f05}', '\u{03b9}'), |
227 | 5.80k | 0x86 => return Fold::Two('\u{1f06}', '\u{03b9}'), |
228 | 321 | 0x87 => return Fold::Two('\u{1f07}', '\u{03b9}'), |
229 | 208 | 0x88 => return Fold::Two('\u{1f00}', '\u{03b9}'), |
230 | 212 | 0x89 => return Fold::Two('\u{1f01}', '\u{03b9}'), |
231 | 656 | 0x8a => return Fold::Two('\u{1f02}', '\u{03b9}'), |
232 | 388 | 0x8b => return Fold::Two('\u{1f03}', '\u{03b9}'), |
233 | 738 | 0x8c => return Fold::Two('\u{1f04}', '\u{03b9}'), |
234 | 852 | 0x8d => return Fold::Two('\u{1f05}', '\u{03b9}'), |
235 | 267 | 0x8e => return Fold::Two('\u{1f06}', '\u{03b9}'), |
236 | 5.95k | 0x8f => return Fold::Two('\u{1f07}', '\u{03b9}'), |
237 | 1.44k | 0x90 => return Fold::Two('\u{1f20}', '\u{03b9}'), |
238 | 2.90k | 0x91 => return Fold::Two('\u{1f21}', '\u{03b9}'), |
239 | 281 | 0x92 => return Fold::Two('\u{1f22}', '\u{03b9}'), |
240 | 404 | 0x93 => return Fold::Two('\u{1f23}', '\u{03b9}'), |
241 | 288 | 0x94 => return Fold::Two('\u{1f24}', '\u{03b9}'), |
242 | 462 | 0x95 => return Fold::Two('\u{1f25}', '\u{03b9}'), |
243 | 357 | 0x96 => return Fold::Two('\u{1f26}', '\u{03b9}'), |
244 | 1.29k | 0x97 => return Fold::Two('\u{1f27}', '\u{03b9}'), |
245 | 208 | 0x98 => return Fold::Two('\u{1f20}', '\u{03b9}'), |
246 | 4.21k | 0x99 => return Fold::Two('\u{1f21}', '\u{03b9}'), |
247 | 235 | 0x9a => return Fold::Two('\u{1f22}', '\u{03b9}'), |
248 | 271 | 0x9b => return Fold::Two('\u{1f23}', '\u{03b9}'), |
249 | 412 | 0x9c => return Fold::Two('\u{1f24}', '\u{03b9}'), |
250 | 582 | 0x9d => return Fold::Two('\u{1f25}', '\u{03b9}'), |
251 | 269 | 0x9e => return Fold::Two('\u{1f26}', '\u{03b9}'), |
252 | 207 | 0x9f => return Fold::Two('\u{1f27}', '\u{03b9}'), |
253 | 1.03k | 0xa0 => return Fold::Two('\u{1f60}', '\u{03b9}'), |
254 | 928 | 0xa1 => return Fold::Two('\u{1f61}', '\u{03b9}'), |
255 | 290 | 0xa2 => return Fold::Two('\u{1f62}', '\u{03b9}'), |
256 | 1.62k | 0xa3 => return Fold::Two('\u{1f63}', '\u{03b9}'), |
257 | 165 | 0xa4 => return Fold::Two('\u{1f64}', '\u{03b9}'), |
258 | 299 | 0xa5 => return Fold::Two('\u{1f65}', '\u{03b9}'), |
259 | 653 | 0xa6 => return Fold::Two('\u{1f66}', '\u{03b9}'), |
260 | 826 | 0xa7 => return Fold::Two('\u{1f67}', '\u{03b9}'), |
261 | 681 | 0xa8 => return Fold::Two('\u{1f60}', '\u{03b9}'), |
262 | 262 | 0xa9 => return Fold::Two('\u{1f61}', '\u{03b9}'), |
263 | 7.27k | 0xaa => return Fold::Two('\u{1f62}', '\u{03b9}'), |
264 | 3.97k | 0xab => return Fold::Two('\u{1f63}', '\u{03b9}'), |
265 | 692 | 0xac => return Fold::Two('\u{1f64}', '\u{03b9}'), |
266 | 1.12k | 0xad => return Fold::Two('\u{1f65}', '\u{03b9}'), |
267 | 2.61k | 0xae => return Fold::Two('\u{1f66}', '\u{03b9}'), |
268 | 309 | 0xaf => return Fold::Two('\u{1f67}', '\u{03b9}'), |
269 | 224 | 0xb2 => return Fold::Two('\u{1f70}', '\u{03b9}'), |
270 | 391 | 0xb3 => return Fold::Two('\u{03b1}', '\u{03b9}'), |
271 | 422 | 0xb4 => return Fold::Two('\u{03ac}', '\u{03b9}'), |
272 | 205 | 0xb6 => return Fold::Two('\u{03b1}', '\u{0342}'), |
273 | 1.09k | 0xb7 => return Fold::Three('\u{03b1}', '\u{0342}', '\u{03b9}'), |
274 | 42.8k | x @ _ if 0xb8 <= x && x <= 0xb9 => from.wrapping_sub(0x0008), |
275 | 42.0k | x @ _ if 0xba <= x && x <= 0xbb => from.wrapping_sub(0x004a), |
276 | 616 | 0xbc => return Fold::Two('\u{03b1}', '\u{03b9}'), |
277 | 2.32k | 0xbe => 0x03b9, |
278 | 410 | 0xc2 => return Fold::Two('\u{1f74}', '\u{03b9}'), |
279 | 229 | 0xc3 => return Fold::Two('\u{03b7}', '\u{03b9}'), |
280 | 2.27k | 0xc4 => return Fold::Two('\u{03ae}', '\u{03b9}'), |
281 | 225 | 0xc6 => return Fold::Two('\u{03b7}', '\u{0342}'), |
282 | 947 | 0xc7 => return Fold::Three('\u{03b7}', '\u{0342}', '\u{03b9}'), |
283 | 33.3k | x @ _ if 0xc8 <= x && x <= 0xcb => from.wrapping_sub(0x0056), |
284 | 212 | 0xcc => return Fold::Two('\u{03b7}', '\u{03b9}'), |
285 | 305 | 0xd2 => return Fold::Three('\u{03b9}', '\u{0308}', '\u{0300}'), |
286 | 227 | 0xd3 => return Fold::Three('\u{03b9}', '\u{0308}', '\u{0301}'), |
287 | 433 | 0xd6 => return Fold::Two('\u{03b9}', '\u{0342}'), |
288 | 333 | 0xd7 => return Fold::Three('\u{03b9}', '\u{0308}', '\u{0342}'), |
289 | 31.4k | x @ _ if 0xd8 <= x && x <= 0xd9 => from.wrapping_sub(0x0008), |
290 | 31.2k | x @ _ if 0xda <= x && x <= 0xdb => from.wrapping_sub(0x0064), |
291 | 206 | 0xe2 => return Fold::Three('\u{03c5}', '\u{0308}', '\u{0300}'), |
292 | 3.30k | 0xe3 => return Fold::Three('\u{03c5}', '\u{0308}', '\u{0301}'), |
293 | 757 | 0xe4 => return Fold::Two('\u{03c1}', '\u{0313}'), |
294 | 323 | 0xe6 => return Fold::Two('\u{03c5}', '\u{0342}'), |
295 | 1.11k | 0xe7 => return Fold::Three('\u{03c5}', '\u{0308}', '\u{0342}'), |
296 | 25.3k | x @ _ if 0xe8 <= x && x <= 0xe9 => from.wrapping_sub(0x0008), |
297 | 24.9k | x @ _ if 0xea <= x && x <= 0xeb => from.wrapping_sub(0x0070), |
298 | 513 | 0xec => 0x1fe5, |
299 | 229 | 0xf2 => return Fold::Two('\u{1f7c}', '\u{03b9}'), |
300 | 821 | 0xf3 => return Fold::Two('\u{03c9}', '\u{03b9}'), |
301 | 84 | 0xf4 => return Fold::Two('\u{03ce}', '\u{03b9}'), |
302 | 222 | 0xf6 => return Fold::Two('\u{03c9}', '\u{0342}'), |
303 | 792 | 0xf7 => return Fold::Three('\u{03c9}', '\u{0342}', '\u{03b9}'), |
304 | 17.7k | x @ _ if 0xf8 <= x && x <= 0xf9 => from.wrapping_sub(0x0080), |
305 | 17.3k | x @ _ if 0xfa <= x && x <= 0xfb => from.wrapping_sub(0x007e), |
306 | 752 | 0xfc => return Fold::Two('\u{03c9}', '\u{03b9}'), |
307 | 16.2k | _ => from, |
308 | | }, |
309 | 17.1k | 0x20 => from, |
310 | 4.64k | 0x21 => match low_byte { |
311 | 3.23k | 0x26 => 0x03c9, |
312 | 207 | 0x2a => 0x006b, |
313 | 317 | 0x2b => 0x00e5, |
314 | 2.00k | 0x32 => 0x214e, |
315 | 4.64k | x @ _ if 0x60 <= x && x <= 0x6f => from.wrapping_add(0x0010), |
316 | 0 | 0x83 => 0x2184, |
317 | 2.88k | _ => from, |
318 | | }, |
319 | 305 | 0x22 => from, |
320 | 1.09k | 0x23 => from, |
321 | 505 | 0x24 => match low_byte { |
322 | 505 | x @ _ if 0xb6 <= x && x <= 0xcf => from.wrapping_add(0x001a), |
323 | 503 | _ => from, |
324 | | }, |
325 | 314 | 0x25 => from, |
326 | 438 | 0x26 => from, |
327 | 409 | 0x27 => from, |
328 | 290 | 0x28 => from, |
329 | 757 | 0x29 => from, |
330 | 346 | 0x2a => from, |
331 | 1.82k | 0x2b => from, |
332 | 67.8k | 0x2c => match low_byte { |
333 | 86.3k | x @ _ if x <= 0x2f => from.wrapping_add(0x0030), |
334 | 218 | 0x60 => 0x2c61, |
335 | 2.16k | 0x62 => 0x026b, |
336 | 848 | 0x63 => 0x1d7d, |
337 | 667 | 0x64 => 0x027d, |
338 | 80.6k | x @ _ if 0x67 <= x && x <= 0x6b => (from + 1) & !1, |
339 | 785 | 0x6d => 0x0251, |
340 | 207 | 0x6e => 0x0271, |
341 | 211 | 0x6f => 0x0250, |
342 | 8.27k | 0x70 => 0x0252, |
343 | 480 | 0x72 => 0x2c73, |
344 | 988 | 0x75 => 0x2c76, |
345 | 69.3k | x @ _ if 0x7e <= x && x <= 0x7f => from.wrapping_sub(0x2a3f), |
346 | 68.8k | x @ _ if 0x80 <= x && x <= 0xe2 => from | 1, |
347 | 67.8k | x @ _ if 0xeb <= x && x <= 0xed => (from + 1) & !1, |
348 | 0 | 0xf2 => 0x2cf3, |
349 | 53.5k | _ => from, |
350 | | }, |
351 | 0 | _ => from, |
352 | | }; |
353 | 9.52M | Fold::One(char::from_u32(single_char as u32).unwrap_or(orig)) |
354 | | } else { |
355 | 89.0k | let single_char: u32 = match from { |
356 | 91.3k | x @ _ if 0xa640 <= x && x <= 0xa66c => from | 1, |
357 | 91.0k | x @ _ if 0xa680 <= x && x <= 0xa69a => from | 1, |
358 | 90.7k | x @ _ if 0xa722 <= x && x <= 0xa72e => from | 1, |
359 | 90.5k | x @ _ if 0xa732 <= x && x <= 0xa76e => from | 1, |
360 | 87.8k | x @ _ if 0xa779 <= x && x <= 0xa77b => (from + 1) & !1, |
361 | 251 | 0xa77d => 0x1d79, |
362 | 87.4k | x @ _ if 0xa77e <= x && x <= 0xa786 => from | 1, |
363 | 213 | 0xa78b => 0xa78c, |
364 | 1.31k | 0xa78d => 0x0265, |
365 | 82.6k | x @ _ if 0xa790 <= x && x <= 0xa792 => from | 1, |
366 | 82.4k | x @ _ if 0xa796 <= x && x <= 0xa7a8 => from | 1, |
367 | 280 | 0xa7aa => 0x0266, |
368 | 495 | 0xa7ab => 0x025c, |
369 | 640 | 0xa7ac => 0x0261, |
370 | 329 | 0xa7ad => 0x026c, |
371 | 1.09k | 0xa7ae => 0x026a, |
372 | 805 | 0xa7b0 => 0x029e, |
373 | 587 | 0xa7b1 => 0x0287, |
374 | 380 | 0xa7b2 => 0x029d, |
375 | 281 | 0xa7b3 => 0xab53, |
376 | 77.3k | x @ _ if 0xa7b4 <= x && x <= 0xa7c2 => from | 1, |
377 | 219 | 0xa7c4 => 0xa794, |
378 | 228 | 0xa7c5 => 0x0282, |
379 | 201 | 0xa7c6 => 0x1d8e, |
380 | 76.4k | x @ _ if 0xa7c7 <= x && x <= 0xa7c9 => (from + 1) & !1, |
381 | 8.71k | 0xa7cb => 0x0264, |
382 | 228 | 0xa7cc => 0xa7cd, |
383 | 222 | 0xa7d0 => 0xa7d1, |
384 | 66.8k | x @ _ if 0xa7d6 <= x && x <= 0xa7da => from | 1, |
385 | 282 | 0xa7dc => 0x019b, |
386 | 229 | 0xa7f5 => 0xa7f6, |
387 | 66.0k | x @ _ if 0xab70 <= x && x <= 0xabbf => from.wrapping_sub(0x97d0), |
388 | 589 | 0xfb00 => return Fold::Two('\u{0066}', '\u{0066}'), |
389 | 39 | 0xfb01 => return Fold::Two('\u{0066}', '\u{0069}'), |
390 | 166 | 0xfb02 => return Fold::Two('\u{0066}', '\u{006c}'), |
391 | 76 | 0xfb03 => return Fold::Three('\u{0066}', '\u{0066}', '\u{0069}'), |
392 | 281 | 0xfb04 => return Fold::Three('\u{0066}', '\u{0066}', '\u{006c}'), |
393 | 292 | 0xfb05 => return Fold::Two('\u{0073}', '\u{0074}'), |
394 | 381 | 0xfb06 => return Fold::Two('\u{0073}', '\u{0074}'), |
395 | 7 | 0xfb13 => return Fold::Two('\u{0574}', '\u{0576}'), |
396 | 133 | 0xfb14 => return Fold::Two('\u{0574}', '\u{0565}'), |
397 | 81 | 0xfb15 => return Fold::Two('\u{0574}', '\u{056b}'), |
398 | 35 | 0xfb16 => return Fold::Two('\u{057e}', '\u{0576}'), |
399 | 244 | 0xfb17 => return Fold::Two('\u{0574}', '\u{056d}'), |
400 | 63.4k | x @ _ if 0xff21 <= x && x <= 0xff3a => from.wrapping_add(0x0020), |
401 | 63.1k | x @ _ if 0x10400 <= x && x <= 0x10427 => from.wrapping_add(0x0028), |
402 | 61.8k | x @ _ if 0x104b0 <= x && x <= 0x104d3 => from.wrapping_add(0x0028), |
403 | 61.5k | x @ _ if 0x10570 <= x && x <= 0x1057a => from.wrapping_add(0x0027), |
404 | 59.3k | x @ _ if 0x1057c <= x && x <= 0x1058a => from.wrapping_add(0x0027), |
405 | 58.6k | x @ _ if 0x1058c <= x && x <= 0x10592 => from.wrapping_add(0x0027), |
406 | 58.2k | x @ _ if 0x10594 <= x && x <= 0x10595 => from.wrapping_add(0x0027), |
407 | 57.6k | x @ _ if 0x10c80 <= x && x <= 0x10cb2 => from.wrapping_add(0x0040), |
408 | 56.0k | x @ _ if 0x10d50 <= x && x <= 0x10d65 => from.wrapping_add(0x0020), |
409 | 55.8k | x @ _ if 0x118a0 <= x && x <= 0x118bf => from.wrapping_add(0x0020), |
410 | 55.5k | x @ _ if 0x16e40 <= x && x <= 0x16e5f => from.wrapping_add(0x0020), |
411 | 55.5k | x @ _ if 0x1e900 <= x && x <= 0x1e921 => from.wrapping_add(0x0022), |
412 | 55.5k | _ => from, |
413 | | }; |
414 | 89.0k | Fold::One(char::from_u32(single_char).unwrap_or(orig)) |
415 | | } |
416 | 9.71M | } |
417 | | |
418 | | #[test] |
419 | | fn lookup_consistency() { |
420 | | use std::vec::Vec; |
421 | | fn lookup_naive(orig: char) -> Fold { |
422 | | let single_char = match orig as u32 { |
423 | | 0x0041 => 0x0061, |
424 | | 0x0042 => 0x0062, |
425 | | 0x0043 => 0x0063, |
426 | | 0x0044 => 0x0064, |
427 | | 0x0045 => 0x0065, |
428 | | 0x0046 => 0x0066, |
429 | | 0x0047 => 0x0067, |
430 | | 0x0048 => 0x0068, |
431 | | 0x0049 => 0x0069, |
432 | | 0x004a => 0x006a, |
433 | | 0x004b => 0x006b, |
434 | | 0x004c => 0x006c, |
435 | | 0x004d => 0x006d, |
436 | | 0x004e => 0x006e, |
437 | | 0x004f => 0x006f, |
438 | | 0x0050 => 0x0070, |
439 | | 0x0051 => 0x0071, |
440 | | 0x0052 => 0x0072, |
441 | | 0x0053 => 0x0073, |
442 | | 0x0054 => 0x0074, |
443 | | 0x0055 => 0x0075, |
444 | | 0x0056 => 0x0076, |
445 | | 0x0057 => 0x0077, |
446 | | 0x0058 => 0x0078, |
447 | | 0x0059 => 0x0079, |
448 | | 0x005a => 0x007a, |
449 | | 0x00b5 => 0x03bc, |
450 | | 0x00c0 => 0x00e0, |
451 | | 0x00c1 => 0x00e1, |
452 | | 0x00c2 => 0x00e2, |
453 | | 0x00c3 => 0x00e3, |
454 | | 0x00c4 => 0x00e4, |
455 | | 0x00c5 => 0x00e5, |
456 | | 0x00c6 => 0x00e6, |
457 | | 0x00c7 => 0x00e7, |
458 | | 0x00c8 => 0x00e8, |
459 | | 0x00c9 => 0x00e9, |
460 | | 0x00ca => 0x00ea, |
461 | | 0x00cb => 0x00eb, |
462 | | 0x00cc => 0x00ec, |
463 | | 0x00cd => 0x00ed, |
464 | | 0x00ce => 0x00ee, |
465 | | 0x00cf => 0x00ef, |
466 | | 0x00d0 => 0x00f0, |
467 | | 0x00d1 => 0x00f1, |
468 | | 0x00d2 => 0x00f2, |
469 | | 0x00d3 => 0x00f3, |
470 | | 0x00d4 => 0x00f4, |
471 | | 0x00d5 => 0x00f5, |
472 | | 0x00d6 => 0x00f6, |
473 | | 0x00d8 => 0x00f8, |
474 | | 0x00d9 => 0x00f9, |
475 | | 0x00da => 0x00fa, |
476 | | 0x00db => 0x00fb, |
477 | | 0x00dc => 0x00fc, |
478 | | 0x00dd => 0x00fd, |
479 | | 0x00de => 0x00fe, |
480 | | 0x00df => return Fold::Two('\u{0073}', '\u{0073}'), |
481 | | 0x0100 => 0x0101, |
482 | | 0x0102 => 0x0103, |
483 | | 0x0104 => 0x0105, |
484 | | 0x0106 => 0x0107, |
485 | | 0x0108 => 0x0109, |
486 | | 0x010a => 0x010b, |
487 | | 0x010c => 0x010d, |
488 | | 0x010e => 0x010f, |
489 | | 0x0110 => 0x0111, |
490 | | 0x0112 => 0x0113, |
491 | | 0x0114 => 0x0115, |
492 | | 0x0116 => 0x0117, |
493 | | 0x0118 => 0x0119, |
494 | | 0x011a => 0x011b, |
495 | | 0x011c => 0x011d, |
496 | | 0x011e => 0x011f, |
497 | | 0x0120 => 0x0121, |
498 | | 0x0122 => 0x0123, |
499 | | 0x0124 => 0x0125, |
500 | | 0x0126 => 0x0127, |
501 | | 0x0128 => 0x0129, |
502 | | 0x012a => 0x012b, |
503 | | 0x012c => 0x012d, |
504 | | 0x012e => 0x012f, |
505 | | 0x0130 => return Fold::Two('\u{0069}', '\u{0307}'), |
506 | | 0x0132 => 0x0133, |
507 | | 0x0134 => 0x0135, |
508 | | 0x0136 => 0x0137, |
509 | | 0x0139 => 0x013a, |
510 | | 0x013b => 0x013c, |
511 | | 0x013d => 0x013e, |
512 | | 0x013f => 0x0140, |
513 | | 0x0141 => 0x0142, |
514 | | 0x0143 => 0x0144, |
515 | | 0x0145 => 0x0146, |
516 | | 0x0147 => 0x0148, |
517 | | 0x0149 => return Fold::Two('\u{02bc}', '\u{006e}'), |
518 | | 0x014a => 0x014b, |
519 | | 0x014c => 0x014d, |
520 | | 0x014e => 0x014f, |
521 | | 0x0150 => 0x0151, |
522 | | 0x0152 => 0x0153, |
523 | | 0x0154 => 0x0155, |
524 | | 0x0156 => 0x0157, |
525 | | 0x0158 => 0x0159, |
526 | | 0x015a => 0x015b, |
527 | | 0x015c => 0x015d, |
528 | | 0x015e => 0x015f, |
529 | | 0x0160 => 0x0161, |
530 | | 0x0162 => 0x0163, |
531 | | 0x0164 => 0x0165, |
532 | | 0x0166 => 0x0167, |
533 | | 0x0168 => 0x0169, |
534 | | 0x016a => 0x016b, |
535 | | 0x016c => 0x016d, |
536 | | 0x016e => 0x016f, |
537 | | 0x0170 => 0x0171, |
538 | | 0x0172 => 0x0173, |
539 | | 0x0174 => 0x0175, |
540 | | 0x0176 => 0x0177, |
541 | | 0x0178 => 0x00ff, |
542 | | 0x0179 => 0x017a, |
543 | | 0x017b => 0x017c, |
544 | | 0x017d => 0x017e, |
545 | | 0x017f => 0x0073, |
546 | | 0x0181 => 0x0253, |
547 | | 0x0182 => 0x0183, |
548 | | 0x0184 => 0x0185, |
549 | | 0x0186 => 0x0254, |
550 | | 0x0187 => 0x0188, |
551 | | 0x0189 => 0x0256, |
552 | | 0x018a => 0x0257, |
553 | | 0x018b => 0x018c, |
554 | | 0x018e => 0x01dd, |
555 | | 0x018f => 0x0259, |
556 | | 0x0190 => 0x025b, |
557 | | 0x0191 => 0x0192, |
558 | | 0x0193 => 0x0260, |
559 | | 0x0194 => 0x0263, |
560 | | 0x0196 => 0x0269, |
561 | | 0x0197 => 0x0268, |
562 | | 0x0198 => 0x0199, |
563 | | 0x019c => 0x026f, |
564 | | 0x019d => 0x0272, |
565 | | 0x019f => 0x0275, |
566 | | 0x01a0 => 0x01a1, |
567 | | 0x01a2 => 0x01a3, |
568 | | 0x01a4 => 0x01a5, |
569 | | 0x01a6 => 0x0280, |
570 | | 0x01a7 => 0x01a8, |
571 | | 0x01a9 => 0x0283, |
572 | | 0x01ac => 0x01ad, |
573 | | 0x01ae => 0x0288, |
574 | | 0x01af => 0x01b0, |
575 | | 0x01b1 => 0x028a, |
576 | | 0x01b2 => 0x028b, |
577 | | 0x01b3 => 0x01b4, |
578 | | 0x01b5 => 0x01b6, |
579 | | 0x01b7 => 0x0292, |
580 | | 0x01b8 => 0x01b9, |
581 | | 0x01bc => 0x01bd, |
582 | | 0x01c4 => 0x01c6, |
583 | | 0x01c5 => 0x01c6, |
584 | | 0x01c7 => 0x01c9, |
585 | | 0x01c8 => 0x01c9, |
586 | | 0x01ca => 0x01cc, |
587 | | 0x01cb => 0x01cc, |
588 | | 0x01cd => 0x01ce, |
589 | | 0x01cf => 0x01d0, |
590 | | 0x01d1 => 0x01d2, |
591 | | 0x01d3 => 0x01d4, |
592 | | 0x01d5 => 0x01d6, |
593 | | 0x01d7 => 0x01d8, |
594 | | 0x01d9 => 0x01da, |
595 | | 0x01db => 0x01dc, |
596 | | 0x01de => 0x01df, |
597 | | 0x01e0 => 0x01e1, |
598 | | 0x01e2 => 0x01e3, |
599 | | 0x01e4 => 0x01e5, |
600 | | 0x01e6 => 0x01e7, |
601 | | 0x01e8 => 0x01e9, |
602 | | 0x01ea => 0x01eb, |
603 | | 0x01ec => 0x01ed, |
604 | | 0x01ee => 0x01ef, |
605 | | 0x01f0 => return Fold::Two('\u{006a}', '\u{030c}'), |
606 | | 0x01f1 => 0x01f3, |
607 | | 0x01f2 => 0x01f3, |
608 | | 0x01f4 => 0x01f5, |
609 | | 0x01f6 => 0x0195, |
610 | | 0x01f7 => 0x01bf, |
611 | | 0x01f8 => 0x01f9, |
612 | | 0x01fa => 0x01fb, |
613 | | 0x01fc => 0x01fd, |
614 | | 0x01fe => 0x01ff, |
615 | | 0x0200 => 0x0201, |
616 | | 0x0202 => 0x0203, |
617 | | 0x0204 => 0x0205, |
618 | | 0x0206 => 0x0207, |
619 | | 0x0208 => 0x0209, |
620 | | 0x020a => 0x020b, |
621 | | 0x020c => 0x020d, |
622 | | 0x020e => 0x020f, |
623 | | 0x0210 => 0x0211, |
624 | | 0x0212 => 0x0213, |
625 | | 0x0214 => 0x0215, |
626 | | 0x0216 => 0x0217, |
627 | | 0x0218 => 0x0219, |
628 | | 0x021a => 0x021b, |
629 | | 0x021c => 0x021d, |
630 | | 0x021e => 0x021f, |
631 | | 0x0220 => 0x019e, |
632 | | 0x0222 => 0x0223, |
633 | | 0x0224 => 0x0225, |
634 | | 0x0226 => 0x0227, |
635 | | 0x0228 => 0x0229, |
636 | | 0x022a => 0x022b, |
637 | | 0x022c => 0x022d, |
638 | | 0x022e => 0x022f, |
639 | | 0x0230 => 0x0231, |
640 | | 0x0232 => 0x0233, |
641 | | 0x023a => 0x2c65, |
642 | | 0x023b => 0x023c, |
643 | | 0x023d => 0x019a, |
644 | | 0x023e => 0x2c66, |
645 | | 0x0241 => 0x0242, |
646 | | 0x0243 => 0x0180, |
647 | | 0x0244 => 0x0289, |
648 | | 0x0245 => 0x028c, |
649 | | 0x0246 => 0x0247, |
650 | | 0x0248 => 0x0249, |
651 | | 0x024a => 0x024b, |
652 | | 0x024c => 0x024d, |
653 | | 0x024e => 0x024f, |
654 | | 0x0345 => 0x03b9, |
655 | | 0x0370 => 0x0371, |
656 | | 0x0372 => 0x0373, |
657 | | 0x0376 => 0x0377, |
658 | | 0x037f => 0x03f3, |
659 | | 0x0386 => 0x03ac, |
660 | | 0x0388 => 0x03ad, |
661 | | 0x0389 => 0x03ae, |
662 | | 0x038a => 0x03af, |
663 | | 0x038c => 0x03cc, |
664 | | 0x038e => 0x03cd, |
665 | | 0x038f => 0x03ce, |
666 | | 0x0390 => return Fold::Three('\u{03b9}', '\u{0308}', '\u{0301}'), |
667 | | 0x0391 => 0x03b1, |
668 | | 0x0392 => 0x03b2, |
669 | | 0x0393 => 0x03b3, |
670 | | 0x0394 => 0x03b4, |
671 | | 0x0395 => 0x03b5, |
672 | | 0x0396 => 0x03b6, |
673 | | 0x0397 => 0x03b7, |
674 | | 0x0398 => 0x03b8, |
675 | | 0x0399 => 0x03b9, |
676 | | 0x039a => 0x03ba, |
677 | | 0x039b => 0x03bb, |
678 | | 0x039c => 0x03bc, |
679 | | 0x039d => 0x03bd, |
680 | | 0x039e => 0x03be, |
681 | | 0x039f => 0x03bf, |
682 | | 0x03a0 => 0x03c0, |
683 | | 0x03a1 => 0x03c1, |
684 | | 0x03a3 => 0x03c3, |
685 | | 0x03a4 => 0x03c4, |
686 | | 0x03a5 => 0x03c5, |
687 | | 0x03a6 => 0x03c6, |
688 | | 0x03a7 => 0x03c7, |
689 | | 0x03a8 => 0x03c8, |
690 | | 0x03a9 => 0x03c9, |
691 | | 0x03aa => 0x03ca, |
692 | | 0x03ab => 0x03cb, |
693 | | 0x03b0 => return Fold::Three('\u{03c5}', '\u{0308}', '\u{0301}'), |
694 | | 0x03c2 => 0x03c3, |
695 | | 0x03cf => 0x03d7, |
696 | | 0x03d0 => 0x03b2, |
697 | | 0x03d1 => 0x03b8, |
698 | | 0x03d5 => 0x03c6, |
699 | | 0x03d6 => 0x03c0, |
700 | | 0x03d8 => 0x03d9, |
701 | | 0x03da => 0x03db, |
702 | | 0x03dc => 0x03dd, |
703 | | 0x03de => 0x03df, |
704 | | 0x03e0 => 0x03e1, |
705 | | 0x03e2 => 0x03e3, |
706 | | 0x03e4 => 0x03e5, |
707 | | 0x03e6 => 0x03e7, |
708 | | 0x03e8 => 0x03e9, |
709 | | 0x03ea => 0x03eb, |
710 | | 0x03ec => 0x03ed, |
711 | | 0x03ee => 0x03ef, |
712 | | 0x03f0 => 0x03ba, |
713 | | 0x03f1 => 0x03c1, |
714 | | 0x03f4 => 0x03b8, |
715 | | 0x03f5 => 0x03b5, |
716 | | 0x03f7 => 0x03f8, |
717 | | 0x03f9 => 0x03f2, |
718 | | 0x03fa => 0x03fb, |
719 | | 0x03fd => 0x037b, |
720 | | 0x03fe => 0x037c, |
721 | | 0x03ff => 0x037d, |
722 | | 0x0400 => 0x0450, |
723 | | 0x0401 => 0x0451, |
724 | | 0x0402 => 0x0452, |
725 | | 0x0403 => 0x0453, |
726 | | 0x0404 => 0x0454, |
727 | | 0x0405 => 0x0455, |
728 | | 0x0406 => 0x0456, |
729 | | 0x0407 => 0x0457, |
730 | | 0x0408 => 0x0458, |
731 | | 0x0409 => 0x0459, |
732 | | 0x040a => 0x045a, |
733 | | 0x040b => 0x045b, |
734 | | 0x040c => 0x045c, |
735 | | 0x040d => 0x045d, |
736 | | 0x040e => 0x045e, |
737 | | 0x040f => 0x045f, |
738 | | 0x0410 => 0x0430, |
739 | | 0x0411 => 0x0431, |
740 | | 0x0412 => 0x0432, |
741 | | 0x0413 => 0x0433, |
742 | | 0x0414 => 0x0434, |
743 | | 0x0415 => 0x0435, |
744 | | 0x0416 => 0x0436, |
745 | | 0x0417 => 0x0437, |
746 | | 0x0418 => 0x0438, |
747 | | 0x0419 => 0x0439, |
748 | | 0x041a => 0x043a, |
749 | | 0x041b => 0x043b, |
750 | | 0x041c => 0x043c, |
751 | | 0x041d => 0x043d, |
752 | | 0x041e => 0x043e, |
753 | | 0x041f => 0x043f, |
754 | | 0x0420 => 0x0440, |
755 | | 0x0421 => 0x0441, |
756 | | 0x0422 => 0x0442, |
757 | | 0x0423 => 0x0443, |
758 | | 0x0424 => 0x0444, |
759 | | 0x0425 => 0x0445, |
760 | | 0x0426 => 0x0446, |
761 | | 0x0427 => 0x0447, |
762 | | 0x0428 => 0x0448, |
763 | | 0x0429 => 0x0449, |
764 | | 0x042a => 0x044a, |
765 | | 0x042b => 0x044b, |
766 | | 0x042c => 0x044c, |
767 | | 0x042d => 0x044d, |
768 | | 0x042e => 0x044e, |
769 | | 0x042f => 0x044f, |
770 | | 0x0460 => 0x0461, |
771 | | 0x0462 => 0x0463, |
772 | | 0x0464 => 0x0465, |
773 | | 0x0466 => 0x0467, |
774 | | 0x0468 => 0x0469, |
775 | | 0x046a => 0x046b, |
776 | | 0x046c => 0x046d, |
777 | | 0x046e => 0x046f, |
778 | | 0x0470 => 0x0471, |
779 | | 0x0472 => 0x0473, |
780 | | 0x0474 => 0x0475, |
781 | | 0x0476 => 0x0477, |
782 | | 0x0478 => 0x0479, |
783 | | 0x047a => 0x047b, |
784 | | 0x047c => 0x047d, |
785 | | 0x047e => 0x047f, |
786 | | 0x0480 => 0x0481, |
787 | | 0x048a => 0x048b, |
788 | | 0x048c => 0x048d, |
789 | | 0x048e => 0x048f, |
790 | | 0x0490 => 0x0491, |
791 | | 0x0492 => 0x0493, |
792 | | 0x0494 => 0x0495, |
793 | | 0x0496 => 0x0497, |
794 | | 0x0498 => 0x0499, |
795 | | 0x049a => 0x049b, |
796 | | 0x049c => 0x049d, |
797 | | 0x049e => 0x049f, |
798 | | 0x04a0 => 0x04a1, |
799 | | 0x04a2 => 0x04a3, |
800 | | 0x04a4 => 0x04a5, |
801 | | 0x04a6 => 0x04a7, |
802 | | 0x04a8 => 0x04a9, |
803 | | 0x04aa => 0x04ab, |
804 | | 0x04ac => 0x04ad, |
805 | | 0x04ae => 0x04af, |
806 | | 0x04b0 => 0x04b1, |
807 | | 0x04b2 => 0x04b3, |
808 | | 0x04b4 => 0x04b5, |
809 | | 0x04b6 => 0x04b7, |
810 | | 0x04b8 => 0x04b9, |
811 | | 0x04ba => 0x04bb, |
812 | | 0x04bc => 0x04bd, |
813 | | 0x04be => 0x04bf, |
814 | | 0x04c0 => 0x04cf, |
815 | | 0x04c1 => 0x04c2, |
816 | | 0x04c3 => 0x04c4, |
817 | | 0x04c5 => 0x04c6, |
818 | | 0x04c7 => 0x04c8, |
819 | | 0x04c9 => 0x04ca, |
820 | | 0x04cb => 0x04cc, |
821 | | 0x04cd => 0x04ce, |
822 | | 0x04d0 => 0x04d1, |
823 | | 0x04d2 => 0x04d3, |
824 | | 0x04d4 => 0x04d5, |
825 | | 0x04d6 => 0x04d7, |
826 | | 0x04d8 => 0x04d9, |
827 | | 0x04da => 0x04db, |
828 | | 0x04dc => 0x04dd, |
829 | | 0x04de => 0x04df, |
830 | | 0x04e0 => 0x04e1, |
831 | | 0x04e2 => 0x04e3, |
832 | | 0x04e4 => 0x04e5, |
833 | | 0x04e6 => 0x04e7, |
834 | | 0x04e8 => 0x04e9, |
835 | | 0x04ea => 0x04eb, |
836 | | 0x04ec => 0x04ed, |
837 | | 0x04ee => 0x04ef, |
838 | | 0x04f0 => 0x04f1, |
839 | | 0x04f2 => 0x04f3, |
840 | | 0x04f4 => 0x04f5, |
841 | | 0x04f6 => 0x04f7, |
842 | | 0x04f8 => 0x04f9, |
843 | | 0x04fa => 0x04fb, |
844 | | 0x04fc => 0x04fd, |
845 | | 0x04fe => 0x04ff, |
846 | | 0x0500 => 0x0501, |
847 | | 0x0502 => 0x0503, |
848 | | 0x0504 => 0x0505, |
849 | | 0x0506 => 0x0507, |
850 | | 0x0508 => 0x0509, |
851 | | 0x050a => 0x050b, |
852 | | 0x050c => 0x050d, |
853 | | 0x050e => 0x050f, |
854 | | 0x0510 => 0x0511, |
855 | | 0x0512 => 0x0513, |
856 | | 0x0514 => 0x0515, |
857 | | 0x0516 => 0x0517, |
858 | | 0x0518 => 0x0519, |
859 | | 0x051a => 0x051b, |
860 | | 0x051c => 0x051d, |
861 | | 0x051e => 0x051f, |
862 | | 0x0520 => 0x0521, |
863 | | 0x0522 => 0x0523, |
864 | | 0x0524 => 0x0525, |
865 | | 0x0526 => 0x0527, |
866 | | 0x0528 => 0x0529, |
867 | | 0x052a => 0x052b, |
868 | | 0x052c => 0x052d, |
869 | | 0x052e => 0x052f, |
870 | | 0x0531 => 0x0561, |
871 | | 0x0532 => 0x0562, |
872 | | 0x0533 => 0x0563, |
873 | | 0x0534 => 0x0564, |
874 | | 0x0535 => 0x0565, |
875 | | 0x0536 => 0x0566, |
876 | | 0x0537 => 0x0567, |
877 | | 0x0538 => 0x0568, |
878 | | 0x0539 => 0x0569, |
879 | | 0x053a => 0x056a, |
880 | | 0x053b => 0x056b, |
881 | | 0x053c => 0x056c, |
882 | | 0x053d => 0x056d, |
883 | | 0x053e => 0x056e, |
884 | | 0x053f => 0x056f, |
885 | | 0x0540 => 0x0570, |
886 | | 0x0541 => 0x0571, |
887 | | 0x0542 => 0x0572, |
888 | | 0x0543 => 0x0573, |
889 | | 0x0544 => 0x0574, |
890 | | 0x0545 => 0x0575, |
891 | | 0x0546 => 0x0576, |
892 | | 0x0547 => 0x0577, |
893 | | 0x0548 => 0x0578, |
894 | | 0x0549 => 0x0579, |
895 | | 0x054a => 0x057a, |
896 | | 0x054b => 0x057b, |
897 | | 0x054c => 0x057c, |
898 | | 0x054d => 0x057d, |
899 | | 0x054e => 0x057e, |
900 | | 0x054f => 0x057f, |
901 | | 0x0550 => 0x0580, |
902 | | 0x0551 => 0x0581, |
903 | | 0x0552 => 0x0582, |
904 | | 0x0553 => 0x0583, |
905 | | 0x0554 => 0x0584, |
906 | | 0x0555 => 0x0585, |
907 | | 0x0556 => 0x0586, |
908 | | 0x0587 => return Fold::Two('\u{0565}', '\u{0582}'), |
909 | | 0x10a0 => 0x2d00, |
910 | | 0x10a1 => 0x2d01, |
911 | | 0x10a2 => 0x2d02, |
912 | | 0x10a3 => 0x2d03, |
913 | | 0x10a4 => 0x2d04, |
914 | | 0x10a5 => 0x2d05, |
915 | | 0x10a6 => 0x2d06, |
916 | | 0x10a7 => 0x2d07, |
917 | | 0x10a8 => 0x2d08, |
918 | | 0x10a9 => 0x2d09, |
919 | | 0x10aa => 0x2d0a, |
920 | | 0x10ab => 0x2d0b, |
921 | | 0x10ac => 0x2d0c, |
922 | | 0x10ad => 0x2d0d, |
923 | | 0x10ae => 0x2d0e, |
924 | | 0x10af => 0x2d0f, |
925 | | 0x10b0 => 0x2d10, |
926 | | 0x10b1 => 0x2d11, |
927 | | 0x10b2 => 0x2d12, |
928 | | 0x10b3 => 0x2d13, |
929 | | 0x10b4 => 0x2d14, |
930 | | 0x10b5 => 0x2d15, |
931 | | 0x10b6 => 0x2d16, |
932 | | 0x10b7 => 0x2d17, |
933 | | 0x10b8 => 0x2d18, |
934 | | 0x10b9 => 0x2d19, |
935 | | 0x10ba => 0x2d1a, |
936 | | 0x10bb => 0x2d1b, |
937 | | 0x10bc => 0x2d1c, |
938 | | 0x10bd => 0x2d1d, |
939 | | 0x10be => 0x2d1e, |
940 | | 0x10bf => 0x2d1f, |
941 | | 0x10c0 => 0x2d20, |
942 | | 0x10c1 => 0x2d21, |
943 | | 0x10c2 => 0x2d22, |
944 | | 0x10c3 => 0x2d23, |
945 | | 0x10c4 => 0x2d24, |
946 | | 0x10c5 => 0x2d25, |
947 | | 0x10c7 => 0x2d27, |
948 | | 0x10cd => 0x2d2d, |
949 | | 0x13f8 => 0x13f0, |
950 | | 0x13f9 => 0x13f1, |
951 | | 0x13fa => 0x13f2, |
952 | | 0x13fb => 0x13f3, |
953 | | 0x13fc => 0x13f4, |
954 | | 0x13fd => 0x13f5, |
955 | | 0x1c80 => 0x0432, |
956 | | 0x1c81 => 0x0434, |
957 | | 0x1c82 => 0x043e, |
958 | | 0x1c83 => 0x0441, |
959 | | 0x1c84 => 0x0442, |
960 | | 0x1c85 => 0x0442, |
961 | | 0x1c86 => 0x044a, |
962 | | 0x1c87 => 0x0463, |
963 | | 0x1c88 => 0xa64b, |
964 | | 0x1c89 => 0x1c8a, |
965 | | 0x1c90 => 0x10d0, |
966 | | 0x1c91 => 0x10d1, |
967 | | 0x1c92 => 0x10d2, |
968 | | 0x1c93 => 0x10d3, |
969 | | 0x1c94 => 0x10d4, |
970 | | 0x1c95 => 0x10d5, |
971 | | 0x1c96 => 0x10d6, |
972 | | 0x1c97 => 0x10d7, |
973 | | 0x1c98 => 0x10d8, |
974 | | 0x1c99 => 0x10d9, |
975 | | 0x1c9a => 0x10da, |
976 | | 0x1c9b => 0x10db, |
977 | | 0x1c9c => 0x10dc, |
978 | | 0x1c9d => 0x10dd, |
979 | | 0x1c9e => 0x10de, |
980 | | 0x1c9f => 0x10df, |
981 | | 0x1ca0 => 0x10e0, |
982 | | 0x1ca1 => 0x10e1, |
983 | | 0x1ca2 => 0x10e2, |
984 | | 0x1ca3 => 0x10e3, |
985 | | 0x1ca4 => 0x10e4, |
986 | | 0x1ca5 => 0x10e5, |
987 | | 0x1ca6 => 0x10e6, |
988 | | 0x1ca7 => 0x10e7, |
989 | | 0x1ca8 => 0x10e8, |
990 | | 0x1ca9 => 0x10e9, |
991 | | 0x1caa => 0x10ea, |
992 | | 0x1cab => 0x10eb, |
993 | | 0x1cac => 0x10ec, |
994 | | 0x1cad => 0x10ed, |
995 | | 0x1cae => 0x10ee, |
996 | | 0x1caf => 0x10ef, |
997 | | 0x1cb0 => 0x10f0, |
998 | | 0x1cb1 => 0x10f1, |
999 | | 0x1cb2 => 0x10f2, |
1000 | | 0x1cb3 => 0x10f3, |
1001 | | 0x1cb4 => 0x10f4, |
1002 | | 0x1cb5 => 0x10f5, |
1003 | | 0x1cb6 => 0x10f6, |
1004 | | 0x1cb7 => 0x10f7, |
1005 | | 0x1cb8 => 0x10f8, |
1006 | | 0x1cb9 => 0x10f9, |
1007 | | 0x1cba => 0x10fa, |
1008 | | 0x1cbd => 0x10fd, |
1009 | | 0x1cbe => 0x10fe, |
1010 | | 0x1cbf => 0x10ff, |
1011 | | 0x1e00 => 0x1e01, |
1012 | | 0x1e02 => 0x1e03, |
1013 | | 0x1e04 => 0x1e05, |
1014 | | 0x1e06 => 0x1e07, |
1015 | | 0x1e08 => 0x1e09, |
1016 | | 0x1e0a => 0x1e0b, |
1017 | | 0x1e0c => 0x1e0d, |
1018 | | 0x1e0e => 0x1e0f, |
1019 | | 0x1e10 => 0x1e11, |
1020 | | 0x1e12 => 0x1e13, |
1021 | | 0x1e14 => 0x1e15, |
1022 | | 0x1e16 => 0x1e17, |
1023 | | 0x1e18 => 0x1e19, |
1024 | | 0x1e1a => 0x1e1b, |
1025 | | 0x1e1c => 0x1e1d, |
1026 | | 0x1e1e => 0x1e1f, |
1027 | | 0x1e20 => 0x1e21, |
1028 | | 0x1e22 => 0x1e23, |
1029 | | 0x1e24 => 0x1e25, |
1030 | | 0x1e26 => 0x1e27, |
1031 | | 0x1e28 => 0x1e29, |
1032 | | 0x1e2a => 0x1e2b, |
1033 | | 0x1e2c => 0x1e2d, |
1034 | | 0x1e2e => 0x1e2f, |
1035 | | 0x1e30 => 0x1e31, |
1036 | | 0x1e32 => 0x1e33, |
1037 | | 0x1e34 => 0x1e35, |
1038 | | 0x1e36 => 0x1e37, |
1039 | | 0x1e38 => 0x1e39, |
1040 | | 0x1e3a => 0x1e3b, |
1041 | | 0x1e3c => 0x1e3d, |
1042 | | 0x1e3e => 0x1e3f, |
1043 | | 0x1e40 => 0x1e41, |
1044 | | 0x1e42 => 0x1e43, |
1045 | | 0x1e44 => 0x1e45, |
1046 | | 0x1e46 => 0x1e47, |
1047 | | 0x1e48 => 0x1e49, |
1048 | | 0x1e4a => 0x1e4b, |
1049 | | 0x1e4c => 0x1e4d, |
1050 | | 0x1e4e => 0x1e4f, |
1051 | | 0x1e50 => 0x1e51, |
1052 | | 0x1e52 => 0x1e53, |
1053 | | 0x1e54 => 0x1e55, |
1054 | | 0x1e56 => 0x1e57, |
1055 | | 0x1e58 => 0x1e59, |
1056 | | 0x1e5a => 0x1e5b, |
1057 | | 0x1e5c => 0x1e5d, |
1058 | | 0x1e5e => 0x1e5f, |
1059 | | 0x1e60 => 0x1e61, |
1060 | | 0x1e62 => 0x1e63, |
1061 | | 0x1e64 => 0x1e65, |
1062 | | 0x1e66 => 0x1e67, |
1063 | | 0x1e68 => 0x1e69, |
1064 | | 0x1e6a => 0x1e6b, |
1065 | | 0x1e6c => 0x1e6d, |
1066 | | 0x1e6e => 0x1e6f, |
1067 | | 0x1e70 => 0x1e71, |
1068 | | 0x1e72 => 0x1e73, |
1069 | | 0x1e74 => 0x1e75, |
1070 | | 0x1e76 => 0x1e77, |
1071 | | 0x1e78 => 0x1e79, |
1072 | | 0x1e7a => 0x1e7b, |
1073 | | 0x1e7c => 0x1e7d, |
1074 | | 0x1e7e => 0x1e7f, |
1075 | | 0x1e80 => 0x1e81, |
1076 | | 0x1e82 => 0x1e83, |
1077 | | 0x1e84 => 0x1e85, |
1078 | | 0x1e86 => 0x1e87, |
1079 | | 0x1e88 => 0x1e89, |
1080 | | 0x1e8a => 0x1e8b, |
1081 | | 0x1e8c => 0x1e8d, |
1082 | | 0x1e8e => 0x1e8f, |
1083 | | 0x1e90 => 0x1e91, |
1084 | | 0x1e92 => 0x1e93, |
1085 | | 0x1e94 => 0x1e95, |
1086 | | 0x1e96 => return Fold::Two('\u{0068}', '\u{0331}'), |
1087 | | 0x1e97 => return Fold::Two('\u{0074}', '\u{0308}'), |
1088 | | 0x1e98 => return Fold::Two('\u{0077}', '\u{030a}'), |
1089 | | 0x1e99 => return Fold::Two('\u{0079}', '\u{030a}'), |
1090 | | 0x1e9a => return Fold::Two('\u{0061}', '\u{02be}'), |
1091 | | 0x1e9b => 0x1e61, |
1092 | | 0x1e9e => return Fold::Two('\u{0073}', '\u{0073}'), |
1093 | | 0x1ea0 => 0x1ea1, |
1094 | | 0x1ea2 => 0x1ea3, |
1095 | | 0x1ea4 => 0x1ea5, |
1096 | | 0x1ea6 => 0x1ea7, |
1097 | | 0x1ea8 => 0x1ea9, |
1098 | | 0x1eaa => 0x1eab, |
1099 | | 0x1eac => 0x1ead, |
1100 | | 0x1eae => 0x1eaf, |
1101 | | 0x1eb0 => 0x1eb1, |
1102 | | 0x1eb2 => 0x1eb3, |
1103 | | 0x1eb4 => 0x1eb5, |
1104 | | 0x1eb6 => 0x1eb7, |
1105 | | 0x1eb8 => 0x1eb9, |
1106 | | 0x1eba => 0x1ebb, |
1107 | | 0x1ebc => 0x1ebd, |
1108 | | 0x1ebe => 0x1ebf, |
1109 | | 0x1ec0 => 0x1ec1, |
1110 | | 0x1ec2 => 0x1ec3, |
1111 | | 0x1ec4 => 0x1ec5, |
1112 | | 0x1ec6 => 0x1ec7, |
1113 | | 0x1ec8 => 0x1ec9, |
1114 | | 0x1eca => 0x1ecb, |
1115 | | 0x1ecc => 0x1ecd, |
1116 | | 0x1ece => 0x1ecf, |
1117 | | 0x1ed0 => 0x1ed1, |
1118 | | 0x1ed2 => 0x1ed3, |
1119 | | 0x1ed4 => 0x1ed5, |
1120 | | 0x1ed6 => 0x1ed7, |
1121 | | 0x1ed8 => 0x1ed9, |
1122 | | 0x1eda => 0x1edb, |
1123 | | 0x1edc => 0x1edd, |
1124 | | 0x1ede => 0x1edf, |
1125 | | 0x1ee0 => 0x1ee1, |
1126 | | 0x1ee2 => 0x1ee3, |
1127 | | 0x1ee4 => 0x1ee5, |
1128 | | 0x1ee6 => 0x1ee7, |
1129 | | 0x1ee8 => 0x1ee9, |
1130 | | 0x1eea => 0x1eeb, |
1131 | | 0x1eec => 0x1eed, |
1132 | | 0x1eee => 0x1eef, |
1133 | | 0x1ef0 => 0x1ef1, |
1134 | | 0x1ef2 => 0x1ef3, |
1135 | | 0x1ef4 => 0x1ef5, |
1136 | | 0x1ef6 => 0x1ef7, |
1137 | | 0x1ef8 => 0x1ef9, |
1138 | | 0x1efa => 0x1efb, |
1139 | | 0x1efc => 0x1efd, |
1140 | | 0x1efe => 0x1eff, |
1141 | | 0x1f08 => 0x1f00, |
1142 | | 0x1f09 => 0x1f01, |
1143 | | 0x1f0a => 0x1f02, |
1144 | | 0x1f0b => 0x1f03, |
1145 | | 0x1f0c => 0x1f04, |
1146 | | 0x1f0d => 0x1f05, |
1147 | | 0x1f0e => 0x1f06, |
1148 | | 0x1f0f => 0x1f07, |
1149 | | 0x1f18 => 0x1f10, |
1150 | | 0x1f19 => 0x1f11, |
1151 | | 0x1f1a => 0x1f12, |
1152 | | 0x1f1b => 0x1f13, |
1153 | | 0x1f1c => 0x1f14, |
1154 | | 0x1f1d => 0x1f15, |
1155 | | 0x1f28 => 0x1f20, |
1156 | | 0x1f29 => 0x1f21, |
1157 | | 0x1f2a => 0x1f22, |
1158 | | 0x1f2b => 0x1f23, |
1159 | | 0x1f2c => 0x1f24, |
1160 | | 0x1f2d => 0x1f25, |
1161 | | 0x1f2e => 0x1f26, |
1162 | | 0x1f2f => 0x1f27, |
1163 | | 0x1f38 => 0x1f30, |
1164 | | 0x1f39 => 0x1f31, |
1165 | | 0x1f3a => 0x1f32, |
1166 | | 0x1f3b => 0x1f33, |
1167 | | 0x1f3c => 0x1f34, |
1168 | | 0x1f3d => 0x1f35, |
1169 | | 0x1f3e => 0x1f36, |
1170 | | 0x1f3f => 0x1f37, |
1171 | | 0x1f48 => 0x1f40, |
1172 | | 0x1f49 => 0x1f41, |
1173 | | 0x1f4a => 0x1f42, |
1174 | | 0x1f4b => 0x1f43, |
1175 | | 0x1f4c => 0x1f44, |
1176 | | 0x1f4d => 0x1f45, |
1177 | | 0x1f50 => return Fold::Two('\u{03c5}', '\u{0313}'), |
1178 | | 0x1f52 => return Fold::Three('\u{03c5}', '\u{0313}', '\u{0300}'), |
1179 | | 0x1f54 => return Fold::Three('\u{03c5}', '\u{0313}', '\u{0301}'), |
1180 | | 0x1f56 => return Fold::Three('\u{03c5}', '\u{0313}', '\u{0342}'), |
1181 | | 0x1f59 => 0x1f51, |
1182 | | 0x1f5b => 0x1f53, |
1183 | | 0x1f5d => 0x1f55, |
1184 | | 0x1f5f => 0x1f57, |
1185 | | 0x1f68 => 0x1f60, |
1186 | | 0x1f69 => 0x1f61, |
1187 | | 0x1f6a => 0x1f62, |
1188 | | 0x1f6b => 0x1f63, |
1189 | | 0x1f6c => 0x1f64, |
1190 | | 0x1f6d => 0x1f65, |
1191 | | 0x1f6e => 0x1f66, |
1192 | | 0x1f6f => 0x1f67, |
1193 | | 0x1f80 => return Fold::Two('\u{1f00}', '\u{03b9}'), |
1194 | | 0x1f81 => return Fold::Two('\u{1f01}', '\u{03b9}'), |
1195 | | 0x1f82 => return Fold::Two('\u{1f02}', '\u{03b9}'), |
1196 | | 0x1f83 => return Fold::Two('\u{1f03}', '\u{03b9}'), |
1197 | | 0x1f84 => return Fold::Two('\u{1f04}', '\u{03b9}'), |
1198 | | 0x1f85 => return Fold::Two('\u{1f05}', '\u{03b9}'), |
1199 | | 0x1f86 => return Fold::Two('\u{1f06}', '\u{03b9}'), |
1200 | | 0x1f87 => return Fold::Two('\u{1f07}', '\u{03b9}'), |
1201 | | 0x1f88 => return Fold::Two('\u{1f00}', '\u{03b9}'), |
1202 | | 0x1f89 => return Fold::Two('\u{1f01}', '\u{03b9}'), |
1203 | | 0x1f8a => return Fold::Two('\u{1f02}', '\u{03b9}'), |
1204 | | 0x1f8b => return Fold::Two('\u{1f03}', '\u{03b9}'), |
1205 | | 0x1f8c => return Fold::Two('\u{1f04}', '\u{03b9}'), |
1206 | | 0x1f8d => return Fold::Two('\u{1f05}', '\u{03b9}'), |
1207 | | 0x1f8e => return Fold::Two('\u{1f06}', '\u{03b9}'), |
1208 | | 0x1f8f => return Fold::Two('\u{1f07}', '\u{03b9}'), |
1209 | | 0x1f90 => return Fold::Two('\u{1f20}', '\u{03b9}'), |
1210 | | 0x1f91 => return Fold::Two('\u{1f21}', '\u{03b9}'), |
1211 | | 0x1f92 => return Fold::Two('\u{1f22}', '\u{03b9}'), |
1212 | | 0x1f93 => return Fold::Two('\u{1f23}', '\u{03b9}'), |
1213 | | 0x1f94 => return Fold::Two('\u{1f24}', '\u{03b9}'), |
1214 | | 0x1f95 => return Fold::Two('\u{1f25}', '\u{03b9}'), |
1215 | | 0x1f96 => return Fold::Two('\u{1f26}', '\u{03b9}'), |
1216 | | 0x1f97 => return Fold::Two('\u{1f27}', '\u{03b9}'), |
1217 | | 0x1f98 => return Fold::Two('\u{1f20}', '\u{03b9}'), |
1218 | | 0x1f99 => return Fold::Two('\u{1f21}', '\u{03b9}'), |
1219 | | 0x1f9a => return Fold::Two('\u{1f22}', '\u{03b9}'), |
1220 | | 0x1f9b => return Fold::Two('\u{1f23}', '\u{03b9}'), |
1221 | | 0x1f9c => return Fold::Two('\u{1f24}', '\u{03b9}'), |
1222 | | 0x1f9d => return Fold::Two('\u{1f25}', '\u{03b9}'), |
1223 | | 0x1f9e => return Fold::Two('\u{1f26}', '\u{03b9}'), |
1224 | | 0x1f9f => return Fold::Two('\u{1f27}', '\u{03b9}'), |
1225 | | 0x1fa0 => return Fold::Two('\u{1f60}', '\u{03b9}'), |
1226 | | 0x1fa1 => return Fold::Two('\u{1f61}', '\u{03b9}'), |
1227 | | 0x1fa2 => return Fold::Two('\u{1f62}', '\u{03b9}'), |
1228 | | 0x1fa3 => return Fold::Two('\u{1f63}', '\u{03b9}'), |
1229 | | 0x1fa4 => return Fold::Two('\u{1f64}', '\u{03b9}'), |
1230 | | 0x1fa5 => return Fold::Two('\u{1f65}', '\u{03b9}'), |
1231 | | 0x1fa6 => return Fold::Two('\u{1f66}', '\u{03b9}'), |
1232 | | 0x1fa7 => return Fold::Two('\u{1f67}', '\u{03b9}'), |
1233 | | 0x1fa8 => return Fold::Two('\u{1f60}', '\u{03b9}'), |
1234 | | 0x1fa9 => return Fold::Two('\u{1f61}', '\u{03b9}'), |
1235 | | 0x1faa => return Fold::Two('\u{1f62}', '\u{03b9}'), |
1236 | | 0x1fab => return Fold::Two('\u{1f63}', '\u{03b9}'), |
1237 | | 0x1fac => return Fold::Two('\u{1f64}', '\u{03b9}'), |
1238 | | 0x1fad => return Fold::Two('\u{1f65}', '\u{03b9}'), |
1239 | | 0x1fae => return Fold::Two('\u{1f66}', '\u{03b9}'), |
1240 | | 0x1faf => return Fold::Two('\u{1f67}', '\u{03b9}'), |
1241 | | 0x1fb2 => return Fold::Two('\u{1f70}', '\u{03b9}'), |
1242 | | 0x1fb3 => return Fold::Two('\u{03b1}', '\u{03b9}'), |
1243 | | 0x1fb4 => return Fold::Two('\u{03ac}', '\u{03b9}'), |
1244 | | 0x1fb6 => return Fold::Two('\u{03b1}', '\u{0342}'), |
1245 | | 0x1fb7 => return Fold::Three('\u{03b1}', '\u{0342}', '\u{03b9}'), |
1246 | | 0x1fb8 => 0x1fb0, |
1247 | | 0x1fb9 => 0x1fb1, |
1248 | | 0x1fba => 0x1f70, |
1249 | | 0x1fbb => 0x1f71, |
1250 | | 0x1fbc => return Fold::Two('\u{03b1}', '\u{03b9}'), |
1251 | | 0x1fbe => 0x03b9, |
1252 | | 0x1fc2 => return Fold::Two('\u{1f74}', '\u{03b9}'), |
1253 | | 0x1fc3 => return Fold::Two('\u{03b7}', '\u{03b9}'), |
1254 | | 0x1fc4 => return Fold::Two('\u{03ae}', '\u{03b9}'), |
1255 | | 0x1fc6 => return Fold::Two('\u{03b7}', '\u{0342}'), |
1256 | | 0x1fc7 => return Fold::Three('\u{03b7}', '\u{0342}', '\u{03b9}'), |
1257 | | 0x1fc8 => 0x1f72, |
1258 | | 0x1fc9 => 0x1f73, |
1259 | | 0x1fca => 0x1f74, |
1260 | | 0x1fcb => 0x1f75, |
1261 | | 0x1fcc => return Fold::Two('\u{03b7}', '\u{03b9}'), |
1262 | | 0x1fd2 => return Fold::Three('\u{03b9}', '\u{0308}', '\u{0300}'), |
1263 | | 0x1fd3 => return Fold::Three('\u{03b9}', '\u{0308}', '\u{0301}'), |
1264 | | 0x1fd6 => return Fold::Two('\u{03b9}', '\u{0342}'), |
1265 | | 0x1fd7 => return Fold::Three('\u{03b9}', '\u{0308}', '\u{0342}'), |
1266 | | 0x1fd8 => 0x1fd0, |
1267 | | 0x1fd9 => 0x1fd1, |
1268 | | 0x1fda => 0x1f76, |
1269 | | 0x1fdb => 0x1f77, |
1270 | | 0x1fe2 => return Fold::Three('\u{03c5}', '\u{0308}', '\u{0300}'), |
1271 | | 0x1fe3 => return Fold::Three('\u{03c5}', '\u{0308}', '\u{0301}'), |
1272 | | 0x1fe4 => return Fold::Two('\u{03c1}', '\u{0313}'), |
1273 | | 0x1fe6 => return Fold::Two('\u{03c5}', '\u{0342}'), |
1274 | | 0x1fe7 => return Fold::Three('\u{03c5}', '\u{0308}', '\u{0342}'), |
1275 | | 0x1fe8 => 0x1fe0, |
1276 | | 0x1fe9 => 0x1fe1, |
1277 | | 0x1fea => 0x1f7a, |
1278 | | 0x1feb => 0x1f7b, |
1279 | | 0x1fec => 0x1fe5, |
1280 | | 0x1ff2 => return Fold::Two('\u{1f7c}', '\u{03b9}'), |
1281 | | 0x1ff3 => return Fold::Two('\u{03c9}', '\u{03b9}'), |
1282 | | 0x1ff4 => return Fold::Two('\u{03ce}', '\u{03b9}'), |
1283 | | 0x1ff6 => return Fold::Two('\u{03c9}', '\u{0342}'), |
1284 | | 0x1ff7 => return Fold::Three('\u{03c9}', '\u{0342}', '\u{03b9}'), |
1285 | | 0x1ff8 => 0x1f78, |
1286 | | 0x1ff9 => 0x1f79, |
1287 | | 0x1ffa => 0x1f7c, |
1288 | | 0x1ffb => 0x1f7d, |
1289 | | 0x1ffc => return Fold::Two('\u{03c9}', '\u{03b9}'), |
1290 | | 0x2126 => 0x03c9, |
1291 | | 0x212a => 0x006b, |
1292 | | 0x212b => 0x00e5, |
1293 | | 0x2132 => 0x214e, |
1294 | | 0x2160 => 0x2170, |
1295 | | 0x2161 => 0x2171, |
1296 | | 0x2162 => 0x2172, |
1297 | | 0x2163 => 0x2173, |
1298 | | 0x2164 => 0x2174, |
1299 | | 0x2165 => 0x2175, |
1300 | | 0x2166 => 0x2176, |
1301 | | 0x2167 => 0x2177, |
1302 | | 0x2168 => 0x2178, |
1303 | | 0x2169 => 0x2179, |
1304 | | 0x216a => 0x217a, |
1305 | | 0x216b => 0x217b, |
1306 | | 0x216c => 0x217c, |
1307 | | 0x216d => 0x217d, |
1308 | | 0x216e => 0x217e, |
1309 | | 0x216f => 0x217f, |
1310 | | 0x2183 => 0x2184, |
1311 | | 0x24b6 => 0x24d0, |
1312 | | 0x24b7 => 0x24d1, |
1313 | | 0x24b8 => 0x24d2, |
1314 | | 0x24b9 => 0x24d3, |
1315 | | 0x24ba => 0x24d4, |
1316 | | 0x24bb => 0x24d5, |
1317 | | 0x24bc => 0x24d6, |
1318 | | 0x24bd => 0x24d7, |
1319 | | 0x24be => 0x24d8, |
1320 | | 0x24bf => 0x24d9, |
1321 | | 0x24c0 => 0x24da, |
1322 | | 0x24c1 => 0x24db, |
1323 | | 0x24c2 => 0x24dc, |
1324 | | 0x24c3 => 0x24dd, |
1325 | | 0x24c4 => 0x24de, |
1326 | | 0x24c5 => 0x24df, |
1327 | | 0x24c6 => 0x24e0, |
1328 | | 0x24c7 => 0x24e1, |
1329 | | 0x24c8 => 0x24e2, |
1330 | | 0x24c9 => 0x24e3, |
1331 | | 0x24ca => 0x24e4, |
1332 | | 0x24cb => 0x24e5, |
1333 | | 0x24cc => 0x24e6, |
1334 | | 0x24cd => 0x24e7, |
1335 | | 0x24ce => 0x24e8, |
1336 | | 0x24cf => 0x24e9, |
1337 | | 0x2c00 => 0x2c30, |
1338 | | 0x2c01 => 0x2c31, |
1339 | | 0x2c02 => 0x2c32, |
1340 | | 0x2c03 => 0x2c33, |
1341 | | 0x2c04 => 0x2c34, |
1342 | | 0x2c05 => 0x2c35, |
1343 | | 0x2c06 => 0x2c36, |
1344 | | 0x2c07 => 0x2c37, |
1345 | | 0x2c08 => 0x2c38, |
1346 | | 0x2c09 => 0x2c39, |
1347 | | 0x2c0a => 0x2c3a, |
1348 | | 0x2c0b => 0x2c3b, |
1349 | | 0x2c0c => 0x2c3c, |
1350 | | 0x2c0d => 0x2c3d, |
1351 | | 0x2c0e => 0x2c3e, |
1352 | | 0x2c0f => 0x2c3f, |
1353 | | 0x2c10 => 0x2c40, |
1354 | | 0x2c11 => 0x2c41, |
1355 | | 0x2c12 => 0x2c42, |
1356 | | 0x2c13 => 0x2c43, |
1357 | | 0x2c14 => 0x2c44, |
1358 | | 0x2c15 => 0x2c45, |
1359 | | 0x2c16 => 0x2c46, |
1360 | | 0x2c17 => 0x2c47, |
1361 | | 0x2c18 => 0x2c48, |
1362 | | 0x2c19 => 0x2c49, |
1363 | | 0x2c1a => 0x2c4a, |
1364 | | 0x2c1b => 0x2c4b, |
1365 | | 0x2c1c => 0x2c4c, |
1366 | | 0x2c1d => 0x2c4d, |
1367 | | 0x2c1e => 0x2c4e, |
1368 | | 0x2c1f => 0x2c4f, |
1369 | | 0x2c20 => 0x2c50, |
1370 | | 0x2c21 => 0x2c51, |
1371 | | 0x2c22 => 0x2c52, |
1372 | | 0x2c23 => 0x2c53, |
1373 | | 0x2c24 => 0x2c54, |
1374 | | 0x2c25 => 0x2c55, |
1375 | | 0x2c26 => 0x2c56, |
1376 | | 0x2c27 => 0x2c57, |
1377 | | 0x2c28 => 0x2c58, |
1378 | | 0x2c29 => 0x2c59, |
1379 | | 0x2c2a => 0x2c5a, |
1380 | | 0x2c2b => 0x2c5b, |
1381 | | 0x2c2c => 0x2c5c, |
1382 | | 0x2c2d => 0x2c5d, |
1383 | | 0x2c2e => 0x2c5e, |
1384 | | 0x2c2f => 0x2c5f, |
1385 | | 0x2c60 => 0x2c61, |
1386 | | 0x2c62 => 0x026b, |
1387 | | 0x2c63 => 0x1d7d, |
1388 | | 0x2c64 => 0x027d, |
1389 | | 0x2c67 => 0x2c68, |
1390 | | 0x2c69 => 0x2c6a, |
1391 | | 0x2c6b => 0x2c6c, |
1392 | | 0x2c6d => 0x0251, |
1393 | | 0x2c6e => 0x0271, |
1394 | | 0x2c6f => 0x0250, |
1395 | | 0x2c70 => 0x0252, |
1396 | | 0x2c72 => 0x2c73, |
1397 | | 0x2c75 => 0x2c76, |
1398 | | 0x2c7e => 0x023f, |
1399 | | 0x2c7f => 0x0240, |
1400 | | 0x2c80 => 0x2c81, |
1401 | | 0x2c82 => 0x2c83, |
1402 | | 0x2c84 => 0x2c85, |
1403 | | 0x2c86 => 0x2c87, |
1404 | | 0x2c88 => 0x2c89, |
1405 | | 0x2c8a => 0x2c8b, |
1406 | | 0x2c8c => 0x2c8d, |
1407 | | 0x2c8e => 0x2c8f, |
1408 | | 0x2c90 => 0x2c91, |
1409 | | 0x2c92 => 0x2c93, |
1410 | | 0x2c94 => 0x2c95, |
1411 | | 0x2c96 => 0x2c97, |
1412 | | 0x2c98 => 0x2c99, |
1413 | | 0x2c9a => 0x2c9b, |
1414 | | 0x2c9c => 0x2c9d, |
1415 | | 0x2c9e => 0x2c9f, |
1416 | | 0x2ca0 => 0x2ca1, |
1417 | | 0x2ca2 => 0x2ca3, |
1418 | | 0x2ca4 => 0x2ca5, |
1419 | | 0x2ca6 => 0x2ca7, |
1420 | | 0x2ca8 => 0x2ca9, |
1421 | | 0x2caa => 0x2cab, |
1422 | | 0x2cac => 0x2cad, |
1423 | | 0x2cae => 0x2caf, |
1424 | | 0x2cb0 => 0x2cb1, |
1425 | | 0x2cb2 => 0x2cb3, |
1426 | | 0x2cb4 => 0x2cb5, |
1427 | | 0x2cb6 => 0x2cb7, |
1428 | | 0x2cb8 => 0x2cb9, |
1429 | | 0x2cba => 0x2cbb, |
1430 | | 0x2cbc => 0x2cbd, |
1431 | | 0x2cbe => 0x2cbf, |
1432 | | 0x2cc0 => 0x2cc1, |
1433 | | 0x2cc2 => 0x2cc3, |
1434 | | 0x2cc4 => 0x2cc5, |
1435 | | 0x2cc6 => 0x2cc7, |
1436 | | 0x2cc8 => 0x2cc9, |
1437 | | 0x2cca => 0x2ccb, |
1438 | | 0x2ccc => 0x2ccd, |
1439 | | 0x2cce => 0x2ccf, |
1440 | | 0x2cd0 => 0x2cd1, |
1441 | | 0x2cd2 => 0x2cd3, |
1442 | | 0x2cd4 => 0x2cd5, |
1443 | | 0x2cd6 => 0x2cd7, |
1444 | | 0x2cd8 => 0x2cd9, |
1445 | | 0x2cda => 0x2cdb, |
1446 | | 0x2cdc => 0x2cdd, |
1447 | | 0x2cde => 0x2cdf, |
1448 | | 0x2ce0 => 0x2ce1, |
1449 | | 0x2ce2 => 0x2ce3, |
1450 | | 0x2ceb => 0x2cec, |
1451 | | 0x2ced => 0x2cee, |
1452 | | 0x2cf2 => 0x2cf3, |
1453 | | 0xa640 => 0xa641, |
1454 | | 0xa642 => 0xa643, |
1455 | | 0xa644 => 0xa645, |
1456 | | 0xa646 => 0xa647, |
1457 | | 0xa648 => 0xa649, |
1458 | | 0xa64a => 0xa64b, |
1459 | | 0xa64c => 0xa64d, |
1460 | | 0xa64e => 0xa64f, |
1461 | | 0xa650 => 0xa651, |
1462 | | 0xa652 => 0xa653, |
1463 | | 0xa654 => 0xa655, |
1464 | | 0xa656 => 0xa657, |
1465 | | 0xa658 => 0xa659, |
1466 | | 0xa65a => 0xa65b, |
1467 | | 0xa65c => 0xa65d, |
1468 | | 0xa65e => 0xa65f, |
1469 | | 0xa660 => 0xa661, |
1470 | | 0xa662 => 0xa663, |
1471 | | 0xa664 => 0xa665, |
1472 | | 0xa666 => 0xa667, |
1473 | | 0xa668 => 0xa669, |
1474 | | 0xa66a => 0xa66b, |
1475 | | 0xa66c => 0xa66d, |
1476 | | 0xa680 => 0xa681, |
1477 | | 0xa682 => 0xa683, |
1478 | | 0xa684 => 0xa685, |
1479 | | 0xa686 => 0xa687, |
1480 | | 0xa688 => 0xa689, |
1481 | | 0xa68a => 0xa68b, |
1482 | | 0xa68c => 0xa68d, |
1483 | | 0xa68e => 0xa68f, |
1484 | | 0xa690 => 0xa691, |
1485 | | 0xa692 => 0xa693, |
1486 | | 0xa694 => 0xa695, |
1487 | | 0xa696 => 0xa697, |
1488 | | 0xa698 => 0xa699, |
1489 | | 0xa69a => 0xa69b, |
1490 | | 0xa722 => 0xa723, |
1491 | | 0xa724 => 0xa725, |
1492 | | 0xa726 => 0xa727, |
1493 | | 0xa728 => 0xa729, |
1494 | | 0xa72a => 0xa72b, |
1495 | | 0xa72c => 0xa72d, |
1496 | | 0xa72e => 0xa72f, |
1497 | | 0xa732 => 0xa733, |
1498 | | 0xa734 => 0xa735, |
1499 | | 0xa736 => 0xa737, |
1500 | | 0xa738 => 0xa739, |
1501 | | 0xa73a => 0xa73b, |
1502 | | 0xa73c => 0xa73d, |
1503 | | 0xa73e => 0xa73f, |
1504 | | 0xa740 => 0xa741, |
1505 | | 0xa742 => 0xa743, |
1506 | | 0xa744 => 0xa745, |
1507 | | 0xa746 => 0xa747, |
1508 | | 0xa748 => 0xa749, |
1509 | | 0xa74a => 0xa74b, |
1510 | | 0xa74c => 0xa74d, |
1511 | | 0xa74e => 0xa74f, |
1512 | | 0xa750 => 0xa751, |
1513 | | 0xa752 => 0xa753, |
1514 | | 0xa754 => 0xa755, |
1515 | | 0xa756 => 0xa757, |
1516 | | 0xa758 => 0xa759, |
1517 | | 0xa75a => 0xa75b, |
1518 | | 0xa75c => 0xa75d, |
1519 | | 0xa75e => 0xa75f, |
1520 | | 0xa760 => 0xa761, |
1521 | | 0xa762 => 0xa763, |
1522 | | 0xa764 => 0xa765, |
1523 | | 0xa766 => 0xa767, |
1524 | | 0xa768 => 0xa769, |
1525 | | 0xa76a => 0xa76b, |
1526 | | 0xa76c => 0xa76d, |
1527 | | 0xa76e => 0xa76f, |
1528 | | 0xa779 => 0xa77a, |
1529 | | 0xa77b => 0xa77c, |
1530 | | 0xa77d => 0x1d79, |
1531 | | 0xa77e => 0xa77f, |
1532 | | 0xa780 => 0xa781, |
1533 | | 0xa782 => 0xa783, |
1534 | | 0xa784 => 0xa785, |
1535 | | 0xa786 => 0xa787, |
1536 | | 0xa78b => 0xa78c, |
1537 | | 0xa78d => 0x0265, |
1538 | | 0xa790 => 0xa791, |
1539 | | 0xa792 => 0xa793, |
1540 | | 0xa796 => 0xa797, |
1541 | | 0xa798 => 0xa799, |
1542 | | 0xa79a => 0xa79b, |
1543 | | 0xa79c => 0xa79d, |
1544 | | 0xa79e => 0xa79f, |
1545 | | 0xa7a0 => 0xa7a1, |
1546 | | 0xa7a2 => 0xa7a3, |
1547 | | 0xa7a4 => 0xa7a5, |
1548 | | 0xa7a6 => 0xa7a7, |
1549 | | 0xa7a8 => 0xa7a9, |
1550 | | 0xa7aa => 0x0266, |
1551 | | 0xa7ab => 0x025c, |
1552 | | 0xa7ac => 0x0261, |
1553 | | 0xa7ad => 0x026c, |
1554 | | 0xa7ae => 0x026a, |
1555 | | 0xa7b0 => 0x029e, |
1556 | | 0xa7b1 => 0x0287, |
1557 | | 0xa7b2 => 0x029d, |
1558 | | 0xa7b3 => 0xab53, |
1559 | | 0xa7b4 => 0xa7b5, |
1560 | | 0xa7b6 => 0xa7b7, |
1561 | | 0xa7b8 => 0xa7b9, |
1562 | | 0xa7ba => 0xa7bb, |
1563 | | 0xa7bc => 0xa7bd, |
1564 | | 0xa7be => 0xa7bf, |
1565 | | 0xa7c0 => 0xa7c1, |
1566 | | 0xa7c2 => 0xa7c3, |
1567 | | 0xa7c4 => 0xa794, |
1568 | | 0xa7c5 => 0x0282, |
1569 | | 0xa7c6 => 0x1d8e, |
1570 | | 0xa7c7 => 0xa7c8, |
1571 | | 0xa7c9 => 0xa7ca, |
1572 | | 0xa7cb => 0x0264, |
1573 | | 0xa7cc => 0xa7cd, |
1574 | | 0xa7d0 => 0xa7d1, |
1575 | | 0xa7d6 => 0xa7d7, |
1576 | | 0xa7d8 => 0xa7d9, |
1577 | | 0xa7da => 0xa7db, |
1578 | | 0xa7dc => 0x019b, |
1579 | | 0xa7f5 => 0xa7f6, |
1580 | | 0xab70 => 0x13a0, |
1581 | | 0xab71 => 0x13a1, |
1582 | | 0xab72 => 0x13a2, |
1583 | | 0xab73 => 0x13a3, |
1584 | | 0xab74 => 0x13a4, |
1585 | | 0xab75 => 0x13a5, |
1586 | | 0xab76 => 0x13a6, |
1587 | | 0xab77 => 0x13a7, |
1588 | | 0xab78 => 0x13a8, |
1589 | | 0xab79 => 0x13a9, |
1590 | | 0xab7a => 0x13aa, |
1591 | | 0xab7b => 0x13ab, |
1592 | | 0xab7c => 0x13ac, |
1593 | | 0xab7d => 0x13ad, |
1594 | | 0xab7e => 0x13ae, |
1595 | | 0xab7f => 0x13af, |
1596 | | 0xab80 => 0x13b0, |
1597 | | 0xab81 => 0x13b1, |
1598 | | 0xab82 => 0x13b2, |
1599 | | 0xab83 => 0x13b3, |
1600 | | 0xab84 => 0x13b4, |
1601 | | 0xab85 => 0x13b5, |
1602 | | 0xab86 => 0x13b6, |
1603 | | 0xab87 => 0x13b7, |
1604 | | 0xab88 => 0x13b8, |
1605 | | 0xab89 => 0x13b9, |
1606 | | 0xab8a => 0x13ba, |
1607 | | 0xab8b => 0x13bb, |
1608 | | 0xab8c => 0x13bc, |
1609 | | 0xab8d => 0x13bd, |
1610 | | 0xab8e => 0x13be, |
1611 | | 0xab8f => 0x13bf, |
1612 | | 0xab90 => 0x13c0, |
1613 | | 0xab91 => 0x13c1, |
1614 | | 0xab92 => 0x13c2, |
1615 | | 0xab93 => 0x13c3, |
1616 | | 0xab94 => 0x13c4, |
1617 | | 0xab95 => 0x13c5, |
1618 | | 0xab96 => 0x13c6, |
1619 | | 0xab97 => 0x13c7, |
1620 | | 0xab98 => 0x13c8, |
1621 | | 0xab99 => 0x13c9, |
1622 | | 0xab9a => 0x13ca, |
1623 | | 0xab9b => 0x13cb, |
1624 | | 0xab9c => 0x13cc, |
1625 | | 0xab9d => 0x13cd, |
1626 | | 0xab9e => 0x13ce, |
1627 | | 0xab9f => 0x13cf, |
1628 | | 0xaba0 => 0x13d0, |
1629 | | 0xaba1 => 0x13d1, |
1630 | | 0xaba2 => 0x13d2, |
1631 | | 0xaba3 => 0x13d3, |
1632 | | 0xaba4 => 0x13d4, |
1633 | | 0xaba5 => 0x13d5, |
1634 | | 0xaba6 => 0x13d6, |
1635 | | 0xaba7 => 0x13d7, |
1636 | | 0xaba8 => 0x13d8, |
1637 | | 0xaba9 => 0x13d9, |
1638 | | 0xabaa => 0x13da, |
1639 | | 0xabab => 0x13db, |
1640 | | 0xabac => 0x13dc, |
1641 | | 0xabad => 0x13dd, |
1642 | | 0xabae => 0x13de, |
1643 | | 0xabaf => 0x13df, |
1644 | | 0xabb0 => 0x13e0, |
1645 | | 0xabb1 => 0x13e1, |
1646 | | 0xabb2 => 0x13e2, |
1647 | | 0xabb3 => 0x13e3, |
1648 | | 0xabb4 => 0x13e4, |
1649 | | 0xabb5 => 0x13e5, |
1650 | | 0xabb6 => 0x13e6, |
1651 | | 0xabb7 => 0x13e7, |
1652 | | 0xabb8 => 0x13e8, |
1653 | | 0xabb9 => 0x13e9, |
1654 | | 0xabba => 0x13ea, |
1655 | | 0xabbb => 0x13eb, |
1656 | | 0xabbc => 0x13ec, |
1657 | | 0xabbd => 0x13ed, |
1658 | | 0xabbe => 0x13ee, |
1659 | | 0xabbf => 0x13ef, |
1660 | | 0xfb00 => return Fold::Two('\u{0066}', '\u{0066}'), |
1661 | | 0xfb01 => return Fold::Two('\u{0066}', '\u{0069}'), |
1662 | | 0xfb02 => return Fold::Two('\u{0066}', '\u{006c}'), |
1663 | | 0xfb03 => return Fold::Three('\u{0066}', '\u{0066}', '\u{0069}'), |
1664 | | 0xfb04 => return Fold::Three('\u{0066}', '\u{0066}', '\u{006c}'), |
1665 | | 0xfb05 => return Fold::Two('\u{0073}', '\u{0074}'), |
1666 | | 0xfb06 => return Fold::Two('\u{0073}', '\u{0074}'), |
1667 | | 0xfb13 => return Fold::Two('\u{0574}', '\u{0576}'), |
1668 | | 0xfb14 => return Fold::Two('\u{0574}', '\u{0565}'), |
1669 | | 0xfb15 => return Fold::Two('\u{0574}', '\u{056b}'), |
1670 | | 0xfb16 => return Fold::Two('\u{057e}', '\u{0576}'), |
1671 | | 0xfb17 => return Fold::Two('\u{0574}', '\u{056d}'), |
1672 | | 0xff21 => 0xff41, |
1673 | | 0xff22 => 0xff42, |
1674 | | 0xff23 => 0xff43, |
1675 | | 0xff24 => 0xff44, |
1676 | | 0xff25 => 0xff45, |
1677 | | 0xff26 => 0xff46, |
1678 | | 0xff27 => 0xff47, |
1679 | | 0xff28 => 0xff48, |
1680 | | 0xff29 => 0xff49, |
1681 | | 0xff2a => 0xff4a, |
1682 | | 0xff2b => 0xff4b, |
1683 | | 0xff2c => 0xff4c, |
1684 | | 0xff2d => 0xff4d, |
1685 | | 0xff2e => 0xff4e, |
1686 | | 0xff2f => 0xff4f, |
1687 | | 0xff30 => 0xff50, |
1688 | | 0xff31 => 0xff51, |
1689 | | 0xff32 => 0xff52, |
1690 | | 0xff33 => 0xff53, |
1691 | | 0xff34 => 0xff54, |
1692 | | 0xff35 => 0xff55, |
1693 | | 0xff36 => 0xff56, |
1694 | | 0xff37 => 0xff57, |
1695 | | 0xff38 => 0xff58, |
1696 | | 0xff39 => 0xff59, |
1697 | | 0xff3a => 0xff5a, |
1698 | | 0x10400 => 0x10428, |
1699 | | 0x10401 => 0x10429, |
1700 | | 0x10402 => 0x1042a, |
1701 | | 0x10403 => 0x1042b, |
1702 | | 0x10404 => 0x1042c, |
1703 | | 0x10405 => 0x1042d, |
1704 | | 0x10406 => 0x1042e, |
1705 | | 0x10407 => 0x1042f, |
1706 | | 0x10408 => 0x10430, |
1707 | | 0x10409 => 0x10431, |
1708 | | 0x1040a => 0x10432, |
1709 | | 0x1040b => 0x10433, |
1710 | | 0x1040c => 0x10434, |
1711 | | 0x1040d => 0x10435, |
1712 | | 0x1040e => 0x10436, |
1713 | | 0x1040f => 0x10437, |
1714 | | 0x10410 => 0x10438, |
1715 | | 0x10411 => 0x10439, |
1716 | | 0x10412 => 0x1043a, |
1717 | | 0x10413 => 0x1043b, |
1718 | | 0x10414 => 0x1043c, |
1719 | | 0x10415 => 0x1043d, |
1720 | | 0x10416 => 0x1043e, |
1721 | | 0x10417 => 0x1043f, |
1722 | | 0x10418 => 0x10440, |
1723 | | 0x10419 => 0x10441, |
1724 | | 0x1041a => 0x10442, |
1725 | | 0x1041b => 0x10443, |
1726 | | 0x1041c => 0x10444, |
1727 | | 0x1041d => 0x10445, |
1728 | | 0x1041e => 0x10446, |
1729 | | 0x1041f => 0x10447, |
1730 | | 0x10420 => 0x10448, |
1731 | | 0x10421 => 0x10449, |
1732 | | 0x10422 => 0x1044a, |
1733 | | 0x10423 => 0x1044b, |
1734 | | 0x10424 => 0x1044c, |
1735 | | 0x10425 => 0x1044d, |
1736 | | 0x10426 => 0x1044e, |
1737 | | 0x10427 => 0x1044f, |
1738 | | 0x104b0 => 0x104d8, |
1739 | | 0x104b1 => 0x104d9, |
1740 | | 0x104b2 => 0x104da, |
1741 | | 0x104b3 => 0x104db, |
1742 | | 0x104b4 => 0x104dc, |
1743 | | 0x104b5 => 0x104dd, |
1744 | | 0x104b6 => 0x104de, |
1745 | | 0x104b7 => 0x104df, |
1746 | | 0x104b8 => 0x104e0, |
1747 | | 0x104b9 => 0x104e1, |
1748 | | 0x104ba => 0x104e2, |
1749 | | 0x104bb => 0x104e3, |
1750 | | 0x104bc => 0x104e4, |
1751 | | 0x104bd => 0x104e5, |
1752 | | 0x104be => 0x104e6, |
1753 | | 0x104bf => 0x104e7, |
1754 | | 0x104c0 => 0x104e8, |
1755 | | 0x104c1 => 0x104e9, |
1756 | | 0x104c2 => 0x104ea, |
1757 | | 0x104c3 => 0x104eb, |
1758 | | 0x104c4 => 0x104ec, |
1759 | | 0x104c5 => 0x104ed, |
1760 | | 0x104c6 => 0x104ee, |
1761 | | 0x104c7 => 0x104ef, |
1762 | | 0x104c8 => 0x104f0, |
1763 | | 0x104c9 => 0x104f1, |
1764 | | 0x104ca => 0x104f2, |
1765 | | 0x104cb => 0x104f3, |
1766 | | 0x104cc => 0x104f4, |
1767 | | 0x104cd => 0x104f5, |
1768 | | 0x104ce => 0x104f6, |
1769 | | 0x104cf => 0x104f7, |
1770 | | 0x104d0 => 0x104f8, |
1771 | | 0x104d1 => 0x104f9, |
1772 | | 0x104d2 => 0x104fa, |
1773 | | 0x104d3 => 0x104fb, |
1774 | | 0x10570 => 0x10597, |
1775 | | 0x10571 => 0x10598, |
1776 | | 0x10572 => 0x10599, |
1777 | | 0x10573 => 0x1059a, |
1778 | | 0x10574 => 0x1059b, |
1779 | | 0x10575 => 0x1059c, |
1780 | | 0x10576 => 0x1059d, |
1781 | | 0x10577 => 0x1059e, |
1782 | | 0x10578 => 0x1059f, |
1783 | | 0x10579 => 0x105a0, |
1784 | | 0x1057a => 0x105a1, |
1785 | | 0x1057c => 0x105a3, |
1786 | | 0x1057d => 0x105a4, |
1787 | | 0x1057e => 0x105a5, |
1788 | | 0x1057f => 0x105a6, |
1789 | | 0x10580 => 0x105a7, |
1790 | | 0x10581 => 0x105a8, |
1791 | | 0x10582 => 0x105a9, |
1792 | | 0x10583 => 0x105aa, |
1793 | | 0x10584 => 0x105ab, |
1794 | | 0x10585 => 0x105ac, |
1795 | | 0x10586 => 0x105ad, |
1796 | | 0x10587 => 0x105ae, |
1797 | | 0x10588 => 0x105af, |
1798 | | 0x10589 => 0x105b0, |
1799 | | 0x1058a => 0x105b1, |
1800 | | 0x1058c => 0x105b3, |
1801 | | 0x1058d => 0x105b4, |
1802 | | 0x1058e => 0x105b5, |
1803 | | 0x1058f => 0x105b6, |
1804 | | 0x10590 => 0x105b7, |
1805 | | 0x10591 => 0x105b8, |
1806 | | 0x10592 => 0x105b9, |
1807 | | 0x10594 => 0x105bb, |
1808 | | 0x10595 => 0x105bc, |
1809 | | 0x10c80 => 0x10cc0, |
1810 | | 0x10c81 => 0x10cc1, |
1811 | | 0x10c82 => 0x10cc2, |
1812 | | 0x10c83 => 0x10cc3, |
1813 | | 0x10c84 => 0x10cc4, |
1814 | | 0x10c85 => 0x10cc5, |
1815 | | 0x10c86 => 0x10cc6, |
1816 | | 0x10c87 => 0x10cc7, |
1817 | | 0x10c88 => 0x10cc8, |
1818 | | 0x10c89 => 0x10cc9, |
1819 | | 0x10c8a => 0x10cca, |
1820 | | 0x10c8b => 0x10ccb, |
1821 | | 0x10c8c => 0x10ccc, |
1822 | | 0x10c8d => 0x10ccd, |
1823 | | 0x10c8e => 0x10cce, |
1824 | | 0x10c8f => 0x10ccf, |
1825 | | 0x10c90 => 0x10cd0, |
1826 | | 0x10c91 => 0x10cd1, |
1827 | | 0x10c92 => 0x10cd2, |
1828 | | 0x10c93 => 0x10cd3, |
1829 | | 0x10c94 => 0x10cd4, |
1830 | | 0x10c95 => 0x10cd5, |
1831 | | 0x10c96 => 0x10cd6, |
1832 | | 0x10c97 => 0x10cd7, |
1833 | | 0x10c98 => 0x10cd8, |
1834 | | 0x10c99 => 0x10cd9, |
1835 | | 0x10c9a => 0x10cda, |
1836 | | 0x10c9b => 0x10cdb, |
1837 | | 0x10c9c => 0x10cdc, |
1838 | | 0x10c9d => 0x10cdd, |
1839 | | 0x10c9e => 0x10cde, |
1840 | | 0x10c9f => 0x10cdf, |
1841 | | 0x10ca0 => 0x10ce0, |
1842 | | 0x10ca1 => 0x10ce1, |
1843 | | 0x10ca2 => 0x10ce2, |
1844 | | 0x10ca3 => 0x10ce3, |
1845 | | 0x10ca4 => 0x10ce4, |
1846 | | 0x10ca5 => 0x10ce5, |
1847 | | 0x10ca6 => 0x10ce6, |
1848 | | 0x10ca7 => 0x10ce7, |
1849 | | 0x10ca8 => 0x10ce8, |
1850 | | 0x10ca9 => 0x10ce9, |
1851 | | 0x10caa => 0x10cea, |
1852 | | 0x10cab => 0x10ceb, |
1853 | | 0x10cac => 0x10cec, |
1854 | | 0x10cad => 0x10ced, |
1855 | | 0x10cae => 0x10cee, |
1856 | | 0x10caf => 0x10cef, |
1857 | | 0x10cb0 => 0x10cf0, |
1858 | | 0x10cb1 => 0x10cf1, |
1859 | | 0x10cb2 => 0x10cf2, |
1860 | | 0x10d50 => 0x10d70, |
1861 | | 0x10d51 => 0x10d71, |
1862 | | 0x10d52 => 0x10d72, |
1863 | | 0x10d53 => 0x10d73, |
1864 | | 0x10d54 => 0x10d74, |
1865 | | 0x10d55 => 0x10d75, |
1866 | | 0x10d56 => 0x10d76, |
1867 | | 0x10d57 => 0x10d77, |
1868 | | 0x10d58 => 0x10d78, |
1869 | | 0x10d59 => 0x10d79, |
1870 | | 0x10d5a => 0x10d7a, |
1871 | | 0x10d5b => 0x10d7b, |
1872 | | 0x10d5c => 0x10d7c, |
1873 | | 0x10d5d => 0x10d7d, |
1874 | | 0x10d5e => 0x10d7e, |
1875 | | 0x10d5f => 0x10d7f, |
1876 | | 0x10d60 => 0x10d80, |
1877 | | 0x10d61 => 0x10d81, |
1878 | | 0x10d62 => 0x10d82, |
1879 | | 0x10d63 => 0x10d83, |
1880 | | 0x10d64 => 0x10d84, |
1881 | | 0x10d65 => 0x10d85, |
1882 | | 0x118a0 => 0x118c0, |
1883 | | 0x118a1 => 0x118c1, |
1884 | | 0x118a2 => 0x118c2, |
1885 | | 0x118a3 => 0x118c3, |
1886 | | 0x118a4 => 0x118c4, |
1887 | | 0x118a5 => 0x118c5, |
1888 | | 0x118a6 => 0x118c6, |
1889 | | 0x118a7 => 0x118c7, |
1890 | | 0x118a8 => 0x118c8, |
1891 | | 0x118a9 => 0x118c9, |
1892 | | 0x118aa => 0x118ca, |
1893 | | 0x118ab => 0x118cb, |
1894 | | 0x118ac => 0x118cc, |
1895 | | 0x118ad => 0x118cd, |
1896 | | 0x118ae => 0x118ce, |
1897 | | 0x118af => 0x118cf, |
1898 | | 0x118b0 => 0x118d0, |
1899 | | 0x118b1 => 0x118d1, |
1900 | | 0x118b2 => 0x118d2, |
1901 | | 0x118b3 => 0x118d3, |
1902 | | 0x118b4 => 0x118d4, |
1903 | | 0x118b5 => 0x118d5, |
1904 | | 0x118b6 => 0x118d6, |
1905 | | 0x118b7 => 0x118d7, |
1906 | | 0x118b8 => 0x118d8, |
1907 | | 0x118b9 => 0x118d9, |
1908 | | 0x118ba => 0x118da, |
1909 | | 0x118bb => 0x118db, |
1910 | | 0x118bc => 0x118dc, |
1911 | | 0x118bd => 0x118dd, |
1912 | | 0x118be => 0x118de, |
1913 | | 0x118bf => 0x118df, |
1914 | | 0x16e40 => 0x16e60, |
1915 | | 0x16e41 => 0x16e61, |
1916 | | 0x16e42 => 0x16e62, |
1917 | | 0x16e43 => 0x16e63, |
1918 | | 0x16e44 => 0x16e64, |
1919 | | 0x16e45 => 0x16e65, |
1920 | | 0x16e46 => 0x16e66, |
1921 | | 0x16e47 => 0x16e67, |
1922 | | 0x16e48 => 0x16e68, |
1923 | | 0x16e49 => 0x16e69, |
1924 | | 0x16e4a => 0x16e6a, |
1925 | | 0x16e4b => 0x16e6b, |
1926 | | 0x16e4c => 0x16e6c, |
1927 | | 0x16e4d => 0x16e6d, |
1928 | | 0x16e4e => 0x16e6e, |
1929 | | 0x16e4f => 0x16e6f, |
1930 | | 0x16e50 => 0x16e70, |
1931 | | 0x16e51 => 0x16e71, |
1932 | | 0x16e52 => 0x16e72, |
1933 | | 0x16e53 => 0x16e73, |
1934 | | 0x16e54 => 0x16e74, |
1935 | | 0x16e55 => 0x16e75, |
1936 | | 0x16e56 => 0x16e76, |
1937 | | 0x16e57 => 0x16e77, |
1938 | | 0x16e58 => 0x16e78, |
1939 | | 0x16e59 => 0x16e79, |
1940 | | 0x16e5a => 0x16e7a, |
1941 | | 0x16e5b => 0x16e7b, |
1942 | | 0x16e5c => 0x16e7c, |
1943 | | 0x16e5d => 0x16e7d, |
1944 | | 0x16e5e => 0x16e7e, |
1945 | | 0x16e5f => 0x16e7f, |
1946 | | 0x1e900 => 0x1e922, |
1947 | | 0x1e901 => 0x1e923, |
1948 | | 0x1e902 => 0x1e924, |
1949 | | 0x1e903 => 0x1e925, |
1950 | | 0x1e904 => 0x1e926, |
1951 | | 0x1e905 => 0x1e927, |
1952 | | 0x1e906 => 0x1e928, |
1953 | | 0x1e907 => 0x1e929, |
1954 | | 0x1e908 => 0x1e92a, |
1955 | | 0x1e909 => 0x1e92b, |
1956 | | 0x1e90a => 0x1e92c, |
1957 | | 0x1e90b => 0x1e92d, |
1958 | | 0x1e90c => 0x1e92e, |
1959 | | 0x1e90d => 0x1e92f, |
1960 | | 0x1e90e => 0x1e930, |
1961 | | 0x1e90f => 0x1e931, |
1962 | | 0x1e910 => 0x1e932, |
1963 | | 0x1e911 => 0x1e933, |
1964 | | 0x1e912 => 0x1e934, |
1965 | | 0x1e913 => 0x1e935, |
1966 | | 0x1e914 => 0x1e936, |
1967 | | 0x1e915 => 0x1e937, |
1968 | | 0x1e916 => 0x1e938, |
1969 | | 0x1e917 => 0x1e939, |
1970 | | 0x1e918 => 0x1e93a, |
1971 | | 0x1e919 => 0x1e93b, |
1972 | | 0x1e91a => 0x1e93c, |
1973 | | 0x1e91b => 0x1e93d, |
1974 | | 0x1e91c => 0x1e93e, |
1975 | | 0x1e91d => 0x1e93f, |
1976 | | 0x1e91e => 0x1e940, |
1977 | | 0x1e91f => 0x1e941, |
1978 | | 0x1e920 => 0x1e942, |
1979 | | 0x1e921 => 0x1e943, |
1980 | | _ => orig as u32, |
1981 | | }; |
1982 | | Fold::One(char::from_u32(single_char).unwrap()) |
1983 | | } |
1984 | | |
1985 | | for c_index in 0..126217 { |
1986 | | if let Some(c) = char::from_u32(c_index) { |
1987 | | let reference: Vec<char> = lookup_naive(c).collect(); |
1988 | | let actual: Vec<char> = lookup(c).collect(); |
1989 | | if actual != reference { |
1990 | | assert!( |
1991 | | false, |
1992 | | "case-folding {:?} (#0x{:04x}) failed: Expected {:?}, got {:?}", |
1993 | | c, c_index, reference, actual |
1994 | | ); |
1995 | | } |
1996 | | } |
1997 | | } |
1998 | | } |