Edit

kc3-lang/freetype/src/tools/glnames.py

Branch :

  • Show log

    Commit

  • Author : Werner Lemberg
    Date : 2017-01-04 20:16:34
    Hash : 563ae780
    Message : Update copyright year.

  • src/tools/glnames.py
  • #!/usr/bin/env python
    #
    
    #
    # FreeType 2 glyph name builder
    #
    
    
    # Copyright 1996-2017 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 python script generates 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, struct, re, os.path
    
    
    # This table lists the glyphs according to the Macintosh specification.
    # It is used by the TrueType Postscript names table.
    #
    # See
    #
    #   https://developer.apple.com/fonts/TrueType-Reference-Manual/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/public/developer/en/font/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 codes of the Adobe Standard Type 1
    # encoding to glyph indices 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 codes of the Adobe Expert Type 1
    # encoding to glyph indices 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 files `glyphlist.txt'
    # and `zapfdingbats.txt' version 2.0, Sept 2002.  It is available from
    #
    #   https://github.com/adobe-type-tools/agl-aglfn
    #
    adobe_glyph_list = """\
    A;0041
    AE;00C6
    AEacute;01FC
    AEmacron;01E2
    AEsmall;F7E6
    Aacute;00C1
    Aacutesmall;F7E1
    Abreve;0102
    Abreveacute;1EAE
    Abrevecyrillic;04D0
    Abrevedotbelow;1EB6
    Abrevegrave;1EB0
    Abrevehookabove;1EB2
    Abrevetilde;1EB4
    Acaron;01CD
    Acircle;24B6
    Acircumflex;00C2
    Acircumflexacute;1EA4
    Acircumflexdotbelow;1EAC
    Acircumflexgrave;1EA6
    Acircumflexhookabove;1EA8
    Acircumflexsmall;F7E2
    Acircumflextilde;1EAA
    Acute;F6C9
    Acutesmall;F7B4
    Acyrillic;0410
    Adblgrave;0200
    Adieresis;00C4
    Adieresiscyrillic;04D2
    Adieresismacron;01DE
    Adieresissmall;F7E4
    Adotbelow;1EA0
    Adotmacron;01E0
    Agrave;00C0
    Agravesmall;F7E0
    Ahookabove;1EA2
    Aiecyrillic;04D4
    Ainvertedbreve;0202
    Alpha;0391
    Alphatonos;0386
    Amacron;0100
    Amonospace;FF21
    Aogonek;0104
    Aring;00C5
    Aringacute;01FA
    Aringbelow;1E00
    Aringsmall;F7E5
    Asmall;F761
    Atilde;00C3
    Atildesmall;F7E3
    Aybarmenian;0531
    B;0042
    Bcircle;24B7
    Bdotaccent;1E02
    Bdotbelow;1E04
    Becyrillic;0411
    Benarmenian;0532
    Beta;0392
    Bhook;0181
    Blinebelow;1E06
    Bmonospace;FF22
    Brevesmall;F6F4
    Bsmall;F762
    Btopbar;0182
    C;0043
    Caarmenian;053E
    Cacute;0106
    Caron;F6CA
    Caronsmall;F6F5
    Ccaron;010C
    Ccedilla;00C7
    Ccedillaacute;1E08
    Ccedillasmall;F7E7
    Ccircle;24B8
    Ccircumflex;0108
    Cdot;010A
    Cdotaccent;010A
    Cedillasmall;F7B8
    Chaarmenian;0549
    Cheabkhasiancyrillic;04BC
    Checyrillic;0427
    Chedescenderabkhasiancyrillic;04BE
    Chedescendercyrillic;04B6
    Chedieresiscyrillic;04F4
    Cheharmenian;0543
    Chekhakassiancyrillic;04CB
    Cheverticalstrokecyrillic;04B8
    Chi;03A7
    Chook;0187
    Circumflexsmall;F6F6
    Cmonospace;FF23
    Coarmenian;0551
    Csmall;F763
    D;0044
    DZ;01F1
    DZcaron;01C4
    Daarmenian;0534
    Dafrican;0189
    Dcaron;010E
    Dcedilla;1E10
    Dcircle;24B9
    Dcircumflexbelow;1E12
    Dcroat;0110
    Ddotaccent;1E0A
    Ddotbelow;1E0C
    Decyrillic;0414
    Deicoptic;03EE
    Delta;2206
    Deltagreek;0394
    Dhook;018A
    Dieresis;F6CB
    DieresisAcute;F6CC
    DieresisGrave;F6CD
    Dieresissmall;F7A8
    Digammagreek;03DC
    Djecyrillic;0402
    Dlinebelow;1E0E
    Dmonospace;FF24
    Dotaccentsmall;F6F7
    Dslash;0110
    Dsmall;F764
    Dtopbar;018B
    Dz;01F2
    Dzcaron;01C5
    Dzeabkhasiancyrillic;04E0
    Dzecyrillic;0405
    Dzhecyrillic;040F
    E;0045
    Eacute;00C9
    Eacutesmall;F7E9
    Ebreve;0114
    Ecaron;011A
    Ecedillabreve;1E1C
    Echarmenian;0535
    Ecircle;24BA
    Ecircumflex;00CA
    Ecircumflexacute;1EBE
    Ecircumflexbelow;1E18
    Ecircumflexdotbelow;1EC6
    Ecircumflexgrave;1EC0
    Ecircumflexhookabove;1EC2
    Ecircumflexsmall;F7EA
    Ecircumflextilde;1EC4
    Ecyrillic;0404
    Edblgrave;0204
    Edieresis;00CB
    Edieresissmall;F7EB
    Edot;0116
    Edotaccent;0116
    Edotbelow;1EB8
    Efcyrillic;0424
    Egrave;00C8
    Egravesmall;F7E8
    Eharmenian;0537
    Ehookabove;1EBA
    Eightroman;2167
    Einvertedbreve;0206
    Eiotifiedcyrillic;0464
    Elcyrillic;041B
    Elevenroman;216A
    Emacron;0112
    Emacronacute;1E16
    Emacrongrave;1E14
    Emcyrillic;041C
    Emonospace;FF25
    Encyrillic;041D
    Endescendercyrillic;04A2
    Eng;014A
    Enghecyrillic;04A4
    Enhookcyrillic;04C7
    Eogonek;0118
    Eopen;0190
    Epsilon;0395
    Epsilontonos;0388
    Ercyrillic;0420
    Ereversed;018E
    Ereversedcyrillic;042D
    Escyrillic;0421
    Esdescendercyrillic;04AA
    Esh;01A9
    Esmall;F765
    Eta;0397
    Etarmenian;0538
    Etatonos;0389
    Eth;00D0
    Ethsmall;F7F0
    Etilde;1EBC
    Etildebelow;1E1A
    Euro;20AC
    Ezh;01B7
    Ezhcaron;01EE
    Ezhreversed;01B8
    F;0046
    Fcircle;24BB
    Fdotaccent;1E1E
    Feharmenian;0556
    Feicoptic;03E4
    Fhook;0191
    Fitacyrillic;0472
    Fiveroman;2164
    Fmonospace;FF26
    Fourroman;2163
    Fsmall;F766
    G;0047
    GBsquare;3387
    Gacute;01F4
    Gamma;0393
    Gammaafrican;0194
    Gangiacoptic;03EA
    Gbreve;011E
    Gcaron;01E6
    Gcedilla;0122
    Gcircle;24BC
    Gcircumflex;011C
    Gcommaaccent;0122
    Gdot;0120
    Gdotaccent;0120
    Gecyrillic;0413
    Ghadarmenian;0542
    Ghemiddlehookcyrillic;0494
    Ghestrokecyrillic;0492
    Gheupturncyrillic;0490
    Ghook;0193
    Gimarmenian;0533
    Gjecyrillic;0403
    Gmacron;1E20
    Gmonospace;FF27
    Grave;F6CE
    Gravesmall;F760
    Gsmall;F767
    Gsmallhook;029B
    Gstroke;01E4
    H;0048
    H18533;25CF
    H18543;25AA
    H18551;25AB
    H22073;25A1
    HPsquare;33CB
    Haabkhasiancyrillic;04A8
    Hadescendercyrillic;04B2
    Hardsigncyrillic;042A
    Hbar;0126
    Hbrevebelow;1E2A
    Hcedilla;1E28
    Hcircle;24BD
    Hcircumflex;0124
    Hdieresis;1E26
    Hdotaccent;1E22
    Hdotbelow;1E24
    Hmonospace;FF28
    Hoarmenian;0540
    Horicoptic;03E8
    Hsmall;F768
    Hungarumlaut;F6CF
    Hungarumlautsmall;F6F8
    Hzsquare;3390
    I;0049
    IAcyrillic;042F
    IJ;0132
    IUcyrillic;042E
    Iacute;00CD
    Iacutesmall;F7ED
    Ibreve;012C
    Icaron;01CF
    Icircle;24BE
    Icircumflex;00CE
    Icircumflexsmall;F7EE
    Icyrillic;0406
    Idblgrave;0208
    Idieresis;00CF
    Idieresisacute;1E2E
    Idieresiscyrillic;04E4
    Idieresissmall;F7EF
    Idot;0130
    Idotaccent;0130
    Idotbelow;1ECA
    Iebrevecyrillic;04D6
    Iecyrillic;0415
    Ifraktur;2111
    Igrave;00CC
    Igravesmall;F7EC
    Ihookabove;1EC8
    Iicyrillic;0418
    Iinvertedbreve;020A
    Iishortcyrillic;0419
    Imacron;012A
    Imacroncyrillic;04E2
    Imonospace;FF29
    Iniarmenian;053B
    Iocyrillic;0401
    Iogonek;012E
    Iota;0399
    Iotaafrican;0196
    Iotadieresis;03AA
    Iotatonos;038A
    Ismall;F769
    Istroke;0197
    Itilde;0128
    Itildebelow;1E2C
    Izhitsacyrillic;0474
    Izhitsadblgravecyrillic;0476
    J;004A
    Jaarmenian;0541
    Jcircle;24BF
    Jcircumflex;0134
    Jecyrillic;0408
    Jheharmenian;054B
    Jmonospace;FF2A
    Jsmall;F76A
    K;004B
    KBsquare;3385
    KKsquare;33CD
    Kabashkircyrillic;04A0
    Kacute;1E30
    Kacyrillic;041A
    Kadescendercyrillic;049A
    Kahookcyrillic;04C3
    Kappa;039A
    Kastrokecyrillic;049E
    Kaverticalstrokecyrillic;049C
    Kcaron;01E8
    Kcedilla;0136
    Kcircle;24C0
    Kcommaaccent;0136
    Kdotbelow;1E32
    Keharmenian;0554
    Kenarmenian;053F
    Khacyrillic;0425
    Kheicoptic;03E6
    Khook;0198
    Kjecyrillic;040C
    Klinebelow;1E34
    Kmonospace;FF2B
    Koppacyrillic;0480
    Koppagreek;03DE
    Ksicyrillic;046E
    Ksmall;F76B
    L;004C
    LJ;01C7
    LL;F6BF
    Lacute;0139
    Lambda;039B
    Lcaron;013D
    Lcedilla;013B
    Lcircle;24C1
    Lcircumflexbelow;1E3C
    Lcommaaccent;013B
    Ldot;013F
    Ldotaccent;013F
    Ldotbelow;1E36
    Ldotbelowmacron;1E38
    Liwnarmenian;053C
    Lj;01C8
    Ljecyrillic;0409
    Llinebelow;1E3A
    Lmonospace;FF2C
    Lslash;0141
    Lslashsmall;F6F9
    Lsmall;F76C
    M;004D
    MBsquare;3386
    Macron;F6D0
    Macronsmall;F7AF
    Macute;1E3E
    Mcircle;24C2
    Mdotaccent;1E40
    Mdotbelow;1E42
    Menarmenian;0544
    Mmonospace;FF2D
    Msmall;F76D
    Mturned;019C
    Mu;039C
    N;004E
    NJ;01CA
    Nacute;0143
    Ncaron;0147
    Ncedilla;0145
    Ncircle;24C3
    Ncircumflexbelow;1E4A
    Ncommaaccent;0145
    Ndotaccent;1E44
    Ndotbelow;1E46
    Nhookleft;019D
    Nineroman;2168
    Nj;01CB
    Njecyrillic;040A
    Nlinebelow;1E48
    Nmonospace;FF2E
    Nowarmenian;0546
    Nsmall;F76E
    Ntilde;00D1
    Ntildesmall;F7F1
    Nu;039D
    O;004F
    OE;0152
    OEsmall;F6FA
    Oacute;00D3
    Oacutesmall;F7F3
    Obarredcyrillic;04E8
    Obarreddieresiscyrillic;04EA
    Obreve;014E
    Ocaron;01D1
    Ocenteredtilde;019F
    Ocircle;24C4
    Ocircumflex;00D4
    Ocircumflexacute;1ED0
    Ocircumflexdotbelow;1ED8
    Ocircumflexgrave;1ED2
    Ocircumflexhookabove;1ED4
    Ocircumflexsmall;F7F4
    Ocircumflextilde;1ED6
    Ocyrillic;041E
    Odblacute;0150
    Odblgrave;020C
    Odieresis;00D6
    Odieresiscyrillic;04E6
    Odieresissmall;F7F6
    Odotbelow;1ECC
    Ogoneksmall;F6FB
    Ograve;00D2
    Ogravesmall;F7F2
    Oharmenian;0555
    Ohm;2126
    Ohookabove;1ECE
    Ohorn;01A0
    Ohornacute;1EDA
    Ohorndotbelow;1EE2
    Ohorngrave;1EDC
    Ohornhookabove;1EDE
    Ohorntilde;1EE0
    Ohungarumlaut;0150
    Oi;01A2
    Oinvertedbreve;020E
    Omacron;014C
    Omacronacute;1E52
    Omacrongrave;1E50
    Omega;2126
    Omegacyrillic;0460
    Omegagreek;03A9
    Omegaroundcyrillic;047A
    Omegatitlocyrillic;047C
    Omegatonos;038F
    Omicron;039F
    Omicrontonos;038C
    Omonospace;FF2F
    Oneroman;2160
    Oogonek;01EA
    Oogonekmacron;01EC
    Oopen;0186
    Oslash;00D8
    Oslashacute;01FE
    Oslashsmall;F7F8
    Osmall;F76F
    Ostrokeacute;01FE
    Otcyrillic;047E
    Otilde;00D5
    Otildeacute;1E4C
    Otildedieresis;1E4E
    Otildesmall;F7F5
    P;0050
    Pacute;1E54
    Pcircle;24C5
    Pdotaccent;1E56
    Pecyrillic;041F
    Peharmenian;054A
    Pemiddlehookcyrillic;04A6
    Phi;03A6
    Phook;01A4
    Pi;03A0
    Piwrarmenian;0553
    Pmonospace;FF30
    Psi;03A8
    Psicyrillic;0470
    Psmall;F770
    Q;0051
    Qcircle;24C6
    Qmonospace;FF31
    Qsmall;F771
    R;0052
    Raarmenian;054C
    Racute;0154
    Rcaron;0158
    Rcedilla;0156
    Rcircle;24C7
    Rcommaaccent;0156
    Rdblgrave;0210
    Rdotaccent;1E58
    Rdotbelow;1E5A
    Rdotbelowmacron;1E5C
    Reharmenian;0550
    Rfraktur;211C
    Rho;03A1
    Ringsmall;F6FC
    Rinvertedbreve;0212
    Rlinebelow;1E5E
    Rmonospace;FF32
    Rsmall;F772
    Rsmallinverted;0281
    Rsmallinvertedsuperior;02B6
    S;0053
    SF010000;250C
    SF020000;2514
    SF030000;2510
    SF040000;2518
    SF050000;253C
    SF060000;252C
    SF070000;2534
    SF080000;251C
    SF090000;2524
    SF100000;2500
    SF110000;2502
    SF190000;2561
    SF200000;2562
    SF210000;2556
    SF220000;2555
    SF230000;2563
    SF240000;2551
    SF250000;2557
    SF260000;255D
    SF270000;255C
    SF280000;255B
    SF360000;255E
    SF370000;255F
    SF380000;255A
    SF390000;2554
    SF400000;2569
    SF410000;2566
    SF420000;2560
    SF430000;2550
    SF440000;256C
    SF450000;2567
    SF460000;2568
    SF470000;2564
    SF480000;2565
    SF490000;2559
    SF500000;2558
    SF510000;2552
    SF520000;2553
    SF530000;256B
    SF540000;256A
    Sacute;015A
    Sacutedotaccent;1E64
    Sampigreek;03E0
    Scaron;0160
    Scarondotaccent;1E66
    Scaronsmall;F6FD
    Scedilla;015E
    Schwa;018F
    Schwacyrillic;04D8
    Schwadieresiscyrillic;04DA
    Scircle;24C8
    Scircumflex;015C
    Scommaaccent;0218
    Sdotaccent;1E60
    Sdotbelow;1E62
    Sdotbelowdotaccent;1E68
    Seharmenian;054D
    Sevenroman;2166
    Shaarmenian;0547
    Shacyrillic;0428
    Shchacyrillic;0429
    Sheicoptic;03E2
    Shhacyrillic;04BA
    Shimacoptic;03EC
    Sigma;03A3
    Sixroman;2165
    Smonospace;FF33
    Softsigncyrillic;042C
    Ssmall;F773
    Stigmagreek;03DA
    T;0054
    Tau;03A4
    Tbar;0166
    Tcaron;0164
    Tcedilla;0162
    Tcircle;24C9
    Tcircumflexbelow;1E70
    Tcommaaccent;0162
    Tdotaccent;1E6A
    Tdotbelow;1E6C
    Tecyrillic;0422
    Tedescendercyrillic;04AC
    Tenroman;2169
    Tetsecyrillic;04B4
    Theta;0398
    Thook;01AC
    Thorn;00DE
    Thornsmall;F7FE
    Threeroman;2162
    Tildesmall;F6FE
    Tiwnarmenian;054F
    Tlinebelow;1E6E
    Tmonospace;FF34
    Toarmenian;0539
    Tonefive;01BC
    Tonesix;0184
    Tonetwo;01A7
    Tretroflexhook;01AE
    Tsecyrillic;0426
    Tshecyrillic;040B
    Tsmall;F774
    Twelveroman;216B
    Tworoman;2161
    U;0055
    Uacute;00DA
    Uacutesmall;F7FA
    Ubreve;016C
    Ucaron;01D3
    Ucircle;24CA
    Ucircumflex;00DB
    Ucircumflexbelow;1E76
    Ucircumflexsmall;F7FB
    Ucyrillic;0423
    Udblacute;0170
    Udblgrave;0214
    Udieresis;00DC
    Udieresisacute;01D7
    Udieresisbelow;1E72
    Udieresiscaron;01D9
    Udieresiscyrillic;04F0
    Udieresisgrave;01DB
    Udieresismacron;01D5
    Udieresissmall;F7FC
    Udotbelow;1EE4
    Ugrave;00D9
    Ugravesmall;F7F9
    Uhookabove;1EE6
    Uhorn;01AF
    Uhornacute;1EE8
    Uhorndotbelow;1EF0
    Uhorngrave;1EEA
    Uhornhookabove;1EEC
    Uhorntilde;1EEE
    Uhungarumlaut;0170
    Uhungarumlautcyrillic;04F2
    Uinvertedbreve;0216
    Ukcyrillic;0478
    Umacron;016A
    Umacroncyrillic;04EE
    Umacrondieresis;1E7A
    Umonospace;FF35
    Uogonek;0172
    Upsilon;03A5
    Upsilon1;03D2
    Upsilonacutehooksymbolgreek;03D3
    Upsilonafrican;01B1
    Upsilondieresis;03AB
    Upsilondieresishooksymbolgreek;03D4
    Upsilonhooksymbol;03D2
    Upsilontonos;038E
    Uring;016E
    Ushortcyrillic;040E
    Usmall;F775
    Ustraightcyrillic;04AE
    Ustraightstrokecyrillic;04B0
    Utilde;0168
    Utildeacute;1E78
    Utildebelow;1E74
    V;0056
    Vcircle;24CB
    Vdotbelow;1E7E
    Vecyrillic;0412
    Vewarmenian;054E
    Vhook;01B2
    Vmonospace;FF36
    Voarmenian;0548
    Vsmall;F776
    Vtilde;1E7C
    W;0057
    Wacute;1E82
    Wcircle;24CC
    Wcircumflex;0174
    Wdieresis;1E84
    Wdotaccent;1E86
    Wdotbelow;1E88
    Wgrave;1E80
    Wmonospace;FF37
    Wsmall;F777
    X;0058
    Xcircle;24CD
    Xdieresis;1E8C
    Xdotaccent;1E8A
    Xeharmenian;053D
    Xi;039E
    Xmonospace;FF38
    Xsmall;F778
    Y;0059
    Yacute;00DD
    Yacutesmall;F7FD
    Yatcyrillic;0462
    Ycircle;24CE
    Ycircumflex;0176
    Ydieresis;0178
    Ydieresissmall;F7FF
    Ydotaccent;1E8E
    Ydotbelow;1EF4
    Yericyrillic;042B
    Yerudieresiscyrillic;04F8
    Ygrave;1EF2
    Yhook;01B3
    Yhookabove;1EF6
    Yiarmenian;0545
    Yicyrillic;0407
    Yiwnarmenian;0552
    Ymonospace;FF39
    Ysmall;F779
    Ytilde;1EF8
    Yusbigcyrillic;046A
    Yusbigiotifiedcyrillic;046C
    Yuslittlecyrillic;0466
    Yuslittleiotifiedcyrillic;0468
    Z;005A
    Zaarmenian;0536
    Zacute;0179
    Zcaron;017D
    Zcaronsmall;F6FF
    Zcircle;24CF
    Zcircumflex;1E90
    Zdot;017B
    Zdotaccent;017B
    Zdotbelow;1E92
    Zecyrillic;0417
    Zedescendercyrillic;0498
    Zedieresiscyrillic;04DE
    Zeta;0396
    Zhearmenian;053A
    Zhebrevecyrillic;04C1
    Zhecyrillic;0416
    Zhedescendercyrillic;0496
    Zhedieresiscyrillic;04DC
    Zlinebelow;1E94
    Zmonospace;FF3A
    Zsmall;F77A
    Zstroke;01B5
    a;0061
    aabengali;0986
    aacute;00E1
    aadeva;0906
    aagujarati;0A86
    aagurmukhi;0A06
    aamatragurmukhi;0A3E
    aarusquare;3303
    aavowelsignbengali;09BE
    aavowelsigndeva;093E
    aavowelsigngujarati;0ABE
    abbreviationmarkarmenian;055F
    abbreviationsigndeva;0970
    abengali;0985
    abopomofo;311A
    abreve;0103
    abreveacute;1EAF
    abrevecyrillic;04D1
    abrevedotbelow;1EB7
    abrevegrave;1EB1
    abrevehookabove;1EB3
    abrevetilde;1EB5
    acaron;01CE
    acircle;24D0
    acircumflex;00E2
    acircumflexacute;1EA5
    acircumflexdotbelow;1EAD
    acircumflexgrave;1EA7
    acircumflexhookabove;1EA9
    acircumflextilde;1EAB
    acute;00B4
    acutebelowcmb;0317
    acutecmb;0301
    acutecomb;0301
    acutedeva;0954
    acutelowmod;02CF
    acutetonecmb;0341
    acyrillic;0430
    adblgrave;0201
    addakgurmukhi;0A71
    adeva;0905
    adieresis;00E4
    adieresiscyrillic;04D3
    adieresismacron;01DF
    adotbelow;1EA1
    adotmacron;01E1
    ae;00E6
    aeacute;01FD
    aekorean;3150
    aemacron;01E3
    afii00208;2015
    afii08941;20A4
    afii10017;0410
    afii10018;0411
    afii10019;0412
    afii10020;0413
    afii10021;0414
    afii10022;0415
    afii10023;0401
    afii10024;0416
    afii10025;0417
    afii10026;0418
    afii10027;0419
    afii10028;041A
    afii10029;041B
    afii10030;041C
    afii10031;041D
    afii10032;041E
    afii10033;041F
    afii10034;0420
    afii10035;0421
    afii10036;0422
    afii10037;0423
    afii10038;0424
    afii10039;0425
    afii10040;0426
    afii10041;0427
    afii10042;0428
    afii10043;0429
    afii10044;042A
    afii10045;042B
    afii10046;042C
    afii10047;042D
    afii10048;042E
    afii10049;042F
    afii10050;0490
    afii10051;0402
    afii10052;0403
    afii10053;0404
    afii10054;0405
    afii10055;0406
    afii10056;0407
    afii10057;0408
    afii10058;0409
    afii10059;040A
    afii10060;040B
    afii10061;040C
    afii10062;040E
    afii10063;F6C4
    afii10064;F6C5
    afii10065;0430
    afii10066;0431
    afii10067;0432
    afii10068;0433
    afii10069;0434
    afii10070;0435
    afii10071;0451
    afii10072;0436
    afii10073;0437
    afii10074;0438
    afii10075;0439
    afii10076;043A
    afii10077;043B
    afii10078;043C
    afii10079;043D
    afii10080;043E
    afii10081;043F
    afii10082;0440
    afii10083;0441
    afii10084;0442
    afii10085;0443
    afii10086;0444
    afii10087;0445
    afii10088;0446
    afii10089;0447
    afii10090;0448
    afii10091;0449
    afii10092;044A
    afii10093;044B
    afii10094;044C
    afii10095;044D
    afii10096;044E
    afii10097;044F
    afii10098;0491
    afii10099;0452
    afii10100;0453
    afii10101;0454
    afii10102;0455
    afii10103;0456
    afii10104;0457
    afii10105;0458
    afii10106;0459
    afii10107;045A
    afii10108;045B
    afii10109;045C
    afii10110;045E
    afii10145;040F
    afii10146;0462
    afii10147;0472
    afii10148;0474
    afii10192;F6C6
    afii10193;045F
    afii10194;0463
    afii10195;0473
    afii10196;0475
    afii10831;F6C7
    afii10832;F6C8
    afii10846;04D9
    afii299;200E
    afii300;200F
    afii301;200D
    afii57381;066A
    afii57388;060C
    afii57392;0660
    afii57393;0661
    afii57394;0662
    afii57395;0663
    afii57396;0664
    afii57397;0665
    afii57398;0666
    afii57399;0667
    afii57400;0668
    afii57401;0669
    afii57403;061B
    afii57407;061F
    afii57409;0621
    afii57410;0622
    afii57411;0623
    afii57412;0624
    afii57413;0625
    afii57414;0626
    afii57415;0627
    afii57416;0628
    afii57417;0629
    afii57418;062A
    afii57419;062B
    afii57420;062C
    afii57421;062D
    afii57422;062E
    afii57423;062F
    afii57424;0630
    afii57425;0631
    afii57426;0632
    afii57427;0633
    afii57428;0634
    afii57429;0635
    afii57430;0636
    afii57431;0637
    afii57432;0638
    afii57433;0639
    afii57434;063A
    afii57440;0640
    afii57441;0641
    afii57442;0642
    afii57443;0643
    afii57444;0644
    afii57445;0645
    afii57446;0646
    afii57448;0648
    afii57449;0649
    afii57450;064A
    afii57451;064B
    afii57452;064C
    afii57453;064D
    afii57454;064E
    afii57455;064F
    afii57456;0650
    afii57457;0651
    afii57458;0652
    afii57470;0647
    afii57505;06A4
    afii57506;067E
    afii57507;0686
    afii57508;0698
    afii57509;06AF
    afii57511;0679
    afii57512;0688
    afii57513;0691
    afii57514;06BA
    afii57519;06D2
    afii57534;06D5
    afii57636;20AA
    afii57645;05BE
    afii57658;05C3
    afii57664;05D0
    afii57665;05D1
    afii57666;05D2
    afii57667;05D3
    afii57668;05D4
    afii57669;05D5
    afii57670;05D6
    afii57671;05D7
    afii57672;05D8
    afii57673;05D9
    afii57674;05DA
    afii57675;05DB
    afii57676;05DC
    afii57677;05DD
    afii57678;05DE
    afii57679;05DF
    afii57680;05E0
    afii57681;05E1
    afii57682;05E2
    afii57683;05E3
    afii57684;05E4
    afii57685;05E5
    afii57686;05E6
    afii57687;05E7
    afii57688;05E8
    afii57689;05E9
    afii57690;05EA
    afii57694;FB2A
    afii57695;FB2B
    afii57700;FB4B
    afii57705;FB1F
    afii57716;05F0
    afii57717;05F1
    afii57718;05F2
    afii57723;FB35
    afii57793;05B4
    afii57794;05B5
    afii57795;05B6
    afii57796;05BB
    afii57797;05B8
    afii57798;05B7
    afii57799;05B0
    afii57800;05B2
    afii57801;05B1
    afii57802;05B3
    afii57803;05C2
    afii57804;05C1
    afii57806;05B9
    afii57807;05BC
    afii57839;05BD
    afii57841;05BF
    afii57842;05C0
    afii57929;02BC
    afii61248;2105
    afii61289;2113
    afii61352;2116
    afii61573;202C
    afii61574;202D
    afii61575;202E
    afii61664;200C
    afii63167;066D
    afii64937;02BD
    agrave;00E0
    agujarati;0A85
    agurmukhi;0A05
    ahiragana;3042
    ahookabove;1EA3
    aibengali;0990
    aibopomofo;311E
    aideva;0910
    aiecyrillic;04D5
    aigujarati;0A90
    aigurmukhi;0A10
    aimatragurmukhi;0A48
    ainarabic;0639
    ainfinalarabic;FECA
    aininitialarabic;FECB
    ainmedialarabic;FECC
    ainvertedbreve;0203
    aivowelsignbengali;09C8
    aivowelsigndeva;0948
    aivowelsigngujarati;0AC8
    akatakana;30A2
    akatakanahalfwidth;FF71
    akorean;314F
    alef;05D0
    alefarabic;0627
    alefdageshhebrew;FB30
    aleffinalarabic;FE8E
    alefhamzaabovearabic;0623
    alefhamzaabovefinalarabic;FE84
    alefhamzabelowarabic;0625
    alefhamzabelowfinalarabic;FE88
    alefhebrew;05D0
    aleflamedhebrew;FB4F
    alefmaddaabovearabic;0622
    alefmaddaabovefinalarabic;FE82
    alefmaksuraarabic;0649
    alefmaksurafinalarabic;FEF0
    alefmaksurainitialarabic;FEF3
    alefmaksuramedialarabic;FEF4
    alefpatahhebrew;FB2E
    alefqamatshebrew;FB2F
    aleph;2135
    allequal;224C
    alpha;03B1
    alphatonos;03AC
    amacron;0101
    amonospace;FF41
    ampersand;0026
    ampersandmonospace;FF06
    ampersandsmall;F726
    amsquare;33C2
    anbopomofo;3122
    angbopomofo;3124
    angkhankhuthai;0E5A
    angle;2220
    anglebracketleft;3008
    anglebracketleftvertical;FE3F
    anglebracketright;3009
    anglebracketrightvertical;FE40
    angleleft;2329
    angleright;232A
    angstrom;212B
    anoteleia;0387
    anudattadeva;0952
    anusvarabengali;0982
    anusvaradeva;0902
    anusvaragujarati;0A82
    aogonek;0105
    apaatosquare;3300
    aparen;249C
    apostrophearmenian;055A
    apostrophemod;02BC
    apple;F8FF
    approaches;2250
    approxequal;2248
    approxequalorimage;2252
    approximatelyequal;2245
    araeaekorean;318E
    araeakorean;318D
    arc;2312
    arighthalfring;1E9A
    aring;00E5
    aringacute;01FB
    aringbelow;1E01
    arrowboth;2194
    arrowdashdown;21E3
    arrowdashleft;21E0
    arrowdashright;21E2
    arrowdashup;21E1
    arrowdblboth;21D4
    arrowdbldown;21D3
    arrowdblleft;21D0
    arrowdblright;21D2
    arrowdblup;21D1
    arrowdown;2193
    arrowdownleft;2199
    arrowdownright;2198
    arrowdownwhite;21E9
    arrowheaddownmod;02C5
    arrowheadleftmod;02C2
    arrowheadrightmod;02C3
    arrowheadupmod;02C4
    arrowhorizex;F8E7
    arrowleft;2190
    arrowleftdbl;21D0
    arrowleftdblstroke;21CD
    arrowleftoverright;21C6
    arrowleftwhite;21E6
    arrowright;2192
    arrowrightdblstroke;21CF
    arrowrightheavy;279E
    arrowrightoverleft;21C4
    arrowrightwhite;21E8
    arrowtableft;21E4
    arrowtabright;21E5
    arrowup;2191
    arrowupdn;2195
    arrowupdnbse;21A8
    arrowupdownbase;21A8
    arrowupleft;2196
    arrowupleftofdown;21C5
    arrowupright;2197
    arrowupwhite;21E7
    arrowvertex;F8E6
    asciicircum;005E
    asciicircummonospace;FF3E
    asciitilde;007E
    asciitildemonospace;FF5E
    ascript;0251
    ascriptturned;0252
    asmallhiragana;3041
    asmallkatakana;30A1
    asmallkatakanahalfwidth;FF67
    asterisk;002A
    asteriskaltonearabic;066D
    asteriskarabic;066D
    asteriskmath;2217
    asteriskmonospace;FF0A
    asterisksmall;FE61
    asterism;2042
    asuperior;F6E9
    asymptoticallyequal;2243
    at;0040
    atilde;00E3
    atmonospace;FF20
    atsmall;FE6B
    aturned;0250
    aubengali;0994
    aubopomofo;3120
    audeva;0914
    augujarati;0A94
    augurmukhi;0A14
    aulengthmarkbengali;09D7
    aumatragurmukhi;0A4C
    auvowelsignbengali;09CC
    auvowelsigndeva;094C
    auvowelsigngujarati;0ACC
    avagrahadeva;093D
    aybarmenian;0561
    ayin;05E2
    ayinaltonehebrew;FB20
    ayinhebrew;05E2
    b;0062
    babengali;09AC
    backslash;005C
    backslashmonospace;FF3C
    badeva;092C
    bagujarati;0AAC
    bagurmukhi;0A2C
    bahiragana;3070
    bahtthai;0E3F
    bakatakana;30D0
    bar;007C
    barmonospace;FF5C
    bbopomofo;3105
    bcircle;24D1
    bdotaccent;1E03
    bdotbelow;1E05
    beamedsixteenthnotes;266C
    because;2235
    becyrillic;0431
    beharabic;0628
    behfinalarabic;FE90
    behinitialarabic;FE91
    behiragana;3079
    behmedialarabic;FE92
    behmeeminitialarabic;FC9F
    behmeemisolatedarabic;FC08
    behnoonfinalarabic;FC6D
    bekatakana;30D9
    benarmenian;0562
    bet;05D1
    beta;03B2
    betasymbolgreek;03D0
    betdagesh;FB31
    betdageshhebrew;FB31
    bethebrew;05D1
    betrafehebrew;FB4C
    bhabengali;09AD
    bhadeva;092D
    bhagujarati;0AAD
    bhagurmukhi;0A2D
    bhook;0253
    bihiragana;3073
    bikatakana;30D3
    bilabialclick;0298
    bindigurmukhi;0A02
    birusquare;3331
    blackcircle;25CF
    blackdiamond;25C6
    blackdownpointingtriangle;25BC
    blackleftpointingpointer;25C4
    blackleftpointingtriangle;25C0
    blacklenticularbracketleft;3010
    blacklenticularbracketleftvertical;FE3B
    blacklenticularbracketright;3011
    blacklenticularbracketrightvertical;FE3C
    blacklowerlefttriangle;25E3
    blacklowerrighttriangle;25E2
    blackrectangle;25AC
    blackrightpointingpointer;25BA
    blackrightpointingtriangle;25B6
    blacksmallsquare;25AA
    blacksmilingface;263B
    blacksquare;25A0
    blackstar;2605
    blackupperlefttriangle;25E4
    blackupperrighttriangle;25E5
    blackuppointingsmalltriangle;25B4
    blackuppointingtriangle;25B2
    blank;2423
    blinebelow;1E07
    block;2588
    bmonospace;FF42
    bobaimaithai;0E1A
    bohiragana;307C
    bokatakana;30DC
    bparen;249D
    bqsquare;33C3
    braceex;F8F4
    braceleft;007B
    braceleftbt;F8F3
    braceleftmid;F8F2
    braceleftmonospace;FF5B
    braceleftsmall;FE5B
    bracelefttp;F8F1
    braceleftvertical;FE37
    braceright;007D
    bracerightbt;F8FE
    bracerightmid;F8FD
    bracerightmonospace;FF5D
    bracerightsmall;FE5C
    bracerighttp;F8FC
    bracerightvertical;FE38
    bracketleft;005B
    bracketleftbt;F8F0
    bracketleftex;F8EF
    bracketleftmonospace;FF3B
    bracketlefttp;F8EE
    bracketright;005D
    bracketrightbt;F8FB
    bracketrightex;F8FA
    bracketrightmonospace;FF3D
    bracketrighttp;F8F9
    breve;02D8
    brevebelowcmb;032E
    brevecmb;0306
    breveinvertedbelowcmb;032F
    breveinvertedcmb;0311
    breveinverteddoublecmb;0361
    bridgebelowcmb;032A
    bridgeinvertedbelowcmb;033A
    brokenbar;00A6
    bstroke;0180
    bsuperior;F6EA
    btopbar;0183
    buhiragana;3076
    bukatakana;30D6
    bullet;2022
    bulletinverse;25D8
    bulletoperator;2219
    bullseye;25CE
    c;0063
    caarmenian;056E
    cabengali;099A
    cacute;0107
    cadeva;091A
    cagujarati;0A9A
    cagurmukhi;0A1A
    calsquare;3388
    candrabindubengali;0981
    candrabinducmb;0310
    candrabindudeva;0901
    candrabindugujarati;0A81
    capslock;21EA
    careof;2105
    caron;02C7
    caronbelowcmb;032C
    caroncmb;030C
    carriagereturn;21B5
    cbopomofo;3118
    ccaron;010D
    ccedilla;00E7
    ccedillaacute;1E09
    ccircle;24D2
    ccircumflex;0109
    ccurl;0255
    cdot;010B
    cdotaccent;010B
    cdsquare;33C5
    cedilla;00B8
    cedillacmb;0327
    cent;00A2
    centigrade;2103
    centinferior;F6DF
    centmonospace;FFE0
    centoldstyle;F7A2
    centsuperior;F6E0
    chaarmenian;0579
    chabengali;099B
    chadeva;091B
    chagujarati;0A9B
    chagurmukhi;0A1B
    chbopomofo;3114
    cheabkhasiancyrillic;04BD
    checkmark;2713
    checyrillic;0447
    chedescenderabkhasiancyrillic;04BF
    chedescendercyrillic;04B7
    chedieresiscyrillic;04F5
    cheharmenian;0573
    chekhakassiancyrillic;04CC
    cheverticalstrokecyrillic;04B9
    chi;03C7
    chieuchacirclekorean;3277
    chieuchaparenkorean;3217
    chieuchcirclekorean;3269
    chieuchkorean;314A
    chieuchparenkorean;3209
    chochangthai;0E0A
    chochanthai;0E08
    chochingthai;0E09
    chochoethai;0E0C
    chook;0188
    cieucacirclekorean;3276
    cieucaparenkorean;3216
    cieuccirclekorean;3268
    cieuckorean;3148
    cieucparenkorean;3208
    cieucuparenkorean;321C
    circle;25CB
    circlemultiply;2297
    circleot;2299
    circleplus;2295
    circlepostalmark;3036
    circlewithlefthalfblack;25D0
    circlewithrighthalfblack;25D1
    circumflex;02C6
    circumflexbelowcmb;032D
    circumflexcmb;0302
    clear;2327
    clickalveolar;01C2
    clickdental;01C0
    clicklateral;01C1
    clickretroflex;01C3
    club;2663
    clubsuitblack;2663
    clubsuitwhite;2667
    cmcubedsquare;33A4
    cmonospace;FF43
    cmsquaredsquare;33A0
    coarmenian;0581
    colon;003A
    colonmonetary;20A1
    colonmonospace;FF1A
    colonsign;20A1
    colonsmall;FE55
    colontriangularhalfmod;02D1
    colontriangularmod;02D0
    comma;002C
    commaabovecmb;0313
    commaaboverightcmb;0315
    commaaccent;F6C3
    commaarabic;060C
    commaarmenian;055D
    commainferior;F6E1
    commamonospace;FF0C
    commareversedabovecmb;0314
    commareversedmod;02BD
    commasmall;FE50
    commasuperior;F6E2
    commaturnedabovecmb;0312
    commaturnedmod;02BB
    compass;263C
    congruent;2245
    contourintegral;222E
    control;2303
    controlACK;0006
    controlBEL;0007
    controlBS;0008
    controlCAN;0018
    controlCR;000D
    controlDC1;0011
    controlDC2;0012
    controlDC3;0013
    controlDC4;0014
    controlDEL;007F
    controlDLE;0010
    controlEM;0019
    controlENQ;0005
    controlEOT;0004
    controlESC;001B
    controlETB;0017
    controlETX;0003
    controlFF;000C
    controlFS;001C
    controlGS;001D
    controlHT;0009
    controlLF;000A
    controlNAK;0015
    controlRS;001E
    controlSI;000F
    controlSO;000E
    controlSOT;0002
    controlSTX;0001
    controlSUB;001A
    controlSYN;0016
    controlUS;001F
    controlVT;000B
    copyright;00A9
    copyrightsans;F8E9
    copyrightserif;F6D9
    cornerbracketleft;300C
    cornerbracketlefthalfwidth;FF62
    cornerbracketleftvertical;FE41
    cornerbracketright;300D
    cornerbracketrighthalfwidth;FF63
    cornerbracketrightvertical;FE42
    corporationsquare;337F
    cosquare;33C7
    coverkgsquare;33C6
    cparen;249E
    cruzeiro;20A2
    cstretched;0297
    curlyand;22CF
    curlyor;22CE
    currency;00A4
    cyrBreve;F6D1
    cyrFlex;F6D2
    cyrbreve;F6D4
    cyrflex;F6D5
    d;0064
    daarmenian;0564
    dabengali;09A6
    dadarabic;0636
    dadeva;0926
    dadfinalarabic;FEBE
    dadinitialarabic;FEBF
    dadmedialarabic;FEC0
    dagesh;05BC
    dageshhebrew;05BC
    dagger;2020
    daggerdbl;2021
    dagujarati;0AA6
    dagurmukhi;0A26
    dahiragana;3060
    dakatakana;30C0
    dalarabic;062F
    dalet;05D3
    daletdagesh;FB33
    daletdageshhebrew;FB33
    dalethatafpatah;05D3 05B2
    dalethatafpatahhebrew;05D3 05B2
    dalethatafsegol;05D3 05B1
    dalethatafsegolhebrew;05D3 05B1
    dalethebrew;05D3
    dalethiriq;05D3 05B4
    dalethiriqhebrew;05D3 05B4
    daletholam;05D3 05B9
    daletholamhebrew;05D3 05B9
    daletpatah;05D3 05B7
    daletpatahhebrew;05D3 05B7
    daletqamats;05D3 05B8
    daletqamatshebrew;05D3 05B8
    daletqubuts;05D3 05BB
    daletqubutshebrew;05D3 05BB
    daletsegol;05D3 05B6
    daletsegolhebrew;05D3 05B6
    daletsheva;05D3 05B0
    daletshevahebrew;05D3 05B0
    dalettsere;05D3 05B5
    dalettserehebrew;05D3 05B5
    dalfinalarabic;FEAA
    dammaarabic;064F
    dammalowarabic;064F
    dammatanaltonearabic;064C
    dammatanarabic;064C
    danda;0964
    dargahebrew;05A7
    dargalefthebrew;05A7
    dasiapneumatacyrilliccmb;0485
    dblGrave;F6D3
    dblanglebracketleft;300A
    dblanglebracketleftvertical;FE3D
    dblanglebracketright;300B
    dblanglebracketrightvertical;FE3E
    dblarchinvertedbelowcmb;032B
    dblarrowleft;21D4
    dblarrowright;21D2
    dbldanda;0965
    dblgrave;F6D6
    dblgravecmb;030F
    dblintegral;222C
    dbllowline;2017
    dbllowlinecmb;0333
    dbloverlinecmb;033F
    dblprimemod;02BA
    dblverticalbar;2016
    dblverticallineabovecmb;030E
    dbopomofo;3109
    dbsquare;33C8
    dcaron;010F
    dcedilla;1E11
    dcircle;24D3
    dcircumflexbelow;1E13
    dcroat;0111
    ddabengali;09A1
    ddadeva;0921
    ddagujarati;0AA1
    ddagurmukhi;0A21
    ddalarabic;0688
    ddalfinalarabic;FB89
    dddhadeva;095C
    ddhabengali;09A2
    ddhadeva;0922
    ddhagujarati;0AA2
    ddhagurmukhi;0A22
    ddotaccent;1E0B
    ddotbelow;1E0D
    decimalseparatorarabic;066B
    decimalseparatorpersian;066B
    decyrillic;0434
    degree;00B0
    dehihebrew;05AD
    dehiragana;3067
    deicoptic;03EF
    dekatakana;30C7
    deleteleft;232B
    deleteright;2326
    delta;03B4
    deltaturned;018D
    denominatorminusonenumeratorbengali;09F8
    dezh;02A4
    dhabengali;09A7
    dhadeva;0927
    dhagujarati;0AA7
    dhagurmukhi;0A27
    dhook;0257
    dialytikatonos;0385
    dialytikatonoscmb;0344
    diamond;2666
    diamondsuitwhite;2662
    dieresis;00A8
    dieresisacute;F6D7
    dieresisbelowcmb;0324
    dieresiscmb;0308
    dieresisgrave;F6D8
    dieresistonos;0385
    dihiragana;3062
    dikatakana;30C2
    dittomark;3003
    divide;00F7
    divides;2223
    divisionslash;2215
    djecyrillic;0452
    dkshade;2593
    dlinebelow;1E0F
    dlsquare;3397
    dmacron;0111
    dmonospace;FF44
    dnblock;2584
    dochadathai;0E0E
    dodekthai;0E14
    dohiragana;3069
    dokatakana;30C9
    dollar;0024
    dollarinferior;F6E3
    dollarmonospace;FF04
    dollaroldstyle;F724
    dollarsmall;FE69
    dollarsuperior;F6E4
    dong;20AB
    dorusquare;3326
    dotaccent;02D9
    dotaccentcmb;0307
    dotbelowcmb;0323
    dotbelowcomb;0323
    dotkatakana;30FB
    dotlessi;0131
    dotlessj;F6BE
    dotlessjstrokehook;0284
    dotmath;22C5
    dottedcircle;25CC
    doubleyodpatah;FB1F
    doubleyodpatahhebrew;FB1F
    downtackbelowcmb;031E
    downtackmod;02D5
    dparen;249F
    dsuperior;F6EB
    dtail;0256
    dtopbar;018C
    duhiragana;3065
    dukatakana;30C5
    dz;01F3
    dzaltone;02A3
    dzcaron;01C6
    dzcurl;02A5
    dzeabkhasiancyrillic;04E1
    dzecyrillic;0455
    dzhecyrillic;045F
    e;0065
    eacute;00E9
    earth;2641
    ebengali;098F
    ebopomofo;311C
    ebreve;0115
    ecandradeva;090D
    ecandragujarati;0A8D
    ecandravowelsigndeva;0945
    ecandravowelsigngujarati;0AC5
    ecaron;011B
    ecedillabreve;1E1D
    echarmenian;0565
    echyiwnarmenian;0587
    ecircle;24D4
    ecircumflex;00EA
    ecircumflexacute;1EBF
    ecircumflexbelow;1E19
    ecircumflexdotbelow;1EC7
    ecircumflexgrave;1EC1
    ecircumflexhookabove;1EC3
    ecircumflextilde;1EC5
    ecyrillic;0454
    edblgrave;0205
    edeva;090F
    edieresis;00EB
    edot;0117
    edotaccent;0117
    edotbelow;1EB9
    eegurmukhi;0A0F
    eematragurmukhi;0A47
    efcyrillic;0444
    egrave;00E8
    egujarati;0A8F
    eharmenian;0567
    ehbopomofo;311D
    ehiragana;3048
    ehookabove;1EBB
    eibopomofo;311F
    eight;0038
    eightarabic;0668
    eightbengali;09EE
    eightcircle;2467
    eightcircleinversesansserif;2791
    eightdeva;096E
    eighteencircle;2471
    eighteenparen;2485
    eighteenperiod;2499
    eightgujarati;0AEE
    eightgurmukhi;0A6E
    eighthackarabic;0668
    eighthangzhou;3028
    eighthnotebeamed;266B
    eightideographicparen;3227
    eightinferior;2088
    eightmonospace;FF18
    eightoldstyle;F738
    eightparen;247B
    eightperiod;248F
    eightpersian;06F8
    eightroman;2177
    eightsuperior;2078
    eightthai;0E58
    einvertedbreve;0207
    eiotifiedcyrillic;0465
    ekatakana;30A8
    ekatakanahalfwidth;FF74
    ekonkargurmukhi;0A74
    ekorean;3154
    elcyrillic;043B
    element;2208
    elevencircle;246A
    elevenparen;247E
    elevenperiod;2492
    elevenroman;217A
    ellipsis;2026
    ellipsisvertical;22EE
    emacron;0113
    emacronacute;1E17
    emacrongrave;1E15
    emcyrillic;043C
    emdash;2014
    emdashvertical;FE31
    emonospace;FF45
    emphasismarkarmenian;055B
    emptyset;2205
    enbopomofo;3123
    encyrillic;043D
    endash;2013
    endashvertical;FE32
    endescendercyrillic;04A3
    eng;014B
    engbopomofo;3125
    enghecyrillic;04A5
    enhookcyrillic;04C8
    enspace;2002
    eogonek;0119
    eokorean;3153
    eopen;025B
    eopenclosed;029A
    eopenreversed;025C
    eopenreversedclosed;025E
    eopenreversedhook;025D
    eparen;24A0
    epsilon;03B5
    epsilontonos;03AD
    equal;003D
    equalmonospace;FF1D
    equalsmall;FE66
    equalsuperior;207C
    equivalence;2261
    erbopomofo;3126
    ercyrillic;0440
    ereversed;0258
    ereversedcyrillic;044D
    escyrillic;0441
    esdescendercyrillic;04AB
    esh;0283
    eshcurl;0286
    eshortdeva;090E
    eshortvowelsigndeva;0946
    eshreversedloop;01AA
    eshsquatreversed;0285
    esmallhiragana;3047
    esmallkatakana;30A7
    esmallkatakanahalfwidth;FF6A
    estimated;212E
    esuperior;F6EC
    eta;03B7
    etarmenian;0568
    etatonos;03AE
    eth;00F0
    etilde;1EBD
    etildebelow;1E1B
    etnahtafoukhhebrew;0591
    etnahtafoukhlefthebrew;0591
    etnahtahebrew;0591
    etnahtalefthebrew;0591
    eturned;01DD
    eukorean;3161
    euro;20AC
    evowelsignbengali;09C7
    evowelsigndeva;0947
    evowelsigngujarati;0AC7
    exclam;0021
    exclamarmenian;055C
    exclamdbl;203C
    exclamdown;00A1
    exclamdownsmall;F7A1
    exclammonospace;FF01
    exclamsmall;F721
    existential;2203
    ezh;0292
    ezhcaron;01EF
    ezhcurl;0293
    ezhreversed;01B9
    ezhtail;01BA
    f;0066
    fadeva;095E
    fagurmukhi;0A5E
    fahrenheit;2109
    fathaarabic;064E
    fathalowarabic;064E
    fathatanarabic;064B
    fbopomofo;3108
    fcircle;24D5
    fdotaccent;1E1F
    feharabic;0641
    feharmenian;0586
    fehfinalarabic;FED2
    fehinitialarabic;FED3
    fehmedialarabic;FED4
    feicoptic;03E5
    female;2640
    ff;FB00
    ffi;FB03
    ffl;FB04
    fi;FB01
    fifteencircle;246E
    fifteenparen;2482
    fifteenperiod;2496
    figuredash;2012
    filledbox;25A0
    filledrect;25AC
    finalkaf;05DA
    finalkafdagesh;FB3A
    finalkafdageshhebrew;FB3A
    finalkafhebrew;05DA
    finalkafqamats;05DA 05B8
    finalkafqamatshebrew;05DA 05B8
    finalkafsheva;05DA 05B0
    finalkafshevahebrew;05DA 05B0
    finalmem;05DD
    finalmemhebrew;05DD
    finalnun;05DF
    finalnunhebrew;05DF
    finalpe;05E3
    finalpehebrew;05E3
    finaltsadi;05E5
    finaltsadihebrew;05E5
    firsttonechinese;02C9
    fisheye;25C9
    fitacyrillic;0473
    five;0035
    fivearabic;0665
    fivebengali;09EB
    fivecircle;2464
    fivecircleinversesansserif;278E
    fivedeva;096B
    fiveeighths;215D
    fivegujarati;0AEB
    fivegurmukhi;0A6B
    fivehackarabic;0665
    fivehangzhou;3025
    fiveideographicparen;3224
    fiveinferior;2085
    fivemonospace;FF15
    fiveoldstyle;F735
    fiveparen;2478
    fiveperiod;248C
    fivepersian;06F5
    fiveroman;2174
    fivesuperior;2075
    fivethai;0E55
    fl;FB02
    florin;0192
    fmonospace;FF46
    fmsquare;3399
    fofanthai;0E1F
    fofathai;0E1D
    fongmanthai;0E4F
    forall;2200
    four;0034
    fourarabic;0664
    fourbengali;09EA
    fourcircle;2463
    fourcircleinversesansserif;278D
    fourdeva;096A
    fourgujarati;0AEA
    fourgurmukhi;0A6A
    fourhackarabic;0664
    fourhangzhou;3024
    fourideographicparen;3223
    fourinferior;2084
    fourmonospace;FF14
    fournumeratorbengali;09F7
    fouroldstyle;F734
    fourparen;2477
    fourperiod;248B
    fourpersian;06F4
    fourroman;2173
    foursuperior;2074
    fourteencircle;246D
    fourteenparen;2481
    fourteenperiod;2495
    fourthai;0E54
    fourthtonechinese;02CB
    fparen;24A1
    fraction;2044
    franc;20A3
    g;0067
    gabengali;0997
    gacute;01F5
    gadeva;0917
    gafarabic;06AF
    gaffinalarabic;FB93
    gafinitialarabic;FB94
    gafmedialarabic;FB95
    gagujarati;0A97
    gagurmukhi;0A17
    gahiragana;304C
    gakatakana;30AC
    gamma;03B3
    gammalatinsmall;0263
    gammasuperior;02E0
    gangiacoptic;03EB
    gbopomofo;310D
    gbreve;011F
    gcaron;01E7
    gcedilla;0123
    gcircle;24D6
    gcircumflex;011D
    gcommaaccent;0123
    gdot;0121
    gdotaccent;0121
    gecyrillic;0433
    gehiragana;3052
    gekatakana;30B2
    geometricallyequal;2251
    gereshaccenthebrew;059C
    gereshhebrew;05F3
    gereshmuqdamhebrew;059D
    germandbls;00DF
    gershayimaccenthebrew;059E
    gershayimhebrew;05F4
    getamark;3013
    ghabengali;0998
    ghadarmenian;0572
    ghadeva;0918
    ghagujarati;0A98
    ghagurmukhi;0A18
    ghainarabic;063A
    ghainfinalarabic;FECE
    ghaininitialarabic;FECF
    ghainmedialarabic;FED0
    ghemiddlehookcyrillic;0495
    ghestrokecyrillic;0493
    gheupturncyrillic;0491
    ghhadeva;095A
    ghhagurmukhi;0A5A
    ghook;0260
    ghzsquare;3393
    gihiragana;304E
    gikatakana;30AE
    gimarmenian;0563
    gimel;05D2
    gimeldagesh;FB32
    gimeldageshhebrew;FB32
    gimelhebrew;05D2
    gjecyrillic;0453
    glottalinvertedstroke;01BE
    glottalstop;0294
    glottalstopinverted;0296
    glottalstopmod;02C0
    glottalstopreversed;0295
    glottalstopreversedmod;02C1
    glottalstopreversedsuperior;02E4
    glottalstopstroke;02A1
    glottalstopstrokereversed;02A2
    gmacron;1E21
    gmonospace;FF47
    gohiragana;3054
    gokatakana;30B4
    gparen;24A2
    gpasquare;33AC
    gradient;2207
    grave;0060
    gravebelowcmb;0316
    gravecmb;0300
    gravecomb;0300
    gravedeva;0953
    gravelowmod;02CE
    gravemonospace;FF40
    gravetonecmb;0340
    greater;003E
    greaterequal;2265
    greaterequalorless;22DB
    greatermonospace;FF1E
    greaterorequivalent;2273
    greaterorless;2277
    greateroverequal;2267
    greatersmall;FE65
    gscript;0261
    gstroke;01E5
    guhiragana;3050
    guillemotleft;00AB
    guillemotright;00BB
    guilsinglleft;2039
    guilsinglright;203A
    gukatakana;30B0
    guramusquare;3318
    gysquare;33C9
    h;0068
    haabkhasiancyrillic;04A9
    haaltonearabic;06C1
    habengali;09B9
    hadescendercyrillic;04B3
    hadeva;0939
    hagujarati;0AB9
    hagurmukhi;0A39
    haharabic;062D
    hahfinalarabic;FEA2
    hahinitialarabic;FEA3
    hahiragana;306F
    hahmedialarabic;FEA4
    haitusquare;332A
    hakatakana;30CF
    hakatakanahalfwidth;FF8A
    halantgurmukhi;0A4D
    hamzaarabic;0621
    hamzadammaarabic;0621 064F
    hamzadammatanarabic;0621 064C
    hamzafathaarabic;0621 064E
    hamzafathatanarabic;0621 064B
    hamzalowarabic;0621
    hamzalowkasraarabic;0621 0650
    hamzalowkasratanarabic;0621 064D
    hamzasukunarabic;0621 0652
    hangulfiller;3164
    hardsigncyrillic;044A
    harpoonleftbarbup;21BC
    harpoonrightbarbup;21C0
    hasquare;33CA
    hatafpatah;05B2
    hatafpatah16;05B2
    hatafpatah23;05B2
    hatafpatah2f;05B2
    hatafpatahhebrew;05B2
    hatafpatahnarrowhebrew;05B2
    hatafpatahquarterhebrew;05B2
    hatafpatahwidehebrew;05B2
    hatafqamats;05B3
    hatafqamats1b;05B3
    hatafqamats28;05B3
    hatafqamats34;05B3
    hatafqamatshebrew;05B3
    hatafqamatsnarrowhebrew;05B3
    hatafqamatsquarterhebrew;05B3
    hatafqamatswidehebrew;05B3
    hatafsegol;05B1
    hatafsegol17;05B1
    hatafsegol24;05B1
    hatafsegol30;05B1
    hatafsegolhebrew;05B1
    hatafsegolnarrowhebrew;05B1
    hatafsegolquarterhebrew;05B1
    hatafsegolwidehebrew;05B1
    hbar;0127
    hbopomofo;310F
    hbrevebelow;1E2B
    hcedilla;1E29
    hcircle;24D7
    hcircumflex;0125
    hdieresis;1E27
    hdotaccent;1E23
    hdotbelow;1E25
    he;05D4
    heart;2665
    heartsuitblack;2665
    heartsuitwhite;2661
    hedagesh;FB34
    hedageshhebrew;FB34
    hehaltonearabic;06C1
    heharabic;0647
    hehebrew;05D4
    hehfinalaltonearabic;FBA7
    hehfinalalttwoarabic;FEEA
    hehfinalarabic;FEEA
    hehhamzaabovefinalarabic;FBA5
    hehhamzaaboveisolatedarabic;FBA4
    hehinitialaltonearabic;FBA8
    hehinitialarabic;FEEB
    hehiragana;3078
    hehmedialaltonearabic;FBA9
    hehmedialarabic;FEEC
    heiseierasquare;337B
    hekatakana;30D8
    hekatakanahalfwidth;FF8D
    hekutaarusquare;3336
    henghook;0267
    herutusquare;3339
    het;05D7
    hethebrew;05D7
    hhook;0266
    hhooksuperior;02B1
    hieuhacirclekorean;327B
    hieuhaparenkorean;321B
    hieuhcirclekorean;326D
    hieuhkorean;314E
    hieuhparenkorean;320D
    hihiragana;3072
    hikatakana;30D2
    hikatakanahalfwidth;FF8B
    hiriq;05B4
    hiriq14;05B4
    hiriq21;05B4
    hiriq2d;05B4
    hiriqhebrew;05B4
    hiriqnarrowhebrew;05B4
    hiriqquarterhebrew;05B4
    hiriqwidehebrew;05B4
    hlinebelow;1E96
    hmonospace;FF48
    hoarmenian;0570
    hohipthai;0E2B
    hohiragana;307B
    hokatakana;30DB
    hokatakanahalfwidth;FF8E
    holam;05B9
    holam19;05B9
    holam26;05B9
    holam32;05B9
    holamhebrew;05B9
    holamnarrowhebrew;05B9
    holamquarterhebrew;05B9
    holamwidehebrew;05B9
    honokhukthai;0E2E
    hookabovecomb;0309
    hookcmb;0309
    hookpalatalizedbelowcmb;0321
    hookretroflexbelowcmb;0322
    hoonsquare;3342
    horicoptic;03E9
    horizontalbar;2015
    horncmb;031B
    hotsprings;2668
    house;2302
    hparen;24A3
    hsuperior;02B0
    hturned;0265
    huhiragana;3075
    huiitosquare;3333
    hukatakana;30D5
    hukatakanahalfwidth;FF8C
    hungarumlaut;02DD
    hungarumlautcmb;030B
    hv;0195
    hyphen;002D
    hypheninferior;F6E5
    hyphenmonospace;FF0D
    hyphensmall;FE63
    hyphensuperior;F6E6
    hyphentwo;2010
    i;0069
    iacute;00ED
    iacyrillic;044F
    ibengali;0987
    ibopomofo;3127
    ibreve;012D
    icaron;01D0
    icircle;24D8
    icircumflex;00EE
    icyrillic;0456
    idblgrave;0209
    ideographearthcircle;328F
    ideographfirecircle;328B
    ideographicallianceparen;323F
    ideographiccallparen;323A
    ideographiccentrecircle;32A5
    ideographicclose;3006
    ideographiccomma;3001
    ideographiccommaleft;FF64
    ideographiccongratulationparen;3237
    ideographiccorrectcircle;32A3
    ideographicearthparen;322F
    ideographicenterpriseparen;323D
    ideographicexcellentcircle;329D
    ideographicfestivalparen;3240
    ideographicfinancialcircle;3296
    ideographicfinancialparen;3236
    ideographicfireparen;322B
    ideographichaveparen;3232
    ideographichighcircle;32A4
    ideographiciterationmark;3005
    ideographiclaborcircle;3298
    ideographiclaborparen;3238
    ideographicleftcircle;32A7
    ideographiclowcircle;32A6
    ideographicmedicinecircle;32A9
    ideographicmetalparen;322E
    ideographicmoonparen;322A
    ideographicnameparen;3234
    ideographicperiod;3002
    ideographicprintcircle;329E
    ideographicreachparen;3243
    ideographicrepresentparen;3239
    ideographicresourceparen;323E
    ideographicrightcircle;32A8
    ideographicsecretcircle;3299
    ideographicselfparen;3242
    ideographicsocietyparen;3233
    ideographicspace;3000
    ideographicspecialparen;3235
    ideographicstockparen;3231
    ideographicstudyparen;323B
    ideographicsunparen;3230
    ideographicsuperviseparen;323C
    ideographicwaterparen;322C
    ideographicwoodparen;322D
    ideographiczero;3007
    ideographmetalcircle;328E
    ideographmooncircle;328A
    ideographnamecircle;3294
    ideographsuncircle;3290
    ideographwatercircle;328C
    ideographwoodcircle;328D
    ideva;0907
    idieresis;00EF
    idieresisacute;1E2F
    idieresiscyrillic;04E5
    idotbelow;1ECB
    iebrevecyrillic;04D7
    iecyrillic;0435
    ieungacirclekorean;3275
    ieungaparenkorean;3215
    ieungcirclekorean;3267
    ieungkorean;3147
    ieungparenkorean;3207
    igrave;00EC
    igujarati;0A87
    igurmukhi;0A07
    ihiragana;3044
    ihookabove;1EC9
    iibengali;0988
    iicyrillic;0438
    iideva;0908
    iigujarati;0A88
    iigurmukhi;0A08
    iimatragurmukhi;0A40
    iinvertedbreve;020B
    iishortcyrillic;0439
    iivowelsignbengali;09C0
    iivowelsigndeva;0940
    iivowelsigngujarati;0AC0
    ij;0133
    ikatakana;30A4
    ikatakanahalfwidth;FF72
    ikorean;3163
    ilde;02DC
    iluyhebrew;05AC
    imacron;012B
    imacroncyrillic;04E3
    imageorapproximatelyequal;2253
    imatragurmukhi;0A3F
    imonospace;FF49
    increment;2206
    infinity;221E
    iniarmenian;056B
    integral;222B
    integralbottom;2321
    integralbt;2321
    integralex;F8F5
    integraltop;2320
    integraltp;2320
    intersection;2229
    intisquare;3305
    invbullet;25D8
    invcircle;25D9
    invsmileface;263B
    iocyrillic;0451
    iogonek;012F
    iota;03B9
    iotadieresis;03CA
    iotadieresistonos;0390
    iotalatin;0269
    iotatonos;03AF
    iparen;24A4
    irigurmukhi;0A72
    ismallhiragana;3043
    ismallkatakana;30A3
    ismallkatakanahalfwidth;FF68
    issharbengali;09FA
    istroke;0268
    isuperior;F6ED
    iterationhiragana;309D
    iterationkatakana;30FD
    itilde;0129
    itildebelow;1E2D
    iubopomofo;3129
    iucyrillic;044E
    ivowelsignbengali;09BF
    ivowelsigndeva;093F
    ivowelsigngujarati;0ABF
    izhitsacyrillic;0475
    izhitsadblgravecyrillic;0477
    j;006A
    jaarmenian;0571
    jabengali;099C
    jadeva;091C
    jagujarati;0A9C
    jagurmukhi;0A1C
    jbopomofo;3110
    jcaron;01F0
    jcircle;24D9
    jcircumflex;0135
    jcrossedtail;029D
    jdotlessstroke;025F
    jecyrillic;0458
    jeemarabic;062C
    jeemfinalarabic;FE9E
    jeeminitialarabic;FE9F
    jeemmedialarabic;FEA0
    jeharabic;0698
    jehfinalarabic;FB8B
    jhabengali;099D
    jhadeva;091D
    jhagujarati;0A9D
    jhagurmukhi;0A1D
    jheharmenian;057B
    jis;3004
    jmonospace;FF4A
    jparen;24A5
    jsuperior;02B2
    k;006B
    kabashkircyrillic;04A1
    kabengali;0995
    kacute;1E31
    kacyrillic;043A
    kadescendercyrillic;049B
    kadeva;0915
    kaf;05DB
    kafarabic;0643
    kafdagesh;FB3B
    kafdageshhebrew;FB3B
    kaffinalarabic;FEDA
    kafhebrew;05DB
    kafinitialarabic;FEDB
    kafmedialarabic;FEDC
    kafrafehebrew;FB4D
    kagujarati;0A95
    kagurmukhi;0A15
    kahiragana;304B
    kahookcyrillic;04C4
    kakatakana;30AB
    kakatakanahalfwidth;FF76
    kappa;03BA
    kappasymbolgreek;03F0
    kapyeounmieumkorean;3171
    kapyeounphieuphkorean;3184
    kapyeounpieupkorean;3178
    kapyeounssangpieupkorean;3179
    karoriisquare;330D
    kashidaautoarabic;0640
    kashidaautonosidebearingarabic;0640
    kasmallkatakana;30F5
    kasquare;3384
    kasraarabic;0650
    kasratanarabic;064D
    kastrokecyrillic;049F
    katahiraprolongmarkhalfwidth;FF70
    kaverticalstrokecyrillic;049D
    kbopomofo;310E
    kcalsquare;3389
    kcaron;01E9
    kcedilla;0137
    kcircle;24DA
    kcommaaccent;0137
    kdotbelow;1E33
    keharmenian;0584
    kehiragana;3051
    kekatakana;30B1
    kekatakanahalfwidth;FF79
    kenarmenian;056F
    kesmallkatakana;30F6
    kgreenlandic;0138
    khabengali;0996
    khacyrillic;0445
    khadeva;0916
    khagujarati;0A96
    khagurmukhi;0A16
    khaharabic;062E
    khahfinalarabic;FEA6
    khahinitialarabic;FEA7
    khahmedialarabic;FEA8
    kheicoptic;03E7
    khhadeva;0959
    khhagurmukhi;0A59
    khieukhacirclekorean;3278
    khieukhaparenkorean;3218
    khieukhcirclekorean;326A
    khieukhkorean;314B
    khieukhparenkorean;320A
    khokhaithai;0E02
    khokhonthai;0E05
    khokhuatthai;0E03
    khokhwaithai;0E04
    khomutthai;0E5B
    khook;0199
    khorakhangthai;0E06
    khzsquare;3391
    kihiragana;304D
    kikatakana;30AD
    kikatakanahalfwidth;FF77
    kiroguramusquare;3315
    kiromeetorusquare;3316
    kirosquare;3314
    kiyeokacirclekorean;326E
    kiyeokaparenkorean;320E
    kiyeokcirclekorean;3260
    kiyeokkorean;3131
    kiyeokparenkorean;3200
    kiyeoksioskorean;3133
    kjecyrillic;045C
    klinebelow;1E35
    klsquare;3398
    kmcubedsquare;33A6
    kmonospace;FF4B
    kmsquaredsquare;33A2
    kohiragana;3053
    kohmsquare;33C0
    kokaithai;0E01
    kokatakana;30B3
    kokatakanahalfwidth;FF7A
    kooposquare;331E
    koppacyrillic;0481
    koreanstandardsymbol;327F
    koroniscmb;0343
    kparen;24A6
    kpasquare;33AA
    ksicyrillic;046F
    ktsquare;33CF
    kturned;029E
    kuhiragana;304F
    kukatakana;30AF
    kukatakanahalfwidth;FF78
    kvsquare;33B8
    kwsquare;33BE
    l;006C
    labengali;09B2
    lacute;013A
    ladeva;0932
    lagujarati;0AB2
    lagurmukhi;0A32
    lakkhangyaothai;0E45
    lamaleffinalarabic;FEFC
    lamalefhamzaabovefinalarabic;FEF8
    lamalefhamzaaboveisolatedarabic;FEF7
    lamalefhamzabelowfinalarabic;FEFA
    lamalefhamzabelowisolatedarabic;FEF9
    lamalefisolatedarabic;FEFB
    lamalefmaddaabovefinalarabic;FEF6
    lamalefmaddaaboveisolatedarabic;FEF5
    lamarabic;0644
    lambda;03BB
    lambdastroke;019B
    lamed;05DC
    lameddagesh;FB3C
    lameddageshhebrew;FB3C
    lamedhebrew;05DC
    lamedholam;05DC 05B9
    lamedholamdagesh;05DC 05B9 05BC
    lamedholamdageshhebrew;05DC 05B9 05BC
    lamedholamhebrew;05DC 05B9
    lamfinalarabic;FEDE
    lamhahinitialarabic;FCCA
    laminitialarabic;FEDF
    lamjeeminitialarabic;FCC9
    lamkhahinitialarabic;FCCB
    lamlamhehisolatedarabic;FDF2
    lammedialarabic;FEE0
    lammeemhahinitialarabic;FD88
    lammeeminitialarabic;FCCC
    lammeemjeeminitialarabic;FEDF FEE4 FEA0
    lammeemkhahinitialarabic;FEDF FEE4 FEA8
    largecircle;25EF
    lbar;019A
    lbelt;026C
    lbopomofo;310C
    lcaron;013E
    lcedilla;013C
    lcircle;24DB
    lcircumflexbelow;1E3D
    lcommaaccent;013C
    ldot;0140
    ldotaccent;0140
    ldotbelow;1E37
    ldotbelowmacron;1E39
    leftangleabovecmb;031A
    lefttackbelowcmb;0318
    less;003C
    lessequal;2264
    lessequalorgreater;22DA
    lessmonospace;FF1C
    lessorequivalent;2272
    lessorgreater;2276
    lessoverequal;2266
    lesssmall;FE64
    lezh;026E
    lfblock;258C
    lhookretroflex;026D
    lira;20A4
    liwnarmenian;056C
    lj;01C9
    ljecyrillic;0459
    ll;F6C0
    lladeva;0933
    llagujarati;0AB3
    llinebelow;1E3B
    llladeva;0934
    llvocalicbengali;09E1
    llvocalicdeva;0961
    llvocalicvowelsignbengali;09E3
    llvocalicvowelsigndeva;0963
    lmiddletilde;026B
    lmonospace;FF4C
    lmsquare;33D0
    lochulathai;0E2C
    logicaland;2227
    logicalnot;00AC
    logicalnotreversed;2310
    logicalor;2228
    lolingthai;0E25
    longs;017F
    lowlinecenterline;FE4E
    lowlinecmb;0332
    lowlinedashed;FE4D
    lozenge;25CA
    lparen;24A7
    lslash;0142
    lsquare;2113
    lsuperior;F6EE
    ltshade;2591
    luthai;0E26
    lvocalicbengali;098C
    lvocalicdeva;090C
    lvocalicvowelsignbengali;09E2
    lvocalicvowelsigndeva;0962
    lxsquare;33D3
    m;006D
    mabengali;09AE
    macron;00AF
    macronbelowcmb;0331
    macroncmb;0304
    macronlowmod;02CD
    macronmonospace;FFE3
    macute;1E3F
    madeva;092E
    magujarati;0AAE
    magurmukhi;0A2E
    mahapakhhebrew;05A4
    mahapakhlefthebrew;05A4
    mahiragana;307E
    maichattawalowleftthai;F895
    maichattawalowrightthai;F894
    maichattawathai;0E4B
    maichattawaupperleftthai;F893
    maieklowleftthai;F88C
    maieklowrightthai;F88B
    maiekthai;0E48
    maiekupperleftthai;F88A
    maihanakatleftthai;F884
    maihanakatthai;0E31
    maitaikhuleftthai;F889
    maitaikhuthai;0E47
    maitholowleftthai;F88F
    maitholowrightthai;F88E
    maithothai;0E49
    maithoupperleftthai;F88D
    maitrilowleftthai;F892
    maitrilowrightthai;F891
    maitrithai;0E4A
    maitriupperleftthai;F890
    maiyamokthai;0E46
    makatakana;30DE
    makatakanahalfwidth;FF8F
    male;2642
    mansyonsquare;3347
    maqafhebrew;05BE
    mars;2642
    masoracirclehebrew;05AF
    masquare;3383
    mbopomofo;3107
    mbsquare;33D4
    mcircle;24DC
    mcubedsquare;33A5
    mdotaccent;1E41
    mdotbelow;1E43
    meemarabic;0645
    meemfinalarabic;FEE2
    meeminitialarabic;FEE3
    meemmedialarabic;FEE4
    meemmeeminitialarabic;FCD1
    meemmeemisolatedarabic;FC48
    meetorusquare;334D
    mehiragana;3081
    meizierasquare;337E
    mekatakana;30E1
    mekatakanahalfwidth;FF92
    mem;05DE
    memdagesh;FB3E
    memdageshhebrew;FB3E
    memhebrew;05DE
    menarmenian;0574
    merkhahebrew;05A5
    merkhakefulahebrew;05A6
    merkhakefulalefthebrew;05A6
    merkhalefthebrew;05A5
    mhook;0271
    mhzsquare;3392
    middledotkatakanahalfwidth;FF65
    middot;00B7
    mieumacirclekorean;3272
    mieumaparenkorean;3212
    mieumcirclekorean;3264
    mieumkorean;3141
    mieumpansioskorean;3170
    mieumparenkorean;3204
    mieumpieupkorean;316E
    mieumsioskorean;316F
    mihiragana;307F
    mikatakana;30DF
    mikatakanahalfwidth;FF90
    minus;2212
    minusbelowcmb;0320
    minuscircle;2296
    minusmod;02D7
    minusplus;2213
    minute;2032
    miribaarusquare;334A
    mirisquare;3349
    mlonglegturned;0270
    mlsquare;3396
    mmcubedsquare;33A3
    mmonospace;FF4D
    mmsquaredsquare;339F
    mohiragana;3082
    mohmsquare;33C1
    mokatakana;30E2
    mokatakanahalfwidth;FF93
    molsquare;33D6
    momathai;0E21
    moverssquare;33A7
    moverssquaredsquare;33A8
    mparen;24A8
    mpasquare;33AB
    mssquare;33B3
    msuperior;F6EF
    mturned;026F
    mu;00B5
    mu1;00B5
    muasquare;3382
    muchgreater;226B
    muchless;226A
    mufsquare;338C
    mugreek;03BC
    mugsquare;338D
    muhiragana;3080
    mukatakana;30E0
    mukatakanahalfwidth;FF91
    mulsquare;3395
    multiply;00D7
    mumsquare;339B
    munahhebrew;05A3
    munahlefthebrew;05A3
    musicalnote;266A
    musicalnotedbl;266B
    musicflatsign;266D
    musicsharpsign;266F
    mussquare;33B2
    muvsquare;33B6
    muwsquare;33BC
    mvmegasquare;33B9
    mvsquare;33B7
    mwmegasquare;33BF
    mwsquare;33BD
    n;006E
    nabengali;09A8
    nabla;2207
    nacute;0144
    nadeva;0928
    nagujarati;0AA8
    nagurmukhi;0A28
    nahiragana;306A
    nakatakana;30CA
    nakatakanahalfwidth;FF85
    napostrophe;0149
    nasquare;3381
    nbopomofo;310B
    nbspace;00A0
    ncaron;0148
    ncedilla;0146
    ncircle;24DD
    ncircumflexbelow;1E4B
    ncommaaccent;0146
    ndotaccent;1E45
    ndotbelow;1E47
    nehiragana;306D
    nekatakana;30CD
    nekatakanahalfwidth;FF88
    newsheqelsign;20AA
    nfsquare;338B
    ngabengali;0999
    ngadeva;0919
    ngagujarati;0A99
    ngagurmukhi;0A19
    ngonguthai;0E07
    nhiragana;3093
    nhookleft;0272
    nhookretroflex;0273
    nieunacirclekorean;326F
    nieunaparenkorean;320F
    nieuncieuckorean;3135
    nieuncirclekorean;3261
    nieunhieuhkorean;3136
    nieunkorean;3134
    nieunpansioskorean;3168
    nieunparenkorean;3201
    nieunsioskorean;3167
    nieuntikeutkorean;3166
    nihiragana;306B
    nikatakana;30CB
    nikatakanahalfwidth;FF86
    nikhahitleftthai;F899
    nikhahitthai;0E4D
    nine;0039
    ninearabic;0669
    ninebengali;09EF
    ninecircle;2468
    ninecircleinversesansserif;2792
    ninedeva;096F
    ninegujarati;0AEF
    ninegurmukhi;0A6F
    ninehackarabic;0669
    ninehangzhou;3029
    nineideographicparen;3228
    nineinferior;2089
    ninemonospace;FF19
    nineoldstyle;F739
    nineparen;247C
    nineperiod;2490
    ninepersian;06F9
    nineroman;2178
    ninesuperior;2079
    nineteencircle;2472
    nineteenparen;2486
    nineteenperiod;249A
    ninethai;0E59
    nj;01CC
    njecyrillic;045A
    nkatakana;30F3
    nkatakanahalfwidth;FF9D
    nlegrightlong;019E
    nlinebelow;1E49
    nmonospace;FF4E
    nmsquare;339A
    nnabengali;09A3
    nnadeva;0923
    nnagujarati;0AA3
    nnagurmukhi;0A23
    nnnadeva;0929
    nohiragana;306E
    nokatakana;30CE
    nokatakanahalfwidth;FF89
    nonbreakingspace;00A0
    nonenthai;0E13
    nonuthai;0E19
    noonarabic;0646
    noonfinalarabic;FEE6
    noonghunnaarabic;06BA
    noonghunnafinalarabic;FB9F
    noonhehinitialarabic;FEE7 FEEC
    nooninitialarabic;FEE7
    noonjeeminitialarabic;FCD2
    noonjeemisolatedarabic;FC4B
    noonmedialarabic;FEE8
    noonmeeminitialarabic;FCD5
    noonmeemisolatedarabic;FC4E
    noonnoonfinalarabic;FC8D
    notcontains;220C
    notelement;2209
    notelementof;2209
    notequal;2260
    notgreater;226F
    notgreaternorequal;2271
    notgreaternorless;2279
    notidentical;2262
    notless;226E
    notlessnorequal;2270
    notparallel;2226
    notprecedes;2280
    notsubset;2284
    notsucceeds;2281
    notsuperset;2285
    nowarmenian;0576
    nparen;24A9
    nssquare;33B1
    nsuperior;207F
    ntilde;00F1
    nu;03BD
    nuhiragana;306C
    nukatakana;30CC
    nukatakanahalfwidth;FF87
    nuktabengali;09BC
    nuktadeva;093C
    nuktagujarati;0ABC
    nuktagurmukhi;0A3C
    numbersign;0023
    numbersignmonospace;FF03
    numbersignsmall;FE5F
    numeralsigngreek;0374
    numeralsignlowergreek;0375
    numero;2116
    nun;05E0
    nundagesh;FB40
    nundageshhebrew;FB40
    nunhebrew;05E0
    nvsquare;33B5
    nwsquare;33BB
    nyabengali;099E
    nyadeva;091E
    nyagujarati;0A9E
    nyagurmukhi;0A1E
    o;006F
    oacute;00F3
    oangthai;0E2D
    obarred;0275
    obarredcyrillic;04E9
    obarreddieresiscyrillic;04EB
    obengali;0993
    obopomofo;311B
    obreve;014F
    ocandradeva;0911
    ocandragujarati;0A91
    ocandravowelsigndeva;0949
    ocandravowelsigngujarati;0AC9
    ocaron;01D2
    ocircle;24DE
    ocircumflex;00F4
    ocircumflexacute;1ED1
    ocircumflexdotbelow;1ED9
    ocircumflexgrave;1ED3
    ocircumflexhookabove;1ED5
    ocircumflextilde;1ED7
    ocyrillic;043E
    odblacute;0151
    odblgrave;020D
    odeva;0913
    odieresis;00F6
    odieresiscyrillic;04E7
    odotbelow;1ECD
    oe;0153
    oekorean;315A
    ogonek;02DB
    ogonekcmb;0328
    ograve;00F2
    ogujarati;0A93
    oharmenian;0585
    ohiragana;304A
    ohookabove;1ECF
    ohorn;01A1
    ohornacute;1EDB
    ohorndotbelow;1EE3
    ohorngrave;1EDD
    ohornhookabove;1EDF
    ohorntilde;1EE1
    ohungarumlaut;0151
    oi;01A3
    oinvertedbreve;020F
    okatakana;30AA
    okatakanahalfwidth;FF75
    okorean;3157
    olehebrew;05AB
    omacron;014D
    omacronacute;1E53
    omacrongrave;1E51
    omdeva;0950
    omega;03C9
    omega1;03D6
    omegacyrillic;0461
    omegalatinclosed;0277
    omegaroundcyrillic;047B
    omegatitlocyrillic;047D
    omegatonos;03CE
    omgujarati;0AD0
    omicron;03BF
    omicrontonos;03CC
    omonospace;FF4F
    one;0031
    onearabic;0661
    onebengali;09E7
    onecircle;2460
    onecircleinversesansserif;278A
    onedeva;0967
    onedotenleader;2024
    oneeighth;215B
    onefitted;F6DC
    onegujarati;0AE7
    onegurmukhi;0A67
    onehackarabic;0661
    onehalf;00BD
    onehangzhou;3021
    oneideographicparen;3220
    oneinferior;2081
    onemonospace;FF11
    onenumeratorbengali;09F4
    oneoldstyle;F731
    oneparen;2474
    oneperiod;2488
    onepersian;06F1
    onequarter;00BC
    oneroman;2170
    onesuperior;00B9
    onethai;0E51
    onethird;2153
    oogonek;01EB
    oogonekmacron;01ED
    oogurmukhi;0A13
    oomatragurmukhi;0A4B
    oopen;0254
    oparen;24AA
    openbullet;25E6
    option;2325
    ordfeminine;00AA
    ordmasculine;00BA
    orthogonal;221F
    oshortdeva;0912
    oshortvowelsigndeva;094A
    oslash;00F8
    oslashacute;01FF
    osmallhiragana;3049
    osmallkatakana;30A9
    osmallkatakanahalfwidth;FF6B
    ostrokeacute;01FF
    osuperior;F6F0
    otcyrillic;047F
    otilde;00F5
    otildeacute;1E4D
    otildedieresis;1E4F
    oubopomofo;3121
    overline;203E
    overlinecenterline;FE4A
    overlinecmb;0305
    overlinedashed;FE49
    overlinedblwavy;FE4C
    overlinewavy;FE4B
    overscore;00AF
    ovowelsignbengali;09CB
    ovowelsigndeva;094B
    ovowelsigngujarati;0ACB
    p;0070
    paampssquare;3380
    paasentosquare;332B
    pabengali;09AA
    pacute;1E55
    padeva;092A
    pagedown;21DF
    pageup;21DE
    pagujarati;0AAA
    pagurmukhi;0A2A
    pahiragana;3071
    paiyannoithai;0E2F
    pakatakana;30D1
    palatalizationcyrilliccmb;0484
    palochkacyrillic;04C0
    pansioskorean;317F
    paragraph;00B6
    parallel;2225
    parenleft;0028
    parenleftaltonearabic;FD3E
    parenleftbt;F8ED
    parenleftex;F8EC
    parenleftinferior;208D
    parenleftmonospace;FF08
    parenleftsmall;FE59
    parenleftsuperior;207D
    parenlefttp;F8EB
    parenleftvertical;FE35
    parenright;0029
    parenrightaltonearabic;FD3F
    parenrightbt;F8F8
    parenrightex;F8F7
    parenrightinferior;208E
    parenrightmonospace;FF09
    parenrightsmall;FE5A
    parenrightsuperior;207E
    parenrighttp;F8F6
    parenrightvertical;FE36
    partialdiff;2202
    paseqhebrew;05C0
    pashtahebrew;0599
    pasquare;33A9
    patah;05B7
    patah11;05B7
    patah1d;05B7
    patah2a;05B7
    patahhebrew;05B7
    patahnarrowhebrew;05B7
    patahquarterhebrew;05B7
    patahwidehebrew;05B7
    pazerhebrew;05A1
    pbopomofo;3106
    pcircle;24DF
    pdotaccent;1E57
    pe;05E4
    pecyrillic;043F
    pedagesh;FB44
    pedageshhebrew;FB44
    peezisquare;333B
    pefinaldageshhebrew;FB43
    peharabic;067E
    peharmenian;057A
    pehebrew;05E4
    pehfinalarabic;FB57
    pehinitialarabic;FB58
    pehiragana;307A
    pehmedialarabic;FB59
    pekatakana;30DA
    pemiddlehookcyrillic;04A7
    perafehebrew;FB4E
    percent;0025
    percentarabic;066A
    percentmonospace;FF05
    percentsmall;FE6A
    period;002E
    periodarmenian;0589
    periodcentered;00B7
    periodhalfwidth;FF61
    periodinferior;F6E7
    periodmonospace;FF0E
    periodsmall;FE52
    periodsuperior;F6E8
    perispomenigreekcmb;0342
    perpendicular;22A5
    perthousand;2030
    peseta;20A7
    pfsquare;338A
    phabengali;09AB
    phadeva;092B
    phagujarati;0AAB
    phagurmukhi;0A2B
    phi;03C6
    phi1;03D5
    phieuphacirclekorean;327A
    phieuphaparenkorean;321A
    phieuphcirclekorean;326C
    phieuphkorean;314D
    phieuphparenkorean;320C
    philatin;0278
    phinthuthai;0E3A
    phisymbolgreek;03D5
    phook;01A5
    phophanthai;0E1E
    phophungthai;0E1C
    phosamphaothai;0E20
    pi;03C0
    pieupacirclekorean;3273
    pieupaparenkorean;3213
    pieupcieuckorean;3176
    pieupcirclekorean;3265
    pieupkiyeokkorean;3172
    pieupkorean;3142
    pieupparenkorean;3205
    pieupsioskiyeokkorean;3174
    pieupsioskorean;3144
    pieupsiostikeutkorean;3175
    pieupthieuthkorean;3177
    pieuptikeutkorean;3173
    pihiragana;3074
    pikatakana;30D4
    pisymbolgreek;03D6
    piwrarmenian;0583
    plus;002B
    plusbelowcmb;031F
    pluscircle;2295
    plusminus;00B1
    plusmod;02D6
    plusmonospace;FF0B
    plussmall;FE62
    plussuperior;207A
    pmonospace;FF50
    pmsquare;33D8
    pohiragana;307D
    pointingindexdownwhite;261F
    pointingindexleftwhite;261C
    pointingindexrightwhite;261E
    pointingindexupwhite;261D
    pokatakana;30DD
    poplathai;0E1B
    postalmark;3012
    postalmarkface;3020
    pparen;24AB
    precedes;227A
    prescription;211E
    primemod;02B9
    primereversed;2035
    product;220F
    projective;2305
    prolongedkana;30FC
    propellor;2318
    propersubset;2282
    propersuperset;2283
    proportion;2237
    proportional;221D
    psi;03C8
    psicyrillic;0471
    psilipneumatacyrilliccmb;0486
    pssquare;33B0
    puhiragana;3077
    pukatakana;30D7
    pvsquare;33B4
    pwsquare;33BA
    q;0071
    qadeva;0958
    qadmahebrew;05A8
    qafarabic;0642
    qaffinalarabic;FED6
    qafinitialarabic;FED7
    qafmedialarabic;FED8
    qamats;05B8
    qamats10;05B8
    qamats1a;05B8
    qamats1c;05B8
    qamats27;05B8
    qamats29;05B8
    qamats33;05B8
    qamatsde;05B8
    qamatshebrew;05B8
    qamatsnarrowhebrew;05B8
    qamatsqatanhebrew;05B8
    qamatsqatannarrowhebrew;05B8
    qamatsqatanquarterhebrew;05B8
    qamatsqatanwidehebrew;05B8
    qamatsquarterhebrew;05B8
    qamatswidehebrew;05B8
    qarneyparahebrew;059F
    qbopomofo;3111
    qcircle;24E0
    qhook;02A0
    qmonospace;FF51
    qof;05E7
    qofdagesh;FB47
    qofdageshhebrew;FB47
    qofhatafpatah;05E7 05B2
    qofhatafpatahhebrew;05E7 05B2
    qofhatafsegol;05E7 05B1
    qofhatafsegolhebrew;05E7 05B1
    qofhebrew;05E7
    qofhiriq;05E7 05B4
    qofhiriqhebrew;05E7 05B4
    qofholam;05E7 05B9
    qofholamhebrew;05E7 05B9
    qofpatah;05E7 05B7
    qofpatahhebrew;05E7 05B7
    qofqamats;05E7 05B8
    qofqamatshebrew;05E7 05B8
    qofqubuts;05E7 05BB
    qofqubutshebrew;05E7 05BB
    qofsegol;05E7 05B6
    qofsegolhebrew;05E7 05B6
    qofsheva;05E7 05B0
    qofshevahebrew;05E7 05B0
    qoftsere;05E7 05B5
    qoftserehebrew;05E7 05B5
    qparen;24AC
    quarternote;2669
    qubuts;05BB
    qubuts18;05BB
    qubuts25;05BB
    qubuts31;05BB
    qubutshebrew;05BB
    qubutsnarrowhebrew;05BB
    qubutsquarterhebrew;05BB
    qubutswidehebrew;05BB
    question;003F
    questionarabic;061F
    questionarmenian;055E
    questiondown;00BF
    questiondownsmall;F7BF
    questiongreek;037E
    questionmonospace;FF1F
    questionsmall;F73F
    quotedbl;0022
    quotedblbase;201E
    quotedblleft;201C
    quotedblmonospace;FF02
    quotedblprime;301E
    quotedblprimereversed;301D
    quotedblright;201D
    quoteleft;2018
    quoteleftreversed;201B
    quotereversed;201B
    quoteright;2019
    quoterightn;0149
    quotesinglbase;201A
    quotesingle;0027
    quotesinglemonospace;FF07
    r;0072
    raarmenian;057C
    rabengali;09B0
    racute;0155
    radeva;0930
    radical;221A
    radicalex;F8E5
    radoverssquare;33AE
    radoverssquaredsquare;33AF
    radsquare;33AD
    rafe;05BF
    rafehebrew;05BF
    ragujarati;0AB0
    ragurmukhi;0A30
    rahiragana;3089
    rakatakana;30E9
    rakatakanahalfwidth;FF97
    ralowerdiagonalbengali;09F1
    ramiddlediagonalbengali;09F0
    ramshorn;0264
    ratio;2236
    rbopomofo;3116
    rcaron;0159
    rcedilla;0157
    rcircle;24E1
    rcommaaccent;0157
    rdblgrave;0211
    rdotaccent;1E59
    rdotbelow;1E5B
    rdotbelowmacron;1E5D
    referencemark;203B
    reflexsubset;2286
    reflexsuperset;2287
    registered;00AE
    registersans;F8E8
    registerserif;F6DA
    reharabic;0631
    reharmenian;0580
    rehfinalarabic;FEAE
    rehiragana;308C
    rehyehaleflamarabic;0631 FEF3 FE8E 0644
    rekatakana;30EC
    rekatakanahalfwidth;FF9A
    resh;05E8
    reshdageshhebrew;FB48
    reshhatafpatah;05E8 05B2
    reshhatafpatahhebrew;05E8 05B2
    reshhatafsegol;05E8 05B1
    reshhatafsegolhebrew;05E8 05B1
    reshhebrew;05E8
    reshhiriq;05E8 05B4
    reshhiriqhebrew;05E8 05B4
    reshholam;05E8 05B9
    reshholamhebrew;05E8 05B9
    reshpatah;05E8 05B7
    reshpatahhebrew;05E8 05B7
    reshqamats;05E8 05B8
    reshqamatshebrew;05E8 05B8
    reshqubuts;05E8 05BB
    reshqubutshebrew;05E8 05BB
    reshsegol;05E8 05B6
    reshsegolhebrew;05E8 05B6
    reshsheva;05E8 05B0
    reshshevahebrew;05E8 05B0
    reshtsere;05E8 05B5
    reshtserehebrew;05E8 05B5
    reversedtilde;223D
    reviahebrew;0597
    reviamugrashhebrew;0597
    revlogicalnot;2310
    rfishhook;027E
    rfishhookreversed;027F
    rhabengali;09DD
    rhadeva;095D
    rho;03C1
    rhook;027D
    rhookturned;027B
    rhookturnedsuperior;02B5
    rhosymbolgreek;03F1
    rhotichookmod;02DE
    rieulacirclekorean;3271
    rieulaparenkorean;3211
    rieulcirclekorean;3263
    rieulhieuhkorean;3140
    rieulkiyeokkorean;313A
    rieulkiyeoksioskorean;3169
    rieulkorean;3139
    rieulmieumkorean;313B
    rieulpansioskorean;316C
    rieulparenkorean;3203
    rieulphieuphkorean;313F
    rieulpieupkorean;313C
    rieulpieupsioskorean;316B
    rieulsioskorean;313D
    rieulthieuthkorean;313E
    rieultikeutkorean;316A
    rieulyeorinhieuhkorean;316D
    rightangle;221F
    righttackbelowcmb;0319
    righttriangle;22BF
    rihiragana;308A
    rikatakana;30EA
    rikatakanahalfwidth;FF98
    ring;02DA
    ringbelowcmb;0325
    ringcmb;030A
    ringhalfleft;02BF
    ringhalfleftarmenian;0559
    ringhalfleftbelowcmb;031C
    ringhalfleftcentered;02D3
    ringhalfright;02BE
    ringhalfrightbelowcmb;0339
    ringhalfrightcentered;02D2
    rinvertedbreve;0213
    rittorusquare;3351
    rlinebelow;1E5F
    rlongleg;027C
    rlonglegturned;027A
    rmonospace;FF52
    rohiragana;308D
    rokatakana;30ED
    rokatakanahalfwidth;FF9B
    roruathai;0E23
    rparen;24AD
    rrabengali;09DC
    rradeva;0931
    rragurmukhi;0A5C
    rreharabic;0691
    rrehfinalarabic;FB8D
    rrvocalicbengali;09E0
    rrvocalicdeva;0960
    rrvocalicgujarati;0AE0
    rrvocalicvowelsignbengali;09C4
    rrvocalicvowelsigndeva;0944
    rrvocalicvowelsigngujarati;0AC4
    rsuperior;F6F1
    rtblock;2590
    rturned;0279
    rturnedsuperior;02B4
    ruhiragana;308B
    rukatakana;30EB
    rukatakanahalfwidth;FF99
    rupeemarkbengali;09F2
    rupeesignbengali;09F3
    rupiah;F6DD
    ruthai;0E24
    rvocalicbengali;098B
    rvocalicdeva;090B
    rvocalicgujarati;0A8B
    rvocalicvowelsignbengali;09C3
    rvocalicvowelsigndeva;0943
    rvocalicvowelsigngujarati;0AC3
    s;0073
    sabengali;09B8
    sacute;015B
    sacutedotaccent;1E65
    sadarabic;0635
    sadeva;0938
    sadfinalarabic;FEBA
    sadinitialarabic;FEBB
    sadmedialarabic;FEBC
    sagujarati;0AB8
    sagurmukhi;0A38
    sahiragana;3055
    sakatakana;30B5
    sakatakanahalfwidth;FF7B
    sallallahoualayhewasallamarabic;FDFA
    samekh;05E1
    samekhdagesh;FB41
    samekhdageshhebrew;FB41
    samekhhebrew;05E1
    saraaathai;0E32
    saraaethai;0E41
    saraaimaimalaithai;0E44
    saraaimaimuanthai;0E43
    saraamthai;0E33
    saraathai;0E30
    saraethai;0E40
    saraiileftthai;F886
    saraiithai;0E35
    saraileftthai;F885
    saraithai;0E34
    saraothai;0E42
    saraueeleftthai;F888
    saraueethai;0E37
    saraueleftthai;F887
    sarauethai;0E36
    sarauthai;0E38
    sarauuthai;0E39
    sbopomofo;3119
    scaron;0161
    scarondotaccent;1E67
    scedilla;015F
    schwa;0259
    schwacyrillic;04D9
    schwadieresiscyrillic;04DB
    schwahook;025A
    scircle;24E2
    scircumflex;015D
    scommaaccent;0219
    sdotaccent;1E61
    sdotbelow;1E63
    sdotbelowdotaccent;1E69
    seagullbelowcmb;033C
    second;2033
    secondtonechinese;02CA
    section;00A7
    seenarabic;0633
    seenfinalarabic;FEB2
    seeninitialarabic;FEB3
    seenmedialarabic;FEB4
    segol;05B6
    segol13;05B6
    segol1f;05B6
    segol2c;05B6
    segolhebrew;05B6
    segolnarrowhebrew;05B6
    segolquarterhebrew;05B6
    segoltahebrew;0592
    segolwidehebrew;05B6
    seharmenian;057D
    sehiragana;305B
    sekatakana;30BB
    sekatakanahalfwidth;FF7E
    semicolon;003B
    semicolonarabic;061B
    semicolonmonospace;FF1B
    semicolonsmall;FE54
    semivoicedmarkkana;309C
    semivoicedmarkkanahalfwidth;FF9F
    sentisquare;3322
    sentosquare;3323
    seven;0037
    sevenarabic;0667
    sevenbengali;09ED
    sevencircle;2466
    sevencircleinversesansserif;2790
    sevendeva;096D
    seveneighths;215E
    sevengujarati;0AED
    sevengurmukhi;0A6D
    sevenhackarabic;0667
    sevenhangzhou;3027
    sevenideographicparen;3226
    seveninferior;2087
    sevenmonospace;FF17
    sevenoldstyle;F737
    sevenparen;247A
    sevenperiod;248E
    sevenpersian;06F7
    sevenroman;2176
    sevensuperior;2077
    seventeencircle;2470
    seventeenparen;2484
    seventeenperiod;2498
    seventhai;0E57
    sfthyphen;00AD
    shaarmenian;0577
    shabengali;09B6
    shacyrillic;0448
    shaddaarabic;0651
    shaddadammaarabic;FC61
    shaddadammatanarabic;FC5E
    shaddafathaarabic;FC60
    shaddafathatanarabic;0651 064B
    shaddakasraarabic;FC62
    shaddakasratanarabic;FC5F
    shade;2592
    shadedark;2593
    shadelight;2591
    shademedium;2592
    shadeva;0936
    shagujarati;0AB6
    shagurmukhi;0A36
    shalshelethebrew;0593
    shbopomofo;3115
    shchacyrillic;0449
    sheenarabic;0634
    sheenfinalarabic;FEB6
    sheeninitialarabic;FEB7
    sheenmedialarabic;FEB8
    sheicoptic;03E3
    sheqel;20AA
    sheqelhebrew;20AA
    sheva;05B0
    sheva115;05B0
    sheva15;05B0
    sheva22;05B0
    sheva2e;05B0
    shevahebrew;05B0
    shevanarrowhebrew;05B0
    shevaquarterhebrew;05B0
    shevawidehebrew;05B0
    shhacyrillic;04BB
    shimacoptic;03ED
    shin;05E9
    shindagesh;FB49
    shindageshhebrew;FB49
    shindageshshindot;FB2C
    shindageshshindothebrew;FB2C
    shindageshsindot;FB2D
    shindageshsindothebrew;FB2D
    shindothebrew;05C1
    shinhebrew;05E9
    shinshindot;FB2A
    shinshindothebrew;FB2A
    shinsindot;FB2B
    shinsindothebrew;FB2B
    shook;0282
    sigma;03C3
    sigma1;03C2
    sigmafinal;03C2
    sigmalunatesymbolgreek;03F2
    sihiragana;3057
    sikatakana;30B7
    sikatakanahalfwidth;FF7C
    siluqhebrew;05BD
    siluqlefthebrew;05BD
    similar;223C
    sindothebrew;05C2
    siosacirclekorean;3274
    siosaparenkorean;3214
    sioscieuckorean;317E
    sioscirclekorean;3266
    sioskiyeokkorean;317A
    sioskorean;3145
    siosnieunkorean;317B
    siosparenkorean;3206
    siospieupkorean;317D
    siostikeutkorean;317C
    six;0036
    sixarabic;0666
    sixbengali;09EC
    sixcircle;2465
    sixcircleinversesansserif;278F
    sixdeva;096C
    sixgujarati;0AEC
    sixgurmukhi;0A6C
    sixhackarabic;0666
    sixhangzhou;3026
    sixideographicparen;3225
    sixinferior;2086
    sixmonospace;FF16
    sixoldstyle;F736
    sixparen;2479
    sixperiod;248D
    sixpersian;06F6
    sixroman;2175
    sixsuperior;2076
    sixteencircle;246F
    sixteencurrencydenominatorbengali;09F9
    sixteenparen;2483
    sixteenperiod;2497
    sixthai;0E56
    slash;002F
    slashmonospace;FF0F
    slong;017F
    slongdotaccent;1E9B
    smileface;263A
    smonospace;FF53
    sofpasuqhebrew;05C3
    softhyphen;00AD
    softsigncyrillic;044C
    sohiragana;305D
    sokatakana;30BD
    sokatakanahalfwidth;FF7F
    soliduslongoverlaycmb;0338
    solidusshortoverlaycmb;0337
    sorusithai;0E29
    sosalathai;0E28
    sosothai;0E0B
    sosuathai;0E2A
    space;0020
    spacehackarabic;0020
    spade;2660
    spadesuitblack;2660
    spadesuitwhite;2664
    sparen;24AE
    squarebelowcmb;033B
    squarecc;33C4
    squarecm;339D
    squarediagonalcrosshatchfill;25A9
    squarehorizontalfill;25A4
    squarekg;338F
    squarekm;339E
    squarekmcapital;33CE
    squareln;33D1
    squarelog;33D2
    squaremg;338E
    squaremil;33D5
    squaremm;339C
    squaremsquared;33A1
    squareorthogonalcrosshatchfill;25A6
    squareupperlefttolowerrightfill;25A7
    squareupperrighttolowerleftfill;25A8
    squareverticalfill;25A5
    squarewhitewithsmallblack;25A3
    srsquare;33DB
    ssabengali;09B7
    ssadeva;0937
    ssagujarati;0AB7
    ssangcieuckorean;3149
    ssanghieuhkorean;3185
    ssangieungkorean;3180
    ssangkiyeokkorean;3132
    ssangnieunkorean;3165
    ssangpieupkorean;3143
    ssangsioskorean;3146
    ssangtikeutkorean;3138
    ssuperior;F6F2
    sterling;00A3
    sterlingmonospace;FFE1
    strokelongoverlaycmb;0336
    strokeshortoverlaycmb;0335
    subset;2282
    subsetnotequal;228A
    subsetorequal;2286
    succeeds;227B
    suchthat;220B
    suhiragana;3059
    sukatakana;30B9
    sukatakanahalfwidth;FF7D
    sukunarabic;0652
    summation;2211
    sun;263C
    superset;2283
    supersetnotequal;228B
    supersetorequal;2287
    svsquare;33DC
    syouwaerasquare;337C
    t;0074
    tabengali;09A4
    tackdown;22A4
    tackleft;22A3
    tadeva;0924
    tagujarati;0AA4
    tagurmukhi;0A24
    taharabic;0637
    tahfinalarabic;FEC2
    tahinitialarabic;FEC3
    tahiragana;305F
    tahmedialarabic;FEC4
    taisyouerasquare;337D
    takatakana;30BF
    takatakanahalfwidth;FF80
    tatweelarabic;0640
    tau;03C4
    tav;05EA
    tavdages;FB4A
    tavdagesh;FB4A
    tavdageshhebrew;FB4A
    tavhebrew;05EA
    tbar;0167
    tbopomofo;310A
    tcaron;0165
    tccurl;02A8
    tcedilla;0163
    tcheharabic;0686
    tchehfinalarabic;FB7B
    tchehinitialarabic;FB7C
    tchehmedialarabic;FB7D
    tchehmeeminitialarabic;FB7C FEE4
    tcircle;24E3
    tcircumflexbelow;1E71
    tcommaaccent;0163
    tdieresis;1E97
    tdotaccent;1E6B
    tdotbelow;1E6D
    tecyrillic;0442
    tedescendercyrillic;04AD
    teharabic;062A
    tehfinalarabic;FE96
    tehhahinitialarabic;FCA2
    tehhahisolatedarabic;FC0C
    tehinitialarabic;FE97
    tehiragana;3066
    tehjeeminitialarabic;FCA1
    tehjeemisolatedarabic;FC0B
    tehmarbutaarabic;0629
    tehmarbutafinalarabic;FE94
    tehmedialarabic;FE98
    tehmeeminitialarabic;FCA4
    tehmeemisolatedarabic;FC0E
    tehnoonfinalarabic;FC73
    tekatakana;30C6
    tekatakanahalfwidth;FF83
    telephone;2121
    telephoneblack;260E
    telishagedolahebrew;05A0
    telishaqetanahebrew;05A9
    tencircle;2469
    tenideographicparen;3229
    tenparen;247D
    tenperiod;2491
    tenroman;2179
    tesh;02A7
    tet;05D8
    tetdagesh;FB38
    tetdageshhebrew;FB38
    tethebrew;05D8
    tetsecyrillic;04B5
    tevirhebrew;059B
    tevirlefthebrew;059B
    thabengali;09A5
    thadeva;0925
    thagujarati;0AA5
    thagurmukhi;0A25
    thalarabic;0630
    thalfinalarabic;FEAC
    thanthakhatlowleftthai;F898
    thanthakhatlowrightthai;F897
    thanthakhatthai;0E4C
    thanthakhatupperleftthai;F896
    theharabic;062B
    thehfinalarabic;FE9A
    thehinitialarabic;FE9B
    thehmedialarabic;FE9C
    thereexists;2203
    therefore;2234
    theta;03B8
    theta1;03D1
    thetasymbolgreek;03D1
    thieuthacirclekorean;3279
    thieuthaparenkorean;3219
    thieuthcirclekorean;326B
    thieuthkorean;314C
    thieuthparenkorean;320B
    thirteencircle;246C
    thirteenparen;2480
    thirteenperiod;2494
    thonangmonthothai;0E11
    thook;01AD
    thophuthaothai;0E12
    thorn;00FE
    thothahanthai;0E17
    thothanthai;0E10
    thothongthai;0E18
    thothungthai;0E16
    thousandcyrillic;0482
    thousandsseparatorarabic;066C
    thousandsseparatorpersian;066C
    three;0033
    threearabic;0663
    threebengali;09E9
    threecircle;2462
    threecircleinversesansserif;278C
    threedeva;0969
    threeeighths;215C
    threegujarati;0AE9
    threegurmukhi;0A69
    threehackarabic;0663
    threehangzhou;3023
    threeideographicparen;3222
    threeinferior;2083
    threemonospace;FF13
    threenumeratorbengali;09F6
    threeoldstyle;F733
    threeparen;2476
    threeperiod;248A
    threepersian;06F3
    threequarters;00BE
    threequartersemdash;F6DE
    threeroman;2172
    threesuperior;00B3
    threethai;0E53
    thzsquare;3394
    tihiragana;3061
    tikatakana;30C1
    tikatakanahalfwidth;FF81
    tikeutacirclekorean;3270
    tikeutaparenkorean;3210
    tikeutcirclekorean;3262
    tikeutkorean;3137
    tikeutparenkorean;3202
    tilde;02DC
    tildebelowcmb;0330
    tildecmb;0303
    tildecomb;0303
    tildedoublecmb;0360
    tildeoperator;223C
    tildeoverlaycmb;0334
    tildeverticalcmb;033E
    timescircle;2297
    tipehahebrew;0596
    tipehalefthebrew;0596
    tippigurmukhi;0A70
    titlocyrilliccmb;0483
    tiwnarmenian;057F
    tlinebelow;1E6F
    tmonospace;FF54
    toarmenian;0569
    tohiragana;3068
    tokatakana;30C8
    tokatakanahalfwidth;FF84
    tonebarextrahighmod;02E5
    tonebarextralowmod;02E9
    tonebarhighmod;02E6
    tonebarlowmod;02E8
    tonebarmidmod;02E7
    tonefive;01BD
    tonesix;0185
    tonetwo;01A8
    tonos;0384
    tonsquare;3327
    topatakthai;0E0F
    tortoiseshellbracketleft;3014
    tortoiseshellbracketleftsmall;FE5D
    tortoiseshellbracketleftvertical;FE39
    tortoiseshellbracketright;3015
    tortoiseshellbracketrightsmall;FE5E
    tortoiseshellbracketrightvertical;FE3A
    totaothai;0E15
    tpalatalhook;01AB
    tparen;24AF
    trademark;2122
    trademarksans;F8EA
    trademarkserif;F6DB
    tretroflexhook;0288
    triagdn;25BC
    triaglf;25C4
    triagrt;25BA
    triagup;25B2
    ts;02A6
    tsadi;05E6
    tsadidagesh;FB46
    tsadidageshhebrew;FB46
    tsadihebrew;05E6
    tsecyrillic;0446
    tsere;05B5
    tsere12;05B5
    tsere1e;05B5
    tsere2b;05B5
    tserehebrew;05B5
    tserenarrowhebrew;05B5
    tserequarterhebrew;05B5
    tserewidehebrew;05B5
    tshecyrillic;045B
    tsuperior;F6F3
    ttabengali;099F
    ttadeva;091F
    ttagujarati;0A9F
    ttagurmukhi;0A1F
    tteharabic;0679
    ttehfinalarabic;FB67
    ttehinitialarabic;FB68
    ttehmedialarabic;FB69
    tthabengali;09A0
    tthadeva;0920
    tthagujarati;0AA0
    tthagurmukhi;0A20
    tturned;0287
    tuhiragana;3064
    tukatakana;30C4
    tukatakanahalfwidth;FF82
    tusmallhiragana;3063
    tusmallkatakana;30C3
    tusmallkatakanahalfwidth;FF6F
    twelvecircle;246B
    twelveparen;247F
    twelveperiod;2493
    twelveroman;217B
    twentycircle;2473
    twentyhangzhou;5344
    twentyparen;2487
    twentyperiod;249B
    two;0032
    twoarabic;0662
    twobengali;09E8
    twocircle;2461
    twocircleinversesansserif;278B
    twodeva;0968
    twodotenleader;2025
    twodotleader;2025
    twodotleadervertical;FE30
    twogujarati;0AE8
    twogurmukhi;0A68
    twohackarabic;0662
    twohangzhou;3022
    twoideographicparen;3221
    twoinferior;2082
    twomonospace;FF12
    twonumeratorbengali;09F5
    twooldstyle;F732
    twoparen;2475
    twoperiod;2489
    twopersian;06F2
    tworoman;2171
    twostroke;01BB
    twosuperior;00B2
    twothai;0E52
    twothirds;2154
    u;0075
    uacute;00FA
    ubar;0289
    ubengali;0989
    ubopomofo;3128
    ubreve;016D
    ucaron;01D4
    ucircle;24E4
    ucircumflex;00FB
    ucircumflexbelow;1E77
    ucyrillic;0443
    udattadeva;0951
    udblacute;0171
    udblgrave;0215
    udeva;0909
    udieresis;00FC
    udieresisacute;01D8
    udieresisbelow;1E73
    udieresiscaron;01DA
    udieresiscyrillic;04F1
    udieresisgrave;01DC
    udieresismacron;01D6
    udotbelow;1EE5
    ugrave;00F9
    ugujarati;0A89
    ugurmukhi;0A09
    uhiragana;3046
    uhookabove;1EE7
    uhorn;01B0
    uhornacute;1EE9
    uhorndotbelow;1EF1
    uhorngrave;1EEB
    uhornhookabove;1EED
    uhorntilde;1EEF
    uhungarumlaut;0171
    uhungarumlautcyrillic;04F3
    uinvertedbreve;0217
    ukatakana;30A6
    ukatakanahalfwidth;FF73
    ukcyrillic;0479
    ukorean;315C
    umacron;016B
    umacroncyrillic;04EF
    umacrondieresis;1E7B
    umatragurmukhi;0A41
    umonospace;FF55
    underscore;005F
    underscoredbl;2017
    underscoremonospace;FF3F
    underscorevertical;FE33
    underscorewavy;FE4F
    union;222A
    universal;2200
    uogonek;0173
    uparen;24B0
    upblock;2580
    upperdothebrew;05C4
    upsilon;03C5
    upsilondieresis;03CB
    upsilondieresistonos;03B0
    upsilonlatin;028A
    upsilontonos;03CD
    uptackbelowcmb;031D
    uptackmod;02D4
    uragurmukhi;0A73
    uring;016F
    ushortcyrillic;045E
    usmallhiragana;3045
    usmallkatakana;30A5
    usmallkatakanahalfwidth;FF69
    ustraightcyrillic;04AF
    ustraightstrokecyrillic;04B1
    utilde;0169
    utildeacute;1E79
    utildebelow;1E75
    uubengali;098A
    uudeva;090A
    uugujarati;0A8A
    uugurmukhi;0A0A
    uumatragurmukhi;0A42
    uuvowelsignbengali;09C2
    uuvowelsigndeva;0942
    uuvowelsigngujarati;0AC2
    uvowelsignbengali;09C1
    uvowelsigndeva;0941
    uvowelsigngujarati;0AC1
    v;0076
    vadeva;0935
    vagujarati;0AB5
    vagurmukhi;0A35
    vakatakana;30F7
    vav;05D5
    vavdagesh;FB35
    vavdagesh65;FB35
    vavdageshhebrew;FB35
    vavhebrew;05D5
    vavholam;FB4B
    vavholamhebrew;FB4B
    vavvavhebrew;05F0
    vavyodhebrew;05F1
    vcircle;24E5
    vdotbelow;1E7F
    vecyrillic;0432
    veharabic;06A4
    vehfinalarabic;FB6B
    vehinitialarabic;FB6C
    vehmedialarabic;FB6D
    vekatakana;30F9
    venus;2640
    verticalbar;007C
    verticallineabovecmb;030D
    verticallinebelowcmb;0329
    verticallinelowmod;02CC
    verticallinemod;02C8
    vewarmenian;057E
    vhook;028B
    vikatakana;30F8
    viramabengali;09CD
    viramadeva;094D
    viramagujarati;0ACD
    visargabengali;0983
    visargadeva;0903
    visargagujarati;0A83
    vmonospace;FF56
    voarmenian;0578
    voicediterationhiragana;309E
    voicediterationkatakana;30FE
    voicedmarkkana;309B
    voicedmarkkanahalfwidth;FF9E
    vokatakana;30FA
    vparen;24B1
    vtilde;1E7D
    vturned;028C
    vuhiragana;3094
    vukatakana;30F4
    w;0077
    wacute;1E83
    waekorean;3159
    wahiragana;308F
    wakatakana;30EF
    wakatakanahalfwidth;FF9C
    wakorean;3158
    wasmallhiragana;308E
    wasmallkatakana;30EE
    wattosquare;3357
    wavedash;301C
    wavyunderscorevertical;FE34
    wawarabic;0648
    wawfinalarabic;FEEE
    wawhamzaabovearabic;0624
    wawhamzaabovefinalarabic;FE86
    wbsquare;33DD
    wcircle;24E6
    wcircumflex;0175
    wdieresis;1E85
    wdotaccent;1E87
    wdotbelow;1E89
    wehiragana;3091
    weierstrass;2118
    wekatakana;30F1
    wekorean;315E
    weokorean;315D
    wgrave;1E81
    whitebullet;25E6
    whitecircle;25CB
    whitecircleinverse;25D9
    whitecornerbracketleft;300E
    whitecornerbracketleftvertical;FE43
    whitecornerbracketright;300F
    whitecornerbracketrightvertical;FE44
    whitediamond;25C7
    whitediamondcontainingblacksmalldiamond;25C8
    whitedownpointingsmalltriangle;25BF
    whitedownpointingtriangle;25BD
    whiteleftpointingsmalltriangle;25C3
    whiteleftpointingtriangle;25C1
    whitelenticularbracketleft;3016
    whitelenticularbracketright;3017
    whiterightpointingsmalltriangle;25B9
    whiterightpointingtriangle;25B7
    whitesmallsquare;25AB
    whitesmilingface;263A
    whitesquare;25A1
    whitestar;2606
    whitetelephone;260F
    whitetortoiseshellbracketleft;3018
    whitetortoiseshellbracketright;3019
    whiteuppointingsmalltriangle;25B5
    whiteuppointingtriangle;25B3
    wihiragana;3090
    wikatakana;30F0
    wikorean;315F
    wmonospace;FF57
    wohiragana;3092
    wokatakana;30F2
    wokatakanahalfwidth;FF66
    won;20A9
    wonmonospace;FFE6
    wowaenthai;0E27
    wparen;24B2
    wring;1E98
    wsuperior;02B7
    wturned;028D
    wynn;01BF
    x;0078
    xabovecmb;033D
    xbopomofo;3112
    xcircle;24E7
    xdieresis;1E8D
    xdotaccent;1E8B
    xeharmenian;056D
    xi;03BE
    xmonospace;FF58
    xparen;24B3
    xsuperior;02E3
    y;0079
    yaadosquare;334E
    yabengali;09AF
    yacute;00FD
    yadeva;092F
    yaekorean;3152
    yagujarati;0AAF
    yagurmukhi;0A2F
    yahiragana;3084
    yakatakana;30E4
    yakatakanahalfwidth;FF94
    yakorean;3151
    yamakkanthai;0E4E
    yasmallhiragana;3083
    yasmallkatakana;30E3
    yasmallkatakanahalfwidth;FF6C
    yatcyrillic;0463
    ycircle;24E8
    ycircumflex;0177
    ydieresis;00FF
    ydotaccent;1E8F
    ydotbelow;1EF5
    yeharabic;064A
    yehbarreearabic;06D2
    yehbarreefinalarabic;FBAF
    yehfinalarabic;FEF2
    yehhamzaabovearabic;0626
    yehhamzaabovefinalarabic;FE8A
    yehhamzaaboveinitialarabic;FE8B
    yehhamzaabovemedialarabic;FE8C
    yehinitialarabic;FEF3
    yehmedialarabic;FEF4
    yehmeeminitialarabic;FCDD
    yehmeemisolatedarabic;FC58
    yehnoonfinalarabic;FC94
    yehthreedotsbelowarabic;06D1
    yekorean;3156
    yen;00A5
    yenmonospace;FFE5
    yeokorean;3155
    yeorinhieuhkorean;3186
    yerahbenyomohebrew;05AA
    yerahbenyomolefthebrew;05AA
    yericyrillic;044B
    yerudieresiscyrillic;04F9
    yesieungkorean;3181
    yesieungpansioskorean;3183
    yesieungsioskorean;3182
    yetivhebrew;059A
    ygrave;1EF3
    yhook;01B4
    yhookabove;1EF7
    yiarmenian;0575
    yicyrillic;0457
    yikorean;3162
    yinyang;262F
    yiwnarmenian;0582
    ymonospace;FF59
    yod;05D9
    yoddagesh;FB39
    yoddageshhebrew;FB39
    yodhebrew;05D9
    yodyodhebrew;05F2
    yodyodpatahhebrew;FB1F
    yohiragana;3088
    yoikorean;3189
    yokatakana;30E8
    yokatakanahalfwidth;FF96
    yokorean;315B
    yosmallhiragana;3087
    yosmallkatakana;30E7
    yosmallkatakanahalfwidth;FF6E
    yotgreek;03F3
    yoyaekorean;3188
    yoyakorean;3187
    yoyakthai;0E22
    yoyingthai;0E0D
    yparen;24B4
    ypogegrammeni;037A
    ypogegrammenigreekcmb;0345
    yr;01A6
    yring;1E99
    ysuperior;02B8
    ytilde;1EF9
    yturned;028E
    yuhiragana;3086
    yuikorean;318C
    yukatakana;30E6
    yukatakanahalfwidth;FF95
    yukorean;3160
    yusbigcyrillic;046B
    yusbigiotifiedcyrillic;046D
    yuslittlecyrillic;0467
    yuslittleiotifiedcyrillic;0469
    yusmallhiragana;3085
    yusmallkatakana;30E5
    yusmallkatakanahalfwidth;FF6D
    yuyekorean;318B
    yuyeokorean;318A
    yyabengali;09DF
    yyadeva;095F
    z;007A
    zaarmenian;0566
    zacute;017A
    zadeva;095B
    zagurmukhi;0A5B
    zaharabic;0638
    zahfinalarabic;FEC6
    zahinitialarabic;FEC7
    zahiragana;3056
    zahmedialarabic;FEC8
    zainarabic;0632
    zainfinalarabic;FEB0
    zakatakana;30B6
    zaqefgadolhebrew;0595
    zaqefqatanhebrew;0594
    zarqahebrew;0598
    zayin;05D6
    zayindagesh;FB36
    zayindageshhebrew;FB36
    zayinhebrew;05D6
    zbopomofo;3117
    zcaron;017E
    zcircle;24E9
    zcircumflex;1E91
    zcurl;0291
    zdot;017C
    zdotaccent;017C
    zdotbelow;1E93
    zecyrillic;0437
    zedescendercyrillic;0499
    zedieresiscyrillic;04DF
    zehiragana;305C
    zekatakana;30BC
    zero;0030
    zeroarabic;0660
    zerobengali;09E6
    zerodeva;0966
    zerogujarati;0AE6
    zerogurmukhi;0A66
    zerohackarabic;0660
    zeroinferior;2080
    zeromonospace;FF10
    zerooldstyle;F730
    zeropersian;06F0
    zerosuperior;2070
    zerothai;0E50
    zerowidthjoiner;FEFF
    zerowidthnonjoiner;200C
    zerowidthspace;200B
    zeta;03B6
    zhbopomofo;3113
    zhearmenian;056A
    zhebrevecyrillic;04C2
    zhecyrillic;0436
    zhedescendercyrillic;0497
    zhedieresiscyrillic;04DD
    zihiragana;3058
    zikatakana;30B8
    zinorhebrew;05AE
    zlinebelow;1E95
    zmonospace;FF5A
    zohiragana;305E
    zokatakana;30BE
    zparen;24B5
    zretroflexhook;0290
    zstroke;01B6
    zuhiragana;305A
    zukatakana;30BA
    a100;275E
    a101;2761
    a102;2762
    a103;2763
    a104;2764
    a105;2710
    a106;2765
    a107;2766
    a108;2767
    a109;2660
    a10;2721
    a110;2665
    a111;2666
    a112;2663
    a117;2709
    a118;2708
    a119;2707
    a11;261B
    a120;2460
    a121;2461
    a122;2462
    a123;2463
    a124;2464
    a125;2465
    a126;2466
    a127;2467
    a128;2468
    a129;2469
    a12;261E
    a130;2776
    a131;2777
    a132;2778
    a133;2779
    a134;277A
    a135;277B
    a136;277C
    a137;277D
    a138;277E
    a139;277F
    a13;270C
    a140;2780
    a141;2781
    a142;2782
    a143;2783
    a144;2784
    a145;2785
    a146;2786
    a147;2787
    a148;2788
    a149;2789
    a14;270D
    a150;278A
    a151;278B
    a152;278C
    a153;278D
    a154;278E
    a155;278F
    a156;2790
    a157;2791
    a158;2792
    a159;2793
    a15;270E
    a160;2794
    a161;2192
    a162;27A3
    a163;2194
    a164;2195
    a165;2799
    a166;279B
    a167;279C
    a168;279D
    a169;279E
    a16;270F
    a170;279F
    a171;27A0
    a172;27A1
    a173;27A2
    a174;27A4
    a175;27A5
    a176;27A6
    a177;27A7
    a178;27A8
    a179;27A9
    a17;2711
    a180;27AB
    a181;27AD
    a182;27AF
    a183;27B2
    a184;27B3
    a185;27B5
    a186;27B8
    a187;27BA
    a188;27BB
    a189;27BC
    a18;2712
    a190;27BD
    a191;27BE
    a192;279A
    a193;27AA
    a194;27B6
    a195;27B9
    a196;2798
    a197;27B4
    a198;27B7
    a199;27AC
    a19;2713
    a1;2701
    a200;27AE
    a201;27B1
    a202;2703
    a203;2750
    a204;2752
    a205;276E
    a206;2770
    a20;2714
    a21;2715
    a22;2716
    a23;2717
    a24;2718
    a25;2719
    a26;271A
    a27;271B
    a28;271C
    a29;2722
    a2;2702
    a30;2723
    a31;2724
    a32;2725
    a33;2726
    a34;2727
    a35;2605
    a36;2729
    a37;272A
    a38;272B
    a39;272C
    a3;2704
    a40;272D
    a41;272E
    a42;272F
    a43;2730
    a44;2731
    a45;2732
    a46;2733
    a47;2734
    a48;2735
    a49;2736
    a4;260E
    a50;2737
    a51;2738
    a52;2739
    a53;273A
    a54;273B
    a55;273C
    a56;273D
    a57;273E
    a58;273F
    a59;2740
    a5;2706
    a60;2741
    a61;2742
    a62;2743
    a63;2744
    a64;2745
    a65;2746
    a66;2747
    a67;2748
    a68;2749
    a69;274A
    a6;271D
    a70;274B
    a71;25CF
    a72;274D
    a73;25A0
    a74;274F
    a75;2751
    a76;25B2
    a77;25BC
    a78;25C6
    a79;2756
    a7;271E
    a81;25D7
    a82;2758
    a83;2759
    a84;275A
    a85;276F
    a86;2771
    a87;2772
    a88;2773
    a89;2768
    a8;271F
    a90;2769
    a91;276C
    a92;276D
    a93;276A
    a94;276B
    a95;2774
    a96;2775
    a97;275B
    a98;275C
    a99;275D
    a9;2720
    """
    
    
    # string table management
    #
    class StringTable:
      def __init__( self, name_list, master_table_name ):
        self.names        = name_list
        self.master_table = master_table_name
        self.indices      = {}
        index             = 0
    
        for name in name_list:
          self.indices[name] = index
          index += len( name ) + 1
    
        self.total = index
    
      def dump( self, file ):
        write = file.write
        write( "#ifndef  DEFINE_PS_TABLES\n" )
        write( "#ifdef  __cplusplus\n" )
        write( '  extern "C"\n' )
        write( "#else\n" )
        write( "  extern\n" )
        write( "#endif\n" )
        write( "#endif\n" )
        write( "  const char  " + self.master_table +
               "[" + repr( self.total ) + "]\n" )
        write( "#ifdef  DEFINE_PS_TABLES\n" )
        write( "  =\n" )
        write( "  {\n" )
    
        line = ""
        for name in self.names:
          line += "    '"
          line += string.join( ( re.findall( ".", name ) ), "','" )
          line += "', 0,\n"
    
        write( line )
        write( "  }\n" )
        write( "#endif /* DEFINE_PS_TABLES */\n" )
        write( "  ;\n\n\n" )
    
      def dump_sublist( self, file, table_name, macro_name, sublist ):
        write = file.write
        write( "#define " + macro_name + "  " + repr( len( sublist ) ) + "\n\n" )
    
        write( "  /* Values are offsets into the `" +
               self.master_table + "' table */\n\n" )
        write( "#ifndef  DEFINE_PS_TABLES\n" )
        write( "#ifdef  __cplusplus\n" )
        write( '  extern "C"\n' )
        write( "#else\n" )
        write( "  extern\n" )
        write( "#endif\n" )
        write( "#endif\n" )
        write( "  const short  " + table_name +
               "[" + macro_name + "]\n" )
        write( "#ifdef  DEFINE_PS_TABLES\n" )
        write( "  =\n" )
        write( "  {\n" )
    
        line  = "    "
        comma = ""
        col   = 0
    
        for name in sublist:
          line += comma
          line += "%4d" % self.indices[name]
          col  += 1
          comma = ","
          if col == 14:
            col   = 0
            comma = ",\n    "
    
        write( line )
        write( "\n" )
        write( "  }\n" )
        write( "#endif /* DEFINE_PS_TABLES */\n" )
        write( "  ;\n\n\n" )
    
    
    # We now store the Adobe Glyph List in compressed form.  The list is put
    # into a data structure called `trie' (because it has a tree-like
    # appearance).  Consider, for example, that you want to store the
    # following name mapping:
    #
    #   A        => 1
    #   Aacute   => 6
    #   Abalon   => 2
    #   Abstract => 4
    #
    # It is possible to store the entries as follows.
    #
    #   A => 1
    #   |
    #   +-acute => 6
    #   |
    #   +-b
    #     |
    #     +-alon => 2
    #     |
    #     +-stract => 4
    #
    # We see that each node in the trie has:
    #
    # - one or more `letters'
    # - an optional value
    # - zero or more child nodes
    #
    # The first step is to call
    #
    #   root = StringNode( "", 0 )
    #   for word in map.values():
    #     root.add( word, map[word] )
    #
    # which creates a large trie where each node has only one children.
    #
    # Executing
    #
    #   root = root.optimize()
    #
    # optimizes the trie by merging the letters of successive nodes whenever
    # possible.
    #
    # Each node of the trie is stored as follows.
    #
    # - First the node's letter, according to the following scheme.  We
    #   use the fact that in the AGL no name contains character codes > 127.
    #
    #     name         bitsize     description
    #     ----------------------------------------------------------------
    #     notlast            1     Set to 1 if this is not the last letter
    #                              in the word.
    #     ascii              7     The letter's ASCII value.
    #
    # - The letter is followed by a children count and the value of the
    #   current key (if any).  Again we can do some optimization because all
    #   AGL entries are from the BMP; this means that 16 bits are sufficient
    #   to store its Unicode values.  Additionally, no node has more than
    #   127 children.
    #
    #     name         bitsize     description
    #     -----------------------------------------
    #     hasvalue           1     Set to 1 if a 16-bit Unicode value follows.
    #     num_children       7     Number of children.  Can be 0 only if
    #                              `hasvalue' is set to 1.
    #     value             16     Optional Unicode value.
    #
    # - A node is finished by a list of 16bit absolute offsets to the
    #   children, which must be sorted in increasing order of their first
    #   letter.
    #
    # For simplicity, all 16bit quantities are stored in big-endian order.
    #
    # The root node has first letter = 0, and no value.
    #
    class StringNode:
      def __init__( self, letter, value ):
        self.letter   = letter
        self.value    = value
        self.children = {}
    
      def __cmp__( self, other ):
        return ord( self.letter[0] ) - ord( other.letter[0] )
    
      def add( self, word, value ):
        if len( word ) == 0:
          self.value = value
          return
    
        letter = word[0]
        word   = word[1:]
    
        if self.children.has_key( letter ):
          child = self.children[letter]
        else:
          child = StringNode( letter, 0 )
          self.children[letter] = child
    
        child.add( word, value )
    
      def optimize( self ):
        # optimize all children first
        children      = self.children.values()
        self.children = {}
    
        for child in children:
          self.children[child.letter[0]] = child.optimize()
    
        # don't optimize if there's a value,
        # if we don't have any child or if we
        # have more than one child
        if ( self.value != 0 ) or ( not children ) or len( children ) > 1:
          return self
    
        child = children[0]
    
        self.letter  += child.letter
        self.value    = child.value
        self.children = child.children
    
        return self
    
      def dump_debug( self, write, margin ):
        # this is used during debugging
        line = margin + "+-"
        if len( self.letter ) == 0:
          line += "<NOLETTER>"
        else:
          line += self.letter
    
        if self.value:
          line += " => " + repr( self.value )
    
        write( line + "\n" )
    
        if self.children:
          margin += "| "
          for child in self.children.values():
            child.dump_debug( write, margin )
    
      def locate( self, index ):
        self.index = index
        if len( self.letter ) > 0:
          index += len( self.letter ) + 1
        else:
          index += 2
    
        if self.value != 0:
          index += 2
    
        children = self.children.values()
        children.sort()
    
        index += 2 * len( children )
        for child in children:
          index = child.locate( index )
    
        return index
    
      def store( self, storage ):
        # write the letters
        l = len( self.letter )
        if l == 0:
          storage += struct.pack( "B", 0 )
        else:
          for n in range( l ):
            val = ord( self.letter[n] )
            if n < l - 1:
              val += 128
            storage += struct.pack( "B", val )
    
        # write the count
        children = self.children.values()
        children.sort()
    
        count = len( children )
    
        if self.value != 0:
          storage += struct.pack( "!BH", count + 128, self.value )
        else:
          storage += struct.pack( "B", count )
    
        for child in children:
          storage += struct.pack( "!H", child.index )
    
        for child in children:
          storage = child.store( storage )
    
        return storage
    
    
    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[1] + ' - ' + fields[0]
          subfields = string.split( fields[1], ' ' )
          if len( subfields ) == 1:
            glyphs.append( fields[0] )
            values.append( fields[1] )
    
      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_encoding( file, encoding_name, encoding_list ):
      """dump a given encoding"""
    
      write = file.write
      write( "  /* the following are indices into the SID name table */\n" )
      write( "#ifndef  DEFINE_PS_TABLES\n" )
      write( "#ifdef  __cplusplus\n" )
      write( '  extern "C"\n' )
      write( "#else\n" )
      write( "  extern\n" )
      write( "#endif\n" )
      write( "#endif\n" )
      write( "  const unsigned short  " + encoding_name +
             "[" + repr( len( encoding_list ) ) + "]\n" )
      write( "#ifdef  DEFINE_PS_TABLES\n" )
      write( "  =\n" )
      write( "  {\n" )
    
      line  = "    "
      comma = ""
      col   = 0
      for value in encoding_list:
        line += comma
        line += "%3d" % value
        comma = ","
        col  += 1
        if col == 16:
          col = 0
          comma = ",\n    "
    
      write( line )
      write( "\n" )
      write( "  }\n" )
      write( "#endif /* DEFINE_PS_TABLES */\n" )
      write( "  ;\n\n\n" )
    
    
    def dump_array( the_array, write, array_name ):
      """dumps a given encoding"""
    
      write( "#ifndef  DEFINE_PS_TABLES\n" )
      write( "#ifdef  __cplusplus\n" )
      write( '  extern "C"\n' )
      write( "#else\n" )
      write( "  extern\n" )
      write( "#endif\n" )
      write( "#endif\n" )
      write( "  const unsigned char  " + array_name +
             "[" + repr( len( the_array ) ) + "L]\n" )
      write( "#ifdef  DEFINE_PS_TABLES\n" )
      write( "  =\n" )
      write( "  {\n" )
    
      line  = ""
      comma = "    "
      col   = 0
    
      for value in the_array:
        line += comma
        line += "%3d" % ord( value )
        comma = ","
        col  += 1
    
        if col == 16:
          col   = 0
          comma = ",\n    "
    
        if len( line ) > 1024:
          write( line )
          line = ""
    
      write( line )
      write( "\n" )
      write( "  }\n" )
      write( "#endif /* DEFINE_PS_TABLES */\n" )
      write( "  ;\n\n\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 the SID Standard Names.
      #
      mac_extras = filter_glyph_names( mac_standard_names, sid_standard_names )
    
      # `base_list' contains the 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 )
      base_list        = mac_extras + sid_standard_names
    
      write( "/***************************************************************************/\n" )
      write( "/*                                                                         */\n" )
    
      write( "/*  %-71s*/\n" % os.path.basename( sys.argv[1] ) )
    
      write( "/*                                                                         */\n" )
      write( "/*    PostScript glyph names.                                              */\n" )
      write( "/*                                                                         */\n" )
      write( "/*  Copyright 2005-2017 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)
      #
      st = StringTable( base_list, "ft_standard_glyph_names" )
    
      st.dump( file )
      st.dump_sublist( file, "ft_mac_names",
                       "FT_NUM_MAC_NAMES", mac_standard_names )
      st.dump_sublist( file, "ft_sid_names",
                       "FT_NUM_SID_NAMES", sid_standard_names )
    
      dump_encoding( file, "t1_standard_encoding", t1_standard_encoding )
      dump_encoding( file, "t1_expert_encoding", t1_expert_encoding )
    
      # dump the AGL in its compressed form
      #
      agl_glyphs, agl_values = adobe_glyph_values()
      dict = StringNode( "", 0 )
    
      for g in range( len( agl_glyphs ) ):
        dict.add( agl_glyphs[g], eval( "0x" + agl_values[g] ) )
    
      dict       = dict.optimize()
      dict_len   = dict.locate( 0 )
      dict_array = dict.store( "" )
    
      write( """\
      /*
       *  This table is a compressed version of the Adobe Glyph List (AGL),
       *  optimized for efficient searching.  It has been generated by the
       *  `glnames.py' python script located in the `src/tools' directory.
       *
       *  The lookup function to get the Unicode value for a given string
       *  is defined below the table.
       */
    
    #ifdef FT_CONFIG_OPTION_ADOBE_GLYPH_LIST
    
    """ )
    
      dump_array( dict_array, write, "ft_adobe_glyph_list" )
    
      # write the lookup routine now
      #
      write( """\
    #ifdef  DEFINE_PS_TABLES
      /*
       *  This function searches the compressed table efficiently.
       */
      static unsigned long
      ft_get_adobe_glyph_index( const char*  name,
                                const char*  limit )
      {
        int                   c = 0;
        int                   count, min, max;
        const unsigned char*  p = ft_adobe_glyph_list;
    
    
        if ( name == 0 || name >= limit )
          goto NotFound;
    
        c     = *name++;
        count = p[1];
        p    += 2;
    
        min = 0;
        max = count;
    
        while ( min < max )
        {
          int                   mid = ( min + max ) >> 1;
          const unsigned char*  q   = p + mid * 2;
          int                   c2;
    
    
          q = ft_adobe_glyph_list + ( ( (int)q[0] << 8 ) | q[1] );
    
          c2 = q[0] & 127;
          if ( c2 == c )
          {
            p = q;
            goto Found;
          }
          if ( c2 < c )
            min = mid + 1;
          else
            max = mid;
        }
        goto NotFound;
    
      Found:
        for (;;)
        {
          /* assert (*p & 127) == c */
    
          if ( name >= limit )
          {
            if ( (p[0] & 128) == 0 &&
                 (p[1] & 128) != 0 )
              return (unsigned long)( ( (int)p[2] << 8 ) | p[3] );
    
            goto NotFound;
          }
          c = *name++;
          if ( p[0] & 128 )
          {
            p++;
            if ( c != (p[0] & 127) )
              goto NotFound;
    
            continue;
          }
    
          p++;
          count = p[0] & 127;
          if ( p[0] & 128 )
            p += 2;
    
          p++;
    
          for ( ; count > 0; count--, p += 2 )
          {
            int                   offset = ( (int)p[0] << 8 ) | p[1];
            const unsigned char*  q      = ft_adobe_glyph_list + offset;
    
            if ( c == ( q[0] & 127 ) )
            {
              p = q;
              goto NextIter;
            }
          }
          goto NotFound;
    
        NextIter:
          ;
        }
    
      NotFound:
        return 0;
      }
    #endif /* DEFINE_PS_TABLES */
    
    #endif /* FT_CONFIG_OPTION_ADOBE_GLYPH_LIST */
    
    """ )
    
      if 0:  # generate unit test, or don't
        #
        # now write the unit test to check that everything works OK
        #
        write( "#ifdef TEST\n\n" )
    
        write( "static const char* const  the_names[] = {\n" )
        for name in agl_glyphs:
          write( '  "' + name + '",\n' )
        write( "  0\n};\n" )
    
        write( "static const unsigned long  the_values[] = {\n" )
        for val in agl_values:
          write( '  0x' + val + ',\n' )
        write( "  0\n};\n" )
    
        write( """
    #include <stdlib.h>
    #include <stdio.h>
    
      int
      main( void )
      {
        int                   result = 0;
        const char* const*    names  = the_names;
        const unsigned long*  values = the_values;
    
    
        for ( ; *names; names++, values++ )
        {
          const char*    name      = *names;
          unsigned long  reference = *values;
          unsigned long  value;
    
    
          value = ft_get_adobe_glyph_index( name, name + strlen( name ) );
          if ( value != reference )
          {
            result = 1;
            fprintf( stderr, "name '%s' => %04x instead of %04x\\n",
                             name, value, reference );
          }
        }
    
        return result;
      }
    """ )
    
        write( "#endif /* TEST */\n" )
    
      write("\n/* END */\n")
    
    
    # Now run the main routine
    #
    main()
    
    
    # END