200 #include "qplatformdefs.h" 215 #if defined QT3_SUPPORT 218 #ifndef QT_BOOTSTRAPPED 221 #if defined(Q_OS_WINCE_WM) 222 #pragma optimize("g", off) 225 #include "private/qorderedmutexlocker_p.h" 267 #define Q_MAXINT ((uint)((uint)(-1)>>1)) 276 #define QURL_SETFLAG(a, b) { (a) |= (b); } 277 #define QURL_UNSETFLAG(a, b) { (a) &= ~(b); } 278 #define QURL_HASFLAG(a, b) (((a) & (b)) == (b)) 289 inline void setParams(
const char *source,
const char *message,
char expected,
char found)
293 _expected = expected;
326 bool setUrl(
const QString &url);
329 void ensureEncodedParts()
const;
331 void setAuthority(
const QString &auth);
332 void setUserInfo(
const QString &userInfo);
334 void setEncodedAuthority(
const QByteArray &authority);
341 void queryItem(
int pos,
int *value,
int *
end);
348 void validate()
const;
349 void parse(
ParseOptions parseOptions = ParseAndSet)
const;
385 HostCanonicalized = 0x8
407 if ((ch >=
'0' && ch <=
'9') || (ch >=
'a' && ch <=
'f') || (ch >=
'A' && ch <=
'F')) {
418 const char *ptrBackup = *
ptr;
442 case ':':
case '/':
case '?':
case '#':
443 case '[':
case ']':
case '@':
459 case '!':
case '$':
case '&':
case '\'':
460 case '(':
case ')':
case '*':
case '+':
461 case ',':
case ';':
case '=':
473 if ((ch >=
'a' && ch <=
'z') || (ch >=
'A' && ch <=
'Z')
474 || (ch >=
'0' && ch <=
'9')
475 || ch ==
'-' || ch ==
'.' || ch ==
'_' || ch ==
'~') {
486 bool isSchemeValid =
true;
491 if ((ch >=
'a' && ch <=
'z') || (ch >=
'A' && ch <=
'Z')) {
493 }
else if ((ch >=
'0' && ch <=
'9') || ch ==
'+' || ch ==
'-' || ch ==
'.') {
495 isSchemeValid =
false;
505 isSchemeValid =
true;
512 return isSchemeValid;
521 const char *ptrBackup = *
ptr;
569 const char *ptrBackup = *
ptr;
572 if (c1 < '0' || c1 >
'9')
582 if (c2 < '0' || c2 >
'9')
588 if (c3 < '0' || c3 >
'9')
593 if (c1 >=
'2' && c2 >=
'5' && c3 >
'5') {
606 const char *ptrBackup = *
ptr;
613 for (
int i = 0; i < 3; ++i) {
614 char ch = *((*ptr)++);
633 const char *ptrBackup = *
ptr;
634 if (
_h16(ptr) && *((*ptr)++) ==
':' &&
_h16(ptr))
652 const char *ptrBackup = *
ptr;
655 int leftHexColons = 0;
657 int rightHexColons = 0;
672 if (leftHexColons == 6 &&
_ls32(ptr)) {
678 if (leftHexColons == 0 && *((*ptr)++) !=
':') {
684 if (*((*ptr)++) !=
':') {
690 bool ls32WasRead =
false;
692 const char *tmpBackup = *
ptr;
699 if (rightHexColons != 0) {
717 const char *pb = *
ptr;
725 if (rightHexColons == 1)
734 if (canBeCase == -1) {
738 if (!ls32WasRead && rightHexColons >= 2)
741 canBeCase = 7 - rightHexColons;
745 if (leftHexColons > (canBeCase - 2)) {
756 const char *ptrBackup = *
ptr;
793 if (ch && ch !=
':' && ch !=
'/') {
795 *ptr = parseData->
host;
815 }
else if (**ptr ==
':') {
838 const char *ptrBackup = *
ptr;
839 char ch = *((*ptr)++);
840 if (ch < '0' || ch >
'9') {
859 _host(ptr, parseData);
874 case '!':
case '$':
case '&':
case '\'':
case '(':
case ')':
case '*':
875 case '+':
case ',':
case ';':
case '=':
case ':':
case '@':
876 case '-':
case '.':
case '_':
case '~':
883 if ((c >=
'a' && c <=
'z') || (c >=
'A' && c <=
'Z') || (c >=
'0' && c <=
'9')) {
953 const char *ptrBackup = *
ptr;
954 const char *pathStart = 0;
955 if (*((*ptr)++) ==
'/' && *((*ptr)++) ==
'/') {
967 parseData->
path = pathStart;
978 }
else if (**ptr ==
'/' || **ptr ==
'?') {
994 }
else if (**ptr ==
'/' || **ptr ==
'?' || **ptr ==
'#') {
1009 {
return one < other.
uc; }
1012 {
return one.
uc < other; }
1041 { 0x00B5, { 0x03BC, 0x0000, 0x0000, 0x0000 } },
1042 { 0x00C0, { 0x00E0, 0x0000, 0x0000, 0x0000 } },
1043 { 0x00C1, { 0x00E1, 0x0000, 0x0000, 0x0000 } },
1044 { 0x00C2, { 0x00E2, 0x0000, 0x0000, 0x0000 } },
1045 { 0x00C3, { 0x00E3, 0x0000, 0x0000, 0x0000 } },
1046 { 0x00C4, { 0x00E4, 0x0000, 0x0000, 0x0000 } },
1047 { 0x00C5, { 0x00E5, 0x0000, 0x0000, 0x0000 } },
1048 { 0x00C6, { 0x00E6, 0x0000, 0x0000, 0x0000 } },
1049 { 0x00C7, { 0x00E7, 0x0000, 0x0000, 0x0000 } },
1050 { 0x00C8, { 0x00E8, 0x0000, 0x0000, 0x0000 } },
1051 { 0x00C9, { 0x00E9, 0x0000, 0x0000, 0x0000 } },
1052 { 0x00CA, { 0x00EA, 0x0000, 0x0000, 0x0000 } },
1053 { 0x00CB, { 0x00EB, 0x0000, 0x0000, 0x0000 } },
1054 { 0x00CC, { 0x00EC, 0x0000, 0x0000, 0x0000 } },
1055 { 0x00CD, { 0x00ED, 0x0000, 0x0000, 0x0000 } },
1056 { 0x00CE, { 0x00EE, 0x0000, 0x0000, 0x0000 } },
1057 { 0x00CF, { 0x00EF, 0x0000, 0x0000, 0x0000 } },
1058 { 0x00D0, { 0x00F0, 0x0000, 0x0000, 0x0000 } },
1059 { 0x00D1, { 0x00F1, 0x0000, 0x0000, 0x0000 } },
1060 { 0x00D2, { 0x00F2, 0x0000, 0x0000, 0x0000 } },
1061 { 0x00D3, { 0x00F3, 0x0000, 0x0000, 0x0000 } },
1062 { 0x00D4, { 0x00F4, 0x0000, 0x0000, 0x0000 } },
1063 { 0x00D5, { 0x00F5, 0x0000, 0x0000, 0x0000 } },
1064 { 0x00D6, { 0x00F6, 0x0000, 0x0000, 0x0000 } },
1065 { 0x00D8, { 0x00F8, 0x0000, 0x0000, 0x0000 } },
1066 { 0x00D9, { 0x00F9, 0x0000, 0x0000, 0x0000 } },
1067 { 0x00DA, { 0x00FA, 0x0000, 0x0000, 0x0000 } },
1068 { 0x00DB, { 0x00FB, 0x0000, 0x0000, 0x0000 } },
1069 { 0x00DC, { 0x00FC, 0x0000, 0x0000, 0x0000 } },
1070 { 0x00DD, { 0x00FD, 0x0000, 0x0000, 0x0000 } },
1071 { 0x00DE, { 0x00FE, 0x0000, 0x0000, 0x0000 } },
1072 { 0x00DF, { 0x0073, 0x0073, 0x0000, 0x0000 } },
1073 { 0x0100, { 0x0101, 0x0000, 0x0000, 0x0000 } },
1074 { 0x0102, { 0x0103, 0x0000, 0x0000, 0x0000 } },
1075 { 0x0104, { 0x0105, 0x0000, 0x0000, 0x0000 } },
1076 { 0x0106, { 0x0107, 0x0000, 0x0000, 0x0000 } },
1077 { 0x0108, { 0x0109, 0x0000, 0x0000, 0x0000 } },
1078 { 0x010A, { 0x010B, 0x0000, 0x0000, 0x0000 } },
1079 { 0x010C, { 0x010D, 0x0000, 0x0000, 0x0000 } },
1080 { 0x010E, { 0x010F, 0x0000, 0x0000, 0x0000 } },
1081 { 0x0110, { 0x0111, 0x0000, 0x0000, 0x0000 } },
1082 { 0x0112, { 0x0113, 0x0000, 0x0000, 0x0000 } },
1083 { 0x0114, { 0x0115, 0x0000, 0x0000, 0x0000 } },
1084 { 0x0116, { 0x0117, 0x0000, 0x0000, 0x0000 } },
1085 { 0x0118, { 0x0119, 0x0000, 0x0000, 0x0000 } },
1086 { 0x011A, { 0x011B, 0x0000, 0x0000, 0x0000 } },
1087 { 0x011C, { 0x011D, 0x0000, 0x0000, 0x0000 } },
1088 { 0x011E, { 0x011F, 0x0000, 0x0000, 0x0000 } },
1089 { 0x0120, { 0x0121, 0x0000, 0x0000, 0x0000 } },
1090 { 0x0122, { 0x0123, 0x0000, 0x0000, 0x0000 } },
1091 { 0x0124, { 0x0125, 0x0000, 0x0000, 0x0000 } },
1092 { 0x0126, { 0x0127, 0x0000, 0x0000, 0x0000 } },
1093 { 0x0128, { 0x0129, 0x0000, 0x0000, 0x0000 } },
1094 { 0x012A, { 0x012B, 0x0000, 0x0000, 0x0000 } },
1095 { 0x012C, { 0x012D, 0x0000, 0x0000, 0x0000 } },
1096 { 0x012E, { 0x012F, 0x0000, 0x0000, 0x0000 } },
1097 { 0x0130, { 0x0069, 0x0307, 0x0000, 0x0000 } },
1098 { 0x0132, { 0x0133, 0x0000, 0x0000, 0x0000 } },
1099 { 0x0134, { 0x0135, 0x0000, 0x0000, 0x0000 } },
1100 { 0x0136, { 0x0137, 0x0000, 0x0000, 0x0000 } },
1101 { 0x0139, { 0x013A, 0x0000, 0x0000, 0x0000 } },
1102 { 0x013B, { 0x013C, 0x0000, 0x0000, 0x0000 } },
1103 { 0x013D, { 0x013E, 0x0000, 0x0000, 0x0000 } },
1104 { 0x013F, { 0x0140, 0x0000, 0x0000, 0x0000 } },
1105 { 0x0141, { 0x0142, 0x0000, 0x0000, 0x0000 } },
1106 { 0x0143, { 0x0144, 0x0000, 0x0000, 0x0000 } },
1107 { 0x0145, { 0x0146, 0x0000, 0x0000, 0x0000 } },
1108 { 0x0147, { 0x0148, 0x0000, 0x0000, 0x0000 } },
1109 { 0x0149, { 0x02BC, 0x006E, 0x0000, 0x0000 } },
1110 { 0x014A, { 0x014B, 0x0000, 0x0000, 0x0000 } },
1111 { 0x014C, { 0x014D, 0x0000, 0x0000, 0x0000 } },
1112 { 0x014E, { 0x014F, 0x0000, 0x0000, 0x0000 } },
1113 { 0x0150, { 0x0151, 0x0000, 0x0000, 0x0000 } },
1114 { 0x0152, { 0x0153, 0x0000, 0x0000, 0x0000 } },
1115 { 0x0154, { 0x0155, 0x0000, 0x0000, 0x0000 } },
1116 { 0x0156, { 0x0157, 0x0000, 0x0000, 0x0000 } },
1117 { 0x0158, { 0x0159, 0x0000, 0x0000, 0x0000 } },
1118 { 0x015A, { 0x015B, 0x0000, 0x0000, 0x0000 } },
1119 { 0x015C, { 0x015D, 0x0000, 0x0000, 0x0000 } },
1120 { 0x015E, { 0x015F, 0x0000, 0x0000, 0x0000 } },
1121 { 0x0160, { 0x0161, 0x0000, 0x0000, 0x0000 } },
1122 { 0x0162, { 0x0163, 0x0000, 0x0000, 0x0000 } },
1123 { 0x0164, { 0x0165, 0x0000, 0x0000, 0x0000 } },
1124 { 0x0166, { 0x0167, 0x0000, 0x0000, 0x0000 } },
1125 { 0x0168, { 0x0169, 0x0000, 0x0000, 0x0000 } },
1126 { 0x016A, { 0x016B, 0x0000, 0x0000, 0x0000 } },
1127 { 0x016C, { 0x016D, 0x0000, 0x0000, 0x0000 } },
1128 { 0x016E, { 0x016F, 0x0000, 0x0000, 0x0000 } },
1129 { 0x0170, { 0x0171, 0x0000, 0x0000, 0x0000 } },
1130 { 0x0172, { 0x0173, 0x0000, 0x0000, 0x0000 } },
1131 { 0x0174, { 0x0175, 0x0000, 0x0000, 0x0000 } },
1132 { 0x0176, { 0x0177, 0x0000, 0x0000, 0x0000 } },
1133 { 0x0178, { 0x00FF, 0x0000, 0x0000, 0x0000 } },
1134 { 0x0179, { 0x017A, 0x0000, 0x0000, 0x0000 } },
1135 { 0x017B, { 0x017C, 0x0000, 0x0000, 0x0000 } },
1136 { 0x017D, { 0x017E, 0x0000, 0x0000, 0x0000 } },
1137 { 0x017F, { 0x0073, 0x0000, 0x0000, 0x0000 } },
1138 { 0x0181, { 0x0253, 0x0000, 0x0000, 0x0000 } },
1139 { 0x0182, { 0x0183, 0x0000, 0x0000, 0x0000 } },
1140 { 0x0184, { 0x0185, 0x0000, 0x0000, 0x0000 } },
1141 { 0x0186, { 0x0254, 0x0000, 0x0000, 0x0000 } },
1142 { 0x0187, { 0x0188, 0x0000, 0x0000, 0x0000 } },
1143 { 0x0189, { 0x0256, 0x0000, 0x0000, 0x0000 } },
1144 { 0x018A, { 0x0257, 0x0000, 0x0000, 0x0000 } },
1145 { 0x018B, { 0x018C, 0x0000, 0x0000, 0x0000 } },
1146 { 0x018E, { 0x01DD, 0x0000, 0x0000, 0x0000 } },
1147 { 0x018F, { 0x0259, 0x0000, 0x0000, 0x0000 } },
1148 { 0x0190, { 0x025B, 0x0000, 0x0000, 0x0000 } },
1149 { 0x0191, { 0x0192, 0x0000, 0x0000, 0x0000 } },
1150 { 0x0193, { 0x0260, 0x0000, 0x0000, 0x0000 } },
1151 { 0x0194, { 0x0263, 0x0000, 0x0000, 0x0000 } },
1152 { 0x0196, { 0x0269, 0x0000, 0x0000, 0x0000 } },
1153 { 0x0197, { 0x0268, 0x0000, 0x0000, 0x0000 } },
1154 { 0x0198, { 0x0199, 0x0000, 0x0000, 0x0000 } },
1155 { 0x019C, { 0x026F, 0x0000, 0x0000, 0x0000 } },
1156 { 0x019D, { 0x0272, 0x0000, 0x0000, 0x0000 } },
1157 { 0x019F, { 0x0275, 0x0000, 0x0000, 0x0000 } },
1158 { 0x01A0, { 0x01A1, 0x0000, 0x0000, 0x0000 } },
1159 { 0x01A2, { 0x01A3, 0x0000, 0x0000, 0x0000 } },
1160 { 0x01A4, { 0x01A5, 0x0000, 0x0000, 0x0000 } },
1161 { 0x01A6, { 0x0280, 0x0000, 0x0000, 0x0000 } },
1162 { 0x01A7, { 0x01A8, 0x0000, 0x0000, 0x0000 } },
1163 { 0x01A9, { 0x0283, 0x0000, 0x0000, 0x0000 } },
1164 { 0x01AC, { 0x01AD, 0x0000, 0x0000, 0x0000 } },
1165 { 0x01AE, { 0x0288, 0x0000, 0x0000, 0x0000 } },
1166 { 0x01AF, { 0x01B0, 0x0000, 0x0000, 0x0000 } },
1167 { 0x01B1, { 0x028A, 0x0000, 0x0000, 0x0000 } },
1168 { 0x01B2, { 0x028B, 0x0000, 0x0000, 0x0000 } },
1169 { 0x01B3, { 0x01B4, 0x0000, 0x0000, 0x0000 } },
1170 { 0x01B5, { 0x01B6, 0x0000, 0x0000, 0x0000 } },
1171 { 0x01B7, { 0x0292, 0x0000, 0x0000, 0x0000 } },
1172 { 0x01B8, { 0x01B9, 0x0000, 0x0000, 0x0000 } },
1173 { 0x01BC, { 0x01BD, 0x0000, 0x0000, 0x0000 } },
1174 { 0x01C4, { 0x01C6, 0x0000, 0x0000, 0x0000 } },
1175 { 0x01C5, { 0x01C6, 0x0000, 0x0000, 0x0000 } },
1176 { 0x01C7, { 0x01C9, 0x0000, 0x0000, 0x0000 } },
1177 { 0x01C8, { 0x01C9, 0x0000, 0x0000, 0x0000 } },
1178 { 0x01CA, { 0x01CC, 0x0000, 0x0000, 0x0000 } },
1179 { 0x01CB, { 0x01CC, 0x0000, 0x0000, 0x0000 } },
1180 { 0x01CD, { 0x01CE, 0x0000, 0x0000, 0x0000 } },
1181 { 0x01CF, { 0x01D0, 0x0000, 0x0000, 0x0000 } },
1182 { 0x01D1, { 0x01D2, 0x0000, 0x0000, 0x0000 } },
1183 { 0x01D3, { 0x01D4, 0x0000, 0x0000, 0x0000 } },
1184 { 0x01D5, { 0x01D6, 0x0000, 0x0000, 0x0000 } },
1185 { 0x01D7, { 0x01D8, 0x0000, 0x0000, 0x0000 } },
1186 { 0x01D9, { 0x01DA, 0x0000, 0x0000, 0x0000 } },
1187 { 0x01DB, { 0x01DC, 0x0000, 0x0000, 0x0000 } },
1188 { 0x01DE, { 0x01DF, 0x0000, 0x0000, 0x0000 } },
1189 { 0x01E0, { 0x01E1, 0x0000, 0x0000, 0x0000 } },
1190 { 0x01E2, { 0x01E3, 0x0000, 0x0000, 0x0000 } },
1191 { 0x01E4, { 0x01E5, 0x0000, 0x0000, 0x0000 } },
1192 { 0x01E6, { 0x01E7, 0x0000, 0x0000, 0x0000 } },
1193 { 0x01E8, { 0x01E9, 0x0000, 0x0000, 0x0000 } },
1194 { 0x01EA, { 0x01EB, 0x0000, 0x0000, 0x0000 } },
1195 { 0x01EC, { 0x01ED, 0x0000, 0x0000, 0x0000 } },
1196 { 0x01EE, { 0x01EF, 0x0000, 0x0000, 0x0000 } },
1197 { 0x01F0, { 0x006A, 0x030C, 0x0000, 0x0000 } },
1198 { 0x01F1, { 0x01F3, 0x0000, 0x0000, 0x0000 } },
1199 { 0x01F2, { 0x01F3, 0x0000, 0x0000, 0x0000 } },
1200 { 0x01F4, { 0x01F5, 0x0000, 0x0000, 0x0000 } },
1201 { 0x01F6, { 0x0195, 0x0000, 0x0000, 0x0000 } },
1202 { 0x01F7, { 0x01BF, 0x0000, 0x0000, 0x0000 } },
1203 { 0x01F8, { 0x01F9, 0x0000, 0x0000, 0x0000 } },
1204 { 0x01FA, { 0x01FB, 0x0000, 0x0000, 0x0000 } },
1205 { 0x01FC, { 0x01FD, 0x0000, 0x0000, 0x0000 } },
1206 { 0x01FE, { 0x01FF, 0x0000, 0x0000, 0x0000 } },
1207 { 0x0200, { 0x0201, 0x0000, 0x0000, 0x0000 } },
1208 { 0x0202, { 0x0203, 0x0000, 0x0000, 0x0000 } },
1209 { 0x0204, { 0x0205, 0x0000, 0x0000, 0x0000 } },
1210 { 0x0206, { 0x0207, 0x0000, 0x0000, 0x0000 } },
1211 { 0x0208, { 0x0209, 0x0000, 0x0000, 0x0000 } },
1212 { 0x020A, { 0x020B, 0x0000, 0x0000, 0x0000 } },
1213 { 0x020C, { 0x020D, 0x0000, 0x0000, 0x0000 } },
1214 { 0x020E, { 0x020F, 0x0000, 0x0000, 0x0000 } },
1215 { 0x0210, { 0x0211, 0x0000, 0x0000, 0x0000 } },
1216 { 0x0212, { 0x0213, 0x0000, 0x0000, 0x0000 } },
1217 { 0x0214, { 0x0215, 0x0000, 0x0000, 0x0000 } },
1218 { 0x0216, { 0x0217, 0x0000, 0x0000, 0x0000 } },
1219 { 0x0218, { 0x0219, 0x0000, 0x0000, 0x0000 } },
1220 { 0x021A, { 0x021B, 0x0000, 0x0000, 0x0000 } },
1221 { 0x021C, { 0x021D, 0x0000, 0x0000, 0x0000 } },
1222 { 0x021E, { 0x021F, 0x0000, 0x0000, 0x0000 } },
1223 { 0x0220, { 0x019E, 0x0000, 0x0000, 0x0000 } },
1224 { 0x0222, { 0x0223, 0x0000, 0x0000, 0x0000 } },
1225 { 0x0224, { 0x0225, 0x0000, 0x0000, 0x0000 } },
1226 { 0x0226, { 0x0227, 0x0000, 0x0000, 0x0000 } },
1227 { 0x0228, { 0x0229, 0x0000, 0x0000, 0x0000 } },
1228 { 0x022A, { 0x022B, 0x0000, 0x0000, 0x0000 } },
1229 { 0x022C, { 0x022D, 0x0000, 0x0000, 0x0000 } },
1230 { 0x022E, { 0x022F, 0x0000, 0x0000, 0x0000 } },
1231 { 0x0230, { 0x0231, 0x0000, 0x0000, 0x0000 } },
1232 { 0x0232, { 0x0233, 0x0000, 0x0000, 0x0000 } },
1233 { 0x0345, { 0x03B9, 0x0000, 0x0000, 0x0000 } },
1234 { 0x037A, { 0x0020, 0x03B9, 0x0000, 0x0000 } },
1235 { 0x0386, { 0x03AC, 0x0000, 0x0000, 0x0000 } },
1236 { 0x0388, { 0x03AD, 0x0000, 0x0000, 0x0000 } },
1237 { 0x0389, { 0x03AE, 0x0000, 0x0000, 0x0000 } },
1238 { 0x038A, { 0x03AF, 0x0000, 0x0000, 0x0000 } },
1239 { 0x038C, { 0x03CC, 0x0000, 0x0000, 0x0000 } },
1240 { 0x038E, { 0x03CD, 0x0000, 0x0000, 0x0000 } },
1241 { 0x038F, { 0x03CE, 0x0000, 0x0000, 0x0000 } },
1242 { 0x0390, { 0x03B9, 0x0308, 0x0301, 0x0000 } },
1243 { 0x0391, { 0x03B1, 0x0000, 0x0000, 0x0000 } },
1244 { 0x0392, { 0x03B2, 0x0000, 0x0000, 0x0000 } },
1245 { 0x0393, { 0x03B3, 0x0000, 0x0000, 0x0000 } },
1246 { 0x0394, { 0x03B4, 0x0000, 0x0000, 0x0000 } },
1247 { 0x0395, { 0x03B5, 0x0000, 0x0000, 0x0000 } },
1248 { 0x0396, { 0x03B6, 0x0000, 0x0000, 0x0000 } },
1249 { 0x0397, { 0x03B7, 0x0000, 0x0000, 0x0000 } },
1250 { 0x0398, { 0x03B8, 0x0000, 0x0000, 0x0000 } },
1251 { 0x0399, { 0x03B9, 0x0000, 0x0000, 0x0000 } },
1252 { 0x039A, { 0x03BA, 0x0000, 0x0000, 0x0000 } },
1253 { 0x039B, { 0x03BB, 0x0000, 0x0000, 0x0000 } },
1254 { 0x039C, { 0x03BC, 0x0000, 0x0000, 0x0000 } },
1255 { 0x039D, { 0x03BD, 0x0000, 0x0000, 0x0000 } },
1256 { 0x039E, { 0x03BE, 0x0000, 0x0000, 0x0000 } },
1257 { 0x039F, { 0x03BF, 0x0000, 0x0000, 0x0000 } },
1258 { 0x03A0, { 0x03C0, 0x0000, 0x0000, 0x0000 } },
1259 { 0x03A1, { 0x03C1, 0x0000, 0x0000, 0x0000 } },
1260 { 0x03A3, { 0x03C3, 0x0000, 0x0000, 0x0000 } },
1261 { 0x03A4, { 0x03C4, 0x0000, 0x0000, 0x0000 } },
1262 { 0x03A5, { 0x03C5, 0x0000, 0x0000, 0x0000 } },
1263 { 0x03A6, { 0x03C6, 0x0000, 0x0000, 0x0000 } },
1264 { 0x03A7, { 0x03C7, 0x0000, 0x0000, 0x0000 } },
1265 { 0x03A8, { 0x03C8, 0x0000, 0x0000, 0x0000 } },
1266 { 0x03A9, { 0x03C9, 0x0000, 0x0000, 0x0000 } },
1267 { 0x03AA, { 0x03CA, 0x0000, 0x0000, 0x0000 } },
1268 { 0x03AB, { 0x03CB, 0x0000, 0x0000, 0x0000 } },
1269 { 0x03B0, { 0x03C5, 0x0308, 0x0301, 0x0000 } },
1270 { 0x03C2, { 0x03C3, 0x0000, 0x0000, 0x0000 } },
1271 { 0x03D0, { 0x03B2, 0x0000, 0x0000, 0x0000 } },
1272 { 0x03D1, { 0x03B8, 0x0000, 0x0000, 0x0000 } },
1273 { 0x03D2, { 0x03C5, 0x0000, 0x0000, 0x0000 } },
1274 { 0x03D3, { 0x03CD, 0x0000, 0x0000, 0x0000 } },
1275 { 0x03D4, { 0x03CB, 0x0000, 0x0000, 0x0000 } },
1276 { 0x03D5, { 0x03C6, 0x0000, 0x0000, 0x0000 } },
1277 { 0x03D6, { 0x03C0, 0x0000, 0x0000, 0x0000 } },
1278 { 0x03D8, { 0x03D9, 0x0000, 0x0000, 0x0000 } },
1279 { 0x03DA, { 0x03DB, 0x0000, 0x0000, 0x0000 } },
1280 { 0x03DC, { 0x03DD, 0x0000, 0x0000, 0x0000 } },
1281 { 0x03DE, { 0x03DF, 0x0000, 0x0000, 0x0000 } },
1282 { 0x03E0, { 0x03E1, 0x0000, 0x0000, 0x0000 } },
1283 { 0x03E2, { 0x03E3, 0x0000, 0x0000, 0x0000 } },
1284 { 0x03E4, { 0x03E5, 0x0000, 0x0000, 0x0000 } },
1285 { 0x03E6, { 0x03E7, 0x0000, 0x0000, 0x0000 } },
1286 { 0x03E8, { 0x03E9, 0x0000, 0x0000, 0x0000 } },
1287 { 0x03EA, { 0x03EB, 0x0000, 0x0000, 0x0000 } },
1288 { 0x03EC, { 0x03ED, 0x0000, 0x0000, 0x0000 } },
1289 { 0x03EE, { 0x03EF, 0x0000, 0x0000, 0x0000 } },
1290 { 0x03F0, { 0x03BA, 0x0000, 0x0000, 0x0000 } },
1291 { 0x03F1, { 0x03C1, 0x0000, 0x0000, 0x0000 } },
1292 { 0x03F2, { 0x03C3, 0x0000, 0x0000, 0x0000 } },
1293 { 0x03F4, { 0x03B8, 0x0000, 0x0000, 0x0000 } },
1294 { 0x03F5, { 0x03B5, 0x0000, 0x0000, 0x0000 } },
1295 { 0x0400, { 0x0450, 0x0000, 0x0000, 0x0000 } },
1296 { 0x0401, { 0x0451, 0x0000, 0x0000, 0x0000 } },
1297 { 0x0402, { 0x0452, 0x0000, 0x0000, 0x0000 } },
1298 { 0x0403, { 0x0453, 0x0000, 0x0000, 0x0000 } },
1299 { 0x0404, { 0x0454, 0x0000, 0x0000, 0x0000 } },
1300 { 0x0405, { 0x0455, 0x0000, 0x0000, 0x0000 } },
1301 { 0x0406, { 0x0456, 0x0000, 0x0000, 0x0000 } },
1302 { 0x0407, { 0x0457, 0x0000, 0x0000, 0x0000 } },
1303 { 0x0408, { 0x0458, 0x0000, 0x0000, 0x0000 } },
1304 { 0x0409, { 0x0459, 0x0000, 0x0000, 0x0000 } },
1305 { 0x040A, { 0x045A, 0x0000, 0x0000, 0x0000 } },
1306 { 0x040B, { 0x045B, 0x0000, 0x0000, 0x0000 } },
1307 { 0x040C, { 0x045C, 0x0000, 0x0000, 0x0000 } },
1308 { 0x040D, { 0x045D, 0x0000, 0x0000, 0x0000 } },
1309 { 0x040E, { 0x045E, 0x0000, 0x0000, 0x0000 } },
1310 { 0x040F, { 0x045F, 0x0000, 0x0000, 0x0000 } },
1311 { 0x0410, { 0x0430, 0x0000, 0x0000, 0x0000 } },
1312 { 0x0411, { 0x0431, 0x0000, 0x0000, 0x0000 } },
1313 { 0x0412, { 0x0432, 0x0000, 0x0000, 0x0000 } },
1314 { 0x0413, { 0x0433, 0x0000, 0x0000, 0x0000 } },
1315 { 0x0414, { 0x0434, 0x0000, 0x0000, 0x0000 } },
1316 { 0x0415, { 0x0435, 0x0000, 0x0000, 0x0000 } },
1317 { 0x0416, { 0x0436, 0x0000, 0x0000, 0x0000 } },
1318 { 0x0417, { 0x0437, 0x0000, 0x0000, 0x0000 } },
1319 { 0x0418, { 0x0438, 0x0000, 0x0000, 0x0000 } },
1320 { 0x0419, { 0x0439, 0x0000, 0x0000, 0x0000 } },
1321 { 0x041A, { 0x043A, 0x0000, 0x0000, 0x0000 } },
1322 { 0x041B, { 0x043B, 0x0000, 0x0000, 0x0000 } },
1323 { 0x041C, { 0x043C, 0x0000, 0x0000, 0x0000 } },
1324 { 0x041D, { 0x043D, 0x0000, 0x0000, 0x0000 } },
1325 { 0x041E, { 0x043E, 0x0000, 0x0000, 0x0000 } },
1326 { 0x041F, { 0x043F, 0x0000, 0x0000, 0x0000 } },
1327 { 0x0420, { 0x0440, 0x0000, 0x0000, 0x0000 } },
1328 { 0x0421, { 0x0441, 0x0000, 0x0000, 0x0000 } },
1329 { 0x0422, { 0x0442, 0x0000, 0x0000, 0x0000 } },
1330 { 0x0423, { 0x0443, 0x0000, 0x0000, 0x0000 } },
1331 { 0x0424, { 0x0444, 0x0000, 0x0000, 0x0000 } },
1332 { 0x0425, { 0x0445, 0x0000, 0x0000, 0x0000 } },
1333 { 0x0426, { 0x0446, 0x0000, 0x0000, 0x0000 } },
1334 { 0x0427, { 0x0447, 0x0000, 0x0000, 0x0000 } },
1335 { 0x0428, { 0x0448, 0x0000, 0x0000, 0x0000 } },
1336 { 0x0429, { 0x0449, 0x0000, 0x0000, 0x0000 } },
1337 { 0x042A, { 0x044A, 0x0000, 0x0000, 0x0000 } },
1338 { 0x042B, { 0x044B, 0x0000, 0x0000, 0x0000 } },
1339 { 0x042C, { 0x044C, 0x0000, 0x0000, 0x0000 } },
1340 { 0x042D, { 0x044D, 0x0000, 0x0000, 0x0000 } },
1341 { 0x042E, { 0x044E, 0x0000, 0x0000, 0x0000 } },
1342 { 0x042F, { 0x044F, 0x0000, 0x0000, 0x0000 } },
1343 { 0x0460, { 0x0461, 0x0000, 0x0000, 0x0000 } },
1344 { 0x0462, { 0x0463, 0x0000, 0x0000, 0x0000 } },
1345 { 0x0464, { 0x0465, 0x0000, 0x0000, 0x0000 } },
1346 { 0x0466, { 0x0467, 0x0000, 0x0000, 0x0000 } },
1347 { 0x0468, { 0x0469, 0x0000, 0x0000, 0x0000 } },
1348 { 0x046A, { 0x046B, 0x0000, 0x0000, 0x0000 } },
1349 { 0x046C, { 0x046D, 0x0000, 0x0000, 0x0000 } },
1350 { 0x046E, { 0x046F, 0x0000, 0x0000, 0x0000 } },
1351 { 0x0470, { 0x0471, 0x0000, 0x0000, 0x0000 } },
1352 { 0x0472, { 0x0473, 0x0000, 0x0000, 0x0000 } },
1353 { 0x0474, { 0x0475, 0x0000, 0x0000, 0x0000 } },
1354 { 0x0476, { 0x0477, 0x0000, 0x0000, 0x0000 } },
1355 { 0x0478, { 0x0479, 0x0000, 0x0000, 0x0000 } },
1356 { 0x047A, { 0x047B, 0x0000, 0x0000, 0x0000 } },
1357 { 0x047C, { 0x047D, 0x0000, 0x0000, 0x0000 } },
1358 { 0x047E, { 0x047F, 0x0000, 0x0000, 0x0000 } },
1359 { 0x0480, { 0x0481, 0x0000, 0x0000, 0x0000 } },
1360 { 0x048A, { 0x048B, 0x0000, 0x0000, 0x0000 } },
1361 { 0x048C, { 0x048D, 0x0000, 0x0000, 0x0000 } },
1362 { 0x048E, { 0x048F, 0x0000, 0x0000, 0x0000 } },
1363 { 0x0490, { 0x0491, 0x0000, 0x0000, 0x0000 } },
1364 { 0x0492, { 0x0493, 0x0000, 0x0000, 0x0000 } },
1365 { 0x0494, { 0x0495, 0x0000, 0x0000, 0x0000 } },
1366 { 0x0496, { 0x0497, 0x0000, 0x0000, 0x0000 } },
1367 { 0x0498, { 0x0499, 0x0000, 0x0000, 0x0000 } },
1368 { 0x049A, { 0x049B, 0x0000, 0x0000, 0x0000 } },
1369 { 0x049C, { 0x049D, 0x0000, 0x0000, 0x0000 } },
1370 { 0x049E, { 0x049F, 0x0000, 0x0000, 0x0000 } },
1371 { 0x04A0, { 0x04A1, 0x0000, 0x0000, 0x0000 } },
1372 { 0x04A2, { 0x04A3, 0x0000, 0x0000, 0x0000 } },
1373 { 0x04A4, { 0x04A5, 0x0000, 0x0000, 0x0000 } },
1374 { 0x04A6, { 0x04A7, 0x0000, 0x0000, 0x0000 } },
1375 { 0x04A8, { 0x04A9, 0x0000, 0x0000, 0x0000 } },
1376 { 0x04AA, { 0x04AB, 0x0000, 0x0000, 0x0000 } },
1377 { 0x04AC, { 0x04AD, 0x0000, 0x0000, 0x0000 } },
1378 { 0x04AE, { 0x04AF, 0x0000, 0x0000, 0x0000 } },
1379 { 0x04B0, { 0x04B1, 0x0000, 0x0000, 0x0000 } },
1380 { 0x04B2, { 0x04B3, 0x0000, 0x0000, 0x0000 } },
1381 { 0x04B4, { 0x04B5, 0x0000, 0x0000, 0x0000 } },
1382 { 0x04B6, { 0x04B7, 0x0000, 0x0000, 0x0000 } },
1383 { 0x04B8, { 0x04B9, 0x0000, 0x0000, 0x0000 } },
1384 { 0x04BA, { 0x04BB, 0x0000, 0x0000, 0x0000 } },
1385 { 0x04BC, { 0x04BD, 0x0000, 0x0000, 0x0000 } },
1386 { 0x04BE, { 0x04BF, 0x0000, 0x0000, 0x0000 } },
1387 { 0x04C1, { 0x04C2, 0x0000, 0x0000, 0x0000 } },
1388 { 0x04C3, { 0x04C4, 0x0000, 0x0000, 0x0000 } },
1389 { 0x04C5, { 0x04C6, 0x0000, 0x0000, 0x0000 } },
1390 { 0x04C7, { 0x04C8, 0x0000, 0x0000, 0x0000 } },
1391 { 0x04C9, { 0x04CA, 0x0000, 0x0000, 0x0000 } },
1392 { 0x04CB, { 0x04CC, 0x0000, 0x0000, 0x0000 } },
1393 { 0x04CD, { 0x04CE, 0x0000, 0x0000, 0x0000 } },
1394 { 0x04D0, { 0x04D1, 0x0000, 0x0000, 0x0000 } },
1395 { 0x04D2, { 0x04D3, 0x0000, 0x0000, 0x0000 } },
1396 { 0x04D4, { 0x04D5, 0x0000, 0x0000, 0x0000 } },
1397 { 0x04D6, { 0x04D7, 0x0000, 0x0000, 0x0000 } },
1398 { 0x04D8, { 0x04D9, 0x0000, 0x0000, 0x0000 } },
1399 { 0x04DA, { 0x04DB, 0x0000, 0x0000, 0x0000 } },
1400 { 0x04DC, { 0x04DD, 0x0000, 0x0000, 0x0000 } },
1401 { 0x04DE, { 0x04DF, 0x0000, 0x0000, 0x0000 } },
1402 { 0x04E0, { 0x04E1, 0x0000, 0x0000, 0x0000 } },
1403 { 0x04E2, { 0x04E3, 0x0000, 0x0000, 0x0000 } },
1404 { 0x04E4, { 0x04E5, 0x0000, 0x0000, 0x0000 } },
1405 { 0x04E6, { 0x04E7, 0x0000, 0x0000, 0x0000 } },
1406 { 0x04E8, { 0x04E9, 0x0000, 0x0000, 0x0000 } },
1407 { 0x04EA, { 0x04EB, 0x0000, 0x0000, 0x0000 } },
1408 { 0x04EC, { 0x04ED, 0x0000, 0x0000, 0x0000 } },
1409 { 0x04EE, { 0x04EF, 0x0000, 0x0000, 0x0000 } },
1410 { 0x04F0, { 0x04F1, 0x0000, 0x0000, 0x0000 } },
1411 { 0x04F2, { 0x04F3, 0x0000, 0x0000, 0x0000 } },
1412 { 0x04F4, { 0x04F5, 0x0000, 0x0000, 0x0000 } },
1413 { 0x04F8, { 0x04F9, 0x0000, 0x0000, 0x0000 } },
1414 { 0x0500, { 0x0501, 0x0000, 0x0000, 0x0000 } },
1415 { 0x0502, { 0x0503, 0x0000, 0x0000, 0x0000 } },
1416 { 0x0504, { 0x0505, 0x0000, 0x0000, 0x0000 } },
1417 { 0x0506, { 0x0507, 0x0000, 0x0000, 0x0000 } },
1418 { 0x0508, { 0x0509, 0x0000, 0x0000, 0x0000 } },
1419 { 0x050A, { 0x050B, 0x0000, 0x0000, 0x0000 } },
1420 { 0x050C, { 0x050D, 0x0000, 0x0000, 0x0000 } },
1421 { 0x050E, { 0x050F, 0x0000, 0x0000, 0x0000 } },
1422 { 0x0531, { 0x0561, 0x0000, 0x0000, 0x0000 } },
1423 { 0x0532, { 0x0562, 0x0000, 0x0000, 0x0000 } },
1424 { 0x0533, { 0x0563, 0x0000, 0x0000, 0x0000 } },
1425 { 0x0534, { 0x0564, 0x0000, 0x0000, 0x0000 } },
1426 { 0x0535, { 0x0565, 0x0000, 0x0000, 0x0000 } },
1427 { 0x0536, { 0x0566, 0x0000, 0x0000, 0x0000 } },
1428 { 0x0537, { 0x0567, 0x0000, 0x0000, 0x0000 } },
1429 { 0x0538, { 0x0568, 0x0000, 0x0000, 0x0000 } },
1430 { 0x0539, { 0x0569, 0x0000, 0x0000, 0x0000 } },
1431 { 0x053A, { 0x056A, 0x0000, 0x0000, 0x0000 } },
1432 { 0x053B, { 0x056B, 0x0000, 0x0000, 0x0000 } },
1433 { 0x053C, { 0x056C, 0x0000, 0x0000, 0x0000 } },
1434 { 0x053D, { 0x056D, 0x0000, 0x0000, 0x0000 } },
1435 { 0x053E, { 0x056E, 0x0000, 0x0000, 0x0000 } },
1436 { 0x053F, { 0x056F, 0x0000, 0x0000, 0x0000 } },
1437 { 0x0540, { 0x0570, 0x0000, 0x0000, 0x0000 } },
1438 { 0x0541, { 0x0571, 0x0000, 0x0000, 0x0000 } },
1439 { 0x0542, { 0x0572, 0x0000, 0x0000, 0x0000 } },
1440 { 0x0543, { 0x0573, 0x0000, 0x0000, 0x0000 } },
1441 { 0x0544, { 0x0574, 0x0000, 0x0000, 0x0000 } },
1442 { 0x0545, { 0x0575, 0x0000, 0x0000, 0x0000 } },
1443 { 0x0546, { 0x0576, 0x0000, 0x0000, 0x0000 } },
1444 { 0x0547, { 0x0577, 0x0000, 0x0000, 0x0000 } },
1445 { 0x0548, { 0x0578, 0x0000, 0x0000, 0x0000 } },
1446 { 0x0549, { 0x0579, 0x0000, 0x0000, 0x0000 } },
1447 { 0x054A, { 0x057A, 0x0000, 0x0000, 0x0000 } },
1448 { 0x054B, { 0x057B, 0x0000, 0x0000, 0x0000 } },
1449 { 0x054C, { 0x057C, 0x0000, 0x0000, 0x0000 } },
1450 { 0x054D, { 0x057D, 0x0000, 0x0000, 0x0000 } },
1451 { 0x054E, { 0x057E, 0x0000, 0x0000, 0x0000 } },
1452 { 0x054F, { 0x057F, 0x0000, 0x0000, 0x0000 } },
1453 { 0x0550, { 0x0580, 0x0000, 0x0000, 0x0000 } },
1454 { 0x0551, { 0x0581, 0x0000, 0x0000, 0x0000 } },
1455 { 0x0552, { 0x0582, 0x0000, 0x0000, 0x0000 } },
1456 { 0x0553, { 0x0583, 0x0000, 0x0000, 0x0000 } },
1457 { 0x0554, { 0x0584, 0x0000, 0x0000, 0x0000 } },
1458 { 0x0555, { 0x0585, 0x0000, 0x0000, 0x0000 } },
1459 { 0x0556, { 0x0586, 0x0000, 0x0000, 0x0000 } },
1460 { 0x0587, { 0x0565, 0x0582, 0x0000, 0x0000 } },
1461 { 0x1E00, { 0x1E01, 0x0000, 0x0000, 0x0000 } },
1462 { 0x1E02, { 0x1E03, 0x0000, 0x0000, 0x0000 } },
1463 { 0x1E04, { 0x1E05, 0x0000, 0x0000, 0x0000 } },
1464 { 0x1E06, { 0x1E07, 0x0000, 0x0000, 0x0000 } },
1465 { 0x1E08, { 0x1E09, 0x0000, 0x0000, 0x0000 } },
1466 { 0x1E0A, { 0x1E0B, 0x0000, 0x0000, 0x0000 } },
1467 { 0x1E0C, { 0x1E0D, 0x0000, 0x0000, 0x0000 } },
1468 { 0x1E0E, { 0x1E0F, 0x0000, 0x0000, 0x0000 } },
1469 { 0x1E10, { 0x1E11, 0x0000, 0x0000, 0x0000 } },
1470 { 0x1E12, { 0x1E13, 0x0000, 0x0000, 0x0000 } },
1471 { 0x1E14, { 0x1E15, 0x0000, 0x0000, 0x0000 } },
1472 { 0x1E16, { 0x1E17, 0x0000, 0x0000, 0x0000 } },
1473 { 0x1E18, { 0x1E19, 0x0000, 0x0000, 0x0000 } },
1474 { 0x1E1A, { 0x1E1B, 0x0000, 0x0000, 0x0000 } },
1475 { 0x1E1C, { 0x1E1D, 0x0000, 0x0000, 0x0000 } },
1476 { 0x1E1E, { 0x1E1F, 0x0000, 0x0000, 0x0000 } },
1477 { 0x1E20, { 0x1E21, 0x0000, 0x0000, 0x0000 } },
1478 { 0x1E22, { 0x1E23, 0x0000, 0x0000, 0x0000 } },
1479 { 0x1E24, { 0x1E25, 0x0000, 0x0000, 0x0000 } },
1480 { 0x1E26, { 0x1E27, 0x0000, 0x0000, 0x0000 } },
1481 { 0x1E28, { 0x1E29, 0x0000, 0x0000, 0x0000 } },
1482 { 0x1E2A, { 0x1E2B, 0x0000, 0x0000, 0x0000 } },
1483 { 0x1E2C, { 0x1E2D, 0x0000, 0x0000, 0x0000 } },
1484 { 0x1E2E, { 0x1E2F, 0x0000, 0x0000, 0x0000 } },
1485 { 0x1E30, { 0x1E31, 0x0000, 0x0000, 0x0000 } },
1486 { 0x1E32, { 0x1E33, 0x0000, 0x0000, 0x0000 } },
1487 { 0x1E34, { 0x1E35, 0x0000, 0x0000, 0x0000 } },
1488 { 0x1E36, { 0x1E37, 0x0000, 0x0000, 0x0000 } },
1489 { 0x1E38, { 0x1E39, 0x0000, 0x0000, 0x0000 } },
1490 { 0x1E3A, { 0x1E3B, 0x0000, 0x0000, 0x0000 } },
1491 { 0x1E3C, { 0x1E3D, 0x0000, 0x0000, 0x0000 } },
1492 { 0x1E3E, { 0x1E3F, 0x0000, 0x0000, 0x0000 } },
1493 { 0x1E40, { 0x1E41, 0x0000, 0x0000, 0x0000 } },
1494 { 0x1E42, { 0x1E43, 0x0000, 0x0000, 0x0000 } },
1495 { 0x1E44, { 0x1E45, 0x0000, 0x0000, 0x0000 } },
1496 { 0x1E46, { 0x1E47, 0x0000, 0x0000, 0x0000 } },
1497 { 0x1E48, { 0x1E49, 0x0000, 0x0000, 0x0000 } },
1498 { 0x1E4A, { 0x1E4B, 0x0000, 0x0000, 0x0000 } },
1499 { 0x1E4C, { 0x1E4D, 0x0000, 0x0000, 0x0000 } },
1500 { 0x1E4E, { 0x1E4F, 0x0000, 0x0000, 0x0000 } },
1501 { 0x1E50, { 0x1E51, 0x0000, 0x0000, 0x0000 } },
1502 { 0x1E52, { 0x1E53, 0x0000, 0x0000, 0x0000 } },
1503 { 0x1E54, { 0x1E55, 0x0000, 0x0000, 0x0000 } },
1504 { 0x1E56, { 0x1E57, 0x0000, 0x0000, 0x0000 } },
1505 { 0x1E58, { 0x1E59, 0x0000, 0x0000, 0x0000 } },
1506 { 0x1E5A, { 0x1E5B, 0x0000, 0x0000, 0x0000 } },
1507 { 0x1E5C, { 0x1E5D, 0x0000, 0x0000, 0x0000 } },
1508 { 0x1E5E, { 0x1E5F, 0x0000, 0x0000, 0x0000 } },
1509 { 0x1E60, { 0x1E61, 0x0000, 0x0000, 0x0000 } },
1510 { 0x1E62, { 0x1E63, 0x0000, 0x0000, 0x0000 } },
1511 { 0x1E64, { 0x1E65, 0x0000, 0x0000, 0x0000 } },
1512 { 0x1E66, { 0x1E67, 0x0000, 0x0000, 0x0000 } },
1513 { 0x1E68, { 0x1E69, 0x0000, 0x0000, 0x0000 } },
1514 { 0x1E6A, { 0x1E6B, 0x0000, 0x0000, 0x0000 } },
1515 { 0x1E6C, { 0x1E6D, 0x0000, 0x0000, 0x0000 } },
1516 { 0x1E6E, { 0x1E6F, 0x0000, 0x0000, 0x0000 } },
1517 { 0x1E70, { 0x1E71, 0x0000, 0x0000, 0x0000 } },
1518 { 0x1E72, { 0x1E73, 0x0000, 0x0000, 0x0000 } },
1519 { 0x1E74, { 0x1E75, 0x0000, 0x0000, 0x0000 } },
1520 { 0x1E76, { 0x1E77, 0x0000, 0x0000, 0x0000 } },
1521 { 0x1E78, { 0x1E79, 0x0000, 0x0000, 0x0000 } },
1522 { 0x1E7A, { 0x1E7B, 0x0000, 0x0000, 0x0000 } },
1523 { 0x1E7C, { 0x1E7D, 0x0000, 0x0000, 0x0000 } },
1524 { 0x1E7E, { 0x1E7F, 0x0000, 0x0000, 0x0000 } },
1525 { 0x1E80, { 0x1E81, 0x0000, 0x0000, 0x0000 } },
1526 { 0x1E82, { 0x1E83, 0x0000, 0x0000, 0x0000 } },
1527 { 0x1E84, { 0x1E85, 0x0000, 0x0000, 0x0000 } },
1528 { 0x1E86, { 0x1E87, 0x0000, 0x0000, 0x0000 } },
1529 { 0x1E88, { 0x1E89, 0x0000, 0x0000, 0x0000 } },
1530 { 0x1E8A, { 0x1E8B, 0x0000, 0x0000, 0x0000 } },
1531 { 0x1E8C, { 0x1E8D, 0x0000, 0x0000, 0x0000 } },
1532 { 0x1E8E, { 0x1E8F, 0x0000, 0x0000, 0x0000 } },
1533 { 0x1E90, { 0x1E91, 0x0000, 0x0000, 0x0000 } },
1534 { 0x1E92, { 0x1E93, 0x0000, 0x0000, 0x0000 } },
1535 { 0x1E94, { 0x1E95, 0x0000, 0x0000, 0x0000 } },
1536 { 0x1E96, { 0x0068, 0x0331, 0x0000, 0x0000 } },
1537 { 0x1E97, { 0x0074, 0x0308, 0x0000, 0x0000 } },
1538 { 0x1E98, { 0x0077, 0x030A, 0x0000, 0x0000 } },
1539 { 0x1E99, { 0x0079, 0x030A, 0x0000, 0x0000 } },
1540 { 0x1E9A, { 0x0061, 0x02BE, 0x0000, 0x0000 } },
1541 { 0x1E9B, { 0x1E61, 0x0000, 0x0000, 0x0000 } },
1542 { 0x1EA0, { 0x1EA1, 0x0000, 0x0000, 0x0000 } },
1543 { 0x1EA2, { 0x1EA3, 0x0000, 0x0000, 0x0000 } },
1544 { 0x1EA4, { 0x1EA5, 0x0000, 0x0000, 0x0000 } },
1545 { 0x1EA6, { 0x1EA7, 0x0000, 0x0000, 0x0000 } },
1546 { 0x1EA8, { 0x1EA9, 0x0000, 0x0000, 0x0000 } },
1547 { 0x1EAA, { 0x1EAB, 0x0000, 0x0000, 0x0000 } },
1548 { 0x1EAC, { 0x1EAD, 0x0000, 0x0000, 0x0000 } },
1549 { 0x1EAE, { 0x1EAF, 0x0000, 0x0000, 0x0000 } },
1550 { 0x1EB0, { 0x1EB1, 0x0000, 0x0000, 0x0000 } },
1551 { 0x1EB2, { 0x1EB3, 0x0000, 0x0000, 0x0000 } },
1552 { 0x1EB4, { 0x1EB5, 0x0000, 0x0000, 0x0000 } },
1553 { 0x1EB6, { 0x1EB7, 0x0000, 0x0000, 0x0000 } },
1554 { 0x1EB8, { 0x1EB9, 0x0000, 0x0000, 0x0000 } },
1555 { 0x1EBA, { 0x1EBB, 0x0000, 0x0000, 0x0000 } },
1556 { 0x1EBC, { 0x1EBD, 0x0000, 0x0000, 0x0000 } },
1557 { 0x1EBE, { 0x1EBF, 0x0000, 0x0000, 0x0000 } },
1558 { 0x1EC0, { 0x1EC1, 0x0000, 0x0000, 0x0000 } },
1559 { 0x1EC2, { 0x1EC3, 0x0000, 0x0000, 0x0000 } },
1560 { 0x1EC4, { 0x1EC5, 0x0000, 0x0000, 0x0000 } },
1561 { 0x1EC6, { 0x1EC7, 0x0000, 0x0000, 0x0000 } },
1562 { 0x1EC8, { 0x1EC9, 0x0000, 0x0000, 0x0000 } },
1563 { 0x1ECA, { 0x1ECB, 0x0000, 0x0000, 0x0000 } },
1564 { 0x1ECC, { 0x1ECD, 0x0000, 0x0000, 0x0000 } },
1565 { 0x1ECE, { 0x1ECF, 0x0000, 0x0000, 0x0000 } },
1566 { 0x1ED0, { 0x1ED1, 0x0000, 0x0000, 0x0000 } },
1567 { 0x1ED2, { 0x1ED3, 0x0000, 0x0000, 0x0000 } },
1568 { 0x1ED4, { 0x1ED5, 0x0000, 0x0000, 0x0000 } },
1569 { 0x1ED6, { 0x1ED7, 0x0000, 0x0000, 0x0000 } },
1570 { 0x1ED8, { 0x1ED9, 0x0000, 0x0000, 0x0000 } },
1571 { 0x1EDA, { 0x1EDB, 0x0000, 0x0000, 0x0000 } },
1572 { 0x1EDC, { 0x1EDD, 0x0000, 0x0000, 0x0000 } },
1573 { 0x1EDE, { 0x1EDF, 0x0000, 0x0000, 0x0000 } },
1574 { 0x1EE0, { 0x1EE1, 0x0000, 0x0000, 0x0000 } },
1575 { 0x1EE2, { 0x1EE3, 0x0000, 0x0000, 0x0000 } },
1576 { 0x1EE4, { 0x1EE5, 0x0000, 0x0000, 0x0000 } },
1577 { 0x1EE6, { 0x1EE7, 0x0000, 0x0000, 0x0000 } },
1578 { 0x1EE8, { 0x1EE9, 0x0000, 0x0000, 0x0000 } },
1579 { 0x1EEA, { 0x1EEB, 0x0000, 0x0000, 0x0000 } },
1580 { 0x1EEC, { 0x1EED, 0x0000, 0x0000, 0x0000 } },
1581 { 0x1EEE, { 0x1EEF, 0x0000, 0x0000, 0x0000 } },
1582 { 0x1EF0, { 0x1EF1, 0x0000, 0x0000, 0x0000 } },
1583 { 0x1EF2, { 0x1EF3, 0x0000, 0x0000, 0x0000 } },
1584 { 0x1EF4, { 0x1EF5, 0x0000, 0x0000, 0x0000 } },
1585 { 0x1EF6, { 0x1EF7, 0x0000, 0x0000, 0x0000 } },
1586 { 0x1EF8, { 0x1EF9, 0x0000, 0x0000, 0x0000 } },
1587 { 0x1F08, { 0x1F00, 0x0000, 0x0000, 0x0000 } },
1588 { 0x1F09, { 0x1F01, 0x0000, 0x0000, 0x0000 } },
1589 { 0x1F0A, { 0x1F02, 0x0000, 0x0000, 0x0000 } },
1590 { 0x1F0B, { 0x1F03, 0x0000, 0x0000, 0x0000 } },
1591 { 0x1F0C, { 0x1F04, 0x0000, 0x0000, 0x0000 } },
1592 { 0x1F0D, { 0x1F05, 0x0000, 0x0000, 0x0000 } },
1593 { 0x1F0E, { 0x1F06, 0x0000, 0x0000, 0x0000 } },
1594 { 0x1F0F, { 0x1F07, 0x0000, 0x0000, 0x0000 } },
1595 { 0x1F18, { 0x1F10, 0x0000, 0x0000, 0x0000 } },
1596 { 0x1F19, { 0x1F11, 0x0000, 0x0000, 0x0000 } },
1597 { 0x1F1A, { 0x1F12, 0x0000, 0x0000, 0x0000 } },
1598 { 0x1F1B, { 0x1F13, 0x0000, 0x0000, 0x0000 } },
1599 { 0x1F1C, { 0x1F14, 0x0000, 0x0000, 0x0000 } },
1600 { 0x1F1D, { 0x1F15, 0x0000, 0x0000, 0x0000 } },
1601 { 0x1F28, { 0x1F20, 0x0000, 0x0000, 0x0000 } },
1602 { 0x1F29, { 0x1F21, 0x0000, 0x0000, 0x0000 } },
1603 { 0x1F2A, { 0x1F22, 0x0000, 0x0000, 0x0000 } },
1604 { 0x1F2B, { 0x1F23, 0x0000, 0x0000, 0x0000 } },
1605 { 0x1F2C, { 0x1F24, 0x0000, 0x0000, 0x0000 } },
1606 { 0x1F2D, { 0x1F25, 0x0000, 0x0000, 0x0000 } },
1607 { 0x1F2E, { 0x1F26, 0x0000, 0x0000, 0x0000 } },
1608 { 0x1F2F, { 0x1F27, 0x0000, 0x0000, 0x0000 } },
1609 { 0x1F38, { 0x1F30, 0x0000, 0x0000, 0x0000 } },
1610 { 0x1F39, { 0x1F31, 0x0000, 0x0000, 0x0000 } },
1611 { 0x1F3A, { 0x1F32, 0x0000, 0x0000, 0x0000 } },
1612 { 0x1F3B, { 0x1F33, 0x0000, 0x0000, 0x0000 } },
1613 { 0x1F3C, { 0x1F34, 0x0000, 0x0000, 0x0000 } },
1614 { 0x1F3D, { 0x1F35, 0x0000, 0x0000, 0x0000 } },
1615 { 0x1F3E, { 0x1F36, 0x0000, 0x0000, 0x0000 } },
1616 { 0x1F3F, { 0x1F37, 0x0000, 0x0000, 0x0000 } },
1617 { 0x1F48, { 0x1F40, 0x0000, 0x0000, 0x0000 } },
1618 { 0x1F49, { 0x1F41, 0x0000, 0x0000, 0x0000 } },
1619 { 0x1F4A, { 0x1F42, 0x0000, 0x0000, 0x0000 } },
1620 { 0x1F4B, { 0x1F43, 0x0000, 0x0000, 0x0000 } },
1621 { 0x1F4C, { 0x1F44, 0x0000, 0x0000, 0x0000 } },
1622 { 0x1F4D, { 0x1F45, 0x0000, 0x0000, 0x0000 } },
1623 { 0x1F50, { 0x03C5, 0x0313, 0x0000, 0x0000 } },
1624 { 0x1F52, { 0x03C5, 0x0313, 0x0300, 0x0000 } },
1625 { 0x1F54, { 0x03C5, 0x0313, 0x0301, 0x0000 } },
1626 { 0x1F56, { 0x03C5, 0x0313, 0x0342, 0x0000 } },
1627 { 0x1F59, { 0x1F51, 0x0000, 0x0000, 0x0000 } },
1628 { 0x1F5B, { 0x1F53, 0x0000, 0x0000, 0x0000 } },
1629 { 0x1F5D, { 0x1F55, 0x0000, 0x0000, 0x0000 } },
1630 { 0x1F5F, { 0x1F57, 0x0000, 0x0000, 0x0000 } },
1631 { 0x1F68, { 0x1F60, 0x0000, 0x0000, 0x0000 } },
1632 { 0x1F69, { 0x1F61, 0x0000, 0x0000, 0x0000 } },
1633 { 0x1F6A, { 0x1F62, 0x0000, 0x0000, 0x0000 } },
1634 { 0x1F6B, { 0x1F63, 0x0000, 0x0000, 0x0000 } },
1635 { 0x1F6C, { 0x1F64, 0x0000, 0x0000, 0x0000 } },
1636 { 0x1F6D, { 0x1F65, 0x0000, 0x0000, 0x0000 } },
1637 { 0x1F6E, { 0x1F66, 0x0000, 0x0000, 0x0000 } },
1638 { 0x1F6F, { 0x1F67, 0x0000, 0x0000, 0x0000 } },
1639 { 0x1F80, { 0x1F00, 0x03B9, 0x0000, 0x0000 } },
1640 { 0x1F81, { 0x1F01, 0x03B9, 0x0000, 0x0000 } },
1641 { 0x1F82, { 0x1F02, 0x03B9, 0x0000, 0x0000 } },
1642 { 0x1F83, { 0x1F03, 0x03B9, 0x0000, 0x0000 } },
1643 { 0x1F84, { 0x1F04, 0x03B9, 0x0000, 0x0000 } },
1644 { 0x1F85, { 0x1F05, 0x03B9, 0x0000, 0x0000 } },
1645 { 0x1F86, { 0x1F06, 0x03B9, 0x0000, 0x0000 } },
1646 { 0x1F87, { 0x1F07, 0x03B9, 0x0000, 0x0000 } },
1647 { 0x1F88, { 0x1F00, 0x03B9, 0x0000, 0x0000 } },
1648 { 0x1F89, { 0x1F01, 0x03B9, 0x0000, 0x0000 } },
1649 { 0x1F8A, { 0x1F02, 0x03B9, 0x0000, 0x0000 } },
1650 { 0x1F8B, { 0x1F03, 0x03B9, 0x0000, 0x0000 } },
1651 { 0x1F8C, { 0x1F04, 0x03B9, 0x0000, 0x0000 } },
1652 { 0x1F8D, { 0x1F05, 0x03B9, 0x0000, 0x0000 } },
1653 { 0x1F8E, { 0x1F06, 0x03B9, 0x0000, 0x0000 } },
1654 { 0x1F8F, { 0x1F07, 0x03B9, 0x0000, 0x0000 } },
1655 { 0x1F90, { 0x1F20, 0x03B9, 0x0000, 0x0000 } },
1656 { 0x1F91, { 0x1F21, 0x03B9, 0x0000, 0x0000 } },
1657 { 0x1F92, { 0x1F22, 0x03B9, 0x0000, 0x0000 } },
1658 { 0x1F93, { 0x1F23, 0x03B9, 0x0000, 0x0000 } },
1659 { 0x1F94, { 0x1F24, 0x03B9, 0x0000, 0x0000 } },
1660 { 0x1F95, { 0x1F25, 0x03B9, 0x0000, 0x0000 } },
1661 { 0x1F96, { 0x1F26, 0x03B9, 0x0000, 0x0000 } },
1662 { 0x1F97, { 0x1F27, 0x03B9, 0x0000, 0x0000 } },
1663 { 0x1F98, { 0x1F20, 0x03B9, 0x0000, 0x0000 } },
1664 { 0x1F99, { 0x1F21, 0x03B9, 0x0000, 0x0000 } },
1665 { 0x1F9A, { 0x1F22, 0x03B9, 0x0000, 0x0000 } },
1666 { 0x1F9B, { 0x1F23, 0x03B9, 0x0000, 0x0000 } },
1667 { 0x1F9C, { 0x1F24, 0x03B9, 0x0000, 0x0000 } },
1668 { 0x1F9D, { 0x1F25, 0x03B9, 0x0000, 0x0000 } },
1669 { 0x1F9E, { 0x1F26, 0x03B9, 0x0000, 0x0000 } },
1670 { 0x1F9F, { 0x1F27, 0x03B9, 0x0000, 0x0000 } },
1671 { 0x1FA0, { 0x1F60, 0x03B9, 0x0000, 0x0000 } },
1672 { 0x1FA1, { 0x1F61, 0x03B9, 0x0000, 0x0000 } },
1673 { 0x1FA2, { 0x1F62, 0x03B9, 0x0000, 0x0000 } },
1674 { 0x1FA3, { 0x1F63, 0x03B9, 0x0000, 0x0000 } },
1675 { 0x1FA4, { 0x1F64, 0x03B9, 0x0000, 0x0000 } },
1676 { 0x1FA5, { 0x1F65, 0x03B9, 0x0000, 0x0000 } },
1677 { 0x1FA6, { 0x1F66, 0x03B9, 0x0000, 0x0000 } },
1678 { 0x1FA7, { 0x1F67, 0x03B9, 0x0000, 0x0000 } },
1679 { 0x1FA8, { 0x1F60, 0x03B9, 0x0000, 0x0000 } },
1680 { 0x1FA9, { 0x1F61, 0x03B9, 0x0000, 0x0000 } },
1681 { 0x1FAA, { 0x1F62, 0x03B9, 0x0000, 0x0000 } },
1682 { 0x1FAB, { 0x1F63, 0x03B9, 0x0000, 0x0000 } },
1683 { 0x1FAC, { 0x1F64, 0x03B9, 0x0000, 0x0000 } },
1684 { 0x1FAD, { 0x1F65, 0x03B9, 0x0000, 0x0000 } },
1685 { 0x1FAE, { 0x1F66, 0x03B9, 0x0000, 0x0000 } },
1686 { 0x1FAF, { 0x1F67, 0x03B9, 0x0000, 0x0000 } },
1687 { 0x1FB2, { 0x1F70, 0x03B9, 0x0000, 0x0000 } },
1688 { 0x1FB3, { 0x03B1, 0x03B9, 0x0000, 0x0000 } },
1689 { 0x1FB4, { 0x03AC, 0x03B9, 0x0000, 0x0000 } },
1690 { 0x1FB6, { 0x03B1, 0x0342, 0x0000, 0x0000 } },
1691 { 0x1FB7, { 0x03B1, 0x0342, 0x03B9, 0x0000 } },
1692 { 0x1FB8, { 0x1FB0, 0x0000, 0x0000, 0x0000 } },
1693 { 0x1FB9, { 0x1FB1, 0x0000, 0x0000, 0x0000 } },
1694 { 0x1FBA, { 0x1F70, 0x0000, 0x0000, 0x0000 } },
1695 { 0x1FBB, { 0x1F71, 0x0000, 0x0000, 0x0000 } },
1696 { 0x1FBC, { 0x03B1, 0x03B9, 0x0000, 0x0000 } },
1697 { 0x1FBE, { 0x03B9, 0x0000, 0x0000, 0x0000 } },
1698 { 0x1FC2, { 0x1F74, 0x03B9, 0x0000, 0x0000 } },
1699 { 0x1FC3, { 0x03B7, 0x03B9, 0x0000, 0x0000 } },
1700 { 0x1FC4, { 0x03AE, 0x03B9, 0x0000, 0x0000 } },
1701 { 0x1FC6, { 0x03B7, 0x0342, 0x0000, 0x0000 } },
1702 { 0x1FC7, { 0x03B7, 0x0342, 0x03B9, 0x0000 } },
1703 { 0x1FC8, { 0x1F72, 0x0000, 0x0000, 0x0000 } },
1704 { 0x1FC9, { 0x1F73, 0x0000, 0x0000, 0x0000 } },
1705 { 0x1FCA, { 0x1F74, 0x0000, 0x0000, 0x0000 } },
1706 { 0x1FCB, { 0x1F75, 0x0000, 0x0000, 0x0000 } },
1707 { 0x1FCC, { 0x03B7, 0x03B9, 0x0000, 0x0000 } },
1708 { 0x1FD2, { 0x03B9, 0x0308, 0x0300, 0x0000 } },
1709 { 0x1FD3, { 0x03B9, 0x0308, 0x0301, 0x0000 } },
1710 { 0x1FD6, { 0x03B9, 0x0342, 0x0000, 0x0000 } },
1711 { 0x1FD7, { 0x03B9, 0x0308, 0x0342, 0x0000 } },
1712 { 0x1FD8, { 0x1FD0, 0x0000, 0x0000, 0x0000 } },
1713 { 0x1FD9, { 0x1FD1, 0x0000, 0x0000, 0x0000 } },
1714 { 0x1FDA, { 0x1F76, 0x0000, 0x0000, 0x0000 } },
1715 { 0x1FDB, { 0x1F77, 0x0000, 0x0000, 0x0000 } },
1716 { 0x1FE2, { 0x03C5, 0x0308, 0x0300, 0x0000 } },
1717 { 0x1FE3, { 0x03C5, 0x0308, 0x0301, 0x0000 } },
1718 { 0x1FE4, { 0x03C1, 0x0313, 0x0000, 0x0000 } },
1719 { 0x1FE6, { 0x03C5, 0x0342, 0x0000, 0x0000 } },
1720 { 0x1FE7, { 0x03C5, 0x0308, 0x0342, 0x0000 } },
1721 { 0x1FE8, { 0x1FE0, 0x0000, 0x0000, 0x0000 } },
1722 { 0x1FE9, { 0x1FE1, 0x0000, 0x0000, 0x0000 } },
1723 { 0x1FEA, { 0x1F7A, 0x0000, 0x0000, 0x0000 } },
1724 { 0x1FEB, { 0x1F7B, 0x0000, 0x0000, 0x0000 } },
1725 { 0x1FEC, { 0x1FE5, 0x0000, 0x0000, 0x0000 } },
1726 { 0x1FF2, { 0x1F7C, 0x03B9, 0x0000, 0x0000 } },
1727 { 0x1FF3, { 0x03C9, 0x03B9, 0x0000, 0x0000 } },
1728 { 0x1FF4, { 0x03CE, 0x03B9, 0x0000, 0x0000 } },
1729 { 0x1FF6, { 0x03C9, 0x0342, 0x0000, 0x0000 } },
1730 { 0x1FF7, { 0x03C9, 0x0342, 0x03B9, 0x0000 } },
1731 { 0x1FF8, { 0x1F78, 0x0000, 0x0000, 0x0000 } },
1732 { 0x1FF9, { 0x1F79, 0x0000, 0x0000, 0x0000 } },
1733 { 0x1FFA, { 0x1F7C, 0x0000, 0x0000, 0x0000 } },
1734 { 0x1FFB, { 0x1F7D, 0x0000, 0x0000, 0x0000 } },
1735 { 0x1FFC, { 0x03C9, 0x03B9, 0x0000, 0x0000 } },
1736 { 0x20A8, { 0x0072, 0x0073, 0x0000, 0x0000 } },
1737 { 0x2102, { 0x0063, 0x0000, 0x0000, 0x0000 } },
1738 { 0x2103, { 0x00B0, 0x0063, 0x0000, 0x0000 } },
1739 { 0x2107, { 0x025B, 0x0000, 0x0000, 0x0000 } },
1740 { 0x2109, { 0x00B0, 0x0066, 0x0000, 0x0000 } },
1741 { 0x210B, { 0x0068, 0x0000, 0x0000, 0x0000 } },
1742 { 0x210C, { 0x0068, 0x0000, 0x0000, 0x0000 } },
1743 { 0x210D, { 0x0068, 0x0000, 0x0000, 0x0000 } },
1744 { 0x2110, { 0x0069, 0x0000, 0x0000, 0x0000 } },
1745 { 0x2111, { 0x0069, 0x0000, 0x0000, 0x0000 } },
1746 { 0x2112, { 0x006C, 0x0000, 0x0000, 0x0000 } },
1747 { 0x2115, { 0x006E, 0x0000, 0x0000, 0x0000 } },
1748 { 0x2116, { 0x006E, 0x006F, 0x0000, 0x0000 } },
1749 { 0x2119, { 0x0070, 0x0000, 0x0000, 0x0000 } },
1750 { 0x211A, { 0x0071, 0x0000, 0x0000, 0x0000 } },
1751 { 0x211B, { 0x0072, 0x0000, 0x0000, 0x0000 } },
1752 { 0x211C, { 0x0072, 0x0000, 0x0000, 0x0000 } },
1753 { 0x211D, { 0x0072, 0x0000, 0x0000, 0x0000 } },
1754 { 0x2120, { 0x0073, 0x006D, 0x0000, 0x0000 } },
1755 { 0x2121, { 0x0074, 0x0065, 0x006C, 0x0000 } },
1756 { 0x2122, { 0x0074, 0x006D, 0x0000, 0x0000 } },
1757 { 0x2124, { 0x007A, 0x0000, 0x0000, 0x0000 } },
1758 { 0x2126, { 0x03C9, 0x0000, 0x0000, 0x0000 } },
1759 { 0x2128, { 0x007A, 0x0000, 0x0000, 0x0000 } },
1760 { 0x212A, { 0x006B, 0x0000, 0x0000, 0x0000 } },
1761 { 0x212B, { 0x00E5, 0x0000, 0x0000, 0x0000 } },
1762 { 0x212C, { 0x0062, 0x0000, 0x0000, 0x0000 } },
1763 { 0x212D, { 0x0063, 0x0000, 0x0000, 0x0000 } },
1764 { 0x2130, { 0x0065, 0x0000, 0x0000, 0x0000 } },
1765 { 0x2131, { 0x0066, 0x0000, 0x0000, 0x0000 } },
1766 { 0x2133, { 0x006D, 0x0000, 0x0000, 0x0000 } },
1767 { 0x213E, { 0x03B3, 0x0000, 0x0000, 0x0000 } },
1768 { 0x213F, { 0x03C0, 0x0000, 0x0000, 0x0000 } },
1769 { 0x2145, { 0x0064, 0x0000, 0x0000, 0x0000 } },
1770 { 0x2160, { 0x2170, 0x0000, 0x0000, 0x0000 } },
1771 { 0x2161, { 0x2171, 0x0000, 0x0000, 0x0000 } },
1772 { 0x2162, { 0x2172, 0x0000, 0x0000, 0x0000 } },
1773 { 0x2163, { 0x2173, 0x0000, 0x0000, 0x0000 } },
1774 { 0x2164, { 0x2174, 0x0000, 0x0000, 0x0000 } },
1775 { 0x2165, { 0x2175, 0x0000, 0x0000, 0x0000 } },
1776 { 0x2166, { 0x2176, 0x0000, 0x0000, 0x0000 } },
1777 { 0x2167, { 0x2177, 0x0000, 0x0000, 0x0000 } },
1778 { 0x2168, { 0x2178, 0x0000, 0x0000, 0x0000 } },
1779 { 0x2169, { 0x2179, 0x0000, 0x0000, 0x0000 } },
1780 { 0x216A, { 0x217A, 0x0000, 0x0000, 0x0000 } },
1781 { 0x216B, { 0x217B, 0x0000, 0x0000, 0x0000 } },
1782 { 0x216C, { 0x217C, 0x0000, 0x0000, 0x0000 } },
1783 { 0x216D, { 0x217D, 0x0000, 0x0000, 0x0000 } },
1784 { 0x216E, { 0x217E, 0x0000, 0x0000, 0x0000 } },
1785 { 0x216F, { 0x217F, 0x0000, 0x0000, 0x0000 } },
1786 { 0x24B6, { 0x24D0, 0x0000, 0x0000, 0x0000 } },
1787 { 0x24B7, { 0x24D1, 0x0000, 0x0000, 0x0000 } },
1788 { 0x24B8, { 0x24D2, 0x0000, 0x0000, 0x0000 } },
1789 { 0x24B9, { 0x24D3, 0x0000, 0x0000, 0x0000 } },
1790 { 0x24BA, { 0x24D4, 0x0000, 0x0000, 0x0000 } },
1791 { 0x24BB, { 0x24D5, 0x0000, 0x0000, 0x0000 } },
1792 { 0x24BC, { 0x24D6, 0x0000, 0x0000, 0x0000 } },
1793 { 0x24BD, { 0x24D7, 0x0000, 0x0000, 0x0000 } },
1794 { 0x24BE, { 0x24D8, 0x0000, 0x0000, 0x0000 } },
1795 { 0x24BF, { 0x24D9, 0x0000, 0x0000, 0x0000 } },
1796 { 0x24C0, { 0x24DA, 0x0000, 0x0000, 0x0000 } },
1797 { 0x24C1, { 0x24DB, 0x0000, 0x0000, 0x0000 } },
1798 { 0x24C2, { 0x24DC, 0x0000, 0x0000, 0x0000 } },
1799 { 0x24C3, { 0x24DD, 0x0000, 0x0000, 0x0000 } },
1800 { 0x24C4, { 0x24DE, 0x0000, 0x0000, 0x0000 } },
1801 { 0x24C5, { 0x24DF, 0x0000, 0x0000, 0x0000 } },
1802 { 0x24C6, { 0x24E0, 0x0000, 0x0000, 0x0000 } },
1803 { 0x24C7, { 0x24E1, 0x0000, 0x0000, 0x0000 } },
1804 { 0x24C8, { 0x24E2, 0x0000, 0x0000, 0x0000 } },
1805 { 0x24C9, { 0x24E3, 0x0000, 0x0000, 0x0000 } },
1806 { 0x24CA, { 0x24E4, 0x0000, 0x0000, 0x0000 } },
1807 { 0x24CB, { 0x24E5, 0x0000, 0x0000, 0x0000 } },
1808 { 0x24CC, { 0x24E6, 0x0000, 0x0000, 0x0000 } },
1809 { 0x24CD, { 0x24E7, 0x0000, 0x0000, 0x0000 } },
1810 { 0x24CE, { 0x24E8, 0x0000, 0x0000, 0x0000 } },
1811 { 0x24CF, { 0x24E9, 0x0000, 0x0000, 0x0000 } },
1812 { 0x3371, { 0x0068, 0x0070, 0x0061, 0x0000 } },
1813 { 0x3373, { 0x0061, 0x0075, 0x0000, 0x0000 } },
1814 { 0x3375, { 0x006F, 0x0076, 0x0000, 0x0000 } },
1815 { 0x3380, { 0x0070, 0x0061, 0x0000, 0x0000 } },
1816 { 0x3381, { 0x006E, 0x0061, 0x0000, 0x0000 } },
1817 { 0x3382, { 0x03BC, 0x0061, 0x0000, 0x0000 } },
1818 { 0x3383, { 0x006D, 0x0061, 0x0000, 0x0000 } },
1819 { 0x3384, { 0x006B, 0x0061, 0x0000, 0x0000 } },
1820 { 0x3385, { 0x006B, 0x0062, 0x0000, 0x0000 } },
1821 { 0x3386, { 0x006D, 0x0062, 0x0000, 0x0000 } },
1822 { 0x3387, { 0x0067, 0x0062, 0x0000, 0x0000 } },
1823 { 0x338A, { 0x0070, 0x0066, 0x0000, 0x0000 } },
1824 { 0x338B, { 0x006E, 0x0066, 0x0000, 0x0000 } },
1825 { 0x338C, { 0x03BC, 0x0066, 0x0000, 0x0000 } },
1826 { 0x3390, { 0x0068, 0x007A, 0x0000, 0x0000 } },
1827 { 0x3391, { 0x006B, 0x0068, 0x007A, 0x0000 } },
1828 { 0x3392, { 0x006D, 0x0068, 0x007A, 0x0000 } },
1829 { 0x3393, { 0x0067, 0x0068, 0x007A, 0x0000 } },
1830 { 0x3394, { 0x0074, 0x0068, 0x007A, 0x0000 } },
1831 { 0x33A9, { 0x0070, 0x0061, 0x0000, 0x0000 } },
1832 { 0x33AA, { 0x006B, 0x0070, 0x0061, 0x0000 } },
1833 { 0x33AB, { 0x006D, 0x0070, 0x0061, 0x0000 } },
1834 { 0x33AC, { 0x0067, 0x0070, 0x0061, 0x0000 } },
1835 { 0x33B4, { 0x0070, 0x0076, 0x0000, 0x0000 } },
1836 { 0x33B5, { 0x006E, 0x0076, 0x0000, 0x0000 } },
1837 { 0x33B6, { 0x03BC, 0x0076, 0x0000, 0x0000 } },
1838 { 0x33B7, { 0x006D, 0x0076, 0x0000, 0x0000 } },
1839 { 0x33B8, { 0x006B, 0x0076, 0x0000, 0x0000 } },
1840 { 0x33B9, { 0x006D, 0x0076, 0x0000, 0x0000 } },
1841 { 0x33BA, { 0x0070, 0x0077, 0x0000, 0x0000 } },
1842 { 0x33BB, { 0x006E, 0x0077, 0x0000, 0x0000 } },
1843 { 0x33BC, { 0x03BC, 0x0077, 0x0000, 0x0000 } },
1844 { 0x33BD, { 0x006D, 0x0077, 0x0000, 0x0000 } },
1845 { 0x33BE, { 0x006B, 0x0077, 0x0000, 0x0000 } },
1846 { 0x33BF, { 0x006D, 0x0077, 0x0000, 0x0000 } },
1847 { 0x33C0, { 0x006B, 0x03C9, 0x0000, 0x0000 } },
1848 { 0x33C1, { 0x006D, 0x03C9, 0x0000, 0x0000 } },
1849 { 0x33C3, { 0x0062, 0x0071, 0x0000, 0x0000 } },
1850 { 0x33C6, { 0x0063, 0x2215, 0x006B, 0x0067 } },
1851 { 0x33C7, { 0x0063, 0x006F, 0x002E, 0x0000 } },
1852 { 0x33C8, { 0x0064, 0x0062, 0x0000, 0x0000 } },
1853 { 0x33C9, { 0x0067, 0x0079, 0x0000, 0x0000 } },
1854 { 0x33CB, { 0x0068, 0x0070, 0x0000, 0x0000 } },
1855 { 0x33CD, { 0x006B, 0x006B, 0x0000, 0x0000 } },
1856 { 0x33CE, { 0x006B, 0x006D, 0x0000, 0x0000 } },
1857 { 0x33D7, { 0x0070, 0x0068, 0x0000, 0x0000 } },
1858 { 0x33D9, { 0x0070, 0x0070, 0x006D, 0x0000 } },
1859 { 0x33DA, { 0x0070, 0x0072, 0x0000, 0x0000 } },
1860 { 0x33DC, { 0x0073, 0x0076, 0x0000, 0x0000 } },
1861 { 0x33DD, { 0x0077, 0x0062, 0x0000, 0x0000 } },
1862 { 0xFB00, { 0x0066, 0x0066, 0x0000, 0x0000 } },
1863 { 0xFB01, { 0x0066, 0x0069, 0x0000, 0x0000 } },
1864 { 0xFB02, { 0x0066, 0x006C, 0x0000, 0x0000 } },
1865 { 0xFB03, { 0x0066, 0x0066, 0x0069, 0x0000 } },
1866 { 0xFB04, { 0x0066, 0x0066, 0x006C, 0x0000 } },
1867 { 0xFB05, { 0x0073, 0x0074, 0x0000, 0x0000 } },
1868 { 0xFB06, { 0x0073, 0x0074, 0x0000, 0x0000 } },
1869 { 0xFB13, { 0x0574, 0x0576, 0x0000, 0x0000 } },
1870 { 0xFB14, { 0x0574, 0x0565, 0x0000, 0x0000 } },
1871 { 0xFB15, { 0x0574, 0x056B, 0x0000, 0x0000 } },
1872 { 0xFB16, { 0x057E, 0x0576, 0x0000, 0x0000 } },
1873 { 0xFB17, { 0x0574, 0x056D, 0x0000, 0x0000 } },
1874 { 0xFF21, { 0xFF41, 0x0000, 0x0000, 0x0000 } },
1875 { 0xFF22, { 0xFF42, 0x0000, 0x0000, 0x0000 } },
1876 { 0xFF23, { 0xFF43, 0x0000, 0x0000, 0x0000 } },
1877 { 0xFF24, { 0xFF44, 0x0000, 0x0000, 0x0000 } },
1878 { 0xFF25, { 0xFF45, 0x0000, 0x0000, 0x0000 } },
1879 { 0xFF26, { 0xFF46, 0x0000, 0x0000, 0x0000 } },
1880 { 0xFF27, { 0xFF47, 0x0000, 0x0000, 0x0000 } },
1881 { 0xFF28, { 0xFF48, 0x0000, 0x0000, 0x0000 } },
1882 { 0xFF29, { 0xFF49, 0x0000, 0x0000, 0x0000 } },
1883 { 0xFF2A, { 0xFF4A, 0x0000, 0x0000, 0x0000 } },
1884 { 0xFF2B, { 0xFF4B, 0x0000, 0x0000, 0x0000 } },
1885 { 0xFF2C, { 0xFF4C, 0x0000, 0x0000, 0x0000 } },
1886 { 0xFF2D, { 0xFF4D, 0x0000, 0x0000, 0x0000 } },
1887 { 0xFF2E, { 0xFF4E, 0x0000, 0x0000, 0x0000 } },
1888 { 0xFF2F, { 0xFF4F, 0x0000, 0x0000, 0x0000 } },
1889 { 0xFF30, { 0xFF50, 0x0000, 0x0000, 0x0000 } },
1890 { 0xFF31, { 0xFF51, 0x0000, 0x0000, 0x0000 } },
1891 { 0xFF32, { 0xFF52, 0x0000, 0x0000, 0x0000 } },
1892 { 0xFF33, { 0xFF53, 0x0000, 0x0000, 0x0000 } },
1893 { 0xFF34, { 0xFF54, 0x0000, 0x0000, 0x0000 } },
1894 { 0xFF35, { 0xFF55, 0x0000, 0x0000, 0x0000 } },
1895 { 0xFF36, { 0xFF56, 0x0000, 0x0000, 0x0000 } },
1896 { 0xFF37, { 0xFF57, 0x0000, 0x0000, 0x0000 } },
1897 { 0xFF38, { 0xFF58, 0x0000, 0x0000, 0x0000 } },
1898 { 0xFF39, { 0xFF59, 0x0000, 0x0000, 0x0000 } },
1899 { 0xFF3A, { 0xFF5A, 0x0000, 0x0000, 0x0000 } },
1900 { 0x10400, { 0xd801, 0xdc28, 0x0000, 0x0000 } },
1901 { 0x10401, { 0xd801, 0xdc29, 0x0000, 0x0000 } },
1902 { 0x10402, { 0xd801, 0xdc2A, 0x0000, 0x0000 } },
1903 { 0x10403, { 0xd801, 0xdc2B, 0x0000, 0x0000 } },
1904 { 0x10404, { 0xd801, 0xdc2C, 0x0000, 0x0000 } },
1905 { 0x10405, { 0xd801, 0xdc2D, 0x0000, 0x0000 } },
1906 { 0x10406, { 0xd801, 0xdc2E, 0x0000, 0x0000 } },
1907 { 0x10407, { 0xd801, 0xdc2F, 0x0000, 0x0000 } },
1908 { 0x10408, { 0xd801, 0xdc30, 0x0000, 0x0000 } },
1909 { 0x10409, { 0xd801, 0xdc31, 0x0000, 0x0000 } },
1910 { 0x1040A, { 0xd801, 0xdc32, 0x0000, 0x0000 } },
1911 { 0x1040B, { 0xd801, 0xdc33, 0x0000, 0x0000 } },
1912 { 0x1040C, { 0xd801, 0xdc34, 0x0000, 0x0000 } },
1913 { 0x1040D, { 0xd801, 0xdc35, 0x0000, 0x0000 } },
1914 { 0x1040E, { 0xd801, 0xdc36, 0x0000, 0x0000 } },
1915 { 0x1040F, { 0xd801, 0xdc37, 0x0000, 0x0000 } },
1916 { 0x10410, { 0xd801, 0xdc38, 0x0000, 0x0000 } },
1917 { 0x10411, { 0xd801, 0xdc39, 0x0000, 0x0000 } },
1918 { 0x10412, { 0xd801, 0xdc3A, 0x0000, 0x0000 } },
1919 { 0x10413, { 0xd801, 0xdc3B, 0x0000, 0x0000 } },
1920 { 0x10414, { 0xd801, 0xdc3C, 0x0000, 0x0000 } },
1921 { 0x10415, { 0xd801, 0xdc3D, 0x0000, 0x0000 } },
1922 { 0x10416, { 0xd801, 0xdc3E, 0x0000, 0x0000 } },
1923 { 0x10417, { 0xd801, 0xdc3F, 0x0000, 0x0000 } },
1924 { 0x10418, { 0xd801, 0xdc40, 0x0000, 0x0000 } },
1925 { 0x10419, { 0xd801, 0xdc41, 0x0000, 0x0000 } },
1926 { 0x1041A, { 0xd801, 0xdc42, 0x0000, 0x0000 } },
1927 { 0x1041B, { 0xd801, 0xdc43, 0x0000, 0x0000 } },
1928 { 0x1041C, { 0xd801, 0xdc44, 0x0000, 0x0000 } },
1929 { 0x1041D, { 0xd801, 0xdc45, 0x0000, 0x0000 } },
1930 { 0x1041E, { 0xd801, 0xdc46, 0x0000, 0x0000 } },
1931 { 0x1041F, { 0xd801, 0xdc47, 0x0000, 0x0000 } },
1932 { 0x10420, { 0xd801, 0xdc48, 0x0000, 0x0000 } },
1933 { 0x10421, { 0xd801, 0xdc49, 0x0000, 0x0000 } },
1934 { 0x10422, { 0xd801, 0xdc4A, 0x0000, 0x0000 } },
1935 { 0x10423, { 0xd801, 0xdc4B, 0x0000, 0x0000 } },
1936 { 0x10424, { 0xd801, 0xdc4C, 0x0000, 0x0000 } },
1937 { 0x10425, { 0xd801, 0xdc4D, 0x0000, 0x0000 } },
1938 { 0x1D400, { 0x0061, 0x0000, 0x0000, 0x0000 } },
1939 { 0x1D401, { 0x0062, 0x0000, 0x0000, 0x0000 } },
1940 { 0x1D402, { 0x0063, 0x0000, 0x0000, 0x0000 } },
1941 { 0x1D403, { 0x0064, 0x0000, 0x0000, 0x0000 } },
1942 { 0x1D404, { 0x0065, 0x0000, 0x0000, 0x0000 } },
1943 { 0x1D405, { 0x0066, 0x0000, 0x0000, 0x0000 } },
1944 { 0x1D406, { 0x0067, 0x0000, 0x0000, 0x0000 } },
1945 { 0x1D407, { 0x0068, 0x0000, 0x0000, 0x0000 } },
1946 { 0x1D408, { 0x0069, 0x0000, 0x0000, 0x0000 } },
1947 { 0x1D409, { 0x006A, 0x0000, 0x0000, 0x0000 } },
1948 { 0x1D40A, { 0x006B, 0x0000, 0x0000, 0x0000 } },
1949 { 0x1D40B, { 0x006C, 0x0000, 0x0000, 0x0000 } },
1950 { 0x1D40C, { 0x006D, 0x0000, 0x0000, 0x0000 } },
1951 { 0x1D40D, { 0x006E, 0x0000, 0x0000, 0x0000 } },
1952 { 0x1D40E, { 0x006F, 0x0000, 0x0000, 0x0000 } },
1953 { 0x1D40F, { 0x0070, 0x0000, 0x0000, 0x0000 } },
1954 { 0x1D410, { 0x0071, 0x0000, 0x0000, 0x0000 } },
1955 { 0x1D411, { 0x0072, 0x0000, 0x0000, 0x0000 } },
1956 { 0x1D412, { 0x0073, 0x0000, 0x0000, 0x0000 } },
1957 { 0x1D413, { 0x0074, 0x0000, 0x0000, 0x0000 } },
1958 { 0x1D414, { 0x0075, 0x0000, 0x0000, 0x0000 } },
1959 { 0x1D415, { 0x0076, 0x0000, 0x0000, 0x0000 } },
1960 { 0x1D416, { 0x0077, 0x0000, 0x0000, 0x0000 } },
1961 { 0x1D417, { 0x0078, 0x0000, 0x0000, 0x0000 } },
1962 { 0x1D418, { 0x0079, 0x0000, 0x0000, 0x0000 } },
1963 { 0x1D419, { 0x007A, 0x0000, 0x0000, 0x0000 } },
1964 { 0x1D434, { 0x0061, 0x0000, 0x0000, 0x0000 } },
1965 { 0x1D435, { 0x0062, 0x0000, 0x0000, 0x0000 } },
1966 { 0x1D436, { 0x0063, 0x0000, 0x0000, 0x0000 } },
1967 { 0x1D437, { 0x0064, 0x0000, 0x0000, 0x0000 } },
1968 { 0x1D438, { 0x0065, 0x0000, 0x0000, 0x0000 } },
1969 { 0x1D439, { 0x0066, 0x0000, 0x0000, 0x0000 } },
1970 { 0x1D43A, { 0x0067, 0x0000, 0x0000, 0x0000 } },
1971 { 0x1D43B, { 0x0068, 0x0000, 0x0000, 0x0000 } },
1972 { 0x1D43C, { 0x0069, 0x0000, 0x0000, 0x0000 } },
1973 { 0x1D43D, { 0x006A, 0x0000, 0x0000, 0x0000 } },
1974 { 0x1D43E, { 0x006B, 0x0000, 0x0000, 0x0000 } },
1975 { 0x1D43F, { 0x006C, 0x0000, 0x0000, 0x0000 } },
1976 { 0x1D440, { 0x006D, 0x0000, 0x0000, 0x0000 } },
1977 { 0x1D441, { 0x006E, 0x0000, 0x0000, 0x0000 } },
1978 { 0x1D442, { 0x006F, 0x0000, 0x0000, 0x0000 } },
1979 { 0x1D443, { 0x0070, 0x0000, 0x0000, 0x0000 } },
1980 { 0x1D444, { 0x0071, 0x0000, 0x0000, 0x0000 } },
1981 { 0x1D445, { 0x0072, 0x0000, 0x0000, 0x0000 } },
1982 { 0x1D446, { 0x0073, 0x0000, 0x0000, 0x0000 } },
1983 { 0x1D447, { 0x0074, 0x0000, 0x0000, 0x0000 } },
1984 { 0x1D448, { 0x0075, 0x0000, 0x0000, 0x0000 } },
1985 { 0x1D449, { 0x0076, 0x0000, 0x0000, 0x0000 } },
1986 { 0x1D44A, { 0x0077, 0x0000, 0x0000, 0x0000 } },
1987 { 0x1D44B, { 0x0078, 0x0000, 0x0000, 0x0000 } },
1988 { 0x1D44C, { 0x0079, 0x0000, 0x0000, 0x0000 } },
1989 { 0x1D44D, { 0x007A, 0x0000, 0x0000, 0x0000 } },
1990 { 0x1D468, { 0x0061, 0x0000, 0x0000, 0x0000 } },
1991 { 0x1D469, { 0x0062, 0x0000, 0x0000, 0x0000 } },
1992 { 0x1D46A, { 0x0063, 0x0000, 0x0000, 0x0000 } },
1993 { 0x1D46B, { 0x0064, 0x0000, 0x0000, 0x0000 } },
1994 { 0x1D46C, { 0x0065, 0x0000, 0x0000, 0x0000 } },
1995 { 0x1D46D, { 0x0066, 0x0000, 0x0000, 0x0000 } },
1996 { 0x1D46E, { 0x0067, 0x0000, 0x0000, 0x0000 } },
1997 { 0x1D46F, { 0x0068, 0x0000, 0x0000, 0x0000 } },
1998 { 0x1D470, { 0x0069, 0x0000, 0x0000, 0x0000 } },
1999 { 0x1D471, { 0x006A, 0x0000, 0x0000, 0x0000 } },
2000 { 0x1D472, { 0x006B, 0x0000, 0x0000, 0x0000 } },
2001 { 0x1D473, { 0x006C, 0x0000, 0x0000, 0x0000 } },
2002 { 0x1D474, { 0x006D, 0x0000, 0x0000, 0x0000 } },
2003 { 0x1D475, { 0x006E, 0x0000, 0x0000, 0x0000 } },
2004 { 0x1D476, { 0x006F, 0x0000, 0x0000, 0x0000 } },
2005 { 0x1D477, { 0x0070, 0x0000, 0x0000, 0x0000 } },
2006 { 0x1D478, { 0x0071, 0x0000, 0x0000, 0x0000 } },
2007 { 0x1D479, { 0x0072, 0x0000, 0x0000, 0x0000 } },
2008 { 0x1D47A, { 0x0073, 0x0000, 0x0000, 0x0000 } },
2009 { 0x1D47B, { 0x0074, 0x0000, 0x0000, 0x0000 } },
2010 { 0x1D47C, { 0x0075, 0x0000, 0x0000, 0x0000 } },
2011 { 0x1D47D, { 0x0076, 0x0000, 0x0000, 0x0000 } },
2012 { 0x1D47E, { 0x0077, 0x0000, 0x0000, 0x0000 } },
2013 { 0x1D47F, { 0x0078, 0x0000, 0x0000, 0x0000 } },
2014 { 0x1D480, { 0x0079, 0x0000, 0x0000, 0x0000 } },
2015 { 0x1D481, { 0x007A, 0x0000, 0x0000, 0x0000 } },
2016 { 0x1D49C, { 0x0061, 0x0000, 0x0000, 0x0000 } },
2017 { 0x1D49E, { 0x0063, 0x0000, 0x0000, 0x0000 } },
2018 { 0x1D49F, { 0x0064, 0x0000, 0x0000, 0x0000 } },
2019 { 0x1D4A2, { 0x0067, 0x0000, 0x0000, 0x0000 } },
2020 { 0x1D4A5, { 0x006A, 0x0000, 0x0000, 0x0000 } },
2021 { 0x1D4A6, { 0x006B, 0x0000, 0x0000, 0x0000 } },
2022 { 0x1D4A9, { 0x006E, 0x0000, 0x0000, 0x0000 } },
2023 { 0x1D4AA, { 0x006F, 0x0000, 0x0000, 0x0000 } },
2024 { 0x1D4AB, { 0x0070, 0x0000, 0x0000, 0x0000 } },
2025 { 0x1D4AC, { 0x0071, 0x0000, 0x0000, 0x0000 } },
2026 { 0x1D4AE, { 0x0073, 0x0000, 0x0000, 0x0000 } },
2027 { 0x1D4AF, { 0x0074, 0x0000, 0x0000, 0x0000 } },
2028 { 0x1D4B0, { 0x0075, 0x0000, 0x0000, 0x0000 } },
2029 { 0x1D4B1, { 0x0076, 0x0000, 0x0000, 0x0000 } },
2030 { 0x1D4B2, { 0x0077, 0x0000, 0x0000, 0x0000 } },
2031 { 0x1D4B3, { 0x0078, 0x0000, 0x0000, 0x0000 } },
2032 { 0x1D4B4, { 0x0079, 0x0000, 0x0000, 0x0000 } },
2033 { 0x1D4B5, { 0x007A, 0x0000, 0x0000, 0x0000 } },
2034 { 0x1D4D0, { 0x0061, 0x0000, 0x0000, 0x0000 } },
2035 { 0x1D4D1, { 0x0062, 0x0000, 0x0000, 0x0000 } },
2036 { 0x1D4D2, { 0x0063, 0x0000, 0x0000, 0x0000 } },
2037 { 0x1D4D3, { 0x0064, 0x0000, 0x0000, 0x0000 } },
2038 { 0x1D4D4, { 0x0065, 0x0000, 0x0000, 0x0000 } },
2039 { 0x1D4D5, { 0x0066, 0x0000, 0x0000, 0x0000 } },
2040 { 0x1D4D6, { 0x0067, 0x0000, 0x0000, 0x0000 } },
2041 { 0x1D4D7, { 0x0068, 0x0000, 0x0000, 0x0000 } },
2042 { 0x1D4D8, { 0x0069, 0x0000, 0x0000, 0x0000 } },
2043 { 0x1D4D9, { 0x006A, 0x0000, 0x0000, 0x0000 } },
2044 { 0x1D4DA, { 0x006B, 0x0000, 0x0000, 0x0000 } },
2045 { 0x1D4DB, { 0x006C, 0x0000, 0x0000, 0x0000 } },
2046 { 0x1D4DC, { 0x006D, 0x0000, 0x0000, 0x0000 } },
2047 { 0x1D4DD, { 0x006E, 0x0000, 0x0000, 0x0000 } },
2048 { 0x1D4DE, { 0x006F, 0x0000, 0x0000, 0x0000 } },
2049 { 0x1D4DF, { 0x0070, 0x0000, 0x0000, 0x0000 } },
2050 { 0x1D4E0, { 0x0071, 0x0000, 0x0000, 0x0000 } },
2051 { 0x1D4E1, { 0x0072, 0x0000, 0x0000, 0x0000 } },
2052 { 0x1D4E2, { 0x0073, 0x0000, 0x0000, 0x0000 } },
2053 { 0x1D4E3, { 0x0074, 0x0000, 0x0000, 0x0000 } },
2054 { 0x1D4E4, { 0x0075, 0x0000, 0x0000, 0x0000 } },
2055 { 0x1D4E5, { 0x0076, 0x0000, 0x0000, 0x0000 } },
2056 { 0x1D4E6, { 0x0077, 0x0000, 0x0000, 0x0000 } },
2057 { 0x1D4E7, { 0x0078, 0x0000, 0x0000, 0x0000 } },
2058 { 0x1D4E8, { 0x0079, 0x0000, 0x0000, 0x0000 } },
2059 { 0x1D4E9, { 0x007A, 0x0000, 0x0000, 0x0000 } },
2060 { 0x1D504, { 0x0061, 0x0000, 0x0000, 0x0000 } },
2061 { 0x1D505, { 0x0062, 0x0000, 0x0000, 0x0000 } },
2062 { 0x1D507, { 0x0064, 0x0000, 0x0000, 0x0000 } },
2063 { 0x1D508, { 0x0065, 0x0000, 0x0000, 0x0000 } },
2064 { 0x1D509, { 0x0066, 0x0000, 0x0000, 0x0000 } },
2065 { 0x1D50A, { 0x0067, 0x0000, 0x0000, 0x0000 } },
2066 { 0x1D50D, { 0x006A, 0x0000, 0x0000, 0x0000 } },
2067 { 0x1D50E, { 0x006B, 0x0000, 0x0000, 0x0000 } },
2068 { 0x1D50F, { 0x006C, 0x0000, 0x0000, 0x0000 } },
2069 { 0x1D510, { 0x006D, 0x0000, 0x0000, 0x0000 } },
2070 { 0x1D511, { 0x006E, 0x0000, 0x0000, 0x0000 } },
2071 { 0x1D512, { 0x006F, 0x0000, 0x0000, 0x0000 } },
2072 { 0x1D513, { 0x0070, 0x0000, 0x0000, 0x0000 } },
2073 { 0x1D514, { 0x0071, 0x0000, 0x0000, 0x0000 } },
2074 { 0x1D516, { 0x0073, 0x0000, 0x0000, 0x0000 } },
2075 { 0x1D517, { 0x0074, 0x0000, 0x0000, 0x0000 } },
2076 { 0x1D518, { 0x0075, 0x0000, 0x0000, 0x0000 } },
2077 { 0x1D519, { 0x0076, 0x0000, 0x0000, 0x0000 } },
2078 { 0x1D51A, { 0x0077, 0x0000, 0x0000, 0x0000 } },
2079 { 0x1D51B, { 0x0078, 0x0000, 0x0000, 0x0000 } },
2080 { 0x1D51C, { 0x0079, 0x0000, 0x0000, 0x0000 } },
2081 { 0x1D538, { 0x0061, 0x0000, 0x0000, 0x0000 } },
2082 { 0x1D539, { 0x0062, 0x0000, 0x0000, 0x0000 } },
2083 { 0x1D53B, { 0x0064, 0x0000, 0x0000, 0x0000 } },
2084 { 0x1D53C, { 0x0065, 0x0000, 0x0000, 0x0000 } },
2085 { 0x1D53D, { 0x0066, 0x0000, 0x0000, 0x0000 } },
2086 { 0x1D53E, { 0x0067, 0x0000, 0x0000, 0x0000 } },
2087 { 0x1D540, { 0x0069, 0x0000, 0x0000, 0x0000 } },
2088 { 0x1D541, { 0x006A, 0x0000, 0x0000, 0x0000 } },
2089 { 0x1D542, { 0x006B, 0x0000, 0x0000, 0x0000 } },
2090 { 0x1D543, { 0x006C, 0x0000, 0x0000, 0x0000 } },
2091 { 0x1D544, { 0x006D, 0x0000, 0x0000, 0x0000 } },
2092 { 0x1D546, { 0x006F, 0x0000, 0x0000, 0x0000 } },
2093 { 0x1D54A, { 0x0073, 0x0000, 0x0000, 0x0000 } },
2094 { 0x1D54B, { 0x0074, 0x0000, 0x0000, 0x0000 } },
2095 { 0x1D54C, { 0x0075, 0x0000, 0x0000, 0x0000 } },
2096 { 0x1D54D, { 0x0076, 0x0000, 0x0000, 0x0000 } },
2097 { 0x1D54E, { 0x0077, 0x0000, 0x0000, 0x0000 } },
2098 { 0x1D54F, { 0x0078, 0x0000, 0x0000, 0x0000 } },
2099 { 0x1D550, { 0x0079, 0x0000, 0x0000, 0x0000 } },
2100 { 0x1D56C, { 0x0061, 0x0000, 0x0000, 0x0000 } },
2101 { 0x1D56D, { 0x0062, 0x0000, 0x0000, 0x0000 } },
2102 { 0x1D56E, { 0x0063, 0x0000, 0x0000, 0x0000 } },
2103 { 0x1D56F, { 0x0064, 0x0000, 0x0000, 0x0000 } },
2104 { 0x1D570, { 0x0065, 0x0000, 0x0000, 0x0000 } },
2105 { 0x1D571, { 0x0066, 0x0000, 0x0000, 0x0000 } },
2106 { 0x1D572, { 0x0067, 0x0000, 0x0000, 0x0000 } },
2107 { 0x1D573, { 0x0068, 0x0000, 0x0000, 0x0000 } },
2108 { 0x1D574, { 0x0069, 0x0000, 0x0000, 0x0000 } },
2109 { 0x1D575, { 0x006A, 0x0000, 0x0000, 0x0000 } },
2110 { 0x1D576, { 0x006B, 0x0000, 0x0000, 0x0000 } },
2111 { 0x1D577, { 0x006C, 0x0000, 0x0000, 0x0000 } },
2112 { 0x1D578, { 0x006D, 0x0000, 0x0000, 0x0000 } },
2113 { 0x1D579, { 0x006E, 0x0000, 0x0000, 0x0000 } },
2114 { 0x1D57A, { 0x006F, 0x0000, 0x0000, 0x0000 } },
2115 { 0x1D57B, { 0x0070, 0x0000, 0x0000, 0x0000 } },
2116 { 0x1D57C, { 0x0071, 0x0000, 0x0000, 0x0000 } },
2117 { 0x1D57D, { 0x0072, 0x0000, 0x0000, 0x0000 } },
2118 { 0x1D57E, { 0x0073, 0x0000, 0x0000, 0x0000 } },
2119 { 0x1D57F, { 0x0074, 0x0000, 0x0000, 0x0000 } },
2120 { 0x1D580, { 0x0075, 0x0000, 0x0000, 0x0000 } },
2121 { 0x1D581, { 0x0076, 0x0000, 0x0000, 0x0000 } },
2122 { 0x1D582, { 0x0077, 0x0000, 0x0000, 0x0000 } },
2123 { 0x1D583, { 0x0078, 0x0000, 0x0000, 0x0000 } },
2124 { 0x1D584, { 0x0079, 0x0000, 0x0000, 0x0000 } },
2125 { 0x1D585, { 0x007A, 0x0000, 0x0000, 0x0000 } },
2126 { 0x1D5A0, { 0x0061, 0x0000, 0x0000, 0x0000 } },
2127 { 0x1D5A1, { 0x0062, 0x0000, 0x0000, 0x0000 } },
2128 { 0x1D5A2, { 0x0063, 0x0000, 0x0000, 0x0000 } },
2129 { 0x1D5A3, { 0x0064, 0x0000, 0x0000, 0x0000 } },
2130 { 0x1D5A4, { 0x0065, 0x0000, 0x0000, 0x0000 } },
2131 { 0x1D5A5, { 0x0066, 0x0000, 0x0000, 0x0000 } },
2132 { 0x1D5A6, { 0x0067, 0x0000, 0x0000, 0x0000 } },
2133 { 0x1D5A7, { 0x0068, 0x0000, 0x0000, 0x0000 } },
2134 { 0x1D5A8, { 0x0069, 0x0000, 0x0000, 0x0000 } },
2135 { 0x1D5A9, { 0x006A, 0x0000, 0x0000, 0x0000 } },
2136 { 0x1D5AA, { 0x006B, 0x0000, 0x0000, 0x0000 } },
2137 { 0x1D5AB, { 0x006C, 0x0000, 0x0000, 0x0000 } },
2138 { 0x1D5AC, { 0x006D, 0x0000, 0x0000, 0x0000 } },
2139 { 0x1D5AD, { 0x006E, 0x0000, 0x0000, 0x0000 } },
2140 { 0x1D5AE, { 0x006F, 0x0000, 0x0000, 0x0000 } },
2141 { 0x1D5AF, { 0x0070, 0x0000, 0x0000, 0x0000 } },
2142 { 0x1D5B0, { 0x0071, 0x0000, 0x0000, 0x0000 } },
2143 { 0x1D5B1, { 0x0072, 0x0000, 0x0000, 0x0000 } },
2144 { 0x1D5B2, { 0x0073, 0x0000, 0x0000, 0x0000 } },
2145 { 0x1D5B3, { 0x0074, 0x0000, 0x0000, 0x0000 } },
2146 { 0x1D5B4, { 0x0075, 0x0000, 0x0000, 0x0000 } },
2147 { 0x1D5B5, { 0x0076, 0x0000, 0x0000, 0x0000 } },
2148 { 0x1D5B6, { 0x0077, 0x0000, 0x0000, 0x0000 } },
2149 { 0x1D5B7, { 0x0078, 0x0000, 0x0000, 0x0000 } },
2150 { 0x1D5B8, { 0x0079, 0x0000, 0x0000, 0x0000 } },
2151 { 0x1D5B9, { 0x007A, 0x0000, 0x0000, 0x0000 } },
2152 { 0x1D5D4, { 0x0061, 0x0000, 0x0000, 0x0000 } },
2153 { 0x1D5D5, { 0x0062, 0x0000, 0x0000, 0x0000 } },
2154 { 0x1D5D6, { 0x0063, 0x0000, 0x0000, 0x0000 } },
2155 { 0x1D5D7, { 0x0064, 0x0000, 0x0000, 0x0000 } },
2156 { 0x1D5D8, { 0x0065, 0x0000, 0x0000, 0x0000 } },
2157 { 0x1D5D9, { 0x0066, 0x0000, 0x0000, 0x0000 } },
2158 { 0x1D5DA, { 0x0067, 0x0000, 0x0000, 0x0000 } },
2159 { 0x1D5DB, { 0x0068, 0x0000, 0x0000, 0x0000 } },
2160 { 0x1D5DC, { 0x0069, 0x0000, 0x0000, 0x0000 } },
2161 { 0x1D5DD, { 0x006A, 0x0000, 0x0000, 0x0000 } },
2162 { 0x1D5DE, { 0x006B, 0x0000, 0x0000, 0x0000 } },
2163 { 0x1D5DF, { 0x006C, 0x0000, 0x0000, 0x0000 } },
2164 { 0x1D5E0, { 0x006D, 0x0000, 0x0000, 0x0000 } },
2165 { 0x1D5E1, { 0x006E, 0x0000, 0x0000, 0x0000 } },
2166 { 0x1D5E2, { 0x006F, 0x0000, 0x0000, 0x0000 } },
2167 { 0x1D5E3, { 0x0070, 0x0000, 0x0000, 0x0000 } },
2168 { 0x1D5E4, { 0x0071, 0x0000, 0x0000, 0x0000 } },
2169 { 0x1D5E5, { 0x0072, 0x0000, 0x0000, 0x0000 } },
2170 { 0x1D5E6, { 0x0073, 0x0000, 0x0000, 0x0000 } },
2171 { 0x1D5E7, { 0x0074, 0x0000, 0x0000, 0x0000 } },
2172 { 0x1D5E8, { 0x0075, 0x0000, 0x0000, 0x0000 } },
2173 { 0x1D5E9, { 0x0076, 0x0000, 0x0000, 0x0000 } },
2174 { 0x1D5EA, { 0x0077, 0x0000, 0x0000, 0x0000 } },
2175 { 0x1D5EB, { 0x0078, 0x0000, 0x0000, 0x0000 } },
2176 { 0x1D5EC, { 0x0079, 0x0000, 0x0000, 0x0000 } },
2177 { 0x1D5ED, { 0x007A, 0x0000, 0x0000, 0x0000 } },
2178 { 0x1D608, { 0x0061, 0x0000, 0x0000, 0x0000 } },
2179 { 0x1D609, { 0x0062, 0x0000, 0x0000, 0x0000 } },
2180 { 0x1D60A, { 0x0063, 0x0000, 0x0000, 0x0000 } },
2181 { 0x1D60B, { 0x0064, 0x0000, 0x0000, 0x0000 } },
2182 { 0x1D60C, { 0x0065, 0x0000, 0x0000, 0x0000 } },
2183 { 0x1D60D, { 0x0066, 0x0000, 0x0000, 0x0000 } },
2184 { 0x1D60E, { 0x0067, 0x0000, 0x0000, 0x0000 } },
2185 { 0x1D60F, { 0x0068, 0x0000, 0x0000, 0x0000 } },
2186 { 0x1D610, { 0x0069, 0x0000, 0x0000, 0x0000 } },
2187 { 0x1D611, { 0x006A, 0x0000, 0x0000, 0x0000 } },
2188 { 0x1D612, { 0x006B, 0x0000, 0x0000, 0x0000 } },
2189 { 0x1D613, { 0x006C, 0x0000, 0x0000, 0x0000 } },
2190 { 0x1D614, { 0x006D, 0x0000, 0x0000, 0x0000 } },
2191 { 0x1D615, { 0x006E, 0x0000, 0x0000, 0x0000 } },
2192 { 0x1D616, { 0x006F, 0x0000, 0x0000, 0x0000 } },
2193 { 0x1D617, { 0x0070, 0x0000, 0x0000, 0x0000 } },
2194 { 0x1D618, { 0x0071, 0x0000, 0x0000, 0x0000 } },
2195 { 0x1D619, { 0x0072, 0x0000, 0x0000, 0x0000 } },
2196 { 0x1D61A, { 0x0073, 0x0000, 0x0000, 0x0000 } },
2197 { 0x1D61B, { 0x0074, 0x0000, 0x0000, 0x0000 } },
2198 { 0x1D61C, { 0x0075, 0x0000, 0x0000, 0x0000 } },
2199 { 0x1D61D, { 0x0076, 0x0000, 0x0000, 0x0000 } },
2200 { 0x1D61E, { 0x0077, 0x0000, 0x0000, 0x0000 } },
2201 { 0x1D61F, { 0x0078, 0x0000, 0x0000, 0x0000 } },
2202 { 0x1D620, { 0x0079, 0x0000, 0x0000, 0x0000 } },
2203 { 0x1D621, { 0x007A, 0x0000, 0x0000, 0x0000 } },
2204 { 0x1D63C, { 0x0061, 0x0000, 0x0000, 0x0000 } },
2205 { 0x1D63D, { 0x0062, 0x0000, 0x0000, 0x0000 } },
2206 { 0x1D63E, { 0x0063, 0x0000, 0x0000, 0x0000 } },
2207 { 0x1D63F, { 0x0064, 0x0000, 0x0000, 0x0000 } },
2208 { 0x1D640, { 0x0065, 0x0000, 0x0000, 0x0000 } },
2209 { 0x1D641, { 0x0066, 0x0000, 0x0000, 0x0000 } },
2210 { 0x1D642, { 0x0067, 0x0000, 0x0000, 0x0000 } },
2211 { 0x1D643, { 0x0068, 0x0000, 0x0000, 0x0000 } },
2212 { 0x1D644, { 0x0069, 0x0000, 0x0000, 0x0000 } },
2213 { 0x1D645, { 0x006A, 0x0000, 0x0000, 0x0000 } },
2214 { 0x1D646, { 0x006B, 0x0000, 0x0000, 0x0000 } },
2215 { 0x1D647, { 0x006C, 0x0000, 0x0000, 0x0000 } },
2216 { 0x1D648, { 0x006D, 0x0000, 0x0000, 0x0000 } },
2217 { 0x1D649, { 0x006E, 0x0000, 0x0000, 0x0000 } },
2218 { 0x1D64A, { 0x006F, 0x0000, 0x0000, 0x0000 } },
2219 { 0x1D64B, { 0x0070, 0x0000, 0x0000, 0x0000 } },
2220 { 0x1D64C, { 0x0071, 0x0000, 0x0000, 0x0000 } },
2221 { 0x1D64D, { 0x0072, 0x0000, 0x0000, 0x0000 } },
2222 { 0x1D64E, { 0x0073, 0x0000, 0x0000, 0x0000 } },
2223 { 0x1D64F, { 0x0074, 0x0000, 0x0000, 0x0000 } },
2224 { 0x1D650, { 0x0075, 0x0000, 0x0000, 0x0000 } },
2225 { 0x1D651, { 0x0076, 0x0000, 0x0000, 0x0000 } },
2226 { 0x1D652, { 0x0077, 0x0000, 0x0000, 0x0000 } },
2227 { 0x1D653, { 0x0078, 0x0000, 0x0000, 0x0000 } },
2228 { 0x1D654, { 0x0079, 0x0000, 0x0000, 0x0000 } },
2229 { 0x1D655, { 0x007A, 0x0000, 0x0000, 0x0000 } },
2230 { 0x1D670, { 0x0061, 0x0000, 0x0000, 0x0000 } },
2231 { 0x1D671, { 0x0062, 0x0000, 0x0000, 0x0000 } },
2232 { 0x1D672, { 0x0063, 0x0000, 0x0000, 0x0000 } },
2233 { 0x1D673, { 0x0064, 0x0000, 0x0000, 0x0000 } },
2234 { 0x1D674, { 0x0065, 0x0000, 0x0000, 0x0000 } },
2235 { 0x1D675, { 0x0066, 0x0000, 0x0000, 0x0000 } },
2236 { 0x1D676, { 0x0067, 0x0000, 0x0000, 0x0000 } },
2237 { 0x1D677, { 0x0068, 0x0000, 0x0000, 0x0000 } },
2238 { 0x1D678, { 0x0069, 0x0000, 0x0000, 0x0000 } },
2239 { 0x1D679, { 0x006A, 0x0000, 0x0000, 0x0000 } },
2240 { 0x1D67A, { 0x006B, 0x0000, 0x0000, 0x0000 } },
2241 { 0x1D67B, { 0x006C, 0x0000, 0x0000, 0x0000 } },
2242 { 0x1D67C, { 0x006D, 0x0000, 0x0000, 0x0000 } },
2243 { 0x1D67D, { 0x006E, 0x0000, 0x0000, 0x0000 } },
2244 { 0x1D67E, { 0x006F, 0x0000, 0x0000, 0x0000 } },
2245 { 0x1D67F, { 0x0070, 0x0000, 0x0000, 0x0000 } },
2246 { 0x1D680, { 0x0071, 0x0000, 0x0000, 0x0000 } },
2247 { 0x1D681, { 0x0072, 0x0000, 0x0000, 0x0000 } },
2248 { 0x1D682, { 0x0073, 0x0000, 0x0000, 0x0000 } },
2249 { 0x1D683, { 0x0074, 0x0000, 0x0000, 0x0000 } },
2250 { 0x1D684, { 0x0075, 0x0000, 0x0000, 0x0000 } },
2251 { 0x1D685, { 0x0076, 0x0000, 0x0000, 0x0000 } },
2252 { 0x1D686, { 0x0077, 0x0000, 0x0000, 0x0000 } },
2253 { 0x1D687, { 0x0078, 0x0000, 0x0000, 0x0000 } },
2254 { 0x1D688, { 0x0079, 0x0000, 0x0000, 0x0000 } },
2255 { 0x1D689, { 0x007A, 0x0000, 0x0000, 0x0000 } },
2256 { 0x1D6A8, { 0x03B1, 0x0000, 0x0000, 0x0000 } },
2257 { 0x1D6A9, { 0x03B2, 0x0000, 0x0000, 0x0000 } },
2258 { 0x1D6AA, { 0x03B3, 0x0000, 0x0000, 0x0000 } },
2259 { 0x1D6AB, { 0x03B4, 0x0000, 0x0000, 0x0000 } },
2260 { 0x1D6AC, { 0x03B5, 0x0000, 0x0000, 0x0000 } },
2261 { 0x1D6AD, { 0x03B6, 0x0000, 0x0000, 0x0000 } },
2262 { 0x1D6AE, { 0x03B7, 0x0000, 0x0000, 0x0000 } },
2263 { 0x1D6AF, { 0x03B8, 0x0000, 0x0000, 0x0000 } },
2264 { 0x1D6B0, { 0x03B9, 0x0000, 0x0000, 0x0000 } },
2265 { 0x1D6B1, { 0x03BA, 0x0000, 0x0000, 0x0000 } },
2266 { 0x1D6B2, { 0x03BB, 0x0000, 0x0000, 0x0000 } },
2267 { 0x1D6B3, { 0x03BC, 0x0000, 0x0000, 0x0000 } },
2268 { 0x1D6B4, { 0x03BD, 0x0000, 0x0000, 0x0000 } },
2269 { 0x1D6B5, { 0x03BE, 0x0000, 0x0000, 0x0000 } },
2270 { 0x1D6B6, { 0x03BF, 0x0000, 0x0000, 0x0000 } },
2271 { 0x1D6B7, { 0x03C0, 0x0000, 0x0000, 0x0000 } },
2272 { 0x1D6B8, { 0x03C1, 0x0000, 0x0000, 0x0000 } },
2273 { 0x1D6B9, { 0x03B8, 0x0000, 0x0000, 0x0000 } },
2274 { 0x1D6BA, { 0x03C3, 0x0000, 0x0000, 0x0000 } },
2275 { 0x1D6BB, { 0x03C4, 0x0000, 0x0000, 0x0000 } },
2276 { 0x1D6BC, { 0x03C5, 0x0000, 0x0000, 0x0000 } },
2277 { 0x1D6BD, { 0x03C6, 0x0000, 0x0000, 0x0000 } },
2278 { 0x1D6BE, { 0x03C7, 0x0000, 0x0000, 0x0000 } },
2279 { 0x1D6BF, { 0x03C8, 0x0000, 0x0000, 0x0000 } },
2280 { 0x1D6C0, { 0x03C9, 0x0000, 0x0000, 0x0000 } },
2281 { 0x1D6D3, { 0x03C3, 0x0000, 0x0000, 0x0000 } },
2282 { 0x1D6E2, { 0x03B1, 0x0000, 0x0000, 0x0000 } },
2283 { 0x1D6E3, { 0x03B2, 0x0000, 0x0000, 0x0000 } },
2284 { 0x1D6E4, { 0x03B3, 0x0000, 0x0000, 0x0000 } },
2285 { 0x1D6E5, { 0x03B4, 0x0000, 0x0000, 0x0000 } },
2286 { 0x1D6E6, { 0x03B5, 0x0000, 0x0000, 0x0000 } },
2287 { 0x1D6E7, { 0x03B6, 0x0000, 0x0000, 0x0000 } },
2288 { 0x1D6E8, { 0x03B7, 0x0000, 0x0000, 0x0000 } },
2289 { 0x1D6E9, { 0x03B8, 0x0000, 0x0000, 0x0000 } },
2290 { 0x1D6EA, { 0x03B9, 0x0000, 0x0000, 0x0000 } },
2291 { 0x1D6EB, { 0x03BA, 0x0000, 0x0000, 0x0000 } },
2292 { 0x1D6EC, { 0x03BB, 0x0000, 0x0000, 0x0000 } },
2293 { 0x1D6ED, { 0x03BC, 0x0000, 0x0000, 0x0000 } },
2294 { 0x1D6EE, { 0x03BD, 0x0000, 0x0000, 0x0000 } },
2295 { 0x1D6EF, { 0x03BE, 0x0000, 0x0000, 0x0000 } },
2296 { 0x1D6F0, { 0x03BF, 0x0000, 0x0000, 0x0000 } },
2297 { 0x1D6F1, { 0x03C0, 0x0000, 0x0000, 0x0000 } },
2298 { 0x1D6F2, { 0x03C1, 0x0000, 0x0000, 0x0000 } },
2299 { 0x1D6F3, { 0x03B8, 0x0000, 0x0000, 0x0000 } },
2300 { 0x1D6F4, { 0x03C3, 0x0000, 0x0000, 0x0000 } },
2301 { 0x1D6F5, { 0x03C4, 0x0000, 0x0000, 0x0000 } },
2302 { 0x1D6F6, { 0x03C5, 0x0000, 0x0000, 0x0000 } },
2303 { 0x1D6F7, { 0x03C6, 0x0000, 0x0000, 0x0000 } },
2304 { 0x1D6F8, { 0x03C7, 0x0000, 0x0000, 0x0000 } },
2305 { 0x1D6F9, { 0x03C8, 0x0000, 0x0000, 0x0000 } },
2306 { 0x1D6FA, { 0x03C9, 0x0000, 0x0000, 0x0000 } },
2307 { 0x1D70D, { 0x03C3, 0x0000, 0x0000, 0x0000 } },
2308 { 0x1D71C, { 0x03B1, 0x0000, 0x0000, 0x0000 } },
2309 { 0x1D71D, { 0x03B2, 0x0000, 0x0000, 0x0000 } },
2310 { 0x1D71E, { 0x03B3, 0x0000, 0x0000, 0x0000 } },
2311 { 0x1D71F, { 0x03B4, 0x0000, 0x0000, 0x0000 } },
2312 { 0x1D720, { 0x03B5, 0x0000, 0x0000, 0x0000 } },
2313 { 0x1D721, { 0x03B6, 0x0000, 0x0000, 0x0000 } },
2314 { 0x1D722, { 0x03B7, 0x0000, 0x0000, 0x0000 } },
2315 { 0x1D723, { 0x03B8, 0x0000, 0x0000, 0x0000 } },
2316 { 0x1D724, { 0x03B9, 0x0000, 0x0000, 0x0000 } },
2317 { 0x1D725, { 0x03BA, 0x0000, 0x0000, 0x0000 } },
2318 { 0x1D726, { 0x03BB, 0x0000, 0x0000, 0x0000 } },
2319 { 0x1D727, { 0x03BC, 0x0000, 0x0000, 0x0000 } },
2320 { 0x1D728, { 0x03BD, 0x0000, 0x0000, 0x0000 } },
2321 { 0x1D729, { 0x03BE, 0x0000, 0x0000, 0x0000 } },
2322 { 0x1D72A, { 0x03BF, 0x0000, 0x0000, 0x0000 } },
2323 { 0x1D72B, { 0x03C0, 0x0000, 0x0000, 0x0000 } },
2324 { 0x1D72C, { 0x03C1, 0x0000, 0x0000, 0x0000 } },
2325 { 0x1D72D, { 0x03B8, 0x0000, 0x0000, 0x0000 } },
2326 { 0x1D72E, { 0x03C3, 0x0000, 0x0000, 0x0000 } },
2327 { 0x1D72F, { 0x03C4, 0x0000, 0x0000, 0x0000 } },
2328 { 0x1D730, { 0x03C5, 0x0000, 0x0000, 0x0000 } },
2329 { 0x1D731, { 0x03C6, 0x0000, 0x0000, 0x0000 } },
2330 { 0x1D732, { 0x03C7, 0x0000, 0x0000, 0x0000 } },
2331 { 0x1D733, { 0x03C8, 0x0000, 0x0000, 0x0000 } },
2332 { 0x1D734, { 0x03C9, 0x0000, 0x0000, 0x0000 } },
2333 { 0x1D747, { 0x03C3, 0x0000, 0x0000, 0x0000 } },
2334 { 0x1D756, { 0x03B1, 0x0000, 0x0000, 0x0000 } },
2335 { 0x1D757, { 0x03B2, 0x0000, 0x0000, 0x0000 } },
2336 { 0x1D758, { 0x03B3, 0x0000, 0x0000, 0x0000 } },
2337 { 0x1D759, { 0x03B4, 0x0000, 0x0000, 0x0000 } },
2338 { 0x1D75A, { 0x03B5, 0x0000, 0x0000, 0x0000 } },
2339 { 0x1D75B, { 0x03B6, 0x0000, 0x0000, 0x0000 } },
2340 { 0x1D75C, { 0x03B7, 0x0000, 0x0000, 0x0000 } },
2341 { 0x1D75D, { 0x03B8, 0x0000, 0x0000, 0x0000 } },
2342 { 0x1D75E, { 0x03B9, 0x0000, 0x0000, 0x0000 } },
2343 { 0x1D75F, { 0x03BA, 0x0000, 0x0000, 0x0000 } },
2344 { 0x1D760, { 0x03BB, 0x0000, 0x0000, 0x0000 } },
2345 { 0x1D761, { 0x03BC, 0x0000, 0x0000, 0x0000 } },
2346 { 0x1D762, { 0x03BD, 0x0000, 0x0000, 0x0000 } },
2347 { 0x1D763, { 0x03BE, 0x0000, 0x0000, 0x0000 } },
2348 { 0x1D764, { 0x03BF, 0x0000, 0x0000, 0x0000 } },
2349 { 0x1D765, { 0x03C0, 0x0000, 0x0000, 0x0000 } },
2350 { 0x1D766, { 0x03C1, 0x0000, 0x0000, 0x0000 } },
2351 { 0x1D767, { 0x03B8, 0x0000, 0x0000, 0x0000 } },
2352 { 0x1D768, { 0x03C3, 0x0000, 0x0000, 0x0000 } },
2353 { 0x1D769, { 0x03C4, 0x0000, 0x0000, 0x0000 } },
2354 { 0x1D76A, { 0x03C5, 0x0000, 0x0000, 0x0000 } },
2355 { 0x1D76B, { 0x03C6, 0x0000, 0x0000, 0x0000 } },
2356 { 0x1D76C, { 0x03C7, 0x0000, 0x0000, 0x0000 } },
2357 { 0x1D76D, { 0x03C8, 0x0000, 0x0000, 0x0000 } },
2358 { 0x1D76E, { 0x03C9, 0x0000, 0x0000, 0x0000 } },
2359 { 0x1D781, { 0x03C3, 0x0000, 0x0000, 0x0000 } },
2360 { 0x1D790, { 0x03B1, 0x0000, 0x0000, 0x0000 } },
2361 { 0x1D791, { 0x03B2, 0x0000, 0x0000, 0x0000 } },
2362 { 0x1D792, { 0x03B3, 0x0000, 0x0000, 0x0000 } },
2363 { 0x1D793, { 0x03B4, 0x0000, 0x0000, 0x0000 } },
2364 { 0x1D794, { 0x03B5, 0x0000, 0x0000, 0x0000 } },
2365 { 0x1D795, { 0x03B6, 0x0000, 0x0000, 0x0000 } },
2366 { 0x1D796, { 0x03B7, 0x0000, 0x0000, 0x0000 } },
2367 { 0x1D797, { 0x03B8, 0x0000, 0x0000, 0x0000 } },
2368 { 0x1D798, { 0x03B9, 0x0000, 0x0000, 0x0000 } },
2369 { 0x1D799, { 0x03BA, 0x0000, 0x0000, 0x0000 } },
2370 { 0x1D79A, { 0x03BB, 0x0000, 0x0000, 0x0000 } },
2371 { 0x1D79B, { 0x03BC, 0x0000, 0x0000, 0x0000 } },
2372 { 0x1D79C, { 0x03BD, 0x0000, 0x0000, 0x0000 } },
2373 { 0x1D79D, { 0x03BE, 0x0000, 0x0000, 0x0000 } },
2374 { 0x1D79E, { 0x03BF, 0x0000, 0x0000, 0x0000 } },
2375 { 0x1D79F, { 0x03C0, 0x0000, 0x0000, 0x0000 } },
2376 { 0x1D7A0, { 0x03C1, 0x0000, 0x0000, 0x0000 } },
2377 { 0x1D7A1, { 0x03B8, 0x0000, 0x0000, 0x0000 } },
2378 { 0x1D7A2, { 0x03C3, 0x0000, 0x0000, 0x0000 } },
2379 { 0x1D7A3, { 0x03C4, 0x0000, 0x0000, 0x0000 } },
2380 { 0x1D7A4, { 0x03C5, 0x0000, 0x0000, 0x0000 } },
2381 { 0x1D7A5, { 0x03C6, 0x0000, 0x0000, 0x0000 } },
2382 { 0x1D7A6, { 0x03C7, 0x0000, 0x0000, 0x0000 } },
2383 { 0x1D7A7, { 0x03C8, 0x0000, 0x0000, 0x0000 } },
2384 { 0x1D7A8, { 0x03C9, 0x0000, 0x0000, 0x0000 } },
2385 { 0x1D7BB, { 0x03C3, 0x0000, 0x0000, 0x0000 } }
2393 for (
int i = from; i < str->
size(); ++i) {
2396 if (uc <= 'Z' && uc >=
'A') {
2404 if (
QChar(low).isLowSurrogate()) {
2410 NameprepCaseFolding + N,
2412 if ((entry - NameprepCaseFolding) != N) {
2414 while (l < 4 && entry->
mapping[l])
2416 if (l > 1 || uc > 0xffff) {
2418 str->
replace(i, 1, reinterpret_cast<const QChar *>(&entry->
mapping[0]), l);
2420 str->
replace(--i, 2, reinterpret_cast<const QChar *>(&entry->
mapping[0]), l);
2438 case 0x00AD:
case 0x034F:
case 0x1806:
case 0x180B:
case 0x180C:
case 0x180D:
2439 case 0x200B:
case 0x200C:
case 0x200D:
case 0x2060:
case 0xFE00:
case 0xFE01:
2440 case 0xFE02:
case 0xFE03:
case 0xFE04:
case 0xFE05:
case 0xFE06:
case 0xFE07:
2441 case 0xFE08:
case 0xFE09:
case 0xFE0A:
case 0xFE0B:
case 0xFE0C:
case 0xFE0D:
2442 case 0xFE0E:
case 0xFE0F:
case 0xFEFF:
2454 for ( ; in <
end; ++in) {
2456 if (
QChar(uc).isHighSurrogate() && in < end - 1) {
2476 || (uc >= 0x2000 && uc <= 0x200F)
2477 || (uc >= 0x2028 && uc <= 0x202F)
2479 || (uc >= 0x2060 && uc <= 0x2063)
2480 || (uc >= 0x206A && uc <= 0x206F)
2481 || (uc >= 0x2FF0 && uc <= 0x2FFB)
2483 || (uc >= 0xD800 && uc <= 0xDFFF)
2484 || (uc >= 0xE000 && uc <= 0xF8FF)
2485 || (uc >= 0xFDD0 && uc <= 0xFDEF)
2487 || (uc >= 0xFFF9 && uc <= 0xFFFF))) {
2491 if (!((uc >= 0x1D173 && uc <= 0x1D17A)
2492 || (uc >= 0x1FFFE && uc <= 0x1FFFF)
2493 || (uc >= 0x2FFFE && uc <= 0x2FFFF)
2494 || (uc >= 0x3FFFE && uc <= 0x3FFFF)
2495 || (uc >= 0x4FFFE && uc <= 0x4FFFF)
2496 || (uc >= 0x5FFFE && uc <= 0x5FFFF)
2497 || (uc >= 0x6FFFE && uc <= 0x6FFFF)
2498 || (uc >= 0x7FFFE && uc <= 0x7FFFF)
2499 || (uc >= 0x8FFFE && uc <= 0x8FFFF)
2500 || (uc >= 0x9FFFE && uc <= 0x9FFFF)
2501 || (uc >= 0xAFFFE && uc <= 0xAFFFF)
2502 || (uc >= 0xBFFFE && uc <= 0xBFFFF)
2503 || (uc >= 0xCFFFE && uc <= 0xCFFFF)
2504 || (uc >= 0xDFFFE && uc <= 0xDFFFF)
2506 || (uc >= 0xE0020 && uc <= 0xE007F)
2507 || (uc >= 0xEFFFE && uc <= 0xEFFFF)
2508 || (uc >= 0xF0000 && uc <= 0xFFFFD)
2509 || (uc >= 0xFFFFE && uc <= 0xFFFFF)
2510 || (uc >= 0x100000 && uc <= 0x10FFFD)
2511 || (uc >= 0x10FFFE && uc <= 0x10FFFF))) {
2527 || (uc >= 0x05D0 && uc <= 0x05EA)
2528 || (uc >= 0x05F0 && uc <= 0x05F4)
2531 || (uc >= 0x0621 && uc <= 0x063A)
2532 || (uc >= 0x0640 && uc <= 0x064A)
2533 || (uc >= 0x066D && uc <= 0x066F)
2534 || (uc >= 0x0671 && uc <= 0x06D5)
2536 || (uc >= 0x06E5 && uc <= 0x06E6)
2537 || (uc >= 0x06FA && uc <= 0x06FE)
2538 || (uc >= 0x0700 && uc <= 0x070D)
2540 || (uc >= 0x0712 && uc <= 0x072C)
2541 || (uc >= 0x0780 && uc <= 0x07A5)
2545 || (uc >= 0xFB1F && uc <= 0xFB28)
2546 || (uc >= 0xFB2A && uc <= 0xFB36)
2547 || (uc >= 0xFB38 && uc <= 0xFB3C)
2549 || (uc >= 0xFB40 && uc <= 0xFB41)
2550 || (uc >= 0xFB43 && uc <= 0xFB44)
2551 || (uc >= 0xFB46 && uc <= 0xFBB1)
2552 || (uc >= 0xFBD3 && uc <= 0xFD3D)
2553 || (uc >= 0xFD50 && uc <= 0xFD8F)
2554 || (uc >= 0xFD92 && uc <= 0xFDC7)
2555 || (uc >= 0xFDF0 && uc <= 0xFDFC)
2556 || (uc >= 0xFE70 && uc <= 0xFE74)
2557 || (uc >= 0xFE76 && uc <= 0xFEFC);
2563 return (uc >= 0x0041 && uc <= 0x005A)
2564 || (uc >= 0x0061 && uc <= 0x007A);
2569 || (uc >= 0x00C0 && uc <= 0x00D6)
2570 || (uc >= 0x00D8 && uc <= 0x00F6)
2571 || (uc >= 0x00F8 && uc <= 0x0220)
2572 || (uc >= 0x0222 && uc <= 0x0233)
2573 || (uc >= 0x0250 && uc <= 0x02AD)
2574 || (uc >= 0x02B0 && uc <= 0x02B8)
2575 || (uc >= 0x02BB && uc <= 0x02C1)
2576 || (uc >= 0x02D0 && uc <= 0x02D1)
2577 || (uc >= 0x02E0 && uc <= 0x02E4)
2581 || (uc >= 0x0388 && uc <= 0x038A)) {
2586 || (uc >= 0x038E && uc <= 0x03A1)
2587 || (uc >= 0x03A3 && uc <= 0x03CE)
2588 || (uc >= 0x03D0 && uc <= 0x03F5)
2589 || (uc >= 0x0400 && uc <= 0x0482)
2590 || (uc >= 0x048A && uc <= 0x04CE)
2591 || (uc >= 0x04D0 && uc <= 0x04F5)
2592 || (uc >= 0x04F8 && uc <= 0x04F9)
2593 || (uc >= 0x0500 && uc <= 0x050F)
2594 || (uc >= 0x0531 && uc <= 0x0556)
2595 || (uc >= 0x0559 && uc <= 0x055F)
2596 || (uc >= 0x0561 && uc <= 0x0587)
2599 || (uc >= 0x0905 && uc <= 0x0939)
2600 || (uc >= 0x093D && uc <= 0x0940)
2601 || (uc >= 0x0949 && uc <= 0x094C)
2606 if ((uc >= 0x0958 && uc <= 0x0961)
2607 || (uc >= 0x0964 && uc <= 0x0970)
2608 || (uc >= 0x0982 && uc <= 0x0983)
2609 || (uc >= 0x0985 && uc <= 0x098C)
2610 || (uc >= 0x098F && uc <= 0x0990)
2611 || (uc >= 0x0993 && uc <= 0x09A8)
2612 || (uc >= 0x09AA && uc <= 0x09B0)
2614 || (uc >= 0x09B6 && uc <= 0x09B9)
2615 || (uc >= 0x09BE && uc <= 0x09C0)
2616 || (uc >= 0x09C7 && uc <= 0x09C8)
2617 || (uc >= 0x09CB && uc <= 0x09CC)
2619 || (uc >= 0x09DC && uc <= 0x09DD)
2620 || (uc >= 0x09DF && uc <= 0x09E1)
2621 || (uc >= 0x09E6 && uc <= 0x09F1)
2622 || (uc >= 0x09F4 && uc <= 0x09FA)
2623 || (uc >= 0x0A05 && uc <= 0x0A0A)
2624 || (uc >= 0x0A0F && uc <= 0x0A10)
2625 || (uc >= 0x0A13 && uc <= 0x0A28)
2626 || (uc >= 0x0A2A && uc <= 0x0A30)
2627 || (uc >= 0x0A32 && uc <= 0x0A33)) {
2631 if ((uc >= 0x0A35 && uc <= 0x0A36)
2632 || (uc >= 0x0A38 && uc <= 0x0A39)
2633 || (uc >= 0x0A3E && uc <= 0x0A40)
2634 || (uc >= 0x0A59 && uc <= 0x0A5C)
2636 || (uc >= 0x0A66 && uc <= 0x0A6F)
2637 || (uc >= 0x0A72 && uc <= 0x0A74)
2639 || (uc >= 0x0A85 && uc <= 0x0A8B)
2641 || (uc >= 0x0A8F && uc <= 0x0A91)
2642 || (uc >= 0x0A93 && uc <= 0x0AA8)
2643 || (uc >= 0x0AAA && uc <= 0x0AB0)
2644 || (uc >= 0x0AB2 && uc <= 0x0AB3)
2645 || (uc >= 0x0AB5 && uc <= 0x0AB9)
2646 || (uc >= 0x0ABD && uc <= 0x0AC0)
2648 || (uc >= 0x0ACB && uc <= 0x0ACC)
2651 || (uc >= 0x0AE6 && uc <= 0x0AEF)
2652 || (uc >= 0x0B02 && uc <= 0x0B03)
2653 || (uc >= 0x0B05 && uc <= 0x0B0C)
2654 || (uc >= 0x0B0F && uc <= 0x0B10)
2655 || (uc >= 0x0B13 && uc <= 0x0B28)
2656 || (uc >= 0x0B2A && uc <= 0x0B30)) {
2660 if ((uc >= 0x0B32 && uc <= 0x0B33)
2661 || (uc >= 0x0B36 && uc <= 0x0B39)
2662 || (uc >= 0x0B3D && uc <= 0x0B3E)
2664 || (uc >= 0x0B47 && uc <= 0x0B48)
2665 || (uc >= 0x0B4B && uc <= 0x0B4C)
2667 || (uc >= 0x0B5C && uc <= 0x0B5D)
2668 || (uc >= 0x0B5F && uc <= 0x0B61)
2669 || (uc >= 0x0B66 && uc <= 0x0B70)
2671 || (uc >= 0x0B85 && uc <= 0x0B8A)
2672 || (uc >= 0x0B8E && uc <= 0x0B90)
2673 || (uc >= 0x0B92 && uc <= 0x0B95)
2674 || (uc >= 0x0B99 && uc <= 0x0B9A)
2676 || (uc >= 0x0B9E && uc <= 0x0B9F)
2677 || (uc >= 0x0BA3 && uc <= 0x0BA4)
2678 || (uc >= 0x0BA8 && uc <= 0x0BAA)
2679 || (uc >= 0x0BAE && uc <= 0x0BB5)
2680 || (uc >= 0x0BB7 && uc <= 0x0BB9)
2681 || (uc >= 0x0BBE && uc <= 0x0BBF)
2682 || (uc >= 0x0BC1 && uc <= 0x0BC2)
2683 || (uc >= 0x0BC6 && uc <= 0x0BC8)
2684 || (uc >= 0x0BCA && uc <= 0x0BCC)
2686 || (uc >= 0x0BE7 && uc <= 0x0BF2)
2687 || (uc >= 0x0C01 && uc <= 0x0C03)
2688 || (uc >= 0x0C05 && uc <= 0x0C0C)
2689 || (uc >= 0x0C0E && uc <= 0x0C10)
2690 || (uc >= 0x0C12 && uc <= 0x0C28)
2691 || (uc >= 0x0C2A && uc <= 0x0C33)
2692 || (uc >= 0x0C35 && uc <= 0x0C39)) {
2695 if ((uc >= 0x0C41 && uc <= 0x0C44)
2696 || (uc >= 0x0C60 && uc <= 0x0C61)
2697 || (uc >= 0x0C66 && uc <= 0x0C6F)
2698 || (uc >= 0x0C82 && uc <= 0x0C83)
2699 || (uc >= 0x0C85 && uc <= 0x0C8C)
2700 || (uc >= 0x0C8E && uc <= 0x0C90)
2701 || (uc >= 0x0C92 && uc <= 0x0CA8)
2702 || (uc >= 0x0CAA && uc <= 0x0CB3)
2703 || (uc >= 0x0CB5 && uc <= 0x0CB9)
2705 || (uc >= 0x0CC0 && uc <= 0x0CC4)
2706 || (uc >= 0x0CC7 && uc <= 0x0CC8)
2707 || (uc >= 0x0CCA && uc <= 0x0CCB)
2708 || (uc >= 0x0CD5 && uc <= 0x0CD6)
2710 || (uc >= 0x0CE0 && uc <= 0x0CE1)
2711 || (uc >= 0x0CE6 && uc <= 0x0CEF)
2712 || (uc >= 0x0D02 && uc <= 0x0D03)
2713 || (uc >= 0x0D05 && uc <= 0x0D0C)
2714 || (uc >= 0x0D0E && uc <= 0x0D10)
2715 || (uc >= 0x0D12 && uc <= 0x0D28)
2716 || (uc >= 0x0D2A && uc <= 0x0D39)
2717 || (uc >= 0x0D3E && uc <= 0x0D40)
2718 || (uc >= 0x0D46 && uc <= 0x0D48)
2719 || (uc >= 0x0D4A && uc <= 0x0D4C)
2721 || (uc >= 0x0D60 && uc <= 0x0D61)
2722 || (uc >= 0x0D66 && uc <= 0x0D6F)
2723 || (uc >= 0x0D82 && uc <= 0x0D83)
2724 || (uc >= 0x0D85 && uc <= 0x0D96)
2725 || (uc >= 0x0D9A && uc <= 0x0DB1)
2726 || (uc >= 0x0DB3 && uc <= 0x0DBB)
2730 if ((uc >= 0x0DC0 && uc <= 0x0DC6)
2731 || (uc >= 0x0DCF && uc <= 0x0DD1)
2732 || (uc >= 0x0DD8 && uc <= 0x0DDF)
2733 || (uc >= 0x0DF2 && uc <= 0x0DF4)
2734 || (uc >= 0x0E01 && uc <= 0x0E30)
2735 || (uc >= 0x0E32 && uc <= 0x0E33)
2736 || (uc >= 0x0E40 && uc <= 0x0E46)
2737 || (uc >= 0x0E4F && uc <= 0x0E5B)
2738 || (uc >= 0x0E81 && uc <= 0x0E82)
2740 || (uc >= 0x0E87 && uc <= 0x0E88)
2743 || (uc >= 0x0E94 && uc <= 0x0E97)
2744 || (uc >= 0x0E99 && uc <= 0x0E9F)
2745 || (uc >= 0x0EA1 && uc <= 0x0EA3)
2748 || (uc >= 0x0EAA && uc <= 0x0EAB)
2749 || (uc >= 0x0EAD && uc <= 0x0EB0)
2750 || (uc >= 0x0EB2 && uc <= 0x0EB3)
2752 || (uc >= 0x0EC0 && uc <= 0x0EC4)
2754 || (uc >= 0x0ED0 && uc <= 0x0ED9)
2755 || (uc >= 0x0EDC && uc <= 0x0EDD)
2756 || (uc >= 0x0F00 && uc <= 0x0F17)
2757 || (uc >= 0x0F1A && uc <= 0x0F34)
2760 || (uc >= 0x0F3E && uc <= 0x0F47)
2761 || (uc >= 0x0F49 && uc <= 0x0F6A)
2764 || (uc >= 0x0F88 && uc <= 0x0F8B)
2765 || (uc >= 0x0FBE && uc <= 0x0FC5)
2766 || (uc >= 0x0FC7 && uc <= 0x0FCC)
2771 if ((uc >= 0x1000 && uc <= 0x1021)
2772 || (uc >= 0x1023 && uc <= 0x1027)
2773 || (uc >= 0x1029 && uc <= 0x102A)
2777 || (uc >= 0x1040 && uc <= 0x1057)
2778 || (uc >= 0x10A0 && uc <= 0x10C5)
2779 || (uc >= 0x10D0 && uc <= 0x10F8)
2781 || (uc >= 0x1100 && uc <= 0x1159)
2782 || (uc >= 0x115F && uc <= 0x11A2)
2783 || (uc >= 0x11A8 && uc <= 0x11F9)
2784 || (uc >= 0x1200 && uc <= 0x1206)
2785 || (uc >= 0x1208 && uc <= 0x1246)
2787 || (uc >= 0x124A && uc <= 0x124D)
2788 || (uc >= 0x1250 && uc <= 0x1256)
2790 || (uc >= 0x125A && uc <= 0x125D)
2791 || (uc >= 0x1260 && uc <= 0x1286)
2793 || (uc >= 0x128A && uc <= 0x128D)
2794 || (uc >= 0x1290 && uc <= 0x12AE)
2796 || (uc >= 0x12B2 && uc <= 0x12B5)
2797 || (uc >= 0x12B8 && uc <= 0x12BE)
2799 || (uc >= 0x12C2 && uc <= 0x12C5)
2800 || (uc >= 0x12C8 && uc <= 0x12CE)
2801 || (uc >= 0x12D0 && uc <= 0x12D6)
2802 || (uc >= 0x12D8 && uc <= 0x12EE)
2803 || (uc >= 0x12F0 && uc <= 0x130E)
2808 if ((uc >= 0x1312 && uc <= 0x1315)
2809 || (uc >= 0x1318 && uc <= 0x131E)
2810 || (uc >= 0x1320 && uc <= 0x1346)
2811 || (uc >= 0x1348 && uc <= 0x135A)
2812 || (uc >= 0x1361 && uc <= 0x137C)
2813 || (uc >= 0x13A0 && uc <= 0x13F4)
2814 || (uc >= 0x1401 && uc <= 0x1676)
2815 || (uc >= 0x1681 && uc <= 0x169A)
2816 || (uc >= 0x16A0 && uc <= 0x16F0)
2817 || (uc >= 0x1700 && uc <= 0x170C)
2818 || (uc >= 0x170E && uc <= 0x1711)
2819 || (uc >= 0x1720 && uc <= 0x1731)
2820 || (uc >= 0x1735 && uc <= 0x1736)
2821 || (uc >= 0x1740 && uc <= 0x1751)
2822 || (uc >= 0x1760 && uc <= 0x176C)
2823 || (uc >= 0x176E && uc <= 0x1770)
2824 || (uc >= 0x1780 && uc <= 0x17B6)
2825 || (uc >= 0x17BE && uc <= 0x17C5)
2826 || (uc >= 0x17C7 && uc <= 0x17C8)
2827 || (uc >= 0x17D4 && uc <= 0x17DA)
2829 || (uc >= 0x17E0 && uc <= 0x17E9)
2830 || (uc >= 0x1810 && uc <= 0x1819)
2831 || (uc >= 0x1820 && uc <= 0x1877)
2832 || (uc >= 0x1880 && uc <= 0x18A8)
2833 || (uc >= 0x1E00 && uc <= 0x1E9B)
2834 || (uc >= 0x1EA0 && uc <= 0x1EF9)
2835 || (uc >= 0x1F00 && uc <= 0x1F15)
2836 || (uc >= 0x1F18 && uc <= 0x1F1D)
2837 || (uc >= 0x1F20 && uc <= 0x1F45)
2838 || (uc >= 0x1F48 && uc <= 0x1F4D)
2839 || (uc >= 0x1F50 && uc <= 0x1F57)
2846 if ((uc >= 0x1F5F && uc <= 0x1F7D)
2847 || (uc >= 0x1F80 && uc <= 0x1FB4)
2848 || (uc >= 0x1FB6 && uc <= 0x1FBC)
2850 || (uc >= 0x1FC2 && uc <= 0x1FC4)
2851 || (uc >= 0x1FC6 && uc <= 0x1FCC)
2852 || (uc >= 0x1FD0 && uc <= 0x1FD3)
2853 || (uc >= 0x1FD6 && uc <= 0x1FDB)
2854 || (uc >= 0x1FE0 && uc <= 0x1FEC)
2855 || (uc >= 0x1FF2 && uc <= 0x1FF4)
2856 || (uc >= 0x1FF6 && uc <= 0x1FFC)
2862 || (uc >= 0x210A && uc <= 0x2113)
2864 || (uc >= 0x2119 && uc <= 0x211D)) {
2871 || (uc >= 0x212A && uc <= 0x212D)
2872 || (uc >= 0x212F && uc <= 0x2131)
2873 || (uc >= 0x2133 && uc <= 0x2139)
2874 || (uc >= 0x213D && uc <= 0x213F)
2875 || (uc >= 0x2145 && uc <= 0x2149)
2876 || (uc >= 0x2160 && uc <= 0x2183)
2877 || (uc >= 0x2336 && uc <= 0x237A)
2879 || (uc >= 0x249C && uc <= 0x24E9)
2880 || (uc >= 0x3005 && uc <= 0x3007)
2881 || (uc >= 0x3021 && uc <= 0x3029)
2882 || (uc >= 0x3031 && uc <= 0x3035)
2883 || (uc >= 0x3038 && uc <= 0x303C)
2884 || (uc >= 0x3041 && uc <= 0x3096)
2885 || (uc >= 0x309D && uc <= 0x309F)
2886 || (uc >= 0x30A1 && uc <= 0x30FA)) {
2890 if ((uc >= 0x30FC && uc <= 0x30FF)
2891 || (uc >= 0x3105 && uc <= 0x312C)
2892 || (uc >= 0x3131 && uc <= 0x318E)
2893 || (uc >= 0x3190 && uc <= 0x31B7)
2894 || (uc >= 0x31F0 && uc <= 0x321C)
2895 || (uc >= 0x3220 && uc <= 0x3243)) {
2899 if ((uc >= 0x3260 && uc <= 0x327B)
2900 || (uc >= 0x327F && uc <= 0x32B0)
2901 || (uc >= 0x32C0 && uc <= 0x32CB)
2902 || (uc >= 0x32D0 && uc <= 0x32FE)
2903 || (uc >= 0x3300 && uc <= 0x3376)
2904 || (uc >= 0x337B && uc <= 0x33DD)) {
2907 if ((uc >= 0x33E0 && uc <= 0x33FE)
2908 || (uc >= 0x3400 && uc <= 0x4DB5)
2909 || (uc >= 0x4E00 && uc <= 0x9FA5)
2910 || (uc >= 0xA000 && uc <= 0xA48C)
2911 || (uc >= 0xAC00 && uc <= 0xD7A3)
2912 || (uc >= 0xD800 && uc <= 0xFA2D)
2913 || (uc >= 0xFA30 && uc <= 0xFA6A)
2914 || (uc >= 0xFB00 && uc <= 0xFB06)
2915 || (uc >= 0xFB13 && uc <= 0xFB17)
2916 || (uc >= 0xFF21 && uc <= 0xFF3A)
2917 || (uc >= 0xFF41 && uc <= 0xFF5A)
2918 || (uc >= 0xFF66 && uc <= 0xFFBE)
2919 || (uc >= 0xFFC2 && uc <= 0xFFC7)
2920 || (uc >= 0xFFCA && uc <= 0xFFCF)
2921 || (uc >= 0xFFD2 && uc <= 0xFFD7)
2922 || (uc >= 0xFFDA && uc <= 0xFFDC)) {
2926 if ((uc >= 0x10300 && uc <= 0x1031E)
2927 || (uc >= 0x10320 && uc <= 0x10323)
2928 || (uc >= 0x10330 && uc <= 0x1034A)
2929 || (uc >= 0x10400 && uc <= 0x10425)
2930 || (uc >= 0x10428 && uc <= 0x1044D)
2931 || (uc >= 0x1D000 && uc <= 0x1D0F5)
2932 || (uc >= 0x1D100 && uc <= 0x1D126)
2933 || (uc >= 0x1D12A && uc <= 0x1D166)
2934 || (uc >= 0x1D16A && uc <= 0x1D172)
2935 || (uc >= 0x1D183 && uc <= 0x1D184)
2936 || (uc >= 0x1D18C && uc <= 0x1D1A9)
2937 || (uc >= 0x1D1AE && uc <= 0x1D1DD)
2938 || (uc >= 0x1D400 && uc <= 0x1D454)
2939 || (uc >= 0x1D456 && uc <= 0x1D49C)
2940 || (uc >= 0x1D49E && uc <= 0x1D49F)
2942 || (uc >= 0x1D4A5 && uc <= 0x1D4A6)
2943 || (uc >= 0x1D4A9 && uc <= 0x1D4AC)
2944 || (uc >= 0x1D4AE && uc <= 0x1D4B9)
2946 || (uc >= 0x1D4BD && uc <= 0x1D4C0)
2947 || (uc >= 0x1D4C2 && uc <= 0x1D4C3)
2948 || (uc >= 0x1D4C5 && uc <= 0x1D505)
2949 || (uc >= 0x1D507 && uc <= 0x1D50A)
2950 || (uc >= 0x1D50D && uc <= 0x1D514)
2951 || (uc >= 0x1D516 && uc <= 0x1D51C)
2952 || (uc >= 0x1D51E && uc <= 0x1D539)
2953 || (uc >= 0x1D53B && uc <= 0x1D53E)
2954 || (uc >= 0x1D540 && uc <= 0x1D544)
2956 || (uc >= 0x1D54A && uc <= 0x1D550)
2957 || (uc >= 0x1D552 && uc <= 0x1D6A3)
2958 || (uc >= 0x1D6A8 && uc <= 0x1D7C9)
2959 || (uc >= 0x20000 && uc <= 0x2A6D6)
2960 || (uc >= 0x2F800 && uc <= 0x2FA1D)
2961 || (uc >= 0xF0000 && uc <= 0xFFFFD)
2962 || (uc >= 0x100000 && uc <= 0x10FFFD)) {
2969 #ifdef QT_BUILD_INTERNAL 2982 QChar *out = src + from;
2985 for ( ; out < e; ++out) {
2989 }
else if (uc >=
'A' && uc <=
'Z') {
2990 *out =
QChar(uc | 0x20);
2995 int firstNonAscii = out - src;
3000 const bool isUnassignedAllowed =
false;
3003 const QChar *in = out;
3004 for ( ; in < e; ++in) {
3006 if (
QChar(uc).isHighSurrogate() && in < e - 1) {
3008 if (
QChar(low).isLowSurrogate()) {
3013 if (!isUnassignedAllowed) {
3039 firstNonAscii > from ? firstNonAscii - 1 : from);
3048 bool containsLCat =
false;
3049 bool containsRandALCat =
false;
3050 src = source->
data();
3051 e = src + source->
size();
3052 for (in = src + from; in < e && (!containsLCat || !containsRandALCat); ++in) {
3054 if (
QChar(uc).isHighSurrogate() && in < e - 1) {
3056 if (
QChar(low).isLowSurrogate()) {
3062 containsLCat =
true;
3064 containsRandALCat =
true;
3066 if (containsRandALCat) {
3078 for (
int i = 0; i < len; ++i) {
3080 if (c ==
'-' && (i == 0 || i == len - 1))
3085 if (c ==
'-' || (c >=
'0' && c <=
'9')
3086 || (c >=
'A' && c <=
'Z')
3087 || (c >=
'a' && c <=
'z')
3101 return digit + 22 + 75 * (digit < 26);
3106 delta /= (firsttime ?
damp : 2);
3107 delta += (delta / numpoints);
3113 return k + (((
base -
tmin + 1) * delta) / (delta +
skew));
3124 for (qq = delta, k =
base;; k +=
base) {
3127 t = (k <= bias) ? tmin : (k >= bias +
tmax) ?
tmax : k - bias;
3131 qq = (qq - t) / (
base - t);
3135 bias =
adapt(delta, h + 1, h == b);
3146 int outLen = output->
length();
3147 output->
resize(outLen + ucLength);
3150 bool skipped =
false;
3152 for (
uint j = 0; j < (
uint) ucLength; ++j) {
3166 int copied = output->
size() - outLen;
3174 *output +=
QChar(0x2d);
3178 while (h < (
uint) ucLength) {
3183 for (j = 0; j < (
uint) ucLength; ++j) {
3184 if (s[j].unicode() >= n && s[j].
unicode() < m)
3189 if (m - n > (
Q_MAXINT - delta) / (h + 1)) {
3194 delta += (m - n) * (h + 1);
3198 for (j = 0; j < (
uint) ucLength; ++j) {
3202 if (s[j].unicode() < n) {
3212 if (s[j].unicode() == n) {
3230 "cat",
"ch",
"cl",
"cn",
3247 "xn--mgberp4a5d4ar",
3262 if (uc == e || *uc != *c)
3267 return (uc == e ? *c : *uc < *c);
3272 while (l && a->
unicode() && *b) {
3288 int len = domain.
size() - idx - 1;
3292 const QChar *tld = tldString.constData();
3294 if (user_idn_whitelist)
3295 return user_idn_whitelist->
contains(tldString);
3299 int i = (l + r + 1) / 2;
3306 i = (l + r + 1) / 2;
3316 return uc == 0x2e || uc == 0x3002 || uc == 0xff0e || uc == 0xff61;
3322 const QChar *ch = b + from;
3348 int labelLength = idx - lastIdx;
3349 if (labelLength == 0) {
3350 if (idx == domain.
length())
3369 int prevLen = result.
size();
3371 result.
resize(prevLen + labelLength);
3375 const QChar *e = in + labelLength;
3376 for (; in < e; ++in, ++out) {
3380 if (uc >=
'A' && uc <=
'Z')
3381 *out =
QChar(uc | 0x20);
3387 if (simple && labelLength > 6) {
3391 static const ushort acePrefixUtf16[] = {
'x',
'n',
'-',
'-' };
3392 if (memcmp(result.
constData() + prevLen, acePrefixUtf16,
sizeof acePrefixUtf16) == 0)
3405 labelLength = result.
length() - prevLen;
3406 register int toReserve = labelLength + 4 + 6;
3408 if (toReserve > aceForm.
capacity())
3430 if (lastIdx < domain.
size() + 1)
3446 valueDelimiter =
'=';
3447 pairDelimiter =
'&';
3449 hasFragment =
false;
3455 : scheme(copy.scheme),
3456 userName(copy.userName),
3457 password(copy.password),
3461 fragment(copy.fragment),
3462 encodedOriginal(copy.encodedOriginal),
3463 encodedUserName(copy.encodedUserName),
3464 encodedPassword(copy.encodedPassword),
3465 encodedPath(copy.encodedPath),
3466 encodedFragment(copy.encodedFragment),
3468 parsingMode(copy.parsingMode),
3469 hasQuery(copy.hasQuery),
3470 hasFragment(copy.hasFragment),
3471 isValid(copy.isValid),
3472 isHostValid(copy.isHostValid),
3473 valueDelimiter(copy.valueDelimiter),
3474 pairDelimiter(copy.pairDelimiter),
3475 stateFlags(copy.stateFlags),
3476 encodedNormalized(copy.encodedNormalized)
3490 bool needsBraces =
false;
3502 else if (needsBraces)
3534 #define ABNF_sub_delims "!$&'()*+,;=" 3535 #define ABNF_gen_delims ":/?#[]@" 3536 #define ABNF_pchar ABNF_sub_delims ":@" 3537 #define ABNF_reserved ABNF_sub_delims ABNF_gen_delims 3600 int portIndex = auth.
length() - 1;
3601 if (portIndex == 0) {
3605 if (c < '0' || c >
'9') {
3607 }
else while (portIndex >= 0) {
3611 }
else if (c ==
'.') {
3619 if (portIndex != -1) {
3621 for (
int i = portIndex + 1; i < auth.
length(); ++i)
3628 if (userInfoIndex != -1 && (portIndex == -1 || userInfoIndex < portIndex))
3632 if (userInfoIndex != -1)
3633 hostIndex = userInfoIndex + 1;
3634 int hostLength = auth.
length() - hostIndex;
3635 if (portIndex != -1)
3636 hostLength -= (auth.
length() - portIndex);
3647 if (delimIndex == -1) {
3711 return '/' + relativePath;
3720 newPath = relativePath;
3733 while (*value < *end) {
3751 char *out = path->
data();
3752 const char *in = out;
3753 const char *
end = out + path->
size();
3758 if (path->
size() == 1 && in[0] ==
'.')
3760 else if (path->
size() == 2 && in[0] ==
'.' && in[1] ==
'.')
3767 if (path->
size() >= 2 && in[0] ==
'.' && in[1] ==
'/')
3769 else if (path->
size() >= 3 && in[0] ==
'.' && in[1] ==
'.' && in[2] ==
'/')
3775 if (in <= end - 3 && in[0] ==
'/' && in[1] ==
'.' && in[2] ==
'/') {
3778 }
else if (in == end - 2 && in[0] ==
'/' && in[1] ==
'.') {
3789 if (in <= end - 4 && in[0] ==
'/' && in[1] ==
'.' && in[2] ==
'.' && in[3] ==
'/') {
3790 while (out > path->
constData() && *(--out) !=
'/')
3792 if (out == path->
constData() && *out !=
'/')
3796 }
else if (in == end - 3 && in[0] ==
'/' && in[1] ==
'.' && in[2] ==
'.') {
3797 while (out > path->
constData() && *(--out) !=
'/')
3812 while (in < end && *in !=
'/')
3840 "port and password"),
3867 memset(&parseData, 0,
sizeof(parseData));
3869 parseData.
port = -1;
3872 const char **
ptr = &pptr;
3874 #if defined (QURL_DEBUG) 3875 qDebug(
"QUrlPrivate::parse(), parsing \"%s\"", pptr);
3879 bool isSchemeValid =
_scheme(ptr, &parseData);
3881 if (isSchemeValid ==
false) {
3883 char ch = *((*ptr)++);
3887 #if defined (QURL_DEBUG) 3888 qDebug(
"QUrlPrivate::parse(), unrecognized: %c%s", ch, *ptr);
3897 char ch = *((*ptr)++);
3908 }
else if (ch !=
'\0') {
3913 #if defined (QURL_DEBUG) 3914 qDebug(
"QUrlPrivate::parse(), unrecognized: %c%s", ch, *ptr);
3957 #if defined (QURL_DEBUG) 3961 qDebug(
"QUrl::setUrl(), port = %i", that->
port);
3963 qDebug(
"QUrl::setUrl(), query = %s", __query.constData());
4020 bool hasUserOrPass =
false;
4023 hasUserOrPass =
true;
4028 hasUserOrPass =
true;
4045 url += savedHost.
toUtf8();
4080 #define qToLower(ch) (((ch|32) >= 'a' && (ch|32) <= 'z') ? (ch|32) : ch) 4122 if (nextSlash == -1)
4125 len = nextSlash - lastSlash;
4127 if (memchr(data + lastSlash,
'%', len)) {
4134 result.
append(data + lastSlash, len);
4138 if (nextSlash != -1)
4141 lastSlash = nextSlash;
4142 }
while (lastSlash != -1);
4151 for (
int i = 0; i < qLen; i++) {
4152 if (qLen - i > 2 && tmp.
query.
at(i) ==
'%') {
4262 setUrl(url, parsingMode);
4305 if (!
d)
return false;
4319 if (!
d)
return true;
4398 const char delims[] =
"/#?";
4399 const char *
d = delims;
4403 start = (hostEnd == -1) ? -1 : hostEnd + 1;
4437 return (c >=
'0' && c <=
'9') || (c >=
'a' && c <=
'f');
4442 return c > 9 ? c - 10 +
'A' : c +
'0';
4465 for (
int i = 0, j = 0; i < copy.
size(); ++i, ++j) {
4466 if (copy.
at(i) ==
'%') {
4475 int hostStart = tmp.
indexOf(
"//");
4477 if (hostStart != -1) {
4480 hostEnd = tmp.
indexOf(
'/', hostStart);
4482 hostEnd = tmp.
indexOf(
'#', hostStart);
4486 hostEnd = tmp.
length() - 1;
4496 static const char doEncode[] =
" \"<>[\\]^`{|}";
4497 static const char doEncodeHost[] =
" \"<>\\^`{|}";
4498 for (
int i = 0; i < tmp.
size(); ++i) {
4500 if (c < 32 || c > 127 ||
4501 strchr(hostStart <= i && i <= hostEnd ? doEncodeHost : doEncode, c)) {
4504 buf[1] =
toHex(c >> 4);
4505 buf[2] =
toHex(c & 0xf);
4513 encodedOriginal = tmp;
4845 return result.
mid(1, result.
length() - 2);
4905 if (port < -1 || port > 65535) {
4906 qWarning(
"QUrl::setPort: Out of range");
4941 if (!
d)
return defaultPort;
4944 return d->
port == -1 ? defaultPort :
d->
port;
5060 if (!
d)
return false;
5174 for (
int i = 0; i < query.size(); i++) {
5213 for (
int i = 0; i < query.size(); i++) {
5215 queryTmp += query.
at(i).first;
5217 queryTmp += query.
at(i).second;
5315 while (pos < d->query.size()) {
5316 int valuedelim,
end;
5319 if (valuedelim < end) {
5320 QByteArray v(query + valuedelim + 1, end - valuedelim - 1);
5352 while (pos < d->query.size()) {
5353 int valuedelim,
end;
5355 if (valuedelim < end)
5357 QByteArray(query + valuedelim + 1, end - valuedelim - 1));
5374 if (!
d)
return false;
5396 if (!
d)
return false;
5402 while (pos < d->query.size()) {
5403 int valuedelim,
end;
5453 while (pos < d->query.size()) {
5454 int valuedelim,
end;
5457 return valuedelim < end ?
5458 QByteArray(query + valuedelim + 1, end - valuedelim - 1) : QByteArray();
5485 while (pos < d->query.size()) {
5486 int valuedelim,
end;
5489 QByteArray v(query + valuedelim + 1, end - valuedelim - 1);
5490 values += valuedelim < end ?
5526 while (pos < d->query.size()) {
5527 int valuedelim,
end;
5530 values += valuedelim < end ?
5531 QByteArray(query + valuedelim + 1, end - valuedelim - 1)
5576 while (pos < d->query.size()) {
5577 int valuedelim,
end;
5580 if (end < d->query.size())
5626 while (pos < d->query.size()) {
5627 int valuedelim,
end;
5630 if (end < d->query.size())
5775 if (!
d)
return false;
5793 #ifndef QT_BOOTSTRAPPED 5821 if (!
d)
return relative;
5822 if (!relative.
d)
return *
this;
5866 #if defined(QURL_DEBUG) 5867 qDebug(
"QUrl(\"%s\").resolved(\"%s\") = \"%s\"",
5882 if (!
d)
return true;
5910 if (!tmp.
isNull() || doFileScheme) {
5919 if ((options & QUrl::RemoveAuthority) != QUrl::RemoveAuthority
6058 QString output = delimiterPos < 4 ?
6064 uint cnt = delimiterPos + 1;
6077 uint digit = pc.
at(cnt++);
6078 if (digit - 48 < 10) digit -= 22;
6079 else if (digit - 65 < 26) digit -= 65;
6080 else if (digit - 97 < 26) digit -= 97;
6091 if (k <= bias) t =
tmin;
6092 else if (k >= bias +
tmax) t =
tmax;
6094 if (digit < t)
break;
6101 bias =
adapt(i - oldi, output.
length() + 1, oldi == 0);
6102 n += i / (output.
length() + 1);
6105 i %= (output.
length() + 1);
6177 if (user_idn_whitelist)
6214 if (!user_idn_whitelist)
6216 *user_idn_whitelist = list;
6258 return !(*
this == url);
6358 return !
d ||
d->
ref == 1;
6386 url.
setHost(deslashified.
mid(2, indexOfPath - 2));
6387 if (indexOfPath > 2)
6455 if (!
d)
return false;
6717 void QUrl::setFileName(
const QString &txt)
6737 absPath = absPath.
mid(2);
6741 return fileInfo.
path();
6746 #ifndef QT_NO_DATASTREAM 6781 #endif // QT_NO_DATASTREAM 6783 #ifndef QT_NO_DEBUG_STREAM 6894 && urlPrepended.port() == -1)
6898 if (urlPrepended.isValid() && (!urlPrepended.host().isEmpty() || !urlPrepended.path().isEmpty()))
6904 return urlPrepended;
static QString number(int, int base=10)
This is an overloaded member function, provided for convenience. It differs from the above function o...
static bool QT_FASTCALL _IPv4Address(const char **ptr)
static void toPunycodeHelper(const QChar *s, int ucLength, QString *output)
QBool contains(QChar c, Qt::CaseSensitivity cs=Qt::CaseSensitive) const
The QDebug class provides an output stream for debugging information.
QString topLevelDomain() const
Returns the TLD (Top-Level Domain) of the URL, (e.
void setEncodedPath(const QByteArray &path)
Sets the URL's path to the percent-encoded path.
void qAtomicDetach(T *&d)
This is a helper for the detach method of implicitly shared classes.
void setUserInfo(const QString &userInfo)
Sets the user info of the URL to userInfo.
void chop(int n)
Removes n bytes from the end of the byte array.
void parse(ParseOptions parseOptions=ParseAndSet) const
QStringList allQueryItemValues(const QString &key) const
Returns the a list of query string values whose key is equal to key from the URL. ...
void setQueryDelimiters(char valueDelimiter, char pairDelimiter)
Sets the characters used for delimiting between keys and values, and between key-value pairs in the U...
static QString fromPercentEncoding(const QByteArray &)
Returns a decoded copy of input.
void truncate(int pos)
Truncates the byte array at index position pos.
bool isValid() const
Returns true if the URL is valid; otherwise returns false.
static QByteArray toPercentEncoding(const QString &, const QByteArray &exclude=QByteArray(), const QByteArray &include=QByteArray())
Returns an encoded copy of input.
static void appendEncode(QString *output, uint &delta, uint &bias, uint &b, uint &h)
#define QT_END_NAMESPACE
This macro expands to.
void setParams(const char *source, const char *message, char expected, char found)
The QMutex class provides access serialization between threads.
NormalizationForm
This enum describes the various normalized forms of Unicode text.
void addEncodedQueryItem(const QByteArray &key, const QByteArray &value)
Inserts the pair key = value into the query string of the URL.
char * data()
Returns a pointer to the data stored in the byte array.
const QChar at(int i) const
Returns the character at the given index position in the string.
void setAuthority(const QString &authority)
Sets the authority of the URL to authority.
static QByteArray toPercentEncodingHelper(const QString &s, const char *exclude, const char *include=0)
static const NameprepCaseFoldingEntry NameprepCaseFolding[]
static bool isAbsolutePath(const QString &path)
Returns true if path is absolute; returns false if it is relative.
QString toString(FormattingOptions options=None) const
Returns the human-displayable string representation of the URL.
ushort unicode() const
This is an overloaded member function, provided for convenience. It differs from the above function o...
static const char fragmentExcludeChars[]
QByteArray encodedUserName
The QAtomicInt class provides platform-independent atomic operations on integers. ...
bool isAbsolute() const
Returns true if the file path name is absolute, otherwise returns false if the path is relative...
QByteArray encodedQueryItemValue(const QByteArray &key) const
Returns the first query string value whose key is equal to key from the URL.
QByteArray & append(char c)
Appends the character ch to this byte array.
QByteArray encodedHost() const
Returns the host part of the URL if it is defined; otherwise an empty string is returned.
static bool QT_FASTCALL _IPLiteral(const char **ptr)
void setEncodedPassword(const QByteArray &password)
Sets the URL's password to the percent-encoded password.
static bool QT_FASTCALL _subDelims(const char **ptr)
static void QT_FASTCALL _query(const char **ptr, QUrlParseData *parseData)
QByteArray toUtf8() const Q_REQUIRED_RESULT
Returns a UTF-8 representation of the string as a QByteArray.
static QString fromPercentEncodingHelper(const QByteArray &ba)
QString & replace(int i, int len, QChar after)
The QByteArray class provides an array of bytes.
bool isParentOf(const QUrl &url) const
Returns true if this URL is a parent of childUrl.
void chop(int n)
Removes n characters from the end of the string.
bool isEmpty() const
Returns true if the URL has no data; otherwise returns false.
static const uint initial_n
int length() const
Returns the number of characters in this string.
QByteArray encodedNormalized
QByteArray encodedPassword() const
Returns the password of the URL if it is defined; otherwise an empty string is returned.
static qreal position(QGraphicsObject *item, QDeclarativeAnchorLine::AnchorLine anchorLine)
QString fileName() const
Returns the name of the file, excluding the path.
static bool isBidirectionalRorAL(uint uc)
void unlock()
Unlocks this mutex locker.
static void clear(QVariant::Private *d)
bool isLowSurrogate() const
Returns true if the QChar is the low part of a utf16 surrogate (ie.
static bool QT_FASTCALL _pctEncoded(const char **ptr)
bool startsWith(const QString &s, Qt::CaseSensitivity cs=Qt::CaseSensitive) const
Returns true if the string starts with s; otherwise returns false.
static bool QT_FASTCALL _pathAbs(const char **ptr)
bool operator<(const QUrl &url) const
Returns true if this URL is "less than" the given url.
void setPath(const QString &path)
Sets the path of the URL to path.
QByteArray toLower() const
Returns a lowercase copy of the byte array.
#define QT_TRANSLATE_NOOP(scope, x)
Marks the string literal sourceText for dynamic translation in the given context; i...
#define QURL_HASFLAG(a, b)
QLatin1String(DBUS_INTERFACE_DBUS))) Q_GLOBAL_STATIC_WITH_ARGS(QString
#define QURL_SETFLAG(a, b)
Q_OUTOFLINE_TEMPLATE RandomAccessIterator qBinaryFind(RandomAccessIterator begin, RandomAccessIterator end, const T &value)
long ASN1_INTEGER_get ASN1_INTEGER * a
void setQueryItems(const QList< QPair< QString, QString > > &query)
Sets the query string of the URL to an encoded version of query.
bool ref()
Atomically increments the value of this QAtomicInt.
QByteArray & prepend(char c)
Prepends the character ch to this byte array.
The QUrl class provides a convenient interface for working with URLs.
The QString class provides a Unicode character string.
void setUserInfo(const QString &userInfo)
QString host() const
Returns the host of the URL if it is defined; otherwise an empty string is returned.
static bool qt_check_std3rules(const QChar *uc, int len)
char queryValueDelimiter() const
Returns the character used to delimit between keys and values in the query string of the URL...
bool isHighSurrogate() const
Returns true if the QChar is the high part of a utf16 surrogate (ie.
static const char passwordExcludeChars[]
bool startsWith(const QByteArray &a) const
Returns true if this byte array starts with byte array ba; otherwise returns false.
void setHost(const QString &host)
Sets the host of the URL to host.
QString fragment() const
Returns the fragment of the URL.
Q_CORE_EXPORT QString qTopLevelDomain(const QString &domain)
Return the top-level-domain per Qt's copy of the Mozilla public suffix list of domain.
static void removeDotsFromPath(QByteArray *path)
bool isRelative() const
Returns true if the URL is relative; otherwise returns false.
The QChar class provides a 16-bit Unicode character.
QChar * data()
Returns a pointer to the data stored in the QString.
QByteArray encodedPassword
static QUrl fromUserInput(const QString &userInput)
Returns a valid URL from a user supplied userInput string if one can be deducted. ...
QString fragmentImpl() const
QList< QPair< QString, QString > > queryItems() const
Returns the query string of the URL, as a map of keys and values.
bool hasQuery() const
Returns true if this URL contains a Query (i.
~QUrl()
Destructor; called immediately before the object is deleted.
static bool isMappedToNothing(uint uc)
QString path() const
Returns the path of the URL.
QString errorString() const
Returns a text string that explains why an URL is invalid in the case being; otherwise returns an emp...
QString userInfo(QUrl::FormattingOptions options=QUrl::None) const
void setEncodedFragment(const QByteArray &fragment)
Sets the URL's fragment to the percent-encoded fragment.
bool isLocalFile() const
Returns true if this URL is pointing to a local file path.
QByteArray encodedUserName() const
Returns the user name of the URL if it is defined; otherwise an empty string is returned.
Q_GUI_EXPORT QString errorString(EGLint code=eglGetError())
UnicodeVersion unicodeVersion() const
Returns the Unicode version that introduced this character.
void clear()
Resets the content of the QUrl.
Q_CORE_EXPORT void qDebug(const char *,...)
int port() const
Returns the port of the URL, or -1 if the port is unspecified.
void reserve(int size)
Attempts to allocate memory for at least size characters.
static bool isDotDelimiter(ushort uc)
static char toHex(quint8 c)
static void QT_FASTCALL _fragment(const char **ptr, QUrlParseData *parseData)
static void QT_FASTCALL _port(const char **ptr, int *port)
QString createErrorString()
static QByteArray toAce(const QString &)
Returns the ASCII Compatible Encoding of the given domain name domain.
static QString qt_ACE_do(const QString &domain, AceOperation op)
#define QT_BEGIN_NAMESPACE
This macro expands to.
static bool QT_FASTCALL _h16(const char **ptr)
int lastIndexOf(char c, int from=-1) const
Returns the index position of the last occurrence of character ch in the byte array, searching backward from index position from.
QList< QPair< QByteArray, QByteArray > > encodedQueryItems() const
Returns the query string of the URL, as a map of encoded keys and values.
void truncate(int pos)
Truncates the string at the given position index.
static bool lessThan(const QChar *a, int l, const char *c)
#define QURL_UNSETFLAG(a, b)
void detach()
Forces a detach.
QString left(int n) const Q_REQUIRED_RESULT
Returns a substring that contains the n leftmost characters of the string.
static QString fromPercentEncodingMutable(QByteArray *ba)
static const char pathExcludeChars[]
QString trimmed() const Q_REQUIRED_RESULT
Returns a string that has whitespace removed from the start and the end.
int size() const
Returns the number of characters in this string.
const QChar * unicode() const
Returns a '\0'-terminated Unicode representation of the string.
bool isEmpty() const
Returns true if the string has no characters; otherwise returns false.
static const char *const idn_whitelist[]
QUrl::ParsingMode parsingMode
static bool QT_FASTCALL _HEXDIG(const char **ptr)
QString authority() const
Returns the authority of the URL if it is defined; otherwise an empty string is returned.
static bool QT_FASTCALL _scheme(const char **ptr, QUrlParseData *parseData)
void setUrl(const QString &url)
Constructs a URL by parsing the contents of url.
bool deref()
Atomically decrements the value of this QAtomicInt.
The QStringList class provides a list of strings.
static QByteArray fromRawData(const char *, int size)
Constructs a QByteArray that uses the first size bytes of the data array.
static QString fromPunycode(const QByteArray &)
Returns the Punycode decoded representation of pc.
void setFile(const QString &file)
Sets the file that the QFileInfo provides information about to file.
static QString fromUtf8(const char *, int size=-1)
Returns a QString initialized with the first size bytes of the UTF-8 string str.
void q_fromPercentEncoding(QByteArray *ba)
static const char queryExcludeChars[]
QString userInfo() const
Returns the user info of the URL, or an empty string if the user info is undefined.
Q_CORE_EXPORT void qWarning(const char *,...)
static QStringList idnWhitelist()
Returns the current whitelist of top-level domains that are allowed to have non-ASCII characters in t...
static const char * data(const QByteArray &arr)
int indexOf(QChar c, int from=0, Qt::CaseSensitivity cs=Qt::CaseSensitive) const
The QLatin1String class provides a thin wrapper around an US-ASCII/Latin-1 encoded string literal...
void setEncodedHost(const QByteArray &host)
Sets the URL's host to the ACE- or percent-encoded host.
QByteArray encodedPath() const
Returns the path of the URL if it is defined; otherwise an empty string is returned.
void queryItem(int pos, int *value, int *end)
static bool QT_FASTCALL _IPvFuture(const char **ptr)
QBool contains(const QString &str, Qt::CaseSensitivity cs=Qt::CaseSensitive) const
Returns true if the list contains the string str; otherwise returns false.
void removeAllQueryItems(const QString &key)
Removes all the query string pairs whose key is equal to key from the URL.
static void qt_nameprep(QString *source, int from)
QString right(int n) const Q_REQUIRED_RESULT
Returns a substring that contains the n rightmost characters of the string.
const T * ptr(const T &t)
QDebug & maybeSpace()
Writes a space character to the debug stream, depending on the last character sent to the stream...
QByteArray toLatin1() const Q_REQUIRED_RESULT
Returns a Latin-1 representation of the string as a QByteArray.
QByteArray toEncoded(QUrl::FormattingOptions options=QUrl::None) const
QByteArray left(int len) const
Returns a byte array that contains the leftmost len bytes of this byte array.
The State element defines configurations of objects and properties.
void setAuthority(const QString &auth)
bool isNull() const
Returns true if this byte array is null; otherwise returns false.
static void QT_FASTCALL _host(const char **ptr, QUrlParseData *parseData)
QString toLocalFile() const
Returns the path of this URL formatted as a local file path.
int indexOf(char c, int from=0) const
Returns the index position of the first occurrence of the character ch in the byte array...
static const char userNameExcludeChars[]
void q_normalizePercentEncoding(QByteArray *ba, const char *exclude)
UnicodeVersion
Specifies which version of the [Unicode standard](http://www.
static QByteArray toPunycode(const QString &)
Returns a uc in Punycode encoding.
void setFragment(const QString &fragment)
Sets the fragment of the URL to fragment.
static QString fromAce(const QByteArray &)
Returns the Unicode form of the given domain name domain, which is encoded in the ASCII Compatible En...
static void QT_FASTCALL _authority(const char **ptr, QUrlParseData *parseData)
int length() const
Same as size().
QByteArray toEncoded(FormattingOptions options=None) const
Returns the encoded representation of the URL if it's valid; otherwise an empty QByteArray is returne...
void resize(int size)
Sets the size of the string to size characters.
const char * constData() const
Returns a pointer to the data stored in the byte array.
bool isNull() const
Returns true if this string is null; otherwise returns false.
QString mid(int position, int n=-1) const Q_REQUIRED_RESULT
Returns a string that contains n characters of this string, starting at the specified position index...
QString userName() const
Returns the user name of the URL if it is defined; otherwise an empty string is returned.
QString scheme() const
Returns the scheme of the URL.
The QMutexLocker class is a convenience class that simplifies locking and unlocking mutexes...
int compare(const QString &s) const
static void mapToLowerCase(QString *str, int from)
void setPort(int port)
Sets the port of the URL to port.
static bool QT_FASTCALL _decOctet(const char **ptr)
bool hasQueryItem(const QString &key) const
Returns true if there is a query string pair whose key is equal to key from the URL.
QUrl & operator=(const QUrl ©)
Assigns the specified url to this object.
bool operator<(uint one, const NameprepCaseFoldingEntry &other)
bool operator!=(const QUrl &url) const
Returns true if this URL and the given url are not equal; otherwise returns false.
QByteArray encodedOriginal
int capacity() const
Returns the maximum number of characters that can be stored in the string without forcing a reallocat...
const QByteArray & normalized() const
void clear()
Clears the contents of the string and makes it empty.
int lastIndexOf(QChar c, int from=-1, Qt::CaseSensitivity cs=Qt::CaseSensitive) const
static QString fromLatin1(const char *, int size=-1)
Returns a QString initialized with the first size characters of the Latin-1 string str...
static void QT_FASTCALL _hierPart(const char **ptr, QUrlParseData *parseData)
static bool containsProhibitedOuptut(const QString *str, int from)
static QMap< QByteArray, int > mapping
Q_OUTOFLINE_TEMPLATE QPair< T1, T2 > qMakePair(const T1 &x, const T2 &y)
QString toLower() const Q_REQUIRED_RESULT
Returns a lowercase copy of the string.
static uint encodeDigit(uint digit)
iterator begin()
Returns an STL-style iterator pointing to the first character in the string.
QByteArray toAscii() const Q_REQUIRED_RESULT
Returns an 8-bit representation of the string as a QByteArray.
void setEncodedUrl(const QByteArray &url)
Constructs a URL by parsing the contents of encodedUrl.
static QReadWriteLock lock
bool hasFragment() const
Returns true if this URL contains a fragment (i.
static void QT_FASTCALL _pathAbEmpty(const char **ptr)
#define Q_AUTOTEST_EXPORT
QByteArray mergePaths(const QByteArray &relativePath) const
QString queryItemValue(const QString &key) const
Returns the first query string value whose key is equal to key from the URL.
QString authority(QUrl::FormattingOptions options=QUrl::None) const
static void QT_FASTCALL _regName(const char **ptr)
void qAtomicAssign(T *&d, T *x)
This is a helper for the assignment operators of implicitly shared classes.
void q_toPercentEncoding(QByteArray *ba, const char *exclude, const char *include=0)
QByteArray encodedFragment() const
Returns the fragment of the URL if it is defined; otherwise an empty string is returned.
int qsnprintf(char *str, size_t n, const char *fmt,...)
A portable snprintf() function, calls qvsnprintf.
QString canonicalHost() const
static uint surrogateToUcs4(ushort high, ushort low)
Converts a UTF16 surrogate pair with the given high and low values to its UCS-4 code point...
static bool QT_FASTCALL _IPv6Address(const char **ptr)
QByteArray encodedFragment
int size() const
Returns the number of bytes in this byte array.
void setScheme(const QString &scheme)
Sets the scheme of the URL to scheme.
bool hasEncodedQueryItem(const QByteArray &key) const
Returns true if there is a query string pair whose key is equal to key from the URL.
static bool QT_FASTCALL _segmentNZ(const char **ptr)
void ensureEncodedParts() const
static uint adapt(uint delta, uint numpoints, bool firsttime)
void addQueryItem(const QString &key, const QString &value)
Inserts the pair key = value into the query string of the URL.
static QUrl fromLocalFile(const QString &localfile)
Returns a QUrl representation of localFile, interpreted as a local file.
static bool qt_is_idn_enabled(const QString &domain)
QByteArray & replace(int index, int len, const char *s)
This is an overloaded member function, provided for convenience. It differs from the above function o...
static bool QT_FASTCALL _pchar(const char **ptr)
bool isEmpty() const
Returns true if the byte array has size 0; otherwise returns false.
static bool isHex(char c)
void setEncodedUserInfo(const QUrlParseData *parseData)
static QStringList * user_idn_whitelist
The QDataStream class provides serialization of binary data to a QIODevice.
static bool QT_FASTCALL _pathRootless(const char **ptr)
void removeQueryItem(const QString &key)
Removes the first query string pair whose key is equal to key from the URL.
char queryPairDelimiter() const
Returns the character used to delimit between key-value pairs in the query string of the URL...
ParsingMode
The parsing mode controls the way QUrl parses strings.
static QString fromNativeSeparators(const QString &pathName)
Returns pathName using '/' as file separator.
static bool isBidirectionalL(uint uc)
static const uint initial_bias
static QUrl fromEncoded(const QByteArray &url)
Parses input and returns the corresponding QUrl.
QString path() const
Returns the file's path.
QString & remove(int i, int len)
Removes n characters from the string, starting at the given position index, and returns a reference t...
static void setIdnWhitelist(const QStringList &)
Sets the whitelist of Top-Level Domains (TLDs) that are allowed to have non-ASCII characters in domai...
char at(int i) const
Returns the character at index position i in the byte array.
bool endsWith(const QString &s, Qt::CaseSensitivity cs=Qt::CaseSensitive) const
Returns true if the string ends with s; otherwise returns false.
QUrl resolved(const QUrl &relative) const
Returns the result of the merge of this URL with relative.
The QFileInfo class provides system-independent file information.
void setEncodedQueryItems(const QList< QPair< QByteArray, QByteArray > > &query)
Sets the query string of the URL to the encoded version of query.
void reserve(int size)
Attempts to allocate memory for at least size bytes.
void removeAllEncodedQueryItems(const QByteArray &key)
Removes all the query string pairs whose key is equal to key from the URL.
static const KeyPair *const end
static bool QT_FASTCALL _ls32(const char **ptr)
QString filePath() const
Returns the file name, including the path (which may be absolute or relative).
static void QT_FASTCALL _userInfo(const char **ptr, QUrlParseData *parseData)
QDebug & space()
Writes a space character to the debug stream and returns a reference to the stream.
void setUserName(const QString &userName)
Sets the URL's user name to userName.
QList< QByteArray > allEncodedQueryItemValues(const QByteArray &key) const
Returns the a list of query string values whose key is equal to key from the URL. ...
QString & insert(int i, QChar c)
QDataStream & operator<<(QDataStream &out, const QUrl &url)
Writes url url to the stream out and returns a reference to the stream.
bool operator==(const QUrl &url) const
Returns true if this URL and the given url are equal; otherwise returns false.
static QString fileName(const QString &fileUrl)
void setEncodedUserName(const QByteArray &userName)
Sets the URL's user name to the percent-encoded userName.
QString absolutePath() const
Returns a file's path absolute path.
QUrl()
Constructs an empty QUrl object.
QString password() const
Returns the password of the URL if it is defined; otherwise an empty string is returned.
static bool QT_FASTCALL _unreserved(const char **ptr)
The QLatin1Char class provides an 8-bit ASCII/Latin-1 character.
void setPassword(const QString &password)
Sets the URL's password to password.
const QChar * constData() const
Returns a pointer to the data stored in the QString.
QByteArray & remove(int index, int len)
Removes len bytes from the array, starting at index position pos, and returns a reference to the arra...
void clear()
Clears the contents of the byte array and makes it empty.
void qt_string_normalize(QString *data, QString::NormalizationForm mode, QChar::UnicodeVersion version, int from)
static int nextDotDelimiter(const QString &domain, int from=0)
QByteArray encodedQuery() const
Returns the query string of the URL in percent encoded form.
static bool equal(const QChar *a, int l, const char *b)
bool endsWith(const QByteArray &a) const
Returns true if this byte array ends with byte array ba; otherwise returns false. ...
void removeEncodedQueryItem(const QByteArray &key)
Removes the first query string pair whose key is equal to key from the URL.
QBool contains(char c) const
Returns true if the byte array contains the character ch; otherwise returns false.
The QList class is a template class that provides lists.
void setEncodedQuery(const QByteArray &query)
Sets the query string of the URL to query.
void setEncodedUrl(const QByteArray &encodedUrl, QUrl::ParsingMode parsingMode)
QDataStream & operator>>(QDataStream &in, QUrl &url)
Reads a url into url from the stream in and returns a reference to the stream.