Merge branch '138-toggle-free-look-with-hotkey' into 'main/atys-live'
[ryzomcore.git] / nel / src / misc / string_to_ci.cpp
blob1aeb36da2e841ac872b4b268db5b4ac402bbcd81
1 // NeL - MMORPG Framework <https://wiki.ryzom.dev/>
2 // Copyright (C) 2020 Jan BOON (Kaetemi) <jan.boon@kaetemi.be>
3 //
4 // This program is free software: you can redistribute it and/or modify
5 // it under the terms of the GNU Affero General Public License as
6 // published by the Free Software Foundation, either version 3 of the
7 // License, or (at your option) any later version.
8 //
9 // This program is distributed in the hope that it will be useful,
10 // but WITHOUT ANY WARRANTY; without even the implied warranty of
11 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 // GNU Affero General Public License for more details.
14 // You should have received a copy of the GNU Affero General Public License
15 // along with this program. If not, see <http://www.gnu.org/licenses/>.
17 #include "stdmisc.h"
18 #include "nel/misc/ucstring.h"
19 #include "nel/misc/utf_string_view.h"
21 #ifdef DEBUG_NEW
22 #define new DEBUG_NEW
23 #endif
25 namespace NLMISC {
27 static const char s_StringToCaseInsensitiveC2[64 * 4] = {
28 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
29 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
30 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
31 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
32 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
33 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
34 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
35 '\xCE', '\xBC', '\x00', 0,
36 0, 0, 0, 0, 0, 0, 0, 0,
37 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
40 static const char s_StringToCaseInsensitiveC3[64 * 4] = {
41 '\xC3', '\xA0', '\x00', 0,
42 '\xC3', '\xA1', '\x00', 0,
43 '\xC3', '\xA2', '\x00', 0,
44 '\xC3', '\xA3', '\x00', 0,
45 '\xC3', '\xA4', '\x00', 0,
46 '\xC3', '\xA5', '\x00', 0,
47 '\xC3', '\xA6', '\x00', 0,
48 '\xC3', '\xA7', '\x00', 0,
49 '\xC3', '\xA8', '\x00', 0,
50 '\xC3', '\xA9', '\x00', 0,
51 '\xC3', '\xAA', '\x00', 0,
52 '\xC3', '\xAB', '\x00', 0,
53 '\xC3', '\xAC', '\x00', 0,
54 '\xC3', '\xAD', '\x00', 0,
55 '\xC3', '\xAE', '\x00', 0,
56 '\xC3', '\xAF', '\x00', 0,
57 '\xC3', '\xB0', '\x00', 0,
58 '\xC3', '\xB1', '\x00', 0,
59 '\xC3', '\xB2', '\x00', 0,
60 '\xC3', '\xB3', '\x00', 0,
61 '\xC3', '\xB4', '\x00', 0,
62 '\xC3', '\xB5', '\x00', 0,
63 '\xC3', '\xB6', '\x00', 0,
64 0, 0, 0, 0,
65 '\xC3', '\xB8', '\x00', 0,
66 '\xC3', '\xB9', '\x00', 0,
67 '\xC3', '\xBA', '\x00', 0,
68 '\xC3', '\xBB', '\x00', 0,
69 '\xC3', '\xBC', '\x00', 0,
70 '\xC3', '\xBD', '\x00', 0,
71 '\xC3', '\xBE', '\x00', 0,
72 0, 0, 0, 0,
73 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
74 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
75 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
76 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
79 static const char s_StringToCaseInsensitiveC4[64 * 4] = {
80 '\xC4', '\x81', '\x00', 0,
81 0, 0, 0, 0,
82 '\xC4', '\x83', '\x00', 0,
83 0, 0, 0, 0,
84 '\xC4', '\x85', '\x00', 0,
85 0, 0, 0, 0,
86 '\xC4', '\x87', '\x00', 0,
87 0, 0, 0, 0,
88 '\xC4', '\x89', '\x00', 0,
89 0, 0, 0, 0,
90 '\xC4', '\x8B', '\x00', 0,
91 0, 0, 0, 0,
92 '\xC4', '\x8D', '\x00', 0,
93 0, 0, 0, 0,
94 '\xC4', '\x8F', '\x00', 0,
95 0, 0, 0, 0,
96 '\xC4', '\x91', '\x00', 0,
97 0, 0, 0, 0,
98 '\xC4', '\x93', '\x00', 0,
99 0, 0, 0, 0,
100 '\xC4', '\x95', '\x00', 0,
101 0, 0, 0, 0,
102 '\xC4', '\x97', '\x00', 0,
103 0, 0, 0, 0,
104 '\xC4', '\x99', '\x00', 0,
105 0, 0, 0, 0,
106 '\xC4', '\x9B', '\x00', 0,
107 0, 0, 0, 0,
108 '\xC4', '\x9D', '\x00', 0,
109 0, 0, 0, 0,
110 '\xC4', '\x9F', '\x00', 0,
111 0, 0, 0, 0,
112 '\xC4', '\xA1', '\x00', 0,
113 0, 0, 0, 0,
114 '\xC4', '\xA3', '\x00', 0,
115 0, 0, 0, 0,
116 '\xC4', '\xA5', '\x00', 0,
117 0, 0, 0, 0,
118 '\xC4', '\xA7', '\x00', 0,
119 0, 0, 0, 0,
120 '\xC4', '\xA9', '\x00', 0,
121 0, 0, 0, 0,
122 '\xC4', '\xAB', '\x00', 0,
123 0, 0, 0, 0,
124 '\xC4', '\xAD', '\x00', 0,
125 0, 0, 0, 0,
126 '\xC4', '\xAF', '\x00', 0,
127 0, 0, 0, 0,
128 '\x69', '\x00', '\x00', 0,
129 '\x69', '\x00', '\x00', 0,
130 '\xC4', '\xB3', '\x00', 0,
131 0, 0, 0, 0,
132 '\xC4', '\xB5', '\x00', 0,
133 0, 0, 0, 0,
134 '\xC4', '\xB7', '\x00', 0,
135 0, 0, 0, 0,
136 0, 0, 0, 0,
137 '\xC4', '\xBA', '\x00', 0,
138 0, 0, 0, 0,
139 '\xC4', '\xBC', '\x00', 0,
140 0, 0, 0, 0,
141 '\xC4', '\xBE', '\x00', 0,
142 0, 0, 0, 0,
143 '\xC5', '\x80', '\x00', 0,
146 static const char s_StringToCaseInsensitiveC5[64 * 4] = {
147 0, 0, 0, 0,
148 '\xC5', '\x82', '\x00', 0,
149 0, 0, 0, 0,
150 '\xC5', '\x84', '\x00', 0,
151 0, 0, 0, 0,
152 '\xC5', '\x86', '\x00', 0,
153 0, 0, 0, 0,
154 '\xC5', '\x88', '\x00', 0,
155 0, 0, 0, 0, 0, 0, 0, 0,
156 '\xC5', '\x8B', '\x00', 0,
157 0, 0, 0, 0,
158 '\xC5', '\x8D', '\x00', 0,
159 0, 0, 0, 0,
160 '\xC5', '\x8F', '\x00', 0,
161 0, 0, 0, 0,
162 '\xC5', '\x91', '\x00', 0,
163 0, 0, 0, 0,
164 '\xC5', '\x93', '\x00', 0,
165 0, 0, 0, 0,
166 '\xC5', '\x95', '\x00', 0,
167 0, 0, 0, 0,
168 '\xC5', '\x97', '\x00', 0,
169 0, 0, 0, 0,
170 '\xC5', '\x99', '\x00', 0,
171 0, 0, 0, 0,
172 '\xC5', '\x9B', '\x00', 0,
173 0, 0, 0, 0,
174 '\xC5', '\x9D', '\x00', 0,
175 0, 0, 0, 0,
176 '\xC5', '\x9F', '\x00', 0,
177 0, 0, 0, 0,
178 '\xC5', '\xA1', '\x00', 0,
179 0, 0, 0, 0,
180 '\xC5', '\xA3', '\x00', 0,
181 0, 0, 0, 0,
182 '\xC5', '\xA5', '\x00', 0,
183 0, 0, 0, 0,
184 '\xC5', '\xA7', '\x00', 0,
185 0, 0, 0, 0,
186 '\xC5', '\xA9', '\x00', 0,
187 0, 0, 0, 0,
188 '\xC5', '\xAB', '\x00', 0,
189 0, 0, 0, 0,
190 '\xC5', '\xAD', '\x00', 0,
191 0, 0, 0, 0,
192 '\xC5', '\xAF', '\x00', 0,
193 0, 0, 0, 0,
194 '\xC5', '\xB1', '\x00', 0,
195 0, 0, 0, 0,
196 '\xC5', '\xB3', '\x00', 0,
197 0, 0, 0, 0,
198 '\xC5', '\xB5', '\x00', 0,
199 0, 0, 0, 0,
200 '\xC5', '\xB7', '\x00', 0,
201 0, 0, 0, 0,
202 '\xC3', '\xBF', '\x00', 0,
203 '\xC5', '\xBA', '\x00', 0,
204 0, 0, 0, 0,
205 '\xC5', '\xBC', '\x00', 0,
206 0, 0, 0, 0,
207 '\xC5', '\xBE', '\x00', 0,
208 0, 0, 0, 0,
209 '\x73', '\x00', '\x00', 0,
212 static const char s_StringToCaseInsensitiveC6[64 * 4] = {
213 0, 0, 0, 0,
214 '\xC9', '\x93', '\x00', 0,
215 '\xC6', '\x83', '\x00', 0,
216 0, 0, 0, 0,
217 '\xC6', '\x85', '\x00', 0,
218 0, 0, 0, 0,
219 '\xC9', '\x94', '\x00', 0,
220 '\xC6', '\x88', '\x00', 0,
221 0, 0, 0, 0,
222 '\xC9', '\x96', '\x00', 0,
223 '\xC9', '\x97', '\x00', 0,
224 '\xC6', '\x8C', '\x00', 0,
225 0, 0, 0, 0, 0, 0, 0, 0,
226 '\xC7', '\x9D', '\x00', 0,
227 '\xC9', '\x99', '\x00', 0,
228 '\xC9', '\x9B', '\x00', 0,
229 '\xC6', '\x92', '\x00', 0,
230 0, 0, 0, 0,
231 '\xC9', '\xA0', '\x00', 0,
232 '\xC9', '\xA3', '\x00', 0,
233 0, 0, 0, 0,
234 '\xC9', '\xA9', '\x00', 0,
235 '\xC9', '\xA8', '\x00', 0,
236 '\xC6', '\x99', '\x00', 0,
237 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
238 '\xC9', '\xAF', '\x00', 0,
239 '\xC9', '\xB2', '\x00', 0,
240 0, 0, 0, 0,
241 '\xC9', '\xB5', '\x00', 0,
242 '\xC6', '\xA1', '\x00', 0,
243 0, 0, 0, 0,
244 '\xC6', '\xA3', '\x00', 0,
245 0, 0, 0, 0,
246 '\xC6', '\xA5', '\x00', 0,
247 0, 0, 0, 0,
248 '\xCA', '\x80', '\x00', 0,
249 '\xC6', '\xA8', '\x00', 0,
250 0, 0, 0, 0,
251 '\xCA', '\x83', '\x00', 0,
252 0, 0, 0, 0, 0, 0, 0, 0,
253 '\xC6', '\xAD', '\x00', 0,
254 0, 0, 0, 0,
255 '\xCA', '\x88', '\x00', 0,
256 '\xC6', '\xB0', '\x00', 0,
257 0, 0, 0, 0,
258 '\xCA', '\x8A', '\x00', 0,
259 '\xCA', '\x8B', '\x00', 0,
260 '\xC6', '\xB4', '\x00', 0,
261 0, 0, 0, 0,
262 '\xC6', '\xB6', '\x00', 0,
263 0, 0, 0, 0,
264 '\xCA', '\x92', '\x00', 0,
265 '\xC6', '\xB9', '\x00', 0,
266 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
267 '\xC6', '\xBD', '\x00', 0,
268 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
271 static const char s_StringToCaseInsensitiveC7[64 * 4] = {
272 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
273 '\xC7', '\x86', '\x00', 0,
274 '\xC7', '\x86', '\x00', 0,
275 0, 0, 0, 0,
276 '\xC7', '\x89', '\x00', 0,
277 '\xC7', '\x89', '\x00', 0,
278 0, 0, 0, 0,
279 '\xC7', '\x8C', '\x00', 0,
280 '\xC7', '\x8C', '\x00', 0,
281 0, 0, 0, 0,
282 '\xC7', '\x8E', '\x00', 0,
283 0, 0, 0, 0,
284 '\xC7', '\x90', '\x00', 0,
285 0, 0, 0, 0,
286 '\xC7', '\x92', '\x00', 0,
287 0, 0, 0, 0,
288 '\xC7', '\x94', '\x00', 0,
289 0, 0, 0, 0,
290 '\xC7', '\x96', '\x00', 0,
291 0, 0, 0, 0,
292 '\xC7', '\x98', '\x00', 0,
293 0, 0, 0, 0,
294 '\xC7', '\x9A', '\x00', 0,
295 0, 0, 0, 0,
296 '\xC7', '\x9C', '\x00', 0,
297 0, 0, 0, 0, 0, 0, 0, 0,
298 '\xC7', '\x9F', '\x00', 0,
299 0, 0, 0, 0,
300 '\xC7', '\xA1', '\x00', 0,
301 0, 0, 0, 0,
302 '\xC7', '\xA3', '\x00', 0,
303 0, 0, 0, 0,
304 '\xC7', '\xA5', '\x00', 0,
305 0, 0, 0, 0,
306 '\xC7', '\xA7', '\x00', 0,
307 0, 0, 0, 0,
308 '\xC7', '\xA9', '\x00', 0,
309 0, 0, 0, 0,
310 '\xC7', '\xAB', '\x00', 0,
311 0, 0, 0, 0,
312 '\xC7', '\xAD', '\x00', 0,
313 0, 0, 0, 0,
314 '\xC7', '\xAF', '\x00', 0,
315 0, 0, 0, 0,
316 0, 0, 0, 0,
317 '\xC7', '\xB3', '\x00', 0,
318 '\xC7', '\xB3', '\x00', 0,
319 0, 0, 0, 0,
320 '\xC7', '\xB5', '\x00', 0,
321 0, 0, 0, 0,
322 '\xC6', '\x95', '\x00', 0,
323 '\xC6', '\xBF', '\x00', 0,
324 '\xC7', '\xB9', '\x00', 0,
325 0, 0, 0, 0,
326 '\xC7', '\xBB', '\x00', 0,
327 0, 0, 0, 0,
328 '\xC7', '\xBD', '\x00', 0,
329 0, 0, 0, 0,
330 '\xC7', '\xBF', '\x00', 0,
331 0, 0, 0, 0,
334 static const char s_StringToCaseInsensitiveC8[64 * 4] = {
335 '\xC8', '\x81', '\x00', 0,
336 0, 0, 0, 0,
337 '\xC8', '\x83', '\x00', 0,
338 0, 0, 0, 0,
339 '\xC8', '\x85', '\x00', 0,
340 0, 0, 0, 0,
341 '\xC8', '\x87', '\x00', 0,
342 0, 0, 0, 0,
343 '\xC8', '\x89', '\x00', 0,
344 0, 0, 0, 0,
345 '\xC8', '\x8B', '\x00', 0,
346 0, 0, 0, 0,
347 '\xC8', '\x8D', '\x00', 0,
348 0, 0, 0, 0,
349 '\xC8', '\x8F', '\x00', 0,
350 0, 0, 0, 0,
351 '\xC8', '\x91', '\x00', 0,
352 0, 0, 0, 0,
353 '\xC8', '\x93', '\x00', 0,
354 0, 0, 0, 0,
355 '\xC8', '\x95', '\x00', 0,
356 0, 0, 0, 0,
357 '\xC8', '\x97', '\x00', 0,
358 0, 0, 0, 0,
359 '\xC8', '\x99', '\x00', 0,
360 0, 0, 0, 0,
361 '\xC8', '\x9B', '\x00', 0,
362 0, 0, 0, 0,
363 '\xC8', '\x9D', '\x00', 0,
364 0, 0, 0, 0,
365 '\xC8', '\x9F', '\x00', 0,
366 0, 0, 0, 0,
367 '\xC6', '\x9E', '\x00', 0,
368 0, 0, 0, 0,
369 '\xC8', '\xA3', '\x00', 0,
370 0, 0, 0, 0,
371 '\xC8', '\xA5', '\x00', 0,
372 0, 0, 0, 0,
373 '\xC8', '\xA7', '\x00', 0,
374 0, 0, 0, 0,
375 '\xC8', '\xA9', '\x00', 0,
376 0, 0, 0, 0,
377 '\xC8', '\xAB', '\x00', 0,
378 0, 0, 0, 0,
379 '\xC8', '\xAD', '\x00', 0,
380 0, 0, 0, 0,
381 '\xC8', '\xAF', '\x00', 0,
382 0, 0, 0, 0,
383 '\xC8', '\xB1', '\x00', 0,
384 0, 0, 0, 0,
385 '\xC8', '\xB3', '\x00', 0,
386 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
387 0, 0, 0, 0, 0, 0, 0, 0,
388 '\xE2', '\xB1', '\xA5', 0,
389 '\xC8', '\xBC', '\x00', 0,
390 0, 0, 0, 0,
391 '\xC6', '\x9A', '\x00', 0,
392 '\xE2', '\xB1', '\xA6', 0,
393 0, 0, 0, 0,
396 static const char s_StringToCaseInsensitiveC9[64 * 4] = {
397 0, 0, 0, 0,
398 '\xC9', '\x82', '\x00', 0,
399 0, 0, 0, 0,
400 '\xC6', '\x80', '\x00', 0,
401 '\xCA', '\x89', '\x00', 0,
402 '\xCA', '\x8C', '\x00', 0,
403 '\xC9', '\x87', '\x00', 0,
404 0, 0, 0, 0,
405 '\xC9', '\x89', '\x00', 0,
406 0, 0, 0, 0,
407 '\xC9', '\x8B', '\x00', 0,
408 0, 0, 0, 0,
409 '\xC9', '\x8D', '\x00', 0,
410 0, 0, 0, 0,
411 '\xC9', '\x8F', '\x00', 0,
412 0, 0, 0, 0,
413 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
414 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
415 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
416 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
417 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
418 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
421 static const char s_StringToCaseInsensitiveCD[64 * 4] = {
422 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
423 '\xCE', '\xB9', '\x00', 0,
424 0, 0, 0, 0, 0, 0, 0, 0,
425 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
426 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
427 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
428 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
429 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
430 '\xCD', '\xB1', '\x00', 0,
431 0, 0, 0, 0,
432 '\xCD', '\xB3', '\x00', 0,
433 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
434 '\xCD', '\xB7', '\x00', 0,
435 0, 0, 0, 0,
436 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
437 '\xCF', '\xB3', '\x00', 0,
440 static const char s_StringToCaseInsensitiveCE[64 * 4] = {
441 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
442 '\xCE', '\xAC', '\x00', 0,
443 0, 0, 0, 0,
444 '\xCE', '\xAD', '\x00', 0,
445 '\xCE', '\xAE', '\x00', 0,
446 '\xCE', '\xAF', '\x00', 0,
447 0, 0, 0, 0,
448 '\xCF', '\x8C', '\x00', 0,
449 0, 0, 0, 0,
450 '\xCF', '\x8D', '\x00', 0,
451 '\xCF', '\x8E', '\x00', 0,
452 0, 0, 0, 0,
453 '\xCE', '\xB1', '\x00', 0,
454 '\xCE', '\xB2', '\x00', 0,
455 '\xCE', '\xB3', '\x00', 0,
456 '\xCE', '\xB4', '\x00', 0,
457 '\xCE', '\xB5', '\x00', 0,
458 '\xCE', '\xB6', '\x00', 0,
459 '\xCE', '\xB7', '\x00', 0,
460 '\xCE', '\xB8', '\x00', 0,
461 '\xCE', '\xB9', '\x00', 0,
462 '\xCE', '\xBA', '\x00', 0,
463 '\xCE', '\xBB', '\x00', 0,
464 '\xCE', '\xBC', '\x00', 0,
465 '\xCE', '\xBD', '\x00', 0,
466 '\xCE', '\xBE', '\x00', 0,
467 '\xCE', '\xBF', '\x00', 0,
468 '\xCF', '\x80', '\x00', 0,
469 '\xCF', '\x81', '\x00', 0,
470 0, 0, 0, 0,
471 '\xCF', '\x83', '\x00', 0,
472 '\xCF', '\x84', '\x00', 0,
473 '\xCF', '\x85', '\x00', 0,
474 '\xCF', '\x86', '\x00', 0,
475 '\xCF', '\x87', '\x00', 0,
476 '\xCF', '\x88', '\x00', 0,
477 '\xCF', '\x89', '\x00', 0,
478 '\xCF', '\x8A', '\x00', 0,
479 '\xCF', '\x8B', '\x00', 0,
480 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
481 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
482 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
485 static const char s_StringToCaseInsensitiveCF[64 * 4] = {
486 0, 0, 0, 0, 0, 0, 0, 0,
487 '\xCF', '\x83', '\x00', 0,
488 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
489 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
490 '\xCF', '\x97', '\x00', 0,
491 '\xCE', '\xB2', '\x00', 0,
492 '\xCE', '\xB8', '\x00', 0,
493 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
494 '\xCF', '\x86', '\x00', 0,
495 '\xCF', '\x80', '\x00', 0,
496 0, 0, 0, 0,
497 '\xCF', '\x99', '\x00', 0,
498 0, 0, 0, 0,
499 '\xCF', '\x9B', '\x00', 0,
500 0, 0, 0, 0,
501 '\xCF', '\x9D', '\x00', 0,
502 0, 0, 0, 0,
503 '\xCF', '\x9F', '\x00', 0,
504 0, 0, 0, 0,
505 '\xCF', '\xA1', '\x00', 0,
506 0, 0, 0, 0,
507 '\xCF', '\xA3', '\x00', 0,
508 0, 0, 0, 0,
509 '\xCF', '\xA5', '\x00', 0,
510 0, 0, 0, 0,
511 '\xCF', '\xA7', '\x00', 0,
512 0, 0, 0, 0,
513 '\xCF', '\xA9', '\x00', 0,
514 0, 0, 0, 0,
515 '\xCF', '\xAB', '\x00', 0,
516 0, 0, 0, 0,
517 '\xCF', '\xAD', '\x00', 0,
518 0, 0, 0, 0,
519 '\xCF', '\xAF', '\x00', 0,
520 0, 0, 0, 0,
521 '\xCE', '\xBA', '\x00', 0,
522 '\xCF', '\x81', '\x00', 0,
523 0, 0, 0, 0, 0, 0, 0, 0,
524 '\xCE', '\xB8', '\x00', 0,
525 '\xCE', '\xB5', '\x00', 0,
526 0, 0, 0, 0,
527 '\xCF', '\xB8', '\x00', 0,
528 0, 0, 0, 0,
529 '\xCF', '\xB2', '\x00', 0,
530 '\xCF', '\xBB', '\x00', 0,
531 0, 0, 0, 0, 0, 0, 0, 0,
532 '\xCD', '\xBB', '\x00', 0,
533 '\xCD', '\xBC', '\x00', 0,
534 '\xCD', '\xBD', '\x00', 0,
537 static const char s_StringToCaseInsensitiveD0[64 * 4] = {
538 '\xD1', '\x90', '\x00', 0,
539 '\xD1', '\x91', '\x00', 0,
540 '\xD1', '\x92', '\x00', 0,
541 '\xD1', '\x93', '\x00', 0,
542 '\xD1', '\x94', '\x00', 0,
543 '\xD1', '\x95', '\x00', 0,
544 '\xD1', '\x96', '\x00', 0,
545 '\xD1', '\x97', '\x00', 0,
546 '\xD1', '\x98', '\x00', 0,
547 '\xD1', '\x99', '\x00', 0,
548 '\xD1', '\x9A', '\x00', 0,
549 '\xD1', '\x9B', '\x00', 0,
550 '\xD1', '\x9C', '\x00', 0,
551 '\xD1', '\x9D', '\x00', 0,
552 '\xD1', '\x9E', '\x00', 0,
553 '\xD1', '\x9F', '\x00', 0,
554 '\xD0', '\xB0', '\x00', 0,
555 '\xD0', '\xB1', '\x00', 0,
556 '\xD0', '\xB2', '\x00', 0,
557 '\xD0', '\xB3', '\x00', 0,
558 '\xD0', '\xB4', '\x00', 0,
559 '\xD0', '\xB5', '\x00', 0,
560 '\xD0', '\xB6', '\x00', 0,
561 '\xD0', '\xB7', '\x00', 0,
562 '\xD0', '\xB8', '\x00', 0,
563 '\xD0', '\xB9', '\x00', 0,
564 '\xD0', '\xBA', '\x00', 0,
565 '\xD0', '\xBB', '\x00', 0,
566 '\xD0', '\xBC', '\x00', 0,
567 '\xD0', '\xBD', '\x00', 0,
568 '\xD0', '\xBE', '\x00', 0,
569 '\xD0', '\xBF', '\x00', 0,
570 '\xD1', '\x80', '\x00', 0,
571 '\xD1', '\x81', '\x00', 0,
572 '\xD1', '\x82', '\x00', 0,
573 '\xD1', '\x83', '\x00', 0,
574 '\xD1', '\x84', '\x00', 0,
575 '\xD1', '\x85', '\x00', 0,
576 '\xD1', '\x86', '\x00', 0,
577 '\xD1', '\x87', '\x00', 0,
578 '\xD1', '\x88', '\x00', 0,
579 '\xD1', '\x89', '\x00', 0,
580 '\xD1', '\x8A', '\x00', 0,
581 '\xD1', '\x8B', '\x00', 0,
582 '\xD1', '\x8C', '\x00', 0,
583 '\xD1', '\x8D', '\x00', 0,
584 '\xD1', '\x8E', '\x00', 0,
585 '\xD1', '\x8F', '\x00', 0,
586 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
587 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
590 static const char s_StringToCaseInsensitiveD1[64 * 4] = {
591 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
592 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
593 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
594 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
595 '\xD1', '\xA1', '\x00', 0,
596 0, 0, 0, 0,
597 '\xD1', '\xA3', '\x00', 0,
598 0, 0, 0, 0,
599 '\xD1', '\xA5', '\x00', 0,
600 0, 0, 0, 0,
601 '\xD1', '\xA7', '\x00', 0,
602 0, 0, 0, 0,
603 '\xD1', '\xA9', '\x00', 0,
604 0, 0, 0, 0,
605 '\xD1', '\xAB', '\x00', 0,
606 0, 0, 0, 0,
607 '\xD1', '\xAD', '\x00', 0,
608 0, 0, 0, 0,
609 '\xD1', '\xAF', '\x00', 0,
610 0, 0, 0, 0,
611 '\xD1', '\xB1', '\x00', 0,
612 0, 0, 0, 0,
613 '\xD1', '\xB3', '\x00', 0,
614 0, 0, 0, 0,
615 '\xD1', '\xB5', '\x00', 0,
616 0, 0, 0, 0,
617 '\xD1', '\xB7', '\x00', 0,
618 0, 0, 0, 0,
619 '\xD1', '\xB9', '\x00', 0,
620 0, 0, 0, 0,
621 '\xD1', '\xBB', '\x00', 0,
622 0, 0, 0, 0,
623 '\xD1', '\xBD', '\x00', 0,
624 0, 0, 0, 0,
625 '\xD1', '\xBF', '\x00', 0,
626 0, 0, 0, 0,
629 static const char s_StringToCaseInsensitiveD2[64 * 4] = {
630 '\xD2', '\x81', '\x00', 0,
631 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
632 0, 0, 0, 0, 0, 0, 0, 0,
633 '\xD2', '\x8B', '\x00', 0,
634 0, 0, 0, 0,
635 '\xD2', '\x8D', '\x00', 0,
636 0, 0, 0, 0,
637 '\xD2', '\x8F', '\x00', 0,
638 0, 0, 0, 0,
639 '\xD2', '\x91', '\x00', 0,
640 0, 0, 0, 0,
641 '\xD2', '\x93', '\x00', 0,
642 0, 0, 0, 0,
643 '\xD2', '\x95', '\x00', 0,
644 0, 0, 0, 0,
645 '\xD2', '\x97', '\x00', 0,
646 0, 0, 0, 0,
647 '\xD2', '\x99', '\x00', 0,
648 0, 0, 0, 0,
649 '\xD2', '\x9B', '\x00', 0,
650 0, 0, 0, 0,
651 '\xD2', '\x9D', '\x00', 0,
652 0, 0, 0, 0,
653 '\xD2', '\x9F', '\x00', 0,
654 0, 0, 0, 0,
655 '\xD2', '\xA1', '\x00', 0,
656 0, 0, 0, 0,
657 '\xD2', '\xA3', '\x00', 0,
658 0, 0, 0, 0,
659 '\xD2', '\xA5', '\x00', 0,
660 0, 0, 0, 0,
661 '\xD2', '\xA7', '\x00', 0,
662 0, 0, 0, 0,
663 '\xD2', '\xA9', '\x00', 0,
664 0, 0, 0, 0,
665 '\xD2', '\xAB', '\x00', 0,
666 0, 0, 0, 0,
667 '\xD2', '\xAD', '\x00', 0,
668 0, 0, 0, 0,
669 '\xD2', '\xAF', '\x00', 0,
670 0, 0, 0, 0,
671 '\xD2', '\xB1', '\x00', 0,
672 0, 0, 0, 0,
673 '\xD2', '\xB3', '\x00', 0,
674 0, 0, 0, 0,
675 '\xD2', '\xB5', '\x00', 0,
676 0, 0, 0, 0,
677 '\xD2', '\xB7', '\x00', 0,
678 0, 0, 0, 0,
679 '\xD2', '\xB9', '\x00', 0,
680 0, 0, 0, 0,
681 '\xD2', '\xBB', '\x00', 0,
682 0, 0, 0, 0,
683 '\xD2', '\xBD', '\x00', 0,
684 0, 0, 0, 0,
685 '\xD2', '\xBF', '\x00', 0,
686 0, 0, 0, 0,
689 static const char s_StringToCaseInsensitiveD3[64 * 4] = {
690 '\xD3', '\x8F', '\x00', 0,
691 '\xD3', '\x82', '\x00', 0,
692 0, 0, 0, 0,
693 '\xD3', '\x84', '\x00', 0,
694 0, 0, 0, 0,
695 '\xD3', '\x86', '\x00', 0,
696 0, 0, 0, 0,
697 '\xD3', '\x88', '\x00', 0,
698 0, 0, 0, 0,
699 '\xD3', '\x8A', '\x00', 0,
700 0, 0, 0, 0,
701 '\xD3', '\x8C', '\x00', 0,
702 0, 0, 0, 0,
703 '\xD3', '\x8E', '\x00', 0,
704 0, 0, 0, 0, 0, 0, 0, 0,
705 '\xD3', '\x91', '\x00', 0,
706 0, 0, 0, 0,
707 '\xD3', '\x93', '\x00', 0,
708 0, 0, 0, 0,
709 '\xD3', '\x95', '\x00', 0,
710 0, 0, 0, 0,
711 '\xD3', '\x97', '\x00', 0,
712 0, 0, 0, 0,
713 '\xD3', '\x99', '\x00', 0,
714 0, 0, 0, 0,
715 '\xD3', '\x9B', '\x00', 0,
716 0, 0, 0, 0,
717 '\xD3', '\x9D', '\x00', 0,
718 0, 0, 0, 0,
719 '\xD3', '\x9F', '\x00', 0,
720 0, 0, 0, 0,
721 '\xD3', '\xA1', '\x00', 0,
722 0, 0, 0, 0,
723 '\xD3', '\xA3', '\x00', 0,
724 0, 0, 0, 0,
725 '\xD3', '\xA5', '\x00', 0,
726 0, 0, 0, 0,
727 '\xD3', '\xA7', '\x00', 0,
728 0, 0, 0, 0,
729 '\xD3', '\xA9', '\x00', 0,
730 0, 0, 0, 0,
731 '\xD3', '\xAB', '\x00', 0,
732 0, 0, 0, 0,
733 '\xD3', '\xAD', '\x00', 0,
734 0, 0, 0, 0,
735 '\xD3', '\xAF', '\x00', 0,
736 0, 0, 0, 0,
737 '\xD3', '\xB1', '\x00', 0,
738 0, 0, 0, 0,
739 '\xD3', '\xB3', '\x00', 0,
740 0, 0, 0, 0,
741 '\xD3', '\xB5', '\x00', 0,
742 0, 0, 0, 0,
743 '\xD3', '\xB7', '\x00', 0,
744 0, 0, 0, 0,
745 '\xD3', '\xB9', '\x00', 0,
746 0, 0, 0, 0,
747 '\xD3', '\xBB', '\x00', 0,
748 0, 0, 0, 0,
749 '\xD3', '\xBD', '\x00', 0,
750 0, 0, 0, 0,
751 '\xD3', '\xBF', '\x00', 0,
752 0, 0, 0, 0,
755 static const char s_StringToCaseInsensitiveD4[64 * 4] = {
756 '\xD4', '\x81', '\x00', 0,
757 0, 0, 0, 0,
758 '\xD4', '\x83', '\x00', 0,
759 0, 0, 0, 0,
760 '\xD4', '\x85', '\x00', 0,
761 0, 0, 0, 0,
762 '\xD4', '\x87', '\x00', 0,
763 0, 0, 0, 0,
764 '\xD4', '\x89', '\x00', 0,
765 0, 0, 0, 0,
766 '\xD4', '\x8B', '\x00', 0,
767 0, 0, 0, 0,
768 '\xD4', '\x8D', '\x00', 0,
769 0, 0, 0, 0,
770 '\xD4', '\x8F', '\x00', 0,
771 0, 0, 0, 0,
772 '\xD4', '\x91', '\x00', 0,
773 0, 0, 0, 0,
774 '\xD4', '\x93', '\x00', 0,
775 0, 0, 0, 0,
776 '\xD4', '\x95', '\x00', 0,
777 0, 0, 0, 0,
778 '\xD4', '\x97', '\x00', 0,
779 0, 0, 0, 0,
780 '\xD4', '\x99', '\x00', 0,
781 0, 0, 0, 0,
782 '\xD4', '\x9B', '\x00', 0,
783 0, 0, 0, 0,
784 '\xD4', '\x9D', '\x00', 0,
785 0, 0, 0, 0,
786 '\xD4', '\x9F', '\x00', 0,
787 0, 0, 0, 0,
788 '\xD4', '\xA1', '\x00', 0,
789 0, 0, 0, 0,
790 '\xD4', '\xA3', '\x00', 0,
791 0, 0, 0, 0,
792 '\xD4', '\xA5', '\x00', 0,
793 0, 0, 0, 0,
794 '\xD4', '\xA7', '\x00', 0,
795 0, 0, 0, 0,
796 '\xD4', '\xA9', '\x00', 0,
797 0, 0, 0, 0,
798 '\xD4', '\xAB', '\x00', 0,
799 0, 0, 0, 0,
800 '\xD4', '\xAD', '\x00', 0,
801 0, 0, 0, 0,
802 '\xD4', '\xAF', '\x00', 0,
803 0, 0, 0, 0,
804 0, 0, 0, 0,
805 '\xD5', '\xA1', '\x00', 0,
806 '\xD5', '\xA2', '\x00', 0,
807 '\xD5', '\xA3', '\x00', 0,
808 '\xD5', '\xA4', '\x00', 0,
809 '\xD5', '\xA5', '\x00', 0,
810 '\xD5', '\xA6', '\x00', 0,
811 '\xD5', '\xA7', '\x00', 0,
812 '\xD5', '\xA8', '\x00', 0,
813 '\xD5', '\xA9', '\x00', 0,
814 '\xD5', '\xAA', '\x00', 0,
815 '\xD5', '\xAB', '\x00', 0,
816 '\xD5', '\xAC', '\x00', 0,
817 '\xD5', '\xAD', '\x00', 0,
818 '\xD5', '\xAE', '\x00', 0,
819 '\xD5', '\xAF', '\x00', 0,
822 static const char s_StringToCaseInsensitiveD5[64 * 4] = {
823 '\xD5', '\xB0', '\x00', 0,
824 '\xD5', '\xB1', '\x00', 0,
825 '\xD5', '\xB2', '\x00', 0,
826 '\xD5', '\xB3', '\x00', 0,
827 '\xD5', '\xB4', '\x00', 0,
828 '\xD5', '\xB5', '\x00', 0,
829 '\xD5', '\xB6', '\x00', 0,
830 '\xD5', '\xB7', '\x00', 0,
831 '\xD5', '\xB8', '\x00', 0,
832 '\xD5', '\xB9', '\x00', 0,
833 '\xD5', '\xBA', '\x00', 0,
834 '\xD5', '\xBB', '\x00', 0,
835 '\xD5', '\xBC', '\x00', 0,
836 '\xD5', '\xBD', '\x00', 0,
837 '\xD5', '\xBE', '\x00', 0,
838 '\xD5', '\xBF', '\x00', 0,
839 '\xD6', '\x80', '\x00', 0,
840 '\xD6', '\x81', '\x00', 0,
841 '\xD6', '\x82', '\x00', 0,
842 '\xD6', '\x83', '\x00', 0,
843 '\xD6', '\x84', '\x00', 0,
844 '\xD6', '\x85', '\x00', 0,
845 '\xD6', '\x86', '\x00', 0,
846 0, 0, 0, 0,
847 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
848 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
849 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
850 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
851 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
854 static const char s_StringToCaseInsensitiveE182[64 * 4] = {
855 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
856 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
857 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
858 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
859 '\xE2', '\xB4', '\x80', 0,
860 '\xE2', '\xB4', '\x81', 0,
861 '\xE2', '\xB4', '\x82', 0,
862 '\xE2', '\xB4', '\x83', 0,
863 '\xE2', '\xB4', '\x84', 0,
864 '\xE2', '\xB4', '\x85', 0,
865 '\xE2', '\xB4', '\x86', 0,
866 '\xE2', '\xB4', '\x87', 0,
867 '\xE2', '\xB4', '\x88', 0,
868 '\xE2', '\xB4', '\x89', 0,
869 '\xE2', '\xB4', '\x8A', 0,
870 '\xE2', '\xB4', '\x8B', 0,
871 '\xE2', '\xB4', '\x8C', 0,
872 '\xE2', '\xB4', '\x8D', 0,
873 '\xE2', '\xB4', '\x8E', 0,
874 '\xE2', '\xB4', '\x8F', 0,
875 '\xE2', '\xB4', '\x90', 0,
876 '\xE2', '\xB4', '\x91', 0,
877 '\xE2', '\xB4', '\x92', 0,
878 '\xE2', '\xB4', '\x93', 0,
879 '\xE2', '\xB4', '\x94', 0,
880 '\xE2', '\xB4', '\x95', 0,
881 '\xE2', '\xB4', '\x96', 0,
882 '\xE2', '\xB4', '\x97', 0,
883 '\xE2', '\xB4', '\x98', 0,
884 '\xE2', '\xB4', '\x99', 0,
885 '\xE2', '\xB4', '\x9A', 0,
886 '\xE2', '\xB4', '\x9B', 0,
887 '\xE2', '\xB4', '\x9C', 0,
888 '\xE2', '\xB4', '\x9D', 0,
889 '\xE2', '\xB4', '\x9E', 0,
890 '\xE2', '\xB4', '\x9F', 0,
893 static const char s_StringToCaseInsensitiveE183[64 * 4] = {
894 '\xE2', '\xB4', '\xA0', 0,
895 '\xE2', '\xB4', '\xA1', 0,
896 '\xE2', '\xB4', '\xA2', 0,
897 '\xE2', '\xB4', '\xA3', 0,
898 '\xE2', '\xB4', '\xA4', 0,
899 '\xE2', '\xB4', '\xA5', 0,
900 0, 0, 0, 0,
901 '\xE2', '\xB4', '\xA7', 0,
902 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
903 '\xE2', '\xB4', '\xAD', 0,
904 0, 0, 0, 0, 0, 0, 0, 0,
905 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
906 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
907 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
908 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
909 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
910 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
913 static const char s_StringToCaseInsensitiveE18E[64 * 4] = {
914 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
915 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
916 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
917 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
918 '\xEA', '\xAD', '\xB0', 0,
919 '\xEA', '\xAD', '\xB1', 0,
920 '\xEA', '\xAD', '\xB2', 0,
921 '\xEA', '\xAD', '\xB3', 0,
922 '\xEA', '\xAD', '\xB4', 0,
923 '\xEA', '\xAD', '\xB5', 0,
924 '\xEA', '\xAD', '\xB6', 0,
925 '\xEA', '\xAD', '\xB7', 0,
926 '\xEA', '\xAD', '\xB8', 0,
927 '\xEA', '\xAD', '\xB9', 0,
928 '\xEA', '\xAD', '\xBA', 0,
929 '\xEA', '\xAD', '\xBB', 0,
930 '\xEA', '\xAD', '\xBC', 0,
931 '\xEA', '\xAD', '\xBD', 0,
932 '\xEA', '\xAD', '\xBE', 0,
933 '\xEA', '\xAD', '\xBF', 0,
934 '\xEA', '\xAE', '\x80', 0,
935 '\xEA', '\xAE', '\x81', 0,
936 '\xEA', '\xAE', '\x82', 0,
937 '\xEA', '\xAE', '\x83', 0,
938 '\xEA', '\xAE', '\x84', 0,
939 '\xEA', '\xAE', '\x85', 0,
940 '\xEA', '\xAE', '\x86', 0,
941 '\xEA', '\xAE', '\x87', 0,
942 '\xEA', '\xAE', '\x88', 0,
943 '\xEA', '\xAE', '\x89', 0,
944 '\xEA', '\xAE', '\x8A', 0,
945 '\xEA', '\xAE', '\x8B', 0,
946 '\xEA', '\xAE', '\x8C', 0,
947 '\xEA', '\xAE', '\x8D', 0,
948 '\xEA', '\xAE', '\x8E', 0,
949 '\xEA', '\xAE', '\x8F', 0,
952 static const char s_StringToCaseInsensitiveE18F[64 * 4] = {
953 '\xEA', '\xAE', '\x90', 0,
954 '\xEA', '\xAE', '\x91', 0,
955 '\xEA', '\xAE', '\x92', 0,
956 '\xEA', '\xAE', '\x93', 0,
957 '\xEA', '\xAE', '\x94', 0,
958 '\xEA', '\xAE', '\x95', 0,
959 '\xEA', '\xAE', '\x96', 0,
960 '\xEA', '\xAE', '\x97', 0,
961 '\xEA', '\xAE', '\x98', 0,
962 '\xEA', '\xAE', '\x99', 0,
963 '\xEA', '\xAE', '\x9A', 0,
964 '\xEA', '\xAE', '\x9B', 0,
965 '\xEA', '\xAE', '\x9C', 0,
966 '\xEA', '\xAE', '\x9D', 0,
967 '\xEA', '\xAE', '\x9E', 0,
968 '\xEA', '\xAE', '\x9F', 0,
969 '\xEA', '\xAE', '\xA0', 0,
970 '\xEA', '\xAE', '\xA1', 0,
971 '\xEA', '\xAE', '\xA2', 0,
972 '\xEA', '\xAE', '\xA3', 0,
973 '\xEA', '\xAE', '\xA4', 0,
974 '\xEA', '\xAE', '\xA5', 0,
975 '\xEA', '\xAE', '\xA6', 0,
976 '\xEA', '\xAE', '\xA7', 0,
977 '\xEA', '\xAE', '\xA8', 0,
978 '\xEA', '\xAE', '\xA9', 0,
979 '\xEA', '\xAE', '\xAA', 0,
980 '\xEA', '\xAE', '\xAB', 0,
981 '\xEA', '\xAE', '\xAC', 0,
982 '\xEA', '\xAE', '\xAD', 0,
983 '\xEA', '\xAE', '\xAE', 0,
984 '\xEA', '\xAE', '\xAF', 0,
985 '\xEA', '\xAE', '\xB0', 0,
986 '\xEA', '\xAE', '\xB1', 0,
987 '\xEA', '\xAE', '\xB2', 0,
988 '\xEA', '\xAE', '\xB3', 0,
989 '\xEA', '\xAE', '\xB4', 0,
990 '\xEA', '\xAE', '\xB5', 0,
991 '\xEA', '\xAE', '\xB6', 0,
992 '\xEA', '\xAE', '\xB7', 0,
993 '\xEA', '\xAE', '\xB8', 0,
994 '\xEA', '\xAE', '\xB9', 0,
995 '\xEA', '\xAE', '\xBA', 0,
996 '\xEA', '\xAE', '\xBB', 0,
997 '\xEA', '\xAE', '\xBC', 0,
998 '\xEA', '\xAE', '\xBD', 0,
999 '\xEA', '\xAE', '\xBE', 0,
1000 '\xEA', '\xAE', '\xBF', 0,
1001 '\xE1', '\x8F', '\xB8', 0,
1002 '\xE1', '\x8F', '\xB9', 0,
1003 '\xE1', '\x8F', '\xBA', 0,
1004 '\xE1', '\x8F', '\xBB', 0,
1005 '\xE1', '\x8F', '\xBC', 0,
1006 '\xE1', '\x8F', '\xBD', 0,
1007 0, 0, 0, 0, 0, 0, 0, 0,
1008 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1011 static const char s_StringToCaseInsensitiveE1B2[64 * 4] = {
1012 '\xD0', '\xB2', '\x00', 0,
1013 '\xD0', '\xB4', '\x00', 0,
1014 '\xD0', '\xBE', '\x00', 0,
1015 '\xD1', '\x81', '\x00', 0,
1016 '\xD1', '\x82', '\x00', 0,
1017 '\xD1', '\x82', '\x00', 0,
1018 '\xD1', '\x8A', '\x00', 0,
1019 '\xD1', '\xA3', '\x00', 0,
1020 '\xEA', '\x99', '\x8B', 0,
1021 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1022 '\xE1', '\x83', '\x90', 0,
1023 '\xE1', '\x83', '\x91', 0,
1024 '\xE1', '\x83', '\x92', 0,
1025 '\xE1', '\x83', '\x93', 0,
1026 '\xE1', '\x83', '\x94', 0,
1027 '\xE1', '\x83', '\x95', 0,
1028 '\xE1', '\x83', '\x96', 0,
1029 '\xE1', '\x83', '\x97', 0,
1030 '\xE1', '\x83', '\x98', 0,
1031 '\xE1', '\x83', '\x99', 0,
1032 '\xE1', '\x83', '\x9A', 0,
1033 '\xE1', '\x83', '\x9B', 0,
1034 '\xE1', '\x83', '\x9C', 0,
1035 '\xE1', '\x83', '\x9D', 0,
1036 '\xE1', '\x83', '\x9E', 0,
1037 '\xE1', '\x83', '\x9F', 0,
1038 '\xE1', '\x83', '\xA0', 0,
1039 '\xE1', '\x83', '\xA1', 0,
1040 '\xE1', '\x83', '\xA2', 0,
1041 '\xE1', '\x83', '\xA3', 0,
1042 '\xE1', '\x83', '\xA4', 0,
1043 '\xE1', '\x83', '\xA5', 0,
1044 '\xE1', '\x83', '\xA6', 0,
1045 '\xE1', '\x83', '\xA7', 0,
1046 '\xE1', '\x83', '\xA8', 0,
1047 '\xE1', '\x83', '\xA9', 0,
1048 '\xE1', '\x83', '\xAA', 0,
1049 '\xE1', '\x83', '\xAB', 0,
1050 '\xE1', '\x83', '\xAC', 0,
1051 '\xE1', '\x83', '\xAD', 0,
1052 '\xE1', '\x83', '\xAE', 0,
1053 '\xE1', '\x83', '\xAF', 0,
1054 '\xE1', '\x83', '\xB0', 0,
1055 '\xE1', '\x83', '\xB1', 0,
1056 '\xE1', '\x83', '\xB2', 0,
1057 '\xE1', '\x83', '\xB3', 0,
1058 '\xE1', '\x83', '\xB4', 0,
1059 '\xE1', '\x83', '\xB5', 0,
1060 '\xE1', '\x83', '\xB6', 0,
1061 '\xE1', '\x83', '\xB7', 0,
1062 '\xE1', '\x83', '\xB8', 0,
1063 '\xE1', '\x83', '\xB9', 0,
1064 '\xE1', '\x83', '\xBA', 0,
1065 0, 0, 0, 0, 0, 0, 0, 0,
1066 '\xE1', '\x83', '\xBD', 0,
1067 '\xE1', '\x83', '\xBE', 0,
1068 '\xE1', '\x83', '\xBF', 0,
1071 static const char s_StringToCaseInsensitiveE1B8[64 * 4] = {
1072 '\xE1', '\xB8', '\x81', 0,
1073 0, 0, 0, 0,
1074 '\xE1', '\xB8', '\x83', 0,
1075 0, 0, 0, 0,
1076 '\xE1', '\xB8', '\x85', 0,
1077 0, 0, 0, 0,
1078 '\xE1', '\xB8', '\x87', 0,
1079 0, 0, 0, 0,
1080 '\xE1', '\xB8', '\x89', 0,
1081 0, 0, 0, 0,
1082 '\xE1', '\xB8', '\x8B', 0,
1083 0, 0, 0, 0,
1084 '\xE1', '\xB8', '\x8D', 0,
1085 0, 0, 0, 0,
1086 '\xE1', '\xB8', '\x8F', 0,
1087 0, 0, 0, 0,
1088 '\xE1', '\xB8', '\x91', 0,
1089 0, 0, 0, 0,
1090 '\xE1', '\xB8', '\x93', 0,
1091 0, 0, 0, 0,
1092 '\xE1', '\xB8', '\x95', 0,
1093 0, 0, 0, 0,
1094 '\xE1', '\xB8', '\x97', 0,
1095 0, 0, 0, 0,
1096 '\xE1', '\xB8', '\x99', 0,
1097 0, 0, 0, 0,
1098 '\xE1', '\xB8', '\x9B', 0,
1099 0, 0, 0, 0,
1100 '\xE1', '\xB8', '\x9D', 0,
1101 0, 0, 0, 0,
1102 '\xE1', '\xB8', '\x9F', 0,
1103 0, 0, 0, 0,
1104 '\xE1', '\xB8', '\xA1', 0,
1105 0, 0, 0, 0,
1106 '\xE1', '\xB8', '\xA3', 0,
1107 0, 0, 0, 0,
1108 '\xE1', '\xB8', '\xA5', 0,
1109 0, 0, 0, 0,
1110 '\xE1', '\xB8', '\xA7', 0,
1111 0, 0, 0, 0,
1112 '\xE1', '\xB8', '\xA9', 0,
1113 0, 0, 0, 0,
1114 '\xE1', '\xB8', '\xAB', 0,
1115 0, 0, 0, 0,
1116 '\xE1', '\xB8', '\xAD', 0,
1117 0, 0, 0, 0,
1118 '\xE1', '\xB8', '\xAF', 0,
1119 0, 0, 0, 0,
1120 '\xE1', '\xB8', '\xB1', 0,
1121 0, 0, 0, 0,
1122 '\xE1', '\xB8', '\xB3', 0,
1123 0, 0, 0, 0,
1124 '\xE1', '\xB8', '\xB5', 0,
1125 0, 0, 0, 0,
1126 '\xE1', '\xB8', '\xB7', 0,
1127 0, 0, 0, 0,
1128 '\xE1', '\xB8', '\xB9', 0,
1129 0, 0, 0, 0,
1130 '\xE1', '\xB8', '\xBB', 0,
1131 0, 0, 0, 0,
1132 '\xE1', '\xB8', '\xBD', 0,
1133 0, 0, 0, 0,
1134 '\xE1', '\xB8', '\xBF', 0,
1135 0, 0, 0, 0,
1138 static const char s_StringToCaseInsensitiveE1B9[64 * 4] = {
1139 '\xE1', '\xB9', '\x81', 0,
1140 0, 0, 0, 0,
1141 '\xE1', '\xB9', '\x83', 0,
1142 0, 0, 0, 0,
1143 '\xE1', '\xB9', '\x85', 0,
1144 0, 0, 0, 0,
1145 '\xE1', '\xB9', '\x87', 0,
1146 0, 0, 0, 0,
1147 '\xE1', '\xB9', '\x89', 0,
1148 0, 0, 0, 0,
1149 '\xE1', '\xB9', '\x8B', 0,
1150 0, 0, 0, 0,
1151 '\xE1', '\xB9', '\x8D', 0,
1152 0, 0, 0, 0,
1153 '\xE1', '\xB9', '\x8F', 0,
1154 0, 0, 0, 0,
1155 '\xE1', '\xB9', '\x91', 0,
1156 0, 0, 0, 0,
1157 '\xE1', '\xB9', '\x93', 0,
1158 0, 0, 0, 0,
1159 '\xE1', '\xB9', '\x95', 0,
1160 0, 0, 0, 0,
1161 '\xE1', '\xB9', '\x97', 0,
1162 0, 0, 0, 0,
1163 '\xE1', '\xB9', '\x99', 0,
1164 0, 0, 0, 0,
1165 '\xE1', '\xB9', '\x9B', 0,
1166 0, 0, 0, 0,
1167 '\xE1', '\xB9', '\x9D', 0,
1168 0, 0, 0, 0,
1169 '\xE1', '\xB9', '\x9F', 0,
1170 0, 0, 0, 0,
1171 '\xE1', '\xB9', '\xA1', 0,
1172 0, 0, 0, 0,
1173 '\xE1', '\xB9', '\xA3', 0,
1174 0, 0, 0, 0,
1175 '\xE1', '\xB9', '\xA5', 0,
1176 0, 0, 0, 0,
1177 '\xE1', '\xB9', '\xA7', 0,
1178 0, 0, 0, 0,
1179 '\xE1', '\xB9', '\xA9', 0,
1180 0, 0, 0, 0,
1181 '\xE1', '\xB9', '\xAB', 0,
1182 0, 0, 0, 0,
1183 '\xE1', '\xB9', '\xAD', 0,
1184 0, 0, 0, 0,
1185 '\xE1', '\xB9', '\xAF', 0,
1186 0, 0, 0, 0,
1187 '\xE1', '\xB9', '\xB1', 0,
1188 0, 0, 0, 0,
1189 '\xE1', '\xB9', '\xB3', 0,
1190 0, 0, 0, 0,
1191 '\xE1', '\xB9', '\xB5', 0,
1192 0, 0, 0, 0,
1193 '\xE1', '\xB9', '\xB7', 0,
1194 0, 0, 0, 0,
1195 '\xE1', '\xB9', '\xB9', 0,
1196 0, 0, 0, 0,
1197 '\xE1', '\xB9', '\xBB', 0,
1198 0, 0, 0, 0,
1199 '\xE1', '\xB9', '\xBD', 0,
1200 0, 0, 0, 0,
1201 '\xE1', '\xB9', '\xBF', 0,
1202 0, 0, 0, 0,
1205 static const char s_StringToCaseInsensitiveE1BA[64 * 4] = {
1206 '\xE1', '\xBA', '\x81', 0,
1207 0, 0, 0, 0,
1208 '\xE1', '\xBA', '\x83', 0,
1209 0, 0, 0, 0,
1210 '\xE1', '\xBA', '\x85', 0,
1211 0, 0, 0, 0,
1212 '\xE1', '\xBA', '\x87', 0,
1213 0, 0, 0, 0,
1214 '\xE1', '\xBA', '\x89', 0,
1215 0, 0, 0, 0,
1216 '\xE1', '\xBA', '\x8B', 0,
1217 0, 0, 0, 0,
1218 '\xE1', '\xBA', '\x8D', 0,
1219 0, 0, 0, 0,
1220 '\xE1', '\xBA', '\x8F', 0,
1221 0, 0, 0, 0,
1222 '\xE1', '\xBA', '\x91', 0,
1223 0, 0, 0, 0,
1224 '\xE1', '\xBA', '\x93', 0,
1225 0, 0, 0, 0,
1226 '\xE1', '\xBA', '\x95', 0,
1227 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1228 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1229 '\xE1', '\xB9', '\xA1', 0,
1230 0, 0, 0, 0, 0, 0, 0, 0,
1231 '\xC3', '\x9F', '\x00', 0,
1232 0, 0, 0, 0,
1233 '\xE1', '\xBA', '\xA1', 0,
1234 0, 0, 0, 0,
1235 '\xE1', '\xBA', '\xA3', 0,
1236 0, 0, 0, 0,
1237 '\xE1', '\xBA', '\xA5', 0,
1238 0, 0, 0, 0,
1239 '\xE1', '\xBA', '\xA7', 0,
1240 0, 0, 0, 0,
1241 '\xE1', '\xBA', '\xA9', 0,
1242 0, 0, 0, 0,
1243 '\xE1', '\xBA', '\xAB', 0,
1244 0, 0, 0, 0,
1245 '\xE1', '\xBA', '\xAD', 0,
1246 0, 0, 0, 0,
1247 '\xE1', '\xBA', '\xAF', 0,
1248 0, 0, 0, 0,
1249 '\xE1', '\xBA', '\xB1', 0,
1250 0, 0, 0, 0,
1251 '\xE1', '\xBA', '\xB3', 0,
1252 0, 0, 0, 0,
1253 '\xE1', '\xBA', '\xB5', 0,
1254 0, 0, 0, 0,
1255 '\xE1', '\xBA', '\xB7', 0,
1256 0, 0, 0, 0,
1257 '\xE1', '\xBA', '\xB9', 0,
1258 0, 0, 0, 0,
1259 '\xE1', '\xBA', '\xBB', 0,
1260 0, 0, 0, 0,
1261 '\xE1', '\xBA', '\xBD', 0,
1262 0, 0, 0, 0,
1263 '\xE1', '\xBA', '\xBF', 0,
1264 0, 0, 0, 0,
1267 static const char s_StringToCaseInsensitiveE1BB[64 * 4] = {
1268 '\xE1', '\xBB', '\x81', 0,
1269 0, 0, 0, 0,
1270 '\xE1', '\xBB', '\x83', 0,
1271 0, 0, 0, 0,
1272 '\xE1', '\xBB', '\x85', 0,
1273 0, 0, 0, 0,
1274 '\xE1', '\xBB', '\x87', 0,
1275 0, 0, 0, 0,
1276 '\xE1', '\xBB', '\x89', 0,
1277 0, 0, 0, 0,
1278 '\xE1', '\xBB', '\x8B', 0,
1279 0, 0, 0, 0,
1280 '\xE1', '\xBB', '\x8D', 0,
1281 0, 0, 0, 0,
1282 '\xE1', '\xBB', '\x8F', 0,
1283 0, 0, 0, 0,
1284 '\xE1', '\xBB', '\x91', 0,
1285 0, 0, 0, 0,
1286 '\xE1', '\xBB', '\x93', 0,
1287 0, 0, 0, 0,
1288 '\xE1', '\xBB', '\x95', 0,
1289 0, 0, 0, 0,
1290 '\xE1', '\xBB', '\x97', 0,
1291 0, 0, 0, 0,
1292 '\xE1', '\xBB', '\x99', 0,
1293 0, 0, 0, 0,
1294 '\xE1', '\xBB', '\x9B', 0,
1295 0, 0, 0, 0,
1296 '\xE1', '\xBB', '\x9D', 0,
1297 0, 0, 0, 0,
1298 '\xE1', '\xBB', '\x9F', 0,
1299 0, 0, 0, 0,
1300 '\xE1', '\xBB', '\xA1', 0,
1301 0, 0, 0, 0,
1302 '\xE1', '\xBB', '\xA3', 0,
1303 0, 0, 0, 0,
1304 '\xE1', '\xBB', '\xA5', 0,
1305 0, 0, 0, 0,
1306 '\xE1', '\xBB', '\xA7', 0,
1307 0, 0, 0, 0,
1308 '\xE1', '\xBB', '\xA9', 0,
1309 0, 0, 0, 0,
1310 '\xE1', '\xBB', '\xAB', 0,
1311 0, 0, 0, 0,
1312 '\xE1', '\xBB', '\xAD', 0,
1313 0, 0, 0, 0,
1314 '\xE1', '\xBB', '\xAF', 0,
1315 0, 0, 0, 0,
1316 '\xE1', '\xBB', '\xB1', 0,
1317 0, 0, 0, 0,
1318 '\xE1', '\xBB', '\xB3', 0,
1319 0, 0, 0, 0,
1320 '\xE1', '\xBB', '\xB5', 0,
1321 0, 0, 0, 0,
1322 '\xE1', '\xBB', '\xB7', 0,
1323 0, 0, 0, 0,
1324 '\xE1', '\xBB', '\xB9', 0,
1325 0, 0, 0, 0,
1326 '\xE1', '\xBB', '\xBB', 0,
1327 0, 0, 0, 0,
1328 '\xE1', '\xBB', '\xBD', 0,
1329 0, 0, 0, 0,
1330 '\xE1', '\xBB', '\xBF', 0,
1331 0, 0, 0, 0,
1334 static const char s_StringToCaseInsensitiveE1BC[64 * 4] = {
1335 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1336 '\xE1', '\xBC', '\x80', 0,
1337 '\xE1', '\xBC', '\x81', 0,
1338 '\xE1', '\xBC', '\x82', 0,
1339 '\xE1', '\xBC', '\x83', 0,
1340 '\xE1', '\xBC', '\x84', 0,
1341 '\xE1', '\xBC', '\x85', 0,
1342 '\xE1', '\xBC', '\x86', 0,
1343 '\xE1', '\xBC', '\x87', 0,
1344 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1345 '\xE1', '\xBC', '\x90', 0,
1346 '\xE1', '\xBC', '\x91', 0,
1347 '\xE1', '\xBC', '\x92', 0,
1348 '\xE1', '\xBC', '\x93', 0,
1349 '\xE1', '\xBC', '\x94', 0,
1350 '\xE1', '\xBC', '\x95', 0,
1351 0, 0, 0, 0, 0, 0, 0, 0,
1352 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1353 '\xE1', '\xBC', '\xA0', 0,
1354 '\xE1', '\xBC', '\xA1', 0,
1355 '\xE1', '\xBC', '\xA2', 0,
1356 '\xE1', '\xBC', '\xA3', 0,
1357 '\xE1', '\xBC', '\xA4', 0,
1358 '\xE1', '\xBC', '\xA5', 0,
1359 '\xE1', '\xBC', '\xA6', 0,
1360 '\xE1', '\xBC', '\xA7', 0,
1361 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1362 '\xE1', '\xBC', '\xB0', 0,
1363 '\xE1', '\xBC', '\xB1', 0,
1364 '\xE1', '\xBC', '\xB2', 0,
1365 '\xE1', '\xBC', '\xB3', 0,
1366 '\xE1', '\xBC', '\xB4', 0,
1367 '\xE1', '\xBC', '\xB5', 0,
1368 '\xE1', '\xBC', '\xB6', 0,
1369 '\xE1', '\xBC', '\xB7', 0,
1372 static const char s_StringToCaseInsensitiveE1BD[64 * 4] = {
1373 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1374 '\xE1', '\xBD', '\x80', 0,
1375 '\xE1', '\xBD', '\x81', 0,
1376 '\xE1', '\xBD', '\x82', 0,
1377 '\xE1', '\xBD', '\x83', 0,
1378 '\xE1', '\xBD', '\x84', 0,
1379 '\xE1', '\xBD', '\x85', 0,
1380 0, 0, 0, 0, 0, 0, 0, 0,
1381 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1382 0, 0, 0, 0,
1383 '\xE1', '\xBD', '\x91', 0,
1384 0, 0, 0, 0,
1385 '\xE1', '\xBD', '\x93', 0,
1386 0, 0, 0, 0,
1387 '\xE1', '\xBD', '\x95', 0,
1388 0, 0, 0, 0,
1389 '\xE1', '\xBD', '\x97', 0,
1390 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1391 '\xE1', '\xBD', '\xA0', 0,
1392 '\xE1', '\xBD', '\xA1', 0,
1393 '\xE1', '\xBD', '\xA2', 0,
1394 '\xE1', '\xBD', '\xA3', 0,
1395 '\xE1', '\xBD', '\xA4', 0,
1396 '\xE1', '\xBD', '\xA5', 0,
1397 '\xE1', '\xBD', '\xA6', 0,
1398 '\xE1', '\xBD', '\xA7', 0,
1399 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1400 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1403 static const char s_StringToCaseInsensitiveE1BE[64 * 4] = {
1404 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1405 '\xE1', '\xBE', '\x80', 0,
1406 '\xE1', '\xBE', '\x81', 0,
1407 '\xE1', '\xBE', '\x82', 0,
1408 '\xE1', '\xBE', '\x83', 0,
1409 '\xE1', '\xBE', '\x84', 0,
1410 '\xE1', '\xBE', '\x85', 0,
1411 '\xE1', '\xBE', '\x86', 0,
1412 '\xE1', '\xBE', '\x87', 0,
1413 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1414 '\xE1', '\xBE', '\x90', 0,
1415 '\xE1', '\xBE', '\x91', 0,
1416 '\xE1', '\xBE', '\x92', 0,
1417 '\xE1', '\xBE', '\x93', 0,
1418 '\xE1', '\xBE', '\x94', 0,
1419 '\xE1', '\xBE', '\x95', 0,
1420 '\xE1', '\xBE', '\x96', 0,
1421 '\xE1', '\xBE', '\x97', 0,
1422 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1423 '\xE1', '\xBE', '\xA0', 0,
1424 '\xE1', '\xBE', '\xA1', 0,
1425 '\xE1', '\xBE', '\xA2', 0,
1426 '\xE1', '\xBE', '\xA3', 0,
1427 '\xE1', '\xBE', '\xA4', 0,
1428 '\xE1', '\xBE', '\xA5', 0,
1429 '\xE1', '\xBE', '\xA6', 0,
1430 '\xE1', '\xBE', '\xA7', 0,
1431 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1432 '\xE1', '\xBE', '\xB0', 0,
1433 '\xE1', '\xBE', '\xB1', 0,
1434 '\xE1', '\xBD', '\xB0', 0,
1435 '\xE1', '\xBD', '\xB1', 0,
1436 '\xE1', '\xBE', '\xB3', 0,
1437 0, 0, 0, 0,
1438 '\xCE', '\xB9', '\x00', 0,
1439 0, 0, 0, 0,
1442 static const char s_StringToCaseInsensitiveE1BF[64 * 4] = {
1443 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1444 '\xE1', '\xBD', '\xB2', 0,
1445 '\xE1', '\xBD', '\xB3', 0,
1446 '\xE1', '\xBD', '\xB4', 0,
1447 '\xE1', '\xBD', '\xB5', 0,
1448 '\xE1', '\xBF', '\x83', 0,
1449 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1450 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1451 '\xE1', '\xBF', '\x90', 0,
1452 '\xE1', '\xBF', '\x91', 0,
1453 '\xE1', '\xBD', '\xB6', 0,
1454 '\xE1', '\xBD', '\xB7', 0,
1455 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1456 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1457 '\xE1', '\xBF', '\xA0', 0,
1458 '\xE1', '\xBF', '\xA1', 0,
1459 '\xE1', '\xBD', '\xBA', 0,
1460 '\xE1', '\xBD', '\xBB', 0,
1461 '\xE1', '\xBF', '\xA5', 0,
1462 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1463 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1464 '\xE1', '\xBD', '\xB8', 0,
1465 '\xE1', '\xBD', '\xB9', 0,
1466 '\xE1', '\xBD', '\xBC', 0,
1467 '\xE1', '\xBD', '\xBD', 0,
1468 '\xE1', '\xBF', '\xB3', 0,
1469 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1472 static const char s_StringToCaseInsensitiveE284[64 * 4] = {
1473 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1474 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1475 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1476 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1477 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1478 '\xCF', '\x89', '\x00', 0,
1479 0, 0, 0, 0,
1480 0, 0, 0, 0, 0, 0, 0, 0,
1481 '\x6B', '\x00', '\x00', 0,
1482 '\xC3', '\xA5', '\x00', 0,
1483 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1484 0, 0, 0, 0, 0, 0, 0, 0,
1485 '\xE2', '\x85', '\x8E', 0,
1486 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1487 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1490 static const char s_StringToCaseInsensitiveE285[64 * 4] = {
1491 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1492 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1493 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1494 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1495 '\xE2', '\x85', '\xB0', 0,
1496 '\xE2', '\x85', '\xB1', 0,
1497 '\xE2', '\x85', '\xB2', 0,
1498 '\xE2', '\x85', '\xB3', 0,
1499 '\xE2', '\x85', '\xB4', 0,
1500 '\xE2', '\x85', '\xB5', 0,
1501 '\xE2', '\x85', '\xB6', 0,
1502 '\xE2', '\x85', '\xB7', 0,
1503 '\xE2', '\x85', '\xB8', 0,
1504 '\xE2', '\x85', '\xB9', 0,
1505 '\xE2', '\x85', '\xBA', 0,
1506 '\xE2', '\x85', '\xBB', 0,
1507 '\xE2', '\x85', '\xBC', 0,
1508 '\xE2', '\x85', '\xBD', 0,
1509 '\xE2', '\x85', '\xBE', 0,
1510 '\xE2', '\x85', '\xBF', 0,
1511 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1512 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1515 static const char s_StringToCaseInsensitiveE286[64 * 4] = {
1516 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1517 '\xE2', '\x86', '\x84', 0,
1518 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1519 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1520 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1521 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1522 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1523 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1524 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1525 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1528 static const char s_StringToCaseInsensitiveE292[64 * 4] = {
1529 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1530 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1531 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1532 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1533 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1534 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1535 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1536 '\xE2', '\x93', '\x90', 0,
1537 '\xE2', '\x93', '\x91', 0,
1538 '\xE2', '\x93', '\x92', 0,
1539 '\xE2', '\x93', '\x93', 0,
1540 '\xE2', '\x93', '\x94', 0,
1541 '\xE2', '\x93', '\x95', 0,
1542 '\xE2', '\x93', '\x96', 0,
1543 '\xE2', '\x93', '\x97', 0,
1544 '\xE2', '\x93', '\x98', 0,
1545 '\xE2', '\x93', '\x99', 0,
1548 static const char s_StringToCaseInsensitiveE293[64 * 4] = {
1549 '\xE2', '\x93', '\x9A', 0,
1550 '\xE2', '\x93', '\x9B', 0,
1551 '\xE2', '\x93', '\x9C', 0,
1552 '\xE2', '\x93', '\x9D', 0,
1553 '\xE2', '\x93', '\x9E', 0,
1554 '\xE2', '\x93', '\x9F', 0,
1555 '\xE2', '\x93', '\xA0', 0,
1556 '\xE2', '\x93', '\xA1', 0,
1557 '\xE2', '\x93', '\xA2', 0,
1558 '\xE2', '\x93', '\xA3', 0,
1559 '\xE2', '\x93', '\xA4', 0,
1560 '\xE2', '\x93', '\xA5', 0,
1561 '\xE2', '\x93', '\xA6', 0,
1562 '\xE2', '\x93', '\xA7', 0,
1563 '\xE2', '\x93', '\xA8', 0,
1564 '\xE2', '\x93', '\xA9', 0,
1565 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1566 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1567 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1568 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1569 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1570 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1573 static const char s_StringToCaseInsensitiveE2B0[64 * 4] = {
1574 '\xE2', '\xB0', '\xB0', 0,
1575 '\xE2', '\xB0', '\xB1', 0,
1576 '\xE2', '\xB0', '\xB2', 0,
1577 '\xE2', '\xB0', '\xB3', 0,
1578 '\xE2', '\xB0', '\xB4', 0,
1579 '\xE2', '\xB0', '\xB5', 0,
1580 '\xE2', '\xB0', '\xB6', 0,
1581 '\xE2', '\xB0', '\xB7', 0,
1582 '\xE2', '\xB0', '\xB8', 0,
1583 '\xE2', '\xB0', '\xB9', 0,
1584 '\xE2', '\xB0', '\xBA', 0,
1585 '\xE2', '\xB0', '\xBB', 0,
1586 '\xE2', '\xB0', '\xBC', 0,
1587 '\xE2', '\xB0', '\xBD', 0,
1588 '\xE2', '\xB0', '\xBE', 0,
1589 '\xE2', '\xB0', '\xBF', 0,
1590 '\xE2', '\xB1', '\x80', 0,
1591 '\xE2', '\xB1', '\x81', 0,
1592 '\xE2', '\xB1', '\x82', 0,
1593 '\xE2', '\xB1', '\x83', 0,
1594 '\xE2', '\xB1', '\x84', 0,
1595 '\xE2', '\xB1', '\x85', 0,
1596 '\xE2', '\xB1', '\x86', 0,
1597 '\xE2', '\xB1', '\x87', 0,
1598 '\xE2', '\xB1', '\x88', 0,
1599 '\xE2', '\xB1', '\x89', 0,
1600 '\xE2', '\xB1', '\x8A', 0,
1601 '\xE2', '\xB1', '\x8B', 0,
1602 '\xE2', '\xB1', '\x8C', 0,
1603 '\xE2', '\xB1', '\x8D', 0,
1604 '\xE2', '\xB1', '\x8E', 0,
1605 '\xE2', '\xB1', '\x8F', 0,
1606 '\xE2', '\xB1', '\x90', 0,
1607 '\xE2', '\xB1', '\x91', 0,
1608 '\xE2', '\xB1', '\x92', 0,
1609 '\xE2', '\xB1', '\x93', 0,
1610 '\xE2', '\xB1', '\x94', 0,
1611 '\xE2', '\xB1', '\x95', 0,
1612 '\xE2', '\xB1', '\x96', 0,
1613 '\xE2', '\xB1', '\x97', 0,
1614 '\xE2', '\xB1', '\x98', 0,
1615 '\xE2', '\xB1', '\x99', 0,
1616 '\xE2', '\xB1', '\x9A', 0,
1617 '\xE2', '\xB1', '\x9B', 0,
1618 '\xE2', '\xB1', '\x9C', 0,
1619 '\xE2', '\xB1', '\x9D', 0,
1620 '\xE2', '\xB1', '\x9E', 0,
1621 0, 0, 0, 0,
1622 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1623 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1626 static const char s_StringToCaseInsensitiveE2B1[64 * 4] = {
1627 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1628 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1629 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1630 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1631 '\xE2', '\xB1', '\xA1', 0,
1632 0, 0, 0, 0,
1633 '\xC9', '\xAB', '\x00', 0,
1634 '\xE1', '\xB5', '\xBD', 0,
1635 '\xC9', '\xBD', '\x00', 0,
1636 0, 0, 0, 0, 0, 0, 0, 0,
1637 '\xE2', '\xB1', '\xA8', 0,
1638 0, 0, 0, 0,
1639 '\xE2', '\xB1', '\xAA', 0,
1640 0, 0, 0, 0,
1641 '\xE2', '\xB1', '\xAC', 0,
1642 0, 0, 0, 0,
1643 '\xC9', '\x91', '\x00', 0,
1644 '\xC9', '\xB1', '\x00', 0,
1645 '\xC9', '\x90', '\x00', 0,
1646 '\xC9', '\x92', '\x00', 0,
1647 0, 0, 0, 0,
1648 '\xE2', '\xB1', '\xB3', 0,
1649 0, 0, 0, 0, 0, 0, 0, 0,
1650 '\xE2', '\xB1', '\xB6', 0,
1651 0, 0, 0, 0, 0, 0, 0, 0,
1652 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1653 '\xC8', '\xBF', '\x00', 0,
1654 '\xC9', '\x80', '\x00', 0,
1657 static const char s_StringToCaseInsensitiveE2B2[64 * 4] = {
1658 '\xE2', '\xB2', '\x81', 0,
1659 0, 0, 0, 0,
1660 '\xE2', '\xB2', '\x83', 0,
1661 0, 0, 0, 0,
1662 '\xE2', '\xB2', '\x85', 0,
1663 0, 0, 0, 0,
1664 '\xE2', '\xB2', '\x87', 0,
1665 0, 0, 0, 0,
1666 '\xE2', '\xB2', '\x89', 0,
1667 0, 0, 0, 0,
1668 '\xE2', '\xB2', '\x8B', 0,
1669 0, 0, 0, 0,
1670 '\xE2', '\xB2', '\x8D', 0,
1671 0, 0, 0, 0,
1672 '\xE2', '\xB2', '\x8F', 0,
1673 0, 0, 0, 0,
1674 '\xE2', '\xB2', '\x91', 0,
1675 0, 0, 0, 0,
1676 '\xE2', '\xB2', '\x93', 0,
1677 0, 0, 0, 0,
1678 '\xE2', '\xB2', '\x95', 0,
1679 0, 0, 0, 0,
1680 '\xE2', '\xB2', '\x97', 0,
1681 0, 0, 0, 0,
1682 '\xE2', '\xB2', '\x99', 0,
1683 0, 0, 0, 0,
1684 '\xE2', '\xB2', '\x9B', 0,
1685 0, 0, 0, 0,
1686 '\xE2', '\xB2', '\x9D', 0,
1687 0, 0, 0, 0,
1688 '\xE2', '\xB2', '\x9F', 0,
1689 0, 0, 0, 0,
1690 '\xE2', '\xB2', '\xA1', 0,
1691 0, 0, 0, 0,
1692 '\xE2', '\xB2', '\xA3', 0,
1693 0, 0, 0, 0,
1694 '\xE2', '\xB2', '\xA5', 0,
1695 0, 0, 0, 0,
1696 '\xE2', '\xB2', '\xA7', 0,
1697 0, 0, 0, 0,
1698 '\xE2', '\xB2', '\xA9', 0,
1699 0, 0, 0, 0,
1700 '\xE2', '\xB2', '\xAB', 0,
1701 0, 0, 0, 0,
1702 '\xE2', '\xB2', '\xAD', 0,
1703 0, 0, 0, 0,
1704 '\xE2', '\xB2', '\xAF', 0,
1705 0, 0, 0, 0,
1706 '\xE2', '\xB2', '\xB1', 0,
1707 0, 0, 0, 0,
1708 '\xE2', '\xB2', '\xB3', 0,
1709 0, 0, 0, 0,
1710 '\xE2', '\xB2', '\xB5', 0,
1711 0, 0, 0, 0,
1712 '\xE2', '\xB2', '\xB7', 0,
1713 0, 0, 0, 0,
1714 '\xE2', '\xB2', '\xB9', 0,
1715 0, 0, 0, 0,
1716 '\xE2', '\xB2', '\xBB', 0,
1717 0, 0, 0, 0,
1718 '\xE2', '\xB2', '\xBD', 0,
1719 0, 0, 0, 0,
1720 '\xE2', '\xB2', '\xBF', 0,
1721 0, 0, 0, 0,
1724 static const char s_StringToCaseInsensitiveE2B3[64 * 4] = {
1725 '\xE2', '\xB3', '\x81', 0,
1726 0, 0, 0, 0,
1727 '\xE2', '\xB3', '\x83', 0,
1728 0, 0, 0, 0,
1729 '\xE2', '\xB3', '\x85', 0,
1730 0, 0, 0, 0,
1731 '\xE2', '\xB3', '\x87', 0,
1732 0, 0, 0, 0,
1733 '\xE2', '\xB3', '\x89', 0,
1734 0, 0, 0, 0,
1735 '\xE2', '\xB3', '\x8B', 0,
1736 0, 0, 0, 0,
1737 '\xE2', '\xB3', '\x8D', 0,
1738 0, 0, 0, 0,
1739 '\xE2', '\xB3', '\x8F', 0,
1740 0, 0, 0, 0,
1741 '\xE2', '\xB3', '\x91', 0,
1742 0, 0, 0, 0,
1743 '\xE2', '\xB3', '\x93', 0,
1744 0, 0, 0, 0,
1745 '\xE2', '\xB3', '\x95', 0,
1746 0, 0, 0, 0,
1747 '\xE2', '\xB3', '\x97', 0,
1748 0, 0, 0, 0,
1749 '\xE2', '\xB3', '\x99', 0,
1750 0, 0, 0, 0,
1751 '\xE2', '\xB3', '\x9B', 0,
1752 0, 0, 0, 0,
1753 '\xE2', '\xB3', '\x9D', 0,
1754 0, 0, 0, 0,
1755 '\xE2', '\xB3', '\x9F', 0,
1756 0, 0, 0, 0,
1757 '\xE2', '\xB3', '\xA1', 0,
1758 0, 0, 0, 0,
1759 '\xE2', '\xB3', '\xA3', 0,
1760 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1761 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1762 '\xE2', '\xB3', '\xAC', 0,
1763 0, 0, 0, 0,
1764 '\xE2', '\xB3', '\xAE', 0,
1765 0, 0, 0, 0, 0, 0, 0, 0,
1766 0, 0, 0, 0, 0, 0, 0, 0,
1767 '\xE2', '\xB3', '\xB3', 0,
1768 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1769 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1772 static const char s_StringToCaseInsensitiveEA99[64 * 4] = {
1773 '\xEA', '\x99', '\x81', 0,
1774 0, 0, 0, 0,
1775 '\xEA', '\x99', '\x83', 0,
1776 0, 0, 0, 0,
1777 '\xEA', '\x99', '\x85', 0,
1778 0, 0, 0, 0,
1779 '\xEA', '\x99', '\x87', 0,
1780 0, 0, 0, 0,
1781 '\xEA', '\x99', '\x89', 0,
1782 0, 0, 0, 0,
1783 '\xEA', '\x99', '\x8B', 0,
1784 0, 0, 0, 0,
1785 '\xEA', '\x99', '\x8D', 0,
1786 0, 0, 0, 0,
1787 '\xEA', '\x99', '\x8F', 0,
1788 0, 0, 0, 0,
1789 '\xEA', '\x99', '\x91', 0,
1790 0, 0, 0, 0,
1791 '\xEA', '\x99', '\x93', 0,
1792 0, 0, 0, 0,
1793 '\xEA', '\x99', '\x95', 0,
1794 0, 0, 0, 0,
1795 '\xEA', '\x99', '\x97', 0,
1796 0, 0, 0, 0,
1797 '\xEA', '\x99', '\x99', 0,
1798 0, 0, 0, 0,
1799 '\xEA', '\x99', '\x9B', 0,
1800 0, 0, 0, 0,
1801 '\xEA', '\x99', '\x9D', 0,
1802 0, 0, 0, 0,
1803 '\xEA', '\x99', '\x9F', 0,
1804 0, 0, 0, 0,
1805 '\xEA', '\x99', '\xA1', 0,
1806 0, 0, 0, 0,
1807 '\xEA', '\x99', '\xA3', 0,
1808 0, 0, 0, 0,
1809 '\xEA', '\x99', '\xA5', 0,
1810 0, 0, 0, 0,
1811 '\xEA', '\x99', '\xA7', 0,
1812 0, 0, 0, 0,
1813 '\xEA', '\x99', '\xA9', 0,
1814 0, 0, 0, 0,
1815 '\xEA', '\x99', '\xAB', 0,
1816 0, 0, 0, 0,
1817 '\xEA', '\x99', '\xAD', 0,
1818 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1819 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1820 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1823 static const char s_StringToCaseInsensitiveEA9A[64 * 4] = {
1824 '\xEA', '\x9A', '\x81', 0,
1825 0, 0, 0, 0,
1826 '\xEA', '\x9A', '\x83', 0,
1827 0, 0, 0, 0,
1828 '\xEA', '\x9A', '\x85', 0,
1829 0, 0, 0, 0,
1830 '\xEA', '\x9A', '\x87', 0,
1831 0, 0, 0, 0,
1832 '\xEA', '\x9A', '\x89', 0,
1833 0, 0, 0, 0,
1834 '\xEA', '\x9A', '\x8B', 0,
1835 0, 0, 0, 0,
1836 '\xEA', '\x9A', '\x8D', 0,
1837 0, 0, 0, 0,
1838 '\xEA', '\x9A', '\x8F', 0,
1839 0, 0, 0, 0,
1840 '\xEA', '\x9A', '\x91', 0,
1841 0, 0, 0, 0,
1842 '\xEA', '\x9A', '\x93', 0,
1843 0, 0, 0, 0,
1844 '\xEA', '\x9A', '\x95', 0,
1845 0, 0, 0, 0,
1846 '\xEA', '\x9A', '\x97', 0,
1847 0, 0, 0, 0,
1848 '\xEA', '\x9A', '\x99', 0,
1849 0, 0, 0, 0,
1850 '\xEA', '\x9A', '\x9B', 0,
1851 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1852 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1853 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1854 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1855 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1858 static const char s_StringToCaseInsensitiveEA9C[64 * 4] = {
1859 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1860 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1861 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1862 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1863 0, 0, 0, 0, 0, 0, 0, 0,
1864 '\xEA', '\x9C', '\xA3', 0,
1865 0, 0, 0, 0,
1866 '\xEA', '\x9C', '\xA5', 0,
1867 0, 0, 0, 0,
1868 '\xEA', '\x9C', '\xA7', 0,
1869 0, 0, 0, 0,
1870 '\xEA', '\x9C', '\xA9', 0,
1871 0, 0, 0, 0,
1872 '\xEA', '\x9C', '\xAB', 0,
1873 0, 0, 0, 0,
1874 '\xEA', '\x9C', '\xAD', 0,
1875 0, 0, 0, 0,
1876 '\xEA', '\x9C', '\xAF', 0,
1877 0, 0, 0, 0,
1878 0, 0, 0, 0, 0, 0, 0, 0,
1879 '\xEA', '\x9C', '\xB3', 0,
1880 0, 0, 0, 0,
1881 '\xEA', '\x9C', '\xB5', 0,
1882 0, 0, 0, 0,
1883 '\xEA', '\x9C', '\xB7', 0,
1884 0, 0, 0, 0,
1885 '\xEA', '\x9C', '\xB9', 0,
1886 0, 0, 0, 0,
1887 '\xEA', '\x9C', '\xBB', 0,
1888 0, 0, 0, 0,
1889 '\xEA', '\x9C', '\xBD', 0,
1890 0, 0, 0, 0,
1891 '\xEA', '\x9C', '\xBF', 0,
1892 0, 0, 0, 0,
1895 static const char s_StringToCaseInsensitiveEA9D[64 * 4] = {
1896 '\xEA', '\x9D', '\x81', 0,
1897 0, 0, 0, 0,
1898 '\xEA', '\x9D', '\x83', 0,
1899 0, 0, 0, 0,
1900 '\xEA', '\x9D', '\x85', 0,
1901 0, 0, 0, 0,
1902 '\xEA', '\x9D', '\x87', 0,
1903 0, 0, 0, 0,
1904 '\xEA', '\x9D', '\x89', 0,
1905 0, 0, 0, 0,
1906 '\xEA', '\x9D', '\x8B', 0,
1907 0, 0, 0, 0,
1908 '\xEA', '\x9D', '\x8D', 0,
1909 0, 0, 0, 0,
1910 '\xEA', '\x9D', '\x8F', 0,
1911 0, 0, 0, 0,
1912 '\xEA', '\x9D', '\x91', 0,
1913 0, 0, 0, 0,
1914 '\xEA', '\x9D', '\x93', 0,
1915 0, 0, 0, 0,
1916 '\xEA', '\x9D', '\x95', 0,
1917 0, 0, 0, 0,
1918 '\xEA', '\x9D', '\x97', 0,
1919 0, 0, 0, 0,
1920 '\xEA', '\x9D', '\x99', 0,
1921 0, 0, 0, 0,
1922 '\xEA', '\x9D', '\x9B', 0,
1923 0, 0, 0, 0,
1924 '\xEA', '\x9D', '\x9D', 0,
1925 0, 0, 0, 0,
1926 '\xEA', '\x9D', '\x9F', 0,
1927 0, 0, 0, 0,
1928 '\xEA', '\x9D', '\xA1', 0,
1929 0, 0, 0, 0,
1930 '\xEA', '\x9D', '\xA3', 0,
1931 0, 0, 0, 0,
1932 '\xEA', '\x9D', '\xA5', 0,
1933 0, 0, 0, 0,
1934 '\xEA', '\x9D', '\xA7', 0,
1935 0, 0, 0, 0,
1936 '\xEA', '\x9D', '\xA9', 0,
1937 0, 0, 0, 0,
1938 '\xEA', '\x9D', '\xAB', 0,
1939 0, 0, 0, 0,
1940 '\xEA', '\x9D', '\xAD', 0,
1941 0, 0, 0, 0,
1942 '\xEA', '\x9D', '\xAF', 0,
1943 0, 0, 0, 0,
1944 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1945 0, 0, 0, 0,
1946 '\xEA', '\x9D', '\xBA', 0,
1947 0, 0, 0, 0,
1948 '\xEA', '\x9D', '\xBC', 0,
1949 0, 0, 0, 0,
1950 '\xE1', '\xB5', '\xB9', 0,
1951 '\xEA', '\x9D', '\xBF', 0,
1952 0, 0, 0, 0,
1955 static const char s_StringToCaseInsensitiveEA9E[64 * 4] = {
1956 '\xEA', '\x9E', '\x81', 0,
1957 0, 0, 0, 0,
1958 '\xEA', '\x9E', '\x83', 0,
1959 0, 0, 0, 0,
1960 '\xEA', '\x9E', '\x85', 0,
1961 0, 0, 0, 0,
1962 '\xEA', '\x9E', '\x87', 0,
1963 0, 0, 0, 0,
1964 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1965 '\xEA', '\x9E', '\x8C', 0,
1966 0, 0, 0, 0,
1967 '\xC9', '\xA5', '\x00', 0,
1968 0, 0, 0, 0, 0, 0, 0, 0,
1969 '\xEA', '\x9E', '\x91', 0,
1970 0, 0, 0, 0,
1971 '\xEA', '\x9E', '\x93', 0,
1972 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1973 '\xEA', '\x9E', '\x97', 0,
1974 0, 0, 0, 0,
1975 '\xEA', '\x9E', '\x99', 0,
1976 0, 0, 0, 0,
1977 '\xEA', '\x9E', '\x9B', 0,
1978 0, 0, 0, 0,
1979 '\xEA', '\x9E', '\x9D', 0,
1980 0, 0, 0, 0,
1981 '\xEA', '\x9E', '\x9F', 0,
1982 0, 0, 0, 0,
1983 '\xEA', '\x9E', '\xA1', 0,
1984 0, 0, 0, 0,
1985 '\xEA', '\x9E', '\xA3', 0,
1986 0, 0, 0, 0,
1987 '\xEA', '\x9E', '\xA5', 0,
1988 0, 0, 0, 0,
1989 '\xEA', '\x9E', '\xA7', 0,
1990 0, 0, 0, 0,
1991 '\xEA', '\x9E', '\xA9', 0,
1992 0, 0, 0, 0,
1993 '\xC9', '\xA6', '\x00', 0,
1994 '\xC9', '\x9C', '\x00', 0,
1995 '\xC9', '\xA1', '\x00', 0,
1996 '\xC9', '\xAC', '\x00', 0,
1997 '\xC9', '\xAA', '\x00', 0,
1998 0, 0, 0, 0,
1999 '\xCA', '\x9E', '\x00', 0,
2000 '\xCA', '\x87', '\x00', 0,
2001 '\xCA', '\x9D', '\x00', 0,
2002 '\xEA', '\xAD', '\x93', 0,
2003 '\xEA', '\x9E', '\xB5', 0,
2004 0, 0, 0, 0,
2005 '\xEA', '\x9E', '\xB7', 0,
2006 0, 0, 0, 0,
2007 '\xEA', '\x9E', '\xB9', 0,
2008 0, 0, 0, 0,
2009 '\xEA', '\x9E', '\xBB', 0,
2010 0, 0, 0, 0,
2011 '\xEA', '\x9E', '\xBD', 0,
2012 0, 0, 0, 0,
2013 '\xEA', '\x9E', '\xBF', 0,
2014 0, 0, 0, 0,
2017 static const char s_StringToCaseInsensitiveEA9F[64 * 4] = {
2018 0, 0, 0, 0, 0, 0, 0, 0,
2019 '\xEA', '\x9F', '\x83', 0,
2020 0, 0, 0, 0,
2021 '\xEA', '\x9E', '\x94', 0,
2022 '\xCA', '\x82', '\x00', 0,
2023 '\xE1', '\xB6', '\x8E', 0,
2024 '\xEA', '\x9F', '\x88', 0,
2025 0, 0, 0, 0,
2026 '\xEA', '\x9F', '\x8A', 0,
2027 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2028 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2029 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2030 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2031 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2032 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2033 '\xEA', '\x9F', '\xB6', 0,
2034 0, 0, 0, 0, 0, 0, 0, 0,
2035 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2038 static const char s_StringToCaseInsensitiveEFBC[64 * 4] = {
2039 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2040 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2041 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2042 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2043 0, 0, 0, 0,
2044 '\xEF', '\xBD', '\x81', 0,
2045 '\xEF', '\xBD', '\x82', 0,
2046 '\xEF', '\xBD', '\x83', 0,
2047 '\xEF', '\xBD', '\x84', 0,
2048 '\xEF', '\xBD', '\x85', 0,
2049 '\xEF', '\xBD', '\x86', 0,
2050 '\xEF', '\xBD', '\x87', 0,
2051 '\xEF', '\xBD', '\x88', 0,
2052 '\xEF', '\xBD', '\x89', 0,
2053 '\xEF', '\xBD', '\x8A', 0,
2054 '\xEF', '\xBD', '\x8B', 0,
2055 '\xEF', '\xBD', '\x8C', 0,
2056 '\xEF', '\xBD', '\x8D', 0,
2057 '\xEF', '\xBD', '\x8E', 0,
2058 '\xEF', '\xBD', '\x8F', 0,
2059 '\xEF', '\xBD', '\x90', 0,
2060 '\xEF', '\xBD', '\x91', 0,
2061 '\xEF', '\xBD', '\x92', 0,
2062 '\xEF', '\xBD', '\x93', 0,
2063 '\xEF', '\xBD', '\x94', 0,
2064 '\xEF', '\xBD', '\x95', 0,
2065 '\xEF', '\xBD', '\x96', 0,
2066 '\xEF', '\xBD', '\x97', 0,
2067 '\xEF', '\xBD', '\x98', 0,
2068 '\xEF', '\xBD', '\x99', 0,
2069 '\xEF', '\xBD', '\x9A', 0,
2070 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2073 static const char s_StringToCaseInsensitiveF09090[64 * 4] = {
2074 '\xF0', '\x90', '\x90', 0,
2075 '\xF0', '\x90', '\x90', 0,
2076 '\xF0', '\x90', '\x90', 0,
2077 '\xF0', '\x90', '\x90', 0,
2078 '\xF0', '\x90', '\x90', 0,
2079 '\xF0', '\x90', '\x90', 0,
2080 '\xF0', '\x90', '\x90', 0,
2081 '\xF0', '\x90', '\x90', 0,
2082 '\xF0', '\x90', '\x90', 0,
2083 '\xF0', '\x90', '\x90', 0,
2084 '\xF0', '\x90', '\x90', 0,
2085 '\xF0', '\x90', '\x90', 0,
2086 '\xF0', '\x90', '\x90', 0,
2087 '\xF0', '\x90', '\x90', 0,
2088 '\xF0', '\x90', '\x90', 0,
2089 '\xF0', '\x90', '\x90', 0,
2090 '\xF0', '\x90', '\x90', 0,
2091 '\xF0', '\x90', '\x90', 0,
2092 '\xF0', '\x90', '\x90', 0,
2093 '\xF0', '\x90', '\x90', 0,
2094 '\xF0', '\x90', '\x90', 0,
2095 '\xF0', '\x90', '\x90', 0,
2096 '\xF0', '\x90', '\x90', 0,
2097 '\xF0', '\x90', '\x90', 0,
2098 '\xF0', '\x90', '\x91', 0,
2099 '\xF0', '\x90', '\x91', 0,
2100 '\xF0', '\x90', '\x91', 0,
2101 '\xF0', '\x90', '\x91', 0,
2102 '\xF0', '\x90', '\x91', 0,
2103 '\xF0', '\x90', '\x91', 0,
2104 '\xF0', '\x90', '\x91', 0,
2105 '\xF0', '\x90', '\x91', 0,
2106 '\xF0', '\x90', '\x91', 0,
2107 '\xF0', '\x90', '\x91', 0,
2108 '\xF0', '\x90', '\x91', 0,
2109 '\xF0', '\x90', '\x91', 0,
2110 '\xF0', '\x90', '\x91', 0,
2111 '\xF0', '\x90', '\x91', 0,
2112 '\xF0', '\x90', '\x91', 0,
2113 '\xF0', '\x90', '\x91', 0,
2114 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2115 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2116 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2119 static const char s_StringToCaseInsensitiveF09092[64 * 4] = {
2120 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2121 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2122 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2123 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2124 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2125 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2126 '\xF0', '\x90', '\x93', 0,
2127 '\xF0', '\x90', '\x93', 0,
2128 '\xF0', '\x90', '\x93', 0,
2129 '\xF0', '\x90', '\x93', 0,
2130 '\xF0', '\x90', '\x93', 0,
2131 '\xF0', '\x90', '\x93', 0,
2132 '\xF0', '\x90', '\x93', 0,
2133 '\xF0', '\x90', '\x93', 0,
2134 '\xF0', '\x90', '\x93', 0,
2135 '\xF0', '\x90', '\x93', 0,
2136 '\xF0', '\x90', '\x93', 0,
2137 '\xF0', '\x90', '\x93', 0,
2138 '\xF0', '\x90', '\x93', 0,
2139 '\xF0', '\x90', '\x93', 0,
2140 '\xF0', '\x90', '\x93', 0,
2141 '\xF0', '\x90', '\x93', 0,
2144 static const char s_StringToCaseInsensitiveF09093[64 * 4] = {
2145 '\xF0', '\x90', '\x93', 0,
2146 '\xF0', '\x90', '\x93', 0,
2147 '\xF0', '\x90', '\x93', 0,
2148 '\xF0', '\x90', '\x93', 0,
2149 '\xF0', '\x90', '\x93', 0,
2150 '\xF0', '\x90', '\x93', 0,
2151 '\xF0', '\x90', '\x93', 0,
2152 '\xF0', '\x90', '\x93', 0,
2153 '\xF0', '\x90', '\x93', 0,
2154 '\xF0', '\x90', '\x93', 0,
2155 '\xF0', '\x90', '\x93', 0,
2156 '\xF0', '\x90', '\x93', 0,
2157 '\xF0', '\x90', '\x93', 0,
2158 '\xF0', '\x90', '\x93', 0,
2159 '\xF0', '\x90', '\x93', 0,
2160 '\xF0', '\x90', '\x93', 0,
2161 '\xF0', '\x90', '\x93', 0,
2162 '\xF0', '\x90', '\x93', 0,
2163 '\xF0', '\x90', '\x93', 0,
2164 '\xF0', '\x90', '\x93', 0,
2165 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2166 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2167 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2168 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2169 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2170 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2173 static const char s_StringToCaseInsensitiveF090B2[64 * 4] = {
2174 '\xF0', '\x90', '\xB3', 0,
2175 '\xF0', '\x90', '\xB3', 0,
2176 '\xF0', '\x90', '\xB3', 0,
2177 '\xF0', '\x90', '\xB3', 0,
2178 '\xF0', '\x90', '\xB3', 0,
2179 '\xF0', '\x90', '\xB3', 0,
2180 '\xF0', '\x90', '\xB3', 0,
2181 '\xF0', '\x90', '\xB3', 0,
2182 '\xF0', '\x90', '\xB3', 0,
2183 '\xF0', '\x90', '\xB3', 0,
2184 '\xF0', '\x90', '\xB3', 0,
2185 '\xF0', '\x90', '\xB3', 0,
2186 '\xF0', '\x90', '\xB3', 0,
2187 '\xF0', '\x90', '\xB3', 0,
2188 '\xF0', '\x90', '\xB3', 0,
2189 '\xF0', '\x90', '\xB3', 0,
2190 '\xF0', '\x90', '\xB3', 0,
2191 '\xF0', '\x90', '\xB3', 0,
2192 '\xF0', '\x90', '\xB3', 0,
2193 '\xF0', '\x90', '\xB3', 0,
2194 '\xF0', '\x90', '\xB3', 0,
2195 '\xF0', '\x90', '\xB3', 0,
2196 '\xF0', '\x90', '\xB3', 0,
2197 '\xF0', '\x90', '\xB3', 0,
2198 '\xF0', '\x90', '\xB3', 0,
2199 '\xF0', '\x90', '\xB3', 0,
2200 '\xF0', '\x90', '\xB3', 0,
2201 '\xF0', '\x90', '\xB3', 0,
2202 '\xF0', '\x90', '\xB3', 0,
2203 '\xF0', '\x90', '\xB3', 0,
2204 '\xF0', '\x90', '\xB3', 0,
2205 '\xF0', '\x90', '\xB3', 0,
2206 '\xF0', '\x90', '\xB3', 0,
2207 '\xF0', '\x90', '\xB3', 0,
2208 '\xF0', '\x90', '\xB3', 0,
2209 '\xF0', '\x90', '\xB3', 0,
2210 '\xF0', '\x90', '\xB3', 0,
2211 '\xF0', '\x90', '\xB3', 0,
2212 '\xF0', '\x90', '\xB3', 0,
2213 '\xF0', '\x90', '\xB3', 0,
2214 '\xF0', '\x90', '\xB3', 0,
2215 '\xF0', '\x90', '\xB3', 0,
2216 '\xF0', '\x90', '\xB3', 0,
2217 '\xF0', '\x90', '\xB3', 0,
2218 '\xF0', '\x90', '\xB3', 0,
2219 '\xF0', '\x90', '\xB3', 0,
2220 '\xF0', '\x90', '\xB3', 0,
2221 '\xF0', '\x90', '\xB3', 0,
2222 '\xF0', '\x90', '\xB3', 0,
2223 '\xF0', '\x90', '\xB3', 0,
2224 '\xF0', '\x90', '\xB3', 0,
2225 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2226 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2229 static const char s_StringToCaseInsensitiveF091A2[64 * 4] = {
2230 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2231 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2232 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2233 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2234 '\xF0', '\x91', '\xA3', 0,
2235 '\xF0', '\x91', '\xA3', 0,
2236 '\xF0', '\x91', '\xA3', 0,
2237 '\xF0', '\x91', '\xA3', 0,
2238 '\xF0', '\x91', '\xA3', 0,
2239 '\xF0', '\x91', '\xA3', 0,
2240 '\xF0', '\x91', '\xA3', 0,
2241 '\xF0', '\x91', '\xA3', 0,
2242 '\xF0', '\x91', '\xA3', 0,
2243 '\xF0', '\x91', '\xA3', 0,
2244 '\xF0', '\x91', '\xA3', 0,
2245 '\xF0', '\x91', '\xA3', 0,
2246 '\xF0', '\x91', '\xA3', 0,
2247 '\xF0', '\x91', '\xA3', 0,
2248 '\xF0', '\x91', '\xA3', 0,
2249 '\xF0', '\x91', '\xA3', 0,
2250 '\xF0', '\x91', '\xA3', 0,
2251 '\xF0', '\x91', '\xA3', 0,
2252 '\xF0', '\x91', '\xA3', 0,
2253 '\xF0', '\x91', '\xA3', 0,
2254 '\xF0', '\x91', '\xA3', 0,
2255 '\xF0', '\x91', '\xA3', 0,
2256 '\xF0', '\x91', '\xA3', 0,
2257 '\xF0', '\x91', '\xA3', 0,
2258 '\xF0', '\x91', '\xA3', 0,
2259 '\xF0', '\x91', '\xA3', 0,
2260 '\xF0', '\x91', '\xA3', 0,
2261 '\xF0', '\x91', '\xA3', 0,
2262 '\xF0', '\x91', '\xA3', 0,
2263 '\xF0', '\x91', '\xA3', 0,
2264 '\xF0', '\x91', '\xA3', 0,
2265 '\xF0', '\x91', '\xA3', 0,
2268 static const char s_StringToCaseInsensitiveF096B9[64 * 4] = {
2269 '\xF0', '\x96', '\xB9', 0,
2270 '\xF0', '\x96', '\xB9', 0,
2271 '\xF0', '\x96', '\xB9', 0,
2272 '\xF0', '\x96', '\xB9', 0,
2273 '\xF0', '\x96', '\xB9', 0,
2274 '\xF0', '\x96', '\xB9', 0,
2275 '\xF0', '\x96', '\xB9', 0,
2276 '\xF0', '\x96', '\xB9', 0,
2277 '\xF0', '\x96', '\xB9', 0,
2278 '\xF0', '\x96', '\xB9', 0,
2279 '\xF0', '\x96', '\xB9', 0,
2280 '\xF0', '\x96', '\xB9', 0,
2281 '\xF0', '\x96', '\xB9', 0,
2282 '\xF0', '\x96', '\xB9', 0,
2283 '\xF0', '\x96', '\xB9', 0,
2284 '\xF0', '\x96', '\xB9', 0,
2285 '\xF0', '\x96', '\xB9', 0,
2286 '\xF0', '\x96', '\xB9', 0,
2287 '\xF0', '\x96', '\xB9', 0,
2288 '\xF0', '\x96', '\xB9', 0,
2289 '\xF0', '\x96', '\xB9', 0,
2290 '\xF0', '\x96', '\xB9', 0,
2291 '\xF0', '\x96', '\xB9', 0,
2292 '\xF0', '\x96', '\xB9', 0,
2293 '\xF0', '\x96', '\xB9', 0,
2294 '\xF0', '\x96', '\xB9', 0,
2295 '\xF0', '\x96', '\xB9', 0,
2296 '\xF0', '\x96', '\xB9', 0,
2297 '\xF0', '\x96', '\xB9', 0,
2298 '\xF0', '\x96', '\xB9', 0,
2299 '\xF0', '\x96', '\xB9', 0,
2300 '\xF0', '\x96', '\xB9', 0,
2301 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2302 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2303 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2304 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2307 static const char s_StringToCaseInsensitiveF09EA4[64 * 4] = {
2308 '\xF0', '\x9E', '\xA4', 0,
2309 '\xF0', '\x9E', '\xA4', 0,
2310 '\xF0', '\x9E', '\xA4', 0,
2311 '\xF0', '\x9E', '\xA4', 0,
2312 '\xF0', '\x9E', '\xA4', 0,
2313 '\xF0', '\x9E', '\xA4', 0,
2314 '\xF0', '\x9E', '\xA4', 0,
2315 '\xF0', '\x9E', '\xA4', 0,
2316 '\xF0', '\x9E', '\xA4', 0,
2317 '\xF0', '\x9E', '\xA4', 0,
2318 '\xF0', '\x9E', '\xA4', 0,
2319 '\xF0', '\x9E', '\xA4', 0,
2320 '\xF0', '\x9E', '\xA4', 0,
2321 '\xF0', '\x9E', '\xA4', 0,
2322 '\xF0', '\x9E', '\xA4', 0,
2323 '\xF0', '\x9E', '\xA4', 0,
2324 '\xF0', '\x9E', '\xA4', 0,
2325 '\xF0', '\x9E', '\xA4', 0,
2326 '\xF0', '\x9E', '\xA4', 0,
2327 '\xF0', '\x9E', '\xA4', 0,
2328 '\xF0', '\x9E', '\xA4', 0,
2329 '\xF0', '\x9E', '\xA4', 0,
2330 '\xF0', '\x9E', '\xA4', 0,
2331 '\xF0', '\x9E', '\xA4', 0,
2332 '\xF0', '\x9E', '\xA4', 0,
2333 '\xF0', '\x9E', '\xA4', 0,
2334 '\xF0', '\x9E', '\xA4', 0,
2335 '\xF0', '\x9E', '\xA4', 0,
2336 '\xF0', '\x9E', '\xA4', 0,
2337 '\xF0', '\x9E', '\xA4', 0,
2338 '\xF0', '\x9E', '\xA5', 0,
2339 '\xF0', '\x9E', '\xA5', 0,
2340 '\xF0', '\x9E', '\xA5', 0,
2341 '\xF0', '\x9E', '\xA5', 0,
2342 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2343 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2344 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2345 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2348 static const char *s_StringToCaseInsensitiveMap[32] = {
2349 0, 0,
2350 s_StringToCaseInsensitiveC2,
2351 s_StringToCaseInsensitiveC3,
2352 s_StringToCaseInsensitiveC4,
2353 s_StringToCaseInsensitiveC5,
2354 s_StringToCaseInsensitiveC6,
2355 s_StringToCaseInsensitiveC7,
2356 s_StringToCaseInsensitiveC8,
2357 s_StringToCaseInsensitiveC9,
2358 0, 0, 0,
2359 s_StringToCaseInsensitiveCD,
2360 s_StringToCaseInsensitiveCE,
2361 s_StringToCaseInsensitiveCF,
2362 s_StringToCaseInsensitiveD0,
2363 s_StringToCaseInsensitiveD1,
2364 s_StringToCaseInsensitiveD2,
2365 s_StringToCaseInsensitiveD3,
2366 s_StringToCaseInsensitiveD4,
2367 s_StringToCaseInsensitiveD5,
2368 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2371 static const char *s_StringToCaseInsensitiveMapE1[64] = {
2372 0, 0,
2373 s_StringToCaseInsensitiveE182,
2374 s_StringToCaseInsensitiveE183,
2375 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2376 s_StringToCaseInsensitiveE18E,
2377 s_StringToCaseInsensitiveE18F,
2378 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2379 s_StringToCaseInsensitiveE1B2,
2380 0, 0, 0, 0, 0,
2381 s_StringToCaseInsensitiveE1B8,
2382 s_StringToCaseInsensitiveE1B9,
2383 s_StringToCaseInsensitiveE1BA,
2384 s_StringToCaseInsensitiveE1BB,
2385 s_StringToCaseInsensitiveE1BC,
2386 s_StringToCaseInsensitiveE1BD,
2387 s_StringToCaseInsensitiveE1BE,
2388 s_StringToCaseInsensitiveE1BF,
2391 static const char *s_StringToCaseInsensitiveMapE2[64] = {
2392 0, 0, 0, 0,
2393 s_StringToCaseInsensitiveE284,
2394 s_StringToCaseInsensitiveE285,
2395 s_StringToCaseInsensitiveE286,
2396 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2397 s_StringToCaseInsensitiveE292,
2398 s_StringToCaseInsensitiveE293,
2399 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2400 s_StringToCaseInsensitiveE2B0,
2401 s_StringToCaseInsensitiveE2B1,
2402 s_StringToCaseInsensitiveE2B2,
2403 s_StringToCaseInsensitiveE2B3,
2404 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2407 static const char *s_StringToCaseInsensitiveMapEA[64] = {
2408 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2409 s_StringToCaseInsensitiveEA99,
2410 s_StringToCaseInsensitiveEA9A,
2412 s_StringToCaseInsensitiveEA9C,
2413 s_StringToCaseInsensitiveEA9D,
2414 s_StringToCaseInsensitiveEA9E,
2415 s_StringToCaseInsensitiveEA9F,
2416 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2419 static const char *s_StringToCaseInsensitiveMapEF[64] = {
2420 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2421 s_StringToCaseInsensitiveEFBC,
2422 0, 0, 0,
2425 static const char **s_StringToCaseInsensitiveMapMap[16] = {
2427 s_StringToCaseInsensitiveMapE1,
2428 s_StringToCaseInsensitiveMapE2,
2429 0, 0, 0, 0, 0, 0, 0,
2430 s_StringToCaseInsensitiveMapEA,
2431 0, 0, 0, 0,
2432 s_StringToCaseInsensitiveMapEF,
2435 static const char *s_StringToCaseInsensitiveMapF090[64] = {
2436 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2437 s_StringToCaseInsensitiveF09090,
2439 s_StringToCaseInsensitiveF09092,
2440 s_StringToCaseInsensitiveF09093,
2441 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2442 s_StringToCaseInsensitiveF090B2,
2443 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2446 static const char *s_StringToCaseInsensitiveMapF091[64] = {
2447 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2448 s_StringToCaseInsensitiveF091A2,
2449 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2452 static const char *s_StringToCaseInsensitiveMapF096[64] = {
2453 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2454 s_StringToCaseInsensitiveF096B9,
2455 0, 0, 0, 0, 0, 0,
2458 static const char *s_StringToCaseInsensitiveMapF09E[64] = {
2459 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2460 s_StringToCaseInsensitiveF09EA4,
2461 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2464 static const char **s_StringToCaseInsensitiveMapMapF0[64] = {
2465 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2466 s_StringToCaseInsensitiveMapF090,
2467 s_StringToCaseInsensitiveMapF091,
2468 0, 0, 0, 0,
2469 s_StringToCaseInsensitiveMapF096,
2470 0, 0, 0, 0, 0, 0, 0,
2471 s_StringToCaseInsensitiveMapF09E,
2472 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2475 static const char ***s_StringToCaseInsensitiveMapMapMap[8] = {
2476 s_StringToCaseInsensitiveMapMapF0,
2477 0, 0, 0, 0, 0, 0, 0,
2480 static const char s_LowerAscii[] = {
2481 'a', 0, 'b', 0, 'c', 0, 'd', 0, 'e', 0, 'f', 0, 'g', 0,
2482 'h', 0, 'i', 0, 'j', 0, 'k', 0, 'l', 0, 'm', 0, 'n', 0,
2483 'o', 0, 'p', 0, 'q', 0, 'r', 0, 's', 0, 't', 0, 'u', 0,
2484 'v', 0, 'w', 0, 'x', 0, 'y', 0, 'z', 0, 0, 0, 0, 0
2487 // ***************************************************************************
2489 const char *fetchToCaseInsensitiveAsUtf8(const char **str)
2491 unsigned char c = *(*str);
2492 unsigned char d, e, f;
2493 if (c < 0x80)
2495 if (c >= 'A' && c <= 'Z')
2497 // 1-byte UTF-8
2498 ++(*str);
2499 return &s_LowerAscii[(c - 'A') << 1];
2502 else if (c < 0xC0)
2504 // non-starting byte
2506 else if (c < 0xE0)
2508 // 2-byte UTF-8
2509 if (((d = (*str)[1]) & 0xC0) == 0x80)
2511 const char *table = s_StringToCaseInsensitiveMap[c & 0x1F];
2512 if (table)
2514 unsigned char idx = (d & 0x3F) << 2;
2515 if (table[idx])
2517 (*str) += 2;
2518 return &table[idx];
2523 else if (c < 0xF0)
2525 // 3-byte UTF-8
2526 if (((d = (*str)[1]) & 0xC0) == 0x80 && ((e = (*str)[2]) & 0xC0) == 0x80)
2528 const char **map = s_StringToCaseInsensitiveMapMap[c & 0x0F];
2529 if (map)
2531 const char *table = map[d & 0x3F];
2532 if (table)
2534 unsigned char idx = (e & 0x3F) << 2;
2535 if (table[idx])
2537 (*str) += 3;
2538 return &table[idx];
2544 else if (c < 0xF8)
2546 // 4-byte UTF-8
2547 if (((d = (*str)[1]) & 0xC0) == 0x80 && ((e = (*str)[2]) & 0xC0) == 0x80 && ((f = (*str)[3]) & 0xC0) == 0x80)
2549 const char ***mapMap = s_StringToCaseInsensitiveMapMapMap[c & 0x07];
2550 if (mapMap)
2552 const char **map = mapMap[d & 0x3F];
2553 if (map)
2555 const char *table = map[e & 0x3F];
2556 if (table)
2558 unsigned char idx = (f & 0x3F) << 2;
2559 if (table[idx])
2561 (*str) += 4;
2562 return &table[idx];
2569 return NULL;
2572 // ***************************************************************************
2574 int compareCaseInsensitive(const char *a, const char *b)
2576 // while (*a != 0 && *b != 0)
2577 for (; ;)
2579 const char *ca = fetchToCaseInsensitiveAsUtf8(&a);
2580 const char *cb = fetchToCaseInsensitiveAsUtf8(&b);
2581 if (!ca && !cb)
2583 // Easy case, ASCII compare or junk
2584 if (*a != *b)
2586 if (*a > * b) return 1;
2587 else return -1;
2589 else if (!*a) // Equal and NUL, ends both
2591 return 0;
2593 ++a;
2594 ++b;
2596 else if (!cb)
2598 // String a changed lowercase, iterate ca until NUL alongside b
2599 nlassert(*ca);
2602 if (*ca != *b)
2604 if (*ca > *b) return 1;
2605 else return -1;
2607 ++ca;
2608 ++b;
2609 } while (*ca);
2611 else if (!ca)
2613 // String b changed lowercase, iterate a alongside cb until NUL
2614 nlassert(*cb);
2617 if (*a != *cb)
2619 if (*a > *cb) return 1;
2620 else return -1;
2622 ++a;
2623 ++cb;
2624 } while (*cb);
2626 else
2628 // Both strings changed lowercase
2629 if (ca != cb) // Only check if it's a different result
2633 if (*ca != *cb)
2635 if (*ca > *cb) return 1;
2636 else return -1;
2638 ++ca;
2639 ++cb;
2640 } while (*ca && *cb);
2644 // if (*a == *b) return 0;
2645 // if (*a > *b) return 1;
2646 // return -1;
2649 // ***************************************************************************
2651 int compareCaseInsensitive(const char *a, size_t lenA, const char *b, size_t lenB)
2653 const char *ma = a + lenA;
2654 const char *mb = b + lenB;
2655 for (; ;)
2657 if (a >= ma)
2659 if (b >= mb)
2661 return 0; // Both strings ended
2663 else
2665 return 1; // A is longer
2668 if (b >= mb)
2670 return -1; // B is longer
2672 const char *ca = fetchToCaseInsensitiveAsUtf8(&a);
2673 const char *cb = fetchToCaseInsensitiveAsUtf8(&b);
2674 if (!ca && !cb)
2676 // Easy case, ASCII compare or junk
2677 if (*a != *b)
2679 if (*a > * b) return 1;
2680 else return -1;
2683 else if (!*a) // Equal and NUL, ends both
2685 return 0;
2688 ++a;
2689 ++b;
2691 else if (!cb)
2693 // String a changed lowercase, iterate ca until NUL alongside b
2694 nlassert(*ca);
2697 if (*ca != *b)
2699 if (*ca > *b) return 1;
2700 else return -1;
2702 ++ca;
2703 ++b;
2704 } while (*ca);
2706 else if (!ca)
2708 // String b changed lowercase, iterate a alongside cb until NUL
2709 nlassert(*cb);
2712 if (*a != *cb)
2714 if (*a > *cb) return 1;
2715 else return -1;
2717 ++a;
2718 ++cb;
2719 } while (*cb);
2721 else
2723 // Both strings changed lowercase
2724 if (ca != cb) // Only check if it's a different result
2728 if (*ca != *cb)
2730 if (*ca > *cb) return 1;
2731 else return -1;
2733 ++ca;
2734 ++cb;
2735 } while (*ca && *cb);
2741 // ***************************************************************************
2743 NL_FORCE_INLINE void appendToCaseInsensitiveAsUtf8(std::string &res, const char *str, ptrdiff_t &i)
2745 unsigned char c = str[i];
2746 unsigned char d, e, f;
2747 if (c < 0x80)
2749 if (c >= 'A' && c <= 'Z')
2751 // 1-byte UTF-8
2752 c += 'a' - 'A';
2755 else if (c < 0xC0)
2757 // non-starting byte
2759 else if (c < 0xE0)
2761 // 2-byte UTF-8
2762 if (((d = str[i + 1]) & 0xC0) == 0x80)
2764 const char *table = s_StringToCaseInsensitiveMap[c & 0x1F];
2765 if (table)
2767 unsigned char idx = (d & 0x3F) << 2;
2768 if (table[idx])
2770 res += &table[idx];
2771 i += 2;
2772 return;
2777 else if (c < 0xF0)
2779 // 3-byte UTF-8
2780 if (((d = str[i + 1]) & 0xC0) == 0x80 && ((e = str[i + 2]) & 0xC0) == 0x80)
2782 const char **map = s_StringToCaseInsensitiveMapMap[c & 0x0F];
2783 if (map)
2785 const char *table = map[d & 0x3F];
2786 if (table)
2788 unsigned char idx = (e & 0x3F) << 2;
2789 if (table[idx])
2791 res += &table[idx];
2792 i += 3;
2793 return;
2799 else if (c < 0xF8)
2801 // 4-byte UTF-8
2802 if (((d = str[i + 1]) & 0xC0) == 0x80 && ((e = str[i + 2]) & 0xC0) == 0x80 && ((f = str[i + 3]) & 0xC0) == 0x80)
2804 const char ***mapMap = s_StringToCaseInsensitiveMapMapMap[c & 0x07];
2805 if (mapMap)
2807 const char **map = mapMap[d & 0x3F];
2808 if (map)
2810 const char *table = map[e & 0x3F];
2811 if (table)
2813 unsigned char idx = (f & 0x3F) << 2;
2814 if (table[idx])
2816 res += &table[idx];
2817 i += 4;
2818 return;
2825 res += c;
2826 ++i;
2829 // ***************************************************************************
2831 std::string toCaseInsensitive(const char *str)
2833 // UTF-8 toCaseInsensitive
2834 std::string res;
2835 for (ptrdiff_t i = 0; str[i];)
2836 appendToCaseInsensitiveAsUtf8(res, str, i);
2837 return res;
2840 // ***************************************************************************
2842 std::string toCaseInsensitive(const std::string &str)
2844 // UTF-8 toCaseInsensitive
2845 std::string res;
2846 res.reserve(str.size() + (str.size() >> 2));
2847 const char *cstr = &str[0];
2848 for (ptrdiff_t i = 0; i < (ptrdiff_t)str.size();)
2849 appendToCaseInsensitiveAsUtf8(res, cstr, i);
2850 return res;
2853 } // NLMISC