1# The table below is taken from
2# http://www.adobe.com/devnet/opentype/archives/aglfn.txt
3
4from __future__ import print_function, division, absolute_import
5from fontTools.misc.py23 import *
6
7_aglText = """\
8# -----------------------------------------------------------
9# Copyright 2003, 2005-2008, 2010 Adobe Systems Incorporated.
10# All rights reserved.
11#
12# Redistribution and use in source and binary forms, with or
13# without modification, are permitted provided that the
14# following conditions are met:
15#
16# Redistributions of source code must retain the above
17# copyright notice, this list of conditions and the following
18# disclaimer.
19#
20# Redistributions in binary form must reproduce the above
21# copyright notice, this list of conditions and the following
22# disclaimer in the documentation and/or other materials
23# provided with the distribution.
24#
25# Neither the name of Adobe Systems Incorporated nor the names
26# of its contributors may be used to endorse or promote
27# products derived from this software without specific prior
28# written permission.
29#
30# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
31# CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
32# INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
33# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
34# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
35# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
36# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
37# NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
38# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
39# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
40# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
41# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
42# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
43# -----------------------------------------------------------
44# Name:          Adobe Glyph List For New Fonts
45# Table version: 1.7
46# Date:          November 6, 2008
47# URL:           http://sourceforge.net/adobe/aglfn/
48#
49# Description:
50#
51# AGLFN (Adobe Glyph List For New Fonts) provides a list of base glyph
52# names that are recommended for new fonts, which are compatible with
53# the AGL (Adobe Glyph List) Specification, and which should be used
54# as described in Section 6 of that document. AGLFN comprises the set
55# of glyph names from AGL that map via the AGL Specification rules to
56# the semantically correct UV (Unicode Value). For example, "Asmall"
57# is omitted because AGL maps this glyph name to the PUA (Private Use
58# Area) value U+F761, rather than to the UV that maps from the glyph
59# name "A." Also omitted is "ffi," because AGL maps this to the
60# Alphabetic Presentation Forms value U+FB03, rather than decomposing
61# it into the following sequence of three UVs: U+0066, U+0066, and
62# U+0069. The name "arrowvertex" has been omitted because this glyph
63# now has a real UV, and AGL is now incorrect in mapping it to the PUA
64# value U+F8E6. If you do not find an appropriate name for your glyph
65# in this list, then please refer to Section 6 of the AGL
66# Specification.
67#
68# Format: three semicolon-delimited fields:
69#   (1) Standard UV or CUS UV--four uppercase hexadecimal digits
70#   (2) Glyph name--upper/lowercase letters and digits
71#   (3) Character names: Unicode character names for standard UVs, and
72#       descriptive names for CUS UVs--uppercase letters, hyphen, and
73#       space
74#
75# The records are sorted by glyph name in increasing ASCII order,
76# entries with the same glyph name are sorted in decreasing priority
77# order, the UVs and Unicode character names are provided for
78# convenience, lines starting with "#" are comments, and blank lines
79# should be ignored.
80#
81# Revision History:
82#
83# 1.7 [6 November 2008]
84# - Reverted to the original 1.4 and earlier mappings for Delta,
85#   Omega, and mu.
86# - Removed mappings for "afii" names. These should now be assigned
87#   "uni" names.
88# - Removed mappings for "commaaccent" names. These should now be
89#   assigned "uni" names.
90#
91# 1.6 [30 January 2006]
92# - Completed work intended in 1.5.
93#
94# 1.5 [23 November 2005]
95# - Removed duplicated block at end of file.
96# - Changed mappings:
97#   2206;Delta;INCREMENT changed to 0394;Delta;GREEK CAPITAL LETTER DELTA
98#   2126;Omega;OHM SIGN changed to 03A9;Omega;GREEK CAPITAL LETTER OMEGA
99#   03BC;mu;MICRO SIGN changed to 03BC;mu;GREEK SMALL LETTER MU
100# - Corrected statement above about why "ffi" is omitted.
101#
102# 1.4 [24 September 2003]
103# - Changed version to 1.4, to avoid confusion with the AGL 1.3.
104# - Fixed spelling errors in the header.
105# - Fully removed "arrowvertex," as it is mapped only to a PUA Unicode
106#   value in some fonts.
107#
108# 1.1 [17 April 2003]
109# - Renamed [Tt]cedilla back to [Tt]commaaccent.
110#
111# 1.0 [31 January 2003]
112# - Original version.
113# - Derived from the AGLv1.2 by:
114#   removing the PUA area codes;
115#   removing duplicate Unicode mappings; and
116#   renaming "tcommaaccent" to "tcedilla" and "Tcommaaccent" to "Tcedilla"
117#
1180041;A;LATIN CAPITAL LETTER A
11900C6;AE;LATIN CAPITAL LETTER AE
12001FC;AEacute;LATIN CAPITAL LETTER AE WITH ACUTE
12100C1;Aacute;LATIN CAPITAL LETTER A WITH ACUTE
1220102;Abreve;LATIN CAPITAL LETTER A WITH BREVE
12300C2;Acircumflex;LATIN CAPITAL LETTER A WITH CIRCUMFLEX
12400C4;Adieresis;LATIN CAPITAL LETTER A WITH DIAERESIS
12500C0;Agrave;LATIN CAPITAL LETTER A WITH GRAVE
1260391;Alpha;GREEK CAPITAL LETTER ALPHA
1270386;Alphatonos;GREEK CAPITAL LETTER ALPHA WITH TONOS
1280100;Amacron;LATIN CAPITAL LETTER A WITH MACRON
1290104;Aogonek;LATIN CAPITAL LETTER A WITH OGONEK
13000C5;Aring;LATIN CAPITAL LETTER A WITH RING ABOVE
13101FA;Aringacute;LATIN CAPITAL LETTER A WITH RING ABOVE AND ACUTE
13200C3;Atilde;LATIN CAPITAL LETTER A WITH TILDE
1330042;B;LATIN CAPITAL LETTER B
1340392;Beta;GREEK CAPITAL LETTER BETA
1350043;C;LATIN CAPITAL LETTER C
1360106;Cacute;LATIN CAPITAL LETTER C WITH ACUTE
137010C;Ccaron;LATIN CAPITAL LETTER C WITH CARON
13800C7;Ccedilla;LATIN CAPITAL LETTER C WITH CEDILLA
1390108;Ccircumflex;LATIN CAPITAL LETTER C WITH CIRCUMFLEX
140010A;Cdotaccent;LATIN CAPITAL LETTER C WITH DOT ABOVE
14103A7;Chi;GREEK CAPITAL LETTER CHI
1420044;D;LATIN CAPITAL LETTER D
143010E;Dcaron;LATIN CAPITAL LETTER D WITH CARON
1440110;Dcroat;LATIN CAPITAL LETTER D WITH STROKE
1452206;Delta;INCREMENT
1460045;E;LATIN CAPITAL LETTER E
14700C9;Eacute;LATIN CAPITAL LETTER E WITH ACUTE
1480114;Ebreve;LATIN CAPITAL LETTER E WITH BREVE
149011A;Ecaron;LATIN CAPITAL LETTER E WITH CARON
15000CA;Ecircumflex;LATIN CAPITAL LETTER E WITH CIRCUMFLEX
15100CB;Edieresis;LATIN CAPITAL LETTER E WITH DIAERESIS
1520116;Edotaccent;LATIN CAPITAL LETTER E WITH DOT ABOVE
15300C8;Egrave;LATIN CAPITAL LETTER E WITH GRAVE
1540112;Emacron;LATIN CAPITAL LETTER E WITH MACRON
155014A;Eng;LATIN CAPITAL LETTER ENG
1560118;Eogonek;LATIN CAPITAL LETTER E WITH OGONEK
1570395;Epsilon;GREEK CAPITAL LETTER EPSILON
1580388;Epsilontonos;GREEK CAPITAL LETTER EPSILON WITH TONOS
1590397;Eta;GREEK CAPITAL LETTER ETA
1600389;Etatonos;GREEK CAPITAL LETTER ETA WITH TONOS
16100D0;Eth;LATIN CAPITAL LETTER ETH
16220AC;Euro;EURO SIGN
1630046;F;LATIN CAPITAL LETTER F
1640047;G;LATIN CAPITAL LETTER G
1650393;Gamma;GREEK CAPITAL LETTER GAMMA
166011E;Gbreve;LATIN CAPITAL LETTER G WITH BREVE
16701E6;Gcaron;LATIN CAPITAL LETTER G WITH CARON
168011C;Gcircumflex;LATIN CAPITAL LETTER G WITH CIRCUMFLEX
1690120;Gdotaccent;LATIN CAPITAL LETTER G WITH DOT ABOVE
1700048;H;LATIN CAPITAL LETTER H
17125CF;H18533;BLACK CIRCLE
17225AA;H18543;BLACK SMALL SQUARE
17325AB;H18551;WHITE SMALL SQUARE
17425A1;H22073;WHITE SQUARE
1750126;Hbar;LATIN CAPITAL LETTER H WITH STROKE
1760124;Hcircumflex;LATIN CAPITAL LETTER H WITH CIRCUMFLEX
1770049;I;LATIN CAPITAL LETTER I
1780132;IJ;LATIN CAPITAL LIGATURE IJ
17900CD;Iacute;LATIN CAPITAL LETTER I WITH ACUTE
180012C;Ibreve;LATIN CAPITAL LETTER I WITH BREVE
18100CE;Icircumflex;LATIN CAPITAL LETTER I WITH CIRCUMFLEX
18200CF;Idieresis;LATIN CAPITAL LETTER I WITH DIAERESIS
1830130;Idotaccent;LATIN CAPITAL LETTER I WITH DOT ABOVE
1842111;Ifraktur;BLACK-LETTER CAPITAL I
18500CC;Igrave;LATIN CAPITAL LETTER I WITH GRAVE
186012A;Imacron;LATIN CAPITAL LETTER I WITH MACRON
187012E;Iogonek;LATIN CAPITAL LETTER I WITH OGONEK
1880399;Iota;GREEK CAPITAL LETTER IOTA
18903AA;Iotadieresis;GREEK CAPITAL LETTER IOTA WITH DIALYTIKA
190038A;Iotatonos;GREEK CAPITAL LETTER IOTA WITH TONOS
1910128;Itilde;LATIN CAPITAL LETTER I WITH TILDE
192004A;J;LATIN CAPITAL LETTER J
1930134;Jcircumflex;LATIN CAPITAL LETTER J WITH CIRCUMFLEX
194004B;K;LATIN CAPITAL LETTER K
195039A;Kappa;GREEK CAPITAL LETTER KAPPA
196004C;L;LATIN CAPITAL LETTER L
1970139;Lacute;LATIN CAPITAL LETTER L WITH ACUTE
198039B;Lambda;GREEK CAPITAL LETTER LAMDA
199013D;Lcaron;LATIN CAPITAL LETTER L WITH CARON
200013F;Ldot;LATIN CAPITAL LETTER L WITH MIDDLE DOT
2010141;Lslash;LATIN CAPITAL LETTER L WITH STROKE
202004D;M;LATIN CAPITAL LETTER M
203039C;Mu;GREEK CAPITAL LETTER MU
204004E;N;LATIN CAPITAL LETTER N
2050143;Nacute;LATIN CAPITAL LETTER N WITH ACUTE
2060147;Ncaron;LATIN CAPITAL LETTER N WITH CARON
20700D1;Ntilde;LATIN CAPITAL LETTER N WITH TILDE
208039D;Nu;GREEK CAPITAL LETTER NU
209004F;O;LATIN CAPITAL LETTER O
2100152;OE;LATIN CAPITAL LIGATURE OE
21100D3;Oacute;LATIN CAPITAL LETTER O WITH ACUTE
212014E;Obreve;LATIN CAPITAL LETTER O WITH BREVE
21300D4;Ocircumflex;LATIN CAPITAL LETTER O WITH CIRCUMFLEX
21400D6;Odieresis;LATIN CAPITAL LETTER O WITH DIAERESIS
21500D2;Ograve;LATIN CAPITAL LETTER O WITH GRAVE
21601A0;Ohorn;LATIN CAPITAL LETTER O WITH HORN
2170150;Ohungarumlaut;LATIN CAPITAL LETTER O WITH DOUBLE ACUTE
218014C;Omacron;LATIN CAPITAL LETTER O WITH MACRON
2192126;Omega;OHM SIGN
220038F;Omegatonos;GREEK CAPITAL LETTER OMEGA WITH TONOS
221039F;Omicron;GREEK CAPITAL LETTER OMICRON
222038C;Omicrontonos;GREEK CAPITAL LETTER OMICRON WITH TONOS
22300D8;Oslash;LATIN CAPITAL LETTER O WITH STROKE
22401FE;Oslashacute;LATIN CAPITAL LETTER O WITH STROKE AND ACUTE
22500D5;Otilde;LATIN CAPITAL LETTER O WITH TILDE
2260050;P;LATIN CAPITAL LETTER P
22703A6;Phi;GREEK CAPITAL LETTER PHI
22803A0;Pi;GREEK CAPITAL LETTER PI
22903A8;Psi;GREEK CAPITAL LETTER PSI
2300051;Q;LATIN CAPITAL LETTER Q
2310052;R;LATIN CAPITAL LETTER R
2320154;Racute;LATIN CAPITAL LETTER R WITH ACUTE
2330158;Rcaron;LATIN CAPITAL LETTER R WITH CARON
234211C;Rfraktur;BLACK-LETTER CAPITAL R
23503A1;Rho;GREEK CAPITAL LETTER RHO
2360053;S;LATIN CAPITAL LETTER S
237250C;SF010000;BOX DRAWINGS LIGHT DOWN AND RIGHT
2382514;SF020000;BOX DRAWINGS LIGHT UP AND RIGHT
2392510;SF030000;BOX DRAWINGS LIGHT DOWN AND LEFT
2402518;SF040000;BOX DRAWINGS LIGHT UP AND LEFT
241253C;SF050000;BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
242252C;SF060000;BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
2432534;SF070000;BOX DRAWINGS LIGHT UP AND HORIZONTAL
244251C;SF080000;BOX DRAWINGS LIGHT VERTICAL AND RIGHT
2452524;SF090000;BOX DRAWINGS LIGHT VERTICAL AND LEFT
2462500;SF100000;BOX DRAWINGS LIGHT HORIZONTAL
2472502;SF110000;BOX DRAWINGS LIGHT VERTICAL
2482561;SF190000;BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE
2492562;SF200000;BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE
2502556;SF210000;BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE
2512555;SF220000;BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE
2522563;SF230000;BOX DRAWINGS DOUBLE VERTICAL AND LEFT
2532551;SF240000;BOX DRAWINGS DOUBLE VERTICAL
2542557;SF250000;BOX DRAWINGS DOUBLE DOWN AND LEFT
255255D;SF260000;BOX DRAWINGS DOUBLE UP AND LEFT
256255C;SF270000;BOX DRAWINGS UP DOUBLE AND LEFT SINGLE
257255B;SF280000;BOX DRAWINGS UP SINGLE AND LEFT DOUBLE
258255E;SF360000;BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE
259255F;SF370000;BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE
260255A;SF380000;BOX DRAWINGS DOUBLE UP AND RIGHT
2612554;SF390000;BOX DRAWINGS DOUBLE DOWN AND RIGHT
2622569;SF400000;BOX DRAWINGS DOUBLE UP AND HORIZONTAL
2632566;SF410000;BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
2642560;SF420000;BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
2652550;SF430000;BOX DRAWINGS DOUBLE HORIZONTAL
266256C;SF440000;BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
2672567;SF450000;BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE
2682568;SF460000;BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE
2692564;SF470000;BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE
2702565;SF480000;BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE
2712559;SF490000;BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE
2722558;SF500000;BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE
2732552;SF510000;BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE
2742553;SF520000;BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE
275256B;SF530000;BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE
276256A;SF540000;BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE
277015A;Sacute;LATIN CAPITAL LETTER S WITH ACUTE
2780160;Scaron;LATIN CAPITAL LETTER S WITH CARON
279015E;Scedilla;LATIN CAPITAL LETTER S WITH CEDILLA
280015C;Scircumflex;LATIN CAPITAL LETTER S WITH CIRCUMFLEX
28103A3;Sigma;GREEK CAPITAL LETTER SIGMA
2820054;T;LATIN CAPITAL LETTER T
28303A4;Tau;GREEK CAPITAL LETTER TAU
2840166;Tbar;LATIN CAPITAL LETTER T WITH STROKE
2850164;Tcaron;LATIN CAPITAL LETTER T WITH CARON
2860398;Theta;GREEK CAPITAL LETTER THETA
28700DE;Thorn;LATIN CAPITAL LETTER THORN
2880055;U;LATIN CAPITAL LETTER U
28900DA;Uacute;LATIN CAPITAL LETTER U WITH ACUTE
290016C;Ubreve;LATIN CAPITAL LETTER U WITH BREVE
29100DB;Ucircumflex;LATIN CAPITAL LETTER U WITH CIRCUMFLEX
29200DC;Udieresis;LATIN CAPITAL LETTER U WITH DIAERESIS
29300D9;Ugrave;LATIN CAPITAL LETTER U WITH GRAVE
29401AF;Uhorn;LATIN CAPITAL LETTER U WITH HORN
2950170;Uhungarumlaut;LATIN CAPITAL LETTER U WITH DOUBLE ACUTE
296016A;Umacron;LATIN CAPITAL LETTER U WITH MACRON
2970172;Uogonek;LATIN CAPITAL LETTER U WITH OGONEK
29803A5;Upsilon;GREEK CAPITAL LETTER UPSILON
29903D2;Upsilon1;GREEK UPSILON WITH HOOK SYMBOL
30003AB;Upsilondieresis;GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA
301038E;Upsilontonos;GREEK CAPITAL LETTER UPSILON WITH TONOS
302016E;Uring;LATIN CAPITAL LETTER U WITH RING ABOVE
3030168;Utilde;LATIN CAPITAL LETTER U WITH TILDE
3040056;V;LATIN CAPITAL LETTER V
3050057;W;LATIN CAPITAL LETTER W
3061E82;Wacute;LATIN CAPITAL LETTER W WITH ACUTE
3070174;Wcircumflex;LATIN CAPITAL LETTER W WITH CIRCUMFLEX
3081E84;Wdieresis;LATIN CAPITAL LETTER W WITH DIAERESIS
3091E80;Wgrave;LATIN CAPITAL LETTER W WITH GRAVE
3100058;X;LATIN CAPITAL LETTER X
311039E;Xi;GREEK CAPITAL LETTER XI
3120059;Y;LATIN CAPITAL LETTER Y
31300DD;Yacute;LATIN CAPITAL LETTER Y WITH ACUTE
3140176;Ycircumflex;LATIN CAPITAL LETTER Y WITH CIRCUMFLEX
3150178;Ydieresis;LATIN CAPITAL LETTER Y WITH DIAERESIS
3161EF2;Ygrave;LATIN CAPITAL LETTER Y WITH GRAVE
317005A;Z;LATIN CAPITAL LETTER Z
3180179;Zacute;LATIN CAPITAL LETTER Z WITH ACUTE
319017D;Zcaron;LATIN CAPITAL LETTER Z WITH CARON
320017B;Zdotaccent;LATIN CAPITAL LETTER Z WITH DOT ABOVE
3210396;Zeta;GREEK CAPITAL LETTER ZETA
3220061;a;LATIN SMALL LETTER A
32300E1;aacute;LATIN SMALL LETTER A WITH ACUTE
3240103;abreve;LATIN SMALL LETTER A WITH BREVE
32500E2;acircumflex;LATIN SMALL LETTER A WITH CIRCUMFLEX
32600B4;acute;ACUTE ACCENT
3270301;acutecomb;COMBINING ACUTE ACCENT
32800E4;adieresis;LATIN SMALL LETTER A WITH DIAERESIS
32900E6;ae;LATIN SMALL LETTER AE
33001FD;aeacute;LATIN SMALL LETTER AE WITH ACUTE
33100E0;agrave;LATIN SMALL LETTER A WITH GRAVE
3322135;aleph;ALEF SYMBOL
33303B1;alpha;GREEK SMALL LETTER ALPHA
33403AC;alphatonos;GREEK SMALL LETTER ALPHA WITH TONOS
3350101;amacron;LATIN SMALL LETTER A WITH MACRON
3360026;ampersand;AMPERSAND
3372220;angle;ANGLE
3382329;angleleft;LEFT-POINTING ANGLE BRACKET
339232A;angleright;RIGHT-POINTING ANGLE BRACKET
3400387;anoteleia;GREEK ANO TELEIA
3410105;aogonek;LATIN SMALL LETTER A WITH OGONEK
3422248;approxequal;ALMOST EQUAL TO
34300E5;aring;LATIN SMALL LETTER A WITH RING ABOVE
34401FB;aringacute;LATIN SMALL LETTER A WITH RING ABOVE AND ACUTE
3452194;arrowboth;LEFT RIGHT ARROW
34621D4;arrowdblboth;LEFT RIGHT DOUBLE ARROW
34721D3;arrowdbldown;DOWNWARDS DOUBLE ARROW
34821D0;arrowdblleft;LEFTWARDS DOUBLE ARROW
34921D2;arrowdblright;RIGHTWARDS DOUBLE ARROW
35021D1;arrowdblup;UPWARDS DOUBLE ARROW
3512193;arrowdown;DOWNWARDS ARROW
3522190;arrowleft;LEFTWARDS ARROW
3532192;arrowright;RIGHTWARDS ARROW
3542191;arrowup;UPWARDS ARROW
3552195;arrowupdn;UP DOWN ARROW
35621A8;arrowupdnbse;UP DOWN ARROW WITH BASE
357005E;asciicircum;CIRCUMFLEX ACCENT
358007E;asciitilde;TILDE
359002A;asterisk;ASTERISK
3602217;asteriskmath;ASTERISK OPERATOR
3610040;at;COMMERCIAL AT
36200E3;atilde;LATIN SMALL LETTER A WITH TILDE
3630062;b;LATIN SMALL LETTER B
364005C;backslash;REVERSE SOLIDUS
365007C;bar;VERTICAL LINE
36603B2;beta;GREEK SMALL LETTER BETA
3672588;block;FULL BLOCK
368007B;braceleft;LEFT CURLY BRACKET
369007D;braceright;RIGHT CURLY BRACKET
370005B;bracketleft;LEFT SQUARE BRACKET
371005D;bracketright;RIGHT SQUARE BRACKET
37202D8;breve;BREVE
37300A6;brokenbar;BROKEN BAR
3742022;bullet;BULLET
3750063;c;LATIN SMALL LETTER C
3760107;cacute;LATIN SMALL LETTER C WITH ACUTE
37702C7;caron;CARON
37821B5;carriagereturn;DOWNWARDS ARROW WITH CORNER LEFTWARDS
379010D;ccaron;LATIN SMALL LETTER C WITH CARON
38000E7;ccedilla;LATIN SMALL LETTER C WITH CEDILLA
3810109;ccircumflex;LATIN SMALL LETTER C WITH CIRCUMFLEX
382010B;cdotaccent;LATIN SMALL LETTER C WITH DOT ABOVE
38300B8;cedilla;CEDILLA
38400A2;cent;CENT SIGN
38503C7;chi;GREEK SMALL LETTER CHI
38625CB;circle;WHITE CIRCLE
3872297;circlemultiply;CIRCLED TIMES
3882295;circleplus;CIRCLED PLUS
38902C6;circumflex;MODIFIER LETTER CIRCUMFLEX ACCENT
3902663;club;BLACK CLUB SUIT
391003A;colon;COLON
39220A1;colonmonetary;COLON SIGN
393002C;comma;COMMA
3942245;congruent;APPROXIMATELY EQUAL TO
39500A9;copyright;COPYRIGHT SIGN
39600A4;currency;CURRENCY SIGN
3970064;d;LATIN SMALL LETTER D
3982020;dagger;DAGGER
3992021;daggerdbl;DOUBLE DAGGER
400010F;dcaron;LATIN SMALL LETTER D WITH CARON
4010111;dcroat;LATIN SMALL LETTER D WITH STROKE
40200B0;degree;DEGREE SIGN
40303B4;delta;GREEK SMALL LETTER DELTA
4042666;diamond;BLACK DIAMOND SUIT
40500A8;dieresis;DIAERESIS
4060385;dieresistonos;GREEK DIALYTIKA TONOS
40700F7;divide;DIVISION SIGN
4082593;dkshade;DARK SHADE
4092584;dnblock;LOWER HALF BLOCK
4100024;dollar;DOLLAR SIGN
41120AB;dong;DONG SIGN
41202D9;dotaccent;DOT ABOVE
4130323;dotbelowcomb;COMBINING DOT BELOW
4140131;dotlessi;LATIN SMALL LETTER DOTLESS I
41522C5;dotmath;DOT OPERATOR
4160065;e;LATIN SMALL LETTER E
41700E9;eacute;LATIN SMALL LETTER E WITH ACUTE
4180115;ebreve;LATIN SMALL LETTER E WITH BREVE
419011B;ecaron;LATIN SMALL LETTER E WITH CARON
42000EA;ecircumflex;LATIN SMALL LETTER E WITH CIRCUMFLEX
42100EB;edieresis;LATIN SMALL LETTER E WITH DIAERESIS
4220117;edotaccent;LATIN SMALL LETTER E WITH DOT ABOVE
42300E8;egrave;LATIN SMALL LETTER E WITH GRAVE
4240038;eight;DIGIT EIGHT
4252208;element;ELEMENT OF
4262026;ellipsis;HORIZONTAL ELLIPSIS
4270113;emacron;LATIN SMALL LETTER E WITH MACRON
4282014;emdash;EM DASH
4292205;emptyset;EMPTY SET
4302013;endash;EN DASH
431014B;eng;LATIN SMALL LETTER ENG
4320119;eogonek;LATIN SMALL LETTER E WITH OGONEK
43303B5;epsilon;GREEK SMALL LETTER EPSILON
43403AD;epsilontonos;GREEK SMALL LETTER EPSILON WITH TONOS
435003D;equal;EQUALS SIGN
4362261;equivalence;IDENTICAL TO
437212E;estimated;ESTIMATED SYMBOL
43803B7;eta;GREEK SMALL LETTER ETA
43903AE;etatonos;GREEK SMALL LETTER ETA WITH TONOS
44000F0;eth;LATIN SMALL LETTER ETH
4410021;exclam;EXCLAMATION MARK
442203C;exclamdbl;DOUBLE EXCLAMATION MARK
44300A1;exclamdown;INVERTED EXCLAMATION MARK
4442203;existential;THERE EXISTS
4450066;f;LATIN SMALL LETTER F
4462640;female;FEMALE SIGN
4472012;figuredash;FIGURE DASH
44825A0;filledbox;BLACK SQUARE
44925AC;filledrect;BLACK RECTANGLE
4500035;five;DIGIT FIVE
451215D;fiveeighths;VULGAR FRACTION FIVE EIGHTHS
4520192;florin;LATIN SMALL LETTER F WITH HOOK
4530034;four;DIGIT FOUR
4542044;fraction;FRACTION SLASH
45520A3;franc;FRENCH FRANC SIGN
4560067;g;LATIN SMALL LETTER G
45703B3;gamma;GREEK SMALL LETTER GAMMA
458011F;gbreve;LATIN SMALL LETTER G WITH BREVE
45901E7;gcaron;LATIN SMALL LETTER G WITH CARON
460011D;gcircumflex;LATIN SMALL LETTER G WITH CIRCUMFLEX
4610121;gdotaccent;LATIN SMALL LETTER G WITH DOT ABOVE
46200DF;germandbls;LATIN SMALL LETTER SHARP S
4632207;gradient;NABLA
4640060;grave;GRAVE ACCENT
4650300;gravecomb;COMBINING GRAVE ACCENT
466003E;greater;GREATER-THAN SIGN
4672265;greaterequal;GREATER-THAN OR EQUAL TO
46800AB;guillemotleft;LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
46900BB;guillemotright;RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
4702039;guilsinglleft;SINGLE LEFT-POINTING ANGLE QUOTATION MARK
471203A;guilsinglright;SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
4720068;h;LATIN SMALL LETTER H
4730127;hbar;LATIN SMALL LETTER H WITH STROKE
4740125;hcircumflex;LATIN SMALL LETTER H WITH CIRCUMFLEX
4752665;heart;BLACK HEART SUIT
4760309;hookabovecomb;COMBINING HOOK ABOVE
4772302;house;HOUSE
47802DD;hungarumlaut;DOUBLE ACUTE ACCENT
479002D;hyphen;HYPHEN-MINUS
4800069;i;LATIN SMALL LETTER I
48100ED;iacute;LATIN SMALL LETTER I WITH ACUTE
482012D;ibreve;LATIN SMALL LETTER I WITH BREVE
48300EE;icircumflex;LATIN SMALL LETTER I WITH CIRCUMFLEX
48400EF;idieresis;LATIN SMALL LETTER I WITH DIAERESIS
48500EC;igrave;LATIN SMALL LETTER I WITH GRAVE
4860133;ij;LATIN SMALL LIGATURE IJ
487012B;imacron;LATIN SMALL LETTER I WITH MACRON
488221E;infinity;INFINITY
489222B;integral;INTEGRAL
4902321;integralbt;BOTTOM HALF INTEGRAL
4912320;integraltp;TOP HALF INTEGRAL
4922229;intersection;INTERSECTION
49325D8;invbullet;INVERSE BULLET
49425D9;invcircle;INVERSE WHITE CIRCLE
495263B;invsmileface;BLACK SMILING FACE
496012F;iogonek;LATIN SMALL LETTER I WITH OGONEK
49703B9;iota;GREEK SMALL LETTER IOTA
49803CA;iotadieresis;GREEK SMALL LETTER IOTA WITH DIALYTIKA
4990390;iotadieresistonos;GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS
50003AF;iotatonos;GREEK SMALL LETTER IOTA WITH TONOS
5010129;itilde;LATIN SMALL LETTER I WITH TILDE
502006A;j;LATIN SMALL LETTER J
5030135;jcircumflex;LATIN SMALL LETTER J WITH CIRCUMFLEX
504006B;k;LATIN SMALL LETTER K
50503BA;kappa;GREEK SMALL LETTER KAPPA
5060138;kgreenlandic;LATIN SMALL LETTER KRA
507006C;l;LATIN SMALL LETTER L
508013A;lacute;LATIN SMALL LETTER L WITH ACUTE
50903BB;lambda;GREEK SMALL LETTER LAMDA
510013E;lcaron;LATIN SMALL LETTER L WITH CARON
5110140;ldot;LATIN SMALL LETTER L WITH MIDDLE DOT
512003C;less;LESS-THAN SIGN
5132264;lessequal;LESS-THAN OR EQUAL TO
514258C;lfblock;LEFT HALF BLOCK
51520A4;lira;LIRA SIGN
5162227;logicaland;LOGICAL AND
51700AC;logicalnot;NOT SIGN
5182228;logicalor;LOGICAL OR
519017F;longs;LATIN SMALL LETTER LONG S
52025CA;lozenge;LOZENGE
5210142;lslash;LATIN SMALL LETTER L WITH STROKE
5222591;ltshade;LIGHT SHADE
523006D;m;LATIN SMALL LETTER M
52400AF;macron;MACRON
5252642;male;MALE SIGN
5262212;minus;MINUS SIGN
5272032;minute;PRIME
52800B5;mu;MICRO SIGN
52900D7;multiply;MULTIPLICATION SIGN
530266A;musicalnote;EIGHTH NOTE
531266B;musicalnotedbl;BEAMED EIGHTH NOTES
532006E;n;LATIN SMALL LETTER N
5330144;nacute;LATIN SMALL LETTER N WITH ACUTE
5340149;napostrophe;LATIN SMALL LETTER N PRECEDED BY APOSTROPHE
5350148;ncaron;LATIN SMALL LETTER N WITH CARON
5360039;nine;DIGIT NINE
5372209;notelement;NOT AN ELEMENT OF
5382260;notequal;NOT EQUAL TO
5392284;notsubset;NOT A SUBSET OF
54000F1;ntilde;LATIN SMALL LETTER N WITH TILDE
54103BD;nu;GREEK SMALL LETTER NU
5420023;numbersign;NUMBER SIGN
543006F;o;LATIN SMALL LETTER O
54400F3;oacute;LATIN SMALL LETTER O WITH ACUTE
545014F;obreve;LATIN SMALL LETTER O WITH BREVE
54600F4;ocircumflex;LATIN SMALL LETTER O WITH CIRCUMFLEX
54700F6;odieresis;LATIN SMALL LETTER O WITH DIAERESIS
5480153;oe;LATIN SMALL LIGATURE OE
54902DB;ogonek;OGONEK
55000F2;ograve;LATIN SMALL LETTER O WITH GRAVE
55101A1;ohorn;LATIN SMALL LETTER O WITH HORN
5520151;ohungarumlaut;LATIN SMALL LETTER O WITH DOUBLE ACUTE
553014D;omacron;LATIN SMALL LETTER O WITH MACRON
55403C9;omega;GREEK SMALL LETTER OMEGA
55503D6;omega1;GREEK PI SYMBOL
55603CE;omegatonos;GREEK SMALL LETTER OMEGA WITH TONOS
55703BF;omicron;GREEK SMALL LETTER OMICRON
55803CC;omicrontonos;GREEK SMALL LETTER OMICRON WITH TONOS
5590031;one;DIGIT ONE
5602024;onedotenleader;ONE DOT LEADER
561215B;oneeighth;VULGAR FRACTION ONE EIGHTH
56200BD;onehalf;VULGAR FRACTION ONE HALF
56300BC;onequarter;VULGAR FRACTION ONE QUARTER
5642153;onethird;VULGAR FRACTION ONE THIRD
56525E6;openbullet;WHITE BULLET
56600AA;ordfeminine;FEMININE ORDINAL INDICATOR
56700BA;ordmasculine;MASCULINE ORDINAL INDICATOR
568221F;orthogonal;RIGHT ANGLE
56900F8;oslash;LATIN SMALL LETTER O WITH STROKE
57001FF;oslashacute;LATIN SMALL LETTER O WITH STROKE AND ACUTE
57100F5;otilde;LATIN SMALL LETTER O WITH TILDE
5720070;p;LATIN SMALL LETTER P
57300B6;paragraph;PILCROW SIGN
5740028;parenleft;LEFT PARENTHESIS
5750029;parenright;RIGHT PARENTHESIS
5762202;partialdiff;PARTIAL DIFFERENTIAL
5770025;percent;PERCENT SIGN
578002E;period;FULL STOP
57900B7;periodcentered;MIDDLE DOT
58022A5;perpendicular;UP TACK
5812030;perthousand;PER MILLE SIGN
58220A7;peseta;PESETA SIGN
58303C6;phi;GREEK SMALL LETTER PHI
58403D5;phi1;GREEK PHI SYMBOL
58503C0;pi;GREEK SMALL LETTER PI
586002B;plus;PLUS SIGN
58700B1;plusminus;PLUS-MINUS SIGN
588211E;prescription;PRESCRIPTION TAKE
589220F;product;N-ARY PRODUCT
5902282;propersubset;SUBSET OF
5912283;propersuperset;SUPERSET OF
592221D;proportional;PROPORTIONAL TO
59303C8;psi;GREEK SMALL LETTER PSI
5940071;q;LATIN SMALL LETTER Q
595003F;question;QUESTION MARK
59600BF;questiondown;INVERTED QUESTION MARK
5970022;quotedbl;QUOTATION MARK
598201E;quotedblbase;DOUBLE LOW-9 QUOTATION MARK
599201C;quotedblleft;LEFT DOUBLE QUOTATION MARK
600201D;quotedblright;RIGHT DOUBLE QUOTATION MARK
6012018;quoteleft;LEFT SINGLE QUOTATION MARK
602201B;quotereversed;SINGLE HIGH-REVERSED-9 QUOTATION MARK
6032019;quoteright;RIGHT SINGLE QUOTATION MARK
604201A;quotesinglbase;SINGLE LOW-9 QUOTATION MARK
6050027;quotesingle;APOSTROPHE
6060072;r;LATIN SMALL LETTER R
6070155;racute;LATIN SMALL LETTER R WITH ACUTE
608221A;radical;SQUARE ROOT
6090159;rcaron;LATIN SMALL LETTER R WITH CARON
6102286;reflexsubset;SUBSET OF OR EQUAL TO
6112287;reflexsuperset;SUPERSET OF OR EQUAL TO
61200AE;registered;REGISTERED SIGN
6132310;revlogicalnot;REVERSED NOT SIGN
61403C1;rho;GREEK SMALL LETTER RHO
61502DA;ring;RING ABOVE
6162590;rtblock;RIGHT HALF BLOCK
6170073;s;LATIN SMALL LETTER S
618015B;sacute;LATIN SMALL LETTER S WITH ACUTE
6190161;scaron;LATIN SMALL LETTER S WITH CARON
620015F;scedilla;LATIN SMALL LETTER S WITH CEDILLA
621015D;scircumflex;LATIN SMALL LETTER S WITH CIRCUMFLEX
6222033;second;DOUBLE PRIME
62300A7;section;SECTION SIGN
624003B;semicolon;SEMICOLON
6250037;seven;DIGIT SEVEN
626215E;seveneighths;VULGAR FRACTION SEVEN EIGHTHS
6272592;shade;MEDIUM SHADE
62803C3;sigma;GREEK SMALL LETTER SIGMA
62903C2;sigma1;GREEK SMALL LETTER FINAL SIGMA
630223C;similar;TILDE OPERATOR
6310036;six;DIGIT SIX
632002F;slash;SOLIDUS
633263A;smileface;WHITE SMILING FACE
6340020;space;SPACE
6352660;spade;BLACK SPADE SUIT
63600A3;sterling;POUND SIGN
637220B;suchthat;CONTAINS AS MEMBER
6382211;summation;N-ARY SUMMATION
639263C;sun;WHITE SUN WITH RAYS
6400074;t;LATIN SMALL LETTER T
64103C4;tau;GREEK SMALL LETTER TAU
6420167;tbar;LATIN SMALL LETTER T WITH STROKE
6430165;tcaron;LATIN SMALL LETTER T WITH CARON
6442234;therefore;THEREFORE
64503B8;theta;GREEK SMALL LETTER THETA
64603D1;theta1;GREEK THETA SYMBOL
64700FE;thorn;LATIN SMALL LETTER THORN
6480033;three;DIGIT THREE
649215C;threeeighths;VULGAR FRACTION THREE EIGHTHS
65000BE;threequarters;VULGAR FRACTION THREE QUARTERS
65102DC;tilde;SMALL TILDE
6520303;tildecomb;COMBINING TILDE
6530384;tonos;GREEK TONOS
6542122;trademark;TRADE MARK SIGN
65525BC;triagdn;BLACK DOWN-POINTING TRIANGLE
65625C4;triaglf;BLACK LEFT-POINTING POINTER
65725BA;triagrt;BLACK RIGHT-POINTING POINTER
65825B2;triagup;BLACK UP-POINTING TRIANGLE
6590032;two;DIGIT TWO
6602025;twodotenleader;TWO DOT LEADER
6612154;twothirds;VULGAR FRACTION TWO THIRDS
6620075;u;LATIN SMALL LETTER U
66300FA;uacute;LATIN SMALL LETTER U WITH ACUTE
664016D;ubreve;LATIN SMALL LETTER U WITH BREVE
66500FB;ucircumflex;LATIN SMALL LETTER U WITH CIRCUMFLEX
66600FC;udieresis;LATIN SMALL LETTER U WITH DIAERESIS
66700F9;ugrave;LATIN SMALL LETTER U WITH GRAVE
66801B0;uhorn;LATIN SMALL LETTER U WITH HORN
6690171;uhungarumlaut;LATIN SMALL LETTER U WITH DOUBLE ACUTE
670016B;umacron;LATIN SMALL LETTER U WITH MACRON
671005F;underscore;LOW LINE
6722017;underscoredbl;DOUBLE LOW LINE
673222A;union;UNION
6742200;universal;FOR ALL
6750173;uogonek;LATIN SMALL LETTER U WITH OGONEK
6762580;upblock;UPPER HALF BLOCK
67703C5;upsilon;GREEK SMALL LETTER UPSILON
67803CB;upsilondieresis;GREEK SMALL LETTER UPSILON WITH DIALYTIKA
67903B0;upsilondieresistonos;GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS
68003CD;upsilontonos;GREEK SMALL LETTER UPSILON WITH TONOS
681016F;uring;LATIN SMALL LETTER U WITH RING ABOVE
6820169;utilde;LATIN SMALL LETTER U WITH TILDE
6830076;v;LATIN SMALL LETTER V
6840077;w;LATIN SMALL LETTER W
6851E83;wacute;LATIN SMALL LETTER W WITH ACUTE
6860175;wcircumflex;LATIN SMALL LETTER W WITH CIRCUMFLEX
6871E85;wdieresis;LATIN SMALL LETTER W WITH DIAERESIS
6882118;weierstrass;SCRIPT CAPITAL P
6891E81;wgrave;LATIN SMALL LETTER W WITH GRAVE
6900078;x;LATIN SMALL LETTER X
69103BE;xi;GREEK SMALL LETTER XI
6920079;y;LATIN SMALL LETTER Y
69300FD;yacute;LATIN SMALL LETTER Y WITH ACUTE
6940177;ycircumflex;LATIN SMALL LETTER Y WITH CIRCUMFLEX
69500FF;ydieresis;LATIN SMALL LETTER Y WITH DIAERESIS
69600A5;yen;YEN SIGN
6971EF3;ygrave;LATIN SMALL LETTER Y WITH GRAVE
698007A;z;LATIN SMALL LETTER Z
699017A;zacute;LATIN SMALL LETTER Z WITH ACUTE
700017E;zcaron;LATIN SMALL LETTER Z WITH CARON
701017C;zdotaccent;LATIN SMALL LETTER Z WITH DOT ABOVE
7020030;zero;DIGIT ZERO
70303B6;zeta;GREEK SMALL LETTER ZETA
704#END
705"""
706
707
708AGLError = "AGLError"
709
710AGL2UV = {}
711UV2AGL = {}
712
713def _builddicts():
714	import re
715
716	lines = _aglText.splitlines()
717
718	parseAGL_RE = re.compile("([0-9A-F]{4});([A-Za-z_0-9.]+);.*?$")
719
720	for line in lines:
721		if not line or line[:1] == '#':
722			continue
723		m = parseAGL_RE.match(line)
724		if not m:
725			raise AGLError("syntax error in glyphlist.txt: %s" % repr(line[:20]))
726		unicode = m.group(1)
727		assert len(unicode) == 4
728		unicode = int(unicode, 16)
729		glyphName = m.group(2)
730		if glyphName in AGL2UV:
731			# the above table contains identical duplicates
732			assert AGL2UV[glyphName] == unicode
733		else:
734			AGL2UV[glyphName] = unicode
735		UV2AGL[unicode] = glyphName
736
737_builddicts()
738