Changeset 5660 for icGREP/icgrep-devel


Ignore:
Timestamp:
Oct 2, 2017, 12:54:34 PM (20 months ago)
Author:
cameron
Message:

UCD corrections and additional properties

Location:
icGREP/icgrep-devel/icgrep/UCD
Files:
26 edited

Legend:

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

    r5656 r5660  
    99 */
    1010
     11#include "PropertyAliases.h"
    1112#include "PropertyObjects.h"
    1213#include "PropertyValueAliases.h"
  • icGREP/icgrep-devel/icgrep/UCD/CompositionExclusions.h

    r5657 r5660  
    1010
    1111#include "PropertyAliases.h"
     12#include "PropertyObjects.h"
     13#include "PropertyValueAliases.h"
    1214#include "unicode_set.h"
    13 #include <vector>
    1415
    1516namespace UCD {
     
    3940}
    4041
    41 
    4242#endif
  • icGREP/icgrep-devel/icgrep/UCD/DerivedAge.h

    r5656 r5660  
    99 */
    1010
     11#include "PropertyAliases.h"
    1112#include "PropertyObjects.h"
    1213#include "PropertyValueAliases.h"
  • icGREP/icgrep-devel/icgrep/UCD/DerivedBidiClass.h

    r5656 r5660  
    99 */
    1010
     11#include "PropertyAliases.h"
    1112#include "PropertyObjects.h"
    1213#include "PropertyValueAliases.h"
  • icGREP/icgrep-devel/icgrep/UCD/DerivedBinaryProperties.h

    r5656 r5660  
    1010
    1111#include "PropertyAliases.h"
     12#include "PropertyObjects.h"
     13#include "PropertyValueAliases.h"
    1214#include "unicode_set.h"
    13 #include <vector>
    1415
    1516namespace UCD {
  • icGREP/icgrep-devel/icgrep/UCD/DerivedCombiningClass.h

    r5656 r5660  
    99 */
    1010
     11#include "PropertyAliases.h"
    1112#include "PropertyObjects.h"
    1213#include "PropertyValueAliases.h"
  • icGREP/icgrep-devel/icgrep/UCD/DerivedCoreProperties.h

    r5656 r5660  
    1010
    1111#include "PropertyAliases.h"
     12#include "PropertyObjects.h"
     13#include "PropertyValueAliases.h"
    1214#include "unicode_set.h"
    13 #include <vector>
    1415
    1516namespace UCD {
  • icGREP/icgrep-devel/icgrep/UCD/DerivedDecompositionType.h

    r5656 r5660  
    99 */
    1010
     11#include "PropertyAliases.h"
    1112#include "PropertyObjects.h"
    1213#include "PropertyValueAliases.h"
  • icGREP/icgrep-devel/icgrep/UCD/DerivedGeneralCategory.h

    r5656 r5660  
    99 */
    1010
     11#include "PropertyAliases.h"
    1112#include "PropertyObjects.h"
    1213#include "PropertyValueAliases.h"
  • icGREP/icgrep-devel/icgrep/UCD/DerivedJoiningGroup.h

    r5656 r5660  
    99 */
    1010
     11#include "PropertyAliases.h"
    1112#include "PropertyObjects.h"
    1213#include "PropertyValueAliases.h"
  • icGREP/icgrep-devel/icgrep/UCD/DerivedJoiningType.h

    r5656 r5660  
    99 */
    1010
     11#include "PropertyAliases.h"
    1112#include "PropertyObjects.h"
    1213#include "PropertyValueAliases.h"
  • icGREP/icgrep-devel/icgrep/UCD/DerivedNormalizationProps.h

    r5656 r5660  
    1010
    1111#include "PropertyAliases.h"
     12#include "PropertyObjects.h"
     13#include "PropertyValueAliases.h"
    1214#include "unicode_set.h"
    13 #include <vector>
    1415
    1516namespace UCD {
     
    334335        static BinaryPropertyObject property_object{Comp_Ex, codepoint_set};
    335336    }
    336     namespace FC_NFKC_ns {
    337         /** Code Point Ranges for FC_NFKC
    338         [037a, 037a], [03d2, 03d4], [03f2, 03f2], [03f9, 03f9],
    339         [1d2c, 1d2e], [1d30, 1d3a], [1d3c, 1d42], [20a8, 20a8],
    340         [2102, 2103], [2107, 2107], [2109, 2109], [210b, 210d],
    341         [2110, 2112], [2115, 2116], [2119, 211d], [2120, 2122],
    342         [2124, 2124], [2128, 2128], [212c, 212d], [2130, 2131],
    343         [2133, 2133], [213b, 213b], [213e, 213f], [2145, 2145],
    344         [2c7d, 2c7d], [3250, 3250], [32cc, 32cc], [32ce, 32cf],
    345         [3371, 3371], [3373, 3373], [3375, 3375], [337a, 337a],
    346         [3380, 3387], [338a, 338c], [3390, 3394], [33a9, 33ac],
    347         [33b4, 33c1], [33c3, 33c3], [33c6, 33c9], [33cb, 33cb],
    348         [33cd, 33ce], [33d7, 33d7], [33d9, 33da], [33dc, 33df],
    349         [a7f8, a7f8], [1d400, 1d419], [1d434, 1d44d], [1d468, 1d481],
    350         [1d49c, 1d49c], [1d49e, 1d49f], [1d4a2, 1d4a2], [1d4a5, 1d4a6],
    351         [1d4a9, 1d4ac], [1d4ae, 1d4b5], [1d4d0, 1d4e9], [1d504, 1d505],
    352         [1d507, 1d50a], [1d50d, 1d514], [1d516, 1d51c], [1d538, 1d539],
    353         [1d53b, 1d53e], [1d540, 1d544], [1d546, 1d546], [1d54a, 1d550],
    354         [1d56c, 1d585], [1d5a0, 1d5b9], [1d5d4, 1d5ed], [1d608, 1d621],
    355         [1d63c, 1d655], [1d670, 1d689], [1d6a8, 1d6c0], [1d6d3, 1d6d3],
    356         [1d6e2, 1d6fa], [1d70d, 1d70d], [1d71c, 1d734], [1d747, 1d747],
    357         [1d756, 1d76e], [1d781, 1d781], [1d790, 1d7a8], [1d7bb, 1d7bb],
    358         [1d7ca, 1d7ca], [1f110, 1f12e], [1f130, 1f14f], [1f16a, 1f16b],
    359         [1f190, 1f190]**/
    360         const UnicodeSet codepoint_set
    361             {{{Empty, 27}, {Mixed, 1}, {Empty, 2}, {Mixed, 2}, {Empty, 201},
    362               {Mixed, 2}, {Empty, 26}, {Mixed, 1}, {Empty, 2}, {Mixed, 3},
    363               {Empty, 88}, {Mixed, 1}, {Empty, 46}, {Mixed, 1}, {Empty, 3},
    364               {Mixed, 1}, {Empty, 4}, {Mixed, 4}, {Empty, 928}, {Mixed, 1},
    365               {Empty, 2400}, {Mixed, 31}, {Empty, 201}, {Mixed, 5},
    366               {Empty, 30835}},
    367              {0x04000000, 0x001c0000, 0x02040000, 0xf7ff7000, 0x00000007,
    368               0x00000100, 0x3e673a8c, 0xc80b3117, 0x00000020, 0x20000000,
    369               0x00010000, 0x0000d000, 0x042a0000, 0x001f1cff, 0xfff01e00,
    370               0xf6806bcb, 0x01000000, 0x03ffffff, 0xfff00000, 0x00003fff,
    371               0xffffff00, 0xd0000003, 0x003fde64, 0xffff0000, 0x000003ff,
    372               0x1fdfe7b0, 0x7b000000, 0x0001fc5f, 0xfffff000, 0x0000003f,
    373               0x03ffffff, 0xfff00000, 0x00003fff, 0xffffff00, 0xf0000003,
    374               0x003fffff, 0xffff0000, 0x000003ff, 0xffffff00, 0x00080001,
    375               0x07fffffc, 0xf0002000, 0x001fffff, 0xffc00080, 0x00007fff,
    376               0xffff0002, 0x080001ff, 0x00000400, 0xffff0000, 0xffff7fff,
    377               0x0000ffff, 0x00000c00, 0x00010000}};
    378         static BinaryPropertyObject property_object{FC_NFKC, codepoint_set};
     337  namespace NFC_QC_ns {
     338    const unsigned independent_prop_values = 3;
     339    /** Code Point Ranges for Y
     340    [0000, 02ff], [0305, 0305], [030d, 030e], [0310, 0310], [0312, 0312],
     341    [0315, 031a], [031c, 0322], [0329, 032c], [032f, 032f], [0332, 0337],
     342    [0339, 033f], [0346, 0373], [0375, 037d], [037f, 0386], [0388, 0652],
     343    [0656, 093b], [093d, 0957], [0960, 09bd], [09bf, 09d6], [09d8, 09db],
     344    [09de, 09de], [09e0, 0a32], [0a34, 0a35], [0a37, 0a58], [0a5c, 0a5d],
     345    [0a5f, 0b3d], [0b3f, 0b55], [0b58, 0b5b], [0b5e, 0bbd], [0bbf, 0bd6],
     346    [0bd8, 0c55], [0c57, 0cc1], [0cc3, 0cd4], [0cd7, 0d3d], [0d3f, 0d56],
     347    [0d58, 0dc9], [0dcb, 0dce], [0dd0, 0dde], [0de0, 0f42], [0f44, 0f4c],
     348    [0f4e, 0f51], [0f53, 0f56], [0f58, 0f5b], [0f5d, 0f68], [0f6a, 0f72],
     349    [0f74, 0f74], [0f77, 0f77], [0f79, 0f80], [0f82, 0f92], [0f94, 0f9c],
     350    [0f9e, 0fa1], [0fa3, 0fa6], [0fa8, 0fab], [0fad, 0fb8], [0fba, 102d],
     351    [102f, 1160], [1176, 11a7], [11c3, 1b34], [1b36, 1f70], [1f72, 1f72],
     352    [1f74, 1f74], [1f76, 1f76], [1f78, 1f78], [1f7a, 1f7a], [1f7c, 1f7c],
     353    [1f7e, 1fba], [1fbc, 1fbd], [1fbf, 1fc8], [1fca, 1fca], [1fcc, 1fd2],
     354    [1fd4, 1fda], [1fdc, 1fe2], [1fe4, 1fea], [1fec, 1fed], [1ff0, 1ff8],
     355    [1ffa, 1ffa], [1ffc, 1ffc], [1ffe, 1fff], [2002, 2125], [2127, 2129],
     356    [212c, 2328], [232b, 2adb], [2add, 3098], [309b, f8ff], [fa0e, fa0f],
     357    [fa11, fa11], [fa13, fa14], [fa1f, fa1f], [fa21, fa21], [fa23, fa24],
     358    [fa27, fa29], [fa6e, fa6f], [fada, fb1c], [fb1e, fb1e], [fb20, fb29],
     359    [fb37, fb37], [fb3d, fb3d], [fb3f, fb3f], [fb42, fb42], [fb45, fb45],
     360    [fb4f, 110b9], [110bb, 11126], [11128, 1133d], [1133f, 11356],
     361    [11358, 114af], [114b1, 114b9], [114bb, 114bc], [114be, 115ae],
     362    [115b0, 1d15d], [1d165, 1d1ba], [1d1c1, 2f7ff], [2fa1e, 10ffff]**/
     363    const UnicodeSet y_Set
     364        {{{Full, 24}, {Mixed, 5}, {Full, 21}, {Mixed, 1}, {Full, 22},
     365          {Mixed, 2}, {Full, 2}, {Mixed, 2}, {Full, 2}, {Mixed, 2},
     366          {Full, 6}, {Mixed, 2}, {Full, 2}, {Mixed, 2}, {Full, 3},
     367          {Mixed, 1}, {Full, 3}, {Mixed, 1}, {Full, 2}, {Mixed, 2},
     368          {Full, 3}, {Mixed, 1}, {Full, 11}, {Mixed, 4}, {Full, 3},
     369          {Mixed, 1}, {Full, 9}, {Mixed, 1}, {Full, 1}, {Mixed, 2},
     370          {Full, 74}, {Mixed, 1}, {Full, 33}, {Mixed, 1}, {Full, 1},
     371          {Mixed, 4}, {Full, 8}, {Mixed, 1}, {Full, 15}, {Mixed, 1},
     372          {Full, 60}, {Mixed, 1}, {Full, 45}, {Mixed, 1}, {Full, 1603},
     373          {Empty, 8}, {Mixed, 2}, {Empty, 1}, {Mixed, 1}, {Empty, 2},
     374          {Mixed, 1}, {Full, 1}, {Mixed, 3}, {Full, 170}, {Mixed, 1},
     375          {Full, 3}, {Mixed, 1}, {Full, 15}, {Mixed, 2}, {Full, 10},
     376          {Mixed, 1}, {Full, 7}, {Mixed, 1}, {Full, 1500}, {Mixed, 2},
     377          {Full, 1}, {Mixed, 2}, {Full, 2353}, {Empty, 16}, {Mixed, 1},
     378          {Full, 28719}},
     379         {0xf7e56020, 0xfefc9e07, 0xffffffc0, 0xbfefffff, 0xffffff7f,
     380          0xffc7ffff, 0xefffffff, 0x00ffffff, 0xbfffffff, 0x4f7fffff,
     381          0xffb7ffff, 0xb1ffffff, 0xbfffffff, 0xcf3fffff, 0xbfffffff,
     382          0xff7fffff, 0xffbfffff, 0xff9ffffb, 0xbfffffff, 0xff7fffff,
     383          0x7fff7bff, 0xef7bdff7, 0xfe97fdff, 0xdff7fffd, 0xfdffef7b,
     384          0xffffbfff, 0xffc00001, 0x000000ff, 0xfffffff8, 0xffdfffff,
     385          0xd555ffff, 0xb7ffffff, 0xf7f7f5ff, 0xd5ff37f7, 0xfffffffc,
     386          0xfffff3bf, 0xfffff9ff, 0xefffffff, 0xf9ffffff, 0x801ac000,
     387          0x0000039a, 0x0000c000, 0xfc000000, 0x5fffffff, 0xa08003ff,
     388          0xffff8024, 0xfbffffff, 0xffffff7f, 0xbfffffff, 0xff7fffff,
     389          0xdbfeffff, 0xffff7fff, 0x3fffffff, 0xffffffe0, 0x07ffffff,
     390          0xfffffffe, 0xc0000000}};
     391    /** Code Point Ranges for N
     392    [0340, 0341], [0343, 0344], [0374, 0374], [037e, 037e], [0387, 0387],
     393    [0958, 095f], [09dc, 09dd], [09df, 09df], [0a33, 0a33], [0a36, 0a36],
     394    [0a59, 0a5b], [0a5e, 0a5e], [0b5c, 0b5d], [0f43, 0f43], [0f4d, 0f4d],
     395    [0f52, 0f52], [0f57, 0f57], [0f5c, 0f5c], [0f69, 0f69], [0f73, 0f73],
     396    [0f75, 0f76], [0f78, 0f78], [0f81, 0f81], [0f93, 0f93], [0f9d, 0f9d],
     397    [0fa2, 0fa2], [0fa7, 0fa7], [0fac, 0fac], [0fb9, 0fb9], [1f71, 1f71],
     398    [1f73, 1f73], [1f75, 1f75], [1f77, 1f77], [1f79, 1f79], [1f7b, 1f7b],
     399    [1f7d, 1f7d], [1fbb, 1fbb], [1fbe, 1fbe], [1fc9, 1fc9], [1fcb, 1fcb],
     400    [1fd3, 1fd3], [1fdb, 1fdb], [1fe3, 1fe3], [1feb, 1feb], [1fee, 1fef],
     401    [1ff9, 1ff9], [1ffb, 1ffb], [1ffd, 1ffd], [2000, 2001], [2126, 2126],
     402    [212a, 212b], [2329, 232a], [2adc, 2adc], [f900, fa0d], [fa10, fa10],
     403    [fa12, fa12], [fa15, fa1e], [fa20, fa20], [fa22, fa22], [fa25, fa26],
     404    [fa2a, fa6d], [fa70, fad9], [fb1d, fb1d], [fb1f, fb1f], [fb2a, fb36],
     405    [fb38, fb3c], [fb3e, fb3e], [fb40, fb41], [fb43, fb44], [fb46, fb4e],
     406    [1d15e, 1d164], [1d1bb, 1d1c0], [2f800, 2fa1d]**/
     407    const UnicodeSet n_Set
     408        {{{Empty, 26}, {Mixed, 3}, {Empty, 45}, {Mixed, 1}, {Empty, 3},
     409          {Mixed, 1}, {Empty, 2}, {Mixed, 2}, {Empty, 7}, {Mixed, 1},
     410          {Empty, 31}, {Mixed, 4}, {Empty, 125}, {Mixed, 1}, {Empty, 1},
     411          {Mixed, 4}, {Empty, 8}, {Mixed, 1}, {Empty, 15}, {Mixed, 1},
     412          {Empty, 60}, {Mixed, 1}, {Empty, 1649}, {Full, 8}, {Mixed, 2},
     413          {Full, 1}, {Mixed, 1}, {Full, 2}, {Mixed, 1}, {Empty, 1},
     414          {Mixed, 3}, {Empty, 1711}, {Mixed, 2}, {Empty, 1}, {Mixed, 2},
     415          {Empty, 2353}, {Full, 16}, {Mixed, 1}, {Empty, 28719}},
     416         {0x0000001b, 0x40100000, 0x00000080, 0xff000000, 0xb0000000,
     417          0x00480000, 0x4e000000, 0x30000000, 0x10842008, 0x01680200,
     418          0x20080002, 0x02001084, 0x2aaa0000, 0x48000000, 0x08080a00,
     419          0x2a00c808, 0x00000003, 0x00000c40, 0x00000600, 0x10000000,
     420          0x7fe53fff, 0xfffffc65, 0xffff3fff, 0x03ffffff, 0xa0000000,
     421          0x5f7ffc00, 0x00007fdb, 0xc0000000, 0x0000001f, 0xf8000000,
     422          0x00000001, 0x3fffffff}};
     423    /** Code Point Ranges for M
     424    [0300, 0304], [0306, 030c], [030f, 030f], [0311, 0311], [0313, 0314],
     425    [031b, 031b], [0323, 0328], [032d, 032e], [0330, 0331], [0338, 0338],
     426    [0342, 0342], [0345, 0345], [0653, 0655], [093c, 093c], [09be, 09be],
     427    [09d7, 09d7], [0b3e, 0b3e], [0b56, 0b57], [0bbe, 0bbe], [0bd7, 0bd7],
     428    [0c56, 0c56], [0cc2, 0cc2], [0cd5, 0cd6], [0d3e, 0d3e], [0d57, 0d57],
     429    [0dca, 0dca], [0dcf, 0dcf], [0ddf, 0ddf], [102e, 102e], [1161, 1175],
     430    [11a8, 11c2], [1b35, 1b35], [3099, 309a], [110ba, 110ba],
     431    [11127, 11127], [1133e, 1133e], [11357, 11357], [114b0, 114b0],
     432    [114ba, 114ba], [114bd, 114bd], [115af, 115af]**/
     433    const UnicodeSet m_Set
     434        {{{Empty, 24}, {Mixed, 3}, {Empty, 23}, {Mixed, 1}, {Empty, 22},
     435          {Mixed, 1}, {Empty, 3}, {Mixed, 2}, {Empty, 10}, {Mixed, 2},
     436          {Empty, 2}, {Mixed, 2}, {Empty, 3}, {Mixed, 1}, {Empty, 3},
     437          {Mixed, 1}, {Empty, 2}, {Mixed, 2}, {Empty, 3}, {Mixed, 1},
     438          {Empty, 18}, {Mixed, 1}, {Empty, 9}, {Mixed, 1}, {Empty, 1},
     439          {Mixed, 2}, {Empty, 74}, {Mixed, 1}, {Empty, 170}, {Mixed, 1},
     440          {Empty, 1792}, {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Empty, 15},
     441          {Mixed, 2}, {Empty, 10}, {Mixed, 1}, {Empty, 7}, {Mixed, 1},
     442          {Empty, 32594}},
     443         {0x081a9fdf, 0x010361f8, 0x00000024, 0x00380000, 0x10000000,
     444          0x40000000, 0x00800000, 0x40000000, 0x00c00000, 0x40000000,
     445          0x00800000, 0x00400000, 0x00600004, 0x40000000, 0x00800000,
     446          0x80008400, 0x00004000, 0x003ffffe, 0xffffff00, 0x00000007,
     447          0x00200000, 0x06000000, 0x04000000, 0x00000080, 0x40000000,
     448          0x00800000, 0x24010000, 0x00008000}};
     449    static EnumeratedPropertyObject property_object
     450        {NFC_QC,
     451         NFC_QC_ns::independent_prop_values,
     452         NFC_QC_ns::enum_names,
     453         NFC_QC_ns::value_names,
     454         NFC_QC_ns::aliases_only_map,
     455         {&y_Set, &n_Set, &m_Set
     456         }};
    379457    }
    380     namespace NFC_QC_ns {
    381         /** Code Point Ranges for NFC_QC
    382         [0300, 0304], [0306, 030c], [030f, 030f], [0311, 0311],
    383         [0313, 0314], [031b, 031b], [0323, 0328], [032d, 032e],
    384         [0330, 0331], [0338, 0338], [0340, 0345], [0374, 0374],
    385         [037e, 037e], [0387, 0387], [0653, 0655], [093c, 093c],
    386         [0958, 095f], [09be, 09be], [09d7, 09d7], [09dc, 09dd],
    387         [09df, 09df], [0a33, 0a33], [0a36, 0a36], [0a59, 0a5b],
    388         [0a5e, 0a5e], [0b3e, 0b3e], [0b56, 0b57], [0b5c, 0b5d],
    389         [0bbe, 0bbe], [0bd7, 0bd7], [0c56, 0c56], [0cc2, 0cc2],
    390         [0cd5, 0cd6], [0d3e, 0d3e], [0d57, 0d57], [0dca, 0dca],
    391         [0dcf, 0dcf], [0ddf, 0ddf], [0f43, 0f43], [0f4d, 0f4d],
    392         [0f52, 0f52], [0f57, 0f57], [0f5c, 0f5c], [0f69, 0f69],
    393         [0f73, 0f73], [0f75, 0f76], [0f78, 0f78], [0f81, 0f81],
    394         [0f93, 0f93], [0f9d, 0f9d], [0fa2, 0fa2], [0fa7, 0fa7],
    395         [0fac, 0fac], [0fb9, 0fb9], [102e, 102e], [1161, 1175],
    396         [11a8, 11c2], [1b35, 1b35], [1f71, 1f71], [1f73, 1f73],
    397         [1f75, 1f75], [1f77, 1f77], [1f79, 1f79], [1f7b, 1f7b],
    398         [1f7d, 1f7d], [1fbb, 1fbb], [1fbe, 1fbe], [1fc9, 1fc9],
    399         [1fcb, 1fcb], [1fd3, 1fd3], [1fdb, 1fdb], [1fe3, 1fe3],
    400         [1feb, 1feb], [1fee, 1fef], [1ff9, 1ff9], [1ffb, 1ffb],
    401         [1ffd, 1ffd], [2000, 2001], [2126, 2126], [212a, 212b],
    402         [2329, 232a], [2adc, 2adc], [3099, 309a], [f900, fa0d],
    403         [fa10, fa10], [fa12, fa12], [fa15, fa1e], [fa20, fa20],
    404         [fa22, fa22], [fa25, fa26], [fa2a, fa6d], [fa70, fad9],
    405         [fb1d, fb1d], [fb1f, fb1f], [fb2a, fb36], [fb38, fb3c],
    406         [fb3e, fb3e], [fb40, fb41], [fb43, fb44], [fb46, fb4e],
    407         [110ba, 110ba], [11127, 11127], [1133e, 1133e], [11357, 11357],
    408         [114b0, 114b0], [114ba, 114ba], [114bd, 114bd], [115af, 115af],
    409         [1d15e, 1d164], [1d1bb, 1d1c0], [2f800, 2fa1d]**/
    410         const UnicodeSet codepoint_set
    411             {{{Empty, 24}, {Mixed, 5}, {Empty, 21}, {Mixed, 1}, {Empty, 22},
    412               {Mixed, 2}, {Empty, 2}, {Mixed, 2}, {Empty, 2}, {Mixed, 2},
    413               {Empty, 6}, {Mixed, 2}, {Empty, 2}, {Mixed, 2}, {Empty, 3},
    414               {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Empty, 2}, {Mixed, 2},
    415               {Empty, 3}, {Mixed, 1}, {Empty, 11}, {Mixed, 4}, {Empty, 3},
    416               {Mixed, 1}, {Empty, 9}, {Mixed, 1}, {Empty, 1}, {Mixed, 2},
    417               {Empty, 74}, {Mixed, 1}, {Empty, 33}, {Mixed, 1}, {Empty, 1},
    418               {Mixed, 4}, {Empty, 8}, {Mixed, 1}, {Empty, 15}, {Mixed, 1},
    419               {Empty, 60}, {Mixed, 1}, {Empty, 45}, {Mixed, 1},
    420               {Empty, 1603}, {Full, 8}, {Mixed, 2}, {Full, 1}, {Mixed, 1},
    421               {Full, 2}, {Mixed, 1}, {Empty, 1}, {Mixed, 3}, {Empty, 170},
    422               {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Empty, 15}, {Mixed, 2},
    423               {Empty, 10}, {Mixed, 1}, {Empty, 7}, {Mixed, 1},
    424               {Empty, 1500}, {Mixed, 2}, {Empty, 1}, {Mixed, 2},
    425               {Empty, 2353}, {Full, 16}, {Mixed, 1}, {Empty, 28719}},
    426              {0x081a9fdf, 0x010361f8, 0x0000003f, 0x40100000, 0x00000080,
    427               0x00380000, 0x10000000, 0xff000000, 0x40000000, 0xb0800000,
    428               0x00480000, 0x4e000000, 0x40000000, 0x30c00000, 0x40000000,
    429               0x00800000, 0x00400000, 0x00600004, 0x40000000, 0x00800000,
    430               0x80008400, 0x10842008, 0x01680200, 0x20080002, 0x02001084,
    431               0x00004000, 0x003ffffe, 0xffffff00, 0x00000007, 0x00200000,
    432               0x2aaa0000, 0x48000000, 0x08080a00, 0x2a00c808, 0x00000003,
    433               0x00000c40, 0x00000600, 0x10000000, 0x06000000, 0x7fe53fff,
    434               0xfffffc65, 0xffff3fff, 0x03ffffff, 0xa0000000, 0x5f7ffc00,
    435               0x00007fdb, 0x04000000, 0x00000080, 0x40000000, 0x00800000,
    436               0x24010000, 0x00008000, 0xc0000000, 0x0000001f, 0xf8000000,
    437               0x00000001, 0x3fffffff}};
    438         static BinaryPropertyObject property_object{NFC_QC, codepoint_set};
     458  namespace NFD_QC_ns {
     459    const unsigned independent_prop_values = 2;
     460    /** Code Point Ranges for Y
     461    [0000, 00bf], [00c6, 00c6], [00d0, 00d0], [00d7, 00d8], [00de, 00df],
     462    [00e6, 00e6], [00f0, 00f0], [00f7, 00f8], [00fe, 00fe], [0110, 0111],
     463    [0126, 0127], [0131, 0133], [0138, 0138], [013f, 0142], [0149, 014b],
     464    [0152, 0153], [0166, 0167], [017f, 019f], [01a2, 01ae], [01b1, 01cc],
     465    [01dd, 01dd], [01e4, 01e5], [01f1, 01f3], [01f6, 01f7], [021c, 021d],
     466    [0220, 0225], [0234, 033f], [0342, 0342], [0345, 0373], [0375, 037d],
     467    [037f, 0384], [038b, 038b], [038d, 038d], [0391, 03a9], [03b1, 03c9],
     468    [03cf, 03d2], [03d5, 03ff], [0402, 0402], [0404, 0406], [0408, 040b],
     469    [040f, 0418], [041a, 0438], [043a, 044f], [0452, 0452], [0454, 0456],
     470    [0458, 045b], [045f, 0475], [0478, 04c0], [04c3, 04cf], [04d4, 04d5],
     471    [04d8, 04d9], [04e0, 04e1], [04e8, 04e9], [04f6, 04f7], [04fa, 0621],
     472    [0627, 06bf], [06c1, 06c1], [06c3, 06d2], [06d4, 0928], [092a, 0930],
     473    [0932, 0933], [0935, 0957], [0960, 09ca], [09cd, 09db], [09de, 09de],
     474    [09e0, 0a32], [0a34, 0a35], [0a37, 0a58], [0a5c, 0a5d], [0a5f, 0b47],
     475    [0b49, 0b4a], [0b4d, 0b5b], [0b5e, 0b93], [0b95, 0bc9], [0bcd, 0c47],
     476    [0c49, 0cbf], [0cc1, 0cc6], [0cc9, 0cc9], [0ccc, 0d49], [0d4d, 0dd9],
     477    [0ddb, 0ddb], [0ddf, 0f42], [0f44, 0f4c], [0f4e, 0f51], [0f53, 0f56],
     478    [0f58, 0f5b], [0f5d, 0f68], [0f6a, 0f72], [0f74, 0f74], [0f77, 0f77],
     479    [0f79, 0f80], [0f82, 0f92], [0f94, 0f9c], [0f9e, 0fa1], [0fa3, 0fa6],
     480    [0fa8, 0fab], [0fad, 0fb8], [0fba, 1025], [1027, 1b05], [1b07, 1b07],
     481    [1b09, 1b09], [1b0b, 1b0b], [1b0d, 1b0d], [1b0f, 1b11], [1b13, 1b3a],
     482    [1b3c, 1b3c], [1b3e, 1b3f], [1b42, 1b42], [1b44, 1dff], [1e9a, 1e9a],
     483    [1e9c, 1e9f], [1efa, 1eff], [1f16, 1f17], [1f1e, 1f1f], [1f46, 1f47],
     484    [1f4e, 1f4f], [1f58, 1f58], [1f5a, 1f5a], [1f5c, 1f5c], [1f5e, 1f5e],
     485    [1f7e, 1f7f], [1fb5, 1fb5], [1fbd, 1fbd], [1fbf, 1fc0], [1fc5, 1fc5],
     486    [1fd4, 1fd5], [1fdc, 1fdc], [1ff0, 1ff1], [1ff5, 1ff5], [1ffe, 1fff],
     487    [2002, 2125], [2127, 2129], [212c, 2199], [219c, 21ad], [21af, 21cc],
     488    [21d0, 2203], [2205, 2208], [220a, 220b], [220d, 2223], [2225, 2225],
     489    [2227, 2240], [2242, 2243], [2245, 2246], [2248, 2248], [224a, 225f],
     490    [2261, 2261], [2263, 226c], [2272, 2273], [2276, 2277], [227a, 227f],
     491    [2282, 2283], [2286, 2287], [228a, 22ab], [22b0, 22df], [22e4, 22e9],
     492    [22ee, 2328], [232b, 2adb], [2add, 304b], [304d, 304d], [304f, 304f],
     493    [3051, 3051], [3053, 3053], [3055, 3055], [3057, 3057], [3059, 3059],
     494    [305b, 305b], [305d, 305d], [305f, 305f], [3061, 3061], [3063, 3064],
     495    [3066, 3066], [3068, 3068], [306a, 306f], [3072, 3072], [3075, 3075],
     496    [3078, 3078], [307b, 307b], [307e, 3093], [3095, 309d], [309f, 30ab],
     497    [30ad, 30ad], [30af, 30af], [30b1, 30b1], [30b3, 30b3], [30b5, 30b5],
     498    [30b7, 30b7], [30b9, 30b9], [30bb, 30bb], [30bd, 30bd], [30bf, 30bf],
     499    [30c1, 30c1], [30c3, 30c4], [30c6, 30c6], [30c8, 30c8], [30ca, 30cf],
     500    [30d2, 30d2], [30d5, 30d5], [30d8, 30d8], [30db, 30db], [30de, 30f3],
     501    [30f5, 30f6], [30fb, 30fd], [30ff, abff], [d7a4, f8ff], [fa0e, fa0f],
     502    [fa11, fa11], [fa13, fa14], [fa1f, fa1f], [fa21, fa21], [fa23, fa24],
     503    [fa27, fa29], [fa6e, fa6f], [fada, fb1c], [fb1e, fb1e], [fb20, fb29],
     504    [fb37, fb37], [fb3d, fb3d], [fb3f, fb3f], [fb42, fb42], [fb45, fb45],
     505    [fb4f, 11099], [1109b, 1109b], [1109d, 110aa], [110ac, 1112d],
     506    [11130, 1134a], [1134d, 114ba], [114bd, 114bd], [114bf, 115b9],
     507    [115bc, 1d15d], [1d165, 1d1ba], [1d1c1, 2f7ff], [2fa1e, 10ffff]**/
     508    const UnicodeSet y_Set
     509        {{{Full, 6}, {Mixed, 6}, {Full, 1}, {Mixed, 5}, {Full, 8},
     510          {Mixed, 5}, {Full, 1}, {Mixed, 4}, {Full, 2}, {Mixed, 2},
     511          {Full, 9}, {Mixed, 1}, {Full, 4}, {Mixed, 1}, {Full, 18},
     512          {Mixed, 2}, {Full, 3}, {Mixed, 1}, {Full, 2}, {Mixed, 2},
     513          {Full, 7}, {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Full, 1},
     514          {Mixed, 1}, {Full, 3}, {Mixed, 1}, {Full, 3}, {Mixed, 1},
     515          {Full, 3}, {Mixed, 1}, {Full, 3}, {Mixed, 1}, {Full, 11},
     516          {Mixed, 4}, {Full, 3}, {Mixed, 1}, {Full, 86}, {Mixed, 3},
     517          {Full, 21}, {Empty, 4}, {Mixed, 1}, {Empty, 2}, {Mixed, 2},
     518          {Empty, 1}, {Mixed, 2}, {Empty, 1}, {Mixed, 4}, {Full, 8},
     519          {Mixed, 1}, {Full, 2}, {Mixed, 3}, {Full, 1}, {Mixed, 6},
     520          {Full, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Full, 60},
     521          {Mixed, 1}, {Full, 43}, {Mixed, 6}, {Full, 984}, {Empty, 349},
     522          {Mixed, 1}, {Full, 266}, {Empty, 8}, {Mixed, 2}, {Empty, 1},
     523          {Mixed, 1}, {Empty, 2}, {Mixed, 1}, {Full, 1}, {Mixed, 3},
     524          {Full, 169}, {Mixed, 2}, {Full, 3}, {Mixed, 1}, {Full, 16},
     525          {Mixed, 1}, {Full, 10}, {Mixed, 1}, {Full, 7}, {Mixed, 1},
     526          {Full, 1500}, {Mixed, 2}, {Full, 1}, {Mixed, 2}, {Full, 2353},
     527          {Empty, 16}, {Mixed, 1}, {Full, 28719}},
     528         {0xc1810040, 0x41810040, 0x00030000, 0x810e00c0, 0x000c0e07,
     529          0x800000c0, 0xfffe7ffc, 0x20001fff, 0x00ce0030, 0x30000000,
     530          0xfff0003f, 0xffffffe4, 0xbfefffff, 0xfffe281f, 0xfffe03ff,
     531          0xffe783ff, 0xfdff8f74, 0xfdffffff, 0x8f74ffff, 0xff3fffff,
     532          0x0330fff9, 0xfcc00303, 0xffffff83, 0xfff7fffa, 0xffedfdff,
     533          0x00ffffff, 0x4fffe7ff, 0xffb7ffff, 0xb1ffffff, 0xcfffe6ff,
     534          0xffefffff, 0xffffe3ff, 0xfffffeff, 0xfffff27e, 0xffffe3ff,
     535          0x8bffffff, 0xef7bdff7, 0xfe97fdff, 0xdff7fffd, 0xfdffef7b,
     536          0xffffffbf, 0xfffbaabf, 0xd7ffffff, 0xfffffff4, 0xf4000000,
     537          0xfc000000, 0xc0c00000, 0x5500c0c0, 0xc0000000, 0xa0200000,
     538          0x10300021, 0xc0230000, 0xfffffffc, 0xfffff3bf, 0xf3ffffff,
     539          0xffffbfff, 0xffff1fff, 0xffffedef, 0xffffffaf, 0xfffffd6d,
     540          0xfccc1ffa, 0xfffffccc, 0xffff0fff, 0xffffc3f0, 0xfffff9ff,
     541          0xefffffff, 0xaaaaafff, 0xc924fd5a, 0xbfefffff, 0xaaaaafff,
     542          0xc924fd5a, 0xb86fffff, 0xfffffff0, 0x801ac000, 0x0000039a,
     543          0x0000c000, 0xfc000000, 0x5fffffff, 0xa08003ff, 0xffff8024,
     544          0xebffffff, 0xfffff7ff, 0xffff3fff, 0xffffe7ff, 0xa7ffffff,
     545          0xf3ffffff, 0x3fffffff, 0xffffffe0, 0x07ffffff, 0xfffffffe,
     546          0xc0000000}};
     547    /** Code Point Ranges for N
     548    [00c0, 00c5], [00c7, 00cf], [00d1, 00d6], [00d9, 00dd], [00e0, 00e5],
     549    [00e7, 00ef], [00f1, 00f6], [00f9, 00fd], [00ff, 010f], [0112, 0125],
     550    [0128, 0130], [0134, 0137], [0139, 013e], [0143, 0148], [014c, 0151],
     551    [0154, 0165], [0168, 017e], [01a0, 01a1], [01af, 01b0], [01cd, 01dc],
     552    [01de, 01e3], [01e6, 01f0], [01f4, 01f5], [01f8, 021b], [021e, 021f],
     553    [0226, 0233], [0340, 0341], [0343, 0344], [0374, 0374], [037e, 037e],
     554    [0385, 038a], [038c, 038c], [038e, 0390], [03aa, 03b0], [03ca, 03ce],
     555    [03d3, 03d4], [0400, 0401], [0403, 0403], [0407, 0407], [040c, 040e],
     556    [0419, 0419], [0439, 0439], [0450, 0451], [0453, 0453], [0457, 0457],
     557    [045c, 045e], [0476, 0477], [04c1, 04c2], [04d0, 04d3], [04d6, 04d7],
     558    [04da, 04df], [04e2, 04e7], [04ea, 04f5], [04f8, 04f9], [0622, 0626],
     559    [06c0, 06c0], [06c2, 06c2], [06d3, 06d3], [0929, 0929], [0931, 0931],
     560    [0934, 0934], [0958, 095f], [09cb, 09cc], [09dc, 09dd], [09df, 09df],
     561    [0a33, 0a33], [0a36, 0a36], [0a59, 0a5b], [0a5e, 0a5e], [0b48, 0b48],
     562    [0b4b, 0b4c], [0b5c, 0b5d], [0b94, 0b94], [0bca, 0bcc], [0c48, 0c48],
     563    [0cc0, 0cc0], [0cc7, 0cc8], [0cca, 0ccb], [0d4a, 0d4c], [0dda, 0dda],
     564    [0ddc, 0dde], [0f43, 0f43], [0f4d, 0f4d], [0f52, 0f52], [0f57, 0f57],
     565    [0f5c, 0f5c], [0f69, 0f69], [0f73, 0f73], [0f75, 0f76], [0f78, 0f78],
     566    [0f81, 0f81], [0f93, 0f93], [0f9d, 0f9d], [0fa2, 0fa2], [0fa7, 0fa7],
     567    [0fac, 0fac], [0fb9, 0fb9], [1026, 1026], [1b06, 1b06], [1b08, 1b08],
     568    [1b0a, 1b0a], [1b0c, 1b0c], [1b0e, 1b0e], [1b12, 1b12], [1b3b, 1b3b],
     569    [1b3d, 1b3d], [1b40, 1b41], [1b43, 1b43], [1e00, 1e99], [1e9b, 1e9b],
     570    [1ea0, 1ef9], [1f00, 1f15], [1f18, 1f1d], [1f20, 1f45], [1f48, 1f4d],
     571    [1f50, 1f57], [1f59, 1f59], [1f5b, 1f5b], [1f5d, 1f5d], [1f5f, 1f7d],
     572    [1f80, 1fb4], [1fb6, 1fbc], [1fbe, 1fbe], [1fc1, 1fc4], [1fc6, 1fd3],
     573    [1fd6, 1fdb], [1fdd, 1fef], [1ff2, 1ff4], [1ff6, 1ffd], [2000, 2001],
     574    [2126, 2126], [212a, 212b], [219a, 219b], [21ae, 21ae], [21cd, 21cf],
     575    [2204, 2204], [2209, 2209], [220c, 220c], [2224, 2224], [2226, 2226],
     576    [2241, 2241], [2244, 2244], [2247, 2247], [2249, 2249], [2260, 2260],
     577    [2262, 2262], [226d, 2271], [2274, 2275], [2278, 2279], [2280, 2281],
     578    [2284, 2285], [2288, 2289], [22ac, 22af], [22e0, 22e3], [22ea, 22ed],
     579    [2329, 232a], [2adc, 2adc], [304c, 304c], [304e, 304e], [3050, 3050],
     580    [3052, 3052], [3054, 3054], [3056, 3056], [3058, 3058], [305a, 305a],
     581    [305c, 305c], [305e, 305e], [3060, 3060], [3062, 3062], [3065, 3065],
     582    [3067, 3067], [3069, 3069], [3070, 3071], [3073, 3074], [3076, 3077],
     583    [3079, 307a], [307c, 307d], [3094, 3094], [309e, 309e], [30ac, 30ac],
     584    [30ae, 30ae], [30b0, 30b0], [30b2, 30b2], [30b4, 30b4], [30b6, 30b6],
     585    [30b8, 30b8], [30ba, 30ba], [30bc, 30bc], [30be, 30be], [30c0, 30c0],
     586    [30c2, 30c2], [30c5, 30c5], [30c7, 30c7], [30c9, 30c9], [30d0, 30d1],
     587    [30d3, 30d4], [30d6, 30d7], [30d9, 30da], [30dc, 30dd], [30f4, 30f4],
     588    [30f7, 30fa], [30fe, 30fe], [ac00, d7a3], [f900, fa0d], [fa10, fa10],
     589    [fa12, fa12], [fa15, fa1e], [fa20, fa20], [fa22, fa22], [fa25, fa26],
     590    [fa2a, fa6d], [fa70, fad9], [fb1d, fb1d], [fb1f, fb1f], [fb2a, fb36],
     591    [fb38, fb3c], [fb3e, fb3e], [fb40, fb41], [fb43, fb44], [fb46, fb4e],
     592    [1109a, 1109a], [1109c, 1109c], [110ab, 110ab], [1112e, 1112f],
     593    [1134b, 1134c], [114bb, 114bc], [114be, 114be], [115ba, 115bb],
     594    [1d15e, 1d164], [1d1bb, 1d1c0], [2f800, 2fa1d]**/
     595    const UnicodeSet n_Set
     596        {{{Empty, 6}, {Mixed, 6}, {Empty, 1}, {Mixed, 5}, {Empty, 8},
     597          {Mixed, 5}, {Empty, 1}, {Mixed, 4}, {Empty, 2}, {Mixed, 2},
     598          {Empty, 9}, {Mixed, 1}, {Empty, 4}, {Mixed, 1}, {Empty, 18},
     599          {Mixed, 2}, {Empty, 3}, {Mixed, 1}, {Empty, 2}, {Mixed, 2},
     600          {Empty, 7}, {Mixed, 1}, {Empty, 1}, {Mixed, 1}, {Empty, 1},
     601          {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Empty, 3}, {Mixed, 1},
     602          {Empty, 3}, {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Empty, 11},
     603          {Mixed, 4}, {Empty, 3}, {Mixed, 1}, {Empty, 86}, {Mixed, 3},
     604          {Empty, 21}, {Full, 4}, {Mixed, 1}, {Full, 2}, {Mixed, 2},
     605          {Full, 1}, {Mixed, 2}, {Full, 1}, {Mixed, 4}, {Empty, 8},
     606          {Mixed, 1}, {Empty, 2}, {Mixed, 3}, {Empty, 1}, {Mixed, 6},
     607          {Empty, 1}, {Mixed, 1}, {Empty, 1}, {Mixed, 1}, {Empty, 60},
     608          {Mixed, 1}, {Empty, 43}, {Mixed, 6}, {Empty, 984}, {Full, 349},
     609          {Mixed, 1}, {Empty, 266}, {Full, 8}, {Mixed, 2}, {Full, 1},
     610          {Mixed, 1}, {Full, 2}, {Mixed, 1}, {Empty, 1}, {Mixed, 3},
     611          {Empty, 169}, {Mixed, 2}, {Empty, 3}, {Mixed, 1}, {Empty, 16},
     612          {Mixed, 1}, {Empty, 10}, {Mixed, 1}, {Empty, 7}, {Mixed, 1},
     613          {Empty, 1500}, {Mixed, 2}, {Empty, 1}, {Mixed, 2}, {Empty, 2353},
     614          {Full, 16}, {Mixed, 1}, {Empty, 28719}},
     615         {0x3e7effbf, 0xbe7effbf, 0xfffcffff, 0x7ef1ff3f, 0xfff3f1f8,
     616          0x7fffff3f, 0x00018003, 0xdfffe000, 0xff31ffcf, 0xcfffffff,
     617          0x000fffc0, 0x0000001b, 0x40100000, 0x0001d7e0, 0x0001fc00,
     618          0x00187c00, 0x0200708b, 0x02000000, 0x708b0000, 0x00c00000,
     619          0xfccf0006, 0x033ffcfc, 0x0000007c, 0x00080005, 0x00120200,
     620          0xff000000, 0xb0001800, 0x00480000, 0x4e000000, 0x30001900,
     621          0x00100000, 0x00001c00, 0x00000100, 0x00000d81, 0x00001c00,
     622          0x74000000, 0x10842008, 0x01680200, 0x20080002, 0x02001084,
     623          0x00000040, 0x00045540, 0x28000000, 0x0000000b, 0x0bffffff,
     624          0x03ffffff, 0x3f3fffff, 0xaaff3f3f, 0x3fffffff, 0x5fdfffff,
     625          0xefcfffde, 0x3fdcffff, 0x00000003, 0x00000c40, 0x0c000000,
     626          0x00004000, 0x0000e000, 0x00001210, 0x00000050, 0x00000292,
     627          0x0333e005, 0x00000333, 0x0000f000, 0x00003c0f, 0x00000600,
     628          0x10000000, 0x55555000, 0x36db02a5, 0x40100000, 0x55555000,
     629          0x36db02a5, 0x47900000, 0x0000000f, 0x7fe53fff, 0xfffffc65,
     630          0xffff3fff, 0x03ffffff, 0xa0000000, 0x5f7ffc00, 0x00007fdb,
     631          0x14000000, 0x00000800, 0x0000c000, 0x00001800, 0x58000000,
     632          0x0c000000, 0xc0000000, 0x0000001f, 0xf8000000, 0x00000001,
     633          0x3fffffff}};
     634    static EnumeratedPropertyObject property_object
     635        {NFD_QC,
     636         NFD_QC_ns::independent_prop_values,
     637         NFD_QC_ns::enum_names,
     638         NFD_QC_ns::value_names,
     639         NFD_QC_ns::aliases_only_map,
     640         {&y_Set, &n_Set
     641         }};
    439642    }
    440     namespace NFD_QC_ns {
    441         /** Code Point Ranges for NFD_QC
    442         [00c0, 00c5], [00c7, 00cf], [00d1, 00d6], [00d9, 00dd],
    443         [00e0, 00e5], [00e7, 00ef], [00f1, 00f6], [00f9, 00fd],
    444         [00ff, 010f], [0112, 0125], [0128, 0130], [0134, 0137],
    445         [0139, 013e], [0143, 0148], [014c, 0151], [0154, 0165],
    446         [0168, 017e], [01a0, 01a1], [01af, 01b0], [01cd, 01dc],
    447         [01de, 01e3], [01e6, 01f0], [01f4, 01f5], [01f8, 021b],
    448         [021e, 021f], [0226, 0233], [0340, 0341], [0343, 0344],
    449         [0374, 0374], [037e, 037e], [0385, 038a], [038c, 038c],
    450         [038e, 0390], [03aa, 03b0], [03ca, 03ce], [03d3, 03d4],
    451         [0400, 0401], [0403, 0403], [0407, 0407], [040c, 040e],
    452         [0419, 0419], [0439, 0439], [0450, 0451], [0453, 0453],
    453         [0457, 0457], [045c, 045e], [0476, 0477], [04c1, 04c2],
    454         [04d0, 04d3], [04d6, 04d7], [04da, 04df], [04e2, 04e7],
    455         [04ea, 04f5], [04f8, 04f9], [0622, 0626], [06c0, 06c0],
    456         [06c2, 06c2], [06d3, 06d3], [0929, 0929], [0931, 0931],
    457         [0934, 0934], [0958, 095f], [09cb, 09cc], [09dc, 09dd],
    458         [09df, 09df], [0a33, 0a33], [0a36, 0a36], [0a59, 0a5b],
    459         [0a5e, 0a5e], [0b48, 0b48], [0b4b, 0b4c], [0b5c, 0b5d],
    460         [0b94, 0b94], [0bca, 0bcc], [0c48, 0c48], [0cc0, 0cc0],
    461         [0cc7, 0cc8], [0cca, 0ccb], [0d4a, 0d4c], [0dda, 0dda],
    462         [0ddc, 0dde], [0f43, 0f43], [0f4d, 0f4d], [0f52, 0f52],
    463         [0f57, 0f57], [0f5c, 0f5c], [0f69, 0f69], [0f73, 0f73],
    464         [0f75, 0f76], [0f78, 0f78], [0f81, 0f81], [0f93, 0f93],
    465         [0f9d, 0f9d], [0fa2, 0fa2], [0fa7, 0fa7], [0fac, 0fac],
    466         [0fb9, 0fb9], [1026, 1026], [1b06, 1b06], [1b08, 1b08],
    467         [1b0a, 1b0a], [1b0c, 1b0c], [1b0e, 1b0e], [1b12, 1b12],
    468         [1b3b, 1b3b], [1b3d, 1b3d], [1b40, 1b41], [1b43, 1b43],
    469         [1e00, 1e99], [1e9b, 1e9b], [1ea0, 1ef9], [1f00, 1f15],
    470         [1f18, 1f1d], [1f20, 1f45], [1f48, 1f4d], [1f50, 1f57],
    471         [1f59, 1f59], [1f5b, 1f5b], [1f5d, 1f5d], [1f5f, 1f7d],
    472         [1f80, 1fb4], [1fb6, 1fbc], [1fbe, 1fbe], [1fc1, 1fc4],
    473         [1fc6, 1fd3], [1fd6, 1fdb], [1fdd, 1fef], [1ff2, 1ff4],
    474         [1ff6, 1ffd], [2000, 2001], [2126, 2126], [212a, 212b],
    475         [219a, 219b], [21ae, 21ae], [21cd, 21cf], [2204, 2204],
    476         [2209, 2209], [220c, 220c], [2224, 2224], [2226, 2226],
    477         [2241, 2241], [2244, 2244], [2247, 2247], [2249, 2249],
    478         [2260, 2260], [2262, 2262], [226d, 2271], [2274, 2275],
    479         [2278, 2279], [2280, 2281], [2284, 2285], [2288, 2289],
    480         [22ac, 22af], [22e0, 22e3], [22ea, 22ed], [2329, 232a],
    481         [2adc, 2adc], [304c, 304c], [304e, 304e], [3050, 3050],
    482         [3052, 3052], [3054, 3054], [3056, 3056], [3058, 3058],
    483         [305a, 305a], [305c, 305c], [305e, 305e], [3060, 3060],
    484         [3062, 3062], [3065, 3065], [3067, 3067], [3069, 3069],
    485         [3070, 3071], [3073, 3074], [3076, 3077], [3079, 307a],
    486         [307c, 307d], [3094, 3094], [309e, 309e], [30ac, 30ac],
    487         [30ae, 30ae], [30b0, 30b0], [30b2, 30b2], [30b4, 30b4],
    488         [30b6, 30b6], [30b8, 30b8], [30ba, 30ba], [30bc, 30bc],
    489         [30be, 30be], [30c0, 30c0], [30c2, 30c2], [30c5, 30c5],
    490         [30c7, 30c7], [30c9, 30c9], [30d0, 30d1], [30d3, 30d4],
    491         [30d6, 30d7], [30d9, 30da], [30dc, 30dd], [30f4, 30f4],
    492         [30f7, 30fa], [30fe, 30fe], [ac00, d7a3], [f900, fa0d],
    493         [fa10, fa10], [fa12, fa12], [fa15, fa1e], [fa20, fa20],
    494         [fa22, fa22], [fa25, fa26], [fa2a, fa6d], [fa70, fad9],
    495         [fb1d, fb1d], [fb1f, fb1f], [fb2a, fb36], [fb38, fb3c],
    496         [fb3e, fb3e], [fb40, fb41], [fb43, fb44], [fb46, fb4e],
    497         [1109a, 1109a], [1109c, 1109c], [110ab, 110ab], [1112e, 1112f],
    498         [1134b, 1134c], [114bb, 114bc], [114be, 114be], [115ba, 115bb],
    499         [1d15e, 1d164], [1d1bb, 1d1c0], [2f800, 2fa1d]**/
    500         const UnicodeSet codepoint_set
    501             {{{Empty, 6}, {Mixed, 6}, {Empty, 1}, {Mixed, 5}, {Empty, 8},
    502               {Mixed, 5}, {Empty, 1}, {Mixed, 4}, {Empty, 2}, {Mixed, 2},
    503               {Empty, 9}, {Mixed, 1}, {Empty, 4}, {Mixed, 1}, {Empty, 18},
    504               {Mixed, 2}, {Empty, 3}, {Mixed, 1}, {Empty, 2}, {Mixed, 2},
    505               {Empty, 7}, {Mixed, 1}, {Empty, 1}, {Mixed, 1}, {Empty, 1},
    506               {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Empty, 3}, {Mixed, 1},
    507               {Empty, 3}, {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Empty, 11},
    508               {Mixed, 4}, {Empty, 3}, {Mixed, 1}, {Empty, 86}, {Mixed, 3},
    509               {Empty, 21}, {Full, 4}, {Mixed, 1}, {Full, 2}, {Mixed, 2},
    510               {Full, 1}, {Mixed, 2}, {Full, 1}, {Mixed, 4}, {Empty, 8},
    511               {Mixed, 1}, {Empty, 2}, {Mixed, 3}, {Empty, 1}, {Mixed, 6},
    512               {Empty, 1}, {Mixed, 1}, {Empty, 1}, {Mixed, 1}, {Empty, 60},
    513               {Mixed, 1}, {Empty, 43}, {Mixed, 6}, {Empty, 984},
    514               {Full, 349}, {Mixed, 1}, {Empty, 266}, {Full, 8}, {Mixed, 2},
    515               {Full, 1}, {Mixed, 1}, {Full, 2}, {Mixed, 1}, {Empty, 1},
    516               {Mixed, 3}, {Empty, 169}, {Mixed, 2}, {Empty, 3}, {Mixed, 1},
    517               {Empty, 16}, {Mixed, 1}, {Empty, 10}, {Mixed, 1}, {Empty, 7},
    518               {Mixed, 1}, {Empty, 1500}, {Mixed, 2}, {Empty, 1}, {Mixed, 2},
    519               {Empty, 2353}, {Full, 16}, {Mixed, 1}, {Empty, 28719}},
    520              {0x3e7effbf, 0xbe7effbf, 0xfffcffff, 0x7ef1ff3f, 0xfff3f1f8,
    521               0x7fffff3f, 0x00018003, 0xdfffe000, 0xff31ffcf, 0xcfffffff,
    522               0x000fffc0, 0x0000001b, 0x40100000, 0x0001d7e0, 0x0001fc00,
    523               0x00187c00, 0x0200708b, 0x02000000, 0x708b0000, 0x00c00000,
    524               0xfccf0006, 0x033ffcfc, 0x0000007c, 0x00080005, 0x00120200,
    525               0xff000000, 0xb0001800, 0x00480000, 0x4e000000, 0x30001900,
    526               0x00100000, 0x00001c00, 0x00000100, 0x00000d81, 0x00001c00,
    527               0x74000000, 0x10842008, 0x01680200, 0x20080002, 0x02001084,
    528               0x00000040, 0x00045540, 0x28000000, 0x0000000b, 0x0bffffff,
    529               0x03ffffff, 0x3f3fffff, 0xaaff3f3f, 0x3fffffff, 0x5fdfffff,
    530               0xefcfffde, 0x3fdcffff, 0x00000003, 0x00000c40, 0x0c000000,
    531               0x00004000, 0x0000e000, 0x00001210, 0x00000050, 0x00000292,
    532               0x0333e005, 0x00000333, 0x0000f000, 0x00003c0f, 0x00000600,
    533               0x10000000, 0x55555000, 0x36db02a5, 0x40100000, 0x55555000,
    534               0x36db02a5, 0x47900000, 0x0000000f, 0x7fe53fff, 0xfffffc65,
    535               0xffff3fff, 0x03ffffff, 0xa0000000, 0x5f7ffc00, 0x00007fdb,
    536               0x14000000, 0x00000800, 0x0000c000, 0x00001800, 0x58000000,
    537               0x0c000000, 0xc0000000, 0x0000001f, 0xf8000000, 0x00000001,
    538               0x3fffffff}};
    539         static BinaryPropertyObject property_object{NFD_QC, codepoint_set};
     643  namespace NFKC_QC_ns {
     644    const unsigned independent_prop_values = 3;
     645    /** Code Point Ranges for Y
     646    [0000, 009f], [00a1, 00a7], [00a9, 00a9], [00ab, 00ae], [00b0, 00b1],
     647    [00b6, 00b7], [00bb, 00bb], [00bf, 0131], [0134, 013e], [0141, 0148],
     648    [014a, 017e], [0180, 01c3], [01cd, 01f0], [01f4, 02af], [02b9, 02d7],
     649    [02de, 02df], [02e5, 02ff], [0305, 0305], [030d, 030e], [0310, 0310],
     650    [0312, 0312], [0315, 031a], [031c, 0322], [0329, 032c], [032f, 032f],
     651    [0332, 0337], [0339, 033f], [0346, 0373], [0375, 0379], [037b, 037d],
     652    [037f, 0383], [0386, 0386], [0388, 03cf], [03d7, 03ef], [03f3, 03f3],
     653    [03f6, 03f8], [03fa, 0586], [0588, 0652], [0656, 0674], [0679, 093b],
     654    [093d, 0957], [0960, 09bd], [09bf, 09d6], [09d8, 09db], [09de, 09de],
     655    [09e0, 0a32], [0a34, 0a35], [0a37, 0a58], [0a5c, 0a5d], [0a5f, 0b3d],
     656    [0b3f, 0b55], [0b58, 0b5b], [0b5e, 0bbd], [0bbf, 0bd6], [0bd8, 0c55],
     657    [0c57, 0cc1], [0cc3, 0cd4], [0cd7, 0d3d], [0d3f, 0d56], [0d58, 0dc9],
     658    [0dcb, 0dce], [0dd0, 0dde], [0de0, 0e32], [0e34, 0eb2], [0eb4, 0edb],
     659    [0ede, 0f0b], [0f0d, 0f42], [0f44, 0f4c], [0f4e, 0f51], [0f53, 0f56],
     660    [0f58, 0f5b], [0f5d, 0f68], [0f6a, 0f72], [0f74, 0f74], [0f7a, 0f80],
     661    [0f82, 0f92], [0f94, 0f9c], [0f9e, 0fa1], [0fa3, 0fa6], [0fa8, 0fab],
     662    [0fad, 0fb8], [0fba, 102d], [102f, 10fb], [10fd, 1160], [1176, 11a7],
     663    [11c3, 1b34], [1b36, 1d2b], [1d2f, 1d2f], [1d3b, 1d3b], [1d4e, 1d4e],
     664    [1d6b, 1d77], [1d79, 1d9a], [1dc0, 1e99], [1e9c, 1f70], [1f72, 1f72],
     665    [1f74, 1f74], [1f76, 1f76], [1f78, 1f78], [1f7a, 1f7a], [1f7c, 1f7c],
     666    [1f7e, 1fba], [1fbc, 1fbc], [1fc2, 1fc8], [1fca, 1fca], [1fcc, 1fcc],
     667    [1fd0, 1fd2], [1fd4, 1fda], [1fdc, 1fdc], [1fe0, 1fe2], [1fe4, 1fea],
     668    [1fec, 1fec], [1ff0, 1ff8], [1ffa, 1ffa], [1ffc, 1ffc], [1fff, 1fff],
     669    [200b, 2010], [2012, 2016], [2018, 2023], [2027, 202e], [2030, 2032],
     670    [2035, 2035], [2038, 203b], [203d, 203d], [203f, 2046], [204a, 2056],
     671    [2058, 205e], [2060, 206f], [2072, 2073], [208f, 208f], [209d, 20a7],
     672    [20a9, 20ff], [2104, 2104], [2108, 2108], [2114, 2114], [2117, 2118],
     673    [211e, 211f], [2123, 2123], [2125, 2125], [2127, 2127], [2129, 2129],
     674    [212e, 212e], [2132, 2132], [213a, 213a], [2141, 2144], [214a, 214f],
     675    [2180, 2188], [218a, 222b], [222e, 222e], [2231, 2328], [232b, 245f],
     676    [24eb, 2a0b], [2a0d, 2a73], [2a77, 2adb], [2add, 2c7b], [2c7e, 2d6e],
     677    [2d70, 2e9e], [2ea0, 2ef2], [2ef4, 2eff], [2fd6, 2fff], [3001, 3035],
     678    [3037, 3037], [303b, 3098], [309d, 309e], [30a0, 30fe], [3100, 3130],
     679    [318f, 3191], [31a0, 31ff], [321f, 321f], [3248, 324f], [327f, 327f],
     680    [32ff, 32ff], [3400, a69b], [a69e, a76f], [a771, a7f7], [a7fa, ab5b],
     681    [ab60, f8ff], [fa0e, fa0f], [fa11, fa11], [fa13, fa14], [fa1f, fa1f],
     682    [fa21, fa21], [fa23, fa24], [fa27, fa29], [fa6e, fa6f], [fada, faff],
     683    [fb07, fb12], [fb18, fb1c], [fb1e, fb1e], [fb37, fb37], [fb3d, fb3d],
     684    [fb3f, fb3f], [fb42, fb42], [fb45, fb45], [fbb2, fbd2], [fd3e, fd4f],
     685    [fd90, fd91], [fdc8, fdef], [fdfd, fe0f], [fe1a, fe2f], [fe45, fe46],
     686    [fe53, fe53], [fe67, fe67], [fe6c, fe6f], [fe73, fe73], [fe75, fe75],
     687    [fefd, ff00], [ffbf, ffc1], [ffc8, ffc9], [ffd0, ffd1], [ffd8, ffd9],
     688    [ffdd, ffdf], [ffe7, ffe7], [ffef, 110b9], [110bb, 11126],
     689    [11128, 1133d], [1133f, 11356], [11358, 114af], [114b1, 114b9],
     690    [114bb, 114bc], [114be, 115ae], [115b0, 1d15d], [1d165, 1d1ba],
     691    [1d1c1, 1d3ff], [1d455, 1d455], [1d49d, 1d49d], [1d4a0, 1d4a1],
     692    [1d4a3, 1d4a4], [1d4a7, 1d4a8], [1d4ad, 1d4ad], [1d4ba, 1d4ba],
     693    [1d4bc, 1d4bc], [1d4c4, 1d4c4], [1d506, 1d506], [1d50b, 1d50c],
     694    [1d515, 1d515], [1d51d, 1d51d], [1d53a, 1d53a], [1d53f, 1d53f],
     695    [1d545, 1d545], [1d547, 1d549], [1d551, 1d551], [1d6a6, 1d6a7],
     696    [1d7cc, 1d7cd], [1d800, 1edff], [1ee04, 1ee04], [1ee20, 1ee20],
     697    [1ee23, 1ee23], [1ee25, 1ee26], [1ee28, 1ee28], [1ee33, 1ee33],
     698    [1ee38, 1ee38], [1ee3a, 1ee3a], [1ee3c, 1ee41], [1ee43, 1ee46],
     699    [1ee48, 1ee48], [1ee4a, 1ee4a], [1ee4c, 1ee4c], [1ee50, 1ee50],
     700    [1ee53, 1ee53], [1ee55, 1ee56], [1ee58, 1ee58], [1ee5a, 1ee5a],
     701    [1ee5c, 1ee5c], [1ee5e, 1ee5e], [1ee60, 1ee60], [1ee63, 1ee63],
     702    [1ee65, 1ee66], [1ee6b, 1ee6b], [1ee73, 1ee73], [1ee78, 1ee78],
     703    [1ee7d, 1ee7d], [1ee7f, 1ee7f], [1ee8a, 1ee8a], [1ee9c, 1eea0],
     704    [1eea4, 1eea4], [1eeaa, 1eeaa], [1eebc, 1f0ff], [1f10b, 1f10f],
     705    [1f12f, 1f12f], [1f150, 1f169], [1f16c, 1f18f], [1f191, 1f1ff],
     706    [1f203, 1f20f], [1f23c, 1f23f], [1f249, 1f24f], [1f252, 2f7ff],
     707    [2fa1e, 10ffff]**/
     708    const UnicodeSet y_Set
     709        {{{Full, 5}, {Mixed, 1}, {Full, 3}, {Mixed, 3}, {Full, 2},
     710          {Mixed, 2}, {Full, 5}, {Mixed, 8}, {Full, 1}, {Mixed, 2},
     711          {Full, 12}, {Mixed, 1}, {Full, 5}, {Mixed, 2}, {Full, 21},
     712          {Mixed, 2}, {Full, 2}, {Mixed, 2}, {Full, 2}, {Mixed, 2},
     713          {Full, 6}, {Mixed, 2}, {Full, 2}, {Mixed, 2}, {Full, 3},
     714          {Mixed, 1}, {Full, 3}, {Mixed, 1}, {Full, 2}, {Mixed, 2},
     715          {Full, 3}, {Mixed, 1}, {Full, 2}, {Mixed, 1}, {Full, 3},
     716          {Mixed, 2}, {Full, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 4},
     717          {Full, 3}, {Mixed, 1}, {Full, 5}, {Mixed, 1}, {Full, 3},
     718          {Mixed, 1}, {Full, 1}, {Mixed, 2}, {Full, 74}, {Mixed, 1},
     719          {Full, 15}, {Mixed, 4}, {Empty, 1}, {Full, 6}, {Mixed, 1},
     720          {Full, 6}, {Mixed, 1}, {Full, 1}, {Mixed, 9}, {Full, 2},
     721          {Mixed, 3}, {Empty, 1}, {Mixed, 1}, {Full, 4}, {Mixed, 1},
     722          {Full, 7}, {Mixed, 1}, {Full, 9}, {Empty, 4}, {Mixed, 1},
     723          {Full, 40}, {Mixed, 1}, {Full, 2}, {Mixed, 1}, {Full, 2},
     724          {Mixed, 1}, {Full, 12}, {Mixed, 1}, {Full, 7}, {Mixed, 1},
     725          {Full, 8}, {Mixed, 1}, {Full, 2}, {Mixed, 1}, {Empty, 6},
     726          {Mixed, 1}, {Full, 1}, {Mixed, 2}, {Full, 2}, {Mixed, 1},
     727          {Full, 2}, {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Empty, 2},
     728          {Mixed, 1}, {Full, 3}, {Mixed, 1}, {Empty, 1}, {Mixed, 2},
     729          {Empty, 3}, {Mixed, 1}, {Empty, 8}, {Full, 916}, {Mixed, 1},
     730          {Full, 6}, {Mixed, 1}, {Full, 3}, {Mixed, 1}, {Full, 26},
     731          {Mixed, 1}, {Full, 621}, {Empty, 8}, {Mixed, 2}, {Empty, 1},
     732          {Mixed, 1}, {Empty, 2}, {Mixed, 1}, {Full, 1}, {Mixed, 3},
     733          {Empty, 2}, {Mixed, 2}, {Empty, 10}, {Mixed, 2}, {Empty, 1},
     734          {Mixed, 1}, {Empty, 1}, {Mixed, 6}, {Empty, 3}, {Mixed, 2},
     735          {Empty, 4}, {Mixed, 3}, {Full, 133}, {Mixed, 1}, {Full, 3},
     736          {Mixed, 1}, {Full, 15}, {Mixed, 2}, {Full, 10}, {Mixed, 1},
     737          {Full, 7}, {Mixed, 1}, {Full, 1500}, {Mixed, 2}, {Full, 1},
     738          {Mixed, 2}, {Full, 17}, {Empty, 2}, {Mixed, 1}, {Empty, 1},
     739          {Mixed, 3}, {Empty, 1}, {Mixed, 3}, {Empty, 10}, {Mixed, 1},
     740          {Empty, 8}, {Mixed, 1}, {Empty, 1}, {Full, 176}, {Mixed, 6},
     741          {Full, 18}, {Mixed, 5}, {Full, 3}, {Mixed, 3}, {Full, 2093},
     742          {Empty, 16}, {Mixed, 1}, {Full, 28719}},
     743         {0x88c37afe, 0x7ff3ffff, 0xfffffdfe, 0x7fffffff, 0xffffe00f,
     744          0xfff1ffff, 0xfe00ffff, 0xc0ffffff, 0xffffffe0, 0xf7e56020,
     745          0xfefc9e07, 0xffffffc0, 0xbbefffff, 0xffffff4f, 0xff80ffff,
     746          0xfdc8ffff, 0xffffff7f, 0xffc7ffff, 0xfe1fffff, 0xefffffff,
     747          0x00ffffff, 0xbfffffff, 0x4f7fffff, 0xffb7ffff, 0xb1ffffff,
     748          0xbfffffff, 0xcf3fffff, 0xbfffffff, 0xff7fffff, 0xffbfffff,
     749          0xff9ffffb, 0xbfffffff, 0xff7fffff, 0x7fff7bff, 0xfff7ffff,
     750          0xfff7ffff, 0xcfffffff, 0xffffefff, 0xef7bdff7, 0xfc17fdff,
     751          0xdff7fffd, 0xfdffef7b, 0xffffbfff, 0xefffffff, 0xffc00001,
     752          0x000000ff, 0xfffffff8, 0xffdfffff, 0x08008fff, 0x00004000,
     753          0xfefff800, 0x07ffffff, 0xf3ffffff, 0xd555ffff, 0x17ffffff,
     754          0x17f715fc, 0x95ff17f7, 0xff7df800, 0xaf277f8f, 0x7f7ffc7f,
     755          0x000cffff, 0xe0008000, 0xfffffeff, 0xc1900110, 0x040442a8,
     756          0x0000fc1e, 0xfffffdff, 0xfffe4fff, 0xfffff9ff, 0xfffff800,
     757          0xffffefff, 0xff8fffff, 0xefffffff, 0xcfffffff, 0xffff7fff,
     758          0x7fffffff, 0xfff7ffff, 0xffc00000, 0xfffffffe, 0xf8bfffff,
     759          0x61ffffff, 0x7fffffff, 0x0001ffff, 0x00038000, 0x80000000,
     760          0x0000ff00, 0x80000000, 0x80000000, 0xcfffffff, 0xfffeffff,
     761          0xfcffffff, 0x0fffffff, 0x801ac000, 0x0000039a, 0x0000c000,
     762          0xfc000000, 0x5f07ff80, 0xa0800000, 0x00000024, 0xfffc0000,
     763          0x0007ffff, 0xc0000000, 0x0000ffff, 0x00030000, 0xffffff00,
     764          0xe000ffff, 0xfc00ffff, 0x0000ffff, 0x00080060, 0x0028f080,
     765          0xe0000000, 0x00000001, 0x80000000, 0xe3030303, 0xffff8080,
     766          0xfbffffff, 0xffffff7f, 0xbfffffff, 0xff7fffff, 0xdbfeffff,
     767          0xffff7fff, 0x3fffffff, 0xffffffe0, 0x07ffffff, 0xfffffffe,
     768          0x00200000, 0x20000000, 0x1400219b, 0x00000010, 0x20201840,
     769          0x84000000, 0x000203a0, 0x000000c0, 0x00003000, 0x00000010,
     770          0xf5080169, 0x5569157b, 0xa1080869, 0xf0000400, 0xf0000411,
     771          0x0000f800, 0x00008000, 0xffff0000, 0xfffff3ff, 0xfffeffff,
     772          0x0000fff8, 0xf0000000, 0xfffcfe00, 0xc0000000}};
     773    /** Code Point Ranges for N
     774    [00a0, 00a0], [00a8, 00a8], [00aa, 00aa], [00af, 00af], [00b2, 00b5],
     775    [00b8, 00ba], [00bc, 00be], [0132, 0133], [013f, 0140], [0149, 0149],
     776    [017f, 017f], [01c4, 01cc], [01f1, 01f3], [02b0, 02b8], [02d8, 02dd],
     777    [02e0, 02e4], [0340, 0341], [0343, 0344], [0374, 0374], [037a, 037a],
     778    [037e, 037e], [0384, 0385], [0387, 0387], [03d0, 03d6], [03f0, 03f2],
     779    [03f4, 03f5], [03f9, 03f9], [0587, 0587], [0675, 0678], [0958, 095f],
     780    [09dc, 09dd], [09df, 09df], [0a33, 0a33], [0a36, 0a36], [0a59, 0a5b],
     781    [0a5e, 0a5e], [0b5c, 0b5d], [0e33, 0e33], [0eb3, 0eb3], [0edc, 0edd],
     782    [0f0c, 0f0c], [0f43, 0f43], [0f4d, 0f4d], [0f52, 0f52], [0f57, 0f57],
     783    [0f5c, 0f5c], [0f69, 0f69], [0f73, 0f73], [0f75, 0f79], [0f81, 0f81],
     784    [0f93, 0f93], [0f9d, 0f9d], [0fa2, 0fa2], [0fa7, 0fa7], [0fac, 0fac],
     785    [0fb9, 0fb9], [10fc, 10fc], [1d2c, 1d2e], [1d30, 1d3a], [1d3c, 1d4d],
     786    [1d4f, 1d6a], [1d78, 1d78], [1d9b, 1dbf], [1e9a, 1e9b], [1f71, 1f71],
     787    [1f73, 1f73], [1f75, 1f75], [1f77, 1f77], [1f79, 1f79], [1f7b, 1f7b],
     788    [1f7d, 1f7d], [1fbb, 1fbb], [1fbd, 1fc1], [1fc9, 1fc9], [1fcb, 1fcb],
     789    [1fcd, 1fcf], [1fd3, 1fd3], [1fdb, 1fdb], [1fdd, 1fdf], [1fe3, 1fe3],
     790    [1feb, 1feb], [1fed, 1fef], [1ff9, 1ff9], [1ffb, 1ffb], [1ffd, 1ffe],
     791    [2000, 200a], [2011, 2011], [2017, 2017], [2024, 2026], [202f, 202f],
     792    [2033, 2034], [2036, 2037], [203c, 203c], [203e, 203e], [2047, 2049],
     793    [2057, 2057], [205f, 205f], [2070, 2071], [2074, 208e], [2090, 209c],
     794    [20a8, 20a8], [2100, 2103], [2105, 2107], [2109, 2113], [2115, 2116],
     795    [2119, 211d], [2120, 2122], [2124, 2124], [2126, 2126], [2128, 2128],
     796    [212a, 212d], [212f, 2131], [2133, 2139], [213b, 2140], [2145, 2149],
     797    [2150, 217f], [2189, 2189], [222c, 222d], [222f, 2230], [2329, 232a],
     798    [2460, 24ea], [2a0c, 2a0c], [2a74, 2a76], [2adc, 2adc], [2c7c, 2c7d],
     799    [2d6f, 2d6f], [2e9f, 2e9f], [2ef3, 2ef3], [2f00, 2fd5], [3000, 3000],
     800    [3036, 3036], [3038, 303a], [309b, 309c], [309f, 309f], [30ff, 30ff],
     801    [3131, 318e], [3192, 319f], [3200, 321e], [3220, 3247], [3250, 327e],
     802    [3280, 32fe], [3300, 33ff], [a69c, a69d], [a770, a770], [a7f8, a7f9],
     803    [ab5c, ab5f], [f900, fa0d], [fa10, fa10], [fa12, fa12], [fa15, fa1e],
     804    [fa20, fa20], [fa22, fa22], [fa25, fa26], [fa2a, fa6d], [fa70, fad9],
     805    [fb00, fb06], [fb13, fb17], [fb1d, fb1d], [fb1f, fb36], [fb38, fb3c],
     806    [fb3e, fb3e], [fb40, fb41], [fb43, fb44], [fb46, fbb1], [fbd3, fd3d],
     807    [fd50, fd8f], [fd92, fdc7], [fdf0, fdfc], [fe10, fe19], [fe30, fe44],
     808    [fe47, fe52], [fe54, fe66], [fe68, fe6b], [fe70, fe72], [fe74, fe74],
     809    [fe76, fefc], [ff01, ffbe], [ffc2, ffc7], [ffca, ffcf], [ffd2, ffd7],
     810    [ffda, ffdc], [ffe0, ffe6], [ffe8, ffee], [1d15e, 1d164],
     811    [1d1bb, 1d1c0], [1d400, 1d454], [1d456, 1d49c], [1d49e, 1d49f],
     812    [1d4a2, 1d4a2], [1d4a5, 1d4a6], [1d4a9, 1d4ac], [1d4ae, 1d4b9],
     813    [1d4bb, 1d4bb], [1d4bd, 1d4c3], [1d4c5, 1d505], [1d507, 1d50a],
     814    [1d50d, 1d514], [1d516, 1d51c], [1d51e, 1d539], [1d53b, 1d53e],
     815    [1d540, 1d544], [1d546, 1d546], [1d54a, 1d550], [1d552, 1d6a5],
     816    [1d6a8, 1d7cb], [1d7ce, 1d7ff], [1ee00, 1ee03], [1ee05, 1ee1f],
     817    [1ee21, 1ee22], [1ee24, 1ee24], [1ee27, 1ee27], [1ee29, 1ee32],
     818    [1ee34, 1ee37], [1ee39, 1ee39], [1ee3b, 1ee3b], [1ee42, 1ee42],
     819    [1ee47, 1ee47], [1ee49, 1ee49], [1ee4b, 1ee4b], [1ee4d, 1ee4f],
     820    [1ee51, 1ee52], [1ee54, 1ee54], [1ee57, 1ee57], [1ee59, 1ee59],
     821    [1ee5b, 1ee5b], [1ee5d, 1ee5d], [1ee5f, 1ee5f], [1ee61, 1ee62],
     822    [1ee64, 1ee64], [1ee67, 1ee6a], [1ee6c, 1ee72], [1ee74, 1ee77],
     823    [1ee79, 1ee7c], [1ee7e, 1ee7e], [1ee80, 1ee89], [1ee8b, 1ee9b],
     824    [1eea1, 1eea3], [1eea5, 1eea9], [1eeab, 1eebb], [1f100, 1f10a],
     825    [1f110, 1f12e], [1f130, 1f14f], [1f16a, 1f16b], [1f190, 1f190],
     826    [1f200, 1f202], [1f210, 1f23b], [1f240, 1f248], [1f250, 1f251],
     827    [2f800, 2fa1d]**/
     828    const UnicodeSet n_Set
     829        {{{Empty, 5}, {Mixed, 1}, {Empty, 3}, {Mixed, 3}, {Empty, 2},
     830          {Mixed, 2}, {Empty, 5}, {Mixed, 3}, {Empty, 2}, {Mixed, 3},
     831          {Empty, 1}, {Mixed, 2}, {Empty, 12}, {Mixed, 1}, {Empty, 6},
     832          {Mixed, 1}, {Empty, 22}, {Mixed, 1}, {Empty, 3}, {Mixed, 1},
     833          {Empty, 2}, {Mixed, 2}, {Empty, 7}, {Mixed, 1}, {Empty, 22},
     834          {Mixed, 1}, {Empty, 3}, {Mixed, 2}, {Empty, 1}, {Mixed, 1},
     835          {Empty, 1}, {Mixed, 4}, {Empty, 9}, {Mixed, 1}, {Empty, 97},
     836          {Mixed, 4}, {Full, 1}, {Empty, 6}, {Mixed, 1}, {Empty, 6},
     837          {Mixed, 1}, {Empty, 1}, {Mixed, 9}, {Empty, 2}, {Mixed, 3},
     838          {Full, 1}, {Mixed, 1}, {Empty, 4}, {Mixed, 1}, {Empty, 7},
     839          {Mixed, 1}, {Empty, 9}, {Full, 4}, {Mixed, 1}, {Empty, 40},
     840          {Mixed, 1}, {Empty, 2}, {Mixed, 1}, {Empty, 2}, {Mixed, 1},
     841          {Empty, 12}, {Mixed, 1}, {Empty, 7}, {Mixed, 1}, {Empty, 8},
     842          {Mixed, 1}, {Empty, 2}, {Mixed, 1}, {Full, 6}, {Mixed, 1},
     843          {Empty, 1}, {Mixed, 2}, {Empty, 2}, {Mixed, 1}, {Empty, 2},
     844          {Mixed, 1}, {Empty, 1}, {Mixed, 1}, {Full, 2}, {Mixed, 1},
     845          {Empty, 3}, {Mixed, 1}, {Full, 1}, {Mixed, 2}, {Full, 3},
     846          {Mixed, 1}, {Full, 8}, {Empty, 916}, {Mixed, 1}, {Empty, 6},
     847          {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Empty, 26}, {Mixed, 1},
     848          {Empty, 621}, {Full, 8}, {Mixed, 2}, {Full, 1}, {Mixed, 1},
     849          {Full, 2}, {Mixed, 1}, {Empty, 1}, {Mixed, 3}, {Full, 2},
     850          {Mixed, 2}, {Full, 10}, {Mixed, 2}, {Full, 1}, {Mixed, 1},
     851          {Full, 1}, {Mixed, 6}, {Full, 3}, {Mixed, 2}, {Full, 4},
     852          {Mixed, 3}, {Empty, 1674}, {Mixed, 2}, {Empty, 1}, {Mixed, 2},
     853          {Empty, 17}, {Full, 2}, {Mixed, 1}, {Full, 1}, {Mixed, 3},
     854          {Full, 1}, {Mixed, 3}, {Full, 10}, {Mixed, 1}, {Full, 8},
     855          {Mixed, 1}, {Full, 1}, {Empty, 176}, {Mixed, 6}, {Empty, 18},
     856          {Mixed, 5}, {Empty, 3}, {Mixed, 3}, {Empty, 2093}, {Full, 16},
     857          {Mixed, 1}, {Empty, 28719}},
     858         {0x773c8501, 0x800c0000, 0x00000201, 0x80000000, 0x00001ff0,
     859          0x000e0000, 0x01ff0000, 0x3f000000, 0x0000001f, 0x0000001b,
     860          0x44100000, 0x000000b0, 0x007f0000, 0x02370000, 0x00000080,
     861          0x01e00000, 0xff000000, 0xb0000000, 0x00480000, 0x4e000000,
     862          0x30000000, 0x00080000, 0x00080000, 0x30000000, 0x00001000,
     863          0x10842008, 0x03e80200, 0x20080002, 0x02001084, 0x10000000,
     864          0xf7ff7000, 0xffffbfff, 0x010007ff, 0xf8000000, 0x0c000000,
     865          0x2aaa0000, 0xe8000000, 0xe808ea03, 0x6a00e808, 0x008207ff,
     866          0x50d88070, 0x80800380, 0xfff30000, 0x1fff7fff, 0x00000100,
     867          0x3e6ffeef, 0xfbfbbd57, 0xffff03e1, 0x00000200, 0x0001b000,
     868          0x00000600, 0x000007ff, 0x00001000, 0x00700000, 0x10000000,
     869          0x30000000, 0x00008000, 0x80000000, 0x00080000, 0x003fffff,
     870          0x00000001, 0x07400000, 0x98000000, 0x80000000, 0xfffe0000,
     871          0xfffc7fff, 0x7fffffff, 0xffff00ff, 0x7fffffff, 0x7fffffff,
     872          0x30000000, 0x00010000, 0x03000000, 0xf0000000, 0x7fe53fff,
     873          0xfffffc65, 0xffff3fff, 0x03ffffff, 0xa0f8007f, 0x5f7fffff,
     874          0xffffffdb, 0x0003ffff, 0xfff80000, 0x3fffffff, 0xffff0000,
     875          0xfffcffff, 0x000000ff, 0x1fff0000, 0x03ff0000, 0xffff0000,
     876          0xfff7ff9f, 0xffd70f7f, 0x1fffffff, 0xfffffffe, 0x7fffffff,
     877          0x1cfcfcfc, 0x00007f7f, 0xc0000000, 0x0000001f, 0xf8000000,
     878          0x00000001, 0xffdfffff, 0xdfffffff, 0xebffde64, 0xffffffef,
     879          0xdfdfe7bf, 0x7bffffff, 0xfffdfc5f, 0xffffff3f, 0xffffcfff,
     880          0xffffffef, 0x0af7fe96, 0xaa96ea84, 0x5ef7f796, 0x0ffffbff,
     881          0x0ffffbee, 0xffff07ff, 0xffff7fff, 0x0000ffff, 0x00000c00,
     882          0x00010000, 0xffff0007, 0x0fffffff, 0x000301ff, 0x3fffffff}};
     883    /** Code Point Ranges for M
     884    [0300, 0304], [0306, 030c], [030f, 030f], [0311, 0311], [0313, 0314],
     885    [031b, 031b], [0323, 0328], [032d, 032e], [0330, 0331], [0338, 0338],
     886    [0342, 0342], [0345, 0345], [0653, 0655], [093c, 093c], [09be, 09be],
     887    [09d7, 09d7], [0b3e, 0b3e], [0b56, 0b57], [0bbe, 0bbe], [0bd7, 0bd7],
     888    [0c56, 0c56], [0cc2, 0cc2], [0cd5, 0cd6], [0d3e, 0d3e], [0d57, 0d57],
     889    [0dca, 0dca], [0dcf, 0dcf], [0ddf, 0ddf], [102e, 102e], [1161, 1175],
     890    [11a8, 11c2], [1b35, 1b35], [3099, 309a], [110ba, 110ba],
     891    [11127, 11127], [1133e, 1133e], [11357, 11357], [114b0, 114b0],
     892    [114ba, 114ba], [114bd, 114bd], [115af, 115af]**/
     893    const UnicodeSet m_Set
     894        {{{Empty, 24}, {Mixed, 3}, {Empty, 23}, {Mixed, 1}, {Empty, 22},
     895          {Mixed, 1}, {Empty, 3}, {Mixed, 2}, {Empty, 10}, {Mixed, 2},
     896          {Empty, 2}, {Mixed, 2}, {Empty, 3}, {Mixed, 1}, {Empty, 3},
     897          {Mixed, 1}, {Empty, 2}, {Mixed, 2}, {Empty, 3}, {Mixed, 1},
     898          {Empty, 18}, {Mixed, 1}, {Empty, 9}, {Mixed, 1}, {Empty, 1},
     899          {Mixed, 2}, {Empty, 74}, {Mixed, 1}, {Empty, 170}, {Mixed, 1},
     900          {Empty, 1792}, {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Empty, 15},
     901          {Mixed, 2}, {Empty, 10}, {Mixed, 1}, {Empty, 7}, {Mixed, 1},
     902          {Empty, 32594}},
     903         {0x081a9fdf, 0x010361f8, 0x00000024, 0x00380000, 0x10000000,
     904          0x40000000, 0x00800000, 0x40000000, 0x00c00000, 0x40000000,
     905          0x00800000, 0x00400000, 0x00600004, 0x40000000, 0x00800000,
     906          0x80008400, 0x00004000, 0x003ffffe, 0xffffff00, 0x00000007,
     907          0x00200000, 0x06000000, 0x04000000, 0x00000080, 0x40000000,
     908          0x00800000, 0x24010000, 0x00008000}};
     909    static EnumeratedPropertyObject property_object
     910        {NFKC_QC,
     911         NFKC_QC_ns::independent_prop_values,
     912         NFKC_QC_ns::enum_names,
     913         NFKC_QC_ns::value_names,
     914         NFKC_QC_ns::aliases_only_map,
     915         {&y_Set, &n_Set, &m_Set
     916         }};
    540917    }
    541     namespace NFKC_CF_ns {
    542         /** Code Point Ranges for NFKC_CF
    543         [0041, 005a], [00a0, 00a0], [00a8, 00a8], [00aa, 00aa],
    544         [00ad, 00ad], [00af, 00af], [00b2, 00b5], [00b8, 00ba],
    545         [00bc, 00be], [00c0, 00d6], [00d8, 00df], [0100, 0100],
    546         [0102, 0102], [0104, 0104], [0106, 0106], [0108, 0108],
    547         [010a, 010a], [010c, 010c], [010e, 010e], [0110, 0110],
    548         [0112, 0112], [0114, 0114], [0116, 0116], [0118, 0118],
    549         [011a, 011a], [011c, 011c], [011e, 011e], [0120, 0120],
    550         [0122, 0122], [0124, 0124], [0126, 0126], [0128, 0128],
    551         [012a, 012a], [012c, 012c], [012e, 012e], [0130, 0130],
    552         [0132, 0134], [0136, 0136], [0139, 0139], [013b, 013b],
    553         [013d, 013d], [013f, 0141], [0143, 0143], [0145, 0145],
    554         [0147, 0147], [0149, 014a], [014c, 014c], [014e, 014e],
    555         [0150, 0150], [0152, 0152], [0154, 0154], [0156, 0156],
    556         [0158, 0158], [015a, 015a], [015c, 015c], [015e, 015e],
    557         [0160, 0160], [0162, 0162], [0164, 0164], [0166, 0166],
    558         [0168, 0168], [016a, 016a], [016c, 016c], [016e, 016e],
    559         [0170, 0170], [0172, 0172], [0174, 0174], [0176, 0176],
    560         [0178, 0179], [017b, 017b], [017d, 017d], [017f, 017f],
    561         [0181, 0182], [0184, 0184], [0186, 0187], [0189, 018b],
    562         [018e, 0191], [0193, 0194], [0196, 0198], [019c, 019d],
    563         [019f, 01a0], [01a2, 01a2], [01a4, 01a4], [01a6, 01a7],
    564         [01a9, 01a9], [01ac, 01ac], [01ae, 01af], [01b1, 01b3],
    565         [01b5, 01b5], [01b7, 01b8], [01bc, 01bc], [01c4, 01cd],
    566         [01cf, 01cf], [01d1, 01d1], [01d3, 01d3], [01d5, 01d5],
    567         [01d7, 01d7], [01d9, 01d9], [01db, 01db], [01de, 01de],
    568         [01e0, 01e0], [01e2, 01e2], [01e4, 01e4], [01e6, 01e6],
    569         [01e8, 01e8], [01ea, 01ea], [01ec, 01ec], [01ee, 01ee],
    570         [01f1, 01f4], [01f6, 01f8], [01fa, 01fa], [01fc, 01fc],
    571         [01fe, 01fe], [0200, 0200], [0202, 0202], [0204, 0204],
    572         [0206, 0206], [0208, 0208], [020a, 020a], [020c, 020c],
    573         [020e, 020e], [0210, 0210], [0212, 0212], [0214, 0214],
    574         [0216, 0216], [0218, 0218], [021a, 021a], [021c, 021c],
    575         [021e, 021e], [0220, 0220], [0222, 0222], [0224, 0224],
    576         [0226, 0226], [0228, 0228], [022a, 022a], [022c, 022c],
    577         [022e, 022e], [0230, 0230], [0232, 0232], [023a, 023b],
    578         [023d, 023e], [0241, 0241], [0243, 0246], [0248, 0248],
    579         [024a, 024a], [024c, 024c], [024e, 024e], [02b0, 02b8],
    580         [02d8, 02dd], [02e0, 02e4], [0340, 0341], [0343, 0345],
    581         [034f, 034f], [0370, 0370], [0372, 0372], [0374, 0374],
    582         [0376, 0376], [037a, 037a], [037e, 037f], [0384, 038a],
    583         [038c, 038c], [038e, 038f], [0391, 03a1], [03a3, 03ab],
    584         [03c2, 03c2], [03cf, 03d6], [03d8, 03d8], [03da, 03da],
    585         [03dc, 03dc], [03de, 03de], [03e0, 03e0], [03e2, 03e2],
    586         [03e4, 03e4], [03e6, 03e6], [03e8, 03e8], [03ea, 03ea],
    587         [03ec, 03ec], [03ee, 03ee], [03f0, 03f2], [03f4, 03f5],
    588         [03f7, 03f7], [03f9, 03fa], [03fd, 042f], [0460, 0460],
    589         [0462, 0462], [0464, 0464], [0466, 0466], [0468, 0468],
    590         [046a, 046a], [046c, 046c], [046e, 046e], [0470, 0470],
    591         [0472, 0472], [0474, 0474], [0476, 0476], [0478, 0478],
    592         [047a, 047a], [047c, 047c], [047e, 047e], [0480, 0480],
    593         [048a, 048a], [048c, 048c], [048e, 048e], [0490, 0490],
    594         [0492, 0492], [0494, 0494], [0496, 0496], [0498, 0498],
    595         [049a, 049a], [049c, 049c], [049e, 049e], [04a0, 04a0],
    596         [04a2, 04a2], [04a4, 04a4], [04a6, 04a6], [04a8, 04a8],
    597         [04aa, 04aa], [04ac, 04ac], [04ae, 04ae], [04b0, 04b0],
    598         [04b2, 04b2], [04b4, 04b4], [04b6, 04b6], [04b8, 04b8],
    599         [04ba, 04ba], [04bc, 04bc], [04be, 04be], [04c0, 04c1],
    600         [04c3, 04c3], [04c5, 04c5], [04c7, 04c7], [04c9, 04c9],
    601         [04cb, 04cb], [04cd, 04cd], [04d0, 04d0], [04d2, 04d2],
    602         [04d4, 04d4], [04d6, 04d6], [04d8, 04d8], [04da, 04da],
    603         [04dc, 04dc], [04de, 04de], [04e0, 04e0], [04e2, 04e2],
    604         [04e4, 04e4], [04e6, 04e6], [04e8, 04e8], [04ea, 04ea],
    605         [04ec, 04ec], [04ee, 04ee], [04f0, 04f0], [04f2, 04f2],
    606         [04f4, 04f4], [04f6, 04f6], [04f8, 04f8], [04fa, 04fa],
    607         [04fc, 04fc], [04fe, 04fe], [0500, 0500], [0502, 0502],
    608         [0504, 0504], [0506, 0506], [0508, 0508], [050a, 050a],
    609         [050c, 050c], [050e, 050e], [0510, 0510], [0512, 0512],
    610         [0514, 0514], [0516, 0516], [0518, 0518], [051a, 051a],
    611         [051c, 051c], [051e, 051e], [0520, 0520], [0522, 0522],
    612         [0524, 0524], [0526, 0526], [0528, 0528], [052a, 052a],
    613         [052c, 052c], [052e, 052e], [0531, 0556], [0587, 0587],
    614         [061c, 061c], [0675, 0678], [0958, 095f], [09dc, 09dd],
    615         [09df, 09df], [0a33, 0a33], [0a36, 0a36], [0a59, 0a5b],
    616         [0a5e, 0a5e], [0b5c, 0b5d], [0e33, 0e33], [0eb3, 0eb3],
    617         [0edc, 0edd], [0f0c, 0f0c], [0f43, 0f43], [0f4d, 0f4d],
    618         [0f52, 0f52], [0f57, 0f57], [0f5c, 0f5c], [0f69, 0f69],
    619         [0f73, 0f73], [0f75, 0f79], [0f81, 0f81], [0f93, 0f93],
    620         [0f9d, 0f9d], [0fa2, 0fa2], [0fa7, 0fa7], [0fac, 0fac],
    621         [0fb9, 0fb9], [10a0, 10c5], [10c7, 10c7], [10cd, 10cd],
    622         [10fc, 10fc], [115f, 1160], [13f8, 13fd], [17b4, 17b5],
    623         [180b, 180e], [1c80, 1c88], [1d2c, 1d2e], [1d30, 1d3a],
    624         [1d3c, 1d4d], [1d4f, 1d6a], [1d78, 1d78], [1d9b, 1dbf],
    625         [1e00, 1e00], [1e02, 1e02], [1e04, 1e04], [1e06, 1e06],
    626         [1e08, 1e08], [1e0a, 1e0a], [1e0c, 1e0c], [1e0e, 1e0e],
    627         [1e10, 1e10], [1e12, 1e12], [1e14, 1e14], [1e16, 1e16],
    628         [1e18, 1e18], [1e1a, 1e1a], [1e1c, 1e1c], [1e1e, 1e1e],
    629         [1e20, 1e20], [1e22, 1e22], [1e24, 1e24], [1e26, 1e26],
    630         [1e28, 1e28], [1e2a, 1e2a], [1e2c, 1e2c], [1e2e, 1e2e],
    631         [1e30, 1e30], [1e32, 1e32], [1e34, 1e34], [1e36, 1e36],
    632         [1e38, 1e38], [1e3a, 1e3a], [1e3c, 1e3c], [1e3e, 1e3e],
    633         [1e40, 1e40], [1e42, 1e42], [1e44, 1e44], [1e46, 1e46],
    634         [1e48, 1e48], [1e4a, 1e4a], [1e4c, 1e4c], [1e4e, 1e4e],
    635         [1e50, 1e50], [1e52, 1e52], [1e54, 1e54], [1e56, 1e56],
    636         [1e58, 1e58], [1e5a, 1e5a], [1e5c, 1e5c], [1e5e, 1e5e],
    637         [1e60, 1e60], [1e62, 1e62], [1e64, 1e64], [1e66, 1e66],
    638         [1e68, 1e68], [1e6a, 1e6a], [1e6c, 1e6c], [1e6e, 1e6e],
    639         [1e70, 1e70], [1e72, 1e72], [1e74, 1e74], [1e76, 1e76],
    640         [1e78, 1e78], [1e7a, 1e7a], [1e7c, 1e7c], [1e7e, 1e7e],
    641         [1e80, 1e80], [1e82, 1e82], [1e84, 1e84], [1e86, 1e86],
    642         [1e88, 1e88], [1e8a, 1e8a], [1e8c, 1e8c], [1e8e, 1e8e],
    643         [1e90, 1e90], [1e92, 1e92], [1e94, 1e94], [1e9a, 1e9b],
    644         [1e9e, 1e9e], [1ea0, 1ea0], [1ea2, 1ea2], [1ea4, 1ea4],
    645         [1ea6, 1ea6], [1ea8, 1ea8], [1eaa, 1eaa], [1eac, 1eac],
    646         [1eae, 1eae], [1eb0, 1eb0], [1eb2, 1eb2], [1eb4, 1eb4],
    647         [1eb6, 1eb6], [1eb8, 1eb8], [1eba, 1eba], [1ebc, 1ebc],
    648         [1ebe, 1ebe], [1ec0, 1ec0], [1ec2, 1ec2], [1ec4, 1ec4],
    649         [1ec6, 1ec6], [1ec8, 1ec8], [1eca, 1eca], [1ecc, 1ecc],
    650         [1ece, 1ece], [1ed0, 1ed0], [1ed2, 1ed2], [1ed4, 1ed4],
    651         [1ed6, 1ed6], [1ed8, 1ed8], [1eda, 1eda], [1edc, 1edc],
    652         [1ede, 1ede], [1ee0, 1ee0], [1ee2, 1ee2], [1ee4, 1ee4],
    653         [1ee6, 1ee6], [1ee8, 1ee8], [1eea, 1eea], [1eec, 1eec],
    654         [1eee, 1eee], [1ef0, 1ef0], [1ef2, 1ef2], [1ef4, 1ef4],
    655         [1ef6, 1ef6], [1ef8, 1ef8], [1efa, 1efa], [1efc, 1efc],
    656         [1efe, 1efe], [1f08, 1f0f], [1f18, 1f1d], [1f28, 1f2f],
    657         [1f38, 1f3f], [1f48, 1f4d], [1f59, 1f59], [1f5b, 1f5b],
    658         [1f5d, 1f5d], [1f5f, 1f5f], [1f68, 1f6f], [1f71, 1f71],
    659         [1f73, 1f73], [1f75, 1f75], [1f77, 1f77], [1f79, 1f79],
    660         [1f7b, 1f7b], [1f7d, 1f7d], [1f80, 1faf], [1fb2, 1fb4],
    661         [1fb7, 1fc4], [1fc7, 1fcf], [1fd3, 1fd3], [1fd8, 1fdb],
    662         [1fdd, 1fdf], [1fe3, 1fe3], [1fe8, 1fef], [1ff2, 1ff4],
    663         [1ff7, 1ffe], [2000, 200f], [2011, 2011], [2017, 2017],
    664         [2024, 2026], [202a, 202f], [2033, 2034], [2036, 2037],
    665         [203c, 203c], [203e, 203e], [2047, 2049], [2057, 2057],
    666         [205f, 2071], [2074, 208e], [2090, 209c], [20a8, 20a8],
    667         [2100, 2103], [2105, 2107], [2109, 2113], [2115, 2116],
    668         [2119, 211d], [2120, 2122], [2124, 2124], [2126, 2126],
    669         [2128, 2128], [212a, 212d], [212f, 2139], [213b, 2140],
    670         [2145, 2149], [2150, 217f], [2183, 2183], [2189, 2189],
    671         [222c, 222d], [222f, 2230], [2329, 232a], [2460, 24ea],
    672         [2a0c, 2a0c], [2a74, 2a76], [2adc, 2adc], [2c00, 2c2e],
    673         [2c60, 2c60], [2c62, 2c64], [2c67, 2c67], [2c69, 2c69],
    674         [2c6b, 2c6b], [2c6d, 2c70], [2c72, 2c72], [2c75, 2c75],
    675         [2c7c, 2c80], [2c82, 2c82], [2c84, 2c84], [2c86, 2c86],
    676         [2c88, 2c88], [2c8a, 2c8a], [2c8c, 2c8c], [2c8e, 2c8e],
    677         [2c90, 2c90], [2c92, 2c92], [2c94, 2c94], [2c96, 2c96],
    678         [2c98, 2c98], [2c9a, 2c9a], [2c9c, 2c9c], [2c9e, 2c9e],
    679         [2ca0, 2ca0], [2ca2, 2ca2], [2ca4, 2ca4], [2ca6, 2ca6],
    680         [2ca8, 2ca8], [2caa, 2caa], [2cac, 2cac], [2cae, 2cae],
    681         [2cb0, 2cb0], [2cb2, 2cb2], [2cb4, 2cb4], [2cb6, 2cb6],
    682         [2cb8, 2cb8], [2cba, 2cba], [2cbc, 2cbc], [2cbe, 2cbe],
    683         [2cc0, 2cc0], [2cc2, 2cc2], [2cc4, 2cc4], [2cc6, 2cc6],
    684         [2cc8, 2cc8], [2cca, 2cca], [2ccc, 2ccc], [2cce, 2cce],
    685         [2cd0, 2cd0], [2cd2, 2cd2], [2cd4, 2cd4], [2cd6, 2cd6],
    686         [2cd8, 2cd8], [2cda, 2cda], [2cdc, 2cdc], [2cde, 2cde],
    687         [2ce0, 2ce0], [2ce2, 2ce2], [2ceb, 2ceb], [2ced, 2ced],
    688         [2cf2, 2cf2], [2d6f, 2d6f], [2e9f, 2e9f], [2ef3, 2ef3],
    689         [2f00, 2fd5], [3000, 3000], [3036, 3036], [3038, 303a],
    690         [309b, 309c], [309f, 309f], [30ff, 30ff], [3131, 318e],
    691         [3192, 319f], [3200, 321e], [3220, 3247], [3250, 327e],
    692         [3280, 32fe], [3300, 33ff], [a640, a640], [a642, a642],
    693         [a644, a644], [a646, a646], [a648, a648], [a64a, a64a],
    694         [a64c, a64c], [a64e, a64e], [a650, a650], [a652, a652],
    695         [a654, a654], [a656, a656], [a658, a658], [a65a, a65a],
    696         [a65c, a65c], [a65e, a65e], [a660, a660], [a662, a662],
    697         [a664, a664], [a666, a666], [a668, a668], [a66a, a66a],
    698         [a66c, a66c], [a680, a680], [a682, a682], [a684, a684],
    699         [a686, a686], [a688, a688], [a68a, a68a], [a68c, a68c],
    700         [a68e, a68e], [a690, a690], [a692, a692], [a694, a694],
    701         [a696, a696], [a698, a698], [a69a, a69a], [a69c, a69d],
    702         [a722, a722], [a724, a724], [a726, a726], [a728, a728],
    703         [a72a, a72a], [a72c, a72c], [a72e, a72e], [a732, a732],
    704         [a734, a734], [a736, a736], [a738, a738], [a73a, a73a],
    705         [a73c, a73c], [a73e, a73e], [a740, a740], [a742, a742],
    706         [a744, a744], [a746, a746], [a748, a748], [a74a, a74a],
    707         [a74c, a74c], [a74e, a74e], [a750, a750], [a752, a752],
    708         [a754, a754], [a756, a756], [a758, a758], [a75a, a75a],
    709         [a75c, a75c], [a75e, a75e], [a760, a760], [a762, a762],
    710         [a764, a764], [a766, a766], [a768, a768], [a76a, a76a],
    711         [a76c, a76c], [a76e, a76e], [a770, a770], [a779, a779],
    712         [a77b, a77b], [a77d, a77e], [a780, a780], [a782, a782],
    713         [a784, a784], [a786, a786], [a78b, a78b], [a78d, a78d],
    714         [a790, a790], [a792, a792], [a796, a796], [a798, a798],
    715         [a79a, a79a], [a79c, a79c], [a79e, a79e], [a7a0, a7a0],
    716         [a7a2, a7a2], [a7a4, a7a4], [a7a6, a7a6], [a7a8, a7a8],
    717         [a7aa, a7ae], [a7b0, a7b4], [a7b6, a7b6], [a7f8, a7f9],
    718         [ab5c, ab5f], [ab70, abbf], [f900, fa0d], [fa10, fa10],
    719         [fa12, fa12], [fa15, fa1e], [fa20, fa20], [fa22, fa22],
    720         [fa25, fa26], [fa2a, fa6d], [fa70, fad9], [fb00, fb06],
    721         [fb13, fb17], [fb1d, fb1d], [fb1f, fb36], [fb38, fb3c],
    722         [fb3e, fb3e], [fb40, fb41], [fb43, fb44], [fb46, fbb1],
    723         [fbd3, fd3d], [fd50, fd8f], [fd92, fdc7], [fdf0, fdfc],
    724         [fe00, fe19], [fe30, fe44], [fe47, fe52], [fe54, fe66],
    725         [fe68, fe6b], [fe70, fe72], [fe74, fe74], [fe76, fefc],
    726         [feff, feff], [ff01, ffbe], [ffc2, ffc7], [ffca, ffcf],
    727         [ffd2, ffd7], [ffda, ffdc], [ffe0, ffe6], [ffe8, ffee],
    728         [fff0, fff8], [10400, 10427], [104b0, 104d3], [10c80, 10cb2],
    729         [118a0, 118bf], [1bca0, 1bca3], [1d15e, 1d164], [1d173, 1d17a],
    730         [1d1bb, 1d1c0], [1d400, 1d454], [1d456, 1d49c], [1d49e, 1d49f],
    731         [1d4a2, 1d4a2], [1d4a5, 1d4a6], [1d4a9, 1d4ac], [1d4ae, 1d4b9],
    732         [1d4bb, 1d4bb], [1d4bd, 1d4c3], [1d4c5, 1d505], [1d507, 1d50a],
    733         [1d50d, 1d514], [1d516, 1d51c], [1d51e, 1d539], [1d53b, 1d53e],
    734         [1d540, 1d544], [1d546, 1d546], [1d54a, 1d550], [1d552, 1d6a5],
    735         [1d6a8, 1d7cb], [1d7ce, 1d7ff], [1e900, 1e921], [1ee00, 1ee03],
    736         [1ee05, 1ee1f], [1ee21, 1ee22], [1ee24, 1ee24], [1ee27, 1ee27],
    737         [1ee29, 1ee32], [1ee34, 1ee37], [1ee39, 1ee39], [1ee3b, 1ee3b],
    738         [1ee42, 1ee42], [1ee47, 1ee47], [1ee49, 1ee49], [1ee4b, 1ee4b],
    739         [1ee4d, 1ee4f], [1ee51, 1ee52], [1ee54, 1ee54], [1ee57, 1ee57],
    740         [1ee59, 1ee59], [1ee5b, 1ee5b], [1ee5d, 1ee5d], [1ee5f, 1ee5f],
    741         [1ee61, 1ee62], [1ee64, 1ee64], [1ee67, 1ee6a], [1ee6c, 1ee72],
    742         [1ee74, 1ee77], [1ee79, 1ee7c], [1ee7e, 1ee7e], [1ee80, 1ee89],
    743         [1ee8b, 1ee9b], [1eea1, 1eea3], [1eea5, 1eea9], [1eeab, 1eebb],
    744         [1f100, 1f10a], [1f110, 1f12e], [1f130, 1f14f], [1f16a, 1f16b],
    745         [1f190, 1f190], [1f200, 1f202], [1f210, 1f23b], [1f240, 1f248],
    746         [1f250, 1f251], [2f800, 2fa1d], [e0000, e0fff]**/
    747         const UnicodeSet codepoint_set
    748             {{{Empty, 2}, {Mixed, 1}, {Empty, 2}, {Mixed, 2}, {Empty, 1},
    749               {Mixed, 11}, {Empty, 2}, {Mixed, 3}, {Empty, 2}, {Mixed, 6},
    750               {Full, 1}, {Mixed, 1}, {Empty, 1}, {Mixed, 8}, {Empty, 1},
    751               {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Empty, 2}, {Mixed, 1},
    752               {Empty, 22}, {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Empty, 2},
    753               {Mixed, 2}, {Empty, 7}, {Mixed, 1}, {Empty, 22}, {Mixed, 1},
    754               {Empty, 3}, {Mixed, 2}, {Empty, 1}, {Mixed, 1}, {Empty, 1},
    755               {Mixed, 4}, {Empty, 7}, {Full, 1}, {Mixed, 2}, {Empty, 2},
    756               {Mixed, 2}, {Empty, 19}, {Mixed, 1}, {Empty, 29}, {Mixed, 1},
    757               {Empty, 2}, {Mixed, 1}, {Empty, 35}, {Mixed, 1}, {Empty, 4},
    758               {Mixed, 4}, {Full, 1}, {Empty, 2}, {Mixed, 12}, {Full, 1},
    759               {Mixed, 9}, {Empty, 2}, {Mixed, 3}, {Full, 1}, {Mixed, 1},
    760               {Empty, 4}, {Mixed, 1}, {Empty, 7}, {Mixed, 1}, {Empty, 9},
    761               {Full, 4}, {Mixed, 1}, {Empty, 40}, {Mixed, 1}, {Empty, 2},
    762               {Mixed, 1}, {Empty, 2}, {Mixed, 1}, {Empty, 9}, {Full, 1},
    763               {Mixed, 1}, {Empty, 1}, {Mixed, 5}, {Empty, 3}, {Mixed, 1},
    764               {Empty, 8}, {Mixed, 1}, {Empty, 2}, {Mixed, 1}, {Full, 6},
    765               {Mixed, 1}, {Empty, 1}, {Mixed, 2}, {Empty, 2}, {Mixed, 1},
    766               {Empty, 2}, {Mixed, 1}, {Empty, 1}, {Mixed, 1}, {Full, 2},
    767               {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Full, 1}, {Mixed, 2},
    768               {Full, 3}, {Mixed, 1}, {Full, 8}, {Empty, 914}, {Mixed, 3},
    769               {Empty, 4}, {Mixed, 5}, {Empty, 1}, {Mixed, 1}, {Empty, 26},
    770               {Mixed, 2}, {Full, 2}, {Empty, 618}, {Full, 8}, {Mixed, 2},
    771               {Full, 1}, {Mixed, 1}, {Full, 2}, {Mixed, 1}, {Empty, 1},
    772               {Mixed, 3}, {Full, 2}, {Mixed, 2}, {Full, 10}, {Mixed, 2},
    773               {Full, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 6}, {Full, 3},
    774               {Mixed, 2}, {Full, 4}, {Mixed, 3}, {Empty, 32}, {Full, 1},
    775               {Mixed, 1}, {Empty, 3}, {Mixed, 2}, {Empty, 61}, {Full, 1},
    776               {Mixed, 1}, {Empty, 95}, {Full, 1}, {Empty, 1311}, {Mixed, 1},
    777               {Empty, 164}, {Mixed, 2}, {Empty, 1}, {Mixed, 2}, {Empty, 17},
    778               {Full, 2}, {Mixed, 1}, {Full, 1}, {Mixed, 3}, {Full, 1},
    779               {Mixed, 3}, {Full, 10}, {Mixed, 1}, {Full, 8}, {Mixed, 1},
    780               {Full, 1}, {Empty, 136}, {Full, 1}, {Mixed, 1}, {Empty, 38},
    781               {Mixed, 6}, {Empty, 18}, {Mixed, 5}, {Empty, 3}, {Mixed, 3},
    782               {Empty, 2093}, {Full, 16}, {Mixed, 1}, {Empty, 22575},
    783               {Full, 128}, {Empty, 6016}},
    784              {0x07fffffe, 0x773ca501, 0xff7fffff, 0x55555555, 0xaa5d5555,
    785               0x555556ab, 0xab555555, 0xb1dbced6, 0x11aed2d5, 0x4aaabff0,
    786               0x55de5555, 0x55555555, 0x6c055555, 0x0000557a, 0x01ff0000,
    787               0x3f000000, 0x0000001f, 0x0000803b, 0xc4550000, 0xfffed7f0,
    788               0x00000ffb, 0x557f8004, 0xe6b75555, 0x0000ffff, 0x55555555,
    789               0x55555401, 0x55555555, 0x55552aab, 0x55555555, 0x55555555,
    790               0xfffe5555, 0x007fffff, 0x00000080, 0x10000000, 0x01e00000,
    791               0xff000000, 0xb0000000, 0x00480000, 0x4e000000, 0x30000000,
    792               0x00080000, 0x00080000, 0x30000000, 0x00001000, 0x10842008,
    793               0x03e80200, 0x20080002, 0x02001084, 0x000020bf, 0x10000000,
    794               0x80000000, 0x00000001, 0x3f000000, 0x00300000, 0x00007800,
    795               0x000001ff, 0xf7ff7000, 0xffffbfff, 0x010007ff, 0xf8000000,
    796               0x55555555, 0x55555555, 0x55555555, 0x55555555, 0x4c155555,
    797               0x55555555, 0x55555555, 0x55555555, 0x3f00ff00, 0xff00ff00,
    798               0xaa003f00, 0x2aaaff00, 0xff9cffff, 0xef08ff9f, 0x7f9cff08,
    799               0x0082ffff, 0x50d8fc70, 0x80800380, 0xfff3ffff, 0x1fff7fff,
    800               0x00000100, 0x3e6ffeef, 0xfbffbd57, 0xffff03e1, 0x00000208,
    801               0x0001b000, 0x00000600, 0x000007ff, 0x00001000, 0x00700000,
    802               0x10000000, 0x00007fff, 0xf025ea9d, 0x55555555, 0x55555555,
    803               0x55555555, 0x00042805, 0x00008000, 0x80000000, 0x00080000,
    804               0x003fffff, 0x00000001, 0x07400000, 0x98000000, 0x80000000,
    805               0xfffe0000, 0xfffc7fff, 0x7fffffff, 0xffff00ff, 0x7fffffff,
    806               0x7fffffff, 0x55555555, 0x00001555, 0x35555555, 0x55545554,
    807               0x55555555, 0x6a015555, 0x55452855, 0x005f7d55, 0x03000000,
    808               0xf0000000, 0xffff0000, 0x7fe53fff, 0xfffffc65, 0xffff3fff,
    809               0x03ffffff, 0xa0f8007f, 0x5f7fffff, 0xffffffdb, 0x0003ffff,
    810               0xfff80000, 0x3fffffff, 0xffff0000, 0xfffcffff, 0x000000ff,
    811               0x1fff0000, 0x03ffffff, 0xffff0000, 0xfff7ff9f, 0xffd70f7f,
    812               0x9fffffff, 0xfffffffe, 0x7fffffff, 0x1cfcfcfc, 0x01ff7f7f,
    813               0x000000ff, 0xffff0000, 0x000fffff, 0x0007ffff, 0x0000000f,
    814               0xc0000000, 0x07f8001f, 0xf8000000, 0x00000001, 0xffdfffff,
    815               0xdfffffff, 0xebffde64, 0xffffffef, 0xdfdfe7bf, 0x7bffffff,
    816               0xfffdfc5f, 0xffffff3f, 0xffffcfff, 0x00000003, 0xffffffef,
    817               0x0af7fe96, 0xaa96ea84, 0x5ef7f796, 0x0ffffbff, 0x0ffffbee,
    818               0xffff07ff, 0xffff7fff, 0x0000ffff, 0x00000c00, 0x00010000,
    819               0xffff0007, 0x0fffffff, 0x000301ff, 0x3fffffff}};
    820         static BinaryPropertyObject property_object{NFKC_CF, codepoint_set};
    821     }
    822     namespace NFKC_QC_ns {
    823         /** Code Point Ranges for NFKC_QC
    824         [00a0, 00a0], [00a8, 00a8], [00aa, 00aa], [00af, 00af],
    825         [00b2, 00b5], [00b8, 00ba], [00bc, 00be], [0132, 0133],
    826         [013f, 0140], [0149, 0149], [017f, 017f], [01c4, 01cc],
    827         [01f1, 01f3], [02b0, 02b8], [02d8, 02dd], [02e0, 02e4],
    828         [0300, 0304], [0306, 030c], [030f, 030f], [0311, 0311],
    829         [0313, 0314], [031b, 031b], [0323, 0328], [032d, 032e],
    830         [0330, 0331], [0338, 0338], [0340, 0345], [0374, 0374],
    831         [037a, 037a], [037e, 037e], [0384, 0385], [0387, 0387],
    832         [03d0, 03d6], [03f0, 03f2], [03f4, 03f5], [03f9, 03f9],
    833         [0587, 0587], [0653, 0655], [0675, 0678], [093c, 093c],
    834         [0958, 095f], [09be, 09be], [09d7, 09d7], [09dc, 09dd],
    835         [09df, 09df], [0a33, 0a33], [0a36, 0a36], [0a59, 0a5b],
    836         [0a5e, 0a5e], [0b3e, 0b3e], [0b56, 0b57], [0b5c, 0b5d],
    837         [0bbe, 0bbe], [0bd7, 0bd7], [0c56, 0c56], [0cc2, 0cc2],
    838         [0cd5, 0cd6], [0d3e, 0d3e], [0d57, 0d57], [0dca, 0dca],
    839         [0dcf, 0dcf], [0ddf, 0ddf], [0e33, 0e33], [0eb3, 0eb3],
    840         [0edc, 0edd], [0f0c, 0f0c], [0f43, 0f43], [0f4d, 0f4d],
    841         [0f52, 0f52], [0f57, 0f57], [0f5c, 0f5c], [0f69, 0f69],
    842         [0f73, 0f73], [0f75, 0f79], [0f81, 0f81], [0f93, 0f93],
    843         [0f9d, 0f9d], [0fa2, 0fa2], [0fa7, 0fa7], [0fac, 0fac],
    844         [0fb9, 0fb9], [102e, 102e], [10fc, 10fc], [1161, 1175],
    845         [11a8, 11c2], [1b35, 1b35], [1d2c, 1d2e], [1d30, 1d3a],
    846         [1d3c, 1d4d], [1d4f, 1d6a], [1d78, 1d78], [1d9b, 1dbf],
    847         [1e9a, 1e9b], [1f71, 1f71], [1f73, 1f73], [1f75, 1f75],
    848         [1f77, 1f77], [1f79, 1f79], [1f7b, 1f7b], [1f7d, 1f7d],
    849         [1fbb, 1fbb], [1fbd, 1fc1], [1fc9, 1fc9], [1fcb, 1fcb],
    850         [1fcd, 1fcf], [1fd3, 1fd3], [1fdb, 1fdb], [1fdd, 1fdf],
    851         [1fe3, 1fe3], [1feb, 1feb], [1fed, 1fef], [1ff9, 1ff9],
    852         [1ffb, 1ffb], [1ffd, 1ffe], [2000, 200a], [2011, 2011],
    853         [2017, 2017], [2024, 2026], [202f, 202f], [2033, 2034],
    854         [2036, 2037], [203c, 203c], [203e, 203e], [2047, 2049],
    855         [2057, 2057], [205f, 205f], [2070, 2071], [2074, 208e],
    856         [2090, 209c], [20a8, 20a8], [2100, 2103], [2105, 2107],
    857         [2109, 2113], [2115, 2116], [2119, 211d], [2120, 2122],
    858         [2124, 2124], [2126, 2126], [2128, 2128], [212a, 212d],
    859         [212f, 2131], [2133, 2139], [213b, 2140], [2145, 2149],
    860         [2150, 217f], [2189, 2189], [222c, 222d], [222f, 2230],
    861         [2329, 232a], [2460, 24ea], [2a0c, 2a0c], [2a74, 2a76],
    862         [2adc, 2adc], [2c7c, 2c7d], [2d6f, 2d6f], [2e9f, 2e9f],
    863         [2ef3, 2ef3], [2f00, 2fd5], [3000, 3000], [3036, 3036],
    864         [3038, 303a], [3099, 309c], [309f, 309f], [30ff, 30ff],
    865         [3131, 318e], [3192, 319f], [3200, 321e], [3220, 3247],
    866         [3250, 327e], [3280, 32fe], [3300, 33ff], [a69c, a69d],
    867         [a770, a770], [a7f8, a7f9], [ab5c, ab5f], [f900, fa0d],
    868         [fa10, fa10], [fa12, fa12], [fa15, fa1e], [fa20, fa20],
    869         [fa22, fa22], [fa25, fa26], [fa2a, fa6d], [fa70, fad9],
    870         [fb00, fb06], [fb13, fb17], [fb1d, fb1d], [fb1f, fb36],
    871         [fb38, fb3c], [fb3e, fb3e], [fb40, fb41], [fb43, fb44],
    872         [fb46, fbb1], [fbd3, fd3d], [fd50, fd8f], [fd92, fdc7],
    873         [fdf0, fdfc], [fe10, fe19], [fe30, fe44], [fe47, fe52],
    874         [fe54, fe66], [fe68, fe6b], [fe70, fe72], [fe74, fe74],
    875         [fe76, fefc], [ff01, ffbe], [ffc2, ffc7], [ffca, ffcf],
    876         [ffd2, ffd7], [ffda, ffdc], [ffe0, ffe6], [ffe8, ffee],
    877         [110ba, 110ba], [11127, 11127], [1133e, 1133e], [11357, 11357],
    878         [114b0, 114b0], [114ba, 114ba], [114bd, 114bd], [115af, 115af],
    879         [1d15e, 1d164], [1d1bb, 1d1c0], [1d400, 1d454], [1d456, 1d49c],
    880         [1d49e, 1d49f], [1d4a2, 1d4a2], [1d4a5, 1d4a6], [1d4a9, 1d4ac],
    881         [1d4ae, 1d4b9], [1d4bb, 1d4bb], [1d4bd, 1d4c3], [1d4c5, 1d505],
    882         [1d507, 1d50a], [1d50d, 1d514], [1d516, 1d51c], [1d51e, 1d539],
    883         [1d53b, 1d53e], [1d540, 1d544], [1d546, 1d546], [1d54a, 1d550],
    884         [1d552, 1d6a5], [1d6a8, 1d7cb], [1d7ce, 1d7ff], [1ee00, 1ee03],
    885         [1ee05, 1ee1f], [1ee21, 1ee22], [1ee24, 1ee24], [1ee27, 1ee27],
    886         [1ee29, 1ee32], [1ee34, 1ee37], [1ee39, 1ee39], [1ee3b, 1ee3b],
    887         [1ee42, 1ee42], [1ee47, 1ee47], [1ee49, 1ee49], [1ee4b, 1ee4b],
    888         [1ee4d, 1ee4f], [1ee51, 1ee52], [1ee54, 1ee54], [1ee57, 1ee57],
    889         [1ee59, 1ee59], [1ee5b, 1ee5b], [1ee5d, 1ee5d], [1ee5f, 1ee5f],
    890         [1ee61, 1ee62], [1ee64, 1ee64], [1ee67, 1ee6a], [1ee6c, 1ee72],
    891         [1ee74, 1ee77], [1ee79, 1ee7c], [1ee7e, 1ee7e], [1ee80, 1ee89],
    892         [1ee8b, 1ee9b], [1eea1, 1eea3], [1eea5, 1eea9], [1eeab, 1eebb],
    893         [1f100, 1f10a], [1f110, 1f12e], [1f130, 1f14f], [1f16a, 1f16b],
    894         [1f190, 1f190], [1f200, 1f202], [1f210, 1f23b], [1f240, 1f248],
    895         [1f250, 1f251], [2f800, 2fa1d]**/
    896         const UnicodeSet codepoint_set
    897             {{{Empty, 5}, {Mixed, 1}, {Empty, 3}, {Mixed, 3}, {Empty, 2},
    898               {Mixed, 2}, {Empty, 5}, {Mixed, 8}, {Empty, 1}, {Mixed, 2},
    899               {Empty, 12}, {Mixed, 1}, {Empty, 5}, {Mixed, 2}, {Empty, 21},
    900               {Mixed, 2}, {Empty, 2}, {Mixed, 2}, {Empty, 2}, {Mixed, 2},
    901               {Empty, 6}, {Mixed, 2}, {Empty, 2}, {Mixed, 2}, {Empty, 3},
    902               {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Empty, 2}, {Mixed, 2},
    903               {Empty, 3}, {Mixed, 1}, {Empty, 2}, {Mixed, 1}, {Empty, 3},
    904               {Mixed, 2}, {Empty, 1}, {Mixed, 1}, {Empty, 1}, {Mixed, 4},
    905               {Empty, 3}, {Mixed, 1}, {Empty, 5}, {Mixed, 1}, {Empty, 3},
    906               {Mixed, 1}, {Empty, 1}, {Mixed, 2}, {Empty, 74}, {Mixed, 1},
    907               {Empty, 15}, {Mixed, 4}, {Full, 1}, {Empty, 6}, {Mixed, 1},
    908               {Empty, 6}, {Mixed, 1}, {Empty, 1}, {Mixed, 9}, {Empty, 2},
    909               {Mixed, 3}, {Full, 1}, {Mixed, 1}, {Empty, 4}, {Mixed, 1},
    910               {Empty, 7}, {Mixed, 1}, {Empty, 9}, {Full, 4}, {Mixed, 1},
    911               {Empty, 40}, {Mixed, 1}, {Empty, 2}, {Mixed, 1}, {Empty, 2},
    912               {Mixed, 1}, {Empty, 12}, {Mixed, 1}, {Empty, 7}, {Mixed, 1},
    913               {Empty, 8}, {Mixed, 1}, {Empty, 2}, {Mixed, 1}, {Full, 6},
    914               {Mixed, 1}, {Empty, 1}, {Mixed, 2}, {Empty, 2}, {Mixed, 1},
    915               {Empty, 2}, {Mixed, 1}, {Empty, 1}, {Mixed, 1}, {Full, 2},
    916               {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Full, 1}, {Mixed, 2},
    917               {Full, 3}, {Mixed, 1}, {Full, 8}, {Empty, 916}, {Mixed, 1},
    918               {Empty, 6}, {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Empty, 26},
    919               {Mixed, 1}, {Empty, 621}, {Full, 8}, {Mixed, 2}, {Full, 1},
    920               {Mixed, 1}, {Full, 2}, {Mixed, 1}, {Empty, 1}, {Mixed, 3},
    921               {Full, 2}, {Mixed, 2}, {Full, 10}, {Mixed, 2}, {Full, 1},
    922               {Mixed, 1}, {Full, 1}, {Mixed, 6}, {Full, 3}, {Mixed, 2},
    923               {Full, 4}, {Mixed, 3}, {Empty, 133}, {Mixed, 1}, {Empty, 3},
    924               {Mixed, 1}, {Empty, 15}, {Mixed, 2}, {Empty, 10}, {Mixed, 1},
    925               {Empty, 7}, {Mixed, 1}, {Empty, 1500}, {Mixed, 2}, {Empty, 1},
    926               {Mixed, 2}, {Empty, 17}, {Full, 2}, {Mixed, 1}, {Full, 1},
    927               {Mixed, 3}, {Full, 1}, {Mixed, 3}, {Full, 10}, {Mixed, 1},
    928               {Full, 8}, {Mixed, 1}, {Full, 1}, {Empty, 176}, {Mixed, 6},
    929               {Empty, 18}, {Mixed, 5}, {Empty, 3}, {Mixed, 3},
    930               {Empty, 2093}, {Full, 16}, {Mixed, 1}, {Empty, 28719}},
    931              {0x773c8501, 0x800c0000, 0x00000201, 0x80000000, 0x00001ff0,
    932               0x000e0000, 0x01ff0000, 0x3f000000, 0x0000001f, 0x081a9fdf,
    933               0x010361f8, 0x0000003f, 0x44100000, 0x000000b0, 0x007f0000,
    934               0x02370000, 0x00000080, 0x00380000, 0x01e00000, 0x10000000,
    935               0xff000000, 0x40000000, 0xb0800000, 0x00480000, 0x4e000000,
    936               0x40000000, 0x30c00000, 0x40000000, 0x00800000, 0x00400000,
    937               0x00600004, 0x40000000, 0x00800000, 0x80008400, 0x00080000,
    938               0x00080000, 0x30000000, 0x00001000, 0x10842008, 0x03e80200,
    939               0x20080002, 0x02001084, 0x00004000, 0x10000000, 0x003ffffe,
    940               0xffffff00, 0x00000007, 0x00200000, 0xf7ff7000, 0xffffbfff,
    941               0x010007ff, 0xf8000000, 0x0c000000, 0x2aaa0000, 0xe8000000,
    942               0xe808ea03, 0x6a00e808, 0x008207ff, 0x50d88070, 0x80800380,
    943               0xfff30000, 0x1fff7fff, 0x00000100, 0x3e6ffeef, 0xfbfbbd57,
    944               0xffff03e1, 0x00000200, 0x0001b000, 0x00000600, 0x000007ff,
    945               0x00001000, 0x00700000, 0x10000000, 0x30000000, 0x00008000,
    946               0x80000000, 0x00080000, 0x003fffff, 0x00000001, 0x07400000,
    947               0x9e000000, 0x80000000, 0xfffe0000, 0xfffc7fff, 0x7fffffff,
    948               0xffff00ff, 0x7fffffff, 0x7fffffff, 0x30000000, 0x00010000,
    949               0x03000000, 0xf0000000, 0x7fe53fff, 0xfffffc65, 0xffff3fff,
    950               0x03ffffff, 0xa0f8007f, 0x5f7fffff, 0xffffffdb, 0x0003ffff,
    951               0xfff80000, 0x3fffffff, 0xffff0000, 0xfffcffff, 0x000000ff,
    952               0x1fff0000, 0x03ff0000, 0xffff0000, 0xfff7ff9f, 0xffd70f7f,
    953               0x1fffffff, 0xfffffffe, 0x7fffffff, 0x1cfcfcfc, 0x00007f7f,
    954               0x04000000, 0x00000080, 0x40000000, 0x00800000, 0x24010000,
    955               0x00008000, 0xc0000000, 0x0000001f, 0xf8000000, 0x00000001,
    956               0xffdfffff, 0xdfffffff, 0xebffde64, 0xffffffef, 0xdfdfe7bf,
    957               0x7bffffff, 0xfffdfc5f, 0xffffff3f, 0xffffcfff, 0xffffffef,
    958               0x0af7fe96, 0xaa96ea84, 0x5ef7f796, 0x0ffffbff, 0x0ffffbee,
    959               0xffff07ff, 0xffff7fff, 0x0000ffff, 0x00000c00, 0x00010000,
    960               0xffff0007, 0x0fffffff, 0x000301ff, 0x3fffffff}};
    961         static BinaryPropertyObject property_object{NFKC_QC, codepoint_set};
    962     }
    963     namespace NFKD_QC_ns {
    964         /** Code Point Ranges for NFKD_QC
    965         [00a0, 00a0], [00a8, 00a8], [00aa, 00aa], [00af, 00af],
    966         [00b2, 00b5], [00b8, 00ba], [00bc, 00be], [00c0, 00c5],
    967         [00c7, 00cf], [00d1, 00d6], [00d9, 00dd], [00e0, 00e5],
    968         [00e7, 00ef], [00f1, 00f6], [00f9, 00fd], [00ff, 010f],
    969         [0112, 0125], [0128, 0130], [0132, 0137], [0139, 0140],
    970         [0143, 0149], [014c, 0151], [0154, 0165], [0168, 017f],
    971         [01a0, 01a1], [01af, 01b0], [01c4, 01dc], [01de, 01e3],
    972         [01e6, 01f5], [01f8, 021b], [021e, 021f], [0226, 0233],
    973         [02b0, 02b8], [02d8, 02dd], [02e0, 02e4], [0340, 0341],
    974         [0343, 0344], [0374, 0374], [037a, 037a], [037e, 037e],
    975         [0384, 038a], [038c, 038c], [038e, 0390], [03aa, 03b0],
    976         [03ca, 03ce], [03d0, 03d6], [03f0, 03f2], [03f4, 03f5],
    977         [03f9, 03f9], [0400, 0401], [0403, 0403], [0407, 0407],
    978         [040c, 040e], [0419, 0419], [0439, 0439], [0450, 0451],
    979         [0453, 0453], [0457, 0457], [045c, 045e], [0476, 0477],
    980         [04c1, 04c2], [04d0, 04d3], [04d6, 04d7], [04da, 04df],
    981         [04e2, 04e7], [04ea, 04f5], [04f8, 04f9], [0587, 0587],
    982         [0622, 0626], [0675, 0678], [06c0, 06c0], [06c2, 06c2],
    983         [06d3, 06d3], [0929, 0929], [0931, 0931], [0934, 0934],
    984         [0958, 095f], [09cb, 09cc], [09dc, 09dd], [09df, 09df],
    985         [0a33, 0a33], [0a36, 0a36], [0a59, 0a5b], [0a5e, 0a5e],
    986         [0b48, 0b48], [0b4b, 0b4c], [0b5c, 0b5d], [0b94, 0b94],
    987         [0bca, 0bcc], [0c48, 0c48], [0cc0, 0cc0], [0cc7, 0cc8],
    988         [0cca, 0ccb], [0d4a, 0d4c], [0dda, 0dda], [0ddc, 0dde],
    989         [0e33, 0e33], [0eb3, 0eb3], [0edc, 0edd], [0f0c, 0f0c],
    990         [0f43, 0f43], [0f4d, 0f4d], [0f52, 0f52], [0f57, 0f57],
    991         [0f5c, 0f5c], [0f69, 0f69], [0f73, 0f73], [0f75, 0f79],
    992         [0f81, 0f81], [0f93, 0f93], [0f9d, 0f9d], [0fa2, 0fa2],
    993         [0fa7, 0fa7], [0fac, 0fac], [0fb9, 0fb9], [1026, 1026],
    994         [10fc, 10fc], [1b06, 1b06], [1b08, 1b08], [1b0a, 1b0a],
    995         [1b0c, 1b0c], [1b0e, 1b0e], [1b12, 1b12], [1b3b, 1b3b],
    996         [1b3d, 1b3d], [1b40, 1b41], [1b43, 1b43], [1d2c, 1d2e],
    997         [1d30, 1d3a], [1d3c, 1d4d], [1d4f, 1d6a], [1d78, 1d78],
    998         [1d9b, 1dbf], [1e00, 1e9b], [1ea0, 1ef9], [1f00, 1f15],
    999         [1f18, 1f1d], [1f20, 1f45], [1f48, 1f4d], [1f50, 1f57],
    1000         [1f59, 1f59], [1f5b, 1f5b], [1f5d, 1f5d], [1f5f, 1f7d],
    1001         [1f80, 1fb4], [1fb6, 1fc4], [1fc6, 1fd3], [1fd6, 1fdb],
    1002         [1fdd, 1fef], [1ff2, 1ff4], [1ff6, 1ffe], [2000, 200a],
    1003         [2011, 2011], [2017, 2017], [2024, 2026], [202f, 202f],
    1004         [2033, 2034], [2036, 2037], [203c, 203c], [203e, 203e],
    1005         [2047, 2049], [2057, 2057], [205f, 205f], [2070, 2071],
    1006         [2074, 208e], [2090, 209c], [20a8, 20a8], [2100, 2103],
    1007         [2105, 2107], [2109, 2113], [2115, 2116], [2119, 211d],
    1008         [2120, 2122], [2124, 2124], [2126, 2126], [2128, 2128],
    1009         [212a, 212d], [212f, 2131], [2133, 2139], [213b, 2140],
    1010         [2145, 2149], [2150, 217f], [2189, 2189], [219a, 219b],
    1011         [21ae, 21ae], [21cd, 21cf], [2204, 2204], [2209, 2209],
    1012         [220c, 220c], [2224, 2224], [2226, 2226], [222c, 222d],
    1013         [222f, 2230], [2241, 2241], [2244, 2244], [2247, 2247],
    1014         [2249, 2249], [2260, 2260], [2262, 2262], [226d, 2271],
    1015         [2274, 2275], [2278, 2279], [2280, 2281], [2284, 2285],
    1016         [2288, 2289], [22ac, 22af], [22e0, 22e3], [22ea, 22ed],
    1017         [2329, 232a], [2460, 24ea], [2a0c, 2a0c], [2a74, 2a76],
    1018         [2adc, 2adc], [2c7c, 2c7d], [2d6f, 2d6f], [2e9f, 2e9f],
    1019         [2ef3, 2ef3], [2f00, 2fd5], [3000, 3000], [3036, 3036],
    1020         [3038, 303a], [304c, 304c], [304e, 304e], [3050, 3050],
    1021         [3052, 3052], [3054, 3054], [3056, 3056], [3058, 3058],
    1022         [305a, 305a], [305c, 305c], [305e, 305e], [3060, 3060],
    1023         [3062, 3062], [3065, 3065], [3067, 3067], [3069, 3069],
    1024         [3070, 3071], [3073, 3074], [3076, 3077], [3079, 307a],
    1025         [307c, 307d], [3094, 3094], [309b, 309c], [309e, 309f],
    1026         [30ac, 30ac], [30ae, 30ae], [30b0, 30b0], [30b2, 30b2],
    1027         [30b4, 30b4], [30b6, 30b6], [30b8, 30b8], [30ba, 30ba],
    1028         [30bc, 30bc], [30be, 30be], [30c0, 30c0], [30c2, 30c2],
    1029         [30c5, 30c5], [30c7, 30c7], [30c9, 30c9], [30d0, 30d1],
    1030         [30d3, 30d4], [30d6, 30d7], [30d9, 30da], [30dc, 30dd],
    1031         [30f4, 30f4], [30f7, 30fa], [30fe, 30ff], [3131, 318e],
    1032         [3192, 319f], [3200, 321e], [3220, 3247], [3250, 327e],
    1033         [3280, 32fe], [3300, 33ff], [a69c, a69d], [a770, a770],
    1034         [a7f8, a7f9], [ab5c, ab5f], [ac00, d7a3], [f900, fa0d],
    1035         [fa10, fa10], [fa12, fa12], [fa15, fa1e], [fa20, fa20],
    1036         [fa22, fa22], [fa25, fa26], [fa2a, fa6d], [fa70, fad9],
    1037         [fb00, fb06], [fb13, fb17], [fb1d, fb1d], [fb1f, fb36],
    1038         [fb38, fb3c], [fb3e, fb3e], [fb40, fb41], [fb43, fb44],
    1039         [fb46, fbb1], [fbd3, fd3d], [fd50, fd8f], [fd92, fdc7],
    1040         [fdf0, fdfc], [fe10, fe19], [fe30, fe44], [fe47, fe52],
    1041         [fe54, fe66], [fe68, fe6b], [fe70, fe72], [fe74, fe74],
    1042         [fe76, fefc], [ff01, ffbe], [ffc2, ffc7], [ffca, ffcf],
    1043         [ffd2, ffd7], [ffda, ffdc], [ffe0, ffe6], [ffe8, ffee],
    1044         [1109a, 1109a], [1109c, 1109c], [110ab, 110ab], [1112e, 1112f],
    1045         [1134b, 1134c], [114bb, 114bc], [114be, 114be], [115ba, 115bb],
    1046         [1d15e, 1d164], [1d1bb, 1d1c0], [1d400, 1d454], [1d456, 1d49c],
    1047         [1d49e, 1d49f], [1d4a2, 1d4a2], [1d4a5, 1d4a6], [1d4a9, 1d4ac],
    1048         [1d4ae, 1d4b9], [1d4bb, 1d4bb], [1d4bd, 1d4c3], [1d4c5, 1d505],
    1049         [1d507, 1d50a], [1d50d, 1d514], [1d516, 1d51c], [1d51e, 1d539],
    1050         [1d53b, 1d53e], [1d540, 1d544], [1d546, 1d546], [1d54a, 1d550],
    1051         [1d552, 1d6a5], [1d6a8, 1d7cb], [1d7ce, 1d7ff], [1ee00, 1ee03],
    1052         [1ee05, 1ee1f], [1ee21, 1ee22], [1ee24, 1ee24], [1ee27, 1ee27],
    1053         [1ee29, 1ee32], [1ee34, 1ee37], [1ee39, 1ee39], [1ee3b, 1ee3b],
    1054         [1ee42, 1ee42], [1ee47, 1ee47], [1ee49, 1ee49], [1ee4b, 1ee4b],
    1055         [1ee4d, 1ee4f], [1ee51, 1ee52], [1ee54, 1ee54], [1ee57, 1ee57],
    1056         [1ee59, 1ee59], [1ee5b, 1ee5b], [1ee5d, 1ee5d], [1ee5f, 1ee5f],
    1057         [1ee61, 1ee62], [1ee64, 1ee64], [1ee67, 1ee6a], [1ee6c, 1ee72],
    1058         [1ee74, 1ee77], [1ee79, 1ee7c], [1ee7e, 1ee7e], [1ee80, 1ee89],
    1059         [1ee8b, 1ee9b], [1eea1, 1eea3], [1eea5, 1eea9], [1eeab, 1eebb],
    1060         [1f100, 1f10a], [1f110, 1f12e], [1f130, 1f14f], [1f16a, 1f16b],
    1061         [1f190, 1f190], [1f200, 1f202], [1f210, 1f23b], [1f240, 1f248],
    1062         [1f250, 1f251], [2f800, 2fa1d]**/
    1063         const UnicodeSet codepoint_set
    1064             {{{Empty, 5}, {Mixed, 7}, {Empty, 1}, {Mixed, 5}, {Empty, 3},
    1065               {Mixed, 3}, {Empty, 2}, {Mixed, 10}, {Empty, 2}, {Mixed, 2},
    1066               {Empty, 4}, {Mixed, 1}, {Empty, 4}, {Mixed, 1}, {Empty, 1},
    1067               {Mixed, 1}, {Empty, 2}, {Mixed, 1}, {Empty, 18}, {Mixed, 2},
    1068               {Empty, 3}, {Mixed, 1}, {Empty, 2}, {Mixed, 2}, {Empty, 7},
    1069               {Mixed, 1}, {Empty, 1}, {Mixed, 1}, {Empty, 1}, {Mixed, 1},
    1070               {Empty, 3}, {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Empty, 3},
    1071               {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Empty, 2}, {Mixed, 1},
    1072               {Empty, 3}, {Mixed, 2}, {Empty, 1}, {Mixed, 1}, {Empty, 1},
    1073               {Mixed, 4}, {Empty, 3}, {Mixed, 1}, {Empty, 5}, {Mixed, 1},
    1074               {Empty, 80}, {Mixed, 3}, {Empty, 14}, {Mixed, 4}, {Full, 1},
    1075               {Empty, 2}, {Full, 4}, {Mixed, 1}, {Full, 2}, {Mixed, 2},
    1076               {Full, 1}, {Mixed, 2}, {Full, 1}, {Mixed, 9}, {Empty, 2},
    1077               {Mixed, 3}, {Full, 1}, {Mixed, 3}, {Empty, 1}, {Mixed, 6},
    1078               {Empty, 1}, {Mixed, 1}, {Empty, 1}, {Mixed, 1}, {Empty, 9},
    1079               {Full, 4}, {Mixed, 1}, {Empty, 40}, {Mixed, 1}, {Empty, 2},
    1080               {Mixed, 1}, {Empty, 2}, {Mixed, 1}, {Empty, 12}, {Mixed, 1},
    1081               {Empty, 7}, {Mixed, 1}, {Empty, 8}, {Mixed, 1}, {Empty, 2},
    1082               {Mixed, 1}, {Full, 6}, {Mixed, 1}, {Empty, 1}, {Mixed, 8},
    1083               {Empty, 1}, {Mixed, 1}, {Full, 2}, {Mixed, 1}, {Empty, 3},
    1084               {Mixed, 1}, {Full, 1}, {Mixed, 2}, {Full, 3}, {Mixed, 1},
    1085               {Full, 8}, {Empty, 916}, {Mixed, 1}, {Empty, 6}, {Mixed, 1},
    1086               {Empty, 3}, {Mixed, 1}, {Empty, 26}, {Mixed, 1}, {Empty, 5},
    1087               {Full, 349}, {Mixed, 1}, {Empty, 266}, {Full, 8}, {Mixed, 2},
    1088               {Full, 1}, {Mixed, 1}, {Full, 2}, {Mixed, 1}, {Empty, 1},
    1089               {Mixed, 3}, {Full, 2}, {Mixed, 2}, {Full, 10}, {Mixed, 2},
    1090               {Full, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 6}, {Full, 3},
    1091               {Mixed, 2}, {Full, 4}, {Mixed, 3}, {Empty, 132}, {Mixed, 2},
    1092               {Empty, 3}, {Mixed, 1}, {Empty, 16}, {Mixed, 1}, {Empty, 10},
    1093               {Mixed, 1}, {Empty, 7}, {Mixed, 1}, {Empty, 1500}, {Mixed, 2},
    1094               {Empty, 1}, {Mixed, 2}, {Empty, 17}, {Full, 2}, {Mixed, 1},
    1095               {Full, 1}, {Mixed, 3}, {Full, 1}, {Mixed, 3}, {Full, 10},
    1096               {Mixed, 1}, {Full, 8}, {Mixed, 1}, {Full, 1}, {Empty, 176},
    1097               {Mixed, 6}, {Empty, 18}, {Mixed, 5}, {Empty, 3}, {Mixed, 3},
    1098               {Empty, 2093}, {Full, 16}, {Mixed, 1}, {Empty, 28719}},
    1099              {0x773c8501, 0x3e7effbf, 0xbe7effbf, 0xfffcffff, 0xfefdff3f,
    1100               0xfff3f3f9, 0xffffff3f, 0x00018003, 0xdffffff0, 0xff3fffcf,
    1101               0xcfffffff, 0x000fffc0, 0x01ff0000, 0x3f000000, 0x0000001f,
    1102               0x0000001b, 0x44100000, 0x0001d7f0, 0x0001fc00, 0x007f7c00,
    1103               0x02370000, 0x0200708b, 0x02000000, 0x708b0000, 0x00c00000,
    1104               0xfccf0006, 0x033ffcfc, 0x00000080, 0x0000007c, 0x01e00000,
    1105               0x00080005, 0x00120200, 0xff000000, 0xb0001800, 0x00480000,
    1106               0x4e000000, 0x30001900, 0x00100000, 0x00001c00, 0x00000100,
    1107               0x00000d81, 0x00001c00, 0x74000000, 0x00080000, 0x00080000,
    1108               0x30000000, 0x00001000, 0x10842008, 0x03e80200, 0x20080002,
    1109               0x02001084, 0x00000040, 0x10000000, 0x00045540, 0x28000000,
    1110               0x0000000b, 0xf7ff7000, 0xffffbfff, 0x010007ff, 0xf8000000,
    1111               0x0fffffff, 0x03ffffff, 0x3f3fffff, 0xaaff3f3f, 0x3fffffff,
    1112               0xffdfffff, 0xefcfffdf, 0x7fdcffff, 0x008207ff, 0x50d88070,
    1113               0x80800380, 0xfff30000, 0x1fff7fff, 0x00000100, 0x3e6ffeef,
    1114               0xfbfbbd57, 0xffff03e1, 0x0c000200, 0x00004000, 0x0000e000,
    1115               0x00001210, 0x0001b050, 0x00000292, 0x0333e005, 0x00000333,
    1116               0x0000f000, 0x00003c0f, 0x00000600, 0x000007ff, 0x00001000,
    1117               0x00700000, 0x10000000, 0x30000000, 0x00008000, 0x80000000,
    1118               0x00080000, 0x003fffff, 0x00000001, 0x07400000, 0x55555000,
    1119               0x36db02a5, 0xd8100000, 0x55555000, 0x36db02a5, 0xc7900000,
    1120               0xfffe0000, 0xfffc7fff, 0x7fffffff, 0xffff00ff, 0x7fffffff,
    1121               0x7fffffff, 0x30000000, 0x00010000, 0x03000000, 0xf0000000,
    1122               0x0000000f, 0x7fe53fff, 0xfffffc65, 0xffff3fff, 0x03ffffff,
    1123               0xa0f8007f, 0x5f7fffff, 0xffffffdb, 0x0003ffff, 0xfff80000,
    1124               0x3fffffff, 0xffff0000, 0xfffcffff, 0x000000ff, 0x1fff0000,
    1125               0x03ff0000, 0xffff0000, 0xfff7ff9f, 0xffd70f7f, 0x1fffffff,
    1126               0xfffffffe, 0x7fffffff, 0x1cfcfcfc, 0x00007f7f, 0x14000000,
    1127               0x00000800, 0x0000c000, 0x00001800, 0x58000000, 0x0c000000,
    1128               0xc0000000, 0x0000001f, 0xf8000000, 0x00000001, 0xffdfffff,
    1129               0xdfffffff, 0xebffde64, 0xffffffef, 0xdfdfe7bf, 0x7bffffff,
    1130               0xfffdfc5f, 0xffffff3f, 0xffffcfff, 0xffffffef, 0x0af7fe96,
    1131               0xaa96ea84, 0x5ef7f796, 0x0ffffbff, 0x0ffffbee, 0xffff07ff,
    1132               0xffff7fff, 0x0000ffff, 0x00000c00, 0x00010000, 0xffff0007,
    1133               0x0fffffff, 0x000301ff, 0x3fffffff}};
    1134         static BinaryPropertyObject property_object{NFKD_QC, codepoint_set};
     918  namespace NFKD_QC_ns {
     919    const unsigned independent_prop_values = 2;
     920    /** Code Point Ranges for Y
     921    [0000, 009f], [00a1, 00a7], [00a9, 00a9], [00ab, 00ae], [00b0, 00b1],
     922    [00b6, 00b7], [00bb, 00bb], [00bf, 00bf], [00c6, 00c6], [00d0, 00d0],
     923    [00d7, 00d8], [00de, 00df], [00e6, 00e6], [00f0, 00f0], [00f7, 00f8],
     924    [00fe, 00fe], [0110, 0111], [0126, 0127], [0131, 0131], [0138, 0138],
     925    [0141, 0142], [014a, 014b], [0152, 0153], [0166, 0167], [0180, 019f],
     926    [01a2, 01ae], [01b1, 01c3], [01dd, 01dd], [01e4, 01e5], [01f6, 01f7],
     927    [021c, 021d], [0220, 0225], [0234, 02af], [02b9, 02d7], [02de, 02df],
     928    [02e5, 033f], [0342, 0342], [0345, 0373], [0375, 0379], [037b, 037d],
     929    [037f, 0383], [038b, 038b], [038d, 038d], [0391, 03a9], [03b1, 03c9],
     930    [03cf, 03cf], [03d7, 03ef], [03f3, 03f3], [03f6, 03f8], [03fa, 03ff],
     931    [0402, 0402], [0404, 0406], [0408, 040b], [040f, 0418], [041a, 0438],
     932    [043a, 044f], [0452, 0452], [0454, 0456], [0458, 045b], [045f, 0475],
     933    [0478, 04c0], [04c3, 04cf], [04d4, 04d5], [04d8, 04d9], [04e0, 04e1],
     934    [04e8, 04e9], [04f6, 04f7], [04fa, 0586], [0588, 0621], [0627, 0674],
     935    [0679, 06bf], [06c1, 06c1], [06c3, 06d2], [06d4, 0928], [092a, 0930],
     936    [0932, 0933], [0935, 0957], [0960, 09ca], [09cd, 09db], [09de, 09de],
     937    [09e0, 0a32], [0a34, 0a35], [0a37, 0a58], [0a5c, 0a5d], [0a5f, 0b47],
     938    [0b49, 0b4a], [0b4d, 0b5b], [0b5e, 0b93], [0b95, 0bc9], [0bcd, 0c47],
     939    [0c49, 0cbf], [0cc1, 0cc6], [0cc9, 0cc9], [0ccc, 0d49], [0d4d, 0dd9],
     940    [0ddb, 0ddb], [0ddf, 0e32], [0e34, 0eb2], [0eb4, 0edb], [0ede, 0f0b],
     941    [0f0d, 0f42], [0f44, 0f4c], [0f4e, 0f51], [0f53, 0f56], [0f58, 0f5b],
     942    [0f5d, 0f68], [0f6a, 0f72], [0f74, 0f74], [0f7a, 0f80], [0f82, 0f92],
     943    [0f94, 0f9c], [0f9e, 0fa1], [0fa3, 0fa6], [0fa8, 0fab], [0fad, 0fb8],
     944    [0fba, 1025], [1027, 10fb], [10fd, 1b05], [1b07, 1b07], [1b09, 1b09],
     945    [1b0b, 1b0b], [1b0d, 1b0d], [1b0f, 1b11], [1b13, 1b3a], [1b3c, 1b3c],
     946    [1b3e, 1b3f], [1b42, 1b42], [1b44, 1d2b], [1d2f, 1d2f], [1d3b, 1d3b],
     947    [1d4e, 1d4e], [1d6b, 1d77], [1d79, 1d9a], [1dc0, 1dff], [1e9c, 1e9f],
     948    [1efa, 1eff], [1f16, 1f17], [1f1e, 1f1f], [1f46, 1f47], [1f4e, 1f4f],
     949    [1f58, 1f58], [1f5a, 1f5a], [1f5c, 1f5c], [1f5e, 1f5e], [1f7e, 1f7f],
     950    [1fb5, 1fb5], [1fc5, 1fc5], [1fd4, 1fd5], [1fdc, 1fdc], [1ff0, 1ff1],
     951    [1ff5, 1ff5], [1fff, 1fff], [200b, 2010], [2012, 2016], [2018, 2023],
     952    [2027, 202e], [2030, 2032], [2035, 2035], [2038, 203b], [203d, 203d],
     953    [203f, 2046], [204a, 2056], [2058, 205e], [2060, 206f], [2072, 2073],
     954    [208f, 208f], [209d, 20a7], [20a9, 20ff], [2104, 2104], [2108, 2108],
     955    [2114, 2114], [2117, 2118], [211e, 211f], [2123, 2123], [2125, 2125],
     956    [2127, 2127], [2129, 2129], [212e, 212e], [2132, 2132], [213a, 213a],
     957    [2141, 2144], [214a, 214f], [2180, 2188], [218a, 2199], [219c, 21ad],
     958    [21af, 21cc], [21d0, 2203], [2205, 2208], [220a, 220b], [220d, 2223],
     959    [2225, 2225], [2227, 222b], [222e, 222e], [2231, 2240], [2242, 2243],
     960    [2245, 2246], [2248, 2248], [224a, 225f], [2261, 2261], [2263, 226c],
     961    [2272, 2273], [2276, 2277], [227a, 227f], [2282, 2283], [2286, 2287],
     962    [228a, 22ab], [22b0, 22df], [22e4, 22e9], [22ee, 2328], [232b, 245f],
     963    [24eb, 2a0b], [2a0d, 2a73], [2a77, 2adb], [2add, 2c7b], [2c7e, 2d6e],
     964    [2d70, 2e9e], [2ea0, 2ef2], [2ef4, 2eff], [2fd6, 2fff], [3001, 3035],
     965    [3037, 3037], [303b, 304b], [304d, 304d], [304f, 304f], [3051, 3051],
     966    [3053, 3053], [3055, 3055], [3057, 3057], [3059, 3059], [305b, 305b],
     967    [305d, 305d], [305f, 305f], [3061, 3061], [3063, 3064], [3066, 3066],
     968    [3068, 3068], [306a, 306f], [3072, 3072], [3075, 3075], [3078, 3078],
     969    [307b, 307b], [307e, 3093], [3095, 309a], [309d, 309d], [30a0, 30ab],
     970    [30ad, 30ad], [30af, 30af], [30b1, 30b1], [30b3, 30b3], [30b5, 30b5],
     971    [30b7, 30b7], [30b9, 30b9], [30bb, 30bb], [30bd, 30bd], [30bf, 30bf],
     972    [30c1, 30c1], [30c3, 30c4], [30c6, 30c6], [30c8, 30c8], [30ca, 30cf],
     973    [30d2, 30d2], [30d5, 30d5], [30d8, 30d8], [30db, 30db], [30de, 30f3],
     974    [30f5, 30f6], [30fb, 30fd], [3100, 3130], [318f, 3191], [31a0, 31ff],
     975    [321f, 321f], [3248, 324f], [327f, 327f], [32ff, 32ff], [3400, a69b],
     976    [a69e, a76f], [a771, a7f7], [a7fa, ab5b], [ab60, abff], [d7a4, f8ff],
     977    [fa0e, fa0f], [fa11, fa11], [fa13, fa14], [fa1f, fa1f], [fa21, fa21],
     978    [fa23, fa24], [fa27, fa29], [fa6e, fa6f], [fada, faff], [fb07, fb12],
     979    [fb18, fb1c], [fb1e, fb1e], [fb37, fb37], [fb3d, fb3d], [fb3f, fb3f],
     980    [fb42, fb42], [fb45, fb45], [fbb2, fbd2], [fd3e, fd4f], [fd90, fd91],
     981    [fdc8, fdef], [fdfd, fe0f], [fe1a, fe2f], [fe45, fe46], [fe53, fe53],
     982    [fe67, fe67], [fe6c, fe6f], [fe73, fe73], [fe75, fe75], [fefd, ff00],
     983    [ffbf, ffc1], [ffc8, ffc9], [ffd0, ffd1], [ffd8, ffd9], [ffdd, ffdf],
     984    [ffe7, ffe7], [ffef, 11099], [1109b, 1109b], [1109d, 110aa],
     985    [110ac, 1112d], [11130, 1134a], [1134d, 114ba], [114bd, 114bd],
     986    [114bf, 115b9], [115bc, 1d15d], [1d165, 1d1ba], [1d1c1, 1d3ff],
     987    [1d455, 1d455], [1d49d, 1d49d], [1d4a0, 1d4a1], [1d4a3, 1d4a4],
     988    [1d4a7, 1d4a8], [1d4ad, 1d4ad], [1d4ba, 1d4ba], [1d4bc, 1d4bc],
     989    [1d4c4, 1d4c4], [1d506, 1d506], [1d50b, 1d50c], [1d515, 1d515],
     990    [1d51d, 1d51d], [1d53a, 1d53a], [1d53f, 1d53f], [1d545, 1d545],
     991    [1d547, 1d549], [1d551, 1d551], [1d6a6, 1d6a7], [1d7cc, 1d7cd],
     992    [1d800, 1edff], [1ee04, 1ee04], [1ee20, 1ee20], [1ee23, 1ee23],
     993    [1ee25, 1ee26], [1ee28, 1ee28], [1ee33, 1ee33], [1ee38, 1ee38],
     994    [1ee3a, 1ee3a], [1ee3c, 1ee41], [1ee43, 1ee46], [1ee48, 1ee48],
     995    [1ee4a, 1ee4a], [1ee4c, 1ee4c], [1ee50, 1ee50], [1ee53, 1ee53],
     996    [1ee55, 1ee56], [1ee58, 1ee58], [1ee5a, 1ee5a], [1ee5c, 1ee5c],
     997    [1ee5e, 1ee5e], [1ee60, 1ee60], [1ee63, 1ee63], [1ee65, 1ee66],
     998    [1ee6b, 1ee6b], [1ee73, 1ee73], [1ee78, 1ee78], [1ee7d, 1ee7d],
     999    [1ee7f, 1ee7f], [1ee8a, 1ee8a], [1ee9c, 1eea0], [1eea4, 1eea4],
     1000    [1eeaa, 1eeaa], [1eebc, 1f0ff], [1f10b, 1f10f], [1f12f, 1f12f],
     1001    [1f150, 1f169], [1f16c, 1f18f], [1f191, 1f1ff], [1f203, 1f20f],
     1002    [1f23c, 1f23f], [1f249, 1f24f], [1f252, 2f7ff], [2fa1e, 10ffff]**/
     1003    const UnicodeSet y_Set
     1004        {{{Full, 5}, {Mixed, 7}, {Full, 1}, {Mixed, 5}, {Full, 3},
     1005          {Mixed, 3}, {Full, 2}, {Mixed, 10}, {Full, 2}, {Mixed, 2},
     1006          {Full, 4}, {Mixed, 1}, {Full, 4}, {Mixed, 1}, {Full, 1},
     1007          {Mixed, 1}, {Full, 2}, {Mixed, 1}, {Full, 18}, {Mixed, 2},
     1008          {Full, 3}, {Mixed, 1}, {Full, 2}, {Mixed, 2}, {Full, 7},
     1009          {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 1},
     1010          {Full, 3}, {Mixed, 1}, {Full, 3}, {Mixed, 1}, {Full, 3},
     1011          {Mixed, 1}, {Full, 3}, {Mixed, 1}, {Full, 2}, {Mixed, 1},
     1012          {Full, 3}, {Mixed, 2}, {Full, 1}, {Mixed, 1}, {Full, 1},
     1013          {Mixed, 4}, {Full, 3}, {Mixed, 1}, {Full, 5}, {Mixed, 1},
     1014          {Full, 80}, {Mixed, 3}, {Full, 14}, {Mixed, 4}, {Empty, 1},
     1015          {Full, 2}, {Empty, 4}, {Mixed, 1}, {Empty, 2}, {Mixed, 2},
     1016          {Empty, 1}, {Mixed, 2}, {Empty, 1}, {Mixed, 9}, {Full, 2},
     1017          {Mixed, 3}, {Empty, 1}, {Mixed, 3}, {Full, 1}, {Mixed, 6},
     1018          {Full, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Full, 9},
     1019          {Empty, 4}, {Mixed, 1}, {Full, 40}, {Mixed, 1}, {Full, 2},
     1020          {Mixed, 1}, {Full, 2}, {Mixed, 1}, {Full, 12}, {Mixed, 1},
     1021          {Full, 7}, {Mixed, 1}, {Full, 8}, {Mixed, 1}, {Full, 2},
     1022          {Mixed, 1}, {Empty, 6}, {Mixed, 1}, {Full, 1}, {Mixed, 8},
     1023          {Full, 1}, {Mixed, 1}, {Empty, 2}, {Mixed, 1}, {Full, 3},
     1024          {Mixed, 1}, {Empty, 1}, {Mixed, 2}, {Empty, 3}, {Mixed, 1},
     1025          {Empty, 8}, {Full, 916}, {Mixed, 1}, {Full, 6}, {Mixed, 1},
     1026          {Full, 3}, {Mixed, 1}, {Full, 26}, {Mixed, 1}, {Full, 5},
     1027          {Empty, 349}, {Mixed, 1}, {Full, 266}, {Empty, 8}, {Mixed, 2},
     1028          {Empty, 1}, {Mixed, 1}, {Empty, 2}, {Mixed, 1}, {Full, 1},
     1029          {Mixed, 3}, {Empty, 2}, {Mixed, 2}, {Empty, 10}, {Mixed, 2},
     1030          {Empty, 1}, {Mixed, 1}, {Empty, 1}, {Mixed, 6}, {Empty, 3},
     1031          {Mixed, 2}, {Empty, 4}, {Mixed, 3}, {Full, 132}, {Mixed, 2},
     1032          {Full, 3}, {Mixed, 1}, {Full, 16}, {Mixed, 1}, {Full, 10},
     1033          {Mixed, 1}, {Full, 7}, {Mixed, 1}, {Full, 1500}, {Mixed, 2},
     1034          {Full, 1}, {Mixed, 2}, {Full, 17}, {Empty, 2}, {Mixed, 1},
     1035          {Empty, 1}, {Mixed, 3}, {Empty, 1}, {Mixed, 3}, {Empty, 10},
     1036          {Mixed, 1}, {Empty, 8}, {Mixed, 1}, {Empty, 1}, {Full, 176},
     1037          {Mixed, 6}, {Full, 18}, {Mixed, 5}, {Full, 3}, {Mixed, 3},
     1038          {Full, 2093}, {Empty, 16}, {Mixed, 1}, {Full, 28719}},
     1039         {0x88c37afe, 0xc1810040, 0x41810040, 0x00030000, 0x010200c0,
     1040          0x000c0c06, 0x000000c0, 0xfffe7ffc, 0x2000000f, 0x00c00030,
     1041          0x30000000, 0xfff0003f, 0xfe00ffff, 0xc0ffffff, 0xffffffe0,
     1042          0xffffffe4, 0xbbefffff, 0xfffe280f, 0xfffe03ff, 0xff8083ff,
     1043          0xfdc8ffff, 0xfdff8f74, 0xfdffffff, 0x8f74ffff, 0xff3fffff,
     1044          0x0330fff9, 0xfcc00303, 0xffffff7f, 0xffffff83, 0xfe1fffff,
     1045          0xfff7fffa, 0xffedfdff, 0x00ffffff, 0x4fffe7ff, 0xffb7ffff,
     1046          0xb1ffffff, 0xcfffe6ff, 0xffefffff, 0xffffe3ff, 0xfffffeff,
     1047          0xfffff27e, 0xffffe3ff, 0x8bffffff, 0xfff7ffff, 0xfff7ffff,
     1048          0xcfffffff, 0xffffefff, 0xef7bdff7, 0xfc17fdff, 0xdff7fffd,
     1049          0xfdffef7b, 0xffffffbf, 0xefffffff, 0xfffbaabf, 0xd7ffffff,
     1050          0xfffffff4, 0x08008fff, 0x00004000, 0xfefff800, 0x07ffffff,
     1051          0xf0000000, 0xfc000000, 0xc0c00000, 0x5500c0c0, 0xc0000000,
     1052          0x00200000, 0x10300020, 0x80230000, 0xff7df800, 0xaf277f8f,
     1053          0x7f7ffc7f, 0x000cffff, 0xe0008000, 0xfffffeff, 0xc1900110,
     1054          0x040442a8, 0x0000fc1e, 0xf3fffdff, 0xffffbfff, 0xffff1fff,
     1055          0xffffedef, 0xfffe4faf, 0xfffffd6d, 0xfccc1ffa, 0xfffffccc,
     1056          0xffff0fff, 0xffffc3f0, 0xfffff9ff, 0xfffff800, 0xffffefff,
     1057          0xff8fffff, 0xefffffff, 0xcfffffff, 0xffff7fff, 0x7fffffff,
     1058          0xfff7ffff, 0xffc00000, 0xfffffffe, 0xf8bfffff, 0xaaaaafff,
     1059          0xc924fd5a, 0x27efffff, 0xaaaaafff, 0xc924fd5a, 0x386fffff,
     1060          0x0001ffff, 0x00038000, 0x80000000, 0x0000ff00, 0x80000000,
     1061          0x80000000, 0xcfffffff, 0xfffeffff, 0xfcffffff, 0x0fffffff,
     1062          0xfffffff0, 0x801ac000, 0x0000039a, 0x0000c000, 0xfc000000,
     1063          0x5f07ff80, 0xa0800000, 0x00000024, 0xfffc0000, 0x0007ffff,
     1064          0xc0000000, 0x0000ffff, 0x00030000, 0xffffff00, 0xe000ffff,
     1065          0xfc00ffff, 0x0000ffff, 0x00080060, 0x0028f080, 0xe0000000,
     1066          0x00000001, 0x80000000, 0xe3030303, 0xffff8080, 0xebffffff,
     1067          0xfffff7ff, 0xffff3fff, 0xffffe7ff, 0xa7ffffff, 0xf3ffffff,
     1068          0x3fffffff, 0xffffffe0, 0x07ffffff, 0xfffffffe, 0x00200000,
     1069          0x20000000, 0x1400219b, 0x00000010, 0x20201840, 0x84000000,
     1070          0x000203a0, 0x000000c0, 0x00003000, 0x00000010, 0xf5080169,
     1071          0x5569157b, 0xa1080869, 0xf0000400, 0xf0000411, 0x0000f800,
     1072          0x00008000, 0xffff0000, 0xfffff3ff, 0xfffeffff, 0x0000fff8,
     1073          0xf0000000, 0xfffcfe00, 0xc0000000}};
     1074    /** Code Point Ranges for N
     1075    [00a0, 00a0], [00a8, 00a8], [00aa, 00aa], [00af, 00af], [00b2, 00b5],
     1076    [00b8, 00ba], [00bc, 00be], [00c0, 00c5], [00c7, 00cf], [00d1, 00d6],
     1077    [00d9, 00dd], [00e0, 00e5], [00e7, 00ef], [00f1, 00f6], [00f9, 00fd],
     1078    [00ff, 010f], [0112, 0125], [0128, 0130], [0132, 0137], [0139, 0140],
     1079    [0143, 0149], [014c, 0151], [0154, 0165], [0168, 017f], [01a0, 01a1],
     1080    [01af, 01b0], [01c4, 01dc], [01de, 01e3], [01e6, 01f5], [01f8, 021b],
     1081    [021e, 021f], [0226, 0233], [02b0, 02b8], [02d8, 02dd], [02e0, 02e4],
     1082    [0340, 0341], [0343, 0344], [0374, 0374], [037a, 037a], [037e, 037e],
     1083    [0384, 038a], [038c, 038c], [038e, 0390], [03aa, 03b0], [03ca, 03ce],
     1084    [03d0, 03d6], [03f0, 03f2], [03f4, 03f5], [03f9, 03f9], [0400, 0401],
     1085    [0403, 0403], [0407, 0407], [040c, 040e], [0419, 0419], [0439, 0439],
     1086    [0450, 0451], [0453, 0453], [0457, 0457], [045c, 045e], [0476, 0477],
     1087    [04c1, 04c2], [04d0, 04d3], [04d6, 04d7], [04da, 04df], [04e2, 04e7],
     1088    [04ea, 04f5], [04f8, 04f9], [0587, 0587], [0622, 0626], [0675, 0678],
     1089    [06c0, 06c0], [06c2, 06c2], [06d3, 06d3], [0929, 0929], [0931, 0931],
     1090    [0934, 0934], [0958, 095f], [09cb, 09cc], [09dc, 09dd], [09df, 09df],
     1091    [0a33, 0a33], [0a36, 0a36], [0a59, 0a5b], [0a5e, 0a5e], [0b48, 0b48],
     1092    [0b4b, 0b4c], [0b5c, 0b5d], [0b94, 0b94], [0bca, 0bcc], [0c48, 0c48],
     1093    [0cc0, 0cc0], [0cc7, 0cc8], [0cca, 0ccb], [0d4a, 0d4c], [0dda, 0dda],
     1094    [0ddc, 0dde], [0e33, 0e33], [0eb3, 0eb3], [0edc, 0edd], [0f0c, 0f0c],
     1095    [0f43, 0f43], [0f4d, 0f4d], [0f52, 0f52], [0f57, 0f57], [0f5c, 0f5c],
     1096    [0f69, 0f69], [0f73, 0f73], [0f75, 0f79], [0f81, 0f81], [0f93, 0f93],
     1097    [0f9d, 0f9d], [0fa2, 0fa2], [0fa7, 0fa7], [0fac, 0fac], [0fb9, 0fb9],
     1098    [1026, 1026], [10fc, 10fc], [1b06, 1b06], [1b08, 1b08], [1b0a, 1b0a],
     1099    [1b0c, 1b0c], [1b0e, 1b0e], [1b12, 1b12], [1b3b, 1b3b], [1b3d, 1b3d],
     1100    [1b40, 1b41], [1b43, 1b43], [1d2c, 1d2e], [1d30, 1d3a], [1d3c, 1d4d],
     1101    [1d4f, 1d6a], [1d78, 1d78], [1d9b, 1dbf], [1e00, 1e9b], [1ea0, 1ef9],
     1102    [1f00, 1f15], [1f18, 1f1d], [1f20, 1f45], [1f48, 1f4d], [1f50, 1f57],
     1103    [1f59, 1f59], [1f5b, 1f5b], [1f5d, 1f5d], [1f5f, 1f7d], [1f80, 1fb4],
     1104    [1fb6, 1fc4], [1fc6, 1fd3], [1fd6, 1fdb], [1fdd, 1fef], [1ff2, 1ff4],
     1105    [1ff6, 1ffe], [2000, 200a], [2011, 2011], [2017, 2017], [2024, 2026],
     1106    [202f, 202f], [2033, 2034], [2036, 2037], [203c, 203c], [203e, 203e],
     1107    [2047, 2049], [2057, 2057], [205f, 205f], [2070, 2071], [2074, 208e],
     1108    [2090, 209c], [20a8, 20a8], [2100, 2103], [2105, 2107], [2109, 2113],
     1109    [2115, 2116], [2119, 211d], [2120, 2122], [2124, 2124], [2126, 2126],
     1110    [2128, 2128], [212a, 212d], [212f, 2131], [2133, 2139], [213b, 2140],
     1111    [2145, 2149], [2150, 217f], [2189, 2189], [219a, 219b], [21ae, 21ae],
     1112    [21cd, 21cf], [2204, 2204], [2209, 2209], [220c, 220c], [2224, 2224],
     1113    [2226, 2226], [222c, 222d], [222f, 2230], [2241, 2241], [2244, 2244],
     1114    [2247, 2247], [2249, 2249], [2260, 2260], [2262, 2262], [226d, 2271],
     1115    [2274, 2275], [2278, 2279], [2280, 2281], [2284, 2285], [2288, 2289],
     1116    [22ac, 22af], [22e0, 22e3], [22ea, 22ed], [2329, 232a], [2460, 24ea],
     1117    [2a0c, 2a0c], [2a74, 2a76], [2adc, 2adc], [2c7c, 2c7d], [2d6f, 2d6f],
     1118    [2e9f, 2e9f], [2ef3, 2ef3], [2f00, 2fd5], [3000, 3000], [3036, 3036],
     1119    [3038, 303a], [304c, 304c], [304e, 304e], [3050, 3050], [3052, 3052],
     1120    [3054, 3054], [3056, 3056], [3058, 3058], [305a, 305a], [305c, 305c],
     1121    [305e, 305e], [3060, 3060], [3062, 3062], [3065, 3065], [3067, 3067],
     1122    [3069, 3069], [3070, 3071], [3073, 3074], [3076, 3077], [3079, 307a],
     1123    [307c, 307d], [3094, 3094], [309b, 309c], [309e, 309f], [30ac, 30ac],
     1124    [30ae, 30ae], [30b0, 30b0], [30b2, 30b2], [30b4, 30b4], [30b6, 30b6],
     1125    [30b8, 30b8], [30ba, 30ba], [30bc, 30bc], [30be, 30be], [30c0, 30c0],
     1126    [30c2, 30c2], [30c5, 30c5], [30c7, 30c7], [30c9, 30c9], [30d0, 30d1],
     1127    [30d3, 30d4], [30d6, 30d7], [30d9, 30da], [30dc, 30dd], [30f4, 30f4],
     1128    [30f7, 30fa], [30fe, 30ff], [3131, 318e], [3192, 319f], [3200, 321e],
     1129    [3220, 3247], [3250, 327e], [3280, 32fe], [3300, 33ff], [a69c, a69d],
     1130    [a770, a770], [a7f8, a7f9], [ab5c, ab5f], [ac00, d7a3], [f900, fa0d],
     1131    [fa10, fa10], [fa12, fa12], [fa15, fa1e], [fa20, fa20], [fa22, fa22],
     1132    [fa25, fa26], [fa2a, fa6d], [fa70, fad9], [fb00, fb06], [fb13, fb17],
     1133    [fb1d, fb1d], [fb1f, fb36], [fb38, fb3c], [fb3e, fb3e], [fb40, fb41],
     1134    [fb43, fb44], [fb46, fbb1], [fbd3, fd3d], [fd50, fd8f], [fd92, fdc7],
     1135    [fdf0, fdfc], [fe10, fe19], [fe30, fe44], [fe47, fe52], [fe54, fe66],
     1136    [fe68, fe6b], [fe70, fe72], [fe74, fe74], [fe76, fefc], [ff01, ffbe],
     1137    [ffc2, ffc7], [ffca, ffcf], [ffd2, ffd7], [ffda, ffdc], [ffe0, ffe6],
     1138    [ffe8, ffee], [1109a, 1109a], [1109c, 1109c], [110ab, 110ab],
     1139    [1112e, 1112f], [1134b, 1134c], [114bb, 114bc], [114be, 114be],
     1140    [115ba, 115bb], [1d15e, 1d164], [1d1bb, 1d1c0], [1d400, 1d454],
     1141    [1d456, 1d49c], [1d49e, 1d49f], [1d4a2, 1d4a2], [1d4a5, 1d4a6],
     1142    [1d4a9, 1d4ac], [1d4ae, 1d4b9], [1d4bb, 1d4bb], [1d4bd, 1d4c3],
     1143    [1d4c5, 1d505], [1d507, 1d50a], [1d50d, 1d514], [1d516, 1d51c],
     1144    [1d51e, 1d539], [1d53b, 1d53e], [1d540, 1d544], [1d546, 1d546],
     1145    [1d54a, 1d550], [1d552, 1d6a5], [1d6a8, 1d7cb], [1d7ce, 1d7ff],
     1146    [1ee00, 1ee03], [1ee05, 1ee1f], [1ee21, 1ee22], [1ee24, 1ee24],
     1147    [1ee27, 1ee27], [1ee29, 1ee32], [1ee34, 1ee37], [1ee39, 1ee39],
     1148    [1ee3b, 1ee3b], [1ee42, 1ee42], [1ee47, 1ee47], [1ee49, 1ee49],
     1149    [1ee4b, 1ee4b], [1ee4d, 1ee4f], [1ee51, 1ee52], [1ee54, 1ee54],
     1150    [1ee57, 1ee57], [1ee59, 1ee59], [1ee5b, 1ee5b], [1ee5d, 1ee5d],
     1151    [1ee5f, 1ee5f], [1ee61, 1ee62], [1ee64, 1ee64], [1ee67, 1ee6a],
     1152    [1ee6c, 1ee72], [1ee74, 1ee77], [1ee79, 1ee7c], [1ee7e, 1ee7e],
     1153    [1ee80, 1ee89], [1ee8b, 1ee9b], [1eea1, 1eea3], [1eea5, 1eea9],
     1154    [1eeab, 1eebb], [1f100, 1f10a], [1f110, 1f12e], [1f130, 1f14f],
     1155    [1f16a, 1f16b], [1f190, 1f190], [1f200, 1f202], [1f210, 1f23b],
     1156    [1f240, 1f248], [1f250, 1f251], [2f800, 2fa1d]**/
     1157    const UnicodeSet n_Set
     1158        {{{Empty, 5}, {Mixed, 7}, {Empty, 1}, {Mixed, 5}, {Empty, 3},
     1159          {Mixed, 3}, {Empty, 2}, {Mixed, 10}, {Empty, 2}, {Mixed, 2},
     1160          {Empty, 4}, {Mixed, 1}, {Empty, 4}, {Mixed, 1}, {Empty, 1},
     1161          {Mixed, 1}, {Empty, 2}, {Mixed, 1}, {Empty, 18}, {Mixed, 2},
     1162          {Empty, 3}, {Mixed, 1}, {Empty, 2}, {Mixed, 2}, {Empty, 7},
     1163          {Mixed, 1}, {Empty, 1}, {Mixed, 1}, {Empty, 1}, {Mixed, 1},
     1164          {Empty, 3}, {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Empty, 3},
     1165          {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Empty, 2}, {Mixed, 1},
     1166          {Empty, 3}, {Mixed, 2}, {Empty, 1}, {Mixed, 1}, {Empty, 1},
     1167          {Mixed, 4}, {Empty, 3}, {Mixed, 1}, {Empty, 5}, {Mixed, 1},
     1168          {Empty, 80}, {Mixed, 3}, {Empty, 14}, {Mixed, 4}, {Full, 1},
     1169          {Empty, 2}, {Full, 4}, {Mixed, 1}, {Full, 2}, {Mixed, 2},
     1170          {Full, 1}, {Mixed, 2}, {Full, 1}, {Mixed, 9}, {Empty, 2},
     1171          {Mixed, 3}, {Full, 1}, {Mixed, 3}, {Empty, 1}, {Mixed, 6},
     1172          {Empty, 1}, {Mixed, 1}, {Empty, 1}, {Mixed, 1}, {Empty, 9},
     1173          {Full, 4}, {Mixed, 1}, {Empty, 40}, {Mixed, 1}, {Empty, 2},
     1174          {Mixed, 1}, {Empty, 2}, {Mixed, 1}, {Empty, 12}, {Mixed, 1},
     1175          {Empty, 7}, {Mixed, 1}, {Empty, 8}, {Mixed, 1}, {Empty, 2},
     1176          {Mixed, 1}, {Full, 6}, {Mixed, 1}, {Empty, 1}, {Mixed, 8},
     1177          {Empty, 1}, {Mixed, 1}, {Full, 2}, {Mixed, 1}, {Empty, 3},
     1178          {Mixed, 1}, {Full, 1}, {Mixed, 2}, {Full, 3}, {Mixed, 1},
     1179          {Full, 8}, {Empty, 916}, {Mixed, 1}, {Empty, 6}, {Mixed, 1},
     1180          {Empty, 3}, {Mixed, 1}, {Empty, 26}, {Mixed, 1}, {Empty, 5},
     1181          {Full, 349}, {Mixed, 1}, {Empty, 266}, {Full, 8}, {Mixed, 2},
     1182          {Full, 1}, {Mixed, 1}, {Full, 2}, {Mixed, 1}, {Empty, 1},
     1183          {Mixed, 3}, {Full, 2}, {Mixed, 2}, {Full, 10}, {Mixed, 2},
     1184          {Full, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 6}, {Full, 3},
     1185          {Mixed, 2}, {Full, 4}, {Mixed, 3}, {Empty, 132}, {Mixed, 2},
     1186          {Empty, 3}, {Mixed, 1}, {Empty, 16}, {Mixed, 1}, {Empty, 10},
     1187          {Mixed, 1}, {Empty, 7}, {Mixed, 1}, {Empty, 1500}, {Mixed, 2},
     1188          {Empty, 1}, {Mixed, 2}, {Empty, 17}, {Full, 2}, {Mixed, 1},
     1189          {Full, 1}, {Mixed, 3}, {Full, 1}, {Mixed, 3}, {Full, 10},
     1190          {Mixed, 1}, {Full, 8}, {Mixed, 1}, {Full, 1}, {Empty, 176},
     1191          {Mixed, 6}, {Empty, 18}, {Mixed, 5}, {Empty, 3}, {Mixed, 3},
     1192          {Empty, 2093}, {Full, 16}, {Mixed, 1}, {Empty, 28719}},
     1193         {0x773c8501, 0x3e7effbf, 0xbe7effbf, 0xfffcffff, 0xfefdff3f,
     1194          0xfff3f3f9, 0xffffff3f, 0x00018003, 0xdffffff0, 0xff3fffcf,
     1195          0xcfffffff, 0x000fffc0, 0x01ff0000, 0x3f000000, 0x0000001f,
     1196          0x0000001b, 0x44100000, 0x0001d7f0, 0x0001fc00, 0x007f7c00,
     1197          0x02370000, 0x0200708b, 0x02000000, 0x708b0000, 0x00c00000,
     1198          0xfccf0006, 0x033ffcfc, 0x00000080, 0x0000007c, 0x01e00000,
     1199          0x00080005, 0x00120200, 0xff000000, 0xb0001800, 0x00480000,
     1200          0x4e000000, 0x30001900, 0x00100000, 0x00001c00, 0x00000100,
     1201          0x00000d81, 0x00001c00, 0x74000000, 0x00080000, 0x00080000,
     1202          0x30000000, 0x00001000, 0x10842008, 0x03e80200, 0x20080002,
     1203          0x02001084, 0x00000040, 0x10000000, 0x00045540, 0x28000000,
     1204          0x0000000b, 0xf7ff7000, 0xffffbfff, 0x010007ff, 0xf8000000,
     1205          0x0fffffff, 0x03ffffff, 0x3f3fffff, 0xaaff3f3f, 0x3fffffff,
     1206          0xffdfffff, 0xefcfffdf, 0x7fdcffff, 0x008207ff, 0x50d88070,
     1207          0x80800380, 0xfff30000, 0x1fff7fff, 0x00000100, 0x3e6ffeef,
     1208          0xfbfbbd57, 0xffff03e1, 0x0c000200, 0x00004000, 0x0000e000,
     1209          0x00001210, 0x0001b050, 0x00000292, 0x0333e005, 0x00000333,
     1210          0x0000f000, 0x00003c0f, 0x00000600, 0x000007ff, 0x00001000,
     1211          0x00700000, 0x10000000, 0x30000000, 0x00008000, 0x80000000,
     1212          0x00080000, 0x003fffff, 0x00000001, 0x07400000, 0x55555000,
     1213          0x36db02a5, 0xd8100000, 0x55555000, 0x36db02a5, 0xc7900000,
     1214          0xfffe0000, 0xfffc7fff, 0x7fffffff, 0xffff00ff, 0x7fffffff,
     1215          0x7fffffff, 0x30000000, 0x00010000, 0x03000000, 0xf0000000,
     1216          0x0000000f, 0x7fe53fff, 0xfffffc65, 0xffff3fff, 0x03ffffff,
     1217          0xa0f8007f, 0x5f7fffff, 0xffffffdb, 0x0003ffff, 0xfff80000,
     1218          0x3fffffff, 0xffff0000, 0xfffcffff, 0x000000ff, 0x1fff0000,
     1219          0x03ff0000, 0xffff0000, 0xfff7ff9f, 0xffd70f7f, 0x1fffffff,
     1220          0xfffffffe, 0x7fffffff, 0x1cfcfcfc, 0x00007f7f, 0x14000000,
     1221          0x00000800, 0x0000c000, 0x00001800, 0x58000000, 0x0c000000,
     1222          0xc0000000, 0x0000001f, 0xf8000000, 0x00000001, 0xffdfffff,
     1223          0xdfffffff, 0xebffde64, 0xffffffef, 0xdfdfe7bf, 0x7bffffff,
     1224          0xfffdfc5f, 0xffffff3f, 0xffffcfff, 0xffffffef, 0x0af7fe96,
     1225          0xaa96ea84, 0x5ef7f796, 0x0ffffbff, 0x0ffffbee, 0xffff07ff,
     1226          0xffff7fff, 0x0000ffff, 0x00000c00, 0x00010000, 0xffff0007,
     1227          0x0fffffff, 0x000301ff, 0x3fffffff}};
     1228    static EnumeratedPropertyObject property_object
     1229        {NFKD_QC,
     1230         NFKD_QC_ns::independent_prop_values,
     1231         NFKD_QC_ns::enum_names,
     1232         NFKD_QC_ns::value_names,
     1233         NFKD_QC_ns::aliases_only_map,
     1234         {&y_Set, &n_Set
     1235         }};
    11351236    }
    11361237    namespace XO_NFC_ns {
  • icGREP/icgrep-devel/icgrep/UCD/DerivedNumericType.h

    r5656 r5660  
    99 */
    1010
     11#include "PropertyAliases.h"
    1112#include "PropertyObjects.h"
    1213#include "PropertyValueAliases.h"
  • icGREP/icgrep-devel/icgrep/UCD/EastAsianWidth.h

    r5656 r5660  
    99 */
    1010
     11#include "PropertyAliases.h"
    1112#include "PropertyObjects.h"
    1213#include "PropertyValueAliases.h"
  • icGREP/icgrep-devel/icgrep/UCD/GraphemeBreakProperty.h

    r5656 r5660  
    99 */
    1010
     11#include "PropertyAliases.h"
    1112#include "PropertyObjects.h"
    1213#include "PropertyValueAliases.h"
  • icGREP/icgrep-devel/icgrep/UCD/HangulSyllableType.h

    r5656 r5660  
    99 */
    1010
     11#include "PropertyAliases.h"
    1112#include "PropertyObjects.h"
    1213#include "PropertyValueAliases.h"
  • icGREP/icgrep-devel/icgrep/UCD/IndicPositionalCategory.h

    r5657 r5660  
    99 */
    1010
     11#include "PropertyAliases.h"
    1112#include "PropertyObjects.h"
    1213#include "PropertyValueAliases.h"
  • icGREP/icgrep-devel/icgrep/UCD/IndicSyllabicCategory.h

    r5657 r5660  
    99 */
    1010
     11#include "PropertyAliases.h"
    1112#include "PropertyObjects.h"
    1213#include "PropertyValueAliases.h"
  • icGREP/icgrep-devel/icgrep/UCD/LineBreak.h

    r5656 r5660  
    99 */
    1010
     11#include "PropertyAliases.h"
    1112#include "PropertyObjects.h"
    1213#include "PropertyValueAliases.h"
  • icGREP/icgrep-devel/icgrep/UCD/PropList.h

    r5656 r5660  
    1010
    1111#include "PropertyAliases.h"
     12#include "PropertyObjects.h"
     13#include "PropertyValueAliases.h"
    1214#include "unicode_set.h"
    13 #include <vector>
    1415
    1516namespace UCD {
  • icGREP/icgrep-devel/icgrep/UCD/PropertyObjectTable.h

    r5656 r5660  
    4747    new UnsupportedPropertyObject(cjkCompatibilityVariant, PropertyObject::ClassTypeId::StringProperty),
    4848    new UnsupportedPropertyObject(dm, PropertyObject::ClassTypeId::StringProperty),
    49     &FC_NFKC_ns::property_object,
     49    new UnsupportedPropertyObject(FC_NFKC, PropertyObject::ClassTypeId::StringProperty),
    5050    new UnsupportedPropertyObject(lc, PropertyObject::ClassTypeId::StringProperty),
    51     &NFKC_CF_ns::property_object,
     51    new UnsupportedPropertyObject(NFKC_CF, PropertyObject::ClassTypeId::StringProperty),
    5252    new UnsupportedPropertyObject(scf, PropertyObject::ClassTypeId::CodepointProperty),
    5353    new UnsupportedPropertyObject(slc, PropertyObject::ClassTypeId::CodepointProperty),
     
    5656    new UnsupportedPropertyObject(tc, PropertyObject::ClassTypeId::StringProperty),
    5757    new UnsupportedPropertyObject(uc, PropertyObject::ClassTypeId::StringProperty),
    58     new UnsupportedPropertyObject(bmg, PropertyObject::ClassTypeId::MiscellaneousProperty),
    59     new UnsupportedPropertyObject(bpb, PropertyObject::ClassTypeId::MiscellaneousProperty),
    60     new UnsupportedPropertyObject(cjkIICore, PropertyObject::ClassTypeId::MiscellaneousProperty),
    61     new UnsupportedPropertyObject(cjkIRG_GSource, PropertyObject::ClassTypeId::MiscellaneousProperty),
    62     new UnsupportedPropertyObject(cjkIRG_HSource, PropertyObject::ClassTypeId::MiscellaneousProperty),
    63     new UnsupportedPropertyObject(cjkIRG_JSource, PropertyObject::ClassTypeId::MiscellaneousProperty),
    64     new UnsupportedPropertyObject(cjkIRG_KPSource, PropertyObject::ClassTypeId::MiscellaneousProperty),
    65     new UnsupportedPropertyObject(cjkIRG_KSource, PropertyObject::ClassTypeId::MiscellaneousProperty),
    66     new UnsupportedPropertyObject(cjkIRG_MSource, PropertyObject::ClassTypeId::MiscellaneousProperty),
    67     new UnsupportedPropertyObject(cjkIRG_TSource, PropertyObject::ClassTypeId::MiscellaneousProperty),
    68     new UnsupportedPropertyObject(cjkIRG_USource, PropertyObject::ClassTypeId::MiscellaneousProperty),
    69     new UnsupportedPropertyObject(cjkIRG_VSource, PropertyObject::ClassTypeId::MiscellaneousProperty),
    70     new UnsupportedPropertyObject(cjkRSUnicode, PropertyObject::ClassTypeId::MiscellaneousProperty),
    71     new UnsupportedPropertyObject(isc, PropertyObject::ClassTypeId::MiscellaneousProperty),
    72     new UnsupportedPropertyObject(JSN, PropertyObject::ClassTypeId::MiscellaneousProperty),
    73     new UnsupportedPropertyObject(na, PropertyObject::ClassTypeId::MiscellaneousProperty),
    74     new UnsupportedPropertyObject(na1, PropertyObject::ClassTypeId::MiscellaneousProperty),
    75     new UnsupportedPropertyObject(Name_Alias, PropertyObject::ClassTypeId::MiscellaneousProperty),
     58    new UnsupportedPropertyObject(bmg, PropertyObject::ClassTypeId::StringProperty),
     59    new UnsupportedPropertyObject(bpb, PropertyObject::ClassTypeId::StringProperty),
     60    new UnsupportedPropertyObject(cjkIICore, PropertyObject::ClassTypeId::StringProperty),
     61    new UnsupportedPropertyObject(cjkIRG_GSource, PropertyObject::ClassTypeId::StringProperty),
     62    new UnsupportedPropertyObject(cjkIRG_HSource, PropertyObject::ClassTypeId::StringProperty),
     63    new UnsupportedPropertyObject(cjkIRG_JSource, PropertyObject::ClassTypeId::StringProperty),
     64    new UnsupportedPropertyObject(cjkIRG_KPSource, PropertyObject::ClassTypeId::StringProperty),
     65    new UnsupportedPropertyObject(cjkIRG_KSource, PropertyObject::ClassTypeId::StringProperty),
     66    new UnsupportedPropertyObject(cjkIRG_MSource, PropertyObject::ClassTypeId::StringProperty),
     67    new UnsupportedPropertyObject(cjkIRG_TSource, PropertyObject::ClassTypeId::StringProperty),
     68    new UnsupportedPropertyObject(cjkIRG_USource, PropertyObject::ClassTypeId::StringProperty),
     69    new UnsupportedPropertyObject(cjkIRG_VSource, PropertyObject::ClassTypeId::StringProperty),
     70    new UnsupportedPropertyObject(cjkRSUnicode, PropertyObject::ClassTypeId::StringProperty),
     71    new UnsupportedPropertyObject(isc, PropertyObject::ClassTypeId::StringProperty),
     72    new UnsupportedPropertyObject(JSN, PropertyObject::ClassTypeId::StringProperty),
     73    new UnsupportedPropertyObject(na, PropertyObject::ClassTypeId::StringProperty),
     74    new UnsupportedPropertyObject(na1, PropertyObject::ClassTypeId::StringProperty),
     75    new UnsupportedPropertyObject(Name_Alias, PropertyObject::ClassTypeId::StringProperty),
    7676    &SCX_ns::property_object,
    7777    &AGE_ns::property_object,
  • icGREP/icgrep-devel/icgrep/UCD/PropertyValueAliases.h

    r5656 r5660  
    2525            {"n", N}, {"y", Y}, {"no", N}, {"yes", Y}, {"f", N}, {"t", Y},
    2626            {"false", N}, {"true", Y}}};
    27     }
    28 
    29     namespace JSN_ns {
    30         enum value_t {
    31             A, AE, B, BB, BS, C, D, DD, E, EO, EU, G, GG, GS, H, I, J, JJ,
    32             K, L, LB, LG, LH, LM, LP, LS, LT, M, N, NG, NH, NJ, O, OE, P, R,
    33             S, SS, T, U, WA, WAE, WE, WEO, WI, YA, YAE, YE, YEO, YI, YO, YU};
    34         const static std::vector<std::string> enum_names = {
    35             "A", "AE", "B", "BB", "BS", "C", "D", "DD", "E", "EO", "EU",
    36             "G", "GG", "GS", "H", "I", "J", "JJ", "K", "L", "LB", "LG",
    37             "LH", "LM", "LP", "LS", "LT", "M", "N", "NG", "NH", "NJ", "O",
    38             "OE", "P", "R", "S", "SS", "T", "U", "WA", "WAE", "WE", "WEO",
    39             "WI", "YA", "YAE", "YE", "YEO", "YI", "YO", "YU"};
    40         const static std::vector<std::string> value_names = {
    41             "A", "AE", "B", "BB", "BS", "C", "D", "DD", "E", "EO", "EU",
    42             "G", "GG", "GS", "H", "I", "J", "JJ", "K", "L", "LB", "LG",
    43             "LH", "LM", "LP", "LS", "LT", "M", "N", "NG", "NH", "NJ", "O",
    44             "OE", "P", "R", "S", "SS", "T", "U", "WA", "WAE", "WE", "WEO",
    45             "WI", "YA", "YAE", "YE", "YEO", "YI", "YO", "YU"};
    46         static std::unordered_map<std::string, int> aliases_only_map {{
    47             }};
    48     }
    49 
    50     namespace SCX_ns {
    51         enum value_t {
    52             Adlm, Aghb, Ahom, Arab, Armi, Armn, Avst, Bali, Bamu, Bass,
    53             Batk, Beng, Bhks, Bopo, Brah, Brai, Bugi, Buhd, Cakm, Cans,
    54             Cari, Cham, Cher, Copt, Cprt, Cyrl, Deva, Dsrt, Dupl, Egyp,
    55             Elba, Ethi, Geor, Glag, Goth, Gran, Grek, Gujr, Guru, Hang,
    56             Hani, Hano, Hatr, Hebr, Hira, Hluw, Hmng, Hrkt, Hung, Ital,
    57             Java, Kali, Kana, Khar, Khmr, Khoj, Knda, Kthi, Lana, Laoo,
    58             Latn, Lepc, Limb, Lina, Linb, Lisu, Lyci, Lydi, Mahj, Mand,
    59             Mani, Marc, Mend, Merc, Mero, Mlym, Modi, Mong, Mroo, Mtei,
    60             Mult, Mymr, Narb, Nbat, Newa, Nkoo, Ogam, Olck, Orkh, Orya,
    61             Osge, Osma, Palm, Pauc, Perm, Phag, Phli, Phlp, Phnx, Plrd,
    62             Prti, Rjng, Runr, Samr, Sarb, Saur, Sgnw, Shaw, Shrd, Sidd,
    63             Sind, Sinh, Sora, Sund, Sylo, Syrc, Tagb, Takr, Tale, Talu,
    64             Taml, Tang, Tavt, Telu, Tfng, Tglg, Thaa, Thai, Tibt, Tirh,
    65             Ugar, Vaii, Wara, Xpeo, Xsux, Yiii, Zinh, Zyyy, Zzzz};
    66         const static std::vector<std::string> enum_names = {
    67             "Adlm", "Aghb", "Ahom", "Arab", "Armi", "Armn", "Avst", "Bali",
    68             "Bamu", "Bass", "Batk", "Beng", "Bhks", "Bopo", "Brah", "Brai",
    69             "Bugi", "Buhd", "Cakm", "Cans", "Cari", "Cham", "Cher", "Copt",
    70             "Cprt", "Cyrl", "Deva", "Dsrt", "Dupl", "Egyp", "Elba", "Ethi",
    71             "Geor", "Glag", "Goth", "Gran", "Grek", "Gujr", "Guru", "Hang",
    72             "Hani", "Hano", "Hatr", "Hebr", "Hira", "Hluw", "Hmng", "Hrkt",
    73             "Hung", "Ital", "Java", "Kali", "Kana", "Khar", "Khmr", "Khoj",
    74             "Knda", "Kthi", "Lana", "Laoo", "Latn", "Lepc", "Limb", "Lina",
    75             "Linb", "Lisu", "Lyci", "Lydi", "Mahj", "Mand", "Mani", "Marc",
    76             "Mend", "Merc", "Mero", "Mlym", "Modi", "Mong", "Mroo", "Mtei",
    77             "Mult", "Mymr", "Narb", "Nbat", "Newa", "Nkoo", "Ogam", "Olck",
    78             "Orkh", "Orya", "Osge", "Osma", "Palm", "Pauc", "Perm", "Phag",
    79             "Phli", "Phlp", "Phnx", "Plrd", "Prti", "Rjng", "Runr", "Samr",
    80             "Sarb", "Saur", "Sgnw", "Shaw", "Shrd", "Sidd", "Sind", "Sinh",
    81             "Sora", "Sund", "Sylo", "Syrc", "Tagb", "Takr", "Tale", "Talu",
    82             "Taml", "Tang", "Tavt", "Telu", "Tfng", "Tglg", "Thaa", "Thai",
    83             "Tibt", "Tirh", "Ugar", "Vaii", "Wara", "Xpeo", "Xsux", "Yiii",
    84             "Zinh", "Zyyy", "Zzzz"};
    85         const static std::vector<std::string> value_names = {
    86             "Adlam", "Caucasian_Albanian", "Ahom", "Arabic",
    87             "Imperial_Aramaic", "Armenian", "Avestan", "Balinese", "Bamum",
    88             "Bassa_Vah", "Batak", "Bengali", "Bhaiksuki", "Bopomofo",
    89             "Brahmi", "Braille", "Buginese", "Buhid", "Chakma",
    90             "Canadian_Aboriginal", "Carian", "Cham", "Cherokee", "Coptic",
    91             "Cypriot", "Cyrillic", "Devanagari", "Deseret", "Duployan",
    92             "Egyptian_Hieroglyphs", "Elbasan", "Ethiopic", "Georgian",
    93             "Glagolitic", "Gothic", "Grantha", "Greek", "Gujarati",
    94             "Gurmukhi", "Hangul", "Han", "Hanunoo", "Hatran", "Hebrew",
    95             "Hiragana", "Anatolian_Hieroglyphs", "Pahawh_Hmong",
    96             "Katakana_Or_Hiragana", "Old_Hungarian", "Old_Italic",
    97             "Javanese", "Kayah_Li", "Katakana", "Kharoshthi", "Khmer",
    98             "Khojki", "Kannada", "Kaithi", "Tai_Tham", "Lao", "Latin",
    99             "Lepcha", "Limbu", "Linear_A", "Linear_B", "Lisu", "Lycian",
    100             "Lydian", "Mahajani", "Mandaic", "Manichaean", "Marchen",
    101             "Mende_Kikakui", "Meroitic_Cursive", "Meroitic_Hieroglyphs",
    102             "Malayalam", "Modi", "Mongolian", "Mro", "Meetei_Mayek",
    103             "Multani", "Myanmar", "Old_North_Arabian", "Nabataean", "Newa",
    104             "Nko", "Ogham", "Ol_Chiki", "Old_Turkic", "Oriya", "Osage",
    105             "Osmanya", "Palmyrene", "Pau_Cin_Hau", "Old_Permic", "Phags_Pa",
    106             "Inscriptional_Pahlavi", "Psalter_Pahlavi", "Phoenician",
    107             "Miao", "Inscriptional_Parthian", "Rejang", "Runic",
    108             "Samaritan", "Old_South_Arabian", "Saurashtra", "SignWriting",
    109             "Shavian", "Sharada", "Siddham", "Khudawadi", "Sinhala",
    110             "Sora_Sompeng", "Sundanese", "Syloti_Nagri", "Syriac",
    111             "Tagbanwa", "Takri", "Tai_Le", "New_Tai_Lue", "Tamil", "Tangut",
    112             "Tai_Viet", "Telugu", "Tifinagh", "Tagalog", "Thaana", "Thai",
    113             "Tibetan", "Tirhuta", "Ugaritic", "Vai", "Warang_Citi",
    114             "Old_Persian", "Cuneiform", "Yi", "Inherited", "Common",
    115             "Unknown"};
    116         static std::unordered_map<std::string, int> aliases_only_map {{
    117             {"qaac", SCX_ns::Copt}, {"qaai", SCX_ns::Zinh}}};
    11827    }
    11928
     
    498407        };
    499408        const uint16_t enum_val[] = {
    500           0, 1, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
     409              0, 1, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
    501410            22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 84,
    502411            91, 103, 107, 118, 122, 129, 130, 132, 202, 214, 216, 218, 220,
     
    799708    namespace NFC_QC_ns {
    800709        enum value_t {
    801             M, N, Y};
    802         const static std::vector<std::string> enum_names = {
    803             "M", "N", "Y"};
    804         const static std::vector<std::string> value_names = {
    805             "Maybe", "No", "Yes"};
     710            Y, N, M};
     711        const static std::vector<std::string> enum_names = {
     712            "Y", "N", "M"};
     713        const static std::vector<std::string> value_names = {
     714            "Yes", "No", "Maybe"};
    806715        static std::unordered_map<std::string, int> aliases_only_map {{
    807716            }};
     
    810719    namespace NFD_QC_ns {
    811720        enum value_t {
    812             N, Y};
    813         const static std::vector<std::string> enum_names = {
    814             "N", "Y"};
    815         const static std::vector<std::string> value_names = {
    816             "No", "Yes"};
     721            Y, N};
     722        const static std::vector<std::string> enum_names = {
     723            "Y", "N"};
     724        const static std::vector<std::string> value_names = {
     725            "Yes", "No"};
    817726        static std::unordered_map<std::string, int> aliases_only_map {{
    818727            }};
     
    821730    namespace NFKC_QC_ns {
    822731        enum value_t {
    823             M, N, Y};
    824         const static std::vector<std::string> enum_names = {
    825             "M", "N", "Y"};
    826         const static std::vector<std::string> value_names = {
    827             "Maybe", "No", "Yes"};
     732            Y, N, M};
     733        const static std::vector<std::string> enum_names = {
     734            "Y", "N", "M"};
     735        const static std::vector<std::string> value_names = {
     736            "Yes", "No", "Maybe"};
    828737        static std::unordered_map<std::string, int> aliases_only_map {{
    829738            }};
     
    832741    namespace NFKD_QC_ns {
    833742        enum value_t {
    834             N, Y};
    835         const static std::vector<std::string> enum_names = {
    836             "N", "Y"};
    837         const static std::vector<std::string> value_names = {
    838             "No", "Yes"};
     743            Y, N};
     744        const static std::vector<std::string> enum_names = {
     745            "Y", "N"};
     746        const static std::vector<std::string> value_names = {
     747            "Yes", "No"};
    839748        static std::unordered_map<std::string, int> aliases_only_map {{
    840749            }};
  • icGREP/icgrep-devel/icgrep/UCD/ScriptExtensions.h

    r5656 r5660  
    99 */
    1010
     11#include "PropertyAliases.h"
    1112#include "PropertyObjects.h"
    1213#include "PropertyValueAliases.h"
     
    330331        [00bb, 00bf], [00d7, 00d7], [00f7, 00f7], [02b9, 02df],
    331332        [02e5, 02e9], [02ec, 02ff], [0374, 0374], [037e, 037e],
    332         [0385, 0385], [0387, 0387], [0589, 0589], [0605, 0605],
    333         [060c, 060c], [061b, 061c], [061f, 061f], [0640, 0640],
    334         [06dd, 06dd], [08e2, 08e2], [0964, 0965], [0e3f, 0e3f],
    335         [0fd5, 0fd8], [10fb, 10fb], [16eb, 16ed], [1735, 1736],
    336         [1802, 1803], [1805, 1805], [1cd3, 1cd3], [1ce1, 1ce1],
    337         [1ce9, 1cec], [1cee, 1cf3], [1cf5, 1cf6], [2000, 200b],
    338         [200e, 2064], [2066, 2070], [2074, 207e], [2080, 208e],
    339         [20a0, 20be], [2100, 2125], [2127, 2129], [212c, 2131],
    340         [2133, 214d], [214f, 215f], [2189, 218b], [2190, 23fe],
    341         [2400, 2426], [2440, 244a], [2460, 27ff], [2900, 2b73],
    342         [2b76, 2b95], [2b98, 2bb9], [2bbd, 2bc8], [2bca, 2bd1],
    343         [2bec, 2bef], [2e00, 2e44], [2ff0, 2ffb], [3000, 3004],
    344         [3006, 3006], [3008, 3020], [3030, 3037], [303c, 303f],
    345         [309b, 309c], [30a0, 30a0], [30fb, 30fc], [3190, 319f],
    346         [31c0, 31e3], [3220, 325f], [327f, 32cf], [3358, 33ff],
    347         [4dc0, 4dff], [a700, a721], [a788, a78a], [a830, a839],
    348         [a92e, a92e], [a9cf, a9cf], [ab5b, ab5b], [fd3e, fd3f],
    349         [fe10, fe19], [fe30, fe52], [fe54, fe66], [fe68, fe6b],
    350         [feff, feff], [ff01, ff20], [ff3b, ff40], [ff5b, ff65],
    351         [ff70, ff70], [ff9e, ff9f], [ffe0, ffe6], [ffe8, ffee],
    352         [fff9, fffd], [10100, 10102], [10107, 10133], [10137, 1013f],
    353         [10190, 1019b], [101d0, 101fc], [102e1, 102fb], [1bca0, 1bca3],
    354         [1d000, 1d0f5], [1d100, 1d126], [1d129, 1d166], [1d16a, 1d17a],
    355         [1d183, 1d184], [1d18c, 1d1a9], [1d1ae, 1d1e8], [1d300, 1d356],
    356         [1d360, 1d371], [1d400, 1d454], [1d456, 1d49c], [1d49e, 1d49f],
     333        [0385, 0385], [0387, 0387], [0605, 0605], [061c, 061c],
     334        [06dd, 06dd], [08e2, 08e2], [0e3f, 0e3f], [0fd5, 0fd8],
     335        [16eb, 16ed], [2000, 200b], [200e, 2064], [2066, 2070],
     336        [2074, 207e], [2080, 208e], [20a0, 20be], [2100, 2125],
     337        [2127, 2129], [212c, 2131], [2133, 214d], [214f, 215f],
     338        [2189, 218b], [2190, 23fe], [2400, 2426], [2440, 244a],
     339        [2460, 27ff], [2900, 2b73], [2b76, 2b95], [2b98, 2bb9],
     340        [2bbd, 2bc8], [2bca, 2bd1], [2bec, 2bef], [2e00, 2e42],
     341        [2e44, 2e44], [2ff0, 2ffb], [3000, 3000], [3004, 3004],
     342        [3012, 3012], [3020, 3020], [3036, 3036], [3248, 325f],
     343        [327f, 327f], [32b1, 32bf], [32cc, 32cf], [3371, 337a],
     344        [3380, 33df], [33ff, 33ff], [4dc0, 4dff], [a700, a721],
     345        [a788, a78a], [ab5b, ab5b], [fd3e, fd3f], [fe10, fe19],
     346        [fe30, fe44], [fe47, fe52], [fe54, fe66], [fe68, fe6b],
     347        [feff, feff], [ff01, ff20], [ff3b, ff40], [ff5b, ff60],
     348        [ffe0, ffe6], [ffe8, ffee], [fff9, fffd], [10190, 1019b],
     349        [101d0, 101fc], [1d000, 1d0f5], [1d100, 1d126], [1d129, 1d166],
     350        [1d16a, 1d17a], [1d183, 1d184], [1d18c, 1d1a9], [1d1ae, 1d1e8],
     351        [1d300, 1d356], [1d400, 1d454], [1d456, 1d49c], [1d49e, 1d49f],
    357352        [1d4a2, 1d4a2], [1d4a5, 1d4a6], [1d4a9, 1d4ac], [1d4ae, 1d4b9],
    358353        [1d4bb, 1d4bb], [1d4bd, 1d4c3], [1d4c5, 1d505], [1d507, 1d50a],
     
    363358        [1f100, 1f10c], [1f110, 1f12e], [1f130, 1f16b], [1f170, 1f1ac],
    364359        [1f1e6, 1f1ff], [1f201, 1f202], [1f210, 1f23b], [1f240, 1f248],
    365         [1f250, 1f251], [1f300, 1f6d2], [1f6e0, 1f6ec], [1f6f0, 1f6f6],
    366         [1f700, 1f773], [1f780, 1f7d4], [1f800, 1f80b], [1f810, 1f847],
    367         [1f850, 1f859], [1f860, 1f887], [1f890, 1f8ad], [1f910, 1f91e],
    368         [1f920, 1f927], [1f930, 1f930], [1f933, 1f93e], [1f940, 1f94b],
    369         [1f950, 1f95e], [1f980, 1f991], [1f9c0, 1f9c0], [e0001, e0001],
    370         [e0020, e007f]**/
     360        [1f300, 1f6d2], [1f6e0, 1f6ec], [1f6f0, 1f6f6], [1f700, 1f773],
     361        [1f780, 1f7d4], [1f800, 1f80b], [1f810, 1f847], [1f850, 1f859],
     362        [1f860, 1f887], [1f890, 1f8ad], [1f910, 1f91e], [1f920, 1f927],
     363        [1f930, 1f930], [1f933, 1f93e], [1f940, 1f94b], [1f950, 1f95e],
     364        [1f980, 1f991], [1f9c0, 1f9c0], [e0001, e0001], [e0020, e007f]**/
    371365        const UnicodeSet zyyy_Ext
    372366            {{{Full, 2}, {Mixed, 2}, {Full, 1}, {Mixed, 3}, {Empty, 13},
    373367              {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Empty, 3}, {Mixed, 2},
    374               {Empty, 15}, {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Empty, 1},
    375               {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Empty, 16}, {Mixed, 1},
    376               {Empty, 3}, {Mixed, 1}, {Empty, 37}, {Mixed, 1}, {Empty, 12},
    377               {Mixed, 1}, {Empty, 8}, {Mixed, 1}, {Empty, 47}, {Mixed, 1},
    378               {Empty, 1}, {Mixed, 1}, {Empty, 6}, {Mixed, 1}, {Empty, 37},
    379               {Mixed, 2}, {Empty, 24}, {Mixed, 1}, {Full, 2}, {Mixed, 3},
    380               {Empty, 2}, {Full, 1}, {Mixed, 2}, {Empty, 1}, {Mixed, 1},
    381               {Full, 18}, {Mixed, 1}, {Full, 1}, {Mixed, 2}, {Full, 29},
    382               {Empty, 8}, {Full, 19}, {Mixed, 5}, {Empty, 16}, {Full, 2},
    383               {Mixed, 1}, {Empty, 12}, {Mixed, 3}, {Empty, 2}, {Mixed, 2},
    384               {Empty, 1}, {Mixed, 1}, {Empty, 4}, {Mixed, 1}, {Empty, 1},
    385               {Full, 1}, {Mixed, 1}, {Empty, 1}, {Full, 2}, {Mixed, 1},
    386               {Full, 2}, {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Full, 5},
    387               {Empty, 206}, {Full, 2}, {Empty, 712}, {Full, 1}, {Mixed, 1},
    388               {Empty, 2}, {Mixed, 1}, {Empty, 4}, {Mixed, 1}, {Empty, 7},
    389               {Mixed, 1}, {Empty, 4}, {Mixed, 1}, {Empty, 11}, {Mixed, 1},
    390               {Empty, 654}, {Mixed, 1}, {Empty, 6}, {Mixed, 4}, {Empty, 3},
    391               {Mixed, 6}, {Empty, 2}, {Mixed, 1}, {Empty, 8}, {Mixed, 2},
    392               {Empty, 2}, {Mixed, 1}, {Empty, 1}, {Mixed, 2}, {Empty, 7},
    393               {Mixed, 1}, {Empty, 1485}, {Mixed, 1}, {Empty, 154},
    394               {Full, 7}, {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Full, 1},
    395               {Mixed, 3}, {Full, 1}, {Mixed, 1}, {Empty, 8}, {Full, 2},
    396               {Mixed, 2}, {Empty, 4}, {Full, 2}, {Mixed, 1}, {Full, 1},
    397               {Mixed, 3}, {Full, 1}, {Mixed, 3}, {Full, 10}, {Mixed, 1},
    398               {Full, 8}, {Mixed, 1}, {Full, 1}, {Empty, 192}, {Full, 1},
    399               {Mixed, 1}, {Full, 2}, {Mixed, 6}, {Full, 1}, {Mixed, 1},
    400               {Full, 1}, {Mixed, 1}, {Empty, 1}, {Mixed, 4}, {Empty, 5},
    401               {Full, 30}, {Mixed, 2}, {Full, 3}, {Mixed, 1}, {Full, 2},
    402               {Mixed, 1}, {Empty, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 1},
    403               {Full, 1}, {Mixed, 2}, {Empty, 2}, {Mixed, 3}, {Empty, 1},
    404               {Mixed, 1}, {Empty, 1}, {Mixed, 1}, {Empty, 24625},
    405               {Mixed, 1}, {Full, 3}, {Empty, 6140}},
     368              {Empty, 19}, {Mixed, 1}, {Empty, 5}, {Mixed, 1}, {Empty, 16},
     369              {Mixed, 1}, {Empty, 41}, {Mixed, 1}, {Empty, 12}, {Mixed, 1},
     370              {Empty, 56}, {Mixed, 1}, {Empty, 72}, {Mixed, 1}, {Full, 2},
     371              {Mixed, 3}, {Empty, 2}, {Full, 1}, {Mixed, 2}, {Empty, 1},
     372              {Mixed, 1}, {Full, 18}, {Mixed, 1}, {Full, 1}, {Mixed, 2},
     373              {Full, 29}, {Empty, 8}, {Full, 19}, {Mixed, 5}, {Empty, 16},
     374              {Full, 2}, {Mixed, 1}, {Empty, 12}, {Mixed, 3}, {Empty, 16},
     375              {Mixed, 2}, {Empty, 1}, {Mixed, 2}, {Empty, 4}, {Mixed, 1},
     376              {Full, 3}, {Mixed, 1}, {Empty, 206}, {Full, 2}, {Empty, 712},
     377              {Full, 1}, {Mixed, 1}, {Empty, 2}, {Mixed, 1}, {Empty, 29},
     378              {Mixed, 1}, {Empty, 654}, {Mixed, 1}, {Empty, 6}, {Mixed, 4},
     379              {Empty, 3}, {Mixed, 5}, {Empty, 3}, {Mixed, 1}, {Empty, 12},
     380              {Mixed, 1}, {Empty, 1}, {Mixed, 2}, {Empty, 1648}, {Full, 7},
     381              {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 3},
     382              {Full, 1}, {Mixed, 1}, {Empty, 8}, {Full, 2}, {Mixed, 1},
     383              {Empty, 5}, {Full, 2}, {Mixed, 1}, {Full, 1}, {Mixed, 3},
     384              {Full, 1}, {Mixed, 3}, {Full, 10}, {Mixed, 1}, {Full, 8},
     385              {Mixed, 1}, {Full, 1}, {Empty, 192}, {Full, 1}, {Mixed, 1},
     386              {Full, 2}, {Mixed, 6}, {Full, 1}, {Mixed, 1}, {Full, 1},
     387              {Mixed, 1}, {Empty, 1}, {Mixed, 4}, {Empty, 5}, {Full, 30},
     388              {Mixed, 2}, {Full, 3}, {Mixed, 1}, {Full, 2}, {Mixed, 1},
     389              {Empty, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Full, 1},
     390              {Mixed, 2}, {Empty, 2}, {Mixed, 3}, {Empty, 1}, {Mixed, 1},
     391              {Empty, 1}, {Mixed, 1}, {Empty, 24625}, {Mixed, 1}, {Full, 3},
     392              {Empty, 6140}},
    406393             {0xf8000001, 0xf8000001, 0xfbfffbff, 0x00800000, 0x00800000,
    407               0xfe000000, 0xfffff3e0, 0x40100000, 0x000000a0, 0x00000200,
    408               0x98001020, 0x00000001, 0x20000000, 0x00000004, 0x00000030,
    409               0x80000000, 0x01e00000, 0x08000000, 0x00003800, 0x00600000,
    410               0x0000002c, 0x00080000, 0x006fde02, 0xffffcfff, 0x7ff1ffdf,
    411               0x00007fff, 0x7fffffff, 0xfffbf3bf, 0xffffbfff, 0xffff0e00,
    412               0x7fffffff, 0x0000007f, 0x000007ff, 0xffcfffff, 0xff3fffff,
    413               0xe3ffffff, 0x0003fdff, 0x0000f000, 0x0000001f, 0x0fff0000,
    414               0xffffff5f, 0xf0ff0001, 0x18000000, 0x00000001, 0x18000000,
    415               0xffff0000, 0x0000000f, 0x80000000, 0x0000ffff, 0xff000000,
    416               0x00000003, 0x00000700, 0x03ff0000, 0x00004000, 0x00008000,
    417               0x08000000, 0xc0000000, 0x03ff0000, 0xffff0000, 0xfff7ffff,
    418               0x00000f7f, 0x80000000, 0xfffffffe, 0xf8000001, 0xf8000001,
    419               0x0001003f, 0xc0000000, 0x3e007f7f, 0xffffff87, 0xff8fffff,
    420               0x0fff0000, 0xffff0000, 0x1fffffff, 0x0ffffffe, 0x0000000f,
    421               0x003fffff, 0xfffffe7f, 0x07fffc7f, 0xfffff018, 0xffffc3ff,
    422               0x000001ff, 0x007fffff, 0x0003ffff, 0xffdfffff, 0xdfffffff,
    423               0xebffde64, 0xffffffef, 0xdfdfe7bf, 0x7bffffff, 0xfffdfc5f,
    424               0xffffff3f, 0xffffcfff, 0xffff0fff, 0x000fffff, 0xfffe7fff,
    425               0xfffefffe, 0x003fffff, 0xffff1fff, 0xffff7fff, 0xffff0fff,
    426               0x00001fff, 0xffffffc0, 0xffff0006, 0x0fffffff, 0x000301ff,
    427               0x0007ffff, 0x007f1fff, 0x000fffff, 0x001fffff, 0xffff0fff,
    428               0x03ff00ff, 0xffff00ff, 0x00003fff, 0x7fff0000, 0x7ff900ff,
    429               0x7fff0fff, 0x0003ffff, 0x00000001, 0x00000002}};
     394              0xfe000000, 0xfffff3e0, 0x40100000, 0x000000a0, 0x10000020,
     395              0x20000000, 0x00000004, 0x80000000, 0x01e00000, 0x00003800,
     396              0xffffcfff, 0x7ff1ffdf, 0x00007fff, 0x7fffffff, 0xfffbf3bf,
     397              0xffffbfff, 0xffff0e00, 0x7fffffff, 0x0000007f, 0x000007ff,
     398              0xffcfffff, 0xff3fffff, 0xe3ffffff, 0x0003fdff, 0x0000f000,
     399              0x00000017, 0x0fff0000, 0x00040011, 0x00400001, 0xffffff00,
     400              0x80000000, 0xfffe0000, 0x0000f000, 0x07fe0000, 0x80000000,
     401              0x00000003, 0x00000700, 0x08000000, 0xc0000000, 0x03ff0000,
     402              0xffff0000, 0xfff7ff9f, 0x00000f7f, 0x80000000, 0xfffffffe,
     403              0xf8000001, 0xf8000001, 0x00000001, 0x3e007f7f, 0x0fff0000,
     404              0xffff0000, 0x1fffffff, 0x003fffff, 0xfffffe7f, 0x07fffc7f,
     405              0xfffff018, 0xffffc3ff, 0x000001ff, 0x007fffff, 0xffdfffff,
     406              0xdfffffff, 0xebffde64, 0xffffffef, 0xdfdfe7bf, 0x7bffffff,
     407              0xfffdfc5f, 0xffffff3f, 0xffffcfff, 0xffff0fff, 0x000fffff,
     408              0xfffe7fff, 0xfffefffe, 0x003fffff, 0xffff1fff, 0xffff7fff,
     409              0xffff0fff, 0x00001fff, 0xffffffc0, 0xffff0006, 0x0fffffff,
     410              0x000001ff, 0x0007ffff, 0x007f1fff, 0x000fffff, 0x001fffff,
     411              0xffff0fff, 0x03ff00ff, 0xffff00ff, 0x00003fff, 0x7fff0000,
     412              0x7ff900ff, 0x7fff0fff, 0x0003ffff, 0x00000001, 0x00000002}};
    430413        /** Code Point Ranges for Latn
    431414        [0041, 005a], [0061, 007a], [00aa, 00aa], [00ba, 00ba],
     
    844827             {0x0000ffff}};
    845828        /** Code Point Ranges for Zinh
    846         [0300, 036f], [0485, 0486], [064b, 0655], [0670, 0670],
    847         [0951, 0952], [1ab0, 1abe], [1cd0, 1cd2], [1cd4, 1ce0],
    848         [1ce2, 1ce8], [1ced, 1ced], [1cf4, 1cf4], [1cf8, 1cf9],
    849         [1dc0, 1df5], [1dfb, 1dff], [200c, 200d], [20d0, 20f0],
    850         [302a, 302d], [3099, 309a], [fe00, fe0f], [fe20, fe2d],
    851         [101fd, 101fd], [102e0, 102e0], [1d167, 1d169], [1d17b, 1d182],
    852         [1d185, 1d18b], [1d1aa, 1d1ad], [e0100, e01ef]**/
     829        [0300, 0341], [0343, 0344], [0346, 0362], [1ab0, 1abe],
     830        [1dc2, 1df5], [1dfb, 1dff], [200c, 200d], [20d0, 20ef],
     831        [fe00, fe0f], [fe20, fe2d], [101fd, 101fd], [1d167, 1d169],
     832        [1d17b, 1d182], [1d185, 1d18b], [1d1aa, 1d1ad], [e0100, e01ef]**/
    853833        const UnicodeSet zinh_Ext
    854             {{{Empty, 24}, {Full, 3}, {Mixed, 1}, {Empty, 8}, {Mixed, 1},
    855               {Empty, 13}, {Mixed, 2}, {Empty, 22}, {Mixed, 1},
    856               {Empty, 138}, {Mixed, 1}, {Empty, 16}, {Mixed, 2}, {Empty, 6},
    857               {Full, 1}, {Mixed, 1}, {Empty, 16}, {Mixed, 1}, {Empty, 5},
    858               {Mixed, 2}, {Empty, 121}, {Mixed, 1}, {Empty, 2}, {Mixed, 1},
    859               {Empty, 1643}, {Mixed, 2}, {Empty, 29}, {Mixed, 1},
    860               {Empty, 7}, {Mixed, 1}, {Empty, 1651}, {Mixed, 3},
    861               {Empty, 24954}, {Full, 7}, {Mixed, 1}, {Empty, 6128}},
    862              {0x0000ffff, 0x00000060, 0x003ff800, 0x00010000, 0x00060000,
    863               0x7fff0000, 0xfff70000, 0x031021fd, 0xf83fffff, 0x00003000,
    864               0xffff0000, 0x0001ffff, 0x00003c00, 0x06000000, 0x0000ffff,
    865               0x00003fff, 0x20000000, 0x00000001, 0xf8000380, 0x00000fe7,
    866               0x00003c00, 0x0000ffff}};
     834            {{{Empty, 24}, {Full, 2}, {Mixed, 2}, {Empty, 185}, {Mixed, 1},
     835              {Empty, 24}, {Mixed, 2}, {Empty, 16}, {Mixed, 1}, {Empty, 5},
     836              {Mixed, 2}, {Empty, 1768}, {Mixed, 2}, {Empty, 29},
     837              {Mixed, 1}, {Empty, 1659}, {Mixed, 3}, {Empty, 24954},
     838              {Full, 7}, {Mixed, 1}, {Empty, 6128}},
     839             {0xffffffdb, 0x00000007, 0x7fff0000, 0xfffffffc, 0xf83fffff,
     840              0x00003000, 0xffff0000, 0x0000ffff, 0x0000ffff, 0x00003fff,
     841              0x20000000, 0xf8000380, 0x00000fe7, 0x00003c00, 0x0000ffff}};
    867842        /** Code Point Ranges for Tglg
    868843        [1700, 170c], [170e, 1714], [1735, 1736]**/
  • icGREP/icgrep-devel/icgrep/UCD/Scripts.h

    r5656 r5660  
    99 */
    1010
     11#include "PropertyAliases.h"
    1112#include "PropertyObjects.h"
    1213#include "PropertyValueAliases.h"
  • icGREP/icgrep-devel/icgrep/UCD/SentenceBreakProperty.h

    r5656 r5660  
    99 */
    1010
     11#include "PropertyAliases.h"
    1112#include "PropertyObjects.h"
    1213#include "PropertyValueAliases.h"
  • icGREP/icgrep-devel/icgrep/UCD/WordBreakProperty.h

    r5656 r5660  
    99 */
    1010
     11#include "PropertyAliases.h"
    1112#include "PropertyObjects.h"
    1213#include "PropertyValueAliases.h"
Note: See TracChangeset for help on using the changeset viewer.