local Cc, Cf, Cs, Co, Cn =
"control", "format", "surrogate", "private-use", "unassigned"
local Zs, Zl, Zp =
"space-separator", "line-separator", "paragraph-separator"
local data = {
singles = {
[0x000020] = Zs,
[0x0000A0] = Zs,
[0x0000AD] = Cf,
[0x00038B] = Cn,
[0x00038D] = Cn,
[0x0003A2] = Cn,
[0x000530] = Cn,
[0x000590] = Cn,
[0x00061C] = Cf,
[0x00061D] = Cn,
[0x0006DD] = Cf,
[0x00070E] = Cn,
[0x00070F] = Cf,
[0x00083F] = Cn,
[0x00085F] = Cn,
[0x0008B5] = Cn,
[0x0008E2] = Cf,
[0x000984] = Cn,
[0x0009A9] = Cn,
[0x0009B1] = Cn,
[0x0009DE] = Cn,
[0x000A04] = Cn,
[0x000A29] = Cn,
[0x000A31] = Cn,
[0x000A34] = Cn,
[0x000A37] = Cn,
[0x000A3D] = Cn,
[0x000A5D] = Cn,
[0x000A84] = Cn,
[0x000A8E] = Cn,
[0x000A92] = Cn,
[0x000AA9] = Cn,
[0x000AB1] = Cn,
[0x000AB4] = Cn,
[0x000AC6] = Cn,
[0x000ACA] = Cn,
[0x000B00] = Cn,
[0x000B04] = Cn,
[0x000B29] = Cn,
[0x000B31] = Cn,
[0x000B34] = Cn,
[0x000B5E] = Cn,
[0x000B84] = Cn,
[0x000B91] = Cn,
[0x000B9B] = Cn,
[0x000B9D] = Cn,
[0x000BC9] = Cn,
[0x000C0D] = Cn,
[0x000C11] = Cn,
[0x000C29] = Cn,
[0x000C45] = Cn,
[0x000C49] = Cn,
[0x000C57] = Cn,
[0x000C8D] = Cn,
[0x000C91] = Cn,
[0x000CA9] = Cn,
[0x000CB4] = Cn,
[0x000CC5] = Cn,
[0x000CC9] = Cn,
[0x000CDF] = Cn,
[0x000CF0] = Cn,
[0x000D04] = Cn,
[0x000D0D] = Cn,
[0x000D11] = Cn,
[0x000D45] = Cn,
[0x000D49] = Cn,
[0x000D84] = Cn,
[0x000DB2] = Cn,
[0x000DBC] = Cn,
[0x000DD5] = Cn,
[0x000DD7] = Cn,
[0x000E83] = Cn,
[0x000E89] = Cn,
[0x000E98] = Cn,
[0x000EA0] = Cn,
[0x000EA4] = Cn,
[0x000EA6] = Cn,
[0x000EAC] = Cn,
[0x000EBA] = Cn,
[0x000EC5] = Cn,
[0x000EC7] = Cn,
[0x000F48] = Cn,
[0x000F98] = Cn,
[0x000FBD] = Cn,
[0x000FCD] = Cn,
[0x0010C6] = Cn,
[0x001249] = Cn,
[0x001257] = Cn,
[0x001259] = Cn,
[0x001289] = Cn,
[0x0012B1] = Cn,
[0x0012BF] = Cn,
[0x0012C1] = Cn,
[0x0012D7] = Cn,
[0x001311] = Cn,
[0x001680] = Zs,
[0x00170D] = Cn,
[0x00176D] = Cn,
[0x001771] = Cn,
[0x00180E] = Cf,
[0x00180F] = Cn,
[0x00191F] = Cn,
[0x001A5F] = Cn,
[0x001DFA] = Cn,
[0x001F58] = Cn,
[0x001F5A] = Cn,
[0x001F5C] = Cn,
[0x001F5E] = Cn,
[0x001FB5] = Cn,
[0x001FC5] = Cn,
[0x001FDC] = Cn,
[0x001FF5] = Cn,
[0x001FFF] = Cn,
[0x002028] = Zl,
[0x002029] = Zp,
[0x00202F] = Zs,
[0x00205F] = Zs,
[0x002065] = Cn,
[0x00208F] = Cn,
[0x002BC9] = Cn,
[0x002BFF] = Cn,
[0x002C2F] = Cn,
[0x002C5F] = Cn,
[0x002D26] = Cn,
[0x002DA7] = Cn,
[0x002DAF] = Cn,
[0x002DB7] = Cn,
[0x002DBF] = Cn,
[0x002DC7] = Cn,
[0x002DCF] = Cn,
[0x002DD7] = Cn,
[0x002DDF] = Cn,
[0x002E9A] = Cn,
[0x003000] = Zs,
[0x003040] = Cn,
[0x003130] = Cn,
[0x00318F] = Cn,
[0x00321F] = Cn,
[0x0032FF] = Cn,
[0x00A9CE] = Cn,
[0x00A9FF] = Cn,
[0x00AB27] = Cn,
[0x00AB2F] = Cn,
[0x00FB37] = Cn,
[0x00FB3D] = Cn,
[0x00FB3F] = Cn,
[0x00FB42] = Cn,
[0x00FB45] = Cn,
[0x00FE53] = Cn,
[0x00FE67] = Cn,
[0x00FE75] = Cn,
[0x00FEFF] = Cf,
[0x00FF00] = Cn,
[0x00FFE7] = Cn,
[0x01000C] = Cn,
[0x010027] = Cn,
[0x01003B] = Cn,
[0x01003E] = Cn,
[0x01018F] = Cn,
[0x01039E] = Cn,
[0x010809] = Cn,
[0x010836] = Cn,
[0x010856] = Cn,
[0x0108F3] = Cn,
[0x010A04] = Cn,
[0x010A14] = Cn,
[0x010A18] = Cn,
[0x0110BD] = Cf,
[0x0110CD] = Cf,
[0x011135] = Cn,
[0x0111E0] = Cn,
[0x011212] = Cn,
[0x011287] = Cn,
[0x011289] = Cn,
[0x01128E] = Cn,
[0x01129E] = Cn,
[0x011304] = Cn,
[0x011329] = Cn,
[0x011331] = Cn,
[0x011334] = Cn,
[0x01133A] = Cn,
[0x01145A] = Cn,
[0x01145C] = Cn,
[0x011C09] = Cn,
[0x011C37] = Cn,
[0x011CA8] = Cn,
[0x011D07] = Cn,
[0x011D0A] = Cn,
[0x011D3B] = Cn,
[0x011D3E] = Cn,
[0x011D66] = Cn,
[0x011D69] = Cn,
[0x011D8F] = Cn,
[0x011D92] = Cn,
[0x01246F] = Cn,
[0x016A5F] = Cn,
[0x016B5A] = Cn,
[0x016B62] = Cn,
[0x01D455] = Cn,
[0x01D49D] = Cn,
[0x01D4AD] = Cn,
[0x01D4BA] = Cn,
[0x01D4BC] = Cn,
[0x01D4C4] = Cn,
[0x01D506] = Cn,
[0x01D515] = Cn,
[0x01D51D] = Cn,
[0x01D53A] = Cn,
[0x01D53F] = Cn,
[0x01D545] = Cn,
[0x01D551] = Cn,
[0x01DAA0] = Cn,
[0x01E007] = Cn,
[0x01E022] = Cn,
[0x01E025] = Cn,
[0x01EE04] = Cn,
[0x01EE20] = Cn,
[0x01EE23] = Cn,
[0x01EE28] = Cn,
[0x01EE33] = Cn,
[0x01EE38] = Cn,
[0x01EE3A] = Cn,
[0x01EE48] = Cn,
[0x01EE4A] = Cn,
[0x01EE4C] = Cn,
[0x01EE50] = Cn,
[0x01EE53] = Cn,
[0x01EE58] = Cn,
[0x01EE5A] = Cn,
[0x01EE5C] = Cn,
[0x01EE5E] = Cn,
[0x01EE60] = Cn,
[0x01EE63] = Cn,
[0x01EE6B] = Cn,
[0x01EE73] = Cn,
[0x01EE78] = Cn,
[0x01EE7D] = Cn,
[0x01EE7F] = Cn,
[0x01EE8A] = Cn,
[0x01EEA4] = Cn,
[0x01EEAA] = Cn,
[0x01F0C0] = Cn,
[0x01F0D0] = Cn,
[0x01F93F] = Cn,
[0x01F97B] = Cn,
[0x0E0001] = Cf,
};
ranges = {
{ 0x000000, 0x00001F, Cc },
{ 0x00007F, 0x00009F, Cc },
{ 0x000378, 0x000379, Cn },
{ 0x000380, 0x000383, Cn },
{ 0x000557, 0x000558, Cn },
{ 0x00058B, 0x00058C, Cn },
{ 0x0005C8, 0x0005CF, Cn },
{ 0x0005EB, 0x0005EE, Cn },
{ 0x0005F5, 0x0005FF, Cn },
{ 0x000600, 0x000605, Cf },
{ 0x00074B, 0x00074C, Cn },
{ 0x0007B2, 0x0007BF, Cn },
{ 0x0007FB, 0x0007FC, Cn },
{ 0x00082E, 0x00082F, Cn },
{ 0x00085C, 0x00085D, Cn },
{ 0x00086B, 0x00089F, Cn },
{ 0x0008BE, 0x0008D2, Cn },
{ 0x00098D, 0x00098E, Cn },
{ 0x000991, 0x000992, Cn },
{ 0x0009B3, 0x0009B5, Cn },
{ 0x0009BA, 0x0009BB, Cn },
{ 0x0009C5, 0x0009C6, Cn },
{ 0x0009C9, 0x0009CA, Cn },
{ 0x0009CF, 0x0009D6, Cn },
{ 0x0009D8, 0x0009DB, Cn },
{ 0x0009E4, 0x0009E5, Cn },
{ 0x0009FF, 0x000A00, Cn },
{ 0x000A0B, 0x000A0E, Cn },
{ 0x000A11, 0x000A12, Cn },
{ 0x000A3A, 0x000A3B, Cn },
{ 0x000A43, 0x000A46, Cn },
{ 0x000A49, 0x000A4A, Cn },
{ 0x000A4E, 0x000A50, Cn },
{ 0x000A52, 0x000A58, Cn },
{ 0x000A5F, 0x000A65, Cn },
{ 0x000A77, 0x000A80, Cn },
{ 0x000ABA, 0x000ABB, Cn },
{ 0x000ACE, 0x000ACF, Cn },
{ 0x000AD1, 0x000ADF, Cn },
{ 0x000AE4, 0x000AE5, Cn },
{ 0x000AF2, 0x000AF8, Cn },
{ 0x000B0D, 0x000B0E, Cn },
{ 0x000B11, 0x000B12, Cn },
{ 0x000B3A, 0x000B3B, Cn },
{ 0x000B45, 0x000B46, Cn },
{ 0x000B49, 0x000B4A, Cn },
{ 0x000B4E, 0x000B55, Cn },
{ 0x000B58, 0x000B5B, Cn },
{ 0x000B64, 0x000B65, Cn },
{ 0x000B78, 0x000B81, Cn },
{ 0x000B8B, 0x000B8D, Cn },
{ 0x000B96, 0x000B98, Cn },
{ 0x000BA0, 0x000BA2, Cn },
{ 0x000BA5, 0x000BA7, Cn },
{ 0x000BAB, 0x000BAD, Cn },
{ 0x000BBA, 0x000BBD, Cn },
{ 0x000BC3, 0x000BC5, Cn },
{ 0x000BCE, 0x000BCF, Cn },
{ 0x000BD1, 0x000BD6, Cn },
{ 0x000BD8, 0x000BE5, Cn },
{ 0x000BFB, 0x000BFF, Cn },
{ 0x000C3A, 0x000C3C, Cn },
{ 0x000C4E, 0x000C54, Cn },
{ 0x000C5B, 0x000C5F, Cn },
{ 0x000C64, 0x000C65, Cn },
{ 0x000C70, 0x000C77, Cn },
{ 0x000CBA, 0x000CBB, Cn },
{ 0x000CCE, 0x000CD4, Cn },
{ 0x000CD7, 0x000CDD, Cn },
{ 0x000CE4, 0x000CE5, Cn },
{ 0x000CF3, 0x000CFF, Cn },
{ 0x000D50, 0x000D53, Cn },
{ 0x000D64, 0x000D65, Cn },
{ 0x000D80, 0x000D81, Cn },
{ 0x000D97, 0x000D99, Cn },
{ 0x000DBE, 0x000DBF, Cn },
{ 0x000DC7, 0x000DC9, Cn },
{ 0x000DCB, 0x000DCE, Cn },
{ 0x000DE0, 0x000DE5, Cn },
{ 0x000DF0, 0x000DF1, Cn },
{ 0x000DF5, 0x000E00, Cn },
{ 0x000E3B, 0x000E3E, Cn },
{ 0x000E5C, 0x000E80, Cn },
{ 0x000E85, 0x000E86, Cn },
{ 0x000E8B, 0x000E8C, Cn },
{ 0x000E8E, 0x000E93, Cn },
{ 0x000EA8, 0x000EA9, Cn },
{ 0x000EBE, 0x000EBF, Cn },
{ 0x000ECE, 0x000ECF, Cn },
{ 0x000EDA, 0x000EDB, Cn },
{ 0x000EE0, 0x000EFF, Cn },
{ 0x000F6D, 0x000F70, Cn },
{ 0x000FDB, 0x000FFF, Cn },
{ 0x0010C8, 0x0010CC, Cn },
{ 0x0010CE, 0x0010CF, Cn },
{ 0x00124E, 0x00124F, Cn },
{ 0x00125E, 0x00125F, Cn },
{ 0x00128E, 0x00128F, Cn },
{ 0x0012B6, 0x0012B7, Cn },
{ 0x0012C6, 0x0012C7, Cn },
{ 0x001316, 0x001317, Cn },
{ 0x00135B, 0x00135C, Cn },
{ 0x00137D, 0x00137F, Cn },
{ 0x00139A, 0x00139F, Cn },
{ 0x0013F6, 0x0013F7, Cn },
{ 0x0013FE, 0x0013FF, Cn },
{ 0x00169D, 0x00169F, Cn },
{ 0x0016F9, 0x0016FF, Cn },
{ 0x001715, 0x00171F, Cn },
{ 0x001737, 0x00173F, Cn },
{ 0x001754, 0x00175F, Cn },
{ 0x001774, 0x00177F, Cn },
{ 0x0017DE, 0x0017DF, Cn },
{ 0x0017EA, 0x0017EF, Cn },
{ 0x0017FA, 0x0017FF, Cn },
{ 0x00181A, 0x00181F, Cn },
{ 0x001879, 0x00187F, Cn },
{ 0x0018AB, 0x0018AF, Cn },
{ 0x0018F6, 0x0018FF, Cn },
{ 0x00192C, 0x00192F, Cn },
{ 0x00193C, 0x00193F, Cn },
{ 0x001941, 0x001943, Cn },
{ 0x00196E, 0x00196F, Cn },
{ 0x001975, 0x00197F, Cn },
{ 0x0019AC, 0x0019AF, Cn },
{ 0x0019CA, 0x0019CF, Cn },
{ 0x0019DB, 0x0019DD, Cn },
{ 0x001A1C, 0x001A1D, Cn },
{ 0x001A7D, 0x001A7E, Cn },
{ 0x001A8A, 0x001A8F, Cn },
{ 0x001A9A, 0x001A9F, Cn },
{ 0x001AAE, 0x001AAF, Cn },
{ 0x001ABF, 0x001AFF, Cn },
{ 0x001B4C, 0x001B4F, Cn },
{ 0x001B7D, 0x001B7F, Cn },
{ 0x001BF4, 0x001BFB, Cn },
{ 0x001C38, 0x001C3A, Cn },
{ 0x001C4A, 0x001C4C, Cn },
{ 0x001C89, 0x001C8F, Cn },
{ 0x001CBB, 0x001CBC, Cn },
{ 0x001CC8, 0x001CCF, Cn },
{ 0x001CFA, 0x001CFF, Cn },
{ 0x001F16, 0x001F17, Cn },
{ 0x001F1E, 0x001F1F, Cn },
{ 0x001F46, 0x001F47, Cn },
{ 0x001F4E, 0x001F4F, Cn },
{ 0x001F7E, 0x001F7F, Cn },
{ 0x001FD4, 0x001FD5, Cn },
{ 0x001FF0, 0x001FF1, Cn },
{ 0x002000, 0x00200A, Zs },
{ 0x00200B, 0x00200F, Cf },
{ 0x00202A, 0x00202E, Cf },
{ 0x002060, 0x002064, Cf },
{ 0x002066, 0x00206F, Cf },
{ 0x002072, 0x002073, Cn },
{ 0x00209D, 0x00209F, Cn },
{ 0x0020C0, 0x0020CF, Cn },
{ 0x0020F1, 0x0020FF, Cn },
{ 0x00218C, 0x00218F, Cn },
{ 0x002427, 0x00243F, Cn },
{ 0x00244B, 0x00245F, Cn },
{ 0x002B74, 0x002B75, Cn },
{ 0x002B96, 0x002B97, Cn },
{ 0x002CF4, 0x002CF8, Cn },
{ 0x002D28, 0x002D2C, Cn },
{ 0x002D2E, 0x002D2F, Cn },
{ 0x002D68, 0x002D6E, Cn },
{ 0x002D71, 0x002D7E, Cn },
{ 0x002D97, 0x002D9F, Cn },
{ 0x002E4F, 0x002E7F, Cn },
{ 0x002EF4, 0x002EFF, Cn },
{ 0x002FD6, 0x002FEF, Cn },
{ 0x002FFC, 0x002FFF, Cn },
{ 0x003097, 0x003098, Cn },
{ 0x003100, 0x003104, Cn },
{ 0x0031BB, 0x0031BF, Cn },
{ 0x0031E4, 0x0031EF, Cn },
{ 0x004DB6, 0x004DBF, Cn },
{ 0x009FF0, 0x009FFF, Cn },
{ 0x00A48D, 0x00A48F, Cn },
{ 0x00A4C7, 0x00A4CF, Cn },
{ 0x00A62C, 0x00A63F, Cn },
{ 0x00A6F8, 0x00A6FF, Cn },
{ 0x00A7BA, 0x00A7F6, Cn },
{ 0x00A82C, 0x00A82F, Cn },
{ 0x00A83A, 0x00A83F, Cn },
{ 0x00A878, 0x00A87F, Cn },
{ 0x00A8C6, 0x00A8CD, Cn },
{ 0x00A8DA, 0x00A8DF, Cn },
{ 0x00A954, 0x00A95E, Cn },
{ 0x00A97D, 0x00A97F, Cn },
{ 0x00A9DA, 0x00A9DD, Cn },
{ 0x00AA37, 0x00AA3F, Cn },
{ 0x00AA4E, 0x00AA4F, Cn },
{ 0x00AA5A, 0x00AA5B, Cn },
{ 0x00AAC3, 0x00AADA, Cn },
{ 0x00AAF7, 0x00AB00, Cn },
{ 0x00AB07, 0x00AB08, Cn },
{ 0x00AB0F, 0x00AB10, Cn },
{ 0x00AB17, 0x00AB1F, Cn },
{ 0x00AB66, 0x00AB6F, Cn },
{ 0x00ABEE, 0x00ABEF, Cn },
{ 0x00ABFA, 0x00ABFF, Cn },
{ 0x00D7A4, 0x00D7AF, Cn },
{ 0x00D7C7, 0x00D7CA, Cn },
{ 0x00D7FC, 0x00D7FF, Cn },
{ 0x00D800, 0x00DFFF, Cs },
{ 0x00E000, 0x00F8FF, Co },
{ 0x00FA6E, 0x00FA6F, Cn },
{ 0x00FADA, 0x00FAFF, Cn },
{ 0x00FB07, 0x00FB12, Cn },
{ 0x00FB18, 0x00FB1C, Cn },
{ 0x00FBC2, 0x00FBD2, Cn },
{ 0x00FD40, 0x00FD4F, Cn },
{ 0x00FD90, 0x00FD91, Cn },
{ 0x00FDC8, 0x00FDEF, Cn },
{ 0x00FDFE, 0x00FDFF, Cn },
{ 0x00FE1A, 0x00FE1F, Cn },
{ 0x00FE6C, 0x00FE6F, Cn },
{ 0x00FEFD, 0x00FEFE, Cn },
{ 0x00FFBF, 0x00FFC1, Cn },
{ 0x00FFC8, 0x00FFC9, Cn },
{ 0x00FFD0, 0x00FFD1, Cn },
{ 0x00FFD8, 0x00FFD9, Cn },
{ 0x00FFDD, 0x00FFDF, Cn },
{ 0x00FFEF, 0x00FFF8, Cn },
{ 0x00FFF9, 0x00FFFB, Cf },
{ 0x00FFFE, 0x00FFFF, Cn },
{ 0x01004E, 0x01004F, Cn },
{ 0x01005E, 0x01007F, Cn },
{ 0x0100FB, 0x0100FF, Cn },
{ 0x010103, 0x010106, Cn },
{ 0x010134, 0x010136, Cn },
{ 0x01019C, 0x01019F, Cn },
{ 0x0101A1, 0x0101CF, Cn },
{ 0x0101FE, 0x01027F, Cn },
{ 0x01029D, 0x01029F, Cn },
{ 0x0102D1, 0x0102DF, Cn },
{ 0x0102FC, 0x0102FF, Cn },
{ 0x010324, 0x01032C, Cn },
{ 0x01034B, 0x01034F, Cn },
{ 0x01037B, 0x01037F, Cn },
{ 0x0103C4, 0x0103C7, Cn },
{ 0x0103D6, 0x0103FF, Cn },
{ 0x01049E, 0x01049F, Cn },
{ 0x0104AA, 0x0104AF, Cn },
{ 0x0104D4, 0x0104D7, Cn },
{ 0x0104FC, 0x0104FF, Cn },
{ 0x010528, 0x01052F, Cn },
{ 0x010564, 0x01056E, Cn },
{ 0x010570, 0x0105FF, Cn },
{ 0x010737, 0x01073F, Cn },
{ 0x010756, 0x01075F, Cn },
{ 0x010768, 0x0107FF, Cn },
{ 0x010806, 0x010807, Cn },
{ 0x010839, 0x01083B, Cn },
{ 0x01083D, 0x01083E, Cn },
{ 0x01089F, 0x0108A6, Cn },
{ 0x0108B0, 0x0108DF, Cn },
{ 0x0108F6, 0x0108FA, Cn },
{ 0x01091C, 0x01091E, Cn },
{ 0x01093A, 0x01093E, Cn },
{ 0x010940, 0x01097F, Cn },
{ 0x0109B8, 0x0109BB, Cn },
{ 0x0109D0, 0x0109D1, Cn },
{ 0x010A07, 0x010A0B, Cn },
{ 0x010A36, 0x010A37, Cn },
{ 0x010A3B, 0x010A3E, Cn },
{ 0x010A49, 0x010A4F, Cn },
{ 0x010A59, 0x010A5F, Cn },
{ 0x010AA0, 0x010ABF, Cn },
{ 0x010AE7, 0x010AEA, Cn },
{ 0x010AF7, 0x010AFF, Cn },
{ 0x010B36, 0x010B38, Cn },
{ 0x010B56, 0x010B57, Cn },
{ 0x010B73, 0x010B77, Cn },
{ 0x010B92, 0x010B98, Cn },
{ 0x010B9D, 0x010BA8, Cn },
{ 0x010BB0, 0x010BFF, Cn },
{ 0x010C49, 0x010C7F, Cn },
{ 0x010CB3, 0x010CBF, Cn },
{ 0x010CF3, 0x010CF9, Cn },
{ 0x010D28, 0x010D2F, Cn },
{ 0x010D3A, 0x010E5F, Cn },
{ 0x010E7F, 0x010EFF, Cn },
{ 0x010F28, 0x010F2F, Cn },
{ 0x010F5A, 0x010FFF, Cn },
{ 0x01104E, 0x011051, Cn },
{ 0x011070, 0x01107E, Cn },
{ 0x0110C2, 0x0110CC, Cn },
{ 0x0110CE, 0x0110CF, Cn },
{ 0x0110E9, 0x0110EF, Cn },
{ 0x0110FA, 0x0110FF, Cn },
{ 0x011147, 0x01114F, Cn },
{ 0x011177, 0x01117F, Cn },
{ 0x0111CE, 0x0111CF, Cn },
{ 0x0111F5, 0x0111FF, Cn },
{ 0x01123F, 0x01127F, Cn },
{ 0x0112AA, 0x0112AF, Cn },
{ 0x0112EB, 0x0112EF, Cn },
{ 0x0112FA, 0x0112FF, Cn },
{ 0x01130D, 0x01130E, Cn },
{ 0x011311, 0x011312, Cn },
{ 0x011345, 0x011346, Cn },
{ 0x011349, 0x01134A, Cn },
{ 0x01134E, 0x01134F, Cn },
{ 0x011351, 0x011356, Cn },
{ 0x011358, 0x01135C, Cn },
{ 0x011364, 0x011365, Cn },
{ 0x01136D, 0x01136F, Cn },
{ 0x011375, 0x0113FF, Cn },
{ 0x01145F, 0x01147F, Cn },
{ 0x0114C8, 0x0114CF, Cn },
{ 0x0114DA, 0x01157F, Cn },
{ 0x0115B6, 0x0115B7, Cn },
{ 0x0115DE, 0x0115FF, Cn },
{ 0x011645, 0x01164F, Cn },
{ 0x01165A, 0x01165F, Cn },
{ 0x01166D, 0x01167F, Cn },
{ 0x0116B8, 0x0116BF, Cn },
{ 0x0116CA, 0x0116FF, Cn },
{ 0x01171B, 0x01171C, Cn },
{ 0x01172C, 0x01172F, Cn },
{ 0x011740, 0x0117FF, Cn },
{ 0x01183C, 0x01189F, Cn },
{ 0x0118F3, 0x0118FE, Cn },
{ 0x011900, 0x0119FF, Cn },
{ 0x011A48, 0x011A4F, Cn },
{ 0x011A84, 0x011A85, Cn },
{ 0x011AA3, 0x011ABF, Cn },
{ 0x011AF9, 0x011BFF, Cn },
{ 0x011C46, 0x011C4F, Cn },
{ 0x011C6D, 0x011C6F, Cn },
{ 0x011C90, 0x011C91, Cn },
{ 0x011CB7, 0x011CFF, Cn },
{ 0x011D37, 0x011D39, Cn },
{ 0x011D48, 0x011D4F, Cn },
{ 0x011D5A, 0x011D5F, Cn },
{ 0x011D99, 0x011D9F, Cn },
{ 0x011DAA, 0x011EDF, Cn },
{ 0x011EF9, 0x011FFF, Cn },
{ 0x01239A, 0x0123FF, Cn },
{ 0x012475, 0x01247F, Cn },
{ 0x012544, 0x012FFF, Cn },
{ 0x01342F, 0x0143FF, Cn },
{ 0x014647, 0x0167FF, Cn },
{ 0x016A39, 0x016A3F, Cn },
{ 0x016A6A, 0x016A6D, Cn },
{ 0x016A70, 0x016ACF, Cn },
{ 0x016AEE, 0x016AEF, Cn },
{ 0x016AF6, 0x016AFF, Cn },
{ 0x016B46, 0x016B4F, Cn },
{ 0x016B78, 0x016B7C, Cn },
{ 0x016B90, 0x016E3F, Cn },
{ 0x016E9B, 0x016EFF, Cn },
{ 0x016F45, 0x016F4F, Cn },
{ 0x016F7F, 0x016F8E, Cn },
{ 0x016FA0, 0x016FDF, Cn },
{ 0x016FE2, 0x016FFF, Cn },
{ 0x0187F2, 0x0187FF, Cn },
{ 0x018AF3, 0x01AFFF, Cn },
{ 0x01B11F, 0x01B16F, Cn },
{ 0x01B2FC, 0x01BBFF, Cn },
{ 0x01BC6B, 0x01BC6F, Cn },
{ 0x01BC7D, 0x01BC7F, Cn },
{ 0x01BC89, 0x01BC8F, Cn },
{ 0x01BC9A, 0x01BC9B, Cn },
{ 0x01BCA0, 0x01BCA3, Cf },
{ 0x01BCA4, 0x01CFFF, Cn },
{ 0x01D0F6, 0x01D0FF, Cn },
{ 0x01D127, 0x01D128, Cn },
{ 0x01D173, 0x01D17A, Cf },
{ 0x01D1E9, 0x01D1FF, Cn },
{ 0x01D246, 0x01D2DF, Cn },
{ 0x01D2F4, 0x01D2FF, Cn },
{ 0x01D357, 0x01D35F, Cn },
{ 0x01D379, 0x01D3FF, Cn },
{ 0x01D4A0, 0x01D4A1, Cn },
{ 0x01D4A3, 0x01D4A4, Cn },
{ 0x01D4A7, 0x01D4A8, Cn },
{ 0x01D50B, 0x01D50C, Cn },
{ 0x01D547, 0x01D549, Cn },
{ 0x01D6A6, 0x01D6A7, Cn },
{ 0x01D7CC, 0x01D7CD, Cn },
{ 0x01DA8C, 0x01DA9A, Cn },
{ 0x01DAB0, 0x01DFFF, Cn },
{ 0x01E019, 0x01E01A, Cn },
{ 0x01E02B, 0x01E7FF, Cn },
{ 0x01E8C5, 0x01E8C6, Cn },
{ 0x01E8D7, 0x01E8FF, Cn },
{ 0x01E94B, 0x01E94F, Cn },
{ 0x01E95A, 0x01E95D, Cn },
{ 0x01E960, 0x01EC70, Cn },
{ 0x01ECB5, 0x01EDFF, Cn },
{ 0x01EE25, 0x01EE26, Cn },
{ 0x01EE3C, 0x01EE41, Cn },
{ 0x01EE43, 0x01EE46, Cn },
{ 0x01EE55, 0x01EE56, Cn },
{ 0x01EE65, 0x01EE66, Cn },
{ 0x01EE9C, 0x01EEA0, Cn },
{ 0x01EEBC, 0x01EEEF, Cn },
{ 0x01EEF2, 0x01EFFF, Cn },
{ 0x01F02C, 0x01F02F, Cn },
{ 0x01F094, 0x01F09F, Cn },
{ 0x01F0AF, 0x01F0B0, Cn },
{ 0x01F0F6, 0x01F0FF, Cn },
{ 0x01F10D, 0x01F10F, Cn },
{ 0x01F16C, 0x01F16F, Cn },
{ 0x01F1AD, 0x01F1E5, Cn },
{ 0x01F203, 0x01F20F, Cn },
{ 0x01F23C, 0x01F23F, Cn },
{ 0x01F249, 0x01F24F, Cn },
{ 0x01F252, 0x01F25F, Cn },
{ 0x01F266, 0x01F2FF, Cn },
{ 0x01F6D5, 0x01F6DF, Cn },
{ 0x01F6ED, 0x01F6EF, Cn },
{ 0x01F6FA, 0x01F6FF, Cn },
{ 0x01F774, 0x01F77F, Cn },
{ 0x01F7D9, 0x01F7FF, Cn },
{ 0x01F80C, 0x01F80F, Cn },
{ 0x01F848, 0x01F84F, Cn },
{ 0x01F85A, 0x01F85F, Cn },
{ 0x01F888, 0x01F88F, Cn },
{ 0x01F8AE, 0x01F8FF, Cn },
{ 0x01F90C, 0x01F90F, Cn },
{ 0x01F971, 0x01F972, Cn },
{ 0x01F977, 0x01F979, Cn },
{ 0x01F9A3, 0x01F9AF, Cn },
{ 0x01F9BA, 0x01F9BF, Cn },
{ 0x01F9C3, 0x01F9CF, Cn },
{ 0x01FA00, 0x01FA5F, Cn },
{ 0x01FA6E, 0x01FFFF, Cn },
{ 0x02A6D7, 0x02A6FF, Cn },
{ 0x02B735, 0x02B73F, Cn },
{ 0x02B81E, 0x02B81F, Cn },
{ 0x02CEA2, 0x02CEAF, Cn },
{ 0x02EBE1, 0x02F7FF, Cn },
{ 0x02FA1E, 0x0E0000, Cn },
{ 0x0E0002, 0x0E001F, Cn },
{ 0x0E0020, 0x0E007F, Cf },
{ 0x0E0080, 0x0E00FF, Cn },
{ 0x0E01F0, 0x0EFFFF, Cn },
{ 0x0F0000, 0x0FFFFD, Co },
{ 0x0FFFFE, 0x0FFFFF, Cn },
{ 0x100000, 0x10FFFD, Co },
{ 0x10FFFE, 0x10FFFF, Cn },
};
}
-- Needed for binary search.
data.ranges.length = #data.ranges
return data