source: icGREP/icgrep-devel/icgrep/UCD/CaseFolding.h @ 6194

Last change on this file since 6194 was 6192, checked in by cameron, 7 months ago

Updates for Unicode 11.0 plus Emoji properties

File size: 52.9 KB
Line 
1#ifndef CASEFOLDING_H
2#define CASEFOLDING_H
3/*
4 *  Copyright (c) 2018 International Characters, Inc.
5 *  This software is licensed to the public under the Open Software License 3.0.
6 *  icgrep is a trademark of International Characters, Inc.
7 *
8 *  This file is generated by UCD_properties.py - manual edits may be lost.
9 */
10
11#include "PropertyAliases.h"
12#include "PropertyObjects.h"
13#include "PropertyValueAliases.h"
14#include "unicode_set.h"
15#include <vector>
16
17struct FoldEntry {
18    const UCD::codepoint_t range_lo;
19    const int fold_offset;
20    const std::vector<UCD::interval_t> fold_pairs;
21};
22
23UCD::UnicodeSet caseInsensitize(const UCD::UnicodeSet & cc);
24
25
26const int foldTableSize = 256;
27
28const FoldEntry foldTable[foldTableSize] = {
29  {0x0, 0, {}},
30  {0x41, 32, {{0x4b, 0x212a}, {0x53, 0x17f}}},
31  {0x5b, 0, {}},
32  {0x61, -32, {{0x6b, 0x212a}, {0x73, 0x17f}}},
33  {0x7b, 0, {{0xb5, 0x3bc}, {0xb5, 0x39c}}},
34  {0xc0, 32, {{0xc5, 0x212b}}},
35  {0xd7, 0, {}},
36  {0xd8, 32, {}},
37  {0xdf, 0, {{0xdf, 0x1e9e}}},
38  {0xe0, -32, {{0xe5, 0x212b}}},
39  {0xf7, 0, {}},
40  {0xf8, -32, {}},
41  {0xff, 0, {{0xff, 0x178}}},
42  {0x100, 1, {}},
43  {0x130, 0, {}},
44  {0x132, 1, {}},
45  {0x138, 0, {}},
46  {0x139, 1, {}},
47  {0x149, 0, {}},
48  {0x14a, 1, {}},
49  {0x178, 0, {{0x178, 0xff}}},
50  {0x179, 1, {}},
51  {0x17f, 0, {{0x17f, 0x73}, {0x17f, 0x53}, {0x180, 0x243}, {0x181, 0x253}}},
52  {0x182, 1, {}},
53  {0x186, 0, {{0x186, 0x254}}},
54  {0x187, 1, {}},
55  {0x189, 205, {}},
56  {0x18b, 1, {}},
57  {0x18d, 0, {{0x18e, 0x1dd}, {0x18f, 0x259}, {0x190, 0x25b}}},
58  {0x191, 1, {}},
59  {0x193, 0, {{0x193, 0x260}, {0x194, 0x263}, {0x195, 0x1f6}, {0x196, 0x269},
60    {0x197, 0x268}}},
61  {0x198, 1, {}},
62  {0x19a, 0, {{0x19a, 0x23d}, {0x19c, 0x26f}, {0x19d, 0x272}, {0x19e, 0x220},
63    {0x19f, 0x275}}},
64  {0x1a0, 1, {}},
65  {0x1a6, 0, {{0x1a6, 0x280}}},
66  {0x1a7, 1, {}},
67  {0x1a9, 0, {{0x1a9, 0x283}}},
68  {0x1ac, 1, {}},
69  {0x1ae, 0, {{0x1ae, 0x288}}},
70  {0x1af, 1, {}},
71  {0x1b1, 217, {}},
72  {0x1b3, 1, {}},
73  {0x1b7, 0, {{0x1b7, 0x292}}},
74  {0x1b8, 1, {}},
75  {0x1ba, 0, {}},
76  {0x1bc, 1, {}},
77  {0x1be, 0, {{0x1bf, 0x1f7}}},
78  {0x1c4, 1, {{0x1c4, 0x1c6}}},
79  {0x1c6, 0, {}},
80  {0x1c5, 1, {{0x1c6, 0x1c4}, {0x1c7, 0x1c9}}},
81  {0x1c9, 0, {}},
82  {0x1c8, 1, {{0x1c9, 0x1c7}, {0x1ca, 0x1cc}}},
83  {0x1cc, 0, {}},
84  {0x1cb, 1, {{0x1cc, 0x1ca}}},
85  {0x1dd, 0, {{0x1dd, 0x18e}}},
86  {0x1de, 1, {}},
87  {0x1f0, 0, {}},
88  {0x1f1, 1, {{0x1f1, 0x1f3}}},
89  {0x1f3, 0, {}},
90  {0x1f2, 1, {{0x1f3, 0x1f1}}},
91  {0x1f6, 0, {{0x1f6, 0x195}, {0x1f7, 0x1bf}}},
92  {0x1f8, 1, {}},
93  {0x220, 0, {{0x220, 0x19e}}},
94  {0x222, 1, {}},
95  {0x234, 0, {{0x23a, 0x2c65}}},
96  {0x23b, 1, {}},
97  {0x23d, 0, {{0x23d, 0x19a}, {0x23e, 0x2c66}}},
98  {0x23f, 10815, {}},
99  {0x241, 1, {}},
100  {0x243, 0, {{0x243, 0x180}, {0x244, 0x289}, {0x245, 0x28c}}},
101  {0x246, 1, {}},
102  {0x250, 0, {{0x250, 0x2c6f}, {0x251, 0x2c6d}, {0x252, 0x2c70}, {0x253, 0x181},
103    {0x254, 0x186}}},
104  {0x256, -205, {}},
105  {0x258, 0, {{0x259, 0x18f}, {0x25b, 0x190}, {0x25c, 0xa7ab}, {0x260, 0x193},
106    {0x261, 0xa7ac}, {0x263, 0x194}, {0x265, 0xa78d}, {0x266, 0xa7aa},
107    {0x268, 0x197}, {0x269, 0x196}, {0x26a, 0xa7ae}, {0x26b, 0x2c62},
108    {0x26c, 0xa7ad}, {0x26f, 0x19c}, {0x271, 0x2c6e}, {0x272, 0x19d},
109    {0x275, 0x19f}, {0x27d, 0x2c64}, {0x280, 0x1a6}, {0x283, 0x1a9},
110    {0x287, 0xa7b1}, {0x288, 0x1ae}, {0x289, 0x244}}},
111  {0x28a, -217, {}},
112  {0x28c, 0, {{0x28c, 0x245}, {0x292, 0x1b7}, {0x29d, 0xa7b2}, {0x29e, 0xa7b0},
113    {0x345, 0x3b9}, {0x345, 0x399}, {0x345, 0x1fbe}}},
114  {0x370, 1, {}},
115  {0x374, 0, {}},
116  {0x376, 1, {}},
117  {0x378, 0, {}},
118  {0x37b, 130, {}},
119  {0x37e, 0, {{0x37f, 0x3f3}, {0x386, 0x3ac}}},
120  {0x388, 37, {}},
121  {0x38b, 0, {{0x38c, 0x3cc}}},
122  {0x38e, 63, {}},
123  {0x390, 0, {}},
124  {0x391, 32, {{0x392, 0x3d0}, {0x395, 0x3f5}, {0x398, 0x3d1}, {0x398, 0x3f4},
125    {0x399, 0x345}, {0x399, 0x1fbe}, {0x39a, 0x3f0}, {0x39c, 0xb5},
126    {0x3a0, 0x3d6}, {0x3a1, 0x3f1}}},
127  {0x3a2, 0, {}},
128  {0x3a3, 32, {{0x3a3, 0x3c2}, {0x3a6, 0x3d5}, {0x3a9, 0x2126}}},
129  {0x3ac, 0, {{0x3ac, 0x386}}},
130  {0x3ad, -37, {}},
131  {0x3b0, 0, {}},
132  {0x3b1, -32, {{0x3b2, 0x3d0}, {0x3b5, 0x3f5}, {0x3b8, 0x3d1}, {0x3b8, 0x3f4},
133    {0x3b9, 0x345}, {0x3b9, 0x1fbe}, {0x3ba, 0x3f0}, {0x3bc, 0xb5},
134    {0x3c0, 0x3d6}, {0x3c1, 0x3f1}}},
135  {0x3c2, 1, {{0x3c2, 0x3a3}}},
136  {0x3c4, 0, {}},
137  {0x3c3, -32, {{0x3c6, 0x3d5}, {0x3c9, 0x2126}}},
138  {0x3cc, 0, {{0x3cc, 0x38c}}},
139  {0x3cd, -63, {}},
140  {0x3cf, 0, {{0x3cf, 0x3d7}, {0x3d0, 0x3b2}, {0x3d0, 0x392}, {0x3d1, 0x3b8},
141    {0x3d1, 0x398}, {0x3d1, 0x3f4}, {0x3d5, 0x3c6}, {0x3d5, 0x3a6},
142    {0x3d6, 0x3c0}, {0x3d6, 0x3a0}, {0x3d7, 0x3cf}}},
143  {0x3d8, 1, {}},
144  {0x3f0, 0, {{0x3f0, 0x3ba}, {0x3f0, 0x39a}, {0x3f1, 0x3c1}, {0x3f1, 0x3a1},
145    {0x3f2, 0x3f9}, {0x3f3, 0x37f}, {0x3f4, 0x3b8}, {0x3f4, 0x398},
146    {0x3f4, 0x3d1}, {0x3f5, 0x3b5}, {0x3f5, 0x395}}},
147  {0x3f7, 1, {}},
148  {0x3f9, 0, {{0x3f9, 0x3f2}}},
149  {0x3fa, 1, {}},
150  {0x3fc, 0, {}},
151  {0x3fd, -130, {}},
152  {0x400, 80, {}},
153  {0x410, 0, {{0x412, 0x1c80}, {0x414, 0x1c81}, {0x41e, 0x1c82}}},
154  {0x421, 6242, {{0x422, 0x1c85}}},
155  {0x423, 0, {{0x42a, 0x1c86}, {0x432, 0x1c80}, {0x434, 0x1c81}, {0x43e, 0x1c82}}},
156  {0x441, 6210, {{0x442, 0x1c85}}},
157  {0x443, 0, {}},
158  {0x410, 32, {{0x412, 0x1c80}, {0x414, 0x1c81}, {0x41e, 0x1c82}, {0x422, 0x1c85},
159    {0x42a, 0x1c86}, {0x432, 0x1c80}, {0x434, 0x1c81}, {0x43e, 0x1c82},
160    {0x442, 0x1c85}, {0x44a, 0x1c86}}},
161  {0x450, -80, {}},
162  {0x460, 1, {{0x462, 0x1c87}, {0x463, 0x1c87}}},
163  {0x482, 0, {}},
164  {0x48a, 1, {}},
165  {0x4c0, 0, {{0x4c0, 0x4cf}}},
166  {0x4c1, 1, {}},
167  {0x4cf, 0, {{0x4cf, 0x4c0}}},
168  {0x4d0, 1, {}},
169  {0x530, 0, {}},
170  {0x531, 48, {}},
171  {0x557, 0, {}},
172  {0x561, -48, {}},
173  {0x587, 0, {}},
174  {0x10a0, 7264, {}},
175  {0x10c6, 0, {{0x10c7, 0x2d27}, {0x10cd, 0x2d2d}}},
176  {0x10d0, 3008, {}},
177  {0x10fb, 0, {}},
178  {0x10fd, 3008, {}},
179  {0x1100, 0, {}},
180  {0x13a0, 38864, {}},
181  {0x13f0, 8, {}},
182  {0x13f6, 0, {}},
183  {0x13f8, -8, {}},
184  {0x13fe, 0, {{0x1c80, 0x432}, {0x1c80, 0x412}, {0x1c81, 0x434}, {0x1c81, 0x414},
185    {0x1c82, 0x43e}, {0x1c82, 0x41e}}},
186  {0x1c83, -6210, {}},
187  {0x1c85, 0, {}},
188  {0x1c83, -6242, {}},
189  {0x1c85, 0, {}},
190  {0x1c84, 1, {{0x1c85, 0x442}, {0x1c85, 0x422}}},
191  {0x1c86, 0, {{0x1c86, 0x44a}, {0x1c86, 0x42a}, {0x1c87, 0x463}, {0x1c87, 0x462},
192    {0x1c88, 0xa64b}, {0x1c88, 0xa64a}}},
193  {0x1c90, -3008, {}},
194  {0x1cbb, 0, {}},
195  {0x1cbd, -3008, {}},
196  {0x1cc0, 0, {{0x1d79, 0xa77d}, {0x1d7d, 0x2c63}}},
197  {0x1e00, 1, {{0x1e60, 0x1e9b}, {0x1e61, 0x1e9b}}},
198  {0x1e96, 0, {{0x1e9b, 0x1e61}, {0x1e9b, 0x1e60}, {0x1e9e, 0xdf}}},
199  {0x1ea0, 1, {}},
200  {0x1f00, 8, {}},
201  {0x1f16, 0, {}},
202  {0x1f18, -8, {}},
203  {0x1f1e, 0, {}},
204  {0x1f20, 8, {}},
205  {0x1f46, 0, {}},
206  {0x1f48, -8, {}},
207  {0x1f4e, 0, {{0x1f51, 0x1f59}, {0x1f53, 0x1f5b}, {0x1f55, 0x1f5d}, {0x1f57, 0x1f5f},
208    {0x1f59, 0x1f51}, {0x1f5b, 0x1f53}, {0x1f5d, 0x1f55}, {0x1f5f, 0x1f57}}},
209  {0x1f60, 8, {}},
210  {0x1f70, 74, {}},
211  {0x1f72, 86, {}},
212  {0x1f76, 100, {}},
213  {0x1f78, 128, {}},
214  {0x1f7a, 112, {}},
215  {0x1f7c, 126, {}},
216  {0x1f7e, 0, {}},
217  {0x1f80, 8, {}},
218  {0x1fb2, 0, {{0x1fb3, 0x1fbc}}},
219  {0x1fb8, -8, {}},
220  {0x1fba, -74, {}},
221  {0x1fbc, 0, {{0x1fbc, 0x1fb3}, {0x1fbe, 0x3b9}, {0x1fbe, 0x345}, {0x1fbe, 0x399},
222    {0x1fc3, 0x1fcc}}},
223  {0x1fc8, -86, {}},
224  {0x1fcc, 0, {{0x1fcc, 0x1fc3}}},
225  {0x1fd0, 8, {}},
226  {0x1fd2, 0, {}},
227  {0x1fd8, -8, {}},
228  {0x1fda, -100, {}},
229  {0x1fdc, 0, {}},
230  {0x1fe0, 8, {}},
231  {0x1fe2, 0, {{0x1fe5, 0x1fec}}},
232  {0x1fe8, -8, {}},
233  {0x1fea, -112, {}},
234  {0x1fec, 0, {{0x1fec, 0x1fe5}, {0x1ff3, 0x1ffc}}},
235  {0x1ff8, -128, {}},
236  {0x1ffa, -126, {}},
237  {0x1ffc, 0, {{0x1ffc, 0x1ff3}, {0x2126, 0x3c9}, {0x2126, 0x3a9}, {0x212a, 0x6b},
238    {0x212a, 0x4b}, {0x212b, 0xe5}, {0x212b, 0xc5}, {0x2132, 0x214e},
239    {0x214e, 0x2132}}},
240  {0x2160, 16, {}},
241  {0x2180, 0, {}},
242  {0x2183, 1, {}},
243  {0x2185, 0, {}},
244  {0x24b6, 26, {}},
245  {0x24ea, 0, {}},
246  {0x2c00, 48, {}},
247  {0x2c2f, 0, {}},
248  {0x2c30, -48, {}},
249  {0x2c5f, 0, {}},
250  {0x2c60, 1, {}},
251  {0x2c62, 0, {{0x2c62, 0x26b}, {0x2c63, 0x1d7d}, {0x2c64, 0x27d}, {0x2c65, 0x23a},
252    {0x2c66, 0x23e}}},
253  {0x2c67, 1, {}},
254  {0x2c6d, 0, {{0x2c6d, 0x251}, {0x2c6e, 0x271}, {0x2c6f, 0x250}, {0x2c70, 0x252}}},
255  {0x2c72, 1, {}},
256  {0x2c74, 0, {}},
257  {0x2c75, 1, {}},
258  {0x2c77, 0, {}},
259  {0x2c7e, -10815, {}},
260  {0x2c80, 1, {}},
261  {0x2ce4, 0, {}},
262  {0x2ceb, 1, {}},
263  {0x2cef, 0, {}},
264  {0x2cf2, 1, {}},
265  {0x2cf4, 0, {}},
266  {0x2d00, -7264, {}},
267  {0x2d26, 0, {{0x2d27, 0x10c7}, {0x2d2d, 0x10cd}}},
268  {0xa640, 1, {{0xa64a, 0x1c88}, {0xa64b, 0x1c88}}},
269  {0xa66e, 0, {}},
270  {0xa680, 1, {}},
271  {0xa69c, 0, {}},
272  {0xa722, 1, {}},
273  {0xa730, 0, {}},
274  {0xa732, 1, {}},
275  {0xa770, 0, {}},
276  {0xa779, 1, {}},
277  {0xa77d, 0, {{0xa77d, 0x1d79}}},
278  {0xa77e, 1, {}},
279  {0xa788, 0, {}},
280  {0xa78b, 1, {}},
281  {0xa78d, 0, {{0xa78d, 0x265}}},
282  {0xa790, 1, {}},
283  {0xa794, 0, {}},
284  {0xa796, 1, {}},
285  {0xa7aa, 0, {{0xa7aa, 0x266}, {0xa7ab, 0x25c}, {0xa7ac, 0x261}, {0xa7ad, 0x26c},
286    {0xa7ae, 0x26a}, {0xa7b0, 0x29e}, {0xa7b1, 0x287}, {0xa7b2, 0x29d},
287    {0xa7b3, 0xab53}}},
288  {0xa7b4, 1, {}},
289  {0xa7ba, 0, {{0xab53, 0xa7b3}}},
290  {0xab70, -38864, {}},
291  {0xabc0, 0, {}},
292  {0xff21, 32, {}},
293  {0xff3b, 0, {}},
294  {0xff41, -32, {}},
295  {0xff5b, 0, {}},
296  {0x10400, 40, {}},
297  {0x10450, 0, {}},
298  {0x104b0, 40, {}},
299  {0x104d4, 0, {}},
300  {0x104d8, -40, {}},
301  {0x104fc, 0, {}},
302  {0x10c80, 64, {}},
303  {0x10cb3, 0, {}},
304  {0x10cc0, -64, {}},
305  {0x10cf3, 0, {}},
306  {0x118a0, 32, {}},
307  {0x118e0, 0, {}},
308  {0x16e40, 32, {}},
309  {0x16e80, 0, {}},
310  {0x1e900, 34, {}},
311  {0x1e944, 0, {}},
312  {0x110000, 0, {}}};
313namespace UCD {
314    namespace SCF_ns {
315        /** Code Point Ranges for scf mapping to <none>
316        **/
317       
318       
319        namespace {
320        const static UnicodeSet::run_t __null_codepoint_set_runs[] = {
321        {Empty, 34816}};
322        const static UnicodeSet::bitquad_t * const __null_codepoint_set_quads = nullptr;
323        }
324
325        const static UnicodeSet null_codepoint_set{const_cast<UnicodeSet::run_t *>(__null_codepoint_set_runs), 1, 0, const_cast<UnicodeSet::bitquad_t *>(__null_codepoint_set_quads), 0, 0};
326
327
328
329        /** Code Point Ranges for scf mapping to <codepoint>
330        [0000, 0040], [005b, 00b4], [00b6, 00bf], [00d7, 00d7],
331        [00df, 00ff], [0101, 0101], [0103, 0103], [0105, 0105],
332        [0107, 0107], [0109, 0109], [010b, 010b], [010d, 010d],
333        [010f, 010f], [0111, 0111], [0113, 0113], [0115, 0115],
334        [0117, 0117], [0119, 0119], [011b, 011b], [011d, 011d],
335        [011f, 011f], [0121, 0121], [0123, 0123], [0125, 0125],
336        [0127, 0127], [0129, 0129], [012b, 012b], [012d, 012d],
337        [012f, 0131], [0133, 0133], [0135, 0135], [0137, 0138],
338        [013a, 013a], [013c, 013c], [013e, 013e], [0140, 0140],
339        [0142, 0142], [0144, 0144], [0146, 0146], [0148, 0149],
340        [014b, 014b], [014d, 014d], [014f, 014f], [0151, 0151],
341        [0153, 0153], [0155, 0155], [0157, 0157], [0159, 0159],
342        [015b, 015b], [015d, 015d], [015f, 015f], [0161, 0161],
343        [0163, 0163], [0165, 0165], [0167, 0167], [0169, 0169],
344        [016b, 016b], [016d, 016d], [016f, 016f], [0171, 0171],
345        [0173, 0173], [0175, 0175], [0177, 0177], [017a, 017a],
346        [017c, 017c], [017e, 017e], [0180, 0180], [0183, 0183],
347        [0185, 0185], [0188, 0188], [018c, 018d], [0192, 0192],
348        [0195, 0195], [0199, 019b], [019e, 019e], [01a1, 01a1],
349        [01a3, 01a3], [01a5, 01a5], [01a8, 01a8], [01aa, 01ab],
350        [01ad, 01ad], [01b0, 01b0], [01b4, 01b4], [01b6, 01b6],
351        [01b9, 01bb], [01bd, 01c3], [01c6, 01c6], [01c9, 01c9],
352        [01cc, 01cc], [01ce, 01ce], [01d0, 01d0], [01d2, 01d2],
353        [01d4, 01d4], [01d6, 01d6], [01d8, 01d8], [01da, 01da],
354        [01dc, 01dd], [01df, 01df], [01e1, 01e1], [01e3, 01e3],
355        [01e5, 01e5], [01e7, 01e7], [01e9, 01e9], [01eb, 01eb],
356        [01ed, 01ed], [01ef, 01f0], [01f3, 01f3], [01f5, 01f5],
357        [01f9, 01f9], [01fb, 01fb], [01fd, 01fd], [01ff, 01ff],
358        [0201, 0201], [0203, 0203], [0205, 0205], [0207, 0207],
359        [0209, 0209], [020b, 020b], [020d, 020d], [020f, 020f],
360        [0211, 0211], [0213, 0213], [0215, 0215], [0217, 0217],
361        [0219, 0219], [021b, 021b], [021d, 021d], [021f, 021f],
362        [0221, 0221], [0223, 0223], [0225, 0225], [0227, 0227],
363        [0229, 0229], [022b, 022b], [022d, 022d], [022f, 022f],
364        [0231, 0231], [0233, 0239], [023c, 023c], [023f, 0240],
365        [0242, 0242], [0247, 0247], [0249, 0249], [024b, 024b],
366        [024d, 024d], [024f, 0344], [0346, 036f], [0371, 0371],
367        [0373, 0375], [0377, 037e], [0380, 0385], [0387, 0387],
368        [038b, 038b], [038d, 038d], [0390, 0390], [03a2, 03a2],
369        [03ac, 03c1], [03c3, 03ce], [03d2, 03d4], [03d7, 03d7],
370        [03d9, 03d9], [03db, 03db], [03dd, 03dd], [03df, 03df],
371        [03e1, 03e1], [03e3, 03e3], [03e5, 03e5], [03e7, 03e7],
372        [03e9, 03e9], [03eb, 03eb], [03ed, 03ed], [03ef, 03ef],
373        [03f2, 03f3], [03f6, 03f6], [03f8, 03f8], [03fb, 03fc],
374        [0430, 045f], [0461, 0461], [0463, 0463], [0465, 0465],
375        [0467, 0467], [0469, 0469], [046b, 046b], [046d, 046d],
376        [046f, 046f], [0471, 0471], [0473, 0473], [0475, 0475],
377        [0477, 0477], [0479, 0479], [047b, 047b], [047d, 047d],
378        [047f, 047f], [0481, 0489], [048b, 048b], [048d, 048d],
379        [048f, 048f], [0491, 0491], [0493, 0493], [0495, 0495],
380        [0497, 0497], [0499, 0499], [049b, 049b], [049d, 049d],
381        [049f, 049f], [04a1, 04a1], [04a3, 04a3], [04a5, 04a5],
382        [04a7, 04a7], [04a9, 04a9], [04ab, 04ab], [04ad, 04ad],
383        [04af, 04af], [04b1, 04b1], [04b3, 04b3], [04b5, 04b5],
384        [04b7, 04b7], [04b9, 04b9], [04bb, 04bb], [04bd, 04bd],
385        [04bf, 04bf], [04c2, 04c2], [04c4, 04c4], [04c6, 04c6],
386        [04c8, 04c8], [04ca, 04ca], [04cc, 04cc], [04ce, 04cf],
387        [04d1, 04d1], [04d3, 04d3], [04d5, 04d5], [04d7, 04d7],
388        [04d9, 04d9], [04db, 04db], [04dd, 04dd], [04df, 04df],
389        [04e1, 04e1], [04e3, 04e3], [04e5, 04e5], [04e7, 04e7],
390        [04e9, 04e9], [04eb, 04eb], [04ed, 04ed], [04ef, 04ef],
391        [04f1, 04f1], [04f3, 04f3], [04f5, 04f5], [04f7, 04f7],
392        [04f9, 04f9], [04fb, 04fb], [04fd, 04fd], [04ff, 04ff],
393        [0501, 0501], [0503, 0503], [0505, 0505], [0507, 0507],
394        [0509, 0509], [050b, 050b], [050d, 050d], [050f, 050f],
395        [0511, 0511], [0513, 0513], [0515, 0515], [0517, 0517],
396        [0519, 0519], [051b, 051b], [051d, 051d], [051f, 051f],
397        [0521, 0521], [0523, 0523], [0525, 0525], [0527, 0527],
398        [0529, 0529], [052b, 052b], [052d, 052d], [052f, 0530],
399        [0557, 109f], [10c6, 10c6], [10c8, 10cc], [10ce, 13f7],
400        [13fe, 1c7f], [1c89, 1c8f], [1cbb, 1cbc], [1cc0, 1dff],
401        [1e01, 1e01], [1e03, 1e03], [1e05, 1e05], [1e07, 1e07],
402        [1e09, 1e09], [1e0b, 1e0b], [1e0d, 1e0d], [1e0f, 1e0f],
403        [1e11, 1e11], [1e13, 1e13], [1e15, 1e15], [1e17, 1e17],
404        [1e19, 1e19], [1e1b, 1e1b], [1e1d, 1e1d], [1e1f, 1e1f],
405        [1e21, 1e21], [1e23, 1e23], [1e25, 1e25], [1e27, 1e27],
406        [1e29, 1e29], [1e2b, 1e2b], [1e2d, 1e2d], [1e2f, 1e2f],
407        [1e31, 1e31], [1e33, 1e33], [1e35, 1e35], [1e37, 1e37],
408        [1e39, 1e39], [1e3b, 1e3b], [1e3d, 1e3d], [1e3f, 1e3f],
409        [1e41, 1e41], [1e43, 1e43], [1e45, 1e45], [1e47, 1e47],
410        [1e49, 1e49], [1e4b, 1e4b], [1e4d, 1e4d], [1e4f, 1e4f],
411        [1e51, 1e51], [1e53, 1e53], [1e55, 1e55], [1e57, 1e57],
412        [1e59, 1e59], [1e5b, 1e5b], [1e5d, 1e5d], [1e5f, 1e5f],
413        [1e61, 1e61], [1e63, 1e63], [1e65, 1e65], [1e67, 1e67],
414        [1e69, 1e69], [1e6b, 1e6b], [1e6d, 1e6d], [1e6f, 1e6f],
415        [1e71, 1e71], [1e73, 1e73], [1e75, 1e75], [1e77, 1e77],
416        [1e79, 1e79], [1e7b, 1e7b], [1e7d, 1e7d], [1e7f, 1e7f],
417        [1e81, 1e81], [1e83, 1e83], [1e85, 1e85], [1e87, 1e87],
418        [1e89, 1e89], [1e8b, 1e8b], [1e8d, 1e8d], [1e8f, 1e8f],
419        [1e91, 1e91], [1e93, 1e93], [1e95, 1e9a], [1e9c, 1e9d],
420        [1e9f, 1e9f], [1ea1, 1ea1], [1ea3, 1ea3], [1ea5, 1ea5],
421        [1ea7, 1ea7], [1ea9, 1ea9], [1eab, 1eab], [1ead, 1ead],
422        [1eaf, 1eaf], [1eb1, 1eb1], [1eb3, 1eb3], [1eb5, 1eb5],
423        [1eb7, 1eb7], [1eb9, 1eb9], [1ebb, 1ebb], [1ebd, 1ebd],
424        [1ebf, 1ebf], [1ec1, 1ec1], [1ec3, 1ec3], [1ec5, 1ec5],
425        [1ec7, 1ec7], [1ec9, 1ec9], [1ecb, 1ecb], [1ecd, 1ecd],
426        [1ecf, 1ecf], [1ed1, 1ed1], [1ed3, 1ed3], [1ed5, 1ed5],
427        [1ed7, 1ed7], [1ed9, 1ed9], [1edb, 1edb], [1edd, 1edd],
428        [1edf, 1edf], [1ee1, 1ee1], [1ee3, 1ee3], [1ee5, 1ee5],
429        [1ee7, 1ee7], [1ee9, 1ee9], [1eeb, 1eeb], [1eed, 1eed],
430        [1eef, 1eef], [1ef1, 1ef1], [1ef3, 1ef3], [1ef5, 1ef5],
431        [1ef7, 1ef7], [1ef9, 1ef9], [1efb, 1efb], [1efd, 1efd],
432        [1eff, 1f07], [1f10, 1f17], [1f1e, 1f27], [1f30, 1f37],
433        [1f40, 1f47], [1f4e, 1f58], [1f5a, 1f5a], [1f5c, 1f5c],
434        [1f5e, 1f5e], [1f60, 1f67], [1f70, 1f87], [1f90, 1f97],
435        [1fa0, 1fa7], [1fb0, 1fb7], [1fbd, 1fbd], [1fbf, 1fc7],
436        [1fcd, 1fd7], [1fdc, 1fe7], [1fed, 1ff7], [1ffd, 2125],
437        [2127, 2129], [212c, 2131], [2133, 215f], [2170, 2182],
438        [2184, 24b5], [24d0, 2bff], [2c2f, 2c5f], [2c61, 2c61],
439        [2c65, 2c66], [2c68, 2c68], [2c6a, 2c6a], [2c6c, 2c6c],
440        [2c71, 2c71], [2c73, 2c74], [2c76, 2c7d], [2c81, 2c81],
441        [2c83, 2c83], [2c85, 2c85], [2c87, 2c87], [2c89, 2c89],
442        [2c8b, 2c8b], [2c8d, 2c8d], [2c8f, 2c8f], [2c91, 2c91],
443        [2c93, 2c93], [2c95, 2c95], [2c97, 2c97], [2c99, 2c99],
444        [2c9b, 2c9b], [2c9d, 2c9d], [2c9f, 2c9f], [2ca1, 2ca1],
445        [2ca3, 2ca3], [2ca5, 2ca5], [2ca7, 2ca7], [2ca9, 2ca9],
446        [2cab, 2cab], [2cad, 2cad], [2caf, 2caf], [2cb1, 2cb1],
447        [2cb3, 2cb3], [2cb5, 2cb5], [2cb7, 2cb7], [2cb9, 2cb9],
448        [2cbb, 2cbb], [2cbd, 2cbd], [2cbf, 2cbf], [2cc1, 2cc1],
449        [2cc3, 2cc3], [2cc5, 2cc5], [2cc7, 2cc7], [2cc9, 2cc9],
450        [2ccb, 2ccb], [2ccd, 2ccd], [2ccf, 2ccf], [2cd1, 2cd1],
451        [2cd3, 2cd3], [2cd5, 2cd5], [2cd7, 2cd7], [2cd9, 2cd9],
452        [2cdb, 2cdb], [2cdd, 2cdd], [2cdf, 2cdf], [2ce1, 2ce1],
453        [2ce3, 2cea], [2cec, 2cec], [2cee, 2cf1], [2cf3, a63f],
454        [a641, a641], [a643, a643], [a645, a645], [a647, a647],
455        [a649, a649], [a64b, a64b], [a64d, a64d], [a64f, a64f],
456        [a651, a651], [a653, a653], [a655, a655], [a657, a657],
457        [a659, a659], [a65b, a65b], [a65d, a65d], [a65f, a65f],
458        [a661, a661], [a663, a663], [a665, a665], [a667, a667],
459        [a669, a669], [a66b, a66b], [a66d, a67f], [a681, a681],
460        [a683, a683], [a685, a685], [a687, a687], [a689, a689],
461        [a68b, a68b], [a68d, a68d], [a68f, a68f], [a691, a691],
462        [a693, a693], [a695, a695], [a697, a697], [a699, a699],
463        [a69b, a721], [a723, a723], [a725, a725], [a727, a727],
464        [a729, a729], [a72b, a72b], [a72d, a72d], [a72f, a731],
465        [a733, a733], [a735, a735], [a737, a737], [a739, a739],
466        [a73b, a73b], [a73d, a73d], [a73f, a73f], [a741, a741],
467        [a743, a743], [a745, a745], [a747, a747], [a749, a749],
468        [a74b, a74b], [a74d, a74d], [a74f, a74f], [a751, a751],
469        [a753, a753], [a755, a755], [a757, a757], [a759, a759],
470        [a75b, a75b], [a75d, a75d], [a75f, a75f], [a761, a761],
471        [a763, a763], [a765, a765], [a767, a767], [a769, a769],
472        [a76b, a76b], [a76d, a76d], [a76f, a778], [a77a, a77a],
473        [a77c, a77c], [a77f, a77f], [a781, a781], [a783, a783],
474        [a785, a785], [a787, a78a], [a78c, a78c], [a78e, a78f],
475        [a791, a791], [a793, a795], [a797, a797], [a799, a799],
476        [a79b, a79b], [a79d, a79d], [a79f, a79f], [a7a1, a7a1],
477        [a7a3, a7a3], [a7a5, a7a5], [a7a7, a7a7], [a7a9, a7a9],
478        [a7af, a7af], [a7b5, a7b5], [a7b7, a7b7], [a7b9, ab6f],
479        [abc0, ff20], [ff3b, 103ff], [10428, 104af], [104d4, 10c7f],
480        [10cb3, 1189f], [118c0, 16e3f], [16e60, 1e8ff], [1e922, 10ffff]**/
481       
482       
483        namespace {
484        const static UnicodeSet::run_t __reflexive_set_runs[] = {
485        {Full, 2}, {Mixed, 1}, {Full, 2}, {Mixed, 2}, {Full, 1},
486        {Mixed, 11}, {Full, 7}, {Mixed, 6}, {Empty, 1}, {Mixed, 1},
487        {Full, 1}, {Mixed, 8}, {Full, 90}, {Empty, 1}, {Mixed, 1},
488        {Full, 24}, {Mixed, 1}, {Full, 68}, {Mixed, 2}, {Full, 10},
489        {Mixed, 16}, {Full, 9}, {Mixed, 1}, {Full, 1}, {Mixed, 2},
490        {Full, 24}, {Mixed, 2}, {Full, 57}, {Empty, 1}, {Mixed, 1},
491        {Full, 1}, {Mixed, 5}, {Full, 970}, {Mixed, 3}, {Full, 4},
492        {Mixed, 5}, {Full, 29}, {Mixed, 1}, {Empty, 2}, {Full, 667},
493        {Mixed, 1}, {Full, 38}, {Empty, 1}, {Mixed, 1}, {Full, 3},
494        {Mixed, 2}, {Full, 61}, {Empty, 1}, {Mixed, 1}, {Full, 95},
495        {Empty, 1}, {Full, 684}, {Empty, 1}, {Full, 981}, {Empty, 1},
496        {Mixed, 1}, {Full, 30902}};
497        const static UnicodeSet::bitquad_t  __reflexive_set_quads[] = {
498        0xf8000001, 0xffdfffff, 0x80800000, 0xaaaaaaaa, 0x55abaaaa,
499        0xaaaaab55, 0x54aaaaaa, 0x4e243129, 0xee512d2a, 0xb555524f,
500        0xaa29aaaa, 0xaaaaaaaa, 0x93faaaaa, 0xffffaa85, 0xffffffdf,
501        0x7fbaffff, 0x000128bf, 0xfffff004, 0xaa9c7ffb, 0x194caaaa,
502        0xffff0000, 0xaaaaaaaa, 0xaaaaabfe, 0xaaaaaaaa, 0xaaaad554,
503        0xaaaaaaaa, 0xaaaaaaaa, 0x0001aaaa, 0xff800000, 0xffffdf40,
504        0xc0ffffff, 0x0000fe00, 0x18000000, 0xaaaaaaaa, 0xaaaaaaaa,
505        0xaaaaaaaa, 0xaaaaaaaa, 0xb7eaaaaa, 0xaaaaaaaa, 0xaaaaaaaa,
506        0xaaaaaaaa, 0xc0ff00ff, 0x00ff00ff, 0x55ffc0ff, 0xffff00ff,
507        0x00ff00ff, 0xa0ff00ff, 0xf0ffe0ff, 0xe0ffe0ff, 0xfffbf3bf,
508        0xffff0000, 0xfffffff7, 0x003fffff, 0xffff0000, 0xffff8000,
509        0x3fda1562, 0xaaaaaaaa, 0xaaaaaaaa, 0xaaaaaaaa, 0xfffbd7fa,
510        0xaaaaaaaa, 0xffffeaaa, 0xfaaaaaaa, 0xaaabaaab, 0xaaaaaaaa,
511        0x95ffaaaa, 0xaabad7aa, 0xfea082aa, 0x0000ffff, 0xf8000001,
512        0xffffff00, 0x0000ffff, 0xfff00000, 0xfff80000, 0xfffffffc};
513        }
514
515        const static UnicodeSet reflexive_set{const_cast<UnicodeSet::run_t *>(__reflexive_set_runs), 57, 0, const_cast<UnicodeSet::bitquad_t *>(__reflexive_set_quads), 75, 0};
516
517
518
519        const static std::vector<unsigned> buffer_offsets = {
520        0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34,
521        36, 38, 40, 42, 44, 46, 48, 50, 52, 55, 58, 61, 64, 67, 70, 73, 76,
522        79, 82, 85, 88, 91, 94, 97, 100, 103, 106, 109, 112, 115, 118, 121,
523        124, 127, 130, 133, 136, 139, 142, 145, 148, 151, 154, 157, 160,
524        163, 166, 169, 172, 175, 178, 181, 184, 187, 190, 193, 196, 199,
525        202, 205, 208, 211, 214, 217, 220, 223, 226, 229, 232, 235, 238,
526        241, 244, 247, 250, 253, 256, 259, 262, 265, 268, 271, 274, 277,
527        280, 283, 286, 289, 292, 295, 298, 301, 304, 307, 310, 313, 316,
528        319, 322, 325, 328, 331, 333, 336, 339, 342, 345, 348, 351, 354,
529        357, 360, 363, 366, 369, 372, 375, 378, 381, 384, 387, 390, 393,
530        396, 399, 402, 405, 408, 411, 414, 417, 420, 423, 426, 429, 432,
531        435, 438, 441, 444, 447, 450, 453, 456, 459, 462, 465, 468, 471,
532        474, 477, 480, 483, 486, 489, 492, 495, 498, 501, 504, 507, 510,
533        513, 516, 519, 522, 525, 528, 531, 534, 537, 540, 543, 546, 549,
534        552, 555, 558, 561, 564, 567, 570, 573, 576, 579, 582, 585, 588,
535        591, 594, 597, 600, 603, 606, 609, 612, 615, 619, 622, 625, 629,
536        632, 635, 638, 641, 644, 647, 650, 653, 656, 659, 662, 665, 668,
537        671, 674, 677, 680, 683, 686, 689, 692, 695, 698, 701, 704, 707,
538        710, 713, 716, 719, 722, 725, 728, 731, 734, 737, 740, 743, 746,
539        749, 752, 755, 758, 761, 764, 767, 770, 773, 776, 779, 782, 785,
540        788, 791, 794, 797, 800, 803, 806, 809, 812, 815, 818, 821, 824,
541        827, 830, 833, 836, 839, 842, 845, 848, 851, 854, 857, 860, 863,
542        866, 869, 872, 875, 878, 881, 884, 887, 890, 893, 896, 899, 902,
543        905, 908, 911, 914, 917, 920, 923, 926, 929, 932, 935, 938, 941,
544        944, 947, 950, 953, 956, 959, 962, 965, 968, 971, 974, 977, 980,
545        983, 986, 989, 992, 995, 998, 1001, 1004, 1007, 1010, 1013, 1016,
546        1019, 1022, 1025, 1028, 1031, 1034, 1037, 1040, 1043, 1046, 1049,
547        1052, 1055, 1058, 1061, 1064, 1067, 1070, 1073, 1076, 1079, 1082,
548        1085, 1088, 1091, 1094, 1097, 1100, 1103, 1106, 1109, 1112, 1115,
549        1118, 1121, 1124, 1127, 1130, 1133, 1136, 1139, 1142, 1145, 1148,
550        1151, 1154, 1157, 1160, 1163, 1166, 1169, 1172, 1175, 1178, 1181,
551        1184, 1187, 1190, 1193, 1196, 1199, 1202, 1205, 1208, 1211, 1214,
552        1217, 1220, 1223, 1226, 1229, 1232, 1235, 1238, 1241, 1244, 1247,
553        1250, 1253, 1256, 1259, 1262, 1265, 1268, 1271, 1274, 1277, 1280,
554        1283, 1286, 1289, 1292, 1295, 1298, 1301, 1304, 1307, 1310, 1313,
555        1316, 1319, 1322, 1325, 1328, 1331, 1334, 1337, 1340, 1343, 1346,
556        1349, 1352, 1355, 1358, 1361, 1364, 1367, 1370, 1373, 1376, 1379,
557        1382, 1385, 1388, 1391, 1394, 1397, 1400, 1403, 1406, 1409, 1412,
558        1416, 1420, 1424, 1428, 1432, 1436, 1440, 1444, 1448, 1452, 1456,
559        1460, 1464, 1468, 1472, 1476, 1480, 1484, 1488, 1492, 1496, 1500,
560        1504, 1508, 1512, 1516, 1520, 1524, 1528, 1532, 1536, 1540, 1544,
561        1548, 1552, 1556, 1560, 1564, 1568, 1572, 1576, 1580, 1584, 1588,
562        1592, 1596, 1599, 1602, 1605, 1608, 1611, 1614, 1617, 1620, 1624,
563        1628, 1632, 1636, 1640, 1644, 1648, 1652, 1656, 1660, 1664, 1668,
564        1672, 1676, 1680, 1684, 1688, 1692, 1696, 1700, 1704, 1708, 1712,
565        1716, 1720, 1724, 1728, 1732, 1736, 1740, 1744, 1748, 1752, 1756,
566        1760, 1764, 1768, 1772, 1776, 1780, 1784, 1788, 1792, 1796, 1800,
567        1804, 1808, 1812, 1816, 1820, 1824, 1828, 1832, 1836, 1840, 1844,
568        1848, 1852, 1856, 1860, 1864, 1868, 1872, 1876, 1880, 1884, 1888,
569        1892, 1896, 1900, 1904, 1908, 1912, 1916, 1920, 1924, 1928, 1932,
570        1936, 1940, 1944, 1948, 1952, 1956, 1960, 1964, 1968, 1972, 1976,
571        1980, 1984, 1988, 1992, 1996, 2000, 2004, 2008, 2012, 2016, 2020,
572        2024, 2028, 2032, 2036, 2040, 2044, 2048, 2052, 2056, 2060, 2064,
573        2068, 2072, 2076, 2080, 2084, 2088, 2092, 2096, 2100, 2104, 2108,
574        2112, 2115, 2119, 2123, 2127, 2131, 2135, 2139, 2143, 2147, 2151,
575        2155, 2159, 2163, 2167, 2171, 2175, 2179, 2183, 2187, 2191, 2195,
576        2199, 2203, 2207, 2211, 2215, 2219, 2223, 2227, 2231, 2235, 2239,
577        2243, 2247, 2251, 2255, 2259, 2263, 2267, 2271, 2275, 2279, 2283,
578        2287, 2291, 2295, 2299, 2303, 2307, 2311, 2315, 2319, 2323, 2327,
579        2331, 2335, 2339, 2343, 2347, 2351, 2355, 2359, 2363, 2367, 2371,
580        2375, 2379, 2383, 2387, 2391, 2395, 2399, 2403, 2407, 2411, 2415,
581        2419, 2423, 2427, 2431, 2435, 2439, 2443, 2447, 2451, 2455, 2459,
582        2463, 2467, 2471, 2475, 2479, 2483, 2487, 2491, 2495, 2499, 2503,
583        2507, 2511, 2515, 2519, 2523, 2527, 2531, 2535, 2539, 2543, 2547,
584        2551, 2555, 2559, 2563, 2567, 2571, 2575, 2579, 2583, 2587, 2591,
585        2595, 2599, 2603, 2607, 2611, 2615, 2618, 2622, 2626, 2630, 2634,
586        2638, 2642, 2646, 2650, 2654, 2658, 2662, 2666, 2670, 2674, 2678,
587        2682, 2686, 2690, 2694, 2697, 2699, 2702, 2706, 2710, 2714, 2718,
588        2722, 2726, 2730, 2734, 2738, 2742, 2746, 2750, 2754, 2758, 2762,
589        2766, 2770, 2774, 2778, 2782, 2786, 2790, 2794, 2798, 2802, 2806,
590        2810, 2814, 2818, 2822, 2826, 2830, 2834, 2838, 2842, 2846, 2850,
591        2854, 2858, 2862, 2866, 2870, 2874, 2878, 2882, 2886, 2890, 2894,
592        2898, 2902, 2906, 2910, 2914, 2918, 2922, 2926, 2930, 2934, 2938,
593        2942, 2946, 2950, 2954, 2958, 2962, 2966, 2970, 2974, 2978, 2982,
594        2986, 2990, 2994, 2998, 3002, 3006, 3010, 3014, 3018, 3022, 3026,
595        3030, 3034, 3038, 3042, 3046, 3050, 3054, 3058, 3062, 3066, 3070,
596        3073, 3077, 3080, 3084, 3088, 3092, 3095, 3098, 3101, 3104, 3108,
597        3112, 3115, 3118, 3122, 3126, 3130, 3134, 3138, 3142, 3146, 3150,
598        3154, 3158, 3162, 3166, 3170, 3174, 3178, 3182, 3186, 3190, 3194,
599        3198, 3202, 3206, 3210, 3214, 3218, 3222, 3226, 3230, 3234, 3238,
600        3242, 3246, 3250, 3254, 3258, 3262, 3266, 3270, 3274, 3278, 3282,
601        3286, 3290, 3294, 3298, 3302, 3306, 3310, 3314, 3318, 3322, 3326,
602        3330, 3334, 3338, 3342, 3346, 3350, 3354, 3358, 3362, 3366, 3370,
603        3374, 3378, 3382, 3386, 3390, 3394, 3398, 3402, 3406, 3410, 3414,
604        3418, 3422, 3426, 3430, 3434, 3438, 3442, 3446, 3450, 3454, 3458,
605        3462, 3466, 3470, 3474, 3478, 3482, 3486, 3490, 3494, 3498, 3502,
606        3506, 3510, 3514, 3518, 3522, 3526, 3530, 3534, 3538, 3542, 3546,
607        3550, 3554, 3558, 3562, 3566, 3570, 3574, 3578, 3582, 3586, 3590,
608        3594, 3598, 3602, 3606, 3610, 3614, 3618, 3622, 3626, 3630, 3634,
609        3638, 3642, 3646, 3650, 3654, 3658, 3662, 3666, 3669, 3673, 3677,
610        3681, 3685, 3689, 3693, 3697, 3701, 3705, 3709, 3713, 3717, 3720,
611        3723, 3726, 3729, 3732, 3735, 3738, 3741, 3745, 3749, 3753, 3757,
612        3761, 3765, 3769, 3773, 3777, 3781, 3785, 3789, 3793, 3797, 3801,
613        3805, 3809, 3813, 3817, 3821, 3825, 3829, 3833, 3837, 3841, 3845,
614        3849, 3853, 3857, 3861, 3865, 3869, 3873, 3877, 3881, 3885, 3889,
615        3893, 3897, 3901, 3905, 3909, 3913, 3917, 3921, 3925, 3929, 3933,
616        3937, 3941, 3945, 3949, 3953, 3957, 3961, 3965, 3969, 3973, 3977,
617        3981, 3985, 3989, 3993, 3997, 4001, 4005, 4009, 4013, 4017, 4021,
618        4025, 4029, 4033, 4037, 4041, 4045, 4049, 4053, 4057, 4061, 4065,
619        4069, 4073, 4077, 4081, 4085, 4089, 4093, 4097, 4101, 4105, 4109,
620        4113, 4117, 4121, 4125, 4129, 4133, 4137, 4141, 4145, 4149, 4153,
621        4157, 4161, 4165, 4169, 4173, 4177, 4181, 4186, 4191, 4196, 4201,
622        4206, 4211, 4216, 4221, 4226, 4231, 4236, 4241, 4246, 4251, 4256,
623        4261, 4266, 4271, 4276, 4281, 4286, 4291, 4296, 4301, 4306, 4311,
624        4316, 4321, 4326, 4331, 4336, 4341, 4346, 4351, 4356, 4361, 4366,
625        4371, 4376, 4381, 4386, 4391, 4396, 4401, 4406, 4411, 4416, 4421,
626        4426, 4431, 4436, 4441, 4446, 4451, 4456, 4461, 4466, 4471, 4476,
627        4481, 4486, 4491, 4496, 4501, 4506, 4511, 4516, 4521, 4526, 4531,
628        4536, 4541, 4546, 4551, 4556, 4561, 4566, 4571, 4576, 4581, 4586,
629        4591, 4596, 4601, 4606, 4611, 4616, 4621, 4626, 4631, 4636, 4641,
630        4646, 4651, 4656, 4661, 4666, 4671, 4676, 4681, 4686, 4691, 4696,
631        4701, 4706, 4711, 4716, 4721, 4726, 4731, 4736, 4741, 4746, 4751,
632        4756, 4761, 4766, 4771, 4776, 4781, 4786, 4791, 4796, 4801, 4806,
633        4811, 4816, 4821, 4826, 4831, 4836, 4841, 4846, 4851, 4856, 4861,
634        4866, 4871, 4876, 4881, 4886, 4891, 4896, 4901, 4906, 4911, 4916,
635        4921, 4926, 4931, 4936, 4941, 4946, 4951, 4956, 4961, 4966, 4971,
636        4976, 4981, 4986, 4991, 4996, 5001, 5006, 5011, 5016, 5021, 5026,
637        5031, 5036, 5041, 5046, 5051, 5056, 5061, 5066, 5071, 5076, 5081,
638        5086, 5091, 5096, 5101, 5106, 5111, 5116, 5121, 5126, 5131, 5136,
639        5141, 5146, 5151, 5156, 5161, 5166, 5171, 5176, 5181, 5186, 5191,
640        5196, 5201, 5206, 5211, 5216, 5221, 5226, 5231, 5236, 5241, 5246,
641        5251, 5256, 5261, 5266, 5271, 5276, 5281, 5286, 5291, 5296, 5301,
642        5306};
643        const static char string_buffer LLVM_ALIGNAS(32) [5376] = u8R"__(a
644b
645c
646d
647e
648f
649g
650h
651i
652j
653k
654l
655m
656n
657o
658p
659q
660r
661s
662t
663u
664v
665w
666x
667y
668z
669Ό
670à
671á
672â
673ã
674À
675Ã¥
676Ê
677ç
678Ú
679é
680ê
681ë
682ì
683í
684î
685ï
686ð
687ñ
688ò
689ó
690ÃŽ
691õ
692ö
693Þ
694ù
695ú
696û
697Ì
698Ü
699ß
700ā
701ă
702ą
703ć
704ĉ
705ċ
706č
707ď
708đ
709ē
710ĕ
711ė
712ę
713ě
714ĝ
715ğ
716Ä¡
717Ä£
718Ä¥
719ħ
720Ä©
721Ä«
722Ä­
723į
724ij
725ĵ
726Ä·
727ĺ
728Č
729ÄŸ
730ŀ
731ł
732ń
733ņ
734ň
735ŋ
736ō
737ŏ
738ő
739œ
740ŕ
741ŗ
742ř
743ś
744ŝ
745ş
746Å¡
747Å£
748Å¥
749ŧ
750Å©
751Å«
752Å­
753ů
754ű
755ų
756ŵ
757Å·
758ÿ
759ź
760Ō
761ÅŸ
762s
763ɓ
764ƃ
765ƅ
766ɔ
767ƈ
768ɖ
769ɗ
770ƌ
771ǝ
772ə
773ɛ
774ƒ
775É 
776É£
777É©
778Éš
779ƙ
780ɯ
781ɲ
782ɵ
783Æ¡
784Æ£
785Æ¥
786ʀ
787Æš
788ʃ
789Æ­
790ʈ
791Æ°
792ʊ
793ʋ
794ÆŽ
795ƶ
796ʒ
797ƹ
798Ɯ
799dž
800dž
801lj
802lj
803nj
804nj
805ǎ
806ǐ
807ǒ
808ǔ
809ǖ
810ǘ
811ǚ
812ǜ
813ǟ
814Ç¡
815Ç£
816Ç¥
817ǧ
818Ç©
819Ç«
820Ç­
821ǯ
822dz
823dz
824ǵ
825ƕ
826Æ¿
827ǹ
828Ç»
829ǜ
830Ç¿
831ȁ
832ȃ
833ȅ
834ȇ
835ȉ
836ȋ
837ȍ
838ȏ
839ȑ
840ȓ
841ȕ
842ȗ
843ș
844ț
845ȝ
846ȟ
847ƞ
848È£
849È¥
850ȧ
851È©
852È«
853È­
854ȯ
855ȱ
856ȳ
857â±¥
858Ȍ
859ƚ
860ⱊ
861ɂ
862ƀ
863ʉ
864ʌ
865ɇ
866ɉ
867ɋ
868ɍ
869ɏ
870ι
871ͱ
872ͳ
873Í·
874ϳ
875ά
876έ
877ή
878ί
879ό
880ύ
881ώ
882α
883β
884γ
885ÎŽ
886ε
887ζ
888η
889Ξ
890ι
891κ
892λ
893Ό
894Μ
895Ο
896ο
897π
898ρ
899σ
900τ
901υ
902φ
903χ
904ψ
905ω
906ϊ
907ϋ
908σ
909ϗ
910β
911Ξ
912φ
913π
914ϙ
915ϛ
916ϝ
917ϟ
918Ï¡
919Ï£
920Ï¥
921ϧ
922Ï©
923Ï«
924Ï­
925ϯ
926κ
927ρ
928Ξ
929ε
930Ïž
931ϲ
932Ï»
933Í»
934͌
935͜
936ѐ
937ё
938ђ
939ѓ
940є
941ѕ
942і
943ї
944ј
945љ
946њ
947ћ
948ќ
949ѝ
950ў
951џ
952а
953б
954в
955г
956ÐŽ
957е
958ж
959з
960О
961й
962к
963л
964Ќ
965М
966П
967п
968р
969с
970т
971у
972ф
973х
974ц
975ч
976ш
977щ
978ъ
979ы
980ь
981э
982ю
983я
984Ñ¡
985Ñ£
986Ñ¥
987ѧ
988Ñ©
989Ñ«
990Ñ­
991ѯ
992ѱ
993ѳ
994ѵ
995Ñ·
996ѹ
997Ñ»
998ќ
999Ñ¿
1000ҁ
1001ҋ
1002ҍ
1003ҏ
1004ґ
1005ғ
1006ҕ
1007җ
1008ҙ
1009қ
1010ҝ
1011ҟ
1012Ò¡
1013Ò£
1014Ò¥
1015Ò§
1016Ò©
1017Ò«
1018Ò­
1019Ò¯
1020Ò±
1021Ò³
1022Òµ
1023Ò·
1024Ò¹
1025Ò»
1026Ҝ
1027Ò¿
1028ӏ
1029ӂ
1030ӄ
1031ӆ
1032ӈ
1033ӊ
1034ӌ
1035ӎ
1036ӑ
1037ӓ
1038ӕ
1039ӗ
1040ә
1041ӛ
1042ӝ
1043ӟ
1044Ó¡
1045Ó£
1046Ó¥
1047Ó§
1048Ó©
1049Ó«
1050Ó­
1051Ó¯
1052Ó±
1053Ó³
1054Óµ
1055Ó·
1056Ó¹
1057Ó»
1058Ӝ
1059Ó¿
1060ԁ
1061ԃ
1062ԅ
1063ԇ
1064ԉ
1065ԋ
1066ԍ
1067ԏ
1068ԑ
1069ԓ
1070ԕ
1071ԗ
1072ԙ
1073ԛ
1074ԝ
1075ԟ
1076Ô¡
1077Ô£
1078Ô¥
1079Ô§
1080Ô©
1081Ô«
1082Ô­
1083Ô¯
1084Õ¡
1085Õ¢
1086Õ£
1087Õ€
1088Õ¥
1089ÕŠ
1090Õ§
1091Õš
1092Õ©
1093Õª
1094Õ«
1095Õ¬
1096Õ­
1097Õ®
1098Õ¯
1099Õ°
1100Õ±
1101Õ²
1102Õ³
1103ÕŽ
1104Õµ
1105Õ¶
1106Õ·
1107Õž
1108Õ¹
1109Õº
1110Õ»
1111Ռ
1112՜
1113ÕŸ
1114Õ¿
1115ր
1116ց
1117ւ
1118փ
1119ք
1120օ
1121ֆ
1122⮀
1123⎁
1124⮂
1125⎃
1126⮄
1127⮅
1128⮆
1129⮇
1130⎈
1131⮉
1132⮊
1133⮋
1134⮌
1135⎍
1136⮎
1137⎏
1138⎐
1139⮑
1140⮒
1141⮓
1142⮔
1143⮕
1144⮖
1145⮗
1146⎘
1147⮙
1148⮚
1149⮛
1150⮜
1151⎝
1152⮞
1153⮟
1154⎠
1155⎡
1156⎢
1157⎣
1158⎀
1159⎥
1160⎧
1161⎭
1162Ᏸ
1163Ᏹ
1164Ᏺ
1165Ᏻ
1166Ꮞ
1167Ᏽ
1168в
1169ÐŽ
1170П
1171с
1172т
1173т
1174ъ
1175Ñ£
1176ꙋ
1177ა
1178ბ
1179გ
1180დ
1181ე
1182ვ
1183ზ
1184თ
1185ი
1186კ
1187ლ
1188მ
1189ნ
1190ო
1191პ
1192ჟ
1193რ
1194ს
1195ტ
1196უ
1197Ⴠ
1198ქ
1199჊
1200ყ
1201ლ
1202ჩ
1203ც
1204ძ
1205წ
1206ჭ
1207ხ
1208ჯ
1209ჰ
1210ჱ
1211ჲ
1212ჳ
1213჎
1214ჵ
1215ჶ
1216ჷ
1217პ
1218ჹ
1219ჺ
1220ნ
1221ჟ
1222ჿ
1223ខ
1224ឃ
1225ᾅ
1226ᾇ
1227ᾉ
1228ᾋ
1229ឍ
1230ត
1231ᾑ
1232ᾓ
1233ᾕ
1234ᾗ
1235ᾙ
1236ᾛ
1237ឝ
1238ᾟ
1239áž¡
1240ឣ
1241ឥ
1242ឧ
1243áž©
1244áž«
1245áž­
1246ឯ
1247áž±
1248áž³
1249ážµ
1250áž·
1251áž¹
1252áž»
1253វ
1254áž¿
1255ṁ
1256ṃ
1257ṅ
1258ṇ
1259ṉ
1260ṋ
1261ṍ
1262ṏ
1263ṑ
1264ṓ
1265ṕ
1266ṗ
1267ṙ
1268ṛ
1269ṝ
1270ṟ
1271ṡ
1272á¹£
1273á¹¥
1274ṧ
1275ṩ
1276ṫ
1277á¹­
1278ṯ
1279á¹±
1280á¹³
1281á¹µ
1282á¹·
1283á¹¹
1284á¹»
1285Ṝ
1286ṿ
1287ẁ
1288ẃ
1289ẅ
1290ẇ
1291ẉ
1292ẋ
1293ẍ
1294ẏ
1295ẑ
1296ẓ
1297ẕ
1298ṡ
1299ß
1300ạ
1301ả
1302ấ
1303ầ
1304ẩ
1305ẫ
1306ậ
1307ắ
1308ằ
1309ẳ
1310ẵ
1311ặ
1312ẹ
1313ẻ
1314ẜ
1315ế
1316ề
1317ể
1318ễ
1319ệ
1320ỉ
1321ị
1322ọ
1323ỏ
1324ố
1325ồ
1326ổ
1327ỗ
1328ộ
1329ớ
1330ờ
1331ở
1332ỡ
1333ợ
1334ụ
1335ủ
1336ứ
1337ừ
1338á»­
1339ữ
1340á»±
1341ỳ
1342ỵ
1343á»·
1344ỹ
1345á»»
1346Ờ
1347ỿ
1348ጀ
1349ጁ
1350ጂ
1351ጃ
1352ጄ
1353ጅ
1354ጆ
1355ጇ
1356ጐ
1357጑
1358ጒ
1359ጓ
1360ጔ
1361ጕ
1362ጠ
1363ጡ
1364ጢ
1365ጣ
1366ጀ
1367ጥ
1368ጊ
1369ጧ
1370ጰ
1371ጱ
1372ጲ
1373ጳ
1374ጎ
1375ጵ
1376ጶ
1377ጷ
1378ᜀ
1379ᜁ
1380ᜂ
1381ᜃ
1382ᜄ
1383ᜅ
1384ᜑ
1385ᜓ
1386᜕
1387᜗
1388ᜠ
1389ᜡ
1390ᜢ
1391ᜣ
1392ᜀ
1393ᜥ
1394ᜊ
1395ᜧ
1396ៀ
1397េ
1398ែ
1399ៃ
1400ោ
1401ៅ
1402ំ
1403ះ
1404័
1405៑
1406្
1407៓
1408។
1409៕
1410៖
1411ៗ
1412០
1413១
1414២
1415៣
1416ៀ
1417៥
1418៊
1419៧
1420៰
1421៱
1422ᜰ
1423ᜱ
1424៳
1425ι
1426ᜲ
1427ᜳ
1428ᜎ
1429᜵
1430ῃ
1431ῐ
1432ῑ
1433᜶
1434᜷
1435á¿ 
1436á¿¡
1437᜺
1438᜻
1439á¿¥
1440᜞
1441᜹
1442ᜌ
1443᜜
1444ῳ
1445ω
1446k
1447Ã¥
1448ⅎ
1449ⅰ
1450ⅱ
1451ⅲ
1452ⅳ
1453Ⅾ
1454ⅵ
1455ⅶ
1456ⅷ
1457ⅾ
1458ⅹ
1459ⅺ
1460ⅻ
1461⅌
1462⅜
1463â…Ÿ
1464ⅿ
1465ↄ
1466ⓐ
1467ⓑ
1468ⓒ
1469ⓓ
1470ⓔ
1471ⓕ
1472ⓖ
1473ⓗ
1474ⓘ
1475ⓙ
1476ⓚ
1477ⓛ
1478ⓜ
1479ⓝ
1480ⓞ
1481ⓟ
1482ⓠ
1483ⓡ
1484ⓢ
1485ⓣ
1486â“€
1487ⓥ
1488ⓩ
1489ⓧ
1490⓹
1491ⓩ
1492â°°
1493â°±
1494â°²
1495â°³
1496â°Ž
1497â°µ
1498â°¶
1499â°·
1500â°ž
1501â°¹
1502â°º
1503â°»
1504Ⰼ
1505Ⱌ
1506â°Ÿ
1507â°¿
1508ⱀ
1509ⱁ
1510ⱂ
1511ⱃ
1512ⱄ
1513ⱅ
1514ⱆ
1515ⱇ
1516ⱈ
1517ⱉ
1518ⱊ
1519ⱋ
1520ⱌ
1521ⱍ
1522ⱎ
1523ⱏ
1524ⱐ
1525ⱑ
1526ⱒ
1527ⱓ
1528ⱔ
1529ⱕ
1530ⱖ
1531ⱗ
1532ⱘ
1533ⱙ
1534ⱚ
1535ⱛ
1536ⱜ
1537ⱝ
1538ⱞ
1539ⱡ
1540É«
1541ᵜ
1542ɜ
1543ⱚ
1544ⱪ
1545ⱬ
1546ɑ
1547ɱ
1548ɐ
1549ɒ
1550â±³
1551ⱶ
1552È¿
1553ɀ
1554ⲁ
1555ⲃ
1556ⲅ
1557ⲇ
1558ⲉ
1559ⲋ
1560ⲍ
1561ⲏ
1562ⲑ
1563ⲓ
1564ⲕ
1565ⲗ
1566ⲙ
1567ⲛ
1568ⲝ
1569ⲟ
1570ⲡ
1571â²£
1572â²¥
1573ⲧ
1574ⲩ
1575ⲫ
1576â²­
1577ⲯ
1578â²±
1579â²³
1580â²µ
1581â²·
1582â²¹
1583â²»
1584Ⲝ
1585ⲿ
1586ⳁ
1587ⳃ
1588ⳅ
1589ⳇ
1590ⳉ
1591ⳋ
1592ⳍ
1593ⳏ
1594ⳑ
1595ⳓ
1596ⳕ
1597ⳗ
1598ⳙ
1599ⳛ
1600ⳝ
1601ⳟ
1602ⳡ
1603â³£
1604ⳬ
1605â³®
1606â³³
1607ꙁ
1608ꙃ
1609ꙅ
1610ꙇ
1611ꙉ
1612ꙋ
1613ꙍ
1614ꙏ
1615ꙑ
1616ꙓ
1617ꙕ
1618ꙗ
1619ꙙ
1620ꙛ
1621ꙝ
1622ꙟ
1623ꙡ
1624ꙣ
1625ꙥ
1626ꙧ
1627ꙩ
1628ꙫ
1629ꙭ
1630ꚁ
1631ꚃ
1632ꚅ
1633ꚇ
1634ꚉ
1635ꚋ
1636ꚍ
1637ꚏ
1638ꚑ
1639ꚓ
1640ꚕ
1641ꚗ
1642ꚙ
1643ꚛ
1644ꜣ
1645ꜥ
1646ꜧ
1647ꜩ
1648ꜫ
1649ꜭ
1650ꜯ
1651ꜳ
1652ꜵ
1653ꜷ
1654ꜹ
1655ꜻ
1656ꜜ
1657ꜿ
1658ꝁ
1659ꝃ
1660ꝅ
1661ꝇ
1662ꝉ
1663ꝋ
1664ꝍ
1665ꝏ
1666ꝑ
1667ꝓ
1668ꝕ
1669ꝗ
1670ꝙ
1671ꝛ
1672ꝝ
1673ꝟ
1674ꝡ
1675ꝣ
1676ꝥ
1677ꝧ
1678ꝩ
1679ꝫ
1680ꝭ
1681ꝯ
1682ꝺ
1683Ꝍ
1684áµ¹
1685ꝿ
1686ꞁ
1687ꞃ
1688ꞅ
1689ꞇ
1690ꞌ
1691É¥
1692ꞑ
1693ꞓ
1694ꞗ
1695ꞙ
1696ꞛ
1697ꞝ
1698ꞟ
1699ꞡ
1700ꞣ
1701ꞥ
1702ꞧ
1703ꞩ
1704ÉŠ
1705ɜ
1706É¡
1707ɬ
1708ɪ
1709ʞ
1710ʇ
1711ʝ
1712ꭓ
1713ꞵ
1714ꞷ
1715ꞹ
1716Ꭰ
1717Ꭱ
1718Ꭲ
1719Ꭳ
1720ᎀ
1721Ꭵ
1722ᎊ
1723Ꭷ
1724᎚
1725Ꭹ
1726Ꭺ
1727Ꭻ
1728Ꭼ
1729Ꭽ
1730Ꭾ
1731Ꭿ
1732Ꮀ
1733Ꮁ
1734Ꮂ
1735Ꮃ
1736Ꭾ
1737Ꮅ
1738Ꮆ
1739Ꮇ
1740Ꮎ
1741Ꮉ
1742Ꮊ
1743Ꮋ
1744ᎌ
1745᎜
1746᎟
1747Ꮏ
1748Ꮐ
1749Ꮑ
1750Ꮒ
1751Ꮓ
1752Ꮔ
1753Ꮕ
1754Ꮖ
1755Ꮗ
1756Ꮘ
1757Ꮙ
1758Ꮚ
1759Ꮛ
1760Ꮜ
1761Ꮝ
1762Ꮞ
1763Ꮟ
1764Ꮠ
1765Ꮡ
1766Ꮢ
1767Ꮣ
1768Ꮤ
1769Ꮥ
1770Ꮦ
1771Ꮧ
1772Ꮨ
1773Ꮩ
1774Ꮪ
1775Ꮫ
1776Ꮬ
1777Ꮭ
1778Ꮮ
1779Ꮯ
1780Ꮰ
1781Ꮱ
1782Ꮲ
1783Ꮳ
1784Ꮐ
1785Ꮵ
1786Ꮚ
1787Ꮷ
1788Ꮪ
1789Ꮹ
1790Ꮺ
1791Ꮻ
1792Ꮼ
1793Ꮽ
1794Ꮾ
1795Ꮿ
1796
1797
1798
1799
1800
1801
1802
1803
1804
1805
1806
1807
1808
1809
1810
1811
1812
1813
1814
1815
1816
1817
1818
1819
1820
1821
1822𐐚
1823𐐩
1824𐐪
1825𐐫
1826𐐬
1827𐐭
1828𐐮
1829𐐯
1830𐐰
1831𐐱
1832𐐲
1833𐐳
1834𐐎
1835𐐵
1836𐐶
1837𐐷
1838𐐞
1839𐐹
1840𐐺
1841𐐻
1842𐐌
1843𐐜
1844𐐟
1845𐐿
1846𐑀
1847𐑁
1848𐑂
1849𐑃
1850𐑄
1851𐑅
1852𐑆
1853𐑇
1854𐑈
1855𐑉
1856𐑊
1857𐑋
1858𐑌
1859𐑍
1860𐑎
1861𐑏
1862𐓘
1863𐓙
1864𐓚
1865𐓛
1866𐓜
1867𐓝
1868𐓞
1869𐓟
1870𐓠
1871𐓡
1872𐓢
1873𐓣
1874𐓀
1875𐓥
1876𐓊
1877𐓧
1878𐓚
1879𐓩
1880𐓪
1881𐓫
1882𐓬
1883𐓭
1884𐓮
1885𐓯
1886𐓰
1887𐓱
1888𐓲
1889𐓳
1890𐓎
1891𐓵
1892𐓶
1893𐓷
1894𐓞
1895𐓹
1896𐓺
1897𐓻
1898𐳀
1899𐳁
1900𐳂
1901𐳃
1902𐳄
1903𐳅
1904𐳆
1905𐳇
1906𐳈
1907𐳉
1908𐳊
1909𐳋
1910𐳌
1911𐳍
1912𐳎
1913𐳏
1914𐳐
1915𐳑
1916𐳒
1917𐳓
1918𐳔
1919𐳕
1920𐳖
1921𐳗
1922𐳘
1923𐳙
1924𐳚
1925𐳛
1926𐳜
1927𐳝
1928𐳞
1929𐳟
1930𐳠
1931𐳡
1932𐳢
1933𐳣
1934𐳀
1935𐳥
1936𐳊
1937𐳧
1938𐳚
1939𐳩
1940𐳪
1941𐳫
1942𐳬
1943𐳭
1944𐳮
1945𐳯
1946𐳰
1947𐳱
1948𐳲
1949𑣀
1950𑣁
1951𑣂
1952𑣃
1953𑣄
1954𑣅
1955𑣆
1956𑣇
1957𑣈
1958𑣉
1959𑣊
1960𑣋
1961𑣌
1962𑣍
1963𑣎
1964𑣏
1965𑣐
1966𑣑
1967𑣒
1968𑣓
1969𑣔
1970𑣕
1971𑣖
1972𑣗
1973𑣘
1974𑣙
1975𑣚
1976𑣛
1977𑣜
1978𑣝
1979𑣞
1980𑣟
1981𖹠
1982𖹡
1983𖹢
1984𖹣
1985ð–¹€
1986𖹥
1987𖹊
1988𖹧
1989𖹚
1990𖹩
1991𖹪
1992𖹫
1993𖹬
1994𖹭
1995𖹮
1996𖹯
1997𖹰
1998𖹱
1999𖹲
2000𖹳
2001𖹎
2002𖹵
2003𖹶
2004𖹷
2005𖹞
2006𖹹
2007𖹺
2008𖹻
2009𖹌
2010𖹜
2011𖹟
2012𖹿
2013𞀢
2014𞀣
2015𞀀
2016𞀥
2017𞀊
2018𞀧
2019𞀚
2020𞀩
2021𞀪
2022𞀫
2023𞀬
2024𞀭
2025𞀮
2026𞀯
2027𞀰
2028𞀱
2029𞀲
2030𞀳
2031𞀎
2032𞀵
2033𞀶
2034𞀷
2035𞀞
2036𞀹
2037𞀺
2038𞀻
2039𞀌
2040𞀜
2041𞀟
2042𞀿
2043𞥀
2044𞥁
2045𞥂
2046𞥃
2047)__";
2048
2049        const static std::vector<codepoint_t> defined_cps{
2050        0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048,
2051        0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050,
2052        0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058,
2053        0x0059, 0x005a, 0x00b5, 0x00c0, 0x00c1, 0x00c2, 0x00c3, 0x00c4,
2054        0x00c5, 0x00c6, 0x00c7, 0x00c8, 0x00c9, 0x00ca, 0x00cb, 0x00cc,
2055        0x00cd, 0x00ce, 0x00cf, 0x00d0, 0x00d1, 0x00d2, 0x00d3, 0x00d4,
2056        0x00d5, 0x00d6, 0x00d8, 0x00d9, 0x00da, 0x00db, 0x00dc, 0x00dd,
2057        0x00de, 0x0100, 0x0102, 0x0104, 0x0106, 0x0108, 0x010a, 0x010c,
2058        0x010e, 0x0110, 0x0112, 0x0114, 0x0116, 0x0118, 0x011a, 0x011c,
2059        0x011e, 0x0120, 0x0122, 0x0124, 0x0126, 0x0128, 0x012a, 0x012c,
2060        0x012e, 0x0132, 0x0134, 0x0136, 0x0139, 0x013b, 0x013d, 0x013f,
2061        0x0141, 0x0143, 0x0145, 0x0147, 0x014a, 0x014c, 0x014e, 0x0150,
2062        0x0152, 0x0154, 0x0156, 0x0158, 0x015a, 0x015c, 0x015e, 0x0160,
2063        0x0162, 0x0164, 0x0166, 0x0168, 0x016a, 0x016c, 0x016e, 0x0170,
2064        0x0172, 0x0174, 0x0176, 0x0178, 0x0179, 0x017b, 0x017d, 0x017f,
2065        0x0181, 0x0182, 0x0184, 0x0186, 0x0187, 0x0189, 0x018a, 0x018b,
2066        0x018e, 0x018f, 0x0190, 0x0191, 0x0193, 0x0194, 0x0196, 0x0197,
2067        0x0198, 0x019c, 0x019d, 0x019f, 0x01a0, 0x01a2, 0x01a4, 0x01a6,
2068        0x01a7, 0x01a9, 0x01ac, 0x01ae, 0x01af, 0x01b1, 0x01b2, 0x01b3,
2069        0x01b5, 0x01b7, 0x01b8, 0x01bc, 0x01c4, 0x01c5, 0x01c7, 0x01c8,
2070        0x01ca, 0x01cb, 0x01cd, 0x01cf, 0x01d1, 0x01d3, 0x01d5, 0x01d7,
2071        0x01d9, 0x01db, 0x01de, 0x01e0, 0x01e2, 0x01e4, 0x01e6, 0x01e8,
2072        0x01ea, 0x01ec, 0x01ee, 0x01f1, 0x01f2, 0x01f4, 0x01f6, 0x01f7,
2073        0x01f8, 0x01fa, 0x01fc, 0x01fe, 0x0200, 0x0202, 0x0204, 0x0206,
2074        0x0208, 0x020a, 0x020c, 0x020e, 0x0210, 0x0212, 0x0214, 0x0216,
2075        0x0218, 0x021a, 0x021c, 0x021e, 0x0220, 0x0222, 0x0224, 0x0226,
2076        0x0228, 0x022a, 0x022c, 0x022e, 0x0230, 0x0232, 0x023a, 0x023b,
2077        0x023d, 0x023e, 0x0241, 0x0243, 0x0244, 0x0245, 0x0246, 0x0248,
2078        0x024a, 0x024c, 0x024e, 0x0345, 0x0370, 0x0372, 0x0376, 0x037f,
2079        0x0386, 0x0388, 0x0389, 0x038a, 0x038c, 0x038e, 0x038f, 0x0391,
2080        0x0392, 0x0393, 0x0394, 0x0395, 0x0396, 0x0397, 0x0398, 0x0399,
2081        0x039a, 0x039b, 0x039c, 0x039d, 0x039e, 0x039f, 0x03a0, 0x03a1,
2082        0x03a3, 0x03a4, 0x03a5, 0x03a6, 0x03a7, 0x03a8, 0x03a9, 0x03aa,
2083        0x03ab, 0x03c2, 0x03cf, 0x03d0, 0x03d1, 0x03d5, 0x03d6, 0x03d8,
2084        0x03da, 0x03dc, 0x03de, 0x03e0, 0x03e2, 0x03e4, 0x03e6, 0x03e8,
2085        0x03ea, 0x03ec, 0x03ee, 0x03f0, 0x03f1, 0x03f4, 0x03f5, 0x03f7,
2086        0x03f9, 0x03fa, 0x03fd, 0x03fe, 0x03ff, 0x0400, 0x0401, 0x0402,
2087        0x0403, 0x0404, 0x0405, 0x0406, 0x0407, 0x0408, 0x0409, 0x040a,
2088        0x040b, 0x040c, 0x040d, 0x040e, 0x040f, 0x0410, 0x0411, 0x0412,
2089        0x0413, 0x0414, 0x0415, 0x0416, 0x0417, 0x0418, 0x0419, 0x041a,
2090        0x041b, 0x041c, 0x041d, 0x041e, 0x041f, 0x0420, 0x0421, 0x0422,
2091        0x0423, 0x0424, 0x0425, 0x0426, 0x0427, 0x0428, 0x0429, 0x042a,
2092        0x042b, 0x042c, 0x042d, 0x042e, 0x042f, 0x0460, 0x0462, 0x0464,
2093        0x0466, 0x0468, 0x046a, 0x046c, 0x046e, 0x0470, 0x0472, 0x0474,
2094        0x0476, 0x0478, 0x047a, 0x047c, 0x047e, 0x0480, 0x048a, 0x048c,
2095        0x048e, 0x0490, 0x0492, 0x0494, 0x0496, 0x0498, 0x049a, 0x049c,
2096        0x049e, 0x04a0, 0x04a2, 0x04a4, 0x04a6, 0x04a8, 0x04aa, 0x04ac,
2097        0x04ae, 0x04b0, 0x04b2, 0x04b4, 0x04b6, 0x04b8, 0x04ba, 0x04bc,
2098        0x04be, 0x04c0, 0x04c1, 0x04c3, 0x04c5, 0x04c7, 0x04c9, 0x04cb,
2099        0x04cd, 0x04d0, 0x04d2, 0x04d4, 0x04d6, 0x04d8, 0x04da, 0x04dc,
2100        0x04de, 0x04e0, 0x04e2, 0x04e4, 0x04e6, 0x04e8, 0x04ea, 0x04ec,
2101        0x04ee, 0x04f0, 0x04f2, 0x04f4, 0x04f6, 0x04f8, 0x04fa, 0x04fc,
2102        0x04fe, 0x0500, 0x0502, 0x0504, 0x0506, 0x0508, 0x050a, 0x050c,
2103        0x050e, 0x0510, 0x0512, 0x0514, 0x0516, 0x0518, 0x051a, 0x051c,
2104        0x051e, 0x0520, 0x0522, 0x0524, 0x0526, 0x0528, 0x052a, 0x052c,
2105        0x052e, 0x0531, 0x0532, 0x0533, 0x0534, 0x0535, 0x0536, 0x0537,
2106        0x0538, 0x0539, 0x053a, 0x053b, 0x053c, 0x053d, 0x053e, 0x053f,
2107        0x0540, 0x0541, 0x0542, 0x0543, 0x0544, 0x0545, 0x0546, 0x0547,
2108        0x0548, 0x0549, 0x054a, 0x054b, 0x054c, 0x054d, 0x054e, 0x054f,
2109        0x0550, 0x0551, 0x0552, 0x0553, 0x0554, 0x0555, 0x0556, 0x10a0,
2110        0x10a1, 0x10a2, 0x10a3, 0x10a4, 0x10a5, 0x10a6, 0x10a7, 0x10a8,
2111        0x10a9, 0x10aa, 0x10ab, 0x10ac, 0x10ad, 0x10ae, 0x10af, 0x10b0,
2112        0x10b1, 0x10b2, 0x10b3, 0x10b4, 0x10b5, 0x10b6, 0x10b7, 0x10b8,
2113        0x10b9, 0x10ba, 0x10bb, 0x10bc, 0x10bd, 0x10be, 0x10bf, 0x10c0,
2114        0x10c1, 0x10c2, 0x10c3, 0x10c4, 0x10c5, 0x10c7, 0x10cd, 0x13f8,
2115        0x13f9, 0x13fa, 0x13fb, 0x13fc, 0x13fd, 0x1c80, 0x1c81, 0x1c82,
2116        0x1c83, 0x1c84, 0x1c85, 0x1c86, 0x1c87, 0x1c88, 0x1c90, 0x1c91,
2117        0x1c92, 0x1c93, 0x1c94, 0x1c95, 0x1c96, 0x1c97, 0x1c98, 0x1c99,
2118        0x1c9a, 0x1c9b, 0x1c9c, 0x1c9d, 0x1c9e, 0x1c9f, 0x1ca0, 0x1ca1,
2119        0x1ca2, 0x1ca3, 0x1ca4, 0x1ca5, 0x1ca6, 0x1ca7, 0x1ca8, 0x1ca9,
2120        0x1caa, 0x1cab, 0x1cac, 0x1cad, 0x1cae, 0x1caf, 0x1cb0, 0x1cb1,
2121        0x1cb2, 0x1cb3, 0x1cb4, 0x1cb5, 0x1cb6, 0x1cb7, 0x1cb8, 0x1cb9,
2122        0x1cba, 0x1cbd, 0x1cbe, 0x1cbf, 0x1e00, 0x1e02, 0x1e04, 0x1e06,
2123        0x1e08, 0x1e0a, 0x1e0c, 0x1e0e, 0x1e10, 0x1e12, 0x1e14, 0x1e16,
2124        0x1e18, 0x1e1a, 0x1e1c, 0x1e1e, 0x1e20, 0x1e22, 0x1e24, 0x1e26,
2125        0x1e28, 0x1e2a, 0x1e2c, 0x1e2e, 0x1e30, 0x1e32, 0x1e34, 0x1e36,
2126        0x1e38, 0x1e3a, 0x1e3c, 0x1e3e, 0x1e40, 0x1e42, 0x1e44, 0x1e46,
2127        0x1e48, 0x1e4a, 0x1e4c, 0x1e4e, 0x1e50, 0x1e52, 0x1e54, 0x1e56,
2128        0x1e58, 0x1e5a, 0x1e5c, 0x1e5e, 0x1e60, 0x1e62, 0x1e64, 0x1e66,
2129        0x1e68, 0x1e6a, 0x1e6c, 0x1e6e, 0x1e70, 0x1e72, 0x1e74, 0x1e76,
2130        0x1e78, 0x1e7a, 0x1e7c, 0x1e7e, 0x1e80, 0x1e82, 0x1e84, 0x1e86,
2131        0x1e88, 0x1e8a, 0x1e8c, 0x1e8e, 0x1e90, 0x1e92, 0x1e94, 0x1e9b,
2132        0x1e9e, 0x1ea0, 0x1ea2, 0x1ea4, 0x1ea6, 0x1ea8, 0x1eaa, 0x1eac,
2133        0x1eae, 0x1eb0, 0x1eb2, 0x1eb4, 0x1eb6, 0x1eb8, 0x1eba, 0x1ebc,
2134        0x1ebe, 0x1ec0, 0x1ec2, 0x1ec4, 0x1ec6, 0x1ec8, 0x1eca, 0x1ecc,
2135        0x1ece, 0x1ed0, 0x1ed2, 0x1ed4, 0x1ed6, 0x1ed8, 0x1eda, 0x1edc,
2136        0x1ede, 0x1ee0, 0x1ee2, 0x1ee4, 0x1ee6, 0x1ee8, 0x1eea, 0x1eec,
2137        0x1eee, 0x1ef0, 0x1ef2, 0x1ef4, 0x1ef6, 0x1ef8, 0x1efa, 0x1efc,
2138        0x1efe, 0x1f08, 0x1f09, 0x1f0a, 0x1f0b, 0x1f0c, 0x1f0d, 0x1f0e,
2139        0x1f0f, 0x1f18, 0x1f19, 0x1f1a, 0x1f1b, 0x1f1c, 0x1f1d, 0x1f28,
2140        0x1f29, 0x1f2a, 0x1f2b, 0x1f2c, 0x1f2d, 0x1f2e, 0x1f2f, 0x1f38,
2141        0x1f39, 0x1f3a, 0x1f3b, 0x1f3c, 0x1f3d, 0x1f3e, 0x1f3f, 0x1f48,
2142        0x1f49, 0x1f4a, 0x1f4b, 0x1f4c, 0x1f4d, 0x1f59, 0x1f5b, 0x1f5d,
2143        0x1f5f, 0x1f68, 0x1f69, 0x1f6a, 0x1f6b, 0x1f6c, 0x1f6d, 0x1f6e,
2144        0x1f6f, 0x1f88, 0x1f89, 0x1f8a, 0x1f8b, 0x1f8c, 0x1f8d, 0x1f8e,
2145        0x1f8f, 0x1f98, 0x1f99, 0x1f9a, 0x1f9b, 0x1f9c, 0x1f9d, 0x1f9e,
2146        0x1f9f, 0x1fa8, 0x1fa9, 0x1faa, 0x1fab, 0x1fac, 0x1fad, 0x1fae,
2147        0x1faf, 0x1fb8, 0x1fb9, 0x1fba, 0x1fbb, 0x1fbc, 0x1fbe, 0x1fc8,
2148        0x1fc9, 0x1fca, 0x1fcb, 0x1fcc, 0x1fd8, 0x1fd9, 0x1fda, 0x1fdb,
2149        0x1fe8, 0x1fe9, 0x1fea, 0x1feb, 0x1fec, 0x1ff8, 0x1ff9, 0x1ffa,
2150        0x1ffb, 0x1ffc, 0x2126, 0x212a, 0x212b, 0x2132, 0x2160, 0x2161,
2151        0x2162, 0x2163, 0x2164, 0x2165, 0x2166, 0x2167, 0x2168, 0x2169,
2152        0x216a, 0x216b, 0x216c, 0x216d, 0x216e, 0x216f, 0x2183, 0x24b6,
2153        0x24b7, 0x24b8, 0x24b9, 0x24ba, 0x24bb, 0x24bc, 0x24bd, 0x24be,
2154        0x24bf, 0x24c0, 0x24c1, 0x24c2, 0x24c3, 0x24c4, 0x24c5, 0x24c6,
2155        0x24c7, 0x24c8, 0x24c9, 0x24ca, 0x24cb, 0x24cc, 0x24cd, 0x24ce,
2156        0x24cf, 0x2c00, 0x2c01, 0x2c02, 0x2c03, 0x2c04, 0x2c05, 0x2c06,
2157        0x2c07, 0x2c08, 0x2c09, 0x2c0a, 0x2c0b, 0x2c0c, 0x2c0d, 0x2c0e,
2158        0x2c0f, 0x2c10, 0x2c11, 0x2c12, 0x2c13, 0x2c14, 0x2c15, 0x2c16,
2159        0x2c17, 0x2c18, 0x2c19, 0x2c1a, 0x2c1b, 0x2c1c, 0x2c1d, 0x2c1e,
2160        0x2c1f, 0x2c20, 0x2c21, 0x2c22, 0x2c23, 0x2c24, 0x2c25, 0x2c26,
2161        0x2c27, 0x2c28, 0x2c29, 0x2c2a, 0x2c2b, 0x2c2c, 0x2c2d, 0x2c2e,
2162        0x2c60, 0x2c62, 0x2c63, 0x2c64, 0x2c67, 0x2c69, 0x2c6b, 0x2c6d,
2163        0x2c6e, 0x2c6f, 0x2c70, 0x2c72, 0x2c75, 0x2c7e, 0x2c7f, 0x2c80,
2164        0x2c82, 0x2c84, 0x2c86, 0x2c88, 0x2c8a, 0x2c8c, 0x2c8e, 0x2c90,
2165        0x2c92, 0x2c94, 0x2c96, 0x2c98, 0x2c9a, 0x2c9c, 0x2c9e, 0x2ca0,
2166        0x2ca2, 0x2ca4, 0x2ca6, 0x2ca8, 0x2caa, 0x2cac, 0x2cae, 0x2cb0,
2167        0x2cb2, 0x2cb4, 0x2cb6, 0x2cb8, 0x2cba, 0x2cbc, 0x2cbe, 0x2cc0,
2168        0x2cc2, 0x2cc4, 0x2cc6, 0x2cc8, 0x2cca, 0x2ccc, 0x2cce, 0x2cd0,
2169        0x2cd2, 0x2cd4, 0x2cd6, 0x2cd8, 0x2cda, 0x2cdc, 0x2cde, 0x2ce0,
2170        0x2ce2, 0x2ceb, 0x2ced, 0x2cf2, 0xa640, 0xa642, 0xa644, 0xa646,
2171        0xa648, 0xa64a, 0xa64c, 0xa64e, 0xa650, 0xa652, 0xa654, 0xa656,
2172        0xa658, 0xa65a, 0xa65c, 0xa65e, 0xa660, 0xa662, 0xa664, 0xa666,
2173        0xa668, 0xa66a, 0xa66c, 0xa680, 0xa682, 0xa684, 0xa686, 0xa688,
2174        0xa68a, 0xa68c, 0xa68e, 0xa690, 0xa692, 0xa694, 0xa696, 0xa698,
2175        0xa69a, 0xa722, 0xa724, 0xa726, 0xa728, 0xa72a, 0xa72c, 0xa72e,
2176        0xa732, 0xa734, 0xa736, 0xa738, 0xa73a, 0xa73c, 0xa73e, 0xa740,
2177        0xa742, 0xa744, 0xa746, 0xa748, 0xa74a, 0xa74c, 0xa74e, 0xa750,
2178        0xa752, 0xa754, 0xa756, 0xa758, 0xa75a, 0xa75c, 0xa75e, 0xa760,
2179        0xa762, 0xa764, 0xa766, 0xa768, 0xa76a, 0xa76c, 0xa76e, 0xa779,
2180        0xa77b, 0xa77d, 0xa77e, 0xa780, 0xa782, 0xa784, 0xa786, 0xa78b,
2181        0xa78d, 0xa790, 0xa792, 0xa796, 0xa798, 0xa79a, 0xa79c, 0xa79e,
2182        0xa7a0, 0xa7a2, 0xa7a4, 0xa7a6, 0xa7a8, 0xa7aa, 0xa7ab, 0xa7ac,
2183        0xa7ad, 0xa7ae, 0xa7b0, 0xa7b1, 0xa7b2, 0xa7b3, 0xa7b4, 0xa7b6,
2184        0xa7b8, 0xab70, 0xab71, 0xab72, 0xab73, 0xab74, 0xab75, 0xab76,
2185        0xab77, 0xab78, 0xab79, 0xab7a, 0xab7b, 0xab7c, 0xab7d, 0xab7e,
2186        0xab7f, 0xab80, 0xab81, 0xab82, 0xab83, 0xab84, 0xab85, 0xab86,
2187        0xab87, 0xab88, 0xab89, 0xab8a, 0xab8b, 0xab8c, 0xab8d, 0xab8e,
2188        0xab8f, 0xab90, 0xab91, 0xab92, 0xab93, 0xab94, 0xab95, 0xab96,
2189        0xab97, 0xab98, 0xab99, 0xab9a, 0xab9b, 0xab9c, 0xab9d, 0xab9e,
2190        0xab9f, 0xaba0, 0xaba1, 0xaba2, 0xaba3, 0xaba4, 0xaba5, 0xaba6,
2191        0xaba7, 0xaba8, 0xaba9, 0xabaa, 0xabab, 0xabac, 0xabad, 0xabae,
2192        0xabaf, 0xabb0, 0xabb1, 0xabb2, 0xabb3, 0xabb4, 0xabb5, 0xabb6,
2193        0xabb7, 0xabb8, 0xabb9, 0xabba, 0xabbb, 0xabbc, 0xabbd, 0xabbe,
2194        0xabbf, 0xff21, 0xff22, 0xff23, 0xff24, 0xff25, 0xff26, 0xff27,
2195        0xff28, 0xff29, 0xff2a, 0xff2b, 0xff2c, 0xff2d, 0xff2e, 0xff2f,
2196        0xff30, 0xff31, 0xff32, 0xff33, 0xff34, 0xff35, 0xff36, 0xff37,
2197        0xff38, 0xff39, 0xff3a, 0x10400, 0x10401, 0x10402, 0x10403, 0x10404,
2198        0x10405, 0x10406, 0x10407, 0x10408, 0x10409, 0x1040a, 0x1040b,
2199        0x1040c, 0x1040d, 0x1040e, 0x1040f, 0x10410, 0x10411, 0x10412,
2200        0x10413, 0x10414, 0x10415, 0x10416, 0x10417, 0x10418, 0x10419,
2201        0x1041a, 0x1041b, 0x1041c, 0x1041d, 0x1041e, 0x1041f, 0x10420,
2202        0x10421, 0x10422, 0x10423, 0x10424, 0x10425, 0x10426, 0x10427,
2203        0x104b0, 0x104b1, 0x104b2, 0x104b3, 0x104b4, 0x104b5, 0x104b6,
2204        0x104b7, 0x104b8, 0x104b9, 0x104ba, 0x104bb, 0x104bc, 0x104bd,
2205        0x104be, 0x104bf, 0x104c0, 0x104c1, 0x104c2, 0x104c3, 0x104c4,
2206        0x104c5, 0x104c6, 0x104c7, 0x104c8, 0x104c9, 0x104ca, 0x104cb,
2207        0x104cc, 0x104cd, 0x104ce, 0x104cf, 0x104d0, 0x104d1, 0x104d2,
2208        0x104d3, 0x10c80, 0x10c81, 0x10c82, 0x10c83, 0x10c84, 0x10c85,
2209        0x10c86, 0x10c87, 0x10c88, 0x10c89, 0x10c8a, 0x10c8b, 0x10c8c,
2210        0x10c8d, 0x10c8e, 0x10c8f, 0x10c90, 0x10c91, 0x10c92, 0x10c93,
2211        0x10c94, 0x10c95, 0x10c96, 0x10c97, 0x10c98, 0x10c99, 0x10c9a,
2212        0x10c9b, 0x10c9c, 0x10c9d, 0x10c9e, 0x10c9f, 0x10ca0, 0x10ca1,
2213        0x10ca2, 0x10ca3, 0x10ca4, 0x10ca5, 0x10ca6, 0x10ca7, 0x10ca8,
2214        0x10ca9, 0x10caa, 0x10cab, 0x10cac, 0x10cad, 0x10cae, 0x10caf,
2215        0x10cb0, 0x10cb1, 0x10cb2, 0x118a0, 0x118a1, 0x118a2, 0x118a3,
2216        0x118a4, 0x118a5, 0x118a6, 0x118a7, 0x118a8, 0x118a9, 0x118aa,
2217        0x118ab, 0x118ac, 0x118ad, 0x118ae, 0x118af, 0x118b0, 0x118b1,
2218        0x118b2, 0x118b3, 0x118b4, 0x118b5, 0x118b6, 0x118b7, 0x118b8,
2219        0x118b9, 0x118ba, 0x118bb, 0x118bc, 0x118bd, 0x118be, 0x118bf,
2220        0x16e40, 0x16e41, 0x16e42, 0x16e43, 0x16e44, 0x16e45, 0x16e46,
2221        0x16e47, 0x16e48, 0x16e49, 0x16e4a, 0x16e4b, 0x16e4c, 0x16e4d,
2222        0x16e4e, 0x16e4f, 0x16e50, 0x16e51, 0x16e52, 0x16e53, 0x16e54,
2223        0x16e55, 0x16e56, 0x16e57, 0x16e58, 0x16e59, 0x16e5a, 0x16e5b,
2224        0x16e5c, 0x16e5d, 0x16e5e, 0x16e5f, 0x1e900, 0x1e901, 0x1e902,
2225        0x1e903, 0x1e904, 0x1e905, 0x1e906, 0x1e907, 0x1e908, 0x1e909,
2226        0x1e90a, 0x1e90b, 0x1e90c, 0x1e90d, 0x1e90e, 0x1e90f, 0x1e910,
2227        0x1e911, 0x1e912, 0x1e913, 0x1e914, 0x1e915, 0x1e916, 0x1e917,
2228        0x1e918, 0x1e919, 0x1e91a, 0x1e91b, 0x1e91c, 0x1e91d, 0x1e91e,
2229        0x1e91f, 0x1e920, 0x1e921};
2230        static StringPropertyObject property_object(scf, 
2231                                                    std::move(null_codepoint_set), 
2232                                                    std::move(reflexive_set), 
2233                                                    static_cast<const char *>(string_buffer), 
2234                                                    std::move(buffer_offsets), 
2235                                                    std::move(defined_cps));
2236    }
2237    namespace CF_ns {
2238        /** Code Point Ranges for cf (possibly overriding values from SCF)
2239        [00df, 00df], [0130, 0130], [0149, 0149], [01f0, 01f0],
2240        [0390, 0390], [03b0, 03b0], [0587, 0587], [1e96, 1e9a],
2241        [1e9e, 1e9e], [1f50, 1f50], [1f52, 1f52], [1f54, 1f54],
2242        [1f56, 1f56], [1f80, 1faf], [1fb2, 1fb4], [1fb6, 1fb7],
2243        [1fbc, 1fbc], [1fc2, 1fc4], [1fc6, 1fc7], [1fcc, 1fcc],
2244        [1fd2, 1fd3], [1fd6, 1fd7], [1fe2, 1fe4], [1fe6, 1fe7],
2245        [1ff2, 1ff4], [1ff6, 1ff7], [1ffc, 1ffc], [fb00, fb06],
2246        [fb13, fb17]**/
2247
2248       
2249        namespace {
2250        const static UnicodeSet::run_t __explicitly_defined_set_runs[] = {
2251        {Empty, 6}, {Mixed, 1}, {Empty, 2}, {Mixed, 2}, {Empty, 4},
2252        {Mixed, 1}, {Empty, 12}, {Mixed, 2}, {Empty, 14}, {Mixed, 1},
2253        {Empty, 199}, {Mixed, 1}, {Empty, 5}, {Mixed, 1}, {Empty, 1},
2254        {Full, 1}, {Mixed, 3}, {Empty, 1752}, {Mixed, 1}, {Empty, 32807}};
2255        const static UnicodeSet::bitquad_t  __explicitly_defined_set_quads[] = {
2256        0x80000000, 0x00010000, 0x00000200, 0x00010000, 0x00010000,
2257        0x00010000, 0x00000080, 0x47c00000, 0x00550000, 0x10dcffff,
2258        0x00cc10dc, 0x10dc00dc, 0x00f8007f};
2259        }
2260
2261        const static UnicodeSet explicitly_defined_set{const_cast<UnicodeSet::run_t *>(__explicitly_defined_set_runs), 20, 0, const_cast<UnicodeSet::bitquad_t *>(__explicitly_defined_set_quads), 13, 0};
2262
2263
2264
2265        const static std::vector<unsigned> buffer_offsets = {
2266        0, 3, 7, 11, 15, 22, 29, 34, 38, 42, 46, 50, 54, 57, 62, 69, 76, 83,
2267        89, 95, 101, 107, 113, 119, 125, 131, 137, 143, 149, 155, 161, 167,
2268        173, 179, 185, 191, 197, 203, 209, 215, 221, 227, 233, 239, 245,
2269        251, 257, 263, 269, 275, 281, 287, 293, 299, 305, 311, 317, 323,
2270        329, 335, 341, 347, 353, 359, 365, 371, 377, 382, 387, 392, 399,
2271        404, 410, 415, 420, 425, 432, 437, 444, 451, 456, 463, 470, 477,
2272        482, 487, 494, 500, 505, 510, 515, 522, 527, 530, 533, 536, 540,
2273        544, 547, 550, 555, 560, 565, 570, 575};
2274        const static char string_buffer LLVM_ALIGNAS(32) [768] = u8R"__(ss
2275i̇
2276ÊŒn
2277ǰ
2278ΐ
2279ΰ
2280եւ
2281ẖ
2282ẗ
2283ẘ
2284ẙ
2285aÊŸ
2286ss
2287ὐ
2288ὒ
2289ὔ
2290ὖ
2291ጀι
2292ጁι
2293ጂι
2294ጃι
2295ጄι
2296ጅι
2297ጆι
2298ጇι
2299ጀι
2300ጁι
2301ጂι
2302ጃι
2303ጄι
2304ጅι
2305ጆι
2306ጇι
2307ጠι
2308ጡι
2309ጢι
2310ጣι
2311ጀι
2312ጥι
2313ጊι
2314ጧι
2315ጠι
2316ጡι
2317ጢι
2318ጣι
2319ጀι
2320ጥι
2321ጊι
2322ጧι
2323ᜠι
2324ᜡι
2325ᜢι
2326ᜣι
2327ᜀι
2328ᜥι
2329ᜊι
2330ᜧι
2331ᜠι
2332ᜡι
2333ᜢι
2334ᜣι
2335ᜀι
2336ᜥι
2337ᜊι
2338ᜧι
2339ᜰι
2340αι
2341άι
2342ᾶ
2343ᾶι
2344αι
2345ᜎι
2346ηι
2347ήι
2348ῆ
2349ῆι
2350ηι
2351ῒ
2352ΐ
2353ῖ
2354ῗ
2355ῢ
2356ΰ
2357ῤ
2358ῦ
2359ῧ
2360ᜌι
2361ωι
2362ώι
2363ῶ
2364ῶι
2365ωι
2366ff
2367fi
2368fl
2369ffi
2370ffl
2371st
2372st
2373ÕŽÕ¶
2374ÕŽÕ¥
2375ÕŽÕ«
2376ÕŸÕ¶
2377ÕŽÕ­
2378)__";
2379
2380        const static std::vector<codepoint_t> defined_cps{
2381        0x00df, 0x0130, 0x0149, 0x01f0, 0x0390, 0x03b0, 0x0587, 0x1e96,
2382        0x1e97, 0x1e98, 0x1e99, 0x1e9a, 0x1e9e, 0x1f50, 0x1f52, 0x1f54,
2383        0x1f56, 0x1f80, 0x1f81, 0x1f82, 0x1f83, 0x1f84, 0x1f85, 0x1f86,
2384        0x1f87, 0x1f88, 0x1f89, 0x1f8a, 0x1f8b, 0x1f8c, 0x1f8d, 0x1f8e,
2385        0x1f8f, 0x1f90, 0x1f91, 0x1f92, 0x1f93, 0x1f94, 0x1f95, 0x1f96,
2386        0x1f97, 0x1f98, 0x1f99, 0x1f9a, 0x1f9b, 0x1f9c, 0x1f9d, 0x1f9e,
2387        0x1f9f, 0x1fa0, 0x1fa1, 0x1fa2, 0x1fa3, 0x1fa4, 0x1fa5, 0x1fa6,
2388        0x1fa7, 0x1fa8, 0x1fa9, 0x1faa, 0x1fab, 0x1fac, 0x1fad, 0x1fae,
2389        0x1faf, 0x1fb2, 0x1fb3, 0x1fb4, 0x1fb6, 0x1fb7, 0x1fbc, 0x1fc2,
2390        0x1fc3, 0x1fc4, 0x1fc6, 0x1fc7, 0x1fcc, 0x1fd2, 0x1fd3, 0x1fd6,
2391        0x1fd7, 0x1fe2, 0x1fe3, 0x1fe4, 0x1fe6, 0x1fe7, 0x1ff2, 0x1ff3,
2392        0x1ff4, 0x1ff6, 0x1ff7, 0x1ffc, 0xfb00, 0xfb01, 0xfb02, 0xfb03,
2393        0xfb04, 0xfb05, 0xfb06, 0xfb13, 0xfb14, 0xfb15, 0xfb16, 0xfb17};
2394        static StringOverridePropertyObject property_object(cf, 
2395                                                    SCF_ns::property_object, 
2396                                                    std::move(explicitly_defined_set), 
2397                                                    static_cast<const char *>(string_buffer), 
2398                                                    std::move(buffer_offsets), 
2399                                                    std::move(defined_cps));
2400    }
2401}
2402
2403#endif
Note: See TracBrowser for help on using the repository browser.