#!/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 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 # # see http://fonts.apple.com/TTRefMan/RM06/Chap6post.html # for the official list # mac_standard_names = \ [ # 0 ".notdef", ".null", "nonmarkingreturn", "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", "nonbreakingspace", "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 "Idotaccent", "Scedilla", "scedilla", "Cacute", "cacute", "Ccaron", "ccaron", "dcroat" ] # the list of standard "SID" glyph names. For the official list, # see Annex A of document at # http://partners.adobe.com/asn/developer/pdfs/tn/5176.CFF.pdf # sid_standard_names = \ [ # 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", "periodcentered", "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", "lslash", "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", "Uacutesmall", "Ucircumflexsmall", "Udieresissmall", "Yacutesmall", "Thornsmall", "Ydieresissmall", "001.000", # 380 "001.001", "001.002", "001.003", "Black", "Bold", "Book", "Light", "Medium", "Regular", "Roman", # 390 "Semibold" ] # this table maps character code of the Adobe Standard Type 1 # encoding to glyph indexes in the sid_standard_names table # 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 ] # this table maps character code of the Adobe Expert Type 1 # encoding to glyph indexes in the sid_standard_names table # 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, 313, 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 adobe_glyph_names(): """return the list of glyph names from 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 adobe_glyph_values(): """return the list of glyph names and their 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 filter_glyph_names( alist, filter ): """filter 'alist' by taking _out_ all glyph names that are in 'filter'""" count = 0 extras = [] for name in alist: try: filtered_index = filter.index( name ) except: extras.append( name ) return extras def dump_mac_indices( file, all_glyphs ): write = file.write write( " static const unsigned short mac_standard_names[" + \ repr( len( mac_standard_names ) + 1 ) + "] =\n" ) write( " {\n" ) for name in mac_standard_names: write( " " + repr( all_glyphs.index( name ) ) + ",\n" ) write( " 0\n" ) write( " };\n" ) write( "\n" ) write( "\n" ) def dump_glyph_list( file, base_list, adobe_list ): write = file.write name_list = [] write( " static const char* const ps_glyph_names[] =\n" ) write( " {\n" ) for name in base_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_list: write( ' "' + name + '",\n' ) name_list.append( name ) write( "\n" ) write( "#endif /* FT_CONFIG_OPTION_ADOBE_GLYPH_LIST */\n" ) write( "\n" ) write( " NULL\n" ) write( " };\n" ) write( "\n" ) write( "\n" ) return name_list def dump_unicode_values( file, sid_list, adobe_list ): """build the glyph names to unicode values table""" write = file.write agl_names, agl_unicodes = adobe_glyph_values() write( "\n" ) write( " static const unsigned short ps_names_to_unicode[" + \ repr( len( sid_list ) + len( adobe_list ) + 1 ) + "] =\n" ) write( " {\n" ) for name in sid_list: try: index = agl_names.index( name ) write( " 0x" + agl_unicodes[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 = agl_names.index( name ) write( " 0x" + agl_unicodes[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( sid_standard_names ) # 'mac_extras' contains the list of glyph names in the Macintosh standard # encoding which are not in either the Adobe Glyph List or the SID # Standard Names. # mac_extras = filter_glyph_names( mac_standard_names, adobe_glyph_names() ) mac_extras = filter_glyph_names( mac_extras, sid_standard_names ) # 'base_list' contains the first names of our final glyph names table. # It consists of the 'mac_extras' glyph names, followed by the SID # Standard names. # mac_extras_count = len( mac_extras ) t1_bias = mac_extras_count base_list = mac_extras + sid_standard_names # 'adobe_list' contains the glyph names that are in the AGL, but not in # the base_list; they will be placed after base_list glyph names in # our final table. # adobe_list = filter_glyph_names( adobe_glyph_names(), base_list ) adobe_count = 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-2001 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 final glyph list (mac extras + sid standard names + AGL glyph names) # name_list = dump_glyph_list( file, base_list, adobe_list ) # dump t1_standard_list write( " static const char* const * const sid_standard_names = " \ + "ps_glyph_names + " + repr( t1_bias ) + ";\n" ) write( "\n" ) write( "\n" ) write( "#define NUM_SID_GLYPHS " + repr( len( sid_standard_names ) ) + "\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, name_list ) # dump unicode values table dump_unicode_values( file, sid_standard_names, 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