Ignore:
Timestamp:
Nov 28, 2017, 1:45:19 AM (20 months ago)
Author:
nmedfort
Message:

Bug fix for segment pipeline parallel mode + memory management improvements.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • icGREP/icgrep-devel/icgrep/UCD/DerivedCoreProperties.h

    r5686 r5748  
    182182        [1f150, 1f169], [1f170, 1f189], [20000, 2a6d6], [2a700, 2b734],
    183183        [2b740, 2b81d], [2b820, 2cea1], [2ceb0, 2ebe0], [2f800, 2fa1d]**/
    184         const UnicodeSet codepoint_set
    185             {{{Empty, 2}, {Mixed, 2}, {Empty, 1}, {Mixed, 3}, {Full, 14},
    186               {Mixed, 2}, {Empty, 2}, {Mixed, 4}, {Full, 1}, {Mixed, 1},
    187               {Full, 4}, {Mixed, 1}, {Full, 4}, {Mixed, 8}, {Full, 1},
    188               {Mixed, 2}, {Full, 2}, {Mixed, 3}, {Full, 1}, {Mixed, 1},
    189               {Full, 2}, {Mixed, 7}, {Empty, 1}, {Mixed, 3}, {Full, 1},
    190               {Mixed, 22}, {Empty, 1}, {Mixed, 19}, {Empty, 1}, {Mixed, 3},
    191               {Empty, 1}, {Mixed, 1}, {Empty, 1}, {Mixed, 4}, {Empty, 2},
    192               {Full, 1}, {Mixed, 4}, {Full, 1}, {Mixed, 2}, {Full, 10},
    193               {Mixed, 1}, {Full, 1}, {Mixed, 3}, {Full, 1}, {Mixed, 1},
    194               {Full, 1}, {Mixed, 1}, {Empty, 1}, {Mixed, 1}, {Full, 2},
    195               {Mixed, 2}, {Full, 18}, {Mixed, 2}, {Full, 2}, {Mixed, 5},
    196               {Full, 1}, {Mixed, 2}, {Empty, 2}, {Full, 2}, {Mixed, 1},
    197               {Full, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 5}, {Full, 1},
    198               {Mixed, 2}, {Empty, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 2},
    199               {Empty, 1}, {Mixed, 1}, {Empty, 2}, {Full, 1}, {Mixed, 2},
    200               {Empty, 1}, {Full, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 1},
    201               {Full, 1}, {Mixed, 4}, {Empty, 2}, {Mixed, 1}, {Full, 6},
    202               {Empty, 1}, {Mixed, 1}, {Full, 8}, {Mixed, 1}, {Full, 1},
    203               {Mixed, 2}, {Full, 1}, {Mixed, 3}, {Empty, 3}, {Mixed, 2},
    204               {Empty, 3}, {Mixed, 3}, {Full, 1}, {Mixed, 1}, {Empty, 24},
    205               {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Empty, 56}, {Full, 1},
    206               {Mixed, 2}, {Full, 4}, {Mixed, 1}, {Full, 1}, {Mixed, 1},
    207               {Full, 1}, {Mixed, 4}, {Full, 1}, {Empty, 1}, {Mixed, 1},
    208               {Empty, 14}, {Mixed, 3}, {Full, 1}, {Mixed, 2}, {Full, 1},
    209               {Mixed, 3}, {Full, 2}, {Mixed, 2}, {Empty, 1}, {Mixed, 1},
    210               {Empty, 16}, {Full, 205}, {Mixed, 1}, {Empty, 2}, {Full, 655},
    211               {Mixed, 1}, {Full, 36}, {Mixed, 1}, {Empty, 1}, {Mixed, 2},
    212               {Full, 8}, {Mixed, 2}, {Full, 1}, {Mixed, 1}, {Full, 3},
    213               {Mixed, 3}, {Full, 2}, {Mixed, 2}, {Empty, 1}, {Mixed, 3},
    214               {Full, 1}, {Mixed, 1}, {Full, 2}, {Mixed, 6}, {Full, 1},
    215               {Mixed, 3}, {Full, 1}, {Mixed, 3}, {Full, 1}, {Mixed, 7},
    216               {Full, 3}, {Mixed, 1}, {Full, 349}, {Mixed, 3}, {Empty, 264},
    217               {Full, 11}, {Mixed, 1}, {Full, 2}, {Mixed, 1}, {Empty, 1},
    218               {Mixed, 3}, {Full, 2}, {Mixed, 2}, {Full, 10}, {Mixed, 2},
    219               {Full, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 2}, {Empty, 3},
    220               {Mixed, 1}, {Full, 3}, {Mixed, 1}, {Empty, 1}, {Mixed, 3},
    221               {Full, 1}, {Mixed, 2}, {Empty, 1}, {Mixed, 3}, {Empty, 1},
    222               {Full, 3}, {Mixed, 1}, {Empty, 2}, {Full, 1}, {Mixed, 1},
    223               {Empty, 8}, {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Empty, 1},
    224               {Full, 1}, {Mixed, 4}, {Full, 1}, {Mixed, 1}, {Empty, 1},
    225               {Full, 4}, {Mixed, 4}, {Full, 1}, {Mixed, 1}, {Full, 1},
    226               {Mixed, 1}, {Empty, 4}, {Full, 9}, {Mixed, 3}, {Empty, 4},
    227               {Mixed, 5}, {Empty, 2}, {Mixed, 3}, {Empty, 2}, {Full, 1},
    228               {Mixed, 1}, {Empty, 2}, {Mixed, 2}, {Empty, 1}, {Mixed, 2},
    229               {Empty, 1}, {Mixed, 2}, {Full, 1}, {Mixed, 4}, {Empty, 3},
    230               {Full, 2}, {Mixed, 1}, {Empty, 1}, {Full, 1}, {Mixed, 1},
    231               {Full, 1}, {Mixed, 1}, {Empty, 24}, {Full, 2}, {Mixed, 1},
    232               {Empty, 1}, {Mixed, 4}, {Full, 1}, {Mixed, 3}, {Full, 2},
    233               {Mixed, 1}, {Empty, 1}, {Mixed, 2}, {Empty, 2}, {Mixed, 2},
    234               {Full, 1}, {Mixed, 5}, {Empty, 4}, {Full, 2}, {Mixed, 1},
    235               {Empty, 1}, {Full, 2}, {Mixed, 1}, {Empty, 5}, {Full, 1},
    236               {Mixed, 2}, {Empty, 1}, {Full, 1}, {Mixed, 2}, {Empty, 1},
    237               {Full, 1}, {Mixed, 1}, {Empty, 2}, {Mixed, 2}, {Empty, 11},
    238               {Full, 2}, {Mixed, 1}, {Empty, 8}, {Full, 1}, {Mixed, 2},
    239               {Full, 1}, {Mixed, 1}, {Empty, 1}, {Full, 1}, {Mixed, 1},
    240               {Empty, 8}, {Mixed, 6}, {Empty, 2}, {Mixed, 3}, {Empty, 21},
    241               {Full, 28}, {Mixed, 1}, {Empty, 3}, {Full, 3}, {Mixed, 1},
    242               {Full, 6}, {Mixed, 1}, {Empty, 85}, {Full, 33}, {Mixed, 1},
    243               {Empty, 126}, {Full, 18}, {Mixed, 1}, {Empty, 269},
    244               {Full, 17}, {Mixed, 2}, {Empty, 3}, {Mixed, 2}, {Full, 1},
    245               {Mixed, 4}, {Empty, 27}, {Full, 2}, {Mixed, 3}, {Empty, 2},
    246               {Mixed, 1}, {Full, 191}, {Mixed, 1}, {Full, 23}, {Mixed, 1},
    247               {Empty, 296}, {Full, 8}, {Mixed, 1}, {Empty, 2}, {Mixed, 1},
    248               {Full, 11}, {Mixed, 1}, {Empty, 72}, {Full, 3}, {Mixed, 2},
    249               {Empty, 187}, {Full, 2}, {Mixed, 1}, {Full, 1}, {Mixed, 3},
    250               {Full, 1}, {Mixed, 3}, {Full, 10}, {Mixed, 10}, {Empty, 65},
    251               {Mixed, 2}, {Empty, 62}, {Full, 6}, {Mixed, 1}, {Empty, 1},
    252               {Full, 2}, {Mixed, 1}, {Empty, 37}, {Mixed, 6}, {Empty, 19},
    253               {Mixed, 4}, {Empty, 115}, {Full, 1334}, {Mixed, 1},
    254               {Empty, 1}, {Full, 129}, {Mixed, 1}, {Full, 6}, {Mixed, 1},
    255               {Full, 180}, {Mixed, 1}, {Full, 233}, {Mixed, 1}, {Empty, 96},
    256               {Full, 16}, {Mixed, 1}, {Empty, 28719}},
    257              {0x07fffffe, 0x07fffffe, 0x04200400, 0xff7fffff, 0xff7fffff,
    258               0x0003ffc3, 0x0000501f, 0x00000020, 0xbcdf0000, 0xffffd740,
    259               0xfffffffb, 0xffbfffff, 0xfffffc03, 0xfffeffff, 0x027fffff,
    260               0xfffffffe, 0x000000ff, 0xbfff0000, 0xffff00b6, 0x000707ff,
    261               0x07ff0000, 0xfeffffff, 0xffffc000, 0x1fefffff, 0x9c00e1fe,
    262               0xffff0000, 0xffffe000, 0x0003ffff, 0xfffffc00, 0x043007ff,
    263               0xfcffffff, 0x00001fff, 0x01ffffff, 0x000007ff, 0x3fdfffff,
    264               0xfff00000, 0xffff03f8, 0xefffffff, 0xffe1dfff, 0xfffe000f,
    265               0xfff99fef, 0xe3c5fdff, 0xb080599f, 0x1003000f, 0xfff987ee,
    266               0xc36dfdff, 0x5e021987, 0x003f0000, 0xfffbbfee, 0xe3edfdff,
    267               0x00011bbf, 0x1e00000f, 0xfff99fee, 0xe3edfdff, 0xb0c0199f,
    268               0x0002000f, 0xd63dc7ec, 0xc3ffc718, 0x00811dc7, 0xfffddfef,
    269               0xe3fffdff, 0x07601ddf, 0x0000000f, 0xfffddfef, 0xe3effdff,
    270               0x40601ddf, 0x0006000f, 0xfffddfef, 0xe7ffffff, 0x80f05ddf,
    271               0xfc00000f, 0xfc7fffec, 0x2ffbffff, 0xff5f807f, 0x000c0000,
    272               0xfffffffe, 0x07ffffff, 0x0000207f, 0xfef02596, 0x3bffecae,
    273               0xf000205f, 0x00000001, 0xfffffeff, 0xfffe1fff, 0xfeffff03,
    274               0x1fffffff, 0xf97fffff, 0xffff0000, 0xffffc1e7, 0x3000407f,
    275               0xffff20bf, 0xf7ffffff, 0x3d7f3dff, 0xffff3dff, 0x7f3dffff,
    276               0xff7fff3d, 0xff3dffff, 0x87ffffff, 0x0000ffff, 0x3f3fffff,
    277               0xfffffffe, 0xffff9fff, 0x07fffffe, 0x01ffc7ff, 0x000fdfff,
    278               0x000fffff, 0x000fffff, 0x000ddfff, 0xffcfffff, 0x108001ff,
    279               0x00ffffff, 0xffff07ff, 0x003fffff, 0x7fffffff, 0x01ff0fff,
    280               0xffff0000, 0x001f3fff, 0xffff0fff, 0x000003ff, 0x0fffffff,
    281               0x7fffffff, 0x001ffffe, 0x00000080, 0xffefffff, 0x00000fef,
    282               0xfc00f3ff, 0x0003ffbf, 0x003fffff, 0xfc00e000, 0x3fffffff,
    283               0x000001ff, 0x006fde00, 0x001fff80, 0x3f3fffff, 0xaaff3f3f,
    284               0x3fffffff, 0x5fdfffff, 0x0fcf1fdc, 0x1fdc1fff, 0x80020000,
    285               0x1fff0000, 0x3e2ffc84, 0xf3ffbd50, 0x000043e0, 0x000001ff,
    286               0xffc00000, 0x000003ff, 0xffff7fff, 0x7fffffff, 0x000c781f,
    287               0xffff20bf, 0x000080ff, 0x007fffff, 0x7f7f7f7f, 0x7f7f7f7f,
    288               0x00008000, 0x000000e0, 0x1f3e03fe, 0xfffffffe, 0xe07fffff,
    289               0xfffffffe, 0xf7ffffff, 0xffffffe0, 0xfffe7fff, 0x00007fff,
    290               0x07ffffff, 0xffff0000, 0x003fffff, 0x000007ff, 0x00001fff,
    291               0xffff0000, 0x3fffffff, 0xffff1fff, 0x00000c00, 0x8ff07fff,
    292               0x0000ffff, 0xff800000, 0xfffffffc, 0xfffff9ff, 0x00ff7fff,
    293               0xff800000, 0xfffff7bb, 0x000000ff, 0x000fffff, 0x0000002f,
    294               0x28fc0000, 0xfffffc00, 0xffff07ff, 0x0007ffff, 0x1fffffff,
    295               0xfff7ffff, 0x00008000, 0x7c00ffdf, 0x007fffff, 0x00003fff,
    296               0xc47fffff, 0x7fffffff, 0x38000005, 0x003cffff, 0x007e7e7e,
    297               0xffff7f7f, 0xf7ffffff, 0xffff003f, 0x000007ff, 0xffff000f,
    298               0xfffff87f, 0x0fffffff, 0xffff3fff, 0x03ffffff, 0xe0f8007f,
    299               0x5f7ffdff, 0xffffffdb, 0x0003ffff, 0xfff80000, 0x3fffffff,
    300               0xffff0000, 0xfffcffff, 0x000000ff, 0x0fff0000, 0xffdf0000,
    301               0x1fffffff, 0x07fffffe, 0x07fffffe, 0xffffffc0, 0x7fffffff,
    302               0x1cfcfcfc, 0xffffefff, 0xb7ffff7f, 0x3fff3fff, 0x07ffffff,
    303               0x001fffff, 0x1fffffff, 0x0001ffff, 0xffffe000, 0xffff07ff,
    304               0x07ffffff, 0x3fffffff, 0x003eff0f, 0x3fffffff, 0xffff0000,
    305               0xff0fffff, 0x0fffffff, 0xffff00ff, 0x0000000f, 0x007fffff,
    306               0x003fffff, 0x000000ff, 0xfffffd3f, 0x91bfffff, 0x003fffff,
    307               0x007fffff, 0x7fffffff, 0x0037ffff, 0x003fffff, 0x03ffffff,
    308               0xc0ffffff, 0xfeeff06f, 0x000fffff, 0x1fffffff, 0x1fffffff,
    309               0xfffffeff, 0x0000001f, 0x003fffff, 0x003fffff, 0x0007ffff,
    310               0x0003ffff, 0x000001ff, 0x0007ffff, 0x0007ffff, 0x0000003f,
    311               0xfffffffc, 0x01ffffff, 0xffff0000, 0x000001ff, 0x0007ffff,
    312               0xffff0000, 0x0047ffff, 0x1400001e, 0xfffbffff, 0x409fffff,
    313               0xbfffbd7f, 0xffff01ff, 0x000001ff, 0xfff99fef, 0xe3edfdff,
    314               0xe081199f, 0x0000000f, 0x000007bb, 0x000000b3, 0x7f3fffff,
    315               0x3f000000, 0x7fffffff, 0x00000011, 0x003fffff, 0xe3ffffff,
    316               0x000007ff, 0x80000000, 0x7fe7ffff, 0xffff0000, 0x00ffffcf,
    317               0x01ffffff, 0xfffffdff, 0x7f7fffff, 0x00000001, 0xfffc0000,
    318               0xfffcffff, 0x007ffeff, 0xfffffb7f, 0xb47fffff, 0x000000cb,
    319               0x03ffffff, 0x00007fff, 0x0000000f, 0x00007fff, 0x0000007f,
    320               0x01ffffff, 0x7fffffff, 0xffff0000, 0x00003fff, 0x007fffff,
    321               0x0000000f, 0xe0fffff8, 0x0000ffff, 0xffff001f, 0x7fffffff,
    322               0xfff80000, 0x00000003, 0x00001fff, 0x0007ffff, 0x7fffffff,
    323               0xffff0000, 0x0fffffff, 0x1fff07ff, 0x43ff01ff, 0xffdfffff,
    324               0xdfffffff, 0xebffde64, 0xffffffef, 0xdfdfe7bf, 0x7bffffff,
    325               0xfffdfc5f, 0xffffff3f, 0xf7fffffd, 0xf7ffffff, 0xffdfffff,
    326               0xffdfffff, 0xffff7fff, 0xffff7fff, 0xfffffdff, 0xfffffdff,
    327               0x00000ff7, 0xf9ffff7f, 0x000007db, 0x0000001f, 0x0000008f,
    328               0xffffffef, 0x0af7fe96, 0xaa96ea84, 0x5ef7f796, 0x0ffffbff,
    329               0x0ffffbee, 0xffff0000, 0xffff03ff, 0xffff03ff, 0x000003ff,
    330               0x007fffff, 0x001fffff, 0x3fffffff, 0xffff0003, 0x00000001,
    331               0x3fffffff}};
    332         static BinaryPropertyObject property_object{Alpha, codepoint_set};
     184
     185
     186        namespace {
     187        const static UnicodeSet::run_t __codepoint_set_runs[] = {
     188        {Empty, 2}, {Mixed, 2}, {Empty, 1}, {Mixed, 3}, {Full, 14},
     189        {Mixed, 2}, {Empty, 2}, {Mixed, 4}, {Full, 1}, {Mixed, 1},
     190        {Full, 4}, {Mixed, 1}, {Full, 4}, {Mixed, 8}, {Full, 1}, {Mixed, 2},
     191        {Full, 2}, {Mixed, 3}, {Full, 1}, {Mixed, 1}, {Full, 2}, {Mixed, 7},
     192        {Empty, 1}, {Mixed, 3}, {Full, 1}, {Mixed, 22}, {Empty, 1},
     193        {Mixed, 19}, {Empty, 1}, {Mixed, 3}, {Empty, 1}, {Mixed, 1},
     194        {Empty, 1}, {Mixed, 4}, {Empty, 2}, {Full, 1}, {Mixed, 4},
     195        {Full, 1}, {Mixed, 2}, {Full, 10}, {Mixed, 1}, {Full, 1},
     196        {Mixed, 3}, {Full, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 1},
     197        {Empty, 1}, {Mixed, 1}, {Full, 2}, {Mixed, 2}, {Full, 18},
     198        {Mixed, 2}, {Full, 2}, {Mixed, 5}, {Full, 1}, {Mixed, 2},
     199        {Empty, 2}, {Full, 2}, {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Full, 1},
     200        {Mixed, 5}, {Full, 1}, {Mixed, 2}, {Empty, 1}, {Mixed, 1},
     201        {Full, 1}, {Mixed, 2}, {Empty, 1}, {Mixed, 1}, {Empty, 2},
     202        {Full, 1}, {Mixed, 2}, {Empty, 1}, {Full, 1}, {Mixed, 1}, {Full, 1},
     203        {Mixed, 1}, {Full, 1}, {Mixed, 4}, {Empty, 2}, {Mixed, 1},
     204        {Full, 6}, {Empty, 1}, {Mixed, 1}, {Full, 8}, {Mixed, 1}, {Full, 1},
     205        {Mixed, 2}, {Full, 1}, {Mixed, 3}, {Empty, 3}, {Mixed, 2},
     206        {Empty, 3}, {Mixed, 3}, {Full, 1}, {Mixed, 1}, {Empty, 24},
     207        {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Empty, 56}, {Full, 1},
     208        {Mixed, 2}, {Full, 4}, {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Full, 1},
     209        {Mixed, 4}, {Full, 1}, {Empty, 1}, {Mixed, 1}, {Empty, 14},
     210        {Mixed, 3}, {Full, 1}, {Mixed, 2}, {Full, 1}, {Mixed, 3}, {Full, 2},
     211        {Mixed, 2}, {Empty, 1}, {Mixed, 1}, {Empty, 16}, {Full, 205},
     212        {Mixed, 1}, {Empty, 2}, {Full, 655}, {Mixed, 1}, {Full, 36},
     213        {Mixed, 1}, {Empty, 1}, {Mixed, 2}, {Full, 8}, {Mixed, 2},
     214        {Full, 1}, {Mixed, 1}, {Full, 3}, {Mixed, 3}, {Full, 2}, {Mixed, 2},
     215        {Empty, 1}, {Mixed, 3}, {Full, 1}, {Mixed, 1}, {Full, 2},
     216        {Mixed, 6}, {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}, {Full, 1},
     227        {Mixed, 1}, {Empty, 4}, {Full, 9}, {Mixed, 3}, {Empty, 4},
     228        {Mixed, 5}, {Empty, 2}, {Mixed, 3}, {Empty, 2}, {Full, 1},
     229        {Mixed, 1}, {Empty, 2}, {Mixed, 2}, {Empty, 1}, {Mixed, 2},
     230        {Empty, 1}, {Mixed, 2}, {Full, 1}, {Mixed, 4}, {Empty, 3},
     231        {Full, 2}, {Mixed, 1}, {Empty, 1}, {Full, 1}, {Mixed, 1}, {Full, 1},
     232        {Mixed, 1}, {Empty, 24}, {Full, 2}, {Mixed, 1}, {Empty, 1},
     233        {Mixed, 4}, {Full, 1}, {Mixed, 3}, {Full, 2}, {Mixed, 1},
     234        {Empty, 1}, {Mixed, 2}, {Empty, 2}, {Mixed, 2}, {Full, 1},
     235        {Mixed, 5}, {Empty, 4}, {Full, 2}, {Mixed, 1}, {Empty, 1},
     236        {Full, 2}, {Mixed, 1}, {Empty, 5}, {Full, 1}, {Mixed, 2},
     237        {Empty, 1}, {Full, 1}, {Mixed, 2}, {Empty, 1}, {Full, 1},
     238        {Mixed, 1}, {Empty, 2}, {Mixed, 2}, {Empty, 11}, {Full, 2},
     239        {Mixed, 1}, {Empty, 8}, {Full, 1}, {Mixed, 2}, {Full, 1},
     240        {Mixed, 1}, {Empty, 1}, {Full, 1}, {Mixed, 1}, {Empty, 8},
     241        {Mixed, 6}, {Empty, 2}, {Mixed, 3}, {Empty, 21}, {Full, 28},
     242        {Mixed, 1}, {Empty, 3}, {Full, 3}, {Mixed, 1}, {Full, 6},
     243        {Mixed, 1}, {Empty, 85}, {Full, 33}, {Mixed, 1}, {Empty, 126},
     244        {Full, 18}, {Mixed, 1}, {Empty, 269}, {Full, 17}, {Mixed, 2},
     245        {Empty, 3}, {Mixed, 2}, {Full, 1}, {Mixed, 4}, {Empty, 27},
     246        {Full, 2}, {Mixed, 3}, {Empty, 2}, {Mixed, 1}, {Full, 191},
     247        {Mixed, 1}, {Full, 23}, {Mixed, 1}, {Empty, 296}, {Full, 8},
     248        {Mixed, 1}, {Empty, 2}, {Mixed, 1}, {Full, 11}, {Mixed, 1},
     249        {Empty, 72}, {Full, 3}, {Mixed, 2}, {Empty, 187}, {Full, 2},
     250        {Mixed, 1}, {Full, 1}, {Mixed, 3}, {Full, 1}, {Mixed, 3},
     251        {Full, 10}, {Mixed, 10}, {Empty, 65}, {Mixed, 2}, {Empty, 62},
     252        {Full, 6}, {Mixed, 1}, {Empty, 1}, {Full, 2}, {Mixed, 1},
     253        {Empty, 37}, {Mixed, 6}, {Empty, 19}, {Mixed, 4}, {Empty, 115},
     254        {Full, 1334}, {Mixed, 1}, {Empty, 1}, {Full, 129}, {Mixed, 1},
     255        {Full, 6}, {Mixed, 1}, {Full, 180}, {Mixed, 1}, {Full, 233},
     256        {Mixed, 1}, {Empty, 96}, {Full, 16}, {Mixed, 1}, {Empty, 28719}};
     257        const static UnicodeSet::bitquad_t  __codepoint_set_quads[] = {
     258        0x07fffffe, 0x07fffffe, 0x04200400, 0xff7fffff, 0xff7fffff,
     259        0x0003ffc3, 0x0000501f, 0x00000020, 0xbcdf0000, 0xffffd740,
     260        0xfffffffb, 0xffbfffff, 0xfffffc03, 0xfffeffff, 0x027fffff,
     261        0xfffffffe, 0x000000ff, 0xbfff0000, 0xffff00b6, 0x000707ff,
     262        0x07ff0000, 0xfeffffff, 0xffffc000, 0x1fefffff, 0x9c00e1fe,
     263        0xffff0000, 0xffffe000, 0x0003ffff, 0xfffffc00, 0x043007ff,
     264        0xfcffffff, 0x00001fff, 0x01ffffff, 0x000007ff, 0x3fdfffff,
     265        0xfff00000, 0xffff03f8, 0xefffffff, 0xffe1dfff, 0xfffe000f,
     266        0xfff99fef, 0xe3c5fdff, 0xb080599f, 0x1003000f, 0xfff987ee,
     267        0xc36dfdff, 0x5e021987, 0x003f0000, 0xfffbbfee, 0xe3edfdff,
     268        0x00011bbf, 0x1e00000f, 0xfff99fee, 0xe3edfdff, 0xb0c0199f,
     269        0x0002000f, 0xd63dc7ec, 0xc3ffc718, 0x00811dc7, 0xfffddfef,
     270        0xe3fffdff, 0x07601ddf, 0x0000000f, 0xfffddfef, 0xe3effdff,
     271        0x40601ddf, 0x0006000f, 0xfffddfef, 0xe7ffffff, 0x80f05ddf,
     272        0xfc00000f, 0xfc7fffec, 0x2ffbffff, 0xff5f807f, 0x000c0000,
     273        0xfffffffe, 0x07ffffff, 0x0000207f, 0xfef02596, 0x3bffecae,
     274        0xf000205f, 0x00000001, 0xfffffeff, 0xfffe1fff, 0xfeffff03,
     275        0x1fffffff, 0xf97fffff, 0xffff0000, 0xffffc1e7, 0x3000407f,
     276        0xffff20bf, 0xf7ffffff, 0x3d7f3dff, 0xffff3dff, 0x7f3dffff,
     277        0xff7fff3d, 0xff3dffff, 0x87ffffff, 0x0000ffff, 0x3f3fffff,
     278        0xfffffffe, 0xffff9fff, 0x07fffffe, 0x01ffc7ff, 0x000fdfff,
     279        0x000fffff, 0x000fffff, 0x000ddfff, 0xffcfffff, 0x108001ff,
     280        0x00ffffff, 0xffff07ff, 0x003fffff, 0x7fffffff, 0x01ff0fff,
     281        0xffff0000, 0x001f3fff, 0xffff0fff, 0x000003ff, 0x0fffffff,
     282        0x7fffffff, 0x001ffffe, 0x00000080, 0xffefffff, 0x00000fef,
     283        0xfc00f3ff, 0x0003ffbf, 0x003fffff, 0xfc00e000, 0x3fffffff,
     284        0x000001ff, 0x006fde00, 0x001fff80, 0x3f3fffff, 0xaaff3f3f,
     285        0x3fffffff, 0x5fdfffff, 0x0fcf1fdc, 0x1fdc1fff, 0x80020000,
     286        0x1fff0000, 0x3e2ffc84, 0xf3ffbd50, 0x000043e0, 0x000001ff,
     287        0xffc00000, 0x000003ff, 0xffff7fff, 0x7fffffff, 0x000c781f,
     288        0xffff20bf, 0x000080ff, 0x007fffff, 0x7f7f7f7f, 0x7f7f7f7f,
     289        0x00008000, 0x000000e0, 0x1f3e03fe, 0xfffffffe, 0xe07fffff,
     290        0xfffffffe, 0xf7ffffff, 0xffffffe0, 0xfffe7fff, 0x00007fff,
     291        0x07ffffff, 0xffff0000, 0x003fffff, 0x000007ff, 0x00001fff,
     292        0xffff0000, 0x3fffffff, 0xffff1fff, 0x00000c00, 0x8ff07fff,
     293        0x0000ffff, 0xff800000, 0xfffffffc, 0xfffff9ff, 0x00ff7fff,
     294        0xff800000, 0xfffff7bb, 0x000000ff, 0x000fffff, 0x0000002f,
     295        0x28fc0000, 0xfffffc00, 0xffff07ff, 0x0007ffff, 0x1fffffff,
     296        0xfff7ffff, 0x00008000, 0x7c00ffdf, 0x007fffff, 0x00003fff,
     297        0xc47fffff, 0x7fffffff, 0x38000005, 0x003cffff, 0x007e7e7e,
     298        0xffff7f7f, 0xf7ffffff, 0xffff003f, 0x000007ff, 0xffff000f,
     299        0xfffff87f, 0x0fffffff, 0xffff3fff, 0x03ffffff, 0xe0f8007f,
     300        0x5f7ffdff, 0xffffffdb, 0x0003ffff, 0xfff80000, 0x3fffffff,
     301        0xffff0000, 0xfffcffff, 0x000000ff, 0x0fff0000, 0xffdf0000,
     302        0x1fffffff, 0x07fffffe, 0x07fffffe, 0xffffffc0, 0x7fffffff,
     303        0x1cfcfcfc, 0xffffefff, 0xb7ffff7f, 0x3fff3fff, 0x07ffffff,
     304        0x001fffff, 0x1fffffff, 0x0001ffff, 0xffffe000, 0xffff07ff,
     305        0x07ffffff, 0x3fffffff, 0x003eff0f, 0x3fffffff, 0xffff0000,
     306        0xff0fffff, 0x0fffffff, 0xffff00ff, 0x0000000f, 0x007fffff,
     307        0x003fffff, 0x000000ff, 0xfffffd3f, 0x91bfffff, 0x003fffff,
     308        0x007fffff, 0x7fffffff, 0x0037ffff, 0x003fffff, 0x03ffffff,
     309        0xc0ffffff, 0xfeeff06f, 0x000fffff, 0x1fffffff, 0x1fffffff,
     310        0xfffffeff, 0x0000001f, 0x003fffff, 0x003fffff, 0x0007ffff,
     311        0x0003ffff, 0x000001ff, 0x0007ffff, 0x0007ffff, 0x0000003f,
     312        0xfffffffc, 0x01ffffff, 0xffff0000, 0x000001ff, 0x0007ffff,
     313        0xffff0000, 0x0047ffff, 0x1400001e, 0xfffbffff, 0x409fffff,
     314        0xbfffbd7f, 0xffff01ff, 0x000001ff, 0xfff99fef, 0xe3edfdff,
     315        0xe081199f, 0x0000000f, 0x000007bb, 0x000000b3, 0x7f3fffff,
     316        0x3f000000, 0x7fffffff, 0x00000011, 0x003fffff, 0xe3ffffff,
     317        0x000007ff, 0x80000000, 0x7fe7ffff, 0xffff0000, 0x00ffffcf,
     318        0x01ffffff, 0xfffffdff, 0x7f7fffff, 0x00000001, 0xfffc0000,
     319        0xfffcffff, 0x007ffeff, 0xfffffb7f, 0xb47fffff, 0x000000cb,
     320        0x03ffffff, 0x00007fff, 0x0000000f, 0x00007fff, 0x0000007f,
     321        0x01ffffff, 0x7fffffff, 0xffff0000, 0x00003fff, 0x007fffff,
     322        0x0000000f, 0xe0fffff8, 0x0000ffff, 0xffff001f, 0x7fffffff,
     323        0xfff80000, 0x00000003, 0x00001fff, 0x0007ffff, 0x7fffffff,
     324        0xffff0000, 0x0fffffff, 0x1fff07ff, 0x43ff01ff, 0xffdfffff,
     325        0xdfffffff, 0xebffde64, 0xffffffef, 0xdfdfe7bf, 0x7bffffff,
     326        0xfffdfc5f, 0xffffff3f, 0xf7fffffd, 0xf7ffffff, 0xffdfffff,
     327        0xffdfffff, 0xffff7fff, 0xffff7fff, 0xfffffdff, 0xfffffdff,
     328        0x00000ff7, 0xf9ffff7f, 0x000007db, 0x0000001f, 0x0000008f,
     329        0xffffffef, 0x0af7fe96, 0xaa96ea84, 0x5ef7f796, 0x0ffffbff,
     330        0x0ffffbee, 0xffff0000, 0xffff03ff, 0xffff03ff, 0x000003ff,
     331        0x007fffff, 0x001fffff, 0x3fffffff, 0xffff0003, 0x00000001,
     332        0x3fffffff};
     333        }
     334
     335        const static UnicodeSet codepoint_set{const_cast<UnicodeSet::run_t *>(__codepoint_set_runs), 356, 0, const_cast<UnicodeSet::bitquad_t *>(__codepoint_set_quads), 371, 0};
     336
     337        static BinaryPropertyObject property_object{Alpha, std::move(codepoint_set)};
    333338    }
    334339    namespace CI_ns {
     
    430435        [1e944, 1e94a], [1f3fb, 1f3ff], [e0001, e0001], [e0020, e007f],
    431436        [e0100, e01ef]**/
    432         const UnicodeSet codepoint_set
    433             {{{Empty, 1}, {Mixed, 3}, {Empty, 1}, {Mixed, 1}, {Empty, 15},
    434               {Mixed, 1}, {Full, 5}, {Mixed, 2}, {Empty, 7}, {Mixed, 1},
    435               {Empty, 5}, {Mixed, 1}, {Empty, 1}, {Mixed, 5}, {Empty, 1},
    436               {Mixed, 2}, {Empty, 2}, {Mixed, 5}, {Empty, 2}, {Mixed, 1},
    437               {Empty, 1}, {Mixed, 4}, {Empty, 3}, {Mixed, 1}, {Full, 1},
    438               {Mixed, 21}, {Empty, 1}, {Mixed, 1}, {Empty, 1}, {Mixed, 12},
    439               {Empty, 2}, {Mixed, 1}, {Empty, 2}, {Mixed, 2}, {Empty, 2},
    440               {Mixed, 2}, {Empty, 1}, {Mixed, 2}, {Empty, 1}, {Mixed, 4},
    441               {Empty, 2}, {Mixed, 4}, {Empty, 2}, {Mixed, 1}, {Empty, 18},
    442               {Mixed, 1}, {Empty, 29}, {Mixed, 4}, {Empty, 1}, {Mixed, 2},
    443               {Empty, 1}, {Mixed, 1}, {Empty, 1}, {Mixed, 1}, {Empty, 1},
    444               {Mixed, 2}, {Empty, 3}, {Mixed, 1}, {Empty, 6}, {Mixed, 1},
    445               {Empty, 1}, {Mixed, 2}, {Empty, 1}, {Mixed, 1}, {Empty, 2},
    446               {Mixed, 6}, {Empty, 1}, {Mixed, 1}, {Empty, 1}, {Mixed, 1},
    447               {Empty, 1}, {Mixed, 1}, {Empty, 2}, {Mixed, 2}, {Empty, 1},
    448               {Mixed, 1}, {Full, 1}, {Mixed, 2}, {Full, 2}, {Mixed, 1},
    449               {Empty, 13}, {Mixed, 5}, {Empty, 1}, {Mixed, 2}, {Empty, 1},
    450               {Mixed, 2}, {Empty, 91}, {Mixed, 1}, {Empty, 3}, {Mixed, 1},
    451               {Empty, 3}, {Mixed, 1}, {Empty, 3}, {Full, 1}, {Empty, 1},
    452               {Mixed, 1}, {Empty, 14}, {Mixed, 2}, {Empty, 2}, {Mixed, 1},
    453               {Empty, 2}, {Mixed, 1}, {Empty, 888}, {Mixed, 1}, {Empty, 38},
    454               {Mixed, 1}, {Empty, 8}, {Mixed, 1}, {Empty, 2}, {Mixed, 2},
    455               {Empty, 2}, {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Empty, 1},
    456               {Mixed, 2}, {Empty, 2}, {Mixed, 3}, {Empty, 4}, {Mixed, 2},
    457               {Empty, 1}, {Mixed, 2}, {Empty, 1}, {Mixed, 4}, {Empty, 1},
    458               {Mixed, 3}, {Empty, 1}, {Mixed, 3}, {Empty, 2}, {Mixed, 1},
    459               {Empty, 4}, {Mixed, 1}, {Empty, 632}, {Mixed, 1}, {Empty, 4},
    460               {Mixed, 2}, {Empty, 17}, {Mixed, 3}, {Empty, 4}, {Mixed, 6},
    461               {Empty, 2}, {Mixed, 1}, {Empty, 15}, {Mixed, 1}, {Empty, 7},
    462               {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Empty, 52}, {Mixed, 2},
    463               {Empty, 5}, {Mixed, 1}, {Empty, 40}, {Mixed, 6}, {Empty, 2},
    464               {Mixed, 2}, {Empty, 1}, {Mixed, 4}, {Empty, 2}, {Mixed, 1},
    465               {Empty, 4}, {Mixed, 6}, {Empty, 5}, {Mixed, 2}, {Empty, 2},
    466               {Mixed, 2}, {Empty, 6}, {Mixed, 2}, {Empty, 2}, {Mixed, 2},
    467               {Empty, 2}, {Mixed, 1}, {Empty, 2}, {Mixed, 2}, {Empty, 22},
    468               {Mixed, 3}, {Empty, 1}, {Mixed, 1}, {Empty, 12}, {Mixed, 1},
    469               {Empty, 2}, {Mixed, 2}, {Empty, 3}, {Mixed, 2}, {Empty, 620},
    470               {Mixed, 1}, {Empty, 1}, {Mixed, 2}, {Empty, 33}, {Mixed, 1},
    471               {Empty, 2}, {Mixed, 1}, {Empty, 612}, {Mixed, 2},
    472               {Empty, 165}, {Mixed, 3}, {Empty, 4}, {Mixed, 1}, {Empty, 61},
    473               {Full, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 3}, {Empty, 42},
    474               {Mixed, 2}, {Empty, 68}, {Mixed, 1}, {Empty, 3}, {Mixed, 1},
    475               {Empty, 84}, {Mixed, 1}, {Empty, 24672}, {Mixed, 1},
    476               {Full, 3}, {Empty, 4}, {Full, 7}, {Mixed, 1}, {Empty, 6128}},
    477              {0x04004080, 0x40000000, 0x00000001, 0x0190a100, 0xffff0000,
    478               0x0430ffff, 0x000000b0, 0x000003f8, 0x02000000, 0xfffe0000,
    479               0xbfffffff, 0x000000b6, 0x00100000, 0x17ff003f, 0xfffff801,
    480               0x00010000, 0xbfc00000, 0x00003dff, 0x00028000, 0xffff0000,
    481               0x000007ff, 0x0001ffc0, 0x043ff800, 0xffc00000, 0x00003fff,
    482               0x0e000000, 0xfff00000, 0x00000007, 0x14000000, 0x00fe21fe,
    483               0x0002000c, 0x00000002, 0x10000000, 0x0000201e, 0x0000000c,
    484               0x00000006, 0x10000000, 0x00023986, 0x00230000, 0x00000006,
    485               0x10000000, 0x000021be, 0xfc00000c, 0x00000002, 0x90000000,
    486               0x0040201e, 0x0000000c, 0x00000004, 0x00002001, 0x00000001,
    487               0xc0000000, 0x00603dc1, 0x0000000c, 0x00000002, 0x90000000,
    488               0x00003040, 0x0000000c, 0x00000003, 0x18000000, 0x0000201e,
    489               0x0000000c, 0x005c0400, 0x07f20000, 0x00007fc0, 0x1bf20000,
    490               0x00003f40, 0x03000000, 0x02a00000, 0x7ffe0000, 0xfeffe0df,
    491               0x1fffffff, 0x00000040, 0x66fde000, 0xc3000000, 0x001e0001,
    492               0x20002064, 0x10000000, 0xe0000000, 0x001c0000, 0x001c0000,
    493               0x000c0000, 0x000c0000, 0x3fb00000, 0x208ffe40, 0x00007800,
    494               0x00000008, 0x00000060, 0x00000200, 0x0e040187, 0x09800000,
    495               0x7f400000, 0x9ff81fe5, 0x7fff0080, 0x0000000f, 0x17d00000,
    496               0x00000004, 0x000ff800, 0x00000003, 0x00003b3c, 0x0003a340,
    497               0x00cff000, 0x3f000000, 0xfff70000, 0x031021fd, 0xfffff000,
    498               0x010007ff, 0xf8000000, 0xfbffffff, 0xa0000000, 0xe000e003,
    499               0x6000e000, 0x0300f800, 0x00007c90, 0x8002ffdf, 0x1fff0000,
    500               0xffff0000, 0x0001ffff, 0x30000000, 0x00038000, 0x80008000,
    501               0x00008000, 0x00000020, 0x083e3c00, 0x7e000000, 0x70000000,
    502               0x00200000, 0x3f000000, 0x00001000, 0xbff78000, 0xf0000000,
    503               0x00030000, 0x00000003, 0x00010000, 0x00000700, 0x03000000,
    504               0x00000844, 0x00000060, 0x00000030, 0x0003ffff, 0x00003fc0,
    505               0x0003ff80, 0x00000007, 0x13c80000, 0x00008000, 0x00000060,
    506               0x00667e00, 0x00001008, 0x10010000, 0xc19d0000, 0x20000002,
    507               0x00583000, 0xf8000000, 0x00002120, 0x40000000, 0xfffc0000,
    508               0x00000003, 0x0008ffff, 0x0000ffff, 0x00240000, 0x80000000,
    509               0x04004080, 0x40000000, 0x00000001, 0x00010000, 0xc0000000,
    510               0x0e000008, 0x20000000, 0x00000001, 0x07c00000, 0x0000f06e,
    511               0x87000000, 0x00000060, 0x00000002, 0xff000000, 0x0000007f,
    512               0x80000000, 0x00000003, 0x26780000, 0x00000007, 0x001fef80,
    513               0x00080000, 0x00000003, 0x7fc00000, 0x00001c00, 0x40d38000,
    514               0x80000000, 0x000007f8, 0x00000003, 0x10000000, 0x00000001,
    515               0x001f1fc0, 0xff000000, 0x0000005c, 0x85f80000, 0x0000000d,
    516               0xb03c0000, 0x30000001, 0xa7f80000, 0x00000001, 0x00bf2800,
    517               0xe0000000, 0x00000fbc, 0x0000067e, 0x79f80000, 0x0e7e0080,
    518               0x037ffc00, 0xbf7f0000, 0xfffc0000, 0x006dfcff, 0xb47e0000,
    519               0x000000bf, 0x001f0000, 0x007f0000, 0x0000000f, 0xffff8000,
    520               0x00000003, 0x60000000, 0x0000000f, 0xfff80380, 0x00000fe7,
    521               0x00003c00, 0x0000001c, 0xf87fffff, 0x00201fff, 0xf8000010,
    522               0x0000fffe, 0xf9ffff7f, 0x000007db, 0x007f0000, 0x000007f0,
    523               0xf8000000, 0x00000002, 0x0000ffff}};
    524         static BinaryPropertyObject property_object{CI, codepoint_set};
     437
     438
     439        namespace {
     440        const static UnicodeSet::run_t __codepoint_set_runs[] = {
     441        {Empty, 1}, {Mixed, 3}, {Empty, 1}, {Mixed, 1}, {Empty, 15},
     442        {Mixed, 1}, {Full, 5}, {Mixed, 2}, {Empty, 7}, {Mixed, 1},
     443        {Empty, 5}, {Mixed, 1}, {Empty, 1}, {Mixed, 5}, {Empty, 1},
     444        {Mixed, 2}, {Empty, 2}, {Mixed, 5}, {Empty, 2}, {Mixed, 1},
     445        {Empty, 1}, {Mixed, 4}, {Empty, 3}, {Mixed, 1}, {Full, 1},
     446        {Mixed, 21}, {Empty, 1}, {Mixed, 1}, {Empty, 1}, {Mixed, 12},
     447        {Empty, 2}, {Mixed, 1}, {Empty, 2}, {Mixed, 2}, {Empty, 2},
     448        {Mixed, 2}, {Empty, 1}, {Mixed, 2}, {Empty, 1}, {Mixed, 4},
     449        {Empty, 2}, {Mixed, 4}, {Empty, 2}, {Mixed, 1}, {Empty, 18},
     450        {Mixed, 1}, {Empty, 29}, {Mixed, 4}, {Empty, 1}, {Mixed, 2},
     451        {Empty, 1}, {Mixed, 1}, {Empty, 1}, {Mixed, 1}, {Empty, 1},
     452        {Mixed, 2}, {Empty, 3}, {Mixed, 1}, {Empty, 6}, {Mixed, 1},
     453        {Empty, 1}, {Mixed, 2}, {Empty, 1}, {Mixed, 1}, {Empty, 2},
     454        {Mixed, 6}, {Empty, 1}, {Mixed, 1}, {Empty, 1}, {Mixed, 1},
     455        {Empty, 1}, {Mixed, 1}, {Empty, 2}, {Mixed, 2}, {Empty, 1},
     456        {Mixed, 1}, {Full, 1}, {Mixed, 2}, {Full, 2}, {Mixed, 1},
     457        {Empty, 13}, {Mixed, 5}, {Empty, 1}, {Mixed, 2}, {Empty, 1},
     458        {Mixed, 2}, {Empty, 91}, {Mixed, 1}, {Empty, 3}, {Mixed, 1},
     459        {Empty, 3}, {Mixed, 1}, {Empty, 3}, {Full, 1}, {Empty, 1},
     460        {Mixed, 1}, {Empty, 14}, {Mixed, 2}, {Empty, 2}, {Mixed, 1},
     461        {Empty, 2}, {Mixed, 1}, {Empty, 888}, {Mixed, 1}, {Empty, 38},
     462        {Mixed, 1}, {Empty, 8}, {Mixed, 1}, {Empty, 2}, {Mixed, 2},
     463        {Empty, 2}, {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Empty, 1},
     464        {Mixed, 2}, {Empty, 2}, {Mixed, 3}, {Empty, 4}, {Mixed, 2},
     465        {Empty, 1}, {Mixed, 2}, {Empty, 1}, {Mixed, 4}, {Empty, 1},
     466        {Mixed, 3}, {Empty, 1}, {Mixed, 3}, {Empty, 2}, {Mixed, 1},
     467        {Empty, 4}, {Mixed, 1}, {Empty, 632}, {Mixed, 1}, {Empty, 4},
     468        {Mixed, 2}, {Empty, 17}, {Mixed, 3}, {Empty, 4}, {Mixed, 6},
     469        {Empty, 2}, {Mixed, 1}, {Empty, 15}, {Mixed, 1}, {Empty, 7},
     470        {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Empty, 52}, {Mixed, 2},
     471        {Empty, 5}, {Mixed, 1}, {Empty, 40}, {Mixed, 6}, {Empty, 2},
     472        {Mixed, 2}, {Empty, 1}, {Mixed, 4}, {Empty, 2}, {Mixed, 1},
     473        {Empty, 4}, {Mixed, 6}, {Empty, 5}, {Mixed, 2}, {Empty, 2},
     474        {Mixed, 2}, {Empty, 6}, {Mixed, 2}, {Empty, 2}, {Mixed, 2},
     475        {Empty, 2}, {Mixed, 1}, {Empty, 2}, {Mixed, 2}, {Empty, 22},
     476        {Mixed, 3}, {Empty, 1}, {Mixed, 1}, {Empty, 12}, {Mixed, 1},
     477        {Empty, 2}, {Mixed, 2}, {Empty, 3}, {Mixed, 2}, {Empty, 620},
     478        {Mixed, 1}, {Empty, 1}, {Mixed, 2}, {Empty, 33}, {Mixed, 1},
     479        {Empty, 2}, {Mixed, 1}, {Empty, 612}, {Mixed, 2}, {Empty, 165},
     480        {Mixed, 3}, {Empty, 4}, {Mixed, 1}, {Empty, 61}, {Full, 1},
     481        {Mixed, 1}, {Full, 1}, {Mixed, 3}, {Empty, 42}, {Mixed, 2},
     482        {Empty, 68}, {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Empty, 84},
     483        {Mixed, 1}, {Empty, 24672}, {Mixed, 1}, {Full, 3}, {Empty, 4},
     484        {Full, 7}, {Mixed, 1}, {Empty, 6128}};
     485        const static UnicodeSet::bitquad_t  __codepoint_set_quads[] = {
     486        0x04004080, 0x40000000, 0x00000001, 0x0190a100, 0xffff0000,
     487        0x0430ffff, 0x000000b0, 0x000003f8, 0x02000000, 0xfffe0000,
     488        0xbfffffff, 0x000000b6, 0x00100000, 0x17ff003f, 0xfffff801,
     489        0x00010000, 0xbfc00000, 0x00003dff, 0x00028000, 0xffff0000,
     490        0x000007ff, 0x0001ffc0, 0x043ff800, 0xffc00000, 0x00003fff,
     491        0x0e000000, 0xfff00000, 0x00000007, 0x14000000, 0x00fe21fe,
     492        0x0002000c, 0x00000002, 0x10000000, 0x0000201e, 0x0000000c,
     493        0x00000006, 0x10000000, 0x00023986, 0x00230000, 0x00000006,
     494        0x10000000, 0x000021be, 0xfc00000c, 0x00000002, 0x90000000,
     495        0x0040201e, 0x0000000c, 0x00000004, 0x00002001, 0x00000001,
     496        0xc0000000, 0x00603dc1, 0x0000000c, 0x00000002, 0x90000000,
     497        0x00003040, 0x0000000c, 0x00000003, 0x18000000, 0x0000201e,
     498        0x0000000c, 0x005c0400, 0x07f20000, 0x00007fc0, 0x1bf20000,
     499        0x00003f40, 0x03000000, 0x02a00000, 0x7ffe0000, 0xfeffe0df,
     500        0x1fffffff, 0x00000040, 0x66fde000, 0xc3000000, 0x001e0001,
     501        0x20002064, 0x10000000, 0xe0000000, 0x001c0000, 0x001c0000,
     502        0x000c0000, 0x000c0000, 0x3fb00000, 0x208ffe40, 0x00007800,
     503        0x00000008, 0x00000060, 0x00000200, 0x0e040187, 0x09800000,
     504        0x7f400000, 0x9ff81fe5, 0x7fff0080, 0x0000000f, 0x17d00000,
     505        0x00000004, 0x000ff800, 0x00000003, 0x00003b3c, 0x0003a340,
     506        0x00cff000, 0x3f000000, 0xfff70000, 0x031021fd, 0xfffff000,
     507        0x010007ff, 0xf8000000, 0xfbffffff, 0xa0000000, 0xe000e003,
     508        0x6000e000, 0x0300f800, 0x00007c90, 0x8002ffdf, 0x1fff0000,
     509        0xffff0000, 0x0001ffff, 0x30000000, 0x00038000, 0x80008000,
     510        0x00008000, 0x00000020, 0x083e3c00, 0x7e000000, 0x70000000,
     511        0x00200000, 0x3f000000, 0x00001000, 0xbff78000, 0xf0000000,
     512        0x00030000, 0x00000003, 0x00010000, 0x00000700, 0x03000000,
     513        0x00000844, 0x00000060, 0x00000030, 0x0003ffff, 0x00003fc0,
     514        0x0003ff80, 0x00000007, 0x13c80000, 0x00008000, 0x00000060,
     515        0x00667e00, 0x00001008, 0x10010000, 0xc19d0000, 0x20000002,
     516        0x00583000, 0xf8000000, 0x00002120, 0x40000000, 0xfffc0000,
     517        0x00000003, 0x0008ffff, 0x0000ffff, 0x00240000, 0x80000000,
     518        0x04004080, 0x40000000, 0x00000001, 0x00010000, 0xc0000000,
     519        0x0e000008, 0x20000000, 0x00000001, 0x07c00000, 0x0000f06e,
     520        0x87000000, 0x00000060, 0x00000002, 0xff000000, 0x0000007f,
     521        0x80000000, 0x00000003, 0x26780000, 0x00000007, 0x001fef80,
     522        0x00080000, 0x00000003, 0x7fc00000, 0x00001c00, 0x40d38000,
     523        0x80000000, 0x000007f8, 0x00000003, 0x10000000, 0x00000001,
     524        0x001f1fc0, 0xff000000, 0x0000005c, 0x85f80000, 0x0000000d,
     525        0xb03c0000, 0x30000001, 0xa7f80000, 0x00000001, 0x00bf2800,
     526        0xe0000000, 0x00000fbc, 0x0000067e, 0x79f80000, 0x0e7e0080,
     527        0x037ffc00, 0xbf7f0000, 0xfffc0000, 0x006dfcff, 0xb47e0000,
     528        0x000000bf, 0x001f0000, 0x007f0000, 0x0000000f, 0xffff8000,
     529        0x00000003, 0x60000000, 0x0000000f, 0xfff80380, 0x00000fe7,
     530        0x00003c00, 0x0000001c, 0xf87fffff, 0x00201fff, 0xf8000010,
     531        0x0000fffe, 0xf9ffff7f, 0x000007db, 0x007f0000, 0x000007f0,
     532        0xf8000000, 0x00000002, 0x0000ffff};
     533        }
     534
     535        const static UnicodeSet codepoint_set{const_cast<UnicodeSet::run_t *>(__codepoint_set_runs), 218, 0, const_cast<UnicodeSet::bitquad_t *>(__codepoint_set_quads), 233, 0};
     536
     537        static BinaryPropertyObject property_object{CI, std::move(codepoint_set)};
    525538    }
    526539    namespace CWCF_ns {
     
    677690        [fb13, fb17], [ff21, ff3a], [10400, 10427], [104b0, 104d3],
    678691        [10c80, 10cb2], [118a0, 118bf], [1e900, 1e921]**/
    679         const UnicodeSet codepoint_set
    680             {{{Empty, 2}, {Mixed, 1}, {Empty, 2}, {Mixed, 2}, {Empty, 1},
    681               {Mixed, 11}, {Empty, 7}, {Mixed, 6}, {Full, 1}, {Mixed, 1},
    682               {Empty, 1}, {Mixed, 8}, {Empty, 1}, {Mixed, 1}, {Empty, 88},
    683               {Full, 1}, {Mixed, 1}, {Empty, 24}, {Mixed, 1}, {Empty, 68},
    684               {Mixed, 1}, {Empty, 11}, {Mixed, 12}, {Full, 1}, {Mixed, 3},
    685               {Empty, 9}, {Mixed, 1}, {Empty, 1}, {Mixed, 2}, {Empty, 24},
    686               {Mixed, 2}, {Empty, 57}, {Full, 1}, {Mixed, 1}, {Empty, 1},
    687               {Mixed, 5}, {Empty, 970}, {Mixed, 3}, {Empty, 4}, {Mixed, 5},
    688               {Empty, 29}, {Mixed, 1}, {Full, 2}, {Empty, 634}, {Mixed, 1},
    689               {Empty, 32}, {Mixed, 1}, {Empty, 38}, {Full, 1}, {Mixed, 1},
    690               {Empty, 3}, {Mixed, 2}, {Empty, 61}, {Full, 1}, {Mixed, 1},
    691               {Empty, 95}, {Full, 1}, {Empty, 1666}, {Full, 1}, {Mixed, 1},
    692               {Empty, 30902}},
    693              {0x07fffffe, 0x00200000, 0xff7fffff, 0x55555555, 0xaa555555,
    694               0x555556aa, 0xab555555, 0xb1dbced6, 0x11aed2d5, 0x4aaaadb0,
    695               0x55d65555, 0x55555555, 0x6c055555, 0x0000557a, 0x00000020,
    696               0x80450000, 0xfffed740, 0x00000ffb, 0x55638004, 0xe6b35555,
    697               0x0000ffff, 0x55555555, 0x55555401, 0x55555555, 0x55552aab,
    698               0x55555555, 0x55555555, 0xfffe5555, 0x007fffff, 0x00000080,
    699               0x000020bf, 0x3f000000, 0x000001ff, 0x55555555, 0x55555555,
    700               0x55555555, 0x55555555, 0x4c155555, 0x55555555, 0x55555555,
    701               0x55555555, 0x3f00ff00, 0xff00ff00, 0xaa003f00, 0x0000ff00,
    702               0x1f9cffff, 0x0f001f9c, 0x1f9c1f00, 0x00040c40, 0x0000ffff,
    703               0x00000008, 0xffc00000, 0x0000ffff, 0x00007fff, 0xc025ea9d,
    704               0x55555555, 0x55555555, 0x55555555, 0x00042805, 0x55555555,
    705               0x00001555, 0x05555555, 0x55545554, 0x55555555, 0x6a005555,
    706               0x55452855, 0x005f7d55, 0xffff0000, 0x00f8007f, 0x07fffffe,
    707               0x000000ff, 0xffff0000, 0x000fffff, 0x0007ffff, 0x00000003}};
    708         static BinaryPropertyObject property_object{CWCF, codepoint_set};
     692
     693
     694        namespace {
     695        const static UnicodeSet::run_t __codepoint_set_runs[] = {
     696        {Empty, 2}, {Mixed, 1}, {Empty, 2}, {Mixed, 2}, {Empty, 1},
     697        {Mixed, 11}, {Empty, 7}, {Mixed, 6}, {Full, 1}, {Mixed, 1},
     698        {Empty, 1}, {Mixed, 8}, {Empty, 1}, {Mixed, 1}, {Empty, 88},
     699        {Full, 1}, {Mixed, 1}, {Empty, 24}, {Mixed, 1}, {Empty, 68},
     700        {Mixed, 1}, {Empty, 11}, {Mixed, 12}, {Full, 1}, {Mixed, 3},
     701        {Empty, 9}, {Mixed, 1}, {Empty, 1}, {Mixed, 2}, {Empty, 24},
     702        {Mixed, 2}, {Empty, 57}, {Full, 1}, {Mixed, 1}, {Empty, 1},
     703        {Mixed, 5}, {Empty, 970}, {Mixed, 3}, {Empty, 4}, {Mixed, 5},
     704        {Empty, 29}, {Mixed, 1}, {Full, 2}, {Empty, 634}, {Mixed, 1},
     705        {Empty, 32}, {Mixed, 1}, {Empty, 38}, {Full, 1}, {Mixed, 1},
     706        {Empty, 3}, {Mixed, 2}, {Empty, 61}, {Full, 1}, {Mixed, 1},
     707        {Empty, 95}, {Full, 1}, {Empty, 1666}, {Full, 1}, {Mixed, 1},
     708        {Empty, 30902}};
     709        const static UnicodeSet::bitquad_t  __codepoint_set_quads[] = {
     710        0x07fffffe, 0x00200000, 0xff7fffff, 0x55555555, 0xaa555555,
     711        0x555556aa, 0xab555555, 0xb1dbced6, 0x11aed2d5, 0x4aaaadb0,
     712        0x55d65555, 0x55555555, 0x6c055555, 0x0000557a, 0x00000020,
     713        0x80450000, 0xfffed740, 0x00000ffb, 0x55638004, 0xe6b35555,
     714        0x0000ffff, 0x55555555, 0x55555401, 0x55555555, 0x55552aab,
     715        0x55555555, 0x55555555, 0xfffe5555, 0x007fffff, 0x00000080,
     716        0x000020bf, 0x3f000000, 0x000001ff, 0x55555555, 0x55555555,
     717        0x55555555, 0x55555555, 0x4c155555, 0x55555555, 0x55555555,
     718        0x55555555, 0x3f00ff00, 0xff00ff00, 0xaa003f00, 0x0000ff00,
     719        0x1f9cffff, 0x0f001f9c, 0x1f9c1f00, 0x00040c40, 0x0000ffff,
     720        0x00000008, 0xffc00000, 0x0000ffff, 0x00007fff, 0xc025ea9d,
     721        0x55555555, 0x55555555, 0x55555555, 0x00042805, 0x55555555,
     722        0x00001555, 0x05555555, 0x55545554, 0x55555555, 0x6a005555,
     723        0x55452855, 0x005f7d55, 0xffff0000, 0x00f8007f, 0x07fffffe,
     724        0x000000ff, 0xffff0000, 0x000fffff, 0x0007ffff, 0x00000003};
     725        }
     726
     727        const static UnicodeSet codepoint_set{const_cast<UnicodeSet::run_t *>(__codepoint_set_runs), 61, 0, const_cast<UnicodeSet::bitquad_t *>(__codepoint_set_quads), 75, 0};
     728
     729        static BinaryPropertyObject property_object{CWCF, std::move(codepoint_set)};
    709730    }
    710731    namespace CWCM_ns {
     
    739760        [ff41, ff5a], [10400, 1044f], [104b0, 104d3], [104d8, 104fb],
    740761        [10c80, 10cb2], [10cc0, 10cf2], [118a0, 118df], [1e900, 1e943]**/
    741         const UnicodeSet codepoint_set
    742             {{{Empty, 2}, {Mixed, 2}, {Empty, 1}, {Mixed, 3}, {Full, 1},
    743               {Mixed, 1}, {Full, 2}, {Mixed, 3}, {Full, 2}, {Mixed, 4},
    744               {Empty, 5}, {Mixed, 6}, {Full, 4}, {Mixed, 1}, {Full, 4},
    745               {Mixed, 4}, {Empty, 88}, {Full, 1}, {Mixed, 1}, {Empty, 22},
    746               {Full, 2}, {Mixed, 1}, {Empty, 68}, {Mixed, 1}, {Empty, 6},
    747               {Mixed, 1}, {Empty, 4}, {Full, 4}, {Mixed, 1}, {Full, 3},
    748               {Mixed, 1}, {Full, 1}, {Mixed, 2}, {Full, 1}, {Mixed, 3},
    749               {Empty, 9}, {Mixed, 2}, {Full, 1}, {Mixed, 1}, {Empty, 24},
    750               {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Empty, 56}, {Full, 1},
    751               {Mixed, 3}, {Full, 3}, {Mixed, 1}, {Full, 1}, {Mixed, 1},
    752               {Empty, 968}, {Full, 1}, {Mixed, 2}, {Empty, 4}, {Mixed, 1},
    753               {Full, 1}, {Mixed, 3}, {Empty, 28}, {Mixed, 2}, {Full, 2},
    754               {Empty, 634}, {Mixed, 1}, {Empty, 32}, {Mixed, 2},
    755               {Empty, 37}, {Full, 2}, {Mixed, 1}, {Empty, 2}, {Mixed, 3},
    756               {Empty, 60}, {Full, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 1},
    757               {Empty, 93}, {Full, 2}, {Empty, 1665}, {Full, 2}, {Mixed, 1},
    758               {Empty, 30901}},
    759              {0x07fffffe, 0x07fffffe, 0x00200000, 0xff7fffff, 0xff7fffff,
    760               0xfeffffff, 0xf7ffdfff, 0xb3fff3ff, 0xfffffff0, 0xfc0ffffd,
    761               0x1adfffff, 0x20269f6b, 0x60041f89, 0x00000020, 0xb8cf0000,
    762               0xffffd740, 0xfffffffb, 0xffe3ffff, 0xefbfffff, 0xfffffc03,
    763               0xfffeffff, 0x007fffff, 0xfffffffe, 0x000000ff, 0x000020bf,
    764               0x3f3fffff, 0x000001ff, 0x22000000, 0x4fffffff, 0x3f3fffff,
    765               0xaaff3f3f, 0x3fffffff, 0x5fdfffff, 0x0fcf1fdc, 0x1fdc1fff,
    766               0x00040c40, 0x00004000, 0x00000018, 0xffc00000, 0x000003ff,
    767               0xffff7fff, 0x7fffffff, 0xc06dffff, 0x000c780f, 0x000020bf,
    768               0x00003fff, 0x0fffffff, 0xfffcfffc, 0xfe00ffff, 0xffcf38ff,
    769               0x00ff7fff, 0x00080000, 0xffff0000, 0x00f8007f, 0x07fffffe,
    770               0x07fffffe, 0x0000ffff, 0xffff0000, 0xff0fffff, 0x0fffffff,
    771               0x0007ffff, 0x0007ffff, 0x0000000f}};
    772         static BinaryPropertyObject property_object{CWCM, codepoint_set};
     762
     763
     764        namespace {
     765        const static UnicodeSet::run_t __codepoint_set_runs[] = {
     766        {Empty, 2}, {Mixed, 2}, {Empty, 1}, {Mixed, 3}, {Full, 1},
     767        {Mixed, 1}, {Full, 2}, {Mixed, 3}, {Full, 2}, {Mixed, 4},
     768        {Empty, 5}, {Mixed, 6}, {Full, 4}, {Mixed, 1}, {Full, 4},
     769        {Mixed, 4}, {Empty, 88}, {Full, 1}, {Mixed, 1}, {Empty, 22},
     770        {Full, 2}, {Mixed, 1}, {Empty, 68}, {Mixed, 1}, {Empty, 6},
     771        {Mixed, 1}, {Empty, 4}, {Full, 4}, {Mixed, 1}, {Full, 3},
     772        {Mixed, 1}, {Full, 1}, {Mixed, 2}, {Full, 1}, {Mixed, 3},
     773        {Empty, 9}, {Mixed, 2}, {Full, 1}, {Mixed, 1}, {Empty, 24},
     774        {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Empty, 56}, {Full, 1},
     775        {Mixed, 3}, {Full, 3}, {Mixed, 1}, {Full, 1}, {Mixed, 1},
     776        {Empty, 968}, {Full, 1}, {Mixed, 2}, {Empty, 4}, {Mixed, 1},
     777        {Full, 1}, {Mixed, 3}, {Empty, 28}, {Mixed, 2}, {Full, 2},
     778        {Empty, 634}, {Mixed, 1}, {Empty, 32}, {Mixed, 2}, {Empty, 37},
     779        {Full, 2}, {Mixed, 1}, {Empty, 2}, {Mixed, 3}, {Empty, 60},
     780        {Full, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Empty, 93},
     781        {Full, 2}, {Empty, 1665}, {Full, 2}, {Mixed, 1}, {Empty, 30901}};
     782        const static UnicodeSet::bitquad_t  __codepoint_set_quads[] = {
     783        0x07fffffe, 0x07fffffe, 0x00200000, 0xff7fffff, 0xff7fffff,
     784        0xfeffffff, 0xf7ffdfff, 0xb3fff3ff, 0xfffffff0, 0xfc0ffffd,
     785        0x1adfffff, 0x20269f6b, 0x60041f89, 0x00000020, 0xb8cf0000,
     786        0xffffd740, 0xfffffffb, 0xffe3ffff, 0xefbfffff, 0xfffffc03,
     787        0xfffeffff, 0x007fffff, 0xfffffffe, 0x000000ff, 0x000020bf,
     788        0x3f3fffff, 0x000001ff, 0x22000000, 0x4fffffff, 0x3f3fffff,
     789        0xaaff3f3f, 0x3fffffff, 0x5fdfffff, 0x0fcf1fdc, 0x1fdc1fff,
     790        0x00040c40, 0x00004000, 0x00000018, 0xffc00000, 0x000003ff,
     791        0xffff7fff, 0x7fffffff, 0xc06dffff, 0x000c780f, 0x000020bf,
     792        0x00003fff, 0x0fffffff, 0xfffcfffc, 0xfe00ffff, 0xffcf38ff,
     793        0x00ff7fff, 0x00080000, 0xffff0000, 0x00f8007f, 0x07fffffe,
     794        0x07fffffe, 0x0000ffff, 0xffff0000, 0xff0fffff, 0x0fffffff,
     795        0x0007ffff, 0x0007ffff, 0x0000000f};
     796        }
     797
     798        const static UnicodeSet codepoint_set{const_cast<UnicodeSet::run_t *>(__codepoint_set_runs), 80, 0, const_cast<UnicodeSet::bitquad_t *>(__codepoint_set_quads), 63, 0};
     799
     800        static BinaryPropertyObject property_object{CWCM, std::move(codepoint_set)};
    773801    }
    774802    namespace CWL_ns {
     
    922950        [ff21, ff3a], [10400, 10427], [104b0, 104d3], [10c80, 10cb2],
    923951        [118a0, 118bf], [1e900, 1e921]**/
    924         const UnicodeSet codepoint_set
    925             {{{Empty, 2}, {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Empty, 1},
    926               {Mixed, 11}, {Empty, 8}, {Mixed, 5}, {Full, 1}, {Mixed, 1},
    927               {Empty, 1}, {Mixed, 8}, {Empty, 90}, {Full, 1}, {Mixed, 1},
    928               {Empty, 22}, {Full, 2}, {Mixed, 1}, {Empty, 80}, {Mixed, 16},
    929               {Empty, 9}, {Mixed, 1}, {Empty, 1}, {Mixed, 2}, {Empty, 24},
    930               {Mixed, 2}, {Empty, 57}, {Full, 1}, {Mixed, 1}, {Empty, 1},
    931               {Mixed, 5}, {Empty, 970}, {Mixed, 3}, {Empty, 4}, {Mixed, 5},
    932               {Empty, 699}, {Mixed, 1}, {Empty, 38}, {Full, 1}, {Mixed, 1},
    933               {Empty, 3}, {Mixed, 2}, {Empty, 61}, {Full, 1}, {Mixed, 1},
    934               {Empty, 95}, {Full, 1}, {Empty, 1666}, {Full, 1}, {Mixed, 1},
    935               {Empty, 30902}},
    936              {0x07fffffe, 0x7f7fffff, 0x55555555, 0xaa555555, 0x555554aa,
    937               0x2b555555, 0xb1dbced6, 0x11aed2d5, 0x4aaaadb0, 0x55d65555,
    938               0x55555555, 0x6c055555, 0x0000557a, 0x80450000, 0xfffed740,
    939               0x00000ffb, 0x55008000, 0xe6905555, 0x0000ffff, 0x55555555,
    940               0x55555401, 0x55555555, 0x55552aab, 0x55555555, 0x55555555,
    941               0xfffe5555, 0x007fffff, 0x000020bf, 0x003fffff, 0x55555555,
    942               0x55555555, 0x55555555, 0x55555555, 0x40155555, 0x55555555,
    943               0x55555555, 0x55555555, 0x3f00ff00, 0xff00ff00, 0xaa003f00,
    944               0x0000ff00, 0xff00ff00, 0x1f00ff00, 0x0f001f00, 0x1f001f00,
    945               0x00040c40, 0x0000ffff, 0x00000008, 0xffc00000, 0x0000ffff,
    946               0x00007fff, 0xc025ea9d, 0x55555555, 0x55555555, 0x55555555,
    947               0x00042805, 0x55555555, 0x00001555, 0x05555555, 0x55545554,
    948               0x55555555, 0x6a005555, 0x55452855, 0x005f7d55, 0x07fffffe,
    949               0x000000ff, 0xffff0000, 0x000fffff, 0x0007ffff, 0x00000003}};
    950         static BinaryPropertyObject property_object{CWL, codepoint_set};
     952
     953
     954        namespace {
     955        const static UnicodeSet::run_t __codepoint_set_runs[] = {
     956        {Empty, 2}, {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Empty, 1},
     957        {Mixed, 11}, {Empty, 8}, {Mixed, 5}, {Full, 1}, {Mixed, 1},
     958        {Empty, 1}, {Mixed, 8}, {Empty, 90}, {Full, 1}, {Mixed, 1},
     959        {Empty, 22}, {Full, 2}, {Mixed, 1}, {Empty, 80}, {Mixed, 16},
     960        {Empty, 9}, {Mixed, 1}, {Empty, 1}, {Mixed, 2}, {Empty, 24},
     961        {Mixed, 2}, {Empty, 57}, {Full, 1}, {Mixed, 1}, {Empty, 1},
     962        {Mixed, 5}, {Empty, 970}, {Mixed, 3}, {Empty, 4}, {Mixed, 5},
     963        {Empty, 699}, {Mixed, 1}, {Empty, 38}, {Full, 1}, {Mixed, 1},
     964        {Empty, 3}, {Mixed, 2}, {Empty, 61}, {Full, 1}, {Mixed, 1},
     965        {Empty, 95}, {Full, 1}, {Empty, 1666}, {Full, 1}, {Mixed, 1},
     966        {Empty, 30902}};
     967        const static UnicodeSet::bitquad_t  __codepoint_set_quads[] = {
     968        0x07fffffe, 0x7f7fffff, 0x55555555, 0xaa555555, 0x555554aa,
     969        0x2b555555, 0xb1dbced6, 0x11aed2d5, 0x4aaaadb0, 0x55d65555,
     970        0x55555555, 0x6c055555, 0x0000557a, 0x80450000, 0xfffed740,
     971        0x00000ffb, 0x55008000, 0xe6905555, 0x0000ffff, 0x55555555,
     972        0x55555401, 0x55555555, 0x55552aab, 0x55555555, 0x55555555,
     973        0xfffe5555, 0x007fffff, 0x000020bf, 0x003fffff, 0x55555555,
     974        0x55555555, 0x55555555, 0x55555555, 0x40155555, 0x55555555,
     975        0x55555555, 0x55555555, 0x3f00ff00, 0xff00ff00, 0xaa003f00,
     976        0x0000ff00, 0xff00ff00, 0x1f00ff00, 0x0f001f00, 0x1f001f00,
     977        0x00040c40, 0x0000ffff, 0x00000008, 0xffc00000, 0x0000ffff,
     978        0x00007fff, 0xc025ea9d, 0x55555555, 0x55555555, 0x55555555,
     979        0x00042805, 0x55555555, 0x00001555, 0x05555555, 0x55545554,
     980        0x55555555, 0x6a005555, 0x55452855, 0x005f7d55, 0x07fffffe,
     981        0x000000ff, 0xffff0000, 0x000fffff, 0x0007ffff, 0x00000003};
     982        }
     983
     984        const static UnicodeSet codepoint_set{const_cast<UnicodeSet::run_t *>(__codepoint_set_runs), 51, 0, const_cast<UnicodeSet::bitquad_t *>(__codepoint_set_quads), 70, 0};
     985
     986        static BinaryPropertyObject property_object{CWL, std::move(codepoint_set)};
    951987    }
    952988    namespace CWT_ns {
     
    11041140        [fb00, fb06], [fb13, fb17], [ff41, ff5a], [10428, 1044f],
    11051141        [104d8, 104fb], [10cc0, 10cf2], [118c0, 118df], [1e922, 1e943]**/
    1106         const UnicodeSet codepoint_set
    1107             {{{Empty, 3}, {Mixed, 1}, {Empty, 1}, {Mixed, 16}, {Empty, 5},
    1108               {Mixed, 6}, {Empty, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 7},
    1109               {Empty, 1}, {Mixed, 2}, {Empty, 114}, {Mixed, 1}, {Empty, 68},
    1110               {Mixed, 1}, {Empty, 6}, {Mixed, 1}, {Empty, 4}, {Mixed, 16},
    1111               {Empty, 10}, {Mixed, 3}, {Empty, 25}, {Mixed, 2}, {Empty, 57},
    1112               {Mixed, 7}, {Full, 1}, {Mixed, 1}, {Empty, 968}, {Mixed, 3},
    1113               {Empty, 4}, {Mixed, 5}, {Empty, 28}, {Mixed, 2}, {Full, 2},
    1114               {Empty, 634}, {Mixed, 1}, {Empty, 33}, {Mixed, 1},
    1115               {Empty, 38}, {Mixed, 2}, {Empty, 3}, {Mixed, 2}, {Empty, 62},
    1116               {Full, 1}, {Mixed, 1}, {Empty, 94}, {Full, 1}, {Empty, 1666},
    1117               {Mixed, 2}, {Empty, 30901}},
    1118              {0x07fffffe, 0x00200000, 0x80000000, 0xff7fffff, 0xaaaaaaaa,
    1119               0x54aaaaaa, 0xaaaaab55, 0xd4aaaaaa, 0x46241129, 0xa251212a,
    1120               0xb55556d0, 0xaa2baaaa, 0xaaaaaaaa, 0x900aaaa8, 0x1adfaa85,
    1121               0x20269f6b, 0x60041f89, 0x00000020, 0x388a0000, 0x00010000,
    1122               0xfffff000, 0xaae37fff, 0x092faaaa, 0xffff0000, 0xaaaaaaaa,
    1123               0xaaaaa802, 0xaaaaaaaa, 0xaaaad554, 0xaaaaaaaa, 0xaaaaaaaa,
    1124               0x0000aaaa, 0xfffffffe, 0x000000ff, 0x3f000000, 0x000001ff,
    1125               0x22000000, 0xaaaaaaaa, 0xaaaaaaaa, 0xaaaaaaaa, 0xaaaaaaaa,
    1126               0x0feaaaaa, 0xaaaaaaaa, 0xaaaaaaaa, 0xaaaaaaaa, 0x003f00ff,
    1127               0x00ff00ff, 0x00ff003f, 0x3fff00ff, 0x00ff00ff, 0x40df00ff,
    1128               0x00cf00dc, 0x00dc00ff, 0x00004000, 0xffff0000, 0x00000010,
    1129               0xffff0000, 0x000003ff, 0xffff0000, 0x7fffffff, 0x00481562,
    1130               0xaaaaaaaa, 0xaaaaaaaa, 0xaaaaaaaa, 0x0008500a, 0x000020bf,
    1131               0xaaaaaaaa, 0x00002aaa, 0x0aaaaaaa, 0xaaa8aaa8, 0xaaaaaaaa,
    1132               0x9400aaaa, 0xaa8a10aa, 0x00a002aa, 0x00080000, 0xffff0000,
    1133               0x00f8007f, 0x07fffffe, 0xffffff00, 0x0000ffff, 0xff000000,
    1134               0x0fffffff, 0x0007ffff, 0xfffffffc, 0x0000000f}};
    1135         static BinaryPropertyObject property_object{CWT, codepoint_set};
     1142
     1143
     1144        namespace {
     1145        const static UnicodeSet::run_t __codepoint_set_runs[] = {
     1146        {Empty, 3}, {Mixed, 1}, {Empty, 1}, {Mixed, 16}, {Empty, 5},
     1147        {Mixed, 6}, {Empty, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 7},
     1148        {Empty, 1}, {Mixed, 2}, {Empty, 114}, {Mixed, 1}, {Empty, 68},
     1149        {Mixed, 1}, {Empty, 6}, {Mixed, 1}, {Empty, 4}, {Mixed, 16},
     1150        {Empty, 10}, {Mixed, 3}, {Empty, 25}, {Mixed, 2}, {Empty, 57},
     1151        {Mixed, 7}, {Full, 1}, {Mixed, 1}, {Empty, 968}, {Mixed, 3},
     1152        {Empty, 4}, {Mixed, 5}, {Empty, 28}, {Mixed, 2}, {Full, 2},
     1153        {Empty, 634}, {Mixed, 1}, {Empty, 33}, {Mixed, 1}, {Empty, 38},
     1154        {Mixed, 2}, {Empty, 3}, {Mixed, 2}, {Empty, 62}, {Full, 1},
     1155        {Mixed, 1}, {Empty, 94}, {Full, 1}, {Empty, 1666}, {Mixed, 2},
     1156        {Empty, 30901}};
     1157        const static UnicodeSet::bitquad_t  __codepoint_set_quads[] = {
     1158        0x07fffffe, 0x00200000, 0x80000000, 0xff7fffff, 0xaaaaaaaa,
     1159        0x54aaaaaa, 0xaaaaab55, 0xd4aaaaaa, 0x46241129, 0xa251212a,
     1160        0xb55556d0, 0xaa2baaaa, 0xaaaaaaaa, 0x900aaaa8, 0x1adfaa85,
     1161        0x20269f6b, 0x60041f89, 0x00000020, 0x388a0000, 0x00010000,
     1162        0xfffff000, 0xaae37fff, 0x092faaaa, 0xffff0000, 0xaaaaaaaa,
     1163        0xaaaaa802, 0xaaaaaaaa, 0xaaaad554, 0xaaaaaaaa, 0xaaaaaaaa,
     1164        0x0000aaaa, 0xfffffffe, 0x000000ff, 0x3f000000, 0x000001ff,
     1165        0x22000000, 0xaaaaaaaa, 0xaaaaaaaa, 0xaaaaaaaa, 0xaaaaaaaa,
     1166        0x0feaaaaa, 0xaaaaaaaa, 0xaaaaaaaa, 0xaaaaaaaa, 0x003f00ff,
     1167        0x00ff00ff, 0x00ff003f, 0x3fff00ff, 0x00ff00ff, 0x40df00ff,
     1168        0x00cf00dc, 0x00dc00ff, 0x00004000, 0xffff0000, 0x00000010,
     1169        0xffff0000, 0x000003ff, 0xffff0000, 0x7fffffff, 0x00481562,
     1170        0xaaaaaaaa, 0xaaaaaaaa, 0xaaaaaaaa, 0x0008500a, 0x000020bf,
     1171        0xaaaaaaaa, 0x00002aaa, 0x0aaaaaaa, 0xaaa8aaa8, 0xaaaaaaaa,
     1172        0x9400aaaa, 0xaa8a10aa, 0x00a002aa, 0x00080000, 0xffff0000,
     1173        0x00f8007f, 0x07fffffe, 0xffffff00, 0x0000ffff, 0xff000000,
     1174        0x0fffffff, 0x0007ffff, 0xfffffffc, 0x0000000f};
     1175        }
     1176
     1177        const static UnicodeSet codepoint_set{const_cast<UnicodeSet::run_t *>(__codepoint_set_runs), 51, 0, const_cast<UnicodeSet::bitquad_t *>(__codepoint_set_quads), 84, 0};
     1178
     1179        static BinaryPropertyObject property_object{CWT, std::move(codepoint_set)};
    11361180    }
    11371181    namespace CWU_ns {
     
    12891333        [fb13, fb17], [ff41, ff5a], [10428, 1044f], [104d8, 104fb],
    12901334        [10cc0, 10cf2], [118c0, 118df], [1e922, 1e943]**/
    1291         const UnicodeSet codepoint_set
    1292             {{{Empty, 3}, {Mixed, 1}, {Empty, 1}, {Mixed, 16}, {Empty, 5},
    1293               {Mixed, 6}, {Empty, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 7},
    1294               {Empty, 1}, {Mixed, 2}, {Empty, 114}, {Mixed, 1}, {Empty, 68},
    1295               {Mixed, 1}, {Empty, 6}, {Mixed, 1}, {Empty, 4}, {Mixed, 12},
    1296               {Full, 1}, {Mixed, 3}, {Empty, 10}, {Mixed, 3}, {Empty, 25},
    1297               {Mixed, 2}, {Empty, 57}, {Mixed, 7}, {Full, 1}, {Mixed, 1},
    1298               {Empty, 968}, {Mixed, 3}, {Empty, 4}, {Mixed, 5}, {Empty, 28},
    1299               {Mixed, 2}, {Full, 2}, {Empty, 634}, {Mixed, 1}, {Empty, 33},
    1300               {Mixed, 1}, {Empty, 38}, {Mixed, 2}, {Empty, 3}, {Mixed, 2},
    1301               {Empty, 62}, {Full, 1}, {Mixed, 1}, {Empty, 94}, {Full, 1},
    1302               {Empty, 1666}, {Mixed, 2}, {Empty, 30901}},
    1303              {0x07fffffe, 0x00200000, 0x80000000, 0xff7fffff, 0xaaaaaaaa,
    1304               0x54aaaaaa, 0xaaaaab55, 0xd4aaaaaa, 0x46241129, 0xa251212a,
    1305               0xb5555b60, 0xaa2daaaa, 0xaaaaaaaa, 0x900aaaa8, 0x1adfaa85,
    1306               0x20269f6b, 0x60041f89, 0x00000020, 0x388a0000, 0x00010000,
    1307               0xfffff000, 0xaae37fff, 0x092faaaa, 0xffff0000, 0xaaaaaaaa,
    1308               0xaaaaa802, 0xaaaaaaaa, 0xaaaad554, 0xaaaaaaaa, 0xaaaaaaaa,
    1309               0x0000aaaa, 0xfffffffe, 0x000000ff, 0x3f000000, 0x000001ff,
    1310               0x22000000, 0xaaaaaaaa, 0xaaaaaaaa, 0xaaaaaaaa, 0xaaaaaaaa,
    1311               0x0feaaaaa, 0xaaaaaaaa, 0xaaaaaaaa, 0xaaaaaaaa, 0x003f00ff,
    1312               0x00ff00ff, 0x00ff003f, 0x3fff00ff, 0x50dfffff, 0x00cf10dc,
    1313               0x10dc00ff, 0x00004000, 0xffff0000, 0x00000010, 0xffff0000,
    1314               0x000003ff, 0xffff0000, 0x7fffffff, 0x00481562, 0xaaaaaaaa,
    1315               0xaaaaaaaa, 0xaaaaaaaa, 0x0008500a, 0x000020bf, 0xaaaaaaaa,
    1316               0x00002aaa, 0x0aaaaaaa, 0xaaa8aaa8, 0xaaaaaaaa, 0x9400aaaa,
    1317               0xaa8a10aa, 0x00a002aa, 0x00080000, 0xffff0000, 0x00f8007f,
    1318               0x07fffffe, 0xffffff00, 0x0000ffff, 0xff000000, 0x0fffffff,
    1319               0x0007ffff, 0xfffffffc, 0x0000000f}};
    1320         static BinaryPropertyObject property_object{CWU, codepoint_set};
     1335
     1336
     1337        namespace {
     1338        const static UnicodeSet::run_t __codepoint_set_runs[] = {
     1339        {Empty, 3}, {Mixed, 1}, {Empty, 1}, {Mixed, 16}, {Empty, 5},
     1340        {Mixed, 6}, {Empty, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 7},
     1341        {Empty, 1}, {Mixed, 2}, {Empty, 114}, {Mixed, 1}, {Empty, 68},
     1342        {Mixed, 1}, {Empty, 6}, {Mixed, 1}, {Empty, 4}, {Mixed, 12},
     1343        {Full, 1}, {Mixed, 3}, {Empty, 10}, {Mixed, 3}, {Empty, 25},
     1344        {Mixed, 2}, {Empty, 57}, {Mixed, 7}, {Full, 1}, {Mixed, 1},
     1345        {Empty, 968}, {Mixed, 3}, {Empty, 4}, {Mixed, 5}, {Empty, 28},
     1346        {Mixed, 2}, {Full, 2}, {Empty, 634}, {Mixed, 1}, {Empty, 33},
     1347        {Mixed, 1}, {Empty, 38}, {Mixed, 2}, {Empty, 3}, {Mixed, 2},
     1348        {Empty, 62}, {Full, 1}, {Mixed, 1}, {Empty, 94}, {Full, 1},
     1349        {Empty, 1666}, {Mixed, 2}, {Empty, 30901}};
     1350        const static UnicodeSet::bitquad_t  __codepoint_set_quads[] = {
     1351        0x07fffffe, 0x00200000, 0x80000000, 0xff7fffff, 0xaaaaaaaa,
     1352        0x54aaaaaa, 0xaaaaab55, 0xd4aaaaaa, 0x46241129, 0xa251212a,
     1353        0xb5555b60, 0xaa2daaaa, 0xaaaaaaaa, 0x900aaaa8, 0x1adfaa85,
     1354        0x20269f6b, 0x60041f89, 0x00000020, 0x388a0000, 0x00010000,
     1355        0xfffff000, 0xaae37fff, 0x092faaaa, 0xffff0000, 0xaaaaaaaa,
     1356        0xaaaaa802, 0xaaaaaaaa, 0xaaaad554, 0xaaaaaaaa, 0xaaaaaaaa,
     1357        0x0000aaaa, 0xfffffffe, 0x000000ff, 0x3f000000, 0x000001ff,
     1358        0x22000000, 0xaaaaaaaa, 0xaaaaaaaa, 0xaaaaaaaa, 0xaaaaaaaa,
     1359        0x0feaaaaa, 0xaaaaaaaa, 0xaaaaaaaa, 0xaaaaaaaa, 0x003f00ff,
     1360        0x00ff00ff, 0x00ff003f, 0x3fff00ff, 0x50dfffff, 0x00cf10dc,
     1361        0x10dc00ff, 0x00004000, 0xffff0000, 0x00000010, 0xffff0000,
     1362        0x000003ff, 0xffff0000, 0x7fffffff, 0x00481562, 0xaaaaaaaa,
     1363        0xaaaaaaaa, 0xaaaaaaaa, 0x0008500a, 0x000020bf, 0xaaaaaaaa,
     1364        0x00002aaa, 0x0aaaaaaa, 0xaaa8aaa8, 0xaaaaaaaa, 0x9400aaaa,
     1365        0xaa8a10aa, 0x00a002aa, 0x00080000, 0xffff0000, 0x00f8007f,
     1366        0x07fffffe, 0xffffff00, 0x0000ffff, 0xff000000, 0x0fffffff,
     1367        0x0007ffff, 0xfffffffc, 0x0000000f};
     1368        }
     1369
     1370        const static UnicodeSet codepoint_set{const_cast<UnicodeSet::run_t *>(__codepoint_set_runs), 53, 0, const_cast<UnicodeSet::bitquad_t *>(__codepoint_set_quads), 83, 0};
     1371
     1372        static BinaryPropertyObject property_object{CWU, std::move(codepoint_set)};
    13211373    }
    13221374    namespace CASED_ns {
     
    13561408        [1d78a, 1d7a8], [1d7aa, 1d7c2], [1d7c4, 1d7cb], [1e900, 1e943],
    13571409        [1f130, 1f149], [1f150, 1f169], [1f170, 1f189]**/
    1358         const UnicodeSet codepoint_set
    1359             {{{Empty, 2}, {Mixed, 2}, {Empty, 1}, {Mixed, 3}, {Full, 5},
    1360               {Mixed, 2}, {Full, 5}, {Mixed, 4}, {Empty, 2}, {Mixed, 4},
    1361               {Full, 1}, {Mixed, 1}, {Full, 4}, {Mixed, 1}, {Full, 4},
    1362               {Mixed, 4}, {Empty, 88}, {Full, 1}, {Mixed, 1}, {Empty, 22},
    1363               {Full, 2}, {Mixed, 1}, {Empty, 68}, {Mixed, 1}, {Empty, 3},
    1364               {Full, 6}, {Empty, 2}, {Full, 8}, {Mixed, 1}, {Full, 1},
    1365               {Mixed, 2}, {Full, 1}, {Mixed, 3}, {Empty, 3}, {Mixed, 2},
    1366               {Empty, 3}, {Mixed, 3}, {Full, 1}, {Mixed, 1}, {Empty, 24},
    1367               {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Empty, 56}, {Full, 1},
    1368               {Mixed, 2}, {Full, 4}, {Mixed, 1}, {Full, 1}, {Mixed, 1},
    1369               {Empty, 968}, {Full, 1}, {Mixed, 2}, {Empty, 4}, {Mixed, 1},
    1370               {Full, 2}, {Mixed, 2}, {Empty, 1}, {Mixed, 1}, {Empty, 25},
    1371               {Mixed, 3}, {Full, 2}, {Empty, 634}, {Mixed, 1}, {Empty, 32},
    1372               {Mixed, 2}, {Empty, 37}, {Full, 2}, {Mixed, 1}, {Empty, 2},
    1373               {Mixed, 3}, {Empty, 60}, {Full, 1}, {Mixed, 1}, {Full, 1},
    1374               {Mixed, 1}, {Empty, 93}, {Full, 2}, {Empty, 1497}, {Full, 2},
    1375               {Mixed, 1}, {Full, 1}, {Mixed, 3}, {Full, 1}, {Mixed, 3},
    1376               {Full, 10}, {Mixed, 10}, {Empty, 137}, {Full, 2}, {Mixed, 1},
    1377               {Empty, 62}, {Mixed, 4}, {Empty, 30835}},
    1378              {0x07fffffe, 0x07fffffe, 0x04200400, 0xff7fffff, 0xff7fffff,
    1379               0xf7ffffff, 0xfffffff0, 0xffefffff, 0x01ffffff, 0x00000003,
    1380               0x0000001f, 0x00000020, 0xbccf0000, 0xffffd740, 0xfffffffb,
    1381               0xffbfffff, 0xfffffc03, 0xfffeffff, 0x007fffff, 0xfffffffe,
    1382               0x000000ff, 0x000020bf, 0x3f3fffff, 0x000001ff, 0x3f3fffff,
    1383               0xaaff3f3f, 0x3fffffff, 0x5fdfffff, 0x0fcf1fdc, 0x1fdc1fff,
    1384               0x80020000, 0x1fff0000, 0x3e2ffc84, 0xf21fbd50, 0x000043e0,
    1385               0x00000018, 0xffc00000, 0x000003ff, 0xffff7fff, 0x7fffffff,
    1386               0x000c781f, 0x000020bf, 0x00003fff, 0x3fffffff, 0xfffffffc,
    1387               0xffff78ff, 0x00ff7fff, 0x07000000, 0xffff0000, 0xf7ffffff,
    1388               0xffff003f, 0x00f8007f, 0x07fffffe, 0x07fffffe, 0x0000ffff,
    1389               0xffff0000, 0xff0fffff, 0x0fffffff, 0x0007ffff, 0x0007ffff,
    1390               0xffdfffff, 0xdfffffff, 0xebffde64, 0xffffffef, 0xdfdfe7bf,
    1391               0x7bffffff, 0xfffdfc5f, 0xffffff3f, 0xf7fffffd, 0xf7ffffff,
    1392               0xffdfffff, 0xffdfffff, 0xffff7fff, 0xffff7fff, 0xfffffdff,
    1393               0xfffffdff, 0x00000ff7, 0x0000000f, 0xffff0000, 0xffff03ff,
    1394               0xffff03ff, 0x000003ff}};
    1395         static BinaryPropertyObject property_object{Cased, codepoint_set};
     1410
     1411
     1412        namespace {
     1413        const static UnicodeSet::run_t __codepoint_set_runs[] = {
     1414        {Empty, 2}, {Mixed, 2}, {Empty, 1}, {Mixed, 3}, {Full, 5},
     1415        {Mixed, 2}, {Full, 5}, {Mixed, 4}, {Empty, 2}, {Mixed, 4},
     1416        {Full, 1}, {Mixed, 1}, {Full, 4}, {Mixed, 1}, {Full, 4}, {Mixed, 4},
     1417        {Empty, 88}, {Full, 1}, {Mixed, 1}, {Empty, 22}, {Full, 2},
     1418        {Mixed, 1}, {Empty, 68}, {Mixed, 1}, {Empty, 3}, {Full, 6},
     1419        {Empty, 2}, {Full, 8}, {Mixed, 1}, {Full, 1}, {Mixed, 2}, {Full, 1},
     1420        {Mixed, 3}, {Empty, 3}, {Mixed, 2}, {Empty, 3}, {Mixed, 3},
     1421        {Full, 1}, {Mixed, 1}, {Empty, 24}, {Mixed, 1}, {Full, 1},
     1422        {Mixed, 1}, {Empty, 56}, {Full, 1}, {Mixed, 2}, {Full, 4},
     1423        {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Empty, 968}, {Full, 1},
     1424        {Mixed, 2}, {Empty, 4}, {Mixed, 1}, {Full, 2}, {Mixed, 2},
     1425        {Empty, 1}, {Mixed, 1}, {Empty, 25}, {Mixed, 3}, {Full, 2},
     1426        {Empty, 634}, {Mixed, 1}, {Empty, 32}, {Mixed, 2}, {Empty, 37},
     1427        {Full, 2}, {Mixed, 1}, {Empty, 2}, {Mixed, 3}, {Empty, 60},
     1428        {Full, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Empty, 93},
     1429        {Full, 2}, {Empty, 1497}, {Full, 2}, {Mixed, 1}, {Full, 1},
     1430        {Mixed, 3}, {Full, 1}, {Mixed, 3}, {Full, 10}, {Mixed, 10},
     1431        {Empty, 137}, {Full, 2}, {Mixed, 1}, {Empty, 62}, {Mixed, 4},
     1432        {Empty, 30835}};
     1433        const static UnicodeSet::bitquad_t  __codepoint_set_quads[] = {
     1434        0x07fffffe, 0x07fffffe, 0x04200400, 0xff7fffff, 0xff7fffff,
     1435        0xf7ffffff, 0xfffffff0, 0xffefffff, 0x01ffffff, 0x00000003,
     1436        0x0000001f, 0x00000020, 0xbccf0000, 0xffffd740, 0xfffffffb,
     1437        0xffbfffff, 0xfffffc03, 0xfffeffff, 0x007fffff, 0xfffffffe,
     1438        0x000000ff, 0x000020bf, 0x3f3fffff, 0x000001ff, 0x3f3fffff,
     1439        0xaaff3f3f, 0x3fffffff, 0x5fdfffff, 0x0fcf1fdc, 0x1fdc1fff,
     1440        0x80020000, 0x1fff0000, 0x3e2ffc84, 0xf21fbd50, 0x000043e0,
     1441        0x00000018, 0xffc00000, 0x000003ff, 0xffff7fff, 0x7fffffff,
     1442        0x000c781f, 0x000020bf, 0x00003fff, 0x3fffffff, 0xfffffffc,
     1443        0xffff78ff, 0x00ff7fff, 0x07000000, 0xffff0000, 0xf7ffffff,
     1444        0xffff003f, 0x00f8007f, 0x07fffffe, 0x07fffffe, 0x0000ffff,
     1445        0xffff0000, 0xff0fffff, 0x0fffffff, 0x0007ffff, 0x0007ffff,
     1446        0xffdfffff, 0xdfffffff, 0xebffde64, 0xffffffef, 0xdfdfe7bf,
     1447        0x7bffffff, 0xfffdfc5f, 0xffffff3f, 0xf7fffffd, 0xf7ffffff,
     1448        0xffdfffff, 0xffdfffff, 0xffff7fff, 0xffff7fff, 0xfffffdff,
     1449        0xfffffdff, 0x00000ff7, 0x0000000f, 0xffff0000, 0xffff03ff,
     1450        0xffff03ff, 0x000003ff};
     1451        }
     1452
     1453        const static UnicodeSet codepoint_set{const_cast<UnicodeSet::run_t *>(__codepoint_set_runs), 93, 0, const_cast<UnicodeSet::bitquad_t *>(__codepoint_set_quads), 82, 0};
     1454
     1455        static BinaryPropertyObject property_object{Cased, std::move(codepoint_set)};
    13961456    }
    13971457    namespace DI_ns {
     
    14021462        [ffa0, ffa0], [fff0, fff8], [1bca0, 1bca3], [1d173, 1d17a],
    14031463        [e0000, e0fff]**/
    1404         const UnicodeSet codepoint_set
    1405             {{{Empty, 5}, {Mixed, 1}, {Empty, 20}, {Mixed, 1}, {Empty, 21},
    1406               {Mixed, 1}, {Empty, 89}, {Mixed, 2}, {Empty, 49}, {Mixed, 1},
    1407               {Empty, 2}, {Mixed, 1}, {Empty, 63}, {Mixed, 2}, {Empty, 1},
    1408               {Mixed, 1}, {Empty, 135}, {Mixed, 1}, {Empty, 1636},
    1409               {Mixed, 1}, {Empty, 6}, {Mixed, 1}, {Empty, 5}, {Mixed, 1},
    1410               {Empty, 1}, {Mixed, 1}, {Empty, 1509}, {Mixed, 1},
    1411               {Empty, 165}, {Mixed, 1}, {Empty, 24948}, {Full, 128},
    1412               {Empty, 6016}},
    1413              {0x00002000, 0x00008000, 0x10000000, 0x80000000, 0x00000001,
    1414               0x00300000, 0x00007800, 0x0000f800, 0x00007c00, 0x0000ffff,
    1415               0x00000010, 0x0000ffff, 0x80000000, 0x00000001, 0x01ff0000,
    1416               0x0000000f, 0x07f80000}};
    1417         static BinaryPropertyObject property_object{DI, codepoint_set};
     1464
     1465
     1466        namespace {
     1467        const static UnicodeSet::run_t __codepoint_set_runs[] = {
     1468        {Empty, 5}, {Mixed, 1}, {Empty, 20}, {Mixed, 1}, {Empty, 21},
     1469        {Mixed, 1}, {Empty, 89}, {Mixed, 2}, {Empty, 49}, {Mixed, 1},
     1470        {Empty, 2}, {Mixed, 1}, {Empty, 63}, {Mixed, 2}, {Empty, 1},
     1471        {Mixed, 1}, {Empty, 135}, {Mixed, 1}, {Empty, 1636}, {Mixed, 1},
     1472        {Empty, 6}, {Mixed, 1}, {Empty, 5}, {Mixed, 1}, {Empty, 1},
     1473        {Mixed, 1}, {Empty, 1509}, {Mixed, 1}, {Empty, 165}, {Mixed, 1},
     1474        {Empty, 24948}, {Full, 128}, {Empty, 6016}};
     1475        const static UnicodeSet::bitquad_t  __codepoint_set_quads[] = {
     1476        0x00002000, 0x00008000, 0x10000000, 0x80000000, 0x00000001,
     1477        0x00300000, 0x00007800, 0x0000f800, 0x00007c00, 0x0000ffff,
     1478        0x00000010, 0x0000ffff, 0x80000000, 0x00000001, 0x01ff0000,
     1479        0x0000000f, 0x07f80000};
     1480        }
     1481
     1482        const static UnicodeSet codepoint_set{const_cast<UnicodeSet::run_t *>(__codepoint_set_runs), 33, 0, const_cast<UnicodeSet::bitquad_t *>(__codepoint_set_quads), 17, 0};
     1483
     1484        static BinaryPropertyObject property_object{DI, std::move(codepoint_set)};
    14181485    }
    14191486    namespace GR_BASE_ns {
     
    16171684        [1f9d0, 1f9e6], [20000, 2a6d6], [2a700, 2b734], [2b740, 2b81d],
    16181685        [2b820, 2cea1], [2ceb0, 2ebe0], [2f800, 2fa1d]**/
    1619         const UnicodeSet codepoint_set
    1620             {{{Empty, 1}, {Full, 2}, {Mixed, 1}, {Empty, 1}, {Mixed, 1},
    1621               {Full, 18}, {Empty, 3}, {Mixed, 3}, {Full, 6}, {Mixed, 1},
    1622               {Full, 4}, {Mixed, 8}, {Full, 1}, {Mixed, 2}, {Full, 2},
    1623               {Mixed, 5}, {Full, 2}, {Mixed, 1}, {Full, 1}, {Mixed, 5},
    1624               {Empty, 1}, {Mixed, 1}, {Empty, 2}, {Mixed, 43}, {Empty, 1},
    1625               {Mixed, 3}, {Empty, 1}, {Mixed, 7}, {Empty, 1}, {Full, 1},
    1626               {Mixed, 4}, {Full, 1}, {Mixed, 1}, {Full, 11}, {Mixed, 1},
    1627               {Full, 1}, {Mixed, 3}, {Full, 1}, {Mixed, 1}, {Full, 1},
    1628               {Mixed, 3}, {Full, 2}, {Mixed, 1}, {Full, 20}, {Mixed, 1},
    1629               {Full, 2}, {Mixed, 5}, {Full, 1}, {Mixed, 4}, {Full, 2},
    1630               {Mixed, 3}, {Full, 1}, {Mixed, 5}, {Full, 1}, {Mixed, 2},
    1631               {Full, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 4}, {Empty, 2},
    1632               {Mixed, 6}, {Full, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 2},
    1633               {Full, 1}, {Mixed, 1}, {Empty, 1}, {Mixed, 2}, {Full, 6},
    1634               {Empty, 2}, {Full, 8}, {Mixed, 1}, {Full, 1}, {Mixed, 2},
    1635               {Full, 1}, {Mixed, 5}, {Full, 1}, {Mixed, 2}, {Full, 1},
    1636               {Empty, 2}, {Full, 4}, {Mixed, 1}, {Full, 20}, {Mixed, 2},
    1637               {Full, 56}, {Mixed, 5}, {Full, 1}, {Mixed, 2}, {Full, 4},
    1638               {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 4},
    1639               {Empty, 1}, {Full, 2}, {Mixed, 1}, {Empty, 1}, {Mixed, 1},
    1640               {Full, 2}, {Mixed, 1}, {Full, 6}, {Mixed, 2}, {Full, 1},
    1641               {Mixed, 2}, {Full, 1}, {Mixed, 1}, {Full, 3}, {Mixed, 2},
    1642               {Full, 2}, {Mixed, 2}, {Full, 1}, {Mixed, 2}, {Full, 6},
    1643               {Mixed, 1}, {Full, 213}, {Mixed, 1}, {Full, 657}, {Mixed, 1},
    1644               {Full, 36}, {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Full, 10},
    1645               {Mixed, 1}, {Full, 1}, {Mixed, 2}, {Full, 2}, {Mixed, 1},
    1646               {Full, 5}, {Mixed, 1}, {Empty, 1}, {Mixed, 3}, {Full, 1},
    1647               {Mixed, 1}, {Full, 2}, {Mixed, 2}, {Full, 1}, {Mixed, 7},
    1648               {Full, 1}, {Mixed, 3}, {Full, 1}, {Mixed, 5}, {Full, 1},
    1649               {Mixed, 1}, {Full, 3}, {Mixed, 1}, {Full, 349}, {Mixed, 3},
    1650               {Empty, 264}, {Full, 11}, {Mixed, 1}, {Full, 2}, {Mixed, 1},
    1651               {Empty, 1}, {Mixed, 3}, {Full, 3}, {Mixed, 1}, {Full, 11},
    1652               {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 6},
    1653               {Full, 3}, {Mixed, 2}, {Full, 3}, {Mixed, 7}, {Empty, 1},
    1654               {Full, 3}, {Mixed, 3}, {Full, 2}, {Mixed, 4}, {Empty, 4},
    1655               {Mixed, 1}, {Full, 1}, {Mixed, 2}, {Full, 1}, {Mixed, 4},
    1656               {Full, 1}, {Mixed, 1}, {Empty, 1}, {Full, 4}, {Mixed, 4},
    1657               {Full, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Empty, 4},
    1658               {Full, 9}, {Mixed, 3}, {Empty, 4}, {Mixed, 3}, {Full, 1},
    1659               {Mixed, 2}, {Empty, 1}, {Mixed, 3}, {Empty, 2}, {Full, 1},
    1660               {Mixed, 2}, {Full, 1}, {Mixed, 3}, {Full, 2}, {Empty, 1},
    1661               {Full, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 5}, {Empty, 2},
    1662               {Full, 2}, {Mixed, 1}, {Empty, 1}, {Full, 1}, {Mixed, 1},
    1663               {Full, 1}, {Mixed, 1}, {Empty, 11}, {Mixed, 1}, {Empty, 12},
    1664               {Mixed, 18}, {Empty, 2}, {Mixed, 8}, {Empty, 4}, {Full, 1},
    1665               {Mixed, 2}, {Empty, 1}, {Full, 1}, {Mixed, 2}, {Empty, 5},
    1666               {Full, 1}, {Mixed, 2}, {Empty, 1}, {Full, 1}, {Mixed, 3},
    1667               {Full, 1}, {Mixed, 2}, {Empty, 1}, {Mixed, 2}, {Empty, 11},
    1668               {Full, 2}, {Mixed, 1}, {Empty, 8}, {Mixed, 3}, {Full, 1},
    1669               {Mixed, 2}, {Full, 1}, {Mixed, 1}, {Empty, 8}, {Mixed, 6},
    1670               {Empty, 2}, {Mixed, 3}, {Empty, 21}, {Full, 28}, {Mixed, 1},
    1671               {Empty, 3}, {Full, 3}, {Mixed, 1}, {Full, 6}, {Mixed, 1},
    1672               {Empty, 85}, {Full, 33}, {Mixed, 1}, {Empty, 126}, {Full, 18},
    1673               {Mixed, 1}, {Empty, 269}, {Full, 17}, {Mixed, 3}, {Empty, 2},
    1674               {Mixed, 2}, {Full, 1}, {Mixed, 4}, {Empty, 27}, {Full, 2},
    1675               {Mixed, 3}, {Empty, 2}, {Mixed, 1}, {Full, 191}, {Mixed, 1},
    1676               {Full, 23}, {Mixed, 1}, {Empty, 296}, {Full, 8}, {Mixed, 1},
    1677               {Empty, 2}, {Mixed, 1}, {Full, 11}, {Mixed, 1}, {Empty, 72},
    1678               {Full, 3}, {Mixed, 2}, {Empty, 155}, {Full, 7}, {Mixed, 1},
    1679               {Full, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 3}, {Full, 1},
    1680               {Mixed, 1}, {Full, 2}, {Mixed, 1}, {Empty, 5}, {Full, 2},
    1681               {Mixed, 2}, {Empty, 4}, {Full, 2}, {Mixed, 1}, {Full, 1},
    1682               {Mixed, 3}, {Full, 1}, {Mixed, 3}, {Full, 10}, {Mixed, 1},
    1683               {Full, 8}, {Mixed, 1}, {Full, 17}, {Empty, 1}, {Mixed, 1},
    1684               {Empty, 1}, {Mixed, 2}, {Empty, 107}, {Full, 6}, {Mixed, 1},
    1685               {Empty, 1}, {Full, 2}, {Mixed, 1}, {Empty, 37}, {Mixed, 6},
    1686               {Empty, 1}, {Mixed, 1}, {Empty, 8}, {Full, 1}, {Mixed, 1},
    1687               {Full, 2}, {Mixed, 6}, {Full, 1}, {Mixed, 1}, {Full, 1},
    1688               {Mixed, 1}, {Empty, 1}, {Mixed, 5}, {Empty, 4}, {Full, 30},
    1689               {Mixed, 2}, {Full, 3}, {Mixed, 1}, {Full, 2}, {Mixed, 1},
    1690               {Empty, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Full, 1},
    1691               {Mixed, 2}, {Empty, 2}, {Mixed, 5}, {Empty, 1}, {Mixed, 2},
    1692               {Empty, 48}, {Full, 1334}, {Mixed, 1}, {Empty, 1},
    1693               {Full, 129}, {Mixed, 1}, {Full, 6}, {Mixed, 1}, {Full, 180},
    1694               {Mixed, 1}, {Full, 233}, {Mixed, 1}, {Empty, 96}, {Full, 16},
    1695               {Mixed, 1}, {Empty, 28719}},
    1696              {0x7fffffff, 0xffffdfff, 0xfcff0000, 0xffffd7f0, 0xfffffffb,
    1697               0xfffffc07, 0xfffeffff, 0xfe7fffff, 0xfffffffe, 0x0000e6ff,
    1698               0x40000000, 0xffff0049, 0x001f07ff, 0xc800ffc0, 0x000007ff,
    1699               0xfffeffff, 0x403fffff, 0xffffc260, 0xfffd3fff, 0x0000ffff,
    1700               0xffffe000, 0x0002003f, 0x07f007ff, 0x043fffff, 0x7fff0110,
    1701               0x41ffffff, 0x000007ff, 0x3fdfffff, 0xfffffff8, 0xebffffff,
    1702               0xff01de01, 0xfffffff3, 0xfff99fed, 0xa3c5fdff, 0xb0005981,
    1703               0x3fffffc3, 0xfff987e8, 0xc36dfdff, 0x5e000001, 0x001cffc0,
    1704               0xfffbbfe8, 0xe3edfdff, 0x00011a01, 0x0203ffc3, 0xfff99fec,
    1705               0x23edfdff, 0xb0001981, 0x00ffffc3, 0xd63dc7e8, 0x83ffc718,
    1706               0x00011dc6, 0x07ffffc0, 0xfffddfee, 0x23fffdff, 0x0700001e,
    1707               0xff00ffc3, 0xfffddfed, 0x63effdff, 0x40000d9b, 0x0006ffc3,
    1708               0xfffddfec, 0xa7ffffff, 0xff70ddc1, 0xffffffc3, 0xfc7fffec,
    1709               0x2ffbffff, 0x7f03007f, 0x001cffc0, 0xfffffffe, 0x800dffff,
    1710               0x0fff807f, 0xfef02596, 0x200decae, 0xf3ff005f, 0xfcffffff,
    1711               0xfd5fffff, 0xfffffeff, 0x80001fff, 0x00001f20, 0xc0000000,
    1712               0x07ffdfbf, 0x99021fff, 0x3cffffff, 0xffe1fffe, 0xdfffdf9b,
    1713               0xffff20bf, 0x3d7f3dff, 0xffff3dff, 0x7f3dffff, 0xff7fff3d,
    1714               0xff3dffff, 0x07ffffff, 0x1fffffff, 0x03ffffff, 0x3f3fffff,
    1715               0x1fffffff, 0x01ffffff, 0x0003dfff, 0x0063ffff, 0x0003ffff,
    1716               0x0001dfff, 0xc04fffff, 0x1ff001bf, 0x03ff03ff, 0x03ff07ff,
    1717               0x00ffffff, 0xffffff9f, 0xffff05ff, 0x003fffff, 0x7fffffff,
    1718               0x01fb0e78, 0xfffffff1, 0x001f3fff, 0xffff0fff, 0xc7ff03ff,
    1719               0xc67fffff, 0x00bfffff, 0x0007e01a, 0x03ff03ff, 0x00003fff,
    1720               0xfffffff0, 0xe82fffff, 0xffff0ffb, 0x1ff007ff, 0xfffffffc,
    1721               0xffffc4c3, 0xf00c5cbf, 0xf8300fff, 0xffffe3ff, 0x000001ff,
    1722               0x000800ff, 0x00efde02, 0x3f3fffff, 0xaaff3f3f, 0x3fffffff,
    1723               0xffdfffff, 0xefcfffdf, 0x7fdcffff, 0xffff07ff, 0xffff80ff,
    1724               0xfff30000, 0x1fff7fff, 0xffff0fff, 0x0000007f, 0x000007ff,
    1725               0xffcfffff, 0xff3fffff, 0xe3ffffff, 0x0007fdff, 0x0000f000,
    1726               0xffff7fff, 0x7fffffff, 0xfe0c7fff, 0xffff20bf, 0x000180ff,
    1727               0x007fffff, 0x7f7f7f7f, 0x7f7f7f7f, 0x000003ff, 0xfbffffff,
    1728               0x000fffff, 0x003fffff, 0x0fff0000, 0xffff03ff, 0xfffffffe,
    1729               0xf87fffff, 0xffffffe0, 0xfffe7fff, 0xffff7fff, 0x07ffffff,
    1730               0xffff000f, 0x7fffffff, 0x7fffffff, 0x003fffff, 0x000007ff,
    1731               0xffff1fff, 0xffff007f, 0x00000fff, 0xc0087fff, 0x3fffffff,
    1732               0x00fcffff, 0x00ff7fff, 0xff800000, 0xfffff7bb, 0x03ff0f9f,
    1733               0x00ffffff, 0x03ffc00f, 0x3ffc0000, 0xffffc03f, 0x800c007f,
    1734               0x1fffffff, 0xfffffff8, 0xec37ffff, 0xc3ffbfff, 0x7fffffdf,
    1735               0x001981ff, 0xf3ff2ff7, 0xefffffff, 0x3e62ffff, 0xf8000005,
    1736               0x003fcfff, 0x007e7e7e, 0xffff7f7f, 0xffff003f, 0x03ff1edf,
    1737               0xffff000f, 0xfffff87f, 0x0fffffff, 0xffff3fff, 0x03ffffff,
    1738               0xa0f8007f, 0x5f7fffff, 0xffffffdb, 0xfff80003, 0xffff0000,
    1739               0xfffcffff, 0x000000ff, 0x3fff0000, 0x03ff0000, 0xffff0000,
    1740               0xfff7ffff, 0xffdf0f7f, 0x1fffffff, 0xfffffffe, 0x3fffffff,
    1741               0x7fffffff, 0x1cfcfcfc, 0x30007f7f, 0xffffefff, 0xb7ffff7f,
    1742               0x3fff3fff, 0x07ffffff, 0xffffff87, 0xff8fffff, 0x0fff7fff,
    1743               0x00000001, 0xffff0000, 0x1fffffff, 0x1fffffff, 0x0001ffff,
    1744               0x0ffffffe, 0xffffe00f, 0xffff07ff, 0x003fffff, 0xbfffffff,
    1745               0x003fff0f, 0x3fffffff, 0xffff03ff, 0xff0fffff, 0x0fffffff,
    1746               0xffff00ff, 0x0000800f, 0x007fffff, 0x003fffff, 0x000000ff,
    1747               0xfffffd3f, 0x91bfffff, 0xffbfffff, 0x7fffffff, 0x0000ff80,
    1748               0xf837ffff, 0x8fffffff, 0x83ffffff, 0xf0ffffff, 0xfffcffff,
    1749               0xfeef0001, 0x000fffff, 0x01ff00ff, 0x007ff81f, 0xfe3fffff,
    1750               0xff3fffff, 0xff07ffff, 0x1e03ffff, 0x0000fe00, 0x000001ff,
    1751               0x0007ffff, 0xfc07ffff, 0x7fffffff, 0xfffffffd, 0x00ffffff,
    1752               0xfffc3f80, 0x0000ffff, 0xfffffffc, 0xd987ffff, 0xffff0003,
    1753               0x03ff01ff, 0xfffffff8, 0xffc0107f, 0xffff000f, 0x0077ffff,
    1754               0xfffffffc, 0x803fffff, 0xffff23ff, 0x001ffffe, 0xfffbffff,
    1755               0x3f2c7fff, 0xbfffbd7f, 0xffff03ff, 0x7fffffff, 0x03ff0007,
    1756               0xfff99fec, 0xa3edfdff, 0xe001399e, 0x0000000f, 0x00ffffff,
    1757               0x2bffffa3, 0x5a06ffff, 0x03ff00f2, 0x4f037fff, 0x0ffffffe,
    1758               0x5807ffff, 0x03ff001e, 0x00001fff, 0x0040d7ff, 0x000003ff,
    1759               0x03ffffff, 0xffff0043, 0x8007ffff, 0xfffff981, 0x8607ffff,
    1760               0xf181007f, 0xdc8003cf, 0x00000007, 0x01ffffff, 0xfffffdff,
    1761               0x4000ffff, 0xffff003f, 0xffff1fff, 0x0000ffff, 0x00120200,
    1762               0xfffffb7f, 0x0001ffff, 0x03ff0040, 0x03ffffff, 0x001f7fff,
    1763               0x0000000f, 0x00007fff, 0x0000007f, 0x01ffffff, 0x7fffffff,
    1764               0x0000c3ff, 0xffff0000, 0x00203fff, 0xff80ffff, 0xfbff003f,
    1765               0xe0fffffb, 0x0000ffff, 0xffff001f, 0x7fffffff, 0xfff80000,
    1766               0x00000003, 0x00001fff, 0x0007ffff, 0x7fffffff, 0xffff0000,
    1767               0x0fffffff, 0x1fff07ff, 0x93ff01ff, 0x003fffff, 0xfffffe7f,
    1768               0x00003c5f, 0xfffff018, 0xffffc3ff, 0x000001ff, 0x00000023,
    1769               0x007fffff, 0x0003ffff, 0xffdfffff, 0xdfffffff, 0xebffde64,
    1770               0xffffffef, 0xdfdfe7bf, 0x7bffffff, 0xfffdfc5f, 0xffffff3f,
    1771               0xffffcfff, 0x07800000, 0xffdfe000, 0x00000fef, 0x0000ff9f,
    1772               0xc3ff000f, 0xffffffef, 0x0af7fe96, 0xaa96ea84, 0x5ef7f796,
    1773               0x0ffffbff, 0x0ffffbee, 0x00030000, 0xffff0fff, 0x000fffff,
    1774               0xfffe7fff, 0xfffefffe, 0x003fffff, 0xffff1fff, 0xffff7fff,
    1775               0xffff0fff, 0x00001fff, 0xffffffc0, 0xffff0007, 0x0fffffff,
    1776               0x000301ff, 0x0000003f, 0x001fffff, 0x01ff1fff, 0x000fffff,
    1777               0x001fffff, 0xffff0fff, 0x03ff00ff, 0xffff00ff, 0x00003fff,
    1778               0xffff0fff, 0x7fffffff, 0xffff1fff, 0x00000fff, 0x00ffffff,
    1779               0xffff0001, 0x0000007f, 0x007fffff, 0x001fffff, 0x3fffffff,
    1780               0xffff0003, 0x00000001, 0x3fffffff}};
    1781         static BinaryPropertyObject property_object{Gr_Base, codepoint_set};
     1686
     1687
     1688        namespace {
     1689        const static UnicodeSet::run_t __codepoint_set_runs[] = {
     1690        {Empty, 1}, {Full, 2}, {Mixed, 1}, {Empty, 1}, {Mixed, 1},
     1691        {Full, 18}, {Empty, 3}, {Mixed, 3}, {Full, 6}, {Mixed, 1},
     1692        {Full, 4}, {Mixed, 8}, {Full, 1}, {Mixed, 2}, {Full, 2}, {Mixed, 5},
     1693        {Full, 2}, {Mixed, 1}, {Full, 1}, {Mixed, 5}, {Empty, 1},
     1694        {Mixed, 1}, {Empty, 2}, {Mixed, 43}, {Empty, 1}, {Mixed, 3},
     1695        {Empty, 1}, {Mixed, 7}, {Empty, 1}, {Full, 1}, {Mixed, 4},
     1696        {Full, 1}, {Mixed, 1}, {Full, 11}, {Mixed, 1}, {Full, 1},
     1697        {Mixed, 3}, {Full, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 3}, {Full, 2},
     1698        {Mixed, 1}, {Full, 20}, {Mixed, 1}, {Full, 2}, {Mixed, 5},
     1699        {Full, 1}, {Mixed, 4}, {Full, 2}, {Mixed, 3}, {Full, 1}, {Mixed, 5},
     1700        {Full, 1}, {Mixed, 2}, {Full, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 4},
     1701        {Empty, 2}, {Mixed, 6}, {Full, 1}, {Mixed, 1}, {Full, 1},
     1702        {Mixed, 2}, {Full, 1}, {Mixed, 1}, {Empty, 1}, {Mixed, 2},
     1703        {Full, 6}, {Empty, 2}, {Full, 8}, {Mixed, 1}, {Full, 1}, {Mixed, 2},
     1704        {Full, 1}, {Mixed, 5}, {Full, 1}, {Mixed, 2}, {Full, 1}, {Empty, 2},
     1705        {Full, 4}, {Mixed, 1}, {Full, 20}, {Mixed, 2}, {Full, 56},
     1706        {Mixed, 5}, {Full, 1}, {Mixed, 2}, {Full, 4}, {Mixed, 1}, {Full, 1},
     1707        {Mixed, 1}, {Full, 1}, {Mixed, 4}, {Empty, 1}, {Full, 2},
     1708        {Mixed, 1}, {Empty, 1}, {Mixed, 1}, {Full, 2}, {Mixed, 1},
     1709        {Full, 6}, {Mixed, 2}, {Full, 1}, {Mixed, 2}, {Full, 1}, {Mixed, 1},
     1710        {Full, 3}, {Mixed, 2}, {Full, 2}, {Mixed, 2}, {Full, 1}, {Mixed, 2},
     1711        {Full, 6}, {Mixed, 1}, {Full, 213}, {Mixed, 1}, {Full, 657},
     1712        {Mixed, 1}, {Full, 36}, {Mixed, 1}, {Full, 1}, {Mixed, 1},
     1713        {Full, 10}, {Mixed, 1}, {Full, 1}, {Mixed, 2}, {Full, 2},
     1714        {Mixed, 1}, {Full, 5}, {Mixed, 1}, {Empty, 1}, {Mixed, 3},
     1715        {Full, 1}, {Mixed, 1}, {Full, 2}, {Mixed, 2}, {Full, 1}, {Mixed, 7},
     1716        {Full, 1}, {Mixed, 3}, {Full, 1}, {Mixed, 5}, {Full, 1}, {Mixed, 1},
     1717        {Full, 3}, {Mixed, 1}, {Full, 349}, {Mixed, 3}, {Empty, 264},
     1718        {Full, 11}, {Mixed, 1}, {Full, 2}, {Mixed, 1}, {Empty, 1},
     1719        {Mixed, 3}, {Full, 3}, {Mixed, 1}, {Full, 11}, {Mixed, 1},
     1720        {Full, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 6}, {Full, 3}, {Mixed, 2},
     1721        {Full, 3}, {Mixed, 7}, {Empty, 1}, {Full, 3}, {Mixed, 3}, {Full, 2},
     1722        {Mixed, 4}, {Empty, 4}, {Mixed, 1}, {Full, 1}, {Mixed, 2},
     1723        {Full, 1}, {Mixed, 4}, {Full, 1}, {Mixed, 1}, {Empty, 1}, {Full, 4},
     1724        {Mixed, 4}, {Full, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 1},
     1725        {Empty, 4}, {Full, 9}, {Mixed, 3}, {Empty, 4}, {Mixed, 3},
     1726        {Full, 1}, {Mixed, 2}, {Empty, 1}, {Mixed, 3}, {Empty, 2},
     1727        {Full, 1}, {Mixed, 2}, {Full, 1}, {Mixed, 3}, {Full, 2}, {Empty, 1},
     1728        {Full, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 5}, {Empty, 2}, {Full, 2},
     1729        {Mixed, 1}, {Empty, 1}, {Full, 1}, {Mixed, 1}, {Full, 1},
     1730        {Mixed, 1}, {Empty, 11}, {Mixed, 1}, {Empty, 12}, {Mixed, 18},
     1731        {Empty, 2}, {Mixed, 8}, {Empty, 4}, {Full, 1}, {Mixed, 2},
     1732        {Empty, 1}, {Full, 1}, {Mixed, 2}, {Empty, 5}, {Full, 1},
     1733        {Mixed, 2}, {Empty, 1}, {Full, 1}, {Mixed, 3}, {Full, 1},
     1734        {Mixed, 2}, {Empty, 1}, {Mixed, 2}, {Empty, 11}, {Full, 2},
     1735        {Mixed, 1}, {Empty, 8}, {Mixed, 3}, {Full, 1}, {Mixed, 2},
     1736        {Full, 1}, {Mixed, 1}, {Empty, 8}, {Mixed, 6}, {Empty, 2},
     1737        {Mixed, 3}, {Empty, 21}, {Full, 28}, {Mixed, 1}, {Empty, 3},
     1738        {Full, 3}, {Mixed, 1}, {Full, 6}, {Mixed, 1}, {Empty, 85},
     1739        {Full, 33}, {Mixed, 1}, {Empty, 126}, {Full, 18}, {Mixed, 1},
     1740        {Empty, 269}, {Full, 17}, {Mixed, 3}, {Empty, 2}, {Mixed, 2},
     1741        {Full, 1}, {Mixed, 4}, {Empty, 27}, {Full, 2}, {Mixed, 3},
     1742        {Empty, 2}, {Mixed, 1}, {Full, 191}, {Mixed, 1}, {Full, 23},
     1743        {Mixed, 1}, {Empty, 296}, {Full, 8}, {Mixed, 1}, {Empty, 2},
     1744        {Mixed, 1}, {Full, 11}, {Mixed, 1}, {Empty, 72}, {Full, 3},
     1745        {Mixed, 2}, {Empty, 155}, {Full, 7}, {Mixed, 1}, {Full, 1},
     1746        {Mixed, 1}, {Full, 1}, {Mixed, 3}, {Full, 1}, {Mixed, 1}, {Full, 2},
     1747        {Mixed, 1}, {Empty, 5}, {Full, 2}, {Mixed, 2}, {Empty, 4},
     1748        {Full, 2}, {Mixed, 1}, {Full, 1}, {Mixed, 3}, {Full, 1}, {Mixed, 3},
     1749        {Full, 10}, {Mixed, 1}, {Full, 8}, {Mixed, 1}, {Full, 17},
     1750        {Empty, 1}, {Mixed, 1}, {Empty, 1}, {Mixed, 2}, {Empty, 107},
     1751        {Full, 6}, {Mixed, 1}, {Empty, 1}, {Full, 2}, {Mixed, 1},
     1752        {Empty, 37}, {Mixed, 6}, {Empty, 1}, {Mixed, 1}, {Empty, 8},
     1753        {Full, 1}, {Mixed, 1}, {Full, 2}, {Mixed, 6}, {Full, 1}, {Mixed, 1},
     1754        {Full, 1}, {Mixed, 1}, {Empty, 1}, {Mixed, 5}, {Empty, 4},
     1755        {Full, 30}, {Mixed, 2}, {Full, 3}, {Mixed, 1}, {Full, 2},
     1756        {Mixed, 1}, {Empty, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 1},
     1757        {Full, 1}, {Mixed, 2}, {Empty, 2}, {Mixed, 5}, {Empty, 1},
     1758        {Mixed, 2}, {Empty, 48}, {Full, 1334}, {Mixed, 1}, {Empty, 1},
     1759        {Full, 129}, {Mixed, 1}, {Full, 6}, {Mixed, 1}, {Full, 180},
     1760        {Mixed, 1}, {Full, 233}, {Mixed, 1}, {Empty, 96}, {Full, 16},
     1761        {Mixed, 1}, {Empty, 28719}};
     1762        const static UnicodeSet::bitquad_t  __codepoint_set_quads[] = {
     1763        0x7fffffff, 0xffffdfff, 0xfcff0000, 0xffffd7f0, 0xfffffffb,
     1764        0xfffffc07, 0xfffeffff, 0xfe7fffff, 0xfffffffe, 0x0000e6ff,
     1765        0x40000000, 0xffff0049, 0x001f07ff, 0xc800ffc0, 0x000007ff,
     1766        0xfffeffff, 0x403fffff, 0xffffc260, 0xfffd3fff, 0x0000ffff,
     1767        0xffffe000, 0x0002003f, 0x07f007ff, 0x043fffff, 0x7fff0110,
     1768        0x41ffffff, 0x000007ff, 0x3fdfffff, 0xfffffff8, 0xebffffff,
     1769        0xff01de01, 0xfffffff3, 0xfff99fed, 0xa3c5fdff, 0xb0005981,
     1770        0x3fffffc3, 0xfff987e8, 0xc36dfdff, 0x5e000001, 0x001cffc0,
     1771        0xfffbbfe8, 0xe3edfdff, 0x00011a01, 0x0203ffc3, 0xfff99fec,
     1772        0x23edfdff, 0xb0001981, 0x00ffffc3, 0xd63dc7e8, 0x83ffc718,
     1773        0x00011dc6, 0x07ffffc0, 0xfffddfee, 0x23fffdff, 0x0700001e,
     1774        0xff00ffc3, 0xfffddfed, 0x63effdff, 0x40000d9b, 0x0006ffc3,
     1775        0xfffddfec, 0xa7ffffff, 0xff70ddc1, 0xffffffc3, 0xfc7fffec,
     1776        0x2ffbffff, 0x7f03007f, 0x001cffc0, 0xfffffffe, 0x800dffff,
     1777        0x0fff807f, 0xfef02596, 0x200decae, 0xf3ff005f, 0xfcffffff,
     1778        0xfd5fffff, 0xfffffeff, 0x80001fff, 0x00001f20, 0xc0000000,
     1779        0x07ffdfbf, 0x99021fff, 0x3cffffff, 0xffe1fffe, 0xdfffdf9b,
     1780        0xffff20bf, 0x3d7f3dff, 0xffff3dff, 0x7f3dffff, 0xff7fff3d,
     1781        0xff3dffff, 0x07ffffff, 0x1fffffff, 0x03ffffff, 0x3f3fffff,
     1782        0x1fffffff, 0x01ffffff, 0x0003dfff, 0x0063ffff, 0x0003ffff,
     1783        0x0001dfff, 0xc04fffff, 0x1ff001bf, 0x03ff03ff, 0x03ff07ff,
     1784        0x00ffffff, 0xffffff9f, 0xffff05ff, 0x003fffff, 0x7fffffff,
     1785        0x01fb0e78, 0xfffffff1, 0x001f3fff, 0xffff0fff, 0xc7ff03ff,
     1786        0xc67fffff, 0x00bfffff, 0x0007e01a, 0x03ff03ff, 0x00003fff,
     1787        0xfffffff0, 0xe82fffff, 0xffff0ffb, 0x1ff007ff, 0xfffffffc,
     1788        0xffffc4c3, 0xf00c5cbf, 0xf8300fff, 0xffffe3ff, 0x000001ff,
     1789        0x000800ff, 0x00efde02, 0x3f3fffff, 0xaaff3f3f, 0x3fffffff,
     1790        0xffdfffff, 0xefcfffdf, 0x7fdcffff, 0xffff07ff, 0xffff80ff,
     1791        0xfff30000, 0x1fff7fff, 0xffff0fff, 0x0000007f, 0x000007ff,
     1792        0xffcfffff, 0xff3fffff, 0xe3ffffff, 0x0007fdff, 0x0000f000,
     1793        0xffff7fff, 0x7fffffff, 0xfe0c7fff, 0xffff20bf, 0x000180ff,
     1794        0x007fffff, 0x7f7f7f7f, 0x7f7f7f7f, 0x000003ff, 0xfbffffff,
     1795        0x000fffff, 0x003fffff, 0x0fff0000, 0xffff03ff, 0xfffffffe,
     1796        0xf87fffff, 0xffffffe0, 0xfffe7fff, 0xffff7fff, 0x07ffffff,
     1797        0xffff000f, 0x7fffffff, 0x7fffffff, 0x003fffff, 0x000007ff,
     1798        0xffff1fff, 0xffff007f, 0x00000fff, 0xc0087fff, 0x3fffffff,
     1799        0x00fcffff, 0x00ff7fff, 0xff800000, 0xfffff7bb, 0x03ff0f9f,
     1800        0x00ffffff, 0x03ffc00f, 0x3ffc0000, 0xffffc03f, 0x800c007f,
     1801        0x1fffffff, 0xfffffff8, 0xec37ffff, 0xc3ffbfff, 0x7fffffdf,
     1802        0x001981ff, 0xf3ff2ff7, 0xefffffff, 0x3e62ffff, 0xf8000005,
     1803        0x003fcfff, 0x007e7e7e, 0xffff7f7f, 0xffff003f, 0x03ff1edf,
     1804        0xffff000f, 0xfffff87f, 0x0fffffff, 0xffff3fff, 0x03ffffff,
     1805        0xa0f8007f, 0x5f7fffff, 0xffffffdb, 0xfff80003, 0xffff0000,
     1806        0xfffcffff, 0x000000ff, 0x3fff0000, 0x03ff0000, 0xffff0000,
     1807        0xfff7ffff, 0xffdf0f7f, 0x1fffffff, 0xfffffffe, 0x3fffffff,
     1808        0x7fffffff, 0x1cfcfcfc, 0x30007f7f, 0xffffefff, 0xb7ffff7f,
     1809        0x3fff3fff, 0x07ffffff, 0xffffff87, 0xff8fffff, 0x0fff7fff,
     1810        0x00000001, 0xffff0000, 0x1fffffff, 0x1fffffff, 0x0001ffff,
     1811        0x0ffffffe, 0xffffe00f, 0xffff07ff, 0x003fffff, 0xbfffffff,
     1812        0x003fff0f, 0x3fffffff, 0xffff03ff, 0xff0fffff, 0x0fffffff,
     1813        0xffff00ff, 0x0000800f, 0x007fffff, 0x003fffff, 0x000000ff,
     1814        0xfffffd3f, 0x91bfffff, 0xffbfffff, 0x7fffffff, 0x0000ff80,
     1815        0xf837ffff, 0x8fffffff, 0x83ffffff, 0xf0ffffff, 0xfffcffff,
     1816        0xfeef0001, 0x000fffff, 0x01ff00ff, 0x007ff81f, 0xfe3fffff,
     1817        0xff3fffff, 0xff07ffff, 0x1e03ffff, 0x0000fe00, 0x000001ff,
     1818        0x0007ffff, 0xfc07ffff, 0x7fffffff, 0xfffffffd, 0x00ffffff,
     1819        0xfffc3f80, 0x0000ffff, 0xfffffffc, 0xd987ffff, 0xffff0003,
     1820        0x03ff01ff, 0xfffffff8, 0xffc0107f, 0xffff000f, 0x0077ffff,
     1821        0xfffffffc, 0x803fffff, 0xffff23ff, 0x001ffffe, 0xfffbffff,
     1822        0x3f2c7fff, 0xbfffbd7f, 0xffff03ff, 0x7fffffff, 0x03ff0007,
     1823        0xfff99fec, 0xa3edfdff, 0xe001399e, 0x0000000f, 0x00ffffff,
     1824        0x2bffffa3, 0x5a06ffff, 0x03ff00f2, 0x4f037fff, 0x0ffffffe,
     1825        0x5807ffff, 0x03ff001e, 0x00001fff, 0x0040d7ff, 0x000003ff,
     1826        0x03ffffff, 0xffff0043, 0x8007ffff, 0xfffff981, 0x8607ffff,
     1827        0xf181007f, 0xdc8003cf, 0x00000007, 0x01ffffff, 0xfffffdff,
     1828        0x4000ffff, 0xffff003f, 0xffff1fff, 0x0000ffff, 0x00120200,
     1829        0xfffffb7f, 0x0001ffff, 0x03ff0040, 0x03ffffff, 0x001f7fff,
     1830        0x0000000f, 0x00007fff, 0x0000007f, 0x01ffffff, 0x7fffffff,
     1831        0x0000c3ff, 0xffff0000, 0x00203fff, 0xff80ffff, 0xfbff003f,
     1832        0xe0fffffb, 0x0000ffff, 0xffff001f, 0x7fffffff, 0xfff80000,
     1833        0x00000003, 0x00001fff, 0x0007ffff, 0x7fffffff, 0xffff0000,
     1834        0x0fffffff, 0x1fff07ff, 0x93ff01ff, 0x003fffff, 0xfffffe7f,
     1835        0x00003c5f, 0xfffff018, 0xffffc3ff, 0x000001ff, 0x00000023,
     1836        0x007fffff, 0x0003ffff, 0xffdfffff, 0xdfffffff, 0xebffde64,
     1837        0xffffffef, 0xdfdfe7bf, 0x7bffffff, 0xfffdfc5f, 0xffffff3f,
     1838        0xffffcfff, 0x07800000, 0xffdfe000, 0x00000fef, 0x0000ff9f,
     1839        0xc3ff000f, 0xffffffef, 0x0af7fe96, 0xaa96ea84, 0x5ef7f796,
     1840        0x0ffffbff, 0x0ffffbee, 0x00030000, 0xffff0fff, 0x000fffff,
     1841        0xfffe7fff, 0xfffefffe, 0x003fffff, 0xffff1fff, 0xffff7fff,
     1842        0xffff0fff, 0x00001fff, 0xffffffc0, 0xffff0007, 0x0fffffff,
     1843        0x000301ff, 0x0000003f, 0x001fffff, 0x01ff1fff, 0x000fffff,
     1844        0x001fffff, 0xffff0fff, 0x03ff00ff, 0xffff00ff, 0x00003fff,
     1845        0xffff0fff, 0x7fffffff, 0xffff1fff, 0x00000fff, 0x00ffffff,
     1846        0xffff0001, 0x0000007f, 0x007fffff, 0x001fffff, 0x3fffffff,
     1847        0xffff0003, 0x00000001, 0x3fffffff};
     1848        }
     1849
     1850        const static UnicodeSet codepoint_set{const_cast<UnicodeSet::run_t *>(__codepoint_set_runs), 376, 0, const_cast<UnicodeSet::bitquad_t *>(__codepoint_set_quads), 423, 0};
     1851
     1852        static BinaryPropertyObject property_object{Gr_Base, std::move(codepoint_set)};
    17821853    }
    17831854    namespace GR_EXT_ns {
     
    18631934        [1e01b, 1e021], [1e023, 1e024], [1e026, 1e02a], [1e8d0, 1e8d6],
    18641935        [1e944, 1e94a], [e0020, e007f], [e0100, e01ef]**/
    1865         const UnicodeSet codepoint_set
    1866             {{{Empty, 24}, {Full, 3}, {Mixed, 1}, {Empty, 8}, {Mixed, 1},
    1867               {Empty, 7}, {Mixed, 3}, {Empty, 1}, {Mixed, 1}, {Empty, 1},
    1868               {Mixed, 2}, {Empty, 2}, {Mixed, 5}, {Empty, 2}, {Mixed, 1},
    1869               {Empty, 1}, {Mixed, 4}, {Empty, 3}, {Mixed, 25}, {Empty, 1},
    1870               {Mixed, 12}, {Empty, 2}, {Mixed, 1}, {Empty, 2}, {Mixed, 2},
    1871               {Empty, 2}, {Mixed, 2}, {Empty, 1}, {Mixed, 2}, {Empty, 1},
    1872               {Mixed, 4}, {Empty, 2}, {Mixed, 4}, {Empty, 21}, {Mixed, 1},
    1873               {Empty, 29}, {Mixed, 4}, {Empty, 1}, {Mixed, 2}, {Empty, 1},
    1874               {Mixed, 1}, {Empty, 3}, {Mixed, 2}, {Empty, 3}, {Mixed, 1},
    1875               {Empty, 6}, {Mixed, 1}, {Empty, 1}, {Mixed, 2}, {Empty, 1},
    1876               {Mixed, 1}, {Empty, 2}, {Mixed, 6}, {Empty, 1}, {Mixed, 1},
    1877               {Empty, 1}, {Mixed, 1}, {Empty, 4}, {Mixed, 2}, {Empty, 6},
    1878               {Full, 1}, {Mixed, 1}, {Empty, 16}, {Mixed, 1}, {Empty, 5},
    1879               {Mixed, 2}, {Empty, 95}, {Mixed, 1}, {Empty, 3}, {Mixed, 1},
    1880               {Empty, 3}, {Full, 1}, {Empty, 17}, {Mixed, 1}, {Empty, 2},
    1881               {Mixed, 1}, {Empty, 942}, {Mixed, 2}, {Empty, 2}, {Mixed, 1},
    1882               {Empty, 8}, {Mixed, 2}, {Empty, 4}, {Mixed, 2}, {Empty, 1},
    1883               {Mixed, 2}, {Empty, 1}, {Mixed, 2}, {Empty, 1}, {Mixed, 1},
    1884               {Empty, 1}, {Mixed, 3}, {Empty, 1}, {Mixed, 3}, {Empty, 7},
    1885               {Mixed, 1}, {Empty, 632}, {Mixed, 1}, {Empty, 23}, {Mixed, 2},
    1886               {Empty, 10}, {Mixed, 1}, {Empty, 18}, {Mixed, 1}, {Empty, 7},
    1887               {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Empty, 52}, {Mixed, 2},
    1888               {Empty, 5}, {Mixed, 1}, {Empty, 40}, {Mixed, 6}, {Empty, 2},
    1889               {Mixed, 2}, {Empty, 1}, {Mixed, 4}, {Empty, 2}, {Mixed, 1},
    1890               {Empty, 4}, {Mixed, 6}, {Empty, 5}, {Mixed, 2}, {Empty, 2},
    1891               {Mixed, 2}, {Empty, 6}, {Mixed, 2}, {Empty, 2}, {Mixed, 2},
    1892               {Empty, 2}, {Mixed, 1}, {Empty, 2}, {Mixed, 2}, {Empty, 22},
    1893               {Mixed, 3}, {Empty, 1}, {Mixed, 1}, {Empty, 12}, {Mixed, 1},
    1894               {Empty, 2}, {Mixed, 2}, {Empty, 3}, {Mixed, 2}, {Empty, 620},
    1895               {Mixed, 1}, {Empty, 1}, {Mixed, 1}, {Empty, 34}, {Mixed, 1},
    1896               {Empty, 615}, {Mixed, 1}, {Empty, 166}, {Mixed, 3},
    1897               {Empty, 4}, {Mixed, 1}, {Empty, 61}, {Full, 1}, {Mixed, 1},
    1898               {Full, 1}, {Mixed, 3}, {Empty, 42}, {Mixed, 2}, {Empty, 68},
    1899               {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Empty, 24758}, {Full, 3},
    1900               {Empty, 4}, {Full, 7}, {Mixed, 1}, {Empty, 6128}},
    1901              {0x0000ffff, 0x000003f8, 0xfffe0000, 0xbfffffff, 0x000000b6,
    1902               0x07ff0000, 0xfffff800, 0x00010000, 0x9fc00000, 0x00003d9f,
    1903               0x00020000, 0xffff0000, 0x000007ff, 0x0001ffc0, 0x000ff800,
    1904               0xfbc00000, 0x00003eef, 0x0e000000, 0xfff00000, 0xfffffffb,
    1905               0x00000007, 0x14000000, 0x00fe21fe, 0x0000000c, 0x00000002,
    1906               0x50000000, 0x0080201e, 0x0000000c, 0x00000006, 0x10000000,
    1907               0x00023986, 0x00230000, 0x00000006, 0x10000000, 0x000021be,
    1908               0xfc00000c, 0x00000002, 0xd0000000, 0x00c0201e, 0x0000000c,
    1909               0x00000004, 0x40000000, 0x00802001, 0x00000001, 0xc0000000,
    1910               0x00603dc1, 0x0000000c, 0x00000002, 0x90000000, 0x00603044,
    1911               0x0000000c, 0x00000003, 0x58000000, 0x0080201e, 0x0000000c,
    1912               0x805c8400, 0x07f20000, 0x00007f80, 0x1bf20000, 0x00003f00,
    1913               0x03000000, 0x02a00000, 0x7ffe0000, 0xfeffe0df, 0x1fffffff,
    1914               0x00000040, 0x66fde000, 0xc3000000, 0x001e0001, 0x20002064,
    1915               0xe0000000, 0x001c0000, 0x001c0000, 0x000c0000, 0x000c0000,
    1916               0x3fb00000, 0x200ffe40, 0x00003800, 0x00000060, 0x00000200,
    1917               0x0e040187, 0x09800000, 0x7f400000, 0x9ff81fe5, 0x7fff0000,
    1918               0x0000000f, 0x17d00000, 0x00000004, 0x000ff800, 0x00000003,
    1919               0x00003b3c, 0x0003a340, 0x00cff000, 0xfff70000, 0x031021fd,
    1920               0xfbffffff, 0x00001000, 0xffff0000, 0x0001ffff, 0x00038000,
    1921               0x80000000, 0x0000fc00, 0x06000000, 0x3ff78000, 0xc0000000,
    1922               0x00030000, 0x00000844, 0x00000060, 0x00000030, 0x0003ffff,
    1923               0x00003fc0, 0x0003ff80, 0x00000007, 0x13c80000, 0x00000020,
    1924               0x00667e00, 0x00001008, 0x10000000, 0xc19d0000, 0x00000002,
    1925               0x00403000, 0x00002120, 0x40000000, 0x0000ffff, 0x0000ffff,
    1926               0xc0000000, 0x20000000, 0x00000001, 0x07c00000, 0x0000f06e,
    1927               0x87000000, 0x00000060, 0x00000002, 0xff000000, 0x0000007f,
    1928               0x80000000, 0x00000003, 0x06780000, 0x00000007, 0x001fef80,
    1929               0x00080000, 0x00000003, 0x7fc00000, 0x00001c00, 0x40d38000,
    1930               0x80000000, 0x000007f8, 0x00000003, 0x50000000, 0x00800001,
    1931               0x001f1fc0, 0xff000000, 0x0000005c, 0xa5f90000, 0x0000000d,
    1932               0xb03c8000, 0x30000001, 0xa7f80000, 0x00000001, 0x00bf2800,
    1933               0xe0000000, 0x00000fbc, 0x0000067e, 0x79f80000, 0x0e7e0080,
    1934               0x037ffc00, 0xbf7f0000, 0xfffc0000, 0x006dfcff, 0xb47e0000,
    1935               0x000000bf, 0x001f0000, 0x007f0000, 0x00078000, 0x60000000,
    1936               0xf807c3a0, 0x00000fe7, 0x00003c00, 0x0000001c, 0xf87fffff,
    1937               0x00201fff, 0xf8000010, 0x0000fffe, 0xf9ffff7f, 0x000007db,
    1938               0x007f0000, 0x000007f0, 0x0000ffff}};
    1939         static BinaryPropertyObject property_object{Gr_Ext, codepoint_set};
     1936
     1937
     1938        namespace {
     1939        const static UnicodeSet::run_t __codepoint_set_runs[] = {
     1940        {Empty, 24}, {Full, 3}, {Mixed, 1}, {Empty, 8}, {Mixed, 1},
     1941        {Empty, 7}, {Mixed, 3}, {Empty, 1}, {Mixed, 1}, {Empty, 1},
     1942        {Mixed, 2}, {Empty, 2}, {Mixed, 5}, {Empty, 2}, {Mixed, 1},
     1943        {Empty, 1}, {Mixed, 4}, {Empty, 3}, {Mixed, 25}, {Empty, 1},
     1944        {Mixed, 12}, {Empty, 2}, {Mixed, 1}, {Empty, 2}, {Mixed, 2},
     1945        {Empty, 2}, {Mixed, 2}, {Empty, 1}, {Mixed, 2}, {Empty, 1},
     1946        {Mixed, 4}, {Empty, 2}, {Mixed, 4}, {Empty, 21}, {Mixed, 1},
     1947        {Empty, 29}, {Mixed, 4}, {Empty, 1}, {Mixed, 2}, {Empty, 1},
     1948        {Mixed, 1}, {Empty, 3}, {Mixed, 2}, {Empty, 3}, {Mixed, 1},
     1949        {Empty, 6}, {Mixed, 1}, {Empty, 1}, {Mixed, 2}, {Empty, 1},
     1950        {Mixed, 1}, {Empty, 2}, {Mixed, 6}, {Empty, 1}, {Mixed, 1},
     1951        {Empty, 1}, {Mixed, 1}, {Empty, 4}, {Mixed, 2}, {Empty, 6},
     1952        {Full, 1}, {Mixed, 1}, {Empty, 16}, {Mixed, 1}, {Empty, 5},
     1953        {Mixed, 2}, {Empty, 95}, {Mixed, 1}, {Empty, 3}, {Mixed, 1},
     1954        {Empty, 3}, {Full, 1}, {Empty, 17}, {Mixed, 1}, {Empty, 2},
     1955        {Mixed, 1}, {Empty, 942}, {Mixed, 2}, {Empty, 2}, {Mixed, 1},
     1956        {Empty, 8}, {Mixed, 2}, {Empty, 4}, {Mixed, 2}, {Empty, 1},
     1957        {Mixed, 2}, {Empty, 1}, {Mixed, 2}, {Empty, 1}, {Mixed, 1},
     1958        {Empty, 1}, {Mixed, 3}, {Empty, 1}, {Mixed, 3}, {Empty, 7},
     1959        {Mixed, 1}, {Empty, 632}, {Mixed, 1}, {Empty, 23}, {Mixed, 2},
     1960        {Empty, 10}, {Mixed, 1}, {Empty, 18}, {Mixed, 1}, {Empty, 7},
     1961        {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Empty, 52}, {Mixed, 2},
     1962        {Empty, 5}, {Mixed, 1}, {Empty, 40}, {Mixed, 6}, {Empty, 2},
     1963        {Mixed, 2}, {Empty, 1}, {Mixed, 4}, {Empty, 2}, {Mixed, 1},
     1964        {Empty, 4}, {Mixed, 6}, {Empty, 5}, {Mixed, 2}, {Empty, 2},
     1965        {Mixed, 2}, {Empty, 6}, {Mixed, 2}, {Empty, 2}, {Mixed, 2},
     1966        {Empty, 2}, {Mixed, 1}, {Empty, 2}, {Mixed, 2}, {Empty, 22},
     1967        {Mixed, 3}, {Empty, 1}, {Mixed, 1}, {Empty, 12}, {Mixed, 1},
     1968        {Empty, 2}, {Mixed, 2}, {Empty, 3}, {Mixed, 2}, {Empty, 620},
     1969        {Mixed, 1}, {Empty, 1}, {Mixed, 1}, {Empty, 34}, {Mixed, 1},
     1970        {Empty, 615}, {Mixed, 1}, {Empty, 166}, {Mixed, 3}, {Empty, 4},
     1971        {Mixed, 1}, {Empty, 61}, {Full, 1}, {Mixed, 1}, {Full, 1},
     1972        {Mixed, 3}, {Empty, 42}, {Mixed, 2}, {Empty, 68}, {Mixed, 1},
     1973        {Empty, 3}, {Mixed, 1}, {Empty, 24758}, {Full, 3}, {Empty, 4},
     1974        {Full, 7}, {Mixed, 1}, {Empty, 6128}};
     1975        const static UnicodeSet::bitquad_t  __codepoint_set_quads[] = {
     1976        0x0000ffff, 0x000003f8, 0xfffe0000, 0xbfffffff, 0x000000b6,
     1977        0x07ff0000, 0xfffff800, 0x00010000, 0x9fc00000, 0x00003d9f,
     1978        0x00020000, 0xffff0000, 0x000007ff, 0x0001ffc0, 0x000ff800,
     1979        0xfbc00000, 0x00003eef, 0x0e000000, 0xfff00000, 0xfffffffb,
     1980        0x00000007, 0x14000000, 0x00fe21fe, 0x0000000c, 0x00000002,
     1981        0x50000000, 0x0080201e, 0x0000000c, 0x00000006, 0x10000000,
     1982        0x00023986, 0x00230000, 0x00000006, 0x10000000, 0x000021be,
     1983        0xfc00000c, 0x00000002, 0xd0000000, 0x00c0201e, 0x0000000c,
     1984        0x00000004, 0x40000000, 0x00802001, 0x00000001, 0xc0000000,
     1985        0x00603dc1, 0x0000000c, 0x00000002, 0x90000000, 0x00603044,
     1986        0x0000000c, 0x00000003, 0x58000000, 0x0080201e, 0x0000000c,
     1987        0x805c8400, 0x07f20000, 0x00007f80, 0x1bf20000, 0x00003f00,
     1988        0x03000000, 0x02a00000, 0x7ffe0000, 0xfeffe0df, 0x1fffffff,
     1989        0x00000040, 0x66fde000, 0xc3000000, 0x001e0001, 0x20002064,
     1990        0xe0000000, 0x001c0000, 0x001c0000, 0x000c0000, 0x000c0000,
     1991        0x3fb00000, 0x200ffe40, 0x00003800, 0x00000060, 0x00000200,
     1992        0x0e040187, 0x09800000, 0x7f400000, 0x9ff81fe5, 0x7fff0000,
     1993        0x0000000f, 0x17d00000, 0x00000004, 0x000ff800, 0x00000003,
     1994        0x00003b3c, 0x0003a340, 0x00cff000, 0xfff70000, 0x031021fd,
     1995        0xfbffffff, 0x00001000, 0xffff0000, 0x0001ffff, 0x00038000,
     1996        0x80000000, 0x0000fc00, 0x06000000, 0x3ff78000, 0xc0000000,
     1997        0x00030000, 0x00000844, 0x00000060, 0x00000030, 0x0003ffff,
     1998        0x00003fc0, 0x0003ff80, 0x00000007, 0x13c80000, 0x00000020,
     1999        0x00667e00, 0x00001008, 0x10000000, 0xc19d0000, 0x00000002,
     2000        0x00403000, 0x00002120, 0x40000000, 0x0000ffff, 0x0000ffff,
     2001        0xc0000000, 0x20000000, 0x00000001, 0x07c00000, 0x0000f06e,
     2002        0x87000000, 0x00000060, 0x00000002, 0xff000000, 0x0000007f,
     2003        0x80000000, 0x00000003, 0x06780000, 0x00000007, 0x001fef80,
     2004        0x00080000, 0x00000003, 0x7fc00000, 0x00001c00, 0x40d38000,
     2005        0x80000000, 0x000007f8, 0x00000003, 0x50000000, 0x00800001,
     2006        0x001f1fc0, 0xff000000, 0x0000005c, 0xa5f90000, 0x0000000d,
     2007        0xb03c8000, 0x30000001, 0xa7f80000, 0x00000001, 0x00bf2800,
     2008        0xe0000000, 0x00000fbc, 0x0000067e, 0x79f80000, 0x0e7e0080,
     2009        0x037ffc00, 0xbf7f0000, 0xfffc0000, 0x006dfcff, 0xb47e0000,
     2010        0x000000bf, 0x001f0000, 0x007f0000, 0x00078000, 0x60000000,
     2011        0xf807c3a0, 0x00000fe7, 0x00003c00, 0x0000001c, 0xf87fffff,
     2012        0x00201fff, 0xf8000010, 0x0000fffe, 0xf9ffff7f, 0x000007db,
     2013        0x007f0000, 0x000007f0, 0x0000ffff};
     2014        }
     2015
     2016        const static UnicodeSet codepoint_set{const_cast<UnicodeSet::run_t *>(__codepoint_set_runs), 173, 0, const_cast<UnicodeSet::bitquad_t *>(__codepoint_set_quads), 188, 0};
     2017
     2018        static BinaryPropertyObject property_object{Gr_Ext, std::move(codepoint_set)};
    19402019    }
    19412020    namespace GR_LINK_ns {
     
    21172196        [2b740, 2b81d], [2b820, 2cea1], [2ceb0, 2ebe0], [2f800, 2fa1d],
    21182197        [e0100, e01ef]**/
    2119         const UnicodeSet codepoint_set
    2120             {{{Empty, 1}, {Mixed, 3}, {Empty, 1}, {Mixed, 3}, {Full, 14},
    2121               {Mixed, 2}, {Full, 3}, {Mixed, 3}, {Full, 1}, {Mixed, 1},
    2122               {Full, 4}, {Mixed, 1}, {Full, 4}, {Mixed, 8}, {Full, 2},
    2123               {Mixed, 1}, {Full, 2}, {Mixed, 3}, {Full, 1}, {Mixed, 1},
    2124               {Full, 2}, {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Full, 1},
    2125               {Mixed, 3}, {Empty, 1}, {Mixed, 3}, {Full, 3}, {Mixed, 30},
    2126               {Full, 1}, {Mixed, 9}, {Empty, 1}, {Mixed, 3}, {Empty, 1},
    2127               {Mixed, 7}, {Empty, 1}, {Full, 2}, {Mixed, 1}, {Full, 1},
    2128               {Mixed, 1}, {Full, 1}, {Mixed, 2}, {Full, 10}, {Mixed, 1},
    2129               {Full, 1}, {Mixed, 3}, {Full, 1}, {Mixed, 1}, {Full, 1},
    2130               {Mixed, 3}, {Full, 2}, {Mixed, 2}, {Full, 18}, {Mixed, 2},
    2131               {Full, 2}, {Mixed, 5}, {Full, 2}, {Mixed, 3}, {Full, 2},
    2132               {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 5},
    2133               {Full, 1}, {Mixed, 2}, {Empty, 1}, {Mixed, 1}, {Full, 1},
    2134               {Mixed, 4}, {Empty, 2}, {Full, 2}, {Mixed, 2}, {Full, 3},
    2135               {Mixed, 1}, {Full, 1}, {Mixed, 4}, {Empty, 1}, {Mixed, 2},
    2136               {Full, 7}, {Mixed, 1}, {Full, 8}, {Mixed, 1}, {Full, 1},
    2137               {Mixed, 2}, {Full, 1}, {Mixed, 3}, {Empty, 1}, {Mixed, 4},
    2138               {Empty, 1}, {Mixed, 5}, {Full, 1}, {Mixed, 1}, {Empty, 83},
    2139               {Full, 1}, {Mixed, 2}, {Full, 4}, {Mixed, 1}, {Full, 1},
    2140               {Mixed, 1}, {Full, 1}, {Mixed, 4}, {Full, 1}, {Empty, 16},
    2141               {Mixed, 3}, {Full, 1}, {Mixed, 2}, {Full, 1}, {Mixed, 3},
    2142               {Full, 2}, {Mixed, 2}, {Empty, 1}, {Mixed, 1}, {Empty, 16},
    2143               {Full, 205}, {Mixed, 1}, {Empty, 2}, {Full, 655}, {Mixed, 1},
    2144               {Full, 36}, {Mixed, 1}, {Empty, 1}, {Mixed, 2}, {Full, 8},
    2145               {Mixed, 2}, {Full, 1}, {Mixed, 1}, {Full, 3}, {Mixed, 3},
    2146               {Full, 2}, {Mixed, 2}, {Empty, 1}, {Mixed, 1}, {Full, 1},
    2147               {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Full, 2}, {Mixed, 2},
    2148               {Full, 1}, {Mixed, 3}, {Full, 2}, {Mixed, 2}, {Full, 1},
    2149               {Mixed, 3}, {Full, 2}, {Mixed, 6}, {Full, 3}, {Mixed, 1},
    2150               {Full, 349}, {Mixed, 3}, {Empty, 264}, {Full, 11}, {Mixed, 1},
    2151               {Full, 2}, {Mixed, 1}, {Empty, 1}, {Mixed, 3}, {Full, 2},
    2152               {Mixed, 2}, {Full, 10}, {Mixed, 2}, {Full, 1}, {Mixed, 1},
    2153               {Full, 1}, {Mixed, 6}, {Full, 3}, {Mixed, 5}, {Full, 1},
    2154               {Mixed, 2}, {Empty, 1}, {Mixed, 3}, {Empty, 1}, {Full, 3},
    2155               {Mixed, 1}, {Empty, 2}, {Full, 1}, {Mixed, 1}, {Empty, 3},
    2156               {Mixed, 1}, {Empty, 4}, {Mixed, 1}, {Full, 1}, {Mixed, 2},
    2157               {Full, 1}, {Mixed, 4}, {Full, 1}, {Mixed, 1}, {Empty, 1},
    2158               {Full, 4}, {Mixed, 4}, {Full, 1}, {Mixed, 1}, {Full, 1},
    2159               {Mixed, 1}, {Empty, 4}, {Full, 9}, {Mixed, 3}, {Empty, 4},
    2160               {Mixed, 5}, {Empty, 2}, {Mixed, 3}, {Empty, 2}, {Full, 1},
    2161               {Mixed, 1}, {Empty, 2}, {Mixed, 2}, {Empty, 1}, {Mixed, 2},
    2162               {Empty, 1}, {Mixed, 2}, {Full, 1}, {Mixed, 4}, {Empty, 3},
    2163               {Full, 2}, {Mixed, 1}, {Empty, 1}, {Full, 1}, {Mixed, 1},
    2164               {Full, 1}, {Mixed, 1}, {Empty, 24}, {Full, 2}, {Mixed, 2},
    2165               {Full, 1}, {Mixed, 3}, {Full, 1}, {Mixed, 3}, {Full, 2},
    2166               {Mixed, 1}, {Empty, 1}, {Mixed, 2}, {Empty, 2}, {Mixed, 2},
    2167               {Full, 1}, {Mixed, 5}, {Empty, 4}, {Full, 2}, {Mixed, 1},
    2168               {Empty, 1}, {Full, 2}, {Mixed, 1}, {Empty, 5}, {Full, 1},
    2169               {Mixed, 2}, {Empty, 1}, {Full, 2}, {Mixed, 1}, {Empty, 1},
    2170               {Full, 1}, {Mixed, 2}, {Empty, 1}, {Mixed, 2}, {Empty, 11},
    2171               {Full, 2}, {Mixed, 1}, {Empty, 8}, {Full, 1}, {Mixed, 2},
    2172               {Full, 1}, {Mixed, 1}, {Empty, 1}, {Full, 1}, {Mixed, 1},
    2173               {Empty, 8}, {Mixed, 6}, {Empty, 2}, {Mixed, 3}, {Empty, 21},
    2174               {Full, 28}, {Mixed, 1}, {Empty, 3}, {Full, 3}, {Mixed, 1},
    2175               {Full, 6}, {Mixed, 1}, {Empty, 85}, {Full, 33}, {Mixed, 1},
    2176               {Empty, 126}, {Full, 18}, {Mixed, 1}, {Empty, 269},
    2177               {Full, 17}, {Mixed, 3}, {Empty, 2}, {Mixed, 2}, {Full, 1},
    2178               {Mixed, 4}, {Empty, 27}, {Full, 2}, {Mixed, 3}, {Empty, 2},
    2179               {Mixed, 1}, {Full, 191}, {Mixed, 1}, {Full, 23}, {Mixed, 1},
    2180               {Empty, 296}, {Full, 8}, {Mixed, 1}, {Empty, 2}, {Mixed, 1},
    2181               {Full, 11}, {Mixed, 1}, {Empty, 72}, {Full, 3}, {Mixed, 2},
    2182               {Empty, 166}, {Mixed, 3}, {Empty, 4}, {Mixed, 1}, {Empty, 13},
    2183               {Full, 2}, {Mixed, 1}, {Full, 1}, {Mixed, 3}, {Full, 1},
    2184               {Mixed, 3}, {Full, 10}, {Mixed, 10}, {Full, 1}, {Empty, 16},
    2185               {Full, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 3}, {Empty, 42},
    2186               {Mixed, 2}, {Empty, 62}, {Full, 6}, {Mixed, 1}, {Empty, 1},
    2187               {Full, 2}, {Mixed, 1}, {Empty, 37}, {Mixed, 6}, {Empty, 138},
    2188               {Full, 1334}, {Mixed, 1}, {Empty, 1}, {Full, 129}, {Mixed, 1},
    2189               {Full, 6}, {Mixed, 1}, {Full, 180}, {Mixed, 1}, {Full, 233},
    2190               {Mixed, 1}, {Empty, 96}, {Full, 16}, {Mixed, 1},
    2191               {Empty, 22583}, {Full, 7}, {Mixed, 1}, {Empty, 6128}},
    2192              {0x03ff0000, 0x87fffffe, 0x07fffffe, 0x04a00400, 0xff7fffff,
    2193               0xff7fffff, 0x0003ffc3, 0x0000501f, 0xbcdfffff, 0xffffd7c0,
    2194               0xfffffffb, 0xffbfffff, 0xfffffcfb, 0xfffeffff, 0x027fffff,
    2195               0xfffffffe, 0xfffe00ff, 0xbfffffff, 0xffff00b6, 0x000707ff,
    2196               0x07ff0000, 0xffffc3ff, 0x9fefffff, 0x9ffffdff, 0xffff0000,
    2197               0xffffe7ff, 0x0003ffff, 0x043fffff, 0x00003fff, 0x0fffffff,
    2198               0x000007ff, 0x3fdfffff, 0xfff00000, 0xfffffffb, 0xfffeffcf,
    2199               0xfff99fef, 0xf3c5fdff, 0xb080799f, 0x1003ffcf, 0xfff987ee,
    2200               0xd36dfdff, 0x5e023987, 0x003fffc0, 0xfffbbfee, 0xf3edfdff,
    2201               0x00013bbf, 0xfe00ffcf, 0xfff99fee, 0xf3edfdff, 0xb0c0399f,
    2202               0x0002ffcf, 0xd63dc7ec, 0xc3ffc718, 0x00813dc7, 0x0000ffc0,
    2203               0xfffddfef, 0xe3fffdff, 0x07603ddf, 0x0000ffcf, 0xfffddfef,
    2204               0xf3effdff, 0x40603ddf, 0x0006ffcf, 0xfffddfef, 0x80f07ddf,
    2205               0xfc00ffcf, 0xfc7fffec, 0x2ffbffff, 0xff5f847f, 0x000cffc0,
    2206               0xfffffffe, 0x07ffffff, 0x03ff7fff, 0xfef02596, 0x3bffecae,
    2207               0xf3ff3f5f, 0x03000001, 0xc2a003ff, 0xfffffeff, 0xfffe1fff,
    2208               0xfeffffdf, 0x1fffffff, 0x00000040, 0xffff03ff, 0x3fffffff,
    2209               0xffff20bf, 0xf7ffffff, 0x3d7f3dff, 0xffff3dff, 0x7f3dffff,
    2210               0xff7fff3d, 0xff3dffff, 0xe7ffffff, 0x0003fe00, 0x0000ffff,
    2211               0x3f3fffff, 0xfffffffe, 0xffff9fff, 0x07fffffe, 0x01ffc7ff,
    2212               0x001fdfff, 0x001fffff, 0x000fffff, 0x000ddfff, 0x308fffff,
    2213               0x000003ff, 0x03ff3800, 0x00ffffff, 0xffff07ff, 0x003fffff,
    2214               0x7fffffff, 0x0fff0fff, 0xffffffc0, 0x001f3fff, 0xffff0fff,
    2215               0x07ff03ff, 0x0fffffff, 0x7fffffff, 0x9fffffff, 0x03ff03ff,
    2216               0x3fff0080, 0x03ff0fff, 0x000ff800, 0x000fffff, 0x00ffffff,
    2217               0xffffe3ff, 0x3fffffff, 0x000001ff, 0xfff70000, 0x03ffffff,
    2218               0xfbffffff, 0x3f3fffff, 0xaaff3f3f, 0x3fffffff, 0x5fdfffff,
    2219               0x0fcf1fdc, 0x1fdc1fff, 0x80000000, 0x00100001, 0x80020000,
    2220               0x1fff0000, 0x1fff0000, 0x0001ffe2, 0x3f2ffc84, 0xf3fffd50,
    2221               0x000043e0, 0x000001ff, 0xffff7fff, 0x7fffffff, 0x000ff81f,
    2222               0xffff20bf, 0x800080ff, 0x007fffff, 0x7f7f7f7f, 0x7f7f7f7f,
    2223               0x000000e0, 0x1f3efffe, 0xfffffffe, 0xfe7fffff, 0xfffffffe,
    2224               0xf7ffffff, 0xffffffe0, 0xfffe7fff, 0x00007fff, 0x07ffffff,
    2225               0xffff0000, 0x003fffff, 0x000007ff, 0x00001fff, 0xffff0000,
    2226               0x3fffffff, 0xffff1fff, 0x00000fff, 0xbff0ffff, 0x0003ffff,
    2227               0xff800000, 0xfffffffc, 0xfffff9ff, 0x00ff7fff, 0xff800000,
    2228               0x000000ff, 0x000fffff, 0x03ff003f, 0x28ffffff, 0xffff3fff,
    2229               0x000fffff, 0x1fffffff, 0x03ff8001, 0x7fffffff, 0x007fffff,
    2230               0x03ff3fff, 0xfc7fffff, 0x38000007, 0x007cffff, 0x007e7e7e,
    2231               0xffff7f7f, 0xf7ffffff, 0xffff003f, 0x03ff37ff, 0xffff000f,
    2232               0xfffff87f, 0x0fffffff, 0xffff3fff, 0x03ffffff, 0xe0f8007f,
    2233               0x5f7ffdff, 0xffffffdb, 0x0003ffff, 0xfff80000, 0x3fffffff,
    2234               0xffff0000, 0xfffcffff, 0x000000ff, 0x0fff0000, 0x0000ffff,
    2235               0x0018ffff, 0x0000e000, 0xffdf0000, 0x1fffffff, 0x03ff0000,
    2236               0x87fffffe, 0x07fffffe, 0xffffffc0, 0x7fffffff, 0x1cfcfcfc,
    2237               0xffffefff, 0xb7ffff7f, 0x3fff3fff, 0x07ffffff, 0x001fffff,
    2238               0x20000000, 0x1fffffff, 0x0001ffff, 0x00000001, 0xffffe000,
    2239               0xffff07ff, 0x07ffffff, 0x3fffffff, 0x003eff0f, 0x3fffffff,
    2240               0xffff03ff, 0xff0fffff, 0x0fffffff, 0xffff00ff, 0x0000000f,
    2241               0x007fffff, 0x003fffff, 0x000000ff, 0xfffffd3f, 0x91bfffff,
    2242               0x003fffff, 0x007fffff, 0x7fffffff, 0x0037ffff, 0x003fffff,
    2243               0x03ffffff, 0xc0ffffff, 0xfeeff06f, 0x870fffff, 0x1fffffff,
    2244               0x1fffffff, 0xfffffeff, 0x0000007f, 0x003fffff, 0x003fffff,
    2245               0x0007ffff, 0x0003ffff, 0x000001ff, 0x0007ffff, 0x0007ffff,
    2246               0x0000007f, 0x8000ffc0, 0x07ffffff, 0xffff0000, 0x03ff01ff,
    2247               0xffdfffff, 0xffff0000, 0x004fffff, 0x17ff1c1f, 0xfffbffff,
    2248               0x40ffffff, 0xbfffbd7f, 0xffff01ff, 0x03ff07ff, 0xfff99fef,
    2249               0xf3edfdff, 0xe081399f, 0x001f1fcf, 0x03ff07ff, 0x03ff00bf,
    2250               0xff3fffff, 0x3f000001, 0x03ff0011, 0x00ffffff, 0x000003ff,
    2251               0xe3ffffff, 0x03ff0fff, 0x800003ff, 0x7fffffff, 0xffff0080,
    2252               0x03ffffcf, 0x01ffffff, 0xfffffdff, 0xff7fffff, 0x03ff0001,
    2253               0xfffc0000, 0xfffcffff, 0x007ffeff, 0xfffffb7f, 0xb47fffff,
    2254               0x03ff00ff, 0x03ffffff, 0x00007fff, 0x0000000f, 0x00007fff,
    2255               0x0000007f, 0x01ffffff, 0x7fffffff, 0x000003ff, 0xffff0000,
    2256               0x001f3fff, 0x007fffff, 0x03ff000f, 0xe0fffff8, 0x0000ffff,
    2257               0xffff001f, 0x7fffffff, 0xffff8000, 0x00000003, 0x00001fff,
    2258               0x0007ffff, 0x7fffffff, 0xffff0000, 0x0fffffff, 0x1fff07ff,
    2259               0x63ff01ff, 0xf807e3e0, 0x00000fe7, 0x00003c00, 0x0000001c,
    2260               0xffdfffff, 0xdfffffff, 0xebffde64, 0xffffffef, 0xdfdfe7bf,
    2261               0x7bffffff, 0xfffdfc5f, 0xffffff3f, 0xf7fffffd, 0xf7ffffff,
    2262               0xffdfffff, 0xffdfffff, 0xffff7fff, 0xffff7fff, 0xfffffdff,
    2263               0xfffffdff, 0xffffcff7, 0xf87fffff, 0x00201fff, 0xf8000010,
    2264               0x0000fffe, 0xf9ffff7f, 0x000007db, 0x007f001f, 0x03ff07ff,
    2265               0xffffffef, 0x0af7fe96, 0xaa96ea84, 0x5ef7f796, 0x0ffffbff,
    2266               0x0ffffbee, 0x007fffff, 0x001fffff, 0x3fffffff, 0xffff0003,
    2267               0x00000001, 0x3fffffff, 0x0000ffff}};
    2268         static BinaryPropertyObject property_object{IDC, codepoint_set};
     2198
     2199
     2200        namespace {
     2201        const static UnicodeSet::run_t __codepoint_set_runs[] = {
     2202        {Empty, 1}, {Mixed, 3}, {Empty, 1}, {Mixed, 3}, {Full, 14},
     2203        {Mixed, 2}, {Full, 3}, {Mixed, 3}, {Full, 1}, {Mixed, 1}, {Full, 4},
     2204        {Mixed, 1}, {Full, 4}, {Mixed, 8}, {Full, 2}, {Mixed, 1}, {Full, 2},
     2205        {Mixed, 3}, {Full, 1}, {Mixed, 1}, {Full, 2}, {Mixed, 1}, {Full, 1},
     2206        {Mixed, 1}, {Full, 1}, {Mixed, 3}, {Empty, 1}, {Mixed, 3},
     2207        {Full, 3}, {Mixed, 30}, {Full, 1}, {Mixed, 9}, {Empty, 1},
     2208        {Mixed, 3}, {Empty, 1}, {Mixed, 7}, {Empty, 1}, {Full, 2},
     2209        {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 2},
     2210        {Full, 10}, {Mixed, 1}, {Full, 1}, {Mixed, 3}, {Full, 1},
     2211        {Mixed, 1}, {Full, 1}, {Mixed, 3}, {Full, 2}, {Mixed, 2},
     2212        {Full, 18}, {Mixed, 2}, {Full, 2}, {Mixed, 5}, {Full, 2},
     2213        {Mixed, 3}, {Full, 2}, {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Full, 1},
     2214        {Mixed, 5}, {Full, 1}, {Mixed, 2}, {Empty, 1}, {Mixed, 1},
     2215        {Full, 1}, {Mixed, 4}, {Empty, 2}, {Full, 2}, {Mixed, 2}, {Full, 3},
     2216        {Mixed, 1}, {Full, 1}, {Mixed, 4}, {Empty, 1}, {Mixed, 2},
     2217        {Full, 7}, {Mixed, 1}, {Full, 8}, {Mixed, 1}, {Full, 1}, {Mixed, 2},
     2218        {Full, 1}, {Mixed, 3}, {Empty, 1}, {Mixed, 4}, {Empty, 1},
     2219        {Mixed, 5}, {Full, 1}, {Mixed, 1}, {Empty, 83}, {Full, 1},
     2220        {Mixed, 2}, {Full, 4}, {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Full, 1},
     2221        {Mixed, 4}, {Full, 1}, {Empty, 16}, {Mixed, 3}, {Full, 1},
     2222        {Mixed, 2}, {Full, 1}, {Mixed, 3}, {Full, 2}, {Mixed, 2},
     2223        {Empty, 1}, {Mixed, 1}, {Empty, 16}, {Full, 205}, {Mixed, 1},
     2224        {Empty, 2}, {Full, 655}, {Mixed, 1}, {Full, 36}, {Mixed, 1},
     2225        {Empty, 1}, {Mixed, 2}, {Full, 8}, {Mixed, 2}, {Full, 1},
     2226        {Mixed, 1}, {Full, 3}, {Mixed, 3}, {Full, 2}, {Mixed, 2},
     2227        {Empty, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Full, 1},
     2228        {Mixed, 1}, {Full, 2}, {Mixed, 2}, {Full, 1}, {Mixed, 3}, {Full, 2},
     2229        {Mixed, 2}, {Full, 1}, {Mixed, 3}, {Full, 2}, {Mixed, 6}, {Full, 3},
     2230        {Mixed, 1}, {Full, 349}, {Mixed, 3}, {Empty, 264}, {Full, 11},
     2231        {Mixed, 1}, {Full, 2}, {Mixed, 1}, {Empty, 1}, {Mixed, 3},
     2232        {Full, 2}, {Mixed, 2}, {Full, 10}, {Mixed, 2}, {Full, 1},
     2233        {Mixed, 1}, {Full, 1}, {Mixed, 6}, {Full, 3}, {Mixed, 5}, {Full, 1},
     2234        {Mixed, 2}, {Empty, 1}, {Mixed, 3}, {Empty, 1}, {Full, 3},
     2235        {Mixed, 1}, {Empty, 2}, {Full, 1}, {Mixed, 1}, {Empty, 3},
     2236        {Mixed, 1}, {Empty, 4}, {Mixed, 1}, {Full, 1}, {Mixed, 2},
     2237        {Full, 1}, {Mixed, 4}, {Full, 1}, {Mixed, 1}, {Empty, 1}, {Full, 4},
     2238        {Mixed, 4}, {Full, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 1},
     2239        {Empty, 4}, {Full, 9}, {Mixed, 3}, {Empty, 4}, {Mixed, 5},
     2240        {Empty, 2}, {Mixed, 3}, {Empty, 2}, {Full, 1}, {Mixed, 1},
     2241        {Empty, 2}, {Mixed, 2}, {Empty, 1}, {Mixed, 2}, {Empty, 1},
     2242        {Mixed, 2}, {Full, 1}, {Mixed, 4}, {Empty, 3}, {Full, 2},
     2243        {Mixed, 1}, {Empty, 1}, {Full, 1}, {Mixed, 1}, {Full, 1},
     2244        {Mixed, 1}, {Empty, 24}, {Full, 2}, {Mixed, 2}, {Full, 1},
     2245        {Mixed, 3}, {Full, 1}, {Mixed, 3}, {Full, 2}, {Mixed, 1},
     2246        {Empty, 1}, {Mixed, 2}, {Empty, 2}, {Mixed, 2}, {Full, 1},
     2247        {Mixed, 5}, {Empty, 4}, {Full, 2}, {Mixed, 1}, {Empty, 1},
     2248        {Full, 2}, {Mixed, 1}, {Empty, 5}, {Full, 1}, {Mixed, 2},
     2249        {Empty, 1}, {Full, 2}, {Mixed, 1}, {Empty, 1}, {Full, 1},
     2250        {Mixed, 2}, {Empty, 1}, {Mixed, 2}, {Empty, 11}, {Full, 2},
     2251        {Mixed, 1}, {Empty, 8}, {Full, 1}, {Mixed, 2}, {Full, 1},
     2252        {Mixed, 1}, {Empty, 1}, {Full, 1}, {Mixed, 1}, {Empty, 8},
     2253        {Mixed, 6}, {Empty, 2}, {Mixed, 3}, {Empty, 21}, {Full, 28},
     2254        {Mixed, 1}, {Empty, 3}, {Full, 3}, {Mixed, 1}, {Full, 6},
     2255        {Mixed, 1}, {Empty, 85}, {Full, 33}, {Mixed, 1}, {Empty, 126},
     2256        {Full, 18}, {Mixed, 1}, {Empty, 269}, {Full, 17}, {Mixed, 3},
     2257        {Empty, 2}, {Mixed, 2}, {Full, 1}, {Mixed, 4}, {Empty, 27},
     2258        {Full, 2}, {Mixed, 3}, {Empty, 2}, {Mixed, 1}, {Full, 191},
     2259        {Mixed, 1}, {Full, 23}, {Mixed, 1}, {Empty, 296}, {Full, 8},
     2260        {Mixed, 1}, {Empty, 2}, {Mixed, 1}, {Full, 11}, {Mixed, 1},
     2261        {Empty, 72}, {Full, 3}, {Mixed, 2}, {Empty, 166}, {Mixed, 3},
     2262        {Empty, 4}, {Mixed, 1}, {Empty, 13}, {Full, 2}, {Mixed, 1},
     2263        {Full, 1}, {Mixed, 3}, {Full, 1}, {Mixed, 3}, {Full, 10},
     2264        {Mixed, 10}, {Full, 1}, {Empty, 16}, {Full, 1}, {Mixed, 1},
     2265        {Full, 1}, {Mixed, 3}, {Empty, 42}, {Mixed, 2}, {Empty, 62},
     2266        {Full, 6}, {Mixed, 1}, {Empty, 1}, {Full, 2}, {Mixed, 1},
     2267        {Empty, 37}, {Mixed, 6}, {Empty, 138}, {Full, 1334}, {Mixed, 1},
     2268        {Empty, 1}, {Full, 129}, {Mixed, 1}, {Full, 6}, {Mixed, 1},
     2269        {Full, 180}, {Mixed, 1}, {Full, 233}, {Mixed, 1}, {Empty, 96},
     2270        {Full, 16}, {Mixed, 1}, {Empty, 22583}, {Full, 7}, {Mixed, 1},
     2271        {Empty, 6128}};
     2272        const static UnicodeSet::bitquad_t  __codepoint_set_quads[] = {
     2273        0x03ff0000, 0x87fffffe, 0x07fffffe, 0x04a00400, 0xff7fffff,
     2274        0xff7fffff, 0x0003ffc3, 0x0000501f, 0xbcdfffff, 0xffffd7c0,
     2275        0xfffffffb, 0xffbfffff, 0xfffffcfb, 0xfffeffff, 0x027fffff,
     2276        0xfffffffe, 0xfffe00ff, 0xbfffffff, 0xffff00b6, 0x000707ff,
     2277        0x07ff0000, 0xffffc3ff, 0x9fefffff, 0x9ffffdff, 0xffff0000,
     2278        0xffffe7ff, 0x0003ffff, 0x043fffff, 0x00003fff, 0x0fffffff,
     2279        0x000007ff, 0x3fdfffff, 0xfff00000, 0xfffffffb, 0xfffeffcf,
     2280        0xfff99fef, 0xf3c5fdff, 0xb080799f, 0x1003ffcf, 0xfff987ee,
     2281        0xd36dfdff, 0x5e023987, 0x003fffc0, 0xfffbbfee, 0xf3edfdff,
     2282        0x00013bbf, 0xfe00ffcf, 0xfff99fee, 0xf3edfdff, 0xb0c0399f,
     2283        0x0002ffcf, 0xd63dc7ec, 0xc3ffc718, 0x00813dc7, 0x0000ffc0,
     2284        0xfffddfef, 0xe3fffdff, 0x07603ddf, 0x0000ffcf, 0xfffddfef,
     2285        0xf3effdff, 0x40603ddf, 0x0006ffcf, 0xfffddfef, 0x80f07ddf,
     2286        0xfc00ffcf, 0xfc7fffec, 0x2ffbffff, 0xff5f847f, 0x000cffc0,
     2287        0xfffffffe, 0x07ffffff, 0x03ff7fff, 0xfef02596, 0x3bffecae,
     2288        0xf3ff3f5f, 0x03000001, 0xc2a003ff, 0xfffffeff, 0xfffe1fff,
     2289        0xfeffffdf, 0x1fffffff, 0x00000040, 0xffff03ff, 0x3fffffff,
     2290        0xffff20bf, 0xf7ffffff, 0x3d7f3dff, 0xffff3dff, 0x7f3dffff,
     2291        0xff7fff3d, 0xff3dffff, 0xe7ffffff, 0x0003fe00, 0x0000ffff,
     2292        0x3f3fffff, 0xfffffffe, 0xffff9fff, 0x07fffffe, 0x01ffc7ff,
     2293        0x001fdfff, 0x001fffff, 0x000fffff, 0x000ddfff, 0x308fffff,
     2294        0x000003ff, 0x03ff3800, 0x00ffffff, 0xffff07ff, 0x003fffff,
     2295        0x7fffffff, 0x0fff0fff, 0xffffffc0, 0x001f3fff, 0xffff0fff,
     2296        0x07ff03ff, 0x0fffffff, 0x7fffffff, 0x9fffffff, 0x03ff03ff,
     2297        0x3fff0080, 0x03ff0fff, 0x000ff800, 0x000fffff, 0x00ffffff,
     2298        0xffffe3ff, 0x3fffffff, 0x000001ff, 0xfff70000, 0x03ffffff,
     2299        0xfbffffff, 0x3f3fffff, 0xaaff3f3f, 0x3fffffff, 0x5fdfffff,
     2300        0x0fcf1fdc, 0x1fdc1fff, 0x80000000, 0x00100001, 0x80020000,
     2301        0x1fff0000, 0x1fff0000, 0x0001ffe2, 0x3f2ffc84, 0xf3fffd50,
     2302        0x000043e0, 0x000001ff, 0xffff7fff, 0x7fffffff, 0x000ff81f,
     2303        0xffff20bf, 0x800080ff, 0x007fffff, 0x7f7f7f7f, 0x7f7f7f7f,
     2304        0x000000e0, 0x1f3efffe, 0xfffffffe, 0xfe7fffff, 0xfffffffe,
     2305        0xf7ffffff, 0xffffffe0, 0xfffe7fff, 0x00007fff, 0x07ffffff,
     2306        0xffff0000, 0x003fffff, 0x000007ff, 0x00001fff, 0xffff0000,
     2307        0x3fffffff, 0xffff1fff, 0x00000fff, 0xbff0ffff, 0x0003ffff,
     2308        0xff800000, 0xfffffffc, 0xfffff9ff, 0x00ff7fff, 0xff800000,
     2309        0x000000ff, 0x000fffff, 0x03ff003f, 0x28ffffff, 0xffff3fff,
     2310        0x000fffff, 0x1fffffff, 0x03ff8001, 0x7fffffff, 0x007fffff,
     2311        0x03ff3fff, 0xfc7fffff, 0x38000007, 0x007cffff, 0x007e7e7e,
     2312        0xffff7f7f, 0xf7ffffff, 0xffff003f, 0x03ff37ff, 0xffff000f,
     2313        0xfffff87f, 0x0fffffff, 0xffff3fff, 0x03ffffff, 0xe0f8007f,
     2314        0x5f7ffdff, 0xffffffdb, 0x0003ffff, 0xfff80000, 0x3fffffff,
     2315        0xffff0000, 0xfffcffff, 0x000000ff, 0x0fff0000, 0x0000ffff,
     2316        0x0018ffff, 0x0000e000, 0xffdf0000, 0x1fffffff, 0x03ff0000,
     2317        0x87fffffe, 0x07fffffe, 0xffffffc0, 0x7fffffff, 0x1cfcfcfc,
     2318        0xffffefff, 0xb7ffff7f, 0x3fff3fff, 0x07ffffff, 0x001fffff,
     2319        0x20000000, 0x1fffffff, 0x0001ffff, 0x00000001, 0xffffe000,
     2320        0xffff07ff, 0x07ffffff, 0x3fffffff, 0x003eff0f, 0x3fffffff,
     2321        0xffff03ff, 0xff0fffff, 0x0fffffff, 0xffff00ff, 0x0000000f,
     2322        0x007fffff, 0x003fffff, 0x000000ff, 0xfffffd3f, 0x91bfffff,
     2323        0x003fffff, 0x007fffff, 0x7fffffff, 0x0037ffff, 0x003fffff,
     2324        0x03ffffff, 0xc0ffffff, 0xfeeff06f, 0x870fffff, 0x1fffffff,
     2325        0x1fffffff, 0xfffffeff, 0x0000007f, 0x003fffff, 0x003fffff,
     2326        0x0007ffff, 0x0003ffff, 0x000001ff, 0x0007ffff, 0x0007ffff,
     2327        0x0000007f, 0x8000ffc0, 0x07ffffff, 0xffff0000, 0x03ff01ff,
     2328        0xffdfffff, 0xffff0000, 0x004fffff, 0x17ff1c1f, 0xfffbffff,
     2329        0x40ffffff, 0xbfffbd7f, 0xffff01ff, 0x03ff07ff, 0xfff99fef,
     2330        0xf3edfdff, 0xe081399f, 0x001f1fcf, 0x03ff07ff, 0x03ff00bf,
     2331        0xff3fffff, 0x3f000001, 0x03ff0011, 0x00ffffff, 0x000003ff,
     2332        0xe3ffffff, 0x03ff0fff, 0x800003ff, 0x7fffffff, 0xffff0080,
     2333        0x03ffffcf, 0x01ffffff, 0xfffffdff, 0xff7fffff, 0x03ff0001,
     2334        0xfffc0000, 0xfffcffff, 0x007ffeff, 0xfffffb7f, 0xb47fffff,
     2335        0x03ff00ff, 0x03ffffff, 0x00007fff, 0x0000000f, 0x00007fff,
     2336        0x0000007f, 0x01ffffff, 0x7fffffff, 0x000003ff, 0xffff0000,
     2337        0x001f3fff, 0x007fffff, 0x03ff000f, 0xe0fffff8, 0x0000ffff,
     2338        0xffff001f, 0x7fffffff, 0xffff8000, 0x00000003, 0x00001fff,
     2339        0x0007ffff, 0x7fffffff, 0xffff0000, 0x0fffffff, 0x1fff07ff,
     2340        0x63ff01ff, 0xf807e3e0, 0x00000fe7, 0x00003c00, 0x0000001c,
     2341        0xffdfffff, 0xdfffffff, 0xebffde64, 0xffffffef, 0xdfdfe7bf,
     2342        0x7bffffff, 0xfffdfc5f, 0xffffff3f, 0xf7fffffd, 0xf7ffffff,
     2343        0xffdfffff, 0xffdfffff, 0xffff7fff, 0xffff7fff, 0xfffffdff,
     2344        0xfffffdff, 0xffffcff7, 0xf87fffff, 0x00201fff, 0xf8000010,
     2345        0x0000fffe, 0xf9ffff7f, 0x000007db, 0x007f001f, 0x03ff07ff,
     2346        0xffffffef, 0x0af7fe96, 0xaa96ea84, 0x5ef7f796, 0x0ffffbff,
     2347        0x0ffffbee, 0x007fffff, 0x001fffff, 0x3fffffff, 0xffff0003,
     2348        0x00000001, 0x3fffffff, 0x0000ffff};
     2349        }
     2350
     2351        const static UnicodeSet codepoint_set{const_cast<UnicodeSet::run_t *>(__codepoint_set_runs), 357, 0, const_cast<UnicodeSet::bitquad_t *>(__codepoint_set_quads), 378, 0};
     2352
     2353        static BinaryPropertyObject property_object{IDC, std::move(codepoint_set)};
    22692354    }
    22702355    namespace IDS_ns {
     
    24172502        [2a700, 2b734], [2b740, 2b81d], [2b820, 2cea1], [2ceb0, 2ebe0],
    24182503        [2f800, 2fa1d]**/
    2419         const UnicodeSet codepoint_set
    2420             {{{Empty, 2}, {Mixed, 2}, {Empty, 1}, {Mixed, 3}, {Full, 14},
    2421               {Mixed, 2}, {Empty, 3}, {Mixed, 3}, {Full, 1}, {Mixed, 1},
    2422               {Full, 4}, {Mixed, 1}, {Full, 4}, {Mixed, 4}, {Empty, 1},
    2423               {Mixed, 2}, {Empty, 1}, {Full, 1}, {Mixed, 2}, {Full, 2},
    2424               {Mixed, 5}, {Full, 2}, {Mixed, 7}, {Empty, 1}, {Mixed, 1},
    2425               {Empty, 2}, {Mixed, 23}, {Empty, 1}, {Mixed, 15}, {Empty, 1},
    2426               {Mixed, 3}, {Empty, 1}, {Mixed, 3}, {Empty, 1}, {Mixed, 1},
    2427               {Empty, 1}, {Mixed, 3}, {Empty, 3}, {Full, 1}, {Mixed, 4},
    2428               {Full, 1}, {Mixed, 2}, {Full, 10}, {Mixed, 1}, {Full, 1},
    2429               {Mixed, 3}, {Full, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 1},
    2430               {Empty, 1}, {Mixed, 1}, {Full, 2}, {Mixed, 2}, {Full, 18},
    2431               {Mixed, 2}, {Full, 2}, {Mixed, 5}, {Full, 1}, {Mixed, 2},
    2432               {Empty, 2}, {Full, 2}, {Mixed, 1}, {Full, 1}, {Mixed, 1},
    2433               {Full, 1}, {Mixed, 2}, {Empty, 1}, {Mixed, 2}, {Full, 1},
    2434               {Mixed, 2}, {Empty, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 1},
    2435               {Empty, 2}, {Mixed, 1}, {Empty, 2}, {Mixed, 3}, {Empty, 1},
    2436               {Mixed, 2}, {Full, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 4},
    2437               {Empty, 2}, {Mixed, 1}, {Full, 6}, {Empty, 2}, {Full, 8},
    2438               {Mixed, 1}, {Full, 1}, {Mixed, 2}, {Full, 1}, {Mixed, 3},
    2439               {Empty, 3}, {Mixed, 2}, {Empty, 3}, {Mixed, 3}, {Full, 1},
    2440               {Mixed, 1}, {Empty, 83}, {Full, 1}, {Mixed, 2}, {Full, 4},
    2441               {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 4},
    2442               {Empty, 17}, {Mixed, 3}, {Full, 1}, {Mixed, 2}, {Full, 1},
    2443               {Mixed, 3}, {Full, 2}, {Mixed, 2}, {Empty, 1}, {Mixed, 1},
    2444               {Empty, 16}, {Full, 205}, {Mixed, 1}, {Empty, 2}, {Full, 655},
    2445               {Mixed, 1}, {Full, 36}, {Mixed, 1}, {Empty, 1}, {Mixed, 2},
    2446               {Full, 8}, {Mixed, 2}, {Full, 1}, {Mixed, 2}, {Full, 2},
    2447               {Mixed, 3}, {Full, 2}, {Mixed, 2}, {Empty, 1}, {Mixed, 3},
    2448               {Full, 1}, {Mixed, 3}, {Empty, 1}, {Mixed, 9}, {Full, 1},
    2449               {Mixed, 3}, {Full, 1}, {Mixed, 7}, {Full, 3}, {Mixed, 1},
    2450               {Full, 349}, {Mixed, 3}, {Empty, 264}, {Full, 11}, {Mixed, 1},
    2451               {Full, 2}, {Mixed, 1}, {Empty, 1}, {Mixed, 3}, {Full, 2},
    2452               {Mixed, 2}, {Full, 10}, {Mixed, 2}, {Full, 1}, {Mixed, 1},
    2453               {Full, 1}, {Mixed, 2}, {Empty, 3}, {Mixed, 1}, {Full, 3},
    2454               {Mixed, 1}, {Empty, 1}, {Mixed, 3}, {Full, 1}, {Mixed, 2},
    2455               {Empty, 1}, {Mixed, 3}, {Empty, 1}, {Full, 3}, {Mixed, 1},
    2456               {Empty, 2}, {Full, 1}, {Mixed, 1}, {Empty, 8}, {Mixed, 1},
    2457               {Full, 1}, {Mixed, 1}, {Empty, 1}, {Full, 1}, {Mixed, 4},
    2458               {Full, 1}, {Mixed, 1}, {Empty, 1}, {Full, 4}, {Mixed, 4},
    2459               {Full, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Empty, 4},
    2460               {Full, 9}, {Mixed, 3}, {Empty, 4}, {Mixed, 5}, {Empty, 2},
    2461               {Mixed, 3}, {Empty, 2}, {Full, 1}, {Mixed, 1}, {Empty, 2},
    2462               {Mixed, 2}, {Empty, 1}, {Mixed, 2}, {Empty, 1}, {Mixed, 2},
    2463               {Full, 1}, {Mixed, 4}, {Empty, 3}, {Full, 2}, {Mixed, 1},
    2464               {Empty, 1}, {Full, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 1},
    2465               {Empty, 24}, {Mixed, 2}, {Empty, 2}, {Mixed, 11}, {Empty, 1},
    2466               {Mixed, 2}, {Empty, 2}, {Mixed, 3}, {Empty, 1}, {Mixed, 4},
    2467               {Empty, 4}, {Full, 1}, {Mixed, 2}, {Empty, 1}, {Full, 1},
    2468               {Mixed, 2}, {Empty, 5}, {Full, 1}, {Mixed, 2}, {Empty, 1},
    2469               {Full, 1}, {Mixed, 2}, {Empty, 1}, {Full, 1}, {Mixed, 1},
    2470               {Empty, 2}, {Mixed, 1}, {Empty, 12}, {Full, 2}, {Mixed, 1},
    2471               {Empty, 8}, {Mixed, 3}, {Full, 1}, {Mixed, 1}, {Empty, 1},
    2472               {Full, 1}, {Mixed, 1}, {Empty, 8}, {Mixed, 5}, {Empty, 3},
    2473               {Mixed, 3}, {Empty, 21}, {Full, 28}, {Mixed, 1}, {Empty, 3},
    2474               {Full, 3}, {Mixed, 1}, {Full, 6}, {Mixed, 1}, {Empty, 85},
    2475               {Full, 33}, {Mixed, 1}, {Empty, 126}, {Full, 18}, {Mixed, 1},
    2476               {Empty, 269}, {Full, 17}, {Mixed, 2}, {Empty, 3}, {Mixed, 2},
    2477               {Full, 1}, {Mixed, 4}, {Empty, 27}, {Full, 2}, {Mixed, 1},
    2478               {Empty, 1}, {Mixed, 1}, {Empty, 2}, {Mixed, 1}, {Full, 191},
    2479               {Mixed, 1}, {Full, 23}, {Mixed, 1}, {Empty, 296}, {Full, 8},
    2480               {Mixed, 1}, {Empty, 2}, {Mixed, 1}, {Full, 11}, {Mixed, 1},
    2481               {Empty, 72}, {Full, 3}, {Mixed, 2}, {Empty, 187}, {Full, 2},
    2482               {Mixed, 1}, {Full, 1}, {Mixed, 3}, {Full, 1}, {Mixed, 3},
    2483               {Full, 10}, {Mixed, 10}, {Empty, 129}, {Full, 6}, {Mixed, 1},
    2484               {Empty, 1}, {Full, 2}, {Mixed, 1}, {Empty, 37}, {Mixed, 6},
    2485               {Empty, 138}, {Full, 1334}, {Mixed, 1}, {Empty, 1},
    2486               {Full, 129}, {Mixed, 1}, {Full, 6}, {Mixed, 1}, {Full, 180},
    2487               {Mixed, 1}, {Full, 233}, {Mixed, 1}, {Empty, 96}, {Full, 16},
    2488               {Mixed, 1}, {Empty, 28719}},
    2489              {0x07fffffe, 0x07fffffe, 0x04200400, 0xff7fffff, 0xff7fffff,
    2490               0x0003ffc3, 0x0000501f, 0xbcdf0000, 0xffffd740, 0xfffffffb,
    2491               0xffbfffff, 0xfffffc03, 0xfffeffff, 0x027fffff, 0xfffffffe,
    2492               0x000000ff, 0xffff0000, 0x000707ff, 0x000007ff, 0xfffec000,
    2493               0x002fffff, 0x9c00c060, 0xfffd0000, 0x0000ffff, 0xffffe000,
    2494               0x0002003f, 0xfffffc00, 0x043007ff, 0x043fffff, 0x00000110,
    2495               0x01ffffff, 0x000007ff, 0x3fdfffff, 0xfffffff0, 0x23ffffff,
    2496               0xff010000, 0xfffe0003, 0xfff99fe1, 0x23c5fdff, 0xb0004000,
    2497               0x10030003, 0xfff987e0, 0x036dfdff, 0x5e000000, 0x001c0000,
    2498               0xfffbbfe0, 0x23edfdff, 0x00010000, 0x02000003, 0xfff99fe0,
    2499               0x23edfdff, 0xb0000000, 0x00020003, 0xd63dc7e8, 0x03ffc718,
    2500               0x00010000, 0xfffddfe0, 0x23fffdff, 0x07000000, 0x00000003,
    2501               0xfffddfe1, 0x23effdff, 0x40000000, 0x00060003, 0xfffddfe0,
    2502               0x27ffffff, 0x80704000, 0xfc000003, 0xfc7fffe0, 0x2ffbffff,
    2503               0x0000007f, 0xfffffffe, 0x000dffff, 0x0000007f, 0xfef02596,
    2504               0x200decae, 0xf000005f, 0x00000001, 0xfffffeff, 0x00001fff,
    2505               0x00001f00, 0x800007ff, 0x3c3f0000, 0xffe1c062, 0x00004003,
    2506               0xffff20bf, 0xf7ffffff, 0x3d7f3dff, 0xffff3dff, 0x7f3dffff,
    2507               0xff7fff3d, 0xff3dffff, 0x07ffffff, 0x0000ffff, 0x3f3fffff,
    2508               0xfffffffe, 0xffff9fff, 0x07fffffe, 0x01ffc7ff, 0x0003dfff,
    2509               0x0003ffff, 0x0003ffff, 0x0001dfff, 0x000fffff, 0x10800000,
    2510               0x00ffffff, 0xffff05ff, 0x003fffff, 0x7fffffff, 0xffff0000,
    2511               0x001f3fff, 0xffff0fff, 0x000003ff, 0x007fffff, 0x001fffff,
    2512               0x00000080, 0xffffffe0, 0x000fffff, 0x00000fe0, 0xfffffff8,
    2513               0xfc00c001, 0x0000003f, 0x0000000f, 0xfc00e000, 0x3fffffff,
    2514               0x000001ff, 0x0063de00, 0x3f3fffff, 0xaaff3f3f, 0x3fffffff,
    2515               0x5fdfffff, 0x0fcf1fdc, 0x1fdc1fff, 0x80020000, 0x1fff0000,
    2516               0x3f2ffc84, 0xf3fffd50, 0x000043e0, 0x000001ff, 0xffff7fff,
    2517               0x7fffffff, 0x000c781f, 0xffff20bf, 0x000080ff, 0x007fffff,
    2518               0x7f7f7f7f, 0x7f7f7f7f, 0x000000e0, 0x1f3e03fe, 0xfffffffe,
    2519               0xf87fffff, 0xfffffffe, 0xf7ffffff, 0xffffffe0, 0xfffe7fff,
    2520               0x00007fff, 0x07ffffff, 0xffff0000, 0x003fffff, 0x000007ff,
    2521               0x00001fff, 0xffff0000, 0x3fffffff, 0xffff1fff, 0x00000c00,
    2522               0x80007fff, 0x3fffffff, 0x0000ffff, 0xff800000, 0xfffffffc,
    2523               0xfffff9ff, 0x00ff7fff, 0xff800000, 0xfffff7bb, 0x00000007,
    2524               0x000fffff, 0xfffffffc, 0x000fffff, 0x28fc0000, 0xfffffc00,
    2525               0xffff003f, 0x0000007f, 0x1fffffff, 0xfffffff0, 0x0007ffff,
    2526               0x00008000, 0x7c00ffdf, 0x000001ff, 0x00000ff7, 0xc47fffff,
    2527               0x3e62ffff, 0x38000005, 0x001c07ff, 0x007e7e7e, 0xffff7f7f,
    2528               0xf7ffffff, 0xffff003f, 0x00000007, 0xffff000f, 0xfffff87f,
    2529               0x0fffffff, 0xffff3fff, 0x03ffffff, 0xa0f8007f, 0x5f7ffdff,
    2530               0xffffffdb, 0x0003ffff, 0xfff80000, 0x3fffffff, 0xffff0000,
    2531               0xfffcffff, 0x000000ff, 0x0fff0000, 0xffdf0000, 0x1fffffff,
    2532               0x07fffffe, 0x07fffffe, 0xffffffc0, 0x7fffffff, 0x1cfcfcfc,
    2533               0xffffefff, 0xb7ffff7f, 0x3fff3fff, 0x07ffffff, 0x001fffff,
    2534               0x1fffffff, 0x0001ffff, 0xffffe000, 0xffff07ff, 0x003fffff,
    2535               0x3fffffff, 0x003eff0f, 0x3fffffff, 0xffff0000, 0xff0fffff,
    2536               0x0fffffff, 0xffff00ff, 0x0000000f, 0x007fffff, 0x003fffff,
    2537               0x000000ff, 0xfffffd3f, 0x91bfffff, 0x003fffff, 0x007fffff,
    2538               0x7fffffff, 0x0037ffff, 0x003fffff, 0x03ffffff, 0xc0ffffff,
    2539               0xfeef0001, 0x000fffff, 0x1fffffff, 0x1fffffff, 0xfffffeff,
    2540               0x0000001f, 0x003fffff, 0x003fffff, 0x0007ffff, 0x0003ffff,
    2541               0x000001ff, 0x0007ffff, 0x0007ffff, 0xfffffff8, 0x00ffffff,
    2542               0xfffffff8, 0x0000ffff, 0xffff0000, 0x000001ff, 0xfffffff8,
    2543               0x0000007f, 0xffff0000, 0x0047ffff, 0xfffffff8, 0x0007ffff,
    2544               0x1400001e, 0xfffbffff, 0x00000fff, 0xbfffbd7f, 0xffff01ff,
    2545               0x7fffffff, 0xfff99fe0, 0x23edfdff, 0xe0010000, 0x00000003,
    2546               0x001fffff, 0x00000780, 0x0000ffff, 0x000000b0, 0x00007fff,
    2547               0x0f000000, 0x0000ffff, 0x00000010, 0x000007ff, 0x03ffffff,
    2548               0x80000000, 0xfffff801, 0x0407ffff, 0xf0010000, 0x000003cf,
    2549               0x01ffffff, 0xfffffdff, 0x00007fff, 0x00000001, 0xfffc0000,
    2550               0x0000ffff, 0xfffffb7f, 0x0001ffff, 0x00000040, 0x03ffffff,
    2551               0x00007fff, 0x0000000f, 0x00007fff, 0x0000007f, 0x01ffffff,
    2552               0x7fffffff, 0xffff0000, 0x00003fff, 0x0000ffff, 0x0000000f,
    2553               0xe0fffff8, 0x0000ffff, 0x0001001f, 0xfff80000, 0x00000003,
    2554               0x00001fff, 0x0007ffff, 0x7fffffff, 0xffff0000, 0x0fffffff,
    2555               0x1fff07ff, 0x03ff01ff, 0xffdfffff, 0xdfffffff, 0xebffde64,
    2556               0xffffffef, 0xdfdfe7bf, 0x7bffffff, 0xfffdfc5f, 0xffffff3f,
    2557               0xf7fffffd, 0xf7ffffff, 0xffdfffff, 0xffdfffff, 0xffff7fff,
    2558               0xffff7fff, 0xfffffdff, 0xfffffdff, 0x00000ff7, 0x0000001f,
    2559               0x0000000f, 0xffffffef, 0x0af7fe96, 0xaa96ea84, 0x5ef7f796,
    2560               0x0ffffbff, 0x0ffffbee, 0x007fffff, 0x001fffff, 0x3fffffff,
    2561               0xffff0003, 0x00000001, 0x3fffffff}};
    2562         static BinaryPropertyObject property_object{IDS, codepoint_set};
     2504
     2505
     2506        namespace {
     2507        const static UnicodeSet::run_t __codepoint_set_runs[] = {
     2508        {Empty, 2}, {Mixed, 2}, {Empty, 1}, {Mixed, 3}, {Full, 14},
     2509        {Mixed, 2}, {Empty, 3}, {Mixed, 3}, {Full, 1}, {Mixed, 1},
     2510        {Full, 4}, {Mixed, 1}, {Full, 4}, {Mixed, 4}, {Empty, 1},
     2511        {Mixed, 2}, {Empty, 1}, {Full, 1}, {Mixed, 2}, {Full, 2},
     2512        {Mixed, 5}, {Full, 2}, {Mixed, 7}, {Empty, 1}, {Mixed, 1},
     2513        {Empty, 2}, {Mixed, 23}, {Empty, 1}, {Mixed, 15}, {Empty, 1},
     2514        {Mixed, 3}, {Empty, 1}, {Mixed, 3}, {Empty, 1}, {Mixed, 1},
     2515        {Empty, 1}, {Mixed, 3}, {Empty, 3}, {Full, 1}, {Mixed, 4},
     2516        {Full, 1}, {Mixed, 2}, {Full, 10}, {Mixed, 1}, {Full, 1},
     2517        {Mixed, 3}, {Full, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 1},
     2518        {Empty, 1}, {Mixed, 1}, {Full, 2}, {Mixed, 2}, {Full, 18},
     2519        {Mixed, 2}, {Full, 2}, {Mixed, 5}, {Full, 1}, {Mixed, 2},
     2520        {Empty, 2}, {Full, 2}, {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Full, 1},
     2521        {Mixed, 2}, {Empty, 1}, {Mixed, 2}, {Full, 1}, {Mixed, 2},
     2522        {Empty, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Empty, 2},
     2523        {Mixed, 1}, {Empty, 2}, {Mixed, 3}, {Empty, 1}, {Mixed, 2},
     2524        {Full, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 4}, {Empty, 2},
     2525        {Mixed, 1}, {Full, 6}, {Empty, 2}, {Full, 8}, {Mixed, 1}, {Full, 1},
     2526        {Mixed, 2}, {Full, 1}, {Mixed, 3}, {Empty, 3}, {Mixed, 2},
     2527        {Empty, 3}, {Mixed, 3}, {Full, 1}, {Mixed, 1}, {Empty, 83},
     2528        {Full, 1}, {Mixed, 2}, {Full, 4}, {Mixed, 1}, {Full, 1}, {Mixed, 1},
     2529        {Full, 1}, {Mixed, 4}, {Empty, 17}, {Mixed, 3}, {Full, 1},
     2530        {Mixed, 2}, {Full, 1}, {Mixed, 3}, {Full, 2}, {Mixed, 2},
     2531        {Empty, 1}, {Mixed, 1}, {Empty, 16}, {Full, 205}, {Mixed, 1},
     2532        {Empty, 2}, {Full, 655}, {Mixed, 1}, {Full, 36}, {Mixed, 1},
     2533        {Empty, 1}, {Mixed, 2}, {Full, 8}, {Mixed, 2}, {Full, 1},
     2534        {Mixed, 2}, {Full, 2}, {Mixed, 3}, {Full, 2}, {Mixed, 2},
     2535        {Empty, 1}, {Mixed, 3}, {Full, 1}, {Mixed, 3}, {Empty, 1},
     2536        {Mixed, 9}, {Full, 1}, {Mixed, 3}, {Full, 1}, {Mixed, 7}, {Full, 3},
     2537        {Mixed, 1}, {Full, 349}, {Mixed, 3}, {Empty, 264}, {Full, 11},
     2538        {Mixed, 1}, {Full, 2}, {Mixed, 1}, {Empty, 1}, {Mixed, 3},
     2539        {Full, 2}, {Mixed, 2}, {Full, 10}, {Mixed, 2}, {Full, 1},
     2540        {Mixed, 1}, {Full, 1}, {Mixed, 2}, {Empty, 3}, {Mixed, 1},
     2541        {Full, 3}, {Mixed, 1}, {Empty, 1}, {Mixed, 3}, {Full, 1},
     2542        {Mixed, 2}, {Empty, 1}, {Mixed, 3}, {Empty, 1}, {Full, 3},
     2543        {Mixed, 1}, {Empty, 2}, {Full, 1}, {Mixed, 1}, {Empty, 8},
     2544        {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Empty, 1}, {Full, 1},
     2545        {Mixed, 4}, {Full, 1}, {Mixed, 1}, {Empty, 1}, {Full, 4},
     2546        {Mixed, 4}, {Full, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 1},
     2547        {Empty, 4}, {Full, 9}, {Mixed, 3}, {Empty, 4}, {Mixed, 5},
     2548        {Empty, 2}, {Mixed, 3}, {Empty, 2}, {Full, 1}, {Mixed, 1},
     2549        {Empty, 2}, {Mixed, 2}, {Empty, 1}, {Mixed, 2}, {Empty, 1},
     2550        {Mixed, 2}, {Full, 1}, {Mixed, 4}, {Empty, 3}, {Full, 2},
     2551        {Mixed, 1}, {Empty, 1}, {Full, 1}, {Mixed, 1}, {Full, 1},
     2552        {Mixed, 1}, {Empty, 24}, {Mixed, 2}, {Empty, 2}, {Mixed, 11},
     2553        {Empty, 1}, {Mixed, 2}, {Empty, 2}, {Mixed, 3}, {Empty, 1},
     2554        {Mixed, 4}, {Empty, 4}, {Full, 1}, {Mixed, 2}, {Empty, 1},
     2555        {Full, 1}, {Mixed, 2}, {Empty, 5}, {Full, 1}, {Mixed, 2},
     2556        {Empty, 1}, {Full, 1}, {Mixed, 2}, {Empty, 1}, {Full, 1},
     2557        {Mixed, 1}, {Empty, 2}, {Mixed, 1}, {Empty, 12}, {Full, 2},
     2558        {Mixed, 1}, {Empty, 8}, {Mixed, 3}, {Full, 1}, {Mixed, 1},
     2559        {Empty, 1}, {Full, 1}, {Mixed, 1}, {Empty, 8}, {Mixed, 5},
     2560        {Empty, 3}, {Mixed, 3}, {Empty, 21}, {Full, 28}, {Mixed, 1},
     2561        {Empty, 3}, {Full, 3}, {Mixed, 1}, {Full, 6}, {Mixed, 1},
     2562        {Empty, 85}, {Full, 33}, {Mixed, 1}, {Empty, 126}, {Full, 18},
     2563        {Mixed, 1}, {Empty, 269}, {Full, 17}, {Mixed, 2}, {Empty, 3},
     2564        {Mixed, 2}, {Full, 1}, {Mixed, 4}, {Empty, 27}, {Full, 2},
     2565        {Mixed, 1}, {Empty, 1}, {Mixed, 1}, {Empty, 2}, {Mixed, 1},
     2566        {Full, 191}, {Mixed, 1}, {Full, 23}, {Mixed, 1}, {Empty, 296},
     2567        {Full, 8}, {Mixed, 1}, {Empty, 2}, {Mixed, 1}, {Full, 11},
     2568        {Mixed, 1}, {Empty, 72}, {Full, 3}, {Mixed, 2}, {Empty, 187},
     2569        {Full, 2}, {Mixed, 1}, {Full, 1}, {Mixed, 3}, {Full, 1}, {Mixed, 3},
     2570        {Full, 10}, {Mixed, 10}, {Empty, 129}, {Full, 6}, {Mixed, 1},
     2571        {Empty, 1}, {Full, 2}, {Mixed, 1}, {Empty, 37}, {Mixed, 6},
     2572        {Empty, 138}, {Full, 1334}, {Mixed, 1}, {Empty, 1}, {Full, 129},
     2573        {Mixed, 1}, {Full, 6}, {Mixed, 1}, {Full, 180}, {Mixed, 1},
     2574        {Full, 233}, {Mixed, 1}, {Empty, 96}, {Full, 16}, {Mixed, 1},
     2575        {Empty, 28719}};
     2576        const static UnicodeSet::bitquad_t  __codepoint_set_quads[] = {
     2577        0x07fffffe, 0x07fffffe, 0x04200400, 0xff7fffff, 0xff7fffff,
     2578        0x0003ffc3, 0x0000501f, 0xbcdf0000, 0xffffd740, 0xfffffffb,
     2579        0xffbfffff, 0xfffffc03, 0xfffeffff, 0x027fffff, 0xfffffffe,
     2580        0x000000ff, 0xffff0000, 0x000707ff, 0x000007ff, 0xfffec000,
     2581        0x002fffff, 0x9c00c060, 0xfffd0000, 0x0000ffff, 0xffffe000,
     2582        0x0002003f, 0xfffffc00, 0x043007ff, 0x043fffff, 0x00000110,
     2583        0x01ffffff, 0x000007ff, 0x3fdfffff, 0xfffffff0, 0x23ffffff,
     2584        0xff010000, 0xfffe0003, 0xfff99fe1, 0x23c5fdff, 0xb0004000,
     2585        0x10030003, 0xfff987e0, 0x036dfdff, 0x5e000000, 0x001c0000,
     2586        0xfffbbfe0, 0x23edfdff, 0x00010000, 0x02000003, 0xfff99fe0,
     2587        0x23edfdff, 0xb0000000, 0x00020003, 0xd63dc7e8, 0x03ffc718,
     2588        0x00010000, 0xfffddfe0, 0x23fffdff, 0x07000000, 0x00000003,
     2589        0xfffddfe1, 0x23effdff, 0x40000000, 0x00060003, 0xfffddfe0,
     2590        0x27ffffff, 0x80704000, 0xfc000003, 0xfc7fffe0, 0x2ffbffff,
     2591        0x0000007f, 0xfffffffe, 0x000dffff, 0x0000007f, 0xfef02596,
     2592        0x200decae, 0xf000005f, 0x00000001, 0xfffffeff, 0x00001fff,
     2593        0x00001f00, 0x800007ff, 0x3c3f0000, 0xffe1c062, 0x00004003,
     2594        0xffff20bf, 0xf7ffffff, 0x3d7f3dff, 0xffff3dff, 0x7f3dffff,
     2595        0xff7fff3d, 0xff3dffff, 0x07ffffff, 0x0000ffff, 0x3f3fffff,
     2596        0xfffffffe, 0xffff9fff, 0x07fffffe, 0x01ffc7ff, 0x0003dfff,
     2597        0x0003ffff, 0x0003ffff, 0x0001dfff, 0x000fffff, 0x10800000,
     2598        0x00ffffff, 0xffff05ff, 0x003fffff, 0x7fffffff, 0xffff0000,
     2599        0x001f3fff, 0xffff0fff, 0x000003ff, 0x007fffff, 0x001fffff,
     2600        0x00000080, 0xffffffe0, 0x000fffff, 0x00000fe0, 0xfffffff8,
     2601        0xfc00c001, 0x0000003f, 0x0000000f, 0xfc00e000, 0x3fffffff,
     2602        0x000001ff, 0x0063de00, 0x3f3fffff, 0xaaff3f3f, 0x3fffffff,
     2603        0x5fdfffff, 0x0fcf1fdc, 0x1fdc1fff, 0x80020000, 0x1fff0000,
     2604        0x3f2ffc84, 0xf3fffd50, 0x000043e0, 0x000001ff, 0xffff7fff,
     2605        0x7fffffff, 0x000c781f, 0xffff20bf, 0x000080ff, 0x007fffff,
     2606        0x7f7f7f7f, 0x7f7f7f7f, 0x000000e0, 0x1f3e03fe, 0xfffffffe,
     2607        0xf87fffff, 0xfffffffe, 0xf7ffffff, 0xffffffe0, 0xfffe7fff,
     2608        0x00007fff, 0x07ffffff, 0xffff0000, 0x003fffff, 0x000007ff,
     2609        0x00001fff, 0xffff0000, 0x3fffffff, 0xffff1fff, 0x00000c00,
     2610        0x80007fff, 0x3fffffff, 0x0000ffff, 0xff800000, 0xfffffffc,
     2611        0xfffff9ff, 0x00ff7fff, 0xff800000, 0xfffff7bb, 0x00000007,
     2612        0x000fffff, 0xfffffffc, 0x000fffff, 0x28fc0000, 0xfffffc00,
     2613        0xffff003f, 0x0000007f, 0x1fffffff, 0xfffffff0, 0x0007ffff,
     2614        0x00008000, 0x7c00ffdf, 0x000001ff, 0x00000ff7, 0xc47fffff,
     2615        0x3e62ffff, 0x38000005, 0x001c07ff, 0x007e7e7e, 0xffff7f7f,
     2616        0xf7ffffff, 0xffff003f, 0x00000007, 0xffff000f, 0xfffff87f,
     2617        0x0fffffff, 0xffff3fff, 0x03ffffff, 0xa0f8007f, 0x5f7ffdff,
     2618        0xffffffdb, 0x0003ffff, 0xfff80000, 0x3fffffff, 0xffff0000,
     2619        0xfffcffff, 0x000000ff, 0x0fff0000, 0xffdf0000, 0x1fffffff,
     2620        0x07fffffe, 0x07fffffe, 0xffffffc0, 0x7fffffff, 0x1cfcfcfc,
     2621        0xffffefff, 0xb7ffff7f, 0x3fff3fff, 0x07ffffff, 0x001fffff,
     2622        0x1fffffff, 0x0001ffff, 0xffffe000, 0xffff07ff, 0x003fffff,
     2623        0x3fffffff, 0x003eff0f, 0x3fffffff, 0xffff0000, 0xff0fffff,
     2624        0x0fffffff, 0xffff00ff, 0x0000000f, 0x007fffff, 0x003fffff,
     2625        0x000000ff, 0xfffffd3f, 0x91bfffff, 0x003fffff, 0x007fffff,
     2626        0x7fffffff, 0x0037ffff, 0x003fffff, 0x03ffffff, 0xc0ffffff,
     2627        0xfeef0001, 0x000fffff, 0x1fffffff, 0x1fffffff, 0xfffffeff,
     2628        0x0000001f, 0x003fffff, 0x003fffff, 0x0007ffff, 0x0003ffff,
     2629        0x000001ff, 0x0007ffff, 0x0007ffff, 0xfffffff8, 0x00ffffff,
     2630        0xfffffff8, 0x0000ffff, 0xffff0000, 0x000001ff, 0xfffffff8,
     2631        0x0000007f, 0xffff0000, 0x0047ffff, 0xfffffff8, 0x0007ffff,
     2632        0x1400001e, 0xfffbffff, 0x00000fff, 0xbfffbd7f, 0xffff01ff,
     2633        0x7fffffff, 0xfff99fe0, 0x23edfdff, 0xe0010000, 0x00000003,
     2634        0x001fffff, 0x00000780, 0x0000ffff, 0x000000b0, 0x00007fff,
     2635        0x0f000000, 0x0000ffff, 0x00000010, 0x000007ff, 0x03ffffff,
     2636        0x80000000, 0xfffff801, 0x0407ffff, 0xf0010000, 0x000003cf,
     2637        0x01ffffff, 0xfffffdff, 0x00007fff, 0x00000001, 0xfffc0000,
     2638        0x0000ffff, 0xfffffb7f, 0x0001ffff, 0x00000040, 0x03ffffff,
     2639        0x00007fff, 0x0000000f, 0x00007fff, 0x0000007f, 0x01ffffff,
     2640        0x7fffffff, 0xffff0000, 0x00003fff, 0x0000ffff, 0x0000000f,
     2641        0xe0fffff8, 0x0000ffff, 0x0001001f, 0xfff80000, 0x00000003,
     2642        0x00001fff, 0x0007ffff, 0x7fffffff, 0xffff0000, 0x0fffffff,
     2643        0x1fff07ff, 0x03ff01ff, 0xffdfffff, 0xdfffffff, 0xebffde64,
     2644        0xffffffef, 0xdfdfe7bf, 0x7bffffff, 0xfffdfc5f, 0xffffff3f,
     2645        0xf7fffffd, 0xf7ffffff, 0xffdfffff, 0xffdfffff, 0xffff7fff,
     2646        0xffff7fff, 0xfffffdff, 0xfffffdff, 0x00000ff7, 0x0000001f,
     2647        0x0000000f, 0xffffffef, 0x0af7fe96, 0xaa96ea84, 0x5ef7f796,
     2648        0x0ffffbff, 0x0ffffbee, 0x007fffff, 0x001fffff, 0x3fffffff,
     2649        0xffff0003, 0x00000001, 0x3fffffff};
     2650        }
     2651
     2652        const static UnicodeSet codepoint_set{const_cast<UnicodeSet::run_t *>(__codepoint_set_runs), 341, 0, const_cast<UnicodeSet::bitquad_t *>(__codepoint_set_quads), 363, 0};
     2653
     2654        static BinaryPropertyObject property_object{IDS, std::move(codepoint_set)};
    25632655    }
    25642656    namespace LOWER_ns {
     
    27242816        [1d736, 1d74e], [1d750, 1d755], [1d770, 1d788], [1d78a, 1d78f],
    27252817        [1d7aa, 1d7c2], [1d7c4, 1d7c9], [1d7cb, 1d7cb], [1e922, 1e943]**/
    2726         const UnicodeSet codepoint_set
    2727             {{{Empty, 3}, {Mixed, 1}, {Empty, 1}, {Mixed, 14}, {Full, 1},
    2728               {Mixed, 4}, {Empty, 2}, {Mixed, 6}, {Empty, 1}, {Mixed, 1},
    2729               {Full, 1}, {Mixed, 7}, {Empty, 1}, {Mixed, 2}, {Empty, 114},
    2730               {Mixed, 1}, {Empty, 68}, {Mixed, 1}, {Empty, 3}, {Full, 6},
    2731               {Empty, 2}, {Mixed, 16}, {Empty, 3}, {Mixed, 2}, {Empty, 3},
    2732               {Mixed, 5}, {Empty, 25}, {Mixed, 2}, {Empty, 57}, {Mixed, 7},
    2733               {Full, 1}, {Mixed, 1}, {Empty, 968}, {Mixed, 3}, {Empty, 4},
    2734               {Mixed, 5}, {Empty, 1}, {Mixed, 1}, {Empty, 25}, {Mixed, 3},
    2735               {Full, 2}, {Empty, 634}, {Mixed, 1}, {Empty, 33}, {Mixed, 1},
    2736               {Empty, 38}, {Mixed, 2}, {Empty, 3}, {Mixed, 2}, {Empty, 62},
    2737               {Full, 1}, {Mixed, 1}, {Empty, 94}, {Full, 1}, {Empty, 1497},
    2738               {Mixed, 31}, {Empty, 138}, {Mixed, 2}, {Empty, 30901}},
    2739              {0x07fffffe, 0x04200400, 0x80000000, 0xff7fffff, 0xaaaaaaaa,
    2740               0x55aaaaaa, 0xaaaaab55, 0xd4aaaaaa, 0x4e243129, 0xe6512d2a,
    2741               0xb5555240, 0xaa29aaaa, 0xaaaaaaaa, 0x93faaaaa, 0xffffaa85,
    2742               0xffefffff, 0x01ffffff, 0x00000003, 0x0000001f, 0x00000020,
    2743               0x3c8a0000, 0x00010000, 0xfffff000, 0xaae37fff, 0x192faaaa,
    2744               0xffff0000, 0xaaaaaaaa, 0xaaaaa802, 0xaaaaaaaa, 0xaaaad554,
    2745               0xaaaaaaaa, 0xaaaaaaaa, 0x0000aaaa, 0xfffffffe, 0x000000ff,
    2746               0x3f000000, 0x000001ff, 0xaaaaaaaa, 0xaaaaaaaa, 0xaaaaaaaa,
    2747               0xaaaaaaaa, 0xbfeaaaaa, 0xaaaaaaaa, 0xaaaaaaaa, 0xaaaaaaaa,
    2748               0x003f00ff, 0x00ff00ff, 0x00ff003f, 0x3fff00ff, 0x00ff00ff,
    2749               0x40df00ff, 0x00cf00dc, 0x00dc00ff, 0x80020000, 0x1fff0000,
    2750               0x0008c400, 0x32108000, 0x000043c0, 0xffff0000, 0x00000010,
    2751               0xffff0000, 0x000003ff, 0xffff0000, 0x7fffffff, 0x3fda1562,
    2752               0xaaaaaaaa, 0xaaaaaaaa, 0xaaaaaaaa, 0x0008501a, 0x000020bf,
    2753               0xaaaaaaaa, 0x00002aaa, 0x3aaaaaaa, 0xaaabaaa8, 0xaaaaaaaa,
    2754               0x95ffaaaa, 0xaaba50aa, 0x00a002aa, 0x07000000, 0xffff0000,
    2755               0xf7ffffff, 0xffff003f, 0x00f8007f, 0x07fffffe, 0xffffff00,
    2756               0x0000ffff, 0xff000000, 0x0fffffff, 0x0007ffff, 0xfc000000,
    2757               0x000fffff, 0xffdfc000, 0x000000ff, 0x0ffffffc, 0xebc00000,
    2758               0x0000ffef, 0xfffffc00, 0xc000000f, 0x00ffffff, 0xfffc0000,
    2759               0x00000fff, 0xffffffc0, 0xfc000000, 0x000fffff, 0xffffc000,
    2760               0x000000ff, 0x0ffffffc, 0xffc00000, 0x0000ffff, 0xfffffc00,
    2761               0x0000003f, 0xf7fffffc, 0xf0000003, 0x0fdfffff, 0xffc00000,
    2762               0x003f7fff, 0xffff0000, 0x0000fdff, 0xfffffc00, 0x00000bf7,
    2763               0xfffffffc, 0x0000000f}};
    2764         static BinaryPropertyObject property_object{Lower, codepoint_set};
     2818
     2819
     2820        namespace {
     2821        const static UnicodeSet::run_t __codepoint_set_runs[] = {
     2822        {Empty, 3}, {Mixed, 1}, {Empty, 1}, {Mixed, 14}, {Full, 1},
     2823        {Mixed, 4}, {Empty, 2}, {Mixed, 6}, {Empty, 1}, {Mixed, 1},
     2824        {Full, 1}, {Mixed, 7}, {Empty, 1}, {Mixed, 2}, {Empty, 114},
     2825        {Mixed, 1}, {Empty, 68}, {Mixed, 1}, {Empty, 3}, {Full, 6},
     2826        {Empty, 2}, {Mixed, 16}, {Empty, 3}, {Mixed, 2}, {Empty, 3},
     2827        {Mixed, 5}, {Empty, 25}, {Mixed, 2}, {Empty, 57}, {Mixed, 7},
     2828        {Full, 1}, {Mixed, 1}, {Empty, 968}, {Mixed, 3}, {Empty, 4},
     2829        {Mixed, 5}, {Empty, 1}, {Mixed, 1}, {Empty, 25}, {Mixed, 3},
     2830        {Full, 2}, {Empty, 634}, {Mixed, 1}, {Empty, 33}, {Mixed, 1},
     2831        {Empty, 38}, {Mixed, 2}, {Empty, 3}, {Mixed, 2}, {Empty, 62},
     2832        {Full, 1}, {Mixed, 1}, {Empty, 94}, {Full, 1}, {Empty, 1497},
     2833        {Mixed, 31}, {Empty, 138}, {Mixed, 2}, {Empty, 30901}};
     2834        const static UnicodeSet::bitquad_t  __codepoint_set_quads[] = {
     2835        0x07fffffe, 0x04200400, 0x80000000, 0xff7fffff, 0xaaaaaaaa,
     2836        0x55aaaaaa, 0xaaaaab55, 0xd4aaaaaa, 0x4e243129, 0xe6512d2a,
     2837        0xb5555240, 0xaa29aaaa, 0xaaaaaaaa, 0x93faaaaa, 0xffffaa85,
     2838        0xffefffff, 0x01ffffff, 0x00000003, 0x0000001f, 0x00000020,
     2839        0x3c8a0000, 0x00010000, 0xfffff000, 0xaae37fff, 0x192faaaa,
     2840        0xffff0000, 0xaaaaaaaa, 0xaaaaa802, 0xaaaaaaaa, 0xaaaad554,
     2841        0xaaaaaaaa, 0xaaaaaaaa, 0x0000aaaa, 0xfffffffe, 0x000000ff,
     2842        0x3f000000, 0x000001ff, 0xaaaaaaaa, 0xaaaaaaaa, 0xaaaaaaaa,
     2843        0xaaaaaaaa, 0xbfeaaaaa, 0xaaaaaaaa, 0xaaaaaaaa, 0xaaaaaaaa,
     2844        0x003f00ff, 0x00ff00ff, 0x00ff003f, 0x3fff00ff, 0x00ff00ff,
     2845        0x40df00ff, 0x00cf00dc, 0x00dc00ff, 0x80020000, 0x1fff0000,
     2846        0x0008c400, 0x32108000, 0x000043c0, 0xffff0000, 0x00000010,
     2847        0xffff0000, 0x000003ff, 0xffff0000, 0x7fffffff, 0x3fda1562,
     2848        0xaaaaaaaa, 0xaaaaaaaa, 0xaaaaaaaa, 0x0008501a, 0x000020bf,
     2849        0xaaaaaaaa, 0x00002aaa, 0x3aaaaaaa, 0xaaabaaa8, 0xaaaaaaaa,
     2850        0x95ffaaaa, 0xaaba50aa, 0x00a002aa, 0x07000000, 0xffff0000,
     2851        0xf7ffffff, 0xffff003f, 0x00f8007f, 0x07fffffe, 0xffffff00,
     2852        0x0000ffff, 0xff000000, 0x0fffffff, 0x0007ffff, 0xfc000000,
     2853        0x000fffff, 0xffdfc000, 0x000000ff, 0x0ffffffc, 0xebc00000,
     2854        0x0000ffef, 0xfffffc00, 0xc000000f, 0x00ffffff, 0xfffc0000,
     2855        0x00000fff, 0xffffffc0, 0xfc000000, 0x000fffff, 0xffffc000,
     2856        0x000000ff, 0x0ffffffc, 0xffc00000, 0x0000ffff, 0xfffffc00,
     2857        0x0000003f, 0xf7fffffc, 0xf0000003, 0x0fdfffff, 0xffc00000,
     2858        0x003f7fff, 0xffff0000, 0x0000fdff, 0xfffffc00, 0x00000bf7,
     2859        0xfffffffc, 0x0000000f};
     2860        }
     2861
     2862        const static UnicodeSet codepoint_set{const_cast<UnicodeSet::run_t *>(__codepoint_set_runs), 59, 0, const_cast<UnicodeSet::bitquad_t *>(__codepoint_set_quads), 122, 0};
     2863
     2864        static BinaryPropertyObject property_object{Lower, std::move(codepoint_set)};
    27652865    }
    27662866    namespace MATH_ns {
     
    28012901        [1ee80, 1ee89], [1ee8b, 1ee9b], [1eea1, 1eea3], [1eea5, 1eea9],
    28022902        [1eeab, 1eebb], [1eef0, 1eef1]**/
    2803         const UnicodeSet codepoint_set
    2804             {{{Empty, 1}, {Mixed, 3}, {Empty, 1}, {Mixed, 3}, {Empty, 22},
    2805               {Mixed, 2}, {Empty, 16}, {Mixed, 1}, {Empty, 207}, {Mixed, 5},
    2806               {Empty, 1}, {Mixed, 5}, {Empty, 1}, {Mixed, 4}, {Full, 8},
    2807               {Mixed, 2}, {Empty, 1}, {Mixed, 5}, {Empty, 13}, {Mixed, 4},
    2808               {Empty, 1}, {Mixed, 2}, {Empty, 10}, {Full, 2}, {Empty, 8},
    2809               {Full, 16}, {Empty, 1}, {Mixed, 2}, {Empty, 1662}, {Mixed, 1},
    2810               {Empty, 25}, {Mixed, 1}, {Empty, 4}, {Mixed, 3}, {Empty, 4},
    2811               {Mixed, 1}, {Empty, 1696}, {Full, 2}, {Mixed, 1}, {Full, 1},
    2812               {Mixed, 3}, {Full, 1}, {Mixed, 3}, {Full, 10}, {Mixed, 1},
    2813               {Full, 8}, {Mixed, 1}, {Full, 1}, {Empty, 176}, {Mixed, 6},
    2814               {Empty, 1}, {Mixed, 1}, {Empty, 30856}},
    2815              {0x70000800, 0x40000000, 0x50000000, 0x00021000, 0x00800000,
    2816               0x00800000, 0x00270000, 0x00730000, 0x000001c0, 0x00400000,
    2817               0x001c0000, 0x00040011, 0x7c00001e, 0x00007c00, 0x1fff0000,
    2818               0x0000f862, 0x3f2ffc84, 0xf1fbb310, 0x00000bff, 0xffff0000,
    2819               0xf0c37eff, 0x2fffffff, 0xfff00030, 0x00000f00, 0x00000003,
    2820               0x10000000, 0xf8000000, 0x00bfffff, 0xf0010000, 0x00000007,
    2821               0xf0ffc003, 0x000f8cc3, 0xff001f94, 0x00000060, 0x00000005,
    2822               0x0000e00f, 0xffff0000, 0x00001f9f, 0x00000200, 0x0000017e,
    2823               0x70000800, 0x50000000, 0x50000000, 0x00001e04, 0xffdfffff,
    2824               0xdfffffff, 0xebffde64, 0xffffffef, 0xdfdfe7bf, 0x7bffffff,
    2825               0xfffdfc5f, 0xffffff3f, 0xffffcfff, 0xffffffef, 0x0af7fe96,
    2826               0xaa96ea84, 0x5ef7f796, 0x0ffffbff, 0x0ffffbee, 0x00030000}};
    2827         static BinaryPropertyObject property_object{Math, codepoint_set};
     2903
     2904
     2905        namespace {
     2906        const static UnicodeSet::run_t __codepoint_set_runs[] = {
     2907        {Empty, 1}, {Mixed, 3}, {Empty, 1}, {Mixed, 3}, {Empty, 22},
     2908        {Mixed, 2}, {Empty, 16}, {Mixed, 1}, {Empty, 207}, {Mixed, 5},
     2909        {Empty, 1}, {Mixed, 5}, {Empty, 1}, {Mixed, 4}, {Full, 8},
     2910        {Mixed, 2}, {Empty, 1}, {Mixed, 5}, {Empty, 13}, {Mixed, 4},
     2911        {Empty, 1}, {Mixed, 2}, {Empty, 10}, {Full, 2}, {Empty, 8},
     2912        {Full, 16}, {Empty, 1}, {Mixed, 2}, {Empty, 1662}, {Mixed, 1},
     2913        {Empty, 25}, {Mixed, 1}, {Empty, 4}, {Mixed, 3}, {Empty, 4},
     2914        {Mixed, 1}, {Empty, 1696}, {Full, 2}, {Mixed, 1}, {Full, 1},
     2915        {Mixed, 3}, {Full, 1}, {Mixed, 3}, {Full, 10}, {Mixed, 1},
     2916        {Full, 8}, {Mixed, 1}, {Full, 1}, {Empty, 176}, {Mixed, 6},
     2917        {Empty, 1}, {Mixed, 1}, {Empty, 30856}};
     2918        const static UnicodeSet::bitquad_t  __codepoint_set_quads[] = {
     2919        0x70000800, 0x40000000, 0x50000000, 0x00021000, 0x00800000,
     2920        0x00800000, 0x00270000, 0x00730000, 0x000001c0, 0x00400000,
     2921        0x001c0000, 0x00040011, 0x7c00001e, 0x00007c00, 0x1fff0000,
     2922        0x0000f862, 0x3f2ffc84, 0xf1fbb310, 0x00000bff, 0xffff0000,
     2923        0xf0c37eff, 0x2fffffff, 0xfff00030, 0x00000f00, 0x00000003,
     2924        0x10000000, 0xf8000000, 0x00bfffff, 0xf0010000, 0x00000007,
     2925        0xf0ffc003, 0x000f8cc3, 0xff001f94, 0x00000060, 0x00000005,
     2926        0x0000e00f, 0xffff0000, 0x00001f9f, 0x00000200, 0x0000017e,
     2927        0x70000800, 0x50000000, 0x50000000, 0x00001e04, 0xffdfffff,
     2928        0xdfffffff, 0xebffde64, 0xffffffef, 0xdfdfe7bf, 0x7bffffff,
     2929        0xfffdfc5f, 0xffffff3f, 0xffffcfff, 0xffffffef, 0x0af7fe96,
     2930        0xaa96ea84, 0x5ef7f796, 0x0ffffbff, 0x0ffffbee, 0x00030000};
     2931        }
     2932
     2933        const static UnicodeSet codepoint_set{const_cast<UnicodeSet::run_t *>(__codepoint_set_runs), 53, 0, const_cast<UnicodeSet::bitquad_t *>(__codepoint_set_quads), 60, 0};
     2934
     2935        static BinaryPropertyObject property_object{Math, std::move(codepoint_set)};
    28282936    }
    28292937    namespace UPPER_ns {
     
    29873095        [1d71c, 1d734], [1d756, 1d76e], [1d790, 1d7a8], [1d7ca, 1d7ca],
    29883096        [1e900, 1e921], [1f130, 1f149], [1f150, 1f169], [1f170, 1f189]**/
    2989         const UnicodeSet codepoint_set
    2990             {{{Empty, 2}, {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Empty, 1},
    2991               {Mixed, 11}, {Empty, 8}, {Mixed, 5}, {Full, 1}, {Mixed, 1},
    2992               {Empty, 1}, {Mixed, 8}, {Empty, 90}, {Full, 1}, {Mixed, 1},
    2993               {Empty, 22}, {Full, 2}, {Mixed, 1}, {Empty, 80}, {Mixed, 12},
    2994               {Empty, 1}, {Mixed, 3}, {Empty, 8}, {Mixed, 5}, {Empty, 24},
    2995               {Mixed, 2}, {Empty, 57}, {Full, 1}, {Mixed, 1}, {Empty, 1},
    2996               {Mixed, 5}, {Empty, 970}, {Mixed, 3}, {Empty, 4}, {Mixed, 5},
    2997               {Empty, 699}, {Mixed, 1}, {Empty, 38}, {Full, 1}, {Mixed, 1},
    2998               {Empty, 3}, {Mixed, 2}, {Empty, 61}, {Full, 1}, {Mixed, 1},
    2999               {Empty, 95}, {Full, 1}, {Empty, 1498}, {Mixed, 31},
    3000               {Empty, 137}, {Full, 1}, {Mixed, 1}, {Empty, 63}, {Mixed, 4},
    3001               {Empty, 30835}},
    3002              {0x07fffffe, 0x7f7fffff, 0x55555555, 0xaa555555, 0x555554aa,
    3003               0x2b555555, 0xb1dbced6, 0x11aed2d5, 0x4aaaa490, 0x55d25555,
    3004               0x55555555, 0x6c055555, 0x0000557a, 0x80450000, 0xfffed740,
    3005               0x00000ffb, 0x551c8000, 0xe6905555, 0x0000ffff, 0x55555555,
    3006               0x55555401, 0x55555555, 0x55552aab, 0x55555555, 0x55555555,
    3007               0xfffe5555, 0x007fffff, 0x000020bf, 0x003fffff, 0x55555555,
    3008               0x55555555, 0x55555555, 0x55555555, 0x40155555, 0x55555555,
    3009               0x55555555, 0x55555555, 0x3f00ff00, 0xff00ff00, 0xaa003f00,
    3010               0x0000ff00, 0x0f000000, 0x0f000f00, 0x0f001f00, 0x3e273884,
    3011               0xc00f3d50, 0x00000020, 0x0000ffff, 0x00000008, 0xffc00000,
    3012               0x0000ffff, 0x00007fff, 0xc025ea9d, 0x55555555, 0x55555555,
    3013               0x55555555, 0x00042805, 0x55555555, 0x00001555, 0x05555555,
    3014               0x55545554, 0x55555555, 0x6a005555, 0x55452855, 0x005f7d55,
    3015               0x07fffffe, 0x000000ff, 0xffff0000, 0x000fffff, 0x0007ffff,
    3016               0x03ffffff, 0xfff00000, 0x00003fff, 0xffffff00, 0xd0000003,
    3017               0x003fde64, 0xffff0000, 0x000003ff, 0x1fdfe7b0, 0x7b000000,
    3018               0x0001fc5f, 0xfffff000, 0x0000003f, 0x03ffffff, 0xfff00000,
    3019               0x00003fff, 0xffffff00, 0xf0000003, 0x003fffff, 0xffff0000,
    3020               0x000003ff, 0xffffff00, 0x00000001, 0x07fffffc, 0xf0000000,
    3021               0x001fffff, 0xffc00000, 0x00007fff, 0xffff0000, 0x000001ff,
    3022               0x00000400, 0x00000003, 0xffff0000, 0xffff03ff, 0xffff03ff,
    3023               0x000003ff}};
    3024         static BinaryPropertyObject property_object{Upper, codepoint_set};
     3097
     3098
     3099        namespace {
     3100        const static UnicodeSet::run_t __codepoint_set_runs[] = {
     3101        {Empty, 2}, {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Empty, 1},
     3102        {Mixed, 11}, {Empty, 8}, {Mixed, 5}, {Full, 1}, {Mixed, 1},
     3103        {Empty, 1}, {Mixed, 8}, {Empty, 90}, {Full, 1}, {Mixed, 1},
     3104        {Empty, 22}, {Full, 2}, {Mixed, 1}, {Empty, 80}, {Mixed, 12},
     3105        {Empty, 1}, {Mixed, 3}, {Empty, 8}, {Mixed, 5}, {Empty, 24},
     3106        {Mixed, 2}, {Empty, 57}, {Full, 1}, {Mixed, 1}, {Empty, 1},
     3107        {Mixed, 5}, {Empty, 970}, {Mixed, 3}, {Empty, 4}, {Mixed, 5},
     3108        {Empty, 699}, {Mixed, 1}, {Empty, 38}, {Full, 1}, {Mixed, 1},
     3109        {Empty, 3}, {Mixed, 2}, {Empty, 61}, {Full, 1}, {Mixed, 1},
     3110        {Empty, 95}, {Full, 1}, {Empty, 1498}, {Mixed, 31}, {Empty, 137},
     3111        {Full, 1}, {Mixed, 1}, {Empty, 63}, {Mixed, 4}, {Empty, 30835}};
     3112        const static UnicodeSet::bitquad_t  __codepoint_set_quads[] = {
     3113        0x07fffffe, 0x7f7fffff, 0x55555555, 0xaa555555, 0x555554aa,
     3114        0x2b555555, 0xb1dbced6, 0x11aed2d5, 0x4aaaa490, 0x55d25555,
     3115        0x55555555, 0x6c055555, 0x0000557a, 0x80450000, 0xfffed740,
     3116        0x00000ffb, 0x551c8000, 0xe6905555, 0x0000ffff, 0x55555555,
     3117        0x55555401, 0x55555555, 0x55552aab, 0x55555555, 0x55555555,
     3118        0xfffe5555, 0x007fffff, 0x000020bf, 0x003fffff, 0x55555555,
     3119        0x55555555, 0x55555555, 0x55555555, 0x40155555, 0x55555555,
     3120        0x55555555, 0x55555555, 0x3f00ff00, 0xff00ff00, 0xaa003f00,
     3121        0x0000ff00, 0x0f000000, 0x0f000f00, 0x0f001f00, 0x3e273884,
     3122        0xc00f3d50, 0x00000020, 0x0000ffff, 0x00000008, 0xffc00000,
     3123        0x0000ffff, 0x00007fff, 0xc025ea9d, 0x55555555, 0x55555555,
     3124        0x55555555, 0x00042805, 0x55555555, 0x00001555, 0x05555555,
     3125        0x55545554, 0x55555555, 0x6a005555, 0x55452855, 0x005f7d55,
     3126        0x07fffffe, 0x000000ff, 0xffff0000, 0x000fffff, 0x0007ffff,
     3127        0x03ffffff, 0xfff00000, 0x00003fff, 0xffffff00, 0xd0000003,
     3128        0x003fde64, 0xffff0000, 0x000003ff, 0x1fdfe7b0, 0x7b000000,
     3129        0x0001fc5f, 0xfffff000, 0x0000003f, 0x03ffffff, 0xfff00000,
     3130        0x00003fff, 0xffffff00, 0xf0000003, 0x003fffff, 0xffff0000,
     3131        0x000003ff, 0xffffff00, 0x00000001, 0x07fffffc, 0xf0000000,
     3132        0x001fffff, 0xffc00000, 0x00007fff, 0xffff0000, 0x000001ff,
     3133        0x00000400, 0x00000003, 0xffff0000, 0xffff03ff, 0xffff03ff,
     3134        0x000003ff};
     3135        }
     3136
     3137        const static UnicodeSet codepoint_set{const_cast<UnicodeSet::run_t *>(__codepoint_set_runs), 55, 0, const_cast<UnicodeSet::bitquad_t *>(__codepoint_set_quads), 106, 0};
     3138
     3139        static BinaryPropertyObject property_object{Upper, std::move(codepoint_set)};
    30253140    }
    30263141    namespace XIDC_ns {
     
    32003315        [1eeab, 1eebb], [20000, 2a6d6], [2a700, 2b734], [2b740, 2b81d],
    32013316        [2b820, 2cea1], [2ceb0, 2ebe0], [2f800, 2fa1d], [e0100, e01ef]**/
    3202         const UnicodeSet codepoint_set
    3203             {{{Empty, 1}, {Mixed, 3}, {Empty, 1}, {Mixed, 3}, {Full, 14},
    3204               {Mixed, 2}, {Full, 3}, {Mixed, 3}, {Full, 1}, {Mixed, 1},
    3205               {Full, 4}, {Mixed, 1}, {Full, 4}, {Mixed, 8}, {Full, 2},
    3206               {Mixed, 1}, {Full, 2}, {Mixed, 3}, {Full, 1}, {Mixed, 1},
    3207               {Full, 2}, {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Full, 1},
    3208               {Mixed, 3}, {Empty, 1}, {Mixed, 3}, {Full, 3}, {Mixed, 30},
    3209               {Full, 1}, {Mixed, 9}, {Empty, 1}, {Mixed, 3}, {Empty, 1},
    3210               {Mixed, 7}, {Empty, 1}, {Full, 2}, {Mixed, 1}, {Full, 1},
    3211               {Mixed, 1}, {Full, 1}, {Mixed, 2}, {Full, 10}, {Mixed, 1},
    3212               {Full, 1}, {Mixed, 3}, {Full, 1}, {Mixed, 1}, {Full, 1},
    3213               {Mixed, 3}, {Full, 2}, {Mixed, 2}, {Full, 18}, {Mixed, 2},
    3214               {Full, 2}, {Mixed, 5}, {Full, 2}, {Mixed, 3}, {Full, 2},
    3215               {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 5},
    3216               {Full, 1}, {Mixed, 2}, {Empty, 1}, {Mixed, 1}, {Full, 1},
    3217               {Mixed, 4}, {Empty, 2}, {Full, 2}, {Mixed, 2}, {Full, 3},
    3218               {Mixed, 1}, {Full, 1}, {Mixed, 4}, {Empty, 1}, {Mixed, 2},
    3219               {Full, 7}, {Mixed, 1}, {Full, 8}, {Mixed, 1}, {Full, 1},
    3220               {Mixed, 2}, {Full, 1}, {Mixed, 3}, {Empty, 1}, {Mixed, 4},
    3221               {Empty, 1}, {Mixed, 5}, {Full, 1}, {Mixed, 1}, {Empty, 83},
    3222               {Full, 1}, {Mixed, 2}, {Full, 4}, {Mixed, 1}, {Full, 1},
    3223               {Mixed, 1}, {Full, 1}, {Mixed, 4}, {Full, 1}, {Empty, 16},
    3224               {Mixed, 3}, {Full, 1}, {Mixed, 2}, {Full, 1}, {Mixed, 3},
    3225               {Full, 2}, {Mixed, 2}, {Empty, 1}, {Mixed, 1}, {Empty, 16},
    3226               {Full, 205}, {Mixed, 1}, {Empty, 2}, {Full, 655}, {Mixed, 1},
    3227               {Full, 36}, {Mixed, 1}, {Empty, 1}, {Mixed, 2}, {Full, 8},
    3228               {Mixed, 2}, {Full, 1}, {Mixed, 1}, {Full, 3}, {Mixed, 3},
    3229               {Full, 2}, {Mixed, 2}, {Empty, 1}, {Mixed, 1}, {Full, 1},
    3230               {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Full, 2}, {Mixed, 2},
    3231               {Full, 1}, {Mixed, 3}, {Full, 2}, {Mixed, 2}, {Full, 1},
    3232               {Mixed, 3}, {Full, 2}, {Mixed, 6}, {Full, 3}, {Mixed, 1},
    3233               {Full, 349}, {Mixed, 3}, {Empty, 264}, {Full, 11}, {Mixed, 1},
    3234               {Full, 2}, {Mixed, 1}, {Empty, 1}, {Mixed, 3}, {Full, 2},
    3235               {Mixed, 2}, {Full, 3}, {Mixed, 2}, {Full, 5}, {Mixed, 2},
    3236               {Full, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 6}, {Full, 3},
    3237               {Mixed, 5}, {Full, 1}, {Mixed, 2}, {Empty, 1}, {Mixed, 3},
    3238               {Empty, 1}, {Full, 3}, {Mixed, 1}, {Empty, 2}, {Full, 1},
    3239               {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Empty, 4}, {Mixed, 1},
    3240               {Full, 1}, {Mixed, 2}, {Full, 1}, {Mixed, 4}, {Full, 1},
    3241               {Mixed, 1}, {Empty, 1}, {Full, 4}, {Mixed, 4}, {Full, 1},
    3242               {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Empty, 4}, {Full, 9},
    3243               {Mixed, 3}, {Empty, 4}, {Mixed, 5}, {Empty, 2}, {Mixed, 3},
    3244               {Empty, 2}, {Full, 1}, {Mixed, 1}, {Empty, 2}, {Mixed, 2},
    3245               {Empty, 1}, {Mixed, 2}, {Empty, 1}, {Mixed, 2}, {Full, 1},
    3246               {Mixed, 4}, {Empty, 3}, {Full, 2}, {Mixed, 1}, {Empty, 1},
    3247               {Full, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Empty, 24},
    3248               {Full, 2}, {Mixed, 2}, {Full, 1}, {Mixed, 3}, {Full, 1},
    3249               {Mixed, 3}, {Full, 2}, {Mixed, 1}, {Empty, 1}, {Mixed, 2},
    3250               {Empty, 2}, {Mixed, 2}, {Full, 1}, {Mixed, 5}, {Empty, 4},
    3251               {Full, 2}, {Mixed, 1}, {Empty, 1}, {Full, 2}, {Mixed, 1},
    3252               {Empty, 5}, {Full, 1}, {Mixed, 2}, {Empty, 1}, {Full, 2},
    3253               {Mixed, 1}, {Empty, 1}, {Full, 1}, {Mixed, 2}, {Empty, 1},
    3254               {Mixed, 2}, {Empty, 11}, {Full, 2}, {Mixed, 1}, {Empty, 8},
    3255               {Full, 1}, {Mixed, 2}, {Full, 1}, {Mixed, 1}, {Empty, 1},
    3256               {Full, 1}, {Mixed, 1}, {Empty, 8}, {Mixed, 6}, {Empty, 2},
    3257               {Mixed, 3}, {Empty, 21}, {Full, 28}, {Mixed, 1}, {Empty, 3},
    3258               {Full, 3}, {Mixed, 1}, {Full, 6}, {Mixed, 1}, {Empty, 85},
    3259               {Full, 33}, {Mixed, 1}, {Empty, 126}, {Full, 18}, {Mixed, 1},
    3260               {Empty, 269}, {Full, 17}, {Mixed, 3}, {Empty, 2}, {Mixed, 2},
    3261               {Full, 1}, {Mixed, 4}, {Empty, 27}, {Full, 2}, {Mixed, 3},
    3262               {Empty, 2}, {Mixed, 1}, {Full, 191}, {Mixed, 1}, {Full, 23},
    3263               {Mixed, 1}, {Empty, 296}, {Full, 8}, {Mixed, 1}, {Empty, 2},
    3264               {Mixed, 1}, {Full, 11}, {Mixed, 1}, {Empty, 72}, {Full, 3},
    3265               {Mixed, 2}, {Empty, 166}, {Mixed, 3}, {Empty, 4}, {Mixed, 1},
    3266               {Empty, 13}, {Full, 2}, {Mixed, 1}, {Full, 1}, {Mixed, 3},
    3267               {Full, 1}, {Mixed, 3}, {Full, 10}, {Mixed, 10}, {Full, 1},
    3268               {Empty, 16}, {Full, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 3},
    3269               {Empty, 42}, {Mixed, 2}, {Empty, 62}, {Full, 6}, {Mixed, 1},
    3270               {Empty, 1}, {Full, 2}, {Mixed, 1}, {Empty, 37}, {Mixed, 6},
    3271               {Empty, 138}, {Full, 1334}, {Mixed, 1}, {Empty, 1},
    3272               {Full, 129}, {Mixed, 1}, {Full, 6}, {Mixed, 1}, {Full, 180},
    3273               {Mixed, 1}, {Full, 233}, {Mixed, 1}, {Empty, 96}, {Full, 16},
    3274               {Mixed, 1}, {Empty, 22583}, {Full, 7}, {Mixed, 1},
    3275               {Empty, 6128}},
    3276              {0x03ff0000, 0x87fffffe, 0x07fffffe, 0x04a00400, 0xff7fffff,
    3277               0xff7fffff, 0x0003ffc3, 0x0000501f, 0xb8dfffff, 0xffffd7c0,
    3278               0xfffffffb, 0xffbfffff, 0xfffffcfb, 0xfffeffff, 0x027fffff,
    3279               0xfffffffe, 0xfffe00ff, 0xbfffffff, 0xffff00b6, 0x000707ff,
    3280               0x07ff0000, 0xffffc3ff, 0x9fefffff, 0x9ffffdff, 0xffff0000,
    3281               0xffffe7ff, 0x0003ffff, 0x043fffff, 0x00003fff, 0x0fffffff,
    3282               0x000007ff, 0x3fdfffff, 0xfff00000, 0xfffffffb, 0xfffeffcf,
    3283               0xfff99fef, 0xf3c5fdff, 0xb080799f, 0x1003ffcf, 0xfff987ee,
    3284               0xd36dfdff, 0x5e023987, 0x003fffc0, 0xfffbbfee, 0xf3edfdff,
    3285               0x00013bbf, 0xfe00ffcf, 0xfff99fee, 0xf3edfdff, 0xb0c0399f,
    3286               0x0002ffcf, 0xd63dc7ec, 0xc3ffc718, 0x00813dc7, 0x0000ffc0,
    3287               0xfffddfef, 0xe3fffdff, 0x07603ddf, 0x0000ffcf, 0xfffddfef,
    3288               0xf3effdff, 0x40603ddf, 0x0006ffcf, 0xfffddfef, 0x80f07ddf,
    3289               0xfc00ffcf, 0xfc7fffec, 0x2ffbffff, 0xff5f847f, 0x000cffc0,
    3290               0xfffffffe, 0x07ffffff, 0x03ff7fff, 0xfef02596, 0x3bffecae,
    3291               0xf3ff3f5f, 0x03000001, 0xc2a003ff, 0xfffffeff, 0xfffe1fff,
    3292               0xfeffffdf, 0x1fffffff, 0x00000040, 0xffff03ff, 0x3fffffff,
    3293               0xffff20bf, 0xf7ffffff, 0x3d7f3dff, 0xffff3dff, 0x7f3dffff,
    3294               0xff7fff3d, 0xff3dffff, 0xe7ffffff, 0x0003fe00, 0x0000ffff,
    3295               0x3f3fffff, 0xfffffffe, 0xffff9fff, 0x07fffffe, 0x01ffc7ff,
    3296               0x001fdfff, 0x001fffff, 0x000fffff, 0x000ddfff, 0x308fffff,
    3297               0x000003ff, 0x03ff3800, 0x00ffffff, 0xffff07ff, 0x003fffff,
    3298               0x7fffffff, 0x0fff0fff, 0xffffffc0, 0x001f3fff, 0xffff0fff,
    3299               0x07ff03ff, 0x0fffffff, 0x7fffffff, 0x9fffffff, 0x03ff03ff,
    3300               0x3fff0080, 0x03ff0fff, 0x000ff800, 0x000fffff, 0x00ffffff,
    3301               0xffffe3ff, 0x3fffffff, 0x000001ff, 0xfff70000, 0x03ffffff,
    3302               0xfbffffff, 0x3f3fffff, 0xaaff3f3f, 0x3fffffff, 0x5fdfffff,
    3303               0x0fcf1fdc, 0x1fdc1fff, 0x80000000, 0x00100001, 0x80020000,
    3304               0x1fff0000, 0x1fff0000, 0x0001ffe2, 0x3f2ffc84, 0xf3fffd50,
    3305               0x000043e0, 0x000001ff, 0xffff7fff, 0x7fffffff, 0x000ff81f,
    3306               0xffff20bf, 0x800080ff, 0x007fffff, 0x7f7f7f7f, 0x7f7f7f7f,
    3307               0x000000e0, 0x1f3efffe, 0xfffffffe, 0xe67fffff, 0xfffffffe,
    3308               0xf7ffffff, 0xffffffe0, 0xfffe7fff, 0x00007fff, 0x07ffffff,
    3309               0xffff0000, 0x003fffff, 0x000007ff, 0x00001fff, 0xffff0000,
    3310               0x3fffffff, 0xffff1fff, 0x00000fff, 0xbff0ffff, 0x0003ffff,
    3311               0xff800000, 0xfffffffc, 0xfffff9ff, 0x00ff7fff, 0xff800000,
    3312               0x000000ff, 0x000fffff, 0x03ff003f, 0x28ffffff, 0xffff3fff,
    3313               0x000fffff, 0x1fffffff, 0x03ff8001, 0x7fffffff, 0x007fffff,
    3314               0x03ff3fff, 0xfc7fffff, 0x38000007, 0x007cffff, 0x007e7e7e,
    3315               0xffff7f7f, 0xf7ffffff, 0xffff003f, 0x03ff37ff, 0xffff000f,
    3316               0xfffff87f, 0x0fffffff, 0xffff3fff, 0x03ffffff, 0xe0f8007f,
    3317               0x5f7ffdff, 0xffffffdb, 0x0003ffff, 0xfff80000, 0x3fffffff,
    3318               0xfffffff0, 0x3fffffff, 0xffff0000, 0xfffcffff, 0x000000ff,
    3319               0x03ff0000, 0x0000ffff, 0x0018ffff, 0x0000e000, 0xaa8a0000,
    3320               0x1fffffff, 0x03ff0000, 0x87fffffe, 0x07fffffe, 0xffffffc0,
    3321               0x7fffffff, 0x1cfcfcfc, 0xffffefff, 0xb7ffff7f, 0x3fff3fff,
    3322               0x07ffffff, 0x001fffff, 0x20000000, 0x1fffffff, 0x0001ffff,
    3323               0x00000001, 0xffffe000, 0xffff07ff, 0x07ffffff, 0x3fffffff,
    3324               0x003eff0f, 0x3fffffff, 0xffff03ff, 0xff0fffff, 0x0fffffff,
    3325               0xffff00ff, 0x0000000f, 0x007fffff, 0x003fffff, 0x000000ff,
    3326               0xfffffd3f, 0x91bfffff, 0x003fffff, 0x007fffff, 0x7fffffff,
    3327               0x0037ffff, 0x003fffff, 0x03ffffff, 0xc0ffffff, 0xfeeff06f,
    3328               0x870fffff, 0x1fffffff, 0x1fffffff, 0xfffffeff, 0x0000007f,
    3329               0x003fffff, 0x003fffff, 0x0007ffff, 0x0003ffff, 0x000001ff,
    3330               0x0007ffff, 0x0007ffff, 0x0000007f, 0x8000ffc0, 0x07ffffff,
    3331               0xffff0000, 0x03ff01ff, 0xffdfffff, 0xffff0000, 0x004fffff,
    3332               0x17ff1c1f, 0xfffbffff, 0x40ffffff, 0xbfffbd7f, 0xffff01ff,
    3333               0x03ff07ff, 0xfff99fef, 0xf3edfdff, 0xe081399f, 0x001f1fcf,
    3334               0x03ff07ff, 0x03ff00bf, 0xff3fffff, 0x3f000001, 0x03ff0011,
    3335               0x00ffffff, 0x000003ff, 0xe3ffffff, 0x03ff0fff, 0x800003ff,
    3336               0x7fffffff, 0xffff0080, 0x03ffffcf, 0x01ffffff, 0xfffffdff,
    3337               0xff7fffff, 0x03ff0001, 0xfffc0000, 0xfffcffff, 0x007ffeff,
    3338               0xfffffb7f, 0xb47fffff, 0x03ff00ff, 0x03ffffff, 0x00007fff,
    3339               0x0000000f, 0x00007fff, 0x0000007f, 0x01ffffff, 0x7fffffff,
    3340               0x000003ff, 0xffff0000, 0x001f3fff, 0x007fffff, 0x03ff000f,
    3341               0xe0fffff8, 0x0000ffff, 0xffff001f, 0x7fffffff, 0xffff8000,
    3342               0x00000003, 0x00001fff, 0x0007ffff, 0x7fffffff, 0xffff0000,
    3343               0x0fffffff, 0x1fff07ff, 0x63ff01ff, 0xf807e3e0, 0x00000fe7,
    3344               0x00003c00, 0x0000001c, 0xffdfffff, 0xdfffffff, 0xebffde64,
    3345               0xffffffef, 0xdfdfe7bf, 0x7bffffff, 0xfffdfc5f, 0xffffff3f,
    3346               0xf7fffffd, 0xf7ffffff, 0xffdfffff, 0xffdfffff, 0xffff7fff,
    3347               0xffff7fff, 0xfffffdff, 0xfffffdff, 0xffffcff7, 0xf87fffff,
    3348               0x00201fff, 0xf8000010, 0x0000fffe, 0xf9ffff7f, 0x000007db,
    3349               0x007f001f, 0x03ff07ff, 0xffffffef, 0x0af7fe96, 0xaa96ea84,
    3350               0x5ef7f796, 0x0ffffbff, 0x0ffffbee, 0x007fffff, 0x001fffff,
    3351               0x3fffffff, 0xffff0003, 0x00000001, 0x3fffffff, 0x0000ffff}};
    3352         static BinaryPropertyObject property_object{XIDC, codepoint_set};
     3317
     3318
     3319        namespace {
     3320        const static UnicodeSet::run_t __codepoint_set_runs[] = {
     3321        {Empty, 1}, {Mixed, 3}, {Empty, 1}, {Mixed, 3}, {Full, 14},
     3322        {Mixed, 2}, {Full, 3}, {Mixed, 3}, {Full, 1}, {Mixed, 1}, {Full, 4},
     3323        {Mixed, 1}, {Full, 4}, {Mixed, 8}, {Full, 2}, {Mixed, 1}, {Full, 2},
     3324        {Mixed, 3}, {Full, 1}, {Mixed, 1}, {Full, 2}, {Mixed, 1}, {Full, 1},
     3325        {Mixed, 1}, {Full, 1}, {Mixed, 3}, {Empty, 1}, {Mixed, 3},
     3326        {Full, 3}, {Mixed, 30}, {Full, 1}, {Mixed, 9}, {Empty, 1},
     3327        {Mixed, 3}, {Empty, 1}, {Mixed, 7}, {Empty, 1}, {Full, 2},
     3328        {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 2},
     3329        {Full, 10}, {Mixed, 1}, {Full, 1}, {Mixed, 3}, {Full, 1},
     3330        {Mixed, 1}, {Full, 1}, {Mixed, 3}, {Full, 2}, {Mixed, 2},
     3331        {Full, 18}, {Mixed, 2}, {Full, 2}, {Mixed, 5}, {Full, 2},
     3332        {Mixed, 3}, {Full, 2}, {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Full, 1},
     3333        {Mixed, 5}, {Full, 1}, {Mixed, 2}, {Empty, 1}, {Mixed, 1},
     3334        {Full, 1}, {Mixed, 4}, {Empty, 2}, {Full, 2}, {Mixed, 2}, {Full, 3},
     3335        {Mixed, 1}, {Full, 1}, {Mixed, 4}, {Empty, 1}, {Mixed, 2},
     3336        {Full, 7}, {Mixed, 1}, {Full, 8}, {Mixed, 1}, {Full, 1}, {Mixed, 2},
     3337        {Full, 1}, {Mixed, 3}, {Empty, 1}, {Mixed, 4}, {Empty, 1},
     3338        {Mixed, 5}, {Full, 1}, {Mixed, 1}, {Empty, 83}, {Full, 1},
     3339        {Mixed, 2}, {Full, 4}, {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Full, 1},
     3340        {Mixed, 4}, {Full, 1}, {Empty, 16}, {Mixed, 3}, {Full, 1},
     3341        {Mixed, 2}, {Full, 1}, {Mixed, 3}, {Full, 2}, {Mixed, 2},
     3342        {Empty, 1}, {Mixed, 1}, {Empty, 16}, {Full, 205}, {Mixed, 1},
     3343        {Empty, 2}, {Full, 655}, {Mixed, 1}, {Full, 36}, {Mixed, 1},
     3344        {Empty, 1}, {Mixed, 2}, {Full, 8}, {Mixed, 2}, {Full, 1},
     3345        {Mixed, 1}, {Full, 3}, {Mixed, 3}, {Full, 2}, {Mixed, 2},
     3346        {Empty, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Full, 1},
     3347        {Mixed, 1}, {Full, 2}, {Mixed, 2}, {Full, 1}, {Mixed, 3}, {Full, 2},
     3348        {Mixed, 2}, {Full, 1}, {Mixed, 3}, {Full, 2}, {Mixed, 6}, {Full, 3},
     3349        {Mixed, 1}, {Full, 349}, {Mixed, 3}, {Empty, 264}, {Full, 11},
     3350        {Mixed, 1}, {Full, 2}, {Mixed, 1}, {Empty, 1}, {Mixed, 3},
     3351        {Full, 2}, {Mixed, 2}, {Full, 3}, {Mixed, 2}, {Full, 5}, {Mixed, 2},
     3352        {Full, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 6}, {Full, 3}, {Mixed, 5},
     3353        {Full, 1}, {Mixed, 2}, {Empty, 1}, {Mixed, 3}, {Empty, 1},
     3354        {Full, 3}, {Mixed, 1}, {Empty, 2}, {Full, 1}, {Mixed, 1},
     3355        {Empty, 3}, {Mixed, 1}, {Empty, 4}, {Mixed, 1}, {Full, 1},
     3356        {Mixed, 2}, {Full, 1}, {Mixed, 4}, {Full, 1}, {Mixed, 1},
     3357        {Empty, 1}, {Full, 4}, {Mixed, 4}, {Full, 1}, {Mixed, 1}, {Full, 1},
     3358        {Mixed, 1}, {Empty, 4}, {Full, 9}, {Mixed, 3}, {Empty, 4},
     3359        {Mixed, 5}, {Empty, 2}, {Mixed, 3}, {Empty, 2}, {Full, 1},
     3360        {Mixed, 1}, {Empty, 2}, {Mixed, 2}, {Empty, 1}, {Mixed, 2},
     3361        {Empty, 1}, {Mixed, 2}, {Full, 1}, {Mixed, 4}, {Empty, 3},
     3362        {Full, 2}, {Mixed, 1}, {Empty, 1}, {Full, 1}, {Mixed, 1}, {Full, 1},
     3363        {Mixed, 1}, {Empty, 24}, {Full, 2}, {Mixed, 2}, {Full, 1},
     3364        {Mixed, 3}, {Full, 1}, {Mixed, 3}, {Full, 2}, {Mixed, 1},
     3365        {Empty, 1}, {Mixed, 2}, {Empty, 2}, {Mixed, 2}, {Full, 1},
     3366        {Mixed, 5}, {Empty, 4}, {Full, 2}, {Mixed, 1}, {Empty, 1},
     3367        {Full, 2}, {Mixed, 1}, {Empty, 5}, {Full, 1}, {Mixed, 2},
     3368        {Empty, 1}, {Full, 2}, {Mixed, 1}, {Empty, 1}, {Full, 1},
     3369        {Mixed, 2}, {Empty, 1}, {Mixed, 2}, {Empty, 11}, {Full, 2},
     3370        {Mixed, 1}, {Empty, 8}, {Full, 1}, {Mixed, 2}, {Full, 1},
     3371        {Mixed, 1}, {Empty, 1}, {Full, 1}, {Mixed, 1}, {Empty, 8},
     3372        {Mixed, 6}, {Empty, 2}, {Mixed, 3}, {Empty, 21}, {Full, 28},
     3373        {Mixed, 1}, {Empty, 3}, {Full, 3}, {Mixed, 1}, {Full, 6},
     3374        {Mixed, 1}, {Empty, 85}, {Full, 33}, {Mixed, 1}, {Empty, 126},
     3375        {Full, 18}, {Mixed, 1}, {Empty, 269}, {Full, 17}, {Mixed, 3},
     3376        {Empty, 2}, {Mixed, 2}, {Full, 1}, {Mixed, 4}, {Empty, 27},
     3377        {Full, 2}, {Mixed, 3}, {Empty, 2}, {Mixed, 1}, {Full, 191},
     3378        {Mixed, 1}, {Full, 23}, {Mixed, 1}, {Empty, 296}, {Full, 8},
     3379        {Mixed, 1}, {Empty, 2}, {Mixed, 1}, {Full, 11}, {Mixed, 1},
     3380        {Empty, 72}, {Full, 3}, {Mixed, 2}, {Empty, 166}, {Mixed, 3},
     3381        {Empty, 4}, {Mixed, 1}, {Empty, 13}, {Full, 2}, {Mixed, 1},
     3382        {Full, 1}, {Mixed, 3}, {Full, 1}, {Mixed, 3}, {Full, 10},
     3383        {Mixed, 10}, {Full, 1}, {Empty, 16}, {Full, 1}, {Mixed, 1},
     3384        {Full, 1}, {Mixed, 3}, {Empty, 42}, {Mixed, 2}, {Empty, 62},
     3385        {Full, 6}, {Mixed, 1}, {Empty, 1}, {Full, 2}, {Mixed, 1},
     3386        {Empty, 37}, {Mixed, 6}, {Empty, 138}, {Full, 1334}, {Mixed, 1},
     3387        {Empty, 1}, {Full, 129}, {Mixed, 1}, {Full, 6}, {Mixed, 1},
     3388        {Full, 180}, {Mixed, 1}, {Full, 233}, {Mixed, 1}, {Empty, 96},
     3389        {Full, 16}, {Mixed, 1}, {Empty, 22583}, {Full, 7}, {Mixed, 1},
     3390        {Empty, 6128}};
     3391        const static UnicodeSet::bitquad_t  __codepoint_set_quads[] = {
     3392        0x03ff0000, 0x87fffffe, 0x07fffffe, 0x04a00400, 0xff7fffff,
     3393        0xff7fffff, 0x0003ffc3, 0x0000501f, 0xb8dfffff, 0xffffd7c0,
     3394        0xfffffffb, 0xffbfffff, 0xfffffcfb, 0xfffeffff, 0x027fffff,
     3395        0xfffffffe, 0xfffe00ff, 0xbfffffff, 0xffff00b6, 0x000707ff,
     3396        0x07ff0000, 0xffffc3ff, 0x9fefffff, 0x9ffffdff, 0xffff0000,
     3397        0xffffe7ff, 0x0003ffff, 0x043fffff, 0x00003fff, 0x0fffffff,
     3398        0x000007ff, 0x3fdfffff, 0xfff00000, 0xfffffffb, 0xfffeffcf,
     3399        0xfff99fef, 0xf3c5fdff, 0xb080799f, 0x1003ffcf, 0xfff987ee,
     3400        0xd36dfdff, 0x5e023987, 0x003fffc0, 0xfffbbfee, 0xf3edfdff,
     3401        0x00013bbf, 0xfe00ffcf, 0xfff99fee, 0xf3edfdff, 0xb0c0399f,
     3402        0x0002ffcf, 0xd63dc7ec, 0xc3ffc718, 0x00813dc7, 0x0000ffc0,
     3403        0xfffddfef, 0xe3fffdff, 0x07603ddf, 0x0000ffcf, 0xfffddfef,
     3404        0xf3effdff, 0x40603ddf, 0x0006ffcf, 0xfffddfef, 0x80f07ddf,
     3405        0xfc00ffcf, 0xfc7fffec, 0x2ffbffff, 0xff5f847f, 0x000cffc0,
     3406        0xfffffffe, 0x07ffffff, 0x03ff7fff, 0xfef02596, 0x3bffecae,
     3407        0xf3ff3f5f, 0x03000001, 0xc2a003ff, 0xfffffeff, 0xfffe1fff,
     3408        0xfeffffdf, 0x1fffffff, 0x00000040, 0xffff03ff, 0x3fffffff,
     3409        0xffff20bf, 0xf7ffffff, 0x3d7f3dff, 0xffff3dff, 0x7f3dffff,
     3410        0xff7fff3d, 0xff3dffff, 0xe7ffffff, 0x0003fe00, 0x0000ffff,
     3411        0x3f3fffff, 0xfffffffe, 0xffff9fff, 0x07fffffe, 0x01ffc7ff,
     3412        0x001fdfff, 0x001fffff, 0x000fffff, 0x000ddfff, 0x308fffff,
     3413        0x000003ff, 0x03ff3800, 0x00ffffff, 0xffff07ff, 0x003fffff,
     3414        0x7fffffff, 0x0fff0fff, 0xffffffc0, 0x001f3fff, 0xffff0fff,
     3415        0x07ff03ff, 0x0fffffff, 0x7fffffff, 0x9fffffff, 0x03ff03ff,
     3416        0x3fff0080, 0x03ff0fff, 0x000ff800, 0x000fffff, 0x00ffffff,
     3417        0xffffe3ff, 0x3fffffff, 0x000001ff, 0xfff70000, 0x03ffffff,
     3418        0xfbffffff, 0x3f3fffff, 0xaaff3f3f, 0x3fffffff, 0x5fdfffff,
     3419        0x0fcf1fdc, 0x1fdc1fff, 0x80000000, 0x00100001, 0x80020000,
     3420        0x1fff0000, 0x1fff0000, 0x0001ffe2, 0x3f2ffc84, 0xf3fffd50,
     3421        0x000043e0, 0x000001ff, 0xffff7fff, 0x7fffffff, 0x000ff81f,
     3422        0xffff20bf, 0x800080ff, 0x007fffff, 0x7f7f7f7f, 0x7f7f7f7f,
     3423        0x000000e0, 0x1f3efffe, 0xfffffffe, 0xe67fffff, 0xfffffffe,
     3424        0xf7ffffff, 0xffffffe0, 0xfffe7fff, 0x00007fff, 0x07ffffff,
     3425        0xffff0000, 0x003fffff, 0x000007ff, 0x00001fff, 0xffff0000,
     3426        0x3fffffff, 0xffff1fff, 0x00000fff, 0xbff0ffff, 0x0003ffff,
     3427        0xff800000, 0xfffffffc, 0xfffff9ff, 0x00ff7fff, 0xff800000,
     3428        0x000000ff, 0x000fffff, 0x03ff003f, 0x28ffffff, 0xffff3fff,
     3429        0x000fffff, 0x1fffffff, 0x03ff8001, 0x7fffffff, 0x007fffff,
     3430        0x03ff3fff, 0xfc7fffff, 0x38000007, 0x007cffff, 0x007e7e7e,
     3431        0xffff7f7f, 0xf7ffffff, 0xffff003f, 0x03ff37ff, 0xffff000f,
     3432        0xfffff87f, 0x0fffffff, 0xffff3fff, 0x03ffffff, 0xe0f8007f,
     3433        0x5f7ffdff, 0xffffffdb, 0x0003ffff, 0xfff80000, 0x3fffffff,
     3434        0xfffffff0, 0x3fffffff, 0xffff0000, 0xfffcffff, 0x000000ff,
     3435        0x03ff0000, 0x0000ffff, 0x0018ffff, 0x0000e000, 0xaa8a0000,
     3436        0x1fffffff, 0x03ff0000, 0x87fffffe, 0x07fffffe, 0xffffffc0,
     3437        0x7fffffff, 0x1cfcfcfc, 0xffffefff, 0xb7ffff7f, 0x3fff3fff,
     3438        0x07ffffff, 0x001fffff, 0x20000000, 0x1fffffff, 0x0001ffff,
     3439        0x00000001, 0xffffe000, 0xffff07ff, 0x07ffffff, 0x3fffffff,
     3440        0x003eff0f, 0x3fffffff, 0xffff03ff, 0xff0fffff, 0x0fffffff,
     3441        0xffff00ff, 0x0000000f, 0x007fffff, 0x003fffff, 0x000000ff,
     3442        0xfffffd3f, 0x91bfffff, 0x003fffff, 0x007fffff, 0x7fffffff,
     3443        0x0037ffff, 0x003fffff, 0x03ffffff, 0xc0ffffff, 0xfeeff06f,
     3444        0x870fffff, 0x1fffffff, 0x1fffffff, 0xfffffeff, 0x0000007f,
     3445        0x003fffff, 0x003fffff, 0x0007ffff, 0x0003ffff, 0x000001ff,
     3446        0x0007ffff, 0x0007ffff, 0x0000007f, 0x8000ffc0, 0x07ffffff,
     3447        0xffff0000, 0x03ff01ff, 0xffdfffff, 0xffff0000, 0x004fffff,
     3448        0x17ff1c1f, 0xfffbffff, 0x40ffffff, 0xbfffbd7f, 0xffff01ff,
     3449        0x03ff07ff, 0xfff99fef, 0xf3edfdff, 0xe081399f, 0x001f1fcf,
     3450        0x03ff07ff, 0x03ff00bf, 0xff3fffff, 0x3f000001, 0x03ff0011,
     3451        0x00ffffff, 0x000003ff, 0xe3ffffff, 0x03ff0fff, 0x800003ff,
     3452        0x7fffffff, 0xffff0080, 0x03ffffcf, 0x01ffffff, 0xfffffdff,
     3453        0xff7fffff, 0x03ff0001, 0xfffc0000, 0xfffcffff, 0x007ffeff,
     3454        0xfffffb7f, 0xb47fffff, 0x03ff00ff, 0x03ffffff, 0x00007fff,
     3455        0x0000000f, 0x00007fff, 0x0000007f, 0x01ffffff, 0x7fffffff,
     3456        0x000003ff, 0xffff0000, 0x001f3fff, 0x007fffff, 0x03ff000f,
     3457        0xe0fffff8, 0x0000ffff, 0xffff001f, 0x7fffffff, 0xffff8000,
     3458        0x00000003, 0x00001fff, 0x0007ffff, 0x7fffffff, 0xffff0000,
     3459        0x0fffffff, 0x1fff07ff, 0x63ff01ff, 0xf807e3e0, 0x00000fe7,
     3460        0x00003c00, 0x0000001c, 0xffdfffff, 0xdfffffff, 0xebffde64,
     3461        0xffffffef, 0xdfdfe7bf, 0x7bffffff, 0xfffdfc5f, 0xffffff3f,
     3462        0xf7fffffd, 0xf7ffffff, 0xffdfffff, 0xffdfffff, 0xffff7fff,
     3463        0xffff7fff, 0xfffffdff, 0xfffffdff, 0xffffcff7, 0xf87fffff,
     3464        0x00201fff, 0xf8000010, 0x0000fffe, 0xf9ffff7f, 0x000007db,
     3465        0x007f001f, 0x03ff07ff, 0xffffffef, 0x0af7fe96, 0xaa96ea84,
     3466        0x5ef7f796, 0x0ffffbff, 0x0ffffbee, 0x007fffff, 0x001fffff,
     3467        0x3fffffff, 0xffff0003, 0x00000001, 0x3fffffff, 0x0000ffff};
     3468        }
     3469
     3470        const static UnicodeSet codepoint_set{const_cast<UnicodeSet::run_t *>(__codepoint_set_runs), 359, 0, const_cast<UnicodeSet::bitquad_t *>(__codepoint_set_quads), 380, 0};
     3471
     3472        static BinaryPropertyObject property_object{XIDC, std::move(codepoint_set)};
    33533473    }
    33543474    namespace XIDS_ns {
     
    35023622        [1eea5, 1eea9], [1eeab, 1eebb], [20000, 2a6d6], [2a700, 2b734],
    35033623        [2b740, 2b81d], [2b820, 2cea1], [2ceb0, 2ebe0], [2f800, 2fa1d]**/
    3504         const UnicodeSet codepoint_set
    3505             {{{Empty, 2}, {Mixed, 2}, {Empty, 1}, {Mixed, 3}, {Full, 14},
    3506               {Mixed, 2}, {Empty, 3}, {Mixed, 3}, {Full, 1}, {Mixed, 1},
    3507               {Full, 4}, {Mixed, 1}, {Full, 4}, {Mixed, 4}, {Empty, 1},
    3508               {Mixed, 2}, {Empty, 1}, {Full, 1}, {Mixed, 2}, {Full, 2},
    3509               {Mixed, 5}, {Full, 2}, {Mixed, 7}, {Empty, 1}, {Mixed, 1},
    3510               {Empty, 2}, {Mixed, 23}, {Empty, 1}, {Mixed, 15}, {Empty, 1},
    3511               {Mixed, 3}, {Empty, 1}, {Mixed, 3}, {Empty, 1}, {Mixed, 1},
    3512               {Empty, 1}, {Mixed, 3}, {Empty, 3}, {Full, 1}, {Mixed, 4},
    3513               {Full, 1}, {Mixed, 2}, {Full, 10}, {Mixed, 1}, {Full, 1},
    3514               {Mixed, 3}, {Full, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 1},
    3515               {Empty, 1}, {Mixed, 1}, {Full, 2}, {Mixed, 2}, {Full, 18},
    3516               {Mixed, 2}, {Full, 2}, {Mixed, 5}, {Full, 1}, {Mixed, 2},
    3517               {Empty, 2}, {Full, 2}, {Mixed, 1}, {Full, 1}, {Mixed, 1},
    3518               {Full, 1}, {Mixed, 2}, {Empty, 1}, {Mixed, 2}, {Full, 1},
    3519               {Mixed, 2}, {Empty, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 1},
    3520               {Empty, 2}, {Mixed, 1}, {Empty, 2}, {Mixed, 3}, {Empty, 1},
    3521               {Mixed, 2}, {Full, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 4},
    3522               {Empty, 2}, {Mixed, 1}, {Full, 6}, {Empty, 2}, {Full, 8},
    3523               {Mixed, 1}, {Full, 1}, {Mixed, 2}, {Full, 1}, {Mixed, 3},
    3524               {Empty, 3}, {Mixed, 2}, {Empty, 3}, {Mixed, 3}, {Full, 1},
    3525               {Mixed, 1}, {Empty, 83}, {Full, 1}, {Mixed, 2}, {Full, 4},
    3526               {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 4},
    3527               {Empty, 17}, {Mixed, 3}, {Full, 1}, {Mixed, 2}, {Full, 1},
    3528               {Mixed, 3}, {Full, 2}, {Mixed, 2}, {Empty, 1}, {Mixed, 1},
    3529               {Empty, 16}, {Full, 205}, {Mixed, 1}, {Empty, 2}, {Full, 655},
    3530               {Mixed, 1}, {Full, 36}, {Mixed, 1}, {Empty, 1}, {Mixed, 2},
    3531               {Full, 8}, {Mixed, 2}, {Full, 1}, {Mixed, 2}, {Full, 2},
    3532               {Mixed, 3}, {Full, 2}, {Mixed, 2}, {Empty, 1}, {Mixed, 3},
    3533               {Full, 1}, {Mixed, 3}, {Empty, 1}, {Mixed, 9}, {Full, 1},
    3534               {Mixed, 3}, {Full, 1}, {Mixed, 7}, {Full, 3}, {Mixed, 1},
    3535               {Full, 349}, {Mixed, 3}, {Empty, 264}, {Full, 11}, {Mixed, 1},
    3536               {Full, 2}, {Mixed, 1}, {Empty, 1}, {Mixed, 3}, {Full, 2},
    3537               {Mixed, 2}, {Full, 3}, {Mixed, 2}, {Full, 5}, {Mixed, 2},
    3538               {Full, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 2}, {Empty, 3},
    3539               {Mixed, 1}, {Full, 3}, {Mixed, 1}, {Empty, 1}, {Mixed, 6},
    3540               {Empty, 1}, {Mixed, 3}, {Empty, 1}, {Full, 3}, {Mixed, 1},
    3541               {Empty, 2}, {Full, 1}, {Mixed, 1}, {Empty, 8}, {Mixed, 1},
    3542               {Full, 1}, {Mixed, 1}, {Empty, 1}, {Full, 1}, {Mixed, 4},
    3543               {Full, 1}, {Mixed, 1}, {Empty, 1}, {Full, 4}, {Mixed, 4},
    3544               {Full, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Empty, 4},
    3545               {Full, 9}, {Mixed, 3}, {Empty, 4}, {Mixed, 5}, {Empty, 2},
    3546               {Mixed, 3}, {Empty, 2}, {Full, 1}, {Mixed, 1}, {Empty, 2},
    3547               {Mixed, 2}, {Empty, 1}, {Mixed, 2}, {Empty, 1}, {Mixed, 2},
    3548               {Full, 1}, {Mixed, 4}, {Empty, 3}, {Full, 2}, {Mixed, 1},
    3549               {Empty, 1}, {Full, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 1},
    3550               {Empty, 24}, {Mixed, 2}, {Empty, 2}, {Mixed, 11}, {Empty, 1},
    3551               {Mixed, 2}, {Empty, 2}, {Mixed, 3}, {Empty, 1}, {Mixed, 4},
    3552               {Empty, 4}, {Full, 1}, {Mixed, 2}, {Empty, 1}, {Full, 1},
    3553               {Mixed, 2}, {Empty, 5}, {Full, 1}, {Mixed, 2}, {Empty, 1},
    3554               {Full, 1}, {Mixed, 2}, {Empty, 1}, {Full, 1}, {Mixed, 1},
    3555               {Empty, 2}, {Mixed, 1}, {Empty, 12}, {Full, 2}, {Mixed, 1},
    3556               {Empty, 8}, {Mixed, 3}, {Full, 1}, {Mixed, 1}, {Empty, 1},
    3557               {Full, 1}, {Mixed, 1}, {Empty, 8}, {Mixed, 5}, {Empty, 3},
    3558               {Mixed, 3}, {Empty, 21}, {Full, 28}, {Mixed, 1}, {Empty, 3},
    3559               {Full, 3}, {Mixed, 1}, {Full, 6}, {Mixed, 1}, {Empty, 85},
    3560               {Full, 33}, {Mixed, 1}, {Empty, 126}, {Full, 18}, {Mixed, 1},
    3561               {Empty, 269}, {Full, 17}, {Mixed, 2}, {Empty, 3}, {Mixed, 2},
    3562               {Full, 1}, {Mixed, 4}, {Empty, 27}, {Full, 2}, {Mixed, 1},
    3563               {Empty, 1}, {Mixed, 1}, {Empty, 2}, {Mixed, 1}, {Full, 191},
    3564               {Mixed, 1}, {Full, 23}, {Mixed, 1}, {Empty, 296}, {Full, 8},
    3565               {Mixed, 1}, {Empty, 2}, {Mixed, 1}, {Full, 11}, {Mixed, 1},
    3566               {Empty, 72}, {Full, 3}, {Mixed, 2}, {Empty, 187}, {Full, 2},
    3567               {Mixed, 1}, {Full, 1}, {Mixed, 3}, {Full, 1}, {Mixed, 3},
    3568               {Full, 10}, {Mixed, 10}, {Empty, 129}, {Full, 6}, {Mixed, 1},
    3569               {Empty, 1}, {Full, 2}, {Mixed, 1}, {Empty, 37}, {Mixed, 6},
    3570               {Empty, 138}, {Full, 1334}, {Mixed, 1}, {Empty, 1},
    3571               {Full, 129}, {Mixed, 1}, {Full, 6}, {Mixed, 1}, {Full, 180},
    3572               {Mixed, 1}, {Full, 233}, {Mixed, 1}, {Empty, 96}, {Full, 16},
    3573               {Mixed, 1}, {Empty, 28719}},
    3574              {0x07fffffe, 0x07fffffe, 0x04200400, 0xff7fffff, 0xff7fffff,
    3575               0x0003ffc3, 0x0000501f, 0xb8df0000, 0xffffd740, 0xfffffffb,
    3576               0xffbfffff, 0xfffffc03, 0xfffeffff, 0x027fffff, 0xfffffffe,
    3577               0x000000ff, 0xffff0000, 0x000707ff, 0x000007ff, 0xfffec000,
    3578               0x002fffff, 0x9c00c060, 0xfffd0000, 0x0000ffff, 0xffffe000,
    3579               0x0002003f, 0xfffffc00, 0x043007ff, 0x043fffff, 0x00000110,
    3580               0x01ffffff, 0x000007ff, 0x3fdfffff, 0xfffffff0, 0x23ffffff,
    3581               0xff010000, 0xfffe0003, 0xfff99fe1, 0x23c5fdff, 0xb0004000,
    3582               0x10030003, 0xfff987e0, 0x036dfdff, 0x5e000000, 0x001c0000,
    3583               0xfffbbfe0, 0x23edfdff, 0x00010000, 0x02000003, 0xfff99fe0,
    3584               0x23edfdff, 0xb0000000, 0x00020003, 0xd63dc7e8, 0x03ffc718,
    3585               0x00010000, 0xfffddfe0, 0x23fffdff, 0x07000000, 0x00000003,
    3586               0xfffddfe1, 0x23effdff, 0x40000000, 0x00060003, 0xfffddfe0,
    3587               0x27ffffff, 0x80704000, 0xfc000003, 0xfc7fffe0, 0x2ffbffff,
    3588               0x0000007f, 0xfffffffe, 0x0005ffff, 0x0000007f, 0xfef02596,
    3589               0x2005ecae, 0xf000005f, 0x00000001, 0xfffffeff, 0x00001fff,
    3590               0x00001f00, 0x800007ff, 0x3c3f0000, 0xffe1c062, 0x00004003,
    3591               0xffff20bf, 0xf7ffffff, 0x3d7f3dff, 0xffff3dff, 0x7f3dffff,
    3592               0xff7fff3d, 0xff3dffff, 0x07ffffff, 0x0000ffff, 0x3f3fffff,
    3593               0xfffffffe, 0xffff9fff, 0x07fffffe, 0x01ffc7ff, 0x0003dfff,
    3594               0x0003ffff, 0x0003ffff, 0x0001dfff, 0x000fffff, 0x10800000,
    3595               0x00ffffff, 0xffff05ff, 0x003fffff, 0x7fffffff, 0xffff0000,
    3596               0x001f3fff, 0xffff0fff, 0x000003ff, 0x007fffff, 0x001fffff,
    3597               0x00000080, 0xffffffe0, 0x000fffff, 0x00000fe0, 0xfffffff8,
    3598               0xfc00c001, 0x0000003f, 0x0000000f, 0xfc00e000, 0x3fffffff,
    3599               0x000001ff, 0x0063de00, 0x3f3fffff, 0xaaff3f3f, 0x3fffffff,
    3600               0x5fdfffff, 0x0fcf1fdc, 0x1fdc1fff, 0x80020000, 0x1fff0000,
    3601               0x3f2ffc84, 0xf3fffd50, 0x000043e0, 0x000001ff, 0xffff7fff,
    3602               0x7fffffff, 0x000c781f, 0xffff20bf, 0x000080ff, 0x007fffff,
    3603               0x7f7f7f7f, 0x7f7f7f7f, 0x000000e0, 0x1f3e03fe, 0xfffffffe,
    3604               0xe07fffff, 0xfffffffe, 0xf7ffffff, 0xffffffe0, 0xfffe7fff,
    3605               0x00007fff, 0x07ffffff, 0xffff0000, 0x003fffff, 0x000007ff,
    3606               0x00001fff, 0xffff0000, 0x3fffffff, 0xffff1fff, 0x00000c00,
    3607               0x80007fff, 0x3fffffff, 0x0000ffff, 0xff800000, 0xfffffffc,
    3608               0xfffff9ff, 0x00ff7fff, 0xff800000, 0xfffff7bb, 0x00000007,
    3609               0x000fffff, 0xfffffffc, 0x000fffff, 0x28fc0000, 0xfffffc00,
    3610               0xffff003f, 0x0000007f, 0x1fffffff, 0xfffffff0, 0x0007ffff,
    3611               0x00008000, 0x7c00ffdf, 0x000001ff, 0x00000ff7, 0xc47fffff,
    3612               0x3e62ffff, 0x38000005, 0x001c07ff, 0x007e7e7e, 0xffff7f7f,
    3613               0xf7ffffff, 0xffff003f, 0x00000007, 0xffff000f, 0xfffff87f,
    3614               0x0fffffff, 0xffff3fff, 0x03ffffff, 0xa0f8007f, 0x5f7ffdff,
    3615               0xffffffdb, 0x0003ffff, 0xfff80000, 0x3fffffff, 0xfffffff0,
    3616               0x3fffffff, 0xffff0000, 0xfffcffff, 0x000000ff, 0x03ff0000,
    3617               0xaa8a0000, 0x1fffffff, 0x07fffffe, 0x07fffffe, 0xffffffc0,
    3618               0x3fffffff, 0x7fffffff, 0x1cfcfcfc, 0xffffefff, 0xb7ffff7f,
    3619               0x3fff3fff, 0x07ffffff, 0x001fffff, 0x1fffffff, 0x0001ffff,
    3620               0xffffe000, 0xffff07ff, 0x003fffff, 0x3fffffff, 0x003eff0f,
    3621               0x3fffffff, 0xffff0000, 0xff0fffff, 0x0fffffff, 0xffff00ff,
    3622               0x0000000f, 0x007fffff, 0x003fffff, 0x000000ff, 0xfffffd3f,
    3623               0x91bfffff, 0x003fffff, 0x007fffff, 0x7fffffff, 0x0037ffff,
    3624               0x003fffff, 0x03ffffff, 0xc0ffffff, 0xfeef0001, 0x000fffff,
    3625               0x1fffffff, 0x1fffffff, 0xfffffeff, 0x0000001f, 0x003fffff,
    3626               0x003fffff, 0x0007ffff, 0x0003ffff, 0x000001ff, 0x0007ffff,
    3627               0x0007ffff, 0xfffffff8, 0x00ffffff, 0xfffffff8, 0x0000ffff,
    3628               0xffff0000, 0x000001ff, 0xfffffff8, 0x0000007f, 0xffff0000,
    3629               0x0047ffff, 0xfffffff8, 0x0007ffff, 0x1400001e, 0xfffbffff,
    3630               0x00000fff, 0xbfffbd7f, 0xffff01ff, 0x7fffffff, 0xfff99fe0,
    3631               0x23edfdff, 0xe0010000, 0x00000003, 0x001fffff, 0x00000780,
    3632               0x0000ffff, 0x000000b0, 0x00007fff, 0x0f000000, 0x0000ffff,
    3633               0x00000010, 0x000007ff, 0x03ffffff, 0x80000000, 0xfffff801,
    3634               0x0407ffff, 0xf0010000, 0x000003cf, 0x01ffffff, 0xfffffdff,
    3635               0x00007fff, 0x00000001, 0xfffc0000, 0x0000ffff, 0xfffffb7f,
    3636               0x0001ffff, 0x00000040, 0x03ffffff, 0x00007fff, 0x0000000f,
    3637               0x00007fff, 0x0000007f, 0x01ffffff, 0x7fffffff, 0xffff0000,
    3638               0x00003fff, 0x0000ffff, 0x0000000f, 0xe0fffff8, 0x0000ffff,
    3639               0x0001001f, 0xfff80000, 0x00000003, 0x00001fff, 0x0007ffff,
    3640               0x7fffffff, 0xffff0000, 0x0fffffff, 0x1fff07ff, 0x03ff01ff,
    3641               0xffdfffff, 0xdfffffff, 0xebffde64, 0xffffffef, 0xdfdfe7bf,
    3642               0x7bffffff, 0xfffdfc5f, 0xffffff3f, 0xf7fffffd, 0xf7ffffff,
    3643               0xffdfffff, 0xffdfffff, 0xffff7fff, 0xffff7fff, 0xfffffdff,
    3644               0xfffffdff, 0x00000ff7, 0x0000001f, 0x0000000f, 0xffffffef,
    3645               0x0af7fe96, 0xaa96ea84, 0x5ef7f796, 0x0ffffbff, 0x0ffffbee,
    3646               0x007fffff, 0x001fffff, 0x3fffffff, 0xffff0003, 0x00000001,
    3647               0x3fffffff}};
    3648         static BinaryPropertyObject property_object{XIDS, codepoint_set};
     3624
     3625
     3626        namespace {
     3627        const static UnicodeSet::run_t __codepoint_set_runs[] = {
     3628        {Empty, 2}, {Mixed, 2}, {Empty, 1}, {Mixed, 3}, {Full, 14},
     3629        {Mixed, 2}, {Empty, 3}, {Mixed, 3}, {Full, 1}, {Mixed, 1},
     3630        {Full, 4}, {Mixed, 1}, {Full, 4}, {Mixed, 4}, {Empty, 1},
     3631        {Mixed, 2}, {Empty, 1}, {Full, 1}, {Mixed, 2}, {Full, 2},
     3632        {Mixed, 5}, {Full, 2}, {Mixed, 7}, {Empty, 1}, {Mixed, 1},
     3633        {Empty, 2}, {Mixed, 23}, {Empty, 1}, {Mixed, 15}, {Empty, 1},
     3634        {Mixed, 3}, {Empty, 1}, {Mixed, 3}, {Empty, 1}, {Mixed, 1},
     3635        {Empty, 1}, {Mixed, 3}, {Empty, 3}, {Full, 1}, {Mixed, 4},
     3636        {Full, 1}, {Mixed, 2}, {Full, 10}, {Mixed, 1}, {Full, 1},
     3637        {Mixed, 3}, {Full, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 1},
     3638        {Empty, 1}, {Mixed, 1}, {Full, 2}, {Mixed, 2}, {Full, 18},
     3639        {Mixed, 2}, {Full, 2}, {Mixed, 5}, {Full, 1}, {Mixed, 2},
     3640        {Empty, 2}, {Full, 2}, {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Full, 1},
     3641        {Mixed, 2}, {Empty, 1}, {Mixed, 2}, {Full, 1}, {Mixed, 2},
     3642        {Empty, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Empty, 2},
     3643        {Mixed, 1}, {Empty, 2}, {Mixed, 3}, {Empty, 1}, {Mixed, 2},
     3644        {Full, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 4}, {Empty, 2},
     3645        {Mixed, 1}, {Full, 6}, {Empty, 2}, {Full, 8}, {Mixed, 1}, {Full, 1},
     3646        {Mixed, 2}, {Full, 1}, {Mixed, 3}, {Empty, 3}, {Mixed, 2},
     3647        {Empty, 3}, {Mixed, 3}, {Full, 1}, {Mixed, 1}, {Empty, 83},
     3648        {Full, 1}, {Mixed, 2}, {Full, 4}, {Mixed, 1}, {Full, 1}, {Mixed, 1},
     3649        {Full, 1}, {Mixed, 4}, {Empty, 17}, {Mixed, 3}, {Full, 1},
     3650        {Mixed, 2}, {Full, 1}, {Mixed, 3}, {Full, 2}, {Mixed, 2},
     3651        {Empty, 1}, {Mixed, 1}, {Empty, 16}, {Full, 205}, {Mixed, 1},
     3652        {Empty, 2}, {Full, 655}, {Mixed, 1}, {Full, 36}, {Mixed, 1},
     3653        {Empty, 1}, {Mixed, 2}, {Full, 8}, {Mixed, 2}, {Full, 1},
     3654        {Mixed, 2}, {Full, 2}, {Mixed, 3}, {Full, 2}, {Mixed, 2},
     3655        {Empty, 1}, {Mixed, 3}, {Full, 1}, {Mixed, 3}, {Empty, 1},
     3656        {Mixed, 9}, {Full, 1}, {Mixed, 3}, {Full, 1}, {Mixed, 7}, {Full, 3},
     3657        {Mixed, 1}, {Full, 349}, {Mixed, 3}, {Empty, 264}, {Full, 11},
     3658        {Mixed, 1}, {Full, 2}, {Mixed, 1}, {Empty, 1}, {Mixed, 3},
     3659        {Full, 2}, {Mixed, 2}, {Full, 3}, {Mixed, 2}, {Full, 5}, {Mixed, 2},
     3660        {Full, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 2}, {Empty, 3},
     3661        {Mixed, 1}, {Full, 3}, {Mixed, 1}, {Empty, 1}, {Mixed, 6},
     3662        {Empty, 1}, {Mixed, 3}, {Empty, 1}, {Full, 3}, {Mixed, 1},
     3663        {Empty, 2}, {Full, 1}, {Mixed, 1}, {Empty, 8}, {Mixed, 1},
     3664        {Full, 1}, {Mixed, 1}, {Empty, 1}, {Full, 1}, {Mixed, 4}, {Full, 1},
     3665        {Mixed, 1}, {Empty, 1}, {Full, 4}, {Mixed, 4}, {Full, 1},
     3666        {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Empty, 4}, {Full, 9},
     3667        {Mixed, 3}, {Empty, 4}, {Mixed, 5}, {Empty, 2}, {Mixed, 3},
     3668        {Empty, 2}, {Full, 1}, {Mixed, 1}, {Empty, 2}, {Mixed, 2},
     3669        {Empty, 1}, {Mixed, 2}, {Empty, 1}, {Mixed, 2}, {Full, 1},
     3670        {Mixed, 4}, {Empty, 3}, {Full, 2}, {Mixed, 1}, {Empty, 1},
     3671        {Full, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Empty, 24},
     3672        {Mixed, 2}, {Empty, 2}, {Mixed, 11}, {Empty, 1}, {Mixed, 2},
     3673        {Empty, 2}, {Mixed, 3}, {Empty, 1}, {Mixed, 4}, {Empty, 4},
     3674        {Full, 1}, {Mixed, 2}, {Empty, 1}, {Full, 1}, {Mixed, 2},
     3675        {Empty, 5}, {Full, 1}, {Mixed, 2}, {Empty, 1}, {Full, 1},
     3676        {Mixed, 2}, {Empty, 1}, {Full, 1}, {Mixed, 1}, {Empty, 2},
     3677        {Mixed, 1}, {Empty, 12}, {Full, 2}, {Mixed, 1}, {Empty, 8},
     3678        {Mixed, 3}, {Full, 1}, {Mixed, 1}, {Empty, 1}, {Full, 1},
     3679        {Mixed, 1}, {Empty, 8}, {Mixed, 5}, {Empty, 3}, {Mixed, 3},
     3680        {Empty, 21}, {Full, 28}, {Mixed, 1}, {Empty, 3}, {Full, 3},
     3681        {Mixed, 1}, {Full, 6}, {Mixed, 1}, {Empty, 85}, {Full, 33},
     3682        {Mixed, 1}, {Empty, 126}, {Full, 18}, {Mixed, 1}, {Empty, 269},
     3683        {Full, 17}, {Mixed, 2}, {Empty, 3}, {Mixed, 2}, {Full, 1},
     3684        {Mixed, 4}, {Empty, 27}, {Full, 2}, {Mixed, 1}, {Empty, 1},
     3685        {Mixed, 1}, {Empty, 2}, {Mixed, 1}, {Full, 191}, {Mixed, 1},
     3686        {Full, 23}, {Mixed, 1}, {Empty, 296}, {Full, 8}, {Mixed, 1},
     3687        {Empty, 2}, {Mixed, 1}, {Full, 11}, {Mixed, 1}, {Empty, 72},
     3688        {Full, 3}, {Mixed, 2}, {Empty, 187}, {Full, 2}, {Mixed, 1},
     3689        {Full, 1}, {Mixed, 3}, {Full, 1}, {Mixed, 3}, {Full, 10},
     3690        {Mixed, 10}, {Empty, 129}, {Full, 6}, {Mixed, 1}, {Empty, 1},
     3691        {Full, 2}, {Mixed, 1}, {Empty, 37}, {Mixed, 6}, {Empty, 138},
     3692        {Full, 1334}, {Mixed, 1}, {Empty, 1}, {Full, 129}, {Mixed, 1},
     3693        {Full, 6}, {Mixed, 1}, {Full, 180}, {Mixed, 1}, {Full, 233},
     3694        {Mixed, 1}, {Empty, 96}, {Full, 16}, {Mixed, 1}, {Empty, 28719}};
     3695        const static UnicodeSet::bitquad_t  __codepoint_set_quads[] = {
     3696        0x07fffffe, 0x07fffffe, 0x04200400, 0xff7fffff, 0xff7fffff,
     3697        0x0003ffc3, 0x0000501f, 0xb8df0000, 0xffffd740, 0xfffffffb,
     3698        0xffbfffff, 0xfffffc03, 0xfffeffff, 0x027fffff, 0xfffffffe,
     3699        0x000000ff, 0xffff0000, 0x000707ff, 0x000007ff, 0xfffec000,
     3700        0x002fffff, 0x9c00c060, 0xfffd0000, 0x0000ffff, 0xffffe000,
     3701        0x0002003f, 0xfffffc00, 0x043007ff, 0x043fffff, 0x00000110,
     3702        0x01ffffff, 0x000007ff, 0x3fdfffff, 0xfffffff0, 0x23ffffff,
     3703        0xff010000, 0xfffe0003, 0xfff99fe1, 0x23c5fdff, 0xb0004000,
     3704        0x10030003, 0xfff987e0, 0x036dfdff, 0x5e000000, 0x001c0000,
     3705        0xfffbbfe0, 0x23edfdff, 0x00010000, 0x02000003, 0xfff99fe0,
     3706        0x23edfdff, 0xb0000000, 0x00020003, 0xd63dc7e8, 0x03ffc718,
     3707        0x00010000, 0xfffddfe0, 0x23fffdff, 0x07000000, 0x00000003,
     3708        0xfffddfe1, 0x23effdff, 0x40000000, 0x00060003, 0xfffddfe0,
     3709        0x27ffffff, 0x80704000, 0xfc000003, 0xfc7fffe0, 0x2ffbffff,
     3710        0x0000007f, 0xfffffffe, 0x0005ffff, 0x0000007f, 0xfef02596,
     3711        0x2005ecae, 0xf000005f, 0x00000001, 0xfffffeff, 0x00001fff,
     3712        0x00001f00, 0x800007ff, 0x3c3f0000, 0xffe1c062, 0x00004003,
     3713        0xffff20bf, 0xf7ffffff, 0x3d7f3dff, 0xffff3dff, 0x7f3dffff,
     3714        0xff7fff3d, 0xff3dffff, 0x07ffffff, 0x0000ffff, 0x3f3fffff,
     3715        0xfffffffe, 0xffff9fff, 0x07fffffe, 0x01ffc7ff, 0x0003dfff,
     3716        0x0003ffff, 0x0003ffff, 0x0001dfff, 0x000fffff, 0x10800000,
     3717        0x00ffffff, 0xffff05ff, 0x003fffff, 0x7fffffff, 0xffff0000,
     3718        0x001f3fff, 0xffff0fff, 0x000003ff, 0x007fffff, 0x001fffff,
     3719        0x00000080, 0xffffffe0, 0x000fffff, 0x00000fe0, 0xfffffff8,
     3720        0xfc00c001, 0x0000003f, 0x0000000f, 0xfc00e000, 0x3fffffff,
     3721        0x000001ff, 0x0063de00, 0x3f3fffff, 0xaaff3f3f, 0x3fffffff,
     3722        0x5fdfffff, 0x0fcf1fdc, 0x1fdc1fff, 0x80020000, 0x1fff0000,
     3723        0x3f2ffc84, 0xf3fffd50, 0x000043e0, 0x000001ff, 0xffff7fff,
     3724        0x7fffffff, 0x000c781f, 0xffff20bf, 0x000080ff, 0x007fffff,
     3725        0x7f7f7f7f, 0x7f7f7f7f, 0x000000e0, 0x1f3e03fe, 0xfffffffe,
     3726        0xe07fffff, 0xfffffffe, 0xf7ffffff, 0xffffffe0, 0xfffe7fff,
     3727        0x00007fff, 0x07ffffff, 0xffff0000, 0x003fffff, 0x000007ff,
     3728        0x00001fff, 0xffff0000, 0x3fffffff, 0xffff1fff, 0x00000c00,
     3729        0x80007fff, 0x3fffffff, 0x0000ffff, 0xff800000, 0xfffffffc,
     3730        0xfffff9ff, 0x00ff7fff, 0xff800000, 0xfffff7bb, 0x00000007,
     3731        0x000fffff, 0xfffffffc, 0x000fffff, 0x28fc0000, 0xfffffc00,
     3732        0xffff003f, 0x0000007f, 0x1fffffff, 0xfffffff0, 0x0007ffff,
     3733        0x00008000, 0x7c00ffdf, 0x000001ff, 0x00000ff7, 0xc47fffff,
     3734        0x3e62ffff, 0x38000005, 0x001c07ff, 0x007e7e7e, 0xffff7f7f,
     3735        0xf7ffffff, 0xffff003f, 0x00000007, 0xffff000f, 0xfffff87f,
     3736        0x0fffffff, 0xffff3fff, 0x03ffffff, 0xa0f8007f, 0x5f7ffdff,
     3737        0xffffffdb, 0x0003ffff, 0xfff80000, 0x3fffffff, 0xfffffff0,
     3738        0x3fffffff, 0xffff0000, 0xfffcffff, 0x000000ff, 0x03ff0000,
     3739        0xaa8a0000, 0x1fffffff, 0x07fffffe, 0x07fffffe, 0xffffffc0,
     3740        0x3fffffff, 0x7fffffff, 0x1cfcfcfc, 0xffffefff, 0xb7ffff7f,
     3741        0x3fff3fff, 0x07ffffff, 0x001fffff, 0x1fffffff, 0x0001ffff,
     3742        0xffffe000, 0xffff07ff, 0x003fffff, 0x3fffffff, 0x003eff0f,
     3743        0x3fffffff, 0xffff0000, 0xff0fffff, 0x0fffffff, 0xffff00ff,
     3744        0x0000000f, 0x007fffff, 0x003fffff, 0x000000ff, 0xfffffd3f,
     3745        0x91bfffff, 0x003fffff, 0x007fffff, 0x7fffffff, 0x0037ffff,
     3746        0x003fffff, 0x03ffffff, 0xc0ffffff, 0xfeef0001, 0x000fffff,
     3747        0x1fffffff, 0x1fffffff, 0xfffffeff, 0x0000001f, 0x003fffff,
     3748        0x003fffff, 0x0007ffff, 0x0003ffff, 0x000001ff, 0x0007ffff,
     3749        0x0007ffff, 0xfffffff8, 0x00ffffff, 0xfffffff8, 0x0000ffff,
     3750        0xffff0000, 0x000001ff, 0xfffffff8, 0x0000007f, 0xffff0000,
     3751        0x0047ffff, 0xfffffff8, 0x0007ffff, 0x1400001e, 0xfffbffff,
     3752        0x00000fff, 0xbfffbd7f, 0xffff01ff, 0x7fffffff, 0xfff99fe0,
     3753        0x23edfdff, 0xe0010000, 0x00000003, 0x001fffff, 0x00000780,
     3754        0x0000ffff, 0x000000b0, 0x00007fff, 0x0f000000, 0x0000ffff,
     3755        0x00000010, 0x000007ff, 0x03ffffff, 0x80000000, 0xfffff801,
     3756        0x0407ffff, 0xf0010000, 0x000003cf, 0x01ffffff, 0xfffffdff,
     3757        0x00007fff, 0x00000001, 0xfffc0000, 0x0000ffff, 0xfffffb7f,
     3758        0x0001ffff, 0x00000040, 0x03ffffff, 0x00007fff, 0x0000000f,
     3759        0x00007fff, 0x0000007f, 0x01ffffff, 0x7fffffff, 0xffff0000,
     3760        0x00003fff, 0x0000ffff, 0x0000000f, 0xe0fffff8, 0x0000ffff,
     3761        0x0001001f, 0xfff80000, 0x00000003, 0x00001fff, 0x0007ffff,
     3762        0x7fffffff, 0xffff0000, 0x0fffffff, 0x1fff07ff, 0x03ff01ff,
     3763        0xffdfffff, 0xdfffffff, 0xebffde64, 0xffffffef, 0xdfdfe7bf,
     3764        0x7bffffff, 0xfffdfc5f, 0xffffff3f, 0xf7fffffd, 0xf7ffffff,
     3765        0xffdfffff, 0xffdfffff, 0xffff7fff, 0xffff7fff, 0xfffffdff,
     3766        0xfffffdff, 0x00000ff7, 0x0000001f, 0x0000000f, 0xffffffef,
     3767        0x0af7fe96, 0xaa96ea84, 0x5ef7f796, 0x0ffffbff, 0x0ffffbee,
     3768        0x007fffff, 0x001fffff, 0x3fffffff, 0xffff0003, 0x00000001,
     3769        0x3fffffff};
     3770        }
     3771
     3772        const static UnicodeSet codepoint_set{const_cast<UnicodeSet::run_t *>(__codepoint_set_runs), 341, 0, const_cast<UnicodeSet::bitquad_t *>(__codepoint_set_quads), 366, 0};
     3773
     3774        static BinaryPropertyObject property_object{XIDS, std::move(codepoint_set)};
    36493775    }
    36503776}
Note: See TracChangeset for help on using the changeset viewer.