Changeset 5748 for icGREP


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

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

Location:
icGREP/icgrep-devel/icgrep
Files:
58 edited

Legend:

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

    r5663 r5748  
    2525        [ff3c, ff3c], [ff3e, ff5a], [ff5c, ff5c], [ff5e, ff5e],
    2626        [ff61, ff61], [ff64, 10ffff]**/
    27 
    28         const UnicodeSet null_codepoint_set
    29                     {{{Full, 1}, {Mixed, 3}, {Full, 117}, {Mixed, 1}, {Full, 58},
    30               {Mixed, 1}, {Full, 77}, {Mixed, 3}, {Full, 19}, {Mixed, 2},
    31               {Full, 33}, {Mixed, 1}, {Full, 2}, {Mixed, 2}, {Full, 12},
    32               {Mixed, 1}, {Full, 1}, {Mixed, 2}, {Full, 33}, {Mixed, 1},
    33               {Full, 14}, {Mixed, 1}, {Full, 1649}, {Mixed, 1}, {Full, 5},
    34               {Mixed, 4}, {Full, 32772}},
    35              {0xfffffcff, 0xd7ffffff, 0xd7ffffff, 0xc3ffffff, 0xe7ffffff,
    36               0xffffff9f, 0x9fffffff, 0xffff9fff, 0xfffff0ff, 0xfffff9ff,
    37               0xffc000ff, 0xffffff9f, 0xffff003f, 0xfe000007, 0xf0ffffff,
    38               0xcfffffff, 0xfffffc03, 0xf00c00ff, 0x81ffffff, 0xfffffcff,
    39               0xd7ffffff, 0x57ffffff, 0xfffffff2}};
     27       
     28       
     29        namespace {
     30        const static UnicodeSet::run_t __null_codepoint_set_runs[] = {
     31        {Full, 1}, {Mixed, 3}, {Full, 117}, {Mixed, 1}, {Full, 58},
     32        {Mixed, 1}, {Full, 77}, {Mixed, 3}, {Full, 19}, {Mixed, 2},
     33        {Full, 33}, {Mixed, 1}, {Full, 2}, {Mixed, 2}, {Full, 12},
     34        {Mixed, 1}, {Full, 1}, {Mixed, 2}, {Full, 33}, {Mixed, 1},
     35        {Full, 14}, {Mixed, 1}, {Full, 1649}, {Mixed, 1}, {Full, 5},
     36        {Mixed, 4}, {Full, 32772}};
     37        const static UnicodeSet::bitquad_t  __null_codepoint_set_quads[] = {
     38        0xfffffcff, 0xd7ffffff, 0xd7ffffff, 0xc3ffffff, 0xe7ffffff,
     39        0xffffff9f, 0x9fffffff, 0xffff9fff, 0xfffff0ff, 0xfffff9ff,
     40        0xffc000ff, 0xffffff9f, 0xffff003f, 0xfe000007, 0xf0ffffff,
     41        0xcfffffff, 0xfffffc03, 0xf00c00ff, 0x81ffffff, 0xfffffcff,
     42        0xd7ffffff, 0x57ffffff, 0xfffffff2};
     43        }
     44
     45        const static UnicodeSet null_codepoint_set{const_cast<UnicodeSet::run_t *>(__null_codepoint_set_runs), 27, 0, const_cast<UnicodeSet::bitquad_t *>(__null_codepoint_set_quads), 23, 0};
     46
     47
    4048
    4149        /** Code Point Ranges for bpb mapping to <codepoint>
    4250        **/
    43         const UnicodeSet reflexive_set
    44                     {{{Empty, 34816}},
    45              {}};
     51       
     52       
     53        namespace {
     54        const static UnicodeSet::run_t __reflexive_set_runs[] = {
     55        {Empty, 34816}};
     56        const static UnicodeSet::bitquad_t * const __reflexive_set_quads = nullptr;
     57        }
     58
     59        const static UnicodeSet reflexive_set{const_cast<UnicodeSet::run_t *>(__reflexive_set_runs), 1, 0, const_cast<UnicodeSet::bitquad_t *>(__reflexive_set_quads), 0, 0};
     60
     61
    4662
    4763        const unsigned buffer_length = 468;
    48         const static char __attribute__ ((aligned (32))) string_buffer[512] = u8R"__()
     64        const static char string_buffer[512] LLVM_ALIGNAS(32) = u8R"__()
    4965(
    5066]
     
    171187)__";
    172188
    173         const static std::vector<codepoint_t> defined_cps = {
     189        const static std::vector<codepoint_t> defined_cps{
    174190        0x0028, 0x0029, 0x005b, 0x005d, 0x007b, 0x007d, 0x0f3a, 0x0f3b,
    175191        0x0f3c, 0x0f3d, 0x169b, 0x169c, 0x2045, 0x2046, 0x207d, 0x207e,
     
    188204        0xff3b, 0xff3d, 0xff5b, 0xff5d, 0xff5f, 0xff60, 0xff62, 0xff63};
    189205        static StringPropertyObject property_object(bpb,
    190                                                     null_codepoint_set,
    191                                                     reflexive_set,
     206                                                    std::move(null_codepoint_set),
     207                                                    std::move(reflexive_set),
    192208                                                    static_cast<const char *>(string_buffer),
    193209                                                    buffer_length,
    194                                                     defined_cps);
     210                                                    std::move(defined_cps));
    195211    }
    196212  namespace BPT_ns {
     
    203219    [3012, 3013], [301c, fe58], [fe5f, ff07], [ff0a, ff3a], [ff3c, ff3c],
    204220    [ff3e, ff5a], [ff5c, ff5c], [ff5e, ff5e], [ff61, ff61], [ff64, 10ffff]**/
    205     const UnicodeSet n_Set
    206         {{{Full, 1}, {Mixed, 3}, {Full, 117}, {Mixed, 1}, {Full, 58},
    207           {Mixed, 1}, {Full, 77}, {Mixed, 3}, {Full, 19}, {Mixed, 2},
    208           {Full, 33}, {Mixed, 1}, {Full, 2}, {Mixed, 2}, {Full, 12},
    209           {Mixed, 1}, {Full, 1}, {Mixed, 2}, {Full, 33}, {Mixed, 1},
    210           {Full, 14}, {Mixed, 1}, {Full, 1649}, {Mixed, 1}, {Full, 5},
    211           {Mixed, 4}, {Full, 32772}},
    212          {0xfffffcff, 0xd7ffffff, 0xd7ffffff, 0xc3ffffff, 0xe7ffffff,
    213           0xffffff9f, 0x9fffffff, 0xffff9fff, 0xfffff0ff, 0xfffff9ff,
    214           0xffc000ff, 0xffffff9f, 0xffff003f, 0xfe000007, 0xf0ffffff,
    215           0xcfffffff, 0xfffffc03, 0xf00c00ff, 0x81ffffff, 0xfffffcff,
    216           0xd7ffffff, 0x57ffffff, 0xfffffff2}};
     221
     222
     223    namespace {
     224    const static UnicodeSet::run_t __n_Set_runs[] = {
     225    {Full, 1}, {Mixed, 3}, {Full, 117}, {Mixed, 1}, {Full, 58}, {Mixed, 1},
     226    {Full, 77}, {Mixed, 3}, {Full, 19}, {Mixed, 2}, {Full, 33}, {Mixed, 1},
     227    {Full, 2}, {Mixed, 2}, {Full, 12}, {Mixed, 1}, {Full, 1}, {Mixed, 2},
     228    {Full, 33}, {Mixed, 1}, {Full, 14}, {Mixed, 1}, {Full, 1649},
     229    {Mixed, 1}, {Full, 5}, {Mixed, 4}, {Full, 32772}};
     230    const static UnicodeSet::bitquad_t  __n_Set_quads[] = {
     231    0xfffffcff, 0xd7ffffff, 0xd7ffffff, 0xc3ffffff, 0xe7ffffff, 0xffffff9f,
     232    0x9fffffff, 0xffff9fff, 0xfffff0ff, 0xfffff9ff, 0xffc000ff, 0xffffff9f,
     233    0xffff003f, 0xfe000007, 0xf0ffffff, 0xcfffffff, 0xfffffc03, 0xf00c00ff,
     234    0x81ffffff, 0xfffffcff, 0xd7ffffff, 0x57ffffff, 0xfffffff2};
     235    }
     236
     237    const static UnicodeSet n_Set{const_cast<UnicodeSet::run_t *>(__n_Set_runs), 27, 0, const_cast<UnicodeSet::bitquad_t *>(__n_Set_quads), 23, 0};
     238
    217239    /** Code Point Ranges for o
    218240    [0028, 0028], [005b, 005b], [007b, 007b], [0f3a, 0f3a], [0f3c, 0f3c],
     
    228250    [3018, 3018], [301a, 301a], [fe59, fe59], [fe5b, fe5b], [fe5d, fe5d],
    229251    [ff08, ff08], [ff3b, ff3b], [ff5b, ff5b], [ff5f, ff5f], [ff62, ff62]**/
    230     const UnicodeSet o_Set
    231         {{{Empty, 1}, {Mixed, 3}, {Empty, 117}, {Mixed, 1}, {Empty, 58},
    232           {Mixed, 1}, {Empty, 77}, {Mixed, 3}, {Empty, 19}, {Mixed, 2},
    233           {Empty, 33}, {Mixed, 1}, {Empty, 2}, {Mixed, 2}, {Empty, 12},
    234           {Mixed, 1}, {Empty, 1}, {Mixed, 2}, {Empty, 33}, {Mixed, 1},
    235           {Empty, 14}, {Mixed, 1}, {Empty, 1649}, {Mixed, 1}, {Empty, 5},
    236           {Mixed, 4}, {Empty, 32772}},
    237          {0x00000100, 0x08000000, 0x08000000, 0x14000000, 0x08000000,
    238           0x00000020, 0x20000000, 0x00002000, 0x00000500, 0x00000200,
    239           0x00155500, 0x00000020, 0x00005540, 0x00aaaaa8, 0x05000000,
    240           0x10000000, 0x00000154, 0x05515500, 0x2a000000, 0x00000100,
    241           0x08000000, 0x88000000, 0x00000004}};
     252
     253
     254    namespace {
     255    const static UnicodeSet::run_t __o_Set_runs[] = {
     256    {Empty, 1}, {Mixed, 3}, {Empty, 117}, {Mixed, 1}, {Empty, 58},
     257    {Mixed, 1}, {Empty, 77}, {Mixed, 3}, {Empty, 19}, {Mixed, 2},
     258    {Empty, 33}, {Mixed, 1}, {Empty, 2}, {Mixed, 2}, {Empty, 12},
     259    {Mixed, 1}, {Empty, 1}, {Mixed, 2}, {Empty, 33}, {Mixed, 1},
     260    {Empty, 14}, {Mixed, 1}, {Empty, 1649}, {Mixed, 1}, {Empty, 5},
     261    {Mixed, 4}, {Empty, 32772}};
     262    const static UnicodeSet::bitquad_t  __o_Set_quads[] = {
     263    0x00000100, 0x08000000, 0x08000000, 0x14000000, 0x08000000, 0x00000020,
     264    0x20000000, 0x00002000, 0x00000500, 0x00000200, 0x00155500, 0x00000020,
     265    0x00005540, 0x00aaaaa8, 0x05000000, 0x10000000, 0x00000154, 0x05515500,
     266    0x2a000000, 0x00000100, 0x08000000, 0x88000000, 0x00000004};
     267    }
     268
     269    const static UnicodeSet o_Set{const_cast<UnicodeSet::run_t *>(__o_Set_runs), 27, 0, const_cast<UnicodeSet::bitquad_t *>(__o_Set_quads), 23, 0};
     270
    242271    /** Code Point Ranges for c
    243272    [0029, 0029], [005d, 005d], [007d, 007d], [0f3b, 0f3b], [0f3d, 0f3d],
     
    253282    [3019, 3019], [301b, 301b], [fe5a, fe5a], [fe5c, fe5c], [fe5e, fe5e],
    254283    [ff09, ff09], [ff3d, ff3d], [ff5d, ff5d], [ff60, ff60], [ff63, ff63]**/
    255     const UnicodeSet c_Set
    256         {{{Empty, 1}, {Mixed, 3}, {Empty, 117}, {Mixed, 1}, {Empty, 58},
    257           {Mixed, 1}, {Empty, 77}, {Mixed, 3}, {Empty, 19}, {Mixed, 2},
    258           {Empty, 33}, {Mixed, 1}, {Empty, 2}, {Mixed, 2}, {Empty, 12},
    259           {Mixed, 1}, {Empty, 1}, {Mixed, 2}, {Empty, 33}, {Mixed, 1},
    260           {Empty, 14}, {Mixed, 1}, {Empty, 1649}, {Mixed, 1}, {Empty, 5},
    261           {Mixed, 4}, {Empty, 32772}},
    262          {0x00000200, 0x20000000, 0x20000000, 0x28000000, 0x10000000,
    263           0x00000040, 0x40000000, 0x00004000, 0x00000a00, 0x00000400,
    264           0x002aaa00, 0x00000040, 0x0000aa80, 0x01555550, 0x0a000000,
    265           0x20000000, 0x000002a8, 0x0aa2aa00, 0x54000000, 0x00000200,
    266           0x20000000, 0x20000000, 0x00000009}};
     284
     285
     286    namespace {
     287    const static UnicodeSet::run_t __c_Set_runs[] = {
     288    {Empty, 1}, {Mixed, 3}, {Empty, 117}, {Mixed, 1}, {Empty, 58},
     289    {Mixed, 1}, {Empty, 77}, {Mixed, 3}, {Empty, 19}, {Mixed, 2},
     290    {Empty, 33}, {Mixed, 1}, {Empty, 2}, {Mixed, 2}, {Empty, 12},
     291    {Mixed, 1}, {Empty, 1}, {Mixed, 2}, {Empty, 33}, {Mixed, 1},
     292    {Empty, 14}, {Mixed, 1}, {Empty, 1649}, {Mixed, 1}, {Empty, 5},
     293    {Mixed, 4}, {Empty, 32772}};
     294    const static UnicodeSet::bitquad_t  __c_Set_quads[] = {
     295    0x00000200, 0x20000000, 0x20000000, 0x28000000, 0x10000000, 0x00000040,
     296    0x40000000, 0x00004000, 0x00000a00, 0x00000400, 0x002aaa00, 0x00000040,
     297    0x0000aa80, 0x01555550, 0x0a000000, 0x20000000, 0x000002a8, 0x0aa2aa00,
     298    0x54000000, 0x00000200, 0x20000000, 0x20000000, 0x00000009};
     299    }
     300
     301    const static UnicodeSet c_Set{const_cast<UnicodeSet::run_t *>(__c_Set_runs), 27, 0, const_cast<UnicodeSet::bitquad_t *>(__c_Set_quads), 23, 0};
     302
    267303    static EnumeratedPropertyObject property_object
    268304        {bpt,
    269305         BPT_ns::independent_prop_values,
    270          BPT_ns::enum_names,
    271          BPT_ns::value_names,
    272          BPT_ns::aliases_only_map,
    273          {&n_Set, &o_Set, &c_Set
     306         std::move(BPT_ns::enum_names),
     307         std::move(BPT_ns::value_names),
     308         std::move(BPT_ns::aliases_only_map),{
     309&n_Set, &o_Set, &c_Set
    274310         }};
    275311    }
  • icGREP/icgrep-devel/icgrep/UCD/BidiMirroring.h

    r5665 r5748  
    4040        [ff1d, ff1d], [ff1f, ff3a], [ff3c, ff3c], [ff3e, ff5a],
    4141        [ff5c, ff5c], [ff5e, ff5e], [ff61, ff61], [ff64, 10ffff]**/
    42 
    43         const UnicodeSet null_codepoint_set
    44                     {{{Full, 1}, {Mixed, 3}, {Full, 1}, {Mixed, 1}, {Full, 115},
    45               {Mixed, 1}, {Full, 58}, {Mixed, 1}, {Full, 76}, {Mixed, 4},
    46               {Full, 11}, {Mixed, 10}, {Full, 33}, {Mixed, 1}, {Full, 2},
    47               {Mixed, 2}, {Full, 12}, {Mixed, 4}, {Full, 1}, {Mixed, 1},
    48               {Full, 1}, {Mixed, 5}, {Full, 24}, {Mixed, 2}, {Full, 14},
    49               {Mixed, 1}, {Full, 1649}, {Mixed, 2}, {Full, 4}, {Mixed, 4},
    50               {Full, 32772}},
    51              {0xaffffcff, 0xd7ffffff, 0xd7ffffff, 0xf7fff7ff, 0xc3ffffff,
    52               0xe7ffffff, 0xf9ffffff, 0xffffff9f, 0x9fffffff, 0xffff9fff,
    53               0xffdfc0ff, 0xcfffffff, 0xffc3fff7, 0x0000300f, 0xfef87000,
    54               0xff00f4b3, 0x003cc1ff, 0x8320c000, 0xfffff0ff, 0xfffff9ff,
    55               0xffc000ff, 0x9f9fd487, 0xffff0003, 0xfe000007, 0xfeffffff,
    56               0xf0c87fcc, 0xccdfffff, 0xcfcf87ff, 0x19ffffcf, 0xe001e7e0,
    57               0x07e64039, 0xbf801f80, 0xf87fcfc7, 0xcfffc9c3, 0xfffffc00,
    58               0xf00c00ff, 0x81ffffff, 0xffffffcf, 0xaffffcff, 0xd7ffffff,
    59               0x57ffffff, 0xfffffff2}};
     42       
     43       
     44        namespace {
     45        const static UnicodeSet::run_t __null_codepoint_set_runs[] = {
     46        {Full, 1}, {Mixed, 3}, {Full, 1}, {Mixed, 1}, {Full, 115},
     47        {Mixed, 1}, {Full, 58}, {Mixed, 1}, {Full, 76}, {Mixed, 4},
     48        {Full, 11}, {Mixed, 10}, {Full, 33}, {Mixed, 1}, {Full, 2},
     49        {Mixed, 2}, {Full, 12}, {Mixed, 4}, {Full, 1}, {Mixed, 1},
     50        {Full, 1}, {Mixed, 5}, {Full, 24}, {Mixed, 2}, {Full, 14},
     51        {Mixed, 1}, {Full, 1649}, {Mixed, 2}, {Full, 4}, {Mixed, 4},
     52        {Full, 32772}};
     53        const static UnicodeSet::bitquad_t  __null_codepoint_set_quads[] = {
     54        0xaffffcff, 0xd7ffffff, 0xd7ffffff, 0xf7fff7ff, 0xc3ffffff,
     55        0xe7ffffff, 0xf9ffffff, 0xffffff9f, 0x9fffffff, 0xffff9fff,
     56        0xffdfc0ff, 0xcfffffff, 0xffc3fff7, 0x0000300f, 0xfef87000,
     57        0xff00f4b3, 0x003cc1ff, 0x8320c000, 0xfffff0ff, 0xfffff9ff,
     58        0xffc000ff, 0x9f9fd487, 0xffff0003, 0xfe000007, 0xfeffffff,
     59        0xf0c87fcc, 0xccdfffff, 0xcfcf87ff, 0x19ffffcf, 0xe001e7e0,
     60        0x07e64039, 0xbf801f80, 0xf87fcfc7, 0xcfffc9c3, 0xfffffc00,
     61        0xf00c00ff, 0x81ffffff, 0xffffffcf, 0xaffffcff, 0xd7ffffff,
     62        0x57ffffff, 0xfffffff2};
     63        }
     64
     65        const static UnicodeSet null_codepoint_set{const_cast<UnicodeSet::run_t *>(__null_codepoint_set_runs), 31, 0, const_cast<UnicodeSet::bitquad_t *>(__null_codepoint_set_quads), 42, 0};
     66
     67
    6068
    6169        /** Code Point Ranges for bmg mapping to <codepoint>
    6270        **/
    63         const UnicodeSet reflexive_set
    64                     {{{Empty, 34816}},
    65              {}};
     71       
     72       
     73        namespace {
     74        const static UnicodeSet::run_t __reflexive_set_runs[] = {
     75        {Empty, 34816}};
     76        const static UnicodeSet::bitquad_t * const __reflexive_set_quads = nullptr;
     77        }
     78
     79        const static UnicodeSet reflexive_set{const_cast<UnicodeSet::run_t *>(__reflexive_set_runs), 1, 0, const_cast<UnicodeSet::bitquad_t *>(__reflexive_set_quads), 0, 0};
     80
     81
    6682
    6783        const unsigned buffer_length = 1438;
    68         const static char __attribute__ ((aligned (32))) string_buffer[1536] = u8R"__()
     84        const static char string_buffer[1536] LLVM_ALIGNAS(32) = u8R"__()
    6985(
    7086>
     
    439455)__";
    440456
    441         const static std::vector<codepoint_t> defined_cps = {
     457        const static std::vector<codepoint_t> defined_cps{
    442458        0x0028, 0x0029, 0x003c, 0x003e, 0x005b, 0x005d, 0x007b, 0x007d,
    443459        0x00ab, 0x00bb, 0x0f3a, 0x0f3b, 0x0f3c, 0x0f3d, 0x169b, 0x169c,
     
    487503        0xff5f, 0xff60, 0xff62, 0xff63};
    488504        static StringPropertyObject property_object(bmg,
    489                                                     null_codepoint_set,
    490                                                     reflexive_set,
     505                                                    std::move(null_codepoint_set),
     506                                                    std::move(reflexive_set),
    491507                                                    static_cast<const char *>(string_buffer),
    492508                                                    buffer_length,
    493                                                     defined_cps);
     509                                                    std::move(defined_cps));
    494510    }
    495511}
  • icGREP/icgrep-devel/icgrep/UCD/Blocks.h

    r5686 r5748  
    3030    [1ef00, 1efff], [1fa00, 1ffff], [2a6e0, 2a6ff], [2ebf0, 2f7ff],
    3131    [2fa20, dffff], [e0080, e00ff], [e01f0, effff]**/
    32     const UnicodeSet nb_Set
    33         {{{Empty, 67}, {Mixed, 1}, {Full, 1}, {Empty, 159}, {Mixed, 1},
    34           {Full, 1}, {Empty, 153}, {Mixed, 1}, {Empty, 1680}, {Full, 4},
    35           {Empty, 11}, {Full, 1}, {Empty, 11}, {Mixed, 1}, {Full, 4},
    36           {Empty, 12}, {Full, 4}, {Empty, 5}, {Mixed, 1}, {Full, 1},
    37           {Empty, 3}, {Full, 2}, {Empty, 9}, {Full, 1}, {Empty, 7},
    38           {Mixed, 1}, {Full, 2}, {Empty, 2}, {Mixed, 1}, {Full, 1},
    39           {Empty, 4}, {Full, 11}, {Empty, 1}, {Full, 12}, {Empty, 18},
    40           {Mixed, 1}, {Full, 1}, {Empty, 8}, {Full, 4}, {Empty, 7},
    41           {Full, 5}, {Empty, 10}, {Mixed, 1}, {Full, 1}, {Empty, 2},
    42           {Full, 11}, {Empty, 3}, {Full, 8}, {Empty, 5}, {Mixed, 1},
    43           {Empty, 2}, {Full, 8}, {Empty, 6}, {Full, 2}, {Empty, 3},
    44           {Full, 21}, {Empty, 42}, {Mixed, 1}, {Full, 85}, {Empty, 33},
    45           {Mixed, 1}, {Full, 126}, {Empty, 20}, {Full, 268}, {Empty, 19},
    46           {Mixed, 1}, {Full, 2}, {Mixed, 1}, {Empty, 5}, {Mixed, 1},
    47           {Full, 27}, {Empty, 5}, {Full, 2}, {Empty, 217}, {Full, 296},
    48           {Empty, 9}, {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Empty, 12},
    49           {Full, 72}, {Empty, 5}, {Mixed, 1}, {Full, 154}, {Empty, 18},
    50           {Mixed, 1}, {Full, 5}, {Empty, 4}, {Full, 4}, {Empty, 53},
    51           {Mixed, 1}, {Full, 42}, {Empty, 1}, {Mixed, 1}, {Full, 62},
    52           {Empty, 7}, {Full, 1}, {Empty, 3}, {Full, 37}, {Empty, 8},
    53           {Full, 8}, {Empty, 80}, {Full, 48}, {Empty, 1335}, {Full, 1},
    54           {Empty, 551}, {Mixed, 1}, {Full, 96}, {Empty, 17}, {Full, 22575},
    55           {Empty, 4}, {Full, 4}, {Empty, 7}, {Mixed, 1}, {Full, 2032},
    56           {Empty, 4096}},
    57          {0xffff0000, 0xffff0000, 0x0000ffff, 0xffff0000, 0xffff0000,
    58           0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000,
    59           0xffff0000, 0xffff0000, 0xffff0000, 0x0000ffff, 0xffff0000,
    60           0xffff0000, 0x0000ffff, 0xffff0000, 0xffff0000, 0xffff0000,
    61           0xffff0000, 0xffff0000, 0xffff0000}};
     32
     33
     34    namespace {
     35    const static UnicodeSet::run_t __nb_Set_runs[] = {
     36    {Empty, 67}, {Mixed, 1}, {Full, 1}, {Empty, 159}, {Mixed, 1}, {Full, 1},
     37    {Empty, 153}, {Mixed, 1}, {Empty, 1680}, {Full, 4}, {Empty, 11},
     38    {Full, 1}, {Empty, 11}, {Mixed, 1}, {Full, 4}, {Empty, 12}, {Full, 4},
     39    {Empty, 5}, {Mixed, 1}, {Full, 1}, {Empty, 3}, {Full, 2}, {Empty, 9},
     40    {Full, 1}, {Empty, 7}, {Mixed, 1}, {Full, 2}, {Empty, 2}, {Mixed, 1},
     41    {Full, 1}, {Empty, 4}, {Full, 11}, {Empty, 1}, {Full, 12}, {Empty, 18},
     42    {Mixed, 1}, {Full, 1}, {Empty, 8}, {Full, 4}, {Empty, 7}, {Full, 5},
     43    {Empty, 10}, {Mixed, 1}, {Full, 1}, {Empty, 2}, {Full, 11}, {Empty, 3},
     44    {Full, 8}, {Empty, 5}, {Mixed, 1}, {Empty, 2}, {Full, 8}, {Empty, 6},
     45    {Full, 2}, {Empty, 3}, {Full, 21}, {Empty, 42}, {Mixed, 1}, {Full, 85},
     46    {Empty, 33}, {Mixed, 1}, {Full, 126}, {Empty, 20}, {Full, 268},
     47    {Empty, 19}, {Mixed, 1}, {Full, 2}, {Mixed, 1}, {Empty, 5}, {Mixed, 1},
     48    {Full, 27}, {Empty, 5}, {Full, 2}, {Empty, 217}, {Full, 296},
     49    {Empty, 9}, {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Empty, 12}, {Full, 72},
     50    {Empty, 5}, {Mixed, 1}, {Full, 154}, {Empty, 18}, {Mixed, 1}, {Full, 5},
     51    {Empty, 4}, {Full, 4}, {Empty, 53}, {Mixed, 1}, {Full, 42}, {Empty, 1},
     52    {Mixed, 1}, {Full, 62}, {Empty, 7}, {Full, 1}, {Empty, 3}, {Full, 37},
     53    {Empty, 8}, {Full, 8}, {Empty, 80}, {Full, 48}, {Empty, 1335},
     54    {Full, 1}, {Empty, 551}, {Mixed, 1}, {Full, 96}, {Empty, 17},
     55    {Full, 22575}, {Empty, 4}, {Full, 4}, {Empty, 7}, {Mixed, 1},
     56    {Full, 2032}, {Empty, 4096}};
     57    const static UnicodeSet::bitquad_t  __nb_Set_quads[] = {
     58    0xffff0000, 0xffff0000, 0x0000ffff, 0xffff0000, 0xffff0000, 0xffff0000,
     59    0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000,
     60    0xffff0000, 0x0000ffff, 0xffff0000, 0xffff0000, 0x0000ffff, 0xffff0000,
     61    0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000};
     62    }
     63
     64    const static UnicodeSet nb_Set{const_cast<UnicodeSet::run_t *>(__nb_Set_runs), 116, 0, const_cast<UnicodeSet::bitquad_t *>(__nb_Set_quads), 23, 0};
     65
    6266    /** Code Point Ranges for ASCII
    6367    [0000, 007f]**/
    64     const UnicodeSet ascii_Set
    65         {{{Full, 4}, {Empty, 34812}},
    66          {}};
     68
     69
     70    namespace {
     71    const static UnicodeSet::run_t __ascii_Set_runs[] = {
     72    {Full, 4}, {Empty, 34812}};
     73    const static UnicodeSet::bitquad_t * const __ascii_Set_quads = nullptr;
     74    }
     75
     76    const static UnicodeSet ascii_Set{const_cast<UnicodeSet::run_t *>(__ascii_Set_runs), 2, 0, const_cast<UnicodeSet::bitquad_t *>(__ascii_Set_quads), 0, 0};
     77
    6778    /** Code Point Ranges for Latin_1_Sup
    6879    [0080, 00ff]**/
    69     const UnicodeSet latin_1_sup_Set
    70         {{{Empty, 4}, {Full, 4}, {Empty, 34808}},
    71          {}};
     80
     81
     82    namespace {
     83    const static UnicodeSet::run_t __latin_1_sup_Set_runs[] = {
     84    {Empty, 4}, {Full, 4}, {Empty, 34808}};
     85    const static UnicodeSet::bitquad_t * const __latin_1_sup_Set_quads = nullptr;
     86    }
     87
     88    const static UnicodeSet latin_1_sup_Set{const_cast<UnicodeSet::run_t *>(__latin_1_sup_Set_runs), 3, 0, const_cast<UnicodeSet::bitquad_t *>(__latin_1_sup_Set_quads), 0, 0};
     89
    7290    /** Code Point Ranges for Latin_Ext_A
    7391    [0100, 017f]**/
    74     const UnicodeSet latin_ext_a_Set
    75         {{{Empty, 8}, {Full, 4}, {Empty, 34804}},
    76          {}};
     92
     93
     94    namespace {
     95    const static UnicodeSet::run_t __latin_ext_a_Set_runs[] = {
     96    {Empty, 8}, {Full, 4}, {Empty, 34804}};
     97    const static UnicodeSet::bitquad_t * const __latin_ext_a_Set_quads = nullptr;
     98    }
     99
     100    const static UnicodeSet latin_ext_a_Set{const_cast<UnicodeSet::run_t *>(__latin_ext_a_Set_runs), 3, 0, const_cast<UnicodeSet::bitquad_t *>(__latin_ext_a_Set_quads), 0, 0};
     101
    77102    /** Code Point Ranges for Latin_Ext_B
    78103    [0180, 024f]**/
    79     const UnicodeSet latin_ext_b_Set
    80         {{{Empty, 12}, {Full, 6}, {Mixed, 1}, {Empty, 34797}},
    81          {0x0000ffff}};
     104
     105
     106    namespace {
     107    const static UnicodeSet::run_t __latin_ext_b_Set_runs[] = {
     108    {Empty, 12}, {Full, 6}, {Mixed, 1}, {Empty, 34797}};
     109    const static UnicodeSet::bitquad_t  __latin_ext_b_Set_quads[] = {
     110    0x0000ffff};
     111    }
     112
     113    const static UnicodeSet latin_ext_b_Set{const_cast<UnicodeSet::run_t *>(__latin_ext_b_Set_runs), 4, 0, const_cast<UnicodeSet::bitquad_t *>(__latin_ext_b_Set_quads), 1, 0};
     114
    82115    /** Code Point Ranges for IPA_Ext
    83116    [0250, 02af]**/
    84     const UnicodeSet ipa_ext_Set
    85         {{{Empty, 18}, {Mixed, 1}, {Full, 2}, {Mixed, 1}, {Empty, 34794}},
    86          {0xffff0000, 0x0000ffff}};
     117
     118
     119    namespace {
     120    const static UnicodeSet::run_t __ipa_ext_Set_runs[] = {
     121    {Empty, 18}, {Mixed, 1}, {Full, 2}, {Mixed, 1}, {Empty, 34794}};
     122    const static UnicodeSet::bitquad_t  __ipa_ext_Set_quads[] = {
     123    0xffff0000, 0x0000ffff};
     124    }
     125
     126    const static UnicodeSet ipa_ext_Set{const_cast<UnicodeSet::run_t *>(__ipa_ext_Set_runs), 5, 0, const_cast<UnicodeSet::bitquad_t *>(__ipa_ext_Set_quads), 2, 0};
     127
    87128    /** Code Point Ranges for Modifier_Letters
    88129    [02b0, 02ff]**/
    89     const UnicodeSet modifier_letters_Set
    90         {{{Empty, 21}, {Mixed, 1}, {Full, 2}, {Empty, 34792}},
    91          {0xffff0000}};
     130
     131
     132    namespace {
     133    const static UnicodeSet::run_t __modifier_letters_Set_runs[] = {
     134    {Empty, 21}, {Mixed, 1}, {Full, 2}, {Empty, 34792}};
     135    const static UnicodeSet::bitquad_t  __modifier_letters_Set_quads[] = {
     136    0xffff0000};
     137    }
     138
     139    const static UnicodeSet modifier_letters_Set{const_cast<UnicodeSet::run_t *>(__modifier_letters_Set_runs), 4, 0, const_cast<UnicodeSet::bitquad_t *>(__modifier_letters_Set_quads), 1, 0};
     140
    92141    /** Code Point Ranges for Diacriticals
    93142    [0300, 036f]**/
    94     const UnicodeSet diacriticals_Set
    95         {{{Empty, 24}, {Full, 3}, {Mixed, 1}, {Empty, 34788}},
    96          {0x0000ffff}};
     143
     144
     145    namespace {
     146    const static UnicodeSet::run_t __diacriticals_Set_runs[] = {
     147    {Empty, 24}, {Full, 3}, {Mixed, 1}, {Empty, 34788}};
     148    const static UnicodeSet::bitquad_t  __diacriticals_Set_quads[] = {
     149    0x0000ffff};
     150    }
     151
     152    const static UnicodeSet diacriticals_Set{const_cast<UnicodeSet::run_t *>(__diacriticals_Set_runs), 4, 0, const_cast<UnicodeSet::bitquad_t *>(__diacriticals_Set_quads), 1, 0};
     153
    97154    /** Code Point Ranges for Greek
    98155    [0370, 03ff]**/
    99     const UnicodeSet greek_Set
    100         {{{Empty, 27}, {Mixed, 1}, {Full, 4}, {Empty, 34784}},
    101          {0xffff0000}};
     156
     157
     158    namespace {
     159    const static UnicodeSet::run_t __greek_Set_runs[] = {
     160    {Empty, 27}, {Mixed, 1}, {Full, 4}, {Empty, 34784}};
     161    const static UnicodeSet::bitquad_t  __greek_Set_quads[] = {
     162    0xffff0000};
     163    }
     164
     165    const static UnicodeSet greek_Set{const_cast<UnicodeSet::run_t *>(__greek_Set_runs), 4, 0, const_cast<UnicodeSet::bitquad_t *>(__greek_Set_quads), 1, 0};
     166
    102167    /** Code Point Ranges for Cyrillic
    103168    [0400, 04ff]**/
    104     const UnicodeSet cyrillic_Set
    105         {{{Empty, 32}, {Full, 8}, {Empty, 34776}},
    106          {}};
     169
     170
     171    namespace {
     172    const static UnicodeSet::run_t __cyrillic_Set_runs[] = {
     173    {Empty, 32}, {Full, 8}, {Empty, 34776}};
     174    const static UnicodeSet::bitquad_t * const __cyrillic_Set_quads = nullptr;
     175    }
     176
     177    const static UnicodeSet cyrillic_Set{const_cast<UnicodeSet::run_t *>(__cyrillic_Set_runs), 3, 0, const_cast<UnicodeSet::bitquad_t *>(__cyrillic_Set_quads), 0, 0};
     178
    107179    /** Code Point Ranges for Cyrillic_Sup
    108180    [0500, 052f]**/
    109     const UnicodeSet cyrillic_sup_Set
    110         {{{Empty, 40}, {Full, 1}, {Mixed, 1}, {Empty, 34774}},
    111          {0x0000ffff}};
     181
     182
     183    namespace {
     184    const static UnicodeSet::run_t __cyrillic_sup_Set_runs[] = {
     185    {Empty, 40}, {Full, 1}, {Mixed, 1}, {Empty, 34774}};
     186    const static UnicodeSet::bitquad_t  __cyrillic_sup_Set_quads[] = {
     187    0x0000ffff};
     188    }
     189
     190    const static UnicodeSet cyrillic_sup_Set{const_cast<UnicodeSet::run_t *>(__cyrillic_sup_Set_runs), 4, 0, const_cast<UnicodeSet::bitquad_t *>(__cyrillic_sup_Set_quads), 1, 0};
     191
    112192    /** Code Point Ranges for Armenian
    113193    [0530, 058f]**/
    114     const UnicodeSet armenian_Set
    115         {{{Empty, 41}, {Mixed, 1}, {Full, 2}, {Mixed, 1}, {Empty, 34771}},
    116          {0xffff0000, 0x0000ffff}};
     194
     195
     196    namespace {
     197    const static UnicodeSet::run_t __armenian_Set_runs[] = {
     198    {Empty, 41}, {Mixed, 1}, {Full, 2}, {Mixed, 1}, {Empty, 34771}};
     199    const static UnicodeSet::bitquad_t  __armenian_Set_quads[] = {
     200    0xffff0000, 0x0000ffff};
     201    }
     202
     203    const static UnicodeSet armenian_Set{const_cast<UnicodeSet::run_t *>(__armenian_Set_runs), 5, 0, const_cast<UnicodeSet::bitquad_t *>(__armenian_Set_quads), 2, 0};
     204
    117205    /** Code Point Ranges for Hebrew
    118206    [0590, 05ff]**/
    119     const UnicodeSet hebrew_Set
    120         {{{Empty, 44}, {Mixed, 1}, {Full, 3}, {Empty, 34768}},
    121          {0xffff0000}};
     207
     208
     209    namespace {
     210    const static UnicodeSet::run_t __hebrew_Set_runs[] = {
     211    {Empty, 44}, {Mixed, 1}, {Full, 3}, {Empty, 34768}};
     212    const static UnicodeSet::bitquad_t  __hebrew_Set_quads[] = {
     213    0xffff0000};
     214    }
     215
     216    const static UnicodeSet hebrew_Set{const_cast<UnicodeSet::run_t *>(__hebrew_Set_runs), 4, 0, const_cast<UnicodeSet::bitquad_t *>(__hebrew_Set_quads), 1, 0};
     217
    122218    /** Code Point Ranges for Arabic
    123219    [0600, 06ff]**/
    124     const UnicodeSet arabic_Set
    125         {{{Empty, 48}, {Full, 8}, {Empty, 34760}},
    126          {}};
     220
     221
     222    namespace {
     223    const static UnicodeSet::run_t __arabic_Set_runs[] = {
     224    {Empty, 48}, {Full, 8}, {Empty, 34760}};
     225    const static UnicodeSet::bitquad_t * const __arabic_Set_quads = nullptr;
     226    }
     227
     228    const static UnicodeSet arabic_Set{const_cast<UnicodeSet::run_t *>(__arabic_Set_runs), 3, 0, const_cast<UnicodeSet::bitquad_t *>(__arabic_Set_quads), 0, 0};
     229
    127230    /** Code Point Ranges for Syriac
    128231    [0700, 074f]**/
    129     const UnicodeSet syriac_Set
    130         {{{Empty, 56}, {Full, 2}, {Mixed, 1}, {Empty, 34757}},
    131          {0x0000ffff}};
     232
     233
     234    namespace {
     235    const static UnicodeSet::run_t __syriac_Set_runs[] = {
     236    {Empty, 56}, {Full, 2}, {Mixed, 1}, {Empty, 34757}};
     237    const static UnicodeSet::bitquad_t  __syriac_Set_quads[] = {
     238    0x0000ffff};
     239    }
     240
     241    const static UnicodeSet syriac_Set{const_cast<UnicodeSet::run_t *>(__syriac_Set_runs), 4, 0, const_cast<UnicodeSet::bitquad_t *>(__syriac_Set_quads), 1, 0};
     242
    132243    /** Code Point Ranges for Arabic_Sup
    133244    [0750, 077f]**/
    134     const UnicodeSet arabic_sup_Set
    135         {{{Empty, 58}, {Mixed, 1}, {Full, 1}, {Empty, 34756}},
    136          {0xffff0000}};
     245
     246
     247    namespace {
     248    const static UnicodeSet::run_t __arabic_sup_Set_runs[] = {
     249    {Empty, 58}, {Mixed, 1}, {Full, 1}, {Empty, 34756}};
     250    const static UnicodeSet::bitquad_t  __arabic_sup_Set_quads[] = {
     251    0xffff0000};
     252    }
     253
     254    const static UnicodeSet arabic_sup_Set{const_cast<UnicodeSet::run_t *>(__arabic_sup_Set_runs), 4, 0, const_cast<UnicodeSet::bitquad_t *>(__arabic_sup_Set_quads), 1, 0};
     255
    137256    /** Code Point Ranges for Thaana
    138257    [0780, 07bf]**/
    139     const UnicodeSet thaana_Set
    140         {{{Empty, 60}, {Full, 2}, {Empty, 34754}},
    141          {}};
     258
     259
     260    namespace {
     261    const static UnicodeSet::run_t __thaana_Set_runs[] = {
     262    {Empty, 60}, {Full, 2}, {Empty, 34754}};
     263    const static UnicodeSet::bitquad_t * const __thaana_Set_quads = nullptr;
     264    }
     265
     266    const static UnicodeSet thaana_Set{const_cast<UnicodeSet::run_t *>(__thaana_Set_runs), 3, 0, const_cast<UnicodeSet::bitquad_t *>(__thaana_Set_quads), 0, 0};
     267
    142268    /** Code Point Ranges for NKo
    143269    [07c0, 07ff]**/
    144     const UnicodeSet nko_Set
    145         {{{Empty, 62}, {Full, 2}, {Empty, 34752}},
    146          {}};
     270
     271
     272    namespace {
     273    const static UnicodeSet::run_t __nko_Set_runs[] = {
     274    {Empty, 62}, {Full, 2}, {Empty, 34752}};
     275    const static UnicodeSet::bitquad_t * const __nko_Set_quads = nullptr;
     276    }
     277
     278    const static UnicodeSet nko_Set{const_cast<UnicodeSet::run_t *>(__nko_Set_runs), 3, 0, const_cast<UnicodeSet::bitquad_t *>(__nko_Set_quads), 0, 0};
     279
    147280    /** Code Point Ranges for Samaritan
    148281    [0800, 083f]**/
    149     const UnicodeSet samaritan_Set
    150         {{{Empty, 64}, {Full, 2}, {Empty, 34750}},
    151          {}};
     282
     283
     284    namespace {
     285    const static UnicodeSet::run_t __samaritan_Set_runs[] = {
     286    {Empty, 64}, {Full, 2}, {Empty, 34750}};
     287    const static UnicodeSet::bitquad_t * const __samaritan_Set_quads = nullptr;
     288    }
     289
     290    const static UnicodeSet samaritan_Set{const_cast<UnicodeSet::run_t *>(__samaritan_Set_runs), 3, 0, const_cast<UnicodeSet::bitquad_t *>(__samaritan_Set_quads), 0, 0};
     291
    152292    /** Code Point Ranges for Mandaic
    153293    [0840, 085f]**/
    154     const UnicodeSet mandaic_Set
    155         {{{Empty, 66}, {Full, 1}, {Empty, 34749}},
    156          {}};
     294
     295
     296    namespace {
     297    const static UnicodeSet::run_t __mandaic_Set_runs[] = {
     298    {Empty, 66}, {Full, 1}, {Empty, 34749}};
     299    const static UnicodeSet::bitquad_t * const __mandaic_Set_quads = nullptr;
     300    }
     301
     302    const static UnicodeSet mandaic_Set{const_cast<UnicodeSet::run_t *>(__mandaic_Set_runs), 3, 0, const_cast<UnicodeSet::bitquad_t *>(__mandaic_Set_quads), 0, 0};
     303
    157304    /** Code Point Ranges for Syriac_Sup
    158305    [0860, 086f]**/
    159     const UnicodeSet syriac_sup_Set
    160         {{{Empty, 67}, {Mixed, 1}, {Empty, 34748}},
    161          {0x0000ffff}};
     306
     307
     308    namespace {
     309    const static UnicodeSet::run_t __syriac_sup_Set_runs[] = {
     310    {Empty, 67}, {Mixed, 1}, {Empty, 34748}};
     311    const static UnicodeSet::bitquad_t  __syriac_sup_Set_quads[] = {
     312    0x0000ffff};
     313    }
     314
     315    const static UnicodeSet syriac_sup_Set{const_cast<UnicodeSet::run_t *>(__syriac_sup_Set_runs), 3, 0, const_cast<UnicodeSet::bitquad_t *>(__syriac_sup_Set_quads), 1, 0};
     316
    162317    /** Code Point Ranges for Arabic_Ext_A
    163318    [08a0, 08ff]**/
    164     const UnicodeSet arabic_ext_a_Set
    165         {{{Empty, 69}, {Full, 3}, {Empty, 34744}},
    166          {}};
     319
     320
     321    namespace {
     322    const static UnicodeSet::run_t __arabic_ext_a_Set_runs[] = {
     323    {Empty, 69}, {Full, 3}, {Empty, 34744}};
     324    const static UnicodeSet::bitquad_t * const __arabic_ext_a_Set_quads = nullptr;
     325    }
     326
     327    const static UnicodeSet arabic_ext_a_Set{const_cast<UnicodeSet::run_t *>(__arabic_ext_a_Set_runs), 3, 0, const_cast<UnicodeSet::bitquad_t *>(__arabic_ext_a_Set_quads), 0, 0};
     328
    167329    /** Code Point Ranges for Devanagari
    168330    [0900, 097f]**/
    169     const UnicodeSet devanagari_Set
    170         {{{Empty, 72}, {Full, 4}, {Empty, 34740}},
    171          {}};
     331
     332
     333    namespace {
     334    const static UnicodeSet::run_t __devanagari_Set_runs[] = {
     335    {Empty, 72}, {Full, 4}, {Empty, 34740}};
     336    const static UnicodeSet::bitquad_t * const __devanagari_Set_quads = nullptr;
     337    }
     338
     339    const static UnicodeSet devanagari_Set{const_cast<UnicodeSet::run_t *>(__devanagari_Set_runs), 3, 0, const_cast<UnicodeSet::bitquad_t *>(__devanagari_Set_quads), 0, 0};
     340
    172341    /** Code Point Ranges for Bengali
    173342    [0980, 09ff]**/
    174     const UnicodeSet bengali_Set
    175         {{{Empty, 76}, {Full, 4}, {Empty, 34736}},
    176          {}};
     343
     344
     345    namespace {
     346    const static UnicodeSet::run_t __bengali_Set_runs[] = {
     347    {Empty, 76}, {Full, 4}, {Empty, 34736}};
     348    const static UnicodeSet::bitquad_t * const __bengali_Set_quads = nullptr;
     349    }
     350
     351    const static UnicodeSet bengali_Set{const_cast<UnicodeSet::run_t *>(__bengali_Set_runs), 3, 0, const_cast<UnicodeSet::bitquad_t *>(__bengali_Set_quads), 0, 0};
     352
    177353    /** Code Point Ranges for Gurmukhi
    178354    [0a00, 0a7f]**/
    179     const UnicodeSet gurmukhi_Set
    180         {{{Empty, 80}, {Full, 4}, {Empty, 34732}},
    181          {}};
     355
     356
     357    namespace {
     358    const static UnicodeSet::run_t __gurmukhi_Set_runs[] = {
     359    {Empty, 80}, {Full, 4}, {Empty, 34732}};
     360    const static UnicodeSet::bitquad_t * const __gurmukhi_Set_quads = nullptr;
     361    }
     362
     363    const static UnicodeSet gurmukhi_Set{const_cast<UnicodeSet::run_t *>(__gurmukhi_Set_runs), 3, 0, const_cast<UnicodeSet::bitquad_t *>(__gurmukhi_Set_quads), 0, 0};
     364
    182365    /** Code Point Ranges for Gujarati
    183366    [0a80, 0aff]**/
    184     const UnicodeSet gujarati_Set
    185         {{{Empty, 84}, {Full, 4}, {Empty, 34728}},
    186          {}};
     367
     368
     369    namespace {
     370    const static UnicodeSet::run_t __gujarati_Set_runs[] = {
     371    {Empty, 84}, {Full, 4}, {Empty, 34728}};
     372    const static UnicodeSet::bitquad_t * const __gujarati_Set_quads = nullptr;
     373    }
     374
     375    const static UnicodeSet gujarati_Set{const_cast<UnicodeSet::run_t *>(__gujarati_Set_runs), 3, 0, const_cast<UnicodeSet::bitquad_t *>(__gujarati_Set_quads), 0, 0};
     376
    187377    /** Code Point Ranges for Oriya
    188378    [0b00, 0b7f]**/
    189     const UnicodeSet oriya_Set
    190         {{{Empty, 88}, {Full, 4}, {Empty, 34724}},
    191          {}};
     379
     380
     381    namespace {
     382    const static UnicodeSet::run_t __oriya_Set_runs[] = {
     383    {Empty, 88}, {Full, 4}, {Empty, 34724}};
     384    const static UnicodeSet::bitquad_t * const __oriya_Set_quads = nullptr;
     385    }
     386
     387    const static UnicodeSet oriya_Set{const_cast<UnicodeSet::run_t *>(__oriya_Set_runs), 3, 0, const_cast<UnicodeSet::bitquad_t *>(__oriya_Set_quads), 0, 0};
     388
    192389    /** Code Point Ranges for Tamil
    193390    [0b80, 0bff]**/
    194     const UnicodeSet tamil_Set
    195         {{{Empty, 92}, {Full, 4}, {Empty, 34720}},
    196          {}};
     391
     392
     393    namespace {
     394    const static UnicodeSet::run_t __tamil_Set_runs[] = {
     395    {Empty, 92}, {Full, 4}, {Empty, 34720}};
     396    const static UnicodeSet::bitquad_t * const __tamil_Set_quads = nullptr;
     397    }
     398
     399    const static UnicodeSet tamil_Set{const_cast<UnicodeSet::run_t *>(__tamil_Set_runs), 3, 0, const_cast<UnicodeSet::bitquad_t *>(__tamil_Set_quads), 0, 0};
     400
    197401    /** Code Point Ranges for Telugu
    198402    [0c00, 0c7f]**/
    199     const UnicodeSet telugu_Set
    200         {{{Empty, 96}, {Full, 4}, {Empty, 34716}},
    201          {}};
     403
     404
     405    namespace {
     406    const static UnicodeSet::run_t __telugu_Set_runs[] = {
     407    {Empty, 96}, {Full, 4}, {Empty, 34716}};
     408    const static UnicodeSet::bitquad_t * const __telugu_Set_quads = nullptr;
     409    }
     410
     411    const static UnicodeSet telugu_Set{const_cast<UnicodeSet::run_t *>(__telugu_Set_runs), 3, 0, const_cast<UnicodeSet::bitquad_t *>(__telugu_Set_quads), 0, 0};
     412
    202413    /** Code Point Ranges for Kannada
    203414    [0c80, 0cff]**/
    204     const UnicodeSet kannada_Set
    205         {{{Empty, 100}, {Full, 4}, {Empty, 34712}},
    206          {}};
     415
     416
     417    namespace {
     418    const static UnicodeSet::run_t __kannada_Set_runs[] = {
     419    {Empty, 100}, {Full, 4}, {Empty, 34712}};
     420    const static UnicodeSet::bitquad_t * const __kannada_Set_quads = nullptr;
     421    }
     422
     423    const static UnicodeSet kannada_Set{const_cast<UnicodeSet::run_t *>(__kannada_Set_runs), 3, 0, const_cast<UnicodeSet::bitquad_t *>(__kannada_Set_quads), 0, 0};
     424
    207425    /** Code Point Ranges for Malayalam
    208426    [0d00, 0d7f]**/
    209     const UnicodeSet malayalam_Set
    210         {{{Empty, 104}, {Full, 4}, {Empty, 34708}},
    211          {}};
     427
     428
     429    namespace {
     430    const static UnicodeSet::run_t __malayalam_Set_runs[] = {
     431    {Empty, 104}, {Full, 4}, {Empty, 34708}};
     432    const static UnicodeSet::bitquad_t * const __malayalam_Set_quads = nullptr;
     433    }
     434
     435    const static UnicodeSet malayalam_Set{const_cast<UnicodeSet::run_t *>(__malayalam_Set_runs), 3, 0, const_cast<UnicodeSet::bitquad_t *>(__malayalam_Set_quads), 0, 0};
     436
    212437    /** Code Point Ranges for Sinhala
    213438    [0d80, 0dff]**/
    214     const UnicodeSet sinhala_Set
    215         {{{Empty, 108}, {Full, 4}, {Empty, 34704}},
    216          {}};
     439
     440
     441    namespace {
     442    const static UnicodeSet::run_t __sinhala_Set_runs[] = {
     443    {Empty, 108}, {Full, 4}, {Empty, 34704}};
     444    const static UnicodeSet::bitquad_t * const __sinhala_Set_quads = nullptr;
     445    }
     446
     447    const static UnicodeSet sinhala_Set{const_cast<UnicodeSet::run_t *>(__sinhala_Set_runs), 3, 0, const_cast<UnicodeSet::bitquad_t *>(__sinhala_Set_quads), 0, 0};
     448
    217449    /** Code Point Ranges for Thai
    218450    [0e00, 0e7f]**/
    219     const UnicodeSet thai_Set
    220         {{{Empty, 112}, {Full, 4}, {Empty, 34700}},
    221          {}};
     451
     452
     453    namespace {
     454    const static UnicodeSet::run_t __thai_Set_runs[] = {
     455    {Empty, 112}, {Full, 4}, {Empty, 34700}};
     456    const static UnicodeSet::bitquad_t * const __thai_Set_quads = nullptr;
     457    }
     458
     459    const static UnicodeSet thai_Set{const_cast<UnicodeSet::run_t *>(__thai_Set_runs), 3, 0, const_cast<UnicodeSet::bitquad_t *>(__thai_Set_quads), 0, 0};
     460
    222461    /** Code Point Ranges for Lao
    223462    [0e80, 0eff]**/
    224     const UnicodeSet lao_Set
    225         {{{Empty, 116}, {Full, 4}, {Empty, 34696}},
    226          {}};
     463
     464
     465    namespace {
     466    const static UnicodeSet::run_t __lao_Set_runs[] = {
     467    {Empty, 116}, {Full, 4}, {Empty, 34696}};
     468    const static UnicodeSet::bitquad_t * const __lao_Set_quads = nullptr;
     469    }
     470
     471    const static UnicodeSet lao_Set{const_cast<UnicodeSet::run_t *>(__lao_Set_runs), 3, 0, const_cast<UnicodeSet::bitquad_t *>(__lao_Set_quads), 0, 0};
     472
    227473    /** Code Point Ranges for Tibetan
    228474    [0f00, 0fff]**/
    229     const UnicodeSet tibetan_Set
    230         {{{Empty, 120}, {Full, 8}, {Empty, 34688}},
    231          {}};
     475
     476
     477    namespace {
     478    const static UnicodeSet::run_t __tibetan_Set_runs[] = {
     479    {Empty, 120}, {Full, 8}, {Empty, 34688}};
     480    const static UnicodeSet::bitquad_t * const __tibetan_Set_quads = nullptr;
     481    }
     482
     483    const static UnicodeSet tibetan_Set{const_cast<UnicodeSet::run_t *>(__tibetan_Set_runs), 3, 0, const_cast<UnicodeSet::bitquad_t *>(__tibetan_Set_quads), 0, 0};
     484
    232485    /** Code Point Ranges for Myanmar
    233486    [1000, 109f]**/
    234     const UnicodeSet myanmar_Set
    235         {{{Empty, 128}, {Full, 5}, {Empty, 34683}},
    236          {}};
     487
     488
     489    namespace {
     490    const static UnicodeSet::run_t __myanmar_Set_runs[] = {
     491    {Empty, 128}, {Full, 5}, {Empty, 34683}};
     492    const static UnicodeSet::bitquad_t * const __myanmar_Set_quads = nullptr;
     493    }
     494
     495    const static UnicodeSet myanmar_Set{const_cast<UnicodeSet::run_t *>(__myanmar_Set_runs), 3, 0, const_cast<UnicodeSet::bitquad_t *>(__myanmar_Set_quads), 0, 0};
     496
    237497    /** Code Point Ranges for Georgian
    238498    [10a0, 10ff]**/
    239     const UnicodeSet georgian_Set
    240         {{{Empty, 133}, {Full, 3}, {Empty, 34680}},
    241          {}};
     499
     500
     501    namespace {
     502    const static UnicodeSet::run_t __georgian_Set_runs[] = {
     503    {Empty, 133}, {Full, 3}, {Empty, 34680}};
     504    const static UnicodeSet::bitquad_t * const __georgian_Set_quads = nullptr;
     505    }
     506
     507    const static UnicodeSet georgian_Set{const_cast<UnicodeSet::run_t *>(__georgian_Set_runs), 3, 0, const_cast<UnicodeSet::bitquad_t *>(__georgian_Set_quads), 0, 0};
     508
    242509    /** Code Point Ranges for Jamo
    243510    [1100, 11ff]**/
    244     const UnicodeSet jamo_Set
    245         {{{Empty, 136}, {Full, 8}, {Empty, 34672}},
    246          {}};
     511
     512
     513    namespace {
     514    const static UnicodeSet::run_t __jamo_Set_runs[] = {
     515    {Empty, 136}, {Full, 8}, {Empty, 34672}};
     516    const static UnicodeSet::bitquad_t * const __jamo_Set_quads = nullptr;
     517    }
     518
     519    const static UnicodeSet jamo_Set{const_cast<UnicodeSet::run_t *>(__jamo_Set_runs), 3, 0, const_cast<UnicodeSet::bitquad_t *>(__jamo_Set_quads), 0, 0};
     520
    247521    /** Code Point Ranges for Ethiopic
    248522    [1200, 137f]**/
    249     const UnicodeSet ethiopic_Set
    250         {{{Empty, 144}, {Full, 12}, {Empty, 34660}},
    251          {}};
     523
     524
     525    namespace {
     526    const static UnicodeSet::run_t __ethiopic_Set_runs[] = {
     527    {Empty, 144}, {Full, 12}, {Empty, 34660}};
     528    const static UnicodeSet::bitquad_t * const __ethiopic_Set_quads = nullptr;
     529    }
     530
     531    const static UnicodeSet ethiopic_Set{const_cast<UnicodeSet::run_t *>(__ethiopic_Set_runs), 3, 0, const_cast<UnicodeSet::bitquad_t *>(__ethiopic_Set_quads), 0, 0};
     532
    252533    /** Code Point Ranges for Ethiopic_Sup
    253534    [1380, 139f]**/
    254     const UnicodeSet ethiopic_sup_Set
    255         {{{Empty, 156}, {Full, 1}, {Empty, 34659}},
    256          {}};
     535
     536
     537    namespace {
     538    const static UnicodeSet::run_t __ethiopic_sup_Set_runs[] = {
     539    {Empty, 156}, {Full, 1}, {Empty, 34659}};
     540    const static UnicodeSet::bitquad_t * const __ethiopic_sup_Set_quads = nullptr;
     541    }
     542
     543    const static UnicodeSet ethiopic_sup_Set{const_cast<UnicodeSet::run_t *>(__ethiopic_sup_Set_runs), 3, 0, const_cast<UnicodeSet::bitquad_t *>(__ethiopic_sup_Set_quads), 0, 0};
     544
    257545    /** Code Point Ranges for Cherokee
    258546    [13a0, 13ff]**/
    259     const UnicodeSet cherokee_Set
    260         {{{Empty, 157}, {Full, 3}, {Empty, 34656}},
    261          {}};
     547
     548
     549    namespace {
     550    const static UnicodeSet::run_t __cherokee_Set_runs[] = {
     551    {Empty, 157}, {Full, 3}, {Empty, 34656}};
     552    const static UnicodeSet::bitquad_t * const __cherokee_Set_quads = nullptr;
     553    }
     554
     555    const static UnicodeSet cherokee_Set{const_cast<UnicodeSet::run_t *>(__cherokee_Set_runs), 3, 0, const_cast<UnicodeSet::bitquad_t *>(__cherokee_Set_quads), 0, 0};
     556
    262557    /** Code Point Ranges for UCAS
    263558    [1400, 167f]**/
    264     const UnicodeSet ucas_Set
    265         {{{Empty, 160}, {Full, 20}, {Empty, 34636}},
    266          {}};
     559
     560
     561    namespace {
     562    const static UnicodeSet::run_t __ucas_Set_runs[] = {
     563    {Empty, 160}, {Full, 20}, {Empty, 34636}};
     564    const static UnicodeSet::bitquad_t * const __ucas_Set_quads = nullptr;
     565    }
     566
     567    const static UnicodeSet ucas_Set{const_cast<UnicodeSet::run_t *>(__ucas_Set_runs), 3, 0, const_cast<UnicodeSet::bitquad_t *>(__ucas_Set_quads), 0, 0};
     568
    267569    /** Code Point Ranges for Ogham
    268570    [1680, 169f]**/
    269     const UnicodeSet ogham_Set
    270         {{{Empty, 180}, {Full, 1}, {Empty, 34635}},
    271          {}};
     571
     572
     573    namespace {
     574    const static UnicodeSet::run_t __ogham_Set_runs[] = {
     575    {Empty, 180}, {Full, 1}, {Empty, 34635}};
     576    const static UnicodeSet::bitquad_t * const __ogham_Set_quads = nullptr;
     577    }
     578
     579    const static UnicodeSet ogham_Set{const_cast<UnicodeSet::run_t *>(__ogham_Set_runs), 3, 0, const_cast<UnicodeSet::bitquad_t *>(__ogham_Set_quads), 0, 0};
     580
    272581    /** Code Point Ranges for Runic
    273582    [16a0, 16ff]**/
    274     const UnicodeSet runic_Set
    275         {{{Empty, 181}, {Full, 3}, {Empty, 34632}},
    276          {}};
     583
     584
     585    namespace {
     586    const static UnicodeSet::run_t __runic_Set_runs[] = {
     587    {Empty, 181}, {Full, 3}, {Empty, 34632}};
     588    const static UnicodeSet::bitquad_t * const __runic_Set_quads = nullptr;
     589    }
     590
     591    const static UnicodeSet runic_Set{const_cast<UnicodeSet::run_t *>(__runic_Set_runs), 3, 0, const_cast<UnicodeSet::bitquad_t *>(__runic_Set_quads), 0, 0};
     592
    277593    /** Code Point Ranges for Tagalog
    278594    [1700, 171f]**/
    279     const UnicodeSet tagalog_Set
    280         {{{Empty, 184}, {Full, 1}, {Empty, 34631}},
    281          {}};
     595
     596
     597    namespace {
     598    const static UnicodeSet::run_t __tagalog_Set_runs[] = {
     599    {Empty, 184}, {Full, 1}, {Empty, 34631}};
     600    const static UnicodeSet::bitquad_t * const __tagalog_Set_quads = nullptr;
     601    }
     602
     603    const static UnicodeSet tagalog_Set{const_cast<UnicodeSet::run_t *>(__tagalog_Set_runs), 3, 0, const_cast<UnicodeSet::bitquad_t *>(__tagalog_Set_quads), 0, 0};
     604
    282605    /** Code Point Ranges for Hanunoo
    283606    [1720, 173f]**/
    284     const UnicodeSet hanunoo_Set
    285         {{{Empty, 185}, {Full, 1}, {Empty, 34630}},
    286          {}};
     607
     608
     609    namespace {
     610    const static UnicodeSet::run_t __hanunoo_Set_runs[] = {
     611    {Empty, 185}, {Full, 1}, {Empty, 34630}};
     612    const static UnicodeSet::bitquad_t * const __hanunoo_Set_quads = nullptr;
     613    }
     614
     615    const static UnicodeSet hanunoo_Set{const_cast<UnicodeSet::run_t *>(__hanunoo_Set_runs), 3, 0, const_cast<UnicodeSet::bitquad_t *>(__hanunoo_Set_quads), 0, 0};
     616
    287617    /** Code Point Ranges for Buhid
    288618    [1740, 175f]**/
    289     const UnicodeSet buhid_Set
    290         {{{Empty, 186}, {Full, 1}, {Empty, 34629}},
    291          {}};
     619
     620
     621    namespace {
     622    const static UnicodeSet::run_t __buhid_Set_runs[] = {
     623    {Empty, 186}, {Full, 1}, {Empty, 34629}};
     624    const static UnicodeSet::bitquad_t * const __buhid_Set_quads = nullptr;
     625    }
     626
     627    const static UnicodeSet buhid_Set{const_cast<UnicodeSet::run_t *>(__buhid_Set_runs), 3, 0, const_cast<UnicodeSet::bitquad_t *>(__buhid_Set_quads), 0, 0};
     628
    292629    /** Code Point Ranges for Tagbanwa
    293630    [1760, 177f]**/
    294     const UnicodeSet tagbanwa_Set
    295         {{{Empty, 187}, {Full, 1}, {Empty, 34628}},
    296          {}};
     631
     632
     633    namespace {
     634    const static UnicodeSet::run_t __tagbanwa_Set_runs[] = {
     635    {Empty, 187}, {Full, 1}, {Empty, 34628}};
     636    const static UnicodeSet::bitquad_t * const __tagbanwa_Set_quads = nullptr;
     637    }
     638
     639    const static UnicodeSet tagbanwa_Set{const_cast<UnicodeSet::run_t *>(__tagbanwa_Set_runs), 3, 0, const_cast<UnicodeSet::bitquad_t *>(__tagbanwa_Set_quads), 0, 0};
     640
    297641    /** Code Point Ranges for Khmer
    298642    [1780, 17ff]**/
    299     const UnicodeSet khmer_Set
    300         {{{Empty, 188}, {Full, 4}, {Empty, 34624}},
    301          {}};
     643
     644
     645    namespace {
     646    const static UnicodeSet::run_t __khmer_Set_runs[] = {
     647    {Empty, 188}, {Full, 4}, {Empty, 34624}};
     648    const static UnicodeSet::bitquad_t * const __khmer_Set_quads = nullptr;
     649    }
     650
     651    const static UnicodeSet khmer_Set{const_cast<UnicodeSet::run_t *>(__khmer_Set_runs), 3, 0, const_cast<UnicodeSet::bitquad_t *>(__khmer_Set_quads), 0, 0};
     652
    302653    /** Code Point Ranges for Mongolian
    303654    [1800, 18af]**/
    304     const UnicodeSet mongolian_Set
    305         {{{Empty, 192}, {Full, 5}, {Mixed, 1}, {Empty, 34618}},
    306          {0x0000ffff}};
     655
     656
     657    namespace {
     658    const static UnicodeSet::run_t __mongolian_Set_runs[] = {
     659    {Empty, 192}, {Full, 5}, {Mixed, 1}, {Empty, 34618}};
     660    const static UnicodeSet::bitquad_t  __mongolian_Set_quads[] = {
     661    0x0000ffff};
     662    }
     663
     664    const static UnicodeSet mongolian_Set{const_cast<UnicodeSet::run_t *>(__mongolian_Set_runs), 4, 0, const_cast<UnicodeSet::bitquad_t *>(__mongolian_Set_quads), 1, 0};
     665
    307666    /** Code Point Ranges for UCAS_Ext
    308667    [18b0, 18ff]**/
    309     const UnicodeSet ucas_ext_Set
    310         {{{Empty, 197}, {Mixed, 1}, {Full, 2}, {Empty, 34616}},
    311          {0xffff0000}};
     668
     669
     670    namespace {
     671    const static UnicodeSet::run_t __ucas_ext_Set_runs[] = {
     672    {Empty, 197}, {Mixed, 1}, {Full, 2}, {Empty, 34616}};
     673    const static UnicodeSet::bitquad_t  __ucas_ext_Set_quads[] = {
     674    0xffff0000};
     675    }
     676
     677    const static UnicodeSet ucas_ext_Set{const_cast<UnicodeSet::run_t *>(__ucas_ext_Set_runs), 4, 0, const_cast<UnicodeSet::bitquad_t *>(__ucas_ext_Set_quads), 1, 0};
     678
    312679    /** Code Point Ranges for Limbu
    313680    [1900, 194f]**/
    314     const UnicodeSet limbu_Set
    315         {{{Empty, 200}, {Full, 2}, {Mixed, 1}, {Empty, 34613}},
    316          {0x0000ffff}};
     681
     682
     683    namespace {
     684    const static UnicodeSet::run_t __limbu_Set_runs[] = {
     685    {Empty, 200}, {Full, 2}, {Mixed, 1}, {Empty, 34613}};
     686    const static UnicodeSet::bitquad_t  __limbu_Set_quads[] = {
     687    0x0000ffff};
     688    }
     689
     690    const static UnicodeSet limbu_Set{const_cast<UnicodeSet::run_t *>(__limbu_Set_runs), 4, 0, const_cast<UnicodeSet::bitquad_t *>(__limbu_Set_quads), 1, 0};
     691
    317692    /** Code Point Ranges for Tai_Le
    318693    [1950, 197f]**/
    319     const UnicodeSet tai_le_Set
    320         {{{Empty, 202}, {Mixed, 1}, {Full, 1}, {Empty, 34612}},
    321          {0xffff0000}};
     694
     695
     696    namespace {
     697    const static UnicodeSet::run_t __tai_le_Set_runs[] = {
     698    {Empty, 202}, {Mixed, 1}, {Full, 1}, {Empty, 34612}};
     699    const static UnicodeSet::bitquad_t  __tai_le_Set_quads[] = {
     700    0xffff0000};
     701    }
     702
     703    const static UnicodeSet tai_le_Set{const_cast<UnicodeSet::run_t *>(__tai_le_Set_runs), 4, 0, const_cast<UnicodeSet::bitquad_t *>(__tai_le_Set_quads), 1, 0};
     704
    322705    /** Code Point Ranges for New_Tai_Lue
    323706    [1980, 19df]**/
    324     const UnicodeSet new_tai_lue_Set
    325         {{{Empty, 204}, {Full, 3}, {Empty, 34609}},
    326          {}};
     707
     708
     709    namespace {
     710    const static UnicodeSet::run_t __new_tai_lue_Set_runs[] = {
     711    {Empty, 204}, {Full, 3}, {Empty, 34609}};
     712    const static UnicodeSet::bitquad_t * const __new_tai_lue_Set_quads = nullptr;
     713    }
     714
     715    const static UnicodeSet new_tai_lue_Set{const_cast<UnicodeSet::run_t *>(__new_tai_lue_Set_runs), 3, 0, const_cast<UnicodeSet::bitquad_t *>(__new_tai_lue_Set_quads), 0, 0};
     716
    327717    /** Code Point Ranges for Khmer_Symbols
    328718    [19e0, 19ff]**/
    329     const UnicodeSet khmer_symbols_Set
    330         {{{Empty, 207}, {Full, 1}, {Empty, 34608}},
    331          {}};
     719
     720
     721    namespace {
     722    const static UnicodeSet::run_t __khmer_symbols_Set_runs[] = {
     723    {Empty, 207}, {Full, 1}, {Empty, 34608}};
     724    const static UnicodeSet::bitquad_t * const __khmer_symbols_Set_quads = nullptr;
     725    }
     726
     727    const static UnicodeSet khmer_symbols_Set{const_cast<UnicodeSet::run_t *>(__khmer_symbols_Set_runs), 3, 0, const_cast<UnicodeSet::bitquad_t *>(__khmer_symbols_Set_quads), 0, 0};
     728
    332729    /** Code Point Ranges for Buginese
    333730    [1a00, 1a1f]**/
    334     const UnicodeSet buginese_Set
    335         {{{Empty, 208}, {Full, 1}, {Empty, 34607}},
    336          {}};
     731
     732
     733    namespace {
     734    const static UnicodeSet::run_t __buginese_Set_runs[] = {
     735    {Empty, 208}, {Full, 1}, {Empty, 34607}};
     736    const static UnicodeSet::bitquad_t * const __buginese_Set_quads = nullptr;
     737    }
     738
     739    const static UnicodeSet buginese_Set{const_cast<UnicodeSet::run_t *>(__buginese_Set_runs), 3, 0, const_cast<UnicodeSet::bitquad_t *>(__buginese_Set_quads), 0, 0};
     740
    337741    /** Code Point Ranges for Tai_Tham
    338742    [1a20, 1aaf]**/
    339     const UnicodeSet tai_tham_Set
    340         {{{Empty, 209}, {Full, 4}, {Mixed, 1}, {Empty, 34602}},
    341          {0x0000ffff}};
     743
     744
     745    namespace {
     746    const static UnicodeSet::run_t __tai_tham_Set_runs[] = {
     747    {Empty, 209}, {Full, 4}, {Mixed, 1}, {Empty, 34602}};
     748    const static UnicodeSet::bitquad_t  __tai_tham_Set_quads[] = {
     749    0x0000ffff};
     750    }
     751
     752    const static UnicodeSet tai_tham_Set{const_cast<UnicodeSet::run_t *>(__tai_tham_Set_runs), 4, 0, const_cast<UnicodeSet::bitquad_t *>(__tai_tham_Set_quads), 1, 0};
     753
    342754    /** Code Point Ranges for Diacriticals_Ext
    343755    [1ab0, 1aff]**/
    344     const UnicodeSet diacriticals_ext_Set
    345         {{{Empty, 213}, {Mixed, 1}, {Full, 2}, {Empty, 34600}},
    346          {0xffff0000}};
     756
     757
     758    namespace {
     759    const static UnicodeSet::run_t __diacriticals_ext_Set_runs[] = {
     760    {Empty, 213}, {Mixed, 1}, {Full, 2}, {Empty, 34600}};
     761    const static UnicodeSet::bitquad_t  __diacriticals_ext_Set_quads[] = {
     762    0xffff0000};
     763    }
     764
     765    const static UnicodeSet diacriticals_ext_Set{const_cast<UnicodeSet::run_t *>(__diacriticals_ext_Set_runs), 4, 0, const_cast<UnicodeSet::bitquad_t *>(__diacriticals_ext_Set_quads), 1, 0};
     766
    347767    /** Code Point Ranges for Balinese
    348768    [1b00, 1b7f]**/
    349     const UnicodeSet balinese_Set
    350         {{{Empty, 216}, {Full, 4}, {Empty, 34596}},
    351          {}};
     769
     770
     771    namespace {
     772    const static UnicodeSet::run_t __balinese_Set_runs[] = {
     773    {Empty, 216}, {Full, 4}, {Empty, 34596}};
     774    const static UnicodeSet::bitquad_t * const __balinese_Set_quads = nullptr;
     775    }
     776
     777    const static UnicodeSet balinese_Set{const_cast<UnicodeSet::run_t *>(__balinese_Set_runs), 3, 0, const_cast<UnicodeSet::bitquad_t *>(__balinese_Set_quads), 0, 0};
     778
    352779    /** Code Point Ranges for Sundanese
    353780    [1b80, 1bbf]**/
    354     const UnicodeSet sundanese_Set
    355         {{{Empty, 220}, {Full, 2}, {Empty, 34594}},
    356          {}};
     781
     782
     783    namespace {
     784    const static UnicodeSet::run_t __sundanese_Set_runs[] = {
     785    {Empty, 220}, {Full, 2}, {Empty, 34594}};
     786    const static UnicodeSet::bitquad_t * const __sundanese_Set_quads = nullptr;
     787    }
     788
     789    const static UnicodeSet sundanese_Set{const_cast<UnicodeSet::run_t *>(__sundanese_Set_runs), 3, 0, const_cast<UnicodeSet::bitquad_t *>(__sundanese_Set_quads), 0, 0};
     790
    357791    /** Code Point Ranges for Batak
    358792    [1bc0, 1bff]**/
    359     const UnicodeSet batak_Set
    360         {{{Empty, 222}, {Full, 2}, {Empty, 34592}},
    361          {}};
     793
     794
     795    namespace {
     796    const static UnicodeSet::run_t __batak_Set_runs[] = {
     797    {Empty, 222}, {Full, 2}, {Empty, 34592}};
     798    const static UnicodeSet::bitquad_t * const __batak_Set_quads = nullptr;
     799    }
     800
     801    const static UnicodeSet batak_Set{const_cast<UnicodeSet::run_t *>(__batak_Set_runs), 3, 0, const_cast<UnicodeSet::bitquad_t *>(__batak_Set_quads), 0, 0};
     802
    362803    /** Code Point Ranges for Lepcha
    363804    [1c00, 1c4f]**/
    364     const UnicodeSet lepcha_Set
    365         {{{Empty, 224}, {Full, 2}, {Mixed, 1}, {Empty, 34589}},
    366          {0x0000ffff}};
     805
     806
     807    namespace {
     808    const static UnicodeSet::run_t __lepcha_Set_runs[] = {
     809    {Empty, 224}, {Full, 2}, {Mixed, 1}, {Empty, 34589}};
     810    const static UnicodeSet::bitquad_t  __lepcha_Set_quads[] = {
     811    0x0000ffff};
     812    }
     813
     814    const static UnicodeSet lepcha_Set{const_cast<UnicodeSet::run_t *>(__lepcha_Set_runs), 4, 0, const_cast<UnicodeSet::bitquad_t *>(__lepcha_Set_quads), 1, 0};
     815
    367816    /** Code Point Ranges for Ol_Chiki
    368817    [1c50, 1c7f]**/
    369     const UnicodeSet ol_chiki_Set
    370         {{{Empty, 226}, {Mixed, 1}, {Full, 1}, {Empty, 34588}},
    371          {0xffff0000}};
     818
     819
     820    namespace {
     821    const static UnicodeSet::run_t __ol_chiki_Set_runs[] = {
     822    {Empty, 226}, {Mixed, 1}, {Full, 1}, {Empty, 34588}};
     823    const static UnicodeSet::bitquad_t  __ol_chiki_Set_quads[] = {
     824    0xffff0000};
     825    }
     826
     827    const static UnicodeSet ol_chiki_Set{const_cast<UnicodeSet::run_t *>(__ol_chiki_Set_runs), 4, 0, const_cast<UnicodeSet::bitquad_t *>(__ol_chiki_Set_quads), 1, 0};
     828
    372829    /** Code Point Ranges for Cyrillic_Ext_C
    373830    [1c80, 1c8f]**/
    374     const UnicodeSet cyrillic_ext_c_Set
    375         {{{Empty, 228}, {Mixed, 1}, {Empty, 34587}},
    376          {0x0000ffff}};
     831
     832
     833    namespace {
     834    const static UnicodeSet::run_t __cyrillic_ext_c_Set_runs[] = {
     835    {Empty, 228}, {Mixed, 1}, {Empty, 34587}};
     836    const static UnicodeSet::bitquad_t  __cyrillic_ext_c_Set_quads[] = {
     837    0x0000ffff};
     838    }
     839
     840    const static UnicodeSet cyrillic_ext_c_Set{const_cast<UnicodeSet::run_t *>(__cyrillic_ext_c_Set_runs), 3, 0, const_cast<UnicodeSet::bitquad_t *>(__cyrillic_ext_c_Set_quads), 1, 0};
     841
    377842    /** Code Point Ranges for Sundanese_Sup
    378843    [1cc0, 1ccf]**/
    379     const UnicodeSet sundanese_sup_Set
    380         {{{Empty, 230}, {Mixed, 1}, {Empty, 34585}},
    381          {0x0000ffff}};
     844
     845
     846    namespace {
     847    const static UnicodeSet::run_t __sundanese_sup_Set_runs[] = {
     848    {Empty, 230}, {Mixed, 1}, {Empty, 34585}};
     849    const static UnicodeSet::bitquad_t  __sundanese_sup_Set_quads[] = {
     850    0x0000ffff};
     851    }
     852
     853    const static UnicodeSet sundanese_sup_Set{const_cast<UnicodeSet::run_t *>(__sundanese_sup_Set_runs), 3, 0, const_cast<UnicodeSet::bitquad_t *>(__sundanese_sup_Set_quads), 1, 0};
     854
    382855    /** Code Point Ranges for Vedic_Ext
    383856    [1cd0, 1cff]**/
    384     const UnicodeSet vedic_ext_Set
    385         {{{Empty, 230}, {Mixed, 1}, {Full, 1}, {Empty, 34584}},
    386          {0xffff0000}};
     857
     858
     859    namespace {
     860    const static UnicodeSet::run_t __vedic_ext_Set_runs[] = {
     861    {Empty, 230}, {Mixed, 1}, {Full, 1}, {Empty, 34584}};
     862    const static UnicodeSet::bitquad_t  __vedic_ext_Set_quads[] = {
     863    0xffff0000};
     864    }
     865
     866    const static UnicodeSet vedic_ext_Set{const_cast<UnicodeSet::run_t *>(__vedic_ext_Set_runs), 4, 0, const_cast<UnicodeSet::bitquad_t *>(__vedic_ext_Set_quads), 1, 0};
     867
    387868    /** Code Point Ranges for Phonetic_Ext
    388869    [1d00, 1d7f]**/
    389     const UnicodeSet phonetic_ext_Set
    390         {{{Empty, 232}, {Full, 4}, {Empty, 34580}},
    391          {}};
     870
     871
     872    namespace {
     873    const static UnicodeSet::run_t __phonetic_ext_Set_runs[] = {
     874    {Empty, 232}, {Full, 4}, {Empty, 34580}};
     875    const static UnicodeSet::bitquad_t * const __phonetic_ext_Set_quads = nullptr;
     876    }
     877
     878    const static UnicodeSet phonetic_ext_Set{const_cast<UnicodeSet::run_t *>(__phonetic_ext_Set_runs), 3, 0, const_cast<UnicodeSet::bitquad_t *>(__phonetic_ext_Set_quads), 0, 0};
     879
    392880    /** Code Point Ranges for Phonetic_Ext_Sup
    393881    [1d80, 1dbf]**/
    394     const UnicodeSet phonetic_ext_sup_Set
    395         {{{Empty, 236}, {Full, 2}, {Empty, 34578}},
    396          {}};
     882
     883
     884    namespace {
     885    const static UnicodeSet::run_t __phonetic_ext_sup_Set_runs[] = {
     886    {Empty, 236}, {Full, 2}, {Empty, 34578}};
     887    const static UnicodeSet::bitquad_t * const __phonetic_ext_sup_Set_quads = nullptr;
     888    }
     889
     890    const static UnicodeSet phonetic_ext_sup_Set{const_cast<UnicodeSet::run_t *>(__phonetic_ext_sup_Set_runs), 3, 0, const_cast<UnicodeSet::bitquad_t *>(__phonetic_ext_sup_Set_quads), 0, 0};
     891
    397892    /** Code Point Ranges for Diacriticals_Sup
    398893    [1dc0, 1dff]**/
    399     const UnicodeSet diacriticals_sup_Set
    400         {{{Empty, 238}, {Full, 2}, {Empty, 34576}},
    401          {}};
     894
     895
     896    namespace {
     897    const static UnicodeSet::run_t __diacriticals_sup_Set_runs[] = {
     898    {Empty, 238}, {Full, 2}, {Empty, 34576}};
     899    const static UnicodeSet::bitquad_t * const __diacriticals_sup_Set_quads = nullptr;
     900    }
     901
     902    const static UnicodeSet diacriticals_sup_Set{const_cast<UnicodeSet::run_t *>(__diacriticals_sup_Set_runs), 3, 0, const_cast<UnicodeSet::bitquad_t *>(__diacriticals_sup_Set_quads), 0, 0};
     903
    402904    /** Code Point Ranges for Latin_Ext_Additional
    403905    [1e00, 1eff]**/
    404     const UnicodeSet latin_ext_additional_Set
    405         {{{Empty, 240}, {Full, 8}, {Empty, 34568}},
    406          {}};
     906
     907
     908    namespace {
     909    const static UnicodeSet::run_t __latin_ext_additional_Set_runs[] = {
     910    {Empty, 240}, {Full, 8}, {Empty, 34568}};
     911    const static UnicodeSet::bitquad_t * const __latin_ext_additional_Set_quads = nullptr;
     912    }
     913
     914    const static UnicodeSet latin_ext_additional_Set{const_cast<UnicodeSet::run_t *>(__latin_ext_additional_Set_runs), 3, 0, const_cast<UnicodeSet::bitquad_t *>(__latin_ext_additional_Set_quads), 0, 0};
     915
    407916    /** Code Point Ranges for Greek_Ext
    408917    [1f00, 1fff]**/
    409     const UnicodeSet greek_ext_Set
    410         {{{Empty, 248}, {Full, 8}, {Empty, 34560}},
    411          {}};
     918
     919
     920    namespace {
     921    const static UnicodeSet::run_t __greek_ext_Set_runs[] = {
     922    {Empty, 248}, {Full, 8}, {Empty, 34560}};
     923    const static UnicodeSet::bitquad_t * const __greek_ext_Set_quads = nullptr;
     924    }
     925
     926    const static UnicodeSet greek_ext_Set{const_cast<UnicodeSet::run_t *>(__greek_ext_Set_runs), 3, 0, const_cast<UnicodeSet::bitquad_t *>(__greek_ext_Set_quads), 0, 0};
     927
    412928    /** Code Point Ranges for Punctuation
    413929    [2000, 206f]**/
    414     const UnicodeSet punctuation_Set
    415         {{{Empty, 256}, {Full, 3}, {Mixed, 1}, {Empty, 34556}},
    416          {0x0000ffff}};
     930
     931
     932    namespace {
     933    const static UnicodeSet::run_t __punctuation_Set_runs[] = {
     934    {Empty, 256}, {Full, 3}, {Mixed, 1}, {Empty, 34556}};
     935    const static UnicodeSet::bitquad_t  __punctuation_Set_quads[] = {
     936    0x0000ffff};
     937    }
     938
     939    const static UnicodeSet punctuation_Set{const_cast<UnicodeSet::run_t *>(__punctuation_Set_runs), 4, 0, const_cast<UnicodeSet::bitquad_t *>(__punctuation_Set_quads), 1, 0};
     940
    417941    /** Code Point Ranges for Super_And_Sub
    418942    [2070, 209f]**/
    419     const UnicodeSet super_and_sub_Set
    420         {{{Empty, 259}, {Mixed, 1}, {Full, 1}, {Empty, 34555}},
    421          {0xffff0000}};
     943
     944
     945    namespace {
     946    const static UnicodeSet::run_t __super_and_sub_Set_runs[] = {
     947    {Empty, 259}, {Mixed, 1}, {Full, 1}, {Empty, 34555}};
     948    const static UnicodeSet::bitquad_t  __super_and_sub_Set_quads[] = {
     949    0xffff0000};
     950    }
     951
     952    const static UnicodeSet super_and_sub_Set{const_cast<UnicodeSet::run_t *>(__super_and_sub_Set_runs), 4, 0, const_cast<UnicodeSet::bitquad_t *>(__super_and_sub_Set_quads), 1, 0};
     953
    422954    /** Code Point Ranges for Currency_Symbols
    423955    [20a0, 20cf]**/
    424     const UnicodeSet currency_symbols_Set
    425         {{{Empty, 261}, {Full, 1}, {Mixed, 1}, {Empty, 34553}},
    426          {0x0000ffff}};
     956
     957
     958    namespace {
     959    const static UnicodeSet::run_t __currency_symbols_Set_runs[] = {
     960    {Empty, 261}, {Full, 1}, {Mixed, 1}, {Empty, 34553}};
     961    const static UnicodeSet::bitquad_t  __currency_symbols_Set_quads[] = {
     962    0x0000ffff};
     963    }
     964
     965    const static UnicodeSet currency_symbols_Set{const_cast<UnicodeSet::run_t *>(__currency_symbols_Set_runs), 4, 0, const_cast<UnicodeSet::bitquad_t *>(__currency_symbols_Set_quads), 1, 0};
     966
    427967    /** Code Point Ranges for Diacriticals_For_Symbols
    428968    [20d0, 20ff]**/
    429     const UnicodeSet diacriticals_for_symbols_Set
    430         {{{Empty, 262}, {Mixed, 1}, {Full, 1}, {Empty, 34552}},
    431          {0xffff0000}};
     969
     970
     971    namespace {
     972    const static UnicodeSet::run_t __diacriticals_for_symbols_Set_runs[] = {
     973    {Empty, 262}, {Mixed, 1}, {Full, 1}, {Empty, 34552}};
     974    const static UnicodeSet::bitquad_t  __diacriticals_for_symbols_Set_quads[] = {
     975    0xffff0000};
     976    }
     977
     978    const static UnicodeSet diacriticals_for_symbols_Set{const_cast<UnicodeSet::run_t *>(__diacriticals_for_symbols_Set_runs), 4, 0, const_cast<UnicodeSet::bitquad_t *>(__diacriticals_for_symbols_Set_quads), 1, 0};
     979
    432980    /** Code Point Ranges for Letterlike_Symbols
    433981    [2100, 214f]**/
    434     const UnicodeSet letterlike_symbols_Set
    435         {{{Empty, 264}, {Full, 2}, {Mixed, 1}, {Empty, 34549}},
    436          {0x0000ffff}};
     982
     983
     984    namespace {
     985    const static UnicodeSet::run_t __letterlike_symbols_Set_runs[] = {
     986    {Empty, 264}, {Full, 2}, {Mixed, 1}, {Empty, 34549}};
     987    const static UnicodeSet::bitquad_t  __letterlike_symbols_Set_quads[] = {
     988    0x0000ffff};
     989    }
     990
     991    const static UnicodeSet letterlike_symbols_Set{const_cast<UnicodeSet::run_t *>(__letterlike_symbols_Set_runs), 4, 0, const_cast<UnicodeSet::bitquad_t *>(__letterlike_symbols_Set_quads), 1, 0};
     992
    437993    /** Code Point Ranges for Number_Forms
    438994    [2150, 218f]**/
    439     const UnicodeSet number_forms_Set
    440         {{{Empty, 266}, {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Empty, 34547}},
    441          {0xffff0000, 0x0000ffff}};
     995
     996
     997    namespace {
     998    const static UnicodeSet::run_t __number_forms_Set_runs[] = {
     999    {Empty, 266}, {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Empty, 34547}};
     1000    const static UnicodeSet::bitquad_t  __number_forms_Set_quads[] = {
     1001    0xffff0000, 0x0000ffff};
     1002    }
     1003
     1004    const static UnicodeSet number_forms_Set{const_cast<UnicodeSet::run_t *>(__number_forms_Set_runs), 5, 0, const_cast<UnicodeSet::bitquad_t *>(__number_forms_Set_quads), 2, 0};
     1005
    4421006    /** Code Point Ranges for Arrows
    4431007    [2190, 21ff]**/
    444     const UnicodeSet arrows_Set
    445         {{{Empty, 268}, {Mixed, 1}, {Full, 3}, {Empty, 34544}},
    446          {0xffff0000}};
     1008
     1009
     1010    namespace {
     1011    const static UnicodeSet::run_t __arrows_Set_runs[] = {
     1012    {Empty, 268}, {Mixed, 1}, {Full, 3}, {Empty, 34544}};
     1013    const static UnicodeSet::bitquad_t  __arrows_Set_quads[] = {
     1014    0xffff0000};
     1015    }
     1016
     1017    const static UnicodeSet arrows_Set{const_cast<UnicodeSet::run_t *>(__arrows_Set_runs), 4, 0, const_cast<UnicodeSet::bitquad_t *>(__arrows_Set_quads), 1, 0};
     1018
    4471019    /** Code Point Ranges for Math_Operators
    4481020    [2200, 22ff]**/
    449     const UnicodeSet math_operators_Set
    450         {{{Empty, 272}, {Full, 8}, {Empty, 34536}},
    451          {}};
     1021
     1022
     1023    namespace {
     1024    const static UnicodeSet::run_t __math_operators_Set_runs[] = {
     1025    {Empty, 272}, {Full, 8}, {Empty, 34536}};
     1026    const static UnicodeSet::bitquad_t * const __math_operators_Set_quads = nullptr;
     1027    }
     1028
     1029    const static UnicodeSet math_operators_Set{const_cast<UnicodeSet::run_t *>(__math_operators_Set_runs), 3, 0, const_cast<UnicodeSet::bitquad_t *>(__math_operators_Set_quads), 0, 0};
     1030
    4521031    /** Code Point Ranges for Misc_Technical
    4531032    [2300, 23ff]**/
    454     const UnicodeSet misc_technical_Set
    455         {{{Empty, 280}, {Full, 8}, {Empty, 34528}},
    456          {}};
     1033
     1034
     1035    namespace {
     1036    const static UnicodeSet::run_t __misc_technical_Set_runs[] = {
     1037    {Empty, 280}, {Full, 8}, {Empty, 34528}};
     1038    const static UnicodeSet::bitquad_t * const __misc_technical_Set_quads = nullptr;
     1039    }
     1040
     1041    const static UnicodeSet misc_technical_Set{const_cast<UnicodeSet::run_t *>(__misc_technical_Set_runs), 3, 0, const_cast<UnicodeSet::bitquad_t *>(__misc_technical_Set_quads), 0, 0};
     1042
    4571043    /** Code Point Ranges for Control_Pictures
    4581044    [2400, 243f]**/
    459     const UnicodeSet control_pictures_Set
    460         {{{Empty, 288}, {Full, 2}, {Empty, 34526}},
    461          {}};
     1045
     1046
     1047    namespace {
     1048    const static UnicodeSet::run_t __control_pictures_Set_runs[] = {
     1049    {Empty, 288}, {Full, 2}, {Empty, 34526}};
     1050    const static UnicodeSet::bitquad_t * const __control_pictures_Set_quads = nullptr;
     1051    }
     1052
     1053    const static UnicodeSet control_pictures_Set{const_cast<UnicodeSet::run_t *>(__control_pictures_Set_runs), 3, 0, const_cast<UnicodeSet::bitquad_t *>(__control_pictures_Set_quads), 0, 0};
     1054
    4621055    /** Code Point Ranges for OCR
    4631056    [2440, 245f]**/
    464     const UnicodeSet ocr_Set
    465         {{{Empty, 290}, {Full, 1}, {Empty, 34525}},
    466          {}};
     1057
     1058
     1059    namespace {
     1060    const static UnicodeSet::run_t __ocr_Set_runs[] = {
     1061    {Empty, 290}, {Full, 1}, {Empty, 34525}};
     1062    const static UnicodeSet::bitquad_t * const __ocr_Set_quads = nullptr;
     1063    }
     1064
     1065    const static UnicodeSet ocr_Set{const_cast<UnicodeSet::run_t *>(__ocr_Set_runs), 3, 0, const_cast<UnicodeSet::bitquad_t *>(__ocr_Set_quads), 0, 0};
     1066
    4671067    /** Code Point Ranges for Enclosed_Alphanum
    4681068    [2460, 24ff]**/
    469     const UnicodeSet enclosed_alphanum_Set
    470         {{{Empty, 291}, {Full, 5}, {Empty, 34520}},
    471          {}};
     1069
     1070
     1071    namespace {
     1072    const static UnicodeSet::run_t __enclosed_alphanum_Set_runs[] = {
     1073    {Empty, 291}, {Full, 5}, {Empty, 34520}};
     1074    const static UnicodeSet::bitquad_t * const __enclosed_alphanum_Set_quads = nullptr;
     1075    }
     1076
     1077    const static UnicodeSet enclosed_alphanum_Set{const_cast<UnicodeSet::run_t *>(__enclosed_alphanum_Set_runs), 3, 0, const_cast<UnicodeSet::bitquad_t *>(__enclosed_alphanum_Set_quads), 0, 0};
     1078
    4721079    /** Code Point Ranges for Box_Drawing
    4731080    [2500, 257f]**/
    474     const UnicodeSet box_drawing_Set
    475         {{{Empty, 296}, {Full, 4}, {Empty, 34516}},
    476          {}};
     1081
     1082
     1083    namespace {
     1084    const static UnicodeSet::run_t __box_drawing_Set_runs[] = {
     1085    {Empty, 296}, {Full, 4}, {Empty, 34516}};
     1086    const static UnicodeSet::bitquad_t * const __box_drawing_Set_quads = nullptr;
     1087    }
     1088
     1089    const static UnicodeSet box_drawing_Set{const_cast<UnicodeSet::run_t *>(__box_drawing_Set_runs), 3, 0, const_cast<UnicodeSet::bitquad_t *>(__box_drawing_Set_quads), 0, 0};
     1090
    4771091    /** Code Point Ranges for Block_Elements
    4781092    [2580, 259f]**/
    479     const UnicodeSet block_elements_Set
    480         {{{Empty, 300}, {Full, 1}, {Empty, 34515}},
    481          {}};
     1093
     1094
     1095    namespace {
     1096    const static UnicodeSet::run_t __block_elements_Set_runs[] = {
     1097    {Empty, 300}, {Full, 1}, {Empty, 34515}};
     1098    const static UnicodeSet::bitquad_t * const __block_elements_Set_quads = nullptr;
     1099    }
     1100
     1101    const static UnicodeSet block_elements_Set{const_cast<UnicodeSet::run_t *>(__block_elements_Set_runs), 3, 0, const_cast<UnicodeSet::bitquad_t *>(__block_elements_Set_quads), 0, 0};
     1102
    4821103    /** Code Point Ranges for Geometric_Shapes
    4831104    [25a0, 25ff]**/
    484     const UnicodeSet geometric_shapes_Set
    485         {{{Empty, 301}, {Full, 3}, {Empty, 34512}},
    486          {}};
     1105
     1106
     1107    namespace {
     1108    const static UnicodeSet::run_t __geometric_shapes_Set_runs[] = {
     1109    {Empty, 301}, {Full, 3}, {Empty, 34512}};
     1110    const static UnicodeSet::bitquad_t * const __geometric_shapes_Set_quads = nullptr;
     1111    }
     1112
     1113    const static UnicodeSet geometric_shapes_Set{const_cast<UnicodeSet::run_t *>(__geometric_shapes_Set_runs), 3, 0, const_cast<UnicodeSet::bitquad_t *>(__geometric_shapes_Set_quads), 0, 0};
     1114
    4871115    /** Code Point Ranges for Misc_Symbols
    4881116    [2600, 26ff]**/
    489     const UnicodeSet misc_symbols_Set
    490         {{{Empty, 304}, {Full, 8}, {Empty, 34504}},
    491          {}};
     1117
     1118
     1119    namespace {
     1120    const static UnicodeSet::run_t __misc_symbols_Set_runs[] = {
     1121    {Empty, 304}, {Full, 8}, {Empty, 34504}};
     1122    const static UnicodeSet::bitquad_t * const __misc_symbols_Set_quads = nullptr;
     1123    }
     1124
     1125    const static UnicodeSet misc_symbols_Set{const_cast<UnicodeSet::run_t *>(__misc_symbols_Set_runs), 3, 0, const_cast<UnicodeSet::bitquad_t *>(__misc_symbols_Set_quads), 0, 0};
     1126
    4921127    /** Code Point Ranges for Dingbats
    4931128    [2700, 27bf]**/
    494     const UnicodeSet dingbats_Set
    495         {{{Empty, 312}, {Full, 6}, {Empty, 34498}},
    496          {}};
     1129
     1130
     1131    namespace {
     1132    const static UnicodeSet::run_t __dingbats_Set_runs[] = {
     1133    {Empty, 312}, {Full, 6}, {Empty, 34498}};
     1134    const static UnicodeSet::bitquad_t * const __dingbats_Set_quads = nullptr;
     1135    }
     1136
     1137    const static UnicodeSet dingbats_Set{const_cast<UnicodeSet::run_t *>(__dingbats_Set_runs), 3, 0, const_cast<UnicodeSet::bitquad_t *>(__dingbats_Set_quads), 0, 0};
     1138
    4971139    /** Code Point Ranges for Misc_Math_Symbols_A
    4981140    [27c0, 27ef]**/
    499     const UnicodeSet misc_math_symbols_a_Set
    500         {{{Empty, 318}, {Full, 1}, {Mixed, 1}, {Empty, 34496}},
    501          {0x0000ffff}};
     1141
     1142
     1143    namespace {
     1144    const static UnicodeSet::run_t __misc_math_symbols_a_Set_runs[] = {
     1145    {Empty, 318}, {Full, 1}, {Mixed, 1}, {Empty, 34496}};
     1146    const static UnicodeSet::bitquad_t  __misc_math_symbols_a_Set_quads[] = {
     1147    0x0000ffff};
     1148    }
     1149
     1150    const static UnicodeSet misc_math_symbols_a_Set{const_cast<UnicodeSet::run_t *>(__misc_math_symbols_a_Set_runs), 4, 0, const_cast<UnicodeSet::bitquad_t *>(__misc_math_symbols_a_Set_quads), 1, 0};
     1151
    5021152    /** Code Point Ranges for Sup_Arrows_A
    5031153    [27f0, 27ff]**/
    504     const UnicodeSet sup_arrows_a_Set
    505         {{{Empty, 319}, {Mixed, 1}, {Empty, 34496}},
    506          {0xffff0000}};
     1154
     1155
     1156    namespace {
     1157    const static UnicodeSet::run_t __sup_arrows_a_Set_runs[] = {
     1158    {Empty, 319}, {Mixed, 1}, {Empty, 34496}};
     1159    const static UnicodeSet::bitquad_t  __sup_arrows_a_Set_quads[] = {
     1160    0xffff0000};
     1161    }
     1162
     1163    const static UnicodeSet sup_arrows_a_Set{const_cast<UnicodeSet::run_t *>(__sup_arrows_a_Set_runs), 3, 0, const_cast<UnicodeSet::bitquad_t *>(__sup_arrows_a_Set_quads), 1, 0};
     1164
    5071165    /** Code Point Ranges for Braille
    5081166    [2800, 28ff]**/
    509     const UnicodeSet braille_Set
    510         {{{Empty, 320}, {Full, 8}, {Empty, 34488}},
    511          {}};
     1167
     1168
     1169    namespace {
     1170    const static UnicodeSet::run_t __braille_Set_runs[] = {
     1171    {Empty, 320}, {Full, 8}, {Empty, 34488}};
     1172    const static UnicodeSet::bitquad_t * const __braille_Set_quads = nullptr;
     1173    }
     1174
     1175    const static UnicodeSet braille_Set{const_cast<UnicodeSet::run_t *>(__braille_Set_runs), 3, 0, const_cast<UnicodeSet::bitquad_t *>(__braille_Set_quads), 0, 0};
     1176
    5121177    /** Code Point Ranges for Sup_Arrows_B
    5131178    [2900, 297f]**/
    514     const UnicodeSet sup_arrows_b_Set
    515         {{{Empty, 328}, {Full, 4}, {Empty, 34484}},
    516          {}};
     1179
     1180
     1181    namespace {
     1182    const static UnicodeSet::run_t __sup_arrows_b_Set_runs[] = {
     1183    {Empty, 328}, {Full, 4}, {Empty, 34484}};
     1184    const static UnicodeSet::bitquad_t * const __sup_arrows_b_Set_quads = nullptr;
     1185    }
     1186
     1187    const static UnicodeSet sup_arrows_b_Set{const_cast<UnicodeSet::run_t *>(__sup_arrows_b_Set_runs), 3, 0, const_cast<UnicodeSet::bitquad_t *>(__sup_arrows_b_Set_quads), 0, 0};
     1188
    5171189    /** Code Point Ranges for Misc_Math_Symbols_B
    5181190    [2980, 29ff]**/
    519     const UnicodeSet misc_math_symbols_b_Set
    520         {{{Empty, 332}, {Full, 4}, {Empty, 34480}},
    521          {}};
     1191
     1192
     1193    namespace {
     1194    const static UnicodeSet::run_t __misc_math_symbols_b_Set_runs[] = {
     1195    {Empty, 332}, {Full, 4}, {Empty, 34480}};
     1196    const static UnicodeSet::bitquad_t * const __misc_math_symbols_b_Set_quads = nullptr;
     1197    }
     1198
     1199    const static UnicodeSet misc_math_symbols_b_Set{const_cast<UnicodeSet::run_t *>(__misc_math_symbols_b_Set_runs), 3, 0, const_cast<UnicodeSet::bitquad_t *>(__misc_math_symbols_b_Set_quads), 0, 0};
     1200
    5221201    /** Code Point Ranges for Sup_Math_Operators
    5231202    [2a00, 2aff]**/
    524     const UnicodeSet sup_math_operators_Set
    525         {{{Empty, 336}, {Full, 8}, {Empty, 34472}},
    526          {}};
     1203
     1204
     1205    namespace {
     1206    const static UnicodeSet::run_t __sup_math_operators_Set_runs[] = {
     1207    {Empty, 336}, {Full, 8}, {Empty, 34472}};
     1208    const static UnicodeSet::bitquad_t * const __sup_math_operators_Set_quads = nullptr;
     1209    }
     1210
     1211    const static UnicodeSet sup_math_operators_Set{const_cast<UnicodeSet::run_t *>(__sup_math_operators_Set_runs), 3, 0, const_cast<UnicodeSet::bitquad_t *>(__sup_math_operators_Set_quads), 0, 0};
     1212
    5271213    /** Code Point Ranges for Misc_Arrows
    5281214    [2b00, 2bff]**/
    529     const UnicodeSet misc_arrows_Set
    530         {{{Empty, 344}, {Full, 8}, {Empty, 34464}},
    531          {}};
     1215
     1216
     1217    namespace {
     1218    const static UnicodeSet::run_t __misc_arrows_Set_runs[] = {
     1219    {Empty, 344}, {Full, 8}, {Empty, 34464}};
     1220    const static UnicodeSet::bitquad_t * const __misc_arrows_Set_quads = nullptr;
     1221    }
     1222
     1223    const static UnicodeSet misc_arrows_Set{const_cast<UnicodeSet::run_t *>(__misc_arrows_Set_runs), 3, 0, const_cast<UnicodeSet::bitquad_t *>(__misc_arrows_Set_quads), 0, 0};
     1224
    5321225    /** Code Point Ranges for Glagolitic
    5331226    [2c00, 2c5f]**/
    534     const UnicodeSet glagolitic_Set
    535         {{{Empty, 352}, {Full, 3}, {Empty, 34461}},
    536          {}};
     1227
     1228
     1229    namespace {
     1230    const static UnicodeSet::run_t __glagolitic_Set_runs[] = {
     1231    {Empty, 352}, {Full, 3}, {Empty, 34461}};
     1232    const static UnicodeSet::bitquad_t * const __glagolitic_Set_quads = nullptr;
     1233    }
     1234
     1235    const static UnicodeSet glagolitic_Set{const_cast<UnicodeSet::run_t *>(__glagolitic_Set_runs), 3, 0, const_cast<UnicodeSet::bitquad_t *>(__glagolitic_Set_quads), 0, 0};
     1236
    5371237    /** Code Point Ranges for Latin_Ext_C
    5381238    [2c60, 2c7f]**/
    539     const UnicodeSet latin_ext_c_Set
    540         {{{Empty, 355}, {Full, 1}, {Empty, 34460}},
    541          {}};
     1239
     1240
     1241    namespace {
     1242    const static UnicodeSet::run_t __latin_ext_c_Set_runs[] = {
     1243    {Empty, 355}, {Full, 1}, {Empty, 34460}};
     1244    const static UnicodeSet::bitquad_t * const __latin_ext_c_Set_quads = nullptr;
     1245    }
     1246
     1247    const static UnicodeSet latin_ext_c_Set{const_cast<UnicodeSet::run_t *>(__latin_ext_c_Set_runs), 3, 0, const_cast<UnicodeSet::bitquad_t *>(__latin_ext_c_Set_quads), 0, 0};
     1248
    5421249    /** Code Point Ranges for Coptic
    5431250    [2c80, 2cff]**/
    544     const UnicodeSet coptic_Set
    545         {{{Empty, 356}, {Full, 4}, {Empty, 34456}},
    546          {}};
     1251
     1252
     1253    namespace {
     1254    const static UnicodeSet::run_t __coptic_Set_runs[] = {
     1255    {Empty, 356}, {Full, 4}, {Empty, 34456}};
     1256    const static UnicodeSet::bitquad_t * const __coptic_Set_quads = nullptr;
     1257    }
     1258
     1259    const static UnicodeSet coptic_Set{const_cast<UnicodeSet::run_t *>(__coptic_Set_runs), 3, 0, const_cast<UnicodeSet::bitquad_t *>(__coptic_Set_quads), 0, 0};
     1260
    5471261    /** Code Point Ranges for Georgian_Sup
    5481262    [2d00, 2d2f]**/
    549     const UnicodeSet georgian_sup_Set
    550         {{{Empty, 360}, {Full, 1}, {Mixed, 1}, {Empty, 34454}},
    551          {0x0000ffff}};
     1263
     1264
     1265    namespace {
     1266    const static UnicodeSet::run_t __georgian_sup_Set_runs[] = {
     1267    {Empty, 360}, {Full, 1}, {Mixed, 1}, {Empty, 34454}};
     1268    const static UnicodeSet::bitquad_t  __georgian_sup_Set_quads[] = {
     1269    0x0000ffff};
     1270    }
     1271
     1272    const static UnicodeSet georgian_sup_Set{const_cast<UnicodeSet::run_t *>(__georgian_sup_Set_runs), 4, 0, const_cast<UnicodeSet::bitquad_t *>(__georgian_sup_Set_quads), 1, 0};
     1273
    5521274    /** Code Point Ranges for Tifinagh
    5531275    [2d30, 2d7f]**/
    554     const UnicodeSet tifinagh_Set
    555         {{{Empty, 361}, {Mixed, 1}, {Full, 2}, {Empty, 34452}},
    556          {0xffff0000}};
     1276
     1277
     1278    namespace {
     1279    const static UnicodeSet::run_t __tifinagh_Set_runs[] = {
     1280    {Empty, 361}, {Mixed, 1}, {Full, 2}, {Empty, 34452}};
     1281    const static UnicodeSet::bitquad_t  __tifinagh_Set_quads[] = {
     1282    0xffff0000};
     1283    }
     1284
     1285    const static UnicodeSet tifinagh_Set{const_cast<UnicodeSet::run_t *>(__tifinagh_Set_runs), 4, 0, const_cast<UnicodeSet::bitquad_t *>(__tifinagh_Set_quads), 1, 0};
     1286
    5571287    /** Code Point Ranges for Ethiopic_Ext
    5581288    [2d80, 2ddf]**/
    559     const UnicodeSet ethiopic_ext_Set
    560         {{{Empty, 364}, {Full, 3}, {Empty, 34449}},
    561          {}};
     1289
     1290
     1291    namespace {
     1292    const static UnicodeSet::run_t __ethiopic_ext_Set_runs[] = {
     1293    {Empty, 364}, {Full, 3}, {Empty, 34449}};
     1294    const static UnicodeSet::bitquad_t * const __ethiopic_ext_Set_quads = nullptr;
     1295    }
     1296
     1297    const static UnicodeSet ethiopic_ext_Set{const_cast<UnicodeSet::run_t *>(__ethiopic_ext_Set_runs), 3, 0, const_cast<UnicodeSet::bitquad_t *>(__ethiopic_ext_Set_quads), 0, 0};
     1298
    5621299    /** Code Point Ranges for Cyrillic_Ext_A
    5631300    [2de0, 2dff]**/
    564     const UnicodeSet cyrillic_ext_a_Set
    565         {{{Empty, 367}, {Full, 1}, {Empty, 34448}},
    566          {}};
     1301
     1302
     1303    namespace {
     1304    const static UnicodeSet::run_t __cyrillic_ext_a_Set_runs[] = {
     1305    {Empty, 367}, {Full, 1}, {Empty, 34448}};
     1306    const static UnicodeSet::bitquad_t * const __cyrillic_ext_a_Set_quads = nullptr;
     1307    }
     1308
     1309    const static UnicodeSet cyrillic_ext_a_Set{const_cast<UnicodeSet::run_t *>(__cyrillic_ext_a_Set_runs), 3, 0, const_cast<UnicodeSet::bitquad_t *>(__cyrillic_ext_a_Set_quads), 0, 0};
     1310
    5671311    /** Code Point Ranges for Sup_Punctuation
    5681312    [2e00, 2e7f]**/
    569     const UnicodeSet sup_punctuation_Set
    570         {{{Empty, 368}, {Full, 4}, {Empty, 34444}},
    571          {}};
     1313
     1314
     1315    namespace {
     1316    const static UnicodeSet::run_t __sup_punctuation_Set_runs[] = {
     1317    {Empty, 368}, {Full, 4}, {Empty, 34444}};
     1318    const static UnicodeSet::bitquad_t * const __sup_punctuation_Set_quads = nullptr;
     1319    }
     1320
     1321    const static UnicodeSet sup_punctuation_Set{const_cast<UnicodeSet::run_t *>(__sup_punctuation_Set_runs), 3, 0, const_cast<UnicodeSet::bitquad_t *>(__sup_punctuation_Set_quads), 0, 0};
     1322
    5721323    /** Code Point Ranges for CJK_Radicals_Sup
    5731324    [2e80, 2eff]**/
    574     const UnicodeSet cjk_radicals_sup_Set
    575         {{{Empty, 372}, {Full, 4}, {Empty, 34440}},
    576          {}};
     1325
     1326
     1327    namespace {
     1328    const static UnicodeSet::run_t __cjk_radicals_sup_Set_runs[] = {
     1329    {Empty, 372}, {Full, 4}, {Empty, 34440}};
     1330    const static UnicodeSet::bitquad_t * const __cjk_radicals_sup_Set_quads = nullptr;
     1331    }
     1332
     1333    const static UnicodeSet cjk_radicals_sup_Set{const_cast<UnicodeSet::run_t *>(__cjk_radicals_sup_Set_runs), 3, 0, const_cast<UnicodeSet::bitquad_t *>(__cjk_radicals_sup_Set_quads), 0, 0};
     1334
    5771335    /** Code Point Ranges for Kangxi
    5781336    [2f00, 2fdf]**/
    579     const UnicodeSet kangxi_Set
    580         {{{Empty, 376}, {Full, 7}, {Empty, 34433}},
    581          {}};
     1337
     1338
     1339    namespace {
     1340    const static UnicodeSet::run_t __kangxi_Set_runs[] = {
     1341    {Empty, 376}, {Full, 7}, {Empty, 34433}};
     1342    const static UnicodeSet::bitquad_t * const __kangxi_Set_quads = nullptr;
     1343    }
     1344
     1345    const static UnicodeSet kangxi_Set{const_cast<UnicodeSet::run_t *>(__kangxi_Set_runs), 3, 0, const_cast<UnicodeSet::bitquad_t *>(__kangxi_Set_quads), 0, 0};
     1346
    5821347    /** Code Point Ranges for IDC
    5831348    [2ff0, 2fff]**/
    584     const UnicodeSet idc_Set
    585         {{{Empty, 383}, {Mixed, 1}, {Empty, 34432}},
    586          {0xffff0000}};
     1349
     1350
     1351    namespace {
     1352    const static UnicodeSet::run_t __idc_Set_runs[] = {
     1353    {Empty, 383}, {Mixed, 1}, {Empty, 34432}};
     1354    const static UnicodeSet::bitquad_t  __idc_Set_quads[] = {
     1355    0xffff0000};
     1356    }
     1357
     1358    const static UnicodeSet idc_Set{const_cast<UnicodeSet::run_t *>(__idc_Set_runs), 3, 0, const_cast<UnicodeSet::bitquad_t *>(__idc_Set_quads), 1, 0};
     1359
    5871360    /** Code Point Ranges for CJK_Symbols
    5881361    [3000, 303f]**/
    589     const UnicodeSet cjk_symbols_Set
    590         {{{Empty, 384}, {Full, 2}, {Empty, 34430}},
    591          {}};
     1362
     1363
     1364    namespace {
     1365    const static UnicodeSet::run_t __cjk_symbols_Set_runs[] = {
     1366    {Empty, 384}, {Full, 2}, {Empty, 34430}};
     1367    const static UnicodeSet::bitquad_t * const __cjk_symbols_Set_quads = nullptr;
     1368    }
     1369
     1370    const static UnicodeSet cjk_symbols_Set{const_cast<UnicodeSet::run_t *>(__cjk_symbols_Set_runs), 3, 0, const_cast<UnicodeSet::bitquad_t *>(__cjk_symbols_Set_quads), 0, 0};
     1371
    5921372    /** Code Point Ranges for Hiragana
    5931373    [3040, 309f]**/
    594     const UnicodeSet hiragana_Set
    595         {{{Empty, 386}, {Full, 3}, {Empty, 34427}},
    596          {}};
     1374
     1375
     1376    namespace {
     1377    const static UnicodeSet::run_t __hiragana_Set_runs[] = {
     1378    {Empty, 386}, {Full, 3}, {Empty, 34427}};
     1379    const static UnicodeSet::bitquad_t * const __hiragana_Set_quads = nullptr;
     1380    }
     1381
     1382    const static UnicodeSet hiragana_Set{const_cast<UnicodeSet::run_t *>(__hiragana_Set_runs), 3, 0, const_cast<UnicodeSet::bitquad_t *>(__hiragana_Set_quads), 0, 0};
     1383
    5971384    /** Code Point Ranges for Katakana
    5981385    [30a0, 30ff]**/
    599     const UnicodeSet katakana_Set
    600         {{{Empty, 389}, {Full, 3}, {Empty, 34424}},
    601          {}};
     1386
     1387
     1388    namespace {
     1389    const static UnicodeSet::run_t __katakana_Set_runs[] = {
     1390    {Empty, 389}, {Full, 3}, {Empty, 34424}};
     1391    const static UnicodeSet::bitquad_t * const __katakana_Set_quads = nullptr;
     1392    }
     1393
     1394    const static UnicodeSet katakana_Set{const_cast<UnicodeSet::run_t *>(__katakana_Set_runs), 3, 0, const_cast<UnicodeSet::bitquad_t *>(__katakana_Set_quads), 0, 0};
     1395
    6021396    /** Code Point Ranges for Bopomofo
    6031397    [3100, 312f]**/
    604     const UnicodeSet bopomofo_Set
    605         {{{Empty, 392}, {Full, 1}, {Mixed, 1}, {Empty, 34422}},
    606          {0x0000ffff}};
     1398
     1399
     1400    namespace {
     1401    const static UnicodeSet::run_t __bopomofo_Set_runs[] = {
     1402    {Empty, 392}, {Full, 1}, {Mixed, 1}, {Empty, 34422}};
     1403    const static UnicodeSet::bitquad_t  __bopomofo_Set_quads[] = {
     1404    0x0000ffff};
     1405    }
     1406
     1407    const static UnicodeSet bopomofo_Set{const_cast<UnicodeSet::run_t *>(__bopomofo_Set_runs), 4, 0, const_cast<UnicodeSet::bitquad_t *>(__bopomofo_Set_quads), 1, 0};
     1408
    6071409    /** Code Point Ranges for Compat_Jamo
    6081410    [3130, 318f]**/
    609     const UnicodeSet compat_jamo_Set
    610         {{{Empty, 393}, {Mixed, 1}, {Full, 2}, {Mixed, 1}, {Empty, 34419}},
    611          {0xffff0000, 0x0000ffff}};
     1411
     1412
     1413    namespace {
     1414    const static UnicodeSet::run_t __compat_jamo_Set_runs[] = {
     1415    {Empty, 393}, {Mixed, 1}, {Full, 2}, {Mixed, 1}, {Empty, 34419}};
     1416    const static UnicodeSet::bitquad_t  __compat_jamo_Set_quads[] = {
     1417    0xffff0000, 0x0000ffff};
     1418    }
     1419
     1420    const static UnicodeSet compat_jamo_Set{const_cast<UnicodeSet::run_t *>(__compat_jamo_Set_runs), 5, 0, const_cast<UnicodeSet::bitquad_t *>(__compat_jamo_Set_quads), 2, 0};
     1421
    6121422    /** Code Point Ranges for Kanbun
    6131423    [3190, 319f]**/
    614     const UnicodeSet kanbun_Set
    615         {{{Empty, 396}, {Mixed, 1}, {Empty, 34419}},
    616          {0xffff0000}};
     1424
     1425
     1426    namespace {
     1427    const static UnicodeSet::run_t __kanbun_Set_runs[] = {
     1428    {Empty, 396}, {Mixed, 1}, {Empty, 34419}};
     1429    const static UnicodeSet::bitquad_t  __kanbun_Set_quads[] = {
     1430    0xffff0000};
     1431    }
     1432
     1433    const static UnicodeSet kanbun_Set{const_cast<UnicodeSet::run_t *>(__kanbun_Set_runs), 3, 0, const_cast<UnicodeSet::bitquad_t *>(__kanbun_Set_quads), 1, 0};
     1434
    6171435    /** Code Point Ranges for Bopomofo_Ext
    6181436    [31a0, 31bf]**/
    619     const UnicodeSet bopomofo_ext_Set
    620         {{{Empty, 397}, {Full, 1}, {Empty, 34418}},
    621          {}};
     1437
     1438
     1439    namespace {
     1440    const static UnicodeSet::run_t __bopomofo_ext_Set_runs[] = {
     1441    {Empty, 397}, {Full, 1}, {Empty, 34418}};
     1442    const static UnicodeSet::bitquad_t * const __bopomofo_ext_Set_quads = nullptr;
     1443    }
     1444
     1445    const static UnicodeSet bopomofo_ext_Set{const_cast<UnicodeSet::run_t *>(__bopomofo_ext_Set_runs), 3, 0, const_cast<UnicodeSet::bitquad_t *>(__bopomofo_ext_Set_quads), 0, 0};
     1446
    6221447    /** Code Point Ranges for CJK_Strokes
    6231448    [31c0, 31ef]**/
    624     const UnicodeSet cjk_strokes_Set
    625         {{{Empty, 398}, {Full, 1}, {Mixed, 1}, {Empty, 34416}},
    626          {0x0000ffff}};
     1449
     1450
     1451    namespace {
     1452    const static UnicodeSet::run_t __cjk_strokes_Set_runs[] = {
     1453    {Empty, 398}, {Full, 1}, {Mixed, 1}, {Empty, 34416}};
     1454    const static UnicodeSet::bitquad_t  __cjk_strokes_Set_quads[] = {
     1455    0x0000ffff};
     1456    }
     1457
     1458    const static UnicodeSet cjk_strokes_Set{const_cast<UnicodeSet::run_t *>(__cjk_strokes_Set_runs), 4, 0, const_cast<UnicodeSet::bitquad_t *>(__cjk_strokes_Set_quads), 1, 0};
     1459
    6271460    /** Code Point Ranges for Katakana_Ext
    6281461    [31f0, 31ff]**/
    629     const UnicodeSet katakana_ext_Set
    630         {{{Empty, 399}, {Mixed, 1}, {Empty, 34416}},
    631          {0xffff0000}};
     1462
     1463
     1464    namespace {
     1465    const static UnicodeSet::run_t __katakana_ext_Set_runs[] = {
     1466    {Empty, 399}, {Mixed, 1}, {Empty, 34416}};
     1467    const static UnicodeSet::bitquad_t  __katakana_ext_Set_quads[] = {
     1468    0xffff0000};
     1469    }
     1470
     1471    const static UnicodeSet katakana_ext_Set{const_cast<UnicodeSet::run_t *>(__katakana_ext_Set_runs), 3, 0, const_cast<UnicodeSet::bitquad_t *>(__katakana_ext_Set_quads), 1, 0};
     1472
    6321473    /** Code Point Ranges for Enclosed_CJK
    6331474    [3200, 32ff]**/
    634     const UnicodeSet enclosed_cjk_Set
    635         {{{Empty, 400}, {Full, 8}, {Empty, 34408}},
    636          {}};
     1475
     1476
     1477    namespace {
     1478    const static UnicodeSet::run_t __enclosed_cjk_Set_runs[] = {
     1479    {Empty, 400}, {Full, 8}, {Empty, 34408}};
     1480    const static UnicodeSet::bitquad_t * const __enclosed_cjk_Set_quads = nullptr;
     1481    }
     1482
     1483    const static UnicodeSet enclosed_cjk_Set{const_cast<UnicodeSet::run_t *>(__enclosed_cjk_Set_runs), 3, 0, const_cast<UnicodeSet::bitquad_t *>(__enclosed_cjk_Set_quads), 0, 0};
     1484
    6371485    /** Code Point Ranges for CJK_Compat
    6381486    [3300, 33ff]**/
    639     const UnicodeSet cjk_compat_Set
    640         {{{Empty, 408}, {Full, 8}, {Empty, 34400}},
    641          {}};
     1487
     1488
     1489    namespace {
     1490    const static UnicodeSet::run_t __cjk_compat_Set_runs[] = {
     1491    {Empty, 408}, {Full, 8}, {Empty, 34400}};
     1492    const static UnicodeSet::bitquad_t * const __cjk_compat_Set_quads = nullptr;
     1493    }
     1494
     1495    const static UnicodeSet cjk_compat_Set{const_cast<UnicodeSet::run_t *>(__cjk_compat_Set_runs), 3, 0, const_cast<UnicodeSet::bitquad_t *>(__cjk_compat_Set_quads), 0, 0};
     1496
    6421497    /** Code Point Ranges for CJK_Ext_A
    6431498    [3400, 4dbf]**/
    644     const UnicodeSet cjk_ext_a_Set
    645         {{{Empty, 416}, {Full, 206}, {Empty, 34194}},
    646          {}};
     1499
     1500
     1501    namespace {
     1502    const static UnicodeSet::run_t __cjk_ext_a_Set_runs[] = {
     1503    {Empty, 416}, {Full, 206}, {Empty, 34194}};
     1504    const static UnicodeSet::bitquad_t * const __cjk_ext_a_Set_quads = nullptr;
     1505    }
     1506
     1507    const static UnicodeSet cjk_ext_a_Set{const_cast<UnicodeSet::run_t *>(__cjk_ext_a_Set_runs), 3, 0, const_cast<UnicodeSet::bitquad_t *>(__cjk_ext_a_Set_quads), 0, 0};
     1508
    6471509    /** Code Point Ranges for Yijing
    6481510    [4dc0, 4dff]**/
    649     const UnicodeSet yijing_Set
    650         {{{Empty, 622}, {Full, 2}, {Empty, 34192}},
    651          {}};
     1511
     1512
     1513    namespace {
     1514    const static UnicodeSet::run_t __yijing_Set_runs[] = {
     1515    {Empty, 622}, {Full, 2}, {Empty, 34192}};
     1516    const static UnicodeSet::bitquad_t * const __yijing_Set_quads = nullptr;
     1517    }
     1518
     1519    const static UnicodeSet yijing_Set{const_cast<UnicodeSet::run_t *>(__yijing_Set_runs), 3, 0, const_cast<UnicodeSet::bitquad_t *>(__yijing_Set_quads), 0, 0};
     1520
    6521521    /** Code Point Ranges for CJK
    6531522    [4e00, 9fff]**/
    654     const UnicodeSet cjk_Set
    655         {{{Empty, 624}, {Full, 656}, {Empty, 33536}},
    656          {}};
     1523
     1524
     1525    namespace {
     1526    const static UnicodeSet::run_t __cjk_Set_runs[] = {
     1527    {Empty, 624}, {Full, 656}, {Empty, 33536}};
     1528    const static UnicodeSet::bitquad_t * const __cjk_Set_quads = nullptr;
     1529    }
     1530
     1531    const static UnicodeSet cjk_Set{const_cast<UnicodeSet::run_t *>(__cjk_Set_runs), 3, 0, const_cast<UnicodeSet::bitquad_t *>(__cjk_Set_quads), 0, 0};
     1532
    6571533    /** Code Point Ranges for Yi_Syllables
    6581534    [a000, a48f]**/
    659     const UnicodeSet yi_syllables_Set
    660         {{{Empty, 1280}, {Full, 36}, {Mixed, 1}, {Empty, 33499}},
    661          {0x0000ffff}};
     1535
     1536
     1537    namespace {
     1538    const static UnicodeSet::run_t __yi_syllables_Set_runs[] = {
     1539    {Empty, 1280}, {Full, 36}, {Mixed, 1}, {Empty, 33499}};
     1540    const static UnicodeSet::bitquad_t  __yi_syllables_Set_quads[] = {
     1541    0x0000ffff};
     1542    }
     1543
     1544    const static UnicodeSet yi_syllables_Set{const_cast<UnicodeSet::run_t *>(__yi_syllables_Set_runs), 4, 0, const_cast<UnicodeSet::bitquad_t *>(__yi_syllables_Set_quads), 1, 0};
     1545
    6621546    /** Code Point Ranges for Yi_Radicals
    6631547    [a490, a4cf]**/
    664     const UnicodeSet yi_radicals_Set
    665         {{{Empty, 1316}, {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Empty, 33497}},
    666          {0xffff0000, 0x0000ffff}};
     1548
     1549
     1550    namespace {
     1551    const static UnicodeSet::run_t __yi_radicals_Set_runs[] = {
     1552    {Empty, 1316}, {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Empty, 33497}};
     1553    const static UnicodeSet::bitquad_t  __yi_radicals_Set_quads[] = {
     1554    0xffff0000, 0x0000ffff};
     1555    }
     1556
     1557    const static UnicodeSet yi_radicals_Set{const_cast<UnicodeSet::run_t *>(__yi_radicals_Set_runs), 5, 0, const_cast<UnicodeSet::bitquad_t *>(__yi_radicals_Set_quads), 2, 0};
     1558
    6671559    /** Code Point Ranges for Lisu
    6681560    [a4d0, a4ff]**/
    669     const UnicodeSet lisu_Set
    670         {{{Empty, 1318}, {Mixed, 1}, {Full, 1}, {Empty, 33496}},
    671          {0xffff0000}};
     1561
     1562
     1563    namespace {
     1564    const static UnicodeSet::run_t __lisu_Set_runs[] = {
     1565    {Empty, 1318}, {Mixed, 1}, {Full, 1}, {Empty, 33496}};
     1566    const static UnicodeSet::bitquad_t  __lisu_Set_quads[] = {
     1567    0xffff0000};
     1568    }
     1569
     1570    const static UnicodeSet lisu_Set{const_cast<UnicodeSet::run_t *>(__lisu_Set_runs), 4, 0, const_cast<UnicodeSet::bitquad_t *>(__lisu_Set_quads), 1, 0};
     1571
    6721572    /** Code Point Ranges for Vai
    6731573    [a500, a63f]**/
    674     const UnicodeSet vai_Set
    675         {{{Empty, 1320}, {Full, 10}, {Empty, 33486}},
    676          {}};
     1574
     1575
     1576    namespace {
     1577    const static UnicodeSet::run_t __vai_Set_runs[] = {
     1578    {Empty, 1320}, {Full, 10}, {Empty, 33486}};
     1579    const static UnicodeSet::bitquad_t * const __vai_Set_quads = nullptr;
     1580    }
     1581
     1582    const static UnicodeSet vai_Set{const_cast<UnicodeSet::run_t *>(__vai_Set_runs), 3, 0, const_cast<UnicodeSet::bitquad_t *>(__vai_Set_quads), 0, 0};
     1583
    6771584    /** Code Point Ranges for Cyrillic_Ext_B
    6781585    [a640, a69f]**/
    679     const UnicodeSet cyrillic_ext_b_Set
    680         {{{Empty, 1330}, {Full, 3}, {Empty, 33483}},
    681          {}};
     1586
     1587
     1588    namespace {
     1589    const static UnicodeSet::run_t __cyrillic_ext_b_Set_runs[] = {
     1590    {Empty, 1330}, {Full, 3}, {Empty, 33483}};
     1591    const static UnicodeSet::bitquad_t * const __cyrillic_ext_b_Set_quads = nullptr;
     1592    }
     1593
     1594    const static UnicodeSet cyrillic_ext_b_Set{const_cast<UnicodeSet::run_t *>(__cyrillic_ext_b_Set_runs), 3, 0, const_cast<UnicodeSet::bitquad_t *>(__cyrillic_ext_b_Set_quads), 0, 0};
     1595
    6821596    /** Code Point Ranges for Bamum
    6831597    [a6a0, a6ff]**/
    684     const UnicodeSet bamum_Set
    685         {{{Empty, 1333}, {Full, 3}, {Empty, 33480}},
    686          {}};
     1598
     1599
     1600    namespace {
     1601    const static UnicodeSet::run_t __bamum_Set_runs[] = {
     1602    {Empty, 1333}, {Full, 3}, {Empty, 33480}};
     1603    const static UnicodeSet::bitquad_t * const __bamum_Set_quads = nullptr;
     1604    }
     1605
     1606    const static UnicodeSet bamum_Set{const_cast<UnicodeSet::run_t *>(__bamum_Set_runs), 3, 0, const_cast<UnicodeSet::bitquad_t *>(__bamum_Set_quads), 0, 0};
     1607
    6871608    /** Code Point Ranges for Modifier_Tone_Letters
    6881609    [a700, a71f]**/
    689     const UnicodeSet modifier_tone_letters_Set
    690         {{{Empty, 1336}, {Full, 1}, {Empty, 33479}},
    691          {}};
     1610
     1611
     1612    namespace {
     1613    const static UnicodeSet::run_t __modifier_tone_letters_Set_runs[] = {
     1614    {Empty, 1336}, {Full, 1}, {Empty, 33479}};
     1615    const static UnicodeSet::bitquad_t * const __modifier_tone_letters_Set_quads = nullptr;
     1616    }
     1617
     1618    const static UnicodeSet modifier_tone_letters_Set{const_cast<UnicodeSet::run_t *>(__modifier_tone_letters_Set_runs), 3, 0, const_cast<UnicodeSet::bitquad_t *>(__modifier_tone_letters_Set_quads), 0, 0};
     1619
    6921620    /** Code Point Ranges for Latin_Ext_D
    6931621    [a720, a7ff]**/
    694     const UnicodeSet latin_ext_d_Set
    695         {{{Empty, 1337}, {Full, 7}, {Empty, 33472}},
    696          {}};
     1622
     1623
     1624    namespace {
     1625    const static UnicodeSet::run_t __latin_ext_d_Set_runs[] = {
     1626    {Empty, 1337}, {Full, 7}, {Empty, 33472}};
     1627    const static UnicodeSet::bitquad_t * const __latin_ext_d_Set_quads = nullptr;
     1628    }
     1629
     1630    const static UnicodeSet latin_ext_d_Set{const_cast<UnicodeSet::run_t *>(__latin_ext_d_Set_runs), 3, 0, const_cast<UnicodeSet::bitquad_t *>(__latin_ext_d_Set_quads), 0, 0};
     1631
    6971632    /** Code Point Ranges for Syloti_Nagri
    6981633    [a800, a82f]**/
    699     const UnicodeSet syloti_nagri_Set
    700         {{{Empty, 1344}, {Full, 1}, {Mixed, 1}, {Empty, 33470}},
    701          {0x0000ffff}};
     1634
     1635
     1636    namespace {
     1637    const static UnicodeSet::run_t __syloti_nagri_Set_runs[] = {
     1638    {Empty, 1344}, {Full, 1}, {Mixed, 1}, {Empty, 33470}};
     1639    const static UnicodeSet::bitquad_t  __syloti_nagri_Set_quads[] = {
     1640    0x0000ffff};
     1641    }
     1642
     1643    const static UnicodeSet syloti_nagri_Set{const_cast<UnicodeSet::run_t *>(__syloti_nagri_Set_runs), 4, 0, const_cast<UnicodeSet::bitquad_t *>(__syloti_nagri_Set_quads), 1, 0};
     1644
    7021645    /** Code Point Ranges for Indic_Number_Forms
    7031646    [a830, a83f]**/
    704     const UnicodeSet indic_number_forms_Set
    705         {{{Empty, 1345}, {Mixed, 1}, {Empty, 33470}},
    706          {0xffff0000}};
     1647
     1648
     1649    namespace {
     1650    const static UnicodeSet::run_t __indic_number_forms_Set_runs[] = {
     1651    {Empty, 1345}, {Mixed, 1}, {Empty, 33470}};
     1652    const static UnicodeSet::bitquad_t  __indic_number_forms_Set_quads[] = {
     1653    0xffff0000};
     1654    }
     1655
     1656    const static UnicodeSet indic_number_forms_Set{const_cast<UnicodeSet::run_t *>(__indic_number_forms_Set_runs), 3, 0, const_cast<UnicodeSet::bitquad_t *>(__indic_number_forms_Set_quads), 1, 0};
     1657
    7071658    /** Code Point Ranges for Phags_Pa
    7081659    [a840, a87f]**/
    709     const UnicodeSet phags_pa_Set
    710         {{{Empty, 1346}, {Full, 2}, {Empty, 33468}},
    711          {}};
     1660
     1661
     1662    namespace {
     1663    const static UnicodeSet::run_t __phags_pa_Set_runs[] = {
     1664    {Empty, 1346}, {Full, 2}, {Empty, 33468}};
     1665    const static UnicodeSet::bitquad_t * const __phags_pa_Set_quads = nullptr;
     1666    }
     1667
     1668    const static UnicodeSet phags_pa_Set{const_cast<UnicodeSet::run_t *>(__phags_pa_Set_runs), 3, 0, const_cast<UnicodeSet::bitquad_t *>(__phags_pa_Set_quads), 0, 0};
     1669
    7121670    /** Code Point Ranges for Saurashtra
    7131671    [a880, a8df]**/
    714     const UnicodeSet saurashtra_Set
    715         {{{Empty, 1348}, {Full, 3}, {Empty, 33465}},
    716          {}};
     1672
     1673
     1674    namespace {
     1675    const static UnicodeSet::run_t __saurashtra_Set_runs[] = {
     1676    {Empty, 1348}, {Full, 3}, {Empty, 33465}};
     1677    const static UnicodeSet::bitquad_t * const __saurashtra_Set_quads = nullptr;
     1678    }
     1679
     1680    const static UnicodeSet saurashtra_Set{const_cast<UnicodeSet::run_t *>(__saurashtra_Set_runs), 3, 0, const_cast<UnicodeSet::bitquad_t *>(__saurashtra_Set_quads), 0, 0};
     1681
    7171682    /** Code Point Ranges for Devanagari_Ext
    7181683    [a8e0, a8ff]**/
    719     const UnicodeSet devanagari_ext_Set
    720         {{{Empty, 1351}, {Full, 1}, {Empty, 33464}},
    721          {}};
     1684
     1685
     1686    namespace {
     1687    const static UnicodeSet::run_t __devanagari_ext_Set_runs[] = {
     1688    {Empty, 1351}, {Full, 1}, {Empty, 33464}};
     1689    const static UnicodeSet::bitquad_t * const __devanagari_ext_Set_quads = nullptr;
     1690    }
     1691
     1692    const static UnicodeSet devanagari_ext_Set{const_cast<UnicodeSet::run_t *>(__devanagari_ext_Set_runs), 3, 0, const_cast<UnicodeSet::bitquad_t *>(__devanagari_ext_Set_quads), 0, 0};
     1693
    7221694    /** Code Point Ranges for Kayah_Li
    7231695    [a900, a92f]**/
    724     const UnicodeSet kayah_li_Set
    725         {{{Empty, 1352}, {Full, 1}, {Mixed, 1}, {Empty, 33462}},
    726          {0x0000ffff}};
     1696
     1697
     1698    namespace {
     1699    const static UnicodeSet::run_t __kayah_li_Set_runs[] = {
     1700    {Empty, 1352}, {Full, 1}, {Mixed, 1}, {Empty, 33462}};
     1701    const static UnicodeSet::bitquad_t  __kayah_li_Set_quads[] = {
     1702    0x0000ffff};
     1703    }
     1704
     1705    const static UnicodeSet kayah_li_Set{const_cast<UnicodeSet::run_t *>(__kayah_li_Set_runs), 4, 0, const_cast<UnicodeSet::bitquad_t *>(__kayah_li_Set_quads), 1, 0};
     1706
    7271707    /** Code Point Ranges for Rejang
    7281708    [a930, a95f]**/
    729     const UnicodeSet rejang_Set
    730         {{{Empty, 1353}, {Mixed, 1}, {Full, 1}, {Empty, 33461}},
    731          {0xffff0000}};
     1709
     1710
     1711    namespace {
     1712    const static UnicodeSet::run_t __rejang_Set_runs[] = {
     1713    {Empty, 1353}, {Mixed, 1}, {Full, 1}, {Empty, 33461}};
     1714    const static UnicodeSet::bitquad_t  __rejang_Set_quads[] = {
     1715    0xffff0000};
     1716    }
     1717
     1718    const static UnicodeSet rejang_Set{const_cast<UnicodeSet::run_t *>(__rejang_Set_runs), 4, 0, const_cast<UnicodeSet::bitquad_t *>(__rejang_Set_quads), 1, 0};
     1719
    7321720    /** Code Point Ranges for Jamo_Ext_A
    7331721    [a960, a97f]**/
    734     const UnicodeSet jamo_ext_a_Set
    735         {{{Empty, 1355}, {Full, 1}, {Empty, 33460}},
    736          {}};
     1722
     1723
     1724    namespace {
     1725    const static UnicodeSet::run_t __jamo_ext_a_Set_runs[] = {
     1726    {Empty, 1355}, {Full, 1}, {Empty, 33460}};
     1727    const static UnicodeSet::bitquad_t * const __jamo_ext_a_Set_quads = nullptr;
     1728    }
     1729
     1730    const static UnicodeSet jamo_ext_a_Set{const_cast<UnicodeSet::run_t *>(__jamo_ext_a_Set_runs), 3, 0, const_cast<UnicodeSet::bitquad_t *>(__jamo_ext_a_Set_quads), 0, 0};
     1731
    7371732    /** Code Point Ranges for Javanese
    7381733    [a980, a9df]**/
    739     const UnicodeSet javanese_Set
    740         {{{Empty, 1356}, {Full, 3}, {Empty, 33457}},
    741          {}};
     1734
     1735
     1736    namespace {
     1737    const static UnicodeSet::run_t __javanese_Set_runs[] = {
     1738    {Empty, 1356}, {Full, 3}, {Empty, 33457}};
     1739    const static UnicodeSet::bitquad_t * const __javanese_Set_quads = nullptr;
     1740    }
     1741
     1742    const static UnicodeSet javanese_Set{const_cast<UnicodeSet::run_t *>(__javanese_Set_runs), 3, 0, const_cast<UnicodeSet::bitquad_t *>(__javanese_Set_quads), 0, 0};
     1743
    7421744    /** Code Point Ranges for Myanmar_Ext_B
    7431745    [a9e0, a9ff]**/
    744     const UnicodeSet myanmar_ext_b_Set
    745         {{{Empty, 1359}, {Full, 1}, {Empty, 33456}},
    746          {}};
     1746
     1747
     1748    namespace {
     1749    const static UnicodeSet::run_t __myanmar_ext_b_Set_runs[] = {
     1750    {Empty, 1359}, {Full, 1}, {Empty, 33456}};
     1751    const static UnicodeSet::bitquad_t * const __myanmar_ext_b_Set_quads = nullptr;
     1752    }
     1753
     1754    const static UnicodeSet myanmar_ext_b_Set{const_cast<UnicodeSet::run_t *>(__myanmar_ext_b_Set_runs), 3, 0, const_cast<UnicodeSet::bitquad_t *>(__myanmar_ext_b_Set_quads), 0, 0};
     1755
    7471756    /** Code Point Ranges for Cham
    7481757    [aa00, aa5f]**/
    749     const UnicodeSet cham_Set
    750         {{{Empty, 1360}, {Full, 3}, {Empty, 33453}},
    751          {}};
     1758
     1759
     1760    namespace {
     1761    const static UnicodeSet::run_t __cham_Set_runs[] = {
     1762    {Empty, 1360}, {Full, 3}, {Empty, 33453}};
     1763    const static UnicodeSet::bitquad_t * const __cham_Set_quads = nullptr;
     1764    }
     1765
     1766    const static UnicodeSet cham_Set{const_cast<UnicodeSet::run_t *>(__cham_Set_runs), 3, 0, const_cast<UnicodeSet::bitquad_t *>(__cham_Set_quads), 0, 0};
     1767
    7521768    /** Code Point Ranges for Myanmar_Ext_A
    7531769    [aa60, aa7f]**/
    754     const UnicodeSet myanmar_ext_a_Set
    755         {{{Empty, 1363}, {Full, 1}, {Empty, 33452}},
    756          {}};
     1770
     1771
     1772    namespace {
     1773    const static UnicodeSet::run_t __myanmar_ext_a_Set_runs[] = {
     1774    {Empty, 1363}, {Full, 1}, {Empty, 33452}};
     1775    const static UnicodeSet::bitquad_t * const __myanmar_ext_a_Set_quads = nullptr;
     1776    }
     1777
     1778    const static UnicodeSet myanmar_ext_a_Set{const_cast<UnicodeSet::run_t *>(__myanmar_ext_a_Set_runs), 3, 0, const_cast<UnicodeSet::bitquad_t *>(__myanmar_ext_a_Set_quads), 0, 0};
     1779
    7571780    /** Code Point Ranges for Tai_Viet
    7581781    [aa80, aadf]**/
    759     const UnicodeSet tai_viet_Set
    760         {{{Empty, 1364}, {Full, 3}, {Empty, 33449}},
    761          {}};
     1782
     1783
     1784    namespace {
     1785    const static UnicodeSet::run_t __tai_viet_Set_runs[] = {
     1786    {Empty, 1364}, {Full, 3}, {Empty, 33449}};
     1787    const static UnicodeSet::bitquad_t * const __tai_viet_Set_quads = nullptr;
     1788    }
     1789
     1790    const static UnicodeSet tai_viet_Set{const_cast<UnicodeSet::run_t *>(__tai_viet_Set_runs), 3, 0, const_cast<UnicodeSet::bitquad_t *>(__tai_viet_Set_quads), 0, 0};
     1791
    7621792    /** Code Point Ranges for Meetei_Mayek_Ext
    7631793    [aae0, aaff]**/
    764     const UnicodeSet meetei_mayek_ext_Set
    765         {{{Empty, 1367}, {Full, 1}, {Empty, 33448}},
    766          {}};
     1794
     1795
     1796    namespace {
     1797    const static UnicodeSet::run_t __meetei_mayek_ext_Set_runs[] = {
     1798    {Empty, 1367}, {Full, 1}, {Empty, 33448}};
     1799    const static UnicodeSet::bitquad_t * const __meetei_mayek_ext_Set_quads = nullptr;
     1800    }
     1801
     1802    const static UnicodeSet meetei_mayek_ext_Set{const_cast<UnicodeSet::run_t *>(__meetei_mayek_ext_Set_runs), 3, 0, const_cast<UnicodeSet::bitquad_t *>(__meetei_mayek_ext_Set_quads), 0, 0};
     1803
    7671804    /** Code Point Ranges for Ethiopic_Ext_A
    7681805    [ab00, ab2f]**/
    769     const UnicodeSet ethiopic_ext_a_Set
    770         {{{Empty, 1368}, {Full, 1}, {Mixed, 1}, {Empty, 33446}},
    771          {0x0000ffff}};
     1806
     1807
     1808    namespace {
     1809    const static UnicodeSet::run_t __ethiopic_ext_a_Set_runs[] = {
     1810    {Empty, 1368}, {Full, 1}, {Mixed, 1}, {Empty, 33446}};
     1811    const static UnicodeSet::bitquad_t  __ethiopic_ext_a_Set_quads[] = {
     1812    0x0000ffff};
     1813    }
     1814
     1815    const static UnicodeSet ethiopic_ext_a_Set{const_cast<UnicodeSet::run_t *>(__ethiopic_ext_a_Set_runs), 4, 0, const_cast<UnicodeSet::bitquad_t *>(__ethiopic_ext_a_Set_quads), 1, 0};
     1816
    7721817    /** Code Point Ranges for Latin_Ext_E
    7731818    [ab30, ab6f]**/
    774     const UnicodeSet latin_ext_e_Set
    775         {{{Empty, 1369}, {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Empty, 33444}},
    776          {0xffff0000, 0x0000ffff}};
     1819
     1820
     1821    namespace {
     1822    const static UnicodeSet::run_t __latin_ext_e_Set_runs[] = {
     1823    {Empty, 1369}, {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Empty, 33444}};
     1824    const static UnicodeSet::bitquad_t  __latin_ext_e_Set_quads[] = {
     1825    0xffff0000, 0x0000ffff};
     1826    }
     1827
     1828    const static UnicodeSet latin_ext_e_Set{const_cast<UnicodeSet::run_t *>(__latin_ext_e_Set_runs), 5, 0, const_cast<UnicodeSet::bitquad_t *>(__latin_ext_e_Set_quads), 2, 0};
     1829
    7771830    /** Code Point Ranges for Cherokee_Sup
    7781831    [ab70, abbf]**/
    779     const UnicodeSet cherokee_sup_Set
    780         {{{Empty, 1371}, {Mixed, 1}, {Full, 2}, {Empty, 33442}},
    781          {0xffff0000}};
     1832
     1833
     1834    namespace {
     1835    const static UnicodeSet::run_t __cherokee_sup_Set_runs[] = {
     1836    {Empty, 1371}, {Mixed, 1}, {Full, 2}, {Empty, 33442}};
     1837    const static UnicodeSet::bitquad_t  __cherokee_sup_Set_quads[] = {
     1838    0xffff0000};
     1839    }
     1840
     1841    const static UnicodeSet cherokee_sup_Set{const_cast<UnicodeSet::run_t *>(__cherokee_sup_Set_runs), 4, 0, const_cast<UnicodeSet::bitquad_t *>(__cherokee_sup_Set_quads), 1, 0};
     1842
    7821843    /** Code Point Ranges for Meetei_Mayek
    7831844    [abc0, abff]**/
    784     const UnicodeSet meetei_mayek_Set
    785         {{{Empty, 1374}, {Full, 2}, {Empty, 33440}},
    786          {}};
     1845
     1846
     1847    namespace {
     1848    const static UnicodeSet::run_t __meetei_mayek_Set_runs[] = {
     1849    {Empty, 1374}, {Full, 2}, {Empty, 33440}};
     1850    const static UnicodeSet::bitquad_t * const __meetei_mayek_Set_quads = nullptr;
     1851    }
     1852
     1853    const static UnicodeSet meetei_mayek_Set{const_cast<UnicodeSet::run_t *>(__meetei_mayek_Set_runs), 3, 0, const_cast<UnicodeSet::bitquad_t *>(__meetei_mayek_Set_quads), 0, 0};
     1854
    7871855    /** Code Point Ranges for Hangul
    7881856    [ac00, d7af]**/
    789     const UnicodeSet hangul_Set
    790         {{{Empty, 1376}, {Full, 349}, {Mixed, 1}, {Empty, 33090}},
    791          {0x0000ffff}};
     1857
     1858
     1859    namespace {
     1860    const static UnicodeSet::run_t __hangul_Set_runs[] = {
     1861    {Empty, 1376}, {Full, 349}, {Mixed, 1}, {Empty, 33090}};
     1862    const static UnicodeSet::bitquad_t  __hangul_Set_quads[] = {
     1863    0x0000ffff};
     1864    }
     1865
     1866    const static UnicodeSet hangul_Set{const_cast<UnicodeSet::run_t *>(__hangul_Set_runs), 4, 0, const_cast<UnicodeSet::bitquad_t *>(__hangul_Set_quads), 1, 0};
     1867
    7921868    /** Code Point Ranges for Jamo_Ext_B
    7931869    [d7b0, d7ff]**/
    794     const UnicodeSet jamo_ext_b_Set
    795         {{{Empty, 1725}, {Mixed, 1}, {Full, 2}, {Empty, 33088}},
    796          {0xffff0000}};
     1870
     1871
     1872    namespace {
     1873    const static UnicodeSet::run_t __jamo_ext_b_Set_runs[] = {
     1874    {Empty, 1725}, {Mixed, 1}, {Full, 2}, {Empty, 33088}};
     1875    const static UnicodeSet::bitquad_t  __jamo_ext_b_Set_quads[] = {
     1876    0xffff0000};
     1877    }
     1878
     1879    const static UnicodeSet jamo_ext_b_Set{const_cast<UnicodeSet::run_t *>(__jamo_ext_b_Set_runs), 4, 0, const_cast<UnicodeSet::bitquad_t *>(__jamo_ext_b_Set_quads), 1, 0};
     1880
    7971881    /** Code Point Ranges for High_Surrogates
    7981882    [d800, db7f]**/
    799     const UnicodeSet high_surrogates_Set
    800         {{{Empty, 1728}, {Full, 28}, {Empty, 33060}},
    801          {}};
     1883
     1884
     1885    namespace {
     1886    const static UnicodeSet::run_t __high_surrogates_Set_runs[] = {
     1887    {Empty, 1728}, {Full, 28}, {Empty, 33060}};
     1888    const static UnicodeSet::bitquad_t * const __high_surrogates_Set_quads = nullptr;
     1889    }
     1890
     1891    const static UnicodeSet high_surrogates_Set{const_cast<UnicodeSet::run_t *>(__high_surrogates_Set_runs), 3, 0, const_cast<UnicodeSet::bitquad_t *>(__high_surrogates_Set_quads), 0, 0};
     1892
    8021893    /** Code Point Ranges for High_PU_Surrogates
    8031894    [db80, dbff]**/
    804     const UnicodeSet high_pu_surrogates_Set
    805         {{{Empty, 1756}, {Full, 4}, {Empty, 33056}},
    806          {}};
     1895
     1896
     1897    namespace {
     1898    const static UnicodeSet::run_t __high_pu_surrogates_Set_runs[] = {
     1899    {Empty, 1756}, {Full, 4}, {Empty, 33056}};
     1900    const static UnicodeSet::bitquad_t * const __high_pu_surrogates_Set_quads = nullptr;
     1901    }
     1902
     1903    const static UnicodeSet high_pu_surrogates_Set{const_cast<UnicodeSet::run_t *>(__high_pu_surrogates_Set_runs), 3, 0, const_cast<UnicodeSet::bitquad_t *>(__high_pu_surrogates_Set_quads), 0, 0};
     1904
    8071905    /** Code Point Ranges for Low_Surrogates
    8081906    [dc00, dfff]**/
    809     const UnicodeSet low_surrogates_Set
    810         {{{Empty, 1760}, {Full, 32}, {Empty, 33024}},
    811          {}};
     1907
     1908
     1909    namespace {
     1910    const static UnicodeSet::run_t __low_surrogates_Set_runs[] = {
     1911    {Empty, 1760}, {Full, 32}, {Empty, 33024}};
     1912    const static UnicodeSet::bitquad_t * const __low_surrogates_Set_quads = nullptr;
     1913    }
     1914
     1915    const static UnicodeSet low_surrogates_Set{const_cast<UnicodeSet::run_t *>(__low_surrogates_Set_runs), 3, 0, const_cast<UnicodeSet::bitquad_t *>(__low_surrogates_Set_quads), 0, 0};
     1916
    8121917    /** Code Point Ranges for PUA
    8131918    [e000, f8ff]**/
    814     const UnicodeSet pua_Set
    815         {{{Empty, 1792}, {Full, 200}, {Empty, 32824}},
    816          {}};
     1919
     1920
     1921    namespace {
     1922    const static UnicodeSet::run_t __pua_Set_runs[] = {
     1923    {Empty, 1792}, {Full, 200}, {Empty, 32824}};
     1924    const static UnicodeSet::bitquad_t * const __pua_Set_quads = nullptr;
     1925    }
     1926
     1927    const static UnicodeSet pua_Set{const_cast<UnicodeSet::run_t *>(__pua_Set_runs), 3, 0, const_cast<UnicodeSet::bitquad_t *>(__pua_Set_quads), 0, 0};
     1928
    8171929    /** Code Point Ranges for CJK_Compat_Ideographs
    8181930    [f900, faff]**/
    819     const UnicodeSet cjk_compat_ideographs_Set
    820         {{{Empty, 1992}, {Full, 16}, {Empty, 32808}},
    821          {}};
     1931
     1932
     1933    namespace {
     1934    const static UnicodeSet::run_t __cjk_compat_ideographs_Set_runs[] = {
     1935    {Empty, 1992}, {Full, 16}, {Empty, 32808}};
     1936    const static UnicodeSet::bitquad_t * const __cjk_compat_ideographs_Set_quads = nullptr;
     1937    }
     1938
     1939    const static UnicodeSet cjk_compat_ideographs_Set{const_cast<UnicodeSet::run_t *>(__cjk_compat_ideographs_Set_runs), 3, 0, const_cast<UnicodeSet::bitquad_t *>(__cjk_compat_ideographs_Set_quads), 0, 0};
     1940
    8221941    /** Code Point Ranges for Alphabetic_PF
    8231942    [fb00, fb4f]**/
    824     const UnicodeSet alphabetic_pf_Set
    825         {{{Empty, 2008}, {Full, 2}, {Mixed, 1}, {Empty, 32805}},
    826          {0x0000ffff}};
     1943
     1944
     1945    namespace {
     1946    const static UnicodeSet::run_t __alphabetic_pf_Set_runs[] = {
     1947    {Empty, 2008}, {Full, 2}, {Mixed, 1}, {Empty, 32805}};
     1948    const static UnicodeSet::bitquad_t  __alphabetic_pf_Set_quads[] = {
     1949    0x0000ffff};
     1950    }
     1951
     1952    const static UnicodeSet alphabetic_pf_Set{const_cast<UnicodeSet::run_t *>(__alphabetic_pf_Set_runs), 4, 0, const_cast<UnicodeSet::bitquad_t *>(__alphabetic_pf_Set_quads), 1, 0};
     1953
    8271954    /** Code Point Ranges for Arabic_PF_A
    8281955    [fb50, fdff]**/
    829     const UnicodeSet arabic_pf_a_Set
    830         {{{Empty, 2010}, {Mixed, 1}, {Full, 21}, {Empty, 32784}},
    831          {0xffff0000}};
     1956
     1957
     1958    namespace {
     1959    const static UnicodeSet::run_t __arabic_pf_a_Set_runs[] = {
     1960    {Empty, 2010}, {Mixed, 1}, {Full, 21}, {Empty, 32784}};
     1961    const static UnicodeSet::bitquad_t  __arabic_pf_a_Set_quads[] = {
     1962    0xffff0000};
     1963    }
     1964
     1965    const static UnicodeSet arabic_pf_a_Set{const_cast<UnicodeSet::run_t *>(__arabic_pf_a_Set_runs), 4, 0, const_cast<UnicodeSet::bitquad_t *>(__arabic_pf_a_Set_quads), 1, 0};
     1966
    8321967    /** Code Point Ranges for VS
    8331968    [fe00, fe0f]**/
    834     const UnicodeSet vs_Set
    835         {{{Empty, 2032}, {Mixed, 1}, {Empty, 32783}},
    836          {0x0000ffff}};
     1969
     1970
     1971    namespace {
     1972    const static UnicodeSet::run_t __vs_Set_runs[] = {
     1973    {Empty, 2032}, {Mixed, 1}, {Empty, 32783}};
     1974    const static UnicodeSet::bitquad_t  __vs_Set_quads[] = {
     1975    0x0000ffff};
     1976    }
     1977
     1978    const static UnicodeSet vs_Set{const_cast<UnicodeSet::run_t *>(__vs_Set_runs), 3, 0, const_cast<UnicodeSet::bitquad_t *>(__vs_Set_quads), 1, 0};
     1979
    8371980    /** Code Point Ranges for Vertical_Forms
    8381981    [fe10, fe1f]**/
    839     const UnicodeSet vertical_forms_Set
    840         {{{Empty, 2032}, {Mixed, 1}, {Empty, 32783}},
    841          {0xffff0000}};
     1982
     1983
     1984    namespace {
     1985    const static UnicodeSet::run_t __vertical_forms_Set_runs[] = {
     1986    {Empty, 2032}, {Mixed, 1}, {Empty, 32783}};
     1987    const static UnicodeSet::bitquad_t  __vertical_forms_Set_quads[] = {
     1988    0xffff0000};
     1989    }
     1990
     1991    const static UnicodeSet vertical_forms_Set{const_cast<UnicodeSet::run_t *>(__vertical_forms_Set_runs), 3, 0, const_cast<UnicodeSet::bitquad_t *>(__vertical_forms_Set_quads), 1, 0};
     1992
    8421993    /** Code Point Ranges for Half_Marks
    8431994    [fe20, fe2f]**/
    844     const UnicodeSet half_marks_Set
    845         {{{Empty, 2033}, {Mixed, 1}, {Empty, 32782}},
    846          {0x0000ffff}};
     1995
     1996
     1997    namespace {
     1998    const static UnicodeSet::run_t __half_marks_Set_runs[] = {
     1999    {Empty, 2033}, {Mixed, 1}, {Empty, 32782}};
     2000    const static UnicodeSet::bitquad_t  __half_marks_Set_quads[] = {
     2001    0x0000ffff};
     2002    }
     2003
     2004    const static UnicodeSet half_marks_Set{const_cast<UnicodeSet::run_t *>(__half_marks_Set_runs), 3, 0, const_cast<UnicodeSet::bitquad_t *>(__half_marks_Set_quads), 1, 0};
     2005
    8472006    /** Code Point Ranges for CJK_Compat_Forms
    8482007    [fe30, fe4f]**/
    849     const UnicodeSet cjk_compat_forms_Set
    850         {{{Empty, 2033}, {Mixed, 2}, {Empty, 32781}},
    851          {0xffff0000, 0x0000ffff}};
     2008
     2009
     2010    namespace {
     2011    const static UnicodeSet::run_t __cjk_compat_forms_Set_runs[] = {
     2012    {Empty, 2033}, {Mixed, 2}, {Empty, 32781}};
     2013    const static UnicodeSet::bitquad_t  __cjk_compat_forms_Set_quads[] = {
     2014    0xffff0000, 0x0000ffff};
     2015    }
     2016
     2017    const static UnicodeSet cjk_compat_forms_Set{const_cast<UnicodeSet::run_t *>(__cjk_compat_forms_Set_runs), 3, 0, const_cast<UnicodeSet::bitquad_t *>(__cjk_compat_forms_Set_quads), 2, 0};
     2018
    8522019    /** Code Point Ranges for Small_Forms
    8532020    [fe50, fe6f]**/
    854     const UnicodeSet small_forms_Set
    855         {{{Empty, 2034}, {Mixed, 2}, {Empty, 32780}},
    856          {0xffff0000, 0x0000ffff}};
     2021
     2022
     2023    namespace {
     2024    const static UnicodeSet::run_t __small_forms_Set_runs[] = {
     2025    {Empty, 2034}, {Mixed, 2}, {Empty, 32780}};
     2026    const static UnicodeSet::bitquad_t  __small_forms_Set_quads[] = {
     2027    0xffff0000, 0x0000ffff};
     2028    }
     2029
     2030    const static UnicodeSet small_forms_Set{const_cast<UnicodeSet::run_t *>(__small_forms_Set_runs), 3, 0, const_cast<UnicodeSet::bitquad_t *>(__small_forms_Set_quads), 2, 0};
     2031
    8572032    /** Code Point Ranges for Arabic_PF_B
    8582033    [fe70, feff]**/
    859     const UnicodeSet arabic_pf_b_Set
    860         {{{Empty, 2035}, {Mixed, 1}, {Full, 4}, {Empty, 32776}},
    861          {0xffff0000}};
     2034
     2035
     2036    namespace {
     2037    const static UnicodeSet::run_t __arabic_pf_b_Set_runs[] = {
     2038    {Empty, 2035}, {Mixed, 1}, {Full, 4}, {Empty, 32776}};
     2039    const static UnicodeSet::bitquad_t  __arabic_pf_b_Set_quads[] = {
     2040    0xffff0000};
     2041    }
     2042
     2043    const static UnicodeSet arabic_pf_b_Set{const_cast<UnicodeSet::run_t *>(__arabic_pf_b_Set_runs), 4, 0, const_cast<UnicodeSet::bitquad_t *>(__arabic_pf_b_Set_quads), 1, 0};
     2044
    8622045    /** Code Point Ranges for Half_And_Full_Forms
    8632046    [ff00, ffef]**/
    864     const UnicodeSet half_and_full_forms_Set
    865         {{{Empty, 2040}, {Full, 7}, {Mixed, 1}, {Empty, 32768}},
    866          {0x0000ffff}};
     2047
     2048
     2049    namespace {
     2050    const static UnicodeSet::run_t __half_and_full_forms_Set_runs[] = {
     2051    {Empty, 2040}, {Full, 7}, {Mixed, 1}, {Empty, 32768}};
     2052    const static UnicodeSet::bitquad_t  __half_and_full_forms_Set_quads[] = {
     2053    0x0000ffff};
     2054    }
     2055
     2056    const static UnicodeSet half_and_full_forms_Set{const_cast<UnicodeSet::run_t *>(__half_and_full_forms_Set_runs), 4, 0, const_cast<UnicodeSet::bitquad_t *>(__half_and_full_forms_Set_quads), 1, 0};
     2057
    8672058    /** Code Point Ranges for Specials
    8682059    [fff0, ffff]**/
    869     const UnicodeSet specials_Set
    870         {{{Empty, 2047}, {Mixed, 1}, {Empty, 32768}},
    871          {0xffff0000}};
     2060
     2061
     2062    namespace {
     2063    const static UnicodeSet::run_t __specials_Set_runs[] = {
     2064    {Empty, 2047}, {Mixed, 1}, {Empty, 32768}};
     2065    const static UnicodeSet::bitquad_t  __specials_Set_quads[] = {
     2066    0xffff0000};
     2067    }
     2068
     2069    const static UnicodeSet specials_Set{const_cast<UnicodeSet::run_t *>(__specials_Set_runs), 3, 0, const_cast<UnicodeSet::bitquad_t *>(__specials_Set_quads), 1, 0};
     2070
    8722071    /** Code Point Ranges for Linear_B_Syllabary
    8732072    [10000, 1007f]**/
    874     const UnicodeSet linear_b_syllabary_Set
    875         {{{Empty, 2048}, {Full, 4}, {Empty, 32764}},
    876          {}};
     2073
     2074
     2075    namespace {
     2076    const static UnicodeSet::run_t __linear_b_syllabary_Set_runs[] = {
     2077    {Empty, 2048}, {Full, 4}, {Empty, 32764}};
     2078    const static UnicodeSet::bitquad_t * const __linear_b_syllabary_Set_quads = nullptr;
     2079    }
     2080
     2081    const static UnicodeSet linear_b_syllabary_Set{const_cast<UnicodeSet::run_t *>(__linear_b_syllabary_Set_runs), 3, 0, const_cast<UnicodeSet::bitquad_t *>(__linear_b_syllabary_Set_quads), 0, 0};
     2082
    8772083    /** Code Point Ranges for Linear_B_Ideograms
    8782084    [10080, 100ff]**/
    879     const UnicodeSet linear_b_ideograms_Set
    880         {{{Empty, 2052}, {Full, 4}, {Empty, 32760}},
    881          {}};
     2085
     2086
     2087    namespace {
     2088    const static UnicodeSet::run_t __linear_b_ideograms_Set_runs[] = {
     2089    {Empty, 2052}, {Full, 4}, {Empty, 32760}};
     2090    const static UnicodeSet::bitquad_t * const __linear_b_ideograms_Set_quads = nullptr;
     2091    }
     2092
     2093    const static UnicodeSet linear_b_ideograms_Set{const_cast<UnicodeSet::run_t *>(__linear_b_ideograms_Set_runs), 3, 0, const_cast<UnicodeSet::bitquad_t *>(__linear_b_ideograms_Set_quads), 0, 0};
     2094
    8822095    /** Code Point Ranges for Aegean_Numbers
    8832096    [10100, 1013f]**/
    884     const UnicodeSet aegean_numbers_Set
    885         {{{Empty, 2056}, {Full, 2}, {Empty, 32758}},
    886          {}};
     2097
     2098
     2099    namespace {
     2100    const static UnicodeSet::run_t __aegean_numbers_Set_runs[] = {
     2101    {Empty, 2056}, {Full, 2}, {Empty, 32758}};
     2102    const static UnicodeSet::bitquad_t * const __aegean_numbers_Set_quads = nullptr;
     2103    }
     2104
     2105    const static UnicodeSet aegean_numbers_Set{const_cast<UnicodeSet::run_t *>(__aegean_numbers_Set_runs), 3, 0, const_cast<UnicodeSet::bitquad_t *>(__aegean_numbers_Set_quads), 0, 0};
     2106
    8872107    /** Code Point Ranges for Ancient_Greek_Numbers
    8882108    [10140, 1018f]**/
    889     const UnicodeSet ancient_greek_numbers_Set
    890         {{{Empty, 2058}, {Full, 2}, {Mixed, 1}, {Empty, 32755}},
    891          {0x0000ffff}};
     2109
     2110
     2111    namespace {
     2112    const static UnicodeSet::run_t __ancient_greek_numbers_Set_runs[] = {
     2113    {Empty, 2058}, {Full, 2}, {Mixed, 1}, {Empty, 32755}};
     2114    const static UnicodeSet::bitquad_t  __ancient_greek_numbers_Set_quads[] = {
     2115    0x0000ffff};
     2116    }
     2117
     2118    const static UnicodeSet ancient_greek_numbers_Set{const_cast<UnicodeSet::run_t *>(__ancient_greek_numbers_Set_runs), 4, 0, const_cast<UnicodeSet::bitquad_t *>(__ancient_greek_numbers_Set_quads), 1, 0};
     2119
    8922120    /** Code Point Ranges for Ancient_Symbols
    8932121    [10190, 101cf]**/
    894     const UnicodeSet ancient_symbols_Set
    895         {{{Empty, 2060}, {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Empty, 32753}},
    896          {0xffff0000, 0x0000ffff}};
     2122
     2123
     2124    namespace {
     2125    const static UnicodeSet::run_t __ancient_symbols_Set_runs[] = {
     2126    {Empty, 2060}, {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Empty, 32753}};
     2127    const static UnicodeSet::bitquad_t  __ancient_symbols_Set_quads[] = {
     2128    0xffff0000, 0x0000ffff};
     2129    }
     2130
     2131    const static UnicodeSet ancient_symbols_Set{const_cast<UnicodeSet::run_t *>(__ancient_symbols_Set_runs), 5, 0, const_cast<UnicodeSet::bitquad_t *>(__ancient_symbols_Set_quads), 2, 0};
     2132
    8972133    /** Code Point Ranges for Phaistos
    8982134    [101d0, 101ff]**/
    899     const UnicodeSet phaistos_Set
    900         {{{Empty, 2062}, {Mixed, 1}, {Full, 1}, {Empty, 32752}},
    901          {0xffff0000}};
     2135
     2136
     2137    namespace {
     2138    const static UnicodeSet::run_t __phaistos_Set_runs[] = {
     2139    {Empty, 2062}, {Mixed, 1}, {Full, 1}, {Empty, 32752}};
     2140    const static UnicodeSet::bitquad_t  __phaistos_Set_quads[] = {
     2141    0xffff0000};
     2142    }
     2143
     2144    const static UnicodeSet phaistos_Set{const_cast<UnicodeSet::run_t *>(__phaistos_Set_runs), 4, 0, const_cast<UnicodeSet::bitquad_t *>(__phaistos_Set_quads), 1, 0};
     2145
    9022146    /** Code Point Ranges for Lycian
    9032147    [10280, 1029f]**/
    904     const UnicodeSet lycian_Set
    905         {{{Empty, 2068}, {Full, 1}, {Empty, 32747}},
    906          {}};
     2148
     2149
     2150    namespace {
     2151    const static UnicodeSet::run_t __lycian_Set_runs[] = {
     2152    {Empty, 2068}, {Full, 1}, {Empty, 32747}};
     2153    const static UnicodeSet::bitquad_t * const __lycian_Set_quads = nullptr;
     2154    }
     2155
     2156    const static UnicodeSet lycian_Set{const_cast<UnicodeSet::run_t *>(__lycian_Set_runs), 3, 0, const_cast<UnicodeSet::bitquad_t *>(__lycian_Set_quads), 0, 0};
     2157
    9072158    /** Code Point Ranges for Carian
    9082159    [102a0, 102df]**/
    909     const UnicodeSet carian_Set
    910         {{{Empty, 2069}, {Full, 2}, {Empty, 32745}},
    911          {}};
     2160
     2161
     2162    namespace {
     2163    const static UnicodeSet::run_t __carian_Set_runs[] = {
     2164    {Empty, 2069}, {Full, 2}, {Empty, 32745}};
     2165    const static UnicodeSet::bitquad_t * const __carian_Set_quads = nullptr;
     2166    }
     2167
     2168    const static UnicodeSet carian_Set{const_cast<UnicodeSet::run_t *>(__carian_Set_runs), 3, 0, const_cast<UnicodeSet::bitquad_t *>(__carian_Set_quads), 0, 0};
     2169
    9122170    /** Code Point Ranges for Coptic_Epact_Numbers
    9132171    [102e0, 102ff]**/
    914     const UnicodeSet coptic_epact_numbers_Set
    915         {{{Empty, 2071}, {Full, 1}, {Empty, 32744}},
    916          {}};
     2172
     2173
     2174    namespace {
     2175    const static UnicodeSet::run_t __coptic_epact_numbers_Set_runs[] = {
     2176    {Empty, 2071}, {Full, 1}, {Empty, 32744}};
     2177    const static UnicodeSet::bitquad_t * const __coptic_epact_numbers_Set_quads = nullptr;
     2178    }
     2179
     2180    const static UnicodeSet coptic_epact_numbers_Set{const_cast<UnicodeSet::run_t *>(__coptic_epact_numbers_Set_runs), 3, 0, const_cast<UnicodeSet::bitquad_t *>(__coptic_epact_numbers_Set_quads), 0, 0};
     2181
    9172182    /** Code Point Ranges for Old_Italic
    9182183    [10300, 1032f]**/
    919     const UnicodeSet old_italic_Set
    920         {{{Empty, 2072}, {Full, 1}, {Mixed, 1}, {Empty, 32742}},
    921          {0x0000ffff}};
     2184
     2185
     2186    namespace {
     2187    const static UnicodeSet::run_t __old_italic_Set_runs[] = {
     2188    {Empty, 2072}, {Full, 1}, {Mixed, 1}, {Empty, 32742}};
     2189    const static UnicodeSet::bitquad_t  __old_italic_Set_quads[] = {
     2190    0x0000ffff};
     2191    }
     2192
     2193    const static UnicodeSet old_italic_Set{const_cast<UnicodeSet::run_t *>(__old_italic_Set_runs), 4, 0, const_cast<UnicodeSet::bitquad_t *>(__old_italic_Set_quads), 1, 0};
     2194
    9222195    /** Code Point Ranges for Gothic
    9232196    [10330, 1034f]**/
    924     const UnicodeSet gothic_Set
    925         {{{Empty, 2073}, {Mixed, 2}, {Empty, 32741}},
    926          {0xffff0000, 0x0000ffff}};
     2197
     2198
     2199    namespace {
     2200    const static UnicodeSet::run_t __gothic_Set_runs[] = {
     2201    {Empty, 2073}, {Mixed, 2}, {Empty, 32741}};
     2202    const static UnicodeSet::bitquad_t  __gothic_Set_quads[] = {
     2203    0xffff0000, 0x0000ffff};
     2204    }
     2205
     2206    const static UnicodeSet gothic_Set{const_cast<UnicodeSet::run_t *>(__gothic_Set_runs), 3, 0, const_cast<UnicodeSet::bitquad_t *>(__gothic_Set_quads), 2, 0};
     2207
    9272208    /** Code Point Ranges for Old_Permic
    9282209    [10350, 1037f]**/
    929     const UnicodeSet old_permic_Set
    930         {{{Empty, 2074}, {Mixed, 1}, {Full, 1}, {Empty, 32740}},
    931          {0xffff0000}};
     2210
     2211
     2212    namespace {
     2213    const static UnicodeSet::run_t __old_permic_Set_runs[] = {
     2214    {Empty, 2074}, {Mixed, 1}, {Full, 1}, {Empty, 32740}};
     2215    const static UnicodeSet::bitquad_t  __old_permic_Set_quads[] = {
     2216    0xffff0000};
     2217    }
     2218
     2219    const static UnicodeSet old_permic_Set{const_cast<UnicodeSet::run_t *>(__old_permic_Set_runs), 4, 0, const_cast<UnicodeSet::bitquad_t *>(__old_permic_Set_quads), 1, 0};
     2220
    9322221    /** Code Point Ranges for Ugaritic
    9332222    [10380, 1039f]**/
    934     const UnicodeSet ugaritic_Set
    935         {{{Empty, 2076}, {Full, 1}, {Empty, 32739}},
    936          {}};
     2223
     2224
     2225    namespace {
     2226    const static UnicodeSet::run_t __ugaritic_Set_runs[] = {
     2227    {Empty, 2076}, {Full, 1}, {Empty, 32739}};
     2228    const static UnicodeSet::bitquad_t * const __ugaritic_Set_quads = nullptr;
     2229    }
     2230
     2231    const static UnicodeSet ugaritic_Set{const_cast<UnicodeSet::run_t *>(__ugaritic_Set_runs), 3, 0, const_cast<UnicodeSet::bitquad_t *>(__ugaritic_Set_quads), 0, 0};
     2232
    9372233    /** Code Point Ranges for Old_Persian
    9382234    [103a0, 103df]**/
    939     const UnicodeSet old_persian_Set
    940         {{{Empty, 2077}, {Full, 2}, {Empty, 32737}},
    941          {}};
     2235
     2236
     2237    namespace {
     2238    const static UnicodeSet::run_t __old_persian_Set_runs[] = {
     2239    {Empty, 2077}, {Full, 2}, {Empty, 32737}};
     2240    const static UnicodeSet::bitquad_t * const __old_persian_Set_quads = nullptr;
     2241    }
     2242
     2243    const static UnicodeSet old_persian_Set{const_cast<UnicodeSet::run_t *>(__old_persian_Set_runs), 3, 0, const_cast<UnicodeSet::bitquad_t *>(__old_persian_Set_quads), 0, 0};
     2244
    9422245    /** Code Point Ranges for Deseret
    9432246    [10400, 1044f]**/
    944     const UnicodeSet deseret_Set
    945         {{{Empty, 2080}, {Full, 2}, {Mixed, 1}, {Empty, 32733}},
    946          {0x0000ffff}};
     2247
     2248
     2249    namespace {
     2250    const static UnicodeSet::run_t __deseret_Set_runs[] = {
     2251    {Empty, 2080}, {Full, 2}, {Mixed, 1}, {Empty, 32733}};
     2252    const static UnicodeSet::bitquad_t  __deseret_Set_quads[] = {
     2253    0x0000ffff};
     2254    }
     2255
     2256    const static UnicodeSet deseret_Set{const_cast<UnicodeSet::run_t *>(__deseret_Set_runs), 4, 0, const_cast<UnicodeSet::bitquad_t *>(__deseret_Set_quads), 1, 0};
     2257
    9472258    /** Code Point Ranges for Shavian
    9482259    [10450, 1047f]**/
    949     const UnicodeSet shavian_Set
    950         {{{Empty, 2082}, {Mixed, 1}, {Full, 1}, {Empty, 32732}},
    951          {0xffff0000}};
     2260
     2261
     2262    namespace {
     2263    const static UnicodeSet::run_t __shavian_Set_runs[] = {
     2264    {Empty, 2082}, {Mixed, 1}, {Full, 1}, {Empty, 32732}};
     2265    const static UnicodeSet::bitquad_t  __shavian_Set_quads[] = {
     2266    0xffff0000};
     2267    }
     2268
     2269    const static UnicodeSet shavian_Set{const_cast<UnicodeSet::run_t *>(__shavian_Set_runs), 4, 0, const_cast<UnicodeSet::bitquad_t *>(__shavian_Set_quads), 1, 0};
     2270
    9522271    /** Code Point Ranges for Osmanya
    9532272    [10480, 104af]**/
    954     const UnicodeSet osmanya_Set
    955         {{{Empty, 2084}, {Full, 1}, {Mixed, 1}, {Empty, 32730}},
    956          {0x0000ffff}};
     2273
     2274
     2275    namespace {
     2276    const static UnicodeSet::run_t __osmanya_Set_runs[] = {
     2277    {Empty, 2084}, {Full, 1}, {Mixed, 1}, {Empty, 32730}};
     2278    const static UnicodeSet::bitquad_t  __osmanya_Set_quads[] = {
     2279    0x0000ffff};
     2280    }
     2281
     2282    const static UnicodeSet osmanya_Set{const_cast<UnicodeSet::run_t *>(__osmanya_Set_runs), 4, 0, const_cast<UnicodeSet::bitquad_t *>(__osmanya_Set_quads), 1, 0};
     2283
    9572284    /** Code Point Ranges for Osage
    9582285    [104b0, 104ff]**/
    959     const UnicodeSet osage_Set
    960         {{{Empty, 2085}, {Mixed, 1}, {Full, 2}, {Empty, 32728}},
    961          {0xffff0000}};
     2286
     2287
     2288    namespace {
     2289    const static UnicodeSet::run_t __osage_Set_runs[] = {
     2290    {Empty, 2085}, {Mixed, 1}, {Full, 2}, {Empty, 32728}};
     2291    const static UnicodeSet::bitquad_t  __osage_Set_quads[] = {
     2292    0xffff0000};
     2293    }
     2294
     2295    const static UnicodeSet osage_Set{const_cast<UnicodeSet::run_t *>(__osage_Set_runs), 4, 0, const_cast<UnicodeSet::bitquad_t *>(__osage_Set_quads), 1, 0};
     2296
    9622297    /** Code Point Ranges for Elbasan
    9632298    [10500, 1052f]**/
    964     const UnicodeSet elbasan_Set
    965         {{{Empty, 2088}, {Full, 1}, {Mixed, 1}, {Empty, 32726}},
    966          {0x0000ffff}};
     2299
     2300
     2301    namespace {
     2302    const static UnicodeSet::run_t __elbasan_Set_runs[] = {
     2303    {Empty, 2088}, {Full, 1}, {Mixed, 1}, {Empty, 32726}};
     2304    const static UnicodeSet::bitquad_t  __elbasan_Set_quads[] = {
     2305    0x0000ffff};
     2306    }
     2307
     2308    const static UnicodeSet elbasan_Set{const_cast<UnicodeSet::run_t *>(__elbasan_Set_runs), 4, 0, const_cast<UnicodeSet::bitquad_t *>(__elbasan_Set_quads), 1, 0};
     2309
    9672310    /** Code Point Ranges for Caucasian_Albanian
    9682311    [10530, 1056f]**/
    969     const UnicodeSet caucasian_albanian_Set
    970         {{{Empty, 2089}, {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Empty, 32724}},
    971          {0xffff0000, 0x0000ffff}};
     2312
     2313
     2314    namespace {
     2315    const static UnicodeSet::run_t __caucasian_albanian_Set_runs[] = {
     2316    {Empty, 2089}, {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Empty, 32724}};
     2317    const static UnicodeSet::bitquad_t  __caucasian_albanian_Set_quads[] = {
     2318    0xffff0000, 0x0000ffff};
     2319    }
     2320
     2321    const static UnicodeSet caucasian_albanian_Set{const_cast<UnicodeSet::run_t *>(__caucasian_albanian_Set_runs), 5, 0, const_cast<UnicodeSet::bitquad_t *>(__caucasian_albanian_Set_quads), 2, 0};
     2322
    9722323    /** Code Point Ranges for Linear_A
    9732324    [10600, 1077f]**/
    974     const UnicodeSet linear_a_Set
    975         {{{Empty, 2096}, {Full, 12}, {Empty, 32708}},
    976          {}};
     2325
     2326
     2327    namespace {
     2328    const static UnicodeSet::run_t __linear_a_Set_runs[] = {
     2329    {Empty, 2096}, {Full, 12}, {Empty, 32708}};
     2330    const static UnicodeSet::bitquad_t * const __linear_a_Set_quads = nullptr;
     2331    }
     2332
     2333    const static UnicodeSet linear_a_Set{const_cast<UnicodeSet::run_t *>(__linear_a_Set_runs), 3, 0, const_cast<UnicodeSet::bitquad_t *>(__linear_a_Set_quads), 0, 0};
     2334
    9772335    /** Code Point Ranges for Cypriot_Syllabary
    9782336    [10800, 1083f]**/
    979     const UnicodeSet cypriot_syllabary_Set
    980         {{{Empty, 2112}, {Full, 2}, {Empty, 32702}},
    981          {}};
     2337
     2338
     2339    namespace {
     2340    const static UnicodeSet::run_t __cypriot_syllabary_Set_runs[] = {
     2341    {Empty, 2112}, {Full, 2}, {Empty, 32702}};
     2342    const static UnicodeSet::bitquad_t * const __cypriot_syllabary_Set_quads = nullptr;
     2343    }
     2344
     2345    const static UnicodeSet cypriot_syllabary_Set{const_cast<UnicodeSet::run_t *>(__cypriot_syllabary_Set_runs), 3, 0, const_cast<UnicodeSet::bitquad_t *>(__cypriot_syllabary_Set_quads), 0, 0};
     2346
    9822347    /** Code Point Ranges for Imperial_Aramaic
    9832348    [10840, 1085f]**/
    984     const UnicodeSet imperial_aramaic_Set
    985         {{{Empty, 2114}, {Full, 1}, {Empty, 32701}},
    986          {}};
     2349
     2350
     2351    namespace {
     2352    const static UnicodeSet::run_t __imperial_aramaic_Set_runs[] = {
     2353    {Empty, 2114}, {Full, 1}, {Empty, 32701}};
     2354    const static UnicodeSet::bitquad_t * const __imperial_aramaic_Set_quads = nullptr;
     2355    }
     2356
     2357    const static UnicodeSet imperial_aramaic_Set{const_cast<UnicodeSet::run_t *>(__imperial_aramaic_Set_runs), 3, 0, const_cast<UnicodeSet::bitquad_t *>(__imperial_aramaic_Set_quads), 0, 0};
     2358
    9872359    /** Code Point Ranges for Palmyrene
    9882360    [10860, 1087f]**/
    989     const UnicodeSet palmyrene_Set
    990         {{{Empty, 2115}, {Full, 1}, {Empty, 32700}},
    991          {}};
     2361
     2362
     2363    namespace {
     2364    const static UnicodeSet::run_t __palmyrene_Set_runs[] = {
     2365    {Empty, 2115}, {Full, 1}, {Empty, 32700}};
     2366    const static UnicodeSet::bitquad_t * const __palmyrene_Set_quads = nullptr;
     2367    }
     2368
     2369    const static UnicodeSet palmyrene_Set{const_cast<UnicodeSet::run_t *>(__palmyrene_Set_runs), 3, 0, const_cast<UnicodeSet::bitquad_t *>(__palmyrene_Set_quads), 0, 0};
     2370
    9922371    /** Code Point Ranges for Nabataean
    9932372    [10880, 108af]**/
    994     const UnicodeSet nabataean_Set
    995         {{{Empty, 2116}, {Full, 1}, {Mixed, 1}, {Empty, 32698}},
    996          {0x0000ffff}};
     2373
     2374
     2375    namespace {
     2376    const static UnicodeSet::run_t __nabataean_Set_runs[] = {
     2377    {Empty, 2116}, {Full, 1}, {Mixed, 1}, {Empty, 32698}};
     2378    const static UnicodeSet::bitquad_t  __nabataean_Set_quads[] = {
     2379    0x0000ffff};
     2380    }
     2381
     2382    const static UnicodeSet nabataean_Set{const_cast<UnicodeSet::run_t *>(__nabataean_Set_runs), 4, 0, const_cast<UnicodeSet::bitquad_t *>(__nabataean_Set_quads), 1, 0};
     2383
    9972384    /** Code Point Ranges for Hatran
    9982385    [108e0, 108ff]**/
    999     const UnicodeSet hatran_Set
    1000         {{{Empty, 2119}, {Full, 1}, {Empty, 32696}},
    1001          {}};
     2386
     2387
     2388    namespace {
     2389    const static UnicodeSet::run_t __hatran_Set_runs[] = {
     2390    {Empty, 2119}, {Full, 1}, {Empty, 32696}};
     2391    const static UnicodeSet::bitquad_t * const __hatran_Set_quads = nullptr;
     2392    }
     2393
     2394    const static UnicodeSet hatran_Set{const_cast<UnicodeSet::run_t *>(__hatran_Set_runs), 3, 0, const_cast<UnicodeSet::bitquad_t *>(__hatran_Set_quads), 0, 0};
     2395
    10022396    /** Code Point Ranges for Phoenician
    10032397    [10900, 1091f]**/
    1004     const UnicodeSet phoenician_Set
    1005         {{{Empty, 2120}, {Full, 1}, {Empty, 32695}},
    1006          {}};
     2398
     2399
     2400    namespace {
     2401    const static UnicodeSet::run_t __phoenician_Set_runs[] = {
     2402    {Empty, 2120}, {Full, 1}, {Empty, 32695}};
     2403    const static UnicodeSet::bitquad_t * const __phoenician_Set_quads = nullptr;
     2404    }
     2405
     2406    const static UnicodeSet phoenician_Set{const_cast<UnicodeSet::run_t *>(__phoenician_Set_runs), 3, 0, const_cast<UnicodeSet::bitquad_t *>(__phoenician_Set_quads), 0, 0};
     2407
    10072408    /** Code Point Ranges for Lydian
    10082409    [10920, 1093f]**/
    1009     const UnicodeSet lydian_Set
    1010         {{{Empty, 2121}, {Full, 1}, {Empty, 32694}},
    1011          {}};
     2410
     2411
     2412    namespace {
     2413    const static UnicodeSet::run_t __lydian_Set_runs[] = {
     2414    {Empty, 2121}, {Full, 1}, {Empty, 32694}};
     2415    const static UnicodeSet::bitquad_t * const __lydian_Set_quads = nullptr;
     2416    }
     2417
     2418    const static UnicodeSet lydian_Set{const_cast<UnicodeSet::run_t *>(__lydian_Set_runs), 3, 0, const_cast<UnicodeSet::bitquad_t *>(__lydian_Set_quads), 0, 0};
     2419
    10122420    /** Code Point Ranges for Meroitic_Hieroglyphs
    10132421    [10980, 1099f]**/
    1014     const UnicodeSet meroitic_hieroglyphs_Set
    1015         {{{Empty, 2124}, {Full, 1}, {Empty, 32691}},
    1016          {}};
     2422
     2423
     2424    namespace {
     2425    const static UnicodeSet::run_t __meroitic_hieroglyphs_Set_runs[] = {
     2426    {Empty, 2124}, {Full, 1}, {Empty, 32691}};
     2427    const static UnicodeSet::bitquad_t * const __meroitic_hieroglyphs_Set_quads = nullptr;
     2428    }
     2429
     2430    const static UnicodeSet meroitic_hieroglyphs_Set{const_cast<UnicodeSet::run_t *>(__meroitic_hieroglyphs_Set_runs), 3, 0, const_cast<UnicodeSet::bitquad_t *>(__meroitic_hieroglyphs_Set_quads), 0, 0};
     2431
    10172432    /** Code Point Ranges for Meroitic_Cursive
    10182433    [109a0, 109ff]**/
    1019     const UnicodeSet meroitic_cursive_Set
    1020         {{{Empty, 2125}, {Full, 3}, {Empty, 32688}},
    1021          {}};
     2434
     2435
     2436    namespace {
     2437    const static UnicodeSet::run_t __meroitic_cursive_Set_runs[] = {
     2438    {Empty, 2125}, {Full, 3}, {Empty, 32688}};
     2439    const static UnicodeSet::bitquad_t * const __meroitic_cursive_Set_quads = nullptr;
     2440    }
     2441
     2442    const static UnicodeSet meroitic_cursive_Set{const_cast<UnicodeSet::run_t *>(__meroitic_cursive_Set_runs), 3, 0, const_cast<UnicodeSet::bitquad_t *>(__meroitic_cursive_Set_quads), 0, 0};
     2443
    10222444    /** Code Point Ranges for Kharoshthi
    10232445    [10a00, 10a5f]**/
    1024     const UnicodeSet kharoshthi_Set
    1025         {{{Empty, 2128}, {Full, 3}, {Empty, 32685}},
    1026          {}};
     2446
     2447
     2448    namespace {
     2449    const static UnicodeSet::run_t __kharoshthi_Set_runs[] = {
     2450    {Empty, 2128}, {Full, 3}, {Empty, 32685}};
     2451    const static UnicodeSet::bitquad_t * const __kharoshthi_Set_quads = nullptr;
     2452    }
     2453
     2454    const static UnicodeSet kharoshthi_Set{const_cast<UnicodeSet::run_t *>(__kharoshthi_Set_runs), 3, 0, const_cast<UnicodeSet::bitquad_t *>(__kharoshthi_Set_quads), 0, 0};
     2455
    10272456    /** Code Point Ranges for Old_South_Arabian
    10282457    [10a60, 10a7f]**/
    1029     const UnicodeSet old_south_arabian_Set
    1030         {{{Empty, 2131}, {Full, 1}, {Empty, 32684}},
    1031          {}};
     2458
     2459
     2460    namespace {
     2461    const static UnicodeSet::run_t __old_south_arabian_Set_runs[] = {
     2462    {Empty, 2131}, {Full, 1}, {Empty, 32684}};
     2463    const static UnicodeSet::bitquad_t * const __old_south_arabian_Set_quads = nullptr;
     2464    }
     2465
     2466    const static UnicodeSet old_south_arabian_Set{const_cast<UnicodeSet::run_t *>(__old_south_arabian_Set_runs), 3, 0, const_cast<UnicodeSet::bitquad_t *>(__old_south_arabian_Set_quads), 0, 0};
     2467
    10322468    /** Code Point Ranges for Old_North_Arabian
    10332469    [10a80, 10a9f]**/
    1034     const UnicodeSet old_north_arabian_Set
    1035         {{{Empty, 2132}, {Full, 1}, {Empty, 32683}},
    1036          {}};
     2470
     2471
     2472    namespace {
     2473    const static UnicodeSet::run_t __old_north_arabian_Set_runs[] = {
     2474    {Empty, 2132}, {Full, 1}, {Empty, 32683}};
     2475    const static UnicodeSet::bitquad_t * const __old_north_arabian_Set_quads = nullptr;
     2476    }
     2477
     2478    const static UnicodeSet old_north_arabian_Set{const_cast<UnicodeSet::run_t *>(__old_north_arabian_Set_runs), 3, 0, const_cast<UnicodeSet::bitquad_t *>(__old_north_arabian_Set_quads), 0, 0};
     2479
    10372480    /** Code Point Ranges for Manichaean
    10382481    [10ac0, 10aff]**/
    1039     const UnicodeSet manichaean_Set
    1040         {{{Empty, 2134}, {Full, 2}, {Empty, 32680}},
    1041          {}};
     2482
     2483
     2484    namespace {
     2485    const static UnicodeSet::run_t __manichaean_Set_runs[] = {
     2486    {Empty, 2134}, {Full, 2}, {Empty, 32680}};
     2487    const static UnicodeSet::bitquad_t * const __manichaean_Set_quads = nullptr;
     2488    }
     2489
     2490    const static UnicodeSet manichaean_Set{const_cast<UnicodeSet::run_t *>(__manichaean_Set_runs), 3, 0, const_cast<UnicodeSet::bitquad_t *>(__manichaean_Set_quads), 0, 0};
     2491
    10422492    /** Code Point Ranges for Avestan
    10432493    [10b00, 10b3f]**/
    1044     const UnicodeSet avestan_Set
    1045         {{{Empty, 2136}, {Full, 2}, {Empty, 32678}},
    1046          {}};
     2494
     2495
     2496    namespace {
     2497    const static UnicodeSet::run_t __avestan_Set_runs[] = {
     2498    {Empty, 2136}, {Full, 2}, {Empty, 32678}};
     2499    const static UnicodeSet::bitquad_t * const __avestan_Set_quads = nullptr;
     2500    }
     2501
     2502    const static UnicodeSet avestan_Set{const_cast<UnicodeSet::run_t *>(__avestan_Set_runs), 3, 0, const_cast<UnicodeSet::bitquad_t *>(__avestan_Set_quads), 0, 0};
     2503
    10472504    /** Code Point Ranges for Inscriptional_Parthian
    10482505    [10b40, 10b5f]**/
    1049     const UnicodeSet inscriptional_parthian_Set
    1050         {{{Empty, 2138}, {Full, 1}, {Empty, 32677}},
    1051          {}};
     2506
     2507
     2508    namespace {
     2509    const static UnicodeSet::run_t __inscriptional_parthian_Set_runs[] = {
     2510    {Empty, 2138}, {Full, 1}, {Empty, 32677}};
     2511    const static UnicodeSet::bitquad_t * const __inscriptional_parthian_Set_quads = nullptr;
     2512    }
     2513
     2514    const static UnicodeSet inscriptional_parthian_Set{const_cast<UnicodeSet::run_t *>(__inscriptional_parthian_Set_runs), 3, 0, const_cast<UnicodeSet::bitquad_t *>(__inscriptional_parthian_Set_quads), 0, 0};
     2515
    10522516    /** Code Point Ranges for Inscriptional_Pahlavi
    10532517    [10b60, 10b7f]**/
    1054     const UnicodeSet inscriptional_pahlavi_Set
    1055         {{{Empty, 2139}, {Full, 1}, {Empty, 32676}},
    1056          {}};
     2518
     2519
     2520    namespace {
     2521    const static UnicodeSet::run_t __inscriptional_pahlavi_Set_runs[] = {
     2522    {Empty, 2139}, {Full, 1}, {Empty, 32676}};
     2523    const static UnicodeSet::bitquad_t * const __inscriptional_pahlavi_Set_quads = nullptr;
     2524    }
     2525
     2526    const static UnicodeSet inscriptional_pahlavi_Set{const_cast<UnicodeSet::run_t *>(__inscriptional_pahlavi_Set_runs), 3, 0, const_cast<UnicodeSet::bitquad_t *>(__inscriptional_pahlavi_Set_quads), 0, 0};
     2527
    10572528    /** Code Point Ranges for Psalter_Pahlavi
    10582529    [10b80, 10baf]**/
    1059     const UnicodeSet psalter_pahlavi_Set
    1060         {{{Empty, 2140}, {Full, 1}, {Mixed, 1}, {Empty, 32674}},
    1061          {0x0000ffff}};
     2530
     2531
     2532    namespace {
     2533    const static UnicodeSet::run_t __psalter_pahlavi_Set_runs[] = {
     2534    {Empty, 2140}, {Full, 1}, {Mixed, 1}, {Empty, 32674}};
     2535    const static UnicodeSet::bitquad_t  __psalter_pahlavi_Set_quads[] = {
     2536    0x0000ffff};
     2537    }
     2538
     2539    const static UnicodeSet psalter_pahlavi_Set{const_cast<UnicodeSet::run_t *>(__psalter_pahlavi_Set_runs), 4, 0, const_cast<UnicodeSet::bitquad_t *>(__psalter_pahlavi_Set_quads), 1, 0};
     2540
    10622541    /** Code Point Ranges for Old_Turkic
    10632542    [10c00, 10c4f]**/
    1064     const UnicodeSet old_turkic_Set
    1065         {{{Empty, 2144}, {Full, 2}, {Mixed, 1}, {Empty, 32669}},
    1066          {0x0000ffff}};
     2543
     2544
     2545    namespace {
     2546    const static UnicodeSet::run_t __old_turkic_Set_runs[] = {
     2547    {Empty, 2144}, {Full, 2}, {Mixed, 1}, {Empty, 32669}};
     2548    const static UnicodeSet::bitquad_t  __old_turkic_Set_quads[] = {
     2549    0x0000ffff};
     2550    }
     2551
     2552    const static UnicodeSet old_turkic_Set{const_cast<UnicodeSet::run_t *>(__old_turkic_Set_runs), 4, 0, const_cast<UnicodeSet::bitquad_t *>(__old_turkic_Set_quads), 1, 0};
     2553
    10672554    /** Code Point Ranges for Old_Hungarian
    10682555    [10c80, 10cff]**/
    1069     const UnicodeSet old_hungarian_Set
    1070         {{{Empty, 2148}, {Full, 4}, {Empty, 32664}},
    1071          {}};
     2556
     2557
     2558    namespace {
     2559    const static UnicodeSet::run_t __old_hungarian_Set_runs[] = {
     2560    {Empty, 2148}, {Full, 4}, {Empty, 32664}};
     2561    const static UnicodeSet::bitquad_t * const __old_hungarian_Set_quads = nullptr;
     2562    }
     2563
     2564    const static UnicodeSet old_hungarian_Set{const_cast<UnicodeSet::run_t *>(__old_hungarian_Set_runs), 3, 0, const_cast<UnicodeSet::bitquad_t *>(__old_hungarian_Set_quads), 0, 0};
     2565
    10722566    /** Code Point Ranges for Rumi
    10732567    [10e60, 10e7f]**/
    1074     const UnicodeSet rumi_Set
    1075         {{{Empty, 2163}, {Full, 1}, {Empty, 32652}},
    1076          {}};
     2568
     2569
     2570    namespace {
     2571    const static UnicodeSet::run_t __rumi_Set_runs[] = {
     2572    {Empty, 2163}, {Full, 1}, {Empty, 32652}};
     2573    const static UnicodeSet::bitquad_t * const __rumi_Set_quads = nullptr;
     2574    }
     2575
     2576    const static UnicodeSet rumi_Set{const_cast<UnicodeSet::run_t *>(__rumi_Set_runs), 3, 0, const_cast<UnicodeSet::bitquad_t *>(__rumi_Set_quads), 0, 0};
     2577
    10772578    /** Code Point Ranges for Brahmi
    10782579    [11000, 1107f]**/
    1079     const UnicodeSet brahmi_Set
    1080         {{{Empty, 2176}, {Full, 4}, {Empty, 32636}},
    1081          {}};
     2580
     2581
     2582    namespace {
     2583    const static UnicodeSet::run_t __brahmi_Set_runs[] = {
     2584    {Empty, 2176}, {Full, 4}, {Empty, 32636}};
     2585    const static UnicodeSet::bitquad_t * const __brahmi_Set_quads = nullptr;
     2586    }
     2587
     2588    const static UnicodeSet brahmi_Set{const_cast<UnicodeSet::run_t *>(__brahmi_Set_runs), 3, 0, const_cast<UnicodeSet::bitquad_t *>(__brahmi_Set_quads), 0, 0};
     2589
    10822590    /** Code Point Ranges for Kaithi
    10832591    [11080, 110cf]**/
    1084     const UnicodeSet kaithi_Set
    1085         {{{Empty, 2180}, {Full, 2}, {Mixed, 1}, {Empty, 32633}},
    1086          {0x0000ffff}};
     2592
     2593
     2594    namespace {
     2595    const static UnicodeSet::run_t __kaithi_Set_runs[] = {
     2596    {Empty, 2180}, {Full, 2}, {Mixed, 1}, {Empty, 32633}};
     2597    const static UnicodeSet::bitquad_t  __kaithi_Set_quads[] = {
     2598    0x0000ffff};
     2599    }
     2600
     2601    const static UnicodeSet kaithi_Set{const_cast<UnicodeSet::run_t *>(__kaithi_Set_runs), 4, 0, const_cast<UnicodeSet::bitquad_t *>(__kaithi_Set_quads), 1, 0};
     2602
    10872603    /** Code Point Ranges for Sora_Sompeng
    10882604    [110d0, 110ff]**/
    1089     const UnicodeSet sora_sompeng_Set
    1090         {{{Empty, 2182}, {Mixed, 1}, {Full, 1}, {Empty, 32632}},
    1091          {0xffff0000}};
     2605
     2606
     2607    namespace {
     2608    const static UnicodeSet::run_t __sora_sompeng_Set_runs[] = {
     2609    {Empty, 2182}, {Mixed, 1}, {Full, 1}, {Empty, 32632}};
     2610    const static UnicodeSet::bitquad_t  __sora_sompeng_Set_quads[] = {
     2611    0xffff0000};
     2612    }
     2613
     2614    const static UnicodeSet sora_sompeng_Set{const_cast<UnicodeSet::run_t *>(__sora_sompeng_Set_runs), 4, 0, const_cast<UnicodeSet::bitquad_t *>(__sora_sompeng_Set_quads), 1, 0};
     2615
    10922616    /** Code Point Ranges for Chakma
    10932617    [11100, 1114f]**/
    1094     const UnicodeSet chakma_Set
    1095         {{{Empty, 2184}, {Full, 2}, {Mixed, 1}, {Empty, 32629}},
    1096          {0x0000ffff}};
     2618
     2619
     2620    namespace {
     2621    const static UnicodeSet::run_t __chakma_Set_runs[] = {
     2622    {Empty, 2184}, {Full, 2}, {Mixed, 1}, {Empty, 32629}};
     2623    const static UnicodeSet::bitquad_t  __chakma_Set_quads[] = {
     2624    0x0000ffff};
     2625    }
     2626
     2627    const static UnicodeSet chakma_Set{const_cast<UnicodeSet::run_t *>(__chakma_Set_runs), 4, 0, const_cast<UnicodeSet::bitquad_t *>(__chakma_Set_quads), 1, 0};
     2628
    10972629    /** Code Point Ranges for Mahajani
    10982630    [11150, 1117f]**/
    1099     const UnicodeSet mahajani_Set
    1100         {{{Empty, 2186}, {Mixed, 1}, {Full, 1}, {Empty, 32628}},
    1101          {0xffff0000}};
     2631
     2632
     2633    namespace {
     2634    const static UnicodeSet::run_t __mahajani_Set_runs[] = {
     2635    {Empty, 2186}, {Mixed, 1}, {Full, 1}, {Empty, 32628}};
     2636    const static UnicodeSet::bitquad_t  __mahajani_Set_quads[] = {
     2637    0xffff0000};
     2638    }
     2639
     2640    const static UnicodeSet mahajani_Set{const_cast<UnicodeSet::run_t *>(__mahajani_Set_runs), 4, 0, const_cast<UnicodeSet::bitquad_t *>(__mahajani_Set_quads), 1, 0};
     2641
    11022642    /** Code Point Ranges for Sharada
    11032643    [11180, 111df]**/
    1104     const UnicodeSet sharada_Set
    1105         {{{Empty, 2188}, {Full, 3}, {Empty, 32625}},
    1106          {}};
     2644
     2645
     2646    namespace {
     2647    const static UnicodeSet::run_t __sharada_Set_runs[] = {
     2648    {Empty, 2188}, {Full, 3}, {Empty, 32625}};
     2649    const static UnicodeSet::bitquad_t * const __sharada_Set_quads = nullptr;
     2650    }
     2651
     2652    const static UnicodeSet sharada_Set{const_cast<UnicodeSet::run_t *>(__sharada_Set_runs), 3, 0, const_cast<UnicodeSet::bitquad_t *>(__sharada_Set_quads), 0, 0};
     2653
    11072654    /** Code Point Ranges for Sinhala_Archaic_Numbers
    11082655    [111e0, 111ff]**/
    1109     const UnicodeSet sinhala_archaic_numbers_Set
    1110         {{{Empty, 2191}, {Full, 1}, {Empty, 32624}},
    1111          {}};
     2656
     2657
     2658    namespace {
     2659    const static UnicodeSet::run_t __sinhala_archaic_numbers_Set_runs[] = {
     2660    {Empty, 2191}, {Full, 1}, {Empty, 32624}};
     2661    const static UnicodeSet::bitquad_t * const __sinhala_archaic_numbers_Set_quads = nullptr;
     2662    }
     2663
     2664    const static UnicodeSet sinhala_archaic_numbers_Set{const_cast<UnicodeSet::run_t *>(__sinhala_archaic_numbers_Set_runs), 3, 0, const_cast<UnicodeSet::bitquad_t *>(__sinhala_archaic_numbers_Set_quads), 0, 0};
     2665
    11122666    /** Code Point Ranges for Khojki
    11132667    [11200, 1124f]**/
    1114     const UnicodeSet khojki_Set
    1115         {{{Empty, 2192}, {Full, 2}, {Mixed, 1}, {Empty, 32621}},
    1116          {0x0000ffff}};
     2668
     2669
     2670    namespace {
     2671    const static UnicodeSet::run_t __khojki_Set_runs[] = {
     2672    {Empty, 2192}, {Full, 2}, {Mixed, 1}, {Empty, 32621}};
     2673    const static UnicodeSet::bitquad_t  __khojki_Set_quads[] = {
     2674    0x0000ffff};
     2675    }
     2676
     2677    const static UnicodeSet khojki_Set{const_cast<UnicodeSet::run_t *>(__khojki_Set_runs), 4, 0, const_cast<UnicodeSet::bitquad_t *>(__khojki_Set_quads), 1, 0};
     2678
    11172679    /** Code Point Ranges for Multani
    11182680    [11280, 112af]**/
    1119     const UnicodeSet multani_Set
    1120         {{{Empty, 2196}, {Full, 1}, {Mixed, 1}, {Empty, 32618}},
    1121          {0x0000ffff}};
     2681
     2682
     2683    namespace {
     2684    const static UnicodeSet::run_t __multani_Set_runs[] = {
     2685    {Empty, 2196}, {Full, 1}, {Mixed, 1}, {Empty, 32618}};
     2686    const static UnicodeSet::bitquad_t  __multani_Set_quads[] = {
     2687    0x0000ffff};
     2688    }
     2689
     2690    const static UnicodeSet multani_Set{const_cast<UnicodeSet::run_t *>(__multani_Set_runs), 4, 0, const_cast<UnicodeSet::bitquad_t *>(__multani_Set_quads), 1, 0};
     2691
    11222692    /** Code Point Ranges for Khudawadi
    11232693    [112b0, 112ff]**/
    1124     const UnicodeSet khudawadi_Set
    1125         {{{Empty, 2197}, {Mixed, 1}, {Full, 2}, {Empty, 32616}},
    1126          {0xffff0000}};
     2694
     2695
     2696    namespace {
     2697    const static UnicodeSet::run_t __khudawadi_Set_runs[] = {
     2698    {Empty, 2197}, {Mixed, 1}, {Full, 2}, {Empty, 32616}};
     2699    const static UnicodeSet::bitquad_t  __khudawadi_Set_quads[] = {
     2700    0xffff0000};
     2701    }
     2702
     2703    const static UnicodeSet khudawadi_Set{const_cast<UnicodeSet::run_t *>(__khudawadi_Set_runs), 4, 0, const_cast<UnicodeSet::bitquad_t *>(__khudawadi_Set_quads), 1, 0};
     2704
    11272705    /** Code Point Ranges for Grantha
    11282706    [11300, 1137f]**/
    1129     const UnicodeSet grantha_Set
    1130         {{{Empty, 2200}, {Full, 4}, {Empty, 32612}},
    1131          {}};
     2707
     2708
     2709    namespace {
     2710    const static UnicodeSet::run_t __grantha_Set_runs[] = {
     2711    {Empty, 2200}, {Full, 4}, {Empty, 32612}};
     2712    const static UnicodeSet::bitquad_t * const __grantha_Set_quads = nullptr;
     2713    }
     2714
     2715    const static UnicodeSet grantha_Set{const_cast<UnicodeSet::run_t *>(__grantha_Set_runs), 3, 0, const_cast<UnicodeSet::bitquad_t *>(__grantha_Set_quads), 0, 0};
     2716
    11322717    /** Code Point Ranges for Newa
    11332718    [11400, 1147f]**/
    1134     const UnicodeSet newa_Set
    1135         {{{Empty, 2208}, {Full, 4}, {Empty, 32604}},
    1136          {}};
     2719
     2720
     2721    namespace {
     2722    const static UnicodeSet::run_t __newa_Set_runs[] = {
     2723    {Empty, 2208}, {Full, 4}, {Empty, 32604}};
     2724    const static UnicodeSet::bitquad_t * const __newa_Set_quads = nullptr;
     2725    }
     2726
     2727    const static UnicodeSet newa_Set{const_cast<UnicodeSet::run_t *>(__newa_Set_runs), 3, 0, const_cast<UnicodeSet::bitquad_t *>(__newa_Set_quads), 0, 0};
     2728
    11372729    /** Code Point Ranges for Tirhuta
    11382730    [11480, 114df]**/
    1139     const UnicodeSet tirhuta_Set
    1140         {{{Empty, 2212}, {Full, 3}, {Empty, 32601}},
    1141          {}};
     2731
     2732
     2733    namespace {
     2734    const static UnicodeSet::run_t __tirhuta_Set_runs[] = {
     2735    {Empty, 2212}, {Full, 3}, {Empty, 32601}};
     2736    const static UnicodeSet::bitquad_t * const __tirhuta_Set_quads = nullptr;
     2737    }
     2738
     2739    const static UnicodeSet tirhuta_Set{const_cast<UnicodeSet::run_t *>(__tirhuta_Set_runs), 3, 0, const_cast<UnicodeSet::bitquad_t *>(__tirhuta_Set_quads), 0, 0};
     2740
    11422741    /** Code Point Ranges for Siddham
    11432742    [11580, 115ff]**/
    1144     const UnicodeSet siddham_Set
    1145         {{{Empty, 2220}, {Full, 4}, {Empty, 32592}},
    1146          {}};
     2743
     2744
     2745    namespace {
     2746    const static UnicodeSet::run_t __siddham_Set_runs[] = {
     2747    {Empty, 2220}, {Full, 4}, {Empty, 32592}};
     2748    const static UnicodeSet::bitquad_t * const __siddham_Set_quads = nullptr;
     2749    }
     2750
     2751    const static UnicodeSet siddham_Set{const_cast<UnicodeSet::run_t *>(__siddham_Set_runs), 3, 0, const_cast<UnicodeSet::bitquad_t *>(__siddham_Set_quads), 0, 0};
     2752
    11472753    /** Code Point Ranges for Modi
    11482754    [11600, 1165f]**/
    1149     const UnicodeSet modi_Set
    1150         {{{Empty, 2224}, {Full, 3}, {Empty, 32589}},
    1151          {}};
     2755
     2756
     2757    namespace {
     2758    const static UnicodeSet::run_t __modi_Set_runs[] = {
     2759    {Empty, 2224}, {Full, 3}, {Empty, 32589}};
     2760    const static UnicodeSet::bitquad_t * const __modi_Set_quads = nullptr;
     2761    }
     2762
     2763    const static UnicodeSet modi_Set{const_cast<UnicodeSet::run_t *>(__modi_Set_runs), 3, 0, const_cast<UnicodeSet::bitquad_t *>(__modi_Set_quads), 0, 0};
     2764
    11522765    /** Code Point Ranges for Mongolian_Sup
    11532766    [11660, 1167f]**/
    1154     const UnicodeSet mongolian_sup_Set
    1155         {{{Empty, 2227}, {Full, 1}, {Empty, 32588}},
    1156          {}};
     2767
     2768
     2769    namespace {
     2770    const static UnicodeSet::run_t __mongolian_sup_Set_runs[] = {
     2771    {Empty, 2227}, {Full, 1}, {Empty, 32588}};
     2772    const static UnicodeSet::bitquad_t * const __mongolian_sup_Set_quads = nullptr;
     2773    }
     2774
     2775    const static UnicodeSet mongolian_sup_Set{const_cast<UnicodeSet::run_t *>(__mongolian_sup_Set_runs), 3, 0, const_cast<UnicodeSet::bitquad_t *>(__mongolian_sup_Set_quads), 0, 0};
     2776
    11572777    /** Code Point Ranges for Takri
    11582778    [11680, 116cf]**/
    1159     const UnicodeSet takri_Set
    1160         {{{Empty, 2228}, {Full, 2}, {Mixed, 1}, {Empty, 32585}},
    1161          {0x0000ffff}};
     2779
     2780
     2781    namespace {
     2782    const static UnicodeSet::run_t __takri_Set_runs[] = {
     2783    {Empty, 2228}, {Full, 2}, {Mixed, 1}, {Empty, 32585}};
     2784    const static UnicodeSet::bitquad_t  __takri_Set_quads[] = {
     2785    0x0000ffff};
     2786    }
     2787
     2788    const static UnicodeSet takri_Set{const_cast<UnicodeSet::run_t *>(__takri_Set_runs), 4, 0, const_cast<UnicodeSet::bitquad_t *>(__takri_Set_quads), 1, 0};
     2789
    11622790    /** Code Point Ranges for Ahom
    11632791    [11700, 1173f]**/
    1164     const UnicodeSet ahom_Set
    1165         {{{Empty, 2232}, {Full, 2}, {Empty, 32582}},
    1166          {}};
     2792
     2793
     2794    namespace {
     2795    const static UnicodeSet::run_t __ahom_Set_runs[] = {
     2796    {Empty, 2232}, {Full, 2}, {Empty, 32582}};
     2797    const static UnicodeSet::bitquad_t * const __ahom_Set_quads = nullptr;
     2798    }
     2799
     2800    const static UnicodeSet ahom_Set{const_cast<UnicodeSet::run_t *>(__ahom_Set_runs), 3, 0, const_cast<UnicodeSet::bitquad_t *>(__ahom_Set_quads), 0, 0};
     2801
    11672802    /** Code Point Ranges for Warang_Citi
    11682803    [118a0, 118ff]**/
    1169     const UnicodeSet warang_citi_Set
    1170         {{{Empty, 2245}, {Full, 3}, {Empty, 32568}},
    1171          {}};
     2804
     2805
     2806    namespace {
     2807    const static UnicodeSet::run_t __warang_citi_Set_runs[] = {
     2808    {Empty, 2245}, {Full, 3}, {Empty, 32568}};
     2809    const static UnicodeSet::bitquad_t * const __warang_citi_Set_quads = nullptr;
     2810    }
     2811
     2812    const static UnicodeSet warang_citi_Set{const_cast<UnicodeSet::run_t *>(__warang_citi_Set_runs), 3, 0, const_cast<UnicodeSet::bitquad_t *>(__warang_citi_Set_quads), 0, 0};
     2813
    11722814    /** Code Point Ranges for Zanabazar_Square
    11732815    [11a00, 11a4f]**/
    1174     const UnicodeSet zanabazar_square_Set
    1175         {{{Empty, 2256}, {Full, 2}, {Mixed, 1}, {Empty, 32557}},
    1176          {0x0000ffff}};
     2816
     2817
     2818    namespace {
     2819    const static UnicodeSet::run_t __zanabazar_square_Set_runs[] = {
     2820    {Empty, 2256}, {Full, 2}, {Mixed, 1}, {Empty, 32557}};
     2821    const static UnicodeSet::bitquad_t  __zanabazar_square_Set_quads[] = {
     2822    0x0000ffff};
     2823    }
     2824
     2825    const static UnicodeSet zanabazar_square_Set{const_cast<UnicodeSet::run_t *>(__zanabazar_square_Set_runs), 4, 0, const_cast<UnicodeSet::bitquad_t *>(__zanabazar_square_Set_quads), 1, 0};
     2826
    11772827    /** Code Point Ranges for Soyombo
    11782828    [11a50, 11aaf]**/
    1179     const UnicodeSet soyombo_Set
    1180         {{{Empty, 2258}, {Mixed, 1}, {Full, 2}, {Mixed, 1}, {Empty, 32554}},
    1181          {0xffff0000, 0x0000ffff}};
     2829
     2830
     2831    namespace {
     2832    const static UnicodeSet::run_t __soyombo_Set_runs[] = {
     2833    {Empty, 2258}, {Mixed, 1}, {Full, 2}, {Mixed, 1}, {Empty, 32554}};
     2834    const static UnicodeSet::bitquad_t  __soyombo_Set_quads[] = {
     2835    0xffff0000, 0x0000ffff};
     2836    }
     2837
     2838    const static UnicodeSet soyombo_Set{const_cast<UnicodeSet::run_t *>(__soyombo_Set_runs), 5, 0, const_cast<UnicodeSet::bitquad_t *>(__soyombo_Set_quads), 2, 0};
     2839
    11822840    /** Code Point Ranges for Pau_Cin_Hau
    11832841    [11ac0, 11aff]**/
    1184     const UnicodeSet pau_cin_hau_Set
    1185         {{{Empty, 2262}, {Full, 2}, {Empty, 32552}},
    1186          {}};
     2842
     2843
     2844    namespace {
     2845    const static UnicodeSet::run_t __pau_cin_hau_Set_runs[] = {
     2846    {Empty, 2262}, {Full, 2}, {Empty, 32552}};
     2847    const static UnicodeSet::bitquad_t * const __pau_cin_hau_Set_quads = nullptr;
     2848    }
     2849
     2850    const static UnicodeSet pau_cin_hau_Set{const_cast<UnicodeSet::run_t *>(__pau_cin_hau_Set_runs), 3, 0, const_cast<UnicodeSet::bitquad_t *>(__pau_cin_hau_Set_quads), 0, 0};
     2851
    11872852    /** Code Point Ranges for Bhaiksuki
    11882853    [11c00, 11c6f]**/
    1189     const UnicodeSet bhaiksuki_Set
    1190         {{{Empty, 2272}, {Full, 3}, {Mixed, 1}, {Empty, 32540}},
    1191          {0x0000ffff}};
     2854
     2855
     2856    namespace {
     2857    const static UnicodeSet::run_t __bhaiksuki_Set_runs[] = {
     2858    {Empty, 2272}, {Full, 3}, {Mixed, 1}, {Empty, 32540}};
     2859    const static UnicodeSet::bitquad_t  __bhaiksuki_Set_quads[] = {
     2860    0x0000ffff};
     2861    }
     2862
     2863    const static UnicodeSet bhaiksuki_Set{const_cast<UnicodeSet::run_t *>(__bhaiksuki_Set_runs), 4, 0, const_cast<UnicodeSet::bitquad_t *>(__bhaiksuki_Set_quads), 1, 0};
     2864
    11922865    /** Code Point Ranges for Marchen
    11932866    [11c70, 11cbf]**/
    1194     const UnicodeSet marchen_Set
    1195         {{{Empty, 2275}, {Mixed, 1}, {Full, 2}, {Empty, 32538}},
    1196          {0xffff0000}};
     2867
     2868
     2869    namespace {
     2870    const static UnicodeSet::run_t __marchen_Set_runs[] = {
     2871    {Empty, 2275}, {Mixed, 1}, {Full, 2}, {Empty, 32538}};
     2872    const static UnicodeSet::bitquad_t  __marchen_Set_quads[] = {
     2873    0xffff0000};
     2874    }
     2875
     2876    const static UnicodeSet marchen_Set{const_cast<UnicodeSet::run_t *>(__marchen_Set_runs), 4, 0, const_cast<UnicodeSet::bitquad_t *>(__marchen_Set_quads), 1, 0};
     2877
    11972878    /** Code Point Ranges for Masaram_Gondi
    11982879    [11d00, 11d5f]**/
    1199     const UnicodeSet masaram_gondi_Set
    1200         {{{Empty, 2280}, {Full, 3}, {Empty, 32533}},
    1201          {}};
     2880
     2881
     2882    namespace {
     2883    const static UnicodeSet::run_t __masaram_gondi_Set_runs[] = {
     2884    {Empty, 2280}, {Full, 3}, {Empty, 32533}};
     2885    const static UnicodeSet::bitquad_t * const __masaram_gondi_Set_quads = nullptr;
     2886    }
     2887
     2888    const static UnicodeSet masaram_gondi_Set{const_cast<UnicodeSet::run_t *>(__masaram_gondi_Set_runs), 3, 0, const_cast<UnicodeSet::bitquad_t *>(__masaram_gondi_Set_quads), 0, 0};
     2889
    12022890    /** Code Point Ranges for Cuneiform
    12032891    [12000, 123ff]**/
    1204     const UnicodeSet cuneiform_Set
    1205         {{{Empty, 2304}, {Full, 32}, {Empty, 32480}},
    1206          {}};
     2892
     2893
     2894    namespace {
     2895    const static UnicodeSet::run_t __cuneiform_Set_runs[] = {
     2896    {Empty, 2304}, {Full, 32}, {Empty, 32480}};
     2897    const static UnicodeSet::bitquad_t * const __cuneiform_Set_quads = nullptr;
     2898    }
     2899
     2900    const static UnicodeSet cuneiform_Set{const_cast<UnicodeSet::run_t *>(__cuneiform_Set_runs), 3, 0, const_cast<UnicodeSet::bitquad_t *>(__cuneiform_Set_quads), 0, 0};
     2901
    12072902    /** Code Point Ranges for Cuneiform_Numbers
    12082903    [12400, 1247f]**/
    1209     const UnicodeSet cuneiform_numbers_Set
    1210         {{{Empty, 2336}, {Full, 4}, {Empty, 32476}},
    1211          {}};
     2904
     2905
     2906    namespace {
     2907    const static UnicodeSet::run_t __cuneiform_numbers_Set_runs[] = {
     2908    {Empty, 2336}, {Full, 4}, {Empty, 32476}};
     2909    const static UnicodeSet::bitquad_t * const __cuneiform_numbers_Set_quads = nullptr;
     2910    }
     2911
     2912    const static UnicodeSet cuneiform_numbers_Set{const_cast<UnicodeSet::run_t *>(__cuneiform_numbers_Set_runs), 3, 0, const_cast<UnicodeSet::bitquad_t *>(__cuneiform_numbers_Set_quads), 0, 0};
     2913
    12122914    /** Code Point Ranges for Early_Dynastic_Cuneiform
    12132915    [12480, 1254f]**/
    1214     const UnicodeSet early_dynastic_cuneiform_Set
    1215         {{{Empty, 2340}, {Full, 6}, {Mixed, 1}, {Empty, 32469}},
    1216          {0x0000ffff}};
     2916
     2917
     2918    namespace {
     2919    const static UnicodeSet::run_t __early_dynastic_cuneiform_Set_runs[] = {
     2920    {Empty, 2340}, {Full, 6}, {Mixed, 1}, {Empty, 32469}};
     2921    const static UnicodeSet::bitquad_t  __early_dynastic_cuneiform_Set_quads[] = {
     2922    0x0000ffff};
     2923    }
     2924
     2925    const static UnicodeSet early_dynastic_cuneiform_Set{const_cast<UnicodeSet::run_t *>(__early_dynastic_cuneiform_Set_runs), 4, 0, const_cast<UnicodeSet::bitquad_t *>(__early_dynastic_cuneiform_Set_quads), 1, 0};
     2926
    12172927    /** Code Point Ranges for Egyptian_Hieroglyphs
    12182928    [13000, 1342f]**/
    1219     const UnicodeSet egyptian_hieroglyphs_Set
    1220         {{{Empty, 2432}, {Full, 33}, {Mixed, 1}, {Empty, 32350}},
    1221          {0x0000ffff}};
     2929
     2930
     2931    namespace {
     2932    const static UnicodeSet::run_t __egyptian_hieroglyphs_Set_runs[] = {
     2933    {Empty, 2432}, {Full, 33}, {Mixed, 1}, {Empty, 32350}};
     2934    const static UnicodeSet::bitquad_t  __egyptian_hieroglyphs_Set_quads[] = {
     2935    0x0000ffff};
     2936    }
     2937
     2938    const static UnicodeSet egyptian_hieroglyphs_Set{const_cast<UnicodeSet::run_t *>(__egyptian_hieroglyphs_Set_runs), 4, 0, const_cast<UnicodeSet::bitquad_t *>(__egyptian_hieroglyphs_Set_quads), 1, 0};
     2939
    12222940    /** Code Point Ranges for Anatolian_Hieroglyphs
    12232941    [14400, 1467f]**/
    1224     const UnicodeSet anatolian_hieroglyphs_Set
    1225         {{{Empty, 2592}, {Full, 20}, {Empty, 32204}},
    1226          {}};
     2942
     2943
     2944    namespace {
     2945    const static UnicodeSet::run_t __anatolian_hieroglyphs_Set_runs[] = {
     2946    {Empty, 2592}, {Full, 20}, {Empty, 32204}};
     2947    const static UnicodeSet::bitquad_t * const __anatolian_hieroglyphs_Set_quads = nullptr;
     2948    }
     2949
     2950    const static UnicodeSet anatolian_hieroglyphs_Set{const_cast<UnicodeSet::run_t *>(__anatolian_hieroglyphs_Set_runs), 3, 0, const_cast<UnicodeSet::bitquad_t *>(__anatolian_hieroglyphs_Set_quads), 0, 0};
     2951
    12272952    /** Code Point Ranges for Bamum_Sup
    12282953    [16800, 16a3f]**/
    1229     const UnicodeSet bamum_sup_Set
    1230         {{{Empty, 2880}, {Full, 18}, {Empty, 31918}},
    1231          {}};
     2954
     2955
     2956    namespace {
     2957    const static UnicodeSet::run_t __bamum_sup_Set_runs[] = {
     2958    {Empty, 2880}, {Full, 18}, {Empty, 31918}};
     2959    const static UnicodeSet::bitquad_t * const __bamum_sup_Set_quads = nullptr;
     2960    }
     2961
     2962    const static UnicodeSet bamum_sup_Set{const_cast<UnicodeSet::run_t *>(__bamum_sup_Set_runs), 3, 0, const_cast<UnicodeSet::bitquad_t *>(__bamum_sup_Set_quads), 0, 0};
     2963
    12322964    /** Code Point Ranges for Mro
    12332965    [16a40, 16a6f]**/
    1234     const UnicodeSet mro_Set
    1235         {{{Empty, 2898}, {Full, 1}, {Mixed, 1}, {Empty, 31916}},
    1236          {0x0000ffff}};
     2966
     2967
     2968    namespace {
     2969    const static UnicodeSet::run_t __mro_Set_runs[] = {
     2970    {Empty, 2898}, {Full, 1}, {Mixed, 1}, {Empty, 31916}};
     2971    const static UnicodeSet::bitquad_t  __mro_Set_quads[] = {
     2972    0x0000ffff};
     2973    }
     2974
     2975    const static UnicodeSet mro_Set{const_cast<UnicodeSet::run_t *>(__mro_Set_runs), 4, 0, const_cast<UnicodeSet::bitquad_t *>(__mro_Set_quads), 1, 0};
     2976
    12372977    /** Code Point Ranges for Bassa_Vah
    12382978    [16ad0, 16aff]**/
    1239     const UnicodeSet bassa_vah_Set
    1240         {{{Empty, 2902}, {Mixed, 1}, {Full, 1}, {Empty, 31912}},
    1241          {0xffff0000}};
     2979
     2980
     2981    namespace {
     2982    const static UnicodeSet::run_t __bassa_vah_Set_runs[] = {
     2983    {Empty, 2902}, {Mixed, 1}, {Full, 1}, {Empty, 31912}};
     2984    const static UnicodeSet::bitquad_t  __bassa_vah_Set_quads[] = {
     2985    0xffff0000};
     2986    }
     2987
     2988    const static UnicodeSet bassa_vah_Set{const_cast<UnicodeSet::run_t *>(__bassa_vah_Set_runs), 4, 0, const_cast<UnicodeSet::bitquad_t *>(__bassa_vah_Set_quads), 1, 0};
     2989
    12422990    /** Code Point Ranges for Pahawh_Hmong
    12432991    [16b00, 16b8f]**/
    1244     const UnicodeSet pahawh_hmong_Set
    1245         {{{Empty, 2904}, {Full, 4}, {Mixed, 1}, {Empty, 31907}},
    1246          {0x0000ffff}};
     2992
     2993
     2994    namespace {
     2995    const static UnicodeSet::run_t __pahawh_hmong_Set_runs[] = {
     2996    {Empty, 2904}, {Full, 4}, {Mixed, 1}, {Empty, 31907}};
     2997    const static UnicodeSet::bitquad_t  __pahawh_hmong_Set_quads[] = {
     2998    0x0000ffff};
     2999    }
     3000
     3001    const static UnicodeSet pahawh_hmong_Set{const_cast<UnicodeSet::run_t *>(__pahawh_hmong_Set_runs), 4, 0, const_cast<UnicodeSet::bitquad_t *>(__pahawh_hmong_Set_quads), 1, 0};
     3002
    12473003    /** Code Point Ranges for Miao
    12483004    [16f00, 16f9f]**/
    1249     const UnicodeSet miao_Set
    1250         {{{Empty, 2936}, {Full, 5}, {Empty, 31875}},
    1251          {}};
     3005
     3006
     3007    namespace {
     3008    const static UnicodeSet::run_t __miao_Set_runs[] = {
     3009    {Empty, 2936}, {Full, 5}, {Empty, 31875}};
     3010    const static UnicodeSet::bitquad_t * const __miao_Set_quads = nullptr;
     3011    }
     3012
     3013    const static UnicodeSet miao_Set{const_cast<UnicodeSet::run_t *>(__miao_Set_runs), 3, 0, const_cast<UnicodeSet::bitquad_t *>(__miao_Set_quads), 0, 0};
     3014
    12523015    /** Code Point Ranges for Ideographic_Symbols
    12533016    [16fe0, 16fff]**/
    1254     const UnicodeSet ideographic_symbols_Set
    1255         {{{Empty, 2943}, {Full, 1}, {Empty, 31872}},
    1256          {}};
     3017
     3018
     3019    namespace {
     3020    const static UnicodeSet::run_t __ideographic_symbols_Set_runs[] = {
     3021    {Empty, 2943}, {Full, 1}, {Empty, 31872}};
     3022    const static UnicodeSet::bitquad_t * const __ideographic_symbols_Set_quads = nullptr;
     3023    }
     3024
     3025    const static UnicodeSet ideographic_symbols_Set{const_cast<UnicodeSet::run_t *>(__ideographic_symbols_Set_runs), 3, 0, const_cast<UnicodeSet::bitquad_t *>(__ideographic_symbols_Set_quads), 0, 0};
     3026
    12573027    /** Code Point Ranges for Tangut
    12583028    [17000, 187ff]**/
    1259     const UnicodeSet tangut_Set
    1260         {{{Empty, 2944}, {Full, 192}, {Empty, 31680}},
    1261          {}};
     3029
     3030
     3031    namespace {
     3032    const static UnicodeSet::run_t __tangut_Set_runs[] = {
     3033    {Empty, 2944}, {Full, 192}, {Empty, 31680}};
     3034    const static UnicodeSet::bitquad_t * const __tangut_Set_quads = nullptr;
     3035    }
     3036
     3037    const static UnicodeSet tangut_Set{const_cast<UnicodeSet::run_t *>(__tangut_Set_runs), 3, 0, const_cast<UnicodeSet::bitquad_t *>(__tangut_Set_quads), 0, 0};
     3038
    12623039    /** Code Point Ranges for Tangut_Components
    12633040    [18800, 18aff]**/
    1264     const UnicodeSet tangut_components_Set
    1265         {{{Empty, 3136}, {Full, 24}, {Empty, 31656}},
    1266          {}};
     3041
     3042
     3043    namespace {
     3044    const static UnicodeSet::run_t __tangut_components_Set_runs[] = {
     3045    {Empty, 3136}, {Full, 24}, {Empty, 31656}};
     3046    const static UnicodeSet::bitquad_t * const __tangut_components_Set_quads = nullptr;
     3047    }
     3048
     3049    const static UnicodeSet tangut_components_Set{const_cast<UnicodeSet::run_t *>(__tangut_components_Set_runs), 3, 0, const_cast<UnicodeSet::bitquad_t *>(__tangut_components_Set_quads), 0, 0};
     3050
    12673051    /** Code Point Ranges for Kana_Sup
    12683052    [1b000, 1b0ff]**/
    1269     const UnicodeSet kana_sup_Set
    1270         {{{Empty, 3456}, {Full, 8}, {Empty, 31352}},
    1271          {}};
     3053
     3054
     3055    namespace {
     3056    const static UnicodeSet::run_t __kana_sup_Set_runs[] = {
     3057    {Empty, 3456}, {Full, 8}, {Empty, 31352}};
     3058    const static UnicodeSet::bitquad_t * const __kana_sup_Set_quads = nullptr;
     3059    }
     3060
     3061    const static UnicodeSet kana_sup_Set{const_cast<UnicodeSet::run_t *>(__kana_sup_Set_runs), 3, 0, const_cast<UnicodeSet::bitquad_t *>(__kana_sup_Set_quads), 0, 0};
     3062
    12723063    /** Code Point Ranges for Kana_Ext_A
    12733064    [1b100, 1b12f]**/
    1274     const UnicodeSet kana_ext_a_Set
    1275         {{{Empty, 3464}, {Full, 1}, {Mixed, 1}, {Empty, 31350}},
    1276          {0x0000ffff}};
     3065
     3066
     3067    namespace {
     3068    const static UnicodeSet::run_t __kana_ext_a_Set_runs[] = {
     3069    {Empty, 3464}, {Full, 1}, {Mixed, 1}, {Empty, 31350}};
     3070    const static UnicodeSet::bitquad_t  __kana_ext_a_Set_quads[] = {
     3071    0x0000ffff};
     3072    }
     3073
     3074    const static UnicodeSet kana_ext_a_Set{const_cast<UnicodeSet::run_t *>(__kana_ext_a_Set_runs), 4, 0, const_cast<UnicodeSet::bitquad_t *>(__kana_ext_a_Set_quads), 1, 0};
     3075
    12773076    /** Code Point Ranges for Nushu
    12783077    [1b170, 1b2ff]**/
    1279     const UnicodeSet nushu_Set
    1280         {{{Empty, 3467}, {Mixed, 1}, {Full, 12}, {Empty, 31336}},
    1281          {0xffff0000}};
     3078
     3079
     3080    namespace {
     3081    const static UnicodeSet::run_t __nushu_Set_runs[] = {
     3082    {Empty, 3467}, {Mixed, 1}, {Full, 12}, {Empty, 31336}};
     3083    const static UnicodeSet::bitquad_t  __nushu_Set_quads[] = {
     3084    0xffff0000};
     3085    }
     3086
     3087    const static UnicodeSet nushu_Set{const_cast<UnicodeSet::run_t *>(__nushu_Set_runs), 4, 0, const_cast<UnicodeSet::bitquad_t *>(__nushu_Set_quads), 1, 0};
     3088
    12823089    /** Code Point Ranges for Duployan
    12833090    [1bc00, 1bc9f]**/
    1284     const UnicodeSet duployan_Set
    1285         {{{Empty, 3552}, {Full, 5}, {Empty, 31259}},
    1286          {}};
     3091
     3092
     3093    namespace {
     3094    const static UnicodeSet::run_t __duployan_Set_runs[] = {
     3095    {Empty, 3552}, {Full, 5}, {Empty, 31259}};
     3096    const static UnicodeSet::bitquad_t * const __duployan_Set_quads = nullptr;
     3097    }
     3098
     3099    const static UnicodeSet duployan_Set{const_cast<UnicodeSet::run_t *>(__duployan_Set_runs), 3, 0, const_cast<UnicodeSet::bitquad_t *>(__duployan_Set_quads), 0, 0};
     3100
    12873101    /** Code Point Ranges for Shorthand_Format_Controls
    12883102    [1bca0, 1bcaf]**/
    1289     const UnicodeSet shorthand_format_controls_Set
    1290         {{{Empty, 3557}, {Mixed, 1}, {Empty, 31258}},
    1291          {0x0000ffff}};
     3103
     3104
     3105    namespace {
     3106    const static UnicodeSet::run_t __shorthand_format_controls_Set_runs[] = {
     3107    {Empty, 3557}, {Mixed, 1}, {Empty, 31258}};
     3108    const static UnicodeSet::bitquad_t  __shorthand_format_controls_Set_quads[] = {
     3109    0x0000ffff};
     3110    }
     3111
     3112    const static UnicodeSet shorthand_format_controls_Set{const_cast<UnicodeSet::run_t *>(__shorthand_format_controls_Set_runs), 3, 0, const_cast<UnicodeSet::bitquad_t *>(__shorthand_format_controls_Set_quads), 1, 0};
     3113
    12923114    /** Code Point Ranges for Byzantine_Music
    12933115    [1d000, 1d0ff]**/
    1294     const UnicodeSet byzantine_music_Set
    1295         {{{Empty, 3712}, {Full, 8}, {Empty, 31096}},
    1296          {}};
     3116
     3117
     3118    namespace {
     3119    const static UnicodeSet::run_t __byzantine_music_Set_runs[] = {
     3120    {Empty, 3712}, {Full, 8}, {Empty, 31096}};
     3121    const static UnicodeSet::bitquad_t * const __byzantine_music_Set_quads = nullptr;
     3122    }
     3123
     3124    const static UnicodeSet byzantine_music_Set{const_cast<UnicodeSet::run_t *>(__byzantine_music_Set_runs), 3, 0, const_cast<UnicodeSet::bitquad_t *>(__byzantine_music_Set_quads), 0, 0};
     3125
    12973126    /** Code Point Ranges for Music
    12983127    [1d100, 1d1ff]**/
    1299     const UnicodeSet music_Set
    1300         {{{Empty, 3720}, {Full, 8}, {Empty, 31088}},
    1301          {}};
     3128
     3129
     3130    namespace {
     3131    const static UnicodeSet::run_t __music_Set_runs[] = {
     3132    {Empty, 3720}, {Full, 8}, {Empty, 31088}};
     3133    const static UnicodeSet::bitquad_t * const __music_Set_quads = nullptr;
     3134    }
     3135
     3136    const static UnicodeSet music_Set{const_cast<UnicodeSet::run_t *>(__music_Set_runs), 3, 0, const_cast<UnicodeSet::bitquad_t *>(__music_Set_quads), 0, 0};
     3137
    13023138    /** Code Point Ranges for Ancient_Greek_Music
    13033139    [1d200, 1d24f]**/
    1304     const UnicodeSet ancient_greek_music_Set
    1305         {{{Empty, 3728}, {Full, 2}, {Mixed, 1}, {Empty, 31085}},
    1306          {0x0000ffff}};
     3140
     3141
     3142    namespace {
     3143    const static UnicodeSet::run_t __ancient_greek_music_Set_runs[] = {
     3144    {Empty, 3728}, {Full, 2}, {Mixed, 1}, {Empty, 31085}};
     3145    const static UnicodeSet::bitquad_t  __ancient_greek_music_Set_quads[] = {
     3146    0x0000ffff};
     3147    }
     3148
     3149    const static UnicodeSet ancient_greek_music_Set{const_cast<UnicodeSet::run_t *>(__ancient_greek_music_Set_runs), 4, 0, const_cast<UnicodeSet::bitquad_t *>(__ancient_greek_music_Set_quads), 1, 0};
     3150
    13073151    /** Code Point Ranges for Tai_Xuan_Jing
    13083152    [1d300, 1d35f]**/
    1309     const UnicodeSet tai_xuan_jing_Set
    1310         {{{Empty, 3736}, {Full, 3}, {Empty, 31077}},
    1311          {}};
     3153
     3154
     3155    namespace {
     3156    const static UnicodeSet::run_t __tai_xuan_jing_Set_runs[] = {
     3157    {Empty, 3736}, {Full, 3}, {Empty, 31077}};
     3158    const static UnicodeSet::bitquad_t * const __tai_xuan_jing_Set_quads = nullptr;
     3159    }
     3160
     3161    const static UnicodeSet tai_xuan_jing_Set{const_cast<UnicodeSet::run_t *>(__tai_xuan_jing_Set_runs), 3, 0, const_cast<UnicodeSet::bitquad_t *>(__tai_xuan_jing_Set_quads), 0, 0};
     3162
    13123163    /** Code Point Ranges for Counting_Rod
    13133164    [1d360, 1d37f]**/
    1314     const UnicodeSet counting_rod_Set
    1315         {{{Empty, 3739}, {Full, 1}, {Empty, 31076}},
    1316          {}};
     3165
     3166
     3167    namespace {
     3168    const static UnicodeSet::run_t __counting_rod_Set_runs[] = {
     3169    {Empty, 3739}, {Full, 1}, {Empty, 31076}};
     3170    const static UnicodeSet::bitquad_t * const __counting_rod_Set_quads = nullptr;
     3171    }
     3172
     3173    const static UnicodeSet counting_rod_Set{const_cast<UnicodeSet::run_t *>(__counting_rod_Set_runs), 3, 0, const_cast<UnicodeSet::bitquad_t *>(__counting_rod_Set_quads), 0, 0};
     3174
    13173175    /** Code Point Ranges for Math_Alphanum
    13183176    [1d400, 1d7ff]**/
    1319     const UnicodeSet math_alphanum_Set
    1320         {{{Empty, 3744}, {Full, 32}, {Empty, 31040}},
    1321          {}};
     3177
     3178
     3179    namespace {
     3180    const static UnicodeSet::run_t __math_alphanum_Set_runs[] = {
     3181    {Empty, 3744}, {Full, 32}, {Empty, 31040}};
     3182    const static UnicodeSet::bitquad_t * const __math_alphanum_Set_quads = nullptr;
     3183    }
     3184
     3185    const static UnicodeSet math_alphanum_Set{const_cast<UnicodeSet::run_t *>(__math_alphanum_Set_runs), 3, 0, const_cast<UnicodeSet::bitquad_t *>(__math_alphanum_Set_quads), 0, 0};
     3186
    13223187    /** Code Point Ranges for Sutton_SignWriting
    13233188    [1d800, 1daaf]**/
    1324     const UnicodeSet sutton_signwriting_Set
    1325         {{{Empty, 3776}, {Full, 21}, {Mixed, 1}, {Empty, 31018}},
    1326          {0x0000ffff}};
     3189
     3190
     3191    namespace {
     3192    const static UnicodeSet::run_t __sutton_signwriting_Set_runs[] = {
     3193    {Empty, 3776}, {Full, 21}, {Mixed, 1}, {Empty, 31018}};
     3194    const static UnicodeSet::bitquad_t  __sutton_signwriting_Set_quads[] = {
     3195    0x0000ffff};
     3196    }
     3197
     3198    const static UnicodeSet sutton_signwriting_Set{const_cast<UnicodeSet::run_t *>(__sutton_signwriting_Set_runs), 4, 0, const_cast<UnicodeSet::bitquad_t *>(__sutton_signwriting_Set_quads), 1, 0};
     3199
    13273200    /** Code Point Ranges for Glagolitic_Sup
    13283201    [1e000, 1e02f]**/
    1329     const UnicodeSet glagolitic_sup_Set
    1330         {{{Empty, 3840}, {Full, 1}, {Mixed, 1}, {Empty, 30974}},
    1331          {0x0000ffff}};
     3202
     3203
     3204    namespace {
     3205    const static UnicodeSet::run_t __glagolitic_sup_Set_runs[] = {
     3206    {Empty, 3840}, {Full, 1}, {Mixed, 1}, {Empty, 30974}};
     3207    const static UnicodeSet::bitquad_t  __glagolitic_sup_Set_quads[] = {
     3208    0x0000ffff};
     3209    }
     3210
     3211    const static UnicodeSet glagolitic_sup_Set{const_cast<UnicodeSet::run_t *>(__glagolitic_sup_Set_runs), 4, 0, const_cast<UnicodeSet::bitquad_t *>(__glagolitic_sup_Set_quads), 1, 0};
     3212
    13323213    /** Code Point Ranges for Mende_Kikakui
    13333214    [1e800, 1e8df]**/
    1334     const UnicodeSet mende_kikakui_Set
    1335         {{{Empty, 3904}, {Full, 7}, {Empty, 30905}},
    1336          {}};
     3215
     3216
     3217    namespace {
     3218    const static UnicodeSet::run_t __mende_kikakui_Set_runs[] = {
     3219    {Empty, 3904}, {Full, 7}, {Empty, 30905}};
     3220    const static UnicodeSet::bitquad_t * const __mende_kikakui_Set_quads = nullptr;
     3221    }
     3222
     3223    const static UnicodeSet mende_kikakui_Set{const_cast<UnicodeSet::run_t *>(__mende_kikakui_Set_runs), 3, 0, const_cast<UnicodeSet::bitquad_t *>(__mende_kikakui_Set_quads), 0, 0};
     3224
    13373225    /** Code Point Ranges for Adlam
    13383226    [1e900, 1e95f]**/
    1339     const UnicodeSet adlam_Set
    1340         {{{Empty, 3912}, {Full, 3}, {Empty, 30901}},
    1341          {}};
     3227
     3228
     3229    namespace {
     3230    const static UnicodeSet::run_t __adlam_Set_runs[] = {
     3231    {Empty, 3912}, {Full, 3}, {Empty, 30901}};
     3232    const static UnicodeSet::bitquad_t * const __adlam_Set_quads = nullptr;
     3233    }
     3234
     3235    const static UnicodeSet adlam_Set{const_cast<UnicodeSet::run_t *>(__adlam_Set_runs), 3, 0, const_cast<UnicodeSet::bitquad_t *>(__adlam_Set_quads), 0, 0};
     3236
    13423237    /** Code Point Ranges for Arabic_Math
    13433238    [1ee00, 1eeff]**/
    1344     const UnicodeSet arabic_math_Set
    1345         {{{Empty, 3952}, {Full, 8}, {Empty, 30856}},
    1346          {}};
     3239
     3240
     3241    namespace {
     3242    const static UnicodeSet::run_t __arabic_math_Set_runs[] = {
     3243    {Empty, 3952}, {Full, 8}, {Empty, 30856}};
     3244    const static UnicodeSet::bitquad_t * const __arabic_math_Set_quads = nullptr;
     3245    }
     3246
     3247    const static UnicodeSet arabic_math_Set{const_cast<UnicodeSet::run_t *>(__arabic_math_Set_runs), 3, 0, const_cast<UnicodeSet::bitquad_t *>(__arabic_math_Set_quads), 0, 0};
     3248
    13473249    /** Code Point Ranges for Mahjong
    13483250    [1f000, 1f02f]**/
    1349     const UnicodeSet mahjong_Set
    1350         {{{Empty, 3968}, {Full, 1}, {Mixed, 1}, {Empty, 30846}},
    1351          {0x0000ffff}};
     3251
     3252
     3253    namespace {
     3254    const static UnicodeSet::run_t __mahjong_Set_runs[] = {
     3255    {Empty, 3968}, {Full, 1}, {Mixed, 1}, {Empty, 30846}};
     3256    const static UnicodeSet::bitquad_t  __mahjong_Set_quads[] = {
     3257    0x0000ffff};
     3258    }
     3259
     3260    const static UnicodeSet mahjong_Set{const_cast<UnicodeSet::run_t *>(__mahjong_Set_runs), 4, 0, const_cast<UnicodeSet::bitquad_t *>(__mahjong_Set_quads), 1, 0};
     3261
    13523262    /** Code Point Ranges for Domino
    13533263    [1f030, 1f09f]**/
    1354     const UnicodeSet domino_Set
    1355         {{{Empty, 3969}, {Mixed, 1}, {Full, 3}, {Empty, 30843}},
    1356          {0xffff0000}};
     3264
     3265
     3266    namespace {
     3267    const static UnicodeSet::run_t __domino_Set_runs[] = {
     3268    {Empty, 3969}, {Mixed, 1}, {Full, 3}, {Empty, 30843}};
     3269    const static UnicodeSet::bitquad_t  __domino_Set_quads[] = {
     3270    0xffff0000};
     3271    }
     3272
     3273    const static UnicodeSet domino_Set{const_cast<UnicodeSet::run_t *>(__domino_Set_runs), 4, 0, const_cast<UnicodeSet::bitquad_t *>(__domino_Set_quads), 1, 0};
     3274
    13573275    /** Code Point Ranges for Playing_Cards
    13583276    [1f0a0, 1f0ff]**/
    1359     const UnicodeSet playing_cards_Set
    1360         {{{Empty, 3973}, {Full, 3}, {Empty, 30840}},
    1361          {}};
     3277
     3278
     3279    namespace {
     3280    const static UnicodeSet::run_t __playing_cards_Set_runs[] = {
     3281    {Empty, 3973}, {Full, 3}, {Empty, 30840}};
     3282    const static UnicodeSet::bitquad_t * const __playing_cards_Set_quads = nullptr;
     3283    }
     3284
     3285    const static UnicodeSet playing_cards_Set{const_cast<UnicodeSet::run_t *>(__playing_cards_Set_runs), 3, 0, const_cast<UnicodeSet::bitquad_t *>(__playing_cards_Set_quads), 0, 0};
     3286
    13623287    /** Code Point Ranges for Enclosed_Alphanum_Sup
    13633288    [1f100, 1f1ff]**/
    1364     const UnicodeSet enclosed_alphanum_sup_Set
    1365         {{{Empty, 3976}, {Full, 8}, {Empty, 30832}},
    1366          {}};
     3289
     3290
     3291    namespace {
     3292    const static UnicodeSet::run_t __enclosed_alphanum_sup_Set_runs[] = {
     3293    {Empty, 3976}, {Full, 8}, {Empty, 30832}};
     3294    const static UnicodeSet::bitquad_t * const __enclosed_alphanum_sup_Set_quads = nullptr;
     3295    }
     3296
     3297    const static UnicodeSet enclosed_alphanum_sup_Set{const_cast<UnicodeSet::run_t *>(__enclosed_alphanum_sup_Set_runs), 3, 0, const_cast<UnicodeSet::bitquad_t *>(__enclosed_alphanum_sup_Set_quads), 0, 0};
     3298
    13673299    /** Code Point Ranges for Enclosed_Ideographic_Sup
    13683300    [1f200, 1f2ff]**/
    1369     const UnicodeSet enclosed_ideographic_sup_Set
    1370         {{{Empty, 3984}, {Full, 8}, {Empty, 30824}},
    1371          {}};
     3301
     3302
     3303    namespace {
     3304    const static UnicodeSet::run_t __enclosed_ideographic_sup_Set_runs[] = {
     3305    {Empty, 3984}, {Full, 8}, {Empty, 30824}};
     3306    const static UnicodeSet::bitquad_t * const __enclosed_ideographic_sup_Set_quads = nullptr;
     3307    }
     3308
     3309    const static UnicodeSet enclosed_ideographic_sup_Set{const_cast<UnicodeSet::run_t *>(__enclosed_ideographic_sup_Set_runs), 3, 0, const_cast<UnicodeSet::bitquad_t *>(__enclosed_ideographic_sup_Set_quads), 0, 0};
     3310
    13723311    /** Code Point Ranges for Misc_Pictographs
    13733312    [1f300, 1f5ff]**/
    1374     const UnicodeSet misc_pictographs_Set
    1375         {{{Empty, 3992}, {Full, 24}, {Empty, 30800}},
    1376          {}};
     3313
     3314
     3315    namespace {
     3316    const static UnicodeSet::run_t __misc_pictographs_Set_runs[] = {
     3317    {Empty, 3992}, {Full, 24}, {Empty, 30800}};
     3318    const static UnicodeSet::bitquad_t * const __misc_pictographs_Set_quads = nullptr;
     3319    }
     3320
     3321    const static UnicodeSet misc_pictographs_Set{const_cast<UnicodeSet::run_t *>(__misc_pictographs_Set_runs), 3, 0, const_cast<UnicodeSet::bitquad_t *>(__misc_pictographs_Set_quads), 0, 0};
     3322
    13773323    /** Code Point Ranges for Emoticons
    13783324    [1f600, 1f64f]**/
    1379     const UnicodeSet emoticons_Set
    1380         {{{Empty, 4016}, {Full, 2}, {Mixed, 1}, {Empty, 30797}},
    1381          {0x0000ffff}};
     3325
     3326
     3327    namespace {
     3328    const static UnicodeSet::run_t __emoticons_Set_runs[] = {
     3329    {Empty, 4016}, {Full, 2}, {Mixed, 1}, {Empty, 30797}};
     3330    const static UnicodeSet::bitquad_t  __emoticons_Set_quads[] = {
     3331    0x0000ffff};
     3332    }
     3333
     3334    const static UnicodeSet emoticons_Set{const_cast<UnicodeSet::run_t *>(__emoticons_Set_runs), 4, 0, const_cast<UnicodeSet::bitquad_t *>(__emoticons_Set_quads), 1, 0};
     3335
    13823336    /** Code Point Ranges for Ornamental_Dingbats
    13833337    [1f650, 1f67f]**/
    1384     const UnicodeSet ornamental_dingbats_Set
    1385         {{{Empty, 4018}, {Mixed, 1}, {Full, 1}, {Empty, 30796}},
    1386          {0xffff0000}};
     3338
     3339
     3340    namespace {
     3341    const static UnicodeSet::run_t __ornamental_dingbats_Set_runs[] = {
     3342    {Empty, 4018}, {Mixed, 1}, {Full, 1}, {Empty, 30796}};
     3343    const static UnicodeSet::bitquad_t  __ornamental_dingbats_Set_quads[] = {
     3344    0xffff0000};
     3345    }
     3346
     3347    const static UnicodeSet ornamental_dingbats_Set{const_cast<UnicodeSet::run_t *>(__ornamental_dingbats_Set_runs), 4, 0, const_cast<UnicodeSet::bitquad_t *>(__ornamental_dingbats_Set_quads), 1, 0};
     3348
    13873349    /** Code Point Ranges for Transport_And_Map
    13883350    [1f680, 1f6ff]**/
    1389     const UnicodeSet transport_and_map_Set
    1390         {{{Empty, 4020}, {Full, 4}, {Empty, 30792}},
    1391          {}};
     3351
     3352
     3353    namespace {
     3354    const static UnicodeSet::run_t __transport_and_map_Set_runs[] = {
     3355    {Empty, 4020}, {Full, 4}, {Empty, 30792}};
     3356    const static UnicodeSet::bitquad_t * const __transport_and_map_Set_quads = nullptr;
     3357    }
     3358
     3359    const static UnicodeSet transport_and_map_Set{const_cast<UnicodeSet::run_t *>(__transport_and_map_Set_runs), 3, 0, const_cast<UnicodeSet::bitquad_t *>(__transport_and_map_Set_quads), 0, 0};
     3360
    13923361    /** Code Point Ranges for Alchemical
    13933362    [1f700, 1f77f]**/
    1394     const UnicodeSet alchemical_Set
    1395         {{{Empty, 4024}, {Full, 4}, {Empty, 30788}},
    1396          {}};
     3363
     3364
     3365    namespace {
     3366    const static UnicodeSet::run_t __alchemical_Set_runs[] = {
     3367    {Empty, 4024}, {Full, 4}, {Empty, 30788}};
     3368    const static UnicodeSet::bitquad_t * const __alchemical_Set_quads = nullptr;
     3369    }
     3370
     3371    const static UnicodeSet alchemical_Set{const_cast<UnicodeSet::run_t *>(__alchemical_Set_runs), 3, 0, const_cast<UnicodeSet::bitquad_t *>(__alchemical_Set_quads), 0, 0};
     3372
    13973373    /** Code Point Ranges for Geometric_Shapes_Ext
    13983374    [1f780, 1f7ff]**/
    1399     const UnicodeSet geometric_shapes_ext_Set
    1400         {{{Empty, 4028}, {Full, 4}, {Empty, 30784}},
    1401          {}};
     3375
     3376
     3377    namespace {
     3378    const static UnicodeSet::run_t __geometric_shapes_ext_Set_runs[] = {
     3379    {Empty, 4028}, {Full, 4}, {Empty, 30784}};
     3380    const static UnicodeSet::bitquad_t * const __geometric_shapes_ext_Set_quads = nullptr;
     3381    }
     3382
     3383    const static UnicodeSet geometric_shapes_ext_Set{const_cast<UnicodeSet::run_t *>(__geometric_shapes_ext_Set_runs), 3, 0, const_cast<UnicodeSet::bitquad_t *>(__geometric_shapes_ext_Set_quads), 0, 0};
     3384
    14023385    /** Code Point Ranges for Sup_Arrows_C
    14033386    [1f800, 1f8ff]**/
    1404     const UnicodeSet sup_arrows_c_Set
    1405         {{{Empty, 4032}, {Full, 8}, {Empty, 30776}},
    1406          {}};
     3387
     3388
     3389    namespace {
     3390    const static UnicodeSet::run_t __sup_arrows_c_Set_runs[] = {
     3391    {Empty, 4032}, {Full, 8}, {Empty, 30776}};
     3392    const static UnicodeSet::bitquad_t * const __sup_arrows_c_Set_quads = nullptr;
     3393    }
     3394
     3395    const static UnicodeSet sup_arrows_c_Set{const_cast<UnicodeSet::run_t *>(__sup_arrows_c_Set_runs), 3, 0, const_cast<UnicodeSet::bitquad_t *>(__sup_arrows_c_Set_quads), 0, 0};
     3396
    14073397    /** Code Point Ranges for Sup_Symbols_And_Pictographs
    14083398    [1f900, 1f9ff]**/
    1409     const UnicodeSet sup_symbols_and_pictographs_Set
    1410         {{{Empty, 4040}, {Full, 8}, {Empty, 30768}},
    1411          {}};
     3399
     3400
     3401    namespace {
     3402    const static UnicodeSet::run_t __sup_symbols_and_pictographs_Set_runs[] = {
     3403    {Empty, 4040}, {Full, 8}, {Empty, 30768}};
     3404    const static UnicodeSet::bitquad_t * const __sup_symbols_and_pictographs_Set_quads = nullptr;
     3405    }
     3406
     3407    const static UnicodeSet sup_symbols_and_pictographs_Set{const_cast<UnicodeSet::run_t *>(__sup_symbols_and_pictographs_Set_runs), 3, 0, const_cast<UnicodeSet::bitquad_t *>(__sup_symbols_and_pictographs_Set_quads), 0, 0};
     3408
    14123409    /** Code Point Ranges for CJK_Ext_B
    14133410    [20000, 2a6df]**/
    1414     const UnicodeSet cjk_ext_b_Set
    1415         {{{Empty, 4096}, {Full, 1335}, {Empty, 29385}},
    1416          {}};
     3411
     3412
     3413    namespace {
     3414    const static UnicodeSet::run_t __cjk_ext_b_Set_runs[] = {
     3415    {Empty, 4096}, {Full, 1335}, {Empty, 29385}};
     3416    const static UnicodeSet::bitquad_t * const __cjk_ext_b_Set_quads = nullptr;
     3417    }
     3418
     3419    const static UnicodeSet cjk_ext_b_Set{const_cast<UnicodeSet::run_t *>(__cjk_ext_b_Set_runs), 3, 0, const_cast<UnicodeSet::bitquad_t *>(__cjk_ext_b_Set_quads), 0, 0};
     3420
    14173421    /** Code Point Ranges for CJK_Ext_C
    14183422    [2a700, 2b73f]**/
    1419     const UnicodeSet cjk_ext_c_Set
    1420         {{{Empty, 5432}, {Full, 130}, {Empty, 29254}},
    1421          {}};
     3423
     3424
     3425    namespace {
     3426    const static UnicodeSet::run_t __cjk_ext_c_Set_runs[] = {
     3427    {Empty, 5432}, {Full, 130}, {Empty, 29254}};
     3428    const static UnicodeSet::bitquad_t * const __cjk_ext_c_Set_quads = nullptr;
     3429    }
     3430
     3431    const static UnicodeSet cjk_ext_c_Set{const_cast<UnicodeSet::run_t *>(__cjk_ext_c_Set_runs), 3, 0, const_cast<UnicodeSet::bitquad_t *>(__cjk_ext_c_Set_quads), 0, 0};
     3432
    14223433    /** Code Point Ranges for CJK_Ext_D
    14233434    [2b740, 2b81f]**/
    1424     const UnicodeSet cjk_ext_d_Set
    1425         {{{Empty, 5562}, {Full, 7}, {Empty, 29247}},
    1426          {}};
     3435
     3436
     3437    namespace {
     3438    const static UnicodeSet::run_t __cjk_ext_d_Set_runs[] = {
     3439    {Empty, 5562}, {Full, 7}, {Empty, 29247}};
     3440    const static UnicodeSet::bitquad_t * const __cjk_ext_d_Set_quads = nullptr;
     3441    }
     3442
     3443    const static UnicodeSet cjk_ext_d_Set{const_cast<UnicodeSet::run_t *>(__cjk_ext_d_Set_runs), 3, 0, const_cast<UnicodeSet::bitquad_t *>(__cjk_ext_d_Set_quads), 0, 0};
     3444
    14273445    /** Code Point Ranges for CJK_Ext_E
    14283446    [2b820, 2ceaf]**/
    1429     const UnicodeSet cjk_ext_e_Set
    1430         {{{Empty, 5569}, {Full, 180}, {Mixed, 1}, {Empty, 29066}},
    1431          {0x0000ffff}};
     3447
     3448
     3449    namespace {
     3450    const static UnicodeSet::run_t __cjk_ext_e_Set_runs[] = {
     3451    {Empty, 5569}, {Full, 180}, {Mixed, 1}, {Empty, 29066}};
     3452    const static UnicodeSet::bitquad_t  __cjk_ext_e_Set_quads[] = {
     3453    0x0000ffff};
     3454    }
     3455
     3456    const static UnicodeSet cjk_ext_e_Set{const_cast<UnicodeSet::run_t *>(__cjk_ext_e_Set_runs), 4, 0, const_cast<UnicodeSet::bitquad_t *>(__cjk_ext_e_Set_quads), 1, 0};
     3457
    14323458    /** Code Point Ranges for CJK_Ext_F
    14333459    [2ceb0, 2ebef]**/
    1434     const UnicodeSet cjk_ext_f_Set
    1435         {{{Empty, 5749}, {Mixed, 1}, {Full, 233}, {Mixed, 1},
    1436           {Empty, 28832}},
    1437          {0xffff0000, 0x0000ffff}};
     3460
     3461
     3462    namespace {
     3463    const static UnicodeSet::run_t __cjk_ext_f_Set_runs[] = {
     3464    {Empty, 5749}, {Mixed, 1}, {Full, 233}, {Mixed, 1}, {Empty, 28832}};
     3465    const static UnicodeSet::bitquad_t  __cjk_ext_f_Set_quads[] = {
     3466    0xffff0000, 0x0000ffff};
     3467    }
     3468
     3469    const static UnicodeSet cjk_ext_f_Set{const_cast<UnicodeSet::run_t *>(__cjk_ext_f_Set_runs), 5, 0, const_cast<UnicodeSet::bitquad_t *>(__cjk_ext_f_Set_quads), 2, 0};
     3470
    14383471    /** Code Point Ranges for CJK_Compat_Ideographs_Sup
    14393472    [2f800, 2fa1f]**/
    1440     const UnicodeSet cjk_compat_ideographs_sup_Set
    1441         {{{Empty, 6080}, {Full, 17}, {Empty, 28719}},
    1442          {}};
     3473
     3474
     3475    namespace {
     3476    const static UnicodeSet::run_t __cjk_compat_ideographs_sup_Set_runs[] = {
     3477    {Empty, 6080}, {Full, 17}, {Empty, 28719}};
     3478    const static UnicodeSet::bitquad_t * const __cjk_compat_ideographs_sup_Set_quads = nullptr;
     3479    }
     3480
     3481    const static UnicodeSet cjk_compat_ideographs_sup_Set{const_cast<UnicodeSet::run_t *>(__cjk_compat_ideographs_sup_Set_runs), 3, 0, const_cast<UnicodeSet::bitquad_t *>(__cjk_compat_ideographs_sup_Set_quads), 0, 0};
     3482
    14433483    /** Code Point Ranges for Tags
    14443484    [e0000, e007f]**/
    1445     const UnicodeSet tags_Set
    1446         {{{Empty, 28672}, {Full, 4}, {Empty, 6140}},
    1447          {}};
     3485
     3486
     3487    namespace {
     3488    const static UnicodeSet::run_t __tags_Set_runs[] = {
     3489    {Empty, 28672}, {Full, 4}, {Empty, 6140}};
     3490    const static UnicodeSet::bitquad_t * const __tags_Set_quads = nullptr;
     3491    }
     3492
     3493    const static UnicodeSet tags_Set{const_cast<UnicodeSet::run_t *>(__tags_Set_runs), 3, 0, const_cast<UnicodeSet::bitquad_t *>(__tags_Set_quads), 0, 0};
     3494
    14483495    /** Code Point Ranges for VS_Sup
    14493496    [e0100, e01ef]**/
    1450     const UnicodeSet vs_sup_Set
    1451         {{{Empty, 28680}, {Full, 7}, {Mixed, 1}, {Empty, 6128}},
    1452          {0x0000ffff}};
     3497
     3498
     3499    namespace {
     3500    const static UnicodeSet::run_t __vs_sup_Set_runs[] = {
     3501    {Empty, 28680}, {Full, 7}, {Mixed, 1}, {Empty, 6128}};
     3502    const static UnicodeSet::bitquad_t  __vs_sup_Set_quads[] = {
     3503    0x0000ffff};
     3504    }
     3505
     3506    const static UnicodeSet vs_sup_Set{const_cast<UnicodeSet::run_t *>(__vs_sup_Set_runs), 4, 0, const_cast<UnicodeSet::bitquad_t *>(__vs_sup_Set_quads), 1, 0};
     3507
    14533508    /** Code Point Ranges for Sup_PUA_A
    14543509    [f0000, fffff]**/
    1455     const UnicodeSet sup_pua_a_Set
    1456         {{{Empty, 30720}, {Full, 2048}, {Empty, 2048}},
    1457          {}};
     3510
     3511
     3512    namespace {
     3513    const static UnicodeSet::run_t __sup_pua_a_Set_runs[] = {
     3514    {Empty, 30720}, {Full, 2048}, {Empty, 2048}};
     3515    const static UnicodeSet::bitquad_t * const __sup_pua_a_Set_quads = nullptr;
     3516    }
     3517
     3518    const static UnicodeSet sup_pua_a_Set{const_cast<UnicodeSet::run_t *>(__sup_pua_a_Set_runs), 3, 0, const_cast<UnicodeSet::bitquad_t *>(__sup_pua_a_Set_quads), 0, 0};
     3519
    14583520    /** Code Point Ranges for Sup_PUA_B
    14593521    [100000, 10ffff]**/
    1460     const UnicodeSet sup_pua_b_Set
    1461         {{{Empty, 32768}, {Full, 2048}},
    1462          {}};
     3522
     3523
     3524    namespace {
     3525    const static UnicodeSet::run_t __sup_pua_b_Set_runs[] = {
     3526    {Empty, 32768}, {Full, 2048}};
     3527    const static UnicodeSet::bitquad_t * const __sup_pua_b_Set_quads = nullptr;
     3528    }
     3529
     3530    const static UnicodeSet sup_pua_b_Set{const_cast<UnicodeSet::run_t *>(__sup_pua_b_Set_runs), 2, 0, const_cast<UnicodeSet::bitquad_t *>(__sup_pua_b_Set_quads), 0, 0};
     3531
    14633532    static EnumeratedPropertyObject property_object
    14643533        {blk,
    14653534         BLK_ns::independent_prop_values,
    1466          BLK_ns::enum_names,
    1467          BLK_ns::value_names,
    1468          BLK_ns::aliases_only_map,
    1469          {&nb_Set, &ascii_Set, &latin_1_sup_Set, &latin_ext_a_Set,
     3535         std::move(BLK_ns::enum_names),
     3536         std::move(BLK_ns::value_names),
     3537         std::move(BLK_ns::aliases_only_map),{
     3538&nb_Set, &ascii_Set, &latin_1_sup_Set, &latin_ext_a_Set,
    14703539        &latin_ext_b_Set, &ipa_ext_Set, &modifier_letters_Set,
    14713540        &diacriticals_Set, &greek_Set, &cyrillic_Set, &cyrillic_sup_Set,
  • icGREP/icgrep-devel/icgrep/UCD/CaseFolding.cpp

    r5673 r5748  
    99#include <algorithm>
    1010
    11 using namespace re;
     11using namespace UCD;
    1212
    1313int findFoldEntry(const codepoint_t cp) {
     
    2626}
    2727
    28 void caseInsensitiveInsertRange(CC * cc, const codepoint_t lo, const codepoint_t hi) {
     28void caseInsensitiveInsertRange(UnicodeSet * const cc, const codepoint_t lo, const codepoint_t hi) {
    2929    cc->insert_range(lo, hi);
    3030    // Find the first foldTable entry overlapping the (lo, hi) range.
  • icGREP/icgrep-devel/icgrep/UCD/CaseFolding.h

    r5673 r5748  
    1212#include "PropertyObjects.h"
    1313#include "PropertyValueAliases.h"
    14 #include "re/re_cc.h"
    1514#include "unicode_set.h"
    1615#include <vector>
    1716
    18 typedef unsigned codepoint_t;
    19 
    2017struct FoldEntry {
    21     re::codepoint_t range_lo;
    22     int fold_offset;
    23     std::vector<re::interval_t> fold_pairs;
     18    const UCD::codepoint_t range_lo;
     19    const int fold_offset;
     20    const std::vector<UCD::interval_t> fold_pairs;
    2421};
    2522
    26 
    27 void caseInsensitiveInsertRange(re::CC * cc, const re::codepoint_t lo, const re::codepoint_t hi);
    28 
    29 inline void caseInsensitiveInsert(re::CC * cc, const re::codepoint_t cp) {
     23void caseInsensitiveInsertRange(UCD::UnicodeSet * const cc, const UCD::codepoint_t lo, const UCD::codepoint_t hi);
     24
     25inline void caseInsensitiveInsert(UCD::UnicodeSet * const cc, const UCD::codepoint_t cp) {
    3026    caseInsensitiveInsertRange(cc, cp, cp);
    3127}
     
    312308        /** Code Point Ranges for scf mapping to <none>
    313309        **/
    314 
    315         const UnicodeSet null_codepoint_set
    316                     {{{Empty, 34816}},
    317              {}};
     310       
     311       
     312        namespace {
     313        const static UnicodeSet::run_t __null_codepoint_set_runs[] = {
     314        {Empty, 34816}};
     315        const static UnicodeSet::bitquad_t * const __null_codepoint_set_quads = nullptr;
     316        }
     317
     318        const static UnicodeSet null_codepoint_set{const_cast<UnicodeSet::run_t *>(__null_codepoint_set_runs), 1, 0, const_cast<UnicodeSet::bitquad_t *>(__null_codepoint_set_quads), 0, 0};
     319
     320
    318321
    319322        /** Code Point Ranges for scf mapping to <codepoint>
     
    468471        [a7b7, ab6f], [abc0, ff20], [ff3b, 103ff], [10428, 104af],
    469472        [104d4, 10c7f], [10cb3, 1189f], [118c0, 1e8ff], [1e922, 10ffff]**/
    470         const UnicodeSet reflexive_set
    471                     {{{Full, 2}, {Mixed, 1}, {Full, 2}, {Mixed, 2}, {Full, 1},
    472               {Mixed, 11}, {Full, 7}, {Mixed, 6}, {Empty, 1}, {Mixed, 1},
    473               {Full, 1}, {Mixed, 8}, {Full, 90}, {Empty, 1}, {Mixed, 1},
    474               {Full, 24}, {Mixed, 1}, {Full, 68}, {Mixed, 1}, {Full, 11},
    475               {Mixed, 16}, {Full, 9}, {Mixed, 1}, {Full, 1}, {Mixed, 2},
    476               {Full, 24}, {Mixed, 2}, {Full, 57}, {Empty, 1}, {Mixed, 1},
    477               {Full, 1}, {Mixed, 5}, {Full, 970}, {Mixed, 3}, {Full, 4},
    478               {Mixed, 5}, {Full, 29}, {Mixed, 1}, {Empty, 2}, {Full, 667},
    479               {Mixed, 1}, {Full, 38}, {Empty, 1}, {Mixed, 1}, {Full, 3},
    480               {Mixed, 2}, {Full, 61}, {Empty, 1}, {Mixed, 1}, {Full, 95},
    481               {Empty, 1}, {Full, 1666}, {Empty, 1}, {Mixed, 1},
    482               {Full, 30902}},
    483              {0xf8000001, 0xffdfffff, 0x80800000, 0xaaaaaaaa, 0x55abaaaa,
    484               0xaaaaab55, 0x54aaaaaa, 0x4e243129, 0xee512d2a, 0xb555524f,
    485               0xaa29aaaa, 0xaaaaaaaa, 0x93faaaaa, 0xffffaa85, 0xffffffdf,
    486               0x7fbaffff, 0x000128bf, 0xfffff004, 0xaa9c7ffb, 0x194caaaa,
    487               0xffff0000, 0xaaaaaaaa, 0xaaaaabfe, 0xaaaaaaaa, 0xaaaad554,
    488               0xaaaaaaaa, 0xaaaaaaaa, 0x0001aaaa, 0xff800000, 0xffffdf40,
    489               0xc0ffffff, 0xfffffe00, 0xaaaaaaaa, 0xaaaaaaaa, 0xaaaaaaaa,
    490               0xaaaaaaaa, 0xb7eaaaaa, 0xaaaaaaaa, 0xaaaaaaaa, 0xaaaaaaaa,
    491               0xc0ff00ff, 0x00ff00ff, 0x55ffc0ff, 0xffff00ff, 0x00ff00ff,
    492               0xa0ff00ff, 0xf0ffe0ff, 0xe0ffe0ff, 0xfffbf3bf, 0xffff0000,
    493               0xfffffff7, 0x003fffff, 0xffff0000, 0xffff8000, 0x3fda1562,
    494               0xaaaaaaaa, 0xaaaaaaaa, 0xaaaaaaaa, 0xfffbd7fa, 0xaaaaaaaa,
    495               0xffffeaaa, 0xfaaaaaaa, 0xaaabaaab, 0xaaaaaaaa, 0x95ffaaaa,
    496               0xaabad7aa, 0xffa082aa, 0x0000ffff, 0xf8000001, 0xffffff00,
    497               0x0000ffff, 0xfff00000, 0xfff80000, 0xfffffffc}};
     473       
     474       
     475        namespace {
     476        const static UnicodeSet::run_t __reflexive_set_runs[] = {
     477        {Full, 2}, {Mixed, 1}, {Full, 2}, {Mixed, 2}, {Full, 1},
     478        {Mixed, 11}, {Full, 7}, {Mixed, 6}, {Empty, 1}, {Mixed, 1},
     479        {Full, 1}, {Mixed, 8}, {Full, 90}, {Empty, 1}, {Mixed, 1},
     480        {Full, 24}, {Mixed, 1}, {Full, 68}, {Mixed, 1}, {Full, 11},
     481        {Mixed, 16}, {Full, 9}, {Mixed, 1}, {Full, 1}, {Mixed, 2},
     482        {Full, 24}, {Mixed, 2}, {Full, 57}, {Empty, 1}, {Mixed, 1},
     483        {Full, 1}, {Mixed, 5}, {Full, 970}, {Mixed, 3}, {Full, 4},
     484        {Mixed, 5}, {Full, 29}, {Mixed, 1}, {Empty, 2}, {Full, 667},
     485        {Mixed, 1}, {Full, 38}, {Empty, 1}, {Mixed, 1}, {Full, 3},
     486        {Mixed, 2}, {Full, 61}, {Empty, 1}, {Mixed, 1}, {Full, 95},
     487        {Empty, 1}, {Full, 1666}, {Empty, 1}, {Mixed, 1}, {Full, 30902}};
     488        const static UnicodeSet::bitquad_t  __reflexive_set_quads[] = {
     489        0xf8000001, 0xffdfffff, 0x80800000, 0xaaaaaaaa, 0x55abaaaa,
     490        0xaaaaab55, 0x54aaaaaa, 0x4e243129, 0xee512d2a, 0xb555524f,
     491        0xaa29aaaa, 0xaaaaaaaa, 0x93faaaaa, 0xffffaa85, 0xffffffdf,
     492        0x7fbaffff, 0x000128bf, 0xfffff004, 0xaa9c7ffb, 0x194caaaa,
     493        0xffff0000, 0xaaaaaaaa, 0xaaaaabfe, 0xaaaaaaaa, 0xaaaad554,
     494        0xaaaaaaaa, 0xaaaaaaaa, 0x0001aaaa, 0xff800000, 0xffffdf40,
     495        0xc0ffffff, 0xfffffe00, 0xaaaaaaaa, 0xaaaaaaaa, 0xaaaaaaaa,
     496        0xaaaaaaaa, 0xb7eaaaaa, 0xaaaaaaaa, 0xaaaaaaaa, 0xaaaaaaaa,
     497        0xc0ff00ff, 0x00ff00ff, 0x55ffc0ff, 0xffff00ff, 0x00ff00ff,
     498        0xa0ff00ff, 0xf0ffe0ff, 0xe0ffe0ff, 0xfffbf3bf, 0xffff0000,
     499        0xfffffff7, 0x003fffff, 0xffff0000, 0xffff8000, 0x3fda1562,
     500        0xaaaaaaaa, 0xaaaaaaaa, 0xaaaaaaaa, 0xfffbd7fa, 0xaaaaaaaa,
     501        0xffffeaaa, 0xfaaaaaaa, 0xaaabaaab, 0xaaaaaaaa, 0x95ffaaaa,
     502        0xaabad7aa, 0xffa082aa, 0x0000ffff, 0xf8000001, 0xffffff00,
     503        0x0000ffff, 0xfff00000, 0xfff80000, 0xfffffffc};
     504        }
     505
     506        const static UnicodeSet reflexive_set{const_cast<UnicodeSet::run_t *>(__reflexive_set_runs), 55, 0, const_cast<UnicodeSet::bitquad_t *>(__reflexive_set_quads), 74, 0};
     507
     508
    498509
    499510        const unsigned buffer_length = 4958;
    500         const static char __attribute__ ((aligned (32))) string_buffer[5120] = u8R"__(a
     511        const static char string_buffer[5120] LLVM_ALIGNAS(32) = u8R"__(a
    501512b
    502513c
     
    18691880)__";
    18701881
    1871         const static std::vector<codepoint_t> defined_cps = {
     1882        const static std::vector<codepoint_t> defined_cps{
    18721883        0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048,
    18731884        0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050,
     
    20402051        0x1e91b, 0x1e91c, 0x1e91d, 0x1e91e, 0x1e91f, 0x1e920, 0x1e921};
    20412052        static StringPropertyObject property_object(scf,
    2042                                                     null_codepoint_set,
    2043                                                     reflexive_set,
     2053                                                    std::move(null_codepoint_set),
     2054                                                    std::move(reflexive_set),
    20442055                                                    static_cast<const char *>(string_buffer),
    20452056                                                    buffer_length,
    2046                                                     defined_cps);
     2057                                                    std::move(defined_cps));
    20472058    }
    20482059    namespace CF_ns {
     
    20572068        [fb13, fb17]**/
    20582069
    2059         const UnicodeSet explicitly_defined_set
    2060                     {{{Empty, 6}, {Mixed, 1}, {Empty, 2}, {Mixed, 2}, {Empty, 4},
    2061               {Mixed, 1}, {Empty, 12}, {Mixed, 2}, {Empty, 14}, {Mixed, 1},
    2062               {Empty, 199}, {Mixed, 1}, {Empty, 5}, {Mixed, 1}, {Empty, 1},
    2063               {Full, 1}, {Mixed, 3}, {Empty, 1752}, {Mixed, 1},
    2064               {Empty, 32807}},
    2065              {0x80000000, 0x00010000, 0x00000200, 0x00010000, 0x00010000,
    2066               0x00010000, 0x00000080, 0x47c00000, 0x00550000, 0x10dcffff,
    2067               0x00cc10dc, 0x10dc00dc, 0x00f8007f}};
     2070       
     2071        namespace {
     2072        const static UnicodeSet::run_t __explicitly_defined_set_runs[] = {
     2073        {Empty, 6}, {Mixed, 1}, {Empty, 2}, {Mixed, 2}, {Empty, 4},
     2074        {Mixed, 1}, {Empty, 12}, {Mixed, 2}, {Empty, 14}, {Mixed, 1},
     2075        {Empty, 199}, {Mixed, 1}, {Empty, 5}, {Mixed, 1}, {Empty, 1},
     2076        {Full, 1}, {Mixed, 3}, {Empty, 1752}, {Mixed, 1}, {Empty, 32807}};
     2077        const static UnicodeSet::bitquad_t  __explicitly_defined_set_quads[] = {
     2078        0x80000000, 0x00010000, 0x00000200, 0x00010000, 0x00010000,
     2079        0x00010000, 0x00000080, 0x47c00000, 0x00550000, 0x10dcffff,
     2080        0x00cc10dc, 0x10dc00dc, 0x00f8007f};
     2081        }
     2082
     2083        const static UnicodeSet explicitly_defined_set{const_cast<UnicodeSet::run_t *>(__explicitly_defined_set_runs), 20, 0, const_cast<UnicodeSet::bitquad_t *>(__explicitly_defined_set_quads), 13, 0};
     2084
     2085
    20682086
    20692087        const unsigned buffer_length = 575;
    2070         const static char __attribute__ ((aligned (32))) string_buffer[768] = u8R"__(ss
     2088        const static char string_buffer[768] LLVM_ALIGNAS(32) = u8R"__(ss
    20712089i̇
    20722090ÊŒn
     
    21852203)__";
    21862204
    2187         const static std::vector<codepoint_t> defined_cps = {
     2205        const static std::vector<codepoint_t> defined_cps{
    21882206        0x00df, 0x0130, 0x0149, 0x01f0, 0x0390, 0x03b0, 0x0587, 0x1e96,
    21892207        0x1e97, 0x1e98, 0x1e99, 0x1e9a, 0x1e9e, 0x1f50, 0x1f52, 0x1f54,
     
    22012219        static StringOverridePropertyObject property_object(cf,
    22022220                                                    SCF_ns::property_object,
    2203                                                     explicitly_defined_set,
     2221                                                    std::move(explicitly_defined_set),
    22042222                                                    static_cast<const char *>(string_buffer),
    22052223                                                    buffer_length,
    2206                                                     defined_cps);
     2224                                                    std::move(defined_cps));
    22072225    }
    22082226}
  • icGREP/icgrep-devel/icgrep/UCD/CompositionExclusions.h

    r5660 r5748  
    2626        [fb40, fb41], [fb43, fb44], [fb46, fb4e], [1d15e, 1d164],
    2727        [1d1bb, 1d1c0]**/
    28         const UnicodeSet codepoint_set
    29             {{{Empty, 74}, {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Empty, 2},
    30               {Mixed, 2}, {Empty, 7}, {Mixed, 1}, {Empty, 31}, {Mixed, 4},
    31               {Empty, 216}, {Mixed, 1}, {Empty, 1665}, {Mixed, 3},
    32               {Empty, 1711}, {Mixed, 2}, {Empty, 1}, {Mixed, 2},
    33               {Empty, 31089}},
    34              {0xff000000, 0xb0000000, 0x00480000, 0x4e000000, 0x30000000,
    35               0x10842008, 0x01400200, 0x20080000, 0x02001084, 0x10000000,
    36               0xa0000000, 0x5f7ffc00, 0x00007fdb, 0xc0000000, 0x0000001f,
    37               0xf8000000, 0x00000001}};
    38         static BinaryPropertyObject property_object{CE, codepoint_set};
     28
     29
     30        namespace {
     31        const static UnicodeSet::run_t __codepoint_set_runs[] = {
     32        {Empty, 74}, {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Empty, 2},
     33        {Mixed, 2}, {Empty, 7}, {Mixed, 1}, {Empty, 31}, {Mixed, 4},
     34        {Empty, 216}, {Mixed, 1}, {Empty, 1665}, {Mixed, 3}, {Empty, 1711},
     35        {Mixed, 2}, {Empty, 1}, {Mixed, 2}, {Empty, 31089}};
     36        const static UnicodeSet::bitquad_t  __codepoint_set_quads[] = {
     37        0xff000000, 0xb0000000, 0x00480000, 0x4e000000, 0x30000000,
     38        0x10842008, 0x01400200, 0x20080000, 0x02001084, 0x10000000,
     39        0xa0000000, 0x5f7ffc00, 0x00007fdb, 0xc0000000, 0x0000001f,
     40        0xf8000000, 0x00000001};
     41        }
     42
     43        const static UnicodeSet codepoint_set{const_cast<UnicodeSet::run_t *>(__codepoint_set_runs), 19, 0, const_cast<UnicodeSet::bitquad_t *>(__codepoint_set_quads), 17, 0};
     44
     45        static BinaryPropertyObject property_object{CE, std::move(codepoint_set)};
    3946    }
    4047}
  • icGREP/icgrep-devel/icgrep/UCD/DerivedAge.h

    r5686 r5748  
    165165    [c0000, cfffd], [d0000, dfffd], [e0000, e0000], [e0002, e001f],
    166166    [e0080, e00ff], [e01f0, efffd]**/
    167     const UnicodeSet unassigned_Set
    168         {{{Empty, 27}, {Mixed, 3}, {Empty, 11}, {Mixed, 4}, {Empty, 1},
    169           {Mixed, 3}, {Empty, 7}, {Mixed, 1}, {Empty, 1}, {Mixed, 1},
    170           {Empty, 2}, {Mixed, 1}, {Empty, 1}, {Mixed, 1}, {Empty, 1},
    171           {Mixed, 3}, {Full, 1}, {Mixed, 2}, {Empty, 5}, {Mixed, 29},
    172           {Empty, 1}, {Mixed, 9}, {Full, 1}, {Mixed, 3}, {Full, 1},
    173           {Empty, 2}, {Mixed, 5}, {Full, 1}, {Empty, 6}, {Mixed, 1},
    174           {Empty, 11}, {Mixed, 1}, {Empty, 1}, {Mixed, 3}, {Empty, 1},
    175           {Mixed, 1}, {Empty, 1}, {Mixed, 3}, {Empty, 2}, {Mixed, 1},
    176           {Empty, 20}, {Mixed, 1}, {Empty, 2}, {Mixed, 5}, {Empty, 2},
    177           {Mixed, 3}, {Empty, 2}, {Mixed, 1}, {Empty, 1}, {Mixed, 1},
    178           {Empty, 1}, {Mixed, 5}, {Empty, 1}, {Mixed, 2}, {Empty, 1},
    179           {Mixed, 1}, {Empty, 1}, {Mixed, 4}, {Full, 2}, {Empty, 2},
    180           {Mixed, 2}, {Empty, 3}, {Mixed, 1}, {Empty, 1}, {Mixed, 2},
    181           {Empty, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 2}, {Empty, 7},
    182           {Mixed, 1}, {Empty, 8}, {Mixed, 1}, {Empty, 1}, {Mixed, 2},
    183           {Empty, 1}, {Mixed, 3}, {Empty, 3}, {Mixed, 2}, {Empty, 1},
    184           {Mixed, 2}, {Empty, 4}, {Mixed, 1}, {Empty, 20}, {Mixed, 2},
    185           {Empty, 56}, {Mixed, 5}, {Empty, 1}, {Mixed, 2}, {Empty, 4},
    186           {Mixed, 1}, {Empty, 1}, {Mixed, 1}, {Empty, 1}, {Mixed, 4},
    187           {Empty, 3}, {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Empty, 2},
    188           {Mixed, 1}, {Empty, 6}, {Mixed, 2}, {Empty, 2}, {Mixed, 1},
    189           {Empty, 1}, {Mixed, 1}, {Empty, 3}, {Mixed, 2}, {Empty, 2},
    190           {Mixed, 2}, {Empty, 1}, {Mixed, 2}, {Empty, 6}, {Mixed, 1},
    191           {Empty, 213}, {Mixed, 1}, {Empty, 657}, {Mixed, 1}, {Empty, 36},
    192           {Mixed, 1}, {Empty, 1}, {Mixed, 1}, {Empty, 10}, {Mixed, 1},
    193           {Empty, 5}, {Mixed, 1}, {Empty, 5}, {Mixed, 1}, {Full, 1},
    194           {Mixed, 1}, {Empty, 1}, {Mixed, 1}, {Empty, 1}, {Mixed, 1},
    195           {Empty, 2}, {Mixed, 2}, {Empty, 2}, {Mixed, 2}, {Empty, 2},
    196           {Mixed, 2}, {Empty, 1}, {Mixed, 2}, {Empty, 3}, {Mixed, 4},
    197           {Empty, 1}, {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Empty, 349},
    198           {Mixed, 3}, {Empty, 275}, {Mixed, 1}, {Empty, 2}, {Mixed, 1},
    199           {Full, 1}, {Mixed, 3}, {Empty, 3}, {Mixed, 1}, {Empty, 11},
    200           {Mixed, 1}, {Empty, 1}, {Mixed, 1}, {Empty, 1}, {Mixed, 3},
    201           {Empty, 1}, {Mixed, 2}, {Empty, 3}, {Mixed, 2}, {Empty, 4},
    202           {Mixed, 6}, {Full, 1}, {Empty, 3}, {Mixed, 3}, {Empty, 2},
    203           {Mixed, 4}, {Full, 4}, {Mixed, 1}, {Empty, 1}, {Mixed, 2},
    204           {Empty, 1}, {Mixed, 4}, {Empty, 1}, {Mixed, 1}, {Full, 1},
    205           {Empty, 4}, {Mixed, 4}, {Empty, 1}, {Mixed, 1}, {Empty, 1},
    206           {Mixed, 1}, {Full, 4}, {Empty, 9}, {Mixed, 3}, {Full, 4},
    207           {Mixed, 3}, {Empty, 1}, {Mixed, 2}, {Full, 1}, {Mixed, 3},
    208           {Full, 2}, {Empty, 1}, {Mixed, 2}, {Empty, 1}, {Mixed, 3},
    209           {Empty, 2}, {Full, 1}, {Empty, 1}, {Mixed, 1}, {Empty, 1},
    210           {Mixed, 5}, {Full, 2}, {Empty, 2}, {Mixed, 1}, {Full, 1},
    211           {Empty, 1}, {Mixed, 1}, {Empty, 1}, {Mixed, 1}, {Full, 11},
    212           {Mixed, 1}, {Full, 12}, {Empty, 2}, {Mixed, 2}, {Empty, 2},
    213           {Mixed, 2}, {Empty, 1}, {Mixed, 3}, {Empty, 2}, {Mixed, 4},
    214           {Full, 2}, {Mixed, 2}, {Empty, 1}, {Mixed, 5}, {Full, 4},
    215           {Empty, 2}, {Mixed, 1}, {Full, 1}, {Empty, 2}, {Mixed, 1},
    216           {Full, 5}, {Empty, 1}, {Mixed, 2}, {Full, 1}, {Empty, 2},
    217           {Mixed, 2}, {Empty, 1}, {Mixed, 2}, {Full, 1}, {Mixed, 2},
    218           {Full, 11}, {Empty, 2}, {Mixed, 1}, {Full, 8}, {Empty, 2},
    219           {Mixed, 1}, {Empty, 1}, {Mixed, 2}, {Empty, 1}, {Mixed, 1},
    220           {Full, 8}, {Mixed, 6}, {Full, 2}, {Mixed, 3}, {Full, 21},
    221           {Empty, 28}, {Mixed, 1}, {Full, 3}, {Empty, 3}, {Mixed, 1},
    222           {Empty, 6}, {Mixed, 1}, {Full, 85}, {Empty, 33}, {Mixed, 1},
    223           {Full, 126}, {Empty, 18}, {Mixed, 1}, {Full, 269}, {Empty, 17},
    224           {Mixed, 3}, {Full, 2}, {Mixed, 2}, {Empty, 2}, {Mixed, 3},
    225           {Full, 27}, {Empty, 2}, {Mixed, 3}, {Full, 2}, {Mixed, 1},
    226           {Empty, 191}, {Mixed, 1}, {Empty, 23}, {Mixed, 1}, {Full, 296},
    227           {Empty, 8}, {Mixed, 1}, {Full, 2}, {Mixed, 1}, {Empty, 11},
    228           {Mixed, 1}, {Full, 72}, {Empty, 3}, {Mixed, 3}, {Full, 154},
    229           {Empty, 7}, {Mixed, 1}, {Empty, 1}, {Mixed, 1}, {Empty, 5},
    230           {Mixed, 1}, {Empty, 2}, {Mixed, 1}, {Full, 5}, {Empty, 2},
    231           {Mixed, 2}, {Full, 4}, {Empty, 2}, {Mixed, 1}, {Empty, 1},
    232           {Mixed, 3}, {Empty, 1}, {Mixed, 3}, {Empty, 10}, {Mixed, 1},
    233           {Empty, 8}, {Mixed, 1}, {Empty, 21}, {Mixed, 2}, {Full, 42},
    234           {Mixed, 2}, {Full, 62}, {Empty, 6}, {Mixed, 1}, {Full, 1},
    235           {Empty, 2}, {Mixed, 1}, {Full, 37}, {Mixed, 6}, {Full, 1},
    236           {Mixed, 1}, {Full, 8}, {Empty, 1}, {Mixed, 1}, {Empty, 2},
    237           {Mixed, 6}, {Empty, 1}, {Mixed, 1}, {Empty, 1}, {Mixed, 1},
    238           {Full, 1}, {Mixed, 5}, {Full, 4}, {Empty, 30}, {Mixed, 2},
    239           {Empty, 3}, {Mixed, 1}, {Empty, 2}, {Mixed, 1}, {Full, 1},
    240           {Mixed, 1}, {Empty, 1}, {Mixed, 1}, {Empty, 1}, {Mixed, 2},
    241           {Full, 2}, {Mixed, 5}, {Full, 1}, {Mixed, 2}, {Full, 47},
    242           {Mixed, 1}, {Empty, 1334}, {Mixed, 1}, {Full, 1}, {Empty, 129},
    243           {Mixed, 1}, {Empty, 6}, {Mixed, 1}, {Empty, 180}, {Mixed, 1},
    244           {Empty, 233}, {Mixed, 1}, {Full, 96}, {Empty, 16}, {Mixed, 1},
    245           {Full, 46}, {Mixed, 1}, {Full, 2047}, {Mixed, 1}, {Full, 2047},
    246           {Mixed, 1}, {Full, 2047}, {Mixed, 1}, {Full, 2047}, {Mixed, 1},
    247           {Full, 2047}, {Mixed, 1}, {Full, 2047}, {Mixed, 1}, {Full, 2047},
    248           {Mixed, 1}, {Full, 2047}, {Mixed, 1}, {Full, 2047}, {Mixed, 1},
    249           {Full, 2047}, {Mixed, 1}, {Full, 2047}, {Mixed, 2}, {Empty, 3},
    250           {Full, 4}, {Empty, 7}, {Mixed, 1}, {Full, 2031}, {Mixed, 1},
    251           {Empty, 4096}},
    252          {0x03000000, 0x0000280f, 0x00000004, 0x00010000, 0x01800000,
    253           0x00000001, 0x00011900, 0x0000ff00, 0xffe0f800, 0x20000000,
    254           0x00004000, 0x00001800, 0xfffc0000, 0xf8000000, 0x8000c000,
    255           0xb0000000, 0xfffff800, 0xc0200000, 0x000fffff, 0x00066010,
    256           0x0c3a0200, 0x4f7f8660, 0xc0000030, 0x00067811, 0x2c920200,
    257           0xa1fdc678, 0xffc0003f, 0x00044011, 0x0c120200, 0xfffec440,
    258           0x01fc0030, 0x00066011, 0x0c120200, 0x4f3fc660, 0xff000030,
    259           0x29c23813, 0x3c0038e7, 0xff7ec238, 0xf800003f, 0x00022010,
    260           0x1c000200, 0xf89fc220, 0x00ff0030, 0x00022010, 0x0c100200,
    261           0xbf9fc220, 0xfff90030, 0x00022010, 0x000f0220, 0x00000030,
    262           0x03800013, 0xd0040000, 0x00a07b80, 0xffe3003f, 0x00000001,
    263           0x78000000, 0xf0000000, 0x010fda69, 0xc4001351, 0x0c00c0a0,
    264           0x00000100, 0x0001e000, 0x01000000, 0x20000000, 0xf8002000,
    265           0x0000df40, 0xc280c200, 0x0000c200, 0x80c20000, 0x008000c2,
    266           0x00c20000, 0x18000000, 0xe0000000, 0xfc000000, 0xc0c00000,
    267           0xe0000000, 0xfe000000, 0xffe02000, 0xff800000, 0xfff00000,
    268           0xfff22000, 0xc0000000, 0xfc00fc00, 0xfc008000, 0xff000000,
    269           0x0000f800, 0xffc00000, 0x80000000, 0xf000f000, 0x0000000e,
    270           0xffe0c000, 0x0000f000, 0x3800fc00, 0x30000000, 0x80000000,
    271           0x60000000, 0xfc00fc00, 0x8000c000, 0x0000f000, 0xe0000000,
    272           0x0ff00000, 0x07000000, 0x00001c00, 0xfffffe00, 0x0000ff00,
    273           0xfc000000, 0x04000000, 0xc0c00000, 0x5500c0c0, 0xc0000000,
    274           0x00200000, 0x10300020, 0x80230000, 0x000c0020, 0xe0008000,
    275           0x0000ffff, 0xfffe0000, 0x0000f000, 0xffffff80, 0xfffff800,
    276           0x00300000, 0x00c00000, 0x1c000000, 0xfff80200, 0xffff0fff,
    277           0x00008000, 0x80000000, 0x01f00000, 0x0000df40, 0x7ffe7f00,
    278           0xff800000, 0x80808080, 0x80808080, 0xfffffc00, 0x04000000,
    279           0xfff00000, 0xffc00000, 0xf000ffff, 0x00000001, 0x01800000,
    280           0x0000001f, 0x00018000, 0x00008000, 0xf8000000, 0x0000fff0,
    281           0x80000000, 0x80000000, 0xffc00000, 0xfffff800, 0x0000e000,
    282           0x0000ff80, 0xfffff000, 0xff000000, 0xff008000, 0x007fffff,
    283           0xfc00f000, 0xff000000, 0xfc003fc0, 0xc0000000, 0x7ff00000,
    284           0xe0000000, 0x3c004000, 0x80000000, 0xff800000, 0x0c00c000,
    285           0x07fffff8, 0xff800000, 0xff818181, 0x00008080, 0x0000ffc0,
    286           0xfc00c000, 0x0000fff0, 0x00000780, 0xf0000000, 0x0000c000,
    287           0xfc000000, 0x1f07ff80, 0xa0800000, 0x00000024, 0x0007fffc,
    288           0x0000ffff, 0x00030000, 0x0000ff00, 0xc0000000, 0xfc000000,
    289           0x00080000, 0x0020f080, 0x60000000, 0x00000001, 0x80000000,
    290           0xe3030303, 0x01ff8080, 0x00001000, 0x48000080, 0xc000c000,
    291           0xf8000000, 0x00000078, 0x00700000, 0xf0008000, 0xfffffffe,
    292           0x0000ffff, 0xc0000000, 0xe0000000, 0xfffe0000, 0xf0000000,
    293           0x00001ff0, 0x0000f800, 0xf8000000, 0x40000000, 0xffc000f0,
    294           0xc0000000, 0x0000fc00, 0x00f00000, 0xf0000000, 0x0000ff00,
    295           0xffff7ff0, 0xff800000, 0xffc00000, 0xffffff00, 0x000002c0,
    296           0x6e400000, 0x00400000, 0x80000000, 0xffff007f, 0x07c80000,
    297           0x70000000, 0x7c000000, 0x0f000000, 0x00030000, 0x01100f90,
    298           0x78f00000, 0xfe00ff00, 0xff800780, 0x01c00000, 0x00c00000,
    299           0x00f80000, 0xe1fc0000, 0xffff01ff, 0xfffffe00, 0xfff80000,
    300           0x03f80000, 0x80000000, 0x0003c000, 0x7fff0000, 0x0000fffc,
    301           0xfc00fe00, 0x00200000, 0x0000fff0, 0xff800000, 0x0000c000,
    302           0xffe00001, 0x00040000, 0x80000000, 0x40004280, 0x0000fc00,
    303           0xfc00f800, 0x00066010, 0x0c120200, 0x1f7ec660, 0xffe0e030,
    304           0xd4000000, 0xfc00ff00, 0x00c00000, 0xc0000000, 0xfc00ffe0,
    305           0xffffe000, 0xff000000, 0xfffffc00, 0x1c000000, 0x0000f000,
    306           0x7ff80000, 0x0000ff00, 0x20000030, 0xfffffff8, 0xfe000000,
    307           0x00000200, 0x00800000, 0x0000ffc0, 0x0000e000, 0x00030000,
    308           0xff800100, 0x00000480, 0x4b800000, 0xfc00ff00, 0xfc000000,
    309           0xffe08000, 0xfffffff0, 0xffff8000, 0xffffff80, 0xfe000000,
    310           0x80000000, 0xffff3c00, 0x0000ffff, 0xffc0c000, 0x0400ffc0,
    311           0x1f000004, 0xffff0000, 0x0000ffe0, 0x80000000, 0x00007fff,
    312           0xfffffffc, 0xffffe000, 0xfff80000, 0x80000000, 0x0000ffff,
    313           0xf0000000, 0xe000f800, 0x0c00fe00, 0xfffffff0, 0xffc00000,
    314           0x00000180, 0xfffffe00, 0xffffffc0, 0xff800000, 0xfffc0000,
    315           0x00200000, 0x20000000, 0x1400219b, 0x00000010, 0x20201840,
    316           0x84000000, 0x000203a0, 0x000000c0, 0x00003000, 0x07fff000,
    317           0xffff0001, 0x06000080, 0xfffff824, 0xff800060, 0x3c00f800,
    318           0x00000010, 0xf5080169, 0x5569157b, 0xa1080869, 0xf0000400,
    319           0xf0000411, 0xfffcffff, 0x0000f000, 0xfff00000, 0x00018000,
    320           0x00010001, 0xffc00000, 0x0000e000, 0x00008000, 0x0000f000,
    321           0xffffe000, 0x0000003f, 0x0000fff8, 0xf0000000, 0xfffcfe00,
    322           0xffffffc0, 0xffe00000, 0xfe00e000, 0xfff00000, 0xffe00000,
    323           0x0000f000, 0xfc00ff00, 0x0000ff00, 0xffffc000, 0x0000f000,
    324           0x80000000, 0x0000e000, 0xfffff000, 0xff000000, 0x0000fffe,
    325           0xffffff80, 0x3fffffff, 0xff800000, 0xffe00000, 0xc0000000,
    326           0x0000fffc, 0xfffffffe, 0xc0000000, 0x3fffffff, 0x3fffffff,
    327           0x3fffffff, 0x3fffffff, 0x3fffffff, 0x3fffffff, 0x3fffffff,
    328           0x3fffffff, 0x3fffffff, 0x3fffffff, 0x3fffffff, 0x3fffffff,
    329           0xfffffffd, 0xffff0000, 0x3fffffff}};
     167
     168
     169    namespace {
     170    const static UnicodeSet::run_t __unassigned_Set_runs[] = {
     171    {Empty, 27}, {Mixed, 3}, {Empty, 11}, {Mixed, 4}, {Empty, 1},
     172    {Mixed, 3}, {Empty, 7}, {Mixed, 1}, {Empty, 1}, {Mixed, 1}, {Empty, 2},
     173    {Mixed, 1}, {Empty, 1}, {Mixed, 1}, {Empty, 1}, {Mixed, 3}, {Full, 1},
     174    {Mixed, 2}, {Empty, 5}, {Mixed, 29}, {Empty, 1}, {Mixed, 9}, {Full, 1},
     175    {Mixed, 3}, {Full, 1}, {Empty, 2}, {Mixed, 5}, {Full, 1}, {Empty, 6},
     176    {Mixed, 1}, {Empty, 11}, {Mixed, 1}, {Empty, 1}, {Mixed, 3}, {Empty, 1},
     177    {Mixed, 1}, {Empty, 1}, {Mixed, 3}, {Empty, 2}, {Mixed, 1}, {Empty, 20},
     178    {Mixed, 1}, {Empty, 2}, {Mixed, 5}, {Empty, 2}, {Mixed, 3}, {Empty, 2},
     179    {Mixed, 1}, {Empty, 1}, {Mixed, 1}, {Empty, 1}, {Mixed, 5}, {Empty, 1},
     180    {Mixed, 2}, {Empty, 1}, {Mixed, 1}, {Empty, 1}, {Mixed, 4}, {Full, 2},
     181    {Empty, 2}, {Mixed, 2}, {Empty, 3}, {Mixed, 1}, {Empty, 1}, {Mixed, 2},
     182    {Empty, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 2}, {Empty, 7}, {Mixed, 1},
     183    {Empty, 8}, {Mixed, 1}, {Empty, 1}, {Mixed, 2}, {Empty, 1}, {Mixed, 3},
     184    {Empty, 3}, {Mixed, 2}, {Empty, 1}, {Mixed, 2}, {Empty, 4}, {Mixed, 1},
     185    {Empty, 20}, {Mixed, 2}, {Empty, 56}, {Mixed, 5}, {Empty, 1},
     186    {Mixed, 2}, {Empty, 4}, {Mixed, 1}, {Empty, 1}, {Mixed, 1}, {Empty, 1},
     187    {Mixed, 4}, {Empty, 3}, {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Empty, 2},
     188    {Mixed, 1}, {Empty, 6}, {Mixed, 2}, {Empty, 2}, {Mixed, 1}, {Empty, 1},
     189    {Mixed, 1}, {Empty, 3}, {Mixed, 2}, {Empty, 2}, {Mixed, 2}, {Empty, 1},
     190    {Mixed, 2}, {Empty, 6}, {Mixed, 1}, {Empty, 213}, {Mixed, 1},
     191    {Empty, 657}, {Mixed, 1}, {Empty, 36}, {Mixed, 1}, {Empty, 1},
     192    {Mixed, 1}, {Empty, 10}, {Mixed, 1}, {Empty, 5}, {Mixed, 1}, {Empty, 5},
     193    {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Empty, 1}, {Mixed, 1}, {Empty, 1},
     194    {Mixed, 1}, {Empty, 2}, {Mixed, 2}, {Empty, 2}, {Mixed, 2}, {Empty, 2},
     195    {Mixed, 2}, {Empty, 1}, {Mixed, 2}, {Empty, 3}, {Mixed, 4}, {Empty, 1},
     196    {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Empty, 349}, {Mixed, 3},
     197    {Empty, 275}, {Mixed, 1}, {Empty, 2}, {Mixed, 1}, {Full, 1}, {Mixed, 3},
     198    {Empty, 3}, {Mixed, 1}, {Empty, 11}, {Mixed, 1}, {Empty, 1}, {Mixed, 1},
     199    {Empty, 1}, {Mixed, 3}, {Empty, 1}, {Mixed, 2}, {Empty, 3}, {Mixed, 2},
     200    {Empty, 4}, {Mixed, 6}, {Full, 1}, {Empty, 3}, {Mixed, 3}, {Empty, 2},
     201    {Mixed, 4}, {Full, 4}, {Mixed, 1}, {Empty, 1}, {Mixed, 2}, {Empty, 1},
     202    {Mixed, 4}, {Empty, 1}, {Mixed, 1}, {Full, 1}, {Empty, 4}, {Mixed, 4},
     203    {Empty, 1}, {Mixed, 1}, {Empty, 1}, {Mixed, 1}, {Full, 4}, {Empty, 9},
     204    {Mixed, 3}, {Full, 4}, {Mixed, 3}, {Empty, 1}, {Mixed, 2}, {Full, 1},
     205    {Mixed, 3}, {Full, 2}, {Empty, 1}, {Mixed, 2}, {Empty, 1}, {Mixed, 3},
     206    {Empty, 2}, {Full, 1}, {Empty, 1}, {Mixed, 1}, {Empty, 1}, {Mixed, 5},
     207    {Full, 2}, {Empty, 2}, {Mixed, 1}, {Full, 1}, {Empty, 1}, {Mixed, 1},
     208    {Empty, 1}, {Mixed, 1}, {Full, 11}, {Mixed, 1}, {Full, 12}, {Empty, 2},
     209    {Mixed, 2}, {Empty, 2}, {Mixed, 2}, {Empty, 1}, {Mixed, 3}, {Empty, 2},
     210    {Mixed, 4}, {Full, 2}, {Mixed, 2}, {Empty, 1}, {Mixed, 5}, {Full, 4},
     211    {Empty, 2}, {Mixed, 1}, {Full, 1}, {Empty, 2}, {Mixed, 1}, {Full, 5},
     212    {Empty, 1}, {Mixed, 2}, {Full, 1}, {Empty, 2}, {Mixed, 2}, {Empty, 1},
     213    {Mixed, 2}, {Full, 1}, {Mixed, 2}, {Full, 11}, {Empty, 2}, {Mixed, 1},
     214    {Full, 8}, {Empty, 2}, {Mixed, 1}, {Empty, 1}, {Mixed, 2}, {Empty, 1},
     215    {Mixed, 1}, {Full, 8}, {Mixed, 6}, {Full, 2}, {Mixed, 3}, {Full, 21},
     216    {Empty, 28}, {Mixed, 1}, {Full, 3}, {Empty, 3}, {Mixed, 1}, {Empty, 6},
     217    {Mixed, 1}, {Full, 85}, {Empty, 33}, {Mixed, 1}, {Full, 126},
     218    {Empty, 18}, {Mixed, 1}, {Full, 269}, {Empty, 17}, {Mixed, 3},
     219    {Full, 2}, {Mixed, 2}, {Empty, 2}, {Mixed, 3}, {Full, 27}, {Empty, 2},
     220    {Mixed, 3}, {Full, 2}, {Mixed, 1}, {Empty, 191}, {Mixed, 1},
     221    {Empty, 23}, {Mixed, 1}, {Full, 296}, {Empty, 8}, {Mixed, 1}, {Full, 2},
     222    {Mixed, 1}, {Empty, 11}, {Mixed, 1}, {Full, 72}, {Empty, 3}, {Mixed, 3},
     223    {Full, 154}, {Empty, 7}, {Mixed, 1}, {Empty, 1}, {Mixed, 1}, {Empty, 5},
     224    {Mixed, 1}, {Empty, 2}, {Mixed, 1}, {Full, 5}, {Empty, 2}, {Mixed, 2},
     225    {Full, 4}, {Empty, 2}, {Mixed, 1}, {Empty, 1}, {Mixed, 3}, {Empty, 1},
     226    {Mixed, 3}, {Empty, 10}, {Mixed, 1}, {Empty, 8}, {Mixed, 1},
     227    {Empty, 21}, {Mixed, 2}, {Full, 42}, {Mixed, 2}, {Full, 62}, {Empty, 6},
     228    {Mixed, 1}, {Full, 1}, {Empty, 2}, {Mixed, 1}, {Full, 37}, {Mixed, 6},
     229    {Full, 1}, {Mixed, 1}, {Full, 8}, {Empty, 1}, {Mixed, 1}, {Empty, 2},
     230    {Mixed, 6}, {Empty, 1}, {Mixed, 1}, {Empty, 1}, {Mixed, 1}, {Full, 1},
     231    {Mixed, 5}, {Full, 4}, {Empty, 30}, {Mixed, 2}, {Empty, 3}, {Mixed, 1},
     232    {Empty, 2}, {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Empty, 1}, {Mixed, 1},
     233    {Empty, 1}, {Mixed, 2}, {Full, 2}, {Mixed, 5}, {Full, 1}, {Mixed, 2},
     234    {Full, 47}, {Mixed, 1}, {Empty, 1334}, {Mixed, 1}, {Full, 1},
     235    {Empty, 129}, {Mixed, 1}, {Empty, 6}, {Mixed, 1}, {Empty, 180},
     236    {Mixed, 1}, {Empty, 233}, {Mixed, 1}, {Full, 96}, {Empty, 16},
     237    {Mixed, 1}, {Full, 46}, {Mixed, 1}, {Full, 2047}, {Mixed, 1},
     238    {Full, 2047}, {Mixed, 1}, {Full, 2047}, {Mixed, 1}, {Full, 2047},
     239    {Mixed, 1}, {Full, 2047}, {Mixed, 1}, {Full, 2047}, {Mixed, 1},
     240    {Full, 2047}, {Mixed, 1}, {Full, 2047}, {Mixed, 1}, {Full, 2047},
     241    {Mixed, 1}, {Full, 2047}, {Mixed, 1}, {Full, 2047}, {Mixed, 2},
     242    {Empty, 3}, {Full, 4}, {Empty, 7}, {Mixed, 1}, {Full, 2031}, {Mixed, 1},
     243    {Empty, 4096}};
     244    const static UnicodeSet::bitquad_t  __unassigned_Set_quads[] = {
     245    0x03000000, 0x0000280f, 0x00000004, 0x00010000, 0x01800000, 0x00000001,
     246    0x00011900, 0x0000ff00, 0xffe0f800, 0x20000000, 0x00004000, 0x00001800,
     247    0xfffc0000, 0xf8000000, 0x8000c000, 0xb0000000, 0xfffff800, 0xc0200000,
     248    0x000fffff, 0x00066010, 0x0c3a0200, 0x4f7f8660, 0xc0000030, 0x00067811,
     249    0x2c920200, 0xa1fdc678, 0xffc0003f, 0x00044011, 0x0c120200, 0xfffec440,
     250    0x01fc0030, 0x00066011, 0x0c120200, 0x4f3fc660, 0xff000030, 0x29c23813,
     251    0x3c0038e7, 0xff7ec238, 0xf800003f, 0x00022010, 0x1c000200, 0xf89fc220,
     252    0x00ff0030, 0x00022010, 0x0c100200, 0xbf9fc220, 0xfff90030, 0x00022010,
     253    0x000f0220, 0x00000030, 0x03800013, 0xd0040000, 0x00a07b80, 0xffe3003f,
     254    0x00000001, 0x78000000, 0xf0000000, 0x010fda69, 0xc4001351, 0x0c00c0a0,
     255    0x00000100, 0x0001e000, 0x01000000, 0x20000000, 0xf8002000, 0x0000df40,
     256    0xc280c200, 0x0000c200, 0x80c20000, 0x008000c2, 0x00c20000, 0x18000000,
     257    0xe0000000, 0xfc000000, 0xc0c00000, 0xe0000000, 0xfe000000, 0xffe02000,
     258    0xff800000, 0xfff00000, 0xfff22000, 0xc0000000, 0xfc00fc00, 0xfc008000,
     259    0xff000000, 0x0000f800, 0xffc00000, 0x80000000, 0xf000f000, 0x0000000e,
     260    0xffe0c000, 0x0000f000, 0x3800fc00, 0x30000000, 0x80000000, 0x60000000,
     261    0xfc00fc00, 0x8000c000, 0x0000f000, 0xe0000000, 0x0ff00000, 0x07000000,
     262    0x00001c00, 0xfffffe00, 0x0000ff00, 0xfc000000, 0x04000000, 0xc0c00000,
     263    0x5500c0c0, 0xc0000000, 0x00200000, 0x10300020, 0x80230000, 0x000c0020,
     264    0xe0008000, 0x0000ffff, 0xfffe0000, 0x0000f000, 0xffffff80, 0xfffff800,
     265    0x00300000, 0x00c00000, 0x1c000000, 0xfff80200, 0xffff0fff, 0x00008000,
     266    0x80000000, 0x01f00000, 0x0000df40, 0x7ffe7f00, 0xff800000, 0x80808080,
     267    0x80808080, 0xfffffc00, 0x04000000, 0xfff00000, 0xffc00000, 0xf000ffff,
     268    0x00000001, 0x01800000, 0x0000001f, 0x00018000, 0x00008000, 0xf8000000,
     269    0x0000fff0, 0x80000000, 0x80000000, 0xffc00000, 0xfffff800, 0x0000e000,
     270    0x0000ff80, 0xfffff000, 0xff000000, 0xff008000, 0x007fffff, 0xfc00f000,
     271    0xff000000, 0xfc003fc0, 0xc0000000, 0x7ff00000, 0xe0000000, 0x3c004000,
     272    0x80000000, 0xff800000, 0x0c00c000, 0x07fffff8, 0xff800000, 0xff818181,
     273    0x00008080, 0x0000ffc0, 0xfc00c000, 0x0000fff0, 0x00000780, 0xf0000000,
     274    0x0000c000, 0xfc000000, 0x1f07ff80, 0xa0800000, 0x00000024, 0x0007fffc,
     275    0x0000ffff, 0x00030000, 0x0000ff00, 0xc0000000, 0xfc000000, 0x00080000,
     276    0x0020f080, 0x60000000, 0x00000001, 0x80000000, 0xe3030303, 0x01ff8080,
     277    0x00001000, 0x48000080, 0xc000c000, 0xf8000000, 0x00000078, 0x00700000,
     278    0xf0008000, 0xfffffffe, 0x0000ffff, 0xc0000000, 0xe0000000, 0xfffe0000,
     279    0xf0000000, 0x00001ff0, 0x0000f800, 0xf8000000, 0x40000000, 0xffc000f0,
     280    0xc0000000, 0x0000fc00, 0x00f00000, 0xf0000000, 0x0000ff00, 0xffff7ff0,
     281    0xff800000, 0xffc00000, 0xffffff00, 0x000002c0, 0x6e400000, 0x00400000,
     282    0x80000000, 0xffff007f, 0x07c80000, 0x70000000, 0x7c000000, 0x0f000000,
     283    0x00030000, 0x01100f90, 0x78f00000, 0xfe00ff00, 0xff800780, 0x01c00000,
     284    0x00c00000, 0x00f80000, 0xe1fc0000, 0xffff01ff, 0xfffffe00, 0xfff80000,
     285    0x03f80000, 0x80000000, 0x0003c000, 0x7fff0000, 0x0000fffc, 0xfc00fe00,
     286    0x00200000, 0x0000fff0, 0xff800000, 0x0000c000, 0xffe00001, 0x00040000,
     287    0x80000000, 0x40004280, 0x0000fc00, 0xfc00f800, 0x00066010, 0x0c120200,
     288    0x1f7ec660, 0xffe0e030, 0xd4000000, 0xfc00ff00, 0x00c00000, 0xc0000000,
     289    0xfc00ffe0, 0xffffe000, 0xff000000, 0xfffffc00, 0x1c000000, 0x0000f000,
     290    0x7ff80000, 0x0000ff00, 0x20000030, 0xfffffff8, 0xfe000000, 0x00000200,
     291    0x00800000, 0x0000ffc0, 0x0000e000, 0x00030000, 0xff800100, 0x00000480,
     292    0x4b800000, 0xfc00ff00, 0xfc000000, 0xffe08000, 0xfffffff0, 0xffff8000,
     293    0xffffff80, 0xfe000000, 0x80000000, 0xffff3c00, 0x0000ffff, 0xffc0c000,
     294    0x0400ffc0, 0x1f000004, 0xffff0000, 0x0000ffe0, 0x80000000, 0x00007fff,
     295    0xfffffffc, 0xffffe000, 0xfff80000, 0x80000000, 0x0000ffff, 0xf0000000,
     296    0xe000f800, 0x0c00fe00, 0xfffffff0, 0xffc00000, 0x00000180, 0xfffffe00,
     297    0xffffffc0, 0xff800000, 0xfffc0000, 0x00200000, 0x20000000, 0x1400219b,
     298    0x00000010, 0x20201840, 0x84000000, 0x000203a0, 0x000000c0, 0x00003000,
     299    0x07fff000, 0xffff0001, 0x06000080, 0xfffff824, 0xff800060, 0x3c00f800,
     300    0x00000010, 0xf5080169, 0x5569157b, 0xa1080869, 0xf0000400, 0xf0000411,
     301    0xfffcffff, 0x0000f000, 0xfff00000, 0x00018000, 0x00010001, 0xffc00000,
     302    0x0000e000, 0x00008000, 0x0000f000, 0xffffe000, 0x0000003f, 0x0000fff8,
     303    0xf0000000, 0xfffcfe00, 0xffffffc0, 0xffe00000, 0xfe00e000, 0xfff00000,
     304    0xffe00000, 0x0000f000, 0xfc00ff00, 0x0000ff00, 0xffffc000, 0x0000f000,
     305    0x80000000, 0x0000e000, 0xfffff000, 0xff000000, 0x0000fffe, 0xffffff80,
     306    0x3fffffff, 0xff800000, 0xffe00000, 0xc0000000, 0x0000fffc, 0xfffffffe,
     307    0xc0000000, 0x3fffffff, 0x3fffffff, 0x3fffffff, 0x3fffffff, 0x3fffffff,
     308    0x3fffffff, 0x3fffffff, 0x3fffffff, 0x3fffffff, 0x3fffffff, 0x3fffffff,
     309    0x3fffffff, 0xfffffffd, 0xffff0000, 0x3fffffff};
     310    }
     311
     312    const static UnicodeSet unassigned_Set{const_cast<UnicodeSet::run_t *>(__unassigned_Set_runs), 416, 0, const_cast<UnicodeSet::bitquad_t *>(__unassigned_Set_quads), 388, 0};
     313
    330314    /** Code Point Ranges for V1_1
    331315    [0000, 01f5], [01fa, 0217], [0250, 02a8], [02b0, 02de], [02e0, 02e9],
     
    387371    [ff61, ffbe], [ffc2, ffc7], [ffca, ffcf], [ffd2, ffd7], [ffda, ffdc],
    388372    [ffe0, ffe6], [ffe8, ffee], [fffd, ffff]**/
    389     const UnicodeSet v1_1_Set
    390         {{{Full, 15}, {Mixed, 2}, {Empty, 1}, {Mixed, 1}, {Full, 2},
    391           {Mixed, 3}, {Full, 2}, {Mixed, 7}, {Full, 1}, {Mixed, 1},
    392           {Full, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 2}, {Empty, 1},
    393           {Mixed, 11}, {Full, 1}, {Mixed, 3}, {Empty, 16}, {Mixed, 36},
    394           {Empty, 4}, {Mixed, 3}, {Empty, 1}, {Mixed, 3}, {Empty, 14},
    395           {Full, 1}, {Mixed, 2}, {Full, 2}, {Mixed, 1}, {Full, 2},
    396           {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Empty, 96}, {Full, 4},
    397           {Mixed, 1}, {Full, 2}, {Mixed, 2}, {Full, 1}, {Mixed, 2},
    398           {Full, 1}, {Mixed, 3}, {Full, 1}, {Mixed, 7}, {Full, 1},
    399           {Mixed, 2}, {Full, 1}, {Mixed, 1}, {Full, 2}, {Mixed, 1},
    400           {Full, 7}, {Mixed, 2}, {Full, 2}, {Mixed, 1}, {Empty, 4},
    401           {Full, 1}, {Mixed, 2}, {Full, 4}, {Mixed, 1}, {Full, 4},
    402           {Mixed, 1}, {Full, 2}, {Mixed, 2}, {Full, 2}, {Mixed, 1},
    403           {Empty, 4}, {Mixed, 6}, {Empty, 66}, {Full, 1}, {Mixed, 2},
    404           {Full, 1}, {Mixed, 2}, {Full, 1}, {Mixed, 3}, {Full, 2},
    405           {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Full, 1}, {Mixed, 2},
    406           {Full, 1}, {Mixed, 3}, {Full, 3}, {Mixed, 1}, {Full, 2},
    407           {Mixed, 2}, {Empty, 208}, {Full, 653}, {Mixed, 1}, {Empty, 514},
    408           {Full, 209}, {Mixed, 1}, {Empty, 6}, {Mixed, 3}, {Full, 2},
    409           {Mixed, 2}, {Full, 11}, {Mixed, 1}, {Full, 1}, {Mixed, 1},
    410           {Full, 1}, {Mixed, 2}, {Empty, 1}, {Mixed, 3}, {Full, 3},
    411           {Mixed, 2}, {Full, 1}, {Mixed, 2}, {Full, 1}, {Mixed, 3},
    412           {Empty, 32768}},
    413          {0xfc3fffff, 0x00ffffff, 0xffff0000, 0xffff01ff, 0x7fffffff,
    414           0x000003ff, 0x0000003f, 0x44300003, 0xffffd7f0, 0xfffffffb,
    415           0x547f7fff, 0x000ffffd, 0xffffdffe, 0xdffeffff, 0xffff007f,
    416           0xffff199f, 0x033fcfff, 0xfffe0000, 0xfe7fffff, 0xfffffffe,
    417           0x000002ff, 0xfbff0000, 0xffff000f, 0x001f07ff, 0x88001000,
    418           0x07fffffe, 0x0007ffff, 0xffff3fff, 0x7cffffff, 0xffff7fff,
    419           0x03ff3fff, 0xffffffee, 0xf3ffffff, 0xff1f3fff, 0x0001ffff,
    420           0xfff99fee, 0xd3c5fdff, 0xb080399f, 0x07ffffcf, 0xfff987e4,
    421           0xd36dfdff, 0x5e003987, 0x001fffc0, 0xfffbafee, 0xf3edfdff,
    422           0x00013bbf, 0x0000ffc1, 0xfff99fee, 0xf3cdfdff, 0xb0c0398f,
    423           0x0001ffc3, 0xd63dc7ec, 0xc3bfc718, 0x00803dc7, 0x0007ff80,
    424           0xfffddfee, 0xc3effdff, 0x00603ddf, 0x0000ffc3, 0xfffddfec,
    425           0xc3effdff, 0x40603ddf, 0x0000ffc3, 0xfffddfec, 0xc3fffdff,
    426           0x00803dcf, 0x0000ffc3, 0xfffffffe, 0x87ffffff, 0x0fffffff,
    427           0xfef02596, 0x3bffecae, 0x33ff3f5f, 0xffff003f, 0x087fffff,
    428           0x83ffffff, 0xffffff07, 0x03ffffff, 0x07ffffff, 0x03ffffff,
    429           0x3f3fffff, 0xaaff3f3f, 0x3fffffff, 0xffdfffff, 0xefcfffdf,
    430           0x7fdcffff, 0xffff7fff, 0x0000007f, 0xfff1fc00, 0x00007fff,
    431           0x000007ff, 0xffff0000, 0x00000003, 0x01ffffff, 0xfff80000,
    432           0xffff0007, 0x000007ff, 0x0003ffff, 0xfffffffd, 0x07ffffff,
    433           0x0000001f, 0x000007ff, 0x000007ff, 0x003fffff, 0x0000ffff,
    434           0xfc0fffff, 0x0000ffff, 0xfffff3de, 0xfffffeff, 0x7f47afff,
    435           0xffc000fe, 0xff1fffff, 0x7ffeffff, 0x80ffffff, 0xfffffffe,
    436           0x7e1fffff, 0xfffffffe, 0x7fffffff, 0xffffffe0, 0xfffe1fff,
    437           0xffff7fff, 0x1fffffff, 0x0000000f, 0x8fffffff, 0x0001ffff,
    438           0xffff0fff, 0x7fffffff, 0xf87fffff, 0x3fffffff, 0x7fffffff,
    439           0x0000003f, 0x00003fff, 0xc0f8007f, 0x5f7fffff, 0xffffffdb,
    440           0x0003ffff, 0xfff80000, 0xffff0000, 0xfffcffff, 0x000000ff,
    441           0x0fff0000, 0xffff000f, 0xfff7fe1f, 0xffd70f7f, 0x9fffffff,
    442           0xfffffffe, 0x7fffffff, 0xfffffffe, 0x7fffffff, 0x1cfcfcfc,
    443           0xe0007f7f}};
     373
     374
     375    namespace {
     376    const static UnicodeSet::run_t __v1_1_Set_runs[] = {
     377    {Full, 15}, {Mixed, 2}, {Empty, 1}, {Mixed, 1}, {Full, 2}, {Mixed, 3},
     378    {Full, 2}, {Mixed, 7}, {Full, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 1},
     379    {Full, 1}, {Mixed, 2}, {Empty, 1}, {Mixed, 11}, {Full, 1}, {Mixed, 3},
     380    {Empty, 16}, {Mixed, 36}, {Empty, 4}, {Mixed, 3}, {Empty, 1},
     381    {Mixed, 3}, {Empty, 14}, {Full, 1}, {Mixed, 2}, {Full, 2}, {Mixed, 1},
     382    {Full, 2}, {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Empty, 96}, {Full, 4},
     383    {Mixed, 1}, {Full, 2}, {Mixed, 2}, {Full, 1}, {Mixed, 2}, {Full, 1},
     384    {Mixed, 3}, {Full, 1}, {Mixed, 7}, {Full, 1}, {Mixed, 2}, {Full, 1},
     385    {Mixed, 1}, {Full, 2}, {Mixed, 1}, {Full, 7}, {Mixed, 2}, {Full, 2},
     386    {Mixed, 1}, {Empty, 4}, {Full, 1}, {Mixed, 2}, {Full, 4}, {Mixed, 1},
     387    {Full, 4}, {Mixed, 1}, {Full, 2}, {Mixed, 2}, {Full, 2}, {Mixed, 1},
     388    {Empty, 4}, {Mixed, 6}, {Empty, 66}, {Full, 1}, {Mixed, 2}, {Full, 1},
     389    {Mixed, 2}, {Full, 1}, {Mixed, 3}, {Full, 2}, {Mixed, 1}, {Empty, 3},
     390    {Mixed, 1}, {Full, 1}, {Mixed, 2}, {Full, 1}, {Mixed, 3}, {Full, 3},
     391    {Mixed, 1}, {Full, 2}, {Mixed, 2}, {Empty, 208}, {Full, 653},
     392    {Mixed, 1}, {Empty, 514}, {Full, 209}, {Mixed, 1}, {Empty, 6},
     393    {Mixed, 3}, {Full, 2}, {Mixed, 2}, {Full, 11}, {Mixed, 1}, {Full, 1},
     394    {Mixed, 1}, {Full, 1}, {Mixed, 2}, {Empty, 1}, {Mixed, 3}, {Full, 3},
     395    {Mixed, 2}, {Full, 1}, {Mixed, 2}, {Full, 1}, {Mixed, 3},
     396    {Empty, 32768}};
     397    const static UnicodeSet::bitquad_t  __v1_1_Set_quads[] = {
     398    0xfc3fffff, 0x00ffffff, 0xffff0000, 0xffff01ff, 0x7fffffff, 0x000003ff,
     399    0x0000003f, 0x44300003, 0xffffd7f0, 0xfffffffb, 0x547f7fff, 0x000ffffd,
     400    0xffffdffe, 0xdffeffff, 0xffff007f, 0xffff199f, 0x033fcfff, 0xfffe0000,
     401    0xfe7fffff, 0xfffffffe, 0x000002ff, 0xfbff0000, 0xffff000f, 0x001f07ff,
     402    0x88001000, 0x07fffffe, 0x0007ffff, 0xffff3fff, 0x7cffffff, 0xffff7fff,
     403    0x03ff3fff, 0xffffffee, 0xf3ffffff, 0xff1f3fff, 0x0001ffff, 0xfff99fee,
     404    0xd3c5fdff, 0xb080399f, 0x07ffffcf, 0xfff987e4, 0xd36dfdff, 0x5e003987,
     405    0x001fffc0, 0xfffbafee, 0xf3edfdff, 0x00013bbf, 0x0000ffc1, 0xfff99fee,
     406    0xf3cdfdff, 0xb0c0398f, 0x0001ffc3, 0xd63dc7ec, 0xc3bfc718, 0x00803dc7,
     407    0x0007ff80, 0xfffddfee, 0xc3effdff, 0x00603ddf, 0x0000ffc3, 0xfffddfec,
     408    0xc3effdff, 0x40603ddf, 0x0000ffc3, 0xfffddfec, 0xc3fffdff, 0x00803dcf,
     409    0x0000ffc3, 0xfffffffe, 0x87ffffff, 0x0fffffff, 0xfef02596, 0x3bffecae,
     410    0x33ff3f5f, 0xffff003f, 0x087fffff, 0x83ffffff, 0xffffff07, 0x03ffffff,
     411    0x07ffffff, 0x03ffffff, 0x3f3fffff, 0xaaff3f3f, 0x3fffffff, 0xffdfffff,
     412    0xefcfffdf, 0x7fdcffff, 0xffff7fff, 0x0000007f, 0xfff1fc00, 0x00007fff,
     413    0x000007ff, 0xffff0000, 0x00000003, 0x01ffffff, 0xfff80000, 0xffff0007,
     414    0x000007ff, 0x0003ffff, 0xfffffffd, 0x07ffffff, 0x0000001f, 0x000007ff,
     415    0x000007ff, 0x003fffff, 0x0000ffff, 0xfc0fffff, 0x0000ffff, 0xfffff3de,
     416    0xfffffeff, 0x7f47afff, 0xffc000fe, 0xff1fffff, 0x7ffeffff, 0x80ffffff,
     417    0xfffffffe, 0x7e1fffff, 0xfffffffe, 0x7fffffff, 0xffffffe0, 0xfffe1fff,
     418    0xffff7fff, 0x1fffffff, 0x0000000f, 0x8fffffff, 0x0001ffff, 0xffff0fff,
     419    0x7fffffff, 0xf87fffff, 0x3fffffff, 0x7fffffff, 0x0000003f, 0x00003fff,
     420    0xc0f8007f, 0x5f7fffff, 0xffffffdb, 0x0003ffff, 0xfff80000, 0xffff0000,
     421    0xfffcffff, 0x000000ff, 0x0fff0000, 0xffff000f, 0xfff7fe1f, 0xffd70f7f,
     422    0x9fffffff, 0xfffffffe, 0x7fffffff, 0xfffffffe, 0x7fffffff, 0x1cfcfcfc,
     423    0xe0007f7f};
     424    }
     425
     426    const static UnicodeSet v1_1_Set{const_cast<UnicodeSet::run_t *>(__v1_1_Set_runs), 111, 0, const_cast<UnicodeSet::bitquad_t *>(__v1_1_Set_quads), 151, 0};
     427
    444428    /** Code Point Ranges for V2_0
    445429    [0591, 05a1], [05a3, 05af], [05c4, 05c4], [0f00, 0f47], [0f49, 0f69],
     
    450434    [9fffe, 9ffff], [afffe, affff], [bfffe, bffff], [cfffe, cffff],
    451435    [dfffe, dffff], [efffe, 10ffff]**/
    452     const UnicodeSet v2_0_Set
    453         {{{Empty, 44}, {Mixed, 3}, {Empty, 73}, {Full, 2}, {Mixed, 4},
    454           {Empty, 118}, {Mixed, 1}, {Empty, 16}, {Mixed, 1}, {Empty, 1114},
    455           {Full, 349}, {Mixed, 1}, {Empty, 2}, {Full, 64}, {Empty, 2303},
    456           {Mixed, 1}, {Empty, 2047}, {Mixed, 1}, {Empty, 2047}, {Mixed, 1},
    457           {Empty, 2047}, {Mixed, 1}, {Empty, 2047}, {Mixed, 1},
    458           {Empty, 2047}, {Mixed, 1}, {Empty, 2047}, {Mixed, 1},
    459           {Empty, 2047}, {Mixed, 1}, {Empty, 2047}, {Mixed, 1},
    460           {Empty, 2047}, {Mixed, 1}, {Empty, 2047}, {Mixed, 1},
    461           {Empty, 2047}, {Mixed, 1}, {Empty, 2047}, {Mixed, 1},
    462           {Empty, 2047}, {Mixed, 1}, {Full, 4096}},
    463          {0xfffe0000, 0x0000fffb, 0x00000010, 0xfffffeff, 0xfffe03ff,
    464           0xfebf0fff, 0x02fe3fff, 0x08000000, 0x00000800, 0x0000000f,
    465           0xc0000000, 0xc0000000, 0xc0000000, 0xc0000000, 0xc0000000,
    466           0xc0000000, 0xc0000000, 0xc0000000, 0xc0000000, 0xc0000000,
    467           0xc0000000, 0xc0000000, 0xc0000000, 0xc0000000}};
     436
     437
     438    namespace {
     439    const static UnicodeSet::run_t __v2_0_Set_runs[] = {
     440    {Empty, 44}, {Mixed, 3}, {Empty, 73}, {Full, 2}, {Mixed, 4},
     441    {Empty, 118}, {Mixed, 1}, {Empty, 16}, {Mixed, 1}, {Empty, 1114},
     442    {Full, 349}, {Mixed, 1}, {Empty, 2}, {Full, 64}, {Empty, 2303},
     443    {Mixed, 1}, {Empty, 2047}, {Mixed, 1}, {Empty, 2047}, {Mixed, 1},
     444    {Empty, 2047}, {Mixed, 1}, {Empty, 2047}, {Mixed, 1}, {Empty, 2047},
     445    {Mixed, 1}, {Empty, 2047}, {Mixed, 1}, {Empty, 2047}, {Mixed, 1},
     446    {Empty, 2047}, {Mixed, 1}, {Empty, 2047}, {Mixed, 1}, {Empty, 2047},
     447    {Mixed, 1}, {Empty, 2047}, {Mixed, 1}, {Empty, 2047}, {Mixed, 1},
     448    {Empty, 2047}, {Mixed, 1}, {Full, 4096}};
     449    const static UnicodeSet::bitquad_t  __v2_0_Set_quads[] = {
     450    0xfffe0000, 0x0000fffb, 0x00000010, 0xfffffeff, 0xfffe03ff, 0xfebf0fff,
     451    0x02fe3fff, 0x08000000, 0x00000800, 0x0000000f, 0xc0000000, 0xc0000000,
     452    0xc0000000, 0xc0000000, 0xc0000000, 0xc0000000, 0xc0000000, 0xc0000000,
     453    0xc0000000, 0xc0000000, 0xc0000000, 0xc0000000, 0xc0000000, 0xc0000000};
     454    }
     455
     456    const static UnicodeSet v2_0_Set{const_cast<UnicodeSet::run_t *>(__v2_0_Set_runs), 43, 0, const_cast<UnicodeSet::bitquad_t *>(__v2_0_Set_quads), 24, 0};
     457
    468458    /** Code Point Ranges for V2_1
    469459    [20ac, 20ac], [fffc, fffc]**/
    470     const UnicodeSet v2_1_Set
    471         {{{Empty, 261}, {Mixed, 1}, {Empty, 1785}, {Mixed, 1},
    472           {Empty, 32768}},
    473          {0x00001000, 0x10000000}};
     460
     461
     462    namespace {
     463    const static UnicodeSet::run_t __v2_1_Set_runs[] = {
     464    {Empty, 261}, {Mixed, 1}, {Empty, 1785}, {Mixed, 1}, {Empty, 32768}};
     465    const static UnicodeSet::bitquad_t  __v2_1_Set_quads[] = {
     466    0x00001000, 0x10000000};
     467    }
     468
     469    const static UnicodeSet v2_1_Set{const_cast<UnicodeSet::run_t *>(__v2_1_Set_runs), 5, 0, const_cast<UnicodeSet::bitquad_t *>(__v2_1_Set_quads), 2, 0};
     470
    474471    /** Code Point Ranges for V3_0
    475472    [01f6, 01f9], [0218, 021f], [0222, 0233], [02a9, 02ad], [02df, 02df],
     
    498495    [a4a4, a4b3], [a4b5, a4c0], [a4c2, a4c4], [a4c6, a4c6], [fb1d, fb1d],
    499496    [fff9, fffb]**/
    500     const UnicodeSet v3_0_Set
    501         {{{Empty, 15}, {Mixed, 3}, {Empty, 3}, {Mixed, 3}, {Empty, 2},
    502           {Mixed, 2}, {Empty, 2}, {Mixed, 3}, {Empty, 1}, {Mixed, 1},
    503           {Empty, 1}, {Mixed, 1}, {Empty, 2}, {Mixed, 1}, {Empty, 4},
    504           {Mixed, 1}, {Empty, 5}, {Mixed, 1}, {Empty, 2}, {Mixed, 6},
    505           {Empty, 1}, {Full, 1}, {Mixed, 1}, {Empty, 46}, {Mixed, 4},
    506           {Empty, 11}, {Mixed, 4}, {Empty, 1}, {Full, 1}, {Mixed, 2},
    507           {Empty, 13}, {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Full, 1},
    508           {Mixed, 5}, {Full, 1}, {Mixed, 2}, {Empty, 1}, {Full, 2},
    509           {Mixed, 2}, {Full, 18}, {Mixed, 2}, {Full, 2}, {Mixed, 1},
    510           {Empty, 4}, {Full, 2}, {Mixed, 3}, {Full, 2}, {Mixed, 1},
    511           {Full, 1}, {Mixed, 1}, {Empty, 59}, {Mixed, 2}, {Empty, 2},
    512           {Mixed, 1}, {Empty, 1}, {Mixed, 1}, {Empty, 1}, {Mixed, 1},
    513           {Empty, 2}, {Mixed, 1}, {Empty, 2}, {Mixed, 1}, {Empty, 8},
    514           {Mixed, 1}, {Empty, 2}, {Mixed, 2}, {Empty, 4}, {Mixed, 1},
    515           {Empty, 13}, {Mixed, 2}, {Empty, 2}, {Mixed, 1}, {Empty, 12},
    516           {Full, 8}, {Empty, 44}, {Mixed, 1}, {Full, 2}, {Mixed, 1},
    517           {Full, 6}, {Mixed, 2}, {Empty, 1}, {Mixed, 1}, {Empty, 11},
    518           {Mixed, 1}, {Empty, 18}, {Full, 205}, {Mixed, 1}, {Empty, 658},
    519           {Full, 36}, {Mixed, 3}, {Empty, 689}, {Mixed, 1}, {Empty, 38},
    520           {Mixed, 1}, {Empty, 32768}},
    521          {0x03c00000, 0xff000000, 0x000ffffc, 0x00003e00, 0x80000000,
    522           0x00007c00, 0x00007fc0, 0x00000004, 0xa8800000, 0x00000002,
    523           0x00002001, 0x20010000, 0x0000f300, 0x00003000, 0x00000400,
    524           0x00380000, 0x83000000, 0x00008000, 0x7c000000, 0xffffbfff,
    525           0xffff1fff, 0x000007ff, 0x0001ffff, 0xfc7fffec, 0x2ffbffff,
    526           0xff5f847f, 0x001c0000, 0x00000400, 0x00400000, 0xdd01c000,
    527           0x00009fff, 0x03c7f6fb, 0x03ffffff, 0xffffff7f, 0x3d7f3d7f,
    528           0xffff3d7f, 0x7f3d7fff, 0xff7f7f3d, 0xffff7fff, 0x7f3d7fff,
    529           0x07ffff7f, 0x1ffffffe, 0x001fffff, 0xfffffffe, 0x007fffff,
    530           0x1fffffff, 0x0001ffff, 0x1fffffff, 0x000003ff, 0x03ff7fff,
    531           0x00ffffff, 0x000003ff, 0x00008000, 0x00003f00, 0x0000e000,
    532           0x0000000c, 0x06000000, 0x00000008, 0x000ff800, 0x00000002,
    533           0xe8000000, 0x07ffffff, 0x00000060, 0x00ff0000, 0x02000000,
    534           0x00030000, 0xfbffffff, 0x000fffff, 0x003fffff, 0x0fff0000,
    535           0x47000000, 0x00ffffff, 0x003fffff, 0xffff1fff, 0xffeffff3,
    536           0x0000005d, 0x20000000, 0x0e000000}};
     497
     498
     499    namespace {
     500    const static UnicodeSet::run_t __v3_0_Set_runs[] = {
     501    {Empty, 15}, {Mixed, 3}, {Empty, 3}, {Mixed, 3}, {Empty, 2}, {Mixed, 2},
     502    {Empty, 2}, {Mixed, 3}, {Empty, 1}, {Mixed, 1}, {Empty, 1}, {Mixed, 1},
     503    {Empty, 2}, {Mixed, 1}, {Empty, 4}, {Mixed, 1}, {Empty, 5}, {Mixed, 1},
     504    {Empty, 2}, {Mixed, 6}, {Empty, 1}, {Full, 1}, {Mixed, 1}, {Empty, 46},
     505    {Mixed, 4}, {Empty, 11}, {Mixed, 4}, {Empty, 1}, {Full, 1}, {Mixed, 2},
     506    {Empty, 13}, {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 5},
     507    {Full, 1}, {Mixed, 2}, {Empty, 1}, {Full, 2}, {Mixed, 2}, {Full, 18},
     508    {Mixed, 2}, {Full, 2}, {Mixed, 1}, {Empty, 4}, {Full, 2}, {Mixed, 3},
     509    {Full, 2}, {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Empty, 59}, {Mixed, 2},
     510    {Empty, 2}, {Mixed, 1}, {Empty, 1}, {Mixed, 1}, {Empty, 1}, {Mixed, 1},
     511    {Empty, 2}, {Mixed, 1}, {Empty, 2}, {Mixed, 1}, {Empty, 8}, {Mixed, 1},
     512    {Empty, 2}, {Mixed, 2}, {Empty, 4}, {Mixed, 1}, {Empty, 13}, {Mixed, 2},
     513    {Empty, 2}, {Mixed, 1}, {Empty, 12}, {Full, 8}, {Empty, 44}, {Mixed, 1},
     514    {Full, 2}, {Mixed, 1}, {Full, 6}, {Mixed, 2}, {Empty, 1}, {Mixed, 1},
     515    {Empty, 11}, {Mixed, 1}, {Empty, 18}, {Full, 205}, {Mixed, 1},
     516    {Empty, 658}, {Full, 36}, {Mixed, 3}, {Empty, 689}, {Mixed, 1},
     517    {Empty, 38}, {Mixed, 1}, {Empty, 32768}};
     518    const static UnicodeSet::bitquad_t  __v3_0_Set_quads[] = {
     519    0x03c00000, 0xff000000, 0x000ffffc, 0x00003e00, 0x80000000, 0x00007c00,
     520    0x00007fc0, 0x00000004, 0xa8800000, 0x00000002, 0x00002001, 0x20010000,
     521    0x0000f300, 0x00003000, 0x00000400, 0x00380000, 0x83000000, 0x00008000,
     522    0x7c000000, 0xffffbfff, 0xffff1fff, 0x000007ff, 0x0001ffff, 0xfc7fffec,
     523    0x2ffbffff, 0xff5f847f, 0x001c0000, 0x00000400, 0x00400000, 0xdd01c000,
     524    0x00009fff, 0x03c7f6fb, 0x03ffffff, 0xffffff7f, 0x3d7f3d7f, 0xffff3d7f,
     525    0x7f3d7fff, 0xff7f7f3d, 0xffff7fff, 0x7f3d7fff, 0x07ffff7f, 0x1ffffffe,
     526    0x001fffff, 0xfffffffe, 0x007fffff, 0x1fffffff, 0x0001ffff, 0x1fffffff,
     527    0x000003ff, 0x03ff7fff, 0x00ffffff, 0x000003ff, 0x00008000, 0x00003f00,
     528    0x0000e000, 0x0000000c, 0x06000000, 0x00000008, 0x000ff800, 0x00000002,
     529    0xe8000000, 0x07ffffff, 0x00000060, 0x00ff0000, 0x02000000, 0x00030000,
     530    0xfbffffff, 0x000fffff, 0x003fffff, 0x0fff0000, 0x47000000, 0x00ffffff,
     531    0x003fffff, 0xffff1fff, 0xffeffff3, 0x0000005d, 0x20000000, 0x0e000000};
     532    }
     533
     534    const static UnicodeSet v3_0_Set{const_cast<UnicodeSet::run_t *>(__v3_0_Set_runs), 97, 0, const_cast<UnicodeSet::bitquad_t *>(__v3_0_Set_quads), 78, 0};
     535
    537536    /** Code Point Ranges for V3_1
    538537    [03f4, 03f5], [fdd0, fdef], [10300, 1031e], [10320, 10323],
     
    545544    [1d54a, 1d550], [1d552, 1d6a3], [1d6a8, 1d7c9], [1d7ce, 1d7ff],
    546545    [20000, 2a6d6], [2f800, 2fa1d], [e0001, e0001], [e0020, e007f]**/
    547     const UnicodeSet v3_1_Set
    548         {{{Empty, 31}, {Mixed, 1}, {Empty, 1998}, {Mixed, 2}, {Empty, 40},
    549           {Mixed, 3}, {Empty, 5}, {Full, 1}, {Mixed, 2}, {Empty, 1629},
    550           {Full, 7}, {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Full, 4},
    551           {Mixed, 1}, {Empty, 17}, {Full, 2}, {Mixed, 1}, {Full, 1},
    552           {Mixed, 3}, {Full, 1}, {Mixed, 3}, {Full, 10}, {Mixed, 1},
    553           {Full, 8}, {Mixed, 1}, {Full, 1}, {Empty, 320}, {Full, 1334},
    554           {Mixed, 1}, {Empty, 649}, {Full, 16}, {Mixed, 1}, {Empty, 22575},
    555           {Mixed, 1}, {Full, 3}, {Empty, 6140}},
    556          {0x00300000, 0xffff0000, 0x0000ffff, 0x7fffffff, 0xffff000f,
    557           0x000007ff, 0xffffff3f, 0x00003fff, 0x003fffff, 0xfffffc7f,
    558           0x3fffffff, 0xffdfffff, 0xdfffffff, 0xebffde64, 0xffffffed,
    559           0xdfdfe7bf, 0x7bffffff, 0xfffdfc5f, 0xffffff0f, 0xffffc3ff,
    560           0x007fffff, 0x3fffffff, 0x00000002}};
     546
     547
     548    namespace {
     549    const static UnicodeSet::run_t __v3_1_Set_runs[] = {
     550    {Empty, 31}, {Mixed, 1}, {Empty, 1998}, {Mixed, 2}, {Empty, 40},
     551    {Mixed, 3}, {Empty, 5}, {Full, 1}, {Mixed, 2}, {Empty, 1629}, {Full, 7},
     552    {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Full, 4}, {Mixed, 1}, {Empty, 17},
     553    {Full, 2}, {Mixed, 1}, {Full, 1}, {Mixed, 3}, {Full, 1}, {Mixed, 3},
     554    {Full, 10}, {Mixed, 1}, {Full, 8}, {Mixed, 1}, {Full, 1}, {Empty, 320},
     555    {Full, 1334}, {Mixed, 1}, {Empty, 649}, {Full, 16}, {Mixed, 1},
     556    {Empty, 22575}, {Mixed, 1}, {Full, 3}, {Empty, 6140}};
     557    const static UnicodeSet::bitquad_t  __v3_1_Set_quads[] = {
     558    0x00300000, 0xffff0000, 0x0000ffff, 0x7fffffff, 0xffff000f, 0x000007ff,
     559    0xffffff3f, 0x00003fff, 0x003fffff, 0xfffffc7f, 0x3fffffff, 0xffdfffff,
     560    0xdfffffff, 0xebffde64, 0xffffffed, 0xdfdfe7bf, 0x7bffffff, 0xfffdfc5f,
     561    0xffffff0f, 0xffffc3ff, 0x007fffff, 0x3fffffff, 0x00000002};
     562    }
     563
     564    const static UnicodeSet v3_1_Set{const_cast<UnicodeSet::run_t *>(__v3_1_Set_runs), 38, 0, const_cast<UnicodeSet::bitquad_t *>(__v3_1_Set_quads), 23, 0};
     565
    561566    /** Code Point Ranges for V3_2
    562567    [0220, 0220], [034f, 034f], [0363, 036f], [03d8, 03d9], [03f6, 03f6],
     
    572577    [a4b4, a4b4], [a4c1, a4c1], [a4c5, a4c5], [fa30, fa6a], [fdfc, fdfc],
    573578    [fe00, fe0f], [fe45, fe46], [fe73, fe73], [ff5f, ff60]**/
    574     const UnicodeSet v3_2_Set
    575         {{{Empty, 17}, {Mixed, 1}, {Empty, 8}, {Mixed, 2}, {Empty, 2},
    576           {Mixed, 2}, {Empty, 4}, {Mixed, 1}, {Empty, 1}, {Mixed, 1},
    577           {Empty, 1}, {Mixed, 1}, {Empty, 10}, {Mixed, 1}, {Empty, 9},
    578           {Mixed, 1}, {Empty, 73}, {Mixed, 1}, {Empty, 48}, {Mixed, 4},
    579           {Empty, 70}, {Mixed, 2}, {Empty, 1}, {Mixed, 1}, {Empty, 1},
    580           {Mixed, 1}, {Empty, 1}, {Mixed, 2}, {Empty, 4}, {Mixed, 1},
    581           {Empty, 7}, {Mixed, 1}, {Empty, 3}, {Mixed, 2}, {Full, 1},
    582           {Mixed, 1}, {Empty, 8}, {Mixed, 1}, {Empty, 4}, {Mixed, 1},
    583           {Empty, 2}, {Mixed, 2}, {Empty, 2}, {Mixed, 2}, {Empty, 6},
    584           {Mixed, 1}, {Empty, 2}, {Mixed, 2}, {Empty, 8}, {Full, 16},
    585           {Empty, 41}, {Mixed, 1}, {Empty, 2}, {Mixed, 2}, {Empty, 1},
    586           {Mixed, 1}, {Empty, 7}, {Mixed, 1}, {Empty, 2}, {Mixed, 1},
    587           {Empty, 2}, {Mixed, 1}, {Empty, 911}, {Mixed, 2}, {Empty, 682},
    588           {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Empty, 27}, {Mixed, 2},
    589           {Empty, 1}, {Mixed, 2}, {Empty, 6}, {Mixed, 2}, {Empty, 32772}},
    590          {0x00000001, 0x00008000, 0x0000fff8, 0x03000000, 0x00400000,
    591           0x00000c00, 0x00006660, 0x0000ffff, 0x0000c000, 0x00020000,
    592           0x01800000, 0x001fdfff, 0x007fffff, 0x000fffff, 0x000ddfff,
    593           0x8087c080, 0x0002000f, 0x00030000, 0x000007f0, 0xe0000000,
    594           0x00000fff, 0xfff00000, 0xfffc0000, 0x10000000, 0xf8000000,
    595           0x00007fff, 0x7ffff800, 0xffc00000, 0xff000000, 0x00c00000,
    596           0x3ffc0000, 0x000003ff, 0x003fff00, 0xffff0000, 0xffff0fff,
    597           0x38000000, 0x80600000, 0x00000001, 0x80000000, 0xffff0000,
    598           0xfffe0000, 0xfffe0000, 0x0010000c, 0x00000022, 0xffff0000,
    599           0x000007ff, 0x10000000, 0x0000ffff, 0x00000060, 0x00080000,
    600           0x80000000, 0x00000001}};
     579
     580
     581    namespace {
     582    const static UnicodeSet::run_t __v3_2_Set_runs[] = {
     583    {Empty, 17}, {Mixed, 1}, {Empty, 8}, {Mixed, 2}, {Empty, 2}, {Mixed, 2},
     584    {Empty, 4}, {Mixed, 1}, {Empty, 1}, {Mixed, 1}, {Empty, 1}, {Mixed, 1},
     585    {Empty, 10}, {Mixed, 1}, {Empty, 9}, {Mixed, 1}, {Empty, 73},
     586    {Mixed, 1}, {Empty, 48}, {Mixed, 4}, {Empty, 70}, {Mixed, 2},
     587    {Empty, 1}, {Mixed, 1}, {Empty, 1}, {Mixed, 1}, {Empty, 1}, {Mixed, 2},
     588    {Empty, 4}, {Mixed, 1}, {Empty, 7}, {Mixed, 1}, {Empty, 3}, {Mixed, 2},
     589    {Full, 1}, {Mixed, 1}, {Empty, 8}, {Mixed, 1}, {Empty, 4}, {Mixed, 1},
     590    {Empty, 2}, {Mixed, 2}, {Empty, 2}, {Mixed, 2}, {Empty, 6}, {Mixed, 1},
     591    {Empty, 2}, {Mixed, 2}, {Empty, 8}, {Full, 16}, {Empty, 41}, {Mixed, 1},
     592    {Empty, 2}, {Mixed, 2}, {Empty, 1}, {Mixed, 1}, {Empty, 7}, {Mixed, 1},
     593    {Empty, 2}, {Mixed, 1}, {Empty, 2}, {Mixed, 1}, {Empty, 911},
     594    {Mixed, 2}, {Empty, 682}, {Mixed, 1}, {Full, 1}, {Mixed, 1},
     595    {Empty, 27}, {Mixed, 2}, {Empty, 1}, {Mixed, 2}, {Empty, 6}, {Mixed, 2},
     596    {Empty, 32772}};
     597    const static UnicodeSet::bitquad_t  __v3_2_Set_quads[] = {
     598    0x00000001, 0x00008000, 0x0000fff8, 0x03000000, 0x00400000, 0x00000c00,
     599    0x00006660, 0x0000ffff, 0x0000c000, 0x00020000, 0x01800000, 0x001fdfff,
     600    0x007fffff, 0x000fffff, 0x000ddfff, 0x8087c080, 0x0002000f, 0x00030000,
     601    0x000007f0, 0xe0000000, 0x00000fff, 0xfff00000, 0xfffc0000, 0x10000000,
     602    0xf8000000, 0x00007fff, 0x7ffff800, 0xffc00000, 0xff000000, 0x00c00000,
     603    0x3ffc0000, 0x000003ff, 0x003fff00, 0xffff0000, 0xffff0fff, 0x38000000,
     604    0x80600000, 0x00000001, 0x80000000, 0xffff0000, 0xfffe0000, 0xfffe0000,
     605    0x0010000c, 0x00000022, 0xffff0000, 0x000007ff, 0x10000000, 0x0000ffff,
     606    0x00000060, 0x00080000, 0x80000000, 0x00000001};
     607    }
     608
     609    const static UnicodeSet v3_2_Set{const_cast<UnicodeSet::run_t *>(__v3_2_Set_runs), 75, 0, const_cast<UnicodeSet::bitquad_t *>(__v3_2_Set_quads), 52, 0};
     610
    601611    /** Code Point Ranges for V4_0
    602612    [0221, 0221], [0234, 0236], [02ae, 02af], [02ef, 02ff], [0350, 0357],
     
    617627    [1080a, 10835], [10837, 10838], [1083c, 1083c], [1083f, 1083f],
    618628    [1d300, 1d356], [1d4c1, 1d4c1], [e0100, e01ef]**/
    619     const UnicodeSet v4_0_Set
    620         {{{Empty, 17}, {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Empty, 1},
    621           {Mixed, 1}, {Empty, 2}, {Mixed, 1}, {Empty, 4}, {Mixed, 1},
    622           {Empty, 16}, {Mixed, 1}, {Empty, 1}, {Mixed, 1}, {Empty, 4},
    623           {Mixed, 1}, {Empty, 1}, {Mixed, 2}, {Empty, 13}, {Mixed, 1},
    624           {Empty, 4}, {Mixed, 1}, {Empty, 2}, {Mixed, 1}, {Empty, 3},
    625           {Mixed, 1}, {Empty, 2}, {Mixed, 1}, {Empty, 1}, {Mixed, 1},
    626           {Empty, 1}, {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Empty, 5},
    627           {Mixed, 1}, {Empty, 88}, {Mixed, 2}, {Empty, 8}, {Mixed, 4},
    628           {Empty, 3}, {Full, 1}, {Empty, 24}, {Full, 3}, {Mixed, 1},
    629           {Empty, 22}, {Mixed, 1}, {Empty, 6}, {Mixed, 1}, {Empty, 20},
    630           {Mixed, 1}, {Empty, 8}, {Mixed, 1}, {Empty, 8}, {Mixed, 1},
    631           {Empty, 3}, {Mixed, 2}, {Empty, 34}, {Mixed, 1}, {Empty, 55},
    632           {Mixed, 1}, {Empty, 1}, {Mixed, 2}, {Empty, 2}, {Mixed, 1},
    633           {Empty, 4}, {Mixed, 1}, {Empty, 2}, {Mixed, 2}, {Empty, 206},
    634           {Full, 2}, {Empty, 1407}, {Mixed, 1}, {Empty, 2}, {Mixed, 1},
    635           {Empty, 13}, {Mixed, 3}, {Empty, 1}, {Full, 3}, {Mixed, 3},
    636           {Empty, 18}, {Mixed, 1}, {Empty, 4}, {Mixed, 2}, {Full, 1},
    637           {Mixed, 2}, {Empty, 26}, {Mixed, 2}, {Empty, 1622}, {Full, 2},
    638           {Mixed, 1}, {Empty, 11}, {Mixed, 1}, {Empty, 24929}, {Full, 7},
    639           {Mixed, 1}, {Empty, 6128}},
    640          {0x00700002, 0x0000c000, 0xffff8000, 0xe0ff0000, 0x0f800000,
    641           0x003fe00f, 0x01c00000, 0x8000c000, 0x0000e000, 0x0000e000,
    642           0x00000010, 0x20000000, 0x0000000a, 0x00001000, 0x0002000e,
    643           0x00200000, 0x00020000, 0x07f80000, 0x30000000, 0x20000000,
    644           0x03ff0000, 0x1fffffff, 0x0fff0fff, 0xfffffff1, 0x001f3fff,
    645           0x00000fff, 0x00180000, 0x08000000, 0x00018000, 0x80000000,
    646           0x00300000, 0x0003fc00, 0x00000003, 0x00003fff, 0x60000000,
    647           0x00010000, 0x30000000, 0x0000f000, 0x07800000, 0xc0000000,
    648           0x80000000, 0x20000000, 0x00000180, 0xffffefff, 0xb7ffff7f,
    649           0x3fff3fff, 0x07ffffff, 0xffffff87, 0xff8fffff, 0xbfffffff,
    650           0x000000c0, 0xffffc000, 0x3fffffff, 0x000003ff, 0xfffffd3f,
    651           0x91bfffff, 0x007fffff, 0x00000002, 0x0000ffff}};
     629
     630
     631    namespace {
     632    const static UnicodeSet::run_t __v4_0_Set_runs[] = {
     633    {Empty, 17}, {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Empty, 1}, {Mixed, 1},
     634    {Empty, 2}, {Mixed, 1}, {Empty, 4}, {Mixed, 1}, {Empty, 16}, {Mixed, 1},
     635    {Empty, 1}, {Mixed, 1}, {Empty, 4}, {Mixed, 1}, {Empty, 1}, {Mixed, 2},
     636    {Empty, 13}, {Mixed, 1}, {Empty, 4}, {Mixed, 1}, {Empty, 2}, {Mixed, 1},
     637    {Empty, 3}, {Mixed, 1}, {Empty, 2}, {Mixed, 1}, {Empty, 1}, {Mixed, 1},
     638    {Empty, 1}, {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Empty, 5}, {Mixed, 1},
     639    {Empty, 88}, {Mixed, 2}, {Empty, 8}, {Mixed, 4}, {Empty, 3}, {Full, 1},
     640    {Empty, 24}, {Full, 3}, {Mixed, 1}, {Empty, 22}, {Mixed, 1}, {Empty, 6},
     641    {Mixed, 1}, {Empty, 20}, {Mixed, 1}, {Empty, 8}, {Mixed, 1}, {Empty, 8},
     642    {Mixed, 1}, {Empty, 3}, {Mixed, 2}, {Empty, 34}, {Mixed, 1},
     643    {Empty, 55}, {Mixed, 1}, {Empty, 1}, {Mixed, 2}, {Empty, 2}, {Mixed, 1},
     644    {Empty, 4}, {Mixed, 1}, {Empty, 2}, {Mixed, 2}, {Empty, 206}, {Full, 2},
     645    {Empty, 1407}, {Mixed, 1}, {Empty, 2}, {Mixed, 1}, {Empty, 13},
     646    {Mixed, 3}, {Empty, 1}, {Full, 3}, {Mixed, 3}, {Empty, 18}, {Mixed, 1},
     647    {Empty, 4}, {Mixed, 2}, {Full, 1}, {Mixed, 2}, {Empty, 26}, {Mixed, 2},
     648    {Empty, 1622}, {Full, 2}, {Mixed, 1}, {Empty, 11}, {Mixed, 1},
     649    {Empty, 24929}, {Full, 7}, {Mixed, 1}, {Empty, 6128}};
     650    const static UnicodeSet::bitquad_t  __v4_0_Set_quads[] = {
     651    0x00700002, 0x0000c000, 0xffff8000, 0xe0ff0000, 0x0f800000, 0x003fe00f,
     652    0x01c00000, 0x8000c000, 0x0000e000, 0x0000e000, 0x00000010, 0x20000000,
     653    0x0000000a, 0x00001000, 0x0002000e, 0x00200000, 0x00020000, 0x07f80000,
     654    0x30000000, 0x20000000, 0x03ff0000, 0x1fffffff, 0x0fff0fff, 0xfffffff1,
     655    0x001f3fff, 0x00000fff, 0x00180000, 0x08000000, 0x00018000, 0x80000000,
     656    0x00300000, 0x0003fc00, 0x00000003, 0x00003fff, 0x60000000, 0x00010000,
     657    0x30000000, 0x0000f000, 0x07800000, 0xc0000000, 0x80000000, 0x20000000,
     658    0x00000180, 0xffffefff, 0xb7ffff7f, 0x3fff3fff, 0x07ffffff, 0xffffff87,
     659    0xff8fffff, 0xbfffffff, 0x000000c0, 0xffffc000, 0x3fffffff, 0x000003ff,
     660    0xfffffd3f, 0x91bfffff, 0x007fffff, 0x00000002, 0x0000ffff};
     661    }
     662
     663    const static UnicodeSet v4_0_Set{const_cast<UnicodeSet::run_t *>(__v4_0_Set_runs), 97, 0, const_cast<UnicodeSet::bitquad_t *>(__v4_0_Set_quads), 59, 0};
     664
    652665    /** Code Point Ranges for V4_1
    653666    [0237, 0241], [0358, 035c], [03fc, 03ff], [04f6, 04f7], [05a2, 05a2],
     
    669682    [10a0c, 10a13], [10a15, 10a17], [10a19, 10a33], [10a38, 10a3a],
    670683    [10a3f, 10a47], [10a50, 10a58], [1d200, 1d245], [1d6a4, 1d6a5]**/
    671     const UnicodeSet v4_1_Set
    672         {{{Empty, 17}, {Mixed, 2}, {Empty, 7}, {Mixed, 1}, {Empty, 4},
    673           {Mixed, 1}, {Empty, 7}, {Mixed, 1}, {Empty, 5}, {Mixed, 2},
    674           {Empty, 1}, {Mixed, 1}, {Empty, 1}, {Mixed, 1}, {Empty, 7},
    675           {Mixed, 2}, {Empty, 15}, {Mixed, 1}, {Empty, 2}, {Mixed, 1},
    676           {Empty, 14}, {Mixed, 1}, {Empty, 1}, {Mixed, 1}, {Empty, 30},
    677           {Mixed, 1}, {Empty, 8}, {Mixed, 1}, {Empty, 8}, {Mixed, 1},
    678           {Empty, 1}, {Mixed, 1}, {Empty, 1}, {Mixed, 5}, {Empty, 1},
    679           {Mixed, 3}, {Empty, 47}, {Full, 1}, {Mixed, 2}, {Empty, 1},
    680           {Mixed, 1}, {Empty, 26}, {Mixed, 1}, {Full, 2}, {Mixed, 1},
    681           {Empty, 19}, {Mixed, 1}, {Empty, 1}, {Mixed, 2}, {Empty, 1},
    682           {Mixed, 1}, {Empty, 1}, {Mixed, 2}, {Empty, 19}, {Mixed, 1},
    683           {Empty, 17}, {Mixed, 1}, {Empty, 2}, {Mixed, 3}, {Empty, 8},
    684           {Mixed, 1}, {Empty, 25}, {Mixed, 1}, {Empty, 7}, {Full, 1},
    685           {Mixed, 2}, {Empty, 1}, {Full, 3}, {Mixed, 1}, {Full, 1},
    686           {Mixed, 1}, {Full, 1}, {Mixed, 4}, {Empty, 1}, {Mixed, 1},
    687           {Empty, 29}, {Mixed, 1}, {Empty, 4}, {Mixed, 1}, {Empty, 873},
    688           {Mixed, 1}, {Empty, 58}, {Mixed, 1}, {Empty, 7}, {Full, 1},
    689           {Mixed, 1}, {Empty, 657}, {Mixed, 1}, {Full, 2}, {Mixed, 1},
    690           {Empty, 25}, {Mixed, 1}, {Empty, 25}, {Full, 2}, {Mixed, 1},
    691           {Empty, 16}, {Full, 1}, {Mixed, 1}, {Empty, 49}, {Mixed, 3},
    692           {Empty, 1597}, {Full, 2}, {Mixed, 1}, {Empty, 34}, {Mixed, 1},
    693           {Empty, 31050}},
    694          {0xff800000, 0x00000003, 0x1f000000, 0xf0000000, 0x00c00000,
    695           0x00000004, 0x000000e0, 0x40000800, 0x7e000000, 0xffff0000,
    696           0x00003fff, 0x20000000, 0x00004000, 0x00400000, 0x00000040,
    697           0x00030000, 0x16000000, 0x00000080, 0x00000080, 0x00000080,
    698           0x00008000, 0x00008000, 0x00008000, 0x80008000, 0x80000080,
    699           0x00000001, 0x03ffffff, 0xffff03ff, 0xc3ff03ff, 0xcfffffff,
    700           0xfffff000, 0x0000000f, 0x7f600000, 0x001f0000, 0x003c0000,
    701           0x00000800, 0x10000000, 0x00001000, 0x0ffe0000, 0x01000000,
    702           0xc0