Hash :
e274cfd3
Author :
Date :
2001-03-04T21:53:08
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 1460 1461 1462 1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477 1478 1479 1480 1481 1482 1483 1484 1485 1486 1487 1488 1489 1490 1491 1492 1493 1494 1495 1496 1497 1498 1499 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509 1510 1511 1512 1513 1514 1515 1516 1517 1518 1519 1520 1521 1522 1523 1524 1525 1526 1527 1528 1529 1530 1531 1532 1533 1534 1535 1536 1537 1538 1539 1540 1541 1542 1543 1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 1554 1555 1556 1557 1558 1559 1560 1561 1562 1563 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573 1574 1575 1576 1577 1578 1579 1580 1581 1582 1583 1584 1585 1586 1587 1588 1589 1590 1591 1592 1593 1594 1595 1596 1597 1598 1599 1600 1601 1602 1603 1604 1605 1606 1607 1608 1609 1610 1611 1612 1613 1614 1615 1616 1617 1618 1619 1620 1621 1622 1623 1624 1625 1626 1627 1628 1629 1630 1631 1632 1633 1634 1635 1636 1637 1638 1639 1640 1641 1642 1643 1644 1645 1646 1647 1648 1649 1650 1651 1652 1653 1654 1655 1656 1657 1658 1659 1660 1661 1662 1663 1664 1665 1666 1667 1668 1669 1670 1671 1672 1673 1674 1675 1676 1677 1678 1679 1680 1681 1682 1683 1684 1685 1686 1687 1688 1689 1690 1691 1692 1693 1694 1695 1696 1697 1698 1699 1700 1701 1702 1703 1704 1705 1706
#!/usr/bin/env python
#
#
# FreeType 2 glyph name builder
#
# Copyright 1996-2000 by
# David Turner, Robert Wilhelm, and Werner Lemberg.
#
# This file is part of the FreeType project, and may only be used, modified,
# and distributed under the terms of the FreeType project license,
# LICENSE.TXT. By continuing to use, modify, or distribute this file you
# indicate that you have read the license and understand and accept it
# fully.
"""\
usage: %s <output-file>
This very simple python script is used to generate the glyph names
tables defined in the PSNames module.
Its single argument is the name of the header file to be created.
"""
import sys, string
# This table is used to name the glyph according to the Macintosh
# specification. It is used by the TrueType Postscript names table
#
mac_standard_names = \
[
# 0
".notdef", ".null", "CR", "space", "exclam",
"quotedbl", "numbersign", "dollar", "percent", "ampersand",
# 10
"quotesingle", "parenleft", "parenright", "asterisk", "plus",
"comma", "hyphen", "period", "slash", "zero",
# 20
"one", "two", "three", "four", "five",
"six", "seven", "eight", "nine", "colon",
# 30
"semicolon", "less", "equal", "greater", "question",
"at", "A", "B", "C", "D",
# 40
"E", "F", "G", "H", "I",
"J", "K", "L", "M", "N",
# 50
"O", "P", "Q", "R", "S",
"T", "U", "V", "W", "X",
# 60
"Y", "Z", "bracketleft", "backslash", "bracketright",
"asciicircum", "underscore", "grave", "a", "b",
# 70
"c", "d", "e", "f", "g",
"h", "i", "j", "k", "l",
# 80
"m", "n", "o", "p", "q",
"r", "s", "t", "u", "v",
# 90
"w", "x", "y", "z", "braceleft",
"bar", "braceright", "asciitilde", "Adieresis", "Aring",
# 100
"Ccedilla", "Eacute", "Ntilde", "Odieresis", "Udieresis",
"aacute", "agrave", "acircumflex", "adieresis", "atilde",
# 110
"aring", "ccedilla", "eacute", "egrave", "ecircumflex",
"edieresis", "iacute", "igrave", "icircumflex", "idieresis",
# 120
"ntilde", "oacute", "ograve", "ocircumflex", "odieresis",
"otilde", "uacute", "ugrave", "ucircumflex", "udieresis",
# 130
"dagger", "degree", "cent", "sterling", "section",
"bullet", "paragraph", "germandbls", "registered", "copyright",
# 140
"trademark", "acute", "dieresis", "notequal", "AE",
"Oslash", "infinity", "plusminus", "lessequal", "greaterequal",
# 150
"yen", "mu", "partialdiff", "summation", "product",
"pi", "integral", "ordfeminine", "ordmasculine", "Omega",
# 160
"ae", "oslash", "questiondown", "exclamdown", "logicalnot",
"radical", "florin", "approxequal", "Delta", "guillemotleft",
# 170
"guillemotright", "ellipsis", "nbspace", "Agrave", "Atilde",
"Otilde", "OE", "oe", "endash", "emdash",
# 180
"quotedblleft", "quotedblright", "quoteleft", "quoteright", "divide",
"lozenge", "ydieresis", "Ydieresis", "fraction", "currency",
# 190
"guilsinglleft", "guilsinglright", "fi", "fl", "daggerdbl",
"periodcentered", "quotesinglbase", "quotedblbase", "perthousand",
"Acircumflex",
# 200
"Ecircumflex", "Aacute", "Edieresis", "Egrave", "Iacute",
"Icircumflex", "Idieresis", "Igrave", "Oacute", "Ocircumflex",
# 210
"apple", "Ograve", "Uacute", "Ucircumflex", "Ugrave",
"dotlessi", "circumflex", "tilde", "macron", "breve",
# 220
"dotaccent", "ring", "cedilla", "hungarumlaut", "ogonek",
"caron", "Lslash", "lslash", "Scaron", "scaron",
# 230
"Zcaron", "zcaron", "brokenbar", "Eth", "eth",
"Yacute", "yacute", "Thorn", "thorn", "minus",
# 240
"multiply", "onesuperior", "twosuperior", "threesuperior", "onehalf",
"onequarter", "threequarters", "franc", "Gbreve", "gbreve",
# 250
"Idot", "Scedilla", "scedilla", "Cacute", "cacute",
"Ccaron", "ccaron", "dmacron"
]
t1_standard_strings = \
[
# 0
".notdef", "space", "exclam", "quotedbl", "numbersign",
"dollar", "percent", "ampersand", "quoteright", "parenleft",
# 10
"parenright", "asterisk", "plus", "comma", "hyphen",
"period", "slash", "zero", "one", "two",
# 20
"three", "four", "five", "six", "seven",
"eight", "nine", "colon", "semicolon", "less",
# 30
"equal", "greater", "question", "at", "A",
"B", "C", "D", "E", "F",
# 40
"G", "H", "I", "J", "K",
"L", "M", "N", "O", "P",
# 50
"Q", "R", "S", "T", "U",
"V", "W", "X", "Y", "Z",
# 60
"bracketleft", "backslash", "bracketright", "asciicircum", "underscore",
"quoteleft", "a", "b", "c", "d",
# 70
"e", "f", "g", "h", "i",
"j", "k", "l", "m", "n",
# 80
"o", "p", "q", "r", "s",
"t", "u", "v", "w", "x",
# 90
"y", "z", "braceleft", "bar", "braceright",
"asciitilde", "exclamdown", "cent", "sterling", "fraction",
# 100
"yen", "florin", "section", "currency", "quotesingle",
"quotedblleft", "guillemotleft", "guilsinglleft", "guilsinglright", "fi",
# 110
"fl", "endash", "dagger", "daggerdbl", "periodcenter",
"paragraph", "bullet", "quotesinglbase", "quotedblbase", "quotedblright",
# 120
"guillemotright", "ellipsis", "perthousand", "questiondown", "grave",
"acute", "circumflex", "tilde", "macron", "breve",
# 130
"dotaccent", "dieresis", "ring", "cedilla", "hungarumlaut",
"ogonek", "caron", "emdash", "AE", "ordfeminine",
# 140
"Lslash", "Oslash", "OE", "ordmasculine", "ae",
"dotlessi", "Islash", "oslash", "oe", "germandbls",
# 150
"onesuperior", "logicalnot", "mu", "trademark", "Eth",
"onehalf", "plusminus", "Thorn", "onequarter", "divide",
# 160
"brokenbar", "degree", "thorn", "threequarters", "twosuperior",
"registered", "minus", "eth", "multiply", "threesuperior",
# 170
"copyright", "Aacute", "Acircumflex", "Adieresis", "Agrave",
"Aring", "Atilde", "Ccedilla", "Eacute", "Ecircumflex",
# 180
"Edieresis", "Egrave", "Iacute", "Icircumflex", "Idieresis",
"Igrave", "Ntilde", "Oacute", "Ocircumflex", "Odieresis",
# 190
"Ograve", "Otilde", "Scaron", "Uacute", "Ucircumflex",
"Udieresis", "Ugrave", "Yacute", "Ydieresis", "Zcaron",
# 200
"aacute", "acircumflex", "adieresis", "agrave", "aring",
"atilde", "ccedilla", "eacute", "ecircumflex", "edieresis",
# 210
"egrave", "iacute", "icircumflex", "idieresis", "igrave",
"ntilde", "oacute", "ocircumflex", "odieresis", "ograve",
# 220
"otilde", "scaron", "uacute", "ucircumflex", "udieresis",
"ugrave", "yacute", "ydieresis", "zcaron", "exclamsmall",
# 230
"Hungarumlautsmall", "dollaroldstyle", "dollarsuperior", "ampersandsmall",
"Acutesmall",
"parenleftsuperior", "parenrightsuperior", "twodotenleader",
"onedotenleader", "zerooldstyle",
# 240
"oneoldstyle", "twooldstyle", "threeoldstyle", "fouroldstyle",
"fiveoldstyle",
"sixoldstyle", "sevenoldstyle", "eightoldstyle", "nineoldstyle",
"commasuperior",
# 250
"threequartersemdash", "periodsuperior", "questionsmall", "asuperior",
"bsuperior",
"centsuperior", "dsuperior", "esuperior", "isuperior", "lsuperior",
# 260
"msuperior", "nsuperior", "osuperior", "rsuperior", "ssuperior",
"tsuperior", "ff", "ffi", "ffl", "parenleftinferior",
# 270
"parenrightinferior", "Circumflexsmall", "hyphensuperior", "Gravesmall",
"Asmall",
"Bsmall", "Csmall", "Dsmall", "Esmall", "Fsmall",
# 280
"Gsmall", "Hsmall", "Ismall", "Jsmall", "Ksmall",
"Lsmall", "Msmall", "Nsmall", "Osmall", "Psmall",
# 290
"Qsmall", "Rsmall", "Ssmall", "Tsmall", "Usmall",
"Vsmall", "Wsmall", "Xsmall", "Ysmall", "Zsmall",
# 300
"colonmonetary", "onefitted", "rupiah", "Tildesmall", "exclamdownsmall",
"centoldstyle", "Lslashsmall", "Scaronsmall", "Zcaronsmall",
"Dieresissmall",
# 310
"Brevesmall", "Caronsmall", "Dotaccentsmall", "Macronsmall", "figuredash",
"hypheninferior", "Ogoneksmall", "Ringsmall", "Cedillasmall",
"questiondownsmall",
# 320
"oneeighth", "threeeighths", "fiveeighths", "seveneighths", "onethird",
"twothirds", "zerosuperior", "foursuperior", "fivesuperior",
"sixsuperior",
# 330
"sevensuperior", "eightsuperior", "ninesuperior", "zeroinferior",
"oneinferior",
"twoinferior", "threeinferior", "fourinferior", "fiveinferior",
"sixinferior",
# 340
"seveninferior", "eightinferior", "nineinferior", "centinferior",
"dollarinferior",
"periodinferior", "commainferior", "Agravesmall", "Aacutesmall",
"Acircumflexsmall",
# 350
"Atildesmall", "Adieresissmall", "Aringsmall", "AEsmall", "Ccedillasmall",
"Egravesmall", "Eacutesmall", "Ecircumflexsmall", "Edieresissmall",
"Igravesmall",
# 360
"Iacutesmall", "Icircumflexsmall", "Idieresissmall", "Ethsmall",
"Ntildesmall",
"Ogravesmall", "Oacutesmall", "Ocircumflexsmall", "Otildesmall",
"Odieresissmall",
# 370
"OEsmall", "Oslashsmall", "Ugravesmall", "Uacautesmall",
"Ucircumflexsmall",
"Udieresissmall", "Yacutesmall", "Thornsmall", "Ydieresissmall",
"001.000",
# 380
"001.001", "001.002", "001.003", "Black", "Bold",
"Book", "Light", "Medium", "Regular", "Roman",
# 390
"Semibold"
]
t1_standard_encoding = \
[
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 1, 2, 3, 4, 5, 6, 7, 8,
9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
49, 50, 51, 52, 53, 54, 55, 56, 57, 58,
59, 60, 61, 62, 63, 64, 65, 66, 67, 68,
69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
79, 80, 81, 82, 83, 84, 85, 86, 87, 88,
89, 90, 91, 92, 93, 94, 95, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 96, 97, 98, 99, 100, 101, 102, 103, 104,
105, 106, 107, 108, 109, 110, 0, 111, 112, 113,
114, 0, 115, 116, 117, 118, 119, 120, 121, 122,
0, 123, 0, 124, 125, 126, 127, 128, 129, 130,
131, 0, 132, 133, 0, 134, 135, 136, 137, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 138, 0, 139, 0, 0,
0, 0, 140, 141, 142, 143, 0, 0, 0, 0,
0, 144, 0, 0, 0, 145, 0, 0, 146, 147,
148, 149, 0, 0, 0, 0
]
t1_expert_encoding = \
[
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 1, 229, 230, 0, 231, 232, 233, 234,
235, 236, 237, 238, 13, 14, 15, 99, 239, 240,
241, 242, 243, 244, 245, 246, 247, 248, 27, 28,
249, 250, 251, 252, 0, 253, 254, 255, 256, 257,
0, 0, 0, 258, 0, 0, 259, 260, 261, 262,
0, 0, 263, 264, 265, 0, 266, 109, 110, 267,
268, 269, 0, 270, 271, 272, 273, 274, 275, 276,
277, 278, 279, 280, 281, 282, 283, 284, 285, 286,
287, 288, 289, 290, 291, 292, 293, 294, 295, 296,
297, 298, 299, 300, 301, 302, 303, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 304, 305, 306, 0, 0, 307, 308, 309, 310,
311, 0, 312, 0, 0, 312, 0, 0, 314, 315,
0, 0, 316, 317, 318, 0, 0, 0, 158, 155,
163, 319, 320, 321, 322, 323, 324, 325, 0, 0,
326, 150, 164, 169, 327, 328, 329, 330, 331, 332,
333, 334, 335, 336, 337, 338, 339, 340, 341, 342,
343, 344, 345, 346, 347, 348, 349, 350, 351, 352,
353, 354, 355, 356, 357, 358, 359, 360, 361, 362,
363, 364, 365, 366, 367, 368, 369, 370, 371, 372,
373, 374, 375, 376, 377, 378
]
# This data has been taken literally from the file `glyphlist.txt',
# version 1.2, 22 Oct 1998. It is available from
#
# http://partners.adobe.com/asn/developer/typeforum/unicodegn.html
#
adobe_glyph_list = """\
0041;A;LATIN CAPITAL LETTER A
00C6;AE;LATIN CAPITAL LETTER AE
01FC;AEacute;LATIN CAPITAL LETTER AE WITH ACUTE
F7E6;AEsmall;LATIN SMALL CAPITAL LETTER AE
00C1;Aacute;LATIN CAPITAL LETTER A WITH ACUTE
F7E1;Aacutesmall;LATIN SMALL CAPITAL LETTER A WITH ACUTE
0102;Abreve;LATIN CAPITAL LETTER A WITH BREVE
00C2;Acircumflex;LATIN CAPITAL LETTER A WITH CIRCUMFLEX
F7E2;Acircumflexsmall;LATIN SMALL CAPITAL LETTER A WITH CIRCUMFLEX
F6C9;Acute;CAPITAL ACUTE ACCENT
F7B4;Acutesmall;SMALL CAPITAL ACUTE ACCENT
00C4;Adieresis;LATIN CAPITAL LETTER A WITH DIAERESIS
F7E4;Adieresissmall;LATIN SMALL CAPITAL LETTER A WITH DIAERESIS
00C0;Agrave;LATIN CAPITAL LETTER A WITH GRAVE
F7E0;Agravesmall;LATIN SMALL CAPITAL LETTER A WITH GRAVE
0391;Alpha;GREEK CAPITAL LETTER ALPHA
0386;Alphatonos;GREEK CAPITAL LETTER ALPHA WITH TONOS
0100;Amacron;LATIN CAPITAL LETTER A WITH MACRON
0104;Aogonek;LATIN CAPITAL LETTER A WITH OGONEK
00C5;Aring;LATIN CAPITAL LETTER A WITH RING ABOVE
01FA;Aringacute;LATIN CAPITAL LETTER A WITH RING ABOVE AND ACUTE
F7E5;Aringsmall;LATIN SMALL CAPITAL LETTER A WITH RING ABOVE
F761;Asmall;LATIN SMALL CAPITAL LETTER A
00C3;Atilde;LATIN CAPITAL LETTER A WITH TILDE
F7E3;Atildesmall;LATIN SMALL CAPITAL LETTER A WITH TILDE
0042;B;LATIN CAPITAL LETTER B
0392;Beta;GREEK CAPITAL LETTER BETA
F6F4;Brevesmall;SMALL CAPITAL BREVE
F762;Bsmall;LATIN SMALL CAPITAL LETTER B
0043;C;LATIN CAPITAL LETTER C
0106;Cacute;LATIN CAPITAL LETTER C WITH ACUTE
F6CA;Caron;CAPITAL CARON
F6F5;Caronsmall;SMALL CAPITAL CARON
010C;Ccaron;LATIN CAPITAL LETTER C WITH CARON
00C7;Ccedilla;LATIN CAPITAL LETTER C WITH CEDILLA
F7E7;Ccedillasmall;LATIN SMALL CAPITAL LETTER C WITH CEDILLA
0108;Ccircumflex;LATIN CAPITAL LETTER C WITH CIRCUMFLEX
010A;Cdotaccent;LATIN CAPITAL LETTER C WITH DOT ABOVE
F7B8;Cedillasmall;SMALL CAPITAL CEDILLA
03A7;Chi;GREEK CAPITAL LETTER CHI
F6F6;Circumflexsmall;SMALL CAPITAL MODIFIER LETTER CIRCUMFLEX ACCENT
F763;Csmall;LATIN SMALL CAPITAL LETTER C
0044;D;LATIN CAPITAL LETTER D
010E;Dcaron;LATIN CAPITAL LETTER D WITH CARON
0110;Dcroat;LATIN CAPITAL LETTER D WITH STROKE
2206;Delta;INCREMENT
0394;Delta;GREEK CAPITAL LETTER DELTA;Duplicate
F6CB;Dieresis;CAPITAL DIAERESIS
F6CC;DieresisAcute;CAPITAL DIAERESIS ACUTE ACCENT
F6CD;DieresisGrave;CAPITAL DIAERESIS GRAVE ACCENT
F7A8;Dieresissmall;SMALL CAPITAL DIAERESIS
F6F7;Dotaccentsmall;SMALL CAPITAL DOT ABOVE
F764;Dsmall;LATIN SMALL CAPITAL LETTER D
0045;E;LATIN CAPITAL LETTER E
00C9;Eacute;LATIN CAPITAL LETTER E WITH ACUTE
F7E9;Eacutesmall;LATIN SMALL CAPITAL LETTER E WITH ACUTE
0114;Ebreve;LATIN CAPITAL LETTER E WITH BREVE
011A;Ecaron;LATIN CAPITAL LETTER E WITH CARON
00CA;Ecircumflex;LATIN CAPITAL LETTER E WITH CIRCUMFLEX
F7EA;Ecircumflexsmall;LATIN SMALL CAPITAL LETTER E WITH CIRCUMFLEX
00CB;Edieresis;LATIN CAPITAL LETTER E WITH DIAERESIS
F7EB;Edieresissmall;LATIN SMALL CAPITAL LETTER E WITH DIAERESIS
0116;Edotaccent;LATIN CAPITAL LETTER E WITH DOT ABOVE
00C8;Egrave;LATIN CAPITAL LETTER E WITH GRAVE
F7E8;Egravesmall;LATIN SMALL CAPITAL LETTER E WITH GRAVE
0112;Emacron;LATIN CAPITAL LETTER E WITH MACRON
014A;Eng;LATIN CAPITAL LETTER ENG
0118;Eogonek;LATIN CAPITAL LETTER E WITH OGONEK
0395;Epsilon;GREEK CAPITAL LETTER EPSILON
0388;Epsilontonos;GREEK CAPITAL LETTER EPSILON WITH TONOS
F765;Esmall;LATIN SMALL CAPITAL LETTER E
0397;Eta;GREEK CAPITAL LETTER ETA
0389;Etatonos;GREEK CAPITAL LETTER ETA WITH TONOS
00D0;Eth;LATIN CAPITAL LETTER ETH
F7F0;Ethsmall;LATIN SMALL CAPITAL LETTER ETH
20AC;Euro;EURO SIGN
0046;F;LATIN CAPITAL LETTER F
F766;Fsmall;LATIN SMALL CAPITAL LETTER F
0047;G;LATIN CAPITAL LETTER G
0393;Gamma;GREEK CAPITAL LETTER GAMMA
011E;Gbreve;LATIN CAPITAL LETTER G WITH BREVE
01E6;Gcaron;LATIN CAPITAL LETTER G WITH CARON
011C;Gcircumflex;LATIN CAPITAL LETTER G WITH CIRCUMFLEX
0122;Gcommaaccent;LATIN CAPITAL LETTER G WITH CEDILLA
0120;Gdotaccent;LATIN CAPITAL LETTER G WITH DOT ABOVE
F6CE;Grave;CAPITAL GRAVE ACCENT
F760;Gravesmall;SMALL CAPITAL GRAVE ACCENT
F767;Gsmall;LATIN SMALL CAPITAL LETTER G
0048;H;LATIN CAPITAL LETTER H
25CF;H18533;BLACK CIRCLE
25AA;H18543;BLACK SMALL SQUARE
25AB;H18551;WHITE SMALL SQUARE
25A1;H22073;WHITE SQUARE
0126;Hbar;LATIN CAPITAL LETTER H WITH STROKE
0124;Hcircumflex;LATIN CAPITAL LETTER H WITH CIRCUMFLEX
F768;Hsmall;LATIN SMALL CAPITAL LETTER H
F6CF;Hungarumlaut;CAPITAL DOUBLE ACUTE ACCENT
F6F8;Hungarumlautsmall;SMALL CAPITAL DOUBLE ACUTE ACCENT
0049;I;LATIN CAPITAL LETTER I
0132;IJ;LATIN CAPITAL LIGATURE IJ
00CD;Iacute;LATIN CAPITAL LETTER I WITH ACUTE
F7ED;Iacutesmall;LATIN SMALL CAPITAL LETTER I WITH ACUTE
012C;Ibreve;LATIN CAPITAL LETTER I WITH BREVE
00CE;Icircumflex;LATIN CAPITAL LETTER I WITH CIRCUMFLEX
F7EE;Icircumflexsmall;LATIN SMALL CAPITAL LETTER I WITH CIRCUMFLEX
00CF;Idieresis;LATIN CAPITAL LETTER I WITH DIAERESIS
F7EF;Idieresissmall;LATIN SMALL CAPITAL LETTER I WITH DIAERESIS
0130;Idotaccent;LATIN CAPITAL LETTER I WITH DOT ABOVE
2111;Ifraktur;BLACK-LETTER CAPITAL I
00CC;Igrave;LATIN CAPITAL LETTER I WITH GRAVE
F7EC;Igravesmall;LATIN SMALL CAPITAL LETTER I WITH GRAVE
012A;Imacron;LATIN CAPITAL LETTER I WITH MACRON
012E;Iogonek;LATIN CAPITAL LETTER I WITH OGONEK
0399;Iota;GREEK CAPITAL LETTER IOTA
03AA;Iotadieresis;GREEK CAPITAL LETTER IOTA WITH DIALYTIKA
038A;Iotatonos;GREEK CAPITAL LETTER IOTA WITH TONOS
F769;Ismall;LATIN SMALL CAPITAL LETTER I
0128;Itilde;LATIN CAPITAL LETTER I WITH TILDE
004A;J;LATIN CAPITAL LETTER J
0134;Jcircumflex;LATIN CAPITAL LETTER J WITH CIRCUMFLEX
F76A;Jsmall;LATIN SMALL CAPITAL LETTER J
004B;K;LATIN CAPITAL LETTER K
039A;Kappa;GREEK CAPITAL LETTER KAPPA
0136;Kcommaaccent;LATIN CAPITAL LETTER K WITH CEDILLA
F76B;Ksmall;LATIN SMALL CAPITAL LETTER K
004C;L;LATIN CAPITAL LETTER L
F6BF;LL;LATIN CAPITAL LETTER LL
0139;Lacute;LATIN CAPITAL LETTER L WITH ACUTE
039B;Lambda;GREEK CAPITAL LETTER LAMDA
013D;Lcaron;LATIN CAPITAL LETTER L WITH CARON
013B;Lcommaaccent;LATIN CAPITAL LETTER L WITH CEDILLA
013F;Ldot;LATIN CAPITAL LETTER L WITH MIDDLE DOT
0141;Lslash;LATIN CAPITAL LETTER L WITH STROKE
F6F9;Lslashsmall;LATIN SMALL CAPITAL LETTER L WITH STROKE
F76C;Lsmall;LATIN SMALL CAPITAL LETTER L
004D;M;LATIN CAPITAL LETTER M
F6D0;Macron;CAPITAL MACRON
F7AF;Macronsmall;SMALL CAPITAL MACRON
F76D;Msmall;LATIN SMALL CAPITAL LETTER M
039C;Mu;GREEK CAPITAL LETTER MU
004E;N;LATIN CAPITAL LETTER N
0143;Nacute;LATIN CAPITAL LETTER N WITH ACUTE
0147;Ncaron;LATIN CAPITAL LETTER N WITH CARON
0145;Ncommaaccent;LATIN CAPITAL LETTER N WITH CEDILLA
F76E;Nsmall;LATIN SMALL CAPITAL LETTER N
00D1;Ntilde;LATIN CAPITAL LETTER N WITH TILDE
F7F1;Ntildesmall;LATIN SMALL CAPITAL LETTER N WITH TILDE
039D;Nu;GREEK CAPITAL LETTER NU
004F;O;LATIN CAPITAL LETTER O
0152;OE;LATIN CAPITAL LIGATURE OE
F6FA;OEsmall;LATIN SMALL CAPITAL LIGATURE OE
00D3;Oacute;LATIN CAPITAL LETTER O WITH ACUTE
F7F3;Oacutesmall;LATIN SMALL CAPITAL LETTER O WITH ACUTE
014E;Obreve;LATIN CAPITAL LETTER O WITH BREVE
00D4;Ocircumflex;LATIN CAPITAL LETTER O WITH CIRCUMFLEX
F7F4;Ocircumflexsmall;LATIN SMALL CAPITAL LETTER O WITH CIRCUMFLEX
00D6;Odieresis;LATIN CAPITAL LETTER O WITH DIAERESIS
F7F6;Odieresissmall;LATIN SMALL CAPITAL LETTER O WITH DIAERESIS
F6FB;Ogoneksmall;SMALL CAPITAL OGONEK
00D2;Ograve;LATIN CAPITAL LETTER O WITH GRAVE
F7F2;Ogravesmall;LATIN SMALL CAPITAL LETTER O WITH GRAVE
01A0;Ohorn;LATIN CAPITAL LETTER O WITH HORN
0150;Ohungarumlaut;LATIN CAPITAL LETTER O WITH DOUBLE ACUTE
014C;Omacron;LATIN CAPITAL LETTER O WITH MACRON
2126;Omega;OHM SIGN
03A9;Omega;GREEK CAPITAL LETTER OMEGA;Duplicate
038F;Omegatonos;GREEK CAPITAL LETTER OMEGA WITH TONOS
039F;Omicron;GREEK CAPITAL LETTER OMICRON
038C;Omicrontonos;GREEK CAPITAL LETTER OMICRON WITH TONOS
00D8;Oslash;LATIN CAPITAL LETTER O WITH STROKE
01FE;Oslashacute;LATIN CAPITAL LETTER O WITH STROKE AND ACUTE
F7F8;Oslashsmall;LATIN SMALL CAPITAL LETTER O WITH STROKE
F76F;Osmall;LATIN SMALL CAPITAL LETTER O
00D5;Otilde;LATIN CAPITAL LETTER O WITH TILDE
F7F5;Otildesmall;LATIN SMALL CAPITAL LETTER O WITH TILDE
0050;P;LATIN CAPITAL LETTER P
03A6;Phi;GREEK CAPITAL LETTER PHI
03A0;Pi;GREEK CAPITAL LETTER PI
03A8;Psi;GREEK CAPITAL LETTER PSI
F770;Psmall;LATIN SMALL CAPITAL LETTER P
0051;Q;LATIN CAPITAL LETTER Q
F771;Qsmall;LATIN SMALL CAPITAL LETTER Q
0052;R;LATIN CAPITAL LETTER R
0154;Racute;LATIN CAPITAL LETTER R WITH ACUTE
0158;Rcaron;LATIN CAPITAL LETTER R WITH CARON
0156;Rcommaaccent;LATIN CAPITAL LETTER R WITH CEDILLA
211C;Rfraktur;BLACK-LETTER CAPITAL R
03A1;Rho;GREEK CAPITAL LETTER RHO
F6FC;Ringsmall;SMALL CAPITAL RING ABOVE
F772;Rsmall;LATIN SMALL CAPITAL LETTER R
0053;S;LATIN CAPITAL LETTER S
250C;SF010000;BOX DRAWINGS LIGHT DOWN AND RIGHT
2514;SF020000;BOX DRAWINGS LIGHT UP AND RIGHT
2510;SF030000;BOX DRAWINGS LIGHT DOWN AND LEFT
2518;SF040000;BOX DRAWINGS LIGHT UP AND LEFT
253C;SF050000;BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
252C;SF060000;BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
2534;SF070000;BOX DRAWINGS LIGHT UP AND HORIZONTAL
251C;SF080000;BOX DRAWINGS LIGHT VERTICAL AND RIGHT
2524;SF090000;BOX DRAWINGS LIGHT VERTICAL AND LEFT
2500;SF100000;BOX DRAWINGS LIGHT HORIZONTAL
2502;SF110000;BOX DRAWINGS LIGHT VERTICAL
2561;SF190000;BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE
2562;SF200000;BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE
2556;SF210000;BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE
2555;SF220000;BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE
2563;SF230000;BOX DRAWINGS DOUBLE VERTICAL AND LEFT
2551;SF240000;BOX DRAWINGS DOUBLE VERTICAL
2557;SF250000;BOX DRAWINGS DOUBLE DOWN AND LEFT
255D;SF260000;BOX DRAWINGS DOUBLE UP AND LEFT
255C;SF270000;BOX DRAWINGS UP DOUBLE AND LEFT SINGLE
255B;SF280000;BOX DRAWINGS UP SINGLE AND LEFT DOUBLE
255E;SF360000;BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE
255F;SF370000;BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE
255A;SF380000;BOX DRAWINGS DOUBLE UP AND RIGHT
2554;SF390000;BOX DRAWINGS DOUBLE DOWN AND RIGHT
2569;SF400000;BOX DRAWINGS DOUBLE UP AND HORIZONTAL
2566;SF410000;BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
2560;SF420000;BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
2550;SF430000;BOX DRAWINGS DOUBLE HORIZONTAL
256C;SF440000;BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
2567;SF450000;BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE
2568;SF460000;BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE
2564;SF470000;BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE
2565;SF480000;BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE
2559;SF490000;BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE
2558;SF500000;BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE
2552;SF510000;BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE
2553;SF520000;BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE
256B;SF530000;BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE
256A;SF540000;BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE
015A;Sacute;LATIN CAPITAL LETTER S WITH ACUTE
0160;Scaron;LATIN CAPITAL LETTER S WITH CARON
F6FD;Scaronsmall;LATIN SMALL CAPITAL LETTER S WITH CARON
015E;Scedilla;LATIN CAPITAL LETTER S WITH CEDILLA
F6C1;Scedilla;LATIN CAPITAL LETTER S WITH CEDILLA;Duplicate
015C;Scircumflex;LATIN CAPITAL LETTER S WITH CIRCUMFLEX
0218;Scommaaccent;LATIN CAPITAL LETTER S WITH COMMA BELOW
03A3;Sigma;GREEK CAPITAL LETTER SIGMA
F773;Ssmall;LATIN SMALL CAPITAL LETTER S
0054;T;LATIN CAPITAL LETTER T
03A4;Tau;GREEK CAPITAL LETTER TAU
0166;Tbar;LATIN CAPITAL LETTER T WITH STROKE
0164;Tcaron;LATIN CAPITAL LETTER T WITH CARON
0162;Tcommaaccent;LATIN CAPITAL LETTER T WITH CEDILLA
021A;Tcommaaccent;LATIN CAPITAL LETTER T WITH COMMA BELOW;Duplicate
0398;Theta;GREEK CAPITAL LETTER THETA
00DE;Thorn;LATIN CAPITAL LETTER THORN
F7FE;Thornsmall;LATIN SMALL CAPITAL LETTER THORN
F6FE;Tildesmall;SMALL CAPITAL SMALL TILDE
F774;Tsmall;LATIN SMALL CAPITAL LETTER T
0055;U;LATIN CAPITAL LETTER U
00DA;Uacute;LATIN CAPITAL LETTER U WITH ACUTE
F7FA;Uacutesmall;LATIN SMALL CAPITAL LETTER U WITH ACUTE
016C;Ubreve;LATIN CAPITAL LETTER U WITH BREVE
00DB;Ucircumflex;LATIN CAPITAL LETTER U WITH CIRCUMFLEX
F7FB;Ucircumflexsmall;LATIN SMALL CAPITAL LETTER U WITH CIRCUMFLEX
00DC;Udieresis;LATIN CAPITAL LETTER U WITH DIAERESIS
F7FC;Udieresissmall;LATIN SMALL CAPITAL LETTER U WITH DIAERESIS
00D9;Ugrave;LATIN CAPITAL LETTER U WITH GRAVE
F7F9;Ugravesmall;LATIN SMALL CAPITAL LETTER U WITH GRAVE
01AF;Uhorn;LATIN CAPITAL LETTER U WITH HORN
0170;Uhungarumlaut;LATIN CAPITAL LETTER U WITH DOUBLE ACUTE
016A;Umacron;LATIN CAPITAL LETTER U WITH MACRON
0172;Uogonek;LATIN CAPITAL LETTER U WITH OGONEK
03A5;Upsilon;GREEK CAPITAL LETTER UPSILON
03D2;Upsilon1;GREEK UPSILON WITH HOOK SYMBOL
03AB;Upsilondieresis;GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA
038E;Upsilontonos;GREEK CAPITAL LETTER UPSILON WITH TONOS
016E;Uring;LATIN CAPITAL LETTER U WITH RING ABOVE
F775;Usmall;LATIN SMALL CAPITAL LETTER U
0168;Utilde;LATIN CAPITAL LETTER U WITH TILDE
0056;V;LATIN CAPITAL LETTER V
F776;Vsmall;LATIN SMALL CAPITAL LETTER V
0057;W;LATIN CAPITAL LETTER W
1E82;Wacute;LATIN CAPITAL LETTER W WITH ACUTE
0174;Wcircumflex;LATIN CAPITAL LETTER W WITH CIRCUMFLEX
1E84;Wdieresis;LATIN CAPITAL LETTER W WITH DIAERESIS
1E80;Wgrave;LATIN CAPITAL LETTER W WITH GRAVE
F777;Wsmall;LATIN SMALL CAPITAL LETTER W
0058;X;LATIN CAPITAL LETTER X
039E;Xi;GREEK CAPITAL LETTER XI
F778;Xsmall;LATIN SMALL CAPITAL LETTER X
0059;Y;LATIN CAPITAL LETTER Y
00DD;Yacute;LATIN CAPITAL LETTER Y WITH ACUTE
F7FD;Yacutesmall;LATIN SMALL CAPITAL LETTER Y WITH ACUTE
0176;Ycircumflex;LATIN CAPITAL LETTER Y WITH CIRCUMFLEX
0178;Ydieresis;LATIN CAPITAL LETTER Y WITH DIAERESIS
F7FF;Ydieresissmall;LATIN SMALL CAPITAL LETTER Y WITH DIAERESIS
1EF2;Ygrave;LATIN CAPITAL LETTER Y WITH GRAVE
F779;Ysmall;LATIN SMALL CAPITAL LETTER Y
005A;Z;LATIN CAPITAL LETTER Z
0179;Zacute;LATIN CAPITAL LETTER Z WITH ACUTE
017D;Zcaron;LATIN CAPITAL LETTER Z WITH CARON
F6FF;Zcaronsmall;LATIN SMALL CAPITAL LETTER Z WITH CARON
017B;Zdotaccent;LATIN CAPITAL LETTER Z WITH DOT ABOVE
0396;Zeta;GREEK CAPITAL LETTER ZETA
F77A;Zsmall;LATIN SMALL CAPITAL LETTER Z
0061;a;LATIN SMALL LETTER A
00E1;aacute;LATIN SMALL LETTER A WITH ACUTE
0103;abreve;LATIN SMALL LETTER A WITH BREVE
00E2;acircumflex;LATIN SMALL LETTER A WITH CIRCUMFLEX
00B4;acute;ACUTE ACCENT
0301;acutecomb;COMBINING ACUTE ACCENT
00E4;adieresis;LATIN SMALL LETTER A WITH DIAERESIS
00E6;ae;LATIN SMALL LETTER AE
01FD;aeacute;LATIN SMALL LETTER AE WITH ACUTE
2015;afii00208;HORIZONTAL BAR
0410;afii10017;CYRILLIC CAPITAL LETTER A
0411;afii10018;CYRILLIC CAPITAL LETTER BE
0412;afii10019;CYRILLIC CAPITAL LETTER VE
0413;afii10020;CYRILLIC CAPITAL LETTER GHE
0414;afii10021;CYRILLIC CAPITAL LETTER DE
0415;afii10022;CYRILLIC CAPITAL LETTER IE
0401;afii10023;CYRILLIC CAPITAL LETTER IO
0416;afii10024;CYRILLIC CAPITAL LETTER ZHE
0417;afii10025;CYRILLIC CAPITAL LETTER ZE
0418;afii10026;CYRILLIC CAPITAL LETTER I
0419;afii10027;CYRILLIC CAPITAL LETTER SHORT I
041A;afii10028;CYRILLIC CAPITAL LETTER KA
041B;afii10029;CYRILLIC CAPITAL LETTER EL
041C;afii10030;CYRILLIC CAPITAL LETTER EM
041D;afii10031;CYRILLIC CAPITAL LETTER EN
041E;afii10032;CYRILLIC CAPITAL LETTER O
041F;afii10033;CYRILLIC CAPITAL LETTER PE
0420;afii10034;CYRILLIC CAPITAL LETTER ER
0421;afii10035;CYRILLIC CAPITAL LETTER ES
0422;afii10036;CYRILLIC CAPITAL LETTER TE
0423;afii10037;CYRILLIC CAPITAL LETTER U
0424;afii10038;CYRILLIC CAPITAL LETTER EF
0425;afii10039;CYRILLIC CAPITAL LETTER HA
0426;afii10040;CYRILLIC CAPITAL LETTER TSE
0427;afii10041;CYRILLIC CAPITAL LETTER CHE
0428;afii10042;CYRILLIC CAPITAL LETTER SHA
0429;afii10043;CYRILLIC CAPITAL LETTER SHCHA
042A;afii10044;CYRILLIC CAPITAL LETTER HARD SIGN
042B;afii10045;CYRILLIC CAPITAL LETTER YERU
042C;afii10046;CYRILLIC CAPITAL LETTER SOFT SIGN
042D;afii10047;CYRILLIC CAPITAL LETTER E
042E;afii10048;CYRILLIC CAPITAL LETTER YU
042F;afii10049;CYRILLIC CAPITAL LETTER YA
0490;afii10050;CYRILLIC CAPITAL LETTER GHE WITH UPTURN
0402;afii10051;CYRILLIC CAPITAL LETTER DJE
0403;afii10052;CYRILLIC CAPITAL LETTER GJE
0404;afii10053;CYRILLIC CAPITAL LETTER UKRAINIAN IE
0405;afii10054;CYRILLIC CAPITAL LETTER DZE
0406;afii10055;CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I
0407;afii10056;CYRILLIC CAPITAL LETTER YI
0408;afii10057;CYRILLIC CAPITAL LETTER JE
0409;afii10058;CYRILLIC CAPITAL LETTER LJE
040A;afii10059;CYRILLIC CAPITAL LETTER NJE
040B;afii10060;CYRILLIC CAPITAL LETTER TSHE
040C;afii10061;CYRILLIC CAPITAL LETTER KJE
040E;afii10062;CYRILLIC CAPITAL LETTER SHORT U
F6C4;afii10063;CYRILLIC SMALL LETTER GHE VARIANT
F6C5;afii10064;CYRILLIC SMALL LETTER BE VARIANT
0430;afii10065;CYRILLIC SMALL LETTER A
0431;afii10066;CYRILLIC SMALL LETTER BE
0432;afii10067;CYRILLIC SMALL LETTER VE
0433;afii10068;CYRILLIC SMALL LETTER GHE
0434;afii10069;CYRILLIC SMALL LETTER DE
0435;afii10070;CYRILLIC SMALL LETTER IE
0451;afii10071;CYRILLIC SMALL LETTER IO
0436;afii10072;CYRILLIC SMALL LETTER ZHE
0437;afii10073;CYRILLIC SMALL LETTER ZE
0438;afii10074;CYRILLIC SMALL LETTER I
0439;afii10075;CYRILLIC SMALL LETTER SHORT I
043A;afii10076;CYRILLIC SMALL LETTER KA
043B;afii10077;CYRILLIC SMALL LETTER EL
043C;afii10078;CYRILLIC SMALL LETTER EM
043D;afii10079;CYRILLIC SMALL LETTER EN
043E;afii10080;CYRILLIC SMALL LETTER O
043F;afii10081;CYRILLIC SMALL LETTER PE
0440;afii10082;CYRILLIC SMALL LETTER ER
0441;afii10083;CYRILLIC SMALL LETTER ES
0442;afii10084;CYRILLIC SMALL LETTER TE
0443;afii10085;CYRILLIC SMALL LETTER U
0444;afii10086;CYRILLIC SMALL LETTER EF
0445;afii10087;CYRILLIC SMALL LETTER HA
0446;afii10088;CYRILLIC SMALL LETTER TSE
0447;afii10089;CYRILLIC SMALL LETTER CHE
0448;afii10090;CYRILLIC SMALL LETTER SHA
0449;afii10091;CYRILLIC SMALL LETTER SHCHA
044A;afii10092;CYRILLIC SMALL LETTER HARD SIGN
044B;afii10093;CYRILLIC SMALL LETTER YERU
044C;afii10094;CYRILLIC SMALL LETTER SOFT SIGN
044D;afii10095;CYRILLIC SMALL LETTER E
044E;afii10096;CYRILLIC SMALL LETTER YU
044F;afii10097;CYRILLIC SMALL LETTER YA
0491;afii10098;CYRILLIC SMALL LETTER GHE WITH UPTURN
0452;afii10099;CYRILLIC SMALL LETTER DJE
0453;afii10100;CYRILLIC SMALL LETTER GJE
0454;afii10101;CYRILLIC SMALL LETTER UKRAINIAN IE
0455;afii10102;CYRILLIC SMALL LETTER DZE
0456;afii10103;CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I
0457;afii10104;CYRILLIC SMALL LETTER YI
0458;afii10105;CYRILLIC SMALL LETTER JE
0459;afii10106;CYRILLIC SMALL LETTER LJE
045A;afii10107;CYRILLIC SMALL LETTER NJE
045B;afii10108;CYRILLIC SMALL LETTER TSHE
045C;afii10109;CYRILLIC SMALL LETTER KJE
045E;afii10110;CYRILLIC SMALL LETTER SHORT U
040F;afii10145;CYRILLIC CAPITAL LETTER DZHE
0462;afii10146;CYRILLIC CAPITAL LETTER YAT
0472;afii10147;CYRILLIC CAPITAL LETTER FITA
0474;afii10148;CYRILLIC CAPITAL LETTER IZHITSA
F6C6;afii10192;CYRILLIC SMALL LETTER DE VARIANT
045F;afii10193;CYRILLIC SMALL LETTER DZHE
0463;afii10194;CYRILLIC SMALL LETTER YAT
0473;afii10195;CYRILLIC SMALL LETTER FITA
0475;afii10196;CYRILLIC SMALL LETTER IZHITSA
F6C7;afii10831;CYRILLIC SMALL LETTER PE VARIANT
F6C8;afii10832;CYRILLIC SMALL LETTER TE VARIANT
04D9;afii10846;CYRILLIC SMALL LETTER SCHWA
200E;afii299;LEFT-TO-RIGHT MARK
200F;afii300;RIGHT-TO-LEFT MARK
200D;afii301;ZERO WIDTH JOINER
066A;afii57381;ARABIC PERCENT SIGN
060C;afii57388;ARABIC COMMA
0660;afii57392;ARABIC-INDIC DIGIT ZERO
0661;afii57393;ARABIC-INDIC DIGIT ONE
0662;afii57394;ARABIC-INDIC DIGIT TWO
0663;afii57395;ARABIC-INDIC DIGIT THREE
0664;afii57396;ARABIC-INDIC DIGIT FOUR
0665;afii57397;ARABIC-INDIC DIGIT FIVE
0666;afii57398;ARABIC-INDIC DIGIT SIX
0667;afii57399;ARABIC-INDIC DIGIT SEVEN
0668;afii57400;ARABIC-INDIC DIGIT EIGHT
0669;afii57401;ARABIC-INDIC DIGIT NINE
061B;afii57403;ARABIC SEMICOLON
061F;afii57407;ARABIC QUESTION MARK
0621;afii57409;ARABIC LETTER HAMZA
0622;afii57410;ARABIC LETTER ALEF WITH MADDA ABOVE
0623;afii57411;ARABIC LETTER ALEF WITH HAMZA ABOVE
0624;afii57412;ARABIC LETTER WAW WITH HAMZA ABOVE
0625;afii57413;ARABIC LETTER ALEF WITH HAMZA BELOW
0626;afii57414;ARABIC LETTER YEH WITH HAMZA ABOVE
0627;afii57415;ARABIC LETTER ALEF
0628;afii57416;ARABIC LETTER BEH
0629;afii57417;ARABIC LETTER TEH MARBUTA
062A;afii57418;ARABIC LETTER TEH
062B;afii57419;ARABIC LETTER THEH
062C;afii57420;ARABIC LETTER JEEM
062D;afii57421;ARABIC LETTER HAH
062E;afii57422;ARABIC LETTER KHAH
062F;afii57423;ARABIC LETTER DAL
0630;afii57424;ARABIC LETTER THAL
0631;afii57425;ARABIC LETTER REH
0632;afii57426;ARABIC LETTER ZAIN
0633;afii57427;ARABIC LETTER SEEN
0634;afii57428;ARABIC LETTER SHEEN
0635;afii57429;ARABIC LETTER SAD
0636;afii57430;ARABIC LETTER DAD
0637;afii57431;ARABIC LETTER TAH
0638;afii57432;ARABIC LETTER ZAH
0639;afii57433;ARABIC LETTER AIN
063A;afii57434;ARABIC LETTER GHAIN
0640;afii57440;ARABIC TATWEEL
0641;afii57441;ARABIC LETTER FEH
0642;afii57442;ARABIC LETTER QAF
0643;afii57443;ARABIC LETTER KAF
0644;afii57444;ARABIC LETTER LAM
0645;afii57445;ARABIC LETTER MEEM
0646;afii57446;ARABIC LETTER NOON
0648;afii57448;ARABIC LETTER WAW
0649;afii57449;ARABIC LETTER ALEF MAKSURA
064A;afii57450;ARABIC LETTER YEH
064B;afii57451;ARABIC FATHATAN
064C;afii57452;ARABIC DAMMATAN
064D;afii57453;ARABIC KASRATAN
064E;afii57454;ARABIC FATHA
064F;afii57455;ARABIC DAMMA
0650;afii57456;ARABIC KASRA
0651;afii57457;ARABIC SHADDA
0652;afii57458;ARABIC SUKUN
0647;afii57470;ARABIC LETTER HEH
06A4;afii57505;ARABIC LETTER VEH
067E;afii57506;ARABIC LETTER PEH
0686;afii57507;ARABIC LETTER TCHEH
0698;afii57508;ARABIC LETTER JEH
06AF;afii57509;ARABIC LETTER GAF
0679;afii57511;ARABIC LETTER TTEH
0688;afii57512;ARABIC LETTER DDAL
0691;afii57513;ARABIC LETTER RREH
06BA;afii57514;ARABIC LETTER NOON GHUNNA
06D2;afii57519;ARABIC LETTER YEH BARREE
06D5;afii57534;ARABIC LETTER AE
20AA;afii57636;NEW SHEQEL SIGN
05BE;afii57645;HEBREW PUNCTUATION MAQAF
05C3;afii57658;HEBREW PUNCTUATION SOF PASUQ
05D0;afii57664;HEBREW LETTER ALEF
05D1;afii57665;HEBREW LETTER BET
05D2;afii57666;HEBREW LETTER GIMEL
05D3;afii57667;HEBREW LETTER DALET
05D4;afii57668;HEBREW LETTER HE
05D5;afii57669;HEBREW LETTER VAV
05D6;afii57670;HEBREW LETTER ZAYIN
05D7;afii57671;HEBREW LETTER HET
05D8;afii57672;HEBREW LETTER TET
05D9;afii57673;HEBREW LETTER YOD
05DA;afii57674;HEBREW LETTER FINAL KAF
05DB;afii57675;HEBREW LETTER KAF
05DC;afii57676;HEBREW LETTER LAMED
05DD;afii57677;HEBREW LETTER FINAL MEM
05DE;afii57678;HEBREW LETTER MEM
05DF;afii57679;HEBREW LETTER FINAL NUN
05E0;afii57680;HEBREW LETTER NUN
05E1;afii57681;HEBREW LETTER SAMEKH
05E2;afii57682;HEBREW LETTER AYIN
05E3;afii57683;HEBREW LETTER FINAL PE
05E4;afii57684;HEBREW LETTER PE
05E5;afii57685;HEBREW LETTER FINAL TSADI
05E6;afii57686;HEBREW LETTER TSADI
05E7;afii57687;HEBREW LETTER QOF
05E8;afii57688;HEBREW LETTER RESH
05E9;afii57689;HEBREW LETTER SHIN
05EA;afii57690;HEBREW LETTER TAV
FB2A;afii57694;HEBREW LETTER SHIN WITH SHIN DOT
FB2B;afii57695;HEBREW LETTER SHIN WITH SIN DOT
FB4B;afii57700;HEBREW LETTER VAV WITH HOLAM
FB1F;afii57705;HEBREW LIGATURE YIDDISH YOD YOD PATAH
05F0;afii57716;HEBREW LIGATURE YIDDISH DOUBLE VAV
05F1;afii57717;HEBREW LIGATURE YIDDISH VAV YOD
05F2;afii57718;HEBREW LIGATURE YIDDISH DOUBLE YOD
FB35;afii57723;HEBREW LETTER VAV WITH DAGESH
05B4;afii57793;HEBREW POINT HIRIQ
05B5;afii57794;HEBREW POINT TSERE
05B6;afii57795;HEBREW POINT SEGOL
05BB;afii57796;HEBREW POINT QUBUTS
05B8;afii57797;HEBREW POINT QAMATS
05B7;afii57798;HEBREW POINT PATAH
05B0;afii57799;HEBREW POINT SHEVA
05B2;afii57800;HEBREW POINT HATAF PATAH
05B1;afii57801;HEBREW POINT HATAF SEGOL
05B3;afii57802;HEBREW POINT HATAF QAMATS
05C2;afii57803;HEBREW POINT SIN DOT
05C1;afii57804;HEBREW POINT SHIN DOT
05B9;afii57806;HEBREW POINT HOLAM
05BC;afii57807;HEBREW POINT DAGESH OR MAPIQ
05BD;afii57839;HEBREW POINT METEG
05BF;afii57841;HEBREW POINT RAFE
05C0;afii57842;HEBREW PUNCTUATION PASEQ
02BC;afii57929;MODIFIER LETTER APOSTROPHE
2105;afii61248;CARE OF
2113;afii61289;SCRIPT SMALL L
2116;afii61352;NUMERO SIGN
202C;afii61573;POP DIRECTIONAL FORMATTING
202D;afii61574;LEFT-TO-RIGHT OVERRIDE
202E;afii61575;RIGHT-TO-LEFT OVERRIDE
200C;afii61664;ZERO WIDTH NON-JOINER
066D;afii63167;ARABIC FIVE POINTED STAR
02BD;afii64937;MODIFIER LETTER REVERSED COMMA
00E0;agrave;LATIN SMALL LETTER A WITH GRAVE
2135;aleph;ALEF SYMBOL
03B1;alpha;GREEK SMALL LETTER ALPHA
03AC;alphatonos;GREEK SMALL LETTER ALPHA WITH TONOS
0101;amacron;LATIN SMALL LETTER A WITH MACRON
0026;ampersand;AMPERSAND
F726;ampersandsmall;SMALL CAPITAL AMPERSAND
2220;angle;ANGLE
2329;angleleft;LEFT-POINTING ANGLE BRACKET
232A;angleright;RIGHT-POINTING ANGLE BRACKET
0387;anoteleia;GREEK ANO TELEIA
0105;aogonek;LATIN SMALL LETTER A WITH OGONEK
2248;approxequal;ALMOST EQUAL TO
00E5;aring;LATIN SMALL LETTER A WITH RING ABOVE
01FB;aringacute;LATIN SMALL LETTER A WITH RING ABOVE AND ACUTE
2194;arrowboth;LEFT RIGHT ARROW
21D4;arrowdblboth;LEFT RIGHT DOUBLE ARROW
21D3;arrowdbldown;DOWNWARDS DOUBLE ARROW
21D0;arrowdblleft;LEFTWARDS DOUBLE ARROW
21D2;arrowdblright;RIGHTWARDS DOUBLE ARROW
21D1;arrowdblup;UPWARDS DOUBLE ARROW
2193;arrowdown;DOWNWARDS ARROW
F8E7;arrowhorizex;HORIZONTAL ARROW EXTENDER
2190;arrowleft;LEFTWARDS ARROW
2192;arrowright;RIGHTWARDS ARROW
2191;arrowup;UPWARDS ARROW
2195;arrowupdn;UP DOWN ARROW
21A8;arrowupdnbse;UP DOWN ARROW WITH BASE
F8E6;arrowvertex;VERTICAL ARROW EXTENDER
005E;asciicircum;CIRCUMFLEX ACCENT
007E;asciitilde;TILDE
002A;asterisk;ASTERISK
2217;asteriskmath;ASTERISK OPERATOR
F6E9;asuperior;SUPERSCRIPT LATIN SMALL LETTER A
0040;at;COMMERCIAL AT
00E3;atilde;LATIN SMALL LETTER A WITH TILDE
0062;b;LATIN SMALL LETTER B
005C;backslash;REVERSE SOLIDUS
007C;bar;VERTICAL LINE
03B2;beta;GREEK SMALL LETTER BETA
2588;block;FULL BLOCK
F8F4;braceex;CURLY BRACKET EXTENDER
007B;braceleft;LEFT CURLY BRACKET
F8F3;braceleftbt;LEFT CURLY BRACKET BOTTOM
F8F2;braceleftmid;LEFT CURLY BRACKET MID
F8F1;bracelefttp;LEFT CURLY BRACKET TOP
007D;braceright;RIGHT CURLY BRACKET
F8FE;bracerightbt;RIGHT CURLY BRACKET BOTTOM
F8FD;bracerightmid;RIGHT CURLY BRACKET MID
F8FC;bracerighttp;RIGHT CURLY BRACKET TOP
005B;bracketleft;LEFT SQUARE BRACKET
F8F0;bracketleftbt;LEFT SQUARE BRACKET BOTTOM
F8EF;bracketleftex;LEFT SQUARE BRACKET EXTENDER
F8EE;bracketlefttp;LEFT SQUARE BRACKET TOP
005D;bracketright;RIGHT SQUARE BRACKET
F8FB;bracketrightbt;RIGHT SQUARE BRACKET BOTTOM
F8FA;bracketrightex;RIGHT SQUARE BRACKET EXTENDER
F8F9;bracketrighttp;RIGHT SQUARE BRACKET TOP
02D8;breve;BREVE
00A6;brokenbar;BROKEN BAR
F6EA;bsuperior;SUPERSCRIPT LATIN SMALL LETTER B
2022;bullet;BULLET
0063;c;LATIN SMALL LETTER C
0107;cacute;LATIN SMALL LETTER C WITH ACUTE
02C7;caron;CARON
21B5;carriagereturn;DOWNWARDS ARROW WITH CORNER LEFTWARDS
010D;ccaron;LATIN SMALL LETTER C WITH CARON
00E7;ccedilla;LATIN SMALL LETTER C WITH CEDILLA
0109;ccircumflex;LATIN SMALL LETTER C WITH CIRCUMFLEX
010B;cdotaccent;LATIN SMALL LETTER C WITH DOT ABOVE
00B8;cedilla;CEDILLA
00A2;cent;CENT SIGN
F6DF;centinferior;SUBSCRIPT CENT SIGN
F7A2;centoldstyle;OLDSTYLE CENT SIGN
F6E0;centsuperior;SUPERSCRIPT CENT SIGN
03C7;chi;GREEK SMALL LETTER CHI
25CB;circle;WHITE CIRCLE
2297;circlemultiply;CIRCLED TIMES
2295;circleplus;CIRCLED PLUS
02C6;circumflex;MODIFIER LETTER CIRCUMFLEX ACCENT
2663;club;BLACK CLUB SUIT
003A;colon;COLON
20A1;colonmonetary;COLON SIGN
002C;comma;COMMA
F6C3;commaaccent;COMMA BELOW
F6E1;commainferior;SUBSCRIPT COMMA
F6E2;commasuperior;SUPERSCRIPT COMMA
2245;congruent;APPROXIMATELY EQUAL TO
00A9;copyright;COPYRIGHT SIGN
F8E9;copyrightsans;COPYRIGHT SIGN SANS SERIF
F6D9;copyrightserif;COPYRIGHT SIGN SERIF
00A4;currency;CURRENCY SIGN
F6D1;cyrBreve;CAPITAL CYRILLIC BREVE
F6D2;cyrFlex;CAPITAL CYRILLIC CIRCUMFLEX
F6D4;cyrbreve;CYRILLIC BREVE
F6D5;cyrflex;CYRILLIC CIRCUMFLEX
0064;d;LATIN SMALL LETTER D
2020;dagger;DAGGER
2021;daggerdbl;DOUBLE DAGGER
F6D3;dblGrave;CAPITAL DOUBLE GRAVE ACCENT
F6D6;dblgrave;DOUBLE GRAVE ACCENT
010F;dcaron;LATIN SMALL LETTER D WITH CARON
0111;dcroat;LATIN SMALL LETTER D WITH STROKE
00B0;degree;DEGREE SIGN
03B4;delta;GREEK SMALL LETTER DELTA
2666;diamond;BLACK DIAMOND SUIT
00A8;dieresis;DIAERESIS
F6D7;dieresisacute;DIAERESIS ACUTE ACCENT
F6D8;dieresisgrave;DIAERESIS GRAVE ACCENT
0385;dieresistonos;GREEK DIALYTIKA TONOS
00F7;divide;DIVISION SIGN
2593;dkshade;DARK SHADE
2584;dnblock;LOWER HALF BLOCK
0024;dollar;DOLLAR SIGN
F6E3;dollarinferior;SUBSCRIPT DOLLAR SIGN
F724;dollaroldstyle;OLDSTYLE DOLLAR SIGN
F6E4;dollarsuperior;SUPERSCRIPT DOLLAR SIGN
20AB;dong;DONG SIGN
02D9;dotaccent;DOT ABOVE
0323;dotbelowcomb;COMBINING DOT BELOW
0131;dotlessi;LATIN SMALL LETTER DOTLESS I
F6BE;dotlessj;LATIN SMALL LETTER DOTLESS J
22C5;dotmath;DOT OPERATOR
F6EB;dsuperior;SUPERSCRIPT LATIN SMALL LETTER D
0065;e;LATIN SMALL LETTER E
00E9;eacute;LATIN SMALL LETTER E WITH ACUTE
0115;ebreve;LATIN SMALL LETTER E WITH BREVE
011B;ecaron;LATIN SMALL LETTER E WITH CARON
00EA;ecircumflex;LATIN SMALL LETTER E WITH CIRCUMFLEX
00EB;edieresis;LATIN SMALL LETTER E WITH DIAERESIS
0117;edotaccent;LATIN SMALL LETTER E WITH DOT ABOVE
00E8;egrave;LATIN SMALL LETTER E WITH GRAVE
0038;eight;DIGIT EIGHT
2088;eightinferior;SUBSCRIPT EIGHT
F738;eightoldstyle;OLDSTYLE DIGIT EIGHT
2078;eightsuperior;SUPERSCRIPT EIGHT
2208;element;ELEMENT OF
2026;ellipsis;HORIZONTAL ELLIPSIS
0113;emacron;LATIN SMALL LETTER E WITH MACRON
2014;emdash;EM DASH
2205;emptyset;EMPTY SET
2013;endash;EN DASH
014B;eng;LATIN SMALL LETTER ENG
0119;eogonek;LATIN SMALL LETTER E WITH OGONEK
03B5;epsilon;GREEK SMALL LETTER EPSILON
03AD;epsilontonos;GREEK SMALL LETTER EPSILON WITH TONOS
003D;equal;EQUALS SIGN
2261;equivalence;IDENTICAL TO
212E;estimated;ESTIMATED SYMBOL
F6EC;esuperior;SUPERSCRIPT LATIN SMALL LETTER E
03B7;eta;GREEK SMALL LETTER ETA
03AE;etatonos;GREEK SMALL LETTER ETA WITH TONOS
00F0;eth;LATIN SMALL LETTER ETH
0021;exclam;EXCLAMATION MARK
203C;exclamdbl;DOUBLE EXCLAMATION MARK
00A1;exclamdown;INVERTED EXCLAMATION MARK
F7A1;exclamdownsmall;SMALL CAPITAL INVERTED EXCLAMATION MARK
F721;exclamsmall;SMALL CAPITAL EXCLAMATION MARK
2203;existential;THERE EXISTS
0066;f;LATIN SMALL LETTER F
2640;female;FEMALE SIGN
FB00;ff;LATIN SMALL LIGATURE FF
FB03;ffi;LATIN SMALL LIGATURE FFI
FB04;ffl;LATIN SMALL LIGATURE FFL
FB01;fi;LATIN SMALL LIGATURE FI
2012;figuredash;FIGURE DASH
25A0;filledbox;BLACK SQUARE
25AC;filledrect;BLACK RECTANGLE
0035;five;DIGIT FIVE
215D;fiveeighths;VULGAR FRACTION FIVE EIGHTHS
2085;fiveinferior;SUBSCRIPT FIVE
F735;fiveoldstyle;OLDSTYLE DIGIT FIVE
2075;fivesuperior;SUPERSCRIPT FIVE
FB02;fl;LATIN SMALL LIGATURE FL
0192;florin;LATIN SMALL LETTER F WITH HOOK
0034;four;DIGIT FOUR
2084;fourinferior;SUBSCRIPT FOUR
F734;fouroldstyle;OLDSTYLE DIGIT FOUR
2074;foursuperior;SUPERSCRIPT FOUR
2044;fraction;FRACTION SLASH
2215;fraction;DIVISION SLASH;Duplicate
20A3;franc;FRENCH FRANC SIGN
0067;g;LATIN SMALL LETTER G
03B3;gamma;GREEK SMALL LETTER GAMMA
011F;gbreve;LATIN SMALL LETTER G WITH BREVE
01E7;gcaron;LATIN SMALL LETTER G WITH CARON
011D;gcircumflex;LATIN SMALL LETTER G WITH CIRCUMFLEX
0123;gcommaaccent;LATIN SMALL LETTER G WITH CEDILLA
0121;gdotaccent;LATIN SMALL LETTER G WITH DOT ABOVE
00DF;germandbls;LATIN SMALL LETTER SHARP S
2207;gradient;NABLA
0060;grave;GRAVE ACCENT
0300;gravecomb;COMBINING GRAVE ACCENT
003E;greater;GREATER-THAN SIGN
2265;greaterequal;GREATER-THAN OR EQUAL TO
00AB;guillemotleft;LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
00BB;guillemotright;RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
2039;guilsinglleft;SINGLE LEFT-POINTING ANGLE QUOTATION MARK
203A;guilsinglright;SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
0068;h;LATIN SMALL LETTER H
0127;hbar;LATIN SMALL LETTER H WITH STROKE
0125;hcircumflex;LATIN SMALL LETTER H WITH CIRCUMFLEX
2665;heart;BLACK HEART SUIT
0309;hookabovecomb;COMBINING HOOK ABOVE
2302;house;HOUSE
02DD;hungarumlaut;DOUBLE ACUTE ACCENT
002D;hyphen;HYPHEN-MINUS
00AD;hyphen;SOFT HYPHEN;Duplicate
F6E5;hypheninferior;SUBSCRIPT HYPHEN-MINUS
F6E6;hyphensuperior;SUPERSCRIPT HYPHEN-MINUS
0069;i;LATIN SMALL LETTER I
00ED;iacute;LATIN SMALL LETTER I WITH ACUTE
012D;ibreve;LATIN SMALL LETTER I WITH BREVE
00EE;icircumflex;LATIN SMALL LETTER I WITH CIRCUMFLEX
00EF;idieresis;LATIN SMALL LETTER I WITH DIAERESIS
00EC;igrave;LATIN SMALL LETTER I WITH GRAVE
0133;ij;LATIN SMALL LIGATURE IJ
012B;imacron;LATIN SMALL LETTER I WITH MACRON
221E;infinity;INFINITY
222B;integral;INTEGRAL
2321;integralbt;BOTTOM HALF INTEGRAL
F8F5;integralex;INTEGRAL EXTENDER
2320;integraltp;TOP HALF INTEGRAL
2229;intersection;INTERSECTION
25D8;invbullet;INVERSE BULLET
25D9;invcircle;INVERSE WHITE CIRCLE
263B;invsmileface;BLACK SMILING FACE
012F;iogonek;LATIN SMALL LETTER I WITH OGONEK
03B9;iota;GREEK SMALL LETTER IOTA
03CA;iotadieresis;GREEK SMALL LETTER IOTA WITH DIALYTIKA
0390;iotadieresistonos;GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS
03AF;iotatonos;GREEK SMALL LETTER IOTA WITH TONOS
F6ED;isuperior;SUPERSCRIPT LATIN SMALL LETTER I
0129;itilde;LATIN SMALL LETTER I WITH TILDE
006A;j;LATIN SMALL LETTER J
0135;jcircumflex;LATIN SMALL LETTER J WITH CIRCUMFLEX
006B;k;LATIN SMALL LETTER K
03BA;kappa;GREEK SMALL LETTER KAPPA
0137;kcommaaccent;LATIN SMALL LETTER K WITH CEDILLA
0138;kgreenlandic;LATIN SMALL LETTER KRA
006C;l;LATIN SMALL LETTER L
013A;lacute;LATIN SMALL LETTER L WITH ACUTE
03BB;lambda;GREEK SMALL LETTER LAMDA
013E;lcaron;LATIN SMALL LETTER L WITH CARON
013C;lcommaaccent;LATIN SMALL LETTER L WITH CEDILLA
0140;ldot;LATIN SMALL LETTER L WITH MIDDLE DOT
003C;less;LESS-THAN SIGN
2264;lessequal;LESS-THAN OR EQUAL TO
258C;lfblock;LEFT HALF BLOCK
20A4;lira;LIRA SIGN
F6C0;ll;LATIN SMALL LETTER LL
2227;logicaland;LOGICAL AND
00AC;logicalnot;NOT SIGN
2228;logicalor;LOGICAL OR
017F;longs;LATIN SMALL LETTER LONG S
25CA;lozenge;LOZENGE
0142;lslash;LATIN SMALL LETTER L WITH STROKE
F6EE;lsuperior;SUPERSCRIPT LATIN SMALL LETTER L
2591;ltshade;LIGHT SHADE
006D;m;LATIN SMALL LETTER M
00AF;macron;MACRON
02C9;macron;MODIFIER LETTER MACRON;Duplicate
2642;male;MALE SIGN
2212;minus;MINUS SIGN
2032;minute;PRIME
F6EF;msuperior;SUPERSCRIPT LATIN SMALL LETTER M
00B5;mu;MICRO SIGN
03BC;mu;GREEK SMALL LETTER MU;Duplicate
00D7;multiply;MULTIPLICATION SIGN
266A;musicalnote;EIGHTH NOTE
266B;musicalnotedbl;BEAMED EIGHTH NOTES
006E;n;LATIN SMALL LETTER N
0144;nacute;LATIN SMALL LETTER N WITH ACUTE
0149;napostrophe;LATIN SMALL LETTER N PRECEDED BY APOSTROPHE
0148;ncaron;LATIN SMALL LETTER N WITH CARON
0146;ncommaaccent;LATIN SMALL LETTER N WITH CEDILLA
0039;nine;DIGIT NINE
2089;nineinferior;SUBSCRIPT NINE
F739;nineoldstyle;OLDSTYLE DIGIT NINE
2079;ninesuperior;SUPERSCRIPT NINE
2209;notelement;NOT AN ELEMENT OF
2260;notequal;NOT EQUAL TO
2284;notsubset;NOT A SUBSET OF
207F;nsuperior;SUPERSCRIPT LATIN SMALL LETTER N
00F1;ntilde;LATIN SMALL LETTER N WITH TILDE
03BD;nu;GREEK SMALL LETTER NU
0023;numbersign;NUMBER SIGN
006F;o;LATIN SMALL LETTER O
00F3;oacute;LATIN SMALL LETTER O WITH ACUTE
014F;obreve;LATIN SMALL LETTER O WITH BREVE
00F4;ocircumflex;LATIN SMALL LETTER O WITH CIRCUMFLEX
00F6;odieresis;LATIN SMALL LETTER O WITH DIAERESIS
0153;oe;LATIN SMALL LIGATURE OE
02DB;ogonek;OGONEK
00F2;ograve;LATIN SMALL LETTER O WITH GRAVE
01A1;ohorn;LATIN SMALL LETTER O WITH HORN
0151;ohungarumlaut;LATIN SMALL LETTER O WITH DOUBLE ACUTE
014D;omacron;LATIN SMALL LETTER O WITH MACRON
03C9;omega;GREEK SMALL LETTER OMEGA
03D6;omega1;GREEK PI SYMBOL
03CE;omegatonos;GREEK SMALL LETTER OMEGA WITH TONOS
03BF;omicron;GREEK SMALL LETTER OMICRON
03CC;omicrontonos;GREEK SMALL LETTER OMICRON WITH TONOS
0031;one;DIGIT ONE
2024;onedotenleader;ONE DOT LEADER
215B;oneeighth;VULGAR FRACTION ONE EIGHTH
F6DC;onefitted;PROPORTIONAL DIGIT ONE
00BD;onehalf;VULGAR FRACTION ONE HALF
2081;oneinferior;SUBSCRIPT ONE
F731;oneoldstyle;OLDSTYLE DIGIT ONE
00BC;onequarter;VULGAR FRACTION ONE QUARTER
00B9;onesuperior;SUPERSCRIPT ONE
2153;onethird;VULGAR FRACTION ONE THIRD
25E6;openbullet;WHITE BULLET
00AA;ordfeminine;FEMININE ORDINAL INDICATOR
00BA;ordmasculine;MASCULINE ORDINAL INDICATOR
221F;orthogonal;RIGHT ANGLE
00F8;oslash;LATIN SMALL LETTER O WITH STROKE
01FF;oslashacute;LATIN SMALL LETTER O WITH STROKE AND ACUTE
F6F0;osuperior;SUPERSCRIPT LATIN SMALL LETTER O
00F5;otilde;LATIN SMALL LETTER O WITH TILDE
0070;p;LATIN SMALL LETTER P
00B6;paragraph;PILCROW SIGN
0028;parenleft;LEFT PARENTHESIS
F8ED;parenleftbt;LEFT PAREN BOTTOM
F8EC;parenleftex;LEFT PAREN EXTENDER
208D;parenleftinferior;SUBSCRIPT LEFT PARENTHESIS
207D;parenleftsuperior;SUPERSCRIPT LEFT PARENTHESIS
F8EB;parenlefttp;LEFT PAREN TOP
0029;parenright;RIGHT PARENTHESIS
F8F8;parenrightbt;RIGHT PAREN BOTTOM
F8F7;parenrightex;RIGHT PAREN EXTENDER
208E;parenrightinferior;SUBSCRIPT RIGHT PARENTHESIS
207E;parenrightsuperior;SUPERSCRIPT RIGHT PARENTHESIS
F8F6;parenrighttp;RIGHT PAREN TOP
2202;partialdiff;PARTIAL DIFFERENTIAL
0025;percent;PERCENT SIGN
002E;period;FULL STOP
00B7;periodcentered;MIDDLE DOT
2219;periodcentered;BULLET OPERATOR;Duplicate
F6E7;periodinferior;SUBSCRIPT FULL STOP
F6E8;periodsuperior;SUPERSCRIPT FULL STOP
22A5;perpendicular;UP TACK
2030;perthousand;PER MILLE SIGN
20A7;peseta;PESETA SIGN
03C6;phi;GREEK SMALL LETTER PHI
03D5;phi1;GREEK PHI SYMBOL
03C0;pi;GREEK SMALL LETTER PI
002B;plus;PLUS SIGN
00B1;plusminus;PLUS-MINUS SIGN
211E;prescription;PRESCRIPTION TAKE
220F;product;N-ARY PRODUCT
2282;propersubset;SUBSET OF
2283;propersuperset;SUPERSET OF
221D;proportional;PROPORTIONAL TO
03C8;psi;GREEK SMALL LETTER PSI
0071;q;LATIN SMALL LETTER Q
003F;question;QUESTION MARK
00BF;questiondown;INVERTED QUESTION MARK
F7BF;questiondownsmall;SMALL CAPITAL INVERTED QUESTION MARK
F73F;questionsmall;SMALL CAPITAL QUESTION MARK
0022;quotedbl;QUOTATION MARK
201E;quotedblbase;DOUBLE LOW-9 QUOTATION MARK
201C;quotedblleft;LEFT DOUBLE QUOTATION MARK
201D;quotedblright;RIGHT DOUBLE QUOTATION MARK
2018;quoteleft;LEFT SINGLE QUOTATION MARK
201B;quotereversed;SINGLE HIGH-REVERSED-9 QUOTATION MARK
2019;quoteright;RIGHT SINGLE QUOTATION MARK
201A;quotesinglbase;SINGLE LOW-9 QUOTATION MARK
0027;quotesingle;APOSTROPHE
0072;r;LATIN SMALL LETTER R
0155;racute;LATIN SMALL LETTER R WITH ACUTE
221A;radical;SQUARE ROOT
F8E5;radicalex;RADICAL EXTENDER
0159;rcaron;LATIN SMALL LETTER R WITH CARON
0157;rcommaaccent;LATIN SMALL LETTER R WITH CEDILLA
2286;reflexsubset;SUBSET OF OR EQUAL TO
2287;reflexsuperset;SUPERSET OF OR EQUAL TO
00AE;registered;REGISTERED SIGN
F8E8;registersans;REGISTERED SIGN SANS SERIF
F6DA;registerserif;REGISTERED SIGN SERIF
2310;revlogicalnot;REVERSED NOT SIGN
03C1;rho;GREEK SMALL LETTER RHO
02DA;ring;RING ABOVE
F6F1;rsuperior;SUPERSCRIPT LATIN SMALL LETTER R
2590;rtblock;RIGHT HALF BLOCK
F6DD;rupiah;RUPIAH SIGN
0073;s;LATIN SMALL LETTER S
015B;sacute;LATIN SMALL LETTER S WITH ACUTE
0161;scaron;LATIN SMALL LETTER S WITH CARON
015F;scedilla;LATIN SMALL LETTER S WITH CEDILLA
F6C2;scedilla;LATIN SMALL LETTER S WITH CEDILLA;Duplicate
015D;scircumflex;LATIN SMALL LETTER S WITH CIRCUMFLEX
0219;scommaaccent;LATIN SMALL LETTER S WITH COMMA BELOW
2033;second;DOUBLE PRIME
00A7;section;SECTION SIGN
003B;semicolon;SEMICOLON
0037;seven;DIGIT SEVEN
215E;seveneighths;VULGAR FRACTION SEVEN EIGHTHS
2087;seveninferior;SUBSCRIPT SEVEN
F737;sevenoldstyle;OLDSTYLE DIGIT SEVEN
2077;sevensuperior;SUPERSCRIPT SEVEN
2592;shade;MEDIUM SHADE
03C3;sigma;GREEK SMALL LETTER SIGMA
03C2;sigma1;GREEK SMALL LETTER FINAL SIGMA
223C;similar;TILDE OPERATOR
0036;six;DIGIT SIX
2086;sixinferior;SUBSCRIPT SIX
F736;sixoldstyle;OLDSTYLE DIGIT SIX
2076;sixsuperior;SUPERSCRIPT SIX
002F;slash;SOLIDUS
263A;smileface;WHITE SMILING FACE
0020;space;SPACE
00A0;space;NO-BREAK SPACE;Duplicate
2660;spade;BLACK SPADE SUIT
F6F2;ssuperior;SUPERSCRIPT LATIN SMALL LETTER S
00A3;sterling;POUND SIGN
220B;suchthat;CONTAINS AS MEMBER
2211;summation;N-ARY SUMMATION
263C;sun;WHITE SUN WITH RAYS
0074;t;LATIN SMALL LETTER T
03C4;tau;GREEK SMALL LETTER TAU
0167;tbar;LATIN SMALL LETTER T WITH STROKE
0165;tcaron;LATIN SMALL LETTER T WITH CARON
0163;tcommaaccent;LATIN SMALL LETTER T WITH CEDILLA
021B;tcommaaccent;LATIN SMALL LETTER T WITH COMMA BELOW;Duplicate
2234;therefore;THEREFORE
03B8;theta;GREEK SMALL LETTER THETA
03D1;theta1;GREEK THETA SYMBOL
00FE;thorn;LATIN SMALL LETTER THORN
0033;three;DIGIT THREE
215C;threeeighths;VULGAR FRACTION THREE EIGHTHS
2083;threeinferior;SUBSCRIPT THREE
F733;threeoldstyle;OLDSTYLE DIGIT THREE
00BE;threequarters;VULGAR FRACTION THREE QUARTERS
F6DE;threequartersemdash;THREE QUARTERS EM DASH
00B3;threesuperior;SUPERSCRIPT THREE
02DC;tilde;SMALL TILDE
0303;tildecomb;COMBINING TILDE
0384;tonos;GREEK TONOS
2122;trademark;TRADE MARK SIGN
F8EA;trademarksans;TRADE MARK SIGN SANS SERIF
F6DB;trademarkserif;TRADE MARK SIGN SERIF
25BC;triagdn;BLACK DOWN-POINTING TRIANGLE
25C4;triaglf;BLACK LEFT-POINTING POINTER
25BA;triagrt;BLACK RIGHT-POINTING POINTER
25B2;triagup;BLACK UP-POINTING TRIANGLE
F6F3;tsuperior;SUPERSCRIPT LATIN SMALL LETTER T
0032;two;DIGIT TWO
2025;twodotenleader;TWO DOT LEADER
2082;twoinferior;SUBSCRIPT TWO
F732;twooldstyle;OLDSTYLE DIGIT TWO
00B2;twosuperior;SUPERSCRIPT TWO
2154;twothirds;VULGAR FRACTION TWO THIRDS
0075;u;LATIN SMALL LETTER U
00FA;uacute;LATIN SMALL LETTER U WITH ACUTE
016D;ubreve;LATIN SMALL LETTER U WITH BREVE
00FB;ucircumflex;LATIN SMALL LETTER U WITH CIRCUMFLEX
00FC;udieresis;LATIN SMALL LETTER U WITH DIAERESIS
00F9;ugrave;LATIN SMALL LETTER U WITH GRAVE
01B0;uhorn;LATIN SMALL LETTER U WITH HORN
0171;uhungarumlaut;LATIN SMALL LETTER U WITH DOUBLE ACUTE
016B;umacron;LATIN SMALL LETTER U WITH MACRON
005F;underscore;LOW LINE
2017;underscoredbl;DOUBLE LOW LINE
222A;union;UNION
2200;universal;FOR ALL
0173;uogonek;LATIN SMALL LETTER U WITH OGONEK
2580;upblock;UPPER HALF BLOCK
03C5;upsilon;GREEK SMALL LETTER UPSILON
03CB;upsilondieresis;GREEK SMALL LETTER UPSILON WITH DIALYTIKA
03B0;upsilondieresistonos;GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS
03CD;upsilontonos;GREEK SMALL LETTER UPSILON WITH TONOS
016F;uring;LATIN SMALL LETTER U WITH RING ABOVE
0169;utilde;LATIN SMALL LETTER U WITH TILDE
0076;v;LATIN SMALL LETTER V
0077;w;LATIN SMALL LETTER W
1E83;wacute;LATIN SMALL LETTER W WITH ACUTE
0175;wcircumflex;LATIN SMALL LETTER W WITH CIRCUMFLEX
1E85;wdieresis;LATIN SMALL LETTER W WITH DIAERESIS
2118;weierstrass;SCRIPT CAPITAL P
1E81;wgrave;LATIN SMALL LETTER W WITH GRAVE
0078;x;LATIN SMALL LETTER X
03BE;xi;GREEK SMALL LETTER XI
0079;y;LATIN SMALL LETTER Y
00FD;yacute;LATIN SMALL LETTER Y WITH ACUTE
0177;ycircumflex;LATIN SMALL LETTER Y WITH CIRCUMFLEX
00FF;ydieresis;LATIN SMALL LETTER Y WITH DIAERESIS
00A5;yen;YEN SIGN
1EF3;ygrave;LATIN SMALL LETTER Y WITH GRAVE
007A;z;LATIN SMALL LETTER Z
017A;zacute;LATIN SMALL LETTER Z WITH ACUTE
017E;zcaron;LATIN SMALL LETTER Z WITH CARON
017C;zdotaccent;LATIN SMALL LETTER Z WITH DOT ABOVE
0030;zero;DIGIT ZERO
2080;zeroinferior;SUBSCRIPT ZERO
F730;zerooldstyle;OLDSTYLE DIGIT ZERO
2070;zerosuperior;SUPERSCRIPT ZERO
03B6;zeta;GREEK SMALL LETTER ZETA
"""
t1_bias = 0
glyph_list = []
def the_adobe_glyph_list():
"""return the list of glyph names in the adobe list"""
lines = string.split( adobe_glyph_list, '\n' )
glyphs = []
for line in lines:
if line:
fields = string.split( line, ';' )
# print fields[0] + ' - ' + fields[1]
glyphs.append( fields[1] )
return glyphs
def the_adobe_glyphs():
"""return the list of unicode values"""
lines = string.split( adobe_glyph_list, '\n' )
glyphs = []
values = []
for line in lines:
if line:
fields = string.split( line, ';' )
# print fields[0] + ' - ' + fields[1]
glyphs.append( fields[1] )
values.append( fields[0] )
return glyphs, values
def count_extra_glyphs( alist, filter ):
"""count the number of extra glyphs"""
count = 0
extras = []
for name in alist:
try:
filtered_index = filter.index( name )
except:
extras.append( name )
return extras
def dump_mac_indices( file, t1_bias ):
write = file.write
write( " static const unsigned short mac_standard_names[" + \
repr( len( mac_standard_names ) + 1 ) + "] =\n" )
write( " {\n" )
count = 0
for name in mac_standard_names:
try:
t1_index = t1_standard_strings.index( name )
write( " " + repr( t1_bias + t1_index ) + ",\n" )
except:
write( " " + repr( count ) + ",\n" )
count = count + 1
write( " 0\n" )
write( " };\n" )
write( "\n" )
write( "\n" )
def dump_glyph_list( file, glyph_list, adobe_extra ):
write = file.write
name_list = []
write( " static const char* const standard_glyph_names[] =\n" )
write( " {\n" )
for name in glyph_list:
write( ' "' + name + '",\n' )
name_list.append( name )
write( "\n" )
write( "#ifdef FT_CONFIG_OPTION_ADOBE_GLYPH_LIST\n" )
write( "\n" )
for name in adobe_extra:
write( ' "' + name + '",\n' )
name_list.append( name )
write( "\n" )
write( "#endif /* FT_CONFIG_OPTION_ADOBE_GLYPH_LIST */\n" )
write( "\n" )
write( " 0\n" )
write( " };\n" )
write( "\n" )
write( "\n" )
return name_list
def dump_unicode_values( file, base_list, adobe_list ):
"""build the glyph names to unicode values table"""
write = file.write
adobe_glyphs, uni_values = the_adobe_glyphs()
write( "\n" )
write( " static const unsigned short names_to_unicode[" + \
repr( len( base_list ) + len( adobe_list ) + 1 ) + "] =\n" )
write( " {\n" )
for name in base_list:
try:
index = adobe_glyphs.index( name )
write( " 0x" + uni_values[index] + ",\n" )
except:
write( " 0,\n" )
write( "\n" )
write( "#ifdef FT_CONFIG_OPTION_ADOBE_GLYPH_LIST\n" )
write( "\n" )
for name in adobe_list:
try:
index = adobe_glyphs.index( name )
write( " 0x" + uni_values[index] + ",\n" )
except:
write( " 0,\n" )
write( "\n" )
write( "#endif /* FT_CONFIG_OPTION_ADOBE_GLYPH_LIST */\n" )
write( " 0\n" )
write( " };\n" )
write( "\n" )
write( "\n" )
write( "\n" )
def dump_encoding( file, encoding_name, encoding_list ):
"""dumps a given encoding"""
write = file.write
write( " static const unsigned short " + encoding_name + "[" + \
repr( len( encoding_list ) + 1 ) + "] =\n" )
write( " {\n" )
for value in encoding_list:
write( " " + repr( value ) + ",\n" )
write( " 0\n" )
write( " };\n" )
write( "\n" )
write( "\n" )
def main():
"""main program body"""
if len( sys.argv ) != 2:
print __doc__ % sys.argv[0]
sys.exit( 1 )
file = open( sys.argv[1], "w\n" )
write = file.write
count_sid = len( t1_standard_strings )
# build mac index table & supplemental glyph names
mac_list = count_extra_glyphs( mac_standard_names, t1_standard_strings )
count_mac = len( mac_list )
t1_bias = count_mac
base_list = mac_list + t1_standard_strings
# build adobe unicode index table & supplemental glyph names
adobe_list = the_adobe_glyph_list()
adobe_list = count_extra_glyphs( adobe_list, base_list )
count_adobe = len( adobe_list )
write( "/***************************************************************************/\n" )
write( "/* */\n" )
write( "/* %-71s*/\n" % sys.argv[1] )
write( "/* */\n" )
write( "/* PostScript glyph names (specification only). */\n" )
write( "/* */\n" )
write( "/* Copyright 2000 by */\n" )
write( "/* David Turner, Robert Wilhelm, and Werner Lemberg. */\n" )
write( "/* */\n" )
write( "/* This file is part of the FreeType project, and may only be used, */\n" )
write( "/* modified, and distributed under the terms of the FreeType project */\n" )
write( "/* license, LICENSE.TXT. By continuing to use, modify, or distribute */\n" )
write( "/* this file you indicate that you have read the license and */\n" )
write( "/* understand and accept it fully. */\n" )
write( "/* */\n" )
write( "/***************************************************************************/\n" )
write( "\n" )
write( "\n" )
write( " /* this file has been generated automatically -- do not edit! */\n" )
write( "\n" )
write( "\n" )
# dump glyph list
name_list = dump_glyph_list( file, base_list, adobe_list )
# dump t1_standard_list
write( " static const char* const * const t1_standard_glyphs = " \
+ "standard_glyph_names + " + repr( t1_bias ) + ";\n" )
write( "\n" )
write( "\n" )
write( "#define NUM_STD_GLYPHS " + repr( len( t1_standard_strings ) ) + "\n" )
write( "\n" )
write( "#ifdef FT_CONFIG_OPTION_ADOBE_GLYPH_LIST\n" )
write( "#define NUM_ADOBE_GLYPHS " + \
repr( len( base_list ) + len( adobe_list ) - t1_bias ) + "\n" )
write( "#else\n" )
write( "#define NUM_ADOBE_GLYPHS " + \
repr( len( base_list ) - t1_bias ) + "\n" )
write( "#endif\n" )
write( "\n" )
write( "\n" )
# dump mac indices table
dump_mac_indices( file, t1_bias )
# discard mac names from base list
base_list = base_list[t1_bias:]
# dump unicode values table
dump_unicode_values( file, base_list, adobe_list )
dump_encoding( file, "t1_standard_encoding", t1_standard_encoding )
dump_encoding( file, "t1_expert_encoding", t1_expert_encoding )
write( "/* END */\n" )
# Now run the main routine
#
main()
# END