source: icGREP/icgrep-devel/icgrep/UCD/DerivedCoreProperties.h @ 5232

Last change on this file since 5232 was 5145, checked in by cameron, 3 years ago

Updates for Unicode 9.0

File size: 241.2 KB
Line 
1#ifndef DERIVEDCOREPROPERTIES_H
2#define DERIVEDCOREPROPERTIES_H
3/*
4 *  Copyright (c) 2016 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 "unicode_set.h"
13#include <vector>
14
15namespace UCD {
16    namespace ALPHA_ns {
17        /** Code Point Ranges for Alpha
18        [65, 90], [97, 122], [170, 170], [181, 181], [186, 186], [192, 214],
19        [216, 246], [248, 705], [710, 721], [736, 740], [748, 748],
20        [750, 750], [837, 837], [880, 884], [886, 887], [890, 893],
21        [895, 895], [902, 902], [904, 906], [908, 908], [910, 929],
22        [931, 1013], [1015, 1153], [1162, 1327], [1329, 1366], [1369, 1369],
23        [1377, 1415], [1456, 1469], [1471, 1471], [1473, 1474],
24        [1476, 1477], [1479, 1479], [1488, 1514], [1520, 1522],
25        [1552, 1562], [1568, 1623], [1625, 1631], [1646, 1747],
26        [1749, 1756], [1761, 1768], [1773, 1775], [1786, 1788],
27        [1791, 1791], [1808, 1855], [1869, 1969], [1994, 2026],
28        [2036, 2037], [2042, 2042], [2048, 2071], [2074, 2092],
29        [2112, 2136], [2208, 2228], [2230, 2237], [2260, 2271],
30        [2275, 2281], [2288, 2363], [2365, 2380], [2382, 2384],
31        [2389, 2403], [2417, 2435], [2437, 2444], [2447, 2448],
32        [2451, 2472], [2474, 2480], [2482, 2482], [2486, 2489],
33        [2493, 2500], [2503, 2504], [2507, 2508], [2510, 2510],
34        [2519, 2519], [2524, 2525], [2527, 2531], [2544, 2545],
35        [2561, 2563], [2565, 2570], [2575, 2576], [2579, 2600],
36        [2602, 2608], [2610, 2611], [2613, 2614], [2616, 2617],
37        [2622, 2626], [2631, 2632], [2635, 2636], [2641, 2641],
38        [2649, 2652], [2654, 2654], [2672, 2677], [2689, 2691],
39        [2693, 2701], [2703, 2705], [2707, 2728], [2730, 2736],
40        [2738, 2739], [2741, 2745], [2749, 2757], [2759, 2761],
41        [2763, 2764], [2768, 2768], [2784, 2787], [2809, 2809],
42        [2817, 2819], [2821, 2828], [2831, 2832], [2835, 2856],
43        [2858, 2864], [2866, 2867], [2869, 2873], [2877, 2884],
44        [2887, 2888], [2891, 2892], [2902, 2903], [2908, 2909],
45        [2911, 2915], [2929, 2929], [2946, 2947], [2949, 2954],
46        [2958, 2960], [2962, 2965], [2969, 2970], [2972, 2972],
47        [2974, 2975], [2979, 2980], [2984, 2986], [2990, 3001],
48        [3006, 3010], [3014, 3016], [3018, 3020], [3024, 3024],
49        [3031, 3031], [3072, 3075], [3077, 3084], [3086, 3088],
50        [3090, 3112], [3114, 3129], [3133, 3140], [3142, 3144],
51        [3146, 3148], [3157, 3158], [3160, 3162], [3168, 3171],
52        [3200, 3203], [3205, 3212], [3214, 3216], [3218, 3240],
53        [3242, 3251], [3253, 3257], [3261, 3268], [3270, 3272],
54        [3274, 3276], [3285, 3286], [3294, 3294], [3296, 3299],
55        [3313, 3314], [3329, 3331], [3333, 3340], [3342, 3344],
56        [3346, 3386], [3389, 3396], [3398, 3400], [3402, 3404],
57        [3406, 3406], [3412, 3415], [3423, 3427], [3450, 3455],
58        [3458, 3459], [3461, 3478], [3482, 3505], [3507, 3515],
59        [3517, 3517], [3520, 3526], [3535, 3540], [3542, 3542],
60        [3544, 3551], [3570, 3571], [3585, 3642], [3648, 3654],
61        [3661, 3661], [3713, 3714], [3716, 3716], [3719, 3720],
62        [3722, 3722], [3725, 3725], [3732, 3735], [3737, 3743],
63        [3745, 3747], [3749, 3749], [3751, 3751], [3754, 3755],
64        [3757, 3769], [3771, 3773], [3776, 3780], [3782, 3782],
65        [3789, 3789], [3804, 3807], [3840, 3840], [3904, 3911],
66        [3913, 3948], [3953, 3969], [3976, 3991], [3993, 4028],
67        [4096, 4150], [4152, 4152], [4155, 4159], [4176, 4194],
68        [4197, 4200], [4206, 4230], [4238, 4238], [4252, 4253],
69        [4256, 4293], [4295, 4295], [4301, 4301], [4304, 4346],
70        [4348, 4680], [4682, 4685], [4688, 4694], [4696, 4696],
71        [4698, 4701], [4704, 4744], [4746, 4749], [4752, 4784],
72        [4786, 4789], [4792, 4798], [4800, 4800], [4802, 4805],
73        [4808, 4822], [4824, 4880], [4882, 4885], [4888, 4954],
74        [4959, 4959], [4992, 5007], [5024, 5109], [5112, 5117],
75        [5121, 5740], [5743, 5759], [5761, 5786], [5792, 5866],
76        [5870, 5880], [5888, 5900], [5902, 5907], [5920, 5939],
77        [5952, 5971], [5984, 5996], [5998, 6000], [6002, 6003],
78        [6016, 6067], [6070, 6088], [6103, 6103], [6108, 6108],
79        [6176, 6263], [6272, 6314], [6320, 6389], [6400, 6430],
80        [6432, 6443], [6448, 6456], [6480, 6509], [6512, 6516],
81        [6528, 6571], [6576, 6601], [6656, 6683], [6688, 6750],
82        [6753, 6772], [6823, 6823], [6912, 6963], [6965, 6979],
83        [6981, 6987], [7040, 7081], [7084, 7087], [7098, 7141],
84        [7143, 7153], [7168, 7221], [7245, 7247], [7258, 7293],
85        [7296, 7304], [7401, 7404], [7406, 7411], [7413, 7414],
86        [7424, 7615], [7655, 7668], [7680, 7957], [7960, 7965],
87        [7968, 8005], [8008, 8013], [8016, 8023], [8025, 8025],
88        [8027, 8027], [8029, 8029], [8031, 8061], [8064, 8116],
89        [8118, 8124], [8126, 8126], [8130, 8132], [8134, 8140],
90        [8144, 8147], [8150, 8155], [8160, 8172], [8178, 8180],
91        [8182, 8188], [8305, 8305], [8319, 8319], [8336, 8348],
92        [8450, 8450], [8455, 8455], [8458, 8467], [8469, 8469],
93        [8473, 8477], [8484, 8484], [8486, 8486], [8488, 8488],
94        [8490, 8493], [8495, 8505], [8508, 8511], [8517, 8521],
95        [8526, 8526], [8544, 8584], [9398, 9449], [11264, 11310],
96        [11312, 11358], [11360, 11492], [11499, 11502], [11506, 11507],
97        [11520, 11557], [11559, 11559], [11565, 11565], [11568, 11623],
98        [11631, 11631], [11648, 11670], [11680, 11686], [11688, 11694],
99        [11696, 11702], [11704, 11710], [11712, 11718], [11720, 11726],
100        [11728, 11734], [11736, 11742], [11744, 11775], [11823, 11823],
101        [12293, 12295], [12321, 12329], [12337, 12341], [12344, 12348],
102        [12353, 12438], [12445, 12447], [12449, 12538], [12540, 12543],
103        [12549, 12589], [12593, 12686], [12704, 12730], [12784, 12799],
104        [13312, 19893], [19968, 40917], [40960, 42124], [42192, 42237],
105        [42240, 42508], [42512, 42527], [42538, 42539], [42560, 42606],
106        [42612, 42619], [42623, 42735], [42775, 42783], [42786, 42888],
107        [42891, 42926], [42928, 42935], [42999, 43009], [43011, 43013],
108        [43015, 43018], [43020, 43047], [43072, 43123], [43136, 43203],
109        [43205, 43205], [43250, 43255], [43259, 43259], [43261, 43261],
110        [43274, 43306], [43312, 43346], [43360, 43388], [43392, 43442],
111        [43444, 43455], [43471, 43471], [43488, 43492], [43494, 43503],
112        [43514, 43518], [43520, 43574], [43584, 43597], [43616, 43638],
113        [43642, 43642], [43646, 43710], [43712, 43712], [43714, 43714],
114        [43739, 43741], [43744, 43759], [43762, 43765], [43777, 43782],
115        [43785, 43790], [43793, 43798], [43808, 43814], [43816, 43822],
116        [43824, 43866], [43868, 43877], [43888, 44010], [44032, 55203],
117        [55216, 55238], [55243, 55291], [63744, 64109], [64112, 64217],
118        [64256, 64262], [64275, 64279], [64285, 64296], [64298, 64310],
119        [64312, 64316], [64318, 64318], [64320, 64321], [64323, 64324],
120        [64326, 64433], [64467, 64829], [64848, 64911], [64914, 64967],
121        [65008, 65019], [65136, 65140], [65142, 65276], [65313, 65338],
122        [65345, 65370], [65382, 65470], [65474, 65479], [65482, 65487],
123        [65490, 65495], [65498, 65500], [65536, 65547], [65549, 65574],
124        [65576, 65594], [65596, 65597], [65599, 65613], [65616, 65629],
125        [65664, 65786], [65856, 65908], [66176, 66204], [66208, 66256],
126        [66304, 66335], [66352, 66378], [66384, 66426], [66432, 66461],
127        [66464, 66499], [66504, 66511], [66513, 66517], [66560, 66717],
128        [66736, 66771], [66776, 66811], [66816, 66855], [66864, 66915],
129        [67072, 67382], [67392, 67413], [67424, 67431], [67584, 67589],
130        [67592, 67592], [67594, 67637], [67639, 67640], [67644, 67644],
131        [67647, 67669], [67680, 67702], [67712, 67742], [67808, 67826],
132        [67828, 67829], [67840, 67861], [67872, 67897], [67968, 68023],
133        [68030, 68031], [68096, 68099], [68101, 68102], [68108, 68115],
134        [68117, 68119], [68121, 68147], [68192, 68220], [68224, 68252],
135        [68288, 68295], [68297, 68324], [68352, 68405], [68416, 68437],
136        [68448, 68466], [68480, 68497], [68608, 68680], [68736, 68786],
137        [68800, 68850], [69632, 69701], [69762, 69816], [69840, 69864],
138        [69888, 69938], [69968, 70002], [70006, 70006], [70016, 70079],
139        [70081, 70084], [70106, 70106], [70108, 70108], [70144, 70161],
140        [70163, 70196], [70199, 70199], [70206, 70206], [70272, 70278],
141        [70280, 70280], [70282, 70285], [70287, 70301], [70303, 70312],
142        [70320, 70376], [70400, 70403], [70405, 70412], [70415, 70416],
143        [70419, 70440], [70442, 70448], [70450, 70451], [70453, 70457],
144        [70461, 70468], [70471, 70472], [70475, 70476], [70480, 70480],
145        [70487, 70487], [70493, 70499], [70656, 70721], [70723, 70725],
146        [70727, 70730], [70784, 70849], [70852, 70853], [70855, 70855],
147        [71040, 71093], [71096, 71102], [71128, 71133], [71168, 71230],
148        [71232, 71232], [71236, 71236], [71296, 71349], [71424, 71449],
149        [71453, 71466], [71840, 71903], [71935, 71935], [72384, 72440],
150        [72704, 72712], [72714, 72758], [72760, 72766], [72768, 72768],
151        [72818, 72847], [72850, 72871], [72873, 72886], [73728, 74649],
152        [74752, 74862], [74880, 75075], [77824, 78894], [82944, 83526],
153        [92160, 92728], [92736, 92766], [92880, 92909], [92928, 92982],
154        [92992, 92995], [93027, 93047], [93053, 93071], [93952, 94020],
155        [94032, 94078], [94099, 94111], [94176, 94176], [94208, 100332],
156        [100352, 101106], [110592, 110593], [113664, 113770],
157        [113776, 113788], [113792, 113800], [113808, 113817],
158        [113822, 113822], [119808, 119892], [119894, 119964],
159        [119966, 119967], [119970, 119970], [119973, 119974],
160        [119977, 119980], [119982, 119993], [119995, 119995],
161        [119997, 120003], [120005, 120069], [120071, 120074],
162        [120077, 120084], [120086, 120092], [120094, 120121],
163        [120123, 120126], [120128, 120132], [120134, 120134],
164        [120138, 120144], [120146, 120485], [120488, 120512],
165        [120514, 120538], [120540, 120570], [120572, 120596],
166        [120598, 120628], [120630, 120654], [120656, 120686],
167        [120688, 120712], [120714, 120744], [120746, 120770],
168        [120772, 120779], [122880, 122886], [122888, 122904],
169        [122907, 122913], [122915, 122916], [122918, 122922],
170        [124928, 125124], [125184, 125251], [125255, 125255],
171        [126464, 126467], [126469, 126495], [126497, 126498],
172        [126500, 126500], [126503, 126503], [126505, 126514],
173        [126516, 126519], [126521, 126521], [126523, 126523],
174        [126530, 126530], [126535, 126535], [126537, 126537],
175        [126539, 126539], [126541, 126543], [126545, 126546],
176        [126548, 126548], [126551, 126551], [126553, 126553],
177        [126555, 126555], [126557, 126557], [126559, 126559],
178        [126561, 126562], [126564, 126564], [126567, 126570],
179        [126572, 126578], [126580, 126583], [126585, 126588],
180        [126590, 126590], [126592, 126601], [126603, 126619],
181        [126625, 126627], [126629, 126633], [126635, 126651],
182        [127280, 127305], [127312, 127337], [127344, 127369],
183        [131072, 173782], [173824, 177972], [177984, 178205],
184        [178208, 183969], [194560, 195101]**/
185        const UnicodeSet codepoint_set
186            {{{Empty, 2}, {Mixed, 2}, {Empty, 1}, {Mixed, 3}, {Full, 14},
187              {Mixed, 2}, {Empty, 2}, {Mixed, 4}, {Full, 1}, {Mixed, 1},
188              {Full, 4}, {Mixed, 1}, {Full, 4}, {Mixed, 8}, {Full, 1},
189              {Mixed, 2}, {Full, 2}, {Mixed, 3}, {Full, 1}, {Mixed, 1},
190              {Full, 2}, {Mixed, 6}, {Empty, 2}, {Mixed, 3}, {Full, 1},
191              {Mixed, 22}, {Empty, 1}, {Mixed, 19}, {Empty, 1}, {Mixed, 3},
192              {Empty, 1}, {Mixed, 1}, {Empty, 1}, {Mixed, 4}, {Empty, 2},
193              {Full, 1}, {Mixed, 4}, {Full, 1}, {Mixed, 2}, {Full, 10},
194              {Mixed, 1}, {Full, 1}, {Mixed, 3}, {Full, 1}, {Mixed, 1},
195              {Full, 1}, {Mixed, 1}, {Empty, 1}, {Mixed, 1}, {Full, 2},
196              {Mixed, 2}, {Full, 18}, {Mixed, 2}, {Full, 2}, {Mixed, 5},
197              {Full, 1}, {Mixed, 2}, {Empty, 2}, {Full, 2}, {Mixed, 1},
198              {Full, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 5}, {Full, 1},
199              {Mixed, 2}, {Empty, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 2},
200              {Empty, 1}, {Mixed, 1}, {Empty, 2}, {Full, 1}, {Mixed, 2},
201              {Empty, 1}, {Full, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 1},
202              {Full, 1}, {Mixed, 4}, {Empty, 2}, {Mixed, 1}, {Full, 6},
203              {Empty, 1}, {Mixed, 1}, {Full, 8}, {Mixed, 1}, {Full, 1},
204              {Mixed, 2}, {Full, 1}, {Mixed, 3}, {Empty, 3}, {Mixed, 2},
205              {Empty, 3}, {Mixed, 3}, {Full, 1}, {Mixed, 1}, {Empty, 24},
206              {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Empty, 56}, {Full, 1},
207              {Mixed, 2}, {Full, 4}, {Mixed, 1}, {Full, 1}, {Mixed, 1},
208              {Full, 1}, {Mixed, 4}, {Full, 1}, {Empty, 1}, {Mixed, 1},
209              {Empty, 14}, {Mixed, 3}, {Full, 1}, {Mixed, 2}, {Full, 1},
210              {Mixed, 3}, {Full, 2}, {Mixed, 2}, {Empty, 1}, {Mixed, 1},
211              {Empty, 16}, {Full, 205}, {Mixed, 1}, {Empty, 2}, {Full, 654},
212              {Mixed, 1}, {Empty, 1}, {Full, 36}, {Mixed, 1}, {Empty, 1},
213              {Mixed, 2}, {Full, 8}, {Mixed, 2}, {Full, 1}, {Mixed, 1},
214              {Full, 3}, {Mixed, 3}, {Full, 2}, {Mixed, 2}, {Empty, 1},
215              {Mixed, 3}, {Full, 1}, {Mixed, 1}, {Full, 2}, {Mixed, 6},
216              {Full, 1}, {Mixed, 3}, {Full, 1}, {Mixed, 3}, {Full, 1},
217              {Mixed, 7}, {Full, 3}, {Mixed, 1}, {Full, 349}, {Mixed, 3},
218              {Empty, 264}, {Full, 11}, {Mixed, 1}, {Full, 2}, {Mixed, 1},
219              {Empty, 1}, {Mixed, 3}, {Full, 2}, {Mixed, 2}, {Full, 10},
220              {Mixed, 2}, {Full, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 2},
221              {Empty, 3}, {Mixed, 1}, {Full, 3}, {Mixed, 1}, {Empty, 1},
222              {Mixed, 3}, {Full, 1}, {Mixed, 2}, {Empty, 1}, {Mixed, 3},
223              {Empty, 1}, {Full, 3}, {Mixed, 1}, {Empty, 2}, {Full, 1},
224              {Mixed, 1}, {Empty, 8}, {Mixed, 1}, {Full, 1}, {Mixed, 1},
225              {Empty, 1}, {Full, 1}, {Mixed, 4}, {Full, 1}, {Mixed, 1},
226              {Empty, 1}, {Full, 4}, {Mixed, 4}, {Full, 1}, {Mixed, 1},
227              {Full, 1}, {Mixed, 1}, {Empty, 4}, {Full, 9}, {Mixed, 3},
228              {Empty, 4}, {Mixed, 5}, {Empty, 2}, {Mixed, 3}, {Empty, 2},
229              {Full, 1}, {Mixed, 1}, {Empty, 2}, {Mixed, 2}, {Empty, 1},
230              {Mixed, 2}, {Empty, 1}, {Mixed, 2}, {Full, 1}, {Mixed, 4},
231              {Empty, 3}, {Full, 2}, {Mixed, 1}, {Empty, 1}, {Full, 1},
232              {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Empty, 24}, {Full, 2},
233              {Mixed, 1}, {Empty, 1}, {Mixed, 4}, {Full, 1}, {Mixed, 3},
234              {Full, 2}, {Mixed, 1}, {Empty, 1}, {Mixed, 2}, {Empty, 2},
235              {Mixed, 2}, {Full, 1}, {Mixed, 5}, {Empty, 4}, {Full, 2},
236              {Mixed, 1}, {Empty, 1}, {Full, 2}, {Mixed, 1}, {Empty, 5},
237              {Full, 1}, {Mixed, 2}, {Empty, 1}, {Full, 1}, {Mixed, 2},
238              {Empty, 1}, {Full, 1}, {Mixed, 1}, {Empty, 2}, {Mixed, 2},
239              {Empty, 11}, {Full, 2}, {Mixed, 1}, {Empty, 14}, {Full, 1},
240              {Mixed, 1}, {Empty, 8}, {Mixed, 6}, {Empty, 26}, {Full, 28},
241              {Mixed, 1}, {Empty, 3}, {Full, 3}, {Mixed, 1}, {Full, 6},
242              {Mixed, 1}, {Empty, 85}, {Full, 33}, {Mixed, 1}, {Empty, 126},
243              {Full, 18}, {Mixed, 1}, {Empty, 269}, {Full, 17}, {Mixed, 2},
244              {Empty, 3}, {Mixed, 2}, {Full, 1}, {Mixed, 4}, {Empty, 27},
245              {Full, 2}, {Mixed, 3}, {Empty, 2}, {Mixed, 1}, {Full, 191},
246              {Mixed, 1}, {Full, 23}, {Mixed, 1}, {Empty, 296}, {Mixed, 1},
247              {Empty, 95}, {Full, 3}, {Mixed, 2}, {Empty, 187}, {Full, 2},
248              {Mixed, 1}, {Full, 1}, {Mixed, 3}, {Full, 1}, {Mixed, 3},
249              {Full, 10}, {Mixed, 10}, {Empty, 65}, {Mixed, 2}, {Empty, 62},
250              {Full, 6}, {Mixed, 1}, {Empty, 1}, {Full, 2}, {Mixed, 1},
251              {Empty, 37}, {Mixed, 6}, {Empty, 19}, {Mixed, 4},
252              {Empty, 115}, {Full, 1334}, {Mixed, 1}, {Empty, 1},
253              {Full, 129}, {Mixed, 1}, {Full, 6}, {Mixed, 1}, {Full, 180},
254              {Mixed, 1}, {Empty, 330}, {Full, 16}, {Mixed, 1},
255              {Empty, 28719}},
256             {0x07fffffe, 0x07fffffe, 0x04200400, 0xff7fffff, 0xff7fffff,
257              0x0003ffc3, 0x0000501f, 0x00000020, 0xbcdf0000, 0xffffd740,
258              0xfffffffb, 0xffbfffff, 0xfffffc03, 0xfffeffff, 0x027fffff,
259              0xfffffffe, 0x000000ff, 0xbfff0000, 0xffff00b6, 0x000707ff,
260              0x07ff0000, 0xfeffffff, 0xffffc000, 0x1fefffff, 0x9c00e1fe,
261              0xffff0000, 0xffffe000, 0x0003ffff, 0xfffffc00, 0x043007ff,
262              0xfcffffff, 0x00001fff, 0x01ffffff, 0x3fdfffff, 0xfff00000,
263              0xffff03f8, 0xefffffff, 0xffe1dfff, 0xfffe000f, 0xfff99fef,
264              0xe3c5fdff, 0xb080599f, 0x0003000f, 0xfff987ee, 0xc36dfdff,
265              0x5e021987, 0x003f0000, 0xfffbbfee, 0xe3edfdff, 0x00011bbf,
266              0x0200000f, 0xfff99fee, 0xe3edfdff, 0xb0c0199f, 0x0002000f,
267              0xd63dc7ec, 0xc3ffc718, 0x00811dc7, 0xfffddfef, 0xe3fffdff,
268              0x07601ddf, 0x0000000f, 0xfffddfef, 0xe3effdff, 0x40601ddf,
269              0x0006000f, 0xfffddfee, 0xe7ffffff, 0x80f05ddf, 0xfc00000f,
270              0xfc7fffec, 0x2ffbffff, 0xff5f807f, 0x000c0000, 0xfffffffe,
271              0x07ffffff, 0x0000207f, 0xfef02596, 0x3bffecae, 0xf000205f,
272              0x00000001, 0xfffffeff, 0xfffe1fff, 0xfeffff03, 0x1fffffff,
273              0xf97fffff, 0xffff0000, 0xffffc1e7, 0x3000407f, 0xffff20bf,
274              0xf7ffffff, 0x3d7f3dff, 0xffff3dff, 0x7f3dffff, 0xff7fff3d,
275              0xff3dffff, 0x87ffffff, 0x0000ffff, 0x3f3fffff, 0xfffffffe,
276              0xffff9fff, 0x07fffffe, 0x01ffc7ff, 0x000fdfff, 0x000fffff,
277              0x000fffff, 0x000ddfff, 0xffcfffff, 0x108001ff, 0x00ffffff,
278              0xffff07ff, 0x003fffff, 0x7fffffff, 0x01ff0fff, 0xffff0000,
279              0x001f3fff, 0xffff0fff, 0x000003ff, 0x0fffffff, 0x7fffffff,
280              0x001ffffe, 0x00000080, 0xffefffff, 0x00000fef, 0xfc00f3ff,
281              0x0003ffbf, 0x003fffff, 0xfc00e000, 0x3fffffff, 0x000001ff,
282              0x006fde00, 0x001fff80, 0x3f3fffff, 0xaaff3f3f, 0x3fffffff,
283              0x5fdfffff, 0x0fcf1fdc, 0x1fdc1fff, 0x80020000, 0x1fff0000,
284              0x3e2ffc84, 0xf3ffbd50, 0x000043e0, 0x000001ff, 0xffc00000,
285              0x000003ff, 0xffff7fff, 0x7fffffff, 0x000c781f, 0xffff20bf,
286              0x000080ff, 0x007fffff, 0x7f7f7f7f, 0x7f7f7f7f, 0x00008000,
287              0x000000e0, 0x1f3e03fe, 0xfffffffe, 0xe07fffff, 0xfffffffe,
288              0xf7ffffff, 0xffffffe0, 0xfffe3fff, 0x00007fff, 0x07ffffff,
289              0xffff0000, 0x003fffff, 0x003fffff, 0x00001fff, 0xffff0000,
290              0x3fffffff, 0xffff1fff, 0x00000c00, 0x8ff07fff, 0x0000ffff,
291              0xff800000, 0xfffffffc, 0xfffff9ff, 0x00ff7fff, 0xff800000,
292              0xfffff7bb, 0x000000ff, 0x000fffff, 0x0000002f, 0x28fc0000,
293              0xfffffc00, 0xffff07ff, 0x0007ffff, 0x1fffffff, 0xfff7ffff,
294              0x00008000, 0x7c00ffdf, 0x007fffff, 0x00003fff, 0xc47fffff,
295              0x7fffffff, 0x38000005, 0x003cffff, 0x007e7e7e, 0xffff7f7f,
296              0xf7ffffff, 0xffff003f, 0x000007ff, 0xffff000f, 0xfffff87f,
297              0x0fffffff, 0xffff3fff, 0x03ffffff, 0xe0f8007f, 0x5f7ffdff,
298              0xffffffdb, 0x0003ffff, 0xfff80000, 0x3fffffff, 0xffff0000,
299              0xfffcffff, 0x000000ff, 0x0fff0000, 0xffdf0000, 0x1fffffff,
300              0x07fffffe, 0x07fffffe, 0xffffffc0, 0x7fffffff, 0x1cfcfcfc,
301              0xffffefff, 0xb7ffff7f, 0x3fff3fff, 0x07ffffff, 0x001fffff,
302              0x1fffffff, 0x0001ffff, 0xffff0000, 0xffff07ff, 0x07ffffff,
303              0x3fffffff, 0x003eff0f, 0x3fffffff, 0xffff0000, 0xff0fffff,
304              0x0fffffff, 0xffff00ff, 0x0000000f, 0x007fffff, 0x003fffff,
305              0x000000ff, 0xfffffd3f, 0x91bfffff, 0x003fffff, 0x007fffff,
306              0x7fffffff, 0x0037ffff, 0x003fffff, 0x03ffffff, 0xc0ffffff,
307              0xfeeff06f, 0x000fffff, 0x1fffffff, 0x1fffffff, 0xfffffeff,
308              0x0000001f, 0x003fffff, 0x003fffff, 0x0007ffff, 0x0003ffff,
309              0x000001ff, 0x0007ffff, 0x0007ffff, 0x0000003f, 0xfffffffc,
310              0x01ffffff, 0xffff0000, 0x000001ff, 0x0007ffff, 0xffff0000,
311              0x0047ffff, 0x1400001e, 0xfffbffff, 0x409fffff, 0xbfffbd7f,
312              0xffff01ff, 0x000001ff, 0xfff99fef, 0xe3edfdff, 0xe081199f,
313              0x0000000f, 0x000007bb, 0x000000b3, 0x7f3fffff, 0x3f000000,
314              0x7fffffff, 0x00000011, 0x003fffff, 0xe3ffffff, 0x000007ff,
315              0x80000000, 0x01ffffff, 0xfffffdff, 0x7f7fffff, 0x00000001,
316              0xfffc0000, 0xfffcffff, 0x007ffeff, 0x03ffffff, 0x00007fff,
317              0x0000000f, 0x00007fff, 0x0000007f, 0x01ffffff, 0x7fffffff,
318              0xffff0000, 0x00003fff, 0x007fffff, 0x0000000f, 0xe0fffff8,
319              0x0000ffff, 0xffff001f, 0x7fffffff, 0xfff80000, 0x00000001,
320              0x00001fff, 0x0007ffff, 0x00000003, 0x1fff07ff, 0x43ff01ff,
321              0xffdfffff, 0xdfffffff, 0xebffde64, 0xffffffef, 0xdfdfe7bf,
322              0x7bffffff, 0xfffdfc5f, 0xffffff3f, 0xf7fffffd, 0xf7ffffff,
323              0xffdfffff, 0xffdfffff, 0xffff7fff, 0xffff7fff, 0xfffffdff,
324              0xfffffdff, 0x00000ff7, 0xf9ffff7f, 0x000007db, 0x0000001f,
325              0x0000008f, 0xffffffef, 0x0af7fe96, 0xaa96ea84, 0x5ef7f796,
326              0x0ffffbff, 0x0ffffbee, 0xffff0000, 0xffff03ff, 0xffff03ff,
327              0x000003ff, 0x007fffff, 0x001fffff, 0x3fffffff, 0x00000003,
328              0x3fffffff}};
329        static BinaryPropertyObject property_object{Alpha, codepoint_set};
330    }
331    namespace CI_ns {
332        /** Code Point Ranges for CI
333        [39, 39], [46, 46], [58, 58], [94, 94], [96, 96], [168, 168],
334        [173, 173], [175, 175], [180, 180], [183, 184], [688, 879],
335        [884, 885], [890, 890], [900, 901], [903, 903], [1155, 1161],
336        [1369, 1369], [1425, 1469], [1471, 1471], [1473, 1474],
337        [1476, 1477], [1479, 1479], [1524, 1524], [1536, 1541],
338        [1552, 1562], [1564, 1564], [1600, 1600], [1611, 1631],
339        [1648, 1648], [1750, 1757], [1759, 1768], [1770, 1773],
340        [1807, 1807], [1809, 1809], [1840, 1866], [1958, 1968],
341        [2027, 2037], [2042, 2042], [2070, 2093], [2137, 2139],
342        [2260, 2306], [2362, 2362], [2364, 2364], [2369, 2376],
343        [2381, 2381], [2385, 2391], [2402, 2403], [2417, 2417],
344        [2433, 2433], [2492, 2492], [2497, 2500], [2509, 2509],
345        [2530, 2531], [2561, 2562], [2620, 2620], [2625, 2626],
346        [2631, 2632], [2635, 2637], [2641, 2641], [2672, 2673],
347        [2677, 2677], [2689, 2690], [2748, 2748], [2753, 2757],
348        [2759, 2760], [2765, 2765], [2786, 2787], [2817, 2817],
349        [2876, 2876], [2879, 2879], [2881, 2884], [2893, 2893],
350        [2902, 2902], [2914, 2915], [2946, 2946], [3008, 3008],
351        [3021, 3021], [3072, 3072], [3134, 3136], [3142, 3144],
352        [3146, 3149], [3157, 3158], [3170, 3171], [3201, 3201],
353        [3260, 3260], [3263, 3263], [3270, 3270], [3276, 3277],
354        [3298, 3299], [3329, 3329], [3393, 3396], [3405, 3405],
355        [3426, 3427], [3530, 3530], [3538, 3540], [3542, 3542],
356        [3633, 3633], [3636, 3642], [3654, 3662], [3761, 3761],
357        [3764, 3769], [3771, 3772], [3782, 3782], [3784, 3789],
358        [3864, 3865], [3893, 3893], [3895, 3895], [3897, 3897],
359        [3953, 3966], [3968, 3972], [3974, 3975], [3981, 3991],
360        [3993, 4028], [4038, 4038], [4141, 4144], [4146, 4151],
361        [4153, 4154], [4157, 4158], [4184, 4185], [4190, 4192],
362        [4209, 4212], [4226, 4226], [4229, 4230], [4237, 4237],
363        [4253, 4253], [4348, 4348], [4957, 4959], [5906, 5908],
364        [5938, 5940], [5970, 5971], [6002, 6003], [6068, 6069],
365        [6071, 6077], [6086, 6086], [6089, 6099], [6103, 6103],
366        [6109, 6109], [6155, 6158], [6211, 6211], [6277, 6278],
367        [6313, 6313], [6432, 6434], [6439, 6440], [6450, 6450],
368        [6457, 6459], [6679, 6680], [6683, 6683], [6742, 6742],
369        [6744, 6750], [6752, 6752], [6754, 6754], [6757, 6764],
370        [6771, 6780], [6783, 6783], [6823, 6823], [6832, 6846],
371        [6912, 6915], [6964, 6964], [6966, 6970], [6972, 6972],
372        [6978, 6978], [7019, 7027], [7040, 7041], [7074, 7077],
373        [7080, 7081], [7083, 7085], [7142, 7142], [7144, 7145],
374        [7149, 7149], [7151, 7153], [7212, 7219], [7222, 7223],
375        [7288, 7293], [7376, 7378], [7380, 7392], [7394, 7400],
376        [7405, 7405], [7412, 7412], [7416, 7417], [7468, 7530],
377        [7544, 7544], [7579, 7669], [7675, 7679], [8125, 8125],
378        [8127, 8129], [8141, 8143], [8157, 8159], [8173, 8175],
379        [8189, 8190], [8203, 8207], [8216, 8217], [8228, 8228],
380        [8231, 8231], [8234, 8238], [8288, 8292], [8294, 8303],
381        [8305, 8305], [8319, 8319], [8336, 8348], [8400, 8432],
382        [11388, 11389], [11503, 11505], [11631, 11631], [11647, 11647],
383        [11744, 11775], [11823, 11823], [12293, 12293], [12330, 12333],
384        [12337, 12341], [12347, 12347], [12441, 12446], [12540, 12542],
385        [40981, 40981], [42232, 42237], [42508, 42508], [42607, 42610],
386        [42612, 42621], [42623, 42623], [42652, 42655], [42736, 42737],
387        [42752, 42785], [42864, 42864], [42888, 42890], [43000, 43001],
388        [43010, 43010], [43014, 43014], [43019, 43019], [43045, 43046],
389        [43204, 43205], [43232, 43249], [43302, 43309], [43335, 43345],
390        [43392, 43394], [43443, 43443], [43446, 43449], [43452, 43452],
391        [43471, 43471], [43493, 43494], [43561, 43566], [43569, 43570],
392        [43573, 43574], [43587, 43587], [43596, 43596], [43632, 43632],
393        [43644, 43644], [43696, 43696], [43698, 43700], [43703, 43704],
394        [43710, 43711], [43713, 43713], [43741, 43741], [43756, 43757],
395        [43763, 43764], [43766, 43766], [43867, 43871], [44005, 44005],
396        [44008, 44008], [44013, 44013], [64286, 64286], [64434, 64449],
397        [65024, 65039], [65043, 65043], [65056, 65071], [65106, 65106],
398        [65109, 65109], [65279, 65279], [65287, 65287], [65294, 65294],
399        [65306, 65306], [65342, 65342], [65344, 65344], [65392, 65392],
400        [65438, 65439], [65507, 65507], [65529, 65531], [66045, 66045],
401        [66272, 66272], [66422, 66426], [68097, 68099], [68101, 68102],
402        [68108, 68111], [68152, 68154], [68159, 68159], [68325, 68326],
403        [69633, 69633], [69688, 69702], [69759, 69761], [69811, 69814],
404        [69817, 69818], [69821, 69821], [69888, 69890], [69927, 69931],
405        [69933, 69940], [70003, 70003], [70016, 70017], [70070, 70078],
406        [70090, 70092], [70191, 70193], [70196, 70196], [70198, 70199],
407        [70206, 70206], [70367, 70367], [70371, 70378], [70400, 70401],
408        [70460, 70460], [70464, 70464], [70502, 70508], [70512, 70516],
409        [70712, 70719], [70722, 70724], [70726, 70726], [70835, 70840],
410        [70842, 70842], [70847, 70848], [70850, 70851], [71090, 71093],
411        [71100, 71101], [71103, 71104], [71132, 71133], [71219, 71226],
412        [71229, 71229], [71231, 71232], [71339, 71339], [71341, 71341],
413        [71344, 71349], [71351, 71351], [71453, 71455], [71458, 71461],
414        [71463, 71467], [72752, 72758], [72760, 72765], [72767, 72767],
415        [72850, 72871], [72874, 72880], [72882, 72883], [72885, 72886],
416        [92912, 92916], [92976, 92982], [92992, 92995], [94095, 94111],
417        [94176, 94176], [113821, 113822], [113824, 113827],
418        [119143, 119145], [119155, 119170], [119173, 119179],
419        [119210, 119213], [119362, 119364], [121344, 121398],
420        [121403, 121452], [121461, 121461], [121476, 121476],
421        [121499, 121503], [121505, 121519], [122880, 122886],
422        [122888, 122904], [122907, 122913], [122915, 122916],
423        [122918, 122922], [125136, 125142], [125252, 125258],
424        [127995, 127999], [917505, 917505], [917536, 917631],
425        [917760, 917999]**/
426        const UnicodeSet codepoint_set
427            {{{Empty, 1}, {Mixed, 3}, {Empty, 1}, {Mixed, 1}, {Empty, 15},
428              {Mixed, 1}, {Full, 5}, {Mixed, 2}, {Empty, 7}, {Mixed, 1},
429              {Empty, 5}, {Mixed, 1}, {Empty, 1}, {Mixed, 5}, {Empty, 1},
430              {Mixed, 2}, {Empty, 2}, {Mixed, 5}, {Empty, 2}, {Mixed, 1},
431              {Empty, 1}, {Mixed, 4}, {Empty, 3}, {Mixed, 1}, {Full, 1},
432              {Mixed, 21}, {Empty, 1}, {Mixed, 1}, {Empty, 1}, {Mixed, 9},
433              {Empty, 1}, {Mixed, 2}, {Empty, 2}, {Mixed, 1}, {Empty, 2},
434              {Mixed, 2}, {Empty, 2}, {Mixed, 2}, {Empty, 1}, {Mixed, 2},
435              {Empty, 1}, {Mixed, 4}, {Empty, 2}, {Mixed, 4}, {Empty, 2},
436              {Mixed, 1}, {Empty, 18}, {Mixed, 1}, {Empty, 29}, {Mixed, 4},
437              {Empty, 1}, {Mixed, 2}, {Empty, 1}, {Mixed, 1}, {Empty, 1},
438              {Mixed, 1}, {Empty, 1}, {Mixed, 2}, {Empty, 3}, {Mixed, 1},
439              {Empty, 6}, {Mixed, 1}, {Empty, 1}, {Mixed, 2}, {Empty, 1},
440              {Mixed, 1}, {Empty, 2}, {Mixed, 6}, {Empty, 1}, {Mixed, 1},
441              {Empty, 1}, {Mixed, 1}, {Empty, 1}, {Mixed, 1}, {Empty, 2},
442              {Mixed, 2}, {Empty, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 2},
443              {Full, 2}, {Mixed, 1}, {Empty, 13}, {Mixed, 5}, {Empty, 1},
444              {Mixed, 2}, {Empty, 1}, {Mixed, 2}, {Empty, 91}, {Mixed, 1},
445              {Empty, 3}, {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Empty, 3},
446              {Full, 1}, {Empty, 1}, {Mixed, 1}, {Empty, 14}, {Mixed, 2},
447              {Empty, 2}, {Mixed, 1}, {Empty, 2}, {Mixed, 1}, {Empty, 888},
448              {Mixed, 1}, {Empty, 38}, {Mixed, 1}, {Empty, 8}, {Mixed, 1},
449              {Empty, 2}, {Mixed, 2}, {Empty, 2}, {Mixed, 1}, {Full, 1},
450              {Mixed, 1}, {Empty, 1}, {Mixed, 2}, {Empty, 2}, {Mixed, 3},
451              {Empty, 4}, {Mixed, 2}, {Empty, 1}, {Mixed, 2}, {Empty, 1},
452              {Mixed, 4}, {Empty, 1}, {Mixed, 3}, {Empty, 1}, {Mixed, 3},
453              {Empty, 2}, {Mixed, 1}, {Empty, 4}, {Mixed, 1}, {Empty, 632},
454              {Mixed, 1}, {Empty, 4}, {Mixed, 2}, {Empty, 17}, {Mixed, 3},
455              {Empty, 4}, {Mixed, 6}, {Empty, 2}, {Mixed, 1}, {Empty, 15},
456              {Mixed, 1}, {Empty, 7}, {Mixed, 1}, {Empty, 3}, {Mixed, 1},
457              {Empty, 52}, {Mixed, 2}, {Empty, 5}, {Mixed, 1}, {Empty, 40},
458              {Mixed, 6}, {Empty, 2}, {Mixed, 2}, {Empty, 1}, {Mixed, 4},
459              {Empty, 2}, {Mixed, 1}, {Empty, 4}, {Mixed, 6}, {Empty, 5},
460              {Mixed, 2}, {Empty, 2}, {Mixed, 2}, {Empty, 6}, {Mixed, 2},
461              {Empty, 2}, {Mixed, 2}, {Empty, 2}, {Mixed, 1}, {Empty, 2},
462              {Mixed, 2}, {Empty, 39}, {Mixed, 1}, {Empty, 2}, {Mixed, 2},
463              {Empty, 625}, {Mixed, 1}, {Empty, 1}, {Mixed, 2}, {Empty, 33},
464              {Mixed, 1}, {Empty, 2}, {Mixed, 1}, {Empty, 612}, {Mixed, 2},
465              {Empty, 165}, {Mixed, 3}, {Empty, 4}, {Mixed, 1}, {Empty, 61},
466              {Full, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 3}, {Empty, 42},
467              {Mixed, 2}, {Empty, 68}, {Mixed, 1}, {Empty, 3}, {Mixed, 1},
468              {Empty, 84}, {Mixed, 1}, {Empty, 24672}, {Mixed, 1},
469              {Full, 3}, {Empty, 4}, {Full, 7}, {Mixed, 1}, {Empty, 6128}},
470             {0x04004080, 0x40000000, 0x00000001, 0x0190a100, 0xffff0000,
471              0x0430ffff, 0x000000b0, 0x000003f8, 0x02000000, 0xfffe0000,
472              0xbfffffff, 0x000000b6, 0x00100000, 0x17ff003f, 0xfffff801,
473              0x00010000, 0xbfc00000, 0x00003dff, 0x00028000, 0xffff0000,
474              0x000007ff, 0x0001ffc0, 0x043ff800, 0xffc00000, 0x00003fff,
475              0x0e000000, 0xfff00000, 0x00000007, 0x14000000, 0x00fe21fe,
476              0x0002000c, 0x00000002, 0x10000000, 0x0000201e, 0x0000000c,
477              0x00000006, 0x10000000, 0x00023986, 0x00230000, 0x00000006,
478              0x10000000, 0x000021be, 0x0000000c, 0x00000002, 0x90000000,
479              0x0040201e, 0x0000000c, 0x00000004, 0x00002001, 0x00000001,
480              0xc0000000, 0x00603dc1, 0x0000000c, 0x00000002, 0x90000000,
481              0x00003040, 0x0000000c, 0x00000002, 0x0000201e, 0x0000000c,
482              0x005c0400, 0x07f20000, 0x00007fc0, 0x1bf20000, 0x00003f40,
483              0x03000000, 0x02a00000, 0x7ffe0000, 0xfeffe0df, 0x1fffffff,
484              0x00000040, 0x66fde000, 0xc3000000, 0x001e0001, 0x20002064,
485              0x10000000, 0xe0000000, 0x001c0000, 0x001c0000, 0x000c0000,
486              0x000c0000, 0x3fb00000, 0x208ffe40, 0x00007800, 0x00000008,
487              0x00000060, 0x00000200, 0x0e040187, 0x09800000, 0x7f400000,
488              0x9ff81fe5, 0x7fff0080, 0x0000000f, 0x17d00000, 0x00000004,
489              0x000ff800, 0x00000003, 0x00003b3c, 0x0003a340, 0x00cff000,
490              0x3f000000, 0xfff70000, 0x031021fd, 0xfffff000, 0x010007ff,
491              0xf8000000, 0xf83fffff, 0xa0000000, 0xe000e003, 0x6000e000,
492              0x0300f800, 0x00007c90, 0x8002ffdf, 0x1fff0000, 0xffff0000,
493              0x0001ffff, 0x30000000, 0x00038000, 0x80008000, 0x00008000,
494              0x00000020, 0x083e3c00, 0x7e000000, 0x70000000, 0x00200000,
495              0x3f000000, 0x00001000, 0xbff78000, 0xf0000000, 0x00030000,
496              0x00000003, 0x00010000, 0x00000700, 0x03000000, 0x00000844,
497              0x00000060, 0x00000030, 0x0003ffff, 0x00003fc0, 0x0003ff80,
498              0x00000007, 0x13c80000, 0x00008000, 0x00000060, 0x00667e00,
499              0x00001008, 0x10010000, 0xc19d0000, 0x20000002, 0x00583000,
500              0xf8000000, 0x00002120, 0x40000000, 0xfffc0000, 0x00000003,
501              0x0008ffff, 0x0000ffff, 0x00240000, 0x80000000, 0x04004080,
502              0x40000000, 0x00000001, 0x00010000, 0xc0000000, 0x0e000008,
503              0x20000000, 0x00000001, 0x07c00000, 0x0000f06e, 0x87000000,
504              0x00000060, 0x00000002, 0xff000000, 0x0000007f, 0x80000000,
505              0x00000003, 0x26780000, 0x00000007, 0x001fef80, 0x00080000,
506              0x00000003, 0x7fc00000, 0x00001c00, 0x40d38000, 0x80000000,
507              0x000007f8, 0x00000003, 0x10000000, 0x00000001, 0x001f1fc0,
508              0xff000000, 0x0000005c, 0x85f80000, 0x0000000d, 0xb03c0000,
509              0x30000001, 0xa7f80000, 0x00000001, 0x00bf2800, 0xe0000000,
510              0x00000fbc, 0xbf7f0000, 0xfffc0000, 0x006dfcff, 0x001f0000,
511              0x007f0000, 0x0000000f, 0xffff8000, 0x00000001, 0x60000000,
512              0x0000000f, 0xfff80380, 0x00000fe7, 0x00003c00, 0x0000001c,
513              0xf87fffff, 0x00201fff, 0xf8000010, 0x0000fffe, 0xf9ffff7f,
514              0x000007db, 0x007f0000, 0x000007f0, 0xf8000000, 0x00000002,
515              0x0000ffff}};
516        static BinaryPropertyObject property_object{CI, codepoint_set};
517    }
518    namespace CWCF_ns {
519        /** Code Point Ranges for CWCF
520        [65, 90], [181, 181], [192, 214], [216, 223], [256, 256],
521        [258, 258], [260, 260], [262, 262], [264, 264], [266, 266],
522        [268, 268], [270, 270], [272, 272], [274, 274], [276, 276],
523        [278, 278], [280, 280], [282, 282], [284, 284], [286, 286],
524        [288, 288], [290, 290], [292, 292], [294, 294], [296, 296],
525        [298, 298], [300, 300], [302, 302], [304, 304], [306, 306],
526        [308, 308], [310, 310], [313, 313], [315, 315], [317, 317],
527        [319, 319], [321, 321], [323, 323], [325, 325], [327, 327],
528        [329, 330], [332, 332], [334, 334], [336, 336], [338, 338],
529        [340, 340], [342, 342], [344, 344], [346, 346], [348, 348],
530        [350, 350], [352, 352], [354, 354], [356, 356], [358, 358],
531        [360, 360], [362, 362], [364, 364], [366, 366], [368, 368],
532        [370, 370], [372, 372], [374, 374], [376, 377], [379, 379],
533        [381, 381], [383, 383], [385, 386], [388, 388], [390, 391],
534        [393, 395], [398, 401], [403, 404], [406, 408], [412, 413],
535        [415, 416], [418, 418], [420, 420], [422, 423], [425, 425],
536        [428, 428], [430, 431], [433, 435], [437, 437], [439, 440],
537        [444, 444], [452, 453], [455, 456], [458, 459], [461, 461],
538        [463, 463], [465, 465], [467, 467], [469, 469], [471, 471],
539        [473, 473], [475, 475], [478, 478], [480, 480], [482, 482],
540        [484, 484], [486, 486], [488, 488], [490, 490], [492, 492],
541        [494, 494], [497, 498], [500, 500], [502, 504], [506, 506],
542        [508, 508], [510, 510], [512, 512], [514, 514], [516, 516],
543        [518, 518], [520, 520], [522, 522], [524, 524], [526, 526],
544        [528, 528], [530, 530], [532, 532], [534, 534], [536, 536],
545        [538, 538], [540, 540], [542, 542], [544, 544], [546, 546],
546        [548, 548], [550, 550], [552, 552], [554, 554], [556, 556],
547        [558, 558], [560, 560], [562, 562], [570, 571], [573, 574],
548        [577, 577], [579, 582], [584, 584], [586, 586], [588, 588],
549        [590, 590], [837, 837], [880, 880], [882, 882], [886, 886],
550        [895, 895], [902, 902], [904, 906], [908, 908], [910, 911],
551        [913, 929], [931, 939], [962, 962], [975, 977], [981, 982],
552        [984, 984], [986, 986], [988, 988], [990, 990], [992, 992],
553        [994, 994], [996, 996], [998, 998], [1000, 1000], [1002, 1002],
554        [1004, 1004], [1006, 1006], [1008, 1009], [1012, 1013],
555        [1015, 1015], [1017, 1018], [1021, 1071], [1120, 1120],
556        [1122, 1122], [1124, 1124], [1126, 1126], [1128, 1128],
557        [1130, 1130], [1132, 1132], [1134, 1134], [1136, 1136],
558        [1138, 1138], [1140, 1140], [1142, 1142], [1144, 1144],
559        [1146, 1146], [1148, 1148], [1150, 1150], [1152, 1152],
560        [1162, 1162], [1164, 1164], [1166, 1166], [1168, 1168],
561        [1170, 1170], [1172, 1172], [1174, 1174], [1176, 1176],
562        [1178, 1178], [1180, 1180], [1182, 1182], [1184, 1184],
563        [1186, 1186], [1188, 1188], [1190, 1190], [1192, 1192],
564        [1194, 1194], [1196, 1196], [1198, 1198], [1200, 1200],
565        [1202, 1202], [1204, 1204], [1206, 1206], [1208, 1208],
566        [1210, 1210], [1212, 1212], [1214, 1214], [1216, 1217],
567        [1219, 1219], [1221, 1221], [1223, 1223], [1225, 1225],
568        [1227, 1227], [1229, 1229], [1232, 1232], [1234, 1234],
569        [1236, 1236], [1238, 1238], [1240, 1240], [1242, 1242],
570        [1244, 1244], [1246, 1246], [1248, 1248], [1250, 1250],
571        [1252, 1252], [1254, 1254], [1256, 1256], [1258, 1258],
572        [1260, 1260], [1262, 1262], [1264, 1264], [1266, 1266],
573        [1268, 1268], [1270, 1270], [1272, 1272], [1274, 1274],
574        [1276, 1276], [1278, 1278], [1280, 1280], [1282, 1282],
575        [1284, 1284], [1286, 1286], [1288, 1288], [1290, 1290],
576        [1292, 1292], [1294, 1294], [1296, 1296], [1298, 1298],
577        [1300, 1300], [1302, 1302], [1304, 1304], [1306, 1306],
578        [1308, 1308], [1310, 1310], [1312, 1312], [1314, 1314],
579        [1316, 1316], [1318, 1318], [1320, 1320], [1322, 1322],
580        [1324, 1324], [1326, 1326], [1329, 1366], [1415, 1415],
581        [4256, 4293], [4295, 4295], [4301, 4301], [5112, 5117],
582        [7296, 7304], [7680, 7680], [7682, 7682], [7684, 7684],
583        [7686, 7686], [7688, 7688], [7690, 7690], [7692, 7692],
584        [7694, 7694], [7696, 7696], [7698, 7698], [7700, 7700],
585        [7702, 7702], [7704, 7704], [7706, 7706], [7708, 7708],
586        [7710, 7710], [7712, 7712], [7714, 7714], [7716, 7716],
587        [7718, 7718], [7720, 7720], [7722, 7722], [7724, 7724],
588        [7726, 7726], [7728, 7728], [7730, 7730], [7732, 7732],
589        [7734, 7734], [7736, 7736], [7738, 7738], [7740, 7740],
590        [7742, 7742], [7744, 7744], [7746, 7746], [7748, 7748],
591        [7750, 7750], [7752, 7752], [7754, 7754], [7756, 7756],
592        [7758, 7758], [7760, 7760], [7762, 7762], [7764, 7764],
593        [7766, 7766], [7768, 7768], [7770, 7770], [7772, 7772],
594        [7774, 7774], [7776, 7776], [7778, 7778], [7780, 7780],
595        [7782, 7782], [7784, 7784], [7786, 7786], [7788, 7788],
596        [7790, 7790], [7792, 7792], [7794, 7794], [7796, 7796],
597        [7798, 7798], [7800, 7800], [7802, 7802], [7804, 7804],
598        [7806, 7806], [7808, 7808], [7810, 7810], [7812, 7812],
599        [7814, 7814], [7816, 7816], [7818, 7818], [7820, 7820],
600        [7822, 7822], [7824, 7824], [7826, 7826], [7828, 7828],
601        [7834, 7835], [7838, 7838], [7840, 7840], [7842, 7842],
602        [7844, 7844], [7846, 7846], [7848, 7848], [7850, 7850],
603        [7852, 7852], [7854, 7854], [7856, 7856], [7858, 7858],
604        [7860, 7860], [7862, 7862], [7864, 7864], [7866, 7866],
605        [7868, 7868], [7870, 7870], [7872, 7872], [7874, 7874],
606        [7876, 7876], [7878, 7878], [7880, 7880], [7882, 7882],
607        [7884, 7884], [7886, 7886], [7888, 7888], [7890, 7890],
608        [7892, 7892], [7894, 7894], [7896, 7896], [7898, 7898],
609        [7900, 7900], [7902, 7902], [7904, 7904], [7906, 7906],
610        [7908, 7908], [7910, 7910], [7912, 7912], [7914, 7914],
611        [7916, 7916], [7918, 7918], [7920, 7920], [7922, 7922],
612        [7924, 7924], [7926, 7926], [7928, 7928], [7930, 7930],
613        [7932, 7932], [7934, 7934], [7944, 7951], [7960, 7965],
614        [7976, 7983], [7992, 7999], [8008, 8013], [8025, 8025],
615        [8027, 8027], [8029, 8029], [8031, 8031], [8040, 8047],
616        [8064, 8111], [8114, 8116], [8119, 8124], [8130, 8132],
617        [8135, 8140], [8152, 8155], [8168, 8172], [8178, 8180],
618        [8183, 8188], [8486, 8486], [8490, 8491], [8498, 8498],
619        [8544, 8559], [8579, 8579], [9398, 9423], [11264, 11310],
620        [11360, 11360], [11362, 11364], [11367, 11367], [11369, 11369],
621        [11371, 11371], [11373, 11376], [11378, 11378], [11381, 11381],
622        [11390, 11392], [11394, 11394], [11396, 11396], [11398, 11398],
623        [11400, 11400], [11402, 11402], [11404, 11404], [11406, 11406],
624        [11408, 11408], [11410, 11410], [11412, 11412], [11414, 11414],
625        [11416, 11416], [11418, 11418], [11420, 11420], [11422, 11422],
626        [11424, 11424], [11426, 11426], [11428, 11428], [11430, 11430],
627        [11432, 11432], [11434, 11434], [11436, 11436], [11438, 11438],
628        [11440, 11440], [11442, 11442], [11444, 11444], [11446, 11446],
629        [11448, 11448], [11450, 11450], [11452, 11452], [11454, 11454],
630        [11456, 11456], [11458, 11458], [11460, 11460], [11462, 11462],
631        [11464, 11464], [11466, 11466], [11468, 11468], [11470, 11470],
632        [11472, 11472], [11474, 11474], [11476, 11476], [11478, 11478],
633        [11480, 11480], [11482, 11482], [11484, 11484], [11486, 11486],
634        [11488, 11488], [11490, 11490], [11499, 11499], [11501, 11501],
635        [11506, 11506], [42560, 42560], [42562, 42562], [42564, 42564],
636        [42566, 42566], [42568, 42568], [42570, 42570], [42572, 42572],
637        [42574, 42574], [42576, 42576], [42578, 42578], [42580, 42580],
638        [42582, 42582], [42584, 42584], [42586, 42586], [42588, 42588],
639        [42590, 42590], [42592, 42592], [42594, 42594], [42596, 42596],
640        [42598, 42598], [42600, 42600], [42602, 42602], [42604, 42604],
641        [42624, 42624], [42626, 42626], [42628, 42628], [42630, 42630],
642        [42632, 42632], [42634, 42634], [42636, 42636], [42638, 42638],
643        [42640, 42640], [42642, 42642], [42644, 42644], [42646, 42646],
644        [42648, 42648], [42650, 42650], [42786, 42786], [42788, 42788],
645        [42790, 42790], [42792, 42792], [42794, 42794], [42796, 42796],
646        [42798, 42798], [42802, 42802], [42804, 42804], [42806, 42806],
647        [42808, 42808], [42810, 42810], [42812, 42812], [42814, 42814],
648        [42816, 42816], [42818, 42818], [42820, 42820], [42822, 42822],
649        [42824, 42824], [42826, 42826], [42828, 42828], [42830, 42830],
650        [42832, 42832], [42834, 42834], [42836, 42836], [42838, 42838],
651        [42840, 42840], [42842, 42842], [42844, 42844], [42846, 42846],
652        [42848, 42848], [42850, 42850], [42852, 42852], [42854, 42854],
653        [42856, 42856], [42858, 42858], [42860, 42860], [42862, 42862],
654        [42873, 42873], [42875, 42875], [42877, 42878], [42880, 42880],
655        [42882, 42882], [42884, 42884], [42886, 42886], [42891, 42891],
656        [42893, 42893], [42896, 42896], [42898, 42898], [42902, 42902],
657        [42904, 42904], [42906, 42906], [42908, 42908], [42910, 42910],
658        [42912, 42912], [42914, 42914], [42916, 42916], [42918, 42918],
659        [42920, 42920], [42922, 42926], [42928, 42932], [42934, 42934],
660        [43888, 43967], [64256, 64262], [64275, 64279], [65313, 65338],
661        [66560, 66599], [66736, 66771], [68736, 68786], [71840, 71871],
662        [125184, 125217]**/
663        const UnicodeSet codepoint_set
664            {{{Empty, 2}, {Mixed, 1}, {Empty, 2}, {Mixed, 2}, {Empty, 1},
665              {Mixed, 11}, {Empty, 7}, {Mixed, 6}, {Full, 1}, {Mixed, 1},
666              {Empty, 1}, {Mixed, 8}, {Empty, 1}, {Mixed, 1}, {Empty, 88},
667              {Full, 1}, {Mixed, 1}, {Empty, 24}, {Mixed, 1}, {Empty, 68},
668              {Mixed, 1}, {Empty, 11}, {Mixed, 12}, {Full, 1}, {Mixed, 3},
669              {Empty, 9}, {Mixed, 1}, {Empty, 1}, {Mixed, 2}, {Empty, 24},
670              {Mixed, 2}, {Empty, 57}, {Full, 1}, {Mixed, 1}, {Empty, 1},
671              {Mixed, 5}, {Empty, 970}, {Mixed, 3}, {Empty, 4}, {Mixed, 5},
672              {Empty, 29}, {Mixed, 1}, {Full, 2}, {Empty, 634}, {Mixed, 1},
673              {Empty, 32}, {Mixed, 1}, {Empty, 38}, {Full, 1}, {Mixed, 1},
674              {Empty, 3}, {Mixed, 2}, {Empty, 61}, {Full, 1}, {Mixed, 1},
675              {Empty, 95}, {Full, 1}, {Empty, 1666}, {Full, 1}, {Mixed, 1},
676              {Empty, 30902}},
677             {0x07fffffe, 0x00200000, 0xff7fffff, 0x55555555, 0xaa555555,
678              0x555556aa, 0xab555555, 0xb1dbced6, 0x11aed2d5, 0x4aaaadb0,
679              0x55d65555, 0x55555555, 0x6c055555, 0x0000557a, 0x00000020,
680              0x80450000, 0xfffed740, 0x00000ffb, 0x55638004, 0xe6b35555,
681              0x0000ffff, 0x55555555, 0x55555401, 0x55555555, 0x55552aab,
682              0x55555555, 0x55555555, 0xfffe5555, 0x007fffff, 0x00000080,
683              0x000020bf, 0x3f000000, 0x000001ff, 0x55555555, 0x55555555,
684              0x55555555, 0x55555555, 0x4c155555, 0x55555555, 0x55555555,
685              0x55555555, 0x3f00ff00, 0xff00ff00, 0xaa003f00, 0x0000ff00,
686              0x1f9cffff, 0x0f001f9c, 0x1f9c1f00, 0x00040c40, 0x0000ffff,
687              0x00000008, 0xffc00000, 0x0000ffff, 0x00007fff, 0xc025ea9d,
688              0x55555555, 0x55555555, 0x55555555, 0x00042805, 0x55555555,
689              0x00001555, 0x05555555, 0x55545554, 0x55555555, 0x6a005555,
690              0x55452855, 0x005f7d55, 0xffff0000, 0x00f8007f, 0x07fffffe,
691              0x000000ff, 0xffff0000, 0x000fffff, 0x0007ffff, 0x00000003}};
692        static BinaryPropertyObject property_object{CWCF, codepoint_set};
693    }
694    namespace CWCM_ns {
695        /** Code Point Ranges for CWCM
696        [65, 90], [97, 122], [181, 181], [192, 214], [216, 246], [248, 311],
697        [313, 396], [398, 410], [412, 425], [428, 441], [444, 445],
698        [447, 447], [452, 544], [546, 563], [570, 596], [598, 599],
699        [601, 601], [603, 604], [608, 609], [611, 611], [613, 614],
700        [616, 620], [623, 623], [625, 626], [629, 629], [637, 637],
701        [640, 640], [643, 643], [647, 652], [658, 658], [669, 670],
702        [837, 837], [880, 883], [886, 887], [891, 893], [895, 895],
703        [902, 902], [904, 906], [908, 908], [910, 929], [931, 977],
704        [981, 1013], [1015, 1019], [1021, 1153], [1162, 1327], [1329, 1366],
705        [1377, 1415], [4256, 4293], [4295, 4295], [4301, 4301],
706        [5024, 5109], [5112, 5117], [7296, 7304], [7545, 7545],
707        [7549, 7549], [7680, 7835], [7838, 7838], [7840, 7957],
708        [7960, 7965], [7968, 8005], [8008, 8013], [8016, 8023],
709        [8025, 8025], [8027, 8027], [8029, 8029], [8031, 8061],
710        [8064, 8116], [8118, 8124], [8126, 8126], [8130, 8132],
711        [8134, 8140], [8144, 8147], [8150, 8155], [8160, 8172],
712        [8178, 8180], [8182, 8188], [8486, 8486], [8490, 8491],
713        [8498, 8498], [8526, 8526], [8544, 8575], [8579, 8580],
714        [9398, 9449], [11264, 11310], [11312, 11358], [11360, 11376],
715        [11378, 11379], [11381, 11382], [11390, 11491], [11499, 11502],
716        [11506, 11507], [11520, 11557], [11559, 11559], [11565, 11565],
717        [42560, 42605], [42624, 42651], [42786, 42799], [42802, 42863],
718        [42873, 42887], [42891, 42893], [42896, 42899], [42902, 42926],
719        [42928, 42935], [43859, 43859], [43888, 43967], [64256, 64262],
720        [64275, 64279], [65313, 65338], [65345, 65370], [66560, 66639],
721        [66736, 66771], [66776, 66811], [68736, 68786], [68800, 68850],
722        [71840, 71903], [125184, 125251]**/
723        const UnicodeSet codepoint_set
724            {{{Empty, 2}, {Mixed, 2}, {Empty, 1}, {Mixed, 3}, {Full, 1},
725              {Mixed, 1}, {Full, 2}, {Mixed, 3}, {Full, 2}, {Mixed, 4},
726              {Empty, 5}, {Mixed, 6}, {Full, 4}, {Mixed, 1}, {Full, 4},
727              {Mixed, 4}, {Empty, 88}, {Full, 1}, {Mixed, 1}, {Empty, 22},
728              {Full, 2}, {Mixed, 1}, {Empty, 68}, {Mixed, 1}, {Empty, 6},
729              {Mixed, 1}, {Empty, 4}, {Full, 4}, {Mixed, 1}, {Full, 3},
730              {Mixed, 1}, {Full, 1}, {Mixed, 2}, {Full, 1}, {Mixed, 3},
731              {Empty, 9}, {Mixed, 2}, {Full, 1}, {Mixed, 1}, {Empty, 24},
732              {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Empty, 56}, {Full, 1},
733              {Mixed, 3}, {Full, 3}, {Mixed, 1}, {Full, 1}, {Mixed, 1},
734              {Empty, 968}, {Full, 1}, {Mixed, 2}, {Empty, 4}, {Mixed, 1},
735              {Full, 1}, {Mixed, 3}, {Empty, 28}, {Mixed, 2}, {Full, 2},
736              {Empty, 634}, {Mixed, 1}, {Empty, 32}, {Mixed, 2},
737              {Empty, 37}, {Full, 2}, {Mixed, 1}, {Empty, 2}, {Mixed, 3},
738              {Empty, 60}, {Full, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 1},
739              {Empty, 93}, {Full, 2}, {Empty, 1665}, {Full, 2}, {Mixed, 1},
740              {Empty, 30901}},
741             {0x07fffffe, 0x07fffffe, 0x00200000, 0xff7fffff, 0xff7fffff,
742              0xfeffffff, 0xf7ffdfff, 0xb3fff3ff, 0xfffffff0, 0xfc0ffffd,
743              0x1adfffff, 0x20269f6b, 0x60041f89, 0x00000020, 0xb8cf0000,
744              0xffffd740, 0xfffffffb, 0xffe3ffff, 0xefbfffff, 0xfffffc03,
745              0xfffeffff, 0x007fffff, 0xfffffffe, 0x000000ff, 0x000020bf,
746              0x3f3fffff, 0x000001ff, 0x22000000, 0x4fffffff, 0x3f3fffff,
747              0xaaff3f3f, 0x3fffffff, 0x5fdfffff, 0x0fcf1fdc, 0x1fdc1fff,
748              0x00040c40, 0x00004000, 0x00000018, 0xffc00000, 0x000003ff,
749              0xffff7fff, 0x7fffffff, 0xc06dffff, 0x000c780f, 0x000020bf,
750              0x00003fff, 0x0fffffff, 0xfffcfffc, 0xfe00ffff, 0xffcf38ff,
751              0x00ff7fff, 0x00080000, 0xffff0000, 0x00f8007f, 0x07fffffe,
752              0x07fffffe, 0x0000ffff, 0xffff0000, 0xff0fffff, 0x0fffffff,
753              0x0007ffff, 0x0007ffff, 0x0000000f}};
754        static BinaryPropertyObject property_object{CWCM, codepoint_set};
755    }
756    namespace CWL_ns {
757        /** Code Point Ranges for CWL
758        [65, 90], [192, 214], [216, 222], [256, 256], [258, 258],
759        [260, 260], [262, 262], [264, 264], [266, 266], [268, 268],
760        [270, 270], [272, 272], [274, 274], [276, 276], [278, 278],
761        [280, 280], [282, 282], [284, 284], [286, 286], [288, 288],
762        [290, 290], [292, 292], [294, 294], [296, 296], [298, 298],
763        [300, 300], [302, 302], [304, 304], [306, 306], [308, 308],
764        [310, 310], [313, 313], [315, 315], [317, 317], [319, 319],
765        [321, 321], [323, 323], [325, 325], [327, 327], [330, 330],
766        [332, 332], [334, 334], [336, 336], [338, 338], [340, 340],
767        [342, 342], [344, 344], [346, 346], [348, 348], [350, 350],
768        [352, 352], [354, 354], [356, 356], [358, 358], [360, 360],
769        [362, 362], [364, 364], [366, 366], [368, 368], [370, 370],
770        [372, 372], [374, 374], [376, 377], [379, 379], [381, 381],
771        [385, 386], [388, 388], [390, 391], [393, 395], [398, 401],
772        [403, 404], [406, 408], [412, 413], [415, 416], [418, 418],
773        [420, 420], [422, 423], [425, 425], [428, 428], [430, 431],
774        [433, 435], [437, 437], [439, 440], [444, 444], [452, 453],
775        [455, 456], [458, 459], [461, 461], [463, 463], [465, 465],
776        [467, 467], [469, 469], [471, 471], [473, 473], [475, 475],
777        [478, 478], [480, 480], [482, 482], [484, 484], [486, 486],
778        [488, 488], [490, 490], [492, 492], [494, 494], [497, 498],
779        [500, 500], [502, 504], [506, 506], [508, 508], [510, 510],
780        [512, 512], [514, 514], [516, 516], [518, 518], [520, 520],
781        [522, 522], [524, 524], [526, 526], [528, 528], [530, 530],
782        [532, 532], [534, 534], [536, 536], [538, 538], [540, 540],
783        [542, 542], [544, 544], [546, 546], [548, 548], [550, 550],
784        [552, 552], [554, 554], [556, 556], [558, 558], [560, 560],
785        [562, 562], [570, 571], [573, 574], [577, 577], [579, 582],
786        [584, 584], [586, 586], [588, 588], [590, 590], [880, 880],
787        [882, 882], [886, 886], [895, 895], [902, 902], [904, 906],
788        [908, 908], [910, 911], [913, 929], [931, 939], [975, 975],
789        [984, 984], [986, 986], [988, 988], [990, 990], [992, 992],
790        [994, 994], [996, 996], [998, 998], [1000, 1000], [1002, 1002],
791        [1004, 1004], [1006, 1006], [1012, 1012], [1015, 1015],
792        [1017, 1018], [1021, 1071], [1120, 1120], [1122, 1122],
793        [1124, 1124], [1126, 1126], [1128, 1128], [1130, 1130],
794        [1132, 1132], [1134, 1134], [1136, 1136], [1138, 1138],
795        [1140, 1140], [1142, 1142], [1144, 1144], [1146, 1146],
796        [1148, 1148], [1150, 1150], [1152, 1152], [1162, 1162],
797        [1164, 1164], [1166, 1166], [1168, 1168], [1170, 1170],
798        [1172, 1172], [1174, 1174], [1176, 1176], [1178, 1178],
799        [1180, 1180], [1182, 1182], [1184, 1184], [1186, 1186],
800        [1188, 1188], [1190, 1190], [1192, 1192], [1194, 1194],
801        [1196, 1196], [1198, 1198], [1200, 1200], [1202, 1202],
802        [1204, 1204], [1206, 1206], [1208, 1208], [1210, 1210],
803        [1212, 1212], [1214, 1214], [1216, 1217], [1219, 1219],
804        [1221, 1221], [1223, 1223], [1225, 1225], [1227, 1227],
805        [1229, 1229], [1232, 1232], [1234, 1234], [1236, 1236],
806        [1238, 1238], [1240, 1240], [1242, 1242], [1244, 1244],
807        [1246, 1246], [1248, 1248], [1250, 1250], [1252, 1252],
808        [1254, 1254], [1256, 1256], [1258, 1258], [1260, 1260],
809        [1262, 1262], [1264, 1264], [1266, 1266], [1268, 1268],
810        [1270, 1270], [1272, 1272], [1274, 1274], [1276, 1276],
811        [1278, 1278], [1280, 1280], [1282, 1282], [1284, 1284],
812        [1286, 1286], [1288, 1288], [1290, 1290], [1292, 1292],
813        [1294, 1294], [1296, 1296], [1298, 1298], [1300, 1300],
814        [1302, 1302], [1304, 1304], [1306, 1306], [1308, 1308],
815        [1310, 1310], [1312, 1312], [1314, 1314], [1316, 1316],
816        [1318, 1318], [1320, 1320], [1322, 1322], [1324, 1324],
817        [1326, 1326], [1329, 1366], [4256, 4293], [4295, 4295],
818        [4301, 4301], [5024, 5109], [7680, 7680], [7682, 7682],
819        [7684, 7684], [7686, 7686], [7688, 7688], [7690, 7690],
820        [7692, 7692], [7694, 7694], [7696, 7696], [7698, 7698],
821        [7700, 7700], [7702, 7702], [7704, 7704], [7706, 7706],
822        [7708, 7708], [7710, 7710], [7712, 7712], [7714, 7714],
823        [7716, 7716], [7718, 7718], [7720, 7720], [7722, 7722],
824        [7724, 7724], [7726, 7726], [7728, 7728], [7730, 7730],
825        [7732, 7732], [7734, 7734], [7736, 7736], [7738, 7738],
826        [7740, 7740], [7742, 7742], [7744, 7744], [7746, 7746],
827        [7748, 7748], [7750, 7750], [7752, 7752], [7754, 7754],
828        [7756, 7756], [7758, 7758], [7760, 7760], [7762, 7762],
829        [7764, 7764], [7766, 7766], [7768, 7768], [7770, 7770],
830        [7772, 7772], [7774, 7774], [7776, 7776], [7778, 7778],
831        [7780, 7780], [7782, 7782], [7784, 7784], [7786, 7786],
832        [7788, 7788], [7790, 7790], [7792, 7792], [7794, 7794],
833        [7796, 7796], [7798, 7798], [7800, 7800], [7802, 7802],
834        [7804, 7804], [7806, 7806], [7808, 7808], [7810, 7810],
835        [7812, 7812], [7814, 7814], [7816, 7816], [7818, 7818],
836        [7820, 7820], [7822, 7822], [7824, 7824], [7826, 7826],
837        [7828, 7828], [7838, 7838], [7840, 7840], [7842, 7842],
838        [7844, 7844], [7846, 7846], [7848, 7848], [7850, 7850],
839        [7852, 7852], [7854, 7854], [7856, 7856], [7858, 7858],
840        [7860, 7860], [7862, 7862], [7864, 7864], [7866, 7866],
841        [7868, 7868], [7870, 7870], [7872, 7872], [7874, 7874],
842        [7876, 7876], [7878, 7878], [7880, 7880], [7882, 7882],
843        [7884, 7884], [7886, 7886], [7888, 7888], [7890, 7890],
844        [7892, 7892], [7894, 7894], [7896, 7896], [7898, 7898],
845        [7900, 7900], [7902, 7902], [7904, 7904], [7906, 7906],
846        [7908, 7908], [7910, 7910], [7912, 7912], [7914, 7914],
847        [7916, 7916], [7918, 7918], [7920, 7920], [7922, 7922],
848        [7924, 7924], [7926, 7926], [7928, 7928], [7930, 7930],
849        [7932, 7932], [7934, 7934], [7944, 7951], [7960, 7965],
850        [7976, 7983], [7992, 7999], [8008, 8013], [8025, 8025],
851        [8027, 8027], [8029, 8029], [8031, 8031], [8040, 8047],
852        [8072, 8079], [8088, 8095], [8104, 8111], [8120, 8124],
853        [8136, 8140], [8152, 8155], [8168, 8172], [8184, 8188],
854        [8486, 8486], [8490, 8491], [8498, 8498], [8544, 8559],
855        [8579, 8579], [9398, 9423], [11264, 11310], [11360, 11360],
856        [11362, 11364], [11367, 11367], [11369, 11369], [11371, 11371],
857        [11373, 11376], [11378, 11378], [11381, 11381], [11390, 11392],
858        [11394, 11394], [11396, 11396], [11398, 11398], [11400, 11400],
859        [11402, 11402], [11404, 11404], [11406, 11406], [11408, 11408],
860        [11410, 11410], [11412, 11412], [11414, 11414], [11416, 11416],
861        [11418, 11418], [11420, 11420], [11422, 11422], [11424, 11424],
862        [11426, 11426], [11428, 11428], [11430, 11430], [11432, 11432],
863        [11434, 11434], [11436, 11436], [11438, 11438], [11440, 11440],
864        [11442, 11442], [11444, 11444], [11446, 11446], [11448, 11448],
865        [11450, 11450], [11452, 11452], [11454, 11454], [11456, 11456],
866        [11458, 11458], [11460, 11460], [11462, 11462], [11464, 11464],
867        [11466, 11466], [11468, 11468], [11470, 11470], [11472, 11472],
868        [11474, 11474], [11476, 11476], [11478, 11478], [11480, 11480],
869        [11482, 11482], [11484, 11484], [11486, 11486], [11488, 11488],
870        [11490, 11490], [11499, 11499], [11501, 11501], [11506, 11506],
871        [42560, 42560], [42562, 42562], [42564, 42564], [42566, 42566],
872        [42568, 42568], [42570, 42570], [42572, 42572], [42574, 42574],
873        [42576, 42576], [42578, 42578], [42580, 42580], [42582, 42582],
874        [42584, 42584], [42586, 42586], [42588, 42588], [42590, 42590],
875        [42592, 42592], [42594, 42594], [42596, 42596], [42598, 42598],
876        [42600, 42600], [42602, 42602], [42604, 42604], [42624, 42624],
877        [42626, 42626], [42628, 42628], [42630, 42630], [42632, 42632],
878        [42634, 42634], [42636, 42636], [42638, 42638], [42640, 42640],
879        [42642, 42642], [42644, 42644], [42646, 42646], [42648, 42648],
880        [42650, 42650], [42786, 42786], [42788, 42788], [42790, 42790],
881        [42792, 42792], [42794, 42794], [42796, 42796], [42798, 42798],
882        [42802, 42802], [42804, 42804], [42806, 42806], [42808, 42808],
883        [42810, 42810], [42812, 42812], [42814, 42814], [42816, 42816],
884        [42818, 42818], [42820, 42820], [42822, 42822], [42824, 42824],
885        [42826, 42826], [42828, 42828], [42830, 42830], [42832, 42832],
886        [42834, 42834], [42836, 42836], [42838, 42838], [42840, 42840],
887        [42842, 42842], [42844, 42844], [42846, 42846], [42848, 42848],
888        [42850, 42850], [42852, 42852], [42854, 42854], [42856, 42856],
889        [42858, 42858], [42860, 42860], [42862, 42862], [42873, 42873],
890        [42875, 42875], [42877, 42878], [42880, 42880], [42882, 42882],
891        [42884, 42884], [42886, 42886], [42891, 42891], [42893, 42893],
892        [42896, 42896], [42898, 42898], [42902, 42902], [42904, 42904],
893        [42906, 42906], [42908, 42908], [42910, 42910], [42912, 42912],
894        [42914, 42914], [42916, 42916], [42918, 42918], [42920, 42920],
895        [42922, 42926], [42928, 42932], [42934, 42934], [65313, 65338],
896        [66560, 66599], [66736, 66771], [68736, 68786], [71840, 71871],
897        [125184, 125217]**/
898        const UnicodeSet codepoint_set
899            {{{Empty, 2}, {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Empty, 1},
900              {Mixed, 11}, {Empty, 8}, {Mixed, 5}, {Full, 1}, {Mixed, 1},
901              {Empty, 1}, {Mixed, 8}, {Empty, 90}, {Full, 1}, {Mixed, 1},
902              {Empty, 22}, {Full, 2}, {Mixed, 1}, {Empty, 80}, {Mixed, 16},
903              {Empty, 9}, {Mixed, 1}, {Empty, 1}, {Mixed, 2}, {Empty, 24},
904              {Mixed, 2}, {Empty, 57}, {Full, 1}, {Mixed, 1}, {Empty, 1},
905              {Mixed, 5}, {Empty, 970}, {Mixed, 3}, {Empty, 4}, {Mixed, 5},
906              {Empty, 699}, {Mixed, 1}, {Empty, 38}, {Full, 1}, {Mixed, 1},
907              {Empty, 3}, {Mixed, 2}, {Empty, 61}, {Full, 1}, {Mixed, 1},
908              {Empty, 95}, {Full, 1}, {Empty, 1666}, {Full, 1}, {Mixed, 1},
909              {Empty, 30902}},
910             {0x07fffffe, 0x7f7fffff, 0x55555555, 0xaa555555, 0x555554aa,
911              0x2b555555, 0xb1dbced6, 0x11aed2d5, 0x4aaaadb0, 0x55d65555,
912              0x55555555, 0x6c055555, 0x0000557a, 0x80450000, 0xfffed740,
913              0x00000ffb, 0x55008000, 0xe6905555, 0x0000ffff, 0x55555555,
914              0x55555401, 0x55555555, 0x55552aab, 0x55555555, 0x55555555,
915              0xfffe5555, 0x007fffff, 0x000020bf, 0x003fffff, 0x55555555,
916              0x55555555, 0x55555555, 0x55555555, 0x40155555, 0x55555555,
917              0x55555555, 0x55555555, 0x3f00ff00, 0xff00ff00, 0xaa003f00,
918              0x0000ff00, 0xff00ff00, 0x1f00ff00, 0x0f001f00, 0x1f001f00,
919              0x00040c40, 0x0000ffff, 0x00000008, 0xffc00000, 0x0000ffff,
920              0x00007fff, 0xc025ea9d, 0x55555555, 0x55555555, 0x55555555,
921              0x00042805, 0x55555555, 0x00001555, 0x05555555, 0x55545554,
922              0x55555555, 0x6a005555, 0x55452855, 0x005f7d55, 0x07fffffe,
923              0x000000ff, 0xffff0000, 0x000fffff, 0x0007ffff, 0x00000003}};
924        static BinaryPropertyObject property_object{CWL, codepoint_set};
925    }
926    namespace CWT_ns {
927        /** Code Point Ranges for CWT
928        [97, 122], [181, 181], [223, 246], [248, 255], [257, 257],
929        [259, 259], [261, 261], [263, 263], [265, 265], [267, 267],
930        [269, 269], [271, 271], [273, 273], [275, 275], [277, 277],
931        [279, 279], [281, 281], [283, 283], [285, 285], [287, 287],
932        [289, 289], [291, 291], [293, 293], [295, 295], [297, 297],
933        [299, 299], [301, 301], [303, 303], [305, 305], [307, 307],
934        [309, 309], [311, 311], [314, 314], [316, 316], [318, 318],
935        [320, 320], [322, 322], [324, 324], [326, 326], [328, 329],
936        [331, 331], [333, 333], [335, 335], [337, 337], [339, 339],
937        [341, 341], [343, 343], [345, 345], [347, 347], [349, 349],
938        [351, 351], [353, 353], [355, 355], [357, 357], [359, 359],
939        [361, 361], [363, 363], [365, 365], [367, 367], [369, 369],
940        [371, 371], [373, 373], [375, 375], [378, 378], [380, 380],
941        [382, 384], [387, 387], [389, 389], [392, 392], [396, 396],
942        [402, 402], [405, 405], [409, 410], [414, 414], [417, 417],
943        [419, 419], [421, 421], [424, 424], [429, 429], [432, 432],
944        [436, 436], [438, 438], [441, 441], [445, 445], [447, 447],
945        [452, 452], [454, 455], [457, 458], [460, 460], [462, 462],
946        [464, 464], [466, 466], [468, 468], [470, 470], [472, 472],
947        [474, 474], [476, 477], [479, 479], [481, 481], [483, 483],
948        [485, 485], [487, 487], [489, 489], [491, 491], [493, 493],
949        [495, 497], [499, 499], [501, 501], [505, 505], [507, 507],
950        [509, 509], [511, 511], [513, 513], [515, 515], [517, 517],
951        [519, 519], [521, 521], [523, 523], [525, 525], [527, 527],
952        [529, 529], [531, 531], [533, 533], [535, 535], [537, 537],
953        [539, 539], [541, 541], [543, 543], [547, 547], [549, 549],
954        [551, 551], [553, 553], [555, 555], [557, 557], [559, 559],
955        [561, 561], [563, 563], [572, 572], [575, 576], [578, 578],
956        [583, 583], [585, 585], [587, 587], [589, 589], [591, 596],
957        [598, 599], [601, 601], [603, 604], [608, 609], [611, 611],
958        [613, 614], [616, 620], [623, 623], [625, 626], [629, 629],
959        [637, 637], [640, 640], [643, 643], [647, 652], [658, 658],
960        [669, 670], [837, 837], [881, 881], [883, 883], [887, 887],
961        [891, 893], [912, 912], [940, 974], [976, 977], [981, 983],
962        [985, 985], [987, 987], [989, 989], [991, 991], [993, 993],
963        [995, 995], [997, 997], [999, 999], [1001, 1001], [1003, 1003],
964        [1005, 1005], [1007, 1011], [1013, 1013], [1016, 1016],
965        [1019, 1019], [1072, 1119], [1121, 1121], [1123, 1123],
966        [1125, 1125], [1127, 1127], [1129, 1129], [1131, 1131],
967        [1133, 1133], [1135, 1135], [1137, 1137], [1139, 1139],
968        [1141, 1141], [1143, 1143], [1145, 1145], [1147, 1147],
969        [1149, 1149], [1151, 1151], [1153, 1153], [1163, 1163],
970        [1165, 1165], [1167, 1167], [1169, 1169], [1171, 1171],
971        [1173, 1173], [1175, 1175], [1177, 1177], [1179, 1179],
972        [1181, 1181], [1183, 1183], [1185, 1185], [1187, 1187],
973        [1189, 1189], [1191, 1191], [1193, 1193], [1195, 1195],
974        [1197, 1197], [1199, 1199], [1201, 1201], [1203, 1203],
975        [1205, 1205], [1207, 1207], [1209, 1209], [1211, 1211],
976        [1213, 1213], [1215, 1215], [1218, 1218], [1220, 1220],
977        [1222, 1222], [1224, 1224], [1226, 1226], [1228, 1228],
978        [1230, 1231], [1233, 1233], [1235, 1235], [1237, 1237],
979        [1239, 1239], [1241, 1241], [1243, 1243], [1245, 1245],
980        [1247, 1247], [1249, 1249], [1251, 1251], [1253, 1253],
981        [1255, 1255], [1257, 1257], [1259, 1259], [1261, 1261],
982        [1263, 1263], [1265, 1265], [1267, 1267], [1269, 1269],
983        [1271, 1271], [1273, 1273], [1275, 1275], [1277, 1277],
984        [1279, 1279], [1281, 1281], [1283, 1283], [1285, 1285],
985        [1287, 1287], [1289, 1289], [1291, 1291], [1293, 1293],
986        [1295, 1295], [1297, 1297], [1299, 1299], [1301, 1301],
987        [1303, 1303], [1305, 1305], [1307, 1307], [1309, 1309],
988        [1311, 1311], [1313, 1313], [1315, 1315], [1317, 1317],
989        [1319, 1319], [1321, 1321], [1323, 1323], [1325, 1325],
990        [1327, 1327], [1377, 1415], [5112, 5117], [7296, 7304],
991        [7545, 7545], [7549, 7549], [7681, 7681], [7683, 7683],
992        [7685, 7685], [7687, 7687], [7689, 7689], [7691, 7691],
993        [7693, 7693], [7695, 7695], [7697, 7697], [7699, 7699],
994        [7701, 7701], [7703, 7703], [7705, 7705], [7707, 7707],
995        [7709, 7709], [7711, 7711], [7713, 7713], [7715, 7715],
996        [7717, 7717], [7719, 7719], [7721, 7721], [7723, 7723],
997        [7725, 7725], [7727, 7727], [7729, 7729], [7731, 7731],
998        [7733, 7733], [7735, 7735], [7737, 7737], [7739, 7739],
999        [7741, 7741], [7743, 7743], [7745, 7745], [7747, 7747],
1000        [7749, 7749], [7751, 7751], [7753, 7753], [7755, 7755],
1001        [7757, 7757], [7759, 7759], [7761, 7761], [7763, 7763],
1002        [7765, 7765], [7767, 7767], [7769, 7769], [7771, 7771],
1003        [7773, 7773], [7775, 7775], [7777, 7777], [7779, 7779],
1004        [7781, 7781], [7783, 7783], [7785, 7785], [7787, 7787],
1005        [7789, 7789], [7791, 7791], [7793, 7793], [7795, 7795],
1006        [7797, 7797], [7799, 7799], [7801, 7801], [7803, 7803],
1007        [7805, 7805], [7807, 7807], [7809, 7809], [7811, 7811],
1008        [7813, 7813], [7815, 7815], [7817, 7817], [7819, 7819],
1009        [7821, 7821], [7823, 7823], [7825, 7825], [7827, 7827],
1010        [7829, 7835], [7841, 7841], [7843, 7843], [7845, 7845],
1011        [7847, 7847], [7849, 7849], [7851, 7851], [7853, 7853],
1012        [7855, 7855], [7857, 7857], [7859, 7859], [7861, 7861],
1013        [7863, 7863], [7865, 7865], [7867, 7867], [7869, 7869],
1014        [7871, 7871], [7873, 7873], [7875, 7875], [7877, 7877],
1015        [7879, 7879], [7881, 7881], [7883, 7883], [7885, 7885],
1016        [7887, 7887], [7889, 7889], [7891, 7891], [7893, 7893],
1017        [7895, 7895], [7897, 7897], [7899, 7899], [7901, 7901],
1018        [7903, 7903], [7905, 7905], [7907, 7907], [7909, 7909],
1019        [7911, 7911], [7913, 7913], [7915, 7915], [7917, 7917],
1020        [7919, 7919], [7921, 7921], [7923, 7923], [7925, 7925],
1021        [7927, 7927], [7929, 7929], [7931, 7931], [7933, 7933],
1022        [7935, 7943], [7952, 7957], [7968, 7975], [7984, 7991],
1023        [8000, 8005], [8016, 8023], [8032, 8039], [8048, 8061],
1024        [8064, 8071], [8080, 8087], [8096, 8103], [8112, 8116],
1025        [8118, 8119], [8126, 8126], [8130, 8132], [8134, 8135],
1026        [8144, 8147], [8150, 8151], [8160, 8167], [8178, 8180],
1027        [8182, 8183], [8526, 8526], [8560, 8575], [8580, 8580],
1028        [9424, 9449], [11312, 11358], [11361, 11361], [11365, 11366],
1029        [11368, 11368], [11370, 11370], [11372, 11372], [11379, 11379],
1030        [11382, 11382], [11393, 11393], [11395, 11395], [11397, 11397],
1031        [11399, 11399], [11401, 11401], [11403, 11403], [11405, 11405],
1032        [11407, 11407], [11409, 11409], [11411, 11411], [11413, 11413],
1033        [11415, 11415], [11417, 11417], [11419, 11419], [11421, 11421],
1034        [11423, 11423], [11425, 11425], [11427, 11427], [11429, 11429],
1035        [11431, 11431], [11433, 11433], [11435, 11435], [11437, 11437],
1036        [11439, 11439], [11441, 11441], [11443, 11443], [11445, 11445],
1037        [11447, 11447], [11449, 11449], [11451, 11451], [11453, 11453],
1038        [11455, 11455], [11457, 11457], [11459, 11459], [11461, 11461],
1039        [11463, 11463], [11465, 11465], [11467, 11467], [11469, 11469],
1040        [11471, 11471], [11473, 11473], [11475, 11475], [11477, 11477],
1041        [11479, 11479], [11481, 11481], [11483, 11483], [11485, 11485],
1042        [11487, 11487], [11489, 11489], [11491, 11491], [11500, 11500],
1043        [11502, 11502], [11507, 11507], [11520, 11557], [11559, 11559],
1044        [11565, 11565], [42561, 42561], [42563, 42563], [42565, 42565],
1045        [42567, 42567], [42569, 42569], [42571, 42571], [42573, 42573],
1046        [42575, 42575], [42577, 42577], [42579, 42579], [42581, 42581],
1047        [42583, 42583], [42585, 42585], [42587, 42587], [42589, 42589],
1048        [42591, 42591], [42593, 42593], [42595, 42595], [42597, 42597],
1049        [42599, 42599], [42601, 42601], [42603, 42603], [42605, 42605],
1050        [42625, 42625], [42627, 42627], [42629, 42629], [42631, 42631],
1051        [42633, 42633], [42635, 42635], [42637, 42637], [42639, 42639],
1052        [42641, 42641], [42643, 42643], [42645, 42645], [42647, 42647],
1053        [42649, 42649], [42651, 42651], [42787, 42787], [42789, 42789],
1054        [42791, 42791], [42793, 42793], [42795, 42795], [42797, 42797],
1055        [42799, 42799], [42803, 42803], [42805, 42805], [42807, 42807],
1056        [42809, 42809], [42811, 42811], [42813, 42813], [42815, 42815],
1057        [42817, 42817], [42819, 42819], [42821, 42821], [42823, 42823],
1058        [42825, 42825], [42827, 42827], [42829, 42829], [42831, 42831],
1059        [42833, 42833], [42835, 42835], [42837, 42837], [42839, 42839],
1060        [42841, 42841], [42843, 42843], [42845, 42845], [42847, 42847],
1061        [42849, 42849], [42851, 42851], [42853, 42853], [42855, 42855],
1062        [42857, 42857], [42859, 42859], [42861, 42861], [42863, 42863],
1063        [42874, 42874], [42876, 42876], [42879, 42879], [42881, 42881],
1064        [42883, 42883], [42885, 42885], [42887, 42887], [42892, 42892],
1065        [42897, 42897], [42899, 42899], [42903, 42903], [42905, 42905],
1066        [42907, 42907], [42909, 42909], [42911, 42911], [42913, 42913],
1067        [42915, 42915], [42917, 42917], [42919, 42919], [42921, 42921],
1068        [42933, 42933], [42935, 42935], [43859, 43859], [43888, 43967],
1069        [64256, 64262], [64275, 64279], [65345, 65370], [66600, 66639],
1070        [66776, 66811], [68800, 68850], [71872, 71903], [125218, 125251]**/
1071        const UnicodeSet codepoint_set
1072            {{{Empty, 3}, {Mixed, 1}, {Empty, 1}, {Mixed, 16}, {Empty, 5},
1073              {Mixed, 6}, {Empty, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 7},
1074              {Empty, 1}, {Mixed, 2}, {Empty, 114}, {Mixed, 1}, {Empty, 68},
1075              {Mixed, 1}, {Empty, 6}, {Mixed, 1}, {Empty, 4}, {Mixed, 16},
1076              {Empty, 10}, {Mixed, 3}, {Empty, 25}, {Mixed, 2}, {Empty, 57},
1077              {Mixed, 7}, {Full, 1}, {Mixed, 1}, {Empty, 968}, {Mixed, 3},
1078              {Empty, 4}, {Mixed, 5}, {Empty, 28}, {Mixed, 2}, {Full, 2},
1079              {Empty, 634}, {Mixed, 1}, {Empty, 33}, {Mixed, 1},
1080              {Empty, 38}, {Mixed, 2}, {Empty, 3}, {Mixed, 2}, {Empty, 62},
1081              {Full, 1}, {Mixed, 1}, {Empty, 94}, {Full, 1}, {Empty, 1666},
1082              {Mixed, 2}, {Empty, 30901}},
1083             {0x07fffffe, 0x00200000, 0x80000000, 0xff7fffff, 0xaaaaaaaa,
1084              0x54aaaaaa, 0xaaaaab55, 0xd4aaaaaa, 0x46241129, 0xa251212a,
1085              0xb55556d0, 0xaa2baaaa, 0xaaaaaaaa, 0x900aaaa8, 0x1adfaa85,
1086              0x20269f6b, 0x60041f89, 0x00000020, 0x388a0000, 0x00010000,
1087              0xfffff000, 0xaae37fff, 0x092faaaa, 0xffff0000, 0xaaaaaaaa,
1088              0xaaaaa802, 0xaaaaaaaa, 0xaaaad554, 0xaaaaaaaa, 0xaaaaaaaa,
1089              0x0000aaaa, 0xfffffffe, 0x000000ff, 0x3f000000, 0x000001ff,
1090              0x22000000, 0xaaaaaaaa, 0xaaaaaaaa, 0xaaaaaaaa, 0xaaaaaaaa,
1091              0x0feaaaaa, 0xaaaaaaaa, 0xaaaaaaaa, 0xaaaaaaaa, 0x003f00ff,
1092              0x00ff00ff, 0x00ff003f, 0x3fff00ff, 0x00ff00ff, 0x40df00ff,
1093              0x00cf00dc, 0x00dc00ff, 0x00004000, 0xffff0000, 0x00000010,
1094              0xffff0000, 0x000003ff, 0xffff0000, 0x7fffffff, 0x00481562,
1095              0xaaaaaaaa, 0xaaaaaaaa, 0xaaaaaaaa, 0x0008500a, 0x000020bf,
1096              0xaaaaaaaa, 0x00002aaa, 0x0aaaaaaa, 0xaaa8aaa8, 0xaaaaaaaa,
1097              0x9400aaaa, 0xaa8a10aa, 0x00a002aa, 0x00080000, 0xffff0000,
1098              0x00f8007f, 0x07fffffe, 0xffffff00, 0x0000ffff, 0xff000000,
1099              0x0fffffff, 0x0007ffff, 0xfffffffc, 0x0000000f}};
1100        static BinaryPropertyObject property_object{CWT, codepoint_set};
1101    }
1102    namespace CWU_ns {
1103        /** Code Point Ranges for CWU
1104        [97, 122], [181, 181], [223, 246], [248, 255], [257, 257],
1105        [259, 259], [261, 261], [263, 263], [265, 265], [267, 267],
1106        [269, 269], [271, 271], [273, 273], [275, 275], [277, 277],
1107        [279, 279], [281, 281], [283, 283], [285, 285], [287, 287],
1108        [289, 289], [291, 291], [293, 293], [295, 295], [297, 297],
1109        [299, 299], [301, 301], [303, 303], [305, 305], [307, 307],
1110        [309, 309], [311, 311], [314, 314], [316, 316], [318, 318],
1111        [320, 320], [322, 322], [324, 324], [326, 326], [328, 329],
1112        [331, 331], [333, 333], [335, 335], [337, 337], [339, 339],
1113        [341, 341], [343, 343], [345, 345], [347, 347], [349, 349],
1114        [351, 351], [353, 353], [355, 355], [357, 357], [359, 359],
1115        [361, 361], [363, 363], [365, 365], [367, 367], [369, 369],
1116        [371, 371], [373, 373], [375, 375], [378, 378], [380, 380],
1117        [382, 384], [387, 387], [389, 389], [392, 392], [396, 396],
1118        [402, 402], [405, 405], [409, 410], [414, 414], [417, 417],
1119        [419, 419], [421, 421], [424, 424], [429, 429], [432, 432],
1120        [436, 436], [438, 438], [441, 441], [445, 445], [447, 447],
1121        [453, 454], [456, 457], [459, 460], [462, 462], [464, 464],
1122        [466, 466], [468, 468], [470, 470], [472, 472], [474, 474],
1123        [476, 477], [479, 479], [481, 481], [483, 483], [485, 485],
1124        [487, 487], [489, 489], [491, 491], [493, 493], [495, 496],
1125        [498, 499], [501, 501], [505, 505], [507, 507], [509, 509],
1126        [511, 511], [513, 513], [515, 515], [517, 517], [519, 519],
1127        [521, 521], [523, 523], [525, 525], [527, 527], [529, 529],
1128        [531, 531], [533, 533], [535, 535], [537, 537], [539, 539],
1129        [541, 541], [543, 543], [547, 547], [549, 549], [551, 551],
1130        [553, 553], [555, 555], [557, 557], [559, 559], [561, 561],
1131        [563, 563], [572, 572], [575, 576], [578, 578], [583, 583],
1132        [585, 585], [587, 587], [589, 589], [591, 596], [598, 599],
1133        [601, 601], [603, 604], [608, 609], [611, 611], [613, 614],
1134        [616, 620], [623, 623], [625, 626], [629, 629], [637, 637],
1135        [640, 640], [643, 643], [647, 652], [658, 658], [669, 670],
1136        [837, 837], [881, 881], [883, 883], [887, 887], [891, 893],
1137        [912, 912], [940, 974], [976, 977], [981, 983], [985, 985],
1138        [987, 987], [989, 989], [991, 991], [993, 993], [995, 995],
1139        [997, 997], [999, 999], [1001, 1001], [1003, 1003], [1005, 1005],
1140        [1007, 1011], [1013, 1013], [1016, 1016], [1019, 1019],
1141        [1072, 1119], [1121, 1121], [1123, 1123], [1125, 1125],
1142        [1127, 1127], [1129, 1129], [1131, 1131], [1133, 1133],
1143        [1135, 1135], [1137, 1137], [1139, 1139], [1141, 1141],
1144        [1143, 1143], [1145, 1145], [1147, 1147], [1149, 1149],
1145        [1151, 1151], [1153, 1153], [1163, 1163], [1165, 1165],
1146        [1167, 1167], [1169, 1169], [1171, 1171], [1173, 1173],
1147        [1175, 1175], [1177, 1177], [1179, 1179], [1181, 1181],
1148        [1183, 1183], [1185, 1185], [1187, 1187], [1189, 1189],
1149        [1191, 1191], [1193, 1193], [1195, 1195], [1197, 1197],
1150        [1199, 1199], [1201, 1201], [1203, 1203], [1205, 1205],
1151        [1207, 1207], [1209, 1209], [1211, 1211], [1213, 1213],
1152        [1215, 1215], [1218, 1218], [1220, 1220], [1222, 1222],
1153        [1224, 1224], [1226, 1226], [1228, 1228], [1230, 1231],
1154        [1233, 1233], [1235, 1235], [1237, 1237], [1239, 1239],
1155        [1241, 1241], [1243, 1243], [1245, 1245], [1247, 1247],
1156        [1249, 1249], [1251, 1251], [1253, 1253], [1255, 1255],
1157        [1257, 1257], [1259, 1259], [1261, 1261], [1263, 1263],
1158        [1265, 1265], [1267, 1267], [1269, 1269], [1271, 1271],
1159        [1273, 1273], [1275, 1275], [1277, 1277], [1279, 1279],
1160        [1281, 1281], [1283, 1283], [1285, 1285], [1287, 1287],
1161        [1289, 1289], [1291, 1291], [1293, 1293], [1295, 1295],
1162        [1297, 1297], [1299, 1299], [1301, 1301], [1303, 1303],
1163        [1305, 1305], [1307, 1307], [1309, 1309], [1311, 1311],
1164        [1313, 1313], [1315, 1315], [1317, 1317], [1319, 1319],
1165        [1321, 1321], [1323, 1323], [1325, 1325], [1327, 1327],
1166        [1377, 1415], [5112, 5117], [7296, 7304], [7545, 7545],
1167        [7549, 7549], [7681, 7681], [7683, 7683], [7685, 7685],
1168        [7687, 7687], [7689, 7689], [7691, 7691], [7693, 7693],
1169        [7695, 7695], [7697, 7697], [7699, 7699], [7701, 7701],
1170        [7703, 7703], [7705, 7705], [7707, 7707], [7709, 7709],
1171        [7711, 7711], [7713, 7713], [7715, 7715], [7717, 7717],
1172        [7719, 7719], [7721, 7721], [7723, 7723], [7725, 7725],
1173        [7727, 7727], [7729, 7729], [7731, 7731], [7733, 7733],
1174        [7735, 7735], [7737, 7737], [7739, 7739], [7741, 7741],
1175        [7743, 7743], [7745, 7745], [7747, 7747], [7749, 7749],
1176        [7751, 7751], [7753, 7753], [7755, 7755], [7757, 7757],
1177        [7759, 7759], [7761, 7761], [7763, 7763], [7765, 7765],
1178        [7767, 7767], [7769, 7769], [7771, 7771], [7773, 7773],
1179        [7775, 7775], [7777, 7777], [7779, 7779], [7781, 7781],
1180        [7783, 7783], [7785, 7785], [7787, 7787], [7789, 7789],
1181        [7791, 7791], [7793, 7793], [7795, 7795], [7797, 7797],
1182        [7799, 7799], [7801, 7801], [7803, 7803], [7805, 7805],
1183        [7807, 7807], [7809, 7809], [7811, 7811], [7813, 7813],
1184        [7815, 7815], [7817, 7817], [7819, 7819], [7821, 7821],
1185        [7823, 7823], [7825, 7825], [7827, 7827], [7829, 7835],
1186        [7841, 7841], [7843, 7843], [7845, 7845], [7847, 7847],
1187        [7849, 7849], [7851, 7851], [7853, 7853], [7855, 7855],
1188        [7857, 7857], [7859, 7859], [7861, 7861], [7863, 7863],
1189        [7865, 7865], [7867, 7867], [7869, 7869], [7871, 7871],
1190        [7873, 7873], [7875, 7875], [7877, 7877], [7879, 7879],
1191        [7881, 7881], [7883, 7883], [7885, 7885], [7887, 7887],
1192        [7889, 7889], [7891, 7891], [7893, 7893], [7895, 7895],
1193        [7897, 7897], [7899, 7899], [7901, 7901], [7903, 7903],
1194        [7905, 7905], [7907, 7907], [7909, 7909], [7911, 7911],
1195        [7913, 7913], [7915, 7915], [7917, 7917], [7919, 7919],
1196        [7921, 7921], [7923, 7923], [7925, 7925], [7927, 7927],
1197        [7929, 7929], [7931, 7931], [7933, 7933], [7935, 7943],
1198        [7952, 7957], [7968, 7975], [7984, 7991], [8000, 8005],
1199        [8016, 8023], [8032, 8039], [8048, 8061], [8064, 8116],
1200        [8118, 8119], [8124, 8124], [8126, 8126], [8130, 8132],
1201        [8134, 8135], [8140, 8140], [8144, 8147], [8150, 8151],
1202        [8160, 8167], [8178, 8180], [8182, 8183], [8188, 8188],
1203        [8526, 8526], [8560, 8575], [8580, 8580], [9424, 9449],
1204        [11312, 11358], [11361, 11361], [11365, 11366], [11368, 11368],
1205        [11370, 11370], [11372, 11372], [11379, 11379], [11382, 11382],
1206        [11393, 11393], [11395, 11395], [11397, 11397], [11399, 11399],
1207        [11401, 11401], [11403, 11403], [11405, 11405], [11407, 11407],
1208        [11409, 11409], [11411, 11411], [11413, 11413], [11415, 11415],
1209        [11417, 11417], [11419, 11419], [11421, 11421], [11423, 11423],
1210        [11425, 11425], [11427, 11427], [11429, 11429], [11431, 11431],
1211        [11433, 11433], [11435, 11435], [11437, 11437], [11439, 11439],
1212        [11441, 11441], [11443, 11443], [11445, 11445], [11447, 11447],
1213        [11449, 11449], [11451, 11451], [11453, 11453], [11455, 11455],
1214        [11457, 11457], [11459, 11459], [11461, 11461], [11463, 11463],
1215        [11465, 11465], [11467, 11467], [11469, 11469], [11471, 11471],
1216        [11473, 11473], [11475, 11475], [11477, 11477], [11479, 11479],
1217        [11481, 11481], [11483, 11483], [11485, 11485], [11487, 11487],
1218        [11489, 11489], [11491, 11491], [11500, 11500], [11502, 11502],
1219        [11507, 11507], [11520, 11557], [11559, 11559], [11565, 11565],
1220        [42561, 42561], [42563, 42563], [42565, 42565], [42567, 42567],
1221        [42569, 42569], [42571, 42571], [42573, 42573], [42575, 42575],
1222        [42577, 42577], [42579, 42579], [42581, 42581], [42583, 42583],
1223        [42585, 42585], [42587, 42587], [42589, 42589], [42591, 42591],
1224        [42593, 42593], [42595, 42595], [42597, 42597], [42599, 42599],
1225        [42601, 42601], [42603, 42603], [42605, 42605], [42625, 42625],
1226        [42627, 42627], [42629, 42629], [42631, 42631], [42633, 42633],
1227        [42635, 42635], [42637, 42637], [42639, 42639], [42641, 42641],
1228        [42643, 42643], [42645, 42645], [42647, 42647], [42649, 42649],
1229        [42651, 42651], [42787, 42787], [42789, 42789], [42791, 42791],
1230        [42793, 42793], [42795, 42795], [42797, 42797], [42799, 42799],
1231        [42803, 42803], [42805, 42805], [42807, 42807], [42809, 42809],
1232        [42811, 42811], [42813, 42813], [42815, 42815], [42817, 42817],
1233        [42819, 42819], [42821, 42821], [42823, 42823], [42825, 42825],
1234        [42827, 42827], [42829, 42829], [42831, 42831], [42833, 42833],
1235        [42835, 42835], [42837, 42837], [42839, 42839], [42841, 42841],
1236        [42843, 42843], [42845, 42845], [42847, 42847], [42849, 42849],
1237        [42851, 42851], [42853, 42853], [42855, 42855], [42857, 42857],
1238        [42859, 42859], [42861, 42861], [42863, 42863], [42874, 42874],
1239        [42876, 42876], [42879, 42879], [42881, 42881], [42883, 42883],
1240        [42885, 42885], [42887, 42887], [42892, 42892], [42897, 42897],
1241        [42899, 42899], [42903, 42903], [42905, 42905], [42907, 42907],
1242        [42909, 42909], [42911, 42911], [42913, 42913], [42915, 42915],
1243        [42917, 42917], [42919, 42919], [42921, 42921], [42933, 42933],
1244        [42935, 42935], [43859, 43859], [43888, 43967], [64256, 64262],
1245        [64275, 64279], [65345, 65370], [66600, 66639], [66776, 66811],
1246        [68800, 68850], [71872, 71903], [125218, 125251]**/
1247        const UnicodeSet codepoint_set
1248            {{{Empty, 3}, {Mixed, 1}, {Empty, 1}, {Mixed, 16}, {Empty, 5},
1249              {Mixed, 6}, {Empty, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 7},
1250              {Empty, 1}, {Mixed, 2}, {Empty, 114}, {Mixed, 1}, {Empty, 68},
1251              {Mixed, 1}, {Empty, 6}, {Mixed, 1}, {Empty, 4}, {Mixed, 12},
1252              {Full, 1}, {Mixed, 3}, {Empty, 10}, {Mixed, 3}, {Empty, 25},
1253              {Mixed, 2}, {Empty, 57}, {Mixed, 7}, {Full, 1}, {Mixed, 1},
1254              {Empty, 968}, {Mixed, 3}, {Empty, 4}, {Mixed, 5}, {Empty, 28},
1255              {Mixed, 2}, {Full, 2}, {Empty, 634}, {Mixed, 1}, {Empty, 33},
1256              {Mixed, 1}, {Empty, 38}, {Mixed, 2}, {Empty, 3}, {Mixed, 2},
1257              {Empty, 62}, {Full, 1}, {Mixed, 1}, {Empty, 94}, {Full, 1},
1258              {Empty, 1666}, {Mixed, 2}, {Empty, 30901}},
1259             {0x07fffffe, 0x00200000, 0x80000000, 0xff7fffff, 0xaaaaaaaa,
1260              0x54aaaaaa, 0xaaaaab55, 0xd4aaaaaa, 0x46241129, 0xa251212a,
1261              0xb5555b60, 0xaa2daaaa, 0xaaaaaaaa, 0x900aaaa8, 0x1adfaa85,
1262              0x20269f6b, 0x60041f89, 0x00000020, 0x388a0000, 0x00010000,
1263              0xfffff000, 0xaae37fff, 0x092faaaa, 0xffff0000, 0xaaaaaaaa,
1264              0xaaaaa802, 0xaaaaaaaa, 0xaaaad554, 0xaaaaaaaa, 0xaaaaaaaa,
1265              0x0000aaaa, 0xfffffffe, 0x000000ff, 0x3f000000, 0x000001ff,
1266              0x22000000, 0xaaaaaaaa, 0xaaaaaaaa, 0xaaaaaaaa, 0xaaaaaaaa,
1267              0x0feaaaaa, 0xaaaaaaaa, 0xaaaaaaaa, 0xaaaaaaaa, 0x003f00ff,
1268              0x00ff00ff, 0x00ff003f, 0x3fff00ff, 0x50dfffff, 0x00cf10dc,
1269              0x10dc00ff, 0x00004000, 0xffff0000, 0x00000010, 0xffff0000,
1270              0x000003ff, 0xffff0000, 0x7fffffff, 0x00481562, 0xaaaaaaaa,
1271              0xaaaaaaaa, 0xaaaaaaaa, 0x0008500a, 0x000020bf, 0xaaaaaaaa,
1272              0x00002aaa, 0x0aaaaaaa, 0xaaa8aaa8, 0xaaaaaaaa, 0x9400aaaa,
1273              0xaa8a10aa, 0x00a002aa, 0x00080000, 0xffff0000, 0x00f8007f,
1274              0x07fffffe, 0xffffff00, 0x0000ffff, 0xff000000, 0x0fffffff,
1275              0x0007ffff, 0xfffffffc, 0x0000000f}};
1276        static BinaryPropertyObject property_object{CWU, codepoint_set};
1277    }
1278    namespace CASED_ns {
1279        /** Code Point Ranges for Cased
1280        [65, 90], [97, 122], [170, 170], [181, 181], [186, 186], [192, 214],
1281        [216, 246], [248, 442], [444, 447], [452, 659], [661, 696],
1282        [704, 705], [736, 740], [837, 837], [880, 883], [886, 887],
1283        [890, 893], [895, 895], [902, 902], [904, 906], [908, 908],
1284        [910, 929], [931, 1013], [1015, 1153], [1162, 1327], [1329, 1366],
1285        [1377, 1415], [4256, 4293], [4295, 4295], [4301, 4301],
1286        [5024, 5109], [5112, 5117], [7296, 7304], [7424, 7615],
1287        [7680, 7957], [7960, 7965], [7968, 8005], [8008, 8013],
1288        [8016, 8023], [8025, 8025], [8027, 8027], [8029, 8029],
1289        [8031, 8061], [8064, 8116], [8118, 8124], [8126, 8126],
1290        [8130, 8132], [8134, 8140], [8144, 8147], [8150, 8155],
1291        [8160, 8172], [8178, 8180], [8182, 8188], [8305, 8305],
1292        [8319, 8319], [8336, 8348], [8450, 8450], [8455, 8455],
1293        [8458, 8467], [8469, 8469], [8473, 8477], [8484, 8484],
1294        [8486, 8486], [8488, 8488], [8490, 8493], [8495, 8500],
1295        [8505, 8505], [8508, 8511], [8517, 8521], [8526, 8526],
1296        [8544, 8575], [8579, 8580], [9398, 9449], [11264, 11310],
1297        [11312, 11358], [11360, 11492], [11499, 11502], [11506, 11507],
1298        [11520, 11557], [11559, 11559], [11565, 11565], [42560, 42605],
1299        [42624, 42653], [42786, 42887], [42891, 42894], [42896, 42926],
1300        [42928, 42935], [43000, 43002], [43824, 43866], [43868, 43877],
1301        [43888, 43967], [64256, 64262], [64275, 64279], [65313, 65338],
1302        [65345, 65370], [66560, 66639], [66736, 66771], [66776, 66811],
1303        [68736, 68786], [68800, 68850], [71840, 71903], [119808, 119892],
1304        [119894, 119964], [119966, 119967], [119970, 119970],
1305        [119973, 119974], [119977, 119980], [119982, 119993],
1306        [119995, 119995], [119997, 120003], [120005, 120069],
1307        [120071, 120074], [120077, 120084], [120086, 120092],
1308        [120094, 120121], [120123, 120126], [120128, 120132],
1309        [120134, 120134], [120138, 120144], [120146, 120485],
1310        [120488, 120512], [120514, 120538], [120540, 120570],
1311        [120572, 120596], [120598, 120628], [120630, 120654],
1312        [120656, 120686], [120688, 120712], [120714, 120744],
1313        [120746, 120770], [120772, 120779], [125184, 125251],
1314        [127280, 127305], [127312, 127337], [127344, 127369]**/
1315        const UnicodeSet codepoint_set
1316            {{{Empty, 2}, {Mixed, 2}, {Empty, 1}, {Mixed, 3}, {Full, 5},
1317              {Mixed, 2}, {Full, 5}, {Mixed, 4}, {Empty, 2}, {Mixed, 4},
1318              {Full, 1}, {Mixed, 1}, {Full, 4}, {Mixed, 1}, {Full, 4},
1319              {Mixed, 4}, {Empty, 88}, {Full, 1}, {Mixed, 1}, {Empty, 22},
1320              {Full, 2}, {Mixed, 1}, {Empty, 68}, {Mixed, 1}, {Empty, 3},
1321              {Full, 6}, {Empty, 2}, {Full, 8}, {Mixed, 1}, {Full, 1},
1322              {Mixed, 2}, {Full, 1}, {Mixed, 3}, {Empty, 3}, {Mixed, 2},
1323              {Empty, 3}, {Mixed, 3}, {Full, 1}, {Mixed, 1}, {Empty, 24},
1324              {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Empty, 56}, {Full, 1},
1325              {Mixed, 2}, {Full, 4}, {Mixed, 1}, {Full, 1}, {Mixed, 1},
1326              {Empty, 968}, {Full, 1}, {Mixed, 2}, {Empty, 4}, {Mixed, 1},
1327              {Full, 2}, {Mixed, 2}, {Empty, 1}, {Mixed, 1}, {Empty, 25},
1328              {Mixed, 3}, {Full, 2}, {Empty, 634}, {Mixed, 1}, {Empty, 32},
1329              {Mixed, 2}, {Empty, 37}, {Full, 2}, {Mixed, 1}, {Empty, 2},
1330              {Mixed, 3}, {Empty, 60}, {Full, 1}, {Mixed, 1}, {Full, 1},
1331              {Mixed, 1}, {Empty, 93}, {Full, 2}, {Empty, 1497}, {Full, 2},
1332              {Mixed, 1}, {Full, 1}, {Mixed, 3}, {Full, 1}, {Mixed, 3},
1333              {Full, 10}, {Mixed, 10}, {Empty, 137}, {Full, 2}, {Mixed, 1},
1334              {Empty, 62}, {Mixed, 4}, {Empty, 30835}},
1335             {0x07fffffe, 0x07fffffe, 0x04200400, 0xff7fffff, 0xff7fffff,
1336              0xf7ffffff, 0xfffffff0, 0xffefffff, 0x01ffffff, 0x00000003,
1337              0x0000001f, 0x00000020, 0xbccf0000, 0xffffd740, 0xfffffffb,
1338              0xffbfffff, 0xfffffc03, 0xfffeffff, 0x007fffff, 0xfffffffe,
1339              0x000000ff, 0x000020bf, 0x3f3fffff, 0x000001ff, 0x3f3fffff,
1340              0xaaff3f3f, 0x3fffffff, 0x5fdfffff, 0x0fcf1fdc, 0x1fdc1fff,
1341              0x80020000, 0x1fff0000, 0x3e2ffc84, 0xf21fbd50, 0x000043e0,
1342              0x00000018, 0xffc00000, 0x000003ff, 0xffff7fff, 0x7fffffff,
1343              0x000c781f, 0x000020bf, 0x00003fff, 0x3fffffff, 0xfffffffc,
1344              0xffff78ff, 0x00ff7fff, 0x07000000, 0xffff0000, 0xf7ffffff,
1345              0xffff003f, 0x00f8007f, 0x07fffffe, 0x07fffffe, 0x0000ffff,
1346              0xffff0000, 0xff0fffff, 0x0fffffff, 0x0007ffff, 0x0007ffff,
1347              0xffdfffff, 0xdfffffff, 0xebffde64, 0xffffffef, 0xdfdfe7bf,
1348              0x7bffffff, 0xfffdfc5f, 0xffffff3f, 0xf7fffffd, 0xf7ffffff,
1349              0xffdfffff, 0xffdfffff, 0xffff7fff, 0xffff7fff, 0xfffffdff,
1350              0xfffffdff, 0x00000ff7, 0x0000000f, 0xffff0000, 0xffff03ff,
1351              0xffff03ff, 0x000003ff}};
1352        static BinaryPropertyObject property_object{Cased, codepoint_set};
1353    }
1354    namespace DI_ns {
1355        /** Code Point Ranges for DI
1356        [173, 173], [847, 847], [1564, 1564], [4447, 4448], [6068, 6069],
1357        [6155, 6158], [8203, 8207], [8234, 8238], [8288, 8303],
1358        [12644, 12644], [65024, 65039], [65279, 65279], [65440, 65440],
1359        [65520, 65528], [113824, 113827], [119155, 119162],
1360        [917504, 921599]**/
1361        const UnicodeSet codepoint_set
1362            {{{Empty, 5}, {Mixed, 1}, {Empty, 20}, {Mixed, 1}, {Empty, 21},
1363              {Mixed, 1}, {Empty, 89}, {Mixed, 2}, {Empty, 49}, {Mixed, 1},
1364              {Empty, 2}, {Mixed, 1}, {Empty, 63}, {Mixed, 2}, {Empty, 1},
1365              {Mixed, 1}, {Empty, 135}, {Mixed, 1}, {Empty, 1636},
1366              {Mixed, 1}, {Empty, 6}, {Mixed, 1}, {Empty, 5}, {Mixed, 1},
1367              {Empty, 1}, {Mixed, 1}, {Empty, 1509}, {Mixed, 1},
1368              {Empty, 165}, {Mixed, 1}, {Empty, 24948}, {Full, 128},
1369              {Empty, 6016}},
1370             {0x00002000, 0x00008000, 0x10000000, 0x80000000, 0x00000001,
1371              0x00300000, 0x00007800, 0x0000f800, 0x00007c00, 0x0000ffff,
1372              0x00000010, 0x0000ffff, 0x80000000, 0x00000001, 0x01ff0000,
1373              0x0000000f, 0x07f80000}};
1374        static BinaryPropertyObject property_object{DI, codepoint_set};
1375    }
1376    namespace GR_BASE_ns {
1377        /** Code Point Ranges for Gr_Base
1378        [32, 126], [160, 172], [174, 767], [880, 887], [890, 895],
1379        [900, 906], [908, 908], [910, 929], [931, 1154], [1162, 1327],
1380        [1329, 1366], [1369, 1375], [1377, 1415], [1417, 1418],
1381        [1421, 1423], [1470, 1470], [1472, 1472], [1475, 1475],
1382        [1478, 1478], [1488, 1514], [1520, 1524], [1542, 1551],
1383        [1563, 1563], [1566, 1610], [1632, 1647], [1649, 1749],
1384        [1758, 1758], [1765, 1766], [1769, 1769], [1774, 1805],
1385        [1808, 1808], [1810, 1839], [1869, 1957], [1969, 1969],
1386        [1984, 2026], [2036, 2042], [2048, 2069], [2074, 2074],
1387        [2084, 2084], [2088, 2088], [2096, 2110], [2112, 2136],
1388        [2142, 2142], [2208, 2228], [2230, 2237], [2307, 2361],
1389        [2363, 2363], [2365, 2368], [2377, 2380], [2382, 2384],
1390        [2392, 2401], [2404, 2432], [2434, 2435], [2437, 2444],
1391        [2447, 2448], [2451, 2472], [2474, 2480], [2482, 2482],
1392        [2486, 2489], [2493, 2493], [2495, 2496], [2503, 2504],
1393        [2507, 2508], [2510, 2510], [2524, 2525], [2527, 2529],
1394        [2534, 2555], [2563, 2563], [2565, 2570], [2575, 2576],
1395        [2579, 2600], [2602, 2608], [2610, 2611], [2613, 2614],
1396        [2616, 2617], [2622, 2624], [2649, 2652], [2654, 2654],
1397        [2662, 2671], [2674, 2676], [2691, 2691], [2693, 2701],
1398        [2703, 2705], [2707, 2728], [2730, 2736], [2738, 2739],
1399        [2741, 2745], [2749, 2752], [2761, 2761], [2763, 2764],
1400        [2768, 2768], [2784, 2785], [2790, 2801], [2809, 2809],
1401        [2818, 2819], [2821, 2828], [2831, 2832], [2835, 2856],
1402        [2858, 2864], [2866, 2867], [2869, 2873], [2877, 2877],
1403        [2880, 2880], [2887, 2888], [2891, 2892], [2908, 2909],
1404        [2911, 2913], [2918, 2935], [2947, 2947], [2949, 2954],
1405        [2958, 2960], [2962, 2965], [2969, 2970], [2972, 2972],
1406        [2974, 2975], [2979, 2980], [2984, 2986], [2990, 3001],
1407        [3007, 3007], [3009, 3010], [3014, 3016], [3018, 3020],
1408        [3024, 3024], [3046, 3066], [3073, 3075], [3077, 3084],
1409        [3086, 3088], [3090, 3112], [3114, 3129], [3133, 3133],
1410        [3137, 3140], [3160, 3162], [3168, 3169], [3174, 3183],
1411        [3192, 3200], [3202, 3203], [3205, 3212], [3214, 3216],
1412        [3218, 3240], [3242, 3251], [3253, 3257], [3261, 3262],
1413        [3264, 3265], [3267, 3268], [3271, 3272], [3274, 3275],
1414        [3294, 3294], [3296, 3297], [3302, 3311], [3313, 3314],
1415        [3330, 3331], [3333, 3340], [3342, 3344], [3346, 3386],
1416        [3389, 3389], [3391, 3392], [3398, 3400], [3402, 3404],
1417        [3406, 3407], [3412, 3414], [3416, 3425], [3430, 3455],
1418        [3458, 3459], [3461, 3478], [3482, 3505], [3507, 3515],
1419        [3517, 3517], [3520, 3526], [3536, 3537], [3544, 3550],
1420        [3558, 3567], [3570, 3572], [3585, 3632], [3634, 3635],
1421        [3647, 3654], [3663, 3675], [3713, 3714], [3716, 3716],
1422        [3719, 3720], [3722, 3722], [3725, 3725], [3732, 3735],
1423        [3737, 3743], [3745, 3747], [3749, 3749], [3751, 3751],
1424        [3754, 3755], [3757, 3760], [3762, 3763], [3773, 3773],
1425        [3776, 3780], [3782, 3782], [3792, 3801], [3804, 3807],
1426        [3840, 3863], [3866, 3892], [3894, 3894], [3896, 3896],
1427        [3898, 3911], [3913, 3948], [3967, 3967], [3973, 3973],
1428        [3976, 3980], [4030, 4037], [4039, 4044], [4046, 4058],
1429        [4096, 4140], [4145, 4145], [4152, 4152], [4155, 4156],
1430        [4159, 4183], [4186, 4189], [4193, 4208], [4213, 4225],
1431        [4227, 4228], [4231, 4236], [4238, 4252], [4254, 4293],
1432        [4295, 4295], [4301, 4301], [4304, 4680], [4682, 4685],
1433        [4688, 4694], [4696, 4696], [4698, 4701], [4704, 4744],
1434        [4746, 4749], [4752, 4784], [4786, 4789], [4792, 4798],
1435        [4800, 4800], [4802, 4805], [4808, 4822], [4824, 4880],
1436        [4882, 4885], [4888, 4954], [4960, 4988], [4992, 5017],
1437        [5024, 5109], [5112, 5117], [5120, 5788], [5792, 5880],
1438        [5888, 5900], [5902, 5905], [5920, 5937], [5941, 5942],
1439        [5952, 5969], [5984, 5996], [5998, 6000], [6016, 6067],
1440        [6070, 6070], [6078, 6085], [6087, 6088], [6100, 6108],
1441        [6112, 6121], [6128, 6137], [6144, 6154], [6160, 6169],
1442        [6176, 6263], [6272, 6276], [6279, 6312], [6314, 6314],
1443        [6320, 6389], [6400, 6430], [6435, 6438], [6441, 6443],
1444        [6448, 6449], [6451, 6456], [6464, 6464], [6468, 6509],
1445        [6512, 6516], [6528, 6571], [6576, 6601], [6608, 6618],
1446        [6622, 6678], [6681, 6682], [6686, 6741], [6743, 6743],
1447        [6753, 6753], [6755, 6756], [6765, 6770], [6784, 6793],
1448        [6800, 6809], [6816, 6829], [6916, 6963], [6965, 6965],
1449        [6971, 6971], [6973, 6977], [6979, 6987], [6992, 7018],
1450        [7028, 7036], [7042, 7073], [7078, 7079], [7082, 7082],
1451        [7086, 7141], [7143, 7143], [7146, 7148], [7150, 7150],
1452        [7154, 7155], [7164, 7211], [7220, 7221], [7227, 7241],
1453        [7245, 7304], [7360, 7367], [7379, 7379], [7393, 7393],
1454        [7401, 7404], [7406, 7411], [7413, 7414], [7424, 7615],
1455        [7680, 7957], [7960, 7965], [7968, 8005], [8008, 8013],
1456        [8016, 8023], [8025, 8025], [8027, 8027], [8029, 8029],
1457        [8031, 8061], [8064, 8116], [8118, 8132], [8134, 8147],
1458        [8150, 8155], [8157, 8175], [8178, 8180], [8182, 8190],
1459        [8192, 8202], [8208, 8231], [8239, 8287], [8304, 8305],
1460        [8308, 8334], [8336, 8348], [8352, 8382], [8448, 8587],
1461        [8592, 9214], [9216, 9254], [9280, 9290], [9312, 11123],
1462        [11126, 11157], [11160, 11193], [11197, 11208], [11210, 11217],
1463        [11244, 11247], [11264, 11310], [11312, 11358], [11360, 11502],
1464        [11506, 11507], [11513, 11557], [11559, 11559], [11565, 11565],
1465        [11568, 11623], [11631, 11632], [11648, 11670], [11680, 11686],
1466        [11688, 11694], [11696, 11702], [11704, 11710], [11712, 11718],
1467        [11720, 11726], [11728, 11734], [11736, 11742], [11776, 11844],
1468        [11904, 11929], [11931, 12019], [12032, 12245], [12272, 12283],
1469        [12288, 12329], [12336, 12351], [12353, 12438], [12443, 12543],
1470        [12549, 12589], [12593, 12686], [12688, 12730], [12736, 12771],
1471        [12784, 12830], [12832, 13054], [13056, 19893], [19904, 40917],
1472        [40960, 42124], [42128, 42182], [42192, 42539], [42560, 42606],
1473        [42611, 42611], [42622, 42653], [42656, 42735], [42738, 42743],
1474        [42752, 42926], [42928, 42935], [42999, 43009], [43011, 43013],
1475        [43015, 43018], [43020, 43044], [43047, 43051], [43056, 43065],
1476        [43072, 43127], [43136, 43203], [43214, 43225], [43250, 43261],
1477        [43264, 43301], [43310, 43334], [43346, 43347], [43359, 43388],
1478        [43395, 43442], [43444, 43445], [43450, 43451], [43453, 43469],
1479        [43471, 43481], [43486, 43492], [43494, 43518], [43520, 43560],
1480        [43567, 43568], [43571, 43572], [43584, 43586], [43588, 43595],
1481        [43597, 43597], [43600, 43609], [43612, 43643], [43645, 43695],
1482        [43697, 43697], [43701, 43702], [43705, 43709], [43712, 43712],
1483        [43714, 43714], [43739, 43755], [43758, 43765], [43777, 43782],
1484        [43785, 43790], [43793, 43798], [43808, 43814], [43816, 43822],
1485        [43824, 43877], [43888, 44004], [44006, 44007], [44009, 44012],
1486        [44016, 44025], [44032, 55203], [55216, 55238], [55243, 55291],
1487        [63744, 64109], [64112, 64217], [64256, 64262], [64275, 64279],
1488        [64285, 64285], [64287, 64310], [64312, 64316], [64318, 64318],
1489        [64320, 64321], [64323, 64324], [64326, 64449], [64467, 64831],
1490        [64848, 64911], [64914, 64967], [65008, 65021], [65040, 65049],
1491        [65072, 65106], [65108, 65126], [65128, 65131], [65136, 65140],
1492        [65142, 65276], [65281, 65437], [65440, 65470], [65474, 65479],
1493        [65482, 65487], [65490, 65495], [65498, 65500], [65504, 65510],
1494        [65512, 65518], [65532, 65533], [65536, 65547], [65549, 65574],
1495        [65576, 65594], [65596, 65597], [65599, 65613], [65616, 65629],
1496        [65664, 65786], [65792, 65794], [65799, 65843], [65847, 65934],
1497        [65936, 65947], [65952, 65952], [66000, 66044], [66176, 66204],
1498        [66208, 66256], [66273, 66299], [66304, 66339], [66352, 66378],
1499        [66384, 66421], [66432, 66461], [66463, 66499], [66504, 66517],
1500        [66560, 66717], [66720, 66729], [66736, 66771], [66776, 66811],
1501        [66816, 66855], [66864, 66915], [66927, 66927], [67072, 67382],
1502        [67392, 67413], [67424, 67431], [67584, 67589], [67592, 67592],
1503        [67594, 67637], [67639, 67640], [67644, 67644], [67647, 67669],
1504        [67671, 67742], [67751, 67759], [67808, 67826], [67828, 67829],
1505        [67835, 67867], [67871, 67897], [67903, 67903], [67968, 68023],
1506        [68028, 68047], [68050, 68096], [68112, 68115], [68117, 68119],
1507        [68121, 68147], [68160, 68167], [68176, 68184], [68192, 68255],
1508        [68288, 68324], [68331, 68342], [68352, 68405], [68409, 68437],
1509        [68440, 68466], [68472, 68497], [68505, 68508], [68521, 68527],
1510        [68608, 68680], [68736, 68786], [68800, 68850], [68858, 68863],
1511        [69216, 69246], [69632, 69632], [69634, 69687], [69703, 69709],
1512        [69714, 69743], [69762, 69810], [69815, 69816], [69819, 69820],
1513        [69822, 69825], [69840, 69864], [69872, 69881], [69891, 69926],
1514        [69932, 69932], [69942, 69955], [69968, 70002], [70004, 70006],
1515        [70018, 70069], [70079, 70089], [70093, 70093], [70096, 70111],
1516        [70113, 70132], [70144, 70161], [70163, 70190], [70194, 70195],
1517        [70197, 70197], [70200, 70205], [70272, 70278], [70280, 70280],
1518        [70282, 70285], [70287, 70301], [70303, 70313], [70320, 70366],
1519        [70368, 70370], [70384, 70393], [70402, 70403], [70405, 70412],
1520        [70415, 70416], [70419, 70440], [70442, 70448], [70450, 70451],
1521        [70453, 70457], [70461, 70461], [70463, 70463], [70465, 70468],
1522        [70471, 70472], [70475, 70477], [70480, 70480], [70493, 70499],
1523        [70656, 70711], [70720, 70721], [70725, 70725], [70727, 70745],
1524        [70747, 70747], [70749, 70749], [70784, 70831], [70833, 70834],
1525        [70841, 70841], [70843, 70844], [70846, 70846], [70849, 70849],
1526        [70852, 70855], [70864, 70873], [71040, 71086], [71088, 71089],
1527        [71096, 71099], [71102, 71102], [71105, 71131], [71168, 71218],
1528        [71227, 71228], [71230, 71230], [71233, 71236], [71248, 71257],
1529        [71264, 71276], [71296, 71338], [71340, 71340], [71342, 71343],
1530        [71350, 71350], [71360, 71369], [71424, 71449], [71456, 71457],
1531        [71462, 71462], [71472, 71487], [71840, 71922], [71935, 71935],
1532        [72384, 72440], [72704, 72712], [72714, 72751], [72766, 72766],
1533        [72768, 72773], [72784, 72812], [72816, 72847], [72873, 72873],
1534        [72881, 72881], [72884, 72884], [73728, 74649], [74752, 74862],
1535        [74864, 74868], [74880, 75075], [77824, 78894], [82944, 83526],
1536        [92160, 92728], [92736, 92766], [92768, 92777], [92782, 92783],
1537        [92880, 92909], [92917, 92917], [92928, 92975], [92983, 92997],
1538        [93008, 93017], [93019, 93025], [93027, 93047], [93053, 93071],
1539        [93952, 94020], [94032, 94078], [94099, 94111], [94176, 94176],
1540        [94208, 100332], [100352, 101106], [110592, 110593],
1541        [113664, 113770], [113776, 113788], [113792, 113800],
1542        [113808, 113817], [113820, 113820], [113823, 113823],
1543        [118784, 119029], [119040, 119078], [119081, 119140],
1544        [119142, 119142], [119146, 119149], [119171, 119172],
1545        [119180, 119209], [119214, 119272], [119296, 119361],
1546        [119365, 119365], [119552, 119638], [119648, 119665],
1547        [119808, 119892], [119894, 119964], [119966, 119967],
1548        [119970, 119970], [119973, 119974], [119977, 119980],
1549        [119982, 119993], [119995, 119995], [119997, 120003],
1550        [120005, 120069], [120071, 120074], [120077, 120084],
1551        [120086, 120092], [120094, 120121], [120123, 120126],
1552        [120128, 120132], [120134, 120134], [120138, 120144],
1553        [120146, 120485], [120488, 120779], [120782, 121343],
1554        [121399, 121402], [121453, 121460], [121462, 121475],
1555        [121477, 121483], [124928, 125124], [125127, 125135],
1556        [125184, 125251], [125264, 125273], [125278, 125279],
1557        [126464, 126467], [126469, 126495], [126497, 126498],
1558        [126500, 126500], [126503, 126503], [126505, 126514],
1559        [126516, 126519], [126521, 126521], [126523, 126523],
1560        [126530, 126530], [126535, 126535], [126537, 126537],
1561        [126539, 126539], [126541, 126543], [126545, 126546],
1562        [126548, 126548], [126551, 126551], [126553, 126553],
1563        [126555, 126555], [126557, 126557], [126559, 126559],
1564        [126561, 126562], [126564, 126564], [126567, 126570],
1565        [126572, 126578], [126580, 126583], [126585, 126588],
1566        [126590, 126590], [126592, 126601], [126603, 126619],
1567        [126625, 126627], [126629, 126633], [126635, 126651],
1568        [126704, 126705], [126976, 127019], [127024, 127123],
1569        [127136, 127150], [127153, 127167], [127169, 127183],
1570        [127185, 127221], [127232, 127244], [127248, 127278],
1571        [127280, 127339], [127344, 127404], [127462, 127490],
1572        [127504, 127547], [127552, 127560], [127568, 127569],
1573        [127744, 128722], [128736, 128748], [128752, 128758],
1574        [128768, 128883], [128896, 128980], [129024, 129035],
1575        [129040, 129095], [129104, 129113], [129120, 129159],
1576        [129168, 129197], [129296, 129310], [129312, 129319],
1577        [129328, 129328], [129331, 129342], [129344, 129355],
1578        [129360, 129374], [129408, 129425], [129472, 129472],
1579        [131072, 173782], [173824, 177972], [177984, 178205],
1580        [178208, 183969], [194560, 195101]**/
1581        const UnicodeSet codepoint_set
1582            {{{Empty, 1}, {Full, 2}, {Mixed, 1}, {Empty, 1}, {Mixed, 1},
1583              {Full, 18}, {Empty, 3}, {Mixed, 3}, {Full, 6}, {Mixed, 1},
1584              {Full, 4}, {Mixed, 8}, {Full, 1}, {Mixed, 2}, {Full, 2},
1585              {Mixed, 5}, {Full, 2}, {Mixed, 1}, {Full, 1}, {Mixed, 4},
1586              {Empty, 2}, {Mixed, 1}, {Empty, 2}, {Mixed, 43}, {Empty, 1},
1587              {Mixed, 3}, {Empty, 1}, {Mixed, 7}, {Empty, 1}, {Full, 1},
1588              {Mixed, 4}, {Full, 1}, {Mixed, 1}, {Full, 11}, {Mixed, 1},
1589              {Full, 1}, {Mixed, 3}, {Full, 1}, {Mixed, 1}, {Full, 1},
1590              {Mixed, 3}, {Full, 2}, {Mixed, 1}, {Full, 20}, {Mixed, 1},
1591              {Full, 2}, {Mixed, 5}, {Full, 1}, {Mixed, 4}, {Full, 2},
1592              {Mixed, 3}, {Full, 1}, {Mixed, 5}, {Full, 1}, {Mixed, 2},
1593              {Full, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 4}, {Empty, 2},
1594              {Mixed, 6}, {Full, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 2},
1595              {Full, 1}, {Mixed, 1}, {Empty, 1}, {Mixed, 2}, {Full, 6},
1596              {Empty, 2}, {Full, 8}, {Mixed, 1}, {Full, 1}, {Mixed, 2},
1597              {Full, 1}, {Mixed, 5}, {Full, 1}, {Mixed, 3}, {Empty, 2},
1598              {Full, 4}, {Mixed, 1}, {Full, 18}, {Mixed, 1}, {Full, 1},
1599              {Mixed, 2}, {Full, 56}, {Mixed, 5}, {Full, 1}, {Mixed, 2},
1600              {Full, 4}, {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Full, 1},
1601              {Mixed, 4}, {Empty, 1}, {Full, 2}, {Mixed, 1}, {Empty, 1},
1602              {Mixed, 1}, {Full, 2}, {Mixed, 1}, {Full, 6}, {Mixed, 2},
1603              {Full, 1}, {Mixed, 2}, {Full, 1}, {Mixed, 1}, {Full, 3},
1604              {Mixed, 2}, {Full, 2}, {Mixed, 2}, {Full, 1}, {Mixed, 2},
1605              {Full, 6}, {Mixed, 1}, {Full, 213}, {Mixed, 1}, {Full, 656},
1606              {Mixed, 1}, {Empty, 1}, {Full, 36}, {Mixed, 1}, {Full, 1},
1607              {Mixed, 1}, {Full, 10}, {Mixed, 1}, {Full, 1}, {Mixed, 2},
1608              {Full, 2}, {Mixed, 1}, {Full, 5}, {Mixed, 1}, {Empty, 1},
1609              {Mixed, 3}, {Full, 1}, {Mixed, 1}, {Full, 2}, {Mixed, 2},
1610              {Full, 1}, {Mixed, 7}, {Full, 1}, {Mixed, 3}, {Full, 1},
1611              {Mixed, 5}, {Full, 1}, {Mixed, 1}, {Full, 3}, {Mixed, 1},
1612              {Full, 349}, {Mixed, 3}, {Empty, 264}, {Full, 11}, {Mixed, 1},
1613              {Full, 2}, {Mixed, 1}, {Empty, 1}, {Mixed, 3}, {Full, 3},
1614              {Mixed, 1}, {Full, 11}, {Mixed, 1}, {Full, 1}, {Mixed, 1},
1615              {Full, 1}, {Mixed, 6}, {Full, 3}, {Mixed, 2}, {Full, 3},
1616              {Mixed, 7}, {Empty, 1}, {Full, 3}, {Mixed, 3}, {Full, 2},
1617              {Mixed, 4}, {Empty, 4}, {Mixed, 1}, {Full, 1}, {Mixed, 2},
1618              {Full, 1}, {Mixed, 4}, {Full, 1}, {Mixed, 1}, {Empty, 1},
1619              {Full, 4}, {Mixed, 4}, {Full, 1}, {Mixed, 1}, {Full, 1},
1620              {Mixed, 1}, {Empty, 4}, {Full, 9}, {Mixed, 3}, {Empty, 4},
1621              {Mixed, 3}, {Full, 1}, {Mixed, 2}, {Empty, 1}, {Mixed, 3},
1622              {Empty, 2}, {Full, 1}, {Mixed, 2}, {Full, 1}, {Mixed, 3},
1623              {Full, 2}, {Empty, 1}, {Full, 1}, {Mixed, 1}, {Full, 1},
1624              {Mixed, 5}, {Empty, 2}, {Full, 2}, {Mixed, 1}, {Empty, 1},
1625              {Full, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Empty, 11},
1626              {Mixed, 1}, {Empty, 12}, {Mixed, 18}, {Empty, 2}, {Mixed, 8},
1627              {Empty, 4}, {Full, 1}, {Mixed, 2}, {Empty, 1}, {Full, 1},
1628              {Mixed, 2}, {Empty, 5}, {Full, 1}, {Mixed, 2}, {Empty, 1},
1629              {Full, 1}, {Mixed, 3}, {Full, 1}, {Mixed, 2}, {Empty, 1},
1630              {Mixed, 2}, {Empty, 11}, {Full, 2}, {Mixed, 1}, {Empty, 14},
1631              {Full, 1}, {Mixed, 1}, {Empty, 8}, {Mixed, 6}, {Empty, 26},
1632              {Full, 28}, {Mixed, 1}, {Empty, 3}, {Full, 3}, {Mixed, 1},
1633              {Full, 6}, {Mixed, 1}, {Empty, 85}, {Full, 33}, {Mixed, 1},
1634              {Empty, 126}, {Full, 18}, {Mixed, 1}, {Empty, 269},
1635              {Full, 17}, {Mixed, 3}, {Empty, 2}, {Mixed, 2}, {Full, 1},
1636              {Mixed, 4}, {Empty, 27}, {Full, 2}, {Mixed, 3}, {Empty, 2},
1637              {Mixed, 1}, {Full, 191}, {Mixed, 1}, {Full, 23}, {Mixed, 1},
1638              {Empty, 296}, {Mixed, 1}, {Empty, 95}, {Full, 3}, {Mixed, 2},
1639              {Empty, 155}, {Full, 7}, {Mixed, 1}, {Full, 1}, {Mixed, 1},
1640              {Full, 1}, {Mixed, 3}, {Full, 1}, {Mixed, 1}, {Full, 2},
1641              {Mixed, 1}, {Empty, 5}, {Full, 2}, {Mixed, 2}, {Empty, 4},
1642              {Full, 2}, {Mixed, 1}, {Full, 1}, {Mixed, 3}, {Full, 1},
1643              {Mixed, 3}, {Full, 10}, {Mixed, 1}, {Full, 8}, {Mixed, 1},
1644              {Full, 17}, {Empty, 1}, {Mixed, 1}, {Empty, 1}, {Mixed, 2},
1645              {Empty, 107}, {Full, 6}, {Mixed, 1}, {Empty, 1}, {Full, 2},
1646              {Mixed, 1}, {Empty, 37}, {Mixed, 6}, {Empty, 1}, {Mixed, 1},
1647              {Empty, 8}, {Full, 1}, {Mixed, 1}, {Full, 2}, {Mixed, 6},
1648              {Full, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Empty, 1},
1649              {Mixed, 4}, {Empty, 5}, {Full, 30}, {Mixed, 2}, {Full, 3},
1650              {Mixed, 1}, {Full, 2}, {Mixed, 1}, {Empty, 1}, {Mixed, 1},
1651              {Full, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 2}, {Empty, 2},
1652              {Mixed, 3}, {Empty, 1}, {Mixed, 1}, {Empty, 1}, {Mixed, 1},
1653              {Empty, 49}, {Full, 1334}, {Mixed, 1}, {Empty, 1},
1654              {Full, 129}, {Mixed, 1}, {Full, 6}, {Mixed, 1}, {Full, 180},
1655              {Mixed, 1}, {Empty, 330}, {Full, 16}, {Mixed, 1},
1656              {Empty, 28719}},
1657             {0x7fffffff, 0xffffdfff, 0xfcff0000, 0xffffd7f0, 0xfffffffb,
1658              0xfffffc07, 0xfffeffff, 0xfe7fffff, 0xfffffffe, 0x0000e6ff,
1659              0x40000000, 0xffff0049, 0x001f07ff, 0xc800ffc0, 0x000007ff,
1660              0xfffeffff, 0x403fffff, 0xffffc260, 0xfffd3fff, 0x0000ffff,
1661              0xffffe000, 0x0002003f, 0x07f007ff, 0x043fffff, 0x7fff0110,
1662              0x41ffffff, 0x3fdfffff, 0xfffffff8, 0xebffffff, 0xff01de01,
1663              0xfffffff3, 0xfff99fed, 0xa3c5fdff, 0xb0005981, 0x0fffffc3,
1664              0xfff987e8, 0xc36dfdff, 0x5e000001, 0x001cffc0, 0xfffbbfe8,
1665              0xe3edfdff, 0x00011a01, 0x0203ffc3, 0xfff99fec, 0x23edfdff,
1666              0xb0001981, 0x00ffffc3, 0xd63dc7e8, 0x83ffc718, 0x00011dc6,
1667              0x07ffffc0, 0xfffddfee, 0x23fffdff, 0x0700001e, 0xff00ffc3,
1668              0xfffddfed, 0x63effdff, 0x40000d9b, 0x0006ffc3, 0xfffddfec,
1669              0xa7ffffff, 0xff70ddc1, 0xffffffc3, 0xfc7fffec, 0x2ffbffff,
1670              0x7f03007f, 0x001cffc0, 0xfffffffe, 0x800dffff, 0x0fff807f,
1671              0xfef02596, 0x200decae, 0xf3ff005f, 0xfcffffff, 0xfd5fffff,
1672              0xfffffeff, 0x80001fff, 0x00001f20, 0xc0000000, 0x07ffdfbf,
1673              0x99021fff, 0x3cffffff, 0xffe1fffe, 0xdfffdf9b, 0xffff20bf,
1674              0x3d7f3dff, 0xffff3dff, 0x7f3dffff, 0xff7fff3d, 0xff3dffff,
1675              0x07ffffff, 0x1fffffff, 0x03ffffff, 0x3f3fffff, 0x1fffffff,
1676              0x01ffffff, 0x0003dfff, 0x0063ffff, 0x0003ffff, 0x0001dfff,
1677              0xc04fffff, 0x1ff001bf, 0x03ff03ff, 0x03ff07ff, 0x00ffffff,
1678              0xffffff9f, 0xffff05ff, 0x003fffff, 0x7fffffff, 0x01fb0e78,
1679              0xfffffff1, 0x001f3fff, 0xffff0fff, 0xc7ff03ff, 0xc67fffff,
1680              0x00bfffff, 0x0007e01a, 0x03ff03ff, 0x00003fff, 0xfffffff0,
1681              0xe82fffff, 0xffff0ffb, 0x1ff007ff, 0xfffffffc, 0xffffc4c3,
1682              0xf00c5cbf, 0xf8300fff, 0xffffe3ff, 0x000001ff, 0x000800ff,
1683              0x006fde02, 0x3f3fffff, 0xaaff3f3f, 0x3fffffff, 0xffdfffff,
1684              0xefcfffdf, 0x7fdcffff, 0xffff07ff, 0xffff80ff, 0xfff30000,
1685              0x1fff7fff, 0x7fffffff, 0xffff0fff, 0x7fffffff, 0x0000007f,
1686              0x000007ff, 0xffcfffff, 0xff3fffff, 0xe3ffffff, 0x0003fdff,
1687              0x0000f000, 0xffff7fff, 0x7fffffff, 0xfe0c7fff, 0xffff20bf,
1688              0x000180ff, 0x007fffff, 0x7f7f7f7f, 0x7f7f7f7f, 0x0000001f,
1689              0xfbffffff, 0x000fffff, 0x003fffff, 0x0fff0000, 0xffff03ff,
1690              0xfffffffe, 0xf87fffff, 0xffffffe0, 0xfffe3fff, 0xffff7fff,
1691              0x07ffffff, 0xffff000f, 0x7fffffff, 0x7fffffff, 0x003fffff,
1692              0x003fffff, 0xffff1fff, 0xffff007f, 0x00000fff, 0xc0087fff,
1693              0x3fffffff, 0x00fcffff, 0x00ff7fff, 0xff800000, 0xfffff7bb,
1694              0x03ff0f9f, 0x00ffffff, 0x03ffc00f, 0x3ffc0000, 0xffffc03f,
1695              0x800c007f, 0x1fffffff, 0xfffffff8, 0xec37ffff, 0xc3ffbfff,
1696              0x7fffffdf, 0x001981ff, 0xf3ff2ff7, 0xefffffff, 0x3e62ffff,
1697              0xf8000005, 0x003fcfff, 0x007e7e7e, 0xffff7f7f, 0xffff003f,
1698              0x03ff1edf, 0xffff000f, 0xfffff87f, 0x0fffffff, 0xffff3fff,
1699              0x03ffffff, 0xa0f8007f, 0x5f7fffff, 0xffffffdb, 0xfff80003,
1700              0xffff0000, 0xfffcffff, 0x000000ff, 0x3fff0000, 0x03ff0000,
1701              0xffff0000, 0xfff7ffff, 0xffdf0f7f, 0x1fffffff, 0xfffffffe,
1702              0x3fffffff, 0x7fffffff, 0x1cfcfcfc, 0x30007f7f, 0xffffefff,
1703              0xb7ffff7f, 0x3fff3fff, 0x07ffffff, 0xffffff87, 0xff8fffff,
1704              0x0fff7fff, 0x00000001, 0xffff0000, 0x1fffffff, 0x1fffffff,
1705              0x0001ffff, 0x0ffffffe, 0xffff000f, 0xffff07ff, 0x003fffff,
1706              0xbfffffff, 0x003fff0f, 0x3fffffff, 0xffff03ff, 0xff0fffff,
1707              0x0fffffff, 0xffff00ff, 0x0000800f, 0x007fffff, 0x003fffff,
1708              0x000000ff, 0xfffffd3f, 0x91bfffff, 0xffbfffff, 0x7fffffff,
1709              0x0000ff80, 0xf837ffff, 0x8fffffff, 0x83ffffff, 0xf0ffffff,
1710              0xfffcffff, 0xfeef0001, 0x000fffff, 0x01ff00ff, 0x007ff81f,
1711              0xfe3fffff, 0xff3fffff, 0xff07ffff, 0x1e03ffff, 0x0000fe00,
1712              0x000001ff, 0x0007ffff, 0xfc07ffff, 0x7fffffff, 0xfffffffd,
1713              0x00ffffff, 0xfffc3f80, 0x0000ffff, 0xfffffffc, 0xd987ffff,
1714              0xffff0003, 0x03ff01ff, 0xfffffff8, 0xffc0107f, 0xffff000f,
1715              0x0077ffff, 0xfffffffc, 0x803fffff, 0xffff23ff, 0x001ffffe,
1716              0xfffbffff, 0x3f2c7fff, 0xbfffbd7f, 0xffff03ff, 0x7fffffff,
1717              0x03ff0007, 0xfff99fec, 0xa3edfdff, 0xe001399e, 0x0000000f,
1718              0x00ffffff, 0x2bffffa3, 0x5a06ffff, 0x03ff00f2, 0x4f037fff,
1719              0x0ffffffe, 0x5807ffff, 0x03ff001e, 0x00001fff, 0x0040d7ff,
1720              0x000003ff, 0x03ffffff, 0xffff0043, 0x8007ffff, 0x01ffffff,
1721              0xfffffdff, 0x4000ffff, 0xffff003f, 0xffff1fff, 0x0000ffff,
1722              0x00120200, 0x03ffffff, 0x001f7fff, 0x0000000f, 0x00007fff,
1723              0x0000007f, 0x01ffffff, 0x7fffffff, 0x0000c3ff, 0xffff0000,
1724              0x00203fff, 0xff80ffff, 0xfbff003f, 0xe0fffffb, 0x0000ffff,
1725              0xffff001f, 0x7fffffff, 0xfff80000, 0x00000001, 0x00001fff,
1726              0x0007ffff, 0x00000003, 0x1fff07ff, 0x93ff01ff, 0x003fffff,
1727              0xfffffe7f, 0x00003c5f, 0xfffff018, 0xffffc3ff, 0x000001ff,
1728              0x00000023, 0x007fffff, 0x0003ffff, 0xffdfffff, 0xdfffffff,
1729              0xebffde64, 0xffffffef, 0xdfdfe7bf, 0x7bffffff, 0xfffdfc5f,
1730              0xffffff3f, 0xffffcfff, 0x07800000, 0xffdfe000, 0x00000fef,
1731              0x0000ff9f, 0xc3ff000f, 0xffffffef, 0x0af7fe96, 0xaa96ea84,
1732              0x5ef7f796, 0x0ffffbff, 0x0ffffbee, 0x00030000, 0xffff0fff,
1733              0x000fffff, 0xfffe7fff, 0xfffefffe, 0x003fffff, 0xffff1fff,
1734              0xffff7fff, 0xffff0fff, 0x00001fff, 0xffffffc0, 0xffff0007,
1735              0x0fffffff, 0x000301ff, 0x0007ffff, 0x007f1fff, 0x000fffff,
1736              0x001fffff, 0xffff0fff, 0x03ff00ff, 0xffff00ff, 0x00003fff,
1737              0x7fff0000, 0x7ff900ff, 0x7fff0fff, 0x0003ffff, 0x00000001,
1738              0x007fffff, 0x001fffff, 0x3fffffff, 0x00000003, 0x3fffffff}};
1739        static BinaryPropertyObject property_object{Gr_Base, codepoint_set};
1740    }
1741    namespace GR_EXT_ns {
1742        /** Code Point Ranges for Gr_Ext
1743        [768, 879], [1155, 1161], [1425, 1469], [1471, 1471], [1473, 1474],
1744        [1476, 1477], [1479, 1479], [1552, 1562], [1611, 1631],
1745        [1648, 1648], [1750, 1756], [1759, 1764], [1767, 1768],
1746        [1770, 1773], [1809, 1809], [1840, 1866], [1958, 1968],
1747        [2027, 2035], [2070, 2073], [2075, 2083], [2085, 2087],
1748        [2089, 2093], [2137, 2139], [2260, 2273], [2275, 2306],
1749        [2362, 2362], [2364, 2364], [2369, 2376], [2381, 2381],
1750        [2385, 2391], [2402, 2403], [2433, 2433], [2492, 2492],
1751        [2494, 2494], [2497, 2500], [2509, 2509], [2519, 2519],
1752        [2530, 2531], [2561, 2562], [2620, 2620], [2625, 2626],
1753        [2631, 2632], [2635, 2637], [2641, 2641], [2672, 2673],
1754        [2677, 2677], [2689, 2690], [2748, 2748], [2753, 2757],
1755        [2759, 2760], [2765, 2765], [2786, 2787], [2817, 2817],
1756        [2876, 2876], [2878, 2879], [2881, 2884], [2893, 2893],
1757        [2902, 2903], [2914, 2915], [2946, 2946], [3006, 3006],
1758        [3008, 3008], [3021, 3021], [3031, 3031], [3072, 3072],
1759        [3134, 3136], [3142, 3144], [3146, 3149], [3157, 3158],
1760        [3170, 3171], [3201, 3201], [3260, 3260], [3263, 3263],
1761        [3266, 3266], [3270, 3270], [3276, 3277], [3285, 3286],
1762        [3298, 3299], [3329, 3329], [3390, 3390], [3393, 3396],
1763        [3405, 3405], [3415, 3415], [3426, 3427], [3530, 3530],
1764        [3535, 3535], [3538, 3540], [3542, 3542], [3551, 3551],
1765        [3633, 3633], [3636, 3642], [3655, 3662], [3761, 3761],
1766        [3764, 3769], [3771, 3772], [3784, 3789], [3864, 3865],
1767        [3893, 3893], [3895, 3895], [3897, 3897], [3953, 3966],
1768        [3968, 3972], [3974, 3975], [3981, 3991], [3993, 4028],
1769        [4038, 4038], [4141, 4144], [4146, 4151], [4153, 4154],
1770        [4157, 4158], [4184, 4185], [4190, 4192], [4209, 4212],
1771        [4226, 4226], [4229, 4230], [4237, 4237], [4253, 4253],
1772        [4957, 4959], [5906, 5908], [5938, 5940], [5970, 5971],
1773        [6002, 6003], [6068, 6069], [6071, 6077], [6086, 6086],
1774        [6089, 6099], [6109, 6109], [6155, 6157], [6277, 6278],
1775        [6313, 6313], [6432, 6434], [6439, 6440], [6450, 6450],
1776        [6457, 6459], [6679, 6680], [6683, 6683], [6742, 6742],
1777        [6744, 6750], [6752, 6752], [6754, 6754], [6757, 6764],
1778        [6771, 6780], [6783, 6783], [6832, 6846], [6912, 6915],
1779        [6964, 6964], [6966, 6970], [6972, 6972], [6978, 6978],
1780        [7019, 7027], [7040, 7041], [7074, 7077], [7080, 7081],
1781        [7083, 7085], [7142, 7142], [7144, 7145], [7149, 7149],
1782        [7151, 7153], [7212, 7219], [7222, 7223], [7376, 7378],
1783        [7380, 7392], [7394, 7400], [7405, 7405], [7412, 7412],
1784        [7416, 7417], [7616, 7669], [7675, 7679], [8204, 8204],
1785        [8400, 8432], [11503, 11505], [11647, 11647], [11744, 11775],
1786        [12330, 12335], [12441, 12442], [42607, 42610], [42612, 42621],
1787        [42654, 42655], [42736, 42737], [43010, 43010], [43014, 43014],
1788        [43019, 43019], [43045, 43046], [43204, 43205], [43232, 43249],
1789        [43302, 43309], [43335, 43345], [43392, 43394], [43443, 43443],
1790        [43446, 43449], [43452, 43452], [43493, 43493], [43561, 43566],
1791        [43569, 43570], [43573, 43574], [43587, 43587], [43596, 43596],
1792        [43644, 43644], [43696, 43696], [43698, 43700], [43703, 43704],
1793        [43710, 43711], [43713, 43713], [43756, 43757], [43766, 43766],
1794        [44005, 44005], [44008, 44008], [44013, 44013], [64286, 64286],
1795        [65024, 65039], [65056, 65071], [65438, 65439], [66045, 66045],
1796        [66272, 66272], [66422, 66426], [68097, 68099], [68101, 68102],
1797        [68108, 68111], [68152, 68154], [68159, 68159], [68325, 68326],
1798        [69633, 69633], [69688, 69702], [69759, 69761], [69811, 69814],
1799        [69817, 69818], [69888, 69890], [69927, 69931], [69933, 69940],
1800        [70003, 70003], [70016, 70017], [70070, 70078], [70090, 70092],
1801        [70191, 70193], [70196, 70196], [70198, 70199], [70206, 70206],
1802        [70367, 70367], [70371, 70378], [70400, 70401], [70460, 70460],
1803        [70462, 70462], [70464, 70464], [70487, 70487], [70502, 70508],
1804        [70512, 70516], [70712, 70719], [70722, 70724], [70726, 70726],
1805        [70832, 70832], [70835, 70840], [70842, 70842], [70845, 70845],
1806        [70847, 70848], [70850, 70851], [71087, 71087], [71090, 71093],
1807        [71100, 71101], [71103, 71104], [71132, 71133], [71219, 71226],
1808        [71229, 71229], [71231, 71232], [71339, 71339], [71341, 71341],
1809        [71344, 71349], [71351, 71351], [71453, 71455], [71458, 71461],
1810        [71463, 71467], [72752, 72758], [72760, 72765], [72767, 72767],
1811        [72850, 72871], [72874, 72880], [72882, 72883], [72885, 72886],
1812        [92912, 92916], [92976, 92982], [94095, 94098], [113821, 113822],
1813        [119141, 119141], [119143, 119145], [119150, 119154],
1814        [119163, 119170], [119173, 119179], [119210, 119213],
1815        [119362, 119364], [121344, 121398], [121403, 121452],
1816        [121461, 121461], [121476, 121476], [121499, 121503],
1817        [121505, 121519], [122880, 122886], [122888, 122904],
1818        [122907, 122913], [122915, 122916], [122918, 122922],
1819        [125136, 125142], [125252, 125258], [917536, 917631],
1820        [917760, 917999]**/
1821        const UnicodeSet codepoint_set
1822            {{{Empty, 24}, {Full, 3}, {Mixed, 1}, {Empty, 8}, {Mixed, 1},
1823              {Empty, 7}, {Mixed, 3}, {Empty, 1}, {Mixed, 1}, {Empty, 1},
1824              {Mixed, 2}, {Empty, 2}, {Mixed, 5}, {Empty, 2}, {Mixed, 1},
1825              {Empty, 1}, {Mixed, 4}, {Empty, 3}, {Mixed, 25}, {Empty, 1},
1826              {Mixed, 12}, {Empty, 2}, {Mixed, 1}, {Empty, 2}, {Mixed, 2},
1827              {Empty, 2}, {Mixed, 2}, {Empty, 1}, {Mixed, 2}, {Empty, 1},
1828              {Mixed, 4}, {Empty, 2}, {Mixed, 4}, {Empty, 21}, {Mixed, 1},
1829              {Empty, 29}, {Mixed, 4}, {Empty, 1}, {Mixed, 2}, {Empty, 1},
1830              {Mixed, 1}, {Empty, 3}, {Mixed, 2}, {Empty, 3}, {Mixed, 1},
1831              {Empty, 6}, {Mixed, 1}, {Empty, 1}, {Mixed, 2}, {Empty, 1},
1832              {Mixed, 1}, {Empty, 2}, {Mixed, 6}, {Empty, 1}, {Mixed, 1},
1833              {Empty, 1}, {Mixed, 1}, {Empty, 4}, {Mixed, 2}, {Empty, 6},
1834              {Full, 1}, {Mixed, 1}, {Empty, 16}, {Mixed, 1}, {Empty, 5},
1835              {Mixed, 2}, {Empty, 95}, {Mixed, 1}, {Empty, 3}, {Mixed, 1},
1836              {Empty, 3}, {Full, 1}, {Empty, 17}, {Mixed, 1}, {Empty, 2},
1837              {Mixed, 1}, {Empty, 942}, {Mixed, 2}, {Empty, 2}, {Mixed, 1},
1838              {Empty, 8}, {Mixed, 2}, {Empty, 4}, {Mixed, 2}, {Empty, 1},
1839              {Mixed, 2}, {Empty, 1}, {Mixed, 2}, {Empty, 1}, {Mixed, 1},
1840              {Empty, 1}, {Mixed, 3}, {Empty, 1}, {Mixed, 3}, {Empty, 7},
1841              {Mixed, 1}, {Empty, 632}, {Mixed, 1}, {Empty, 23}, {Mixed, 2},
1842              {Empty, 10}, {Mixed, 1}, {Empty, 18}, {Mixed, 1}, {Empty, 7},
1843              {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Empty, 52}, {Mixed, 2},
1844              {Empty, 5}, {Mixed, 1}, {Empty, 40}, {Mixed, 6}, {Empty, 2},
1845              {Mixed, 2}, {Empty, 1}, {Mixed, 4}, {Empty, 2}, {Mixed, 1},
1846              {Empty, 4}, {Mixed, 6}, {Empty, 5}, {Mixed, 2}, {Empty, 2},
1847              {Mixed, 2}, {Empty, 6}, {Mixed, 2}, {Empty, 2}, {Mixed, 2},
1848              {Empty, 2}, {Mixed, 1}, {Empty, 2}, {Mixed, 2}, {Empty, 39},
1849              {Mixed, 1}, {Empty, 2}, {Mixed, 2}, {Empty, 625}, {Mixed, 1},
1850              {Empty, 1}, {Mixed, 1}, {Empty, 34}, {Mixed, 1}, {Empty, 615},
1851              {Mixed, 1}, {Empty, 166}, {Mixed, 3}, {Empty, 4}, {Mixed, 1},
1852              {Empty, 61}, {Full, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 3},
1853              {Empty, 42}, {Mixed, 2}, {Empty, 68}, {Mixed, 1}, {Empty, 3},
1854              {Mixed, 1}, {Empty, 24758}, {Full, 3}, {Empty, 4}, {Full, 7},
1855              {Mixed, 1}, {Empty, 6128}},
1856             {0x0000ffff, 0x000003f8, 0xfffe0000, 0xbfffffff, 0x000000b6,
1857              0x07ff0000, 0xfffff800, 0x00010000, 0x9fc00000, 0x00003d9f,
1858              0x00020000, 0xffff0000, 0x000007ff, 0x0001ffc0, 0x000ff800,
1859              0xfbc00000, 0x00003eef, 0x0e000000, 0xfff00000, 0xfffffffb,
1860              0x00000007, 0x14000000, 0x00fe21fe, 0x0000000c, 0x00000002,
1861              0x50000000, 0x0080201e, 0x0000000c, 0x00000006, 0x10000000,
1862              0x00023986, 0x00230000, 0x00000006, 0x10000000, 0x000021be,
1863              0x0000000c, 0x00000002, 0xd0000000, 0x00c0201e, 0x0000000c,
1864              0x00000004, 0x40000000, 0x00802001, 0x00000001, 0xc0000000,
1865              0x00603dc1, 0x0000000c, 0x00000002, 0x90000000, 0x00603044,
1866              0x0000000c, 0x00000002, 0x40000000, 0x0080201e, 0x0000000c,
1867              0x805c8400, 0x07f20000, 0x00007f80, 0x1bf20000, 0x00003f00,
1868              0x03000000, 0x02a00000, 0x7ffe0000, 0xfeffe0df, 0x1fffffff,
1869              0x00000040, 0x66fde000, 0xc3000000, 0x001e0001, 0x20002064,
1870              0xe0000000, 0x001c0000, 0x001c0000, 0x000c0000, 0x000c0000,
1871              0x3fb00000, 0x200ffe40, 0x00003800, 0x00000060, 0x00000200,
1872              0x0e040187, 0x09800000, 0x7f400000, 0x9ff81fe5, 0x7fff0000,
1873              0x0000000f, 0x17d00000, 0x00000004, 0x000ff800, 0x00000003,
1874              0x00003b3c, 0x0003a340, 0x00cff000, 0xfff70000, 0x031021fd,
1875              0xf83fffff, 0x00001000, 0xffff0000, 0x0001ffff, 0x00038000,
1876              0x80000000, 0x0000fc00, 0x06000000, 0x3ff78000, 0xc0000000,
1877              0x00030000, 0x00000844, 0x00000060, 0x00000030, 0x0003ffff,
1878              0x00003fc0, 0x0003ff80, 0x00000007, 0x13c80000, 0x00000020,
1879              0x00667e00, 0x00001008, 0x10000000, 0xc19d0000, 0x00000002,
1880              0x00403000, 0x00002120, 0x40000000, 0x0000ffff, 0x0000ffff,
1881              0xc0000000, 0x20000000, 0x00000001, 0x07c00000, 0x0000f06e,
1882              0x87000000, 0x00000060, 0x00000002, 0xff000000, 0x0000007f,
1883              0x80000000, 0x00000003, 0x06780000, 0x00000007, 0x001fef80,
1884              0x00080000, 0x00000003, 0x7fc00000, 0x00001c00, 0x40d38000,
1885              0x80000000, 0x000007f8, 0x00000003, 0x50000000, 0x00800001,
1886              0x001f1fc0, 0xff000000, 0x0000005c, 0xa5f90000, 0x0000000d,
1887              0xb03c8000, 0x30000001, 0xa7f80000, 0x00000001, 0x00bf2800,
1888              0xe0000000, 0x00000fbc, 0xbf7f0000, 0xfffc0000, 0x006dfcff,
1889              0x001f0000, 0x007f0000, 0x00078000, 0x60000000, 0xf807c3a0,
1890              0x00000fe7, 0x00003c00, 0x0000001c, 0xf87fffff, 0x00201fff,
1891              0xf8000010, 0x0000fffe, 0xf9ffff7f, 0x000007db, 0x007f0000,
1892              0x000007f0, 0x0000ffff}};
1893        static BinaryPropertyObject property_object{Gr_Ext, codepoint_set};
1894    }
1895    namespace GR_LINK_ns {
1896        /** Code Point Ranges for Gr_Link
1897        [2381, 2381], [2509, 2509], [2637, 2637], [2765, 2765],
1898        [2893, 2893], [3021, 3021], [3149, 3149], [3277, 3277],
1899        [3405, 3405], [3530, 3530], [3642, 3642], [3972, 3972],
1900        [4153, 4154], [5908, 5908], [5940, 5940], [6098, 6098],
1901        [6752, 6752], [6980, 6980], [7082, 7083], [7154, 7155],
1902        [11647, 11647], [43014, 43014], [43204, 43204], [43347, 43347],
1903        [43456, 43456], [43766, 43766], [44013, 44013], [68159, 68159],
1904        [69702, 69702], [69759, 69759], [69817, 69817], [69939, 69940],
1905        [70080, 70080], [70197, 70197], [70378, 70378], [70477, 70477],
1906        [70722, 70722], [70850, 70850], [71103, 71103], [71231, 71231],
1907        [71350, 71350], [71467, 71467], [72767, 72767]**/
1908        const UnicodeSet codepoint_set
1909            {{{Empty, 74}, {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Empty, 3},
1910              {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Empty, 3}, {Mixed, 1},
1911              {Empty, 3}, {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Empty, 3},
1912              {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Empty, 3}, {Mixed, 1},
1913              {Empty, 2}, {Mixed, 1}, {Empty, 10}, {Mixed, 1}, {Empty, 4},
1914              {Mixed, 1}, {Empty, 54}, {Mixed, 2}, {Empty, 4}, {Mixed, 1},
1915              {Empty, 20}, {Mixed, 1}, {Empty, 6}, {Mixed, 1}, {Empty, 2},
1916              {Mixed, 1}, {Empty, 1}, {Mixed, 1}, {Empty, 139}, {Mixed, 1},
1917              {Empty, 980}, {Mixed, 1}, {Empty, 5}, {Mixed, 1}, {Empty, 3},
1918              {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Empty, 8}, {Mixed, 1},
1919              {Empty, 7}, {Mixed, 1}, {Empty, 753}, {Mixed, 1}, {Empty, 48},
1920              {Mixed, 2}, {Empty, 1}, {Mixed, 1}, {Empty, 3}, {Mixed, 1},
1921              {Empty, 4}, {Mixed, 1}, {Empty, 2}, {Mixed, 1}, {Empty, 5},
1922              {Mixed, 1}, {Empty, 2}, {Mixed, 1}, {Empty, 7}, {Mixed, 1},
1923              {Empty, 3}, {Mixed, 1}, {Empty, 6}, {Mixed, 1}, {Empty, 3},
1924              {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Empty, 3}, {Mixed, 1},
1925              {Empty, 39}, {Mixed, 1}, {Empty, 32542}},
1926             {0x00002000, 0x00002000, 0x00002000, 0x00002000, 0x00002000,
1927              0x00002000, 0x00002000, 0x00002000, 0x00002000, 0x00000400,
1928              0x04000000, 0x00000010, 0x06000000, 0x00100000, 0x00100000,
1929              0x00040000, 0x00000001, 0x00000010, 0x00000c00, 0x000c0000,
1930              0x80000000, 0x00000040, 0x00000010, 0x00080000, 0x00000001,
1931              0x00400000, 0x00002000, 0x80000000, 0x00000040, 0x80000000,
1932              0x02000000, 0x00180000, 0x00000001, 0x00200000, 0x00000400,
1933              0x00002000, 0x00000004, 0x00000004, 0x80000000, 0x80000000,
1934              0x00400000, 0x00000800, 0x80000000}};
1935        static BinaryPropertyObject property_object{Gr_Link, codepoint_set};
1936    }
1937    namespace IDC_ns {
1938        /** Code Point Ranges for IDC
1939        [48, 57], [65, 90], [95, 95], [97, 122], [170, 170], [181, 181],
1940        [183, 183], [186, 186], [192, 214], [216, 246], [248, 705],
1941        [710, 721], [736, 740], [748, 748], [750, 750], [768, 884],
1942        [886, 887], [890, 893], [895, 895], [902, 906], [908, 908],
1943        [910, 929], [931, 1013], [1015, 1153], [1155, 1159], [1162, 1327],
1944        [1329, 1366], [1369, 1369], [1377, 1415], [1425, 1469],
1945        [1471, 1471], [1473, 1474], [1476, 1477], [1479, 1479],
1946        [1488, 1514], [1520, 1522], [1552, 1562], [1568, 1641],
1947        [1646, 1747], [1749, 1756], [1759, 1768], [1770, 1788],
1948        [1791, 1791], [1808, 1866], [1869, 1969], [1984, 2037],
1949        [2042, 2042], [2048, 2093], [2112, 2139], [2208, 2228],
1950        [2230, 2237], [2260, 2273], [2275, 2403], [2406, 2415],
1951        [2417, 2435], [2437, 2444], [2447, 2448], [2451, 2472],
1952        [2474, 2480], [2482, 2482], [2486, 2489], [2492, 2500],
1953        [2503, 2504], [2507, 2510], [2519, 2519], [2524, 2525],
1954        [2527, 2531], [2534, 2545], [2561, 2563], [2565, 2570],
1955        [2575, 2576], [2579, 2600], [2602, 2608], [2610, 2611],
1956        [2613, 2614], [2616, 2617], [2620, 2620], [2622, 2626],
1957        [2631, 2632], [2635, 2637], [2641, 2641], [2649, 2652],
1958        [2654, 2654], [2662, 2677], [2689, 2691], [2693, 2701],
1959        [2703, 2705], [2707, 2728], [2730, 2736], [2738, 2739],
1960        [2741, 2745], [2748, 2757], [2759, 2761], [2763, 2765],
1961        [2768, 2768], [2784, 2787], [2790, 2799], [2809, 2809],
1962        [2817, 2819], [2821, 2828], [2831, 2832], [2835, 2856],
1963        [2858, 2864], [2866, 2867], [2869, 2873], [2876, 2884],
1964        [2887, 2888], [2891, 2893], [2902, 2903], [2908, 2909],
1965        [2911, 2915], [2918, 2927], [2929, 2929], [2946, 2947],
1966        [2949, 2954], [2958, 2960], [2962, 2965], [2969, 2970],
1967        [2972, 2972], [2974, 2975], [2979, 2980], [2984, 2986],
1968        [2990, 3001], [3006, 3010], [3014, 3016], [3018, 3021],
1969        [3024, 3024], [3031, 3031], [3046, 3055], [3072, 3075],
1970        [3077, 3084], [3086, 3088], [3090, 3112], [3114, 3129],
1971        [3133, 3140], [3142, 3144], [3146, 3149], [3157, 3158],
1972        [3160, 3162], [3168, 3171], [3174, 3183], [3200, 3203],
1973        [3205, 3212], [3214, 3216], [3218, 3240], [3242, 3251],
1974        [3253, 3257], [3260, 3268], [3270, 3272], [3274, 3277],
1975        [3285, 3286], [3294, 3294], [3296, 3299], [3302, 3311],
1976        [3313, 3314], [3329, 3331], [3333, 3340], [3342, 3344],
1977        [3346, 3386], [3389, 3396], [3398, 3400], [3402, 3406],
1978        [3412, 3415], [3423, 3427], [3430, 3439], [3450, 3455],
1979        [3458, 3459], [3461, 3478], [3482, 3505], [3507, 3515],
1980        [3517, 3517], [3520, 3526], [3530, 3530], [3535, 3540],
1981        [3542, 3542], [3544, 3551], [3558, 3567], [3570, 3571],
1982        [3585, 3642], [3648, 3662], [3664, 3673], [3713, 3714],
1983        [3716, 3716], [3719, 3720], [3722, 3722], [3725, 3725],
1984        [3732, 3735], [3737, 3743], [3745, 3747], [3749, 3749],
1985        [3751, 3751], [3754, 3755], [3757, 3769], [3771, 3773],
1986        [3776, 3780], [3782, 3782], [3784, 3789], [3792, 3801],
1987        [3804, 3807], [3840, 3840], [3864, 3865], [3872, 3881],
1988        [3893, 3893], [3895, 3895], [3897, 3897], [3902, 3911],
1989        [3913, 3948], [3953, 3972], [3974, 3991], [3993, 4028],
1990        [4038, 4038], [4096, 4169], [4176, 4253], [4256, 4293],
1991        [4295, 4295], [4301, 4301], [4304, 4346], [4348, 4680],
1992        [4682, 4685], [4688, 4694], [4696, 4696], [4698, 4701],
1993        [4704, 4744], [4746, 4749], [4752, 4784], [4786, 4789],
1994        [4792, 4798], [4800, 4800], [4802, 4805], [4808, 4822],
1995        [4824, 4880], [4882, 4885], [4888, 4954], [4957, 4959],
1996        [4969, 4977], [4992, 5007], [5024, 5109], [5112, 5117],
1997        [5121, 5740], [5743, 5759], [5761, 5786], [5792, 5866],
1998        [5870, 5880], [5888, 5900], [5902, 5908], [5920, 5940],
1999        [5952, 5971], [5984, 5996], [5998, 6000], [6002, 6003],
2000        [6016, 6099], [6103, 6103], [6108, 6109], [6112, 6121],
2001        [6155, 6157], [6160, 6169], [6176, 6263], [6272, 6314],
2002        [6320, 6389], [6400, 6430], [6432, 6443], [6448, 6459],
2003        [6470, 6509], [6512, 6516], [6528, 6571], [6576, 6601],
2004        [6608, 6618], [6656, 6683], [6688, 6750], [6752, 6780],
2005        [6783, 6793], [6800, 6809], [6823, 6823], [6832, 6845],
2006        [6912, 6987], [6992, 7001], [7019, 7027], [7040, 7155],
2007        [7168, 7223], [7232, 7241], [7245, 7293], [7296, 7304],
2008        [7376, 7378], [7380, 7414], [7416, 7417], [7424, 7669],
2009        [7675, 7957], [7960, 7965], [7968, 8005], [8008, 8013],
2010        [8016, 8023], [8025, 8025], [8027, 8027], [8029, 8029],
2011        [8031, 8061], [8064, 8116], [8118, 8124], [8126, 8126],
2012        [8130, 8132], [8134, 8140], [8144, 8147], [8150, 8155],
2013        [8160, 8172], [8178, 8180], [8182, 8188], [8255, 8256],
2014        [8276, 8276], [8305, 8305], [8319, 8319], [8336, 8348],
2015        [8400, 8412], [8417, 8417], [8421, 8432], [8450, 8450],
2016        [8455, 8455], [8458, 8467], [8469, 8469], [8472, 8477],
2017        [8484, 8484], [8486, 8486], [8488, 8488], [8490, 8505],
2018        [8508, 8511], [8517, 8521], [8526, 8526], [8544, 8584],
2019        [11264, 11310], [11312, 11358], [11360, 11492], [11499, 11507],
2020        [11520, 11557], [11559, 11559], [11565, 11565], [11568, 11623],
2021        [11631, 11631], [11647, 11670], [11680, 11686], [11688, 11694],
2022        [11696, 11702], [11704, 11710], [11712, 11718], [11720, 11726],
2023        [11728, 11734], [11736, 11742], [11744, 11775], [12293, 12295],
2024        [12321, 12335], [12337, 12341], [12344, 12348], [12353, 12438],
2025        [12441, 12447], [12449, 12538], [12540, 12543], [12549, 12589],
2026        [12593, 12686], [12704, 12730], [12784, 12799], [13312, 19893],
2027        [19968, 40917], [40960, 42124], [42192, 42237], [42240, 42508],
2028        [42512, 42539], [42560, 42607], [42612, 42621], [42623, 42737],
2029        [42775, 42783], [42786, 42888], [42891, 42926], [42928, 42935],
2030        [42999, 43047], [43072, 43123], [43136, 43205], [43216, 43225],
2031        [43232, 43255], [43259, 43259], [43261, 43261], [43264, 43309],
2032        [43312, 43347], [43360, 43388], [43392, 43456], [43471, 43481],
2033        [43488, 43518], [43520, 43574], [43584, 43597], [43600, 43609],
2034        [43616, 43638], [43642, 43714], [43739, 43741], [43744, 43759],
2035        [43762, 43766], [43777, 43782], [43785, 43790], [43793, 43798],
2036        [43808, 43814], [43816, 43822], [43824, 43866], [43868, 43877],
2037        [43888, 44010], [44012, 44013], [44016, 44025], [44032, 55203],
2038        [55216, 55238], [55243, 55291], [63744, 64109], [64112, 64217],
2039        [64256, 64262], [64275, 64279], [64285, 64296], [64298, 64310],
2040        [64312, 64316], [64318, 64318], [64320, 64321], [64323, 64324],
2041        [64326, 64433], [64467, 64829], [64848, 64911], [64914, 64967],
2042        [65008, 65019], [65024, 65039], [65056, 65071], [65075, 65076],
2043        [65101, 65103], [65136, 65140], [65142, 65276], [65296, 65305],
2044        [65313, 65338], [65343, 65343], [65345, 65370], [65382, 65470],
2045        [65474, 65479], [65482, 65487], [65490, 65495], [65498, 65500],
2046        [65536, 65547], [65549, 65574], [65576, 65594], [65596, 65597],
2047        [65599, 65613], [65616, 65629], [65664, 65786], [65856, 65908],
2048        [66045, 66045], [66176, 66204], [66208, 66256], [66272, 66272],
2049        [66304, 66335], [66352, 66378], [66384, 66426], [66432, 66461],
2050        [66464, 66499], [66504, 66511], [66513, 66517], [66560, 66717],
2051        [66720, 66729], [66736, 66771], [66776, 66811], [66816, 66855],
2052        [66864, 66915], [67072, 67382], [67392, 67413], [67424, 67431],
2053        [67584, 67589], [67592, 67592], [67594, 67637], [67639, 67640],
2054        [67644, 67644], [67647, 67669], [67680, 67702], [67712, 67742],
2055        [67808, 67826], [67828, 67829], [67840, 67861], [67872, 67897],
2056        [67968, 68023], [68030, 68031], [68096, 68099], [68101, 68102],
2057        [68108, 68115], [68117, 68119], [68121, 68147], [68152, 68154],
2058        [68159, 68159], [68192, 68220], [68224, 68252], [68288, 68295],
2059        [68297, 68326], [68352, 68405], [68416, 68437], [68448, 68466],
2060        [68480, 68497], [68608, 68680], [68736, 68786], [68800, 68850],
2061        [69632, 69702], [69734, 69743], [69759, 69818], [69840, 69864],
2062        [69872, 69881], [69888, 69940], [69942, 69951], [69968, 70003],
2063        [70006, 70006], [70016, 70084], [70090, 70092], [70096, 70106],
2064        [70108, 70108], [70144, 70161], [70163, 70199], [70206, 70206],
2065        [70272, 70278], [70280, 70280], [70282, 70285], [70287, 70301],
2066        [70303, 70312], [70320, 70378], [70384, 70393], [70400, 70403],
2067        [70405, 70412], [70415, 70416], [70419, 70440], [70442, 70448],
2068        [70450, 70451], [70453, 70457], [70460, 70468], [70471, 70472],
2069        [70475, 70477], [70480, 70480], [70487, 70487], [70493, 70499],
2070        [70502, 70508], [70512, 70516], [70656, 70730], [70736, 70745],
2071        [70784, 70853], [70855, 70855], [70864, 70873], [71040, 71093],
2072        [71096, 71104], [71128, 71133], [71168, 71232], [71236, 71236],
2073        [71248, 71257], [71296, 71351], [71360, 71369], [71424, 71449],
2074        [71453, 71467], [71472, 71481], [71840, 71913], [71935, 71935],
2075        [72384, 72440], [72704, 72712], [72714, 72758], [72760, 72768],
2076        [72784, 72793], [72818, 72847], [72850, 72871], [72873, 72886],
2077        [73728, 74649], [74752, 74862], [74880, 75075], [77824, 78894],
2078        [82944, 83526], [92160, 92728], [92736, 92766], [92768, 92777],
2079        [92880, 92909], [92912, 92916], [92928, 92982], [92992, 92995],
2080        [93008, 93017], [93027, 93047], [93053, 93071], [93952, 94020],
2081        [94032, 94078], [94095, 94111], [94176, 94176], [94208, 100332],
2082        [100352, 101106], [110592, 110593], [113664, 113770],
2083        [113776, 113788], [113792, 113800], [113808, 113817],
2084        [113821, 113822], [119141, 119145], [119149, 119154],
2085        [119163, 119170], [119173, 119179], [119210, 119213],
2086        [119362, 119364], [119808, 119892], [119894, 119964],
2087        [119966, 119967], [119970, 119970], [119973, 119974],
2088        [119977, 119980], [119982, 119993], [119995, 119995],
2089        [119997, 120003], [120005, 120069], [120071, 120074],
2090        [120077, 120084], [120086, 120092], [120094, 120121],
2091        [120123, 120126], [120128, 120132], [120134, 120134],
2092        [120138, 120144], [120146, 120485], [120488, 120512],
2093        [120514, 120538], [120540, 120570], [120572, 120596],
2094        [120598, 120628], [120630, 120654], [120656, 120686],
2095        [120688, 120712], [120714, 120744], [120746, 120770],
2096        [120772, 120779], [120782, 120831], [121344, 121398],
2097        [121403, 121452], [121461, 121461], [121476, 121476],
2098        [121499, 121503], [121505, 121519], [122880, 122886],
2099        [122888, 122904], [122907, 122913], [122915, 122916],
2100        [122918, 122922], [124928, 125124], [125136, 125142],
2101        [125184, 125258], [125264, 125273], [126464, 126467],
2102        [126469, 126495], [126497, 126498], [126500, 126500],
2103        [126503, 126503], [126505, 126514], [126516, 126519],
2104        [126521, 126521], [126523, 126523], [126530, 126530],
2105        [126535, 126535], [126537, 126537], [126539, 126539],
2106        [126541, 126543], [126545, 126546], [126548, 126548],
2107        [126551, 126551], [126553, 126553], [126555, 126555],
2108        [126557, 126557], [126559, 126559], [126561, 126562],
2109        [126564, 126564], [126567, 126570], [126572, 126578],
2110        [126580, 126583], [126585, 126588], [126590, 126590],
2111        [126592, 126601], [126603, 126619], [126625, 126627],
2112        [126629, 126633], [126635, 126651], [131072, 173782],
2113        [173824, 177972], [177984, 178205], [178208, 183969],
2114        [194560, 195101], [917760, 917999]**/
2115        const UnicodeSet codepoint_set
2116            {{{Empty, 1}, {Mixed, 3}, {Empty, 1}, {Mixed, 3}, {Full, 14},
2117              {Mixed, 2}, {Full, 3}, {Mixed, 3}, {Full, 1}, {Mixed, 1},
2118              {Full, 4}, {Mixed, 1}, {Full, 4}, {Mixed, 8}, {Full, 2},
2119              {Mixed, 1}, {Full, 2}, {Mixed, 3}, {Full, 1}, {Mixed, 1},
2120              {Full, 2}, {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Full, 1},
2121              {Mixed, 2}, {Empty, 2}, {Mixed, 3}, {Full, 3}, {Mixed, 40},
2122              {Empty, 1}, {Mixed, 3}, {Empty, 1}, {Mixed, 7}, {Empty, 1},
2123              {Full, 2}, {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Full, 1},
2124              {Mixed, 2}, {Full, 10}, {Mixed, 1}, {Full, 1}, {Mixed, 3},
2125              {Full, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 3}, {Full, 2},
2126              {Mixed, 2}, {Full, 18}, {Mixed, 2}, {Full, 2}, {Mixed, 5},
2127              {Full, 2}, {Mixed, 3}, {Full, 2}, {Mixed, 1}, {Full, 1},
2128              {Mixed, 1}, {Full, 1}, {Mixed, 5}, {Full, 1}, {Mixed, 2},
2129              {Empty, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 4}, {Empty, 2},
2130              {Full, 2}, {Mixed, 2}, {Full, 3}, {Mixed, 1}, {Full, 1},
2131              {Mixed, 4}, {Empty, 1}, {Mixed, 2}, {Full, 7}, {Mixed, 1},
2132              {Full, 8}, {Mixed, 1}, {Full, 1}, {Mixed, 2}, {Full, 1},
2133              {Mixed, 3}, {Empty, 1}, {Mixed, 4}, {Empty, 1}, {Mixed, 5},
2134              {Full, 1}, {Mixed, 1}, {Empty, 83}, {Full, 1}, {Mixed, 2},
2135              {Full, 4}, {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Full, 1},
2136              {Mixed, 4}, {Full, 1}, {Empty, 16}, {Mixed, 3}, {Full, 1},
2137              {Mixed, 2}, {Full, 1}, {Mixed, 3}, {Full, 2}, {Mixed, 2},
2138              {Empty, 1}, {Mixed, 1}, {Empty, 16}, {Full, 205}, {Mixed, 1},
2139              {Empty, 2}, {Full, 654}, {Mixed, 1}, {Empty, 1}, {Full, 36},
2140              {Mixed, 1}, {Empty, 1}, {Mixed, 2}, {Full, 8}, {Mixed, 2},
2141              {Full, 1}, {Mixed, 1}, {Full, 3}, {Mixed, 3}, {Full, 2},
2142              {Mixed, 2}, {Empty, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 1},
2143              {Full, 1}, {Mixed, 1}, {Full, 2}, {Mixed, 2}, {Full, 1},
2144              {Mixed, 3}, {Full, 2}, {Mixed, 2}, {Full, 1}, {Mixed, 3},
2145              {Full, 2}, {Mixed, 6}, {Full, 3}, {Mixed, 1}, {Full, 349},
2146              {Mixed, 3}, {Empty, 264}, {Full, 11}, {Mixed, 1}, {Full, 2},
2147              {Mixed, 1}, {Empty, 1}, {Mixed, 3}, {Full, 2}, {Mixed, 2},
2148              {Full, 10}, {Mixed, 2}, {Full, 1}, {Mixed, 1}, {Full, 1},
2149              {Mixed, 6}, {Full, 3}, {Mixed, 5}, {Full, 1}, {Mixed, 2},
2150              {Empty, 1}, {Mixed, 3}, {Empty, 1}, {Full, 3}, {Mixed, 1},
2151              {Empty, 2}, {Full, 1}, {Mixed, 1}, {Empty, 3}, {Mixed, 1},
2152              {Empty, 4}, {Mixed, 1}, {Full, 1}, {Mixed, 2}, {Full, 1},
2153              {Mixed, 4}, {Full, 1}, {Mixed, 1}, {Empty, 1}, {Full, 4},
2154              {Mixed, 4}, {Full, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 1},
2155              {Empty, 4}, {Full, 9}, {Mixed, 3}, {Empty, 4}, {Mixed, 5},
2156              {Empty, 2}, {Mixed, 3}, {Empty, 2}, {Full, 1}, {Mixed, 1},
2157              {Empty, 2}, {Mixed, 2}, {Empty, 1}, {Mixed, 2}, {Empty, 1},
2158              {Mixed, 2}, {Full, 1}, {Mixed, 4}, {Empty, 3}, {Full, 2},
2159              {Mixed, 1}, {Empty, 1}, {Full, 1}, {Mixed, 1}, {Full, 1},
2160              {Mixed, 1}, {Empty, 24}, {Full, 2}, {Mixed, 2}, {Full, 1},
2161              {Mixed, 3}, {Full, 1}, {Mixed, 3}, {Full, 2}, {Mixed, 1},
2162              {Empty, 1}, {Mixed, 2}, {Empty, 2}, {Mixed, 2}, {Full, 1},
2163              {Mixed, 5}, {Empty, 4}, {Full, 2}, {Mixed, 1}, {Empty, 1},
2164              {Full, 2}, {Mixed, 1}, {Empty, 5}, {Full, 1}, {Mixed, 2},
2165              {Empty, 1}, {Full, 2}, {Mixed, 1}, {Empty, 1}, {Full, 1},
2166              {Mixed, 2}, {Empty, 1}, {Mixed, 2}, {Empty, 11}, {Full, 2},
2167              {Mixed, 1}, {Empty, 14}, {Full, 1}, {Mixed, 1}, {Empty, 8},
2168              {Mixed, 6}, {Empty, 26}, {Full, 28}, {Mixed, 1}, {Empty, 3},
2169              {Full, 3}, {Mixed, 1}, {Full, 6}, {Mixed, 1}, {Empty, 85},
2170              {Full, 33}, {Mixed, 1}, {Empty, 126}, {Full, 18}, {Mixed, 1},
2171              {Empty, 269}, {Full, 17}, {Mixed, 3}, {Empty, 2}, {Mixed, 2},
2172              {Full, 1}, {Mixed, 4}, {Empty, 27}, {Full, 2}, {Mixed, 3},
2173              {Empty, 2}, {Mixed, 1}, {Full, 191}, {Mixed, 1}, {Full, 23},
2174              {Mixed, 1}, {Empty, 296}, {Mixed, 1}, {Empty, 95}, {Full, 3},
2175              {Mixed, 2}, {Empty, 166}, {Mixed, 3}, {Empty, 4}, {Mixed, 1},
2176              {Empty, 13}, {Full, 2}, {Mixed, 1}, {Full, 1}, {Mixed, 3},
2177              {Full, 1}, {Mixed, 3}, {Full, 10}, {Mixed, 10}, {Full, 1},
2178              {Empty, 16}, {Full, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 3},
2179              {Empty, 42}, {Mixed, 2}, {Empty, 62}, {Full, 6}, {Mixed, 1},
2180              {Empty, 1}, {Full, 2}, {Mixed, 1}, {Empty, 37}, {Mixed, 6},
2181              {Empty, 138}, {Full, 1334}, {Mixed, 1}, {Empty, 1},
2182              {Full, 129}, {Mixed, 1}, {Full, 6}, {Mixed, 1}, {Full, 180},
2183              {Mixed, 1}, {Empty, 330}, {Full, 16}, {Mixed, 1},
2184              {Empty, 22583}, {Full, 7}, {Mixed, 1}, {Empty, 6128}},
2185             {0x03ff0000, 0x87fffffe, 0x07fffffe, 0x04a00400, 0xff7fffff,
2186              0xff7fffff, 0x0003ffc3, 0x0000501f, 0xbcdfffff, 0xffffd7c0,
2187              0xfffffffb, 0xffbfffff, 0xfffffcfb, 0xfffeffff, 0x027fffff,
2188              0xfffffffe, 0xfffe00ff, 0xbfffffff, 0xffff00b6, 0x000707ff,
2189              0x07ff0000, 0xffffc3ff, 0x9fefffff, 0x9ffffdff, 0xffff0000,
2190              0xffffe7ff, 0x0003ffff, 0x043fffff, 0x00003fff, 0x0fffffff,
2191              0x3fdfffff, 0xfff00000, 0xfffffffb, 0xfffeffcf, 0xfff99fef,
2192              0xf3c5fdff, 0xb080799f, 0x0003ffcf, 0xfff987ee, 0xd36dfdff,
2193              0x5e023987, 0x003fffc0, 0xfffbbfee, 0xf3edfdff, 0x00013bbf,
2194              0x0200ffcf, 0xfff99fee, 0xf3edfdff, 0xb0c0399f, 0x0002ffcf,
2195              0xd63dc7ec, 0xc3ffc718, 0x00813dc7, 0x0000ffc0, 0xfffddfef,
2196              0xe3fffdff, 0x07603ddf, 0x0000ffcf, 0xfffddfef, 0xf3effdff,
2197              0x40603ddf, 0x0006ffcf, 0xfffddfee, 0xe7ffffff, 0x80f07ddf,
2198              0xfc00ffcf, 0xfc7fffec, 0x2ffbffff, 0xff5f847f, 0x000cffc0,
2199              0xfffffffe, 0x07ffffff, 0x03ff7fff, 0xfef02596, 0x3bffecae,
2200              0xf3ff3f5f, 0x03000001, 0xc2a003ff, 0xfffffeff, 0xfffe1fff,
2201              0xfeffffdf, 0x1fffffff, 0x00000040, 0xffff03ff, 0x3fffffff,
2202              0xffff20bf, 0xf7ffffff, 0x3d7f3dff, 0xffff3dff, 0x7f3dffff,
2203              0xff7fff3d, 0xff3dffff, 0xe7ffffff, 0x0003fe00, 0x0000ffff,
2204              0x3f3fffff, 0xfffffffe, 0xffff9fff, 0x07fffffe, 0x01ffc7ff,
2205              0x001fdfff, 0x001fffff, 0x000fffff, 0x000ddfff, 0x308fffff,
2206              0x000003ff, 0x03ff3800, 0x00ffffff, 0xffff07ff, 0x003fffff,
2207              0x7fffffff, 0x0fff0fff, 0xffffffc0, 0x001f3fff, 0xffff0fff,
2208              0x07ff03ff, 0x0fffffff, 0x7fffffff, 0x9fffffff, 0x03ff03ff,
2209              0x3fff0080, 0x03ff0fff, 0x000ff800, 0x000fffff, 0x00ffffff,
2210              0xffffe3ff, 0x3fffffff, 0x000001ff, 0xfff70000, 0x037fffff,
2211              0xf83fffff, 0x3f3fffff, 0xaaff3f3f, 0x3fffffff, 0x5fdfffff,
2212              0x0fcf1fdc, 0x1fdc1fff, 0x80000000, 0x00100001, 0x80020000,
2213              0x1fff0000, 0x1fff0000, 0x0001ffe2, 0x3f2ffc84, 0xf3fffd50,
2214              0x000043e0, 0x000001ff, 0xffff7fff, 0x7fffffff, 0x000ff81f,
2215              0xffff20bf, 0x800080ff, 0x007fffff, 0x7f7f7f7f, 0x7f7f7f7f,
2216              0x000000e0, 0x1f3efffe, 0xfffffffe, 0xfe7fffff, 0xfffffffe,
2217              0xf7ffffff, 0xffffffe0, 0xfffe3fff, 0x00007fff, 0x07ffffff,
2218              0xffff0000, 0x003fffff, 0x003fffff, 0x00001fff, 0xffff0000,
2219              0x3fffffff, 0xffff1fff, 0x00000fff, 0xbff0ffff, 0x0003ffff,
2220              0xff800000, 0xfffffffc, 0xfffff9ff, 0x00ff7fff, 0xff800000,
2221              0x000000ff, 0x000fffff, 0x03ff003f, 0x28ffffff, 0xffff3fff,
2222              0x000fffff, 0x1fffffff, 0x03ff8001, 0x7fffffff, 0x007fffff,
2223              0x03ff3fff, 0xfc7fffff, 0x38000007, 0x007cffff, 0x007e7e7e,
2224              0xffff7f7f, 0xf7ffffff, 0xffff003f, 0x03ff37ff, 0xffff000f,
2225              0xfffff87f, 0x0fffffff, 0xffff3fff, 0x03ffffff, 0xe0f8007f,
2226              0x5f7ffdff, 0xffffffdb, 0x0003ffff, 0xfff80000, 0x3fffffff,
2227              0xffff0000, 0xfffcffff, 0x000000ff, 0x0fff0000, 0x0000ffff,
2228              0x0018ffff, 0x0000e000, 0xffdf0000, 0x1fffffff, 0x03ff0000,
2229              0x87fffffe, 0x07fffffe, 0xffffffc0, 0x7fffffff, 0x1cfcfcfc,
2230              0xffffefff, 0xb7ffff7f, 0x3fff3fff, 0x07ffffff, 0x001fffff,
2231              0x20000000, 0x1fffffff, 0x0001ffff, 0x00000001, 0xffff0000,
2232              0xffff07ff, 0x07ffffff, 0x3fffffff, 0x003eff0f, 0x3fffffff,
2233              0xffff03ff, 0xff0fffff, 0x0fffffff, 0xffff00ff, 0x0000000f,
2234              0x007fffff, 0x003fffff, 0x000000ff, 0xfffffd3f, 0x91bfffff,
2235              0x003fffff, 0x007fffff, 0x7fffffff, 0x0037ffff, 0x003fffff,
2236              0x03ffffff, 0xc0ffffff, 0xfeeff06f, 0x870fffff, 0x1fffffff,
2237              0x1fffffff, 0xfffffeff, 0x0000007f, 0x003fffff, 0x003fffff,
2238              0x0007ffff, 0x0003ffff, 0x000001ff, 0x0007ffff, 0x0007ffff,
2239              0x0000007f, 0x8000ffc0, 0x07ffffff, 0xffff0000, 0x03ff01ff,
2240              0xffdfffff, 0xffff0000, 0x004fffff, 0x17ff1c1f, 0xfffbffff,
2241              0x40ffffff, 0xbfffbd7f, 0xffff01ff, 0x03ff07ff, 0xfff99fef,
2242              0xf3edfdff, 0xe081399f, 0x001f1fcf, 0x03ff07ff, 0x03ff00bf,
2243              0xff3fffff, 0x3f000001, 0x03ff0011, 0x00ffffff, 0x000003ff,
2244              0xe3ffffff, 0x03ff0fff, 0x800003ff, 0x01ffffff, 0xfffffdff,
2245              0xff7fffff, 0x03ff0001, 0xfffc0000, 0xfffcffff, 0x007ffeff,
2246              0x03ffffff, 0x00007fff, 0x0000000f, 0x00007fff, 0x0000007f,
2247              0x01ffffff, 0x7fffffff, 0x000003ff, 0xffff0000, 0x001f3fff,
2248              0x007fffff, 0x03ff000f, 0xe0fffff8, 0x0000ffff, 0xffff001f,
2249              0x7fffffff, 0xffff8000, 0x00000001, 0x00001fff, 0x0007ffff,
2250              0x00000003, 0x1fff07ff, 0x63ff01ff, 0xf807e3e0, 0x00000fe7,
2251              0x00003c00, 0x0000001c, 0xffdfffff, 0xdfffffff, 0xebffde64,
2252              0xffffffef, 0xdfdfe7bf, 0x7bffffff, 0xfffdfc5f, 0xffffff3f,
2253              0xf7fffffd, 0xf7ffffff, 0xffdfffff, 0xffdfffff, 0xffff7fff,
2254              0xffff7fff, 0xfffffdff, 0xfffffdff, 0xffffcff7, 0xf87fffff,
2255              0x00201fff, 0xf8000010, 0x0000fffe, 0xf9ffff7f, 0x000007db,
2256              0x007f001f, 0x03ff07ff, 0xffffffef, 0x0af7fe96, 0xaa96ea84,
2257              0x5ef7f796, 0x0ffffbff, 0x0ffffbee, 0x007fffff, 0x001fffff,
2258              0x3fffffff, 0x00000003, 0x3fffffff, 0x0000ffff}};
2259        static BinaryPropertyObject property_object{IDC, codepoint_set};
2260    }
2261    namespace IDS_ns {
2262        /** Code Point Ranges for IDS
2263        [65, 90], [97, 122], [170, 170], [181, 181], [186, 186], [192, 214],
2264        [216, 246], [248, 705], [710, 721], [736, 740], [748, 748],
2265        [750, 750], [880, 884], [886, 887], [890, 893], [895, 895],
2266        [902, 902], [904, 906], [908, 908], [910, 929], [931, 1013],
2267        [1015, 1153], [1162, 1327], [1329, 1366], [1369, 1369],
2268        [1377, 1415], [1488, 1514], [1520, 1522], [1568, 1610],
2269        [1646, 1647], [1649, 1747], [1749, 1749], [1765, 1766],
2270        [1774, 1775], [1786, 1788], [1791, 1791], [1808, 1808],
2271        [1810, 1839], [1869, 1957], [1969, 1969], [1994, 2026],
2272        [2036, 2037], [2042, 2042], [2048, 2069], [2074, 2074],
2273        [2084, 2084], [2088, 2088], [2112, 2136], [2208, 2228],
2274        [2230, 2237], [2308, 2361], [2365, 2365], [2384, 2384],
2275        [2392, 2401], [2417, 2432], [2437, 2444], [2447, 2448],
2276        [2451, 2472], [2474, 2480], [2482, 2482], [2486, 2489],
2277        [2493, 2493], [2510, 2510], [2524, 2525], [2527, 2529],
2278        [2544, 2545], [2565, 2570], [2575, 2576], [2579, 2600],
2279        [2602, 2608], [2610, 2611], [2613, 2614], [2616, 2617],
2280        [2649, 2652], [2654, 2654], [2674, 2676], [2693, 2701],
2281        [2703, 2705], [2707, 2728], [2730, 2736], [2738, 2739],
2282        [2741, 2745], [2749, 2749], [2768, 2768], [2784, 2785],
2283        [2809, 2809], [2821, 2828], [2831, 2832], [2835, 2856],
2284        [2858, 2864], [2866, 2867], [2869, 2873], [2877, 2877],
2285        [2908, 2909], [2911, 2913], [2929, 2929], [2947, 2947],
2286        [2949, 2954], [2958, 2960], [2962, 2965], [2969, 2970],
2287        [2972, 2972], [2974, 2975], [2979, 2980], [2984, 2986],
2288        [2990, 3001], [3024, 3024], [3077, 3084], [3086, 3088],
2289        [3090, 3112], [3114, 3129], [3133, 3133], [3160, 3162],
2290        [3168, 3169], [3200, 3200], [3205, 3212], [3214, 3216],
2291        [3218, 3240], [3242, 3251], [3253, 3257], [3261, 3261],
2292        [3294, 3294], [3296, 3297], [3313, 3314], [3333, 3340],
2293        [3342, 3344], [3346, 3386], [3389, 3389], [3406, 3406],
2294        [3412, 3414], [3423, 3425], [3450, 3455], [3461, 3478],
2295        [3482, 3505], [3507, 3515], [3517, 3517], [3520, 3526],
2296        [3585, 3632], [3634, 3635], [3648, 3654], [3713, 3714],
2297        [3716, 3716], [3719, 3720], [3722, 3722], [3725, 3725],
2298        [3732, 3735], [3737, 3743], [3745, 3747], [3749, 3749],
2299        [3751, 3751], [3754, 3755], [3757, 3760], [3762, 3763],
2300        [3773, 3773], [3776, 3780], [3782, 3782], [3804, 3807],
2301        [3840, 3840], [3904, 3911], [3913, 3948], [3976, 3980],
2302        [4096, 4138], [4159, 4159], [4176, 4181], [4186, 4189],
2303        [4193, 4193], [4197, 4198], [4206, 4208], [4213, 4225],
2304        [4238, 4238], [4256, 4293], [4295, 4295], [4301, 4301],
2305        [4304, 4346], [4348, 4680], [4682, 4685], [4688, 4694],
2306        [4696, 4696], [4698, 4701], [4704, 4744], [4746, 4749],
2307        [4752, 4784], [4786, 4789], [4792, 4798], [4800, 4800],
2308        [4802, 4805], [4808, 4822], [4824, 4880], [4882, 4885],
2309        [4888, 4954], [4992, 5007], [5024, 5109], [5112, 5117],
2310        [5121, 5740], [5743, 5759], [5761, 5786], [5792, 5866],
2311        [5870, 5880], [5888, 5900], [5902, 5905], [5920, 5937],
2312        [5952, 5969], [5984, 5996], [5998, 6000], [6016, 6067],
2313        [6103, 6103], [6108, 6108], [6176, 6263], [6272, 6312],
2314        [6314, 6314], [6320, 6389], [6400, 6430], [6480, 6509],
2315        [6512, 6516], [6528, 6571], [6576, 6601], [6656, 6678],
2316        [6688, 6740], [6823, 6823], [6917, 6963], [6981, 6987],
2317        [7043, 7072], [7086, 7087], [7098, 7141], [7168, 7203],
2318        [7245, 7247], [7258, 7293], [7296, 7304], [7401, 7404],
2319        [7406, 7409], [7413, 7414], [7424, 7615], [7680, 7957],
2320        [7960, 7965], [7968, 8005], [8008, 8013], [8016, 8023],
2321        [8025, 8025], [8027, 8027], [8029, 8029], [8031, 8061],
2322        [8064, 8116], [8118, 8124], [8126, 8126], [8130, 8132],
2323        [8134, 8140], [8144, 8147], [8150, 8155], [8160, 8172],
2324        [8178, 8180], [8182, 8188], [8305, 8305], [8319, 8319],
2325        [8336, 8348], [8450, 8450], [8455, 8455], [8458, 8467],
2326        [8469, 8469], [8472, 8477], [8484, 8484], [8486, 8486],
2327        [8488, 8488], [8490, 8505], [8508, 8511], [8517, 8521],
2328        [8526, 8526], [8544, 8584], [11264, 11310], [11312, 11358],
2329        [11360, 11492], [11499, 11502], [11506, 11507], [11520, 11557],
2330        [11559, 11559], [11565, 11565], [11568, 11623], [11631, 11631],
2331        [11648, 11670], [11680, 11686], [11688, 11694], [11696, 11702],
2332        [11704, 11710], [11712, 11718], [11720, 11726], [11728, 11734],
2333        [11736, 11742], [12293, 12295], [12321, 12329], [12337, 12341],
2334        [12344, 12348], [12353, 12438], [12443, 12447], [12449, 12538],
2335        [12540, 12543], [12549, 12589], [12593, 12686], [12704, 12730],
2336        [12784, 12799], [13312, 19893], [19968, 40917], [40960, 42124],
2337        [42192, 42237], [42240, 42508], [42512, 42527], [42538, 42539],
2338        [42560, 42606], [42623, 42653], [42656, 42735], [42775, 42783],
2339        [42786, 42888], [42891, 42926], [42928, 42935], [42999, 43009],
2340        [43011, 43013], [43015, 43018], [43020, 43042], [43072, 43123],
2341        [43138, 43187], [43250, 43255], [43259, 43259], [43261, 43261],
2342        [43274, 43301], [43312, 43334], [43360, 43388], [43396, 43442],
2343        [43471, 43471], [43488, 43492], [43494, 43503], [43514, 43518],
2344        [43520, 43560], [43584, 43586], [43588, 43595], [43616, 43638],
2345        [43642, 43642], [43646, 43695], [43697, 43697], [43701, 43702],
2346        [43705, 43709], [43712, 43712], [43714, 43714], [43739, 43741],
2347        [43744, 43754], [43762, 43764], [43777, 43782], [43785, 43790],
2348        [43793, 43798], [43808, 43814], [43816, 43822], [43824, 43866],
2349        [43868, 43877], [43888, 44002], [44032, 55203], [55216, 55238],
2350        [55243, 55291], [63744, 64109], [64112, 64217], [64256, 64262],
2351        [64275, 64279], [64285, 64285], [64287, 64296], [64298, 64310],
2352        [64312, 64316], [64318, 64318], [64320, 64321], [64323, 64324],
2353        [64326, 64433], [64467, 64829], [64848, 64911], [64914, 64967],
2354        [65008, 65019], [65136, 65140], [65142, 65276], [65313, 65338],
2355        [65345, 65370], [65382, 65470], [65474, 65479], [65482, 65487],
2356        [65490, 65495], [65498, 65500], [65536, 65547], [65549, 65574],
2357        [65576, 65594], [65596, 65597], [65599, 65613], [65616, 65629],
2358        [65664, 65786], [65856, 65908], [66176, 66204], [66208, 66256],
2359        [66304, 66335], [66352, 66378], [66384, 66421], [66432, 66461],
2360        [66464, 66499], [66504, 66511], [66513, 66517], [66560, 66717],
2361        [66736, 66771], [66776, 66811], [66816, 66855], [66864, 66915],
2362        [67072, 67382], [67392, 67413], [67424, 67431], [67584, 67589],
2363        [67592, 67592], [67594, 67637], [67639, 67640], [67644, 67644],
2364        [67647, 67669], [67680, 67702], [67712, 67742], [67808, 67826],
2365        [67828, 67829], [67840, 67861], [67872, 67897], [67968, 68023],
2366        [68030, 68031], [68096, 68096], [68112, 68115], [68117, 68119],
2367        [68121, 68147], [68192, 68220], [68224, 68252], [68288, 68295],
2368        [68297, 68324], [68352, 68405], [68416, 68437], [68448, 68466],
2369        [68480, 68497], [68608, 68680], [68736, 68786], [68800, 68850],
2370        [69635, 69687], [69763, 69807], [69840, 69864], [69891, 69926],
2371        [69968, 70002], [70006, 70006], [70019, 70066], [70081, 70084],
2372        [70106, 70106], [70108, 70108], [70144, 70161], [70163, 70187],
2373        [70272, 70278], [70280, 70280], [70282, 70285], [70287, 70301],
2374        [70303, 70312], [70320, 70366], [70405, 70412], [70415, 70416],
2375        [70419, 70440], [70442, 70448], [70450, 70451], [70453, 70457],
2376        [70461, 70461], [70480, 70480], [70493, 70497], [70656, 70708],
2377        [70727, 70730], [70784, 70831], [70852, 70853], [70855, 70855],
2378        [71040, 71086], [71128, 71131], [71168, 71215], [71236, 71236],
2379        [71296, 71338], [71424, 71449], [71840, 71903], [71935, 71935],
2380        [72384, 72440], [72704, 72712], [72714, 72750], [72768, 72768],
2381        [72818, 72847], [73728, 74649], [74752, 74862], [74880, 75075],
2382        [77824, 78894], [82944, 83526], [92160, 92728], [92736, 92766],
2383        [92880, 92909], [92928, 92975], [92992, 92995], [93027, 93047],
2384        [93053, 93071], [93952, 94020], [94032, 94032], [94099, 94111],
2385        [94176, 94176], [94208, 100332], [100352, 101106], [110592, 110593],
2386        [113664, 113770], [113776, 113788], [113792, 113800],
2387        [113808, 113817], [119808, 119892], [119894, 119964],
2388        [119966, 119967], [119970, 119970], [119973, 119974],
2389        [119977, 119980], [119982, 119993], [119995, 119995],
2390        [119997, 120003], [120005, 120069], [120071, 120074],
2391        [120077, 120084], [120086, 120092], [120094, 120121],
2392        [120123, 120126], [120128, 120132], [120134, 120134],
2393        [120138, 120144], [120146, 120485], [120488, 120512],
2394        [120514, 120538], [120540, 120570], [120572, 120596],
2395        [120598, 120628], [120630, 120654], [120656, 120686],
2396        [120688, 120712], [120714, 120744], [120746, 120770],
2397        [120772, 120779], [124928, 125124], [125184, 125251],
2398        [126464, 126467], [126469, 126495], [126497, 126498],
2399        [126500, 126500], [126503, 126503], [126505, 126514],
2400        [126516, 126519], [126521, 126521], [126523, 126523],
2401        [126530, 126530], [126535, 126535], [126537, 126537],
2402        [126539, 126539], [126541, 126543], [126545, 126546],
2403        [126548, 126548], [126551, 126551], [126553, 126553],
2404        [126555, 126555], [126557, 126557], [126559, 126559],
2405        [126561, 126562], [126564, 126564], [126567, 126570],
2406        [126572, 126578], [126580, 126583], [126585, 126588],
2407        [126590, 126590], [126592, 126601], [126603, 126619],
2408        [126625, 126627], [126629, 126633], [126635, 126651],
2409        [131072, 173782], [173824, 177972], [177984, 178205],
2410        [178208, 183969], [194560, 195101]**/
2411        const UnicodeSet codepoint_set
2412            {{{Empty, 2}, {Mixed, 2}, {Empty, 1}, {Mixed, 3}, {Full, 14},
2413              {Mixed, 2}, {Empty, 3}, {Mixed, 3}, {Full, 1}, {Mixed, 1},
2414              {Full, 4}, {Mixed, 1}, {Full, 4}, {Mixed, 4}, {Empty, 1},
2415              {Mixed, 2}, {Empty, 1}, {Full, 1}, {Mixed, 2}, {Full, 2},
2416              {Mixed, 5}, {Full, 2}, {Mixed, 6}, {Empty, 2}, {Mixed, 1},
2417              {Empty, 2}, {Mixed, 23}, {Empty, 1}, {Mixed, 15}, {Empty, 1},
2418              {Mixed, 3}, {Empty, 1}, {Mixed, 3}, {Empty, 1}, {Mixed, 1},
2419              {Empty, 1}, {Mixed, 3}, {Empty, 3}, {Full, 1}, {Mixed, 4},
2420              {Full, 1}, {Mixed, 2}, {Full, 10}, {Mixed, 1}, {Full, 1},
2421              {Mixed, 3}, {Full, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 1},
2422              {Empty, 1}, {Mixed, 1}, {Full, 2}, {Mixed, 2}, {Full, 18},
2423              {Mixed, 2}, {Full, 2}, {Mixed, 5}, {Full, 1}, {Mixed, 2},
2424              {Empty, 2}, {Full, 2}, {Mixed, 1}, {Full, 1}, {Mixed, 1},
2425              {Full, 1}, {Mixed, 2}, {Empty, 1}, {Mixed, 2}, {Full, 1},
2426              {Mixed, 2}, {Empty, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 1},
2427              {Empty, 2}, {Mixed, 1}, {Empty, 2}, {Mixed, 3}, {Empty, 1},
2428              {Mixed, 2}, {Full, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 4},
2429              {Empty, 2}, {Mixed, 1}, {Full, 6}, {Empty, 2}, {Full, 8},
2430              {Mixed, 1}, {Full, 1}, {Mixed, 2}, {Full, 1}, {Mixed, 3},
2431              {Empty, 3}, {Mixed, 2}, {Empty, 3}, {Mixed, 3}, {Full, 1},
2432              {Mixed, 1}, {Empty, 83}, {Full, 1}, {Mixed, 2}, {Full, 4},
2433              {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 4},
2434              {Empty, 17}, {Mixed, 3}, {Full, 1}, {Mixed, 2}, {Full, 1},
2435              {Mixed, 3}, {Full, 2}, {Mixed, 2}, {Empty, 1}, {Mixed, 1},
2436              {Empty, 16}, {Full, 205}, {Mixed, 1}, {Empty, 2}, {Full, 654},
2437              {Mixed, 1}, {Empty, 1}, {Full, 36}, {Mixed, 1}, {Empty, 1},
2438              {Mixed, 2}, {Full, 8}, {Mixed, 2}, {Full, 1}, {Mixed, 2},
2439              {Full, 2}, {Mixed, 3}, {Full, 2}, {Mixed, 2}, {Empty, 1},
2440              {Mixed, 3}, {Full, 1}, {Mixed, 3}, {Empty, 1}, {Mixed, 9},
2441              {Full, 1}, {Mixed, 3}, {Full, 1}, {Mixed, 7}, {Full, 3},
2442              {Mixed, 1}, {Full, 349}, {Mixed, 3}, {Empty, 264}, {Full, 11},
2443              {Mixed, 1}, {Full, 2}, {Mixed, 1}, {Empty, 1}, {Mixed, 3},
2444              {Full, 2}, {Mixed, 2}, {Full, 10}, {Mixed, 2}, {Full, 1},
2445              {Mixed, 1}, {Full, 1}, {Mixed, 2}, {Empty, 3}, {Mixed, 1},
2446              {Full, 3}, {Mixed, 1}, {Empty, 1}, {Mixed, 3}, {Full, 1},
2447              {Mixed, 2}, {Empty, 1}, {Mixed, 3}, {Empty, 1}, {Full, 3},
2448              {Mixed, 1}, {Empty, 2}, {Full, 1}, {Mixed, 1}, {Empty, 8},
2449              {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Empty, 1}, {Full, 1},
2450              {Mixed, 4}, {Full, 1}, {Mixed, 1}, {Empty, 1}, {Full, 4},
2451              {Mixed, 4}, {Full, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 1},
2452              {Empty, 4}, {Full, 9}, {Mixed, 3}, {Empty, 4}, {Mixed, 5},
2453              {Empty, 2}, {Mixed, 3}, {Empty, 2}, {Full, 1}, {Mixed, 1},
2454              {Empty, 2}, {Mixed, 2}, {Empty, 1}, {Mixed, 2}, {Empty, 1},
2455              {Mixed, 2}, {Full, 1}, {Mixed, 4}, {Empty, 3}, {Full, 2},
2456              {Mixed, 1}, {Empty, 1}, {Full, 1}, {Mixed, 1}, {Full, 1},
2457              {Mixed, 1}, {Empty, 24}, {Mixed, 2}, {Empty, 2}, {Mixed, 11},
2458              {Empty, 1}, {Mixed, 2}, {Empty, 2}, {Mixed, 3}, {Empty, 1},
2459              {Mixed, 4}, {Empty, 4}, {Full, 1}, {Mixed, 2}, {Empty, 1},
2460              {Full, 1}, {Mixed, 2}, {Empty, 5}, {Full, 1}, {Mixed, 2},
2461              {Empty, 1}, {Full, 1}, {Mixed, 2}, {Empty, 1}, {Full, 1},
2462              {Mixed, 1}, {Empty, 2}, {Mixed, 1}, {Empty, 12}, {Full, 2},
2463              {Mixed, 1}, {Empty, 14}, {Full, 1}, {Mixed, 1}, {Empty, 8},
2464              {Mixed, 5}, {Empty, 27}, {Full, 28}, {Mixed, 1}, {Empty, 3},
2465              {Full, 3}, {Mixed, 1}, {Full, 6}, {Mixed, 1}, {Empty, 85},
2466              {Full, 33}, {Mixed, 1}, {Empty, 126}, {Full, 18}, {Mixed, 1},
2467              {Empty, 269}, {Full, 17}, {Mixed, 2}, {Empty, 3}, {Mixed, 2},
2468              {Full, 1}, {Mixed, 4}, {Empty, 27}, {Full, 2}, {Mixed, 1},
2469              {Empty, 1}, {Mixed, 1}, {Empty, 2}, {Mixed, 1}, {Full, 191},
2470              {Mixed, 1}, {Full, 23}, {Mixed, 1}, {Empty, 296}, {Mixed, 1},
2471              {Empty, 95}, {Full, 3}, {Mixed, 2}, {Empty, 187}, {Full, 2},
2472              {Mixed, 1}, {Full, 1}, {Mixed, 3}, {Full, 1}, {Mixed, 3},
2473              {Full, 10}, {Mixed, 10}, {Empty, 129}, {Full, 6}, {Mixed, 1},
2474              {Empty, 1}, {Full, 2}, {Mixed, 1}, {Empty, 37}, {Mixed, 6},
2475              {Empty, 138}, {Full, 1334}, {Mixed, 1}, {Empty, 1},
2476              {Full, 129}, {Mixed, 1}, {Full, 6}, {Mixed, 1}, {Full, 180},
2477              {Mixed, 1}, {Empty, 330}, {Full, 16}, {Mixed, 1},
2478              {Empty, 28719}},
2479             {0x07fffffe, 0x07fffffe, 0x04200400, 0xff7fffff, 0xff7fffff,
2480              0x0003ffc3, 0x0000501f, 0xbcdf0000, 0xffffd740, 0xfffffffb,
2481              0xffbfffff, 0xfffffc03, 0xfffeffff, 0x027fffff, 0xfffffffe,
2482              0x000000ff, 0xffff0000, 0x000707ff, 0x000007ff, 0xfffec000,
2483              0x002fffff, 0x9c00c060, 0xfffd0000, 0x0000ffff, 0xffffe000,
2484              0x0002003f, 0xfffffc00, 0x043007ff, 0x043fffff, 0x00000110,
2485              0x01ffffff, 0x3fdfffff, 0xfffffff0, 0x23ffffff, 0xff010000,
2486              0xfffe0003, 0xfff99fe1, 0x23c5fdff, 0xb0004000, 0x00030003,
2487              0xfff987e0, 0x036dfdff, 0x5e000000, 0x001c0000, 0xfffbbfe0,
2488              0x23edfdff, 0x00010000, 0x02000003, 0xfff99fe0, 0x23edfdff,
2489              0xb0000000, 0x00020003, 0xd63dc7e8, 0x03ffc718, 0x00010000,
2490              0xfffddfe0, 0x23fffdff, 0x07000000, 0x00000003, 0xfffddfe1,
2491              0x23effdff, 0x40000000, 0x00060003, 0xfffddfe0, 0x27ffffff,
2492              0x80704000, 0xfc000003, 0xfc7fffe0, 0x2ffbffff, 0x0000007f,
2493              0xfffffffe, 0x000dffff, 0x0000007f, 0xfef02596, 0x200decae,
2494              0xf000005f, 0x00000001, 0xfffffeff, 0x00001fff, 0x00001f00,
2495              0x800007ff, 0x3c3f0000, 0xffe1c062, 0x00004003, 0xffff20bf,
2496              0xf7ffffff, 0x3d7f3dff, 0xffff3dff, 0x7f3dffff, 0xff7fff3d,
2497              0xff3dffff, 0x07ffffff, 0x0000ffff, 0x3f3fffff, 0xfffffffe,
2498              0xffff9fff, 0x07fffffe, 0x01ffc7ff, 0x0003dfff, 0x0003ffff,
2499              0x0003ffff, 0x0001dfff, 0x000fffff, 0x10800000, 0x00ffffff,
2500              0xffff05ff, 0x003fffff, 0x7fffffff, 0xffff0000, 0x001f3fff,
2501              0xffff0fff, 0x000003ff, 0x007fffff, 0x001fffff, 0x00000080,
2502              0xffffffe0, 0x000fffff, 0x00000fe0, 0xfffffff8, 0xfc00c001,
2503              0x0000003f, 0x0000000f, 0xfc00e000, 0x3fffffff, 0x000001ff,
2504              0x0063de00, 0x3f3fffff, 0xaaff3f3f, 0x3fffffff, 0x5fdfffff,
2505              0x0fcf1fdc, 0x1fdc1fff, 0x80020000, 0x1fff0000, 0x3f2ffc84,
2506              0xf3fffd50, 0x000043e0, 0x000001ff, 0xffff7fff, 0x7fffffff,
2507              0x000c781f, 0xffff20bf, 0x000080ff, 0x007fffff, 0x7f7f7f7f,
2508              0x7f7f7f7f, 0x000000e0, 0x1f3e03fe, 0xfffffffe, 0xf87fffff,
2509              0xfffffffe, 0xf7ffffff, 0xffffffe0, 0xfffe3fff, 0x00007fff,
2510              0x07ffffff, 0xffff0000, 0x003fffff, 0x003fffff, 0x00001fff,
2511              0xffff0000, 0x3fffffff, 0xffff1fff, 0x00000c00, 0x80007fff,
2512              0x3fffffff, 0x0000ffff, 0xff800000, 0xfffffffc, 0xfffff9ff,
2513              0x00ff7fff, 0xff800000, 0xfffff7bb, 0x00000007, 0x000fffff,
2514              0xfffffffc, 0x000fffff, 0x28fc0000, 0xfffffc00, 0xffff003f,
2515              0x0000007f, 0x1fffffff, 0xfffffff0, 0x0007ffff, 0x00008000,
2516              0x7c00ffdf, 0x000001ff, 0x00000ff7, 0xc47fffff, 0x3e62ffff,
2517              0x38000005, 0x001c07ff, 0x007e7e7e, 0xffff7f7f, 0xf7ffffff,
2518              0xffff003f, 0x00000007, 0xffff000f, 0xfffff87f, 0x0fffffff,
2519              0xffff3fff, 0x03ffffff, 0xa0f8007f, 0x5f7ffdff, 0xffffffdb,
2520              0x0003ffff, 0xfff80000, 0x3fffffff, 0xffff0000, 0xfffcffff,
2521              0x000000ff, 0x0fff0000, 0xffdf0000, 0x1fffffff, 0x07fffffe,
2522              0x07fffffe, 0xffffffc0, 0x7fffffff, 0x1cfcfcfc, 0xffffefff,
2523              0xb7ffff7f, 0x3fff3fff, 0x07ffffff, 0x001fffff, 0x1fffffff,
2524              0x0001ffff, 0xffff0000, 0xffff07ff, 0x003fffff, 0x3fffffff,
2525              0x003eff0f, 0x3fffffff, 0xffff0000, 0xff0fffff, 0x0fffffff,
2526              0xffff00ff, 0x0000000f, 0x007fffff, 0x003fffff, 0x000000ff,
2527              0xfffffd3f, 0x91bfffff, 0x003fffff, 0x007fffff, 0x7fffffff,
2528              0x0037ffff, 0x003fffff, 0x03ffffff, 0xc0ffffff, 0xfeef0001,
2529              0x000fffff, 0x1fffffff, 0x1fffffff, 0xfffffeff, 0x0000001f,
2530              0x003fffff, 0x003fffff, 0x0007ffff, 0x0003ffff, 0x000001ff,
2531              0x0007ffff, 0x0007ffff, 0xfffffff8, 0x00ffffff, 0xfffffff8,
2532              0x0000ffff, 0xffff0000, 0x000001ff, 0xfffffff8, 0x0000007f,
2533              0xffff0000, 0x0047ffff, 0xfffffff8, 0x0007ffff, 0x1400001e,
2534              0xfffbffff, 0x00000fff, 0xbfffbd7f, 0xffff01ff, 0x7fffffff,
2535              0xfff99fe0, 0x23edfdff, 0xe0010000, 0x00000003, 0x001fffff,
2536              0x00000780, 0x0000ffff, 0x000000b0, 0x00007fff, 0x0f000000,
2537              0x0000ffff, 0x00000010, 0x000007ff, 0x03ffffff, 0x80000000,
2538              0x01ffffff, 0xfffffdff, 0x00007fff, 0x00000001, 0xfffc0000,
2539              0x0000ffff, 0x03ffffff, 0x00007fff, 0x0000000f, 0x00007fff,
2540              0x0000007f, 0x01ffffff, 0x7fffffff, 0xffff0000, 0x00003fff,
2541              0x0000ffff, 0x0000000f, 0xe0fffff8, 0x0000ffff, 0x0001001f,
2542              0xfff80000, 0x00000001, 0x00001fff, 0x0007ffff, 0x00000003,
2543              0x1fff07ff, 0x03ff01ff, 0xffdfffff, 0xdfffffff, 0xebffde64,
2544              0xffffffef, 0xdfdfe7bf, 0x7bffffff, 0xfffdfc5f, 0xffffff3f,
2545              0xf7fffffd, 0xf7ffffff, 0xffdfffff, 0xffdfffff, 0xffff7fff,
2546              0xffff7fff, 0xfffffdff, 0xfffffdff, 0x00000ff7, 0x0000001f,
2547              0x0000000f, 0xffffffef, 0x0af7fe96, 0xaa96ea84, 0x5ef7f796,
2548              0x0ffffbff, 0x0ffffbee, 0x007fffff, 0x001fffff, 0x3fffffff,
2549              0x00000003, 0x3fffffff}};
2550        static BinaryPropertyObject property_object{IDS, codepoint_set};
2551    }
2552    namespace LOWER_ns {
2553        /** Code Point Ranges for Lower
2554        [97, 122], [170, 170], [181, 181], [186, 186], [223, 246],
2555        [248, 255], [257, 257], [259, 259], [261, 261], [263, 263],
2556        [265, 265], [267, 267], [269, 269], [271, 271], [273, 273],
2557        [275, 275], [277, 277], [279, 279], [281, 281], [283, 283],
2558        [285, 285], [287, 287], [289, 289], [291, 291], [293, 293],
2559        [295, 295], [297, 297], [299, 299], [301, 301], [303, 303],
2560        [305, 305], [307, 307], [309, 309], [311, 312], [314, 314],
2561        [316, 316], [318, 318], [320, 320], [322, 322], [324, 324],
2562        [326, 326], [328, 329], [331, 331], [333, 333], [335, 335],
2563        [337, 337], [339, 339], [341, 341], [343, 343], [345, 345],
2564        [347, 347], [349, 349], [351, 351], [353, 353], [355, 355],
2565        [357, 357], [359, 359], [361, 361], [363, 363], [365, 365],
2566        [367, 367], [369, 369], [371, 371], [373, 373], [375, 375],
2567        [378, 378], [380, 380], [382, 384], [387, 387], [389, 389],
2568        [392, 392], [396, 397], [402, 402], [405, 405], [409, 411],
2569        [414, 414], [417, 417], [419, 419], [421, 421], [424, 424],
2570        [426, 427], [429, 429], [432, 432], [436, 436], [438, 438],
2571        [441, 442], [445, 447], [454, 454], [457, 457], [460, 460],
2572        [462, 462], [464, 464], [466, 466], [468, 468], [470, 470],
2573        [472, 472], [474, 474], [476, 477], [479, 479], [481, 481],
2574        [483, 483], [485, 485], [487, 487], [489, 489], [491, 491],
2575        [493, 493], [495, 496], [499, 499], [501, 501], [505, 505],
2576        [507, 507], [509, 509], [511, 511], [513, 513], [515, 515],
2577        [517, 517], [519, 519], [521, 521], [523, 523], [525, 525],
2578        [527, 527], [529, 529], [531, 531], [533, 533], [535, 535],
2579        [537, 537], [539, 539], [541, 541], [543, 543], [545, 545],
2580        [547, 547], [549, 549], [551, 551], [553, 553], [555, 555],
2581        [557, 557], [559, 559], [561, 561], [563, 569], [572, 572],
2582        [575, 576], [578, 578], [583, 583], [585, 585], [587, 587],
2583        [589, 589], [591, 659], [661, 696], [704, 705], [736, 740],
2584        [837, 837], [881, 881], [883, 883], [887, 887], [890, 893],
2585        [912, 912], [940, 974], [976, 977], [981, 983], [985, 985],
2586        [987, 987], [989, 989], [991, 991], [993, 993], [995, 995],
2587        [997, 997], [999, 999], [1001, 1001], [1003, 1003], [1005, 1005],
2588        [1007, 1011], [1013, 1013], [1016, 1016], [1019, 1020],
2589        [1072, 1119], [1121, 1121], [1123, 1123], [1125, 1125],
2590        [1127, 1127], [1129, 1129], [1131, 1131], [1133, 1133],
2591        [1135, 1135], [1137, 1137], [1139, 1139], [1141, 1141],
2592        [1143, 1143], [1145, 1145], [1147, 1147], [1149, 1149],
2593        [1151, 1151], [1153, 1153], [1163, 1163], [1165, 1165],
2594        [1167, 1167], [1169, 1169], [1171, 1171], [1173, 1173],
2595        [1175, 1175], [1177, 1177], [1179, 1179], [1181, 1181],
2596        [1183, 1183], [1185, 1185], [1187, 1187], [1189, 1189],
2597        [1191, 1191], [1193, 1193], [1195, 1195], [1197, 1197],
2598        [1199, 1199], [1201, 1201], [1203, 1203], [1205, 1205],
2599        [1207, 1207], [1209, 1209], [1211, 1211], [1213, 1213],
2600        [1215, 1215], [1218, 1218], [1220, 1220], [1222, 1222],
2601        [1224, 1224], [1226, 1226], [1228, 1228], [1230, 1231],
2602        [1233, 1233], [1235, 1235], [1237, 1237], [1239, 1239],
2603        [1241, 1241], [1243, 1243], [1245, 1245], [1247, 1247],
2604        [1249, 1249], [1251, 1251], [1253, 1253], [1255, 1255],
2605        [1257, 1257], [1259, 1259], [1261, 1261], [1263, 1263],
2606        [1265, 1265], [1267, 1267], [1269, 1269], [1271, 1271],
2607        [1273, 1273], [1275, 1275], [1277, 1277], [1279, 1279],
2608        [1281, 1281], [1283, 1283], [1285, 1285], [1287, 1287],
2609        [1289, 1289], [1291, 1291], [1293, 1293], [1295, 1295],
2610        [1297, 1297], [1299, 1299], [1301, 1301], [1303, 1303],
2611        [1305, 1305], [1307, 1307], [1309, 1309], [1311, 1311],
2612        [1313, 1313], [1315, 1315], [1317, 1317], [1319, 1319],
2613        [1321, 1321], [1323, 1323], [1325, 1325], [1327, 1327],
2614        [1377, 1415], [5112, 5117], [7296, 7304], [7424, 7615],
2615        [7681, 7681], [7683, 7683], [7685, 7685], [7687, 7687],
2616        [7689, 7689], [7691, 7691], [7693, 7693], [7695, 7695],
2617        [7697, 7697], [7699, 7699], [7701, 7701], [7703, 7703],
2618        [7705, 7705], [7707, 7707], [7709, 7709], [7711, 7711],
2619        [7713, 7713], [7715, 7715], [7717, 7717], [7719, 7719],
2620        [7721, 7721], [7723, 7723], [7725, 7725], [7727, 7727],
2621        [7729, 7729], [7731, 7731], [7733, 7733], [7735, 7735],
2622        [7737, 7737], [7739, 7739], [7741, 7741], [7743, 7743],
2623        [7745, 7745], [7747, 7747], [7749, 7749], [7751, 7751],
2624        [7753, 7753], [7755, 7755], [7757, 7757], [7759, 7759],
2625        [7761, 7761], [7763, 7763], [7765, 7765], [7767, 7767],
2626        [7769, 7769], [7771, 7771], [7773, 7773], [7775, 7775],
2627        [7777, 7777], [7779, 7779], [7781, 7781], [7783, 7783],
2628        [7785, 7785], [7787, 7787], [7789, 7789], [7791, 7791],
2629        [7793, 7793], [7795, 7795], [7797, 7797], [7799, 7799],
2630        [7801, 7801], [7803, 7803], [7805, 7805], [7807, 7807],
2631        [7809, 7809], [7811, 7811], [7813, 7813], [7815, 7815],
2632        [7817, 7817], [7819, 7819], [7821, 7821], [7823, 7823],
2633        [7825, 7825], [7827, 7827], [7829, 7837], [7839, 7839],
2634        [7841, 7841], [7843, 7843], [7845, 7845], [7847, 7847],
2635        [7849, 7849], [7851, 7851], [7853, 7853], [7855, 7855],
2636        [7857, 7857], [7859, 7859], [7861, 7861], [7863, 7863],
2637        [7865, 7865], [7867, 7867], [7869, 7869], [7871, 7871],
2638        [7873, 7873], [7875, 7875], [7877, 7877], [7879, 7879],
2639        [7881, 7881], [7883, 7883], [7885, 7885], [7887, 7887],
2640        [7889, 7889], [7891, 7891], [7893, 7893], [7895, 7895],
2641        [7897, 7897], [7899, 7899], [7901, 7901], [7903, 7903],
2642        [7905, 7905], [7907, 7907], [7909, 7909], [7911, 7911],
2643        [7913, 7913], [7915, 7915], [7917, 7917], [7919, 7919],
2644        [7921, 7921], [7923, 7923], [7925, 7925], [7927, 7927],
2645        [7929, 7929], [7931, 7931], [7933, 7933], [7935, 7943],
2646        [7952, 7957], [7968, 7975], [7984, 7991], [8000, 8005],
2647        [8016, 8023], [8032, 8039], [8048, 8061], [8064, 8071],
2648        [8080, 8087], [8096, 8103], [8112, 8116], [8118, 8119],
2649        [8126, 8126], [8130, 8132], [8134, 8135], [8144, 8147],
2650        [8150, 8151], [8160, 8167], [8178, 8180], [8182, 8183],
2651        [8305, 8305], [8319, 8319], [8336, 8348], [8458, 8458],
2652        [8462, 8463], [8467, 8467], [8495, 8495], [8500, 8500],
2653        [8505, 8505], [8508, 8509], [8518, 8521], [8526, 8526],
2654        [8560, 8575], [8580, 8580], [9424, 9449], [11312, 11358],
2655        [11361, 11361], [11365, 11366], [11368, 11368], [11370, 11370],
2656        [11372, 11372], [11377, 11377], [11379, 11380], [11382, 11389],
2657        [11393, 11393], [11395, 11395], [11397, 11397], [11399, 11399],
2658        [11401, 11401], [11403, 11403], [11405, 11405], [11407, 11407],
2659        [11409, 11409], [11411, 11411], [11413, 11413], [11415, 11415],
2660        [11417, 11417], [11419, 11419], [11421, 11421], [11423, 11423],
2661        [11425, 11425], [11427, 11427], [11429, 11429], [11431, 11431],
2662        [11433, 11433], [11435, 11435], [11437, 11437], [11439, 11439],
2663        [11441, 11441], [11443, 11443], [11445, 11445], [11447, 11447],
2664        [11449, 11449], [11451, 11451], [11453, 11453], [11455, 11455],
2665        [11457, 11457], [11459, 11459], [11461, 11461], [11463, 11463],
2666        [11465, 11465], [11467, 11467], [11469, 11469], [11471, 11471],
2667        [11473, 11473], [11475, 11475], [11477, 11477], [11479, 11479],
2668        [11481, 11481], [11483, 11483], [11485, 11485], [11487, 11487],
2669        [11489, 11489], [11491, 11492], [11500, 11500], [11502, 11502],
2670        [11507, 11507], [11520, 11557], [11559, 11559], [11565, 11565],
2671        [42561, 42561], [42563, 42563], [42565, 42565], [42567, 42567],
2672        [42569, 42569], [42571, 42571], [42573, 42573], [42575, 42575],
2673        [42577, 42577], [42579, 42579], [42581, 42581], [42583, 42583],
2674        [42585, 42585], [42587, 42587], [42589, 42589], [42591, 42591],
2675        [42593, 42593], [42595, 42595], [42597, 42597], [42599, 42599],
2676        [42601, 42601], [42603, 42603], [42605, 42605], [42625, 42625],
2677        [42627, 42627], [42629, 42629], [42631, 42631], [42633, 42633],
2678        [42635, 42635], [42637, 42637], [42639, 42639], [42641, 42641],
2679        [42643, 42643], [42645, 42645], [42647, 42647], [42649, 42649],
2680        [42651, 42653], [42787, 42787], [42789, 42789], [42791, 42791],
2681        [42793, 42793], [42795, 42795], [42797, 42797], [42799, 42801],
2682        [42803, 42803], [42805, 42805], [42807, 42807], [42809, 42809],
2683        [42811, 42811], [42813, 42813], [42815, 42815], [42817, 42817],
2684        [42819, 42819], [42821, 42821], [42823, 42823], [42825, 42825],
2685        [42827, 42827], [42829, 42829], [42831, 42831], [42833, 42833],
2686        [42835, 42835], [42837, 42837], [42839, 42839], [42841, 42841],
2687        [42843, 42843], [42845, 42845], [42847, 42847], [42849, 42849],
2688        [42851, 42851], [42853, 42853], [42855, 42855], [42857, 42857],
2689        [42859, 42859], [42861, 42861], [42863, 42872], [42874, 42874],
2690        [42876, 42876], [42879, 42879], [42881, 42881], [42883, 42883],
2691        [42885, 42885], [42887, 42887], [42892, 42892], [42894, 42894],
2692        [42897, 42897], [42899, 42901], [42903, 42903], [42905, 42905],
2693        [42907, 42907], [42909, 42909], [42911, 42911], [42913, 42913],
2694        [42915, 42915], [42917, 42917], [42919, 42919], [42921, 42921],
2695        [42933, 42933], [42935, 42935], [43000, 43002], [43824, 43866],
2696        [43868, 43877], [43888, 43967], [64256, 64262], [64275, 64279],
2697        [65345, 65370], [66600, 66639], [66776, 66811], [68800, 68850],
2698        [71872, 71903], [119834, 119859], [119886, 119892],
2699        [119894, 119911], [119938, 119963], [119990, 119993],
2700        [119995, 119995], [119997, 120003], [120005, 120015],
2701        [120042, 120067], [120094, 120119], [120146, 120171],
2702        [120198, 120223], [120250, 120275], [120302, 120327],
2703        [120354, 120379], [120406, 120431], [120458, 120485],
2704        [120514, 120538], [120540, 120545], [120572, 120596],
2705        [120598, 120603], [120630, 120654], [120656, 120661],
2706        [120688, 120712], [120714, 120719], [120746, 120770],
2707        [120772, 120777], [120779, 120779], [125218, 125251]**/
2708        const UnicodeSet codepoint_set
2709            {{{Empty, 3}, {Mixed, 1}, {Empty, 1}, {Mixed, 14}, {Full, 1},
2710              {Mixed, 4}, {Empty, 2}, {Mixed, 6}, {Empty, 1}, {Mixed, 1},
2711              {Full, 1}, {Mixed, 7}, {Empty, 1}, {Mixed, 2}, {Empty, 114},
2712              {Mixed, 1}, {Empty, 68}, {Mixed, 1}, {Empty, 3}, {Full, 6},
2713              {Empty, 2}, {Mixed, 16}, {Empty, 3}, {Mixed, 2}, {Empty, 3},
2714              {Mixed, 5}, {Empty, 25}, {Mixed, 2}, {Empty, 57}, {Mixed, 7},
2715              {Full, 1}, {Mixed, 1}, {Empty, 968}, {Mixed, 3}, {Empty, 4},
2716              {Mixed, 5}, {Empty, 1}, {Mixed, 1}, {Empty, 25}, {Mixed, 3},
2717              {Full, 2}, {Empty, 634}, {Mixed, 1}, {Empty, 33}, {Mixed, 1},
2718              {Empty, 38}, {Mixed, 2}, {Empty, 3}, {Mixed, 2}, {Empty, 62},
2719              {Full, 1}, {Mixed, 1}, {Empty, 94}, {Full, 1}, {Empty, 1497},
2720              {Mixed, 31}, {Empty, 138}, {Mixed, 2}, {Empty, 30901}},
2721             {0x07fffffe, 0x04200400, 0x80000000, 0xff7fffff, 0xaaaaaaaa,
2722              0x55aaaaaa, 0xaaaaab55, 0xd4aaaaaa, 0x4e243129, 0xe6512d2a,
2723              0xb5555240, 0xaa29aaaa, 0xaaaaaaaa, 0x93faaaaa, 0xffffaa85,
2724              0xffefffff, 0x01ffffff, 0x00000003, 0x0000001f, 0x00000020,
2725              0x3c8a0000, 0x00010000, 0xfffff000, 0xaae37fff, 0x192faaaa,
2726              0xffff0000, 0xaaaaaaaa, 0xaaaaa802, 0xaaaaaaaa, 0xaaaad554,
2727              0xaaaaaaaa, 0xaaaaaaaa, 0x0000aaaa, 0xfffffffe, 0x000000ff,
2728              0x3f000000, 0x000001ff, 0xaaaaaaaa, 0xaaaaaaaa, 0xaaaaaaaa,
2729              0xaaaaaaaa, 0xbfeaaaaa, 0xaaaaaaaa, 0xaaaaaaaa, 0xaaaaaaaa,
2730              0x003f00ff, 0x00ff00ff, 0x00ff003f, 0x3fff00ff, 0x00ff00ff,
2731              0x40df00ff, 0x00cf00dc, 0x00dc00ff, 0x80020000, 0x1fff0000,
2732              0x0008c400, 0x32108000, 0x000043c0, 0xffff0000, 0x00000010,
2733              0xffff0000, 0x000003ff, 0xffff0000, 0x7fffffff, 0x3fda1562,
2734              0xaaaaaaaa, 0xaaaaaaaa, 0xaaaaaaaa, 0x0008501a, 0x000020bf,
2735              0xaaaaaaaa, 0x00002aaa, 0x3aaaaaaa, 0xaaabaaa8, 0xaaaaaaaa,
2736              0x95ffaaaa, 0xaaba50aa, 0x00a002aa, 0x07000000, 0xffff0000,
2737              0xf7ffffff, 0xffff003f, 0x00f8007f, 0x07fffffe, 0xffffff00,
2738              0x0000ffff, 0xff000000, 0x0fffffff, 0x0007ffff, 0xfc000000,
2739              0x000fffff, 0xffdfc000, 0x000000ff, 0x0ffffffc, 0xebc00000,
2740              0x0000ffef, 0xfffffc00, 0xc000000f, 0x00ffffff, 0xfffc0000,
2741              0x00000fff, 0xffffffc0, 0xfc000000, 0x000fffff, 0xffffc000,
2742              0x000000ff, 0x0ffffffc, 0xffc00000, 0x0000ffff, 0xfffffc00,
2743              0x0000003f, 0xf7fffffc, 0xf0000003, 0x0fdfffff, 0xffc00000,
2744              0x003f7fff, 0xffff0000, 0x0000fdff, 0xfffffc00, 0x00000bf7,
2745              0xfffffffc, 0x0000000f}};
2746        static BinaryPropertyObject property_object{Lower, codepoint_set};
2747    }
2748    namespace MATH_ns {
2749        /** Code Point Ranges for Math
2750        [43, 43], [60, 62], [94, 94], [124, 124], [126, 126], [172, 172],
2751        [177, 177], [215, 215], [247, 247], [976, 978], [981, 981],
2752        [1008, 1009], [1012, 1014], [1542, 1544], [8214, 8214],
2753        [8242, 8244], [8256, 8256], [8260, 8260], [8274, 8274],
2754        [8289, 8292], [8314, 8318], [8330, 8334], [8400, 8412],
2755        [8417, 8417], [8421, 8422], [8427, 8431], [8450, 8450],
2756        [8455, 8455], [8458, 8467], [8469, 8469], [8472, 8477],
2757        [8484, 8484], [8488, 8489], [8492, 8493], [8495, 8497],
2758        [8499, 8504], [8508, 8521], [8523, 8523], [8592, 8615],
2759        [8617, 8622], [8624, 8625], [8630, 8631], [8636, 8667],
2760        [8669, 8669], [8676, 8677], [8692, 8959], [8968, 8971],
2761        [8992, 8993], [9084, 9084], [9115, 9141], [9143, 9143],
2762        [9168, 9168], [9180, 9186], [9632, 9633], [9646, 9655],
2763        [9660, 9665], [9670, 9671], [9674, 9675], [9679, 9683],
2764        [9698, 9698], [9700, 9700], [9703, 9708], [9720, 9727],
2765        [9733, 9734], [9792, 9792], [9794, 9794], [9824, 9827],
2766        [9837, 9839], [10176, 10239], [10496, 11007], [11056, 11076],
2767        [11079, 11084], [64297, 64297], [65121, 65126], [65128, 65128],
2768        [65291, 65291], [65308, 65310], [65340, 65340], [65342, 65342],
2769        [65372, 65372], [65374, 65374], [65506, 65506], [65513, 65516],
2770        [119808, 119892], [119894, 119964], [119966, 119967],
2771        [119970, 119970], [119973, 119974], [119977, 119980],
2772        [119982, 119993], [119995, 119995], [119997, 120003],
2773        [120005, 120069], [120071, 120074], [120077, 120084],
2774        [120086, 120092], [120094, 120121], [120123, 120126],
2775        [120128, 120132], [120134, 120134], [120138, 120144],
2776        [120146, 120485], [120488, 120779], [120782, 120831],
2777        [126464, 126467], [126469, 126495], [126497, 126498],
2778        [126500, 126500], [126503, 126503], [126505, 126514],
2779        [126516, 126519], [126521, 126521], [126523, 126523],
2780        [126530, 126530], [126535, 126535], [126537, 126537],
2781        [126539, 126539], [126541, 126543], [126545, 126546],
2782        [126548, 126548], [126551, 126551], [126553, 126553],
2783        [126555, 126555], [126557, 126557], [126559, 126559],
2784        [126561, 126562], [126564, 126564], [126567, 126570],
2785        [126572, 126578], [126580, 126583], [126585, 126588],
2786        [126590, 126590], [126592, 126601], [126603, 126619],
2787        [126625, 126627], [126629, 126633], [126635, 126651],
2788        [126704, 126705]**/
2789        const UnicodeSet codepoint_set
2790            {{{Empty, 1}, {Mixed, 3}, {Empty, 1}, {Mixed, 3}, {Empty, 22},
2791              {Mixed, 2}, {Empty, 16}, {Mixed, 1}, {Empty, 207}, {Mixed, 5},
2792              {Empty, 1}, {Mixed, 5}, {Empty, 1}, {Mixed, 4}, {Full, 8},
2793              {Mixed, 2}, {Empty, 1}, {Mixed, 5}, {Empty, 13}, {Mixed, 4},
2794              {Empty, 1}, {Mixed, 2}, {Empty, 10}, {Full, 2}, {Empty, 8},
2795              {Full, 16}, {Empty, 1}, {Mixed, 2}, {Empty, 1662}, {Mixed, 1},
2796              {Empty, 25}, {Mixed, 1}, {Empty, 4}, {Mixed, 3}, {Empty, 4},
2797              {Mixed, 1}, {Empty, 1696}, {Full, 2}, {Mixed, 1}, {Full, 1},
2798              {Mixed, 3}, {Full, 1}, {Mixed, 3}, {Full, 10}, {Mixed, 1},
2799              {Full, 8}, {Mixed, 1}, {Full, 1}, {Empty, 176}, {Mixed, 6},
2800              {Empty, 1}, {Mixed, 1}, {Empty, 30856}},
2801             {0x70000800, 0x40000000, 0x50000000, 0x00021000, 0x00800000,
2802              0x00800000, 0x00270000, 0x00730000, 0x000001c0, 0x00400000,
2803              0x001c0000, 0x00040011, 0x7c00001e, 0x00007c00, 0x1fff0000,
2804              0x0000f862, 0x3f2ffc84, 0xf1fbb310, 0x00000bff, 0xffff0000,
2805              0xf0c37eff, 0x2fffffff, 0xfff00030, 0x00000f00, 0x00000003,
2806              0x10000000, 0xf8000000, 0x00bfffff, 0xf0010000, 0x00000007,
2807              0xf0ffc003, 0x000f8cc3, 0xff001f94, 0x00000060, 0x00000005,
2808              0x0000e00f, 0xffff0000, 0x00001f9f, 0x00000200, 0x0000017e,
2809              0x70000800, 0x50000000, 0x50000000, 0x00001e04, 0xffdfffff,
2810              0xdfffffff, 0xebffde64, 0xffffffef, 0xdfdfe7bf, 0x7bffffff,
2811              0xfffdfc5f, 0xffffff3f, 0xffffcfff, 0xffffffef, 0x0af7fe96,
2812              0xaa96ea84, 0x5ef7f796, 0x0ffffbff, 0x0ffffbee, 0x00030000}};
2813        static BinaryPropertyObject property_object{Math, codepoint_set};
2814    }
2815    namespace UPPER_ns {
2816        /** Code Point Ranges for Upper
2817        [65, 90], [192, 214], [216, 222], [256, 256], [258, 258],
2818        [260, 260], [262, 262], [264, 264], [266, 266], [268, 268],
2819        [270, 270], [272, 272], [274, 274], [276, 276], [278, 278],
2820        [280, 280], [282, 282], [284, 284], [286, 286], [288, 288],
2821        [290, 290], [292, 292], [294, 294], [296, 296], [298, 298],
2822        [300, 300], [302, 302], [304, 304], [306, 306], [308, 308],
2823        [310, 310], [313, 313], [315, 315], [317, 317], [319, 319],
2824        [321, 321], [323, 323], [325, 325], [327, 327], [330, 330],
2825        [332, 332], [334, 334], [336, 336], [338, 338], [340, 340],
2826        [342, 342], [344, 344], [346, 346], [348, 348], [350, 350],
2827        [352, 352], [354, 354], [356, 356], [358, 358], [360, 360],
2828        [362, 362], [364, 364], [366, 366], [368, 368], [370, 370],
2829        [372, 372], [374, 374], [376, 377], [379, 379], [381, 381],
2830        [385, 386], [388, 388], [390, 391], [393, 395], [398, 401],
2831        [403, 404], [406, 408], [412, 413], [415, 416], [418, 418],
2832        [420, 420], [422, 423], [425, 425], [428, 428], [430, 431],
2833        [433, 435], [437, 437], [439, 440], [444, 444], [452, 452],
2834        [455, 455], [458, 458], [461, 461], [463, 463], [465, 465],
2835        [467, 467], [469, 469], [471, 471], [473, 473], [475, 475],
2836        [478, 478], [480, 480], [482, 482], [484, 484], [486, 486],
2837        [488, 488], [490, 490], [492, 492], [494, 494], [497, 497],
2838        [500, 500], [502, 504], [506, 506], [508, 508], [510, 510],
2839        [512, 512], [514, 514], [516, 516], [518, 518], [520, 520],
2840        [522, 522], [524, 524], [526, 526], [528, 528], [530, 530],
2841        [532, 532], [534, 534], [536, 536], [538, 538], [540, 540],
2842        [542, 542], [544, 544], [546, 546], [548, 548], [550, 550],
2843        [552, 552], [554, 554], [556, 556], [558, 558], [560, 560],
2844        [562, 562], [570, 571], [573, 574], [577, 577], [579, 582],
2845        [584, 584], [586, 586], [588, 588], [590, 590], [880, 880],
2846        [882, 882], [886, 886], [895, 895], [902, 902], [904, 906],
2847        [908, 908], [910, 911], [913, 929], [931, 939], [975, 975],
2848        [978, 980], [984, 984], [986, 986], [988, 988], [990, 990],
2849        [992, 992], [994, 994], [996, 996], [998, 998], [1000, 1000],
2850        [1002, 1002], [1004, 1004], [1006, 1006], [1012, 1012],
2851        [1015, 1015], [1017, 1018], [1021, 1071], [1120, 1120],
2852        [1122, 1122], [1124, 1124], [1126, 1126], [1128, 1128],
2853        [1130, 1130], [1132, 1132], [1134, 1134], [1136, 1136],
2854        [1138, 1138], [1140, 1140], [1142, 1142], [1144, 1144],
2855        [1146, 1146], [1148, 1148], [1150, 1150], [1152, 1152],
2856        [1162, 1162], [1164, 1164], [1166, 1166], [1168, 1168],
2857        [1170, 1170], [1172, 1172], [1174, 1174], [1176, 1176],
2858        [1178, 1178], [1180, 1180], [1182, 1182], [1184, 1184],
2859        [1186, 1186], [1188, 1188], [1190, 1190], [1192, 1192],
2860        [1194, 1194], [1196, 1196], [1198, 1198], [1200, 1200],
2861        [1202, 1202], [1204, 1204], [1206, 1206], [1208, 1208],
2862        [1210, 1210], [1212, 1212], [1214, 1214], [1216, 1217],
2863        [1219, 1219], [1221, 1221], [1223, 1223], [1225, 1225],
2864        [1227, 1227], [1229, 1229], [1232, 1232], [1234, 1234],
2865        [1236, 1236], [1238, 1238], [1240, 1240], [1242, 1242],
2866        [1244, 1244], [1246, 1246], [1248, 1248], [1250, 1250],
2867        [1252, 1252], [1254, 1254], [1256, 1256], [1258, 1258],
2868        [1260, 1260], [1262, 1262], [1264, 1264], [1266, 1266],
2869        [1268, 1268], [1270, 1270], [1272, 1272], [1274, 1274],
2870        [1276, 1276], [1278, 1278], [1280, 1280], [1282, 1282],
2871        [1284, 1284], [1286, 1286], [1288, 1288], [1290, 1290],
2872        [1292, 1292], [1294, 1294], [1296, 1296], [1298, 1298],
2873        [1300, 1300], [1302, 1302], [1304, 1304], [1306, 1306],
2874        [1308, 1308], [1310, 1310], [1312, 1312], [1314, 1314],
2875        [1316, 1316], [1318, 1318], [1320, 1320], [1322, 1322],
2876        [1324, 1324], [1326, 1326], [1329, 1366], [4256, 4293],
2877        [4295, 4295], [4301, 4301], [5024, 5109], [7680, 7680],
2878        [7682, 7682], [7684, 7684], [7686, 7686], [7688, 7688],
2879        [7690, 7690], [7692, 7692], [7694, 7694], [7696, 7696],
2880        [7698, 7698], [7700, 7700], [7702, 7702], [7704, 7704],
2881        [7706, 7706], [7708, 7708], [7710, 7710], [7712, 7712],
2882        [7714, 7714], [7716, 7716], [7718, 7718], [7720, 7720],
2883        [7722, 7722], [7724, 7724], [7726, 7726], [7728, 7728],
2884        [7730, 7730], [7732, 7732], [7734, 7734], [7736, 7736],
2885        [7738, 7738], [7740, 7740], [7742, 7742], [7744, 7744],
2886        [7746, 7746], [7748, 7748], [7750, 7750], [7752, 7752],
2887        [7754, 7754], [7756, 7756], [7758, 7758], [7760, 7760],
2888        [7762, 7762], [7764, 7764], [7766, 7766], [7768, 7768],
2889        [7770, 7770], [7772, 7772], [7774, 7774], [7776, 7776],
2890        [7778, 7778], [7780, 7780], [7782, 7782], [7784, 7784],
2891        [7786, 7786], [7788, 7788], [7790, 7790], [7792, 7792],
2892        [7794, 7794], [7796, 7796], [7798, 7798], [7800, 7800],
2893        [7802, 7802], [7804, 7804], [7806, 7806], [7808, 7808],
2894        [7810, 7810], [7812, 7812], [7814, 7814], [7816, 7816],
2895        [7818, 7818], [7820, 7820], [7822, 7822], [7824, 7824],
2896        [7826, 7826], [7828, 7828], [7838, 7838], [7840, 7840],
2897        [7842, 7842], [7844, 7844], [7846, 7846], [7848, 7848],
2898        [7850, 7850], [7852, 7852], [7854, 7854], [7856, 7856],
2899        [7858, 7858], [7860, 7860], [7862, 7862], [7864, 7864],
2900        [7866, 7866], [7868, 7868], [7870, 7870], [7872, 7872],
2901        [7874, 7874], [7876, 7876], [7878, 7878], [7880, 7880],
2902        [7882, 7882], [7884, 7884], [7886, 7886], [7888, 7888],
2903        [7890, 7890], [7892, 7892], [7894, 7894], [7896, 7896],
2904        [7898, 7898], [7900, 7900], [7902, 7902], [7904, 7904],
2905        [7906, 7906], [7908, 7908], [7910, 7910], [7912, 7912],
2906        [7914, 7914], [7916, 7916], [7918, 7918], [7920, 7920],
2907        [7922, 7922], [7924, 7924], [7926, 7926], [7928, 7928],
2908        [7930, 7930], [7932, 7932], [7934, 7934], [7944, 7951],
2909        [7960, 7965], [7976, 7983], [7992, 7999], [8008, 8013],
2910        [8025, 8025], [8027, 8027], [8029, 8029], [8031, 8031],
2911        [8040, 8047], [8120, 8123], [8136, 8139], [8152, 8155],
2912        [8168, 8172], [8184, 8187], [8450, 8450], [8455, 8455],
2913        [8459, 8461], [8464, 8466], [8469, 8469], [8473, 8477],
2914        [8484, 8484], [8486, 8486], [8488, 8488], [8490, 8493],
2915        [8496, 8499], [8510, 8511], [8517, 8517], [8544, 8559],
2916        [8579, 8579], [9398, 9423], [11264, 11310], [11360, 11360],
2917        [11362, 11364], [11367, 11367], [11369, 11369], [11371, 11371],
2918        [11373, 11376], [11378, 11378], [11381, 11381], [11390, 11392],
2919        [11394, 11394], [11396, 11396], [11398, 11398], [11400, 11400],
2920        [11402, 11402], [11404, 11404], [11406, 11406], [11408, 11408],
2921        [11410, 11410], [11412, 11412], [11414, 11414], [11416, 11416],
2922        [11418, 11418], [11420, 11420], [11422, 11422], [11424, 11424],
2923        [11426, 11426], [11428, 11428], [11430, 11430], [11432, 11432],
2924        [11434, 11434], [11436, 11436], [11438, 11438], [11440, 11440],
2925        [11442, 11442], [11444, 11444], [11446, 11446], [11448, 11448],
2926        [11450, 11450], [11452, 11452], [11454, 11454], [11456, 11456],
2927        [11458, 11458], [11460, 11460], [11462, 11462], [11464, 11464],
2928        [11466, 11466], [11468, 11468], [11470, 11470], [11472, 11472],
2929        [11474, 11474], [11476, 11476], [11478, 11478], [11480, 11480],
2930        [11482, 11482], [11484, 11484], [11486, 11486], [11488, 11488],
2931        [11490, 11490], [11499, 11499], [11501, 11501], [11506, 11506],
2932        [42560, 42560], [42562, 42562], [42564, 42564], [42566, 42566],
2933        [42568, 42568], [42570, 42570], [42572, 42572], [42574, 42574],
2934        [42576, 42576], [42578, 42578], [42580, 42580], [42582, 42582],
2935        [42584, 42584], [42586, 42586], [42588, 42588], [42590, 42590],
2936        [42592, 42592], [42594, 42594], [42596, 42596], [42598, 42598],
2937        [42600, 42600], [42602, 42602], [42604, 42604], [42624, 42624],
2938        [42626, 42626], [42628, 42628], [42630, 42630], [42632, 42632],
2939        [42634, 42634], [42636, 42636], [42638, 42638], [42640, 42640],
2940        [42642, 42642], [42644, 42644], [42646, 42646], [42648, 42648],
2941        [42650, 42650], [42786, 42786], [42788, 42788], [42790, 42790],
2942        [42792, 42792], [42794, 42794], [42796, 42796], [42798, 42798],
2943        [42802, 42802], [42804, 42804], [42806, 42806], [42808, 42808],
2944        [42810, 42810], [42812, 42812], [42814, 42814], [42816, 42816],
2945        [42818, 42818], [42820, 42820], [42822, 42822], [42824, 42824],
2946        [42826, 42826], [42828, 42828], [42830, 42830], [42832, 42832],
2947        [42834, 42834], [42836, 42836], [42838, 42838], [42840, 42840],
2948        [42842, 42842], [42844, 42844], [42846, 42846], [42848, 42848],
2949        [42850, 42850], [42852, 42852], [42854, 42854], [42856, 42856],
2950        [42858, 42858], [42860, 42860], [42862, 42862], [42873, 42873],
2951        [42875, 42875], [42877, 42878], [42880, 42880], [42882, 42882],
2952        [42884, 42884], [42886, 42886], [42891, 42891], [42893, 42893],
2953        [42896, 42896], [42898, 42898], [42902, 42902], [42904, 42904],
2954        [42906, 42906], [42908, 42908], [42910, 42910], [42912, 42912],
2955        [42914, 42914], [42916, 42916], [42918, 42918], [42920, 42920],
2956        [42922, 42926], [42928, 42932], [42934, 42934], [65313, 65338],
2957        [66560, 66599], [66736, 66771], [68736, 68786], [71840, 71871],
2958        [119808, 119833], [119860, 119885], [119912, 119937],
2959        [119964, 119964], [119966, 119967], [119970, 119970],
2960        [119973, 119974], [119977, 119980], [119982, 119989],
2961        [120016, 120041], [120068, 120069], [120071, 120074],
2962        [120077, 120084], [120086, 120092], [120120, 120121],
2963        [120123, 120126], [120128, 120132], [120134, 120134],
2964        [120138, 120144], [120172, 120197], [120224, 120249],
2965        [120276, 120301], [120328, 120353], [120380, 120405],
2966        [120432, 120457], [120488, 120512], [120546, 120570],
2967        [120604, 120628], [120662, 120686], [120720, 120744],
2968        [120778, 120778], [125184, 125217], [127280, 127305],
2969        [127312, 127337], [127344, 127369]**/
2970        const UnicodeSet codepoint_set
2971            {{{Empty, 2}, {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Empty, 1},
2972              {Mixed, 11}, {Empty, 8}, {Mixed, 5}, {Full, 1}, {Mixed, 1},
2973              {Empty, 1}, {Mixed, 8}, {Empty, 90}, {Full, 1}, {Mixed, 1},
2974              {Empty, 22}, {Full, 2}, {Mixed, 1}, {Empty, 80}, {Mixed, 12},
2975              {Empty, 1}, {Mixed, 3}, {Empty, 8}, {Mixed, 5}, {Empty, 24},
2976              {Mixed, 2}, {Empty, 57}, {Full, 1}, {Mixed, 1}, {Empty, 1},
2977              {Mixed, 5}, {Empty, 970}, {Mixed, 3}, {Empty, 4}, {Mixed, 5},
2978              {Empty, 699}, {Mixed, 1}, {Empty, 38}, {Full, 1}, {Mixed, 1},
2979              {Empty, 3}, {Mixed, 2}, {Empty, 61}, {Full, 1}, {Mixed, 1},
2980              {Empty, 95}, {Full, 1}, {Empty, 1498}, {Mixed, 31},
2981              {Empty, 137}, {Full, 1}, {Mixed, 1}, {Empty, 63}, {Mixed, 4},
2982              {Empty, 30835}},
2983             {0x07fffffe, 0x7f7fffff, 0x55555555, 0xaa555555, 0x555554aa,
2984              0x2b555555, 0xb1dbced6, 0x11aed2d5, 0x4aaaa490, 0x55d25555,
2985              0x55555555, 0x6c055555, 0x0000557a, 0x80450000, 0xfffed740,
2986              0x00000ffb, 0x551c8000, 0xe6905555, 0x0000ffff, 0x55555555,
2987              0x55555401, 0x55555555, 0x55552aab, 0x55555555, 0x55555555,
2988              0xfffe5555, 0x007fffff, 0x000020bf, 0x003fffff, 0x55555555,
2989              0x55555555, 0x55555555, 0x55555555, 0x40155555, 0x55555555,
2990              0x55555555, 0x55555555, 0x3f00ff00, 0xff00ff00, 0xaa003f00,
2991              0x0000ff00, 0x0f000000, 0x0f000f00, 0x0f001f00, 0x3e273884,
2992              0xc00f3d50, 0x00000020, 0x0000ffff, 0x00000008, 0xffc00000,
2993              0x0000ffff, 0x00007fff, 0xc025ea9d, 0x55555555, 0x55555555,
2994              0x55555555, 0x00042805, 0x55555555, 0x00001555, 0x05555555,
2995              0x55545554, 0x55555555, 0x6a005555, 0x55452855, 0x005f7d55,
2996              0x07fffffe, 0x000000ff, 0xffff0000, 0x000fffff, 0x0007ffff,
2997              0x03ffffff, 0xfff00000, 0x00003fff, 0xffffff00, 0xd0000003,
2998              0x003fde64, 0xffff0000, 0x000003ff, 0x1fdfe7b0, 0x7b000000,
2999              0x0001fc5f, 0xfffff000, 0x0000003f, 0x03ffffff, 0xfff00000,
3000              0x00003fff, 0xffffff00, 0xf0000003, 0x003fffff, 0xffff0000,
3001              0x000003ff, 0xffffff00, 0x00000001, 0x07fffffc, 0xf0000000,
3002              0x001fffff, 0xffc00000, 0x00007fff, 0xffff0000, 0x000001ff,
3003              0x00000400, 0x00000003, 0xffff0000, 0xffff03ff, 0xffff03ff,
3004              0x000003ff}};
3005        static BinaryPropertyObject property_object{Upper, codepoint_set};
3006    }
3007    namespace XIDC_ns {
3008        /** Code Point Ranges for XIDC
3009        [48, 57], [65, 90], [95, 95], [97, 122], [170, 170], [181, 181],
3010        [183, 183], [186, 186], [192, 214], [216, 246], [248, 705],
3011        [710, 721], [736, 740], [748, 748], [750, 750], [768, 884],
3012        [886, 887], [891, 893], [895, 895], [902, 906], [908, 908],
3013        [910, 929], [931, 1013], [1015, 1153], [1155, 1159], [1162, 1327],
3014        [1329, 1366], [1369, 1369], [1377, 1415], [1425, 1469],
3015        [1471, 1471], [1473, 1474], [1476, 1477], [1479, 1479],
3016        [1488, 1514], [1520, 1522], [1552, 1562], [1568, 1641],
3017        [1646, 1747], [1749, 1756], [1759, 1768], [1770, 1788],
3018        [1791, 1791], [1808, 1866], [1869, 1969], [1984, 2037],
3019        [2042, 2042], [2048, 2093], [2112, 2139], [2208, 2228],
3020        [2230, 2237], [2260, 2273], [2275, 2403], [2406, 2415],
3021        [2417, 2435], [2437, 2444], [2447, 2448], [2451, 2472],
3022        [2474, 2480], [2482, 2482], [2486, 2489], [2492, 2500],
3023        [2503, 2504], [2507, 2510], [2519, 2519], [2524, 2525],
3024        [2527, 2531], [2534, 2545], [2561, 2563], [2565, 2570],
3025        [2575, 2576], [2579, 2600], [2602, 2608], [2610, 2611],
3026        [2613, 2614], [2616, 2617], [2620, 2620], [2622, 2626],
3027        [2631, 2632], [2635, 2637], [2641, 2641], [2649, 2652],
3028        [2654, 2654], [2662, 2677], [2689, 2691], [2693, 2701],
3029        [2703, 2705], [2707, 2728], [2730, 2736], [2738, 2739],
3030        [2741, 2745], [2748, 2757], [2759, 2761], [2763, 2765],
3031        [2768, 2768], [2784, 2787], [2790, 2799], [2809, 2809],
3032        [2817, 2819], [2821, 2828], [2831, 2832], [2835, 2856],
3033        [2858, 2864], [2866, 2867], [2869, 2873], [2876, 2884],
3034        [2887, 2888], [2891, 2893], [2902, 2903], [2908, 2909],
3035        [2911, 2915], [2918, 2927], [2929, 2929], [2946, 2947],
3036        [2949, 2954], [2958, 2960], [2962, 2965], [2969, 2970],
3037        [2972, 2972], [2974, 2975], [2979, 2980], [2984, 2986],
3038        [2990, 3001], [3006, 3010], [3014, 3016], [3018, 3021],
3039        [3024, 3024], [3031, 3031], [3046, 3055], [3072, 3075],
3040        [3077, 3084], [3086, 3088], [3090, 3112], [3114, 3129],
3041        [3133, 3140], [3142, 3144], [3146, 3149], [3157, 3158],
3042        [3160, 3162], [3168, 3171], [3174, 3183], [3200, 3203],
3043        [3205, 3212], [3214, 3216], [3218, 3240], [3242, 3251],
3044        [3253, 3257], [3260, 3268], [3270, 3272], [3274, 3277],
3045        [3285, 3286], [3294, 3294], [3296, 3299], [3302, 3311],
3046        [3313, 3314], [3329, 3331], [3333, 3340], [3342, 3344],
3047        [3346, 3386], [3389, 3396], [3398, 3400], [3402, 3406],
3048        [3412, 3415], [3423, 3427], [3430, 3439], [3450, 3455],
3049        [3458, 3459], [3461, 3478], [3482, 3505], [3507, 3515],
3050        [3517, 3517], [3520, 3526], [3530, 3530], [3535, 3540],
3051        [3542, 3542], [3544, 3551], [3558, 3567], [3570, 3571],
3052        [3585, 3642], [3648, 3662], [3664, 3673], [3713, 3714],
3053        [3716, 3716], [3719, 3720], [3722, 3722], [3725, 3725],
3054        [3732, 3735], [3737, 3743], [3745, 3747], [3749, 3749],
3055        [3751, 3751], [3754, 3755], [3757, 3769], [3771, 3773],
3056        [3776, 3780], [3782, 3782], [3784, 3789], [3792, 3801],
3057        [3804, 3807], [3840, 3840], [3864, 3865], [3872, 3881],
3058        [3893, 3893], [3895, 3895], [3897, 3897], [3902, 3911],
3059        [3913, 3948], [3953, 3972], [3974, 3991], [3993, 4028],
3060        [4038, 4038], [4096, 4169], [4176, 4253], [4256, 4293],
3061        [4295, 4295], [4301, 4301], [4304, 4346], [4348, 4680],
3062        [4682, 4685], [4688, 4694], [4696, 4696], [4698, 4701],
3063        [4704, 4744], [4746, 4749], [4752, 4784], [4786, 4789],
3064        [4792, 4798], [4800, 4800], [4802, 4805], [4808, 4822],
3065        [4824, 4880], [4882, 4885], [4888, 4954], [4957, 4959],
3066        [4969, 4977], [4992, 5007], [5024, 5109], [5112, 5117],
3067        [5121, 5740], [5743, 5759], [5761, 5786], [5792, 5866],
3068        [5870, 5880], [5888, 5900], [5902, 5908], [5920, 5940],
3069        [5952, 5971], [5984, 5996], [5998, 6000], [6002, 6003],
3070        [6016, 6099], [6103, 6103], [6108, 6109], [6112, 6121],
3071        [6155, 6157], [6160, 6169], [6176, 6263], [6272, 6314],
3072        [6320, 6389], [6400, 6430], [6432, 6443], [6448, 6459],
3073        [6470, 6509], [6512, 6516], [6528, 6571], [6576, 6601],
3074        [6608, 6618], [6656, 6683], [6688, 6750], [6752, 6780],
3075        [6783, 6793], [6800, 6809], [6823, 6823], [6832, 6845],
3076        [6912, 6987], [6992, 7001], [7019, 7027], [7040, 7155],
3077        [7168, 7223], [7232, 7241], [7245, 7293], [7296, 7304],
3078        [7376, 7378], [7380, 7414], [7416, 7417], [7424, 7669],
3079        [7675, 7957], [7960, 7965], [7968, 8005], [8008, 8013],
3080        [8016, 8023], [8025, 8025], [8027, 8027], [8029, 8029],
3081        [8031, 8061], [8064, 8116], [8118, 8124], [8126, 8126],
3082        [8130, 8132], [8134, 8140], [8144, 8147], [8150, 8155],
3083        [8160, 8172], [8178, 8180], [8182, 8188], [8255, 8256],
3084        [8276, 8276], [8305, 8305], [8319, 8319], [8336, 8348],
3085        [8400, 8412], [8417, 8417], [8421, 8432], [8450, 8450],
3086        [8455, 8455], [8458, 8467], [8469, 8469], [8472, 8477],
3087        [8484, 8484], [8486, 8486], [8488, 8488], [8490, 8505],
3088        [8508, 8511], [8517, 8521], [8526, 8526], [8544, 8584],
3089        [11264, 11310], [11312, 11358], [11360, 11492], [11499, 11507],
3090        [11520, 11557], [11559, 11559], [11565, 11565], [11568, 11623],
3091        [11631, 11631], [11647, 11670], [11680, 11686], [11688, 11694],
3092        [11696, 11702], [11704, 11710], [11712, 11718], [11720, 11726],
3093        [11728, 11734], [11736, 11742], [11744, 11775], [12293, 12295],
3094        [12321, 12335], [12337, 12341], [12344, 12348], [12353, 12438],
3095        [12441, 12442], [12445, 12447], [12449, 12538], [12540, 12543],
3096        [12549, 12589], [12593, 12686], [12704, 12730], [12784, 12799],
3097        [13312, 19893], [19968, 40917], [40960, 42124], [42192, 42237],
3098        [42240, 42508], [42512, 42539], [42560, 42607], [42612, 42621],
3099        [42623, 42737], [42775, 42783], [42786, 42888], [42891, 42926],
3100        [42928, 42935], [42999, 43047], [43072, 43123], [43136, 43205],
3101        [43216, 43225], [43232, 43255], [43259, 43259], [43261, 43261],
3102        [43264, 43309], [43312, 43347], [43360, 43388], [43392, 43456],
3103        [43471, 43481], [43488, 43518], [43520, 43574], [43584, 43597],
3104        [43600, 43609], [43616, 43638], [43642, 43714], [43739, 43741],
3105        [43744, 43759], [43762, 43766], [43777, 43782], [43785, 43790],
3106        [43793, 43798], [43808, 43814], [43816, 43822], [43824, 43866],
3107        [43868, 43877], [43888, 44010], [44012, 44013], [44016, 44025],
3108        [44032, 55203], [55216, 55238], [55243, 55291], [63744, 64109],
3109        [64112, 64217], [64256, 64262], [64275, 64279], [64285, 64296],
3110        [64298, 64310], [64312, 64316], [64318, 64318], [64320, 64321],
3111        [64323, 64324], [64326, 64433], [64467, 64605], [64612, 64829],
3112        [64848, 64911], [64914, 64967], [65008, 65017], [65024, 65039],
3113        [65056, 65071], [65075, 65076], [65101, 65103], [65137, 65137],
3114        [65139, 65139], [65143, 65143], [65145, 65145], [65147, 65147],
3115        [65149, 65149], [65151, 65276], [65296, 65305], [65313, 65338],
3116        [65343, 65343], [65345, 65370], [65382, 65470], [65474, 65479],
3117        [65482, 65487], [65490, 65495], [65498, 65500], [65536, 65547],
3118        [65549, 65574], [65576, 65594], [65596, 65597], [65599, 65613],
3119        [65616, 65629], [65664, 65786], [65856, 65908], [66045, 66045],
3120        [66176, 66204], [66208, 66256], [66272, 66272], [66304, 66335],
3121        [66352, 66378], [66384, 66426], [66432, 66461], [66464, 66499],
3122        [66504, 66511], [66513, 66517], [66560, 66717], [66720, 66729],
3123        [66736, 66771], [66776, 66811], [66816, 66855], [66864, 66915],
3124        [67072, 67382], [67392, 67413], [67424, 67431], [67584, 67589],
3125        [67592, 67592], [67594, 67637], [67639, 67640], [67644, 67644],
3126        [67647, 67669], [67680, 67702], [67712, 67742], [67808, 67826],
3127        [67828, 67829], [67840, 67861], [67872, 67897], [67968, 68023],
3128        [68030, 68031], [68096, 68099], [68101, 68102], [68108, 68115],
3129        [68117, 68119], [68121, 68147], [68152, 68154], [68159, 68159],
3130        [68192, 68220], [68224, 68252], [68288, 68295], [68297, 68326],
3131        [68352, 68405], [68416, 68437], [68448, 68466], [68480, 68497],
3132        [68608, 68680], [68736, 68786], [68800, 68850], [69632, 69702],
3133        [69734, 69743], [69759, 69818], [69840, 69864], [69872, 69881],
3134        [69888, 69940], [69942, 69951], [69968, 70003], [70006, 70006],
3135        [70016, 70084], [70090, 70092], [70096, 70106], [70108, 70108],
3136        [70144, 70161], [70163, 70199], [70206, 70206], [70272, 70278],
3137        [70280, 70280], [70282, 70285], [70287, 70301], [70303, 70312],
3138        [70320, 70378], [70384, 70393], [70400, 70403], [70405, 70412],
3139        [70415, 70416], [70419, 70440], [70442, 70448], [70450, 70451],
3140        [70453, 70457], [70460, 70468], [70471, 70472], [70475, 70477],
3141        [70480, 70480], [70487, 70487], [70493, 70499], [70502, 70508],
3142        [70512, 70516], [70656, 70730], [70736, 70745], [70784, 70853],
3143        [70855, 70855], [70864, 70873], [71040, 71093], [71096, 71104],
3144        [71128, 71133], [71168, 71232], [71236, 71236], [71248, 71257],
3145        [71296, 71351], [71360, 71369], [71424, 71449], [71453, 71467],
3146        [71472, 71481], [71840, 71913], [71935, 71935], [72384, 72440],
3147        [72704, 72712], [72714, 72758], [72760, 72768], [72784, 72793],
3148        [72818, 72847], [72850, 72871], [72873, 72886], [73728, 74649],
3149        [74752, 74862], [74880, 75075], [77824, 78894], [82944, 83526],
3150        [92160, 92728], [92736, 92766], [92768, 92777], [92880, 92909],
3151        [92912, 92916], [92928, 92982], [92992, 92995], [93008, 93017],
3152        [93027, 93047], [93053, 93071], [93952, 94020], [94032, 94078],
3153        [94095, 94111], [94176, 94176], [94208, 100332], [100352, 101106],
3154        [110592, 110593], [113664, 113770], [113776, 113788],
3155        [113792, 113800], [113808, 113817], [113821, 113822],
3156        [119141, 119145], [119149, 119154], [119163, 119170],
3157        [119173, 119179], [119210, 119213], [119362, 119364],
3158        [119808, 119892], [119894, 119964], [119966, 119967],
3159        [119970, 119970], [119973, 119974], [119977, 119980],
3160        [119982, 119993], [119995, 119995], [119997, 120003],
3161        [120005, 120069], [120071, 120074], [120077, 120084],
3162        [120086, 120092], [120094, 120121], [120123, 120126],
3163        [120128, 120132], [120134, 120134], [120138, 120144],
3164        [120146, 120485], [120488, 120512], [120514, 120538],
3165        [120540, 120570], [120572, 120596], [120598, 120628],
3166        [120630, 120654], [120656, 120686], [120688, 120712],
3167        [120714, 120744], [120746, 120770], [120772, 120779],
3168        [120782, 120831], [121344, 121398], [121403, 121452],
3169        [121461, 121461], [121476, 121476], [121499, 121503],
3170        [121505, 121519], [122880, 122886], [122888, 122904],
3171        [122907, 122913], [122915, 122916], [122918, 122922],
3172        [124928, 125124], [125136, 125142], [125184, 125258],
3173        [125264, 125273], [126464, 126467], [126469, 126495],
3174        [126497, 126498], [126500, 126500], [126503, 126503],
3175        [126505, 126514], [126516, 126519], [126521, 126521],
3176        [126523, 126523], [126530, 126530], [126535, 126535],
3177        [126537, 126537], [126539, 126539], [126541, 126543],
3178        [126545, 126546], [126548, 126548], [126551, 126551],
3179        [126553, 126553], [126555, 126555], [126557, 126557],
3180        [126559, 126559], [126561, 126562], [126564, 126564],
3181        [126567, 126570], [126572, 126578], [126580, 126583],
3182        [126585, 126588], [126590, 126590], [126592, 126601],
3183        [126603, 126619], [126625, 126627], [126629, 126633],
3184        [126635, 126651], [131072, 173782], [173824, 177972],
3185        [177984, 178205], [178208, 183969], [194560, 195101],
3186        [917760, 917999]**/
3187        const UnicodeSet codepoint_set
3188            {{{Empty, 1}, {Mixed, 3}, {Empty, 1}, {Mixed, 3}, {Full, 14},
3189              {Mixed, 2}, {Full, 3}, {Mixed, 3}, {Full, 1}, {Mixed, 1},
3190              {Full, 4}, {Mixed, 1}, {Full, 4}, {Mixed, 8}, {Full, 2},
3191              {Mixed, 1}, {Full, 2}, {Mixed, 3}, {Full, 1}, {Mixed, 1},
3192              {Full, 2}, {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Full, 1},
3193              {Mixed, 2}, {Empty, 2}, {Mixed, 3}, {Full, 3}, {Mixed, 40},
3194              {Empty, 1}, {Mixed, 3}, {Empty, 1}, {Mixed, 7}, {Empty, 1},
3195              {Full, 2}, {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Full, 1},
3196              {Mixed, 2}, {Full, 10}, {Mixed, 1}, {Full, 1}, {Mixed, 3},
3197              {Full, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 3}, {Full, 2},
3198              {Mixed, 2}, {Full, 18}, {Mixed, 2}, {Full, 2}, {Mixed, 5},
3199              {Full, 2}, {Mixed, 3}, {Full, 2}, {Mixed, 1}, {Full, 1},
3200              {Mixed, 1}, {Full, 1}, {Mixed, 5}, {Full, 1}, {Mixed, 2},
3201              {Empty, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 4}, {Empty, 2},
3202              {Full, 2}, {Mixed, 2}, {Full, 3}, {Mixed, 1}, {Full, 1},
3203              {Mixed, 4}, {Empty, 1}, {Mixed, 2}, {Full, 7}, {Mixed, 1},
3204              {Full, 8}, {Mixed, 1}, {Full, 1}, {Mixed, 2}, {Full, 1},
3205              {Mixed, 3}, {Empty, 1}, {Mixed, 4}, {Empty, 1}, {Mixed, 5},
3206              {Full, 1}, {Mixed, 1}, {Empty, 83}, {Full, 1}, {Mixed, 2},
3207              {Full, 4}, {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Full, 1},
3208              {Mixed, 4}, {Full, 1}, {Empty, 16}, {Mixed, 3}, {Full, 1},
3209              {Mixed, 2}, {Full, 1}, {Mixed, 3}, {Full, 2}, {Mixed, 2},
3210              {Empty, 1}, {Mixed, 1}, {Empty, 16}, {Full, 205}, {Mixed, 1},
3211              {Empty, 2}, {Full, 654}, {Mixed, 1}, {Empty, 1}, {Full, 36},
3212              {Mixed, 1}, {Empty, 1}, {Mixed, 2}, {Full, 8}, {Mixed, 2},
3213              {Full, 1}, {Mixed, 1}, {Full, 3}, {Mixed, 3}, {Full, 2},
3214              {Mixed, 2}, {Empty, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 1},
3215              {Full, 1}, {Mixed, 1}, {Full, 2}, {Mixed, 2}, {Full, 1},
3216              {Mixed, 3}, {Full, 2}, {Mixed, 2}, {Full, 1}, {Mixed, 3},
3217              {Full, 2}, {Mixed, 6}, {Full, 3}, {Mixed, 1}, {Full, 349},
3218              {Mixed, 3}, {Empty, 264}, {Full, 11}, {Mixed, 1}, {Full, 2},
3219              {Mixed, 1}, {Empty, 1}, {Mixed, 3}, {Full, 2}, {Mixed, 2},
3220              {Full, 3}, {Mixed, 2}, {Full, 5}, {Mixed, 2}, {Full, 1},
3221              {Mixed, 1}, {Full, 1}, {Mixed, 6}, {Full, 3}, {Mixed, 5},
3222              {Full, 1}, {Mixed, 2}, {Empty, 1}, {Mixed, 3}, {Empty, 1},
3223              {Full, 3}, {Mixed, 1}, {Empty, 2}, {Full, 1}, {Mixed, 1},
3224              {Empty, 3}, {Mixed, 1}, {Empty, 4}, {Mixed, 1}, {Full, 1},
3225              {Mixed, 2}, {Full, 1}, {Mixed, 4}, {Full, 1}, {Mixed, 1},
3226              {Empty, 1}, {Full, 4}, {Mixed, 4}, {Full, 1}, {Mixed, 1},
3227              {Full, 1}, {Mixed, 1}, {Empty, 4}, {Full, 9}, {Mixed, 3},
3228              {Empty, 4}, {Mixed, 5}, {Empty, 2}, {Mixed, 3}, {Empty, 2},
3229              {Full, 1}, {Mixed, 1}, {Empty, 2}, {Mixed, 2}, {Empty, 1},
3230              {Mixed, 2}, {Empty, 1}, {Mixed, 2}, {Full, 1}, {Mixed, 4},
3231              {Empty, 3}, {Full, 2}, {Mixed, 1}, {Empty, 1}, {Full, 1},
3232              {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Empty, 24}, {Full, 2},
3233              {Mixed, 2}, {Full, 1}, {Mixed, 3}, {Full, 1}, {Mixed, 3},
3234              {Full, 2}, {Mixed, 1}, {Empty, 1}, {Mixed, 2}, {Empty, 2},
3235              {Mixed, 2}, {Full, 1}, {Mixed, 5}, {Empty, 4}, {Full, 2},
3236              {Mixed, 1}, {Empty, 1}, {Full, 2}, {Mixed, 1}, {Empty, 5},
3237              {Full, 1}, {Mixed, 2}, {Empty, 1}, {Full, 2}, {Mixed, 1},
3238              {Empty, 1}, {Full, 1}, {Mixed, 2}, {Empty, 1}, {Mixed, 2},
3239              {Empty, 11}, {Full, 2}, {Mixed, 1}, {Empty, 14}, {Full, 1},
3240              {Mixed, 1}, {Empty, 8}, {Mixed, 6}, {Empty, 26}, {Full, 28},
3241              {Mixed, 1}, {Empty, 3}, {Full, 3}, {Mixed, 1}, {Full, 6},
3242              {Mixed, 1}, {Empty, 85}, {Full, 33}, {Mixed, 1}, {Empty, 126},
3243              {Full, 18}, {Mixed, 1}, {Empty, 269}, {Full, 17}, {Mixed, 3},
3244              {Empty, 2}, {Mixed, 2}, {Full, 1}, {Mixed, 4}, {Empty, 27},
3245              {Full, 2}, {Mixed, 3}, {Empty, 2}, {Mixed, 1}, {Full, 191},
3246              {Mixed, 1}, {Full, 23}, {Mixed, 1}, {Empty, 296}, {Mixed, 1},
3247              {Empty, 95}, {Full, 3}, {Mixed, 2}, {Empty, 166}, {Mixed, 3},
3248              {Empty, 4}, {Mixed, 1}, {Empty, 13}, {Full, 2}, {Mixed, 1},
3249              {Full, 1}, {Mixed, 3}, {Full, 1}, {Mixed, 3}, {Full, 10},
3250              {Mixed, 10}, {Full, 1}, {Empty, 16}, {Full, 1}, {Mixed, 1},
3251              {Full, 1}, {Mixed, 3}, {Empty, 42}, {Mixed, 2}, {Empty, 62},
3252              {Full, 6}, {Mixed, 1}, {Empty, 1}, {Full, 2}, {Mixed, 1},
3253              {Empty, 37}, {Mixed, 6}, {Empty, 138}, {Full, 1334},
3254              {Mixed, 1}, {Empty, 1}, {Full, 129}, {Mixed, 1}, {Full, 6},
3255              {Mixed, 1}, {Full, 180}, {Mixed, 1}, {Empty, 330}, {Full, 16},
3256              {Mixed, 1}, {Empty, 22583}, {Full, 7}, {Mixed, 1},
3257              {Empty, 6128}},
3258             {0x03ff0000, 0x87fffffe, 0x07fffffe, 0x04a00400, 0xff7fffff,
3259              0xff7fffff, 0x0003ffc3, 0x0000501f, 0xb8dfffff, 0xffffd7c0,
3260              0xfffffffb, 0xffbfffff, 0xfffffcfb, 0xfffeffff, 0x027fffff,
3261              0xfffffffe, 0xfffe00ff, 0xbfffffff, 0xffff00b6, 0x000707ff,
3262              0x07ff0000, 0xffffc3ff, 0x9fefffff, 0x9ffffdff, 0xffff0000,
3263              0xffffe7ff, 0x0003ffff, 0x043fffff, 0x00003fff, 0x0fffffff,
3264              0x3fdfffff, 0xfff00000, 0xfffffffb, 0xfffeffcf, 0xfff99fef,
3265              0xf3c5fdff, 0xb080799f, 0x0003ffcf, 0xfff987ee, 0xd36dfdff,
3266              0x5e023987, 0x003fffc0, 0xfffbbfee, 0xf3edfdff, 0x00013bbf,
3267              0x0200ffcf, 0xfff99fee, 0xf3edfdff, 0xb0c0399f, 0x0002ffcf,
3268              0xd63dc7ec, 0xc3ffc718, 0x00813dc7, 0x0000ffc0, 0xfffddfef,
3269              0xe3fffdff, 0x07603ddf, 0x0000ffcf, 0xfffddfef, 0xf3effdff,
3270              0x40603ddf, 0x0006ffcf, 0xfffddfee, 0xe7ffffff, 0x80f07ddf,
3271              0xfc00ffcf, 0xfc7fffec, 0x2ffbffff, 0xff5f847f, 0x000cffc0,
3272              0xfffffffe, 0x07ffffff, 0x03ff7fff, 0xfef02596, 0x3bffecae,
3273              0xf3ff3f5f, 0x03000001, 0xc2a003ff, 0xfffffeff, 0xfffe1fff,
3274              0xfeffffdf, 0x1fffffff, 0x00000040, 0xffff03ff, 0x3fffffff,
3275              0xffff20bf, 0xf7ffffff, 0x3d7f3dff, 0xffff3dff, 0x7f3dffff,
3276              0xff7fff3d, 0xff3dffff, 0xe7ffffff, 0x0003fe00, 0x0000ffff,
3277              0x3f3fffff, 0xfffffffe, 0xffff9fff, 0x07fffffe, 0x01ffc7ff,
3278              0x001fdfff, 0x001fffff, 0x000fffff, 0x000ddfff, 0x308fffff,
3279              0x000003ff, 0x03ff3800, 0x00ffffff, 0xffff07ff, 0x003fffff,
3280              0x7fffffff, 0x0fff0fff, 0xffffffc0, 0x001f3fff, 0xffff0fff,
3281              0x07ff03ff, 0x0fffffff, 0x7fffffff, 0x9fffffff, 0x03ff03ff,
3282              0x3fff0080, 0x03ff0fff, 0x000ff800, 0x000fffff, 0x00ffffff,
3283              0xffffe3ff, 0x3fffffff, 0x000001ff, 0xfff70000, 0x037fffff,
3284              0xf83fffff, 0x3f3fffff, 0xaaff3f3f, 0x3fffffff, 0x5fdfffff,
3285              0x0fcf1fdc, 0x1fdc1fff, 0x80000000, 0x00100001, 0x80020000,
3286              0x1fff0000, 0x1fff0000, 0x0001ffe2, 0x3f2ffc84, 0xf3fffd50,
3287              0x000043e0, 0x000001ff, 0xffff7fff, 0x7fffffff, 0x000ff81f,
3288              0xffff20bf, 0x800080ff, 0x007fffff, 0x7f7f7f7f, 0x7f7f7f7f,
3289              0x000000e0, 0x1f3efffe, 0xfffffffe, 0xe67fffff, 0xfffffffe,
3290              0xf7ffffff, 0xffffffe0, 0xfffe3fff, 0x00007fff, 0x07ffffff,
3291              0xffff0000, 0x003fffff, 0x003fffff, 0x00001fff, 0xffff0000,
3292              0x3fffffff, 0xffff1fff, 0x00000fff, 0xbff0ffff, 0x0003ffff,
3293              0xff800000, 0xfffffffc, 0xfffff9ff, 0x00ff7fff, 0xff800000,
3294              0x000000ff, 0x000fffff, 0x03ff003f, 0x28ffffff, 0xffff3fff,
3295              0x000fffff, 0x1fffffff, 0x03ff8001, 0x7fffffff, 0x007fffff,
3296              0x03ff3fff, 0xfc7fffff, 0x38000007, 0x007cffff, 0x007e7e7e,
3297              0xffff7f7f, 0xf7ffffff, 0xffff003f, 0x03ff37ff, 0xffff000f,
3298              0xfffff87f, 0x0fffffff, 0xffff3fff, 0x03ffffff, 0xe0f8007f,
3299              0x5f7ffdff, 0xffffffdb, 0x0003ffff, 0xfff80000, 0x3fffffff,
3300              0xfffffff0, 0x3fffffff, 0xffff0000, 0xfffcffff, 0x000000ff,
3301              0x03ff0000, 0x0000ffff, 0x0018ffff, 0x0000e000, 0xaa8a0000,
3302              0x1fffffff, 0x03ff0000, 0x87fffffe, 0x07fffffe, 0xffffffc0,
3303              0x7fffffff, 0x1cfcfcfc, 0xffffefff, 0xb7ffff7f, 0x3fff3fff,
3304              0x07ffffff, 0x001fffff, 0x20000000, 0x1fffffff, 0x0001ffff,
3305              0x00000001, 0xffff0000, 0xffff07ff, 0x07ffffff, 0x3fffffff,
3306              0x003eff0f, 0x3fffffff, 0xffff03ff, 0xff0fffff, 0x0fffffff,
3307              0xffff00ff, 0x0000000f, 0x007fffff, 0x003fffff, 0x000000ff,
3308              0xfffffd3f, 0x91bfffff, 0x003fffff, 0x007fffff, 0x7fffffff,
3309              0x0037ffff, 0x003fffff, 0x03ffffff, 0xc0ffffff, 0xfeeff06f,
3310              0x870fffff, 0x1fffffff, 0x1fffffff, 0xfffffeff, 0x0000007f,
3311              0x003fffff, 0x003fffff, 0x0007ffff, 0x0003ffff, 0x000001ff,
3312              0x0007ffff, 0x0007ffff, 0x0000007f, 0x8000ffc0, 0x07ffffff,
3313              0xffff0000, 0x03ff01ff, 0xffdfffff, 0xffff0000, 0x004fffff,
3314              0x17ff1c1f, 0xfffbffff, 0x40ffffff, 0xbfffbd7f, 0xffff01ff,
3315              0x03ff07ff, 0xfff99fef, 0xf3edfdff, 0xe081399f, 0x001f1fcf,
3316              0x03ff07ff, 0x03ff00bf, 0xff3fffff, 0x3f000001, 0x03ff0011,
3317              0x00ffffff, 0x000003ff, 0xe3ffffff, 0x03ff0fff, 0x800003ff,
3318              0x01ffffff, 0xfffffdff, 0xff7fffff, 0x03ff0001, 0xfffc0000,
3319              0xfffcffff, 0x007ffeff, 0x03ffffff, 0x00007fff, 0x0000000f,
3320              0x00007fff, 0x0000007f, 0x01ffffff, 0x7fffffff, 0x000003ff,
3321              0xffff0000, 0x001f3fff, 0x007fffff, 0x03ff000f, 0xe0fffff8,
3322              0x0000ffff, 0xffff001f, 0x7fffffff, 0xffff8000, 0x00000001,
3323              0x00001fff, 0x0007ffff, 0x00000003, 0x1fff07ff, 0x63ff01ff,
3324              0xf807e3e0, 0x00000fe7, 0x00003c00, 0x0000001c, 0xffdfffff,
3325              0xdfffffff, 0xebffde64, 0xffffffef, 0xdfdfe7bf, 0x7bffffff,
3326              0xfffdfc5f, 0xffffff3f, 0xf7fffffd, 0xf7ffffff, 0xffdfffff,
3327              0xffdfffff, 0xffff7fff, 0xffff7fff, 0xfffffdff, 0xfffffdff,
3328              0xffffcff7, 0xf87fffff, 0x00201fff, 0xf8000010, 0x0000fffe,
3329              0xf9ffff7f, 0x000007db, 0x007f001f, 0x03ff07ff, 0xffffffef,
3330              0x0af7fe96, 0xaa96ea84, 0x5ef7f796, 0x0ffffbff, 0x0ffffbee,
3331              0x007fffff, 0x001fffff, 0x3fffffff, 0x00000003, 0x3fffffff,
3332              0x0000ffff}};
3333        static BinaryPropertyObject property_object{XIDC, codepoint_set};
3334    }
3335    namespace XIDS_ns {
3336        /** Code Point Ranges for XIDS
3337        [65, 90], [97, 122], [170, 170], [181, 181], [186, 186], [192, 214],
3338        [216, 246], [248, 705], [710, 721], [736, 740], [748, 748],
3339        [750, 750], [880, 884], [886, 887], [891, 893], [895, 895],
3340        [902, 902], [904, 906], [908, 908], [910, 929], [931, 1013],
3341        [1015, 1153], [1162, 1327], [1329, 1366], [1369, 1369],
3342        [1377, 1415], [1488, 1514], [1520, 1522], [1568, 1610],
3343        [1646, 1647], [1649, 1747], [1749, 1749], [1765, 1766],
3344        [1774, 1775], [1786, 1788], [1791, 1791], [1808, 1808],
3345        [1810, 1839], [1869, 1957], [1969, 1969], [1994, 2026],
3346        [2036, 2037], [2042, 2042], [2048, 2069], [2074, 2074],
3347        [2084, 2084], [2088, 2088], [2112, 2136], [2208, 2228],
3348        [2230, 2237], [2308, 2361], [2365, 2365], [2384, 2384],
3349        [2392, 2401], [2417, 2432], [2437, 2444], [2447, 2448],
3350        [2451, 2472], [2474, 2480], [2482, 2482], [2486, 2489],
3351        [2493, 2493], [2510, 2510], [2524, 2525], [2527, 2529],
3352        [2544, 2545], [2565, 2570], [2575, 2576], [2579, 2600],
3353        [2602, 2608], [2610, 2611], [2613, 2614], [2616, 2617],
3354        [2649, 2652], [2654, 2654], [2674, 2676], [2693, 2701],
3355        [2703, 2705], [2707, 2728], [2730, 2736], [2738, 2739],
3356        [2741, 2745], [2749, 2749], [2768, 2768], [2784, 2785],
3357        [2809, 2809], [2821, 2828], [2831, 2832], [2835, 2856],
3358        [2858, 2864], [2866, 2867], [2869, 2873], [2877, 2877],
3359        [2908, 2909], [2911, 2913], [2929, 2929], [2947, 2947],
3360        [2949, 2954], [2958, 2960], [2962, 2965], [2969, 2970],
3361        [2972, 2972], [2974, 2975], [2979, 2980], [2984, 2986],
3362        [2990, 3001], [3024, 3024], [3077, 3084], [3086, 3088],
3363        [3090, 3112], [3114, 3129], [3133, 3133], [3160, 3162],
3364        [3168, 3169], [3200, 3200], [3205, 3212], [3214, 3216],
3365        [3218, 3240], [3242, 3251], [3253, 3257], [3261, 3261],
3366        [3294, 3294], [3296, 3297], [3313, 3314], [3333, 3340],
3367        [3342, 3344], [3346, 3386], [3389, 3389], [3406, 3406],
3368        [3412, 3414], [3423, 3425], [3450, 3455], [3461, 3478],
3369        [3482, 3505], [3507, 3515], [3517, 3517], [3520, 3526],
3370        [3585, 3632], [3634, 3634], [3648, 3654], [3713, 3714],
3371        [3716, 3716], [3719, 3720], [3722, 3722], [3725, 3725],
3372        [3732, 3735], [3737, 3743], [3745, 3747], [3749, 3749],
3373        [3751, 3751], [3754, 3755], [3757, 3760], [3762, 3762],
3374        [3773, 3773], [3776, 3780], [3782, 3782], [3804, 3807],
3375        [3840, 3840], [3904, 3911], [3913, 3948], [3976, 3980],
3376        [4096, 4138], [4159, 4159], [4176, 4181], [4186, 4189],
3377        [4193, 4193], [4197, 4198], [4206, 4208], [4213, 4225],
3378        [4238, 4238], [4256, 4293], [4295, 4295], [4301, 4301],
3379        [4304, 4346], [4348, 4680], [4682, 4685], [4688, 4694],
3380        [4696, 4696], [4698, 4701], [4704, 4744], [4746, 4749],
3381        [4752, 4784], [4786, 4789], [4792, 4798], [4800, 4800],
3382        [4802, 4805], [4808, 4822], [4824, 4880], [4882, 4885],
3383        [4888, 4954], [4992, 5007], [5024, 5109], [5112, 5117],
3384        [5121, 5740], [5743, 5759], [5761, 5786], [5792, 5866],
3385        [5870, 5880], [5888, 5900], [5902, 5905], [5920, 5937],
3386        [5952, 5969], [5984, 5996], [5998, 6000], [6016, 6067],
3387        [6103, 6103], [6108, 6108], [6176, 6263], [6272, 6312],
3388        [6314, 6314], [6320, 6389], [6400, 6430], [6480, 6509],
3389        [6512, 6516], [6528, 6571], [6576, 6601], [6656, 6678],
3390        [6688, 6740], [6823, 6823], [6917, 6963], [6981, 6987],
3391        [7043, 7072], [7086, 7087], [7098, 7141], [7168, 7203],
3392        [7245, 7247], [7258, 7293], [7296, 7304], [7401, 7404],
3393        [7406, 7409], [7413, 7414], [7424, 7615], [7680, 7957],
3394        [7960, 7965], [7968, 8005], [8008, 8013], [8016, 8023],
3395        [8025, 8025], [8027, 8027], [8029, 8029], [8031, 8061],
3396        [8064, 8116], [8118, 8124], [8126, 8126], [8130, 8132],
3397        [8134, 8140], [8144, 8147], [8150, 8155], [8160, 8172],
3398        [8178, 8180], [8182, 8188], [8305, 8305], [8319, 8319],
3399        [8336, 8348], [8450, 8450], [8455, 8455], [8458, 8467],
3400        [8469, 8469], [8472, 8477], [8484, 8484], [8486, 8486],
3401        [8488, 8488], [8490, 8505], [8508, 8511], [8517, 8521],
3402        [8526, 8526], [8544, 8584], [11264, 11310], [11312, 11358],
3403        [11360, 11492], [11499, 11502], [11506, 11507], [11520, 11557],
3404        [11559, 11559], [11565, 11565], [11568, 11623], [11631, 11631],
3405        [11648, 11670], [11680, 11686], [11688, 11694], [11696, 11702],
3406        [11704, 11710], [11712, 11718], [11720, 11726], [11728, 11734],
3407        [11736, 11742], [12293, 12295], [12321, 12329], [12337, 12341],
3408        [12344, 12348], [12353, 12438], [12445, 12447], [12449, 12538],
3409        [12540, 12543], [12549, 12589], [12593, 12686], [12704, 12730],
3410        [12784, 12799], [13312, 19893], [19968, 40917], [40960, 42124],
3411        [42192, 42237], [42240, 42508], [42512, 42527], [42538, 42539],
3412        [42560, 42606], [42623, 42653], [42656, 42735], [42775, 42783],
3413        [42786, 42888], [42891, 42926], [42928, 42935], [42999, 43009],
3414        [43011, 43013], [43015, 43018], [43020, 43042], [43072, 43123],
3415        [43138, 43187], [43250, 43255], [43259, 43259], [43261, 43261],
3416        [43274, 43301], [43312, 43334], [43360, 43388], [43396, 43442],
3417        [43471, 43471], [43488, 43492], [43494, 43503], [43514, 43518],
3418        [43520, 43560], [43584, 43586], [43588, 43595], [43616, 43638],
3419        [43642, 43642], [43646, 43695], [43697, 43697], [43701, 43702],
3420        [43705, 43709], [43712, 43712], [43714, 43714], [43739, 43741],
3421        [43744, 43754], [43762, 43764], [43777, 43782], [43785, 43790],
3422        [43793, 43798], [43808, 43814], [43816, 43822], [43824, 43866],
3423        [43868, 43877], [43888, 44002], [44032, 55203], [55216, 55238],
3424        [55243, 55291], [63744, 64109], [64112, 64217], [64256, 64262],
3425        [64275, 64279], [64285, 64285], [64287, 64296], [64298, 64310],
3426        [64312, 64316], [64318, 64318], [64320, 64321], [64323, 64324],
3427        [64326, 64433], [64467, 64605], [64612, 64829], [64848, 64911],
3428        [64914, 64967], [65008, 65017], [65137, 65137], [65139, 65139],
3429        [65143, 65143], [65145, 65145], [65147, 65147], [65149, 65149],
3430        [65151, 65276], [65313, 65338], [65345, 65370], [65382, 65437],
3431        [65440, 65470], [65474, 65479], [65482, 65487], [65490, 65495],
3432        [65498, 65500], [65536, 65547], [65549, 65574], [65576, 65594],
3433        [65596, 65597], [65599, 65613], [65616, 65629], [65664, 65786],
3434        [65856, 65908], [66176, 66204], [66208, 66256], [66304, 66335],
3435        [66352, 66378], [66384, 66421], [66432, 66461], [66464, 66499],
3436        [66504, 66511], [66513, 66517], [66560, 66717], [66736, 66771],
3437        [66776, 66811], [66816, 66855], [66864, 66915], [67072, 67382],
3438        [67392, 67413], [67424, 67431], [67584, 67589], [67592, 67592],
3439        [67594, 67637], [67639, 67640], [67644, 67644], [67647, 67669],
3440        [67680, 67702], [67712, 67742], [67808, 67826], [67828, 67829],
3441        [67840, 67861], [67872, 67897], [67968, 68023], [68030, 68031],
3442        [68096, 68096], [68112, 68115], [68117, 68119], [68121, 68147],
3443        [68192, 68220], [68224, 68252], [68288, 68295], [68297, 68324],
3444        [68352, 68405], [68416, 68437], [68448, 68466], [68480, 68497],
3445        [68608, 68680], [68736, 68786], [68800, 68850], [69635, 69687],
3446        [69763, 69807], [69840, 69864], [69891, 69926], [69968, 70002],
3447        [70006, 70006], [70019, 70066], [70081, 70084], [70106, 70106],
3448        [70108, 70108], [70144, 70161], [70163, 70187], [70272, 70278],
3449        [70280, 70280], [70282, 70285], [70287, 70301], [70303, 70312],
3450        [70320, 70366], [70405, 70412], [70415, 70416], [70419, 70440],
3451        [70442, 70448], [70450, 70451], [70453, 70457], [70461, 70461],
3452        [70480, 70480], [70493, 70497], [70656, 70708], [70727, 70730],
3453        [70784, 70831], [70852, 70853], [70855, 70855], [71040, 71086],
3454        [71128, 71131], [71168, 71215], [71236, 71236], [71296, 71338],
3455        [71424, 71449], [71840, 71903], [71935, 71935], [72384, 72440],
3456        [72704, 72712], [72714, 72750], [72768, 72768], [72818, 72847],
3457        [73728, 74649], [74752, 74862], [74880, 75075], [77824, 78894],
3458        [82944, 83526], [92160, 92728], [92736, 92766], [92880, 92909],
3459        [92928, 92975], [92992, 92995], [93027, 93047], [93053, 93071],
3460        [93952, 94020], [94032, 94032], [94099, 94111], [94176, 94176],
3461        [94208, 100332], [100352, 101106], [110592, 110593],
3462        [113664, 113770], [113776, 113788], [113792, 113800],
3463        [113808, 113817], [119808, 119892], [119894, 119964],
3464        [119966, 119967], [119970, 119970], [119973, 119974],
3465        [119977, 119980], [119982, 119993], [119995, 119995],
3466        [119997, 120003], [120005, 120069], [120071, 120074],
3467        [120077, 120084], [120086, 120092], [120094, 120121],
3468        [120123, 120126], [120128, 120132], [120134, 120134],
3469        [120138, 120144], [120146, 120485], [120488, 120512],
3470        [120514, 120538], [120540, 120570], [120572, 120596],
3471        [120598, 120628], [120630, 120654], [120656, 120686],
3472        [120688, 120712], [120714, 120744], [120746, 120770],
3473        [120772, 120779], [124928, 125124], [125184, 125251],
3474        [126464, 126467], [126469, 126495], [126497, 126498],
3475        [126500, 126500], [126503, 126503], [126505, 126514],
3476        [126516, 126519], [126521, 126521], [126523, 126523],
3477        [126530, 126530], [126535, 126535], [126537, 126537],
3478        [126539, 126539], [126541, 126543], [126545, 126546],
3479        [126548, 126548], [126551, 126551], [126553, 126553],
3480        [126555, 126555], [126557, 126557], [126559, 126559],
3481        [126561, 126562], [126564, 126564], [126567, 126570],
3482        [126572, 126578], [126580, 126583], [126585, 126588],
3483        [126590, 126590], [126592, 126601], [126603, 126619],
3484        [126625, 126627], [126629, 126633], [126635, 126651],
3485        [131072, 173782], [173824, 177972], [177984, 178205],
3486        [178208, 183969], [194560, 195101]**/
3487        const UnicodeSet codepoint_set
3488            {{{Empty, 2}, {Mixed, 2}, {Empty, 1}, {Mixed, 3}, {Full, 14},
3489              {Mixed, 2}, {Empty, 3}, {Mixed, 3}, {Full, 1}, {Mixed, 1},
3490              {Full, 4}, {Mixed, 1}, {Full, 4}, {Mixed, 4}, {Empty, 1},
3491              {Mixed, 2}, {Empty, 1}, {Full, 1}, {Mixed, 2}, {Full, 2},
3492              {Mixed, 5}, {Full, 2}, {Mixed, 6}, {Empty, 2}, {Mixed, 1},
3493              {Empty, 2}, {Mixed, 23}, {Empty, 1}, {Mixed, 15}, {Empty, 1},
3494              {Mixed, 3}, {Empty, 1}, {Mixed, 3}, {Empty, 1}, {Mixed, 1},
3495              {Empty, 1}, {Mixed, 3}, {Empty, 3}, {Full, 1}, {Mixed, 4},
3496              {Full, 1}, {Mixed, 2}, {Full, 10}, {Mixed, 1}, {Full, 1},
3497              {Mixed, 3}, {Full, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 1},
3498              {Empty, 1}, {Mixed, 1}, {Full, 2}, {Mixed, 2}, {Full, 18},
3499              {Mixed, 2}, {Full, 2}, {Mixed, 5}, {Full, 1}, {Mixed, 2},
3500              {Empty, 2}, {Full, 2}, {Mixed, 1}, {Full, 1}, {Mixed, 1},
3501              {Full, 1}, {Mixed, 2}, {Empty, 1}, {Mixed, 2}, {Full, 1},
3502              {Mixed, 2}, {Empty, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 1},
3503              {Empty, 2}, {Mixed, 1}, {Empty, 2}, {Mixed, 3}, {Empty, 1},
3504              {Mixed, 2}, {Full, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 4},
3505              {Empty, 2}, {Mixed, 1}, {Full, 6}, {Empty, 2}, {Full, 8},
3506              {Mixed, 1}, {Full, 1}, {Mixed, 2}, {Full, 1}, {Mixed, 3},
3507              {Empty, 3}, {Mixed, 2}, {Empty, 3}, {Mixed, 3}, {Full, 1},
3508              {Mixed, 1}, {Empty, 83}, {Full, 1}, {Mixed, 2}, {Full, 4},
3509              {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 4},
3510              {Empty, 17}, {Mixed, 3}, {Full, 1}, {Mixed, 2}, {Full, 1},
3511              {Mixed, 3}, {Full, 2}, {Mixed, 2}, {Empty, 1}, {Mixed, 1},
3512              {Empty, 16}, {Full, 205}, {Mixed, 1}, {Empty, 2}, {Full, 654},
3513              {Mixed, 1}, {Empty, 1}, {Full, 36}, {Mixed, 1}, {Empty, 1},
3514              {Mixed, 2}, {Full, 8}, {Mixed, 2}, {Full, 1}, {Mixed, 2},
3515              {Full, 2}, {Mixed, 3}, {Full, 2}, {Mixed, 2}, {Empty, 1},
3516              {Mixed, 3}, {Full, 1}, {Mixed, 3}, {Empty, 1}, {Mixed, 9},
3517              {Full, 1}, {Mixed, 3}, {Full, 1}, {Mixed, 7}, {Full, 3},
3518              {Mixed, 1}, {Full, 349}, {Mixed, 3}, {Empty, 264}, {Full, 11},
3519              {Mixed, 1}, {Full, 2}, {Mixed, 1}, {Empty, 1}, {Mixed, 3},
3520              {Full, 2}, {Mixed, 2}, {Full, 3}, {Mixed, 2}, {Full, 5},
3521              {Mixed, 2}, {Full, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 2},
3522              {Empty, 3}, {Mixed, 1}, {Full, 3}, {Mixed, 1}, {Empty, 1},
3523              {Mixed, 6}, {Empty, 1}, {Mixed, 3}, {Empty, 1}, {Full, 3},
3524              {Mixed, 1}, {Empty, 2}, {Full, 1}, {Mixed, 1}, {Empty, 8},
3525              {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Empty, 1}, {Full, 1},
3526              {Mixed, 4}, {Full, 1}, {Mixed, 1}, {Empty, 1}, {Full, 4},
3527              {Mixed, 4}, {Full, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 1},
3528              {Empty, 4}, {Full, 9}, {Mixed, 3}, {Empty, 4}, {Mixed, 5},
3529              {Empty, 2}, {Mixed, 3}, {Empty, 2}, {Full, 1}, {Mixed, 1},
3530              {Empty, 2}, {Mixed, 2}, {Empty, 1}, {Mixed, 2}, {Empty, 1},
3531              {Mixed, 2}, {Full, 1}, {Mixed, 4}, {Empty, 3}, {Full, 2},
3532              {Mixed, 1}, {Empty, 1}, {Full, 1}, {Mixed, 1}, {Full, 1},
3533              {Mixed, 1}, {Empty, 24}, {Mixed, 2}, {Empty, 2}, {Mixed, 11},
3534              {Empty, 1}, {Mixed, 2}, {Empty, 2}, {Mixed, 3}, {Empty, 1},
3535              {Mixed, 4}, {Empty, 4}, {Full, 1}, {Mixed, 2}, {Empty, 1},
3536              {Full, 1}, {Mixed, 2}, {Empty, 5}, {Full, 1}, {Mixed, 2},
3537              {Empty, 1}, {Full, 1}, {Mixed, 2}, {Empty, 1}, {Full, 1},
3538              {Mixed, 1}, {Empty, 2}, {Mixed, 1}, {Empty, 12}, {Full, 2},
3539              {Mixed, 1}, {Empty, 14}, {Full, 1}, {Mixed, 1}, {Empty, 8},
3540              {Mixed, 5}, {Empty, 27}, {Full, 28}, {Mixed, 1}, {Empty, 3},
3541              {Full, 3}, {Mixed, 1}, {Full, 6}, {Mixed, 1}, {Empty, 85},
3542              {Full, 33}, {Mixed, 1}, {Empty, 126}, {Full, 18}, {Mixed, 1},
3543              {Empty, 269}, {Full, 17}, {Mixed, 2}, {Empty, 3}, {Mixed, 2},
3544              {Full, 1}, {Mixed, 4}, {Empty, 27}, {Full, 2}, {Mixed, 1},
3545              {Empty, 1}, {Mixed, 1}, {Empty, 2}, {Mixed, 1}, {Full, 191},
3546              {Mixed, 1}, {Full, 23}, {Mixed, 1}, {Empty, 296}, {Mixed, 1},
3547              {Empty, 95}, {Full, 3}, {Mixed, 2}, {Empty, 187}, {Full, 2},
3548              {Mixed, 1}, {Full, 1}, {Mixed, 3}, {Full, 1}, {Mixed, 3},
3549              {Full, 10}, {Mixed, 10}, {Empty, 129}, {Full, 6}, {Mixed, 1},
3550              {Empty, 1}, {Full, 2}, {Mixed, 1}, {Empty, 37}, {Mixed, 6},
3551              {Empty, 138}, {Full, 1334}, {Mixed, 1}, {Empty, 1},
3552              {Full, 129}, {Mixed, 1}, {Full, 6}, {Mixed, 1}, {Full, 180},
3553              {Mixed, 1}, {Empty, 330}, {Full, 16}, {Mixed, 1},
3554              {Empty, 28719}},
3555             {0x07fffffe, 0x07fffffe, 0x04200400, 0xff7fffff, 0xff7fffff,
3556              0x0003ffc3, 0x0000501f, 0xb8df0000, 0xffffd740, 0xfffffffb,
3557              0xffbfffff, 0xfffffc03, 0xfffeffff, 0x027fffff, 0xfffffffe,
3558              0x000000ff, 0xffff0000, 0x000707ff, 0x000007ff, 0xfffec000,
3559              0x002fffff, 0x9c00c060, 0xfffd0000, 0x0000ffff, 0xffffe000,
3560              0x0002003f, 0xfffffc00, 0x043007ff, 0x043fffff, 0x00000110,
3561              0x01ffffff, 0x3fdfffff, 0xfffffff0, 0x23ffffff, 0xff010000,
3562              0xfffe0003, 0xfff99fe1, 0x23c5fdff, 0xb0004000, 0x00030003,
3563              0xfff987e0, 0x036dfdff, 0x5e000000, 0x001c0000, 0xfffbbfe0,
3564              0x23edfdff, 0x00010000, 0x02000003, 0xfff99fe0, 0x23edfdff,
3565              0xb0000000, 0x00020003, 0xd63dc7e8, 0x03ffc718, 0x00010000,
3566              0xfffddfe0, 0x23fffdff, 0x07000000, 0x00000003, 0xfffddfe1,
3567              0x23effdff, 0x40000000, 0x00060003, 0xfffddfe0, 0x27ffffff,
3568              0x80704000, 0xfc000003, 0xfc7fffe0, 0x2ffbffff, 0x0000007f,
3569              0xfffffffe, 0x0005ffff, 0x0000007f, 0xfef02596, 0x2005ecae,
3570              0xf000005f, 0x00000001, 0xfffffeff, 0x00001fff, 0x00001f00,
3571              0x800007ff, 0x3c3f0000, 0xffe1c062, 0x00004003, 0xffff20bf,
3572              0xf7ffffff, 0x3d7f3dff, 0xffff3dff, 0x7f3dffff, 0xff7fff3d,
3573              0xff3dffff, 0x07ffffff, 0x0000ffff, 0x3f3fffff, 0xfffffffe,
3574              0xffff9fff, 0x07fffffe, 0x01ffc7ff, 0x0003dfff, 0x0003ffff,
3575              0x0003ffff, 0x0001dfff, 0x000fffff, 0x10800000, 0x00ffffff,
3576              0xffff05ff, 0x003fffff, 0x7fffffff, 0xffff0000, 0x001f3fff,
3577              0xffff0fff, 0x000003ff, 0x007fffff, 0x001fffff, 0x00000080,
3578              0xffffffe0, 0x000fffff, 0x00000fe0, 0xfffffff8, 0xfc00c001,
3579              0x0000003f, 0x0000000f, 0xfc00e000, 0x3fffffff, 0x000001ff,
3580              0x0063de00, 0x3f3fffff, 0xaaff3f3f, 0x3fffffff, 0x5fdfffff,
3581              0x0fcf1fdc, 0x1fdc1fff, 0x80020000, 0x1fff0000, 0x3f2ffc84,
3582              0xf3fffd50, 0x000043e0, 0x000001ff, 0xffff7fff, 0x7fffffff,
3583              0x000c781f, 0xffff20bf, 0x000080ff, 0x007fffff, 0x7f7f7f7f,
3584              0x7f7f7f7f, 0x000000e0, 0x1f3e03fe, 0xfffffffe, 0xe07fffff,
3585              0xfffffffe, 0xf7ffffff, 0xffffffe0, 0xfffe3fff, 0x00007fff,
3586              0x07ffffff, 0xffff0000, 0x003fffff, 0x003fffff, 0x00001fff,
3587              0xffff0000, 0x3fffffff, 0xffff1fff, 0x00000c00, 0x80007fff,
3588              0x3fffffff, 0x0000ffff, 0xff800000, 0xfffffffc, 0xfffff9ff,
3589              0x00ff7fff, 0xff800000, 0xfffff7bb, 0x00000007, 0x000fffff,
3590              0xfffffffc, 0x000fffff, 0x28fc0000, 0xfffffc00, 0xffff003f,
3591              0x0000007f, 0x1fffffff, 0xfffffff0, 0x0007ffff, 0x00008000,
3592              0x7c00ffdf, 0x000001ff, 0x00000ff7, 0xc47fffff, 0x3e62ffff,
3593              0x38000005, 0x001c07ff, 0x007e7e7e, 0xffff7f7f, 0xf7ffffff,
3594              0xffff003f, 0x00000007, 0xffff000f, 0xfffff87f, 0x0fffffff,
3595              0xffff3fff, 0x03ffffff, 0xa0f8007f, 0x5f7ffdff, 0xffffffdb,
3596              0x0003ffff, 0xfff80000, 0x3fffffff, 0xfffffff0, 0x3fffffff,
3597              0xffff0000, 0xfffcffff, 0x000000ff, 0x03ff0000, 0xaa8a0000,
3598              0x1fffffff, 0x07fffffe, 0x07fffffe, 0xffffffc0, 0x3fffffff,
3599              0x7fffffff, 0x1cfcfcfc, 0xffffefff, 0xb7ffff7f, 0x3fff3fff,
3600              0x07ffffff, 0x001fffff, 0x1fffffff, 0x0001ffff, 0xffff0000,
3601              0xffff07ff, 0x003fffff, 0x3fffffff, 0x003eff0f, 0x3fffffff,
3602              0xffff0000, 0xff0fffff, 0x0fffffff, 0xffff00ff, 0x0000000f,
3603              0x007fffff, 0x003fffff, 0x000000ff, 0xfffffd3f, 0x91bfffff,
3604              0x003fffff, 0x007fffff, 0x7fffffff, 0x0037ffff, 0x003fffff,
3605              0x03ffffff, 0xc0ffffff, 0xfeef0001, 0x000fffff, 0x1fffffff,
3606              0x1fffffff, 0xfffffeff, 0x0000001f, 0x003fffff, 0x003fffff,
3607              0x0007ffff, 0x0003ffff, 0x000001ff, 0x0007ffff, 0x0007ffff,
3608              0xfffffff8, 0x00ffffff, 0xfffffff8, 0x0000ffff, 0xffff0000,
3609              0x000001ff, 0xfffffff8, 0x0000007f, 0xffff0000, 0x0047ffff,
3610              0xfffffff8, 0x0007ffff, 0x1400001e, 0xfffbffff, 0x00000fff,
3611              0xbfffbd7f, 0xffff01ff, 0x7fffffff, 0xfff99fe0, 0x23edfdff,
3612              0xe0010000, 0x00000003, 0x001fffff, 0x00000780, 0x0000ffff,
3613              0x000000b0, 0x00007fff, 0x0f000000, 0x0000ffff, 0x00000010,
3614              0x000007ff, 0x03ffffff, 0x80000000, 0x01ffffff, 0xfffffdff,
3615              0x00007fff, 0x00000001, 0xfffc0000, 0x0000ffff, 0x03ffffff,
3616              0x00007fff, 0x0000000f, 0x00007fff, 0x0000007f, 0x01ffffff,
3617              0x7fffffff, 0xffff0000, 0x00003fff, 0x0000ffff, 0x0000000f,
3618              0xe0fffff8, 0x0000ffff, 0x0001001f, 0xfff80000, 0x00000001,
3619              0x00001fff, 0x0007ffff, 0x00000003, 0x1fff07ff, 0x03ff01ff,
3620              0xffdfffff, 0xdfffffff, 0xebffde64, 0xffffffef, 0xdfdfe7bf,
3621              0x7bffffff, 0xfffdfc5f, 0xffffff3f, 0xf7fffffd, 0xf7ffffff,
3622              0xffdfffff, 0xffdfffff, 0xffff7fff, 0xffff7fff, 0xfffffdff,
3623              0xfffffdff, 0x00000ff7, 0x0000001f, 0x0000000f, 0xffffffef,
3624              0x0af7fe96, 0xaa96ea84, 0x5ef7f796, 0x0ffffbff, 0x0ffffbee,
3625              0x007fffff, 0x001fffff, 0x3fffffff, 0x00000003, 0x3fffffff}};
3626        static BinaryPropertyObject property_object{XIDS, codepoint_set};
3627    }
3628}
3629
3630
3631#endif
Note: See TracBrowser for help on using the repository browser.