package Postscript::TextDecode;

$VERSION = '0.1';

use 5.008008;
use strict;

use Digest::MD5 qw/md5_hex/;

my %Stored_Encodings = ();

my %Zapfdingbats_Glyphs = (
'a100'                         => chr(10078),
'a101'                         => chr(10081),
'a102'                         => chr(10082),
'a103'                         => chr(10083),
'a104'                         => chr(10084),
'a105'                         => chr(10000),
'a106'                         => chr(10085),
'a107'                         => chr(10086),
'a108'                         => chr(10087),
'a109'                         => chr(9824),
'a10'                          => chr(10017),
'a110'                         => chr(9829),
'a111'                         => chr(9830),
'a112'                         => chr(9827),
'a117'                         => chr(9993),
'a118'                         => chr(9992),
'a119'                         => chr(9991),
'a11'                          => chr(9755),
'a120'                         => chr(9312),
'a121'                         => chr(9313),
'a122'                         => chr(9314),
'a123'                         => chr(9315),
'a124'                         => chr(9316),
'a125'                         => chr(9317),
'a126'                         => chr(9318),
'a127'                         => chr(9319),
'a128'                         => chr(9320),
'a129'                         => chr(9321),
'a12'                          => chr(9758),
'a130'                         => chr(10102),
'a131'                         => chr(10103),
'a132'                         => chr(10104),
'a133'                         => chr(10105),
'a134'                         => chr(10106),
'a135'                         => chr(10107),
'a136'                         => chr(10108),
'a137'                         => chr(10109),
'a138'                         => chr(10110),
'a139'                         => chr(10111),
'a13'                          => chr(9996),
'a140'                         => chr(10112),
'a141'                         => chr(10113),
'a142'                         => chr(10114),
'a143'                         => chr(10115),
'a144'                         => chr(10116),
'a145'                         => chr(10117),
'a146'                         => chr(10118),
'a147'                         => chr(10119),
'a148'                         => chr(10120),
'a149'                         => chr(10121),
'a14'                          => chr(9997),
'a150'                         => chr(10122),
'a151'                         => chr(10123),
'a152'                         => chr(10124),
'a153'                         => chr(10125),
'a154'                         => chr(10126),
'a155'                         => chr(10127),
'a156'                         => chr(10128),
'a157'                         => chr(10129),
'a158'                         => chr(10130),
'a159'                         => chr(10131),
'a15'                          => chr(9998),
'a160'                         => chr(10132),
'a161'                         => chr(8594),
'a162'                         => chr(10147),
'a163'                         => chr(8596),
'a164'                         => chr(8597),
'a165'                         => chr(10137),
'a166'                         => chr(10139),
'a167'                         => chr(10140),
'a168'                         => chr(10141),
'a169'                         => chr(10142),
'a16'                          => chr(9999),
'a170'                         => chr(10143),
'a171'                         => chr(10144),
'a172'                         => chr(10145),
'a173'                         => chr(10146),
'a174'                         => chr(10148),
'a175'                         => chr(10149),
'a176'                         => chr(10150),
'a177'                         => chr(10151),
'a178'                         => chr(10152),
'a179'                         => chr(10153),
'a17'                          => chr(10001),
'a180'                         => chr(10155),
'a181'                         => chr(10157),
'a182'                         => chr(10159),
'a183'                         => chr(10162),
'a184'                         => chr(10163),
'a185'                         => chr(10165),
'a186'                         => chr(10168),
'a187'                         => chr(10170),
'a188'                         => chr(10171),
'a189'                         => chr(10172),
'a18'                          => chr(10002),
'a190'                         => chr(10173),
'a191'                         => chr(10174),
'a192'                         => chr(10138),
'a193'                         => chr(10154),
'a194'                         => chr(10166),
'a195'                         => chr(10169),
'a196'                         => chr(10136),
'a197'                         => chr(10164),
'a198'                         => chr(10167),
'a199'                         => chr(10156),
'a19'                          => chr(10003),
'a1'                           => chr(9985),
'a200'                         => chr(10158),
'a201'                         => chr(10161),
'a202'                         => chr(9987),
'a203'                         => chr(10064),
'a204'                         => chr(10066),
'a205'                         => chr(10094),
'a206'                         => chr(10096),
'a20'                          => chr(10004),
'a21'                          => chr(10005),
'a22'                          => chr(10006),
'a23'                          => chr(10007),
'a24'                          => chr(10008),
'a25'                          => chr(10009),
'a26'                          => chr(10010),
'a27'                          => chr(10011),
'a28'                          => chr(10012),
'a29'                          => chr(10018),
'a2'                           => chr(9986),
'a30'                          => chr(10019),
'a31'                          => chr(10020),
'a32'                          => chr(10021),
'a33'                          => chr(10022),
'a34'                          => chr(10023),
'a35'                          => chr(9733),
'a36'                          => chr(10025),
'a37'                          => chr(10026),
'a38'                          => chr(10027),
'a39'                          => chr(10028),
'a3'                           => chr(9988),
'a40'                          => chr(10029),
'a41'                          => chr(10030),
'a42'                          => chr(10031),
'a43'                          => chr(10032),
'a44'                          => chr(10033),
'a45'                          => chr(10034),
'a46'                          => chr(10035),
'a47'                          => chr(10036),
'a48'                          => chr(10037),
'a49'                          => chr(10038),
'a4'                           => chr(9742),
'a50'                          => chr(10039),
'a51'                          => chr(10040),
'a52'                          => chr(10041),
'a53'                          => chr(10042),
'a54'                          => chr(10043),
'a55'                          => chr(10044),
'a56'                          => chr(10045),
'a57'                          => chr(10046),
'a58'                          => chr(10047),
'a59'                          => chr(10048),
'a5'                           => chr(9990),
'a60'                          => chr(10049),
'a61'                          => chr(10050),
'a62'                          => chr(10051),
'a63'                          => chr(10052),
'a64'                          => chr(10053),
'a65'                          => chr(10054),
'a66'                          => chr(10055),
'a67'                          => chr(10056),
'a68'                          => chr(10057),
'a69'                          => chr(10058),
'a6'                           => chr(10013),
'a70'                          => chr(10059),
'a71'                          => chr(9679),
'a72'                          => chr(10061),
'a73'                          => chr(9632),
'a74'                          => chr(10063),
'a75'                          => chr(10065),
'a76'                          => chr(9650),
'a77'                          => chr(9660),
'a78'                          => chr(9670),
'a79'                          => chr(10070),
'a7'                           => chr(10014),
'a81'                          => chr(9687),
'a82'                          => chr(10072),
'a83'                          => chr(10073),
'a84'                          => chr(10074),
'a85'                          => chr(10095),
'a86'                          => chr(10097),
'a87'                          => chr(10098),
'a88'                          => chr(10099),
'a89'                          => chr(10088),
'a8'                           => chr(10015),
'a90'                          => chr(10089),
'a91'                          => chr(10092),
'a92'                          => chr(10093),
'a93'                          => chr(10090),
'a94'                          => chr(10091),
'a95'                          => chr(10100),
'a96'                          => chr(10101),
'a97'                          => chr(10075),
'a98'                          => chr(10076),
'a99'                          => chr(10077),
'a9'                           => chr(10016),
);

my %Default_Glyphs = (
'.notdef'                      => '',
'a'                            => chr(97),
'aabengali'                    => chr(2438),
'aacute'                       => chr(225),
'aadeva'                       => chr(2310),
'aagujarati'                   => chr(2694),
'aagurmukhi'                   => chr(2566),
'aamatragurmukhi'              => chr(2622),
'aarusquare'                   => chr(13059),
'aavowelsignbengali'           => chr(2494),
'aavowelsigndeva'              => chr(2366),
'aavowelsigngujarati'          => chr(2750),
'abbreviationmarkarmenian'     => chr(1375),
'abbreviationsigndeva'         => chr(2416),
'abengali'                     => chr(2437),
'abopomofo'                    => chr(12570),
'abreve'                       => chr(259),
'abreveacute'                  => chr(7855),
'abrevecyrillic'               => chr(1233),
'abrevedotbelow'               => chr(7863),
'abrevegrave'                  => chr(7857),
'abrevehookabove'              => chr(7859),
'abrevetilde'                  => chr(7861),
'acaron'                       => chr(462),
'acircle'                      => chr(9424),
'acircumflex'                  => chr(226),
'acircumflexacute'             => chr(7845),
'acircumflexdotbelow'          => chr(7853),
'acircumflexgrave'             => chr(7847),
'acircumflexhookabove'         => chr(7849),
'acircumflextilde'             => chr(7851),
'acute'                        => chr(180),
'acutebelowcmb'                => chr(791),
'acutecmb'                     => chr(769),
'acutecomb'                    => chr(769),
'acutedeva'                    => chr(2388),
'acutelowmod'                  => chr(719),
'acutetonecmb'                 => chr(833),
'acyrillic'                    => chr(1072),
'adblgrave'                    => chr(513),
'addakgurmukhi'                => chr(2673),
'adeva'                        => chr(2309),
'adieresis'                    => chr(228),
'adieresiscyrillic'            => chr(1235),
'adieresismacron'              => chr(479),
'adotbelow'                    => chr(7841),
'adotmacron'                   => chr(481),
'ae'                           => chr(230),
'aeacute'                      => chr(509),
'aekorean'                     => chr(12624),
'aemacron'                     => chr(483),
'afii00208'                    => chr(8213),
'afii08941'                    => chr(8356),
'afii10017'                    => chr(1040),
'afii10018'                    => chr(1041),
'afii10019'                    => chr(1042),
'afii10020'                    => chr(1043),
'afii10021'                    => chr(1044),
'afii10022'                    => chr(1045),
'afii10023'                    => chr(1025),
'afii10024'                    => chr(1046),
'afii10025'                    => chr(1047),
'afii10026'                    => chr(1048),
'afii10027'                    => chr(1049),
'afii10028'                    => chr(1050),
'afii10029'                    => chr(1051),
'afii10030'                    => chr(1052),
'afii10031'                    => chr(1053),
'afii10032'                    => chr(1054),
'afii10033'                    => chr(1055),
'afii10034'                    => chr(1056),
'afii10035'                    => chr(1057),
'afii10036'                    => chr(1058),
'afii10037'                    => chr(1059),
'afii10038'                    => chr(1060),
'afii10039'                    => chr(1061),
'afii10040'                    => chr(1062),
'afii10041'                    => chr(1063),
'afii10042'                    => chr(1064),
'afii10043'                    => chr(1065),
'afii10044'                    => chr(1066),
'afii10045'                    => chr(1067),
'afii10046'                    => chr(1068),
'afii10047'                    => chr(1069),
'afii10048'                    => chr(1070),
'afii10049'                    => chr(1071),
'afii10050'                    => chr(1168),
'afii10051'                    => chr(1026),
'afii10052'                    => chr(1027),
'afii10053'                    => chr(1028),
'afii10054'                    => chr(1029),
'afii10055'                    => chr(1030),
'afii10056'                    => chr(1031),
'afii10057'                    => chr(1032),
'afii10058'                    => chr(1033),
'afii10059'                    => chr(1034),
'afii10060'                    => chr(1035),
'afii10061'                    => chr(1036),
'afii10062'                    => chr(1038),
'afii10063'                    => chr(63172),
'afii10064'                    => chr(63173),
'afii10065'                    => chr(1072),
'afii10066'                    => chr(1073),
'afii10067'                    => chr(1074),
'afii10068'                    => chr(1075),
'afii10069'                    => chr(1076),
'afii10070'                    => chr(1077),
'afii10071'                    => chr(1105),
'afii10072'                    => chr(1078),
'afii10073'                    => chr(1079),
'afii10074'                    => chr(1080),
'afii10075'                    => chr(1081),
'afii10076'                    => chr(1082),
'afii10077'                    => chr(1083),
'afii10078'                    => chr(1084),
'afii10079'                    => chr(1085),
'afii10080'                    => chr(1086),
'afii10081'                    => chr(1087),
'afii10082'                    => chr(1088),
'afii10083'                    => chr(1089),
'afii10084'                    => chr(1090),
'afii10085'                    => chr(1091),
'afii10086'                    => chr(1092),
'afii10087'                    => chr(1093),
'afii10088'                    => chr(1094),
'afii10089'                    => chr(1095),
'afii10090'                    => chr(1096),
'afii10091'                    => chr(1097),
'afii10092'                    => chr(1098),
'afii10093'                    => chr(1099),
'afii10094'                    => chr(1100),
'afii10095'                    => chr(1101),
'afii10096'                    => chr(1102),
'afii10097'                    => chr(1103),
'afii10098'                    => chr(1169),
'afii10099'                    => chr(1106),
'afii10100'                    => chr(1107),
'afii10101'                    => chr(1108),
'afii10102'                    => chr(1109),
'afii10103'                    => chr(1110),
'afii10104'                    => chr(1111),
'afii10105'                    => chr(1112),
'afii10106'                    => chr(1113),
'afii10107'                    => chr(1114),
'afii10108'                    => chr(1115),
'afii10109'                    => chr(1116),
'afii10110'                    => chr(1118),
'afii10145'                    => chr(1039),
'afii10146'                    => chr(1122),
'afii10147'                    => chr(1138),
'afii10148'                    => chr(1140),
'afii10192'                    => chr(63174),
'afii10193'                    => chr(1119),
'afii10194'                    => chr(1123),
'afii10195'                    => chr(1139),
'afii10196'                    => chr(1141),
'afii10831'                    => chr(63175),
'afii10832'                    => chr(63176),
'afii10846'                    => chr(1241),
'afii299'                      => chr(8206),
'afii300'                      => chr(8207),
'afii301'                      => chr(8205),
'afii57381'                    => chr(1642),
'afii57388'                    => chr(1548),
'afii57392'                    => chr(1632),
'afii57393'                    => chr(1633),
'afii57394'                    => chr(1634),
'afii57395'                    => chr(1635),
'afii57396'                    => chr(1636),
'afii57397'                    => chr(1637),
'afii57398'                    => chr(1638),
'afii57399'                    => chr(1639),
'afii57400'                    => chr(1640),
'afii57401'                    => chr(1641),
'afii57403'                    => chr(1563),
'afii57407'                    => chr(1567),
'afii57409'                    => chr(1569),
'afii57410'                    => chr(1570),
'afii57411'                    => chr(1571),
'afii57412'                    => chr(1572),
'afii57413'                    => chr(1573),
'afii57414'                    => chr(1574),
'afii57415'                    => chr(1575),
'afii57416'                    => chr(1576),
'afii57417'                    => chr(1577),
'afii57418'                    => chr(1578),
'afii57419'                    => chr(1579),
'afii57420'                    => chr(1580),
'afii57421'                    => chr(1581),
'afii57422'                    => chr(1582),
'afii57423'                    => chr(1583),
'afii57424'                    => chr(1584),
'afii57425'                    => chr(1585),
'afii57426'                    => chr(1586),
'afii57427'                    => chr(1587),
'afii57428'                    => chr(1588),
'afii57429'                    => chr(1589),
'afii57430'                    => chr(1590),
'afii57431'                    => chr(1591),
'afii57432'                    => chr(1592),
'afii57433'                    => chr(1593),
'afii57434'                    => chr(1594),
'afii57440'                    => chr(1600),
'afii57441'                    => chr(1601),
'afii57442'                    => chr(1602),
'afii57443'                    => chr(1603),
'afii57444'                    => chr(1604),
'afii57445'                    => chr(1605),
'afii57446'                    => chr(1606),
'afii57448'                    => chr(1608),
'afii57449'                    => chr(1609),
'afii57450'                    => chr(1610),
'afii57451'                    => chr(1611),
'afii57452'                    => chr(1612),
'afii57453'                    => chr(1613),
'afii57454'                    => chr(1614),
'afii57455'                    => chr(1615),
'afii57456'                    => chr(1616),
'afii57457'                    => chr(1617),
'afii57458'                    => chr(1618),
'afii57470'                    => chr(1607),
'afii57505'                    => chr(1700),
'afii57506'                    => chr(1662),
'afii57507'                    => chr(1670),
'afii57508'                    => chr(1688),
'afii57509'                    => chr(1711),
'afii57511'                    => chr(1657),
'afii57512'                    => chr(1672),
'afii57513'                    => chr(1681),
'afii57514'                    => chr(1722),
'afii57519'                    => chr(1746),
'afii57534'                    => chr(1749),
'afii57636'                    => chr(8362),
'afii57645'                    => chr(1470),
'afii57658'                    => chr(1475),
'afii57664'                    => chr(1488),
'afii57665'                    => chr(1489),
'afii57666'                    => chr(1490),
'afii57667'                    => chr(1491),
'afii57668'                    => chr(1492),
'afii57669'                    => chr(1493),
'afii57670'                    => chr(1494),
'afii57671'                    => chr(1495),
'afii57672'                    => chr(1496),
'afii57673'                    => chr(1497),
'afii57674'                    => chr(1498),
'afii57675'                    => chr(1499),
'afii57676'                    => chr(1500),
'afii57677'                    => chr(1501),
'afii57678'                    => chr(1502),
'afii57679'                    => chr(1503),
'afii57680'                    => chr(1504),
'afii57681'                    => chr(1505),
'afii57682'                    => chr(1506),
'afii57683'                    => chr(1507),
'afii57684'                    => chr(1508),
'afii57685'                    => chr(1509),
'afii57686'                    => chr(1510),
'afii57687'                    => chr(1511),
'afii57688'                    => chr(1512),
'afii57689'                    => chr(1513),
'afii57690'                    => chr(1514),
'afii57694'                    => chr(64298),
'afii57695'                    => chr(64299),
'afii57700'                    => chr(64331),
'afii57705'                    => chr(64287),
'afii57716'                    => chr(1520),
'afii57717'                    => chr(1521),
'afii57718'                    => chr(1522),
'afii57723'                    => chr(64309),
'afii57793'                    => chr(1460),
'afii57794'                    => chr(1461),
'afii57795'                    => chr(1462),
'afii57796'                    => chr(1467),
'afii57797'                    => chr(1464),
'afii57798'                    => chr(1463),
'afii57799'                    => chr(1456),
'afii57800'                    => chr(1458),
'afii57801'                    => chr(1457),
'afii57802'                    => chr(1459),
'afii57803'                    => chr(1474),
'afii57804'                    => chr(1473),
'afii57806'                    => chr(1465),
'afii57807'                    => chr(1468),
'afii57839'                    => chr(1469),
'afii57841'                    => chr(1471),
'afii57842'                    => chr(1472),
'afii57929'                    => chr(700),
'afii61248'                    => chr(8453),
'afii61289'                    => chr(8467),
'afii61352'                    => chr(8470),
'afii61573'                    => chr(8236),
'afii61574'                    => chr(8237),
'afii61575'                    => chr(8238),
'afii61664'                    => chr(8204),
'afii63167'                    => chr(1645),
'afii64937'                    => chr(701),
'agrave'                       => chr(224),
'agujarati'                    => chr(2693),
'agurmukhi'                    => chr(2565),
'ahiragana'                    => chr(12354),
'ahookabove'                   => chr(7843),
'aibengali'                    => chr(2448),
'aibopomofo'                   => chr(12574),
'aideva'                       => chr(2320),
'aiecyrillic'                  => chr(1237),
'aigujarati'                   => chr(2704),
'aigurmukhi'                   => chr(2576),
'aimatragurmukhi'              => chr(2632),
'ainarabic'                    => chr(1593),
'ainfinalarabic'               => chr(65226),
'aininitialarabic'             => chr(65227),
'ainmedialarabic'              => chr(65228),
'ainvertedbreve'               => chr(515),
'aivowelsignbengali'           => chr(2504),
'aivowelsigndeva'              => chr(2376),
'aivowelsigngujarati'          => chr(2760),
'akatakana'                    => chr(12450),
'akatakanahalfwidth'           => chr(65393),
'akorean'                      => chr(12623),
'alef'                         => chr(1488),
'alefarabic'                   => chr(1575),
'alefdageshhebrew'             => chr(64304),
'aleffinalarabic'              => chr(65166),
'alefhamzaabovearabic'         => chr(1571),
'alefhamzaabovefinalarabic'    => chr(65156),
'alefhamzabelowarabic'         => chr(1573),
'alefhamzabelowfinalarabic'    => chr(65160),
'alefhebrew'                   => chr(1488),
'aleflamedhebrew'              => chr(64335),
'alefmaddaabovearabic'         => chr(1570),
'alefmaddaabovefinalarabic'    => chr(65154),
'alefmaksuraarabic'            => chr(1609),
'alefmaksurafinalarabic'       => chr(65264),
'alefmaksurainitialarabic'     => chr(65267),
'alefmaksuramedialarabic'      => chr(65268),
'alefpatahhebrew'              => chr(64302),
'alefqamatshebrew'             => chr(64303),
'aleph'                        => chr(8501),
'allequal'                     => chr(8780),
'alpha'                        => chr(945),
'alphatonos'                   => chr(940),
'amacron'                      => chr(257),
'amonospace'                   => chr(65345),
'ampersand'                    => chr(38),
'ampersandmonospace'           => chr(65286),
'ampersandsmall'               => chr(63270),
'amsquare'                     => chr(13250),
'anbopomofo'                   => chr(12578),
'angbopomofo'                  => chr(12580),
'angkhankhuthai'               => chr(3674),
'angle'                        => chr(8736),
'anglebracketleft'             => chr(12296),
'anglebracketleftvertical'     => chr(65087),
'anglebracketright'            => chr(12297),
'anglebracketrightvertical'    => chr(65088),
'angleleft'                    => chr(9001),
'angleright'                   => chr(9002),
'angstrom'                     => chr(8491),
'anoteleia'                    => chr(903),
'anudattadeva'                 => chr(2386),
'anusvarabengali'              => chr(2434),
'anusvaradeva'                 => chr(2306),
'anusvaragujarati'             => chr(2690),
'aogonek'                      => chr(261),
'apaatosquare'                 => chr(13056),
'aparen'                       => chr(9372),
'apostrophearmenian'           => chr(1370),
'apostrophemod'                => chr(700),
'apple'                        => chr(63743),
'approaches'                   => chr(8784),
'approxequal'                  => chr(8776),
'approxequalorimage'           => chr(8786),
'approximatelyequal'           => chr(8773),
'araeaekorean'                 => chr(12686),
'araeakorean'                  => chr(12685),
'arc'                          => chr(8978),
'arighthalfring'               => chr(7834),
'aring'                        => chr(229),
'aringacute'                   => chr(507),
'aringbelow'                   => chr(7681),
'arrowboth'                    => chr(8596),
'arrowdashdown'                => chr(8675),
'arrowdashleft'                => chr(8672),
'arrowdashright'               => chr(8674),
'arrowdashup'                  => chr(8673),
'arrowdblboth'                 => chr(8660),
'arrowdbldown'                 => chr(8659),
'arrowdblleft'                 => chr(8656),
'arrowdblright'                => chr(8658),
'arrowdblup'                   => chr(8657),
'arrowdown'                    => chr(8595),
'arrowdownleft'                => chr(8601),
'arrowdownright'               => chr(8600),
'arrowdownwhite'               => chr(8681),
'arrowheaddownmod'             => chr(709),
'arrowheadleftmod'             => chr(706),
'arrowheadrightmod'            => chr(707),
'arrowheadupmod'               => chr(708),
'arrowhorizex'                 => chr(63719),
'arrowleft'                    => chr(8592),
'arrowleftdbl'                 => chr(8656),
'arrowleftdblstroke'           => chr(8653),
'arrowleftoverright'           => chr(8646),
'arrowleftwhite'               => chr(8678),
'arrowright'                   => chr(8594),
'arrowrightdblstroke'          => chr(8655),
'arrowrightheavy'              => chr(10142),
'arrowrightoverleft'           => chr(8644),
'arrowrightwhite'              => chr(8680),
'arrowtableft'                 => chr(8676),
'arrowtabright'                => chr(8677),
'arrowup'                      => chr(8593),
'arrowupdn'                    => chr(8597),
'arrowupdnbse'                 => chr(8616),
'arrowupdownbase'              => chr(8616),
'arrowupleft'                  => chr(8598),
'arrowupleftofdown'            => chr(8645),
'arrowupright'                 => chr(8599),
'arrowupwhite'                 => chr(8679),
'arrowvertex'                  => chr(63718),
'asciicircum'                  => chr(94),
'asciicircummonospace'         => chr(65342),
'asciitilde'                   => chr(126),
'asciitildemonospace'          => chr(65374),
'ascript'                      => chr(593),
'ascriptturned'                => chr(594),
'asmallhiragana'               => chr(12353),
'asmallkatakana'               => chr(12449),
'asmallkatakanahalfwidth'      => chr(65383),
'asterisk'                     => chr(42),
'asteriskaltonearabic'         => chr(1645),
'asteriskarabic'               => chr(1645),
'asteriskmath'                 => chr(8727),
'asteriskmonospace'            => chr(65290),
'asterisksmall'                => chr(65121),
'asterism'                     => chr(8258),
'asuperior'                    => chr(63209),
'asymptoticallyequal'          => chr(8771),
'at'                           => chr(64),
'atilde'                       => chr(227),
'atmonospace'                  => chr(65312),
'atsmall'                      => chr(65131),
'aturned'                      => chr(592),
'aubengali'                    => chr(2452),
'aubopomofo'                   => chr(12576),
'audeva'                       => chr(2324),
'augujarati'                   => chr(2708),
'augurmukhi'                   => chr(2580),
'aulengthmarkbengali'          => chr(2519),
'aumatragurmukhi'              => chr(2636),
'auvowelsignbengali'           => chr(2508),
'auvowelsigndeva'              => chr(2380),
'auvowelsigngujarati'          => chr(2764),
'avagrahadeva'                 => chr(2365),
'aybarmenian'                  => chr(1377),
'ayin'                         => chr(1506),
'ayinaltonehebrew'             => chr(64288),
'ayinhebrew'                   => chr(1506),
'b'                            => chr(98),
'babengali'                    => chr(2476),
'backslash'                    => chr(92),
'backslashmonospace'           => chr(65340),
'badeva'                       => chr(2348),
'bagujarati'                   => chr(2732),
'bagurmukhi'                   => chr(2604),
'bahiragana'                   => chr(12400),
'bahtthai'                     => chr(3647),
'bakatakana'                   => chr(12496),
'bar'                          => chr(124),
'barmonospace'                 => chr(65372),
'bbopomofo'                    => chr(12549),
'bcircle'                      => chr(9425),
'bdotaccent'                   => chr(7683),
'bdotbelow'                    => chr(7685),
'beamedsixteenthnotes'         => chr(9836),
'because'                      => chr(8757),
'becyrillic'                   => chr(1073),
'beharabic'                    => chr(1576),
'behfinalarabic'               => chr(65168),
'behinitialarabic'             => chr(65169),
'behiragana'                   => chr(12409),
'behmedialarabic'              => chr(65170),
'behmeeminitialarabic'         => chr(64671),
'behmeemisolatedarabic'        => chr(64520),
'behnoonfinalarabic'           => chr(64621),
'bekatakana'                   => chr(12505),
'benarmenian'                  => chr(1378),
'bet'                          => chr(1489),
'beta'                         => chr(946),
'betasymbolgreek'              => chr(976),
'betdagesh'                    => chr(64305),
'betdageshhebrew'              => chr(64305),
'bethebrew'                    => chr(1489),
'betrafehebrew'                => chr(64332),
'bhabengali'                   => chr(2477),
'bhadeva'                      => chr(2349),
'bhagujarati'                  => chr(2733),
'bhagurmukhi'                  => chr(2605),
'bhook'                        => chr(595),
'bihiragana'                   => chr(12403),
'bikatakana'                   => chr(12499),
'bilabialclick'                => chr(664),
'bindigurmukhi'                => chr(2562),
'birusquare'                   => chr(13105),
'blackcircle'                  => chr(9679),
'blackdiamond'                 => chr(9670),
'blackdownpointingtriangle'    => chr(9660),
'blackleftpointingpointer'     => chr(9668),
'blackleftpointingtriangle'    => chr(9664),
'blacklenticularbracketleft'   => chr(12304),
'blacklenticularbracketleftvertical' => chr(65083),
'blacklenticularbracketright'  => chr(12305),
'blacklenticularbracketrightvertical' => chr(65084),
'blacklowerlefttriangle'       => chr(9699),
'blacklowerrighttriangle'      => chr(9698),
'blackrectangle'               => chr(9644),
'blackrightpointingpointer'    => chr(9658),
'blackrightpointingtriangle'   => chr(9654),
'blacksmallsquare'             => chr(9642),
'blacksmilingface'             => chr(9787),
'blacksquare'                  => chr(9632),
'blackstar'                    => chr(9733),
'blackupperlefttriangle'       => chr(9700),
'blackupperrighttriangle'      => chr(9701),
'blackuppointingsmalltriangle' => chr(9652),
'blackuppointingtriangle'      => chr(9650),
'blank'                        => chr(9251),
'blinebelow'                   => chr(7687),
'block'                        => chr(9608),
'bmonospace'                   => chr(65346),
'bobaimaithai'                 => chr(3610),
'bohiragana'                   => chr(12412),
'bokatakana'                   => chr(12508),
'bparen'                       => chr(9373),
'bqsquare'                     => chr(13251),
'braceex'                      => chr(63732),
'braceleft'                    => chr(123),
'braceleftbt'                  => chr(63731),
'braceleftmid'                 => chr(63730),
'braceleftmonospace'           => chr(65371),
'braceleftsmall'               => chr(65115),
'bracelefttp'                  => chr(63729),
'braceleftvertical'            => chr(65079),
'braceright'                   => chr(125),
'bracerightbt'                 => chr(63742),
'bracerightmid'                => chr(63741),
'bracerightmonospace'          => chr(65373),
'bracerightsmall'              => chr(65116),
'bracerighttp'                 => chr(63740),
'bracerightvertical'           => chr(65080),
'bracketleft'                  => chr(91),
'bracketleftbt'                => chr(63728),
'bracketleftex'                => chr(63727),
'bracketleftmonospace'         => chr(65339),
'bracketlefttp'                => chr(63726),
'bracketright'                 => chr(93),
'bracketrightbt'               => chr(63739),
'bracketrightex'               => chr(63738),
'bracketrightmonospace'        => chr(65341),
'bracketrighttp'               => chr(63737),
'breve'                        => chr(728),
'brevebelowcmb'                => chr(814),
'brevecmb'                     => chr(774),
'breveinvertedbelowcmb'        => chr(815),
'breveinvertedcmb'             => chr(785),
'breveinverteddoublecmb'       => chr(865),
'bridgebelowcmb'               => chr(810),
'bridgeinvertedbelowcmb'       => chr(826),
'brokenbar'                    => chr(166),
'bstroke'                      => chr(384),
'bsuperior'                    => chr(63210),
'btopbar'                      => chr(387),
'buhiragana'                   => chr(12406),
'bukatakana'                   => chr(12502),
'bullet'                       => chr(8226),
'bulletinverse'                => chr(9688),
'bulletoperator'               => chr(8729),
'bullseye'                     => chr(9678),
'c'                            => chr(99),
'caarmenian'                   => chr(1390),
'cabengali'                    => chr(2458),
'cacute'                       => chr(263),
'cadeva'                       => chr(2330),
'cagujarati'                   => chr(2714),
'cagurmukhi'                   => chr(2586),
'calsquare'                    => chr(13192),
'candrabindubengali'           => chr(2433),
'candrabinducmb'               => chr(784),
'candrabindudeva'              => chr(2305),
'candrabindugujarati'          => chr(2689),
'capslock'                     => chr(8682),
'careof'                       => chr(8453),
'caron'                        => chr(711),
'caronbelowcmb'                => chr(812),
'caroncmb'                     => chr(780),
'carriagereturn'               => chr(8629),
'cbopomofo'                    => chr(12568),
'ccaron'                       => chr(269),
'ccedilla'                     => chr(231),
'ccedillaacute'                => chr(7689),
'ccircle'                      => chr(9426),
'ccircumflex'                  => chr(265),
'ccurl'                        => chr(597),
'cdot'                         => chr(267),
'cdotaccent'                   => chr(267),
'cdsquare'                     => chr(13253),
'cedilla'                      => chr(184),
'cedillacmb'                   => chr(807),
'cent'                         => chr(162),
'centigrade'                   => chr(8451),
'centinferior'                 => chr(63199),
'centmonospace'                => chr(65504),
'centoldstyle'                 => chr(63394),
'centsuperior'                 => chr(63200),
'chaarmenian'                  => chr(1401),
'chabengali'                   => chr(2459),
'chadeva'                      => chr(2331),
'chagujarati'                  => chr(2715),
'chagurmukhi'                  => chr(2587),
'chbopomofo'                   => chr(12564),
'cheabkhasiancyrillic'         => chr(1213),
'checkmark'                    => chr(10003),
'checyrillic'                  => chr(1095),
'chedescenderabkhasiancyrillic' => chr(1215),
'chedescendercyrillic'         => chr(1207),
'chedieresiscyrillic'          => chr(1269),
'cheharmenian'                 => chr(1395),
'chekhakassiancyrillic'        => chr(1228),
'cheverticalstrokecyrillic'    => chr(1209),
'chi'                          => chr(967),
'chieuchacirclekorean'         => chr(12919),
'chieuchaparenkorean'          => chr(12823),
'chieuchcirclekorean'          => chr(12905),
'chieuchkorean'                => chr(12618),
'chieuchparenkorean'           => chr(12809),
'chochangthai'                 => chr(3594),
'chochanthai'                  => chr(3592),
'chochingthai'                 => chr(3593),
'chochoethai'                  => chr(3596),
'chook'                        => chr(392),
'cieucacirclekorean'           => chr(12918),
'cieucaparenkorean'            => chr(12822),
'cieuccirclekorean'            => chr(12904),
'cieuckorean'                  => chr(12616),
'cieucparenkorean'             => chr(12808),
'cieucuparenkorean'            => chr(12828),
'circle'                       => chr(9675),
'circlemultiply'               => chr(8855),
'circleot'                     => chr(8857),
'circleplus'                   => chr(8853),
'circlepostalmark'             => chr(12342),
'circlewithlefthalfblack'      => chr(9680),
'circlewithrighthalfblack'     => chr(9681),
'circumflex'                   => chr(710),
'circumflexbelowcmb'           => chr(813),
'circumflexcmb'                => chr(770),
'clear'                        => chr(8999),
'clickalveolar'                => chr(450),
'clickdental'                  => chr(448),
'clicklateral'                 => chr(449),
'clickretroflex'               => chr(451),
'club'                         => chr(9827),
'clubsuitblack'                => chr(9827),
'clubsuitwhite'                => chr(9831),
'cmcubedsquare'                => chr(13220),
'cmonospace'                   => chr(65347),
'cmsquaredsquare'              => chr(13216),
'coarmenian'                   => chr(1409),
'colon'                        => chr(58),
'colonmonetary'                => chr(8353),
'colonmonospace'               => chr(65306),
'colonsign'                    => chr(8353),
'colonsmall'                   => chr(65109),
'colontriangularhalfmod'       => chr(721),
'colontriangularmod'           => chr(720),
'comma'                        => chr(44),
'commaabovecmb'                => chr(787),
'commaaboverightcmb'           => chr(789),
'commaaccent'                  => chr(63171),
'commaarabic'                  => chr(1548),
'commaarmenian'                => chr(1373),
'commainferior'                => chr(63201),
'commamonospace'               => chr(65292),
'commareversedabovecmb'        => chr(788),
'commareversedmod'             => chr(701),
'commasmall'                   => chr(65104),
'commasuperior'                => chr(63202),
'commaturnedabovecmb'          => chr(786),
'commaturnedmod'               => chr(699),
'compass'                      => chr(9788),
'congruent'                    => chr(8773),
'contourintegral'              => chr(8750),
'control'                      => chr(8963),
'controlack'                   => chr(6),
'controlbel'                   => chr(7),
'controlbs'                    => chr(8),
'controlcan'                   => chr(24),
'controlcr'                    => chr(13),
'controldc1'                   => chr(17),
'controldc2'                   => chr(18),
'controldc3'                   => chr(19),
'controldc4'                   => chr(20),
'controldel'                   => chr(127),
'controldle'                   => chr(16),
'controlem'                    => chr(25),
'controlenq'                   => chr(5),
'controleot'                   => chr(4),
'controlesc'                   => chr(27),
'controletb'                   => chr(23),
'controletx'                   => chr(3),
'controlff'                    => chr(12),
'controlfs'                    => chr(28),
'controlgs'                    => chr(29),
'controlht'                    => chr(9),
'controllf'                    => chr(10),
'controlnak'                   => chr(21),
'controlrs'                    => chr(30),
'controlsi'                    => chr(15),
'controlso'                    => chr(14),
'controlsot'                   => chr(2),
'controlstx'                   => chr(1),
'controlsub'                   => chr(26),
'controlsyn'                   => chr(22),
'controlus'                    => chr(31),
'controlvt'                    => chr(11),
'copyright'                    => chr(169),
'copyrightsans'                => chr(63721),
'copyrightserif'               => chr(63193),
'cornerbracketleft'            => chr(12300),
'cornerbracketlefthalfwidth'   => chr(65378),
'cornerbracketleftvertical'    => chr(65089),
'cornerbracketright'           => chr(12301),
'cornerbracketrighthalfwidth'  => chr(65379),
'cornerbracketrightvertical'   => chr(65090),
'corporationsquare'            => chr(13183),
'cosquare'                     => chr(13255),
'coverkgsquare'                => chr(13254),
'cparen'                       => chr(9374),
'cruzeiro'                     => chr(8354),
'cstretched'                   => chr(663),
'curlyand'                     => chr(8911),
'curlyor'                      => chr(8910),
'currency'                     => chr(164),
'cyrbreve'                     => chr(63185),
'cyrflex'                      => chr(63186),
'cyrbreve'                     => chr(63188),
'cyrflex'                      => chr(63189),
'd'                            => chr(100),
'daarmenian'                   => chr(1380),
'dabengali'                    => chr(2470),
'dadarabic'                    => chr(1590),
'dadeva'                       => chr(2342),
'dadfinalarabic'               => chr(65214),
'dadinitialarabic'             => chr(65215),
'dadmedialarabic'              => chr(65216),
'dagesh'                       => chr(1468),
'dageshhebrew'                 => chr(1468),
'dagger'                       => chr(8224),
'daggerdbl'                    => chr(8225),
'dagujarati'                   => chr(2726),
'dagurmukhi'                   => chr(2598),
'dahiragana'                   => chr(12384),
'dakatakana'                   => chr(12480),
'dalarabic'                    => chr(1583),
'dalet'                        => chr(1491),
'daletdagesh'                  => chr(64307),
'daletdageshhebrew'            => chr(64307),
'dalethatafpatah'              => chr(1491),
'dalethatafpatahhebrew'        => chr(1491),
'dalethatafsegol'              => chr(1491),
'dalethatafsegolhebrew'        => chr(1491),
'dalethebrew'                  => chr(1491),
'dalethiriq'                   => chr(1491),
'dalethiriqhebrew'             => chr(1491),
'daletholam'                   => chr(1491),
'daletholamhebrew'             => chr(1491),
'daletpatah'                   => chr(1491),
'daletpatahhebrew'             => chr(1491),
'daletqamats'                  => chr(1491),
'daletqamatshebrew'            => chr(1491),
'daletqubuts'                  => chr(1491),
'daletqubutshebrew'            => chr(1491),
'daletsegol'                   => chr(1491),
'daletsegolhebrew'             => chr(1491),
'daletsheva'                   => chr(1491),
'daletshevahebrew'             => chr(1491),
'dalettsere'                   => chr(1491),
'dalettserehebrew'             => chr(1491),
'dalfinalarabic'               => chr(65194),
'dammaarabic'                  => chr(1615),
'dammalowarabic'               => chr(1615),
'dammatanaltonearabic'         => chr(1612),
'dammatanarabic'               => chr(1612),
'danda'                        => chr(2404),
'dargahebrew'                  => chr(1447),
'dargalefthebrew'              => chr(1447),
'dasiapneumatacyrilliccmb'     => chr(1157),
'dblgrave'                     => chr(63187),
'dblanglebracketleft'          => chr(12298),
'dblanglebracketleftvertical'  => chr(65085),
'dblanglebracketright'         => chr(12299),
'dblanglebracketrightvertical' => chr(65086),
'dblarchinvertedbelowcmb'      => chr(811),
'dblarrowleft'                 => chr(8660),
'dblarrowright'                => chr(8658),
'dbldanda'                     => chr(2405),
'dblgrave'                     => chr(63190),
'dblgravecmb'                  => chr(783),
'dblintegral'                  => chr(8748),
'dbllowline'                   => chr(8215),
'dbllowlinecmb'                => chr(819),
'dbloverlinecmb'               => chr(831),
'dblprimemod'                  => chr(698),
'dblverticalbar'               => chr(8214),
'dblverticallineabovecmb'      => chr(782),
'dbopomofo'                    => chr(12553),
'dbsquare'                     => chr(13256),
'dcaron'                       => chr(271),
'dcedilla'                     => chr(7697),
'dcircle'                      => chr(9427),
'dcircumflexbelow'             => chr(7699),
'dcroat'                       => chr(273),
'ddabengali'                   => chr(2465),
'ddadeva'                      => chr(2337),
'ddagujarati'                  => chr(2721),
'ddagurmukhi'                  => chr(2593),
'ddalarabic'                   => chr(1672),
'ddalfinalarabic'              => chr(64393),
'dddhadeva'                    => chr(2396),
'ddhabengali'                  => chr(2466),
'ddhadeva'                     => chr(2338),
'ddhagujarati'                 => chr(2722),
'ddhagurmukhi'                 => chr(2594),
'ddotaccent'                   => chr(7691),
'ddotbelow'                    => chr(7693),
'decimalseparatorarabic'       => chr(1643),
'decimalseparatorpersian'      => chr(1643),
'decyrillic'                   => chr(1076),
'degree'                       => chr(176),
'dehihebrew'                   => chr(1453),
'dehiragana'                   => chr(12391),
'deicoptic'                    => chr(1007),
'dekatakana'                   => chr(12487),
'deleteleft'                   => chr(9003),
'deleteright'                  => chr(8998),
'delta'                        => chr(948),
'deltaturned'                  => chr(397),
'denominatorminusonenumeratorbengali' => chr(2552),
'dezh'                         => chr(676),
'dhabengali'                   => chr(2471),
'dhadeva'                      => chr(2343),
'dhagujarati'                  => chr(2727),
'dhagurmukhi'                  => chr(2599),
'dhook'                        => chr(599),
'dialytikatonos'               => chr(901),
'dialytikatonoscmb'            => chr(836),
'diamond'                      => chr(9830),
'diamondsuitwhite'             => chr(9826),
'dieresis'                     => chr(168),
'dieresisacute'                => chr(63191),
'dieresisbelowcmb'             => chr(804),
'dieresiscmb'                  => chr(776),
'dieresisgrave'                => chr(63192),
'dieresistonos'                => chr(901),
'dihiragana'                   => chr(12386),
'dikatakana'                   => chr(12482),
'dittomark'                    => chr(12291),
'divide'                       => chr(247),
'divides'                      => chr(8739),
'divisionslash'                => chr(8725),
'djecyrillic'                  => chr(1106),
'dkshade'                      => chr(9619),
'dlinebelow'                   => chr(7695),
'dlsquare'                     => chr(13207),
'dmacron'                      => chr(273),
'dmonospace'                   => chr(65348),
'dnblock'                      => chr(9604),
'dochadathai'                  => chr(3598),
'dodekthai'                    => chr(3604),
'dohiragana'                   => chr(12393),
'dokatakana'                   => chr(12489),
'dollar'                       => chr(36),
'dollarinferior'               => chr(63203),
'dollarmonospace'              => chr(65284),
'dollaroldstyle'               => chr(63268),
'dollarsmall'                  => chr(65129),
'dollarsuperior'               => chr(63204),
'dong'                         => chr(8363),
'dorusquare'                   => chr(13094),
'dotaccent'                    => chr(729),
'dotaccentcmb'                 => chr(775),
'dotbelowcmb'                  => chr(803),
'dotbelowcomb'                 => chr(803),
'dotkatakana'                  => chr(12539),
'dotlessi'                     => chr(305),
'dotlessj'                     => chr(63166),
'dotlessjstrokehook'           => chr(644),
'dotmath'                      => chr(8901),
'dottedcircle'                 => chr(9676),
'doubleyodpatah'               => chr(64287),
'doubleyodpatahhebrew'         => chr(64287),
'downtackbelowcmb'             => chr(798),
'downtackmod'                  => chr(725),
'dparen'                       => chr(9375),
'dsuperior'                    => chr(63211),
'dtail'                        => chr(598),
'dtopbar'                      => chr(396),
'duhiragana'                   => chr(12389),
'dukatakana'                   => chr(12485),
'dz'                           => chr(499),
'dzaltone'                     => chr(675),
'dzcaron'                      => chr(454),
'dzcurl'                       => chr(677),
'dzeabkhasiancyrillic'         => chr(1249),
'dzecyrillic'                  => chr(1109),
'dzhecyrillic'                 => chr(1119),
'e'                            => chr(101),
'eacute'                       => chr(233),
'earth'                        => chr(9793),
'ebengali'                     => chr(2447),
'ebopomofo'                    => chr(12572),
'ebreve'                       => chr(277),
'ecandradeva'                  => chr(2317),
'ecandragujarati'              => chr(2701),
'ecandravowelsigndeva'         => chr(2373),
'ecandravowelsigngujarati'     => chr(2757),
'ecaron'                       => chr(283),
'ecedillabreve'                => chr(7709),
'echarmenian'                  => chr(1381),
'echyiwnarmenian'              => chr(1415),
'ecircle'                      => chr(9428),
'ecircumflex'                  => chr(234),
'ecircumflexacute'             => chr(7871),
'ecircumflexbelow'             => chr(7705),
'ecircumflexdotbelow'          => chr(7879),
'ecircumflexgrave'             => chr(7873),
'ecircumflexhookabove'         => chr(7875),
'ecircumflextilde'             => chr(7877),
'ecyrillic'                    => chr(1108),
'edblgrave'                    => chr(517),
'edeva'                        => chr(2319),
'edieresis'                    => chr(235),
'edot'                         => chr(279),
'edotaccent'                   => chr(279),
'edotbelow'                    => chr(7865),
'eegurmukhi'                   => chr(2575),
'eematragurmukhi'              => chr(2631),
'efcyrillic'                   => chr(1092),
'egrave'                       => chr(232),
'egujarati'                    => chr(2703),
'eharmenian'                   => chr(1383),
'ehbopomofo'                   => chr(12573),
'ehiragana'                    => chr(12360),
'ehookabove'                   => chr(7867),
'eibopomofo'                   => chr(12575),
'eight'                        => chr(56),
'eightarabic'                  => chr(1640),
'eightbengali'                 => chr(2542),
'eightcircle'                  => chr(9319),
'eightcircleinversesansserif'  => chr(10129),
'eightdeva'                    => chr(2414),
'eighteencircle'               => chr(9329),
'eighteenparen'                => chr(9349),
'eighteenperiod'               => chr(9369),
'eightgujarati'                => chr(2798),
'eightgurmukhi'                => chr(2670),
'eighthackarabic'              => chr(1640),
'eighthangzhou'                => chr(12328),
'eighthnotebeamed'             => chr(9835),
'eightideographicparen'        => chr(12839),
'eightinferior'                => chr(8328),
'eightmonospace'               => chr(65304),
'eightoldstyle'                => chr(63288),
'eightparen'                   => chr(9339),
'eightperiod'                  => chr(9359),
'eightpersian'                 => chr(1784),
'eightroman'                   => chr(8567),
'eightsuperior'                => chr(8312),
'eightthai'                    => chr(3672),
'einvertedbreve'               => chr(519),
'eiotifiedcyrillic'            => chr(1125),
'ekatakana'                    => chr(12456),
'ekatakanahalfwidth'           => chr(65396),
'ekonkargurmukhi'              => chr(2676),
'ekorean'                      => chr(12628),
'elcyrillic'                   => chr(1083),
'element'                      => chr(8712),
'elevencircle'                 => chr(9322),
'elevenparen'                  => chr(9342),
'elevenperiod'                 => chr(9362),
'elevenroman'                  => chr(8570),
'ellipsis'                     => chr(8230),
'ellipsisvertical'             => chr(8942),
'emacron'                      => chr(275),
'emacronacute'                 => chr(7703),
'emacrongrave'                 => chr(7701),
'emcyrillic'                   => chr(1084),
'emdash'                       => chr(8212),
'emdashvertical'               => chr(65073),
'emonospace'                   => chr(65349),
'emphasismarkarmenian'         => chr(1371),
'emptyset'                     => chr(8709),
'enbopomofo'                   => chr(12579),
'encyrillic'                   => chr(1085),
'endash'                       => chr(8211),
'endashvertical'               => chr(65074),
'endescendercyrillic'          => chr(1187),
'eng'                          => chr(331),
'engbopomofo'                  => chr(12581),
'enghecyrillic'                => chr(1189),
'enhookcyrillic'               => chr(1224),
'enspace'                      => chr(8194),
'eogonek'                      => chr(281),
'eokorean'                     => chr(12627),
'eopen'                        => chr(603),
'eopenclosed'                  => chr(666),
'eopenreversed'                => chr(604),
'eopenreversedclosed'          => chr(606),
'eopenreversedhook'            => chr(605),
'eparen'                       => chr(9376),
'epsilon'                      => chr(949),
'epsilontonos'                 => chr(941),
'equal'                        => chr(61),
'equalmonospace'               => chr(65309),
'equalsmall'                   => chr(65126),
'equalsuperior'                => chr(8316),
'equivalence'                  => chr(8801),
'erbopomofo'                   => chr(12582),
'ercyrillic'                   => chr(1088),
'ereversed'                    => chr(600),
'ereversedcyrillic'            => chr(1101),
'escyrillic'                   => chr(1089),
'esdescendercyrillic'          => chr(1195),
'esh'                          => chr(643),
'eshcurl'                      => chr(646),
'eshortdeva'                   => chr(2318),
'eshortvowelsigndeva'          => chr(2374),
'eshreversedloop'              => chr(426),
'eshsquatreversed'             => chr(645),
'esmallhiragana'               => chr(12359),
'esmallkatakana'               => chr(12455),
'esmallkatakanahalfwidth'      => chr(65386),
'estimated'                    => chr(8494),
'esuperior'                    => chr(63212),
'eta'                          => chr(951),
'etarmenian'                   => chr(1384),
'etatonos'                     => chr(942),
'eth'                          => chr(240),
'etilde'                       => chr(7869),
'etildebelow'                  => chr(7707),
'etnahtafoukhhebrew'           => chr(1425),
'etnahtafoukhlefthebrew'       => chr(1425),
'etnahtahebrew'                => chr(1425),
'etnahtalefthebrew'            => chr(1425),
'eturned'                      => chr(477),
'eukorean'                     => chr(12641),
'euro'                         => chr(8364),
'evowelsignbengali'            => chr(2503),
'evowelsigndeva'               => chr(2375),
'evowelsigngujarati'           => chr(2759),
'exclam'                       => chr(33),
'exclamarmenian'               => chr(1372),
'exclamdbl'                    => chr(8252),
'exclamdown'                   => chr(161),
'exclamdownsmall'              => chr(63393),
'exclammonospace'              => chr(65281),
'exclamsmall'                  => chr(63265),
'existential'                  => chr(8707),
'ezh'                          => chr(658),
'ezhcaron'                     => chr(495),
'ezhcurl'                      => chr(659),
'ezhreversed'                  => chr(441),
'ezhtail'                      => chr(442),
'f'                            => chr(102),
'fadeva'                       => chr(2398),
'fagurmukhi'                   => chr(2654),
'fahrenheit'                   => chr(8457),
'fathaarabic'                  => chr(1614),
'fathalowarabic'               => chr(1614),
'fathatanarabic'               => chr(1611),
'fbopomofo'                    => chr(12552),
'fcircle'                      => chr(9429),
'fdotaccent'                   => chr(7711),
'feharabic'                    => chr(1601),
'feharmenian'                  => chr(1414),
'fehfinalarabic'               => chr(65234),
'fehinitialarabic'             => chr(65235),
'fehmedialarabic'              => chr(65236),
'feicoptic'                    => chr(997),
'female'                       => chr(9792),
'ff'                           => chr(64256),
'ffi'                          => chr(64259),
'ffl'                          => chr(64260),
'fi'                           => chr(64257),
'fifteencircle'                => chr(9326),
'fifteenparen'                 => chr(9346),
'fifteenperiod'                => chr(9366),
'figuredash'                   => chr(8210),
'filledbox'                    => chr(9632),
'filledrect'                   => chr(9644),
'finalkaf'                     => chr(1498),
'finalkafdagesh'               => chr(64314),
'finalkafdageshhebrew'         => chr(64314),
'finalkafhebrew'               => chr(1498),
'finalkafqamats'               => chr(1498),
'finalkafqamatshebrew'         => chr(1498),
'finalkafsheva'                => chr(1498),
'finalkafshevahebrew'          => chr(1498),
'finalmem'                     => chr(1501),
'finalmemhebrew'               => chr(1501),
'finalnun'                     => chr(1503),
'finalnunhebrew'               => chr(1503),
'finalpe'                      => chr(1507),
'finalpehebrew'                => chr(1507),
'finaltsadi'                   => chr(1509),
'finaltsadihebrew'             => chr(1509),
'firsttonechinese'             => chr(713),
'fisheye'                      => chr(9673),
'fitacyrillic'                 => chr(1139),
'five'                         => chr(53),
'fivearabic'                   => chr(1637),
'fivebengali'                  => chr(2539),
'fivecircle'                   => chr(9316),
'fivecircleinversesansserif'   => chr(10126),
'fivedeva'                     => chr(2411),
'fiveeighths'                  => chr(8541),
'fivegujarati'                 => chr(2795),
'fivegurmukhi'                 => chr(2667),
'fivehackarabic'               => chr(1637),
'fivehangzhou'                 => chr(12325),
'fiveideographicparen'         => chr(12836),
'fiveinferior'                 => chr(8325),
'fivemonospace'                => chr(65301),
'fiveoldstyle'                 => chr(63285),
'fiveparen'                    => chr(9336),
'fiveperiod'                   => chr(9356),
'fivepersian'                  => chr(1781),
'fiveroman'                    => chr(8564),
'fivesuperior'                 => chr(8309),
'fivethai'                     => chr(3669),
'fl'                           => chr(64258),
'florin'                       => chr(402),
'fmonospace'                   => chr(65350),
'fmsquare'                     => chr(13209),
'fofanthai'                    => chr(3615),
'fofathai'                     => chr(3613),
'fongmanthai'                  => chr(3663),
'forall'                       => chr(8704),
'four'                         => chr(52),
'fourarabic'                   => chr(1636),
'fourbengali'                  => chr(2538),
'fourcircle'                   => chr(9315),
'fourcircleinversesansserif'   => chr(10125),
'fourdeva'                     => chr(2410),
'fourgujarati'                 => chr(2794),
'fourgurmukhi'                 => chr(2666),
'fourhackarabic'               => chr(1636),
'fourhangzhou'                 => chr(12324),
'fourideographicparen'         => chr(12835),
'fourinferior'                 => chr(8324),
'fourmonospace'                => chr(65300),
'fournumeratorbengali'         => chr(2551),
'fouroldstyle'                 => chr(63284),
'fourparen'                    => chr(9335),
'fourperiod'                   => chr(9355),
'fourpersian'                  => chr(1780),
'fourroman'                    => chr(8563),
'foursuperior'                 => chr(8308),
'fourteencircle'               => chr(9325),
'fourteenparen'                => chr(9345),
'fourteenperiod'               => chr(9365),
'fourthai'                     => chr(3668),
'fourthtonechinese'            => chr(715),
'fparen'                       => chr(9377),
'fraction'                     => chr(8260),
'franc'                        => chr(8355),
'g'                            => chr(103),
'gabengali'                    => chr(2455),
'gacute'                       => chr(501),
'gadeva'                       => chr(2327),
'gafarabic'                    => chr(1711),
'gaffinalarabic'               => chr(64403),
'gafinitialarabic'             => chr(64404),
'gafmedialarabic'              => chr(64405),
'gagujarati'                   => chr(2711),
'gagurmukhi'                   => chr(2583),
'gahiragana'                   => chr(12364),
'gakatakana'                   => chr(12460),
'gamma'                        => chr(947),
'gammalatinsmall'              => chr(611),
'gammasuperior'                => chr(736),
'gangiacoptic'                 => chr(1003),
'gbopomofo'                    => chr(12557),
'gbreve'                       => chr(287),
'gcaron'                       => chr(487),
'gcedilla'                     => chr(291),
'gcircle'                      => chr(9430),
'gcircumflex'                  => chr(285),
'gcommaaccent'                 => chr(291),
'gdot'                         => chr(289),
'gdotaccent'                   => chr(289),
'gecyrillic'                   => chr(1075),
'gehiragana'                   => chr(12370),
'gekatakana'                   => chr(12466),
'geometricallyequal'           => chr(8785),
'gereshaccenthebrew'           => chr(1436),
'gereshhebrew'                 => chr(1523),
'gereshmuqdamhebrew'           => chr(1437),
'germandbls'                   => chr(223),
'gershayimaccenthebrew'        => chr(1438),
'gershayimhebrew'              => chr(1524),
'getamark'                     => chr(12307),
'ghabengali'                   => chr(2456),
'ghadarmenian'                 => chr(1394),
'ghadeva'                      => chr(2328),
'ghagujarati'                  => chr(2712),
'ghagurmukhi'                  => chr(2584),
'ghainarabic'                  => chr(1594),
'ghainfinalarabic'             => chr(65230),
'ghaininitialarabic'           => chr(65231),
'ghainmedialarabic'            => chr(65232),
'ghemiddlehookcyrillic'        => chr(1173),
'ghestrokecyrillic'            => chr(1171),
'gheupturncyrillic'            => chr(1169),
'ghhadeva'                     => chr(2394),
'ghhagurmukhi'                 => chr(2650),
'ghook'                        => chr(608),
'ghzsquare'                    => chr(13203),
'gihiragana'                   => chr(12366),
'gikatakana'                   => chr(12462),
'gimarmenian'                  => chr(1379),
'gimel'                        => chr(1490),
'gimeldagesh'                  => chr(64306),
'gimeldageshhebrew'            => chr(64306),
'gimelhebrew'                  => chr(1490),
'gjecyrillic'                  => chr(1107),
'glottalinvertedstroke'        => chr(446),
'glottalstop'                  => chr(660),
'glottalstopinverted'          => chr(662),
'glottalstopmod'               => chr(704),
'glottalstopreversed'          => chr(661),
'glottalstopreversedmod'       => chr(705),
'glottalstopreversedsuperior'  => chr(740),
'glottalstopstroke'            => chr(673),
'glottalstopstrokereversed'    => chr(674),
'gmacron'                      => chr(7713),
'gmonospace'                   => chr(65351),
'gohiragana'                   => chr(12372),
'gokatakana'                   => chr(12468),
'gparen'                       => chr(9378),
'gpasquare'                    => chr(13228),
'gradient'                     => chr(8711),
'grave'                        => chr(96),
'gravebelowcmb'                => chr(790),
'gravecmb'                     => chr(768),
'gravecomb'                    => chr(768),
'gravedeva'                    => chr(2387),
'gravelowmod'                  => chr(718),
'gravemonospace'               => chr(65344),
'gravetonecmb'                 => chr(832),
'greater'                      => chr(62),
'greaterequal'                 => chr(8805),
'greaterequalorless'           => chr(8923),
'greatermonospace'             => chr(65310),
'greaterorequivalent'          => chr(8819),
'greaterorless'                => chr(8823),
'greateroverequal'             => chr(8807),
'greatersmall'                 => chr(65125),
'gscript'                      => chr(609),
'gstroke'                      => chr(485),
'guhiragana'                   => chr(12368),
'guillemotleft'                => chr(171),
'guillemotright'               => chr(187),
'guilsinglleft'                => chr(8249),
'guilsinglright'               => chr(8250),
'gukatakana'                   => chr(12464),
'guramusquare'                 => chr(13080),
'gysquare'                     => chr(13257),
'h'                            => chr(104),
'haabkhasiancyrillic'          => chr(1193),
'haaltonearabic'               => chr(1729),
'habengali'                    => chr(2489),
'hadescendercyrillic'          => chr(1203),
'hadeva'                       => chr(2361),
'hagujarati'                   => chr(2745),
'hagurmukhi'                   => chr(2617),
'haharabic'                    => chr(1581),
'hahfinalarabic'               => chr(65186),
'hahinitialarabic'             => chr(65187),
'hahiragana'                   => chr(12399),
'hahmedialarabic'              => chr(65188),
'haitusquare'                  => chr(13098),
'hakatakana'                   => chr(12495),
'hakatakanahalfwidth'          => chr(65418),
'halantgurmukhi'               => chr(2637),
'hamzaarabic'                  => chr(1569),
'hamzadammaarabic'             => chr(1569),
'hamzadammatanarabic'          => chr(1569),
'hamzafathaarabic'             => chr(1569),
'hamzafathatanarabic'          => chr(1569),
'hamzalowarabic'               => chr(1569),
'hamzalowkasraarabic'          => chr(1569),
'hamzalowkasratanarabic'       => chr(1569),
'hamzasukunarabic'             => chr(1569),
'hangulfiller'                 => chr(12644),
'hardsigncyrillic'             => chr(1098),
'harpoonleftbarbup'            => chr(8636),
'harpoonrightbarbup'           => chr(8640),
'hasquare'                     => chr(13258),
'hatafpatah'                   => chr(1458),
'hatafpatah16'                 => chr(1458),
'hatafpatah23'                 => chr(1458),
'hatafpatah2f'                 => chr(1458),
'hatafpatahhebrew'             => chr(1458),
'hatafpatahnarrowhebrew'       => chr(1458),
'hatafpatahquarterhebrew'      => chr(1458),
'hatafpatahwidehebrew'         => chr(1458),
'hatafqamats'                  => chr(1459),
'hatafqamats1b'                => chr(1459),
'hatafqamats28'                => chr(1459),
'hatafqamats34'                => chr(1459),
'hatafqamatshebrew'            => chr(1459),
'hatafqamatsnarrowhebrew'      => chr(1459),
'hatafqamatsquarterhebrew'     => chr(1459),
'hatafqamatswidehebrew'        => chr(1459),
'hatafsegol'                   => chr(1457),
'hatafsegol17'                 => chr(1457),
'hatafsegol24'                 => chr(1457),
'hatafsegol30'                 => chr(1457),
'hatafsegolhebrew'             => chr(1457),
'hatafsegolnarrowhebrew'       => chr(1457),
'hatafsegolquarterhebrew'      => chr(1457),
'hatafsegolwidehebrew'         => chr(1457),
'hbar'                         => chr(295),
'hbopomofo'                    => chr(12559),
'hbrevebelow'                  => chr(7723),
'hcedilla'                     => chr(7721),
'hcircle'                      => chr(9431),
'hcircumflex'                  => chr(293),
'hdieresis'                    => chr(7719),
'hdotaccent'                   => chr(7715),
'hdotbelow'                    => chr(7717),
'he'                           => chr(1492),
'heart'                        => chr(9829),
'heartsuitblack'               => chr(9829),
'heartsuitwhite'               => chr(9825),
'hedagesh'                     => chr(64308),
'hedageshhebrew'               => chr(64308),
'hehaltonearabic'              => chr(1729),
'heharabic'                    => chr(1607),
'hehebrew'                     => chr(1492),
'hehfinalaltonearabic'         => chr(64423),
'hehfinalalttwoarabic'         => chr(65258),
'hehfinalarabic'               => chr(65258),
'hehhamzaabovefinalarabic'     => chr(64421),
'hehhamzaaboveisolatedarabic'  => chr(64420),
'hehinitialaltonearabic'       => chr(64424),
'hehinitialarabic'             => chr(65259),
'hehiragana'                   => chr(12408),
'hehmedialaltonearabic'        => chr(64425),
'hehmedialarabic'              => chr(65260),
'heiseierasquare'              => chr(13179),
'hekatakana'                   => chr(12504),
'hekatakanahalfwidth'          => chr(65421),
'hekutaarusquare'              => chr(13110),
'henghook'                     => chr(615),
'herutusquare'                 => chr(13113),
'het'                          => chr(1495),
'hethebrew'                    => chr(1495),
'hhook'                        => chr(614),
'hhooksuperior'                => chr(689),
'hieuhacirclekorean'           => chr(12923),
'hieuhaparenkorean'            => chr(12827),
'hieuhcirclekorean'            => chr(12909),
'hieuhkorean'                  => chr(12622),
'hieuhparenkorean'             => chr(12813),
'hihiragana'                   => chr(12402),
'hikatakana'                   => chr(12498),
'hikatakanahalfwidth'          => chr(65419),
'hiriq'                        => chr(1460),
'hiriq14'                      => chr(1460),
'hiriq21'                      => chr(1460),
'hiriq2d'                      => chr(1460),
'hiriqhebrew'                  => chr(1460),
'hiriqnarrowhebrew'            => chr(1460),
'hiriqquarterhebrew'           => chr(1460),
'hiriqwidehebrew'              => chr(1460),
'hlinebelow'                   => chr(7830),
'hmonospace'                   => chr(65352),
'hoarmenian'                   => chr(1392),
'hohipthai'                    => chr(3627),
'hohiragana'                   => chr(12411),
'hokatakana'                   => chr(12507),
'hokatakanahalfwidth'          => chr(65422),
'holam'                        => chr(1465),
'holam19'                      => chr(1465),
'holam26'                      => chr(1465),
'holam32'                      => chr(1465),
'holamhebrew'                  => chr(1465),
'holamnarrowhebrew'            => chr(1465),
'holamquarterhebrew'           => chr(1465),
'holamwidehebrew'              => chr(1465),
'honokhukthai'                 => chr(3630),
'hookabovecomb'                => chr(777),
'hookcmb'                      => chr(777),
'hookpalatalizedbelowcmb'      => chr(801),
'hookretroflexbelowcmb'        => chr(802),
'hoonsquare'                   => chr(13122),
'horicoptic'                   => chr(1001),
'horizontalbar'                => chr(8213),
'horncmb'                      => chr(795),
'hotsprings'                   => chr(9832),
'house'                        => chr(8962),
'hparen'                       => chr(9379),
'hsuperior'                    => chr(688),
'hturned'                      => chr(613),
'huhiragana'                   => chr(12405),
'huiitosquare'                 => chr(13107),
'hukatakana'                   => chr(12501),
'hukatakanahalfwidth'          => chr(65420),
'hungarumlaut'                 => chr(733),
'hungarumlautcmb'              => chr(779),
'hv'                           => chr(405),
'hyphen'                       => chr(45),
'hypheninferior'               => chr(63205),
'hyphenmonospace'              => chr(65293),
'hyphensmall'                  => chr(65123),
'hyphensuperior'               => chr(63206),
'hyphentwo'                    => chr(8208),
'i'                            => chr(105),
'iacute'                       => chr(237),
'iacyrillic'                   => chr(1103),
'ibengali'                     => chr(2439),
'ibopomofo'                    => chr(12583),
'ibreve'                       => chr(301),
'icaron'                       => chr(464),
'icircle'                      => chr(9432),
'icircumflex'                  => chr(238),
'icyrillic'                    => chr(1110),
'idblgrave'                    => chr(521),
'ideographearthcircle'         => chr(12943),
'ideographfirecircle'          => chr(12939),
'ideographicallianceparen'     => chr(12863),
'ideographiccallparen'         => chr(12858),
'ideographiccentrecircle'      => chr(12965),
'ideographicclose'             => chr(12294),
'ideographiccomma'             => chr(12289),
'ideographiccommaleft'         => chr(65380),
'ideographiccongratulationparen' => chr(12855),
'ideographiccorrectcircle'     => chr(12963),
'ideographicearthparen'        => chr(12847),
'ideographicenterpriseparen'   => chr(12861),
'ideographicexcellentcircle'   => chr(12957),
'ideographicfestivalparen'     => chr(12864),
'ideographicfinancialcircle'   => chr(12950),
'ideographicfinancialparen'    => chr(12854),
'ideographicfireparen'         => chr(12843),
'ideographichaveparen'         => chr(12850),
'ideographichighcircle'        => chr(12964),
'ideographiciterationmark'     => chr(12293),
'ideographiclaborcircle'       => chr(12952),
'ideographiclaborparen'        => chr(12856),
'ideographicleftcircle'        => chr(12967),
'ideographiclowcircle'         => chr(12966),
'ideographicmedicinecircle'    => chr(12969),
'ideographicmetalparen'        => chr(12846),
'ideographicmoonparen'         => chr(12842),
'ideographicnameparen'         => chr(12852),
'ideographicperiod'            => chr(12290),
'ideographicprintcircle'       => chr(12958),
'ideographicreachparen'        => chr(12867),
'ideographicrepresentparen'    => chr(12857),
'ideographicresourceparen'     => chr(12862),
'ideographicrightcircle'       => chr(12968),
'ideographicsecretcircle'      => chr(12953),
'ideographicselfparen'         => chr(12866),
'ideographicsocietyparen'      => chr(12851),
'ideographicspace'             => chr(12288),
'ideographicspecialparen'      => chr(12853),
'ideographicstockparen'        => chr(12849),
'ideographicstudyparen'        => chr(12859),
'ideographicsunparen'          => chr(12848),
'ideographicsuperviseparen'    => chr(12860),
'ideographicwaterparen'        => chr(12844),
'ideographicwoodparen'         => chr(12845),
'ideographiczero'              => chr(12295),
'ideographmetalcircle'         => chr(12942),
'ideographmooncircle'          => chr(12938),
'ideographnamecircle'          => chr(12948),
'ideographsuncircle'           => chr(12944),
'ideographwatercircle'         => chr(12940),
'ideographwoodcircle'          => chr(12941),
'ideva'                        => chr(2311),
'idieresis'                    => chr(239),
'idieresisacute'               => chr(7727),
'idieresiscyrillic'            => chr(1253),
'idotbelow'                    => chr(7883),
'iebrevecyrillic'              => chr(1239),
'iecyrillic'                   => chr(1077),
'ieungacirclekorean'           => chr(12917),
'ieungaparenkorean'            => chr(12821),
'ieungcirclekorean'            => chr(12903),
'ieungkorean'                  => chr(12615),
'ieungparenkorean'             => chr(12807),
'igrave'                       => chr(236),
'igujarati'                    => chr(2695),
'igurmukhi'                    => chr(2567),
'ihiragana'                    => chr(12356),
'ihookabove'                   => chr(7881),
'iibengali'                    => chr(2440),
'iicyrillic'                   => chr(1080),
'iideva'                       => chr(2312),
'iigujarati'                   => chr(2696),
'iigurmukhi'                   => chr(2568),
'iimatragurmukhi'              => chr(2624),
'iinvertedbreve'               => chr(523),
'iishortcyrillic'              => chr(1081),
'iivowelsignbengali'           => chr(2496),
'iivowelsigndeva'              => chr(2368),
'iivowelsigngujarati'          => chr(2752),
'ij'                           => chr(307),
'ikatakana'                    => chr(12452),
'ikatakanahalfwidth'           => chr(65394),
'ikorean'                      => chr(12643),
'ilde'                         => chr(732),
'iluyhebrew'                   => chr(1452),
'imacron'                      => chr(299),
'imacroncyrillic'              => chr(1251),
'imageorapproximatelyequal'    => chr(8787),
'imatragurmukhi'               => chr(2623),
'imonospace'                   => chr(65353),
'increment'                    => chr(8710),
'infinity'                     => chr(8734),
'iniarmenian'                  => chr(1387),
'integral'                     => chr(8747),
'integralbottom'               => chr(8993),
'integralbt'                   => chr(8993),
'integralex'                   => chr(63733),
'integraltop'                  => chr(8992),
'integraltp'                   => chr(8992),
'intersection'                 => chr(8745),
'intisquare'                   => chr(13061),
'invbullet'                    => chr(9688),
'invcircle'                    => chr(9689),
'invsmileface'                 => chr(9787),
'iocyrillic'                   => chr(1105),
'iogonek'                      => chr(303),
'iota'                         => chr(953),
'iotadieresis'                 => chr(970),
'iotadieresistonos'            => chr(912),
'iotalatin'                    => chr(617),
'iotatonos'                    => chr(943),
'iparen'                       => chr(9380),
'irigurmukhi'                  => chr(2674),
'ismallhiragana'               => chr(12355),
'ismallkatakana'               => chr(12451),
'ismallkatakanahalfwidth'      => chr(65384),
'issharbengali'                => chr(2554),
'istroke'                      => chr(616),
'isuperior'                    => chr(63213),
'iterationhiragana'            => chr(12445),
'iterationkatakana'            => chr(12541),
'itilde'                       => chr(297),
'itildebelow'                  => chr(7725),
'iubopomofo'                   => chr(12585),
'iucyrillic'                   => chr(1102),
'ivowelsignbengali'            => chr(2495),
'ivowelsigndeva'               => chr(2367),
'ivowelsigngujarati'           => chr(2751),
'izhitsacyrillic'              => chr(1141),
'izhitsadblgravecyrillic'      => chr(1143),
'j'                            => chr(106),
'jaarmenian'                   => chr(1393),
'jabengali'                    => chr(2460),
'jadeva'                       => chr(2332),
'jagujarati'                   => chr(2716),
'jagurmukhi'                   => chr(2588),
'jbopomofo'                    => chr(12560),
'jcaron'                       => chr(496),
'jcircle'                      => chr(9433),
'jcircumflex'                  => chr(309),
'jcrossedtail'                 => chr(669),
'jdotlessstroke'               => chr(607),
'jecyrillic'                   => chr(1112),
'jeemarabic'                   => chr(1580),
'jeemfinalarabic'              => chr(65182),
'jeeminitialarabic'            => chr(65183),
'jeemmedialarabic'             => chr(65184),
'jeharabic'                    => chr(1688),
'jehfinalarabic'               => chr(64395),
'jhabengali'                   => chr(2461),
'jhadeva'                      => chr(2333),
'jhagujarati'                  => chr(2717),
'jhagurmukhi'                  => chr(2589),
'jheharmenian'                 => chr(1403),
'jis'                          => chr(12292),
'jmonospace'                   => chr(65354),
'jparen'                       => chr(9381),
'jsuperior'                    => chr(690),
'k'                            => chr(107),
'kabashkircyrillic'            => chr(1185),
'kabengali'                    => chr(2453),
'kacute'                       => chr(7729),
'kacyrillic'                   => chr(1082),
'kadescendercyrillic'          => chr(1179),
'kadeva'                       => chr(2325),
'kaf'                          => chr(1499),
'kafarabic'                    => chr(1603),
'kafdagesh'                    => chr(64315),
'kafdageshhebrew'              => chr(64315),
'kaffinalarabic'               => chr(65242),
'kafhebrew'                    => chr(1499),
'kafinitialarabic'             => chr(65243),
'kafmedialarabic'              => chr(65244),
'kafrafehebrew'                => chr(64333),
'kagujarati'                   => chr(2709),
'kagurmukhi'                   => chr(2581),
'kahiragana'                   => chr(12363),
'kahookcyrillic'               => chr(1220),
'kakatakana'                   => chr(12459),
'kakatakanahalfwidth'          => chr(65398),
'kappa'                        => chr(954),
'kappasymbolgreek'             => chr(1008),
'kapyeounmieumkorean'          => chr(12657),
'kapyeounphieuphkorean'        => chr(12676),
'kapyeounpieupkorean'          => chr(12664),
'kapyeounssangpieupkorean'     => chr(12665),
'karoriisquare'                => chr(13069),
'kashidaautoarabic'            => chr(1600),
'kashidaautonosidebearingarabic' => chr(1600),
'kasmallkatakana'              => chr(12533),
'kasquare'                     => chr(13188),
'kasraarabic'                  => chr(1616),
'kasratanarabic'               => chr(1613),
'kastrokecyrillic'             => chr(1183),
'katahiraprolongmarkhalfwidth' => chr(65392),
'kaverticalstrokecyrillic'     => chr(1181),
'kbopomofo'                    => chr(12558),
'kcalsquare'                   => chr(13193),
'kcaron'                       => chr(489),
'kcedilla'                     => chr(311),
'kcircle'                      => chr(9434),
'kcommaaccent'                 => chr(311),
'kdotbelow'                    => chr(7731),
'keharmenian'                  => chr(1412),
'kehiragana'                   => chr(12369),
'kekatakana'                   => chr(12465),
'kekatakanahalfwidth'          => chr(65401),
'kenarmenian'                  => chr(1391),
'kesmallkatakana'              => chr(12534),
'kgreenlandic'                 => chr(312),
'khabengali'                   => chr(2454),
'khacyrillic'                  => chr(1093),
'khadeva'                      => chr(2326),
'khagujarati'                  => chr(2710),
'khagurmukhi'                  => chr(2582),
'khaharabic'                   => chr(1582),
'khahfinalarabic'              => chr(65190),
'khahinitialarabic'            => chr(65191),
'khahmedialarabic'             => chr(65192),
'kheicoptic'                   => chr(999),
'khhadeva'                     => chr(2393),
'khhagurmukhi'                 => chr(2649),
'khieukhacirclekorean'         => chr(12920),
'khieukhaparenkorean'          => chr(12824),
'khieukhcirclekorean'          => chr(12906),
'khieukhkorean'                => chr(12619),
'khieukhparenkorean'           => chr(12810),
'khokhaithai'                  => chr(3586),
'khokhonthai'                  => chr(3589),
'khokhuatthai'                 => chr(3587),
'khokhwaithai'                 => chr(3588),
'khomutthai'                   => chr(3675),
'khook'                        => chr(409),
'khorakhangthai'               => chr(3590),
'khzsquare'                    => chr(13201),
'kihiragana'                   => chr(12365),
'kikatakana'                   => chr(12461),
'kikatakanahalfwidth'          => chr(65399),
'kiroguramusquare'             => chr(13077),
'kiromeetorusquare'            => chr(13078),
'kirosquare'                   => chr(13076),
'kiyeokacirclekorean'          => chr(12910),
'kiyeokaparenkorean'           => chr(12814),
'kiyeokcirclekorean'           => chr(12896),
'kiyeokkorean'                 => chr(12593),
'kiyeokparenkorean'            => chr(12800),
'kiyeoksioskorean'             => chr(12595),
'kjecyrillic'                  => chr(1116),
'klinebelow'                   => chr(7733),
'klsquare'                     => chr(13208),
'kmcubedsquare'                => chr(13222),
'kmonospace'                   => chr(65355),
'kmsquaredsquare'              => chr(13218),
'kohiragana'                   => chr(12371),
'kohmsquare'                   => chr(13248),
'kokaithai'                    => chr(3585),
'kokatakana'                   => chr(12467),
'kokatakanahalfwidth'          => chr(65402),
'kooposquare'                  => chr(13086),
'koppacyrillic'                => chr(1153),
'koreanstandardsymbol'         => chr(12927),
'koroniscmb'                   => chr(835),
'kparen'                       => chr(9382),
'kpasquare'                    => chr(13226),
'ksicyrillic'                  => chr(1135),
'ktsquare'                     => chr(13263),
'kturned'                      => chr(670),
'kuhiragana'                   => chr(12367),
'kukatakana'                   => chr(12463),
'kukatakanahalfwidth'          => chr(65400),
'kvsquare'                     => chr(13240),
'kwsquare'                     => chr(13246),
'l'                            => chr(108),
'labengali'                    => chr(2482),
'lacute'                       => chr(314),
'ladeva'                       => chr(2354),
'lagujarati'                   => chr(2738),
'lagurmukhi'                   => chr(2610),
'lakkhangyaothai'              => chr(3653),
'lamaleffinalarabic'           => chr(65276),
'lamalefhamzaabovefinalarabic' => chr(65272),
'lamalefhamzaaboveisolatedarabic' => chr(65271),
'lamalefhamzabelowfinalarabic' => chr(65274),
'lamalefhamzabelowisolatedarabic' => chr(65273),
'lamalefisolatedarabic'        => chr(65275),
'lamalefmaddaabovefinalarabic' => chr(65270),
'lamalefmaddaaboveisolatedarabic' => chr(65269),
'lamarabic'                    => chr(1604),
'lambda'                       => chr(955),
'lambdastroke'                 => chr(411),
'lamed'                        => chr(1500),
'lameddagesh'                  => chr(64316),
'lameddageshhebrew'            => chr(64316),
'lamedhebrew'                  => chr(1500),
'lamedholam'                   => chr(1500),
'lamedholamdagesh'             => chr(1500),
'lamedholamdageshhebrew'       => chr(1500),
'lamedholamhebrew'             => chr(1500),
'lamfinalarabic'               => chr(65246),
'lamhahinitialarabic'          => chr(64714),
'laminitialarabic'             => chr(65247),
'lamjeeminitialarabic'         => chr(64713),
'lamkhahinitialarabic'         => chr(64715),
'lamlamhehisolatedarabic'      => chr(65010),
'lammedialarabic'              => chr(65248),
'lammeemhahinitialarabic'      => chr(64904),
'lammeeminitialarabic'         => chr(64716),
'lammeemjeeminitialarabic'     => chr(65247),
'lammeemkhahinitialarabic'     => chr(65247),
'largecircle'                  => chr(9711),
'lbar'                         => chr(410),
'lbelt'                        => chr(620),
'lbopomofo'                    => chr(12556),
'lcaron'                       => chr(318),
'lcedilla'                     => chr(316),
'lcircle'                      => chr(9435),
'lcircumflexbelow'             => chr(7741),
'lcommaaccent'                 => chr(316),
'ldot'                         => chr(320),
'ldotaccent'                   => chr(320),
'ldotbelow'                    => chr(7735),
'ldotbelowmacron'              => chr(7737),
'leftangleabovecmb'            => chr(794),
'lefttackbelowcmb'             => chr(792),
'less'                         => chr(60),
'lessequal'                    => chr(8804),
'lessequalorgreater'           => chr(8922),
'lessmonospace'                => chr(65308),
'lessorequivalent'             => chr(8818),
'lessorgreater'                => chr(8822),
'lessoverequal'                => chr(8806),
'lesssmall'                    => chr(65124),
'lezh'                         => chr(622),
'lfblock'                      => chr(9612),
'lhookretroflex'               => chr(621),
'lira'                         => chr(8356),
'liwnarmenian'                 => chr(1388),
'lj'                           => chr(457),
'ljecyrillic'                  => chr(1113),
'll'                           => chr(63168),
'lladeva'                      => chr(2355),
'llagujarati'                  => chr(2739),
'llinebelow'                   => chr(7739),
'llladeva'                     => chr(2356),
'llvocalicbengali'             => chr(2529),
'llvocalicdeva'                => chr(2401),
'llvocalicvowelsignbengali'    => chr(2531),
'llvocalicvowelsigndeva'       => chr(2403),
'lmiddletilde'                 => chr(619),
'lmonospace'                   => chr(65356),
'lmsquare'                     => chr(13264),
'lochulathai'                  => chr(3628),
'logicaland'                   => chr(8743),
'logicalnot'                   => chr(172),
'logicalnotreversed'           => chr(8976),
'logicalor'                    => chr(8744),
'lolingthai'                   => chr(3621),
'longs'                        => chr(383),
'lowlinecenterline'            => chr(65102),
'lowlinecmb'                   => chr(818),
'lowlinedashed'                => chr(65101),
'lozenge'                      => chr(9674),
'lparen'                       => chr(9383),
'lslash'                       => chr(322),
'lsquare'                      => chr(8467),
'lsuperior'                    => chr(63214),
'ltshade'                      => chr(9617),
'luthai'                       => chr(3622),
'lvocalicbengali'              => chr(2444),
'lvocalicdeva'                 => chr(2316),
'lvocalicvowelsignbengali'     => chr(2530),
'lvocalicvowelsigndeva'        => chr(2402),
'lxsquare'                     => chr(13267),
'm'                            => chr(109),
'mabengali'                    => chr(2478),
'macron'                       => chr(175),
'macronbelowcmb'               => chr(817),
'macroncmb'                    => chr(772),
'macronlowmod'                 => chr(717),
'macronmonospace'              => chr(65507),
'macute'                       => chr(7743),
'madeva'                       => chr(2350),
'magujarati'                   => chr(2734),
'magurmukhi'                   => chr(2606),
'mahapakhhebrew'               => chr(1444),
'mahapakhlefthebrew'           => chr(1444),
'mahiragana'                   => chr(12414),
'maichattawalowleftthai'       => chr(63637),
'maichattawalowrightthai'      => chr(63636),
'maichattawathai'              => chr(3659),
'maichattawaupperleftthai'     => chr(63635),
'maieklowleftthai'             => chr(63628),
'maieklowrightthai'            => chr(63627),
'maiekthai'                    => chr(3656),
'maiekupperleftthai'           => chr(63626),
'maihanakatleftthai'           => chr(63620),
'maihanakatthai'               => chr(3633),
'maitaikhuleftthai'            => chr(63625),
'maitaikhuthai'                => chr(3655),
'maitholowleftthai'            => chr(63631),
'maitholowrightthai'           => chr(63630),
'maithothai'                   => chr(3657),
'maithoupperleftthai'          => chr(63629),
'maitrilowleftthai'            => chr(63634),
'maitrilowrightthai'           => chr(63633),
'maitrithai'                   => chr(3658),
'maitriupperleftthai'          => chr(63632),
'maiyamokthai'                 => chr(3654),
'makatakana'                   => chr(12510),
'makatakanahalfwidth'          => chr(65423),
'male'                         => chr(9794),
'mansyonsquare'                => chr(13127),
'maqafhebrew'                  => chr(1470),
'mars'                         => chr(9794),
'masoracirclehebrew'           => chr(1455),
'masquare'                     => chr(13187),
'mbopomofo'                    => chr(12551),
'mbsquare'                     => chr(13268),
'mcircle'                      => chr(9436),
'mcubedsquare'                 => chr(13221),
'mdotaccent'                   => chr(7745),
'mdotbelow'                    => chr(7747),
'meemarabic'                   => chr(1605),
'meemfinalarabic'              => chr(65250),
'meeminitialarabic'            => chr(65251),
'meemmedialarabic'             => chr(65252),
'meemmeeminitialarabic'        => chr(64721),
'meemmeemisolatedarabic'       => chr(64584),
'meetorusquare'                => chr(13133),
'mehiragana'                   => chr(12417),
'meizierasquare'               => chr(13182),
'mekatakana'                   => chr(12513),
'mekatakanahalfwidth'          => chr(65426),
'mem'                          => chr(1502),
'memdagesh'                    => chr(64318),
'memdageshhebrew'              => chr(64318),
'memhebrew'                    => chr(1502),
'menarmenian'                  => chr(1396),
'merkhahebrew'                 => chr(1445),
'merkhakefulahebrew'           => chr(1446),
'merkhakefulalefthebrew'       => chr(1446),
'merkhalefthebrew'             => chr(1445),
'mhook'                        => chr(625),
'mhzsquare'                    => chr(13202),
'middledotkatakanahalfwidth'   => chr(65381),
'middot'                       => chr(183),
'mieumacirclekorean'           => chr(12914),
'mieumaparenkorean'            => chr(12818),
'mieumcirclekorean'            => chr(12900),
'mieumkorean'                  => chr(12609),
'mieumpansioskorean'           => chr(12656),
'mieumparenkorean'             => chr(12804),
'mieumpieupkorean'             => chr(12654),
'mieumsioskorean'              => chr(12655),
'mihiragana'                   => chr(12415),
'mikatakana'                   => chr(12511),
'mikatakanahalfwidth'          => chr(65424),
'minus'                        => chr(8722),
'minusbelowcmb'                => chr(800),
'minuscircle'                  => chr(8854),
'minusmod'                     => chr(727),
'minusplus'                    => chr(8723),
'minute'                       => chr(8242),
'miribaarusquare'              => chr(13130),
'mirisquare'                   => chr(13129),
'mlonglegturned'               => chr(624),
'mlsquare'                     => chr(13206),
'mmcubedsquare'                => chr(13219),
'mmonospace'                   => chr(65357),
'mmsquaredsquare'              => chr(13215),
'mohiragana'                   => chr(12418),
'mohmsquare'                   => chr(13249),
'mokatakana'                   => chr(12514),
'mokatakanahalfwidth'          => chr(65427),
'molsquare'                    => chr(13270),
'momathai'                     => chr(3617),
'moverssquare'                 => chr(13223),
'moverssquaredsquare'          => chr(13224),
'mparen'                       => chr(9384),
'mpasquare'                    => chr(13227),
'mssquare'                     => chr(13235),
'msuperior'                    => chr(63215),
'mturned'                      => chr(623),
'mu'                           => chr(181),
'mu1'                          => chr(181),
'muasquare'                    => chr(13186),
'muchgreater'                  => chr(8811),
'muchless'                     => chr(8810),
'mufsquare'                    => chr(13196),
'mugreek'                      => chr(956),
'mugsquare'                    => chr(13197),
'muhiragana'                   => chr(12416),
'mukatakana'                   => chr(12512),
'mukatakanahalfwidth'          => chr(65425),
'mulsquare'                    => chr(13205),
'multiply'                     => chr(215),
'mumsquare'                    => chr(13211),
'munahhebrew'                  => chr(1443),
'munahlefthebrew'              => chr(1443),
'musicalnote'                  => chr(9834),
'musicalnotedbl'               => chr(9835),
'musicflatsign'                => chr(9837),
'musicsharpsign'               => chr(9839),
'mussquare'                    => chr(13234),
'muvsquare'                    => chr(13238),
'muwsquare'                    => chr(13244),
'mvmegasquare'                 => chr(13241),
'mvsquare'                     => chr(13239),
'mwmegasquare'                 => chr(13247),
'mwsquare'                     => chr(13245),
'n'                            => chr(110),
'nabengali'                    => chr(2472),
'nabla'                        => chr(8711),
'nacute'                       => chr(324),
'nadeva'                       => chr(2344),
'nagujarati'                   => chr(2728),
'nagurmukhi'                   => chr(2600),
'nahiragana'                   => chr(12394),
'nakatakana'                   => chr(12490),
'nakatakanahalfwidth'          => chr(65413),
'napostrophe'                  => chr(329),
'nasquare'                     => chr(13185),
'nbopomofo'                    => chr(12555),
'nbspace'                      => chr(160),
'ncaron'                       => chr(328),
'ncedilla'                     => chr(326),
'ncircle'                      => chr(9437),
'ncircumflexbelow'             => chr(7755),
'ncommaaccent'                 => chr(326),
'ndotaccent'                   => chr(7749),
'ndotbelow'                    => chr(7751),
'nehiragana'                   => chr(12397),
'nekatakana'                   => chr(12493),
'nekatakanahalfwidth'          => chr(65416),
'newsheqelsign'                => chr(8362),
'nfsquare'                     => chr(13195),
'ngabengali'                   => chr(2457),
'ngadeva'                      => chr(2329),
'ngagujarati'                  => chr(2713),
'ngagurmukhi'                  => chr(2585),
'ngonguthai'                   => chr(3591),
'nhiragana'                    => chr(12435),
'nhookleft'                    => chr(626),
'nhookretroflex'               => chr(627),
'nieunacirclekorean'           => chr(12911),
'nieunaparenkorean'            => chr(12815),
'nieuncieuckorean'             => chr(12597),
'nieuncirclekorean'            => chr(12897),
'nieunhieuhkorean'             => chr(12598),
'nieunkorean'                  => chr(12596),
'nieunpansioskorean'           => chr(12648),
'nieunparenkorean'             => chr(12801),
'nieunsioskorean'              => chr(12647),
'nieuntikeutkorean'            => chr(12646),
'nihiragana'                   => chr(12395),
'nikatakana'                   => chr(12491),
'nikatakanahalfwidth'          => chr(65414),
'nikhahitleftthai'             => chr(63641),
'nikhahitthai'                 => chr(3661),
'nine'                         => chr(57),
'ninearabic'                   => chr(1641),
'ninebengali'                  => chr(2543),
'ninecircle'                   => chr(9320),
'ninecircleinversesansserif'   => chr(10130),
'ninedeva'                     => chr(2415),
'ninegujarati'                 => chr(2799),
'ninegurmukhi'                 => chr(2671),
'ninehackarabic'               => chr(1641),
'ninehangzhou'                 => chr(12329),
'nineideographicparen'         => chr(12840),
'nineinferior'                 => chr(8329),
'ninemonospace'                => chr(65305),
'nineoldstyle'                 => chr(63289),
'nineparen'                    => chr(9340),
'nineperiod'                   => chr(9360),
'ninepersian'                  => chr(1785),
'nineroman'                    => chr(8568),
'ninesuperior'                 => chr(8313),
'nineteencircle'               => chr(9330),
'nineteenparen'                => chr(9350),
'nineteenperiod'               => chr(9370),
'ninethai'                     => chr(3673),
'nj'                           => chr(460),
'njecyrillic'                  => chr(1114),
'nkatakana'                    => chr(12531),
'nkatakanahalfwidth'           => chr(65437),
'nlegrightlong'                => chr(414),
'nlinebelow'                   => chr(7753),
'nmonospace'                   => chr(65358),
'nmsquare'                     => chr(13210),
'nnabengali'                   => chr(2467),
'nnadeva'                      => chr(2339),
'nnagujarati'                  => chr(2723),
'nnagurmukhi'                  => chr(2595),
'nnnadeva'                     => chr(2345),
'nohiragana'                   => chr(12398),
'nokatakana'                   => chr(12494),
'nokatakanahalfwidth'          => chr(65417),
'nonbreakingspace'             => chr(160),
'nonenthai'                    => chr(3603),
'nonuthai'                     => chr(3609),
'noonarabic'                   => chr(1606),
'noonfinalarabic'              => chr(65254),
'noonghunnaarabic'             => chr(1722),
'noonghunnafinalarabic'        => chr(64415),
'noonhehinitialarabic'         => chr(65255),
'nooninitialarabic'            => chr(65255),
'noonjeeminitialarabic'        => chr(64722),
'noonjeemisolatedarabic'       => chr(64587),
'noonmedialarabic'             => chr(65256),
'noonmeeminitialarabic'        => chr(64725),
'noonmeemisolatedarabic'       => chr(64590),
'noonnoonfinalarabic'          => chr(64653),
'notcontains'                  => chr(8716),
'notelement'                   => chr(8713),
'notelementof'                 => chr(8713),
'notequal'                     => chr(8800),
'notgreater'                   => chr(8815),
'notgreaternorequal'           => chr(8817),
'notgreaternorless'            => chr(8825),
'notidentical'                 => chr(8802),
'notless'                      => chr(8814),
'notlessnorequal'              => chr(8816),
'notparallel'                  => chr(8742),
'notprecedes'                  => chr(8832),
'notsubset'                    => chr(8836),
'notsucceeds'                  => chr(8833),
'notsuperset'                  => chr(8837),
'nowarmenian'                  => chr(1398),
'nparen'                       => chr(9385),
'nssquare'                     => chr(13233),
'nsuperior'                    => chr(8319),
'ntilde'                       => chr(241),
'nu'                           => chr(957),
'nuhiragana'                   => chr(12396),
'nukatakana'                   => chr(12492),
'nukatakanahalfwidth'          => chr(65415),
'nuktabengali'                 => chr(2492),
'nuktadeva'                    => chr(2364),
'nuktagujarati'                => chr(2748),
'nuktagurmukhi'                => chr(2620),
'numbersign'                   => chr(35),
'numbersignmonospace'          => chr(65283),
'numbersignsmall'              => chr(65119),
'numeralsigngreek'             => chr(884),
'numeralsignlowergreek'        => chr(885),
'numero'                       => chr(8470),
'nun'                          => chr(1504),
'nundagesh'                    => chr(64320),
'nundageshhebrew'              => chr(64320),
'nunhebrew'                    => chr(1504),
'nvsquare'                     => chr(13237),
'nwsquare'                     => chr(13243),
'nyabengali'                   => chr(2462),
'nyadeva'                      => chr(2334),
'nyagujarati'                  => chr(2718),
'nyagurmukhi'                  => chr(2590),
'o'                            => chr(111),
'oacute'                       => chr(243),
'oangthai'                     => chr(3629),
'obarred'                      => chr(629),
'obarredcyrillic'              => chr(1257),
'obarreddieresiscyrillic'      => chr(1259),
'obengali'                     => chr(2451),
'obopomofo'                    => chr(12571),
'obreve'                       => chr(335),
'ocandradeva'                  => chr(2321),
'ocandragujarati'              => chr(2705),
'ocandravowelsigndeva'         => chr(2377),
'ocandravowelsigngujarati'     => chr(2761),
'ocaron'                       => chr(466),
'ocircle'                      => chr(9438),
'ocircumflex'                  => chr(244),
'ocircumflexacute'             => chr(7889),
'ocircumflexdotbelow'          => chr(7897),
'ocircumflexgrave'             => chr(7891),
'ocircumflexhookabove'         => chr(7893),
'ocircumflextilde'             => chr(7895),
'ocyrillic'                    => chr(1086),
'odblacute'                    => chr(337),
'odblgrave'                    => chr(525),
'odeva'                        => chr(2323),
'odieresis'                    => chr(246),
'odieresiscyrillic'            => chr(1255),
'odotbelow'                    => chr(7885),
'oe'                           => chr(339),
'oekorean'                     => chr(12634),
'ogonek'                       => chr(731),
'ogonekcmb'                    => chr(808),
'ograve'                       => chr(242),
'ogujarati'                    => chr(2707),
'oharmenian'                   => chr(1413),
'ohiragana'                    => chr(12362),
'ohookabove'                   => chr(7887),
'ohorn'                        => chr(417),
'ohornacute'                   => chr(7899),
'ohorndotbelow'                => chr(7907),
'ohorngrave'                   => chr(7901),
'ohornhookabove'               => chr(7903),
'ohorntilde'                   => chr(7905),
'ohungarumlaut'                => chr(337),
'oi'                           => chr(419),
'oinvertedbreve'               => chr(527),
'okatakana'                    => chr(12458),
'okatakanahalfwidth'           => chr(65397),
'okorean'                      => chr(12631),
'olehebrew'                    => chr(1451),
'omacron'                      => chr(333),
'omacronacute'                 => chr(7763),
'omacrongrave'                 => chr(7761),
'omdeva'                       => chr(2384),
'omega'                        => chr(969),
'omega1'                       => chr(982),
'omegacyrillic'                => chr(1121),
'omegalatinclosed'             => chr(631),
'omegaroundcyrillic'           => chr(1147),
'omegatitlocyrillic'           => chr(1149),
'omegatonos'                   => chr(974),
'omgujarati'                   => chr(2768),
'omicron'                      => chr(959),
'omicrontonos'                 => chr(972),
'omonospace'                   => chr(65359),
'one'                          => chr(49),
'onearabic'                    => chr(1633),
'onebengali'                   => chr(2535),
'onecircle'                    => chr(9312),
'onecircleinversesansserif'    => chr(10122),
'onedeva'                      => chr(2407),
'onedotenleader'               => chr(8228),
'oneeighth'                    => chr(8539),
'onefitted'                    => chr(63196),
'onegujarati'                  => chr(2791),
'onegurmukhi'                  => chr(2663),
'onehackarabic'                => chr(1633),
'onehalf'                      => chr(189),
'onehangzhou'                  => chr(12321),
'oneideographicparen'          => chr(12832),
'oneinferior'                  => chr(8321),
'onemonospace'                 => chr(65297),
'onenumeratorbengali'          => chr(2548),
'oneoldstyle'                  => chr(63281),
'oneparen'                     => chr(9332),
'oneperiod'                    => chr(9352),
'onepersian'                   => chr(1777),
'onequarter'                   => chr(188),
'oneroman'                     => chr(8560),
'onesuperior'                  => chr(185),
'onethai'                      => chr(3665),
'onethird'                     => chr(8531),
'oogonek'                      => chr(491),
'oogonekmacron'                => chr(493),
'oogurmukhi'                   => chr(2579),
'oomatragurmukhi'              => chr(2635),
'oopen'                        => chr(596),
'oparen'                       => chr(9386),
'openbullet'                   => chr(9702),
'option'                       => chr(8997),
'ordfeminine'                  => chr(170),
'ordmasculine'                 => chr(186),
'orthogonal'                   => chr(8735),
'oshortdeva'                   => chr(2322),
'oshortvowelsigndeva'          => chr(2378),
'oslash'                       => chr(248),
'oslashacute'                  => chr(511),
'osmallhiragana'               => chr(12361),
'osmallkatakana'               => chr(12457),
'osmallkatakanahalfwidth'      => chr(65387),
'ostrokeacute'                 => chr(511),
'osuperior'                    => chr(63216),
'otcyrillic'                   => chr(1151),
'otilde'                       => chr(245),
'otildeacute'                  => chr(7757),
'otildedieresis'               => chr(7759),
'oubopomofo'                   => chr(12577),
'overline'                     => chr(8254),
'overlinecenterline'           => chr(65098),
'overlinecmb'                  => chr(773),
'overlinedashed'               => chr(65097),
'overlinedblwavy'              => chr(65100),
'overlinewavy'                 => chr(65099),
'overscore'                    => chr(175),
'ovowelsignbengali'            => chr(2507),
'ovowelsigndeva'               => chr(2379),
'ovowelsigngujarati'           => chr(2763),
'p'                            => chr(112),
'paampssquare'                 => chr(13184),
'paasentosquare'               => chr(13099),
'pabengali'                    => chr(2474),
'pacute'                       => chr(7765),
'padeva'                       => chr(2346),
'pagedown'                     => chr(8671),
'pageup'                       => chr(8670),
'pagujarati'                   => chr(2730),
'pagurmukhi'                   => chr(2602),
'pahiragana'                   => chr(12401),
'paiyannoithai'                => chr(3631),
'pakatakana'                   => chr(12497),
'palatalizationcyrilliccmb'    => chr(1156),
'palochkacyrillic'             => chr(1216),
'pansioskorean'                => chr(12671),
'paragraph'                    => chr(182),
'parallel'                     => chr(8741),
'parenleft'                    => chr(40),
'parenleftaltonearabic'        => chr(64830),
'parenleftbt'                  => chr(63725),
'parenleftex'                  => chr(63724),
'parenleftinferior'            => chr(8333),
'parenleftmonospace'           => chr(65288),
'parenleftsmall'               => chr(65113),
'parenleftsuperior'            => chr(8317),
'parenlefttp'                  => chr(63723),
'parenleftvertical'            => chr(65077),
'parenright'                   => chr(41),
'parenrightaltonearabic'       => chr(64831),
'parenrightbt'                 => chr(63736),
'parenrightex'                 => chr(63735),
'parenrightinferior'           => chr(8334),
'parenrightmonospace'          => chr(65289),
'parenrightsmall'              => chr(65114),
'parenrightsuperior'           => chr(8318),
'parenrighttp'                 => chr(63734),
'parenrightvertical'           => chr(65078),
'partialdiff'                  => chr(8706),
'paseqhebrew'                  => chr(1472),
'pashtahebrew'                 => chr(1433),
'pasquare'                     => chr(13225),
'patah'                        => chr(1463),
'patah11'                      => chr(1463),
'patah1d'                      => chr(1463),
'patah2a'                      => chr(1463),
'patahhebrew'                  => chr(1463),
'patahnarrowhebrew'            => chr(1463),
'patahquarterhebrew'           => chr(1463),
'patahwidehebrew'              => chr(1463),
'pazerhebrew'                  => chr(1441),
'pbopomofo'                    => chr(12550),
'pcircle'                      => chr(9439),
'pdotaccent'                   => chr(7767),
'pe'                           => chr(1508),
'pecyrillic'                   => chr(1087),
'pedagesh'                     => chr(64324),
'pedageshhebrew'               => chr(64324),
'peezisquare'                  => chr(13115),
'pefinaldageshhebrew'          => chr(64323),
'peharabic'                    => chr(1662),
'peharmenian'                  => chr(1402),
'pehebrew'                     => chr(1508),
'pehfinalarabic'               => chr(64343),
'pehinitialarabic'             => chr(64344),
'pehiragana'                   => chr(12410),
'pehmedialarabic'              => chr(64345),
'pekatakana'                   => chr(12506),
'pemiddlehookcyrillic'         => chr(1191),
'perafehebrew'                 => chr(64334),
'percent'                      => chr(37),
'percentarabic'                => chr(1642),
'percentmonospace'             => chr(65285),
'percentsmall'                 => chr(65130),
'period'                       => chr(46),
'periodarmenian'               => chr(1417),
'periodcentered'               => chr(183),
'periodhalfwidth'              => chr(65377),
'periodinferior'               => chr(63207),
'periodmonospace'              => chr(65294),
'periodsmall'                  => chr(65106),
'periodsuperior'               => chr(63208),
'perispomenigreekcmb'          => chr(834),
'perpendicular'                => chr(8869),
'perthousand'                  => chr(8240),
'peseta'                       => chr(8359),
'pfsquare'                     => chr(13194),
'phabengali'                   => chr(2475),
'phadeva'                      => chr(2347),
'phagujarati'                  => chr(2731),
'phagurmukhi'                  => chr(2603),
'phi'                          => chr(966),
'phi1'                         => chr(981),
'phieuphacirclekorean'         => chr(12922),
'phieuphaparenkorean'          => chr(12826),
'phieuphcirclekorean'          => chr(12908),
'phieuphkorean'                => chr(12621),
'phieuphparenkorean'           => chr(12812),
'philatin'                     => chr(632),
'phinthuthai'                  => chr(3642),
'phisymbolgreek'               => chr(981),
'phook'                        => chr(421),
'phophanthai'                  => chr(3614),
'phophungthai'                 => chr(3612),
'phosamphaothai'               => chr(3616),
'pi'                           => chr(960),
'pieupacirclekorean'           => chr(12915),
'pieupaparenkorean'            => chr(12819),
'pieupcieuckorean'             => chr(12662),
'pieupcirclekorean'            => chr(12901),
'pieupkiyeokkorean'            => chr(12658),
'pieupkorean'                  => chr(12610),
'pieupparenkorean'             => chr(12805),
'pieupsioskiyeokkorean'        => chr(12660),
'pieupsioskorean'              => chr(12612),
'pieupsiostikeutkorean'        => chr(12661),
'pieupthieuthkorean'           => chr(12663),
'pieuptikeutkorean'            => chr(12659),
'pihiragana'                   => chr(12404),
'pikatakana'                   => chr(12500),
'pisymbolgreek'                => chr(982),
'piwrarmenian'                 => chr(1411),
'plus'                         => chr(43),
'plusbelowcmb'                 => chr(799),
'pluscircle'                   => chr(8853),
'plusminus'                    => chr(177),
'plusmod'                      => chr(726),
'plusmonospace'                => chr(65291),
'plussmall'                    => chr(65122),
'plussuperior'                 => chr(8314),
'pmonospace'                   => chr(65360),
'pmsquare'                     => chr(13272),
'pohiragana'                   => chr(12413),
'pointingindexdownwhite'       => chr(9759),
'pointingindexleftwhite'       => chr(9756),
'pointingindexrightwhite'      => chr(9758),
'pointingindexupwhite'         => chr(9757),
'pokatakana'                   => chr(12509),
'poplathai'                    => chr(3611),
'postalmark'                   => chr(12306),
'postalmarkface'               => chr(12320),
'pparen'                       => chr(9387),
'precedes'                     => chr(8826),
'prescription'                 => chr(8478),
'primemod'                     => chr(697),
'primereversed'                => chr(8245),
'product'                      => chr(8719),
'projective'                   => chr(8965),
'prolongedkana'                => chr(12540),
'propellor'                    => chr(8984),
'propersubset'                 => chr(8834),
'propersuperset'               => chr(8835),
'proportion'                   => chr(8759),
'proportional'                 => chr(8733),
'psi'                          => chr(968),
'psicyrillic'                  => chr(1137),
'psilipneumatacyrilliccmb'     => chr(1158),
'pssquare'                     => chr(13232),
'puhiragana'                   => chr(12407),
'pukatakana'                   => chr(12503),
'pvsquare'                     => chr(13236),
'pwsquare'                     => chr(13242),
'q'                            => chr(113),
'qadeva'                       => chr(2392),
'qadmahebrew'                  => chr(1448),
'qafarabic'                    => chr(1602),
'qaffinalarabic'               => chr(65238),
'qafinitialarabic'             => chr(65239),
'qafmedialarabic'              => chr(65240),
'qamats'                       => chr(1464),
'qamats10'                     => chr(1464),
'qamats1a'                     => chr(1464),
'qamats1c'                     => chr(1464),
'qamats27'                     => chr(1464),
'qamats29'                     => chr(1464),
'qamats33'                     => chr(1464),
'qamatsde'                     => chr(1464),
'qamatshebrew'                 => chr(1464),
'qamatsnarrowhebrew'           => chr(1464),
'qamatsqatanhebrew'            => chr(1464),
'qamatsqatannarrowhebrew'      => chr(1464),
'qamatsqatanquarterhebrew'     => chr(1464),
'qamatsqatanwidehebrew'        => chr(1464),
'qamatsquarterhebrew'          => chr(1464),
'qamatswidehebrew'             => chr(1464),
'qarneyparahebrew'             => chr(1439),
'qbopomofo'                    => chr(12561),
'qcircle'                      => chr(9440),
'qhook'                        => chr(672),
'qmonospace'                   => chr(65361),
'qof'                          => chr(1511),
'qofdagesh'                    => chr(64327),
'qofdageshhebrew'              => chr(64327),
'qofhatafpatah'                => chr(1511),
'qofhatafpatahhebrew'          => chr(1511),
'qofhatafsegol'                => chr(1511),
'qofhatafsegolhebrew'          => chr(1511),
'qofhebrew'                    => chr(1511),
'qofhiriq'                     => chr(1511),
'qofhiriqhebrew'               => chr(1511),
'qofholam'                     => chr(1511),
'qofholamhebrew'               => chr(1511),
'qofpatah'                     => chr(1511),
'qofpatahhebrew'               => chr(1511),
'qofqamats'                    => chr(1511),
'qofqamatshebrew'              => chr(1511),
'qofqubuts'                    => chr(1511),
'qofqubutshebrew'              => chr(1511),
'qofsegol'                     => chr(1511),
'qofsegolhebrew'               => chr(1511),
'qofsheva'                     => chr(1511),
'qofshevahebrew'               => chr(1511),
'qoftsere'                     => chr(1511),
'qoftserehebrew'               => chr(1511),
'qparen'                       => chr(9388),
'quarternote'                  => chr(9833),
'qubuts'                       => chr(1467),
'qubuts18'                     => chr(1467),
'qubuts25'                     => chr(1467),
'qubuts31'                     => chr(1467),
'qubutshebrew'                 => chr(1467),
'qubutsnarrowhebrew'           => chr(1467),
'qubutsquarterhebrew'          => chr(1467),
'qubutswidehebrew'             => chr(1467),
'question'                     => chr(63),
'questionarabic'               => chr(1567),
'questionarmenian'             => chr(1374),
'questiondown'                 => chr(191),
'questiondownsmall'            => chr(63423),
'questiongreek'                => chr(894),
'questionmonospace'            => chr(65311),
'questionsmall'                => chr(63295),
'quotedbl'                     => chr(34),
'quotedblbase'                 => chr(8222),
'quotedblleft'                 => chr(8220),
'quotedblmonospace'            => chr(65282),
'quotedblprime'                => chr(12318),
'quotedblprimereversed'        => chr(12317),
'quotedblright'                => chr(8221),
'quoteleft'                    => chr(8216),
'quoteleftreversed'            => chr(8219),
'quotereversed'                => chr(8219),
'quoteright'                   => chr(8217),
'quoterightn'                  => chr(329),
'quotesinglbase'               => chr(8218),
'quotesingle'                  => chr(39),
'quotesinglemonospace'         => chr(65287),
'r'                            => chr(114),
'raarmenian'                   => chr(1404),
'rabengali'                    => chr(2480),
'racute'                       => chr(341),
'radeva'                       => chr(2352),
'radical'                      => chr(8730),
'radicalex'                    => chr(63717),
'radoverssquare'               => chr(13230),
'radoverssquaredsquare'        => chr(13231),
'radsquare'                    => chr(13229),
'rafe'                         => chr(1471),
'rafehebrew'                   => chr(1471),
'ragujarati'                   => chr(2736),
'ragurmukhi'                   => chr(2608),
'rahiragana'                   => chr(12425),
'rakatakana'                   => chr(12521),
'rakatakanahalfwidth'          => chr(65431),
'ralowerdiagonalbengali'       => chr(2545),
'ramiddlediagonalbengali'      => chr(2544),
'ramshorn'                     => chr(612),
'ratio'                        => chr(8758),
'rbopomofo'                    => chr(12566),
'rcaron'                       => chr(345),
'rcedilla'                     => chr(343),
'rcircle'                      => chr(9441),
'rcommaaccent'                 => chr(343),
'rdblgrave'                    => chr(529),
'rdotaccent'                   => chr(7769),
'rdotbelow'                    => chr(7771),
'rdotbelowmacron'              => chr(7773),
'referencemark'                => chr(8251),
'reflexsubset'                 => chr(8838),
'reflexsuperset'               => chr(8839),
'registered'                   => chr(174),
'registersans'                 => chr(63720),
'registerserif'                => chr(63194),
'reharabic'                    => chr(1585),
'reharmenian'                  => chr(1408),
'rehfinalarabic'               => chr(65198),
'rehiragana'                   => chr(12428),
'rehyehaleflamarabic'          => chr(1585),
'rekatakana'                   => chr(12524),
'rekatakanahalfwidth'          => chr(65434),
'resh'                         => chr(1512),
'reshdageshhebrew'             => chr(64328),
'reshhatafpatah'               => chr(1512),
'reshhatafpatahhebrew'         => chr(1512),
'reshhatafsegol'               => chr(1512),
'reshhatafsegolhebrew'         => chr(1512),
'reshhebrew'                   => chr(1512),
'reshhiriq'                    => chr(1512),
'reshhiriqhebrew'              => chr(1512),
'reshholam'                    => chr(1512),
'reshholamhebrew'              => chr(1512),
'reshpatah'                    => chr(1512),
'reshpatahhebrew'              => chr(1512),
'reshqamats'                   => chr(1512),
'reshqamatshebrew'             => chr(1512),
'reshqubuts'                   => chr(1512),
'reshqubutshebrew'             => chr(1512),
'reshsegol'                    => chr(1512),
'reshsegolhebrew'              => chr(1512),
'reshsheva'                    => chr(1512),
'reshshevahebrew'              => chr(1512),
'reshtsere'                    => chr(1512),
'reshtserehebrew'              => chr(1512),
'reversedtilde'                => chr(8765),
'reviahebrew'                  => chr(1431),
'reviamugrashhebrew'           => chr(1431),
'revlogicalnot'                => chr(8976),
'rfishhook'                    => chr(638),
'rfishhookreversed'            => chr(639),
'rhabengali'                   => chr(2525),
'rhadeva'                      => chr(2397),
'rho'                          => chr(961),
'rhook'                        => chr(637),
'rhookturned'                  => chr(635),
'rhookturnedsuperior'          => chr(693),
'rhosymbolgreek'               => chr(1009),
'rhotichookmod'                => chr(734),
'rieulacirclekorean'           => chr(12913),
'rieulaparenkorean'            => chr(12817),
'rieulcirclekorean'            => chr(12899),
'rieulhieuhkorean'             => chr(12608),
'rieulkiyeokkorean'            => chr(12602),
'rieulkiyeoksioskorean'        => chr(12649),
'rieulkorean'                  => chr(12601),
'rieulmieumkorean'             => chr(12603),
'rieulpansioskorean'           => chr(12652),
'rieulparenkorean'             => chr(12803),
'rieulphieuphkorean'           => chr(12607),
'rieulpieupkorean'             => chr(12604),
'rieulpieupsioskorean'         => chr(12651),
'rieulsioskorean'              => chr(12605),
'rieulthieuthkorean'           => chr(12606),
'rieultikeutkorean'            => chr(12650),
'rieulyeorinhieuhkorean'       => chr(12653),
'rightangle'                   => chr(8735),
'righttackbelowcmb'            => chr(793),
'righttriangle'                => chr(8895),
'rihiragana'                   => chr(12426),
'rikatakana'                   => chr(12522),
'rikatakanahalfwidth'          => chr(65432),
'ring'                         => chr(730),
'ringbelowcmb'                 => chr(805),
'ringcmb'                      => chr(778),
'ringhalfleft'                 => chr(703),
'ringhalfleftarmenian'         => chr(1369),
'ringhalfleftbelowcmb'         => chr(796),
'ringhalfleftcentered'         => chr(723),
'ringhalfright'                => chr(702),
'ringhalfrightbelowcmb'        => chr(825),
'ringhalfrightcentered'        => chr(722),
'rinvertedbreve'               => chr(531),
'rittorusquare'                => chr(13137),
'rlinebelow'                   => chr(7775),
'rlongleg'                     => chr(636),
'rlonglegturned'               => chr(634),
'rmonospace'                   => chr(65362),
'rohiragana'                   => chr(12429),
'rokatakana'                   => chr(12525),
'rokatakanahalfwidth'          => chr(65435),
'roruathai'                    => chr(3619),
'rparen'                       => chr(9389),
'rrabengali'                   => chr(2524),
'rradeva'                      => chr(2353),
'rragurmukhi'                  => chr(2652),
'rreharabic'                   => chr(1681),
'rrehfinalarabic'              => chr(64397),
'rrvocalicbengali'             => chr(2528),
'rrvocalicdeva'                => chr(2400),
'rrvocalicgujarati'            => chr(2784),
'rrvocalicvowelsignbengali'    => chr(2500),
'rrvocalicvowelsigndeva'       => chr(2372),
'rrvocalicvowelsigngujarati'   => chr(2756),
'rsuperior'                    => chr(63217),
'rtblock'                      => chr(9616),
'rturned'                      => chr(633),
'rturnedsuperior'              => chr(692),
'ruhiragana'                   => chr(12427),
'rukatakana'                   => chr(12523),
'rukatakanahalfwidth'          => chr(65433),
'rupeemarkbengali'             => chr(2546),
'rupeesignbengali'             => chr(2547),
'rupiah'                       => chr(63197),
'ruthai'                       => chr(3620),
'rvocalicbengali'              => chr(2443),
'rvocalicdeva'                 => chr(2315),
'rvocalicgujarati'             => chr(2699),
'rvocalicvowelsignbengali'     => chr(2499),
'rvocalicvowelsigndeva'        => chr(2371),
'rvocalicvowelsigngujarati'    => chr(2755),
's'                            => chr(115),
'sabengali'                    => chr(2488),
'sacute'                       => chr(347),
'sacutedotaccent'              => chr(7781),
'sadarabic'                    => chr(1589),
'sadeva'                       => chr(2360),
'sadfinalarabic'               => chr(65210),
'sadinitialarabic'             => chr(65211),
'sadmedialarabic'              => chr(65212),
'sagujarati'                   => chr(2744),
'sagurmukhi'                   => chr(2616),
'sahiragana'                   => chr(12373),
'sakatakana'                   => chr(12469),
'sakatakanahalfwidth'          => chr(65403),
'sallallahoualayhewasallamarabic' => chr(65018),
'samekh'                       => chr(1505),
'samekhdagesh'                 => chr(64321),
'samekhdageshhebrew'           => chr(64321),
'samekhhebrew'                 => chr(1505),
'saraaathai'                   => chr(3634),
'saraaethai'                   => chr(3649),
'saraaimaimalaithai'           => chr(3652),
'saraaimaimuanthai'            => chr(3651),
'saraamthai'                   => chr(3635),
'saraathai'                    => chr(3632),
'saraethai'                    => chr(3648),
'saraiileftthai'               => chr(63622),
'saraiithai'                   => chr(3637),
'saraileftthai'                => chr(63621),
'saraithai'                    => chr(3636),
'saraothai'                    => chr(3650),
'saraueeleftthai'              => chr(63624),
'saraueethai'                  => chr(3639),
'saraueleftthai'               => chr(63623),
'sarauethai'                   => chr(3638),
'sarauthai'                    => chr(3640),
'sarauuthai'                   => chr(3641),
'sbopomofo'                    => chr(12569),
'scaron'                       => chr(353),
'scarondotaccent'              => chr(7783),
'scedilla'                     => chr(351),
'schwa'                        => chr(601),
'schwacyrillic'                => chr(1241),
'schwadieresiscyrillic'        => chr(1243),
'schwahook'                    => chr(602),
'scircle'                      => chr(9442),
'scircumflex'                  => chr(349),
'scommaaccent'                 => chr(537),
'sdotaccent'                   => chr(7777),
'sdotbelow'                    => chr(7779),
'sdotbelowdotaccent'           => chr(7785),
'seagullbelowcmb'              => chr(828),
'second'                       => chr(8243),
'secondtonechinese'            => chr(714),
'section'                      => chr(167),
'seenarabic'                   => chr(1587),
'seenfinalarabic'              => chr(65202),
'seeninitialarabic'            => chr(65203),
'seenmedialarabic'             => chr(65204),
'segol'                        => chr(1462),
'segol13'                      => chr(1462),
'segol1f'                      => chr(1462),
'segol2c'                      => chr(1462),
'segolhebrew'                  => chr(1462),
'segolnarrowhebrew'            => chr(1462),
'segolquarterhebrew'           => chr(1462),
'segoltahebrew'                => chr(1426),
'segolwidehebrew'              => chr(1462),
'seharmenian'                  => chr(1405),
'sehiragana'                   => chr(12379),
'sekatakana'                   => chr(12475),
'sekatakanahalfwidth'          => chr(65406),
'semicolon'                    => chr(59),
'semicolonarabic'              => chr(1563),
'semicolonmonospace'           => chr(65307),
'semicolonsmall'               => chr(65108),
'semivoicedmarkkana'           => chr(12444),
'semivoicedmarkkanahalfwidth'  => chr(65439),
'sentisquare'                  => chr(13090),
'sentosquare'                  => chr(13091),
'seven'                        => chr(55),
'sevenarabic'                  => chr(1639),
'sevenbengali'                 => chr(2541),
'sevencircle'                  => chr(9318),
'sevencircleinversesansserif'  => chr(10128),
'sevendeva'                    => chr(2413),
'seveneighths'                 => chr(8542),
'sevengujarati'                => chr(2797),
'sevengurmukhi'                => chr(2669),
'sevenhackarabic'              => chr(1639),
'sevenhangzhou'                => chr(12327),
'sevenideographicparen'        => chr(12838),
'seveninferior'                => chr(8327),
'sevenmonospace'               => chr(65303),
'sevenoldstyle'                => chr(63287),
'sevenparen'                   => chr(9338),
'sevenperiod'                  => chr(9358),
'sevenpersian'                 => chr(1783),
'sevenroman'                   => chr(8566),
'sevensuperior'                => chr(8311),
'seventeencircle'              => chr(9328),
'seventeenparen'               => chr(9348),
'seventeenperiod'              => chr(9368),
'seventhai'                    => chr(3671),
'sfthyphen'                    => chr(173),
'shaarmenian'                  => chr(1399),
'shabengali'                   => chr(2486),
'shacyrillic'                  => chr(1096),
'shaddaarabic'                 => chr(1617),
'shaddadammaarabic'            => chr(64609),
'shaddadammatanarabic'         => chr(64606),
'shaddafathaarabic'            => chr(64608),
'shaddafathatanarabic'         => chr(1617),
'shaddakasraarabic'            => chr(64610),
'shaddakasratanarabic'         => chr(64607),
'shade'                        => chr(9618),
'shadedark'                    => chr(9619),
'shadelight'                   => chr(9617),
'shademedium'                  => chr(9618),
'shadeva'                      => chr(2358),
'shagujarati'                  => chr(2742),
'shagurmukhi'                  => chr(2614),
'shalshelethebrew'             => chr(1427),
'shbopomofo'                   => chr(12565),
'shchacyrillic'                => chr(1097),
'sheenarabic'                  => chr(1588),
'sheenfinalarabic'             => chr(65206),
'sheeninitialarabic'           => chr(65207),
'sheenmedialarabic'            => chr(65208),
'sheicoptic'                   => chr(995),
'sheqel'                       => chr(8362),
'sheqelhebrew'                 => chr(8362),
'sheva'                        => chr(1456),
'sheva115'                     => chr(1456),
'sheva15'                      => chr(1456),
'sheva22'                      => chr(1456),
'sheva2e'                      => chr(1456),
'shevahebrew'                  => chr(1456),
'shevanarrowhebrew'            => chr(1456),
'shevaquarterhebrew'           => chr(1456),
'shevawidehebrew'              => chr(1456),
'shhacyrillic'                 => chr(1211),
'shimacoptic'                  => chr(1005),
'shin'                         => chr(1513),
'shindagesh'                   => chr(64329),
'shindageshhebrew'             => chr(64329),
'shindageshshindot'            => chr(64300),
'shindageshshindothebrew'      => chr(64300),
'shindageshsindot'             => chr(64301),
'shindageshsindothebrew'       => chr(64301),
'shindothebrew'                => chr(1473),
'shinhebrew'                   => chr(1513),
'shinshindot'                  => chr(64298),
'shinshindothebrew'            => chr(64298),
'shinsindot'                   => chr(64299),
'shinsindothebrew'             => chr(64299),
'shook'                        => chr(642),
'sigma'                        => chr(963),
'sigma1'                       => chr(962),
'sigmafinal'                   => chr(962),
'sigmalunatesymbolgreek'       => chr(1010),
'sihiragana'                   => chr(12375),
'sikatakana'                   => chr(12471),
'sikatakanahalfwidth'          => chr(65404),
'siluqhebrew'                  => chr(1469),
'siluqlefthebrew'              => chr(1469),
'similar'                      => chr(8764),
'sindothebrew'                 => chr(1474),
'siosacirclekorean'            => chr(12916),
'siosaparenkorean'             => chr(12820),
'sioscieuckorean'              => chr(12670),
'sioscirclekorean'             => chr(12902),
'sioskiyeokkorean'             => chr(12666),
'sioskorean'                   => chr(12613),
'siosnieunkorean'              => chr(12667),
'siosparenkorean'              => chr(12806),
'siospieupkorean'              => chr(12669),
'siostikeutkorean'             => chr(12668),
'six'                          => chr(54),
'sixarabic'                    => chr(1638),
'sixbengali'                   => chr(2540),
'sixcircle'                    => chr(9317),
'sixcircleinversesansserif'    => chr(10127),
'sixdeva'                      => chr(2412),
'sixgujarati'                  => chr(2796),
'sixgurmukhi'                  => chr(2668),
'sixhackarabic'                => chr(1638),
'sixhangzhou'                  => chr(12326),
'sixideographicparen'          => chr(12837),
'sixinferior'                  => chr(8326),
'sixmonospace'                 => chr(65302),
'sixoldstyle'                  => chr(63286),
'sixparen'                     => chr(9337),
'sixperiod'                    => chr(9357),
'sixpersian'                   => chr(1782),
'sixroman'                     => chr(8565),
'sixsuperior'                  => chr(8310),
'sixteencircle'                => chr(9327),
'sixteencurrencydenominatorbengali' => chr(2553),
'sixteenparen'                 => chr(9347),
'sixteenperiod'                => chr(9367),
'sixthai'                      => chr(3670),
'slash'                        => chr(47),
'slashmonospace'               => chr(65295),
'slong'                        => chr(383),
'slongdotaccent'               => chr(7835),
'smileface'                    => chr(9786),
'smonospace'                   => chr(65363),
'sofpasuqhebrew'               => chr(1475),
'softhyphen'                   => chr(173),
'softsigncyrillic'             => chr(1100),
'sohiragana'                   => chr(12381),
'sokatakana'                   => chr(12477),
'sokatakanahalfwidth'          => chr(65407),
'soliduslongoverlaycmb'        => chr(824),
'solidusshortoverlaycmb'       => chr(823),
'sorusithai'                   => chr(3625),
'sosalathai'                   => chr(3624),
'sosothai'                     => chr(3595),
'sosuathai'                    => chr(3626),
'space'                        => chr(32),
'spacehackarabic'              => chr(32),
'spade'                        => chr(9824),
'spadesuitblack'               => chr(9824),
'spadesuitwhite'               => chr(9828),
'sparen'                       => chr(9390),
'squarebelowcmb'               => chr(827),
'squarecc'                     => chr(13252),
'squarecm'                     => chr(13213),
'squarediagonalcrosshatchfill' => chr(9641),
'squarehorizontalfill'         => chr(9636),
'squarekg'                     => chr(13199),
'squarekm'                     => chr(13214),
'squarekmcapital'              => chr(13262),
'squareln'                     => chr(13265),
'squarelog'                    => chr(13266),
'squaremg'                     => chr(13198),
'squaremil'                    => chr(13269),
'squaremm'                     => chr(13212),
'squaremsquared'               => chr(13217),
'squareorthogonalcrosshatchfill' => chr(9638),
'squareupperlefttolowerrightfill' => chr(9639),
'squareupperrighttolowerleftfill' => chr(9640),
'squareverticalfill'           => chr(9637),
'squarewhitewithsmallblack'    => chr(9635),
'srsquare'                     => chr(13275),
'ssabengali'                   => chr(2487),
'ssadeva'                      => chr(2359),
'ssagujarati'                  => chr(2743),
'ssangcieuckorean'             => chr(12617),
'ssanghieuhkorean'             => chr(12677),
'ssangieungkorean'             => chr(12672),
'ssangkiyeokkorean'            => chr(12594),
'ssangnieunkorean'             => chr(12645),
'ssangpieupkorean'             => chr(12611),
'ssangsioskorean'              => chr(12614),
'ssangtikeutkorean'            => chr(12600),
'ssuperior'                    => chr(63218),
'sterling'                     => chr(163),
'sterlingmonospace'            => chr(65505),
'strokelongoverlaycmb'         => chr(822),
'strokeshortoverlaycmb'        => chr(821),
'subset'                       => chr(8834),
'subsetnotequal'               => chr(8842),
'subsetorequal'                => chr(8838),
'succeeds'                     => chr(8827),
'suchthat'                     => chr(8715),
'suhiragana'                   => chr(12377),
'sukatakana'                   => chr(12473),
'sukatakanahalfwidth'          => chr(65405),
'sukunarabic'                  => chr(1618),
'summation'                    => chr(8721),
'sun'                          => chr(9788),
'superset'                     => chr(8835),
'supersetnotequal'             => chr(8843),
'supersetorequal'              => chr(8839),
'svsquare'                     => chr(13276),
'syouwaerasquare'              => chr(13180),
't'                            => chr(116),
'tabengali'                    => chr(2468),
'tackdown'                     => chr(8868),
'tackleft'                     => chr(8867),
'tadeva'                       => chr(2340),
'tagujarati'                   => chr(2724),
'tagurmukhi'                   => chr(2596),
'taharabic'                    => chr(1591),
'tahfinalarabic'               => chr(65218),
'tahinitialarabic'             => chr(65219),
'tahiragana'                   => chr(12383),
'tahmedialarabic'              => chr(65220),
'taisyouerasquare'             => chr(13181),
'takatakana'                   => chr(12479),
'takatakanahalfwidth'          => chr(65408),
'tatweelarabic'                => chr(1600),
'tau'                          => chr(964),
'tav'                          => chr(1514),
'tavdages'                     => chr(64330),
'tavdagesh'                    => chr(64330),
'tavdageshhebrew'              => chr(64330),
'tavhebrew'                    => chr(1514),
'tbar'                         => chr(359),
'tbopomofo'                    => chr(12554),
'tcaron'                       => chr(357),
'tccurl'                       => chr(680),
'tcedilla'                     => chr(355),
'tcheharabic'                  => chr(1670),
'tchehfinalarabic'             => chr(64379),
'tchehinitialarabic'           => chr(64380),
'tchehmedialarabic'            => chr(64381),
'tchehmeeminitialarabic'       => chr(64380),
'tcircle'                      => chr(9443),
'tcircumflexbelow'             => chr(7793),
'tcommaaccent'                 => chr(355),
'tdieresis'                    => chr(7831),
'tdotaccent'                   => chr(7787),
'tdotbelow'                    => chr(7789),
'tecyrillic'                   => chr(1090),
'tedescendercyrillic'          => chr(1197),
'teharabic'                    => chr(1578),
'tehfinalarabic'               => chr(65174),
'tehhahinitialarabic'          => chr(64674),
'tehhahisolatedarabic'         => chr(64524),
'tehinitialarabic'             => chr(65175),
'tehiragana'                   => chr(12390),
'tehjeeminitialarabic'         => chr(64673),
'tehjeemisolatedarabic'        => chr(64523),
'tehmarbutaarabic'             => chr(1577),
'tehmarbutafinalarabic'        => chr(65172),
'tehmedialarabic'              => chr(65176),
'tehmeeminitialarabic'         => chr(64676),
'tehmeemisolatedarabic'        => chr(64526),
'tehnoonfinalarabic'           => chr(64627),
'tekatakana'                   => chr(12486),
'tekatakanahalfwidth'          => chr(65411),
'telephone'                    => chr(8481),
'telephoneblack'               => chr(9742),
'telishagedolahebrew'          => chr(1440),
'telishaqetanahebrew'          => chr(1449),
'tencircle'                    => chr(9321),
'tenideographicparen'          => chr(12841),
'tenparen'                     => chr(9341),
'tenperiod'                    => chr(9361),
'tenroman'                     => chr(8569),
'tesh'                         => chr(679),
'tet'                          => chr(1496),
'tetdagesh'                    => chr(64312),
'tetdageshhebrew'              => chr(64312),
'tethebrew'                    => chr(1496),
'tetsecyrillic'                => chr(1205),
'tevirhebrew'                  => chr(1435),
'tevirlefthebrew'              => chr(1435),
'thabengali'                   => chr(2469),
'thadeva'                      => chr(2341),
'thagujarati'                  => chr(2725),
'thagurmukhi'                  => chr(2597),
'thalarabic'                   => chr(1584),
'thalfinalarabic'              => chr(65196),
'thanthakhatlowleftthai'       => chr(63640),
'thanthakhatlowrightthai'      => chr(63639),
'thanthakhatthai'              => chr(3660),
'thanthakhatupperleftthai'     => chr(63638),
'theharabic'                   => chr(1579),
'thehfinalarabic'              => chr(65178),
'thehinitialarabic'            => chr(65179),
'thehmedialarabic'             => chr(65180),
'thereexists'                  => chr(8707),
'therefore'                    => chr(8756),
'theta'                        => chr(952),
'theta1'                       => chr(977),
'thetasymbolgreek'             => chr(977),
'thieuthacirclekorean'         => chr(12921),
'thieuthaparenkorean'          => chr(12825),
'thieuthcirclekorean'          => chr(12907),
'thieuthkorean'                => chr(12620),
'thieuthparenkorean'           => chr(12811),
'thirteencircle'               => chr(9324),
'thirteenparen'                => chr(9344),
'thirteenperiod'               => chr(9364),
'thonangmonthothai'            => chr(3601),
'thook'                        => chr(429),
'thophuthaothai'               => chr(3602),
'thorn'                        => chr(254),
'thothahanthai'                => chr(3607),
'thothanthai'                  => chr(3600),
'thothongthai'                 => chr(3608),
'thothungthai'                 => chr(3606),
'thousandcyrillic'             => chr(1154),
'thousandsseparatorarabic'     => chr(1644),
'thousandsseparatorpersian'    => chr(1644),
'three'                        => chr(51),
'threearabic'                  => chr(1635),
'threebengali'                 => chr(2537),
'threecircle'                  => chr(9314),
'threecircleinversesansserif'  => chr(10124),
'threedeva'                    => chr(2409),
'threeeighths'                 => chr(8540),
'threegujarati'                => chr(2793),
'threegurmukhi'                => chr(2665),
'threehackarabic'              => chr(1635),
'threehangzhou'                => chr(12323),
'threeideographicparen'        => chr(12834),
'threeinferior'                => chr(8323),
'threemonospace'               => chr(65299),
'threenumeratorbengali'        => chr(2550),
'threeoldstyle'                => chr(63283),
'threeparen'                   => chr(9334),
'threeperiod'                  => chr(9354),
'threepersian'                 => chr(1779),
'threequarters'                => chr(190),
'threequartersemdash'          => chr(63198),
'threeroman'                   => chr(8562),
'threesuperior'                => chr(179),
'threethai'                    => chr(3667),
'thzsquare'                    => chr(13204),
'tihiragana'                   => chr(12385),
'tikatakana'                   => chr(12481),
'tikatakanahalfwidth'          => chr(65409),
'tikeutacirclekorean'          => chr(12912),
'tikeutaparenkorean'           => chr(12816),
'tikeutcirclekorean'           => chr(12898),
'tikeutkorean'                 => chr(12599),
'tikeutparenkorean'            => chr(12802),
'tilde'                        => chr(732),
'tildebelowcmb'                => chr(816),
'tildecmb'                     => chr(771),
'tildecomb'                    => chr(771),
'tildedoublecmb'               => chr(864),
'tildeoperator'                => chr(8764),
'tildeoverlaycmb'              => chr(820),
'tildeverticalcmb'             => chr(830),
'timescircle'                  => chr(8855),
'tipehahebrew'                 => chr(1430),
'tipehalefthebrew'             => chr(1430),
'tippigurmukhi'                => chr(2672),
'titlocyrilliccmb'             => chr(1155),
'tiwnarmenian'                 => chr(1407),
'tlinebelow'                   => chr(7791),
'tmonospace'                   => chr(65364),
'toarmenian'                   => chr(1385),
'tohiragana'                   => chr(12392),
'tokatakana'                   => chr(12488),
'tokatakanahalfwidth'          => chr(65412),
'tonebarextrahighmod'          => chr(741),
'tonebarextralowmod'           => chr(745),
'tonebarhighmod'               => chr(742),
'tonebarlowmod'                => chr(744),
'tonebarmidmod'                => chr(743),
'tonefive'                     => chr(445),
'tonesix'                      => chr(389),
'tonetwo'                      => chr(424),
'tonos'                        => chr(900),
'tonsquare'                    => chr(13095),
'topatakthai'                  => chr(3599),
'tortoiseshellbracketleft'     => chr(12308),
'tortoiseshellbracketleftsmall' => chr(65117),
'tortoiseshellbracketleftvertical' => chr(65081),
'tortoiseshellbracketright'    => chr(12309),
'tortoiseshellbracketrightsmall' => chr(65118),
'tortoiseshellbracketrightvertical' => chr(65082),
'totaothai'                    => chr(3605),
'tpalatalhook'                 => chr(427),
'tparen'                       => chr(9391),
'trademark'                    => chr(8482),
'trademarksans'                => chr(63722),
'trademarkserif'               => chr(63195),
'tretroflexhook'               => chr(648),
'triagdn'                      => chr(9660),
'triaglf'                      => chr(9668),
'triagrt'                      => chr(9658),
'triagup'                      => chr(9650),
'ts'                           => chr(678),
'tsadi'                        => chr(1510),
'tsadidagesh'                  => chr(64326),
'tsadidageshhebrew'            => chr(64326),
'tsadihebrew'                  => chr(1510),
'tsecyrillic'                  => chr(1094),
'tsere'                        => chr(1461),
'tsere12'                      => chr(1461),
'tsere1e'                      => chr(1461),
'tsere2b'                      => chr(1461),
'tserehebrew'                  => chr(1461),
'tserenarrowhebrew'            => chr(1461),
'tserequarterhebrew'           => chr(1461),
'tserewidehebrew'              => chr(1461),
'tshecyrillic'                 => chr(1115),
'tsuperior'                    => chr(63219),
'ttabengali'                   => chr(2463),
'ttadeva'                      => chr(2335),
'ttagujarati'                  => chr(2719),
'ttagurmukhi'                  => chr(2591),
'tteharabic'                   => chr(1657),
'ttehfinalarabic'              => chr(64359),
'ttehinitialarabic'            => chr(64360),
'ttehmedialarabic'             => chr(64361),
'tthabengali'                  => chr(2464),
'tthadeva'                     => chr(2336),
'tthagujarati'                 => chr(2720),
'tthagurmukhi'                 => chr(2592),
'tturned'                      => chr(647),
'tuhiragana'                   => chr(12388),
'tukatakana'                   => chr(12484),
'tukatakanahalfwidth'          => chr(65410),
'tusmallhiragana'              => chr(12387),
'tusmallkatakana'              => chr(12483),
'tusmallkatakanahalfwidth'     => chr(65391),
'twelvecircle'                 => chr(9323),
'twelveparen'                  => chr(9343),
'twelveperiod'                 => chr(9363),
'twelveroman'                  => chr(8571),
'twentycircle'                 => chr(9331),
'twentyhangzhou'               => chr(21316),
'twentyparen'                  => chr(9351),
'twentyperiod'                 => chr(9371),
'two'                          => chr(50),
'twoarabic'                    => chr(1634),
'twobengali'                   => chr(2536),
'twocircle'                    => chr(9313),
'twocircleinversesansserif'    => chr(10123),
'twodeva'                      => chr(2408),
'twodotenleader'               => chr(8229),
'twodotleader'                 => chr(8229),
'twodotleadervertical'         => chr(65072),
'twogujarati'                  => chr(2792),
'twogurmukhi'                  => chr(2664),
'twohackarabic'                => chr(1634),
'twohangzhou'                  => chr(12322),
'twoideographicparen'          => chr(12833),
'twoinferior'                  => chr(8322),
'twomonospace'                 => chr(65298),
'twonumeratorbengali'          => chr(2549),
'twooldstyle'                  => chr(63282),
'twoparen'                     => chr(9333),
'twoperiod'                    => chr(9353),
'twopersian'                   => chr(1778),
'tworoman'                     => chr(8561),
'twostroke'                    => chr(443),
'twosuperior'                  => chr(178),
'twothai'                      => chr(3666),
'twothirds'                    => chr(8532),
'u'                            => chr(117),
'uacute'                       => chr(250),
'ubar'                         => chr(649),
'ubengali'                     => chr(2441),
'ubopomofo'                    => chr(12584),
'ubreve'                       => chr(365),
'ucaron'                       => chr(468),
'ucircle'                      => chr(9444),
'ucircumflex'                  => chr(251),
'ucircumflexbelow'             => chr(7799),
'ucyrillic'                    => chr(1091),
'udattadeva'                   => chr(2385),
'udblacute'                    => chr(369),
'udblgrave'                    => chr(533),
'udeva'                        => chr(2313),
'udieresis'                    => chr(252),
'udieresisacute'               => chr(472),
'udieresisbelow'               => chr(7795),
'udieresiscaron'               => chr(474),
'udieresiscyrillic'            => chr(1265),
'udieresisgrave'               => chr(476),
'udieresismacron'              => chr(470),
'udotbelow'                    => chr(7909),
'ugrave'                       => chr(249),
'ugujarati'                    => chr(2697),
'ugurmukhi'                    => chr(2569),
'uhiragana'                    => chr(12358),
'uhookabove'                   => chr(7911),
'uhorn'                        => chr(432),
'uhornacute'                   => chr(7913),
'uhorndotbelow'                => chr(7921),
'uhorngrave'                   => chr(7915),
'uhornhookabove'               => chr(7917),
'uhorntilde'                   => chr(7919),
'uhungarumlaut'                => chr(369),
'uhungarumlautcyrillic'        => chr(1267),
'uinvertedbreve'               => chr(535),
'ukatakana'                    => chr(12454),
'ukatakanahalfwidth'           => chr(65395),
'ukcyrillic'                   => chr(1145),
'ukorean'                      => chr(12636),
'umacron'                      => chr(363),
'umacroncyrillic'              => chr(1263),
'umacrondieresis'              => chr(7803),
'umatragurmukhi'               => chr(2625),
'umonospace'                   => chr(65365),
'underscore'                   => chr(95),
'underscoredbl'                => chr(8215),
'underscoremonospace'          => chr(65343),
'underscorevertical'           => chr(65075),
'underscorewavy'               => chr(65103),
'union'                        => chr(8746),
'universal'                    => chr(8704),
'uogonek'                      => chr(371),
'uparen'                       => chr(9392),
'upblock'                      => chr(9600),
'upperdothebrew'               => chr(1476),
'upsilon'                      => chr(965),
'upsilondieresis'              => chr(971),
'upsilondieresistonos'         => chr(944),
'upsilonlatin'                 => chr(650),
'upsilontonos'                 => chr(973),
'uptackbelowcmb'               => chr(797),
'uptackmod'                    => chr(724),
'uragurmukhi'                  => chr(2675),
'uring'                        => chr(367),
'ushortcyrillic'               => chr(1118),
'usmallhiragana'               => chr(12357),
'usmallkatakana'               => chr(12453),
'usmallkatakanahalfwidth'      => chr(65385),
'ustraightcyrillic'            => chr(1199),
'ustraightstrokecyrillic'      => chr(1201),
'utilde'                       => chr(361),
'utildeacute'                  => chr(7801),
'utildebelow'                  => chr(7797),
'uubengali'                    => chr(2442),
'uudeva'                       => chr(2314),
'uugujarati'                   => chr(2698),
'uugurmukhi'                   => chr(2570),
'uumatragurmukhi'              => chr(2626),
'uuvowelsignbengali'           => chr(2498),
'uuvowelsigndeva'              => chr(2370),
'uuvowelsigngujarati'          => chr(2754),
'uvowelsignbengali'            => chr(2497),
'uvowelsigndeva'               => chr(2369),
'uvowelsigngujarati'           => chr(2753),
'v'                            => chr(118),
'vadeva'                       => chr(2357),
'vagujarati'                   => chr(2741),
'vagurmukhi'                   => chr(2613),
'vakatakana'                   => chr(12535),
'vav'                          => chr(1493),
'vavdagesh'                    => chr(64309),
'vavdagesh65'                  => chr(64309),
'vavdageshhebrew'              => chr(64309),
'vavhebrew'                    => chr(1493),
'vavholam'                     => chr(64331),
'vavholamhebrew'               => chr(64331),
'vavvavhebrew'                 => chr(1520),
'vavyodhebrew'                 => chr(1521),
'vcircle'                      => chr(9445),
'vdotbelow'                    => chr(7807),
'vecyrillic'                   => chr(1074),
'veharabic'                    => chr(1700),
'vehfinalarabic'               => chr(64363),
'vehinitialarabic'             => chr(64364),
'vehmedialarabic'              => chr(64365),
'vekatakana'                   => chr(12537),
'venus'                        => chr(9792),
'verticalbar'                  => chr(124),
'verticallineabovecmb'         => chr(781),
'verticallinebelowcmb'         => chr(809),
'verticallinelowmod'           => chr(716),
'verticallinemod'              => chr(712),
'vewarmenian'                  => chr(1406),
'vhook'                        => chr(651),
'vikatakana'                   => chr(12536),
'viramabengali'                => chr(2509),
'viramadeva'                   => chr(2381),
'viramagujarati'               => chr(2765),
'visargabengali'               => chr(2435),
'visargadeva'                  => chr(2307),
'visargagujarati'              => chr(2691),
'vmonospace'                   => chr(65366),
'voarmenian'                   => chr(1400),
'voicediterationhiragana'      => chr(12446),
'voicediterationkatakana'      => chr(12542),
'voicedmarkkana'               => chr(12443),
'voicedmarkkanahalfwidth'      => chr(65438),
'vokatakana'                   => chr(12538),
'vparen'                       => chr(9393),
'vtilde'                       => chr(7805),
'vturned'                      => chr(652),
'vuhiragana'                   => chr(12436),
'vukatakana'                   => chr(12532),
'w'                            => chr(119),
'wacute'                       => chr(7811),
'waekorean'                    => chr(12633),
'wahiragana'                   => chr(12431),
'wakatakana'                   => chr(12527),
'wakatakanahalfwidth'          => chr(65436),
'wakorean'                     => chr(12632),
'wasmallhiragana'              => chr(12430),
'wasmallkatakana'              => chr(12526),
'wattosquare'                  => chr(13143),
'wavedash'                     => chr(12316),
'wavyunderscorevertical'       => chr(65076),
'wawarabic'                    => chr(1608),
'wawfinalarabic'               => chr(65262),
'wawhamzaabovearabic'          => chr(1572),
'wawhamzaabovefinalarabic'     => chr(65158),
'wbsquare'                     => chr(13277),
'wcircle'                      => chr(9446),
'wcircumflex'                  => chr(373),
'wdieresis'                    => chr(7813),
'wdotaccent'                   => chr(7815),
'wdotbelow'                    => chr(7817),
'wehiragana'                   => chr(12433),
'weierstrass'                  => chr(8472),
'wekatakana'                   => chr(12529),
'wekorean'                     => chr(12638),
'weokorean'                    => chr(12637),
'wgrave'                       => chr(7809),
'whitebullet'                  => chr(9702),
'whitecircle'                  => chr(9675),
'whitecircleinverse'           => chr(9689),
'whitecornerbracketleft'       => chr(12302),
'whitecornerbracketleftvertical' => chr(65091),
'whitecornerbracketright'      => chr(12303),
'whitecornerbracketrightvertical' => chr(65092),
'whitediamond'                 => chr(9671),
'whitediamondcontainingblacksmalldiamond' => chr(9672),
'whitedownpointingsmalltriangle' => chr(9663),
'whitedownpointingtriangle'    => chr(9661),
'whiteleftpointingsmalltriangle' => chr(9667),
'whiteleftpointingtriangle'    => chr(9665),
'whitelenticularbracketleft'   => chr(12310),
'whitelenticularbracketright'  => chr(12311),
'whiterightpointingsmalltriangle' => chr(9657),
'whiterightpointingtriangle'   => chr(9655),
'whitesmallsquare'             => chr(9643),
'whitesmilingface'             => chr(9786),
'whitesquare'                  => chr(9633),
'whitestar'                    => chr(9734),
'whitetelephone'               => chr(9743),
'whitetortoiseshellbracketleft' => chr(12312),
'whitetortoiseshellbracketright' => chr(12313),
'whiteuppointingsmalltriangle' => chr(9653),
'whiteuppointingtriangle'      => chr(9651),
'wihiragana'                   => chr(12432),
'wikatakana'                   => chr(12528),
'wikorean'                     => chr(12639),
'wmonospace'                   => chr(65367),
'wohiragana'                   => chr(12434),
'wokatakana'                   => chr(12530),
'wokatakanahalfwidth'          => chr(65382),
'won'                          => chr(8361),
'wonmonospace'                 => chr(65510),
'wowaenthai'                   => chr(3623),
'wparen'                       => chr(9394),
'wring'                        => chr(7832),
'wsuperior'                    => chr(695),
'wturned'                      => chr(653),
'wynn'                         => chr(447),
'x'                            => chr(120),
'xabovecmb'                    => chr(829),
'xbopomofo'                    => chr(12562),
'xcircle'                      => chr(9447),
'xdieresis'                    => chr(7821),
'xdotaccent'                   => chr(7819),
'xeharmenian'                  => chr(1389),
'xi'                           => chr(958),
'xmonospace'                   => chr(65368),
'xparen'                       => chr(9395),
'xsuperior'                    => chr(739),
'y'                            => chr(121),
'yaadosquare'                  => chr(13134),
'yabengali'                    => chr(2479),
'yacute'                       => chr(253),
'yadeva'                       => chr(2351),
'yaekorean'                    => chr(12626),
'yagujarati'                   => chr(2735),
'yagurmukhi'                   => chr(2607),
'yahiragana'                   => chr(12420),
'yakatakana'                   => chr(12516),
'yakatakanahalfwidth'          => chr(65428),
'yakorean'                     => chr(12625),
'yamakkanthai'                 => chr(3662),
'yasmallhiragana'              => chr(12419),
'yasmallkatakana'              => chr(12515),
'yasmallkatakanahalfwidth'     => chr(65388),
'yatcyrillic'                  => chr(1123),
'ycircle'                      => chr(9448),
'ycircumflex'                  => chr(375),
'ydieresis'                    => chr(255),
'ydotaccent'                   => chr(7823),
'ydotbelow'                    => chr(7925),
'yeharabic'                    => chr(1610),
'yehbarreearabic'              => chr(1746),
'yehbarreefinalarabic'         => chr(64431),
'yehfinalarabic'               => chr(65266),
'yehhamzaabovearabic'          => chr(1574),
'yehhamzaabovefinalarabic'     => chr(65162),
'yehhamzaaboveinitialarabic'   => chr(65163),
'yehhamzaabovemedialarabic'    => chr(65164),
'yehinitialarabic'             => chr(65267),
'yehmedialarabic'              => chr(65268),
'yehmeeminitialarabic'         => chr(64733),
'yehmeemisolatedarabic'        => chr(64600),
'yehnoonfinalarabic'           => chr(64660),
'yehthreedotsbelowarabic'      => chr(1745),
'yekorean'                     => chr(12630),
'yen'                          => chr(165),
'yenmonospace'                 => chr(65509),
'yeokorean'                    => chr(12629),
'yeorinhieuhkorean'            => chr(12678),
'yerahbenyomohebrew'           => chr(1450),
'yerahbenyomolefthebrew'       => chr(1450),
'yericyrillic'                 => chr(1099),
'yerudieresiscyrillic'         => chr(1273),
'yesieungkorean'               => chr(12673),
'yesieungpansioskorean'        => chr(12675),
'yesieungsioskorean'           => chr(12674),
'yetivhebrew'                  => chr(1434),
'ygrave'                       => chr(7923),
'yhook'                        => chr(436),
'yhookabove'                   => chr(7927),
'yiarmenian'                   => chr(1397),
'yicyrillic'                   => chr(1111),
'yikorean'                     => chr(12642),
'yinyang'                      => chr(9775),
'yiwnarmenian'                 => chr(1410),
'ymonospace'                   => chr(65369),
'yod'                          => chr(1497),
'yoddagesh'                    => chr(64313),
'yoddageshhebrew'              => chr(64313),
'yodhebrew'                    => chr(1497),
'yodyodhebrew'                 => chr(1522),
'yodyodpatahhebrew'            => chr(64287),
'yohiragana'                   => chr(12424),
'yoikorean'                    => chr(12681),
'yokatakana'                   => chr(12520),
'yokatakanahalfwidth'          => chr(65430),
'yokorean'                     => chr(12635),
'yosmallhiragana'              => chr(12423),
'yosmallkatakana'              => chr(12519),
'yosmallkatakanahalfwidth'     => chr(65390),
'yotgreek'                     => chr(1011),
'yoyaekorean'                  => chr(12680),
'yoyakorean'                   => chr(12679),
'yoyakthai'                    => chr(3618),
'yoyingthai'                   => chr(3597),
'yparen'                       => chr(9396),
'ypogegrammeni'                => chr(890),
'ypogegrammenigreekcmb'        => chr(837),
'yr'                           => chr(422),
'yring'                        => chr(7833),
'ysuperior'                    => chr(696),
'ytilde'                       => chr(7929),
'yturned'                      => chr(654),
'yuhiragana'                   => chr(12422),
'yuikorean'                    => chr(12684),
'yukatakana'                   => chr(12518),
'yukatakanahalfwidth'          => chr(65429),
'yukorean'                     => chr(12640),
'yusbigcyrillic'               => chr(1131),
'yusbigiotifiedcyrillic'       => chr(1133),
'yuslittlecyrillic'            => chr(1127),
'yuslittleiotifiedcyrillic'    => chr(1129),
'yusmallhiragana'              => chr(12421),
'yusmallkatakana'              => chr(12517),
'yusmallkatakanahalfwidth'     => chr(65389),
'yuyekorean'                   => chr(12683),
'yuyeokorean'                  => chr(12682),
'yyabengali'                   => chr(2527),
'yyadeva'                      => chr(2399),
'z'                            => chr(122),
'zaarmenian'                   => chr(1382),
'zacute'                       => chr(378),
'zadeva'                       => chr(2395),
'zagurmukhi'                   => chr(2651),
'zaharabic'                    => chr(1592),
'zahfinalarabic'               => chr(65222),
'zahinitialarabic'             => chr(65223),
'zahiragana'                   => chr(12374),
'zahmedialarabic'              => chr(65224),
'zainarabic'                   => chr(1586),
'zainfinalarabic'              => chr(65200),
'zakatakana'                   => chr(12470),
'zaqefgadolhebrew'             => chr(1429),
'zaqefqatanhebrew'             => chr(1428),
'zarqahebrew'                  => chr(1432),
'zayin'                        => chr(1494),
'zayindagesh'                  => chr(64310),
'zayindageshhebrew'            => chr(64310),
'zayinhebrew'                  => chr(1494),
'zbopomofo'                    => chr(12567),
'zcaron'                       => chr(382),
'zcircle'                      => chr(9449),
'zcircumflex'                  => chr(7825),
'zcurl'                        => chr(657),
'zdot'                         => chr(380),
'zdotaccent'                   => chr(380),
'zdotbelow'                    => chr(7827),
'zecyrillic'                   => chr(1079),
'zedescendercyrillic'          => chr(1177),
'zedieresiscyrillic'           => chr(1247),
'zehiragana'                   => chr(12380),
'zekatakana'                   => chr(12476),
'zero'                         => chr(48),
'zeroarabic'                   => chr(1632),
'zerobengali'                  => chr(2534),
'zerodeva'                     => chr(2406),
'zerogujarati'                 => chr(2790),
'zerogurmukhi'                 => chr(2662),
'zerohackarabic'               => chr(1632),
'zeroinferior'                 => chr(8320),
'zeromonospace'                => chr(65296),
'zerooldstyle'                 => chr(63280),
'zeropersian'                  => chr(1776),
'zerosuperior'                 => chr(8304),
'zerothai'                     => chr(3664),
'zerowidthjoiner'              => chr(65279),
'zerowidthnonjoiner'           => chr(8204),
'zerowidthspace'               => chr(8203),
'zeta'                         => chr(950),
'zhbopomofo'                   => chr(12563),
'zhearmenian'                  => chr(1386),
'zhebrevecyrillic'             => chr(1218),
'zhecyrillic'                  => chr(1078),
'zhedescendercyrillic'         => chr(1175),
'zhedieresiscyrillic'          => chr(1245),
'zihiragana'                   => chr(12376),
'zikatakana'                   => chr(12472),
'zinorhebrew'                  => chr(1454),
'zlinebelow'                   => chr(7829),
'zmonospace'                   => chr(65370),
'zohiragana'                   => chr(12382),
'zokatakana'                   => chr(12478),
'zparen'                       => chr(9397),
'zretroflexhook'               => chr(656),
'zstroke'                      => chr(438),
'zuhiragana'                   => chr(12378),
'zukatakana'                   => chr(12474),
);

#=======================
sub new {
#=======================
    my $class = shift;
    my $self = {};

    return bless $self, $class;
}

#=======================
sub _unicode_mapping {
#=======================
    my $self = shift;
    unless( $self->{ uc_to_glyph } ) {
        my %uc_to_glyph      = map { sprintf("%04X", ord( $Default_Glyphs{$_} ) )      => $_ } keys %Default_Glyphs;
        my %zfdb_uc_to_glyph = map { sprintf("%04X", ord( $Zapfdingbats_Glyphs{$_} ) ) => $_ } keys %Zapfdingbats_Glyphs;

        $self->{ uc_to_glyph } = { %uc_to_glyph, %zfdb_uc_to_glyph };
    }    
    return $self->{ uc_to_glyph };
}

#=======================
sub uni_to_chars {                  # 0x0000 .. 0xD7FF, 0xE000 .. 0xFFFF
#=======================
    my $self  = shift;
    my $uni   = shift;

    $uni =~ s/^uni(.*)$/$1/;

    while( $uni =~ /([0-9ABCDEF]{4})/ ) {
        my $char = $self->glyph_to_char( $self->_unicode_mapping->{ $1 } );
        $uni =~ s/$1/$char/;
    }

    return $uni;
}

#=======================
sub u_to_char {                     # 0x0000 .. 0xD7FF, 0xE000 .. 0x10FFFF
#=======================
    my $self = shift;
    my $u    = shift;
    
    $u =~ /^u([0-9ABCDEF]{4,6})$/;
    
    return $self->glyph_to_char( $self->_unicode_mapping->{ $1 } );
}

#=======================
sub glyph_to_char {
#=======================
    my $self = shift;
    my $glyph = shift;

    return '' unless defined $glyph;

    return ( $self->font_name eq 'ZapfDingbats'
        ? $Zapfdingbats_Glyphs{ $glyph }
        : $Default_Glyphs{ $glyph }
    ) || '';
}

#=======================
sub glyph_to_dec {
#=======================
    my $self = shift;
    my $glyph = shift;
    $self->encoding( shift );

    return defined $glyph 
        ? $self->encoding->{glyph_to_dec}{ $glyph } || 0
        : 0
    ;
}

#=======================
sub oct_to_glyph {
#=======================
    my $self = shift;
    my $char = shift;
    $self->encoding( shift );
    return '' unless defined $char;

    $char = oct($char);
    my $glyph = $self->encoding->{glyph_to_char}->[ $char ];
    return defined $glyph ? $glyph : '';
}

#=======================
sub oct_to_char {
#=======================
    my $self = shift;
    my $char = shift;
    $self->encoding( shift );

    return $self->glyph_to_char( $self->oct_to_glyph( $char ) );
}

#=======================
sub ps_to_text {
#=======================
    my $self = shift;
    my $postscript = shift;
    $self->encoding( shift );

    while( $postscript =~ qr{\\(\d{1,3})} ) {           # \232
        my $decoded_char = $self->oct_to_char( $1 );
        $postscript =~ s{\\$1}{$decoded_char}g;    
    }

    while( $postscript =~ qr{/(u[ABCDEF0-9]{4,6})} ) {   # /uDEAD
        my $decoded_char = $self->u_to_char( $1 );
        $postscript =~ s{\\$1}{$decoded_char}g;    
    }

    while( $postscript =~ qr{/(uni[ABCDEF0-9]{4,})} ) {     # /uniDEADBEEF
        my $decoded_chars = $self->uni_to_chars( $1 );
        $postscript =~ s{\\$1}{$decoded_chars}g;    
    }

    $postscript =~ s{\\\(}{\(}g;  # remove \ from \( - string escape seq
    $postscript =~ s{\\\)}{\)}g;  # remove \ from \) - string escape seq

    return $postscript;
}

#=======================
sub font_name {
#=======================
    my $self = shift;
    if( @_ ) {
        $self->{_font_name} = shift;
    }
    return $self->{_font_name} || '_default';
}

#=======================
sub encoding {
#=======================
    my $self = shift;
    if( my $encoding = shift ) {
        $self->{_encoding} = _parse_encoding( $encoding );        
    }
    return $self->{_encoding} || die( "No encoding set!" );
}

#=======================
sub _parse_encoding {
#=======================
    my $encoding = shift;
    $encoding =~ s/\n//g;    

    my $hash = md5_hex( $encoding );
    return $Stored_Encodings{ $hash } if exists $Stored_Encodings{ $hash };

    my @glyphs = map { /^\/(.*?)(:?\..*)?$/ && lc $1 } split( '\s+', $encoding );
    $Stored_Encodings{ $hash }{ glyph_to_char } = \@glyphs;

    for( my $i = 0; $i < scalar @glyphs; $i++ ) {
        $Stored_Encodings{ $hash }{ glyph_to_dec }{ $glyphs[$i] } = $i;
    }

    return $Stored_Encodings{ $hash };
}

#=======================
sub _stored_encodings {
#=======================
    return \%Stored_Encodings;
}

1;

__END__

=head1 NAME

Postscript::TextDecode - decode special characters in postscript strings

=head1 SYNOPSIS

    use Postscript::TextDecode

    my $ps = Postscript::TextDecode->new;
    $ps->encoding( $encoding );
    
    my $text $ps->ps_to_text( $postscript_string );

=head1 DESCRIPTION

Postscript::TextDecode makes it easy to decode special characters in strings extracted from postscript.
It currently supports /232, uDEAD and uniDEADBEEFFEED format.

=head1 METHODS

=head2 encoding

This gets/sets the encoding that will be used to find the glyphs denoted by /xxx octal notation.
The format should be one like

/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quotesingle /parenleft /parenright /asterisk /plus /comma /hyphen /period /slash /zero /one /two /three /four /five /six /seven /eight /nine /colon /semicolon /less /equal /greater /question /at /A /B /C /D /E /F /G /H /I /J /K /L /M /N /O /P /Q /R /S /T /U /V /W /X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore /grave /a /b /c /d /e /f /g /h /i /j /k /l /m /n /o /p /q /r /s /t /u /v /w /x /y /z /braceleft /bar /braceright /asciitilde /.notdef /Adieresis /Aring /Ccedilla /Eacute /Ntilde /Odieresis /Udieresis /aacute /agrave /acircumflex /adieresis /atilde /aring /ccedilla /eacute /egrave /ecircumflex /edieresis /iacute /igrave /icircumflex /idieresis /ntilde /oacute /ograve /ocircumflex /odieresis /otilde /uacute /ugrave /ucircumflex /udieresis /dagger /degree /cent /sterling /section /bullet /paragraph /germandbls /registered /copyright /trademark /acute /dieresis /Euro /AE /Oslash /brokenbar /plusminus /twosuperior /threesuperior /yen /mu /.notdef /.notdef /onesuperior /onequarter /threequarters /ordfeminine /ordmasculine /onehalf /ae /oslash /questiondown /exclamdown /logicalnot /.notdef /florin /.notdef /.notdef /guillemotleft /guillemotright /ellipsis /lslash /Agrave /Atilde /Otilde /OE /oe /endash /emdash /quotedblleft /quotedblright /quoteleft /quoteright /divide /multiply /ydieresis /Ydieresis /fraction /currency /guilsinglleft /guilsinglright /fi /fl /daggerdbl /periodcentered /quotesinglbase /quotedblbase /perthousand /Acircumflex /Ecircumflex /Aacute /Edieresis /Egrave /Iacute /Icircumflex /Idieresis /Igrave /Oacute /Ocircumflex /Lslash /Ograve /Uacute /Ucircumflex /Ugrave /dotlessi /circumflex /tilde /macron /breve /dotaccent /ring /cedilla /hungarumlaut /ogonek /caron

It's internally associated with a md5hash to prevent re-parsing.

=head2 font_name

This gets/sets the font_name, can be set to 'ZapfDingbats', otherwise the default font glyph_to_unicode mapping is assumed.

=head2 u_to_char

Returns uDEAF[..] notation to unicode character

=head2 uni_to_chars

Returns uniDEADBEEFFEED[....] notation to unicode character

=head2 ghlyph_to_char

Returns odieresis (glyph name) notation to unicode character

=head2 glyph_to_dec

Returns odieresis (glyph name) encoding table index number

=head2 oct_to_glyph

Returns glyph name (e.g. odieresis) for /232 octal notation

=head2 oct_to_char

Returns unicode character associated with octal encoding glyph index

=head1 TODO

Currently u_to_char and uni_to_char haven't been tested, I've not encountered this encoding in the wild.

=head1 SEE ALSO

Postscript::TextExtract(TBA), perl(1)

=head1 AUTHOR

Job van Achterberg <jkva@cpan.org>

=head1 LICENSE

Copyright (C) 2010 Job van Achterberg <jkva@cpan.org>

This program is free software; you can redistribute it and/or modify it
under the same terms as Perl itself.

See http://www.perl.com/perl/misc/Artistic.html

=cut


